aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.pre-commit-config.yaml9
-rw-r--r--Makefile.in2
-rw-r--r--Makefile.tpl2
-rw-r--r--README6
-rw-r--r--bfd/ChangeLog4
-rw-r--r--bfd/Makefile.in3
-rw-r--r--bfd/aclocal.m42
-rw-r--r--bfd/archive.c44
-rw-r--r--bfd/bfd-in.h8
-rw-r--r--bfd/bfd-in2.h11
-rw-r--r--bfd/bfd.c3
-rw-r--r--bfd/bfdio.c13
-rw-r--r--bfd/coff-aarch64.c5
-rw-r--r--bfd/coff-ia64.c4
-rw-r--r--bfd/coff-loongarch64.c5
-rw-r--r--bfd/coff-mcore.c4
-rw-r--r--bfd/coff-riscv64.c4
-rw-r--r--bfd/coffcode.h6
-rw-r--r--bfd/coffswap.h14
-rw-r--r--bfd/config.bfd25
-rwxr-xr-xbfd/configure421
-rw-r--r--bfd/configure.ac15
-rw-r--r--bfd/elf-bfd.h7
-rw-r--r--bfd/elf-eh-frame.c8
-rw-r--r--bfd/elf-linker-x86.h17
-rw-r--r--bfd/elf-m10300.c2
-rw-r--r--bfd/elf-properties.c51
-rw-r--r--bfd/elf.c1083
-rw-r--r--bfd/elf32-arc.c2
-rw-r--r--bfd/elf32-arm.c37
-rw-r--r--bfd/elf32-bfin.c4
-rw-r--r--bfd/elf32-cr16.c2
-rw-r--r--bfd/elf32-cris.c2
-rw-r--r--bfd/elf32-csky.c2
-rw-r--r--bfd/elf32-frv.c2
-rw-r--r--bfd/elf32-hppa.c2
-rw-r--r--bfd/elf32-i386.c74
-rw-r--r--bfd/elf32-lm32.c2
-rw-r--r--bfd/elf32-m32r.c2
-rw-r--r--bfd/elf32-m68k.c2
-rw-r--r--bfd/elf32-metag.c2
-rw-r--r--bfd/elf32-nds32.c2
-rw-r--r--bfd/elf32-or1k.c2
-rw-r--r--bfd/elf32-ppc.c2
-rw-r--r--bfd/elf32-s390.c2
-rw-r--r--bfd/elf32-score.c2
-rw-r--r--bfd/elf32-score7.c2
-rw-r--r--bfd/elf32-sh.c2
-rw-r--r--bfd/elf32-tic6x.c2
-rw-r--r--bfd/elf32-tilepro.c2
-rw-r--r--bfd/elf32-vax.c2
-rw-r--r--bfd/elf32-xtensa.c2
-rw-r--r--bfd/elf64-alpha.c2
-rw-r--r--bfd/elf64-hppa.c2
-rw-r--r--bfd/elf64-ppc.c8
-rw-r--r--bfd/elf64-s390.c2
-rw-r--r--bfd/elf64-x86-64.c90
-rw-r--r--bfd/elfcode.h14
-rw-r--r--bfd/elflink.c178
-rw-r--r--bfd/elfnn-aarch64.c21
-rw-r--r--bfd/elfnn-ia64.c2
-rw-r--r--bfd/elfnn-kvx.c2
-rw-r--r--bfd/elfnn-loongarch.c4
-rw-r--r--bfd/elfnn-riscv.c21
-rw-r--r--bfd/elfxx-loongarch.c4
-rw-r--r--bfd/elfxx-mips.c2
-rw-r--r--bfd/elfxx-riscv.c35
-rw-r--r--bfd/elfxx-sparc.c5
-rw-r--r--bfd/elfxx-sparc.h3
-rw-r--r--bfd/elfxx-tilegx.c2
-rw-r--r--bfd/elfxx-x86.c44
-rw-r--r--bfd/elfxx-x86.h28
-rw-r--r--bfd/format.c169
-rw-r--r--bfd/libbfd.c33
-rw-r--r--bfd/libbfd.h2
-rw-r--r--bfd/peXXigen.c10
-rw-r--r--bfd/pei-aarch64.c4
-rw-r--r--bfd/pei-loongarch64.c4
-rw-r--r--bfd/pei-riscv64.c4
-rw-r--r--bfd/pei-x86_64.c4
-rw-r--r--bfd/plugin.c24
-rw-r--r--bfd/plugin.h63
-rw-r--r--bfd/po/ka.po4815
-rw-r--r--bfd/po/ms.po2859
-rw-r--r--bfd/po/sr.po2857
-rw-r--r--bfd/po/sv.po9664
-rw-r--r--bfd/targets.c6
-rw-r--r--bfd/tekhex.c2
-rw-r--r--bfd/version.h2
-rw-r--r--bfd/vms-alpha.c161
-rw-r--r--bfd/vms-lib.c4
-rw-r--r--bfd/xtensa-dynconfig.c62
-rw-r--r--binutils/MAINTAINERS4
-rw-r--r--binutils/Makefile.in3
-rw-r--r--binutils/NEWS10
-rw-r--r--binutils/README-how-to-make-a-release30
-rw-r--r--binutils/aclocal.m42
-rw-r--r--binutils/ar.c86
-rw-r--r--binutils/arsup.c14
-rwxr-xr-xbinutils/configure405
-rw-r--r--binutils/doc/binutils.texi12
-rw-r--r--binutils/dwarf.c17
-rw-r--r--binutils/nm.c43
-rw-r--r--binutils/objcopy.c261
-rw-r--r--binutils/objdump.c35
-rw-r--r--binutils/po/ka.po13801
-rw-r--r--binutils/po/sr.po3957
-rw-r--r--binutils/readelf.c1192
-rw-r--r--binutils/resbin.c26
-rw-r--r--binutils/rescoff.c8
-rw-r--r--binutils/strings.c4
-rw-r--r--binutils/testsuite/binutils-all/aarch64/pei-aarch64-little.d2
-rw-r--r--binutils/testsuite/binutils-all/ar.exp4
-rw-r--r--binutils/testsuite/binutils-all/copy-7.d14
-rw-r--r--binutils/testsuite/binutils-all/copy-7.s7
-rw-r--r--binutils/testsuite/binutils-all/loongarch64/pei-loongarch64.d2
-rw-r--r--binutils/testsuite/binutils-all/nm.exp18
-rw-r--r--binutils/testsuite/binutils-all/objcopy.exp44
-rw-r--r--binutils/testsuite/binutils-all/readelf.exp9
-rw-r--r--binutils/testsuite/binutils-all/riscv/pei-riscv64.d2
-rw-r--r--binutils/testsuite/binutils-all/tek2.obj8
-rw-r--r--binutils/testsuite/binutils-all/testranges-ia64.d2
-rw-r--r--binutils/testsuite/binutils-all/x86-64/x86-64.exp2
-rw-r--r--binutils/testsuite/lib/binutils-common.exp28
-rw-r--r--config/clang-plugin.m462
-rw-r--r--config/dejagnu.m46
-rwxr-xr-xconfigure578
-rw-r--r--configure.ac19
-rw-r--r--gas/ChangeLog25
-rw-r--r--gas/Makefile.in3
-rw-r--r--gas/NEWS8
-rw-r--r--gas/aclocal.m42
-rw-r--r--gas/as.c8
-rw-r--r--gas/as.h1
-rw-r--r--gas/config.in6
-rw-r--r--gas/config/obj-elf.c132
-rw-r--r--gas/config/tc-aarch64.c19
-rw-r--r--gas/config/tc-alpha.c4
-rw-r--r--gas/config/tc-arm.c57
-rw-r--r--gas/config/tc-i386.c150
-rw-r--r--gas/config/tc-i386.h39
-rw-r--r--gas/config/tc-ia64.c8
-rw-r--r--gas/config/tc-mep.c4
-rw-r--r--gas/config/tc-mips.c2
-rw-r--r--gas/config/tc-ppc.c53
-rw-r--r--gas/config/tc-ppc.h6
-rw-r--r--gas/config/tc-riscv.c85
-rw-r--r--gas/config/tc-tilegx.h3
-rw-r--r--gas/config/tc-tilepro.h3
-rw-r--r--gas/config/tc-visium.h2
-rw-r--r--gas/config/te-cloudabi.h22
-rwxr-xr-xgas/configure435
-rw-r--r--gas/configure.ac25
-rw-r--r--gas/configure.tgt2
-rw-r--r--gas/doc/as.texi18
-rw-r--r--gas/doc/c-i386.texi12
-rw-r--r--gas/doc/c-ppc.texi11
-rw-r--r--gas/dw2gencfi.c6
-rw-r--r--gas/dwarf2dbg.c2
-rw-r--r--gas/ehopt.c35
-rw-r--r--gas/expr.h16
-rw-r--r--gas/frags.c23
-rw-r--r--gas/frags.h2
-rw-r--r--gas/gen-sframe.c108
-rw-r--r--gas/gen-sframe.h10
-rw-r--r--gas/macro.c10
-rw-r--r--gas/messages.c77
-rw-r--r--gas/po/es.po10239
-rw-r--r--gas/po/gas.es.po24208
-rw-r--r--gas/read.c2
-rw-r--r--gas/stabs.c24
-rw-r--r--gas/subsegs.h32
-rw-r--r--gas/testsuite/gas/aarch64/csre-invalid.l5
-rw-r--r--gas/testsuite/gas/aarch64/csre.s25
-rw-r--r--gas/testsuite/gas/aarch64/sme-f64f64.d2
-rw-r--r--gas/testsuite/gas/aarch64/sme-i16i64.d2
-rw-r--r--gas/testsuite/gas/aarch64/sve2p1-5.d1
-rw-r--r--gas/testsuite/gas/aarch64/sve2p1-9.d2
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.d2
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.l16
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.d2
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.d2
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.l4
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.d1
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.s8
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4.l6
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8.s13
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sme-sysreg.d2
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/srmask.d57
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/srmask.s26
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sve-sysreg-invalid.l2
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysreg-1.d8572
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysreg-1.s3
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysreg-11.d27
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysreg-11.s12
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysreg-8.s2
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.d3
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.l1
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.s1
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions-bad.l28
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.d1
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.s2
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.d1
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.s4
-rw-r--r--gas/testsuite/gas/all/err-sizeof.s2
-rw-r--r--gas/testsuite/gas/all/gas.exp2
-rw-r--r--gas/testsuite/gas/arm/arch6zk.d2
-rw-r--r--gas/testsuite/gas/arm/archv6t2-1-pe.d2
-rw-r--r--gas/testsuite/gas/arm/arm-it-bad.l2
-rw-r--r--gas/testsuite/gas/arm/armv1.l8
-rw-r--r--gas/testsuite/gas/arm/armv8-2-fp16-scalar-bad-ext.d2
-rw-r--r--gas/testsuite/gas/arm/armv8-2-fp16-scalar-bad.l24
-rw-r--r--gas/testsuite/gas/arm/armv8-2-fp16-scalar-ext.d2
-rw-r--r--gas/testsuite/gas/arm/armv8-2-fp16-scalar-thumb-ext.d2
-rw-r--r--gas/testsuite/gas/arm/armv8-2-fp16-simd-ext.d2
-rw-r--r--gas/testsuite/gas/arm/armv8-2-fp16-simd-thumb-ext.d2
-rw-r--r--gas/testsuite/gas/arm/armv8-2-fp16-simd-warning-ext.d2
-rw-r--r--gas/testsuite/gas/arm/armv8-2-fp16-simd-warning-thumb-ext.d2
-rw-r--r--gas/testsuite/gas/arm/armv8-a-it-bad.d2
-rw-r--r--gas/testsuite/gas/arm/armv8-ar-bad.l16
-rw-r--r--gas/testsuite/gas/arm/armv8-ar-it-bad.l30
-rw-r--r--gas/testsuite/gas/arm/armv8-r-it-bad.d2
-rw-r--r--gas/testsuite/gas/arm/armv8_2+rdma-ext.d2
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv6s-m.d2
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv9_1-a.d2
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv9_2-a.d2
-rw-r--r--gas/testsuite/gas/arm/attr-march-armv9_3-a.d2
-rw-r--r--gas/testsuite/gas/arm/cde-mve-or-neon.d2
-rw-r--r--gas/testsuite/gas/arm/cpu-arm_any.d2
-rw-r--r--gas/testsuite/gas/arm/depr-swp.l6
-rw-r--r--gas/testsuite/gas/arm/mrs-msr-arm-v7-a-bad.l2
-rw-r--r--gas/testsuite/gas/arm/msr-reg-bad.l2
-rw-r--r--gas/testsuite/gas/arm/mul-overlap.l6
-rw-r--r--gas/testsuite/gas/arm/mve-vabav.d2
-rw-r--r--gas/testsuite/gas/arm/mve-vmlsldav.d2
-rw-r--r--gas/testsuite/gas/arm/mve-vorn.d2
-rw-r--r--gas/testsuite/gas/arm/mve-vqdmulh.d2
-rw-r--r--gas/testsuite/gas/arm/mve-vrshl.d2
-rw-r--r--gas/testsuite/gas/arm/mve-vshrn.d2
-rw-r--r--gas/testsuite/gas/arm/neon-suffix-bad.d2
-rw-r--r--gas/testsuite/gas/arm/neon-suffix-bad.l21
-rw-r--r--gas/testsuite/gas/arm/neon-suffix-bad.s22
-rw-r--r--gas/testsuite/gas/arm/sb-thumb1-pe.d2
-rw-r--r--gas/testsuite/gas/arm/sb-thumb2-pe.d2
-rw-r--r--gas/testsuite/gas/arm/sp-pc-validations-bad-t-v8a.l60
-rw-r--r--gas/testsuite/gas/arm/thumb2_bad_reg.l12
-rw-r--r--gas/testsuite/gas/arm/thumb2_it_auto.d2
-rw-r--r--gas/testsuite/gas/arm/thumb2_it_bad_auto.d2
-rw-r--r--gas/testsuite/gas/arm/thumb2_vpool_be.d2
-rw-r--r--gas/testsuite/gas/arm/thumb32.l32
-rw-r--r--gas/testsuite/gas/arm/udf.l4
-rw-r--r--gas/testsuite/gas/arm/vstr-arm-bad.l4
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-common-12.d22
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-common-12.s8
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-3.d21
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-3.s5
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe.exp2
-rw-r--r--gas/testsuite/gas/cfi/cfi-common-10.d8
-rw-r--r--gas/testsuite/gas/cfi/cfi-common-10.s5
-rw-r--r--gas/testsuite/gas/cfi/cfi-x86_64-2.d14
-rw-r--r--gas/testsuite/gas/cfi/cfi-x86_64-2.s5
-rw-r--r--gas/testsuite/gas/cfi/cfi.exp4
-rw-r--r--gas/testsuite/gas/elf/bad-section-flag.err3
-rw-r--r--gas/testsuite/gas/elf/bad-section-flag.s1
-rw-r--r--gas/testsuite/gas/elf/elf.exp6
-rw-r--r--gas/testsuite/gas/elf/entsize.d9
-rw-r--r--gas/testsuite/gas/elf/entsize.s8
-rw-r--r--gas/testsuite/gas/elf/line.l12
-rw-r--r--gas/testsuite/gas/elf/line2.inc6
-rw-r--r--gas/testsuite/gas/elf/line2.l5
-rw-r--r--gas/testsuite/gas/elf/line2.s3
-rw-r--r--gas/testsuite/gas/elf/section12b.d2
-rw-r--r--gas/testsuite/gas/elf/section13.d2
-rw-r--r--gas/testsuite/gas/elf/section23.d (renamed from gas/testsuite/gas/elf/section23a.d)0
-rw-r--r--gas/testsuite/gas/elf/section23b.d6
-rw-r--r--gas/testsuite/gas/elf/section23b.err2
-rw-r--r--gas/testsuite/gas/i386/i386.exp2
-rw-r--r--gas/testsuite/gas/i386/nojumps.d31
-rw-r--r--gas/testsuite/gas/i386/nojumps.e3
-rw-r--r--gas/testsuite/gas/i386/nojumps.s21
-rw-r--r--gas/testsuite/gas/i386/reloc16.l4
-rw-r--r--gas/testsuite/gas/i386/reloc16.s6
-rw-r--r--gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d16
-rw-r--r--gas/testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d16
-rw-r--r--gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d16
-rw-r--r--gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s16
-rw-r--r--gas/testsuite/gas/i386/x86-64-fred-intel.d14
-rw-r--r--gas/testsuite/gas/i386/x86-64-movrs-suffix-intel.d15
-rw-r--r--gas/testsuite/gas/i386/x86-64-movrs-suffix.d2
-rw-r--r--gas/testsuite/gas/i386/x86-64-movrs-suffix.s7
-rw-r--r--gas/testsuite/gas/i386/x86-64-opcode.d1
-rw-r--r--gas/testsuite/gas/i386/x86-64-opcode.s1
-rw-r--r--gas/testsuite/gas/i386/x86-64.exp1
-rw-r--r--gas/testsuite/gas/loongarch/dwarf-regnum.d2
-rw-r--r--gas/testsuite/gas/loongarch/frame_pc.d22
-rw-r--r--gas/testsuite/gas/loongarch/frame_pc.s20
-rw-r--r--gas/testsuite/gas/pe/long_file_symbol.d5
-rw-r--r--gas/testsuite/gas/pe/long_file_symbol.s1
-rw-r--r--gas/testsuite/gas/pe/pe.exp2
-rw-r--r--gas/testsuite/gas/ppc/future.d12
-rw-r--r--gas/testsuite/gas/ppc/future.s12
-rw-r--r--gas/testsuite/gas/riscv/attribute-11.s1
-rw-r--r--gas/testsuite/gas/riscv/c-zero-imm.d9
-rw-r--r--gas/testsuite/gas/riscv/c-zero-imm.s6
-rw-r--r--gas/testsuite/gas/riscv/csr-fail-nonexistent.s1
-rw-r--r--gas/testsuite/gas/riscv/dis-partial-insn.s1
-rw-r--r--gas/testsuite/gas/riscv/fmv.x.s1
-rw-r--r--gas/testsuite/gas/riscv/force_reloc.d47
-rw-r--r--gas/testsuite/gas/riscv/force_reloc.s22
-rw-r--r--gas/testsuite/gas/riscv/fsxxi.s1
-rw-r--r--gas/testsuite/gas/riscv/imply.d2
-rw-r--r--gas/testsuite/gas/riscv/imply.s3
-rw-r--r--gas/testsuite/gas/riscv/march-help.l2
-rw-r--r--gas/testsuite/gas/riscv/no-relax-align.s1
-rw-r--r--gas/testsuite/gas/riscv/odd-padding.s17
-rw-r--r--gas/testsuite/gas/riscv/t_insns.s1
-rw-r--r--gas/testsuite/gas/riscv/tlsdesc.s1
-rw-r--r--gas/testsuite/gas/riscv/zca.d2
-rw-r--r--gas/testsuite/gas/sparc/asi-arch-error.l2
-rw-r--r--gas/write.c6
-rw-r--r--gdb/MAINTAINERS1
-rw-r--r--gdb/Makefile.in401
-rw-r--r--gdb/NEWS79
-rw-r--r--gdb/README24
-rw-r--r--gdb/aarch64-linux-nat.c79
-rw-r--r--gdb/aarch64-linux-tdep.c204
-rw-r--r--gdb/aarch64-nat.h4
-rw-r--r--gdb/aarch64-tdep.c158
-rw-r--r--gdb/aarch64-tdep.h25
-rw-r--r--gdb/aclocal.m42
-rw-r--r--gdb/ada-exp.h50
-rw-r--r--gdb/ada-exp.y19
-rw-r--r--gdb/ada-lang.c630
-rw-r--r--gdb/ada-lang.h15
-rw-r--r--gdb/ada-lex.l23
-rw-r--r--gdb/ada-typeprint.c3
-rw-r--r--gdb/ada-valprint.c5
-rw-r--r--gdb/addrmap.c20
-rw-r--r--gdb/addrmap.h4
-rw-r--r--gdb/alpha-netbsd-tdep.c2
-rw-r--r--gdb/alpha-obsd-tdep.c2
-rw-r--r--gdb/alpha-tdep.c2
-rw-r--r--gdb/amd-dbgapi-target.c219
-rw-r--r--gdb/amd64-linux-nat.c19
-rw-r--r--gdb/amd64-linux-tdep.c224
-rwxr-xr-x[-rw-r--r--]gdb/amd64-tdep.c247
-rw-r--r--gdb/amd64-tdep.h9
-rw-r--r--gdb/arc-linux-tdep.c2
-rw-r--r--gdb/arch-utils.c12
-rw-r--r--gdb/arch-utils.h5
-rw-r--r--gdb/arch/aarch64-gcs-linux.h44
-rw-r--r--gdb/arch/aarch64.c8
-rw-r--r--gdb/arch/aarch64.h14
-rw-r--r--gdb/arch/amd64-linux-tdesc.c31
-rw-r--r--gdb/arch/amd64-linux-tdesc.h7
-rw-r--r--gdb/arch/amd64.c25
-rw-r--r--gdb/arch/amd64.h10
-rw-r--r--gdb/arch/i386-linux-tdesc.c29
-rw-r--r--gdb/arch/i386-linux-tdesc.h5
-rw-r--r--gdb/arch/i386.c19
-rw-r--r--gdb/arch/i386.h7
-rw-r--r--gdb/arch/x86-linux-tdesc-features.c60
-rw-r--r--gdb/arch/x86-linux-tdesc-features.h27
-rw-r--r--gdb/arm-fbsd-tdep.c2
-rw-r--r--gdb/arm-linux-nat.c10
-rw-r--r--gdb/arm-linux-tdep.c11
-rw-r--r--gdb/arm-netbsd-tdep.c2
-rw-r--r--gdb/arm-obsd-tdep.c2
-rw-r--r--gdb/arm-pikeos-tdep.c2
-rw-r--r--gdb/arm-tdep.c11
-rw-r--r--gdb/arm-wince-tdep.c2
-rw-r--r--gdb/auto-load.c3
-rw-r--r--gdb/ax-gdb.c5
-rw-r--r--gdb/block.c63
-rw-r--r--gdb/block.h27
-rw-r--r--gdb/break-catch-exec.c4
-rw-r--r--gdb/break-catch-fork.c2
-rw-r--r--gdb/break-catch-syscall.c3
-rw-r--r--gdb/break-catch-throw.c3
-rw-r--r--gdb/break-cond-parse.c4
-rw-r--r--gdb/breakpoint.c11
-rw-r--r--gdb/btrace.c5
-rw-r--r--gdb/c-exp.y462
-rw-r--r--gdb/c-lang.c11
-rw-r--r--gdb/c-support.h10
-rw-r--r--gdb/c-typeprint.c13
-rw-r--r--gdb/charset.c1
-rw-r--r--gdb/cli/cli-cmds.c16
-rw-r--r--gdb/cli/cli-decode.c9
-rw-r--r--gdb/cli/cli-dump.c1
-rw-r--r--gdb/cli/cli-option.c4
-rw-r--r--gdb/cli/cli-script.c7
-rw-r--r--gdb/cli/cli-setshow.c3
-rw-r--r--gdb/cli/cli-utils.c27
-rw-r--r--gdb/coff-pe-read.c3
-rw-r--r--gdb/coffread.c31
-rw-r--r--gdb/compile/compile-c-symbols.c6
-rw-r--r--gdb/compile/compile-cplus-symbols.c4
-rw-r--r--gdb/completer.c2
-rw-r--r--gdb/config.in3
-rwxr-xr-xgdb/configure749
-rw-r--r--gdb/configure.ac93
-rw-r--r--gdb/configure.tgt24
-rwxr-xr-xgdb/copyright.py11
-rw-r--r--gdb/corelow.c59
-rw-r--r--gdb/cp-name-parser.y11
-rw-r--r--gdb/cp-support.c46
-rw-r--r--gdb/cris-tdep.c2
-rw-r--r--gdb/ctfread.c46
-rw-r--r--gdb/d-exp.y34
-rw-r--r--gdb/darwin-nat.c1
-rw-r--r--gdb/data-directory/Makefile.in1
-rw-r--r--gdb/dictionary.c4
-rw-r--r--gdb/disasm.c1
-rw-r--r--gdb/doc/gdb.texinfo370
-rw-r--r--gdb/doc/python.texi21
-rw-r--r--gdb/dwarf2/abbrev.c9
-rw-r--r--gdb/dwarf2/abbrev.h8
-rw-r--r--gdb/dwarf2/ada-imported.c2
-rw-r--r--gdb/dwarf2/cooked-index-entry.c10
-rw-r--r--gdb/dwarf2/cooked-index-shard.c18
-rw-r--r--gdb/dwarf2/cooked-index-shard.h7
-rw-r--r--gdb/dwarf2/cooked-index-worker.h15
-rw-r--r--gdb/dwarf2/cooked-index.h10
-rw-r--r--gdb/dwarf2/cooked-indexer.c37
-rw-r--r--gdb/dwarf2/index-common.c10
-rw-r--r--gdb/dwarf2/index-write.c100
-rw-r--r--gdb/dwarf2/line-program.c720
-rw-r--r--gdb/dwarf2/line-program.h47
-rw-r--r--gdb/dwarf2/read-debug-names.c20
-rw-r--r--gdb/dwarf2/read-gdb-index.c1312
-rw-r--r--gdb/dwarf2/read-gdb-index.h14
-rw-r--r--gdb/dwarf2/read.c1229
-rw-r--r--gdb/dwarf2/read.h123
-rw-r--r--gdb/dwarf2/stringify.c6
-rw-r--r--gdb/dwarf2/tag.h12
-rw-r--r--gdb/elfread.c10
-rw-r--r--gdb/eval.c30
-rw-r--r--gdb/event-top.c3
-rw-r--r--gdb/exec.c11
-rw-r--r--gdb/expop.h48
-rw-r--r--gdb/expprint.c1
-rw-r--r--gdb/extension.c79
-rw-r--r--gdb/f-exp.y10
-rw-r--r--gdb/f-typeprint.c22
-rw-r--r--gdb/f-valprint.c2
-rw-r--r--gdb/fbsd-nat.c2
-rw-r--r--gdb/fbsd-tdep.c83
-rw-r--r--gdb/features/Makefile4
-rw-r--r--gdb/features/aarch64-gcs-linux.c21
-rw-r--r--gdb/features/aarch64-gcs-linux.xml18
-rw-r--r--gdb/features/aarch64-gcs.c14
-rw-r--r--gdb/features/aarch64-gcs.xml11
-rw-r--r--gdb/features/i386/32bit-ssp.c14
-rw-r--r--gdb/features/i386/32bit-ssp.xml11
-rw-r--r--gdb/features/i386/64bit-ssp.c14
-rw-r--r--gdb/features/i386/64bit-ssp.xml11
-rw-r--r--gdb/findcmd.c7
-rw-r--r--gdb/findvar.c16
-rw-r--r--gdb/frame-unwind.c10
-rw-r--r--gdb/frame.c34
-rw-r--r--gdb/frame.h3
-rwxr-xr-x[-rw-r--r--]gdb/gcore-1.in38
-rw-r--r--gdb/gcore.c14
-rw-r--r--gdb/gdb-gdb.gdb.in3
-rw-r--r--gdb/gdb_wchar.h4
-rw-r--r--gdb/gdbarch-gen.c134
-rw-r--r--gdb/gdbarch-gen.h87
-rw-r--r--gdb/gdbarch.h6
-rw-r--r--gdb/gdbarch_components.py99
-rw-r--r--gdb/gdbtypes.c90
-rw-r--r--gdb/gdbtypes.h18
-rw-r--r--gdb/gnu-nat.c3
-rw-r--r--gdb/gnu-v2-abi.c3
-rw-r--r--gdb/go-exp.y11
-rw-r--r--gdb/go-lang.c3
-rw-r--r--gdb/go32-nat.c1
-rwxr-xr-xgdb/gstack-1.in3
-rw-r--r--gdb/guile/scm-cmd.c1
-rw-r--r--gdb/guile/scm-symbol.c26
-rw-r--r--gdb/guile/scm-type.c2
-rw-r--r--gdb/hppa-bsd-tdep.c10
-rw-r--r--gdb/hppa-linux-tdep.c8
-rw-r--r--gdb/hppa-tdep.c8
-rw-r--r--gdb/i386-fbsd-tdep.c5
-rw-r--r--gdb/i386-fbsd-tdep.h5
-rw-r--r--gdb/i386-linux-tdep.c10
-rw-r--r--gdb/i386-linux-tdep.h32
-rw-r--r--gdb/i386-tdep.c74
-rw-r--r--gdb/i386-tdep.h27
-rw-r--r--gdb/ia64-linux-tdep.c5
-rw-r--r--gdb/ia64-tdep.c16
-rw-r--r--gdb/infcall.c26
-rw-r--r--gdb/infcmd.c18
-rw-r--r--gdb/inferior.c1
-rw-r--r--gdb/inferior.h2
-rw-r--r--gdb/infrun.c72
-rw-r--r--gdb/jit.c2
-rw-r--r--gdb/language.c3
-rw-r--r--gdb/linespec.c54
-rw-r--r--gdb/linux-fork.c3
-rw-r--r--gdb/linux-nat.c5
-rw-r--r--gdb/linux-tdep.c113
-rw-r--r--gdb/linux-tdep.h18
-rw-r--r--gdb/linux-thread-db.c1
-rw-r--r--gdb/location.c17
-rw-r--r--gdb/loongarch-linux-nat.c11
-rw-r--r--gdb/loongarch-tdep.c383
-rw-r--r--gdb/m2-exp.y6
-rw-r--r--gdb/machoread.c12
-rw-r--r--gdb/macroscope.c6
-rw-r--r--gdb/main.c75
-rw-r--r--gdb/maint.c9
-rw-r--r--gdb/mdebugread.c56
-rw-r--r--gdb/mi/mi-cmd-break.c3
-rw-r--r--gdb/mi/mi-cmd-stack.c4
-rw-r--r--gdb/mi/mi-cmd-var.c3
-rw-r--r--gdb/mi/mi-main.c1
-rw-r--r--gdb/mi/mi-parse.c11
-rw-r--r--gdb/microblaze-tdep.c94
-rw-r--r--gdb/microblaze-tdep.h2
-rw-r--r--gdb/mingw-hdep.c61
-rw-r--r--gdb/minsyms.c8
-rw-r--r--gdb/minsyms.h2
-rw-r--r--gdb/mips-fbsd-tdep.c14
-rw-r--r--gdb/mips-linux-tdep.c12
-rw-r--r--gdb/mips-netbsd-tdep.c14
-rw-r--r--gdb/mips-tdep.c2
-rw-r--r--gdb/moxie-tdep.c2
-rw-r--r--gdb/nat/aarch64-hw-point.c6
-rw-r--r--gdb/nat/linux-osdata.c15
-rw-r--r--gdb/nat/linux-ptrace.c41
-rw-r--r--gdb/nat/x86-gcc-cpuid.h153
-rw-r--r--gdb/nat/x86-linux-tdesc.c20
-rw-r--r--gdb/nat/x86-linux-tdesc.h7
-rw-r--r--gdb/nat/x86-linux.c59
-rw-r--r--gdb/nat/x86-linux.h4
-rw-r--r--gdb/netbsd-nat.c2
-rw-r--r--gdb/objc-lang.c13
-rw-r--r--gdb/objfiles.c52
-rw-r--r--gdb/objfiles.h81
-rw-r--r--gdb/or1k-linux-tdep.c2
-rw-r--r--gdb/or1k-tdep.c1
-rw-r--r--gdb/p-exp.y23
-rw-r--r--gdb/p-lang.c1
-rw-r--r--gdb/p-typeprint.c5
-rw-r--r--gdb/parse.c1
-rw-r--r--gdb/ppc-linux-tdep.c19
-rw-r--r--gdb/ppc-sysv-tdep.c6
-rw-r--r--gdb/printcmd.c43
-rw-r--r--gdb/probe.c3
-rw-r--r--gdb/procfs.c5
-rw-r--r--gdb/producer.c4
-rw-r--r--gdb/progspace.c15
-rw-r--r--gdb/progspace.h12
-rw-r--r--gdb/psymtab.c41
-rw-r--r--gdb/psymtab.h18
-rw-r--r--gdb/pyproject.toml3
-rw-r--r--gdb/python/lib/gdb/dap/breakpoint.py13
-rw-r--r--gdb/python/lib/gdb/dap/varref.py10
-rw-r--r--gdb/python/lib/gdb/printing.py19
-rw-r--r--gdb/python/py-block.c3
-rw-r--r--gdb/python/py-disasm.c85
-rw-r--r--gdb/python/py-event-types.def2
-rw-r--r--gdb/python/py-finishbreakpoint.c6
-rw-r--r--gdb/python/py-framefilter.c2
-rw-r--r--gdb/python/py-infevents.c2
-rw-r--r--gdb/python/py-infthread.c33
-rw-r--r--gdb/python/py-mi.c6
-rw-r--r--gdb/python/py-micmd.c4
-rw-r--r--gdb/python/py-objfile.c12
-rw-r--r--gdb/python/py-record.c3
-rw-r--r--gdb/python/py-symbol.c44
-rw-r--r--gdb/python/py-type.c15
-rw-r--r--gdb/python/py-unwind.c2
-rw-r--r--gdb/python/py-value.c82
-rw-r--r--gdb/python/python-internal.h7
-rw-r--r--gdb/python/python.c32
-rw-r--r--gdb/quick-symbol.h66
-rw-r--r--gdb/record-full.c76
-rw-r--r--gdb/record.c9
-rw-r--r--gdb/regcache.c7
-rw-r--r--gdb/remote-sim.c1
-rw-r--r--gdb/remote.c210
-rw-r--r--gdb/riscv-fbsd-tdep.c2
-rw-r--r--gdb/riscv-linux-tdep.c28
-rw-r--r--gdb/riscv-tdep.c66
-rw-r--r--gdb/rs6000-aix-tdep.c9
-rw-r--r--gdb/rs6000-tdep.c2
-rw-r--r--gdb/rust-lang.c19
-rw-r--r--gdb/rust-parse.c6
-rw-r--r--gdb/s12z-tdep.c2
-rw-r--r--gdb/s390-tdep.c6
-rw-r--r--gdb/serial.c3
-rw-r--r--gdb/setup.cfg3
-rw-r--r--gdb/solib-aix.c18
-rw-r--r--gdb/solib-aix.h2
-rw-r--r--gdb/solib-darwin.c23
-rw-r--r--gdb/solib-darwin.h2
-rw-r--r--gdb/solib-dsbt.c34
-rw-r--r--gdb/solib-dsbt.h2
-rw-r--r--gdb/solib-frv.c48
-rw-r--r--gdb/solib-frv.h2
-rw-r--r--gdb/solib-rocm.c41
-rw-r--r--gdb/solib-svr4-linux.c8
-rw-r--r--gdb/solib-svr4-linux.h8
-rw-r--r--gdb/solib-svr4.c328
-rw-r--r--gdb/solib-svr4.h36
-rw-r--r--gdb/solib-target.c67
-rw-r--r--gdb/solib-target.h4
-rw-r--r--gdb/solib.c88
-rw-r--r--gdb/solib.h38
-rw-r--r--gdb/source.c34
-rw-r--r--gdb/sparc-sol2-tdep.c2
-rw-r--r--gdb/sparc-tdep.c2
-rw-r--r--gdb/sparc64-sol2-tdep.c2
-rw-r--r--gdb/stabsread.c98
-rw-r--r--gdb/stack.c48
-rw-r--r--gdb/stap-probe.c23
-rw-r--r--gdb/symfile-debug.c90
-rw-r--r--gdb/symfile.c106
-rw-r--r--gdb/symfile.h9
-rw-r--r--gdb/symmisc.c8
-rw-r--r--gdb/symtab.c333
-rw-r--r--gdb/symtab.h38
-rw-r--r--gdb/syscalls/riscv-linux.xml340
-rw-r--r--gdb/syscalls/riscv-linux.xml.in344
-rwxr-xr-xgdb/syscalls/update-linux-from-src.sh5
-rwxr-xr-xgdb/syscalls/update-linux.sh3
-rw-r--r--gdb/tclint.toml55
-rw-r--r--gdb/terminal.h6
-rw-r--r--gdb/testsuite/boards/native-extended-gdbserver.exp2
-rw-r--r--gdb/testsuite/gdb.ada/array_bounds.exp2
-rw-r--r--gdb/testsuite/gdb.ada/array_long_idx.exp36
-rw-r--r--gdb/testsuite/gdb.ada/array_long_idx/main.adb31
-rw-r--r--gdb/testsuite/gdb.ada/array_long_idx/pck.adb21
-rw-r--r--gdb/testsuite/gdb.ada/array_long_idx/pck.ads19
-rw-r--r--gdb/testsuite/gdb.ada/array_of_variant.exp2
-rw-r--r--gdb/testsuite/gdb.ada/arrayidx.exp16
-rw-r--r--gdb/testsuite/gdb.ada/call_pn.exp2
-rw-r--r--gdb/testsuite/gdb.ada/complete.exp2
-rw-r--r--gdb/testsuite/gdb.ada/exec_changed.exp2
-rw-r--r--gdb/testsuite/gdb.ada/extended-access.c38
-rw-r--r--gdb/testsuite/gdb.ada/extended-access.exp29
-rw-r--r--gdb/testsuite/gdb.ada/file-then-restart.exp2
-rw-r--r--gdb/testsuite/gdb.ada/finish-var-size.exp2
-rw-r--r--gdb/testsuite/gdb.ada/formatted_ref.exp6
-rw-r--r--gdb/testsuite/gdb.ada/frame_args.exp2
-rw-r--r--gdb/testsuite/gdb.ada/fun_in_declare.exp2
-rw-r--r--gdb/testsuite/gdb.ada/huge.exp2
-rw-r--r--gdb/testsuite/gdb.ada/import.exp28
-rw-r--r--gdb/testsuite/gdb.ada/limited-length.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_catch_assert.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_catch_ex.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_catch_ex_hand.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_dyn_arr.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_ex_cond.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_exc_info.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_interface.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_prot.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_ref_changeable.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_string_access.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_task_arg.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_task_info.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_var_access.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_var_array.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_var_union.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_variant.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mod_from_name.exp2
-rw-r--r--gdb/testsuite/gdb.ada/null_array.exp2
-rw-r--r--gdb/testsuite/gdb.ada/ref_param.exp2
-rw-r--r--gdb/testsuite/gdb.ada/return-small-char-array.exp40
-rw-r--r--gdb/testsuite/gdb.ada/return-small-char-array/proc.adb22
-rw-r--r--gdb/testsuite/gdb.ada/return-small-char-array/value.adb21
-rw-r--r--gdb/testsuite/gdb.ada/return-small-char-array/value.ads20
-rw-r--r--gdb/testsuite/gdb.ada/scalar_storage.exp2
-rw-r--r--gdb/testsuite/gdb.ada/taft_type.exp2
-rw-r--r--gdb/testsuite/gdb.ada/unchecked_union.exp2
-rw-r--r--gdb/testsuite/gdb.ada/var_arr_typedef/pack.adb2
-rw-r--r--gdb/testsuite/gdb.ada/var_arr_typedef/pack.ads4
-rw-r--r--gdb/testsuite/gdb.ada/var_arr_typedef/var_arr_typedef.adb2
-rw-r--r--gdb/testsuite/gdb.ada/verylong.exp6
-rw-r--r--gdb/testsuite/gdb.ada/whatis_array_val.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-frameptr-vecreg-unwind.c62
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-frameptr-vecreg-unwind.exp33
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-gcs-core.c123
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-gcs-core.exp116
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-gcs-disp-step.c140
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-gcs-disp-step.exp86
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-gcs-return.c105
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-gcs-return.exp132
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-gcs-tdesc-without-linux.xml65
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-gcs-wrong-tdesc.c26
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-gcs-wrong-tdesc.exp48
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-gcs.c180
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-gcs.exp99
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-mte-core.exp6
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-pseudo-unwind.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-core.exp.tcl6
-rw-r--r--gdb/testsuite/gdb.arch/alpha-step.exp3
-rw-r--r--gdb/testsuite/gdb.arch/altivec-abi.exp3
-rw-r--r--gdb/testsuite/gdb.arch/amd64-byte.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-dword.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis-no-cfi.S117
-rw-r--r--gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis-offset.S112
-rw-r--r--gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis.S143
-rw-r--r--gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis.c56
-rw-r--r--gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis.exp208
-rw-r--r--gdb/testsuite/gdb.arch/amd64-frameptr-vecreg-unwind.c63
-rw-r--r--gdb/testsuite/gdb.arch/amd64-frameptr-vecreg-unwind.exp40
-rw-r--r--gdb/testsuite/gdb.arch/amd64-init-x87-values.exp8
-rw-r--r--gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.exp4
-rw-r--r--gdb/testsuite/gdb.arch/amd64-invalid-stack-top.exp4
-rw-r--r--gdb/testsuite/gdb.arch/amd64-prologue-skip.exp5
-rw-r--r--gdb/testsuite/gdb.arch/amd64-prologue-xmm.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-pseudo-unwind.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-shadow-stack-cmds.exp143
-rw-r--r--gdb/testsuite/gdb.arch/amd64-shadow-stack-corefile.c46
-rw-r--r--gdb/testsuite/gdb.arch/amd64-shadow-stack-corefile.exp119
-rw-r--r--gdb/testsuite/gdb.arch/amd64-shadow-stack-disp-step.exp84
-rw-r--r--gdb/testsuite/gdb.arch/amd64-shadow-stack.c40
-rw-r--r--gdb/testsuite/gdb.arch/amd64-shadow-stack.exp71
-rw-r--r--gdb/testsuite/gdb.arch/amd64-word.exp2
-rw-r--r--gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy.exp2
-rw-r--r--gdb/testsuite/gdb.arch/arm-pseudo-unwind.exp2
-rw-r--r--gdb/testsuite/gdb.arch/arm-pthread_cond_timedwait-bt.exp2
-rw-r--r--gdb/testsuite/gdb.arch/e500-prologue.exp3
-rw-r--r--gdb/testsuite/gdb.arch/e500-regs.exp3
-rw-r--r--gdb/testsuite/gdb.arch/gdb1291.exp3
-rw-r--r--gdb/testsuite/gdb.arch/gdb1431.exp3
-rw-r--r--gdb/testsuite/gdb.arch/gdb1558.exp3
-rw-r--r--gdb/testsuite/gdb.arch/i386-avx.exp4
-rw-r--r--gdb/testsuite/gdb.arch/i386-bp_permanent.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-byte.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-dr3-watch.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-gnu-cfi.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-permbkpt.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-prologue.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-signal.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-size-overlap.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-size.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-sse.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-unwind.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-word.exp2
-rw-r--r--gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.exp3
-rw-r--r--gdb/testsuite/gdb.arch/mips-fpregset-core.exp6
-rw-r--r--gdb/testsuite/gdb.arch/mips-octeon-bbit.exp3
-rw-r--r--gdb/testsuite/gdb.arch/pa-nullify.exp3
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp3
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-altivec.exp3
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-altivec2.exp3
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-altivec3.exp3
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-d128-regs.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-fpscr-gcore.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-htm-regs.exp5
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-power10.exp3
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-power7.exp3
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-power8.exp3
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-power9.exp3
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-ppr-dscr.exp4
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-prologue-frame.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-prologue.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-tar.exp4
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-vector-regs.exp4
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-vsx-gcore.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-vsx.exp3
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-vsx2.exp3
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-vsx3.exp3
-rw-r--r--gdb/testsuite/gdb.arch/ppc-dfp.exp2
-rw-r--r--gdb/testsuite/gdb.arch/ppc-fp.exp2
-rw-r--r--gdb/testsuite/gdb.arch/ppc-longdouble.exp2
-rw-r--r--gdb/testsuite/gdb.arch/pr25124.exp2
-rw-r--r--gdb/testsuite/gdb.arch/sparc-sysstep.exp2
-rw-r--r--gdb/testsuite/gdb.arch/thumb-prologue.exp2
-rw-r--r--gdb/testsuite/gdb.arch/thumb2-it.exp2
-rw-r--r--gdb/testsuite/gdb.arch/vsx-regs.exp3
-rw-r--r--gdb/testsuite/gdb.asm/asm-source.exp30
-rw-r--r--gdb/testsuite/gdb.base/a2-run.exp7
-rw-r--r--gdb/testsuite/gdb.base/access-mem-running.exp3
-rw-r--r--gdb/testsuite/gdb.base/annota1.exp3
-rw-r--r--gdb/testsuite/gdb.base/annotate-symlink.exp2
-rw-r--r--gdb/testsuite/gdb.base/args.exp208
-rw-r--r--gdb/testsuite/gdb.base/arrayidx.exp3
-rw-r--r--gdb/testsuite/gdb.base/assign.exp3
-rw-r--r--gdb/testsuite/gdb.base/attach-fail-twice.exp3
-rw-r--r--gdb/testsuite/gdb.base/attach-non-pgrp-leader.exp6
-rw-r--r--gdb/testsuite/gdb.base/attach-twice.exp2
-rw-r--r--gdb/testsuite/gdb.base/attach-wait-input.exp3
-rw-r--r--gdb/testsuite/gdb.base/attach.c4
-rw-r--r--gdb/testsuite/gdb.base/attach.exp9
-rw-r--r--gdb/testsuite/gdb.base/auxv.exp3
-rw-r--r--gdb/testsuite/gdb.base/backtrace-through-cu-nodebug.exp5
-rw-r--r--gdb/testsuite/gdb.base/backtrace.exp6
-rw-r--r--gdb/testsuite/gdb.base/basic-edit-cmd.exp3
-rw-r--r--gdb/testsuite/gdb.base/bfp-test.exp3
-rw-r--r--gdb/testsuite/gdb.base/bg-exec-sigint-bp-cond.exp3
-rw-r--r--gdb/testsuite/gdb.base/bg-execution-repeat.exp3
-rw-r--r--gdb/testsuite/gdb.base/bigcore.exp3
-rw-r--r--gdb/testsuite/gdb.base/bitfields2.exp3
-rw-r--r--gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp6
-rw-r--r--gdb/testsuite/gdb.base/bp-cond-failure.exp5
-rw-r--r--gdb/testsuite/gdb.base/bp-disabled-by-cond.exp3
-rw-r--r--gdb/testsuite/gdb.base/bp-permanent.exp3
-rw-r--r--gdb/testsuite/gdb.base/break-fun-addr.exp3
-rw-r--r--gdb/testsuite/gdb.base/break-idempotent.exp2
-rw-r--r--gdb/testsuite/gdb.base/break-interp.exp4
-rw-r--r--gdb/testsuite/gdb.base/bt-on-fatal-signal.exp3
-rw-r--r--gdb/testsuite/gdb.base/bt-selected-frame.exp3
-rw-r--r--gdb/testsuite/gdb.base/call-rt-st.exp3
-rw-r--r--gdb/testsuite/gdb.base/call-sc.exp2
-rw-r--r--gdb/testsuite/gdb.base/call-signal-resume.exp3
-rw-r--r--gdb/testsuite/gdb.base/callexit.exp3
-rw-r--r--gdb/testsuite/gdb.base/catch-syscall.exp12
-rw-r--r--gdb/testsuite/gdb.base/checkpoint.exp6
-rw-r--r--gdb/testsuite/gdb.base/chng-syms.exp3
-rw-r--r--gdb/testsuite/gdb.base/clear_non_user_bp.exp3
-rw-r--r--gdb/testsuite/gdb.base/cli-suppress-notification.exp2
-rw-r--r--gdb/testsuite/gdb.base/code-expr.exp3
-rw-r--r--gdb/testsuite/gdb.base/color-prompt.exp29
-rw-r--r--gdb/testsuite/gdb.base/cond-expr.exp3
-rw-r--r--gdb/testsuite/gdb.base/condbreak-bad.exp2
-rw-r--r--gdb/testsuite/gdb.base/condbreak-multi-context.exp15
-rw-r--r--gdb/testsuite/gdb.base/consecutive.exp4
-rw-r--r--gdb/testsuite/gdb.base/constvars.exp3
-rw-r--r--gdb/testsuite/gdb.base/continue-after-aborted-step-over.exp3
-rw-r--r--gdb/testsuite/gdb.base/corefile-exec-context.exp9
-rw-r--r--gdb/testsuite/gdb.base/corefile-shmem-zero-id.exp6
-rw-r--r--gdb/testsuite/gdb.base/corefile.exp13
-rw-r--r--gdb/testsuite/gdb.base/corefile2.exp7
-rw-r--r--gdb/testsuite/gdb.base/corefile3.exp4
-rw-r--r--gdb/testsuite/gdb.base/ctf-ptype.exp5
-rw-r--r--gdb/testsuite/gdb.base/cvexpr.exp2
-rw-r--r--gdb/testsuite/gdb.base/default-args.exp3
-rw-r--r--gdb/testsuite/gdb.base/default.exp55
-rw-r--r--gdb/testsuite/gdb.base/detach-sysroot-target.exp2
-rw-r--r--gdb/testsuite/gdb.base/detach-while-running.exp3
-rw-r--r--gdb/testsuite/gdb.base/detach.exp3
-rw-r--r--gdb/testsuite/gdb.base/dfp-test.exp3
-rw-r--r--gdb/testsuite/gdb.base/display.exp3
-rw-r--r--gdb/testsuite/gdb.base/dlmopen-ns-ids.exp173
-rw-r--r--gdb/testsuite/gdb.base/dlmopen.exp50
-rw-r--r--gdb/testsuite/gdb.base/dprintf-bp-same-addr.exp3
-rw-r--r--gdb/testsuite/gdb.base/dprintf-detach.exp6
-rw-r--r--gdb/testsuite/gdb.base/dprintf-execution-x-script.exp3
-rw-r--r--gdb/testsuite/gdb.base/dprintf-pending.exp3
-rw-r--r--gdb/testsuite/gdb.base/dprintf.exp3
-rw-r--r--gdb/testsuite/gdb.base/dso2dso.exp3
-rw-r--r--gdb/testsuite/gdb.base/dtrace-probe.exp7
-rw-r--r--gdb/testsuite/gdb.base/dump.c2
-rw-r--r--gdb/testsuite/gdb.base/dump.exp12
-rw-r--r--gdb/testsuite/gdb.base/duplicate-bp.exp3
-rw-r--r--gdb/testsuite/gdb.base/eh_return.exp3
-rw-r--r--gdb/testsuite/gdb.base/ending-run.exp2
-rw-r--r--gdb/testsuite/gdb.base/errno.exp6
-rw-r--r--gdb/testsuite/gdb.base/eval-skip.exp3
-rw-r--r--gdb/testsuite/gdb.base/exe-lock.exp3
-rw-r--r--gdb/testsuite/gdb.base/exec-invalid-sysroot.exp3
-rw-r--r--gdb/testsuite/gdb.base/execl-update-breakpoints.exp9
-rw-r--r--gdb/testsuite/gdb.base/exprs.exp8
-rw-r--r--gdb/testsuite/gdb.base/fileio.c4
-rw-r--r--gdb/testsuite/gdb.base/fileio.exp5
-rw-r--r--gdb/testsuite/gdb.base/find.exp3
-rw-r--r--gdb/testsuite/gdb.base/fixsection.exp3
-rw-r--r--gdb/testsuite/gdb.base/float128.exp3
-rw-r--r--gdb/testsuite/gdb.base/floatn.exp3
-rw-r--r--gdb/testsuite/gdb.base/foll-exec.exp.tcl18
-rw-r--r--gdb/testsuite/gdb.base/fork-no-detach-follow-child-dlopen.exp3
-rw-r--r--gdb/testsuite/gdb.base/fork-print-inferior-events.exp3
-rw-r--r--gdb/testsuite/gdb.base/frame-args.exp3
-rw-r--r--gdb/testsuite/gdb.base/frame-info-consistent.exp3
-rw-r--r--gdb/testsuite/gdb.base/frame-view.exp3
-rw-r--r--gdb/testsuite/gdb.base/fullname.exp11
-rw-r--r--gdb/testsuite/gdb.base/gcore-buffer-overflow.exp3
-rw-r--r--gdb/testsuite/gdb.base/gcore-memory-usage.exp25
-rw-r--r--gdb/testsuite/gdb.base/gcore-relro-pie.exp6
-rw-r--r--gdb/testsuite/gdb.base/gcore-relro.exp6
-rw-r--r--gdb/testsuite/gdb.base/gcore-tls-pie.exp6
-rw-r--r--gdb/testsuite/gdb.base/gcore.exp3
-rw-r--r--gdb/testsuite/gdb.base/gcorebg.exp4
-rw-r--r--gdb/testsuite/gdb.base/gdb-index-err.exp6
-rw-r--r--gdb/testsuite/gdb.base/gdb1250.exp3
-rw-r--r--gdb/testsuite/gdb.base/gdb1555.exp3
-rw-r--r--gdb/testsuite/gdb.base/gdbindex-stabs.exp3
-rw-r--r--gdb/testsuite/gdb.base/gdbinit-history.exp2
-rw-r--r--gdb/testsuite/gdb.base/global-var-nested-by-dso.exp3
-rw-r--r--gdb/testsuite/gdb.base/gnu-ifunc.exp11
-rw-r--r--gdb/testsuite/gdb.base/gnu_vector.exp3
-rw-r--r--gdb/testsuite/gdb.base/hashline1.exp3
-rw-r--r--gdb/testsuite/gdb.base/hashline2.exp3
-rw-r--r--gdb/testsuite/gdb.base/hashline3.exp3
-rw-r--r--gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.exp3
-rw-r--r--gdb/testsuite/gdb.base/hook-stop.exp3
-rw-r--r--gdb/testsuite/gdb.base/huge.exp3
-rw-r--r--gdb/testsuite/gdb.base/infcall-exec.exp3
-rw-r--r--gdb/testsuite/gdb.base/infcall-failure-2.exp37
-rw-r--r--gdb/testsuite/gdb.base/infcall-failure.exp3
-rw-r--r--gdb/testsuite/gdb.base/infcall-nested-structs.exp.tcl5
-rw-r--r--gdb/testsuite/gdb.base/infcall-timeout.exp3
-rw-r--r--gdb/testsuite/gdb.base/inferior-args.exp38
-rw-r--r--gdb/testsuite/gdb.base/inferior-died.exp3
-rw-r--r--gdb/testsuite/gdb.base/info-proc.exp3
-rw-r--r--gdb/testsuite/gdb.base/info-program.exp3
-rw-r--r--gdb/testsuite/gdb.base/info-types.exp.tcl2
-rw-r--r--gdb/testsuite/gdb.base/info_sources_2.exp38
-rw-r--r--gdb/testsuite/gdb.base/inline-frame-cycle-unwind.py4
-rw-r--r--gdb/testsuite/gdb.base/internal-string-values.exp3
-rw-r--r--gdb/testsuite/gdb.base/interrupt-daemon-attach.exp6
-rw-r--r--gdb/testsuite/gdb.base/interrupt-daemon.exp3
-rw-r--r--gdb/testsuite/gdb.base/jit-bfd-name.exp3
-rw-r--r--gdb/testsuite/gdb.base/jit-elf-fork.exp3
-rw-r--r--gdb/testsuite/gdb.base/jit-elf-so.exp3
-rw-r--r--gdb/testsuite/gdb.base/jit-elf.exp6
-rw-r--r--gdb/testsuite/gdb.base/jit-reader-exec.exp3
-rw-r--r--gdb/testsuite/gdb.base/jit-reader-simple.exp9
-rw-r--r--gdb/testsuite/gdb.base/jit-reader.exp3
-rw-r--r--gdb/testsuite/gdb.base/kill-during-detach.exp3
-rw-r--r--gdb/testsuite/gdb.base/killed-outside.exp3
-rw-r--r--gdb/testsuite/gdb.base/langs.exp3
-rw-r--r--gdb/testsuite/gdb.base/large-frame.exp4
-rw-r--r--gdb/testsuite/gdb.base/libsegfault.exp9
-rw-r--r--gdb/testsuite/gdb.base/lineinc.exp3
-rw-r--r--gdb/testsuite/gdb.base/list-missing-source.exp3
-rw-r--r--gdb/testsuite/gdb.base/list.exp9
-rw-r--r--gdb/testsuite/gdb.base/logical.exp3
-rw-r--r--gdb/testsuite/gdb.base/long_long.exp3
-rw-r--r--gdb/testsuite/gdb.base/longjmp.exp3
-rw-r--r--gdb/testsuite/gdb.base/macro-source-path.exp5
-rw-r--r--gdb/testsuite/gdb.base/macscp.exp3
-rw-r--r--gdb/testsuite/gdb.base/maint-info-inline-frames-and-blocks.exp3
-rw-r--r--gdb/testsuite/gdb.base/maint-test-remote-args.exp40
-rw-r--r--gdb/testsuite/gdb.base/maint.exp3
-rw-r--r--gdb/testsuite/gdb.base/many-headers.exp1
-rw-r--r--gdb/testsuite/gdb.base/max-depth.exp.tcl4
-rw-r--r--gdb/testsuite/gdb.base/memops-watchpoint.exp153
-rw-r--r--gdb/testsuite/gdb.base/miscexprs.exp3
-rw-r--r--gdb/testsuite/gdb.base/msym-bp-shl.exp3
-rw-r--r--gdb/testsuite/gdb.base/multi-forks.exp9
-rw-r--r--gdb/testsuite/gdb.base/nodebug.exp3
-rw-r--r--gdb/testsuite/gdb.base/nofield.exp3
-rw-r--r--gdb/testsuite/gdb.base/nostdlib.exp3
-rw-r--r--gdb/testsuite/gdb.base/options.exp6
-rw-r--r--gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.exp3
-rw-r--r--gdb/testsuite/gdb.base/paginate-bg-execution.exp3
-rw-r--r--gdb/testsuite/gdb.base/paginate-inferior-exit.exp3
-rw-r--r--gdb/testsuite/gdb.base/patch.exp6
-rw-r--r--gdb/testsuite/gdb.base/pc-not-saved.exp3
-rw-r--r--gdb/testsuite/gdb.base/pie-fork.exp3
-rw-r--r--gdb/testsuite/gdb.base/pointers.exp3
-rw-r--r--gdb/testsuite/gdb.base/pr11022.exp3
-rw-r--r--gdb/testsuite/gdb.base/print-symbol-loading.exp6
-rw-r--r--gdb/testsuite/gdb.base/prologue.exp3
-rw-r--r--gdb/testsuite/gdb.base/ptr-typedef.exp3
-rw-r--r--gdb/testsuite/gdb.base/ptype.exp5
-rw-r--r--gdb/testsuite/gdb.base/quit-live.exp3
-rw-r--r--gdb/testsuite/gdb.base/random-signal.exp6
-rw-r--r--gdb/testsuite/gdb.base/readline-ask.exp5
-rw-r--r--gdb/testsuite/gdb.base/readline-commands-eof.exp3
-rw-r--r--gdb/testsuite/gdb.base/readline.exp2
-rw-r--r--gdb/testsuite/gdb.base/readnever.exp2
-rw-r--r--gdb/testsuite/gdb.base/relativedebug.exp3
-rw-r--r--gdb/testsuite/gdb.base/remote-exec-file.exp7
-rw-r--r--gdb/testsuite/gdb.base/remote.exp3
-rw-r--r--gdb/testsuite/gdb.base/reread.exp3
-rw-r--r--gdb/testsuite/gdb.base/reset-catchpoint-cond.exp3
-rw-r--r--gdb/testsuite/gdb.base/restore.exp3
-rw-r--r--gdb/testsuite/gdb.base/return2.exp3
-rw-r--r--gdb/testsuite/gdb.base/rtld-step.exp3
-rw-r--r--gdb/testsuite/gdb.base/run-attach-while-running.exp3
-rw-r--r--gdb/testsuite/gdb.base/run-control-while-bg-execution.exp3
-rw-r--r--gdb/testsuite/gdb.base/run-fail-twice.exp3
-rw-r--r--gdb/testsuite/gdb.base/savedregs.exp3
-rw-r--r--gdb/testsuite/gdb.base/sep.exp6
-rw-r--r--gdb/testsuite/gdb.base/sepsymtab.exp3
-rw-r--r--gdb/testsuite/gdb.base/set-cwd.exp6
-rw-r--r--gdb/testsuite/gdb.base/set-inferior-tty.exp3
-rw-r--r--gdb/testsuite/gdb.base/setshow.exp6
-rw-r--r--gdb/testsuite/gdb.base/settings.exp3
-rw-r--r--gdb/testsuite/gdb.base/share-env-with-gdbserver.exp12
-rw-r--r--gdb/testsuite/gdb.base/shlib-call.exp6
-rw-r--r--gdb/testsuite/gdb.base/shlib-unload.exp12
-rw-r--r--gdb/testsuite/gdb.base/shreloc.exp3
-rw-r--r--gdb/testsuite/gdb.base/sigaltstack.exp3
-rw-r--r--gdb/testsuite/gdb.base/sigchld.exp3
-rw-r--r--gdb/testsuite/gdb.base/siginfo-obj.exp3
-rw-r--r--gdb/testsuite/gdb.base/siginfo-thread.exp6
-rw-r--r--gdb/testsuite/gdb.base/signals-state-child.exp3
-rw-r--r--gdb/testsuite/gdb.base/signals.exp3
-rw-r--r--gdb/testsuite/gdb.base/signull.exp3
-rw-r--r--gdb/testsuite/gdb.base/sigrepeat.exp3
-rw-r--r--gdb/testsuite/gdb.base/sigstep.exp3
-rw-r--r--gdb/testsuite/gdb.base/skip.exp3
-rw-r--r--gdb/testsuite/gdb.base/so-impl-ld.exp3
-rw-r--r--gdb/testsuite/gdb.base/solib-abort.exp3
-rw-r--r--gdb/testsuite/gdb.base/solib-disc.exp3
-rw-r--r--gdb/testsuite/gdb.base/solib-symbol.exp3
-rw-r--r--gdb/testsuite/gdb.base/solib-weak.exp3
-rw-r--r--gdb/testsuite/gdb.base/source-dir.exp55
-rw-r--r--gdb/testsuite/gdb.base/source-search.c127
-rw-r--r--gdb/testsuite/gdb.base/source-search.exp106
-rw-r--r--gdb/testsuite/gdb.base/stack-checking.exp3
-rw-r--r--gdb/testsuite/gdb.base/startup-with-shell.exp161
-rw-r--r--gdb/testsuite/gdb.base/step-over-no-symbols.exp3
-rw-r--r--gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.exp3
-rw-r--r--gdb/testsuite/gdb.base/step-test.exp3
-rw-r--r--gdb/testsuite/gdb.base/structs.exp2
-rw-r--r--gdb/testsuite/gdb.base/structs2.exp2
-rw-r--r--gdb/testsuite/gdb.base/style.exp19
-rw-r--r--gdb/testsuite/gdb.base/sym-file.exp6
-rw-r--r--gdb/testsuite/gdb.base/symtab-search-order.exp3
-rw-r--r--gdb/testsuite/gdb.base/testenv.exp8
-rw-r--r--gdb/testsuite/gdb.base/tls-common.exp.tcl2
-rw-r--r--gdb/testsuite/gdb.base/tls-dlobj-lib.c2
-rw-r--r--gdb/testsuite/gdb.base/tls-dlobj.c2
-rw-r--r--gdb/testsuite/gdb.base/tls-dlobj.exp8
-rw-r--r--gdb/testsuite/gdb.base/tls-multiobj.c2
-rw-r--r--gdb/testsuite/gdb.base/tls-multiobj.exp8
-rw-r--r--gdb/testsuite/gdb.base/tls-multiobj1.c2
-rw-r--r--gdb/testsuite/gdb.base/tls-multiobj2.c2
-rw-r--r--gdb/testsuite/gdb.base/tls-multiobj3.c2
-rw-r--r--gdb/testsuite/gdb.base/tls-nothreads.c2
-rw-r--r--gdb/testsuite/gdb.base/tls-nothreads.exp11
-rw-r--r--gdb/testsuite/gdb.base/twice.exp3
-rw-r--r--gdb/testsuite/gdb.base/type-opaque.exp3
-rw-r--r--gdb/testsuite/gdb.base/unload.exp3
-rw-r--r--gdb/testsuite/gdb.base/until-trailing-insns.exp16
-rw-r--r--gdb/testsuite/gdb.base/varargs.exp3
-rw-r--r--gdb/testsuite/gdb.base/watch_thread_num.exp3
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-hw-attach.exp3
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-running.exp3
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-solib.exp3
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.exp3
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-unaligned.c37
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-unaligned.exp111
-rw-r--r--gdb/testsuite/gdb.base/watchpoints.exp3
-rw-r--r--gdb/testsuite/gdb.base/with-mf.exp3
-rw-r--r--gdb/testsuite/gdb.base/with.exp9
-rw-r--r--gdb/testsuite/gdb.btrace/buffer-size.exp4
-rw-r--r--gdb/testsuite/gdb.btrace/data.exp4
-rw-r--r--gdb/testsuite/gdb.btrace/delta.exp4
-rw-r--r--gdb/testsuite/gdb.btrace/dlopen.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/enable-new-thread.exp4
-rw-r--r--gdb/testsuite/gdb.btrace/enable-running.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/enable.exp12
-rwxr-xr-xgdb/testsuite/gdb.btrace/exception.exp6
-rw-r--r--gdb/testsuite/gdb.btrace/function_call_history.exp6
-rw-r--r--gdb/testsuite/gdb.btrace/gcore.exp4
-rw-r--r--gdb/testsuite/gdb.btrace/instruction_history.exp4
-rw-r--r--gdb/testsuite/gdb.btrace/multi-inferior.exp8
-rw-r--r--gdb/testsuite/gdb.btrace/multi-thread-step.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/nohist.exp4
-rw-r--r--gdb/testsuite/gdb.btrace/non-stop.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/ptwrite.exp4
-rw-r--r--gdb/testsuite/gdb.btrace/reconnect.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/record_goto-step.exp4
-rw-r--r--gdb/testsuite/gdb.btrace/record_goto.exp6
-rw-r--r--gdb/testsuite/gdb.btrace/rn-dl-bind.exp6
-rw-r--r--gdb/testsuite/gdb.btrace/segv.exp4
-rw-r--r--gdb/testsuite/gdb.btrace/step.exp4
-rw-r--r--gdb/testsuite/gdb.btrace/stepi.exp6
-rw-r--r--gdb/testsuite/gdb.btrace/tailcall-only.exp6
-rw-r--r--gdb/testsuite/gdb.btrace/tailcall.exp6
-rw-r--r--gdb/testsuite/gdb.btrace/tsx.exp4
-rw-r--r--gdb/testsuite/gdb.btrace/unknown_functions.exp6
-rw-r--r--gdb/testsuite/gdb.btrace/vdso.exp4
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus-print.exp7
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus.exp6
-rw-r--r--gdb/testsuite/gdb.compile/compile-ifunc.exp2
-rw-r--r--gdb/testsuite/gdb.compile/compile-ops.exp38
-rw-r--r--gdb/testsuite/gdb.compile/compile-print.exp2
-rw-r--r--gdb/testsuite/gdb.compile/compile-setjmp.exp2
-rw-r--r--gdb/testsuite/gdb.compile/compile-tls.exp2
-rw-r--r--gdb/testsuite/gdb.compile/compile.exp14
-rw-r--r--gdb/testsuite/gdb.cp/call-c.exp2
-rw-r--r--gdb/testsuite/gdb.cp/call-method-register.exp52
-rw-r--r--gdb/testsuite/gdb.cp/eval-reference-type.cc36
-rw-r--r--gdb/testsuite/gdb.cp/eval-reference-type.exp46
-rw-r--r--gdb/testsuite/gdb.cp/gdb2384.exp2
-rw-r--r--gdb/testsuite/gdb.cp/incomplete-type-overload.exp102
-rw-r--r--gdb/testsuite/gdb.cp/infcall-nodebug.exp.tcl4
-rw-r--r--gdb/testsuite/gdb.cp/method-ref-return.cc42
-rw-r--r--gdb/testsuite/gdb.cp/method-ref-return.exp70
-rw-r--r--gdb/testsuite/gdb.cp/nsalias.exp120
-rw-r--r--gdb/testsuite/gdb.cp/pr10728.exp2
-rw-r--r--gdb/testsuite/gdb.cp/print-global-stub.exp7
-rw-r--r--gdb/testsuite/gdb.cp/psmang.exp2
-rw-r--r--gdb/testsuite/gdb.cp/ref-params.exp2
-rw-r--r--gdb/testsuite/gdb.cp/rvalue-ref-params.exp2
-rw-r--r--gdb/testsuite/gdb.ctf/cross-tu-cyclic.exp4
-rw-r--r--gdb/testsuite/gdb.ctf/funcreturn.exp6
-rw-r--r--gdb/testsuite/gdb.dap/bt-nodebug.exp1
-rw-r--r--gdb/testsuite/gdb.dap/catch-exception.exp16
-rw-r--r--gdb/testsuite/gdb.dap/catch-exception/prog.adb5
-rw-r--r--gdb/testsuite/gdb.dap/eof.exp6
-rw-r--r--gdb/testsuite/gdb.dap/scopes.c2
-rw-r--r--gdb/testsuite/gdb.dap/scopes.exp44
-rw-r--r--gdb/testsuite/gdb.debuginfod/corefile-mapped-file.exp19
-rw-r--r--gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.exp24
-rw-r--r--gdb/testsuite/gdb.debuginfod/solib-with-soname.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/am33.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/basics.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/hppa.exp14
-rw-r--r--gdb/testsuite/gdb.disasm/mn10300.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/sh3.exp2
-rw-r--r--gdb/testsuite/gdb.dlang/circular.exp56
-rw-r--r--gdb/testsuite/gdb.dlang/demangle.exp2
-rw-r--r--gdb/testsuite/gdb.dlang/dlang-start-2.exp24
-rw-r--r--gdb/testsuite/gdb.dlang/expression.exp2
-rw-r--r--gdb/testsuite/gdb.dlang/primitive-types.exp2
-rw-r--r--gdb/testsuite/gdb.dlang/properties.exp2
-rw-r--r--gdb/testsuite/gdb.dlang/watch-loc.exp22
-rw-r--r--gdb/testsuite/gdb.dwarf2/DW_OP_piece_with_DW_OP_GNU_uninit.exp28
-rw-r--r--gdb/testsuite/gdb.dwarf2/ada-array-bound.exp45
-rw-r--r--gdb/testsuite/gdb.dwarf2/ada-cold-name.exp24
-rw-r--r--gdb/testsuite/gdb.dwarf2/ada-linkage-name.exp28
-rw-r--r--gdb/testsuite/gdb.dwarf2/ada-thick-pointer.exp44
-rw-r--r--gdb/testsuite/gdb.dwarf2/ada-valprint-error.exp52
-rw-r--r--gdb/testsuite/gdb.dwarf2/arr-opt-out.exp44
-rw-r--r--gdb/testsuite/gdb.dwarf2/arr-stride.exp78
-rw-r--r--gdb/testsuite/gdb.dwarf2/arr-subrange.exp70
-rw-r--r--gdb/testsuite/gdb.dwarf2/assign-variable-value-to-register.exp28
-rw-r--r--gdb/testsuite/gdb.dwarf2/atomic-type.exp92
-rw-r--r--gdb/testsuite/gdb.dwarf2/backward-spec-inter-cu.exp30
-rw-r--r--gdb/testsuite/gdb.dwarf2/bad-regnum.exp32
-rw-r--r--gdb/testsuite/gdb.dwarf2/bitfield-parent-optimized-out.exp36
-rw-r--r--gdb/testsuite/gdb.dwarf2/calling-convention.exp20
-rw-r--r--gdb/testsuite/gdb.dwarf2/clang-cli-macro.exp20
-rw-r--r--gdb/testsuite/gdb.dwarf2/clztest.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/comp-unit-lang.exp10
-rw-r--r--gdb/testsuite/gdb.dwarf2/corrupt.exp26
-rw-r--r--gdb/testsuite/gdb.dwarf2/count.exp85
-rw-r--r--gdb/testsuite/gdb.dwarf2/cpp-linkage-name.exp44
-rw-r--r--gdb/testsuite/gdb.dwarf2/cu-empty-name.exp8
-rw-r--r--gdb/testsuite/gdb.dwarf2/cu-no-addrs.exp10
-rw-r--r--gdb/testsuite/gdb.dwarf2/data-loc.exp136
-rw-r--r--gdb/testsuite/gdb.dwarf2/debug-aranges-duplicate-offset-warning.exp20
-rw-r--r--gdb/testsuite/gdb.dwarf2/debug-names-bad-cu-index.exp28
-rw-r--r--gdb/testsuite/gdb.dwarf2/debug-names-duplicate-cu.exp20
-rw-r--r--gdb/testsuite/gdb.dwarf2/debug-names-missing-cu.exp24
-rw-r--r--gdb/testsuite/gdb.dwarf2/debug-names-tu.exp.tcl36
-rw-r--r--gdb/testsuite/gdb.dwarf2/debug-names.exp20
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw-form-ref-addr-with-type-units.exp28
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw-form-strx.exp.tcl16
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-align.exp50
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-aranges.exp7
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-bad-abstract-origin.exp78
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-bad-elf.exp62
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.exp31
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.exp18
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-bfloat16.exp40
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-complex-parts.exp80
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-disasm-over-non-stmt.exp14
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-empty-file-name.exp10
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-entry-pc.exp152
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-entry-points.c17
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-entry-points.exp141
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-entry-value-2.exp36
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.exp.tcl44
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-fixed-point.exp170
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-gas-workaround.exp92
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp26
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-header-1.exp34
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-header-2.exp34
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-header-3.exp34
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.exp142
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.exp34
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.exp40
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-with-lexical-scope.exp58
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inter-cu-error-2.exp8
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inter-cu-error.exp12
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inter-cu-forth-and-back.exp16
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inter-cu-symbol.exp32
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-is-stmt-2.exp18
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-is-stmt.exp24
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-lexical-block-bare.exp22
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-line-number-zero.exp18
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-lines.exp22
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-main-no-line-number.exp8
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.exp4
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-multiple-debug-info.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.exp22
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-noloc.exp188
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.exp74
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp14
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-prologue-end-2.exp22
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-prologue-end.exp16
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp20
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ranges-func.exp58
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.exp10
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ranges-psym-warning.exp34
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp38
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp22
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-skipped-line-entries.exp12
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-step-between-different-inline-functions.exp64
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-step-between-inline-func-blocks.exp44
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-step-out-of-function-no-stmt.exp14
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-symtab-includes-lookup.exp14
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-symtab-includes.exp6
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-unexpected-entry-pc.exp40
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-unspecified-type.exp30
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-unusual-field-names.exp44
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-using-debug-str.exp50
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-vendor-extended-opcode.exp10
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-weird-type-len.exp48
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-wrong-mangled-name.exp20
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-zero-range.exp23
-rw-r--r--gdb/testsuite/gdb.dwarf2/dwz-unused-pu.exp18
-rw-r--r--gdb/testsuite/gdb.dwarf2/dwz.exp42
-rw-r--r--gdb/testsuite/gdb.dwarf2/dwzbuildid.tcl20
-rw-r--r--gdb/testsuite/gdb.dwarf2/dwznolink.exp10
-rw-r--r--gdb/testsuite/gdb.dwarf2/dyn-type-unallocated.exp64
-rw-r--r--gdb/testsuite/gdb.dwarf2/dynamic-bit-offset.exp45
-rw-r--r--gdb/testsuite/gdb.dwarf2/dynarr-ptr.exp136
-rw-r--r--gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp24
-rw-r--r--gdb/testsuite/gdb.dwarf2/entry-value-typedef.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/enum-type.exp70
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-absolute-dwo.exp64
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-base.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-dw-form-strx.exp18
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-loclists-pie.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-loclists.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-mix.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-multi-cu.exp86
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-relative-dwo.exp64
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-reread.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-with-type-unit.exp22
-rw-r--r--gdb/testsuite/gdb.dwarf2/formdata16.exp30
-rw-r--r--gdb/testsuite/gdb.dwarf2/fortran-var-string.exp94
-rw-r--r--gdb/testsuite/gdb.dwarf2/forward-spec-inter-cu.exp30
-rw-r--r--gdb/testsuite/gdb.dwarf2/forward-spec.exp26
-rw-r--r--gdb/testsuite/gdb.dwarf2/frame-inlined-in-outer-frame.exp50
-rw-r--r--gdb/testsuite/gdb.dwarf2/gdb-add-index-symlink.exp3
-rw-r--r--gdb/testsuite/gdb.dwarf2/gdb-add-index.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/gdb-index-tilde.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/gdb-index-types-dwarf5.exp6
-rw-r--r--gdb/testsuite/gdb.dwarf2/gdb-index.exp10
-rw-r--r--gdb/testsuite/gdb.dwarf2/implptr-64bit.exp68
-rw-r--r--gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp46
-rw-r--r--gdb/testsuite/gdb.dwarf2/implptrconst.exp44
-rw-r--r--gdb/testsuite/gdb.dwarf2/implptrpiece.exp54
-rw-r--r--gdb/testsuite/gdb.dwarf2/implref-array.exp50
-rw-r--r--gdb/testsuite/gdb.dwarf2/implref-const.exp34
-rw-r--r--gdb/testsuite/gdb.dwarf2/implref-global.exp36
-rw-r--r--gdb/testsuite/gdb.dwarf2/implref-struct.exp68
-rw-r--r--gdb/testsuite/gdb.dwarf2/imported-unit-abstract-const-value.exp32
-rw-r--r--gdb/testsuite/gdb.dwarf2/imported-unit-bp.exp.tcl32
-rw-r--r--gdb/testsuite/gdb.dwarf2/imported-unit-c.exp56
-rw-r--r--gdb/testsuite/gdb.dwarf2/imported-unit-runto-main.exp26
-rw-r--r--gdb/testsuite/gdb.dwarf2/imported-unit.exp60
-rw-r--r--gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.exp24
-rw-r--r--gdb/testsuite/gdb.dwarf2/inlined_subroutine-inheritance.exp122
-rw-r--r--gdb/testsuite/gdb.dwarf2/intbits.exp191
-rw-r--r--gdb/testsuite/gdb.dwarf2/loc-sec-offset.exp24
-rw-r--r--gdb/testsuite/gdb.dwarf2/locexpr-data-member-location.exp104
-rw-r--r--gdb/testsuite/gdb.dwarf2/loclists-multiple-cus.exp26
-rw-r--r--gdb/testsuite/gdb.dwarf2/loclists-sec-offset.exp74
-rw-r--r--gdb/testsuite/gdb.dwarf2/loclists-start-end.exp26
-rw-r--r--gdb/testsuite/gdb.dwarf2/macro-complaints.exp16
-rw-r--r--gdb/testsuite/gdb.dwarf2/macro-source-path-clang14-dw4.exp4
-rw-r--r--gdb/testsuite/gdb.dwarf2/macro-source-path-clang14-dw5.exp4
-rw-r--r--gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld234-dw5.exp4
-rw-r--r--gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld238-dw4.exp4
-rw-r--r--gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld238-dw5.exp4
-rw-r--r--gdb/testsuite/gdb.dwarf2/macro-source-path.exp.tcl26
-rw-r--r--gdb/testsuite/gdb.dwarf2/main-subprogram.exp24
-rw-r--r--gdb/testsuite/gdb.dwarf2/mega-enum.exp20
-rw-r--r--gdb/testsuite/gdb.dwarf2/method-ptr.exp38
-rw-r--r--gdb/testsuite/gdb.dwarf2/missing-line-table.exp18
-rw-r--r--gdb/testsuite/gdb.dwarf2/missing-sig-type.exp10
-rw-r--r--gdb/testsuite/gdb.dwarf2/missing-type-name-for-templates.exp88
-rw-r--r--gdb/testsuite/gdb.dwarf2/missing-type-name.exp52
-rw-r--r--gdb/testsuite/gdb.dwarf2/multidictionary.exp88
-rw-r--r--gdb/testsuite/gdb.dwarf2/nameless-enum.exp20
-rw-r--r--gdb/testsuite/gdb.dwarf2/negative-data-member-location.exp30
-rw-r--r--gdb/testsuite/gdb.dwarf2/nonvar-access.exp138
-rw-r--r--gdb/testsuite/gdb.dwarf2/nostaticblock.exp4
-rw-r--r--gdb/testsuite/gdb.dwarf2/opaque-type-lookup.exp104
-rw-r--r--gdb/testsuite/gdb.dwarf2/opt-out-not-implptr.exp48
-rw-r--r--gdb/testsuite/gdb.dwarf2/rnglists-multiple-cus.exp8
-rw-r--r--gdb/testsuite/gdb.dwarf2/rnglists-sec-offset.exp20
-rw-r--r--gdb/testsuite/gdb.dwarf2/rust-enum.exp64
-rw-r--r--gdb/testsuite/gdb.dwarf2/self-spec.exp14
-rw-r--r--gdb/testsuite/gdb.dwarf2/short-build-id.exp16
-rw-r--r--gdb/testsuite/gdb.dwarf2/shortpiece.exp74
-rw-r--r--gdb/testsuite/gdb.dwarf2/static-optimized-out.exp14
-rw-r--r--gdb/testsuite/gdb.dwarf2/staticvirtual.exp20
-rw-r--r--gdb/testsuite/gdb.dwarf2/struct-decl.exp22
-rw-r--r--gdb/testsuite/gdb.dwarf2/struct-with-sig-2.exp52
-rw-r--r--gdb/testsuite/gdb.dwarf2/struct-with-sig.exp52
-rw-r--r--gdb/testsuite/gdb.dwarf2/subrange-enum.exp42
-rw-r--r--gdb/testsuite/gdb.dwarf2/subrange.exp58
-rw-r--r--gdb/testsuite/gdb.dwarf2/symbol_needs_eval_fail.exp20
-rw-r--r--gdb/testsuite/gdb.dwarf2/symbol_needs_eval_timeout.exp36
-rw-r--r--gdb/testsuite/gdb.dwarf2/symtab-producer.exp42
-rw-r--r--gdb/testsuite/gdb.dwarf2/template-specification-full-name.exp18
-rw-r--r--gdb/testsuite/gdb.dwarf2/typeddwarf.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/typedef-void-finish.exp28
-rw-r--r--gdb/testsuite/gdb.dwarf2/utf-rust.exp20
-rw-r--r--gdb/testsuite/gdb.dwarf2/var-access.exp148
-rw-r--r--gdb/testsuite/gdb.dwarf2/variant.exp128
-rw-r--r--gdb/testsuite/gdb.dwarf2/varval.exp238
-rw-r--r--gdb/testsuite/gdb.dwarf2/void-type.exp56
-rw-r--r--gdb/testsuite/gdb.fortran/allocated.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/array-bounds.exp4
-rw-r--r--gdb/testsuite/gdb.fortran/array-slices-sub-slices.exp6
-rw-r--r--gdb/testsuite/gdb.fortran/array-slices.exp4
-rw-r--r--gdb/testsuite/gdb.fortran/associated.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/assumedrank.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/call-no-debug.exp4
-rw-r--r--gdb/testsuite/gdb.fortran/charset.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/class-allocatable-array.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/common-block.exp4
-rw-r--r--gdb/testsuite/gdb.fortran/completion.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/debug-expr.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/empty-string.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/exprs.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/huge.exp8
-rw-r--r--gdb/testsuite/gdb.fortran/info-main.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/intrinsic-precedence.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/intvar-array.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/intvar-dynamic-types.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/lbound-ubound.exp4
-rw-r--r--gdb/testsuite/gdb.fortran/library-module.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/limited-length.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/mixed-lang-stack.exp6
-rw-r--r--gdb/testsuite/gdb.fortran/module.exp4
-rw-r--r--gdb/testsuite/gdb.fortran/multi-dim.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/namelist.exp4
-rwxr-xr-xgdb/testsuite/gdb.fortran/nested-funcs.exp2
-rwxr-xr-xgdb/testsuite/gdb.fortran/oop_extend_type.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/pointer-to-pointer.exp2
-rwxr-xr-xgdb/testsuite/gdb.fortran/print_type.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/rank.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/shape.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/short-circuit-argument-list.exp8
-rw-r--r--gdb/testsuite/gdb.fortran/size.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/sizeof.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/types.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-array.exp6
-rw-r--r--gdb/testsuite/gdb.fortran/vla-datatypes.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-history.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-ptr-info.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-ptype-sub.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-ptype.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-sizeof.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-value-sub.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-value.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/whatis_type.exp2
-rw-r--r--gdb/testsuite/gdb.gdb/index-file.exp16
-rw-r--r--gdb/testsuite/gdb.gdb/python-helper.exp2
-rw-r--r--gdb/testsuite/gdb.gdb/selftest.exp8
-rw-r--r--gdb/testsuite/gdb.gdb/unittest.exp2
-rw-r--r--gdb/testsuite/gdb.go/basic-types.exp4
-rw-r--r--gdb/testsuite/gdb.go/integers.exp4
-rw-r--r--gdb/testsuite/gdb.go/package.exp2
-rw-r--r--gdb/testsuite/gdb.go/print.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-arch.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-block.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-breakpoint.exp28
-rw-r--r--gdb/testsuite/gdb.guile/scm-cmd.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-color.exp1
-rw-r--r--gdb/testsuite/gdb.guile/scm-disasm.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-equal.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-frame-args.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-frame-inline.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-frame.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-iterator.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-lazy-string.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-math.exp10
-rw-r--r--gdb/testsuite/gdb.guile/scm-objfile-script.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-objfile.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-parameter.exp94
-rw-r--r--gdb/testsuite/gdb.guile/scm-ports.exp6
-rw-r--r--gdb/testsuite/gdb.guile/scm-pretty-print.exp9
-rw-r--r--gdb/testsuite/gdb.guile/scm-section-script.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-symbol.exp8
-rw-r--r--gdb/testsuite/gdb.guile/scm-symtab.exp4
-rw-r--r--gdb/testsuite/gdb.guile/scm-type.exp9
-rw-r--r--gdb/testsuite/gdb.guile/scm-value-cc.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-value.exp11
-rw-r--r--gdb/testsuite/gdb.guile/types-module.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/cp-replace-typedefs-ns-template.exp4
-rw-r--r--gdb/testsuite/gdb.linespec/cpcompletion.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/explicit.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/keywords.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/line-breakpoint-outside-function.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/ls-errs.exp7
-rw-r--r--gdb/testsuite/gdb.linespec/macro-relative.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/skip-two.exp4
-rw-r--r--gdb/testsuite/gdb.linespec/thread.exp2
-rw-r--r--gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp4
-rw-r--r--gdb/testsuite/gdb.mi/gdb2549.exp2
-rw-r--r--gdb/testsuite/gdb.mi/gdb669.exp2
-rw-r--r--gdb/testsuite/gdb.mi/gdb701.exp2
-rw-r--r--gdb/testsuite/gdb.mi/gdb792.exp2
-rw-r--r--gdb/testsuite/gdb.mi/interrupt-thread-group.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-add-inferior.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-async-run.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-async.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-break-qualified.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-break.exp4
-rw-r--r--gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp6
-rw-r--r--gdb/testsuite/gdb.mi/mi-breakpoint-multiple-locations.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-breakpoint-script.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp4
-rw-r--r--gdb/testsuite/gdb.mi/mi-catch-load.exp4
-rw-r--r--gdb/testsuite/gdb.mi/mi-cli.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-cmd-user-context.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-complete.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-condbreak-fail.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-condbreak-throw.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-console.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-corefile.exp1
-rw-r--r--gdb/testsuite/gdb.mi/mi-detach.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-disassemble.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-dlmopen.exp16
-rw-r--r--gdb/testsuite/gdb.mi/mi-dprintf-modified.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-dprintf-pending.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-dprintf.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-eval.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-exec-run.exp5
-rw-r--r--gdb/testsuite/gdb.mi/mi-exit-code.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-fill-memory.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-fortran-modules.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-frame-regs.exp4
-rw-r--r--gdb/testsuite/gdb.mi/mi-fullname-deleted.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-info-os.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-info-sources.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-inheritance-syntax-error.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-logging.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-memory-changed.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-nonstop-exit.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-nonstop.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-ns-stale-regcache.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-nsintrall.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-nsmoribund.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-nsthrexec.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-pending.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-pthreads.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-py-modify-bp.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-read-memory.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-record-changed.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-reg-undefined.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-regs.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-return.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-simplerun.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-solib.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-stack.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-start.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-stepi.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-stepn.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-sym-info.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-syn-frame.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-thread-bp-deleted.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-thread-specific-bp.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-threads-interrupt.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-until.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-block.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-child-f.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-child.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-cmd.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-cp.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-create-rtti.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-display.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-invalidate.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-rtti.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-vla-c99.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-vla-fortran.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-watch-nonstop.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-watch.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi2-cli-display.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi2-var-child.exp2
-rw-r--r--gdb/testsuite/gdb.mi/new-ui-mi-sync.exp2
-rw-r--r--gdb/testsuite/gdb.mi/pr11022.exp2
-rw-r--r--gdb/testsuite/gdb.mi/print-simple-values.exp2
-rw-r--r--gdb/testsuite/gdb.mi/run-with-two-mi-uis.exp2
-rw-r--r--gdb/testsuite/gdb.mi/user-selected-context-sync.exp2
-rw-r--r--gdb/testsuite/gdb.multi/attach-no-multi-process.exp2
-rw-r--r--gdb/testsuite/gdb.multi/attach-while-running.exp2
-rw-r--r--gdb/testsuite/gdb.multi/gdb-settings.exp15
-rw-r--r--gdb/testsuite/gdb.multi/inferior-specific-bp.exp8
-rw-r--r--gdb/testsuite/gdb.multi/interrupt-bg-exec.c47
-rw-r--r--gdb/testsuite/gdb.multi/interrupt-bg-exec.exp143
-rw-r--r--gdb/testsuite/gdb.multi/multi-arch-exec.exp6
-rw-r--r--gdb/testsuite/gdb.multi/multi-arch.exp6
-rw-r--r--gdb/testsuite/gdb.multi/multi-exit.exp2
-rw-r--r--gdb/testsuite/gdb.multi/multi-kill.exp2
-rw-r--r--gdb/testsuite/gdb.multi/multi-re-run.exp14
-rw-r--r--gdb/testsuite/gdb.multi/multi-target.exp.tcl14
-rw-r--r--gdb/testsuite/gdb.multi/multi-term-settings.exp10
-rw-r--r--gdb/testsuite/gdb.multi/pending-bp-del-inferior.exp2
-rw-r--r--gdb/testsuite/gdb.multi/pending-bp.exp2
-rw-r--r--gdb/testsuite/gdb.multi/remote-with-running-inferior.c38
-rw-r--r--gdb/testsuite/gdb.multi/remote-with-running-inferior.exp171
-rw-r--r--gdb/testsuite/gdb.multi/remove-inferiors.exp2
-rw-r--r--gdb/testsuite/gdb.multi/run-only-second-inf.exp2
-rw-r--r--gdb/testsuite/gdb.multi/sched-multi-add-inferior.exp109
-rw-r--r--gdb/testsuite/gdb.multi/start-inferior-specific.exp5
-rw-r--r--gdb/testsuite/gdb.multi/watchpoint-multi-exit.exp4
-rw-r--r--gdb/testsuite/gdb.multi/watchpoint-multi.exp2
-rw-r--r--gdb/testsuite/gdb.objc/basicclass.exp2
-rw-r--r--gdb/testsuite/gdb.objc/nondebug.exp2
-rw-r--r--gdb/testsuite/gdb.objc/objcdecode.exp2
-rw-r--r--gdb/testsuite/gdb.objc/print.exp2
-rw-r--r--gdb/testsuite/gdb.opencl/callfuncs.exp7
-rw-r--r--gdb/testsuite/gdb.opencl/vec_comps.exp50
-rw-r--r--gdb/testsuite/gdb.opt/inline-break.exp10
-rw-r--r--gdb/testsuite/gdb.opt/inline-cmds.exp2
-rw-r--r--gdb/testsuite/gdb.opt/inline-entry.exp4
-rw-r--r--gdb/testsuite/gdb.opt/inline-small-func.exp2
-rw-r--r--gdb/testsuite/gdb.opt/solib-intra-step.exp2
-rw-r--r--gdb/testsuite/gdb.pascal/floats.exp6
-rw-r--r--gdb/testsuite/gdb.pascal/gdb11492.exp4
-rw-r--r--gdb/testsuite/gdb.pascal/hello.exp2
-rw-r--r--gdb/testsuite/gdb.pascal/integers.exp4
-rw-r--r--gdb/testsuite/gdb.pascal/print.exp2
-rw-r--r--gdb/testsuite/gdb.pascal/types.exp2
-rw-r--r--gdb/testsuite/gdb.perf/backtrace.exp4
-rw-r--r--gdb/testsuite/gdb.perf/gmonster1.exp2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster2.exp2
-rw-r--r--gdb/testsuite/gdb.perf/single-step.exp4
-rw-r--r--gdb/testsuite/gdb.perf/skip-command.exp8
-rw-r--r--gdb/testsuite/gdb.perf/skip-prologue.exp4
-rw-r--r--gdb/testsuite/gdb.perf/solib.exp4
-rw-r--r--gdb/testsuite/gdb.perf/template-breakpoints.exp4
-rw-r--r--gdb/testsuite/gdb.python/make-visualizer.exp176
-rw-r--r--gdb/testsuite/gdb.python/pretty-print-call-by-hand.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-arch-reg-groups.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-arch-reg-names.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-arch.exp4
-rw-r--r--gdb/testsuite/gdb.python/py-as-string.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-auto-load-chaining.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-bp-locations.exp4
-rw-r--r--gdb/testsuite/gdb.python/py-breakpoint-create-fail.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-caller-is.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-color-pagination.exp137
-rw-r--r--gdb/testsuite/gdb.python/py-color-pagination.py46
-rw-r--r--gdb/testsuite/gdb.python/py-color.exp1
-rw-r--r--gdb/testsuite/gdb.python/py-disasm.exp.tcl10
-rw-r--r--gdb/testsuite/gdb.python/py-event-load.exp6
-rw-r--r--gdb/testsuite/gdb.python/py-exec-file.exp8
-rw-r--r--gdb/testsuite/gdb.python/py-explore-cc.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-explore.exp6
-rw-r--r--gdb/testsuite/gdb.python/py-finish-breakpoint.exp8
-rw-r--r--gdb/testsuite/gdb.python/py-finish-breakpoint2.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-format-address.exp12
-rw-r--r--gdb/testsuite/gdb.python/py-format-string.exp9
-rw-r--r--gdb/testsuite/gdb.python/py-frame-args.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-framefilter-addr.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-framefilter-mi.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-inferior.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-label-symbol-value.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-lazy-string.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-linetable-empty.exp8
-rw-r--r--gdb/testsuite/gdb.python/py-linetable.exp4
-rw-r--r--gdb/testsuite/gdb.python/py-mi-events.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-mi-objfile.exp4
-rw-r--r--gdb/testsuite/gdb.python/py-mi-var-info-path-expression.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-mi.exp4
-rw-r--r--gdb/testsuite/gdb.python/py-missing-objfile.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-objfile-script.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-objfile.exp11
-rw-r--r--gdb/testsuite/gdb.python/py-parameter.exp10
-rw-r--r--gdb/testsuite/gdb.python/py-pp-cast.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-pp-integral.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-pp-maint.exp8
-rw-r--r--gdb/testsuite/gdb.python/py-pp-re-notag.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-pp-registration.exp10
-rw-r--r--gdb/testsuite/gdb.python/py-prettyprint.exp9
-rw-r--r--gdb/testsuite/gdb.python/py-progspace.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-read-memory-leak.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-record-btrace.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-record-full.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-section-script.exp6
-rw-r--r--gdb/testsuite/gdb.python/py-source-styling.exp8
-rw-r--r--gdb/testsuite/gdb.python/py-startup-opt.exp1
-rw-r--r--gdb/testsuite/gdb.python/py-strfns.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-styled-execute.exp1
-rw-r--r--gdb/testsuite/gdb.python/py-sym-artificial.exp16
-rw-r--r--gdb/testsuite/gdb.python/py-symbol.exp10
-rw-r--r--gdb/testsuite/gdb.python/py-thread-exited.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-thread-exited.py2
-rw-r--r--gdb/testsuite/gdb.python/py-thrhandle.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-type.exp11
-rw-r--r--gdb/testsuite/gdb.python/py-value-cc.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-value.c9
-rw-r--r--gdb/testsuite/gdb.python/py-value.exp61
-rw-r--r--gdb/testsuite/gdb.python/py-varobj.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-xmethods.exp2
-rw-r--r--gdb/testsuite/gdb.python/python.exp4
-rw-r--r--gdb/testsuite/gdb.replay/connect.exp6
-rw-r--r--gdb/testsuite/gdb.replay/missing-thread.c61
-rw-r--r--gdb/testsuite/gdb.replay/missing-thread.exp237
-rw-r--r--gdb/testsuite/gdb.reverse/aarch64-mops.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.exp6
-rw-r--r--gdb/testsuite/gdb.reverse/break-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/consecutive-precsave.exp6
-rw-r--r--gdb/testsuite/gdb.reverse/consecutive-reverse.exp8
-rw-r--r--gdb/testsuite/gdb.reverse/finish-precsave.exp4
-rw-r--r--gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/finish-reverse-next.exp4
-rw-r--r--gdb/testsuite/gdb.reverse/finish-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/fstatat-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/getrandom.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/getresuid-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/i386-avx-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/i386-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/i386-sse-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/i387-env-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/insn-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/machinestate-precsave.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/machinestate.exp4
-rw-r--r--gdb/testsuite/gdb.reverse/maint-print-instruction.exp4
-rw-r--r--gdb/testsuite/gdb.reverse/map-to-same-line.exp16
-rw-r--r--gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/pipe-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/readv-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/recursion.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/recvmsg-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/s390-mvcle.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/sigall-precsave.exp10
-rw-r--r--gdb/testsuite/gdb.reverse/sigall-reverse.exp6
-rw-r--r--gdb/testsuite/gdb.reverse/singlejmp-reverse.exp6
-rw-r--r--gdb/testsuite/gdb.reverse/solib-precsave.exp4
-rw-r--r--gdb/testsuite/gdb.reverse/solib-reverse.exp6
-rw-r--r--gdb/testsuite/gdb.reverse/step-precsave.exp4
-rw-r--r--gdb/testsuite/gdb.reverse/step-reverse.exp4
-rw-r--r--gdb/testsuite/gdb.reverse/until-precsave.exp4
-rw-r--r--gdb/testsuite/gdb.reverse/until-reverse.exp6
-rw-r--r--gdb/testsuite/gdb.reverse/waitpid-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/watch-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.rocm/code-object-load-while-breakpoint-hit.exp3
-rw-r--r--gdb/testsuite/gdb.rocm/displaced-stepping.exp3
-rw-r--r--gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu.exp3
-rw-r--r--gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu.exp3
-rw-r--r--gdb/testsuite/gdb.rocm/mi-attach.cpp4
-rw-r--r--gdb/testsuite/gdb.rocm/multi-inferior-gpu.exp3
-rw-r--r--gdb/testsuite/gdb.rocm/precise-memory-exec.exp3
-rw-r--r--gdb/testsuite/gdb.rocm/precise-memory-multi-inferiors.exp6
-rw-r--r--gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.exp3
-rw-r--r--gdb/testsuite/gdb.rocm/precise-memory.exp3
-rw-r--r--gdb/testsuite/gdb.rocm/simple.exp3
-rw-r--r--gdb/testsuite/gdb.rust/modules.exp2
-rw-r--r--gdb/testsuite/gdb.rust/traits.exp2
-rw-r--r--gdb/testsuite/gdb.server/argument-errors.exp81
-rw-r--r--gdb/testsuite/gdb.server/bkpt-other-inferior.exp2
-rw-r--r--gdb/testsuite/gdb.server/connect-stopped-target.exp2
-rw-r--r--gdb/testsuite/gdb.server/connect-with-no-symbol-file.exp2
-rw-r--r--gdb/testsuite/gdb.server/connect-without-multi-process.exp2
-rw-r--r--gdb/testsuite/gdb.server/exit-multiple-threads.exp5
-rw-r--r--gdb/testsuite/gdb.server/ext-attach.exp2
-rw-r--r--gdb/testsuite/gdb.server/ext-run.exp2
-rw-r--r--gdb/testsuite/gdb.server/extended-remote-restart.exp4
-rw-r--r--gdb/testsuite/gdb.server/inferior-args.c27
-rw-r--r--gdb/testsuite/gdb.server/inferior-args.exp156
-rw-r--r--gdb/testsuite/gdb.server/monitor-exit-quit.exp4
-rw-r--r--gdb/testsuite/gdb.server/non-existing-program.exp4
-rw-r--r--gdb/testsuite/gdb.server/reconnect-ctrl-c.exp2
-rw-r--r--gdb/testsuite/gdb.server/server-exec-info.exp2
-rw-r--r--gdb/testsuite/gdb.server/server-kill.exp2
-rw-r--r--gdb/testsuite/gdb.server/server-pipe.exp2
-rw-r--r--gdb/testsuite/gdb.server/server-run.exp2
-rw-r--r--gdb/testsuite/gdb.server/stop-reply-no-thread-multi.exp4
-rw-r--r--gdb/testsuite/gdb.server/stop-reply-no-thread.exp4
-rw-r--r--gdb/testsuite/gdb.testsuite/board-sanity.exp6
-rw-r--r--gdb/testsuite/gdb.testsuite/gdb-caching-proc-consistency.exp9
-rw-r--r--gdb/testsuite/gdb.testsuite/gdb-caching-proc.exp21
-rw-r--r--gdb/testsuite/gdb.testsuite/mount-point-map.exp49
-rw-r--r--gdb/testsuite/gdb.testsuite/with-override.exp8
-rw-r--r--gdb/testsuite/gdb.threads/access-mem-running-thread-exit.exp10
-rw-r--r--gdb/testsuite/gdb.threads/async.exp2
-rw-r--r--gdb/testsuite/gdb.threads/attach-into-signal.exp6
-rw-r--r--gdb/testsuite/gdb.threads/attach-non-stop.exp2
-rw-r--r--gdb/testsuite/gdb.threads/attach-stopped.exp6
-rw-r--r--gdb/testsuite/gdb.threads/bp_in_thread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/break-while-running.exp8
-rw-r--r--gdb/testsuite/gdb.threads/check-libthread-db.exp6
-rw-r--r--gdb/testsuite/gdb.threads/clone-attach-detach.exp4
-rw-r--r--gdb/testsuite/gdb.threads/clone-thread_db.exp6
-rw-r--r--gdb/testsuite/gdb.threads/continue-pending-after-query.exp2
-rw-r--r--gdb/testsuite/gdb.threads/continue-pending-status.exp4
-rw-r--r--gdb/testsuite/gdb.threads/corethreads.exp1
-rw-r--r--gdb/testsuite/gdb.threads/create-fail.exp2
-rw-r--r--gdb/testsuite/gdb.threads/del-pending-thread-bp.exp2
-rw-r--r--gdb/testsuite/gdb.threads/detach-step-over.exp6
-rw-r--r--gdb/testsuite/gdb.threads/execl.exp2
-rw-r--r--gdb/testsuite/gdb.threads/foll-fork-other-thread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/fork-child-threads.exp2
-rw-r--r--gdb/testsuite/gdb.threads/fork-plus-threads.exp2
-rw-r--r--gdb/testsuite/gdb.threads/fork-thread-pending.exp4
-rw-r--r--gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.exp4
-rw-r--r--gdb/testsuite/gdb.threads/gcore-thread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/hand-call-in-threads.exp4
-rw-r--r--gdb/testsuite/gdb.threads/hand-call-new-thread.exp4
-rw-r--r--gdb/testsuite/gdb.threads/ia64-sigill.exp2
-rw-r--r--gdb/testsuite/gdb.threads/inf-thr-count.exp4
-rw-r--r--gdb/testsuite/gdb.threads/infcall-from-bp-cond-other-thread-event.exp2
-rw-r--r--gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.exp2
-rw-r--r--gdb/testsuite/gdb.threads/infcall-from-bp-cond-single.exp2
-rw-r--r--gdb/testsuite/gdb.threads/infcall-from-bp-cond-timeout.exp2
-rw-r--r--gdb/testsuite/gdb.threads/infcall-thread-announce.exp2
-rw-r--r--gdb/testsuite/gdb.threads/info-threads-cur-sal.exp2
-rw-r--r--gdb/testsuite/gdb.threads/info-threads-options.exp4
-rw-r--r--gdb/testsuite/gdb.threads/interrupt-while-step-over.exp10
-rw-r--r--gdb/testsuite/gdb.threads/interrupted-hand-call.exp2
-rw-r--r--gdb/testsuite/gdb.threads/kill.exp2
-rw-r--r--gdb/testsuite/gdb.threads/killed.exp14
-rw-r--r--gdb/testsuite/gdb.threads/leader-exit-attach.exp2
-rw-r--r--gdb/testsuite/gdb.threads/leader-exit.exp2
-rw-r--r--gdb/testsuite/gdb.threads/linux-dp.exp10
-rw-r--r--gdb/testsuite/gdb.threads/local-watch-wrong-thread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/main-thread-exit-during-detach.exp2
-rw-r--r--gdb/testsuite/gdb.threads/manythreads.exp4
-rw-r--r--gdb/testsuite/gdb.threads/multi-create-ns-info-thr.exp2
-rw-r--r--gdb/testsuite/gdb.threads/multi-create.exp2
-rw-r--r--gdb/testsuite/gdb.threads/multiple-step-overs.exp2
-rw-r--r--gdb/testsuite/gdb.threads/multiple-successive-infcall.exp2
-rw-r--r--gdb/testsuite/gdb.threads/names.exp4
-rw-r--r--gdb/testsuite/gdb.threads/next-bp-other-thread.exp4
-rw-r--r--gdb/testsuite/gdb.threads/next-fork-exec-other-thread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/next-fork-other-thread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/no-unwaited-for-left.exp2
-rw-r--r--gdb/testsuite/gdb.threads/non-ldr-exc-1.exp2
-rw-r--r--gdb/testsuite/gdb.threads/non-ldr-exc-2.exp2
-rw-r--r--gdb/testsuite/gdb.threads/non-ldr-exc-3.exp2
-rw-r--r--gdb/testsuite/gdb.threads/non-ldr-exc-4.exp2
-rw-r--r--gdb/testsuite/gdb.threads/non-ldr-exit.exp2
-rw-r--r--gdb/testsuite/gdb.threads/non-stop-fair-events.exp2
-rw-r--r--gdb/testsuite/gdb.threads/omp-par-scope.exp4
-rw-r--r--gdb/testsuite/gdb.threads/pending-fork-event-detach-ns.exp2
-rw-r--r--gdb/testsuite/gdb.threads/pending-fork-event-detach.exp3
-rw-r--r--gdb/testsuite/gdb.threads/pending-step.exp2
-rw-r--r--gdb/testsuite/gdb.threads/print-threads.exp10
-rw-r--r--gdb/testsuite/gdb.threads/process-dies-while-detaching.exp20
-rw-r--r--gdb/testsuite/gdb.threads/process-dies-while-handling-bp.exp2
-rw-r--r--gdb/testsuite/gdb.threads/pthread_cond_wait.exp6
-rw-r--r--gdb/testsuite/gdb.threads/pthreads.exp2
-rw-r--r--gdb/testsuite/gdb.threads/queue-signal.exp4
-rw-r--r--gdb/testsuite/gdb.threads/schedlock-new-thread.exp6
-rw-r--r--gdb/testsuite/gdb.threads/schedlock-thread-exit.exp2
-rw-r--r--gdb/testsuite/gdb.threads/schedlock.exp10
-rw-r--r--gdb/testsuite/gdb.threads/siginfo-threads.exp2
-rw-r--r--gdb/testsuite/gdb.threads/signal-command-handle-nopass.exp2
-rw-r--r--gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp2
-rw-r--r--gdb/testsuite/gdb.threads/signal-delivered-right-thread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/signal-sigtrap.exp2
-rw-r--r--gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/sigstep-threads.exp4
-rw-r--r--gdb/testsuite/gdb.threads/sigthread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/staticthreads.exp10
-rw-r--r--gdb/testsuite/gdb.threads/step-N-all-progress.exp2
-rw-r--r--gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.exp4
-rw-r--r--gdb/testsuite/gdb.threads/step-over-exec.exp5
-rw-r--r--gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.exp2
-rw-r--r--gdb/testsuite/gdb.threads/step-over-thread-exit-while-stop-all-threads.exp2
-rw-r--r--gdb/testsuite/gdb.threads/step-over-thread-exit.exp2
-rw-r--r--gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.exp6
-rw-r--r--gdb/testsuite/gdb.threads/stepi-over-clone.exp8
-rw-r--r--gdb/testsuite/gdb.threads/stepi-random-signal.exp2
-rw-r--r--gdb/testsuite/gdb.threads/switch-threads.exp2
-rw-r--r--gdb/testsuite/gdb.threads/thread-bp-deleted.exp9
-rw-r--r--gdb/testsuite/gdb.threads/thread-execl.exp4
-rw-r--r--gdb/testsuite/gdb.threads/thread-find.exp2
-rw-r--r--gdb/testsuite/gdb.threads/thread-specific-bp.exp2
-rw-r--r--gdb/testsuite/gdb.threads/thread-specific.exp2
-rw-r--r--gdb/testsuite/gdb.threads/thread-unwindonsignal.exp2
-rw-r--r--gdb/testsuite/gdb.threads/thread_check.exp10
-rw-r--r--gdb/testsuite/gdb.threads/threadapply.exp12
-rw-r--r--gdb/testsuite/gdb.threads/threadcrash.exp13
-rw-r--r--gdb/testsuite/gdb.threads/threads-after-exec.exp4
-rw-r--r--gdb/testsuite/gdb.threads/threxit-hop-specific.exp2
-rw-r--r--gdb/testsuite/gdb.threads/tid-reuse.exp4
-rw-r--r--gdb/testsuite/gdb.threads/tls-core.exp4
-rw-r--r--gdb/testsuite/gdb.threads/tls-nodebug-pie.exp2
-rw-r--r--gdb/testsuite/gdb.threads/tls-nodebug.exp2
-rw-r--r--gdb/testsuite/gdb.threads/tls-sepdebug.exp2
-rw-r--r--gdb/testsuite/gdb.threads/tls-shared.exp4
-rw-r--r--gdb/testsuite/gdb.threads/tls-so_extern.exp2
-rw-r--r--gdb/testsuite/gdb.threads/tls-var.exp2
-rw-r--r--gdb/testsuite/gdb.threads/tls.exp18
-rw-r--r--gdb/testsuite/gdb.threads/vfork-follow-child-exec.exp2
-rw-r--r--gdb/testsuite/gdb.threads/vfork-follow-child-exit.exp2
-rw-r--r--gdb/testsuite/gdb.threads/vfork-multi-thread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/watchpoint-fork.exp6
-rw-r--r--gdb/testsuite/gdb.threads/watchthreads-reorder.exp4
-rw-r--r--gdb/testsuite/gdb.threads/watchthreads.exp30
-rw-r--r--gdb/testsuite/gdb.threads/watchthreads2.exp6
-rw-r--r--gdb/testsuite/gdb.threads/wp-replication.exp4
-rw-r--r--gdb/testsuite/gdb.trace/ax.exp2
-rw-r--r--gdb/testsuite/gdb.trace/basic-libipa.exp2
-rw-r--r--gdb/testsuite/gdb.trace/entry-values.exp60
-rw-r--r--gdb/testsuite/gdb.trace/ftrace-lock.exp4
-rw-r--r--gdb/testsuite/gdb.trace/mi-trace-frame-collected.exp2
-rw-r--r--gdb/testsuite/gdb.trace/mi-trace-unavailable.exp2
-rw-r--r--gdb/testsuite/gdb.trace/mi-traceframe-changed.exp10
-rw-r--r--gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp7
-rw-r--r--gdb/testsuite/gdb.trace/mi-tsv-changed.exp7
-rw-r--r--gdb/testsuite/gdb.trace/packetlen.exp2
-rw-r--r--gdb/testsuite/gdb.trace/passc-dyn.exp2
-rw-r--r--gdb/testsuite/gdb.trace/report.exp2
-rw-r--r--gdb/testsuite/gdb.trace/tfile.exp4
-rw-r--r--gdb/testsuite/gdb.trace/tfind.exp2
-rw-r--r--gdb/testsuite/gdb.trace/trace-mt.exp22
-rw-r--r--gdb/testsuite/gdb.trace/tsv.exp4
-rw-r--r--gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp242
-rw-r--r--gdb/testsuite/gdb.trace/while-dyn.exp2
-rw-r--r--gdb/testsuite/gdb.tui/basic.exp6
-rw-r--r--gdb/testsuite/gdb.tui/color-prompt.exp10
-rw-r--r--gdb/testsuite/gdb.tui/color-prompt.exp.tcl80
-rw-r--r--gdb/testsuite/gdb.tui/compact-source.exp8
-rw-r--r--gdb/testsuite/gdb.tui/empty.exp2
-rwxr-xr-x[-rw-r--r--]gdb/testsuite/gdb.tui/gdb.tcl (renamed from gdb/testsuite/gdb.testsuite/lmap.exp)14
-rw-r--r--gdb/testsuite/gdb.tui/main-2.exp6
-rw-r--r--gdb/testsuite/gdb.tui/main.exp5
-rw-r--r--gdb/testsuite/gdb.tui/new-layout.exp20
-rw-r--r--gdb/testsuite/gdb.tui/pr30056.exp5
-rw-r--r--gdb/testsuite/gdb.tui/source-search.c127
-rw-r--r--gdb/testsuite/gdb.tui/source-search.exp72
-rw-r--r--gdb/testsuite/gdb.tui/tui-disasm-long-lines.exp2
-rw-r--r--gdb/testsuite/gdb.tui/tui-disasm-styling.exp5
-rw-r--r--gdb/testsuite/gdb.tui/tui-focus.exp4
-rw-r--r--gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.S3
-rw-r--r--gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.exp14
-rw-r--r--gdb/testsuite/gdb.tui/tui-layout.exp6
-rw-r--r--gdb/testsuite/gdb.tui/tui-missing-src.exp6
-rw-r--r--gdb/testsuite/gdb.tui/tui-mode-switch.exp57
-rw-r--r--gdb/testsuite/gdb.tui/tuiterm-2.exp70
-rw-r--r--gdb/testsuite/gdb.tui/tuiterm.exp20
-rw-r--r--gdb/testsuite/gdb.tui/wrap-line.exp6
-rw-r--r--gdb/testsuite/lib/ada.exp3
-rw-r--r--gdb/testsuite/lib/cache.exp21
-rw-r--r--gdb/testsuite/lib/check-test-names.exp6
-rw-r--r--gdb/testsuite/lib/compile-support.exp10
-rw-r--r--gdb/testsuite/lib/dap-support.exp10
-rw-r--r--gdb/testsuite/lib/debuginfod-support.exp2
-rw-r--r--gdb/testsuite/lib/dwarf.exp100
-rw-r--r--gdb/testsuite/lib/future.exp13
-rw-r--r--gdb/testsuite/lib/gdb.exp692
-rw-r--r--gdb/testsuite/lib/gdb_watchdog.h75
-rw-r--r--gdb/testsuite/lib/gdbserver-support.exp2
-rw-r--r--gdb/testsuite/lib/mi-support.exp17
-rw-r--r--gdb/testsuite/lib/selftest-support.exp216
-rw-r--r--gdb/testsuite/lib/trace-support.exp4
-rw-r--r--gdb/testsuite/lib/tuiterm.exp2411
-rw-r--r--gdb/thread.c5
-rw-r--r--gdb/tic6x-tdep.c2
-rw-r--r--gdb/tid-parse.c7
-rw-r--r--gdb/top.c8
-rw-r--r--gdb/tracectf.c1
-rw-r--r--gdb/tracepoint.c26
-rw-r--r--gdb/tui/tui-disasm.c34
-rw-r--r--gdb/tui/tui-io.c4
-rw-r--r--gdb/tui/tui-layout.c7
-rw-r--r--gdb/tui/tui-status.c8
-rw-r--r--gdb/tui/tui-win.c3
-rw-r--r--gdb/tui/tui-winsource.c7
-rw-r--r--gdb/tui/tui.c13
-rw-r--r--gdb/type-stack.c6
-rw-r--r--gdb/type-stack.h143
-rw-r--r--gdb/typeprint.c7
-rw-r--r--gdb/ui-out.c2
-rw-r--r--gdb/ui-style.c6
-rw-r--r--gdb/unittests/command-def-selftests.c4
-rw-r--r--gdb/unittests/filtered_iterator-selftests.c52
-rw-r--r--gdb/unittests/format_pieces-selftests.c94
-rw-r--r--gdb/utils.c68
-rw-r--r--gdb/valops.c16
-rw-r--r--gdb/valprint.c1
-rw-r--r--gdb/value.c5
-rw-r--r--gdb/value.h9
-rw-r--r--gdb/version.in2
-rw-r--r--gdb/windows-nat.c6
-rw-r--r--gdb/windows-tdep.c92
-rw-r--r--gdb/windows-tdep.h1
-rw-r--r--gdb/x86-linux-nat.c50
-rw-r--r--gdb/x86-linux-nat.h11
-rw-r--r--gdb/x86-tdep.c21
-rw-r--r--gdb/x86-tdep.h9
-rw-r--r--gdb/xcoffread.c3
-rw-r--r--gdb/xml-support.c5
-rw-r--r--gdb/xstormy16-tdep.c8
-rw-r--r--gdb/z80-tdep.c18
-rw-r--r--gdbserver/ax.cc4
-rwxr-xr-xgdbserver/configure225
-rw-r--r--gdbserver/configure.ac2
-rw-r--r--gdbserver/gdbreplay.cc3
-rw-r--r--gdbserver/i387-fp.cc40
-rw-r--r--gdbserver/linux-aarch64-low.cc46
-rw-r--r--gdbserver/linux-amd64-ipa.cc10
-rw-r--r--gdbserver/linux-i386-ipa.cc6
-rw-r--r--gdbserver/linux-low.cc53
-rw-r--r--gdbserver/linux-low.h7
-rw-r--r--gdbserver/linux-riscv-low.cc24
-rw-r--r--gdbserver/linux-x86-low.cc44
-rw-r--r--gdbserver/remote-utils.cc7
-rw-r--r--gdbserver/server.cc128
-rw-r--r--gdbserver/server.h5
-rw-r--r--gdbserver/thread-db.cc3
-rw-r--r--gdbserver/tracepoint.cc3
-rw-r--r--gdbsupport/common-defs.h6
-rw-r--r--gdbsupport/common-utils.cc21
-rw-r--r--gdbsupport/common.m41
-rwxr-xr-xgdbsupport/configure112
-rw-r--r--gdbsupport/filestuff.cc8
-rw-r--r--gdbsupport/filtered-iterator.h24
-rw-r--r--gdbsupport/format.cc91
-rw-r--r--gdbsupport/format.h27
-rw-r--r--gdbsupport/gdb-safe-ctype.h49
-rw-r--r--gdbsupport/gdb_argv_vec.h15
-rw-r--r--gdbsupport/iterator-range.h1
-rw-r--r--gdbsupport/pathstuff.cc17
-rw-r--r--gdbsupport/x86-xstate.h7
-rw-r--r--gnulib/aclocal.m429
-rwxr-xr-xgnulib/configure34
-rw-r--r--gnulib/configure.ac10
-rw-r--r--gnulib/import/Makefile.am7
-rw-r--r--gnulib/import/Makefile.in33
-rw-r--r--gnulib/import/c-ctype.c21
-rw-r--r--gnulib/import/c-ctype.h366
-rw-r--r--gnulib/import/m4/gnulib-cache.m42
-rw-r--r--gnulib/import/m4/gnulib-comp.m43
-rwxr-xr-xgnulib/update-gnulib.sh1
-rw-r--r--gprof/Makefile.in3
-rw-r--r--gprof/aclocal.m42
-rwxr-xr-xgprof/configure405
-rw-r--r--gprof/po/ms.po151
-rw-r--r--gprof/po/sr.po151
-rw-r--r--gprof/testsuite/Makefile.in3
-rw-r--r--gprofng/Makefile.am2
-rw-r--r--gprofng/Makefile.in16
-rw-r--r--gprofng/aclocal.m424
-rwxr-xr-xgprofng/configure408
-rw-r--r--gprofng/doc/Makefile.in14
-rw-r--r--gprofng/gp-display-html/Makefile.in14
-rw-r--r--gprofng/libcollector/Makefile.am2
-rw-r--r--gprofng/libcollector/Makefile.in7
-rw-r--r--gprofng/libcollector/aclocal.m42
-rwxr-xr-xgprofng/libcollector/configure405
-rw-r--r--gprofng/src/Makefile.in14
-rw-r--r--include/coff/external.h174
-rw-r--r--include/coff/internal.h268
-rw-r--r--include/ctf.h3
-rw-r--r--include/elf/common.h16
-rw-r--r--include/opcode/aarch64.h130
-rw-r--r--include/same-inode.h47
-rw-r--r--include/vms/eihd.h2
-rw-r--r--ld/ChangeLog49
-rw-r--r--ld/Makefile.am3
-rw-r--r--ld/Makefile.in9
-rw-r--r--ld/NEWS11
-rw-r--r--ld/aclocal.m42
-rw-r--r--ld/config.in8
-rwxr-xr-xld/configure454
-rw-r--r--ld/configure.ac38
-rw-r--r--ld/configure.tgt7
-rw-r--r--ld/emulparams/aarch64cloudabi.sh37
-rw-r--r--ld/emulparams/aarch64cloudabib.sh2
-rw-r--r--ld/emulparams/elf32_x86_64.sh4
-rw-r--r--ld/emulparams/elf64_sparc.sh10
-rw-r--r--ld/emulparams/elf64_sparc_sol2.sh1
-rw-r--r--ld/emulparams/elf_i386.sh4
-rw-r--r--ld/emulparams/elf_i386_fbsd.sh1
-rw-r--r--ld/emulparams/elf_i386_haiku.sh1
-rw-r--r--ld/emulparams/elf_x86_64.sh4
-rw-r--r--ld/emulparams/elf_x86_64_cloudabi.sh2
-rw-r--r--ld/emulparams/elf_x86_64_fbsd.sh1
-rw-r--r--ld/emulparams/elf_x86_64_haiku.sh1
-rw-r--r--ld/emulparams/elf_x86_64_sol2.sh2
-rw-r--r--ld/emultempl/elf-i386-glibc.em77
-rw-r--r--ld/emultempl/elf-x86-64-glibc.em37
-rw-r--r--ld/emultempl/elf-x86-64.em68
-rw-r--r--ld/emultempl/elf-x86-glibc.em70
-rw-r--r--ld/emultempl/elf-x86.em58
-rw-r--r--ld/emultempl/solaris2-x86-64.em23
-rw-r--r--ld/emultempl/solaris2.em5
-rw-r--r--ld/ld.texi28
-rw-r--r--ld/ldfile.c85
-rw-r--r--ld/ldlang.c103
-rw-r--r--ld/ldlang.h2
-rw-r--r--ld/ldlex.h8
-rw-r--r--ld/ldmain.c8
-rw-r--r--ld/lexsup.c27
-rw-r--r--ld/libdep_plugin.c2
-rw-r--r--ld/pe-dll.c13
-rw-r--r--ld/plugin.c2
-rw-r--r--ld/po/BLD-POTFILES.in3
-rw-r--r--ld/po/de.po3586
-rw-r--r--ld/po/es.po617
-rw-r--r--ld/po/fi.po2
-rw-r--r--ld/po/pt_BR.po2
-rw-r--r--ld/po/ru.po2
-rw-r--r--ld/po/sr.po2960
-rw-r--r--ld/scripttempl/elf.sc2
-rw-r--r--ld/testplug.c2
-rw-r--r--ld/testplug2.c2
-rw-r--r--ld/testplug3.c2
-rw-r--r--ld/testplug4.c2
-rw-r--r--ld/testsuite/config/default.exp22
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-far.ld2
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-plt.ld2
-rw-r--r--ld/testsuite/ld-arm/arm-elf.exp8
-rw-r--r--ld/testsuite/ld-arm/group-relocs-alu-bad-2.d2
-rw-r--r--ld/testsuite/ld-arm/group-relocs-ldc-bad-2.d2
-rw-r--r--ld/testsuite/ld-arm/group-relocs-ldr-bad-2.d2
-rw-r--r--ld/testsuite/ld-arm/group-relocs-ldrs-bad-2.d2
-rw-r--r--ld/testsuite/ld-checks/over2.d2
-rw-r--r--ld/testsuite/ld-cris/tls-local-63.d9
-rw-r--r--ld/testsuite/ld-cris/tls-local-64.d9
-rw-r--r--ld/testsuite/ld-cris/tls-und-38.d5
-rw-r--r--ld/testsuite/ld-cris/tls-und-42.d5
-rw-r--r--ld/testsuite/ld-cris/tls-und-46.d5
-rw-r--r--ld/testsuite/ld-cris/tls-und-50.d5
-rw-r--r--ld/testsuite/ld-cris/weakref3.d4
-rw-r--r--ld/testsuite/ld-cris/weakref4.d4
-rw-r--r--ld/testsuite/ld-ctf/ctf.exp7
-rw-r--r--ld/testsuite/ld-elf/dwarf.exp6
-rw-r--r--ld/testsuite/ld-elf/elf.exp43
-rw-r--r--ld/testsuite/ld-elf/gnu_execstack.err3
-rw-r--r--ld/testsuite/ld-elf/linux-x86.exp14
-rw-r--r--ld/testsuite/ld-elf/missing-execstack.err3
-rw-r--r--ld/testsuite/ld-elf/pr33291.d9
-rw-r--r--ld/testsuite/ld-elf/pr33291a.s8
-rw-r--r--ld/testsuite/ld-elf/pr33291b.s7
-rw-r--r--ld/testsuite/ld-elf/pr33409a.c20
-rw-r--r--ld/testsuite/ld-elf/pr33409b.c9
-rw-r--r--ld/testsuite/ld-elf/pr33409c.c4
-rw-r--r--ld/testsuite/ld-elf/rwx-segments-3.err3
-rw-r--r--ld/testsuite/ld-elf/rwx-segments-4.err3
-rw-r--r--ld/testsuite/ld-elf/shared.exp37
-rw-r--r--ld/testsuite/ld-elf/z_execstack.err4
-rw-r--r--ld/testsuite/ld-elfvers/vers.exp19
-rw-r--r--ld/testsuite/ld-i386/binutils.exp49
-rw-r--r--ld/testsuite/ld-i386/dt-relr-1c.d26
-rw-r--r--ld/testsuite/ld-i386/dt-relr-1d.d26
-rw-r--r--ld/testsuite/ld-i386/dt-relr-2.d21
-rw-r--r--ld/testsuite/ld-i386/dt-relr-2.s23
-rw-r--r--ld/testsuite/ld-i386/export-class.exp15
-rw-r--r--ld/testsuite/ld-i386/gnu-tls-1.s9
-rw-r--r--ld/testsuite/ld-i386/gnu-tls-1a.rd7
-rw-r--r--ld/testsuite/ld-i386/gnu-tls-1b.rd4
-rw-r--r--ld/testsuite/ld-i386/gnu2-tls-1.s11
-rw-r--r--ld/testsuite/ld-i386/gnu2-tls-1a.rd7
-rw-r--r--ld/testsuite/ld-i386/gnu2-tls-1b.rd4
-rw-r--r--ld/testsuite/ld-i386/got-1.s7
-rw-r--r--ld/testsuite/ld-i386/i386-export-class.rd6
-rw-r--r--ld/testsuite/ld-i386/i386-export-class.xd6
-rw-r--r--ld/testsuite/ld-i386/i386.exp76
-rw-r--r--ld/testsuite/ld-i386/libgot-1a.rd9
-rw-r--r--ld/testsuite/ld-i386/libgot-1b.rd119
-rw-r--r--ld/testsuite/ld-i386/libgot-1c.rd12
-rw-r--r--ld/testsuite/ld-i386/libgot-1d.rd12
-rw-r--r--ld/testsuite/ld-i386/libno-plt-1b.dd4
-rw-r--r--ld/testsuite/ld-i386/no-plt-1a.dd6
-rw-r--r--ld/testsuite/ld-i386/no-plt-1b.dd14
-rw-r--r--ld/testsuite/ld-i386/no-plt-1c.dd10
-rw-r--r--ld/testsuite/ld-i386/no-plt-1e.dd6
-rw-r--r--ld/testsuite/ld-i386/no-plt-1f.dd14
-rw-r--r--ld/testsuite/ld-i386/no-plt-1g.dd12
-rw-r--r--ld/testsuite/ld-i386/no-plt.exp40
-rw-r--r--ld/testsuite/ld-i386/pr17057.d7
-rw-r--r--ld/testsuite/ld-i386/pr28387.d35
-rw-r--r--ld/testsuite/ld-i386/pr28387.s12
-rw-r--r--ld/testsuite/ld-i386/pr33260-2.d6
-rw-r--r--ld/testsuite/ld-i386/pr33260-2.s30
-rw-r--r--ld/testsuite/ld-i386/pr33260.d9
-rw-r--r--ld/testsuite/ld-i386/pr33260.s46
-rw-r--r--ld/testsuite/ld-i386/tlsdesc.rd106
-rw-r--r--ld/testsuite/ld-i386/tlsdesc2.d3
-rw-r--r--ld/testsuite/ld-i386/tlsgdesc.rd8
-rw-r--r--ld/testsuite/ld-ifunc/ifunc.exp9
-rw-r--r--ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp12
-rw-r--r--ld/testsuite/ld-loongarch-elf/pic.exp30
-rw-r--r--ld/testsuite/ld-loongarch-elf/undefweak_le.s7
-rw-r--r--ld/testsuite/ld-pe/pe-aarch64.d2
-rw-r--r--ld/testsuite/ld-pe/pe-aarch64.s5
-rw-r--r--ld/testsuite/ld-plugin/lto-binutils.exp36
-rw-r--r--ld/testsuite/ld-plugin/plugin.exp10
-rw-r--r--ld/testsuite/ld-plugin/strip-1a-s-all.nd5
-rw-r--r--ld/testsuite/ld-riscv-elf/absolute-no-relative.d9
-rw-r--r--ld/testsuite/ld-riscv-elf/absolute-no-relative.ld6
-rw-r--r--ld/testsuite/ld-riscv-elf/absolute-no-relative.s8
-rw-r--r--ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp1
-rw-r--r--ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d3
-rw-r--r--ld/testsuite/ld-riscv-elf/pcgp-relax-01.d3
-rw-r--r--ld/testsuite/ld-riscv-elf/relax-max-align-gp.d3
-rw-r--r--ld/testsuite/ld-riscv-elf/relro-relax-lui.d3
-rw-r--r--ld/testsuite/ld-riscv-elf/shared-lib-nopic-02.d2
-rw-r--r--ld/testsuite/ld-riscv-elf/variant_cc-now.d3
-rw-r--r--ld/testsuite/ld-riscv-elf/variant_cc-shared.d3
-rw-r--r--ld/testsuite/ld-scripts/libpr33265-1.a1
-rw-r--r--ld/testsuite/ld-scripts/libpr33265-2.a1
-rw-r--r--ld/testsuite/ld-scripts/libpr33265-3a.a1
-rw-r--r--ld/testsuite/ld-scripts/libpr33265-3b.a1
-rw-r--r--ld/testsuite/ld-scripts/libpr33265-3c.a1
-rw-r--r--ld/testsuite/ld-scripts/linker-script-not-found.d3
-rw-r--r--ld/testsuite/ld-scripts/pr24576-1.d3
-rw-r--r--ld/testsuite/ld-scripts/pr24576-2.d3
-rw-r--r--ld/testsuite/ld-scripts/pr33265-1.d3
-rw-r--r--ld/testsuite/ld-scripts/pr33265-2.d3
-rw-r--r--ld/testsuite/ld-scripts/pr33265-3.d3
-rw-r--r--ld/testsuite/ld-scripts/script.exp7
-rw-r--r--ld/testsuite/ld-scripts/sort_b_n_a-2.d2
-rw-r--r--ld/testsuite/ld-scripts/sort_no-2.d2
-rw-r--r--ld/testsuite/ld-shared/shared.exp35
-rw-r--r--ld/testsuite/ld-srec/srec.exp31
-rw-r--r--ld/testsuite/ld-vsb/vsb.exp14
-rw-r--r--ld/testsuite/ld-x86-64/binutils.exp72
-rw-r--r--ld/testsuite/ld-x86-64/dt-relr-1c-x32.d26
-rw-r--r--ld/testsuite/ld-x86-64/dt-relr-1c.d26
-rw-r--r--ld/testsuite/ld-x86-64/dt-relr-1d-x32.d26
-rw-r--r--ld/testsuite/ld-x86-64/dt-relr-1d.d26
-rw-r--r--ld/testsuite/ld-x86-64/dt-relr-2-x32.d21
-rw-r--r--ld/testsuite/ld-x86-64/dt-relr-2.d21
-rw-r--r--ld/testsuite/ld-x86-64/dt-relr-2.s23
-rw-r--r--ld/testsuite/ld-x86-64/gnu2-tls-1.s11
-rw-r--r--ld/testsuite/ld-x86-64/gnu2-tls-1a.rd7
-rw-r--r--ld/testsuite/ld-x86-64/gnu2-tls-1b.rd4
-rw-r--r--ld/testsuite/ld-x86-64/got-1.s7
-rw-r--r--ld/testsuite/ld-x86-64/libgot-1a-x32.rd9
-rw-r--r--ld/testsuite/ld-x86-64/libgot-1a.rd9
-rw-r--r--ld/testsuite/ld-x86-64/libgot-1b-x32.rd119
-rw-r--r--ld/testsuite/ld-x86-64/libgot-1b.rd119
-rw-r--r--ld/testsuite/ld-x86-64/libgot-1c-x32.rd12
-rw-r--r--ld/testsuite/ld-x86-64/libgot-1c.rd12
-rw-r--r--ld/testsuite/ld-x86-64/libgot-1d-x32.rd12
-rw-r--r--ld/testsuite/ld-x86-64/libgot-1d.rd12
-rw-r--r--ld/testsuite/ld-x86-64/mark-plt-1a.rd2
-rw-r--r--ld/testsuite/ld-x86-64/mark-plt-2.rd7
-rw-r--r--ld/testsuite/ld-x86-64/mark-plt-2.s13
-rw-r--r--ld/testsuite/ld-x86-64/no-plt-1a.dd5
-rw-r--r--ld/testsuite/ld-x86-64/no-plt-1b.dd5
-rw-r--r--ld/testsuite/ld-x86-64/no-plt-1c.dd5
-rw-r--r--ld/testsuite/ld-x86-64/no-plt-1d.dd5
-rw-r--r--ld/testsuite/ld-x86-64/no-plt-1e.dd5
-rw-r--r--ld/testsuite/ld-x86-64/no-plt-1f.dd5
-rw-r--r--ld/testsuite/ld-x86-64/no-plt-1g.dd5
-rw-r--r--ld/testsuite/ld-x86-64/no-plt-check1.S6
-rw-r--r--ld/testsuite/ld-x86-64/no-plt.exp28
-rw-r--r--ld/testsuite/ld-x86-64/pr28387-x32.d36
-rw-r--r--ld/testsuite/ld-x86-64/pr28387.d35
-rw-r--r--ld/testsuite/ld-x86-64/pr28387.s11
-rw-r--r--ld/testsuite/ld-x86-64/pr33260-2-x32.d6
-rw-r--r--ld/testsuite/ld-x86-64/pr33260-2.d6
-rw-r--r--ld/testsuite/ld-x86-64/pr33260-2.s19
-rw-r--r--ld/testsuite/ld-x86-64/pr33260-x32.d9
-rw-r--r--ld/testsuite/ld-x86-64/pr33260.d9
-rw-r--r--ld/testsuite/ld-x86-64/pr33260.s40
-rw-r--r--ld/testsuite/ld-x86-64/pr33292-x32.d10
-rw-r--r--ld/testsuite/ld-x86-64/pr33292.d9
-rw-r--r--ld/testsuite/ld-x86-64/pr33292.s34
-rw-r--r--ld/testsuite/ld-x86-64/tls-le-pic-1-x32.d4
-rw-r--r--ld/testsuite/ld-x86-64/tls-le-pic-1.d3
-rw-r--r--ld/testsuite/ld-x86-64/tls-le-pic-1.s17
-rw-r--r--ld/testsuite/ld-x86-64/tls-le-pic-2-x32.d4
-rw-r--r--ld/testsuite/ld-x86-64/tls-le-pic-2.d3
-rw-r--r--ld/testsuite/ld-x86-64/tls-le-pic-2.s10
-rw-r--r--ld/testsuite/ld-x86-64/tls-le-pic-3-x32.d4
-rw-r--r--ld/testsuite/ld-x86-64/tls-le-pic-3.d3
-rw-r--r--ld/testsuite/ld-x86-64/tls-le-pic-3.s16
-rw-r--r--ld/testsuite/ld-x86-64/tlsdesc.pd8
-rw-r--r--ld/testsuite/ld-x86-64/tlsdesc.rd141
-rw-r--r--ld/testsuite/ld-x86-64/tlsdesc2.d4
-rw-r--r--ld/testsuite/ld-x86-64/tlsgdesc.rd8
-rw-r--r--ld/testsuite/ld-x86-64/x86-64-64-export-class.rd6
-rw-r--r--ld/testsuite/ld-x86-64/x86-64-x32-export-class.rd6
-rw-r--r--ld/testsuite/ld-x86-64/x86-64.exp124
-rw-r--r--ld/testsuite/lib/ld-lib.exp28
-rw-r--r--libbacktrace/Makefile.in3
-rw-r--r--libbacktrace/aclocal.m42
-rwxr-xr-xlibbacktrace/configure405
-rw-r--r--libctf/Makefile.in3
-rw-r--r--libctf/aclocal.m42
-rwxr-xr-xlibctf/configure405
-rw-r--r--libctf/ctf-decl.c7
-rw-r--r--libctf/ctf-dump.c8
-rw-r--r--libctf/ctf-types.c2
-rw-r--r--libctf/testsuite/lib/ctf-lib.exp43
-rw-r--r--libctf/testsuite/libctf-lookup/big-struct-corruption.c118
-rw-r--r--libctf/testsuite/libctf-lookup/big-struct-corruption.lk3
-rw-r--r--libctf/testsuite/libctf-lookup/big-struct-ctf.c72
-rw-r--r--libctf/testsuite/libctf-lookup/multidim-array-ctf.c3
-rw-r--r--libctf/testsuite/libctf-lookup/multidim-array.c71
-rw-r--r--libctf/testsuite/libctf-lookup/multidim-array.lk9
-rw-r--r--libiberty/aclocal.m41
-rwxr-xr-xlibiberty/configure548
-rw-r--r--libiberty/configure.ac43
-rw-r--r--libsframe/Makefile.am2
-rw-r--r--libsframe/Makefile.in60
-rw-r--r--libsframe/aclocal.m42
-rwxr-xr-xlibsframe/configure405
-rw-r--r--libsframe/doc/sframe-spec.texi4
-rw-r--r--libsframe/sframe.c10
-rw-r--r--libsframe/testsuite/libsframe.decode/be-flipping.c16
-rw-r--r--libsframe/testsuite/libsframe.decode/frecnt-1.c16
-rw-r--r--libsframe/testsuite/libsframe.decode/frecnt-2.c17
-rw-r--r--libsframe/testsuite/libsframe.decode/local.mk12
-rw-r--r--libsframe/testsuite/libsframe.encode/encode-1.c70
-rw-r--r--libsframe/testsuite/libsframe.encode/local.mk4
-rw-r--r--libsframe/testsuite/libsframe.find/findfre-1.c22
-rw-r--r--libsframe/testsuite/libsframe.find/findfunc-1.c27
-rw-r--r--libsframe/testsuite/libsframe.find/local.mk16
-rw-r--r--libsframe/testsuite/libsframe.find/plt-findfre-1.c12
-rw-r--r--libsframe/testsuite/libsframe.find/plt-findfre-2.c12
-rw-r--r--libsframe/testsuite/local.mk3
-rw-r--r--libsframe/testsuite/sframe-test.h43
-rw-r--r--libtool.m449
-rw-r--r--opcodes/Makefile.in3
-rw-r--r--opcodes/aarch64-asm.c6
-rw-r--r--opcodes/aarch64-dis.c37
-rw-r--r--opcodes/aarch64-gen.c2
-rw-r--r--opcodes/aarch64-opc.c107
-rw-r--r--opcodes/aarch64-opc.h15
-rw-r--r--opcodes/aarch64-sys-regs.def2483
-rw-r--r--opcodes/aclocal.m42
-rwxr-xr-xopcodes/configure405
-rw-r--r--opcodes/csky-dis.c1
-rw-r--r--opcodes/i386-dis-evex.h4
-rw-r--r--opcodes/i386-dis.c9
-rw-r--r--opcodes/i386-gen.c14
-rw-r--r--opcodes/i386-mnem.h4045
-rw-r--r--opcodes/i386-opc.tbl6
-rw-r--r--opcodes/i386-tbl.h375
-rw-r--r--opcodes/po/sr.po448
-rw-r--r--opcodes/ppc-opc.c22
-rw-r--r--opcodes/riscv-opc.c20
-rw-r--r--sim/Makefile.in3
-rw-r--r--sim/aclocal.m42
-rwxr-xr-xsim/configure405
-rw-r--r--zlib/Makefile.in3
-rw-r--r--zlib/aclocal.m42
-rwxr-xr-xzlib/configure757
2242 files changed, 83885 insertions, 70200 deletions
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 16c7505..8e7a2b0 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -47,7 +47,7 @@ repos:
types_or: [file]
files: 'gdb/.*\.py(\.in)?$'
- repo: https://github.com/pycqa/flake8
- rev: 7.2.0
+ rev: 7.3.0
hooks:
- id: flake8
types_or: [file]
@@ -88,3 +88,10 @@ repos:
verbose: true
always_run: true
stages: [commit-msg]
+ - repo: https://github.com/nmoroze/tclint
+ rev: v0.6.1
+ hooks:
+ - id: tclint
+ args: [--config, gdb/tclint.toml]
+ types_or: [file]
+ files: 'gdb/testsuite/.*\.(exp|tcl)$'
diff --git a/Makefile.in b/Makefile.in
index 2a53616..bb1ebbf 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -427,7 +427,7 @@ DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
LD = @LD@
LIPO = @LIPO@
-NM = @NM@
+NM = @NM@ @NM_PLUGIN_OPTION@
OBJDUMP = @OBJDUMP@
OTOOL = @OTOOL@
RANLIB = @RANLIB@ @RANLIB_PLUGIN_OPTION@
diff --git a/Makefile.tpl b/Makefile.tpl
index 6e22ade..8534a98 100644
--- a/Makefile.tpl
+++ b/Makefile.tpl
@@ -430,7 +430,7 @@ DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
LD = @LD@
LIPO = @LIPO@
-NM = @NM@
+NM = @NM@ @NM_PLUGIN_OPTION@
OBJDUMP = @OBJDUMP@
OTOOL = @OTOOL@
RANLIB = @RANLIB@ @RANLIB_PLUGIN_OPTION@
diff --git a/README b/README
index eb0e436..a89971c 100644
--- a/README
+++ b/README
@@ -4,9 +4,9 @@ This directory contains various GNU compilers, assemblers, linkers,
debuggers, etc., plus their support routines, definitions, and documentation.
If you are receiving this as part of a GDB release, see the file gdb/README.
-If with a binutils release, see binutils/README; if with a libg++ release,
-see libg++/README, etc. That'll give you info about this
-package -- supported targets, how to use it, how to report bugs, etc.
+If with a binutils release, see binutils/README, and so on. That'll give you
+info about this package -- supported targets, how to use it, how to report
+bugs, etc.
It is now possible to automatically configure and build a variety of
tools with one command. To build all of the tools contained herein,
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 583f731..1bd99a9 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,7 @@
+2025-09-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config.bfd <powerpc-*-solaris2*>: Remove.
+
2025-07-13 Nick Clifton <nickc@redhat.com>
* 2.45 Branch point.
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index 4c25968..6d1944c 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -113,7 +113,9 @@ target_triplet = @target@
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ $(top_srcdir)/../config/clang-plugin.m4 \
$(top_srcdir)/../config/depstand.m4 \
+ $(top_srcdir)/../config/gcc-plugin.m4 \
$(top_srcdir)/../config/gettext-sister.m4 \
$(top_srcdir)/../config/gettext.m4 \
$(top_srcdir)/../config/iconv.m4 \
@@ -372,6 +374,7 @@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
+LLVM_CONFIG = @LLVM_CONFIG@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
LTLIBINTL = @LTLIBINTL@
diff --git a/bfd/aclocal.m4 b/bfd/aclocal.m4
index 4d1b7ba..4975bdd 100644
--- a/bfd/aclocal.m4
+++ b/bfd/aclocal.m4
@@ -1168,7 +1168,9 @@ AC_SUBST([am__untar])
]) # _AM_PROG_TAR
m4_include([../config/acx.m4])
+m4_include([../config/clang-plugin.m4])
m4_include([../config/depstand.m4])
+m4_include([../config/gcc-plugin.m4])
m4_include([../config/gettext-sister.m4])
m4_include([../config/gettext.m4])
m4_include([../config/iconv.m4])
diff --git a/bfd/archive.c b/bfd/archive.c
index 52d3119..d2a9fd1 100644
--- a/bfd/archive.c
+++ b/bfd/archive.c
@@ -141,9 +141,7 @@ SUBSECTION
#include "hashtab.h"
#include "filenames.h"
#include "bfdlink.h"
-#if BFD_SUPPORTS_PLUGINS
#include "plugin.h"
-#endif
#ifndef errno
extern int errno;
@@ -950,8 +948,8 @@ bfd_generic_archive_p (bfd *abfd)
if (first != NULL)
{
first->target_defaulted = false;
- if (bfd_check_format (first, bfd_object)
- && first->xvec != abfd->xvec)
+ if (!bfd_check_format (first, bfd_object)
+ || first->xvec != abfd->xvec)
bfd_set_error (bfd_error_wrong_object_format);
bfd_close (first);
}
@@ -1189,7 +1187,7 @@ do_slurp_coff_armap (bfd *abfd)
bool
bfd_slurp_armap (bfd *abfd)
{
- char nextname[17];
+ char nextname[16];
int i = bfd_read (nextname, 16, abfd);
if (i == 0)
@@ -1200,12 +1198,13 @@ bfd_slurp_armap (bfd *abfd)
if (bfd_seek (abfd, -16, SEEK_CUR) != 0)
return false;
- if (startswith (nextname, "__.SYMDEF ")
- || startswith (nextname, "__.SYMDEF/ ")) /* Old Linux archives. */
+ if (memcmp (nextname, "__.SYMDEF ", 16) == 0
+ /* Old Linux archives. */
+ || memcmp (nextname, "__.SYMDEF/ ", 16) == 0)
return do_slurp_bsd_armap (abfd);
- else if (startswith (nextname, "/ "))
+ else if (memcmp (nextname, "/ ", 16) == 0)
return do_slurp_coff_armap (abfd);
- else if (startswith (nextname, "/SYM64/ "))
+ else if (memcmp (nextname, "/SYM64/ ", 16) == 0)
{
/* 64bit (Irix 6) archive. */
#ifdef BFD64
@@ -1215,13 +1214,27 @@ bfd_slurp_armap (bfd *abfd)
return false;
#endif
}
- else if (startswith (nextname, "#1/20 "))
+ else if (memcmp (nextname, "________", 8) == 0
+ && ((nextname[8] == '_' && nextname[9] == '_')
+ || (nextname[8] == '6' && nextname[9] == '4'))
+ && nextname[10] == 'E'
+ && (nextname[11] == 'B' || nextname[11] == 'L')
+ && nextname[12] == 'E'
+ && (nextname[13] == 'B' || nextname[13] == 'L')
+ && nextname[14] == '_'
+ && (nextname[15] == ' ' || nextname[15] == 'X'))
+ {
+ /* ECOFF archive. */
+ bfd_set_error (bfd_error_wrong_format);
+ return false;
+ }
+ else if (memcmp (nextname, "#1/20 ", 16) == 0)
{
/* Mach-O has a special name for armap when the map is sorted by name.
However because this name has a space it is slightly more difficult
to check it. */
struct ar_hdr hdr;
- char extname[21];
+ char extname[20];
if (bfd_read (&hdr, sizeof (hdr), abfd) != sizeof (hdr))
return false;
@@ -1230,9 +1243,8 @@ bfd_slurp_armap (bfd *abfd)
return false;
if (bfd_seek (abfd, -(file_ptr) (sizeof (hdr) + 20), SEEK_CUR) != 0)
return false;
- extname[20] = 0;
- if (startswith (extname, "__.SYMDEF SORTED")
- || startswith (extname, "__.SYMDEF"))
+ if (memcmp (extname, "__.SYMDEF SORTED", 16) == 0
+ || memcmp (extname, "__.SYMDEF", 9) == 0)
return do_slurp_bsd_armap (abfd);
}
@@ -2346,9 +2358,7 @@ _bfd_compute_and_write_armap (bfd *arch, unsigned int elength)
long src_count;
if (bfd_get_lto_type (current) == lto_slim_ir_object
-#if BFD_SUPPORTS_PLUGINS
&& !bfd_plugin_target_p (current->xvec)
-#endif
&& report_plugin_err)
{
report_plugin_err = false;
@@ -2406,9 +2416,7 @@ _bfd_compute_and_write_armap (bfd *arch, unsigned int elength)
if (bfd_lto_slim_symbol_p (current,
syms[src_count]->name)
-#if BFD_SUPPORTS_PLUGINS
&& !bfd_plugin_target_p (current->xvec)
-#endif
&& report_plugin_err)
{
report_plugin_err = false;
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index df5568e..ea2d2cb 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -159,3 +159,11 @@ startswith (const char *str, const char *prefix)
return strncmp (str, prefix, strlen (prefix)) == 0;
}
+/* Return true if plugin is enabled. */
+
+static inline bool
+bfd_plugin_enabled (void)
+{
+ return BFD_SUPPORTS_PLUGINS != 0;
+}
+
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 12512a3..5e7c6dd 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -166,6 +166,14 @@ startswith (const char *str, const char *prefix)
return strncmp (str, prefix, strlen (prefix)) == 0;
}
+/* Return true if plugin is enabled. */
+
+static inline bool
+bfd_plugin_enabled (void)
+{
+ return BFD_SUPPORTS_PLUGINS != 0;
+}
+
/* Extracted from libbfd.c. */
void *bfd_alloc (bfd *abfd, bfd_size_type wanted);
@@ -2131,9 +2139,6 @@ struct bfd
/* Set if this is the linker input BFD. */
unsigned int is_linker_input : 1;
- /* Set if this is the strip input BFD. */
- unsigned int is_strip_input : 1;
-
/* If this is an input for a compiler plug-in library. */
ENUM_BITFIELD (bfd_plugin_format) plugin_format : 2;
diff --git a/bfd/bfd.c b/bfd/bfd.c
index 4aded68..858ab5c 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -296,9 +296,6 @@ CODE_FRAGMENT
. {* Set if this is the linker input BFD. *}
. unsigned int is_linker_input : 1;
.
-. {* Set if this is the strip input BFD. *}
-. unsigned int is_strip_input : 1;
-.
. {* If this is an input for a compiler plug-in library. *}
. ENUM_BITFIELD (bfd_plugin_format) plugin_format : 2;
.
diff --git a/bfd/bfdio.c b/bfd/bfdio.c
index 7063bcc..6bd7a24 100644
--- a/bfd/bfdio.c
+++ b/bfd/bfdio.c
@@ -293,7 +293,7 @@ DESCRIPTION
. int (*bstat) (struct bfd *abfd, struct stat *sb);
. {* Mmap a part of the files. ADDR, LEN, PROT, FLAGS and OFFSET are the usual
. mmap parameter, except that LEN and OFFSET do not need to be page
-. aligned. Returns (void *)-1 on failure, mmapped address on success.
+. aligned. Returns MAP_FAILED on failure, mmapped address on success.
. Also write in MAP_ADDR the address of the page aligned buffer and in
. MAP_LEN the size mapped (a page multiple). Use unmap with MAP_ADDR and
. MAP_LEN to unmap. *}
@@ -328,6 +328,7 @@ bfd_read (void *ptr, bfd_size_type size, bfd *abfd)
ufile_ptr offset = 0;
while (abfd->my_archive != NULL
+ && abfd->my_archive->iovec == abfd->iovec
&& !bfd_is_thin_archive (abfd->my_archive))
{
offset += abfd->origin;
@@ -339,6 +340,7 @@ bfd_read (void *ptr, bfd_size_type size, bfd *abfd)
this element. */
if (element_bfd->arelt_data != NULL
&& element_bfd->my_archive != NULL
+ && element_bfd->my_archive->iovec == element_bfd->iovec
&& !bfd_is_thin_archive (element_bfd->my_archive))
{
bfd_size_type maxbytes = arelt_size (element_bfd);
@@ -392,6 +394,7 @@ bfd_write (const void *ptr, bfd_size_type size, bfd *abfd)
file_ptr nwrote;
while (abfd->my_archive != NULL
+ && abfd->my_archive->iovec == abfd->iovec
&& !bfd_is_thin_archive (abfd->my_archive))
abfd = abfd->my_archive;
@@ -440,6 +443,7 @@ bfd_tell (bfd *abfd)
file_ptr ptr;
while (abfd->my_archive != NULL
+ && abfd->my_archive->iovec == abfd->iovec
&& !bfd_is_thin_archive (abfd->my_archive))
{
offset += abfd->origin;
@@ -470,6 +474,7 @@ int
bfd_flush (bfd *abfd)
{
while (abfd->my_archive != NULL
+ && abfd->my_archive->iovec == abfd->iovec
&& !bfd_is_thin_archive (abfd->my_archive))
abfd = abfd->my_archive;
@@ -497,6 +502,7 @@ bfd_stat (bfd *abfd, struct stat *statbuf)
int result;
while (abfd->my_archive != NULL
+ && abfd->my_archive->iovec == abfd->iovec
&& !bfd_is_thin_archive (abfd->my_archive))
abfd = abfd->my_archive;
@@ -531,6 +537,7 @@ bfd_seek (bfd *abfd, file_ptr position, int direction)
ufile_ptr offset = 0;
while (abfd->my_archive != NULL
+ && abfd->my_archive->iovec == abfd->iovec
&& !bfd_is_thin_archive (abfd->my_archive))
{
offset += abfd->origin;
@@ -725,6 +732,7 @@ DESCRIPTION
Return mmap()ed region of the file, if possible and implemented.
LEN and OFFSET do not need to be page aligned. The page aligned
address and length are written to MAP_ADDR and MAP_LEN.
+ Returns MAP_FAILED on failure.
*/
@@ -734,6 +742,7 @@ bfd_mmap (bfd *abfd, void *addr, size_t len,
void **map_addr, size_t *map_len)
{
while (abfd->my_archive != NULL
+ && abfd->my_archive->iovec == abfd->iovec
&& !bfd_is_thin_archive (abfd->my_archive))
{
offset += abfd->origin;
@@ -898,7 +907,7 @@ memory_bmmap (bfd *abfd ATTRIBUTE_UNUSED, void *addr ATTRIBUTE_UNUSED,
void **map_addr ATTRIBUTE_UNUSED,
size_t *map_len ATTRIBUTE_UNUSED)
{
- return (void *)-1;
+ return MAP_FAILED;
}
const struct bfd_iovec _bfd_memory_iovec =
diff --git a/bfd/coff-aarch64.c b/bfd/coff-aarch64.c
index af4a44d..48b8bfa 100644
--- a/bfd/coff-aarch64.c
+++ b/bfd/coff-aarch64.c
@@ -18,9 +18,8 @@
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-
-#ifndef COFF_WITH_peAArch64
-#define COFF_WITH_peAArch64
+#ifndef COFF_WITH_PE
+#error non-PE COFF unsupported
#endif
#include "sysdep.h"
diff --git a/bfd/coff-ia64.c b/bfd/coff-ia64.c
index 3a947ef..b2873ae 100644
--- a/bfd/coff-ia64.c
+++ b/bfd/coff-ia64.c
@@ -19,6 +19,10 @@
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
+#ifndef COFF_WITH_PE
+#error non-PE COFF unsupported
+#endif
+
#include "sysdep.h"
#include "bfd.h"
#include "libbfd.h"
diff --git a/bfd/coff-loongarch64.c b/bfd/coff-loongarch64.c
index c1fe70b..a852108 100644
--- a/bfd/coff-loongarch64.c
+++ b/bfd/coff-loongarch64.c
@@ -18,9 +18,8 @@
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-
-#ifndef COFF_WITH_peLoongArch64
-#define COFF_WITH_peLoongArch64
+#ifndef COFF_WITH_PE
+#error non-PE COFF unsupported
#endif
#include "sysdep.h"
diff --git a/bfd/coff-mcore.c b/bfd/coff-mcore.c
index e15c4b4..fab10a7 100644
--- a/bfd/coff-mcore.c
+++ b/bfd/coff-mcore.c
@@ -18,6 +18,10 @@
Foundation, 51 Franklin Street - Fifth Floor,
Boston, MA 02110-1301, USA. */
+#ifndef COFF_WITH_PE
+#error non-PE COFF unsupported
+#endif
+
#include "sysdep.h"
#include "bfd.h"
#include "libbfd.h"
diff --git a/bfd/coff-riscv64.c b/bfd/coff-riscv64.c
index 870eef3..2356a6b 100644
--- a/bfd/coff-riscv64.c
+++ b/bfd/coff-riscv64.c
@@ -18,6 +18,10 @@
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
+#ifndef COFF_WITH_PE
+#error non-PE COFF unsupported
+#endif
+
#include "sysdep.h"
#include "bfd.h"
#include "libbfd.h"
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index a2ee036..4a1f4be 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -6133,9 +6133,9 @@ const bfd_target VAR = \
TARGET_KEEP_UNUSED_SECTION_SYMBOLS, /* keep unused section symbols. */ \
\
/* Data conversion functions. */ \
- bfd_getb64, bfd_getb_signed_64, bfd_putb64, \
- bfd_getb32, bfd_getb_signed_32, bfd_putb32, \
- bfd_getb16, bfd_getb_signed_16, bfd_putb16, \
+ bfd_getl64, bfd_getl_signed_64, bfd_putl64, \
+ bfd_getl32, bfd_getl_signed_32, bfd_putl32, \
+ bfd_getl16, bfd_getl_signed_16, bfd_putl16, \
\
/* Header conversion functions. */ \
bfd_getb64, bfd_getb_signed_64, bfd_putb64, \
diff --git a/bfd/coffswap.h b/bfd/coffswap.h
index 4d63824..823d3fd 100644
--- a/bfd/coffswap.h
+++ b/bfd/coffswap.h
@@ -422,13 +422,10 @@ coff_swap_aux_in (bfd *abfd,
in->x_file.x_n.x_n.x_offset = H_GET_32 (abfd, ext->x_file.x_n.x_offset);
}
else
- {
#if FILNMLEN != E_FILNMLEN
-#error we need to cope with truncating or extending FILNMLEN
-#else
- memcpy (in->x_file.x_n.x_fname, ext->x_file.x_fname, FILNMLEN);
+#error we need to cope with truncating or extending x_fname
#endif
- }
+ memcpy (in->x_file.x_n.x_fname, ext->x_file.x_fname, FILNMLEN);
goto end;
case C_STAT:
@@ -521,13 +518,10 @@ coff_swap_aux_out (bfd * abfd,
H_PUT_32 (abfd, in->x_file.x_n.x_n.x_offset, ext->x_file.x_n.x_offset);
}
else
- {
#if FILNMLEN != E_FILNMLEN
-#error we need to cope with truncating or extending FILNMLEN
-#else
- memcpy (ext->x_file.x_fname, in->x_file.x_n.x_fname, FILNMLEN);
+#error we need to cope with truncating or extending xfname
#endif
- }
+ memcpy (ext->x_file.x_fname, in->x_file.x_n.x_fname, E_FILNMLEN);
goto end;
case C_STAT:
diff --git a/bfd/config.bfd b/bfd/config.bfd
index eb20a01..9fa1c51 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -77,17 +77,18 @@ case $targ in
mips*-*-irix5* | mips*-*-irix6*)
# Not obsolete
;;
- *-adobe-* | \
*-*-beos* | \
- *-go32-rtems* | \
- *-sony-* | \
- *-tandem-* | \
+ *-*-cloudabi* | \
*-*-ieee* | \
*-*-nacl* | \
*-*-netbsdpe* | \
*-*-netware* | \
*-*-rtemsaout* | \
*-*-rtemscoff* | \
+ *-adobe-* | \
+ *-go32-rtems* | \
+ *-sony-* | \
+ *-tandem-* | \
a29k-* | \
arm*-*-aout | \
arm-*-coff | \
@@ -275,11 +276,6 @@ case "${targ}" in
targ_selvecs="aarch64_elf64_be_vec arm_elf32_le_vec arm_elf32_be_vec"
want64=true
;;
- aarch64-*-cloudabi*)
- targ_defvec=aarch64_elf64_le_cloudabi_vec
- targ_selvecs=aarch64_elf64_be_cloudabi_vec
- want64=true
- ;;
aarch64-*-haiku*)
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"
@@ -659,10 +655,6 @@ case "${targ}" in
targ64_selvecs=x86_64_elf64_vec
;;
#ifdef BFD64
- x86_64-*-cloudabi*)
- targ_defvec=x86_64_elf64_cloudabi_vec
- want64=true
- ;;
x86_64-*-darwin*)
targ_defvec=x86_64_mach_o_vec
targ_selvecs="i386_mach_o_vec mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
@@ -710,7 +702,7 @@ case "${targ}" in
;;
x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep | x86_64-*-cygwin)
targ_defvec=x86_64_pe_vec
- targ_selvecs="x86_64_pe_vec x86_64_pei_vec x86_64_pe_big_vec x86_64_elf64_vec i386_pe_vec i386_pei_vec i386_elf32_vec iamcu_elf32_vec pdb_vec"
+ targ_selvecs="x86_64_pe_vec x86_64_pei_vec x86_64_pe_big_vec x86_64_elf64_vec i386_pe_vec i386_pe_big_vec i386_pei_vec i386_elf32_vec iamcu_elf32_vec pdb_vec"
want64=true
targ_underscore=no
;;
@@ -1154,8 +1146,7 @@ case "${targ}" in
targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec powerpc_elf64_fbsd_vec"
;;
powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
- powerpc-*-solaris2* | powerpc-*-linux-* | powerpc-*-rtems* | \
- powerpc-*-chorus*)
+ powerpc-*-linux-* | powerpc-*-rtems* | powerpc-*-chorus*)
targ_defvec=powerpc_elf32_vec
targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec powerpc_boot_vec"
targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec"
@@ -1192,7 +1183,7 @@ case "${targ}" in
targ_selvecs="rs6000_xcoff_vec powerpc_elf32_vec powerpc_boot_vec"
;;
powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
- powerpcle-*-solaris2* | powerpcle-*-linux-* | powerpcle-*-vxworks*)
+ powerpcle-*-linux-* | powerpcle-*-vxworks*)
targ_defvec=powerpc_elf32_le_vec
targ_selvecs="rs6000_xcoff_vec powerpc_elf32_vec powerpc_boot_vec"
targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec"
diff --git a/bfd/configure b/bfd/configure
index 28ac5cc..d07f9e9 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -710,6 +710,7 @@ OTOOL
LIPO
NMEDIT
DSYMUTIL
+LLVM_CONFIG
OBJDUMP
LN_S
NM
@@ -6201,8 +6202,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
-plugin_option=
+
+# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
+# wrong plugin_option with clang.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
+$as_echo_n "checking for clang... " >&6; }
+if ${clang_cv_is_clang+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __clang__
+ yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ clang_cv_is_clang=yes
+else
+ clang_cv_is_clang=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
+$as_echo "$clang_cv_is_clang" >&6; }
+ plugin_file=
+ if test $clang_cv_is_clang = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
+$as_echo_n "checking for clang plugin file... " >&6; }
+ plugin_names="LLVMgold.so"
+ for plugin in $plugin_names; do
+ plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
+ if test x$plugin_file = x$plugin; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LLVM_CONFIG"; then
+ ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
+if test -n "$LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
+$as_echo "$LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LLVM_CONFIG"; then
+ ac_ct_LLVM_CONFIG=$LLVM_CONFIG
+ # Extract the first word of "llvm-config", so it can be a program name with args.
+set dummy llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LLVM_CONFIG"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
+if test -n "$ac_ct_LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
+$as_echo "$ac_ct_LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LLVM_CONFIG" = x; then
+ LLVM_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LLVM_CONFIG=$ac_ct_LLVM_CONFIG
+ fi
+else
+ LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
+fi
+
+ if test "$?" != 0; then
+ as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
+ fi
+ clang_lib_dir=`$LLVM_CONFIG --libdir`
+ if test -f $clang_lib_dir/$plugin; then
+ plugin_file=$clang_lib_dir/$plugin
+ fi
+ if test x$plugin_file != x$plugin; then
+ break;
+ fi
+ fi
+ done
+ if test -z $plugin_file; then
+ as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
+ fi
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+ if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ plugin_option="--plugin $plugin_file"
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_file=
+ fi
+ rm -f conftest.*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
+$as_echo "$plugin_file" >&6; }
+ fi
+ plugin_file="$plugin_file"
+
+if test -n "$plugin_file"; then
+ plugin_option="--plugin $plugin_file"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
+$as_echo_n "checking for -plugin option... " >&6; }
+
plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+plugin_option=
for plugin in $plugin_names; do
plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
if test x$plugin_so = x$plugin; then
@@ -6213,7 +6472,119 @@ for plugin in $plugin_names; do
break
fi
done
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+fi
+touch conftest.c
+${AR} $plugin_option rc conftest.a conftest.c
+if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_option=
+fi
+rm -f conftest.*
+if test -n "$plugin_option"; then
+ plugin_option="$plugin_option"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+$as_echo "$plugin_option" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
@@ -6308,17 +6679,15 @@ fi
test -z "$AR" && AR=ar
if test -n "$plugin_option"; then
- if $AR --help 2>&1 | grep -q "\--plugin"; then
- touch conftest.c
- $AR $plugin_option rc conftest.a conftest.c
- if test "$?" != 0; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
-$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
- else
+ case "$AR" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $AR --help 2>&1 | grep -q "\--plugin"; then
AR="$AR $plugin_option"
fi
- rm -f conftest.*
- fi
+ ;;
+ esac
fi
test -z "$AR_FLAGS" && AR_FLAGS=cru
@@ -6525,9 +6894,15 @@ fi
test -z "$RANLIB" && RANLIB=:
if test -n "$plugin_option" && test "$RANLIB" != ":"; then
- if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
- RANLIB="$RANLIB $plugin_option"
- fi
+ case "$RANLIB" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
+ RANLIB="$RANLIB $plugin_option"
+ fi
+ ;;
+ esac
fi
@@ -11153,7 +11528,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11156 "configure"
+#line 11531 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11259,7 +11634,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11262 "configure"
+#line 11637 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11867,7 +12242,6 @@ fi
case "${target}" in
- hppa*64*-*-*) ;;
*-*-*aout*| i[3-7]86-*-msdos* | ns32k-*-* | pdp11-*-*)
if test "$plugins" = "yes"; then
if test "${enable_plugins+set}" = set; then
@@ -11877,16 +12251,6 @@ $as_echo "$as_me: WARNING: Enabling plugins for AOUT is experimental" >&2;}
plugins=no
fi
fi ;;
- hppa*-*-hpux* | *-*-*vms* | \
- powerpc*-*-aix* | powerpc-*-beos* | powerpc-*-macos* | rs6000-*-*)
- if test "$plugins" = "yes"; then
- if test "${enable_plugins+set}" = set; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Enabling plugins may result in ar creating non-standard archives for ${target}" >&5
-$as_echo "$as_me: WARNING: Enabling plugins may result in ar creating non-standard archives for ${target}" >&2;}
- else
- plugins=no
- fi
- fi ;;
esac
if test "$plugins" = "yes"; then
@@ -15429,7 +15793,7 @@ done
# 64-bit support needs to be compiled in. Currently, it will be included if
# the default or any other explicitly requested target requires it; it
# will not be included on a 32-bit host if no 64-bit target is requested, and
-# no "--with-64-bit-bfd" option is given, even if "--enable-targets=all" is
+# no "--enable-64-bit-bfd" option is given, even if "--enable-targets=all" is
# used.
# uniq the default and selected vectors in all the configured targets.
@@ -15485,9 +15849,7 @@ do
aarch64_elf32_be_vec) tb="$tb elf32-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf32.lo $elf"; target_size=64 ;;
aarch64_elf32_le_vec) tb="$tb elf32-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf32.lo $elf"; target_size=64 ;;
aarch64_elf64_be_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
- aarch64_elf64_be_cloudabi_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
aarch64_elf64_le_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
- aarch64_elf64_le_cloudabi_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
aarch64_mach_o_vec) tb="$tb mach-o-aarch64.lo"; target_size=64 ;;
aarch64_pei_le_vec) tb="$tb pei-aarch64.lo pe-aarch64igen.lo $coff"; target_size=64 ;;
aarch64_pe_le_vec) tb="$tb pe-aarch64.lo pe-aarch64igen.lo $coff"; target_size=64 ;;
@@ -15739,7 +16101,6 @@ do
x86_64_coff_vec) tb="$tb coff-x86_64.lo $coff"; target_size=64 ;;
x86_64_elf32_vec) tb="$tb elf64-x86-64.lo $elfxx_x86 elf64.lo elf32.lo $elf"; target_size=64 ;;
x86_64_elf64_vec) tb="$tb elf64-x86-64.lo $elfxx_x86 elf64.lo $elf"; target_size=64 ;;
- x86_64_elf64_cloudabi_vec) tb="$tb elf64-x86-64.lo $elfxx_x86 elf64.lo $elf"; target_size=64 ;;
x86_64_elf64_fbsd_vec) tb="$tb elf64-x86-64.lo $elfxx_x86 elf64.lo $elf"; target_size=64 ;;
x86_64_elf64_sol2_vec) tb="$tb elf64-x86-64.lo $elfxx_x86 elf64.lo $elf"; target_size=64 ;;
x86_64_mach_o_vec) tb="$tb mach-o-x86-64.lo" ;;
diff --git a/bfd/configure.ac b/bfd/configure.ac
index 502c526..4fb3bf4 100644
--- a/bfd/configure.ac
+++ b/bfd/configure.ac
@@ -45,7 +45,6 @@ ACX_LARGEFILE
changequote(,)dnl
case "${target}" in
- hppa*64*-*-*) ;;
*-*-*aout*| i[3-7]86-*-msdos* | ns32k-*-* | pdp11-*-*)
changequote([,])dnl
if test "$plugins" = "yes"; then
@@ -55,15 +54,6 @@ changequote([,])dnl
plugins=no
fi
fi ;;
- hppa*-*-hpux* | *-*-*vms* | \
- powerpc*-*-aix* | powerpc-*-beos* | powerpc-*-macos* | rs6000-*-*)
- if test "$plugins" = "yes"; then
- if test "${enable_plugins+set}" = set; then
- AC_MSG_WARN(Enabling plugins may result in ar creating non-standard archives for ${target})
- else
- plugins=no
- fi
- fi ;;
esac
AM_CONDITIONAL(PLUGINS, test "$plugins" = "yes")
@@ -353,7 +343,7 @@ AC_SUBST(TDEFINES)
# 64-bit support needs to be compiled in. Currently, it will be included if
# the default or any other explicitly requested target requires it; it
# will not be included on a 32-bit host if no 64-bit target is requested, and
-# no "--with-64-bit-bfd" option is given, even if "--enable-targets=all" is
+# no "--enable-64-bit-bfd" option is given, even if "--enable-targets=all" is
# used.
# uniq the default and selected vectors in all the configured targets.
@@ -409,9 +399,7 @@ do
aarch64_elf32_be_vec) tb="$tb elf32-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf32.lo $elf"; target_size=64 ;;
aarch64_elf32_le_vec) tb="$tb elf32-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf32.lo $elf"; target_size=64 ;;
aarch64_elf64_be_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
- aarch64_elf64_be_cloudabi_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
aarch64_elf64_le_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
- aarch64_elf64_le_cloudabi_vec) tb="$tb elf64-aarch64.lo elfxx-aarch64.lo elf-ifunc.lo elf64.lo $elf"; target_size=64 ;;
aarch64_mach_o_vec) tb="$tb mach-o-aarch64.lo"; target_size=64 ;;
aarch64_pei_le_vec) tb="$tb pei-aarch64.lo pe-aarch64igen.lo $coff"; target_size=64 ;;
aarch64_pe_le_vec) tb="$tb pe-aarch64.lo pe-aarch64igen.lo $coff"; target_size=64 ;;
@@ -663,7 +651,6 @@ do
x86_64_coff_vec) tb="$tb coff-x86_64.lo $coff"; target_size=64 ;;
x86_64_elf32_vec) tb="$tb elf64-x86-64.lo $elfxx_x86 elf64.lo elf32.lo $elf"; target_size=64 ;;
x86_64_elf64_vec) tb="$tb elf64-x86-64.lo $elfxx_x86 elf64.lo $elf"; target_size=64 ;;
- x86_64_elf64_cloudabi_vec) tb="$tb elf64-x86-64.lo $elfxx_x86 elf64.lo $elf"; target_size=64 ;;
x86_64_elf64_fbsd_vec) tb="$tb elf64-x86-64.lo $elfxx_x86 elf64.lo $elf"; target_size=64 ;;
x86_64_elf64_sol2_vec) tb="$tb elf64-x86-64.lo $elfxx_x86 elf64.lo $elf"; target_size=64 ;;
x86_64_mach_o_vec) tb="$tb mach-o-x86-64.lo" ;;
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index b791623..51e6ae7 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -774,6 +774,7 @@ struct elf_link_hash_table
asection *dynsym;
asection *srelrdyn;
asection *dynamic;
+ asection *interp;
};
/* Returns TRUE if the hash table is a struct elf_link_hash_table. */
@@ -2631,8 +2632,8 @@ extern bool _bfd_elf_link_output_relocs
(bfd *, asection *, Elf_Internal_Shdr *, Elf_Internal_Rela *,
struct elf_link_hash_entry **);
-extern void _bfd_elf_link_add_glibc_version_dependency
- (struct elf_find_verdep_info *, const char *[]);
+extern bool _bfd_elf_link_add_glibc_version_dependency
+ (struct elf_find_verdep_info *, const char *const [], bool *);
extern void _bfd_elf_link_add_dt_relr_dependency
(struct elf_find_verdep_info *);
@@ -2927,6 +2928,8 @@ extern char *elfcore_write_xstatereg
(bfd *, char *, int *, const void *, int);
extern char *elfcore_write_x86_segbases
(bfd *, char *, int *, const void *, int);
+extern char *elfcore_write_i386_tls
+ (bfd *, char *, int *, const void *, int);
extern char *elfcore_write_ppc_vmx
(bfd *, char *, int *, const void *, int);
extern char *elfcore_write_ppc_vsx
diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c
index dc0d2e0..30bb313 100644
--- a/bfd/elf-eh-frame.c
+++ b/bfd/elf-eh-frame.c
@@ -737,6 +737,7 @@ _bfd_elf_parse_eh_frame (bfd *abfd, struct bfd_link_info *info,
if (hdr_id == 0)
{
unsigned int initial_insn_length;
+ char *null_byte;
/* CIE */
this_inf->cie = 1;
@@ -753,10 +754,13 @@ _bfd_elf_parse_eh_frame (bfd *abfd, struct bfd_link_info *info,
REQUIRE (cie->version == 1
|| cie->version == 3
|| cie->version == 4);
- REQUIRE (strlen ((char *) buf) < sizeof (cie->augmentation));
+ null_byte = memchr ((char *) buf, 0, end - buf);
+ REQUIRE (null_byte != NULL);
+ REQUIRE ((size_t) (null_byte - (char *) buf)
+ < sizeof (cie->augmentation));
strcpy (cie->augmentation, (char *) buf);
- buf = (bfd_byte *) strchr ((char *) buf, '\0') + 1;
+ buf = (bfd_byte *) null_byte + 1;
this_inf->u.cie.aug_str_len = buf - start - 1;
ENSURE_NO_RELOCS (buf);
if (buf[0] == 'e' && buf[1] == 'h')
diff --git a/bfd/elf-linker-x86.h b/bfd/elf-linker-x86.h
index 2c98257..cdd739e 100644
--- a/bfd/elf-linker-x86.h
+++ b/bfd/elf-linker-x86.h
@@ -72,6 +72,23 @@ struct elf_linker_x86_params
/* Mark PLT with dynamic tags. */
unsigned int mark_plt : 1;
+ /* Add the GLIBC_ABI_GNU2_TLS version dependency if input object files
+ have R_386_TLS_DESC_CALL or R_X86_64_TLSDESC_CALL relocation:
+ 0: Disable.
+ 1: Enable.
+ 2: Auto. Enable if libc.so has the GLIBC_ABI_GNU2_TLS version.
+ */
+ unsigned int gnu2_tls_version_tag : 2;
+
+ /* Add the GLIBC_ABI_GNU_TLS version dependency if input object files
+ call ___tls_get_addr:
+ 0: Disable.
+ 1: Enable.
+ 2: Auto. Enable if libc.so has the GLIBC_ABI_GNU_TLS version.
+ This is only used by i386.
+ */
+ unsigned int gnu_tls_version_tag : 2;
+
/* X86-64 ISA level needed. */
unsigned int isa_level;
diff --git a/bfd/elf-m10300.c b/bfd/elf-m10300.c
index ba99386..b381bb9 100644
--- a/bfd/elf-m10300.c
+++ b/bfd/elf-m10300.c
@@ -5031,7 +5031,7 @@ _bfd_mn10300_elf_late_size_sections (bfd * output_bfd,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = elf_hash_table (info)->interp;
BFD_ASSERT (s != NULL);
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf-properties.c b/bfd/elf-properties.c
index 07ab380..73eb231 100644
--- a/bfd/elf-properties.c
+++ b/bfd/elf-properties.c
@@ -697,6 +697,23 @@ _bfd_elf_link_create_gnu_property_sec (struct bfd_link_info *info, bfd *elf_bfd,
return sec;
}
+/* Prune empty generic properties. */
+
+static void
+elf_prune_empty_properties (elf_property_list **pp)
+{
+ elf_property_list *p;
+
+ while ((p = *pp) != NULL)
+ if ((p->property.pr_type < GNU_PROPERTY_LOPROC
+ || p->property.pr_type >= GNU_PROPERTY_LOUSER)
+ && p->property.pr_datasz != 0
+ && p->property.pr_kind == property_number
+ && p->property.u.number == 0)
+ *pp = p->next;
+ else
+ pp = &p->next;
+}
/* Set up GNU properties. Return the first relocatable ELF input with
GNU properties if found. Otherwise, return NULL. */
@@ -878,22 +895,6 @@ _bfd_elf_link_setup_gnu_properties (struct bfd_link_info *info)
if (bed->fixup_gnu_properties)
bed->fixup_gnu_properties (info, &elf_properties (first_pbfd));
- if (elf_properties (first_pbfd) == NULL)
- {
- /* Discard .note.gnu.property section if all properties have
- been removed. */
- sec->output_section = bfd_abs_section_ptr;
- return NULL;
- }
-
- /* Compute the section size. */
- list = elf_properties (first_pbfd);
- size = elf_get_gnu_property_section_size (list, align_size);
-
- /* Update .note.gnu.property section now. */
- sec->size = size;
- contents = (bfd_byte *) bfd_zalloc (first_pbfd, size);
-
if (info->indirect_extern_access <= 0)
{
/* Get GNU_PROPERTY_1_NEEDED properties. */
@@ -917,6 +918,24 @@ _bfd_elf_link_setup_gnu_properties (struct bfd_link_info *info)
}
}
+ elf_prune_empty_properties (&elf_properties (first_pbfd));
+
+ if (elf_properties (first_pbfd) == NULL)
+ {
+ /* Discard .note.gnu.property section if all properties have
+ been removed. */
+ sec->output_section = bfd_abs_section_ptr;
+ return NULL;
+ }
+
+ /* Compute the section size. */
+ list = elf_properties (first_pbfd);
+ size = elf_get_gnu_property_section_size (list, align_size);
+
+ /* Update .note.gnu.property section now. */
+ sec->size = size;
+ contents = (bfd_byte *) bfd_zalloc (first_pbfd, size);
+
elf_write_gnu_properties (info, first_pbfd, contents, list, size,
align_size);
diff --git a/bfd/elf.c b/bfd/elf.c
index dfa04c9..bde7414 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -49,6 +49,72 @@ SECTION
#include CORE_HEADER
#endif
+/* Utility macro to make testing for string equality easier to read. */
+#ifndef streq
+#define streq(A,B) (strcmp ((A), (B)) == 0)
+#endif
+
+/* Core note names. */
+#define NOTE_NAME_CORE "CORE"
+#define NOTE_NAME_FREEBSD "FreeBSD"
+#define NOTE_NAME_GDB "GDB"
+#define NOTE_NAME_LINUX "LINUX"
+
+/* Names of a pseudo-section which represent core notes. */
+#define NOTE_PSEUDO_SECTION_AARCH_GCS ".reg-aarch-gcs"
+#define NOTE_PSEUDO_SECTION_AARCH_HW_BREAK ".reg-aarch-hw-break"
+#define NOTE_PSEUDO_SECTION_AARCH_HW_WATCH ".reg-aarch-hw-watch"
+#define NOTE_PSEUDO_SECTION_AARCH_MTE ".reg-aarch-mte"
+#define NOTE_PSEUDO_SECTION_AARCH_PAUTH ".reg-aarch-pauth"
+#define NOTE_PSEUDO_SECTION_AARCH_SSVE ".reg-aarch-ssve"
+#define NOTE_PSEUDO_SECTION_AARCH_SVE ".reg-aarch-sve"
+#define NOTE_PSEUDO_SECTION_AARCH_TLS ".reg-aarch-tls"
+#define NOTE_PSEUDO_SECTION_AARCH_ZA ".reg-aarch-za"
+#define NOTE_PSEUDO_SECTION_AARCH_ZT ".reg-aarch-zt"
+#define NOTE_PSEUDO_SECTION_ARC_V2 ".reg-arc-v2"
+#define NOTE_PSEUDO_SECTION_ARM_VFP ".reg-arm-vfp"
+#define NOTE_PSEUDO_SECTION_I386_TLS ".reg-i386-tls"
+#define NOTE_PSEUDO_SECTION_LOONGARCH_CPUCFG ".reg-loongarch-cpucfg"
+#define NOTE_PSEUDO_SECTION_LOONGARCH_LASX ".reg-loongarch-lasx"
+#define NOTE_PSEUDO_SECTION_LOONGARCH_LBT ".reg-loongarch-lbt"
+#define NOTE_PSEUDO_SECTION_LOONGARCH_LSX ".reg-loongarch-lsx"
+#define NOTE_PSEUDO_SECTION_PPC_DSCR ".reg-ppc-dscr"
+#define NOTE_PSEUDO_SECTION_PPC_EBB ".reg-ppc-ebb"
+#define NOTE_PSEUDO_SECTION_PPC_PMU ".reg-ppc-pmu"
+#define NOTE_PSEUDO_SECTION_PPC_PPR ".reg-ppc-ppr"
+#define NOTE_PSEUDO_SECTION_PPC_TAR ".reg-ppc-tar"
+#define NOTE_PSEUDO_SECTION_PPC_TM_CDSCR ".reg-ppc-tm-cdscr"
+#define NOTE_PSEUDO_SECTION_PPC_TM_CFPR ".reg-ppc-tm-cfpr"
+#define NOTE_PSEUDO_SECTION_PPC_TM_CGPR ".reg-ppc-tm-cgpr"
+#define NOTE_PSEUDO_SECTION_PPC_TM_CPPR ".reg-ppc-tm-cppr"
+#define NOTE_PSEUDO_SECTION_PPC_TM_CTAR ".reg-ppc-tm-ctar"
+#define NOTE_PSEUDO_SECTION_PPC_TM_CVMX ".reg-ppc-tm-cvmx"
+#define NOTE_PSEUDO_SECTION_PPC_TM_CVSX ".reg-ppc-tm-cvsx"
+#define NOTE_PSEUDO_SECTION_PPC_TM_SPR ".reg-ppc-tm-spr"
+#define NOTE_PSEUDO_SECTION_PPC_VSX ".reg-ppc-vsx"
+#define NOTE_PSEUDO_SECTION_PPC_VMX ".reg-ppc-vmx"
+#define NOTE_PSEUDO_SECTION_REG ".reg"
+#define NOTE_PSEUDO_SECTION_REG2 ".reg2"
+#define NOTE_PSEUDO_SECTION_RISCV_CSR ".reg-riscv-csr"
+#define NOTE_PSEUDO_SECTION_S390_CTRS ".reg-s390-ctrs"
+#define NOTE_PSEUDO_SECTION_S390_GS_BC ".reg-s390-gs-bc"
+#define NOTE_PSEUDO_SECTION_S390_GS_CB ".reg-s390-gs-cb"
+#define NOTE_PSEUDO_SECTION_S390_HIGH_GPRS ".reg-s390-high-gprs"
+#define NOTE_PSEUDO_SECTION_S390_LAST_BREAK ".reg-s390-last-break"
+#define NOTE_PSEUDO_SECTION_S390_PREFIX ".reg-s390-prefix"
+#define NOTE_PSEUDO_SECTION_S390_SYSTEM_CALL ".reg-s390-system-call"
+#define NOTE_PSEUDO_SECTION_S390_TDB ".reg-s390-tdb"
+#define NOTE_PSEUDO_SECTION_S390_TIMER ".reg-s390-timer"
+#define NOTE_PSEUDO_SECTION_S390_TODCMP ".reg-s390-todcmp"
+#define NOTE_PSEUDO_SECTION_S390_TODPREG ".reg-s390-todpreg"
+#define NOTE_PSEUDO_SECTION_S390_VXRS_HIGH ".reg-s390-vxrs-high"
+#define NOTE_PSEUDO_SECTION_S390_VXRS_LOW ".reg-s390-vxrs-low"
+#define NOTE_PSEUDO_SECTION_SSP ".reg-ssp"
+#define NOTE_PSEUDO_SECTION_TDESC ".gdb-tdesc"
+#define NOTE_PSEUDO_SECTION_X86_SEGBASES ".reg-x86-segbases"
+#define NOTE_PSEUDO_SECTION_XFP ".reg-xfp"
+#define NOTE_PSEUDO_SECTION_XSTATE ".reg-xstate"
+
static int elf_sort_sections (const void *, const void *);
static bool assign_file_positions_except_relocs (bfd *, struct bfd_link_info *);
static bool swap_out_syms (bfd *, struct elf_strtab_hash **, int,
@@ -865,20 +931,16 @@ _bfd_elf_make_section_from_shdr (bfd *abfd,
else if ((flags & SEC_LOAD) != 0)
flags |= SEC_DATA;
if ((hdr->sh_flags & SHF_MERGE) != 0)
- {
- flags |= SEC_MERGE;
- newsect->entsize = hdr->sh_entsize;
- }
+ flags |= SEC_MERGE;
if ((hdr->sh_flags & SHF_STRINGS) != 0)
- {
- flags |= SEC_STRINGS;
- newsect->entsize = hdr->sh_entsize;
- }
+ flags |= SEC_STRINGS;
if ((hdr->sh_flags & SHF_TLS) != 0)
flags |= SEC_THREAD_LOCAL;
if ((hdr->sh_flags & SHF_EXCLUDE) != 0)
flags |= SEC_EXCLUDE;
+ newsect->entsize = hdr->sh_entsize;
+
switch (elf_elfheader (abfd)->e_ident[EI_OSABI])
{
/* FIXME: We should not recognize SHF_GNU_MBIND for ELFOSABI_NONE,
@@ -895,7 +957,7 @@ _bfd_elf_make_section_from_shdr (bfd *abfd,
break;
}
- if ((flags & SEC_ALLOC) == 0)
+ if ((flags & (SEC_ALLOC | SEC_GROUP)) == 0)
{
/* The debugging sections appear to be recognized only by name,
not any sort of flag. Their SEC_ALLOC bits are cleared. */
@@ -914,7 +976,7 @@ _bfd_elf_make_section_from_shdr (bfd *abfd,
}
else if (startswith (name, ".line")
|| startswith (name, ".stab")
- || strcmp (name, ".gdb_index") == 0)
+ || streq (name, ".gdb_index"))
flags |= SEC_DEBUGGING;
}
}
@@ -1558,7 +1620,7 @@ _bfd_elf_print_private_bfd_data (bfd *abfd, void *farg)
if (bed->elf_backend_get_target_dtag)
name = (*bed->elf_backend_get_target_dtag) (dyn.d_tag);
- if (!strcmp (name, ""))
+ if (streq (name, ""))
{
sprintf (ab, "%#" PRIx64, (uint64_t) dyn.d_tag);
name = ab;
@@ -2303,7 +2365,7 @@ _bfd_elf_get_symbol_version_string (bfd *abfd, asymbol *symbol,
if (base_p
|| nodename == NULL
|| symbol->name == NULL
- || strcmp (symbol->name, nodename) != 0)
+ || ! streq (symbol->name, nodename))
version_string = nodename;
}
else
@@ -3766,6 +3828,9 @@ elf_fake_sections (bfd *abfd, asection *asect, void *fsarg)
if ((asect->flags & (SEC_GROUP | SEC_EXCLUDE)) == SEC_EXCLUDE)
this_hdr->sh_flags |= SHF_EXCLUDE;
+ if (this_hdr->sh_entsize == 0)
+ this_hdr->sh_entsize = asect->entsize;
+
/* If the section has relocs, set up a section header for the
SHT_REL[A] section. If two relocation sections are required for
this section, it is up to the processor-specific back-end to
@@ -4000,7 +4065,7 @@ _bfd_elf_plt_get_reloc_section (bfd *abfd, const char *name)
/* If a target needs .got.plt section, relocations in rela.plt/rel.plt
section likely apply to .got.plt or .got section. */
if (get_elf_backend_data (abfd)->want_got_plt
- && strcmp (name, ".plt") == 0)
+ && streq (name, ".plt"))
{
asection *sec;
@@ -4306,7 +4371,7 @@ assign_section_numbers (bfd *abfd, struct bfd_link_info *link_info)
but without the trailing ``str'', and set its sh_link
field to point to this section. */
if (startswith (sec->name, ".stab")
- && strcmp (sec->name + strlen (sec->name) - 3, "str") == 0)
+ && streq (sec->name + strlen (sec->name) - 3, "str"))
{
size_t len;
char *alc;
@@ -6099,7 +6164,7 @@ assign_file_positions_for_load_sections (bfd *abfd,
PT_DYNAMIC segment. */
else if (p->p_type == PT_DYNAMIC
&& m->count > 1
- && strcmp (m->sections[0]->name, ".dynamic") != 0)
+ && ! streq (m->sections[0]->name, ".dynamic"))
{
_bfd_error_handler
(_("%pB: The first section in the PT_DYNAMIC segment"
@@ -7464,7 +7529,7 @@ rewrite_elf_program_header (bfd *ibfd, bfd *obfd, bfd_vma maxpagesize)
|| (segment->p_paddr \
? segment->p_paddr != section->lma * (opb) \
: segment->p_vaddr != section->vma * (opb)) \
- || (strcmp (bfd_section_name (section), ".dynamic") == 0)) \
+ || (streq (bfd_section_name (section), ".dynamic"))) \
&& (segment->p_type != PT_LOAD || !section->segment_mark))
/* If the output section of a section in the input segment is NULL,
@@ -8430,9 +8495,28 @@ _bfd_elf_copy_private_section_data (bfd *ibfd,
& ~(SEC_LINK_ONCE | SEC_LINK_DUPLICATES | SEC_RELOC)) == 0)))
elf_section_type (osec) = elf_section_type (isec);
- /* FIXME: Is this correct for all OS/PROC specific flags? */
- elf_section_flags (osec) = (elf_section_flags (isec)
- & (SHF_MASKOS | SHF_MASKPROC));
+ elf_section_flags (osec) = elf_section_flags (isec);
+ /* Like for type, retain flags for objcopy (yet unlike for type, don't do so
+ for relocatable link). Same heuristic as there: If the BFD section flags
+ are different, assume --set-section-flags is in use for the section.
+
+ FIXME: Is this correct for all OS/PROC specific flags? */
+ if (link_info != NULL || osec->flags != isec->flags)
+ elf_section_flags (osec) &= (SHF_MASKOS | SHF_MASKPROC);
+ else
+ {
+ /* Clear only flags which are set below or elsewhere. */
+ elf_section_flags (osec) &= ~(SHF_WRITE | SHF_ALLOC | SHF_EXECINSTR
+ | SHF_MERGE | SHF_STRINGS | SHF_LINK_ORDER
+ | SHF_INFO_LINK | SHF_GROUP | SHF_TLS
+ | SHF_COMPRESSED);
+ if (elf_section_flags (osec) & ~(SHF_MASKOS | SHF_MASKPROC))
+ _bfd_error_handler
+ (_("%pB:%pA: warning: retaining unknown section flag(s) %#" PRIx64),
+ ibfd, isec,
+ (uint64_t) (elf_section_flags (osec)
+ & ~(SHF_MASKOS | SHF_MASKPROC)));
+ }
/* Copy sh_info from input for mbind section. */
if ((elf_tdata (ibfd)->has_gnu_osabi & elf_gnu_osabi_mbind) != 0
@@ -10357,7 +10441,7 @@ elfcore_grok_prstatus (bfd *abfd, Elf_Internal_Note *note)
}
/* Make a ".reg/999" section and a ".reg" section. */
- return _bfd_elfcore_make_pseudosection (abfd, ".reg",
+ return _bfd_elfcore_make_pseudosection (abfd, NOTE_PSEUDO_SECTION_REG,
size, note->descpos + offset);
}
#endif /* defined (HAVE_PRSTATUS_T) */
@@ -10379,7 +10463,7 @@ elfcore_make_note_pseudosection (bfd *abfd,
static bool
elfcore_grok_prfpreg (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg2", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_REG2, note);
}
/* Linux dumps the Intel SSE regs in a note named "LINUX" with a note
@@ -10389,7 +10473,7 @@ elfcore_grok_prfpreg (bfd *abfd, Elf_Internal_Note *note)
static bool
elfcore_grok_prxfpreg (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-xfp", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_XFP, note);
}
/* Linux dumps the Intel XSAVE extended state in a note named "LINUX"
@@ -10399,236 +10483,235 @@ elfcore_grok_prxfpreg (bfd *abfd, Elf_Internal_Note *note)
static bool
elfcore_grok_xstatereg (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-xstate", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_XSTATE, note);
}
static bool
elfcore_grok_sspreg (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-ssp", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_SSP, note);
}
static bool
elfcore_grok_ppc_vmx (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-ppc-vmx", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_PPC_VMX, note);
}
static bool
elfcore_grok_ppc_vsx (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-ppc-vsx", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_PPC_VSX, note);
}
static bool
elfcore_grok_ppc_tar (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-ppc-tar", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_PPC_TAR, note);
}
static bool
elfcore_grok_ppc_ppr (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-ppc-ppr", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_PPC_PPR, note);
}
static bool
elfcore_grok_ppc_dscr (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-ppc-dscr", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_PPC_DSCR, note);
}
static bool
elfcore_grok_ppc_ebb (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-ppc-ebb", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_PPC_EBB, note);
}
static bool
elfcore_grok_ppc_pmu (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-ppc-pmu", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_PPC_PMU, note);
}
static bool
elfcore_grok_ppc_tm_cgpr (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-ppc-tm-cgpr", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_PPC_TM_CGPR, note);
}
static bool
elfcore_grok_ppc_tm_cfpr (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-ppc-tm-cfpr", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_PPC_TM_CFPR, note);
}
static bool
elfcore_grok_ppc_tm_cvmx (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-ppc-tm-cvmx", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_PPC_TM_CVMX, note);
}
static bool
elfcore_grok_ppc_tm_cvsx (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-ppc-tm-cvsx", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_PPC_TM_CVSX, note);
}
static bool
elfcore_grok_ppc_tm_spr (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-ppc-tm-spr", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_PPC_TM_SPR, note);
}
static bool
elfcore_grok_ppc_tm_ctar (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-ppc-tm-ctar", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_PPC_TM_CTAR, note);
}
static bool
elfcore_grok_ppc_tm_cppr (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-ppc-tm-cppr", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_PPC_TM_CPPR, note);
}
static bool
elfcore_grok_ppc_tm_cdscr (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-ppc-tm-cdscr", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_PPC_TM_CDSCR, note);
}
static bool
elfcore_grok_s390_high_gprs (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-s390-high-gprs", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_S390_HIGH_GPRS, note);
}
static bool
elfcore_grok_s390_timer (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-s390-timer", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_S390_TIMER, note);
}
static bool
elfcore_grok_s390_todcmp (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-s390-todcmp", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_S390_TODCMP, note);
}
static bool
elfcore_grok_s390_todpreg (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-s390-todpreg", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_S390_TODPREG, note);
}
static bool
elfcore_grok_s390_ctrs (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-s390-ctrs", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_S390_CTRS, note);
}
static bool
elfcore_grok_s390_prefix (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-s390-prefix", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_S390_PREFIX, note);
}
static bool
elfcore_grok_s390_last_break (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-s390-last-break", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_S390_LAST_BREAK, note);
}
static bool
elfcore_grok_s390_system_call (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-s390-system-call", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_S390_SYSTEM_CALL, note);
}
static bool
elfcore_grok_s390_tdb (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-s390-tdb", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_S390_TDB, note);
}
static bool
elfcore_grok_s390_vxrs_low (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-s390-vxrs-low", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_S390_VXRS_LOW, note);
}
static bool
elfcore_grok_s390_vxrs_high (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-s390-vxrs-high", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_S390_VXRS_HIGH, note);
}
static bool
elfcore_grok_s390_gs_cb (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-s390-gs-cb", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_S390_GS_CB, note);
}
static bool
elfcore_grok_s390_gs_bc (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-s390-gs-bc", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_S390_GS_BC, note);
}
static bool
elfcore_grok_arm_vfp (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-arm-vfp", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_ARM_VFP, note);
}
static bool
elfcore_grok_aarch_tls (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-aarch-tls", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_AARCH_TLS, note);
}
static bool
elfcore_grok_aarch_hw_break (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-aarch-hw-break", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_AARCH_HW_BREAK, note);
}
static bool
elfcore_grok_aarch_hw_watch (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-aarch-hw-watch", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_AARCH_HW_WATCH, note);
}
static bool
elfcore_grok_aarch_sve (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-aarch-sve", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_AARCH_SVE, note);
}
static bool
elfcore_grok_aarch_pauth (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-aarch-pauth", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_AARCH_PAUTH, note);
}
static bool
elfcore_grok_aarch_mte (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-aarch-mte",
- note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_AARCH_MTE, note);
}
static bool
elfcore_grok_aarch_ssve (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-aarch-ssve", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_AARCH_SSVE, note);
}
static bool
elfcore_grok_aarch_za (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-aarch-za", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_AARCH_ZA, note);
}
/* Convert NOTE into a bfd_section called ".reg-aarch-zt". Return TRUE if
@@ -10637,7 +10720,7 @@ elfcore_grok_aarch_za (bfd *abfd, Elf_Internal_Note *note)
static bool
elfcore_grok_aarch_zt (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-aarch-zt", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_AARCH_ZT, note);
}
/* Convert NOTE into a bfd_section called ".reg-aarch-gcs". Return TRUE if
@@ -10646,13 +10729,13 @@ elfcore_grok_aarch_zt (bfd *abfd, Elf_Internal_Note *note)
static bool
elfcore_grok_aarch_gcs (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-aarch-gcs", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_AARCH_GCS, note);
}
static bool
elfcore_grok_arc_v2 (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-arc-v2", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_ARC_V2, note);
}
/* Convert NOTE into a bfd_section called ".reg-riscv-csr". Return TRUE if
@@ -10661,7 +10744,7 @@ elfcore_grok_arc_v2 (bfd *abfd, Elf_Internal_Note *note)
static bool
elfcore_grok_riscv_csr (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-riscv-csr", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_RISCV_CSR, note);
}
/* Convert NOTE into a bfd_section called ".gdb-tdesc". Return TRUE if
@@ -10674,27 +10757,34 @@ elfcore_grok_gdb_tdesc (bfd *abfd, Elf_Internal_Note *note)
}
static bool
+elfcore_grok_i386_tls (bfd *abfd, Elf_Internal_Note *note)
+{
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_I386_TLS,
+ note);
+}
+
+static bool
elfcore_grok_loongarch_cpucfg (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-loongarch-cpucfg", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_LOONGARCH_CPUCFG, note);
}
static bool
elfcore_grok_loongarch_lbt (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-loongarch-lbt", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_LOONGARCH_LBT, note);
}
static bool
elfcore_grok_loongarch_lsx (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-loongarch-lsx", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_LOONGARCH_LSX, note);
}
static bool
elfcore_grok_loongarch_lasx (bfd *abfd, Elf_Internal_Note *note)
{
- return elfcore_make_note_pseudosection (abfd, ".reg-loongarch-lasx", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_LOONGARCH_LASX, note);
}
#if defined (HAVE_PRPSINFO_T)
@@ -10864,7 +10954,7 @@ elfcore_grok_lwpstatus (bfd *abfd, Elf_Internal_Note *note)
/* Make a ".reg/999" section. */
- sprintf (buf, ".reg/%d", elfcore_make_pid (abfd));
+ sprintf (buf, NOTE_PSEUDO_SECTION_REG "/%d", elfcore_make_pid (abfd));
len = strlen (buf) + 1;
name = bfd_alloc (abfd, len);
if (name == NULL)
@@ -10888,12 +10978,12 @@ elfcore_grok_lwpstatus (bfd *abfd, Elf_Internal_Note *note)
sect->alignment_power = 2;
- if (!elfcore_maybe_make_sect (abfd, ".reg", sect))
+ if (!elfcore_maybe_make_sect (abfd, NOTE_PSEUDO_SECTION_REG, sect))
return false;
/* Make a ".reg2/999" section */
- sprintf (buf, ".reg2/%d", elfcore_make_pid (abfd));
+ sprintf (buf, NOTE_PSEUDO_SECTION_REG2 "/%d", elfcore_make_pid (abfd));
len = strlen (buf) + 1;
name = bfd_alloc (abfd, len);
if (name == NULL)
@@ -10917,7 +11007,7 @@ elfcore_grok_lwpstatus (bfd *abfd, Elf_Internal_Note *note)
sect->alignment_power = 2;
- return elfcore_maybe_make_sect (abfd, ".reg2", sect);
+ return elfcore_maybe_make_sect (abfd, NOTE_PSEUDO_SECTION_REG2, sect);
}
#endif /* defined (HAVE_LWPSTATUS_T) */
@@ -10948,7 +11038,7 @@ elfcore_grok_win32pstatus (bfd *abfd, Elf_Internal_Note *note)
type = bfd_get_32 (abfd, note->descdata);
- struct
+ static const struct
{
const char *type_name;
unsigned long min_size;
@@ -10983,7 +11073,7 @@ elfcore_grok_win32pstatus (bfd *abfd, Elf_Internal_Note *note)
/* Make a ".reg/<tid>" section containing the Win32 API thread CONTEXT
structure. */
/* thread_info.tid */
- sprintf (buf, ".reg/%ld", (long) bfd_get_32 (abfd, note->descdata + 4));
+ sprintf (buf, NOTE_PSEUDO_SECTION_REG "/%ld", (long) bfd_get_32 (abfd, note->descdata + 4));
len = strlen (buf) + 1;
name = (char *) bfd_alloc (abfd, len);
@@ -11006,7 +11096,7 @@ elfcore_grok_win32pstatus (bfd *abfd, Elf_Internal_Note *note)
is_active_thread = bfd_get_32 (abfd, note->descdata + 8);
if (is_active_thread)
- if (! elfcore_maybe_make_sect (abfd, ".reg", sect))
+ if (! elfcore_maybe_make_sect (abfd, NOTE_PSEUDO_SECTION_REG, sect))
return false;
break;
@@ -11067,6 +11157,64 @@ elfcore_grok_note (bfd *abfd, Elf_Internal_Note *note)
{
const struct elf_backend_data *bed = get_elf_backend_data (abfd);
+ /* Short cut for LINUX notes. */
+ if (note->namesz == 6 /* strlen (NOTE_NAME_LINUX) + 1 */
+ && streq (note->namedata, NOTE_NAME_LINUX))
+ {
+ switch (note->type)
+ {
+ case NT_386_TLS: return elfcore_grok_i386_tls (abfd, note);
+ case NT_ARC_V2: return elfcore_grok_arc_v2 (abfd, note);
+ case NT_ARM_GCS: return elfcore_grok_aarch_gcs (abfd, note);
+ case NT_ARM_HW_BREAK: return elfcore_grok_aarch_hw_break (abfd, note);
+ case NT_ARM_HW_WATCH: return elfcore_grok_aarch_hw_watch (abfd, note);
+ case NT_ARM_PAC_MASK: return elfcore_grok_aarch_pauth (abfd, note);
+ case NT_ARM_SSVE: return elfcore_grok_aarch_ssve (abfd, note);
+ case NT_ARM_SVE: return elfcore_grok_aarch_sve (abfd, note);
+ case NT_ARM_TAGGED_ADDR_CTRL: return elfcore_grok_aarch_mte (abfd, note);
+ case NT_ARM_TLS: return elfcore_grok_aarch_tls (abfd, note);
+ case NT_ARM_VFP: return elfcore_grok_arm_vfp (abfd, note);
+ case NT_ARM_ZA: return elfcore_grok_aarch_za (abfd, note);
+ case NT_ARM_ZT: return elfcore_grok_aarch_zt (abfd, note);
+ case NT_LARCH_CPUCFG: return elfcore_grok_loongarch_cpucfg (abfd, note);
+ case NT_LARCH_LASX: return elfcore_grok_loongarch_lasx (abfd, note);
+ case NT_LARCH_LBT: return elfcore_grok_loongarch_lbt (abfd, note);
+ case NT_LARCH_LSX: return elfcore_grok_loongarch_lsx (abfd, note);
+ case NT_PPC_DSCR: return elfcore_grok_ppc_dscr (abfd, note);
+ case NT_PPC_EBB: return elfcore_grok_ppc_ebb (abfd, note);
+ case NT_PPC_PMU: return elfcore_grok_ppc_pmu (abfd, note);
+ case NT_PPC_PPR: return elfcore_grok_ppc_ppr (abfd, note);
+ case NT_PPC_TAR: return elfcore_grok_ppc_tar (abfd, note);
+ case NT_PPC_TM_CDSCR: return elfcore_grok_ppc_tm_cdscr (abfd, note);
+ case NT_PPC_TM_CFPR: return elfcore_grok_ppc_tm_cfpr (abfd, note);
+ case NT_PPC_TM_CGPR: return elfcore_grok_ppc_tm_cgpr (abfd, note);
+ case NT_PPC_TM_CPPR: return elfcore_grok_ppc_tm_cppr (abfd, note);
+ case NT_PPC_TM_CTAR: return elfcore_grok_ppc_tm_ctar (abfd, note);
+ case NT_PPC_TM_CVMX: return elfcore_grok_ppc_tm_cvmx (abfd, note);
+ case NT_PPC_TM_CVSX: return elfcore_grok_ppc_tm_cvsx (abfd, note);
+ case NT_PPC_TM_SPR: return elfcore_grok_ppc_tm_spr (abfd, note);
+ case NT_PPC_VMX: return elfcore_grok_ppc_vmx (abfd, note);
+ case NT_PPC_VSX: return elfcore_grok_ppc_vsx (abfd, note);
+ case NT_PRXFPREG: return elfcore_grok_prxfpreg (abfd, note);
+ case NT_S390_CTRS: return elfcore_grok_s390_ctrs (abfd, note);
+ case NT_S390_GS_BC: return elfcore_grok_s390_gs_bc (abfd, note);
+ case NT_S390_GS_CB: return elfcore_grok_s390_gs_cb (abfd, note);
+ case NT_S390_HIGH_GPRS: return elfcore_grok_s390_high_gprs (abfd, note);
+ case NT_S390_LAST_BREAK: return elfcore_grok_s390_last_break (abfd, note);
+ case NT_S390_PREFIX: return elfcore_grok_s390_prefix (abfd, note);
+ case NT_S390_SYSTEM_CALL: return elfcore_grok_s390_system_call (abfd, note);
+ case NT_S390_TDB: return elfcore_grok_s390_tdb (abfd, note);
+ case NT_S390_TIMER: return elfcore_grok_s390_timer (abfd, note);
+ case NT_S390_TODCMP: return elfcore_grok_s390_todcmp (abfd, note);
+ case NT_S390_TODPREG: return elfcore_grok_s390_todpreg (abfd, note);
+ case NT_S390_VXRS_HIGH: return elfcore_grok_s390_vxrs_high (abfd, note);
+ case NT_S390_VXRS_LOW: return elfcore_grok_s390_vxrs_low (abfd, note);
+ case NT_X86_SHSTK: return elfcore_grok_sspreg (abfd, note);
+ case NT_X86_XSTATE: return elfcore_grok_xstatereg (abfd, note);
+ default: break;
+ }
+ }
+
switch (note->type)
{
default:
@@ -11092,354 +11240,24 @@ elfcore_grok_note (bfd *abfd, Elf_Internal_Note *note)
return elfcore_grok_lwpstatus (abfd, note);
#endif
- case NT_FPREGSET: /* FIXME: rename to NT_PRFPREG */
+ case NT_FPREGSET: /* FIXME: rename to NT_PRFPREG. */
return elfcore_grok_prfpreg (abfd, note);
case NT_WIN32PSTATUS:
return elfcore_grok_win32pstatus (abfd, note);
- case NT_PRXFPREG: /* Linux SSE extension */
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_prxfpreg (abfd, note);
- else
- return true;
-
- case NT_X86_XSTATE: /* Linux XSAVE extension */
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_xstatereg (abfd, note);
- else
- return true;
-
- case NT_X86_SHSTK: /* Linux CET extension. */
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_sspreg (abfd, note);
- else
- return true;
-
- case NT_PPC_VMX:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_ppc_vmx (abfd, note);
- else
- return true;
-
- case NT_PPC_VSX:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_ppc_vsx (abfd, note);
- else
- return true;
-
- case NT_PPC_TAR:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_ppc_tar (abfd, note);
- else
- return true;
-
- case NT_PPC_PPR:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_ppc_ppr (abfd, note);
- else
- return true;
-
- case NT_PPC_DSCR:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_ppc_dscr (abfd, note);
- else
- return true;
-
- case NT_PPC_EBB:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_ppc_ebb (abfd, note);
- else
- return true;
-
- case NT_PPC_PMU:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_ppc_pmu (abfd, note);
- else
- return true;
-
- case NT_PPC_TM_CGPR:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_ppc_tm_cgpr (abfd, note);
- else
- return true;
-
- case NT_PPC_TM_CFPR:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_ppc_tm_cfpr (abfd, note);
- else
- return true;
-
- case NT_PPC_TM_CVMX:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_ppc_tm_cvmx (abfd, note);
- else
- return true;
-
- case NT_PPC_TM_CVSX:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_ppc_tm_cvsx (abfd, note);
- else
- return true;
-
- case NT_PPC_TM_SPR:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_ppc_tm_spr (abfd, note);
- else
- return true;
-
- case NT_PPC_TM_CTAR:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_ppc_tm_ctar (abfd, note);
- else
- return true;
-
- case NT_PPC_TM_CPPR:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_ppc_tm_cppr (abfd, note);
- else
- return true;
-
- case NT_PPC_TM_CDSCR:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_ppc_tm_cdscr (abfd, note);
- else
- return true;
-
- case NT_S390_HIGH_GPRS:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_s390_high_gprs (abfd, note);
- else
- return true;
-
- case NT_S390_TIMER:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_s390_timer (abfd, note);
- else
- return true;
-
- case NT_S390_TODCMP:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_s390_todcmp (abfd, note);
- else
- return true;
-
- case NT_S390_TODPREG:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_s390_todpreg (abfd, note);
- else
- return true;
-
- case NT_S390_CTRS:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_s390_ctrs (abfd, note);
- else
- return true;
-
- case NT_S390_PREFIX:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_s390_prefix (abfd, note);
- else
- return true;
-
- case NT_S390_LAST_BREAK:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_s390_last_break (abfd, note);
- else
- return true;
-
- case NT_S390_SYSTEM_CALL:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_s390_system_call (abfd, note);
- else
- return true;
-
- case NT_S390_TDB:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_s390_tdb (abfd, note);
- else
- return true;
-
- case NT_S390_VXRS_LOW:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_s390_vxrs_low (abfd, note);
- else
- return true;
-
- case NT_S390_VXRS_HIGH:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_s390_vxrs_high (abfd, note);
- else
- return true;
-
- case NT_S390_GS_CB:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_s390_gs_cb (abfd, note);
- else
- return true;
-
- case NT_S390_GS_BC:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_s390_gs_bc (abfd, note);
- else
- return true;
-
- case NT_ARC_V2:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_arc_v2 (abfd, note);
- else
- return true;
-
- case NT_ARM_VFP:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_arm_vfp (abfd, note);
- else
- return true;
-
- case NT_ARM_TLS:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_aarch_tls (abfd, note);
- else
- return true;
-
- case NT_ARM_HW_BREAK:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_aarch_hw_break (abfd, note);
- else
- return true;
-
- case NT_ARM_HW_WATCH:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_aarch_hw_watch (abfd, note);
- else
- return true;
-
- case NT_ARM_SVE:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_aarch_sve (abfd, note);
- else
- return true;
-
- case NT_ARM_PAC_MASK:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_aarch_pauth (abfd, note);
- else
- return true;
-
- case NT_ARM_TAGGED_ADDR_CTRL:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_aarch_mte (abfd, note);
- else
- return true;
-
- case NT_ARM_SSVE:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_aarch_ssve (abfd, note);
- else
- return true;
-
- case NT_ARM_ZA:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_aarch_za (abfd, note);
- else
- return true;
-
- case NT_ARM_ZT:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_aarch_zt (abfd, note);
- else
- return true;
-
- case NT_ARM_GCS:
- if (note->namesz == 6 && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_aarch_gcs (abfd, note);
- else
- return true;
-
case NT_GDB_TDESC:
- if (note->namesz == 4
- && strcmp (note->namedata, "GDB") == 0)
+ if (note->namesz == 4 && streq (note->namedata, NOTE_NAME_GDB))
return elfcore_grok_gdb_tdesc (abfd, note);
else
return true;
case NT_RISCV_CSR:
- if (note->namesz == 4
- && strcmp (note->namedata, "GDB") == 0)
+ if (note->namesz == 4 && streq (note->namedata, NOTE_NAME_GDB))
return elfcore_grok_riscv_csr (abfd, note);
else
return true;
- case NT_LARCH_CPUCFG:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_loongarch_cpucfg (abfd, note);
- else
- return true;
-
- case NT_LARCH_LBT:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_loongarch_lbt (abfd, note);
- else
- return true;
-
- case NT_LARCH_LSX:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_loongarch_lsx (abfd, note);
- else
- return true;
-
- case NT_LARCH_LASX:
- if (note->namesz == 6
- && strcmp (note->namedata, "LINUX") == 0)
- return elfcore_grok_loongarch_lasx (abfd, note);
- else
- return true;
-
case NT_PRPSINFO:
case NT_PSINFO:
if (bed->elf_backend_grok_psinfo)
@@ -11461,7 +11279,6 @@ elfcore_grok_note (bfd *abfd, Elf_Internal_Note *note)
case NT_SIGINFO:
return elfcore_make_note_pseudosection (abfd, ".note.linuxcore.siginfo",
note);
-
}
}
@@ -11656,7 +11473,7 @@ elfcore_grok_freebsd_prstatus (bfd *abfd, Elf_Internal_Note *note)
return false;
/* Make a ".reg/999" section and a ".reg" section. */
- return _bfd_elfcore_make_pseudosection (abfd, ".reg",
+ return _bfd_elfcore_make_pseudosection (abfd, NOTE_PSEUDO_SECTION_REG,
size, note->descpos + offset);
}
@@ -11698,7 +11515,7 @@ elfcore_grok_freebsd_note (bfd *abfd, Elf_Internal_Note *note)
return elfcore_make_auxv_note_section (abfd, note, 4);
case NT_FREEBSD_X86_SEGBASES:
- return elfcore_make_note_pseudosection (abfd, ".reg-x86-segbases", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_X86_SEGBASES, note);
case NT_X86_XSTATE:
return elfcore_grok_xstatereg (abfd, note);
@@ -11801,10 +11618,10 @@ elfcore_grok_netbsd_note (bfd *abfd, Elf_Internal_Note *note)
switch (note->type)
{
case NT_NETBSDCORE_FIRSTMACH+0:
- return elfcore_make_note_pseudosection (abfd, ".reg", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_REG, note);
case NT_NETBSDCORE_FIRSTMACH+2:
- return elfcore_make_note_pseudosection (abfd, ".reg2", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_REG2, note);
default:
return true;
@@ -11818,10 +11635,10 @@ elfcore_grok_netbsd_note (bfd *abfd, Elf_Internal_Note *note)
switch (note->type)
{
case NT_NETBSDCORE_FIRSTMACH+3:
- return elfcore_make_note_pseudosection (abfd, ".reg", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_REG, note);
case NT_NETBSDCORE_FIRSTMACH+5:
- return elfcore_make_note_pseudosection (abfd, ".reg2", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_REG2, note);
default:
return true;
@@ -11834,10 +11651,10 @@ elfcore_grok_netbsd_note (bfd *abfd, Elf_Internal_Note *note)
switch (note->type)
{
case NT_NETBSDCORE_FIRSTMACH+1:
- return elfcore_make_note_pseudosection (abfd, ".reg", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_REG, note);
case NT_NETBSDCORE_FIRSTMACH+3:
- return elfcore_make_note_pseudosection (abfd, ".reg2", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_REG2, note);
default:
return true;
@@ -11887,11 +11704,11 @@ elfcore_grok_solaris_prstatus (bfd *abfd, Elf_Internal_Note* note, int sig_off,
elf_tdata (abfd)->core->lwpid
= bfd_get_32 (abfd, note->descdata + lwpid_off);
- sect = bfd_get_section_by_name (abfd, ".reg");
+ sect = bfd_get_section_by_name (abfd, NOTE_PSEUDO_SECTION_REG);
if (sect != NULL)
sect->size = gregset_size;
- return _bfd_elfcore_make_pseudosection (abfd, ".reg", gregset_size,
+ return _bfd_elfcore_make_pseudosection (abfd, NOTE_PSEUDO_SECTION_REG, gregset_size,
note->descpos + gregset_offset);
}
@@ -11925,7 +11742,7 @@ elfcore_grok_solaris_lwpstatus (bfd *abfd, Elf_Internal_Note* note,
asection *sect = NULL;
char reg2_section_name[16] = { 0 };
- (void) snprintf (reg2_section_name, 16, "%s/%i", ".reg2",
+ (void) snprintf (reg2_section_name, 16, "%s/%i", NOTE_PSEUDO_SECTION_REG2,
elf_tdata (abfd)->core->lwpid);
/* offsetof(lwpstatus_t, pr_lwpid) */
@@ -11935,10 +11752,10 @@ elfcore_grok_solaris_lwpstatus (bfd *abfd, Elf_Internal_Note* note,
elf_tdata (abfd)->core->signal
= bfd_get_16 (abfd, note->descdata + 12);
- sect = bfd_get_section_by_name (abfd, ".reg");
+ sect = bfd_get_section_by_name (abfd, NOTE_PSEUDO_SECTION_REG);
if (sect != NULL)
sect->size = gregset_size;
- else if (!_bfd_elfcore_make_pseudosection (abfd, ".reg", gregset_size,
+ else if (!_bfd_elfcore_make_pseudosection (abfd, NOTE_PSEUDO_SECTION_REG, gregset_size,
note->descpos + gregset_off))
return false;
@@ -11949,7 +11766,7 @@ elfcore_grok_solaris_lwpstatus (bfd *abfd, Elf_Internal_Note* note,
sect->filepos = note->descpos + fpregset_off;
sect->alignment_power = 2;
}
- else if (!_bfd_elfcore_make_pseudosection (abfd, ".reg2", fpregset_size,
+ else if (!_bfd_elfcore_make_pseudosection (abfd, NOTE_PSEUDO_SECTION_REG2, fpregset_size,
note->descpos + fpregset_off))
return false;
@@ -12063,13 +11880,13 @@ elfcore_grok_openbsd_note (bfd *abfd, Elf_Internal_Note *note)
return elfcore_grok_openbsd_procinfo (abfd, note);
if (note->type == NT_OPENBSD_REGS)
- return elfcore_make_note_pseudosection (abfd, ".reg", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_REG, note);
if (note->type == NT_OPENBSD_FPREGS)
- return elfcore_make_note_pseudosection (abfd, ".reg2", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_REG2, note);
if (note->type == NT_OPENBSD_XFPREGS)
- return elfcore_make_note_pseudosection (abfd, ".reg-xfp", note);
+ return elfcore_make_note_pseudosection (abfd, NOTE_PSEUDO_SECTION_XFP, note);
if (note->type == NT_OPENBSD_AUXV)
return elfcore_make_auxv_note_section (abfd, note, 0);
@@ -12193,9 +12010,9 @@ elfcore_grok_nto_note (bfd *abfd, Elf_Internal_Note *note)
case QNT_CORE_STATUS:
return elfcore_grok_nto_status (abfd, note, &tid);
case QNT_CORE_GREG:
- return elfcore_grok_nto_regs (abfd, note, tid, ".reg");
+ return elfcore_grok_nto_regs (abfd, note, tid, NOTE_PSEUDO_SECTION_REG);
case QNT_CORE_FPREG:
- return elfcore_grok_nto_regs (abfd, note, tid, ".reg2");
+ return elfcore_grok_nto_regs (abfd, note, tid, NOTE_PSEUDO_SECTION_REG2);
default:
return true;
}
@@ -12345,7 +12162,7 @@ elfcore_write_prpsinfo (bfd *abfd,
strncpy (data.pr_fname, fname, sizeof (data.pr_fname));
strncpy (data.pr_psargs, psargs, sizeof (data.pr_psargs));
return elfcore_write_note (abfd, buf, bufsiz,
- "CORE", note_type, &data, sizeof (data));
+ NOTE_NAME_CORE, note_type, &data, sizeof (data));
}
else
# endif
@@ -12362,7 +12179,7 @@ elfcore_write_prpsinfo (bfd *abfd,
strncpy (data.pr_fname, fname, sizeof (data.pr_fname));
strncpy (data.pr_psargs, psargs, sizeof (data.pr_psargs));
return elfcore_write_note (abfd, buf, bufsiz,
- "CORE", note_type, &data, sizeof (data));
+ NOTE_NAME_CORE, note_type, &data, sizeof (data));
}
#endif /* PSINFO_T or PRPSINFO_T */
@@ -12383,7 +12200,7 @@ elfcore_write_linux_prpsinfo32
struct elf_external_linux_prpsinfo32_ugid16 data;
swap_linux_prpsinfo32_ugid16_out (abfd, prpsinfo, &data);
- return elfcore_write_note (abfd, buf, bufsiz, "CORE", NT_PRPSINFO,
+ return elfcore_write_note (abfd, buf, bufsiz, NOTE_NAME_CORE, NT_PRPSINFO,
&data, sizeof (data));
}
else
@@ -12391,7 +12208,7 @@ elfcore_write_linux_prpsinfo32
struct elf_external_linux_prpsinfo32_ugid32 data;
swap_linux_prpsinfo32_ugid32_out (abfd, prpsinfo, &data);
- return elfcore_write_note (abfd, buf, bufsiz, "CORE", NT_PRPSINFO,
+ return elfcore_write_note (abfd, buf, bufsiz, NOTE_NAME_CORE, NT_PRPSINFO,
&data, sizeof (data));
}
}
@@ -12407,7 +12224,7 @@ elfcore_write_linux_prpsinfo64
swap_linux_prpsinfo64_ugid16_out (abfd, prpsinfo, &data);
return elfcore_write_note (abfd, buf, bufsiz,
- "CORE", NT_PRPSINFO, &data, sizeof (data));
+ NOTE_NAME_CORE, NT_PRPSINFO, &data, sizeof (data));
}
else
{
@@ -12415,7 +12232,7 @@ elfcore_write_linux_prpsinfo64
swap_linux_prpsinfo64_ugid32_out (abfd, prpsinfo, &data);
return elfcore_write_note (abfd, buf, bufsiz,
- "CORE", NT_PRPSINFO, &data, sizeof (data));
+ NOTE_NAME_CORE, NT_PRPSINFO, &data, sizeof (data));
}
}
@@ -12449,7 +12266,7 @@ elfcore_write_prstatus (bfd *abfd,
prstat.pr_pid = pid;
prstat.pr_cursig = cursig;
memcpy (&prstat.pr_reg, gregs, sizeof (prstat.pr_reg));
- return elfcore_write_note (abfd, buf, bufsiz, "CORE",
+ return elfcore_write_note (abfd, buf, bufsiz, NOTE_NAME_CORE,
NT_PRSTATUS, &prstat, sizeof (prstat));
}
else
@@ -12461,7 +12278,7 @@ elfcore_write_prstatus (bfd *abfd,
prstat.pr_pid = pid;
prstat.pr_cursig = cursig;
memcpy (&prstat.pr_reg, gregs, sizeof (prstat.pr_reg));
- return elfcore_write_note (abfd, buf, bufsiz, "CORE",
+ return elfcore_write_note (abfd, buf, bufsiz, NOTE_NAME_CORE,
NT_PRSTATUS, &prstat, sizeof (prstat));
}
#endif /* HAVE_PRSTATUS_T */
@@ -12480,7 +12297,6 @@ elfcore_write_lwpstatus (bfd *abfd,
const void *gregs)
{
lwpstatus_t lwpstat;
- const char *note_name = "CORE";
memset (&lwpstat, 0, sizeof (lwpstat));
lwpstat.pr_lwpid = pid >> 16;
@@ -12496,7 +12312,7 @@ elfcore_write_lwpstatus (bfd *abfd,
gregs, sizeof (lwpstat.pr_context.uc_mcontext.__gregs));
#endif
#endif
- return elfcore_write_note (abfd, buf, bufsiz, note_name,
+ return elfcore_write_note (abfd, buf, bufsiz, NOTE_NAME_CORE,
NT_LWPSTATUS, &lwpstat, sizeof (lwpstat));
}
#endif /* HAVE_LWPSTATUS_T */
@@ -12510,7 +12326,6 @@ elfcore_write_pstatus (bfd *abfd,
int cursig ATTRIBUTE_UNUSED,
const void *gregs ATTRIBUTE_UNUSED)
{
- const char *note_name = "CORE";
#if defined (HAVE_PSTATUS32_T)
const struct elf_backend_data *bed = get_elf_backend_data (abfd);
@@ -12520,7 +12335,7 @@ elfcore_write_pstatus (bfd *abfd,
memset (&pstat, 0, sizeof (pstat));
pstat.pr_pid = pid & 0xffff;
- buf = elfcore_write_note (abfd, buf, bufsiz, note_name,
+ buf = elfcore_write_note (abfd, buf, bufsiz, NOTE_NAME_CORE,
NT_PSTATUS, &pstat, sizeof (pstat));
return buf;
}
@@ -12531,7 +12346,7 @@ elfcore_write_pstatus (bfd *abfd,
memset (&pstat, 0, sizeof (pstat));
pstat.pr_pid = pid & 0xffff;
- buf = elfcore_write_note (abfd, buf, bufsiz, note_name,
+ buf = elfcore_write_note (abfd, buf, bufsiz, NOTE_NAME_CORE,
NT_PSTATUS, &pstat, sizeof (pstat));
return buf;
}
@@ -12545,9 +12360,8 @@ elfcore_write_prfpreg (bfd *abfd,
const void *fpregs,
int size)
{
- const char *note_name = "CORE";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_FPREGSET, fpregs, size);
+ NOTE_NAME_CORE, NT_FPREGSET, fpregs, size);
}
char *
@@ -12557,9 +12371,8 @@ elfcore_write_prxfpreg (bfd *abfd,
const void *xfpregs,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_PRXFPREG, xfpregs, size);
+ NOTE_NAME_LINUX, NT_PRXFPREG, xfpregs, size);
}
char *
@@ -12567,10 +12380,12 @@ elfcore_write_xstatereg (bfd *abfd, char *buf, int *bufsiz,
const void *xfpregs, int size)
{
char *note_name;
+
if (get_elf_backend_data (abfd)->elf_osabi == ELFOSABI_FREEBSD)
- note_name = "FreeBSD";
+ note_name = NOTE_NAME_FREEBSD;
else
- note_name = "LINUX";
+ note_name = NOTE_NAME_LINUX;
+
return elfcore_write_note (abfd, buf, bufsiz,
note_name, NT_X86_XSTATE, xfpregs, size);
}
@@ -12579,18 +12394,25 @@ static char *
elfcore_write_sspreg (bfd *abfd, char *buf, int *bufsiz,
const void *ssp, int size)
{
- const char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_X86_SHSTK, ssp, size);
+ NOTE_NAME_LINUX, NT_X86_SHSTK, ssp, size);
}
char *
elfcore_write_x86_segbases (bfd *abfd, char *buf, int *bufsiz,
const void *regs, int size)
{
- char *note_name = "FreeBSD";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_FREEBSD_X86_SEGBASES, regs, size);
+ NOTE_NAME_FREEBSD, NT_FREEBSD_X86_SEGBASES,
+ regs, size);
+}
+
+char *
+elfcore_write_i386_tls (bfd *abfd, char *buf, int *bufsiz,
+ const void *regs, int size)
+{
+ return elfcore_write_note (abfd, buf, bufsiz, NOTE_NAME_LINUX, NT_386_TLS,
+ regs, size);
}
char *
@@ -12600,9 +12422,8 @@ elfcore_write_ppc_vmx (bfd *abfd,
const void *ppc_vmx,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_PPC_VMX, ppc_vmx, size);
+ NOTE_NAME_LINUX, NT_PPC_VMX, ppc_vmx, size);
}
char *
@@ -12612,9 +12433,8 @@ elfcore_write_ppc_vsx (bfd *abfd,
const void *ppc_vsx,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_PPC_VSX, ppc_vsx, size);
+ NOTE_NAME_LINUX, NT_PPC_VSX, ppc_vsx, size);
}
char *
@@ -12624,9 +12444,8 @@ elfcore_write_ppc_tar (bfd *abfd,
const void *ppc_tar,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_PPC_TAR, ppc_tar, size);
+ NOTE_NAME_LINUX, NT_PPC_TAR, ppc_tar, size);
}
char *
@@ -12636,9 +12455,8 @@ elfcore_write_ppc_ppr (bfd *abfd,
const void *ppc_ppr,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_PPC_PPR, ppc_ppr, size);
+ NOTE_NAME_LINUX, NT_PPC_PPR, ppc_ppr, size);
}
char *
@@ -12648,9 +12466,8 @@ elfcore_write_ppc_dscr (bfd *abfd,
const void *ppc_dscr,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_PPC_DSCR, ppc_dscr, size);
+ NOTE_NAME_LINUX, NT_PPC_DSCR, ppc_dscr, size);
}
char *
@@ -12660,9 +12477,8 @@ elfcore_write_ppc_ebb (bfd *abfd,
const void *ppc_ebb,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_PPC_EBB, ppc_ebb, size);
+ NOTE_NAME_LINUX, NT_PPC_EBB, ppc_ebb, size);
}
char *
@@ -12672,9 +12488,8 @@ elfcore_write_ppc_pmu (bfd *abfd,
const void *ppc_pmu,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_PPC_PMU, ppc_pmu, size);
+ NOTE_NAME_LINUX, NT_PPC_PMU, ppc_pmu, size);
}
char *
@@ -12684,9 +12499,9 @@ elfcore_write_ppc_tm_cgpr (bfd *abfd,
const void *ppc_tm_cgpr,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_PPC_TM_CGPR, ppc_tm_cgpr, size);
+ NOTE_NAME_LINUX, NT_PPC_TM_CGPR,
+ ppc_tm_cgpr, size);
}
char *
@@ -12696,9 +12511,9 @@ elfcore_write_ppc_tm_cfpr (bfd *abfd,
const void *ppc_tm_cfpr,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_PPC_TM_CFPR, ppc_tm_cfpr, size);
+ NOTE_NAME_LINUX, NT_PPC_TM_CFPR,
+ ppc_tm_cfpr, size);
}
char *
@@ -12708,9 +12523,9 @@ elfcore_write_ppc_tm_cvmx (bfd *abfd,
const void *ppc_tm_cvmx,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_PPC_TM_CVMX, ppc_tm_cvmx, size);
+ NOTE_NAME_LINUX, NT_PPC_TM_CVMX,
+ ppc_tm_cvmx, size);
}
char *
@@ -12720,9 +12535,9 @@ elfcore_write_ppc_tm_cvsx (bfd *abfd,
const void *ppc_tm_cvsx,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_PPC_TM_CVSX, ppc_tm_cvsx, size);
+ NOTE_NAME_LINUX, NT_PPC_TM_CVSX,
+ ppc_tm_cvsx, size);
}
char *
@@ -12732,9 +12547,9 @@ elfcore_write_ppc_tm_spr (bfd *abfd,
const void *ppc_tm_spr,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_PPC_TM_SPR, ppc_tm_spr, size);
+ NOTE_NAME_LINUX, NT_PPC_TM_SPR,
+ ppc_tm_spr, size);
}
char *
@@ -12744,9 +12559,9 @@ elfcore_write_ppc_tm_ctar (bfd *abfd,
const void *ppc_tm_ctar,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_PPC_TM_CTAR, ppc_tm_ctar, size);
+ NOTE_NAME_LINUX, NT_PPC_TM_CTAR,
+ ppc_tm_ctar, size);
}
char *
@@ -12756,9 +12571,9 @@ elfcore_write_ppc_tm_cppr (bfd *abfd,
const void *ppc_tm_cppr,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_PPC_TM_CPPR, ppc_tm_cppr, size);
+ NOTE_NAME_LINUX, NT_PPC_TM_CPPR,
+ ppc_tm_cppr, size);
}
char *
@@ -12768,9 +12583,9 @@ elfcore_write_ppc_tm_cdscr (bfd *abfd,
const void *ppc_tm_cdscr,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_PPC_TM_CDSCR, ppc_tm_cdscr, size);
+ NOTE_NAME_LINUX, NT_PPC_TM_CDSCR,
+ ppc_tm_cdscr, size);
}
static char *
@@ -12780,9 +12595,8 @@ elfcore_write_s390_high_gprs (bfd *abfd,
const void *s390_high_gprs,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_S390_HIGH_GPRS,
+ NOTE_NAME_LINUX, NT_S390_HIGH_GPRS,
s390_high_gprs, size);
}
@@ -12793,9 +12607,9 @@ elfcore_write_s390_timer (bfd *abfd,
const void *s390_timer,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_S390_TIMER, s390_timer, size);
+ NOTE_NAME_LINUX, NT_S390_TIMER,
+ s390_timer, size);
}
char *
@@ -12805,9 +12619,9 @@ elfcore_write_s390_todcmp (bfd *abfd,
const void *s390_todcmp,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_S390_TODCMP, s390_todcmp, size);
+ NOTE_NAME_LINUX, NT_S390_TODCMP,
+ s390_todcmp, size);
}
char *
@@ -12817,9 +12631,9 @@ elfcore_write_s390_todpreg (bfd *abfd,
const void *s390_todpreg,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_S390_TODPREG, s390_todpreg, size);
+ NOTE_NAME_LINUX, NT_S390_TODPREG,
+ s390_todpreg, size);
}
char *
@@ -12829,9 +12643,8 @@ elfcore_write_s390_ctrs (bfd *abfd,
const void *s390_ctrs,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_S390_CTRS, s390_ctrs, size);
+ NOTE_NAME_LINUX, NT_S390_CTRS, s390_ctrs, size);
}
char *
@@ -12841,9 +12654,9 @@ elfcore_write_s390_prefix (bfd *abfd,
const void *s390_prefix,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_S390_PREFIX, s390_prefix, size);
+ NOTE_NAME_LINUX, NT_S390_PREFIX,
+ s390_prefix, size);
}
char *
@@ -12853,9 +12666,8 @@ elfcore_write_s390_last_break (bfd *abfd,
const void *s390_last_break,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_S390_LAST_BREAK,
+ NOTE_NAME_LINUX, NT_S390_LAST_BREAK,
s390_last_break, size);
}
@@ -12866,9 +12678,8 @@ elfcore_write_s390_system_call (bfd *abfd,
const void *s390_system_call,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_S390_SYSTEM_CALL,
+ NOTE_NAME_LINUX, NT_S390_SYSTEM_CALL,
s390_system_call, size);
}
@@ -12879,9 +12690,8 @@ elfcore_write_s390_tdb (bfd *abfd,
const void *s390_tdb,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_S390_TDB, s390_tdb, size);
+ NOTE_NAME_LINUX, NT_S390_TDB, s390_tdb, size);
}
char *
@@ -12891,9 +12701,9 @@ elfcore_write_s390_vxrs_low (bfd *abfd,
const void *s390_vxrs_low,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_S390_VXRS_LOW, s390_vxrs_low, size);
+ NOTE_NAME_LINUX, NT_S390_VXRS_LOW,
+ s390_vxrs_low, size);
}
char *
@@ -12903,9 +12713,8 @@ elfcore_write_s390_vxrs_high (bfd *abfd,
const void *s390_vxrs_high,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_S390_VXRS_HIGH,
+ NOTE_NAME_LINUX, NT_S390_VXRS_HIGH,
s390_vxrs_high, size);
}
@@ -12916,9 +12725,8 @@ elfcore_write_s390_gs_cb (bfd *abfd,
const void *s390_gs_cb,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_S390_GS_CB,
+ NOTE_NAME_LINUX, NT_S390_GS_CB,
s390_gs_cb, size);
}
@@ -12929,9 +12737,8 @@ elfcore_write_s390_gs_bc (bfd *abfd,
const void *s390_gs_bc,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_S390_GS_BC,
+ NOTE_NAME_LINUX, NT_S390_GS_BC,
s390_gs_bc, size);
}
@@ -12942,9 +12749,9 @@ elfcore_write_arm_vfp (bfd *abfd,
const void *arm_vfp,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_ARM_VFP, arm_vfp, size);
+ NOTE_NAME_LINUX, NT_ARM_VFP,
+ arm_vfp, size);
}
char *
@@ -12954,9 +12761,8 @@ elfcore_write_aarch_tls (bfd *abfd,
const void *aarch_tls,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_ARM_TLS, aarch_tls, size);
+ NOTE_NAME_LINUX, NT_ARM_TLS, aarch_tls, size);
}
char *
@@ -12966,9 +12772,9 @@ elfcore_write_aarch_hw_break (bfd *abfd,
const void *aarch_hw_break,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_ARM_HW_BREAK, aarch_hw_break, size);
+ NOTE_NAME_LINUX, NT_ARM_HW_BREAK,
+ aarch_hw_break, size);
}
char *
@@ -12978,9 +12784,9 @@ elfcore_write_aarch_hw_watch (bfd *abfd,
const void *aarch_hw_watch,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_ARM_HW_WATCH, aarch_hw_watch, size);
+ NOTE_NAME_LINUX, NT_ARM_HW_WATCH,
+ aarch_hw_watch, size);
}
char *
@@ -12990,9 +12796,8 @@ elfcore_write_aarch_sve (bfd *abfd,
const void *aarch_sve,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_ARM_SVE, aarch_sve, size);
+ NOTE_NAME_LINUX, NT_ARM_SVE, aarch_sve, size);
}
char *
@@ -13002,23 +12807,21 @@ elfcore_write_aarch_pauth (bfd *abfd,
const void *aarch_pauth,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_ARM_PAC_MASK, aarch_pauth, size);
+ NOTE_NAME_LINUX, NT_ARM_PAC_MASK,
+ aarch_pauth, size);
}
char *
elfcore_write_aarch_mte (bfd *abfd,
- char *buf,
- int *bufsiz,
- const void *aarch_mte,
- int size)
+ char *buf,
+ int *bufsiz,
+ const void *aarch_mte,
+ int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_ARM_TAGGED_ADDR_CTRL,
- aarch_mte,
- size);
+ NOTE_NAME_LINUX, NT_ARM_TAGGED_ADDR_CTRL,
+ aarch_mte, size);
}
char *
@@ -13028,11 +12831,9 @@ elfcore_write_aarch_ssve (bfd *abfd,
const void *aarch_ssve,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_ARM_SSVE,
- aarch_ssve,
- size);
+ NOTE_NAME_LINUX, NT_ARM_SSVE,
+ aarch_ssve, size);
}
char *
@@ -13042,11 +12843,9 @@ elfcore_write_aarch_za (bfd *abfd,
const void *aarch_za,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_ARM_ZA,
- aarch_za,
- size);
+ NOTE_NAME_LINUX, NT_ARM_ZA,
+ aarch_za, size);
}
/* Write the buffer of zt register values in aarch_zt (length SIZE) into
@@ -13061,11 +12860,9 @@ elfcore_write_aarch_zt (bfd *abfd,
const void *aarch_zt,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_ARM_ZT,
- aarch_zt,
- size);
+ NOTE_NAME_LINUX, NT_ARM_ZT,
+ aarch_zt, size);
}
/* Write the buffer of GCS register values in AARCH_GCS (length SIZE) into
@@ -13077,8 +12874,7 @@ static char *
elfcore_write_aarch_gcs (bfd *abfd, char *buf, int *bufsiz,
const void *aarch_gcs, int size)
{
- const char *note_name = "LINUX";
- return elfcore_write_note (abfd, buf, bufsiz, note_name, NT_ARM_GCS,
+ return elfcore_write_note (abfd, buf, bufsiz, NOTE_NAME_LINUX, NT_ARM_GCS,
aarch_gcs, size);
}
@@ -13089,9 +12885,8 @@ elfcore_write_arc_v2 (bfd *abfd,
const void *arc_v2,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_ARC_V2, arc_v2, size);
+ NOTE_NAME_LINUX, NT_ARC_V2, arc_v2, size);
}
char *
@@ -13101,9 +12896,8 @@ elfcore_write_loongarch_cpucfg (bfd *abfd,
const void *loongarch_cpucfg,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_LARCH_CPUCFG,
+ NOTE_NAME_LINUX, NT_LARCH_CPUCFG,
loongarch_cpucfg, size);
}
@@ -13114,9 +12908,9 @@ elfcore_write_loongarch_lbt (bfd *abfd,
const void *loongarch_lbt,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_LARCH_LBT, loongarch_lbt, size);
+ NOTE_NAME_LINUX, NT_LARCH_LBT,
+ loongarch_lbt, size);
}
char *
@@ -13126,9 +12920,9 @@ elfcore_write_loongarch_lsx (bfd *abfd,
const void *loongarch_lsx,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_LARCH_LSX, loongarch_lsx, size);
+ NOTE_NAME_LINUX, NT_LARCH_LSX,
+ loongarch_lsx, size);
}
char *
@@ -13138,9 +12932,9 @@ elfcore_write_loongarch_lasx (bfd *abfd,
const void *loongarch_lasx,
int size)
{
- char *note_name = "LINUX";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_LARCH_LASX, loongarch_lasx, size);
+ NOTE_NAME_LINUX, NT_LARCH_LASX,
+ loongarch_lasx, size);
}
/* Write the buffer of csr values in CSRS (length SIZE) into the note
@@ -13155,9 +12949,8 @@ elfcore_write_riscv_csr (bfd *abfd,
const void *csrs,
int size)
{
- const char *note_name = "GDB";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_RISCV_CSR, csrs, size);
+ NOTE_NAME_GDB, NT_RISCV_CSR, csrs, size);
}
/* Write the target description (a string) pointed to by TDESC, length
@@ -13172,9 +12965,8 @@ elfcore_write_gdb_tdesc (bfd *abfd,
const void *tdesc,
int size)
{
- const char *note_name = "GDB";
return elfcore_write_note (abfd, buf, bufsiz,
- note_name, NT_GDB_TDESC, tdesc, size);
+ NOTE_NAME_GDB, NT_GDB_TDESC, tdesc, size);
}
char *
@@ -13185,108 +12977,73 @@ elfcore_write_register_note (bfd *abfd,
const void *data,
int size)
{
- if (strcmp (section, ".reg2") == 0)
- return elfcore_write_prfpreg (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-xfp") == 0)
- return elfcore_write_prxfpreg (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-xstate") == 0)
- return elfcore_write_xstatereg (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-x86-segbases") == 0)
- return elfcore_write_x86_segbases (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-ssp") == 0)
- return elfcore_write_sspreg (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-ppc-vmx") == 0)
- return elfcore_write_ppc_vmx (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-ppc-vsx") == 0)
- return elfcore_write_ppc_vsx (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-ppc-tar") == 0)
- return elfcore_write_ppc_tar (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-ppc-ppr") == 0)
- return elfcore_write_ppc_ppr (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-ppc-dscr") == 0)
- return elfcore_write_ppc_dscr (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-ppc-ebb") == 0)
- return elfcore_write_ppc_ebb (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-ppc-pmu") == 0)
- return elfcore_write_ppc_pmu (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-ppc-tm-cgpr") == 0)
- return elfcore_write_ppc_tm_cgpr (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-ppc-tm-cfpr") == 0)
- return elfcore_write_ppc_tm_cfpr (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-ppc-tm-cvmx") == 0)
- return elfcore_write_ppc_tm_cvmx (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-ppc-tm-cvsx") == 0)
- return elfcore_write_ppc_tm_cvsx (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-ppc-tm-spr") == 0)
- return elfcore_write_ppc_tm_spr (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-ppc-tm-ctar") == 0)
- return elfcore_write_ppc_tm_ctar (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-ppc-tm-cppr") == 0)
- return elfcore_write_ppc_tm_cppr (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-ppc-tm-cdscr") == 0)
- return elfcore_write_ppc_tm_cdscr (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-s390-high-gprs") == 0)
- return elfcore_write_s390_high_gprs (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-s390-timer") == 0)
- return elfcore_write_s390_timer (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-s390-todcmp") == 0)
- return elfcore_write_s390_todcmp (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-s390-todpreg") == 0)
- return elfcore_write_s390_todpreg (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-s390-ctrs") == 0)
- return elfcore_write_s390_ctrs (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-s390-prefix") == 0)
- return elfcore_write_s390_prefix (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-s390-last-break") == 0)
- return elfcore_write_s390_last_break (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-s390-system-call") == 0)
- return elfcore_write_s390_system_call (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-s390-tdb") == 0)
- return elfcore_write_s390_tdb (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-s390-vxrs-low") == 0)
- return elfcore_write_s390_vxrs_low (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-s390-vxrs-high") == 0)
- return elfcore_write_s390_vxrs_high (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-s390-gs-cb") == 0)
- return elfcore_write_s390_gs_cb (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-s390-gs-bc") == 0)
- return elfcore_write_s390_gs_bc (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-arm-vfp") == 0)
- return elfcore_write_arm_vfp (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-aarch-tls") == 0)
- return elfcore_write_aarch_tls (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-aarch-hw-break") == 0)
- return elfcore_write_aarch_hw_break (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-aarch-hw-watch") == 0)
- return elfcore_write_aarch_hw_watch (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-aarch-sve") == 0)
- return elfcore_write_aarch_sve (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-aarch-pauth") == 0)
- return elfcore_write_aarch_pauth (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-aarch-mte") == 0)
- return elfcore_write_aarch_mte (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-aarch-ssve") == 0)
- return elfcore_write_aarch_ssve (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-aarch-za") == 0)
- return elfcore_write_aarch_za (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-aarch-zt") == 0)
- return elfcore_write_aarch_zt (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-aarch-gcs") == 0)
- return elfcore_write_aarch_gcs (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-arc-v2") == 0)
- return elfcore_write_arc_v2 (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".gdb-tdesc") == 0)
- return elfcore_write_gdb_tdesc (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-riscv-csr") == 0)
- return elfcore_write_riscv_csr (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-loongarch-cpucfg") == 0)
- return elfcore_write_loongarch_cpucfg (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-loongarch-lbt") == 0)
- return elfcore_write_loongarch_lbt (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-loongarch-lsx") == 0)
- return elfcore_write_loongarch_lsx (abfd, buf, bufsiz, data, size);
- if (strcmp (section, ".reg-loongarch-lasx") == 0)
- return elfcore_write_loongarch_lasx (abfd, buf, bufsiz, data, size);
+ static const struct
+ {
+ const char * section_name;
+ char * (*writer) (bfd *, char *, int *, const void *, int);
+ }
+ note_writers [] =
+ {
+ { NOTE_PSEUDO_SECTION_AARCH_GCS, elfcore_write_aarch_gcs},
+ { NOTE_PSEUDO_SECTION_AARCH_HW_BREAK, elfcore_write_aarch_hw_break},
+ { NOTE_PSEUDO_SECTION_AARCH_HW_WATCH, elfcore_write_aarch_hw_watch},
+ { NOTE_PSEUDO_SECTION_AARCH_MTE, elfcore_write_aarch_mte},
+ { NOTE_PSEUDO_SECTION_AARCH_PAUTH, elfcore_write_aarch_pauth},
+ { NOTE_PSEUDO_SECTION_AARCH_SSVE, elfcore_write_aarch_ssve},
+ { NOTE_PSEUDO_SECTION_AARCH_SVE, elfcore_write_aarch_sve},
+ { NOTE_PSEUDO_SECTION_AARCH_TLS, elfcore_write_aarch_tls},
+ { NOTE_PSEUDO_SECTION_AARCH_ZA, elfcore_write_aarch_za},
+ { NOTE_PSEUDO_SECTION_AARCH_ZT, elfcore_write_aarch_zt},
+ { NOTE_PSEUDO_SECTION_ARC_V2, elfcore_write_arc_v2},
+ { NOTE_PSEUDO_SECTION_ARM_VFP, elfcore_write_arm_vfp},
+ { NOTE_PSEUDO_SECTION_I386_TLS, elfcore_write_i386_tls},
+ { NOTE_PSEUDO_SECTION_LOONGARCH_CPUCFG, elfcore_write_loongarch_cpucfg},
+ { NOTE_PSEUDO_SECTION_LOONGARCH_LASX, elfcore_write_loongarch_lasx},
+ { NOTE_PSEUDO_SECTION_LOONGARCH_LBT, elfcore_write_loongarch_lbt},
+ { NOTE_PSEUDO_SECTION_LOONGARCH_LSX, elfcore_write_loongarch_lsx},
+ { NOTE_PSEUDO_SECTION_PPC_DSCR, elfcore_write_ppc_dscr},
+ { NOTE_PSEUDO_SECTION_PPC_EBB, elfcore_write_ppc_ebb},
+ { NOTE_PSEUDO_SECTION_PPC_PMU, elfcore_write_ppc_pmu},
+ { NOTE_PSEUDO_SECTION_PPC_PPR, elfcore_write_ppc_ppr},
+ { NOTE_PSEUDO_SECTION_PPC_TAR, elfcore_write_ppc_tar},
+ { NOTE_PSEUDO_SECTION_PPC_TM_CDSCR, elfcore_write_ppc_tm_cdscr},
+ { NOTE_PSEUDO_SECTION_PPC_TM_CFPR, elfcore_write_ppc_tm_cfpr},
+ { NOTE_PSEUDO_SECTION_PPC_TM_CGPR, elfcore_write_ppc_tm_cgpr},
+ { NOTE_PSEUDO_SECTION_PPC_TM_CPPR, elfcore_write_ppc_tm_cppr},
+ { NOTE_PSEUDO_SECTION_PPC_TM_CTAR, elfcore_write_ppc_tm_ctar},
+ { NOTE_PSEUDO_SECTION_PPC_TM_CVMX, elfcore_write_ppc_tm_cvmx},
+ { NOTE_PSEUDO_SECTION_PPC_TM_CVSX, elfcore_write_ppc_tm_cvsx},
+ { NOTE_PSEUDO_SECTION_PPC_TM_SPR, elfcore_write_ppc_tm_spr},
+ { NOTE_PSEUDO_SECTION_PPC_VMX, elfcore_write_ppc_vmx},
+ { NOTE_PSEUDO_SECTION_PPC_VSX, elfcore_write_ppc_vsx},
+ { NOTE_PSEUDO_SECTION_REG2, elfcore_write_prfpreg},
+ { NOTE_PSEUDO_SECTION_RISCV_CSR, elfcore_write_riscv_csr},
+ { NOTE_PSEUDO_SECTION_S390_CTRS, elfcore_write_s390_ctrs},
+ { NOTE_PSEUDO_SECTION_S390_GS_BC, elfcore_write_s390_gs_bc},
+ { NOTE_PSEUDO_SECTION_S390_GS_CB, elfcore_write_s390_gs_cb},
+ { NOTE_PSEUDO_SECTION_S390_HIGH_GPRS, elfcore_write_s390_high_gprs},
+ { NOTE_PSEUDO_SECTION_S390_LAST_BREAK, elfcore_write_s390_last_break},
+ { NOTE_PSEUDO_SECTION_S390_PREFIX, elfcore_write_s390_prefix},
+ { NOTE_PSEUDO_SECTION_S390_SYSTEM_CALL, elfcore_write_s390_system_call},
+ { NOTE_PSEUDO_SECTION_S390_TDB, elfcore_write_s390_tdb},
+ { NOTE_PSEUDO_SECTION_S390_TIMER, elfcore_write_s390_timer},
+ { NOTE_PSEUDO_SECTION_S390_TODCMP, elfcore_write_s390_todcmp},
+ { NOTE_PSEUDO_SECTION_S390_TODPREG, elfcore_write_s390_todpreg},
+ { NOTE_PSEUDO_SECTION_S390_VXRS_HIGH, elfcore_write_s390_vxrs_high},
+ { NOTE_PSEUDO_SECTION_S390_VXRS_LOW, elfcore_write_s390_vxrs_low},
+ { NOTE_PSEUDO_SECTION_SSP, elfcore_write_sspreg},
+ { NOTE_PSEUDO_SECTION_TDESC, elfcore_write_gdb_tdesc},
+ { NOTE_PSEUDO_SECTION_X86_SEGBASES, elfcore_write_x86_segbases},
+ { NOTE_PSEUDO_SECTION_XFP, elfcore_write_prxfpreg},
+ { NOTE_PSEUDO_SECTION_XSTATE, elfcore_write_xstatereg} /* NB/ No comma. */
+ };
+
+ int i;
+
+ for (i = ARRAY_SIZE (note_writers); i--;)
+ if (streq (section, note_writers[i].section_name))
+ return note_writers[i].writer (abfd, buf, bufsiz, data, size);
+
return NULL;
}
@@ -13295,7 +13052,7 @@ elfcore_write_file_note (bfd *obfd, char *note_data, int *note_size,
const void *buf, int bufsiz)
{
return elfcore_write_note (obfd, note_data, note_size,
- "CORE", NT_FILE, buf, bufsiz);
+ NOTE_NAME_CORE, NT_FILE, buf, bufsiz);
}
static bool
@@ -13345,7 +13102,7 @@ elf_parse_notes (bfd *abfd, char *buf, size_t size, file_ptr offset,
case bfd_core:
{
#define GROKER_ELEMENT(S,F) {S, sizeof (S) - 1, F}
- struct
+ static const struct
{
const char * string;
size_t len;
@@ -13354,13 +13111,13 @@ elf_parse_notes (bfd *abfd, char *buf, size_t size, file_ptr offset,
grokers[] =
{
GROKER_ELEMENT ("", elfcore_grok_note),
- GROKER_ELEMENT ("FreeBSD", elfcore_grok_freebsd_note),
+ GROKER_ELEMENT (NOTE_NAME_FREEBSD, elfcore_grok_freebsd_note),
GROKER_ELEMENT ("NetBSD-CORE", elfcore_grok_netbsd_note),
GROKER_ELEMENT ("OpenBSD", elfcore_grok_openbsd_note),
GROKER_ELEMENT ("QNX", elfcore_grok_nto_note),
GROKER_ELEMENT ("SPU/", elfcore_grok_spu_note),
GROKER_ELEMENT ("GNU", elfobj_grok_gnu_note),
- GROKER_ELEMENT ("CORE", elfcore_grok_solaris_note)
+ GROKER_ELEMENT (NOTE_NAME_CORE, elfcore_grok_solaris_note)
};
#undef GROKER_ELEMENT
int i;
diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c
index a78516d..ebfe4dc 100644
--- a/bfd/elf32-arc.c
+++ b/bfd/elf32-arc.c
@@ -2743,7 +2743,7 @@ elf_arc_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_section_by_name (dynobj, ".interp");
+ s = htab->interp;
BFD_ASSERT (s != NULL);
s->size = sizeof (ELF_DYNAMIC_INTERPRETER);
s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index b5d1866..ae3dc24 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -12542,7 +12542,7 @@ elf32_arm_final_link_relocate (reloc_howto_type * howto,
case R_ARM_THM_ALU_ABS_G2_NC:
case R_ARM_THM_ALU_ABS_G3_NC:
{
- const int shift_array[4] = {0, 8, 16, 24};
+ static const int shift_array[4] = {0, 8, 16, 24};
bfd_vma insn = bfd_get_16 (input_bfd, hit_data);
bfd_vma addr = value;
int shift = shift_array[r_type - R_ARM_THM_ALU_ABS_G0_NC];
@@ -14061,11 +14061,12 @@ set_secondary_compatible_arch (bfd *abfd, int arch)
static int
tag_cpu_arch_combine (bfd *ibfd, int oldtag, int *secondary_compat_out,
- int newtag, int secondary_compat, const char* name_table[])
+ int newtag, int secondary_compat,
+ const char *const name_table[])
{
#define T(X) TAG_CPU_ARCH_##X
int tagl, tagh, result;
- const int v6t2[] =
+ static const int v6t2[] =
{
T(V6T2), /* PRE_V4. */
T(V6T2), /* V4. */
@@ -14077,7 +14078,7 @@ tag_cpu_arch_combine (bfd *ibfd, int oldtag, int *secondary_compat_out,
T(V7), /* V6KZ. */
T(V6T2) /* V6T2. */
};
- const int v6k[] =
+ static const int v6k[] =
{
T(V6K), /* PRE_V4. */
T(V6K), /* V4. */
@@ -14090,7 +14091,7 @@ tag_cpu_arch_combine (bfd *ibfd, int oldtag, int *secondary_compat_out,
T(V7), /* V6T2. */
T(V6K) /* V6K. */
};
- const int v7[] =
+ static const int v7[] =
{
T(V7), /* PRE_V4. */
T(V7), /* V4. */
@@ -14104,7 +14105,7 @@ tag_cpu_arch_combine (bfd *ibfd, int oldtag, int *secondary_compat_out,
T(V7), /* V6K. */
T(V7) /* V7. */
};
- const int v6_m[] =
+ static const int v6_m[] =
{
-1, /* PRE_V4. */
-1, /* V4. */
@@ -14119,7 +14120,7 @@ tag_cpu_arch_combine (bfd *ibfd, int oldtag, int *secondary_compat_out,
T(V7), /* V7. */
T(V6_M) /* V6_M. */
};
- const int v6s_m[] =
+ static const int v6s_m[] =
{
-1, /* PRE_V4. */
-1, /* V4. */
@@ -14135,7 +14136,7 @@ tag_cpu_arch_combine (bfd *ibfd, int oldtag, int *secondary_compat_out,
T(V6S_M), /* V6_M. */
T(V6S_M) /* V6S_M. */
};
- const int v7e_m[] =
+ static const int v7e_m[] =
{
-1, /* PRE_V4. */
-1, /* V4. */
@@ -14152,7 +14153,7 @@ tag_cpu_arch_combine (bfd *ibfd, int oldtag, int *secondary_compat_out,
T(V7E_M), /* V6S_M. */
T(V7E_M) /* V7E_M. */
};
- const int v8[] =
+ static const int v8[] =
{
T(V8), /* PRE_V4. */
T(V8), /* V4. */
@@ -14177,7 +14178,7 @@ tag_cpu_arch_combine (bfd *ibfd, int oldtag, int *secondary_compat_out,
T(V8), /* V8.3. */
T(V8), /* V8.1-M.MAIN. */
};
- const int v8r[] =
+ static const int v8r[] =
{
T(V8R), /* PRE_V4. */
T(V8R), /* V4. */
@@ -14196,7 +14197,7 @@ tag_cpu_arch_combine (bfd *ibfd, int oldtag, int *secondary_compat_out,
T(V8), /* V8. */
T(V8R), /* V8R. */
};
- const int v8m_baseline[] =
+ static const int v8m_baseline[] =
{
-1, /* PRE_V4. */
-1, /* V4. */
@@ -14216,7 +14217,7 @@ tag_cpu_arch_combine (bfd *ibfd, int oldtag, int *secondary_compat_out,
-1, /* V8R. */
T(V8M_BASE) /* V8-M BASELINE. */
};
- const int v8m_mainline[] =
+ static const int v8m_mainline[] =
{
-1, /* PRE_V4. */
-1, /* V4. */
@@ -14237,7 +14238,7 @@ tag_cpu_arch_combine (bfd *ibfd, int oldtag, int *secondary_compat_out,
T(V8M_MAIN), /* V8-M BASELINE. */
T(V8M_MAIN) /* V8-M MAINLINE. */
};
- const int v8_1m_mainline[] =
+ static const int v8_1m_mainline[] =
{
-1, /* PRE_V4. */
-1, /* V4. */
@@ -14262,7 +14263,7 @@ tag_cpu_arch_combine (bfd *ibfd, int oldtag, int *secondary_compat_out,
-1, /* Unused (20). */
T(V8_1M_MAIN) /* V8.1-M MAINLINE. */
};
- const int v9[] =
+ static const int v9[] =
{
T(V9), /* PRE_V4. */
T(V9), /* V4. */
@@ -14288,7 +14289,7 @@ tag_cpu_arch_combine (bfd *ibfd, int oldtag, int *secondary_compat_out,
T(V9), /* V8.1-M.MAIN. */
T(V9), /* V9. */
};
- const int v4t_plus_v6_m[] =
+ static const int v4t_plus_v6_m[] =
{
-1, /* PRE_V4. */
-1, /* V4. */
@@ -14315,7 +14316,7 @@ tag_cpu_arch_combine (bfd *ibfd, int oldtag, int *secondary_compat_out,
T(V9), /* V9. */
T(V4T_PLUS_V6_M) /* V4T plus V6_M. */
};
- const int *comb[] =
+ static const int *const comb[] =
{
v6t2,
v6k,
@@ -14539,7 +14540,7 @@ elf32_arm_merge_eabi_attributes (bfd *ibfd, struct bfd_link_info *info)
int secondary_compat = -1, secondary_compat_out = -1;
unsigned int saved_out_attr = out_attr[i].i;
int arch_attr;
- static const char *name_table[] =
+ static const char *const name_table[] =
{
/* These aren't real CPU names, but we can't guess
that from the architecture version alone. */
@@ -16692,7 +16693,7 @@ elf32_arm_late_size_sections (bfd * output_bfd ATTRIBUTE_UNUSED,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = elf_hash_table (info)->interp;
BFD_ASSERT (s != NULL);
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-bfin.c b/bfd/elf32-bfin.c
index 249c6b5..7ed1285 100644
--- a/bfd/elf32-bfin.c
+++ b/bfd/elf32-bfin.c
@@ -4050,7 +4050,7 @@ elf32_bfinfdpic_late_size_sections (bfd *output_bfd,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = htab->interp;
BFD_ASSERT (s != NULL);
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
s->contents = (bfd_byte *) ELF_DYNAMIC_INTERPRETER;
@@ -5142,7 +5142,7 @@ bfin_late_size_sections (bfd * output_bfd ATTRIBUTE_UNUSED,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = elf_hash_table (info)->interp;
BFD_ASSERT (s != NULL);
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-cr16.c b/bfd/elf32-cr16.c
index fc2e2d4..31d1ba4 100644
--- a/bfd/elf32-cr16.c
+++ b/bfd/elf32-cr16.c
@@ -2408,7 +2408,7 @@ _bfd_cr16_elf_late_size_sections (bfd * output_bfd,
if (bfd_link_executable (info) && !info->nointerp)
{
#if 0
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = elf_hash_table (info)->interp;
BFD_ASSERT (s != NULL);
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c
index 285c6c7..faaebb9 100644
--- a/bfd/elf32-cris.c
+++ b/bfd/elf32-cris.c
@@ -3527,7 +3527,7 @@ elf_cris_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = htab->root.interp;
BFD_ASSERT (s != NULL);
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-csky.c b/bfd/elf32-csky.c
index 2a08659..40781a0 100644
--- a/bfd/elf32-csky.c
+++ b/bfd/elf32-csky.c
@@ -1912,7 +1912,7 @@ csky_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Set the contents of the .interp section to the interpreter. */
if (!bfd_link_pic (info) && !info->nointerp)
{
- s = bfd_get_section_by_name (dynobj, ".interp");
+ s = htab->elf.interp;
BFD_ASSERT (s != NULL);
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-frv.c b/bfd/elf32-frv.c
index 0423540..b718313 100644
--- a/bfd/elf32-frv.c
+++ b/bfd/elf32-frv.c
@@ -5444,7 +5444,7 @@ elf32_frvfdpic_late_size_sections (bfd *output_bfd,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = elf_hash_table (info)->interp;
BFD_ASSERT (s != NULL);
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
s->contents = (bfd_byte *) ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c
index 80b89fa..2f463e1 100644
--- a/bfd/elf32-hppa.c
+++ b/bfd/elf32-hppa.c
@@ -2063,7 +2063,7 @@ elf32_hppa_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- sec = bfd_get_linker_section (dynobj, ".interp");
+ sec = htab->etab.interp;
if (sec == NULL)
abort ();
sec->size = sizeof ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index abe26e4..e375e18 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -1687,6 +1687,10 @@ elf_i386_scan_relocs (bfd *abfd,
size_reloc = true;
goto do_size;
+ case R_386_TLS_DESC_CALL:
+ htab->has_tls_desc_call = 1;
+ goto need_got;
+
case R_386_TLS_IE_32:
case R_386_TLS_IE:
case R_386_TLS_GOTIE:
@@ -1698,7 +1702,7 @@ elf_i386_scan_relocs (bfd *abfd,
case R_386_GOT32X:
case R_386_TLS_GD:
case R_386_TLS_GOTDESC:
- case R_386_TLS_DESC_CALL:
+ need_got:
/* This symbol requires a global offset table entry. */
{
int tls_type, old_tls_type;
@@ -3159,7 +3163,6 @@ elf_i386_relocate_section (bfd *output_bfd,
if (GOT_TLS_GDESC_P (tls_type))
{
- bfd_byte *loc;
outrel.r_info = ELF32_R_INFO (indx, R_386_TLS_DESC);
BFD_ASSERT (htab->sgotplt_jump_table_size + offplt + 8
<= htab->elf.sgotplt->size);
@@ -3167,13 +3170,8 @@ elf_i386_relocate_section (bfd *output_bfd,
+ htab->elf.sgotplt->output_offset
+ offplt
+ htab->sgotplt_jump_table_size);
- sreloc = htab->elf.srelplt;
- loc = sreloc->contents;
- loc += (htab->next_tls_desc_index++
- * sizeof (Elf32_External_Rel));
- BFD_ASSERT (loc + sizeof (Elf32_External_Rel)
- <= sreloc->contents + sreloc->size);
- bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc);
+ sreloc = htab->rel_tls_desc;
+ elf_append_rel (output_bfd, sreloc, &outrel);
if (indx == 0)
{
BFD_ASSERT (! unresolved_reloc);
@@ -4356,7 +4354,7 @@ elf_i386_get_synthetic_symtab (bfd *abfd,
if (lazy_ibt_plt != NULL
&& (memcmp (plt_contents + lazy_ibt_plt->plt0_entry_size,
lazy_ibt_plt->plt_entry,
- lazy_ibt_plt->plt_got_offset) == 0))
+ lazy_ibt_plt->plt_reloc_offset) == 0))
plt_type = plt_lazy | plt_second;
else
plt_type = plt_lazy;
@@ -4369,7 +4367,7 @@ elf_i386_get_synthetic_symtab (bfd *abfd,
if (lazy_ibt_plt != NULL
&& (memcmp (plt_contents + lazy_ibt_plt->plt0_entry_size,
lazy_ibt_plt->pic_plt_entry,
- lazy_ibt_plt->plt_got_offset) == 0))
+ lazy_ibt_plt->plt_reloc_offset) == 0))
plt_type = plt_lazy | plt_pic | plt_second;
else
plt_type = plt_lazy | plt_pic;
@@ -4492,6 +4490,50 @@ elf_i386_link_setup_gnu_properties (struct bfd_link_info *info)
return _bfd_x86_elf_link_setup_gnu_properties (info, &init_table);
}
+static void
+elf_i386_add_glibc_version_dependency
+ (struct elf_find_verdep_info *rinfo)
+{
+ int i = 0;
+ const char *version[4] = { NULL, NULL, NULL, NULL };
+ bool auto_version[4] = { false, false, false, false };
+ struct elf_x86_link_hash_table *htab;
+
+ if (rinfo->info->enable_dt_relr)
+ {
+ version[i] = "GLIBC_ABI_DT_RELR";
+ i++;
+ }
+
+ htab = elf_x86_hash_table (rinfo->info, I386_ELF_DATA);
+ if (htab != NULL)
+ {
+ if (htab->params->gnu2_tls_version_tag && htab->has_tls_desc_call)
+ {
+ version[i] = "GLIBC_ABI_GNU2_TLS";
+ /* 2 == auto, enable if libc.so defines the GLIBC_ABI_GNU2_TLS
+ version. */
+ if (htab->params->gnu2_tls_version_tag == 2)
+ auto_version[i] = true;
+ i++;
+ }
+ if (htab->params->gnu_tls_version_tag
+ && htab->has_tls_get_addr_call)
+ {
+ version[i] = "GLIBC_ABI_GNU_TLS";
+ /* 2 == auto, enable if libc.so defines the GLIBC_ABI_GNU_TLS
+ version. */
+ if (htab->params->gnu_tls_version_tag == 2)
+ auto_version[i] = true;
+ i++;
+ }
+ }
+
+ if (i != 0)
+ _bfd_elf_link_add_glibc_version_dependency (rinfo, version,
+ auto_version);
+}
+
#define TARGET_LITTLE_SYM i386_elf32_vec
#define TARGET_LITTLE_NAME "elf32-i386"
#define ELF_ARCH bfd_arch_i386
@@ -4532,6 +4574,8 @@ elf_i386_link_setup_gnu_properties (struct bfd_link_info *info)
#define elf_backend_relocate_section elf_i386_relocate_section
#define elf_backend_setup_gnu_properties elf_i386_link_setup_gnu_properties
#define elf_backend_hide_symbol _bfd_x86_elf_hide_symbol
+#define elf_backend_add_glibc_version_dependency \
+ elf_i386_add_glibc_version_dependency
#define elf_backend_linux_prpsinfo32_ugid16 true
@@ -4539,6 +4583,8 @@ elf_i386_link_setup_gnu_properties (struct bfd_link_info *info)
#include "elf32-target.h"
+#undef elf_backend_add_glibc_version_dependency
+
/* FreeBSD support. */
#undef TARGET_LITTLE_SYM
@@ -4586,6 +4632,9 @@ elf_i386_fbsd_init_file_header (bfd *abfd, struct bfd_link_info *info)
#undef TARGET_LITTLE_NAME
#define TARGET_LITTLE_NAME "elf32-i386-sol2"
+#undef ELF_MAXPAGESIZE
+#define ELF_MAXPAGESIZE 0x10000
+
#undef ELF_TARGET_OS
#define ELF_TARGET_OS is_solaris
@@ -4713,6 +4762,9 @@ elf32_iamcu_elf_object_p (bfd *abfd)
#undef ELF_MACHINE_CODE
#define ELF_MACHINE_CODE EM_IAMCU
+#undef ELF_MAXPAGESIZE
+#define ELF_MAXPAGESIZE 0x1000
+
#undef ELF_TARGET_OS
#undef ELF_OSABI
diff --git a/bfd/elf32-lm32.c b/bfd/elf32-lm32.c
index b36e92d..0ead0df 100644
--- a/bfd/elf32-lm32.c
+++ b/bfd/elf32-lm32.c
@@ -1926,7 +1926,7 @@ lm32_elf_late_size_sections (bfd *output_bfd,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = htab->root.interp;
BFD_ASSERT (s != NULL);
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-m32r.c b/bfd/elf32-m32r.c
index 49cc5fc..c511330 100644
--- a/bfd/elf32-m32r.c
+++ b/bfd/elf32-m32r.c
@@ -1983,7 +1983,7 @@ m32r_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = htab->interp;
BFD_ASSERT (s != NULL);
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-m68k.c b/bfd/elf32-m68k.c
index 84ad64a..44ef102 100644
--- a/bfd/elf32-m68k.c
+++ b/bfd/elf32-m68k.c
@@ -3122,7 +3122,7 @@ elf_m68k_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = elf_hash_table (info)->interp;
BFD_ASSERT (s != NULL);
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-metag.c b/bfd/elf32-metag.c
index 0e6cfd8..916f3e1 100644
--- a/bfd/elf32-metag.c
+++ b/bfd/elf32-metag.c
@@ -2698,7 +2698,7 @@ elf_metag_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = htab->etab.interp;
if (s == NULL)
abort ();
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-nds32.c b/bfd/elf32-nds32.c
index bcd7c42..e22b58c 100644
--- a/bfd/elf32-nds32.c
+++ b/bfd/elf32-nds32.c
@@ -4326,7 +4326,7 @@ nds32_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_section_by_name (dynobj, ".interp");
+ s = elf_hash_table (info)->interp;
BFD_ASSERT (s != NULL);
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c
index b17a872..159308f 100644
--- a/bfd/elf32-or1k.c
+++ b/bfd/elf32-or1k.c
@@ -3066,7 +3066,7 @@ or1k_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_section_by_name (dynobj, ".interp");
+ s = htab->root.interp;
BFD_ASSERT (s != NULL);
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c
index 1ed995b..a3adcf8 100644
--- a/bfd/elf32-ppc.c
+++ b/bfd/elf32-ppc.c
@@ -5485,7 +5485,7 @@ ppc_elf_late_size_sections (bfd *output_bfd,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (htab->elf.dynobj, ".interp");
+ s = elf_hash_table (info)->interp;
BFD_ASSERT (s != NULL);
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-s390.c b/bfd/elf32-s390.c
index 40fcb53..56c613d 100644
--- a/bfd/elf32-s390.c
+++ b/bfd/elf32-s390.c
@@ -1793,7 +1793,7 @@ elf_s390_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = htab->elf.interp;
if (s == NULL)
abort ();
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-score.c b/bfd/elf32-score.c
index 57bf04d..d91f2de 100644
--- a/bfd/elf32-score.c
+++ b/bfd/elf32-score.c
@@ -3243,7 +3243,7 @@ s3_bfd_score_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = elf_hash_table (info)->interp;
BFD_ASSERT (s != NULL);
s->size = strlen (ELF_DYNAMIC_INTERPRETER) + 1;
s->contents = (bfd_byte *) ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-score7.c b/bfd/elf32-score7.c
index cbbff13..44718f3 100644
--- a/bfd/elf32-score7.c
+++ b/bfd/elf32-score7.c
@@ -3053,7 +3053,7 @@ s7_bfd_score_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = elf_hash_table (info)->interp;
BFD_ASSERT (s != NULL);
s->size = strlen (ELF_DYNAMIC_INTERPRETER) + 1;
s->contents = (bfd_byte *) ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-sh.c b/bfd/elf32-sh.c
index d3f3a56..e078e41 100644
--- a/bfd/elf32-sh.c
+++ b/bfd/elf32-sh.c
@@ -2962,7 +2962,7 @@ sh_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = htab->root.interp;
BFD_ASSERT (s != NULL);
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
index cc204c2..a31c381 100644
--- a/bfd/elf32-tic6x.c
+++ b/bfd/elf32-tic6x.c
@@ -3171,7 +3171,7 @@ elf32_tic6x_late_size_sections (bfd *output_bfd, struct bfd_link_info *info)
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = htab->elf.interp;
if (s == NULL)
abort ();
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-tilepro.c b/bfd/elf32-tilepro.c
index 3e3a068..12ff2a9 100644
--- a/bfd/elf32-tilepro.c
+++ b/bfd/elf32-tilepro.c
@@ -2199,7 +2199,7 @@ tilepro_elf_late_size_sections (bfd *output_bfd,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = elf_hash_table (info)->interp;
BFD_ASSERT (s != NULL);
s->size = sizeof ELF32_DYNAMIC_INTERPRETER;
s->contents = (unsigned char *) ELF32_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-vax.c b/bfd/elf32-vax.c
index 4cb69ad..a5ced1f 100644
--- a/bfd/elf32-vax.c
+++ b/bfd/elf32-vax.c
@@ -1037,7 +1037,7 @@ elf_vax_late_size_sections (bfd *output_bfd, struct bfd_link_info *info)
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = elf_hash_table (info)->interp;
BFD_ASSERT (s != NULL);
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c
index 6f8a4fa7..b21676d 100644
--- a/bfd/elf32-xtensa.c
+++ b/bfd/elf32-xtensa.c
@@ -1588,7 +1588,7 @@ elf_xtensa_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = elf_hash_table (info)->interp;
if (s == NULL)
abort ();
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf64-alpha.c b/bfd/elf64-alpha.c
index 55aebca..b13c99e 100644
--- a/bfd/elf64-alpha.c
+++ b/bfd/elf64-alpha.c
@@ -2809,7 +2809,7 @@ elf64_alpha_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = elf_hash_table (info)->interp;
BFD_ASSERT (s != NULL);
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf64-hppa.c b/bfd/elf64-hppa.c
index 7b80603..57de68c 100644
--- a/bfd/elf64-hppa.c
+++ b/bfd/elf64-hppa.c
@@ -1555,7 +1555,7 @@ elf64_hppa_late_size_sections (bfd *output_bfd, struct bfd_link_info *info)
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- sec = bfd_get_linker_section (dynobj, ".interp");
+ sec = hppa_info->root.interp;
BFD_ASSERT (sec != NULL);
sec->size = sizeof ELF_DYNAMIC_INTERPRETER;
sec->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 7868063..fdda9e0 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -10250,7 +10250,7 @@ ppc64_elf_late_size_sections (bfd *output_bfd,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = htab->elf.interp;
if (s == NULL)
abort ();
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
@@ -12226,9 +12226,9 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
struct elf_link_hash_entry *h;
size_t len1, len2;
char *name;
- const char *const stub_str[] = { "long_branch",
- "plt_branch",
- "plt_call" };
+ static const char stub_str[][16] = { "long_branch",
+ "plt_branch",
+ "plt_call" };
len1 = strlen (stub_str[stub_entry->type.main - 1]);
len2 = strlen (stub_entry->root.string);
diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c
index 6ae62a9..555395c 100644
--- a/bfd/elf64-s390.c
+++ b/bfd/elf64-s390.c
@@ -1946,7 +1946,7 @@ elf_s390_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = htab->elf.interp;
if (s == NULL)
abort ();
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index b6f97b5..236cff9 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -1717,7 +1717,9 @@ elf_x86_64_need_pic (struct bfd_link_info *info,
{
object = _("a shared object");
if (!pic)
- pic = _("; recompile with -fPIC");
+ pic = (howto->type == R_X86_64_TPOFF32
+ ? _("; local-exec is incompatible with -shared")
+ : _("; recompile with -fPIC"));
}
else
{
@@ -2684,7 +2686,7 @@ elf_x86_64_scan_relocs (bfd *abfd, struct bfd_link_info *info,
goto create_got;
case R_X86_64_TPOFF32:
- if (!bfd_link_executable (info) && ABI_64_P (abfd))
+ if (!bfd_link_executable (info))
{
elf_x86_64_need_pic (info, abfd, sec, h, symtab_hdr, isym,
&x86_64_elf_howto_table[r_type]);
@@ -2694,6 +2696,10 @@ elf_x86_64_scan_relocs (bfd *abfd, struct bfd_link_info *info,
eh->zero_undefweak &= 0x2;
break;
+ case R_X86_64_TLSDESC_CALL:
+ htab->has_tls_desc_call = 1;
+ goto need_got;
+
case R_X86_64_GOTTPOFF:
case R_X86_64_CODE_4_GOTTPOFF:
case R_X86_64_CODE_5_GOTTPOFF:
@@ -2715,7 +2721,7 @@ elf_x86_64_scan_relocs (bfd *abfd, struct bfd_link_info *info,
case R_X86_64_GOTPLT64:
case R_X86_64_GOTPC32_TLSDESC:
case R_X86_64_CODE_4_GOTPC32_TLSDESC:
- case R_X86_64_TLSDESC_CALL:
+need_got:
/* This symbol requires a global offset table entry. */
{
int tls_type, old_tls_type;
@@ -4623,7 +4629,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
+ htab->elf.sgotplt->output_offset
+ offplt
+ htab->sgotplt_jump_table_size);
- sreloc = htab->elf.srelplt;
+ sreloc = htab->rel_tls_desc;
if (indx == 0)
outrel.r_addend = relocation - _bfd_x86_elf_dtpoff_base (info);
else
@@ -5848,7 +5854,7 @@ elf_x86_64_get_synthetic_symtab (bfd *abfd,
{
if (memcmp (plt_contents + lazy_ibt_plt->plt_entry_size,
lazy_ibt_plt->plt_entry,
- lazy_ibt_plt->plt_got_offset) == 0)
+ lazy_ibt_plt->plt_reloc_offset) == 0)
{
/* The fist entry in the lazy IBT PLT is the same as
the lazy PLT. */
@@ -5870,7 +5876,7 @@ elf_x86_64_get_synthetic_symtab (bfd *abfd,
if (memcmp (plt_contents
+ lazy_bnd_ibt_plt->plt_entry_size,
lazy_bnd_ibt_plt->plt_entry,
- lazy_bnd_ibt_plt->plt_got_offset) == 0)
+ lazy_bnd_ibt_plt->plt_reloc_offset) == 0)
lazy_plt = lazy_bnd_ibt_plt;
else
lazy_plt = lazy_bnd_plt;
@@ -6242,8 +6248,9 @@ static void
elf_x86_64_add_glibc_version_dependency
(struct elf_find_verdep_info *rinfo)
{
- unsigned int i = 0;
- const char *version[3] = { NULL, NULL, NULL };
+ int i = 0, mark_plt = -1;
+ const char *version[4] = { NULL, NULL, NULL, NULL };
+ bool auto_version[4] = { false, false, false, false };
struct elf_x86_link_hash_table *htab;
if (rinfo->info->enable_dt_relr)
@@ -6253,14 +6260,41 @@ elf_x86_64_add_glibc_version_dependency
}
htab = elf_x86_hash_table (rinfo->info, X86_64_ELF_DATA);
- if (htab != NULL && htab->params->mark_plt)
+ if (htab != NULL)
{
- version[i] = "GLIBC_2.36";
- i++;
+ if (htab->params->gnu2_tls_version_tag && htab->has_tls_desc_call)
+ {
+ version[i] = "GLIBC_ABI_GNU2_TLS";
+ /* 2 == auto, enable if libc.so defines the GLIBC_ABI_GNU2_TLS
+ version. */
+ if (htab->params->gnu2_tls_version_tag == 2)
+ auto_version[i] = true;
+ i++;
+ }
+ if (htab->params->mark_plt)
+ {
+ mark_plt = i;
+ auto_version[i] = true;
+ version[i] = "GLIBC_ABI_DT_X86_64_PLT";
+ i++;
+ }
}
- if (i != 0)
- _bfd_elf_link_add_glibc_version_dependency (rinfo, version);
+ if (i == 0
+ || !_bfd_elf_link_add_glibc_version_dependency (rinfo, version,
+ auto_version))
+ return;
+
+ if (mark_plt < 0 || auto_version[mark_plt])
+ return;
+
+ /* Add the GLIBC_2.36 version dependency if libc.so doesn't have
+ GLIBC_ABI_DT_X86_64_PLT. */
+ version[0] = "GLIBC_2.36";
+ auto_version[0] = false;
+ version[1] = NULL;
+ _bfd_elf_link_add_glibc_version_dependency (rinfo, version,
+ auto_version);
}
static const struct bfd_elf_special_section
@@ -6281,7 +6315,7 @@ elf_x86_64_special_sections[]=
#define ELF_TARGET_ID X86_64_ELF_DATA
#define ELF_MACHINE_CODE EM_X86_64
#define ELF_MAXPAGESIZE 0x1000
-#define ELF_COMMONPAGESIZE 0x1000
+#define ELF_COMMONPAGESIZE ELF_MAXPAGESIZE
#define elf_backend_can_gc_sections 1
#define elf_backend_can_refcount 1
@@ -6355,20 +6389,7 @@ elf_x86_64_special_sections[]=
#include "elf64-target.h"
-/* CloudABI support. */
-
-#undef TARGET_LITTLE_SYM
-#define TARGET_LITTLE_SYM x86_64_elf64_cloudabi_vec
-#undef TARGET_LITTLE_NAME
-#define TARGET_LITTLE_NAME "elf64-x86-64-cloudabi"
-
-#undef ELF_OSABI
-#define ELF_OSABI ELFOSABI_CLOUDABI
-
-#undef elf64_bed
-#define elf64_bed elf64_x86_64_cloudabi_bed
-
-#include "elf64-target.h"
+#undef elf_backend_add_glibc_version_dependency
/* FreeBSD support. */
@@ -6392,7 +6413,10 @@ elf_x86_64_special_sections[]=
#undef TARGET_LITTLE_NAME
#define TARGET_LITTLE_NAME "elf64-x86-64-sol2"
-#undef ELF_TARGET_OS
+#undef ELF_MAXPAGESIZE
+#define ELF_MAXPAGESIZE 0x100000
+
+#undef ELF_TARGET_OS
#define ELF_TARGET_OS is_solaris
/* Restore default: we cannot use ELFOSABI_SOLARIS, otherwise ELFOSABI_NONE
@@ -6453,8 +6477,8 @@ elf64_x86_64_copy_solaris_special_section_fields (const bfd *ibfd ATTRIBUTE_UNUS
#undef ELF_ARCH
#define ELF_ARCH bfd_arch_i386
-#undef ELF_MACHINE_CODE
-#define ELF_MACHINE_CODE EM_X86_64
+#undef ELF_MAXPAGESIZE
+#define ELF_MAXPAGESIZE 0x1000
#undef ELF_TARGET_OS
#undef ELF_OSABI
@@ -6476,6 +6500,10 @@ elf64_x86_64_copy_solaris_special_section_fields (const bfd *ibfd ATTRIBUTE_UNUS
#define elf_backend_bfd_from_remote_memory \
_bfd_elf32_bfd_from_remote_memory
+#undef elf_backend_add_glibc_version_dependency
+#define elf_backend_add_glibc_version_dependency \
+ elf_x86_64_add_glibc_version_dependency
+
#undef elf_backend_size_info
#define elf_backend_size_info \
_bfd_elf32_size_info
diff --git a/bfd/elfcode.h b/bfd/elfcode.h
index 9c65852..5224a1a 100644
--- a/bfd/elfcode.h
+++ b/bfd/elfcode.h
@@ -311,7 +311,7 @@ elf_swap_ehdr_out (bfd *abfd,
/* Translate an ELF section header table entry in external format into an
ELF section header table entry in internal format. */
-static void
+static bool
elf_swap_shdr_in (bfd *abfd,
const Elf_External_Shdr *src,
Elf_Internal_Shdr *dst)
@@ -341,6 +341,9 @@ elf_swap_shdr_in (bfd *abfd,
{
_bfd_error_handler (_("warning: %pB has a section "
"extending past end of file"), abfd);
+ /* PR ld/33457: Don't match corrupt section header. */
+ if (abfd->is_linker_input)
+ return false;
abfd->read_only = 1;
}
}
@@ -350,6 +353,7 @@ elf_swap_shdr_in (bfd *abfd,
dst->sh_entsize = H_GET_WORD (abfd, src->sh_entsize);
dst->bfd_section = NULL;
dst->contents = NULL;
+ return true;
}
/* Translate an ELF section header table entry in internal format into an
@@ -642,9 +646,9 @@ elf_object_p (bfd *abfd)
/* Read the first section header at index 0, and convert to internal
form. */
- if (bfd_read (&x_shdr, sizeof x_shdr, abfd) != sizeof (x_shdr))
+ if (bfd_read (&x_shdr, sizeof x_shdr, abfd) != sizeof (x_shdr)
+ || !elf_swap_shdr_in (abfd, &x_shdr, &i_shdr))
goto got_no_match;
- elf_swap_shdr_in (abfd, &x_shdr, &i_shdr);
/* If the section count is zero, the actual count is in the first
section header. */
@@ -730,9 +734,9 @@ elf_object_p (bfd *abfd)
to internal form. */
for (shindex = 1; shindex < i_ehdrp->e_shnum; shindex++)
{
- if (bfd_read (&x_shdr, sizeof x_shdr, abfd) != sizeof (x_shdr))
+ if (bfd_read (&x_shdr, sizeof x_shdr, abfd) != sizeof (x_shdr)
+ || !elf_swap_shdr_in (abfd, &x_shdr, i_shdrp + shindex))
goto got_no_match;
- elf_swap_shdr_in (abfd, &x_shdr, i_shdrp + shindex);
/* Sanity check sh_link and sh_info. */
if (i_shdrp[shindex].sh_link >= num_sec)
diff --git a/bfd/elflink.c b/bfd/elflink.c
index cdd58b2..5c8b822 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -27,9 +27,7 @@
#include "safe-ctype.h"
#include "libiberty.h"
#include "objalloc.h"
-#if BFD_SUPPORTS_PLUGINS
#include "plugin.h"
-#endif
#include <limits.h>
#ifndef CHAR_BIT
@@ -356,6 +354,7 @@ _bfd_elf_link_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
flags | SEC_READONLY);
if (s == NULL)
return false;
+ elf_hash_table (info)->interp = s;
}
/* Create sections to hold version informations. These are removed
@@ -2283,68 +2282,85 @@ _bfd_elf_export_symbol (struct elf_link_hash_entry *h, void *data)
return true;
}
-/* Return the glibc version reference if VERSION_DEP is added to the
- list of glibc version dependencies successfully. VERSION_DEP will
- be put into the .gnu.version_r section. GLIBC_MINOR_BASE is the
- pointer to the glibc minor base version. */
+/* Return true if linked against glibc. Otherwise return false. If
+ linked against glibc, add VERSION_DEP to the list of glibc version
+ dependencies and set *AUTO_VERSION to true. If *AUTO_VERSION is
+ true, add VERSION_DEP to the version dependency list only if libc.so
+ defines VERSION_DEP. GLIBC_MINOR_BASE is the pointer to the glibc
+ minor base version. */
-static Elf_Internal_Verneed *
+static bool
elf_link_add_glibc_verneed (struct elf_find_verdep_info *rinfo,
- Elf_Internal_Verneed *glibc_verref,
const char *version_dep,
- int *glibc_minor_base)
+ int *glibc_minor_base,
+ bool *auto_version)
{
Elf_Internal_Verneed *t;
Elf_Internal_Vernaux *a;
size_t amt;
int minor_version = -1;
+ bool added = false;
+ bool glibc = false;
- if (glibc_verref != NULL)
+ for (t = elf_tdata (rinfo->info->output_bfd)->verref;
+ t != NULL;
+ t = t->vn_nextref)
{
- t = glibc_verref;
+ const char *soname = bfd_elf_get_dt_soname (t->vn_bfd);
+ if (soname != NULL && startswith (soname, "libc.so."))
+ break;
+ }
- for (a = t->vn_auxptr; a != NULL; a = a->vna_nextptr)
+ /* Skip the shared library if it isn't libc.so. */
+ if (t == NULL)
+ goto update_auto_version_and_return;
+
+ for (a = t->vn_auxptr; a != NULL; a = a->vna_nextptr)
+ {
+ /* Return if VERSION_DEP dependency has been added. */
+ if (a->vna_nodename == version_dep
+ || strcmp (a->vna_nodename, version_dep) == 0)
{
- /* Return if VERSION_DEP dependency has been added. */
- if (a->vna_nodename == version_dep
- || strcmp (a->vna_nodename, version_dep) == 0)
- return t;
+ glibc = true;
+ goto update_auto_version_and_return;
}
- }
- else
- {
- for (t = elf_tdata (rinfo->info->output_bfd)->verref;
- t != NULL;
- t = t->vn_nextref)
+
+ /* Check if libc.so provides GLIBC_2.XX version. */
+ if (startswith (a->vna_nodename, "GLIBC_2."))
{
- const char *soname = bfd_elf_get_dt_soname (t->vn_bfd);
- if (soname != NULL && startswith (soname, "libc.so."))
- break;
+ minor_version = strtol (a->vna_nodename + 8, NULL, 10);
+ if (minor_version < *glibc_minor_base)
+ *glibc_minor_base = minor_version;
}
+ }
- /* Skip the shared library if it isn't libc.so. */
- if (t == NULL)
- return t;
+ /* Skip if it isn't linked against glibc. */
+ if (minor_version < 0)
+ goto update_auto_version_and_return;
- for (a = t->vn_auxptr; a != NULL; a = a->vna_nextptr)
- {
- /* Return if VERSION_DEP dependency has been added. */
- if (a->vna_nodename == version_dep
- || strcmp (a->vna_nodename, version_dep) == 0)
- return t;
+ glibc = true;
- /* Check if libc.so provides GLIBC_2.XX version. */
- if (startswith (a->vna_nodename, "GLIBC_2."))
- {
- minor_version = strtol (a->vna_nodename + 8, NULL, 10);
- if (minor_version < *glibc_minor_base)
- *glibc_minor_base = minor_version;
- }
- }
+ if (auto_version && *auto_version)
+ {
+ /* Add VERSION_DEP to the version dependency list only if
+ libc.so defines VERSION_DEP. */
- /* Skip if it isn't linked against glibc. */
- if (minor_version < 0)
- return NULL;
+ bool defined = false;
+ Elf_Internal_Verdef *d;
+
+ for (d = elf_tdata (t->vn_bfd)->verdef;
+ d != NULL;
+ d = d->vd_nextdef)
+ if (strcmp (d->vd_nodename, version_dep) == 0)
+ {
+ defined = true;
+ break;
+ }
+
+ /* Set *AUTO_VERSION to false and return true to indicate that
+ libc.so doesn't define VERSION_DEP. */
+ if (!defined)
+ goto update_auto_version_and_return;
}
/* Skip if 2.GLIBC_MINOR_BASE includes VERSION_DEP. */
@@ -2352,7 +2368,7 @@ elf_link_add_glibc_verneed (struct elf_find_verdep_info *rinfo,
{
minor_version = strtol (version_dep + 8, NULL, 10);
if (minor_version <= *glibc_minor_base)
- return NULL;
+ goto update_auto_version_and_return;
}
amt = sizeof *a;
@@ -2360,7 +2376,8 @@ elf_link_add_glibc_verneed (struct elf_find_verdep_info *rinfo,
if (a == NULL)
{
rinfo->failed = true;
- return NULL;
+ glibc = false;
+ goto update_auto_version_and_return;
}
a->vna_nodename = version_dep;
@@ -2371,30 +2388,38 @@ elf_link_add_glibc_verneed (struct elf_find_verdep_info *rinfo,
t->vn_auxptr = a;
- return t;
+ added = true;
+
+ update_auto_version_and_return:
+ if (auto_version)
+ *auto_version = added;
+
+ return glibc;
}
/* Add VERSION_DEP to the list of version dependencies when linked
against glibc. */
-void
+bool
_bfd_elf_link_add_glibc_version_dependency
(struct elf_find_verdep_info *rinfo,
- const char *version_dep[])
+ const char *const version_dep[],
+ bool *auto_version)
{
- Elf_Internal_Verneed *t = NULL;
int glibc_minor_base = INT_MAX;
do
{
- t = elf_link_add_glibc_verneed (rinfo, t, *version_dep,
- &glibc_minor_base);
- /* Return if there is no glibc version reference. */
- if (t == NULL)
- return;
+ /* Return if not linked against glibc. */
+ if (!elf_link_add_glibc_verneed (rinfo, *version_dep,
+ &glibc_minor_base, auto_version))
+ return false;
version_dep++;
+ auto_version++;
}
while (*version_dep != NULL);
+
+ return true;
}
/* Add GLIBC_ABI_DT_RELR to the list of version dependencies when
@@ -2405,12 +2430,12 @@ _bfd_elf_link_add_dt_relr_dependency (struct elf_find_verdep_info *rinfo)
{
if (rinfo->info->enable_dt_relr)
{
- const char *version[] =
+ static const char *const version[] =
{
"GLIBC_ABI_DT_RELR",
NULL
};
- _bfd_elf_link_add_glibc_version_dependency (rinfo, version);
+ _bfd_elf_link_add_glibc_version_dependency (rinfo, version, NULL);
}
}
@@ -3678,11 +3703,8 @@ elf_link_is_defined_archive_symbol (bfd * abfd, carsym * symdef)
get the correct symbol table. */
if (abfd->plugin_format == bfd_plugin_yes
|| abfd->plugin_format == bfd_plugin_yes_unused
-#if BFD_SUPPORTS_PLUGINS
|| (abfd->plugin_format == bfd_plugin_unknown
- && bfd_link_plugin_object_p (abfd))
-#endif
- )
+ && bfd_link_plugin_object_p (abfd)))
{
/* Use the IR symbol table if the object has been claimed by
plugin. */
@@ -5117,6 +5139,13 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
continue;
}
+ if (name[0] == '\0')
+ {
+ _bfd_error_handler (_("%pB: corrupt symbol table"), abfd);
+ bfd_set_error (bfd_error_bad_value);
+ goto error_free_vers;
+ }
+
/* Sanity check that all possibilities were handled. */
if (sec == NULL)
abort ();
@@ -7526,7 +7555,7 @@ NOTE: This behaviour is deprecated and will be removed in a future version of th
asection *dynstr;
asection *s;
- *sinterpptr = bfd_get_linker_section (dynobj, ".interp");
+ *sinterpptr = elf_hash_table (info)->interp;
BFD_ASSERT (*sinterpptr != NULL || !bfd_link_executable (info) || info->nointerp);
if (info->symbolic)
@@ -9126,7 +9155,7 @@ struct elf_outext_info
<binary-operator> := as in C
<unary-operator> := as in C, plus "0-" for unambiguous negation. */
-static void
+static bool
set_symbol_value (bfd *bfd_with_globals,
Elf_Internal_Sym *isymbuf,
size_t locsymcount,
@@ -9147,9 +9176,15 @@ set_symbol_value (bfd *bfd_with_globals,
"absolute" section and give it a value. */
sym->st_shndx = SHN_ABS;
sym->st_value = val;
- return;
+ return true;
+ }
+ if (!elf_bad_symtab (bfd_with_globals))
+ {
+ _bfd_error_handler (_("%pB: corrupt symbol table"),
+ bfd_with_globals);
+ bfd_set_error (bfd_error_bad_value);
+ return false;
}
- BFD_ASSERT (elf_bad_symtab (bfd_with_globals));
extsymoff = 0;
}
@@ -9159,11 +9194,12 @@ set_symbol_value (bfd *bfd_with_globals,
if (h == NULL)
{
/* FIXMEL What should we do ? */
- return;
+ return false;
}
h->root.type = bfd_link_hash_defined;
h->root.u.def.value = val;
h->root.u.def.section = bfd_abs_section_ptr;
+ return true;
}
static bool
@@ -11861,8 +11897,10 @@ elf_link_input_bfd (struct elf_final_link_info *flinfo, bfd *input_bfd)
return false;
/* Symbol evaluated OK. Update to absolute value. */
- set_symbol_value (input_bfd, isymbuf, locsymcount,
- r_symndx, val);
+ if (!set_symbol_value (input_bfd, isymbuf, locsymcount, r_symndx,
+ val))
+ return false;
+
continue;
}
@@ -14827,7 +14865,7 @@ bfd_elf_gc_record_vtentry (bfd *abfd, asection *sec,
const struct elf_backend_data *bed = get_elf_backend_data (abfd);
unsigned int log_file_align = bed->s->log_file_align;
- if (!h)
+ if (!h || addend > 1u << 28)
{
/* xgettext:c-format */
_bfd_error_handler (_("%pB: section '%pA': corrupt VTENTRY entry"),
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
index cec579c..3c3c289 100644
--- a/bfd/elfnn-aarch64.c
+++ b/bfd/elfnn-aarch64.c
@@ -9486,7 +9486,7 @@ elfNN_aarch64_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
{
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = htab->root.interp;
if (s == NULL)
abort ();
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
@@ -10785,22 +10785,3 @@ const struct elf_size_info elfNN_aarch64_size_info =
#define elf_backend_obj_attrs_section SEC_AARCH64_ATTRIBUTES
#include "elfNN-target.h"
-
-/* CloudABI support. */
-
-#undef TARGET_LITTLE_SYM
-#define TARGET_LITTLE_SYM aarch64_elfNN_le_cloudabi_vec
-#undef TARGET_LITTLE_NAME
-#define TARGET_LITTLE_NAME "elfNN-littleaarch64-cloudabi"
-#undef TARGET_BIG_SYM
-#define TARGET_BIG_SYM aarch64_elfNN_be_cloudabi_vec
-#undef TARGET_BIG_NAME
-#define TARGET_BIG_NAME "elfNN-bigaarch64-cloudabi"
-
-#undef ELF_OSABI
-#define ELF_OSABI ELFOSABI_CLOUDABI
-
-#undef elfNN_bed
-#define elfNN_bed elfNN_aarch64_cloudabi_bed
-
-#include "elfNN-target.h"
diff --git a/bfd/elfnn-ia64.c b/bfd/elfnn-ia64.c
index 685a37f..528b1dc 100644
--- a/bfd/elfnn-ia64.c
+++ b/bfd/elfnn-ia64.c
@@ -3007,7 +3007,7 @@ elfNN_ia64_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
if (ia64_info->root.dynamic_sections_created
&& bfd_link_executable (info) && !info->nointerp)
{
- sec = bfd_get_linker_section (dynobj, ".interp");
+ sec = ia64_info->root.interp;
BFD_ASSERT (sec != NULL);
sec->contents = (bfd_byte *) ELF_DYNAMIC_INTERPRETER;
sec->alloced = 1;
diff --git a/bfd/elfnn-kvx.c b/bfd/elfnn-kvx.c
index 0634ad3..3b44db5 100644
--- a/bfd/elfnn-kvx.c
+++ b/bfd/elfnn-kvx.c
@@ -4046,7 +4046,7 @@ elfNN_kvx_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
{
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = htab->root.interp;
if (s == NULL)
abort ();
s->size = sizeof ELF_DYNAMIC_INTERPRETER;
diff --git a/bfd/elfnn-loongarch.c b/bfd/elfnn-loongarch.c
index 8beb3d8..53cdb78 100644
--- a/bfd/elfnn-loongarch.c
+++ b/bfd/elfnn-loongarch.c
@@ -2384,7 +2384,7 @@ loongarch_elf_late_size_sections (bfd *output_bfd,
if (bfd_link_executable (info) && !info->nointerp)
{
const char *interpreter;
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = htab->elf.interp;
BFD_ASSERT (s != NULL);
if (elf_elfheader (output_bfd)->e_ident[EI_CLASS] == ELFCLASS32)
@@ -4401,7 +4401,7 @@ loongarch_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
case R_LARCH_TLS_LE_LO12_R:
case R_LARCH_TLS_LE64_LO20:
case R_LARCH_TLS_LE64_HI12:
- BFD_ASSERT (resolved_local && elf_hash_table (info)->tls_sec);
+ BFD_ASSERT (bfd_link_executable (info));
relocation += rel->r_addend;
relocation = tlsoff (info, relocation);
diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
index af08f7d..09cf707 100644
--- a/bfd/elfnn-riscv.c
+++ b/bfd/elfnn-riscv.c
@@ -1711,7 +1711,7 @@ riscv_elf_late_size_sections (bfd *output_bfd, struct bfd_link_info *info)
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = elf_hash_table (info)->interp;
BFD_ASSERT (s != NULL);
s->size = strlen (ELFNN_DYNAMIC_INTERPRETER) + 1;
s->contents = (unsigned char *) ELFNN_DYNAMIC_INTERPRETER;
@@ -2880,7 +2880,8 @@ riscv_elf_relocate_section (bfd *output_bfd,
if (h->dynindx == -1
&& !h->forced_local
&& h->root.type != bfd_link_hash_undefweak
- && bfd_link_pic (info))
+ && bfd_link_pic (info)
+ && !bfd_is_abs_section(h->root.u.def.section))
relative_got = true;
bfd_put_NN (output_bfd, relocation,
@@ -3605,19 +3606,13 @@ riscv_elf_finish_dynamic_symbol (bfd *output_bfd,
else
{
/* Generate R_RISCV_NN. */
- BFD_ASSERT ((h->got.offset & 1) == 0);
- BFD_ASSERT (h->dynindx != -1);
- rela.r_info = ELFNN_R_INFO (h->dynindx, R_RISCV_NN);
- rela.r_addend = 0;
+ goto do_reloc_nn;
}
}
else if (bfd_link_pic (info))
{
/* Generate R_RISCV_NN. */
- BFD_ASSERT ((h->got.offset & 1) == 0);
- BFD_ASSERT (h->dynindx != -1);
- rela.r_info = ELFNN_R_INFO (h->dynindx, R_RISCV_NN);
- rela.r_addend = 0;
+ goto do_reloc_nn;
}
else
{
@@ -3655,15 +3650,15 @@ riscv_elf_finish_dynamic_symbol (bfd *output_bfd,
}
else
{
+ do_reloc_nn:
BFD_ASSERT ((h->got.offset & 1) == 0);
BFD_ASSERT (h->dynindx != -1);
rela.r_info = ELFNN_R_INFO (h->dynindx, R_RISCV_NN);
rela.r_addend = 0;
+ bfd_put_NN (output_bfd, 0,
+ sgot->contents + (h->got.offset & ~(bfd_vma) 1));
}
- bfd_put_NN (output_bfd, 0,
- sgot->contents + (h->got.offset & ~(bfd_vma) 1));
-
if (use_elf_append_rela)
riscv_elf_append_rela (output_bfd, srela, &rela);
else
diff --git a/bfd/elfxx-loongarch.c b/bfd/elfxx-loongarch.c
index 6268c47..0b030d3 100644
--- a/bfd/elfxx-loongarch.c
+++ b/bfd/elfxx-loongarch.c
@@ -1388,7 +1388,7 @@ static loongarch_reloc_howto_type loongarch_howto_table[] =
false, /* partial_inplace. */
0, /* src_mask */
0xffffffff, /* dst_mask */
- false, /* pcrel_offset */
+ true, /* pcrel_offset */
BFD_RELOC_LARCH_32_PCREL, /* bfd_reloc_code_real_type */
reloc_sign_bits, /* adjust_reloc_bits */
NULL), /* larch_reloc_type_name */
@@ -1580,7 +1580,7 @@ static loongarch_reloc_howto_type loongarch_howto_table[] =
false, /* partial_inplace. */
0, /* src_mask */
0xffffffffffffffff, /* dst_mask */
- false, /* pcrel_offset */
+ true, /* pcrel_offset */
BFD_RELOC_LARCH_64_PCREL, /* bfd_reloc_code_real_type */
NULL, /* adjust_reloc_bits */
NULL), /* larch_reloc_type_name */
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index a171af5..bf3fd7d 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -10075,7 +10075,7 @@ _bfd_mips_elf_late_size_sections (bfd *output_bfd,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = htab->root.interp;
BFD_ASSERT (s != NULL);
s->size
= strlen (ELF_DYNAMIC_INTERPRETER (output_bfd)) + 1;
diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
index 1200032..085d779 100644
--- a/bfd/elfxx-riscv.c
+++ b/bfd/elfxx-riscv.c
@@ -43,7 +43,7 @@ static bfd_reloc_status_type riscv_elf_ignore_reloc
/* The relocation table used for SHT_RELA sections. */
-static reloc_howto_type howto_table[] =
+static const reloc_howto_type howto_table[] =
{
/* No relocation. */
HOWTO (R_RISCV_NONE, /* type */
@@ -879,7 +879,7 @@ static reloc_howto_type howto_table[] =
false) /* pcrel_offset */
};
-static reloc_howto_type howto_table_internal[] =
+static const reloc_howto_type howto_table_internal[] =
{
/* R_RISCV_DELETE. */
EMPTY_HOWTO (0),
@@ -1204,7 +1204,7 @@ struct riscv_implicit_subset
const riscv_subset_t *);
};
/* Please added in order since this table is only run once time. */
-static struct riscv_implicit_subset riscv_implicit_subsets[] =
+static const struct riscv_implicit_subset riscv_implicit_subsets[] =
{
{"g", "+i,+m,+a,+f,+d,+zicsr,+zifencei", check_implicit_always},
{"e", "+i", check_implicit_always},
@@ -1303,6 +1303,8 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
{"zvksc", "+zvks,+zvbc", check_implicit_always},
{"zvks", "+zvksed,+zvksh,+zvkb,+zvkt", check_implicit_always},
+ {"sdtrig", "+zicsr", check_implicit_always},
+
{"smaia", "+ssaia", check_implicit_always},
{"smcdeleg", "+ssccfg", check_implicit_always},
{"smcsrind", "+sscsrind", check_implicit_always},
@@ -1322,6 +1324,7 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
{"sscounterenw", "+zicsr", check_implicit_always},
{"ssctr", "+zicsr", check_implicit_always},
{"ssstateen", "+zicsr", check_implicit_always},
+ {"ssstrict", "+zicsr", check_implicit_always},
{"sstc", "+zicsr", check_implicit_always},
{"sstvala", "+zicsr", check_implicit_always},
{"sstvecd", "+zicsr", check_implicit_always},
@@ -1336,7 +1339,7 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
};
/* This table records the mapping form RISC-V Profiles into march string. */
-static struct riscv_profiles riscv_profiles_table[] =
+static const struct riscv_profiles riscv_profiles_table[] =
{
/* RVI20U only contains the base extension 'i' as mandatory extension. */
{"rvi20u64", "rv64i"},
@@ -1408,7 +1411,7 @@ struct riscv_supported_ext
/* The standard extensions must be added in canonical order. */
-static struct riscv_supported_ext riscv_supported_std_ext[] =
+static const struct riscv_supported_ext riscv_supported_std_ext[] =
{
{"e", ISA_SPEC_CLASS_20191213, 1, 9, 0 },
{"e", ISA_SPEC_CLASS_20190608, 1, 9, 0 },
@@ -1443,7 +1446,7 @@ static struct riscv_supported_ext riscv_supported_std_ext[] =
{NULL, 0, 0, 0, 0}
};
-static struct riscv_supported_ext riscv_supported_std_z_ext[] =
+static const struct riscv_supported_ext riscv_supported_std_z_ext[] =
{
{"zic64b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"ziccamoa", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
@@ -1550,8 +1553,9 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] =
{NULL, 0, 0, 0, 0}
};
-static struct riscv_supported_ext riscv_supported_std_s_ext[] =
+static const struct riscv_supported_ext riscv_supported_std_s_ext[] =
{
+ {"sdtrig", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"sha", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"shcounterenw", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"shgatpa", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
@@ -1576,6 +1580,7 @@ static struct riscv_supported_ext riscv_supported_std_s_ext[] =
{"sscounterenw", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"ssctr", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"ssstateen", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"ssstrict", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"sstc", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"sstvala", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"sstvecd", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
@@ -1597,12 +1602,12 @@ static struct riscv_supported_ext riscv_supported_std_s_ext[] =
{NULL, 0, 0, 0, 0}
};
-static struct riscv_supported_ext riscv_supported_std_zxm_ext[] =
+static const struct riscv_supported_ext riscv_supported_std_zxm_ext[] =
{
{NULL, 0, 0, 0, 0}
};
-static struct riscv_supported_ext riscv_supported_vendor_x_ext[] =
+static const struct riscv_supported_ext riscv_supported_vendor_x_ext[] =
{
{"xcvalu", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"xcvbi", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
@@ -1639,7 +1644,7 @@ static struct riscv_supported_ext riscv_supported_vendor_x_ext[] =
{NULL, 0, 0, 0, 0}
};
-const struct riscv_supported_ext *riscv_all_supported_ext[] =
+static const struct riscv_supported_ext *riscv_all_supported_ext[] =
{
riscv_supported_std_ext,
riscv_supported_std_z_ext,
@@ -1701,7 +1706,7 @@ riscv_get_prefix_class (const char *arch)
static bool
riscv_known_prefixed_ext (const char *ext,
- struct riscv_supported_ext *known_exts)
+ const struct riscv_supported_ext *known_exts)
{
size_t i;
for (i = 0; known_exts[i].name != NULL; ++i)
@@ -1894,7 +1899,7 @@ riscv_get_default_ext_version (enum riscv_spec_class *default_isa_spec,
|| *default_isa_spec == ISA_SPEC_CLASS_NONE)
return;
- struct riscv_supported_ext *table = NULL;
+ const struct riscv_supported_ext *table = NULL;
enum riscv_prefix_ext_class class = riscv_get_prefix_class (name);
switch (class)
{
@@ -2185,7 +2190,7 @@ riscv_update_subset1 (riscv_parse_subset_t *, riscv_subset_t *, const char *);
static void
riscv_parse_add_implicit_subsets (riscv_parse_subset_t *rps)
{
- struct riscv_implicit_subset *t = riscv_implicit_subsets;
+ const struct riscv_implicit_subset *t = riscv_implicit_subsets;
for (; t->ext; t++)
{
riscv_subset_t *subset = NULL;
@@ -3437,8 +3442,8 @@ _bfd_riscv_elf_link_setup_gnu_properties (struct bfd_link_info *info,
| SEC_READONLY | SEC_HAS_CONTENTS
| SEC_DATA));
if (sec == NULL)
- info->callbacks->einfo (
- _ ("%F%P: failed to create GNU property section\n"));
+ info->callbacks->fatal (
+ _("%P: failed to create GNU property section\n"));
elf_section_type (sec) = SHT_NOTE;
}
diff --git a/bfd/elfxx-sparc.c b/bfd/elfxx-sparc.c
index f0b3795..bbaa782 100644
--- a/bfd/elfxx-sparc.c
+++ b/bfd/elfxx-sparc.c
@@ -679,7 +679,7 @@ _bfd_sparc_elf_info_to_howto (bfd *abfd, arelent *cache_ptr,
#define UNDEFINED_WEAK_RESOLVED_TO_ZERO(INFO, EH) \
((EH)->elf.root.type == bfd_link_hash_undefweak \
&& bfd_link_executable (INFO) \
- && (_bfd_sparc_elf_hash_table (INFO)->interp == NULL \
+ && (_bfd_sparc_elf_hash_table (INFO)->elf.interp == NULL \
|| !(INFO)->dynamic_undefined_weak \
|| (EH)->has_non_got_reloc \
|| !(EH)->has_got_reloc))
@@ -2408,12 +2408,11 @@ _bfd_sparc_elf_late_size_sections (bfd *output_bfd,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = elf_hash_table (info)->interp;
BFD_ASSERT (s != NULL);
s->size = htab->dynamic_interpreter_size;
s->contents = (unsigned char *) htab->dynamic_interpreter;
s->alloced = 1;
- htab->interp = s;
}
}
diff --git a/bfd/elfxx-sparc.h b/bfd/elfxx-sparc.h
index 633b10e..572c233 100644
--- a/bfd/elfxx-sparc.h
+++ b/bfd/elfxx-sparc.h
@@ -46,9 +46,6 @@ struct _bfd_sparc_elf_link_hash_table
{
struct elf_link_hash_table elf;
- /* Short-cut to get to dynamic linker sections. */
- asection *interp;
-
union
{
bfd_signed_vma refcount;
diff --git a/bfd/elfxx-tilegx.c b/bfd/elfxx-tilegx.c
index 1854e69..79358e6 100644
--- a/bfd/elfxx-tilegx.c
+++ b/bfd/elfxx-tilegx.c
@@ -2448,7 +2448,7 @@ tilegx_elf_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
/* Set the contents of the .interp section to the interpreter. */
if (bfd_link_executable (info) && !info->nointerp)
{
- s = bfd_get_linker_section (dynobj, ".interp");
+ s = htab->elf.interp;
BFD_ASSERT (s != NULL);
s->size = strlen (htab->dynamic_interpreter) + 1;
s->contents = (unsigned char *) htab->dynamic_interpreter;
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index 3dc0095..0d38996 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -366,7 +366,7 @@ elf_x86_allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
htab->elf.srelgot->size += htab->sizeof_reloc;
if (GOT_TLS_GDESC_P (tls_type))
{
- htab->elf.srelplt->size += htab->sizeof_reloc;
+ htab->rel_tls_desc->size += htab->sizeof_reloc;
if (bed->target_id == X86_64_ELF_DATA)
htab->elf.tlsdesc_plt = (bfd_vma) -1;
}
@@ -882,6 +882,8 @@ _bfd_x86_elf_link_check_relocs (bfd *abfd, struct bfd_link_info *info)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
elf_x86_hash_entry (h)->tls_get_addr = 1;
}
+
+ htab->has_tls_get_addr_call = 1;
}
/* Pass NULL for __ehdr_start which will be defined by
@@ -2155,6 +2157,16 @@ _bfd_elf_x86_finish_relative_relocs (struct bfd_link_info *info)
return true;
}
+asection *
+_bfd_elf_x86_get_reloc_section (bfd *abfd, const char *name)
+{
+ /* Treat .rel.tls/.rela.tls section the same as .rel.plt/.rela.plt
+ section. */
+ if (strcmp (name, ".tls") == 0)
+ name = ".plt";
+ return _bfd_elf_plt_get_reloc_section (abfd, name);
+}
+
bool
_bfd_elf_x86_valid_reloc_p (asection *input_section,
struct bfd_link_info *info,
@@ -2374,7 +2386,7 @@ _bfd_x86_elf_late_size_sections (bfd *output_bfd,
srel->size += htab->sizeof_reloc;
if (GOT_TLS_GDESC_P (*local_tls_type))
{
- htab->elf.srelplt->size += htab->sizeof_reloc;
+ htab->rel_tls_desc->size += htab->sizeof_reloc;
if (bed->target_id == X86_64_ELF_DATA)
htab->elf.tlsdesc_plt = (bfd_vma) -1;
}
@@ -2415,7 +2427,6 @@ _bfd_x86_elf_late_size_sections (bfd *output_bfd,
so that R_{386,X86_64}_IRELATIVE entries come last. */
if (htab->elf.srelplt)
{
- htab->next_tls_desc_index = htab->elf.srelplt->reloc_count;
htab->sgotplt_jump_table_size
= elf_x86_compute_jump_table_size (htab);
htab->next_irelative_index = htab->elf.srelplt->reloc_count - 1;
@@ -3140,10 +3151,16 @@ _bfd_x86_elf_copy_indirect_symbol (struct bfd_link_info *info,
eind->tls_type = GOT_UNKNOWN;
}
- /* Copy gotoff_ref so that elf_i386_adjust_dynamic_symbol will
+ /* Copy gotoff_ref so that _bfd_x86_elf_adjust_dynamic_symbol will
generate a R_386_COPY reloc. */
edir->gotoff_ref |= eind->gotoff_ref;
+ /* Copy non_got_ref_without_indirect_extern_access so that
+ _bfd_x86_elf_adjust_dynamic_symbol will handle
+ GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS properly. */
+ edir->non_got_ref_without_indirect_extern_access
+ |= eind->non_got_ref_without_indirect_extern_access;
+
edir->zero_undefweak |= eind->zero_undefweak;
if (ELIMINATE_COPY_RELOCS
@@ -3648,7 +3665,7 @@ _bfd_x86_elf_link_symbol_references_local (struct bfd_link_info *info,
|| (h->root.type == bfd_link_hash_undefweak
&& (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
|| (bfd_link_executable (info)
- && htab->interp == NULL)
+ && htab->elf.interp == NULL)
|| info->dynamic_undefined_weak == 0))
|| ((h->def_regular || ELF_COMMON_DEF_P (h))
&& info->version_info != NULL
@@ -4604,6 +4621,8 @@ _bfd_x86_elf_link_setup_gnu_properties
htab->sframe_plt = init_table->sframe_non_lazy_plt;
}
}
+ else if (lazy_plt)
+ htab->sframe_plt = init_table->sframe_lazy_plt;
else
htab->sframe_plt = NULL;
@@ -4683,15 +4702,12 @@ _bfd_x86_elf_link_setup_gnu_properties
{
/* Whe creating executable, set the contents of the .interp
section to the interpreter. */
- if (bfd_link_executable (info) && !info->nointerp)
+ asection *s = htab->elf.interp;
+ if (s != NULL)
{
- asection *s = bfd_get_linker_section (dynobj, ".interp");
- if (s == NULL)
- abort ();
s->size = htab->dynamic_interpreter_size;
s->contents = (unsigned char *) htab->dynamic_interpreter;
s->alloced = 1;
- htab->interp = s;
}
if (normal_target)
@@ -4738,6 +4754,14 @@ _bfd_x86_elf_link_setup_gnu_properties
}
}
+ sec = bfd_make_section_anyway_with_flags
+ (dynobj, bed->rela_plts_and_copies_p ? ".rela.tls" : ".rel.tls",
+ bed->dynamic_sec_flags | SEC_READONLY);
+ if (sec == NULL
+ || !bfd_set_section_alignment (sec, bed->s->log_file_align))
+ return false;
+ htab->rel_tls_desc = sec;
+
if (!info->no_ld_generated_unwind_info)
{
flagword flags = (SEC_ALLOC | SEC_LOAD | SEC_READONLY
diff --git a/bfd/elfxx-x86.h b/bfd/elfxx-x86.h
index 88bfa05..1ebc9d2 100644
--- a/bfd/elfxx-x86.h
+++ b/bfd/elfxx-x86.h
@@ -224,12 +224,15 @@
|| (EH)->elf.root.type == bfd_link_hash_undefined)))
/* TRUE if this input relocation should be copied to output. H->dynindx
- may be -1 if this symbol was marked to become local. */
+ may be -1 if this symbol was marked to become local. STV_PROTECTED
+ symbols are local. */
#define COPY_INPUT_RELOC_P(IS_X86_64, INFO, H, R_TYPE) \
((H) != NULL \
&& (H)->dynindx != -1 \
&& (X86_PCREL_TYPE_P (IS_X86_64, R_TYPE) \
- || !(bfd_link_executable (INFO) || SYMBOLIC_BIND ((INFO), (H))) \
+ || !(bfd_link_executable (INFO) \
+ || SYMBOLIC_BIND ((INFO), (H)) \
+ || ELF_ST_VISIBILITY ((H)->other) == STV_PROTECTED) \
|| !(H)->def_regular))
/* TRUE if this is actually a static link, or it is a -Bsymbolic link
@@ -599,7 +602,6 @@ struct elf_x86_link_hash_table
struct elf_link_hash_table elf;
/* Short-cuts to get to dynamic linker sections. */
- asection *interp;
asection *plt_eh_frame;
asection *plt_second;
asection *plt_second_eh_frame;
@@ -647,14 +649,14 @@ struct elf_x86_link_hash_table
/* The index of the next R_X86_64_IRELATIVE entry in .rela.plt. */
bfd_vma next_irelative_index;
+ /* The .rela.tls/.rel.tls section for R_386_TLS_DESC or R_X86_64_TLSDESC
+ relocation. */
+ asection *rel_tls_desc;
+
/* The (unloaded but important) .rel.plt.unloaded section on VxWorks.
This is used for i386 only. */
asection *srelplt2;
- /* The index of the next unused R_386_TLS_DESC slot in .rel.plt. This
- is only used for i386. */
- bfd_vma next_tls_desc_index;
-
/* DT_RELR bitmap. */
struct elf_dt_relr_bitmap dt_relr_bitmap;
@@ -667,6 +669,13 @@ struct elf_x86_link_hash_table
/* Number of relative reloc generation pass. */
unsigned int generate_relative_reloc_pass;
+ /* TRUE if inputs have R_386_TLS_DESC_CALL or R_X86_64_TLSDESC_CALL
+ relocation. */
+ unsigned int has_tls_desc_call : 1;
+
+ /* TRUE if inputs call ___tls_get_addr. This is only used for i386. */
+ unsigned int has_tls_get_addr_call : 1;
+
/* Value used to fill the unused bytes of the first PLT entry. This
is only used for i386. */
bfd_byte plt0_pad_byte;
@@ -861,6 +870,9 @@ extern bool _bfd_elf_x86_size_relative_relocs
extern bool _bfd_elf_x86_finish_relative_relocs
(struct bfd_link_info *) ATTRIBUTE_HIDDEN;
+extern asection * _bfd_elf_x86_get_reloc_section
+ (bfd *, const char *) ATTRIBUTE_HIDDEN;
+
extern void _bfd_elf32_write_addend
(bfd *, uint64_t, void *) ATTRIBUTE_HIDDEN;
extern void _bfd_elf64_write_addend
@@ -984,6 +996,8 @@ extern void _bfd_x86_elf_link_report_tls_transition_error
_bfd_elf_x86_size_relative_relocs
#define elf_backend_finish_relative_relocs \
_bfd_elf_x86_finish_relative_relocs
+#define elf_backend_get_reloc_section \
+ _bfd_elf_x86_get_reloc_section
#define elf_backend_use_mmap true
#define ELF_P_ALIGN ELF_MINPAGESIZE
diff --git a/bfd/format.c b/bfd/format.c
index fba8d2a..81f29c5 100644
--- a/bfd/format.c
+++ b/bfd/format.c
@@ -46,9 +46,7 @@ SUBSECTION
#include "sysdep.h"
#include "bfd.h"
#include "libbfd.h"
-#if BFD_SUPPORTS_PLUGINS
#include "plugin.h"
-#endif
/* IMPORT from targets.c. */
extern const size_t _bfd_target_vector_entries;
@@ -366,9 +364,8 @@ struct lto_section
/* Set lto_type in ABFD. */
static void
-bfd_set_lto_type (bfd *abfd ATTRIBUTE_UNUSED)
+bfd_set_lto_type (bfd *abfd)
{
-#if BFD_SUPPORTS_PLUGINS
if (abfd->format == bfd_object
&& abfd->lto_type == lto_non_object
&& (abfd->flags
@@ -376,37 +373,52 @@ bfd_set_lto_type (bfd *abfd ATTRIBUTE_UNUSED)
| (bfd_get_flavour (abfd) == bfd_target_elf_flavour
? EXEC_P : 0))) == 0)
{
- asection *sec;
+ asection *sec = abfd->sections;
enum bfd_lto_object_type type = lto_non_ir_object;
- struct lto_section lsection = { 0, 0, 0, 0 };
- /* GCC uses .gnu.lto_.lto.<some_hash> as a LTO bytecode information
- section. */
- for (sec = abfd->sections; sec != NULL; sec = sec->next)
- if (strcmp (sec->name, GNU_OBJECT_ONLY_SECTION_NAME) == 0)
- {
- type = lto_mixed_object;
- abfd->object_only_section = sec;
- break;
- }
- else if (strcmp (sec->name, ".llvm.lto") == 0)
- {
- type = lto_fat_ir_object;
- break;
- }
- else if (lsection.major_version == 0
- && startswith (sec->name, ".gnu.lto_.lto.")
- && bfd_get_section_contents (abfd, sec, &lsection, 0,
- sizeof (struct lto_section)))
- {
- if (lsection.slim_object)
- type = lto_slim_ir_object;
- else
- type = lto_fat_ir_object;
+ if (sec == NULL)
+ {
+ /* If there are no sections, check for slim LLVM IR object whose
+ first 4 bytes are: 'B', 'C', 0xc0, 0xde. */
+ bfd_byte llvm_ir_magic[4];
+ if (bfd_seek (abfd, 0, SEEK_SET) == 0
+ && bfd_read (llvm_ir_magic, 4, abfd) == 4
+ && llvm_ir_magic[0] == 'B'
+ && llvm_ir_magic[1] == 'C'
+ && llvm_ir_magic[2] == 0xc0
+ && llvm_ir_magic[3] == 0xde)
+ type = lto_slim_ir_object;
+ }
+ else
+ {
+ struct lto_section lsection = { 0, 0, 0, 0 };
+ /* GCC uses .gnu.lto_.lto.<some_hash> as a LTO bytecode
+ information section. */
+ for (; sec != NULL; sec = sec->next)
+ if (strcmp (sec->name, GNU_OBJECT_ONLY_SECTION_NAME) == 0)
+ {
+ type = lto_mixed_object;
+ abfd->object_only_section = sec;
+ break;
+ }
+ else if (strcmp (sec->name, ".llvm.lto") == 0)
+ {
+ type = lto_fat_ir_object;
+ break;
+ }
+ else if (lsection.major_version == 0
+ && startswith (sec->name, ".gnu.lto_.lto.")
+ && bfd_get_section_contents (abfd, sec, &lsection, 0,
+ sizeof (struct lto_section)))
+ {
+ if (lsection.slim_object)
+ type = lto_slim_ir_object;
+ else
+ type = lto_fat_ir_object;
}
+ }
abfd->lto_type = type;
}
-#endif
}
/*
@@ -497,51 +509,66 @@ bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching)
if (!bfd_preserve_save (abfd, &preserve, NULL))
goto err_ret;
- /* If the target type was explicitly specified, just check that target. */
+ /* First try matching the plugin target if appropriate. Next try
+ the current target. The current target may have been set due to
+ a user option, or due to the linker trying optimistically to load
+ input files for the same target as the output. Either will
+ have target_defaulted false. Failing that, bfd_find_target will
+ have chosen a default target, and target_defaulted will be true. */
fail_targ = NULL;
- if (!abfd->target_defaulted
-#if BFD_SUPPORTS_PLUGINS
- && !(abfd->plugin_format == bfd_plugin_no
- && bfd_plugin_target_p (save_targ))
-#endif
- )
+ if (bfd_plugin_enabled ()
+ && abfd->format == bfd_object
+ && abfd->target_defaulted
+ && !abfd->is_linker_input
+ && abfd->plugin_format != bfd_plugin_no)
{
- if (bfd_seek (abfd, 0, SEEK_SET) != 0) /* rewind! */
+ if (bfd_seek (abfd, 0, SEEK_SET) != 0)
goto err_ret;
+ BFD_ASSERT (save_targ != bfd_plugin_vec ());
+ abfd->xvec = bfd_plugin_vec ();
+ bfd_set_error (bfd_error_no_error);
cleanup = BFD_SEND_FMT (abfd, _bfd_check_format, (abfd));
-
- /* When called from strip, don't treat archive member nor
- standalone fat IR object as an IR object. For archive
- member, it will be copied as an unknown object if the
- plugin target is in use or it is a slim IR object. For
- standalone fat IR object, it will be copied as non-IR
- object. */
- if (cleanup
-#if BFD_SUPPORTS_PLUGINS
- && (!abfd->is_strip_input
- || !bfd_plugin_target_p (abfd->xvec)
- || (abfd->lto_type != lto_fat_ir_object
- && abfd->my_archive == NULL))
-#endif
- )
+ if (cleanup)
goto ok_ret;
- /* For a long time the code has dropped through to check all
- targets if the specified target was wrong. I don't know why,
- and I'm reluctant to change it. However, in the case of an
- archive, it can cause problems. If the specified target does
- not permit archives (e.g., the binary target), then we should
- not allow some other target to recognize it as an archive, but
- should instead allow the specified target to recognize it as an
- object. When I first made this change, it broke the PE target,
- because the specified pei-i386 target did not recognize the
- actual pe-i386 archive. Since there may be other problems of
- this sort, I changed this test to check only for the binary
- target. */
- if (format == bfd_archive && save_targ == &binary_vec)
- goto err_unrecog;
- fail_targ = save_targ;
+ bfd_reinit (abfd, initial_section_id, &preserve, cleanup);
+ bfd_release (abfd, preserve.marker);
+ preserve.marker = bfd_alloc (abfd, 1);
+ abfd->xvec = save_targ;
+ }
+
+ /* bfd_plugin_no excluding the plugin target is an optimisation.
+ The test can be removed if desired. */
+ if (!(abfd->plugin_format == bfd_plugin_no
+ && bfd_plugin_target_p (save_targ)))
+ {
+ if (bfd_seek (abfd, 0, SEEK_SET) != 0)
+ goto err_ret;
+
+ bfd_set_error (bfd_error_no_error);
+ cleanup = BFD_SEND_FMT (abfd, _bfd_check_format, (abfd));
+ if (cleanup)
+ {
+ if (abfd->format != bfd_archive
+ /* An archive with object files matching the archive
+ target is OK. Other archives should be further
+ tested. */
+ || (bfd_has_map (abfd)
+ && bfd_get_error () != bfd_error_wrong_object_format)
+ /* Empty archives can match the current target.
+ Attempting to read the armap will result in a file
+ truncated error. */
+ || (!bfd_has_map (abfd)
+ && bfd_get_error () == bfd_error_file_truncated))
+ goto ok_ret;
+ }
+ else
+ {
+ if (!abfd->target_defaulted && !abfd->is_linker_input)
+ goto err_unrecog;
+ fail_targ = save_targ;
+ }
}
/* Check all targets in the hope that one will be recognized. */
@@ -570,12 +597,9 @@ bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching)
bfd_plugin_get_symbols_in_object_only.) */
if (*target == &binary_vec
|| *target == fail_targ
-#if BFD_SUPPORTS_PLUGINS
|| (((abfd->is_linker_input && match_count != 0)
|| abfd->plugin_format == bfd_plugin_no)
- && bfd_plugin_target_p (*target))
-#endif
- )
+ && bfd_plugin_target_p (*target)))
continue;
/* If we already tried a match, the bfd is modified and may
@@ -603,6 +627,7 @@ bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching)
if (bfd_seek (abfd, 0, SEEK_SET) != 0)
goto err_ret;
+ bfd_set_error (bfd_error_no_error);
cleanup = BFD_SEND_FMT (abfd, _bfd_check_format, (abfd));
if (cleanup)
{
diff --git a/bfd/libbfd.c b/bfd/libbfd.c
index 6587fc1..cb9862c 100644
--- a/bfd/libbfd.c
+++ b/bfd/libbfd.c
@@ -1098,24 +1098,26 @@ bfd_mmap_local (bfd *abfd, size_t rsize, void **map_addr, size_t *map_size)
/* Mmap a memory region of RSIZE bytes at the current offset.
Return mmap address and size in MAP_ADDR and MAP_SIZE. Return NULL
- on invalid input and MAP_FAILED for mmap failure. */
+ on invalid input. */
void *
_bfd_mmap_temporary (bfd *abfd, size_t rsize, void **map_addr,
size_t *map_size)
{
/* Use mmap only if section size >= the minimum mmap section size. */
- if (rsize < _bfd_minimum_mmap_size)
+ if (rsize >= _bfd_minimum_mmap_size)
{
- void *mem = _bfd_malloc_and_read (abfd, rsize, rsize);
- /* NB: Set *MAP_ADDR to MEM and *MAP_SIZE to 0 to indicate that
- _bfd_malloc_and_read is called. */
- *map_addr = mem;
- *map_size = 0;
- return mem;
+ void *result = bfd_mmap_local (abfd, rsize, map_addr, map_size);
+ if (result != MAP_FAILED)
+ return result;
}
- return bfd_mmap_local (abfd, rsize, map_addr, map_size);
+ void *mem = _bfd_malloc_and_read (abfd, rsize, rsize);
+ /* NB: Set *MAP_ADDR to MEM and *MAP_SIZE to 0 to indicate that
+ _bfd_malloc_and_read is called. */
+ *map_addr = mem;
+ *map_size = 0;
+ return mem;
}
/* Munmap RSIZE bytes at PTR. */
@@ -1213,15 +1215,10 @@ _bfd_mmap_read_temporary (void **data_p, size_t *size_p,
if (use_mmmap)
{
void *mmaped = _bfd_mmap_temporary (abfd, size, mmap_base, size_p);
- /* MAP_FAILED is returned when called from GDB on an object with
- opncls_iovec. Use bfd_read in this case. */
- if (mmaped != MAP_FAILED)
- {
- if (mmaped == NULL)
- abort ();
- *data_p = mmaped;
- return true;
- }
+ if (mmaped == NULL)
+ return false;
+ *data_p = mmaped;
+ return true;
}
#endif
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index bab1f71..f2485d9 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -1011,7 +1011,7 @@ struct bfd_iovec
int (*bstat) (struct bfd *abfd, struct stat *sb);
/* Mmap a part of the files. ADDR, LEN, PROT, FLAGS and OFFSET are the usual
mmap parameter, except that LEN and OFFSET do not need to be page
- aligned. Returns (void *)-1 on failure, mmapped address on success.
+ aligned. Returns MAP_FAILED on failure, mmapped address on success.
Also write in MAP_ADDR the address of the page aligned buffer and in
MAP_LEN the size mapped (a page multiple). Use unmap with MAP_ADDR and
MAP_LEN to unmap. */
diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c
index c337fc5..1a195d9 100644
--- a/bfd/peXXigen.c
+++ b/bfd/peXXigen.c
@@ -289,7 +289,7 @@ _bfd_XXi_swap_aux_in (bfd * abfd,
/* PR 17521: Make sure that all fields in the aux structure
are initialised. */
- memset (in, 0, sizeof * in);
+ memset (in, 0, sizeof (*in));
switch (in_class)
{
case C_FILE:
@@ -299,6 +299,9 @@ _bfd_XXi_swap_aux_in (bfd * abfd,
in->x_file.x_n.x_n.x_offset = H_GET_32 (abfd, ext->x_file.x_n.x_offset);
}
else
+#if FILNMLEN != E_FILNMLEN
+#error we need to cope with truncating or extending x_fname
+#endif
memcpy (in->x_file.x_n.x_fname, ext->x_file.x_fname, FILNMLEN);
return;
@@ -373,7 +376,10 @@ _bfd_XXi_swap_aux_out (bfd * abfd,
H_PUT_32 (abfd, in->x_file.x_n.x_n.x_offset, ext->x_file.x_n.x_offset);
}
else
- memcpy (ext->x_file.x_fname, in->x_file.x_n.x_fname, sizeof (ext->x_file.x_fname));
+#if FILNMLEN != E_FILNMLEN
+#error we need to cope with truncating or extending x_fname
+#endif
+ memcpy (ext->x_file.x_fname, in->x_file.x_n.x_fname, E_FILNMLEN);
return AUXESZ;
diff --git a/bfd/pei-aarch64.c b/bfd/pei-aarch64.c
index 00f38e0..835b547 100644
--- a/bfd/pei-aarch64.c
+++ b/bfd/pei-aarch64.c
@@ -20,6 +20,7 @@
#include "sysdep.h"
#include "bfd.h"
+#include "libbfd.h"
#define TARGET_SYM aarch64_pei_le_vec
#define TARGET_NAME "pei-aarch64-little"
@@ -58,9 +59,6 @@
{ COFF_SECTION_NAME_PARTIAL_MATCH (".gnu.linkonce.wi."), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 0 }
-#include "sysdep.h"
-#include "bfd.h"
-#include "libbfd.h"
#include "coff/aarch64.h"
#include "coff/internal.h"
#include "coff/pe.h"
diff --git a/bfd/pei-loongarch64.c b/bfd/pei-loongarch64.c
index f22498c..0b00cb2 100644
--- a/bfd/pei-loongarch64.c
+++ b/bfd/pei-loongarch64.c
@@ -20,6 +20,7 @@
#include "sysdep.h"
#include "bfd.h"
+#include "libbfd.h"
#define TARGET_SYM loongarch64_pei_vec
#define TARGET_NAME "pei-loongarch64"
@@ -58,9 +59,6 @@
{ COFF_SECTION_NAME_PARTIAL_MATCH (".gnu.linkonce.wi."), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 0 }
-#include "sysdep.h"
-#include "bfd.h"
-#include "libbfd.h"
#include "coff/loongarch64.h"
#include "coff/internal.h"
#include "coff/pe.h"
diff --git a/bfd/pei-riscv64.c b/bfd/pei-riscv64.c
index c4ae7bf..d8d4b5d 100644
--- a/bfd/pei-riscv64.c
+++ b/bfd/pei-riscv64.c
@@ -20,6 +20,7 @@
#include "sysdep.h"
#include "bfd.h"
+#include "libbfd.h"
#define TARGET_SYM riscv64_pei_vec
#define TARGET_NAME "pei-riscv64-little"
@@ -58,9 +59,6 @@
{ COFF_SECTION_NAME_PARTIAL_MATCH (".gnu.linkonce.wi."), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 0 }
-#include "sysdep.h"
-#include "bfd.h"
-#include "libbfd.h"
#include "coff/riscv64.h"
#include "coff/internal.h"
#include "coff/pe.h"
diff --git a/bfd/pei-x86_64.c b/bfd/pei-x86_64.c
index a5c2fd8..045fedb 100644
--- a/bfd/pei-x86_64.c
+++ b/bfd/pei-x86_64.c
@@ -22,6 +22,7 @@
#include "sysdep.h"
#include "bfd.h"
+#include "libbfd.h"
#define TARGET_SYM x86_64_pei_vec
#define TARGET_NAME "pei-x86-64"
@@ -60,9 +61,6 @@
{ COFF_SECTION_NAME_PARTIAL_MATCH (".gnu.linkonce.wi."), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 0 }
-#include "sysdep.h"
-#include "bfd.h"
-#include "libbfd.h"
#include "coff/x86_64.h"
#include "coff/internal.h"
#include "coff/pe.h"
diff --git a/bfd/plugin.c b/bfd/plugin.c
index 733e7f0..f8ddc61 100644
--- a/bfd/plugin.c
+++ b/bfd/plugin.c
@@ -378,6 +378,7 @@ bfd_plugin_open_input (bfd *ibfd, struct ld_plugin_input_file *file)
iobfd = ibfd;
while (iobfd->my_archive
+ && iobfd->my_archive->iovec == iobfd->iovec
&& !bfd_is_thin_archive (iobfd->my_archive))
iobfd = iobfd->my_archive;
file->name = bfd_get_filename (iobfd);
@@ -470,6 +471,7 @@ bfd_plugin_close_file_descriptor (bfd *abfd, int fd)
else
{
while (abfd->my_archive
+ && abfd->my_archive->iovec == abfd->iovec
&& !bfd_is_thin_archive (abfd->my_archive))
abfd = abfd->my_archive;
@@ -658,16 +660,6 @@ bfd_link_plugin_object_p (bfd *abfd)
return false;
}
-extern const bfd_target plugin_vec;
-
-/* Return TRUE if TARGET is a pointer to plugin_vec. */
-
-bool
-bfd_plugin_target_p (const bfd_target *target)
-{
- return target == &plugin_vec;
-}
-
/* Register OBJECT_P to be used by bfd_plugin_object_p. */
void
@@ -1002,30 +994,26 @@ const bfd_target plugin_vec =
{ /* bfd_check_format. */
_bfd_dummy_target,
bfd_plugin_object_p,
- bfd_generic_archive_p,
+ _bfd_dummy_target,
_bfd_dummy_target
},
{ /* bfd_set_format. */
_bfd_bool_bfd_false_error,
_bfd_bool_bfd_false_error,
- _bfd_generic_mkarchive,
+ _bfd_bool_bfd_false_error,
_bfd_bool_bfd_false_error,
},
{ /* bfd_write_contents. */
_bfd_bool_bfd_false_error,
_bfd_bool_bfd_false_error,
- _bfd_write_archive_contents,
+ _bfd_bool_bfd_false_error,
_bfd_bool_bfd_false_error,
},
BFD_JUMP_TABLE_GENERIC (bfd_plugin),
BFD_JUMP_TABLE_COPY (bfd_plugin),
BFD_JUMP_TABLE_CORE (bfd_plugin),
-#ifdef USE_64_BIT_ARCHIVE
- BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_64_bit),
-#else
- BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff),
-#endif
+ BFD_JUMP_TABLE_ARCHIVE (_bfd_noarchive),
BFD_JUMP_TABLE_SYMBOLS (bfd_plugin),
BFD_JUMP_TABLE_RELOCS (_bfd_norelocs),
BFD_JUMP_TABLE_WRITE (bfd_plugin),
diff --git a/bfd/plugin.h b/bfd/plugin.h
index d981c51..f16c45c 100644
--- a/bfd/plugin.h
+++ b/bfd/plugin.h
@@ -23,12 +23,73 @@
struct ld_plugin_input_file;
+#if BFD_SUPPORTS_PLUGINS
void bfd_plugin_set_program_name (const char *);
int bfd_plugin_open_input (bfd *, struct ld_plugin_input_file *);
void bfd_plugin_set_plugin (const char *);
-bool bfd_plugin_target_p (const bfd_target *);
bool bfd_link_plugin_object_p (bfd *);
void register_ld_plugin_object_p (bfd_cleanup (*object_p) (bfd *, bool));
void bfd_plugin_close_file_descriptor (bfd *, int);
+static inline const bfd_target *
+bfd_plugin_vec (void)
+{
+ extern const bfd_target plugin_vec;
+ return &plugin_vec;
+}
+
+static inline bool
+bfd_plugin_target_p (const bfd_target *target)
+{
+ return target == bfd_plugin_vec ();
+}
+#else
+static inline void
+bfd_plugin_set_program_name (const char *name ATTRIBUTE_UNUSED)
+{
+}
+
+static inline int
+bfd_plugin_open_input (bfd *ibfd ATTRIBUTE_UNUSED,
+ struct ld_plugin_input_file *file ATTRIBUTE_UNUSED)
+{
+ return 0;
+}
+
+static inline void
+bfd_plugin_set_plugin (const char *p ATTRIBUTE_UNUSED)
+{
+}
+
+static inline bool
+bfd_link_plugin_object_p (bfd *abfd ATTRIBUTE_UNUSED)
+{
+ return false;
+}
+
+static inline void
+register_ld_plugin_object_p
+ (bfd_cleanup (*object_p) (bfd *, bool) ATTRIBUTE_UNUSED)
+{
+}
+
+static inline void
+bfd_plugin_close_file_descriptor (bfd *abfd ATTRIBUTE_UNUSED,
+ int fd ATTRIBUTE_UNUSED)
+{
+}
+
+static inline const bfd_target *
+bfd_plugin_vec (void)
+{
+ return NULL;
+}
+
+static inline bool
+bfd_plugin_target_p (const bfd_target *target ATTRIBUTE_UNUSED)
+{
+ return false;
+}
+#endif
+
#endif
diff --git a/bfd/po/ka.po b/bfd/po/ka.po
index 9dec23b..aac34f1 100644
--- a/bfd/po/ka.po
+++ b/bfd/po/ka.po
@@ -1,110 +1,115 @@
# Georgian translation for bfd
# Copyright (C) 2023 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
-# Temuri Doghonadze <temuri.doghonadze@gmail.com>, 2023
+# Temuri Doghonadze <temuri.doghonadze@gmail.com>, 2023, 2025
#
msgid ""
msgstr ""
-"Project-Id-Version: bfd 2.39.90\n"
+"Project-Id-Version: bfd 2.44.90\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2022-12-31 12:18+0000\n"
-"PO-Revision-Date: 2023-04-22 20:38+0200\n"
+"POT-Creation-Date: 2025-07-13 08:44+0100\n"
+"PO-Revision-Date: 2025-08-07 06:27+0200\n"
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
"Language-Team: Georgian <(nothing)>\n"
"Language: ka\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=2; plural=(n != 1);\n"
-"X-Generator: Poedit 3.2.2\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"X-Generator: Poedit 3.6\n"
#: aout-cris.c:196
#, c-format
msgid "%pB: unsupported relocation type exported: %#x"
-msgstr ""
+msgstr "%pB: გáƒáƒ¢áƒáƒœáƒ˜áƒšáƒ˜áƒ მხáƒáƒ áƒ“áƒáƒ£áƒ­áƒ”რელი გáƒáƒ“áƒáƒáƒ“გილების ტიპი: %#x"
#: aout-cris.c:242
#, c-format
msgid "%pB: unsupported relocation type imported: %#x"
-msgstr ""
+msgstr "%pB: შემáƒáƒ¢áƒáƒœáƒ˜áƒšáƒ˜áƒ მხáƒáƒ áƒ“áƒáƒ£áƒ­áƒ”რელი გáƒáƒ“áƒáƒáƒ“გილების ტიპი: %#x"
#: aout-cris.c:254
#, c-format
msgid "%pB: bad relocation record imported: %d"
-msgstr ""
+msgstr "%pB: შემáƒáƒ¢áƒáƒœáƒ˜áƒšáƒ˜ áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ გáƒáƒ“áƒáƒáƒ“გილების ჩáƒáƒœáƒáƒ¬áƒ”რი: %d"
+
+#: aoutx.h:444 pdp11.c:481
+#, c-format
+msgid "%pB: %#<PRIx64> overflows header %s field"
+msgstr "%pB: %#<PRIx64> გáƒáƒ“áƒáƒáƒ•სებს თáƒáƒ•სáƒáƒ áƒ—ის ველს %s"
-#: aoutx.h:1265 aoutx.h:1612 pdp11.c:1238 pdp11.c:1511
+#: aoutx.h:1269 aoutx.h:1598 pdp11.c:1246 pdp11.c:1495
#, c-format
msgid "%pB: can not represent section `%pA' in a.out object file format"
msgstr ""
-#: aoutx.h:1576 pdp11.c:1483
+#: aoutx.h:1562 pdp11.c:1467
#, c-format
msgid "%pB: can not represent section for symbol `%s' in a.out object file format"
msgstr ""
-#: aoutx.h:1579 vms-alpha.c:8429
+#: aoutx.h:1565 vms-alpha.c:8473
msgid "*unknown*"
-msgstr ""
+msgstr "*უცნáƒáƒ‘ი*"
-#: aoutx.h:1715 pdp11.c:1579
+#: aoutx.h:1701 pdp11.c:1563
#, c-format
msgid "%pB: invalid string offset %<PRIu64> >= %<PRIu64>"
msgstr ""
-#: aoutx.h:1963
+#: aoutx.h:1945
#, c-format
msgid "%pB: unsupported AOUT relocation size: %d"
msgstr ""
-#: aoutx.h:2407 aoutx.h:2425 pdp11.c:2062
+#: aoutx.h:2389 aoutx.h:2407 pdp11.c:2040
#, c-format
msgid "%pB: attempt to write out unknown reloc type"
msgstr ""
-#: aoutx.h:4081 pdp11.c:3447
+#: aoutx.h:4040 pdp11.c:3402
#, c-format
msgid "%pB: unsupported relocation type"
-msgstr ""
+msgstr "%pB: გáƒáƒ“áƒáƒ¢áƒáƒœáƒ˜áƒ¡ მხáƒáƒ áƒ“áƒáƒ£áƒ­áƒ”რელი ტიპი"
#. Unknown relocation.
-#: aoutx.h:4401 coff-alpha.c:601 coff-alpha.c:1521 coff-mips.c:356
-#: coff-rs6000.c:2955 coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:279
-#: elf-hppa.h:798 elf-hppa.h:826 elf-m10200.c:226 elf-m10300.c:813
-#: elf32-arc.c:532 elf32-arm.c:1985 elf32-avr.c:962 elf32-bfin.c:1063
-#: elf32-bfin.c:4686 elf32-cr16.c:654 elf32-cr16.c:684 elf32-cris.c:467
-#: elf32-crx.c:429 elf32-csky.c:991 elf32-d10v.c:234 elf32-d30v.c:522
-#: elf32-d30v.c:544 elf32-dlx.c:546 elf32-epiphany.c:372 elf32-fr30.c:381
-#: elf32-frv.c:2559 elf32-frv.c:6240 elf32-ft32.c:304 elf32-h8300.c:302
-#: elf32-i386.c:394 elf32-ip2k.c:1240 elf32-iq2000.c:442 elf32-lm32.c:496
-#: elf32-m32c.c:305 elf32-m32r.c:1286 elf32-m32r.c:1311 elf32-m32r.c:2209
-#: elf32-m68hc11.c:390 elf32-m68hc12.c:510 elf32-m68k.c:354 elf32-mcore.c:354
-#: elf32-mcore.c:440 elf32-mep.c:385 elf32-metag.c:871 elf32-microblaze.c:690
-#: elf32-microblaze.c:1002 elf32-mips.c:2239 elf32-moxie.c:137
-#: elf32-msp430.c:737 elf32-msp430.c:747 elf32-mt.c:241 elf32-nds32.c:3288
-#: elf32-nds32.c:3309 elf32-nds32.c:5078 elf32-nios2.c:3019 elf32-or1k.c:1087
-#: elf32-pj.c:326 elf32-ppc.c:900 elf32-ppc.c:913 elf32-pru.c:423
-#: elf32-rl78.c:291 elf32-rx.c:324 elf32-rx.c:333 elf32-s12z.c:296
-#: elf32-s390.c:347 elf32-score.c:2383 elf32-score7.c:2224 elf32-sh.c:437
-#: elf32-spu.c:163 elf32-tic6x.c:1498 elf32-tic6x.c:1508 elf32-tic6x.c:1527
-#: elf32-tic6x.c:1537 elf32-tic6x.c:2583 elf32-tilepro.c:792 elf32-v850.c:1902
-#: elf32-v850.c:1924 elf32-v850.c:4249 elf32-vax.c:289 elf32-visium.c:481
-#: elf32-wasm32.c:105 elf32-xgate.c:418 elf32-xstormy16.c:395
-#: elf32-xtensa.c:510 elf32-xtensa.c:544 elf32-z80.c:331 elf64-alpha.c:1114
-#: elf64-alpha.c:4073 elf64-alpha.c:4221 elf64-bpf.c:325 elf64-ia64-vms.c:255
-#: elf64-ia64-vms.c:3425 elf64-mips.c:3962 elf64-mips.c:3978 elf64-mmix.c:1264
-#: elf64-nfp.c:151 elf64-ppc.c:1026 elf64-ppc.c:1380 elf64-ppc.c:1389
-#: elf64-s390.c:328 elf64-s390.c:378 elf64-x86-64.c:269 elfn32-mips.c:3792
-#: elfxx-ia64.c:324 elfxx-loongarch.c:1382 elfxx-riscv.c:943 elfxx-sparc.c:589
-#: elfxx-sparc.c:639 elfxx-tilegx.c:907 elfxx-tilegx.c:947
-#: elfnn-aarch64.c:2215 elfnn-aarch64.c:2313 elfnn-ia64.c:214
-#: elfnn-ia64.c:3820
+#: aoutx.h:4360 coff-alpha.c:604 coff-mips.c:356 coff-rs6000.c:3037
+#: coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:262 elf-hppa.h:798
+#: elf-hppa.h:826 elf-m10200.c:226 elf-m10300.c:813 elf32-arc.c:531
+#: elf32-arm.c:1985 elf32-avr.c:957 elf32-bfin.c:1063 elf32-bfin.c:4692
+#: elf32-cr16.c:654 elf32-cr16.c:684 elf32-cris.c:467 elf32-crx.c:429
+#: elf32-csky.c:991 elf32-d10v.c:234 elf32-d30v.c:522 elf32-d30v.c:544
+#: elf32-dlx.c:546 elf32-epiphany.c:373 elf32-fr30.c:381 elf32-frv.c:2558
+#: elf32-frv.c:6246 elf32-ft32.c:304 elf32-h8300.c:302 elf32-i386.c:394
+#: elf32-ip2k.c:1241 elf32-iq2000.c:442 elf32-lm32.c:495 elf32-m32c.c:305
+#: elf32-m32r.c:1286 elf32-m32r.c:1311 elf32-m32r.c:2211 elf32-m68hc11.c:390
+#: elf32-m68hc12.c:510 elf32-m68k.c:354 elf32-mcore.c:354 elf32-mcore.c:440
+#: elf32-mep.c:385 elf32-metag.c:871 elf32-microblaze.c:708
+#: elf32-microblaze.c:1015 elf32-mips.c:2242 elf32-moxie.c:137
+#: elf32-msp430.c:737 elf32-msp430.c:747 elf32-mt.c:241 elf32-nds32.c:3294
+#: elf32-nds32.c:3315 elf32-nds32.c:5084 elf32-or1k.c:1085 elf32-pj.c:326
+#: elf32-ppc.c:900 elf32-ppc.c:913 elf32-pru.c:423 elf32-rl78.c:291
+#: elf32-rx.c:324 elf32-rx.c:333 elf32-s12z.c:296 elf32-s390.c:347
+#: elf32-score.c:2373 elf32-score7.c:2214 elf32-sh.c:437 elf32-spu.c:163
+#: elf32-tic6x.c:1498 elf32-tic6x.c:1508 elf32-tic6x.c:1527 elf32-tic6x.c:1537
+#: elf32-tic6x.c:2575 elf32-tilepro.c:791 elf32-v850.c:1902 elf32-v850.c:1924
+#: elf32-v850.c:4254 elf32-vax.c:288 elf32-visium.c:481 elf32-wasm32.c:105
+#: elf32-xgate.c:418 elf32-xstormy16.c:395 elf32-xtensa.c:510
+#: elf32-xtensa.c:544 elf32-z80.c:331 elf64-alpha.c:1112 elf64-alpha.c:4058
+#: elf64-alpha.c:4206 elf64-bpf.c:132 elf64-ia64-vms.c:255
+#: elf64-ia64-vms.c:3428 elf64-mips.c:3965 elf64-mips.c:3981 elf64-mmix.c:1260
+#: elf64-nfp.c:151 elf64-ppc.c:1031 elf64-ppc.c:1385 elf64-ppc.c:1394
+#: elf64-s390.c:331 elf64-s390.c:381 elf64-x86-64.c:305 elf64-x86-64.c:2558
+#: elfn32-mips.c:3799 elfxx-ia64.c:324 elfxx-loongarch.c:1897
+#: elfxx-riscv.c:1068 elfxx-sparc.c:589 elfxx-sparc.c:639 elfxx-tilegx.c:907
+#: elfxx-tilegx.c:947 elfnn-aarch64.c:2215 elfnn-aarch64.c:2316
+#: elfnn-ia64.c:214 elfnn-ia64.c:3823 elfnn-kvx.c:259
#, c-format
msgid "%pB: unsupported relocation type %#x"
msgstr ""
-#: aoutx.h:5428 pdp11.c:3870
+#: aoutx.h:5380 pdp11.c:3818
#, c-format
msgid "%pB: relocatable link from %s to %s not supported"
msgstr ""
@@ -114,155 +119,146 @@ msgstr ""
msgid "%pB: cannot allocate memory for local GOT entries"
msgstr ""
-#: archive.c:733
-msgid "%F%P: %pB(%s): error opening thin archive member: %E\n"
+#: archive.c:748
+msgid "%P: %pB(%s): error opening thin archive member: %E\n"
msgstr ""
-#: archive.c:2262
+#: archive.c:2282
msgid "warning: writing archive was slow: rewriting timestamp"
msgstr ""
-#: archive.c:2329 archive.c:2390 elflink.c:4760 linker.c:1431
+#: archive.c:2351 archive.c:2408 elflink.c:4956 linker.c:1470
#, c-format
msgid "%pB: plugin needed to handle lto object"
msgstr ""
-#: archive.c:2616
+#: archive.c:2640
msgid "Reading archive file mod timestamp"
msgstr ""
-#: archive.c:2640
+#: archive.c:2671
msgid "Writing updated armap timestamp"
msgstr ""
-#: bfd.c:708
+#: bfd.c:793
msgid "no error"
msgstr "შეცდáƒáƒ›áƒ˜áƒ¡ გáƒáƒ áƒ”შე"
-#: bfd.c:709
+#: bfd.c:794
msgid "system call error"
msgstr "სისტემური ფუნქციის გáƒáƒ›áƒáƒ«áƒáƒ®áƒ”ბის შეცდáƒáƒ›áƒ"
-#: bfd.c:710
+#: bfd.c:795
msgid "invalid bfd target"
msgstr "bfd-ის áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ სáƒáƒ›áƒ˜áƒ–ნე"
-#: bfd.c:711
+#: bfd.c:796
msgid "file in wrong format"
msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ ფáƒáƒ˜áƒšáƒ˜áƒ¡ ფáƒáƒ áƒ›áƒáƒ¢áƒ˜"
-#: bfd.c:712
+#: bfd.c:797
msgid "archive object file in wrong format"
msgstr ""
-#: bfd.c:713
+#: bfd.c:798
msgid "invalid operation"
msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ áƒáƒžáƒ”რáƒáƒªáƒ˜áƒ"
-#: bfd.c:714
+#: bfd.c:799
msgid "memory exhausted"
msgstr "მეხსიერებრგáƒáƒ“áƒáƒ•სებულიáƒ"
-#: bfd.c:715
+#: bfd.c:800
msgid "no symbols"
msgstr "სიმბáƒáƒšáƒáƒ”ბის გáƒáƒ áƒ”შე"
-#: bfd.c:716
+#: bfd.c:801
msgid "archive has no index; run ranlib to add one"
msgstr ""
-#: bfd.c:717
+#: bfd.c:802
msgid "no more archived files"
msgstr "მეტი დáƒáƒáƒ áƒ¥áƒ˜áƒ•ებული ფáƒáƒ˜áƒšáƒ˜ ვერ ვიპáƒáƒ•ე"
-#: bfd.c:718
+#: bfd.c:803
msgid "malformed archive"
msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ áƒáƒ áƒ¥áƒ˜áƒ•ი"
-#: bfd.c:719
+#: bfd.c:804
msgid "DSO missing from command line"
msgstr ""
-#: bfd.c:720
+#: bfd.c:805
msgid "file format not recognized"
msgstr "ფáƒáƒ˜áƒšáƒ˜áƒ¡ ფáƒáƒ áƒ›áƒáƒ¢áƒ˜ უცნáƒáƒ‘იáƒ"
-#: bfd.c:721
+#: bfd.c:806
msgid "file format is ambiguous"
msgstr "ფáƒáƒ˜áƒšáƒ˜áƒ¡ ფáƒáƒ áƒ›áƒáƒ¢áƒ˜ გáƒáƒ£áƒ áƒ™áƒ•ეველიáƒ"
-#: bfd.c:722
+#: bfd.c:807
msgid "section has no contents"
msgstr "სექციáƒáƒ¡ შემცველáƒáƒ‘რáƒáƒ  გáƒáƒáƒ©áƒœáƒ˜áƒ"
-#: bfd.c:723
+#: bfd.c:808
msgid "nonrepresentable section on output"
msgstr ""
-#: bfd.c:724
+#: bfd.c:809
msgid "symbol needs debug section which does not exist"
msgstr ""
-#: bfd.c:725
+#: bfd.c:810
msgid "bad value"
msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ მნიშვნელáƒáƒ‘áƒ"
-#: bfd.c:726
+#: bfd.c:811
msgid "file truncated"
msgstr "ფáƒáƒ˜áƒšáƒ˜ წáƒáƒ™áƒ•ეთილიáƒ"
-#: bfd.c:727
+#: bfd.c:812
msgid "file too big"
msgstr "ფáƒáƒ˜áƒšáƒ˜ .ძáƒáƒšáƒ˜áƒáƒœ დიდიáƒ"
-#: bfd.c:728
+#: bfd.c:813
msgid "sorry, cannot handle this file"
msgstr "áƒáƒ› ფáƒáƒ˜áƒšáƒ˜áƒ¡ დáƒáƒ›áƒ£áƒ¨áƒáƒ•ებრáƒáƒ  შემიძლიáƒ"
-#: bfd.c:729
+#: bfd.c:814
#, c-format
msgid "error reading %s: %s"
msgstr "შეცდáƒáƒ›áƒ '%s'-ის კითხვისáƒáƒ¡. %s"
-#: bfd.c:730
+#: bfd.c:815
msgid "#<invalid error code>"
msgstr "#<invalid error code>"
-#: bfd.c:1775
+#: bfd.c:2266
#, c-format
msgid "BFD %s assertion fail %s:%d"
msgstr ""
-#: bfd.c:1788
+#: bfd.c:2279
#, c-format
-msgid "BFD %s internal error, aborting at %s:%d in %s\n"
+msgid "%s: BFD %s internal error, aborting at %s:%d in %s\n"
msgstr ""
-#: bfd.c:1793
+#: bfd.c:2283
#, c-format
-msgid "BFD %s internal error, aborting at %s:%d\n"
+msgid "%s: BFD %s internal error, aborting at %s:%d\n"
msgstr ""
-#: bfd.c:1795
+#: bfd.c:2286
+#, c-format
msgid "Please report this bug.\n"
msgstr "გთხáƒáƒ•თ გáƒáƒ“áƒáƒáƒ’ზáƒáƒ•ნáƒáƒ— áƒáƒœáƒ’áƒáƒ áƒ˜áƒ¨áƒ˜ áƒáƒ› შეცდáƒáƒ›áƒ˜áƒ¡ შესáƒáƒ®áƒ”ბ.\n"
-#: bfdwin.c:207
-#, c-format
-msgid "not mapping: data=%lx mapped=%d\n"
-msgstr ""
-
-#: bfdwin.c:210
-#, c-format
-msgid "not mapping: env var not set\n"
-msgstr ""
-
#: binary.c:277
#, c-format
msgid "warning: writing section `%pA' at huge (ie negative) file offset"
msgstr ""
-#: cache.c:275
+#: cache.c:290
#, c-format
msgid "reopening %pB: %s"
msgstr "%pB-ის თáƒáƒ•იდáƒáƒœ გáƒáƒ®áƒ¡áƒœáƒ: %s"
@@ -272,26 +268,47 @@ msgstr "%pB-ის თáƒáƒ•იდáƒáƒœ გáƒáƒ®áƒ¡áƒœáƒ: %s"
msgid "%pB: cannot handle compressed Alpha binaries; use compiler flags, or objZ, to generate uncompressed binaries"
msgstr ""
-#: coff-alpha.c:857 coff-alpha.c:894 coff-alpha.c:1963 coff-mips.c:959
+#: coff-alpha.c:914 coff-alpha.c:941 coff-alpha.c:2009 coff-mips.c:948
msgid "GP relative relocation used when GP not defined"
msgstr ""
-#: coff-alpha.c:1450
+#: coff-alpha.c:1177 coff-z80.c:351 coff-z8k.c:214 elf32-nds32.c:13195
+#: elfxx-mips.c:13594 reloc.c:8602 reloc16.c:314
+#, c-format
+msgid "%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n"
+msgstr ""
+
+#: coff-alpha.c:1183 coff-z80.c:477 coff-z8k.c:378 elfxx-mips.c:13604
+#: reloc.c:8612
+#, c-format
+msgid "%X%P: %pB(%pA): relocation \"%pR\" is not supported\n"
+msgstr ""
+
+#: coff-alpha.c:1189 elfxx-mips.c:13613 reloc.c:8621
+#, c-format
+msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"
+msgstr ""
+
+#: coff-alpha.c:1515
msgid "using multiple gp values"
msgstr ""
-#: coff-alpha.c:1508 coff-alpha.c:1514 elf.c:9591 elf32-mcore.c:100
-#: elf32-mcore.c:455 elf32-ppc.c:7651 elf32-ppc.c:8846 elf64-ppc.c:16806
+#: coff-alpha.c:1992
#, c-format
-msgid "%pB: %s unsupported"
-msgstr "%pB: %s მხáƒáƒ áƒ“áƒáƒ­áƒ”რილი áƒáƒ áƒáƒ"
+msgid "%X%P: %pB(%pA): relocation out of range\n"
+msgstr ""
+
+#: coff-alpha.c:2004
+#, c-format
+msgid "%X%P: %pB(%pA): relocation is not supported\n"
+msgstr ""
-#: coff-go32.c:164 coffswap.h:819
+#: coff-go32.c:167 coffswap.h:812
#, c-format
msgid "%pB: warning: %s: line number overflow: 0x%lx > 0xffff"
msgstr "%pB: გáƒáƒ¤áƒ áƒ—ხილებáƒ: %s: ხáƒáƒ–ის ნáƒáƒ›áƒ áƒ”ბის გáƒáƒ“áƒáƒ•სებáƒ: 0x%lx > 0xffff"
-#: coff-mips.c:649 elf32-mips.c:1743 elf32-score.c:433 elf32-score7.c:333
+#: coff-mips.c:638 elf32-mips.c:1743 elf32-score.c:433 elf32-score7.c:333
#: elf64-mips.c:3450 elfn32-mips.c:3277
msgid "GP relative relocation when _gp not defined"
msgstr ""
@@ -306,92 +323,96 @@ msgstr ""
msgid "%pB: unsupported swap_aux_out for storage class %#x"
msgstr ""
-#: coff-rs6000.c:3045
+#: coff-rs6000.c:3127
#, c-format
msgid "%pB: TOC reloc at %#<PRIx64> to symbol `%s' with no TOC entry"
msgstr ""
-#: coff-rs6000.c:3169 coff64-rs6000.c:848
+#: coff-rs6000.c:3251 coff64-rs6000.c:848
#, c-format
msgid "Unable to find the stub entry targeting %s"
msgstr ""
-#: coff-rs6000.c:3284
+#: coff-rs6000.c:3366
#, c-format
msgid "%pB: TLS relocation at 0x%<PRIx64> over non-TLS symbol %s (0x%x)\n"
msgstr ""
-#: coff-rs6000.c:3297
+#: coff-rs6000.c:3379
#, c-format
msgid "%pB: TLS local relocation at 0x%<PRIx64> over imported symbol %s\n"
msgstr ""
-#: coff-rs6000.c:3703
+#: coff-rs6000.c:3785
#, c-format
msgid "%pB: relocation (%d) at 0x%<PRIx64> has wrong r_rsize (0x%x)\n"
msgstr ""
-#: coff-rs6000.c:3965 coff64-rs6000.c:2037
+#: coff-rs6000.c:4047 coff64-rs6000.c:2021
#, c-format
msgid "%pB: symbol `%s' has unrecognized smclas %d"
msgstr ""
-#: coff-sh.c:779 elf32-sh.c:520
+#: coff-sh.c:781 elf32-sh.c:521
#, c-format
msgid "%pB: %#<PRIx64>: warning: bad R_SH_USES offset"
msgstr ""
-#: coff-sh.c:790
+#: coff-sh.c:792
#, c-format
msgid "%pB: %#<PRIx64>: warning: R_SH_USES points to unrecognized insn %#x"
msgstr ""
-#: coff-sh.c:808 elf32-sh.c:551
+#: coff-sh.c:810 elf32-sh.c:552
#, c-format
msgid "%pB: %#<PRIx64>: warning: bad R_SH_USES load offset"
msgstr ""
-#: coff-sh.c:833 elf32-sh.c:567
+#: coff-sh.c:835 elf32-sh.c:568
#, c-format
msgid "%pB: %#<PRIx64>: warning: could not find expected reloc"
msgstr ""
-#: coff-sh.c:850 elf32-sh.c:596
+#: coff-sh.c:852 elf32-sh.c:597
#, c-format
msgid "%pB: %#<PRIx64>: warning: symbol in unexpected section"
msgstr ""
-#: coff-sh.c:976 elf32-sh.c:726
+#: coff-sh.c:973 elf32-sh.c:727
#, c-format
msgid "%pB: %#<PRIx64>: warning: could not find expected COUNT reloc"
msgstr ""
-#: coff-sh.c:986 elf32-sh.c:737
+#: coff-sh.c:983 elf32-sh.c:738
#, c-format
msgid "%pB: %#<PRIx64>: warning: bad count"
msgstr "%pB: %#<PRIx64>: გáƒáƒ¤áƒ áƒ—ხილებáƒ: áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ რáƒáƒáƒ“ენáƒáƒ‘áƒ"
-#: coff-sh.c:1357 coff-sh.c:2645 elf32-sh.c:1137 elf32-sh.c:1504
+#: coff-sh.c:1349 coff-sh.c:2636 elf32-sh.c:1138 elf32-sh.c:1506
#, c-format
msgid "%pB: %#<PRIx64>: fatal: reloc overflow while relaxing"
msgstr ""
-#: coff-sh.c:1452
+#: coff-sh.c:1443
#, c-format
msgid "%pB: fatal: generic symbols retrieved before relaxing"
msgstr ""
-#: coff-sh.c:2782 cofflink.c:2915
+#: coff-sh.c:2773 cofflink.c:2986
#, c-format
msgid "%pB: illegal symbol index %ld in relocs"
msgstr ""
-#: coff-tic30.c:172 coff-tic4x.c:228 coff-tic54x.c:366 coff-z80.c:325
-#: coff-z8k.c:188 coffcode.h:5177
+#: coff-tic30.c:172 coff-tic4x.c:228 coff-tic54x.c:338 coff-z80.c:325
+#: coff-z8k.c:188 coffcode.h:5305
#, c-format
msgid "%pB: warning: illegal symbol index %ld in relocs"
msgstr ""
+#: coff-x86_64.c:147
+msgid "R_AMD64_IMAGEBASE with __ImageBase undefined"
+msgstr ""
+
#: coff64-rs6000.c:447 coff64-rs6000.c:554
#, c-format
msgid "%pB: C_STAT isn't supported by XCOFF64"
@@ -407,205 +428,198 @@ msgstr ""
msgid "%pB: relocation (%d) at (0x%<PRIx64>) has wrong r_rsize (0x%x)\n"
msgstr ""
-#: coffcode.h:990
+#: coffcode.h:951
#, c-format
msgid "%pB: unable to load COMDAT section name"
msgstr ""
-#. Malformed input files can trigger this test.
-#. cf PR 21781.
-#: coffcode.h:1025
+#: coffcode.h:976
#, c-format
-msgid "%pB: error: unexpected symbol '%s' in COMDAT section"
+msgid "%pB: warning: no symbol for section '%s' found"
msgstr ""
-#: coffcode.h:1037
+#: coffcode.h:1148
#, c-format
-msgid "%pB: warning: COMDAT symbol '%s' does not match section name '%s'"
+msgid "%pB: error: unexpected symbol '%s' in COMDAT section"
msgstr ""
-#: coffcode.h:1047
+#: coffcode.h:1159
#, c-format
-msgid "%pB: warning: no symbol for section '%s' found"
+msgid "%pB: warning: COMDAT symbol '%s' does not match section name '%s'"
msgstr ""
#. Generate a warning message rather using the 'unhandled'
#. variable as this will allow some .sys files generate by
#. other toolchains to be processed. See bugzilla issue 196.
-#: coffcode.h:1278
+#: coffcode.h:1267
#, c-format
msgid "%pB: warning: ignoring section flag %s in section %s"
msgstr ""
-#: coffcode.h:1347
+#: coffcode.h:1337
#, c-format
msgid "%pB (%s): section flag %s (%#lx) ignored"
msgstr ""
-#: coffcode.h:1960
+#: coffcode.h:1945
#, c-format
msgid "%pB: overflow reloc count too small"
msgstr ""
-#: coffcode.h:1969 coffcode.h:2034
+#: coffcode.h:1954 coffcode.h:2019
#, c-format
msgid "%pB: warning: claims to have 0xffff relocs, without overflow"
msgstr ""
-#: coffcode.h:2407
+#: coffcode.h:2402
#, c-format
msgid "unrecognized TI COFF target id '0x%x'"
msgstr ""
-#: coffcode.h:2685
+#: coffcode.h:2681
#, c-format
msgid "%pB: reloc against a non-existent symbol index: %ld"
msgstr ""
-#: coffcode.h:3148
+#: coffcode.h:3153
#, c-format
msgid "%pB: too many sections (%d)"
msgstr ""
-#: coffcode.h:3584
+#: coffcode.h:3681
#, c-format
msgid "%pB: section %pA: string table overflow at offset %ld"
msgstr ""
-#: coffcode.h:3691
+#: coffcode.h:3782
#, c-format
msgid "%pB:%s section %s: alignment 2**%u not representable"
msgstr ""
-#: coffcode.h:4415
+#: coffcode.h:4523
#, c-format
msgid "%pB: warning: line number table read failed"
msgstr ""
-#: coffcode.h:4461 coffcode.h:4475
+#: coffcode.h:4569 coffcode.h:4583
#, c-format
msgid "%pB: warning: illegal symbol index 0x%lx in line number entry %d"
msgstr ""
-#: coffcode.h:4489
+#: coffcode.h:4597
#, c-format
msgid "%pB: warning: illegal symbol in line number entry %d"
msgstr ""
-#: coffcode.h:4502
+#: coffcode.h:4610
#, c-format
msgid "%pB: warning: duplicate line number information for `%s'"
msgstr ""
-#: coffcode.h:4921
+#: coffcode.h:5034
#, c-format
msgid "%pB: unrecognized storage class %d for %s symbol `%s'"
msgstr ""
-#: coffcode.h:5061
+#: coffcode.h:5174
#, c-format
msgid "warning: %pB: local symbol `%s' has no section"
msgstr ""
-#: coffcode.h:5217
+#: coffcode.h:5345
#, c-format
msgid "%pB: illegal relocation type %d at address %#<PRIx64>"
msgstr ""
-#: coffgen.c:175 elf.c:1224
+#: coffgen.c:257 elf.c:1060
#, c-format
msgid "%pB: unable to compress section %s"
msgstr ""
-#: coffgen.c:185 elf.c:1234
+#: coffgen.c:267 elf.c:1070
#, c-format
msgid "%pB: unable to decompress section %s"
msgstr ""
-#: coffgen.c:1645
+#: coffgen.c:1795
#, c-format
msgid "%pB: bad string table size %<PRIu64>"
msgstr ""
-#: coffgen.c:1818 coffgen.c:1864 coffgen.c:1915 coffgen.c:1933 cofflink.c:1980
-#: elf.c:1924 xcofflink.c:5541
+#: coffgen.c:2179 coffgen.c:2318 cofflink.c:2051 ecoff.c:1444 elf.c:2313
+#: elf.c:2345 pef.c:214 syms.c:789 xcofflink.c:384 xcofflink.c:5577
msgid "<corrupt>"
msgstr "<corrupt>"
-#: coffgen.c:2073
+#: coffgen.c:2208
#, c-format
msgid "<corrupt info> %s"
msgstr "<corrupt info> %s"
-#: coffgen.c:2677 elflink.c:15129 linker.c:2963
-msgid "%F%P: already_linked_table: %E\n"
-msgstr "%F%P: already_linked_table: %E\n"
+#: coffgen.c:2818 elflink.c:15490 linker.c:3061
+msgid "%P: already_linked_table: %E\n"
+msgstr "%P: already_linked_table: %E\n"
-#: coffgen.c:3019 elflink.c:14069
+#: coffgen.c:3175 elflink.c:14430
#, c-format
msgid "removing unused section '%pA' in file '%pB'"
msgstr ""
-#: coffgen.c:3096 elflink.c:14299
+#: coffgen.c:3252 elflink.c:14661
msgid "warning: gc-sections option ignored"
msgstr ""
-#: cofflink.c:366
+#: cofflink.c:399
#, c-format
msgid "warning: symbol `%s' is both section and non-section"
msgstr ""
-#: cofflink.c:471 elf64-ia64-vms.c:5196 elflink.c:5357
+#: cofflink.c:504 elf64-ia64-vms.c:5200 elflink.c:5587
#, c-format
msgid "warning: type of symbol `%s' changed from %d to %d in %pB"
msgstr ""
-#: cofflink.c:2308
+#: cofflink.c:2379
#, c-format
msgid "%pB: relocs in section `%pA', but it has no contents"
msgstr ""
-#: cofflink.c:2371 elflink.c:11510
+#: cofflink.c:2442 elflink.c:11880
#, c-format
msgid "%X`%s' referenced in section `%pA' of %pB: defined in discarded section `%pA' of %pB\n"
msgstr ""
-#: cofflink.c:2566
+#: cofflink.c:2637
#, c-format
msgid "%pB: stripping non-representable symbol '%s' (value 0x%<PRIx64>)"
msgstr ""
-#: cofflink.c:2684
+#: cofflink.c:2755
#, c-format
msgid "%pB: %pA: reloc overflow: %#x > 0xffff"
msgstr ""
-#: cofflink.c:2692
+#: cofflink.c:2763
#, c-format
msgid "%pB: warning: %pA: line number overflow: %#x > 0xffff"
msgstr ""
-#: cofflink.c:3085
+#: cofflink.c:3157
#, c-format
msgid "%pB: bad reloc address %#<PRIx64> in section `%pA'"
msgstr ""
-#: coffswap.h:833
+#: coffswap.h:826
#, c-format
msgid "%pB: %s: reloc overflow: 0x%lx > 0xffff"
msgstr ""
-#: compress.c:747 compress.c:764
+#: compress.c:732 compress.c:749 libbfd.c:1322
#, c-format
msgid "error: %pB(%pA) is too large (%#<PRIx64> bytes)"
msgstr ""
-#: cpu-arm.c:320 cpu-arm.c:332
-#, c-format
-msgid "error: %pB is compiled for the EP9312, whereas %pB is compiled for XScale"
-msgstr ""
-
-#: cpu-arm.c:468
+#: cpu-arm.c:438
#, c-format
msgid "warning: unable to update contents of %s section in %pB"
msgstr ""
@@ -615,182 +629,187 @@ msgstr ""
msgid "DWARF error: can't find %s section."
msgstr ""
+#: dwarf2.c:710
+#, c-format
+msgid "DWARF error: section %s has no contents"
+msgstr "DWARF შეცდáƒáƒ›áƒ: სექციáƒáƒ¡ %s შემცველáƒáƒ‘რáƒáƒ  გáƒáƒáƒ©áƒœáƒ˜áƒ"
+
#. PR 26946
-#: dwarf2.c:711
+#: dwarf2.c:719
#, c-format
msgid "DWARF error: section %s is too big"
msgstr ""
-#: dwarf2.c:746
+#: dwarf2.c:754
#, c-format
msgid "DWARF error: offset (%<PRIu64>) greater than or equal to %s size (%<PRIu64>)"
msgstr ""
-#: dwarf2.c:1493
+#: dwarf2.c:1501
msgid "DWARF error: info pointer extends beyond end of attributes"
msgstr ""
-#: dwarf2.c:1685
+#: dwarf2.c:1693
#, c-format
msgid "DWARF error: invalid or unhandled FORM value: %#x"
msgstr ""
-#: dwarf2.c:2032
+#: dwarf2.c:2050
msgid "DWARF error: mangled line number section (bad file number)"
msgstr ""
-#: dwarf2.c:2576
+#: dwarf2.c:2614
msgid "DWARF error: zero format count"
-msgstr ""
+msgstr "DWARF შეცდáƒáƒ›áƒ: ნულáƒáƒ•áƒáƒœáƒ˜ ფáƒáƒ áƒ›áƒáƒ¢áƒ”ბის რიცხვი"
-#: dwarf2.c:2586
+#: dwarf2.c:2624
#, c-format
msgid "DWARF error: data count (%<PRIx64>) larger than buffer size"
msgstr ""
-#: dwarf2.c:2625
+#: dwarf2.c:2663
#, c-format
msgid "DWARF error: unknown format content type %<PRIu64>"
msgstr ""
-#: dwarf2.c:2698
+#: dwarf2.c:2736
#, c-format
msgid "DWARF error: line info section is too small (%<PRId64>)"
msgstr ""
-#: dwarf2.c:2725
+#: dwarf2.c:2763
#, c-format
msgid "DWARF error: line info data is bigger (%#<PRIx64>) than the space remaining in the section (%#lx)"
msgstr ""
-#: dwarf2.c:2738
+#: dwarf2.c:2776
#, c-format
msgid "DWARF error: unhandled .debug_line version %d"
msgstr ""
-#: dwarf2.c:2747
+#: dwarf2.c:2785
msgid "DWARF error: ran out of room reading prologue"
msgstr ""
-#: dwarf2.c:2763
+#: dwarf2.c:2801
#, c-format
msgid "DWARF error: line info unsupported segment selector size %u"
msgstr ""
-#: dwarf2.c:2785
+#: dwarf2.c:2823
msgid "DWARF error: invalid maximum operations per instruction"
msgstr ""
-#: dwarf2.c:2797
+#: dwarf2.c:2835
msgid "DWARF error: ran out of room reading opcodes"
msgstr ""
-#: dwarf2.c:2975
+#: dwarf2.c:3012
msgid "DWARF error: mangled line number section"
msgstr ""
-#: dwarf2.c:3446
+#: dwarf2.c:3483
msgid "DWARF error: abstract instance recursion detected"
msgstr ""
-#: dwarf2.c:3480 dwarf2.c:3570
+#: dwarf2.c:3517 dwarf2.c:3607
msgid "DWARF error: invalid abstract instance DIE ref"
msgstr ""
-#: dwarf2.c:3496
+#: dwarf2.c:3533
#, c-format
msgid "DWARF error: unable to read alt ref %<PRIu64>"
msgstr ""
-#: dwarf2.c:3548
+#: dwarf2.c:3585
#, c-format
msgid "DWARF error: unable to locate abstract instance DIE ref %<PRIu64>"
msgstr ""
-#: dwarf2.c:3585 dwarf2.c:3901 dwarf2.c:4471
+#: dwarf2.c:3622 dwarf2.c:3938 dwarf2.c:4511
#, c-format
msgid "DWARF error: could not find abbrev number %u"
msgstr ""
-#: dwarf2.c:4171
+#: dwarf2.c:4211
#, c-format
msgid "DWARF error: could not find variable specification at offset 0x%lx"
msgstr ""
-#: dwarf2.c:4317 dwarf2.c:4571
+#: dwarf2.c:4357 dwarf2.c:4611
msgid "DWARF error: DW_AT_comp_dir attribute encountered with a non-string form"
msgstr ""
-#: dwarf2.c:4388
+#: dwarf2.c:4428
#, c-format
msgid "DWARF error: found dwarf version '%u', this reader only handles version 2, 3, 4 and 5 information"
msgstr ""
-#: dwarf2.c:4435
+#: dwarf2.c:4475
#, c-format
msgid "DWARF error: found address size '%u', this reader can not handle sizes greater than '%u'"
msgstr ""
-#: ecoff.c:940
+#: ecoff.c:1005
#, c-format
msgid "%pB: warning: isymMax (%ld) is greater than ifdMax (%ld)"
msgstr ""
-#: ecoff.c:1236
+#: ecoff.c:1301
#, c-format
msgid "unknown basic type %d"
-msgstr ""
+msgstr "უცნáƒáƒ‘ი ძირითáƒáƒ“ი ტიპი %d"
-#: ecoff.c:1492
+#: ecoff.c:1559
#, c-format
msgid ""
"\n"
" End+1 symbol: %ld"
msgstr ""
-#: ecoff.c:1499 ecoff.c:1502
+#: ecoff.c:1566 ecoff.c:1569
#, c-format
msgid ""
"\n"
" First symbol: %ld"
msgstr ""
-#: ecoff.c:1517
+#: ecoff.c:1584
#, c-format
msgid ""
"\n"
" End+1 symbol: %-7ld Type: %s"
msgstr ""
-#: ecoff.c:1525
+#: ecoff.c:1592
#, c-format
msgid ""
"\n"
" Local symbol: %ld"
msgstr ""
-#: ecoff.c:1533
+#: ecoff.c:1600
#, c-format
msgid ""
"\n"
" struct; End+1 symbol: %ld"
msgstr ""
-#: ecoff.c:1538
+#: ecoff.c:1605
#, c-format
msgid ""
"\n"
" union; End+1 symbol: %ld"
msgstr ""
-#: ecoff.c:1543
+#: ecoff.c:1610
#, c-format
msgid ""
"\n"
" enum; End+1 symbol: %ld"
msgstr ""
-#: ecoff.c:1551
+#: ecoff.c:1618
#, c-format
msgid ""
"\n"
@@ -799,130 +818,137 @@ msgstr ""
"\n"
" ტიპი: %s"
-#: elf-attrs.c:477
+#: elf-attrs.c:424 elf-attrs.c:454 elf-attrs.c:596
+msgid "error adding attribute"
+msgstr "áƒáƒ¢áƒ áƒ˜áƒ‘უტის დáƒáƒ›áƒáƒ¢áƒ”ბის შეცდáƒáƒ›áƒ"
+
+#: elf-attrs.c:513
+#, c-format
+msgid "%pB: error: attribute section length too small: %ld"
+msgstr ""
+
+#: elf-attrs.c:623
#, c-format
msgid "%pB: error: attribute section '%pA' too big: %#llx"
msgstr ""
-#: elf-attrs.c:514
+#: elf-attrs.c:642
#, c-format
-msgid "%pB: error: attribute section length too small: %ld"
+msgid "%pB: error: unknown attributes version '%c'(%d) - expecting 'A'\n"
msgstr ""
-#: elf-attrs.c:644
+#: elf-attrs.c:688
#, c-format
msgid "error: %pB: object has vendor-specific contents that must be processed by the '%s' toolchain"
msgstr ""
-#: elf-attrs.c:654
+#: elf-attrs.c:698
#, c-format
msgid "error: %pB: object tag '%d, %s' is incompatible with tag '%d, %s'"
msgstr ""
-#: elf-eh-frame.c:944
+#: elf-eh-frame.c:952
#, c-format
msgid "discarding zero address range FDE in %pB(%pA).\n"
msgstr ""
-#: elf-eh-frame.c:1049
+#: elf-eh-frame.c:1057
#, c-format
msgid "error in %pB(%pA); no .eh_frame_hdr table will be created"
msgstr ""
-#: elf-eh-frame.c:1541
+#: elf-eh-frame.c:1548
#, c-format
msgid "FDE encoding in %pB(%pA) prevents .eh_frame_hdr table being created"
msgstr ""
-#: elf-eh-frame.c:1548
+#: elf-eh-frame.c:1555
msgid "further warnings about FDE encoding preventing .eh_frame_hdr generation dropped"
msgstr ""
-#: elf-eh-frame.c:1867
+#: elf-eh-frame.c:1878
#, c-format
msgid "%pB: %pA not in order"
msgstr ""
-#: elf-eh-frame.c:1881
+#: elf-eh-frame.c:1892
#, c-format
msgid "%pB: %pA invalid input section size"
msgstr ""
-#: elf-eh-frame.c:1889
+#: elf-eh-frame.c:1900
#, c-format
msgid "%pB: %pA points past end of text section"
msgstr ""
-#: elf-eh-frame.c:2142
+#: elf-eh-frame.c:2153
msgid "DW_EH_PE_datarel unspecified for this architecture"
msgstr ""
-#: elf-eh-frame.c:2313
+#: elf-eh-frame.c:2323
#, c-format
msgid "invalid output section for .eh_frame_entry: %pA"
msgstr ""
-#: elf-eh-frame.c:2336
+#: elf-eh-frame.c:2346
#, c-format
msgid "invalid contents in %pA section"
msgstr ""
-#: elf-eh-frame.c:2492
+#: elf-eh-frame.c:2500
msgid ".eh_frame_hdr entry overflow"
msgstr ""
-#: elf-eh-frame.c:2494
+#: elf-eh-frame.c:2502
msgid ".eh_frame_hdr refers to overlapping FDEs"
msgstr ""
#. xgettext:c-format.
-#: elf-ifunc.c:144 elfnn-loongarch.c:1278
+#: elf-ifunc.c:144 elfnn-loongarch.c:1713
#, c-format
-msgid "%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%pB' can not be used when making an executable; recompile with -fPIE and relink with -pie\n"
+msgid "%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%pB' can not be used when making an executable; recompile with -fPIE and relink with -pie\n"
msgstr ""
-#: elf-m10200.c:434 elf-m10300.c:2146 elf32-bfin.c:3133 elf32-cr16.c:1429
-#: elf32-cris.c:2034 elf32-crx.c:922 elf32-d10v.c:510 elf32-epiphany.c:562
-#: elf32-fr30.c:594 elf32-frv.c:4049 elf32-ft32.c:492 elf32-h8300.c:523
-#: elf32-ip2k.c:1477 elf32-iq2000.c:691 elf32-lm32.c:1070 elf32-m32c.c:624
-#: elf32-m32r.c:2837 elf32-m68hc1x.c:1271 elf32-mep.c:522 elf32-metag.c:1984
-#: elf32-microblaze.c:1664 elf32-moxie.c:288 elf32-mt.c:402 elf32-nds32.c:6093
-#: elf32-or1k.c:1889 elf32-score.c:2734 elf32-score7.c:2545 elf32-spu.c:5085
-#: elf32-tilepro.c:3372 elf32-v850.c:2294 elf32-visium.c:680
-#: elf32-xstormy16.c:930 elf64-bpf.c:552 elf64-mmix.c:1541 elfxx-tilegx.c:3742
+#: elf-m10200.c:434 elf-m10300.c:2146 elf32-bfin.c:3132 elf32-cr16.c:1429
+#: elf32-cris.c:2033 elf32-crx.c:922 elf32-d10v.c:510 elf32-epiphany.c:563
+#: elf32-fr30.c:594 elf32-frv.c:4048 elf32-ft32.c:492 elf32-h8300.c:523
+#: elf32-ip2k.c:1478 elf32-iq2000.c:691 elf32-lm32.c:1069 elf32-m32c.c:624
+#: elf32-m32r.c:2839 elf32-m68hc1x.c:1271 elf32-mep.c:522 elf32-metag.c:1983
+#: elf32-microblaze.c:1677 elf32-moxie.c:288 elf32-mt.c:402 elf32-nds32.c:6099
+#: elf32-or1k.c:1895 elf32-score.c:2724 elf32-score7.c:2535 elf32-spu.c:5084
+#: elf32-tilepro.c:3371 elf32-v850.c:2297 elf32-visium.c:680
+#: elf32-xstormy16.c:931 elf64-bpf.c:339 elf64-mmix.c:1537 elfxx-tilegx.c:3744
msgid "internal error: out of range error"
msgstr "შიდრშეცდáƒáƒ›áƒ: დიáƒáƒžáƒáƒ–áƒáƒœáƒ¡ გáƒáƒ“áƒáƒªáƒ˜áƒšáƒ”ბის შეცდáƒáƒ›áƒ"
-#: elf-m10200.c:438 elf-m10300.c:2150 elf32-bfin.c:3137 elf32-cr16.c:1433
-#: elf32-cris.c:2038 elf32-crx.c:926 elf32-d10v.c:514 elf32-fr30.c:598
-#: elf32-frv.c:4053 elf32-ft32.c:496 elf32-h8300.c:527 elf32-iq2000.c:695
-#: elf32-lm32.c:1074 elf32-m32c.c:628 elf32-m32r.c:2841 elf32-m68hc1x.c:1275
-#: elf32-mep.c:526 elf32-metag.c:1988 elf32-microblaze.c:1668
-#: elf32-moxie.c:292 elf32-msp430.c:1510 elf32-nds32.c:6097 elf32-or1k.c:1893
-#: elf32-score.c:2738 elf32-score7.c:2549 elf32-spu.c:5089
-#: elf32-tilepro.c:3376 elf32-v850.c:2298 elf32-visium.c:684
-#: elf32-xstormy16.c:934 elf64-mmix.c:1545 elfxx-mips.c:10628
-#: elfxx-tilegx.c:3746
+#: elf-m10200.c:438 elf-m10300.c:2150 elf32-bfin.c:3136 elf32-cr16.c:1433
+#: elf32-cris.c:2037 elf32-crx.c:926 elf32-d10v.c:514 elf32-fr30.c:598
+#: elf32-frv.c:4052 elf32-ft32.c:496 elf32-h8300.c:527 elf32-iq2000.c:695
+#: elf32-lm32.c:1073 elf32-m32c.c:628 elf32-m32r.c:2843 elf32-m68hc1x.c:1275
+#: elf32-mep.c:526 elf32-metag.c:1987 elf32-microblaze.c:1681 elf32-moxie.c:292
+#: elf32-msp430.c:1510 elf32-nds32.c:6103 elf32-or1k.c:1899 elf32-score.c:2728
+#: elf32-score7.c:2539 elf32-spu.c:5088 elf32-tilepro.c:3375 elf32-v850.c:2301
+#: elf32-visium.c:684 elf32-xstormy16.c:935 elf64-mmix.c:1541
+#: elfxx-mips.c:10727 elfxx-tilegx.c:3748
msgid "internal error: unsupported relocation error"
msgstr ""
#: elf-m10200.c:442 elf32-cr16.c:1437 elf32-crx.c:930 elf32-d10v.c:518
-#: elf32-h8300.c:531 elf32-lm32.c:1078 elf32-m32r.c:2845 elf32-m68hc1x.c:1279
-#: elf32-microblaze.c:1672 elf32-nds32.c:6101 elf32-score.c:2742
-#: elf32-score7.c:2553 elf32-spu.c:5093
+#: elf32-h8300.c:531 elf32-lm32.c:1077 elf32-m32r.c:2847 elf32-m68hc1x.c:1279
+#: elf32-microblaze.c:1685 elf32-nds32.c:6107 elf32-score.c:2732
+#: elf32-score7.c:2543 elf32-spu.c:5092
msgid "internal error: dangerous error"
msgstr "შიდრშეცდáƒáƒ›áƒ: სáƒáƒ¨áƒ˜áƒ¨áƒ˜ შეცდáƒáƒ›áƒ"
-#: elf-m10200.c:446 elf-m10300.c:2167 elf32-bfin.c:3145 elf32-cr16.c:1441
-#: elf32-cris.c:2046 elf32-crx.c:934 elf32-d10v.c:522 elf32-epiphany.c:577
-#: elf32-fr30.c:606 elf32-frv.c:4061 elf32-ft32.c:504 elf32-h8300.c:535
-#: elf32-ip2k.c:1492 elf32-iq2000.c:703 elf32-lm32.c:1082 elf32-m32c.c:636
-#: elf32-m32r.c:2849 elf32-m68hc1x.c:1283 elf32-mep.c:534 elf32-metag.c:1996
-#: elf32-microblaze.c:1676 elf32-moxie.c:300 elf32-msp430.c:1518
-#: elf32-mt.c:410 elf32-nds32.c:6105 elf32-or1k.c:1901 elf32-score.c:2751
-#: elf32-score7.c:2557 elf32-spu.c:5097 elf32-tilepro.c:3384 elf32-v850.c:2318
-#: elf32-visium.c:692 elf32-xstormy16.c:942 elf64-bpf.c:565 elf64-mmix.c:1553
-#: elfxx-tilegx.c:3754
+#: elf-m10200.c:446 elf-m10300.c:2167 elf32-bfin.c:3144 elf32-cr16.c:1441
+#: elf32-cris.c:2045 elf32-crx.c:934 elf32-d10v.c:522 elf32-epiphany.c:578
+#: elf32-fr30.c:606 elf32-frv.c:4060 elf32-ft32.c:504 elf32-h8300.c:535
+#: elf32-ip2k.c:1493 elf32-iq2000.c:703 elf32-lm32.c:1081 elf32-m32c.c:636
+#: elf32-m32r.c:2851 elf32-m68hc1x.c:1283 elf32-mep.c:534 elf32-metag.c:1995
+#: elf32-microblaze.c:1689 elf32-moxie.c:300 elf32-msp430.c:1518 elf32-mt.c:410
+#: elf32-nds32.c:6111 elf32-or1k.c:1907 elf32-score.c:2741 elf32-score7.c:2547
+#: elf32-spu.c:5096 elf32-tilepro.c:3383 elf32-v850.c:2321 elf32-visium.c:692
+#: elf32-xstormy16.c:943 elf64-bpf.c:352 elf64-mmix.c:1549 elfxx-tilegx.c:3756
msgid "internal error: unknown error"
msgstr "შიდრშეცდáƒáƒ›áƒ: უცნáƒáƒ‘ი შეცდáƒáƒ›áƒ"
@@ -936,11 +962,11 @@ msgstr ""
msgid "%pB: %s' accessed both as normal and thread local symbol"
msgstr ""
-#: elf-m10300.c:2093 elf32-arm.c:13392 elf32-i386.c:3459 elf32-m32r.c:2331
-#: elf32-m68k.c:3929 elf32-s390.c:3080 elf32-sh.c:3671 elf32-tilepro.c:3275
-#: elf32-xtensa.c:3023 elf64-s390.c:3042 elf64-x86-64.c:4182
-#: elfxx-sparc.c:2917 elfxx-sparc.c:3814 elfxx-tilegx.c:3665
-#: elfnn-aarch64.c:5515 elfnn-aarch64.c:7120
+#: elf-m10300.c:2093 elf32-arm.c:13476 elf32-i386.c:3545 elf32-m32r.c:2333
+#: elf32-m68k.c:3931 elf32-s390.c:3074 elf32-sh.c:3674 elf32-tilepro.c:3274
+#: elf32-xtensa.c:3022 elf64-s390.c:3391 elf64-x86-64.c:5025 elfxx-sparc.c:2924
+#: elfxx-sparc.c:3820 elfxx-tilegx.c:3667 elfnn-aarch64.c:5743
+#: elfnn-aarch64.c:7361 elfnn-kvx.c:2773
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unresolvable %s relocation against symbol `%s'"
msgstr ""
@@ -958,184 +984,192 @@ msgstr ""
msgid "internal error: suspicious relocation type used in shared library"
msgstr ""
-#: elf-m10300.c:2650 elf32-avr.c:2488 elf32-frv.c:5621 elf64-ia64-vms.c:365
-#: elfxx-sparc.c:2684 reloc.c:8424 reloc16.c:155 elfnn-ia64.c:365
-msgid "%P%F: --relax and -r may not be used together\n"
+#: elf-m10300.c:2650 elf32-avr.c:2483 elf32-frv.c:5627 elf64-ia64-vms.c:365
+#: elfxx-sparc.c:2691 reloc.c:8376 reloc16.c:155 elfnn-ia64.c:365
+msgid "%P: --relax and -r may not be used together\n"
msgstr ""
-#: elf-properties.c:65
+#: elf-properties.c:121
#, c-format
msgid "%pB: out of memory in _bfd_elf_get_property"
msgstr ""
-#: elf-properties.c:91
+#: elf-properties.c:150
#, c-format
msgid "warning: %pB: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx"
msgstr ""
-#: elf-properties.c:112
+#: elf-properties.c:171
#, c-format
msgid "warning: %pB: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%x"
msgstr ""
-#: elf-properties.c:151
+#: elf-properties.c:210
#, c-format
msgid "warning: %pB: corrupt stack size: 0x%x"
msgstr ""
-#: elf-properties.c:169
+#: elf-properties.c:228
#, c-format
msgid "warning: %pB: corrupt no copy on protected size: 0x%x"
msgstr ""
-#: elf-properties.c:189
+#: elf-properties.c:243
+#, c-format
+msgid "warning: %pB: corrupt memory sealing size: 0x%x"
+msgstr ""
+
+#: elf-properties.c:262
#, c-format
msgid "error: %pB: <corrupt property (0x%x) size: 0x%x>"
msgstr ""
-#: elf-properties.c:214
+#: elf-properties.c:287
#, c-format
msgid "warning: %pB: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x"
msgstr ""
-#: elf-properties.c:400
+#: elf-properties.c:467
msgid "Removed property %W to merge %pB (0x%v) and %pB (0x%v)\n"
msgstr ""
-#: elf-properties.c:406
+#: elf-properties.c:473
msgid "Removed property %W to merge %pB (0x%v) and %pB (not found)\n"
msgstr ""
-#: elf-properties.c:415 elf-properties.c:493
+#: elf-properties.c:482 elf-properties.c:560
msgid "Removed property %W to merge %pB and %pB\n"
msgstr ""
-#: elf-properties.c:419
+#: elf-properties.c:486
msgid "Removed property %W to merge %pB and %pB (not found)\n"
msgstr ""
-#: elf-properties.c:436
+#: elf-properties.c:503
msgid "Updated property %W (0x%v) to merge %pB (0x%v) and %pB (0x%v)\n"
msgstr ""
-#: elf-properties.c:445
+#: elf-properties.c:512
msgid "Updated property %W (%v) to merge %pB (0x%v) and %pB (not found)\n"
msgstr ""
-#: elf-properties.c:487
+#: elf-properties.c:554
msgid "Removed property %W to merge %pB (not found) and %pB (0x%v)\n"
msgstr ""
-#: elf-properties.c:668 elfxx-aarch64.c:758 elfxx-x86.c:4087
-msgid "%F%P: failed to create GNU property section\n"
-msgstr ""
-
-#: elf-properties.c:672 elfxx-aarch64.c:762 elfxx-x86.c:4092
-#, c-format
-msgid "%F%pA: failed to align section\n"
-msgstr ""
+#: elf-properties.c:693 elfxx-aarch64.c:765
+msgid "%P: failed to create %s\n"
+msgstr "%P: %s-ის შექმნრჩáƒáƒ•áƒáƒ áƒ“áƒ\n"
#. Merge .note.gnu.property sections.
-#: elf-properties.c:698 elf-properties.c:700
+#: elf-properties.c:798 elf-properties.c:800
msgid "\n"
msgstr "\n"
-#: elf-properties.c:699
+#: elf-properties.c:799
msgid "Merging program properties\n"
msgstr "პრáƒáƒ’რáƒáƒ›áƒ˜áƒ¡ თვისებების შერწყმáƒ\n"
-#: elf-sframe.c:239
+#: elf-sframe.c:201
+#, c-format
+msgid "error in %pB(%pA); unexpected SFrame section type"
+msgstr ""
+
+#: elf-sframe.c:252
#, c-format
msgid "error in %pB(%pA); no .sframe will be created"
msgstr ""
-#: elf-sframe.c:397
+#: elf-sframe.c:426
msgid "input SFrame sections with different abi prevent .sframe generation"
msgstr ""
+#: elf-sframe.c:437
+msgid "input SFrame sections with different format versions prevent .sframe generation"
+msgstr ""
+
+#: elf-sframe.c:450
+msgid "SFrame sections with unexpected data encoding prevent .sframe generation"
+msgstr ""
+
+#: elf.c:299
+#, c-format
+msgid "%pB: string table [%u] is corrupt"
+msgstr "%pB: სტრიქáƒáƒœáƒ”ბის ცხრილი [%u] დáƒáƒ–იáƒáƒœáƒ”ბულიáƒ"
+
#. PR 17512: file: f057ec89.
-#: elf.c:337
+#: elf.c:328
#, c-format
msgid "%pB: attempt to load strings from a non-string section (number %d)"
msgstr ""
-#: elf.c:362
+#: elf.c:353
#, c-format
msgid "%pB: invalid string offset %u >= %<PRIu64> for section `%s'"
msgstr ""
-#: elf.c:515 elfnn-aarch64.c:8120 elfnn-loongarch.c:3919
+#: elf.c:512 elf32-arm.c:17779 elfnn-aarch64.c:8361 elfnn-loongarch.c:6449
+#: elfnn-riscv.c:3885
#, c-format
msgid "%pB symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
msgstr ""
-#: elf.c:677
+#: elf.c:526
#, c-format
-msgid "%pB: invalid size field in group section header: %#<PRIx64>"
+msgid "%pB symbol number %lu uses unsupported binding of %u"
msgstr ""
-#: elf.c:722
+#: elf.c:538
#, c-format
-msgid "%pB: invalid entry in SHT_GROUP section [%u]"
+msgid "%pB symbol number %lu uses unsupported type of %u"
msgstr ""
-#: elf.c:741
+#: elf.c:641
#, c-format
-msgid "%pB: no valid group sections found"
+msgid "%pB: could not read contents of group [%u]"
msgstr ""
-#. See PR 21957 for a reproducer.
-#: elf.c:770
+#: elf.c:672
#, c-format
-msgid "%pB: group section '%pA' has no contents"
+msgid "%pB: invalid entry (%#x) in group [%u]"
msgstr ""
-#: elf.c:831
+#: elf.c:691
#, c-format
-msgid "%pB: no group info for section '%pA'"
+msgid "%pB: unexpected type (%#x) section `%s' in group [%u]"
msgstr ""
-#: elf.c:883
+#: elf.c:767
#, c-format
msgid "%pB: sh_link [%d] in section `%pA' is incorrect"
msgstr ""
-#: elf.c:896
-#, c-format
-msgid "%pB: SHT_GROUP section [index %d] has no SHF_GROUP sections"
-msgstr ""
-
-#: elf.c:918
+#: elf.c:796
#, c-format
msgid "%pB: section group entry number %u is corrupt"
msgstr ""
-#: elf.c:941
-#, c-format
-msgid "%pB: unknown type [%#x] section `%s' in group [%pA]"
-msgstr ""
-
-#: elf.c:1242
+#: elf.c:1078
#, c-format
msgid "%pB: section %s is compressed with zstd, but BFD is not built with zstd support"
msgstr ""
-#: elf.c:1438
+#: elf.c:1264
#, c-format
msgid "%pB: invalid sh_link field (%d) in section number %d"
msgstr ""
-#: elf.c:1454
+#: elf.c:1280
#, c-format
msgid "%pB: failed to find link section for section %d"
msgstr ""
-#: elf.c:1481
+#: elf.c:1307
#, c-format
msgid "%pB: failed to find info section for section %d"
msgstr ""
-#: elf.c:1658
+#: elf.c:1484
#, c-format
msgid ""
"\n"
@@ -1144,7 +1178,7 @@ msgstr ""
"\n"
"პრáƒáƒ’რáƒáƒ›áƒ˜áƒ¡ თáƒáƒ•სáƒáƒ áƒ—ი:\n"
-#: elf.c:1700
+#: elf.c:1526
#, c-format
msgid ""
"\n"
@@ -1153,7 +1187,7 @@ msgstr ""
"\n"
"დინáƒáƒ›áƒ˜áƒ™áƒ£áƒ áƒ˜ სექციáƒ:\n"
-#: elf.c:1839
+#: elf.c:1665
#, c-format
msgid ""
"\n"
@@ -1162,7 +1196,7 @@ msgstr ""
"\n"
"ვერსიის áƒáƒ¦áƒ¬áƒ”რები:\n"
-#: elf.c:1864
+#: elf.c:1690
#, c-format
msgid ""
"\n"
@@ -1171,101 +1205,111 @@ msgstr ""
"\n"
"ვერსიის მიმáƒáƒ áƒ—ვები:\n"
-#: elf.c:1869
+#: elf.c:1695
#, c-format
msgid " required from %s:\n"
msgstr ""
-#: elf.c:2060
+#: elf.c:1944
+#, c-format
+msgid "%pB: DT_STRTAB table is corrupt"
+msgstr ""
+
+#: elf.c:2451
#, c-format
msgid "%pB: warning: loop in section dependencies detected"
msgstr ""
-#: elf.c:2167
+#: elf.c:2559
#, c-format
msgid "%pB: warning: multiple symbol tables detected - ignoring the table in section %u"
msgstr ""
-#: elf.c:2252
+#: elf.c:2644
#, c-format
msgid "%pB: warning: multiple dynamic symbol tables detected - ignoring the table in section %u"
msgstr ""
-#: elf.c:2371
+#: elf.c:2763
#, c-format
msgid "%pB: invalid link %u for reloc section %s (index %u)"
msgstr ""
-#: elf.c:2427
+#: elf.c:2820
#, c-format
msgid "%pB: warning: secondary relocation section '%s' for section %pA found - ignoring"
msgstr ""
-#: elf.c:2515 elf.c:2529 elf.c:2540 elf.c:2553
+#: elf.c:2905 elf.c:2919 elf.c:2930 elf.c:2943
#, c-format
msgid "%pB: unknown type [%#x] section `%s'"
msgstr ""
-#: elf.c:3213
+#: elf.c:3614
#, c-format
msgid "%pB: error: alignment power %d of section `%pA' is too big"
msgstr ""
-#: elf.c:3248
+#: elf.c:3649
#, c-format
msgid "warning: section `%pA' type changed to PROGBITS"
msgstr ""
-#: elf.c:3754
+#: elf.c:3981
+#, c-format
+msgid "%pB: corrupted group section: `%pA'"
+msgstr ""
+
+#: elf.c:4156
#, c-format
msgid "%pB: too many sections: %u"
msgstr ""
-#: elf.c:3840
+#: elf.c:4242
#, c-format
msgid "%pB: sh_link of section `%pA' points to discarded section `%pA' of `%pB'"
msgstr ""
-#: elf.c:3858
+#: elf.c:4260
#, c-format
msgid "%pB: sh_link of section `%pA' points to removed section `%pA' of `%pB'"
msgstr ""
-#: elf.c:4446
+#: elf.c:4860
#, c-format
msgid "%pB: GNU_MBIND section `%pA' has invalid sh_info field: %d"
msgstr ""
-#: elf.c:4629
-msgid "%F%P: failed to size relative relocations\n"
+#: elf.c:5043
+msgid "%P: failed to size relative relocations\n"
msgstr ""
-#: elf.c:5054
+#: elf.c:5470
#, c-format
msgid "%pB: TLS sections are not adjacent:"
msgstr ""
-#: elf.c:5061
+#: elf.c:5477
#, c-format
msgid "\t TLS: %pA"
msgstr "\t TLS: %pA"
-#: elf.c:5065
+#: elf.c:5481
#, c-format
msgid "\tnon-TLS: %pA"
msgstr "\táƒáƒ áƒ-TLS: %pA"
-#: elf.c:5709
+#: elf.c:6103
#, c-format
msgid "%pB: The first section in the PT_DYNAMIC segment is not the .dynamic section"
msgstr ""
-#: elf.c:5735
+#: elf.c:6129
#, c-format
msgid "%pB: not enough room for program headers, try linking with -N"
msgstr ""
-#: elf.c:5852
+#: elf.c:6256
#, c-format
msgid "%pB: section %pA lma %#<PRIx64> adjusted to %#<PRIx64>"
msgstr ""
@@ -1273,173 +1317,189 @@ msgstr ""
#. The fix for this error is usually to edit the linker script being
#. used and set up the program headers manually. Either that or
#. leave room for the headers at the start of the SECTIONS.
-#: elf.c:5990
+#: elf.c:6397
#, c-format
msgid "%pB: error: PHDR segment not covered by LOAD segment"
msgstr ""
-#: elf.c:6030
+#: elf.c:6437
#, c-format
-msgid "%pB: section `%pA' can't be allocated in segment %d"
+msgid "%pB: section `%pA' can't be allocated in segment %u"
msgstr ""
-#: elf.c:6171
+#: elf.c:6575
#, c-format
msgid "%pB: warning: allocated section `%s' not in segment"
msgstr ""
-#: elf.c:6306
+#: elf.c:6710
#, c-format
msgid "%pB: warning: unable to allocate any sections to PT_GNU_RELRO segment"
msgstr ""
-#: elf.c:6337
+#: elf.c:6741
#, c-format
msgid "%pB: error: non-load segment %d includes file header and/or program header"
msgstr ""
-#: elf.c:6477
+#: elf.c:6894
+#, c-format
+msgid "error: %pB has a TLS segment with execute permission"
+msgstr ""
+
+#: elf.c:6900
#, c-format
msgid "warning: %pB has a TLS segment with execute permission"
msgstr ""
-#: elf.c:6483
+#: elf.c:6915
+#, c-format
+msgid "error: %pB has a LOAD segment with RWX permissions"
+msgstr ""
+
+#: elf.c:6921
#, c-format
msgid "warning: %pB has a LOAD segment with RWX permissions"
msgstr ""
-#: elf.c:6864
+#: elf.c:7316
#, c-format
msgid "%pB: symbol `%s' required but not present"
msgstr ""
-#: elf.c:7239
+#: elf.c:7693
#, c-format
msgid "%pB: warning: empty loadable segment detected at vaddr=%#<PRIx64>, is this intentional?"
msgstr ""
-#: elf.c:7899
+#: elf.c:8366
#, c-format
msgid "%pB: warning: segment alignment of %#<PRIx64> is too large"
msgstr ""
-#: elf.c:8407
+#: elf.c:8848
#, c-format
msgid "%pB: Unable to handle section index %x in ELF symbol. Using ABS instead."
msgstr ""
-#: elf.c:8437
+#: elf.c:8878
#, c-format
msgid "unable to find equivalent output section for symbol '%s' from section '%s'"
msgstr ""
-#: elf.c:8851
+#: elf.c:9311
#, c-format
msgid "%pB: .gnu.version_r invalid entry"
-msgstr ""
+msgstr "%pB: .gnu.version_r áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ ჩáƒáƒœáƒáƒ¬áƒ”რი"
-#: elf.c:8986
+#: elf.c:9489
#, c-format
msgid "%pB: .gnu.version_d invalid entry"
-msgstr ""
+msgstr "%pB: .gnu.version_d áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ ჩáƒáƒœáƒáƒ¬áƒ”რი"
-#: elf.c:9464
+#: elf.c:9992
#, c-format
msgid "%pB:%pA: error: attempting to write over the end of the section"
msgstr ""
-#: elf.c:9476
+#: elf.c:10004
#, c-format
msgid "%pB:%pA: error: attempting to write section into an empty buffer"
msgstr ""
-#: elf.c:10381
+#: elf.c:10119 elf32-mcore.c:100 elf32-mcore.c:455 elf32-ppc.c:7666
+#: elf32-ppc.c:8854 elf64-ppc.c:16870
+#, c-format
+msgid "%pB: %s unsupported"
+msgstr "%pB: %s მხáƒáƒ áƒ“áƒáƒ­áƒ”რილი áƒáƒ áƒáƒ"
+
+#: elf.c:10966
#, c-format
msgid "%pB: warning: win32pstatus %s of size %lu bytes is too small"
msgstr ""
-#: elf.c:10460
+#: elf.c:11045
#, c-format
msgid "%pB: win32pstatus NOTE_INFO_MODULE of size %lu is too small to contain a name of size %u"
msgstr ""
-#: elf.c:13054
+#: elf.c:13726
msgid "GNU_MBIND section is supported only by GNU and FreeBSD targets"
msgstr ""
-#: elf.c:13057
+#: elf.c:13729
msgid "symbol type STT_GNU_IFUNC is supported only by GNU and FreeBSD targets"
msgstr ""
-#: elf.c:13060
+#: elf.c:13732
msgid "symbol binding STB_GNU_UNIQUE is supported only by GNU and FreeBSD targets"
msgstr ""
-#: elf.c:13063
+#: elf.c:13735
msgid "GNU_RETAIN section is supported only by GNU and FreeBSD targets"
msgstr ""
-#: elf.c:13282
+#: elf.c:13952
#, c-format
msgid "%pB(%pA): relocation %zu has invalid symbol index %lu"
msgstr ""
-#: elf.c:13358
+#: elf.c:14027
#, c-format
msgid "%pB(%pA): link section cannot be set because the output file does not have a symbol table"
msgstr ""
-#: elf.c:13372
+#: elf.c:14041
#, c-format
msgid "%pB(%pA): info section index is invalid"
msgstr ""
-#: elf.c:13386
+#: elf.c:14055
#, c-format
msgid "%pB(%pA): info section index cannot be set because the section is not in the output"
msgstr ""
-#: elf.c:13462
+#: elf.c:14131
#, c-format
msgid "%pB(%pA): error: secondary reloc section processed twice"
msgstr ""
-#: elf.c:13474
+#: elf.c:14143
#, c-format
msgid "%pB(%pA): error: secondary reloc section has zero sized entries"
msgstr ""
-#: elf.c:13486
+#: elf.c:14155
#, c-format
msgid "%pB(%pA): error: secondary reloc section has non-standard sized entries"
msgstr ""
-#: elf.c:13500
+#: elf.c:14169
#, c-format
msgid "%pB(%pA): error: secondary reloc section is empty!"
msgstr ""
-#: elf.c:13523
+#: elf.c:14193
#, c-format
msgid "%pB(%pA): error: internal relocs missing for secondary reloc section"
msgstr ""
-#: elf.c:13543
+#: elf.c:14213
#, c-format
msgid "%pB(%pA): error: reloc table entry %zu is empty"
msgstr ""
-#: elf.c:13568
+#: elf.c:14238
#, c-format
msgid "%pB(%pA): error: secondary reloc %zu references a missing symbol"
msgstr ""
-#: elf.c:13586
+#: elf.c:14256
#, c-format
msgid "%pB(%pA): error: secondary reloc %zu references a deleted symbol"
msgstr ""
-#: elf.c:13600
+#: elf.c:14270
#, c-format
msgid "%pB(%pA): error: secondary reloc %zu is of an unknown type"
msgstr ""
@@ -1448,897 +1508,905 @@ msgstr ""
#. containing valid data.
#. Ignore init flag - it may not be set, despite the flags field
#. containing valid data.
-#: elf32-arc.c:455 elf32-arm.c:15118 elf32-frv.c:6612 elf32-iq2000.c:868
-#: elf32-m32c.c:914 elf32-mt.c:560 elf32-rl78.c:1275 elf32-rx.c:3217
-#: elf32-visium.c:844 elf64-ppc.c:5503 elfnn-aarch64.c:7350
+#: elf32-arc.c:454 elf32-arm.c:15198 elf32-frv.c:6618 elf32-iq2000.c:868
+#: elf32-m32c.c:915 elf32-mt.c:560 elf32-rl78.c:1275 elf32-rx.c:3218
+#: elf32-visium.c:844 elf64-ppc.c:5531 elfnn-aarch64.c:7591
#, c-format
msgid "private flags = 0x%lx:"
msgstr ""
-#: elf32-arc.c:642
+#: elf32-arc.c:641
#, c-format
msgid "warning: %pB: conflicting platform configuration %s with %s"
msgstr ""
-#: elf32-arc.c:661
+#: elf32-arc.c:660
#, c-format
msgid "error: %pB: unable to merge CPU base attributes %s with %s"
msgstr ""
-#: elf32-arc.c:698
+#: elf32-arc.c:697
#, c-format
msgid "error: %pB: unable to merge ISA extension attributes %s"
msgstr ""
-#: elf32-arc.c:722
+#: elf32-arc.c:721
#, c-format
msgid "error: %pB: conflicting ISA extension attributes %s with %s"
msgstr ""
-#: elf32-arc.c:762
+#: elf32-arc.c:761
#, c-format
msgid "error: %pB: cannot mix rf16 with full register set %pB"
msgstr ""
-#: elf32-arc.c:790
+#: elf32-arc.c:789
#, c-format
msgid "error: %pB: conflicting attributes %s: %s with %s"
msgstr ""
-#: elf32-arc.c:817
+#: elf32-arc.c:816
#, c-format
msgid "error: %pB: conflicting attributes %s"
msgstr ""
-#: elf32-arc.c:922
+#: elf32-arc.c:921
#, c-format
msgid "error: attempting to link %pB with a binary %pB of different architecture"
msgstr ""
-#: elf32-arc.c:938 elf32-iq2000.c:844 elf32-m32c.c:889 elf32-m68hc1x.c:1390
-#: elf32-ppc.c:3860 elf64-sparc.c:737 elfxx-mips.c:15659
+#: elf32-arc.c:937 elf32-iq2000.c:844 elf32-m32c.c:890 elf32-m68hc1x.c:1390
+#: elf32-ppc.c:3854 elf64-sparc.c:737 elfxx-mips.c:15766
#, c-format
msgid "%pB: uses different e_flags (%#x) fields than previous modules (%#x)"
msgstr ""
-#: elf32-arc.c:1027
+#: elf32-arc.c:1026
msgid "error: the ARC4 architecture is no longer supported"
msgstr ""
-#: elf32-arc.c:1033
+#: elf32-arc.c:1032
msgid "warning: unset or old architecture flags; use default machine"
msgstr ""
-#: elf32-arc.c:1159
+#: elf32-arc.c:1158
#, c-format
msgid "%pB(%pA+%#<PRIx64>): CMEM relocation to `%s' is invalid, 16 MSB should be %#x (value is %#<PRIx64>)"
msgstr ""
-#: elf32-arc.c:1170
+#: elf32-arc.c:1169
#, c-format
msgid "%pB(%pA+%#<PRIx64>): CMEM relocation to `%s+%#<PRIx64>' is invalid, 16 MSB should be %#x (value is %#<PRIx64>)"
msgstr ""
-#: elf32-arc.c:1885
+#: elf32-arc.c:1897
msgid "GOT and PLT relocations cannot be fixed with a non dynamic linker"
msgstr ""
-#: elf32-arc.c:1909 elf32-rx.c:1486
+#: elf32-arc.c:1921 elf32-rx.c:1486
#, c-format
msgid "%pB(%pA): warning: unaligned access to symbol '%s' in the small data area"
msgstr ""
-#: elf32-arc.c:1914 elf32-rx.c:1491
+#: elf32-arc.c:1926 elf32-rx.c:1491
#, c-format
msgid "%pB(%pA): internal error: out of range error"
msgstr ""
-#: elf32-arc.c:1919 elf32-rx.c:1496
+#: elf32-arc.c:1931 elf32-rx.c:1496
#, c-format
msgid "%pB(%pA): internal error: unsupported relocation error"
-msgstr ""
+msgstr "%pB(%pA): შიდრშეცდáƒáƒ›áƒ: მხáƒáƒ áƒ“áƒáƒ£áƒ­áƒ”რელი გáƒáƒ“áƒáƒ¢áƒáƒœáƒ˜áƒ¡ შეცდáƒáƒ›áƒ"
-#: elf32-arc.c:1924 elf32-rx.c:1501
+#: elf32-arc.c:1936 elf32-rx.c:1501
#, c-format
msgid "%pB(%pA): internal error: dangerous relocation"
-msgstr ""
+msgstr "%pB(%pA): შიდრშეცდáƒáƒ›áƒ: სáƒáƒ¨áƒ˜áƒ¨áƒ˜ გáƒáƒ“áƒáƒ¢áƒáƒœáƒ"
-#: elf32-arc.c:1929 elf32-rx.c:1506
+#: elf32-arc.c:1941 elf32-rx.c:1506
#, c-format
msgid "%pB(%pA): internal error: unknown error"
-msgstr ""
+msgstr "%pB(%pA): შიდრშეცდáƒáƒ›áƒ: უცნáƒáƒ‘ი შეცდáƒáƒ›áƒ"
-#: elf32-arc.c:2023 elf32-arc.c:2091 elf32-arm.c:15573 elf32-metag.c:2251
-#: elf32-nds32.c:5543 elfnn-aarch64.c:7757 elfnn-riscv.c:617
+#: elf32-arc.c:2035 elf32-arc.c:2103 elf32-arm.c:15641 elf32-metag.c:2250
+#: elf32-nds32.c:5549 elfnn-aarch64.c:7998 elfnn-riscv.c:915
#, c-format
msgid "%pB: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC"
msgstr ""
-#: elf32-arc.c:2910
+#: elf32-arc.c:2922
#, c-format
msgid "%pB: unknown mandatory ARC object attribute %d"
msgstr ""
-#: elf32-arc.c:2918
+#: elf32-arc.c:2930
#, c-format
msgid "warning: %pB: unknown ARC object attribute %d"
msgstr ""
-#: elf32-arm.c:4346 elf32-arm.c:4380 elf32-arm.c:4399 elf32-arm.c:4451
+#: elf32-arm.c:4367 elf32-arm.c:4401 elf32-arm.c:4420 elf32-arm.c:4472
#, c-format
msgid "%pB(%pA): warning: long branch veneers used in section with SHF_ARM_PURECODE section attribute is only supported for M-profile targets that implement the movw instruction"
msgstr ""
-#: elf32-arm.c:4411 elf32-arm.c:4465 elf32-arm.c:9157 elf32-arm.c:9247
+#: elf32-arm.c:4432 elf32-arm.c:4486 elf32-arm.c:9185 elf32-arm.c:9275
#, c-format
msgid "%pB(%s): warning: interworking not enabled; first occurrence: %pB: %s call to %s"
msgstr ""
-#: elf32-arm.c:4591
+#: elf32-arm.c:4612
#, c-format
msgid "ERROR: CMSE stub (%s section) too far (%#<PRIx64>) from destination (%#<PRIx64>)"
msgstr ""
-#: elf32-arm.c:4760
+#: elf32-arm.c:4781
#, c-format
msgid "no address assigned to the veneers output section %s"
msgstr ""
-#: elf32-arm.c:4835 elf32-arm.c:6984 elf32-csky.c:3400 elf32-hppa.c:582
-#: elf32-m68hc1x.c:164 elf32-metag.c:1180 elf32-nios2.c:2201 elf64-ppc.c:3906
-#: elf64-ppc.c:14122 elfnn-aarch64.c:3198
+#: elf32-arm.c:4856 elf32-arm.c:7005 elf32-csky.c:3387 elf32-hppa.c:581
+#: elf32-m68hc1x.c:163 elf32-metag.c:1179 elf64-ppc.c:3902 elf64-ppc.c:14180
+#: elfnn-aarch64.c:3200 elfnn-kvx.c:894
#, c-format
msgid "%pB: cannot create stub entry %s"
msgstr ""
-#: elf32-arm.c:5056 elf32-csky.c:3742 elf32-hppa.c:732 elf32-hppa.c:761
-#: elf32-hppa.c:842 elf32-m68hc11.c:422 elf32-m68hc12.c:542 elf32-metag.c:3345
-#: elf32-nios2.c:2494 elf64-ppc.c:12238 elf64-ppc.c:12246 xcofflink.c:4693
-#: elfnn-aarch64.c:3267
-msgid "%F%P: Could not assign `%pA' to an output section. Retry without --enable-non-contiguous-regions.\n"
+#: elf32-arm.c:5077 elf32-csky.c:3729 elf32-hppa.c:731 elf32-hppa.c:760
+#: elf32-hppa.c:841 elf32-m68hc11.c:422 elf32-m68hc12.c:542 elf32-metag.c:3346
+#: elf64-ppc.c:12297 elf64-ppc.c:12305 xcofflink.c:4723 elfnn-aarch64.c:3272
+msgid "%P: Could not assign `%pA' to an output section. Retry without --enable-non-contiguous-regions.\n"
msgstr ""
-#: elf32-arm.c:6027
+#: elf32-arm.c:6048
#, c-format
msgid "%pB: special symbol `%s' only allowed for ARMv8-M architecture or later"
msgstr ""
-#: elf32-arm.c:6036
+#: elf32-arm.c:6057
#, c-format
msgid "%pB: invalid special symbol `%s'; it must be a global or weak function symbol"
msgstr ""
-#: elf32-arm.c:6075
+#: elf32-arm.c:6096
#, c-format
msgid "%pB: invalid standard symbol `%s'; it must be a global or weak function symbol"
msgstr ""
-#: elf32-arm.c:6081
+#: elf32-arm.c:6102
#, c-format
msgid "%pB: absent standard symbol `%s'"
msgstr ""
-#: elf32-arm.c:6093
+#: elf32-arm.c:6114
#, c-format
msgid "%pB: `%s' and its special symbol are in different sections"
msgstr ""
-#: elf32-arm.c:6105
+#: elf32-arm.c:6126
#, c-format
msgid "%pB: entry function `%s' not output"
msgstr ""
-#: elf32-arm.c:6112
+#: elf32-arm.c:6133
#, c-format
msgid "%pB: entry function `%s' is empty"
msgstr ""
-#: elf32-arm.c:6241
+#: elf32-arm.c:6262
#, c-format
msgid "%pB: --in-implib only supported for Secure Gateway import libraries"
msgstr ""
-#: elf32-arm.c:6290
+#: elf32-arm.c:6311
#, c-format
msgid "%pB: invalid import library entry: `%s'; symbol should be absolute, global and refer to Thumb functions"
msgstr ""
-#: elf32-arm.c:6312
+#: elf32-arm.c:6333
#, c-format
msgid "entry function `%s' disappeared from secure code"
msgstr ""
-#: elf32-arm.c:6336
+#: elf32-arm.c:6357
#, c-format
msgid "`%s' refers to a non entry function"
msgstr ""
-#: elf32-arm.c:6351
+#: elf32-arm.c:6372
#, c-format
msgid "%pB: visibility of symbol `%s' has changed"
msgstr ""
-#: elf32-arm.c:6360
+#: elf32-arm.c:6381
#, c-format
msgid "%pB: incorrect size for symbol `%s'"
msgstr ""
-#: elf32-arm.c:6379
+#: elf32-arm.c:6400
#, c-format
msgid "offset of veneer for entry function `%s' not a multiple of its size"
msgstr ""
-#: elf32-arm.c:6399
+#: elf32-arm.c:6420
msgid "new entry function(s) introduced but no output import library specified:"
msgstr ""
-#: elf32-arm.c:6407
+#: elf32-arm.c:6428
#, c-format
msgid "start address of `%s' is different from previous link"
msgstr ""
-#: elf32-arm.c:7117 elf32-arm.c:7152
+#: elf32-arm.c:7140 elf32-arm.c:7178
#, c-format
msgid "unable to find %s glue '%s' for '%s'"
msgstr ""
-#: elf32-arm.c:7863
+#: elf32-arm.c:7890
#, c-format
msgid "%pB: BE8 images only valid in big-endian mode"
msgstr ""
#. Give a warning, but do as the user requests anyway.
-#: elf32-arm.c:8090
+#: elf32-arm.c:8118
#, c-format
msgid "%pB: warning: selected VFP11 erratum workaround is not necessary for target architecture"
msgstr ""
-#: elf32-arm.c:8117
+#: elf32-arm.c:8145
#, c-format
msgid "%pB: warning: selected STM32L4XX erratum workaround is not necessary for target architecture"
msgstr ""
-#: elf32-arm.c:8653 elf32-arm.c:8673 elf32-arm.c:8740 elf32-arm.c:8759
+#: elf32-arm.c:8681 elf32-arm.c:8701 elf32-arm.c:8768 elf32-arm.c:8787
#, c-format
msgid "%pB: unable to find %s veneer `%s'"
msgstr ""
-#: elf32-arm.c:8966
+#: elf32-arm.c:8994
#, c-format
msgid "%pB(%pA+%#x): error: multiple load detected in non-last IT block instruction: STM32L4XX veneer cannot be generated; use gcc option -mrestrict-it to generate only one instruction per IT block"
msgstr ""
-#: elf32-arm.c:9064
+#: elf32-arm.c:9092
#, c-format
msgid "invalid TARGET2 relocation type '%s'"
msgstr ""
#. FIXME: We ought to be able to generate thumb-1 PLT
#. instructions...
-#: elf32-arm.c:9834
+#: elf32-arm.c:9861
#, c-format
msgid "%pB: warning: thumb-1 mode PLT generation not currently supported"
msgstr ""
-#: elf32-arm.c:10143 elf32-arm.c:10185
+#: elf32-arm.c:10170 elf32-arm.c:10212
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' in TLS trampoline"
msgstr ""
-#: elf32-arm.c:10535
-msgid "shared object"
+#: elf32-arm.c:10493
+#, c-format
+msgid "warning: %pB(%s): Forcing bramch to absolute symbol in Thumb mode (Thumb-only CPU) in %pB"
msgstr ""
-#: elf32-arm.c:10538
-msgid "PIE executable"
+#: elf32-arm.c:10498
+#, c-format
+msgid "warning: (%s): Forcing branch to absolute symbol in Thumb mode (Thumb-only CPU) in %pB"
+msgstr ""
+
+#: elf32-arm.c:10527
+#, c-format
+msgid "%pB(%s): Unknown destination type (ARM/Thumb) in %pB"
msgstr ""
-#: elf32-arm.c:10541
+#: elf32-arm.c:10531
+#, c-format
+msgid "(%s): Unknown destination type (ARM/Thumb) in %pB"
+msgstr ""
+
+#: elf32-arm.c:10619
+msgid "shared object"
+msgstr "გáƒáƒ–იáƒáƒ áƒ”ბული áƒáƒ‘იექტი"
+
+#: elf32-arm.c:10622
+msgid "PIE executable"
+msgstr "PIE შესრულებáƒáƒ“ი ფáƒáƒ˜áƒšáƒ˜"
+
+#: elf32-arm.c:10625
#, c-format
msgid "%pB: relocation %s against external or undefined symbol `%s' can not be used when making a %s; recompile with -fPIC"
msgstr ""
-#: elf32-arm.c:10643
+#: elf32-arm.c:10727
#, c-format
msgid "\\%pB: warning: %s BLX instruction targets %s function '%s'"
msgstr ""
-#: elf32-arm.c:11060
+#: elf32-arm.c:11144
#, c-format
msgid "%pB: warning: %s BLX instruction targets %s function '%s'"
msgstr ""
-#: elf32-arm.c:11694
+#: elf32-arm.c:11778
#, c-format
msgid "%pB: expected symbol index in range 0..%lu but found local symbol with index %lu"
msgstr ""
-#: elf32-arm.c:11969 elf32-arm.c:11995
+#: elf32-arm.c:12053 elf32-arm.c:12079
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' referenced by TLS_GOTDESC"
msgstr ""
-#: elf32-arm.c:12041 elf32-csky.c:4970 elf32-m68k.c:3733 elf32-metag.c:1913
-#: elf32-nios2.c:4382
+#: elf32-arm.c:12125 elf32-csky.c:4958 elf32-m68k.c:3735 elf32-metag.c:1912
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s relocation not permitted in shared object"
msgstr ""
-#: elf32-arm.c:12255
+#: elf32-arm.c:12339
#, c-format
msgid "%pB(%pA+%#<PRIx64>): only ADD or SUB instructions are allowed for ALU group relocations"
msgstr ""
-#: elf32-arm.c:12296 elf32-arm.c:12388 elf32-arm.c:12476 elf32-arm.c:12566
+#: elf32-arm.c:12380 elf32-arm.c:12472 elf32-arm.c:12560 elf32-arm.c:12650
#, c-format
msgid "%pB(%pA+%#<PRIx64>): overflow whilst splitting %#<PRIx64> for group relocation %s"
msgstr ""
-#: elf32-arm.c:12624 elf32-arm.c:12783
+#: elf32-arm.c:12708 elf32-arm.c:12867
msgid "local symbol index too big"
msgstr ""
-#: elf32-arm.c:12634 elf32-arm.c:12668
+#: elf32-arm.c:12718 elf32-arm.c:12752
msgid "no dynamic index information available"
msgstr ""
-#: elf32-arm.c:12676
+#: elf32-arm.c:12760
msgid "invalid dynamic index"
-msgstr ""
+msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ დინáƒáƒ›áƒ˜áƒ™áƒ£áƒ áƒ˜ ინდექსი"
-#: elf32-arm.c:12793
+#: elf32-arm.c:12877
msgid "dynamic index information not available"
msgstr ""
-#: elf32-arm.c:13224 elf32-sh.c:3565
+#: elf32-arm.c:13308 elf32-sh.c:3568
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s relocation against SEC_MERGE section"
msgstr ""
-#: elf32-arm.c:13337 elf32-m68k.c:3966 elf32-xtensa.c:2761
-#: elfnn-aarch64.c:6847
+#: elf32-arm.c:13421 elf32-m68k.c:3968 elf32-xtensa.c:2760 elfnn-aarch64.c:7088
+#: elfnn-kvx.c:2569
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s used with TLS symbol %s"
msgstr ""
-#: elf32-arm.c:13339 elf32-m68k.c:3968 elf32-xtensa.c:2763
-#: elfnn-aarch64.c:6849
+#: elf32-arm.c:13423 elf32-m68k.c:3970 elf32-xtensa.c:2762 elfnn-aarch64.c:7090
+#: elfnn-kvx.c:2571
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s used with non-TLS symbol %s"
msgstr ""
-#: elf32-arm.c:13422 elf32-tic6x.c:2649 elfnn-aarch64.c:7184
+#: elf32-arm.c:13506 elf32-tic6x.c:2641 elfnn-aarch64.c:7425 elfnn-kvx.c:2798
msgid "out of range"
msgstr "დიáƒáƒžáƒáƒ–áƒáƒœáƒ¡ გáƒáƒ áƒ”თ"
-#: elf32-arm.c:13426 elf32-nios2.c:4516 elf32-pru.c:936 elf32-tic6x.c:2653
-#: elfnn-aarch64.c:7188
+#: elf32-arm.c:13510 elf32-pru.c:936 elf32-tic6x.c:2645 elfnn-aarch64.c:7429
+#: elfnn-kvx.c:2802
msgid "unsupported relocation"
-msgstr ""
+msgstr "მხáƒáƒ áƒ“áƒáƒ£áƒ­áƒ”რელი გáƒáƒ“áƒáƒáƒ“გილებáƒ"
-#: elf32-arm.c:13434 elf32-nios2.c:4526 elf32-pru.c:946 elf32-tic6x.c:2661
-#: elfnn-aarch64.c:7196
+#: elf32-arm.c:13518 elf32-pru.c:946 elf32-tic6x.c:2653 elfnn-aarch64.c:7437
+#: elfnn-kvx.c:2810
msgid "unknown error"
msgstr "უცნáƒáƒ‘ი შეცდáƒáƒ›áƒ"
-#: elf32-arm.c:13916
+#: elf32-arm.c:13995
#, c-format
msgid "warning: not setting interworking flag of %pB since it has already been specified as non-interworking"
msgstr ""
-#: elf32-arm.c:13920
+#: elf32-arm.c:13999
#, c-format
msgid "warning: clearing the interworking flag of %pB due to outside request"
msgstr ""
-#: elf32-arm.c:13965
+#: elf32-arm.c:14044
#, c-format
msgid "warning: clearing the interworking flag of %pB because non-interworking code in %pB has been linked with it"
msgstr ""
-#: elf32-arm.c:14052
+#: elf32-arm.c:14131
#, c-format
msgid "%pB: unknown mandatory EABI object attribute %d"
msgstr ""
-#: elf32-arm.c:14060
+#: elf32-arm.c:14139
#, c-format
msgid "warning: %pB: unknown EABI object attribute %d"
msgstr ""
-#: elf32-arm.c:14395
+#: elf32-arm.c:14474
#, c-format
msgid "error: %pB: unknown CPU architecture"
-msgstr ""
+msgstr "შეცდáƒáƒ›áƒ: %pB: უცნáƒáƒ‘ი CPU áƒáƒ áƒ¥áƒ˜áƒ¢áƒ”ქტურáƒ"
-#: elf32-arm.c:14433 elf32-nios2.c:2950
+#: elf32-arm.c:14512
#, c-format
-msgid "error: %pB: conflicting CPU architectures %d/%d"
+msgid "error: conflicting CPU architectures %s vs %s in %pB"
msgstr ""
-#: elf32-arm.c:14530
+#: elf32-arm.c:14609
#, c-format
msgid "Error: %pB has both the current and legacy Tag_MPextension_use attributes"
msgstr ""
-#: elf32-arm.c:14567
+#: elf32-arm.c:14646
#, c-format
msgid "error: %pB uses VFP register arguments, %pB does not"
msgstr ""
-#: elf32-arm.c:14736
+#: elf32-arm.c:14816
#, c-format
msgid "error: %pB: unable to merge virtualization attributes with %pB"
msgstr ""
-#: elf32-arm.c:14762
+#: elf32-arm.c:14842
#, c-format
msgid "error: %pB: conflicting architecture profiles %c/%c"
msgstr ""
-#: elf32-arm.c:14901
+#: elf32-arm.c:14981
#, c-format
msgid "warning: %pB: conflicting platform configuration"
msgstr ""
-#: elf32-arm.c:14910
+#: elf32-arm.c:14990
#, c-format
msgid "error: %pB: conflicting use of R9"
msgstr ""
-#: elf32-arm.c:14922
+#: elf32-arm.c:15002
#, c-format
msgid "error: %pB: SB relative addressing conflicts with use of R9"
msgstr ""
-#: elf32-arm.c:14935
+#: elf32-arm.c:15015
#, c-format
msgid "warning: %pB uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may fail"
msgstr ""
-#: elf32-arm.c:14966
+#: elf32-arm.c:15046
#, c-format
msgid "warning: %pB uses %s enums yet the output is to use %s enums; use of enum values across objects may fail"
msgstr ""
-#: elf32-arm.c:14978
+#: elf32-arm.c:15058
#, c-format
msgid "error: %pB uses iWMMXt register arguments, %pB does not"
msgstr ""
-#: elf32-arm.c:14995
+#: elf32-arm.c:15075
#, c-format
msgid "error: fp16 format mismatch between %pB and %pB"
msgstr ""
-#: elf32-arm.c:15031
+#: elf32-arm.c:15111
#, c-format
msgid "%pB has both the current and legacy Tag_MPextension_use attributes"
msgstr ""
-#: elf32-arm.c:15127
+#: elf32-arm.c:15207
#, c-format
msgid " [interworking enabled]"
msgstr ""
-#: elf32-arm.c:15135
+#: elf32-arm.c:15215
#, c-format
msgid " [VFP float format]"
msgstr ""
-#: elf32-arm.c:15137
-#, c-format
-msgid " [Maverick float format]"
-msgstr ""
-
-#: elf32-arm.c:15139
+#: elf32-arm.c:15217
#, c-format
msgid " [FPA float format]"
msgstr ""
-#: elf32-arm.c:15142
+#: elf32-arm.c:15220
#, c-format
msgid " [floats passed in float registers]"
msgstr ""
-#: elf32-arm.c:15145 elf32-arm.c:15231
+#: elf32-arm.c:15223 elf32-arm.c:15308
#, c-format
msgid " [position independent]"
msgstr ""
-#: elf32-arm.c:15148
+#: elf32-arm.c:15226
#, c-format
msgid " [new ABI]"
-msgstr ""
+msgstr " [áƒáƒ®áƒáƒšáƒ˜ ABI]"
-#: elf32-arm.c:15151
+#: elf32-arm.c:15229
#, c-format
msgid " [old ABI]"
-msgstr ""
+msgstr " [ძველი ABI]"
-#: elf32-arm.c:15154
+#: elf32-arm.c:15232
#, c-format
msgid " [software FP]"
-msgstr ""
+msgstr " [პრáƒáƒ’რáƒáƒ›áƒ£áƒšáƒ˜ FP]"
-#: elf32-arm.c:15163
+#: elf32-arm.c:15240
#, c-format
msgid " [Version1 EABI]"
msgstr ""
-#: elf32-arm.c:15166 elf32-arm.c:15177
+#: elf32-arm.c:15243 elf32-arm.c:15254
#, c-format
msgid " [sorted symbol table]"
msgstr ""
-#: elf32-arm.c:15168 elf32-arm.c:15179
+#: elf32-arm.c:15245 elf32-arm.c:15256
#, c-format
msgid " [unsorted symbol table]"
msgstr ""
-#: elf32-arm.c:15174
+#: elf32-arm.c:15251
#, c-format
msgid " [Version2 EABI]"
msgstr ""
-#: elf32-arm.c:15182
+#: elf32-arm.c:15259
#, c-format
msgid " [dynamic symbols use segment index]"
msgstr ""
-#: elf32-arm.c:15185
+#: elf32-arm.c:15262
#, c-format
msgid " [mapping symbols precede others]"
msgstr ""
-#: elf32-arm.c:15192
+#: elf32-arm.c:15269
#, c-format
msgid " [Version3 EABI]"
msgstr ""
-#: elf32-arm.c:15196
+#: elf32-arm.c:15273
#, c-format
msgid " [Version4 EABI]"
msgstr ""
-#: elf32-arm.c:15200
+#: elf32-arm.c:15277
#, c-format
msgid " [Version5 EABI]"
msgstr ""
-#: elf32-arm.c:15203
+#: elf32-arm.c:15280
#, c-format
msgid " [soft-float ABI]"
msgstr ""
-#: elf32-arm.c:15206
+#: elf32-arm.c:15283
#, c-format
msgid " [hard-float ABI]"
msgstr ""
-#: elf32-arm.c:15212
+#: elf32-arm.c:15289
#, c-format
msgid " [BE8]"
-msgstr ""
+msgstr " [BE8]"
-#: elf32-arm.c:15215
+#: elf32-arm.c:15292
#, c-format
msgid " [LE8]"
-msgstr ""
+msgstr " [LE8]"
-#: elf32-arm.c:15221
+#: elf32-arm.c:15298
#, c-format
msgid " <EABI version unrecognised>"
msgstr ""
-#: elf32-arm.c:15228
+#: elf32-arm.c:15305
#, c-format
msgid " [relocatable executable]"
msgstr ""
-#: elf32-arm.c:15234
+#: elf32-arm.c:15311
#, c-format
msgid " [FDPIC ABI supplement]"
msgstr ""
-#: elf32-arm.c:15239 elfnn-aarch64.c:7353
+#: elf32-arm.c:15316 elfnn-aarch64.c:7594
#, c-format
msgid " <Unrecognised flag bits set>"
msgstr ""
-#: elf32-arm.c:15356 elf32-arm.c:15490 elf32-i386.c:1511 elf32-s390.c:923
-#: elf32-tic6x.c:2724 elf32-tilepro.c:1435 elf32-xtensa.c:1090
-#: elf64-s390.c:845 elf64-x86-64.c:1963 elfxx-sparc.c:1386 elfxx-tilegx.c:1662
-#: elfxx-x86.c:970 elfnn-aarch64.c:7624 elfnn-loongarch.c:632
-#: elfnn-riscv.c:660
+#: elf32-arm.c:15424 elf32-arm.c:15558 elf32-i386.c:1576 elf32-s390.c:921
+#: elf32-tic6x.c:2716 elf32-tilepro.c:1433 elf32-xtensa.c:1088 elf64-s390.c:924
+#: elf64-x86-64.c:2550 elfxx-sparc.c:1385 elfxx-tilegx.c:1661 elfxx-x86.c:962
+#: elfnn-aarch64.c:7865 elfnn-kvx.c:3248 elfnn-loongarch.c:961
+#: elfnn-riscv.c:959
#, c-format
msgid "%pB: bad symbol index: %d"
msgstr ""
-#: elf32-arm.c:15746
+#: elf32-arm.c:15814
#, c-format
msgid "FDPIC does not yet support %s relocation to become dynamic for executable"
msgstr ""
-#: elf32-arm.c:17009
+#: elf32-arm.c:17077
#, c-format
msgid "errors encountered processing file %pB"
msgstr ""
-#: elf32-arm.c:17382 elflink.c:13235 elflink.c:13282
+#: elf32-arm.c:17448 elflink.c:13605 elflink.c:13652
#, c-format
msgid "could not find section %s"
msgstr ""
-#: elf32-arm.c:18308
+#: elf32-arm.c:18406
#, c-format
msgid "%pB: Number of symbols in input file has increased from %lu to %u\n"
msgstr ""
-#: elf32-arm.c:18572
+#: elf32-arm.c:18664
#, c-format
msgid "%pB: error: Cortex-A8 erratum stub is allocated in unsafe location"
msgstr ""
#. There's not much we can do apart from complain if this
#. happens.
-#: elf32-arm.c:18599
+#: elf32-arm.c:18691
#, c-format
msgid "%pB: error: Cortex-A8 erratum stub out of range (input file too large)"
msgstr ""
-#: elf32-arm.c:19426 elf32-arm.c:19448
+#: elf32-arm.c:19518 elf32-arm.c:19540
#, c-format
msgid "%pB: error: VFP11 veneer out of range"
msgstr ""
-#: elf32-arm.c:19499
+#: elf32-arm.c:19591
#, c-format
msgid "%pB(%#<PRIx64>): error: cannot create STM32L4XX veneer; jump out of range by %<PRId64> bytes; cannot encode branch instruction"
msgstr ""
-#: elf32-arm.c:19538
+#: elf32-arm.c:19630
#, c-format
msgid "%pB: error: cannot create STM32L4XX veneer"
msgstr ""
-#: elf32-arm.c:20622
+#: elf32-arm.c:20713
#, c-format
msgid "error: %pB is already in final BE8 format"
msgstr ""
-#: elf32-arm.c:20698
+#: elf32-arm.c:20790
#, c-format
msgid "error: source object %pB has EABI version %d, but target %pB has EABI version %d"
msgstr ""
-#: elf32-arm.c:20713
+#: elf32-arm.c:20805
#, c-format
msgid "error: %pB is compiled for APCS-%d, whereas target %pB uses APCS-%d"
msgstr ""
-#: elf32-arm.c:20723
+#: elf32-arm.c:20815
#, c-format
msgid "error: %pB passes floats in float registers, whereas %pB passes them in integer registers"
msgstr ""
-#: elf32-arm.c:20727
+#: elf32-arm.c:20819
#, c-format
msgid "error: %pB passes floats in integer registers, whereas %pB passes them in float registers"
msgstr ""
-#: elf32-arm.c:20737 elf32-arm.c:20741 elf32-arm.c:20751
+#: elf32-arm.c:20829 elf32-arm.c:20833
#, c-format
msgid "error: %pB uses %s instructions, whereas %pB does not"
msgstr ""
-#: elf32-arm.c:20755
-#, c-format
-msgid "error: %pB does not use %s instructions, whereas %pB does"
-msgstr ""
-
-#: elf32-arm.c:20774
+#: elf32-arm.c:20852
#, c-format
msgid "error: %pB uses software FP, whereas %pB uses hardware FP"
msgstr ""
-#: elf32-arm.c:20778
+#: elf32-arm.c:20856
#, c-format
msgid "error: %pB uses hardware FP, whereas %pB uses software FP"
msgstr ""
-#: elf32-arm.c:20792
+#: elf32-arm.c:20870
#, c-format
msgid "warning: %pB supports interworking, whereas %pB does not"
msgstr ""
-#: elf32-arm.c:20798
+#: elf32-arm.c:20876
#, c-format
msgid "warning: %pB does not support interworking, whereas %pB does"
msgstr ""
-#: elf32-avr.c:1508
+#: elf32-avr.c:1503
msgid "%X%H: %s against `%s': error: relocation applies outside section\n"
msgstr ""
-#: elf32-avr.c:1516
+#: elf32-avr.c:1511
msgid "%X%H: %s against `%s': error: relocation target address is odd\n"
msgstr ""
-#: elf32-avr.c:1524
+#: elf32-avr.c:1519
msgid "%X%H: %s against `%s': internal error: unexpected relocation result %d\n"
msgstr ""
-#: elf32-avr.c:3339 elfnn-aarch64.c:3229
+#: elf32-avr.c:3335 elfnn-aarch64.c:3231
#, c-format
msgid "cannot create stub entry %s"
msgstr ""
#: elf32-bfin.c:107 elf32-bfin.c:364
msgid "relocation should be even number"
-msgstr ""
+msgstr "გáƒáƒ“áƒáƒáƒ“გილებრლუწი რიცხვი უნდრიყáƒáƒ¡"
#: elf32-bfin.c:1589
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unresolvable relocation against symbol `%s'"
msgstr ""
-#: elf32-bfin.c:1621 elf32-i386.c:3499 elf32-m68k.c:4006 elf32-s390.c:3138
-#: elf64-s390.c:3118 elf64-x86-64.c:4237
+#: elf32-bfin.c:1621 elf32-i386.c:3585 elf32-m68k.c:4008 elf32-s390.c:3132
+#: elf64-s390.c:3468 elf64-x86-64.c:5080
#, c-format
msgid "%pB(%pA+%#<PRIx64>): reloc against `%s': error %d"
msgstr ""
-#: elf32-bfin.c:2647
+#: elf32-bfin.c:2646
#, c-format
msgid "%pB: relocation at `%pA+%#<PRIx64>' references symbol `%s' with nonzero addend"
msgstr ""
-#: elf32-bfin.c:2664
+#: elf32-bfin.c:2663
msgid "relocation references symbol not defined in the module"
msgstr ""
-#: elf32-bfin.c:2762
+#: elf32-bfin.c:2761
msgid "R_BFIN_FUNCDESC references dynamic symbol with nonzero addend"
msgstr ""
-#: elf32-bfin.c:2802 elf32-bfin.c:2923
+#: elf32-bfin.c:2801 elf32-bfin.c:2922
msgid "cannot emit fixups in read-only section"
msgstr ""
-#: elf32-bfin.c:2832 elf32-bfin.c:2960 elf32-lm32.c:1007 elf32-sh.c:4383
+#: elf32-bfin.c:2831 elf32-bfin.c:2959 elf32-lm32.c:1006 elf32-sh.c:4386
msgid "cannot emit dynamic relocations in read-only section"
msgstr ""
-#: elf32-bfin.c:2882
+#: elf32-bfin.c:2881
msgid "R_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addend"
msgstr ""
-#: elf32-bfin.c:3045
+#: elf32-bfin.c:3044
msgid "relocations between different segments are not supported"
msgstr ""
-#: elf32-bfin.c:3046
+#: elf32-bfin.c:3045
msgid "warning: relocation references a different segment"
msgstr ""
-#: elf32-bfin.c:3141 elf32-cris.c:2042 elf32-epiphany.c:573 elf32-fr30.c:602
-#: elf32-frv.c:4057 elf32-ft32.c:500 elf32-ip2k.c:1488 elf32-iq2000.c:699
-#: elf32-m32c.c:632 elf32-mep.c:530 elf32-metag.c:1992 elf32-moxie.c:296
-#: elf32-msp430.c:1514 elf32-mt.c:406 elf32-or1k.c:1897 elf32-tilepro.c:3380
-#: elf32-v850.c:2302 elf32-visium.c:688 elf32-xstormy16.c:938 elf64-bpf.c:561
-#: elf64-mmix.c:1549 elfxx-tilegx.c:3750
+#: elf32-bfin.c:3140 elf32-cris.c:2041 elf32-epiphany.c:574 elf32-fr30.c:602
+#: elf32-frv.c:4056 elf32-ft32.c:500 elf32-ip2k.c:1489 elf32-iq2000.c:699
+#: elf32-m32c.c:632 elf32-mep.c:530 elf32-metag.c:1991 elf32-moxie.c:296
+#: elf32-msp430.c:1514 elf32-mt.c:406 elf32-or1k.c:1903 elf32-tilepro.c:3379
+#: elf32-v850.c:2305 elf32-visium.c:688 elf32-xstormy16.c:939 elf64-bpf.c:348
+#: elf64-mmix.c:1545 elfxx-tilegx.c:3752
msgid "internal error: dangerous relocation"
-msgstr ""
+msgstr "შიდრშეცდáƒáƒ›áƒ: სáƒáƒ¨áƒ˜áƒ¨áƒ˜ გáƒáƒ“áƒáƒ¢áƒáƒœáƒ"
#. Ignore init flag - it may not be set, despite the flags field containing valid data.
-#: elf32-bfin.c:4728 elf32-cris.c:3862 elf32-m68hc1x.c:1415 elf32-m68k.c:1265
-#: elf32-score.c:3987 elf32-score7.c:3794 elf32-vax.c:536 elf32-xgate.c:494
-#: elfxx-mips.c:16345
+#: elf32-bfin.c:4734 elf32-cris.c:3862 elf32-m68hc1x.c:1415 elf32-m68k.c:1264
+#: elf32-score.c:3986 elf32-score7.c:3793 elf32-vax.c:534 elf32-xgate.c:494
+#: elfxx-mips.c:16452
#, c-format
msgid "private flags = %lx:"
msgstr ""
-#: elf32-bfin.c:4779 elf32-frv.c:6585
+#: elf32-bfin.c:4785 elf32-frv.c:6591
#, c-format
msgid "%pB: cannot link non-fdpic object file into fdpic executable"
msgstr ""
-#: elf32-bfin.c:4783 elf32-frv.c:6589
+#: elf32-bfin.c:4789 elf32-frv.c:6595
#, c-format
msgid "%pB: cannot link fdpic object file into non-fdpic executable"
msgstr ""
-#: elf32-bfin.c:4920
+#: elf32-bfin.c:4925
#, c-format
msgid "*** check this relocation %s"
msgstr ""
-#: elf32-bfin.c:5036
+#: elf32-bfin.c:5040
msgid "the bfin target does not currently support the generation of copy relocations"
msgstr ""
-#: elf32-bfin.c:5330 elf32-cr16.c:2719 elf32-m68k.c:4420
+#: elf32-bfin.c:5335 elf32-cr16.c:2723 elf32-m68k.c:4423
msgid "unsupported relocation type"
msgstr ""
-#: elf32-cris.c:1120
+#: elf32-cris.c:1119
#, c-format
msgid "%pB, section %pA: unresolvable relocation %s against symbol `%s'"
msgstr ""
-#: elf32-cris.c:1185
+#: elf32-cris.c:1184
#, c-format
msgid "%pB, section %pA: no PLT nor GOT for relocation %s against symbol `%s'"
msgstr ""
-#: elf32-cris.c:1188
+#: elf32-cris.c:1187
#, c-format
msgid "%pB, section %pA: no PLT for relocation %s against symbol `%s'"
msgstr ""
-#: elf32-cris.c:1194 elf32-cris.c:1327 elf32-cris.c:1592 elf32-cris.c:1675
-#: elf32-cris.c:1828 elf32-tic6x.c:2560
+#: elf32-cris.c:1193 elf32-cris.c:1326 elf32-cris.c:1591 elf32-cris.c:1674
+#: elf32-cris.c:1827 elf32-tic6x.c:2552
msgid "[whose name is lost]"
-msgstr ""
+msgstr "[ვისი სáƒáƒ®áƒ”ლიც დáƒáƒ™áƒáƒ áƒ’ულიáƒ]"
-#: elf32-cris.c:1312 elf32-tic6x.c:2544
+#: elf32-cris.c:1311 elf32-tic6x.c:2536
#, c-format
msgid "%pB, section %pA: relocation %s with non-zero addend %<PRId64> against local symbol"
msgstr ""
-#: elf32-cris.c:1321 elf32-cris.c:1669 elf32-cris.c:1822 elf32-tic6x.c:2553
+#: elf32-cris.c:1320 elf32-cris.c:1668 elf32-cris.c:1821 elf32-tic6x.c:2545
#, c-format
msgid "%pB, section %pA: relocation %s with non-zero addend %<PRId64> against symbol `%s'"
msgstr ""
-#: elf32-cris.c:1348
+#: elf32-cris.c:1347
#, c-format
msgid "%pB, section %pA: relocation %s is not allowed for global symbol: `%s'"
msgstr ""
-#: elf32-cris.c:1365
+#: elf32-cris.c:1364
#, c-format
msgid "%pB, section %pA: relocation %s with no GOT created"
msgstr ""
#. We shouldn't get here for GCC-emitted code.
-#: elf32-cris.c:1582
+#: elf32-cris.c:1581
#, c-format
msgid "%pB, section %pA: relocation %s has an undefined reference to `%s', perhaps a declaration mixup?"
msgstr ""
-#: elf32-cris.c:1585
+#: elf32-cris.c:1584
#, c-format
msgid "%pB, section %pA: relocation %s is not allowed for `%s', a global symbol with default visibility, perhaps a declaration mixup?"
msgstr ""
-#: elf32-cris.c:1956
+#: elf32-cris.c:1955
#, c-format
msgid "%pB, section %pA: relocation %s is not allowed for symbol: `%s' which is defined outside the program, perhaps a declaration mixup?"
msgstr ""
-#: elf32-cris.c:2009
+#: elf32-cris.c:2008
msgid "(too many global variables for -fpic: recompile with -fPIC)"
msgstr ""
-#: elf32-cris.c:2016
+#: elf32-cris.c:2015
msgid "(thread-local data too big for -fpic or -msmall-tls: recompile with -fPIC or -mno-small-tls)"
msgstr ""
-#: elf32-cris.c:3051
+#: elf32-cris.c:3048
#, c-format
msgid "%pB, section %pA: v10/v32 compatible object must not contain a PIC relocation"
msgstr ""
-#: elf32-cris.c:3105
+#: elf32-cris.c:3102
#, c-format
msgid ""
"%pB, section %pA:\n"
" relocation %s not valid in a shared object; typically an option mixup, recompile with -fPIC"
msgstr ""
-#: elf32-cris.c:3323
+#: elf32-cris.c:3320
#, c-format
msgid "%pB, section %pA: relocation %s should not be used in a shared object; recompile with -fPIC"
msgstr ""
@@ -2350,7 +2418,7 @@ msgstr ""
#: elf32-cris.c:3813
msgid "unexpected machine number"
-msgstr ""
+msgstr "მáƒáƒ£áƒšáƒáƒ“ნელი მáƒáƒœáƒ¥áƒáƒœáƒ˜áƒ¡ ნáƒáƒ›áƒ”რი"
#: elf32-cris.c:3865
#, c-format
@@ -2360,12 +2428,12 @@ msgstr ""
#: elf32-cris.c:3868
#, c-format
msgid " [v10 and v32]"
-msgstr ""
+msgstr " [v10 დრv32]"
#: elf32-cris.c:3871
#, c-format
msgid " [v32]"
-msgstr ""
+msgstr " [v32]"
#: elf32-cris.c:3915
#, c-format
@@ -2387,52 +2455,52 @@ msgstr ""
msgid "%pB contains non-CRIS-v32 code, incompatible with previous objects"
msgstr ""
-#: elf32-csky.c:2019
+#: elf32-csky.c:2017
msgid "GOT table size out of range"
msgstr ""
-#: elf32-csky.c:2831
+#: elf32-csky.c:2828
#, c-format
msgid "warning: unrecognized arch eflag '%#lx'"
msgstr ""
-#: elf32-csky.c:2854
+#: elf32-csky.c:2851
#, c-format
msgid "warning: unrecognised arch name '%#x'"
msgstr ""
-#: elf32-csky.c:2928 elf32-csky.c:3086
+#: elf32-csky.c:2916 elf32-csky.c:3076
#, c-format
msgid "%pB: machine flag conflict with target"
msgstr ""
-#: elf32-csky.c:2941
+#: elf32-csky.c:2929
#, c-format
msgid "warning: file %pB's arch flag %s conflict with target %s,set target arch flag to %s"
msgstr ""
-#: elf32-csky.c:2970
+#: elf32-csky.c:2958
#, c-format
msgid "Error: %pB and %pB has different VDSP version"
msgstr ""
-#: elf32-csky.c:2987
+#: elf32-csky.c:2975
#, c-format
msgid "Error: %pB and %pB has different DSP version"
msgstr ""
-#: elf32-csky.c:3005
+#: elf32-csky.c:2993
#, c-format
msgid "Error: %pB and %pB has different FPU ABI"
msgstr ""
-#: elf32-csky.c:3100
+#: elf32-csky.c:3090
#, c-format
msgid "warning: file %pB's arch flag %s conflicts with target ck%s, using %s"
msgstr ""
#. The r_type is error, not support it.
-#: elf32-csky.c:4342 elf32-i386.c:344
+#: elf32-csky.c:4330 elf32-i386.c:344
#, c-format
msgid "%pB: unsupported relocation type: %#x"
msgstr ""
@@ -2448,104 +2516,104 @@ msgid "jump (PC rel26) to section (%s) not supported"
msgstr ""
#. Only if it's not an unresolved symbol.
-#: elf32-epiphany.c:569 elf32-ip2k.c:1484
+#: elf32-epiphany.c:570 elf32-ip2k.c:1485
msgid "unsupported relocation between data/insn address spaces"
msgstr ""
-#: elf32-frv.c:1453 elf32-frv.c:1604
+#: elf32-frv.c:1452 elf32-frv.c:1603
msgid "relocation requires zero addend"
msgstr ""
-#: elf32-frv.c:2833
+#: elf32-frv.c:2832
#, c-format
msgid "%H: relocation to `%s+%v' may have caused the error above\n"
msgstr ""
-#: elf32-frv.c:2850
+#: elf32-frv.c:2849
msgid "%H: relocation references symbol not defined in the module\n"
msgstr ""
-#: elf32-frv.c:2926
+#: elf32-frv.c:2925
msgid "%H: R_FRV_GETTLSOFF not applied to a call instruction\n"
msgstr ""
-#: elf32-frv.c:2967
+#: elf32-frv.c:2966
msgid "%H: R_FRV_GOTTLSDESC12 not applied to an lddi instruction\n"
msgstr ""
-#: elf32-frv.c:3038
+#: elf32-frv.c:3037
msgid "%H: R_FRV_GOTTLSDESCHI not applied to a sethi instruction\n"
msgstr ""
-#: elf32-frv.c:3075
+#: elf32-frv.c:3074
msgid "%H: R_FRV_GOTTLSDESCLO not applied to a setlo or setlos instruction\n"
msgstr ""
-#: elf32-frv.c:3122
+#: elf32-frv.c:3121
msgid "%H: R_FRV_TLSDESC_RELAX not applied to an ldd instruction\n"
msgstr ""
-#: elf32-frv.c:3206
+#: elf32-frv.c:3205
msgid "%H: R_FRV_GETTLSOFF_RELAX not applied to a calll instruction\n"
msgstr ""
-#: elf32-frv.c:3260
+#: elf32-frv.c:3259
msgid "%H: R_FRV_GOTTLSOFF12 not applied to an ldi instruction\n"
msgstr ""
-#: elf32-frv.c:3290
+#: elf32-frv.c:3289
msgid "%H: R_FRV_GOTTLSOFFHI not applied to a sethi instruction\n"
msgstr ""
-#: elf32-frv.c:3319
+#: elf32-frv.c:3318
msgid "%H: R_FRV_GOTTLSOFFLO not applied to a setlo or setlos instruction\n"
msgstr ""
-#: elf32-frv.c:3349
+#: elf32-frv.c:3348
msgid "%H: R_FRV_TLSOFF_RELAX not applied to an ld instruction\n"
msgstr ""
-#: elf32-frv.c:3394
+#: elf32-frv.c:3393
msgid "%H: R_FRV_TLSMOFFHI not applied to a sethi instruction\n"
msgstr ""
-#: elf32-frv.c:3421
+#: elf32-frv.c:3420
msgid "R_FRV_TLSMOFFLO not applied to a setlo or setlos instruction\n"
msgstr ""
-#: elf32-frv.c:3542 elf32-frv.c:3662
+#: elf32-frv.c:3541 elf32-frv.c:3661
msgid "%H: %s references dynamic symbol with nonzero addend\n"
msgstr ""
-#: elf32-frv.c:3583 elf32-frv.c:3704
+#: elf32-frv.c:3582 elf32-frv.c:3703
msgid "%H: cannot emit fixups in read-only section\n"
msgstr ""
-#: elf32-frv.c:3613 elf32-frv.c:3746
+#: elf32-frv.c:3612 elf32-frv.c:3745
msgid "%H: cannot emit dynamic relocations in read-only section\n"
msgstr ""
-#: elf32-frv.c:3918
+#: elf32-frv.c:3917
#, c-format
msgid "%H: reloc against `%s' references a different segment\n"
msgstr ""
-#: elf32-frv.c:4069
+#: elf32-frv.c:4068
#, c-format
msgid "%H: reloc against `%s': %s\n"
msgstr ""
-#: elf32-frv.c:6496
+#: elf32-frv.c:6502
#, c-format
msgid "%pB: compiled with %s and linked with modules that use non-pic relocations"
msgstr ""
-#: elf32-frv.c:6550 elf32-iq2000.c:830 elf32-m32c.c:876
+#: elf32-frv.c:6556 elf32-iq2000.c:830 elf32-m32c.c:877
#, c-format
msgid "%pB: compiled with %s and linked with modules compiled with %s"
msgstr ""
-#: elf32-frv.c:6563
+#: elf32-frv.c:6569
#, c-format
msgid "%pB: uses different unknown e_flags (%#x) fields than previous modules (%#x)"
msgstr ""
@@ -2555,17 +2623,17 @@ msgstr ""
msgid "%pB: relocations in generic ELF (EM: %d)"
msgstr ""
-#: elf32-hppa.c:863 elf32-hppa.c:3403
+#: elf32-hppa.c:862 elf32-hppa.c:3403
#, c-format
msgid "%pB(%pA+%#<PRIx64>): cannot reach %s, recompile with -ffunction-sections"
msgstr ""
-#: elf32-hppa.c:1241
+#: elf32-hppa.c:1240
#, c-format
msgid "%pB: relocation %s can not be used when making a shared object; recompile with -fPIC"
msgstr ""
-#: elf32-hppa.c:2580
+#: elf32-hppa.c:2579
#, c-format
msgid "%pB: duplicate export stub %s"
msgstr ""
@@ -2575,97 +2643,107 @@ msgstr ""
msgid "%pB(%pA+%#<PRIx64>): %s fixup for insn %#x is not supported in a non-shared link"
msgstr ""
-#: elf32-hppa.c:4032
+#: elf32-hppa.c:3456
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): displacement %#x for insn %#x is not a multiple of 8 (gp %#x)"
+msgstr ""
+
+#: elf32-hppa.c:3475
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): displacement %#x for insn %#x is not a multiple of 4 (gp %#x)"
+msgstr ""
+
+#: elf32-hppa.c:4090
#, c-format
msgid "%s has both normal and TLS relocs"
msgstr ""
-#: elf32-hppa.c:4050
+#: elf32-hppa.c:4108
#, c-format
msgid "%pB:%s has both normal and TLS relocs"
msgstr ""
-#: elf32-hppa.c:4109
+#: elf32-hppa.c:4167
#, c-format
msgid "%pB(%pA+%#<PRIx64>): cannot handle %s for %s"
msgstr ""
-#: elf32-hppa.c:4413
+#: elf32-hppa.c:4471
msgid ".got section not immediately after .plt section"
msgstr ""
-#: elf32-i386.c:1163 elf64-x86-64.c:1450
+#: elf32-i386.c:1300
#, c-format
-msgid "%pB: TLS transition from %s to %s against `%s' at %#<PRIx64> in section `%pA' failed"
+msgid "%pB: direct GOT relocation R_386_GOT32X against `%s' without base register can not be used when making a shared object"
msgstr ""
-#: elf32-i386.c:1266
+#: elf32-i386.c:1586
#, c-format
-msgid "%pB: direct GOT relocation R_386_GOT32X against `%s' without base register can not be used when making a shared object"
+msgid "%pB: bad reloc offset (%#<PRIx32> > %#<PRIx32>) for section `%pA'"
msgstr ""
-#: elf32-i386.c:1695 elf32-s390.c:1151 elf32-sh.c:5497 elf32-tilepro.c:1548
-#: elf32-xtensa.c:1263 elf64-s390.c:1083 elfxx-sparc.c:1556
-#: elfxx-tilegx.c:1767 elfnn-loongarch.c:586 elfnn-riscv.c:568
+#: elf32-i386.c:1771 elf32-s390.c:1149 elf32-sh.c:5500 elf32-tilepro.c:1546
+#: elf32-xtensa.c:1261 elf64-s390.c:1162 elfxx-sparc.c:1565 elfxx-tilegx.c:1766
+#: elfnn-loongarch.c:750 elfnn-riscv.c:866
#, c-format
msgid "%pB: `%s' accessed both as normal and thread local symbol"
msgstr ""
-#: elf32-i386.c:1767
+#: elf32-i386.c:1843
#, c-format
msgid "%pB: unsupported non-PIC call to IFUNC `%s'"
msgstr ""
-#: elf32-i386.c:1822 elf64-x86-64.c:2343
+#: elf32-i386.c:1898 elf64-x86-64.c:2964
#, c-format
msgid "%pB: non-canonical reference to canonical protected function `%s' in %pB"
msgstr ""
-#: elf32-i386.c:2385 elf64-x86-64.c:2806 elfnn-riscv.c:2271
+#: elf32-i386.c:2461 elf64-x86-64.c:3446 elfnn-riscv.c:2742
#, c-format
msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported"
msgstr ""
-#: elf32-i386.c:2418 elf32-i386.c:3710 elf32-i386.c:3858 elf64-x86-64.c:2863
-#: elf64-x86-64.c:4410 elf64-x86-64.c:4573 elfnn-riscv.c:2144
-#: elfnn-riscv.c:2967 elfnn-riscv.c:3041
+#: elf32-i386.c:2494 elf32-i386.c:3794 elf32-i386.c:3942 elf64-x86-64.c:3503
+#: elf64-x86-64.c:5254 elf64-x86-64.c:5425 elfnn-riscv.c:2604
+#: elfnn-riscv.c:3511 elfnn-riscv.c:3585
#, c-format
msgid "Local IFUNC function `%s' in %pB\n"
msgstr ""
-#: elf32-i386.c:2596
+#: elf32-i386.c:2672
#, c-format
msgid "%pB: direct GOT relocation %s against `%s' without base register can not be used when making a shared object"
msgstr ""
-#: elf32-i386.c:2631 elf64-x86-64.c:3077
+#: elf32-i386.c:2707 elf64-x86-64.c:3726
msgid "hidden symbol"
-msgstr ""
+msgstr "დáƒáƒ›áƒáƒšáƒ£áƒšáƒ˜ სიმბáƒáƒšáƒ"
-#: elf32-i386.c:2634 elf64-x86-64.c:3080
+#: elf32-i386.c:2710 elf64-x86-64.c:3729
msgid "internal symbol"
-msgstr ""
+msgstr "შიდრსიმბáƒáƒšáƒ"
-#: elf32-i386.c:2637 elf64-x86-64.c:3083
+#: elf32-i386.c:2713 elf64-x86-64.c:3732
msgid "protected symbol"
-msgstr ""
+msgstr "დáƒáƒªáƒ£áƒšáƒ˜ სიმბáƒáƒšáƒ"
-#: elf32-i386.c:2640 elf64-x86-64.c:3086
+#: elf32-i386.c:2716 elf64-x86-64.c:3735
msgid "symbol"
msgstr "სიმბáƒáƒšáƒ"
-#: elf32-i386.c:2646
+#: elf32-i386.c:2722
#, c-format
msgid "%pB: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object"
msgstr ""
-#: elf32-i386.c:2659
+#: elf32-i386.c:2735
#, c-format
msgid "%pB: relocation R_386_GOTOFF against protected %s `%s' can not be used when making a shared object"
msgstr ""
-#: elf32-i386.c:4061 elf64-x86-64.c:4784
-msgid "%F%P: discarded output section: `%pA'\n"
+#: elf32-i386.c:4145 elf64-x86-64.c:5645
+msgid "%P: discarded output section: `%pA'\n"
msgstr ""
#: elf32-ip2k.c:855 elf32-ip2k.c:861 elf32-ip2k.c:928 elf32-ip2k.c:934
@@ -2676,25 +2754,25 @@ msgstr ""
msgid "ip2k relaxer: switch table header corrupt."
msgstr ""
-#: elf32-ip2k.c:1297
+#: elf32-ip2k.c:1298
#, c-format
msgid "ip2k linker: missing page instruction at %#<PRIx64> (dest = %#<PRIx64>)"
msgstr ""
-#: elf32-ip2k.c:1316
+#: elf32-ip2k.c:1317
#, c-format
msgid "ip2k linker: redundant page instruction at %#<PRIx64> (dest = %#<PRIx64>)"
msgstr ""
-#: elf32-lm32.c:609 elf32-nios2.c:3145
+#: elf32-lm32.c:608
msgid "global pointer relative relocation when _gp not defined"
msgstr ""
-#: elf32-lm32.c:664 elf32-nios2.c:3582
+#: elf32-lm32.c:663
msgid "global pointer relative address out of range"
msgstr ""
-#: elf32-lm32.c:960
+#: elf32-lm32.c:959
#, c-format
msgid "internal error: addend should be zero for %s"
msgstr ""
@@ -2703,7 +2781,7 @@ msgstr ""
msgid "SDA relocation when _SDA_BASE_ not defined"
msgstr ""
-#: elf32-m32r.c:2776 elf32-microblaze.c:1134 elf32-microblaze.c:1182
+#: elf32-m32r.c:2778 elf32-microblaze.c:1147 elf32-microblaze.c:1195
#, c-format
msgid "%pB: the target (%s) of an %s relocation is in the wrong section (%pA)"
msgstr ""
@@ -2713,7 +2791,7 @@ msgstr ""
msgid "%pB: instruction set mismatch with previous modules"
msgstr ""
-#: elf32-m32r.c:3300 elf32-nds32.c:6900
+#: elf32-m32r.c:3300 elf32-nds32.c:6906
#, c-format
msgid "private flags = %lx"
msgstr ""
@@ -2721,17 +2799,17 @@ msgstr ""
#: elf32-m32r.c:3305
#, c-format
msgid ": m32r instructions"
-msgstr ""
+msgstr ": m32r ინსტრუქციები"
#: elf32-m32r.c:3306
#, c-format
msgid ": m32rx instructions"
-msgstr ""
+msgstr ": m32rx ინსტრუქციები"
#: elf32-m32r.c:3307
#, c-format
msgid ": m32r2 instructions"
-msgstr ""
+msgstr ": m32r2 ინსტრუქციები"
#: elf32-m68hc1x.c:1135
#, c-format
@@ -2776,12 +2854,12 @@ msgstr ""
#: elf32-m68hc1x.c:1418 elf32-xgate.c:497
#, c-format
msgid "[abi=32-bit int, "
-msgstr ""
+msgstr "[abi=32-ბიტიáƒáƒœáƒ˜ მთელ. რიცხვ, "
#: elf32-m68hc1x.c:1420 elf32-xgate.c:499
#, c-format
msgid "[abi=16-bit int, "
-msgstr ""
+msgstr "[abi=16-ბიტიáƒáƒœáƒ˜ მთელ. რიცხვ, "
#: elf32-m68hc1x.c:1423 elf32-xgate.c:502
#, c-format
@@ -2796,17 +2874,17 @@ msgstr ""
#: elf32-m68hc1x.c:1428
#, c-format
msgid "cpu=HC11]"
-msgstr ""
+msgstr "cpu=HC11]"
#: elf32-m68hc1x.c:1430
#, c-format
msgid "cpu=HCS12]"
-msgstr ""
+msgstr "cpu=HCS12]"
#: elf32-m68hc1x.c:1432
#, c-format
msgid "cpu=HC12]"
-msgstr ""
+msgstr "cpu=HC12]"
#: elf32-m68hc1x.c:1435
#, c-format
@@ -2823,21 +2901,21 @@ msgstr ""
msgid " [XGATE RAM offsetting]"
msgstr ""
-#: elf32-m68k.c:1157 elf32-m68k.c:1165 elf32-ppc.c:3576 elf32-ppc.c:3584
+#: elf32-m68k.c:1156 elf32-m68k.c:1164 elf32-ppc.c:3570 elf32-ppc.c:3578
#, c-format
msgid "%pB uses hard float, %pB uses soft float"
msgstr ""
-#: elf32-m68k.c:1280 elf32-m68k.c:1281 vms-alpha.c:8053 vms-alpha.c:8069
+#: elf32-m68k.c:1279 elf32-m68k.c:1280 vms-alpha.c:8089 vms-alpha.c:8105
msgid "unknown"
-msgstr ""
+msgstr "უცნáƒáƒ‘ი"
-#: elf32-m68k.c:1731
+#: elf32-m68k.c:1730
#, c-format
msgid "%pB: GOT overflow: number of relocations with 8-bit offset > %d"
msgstr ""
-#: elf32-m68k.c:1738
+#: elf32-m68k.c:1737
#, c-format
msgid "%pB: GOT overflow: number of relocations with 8- or 16-bit offset > %d"
msgstr ""
@@ -2868,28 +2946,28 @@ msgstr ""
msgid "private flags = 0x%lx"
msgstr ""
-#: elf32-metag.c:1857
+#: elf32-metag.c:1856
#, c-format
msgid "%pB(%pA): multiple TLS models are not supported"
msgstr ""
-#: elf32-metag.c:1860
+#: elf32-metag.c:1859
#, c-format
msgid "%pB(%pA): shared library symbol %s encountered whilst performing a static link"
msgstr ""
-#: elf32-microblaze.c:1577 elf32-tilepro.c:3021 elfxx-sparc.c:3446
-#: elfxx-tilegx.c:3415
+#: elf32-microblaze.c:1590 elf32-tilepro.c:3020 elfxx-sparc.c:3452
+#: elfxx-tilegx.c:3417
#, c-format
msgid "%pB: probably compiled without -fPIC?"
msgstr ""
-#: elf32-mips.c:1776 elf64-mips.c:3515 elfn32-mips.c:3333
+#: elf32-mips.c:1776 elf64-mips.c:3515 elfn32-mips.c:3334
msgid "literal relocation occurs for an external symbol"
msgstr ""
#: elf32-mips.c:1827 elf32-score.c:563 elf32-score7.c:465 elf64-mips.c:3558
-#: elfn32-mips.c:3374
+#: elfn32-mips.c:3376
msgid "32bits gp relative relocation occurs for an external symbol"
msgstr ""
@@ -2906,297 +2984,264 @@ msgstr ""
msgid "internal error: branch/jump to an odd address detected"
msgstr ""
-#: elf32-msp430.c:2671
+#: elf32-msp430.c:2673
#, c-format
msgid "warning: %pB: unknown MSPABI object attribute %d"
msgstr ""
-#: elf32-msp430.c:2772
+#: elf32-msp430.c:2774
#, c-format
msgid "error: %pB uses %s instructions but %pB uses %s"
msgstr ""
-#: elf32-msp430.c:2784
+#: elf32-msp430.c:2786
#, c-format
msgid "error: %pB uses the %s code model whereas %pB uses the %s code model"
msgstr ""
-#: elf32-msp430.c:2797
+#: elf32-msp430.c:2799
#, c-format
msgid "error: %pB uses the large code model but %pB uses MSP430 instructions"
msgstr ""
-#: elf32-msp430.c:2808
+#: elf32-msp430.c:2810
#, c-format
msgid "error: %pB uses the %s data model whereas %pB uses the %s data model"
msgstr ""
-#: elf32-msp430.c:2821
+#: elf32-msp430.c:2823
#, c-format
msgid "error: %pB uses the small code model but %pB uses the %s data model"
msgstr ""
-#: elf32-msp430.c:2833
+#: elf32-msp430.c:2835
#, c-format
msgid "error: %pB uses the %s data model but %pB only uses MSP430 instructions"
msgstr ""
-#: elf32-msp430.c:2858
+#: elf32-msp430.c:2860
#, c-format
msgid "error: %pB can use the upper region for data, but %pB assumes data is exclusively in lower memory"
msgstr ""
-#: elf32-nds32.c:3674
+#: elf32-nds32.c:3680
#, c-format
msgid "error: can't find symbol: %s"
-msgstr ""
+msgstr "შეცდáƒáƒ›áƒ: ვერ ვპáƒáƒ£áƒšáƒáƒ‘ სიმბáƒáƒšáƒáƒ¡: %s"
-#: elf32-nds32.c:5573
+#: elf32-nds32.c:5579
#, c-format
msgid "%pB: warning: %s unsupported in shared mode"
msgstr ""
-#: elf32-nds32.c:5699
+#: elf32-nds32.c:5705
#, c-format
msgid "%pB: warning: unaligned access to GOT entry"
msgstr ""
-#: elf32-nds32.c:5740
+#: elf32-nds32.c:5746
#, c-format
msgid "%pB: warning: relocate SDA_BASE failed"
msgstr ""
-#: elf32-nds32.c:5762
+#: elf32-nds32.c:5768
#, c-format
msgid "%pB(%pA): warning: unaligned small data access of type %d"
msgstr ""
-#: elf32-nds32.c:6688
+#: elf32-nds32.c:6694
#, c-format
msgid "%pB: ISR vector size mismatch with previous modules, previous %u-byte, current %u-byte"
msgstr ""
-#: elf32-nds32.c:6736
+#: elf32-nds32.c:6742
#, c-format
msgid "%pB: warning: endian mismatch with previous modules"
msgstr ""
-#: elf32-nds32.c:6750
+#: elf32-nds32.c:6756
#, c-format
msgid "%pB: warning: older version of object file encountered, please recompile with current tool chain"
msgstr ""
-#: elf32-nds32.c:6838
+#: elf32-nds32.c:6844
#, c-format
msgid "%pB: error: ABI mismatch with previous modules"
msgstr ""
-#: elf32-nds32.c:6848
+#: elf32-nds32.c:6854
#, c-format
msgid "%pB: error: instruction set mismatch with previous modules"
msgstr ""
-#: elf32-nds32.c:6875
+#: elf32-nds32.c:6881
#, c-format
msgid "%pB: warning: incompatible elf-versions %s and %s"
msgstr ""
-#: elf32-nds32.c:6906
+#: elf32-nds32.c:6912
#, c-format
msgid ": n1 instructions"
-msgstr ""
+msgstr ": n1 ინსტრუქციები"
-#: elf32-nds32.c:6909
+#: elf32-nds32.c:6915
#, c-format
msgid ": n1h instructions"
-msgstr ""
+msgstr ": n1h ინსტრუქციები"
-#: elf32-nds32.c:9358
+#: elf32-nds32.c:9364
#, c-format
msgid "%pB: error: search_nds32_elf_blank reports wrong node"
msgstr ""
-#: elf32-nds32.c:9622
+#: elf32-nds32.c:9628
#, c-format
msgid "%pB: warning: %s points to unrecognized reloc at %#<PRIx64>"
msgstr ""
-#: elf32-nds32.c:12887
+#: elf32-nds32.c:12893
#, c-format
msgid "%pB: nested OMIT_FP in %pA"
msgstr ""
-#: elf32-nds32.c:12906
+#: elf32-nds32.c:12912
#, c-format
msgid "%pB: unmatched OMIT_FP in %pA"
msgstr ""
-#: elf32-nds32.c:13189 elfxx-mips.c:13501 reloc.c:8651
-#, c-format
-msgid "%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n"
-msgstr ""
-
-#: elf32-nios2.c:2934
-#, c-format
-msgid "error: %pB: big-endian R2 is not supported"
-msgstr ""
-
-#: elf32-nios2.c:3826
-#, c-format
-msgid "global pointer relative relocation at address %#<PRIx64> when _gp not defined\n"
-msgstr ""
-
-#: elf32-nios2.c:3856
-#, c-format
-msgid "unable to reach %s (at %#<PRIx64>) from the global pointer (at %#<PRIx64>) because the offset (%<PRId64>) is out of the allowed range, -32678 to 32767\n"
-msgstr ""
-
-#: elf32-nios2.c:4511 elf32-pru.c:931
-msgid "relocation out of range"
-msgstr ""
-
-#: elf32-nios2.c:4521 elf32-pru.c:941 elf32-tic6x.c:2657
-msgid "dangerous relocation"
-msgstr ""
-
-#: elf32-nios2.c:5360
-#, c-format
-msgid "dynamic variable `%s' is zero size"
-msgstr ""
-
-#: elf32-or1k.c:1258
+#: elf32-or1k.c:1256
#, c-format
msgid "%pB: Cannot handle relocation value size of %d"
msgstr ""
-#: elf32-or1k.c:1366
+#: elf32-or1k.c:1375
#, c-format
msgid "%pB: unknown relocation type %d"
msgstr ""
-#: elf32-or1k.c:1420
+#: elf32-or1k.c:1429
#, c-format
msgid "%pB: addend should be zero for plt relocations"
msgstr ""
-#: elf32-or1k.c:1536
+#: elf32-or1k.c:1542
#, c-format
msgid "%pB: addend should be zero for got relocations"
msgstr ""
-#: elf32-or1k.c:1553
+#: elf32-or1k.c:1559
#, c-format
msgid "%pB: gotoff relocation against dynamic symbol %s"
msgstr ""
-#: elf32-or1k.c:1567 elf32-or1k.c:1582 elf64-alpha.c:4427 elf64-alpha.c:4571
+#: elf32-or1k.c:1573 elf32-or1k.c:1588 elf64-alpha.c:4412 elf64-alpha.c:4556
#, c-format
msgid "%pB: pc-relative relocation against dynamic symbol %s"
msgstr ""
-#: elf32-or1k.c:1596
+#: elf32-or1k.c:1602
#, c-format
msgid "%pB: non-pic relocation against symbol %s"
msgstr ""
-#: elf32-or1k.c:1680
+#: elf32-or1k.c:1686
#, c-format
msgid "%pB: support for local dynamic not implemented"
msgstr ""
-#: elf32-or1k.c:1859
+#: elf32-or1k.c:1865
#, c-format
msgid "%pB: will not resolve runtime TLS relocation"
msgstr ""
-#: elf32-or1k.c:2193
+#: elf32-or1k.c:2199
#, c-format
msgid "%pB: bad relocation section name `%s'"
msgstr ""
-#: elf32-or1k.c:3307
+#: elf32-or1k.c:3313
#, c-format
msgid "%pB: %s flag mismatch with previous modules"
msgstr ""
-#: elf32-ppc.c:993 elf64-ppc.c:1748
+#: elf32-ppc.c:990 elf64-ppc.c:1753
#, c-format
msgid "generic linker can't handle %s"
msgstr ""
-#: elf32-ppc.c:1633
+#: elf32-ppc.c:1627
#, c-format
msgid "corrupt %s section in %pB"
msgstr ""
-#: elf32-ppc.c:1652
+#: elf32-ppc.c:1646
#, c-format
msgid "unable to read in %s section from %pB"
msgstr ""
-#: elf32-ppc.c:1694
+#: elf32-ppc.c:1688
#, c-format
msgid "warning: unable to set size of %s section in %pB"
msgstr ""
-#: elf32-ppc.c:1743
+#: elf32-ppc.c:1737
msgid "failed to allocate space for new APUinfo section"
msgstr ""
-#: elf32-ppc.c:1762
+#: elf32-ppc.c:1756
msgid "failed to compute new APUinfo section"
msgstr ""
-#: elf32-ppc.c:1765
+#: elf32-ppc.c:1759
msgid "failed to install new APUinfo section"
msgstr ""
-#: elf32-ppc.c:2873
+#: elf32-ppc.c:2867
#, c-format
msgid "%pB: relocation %s cannot be used when making a shared object"
msgstr ""
-#: elf32-ppc.c:3592 elf32-ppc.c:3600
+#: elf32-ppc.c:3586 elf32-ppc.c:3594
#, c-format
msgid "%pB uses double-precision hard float, %pB uses single-precision hard float"
msgstr ""
-#: elf32-ppc.c:3622 elf32-ppc.c:3630
+#: elf32-ppc.c:3616 elf32-ppc.c:3624
#, c-format
msgid "%pB uses 64-bit long double, %pB uses 128-bit long double"
msgstr ""
-#: elf32-ppc.c:3638 elf32-ppc.c:3646
+#: elf32-ppc.c:3632 elf32-ppc.c:3640
#, c-format
msgid "%pB uses IBM long double, %pB uses IEEE long double"
msgstr ""
-#: elf32-ppc.c:3713 elf32-ppc.c:3722
+#: elf32-ppc.c:3707 elf32-ppc.c:3716
#, c-format
msgid "%pB uses AltiVec vector ABI, %pB uses SPE vector ABI"
msgstr ""
-#: elf32-ppc.c:3751 elf32-ppc.c:3760
+#: elf32-ppc.c:3745 elf32-ppc.c:3754
#, c-format
msgid "%pB uses r3/r4 for small structure returns, %pB uses memory"
msgstr ""
-#: elf32-ppc.c:3824
+#: elf32-ppc.c:3818
#, c-format
msgid "%pB: compiled with -mrelocatable and linked with modules compiled normally"
msgstr ""
-#: elf32-ppc.c:3832
+#: elf32-ppc.c:3826
#, c-format
msgid "%pB: compiled normally and linked with modules compiled with -mrelocatable"
msgstr ""
-#: elf32-ppc.c:3903
+#: elf32-ppc.c:3897
#, c-format
msgid "%pB(%pA+0x%lx): expected 16A style relocation on 0x%08x insn"
msgstr ""
-#: elf32-ppc.c:3922
+#: elf32-ppc.c:3916
#, c-format
msgid "%pB(%pA+0x%lx): expected 16D style relocation on 0x%08x insn"
msgstr ""
@@ -3210,7 +3255,7 @@ msgstr ""
msgid "bss-plt forced by profiling"
msgstr ""
-#: elf32-ppc.c:4605 elf64-ppc.c:8478
+#: elf32-ppc.c:4606 elf64-ppc.c:8517
msgid "%H: warning: %s unexpected insn %#x.\n"
msgstr ""
@@ -3218,41 +3263,45 @@ msgstr ""
#. could just mark this symbol to exclude it
#. from tls optimization but it's safer to skip
#. the entire optimization.
-#: elf32-ppc.c:4635 elf64-ppc.c:8543
+#: elf32-ppc.c:4636 elf64-ppc.c:8582
#, c-format
msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n"
msgstr ""
-#: elf32-ppc.c:5564 elf32-sh.c:3017 elf32-tilepro.c:2248 elfxx-sparc.c:2454
-#: elfxx-tilegx.c:2494
+#: elf32-ppc.c:5565 elf32-sh.c:3019 elf32-tilepro.c:2246 elfxx-sparc.c:2464
+#: elfxx-tilegx.c:2495
#, c-format
msgid "%pB: dynamic relocation in read-only section `%pA'\n"
msgstr ""
-#: elf32-ppc.c:7439
+#: elf32-ppc.c:6512
+msgid "%pB: Adjusting branch at 0x%V towards \"%s\" in section %s\n"
+msgstr ""
+
+#: elf32-ppc.c:7454
msgid "%P: %H: error: %s with unexpected instruction %x\n"
msgstr ""
-#: elf32-ppc.c:7477
+#: elf32-ppc.c:7492
msgid "%H: fixup branch overflow\n"
msgstr ""
-#: elf32-ppc.c:7517 elf32-ppc.c:7555
+#: elf32-ppc.c:7532 elf32-ppc.c:7570
#, c-format
msgid "%pB(%pA+%#<PRIx64>): error: %s with unexpected instruction %#x"
msgstr ""
-#: elf32-ppc.c:7619
+#: elf32-ppc.c:7634
#, c-format
msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n"
msgstr ""
-#: elf32-ppc.c:7655
+#: elf32-ppc.c:7670
#, c-format
msgid "%pB: reloc %#x unsupported"
msgstr ""
-#: elf32-ppc.c:7943
+#: elf32-ppc.c:7953
#, c-format
msgid "%H: non-zero addend on %s reloc against `%s'\n"
msgstr ""
@@ -3265,58 +3314,66 @@ msgstr ""
#. local won't have the +32k reloc addend trick marking
#. -fPIC code, so the linker won't know whether r30 is
#. _GLOBAL_OFFSET_TABLE_ or pointing into a .got2 section.
-#: elf32-ppc.c:7975
+#: elf32-ppc.c:7985
#, c-format
msgid "%X%H: @local call to ifunc %s\n"
msgstr ""
-#: elf32-ppc.c:8154
+#: elf32-ppc.c:8163
#, c-format
msgid "%H: relocation %s for indirect function %s unsupported\n"
msgstr ""
-#: elf32-ppc.c:8493 elf32-ppc.c:8524 elf32-ppc.c:8627 elf32-ppc.c:8727
+#: elf32-ppc.c:8501 elf32-ppc.c:8532 elf32-ppc.c:8635 elf32-ppc.c:8735
#, c-format
msgid "%pB: the target (%s) of a %s relocation is in the wrong output section (%s)"
msgstr ""
-#: elf32-ppc.c:8905 elf32-ppc.c:8926
+#: elf32-ppc.c:8913 elf32-ppc.c:8934
msgid "%X%P: %H: %s relocation unsupported for bss-plt\n"
msgstr ""
-#: elf32-ppc.c:9008
+#: elf32-ppc.c:9016
#, c-format
msgid "%H: error: %s against `%s' not a multiple of %u\n"
msgstr ""
-#: elf32-ppc.c:9037
+#: elf32-ppc.c:9045
#, c-format
msgid "%H: unresolvable %s relocation against symbol `%s'\n"
msgstr ""
-#: elf32-ppc.c:9119
+#: elf32-ppc.c:9127
#, c-format
msgid "%H: %s reloc against `%s': error %d\n"
msgstr ""
-#: elf32-ppc.c:10000
+#: elf32-ppc.c:10009
msgid "%X%P: text relocations and GNU indirect functions will result in a segfault at runtime\n"
msgstr ""
-#: elf32-ppc.c:10004 elf64-ppc.c:18281
+#: elf32-ppc.c:10013 elf64-ppc.c:18330
msgid "%P: warning: text relocations and GNU indirect functions may result in a segfault at runtime\n"
msgstr ""
-#: elf32-ppc.c:10049
+#: elf32-ppc.c:10058
#, c-format
msgid "%s not defined in linker created %pA"
msgstr ""
-#: elf32-pru.c:582 elf32-pru.c:1475
+#: elf32-pru.c:582 elf32-pru.c:1477
#, c-format
msgid "error: %pB: old incompatible object file detected"
msgstr ""
+#: elf32-pru.c:931
+msgid "relocation out of range"
+msgstr ""
+
+#: elf32-pru.c:941 elf32-tic6x.c:2649
+msgid "dangerous relocation"
+msgstr "სáƒáƒ¨áƒ˜áƒ¨áƒ˜ გáƒáƒ“áƒáƒ¢áƒáƒœáƒ"
+
#: elf32-rl78.c:551
msgid "RL78 reloc stack overflow/underflow"
msgstr ""
@@ -3358,7 +3415,7 @@ msgstr ""
#: elf32-rl78.c:1250 elf32-rl78.c:1254
#, c-format
msgid "- %pB is 64-bit, %pB is not"
-msgstr ""
+msgstr "- %pB 64-ბიტიáƒáƒœáƒ˜áƒ, %pB კი áƒáƒ áƒ"
#: elf32-rl78.c:1281
#, c-format
@@ -3398,216 +3455,221 @@ msgstr ""
msgid "%pB(%pA): error: call to undefined function '%s'"
msgstr ""
-#: elf32-rx.c:3184
+#: elf32-rx.c:3185
#, c-format
msgid "there is a conflict merging the ELF header flags from %pB"
msgstr ""
-#: elf32-rx.c:3187
+#: elf32-rx.c:3188
#, c-format
msgid " the input file's flags: %s"
msgstr ""
-#: elf32-rx.c:3189
+#: elf32-rx.c:3190
#, c-format
msgid " the output file's flags: %s"
msgstr ""
-#: elf32-rx.c:3796
+#: elf32-rx.c:3797
#, c-format
msgid "%pB:%pA: table %s missing corresponding %s"
msgstr ""
-#: elf32-rx.c:3804
+#: elf32-rx.c:3805
#, c-format
msgid "%pB:%pA: %s and %s must be in the same input section"
msgstr ""
-#: elf32-s390.c:2009 elf64-s390.c:1976
+#: elf32-s390.c:2007 elf64-s390.c:2242
#, c-format
msgid "%pB(%pA+%#<PRIx64>): invalid instruction for TLS relocation %s"
msgstr ""
-#: elf32-score.c:1515 elf32-score7.c:1378 elfxx-mips.c:3853
+#: elf32-score.c:1505 elf32-score7.c:1368 elfxx-mips.c:3914
msgid "not enough GOT space for local GOT entries"
msgstr ""
-#: elf32-score.c:2747
+#: elf32-score.c:2737
msgid "address not word aligned"
msgstr ""
-#: elf32-score.c:2828 elf32-score7.c:2635
+#: elf32-score.c:2818 elf32-score7.c:2625
#, c-format
msgid "%pB: malformed reloc detected for section %pA"
msgstr ""
-#: elf32-score.c:2882 elf32-score7.c:2689
+#: elf32-score.c:2872 elf32-score7.c:2679
#, c-format
msgid "%pB: CALL15 reloc at %#<PRIx64> not against global symbol"
msgstr ""
-#: elf32-score.c:3990 elf32-score7.c:3797
+#: elf32-score.c:3483 elf32-score7.c:3294 elfxx-mips.c:11260
+#, c-format
+msgid "%pB: cannot handle more than %d dynamic symbols"
+msgstr ""
+
+#: elf32-score.c:3989 elf32-score7.c:3796
#, c-format
msgid " [pic]"
msgstr ""
-#: elf32-score.c:3994 elf32-score7.c:3801
+#: elf32-score.c:3993 elf32-score7.c:3800
#, c-format
msgid " [fix dep]"
msgstr ""
-#: elf32-score.c:4041 elf32-score7.c:3848
+#: elf32-score.c:4040 elf32-score7.c:3847
#, c-format
msgid "%pB: warning: linking PIC files with non-PIC files"
msgstr ""
-#: elf32-sh.c:532
+#: elf32-sh.c:533
#, c-format
msgid "%pB: %#<PRIx64>: warning: R_SH_USES points to unrecognized insn 0x%x"
msgstr ""
-#: elf32-sh.c:3752
+#: elf32-sh.c:3755
#, c-format
msgid "%pB: %#<PRIx64>: fatal: unaligned branch target for relax-support relocation"
msgstr ""
-#: elf32-sh.c:3782 elf32-sh.c:3798
+#: elf32-sh.c:3785 elf32-sh.c:3801
#, c-format
msgid "%pB: %#<PRIx64>: fatal: unaligned %s relocation %#<PRIx64>"
msgstr ""
-#: elf32-sh.c:3814
+#: elf32-sh.c:3817
#, c-format
msgid "%pB: %#<PRIx64>: fatal: R_SH_PSHA relocation %<PRId64> not in range -32..32"
msgstr ""
-#: elf32-sh.c:3830
+#: elf32-sh.c:3833
#, c-format
msgid "%pB: %#<PRIx64>: fatal: R_SH_PSHL relocation %<PRId64> not in range -32..32"
msgstr ""
-#: elf32-sh.c:3960 elf32-sh.c:4355
+#: elf32-sh.c:3963 elf32-sh.c:4358
#, c-format
msgid "%pB(%pA+%#<PRIx64>): cannot emit fixup to `%s' in read-only section"
msgstr ""
-#: elf32-sh.c:4458
+#: elf32-sh.c:4461
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s relocation against external symbol \"%s\""
msgstr ""
-#: elf32-sh.c:4577
+#: elf32-sh.c:4580
#, c-format
msgid "%pB(%pA): offset in relocation for GD->LE translation is too small: %#<PRIx64>"
msgstr ""
#. The backslash is to prevent bogus trigraph detection.
-#: elf32-sh.c:4595
+#: elf32-sh.c:4598
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd4??)"
-msgstr ""
+msgstr "%pB(%pA+%#<PRIx64>): მáƒáƒ£áƒšáƒáƒ“ნელი ინსტრუქცირ%#04X (მáƒáƒ•ელáƒáƒ“ი 0xd4??)"
-#: elf32-sh.c:4603
+#: elf32-sh.c:4606
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xc7??)"
-msgstr ""
+msgstr "%pB(%pA+%#<PRIx64>): მáƒáƒ£áƒšáƒáƒ“ნელი ინსტრუქცირ%#04X (მáƒáƒ•ელáƒáƒ“ი 0xc7??)"
-#: elf32-sh.c:4610
+#: elf32-sh.c:4613
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd1??)"
-msgstr ""
+msgstr "%pB(%pA+%#<PRIx64>): მáƒáƒ£áƒšáƒáƒ“ნელი ინსტრუქცირ%#04X (მáƒáƒ•ელáƒáƒ“ი 0xd1??)"
-#: elf32-sh.c:4617
+#: elf32-sh.c:4620
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x310c)"
-msgstr ""
+msgstr "%pB(%pA+%#<PRIx64>): მáƒáƒ£áƒšáƒáƒ“ნელი ინსტრუქცირ%#04X (მáƒáƒ•ელáƒáƒ“ი 0x310c)"
-#: elf32-sh.c:4624
+#: elf32-sh.c:4627
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x410b)"
-msgstr ""
+msgstr "%pB(%pA+%#<PRIx64>): მáƒáƒ£áƒšáƒáƒ“ნელი ინსტრუქცირ%#04X (მáƒáƒ•ელáƒáƒ“ი 0x410b)"
-#: elf32-sh.c:4631
+#: elf32-sh.c:4634
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x34cc)"
-msgstr ""
+msgstr "%pB(%pA+%#<PRIx64>): მáƒáƒ£áƒšáƒáƒ“ნელი ინსტრუქცირ%#04X (მáƒáƒ•ელáƒáƒ“ი 0x34cc)"
-#: elf32-sh.c:4666
+#: elf32-sh.c:4669
#, c-format
msgid "%pB(%pA): offset in relocation for IE->LE translation is too small: %#<PRIx64>"
msgstr ""
-#: elf32-sh.c:4684
+#: elf32-sh.c:4687
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd0??: mov.l)"
-msgstr ""
+msgstr "%pB(%pA+%#<PRIx64>): მáƒáƒ£áƒšáƒáƒ“ნელი ინსტრუქცირ%#04X (მáƒáƒ•ელáƒáƒ“ი 0xd0??: mov.l)"
-#: elf32-sh.c:4693
+#: elf32-sh.c:4696
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x0?12: stc)"
-msgstr ""
+msgstr "%pB(%pA+%#<PRIx64>): მáƒáƒ£áƒšáƒáƒ“ნელი ინსტრუქცირ%#04X (მáƒáƒ•ელáƒáƒ“ი 0x0?12: stc)"
-#: elf32-sh.c:4700
+#: elf32-sh.c:4703
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x0?ce: mov.l)"
-msgstr ""
+msgstr "%pB(%pA+%#<PRIx64>): მáƒáƒ£áƒšáƒáƒ“ნელი ინსტრუქცირ%#04X (მáƒáƒ•ელáƒáƒ“ი 0x0?ce: mov.l)"
-#: elf32-sh.c:4815
+#: elf32-sh.c:4818
#, c-format
msgid "%pB(%pA): offset in relocation for GD->IE translation is too small: %#<PRIx64>"
msgstr ""
-#: elf32-sh.c:4883
+#: elf32-sh.c:4886
#, c-format
msgid "%pB(%pA): offset in relocation for LD->LE translation is too small: %#<PRIx64>"
msgstr ""
-#: elf32-sh.c:5011
+#: elf32-sh.c:5014
#, c-format
-msgid "%X%C: relocation to \"%s\" references a different segment\n"
+msgid "%X%H: relocation to \"%s\" references a different segment\n"
msgstr ""
-#: elf32-sh.c:5018
+#: elf32-sh.c:5021
#, c-format
-msgid "%C: warning: relocation to \"%s\" references a different segment\n"
+msgid "%H: warning: relocation to \"%s\" references a different segment\n"
msgstr ""
-#: elf32-sh.c:5486 elf32-sh.c:5568
+#: elf32-sh.c:5489 elf32-sh.c:5571
#, c-format
msgid "%pB: `%s' accessed both as normal and FDPIC symbol"
msgstr ""
-#: elf32-sh.c:5492 elf32-sh.c:5573
+#: elf32-sh.c:5495 elf32-sh.c:5576
#, c-format
msgid "%pB: `%s' accessed both as FDPIC and thread local symbol"
msgstr ""
-#: elf32-sh.c:5523
+#: elf32-sh.c:5526
#, c-format
msgid "%pB: Function descriptor relocation with non-zero addend"
msgstr ""
-#: elf32-sh.c:5730 elf64-alpha.c:4663
+#: elf32-sh.c:5733 elf64-alpha.c:4648
#, c-format
msgid "%pB: TLS local exec code cannot be linked into shared objects"
msgstr ""
-#: elf32-sh.c:5845
+#: elf32-sh.c:5848
#, c-format
msgid "%pB: uses %s instructions while previous modules use %s instructions"
msgstr ""
-#: elf32-sh.c:5857
+#: elf32-sh.c:5860
#, c-format
msgid "internal error: merge of architecture '%s' with architecture '%s' produced unknown architecture"
msgstr ""
-#: elf32-sh.c:5898
+#: elf32-sh.c:5901
#, c-format
msgid "%pB: uses instructions which are incompatible with instructions used in previous modules"
msgstr ""
-#: elf32-sh.c:5911
+#: elf32-sh.c:5914
#, c-format
msgid "%pB: attempt to mix FDPIC and non-FDPIC objects"
msgstr ""
@@ -3627,53 +3689,53 @@ msgstr ""
msgid "%pB: unhandled sparc machine value '%lu' detected during write processing"
msgstr ""
-#: elf32-spu.c:737
+#: elf32-spu.c:734
msgid "%X%P: overlay section %pA does not start on a cache line\n"
msgstr ""
-#: elf32-spu.c:745
+#: elf32-spu.c:742
msgid "%X%P: overlay section %pA is larger than a cache line\n"
msgstr ""
-#: elf32-spu.c:765
+#: elf32-spu.c:762
msgid "%X%P: overlay section %pA is not in cache area\n"
msgstr ""
-#: elf32-spu.c:806
+#: elf32-spu.c:803
#, c-format
msgid "%X%P: overlay sections %pA and %pA do not start at the same address\n"
msgstr ""
-#: elf32-spu.c:1032
+#: elf32-spu.c:1029
#, c-format
msgid "warning: call to non-function symbol %s defined in %pB"
msgstr ""
-#: elf32-spu.c:1382
+#: elf32-spu.c:1379
#, c-format
msgid "%pA:0x%v lrlive .brinfo (%u) differs from analysis (%u)\n"
msgstr ""
-#: elf32-spu.c:1912
+#: elf32-spu.c:1909
#, c-format
msgid "%pB is not allowed to define %s"
msgstr ""
-#: elf32-spu.c:1920
+#: elf32-spu.c:1917
#, c-format
msgid "you are not allowed to define %s in a script"
msgstr ""
-#: elf32-spu.c:1954
+#: elf32-spu.c:1951
#, c-format
msgid "%s in overlay section"
msgstr ""
-#: elf32-spu.c:1983
+#: elf32-spu.c:1981
msgid "overlay stub relocation overflow"
msgstr ""
-#: elf32-spu.c:1992 elf64-ppc.c:15308
+#: elf32-spu.c:1990 elf64-ppc.c:15372
msgid "stubs don't match calculated size"
msgstr ""
@@ -3704,7 +3766,7 @@ msgstr ""
#: elf32-spu.c:4027
msgid " calls:\n"
-msgstr ""
+msgstr " გáƒáƒ›áƒáƒ«áƒáƒ®áƒ”ბები:\n"
#: elf32-spu.c:4342
#, c-format
@@ -3714,7 +3776,7 @@ msgstr ""
#: elf32-spu.c:4346
#, c-format
msgid "%s duplicated\n"
-msgstr ""
+msgstr "%s დუბლირებულიáƒ\n"
#: elf32-spu.c:4353
msgid "sorry, no support for duplicate object files in auto-overlay script\n"
@@ -3731,95 +3793,96 @@ msgid "%pB:%pA%s exceeds overlay size\n"
msgstr ""
#: elf32-spu.c:4692
-msgid "%F%P: auto overlay error: %E\n"
+msgid "%P: auto overlay error: %E\n"
msgstr ""
-#: elf32-spu.c:4713
+#: elf32-spu.c:4712
msgid "Stack size for call graph root nodes.\n"
msgstr ""
-#: elf32-spu.c:4714
+#: elf32-spu.c:4713
msgid ""
"\n"
"Stack size for functions. Annotations: '*' max stack, 't' tail call\n"
msgstr ""
-#: elf32-spu.c:4724
+#: elf32-spu.c:4723
msgid "Maximum stack required is 0x%v\n"
msgstr ""
-#: elf32-spu.c:4743
+#: elf32-spu.c:4742
msgid "%X%P: stack/lrlive analysis error: %E\n"
msgstr ""
-#: elf32-spu.c:4746
-msgid "%F%P: can not build overlay stubs: %E\n"
+#: elf32-spu.c:4745
+msgid "%P: can not build overlay stubs: %E\n"
msgstr ""
-#: elf32-spu.c:4815
+#: elf32-spu.c:4814
msgid "fatal error while creating .fixup"
msgstr ""
-#: elf32-spu.c:5051
+#: elf32-spu.c:5050
#, c-format
msgid "%pB(%s+%#<PRIx64>): unresolvable %s relocation against symbol `%s'"
msgstr ""
-#: elf32-tic6x.c:1588
+#: elf32-tic6x.c:1587
msgid "warning: generating a shared library containing non-PIC code"
msgstr ""
-#: elf32-tic6x.c:1593
+#: elf32-tic6x.c:1592
msgid "warning: generating a shared library containing non-PID code"
msgstr ""
-#: elf32-tic6x.c:2434
+#: elf32-tic6x.c:2426
#, c-format
msgid "%pB: SB-relative relocation but __c6xabi_DSBT_BASE not defined"
msgstr ""
-#: elf32-tic6x.c:3498
+#: elf32-tic6x.c:3492
#, c-format
msgid "%pB: error: unknown mandatory EABI object attribute %d"
msgstr ""
-#: elf32-tic6x.c:3507
+#: elf32-tic6x.c:3501
#, c-format
msgid "%pB: warning: unknown EABI object attribute %d"
msgstr ""
-#: elf32-tic6x.c:3625 elf32-tic6x.c:3634
+#: elf32-tic6x.c:3619 elf32-tic6x.c:3628
#, c-format
msgid "error: %pB requires more stack alignment than %pB preserves"
msgstr ""
-#: elf32-tic6x.c:3644 elf32-tic6x.c:3653
+#: elf32-tic6x.c:3638 elf32-tic6x.c:3647
#, c-format
msgid "error: unknown Tag_ABI_array_object_alignment value in %pB"
msgstr ""
-#: elf32-tic6x.c:3662 elf32-tic6x.c:3671
+#: elf32-tic6x.c:3656 elf32-tic6x.c:3665
#, c-format
msgid "error: unknown Tag_ABI_array_object_align_expected value in %pB"
msgstr ""
-#: elf32-tic6x.c:3680 elf32-tic6x.c:3688
+#: elf32-tic6x.c:3674 elf32-tic6x.c:3682
#, c-format
msgid "error: %pB requires more array alignment than %pB preserves"
msgstr ""
-#: elf32-tic6x.c:3711
+#: elf32-tic6x.c:3705
#, c-format
msgid "warning: %pB and %pB differ in wchar_t size"
msgstr ""
-#: elf32-tic6x.c:3730
+#: elf32-tic6x.c:3724
#, c-format
msgid "warning: %pB and %pB differ in whether code is compiled for DSBT"
msgstr ""
-#: elf32-tilepro.c:3627 elfxx-tilegx.c:4017 elfxx-x86.c:2694
-#: elfnn-aarch64.c:9831 elfnn-loongarch.c:3845 elfnn-riscv.c:3264
+#: elf32-tilepro.c:3626 elfxx-tilegx.c:4019 elfxx-x86.c:2762
+#: elfnn-aarch64.c:10375 elfnn-kvx.c:4631 elfnn-loongarch.c:6379
+#: elfnn-riscv.c:3801
#, c-format
msgid "discarded output section: `%pA'"
msgstr ""
@@ -3853,221 +3916,221 @@ msgstr ""
msgid "failed to find previous HI16 reloc"
msgstr ""
-#: elf32-v850.c:2306
+#: elf32-v850.c:2309
msgid "could not locate special linker symbol __gp"
msgstr ""
-#: elf32-v850.c:2310
+#: elf32-v850.c:2313
msgid "could not locate special linker symbol __ep"
msgstr ""
-#: elf32-v850.c:2314
+#: elf32-v850.c:2317
msgid "could not locate special linker symbol __ctbp"
msgstr ""
-#: elf32-v850.c:2535
+#: elf32-v850.c:2539
#, c-format
msgid "error: %pB needs 8-byte alignment but %pB is set for 4-byte alignment"
msgstr ""
-#: elf32-v850.c:2551
+#: elf32-v850.c:2555
#, c-format
msgid "error: %pB uses 64-bit doubles but %pB uses 32-bit doubles"
msgstr ""
-#: elf32-v850.c:2566
+#: elf32-v850.c:2570
#, c-format
msgid "error: %pB uses FPU-3.0 but %pB only supports FPU-2.0"
msgstr ""
-#: elf32-v850.c:2598
+#: elf32-v850.c:2602
#, c-format
msgid " alignment of 8-byte entities: "
msgstr ""
-#: elf32-v850.c:2601
+#: elf32-v850.c:2605
#, c-format
msgid "4-byte"
-msgstr ""
+msgstr "4-ბáƒáƒ˜áƒ¢áƒ˜áƒáƒœáƒ˜"
-#: elf32-v850.c:2602
+#: elf32-v850.c:2606
#, c-format
msgid "8-byte"
-msgstr ""
+msgstr "8-ბáƒáƒ˜áƒ¢áƒ˜áƒáƒœáƒ˜"
-#: elf32-v850.c:2603 elf32-v850.c:2615
+#: elf32-v850.c:2607 elf32-v850.c:2619
#, c-format
msgid "not set"
-msgstr ""
+msgstr "áƒáƒ áƒáƒ დáƒáƒ§áƒ”ნებული"
-#: elf32-v850.c:2604 elf32-v850.c:2616 elf32-v850.c:2628 elf32-v850.c:2639
-#: elf32-v850.c:2650 elf32-v850.c:2661
+#: elf32-v850.c:2608 elf32-v850.c:2620 elf32-v850.c:2632 elf32-v850.c:2643
+#: elf32-v850.c:2654 elf32-v850.c:2665
#, c-format
msgid "unknown: %x"
-msgstr ""
+msgstr "უცნáƒáƒ‘ი: %x"
-#: elf32-v850.c:2610
+#: elf32-v850.c:2614
#, c-format
msgid " size of doubles: "
-msgstr ""
+msgstr " áƒáƒ áƒ›áƒáƒ’ების ზáƒáƒ›áƒ: "
-#: elf32-v850.c:2613
+#: elf32-v850.c:2617
#, c-format
msgid "4-bytes"
-msgstr ""
+msgstr "4-ბáƒáƒ˜áƒ¢áƒ˜áƒáƒœáƒ˜"
-#: elf32-v850.c:2614
+#: elf32-v850.c:2618
#, c-format
msgid "8-bytes"
-msgstr ""
+msgstr "8-ბáƒáƒ˜áƒ¢áƒ˜áƒáƒœáƒ˜"
-#: elf32-v850.c:2622
+#: elf32-v850.c:2626
#, c-format
msgid " FPU support required: "
-msgstr ""
+msgstr " FPU-ის მხáƒáƒ áƒ“áƒáƒ­áƒ”რრáƒáƒ£áƒªáƒ˜áƒšáƒ”ბელიáƒ: "
-#: elf32-v850.c:2625
+#: elf32-v850.c:2629
#, c-format
msgid "FPU-2.0"
-msgstr ""
+msgstr "FPU-2.0"
-#: elf32-v850.c:2626
+#: elf32-v850.c:2630
#, c-format
msgid "FPU-3.0"
-msgstr ""
+msgstr "FPU-3.0"
-#: elf32-v850.c:2627
+#: elf32-v850.c:2631
#, c-format
msgid "none"
-msgstr ""
+msgstr "áƒáƒ áƒªáƒ”რთი"
-#: elf32-v850.c:2634
+#: elf32-v850.c:2638
#, c-format
msgid "SIMD use: "
-msgstr ""
+msgstr "SIMD-ის გáƒáƒ›áƒáƒ§áƒ”ნებáƒ: "
-#: elf32-v850.c:2637 elf32-v850.c:2648 elf32-v850.c:2659
+#: elf32-v850.c:2641 elf32-v850.c:2652 elf32-v850.c:2663
#, c-format
msgid "yes"
msgstr "დიáƒáƒ®"
-#: elf32-v850.c:2638 elf32-v850.c:2649 elf32-v850.c:2660
+#: elf32-v850.c:2642 elf32-v850.c:2653 elf32-v850.c:2664
#, c-format
msgid "no"
-msgstr ""
+msgstr "áƒáƒ áƒ"
-#: elf32-v850.c:2645
+#: elf32-v850.c:2649
#, c-format
msgid "CACHE use: "
-msgstr ""
+msgstr "CACHE-ის გáƒáƒ›áƒáƒ§áƒ”ნებáƒ: "
-#: elf32-v850.c:2656
+#: elf32-v850.c:2660
#, c-format
msgid "MMU use: "
-msgstr ""
+msgstr "MMU-ის გáƒáƒ›áƒáƒ§áƒ”ნებáƒ: "
-#: elf32-v850.c:2823 elf32-v850.c:2879
+#: elf32-v850.c:2827 elf32-v850.c:2883
#, c-format
msgid "%pB: architecture mismatch with previous modules"
msgstr ""
#. xgettext:c-format.
-#: elf32-v850.c:2897
+#: elf32-v850.c:2901
#, c-format
msgid "private flags = %lx: "
msgstr ""
-#: elf32-v850.c:2902
+#: elf32-v850.c:2906
#, c-format
msgid "unknown v850 architecture"
-msgstr ""
+msgstr "უცნáƒáƒ‘ი v850 áƒáƒ áƒ¥áƒ˜áƒ¢áƒ”ქტურáƒ"
-#: elf32-v850.c:2904
+#: elf32-v850.c:2908
#, c-format
msgid "v850 E3 architecture"
-msgstr ""
+msgstr "v850 E3 áƒáƒ áƒ¥áƒ˜áƒ¢áƒ”ქტურáƒ"
-#: elf32-v850.c:2906 elf32-v850.c:2913
+#: elf32-v850.c:2910 elf32-v850.c:2917
#, c-format
msgid "v850 architecture"
-msgstr ""
+msgstr "v850 áƒáƒ áƒ¥áƒ˜áƒ¢áƒ”ქტურáƒ"
-#: elf32-v850.c:2914
+#: elf32-v850.c:2918
#, c-format
msgid "v850e architecture"
-msgstr ""
+msgstr "v850e áƒáƒ áƒ¥áƒ˜áƒ¢áƒ”ქტურáƒ"
-#: elf32-v850.c:2915
+#: elf32-v850.c:2919
#, c-format
msgid "v850e1 architecture"
-msgstr ""
+msgstr "v850e1 áƒáƒ áƒ¥áƒ˜áƒ¢áƒ”ქტურáƒ"
-#: elf32-v850.c:2916
+#: elf32-v850.c:2920
#, c-format
msgid "v850e2 architecture"
-msgstr ""
+msgstr "v850e2 áƒáƒ áƒ¥áƒ˜áƒ¢áƒ”ქტურáƒ"
-#: elf32-v850.c:2917
+#: elf32-v850.c:2921
#, c-format
msgid "v850e2v3 architecture"
-msgstr ""
+msgstr "v850e2v3 áƒáƒ áƒ¥áƒ˜áƒ¢áƒ”ქტურáƒ"
-#: elf32-v850.c:2918
+#: elf32-v850.c:2922
#, c-format
msgid "v850e3v5 architecture"
-msgstr ""
+msgstr "v850e3v5 áƒáƒ áƒ¥áƒ˜áƒ¢áƒ”ქტურáƒ"
-#: elf32-v850.c:3591 elf32-v850.c:3830
+#: elf32-v850.c:3596 elf32-v850.c:3835
#, c-format
msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized insns"
msgstr ""
-#: elf32-v850.c:3601 elf32-v850.c:3840
+#: elf32-v850.c:3606 elf32-v850.c:3845
#, c-format
msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized insn %#x"
msgstr ""
-#: elf32-v850.c:3647 elf32-v850.c:3875
+#: elf32-v850.c:3652 elf32-v850.c:3880
#, c-format
msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized reloc"
msgstr ""
-#: elf32-v850.c:3687
+#: elf32-v850.c:3692
#, c-format
msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized reloc %#<PRIx64>"
msgstr ""
-#: elf32-vax.c:539
+#: elf32-vax.c:537
#, c-format
msgid " [nonpic]"
msgstr ""
-#: elf32-vax.c:542
+#: elf32-vax.c:540
#, c-format
msgid " [d-float]"
msgstr ""
-#: elf32-vax.c:545
+#: elf32-vax.c:543
#, c-format
msgid " [g-float]"
msgstr ""
-#: elf32-vax.c:631
+#: elf32-vax.c:629
#, c-format
msgid "%pB: warning: GOT addend of %<PRId64> to `%s' does not match previous GOT addend of %<PRId64>"
msgstr ""
-#: elf32-vax.c:1388
+#: elf32-vax.c:1389
#, c-format
msgid "%pB: warning: PLT addend of %<PRId64> to `%s' from %pA section ignored"
msgstr ""
-#: elf32-vax.c:1514
+#: elf32-vax.c:1515
#, c-format
msgid "%pB: warning: %s relocation against symbol `%s' from %pA section"
msgstr ""
-#: elf32-vax.c:1521
+#: elf32-vax.c:1522
#, c-format
msgid "%pB: warning: %s relocation to %#<PRIx64> from %pA section"
msgstr ""
@@ -4080,67 +4143,67 @@ msgstr ""
#: elf32-xgate.c:506
#, c-format
msgid "cpu=XGATE]"
-msgstr ""
+msgstr "cpu=XGATE]"
#: elf32-xgate.c:508
#, c-format
msgid "error reading cpu type from elf private data"
msgstr ""
-#: elf32-xstormy16.c:457 elf64-ia64-vms.c:2076 elfnn-ia64.c:2345
+#: elf32-xstormy16.c:457 elf64-ia64-vms.c:2077 elfnn-ia64.c:2345
msgid "non-zero addend in @fptr reloc"
msgstr ""
-#: elf32-xtensa.c:998
+#: elf32-xtensa.c:996
#, c-format
msgid "%pB(%pA): invalid property table"
msgstr ""
-#: elf32-xtensa.c:2733
+#: elf32-xtensa.c:2732
#, c-format
msgid "%pB(%pA+%#<PRIx64>): relocation offset out of range (size=%#<PRIx64>)"
msgstr ""
-#: elf32-xtensa.c:2816 elf32-xtensa.c:2939
+#: elf32-xtensa.c:2815 elf32-xtensa.c:2938
msgid "dynamic relocation in read-only section"
msgstr ""
-#: elf32-xtensa.c:2916
+#: elf32-xtensa.c:2915
msgid "TLS relocation invalid without dynamic sections"
msgstr ""
-#: elf32-xtensa.c:3129
+#: elf32-xtensa.c:3128
msgid "internal inconsistency in size of .got.loc section"
msgstr ""
-#: elf32-xtensa.c:3435
+#: elf32-xtensa.c:3434
#, c-format
msgid "%pB: incompatible machine type; output is 0x%x; input is 0x%x"
msgstr ""
-#: elf32-xtensa.c:4734 elf32-xtensa.c:4742
+#: elf32-xtensa.c:4733 elf32-xtensa.c:4741
msgid "attempt to convert L32R/CALLX to CALL failed"
msgstr ""
-#: elf32-xtensa.c:6567 elf32-xtensa.c:6646 elf32-xtensa.c:8072
+#: elf32-xtensa.c:6569 elf32-xtensa.c:6648 elf32-xtensa.c:8074
#, c-format
msgid "%pB(%pA+%#<PRIx64>): could not decode instruction; possible configuration mismatch"
msgstr ""
-#: elf32-xtensa.c:7813
+#: elf32-xtensa.c:7815
#, c-format
msgid "%pB(%pA+%#<PRIx64>): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch"
msgstr ""
-#: elf32-xtensa.c:9671
+#: elf32-xtensa.c:9673
msgid "invalid relocation address"
-msgstr ""
+msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ გáƒáƒ“áƒáƒáƒ“გილების მისáƒáƒ›áƒáƒ áƒ—ი"
-#: elf32-xtensa.c:9762
+#: elf32-xtensa.c:9764
msgid "overflow after relaxation"
msgstr ""
-#: elf32-xtensa.c:10908
+#: elf32-xtensa.c:10910
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected fix for %s relocation"
msgstr ""
@@ -4160,67 +4223,72 @@ msgstr ""
msgid "%pB: unsupported arch %#x"
msgstr ""
-#: elf64-alpha.c:474
+#: elf64-alpha.c:472
msgid "GPDISP relocation did not find ldah and lda instructions"
msgstr ""
-#: elf64-alpha.c:2002 elf64-alpha.c:2697 elflink.c:15391
-#: elfnn-loongarch.c:1566
+#: elf64-alpha.c:1983
#, c-format
-msgid "%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"
+msgid "%pB: dynamic relocation against a local symbol in read-only section `%pA'\n"
msgstr ""
-#: elf64-alpha.c:2454
+#: elf64-alpha.c:2435
#, c-format
msgid "%pB: .got subsegment exceeds 64K (size %d)"
msgstr ""
-#: elf64-alpha.c:2992 elf64-alpha.c:3187
+#: elf64-alpha.c:2679 elflink.c:15752 elfnn-kvx.c:4016 elfnn-loongarch.c:2016
+#, c-format
+msgid "%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"
+msgstr ""
+
+#: elf64-alpha.c:2977 elf64-alpha.c:3172
#, c-format
msgid "%pB: %pA+%#<PRIx64>: warning: %s relocation against unexpected insn"
msgstr ""
-#: elf64-alpha.c:4387 elf64-alpha.c:4400
+#: elf64-alpha.c:4372 elf64-alpha.c:4385
#, c-format
msgid "%pB: gp-relative relocation against dynamic symbol %s"
msgstr ""
-#: elf64-alpha.c:4456
+#: elf64-alpha.c:4441
#, c-format
msgid "%pB: change in gp: BRSGP %s"
msgstr ""
-#: elf64-alpha.c:4481 mach-o.c:616 elfnn-riscv.c:619
+#: elf64-alpha.c:4466 mach-o.c:627 elfnn-loongarch.c:917 elfnn-riscv.c:917
+#: elfnn-riscv.c:1122 elfnn-riscv.c:1164
msgid "<unknown>"
-msgstr ""
+msgstr "<უცნáƒáƒ‘ი>"
-#: elf64-alpha.c:4487
+#: elf64-alpha.c:4472
#, c-format
msgid "%pB: !samegp reloc against symbol without .prologue: %s"
msgstr ""
-#: elf64-alpha.c:4545
+#: elf64-alpha.c:4530
#, c-format
msgid "%pB: unhandled dynamic relocation against %s"
msgstr ""
-#: elf64-alpha.c:4580
+#: elf64-alpha.c:4565
#, c-format
msgid "%pB: pc-relative relocation against undefined weak symbol %s"
msgstr ""
-#: elf64-alpha.c:4646
+#: elf64-alpha.c:4631
#, c-format
msgid "%pB: dtp-relative relocation against dynamic symbol %s"
msgstr ""
-#: elf64-alpha.c:4671
+#: elf64-alpha.c:4656
#, c-format
msgid "%pB: tp-relative relocation against dynamic symbol %s"
msgstr ""
#. Only if it's not an unresolved symbol.
-#: elf64-bpf.c:557
+#: elf64-bpf.c:344
msgid "internal error: relocation not supported"
msgstr ""
@@ -4229,243 +4297,247 @@ msgstr ""
msgid "%pB: Relocations in generic ELF (EM: %d)"
msgstr ""
-#: elf64-hppa.c:2032
+#: elf64-hppa.c:2037
#, c-format
msgid "stub entry for %s cannot load .plt, dp offset = %<PRId64>"
msgstr ""
-#: elf64-hppa.c:3236
+#: elf64-hppa.c:3241
#, c-format
msgid "%pB(%pA+%#<PRIx64>): cannot reach %s"
msgstr ""
-#: elf64-ia64-vms.c:599 elfnn-ia64.c:640
+#: elf64-ia64-vms.c:600 elfnn-ia64.c:641
#, c-format
msgid "%pB: can't relax br at %#<PRIx64> in section `%pA'; please use brl or indirect branch"
msgstr ""
-#: elf64-ia64-vms.c:2031 elfnn-ia64.c:2293
+#: elf64-ia64-vms.c:2032 elfnn-ia64.c:2293
msgid "@pltoff reloc against local symbol"
msgstr ""
-#: elf64-ia64-vms.c:3277 elfnn-ia64.c:3670
+#: elf64-ia64-vms.c:3280 elfnn-ia64.c:3673
#, c-format
msgid "%pB: short data segment overflowed (%#<PRIx64> >= 0x400000)"
msgstr ""
-#: elf64-ia64-vms.c:3287 elfnn-ia64.c:3680
+#: elf64-ia64-vms.c:3290 elfnn-ia64.c:3683
#, c-format
msgid "%pB: __gp does not cover short data segment"
msgstr ""
-#: elf64-ia64-vms.c:3557 elfnn-ia64.c:3953
+#: elf64-ia64-vms.c:3560 elfnn-ia64.c:3956
#, c-format
msgid "%pB: non-pic code with imm relocation against dynamic symbol `%s'"
msgstr ""
-#: elf64-ia64-vms.c:3621 elfnn-ia64.c:4021
+#: elf64-ia64-vms.c:3624 elfnn-ia64.c:4024
#, c-format
msgid "%pB: @gprel relocation against dynamic symbol %s"
msgstr ""
-#: elf64-ia64-vms.c:3680 elfnn-ia64.c:4084
+#: elf64-ia64-vms.c:3683 elfnn-ia64.c:4087
#, c-format
msgid "%pB: linking non-pic code in a position independent executable"
msgstr ""
-#: elf64-ia64-vms.c:3782 elfnn-ia64.c:4222
+#: elf64-ia64-vms.c:3785 elfnn-ia64.c:4225
#, c-format
msgid "%pB: @internal branch to dynamic symbol %s"
msgstr ""
-#: elf64-ia64-vms.c:3785 elfnn-ia64.c:4225
+#: elf64-ia64-vms.c:3788 elfnn-ia64.c:4228
#, c-format
msgid "%pB: speculation fixup to dynamic symbol %s"
msgstr ""
-#: elf64-ia64-vms.c:3788 elfnn-ia64.c:4228
+#: elf64-ia64-vms.c:3791 elfnn-ia64.c:4231
#, c-format
msgid "%pB: @pcrel relocation against dynamic symbol %s"
msgstr ""
-#: elf64-ia64-vms.c:3912 elfnn-ia64.c:4425
+#: elf64-ia64-vms.c:3915 elfnn-ia64.c:4428
msgid "unsupported reloc"
msgstr ""
-#: elf64-ia64-vms.c:3949 elfnn-ia64.c:4463
+#: elf64-ia64-vms.c:3952 elfnn-ia64.c:4466
#, c-format
msgid "%pB: missing TLS section for relocation %s against `%s' at %#<PRIx64> in section `%pA'."
msgstr ""
-#: elf64-ia64-vms.c:3966 elfnn-ia64.c:4480
+#: elf64-ia64-vms.c:3969 elfnn-ia64.c:4483
#, c-format
msgid "%pB: Can't relax br (%s) to `%s' at %#<PRIx64> in section `%pA' with size %#<PRIx64> (> 0x1000000)."
msgstr ""
-#: elf64-ia64-vms.c:4262 elfnn-ia64.c:4741
+#: elf64-ia64-vms.c:4263 elfnn-ia64.c:4742
#, c-format
msgid "%pB: linking trap-on-NULL-dereference with non-trapping files"
msgstr ""
-#: elf64-ia64-vms.c:4271 elfnn-ia64.c:4750
+#: elf64-ia64-vms.c:4272 elfnn-ia64.c:4751
#, c-format
msgid "%pB: linking big-endian files with little-endian files"
msgstr ""
-#: elf64-ia64-vms.c:4280 elfnn-ia64.c:4759
+#: elf64-ia64-vms.c:4281 elfnn-ia64.c:4760
#, c-format
msgid "%pB: linking 64-bit files with 32-bit files"
msgstr ""
-#: elf64-ia64-vms.c:4289 elfnn-ia64.c:4768
+#: elf64-ia64-vms.c:4290 elfnn-ia64.c:4769
#, c-format
msgid "%pB: linking constant-gp files with non-constant-gp files"
msgstr ""
-#: elf64-ia64-vms.c:4299 elfnn-ia64.c:4778
+#: elf64-ia64-vms.c:4300 elfnn-ia64.c:4779
#, c-format
msgid "%pB: linking auto-pic files with non-auto-pic files"
msgstr ""
-#: elf64-ia64-vms.c:5146 elflink.c:5298
+#: elf64-ia64-vms.c:5150 elflink.c:5518
#, c-format
msgid "warning: alignment %u of common symbol `%s' in %pB is greater than the alignment (%u) of its section %pA"
msgstr ""
-#: elf64-ia64-vms.c:5153 elflink.c:5305
+#: elf64-ia64-vms.c:5157
#, c-format
msgid "warning: alignment %u of symbol `%s' in %pB is smaller than %u in %pB"
msgstr ""
-#: elf64-ia64-vms.c:5169 elflink.c:5322
+#: elf64-ia64-vms.c:5173 elflink.c:5547
#, c-format
msgid "warning: size of symbol `%s' changed from %<PRIu64> in %pB to %<PRIu64> in %pB"
msgstr ""
-#: elf64-mips.c:4099
+#: elf64-mips.c:4102
#, c-format
msgid "%pB(%pA): relocation %<PRIu64> has invalid symbol index %ld"
msgstr ""
-#: elf64-mmix.c:984
+#: elf64-mmix.c:980
msgid "invalid input relocation when producing non-ELF, non-mmo format output; please use the objcopy program to convert from ELF or mmo, or assemble using \"-no-expand\" (for gcc, \"-Wa,-no-expand\""
msgstr ""
-#: elf64-mmix.c:1168
+#: elf64-mmix.c:1164
msgid "invalid input relocation when producing non-ELF, non-mmo format output; please use the objcopy program to convert from ELF or mmo, or compile using the gcc-option \"-mno-base-addresses\"."
msgstr ""
-#: elf64-mmix.c:1195
+#: elf64-mmix.c:1191
#, c-format
msgid ""
"%pB: Internal inconsistency error for value for\n"
" linker-allocated global register: linked: %#<PRIx64> != relaxed: %#<PRIx64>"
msgstr ""
-#: elf64-mmix.c:1619
+#: elf64-mmix.c:1615
#, c-format
msgid "%pB: base-plus-offset relocation against register symbol: (unknown) in %pA"
msgstr ""
-#: elf64-mmix.c:1625
+#: elf64-mmix.c:1621
#, c-format
msgid "%pB: base-plus-offset relocation against register symbol: %s in %pA"
msgstr ""
-#: elf64-mmix.c:1670
+#: elf64-mmix.c:1666
#, c-format
msgid "%pB: register relocation against non-register symbol: (unknown) in %pA"
msgstr ""
-#: elf64-mmix.c:1676
+#: elf64-mmix.c:1672
#, c-format
msgid "%pB: register relocation against non-register symbol: %s in %pA"
msgstr ""
-#: elf64-mmix.c:1713
+#: elf64-mmix.c:1709
#, c-format
msgid "%pB: directive LOCAL valid only with a register or absolute value"
msgstr ""
-#: elf64-mmix.c:1742
+#: elf64-mmix.c:1738
#, c-format
msgid "%pB: LOCAL directive: register $%<PRId64> is not a local register; first global register is $%<PRId64>"
msgstr ""
-#: elf64-mmix.c:2157
+#: elf64-mmix.c:2153
#, c-format
msgid "%pB: error: multiple definition of `%s'; start of %s is set in a earlier linked file"
msgstr ""
-#: elf64-mmix.c:2212
+#: elf64-mmix.c:2208
msgid "register section has contents\n"
msgstr ""
-#: elf64-mmix.c:2402
+#: elf64-mmix.c:2399
#, c-format
msgid "internal inconsistency: remaining %lu != max %lu; please report this bug"
msgstr ""
-#: elf64-ppc.c:1356
+#: elf64-ppc.c:1361
#, c-format
msgid "warning: %s should be used rather than %s"
msgstr ""
-#: elf64-ppc.c:4306
+#: elf64-ppc.c:4302
#, c-format
msgid "symbol '%s' has invalid st_other for ABI version 1"
msgstr ""
-#: elf64-ppc.c:4487
+#: elf64-ppc.c:4485
#, c-format
msgid "%pB .opd not allowed in ABI version %d"
msgstr ""
-#: elf64-ppc.c:5082
+#: elf64-ppc.c:5107
#, c-format
msgid "%H: %s reloc unsupported in shared libraries and PIEs\n"
msgstr ""
-#: elf64-ppc.c:5472
+#: elf64-ppc.c:5277
+msgid "%H: %s reloc unsupported here\n"
+msgstr "%H: %s reloc áƒáƒ¥ მხáƒáƒ áƒ“áƒáƒ­áƒ”რილი áƒáƒ áƒáƒ\n"
+
+#: elf64-ppc.c:5500
#, c-format
msgid "%pB uses unknown e_flags 0x%lx"
msgstr ""
-#: elf64-ppc.c:5480
+#: elf64-ppc.c:5508
#, c-format
msgid "%pB: ABI version %ld is not compatible with ABI version %ld output"
msgstr ""
-#: elf64-ppc.c:5507
+#: elf64-ppc.c:5535
#, c-format
msgid " [abiv%ld]"
-msgstr ""
+msgstr " [abiv%ld]"
-#: elf64-ppc.c:6804
+#: elf64-ppc.c:6845
msgid "%P: copy reloc against `%pT' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n"
msgstr ""
-#: elf64-ppc.c:7071
+#: elf64-ppc.c:7112
#, c-format
msgid "%pB: undefined symbol on R_PPC64_TOCSAVE relocation"
msgstr ""
-#: elf64-ppc.c:7326
+#: elf64-ppc.c:7363
#, c-format
msgid "dynreloc miscount for %pB, section %pA"
msgstr ""
-#: elf64-ppc.c:7415
+#: elf64-ppc.c:7454
#, c-format
msgid "%pB: .opd is not a regular array of opd entries"
msgstr ""
-#: elf64-ppc.c:7425
+#: elf64-ppc.c:7464
#, c-format
msgid "%pB: unexpected reloc type %u in .opd section"
msgstr ""
-#: elf64-ppc.c:7447
+#: elf64-ppc.c:7486
#, c-format
msgid "%pB: undefined sym `%s' in .opd section"
msgstr ""
@@ -4477,158 +4549,159 @@ msgstr ""
#. __glink_PLTresolve save of r2 is incompatible with code
#. making tail calls, because the tail call might go via the
#. resolver and thus overwrite the proper saved r2.
-#: elf64-ppc.c:7948
+#: elf64-ppc.c:7987
msgid "warning: --plt-localentry is incompatible with power10 pc-relative code"
msgstr ""
-#: elf64-ppc.c:7956
+#: elf64-ppc.c:7995
msgid "warning: --plt-localentry is especially dangerous without ld.so support to detect ABI violations"
msgstr ""
-#: elf64-ppc.c:8272
+#: elf64-ppc.c:8311
msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n"
msgstr ""
-#: elf64-ppc.c:8707 elf64-ppc.c:9422
+#: elf64-ppc.c:8746 elf64-ppc.c:9462
#, c-format
msgid "%s defined on removed toc entry"
msgstr ""
-#: elf64-ppc.c:9379
+#: elf64-ppc.c:9419
#, c-format
msgid "%H: %s references optimized away TOC entry\n"
msgstr ""
-#: elf64-ppc.c:9600
+#: elf64-ppc.c:9640
#, c-format
msgid "%H: got/toc optimization is not supported for %s instruction\n"
msgstr ""
-#: elf64-ppc.c:10495
+#: elf64-ppc.c:10536
#, c-format
msgid "warning: discarding dynamic section %s"
msgstr ""
-#: elf64-ppc.c:11630
+#: elf64-ppc.c:11692
msgid "%P: cannot find opd entry toc for `%pT'\n"
msgstr ""
-#: elf64-ppc.c:11780
+#: elf64-ppc.c:11842
#, c-format
msgid "long branch stub `%s' offset overflow"
msgstr ""
-#: elf64-ppc.c:11807
+#: elf64-ppc.c:11869
#, c-format
msgid "can't find branch stub `%s'"
msgstr ""
-#: elf64-ppc.c:11871 elf64-ppc.c:12123 elf64-ppc.c:14689
+#: elf64-ppc.c:11930 elf64-ppc.c:12182 elf64-ppc.c:14748
#, c-format
msgid "%P: linkage table error against `%pT'\n"
msgstr ""
-#: elf64-ppc.c:12322
+#: elf64-ppc.c:12381
#, c-format
msgid "can't build branch stub `%s'"
msgstr ""
-#: elf64-ppc.c:13349
+#: elf64-ppc.c:13412
#, c-format
msgid "%pB section %pA exceeds stub group size"
msgstr ""
-#: elf64-ppc.c:14871
+#: elf64-ppc.c:14929
msgid "__tls_get_addr call offset overflow"
msgstr ""
-#: elf64-ppc.c:15211 elf64-ppc.c:15230
+#: elf64-ppc.c:15272 elf64-ppc.c:15291
#, c-format
msgid "%s offset too large for .eh_frame sdata4 encoding"
msgstr ""
-#: elf64-ppc.c:15316
+#: elf64-ppc.c:15380
#, c-format
-msgid "linker stubs in %u group\n"
-msgid_plural "linker stubs in %u groups\n"
+msgid "linker stubs in %u group"
+msgid_plural "linker stubs in %u groups"
msgstr[0] ""
msgstr[1] ""
-#: elf64-ppc.c:15323
+#: elf64-ppc.c:15387
#, c-format
msgid ""
-"%s branch %lu\n"
+"%s, iter %u\n"
+" branch %lu\n"
" long branch %lu\n"
" plt call %lu\n"
" global entry %lu"
msgstr ""
-#: elf64-ppc.c:15705
+#: elf64-ppc.c:15769
#, c-format
msgid "%H: %s used with TLS symbol `%pT'\n"
msgstr ""
-#: elf64-ppc.c:15707
+#: elf64-ppc.c:15771
#, c-format
msgid "%H: %s used with non-TLS symbol `%pT'\n"
msgstr ""
-#: elf64-ppc.c:16491
+#: elf64-ppc.c:16555
#, c-format
msgid "%H: call to `%pT' lacks nop, can't restore toc; (plt call stub)\n"
msgstr ""
-#: elf64-ppc.c:16497
+#: elf64-ppc.c:16561
#, c-format
msgid "%H: call to `%pT' lacks nop, can't restore toc; (toc save/adjust stub)\n"
msgstr ""
-#: elf64-ppc.c:17154
+#: elf64-ppc.c:17212
#, c-format
msgid "%H: %s against %pT is not supported\n"
msgstr ""
-#: elf64-ppc.c:17430
+#: elf64-ppc.c:17488
#, c-format
msgid "%H: %s for indirect function `%pT' unsupported\n"
msgstr ""
-#: elf64-ppc.c:17522
+#: elf64-ppc.c:17575
#, c-format
msgid "%X%P: %pB: %s against %pT is not supported by glibc as a dynamic relocation\n"
msgstr ""
-#: elf64-ppc.c:17577
+#: elf64-ppc.c:17630
#, c-format
msgid "%P: %pB: %s is not supported for `%pT'\n"
msgstr ""
-#: elf64-ppc.c:17846
+#: elf64-ppc.c:17899
#, c-format
msgid "%H: error: %s not a multiple of %u\n"
msgstr ""
-#: elf64-ppc.c:17869
+#: elf64-ppc.c:17922
#, c-format
msgid "%H: unresolvable %s against `%pT'\n"
msgstr ""
-#: elf64-ppc.c:18014
+#: elf64-ppc.c:18067
#, c-format
msgid "%H: %s against `%pT': error %d\n"
msgstr ""
-#: elf64-s390.c:2457
+#: elf64-s390.c:2752
#, c-format
msgid "%pB: `%s' non-PLT reloc for symbol defined in shared library and accessed from executable (rebuild file with -fPIC ?)"
msgstr ""
-#: elf64-s390.c:3066
+#: elf64-s390.c:3415
#, c-format
-msgid "%pB(%pA+%#<PRIx64>): misaligned symbol `%s' (%#<PRIx64>) for relocation %s"
+msgid "%pB(%pA+%#<PRIx64>): relocation %s against misaligned symbol `%s' (%#<PRIx64>) in %pB"
msgstr ""
-#: elf64-sparc.c:134 elfcode.h:1525
+#: elf64-sparc.c:134 elfcode.h:1601
#, c-format
msgid "%pB(%pA): relocation %d has invalid symbol index %ld"
msgstr ""
@@ -4658,126 +4731,141 @@ msgstr ""
msgid "%pB: linking UltraSPARC specific with HAL specific code"
msgstr ""
-#: elf64-x86-64.c:1481
+#: elf64-x86-64.c:1690
msgid "hidden symbol "
-msgstr ""
+msgstr "დáƒáƒ›áƒáƒšáƒ£áƒšáƒ˜ სიმბáƒáƒšáƒ "
-#: elf64-x86-64.c:1484
+#: elf64-x86-64.c:1693
msgid "internal symbol "
-msgstr ""
+msgstr "შიდრსიმბáƒáƒšáƒ "
-#: elf64-x86-64.c:1487 elf64-x86-64.c:1491
+#: elf64-x86-64.c:1696 elf64-x86-64.c:1700
msgid "protected symbol "
-msgstr ""
+msgstr "დáƒáƒªáƒ£áƒšáƒ˜ სიმბáƒáƒšáƒ "
-#: elf64-x86-64.c:1493
+#: elf64-x86-64.c:1702
msgid "symbol "
-msgstr ""
+msgstr "სიმბáƒáƒšáƒ "
-#: elf64-x86-64.c:1499
+#: elf64-x86-64.c:1708
msgid "undefined "
-msgstr ""
+msgstr "áƒáƒ¦áƒ£áƒ¬áƒ”რელი "
-#: elf64-x86-64.c:1509
+#: elf64-x86-64.c:1718 elfnn-loongarch.c:901
msgid "a shared object"
-msgstr ""
+msgstr "გáƒáƒ–იáƒáƒ áƒ”ბული áƒáƒ‘იექტი"
-#: elf64-x86-64.c:1511
+#: elf64-x86-64.c:1720
msgid "; recompile with -fPIC"
-msgstr ""
+msgstr "; გáƒáƒ“áƒáƒáƒ™áƒáƒ›áƒžáƒ˜áƒšáƒ”თ პáƒáƒ áƒáƒ›áƒ”ტრით -fPIC"
-#: elf64-x86-64.c:1516
+#: elf64-x86-64.c:1725 elfnn-loongarch.c:907
msgid "a PIE object"
-msgstr ""
+msgstr "PIE áƒáƒ‘იექტი"
-#: elf64-x86-64.c:1518
+#: elf64-x86-64.c:1727 elfnn-loongarch.c:909
msgid "a PDE object"
-msgstr ""
+msgstr "PDE áƒáƒ‘იექტი"
-#: elf64-x86-64.c:1520
+#: elf64-x86-64.c:1729
msgid "; recompile with -fPIE"
-msgstr ""
+msgstr "; გáƒáƒ“áƒáƒáƒ™áƒáƒ›áƒžáƒ˜áƒšáƒ”თ პáƒáƒ áƒáƒ›áƒ”ტრით -fPIE"
-#: elf64-x86-64.c:1524
+#: elf64-x86-64.c:1733
#, c-format
msgid "%pB: relocation %s against %s%s`%s' can not be used when making %s%s"
msgstr ""
-#: elf64-x86-64.c:2029
+#: elf64-x86-64.c:2566
+#, c-format
+msgid "%pB: bad reloc offset (%#<PRIx64> > %#<PRIx64>) for section `%pA'"
+msgstr ""
+
+#: elf64-x86-64.c:2630
#, c-format
msgid "%pB: relocation %s against symbol `%s' isn't supported in x32 mode"
msgstr ""
-#: elf64-x86-64.c:2173
+#: elf64-x86-64.c:2791
#, c-format
msgid "%pB: '%s' accessed both as normal and thread local symbol"
msgstr ""
-#: elf64-x86-64.c:2832 elfnn-aarch64.c:5556 elfnn-riscv.c:2111
+#: elf64-x86-64.c:3046
+#, c-format
+msgid "%pB: unsupported relocation %s against symbol `%s'"
+msgstr ""
+
+#: elf64-x86-64.c:3472 elfnn-aarch64.c:5784 elfnn-riscv.c:2572
#, c-format
msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %<PRId64>"
msgstr ""
-#: elf64-x86-64.c:3092
+#: elf64-x86-64.c:3741
#, c-format
msgid "%pB: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used when making a shared object"
msgstr ""
-#: elf64-x86-64.c:3106
+#: elf64-x86-64.c:3755
#, c-format
msgid "%pB: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used when making a shared object"
msgstr ""
-#: elf64-x86-64.c:3396
+#: elf64-x86-64.c:4045
#, c-format
msgid "%pB: addend %s%#x in relocation %s against symbol `%s' at %#<PRIx64> in section `%pA' is out of range"
msgstr ""
-#: elf64-x86-64.c:3539 elflink.c:13706
-msgid "%F%P: corrupt input: %pB\n"
-msgstr ""
+#: elf64-x86-64.c:4197
+msgid "%P: corrupt input: %pB\n"
+msgstr "%P: დáƒáƒ–იáƒáƒœáƒ”ბული შეყვáƒáƒœáƒ: %pB\n"
-#: elf64-x86-64.c:4223
+#: elf64-x86-64.c:5066
#, c-format
msgid " failed to convert GOTPCREL relocation against '%s'; relink with --no-relax\n"
msgstr ""
-#: elf64-x86-64.c:4384
+#: elf64-x86-64.c:5225
+#, c-format
+msgid "%pB: PC-relative offset overflow in PLT entry for `%s'\n"
+msgstr ""
+
+#: elf64-x86-64.c:5301
#, c-format
-msgid "%F%pB: PC-relative offset overflow in PLT entry for `%s'\n"
+msgid "%pB: branch displacement overflow in PLT entry for `%s'\n"
msgstr ""
-#: elf64-x86-64.c:4452
+#: elf64-x86-64.c:5354
#, c-format
-msgid "%F%pB: branch displacement overflow in PLT entry for `%s'\n"
+msgid "%pB: PC-relative offset overflow in GOT PLT entry for `%s'\n"
msgstr ""
-#: elf64-x86-64.c:4505
+#: elf64-x86-64.c:5505
#, c-format
-msgid "%F%pB: PC-relative offset overflow in GOT PLT entry for `%s'\n"
+msgid "%pB: Unable to generate dynamic relocs because a suitable section does not exist\n"
msgstr ""
-#: elfcode.h:329
+#: elfcode.h:342
#, c-format
msgid "warning: %pB has a section extending past end of file"
msgstr ""
-#: elfcode.h:777
+#: elfcode.h:790
#, c-format
msgid "warning: %pB has a corrupt string table index"
msgstr ""
-#: elfcode.h:824
+#: elfcode.h:838
#, c-format
msgid "warning: %pB has a program header with invalid alignment"
msgstr ""
-#: elfcode.h:1011
+#: elfcode.h:1056
#, c-format
msgid "%pB: %pA+%<PRIx64>: relocation addend %<PRIx64> too large"
msgstr ""
-#: elfcode.h:1265
+#: elfcode.h:1321
#, c-format
msgid "%pB: version count (%<PRId64>) does not match symbol count (%ld)"
msgstr ""
@@ -4787,967 +4875,1254 @@ msgstr ""
msgid "warning: %pB has a segment extending past end of file"
msgstr ""
-#: elflink.c:1410
+#: elflink.c:1477
#, c-format
msgid "%s: TLS definition in %pB section %pA mismatches non-TLS definition in %pB section %pA"
msgstr ""
-#: elflink.c:1416
+#: elflink.c:1483
#, c-format
msgid "%s: TLS reference in %pB mismatches non-TLS reference in %pB"
msgstr ""
-#: elflink.c:1422
+#: elflink.c:1489
#, c-format
msgid "%s: TLS definition in %pB section %pA mismatches non-TLS reference in %pB"
msgstr ""
-#: elflink.c:1428
+#: elflink.c:1495
#, c-format
msgid "%s: TLS reference in %pB mismatches non-TLS definition in %pB section %pA"
msgstr ""
-#: elflink.c:2140
+#: elflink.c:2207
#, c-format
msgid "%pB: unexpected redefinition of indirect versioned symbol `%s'"
msgstr ""
-#: elflink.c:2601
+#: elflink.c:2720
#, c-format
msgid "%pB: version node not found for symbol %s"
msgstr ""
-#: elflink.c:2692
+#: elflink.c:2819
#, c-format
msgid "%pB: bad reloc symbol index (%#<PRIx64> >= %#lx) for offset %#<PRIx64> in section `%pA'"
msgstr ""
-#: elflink.c:2704
+#: elflink.c:2831
#, c-format
msgid "%pB: non-zero symbol index (%#<PRIx64>) for offset %#<PRIx64> in section `%pA' when the object file has no symbol table"
msgstr ""
-#: elflink.c:2915
+#: elflink.c:3017
#, c-format
msgid "%pB: relocation size mismatch in %pB section %pA"
msgstr ""
-#: elflink.c:3244
+#: elflink.c:3350
#, c-format
msgid "warning: type and size of dynamic symbol `%s' are not defined"
msgstr ""
-#: elflink.c:3304
+#: elflink.c:3407
msgid "%P: copy reloc against protected `%pT' is dangerous\n"
msgstr ""
-#: elflink.c:4266
+#: elflink.c:4363
+msgid "%P: %pB: failed to add %s to first hash\n"
+msgstr ""
+
+#: elflink.c:4431
+msgid "%P: first_hash failed to create: %E\n"
+msgstr ""
+
+#: elflink.c:4462
#, c-format
msgid "alternate ELF machine code found (%d) in %pB, expecting %d"
msgstr ""
-#: elflink.c:4749
+#: elflink.c:4945
#, c-format
msgid "%pB: invalid version offset %lx (max %lx)"
msgstr ""
-#: elflink.c:4817
+#: elflink.c:5015
#, c-format
msgid "%pB: %s local symbol at index %lu (>= sh_info of %lu)"
msgstr ""
-#: elflink.c:4965
+#: elflink.c:5164
#, c-format
msgid "%pB: not enough version information"
msgstr ""
-#: elflink.c:5003
+#: elflink.c:5202
#, c-format
msgid "%pB: %s: invalid version %u (max %d)"
msgstr ""
-#: elflink.c:5040
+#: elflink.c:5239
#, c-format
msgid "%pB: %s: invalid needed version %d"
msgstr ""
-#: elflink.c:5459
+#: elflink.c:5525
+#, c-format
+msgid "warning: alignment %u of normal symbol `%s' in %pB is smaller than %u used by the common definition in %pB"
+msgstr ""
+
+#: elflink.c:5532
+msgid "warning: NOTE: alignment discrepancies can cause real problems. Investigation is advised."
+msgstr ""
+
+#: elflink.c:5554
+msgid "warning: NOTE: size discrepancies can cause real problems. Investigation is advised."
+msgstr ""
+
+#: elflink.c:5697
#, c-format
msgid "%pB: undefined reference to symbol '%s'"
msgstr ""
-#: elflink.c:6519
+#: elflink.c:6812
#, c-format
msgid "%pB: stack size specified and %s set"
msgstr ""
-#: elflink.c:6523
+#: elflink.c:6816
#, c-format
msgid "%pB: %s not absolute"
-msgstr ""
+msgstr "%pB: %s áƒáƒ‘სáƒáƒšáƒ£áƒ¢áƒ£áƒ áƒ˜ áƒáƒ áƒáƒ"
-#: elflink.c:6735
+#: elflink.c:7028
#, c-format
msgid "%s: undefined version: %s"
msgstr ""
-#: elflink.c:7124
+#: elflink.c:7419
+msgid "error: creating an executable stack because of -z execstack command line option"
+msgstr ""
+
+#: elflink.c:7425
msgid "warning: enabling an executable stack because of -z execstack command line option"
msgstr ""
-#: elflink.c:7181
+#: elflink.c:7487
+#, c-format
+msgid "error: %s: is triggering the generation of an executable stack (because it has an executable .note.GNU-stack section)"
+msgstr ""
+
+#: elflink.c:7493
#, c-format
msgid "warning: %s: requires executable stack (because the .note.GNU-stack section is executable)"
msgstr ""
-#: elflink.c:7186
+#: elflink.c:7501
+#, c-format
+msgid "error: %s: is triggering the generation of an executable stack because it does not have a .note.GNU-stack section"
+msgstr ""
+
+#: elflink.c:7507
#, c-format
msgid "warning: %s: missing .note.GNU-stack section implies executable stack"
msgstr ""
-#: elflink.c:7189
+#: elflink.c:7510
msgid "NOTE: This behaviour is deprecated and will be removed in a future version of the linker"
msgstr ""
-#: elflink.c:7343
+#: elflink.c:7664
#, c-format
msgid "%pB: .preinit_array section is not allowed in DSO"
msgstr ""
-#: elflink.c:8934
+#: elflink.c:9284
#, c-format
msgid "undefined %s reference in complex symbol: %s"
msgstr ""
-#: elflink.c:9097 elflink.c:9105
+#: elflink.c:9447 elflink.c:9455
msgid "division by zero"
msgstr "ნულზე გáƒáƒ§áƒáƒ¤áƒ"
-#: elflink.c:9119
+#: elflink.c:9469
#, c-format
msgid "unknown operator '%c' in complex symbol"
msgstr ""
#. PR 21524: Let the user know if a symbol was removed by garbage collection.
-#: elflink.c:9455
+#: elflink.c:9805
#, c-format
msgid "%pB:%pA: error: relocation references symbol %s which was removed by garbage collection"
msgstr ""
-#: elflink.c:9458
+#: elflink.c:9808
#, c-format
msgid "%pB:%pA: error: try relinking with --gc-keep-exported enabled"
msgstr ""
-#: elflink.c:9709 elflink.c:9727 elflink.c:9766 elflink.c:9784
+#: elflink.c:10059 elflink.c:10077 elflink.c:10116 elflink.c:10134
#, c-format
msgid "%pB: unable to sort relocs - they are in more than one size"
msgstr ""
#. The section size is not divisible by either -
#. something is wrong.
-#: elflink.c:9743 elflink.c:9800
+#: elflink.c:10093 elflink.c:10150
#, c-format
msgid "%pB: unable to sort relocs - they are of an unknown size"
msgstr ""
-#: elflink.c:9852
+#: elflink.c:10202
msgid "not enough memory to sort relocations"
msgstr ""
-#: elflink.c:10190
+#: elflink.c:10536
#, c-format
msgid "%pB: too many sections: %d (>= %d)"
msgstr ""
-#: elflink.c:10466
+#: elflink.c:10812
#, c-format
msgid "%pB: internal symbol `%s' in %pB is referenced by DSO"
msgstr ""
-#: elflink.c:10469
+#: elflink.c:10815
#, c-format
msgid "%pB: hidden symbol `%s' in %pB is referenced by DSO"
msgstr ""
-#: elflink.c:10472
+#: elflink.c:10818
#, c-format
msgid "%pB: local symbol `%s' in %pB is referenced by DSO"
msgstr ""
-#: elflink.c:10558
+#: elflink.c:10911
#, c-format
msgid "%pB: could not find output section %pA for input section %pA"
msgstr ""
-#: elflink.c:10712
+#: elflink.c:11069
#, c-format
msgid "%pB: protected symbol `%s' isn't defined"
msgstr ""
-#: elflink.c:10715
+#: elflink.c:11072
#, c-format
msgid "%pB: internal symbol `%s' isn't defined"
msgstr ""
-#: elflink.c:10718
+#: elflink.c:11075
#, c-format
msgid "%pB: hidden symbol `%s' isn't defined"
msgstr ""
-#: elflink.c:10750
+#: elflink.c:11107
#, c-format
msgid "%pB: no symbol version section for versioned symbol `%s'"
msgstr ""
-#: elflink.c:11424
+#: elflink.c:11649
+#, c-format
+msgid "error: %pB: unable to create group section symbol"
+msgstr ""
+
+#: elflink.c:11798
#, c-format
-msgid "error: %pB contains a reloc (%#<PRIx64>) for section %pA that references a non-existent global symbol"
+msgid "error: %pB contains a reloc (%#<PRIx64>) for section '%pA' that references a non-existent global symbol"
msgstr ""
-#: elflink.c:11894
+#: elflink.c:12264
#, c-format
msgid "error: %pB: size of section %pA is not multiple of address size"
msgstr ""
-#: elflink.c:12171
+#: elflink.c:12544
#, c-format
msgid "%pB: no symbol found for import library"
msgstr ""
-#: elflink.c:12746
-msgid "%F%P: %pB: failed to finish relative relocations\n"
+#: elflink.c:13150
+msgid "%P: %pB: failed to finish relative relocations\n"
msgstr ""
-#: elflink.c:12823
+#: elflink.c:13227
#, c-format
msgid "%pB: file class %s incompatible with %s"
msgstr ""
-#: elflink.c:13072
+#: elflink.c:13449
#, c-format
msgid "%pB: failed to generate import library"
msgstr ""
-#: elflink.c:13240
+#: elflink.c:13610
#, c-format
msgid "warning: %s section has zero size"
msgstr ""
-#: elflink.c:13288
+#: elflink.c:13658
#, c-format
msgid "warning: section '%s' is being made into a note"
msgstr ""
-#: elflink.c:13382
+#: elflink.c:13752
msgid "%P%X: read-only segment has dynamic relocations\n"
msgstr ""
-#: elflink.c:13385
+#: elflink.c:13755
msgid "%P: warning: creating DT_TEXTREL in a shared object\n"
msgstr ""
-#: elflink.c:13388
+#: elflink.c:13758
msgid "%P: warning: creating DT_TEXTREL in a PDE\n"
msgstr ""
-#: elflink.c:13391
+#: elflink.c:13761
msgid "%P: warning: creating DT_TEXTREL in a PIE\n"
msgstr ""
-#: elflink.c:13527
+#: elflink.c:13890
msgid "%P%X: can not read symbols: %E\n"
msgstr ""
-#: elflink.c:13952
-msgid "%F%P: %pB(%pA): error: need linked-to section for --gc-sections\n"
+#: elflink.c:14312
+msgid "%P: %pB(%pA): error: need linked-to section for --gc-sections\n"
msgstr ""
-#: elflink.c:14430
+#: elflink.c:14793
#, c-format
msgid "%pB: %pA+%#<PRIx64>: no symbol found for INHERIT"
msgstr ""
-#: elflink.c:14471
+#: elflink.c:14834
#, c-format
msgid "%pB: section '%pA': corrupt VTENTRY entry"
msgstr ""
-#: elflink.c:14614
+#: elflink.c:14977
#, c-format
msgid "unrecognized INPUT_SECTION_FLAG %s\n"
msgstr ""
-#: elflink.c:15397
+#: elflink.c:15758
#, c-format
msgid "%P: %pB: warning: relocation against `%s' in read-only section `%pA'\n"
msgstr ""
-#: elflink.c:15486
+#: elflink.c:15847
msgid "%P: warning: GNU indirect functions with DT_TEXTREL may result in a segfault at runtime; recompile with %s\n"
msgstr ""
-#: elfxx-aarch64.c:477
+#: elfxx-aarch64.c:478
#, c-format
msgid "%pB: warning: Weak TLS is implementation defined and may not work as expected"
msgstr ""
-#: elfxx-aarch64.c:738 elfnn-aarch64.c:10031 elfnn-aarch64.c:10038
+#: elfxx-aarch64.c:786
+#, c-format
+msgid "%Xerror: found a total of %d inputs incompatible with BTI requirements.\n"
+msgstr ""
+
+#: elfxx-aarch64.c:788
+#, c-format
+msgid "warning: found a total of %d inputs incompatible with BTI requirements.\n"
+msgstr ""
+
+#: elfxx-aarch64.c:798
+#, c-format
+msgid "%Xerror: found a total of %d inputs incompatible with GCS requirements.\n"
+msgstr ""
+
+#: elfxx-aarch64.c:800
+#, c-format
+msgid "warning: found a total of %d inputs incompatible with GCS requirements.\n"
+msgstr ""
+
+#: elfxx-aarch64.c:810
#, c-format
-msgid "%pB: warning: BTI turned on by -z force-bti when all inputs do not have BTI in NOTE section."
+msgid "%Xerror: found a total of %d dynamically-linked objects incompatible with GCS requirements.\n"
msgstr ""
#: elfxx-aarch64.c:812
#, c-format
+msgid "warning: found a total of %d dynamically-linked objects incompatible with GCS requirements.\n"
+msgstr ""
+
+#: elfxx-aarch64.c:971
+#, c-format
msgid "error: %pB: <corrupt AArch64 used size: 0x%x>"
msgstr ""
-#: elfxx-loongarch.c:1398
+#: elfxx-aarch64.c:1115
+#, c-format
+msgid "%pB: warning: BTI is required by -z force-bti, but this input object file lacks the necessary property note.\n"
+msgstr ""
+
+#: elfxx-aarch64.c:1117
+#, c-format
+msgid "%X%pB: error: BTI is required by -z force-bti, but this input object file lacks the necessary property note.\n"
+msgstr ""
+
+#: elfxx-aarch64.c:1149
+#, c-format
+msgid "%pB: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking.\n"
+msgstr ""
+
+#: elfxx-aarch64.c:1153
+#, c-format
+msgid "%X%pB: error: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking.\n"
+msgstr ""
+
+#: elfxx-aarch64.c:1159
+#, c-format
+msgid "%pB: warning: GCS is required by -z gcs, but this input object file lacks the necessary property note.\n"
+msgstr ""
+
+#: elfxx-aarch64.c:1161
+#, c-format
+msgid "%X%pB: error: GCS is required by -z gcs, but this input object file lacks the necessary property note.\n"
+msgstr ""
+
+#: elfxx-loongarch.c:1911
#, c-format
msgid "%pB: unsupported relocation type %s"
msgstr ""
-#: elfxx-loongarch.c:1427
+#: elfxx-loongarch.c:1939
#, c-format
msgid "%pB: unsupported bfd relocation type %#x"
msgstr ""
-#: elfxx-loongarch.c:1446
+#: elfxx-loongarch.c:2013
+#, c-format
+msgid "%pB: relocation %s right shift %d error 0x%lx"
+msgstr ""
+
+#: elfxx-loongarch.c:2032
#, c-format
-msgid "%pB: unsupported relocation type name %s"
+msgid "%pB: relocation %s overflow 0x%lx"
msgstr ""
-#: elfxx-mips.c:1537
+#: elfxx-mips.c:1534
msgid "static procedure (no name)"
msgstr ""
-#: elfxx-mips.c:5835
+#: elfxx-mips.c:5895
msgid "MIPS16 and microMIPS functions cannot call each other"
msgstr ""
-#: elfxx-mips.c:6602
+#: elfxx-mips.c:6665
msgid "%X%H: unsupported JALX to the same ISA mode\n"
msgstr ""
-#: elfxx-mips.c:6635
+#: elfxx-mips.c:6698
msgid "%X%H: unsupported jump between ISA modes; consider recompiling with interlinking enabled\n"
msgstr ""
-#: elfxx-mips.c:6680
+#: elfxx-mips.c:6743
msgid "%X%H: cannot convert branch between ISA modes to JALX: relocation out of range\n"
msgstr ""
-#: elfxx-mips.c:6692
+#: elfxx-mips.c:6755
msgid "%X%H: unsupported branch between ISA modes\n"
msgstr ""
-#: elfxx-mips.c:7321
+#: elfxx-mips.c:7401
#, c-format
msgid "%pB: incorrect `.reginfo' section size; expected %<PRIu64>, got %<PRIu64>"
msgstr ""
-#: elfxx-mips.c:7365
+#: elfxx-mips.c:7445
#, c-format
msgid "%pB: warning: bad `%s' option size %u smaller than its header"
msgstr ""
-#: elfxx-mips.c:7601
+#: elfxx-mips.c:7681
#, c-format
msgid "%pB: warning: truncated `%s' option"
msgstr ""
-#: elfxx-mips.c:8424 elfxx-mips.c:8550
+#: elfxx-mips.c:8533 elfxx-mips.c:8659
#, c-format
msgid "%pB: warning: cannot determine the target function for stub section `%s'"
msgstr ""
-#: elfxx-mips.c:8682
+#: elfxx-mips.c:8791
#, c-format
msgid "%pB: malformed reloc detected for section %s"
msgstr ""
-#: elfxx-mips.c:8782
+#: elfxx-mips.c:8891
#, c-format
msgid "%pB: GOT reloc at %#<PRIx64> not expected in executables"
msgstr ""
-#: elfxx-mips.c:8922
+#: elfxx-mips.c:9031
#, c-format
msgid "%pB: CALL16 reloc at %#<PRIx64> not against global symbol"
msgstr ""
-#: elfxx-mips.c:9225
+#: elfxx-mips.c:9334
#, c-format
msgid "%X%H: relocation %s against `%s' cannot be used when making a shared object; recompile with -fPIC\n"
msgstr ""
-#: elfxx-mips.c:9351
+#: elfxx-mips.c:9460
#, c-format
msgid "IFUNC symbol %s in dynamic symbol table - IFUNCS are not supported"
msgstr ""
-#: elfxx-mips.c:9354
+#: elfxx-mips.c:9463
#, c-format
msgid "non-dynamic symbol %s in dynamic symbol table"
msgstr ""
-#: elfxx-mips.c:9574
+#: elfxx-mips.c:9683
#, c-format
msgid "non-dynamic relocations refer to dynamic symbol %s"
msgstr ""
-#: elfxx-mips.c:10509
+#: elfxx-mips.c:10606
#, c-format
msgid "%pB: can't find matching LO16 reloc against `%s' for %s at %#<PRIx64> in section `%pA'"
msgstr ""
-#: elfxx-mips.c:10649
-msgid "small-data section exceeds 64KB; lower small-data size limit (see option -G)"
+#: elfxx-mips.c:10748
+msgid "small-data section too large; lower small-data size limit (see option -G)"
msgstr ""
-#: elfxx-mips.c:10668
+#: elfxx-mips.c:10767
msgid "cannot convert a jump to JALX for a non-word-aligned address"
msgstr ""
-#: elfxx-mips.c:10671
+#: elfxx-mips.c:10770
msgid "jump to a non-word-aligned address"
msgstr ""
-#: elfxx-mips.c:10672
+#: elfxx-mips.c:10771
msgid "jump to a non-instruction-aligned address"
msgstr ""
-#: elfxx-mips.c:10675
+#: elfxx-mips.c:10774
msgid "cannot convert a branch to JALX for a non-word-aligned address"
msgstr ""
-#: elfxx-mips.c:10677
+#: elfxx-mips.c:10776
msgid "branch to a non-instruction-aligned address"
msgstr ""
-#: elfxx-mips.c:10679
+#: elfxx-mips.c:10778
msgid "PC-relative load from unaligned address"
msgstr ""
-#: elfxx-mips.c:10979
+#: elfxx-mips.c:11078
#, c-format
msgid "%pB: `%pA' entry VMA of %#<PRIx64> outside the 32-bit range supported; consider using `-Ttext-segment=...'"
msgstr ""
-#: elfxx-mips.c:11094 elfxx-mips.c:11681
+#: elfxx-mips.c:11193 elfxx-mips.c:11786
#, c-format
msgid "%pB: `%pA' offset of %<PRId64> from `%pA' beyond the range of ADDIUPC"
msgstr ""
-#: elfxx-mips.c:11653
+#: elfxx-mips.c:11758
#, c-format
msgid "%pB: `%pA' start VMA of %#<PRIx64> outside the 32-bit range supported; consider using `-Ttext-segment=...'"
msgstr ""
-#: elfxx-mips.c:13410 reloc.c:8573
+#: elfxx-mips.c:13503 reloc.c:8524
#, c-format
msgid "%X%P: %pB(%pA): error: relocation for offset %V has no value\n"
msgstr ""
-#: elfxx-mips.c:13511 reloc.c:8661
-#, c-format
-msgid "%X%P: %pB(%pA): relocation \"%pR\" is not supported\n"
-msgstr ""
-
-#: elfxx-mips.c:13520 reloc.c:8670
-#, c-format
-msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"
-msgstr ""
-
-#: elfxx-mips.c:14702
+#: elfxx-mips.c:14814
#, c-format
msgid "%pB: unknown architecture %s"
-msgstr ""
+msgstr "%pB: უცნáƒáƒ‘ი áƒáƒ áƒ¥áƒ˜áƒ¢áƒ”ქტურრ%s"
-#: elfxx-mips.c:15236
+#: elfxx-mips.c:15342
#, c-format
msgid "%pB: illegal section name `%pA'"
msgstr ""
-#: elfxx-mips.c:15513
+#: elfxx-mips.c:15620
#, c-format
msgid "%pB: warning: linking abicalls files with non-abicalls files"
msgstr ""
-#: elfxx-mips.c:15530
+#: elfxx-mips.c:15637
#, c-format
msgid "%pB: linking 32-bit code with 64-bit code"
msgstr ""
-#: elfxx-mips.c:15562 elfxx-mips.c:15628 elfxx-mips.c:15643
+#: elfxx-mips.c:15669 elfxx-mips.c:15735 elfxx-mips.c:15750
#, c-format
msgid "%pB: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:15586
+#: elfxx-mips.c:15693
#, c-format
msgid "%pB: ABI mismatch: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:15611
+#: elfxx-mips.c:15718
#, c-format
msgid "%pB: ASE mismatch: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:15745
+#: elfxx-mips.c:15852
#, c-format
msgid "warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses unknown floating point ABI %d"
msgstr ""
-#: elfxx-mips.c:15751
+#: elfxx-mips.c:15858
#, c-format
msgid "warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses %s"
msgstr ""
-#: elfxx-mips.c:15757
+#: elfxx-mips.c:15864
#, c-format
msgid "warning: %pB uses %s (set by %pB), %pB uses unknown floating point ABI %d"
msgstr ""
-#: elfxx-mips.c:15771
+#: elfxx-mips.c:15878
#, c-format
msgid "warning: %pB uses %s (set by %pB), %pB uses %s"
msgstr ""
-#: elfxx-mips.c:15790
+#: elfxx-mips.c:15897
#, c-format
msgid "warning: %pB uses %s (set by %pB), %pB uses unknown MSA ABI %d"
msgstr ""
-#: elfxx-mips.c:15802
+#: elfxx-mips.c:15909
#, c-format
msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses %s"
msgstr ""
-#: elfxx-mips.c:15811
+#: elfxx-mips.c:15918
#, c-format
msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses unknown MSA ABI %d"
msgstr ""
-#: elfxx-mips.c:15873
+#: elfxx-mips.c:15980
#, c-format
msgid "%pB: endianness incompatible with that of the selected emulation"
msgstr ""
-#: elfxx-mips.c:15887
+#: elfxx-mips.c:15994
#, c-format
msgid "%pB: ABI is incompatible with that of the selected emulation"
msgstr ""
-#: elfxx-mips.c:15940
+#: elfxx-mips.c:16047
#, c-format
msgid "%pB: warning: inconsistent ISA between e_flags and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15945
+#: elfxx-mips.c:16052
#, c-format
msgid "%pB: warning: inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15949
+#: elfxx-mips.c:16056
#, c-format
msgid "%pB: warning: inconsistent ASEs between e_flags and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15956
+#: elfxx-mips.c:16063
#, c-format
msgid "%pB: warning: inconsistent ISA extensions between e_flags and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15960
+#: elfxx-mips.c:16067
#, c-format
msgid "%pB: warning: unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)"
msgstr ""
-#: elfxx-mips.c:16151
+#: elfxx-mips.c:16258
msgid "-mips32r2 -mfp64 (12 callee-saved)"
msgstr ""
-#: elfxx-mips.c:16213 elfxx-mips.c:16224
+#: elfxx-mips.c:16320 elfxx-mips.c:16331
msgid "None"
msgstr "áƒáƒ áƒáƒ¤áƒ”რის"
-#: elfxx-mips.c:16215 elfxx-mips.c:16284
+#: elfxx-mips.c:16322 elfxx-mips.c:16391
msgid "Unknown"
-msgstr ""
+msgstr "უცნáƒáƒ‘ი"
-#: elfxx-mips.c:16295
+#: elfxx-mips.c:16402
#, c-format
msgid "Hard or soft float\n"
msgstr ""
-#: elfxx-mips.c:16298
+#: elfxx-mips.c:16405
#, c-format
msgid "Hard float (double precision)\n"
msgstr ""
-#: elfxx-mips.c:16301
+#: elfxx-mips.c:16408
#, c-format
msgid "Hard float (single precision)\n"
msgstr ""
-#: elfxx-mips.c:16304
+#: elfxx-mips.c:16411
#, c-format
msgid "Soft float\n"
msgstr ""
-#: elfxx-mips.c:16307
+#: elfxx-mips.c:16414
#, c-format
msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
msgstr ""
-#: elfxx-mips.c:16310
+#: elfxx-mips.c:16417
#, c-format
msgid "Hard float (32-bit CPU, Any FPU)\n"
msgstr ""
-#: elfxx-mips.c:16313
+#: elfxx-mips.c:16420
#, c-format
msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
msgstr ""
-#: elfxx-mips.c:16316
+#: elfxx-mips.c:16423
#, c-format
msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
msgstr ""
-#: elfxx-mips.c:16348
+#: elfxx-mips.c:16455
#, c-format
msgid " [abi=O32]"
-msgstr ""
+msgstr " [abi=O32]"
-#: elfxx-mips.c:16350
+#: elfxx-mips.c:16457
#, c-format
msgid " [abi=O64]"
-msgstr ""
+msgstr " [abi=O64]"
-#: elfxx-mips.c:16352
+#: elfxx-mips.c:16459
#, c-format
msgid " [abi=EABI32]"
-msgstr ""
+msgstr " [abi=EABI32]"
-#: elfxx-mips.c:16354
+#: elfxx-mips.c:16461
#, c-format
msgid " [abi=EABI64]"
-msgstr ""
+msgstr " [abi=EABI64]"
-#: elfxx-mips.c:16356
+#: elfxx-mips.c:16463
#, c-format
msgid " [abi unknown]"
-msgstr ""
+msgstr " [abi უცნáƒáƒ‘იáƒ]"
-#: elfxx-mips.c:16358
+#: elfxx-mips.c:16465
#, c-format
msgid " [abi=N32]"
-msgstr ""
+msgstr " [abi=N32]"
-#: elfxx-mips.c:16360
+#: elfxx-mips.c:16467
#, c-format
msgid " [abi=64]"
-msgstr ""
+msgstr " [abi=64]"
-#: elfxx-mips.c:16362
+#: elfxx-mips.c:16469
#, c-format
msgid " [no abi set]"
-msgstr ""
+msgstr " [abi დáƒáƒ§áƒ”ნებული áƒáƒ áƒáƒ]"
-#: elfxx-mips.c:16387
+#: elfxx-mips.c:16494
#, c-format
msgid " [unknown ISA]"
-msgstr ""
+msgstr " [უცნáƒáƒ‘ი ISA]"
-#: elfxx-mips.c:16407
+#: elfxx-mips.c:16514
#, c-format
msgid " [not 32bitmode]"
msgstr ""
-#: elfxx-riscv.c:1569
+#: elfxx-riscv.c:1950
#, c-format
msgid "x ISA extension `%s' must be set with the versions"
msgstr ""
-#: elfxx-riscv.c:1575
+#: elfxx-riscv.c:1956
#, c-format
msgid "cannot find default versions of the ISA extension `%s'"
msgstr ""
-#: elfxx-riscv.c:1681
+#: elfxx-riscv.c:2063
#, c-format
msgid "%s: first ISA extension must be `e', `i' or `g'"
msgstr ""
-#: elfxx-riscv.c:1705
+#: elfxx-riscv.c:2087
#, c-format
msgid "%s: unknown standard ISA extension or prefix class `%c'"
msgstr ""
-#: elfxx-riscv.c:1741
+#: elfxx-riscv.c:2123
#, c-format
msgid "%s: invalid prefixed ISA extension `%s' ends with <number>p"
msgstr ""
-#: elfxx-riscv.c:1765
+#: elfxx-riscv.c:2147
#, c-format
msgid "%s: unknown prefixed ISA extension `%s'"
msgstr ""
-#: elfxx-riscv.c:1789
+#: elfxx-riscv.c:2171
#, c-format
msgid "%s: prefixed ISA extension must separate with _"
msgstr ""
-#: elfxx-riscv.c:1828
+#: elfxx-riscv.c:2211
#, c-format
-msgid "rv%d does not support the `e' extension"
+msgid "rv%de does not support the `h' extension"
msgstr ""
-#: elfxx-riscv.c:1836
+#: elfxx-riscv.c:2219
#, c-format
msgid "rv%d does not support the `q' extension"
msgstr ""
-#: elfxx-riscv.c:1843
+#: elfxx-riscv.c:2226
+msgid "zcmp' is incompatible with `d' and `c', or `zcd' extension"
+msgstr ""
+
+#: elfxx-riscv.c:2233
+#, c-format
+msgid "rv%d does not support the `zcf' extension"
+msgstr ""
+
+#: elfxx-riscv.c:2240
msgid "`zfinx' is conflict with the `f/d/q/zfh/zfhmin' extension"
msgstr ""
-#: elfxx-riscv.c:1864
+#: elfxx-riscv.c:2247
+msgid "`xtheadvector' is conflict with the `v/zve32x' extension"
+msgstr ""
+
+#: elfxx-riscv.c:2256
+msgid "`zclsd' is conflict with the `c+f'/ `zcf' extension"
+msgstr ""
+
+#: elfxx-riscv.c:2261
+#, c-format
+msgid "rv%d does not support the `ssnpm' extension"
+msgstr ""
+
+#: elfxx-riscv.c:2267
+#, c-format
+msgid "rv%d does not support the `smnpm' extension"
+msgstr ""
+
+#: elfxx-riscv.c:2273
+#, c-format
+msgid "rv%d does not support the `smmpm' extension"
+msgstr ""
+
+#: elfxx-riscv.c:2279
+#, c-format
+msgid "rv%d does not support the `sspm' extension"
+msgstr ""
+
+#: elfxx-riscv.c:2285
+#, c-format
+msgid "rv%d does not support the `supm' extension"
+msgstr ""
+
+#: elfxx-riscv.c:2307
msgid "zvl*b extensions need to enable either `v' or `zve' extension"
msgstr ""
-#: elfxx-riscv.c:1926
+#: elfxx-riscv.c:2364
+msgid "Warning: should use \"_\" to contact Profiles with other extensions"
+msgstr ""
+
+#: elfxx-riscv.c:2405
#, c-format
msgid "%s: ISA string cannot contain uppercase letters"
msgstr ""
-#: elfxx-riscv.c:1954
+#: elfxx-riscv.c:2439
#, c-format
-msgid "%s: ISA string must begin with rv32 or rv64"
+msgid "%s: ISA string must begin with rv32, rv64 or Profiles"
msgstr ""
-#: elfxx-riscv.c:2180
+#: elfxx-riscv.c:2629
+msgid "internal: "
+msgstr "შიდáƒ: "
+
+#: elfxx-riscv.c:2683
#, c-format
-msgid "invalid ISA extension ends with <number>p in .option arch `%s'"
+msgid "%sinvalid ISA extension ends with <number>p in %s `%s'"
msgstr ""
-#: elfxx-riscv.c:2203
+#: elfxx-riscv.c:2706
#, c-format
-msgid "unknown ISA extension `%s' in .option arch `%s'"
+msgid "%sunknown ISA extension `%s' in %s `%s'"
msgstr ""
-#: elfxx-riscv.c:2214
+#: elfxx-riscv.c:2717
#, c-format
-msgid "cannot + or - base extension `%s' in .option arch `%s'"
+msgid "%sdeprecated - extension `%s' in %s `%s'"
msgstr ""
-#: elfxx-riscv.c:2388 elfxx-riscv.c:2546
-msgid "internal: unreachable INSN_CLASS_*"
+#: elfxx-riscv.c:2727
+#, c-format
+msgid "%scannot + base extension `%s' in %s `%s'"
msgstr ""
-#: elfxx-riscv.c:2419
-msgid "m' or `zmmul"
+#: elfxx-riscv.c:3059 elfxx-riscv.c:3343
+msgid "internal: unreachable INSN_CLASS_*"
msgstr ""
-#: elfxx-riscv.c:2435
-msgid "f' and `c"
+#: elfxx-riscv.c:3093
+msgid "zicfiss' and `zcmop"
msgstr ""
-#: elfxx-riscv.c:2443
-msgid "d' and `c"
+#: elfxx-riscv.c:3106
+msgid "zihintntl' and `c', or `zihintntl' and `zca"
msgstr ""
-#: elfxx-riscv.c:2449
+#: elfxx-riscv.c:3111 elfxx-riscv.c:3137
+msgid "c' or `zca"
+msgstr "c' áƒáƒœ `zca"
+
+#: elfxx-riscv.c:3119
+msgid "m' or `zmmul"
+msgstr "m' áƒáƒœ `zmmul"
+
+#: elfxx-riscv.c:3139
+msgid "f' and `c', or `zcf"
+msgstr "f' დრ`c', áƒáƒœ `zcf"
+
+#: elfxx-riscv.c:3141
+msgid "d' and `c', or `zcd"
+msgstr "d' დრ`c', áƒáƒœ `zcd"
+
+#: elfxx-riscv.c:3143
msgid "f' or `zfinx"
-msgstr ""
+msgstr "f' áƒáƒœ `zfinx"
-#: elfxx-riscv.c:2451
+#: elfxx-riscv.c:3145
msgid "d' or `zdinx"
-msgstr ""
+msgstr "d' áƒáƒœ `zdinx"
-#: elfxx-riscv.c:2453
+#: elfxx-riscv.c:3147
msgid "q' or `zqinx"
-msgstr ""
+msgstr "q' áƒáƒœ `zqinx"
-#: elfxx-riscv.c:2455
+#: elfxx-riscv.c:3149
msgid "zfh' or `zhinx"
-msgstr ""
+msgstr "zfh' áƒáƒœ `zhinx"
-#: elfxx-riscv.c:2459
+#: elfxx-riscv.c:3153
msgid "zfhmin' or `zhinxmin"
-msgstr ""
+msgstr "zfhmin' áƒáƒœ `zhinxmin"
-#: elfxx-riscv.c:2470
+#: elfxx-riscv.c:3164
msgid "zfhmin' and `d', or `zhinxmin' and `zdinx"
-msgstr ""
+msgstr "zfhmin' დრ`d', áƒáƒœ `zhinxmin' დრ`zdinx"
-#: elfxx-riscv.c:2481
+#: elfxx-riscv.c:3175
msgid "zfhmin' and `q', or `zhinxmin' and `zqinx"
-msgstr ""
+msgstr "zfhmin' დრ`q', áƒáƒœ `zhinxmin' დრ`zqinx"
+
+#: elfxx-riscv.c:3183
+msgid "d' and `zfa"
+msgstr "d' დრ`zfa"
+
+#: elfxx-riscv.c:3191
+msgid "q' and `zfa"
+msgstr "q' დრ`zfa"
+
+#: elfxx-riscv.c:3199
+msgid "zfh' and `zfa"
+msgstr "zfh' დრ`zfa"
+
+#: elfxx-riscv.c:3209
+msgid "zfh' and `zfa', or `zvfh' and `zfa"
+msgstr "zfh' დრ`zfa', áƒáƒœ `zvfh' დრ`zfa"
+
+#: elfxx-riscv.c:3214
+msgid "zfh' or `zvfh"
+msgstr "zfh' áƒáƒœ `zvfh"
-#: elfxx-riscv.c:2497
+#: elfxx-riscv.c:3230
msgid "zbb' or `zbkb"
-msgstr ""
+msgstr "zbb' áƒáƒœ `zbkb"
-#: elfxx-riscv.c:2499
+#: elfxx-riscv.c:3232
msgid "zbc' or `zbkc"
-msgstr ""
+msgstr "zbc' áƒáƒœ `zbkc"
-#: elfxx-riscv.c:2507
+#: elfxx-riscv.c:3240
msgid "zknd' or `zkne"
-msgstr ""
+msgstr "zknd' áƒáƒœ `zkne"
-#: elfxx-riscv.c:2513
+#: elfxx-riscv.c:3246
msgid "v' or `zve64x' or `zve32x"
-msgstr ""
+msgstr "v' áƒáƒœ `zve64x' áƒáƒœ `zve32x"
-#: elfxx-riscv.c:2515
+#: elfxx-riscv.c:3248
msgid "v' or `zve64d' or `zve64f' or `zve32f"
-msgstr ""
+msgstr "v' áƒáƒœ `zve64d' áƒáƒœ `zve64f' áƒáƒœ `zve32f"
+
+#: elfxx-riscv.c:3250
+msgid "zvbb"
+msgstr "zvbb"
+
+#: elfxx-riscv.c:3252
+msgid "zvbc"
+msgstr "zvbc"
+
+#: elfxx-riscv.c:3258
+msgid "zvkb"
+msgstr "zvkb"
+
+#: elfxx-riscv.c:3260
+msgid "zvkg"
+msgstr "zvkg"
+
+#: elfxx-riscv.c:3262
+msgid "zvkned"
+msgstr "zvkned"
+
+#: elfxx-riscv.c:3264
+msgid "zvknha' or `zvknhb"
+msgstr "zvknha' áƒáƒœ `zvknhb"
+
+#: elfxx-riscv.c:3266
+msgid "zvksed"
+msgstr "zvksed"
-#: elfxx-riscv.c:2519
+#: elfxx-riscv.c:3268
+msgid "zvksh"
+msgstr "zvksh"
+
+#: elfxx-riscv.c:3272
+msgid "zcb' and `zba"
+msgstr "zcb' დრ`zba"
+
+#: elfxx-riscv.c:3274
+msgid "zcb' and `zbb"
+msgstr "zcb' დრ`zbb"
+
+#: elfxx-riscv.c:3276
+msgid "zcb' and `zmmul', or `zcb' and `m"
+msgstr "zcb' დრ`zmmul', áƒáƒœ `zcb' დრ`m"
+
+#: elfxx-riscv.c:3284
+msgid "smctr' or `ssctr"
+msgstr "smctr' áƒáƒœ `ssctr"
+
+#: elfxx-riscv.c:3294
msgid "h"
msgstr "სთ"
-#: elfxx-sparc.c:3021 elfnn-aarch64.c:5540
+#: elfxx-riscv.c:3441
+msgid "%F%P: failed to create GNU property section\n"
+msgstr ""
+
+#: elfxx-riscv.c:3485
+#, c-format
+msgid "error: %pB: <corrupt RISC-V used size: 0x%x>"
+msgstr ""
+
+#: elfxx-sparc.c:3028 elfnn-aarch64.c:5768
#, c-format
msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s"
msgstr ""
-#: elfxx-tilegx.c:4126
+#: elfxx-tilegx.c:4128
#, c-format
msgid "%pB: cannot link together %s and %s objects"
msgstr ""
-#: elfxx-x86.c:536 elfxx-x86.c:3385
+#: elfxx-x86.c:534 elfxx-x86.c:3586
#, c-format
-msgid "%F%P: %pB: copy relocation against non-copyable protected symbol `%s' in %pB\n"
+msgid "%P: %pB: copy relocation against non-copyable protected symbol `%s' in %pB\n"
msgstr ""
-#: elfxx-x86.c:1043
+#: elfxx-x86.c:1027
#, c-format
-msgid "%F%P: %pB: failed to allocate relative reloc record\n"
+msgid "%P: %pB: failed to allocate relative reloc record\n"
msgstr ""
-#: elfxx-x86.c:1385
+#: elfxx-x86.c:1388
#, c-format
-msgid "%F%P: %pB: failed to allocate 64-bit DT_RELR bitmap\n"
+msgid "%P: %pB: failed to allocate 64-bit DT_RELR bitmap\n"
msgstr ""
-#: elfxx-x86.c:1421
+#: elfxx-x86.c:1424
#, c-format
-msgid "%F%P: %pB: failed to allocate 32-bit DT_RELR bitmap\n"
+msgid "%P: %pB: failed to allocate 32-bit DT_RELR bitmap\n"
msgstr ""
-#: elfxx-x86.c:1560
+#: elfxx-x86.c:1563
#, c-format
-msgid "%F%P: %pB: failed to allocate memory for section `%pA'\n"
+msgid "%P: %pB: failed to allocate memory for section `%pA'\n"
msgstr ""
-#: elfxx-x86.c:1747
+#: elfxx-x86.c:1750
#, c-format
-msgid "%F%P: %pB: size of compact relative reloc section is changed: new (%lu) != old (%lu)\n"
+msgid "%P: %pB: size of compact relative reloc section is changed: new (%lu) != old (%lu)\n"
msgstr ""
-#: elfxx-x86.c:1769
+#: elfxx-x86.c:1772
#, c-format
-msgid "%F%P: %pB: failed to allocate compact relative reloc section\n"
+msgid "%P: %pB: failed to allocate compact relative reloc section\n"
msgstr ""
-#: elfxx-x86.c:2214
+#: elfxx-x86.c:2243
#, c-format
-msgid "%F%P: %pB: relocation %s against absolute symbol `%s' in section `%pA' is disallowed\n"
+msgid "%P: %pB: relocation %s against absolute symbol `%s' in section `%pA' is disallowed\n"
msgstr ""
-#: elfxx-x86.c:2296
+#: elfxx-x86.c:2325
msgid "%P: %pB: warning: relocation in read-only section `%pA'\n"
msgstr ""
-#: elfxx-x86.c:3138
+#: elfxx-x86.c:3254
msgid "%pB: %s (offset: 0x%v, info: 0x%v, addend: 0x%v) against '%s' for section '%pA' in %pB\n"
msgstr ""
-#: elfxx-x86.c:3144
+#: elfxx-x86.c:3260
msgid "%pB: %s (offset: 0x%v, info: 0x%v) against '%s' for section '%pA' in %pB\n"
msgstr ""
-#: elfxx-x86.c:3759
+#: elfxx-x86.c:3296
+#, c-format
+msgid "%pB: TLS transition from %s to %s against `%s' at 0x%v in section `%pA' failed\n"
+msgstr ""
+
+#: elfxx-x86.c:3305
+#, c-format
+msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in ADD or MOV only\n"
+msgstr ""
+
+#: elfxx-x86.c:3313
+#, c-format
+msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in ADD or MOVRS only\n"
+msgstr ""
+
+#: elfxx-x86.c:3321
+#, c-format
+msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in ADD, SUB or MOV only\n"
+msgstr ""
+
+#: elfxx-x86.c:3329
+#, c-format
+msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in indirect CALL with %s register only\n"
+msgstr ""
+
+#: elfxx-x86.c:3338
+#, c-format
+msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in LEA only\n"
+msgstr ""
+
+#: elfxx-x86.c:3965
#, c-format
msgid "error: %pB: <corrupt x86 property (0x%x) size: 0x%x>"
msgstr ""
-#: elfxx-x86.c:4106
+#: elfxx-x86.c:4178
+#, c-format
+msgid "%pB: x86 ISA needed: "
+msgstr ""
+
+#: elfxx-x86.c:4180
+#, c-format
+msgid "%pB: x86 ISA used: "
+msgstr ""
+
+#: elfxx-x86.c:4202
+#, c-format
+msgid "<unknown: %x>"
+msgstr "<უცნáƒáƒ‘ი: %x>"
+
+#: elfxx-x86.c:4338
+msgid "%P: failed to create %sn"
+msgstr ""
+
+#: elfxx-x86.c:4352
msgid "%P: %pB: warning: missing %s\n"
msgstr ""
-#: elfxx-x86.c:4107
+#: elfxx-x86.c:4353
msgid "%X%P: %pB: error: missing %s\n"
msgstr ""
-#: elfxx-x86.c:4170
+#: elfxx-x86.c:4459
msgid "IBT and SHSTK properties"
msgstr ""
-#: elfxx-x86.c:4172
+#: elfxx-x86.c:4461
msgid "IBT property"
msgstr ""
-#: elfxx-x86.c:4174
+#: elfxx-x86.c:4463
msgid "SHSTK property"
msgstr ""
-#: elfxx-x86.c:4179
+#: elfxx-x86.c:4468
msgid "LAM_U48 property"
msgstr ""
-#: elfxx-x86.c:4184
+#: elfxx-x86.c:4473
msgid "LAM_U57 property"
msgstr ""
-#: elfxx-x86.c:4351
-msgid "%F%P: failed to create VxWorks dynamic sections\n"
+#: elfxx-x86.c:4651
+msgid "%P: failed to create VxWorks dynamic sections\n"
msgstr ""
-#: elfxx-x86.c:4360
-msgid "%F%P: failed to create GOT sections\n"
+#: elfxx-x86.c:4660
+msgid "%P: failed to create GOT sections\n"
msgstr ""
-#: elfxx-x86.c:4378
-msgid "%F%P: failed to create ifunc sections\n"
+#: elfxx-x86.c:4678
+msgid "%P: failed to create ifunc sections\n"
msgstr ""
-#: elfxx-x86.c:4415
-msgid "%F%P: failed to create GOT PLT section\n"
+#: elfxx-x86.c:4717
+msgid "%P: failed to create GOT PLT section\n"
msgstr ""
-#: elfxx-x86.c:4434
-msgid "%F%P: failed to create IBT-enabled PLT section\n"
+#: elfxx-x86.c:4734
+msgid "%P: failed to create IBT-enabled PLT section\n"
msgstr ""
-#: elfxx-x86.c:4454
-msgid "%F%P: failed to create PLT .eh_frame section\n"
+#: elfxx-x86.c:4752
+msgid "%P: failed to create PLT .eh_frame section\n"
msgstr ""
-#: elfxx-x86.c:4467
-msgid "%F%P: failed to create GOT PLT .eh_frame section\n"
+#: elfxx-x86.c:4763
+msgid "%P: failed to create GOT PLT .eh_frame section\n"
msgstr ""
-#: elfxx-x86.c:4481
-msgid "%F%P: failed to create the second PLT .eh_frame section\n"
+#: elfxx-x86.c:4775
+msgid "%P: failed to create the second PLT .eh_frame section\n"
msgstr ""
-#: elfxx-x86.c:4501
-msgid "%F%P: failed to create PLT .sframe section\n"
+#: elfxx-x86.c:4790
+msgid "%P: failed to create PLT .sframe section\n"
msgstr ""
-#: elfxx-x86.c:4516
-msgid "%F%P: failed to create second PLT .sframe section\n"
+#: elfxx-x86.c:4806
+msgid "%P: failed to create second PLT .sframe section\n"
msgstr ""
-#: elfxx-x86.c:4556
+#: elfxx-x86.c:4819
+msgid "%P: failed to create PLT GOT .sframe section\n"
+msgstr ""
+
+#: elfxx-x86.c:4859
msgid "%X%P: attempted static link of dynamic object `%pB'\n"
msgstr ""
@@ -5786,77 +6161,76 @@ msgstr ""
msgid "%pB:%u: unrecognized ihex type %u in Intel Hex file"
msgstr ""
-#: ihex.c:581
+#: ihex.c:580
#, c-format
msgid "%pB: internal error in ihex_read_section"
msgstr ""
-#: ihex.c:614
+#: ihex.c:613
#, c-format
msgid "%pB: bad section length in ihex_read_section"
msgstr ""
-#: ihex.c:785
+#: ihex.c:784
#, c-format
msgid "%pB 64-bit address %#<PRIx64> out of range for Intel Hex file"
msgstr ""
-#: ihex.c:843
+#: ihex.c:842
#, c-format
msgid "%pB: address %#<PRIx64> out of range for Intel Hex file"
msgstr ""
-#: libbfd.c:940
+#: libbfd.c:1260
#, c-format
msgid "%pB: unable to get decompressed section %pA"
msgstr ""
-#: libbfd.c:1096
+#: libbfd.c:1272
#, c-format
-msgid "Deprecated %s called at %s line %d in %s\n"
+msgid "%pB: mapped section %pA has non-NULL buffer"
msgstr ""
-#: libbfd.c:1099
+#: linker.c:1749
#, c-format
-msgid "Deprecated %s called\n"
+msgid "%pB: indirect symbol `%s' to `%s' is a loop"
msgstr ""
-#: linker.c:1710
-#, c-format
-msgid "%pB: indirect symbol `%s' to `%s' is a loop"
+#: linker.c:1829
+msgid "%P: %pB: note: the message above does not take linker garbage collection into account\n"
msgstr ""
-#: linker.c:2580
+#: linker.c:2663
#, c-format
msgid "attempt to do relocatable link with %s input and %s output"
msgstr ""
-#: linker.c:2859
+#: linker.c:2942
#, c-format
msgid "%pB: ignoring duplicate section `%pA'\n"
msgstr ""
-#: linker.c:2869 linker.c:2879
+#: linker.c:2952 linker.c:2962
#, c-format
msgid "%pB: duplicate section `%pA' has different size\n"
msgstr ""
-#: linker.c:2888 linker.c:2894
+#: linker.c:2976 linker.c:2984
#, c-format
msgid "%pB: could not read contents of section `%pA'\n"
msgstr ""
-#: linker.c:2899
+#: linker.c:2993
#, c-format
msgid "%pB: duplicate section `%pA' has different contents\n"
msgstr ""
-#: linker.c:3417
+#: linker.c:3517
#, c-format
msgid "%pB: compiled for a big endian system and target is little endian"
msgstr ""
-#: linker.c:3420
+#: linker.c:3520
#, c-format
msgid "%pB: compiled for a little endian system and target is big endian"
msgstr ""
@@ -5895,149 +6269,149 @@ msgstr ""
msgid "malformed mach-o ARM reloc: unknown reloc type: %d"
msgstr ""
-#: mach-o.c:631
+#: mach-o.c:642
#, c-format
msgid "<unknown mask flags>"
msgstr ""
-#: mach-o.c:686
+#: mach-o.c:697
msgid " (<unknown>)"
-msgstr ""
+msgstr " (<უცნáƒáƒ‘ი>)"
-#: mach-o.c:698
+#: mach-o.c:709
#, c-format
msgid " MACH-O header:\n"
msgstr ""
-#: mach-o.c:699
+#: mach-o.c:710
#, c-format
msgid " magic: %#lx\n"
msgstr ""
-#: mach-o.c:700
+#: mach-o.c:711
#, c-format
msgid " cputype: %#lx (%s)\n"
msgstr ""
-#: mach-o.c:702
+#: mach-o.c:713
#, c-format
msgid " cpusubtype: %#lx%s\n"
msgstr ""
-#: mach-o.c:704
+#: mach-o.c:715
#, c-format
msgid " filetype: %#lx\n"
msgstr ""
-#: mach-o.c:705
+#: mach-o.c:716
#, c-format
msgid " ncmds: %#lx\n"
msgstr ""
-#: mach-o.c:706
+#: mach-o.c:717
#, c-format
msgid " sizeocmds: %#lx\n"
msgstr ""
-#: mach-o.c:707
+#: mach-o.c:718
#, c-format
msgid " flags: %#lx\n"
-msgstr ""
+msgstr " áƒáƒšáƒ›áƒ”ბი: %#lx\n"
-#: mach-o.c:708
+#: mach-o.c:719
#, c-format
msgid " version: %x\n"
-msgstr ""
+msgstr " ვერსიáƒ: %x\n"
#. Urg - what has happened ?
-#: mach-o.c:743
+#: mach-o.c:754
#, c-format
msgid "incompatible cputypes in mach-o files: %ld vs %ld"
msgstr ""
-#: mach-o.c:912
+#: mach-o.c:923
msgid "bfd_mach_o_canonicalize_symtab: unable to load symbols"
msgstr ""
-#: mach-o.c:1504
+#: mach-o.c:1515
msgid "malformed mach-o reloc: section index is greater than the number of sections"
msgstr ""
-#: mach-o.c:2141
+#: mach-o.c:2157
msgid "sorry: modtab, toc and extrefsyms are not yet implemented for dysymtab commands."
msgstr ""
-#: mach-o.c:2589
+#: mach-o.c:2605
#, c-format
msgid "mach-o: there are too many sections (%u) maximum is 255,\n"
msgstr ""
-#: mach-o.c:2681
+#: mach-o.c:2697
#, c-format
msgid "unable to allocate data for load command %#x"
msgstr ""
-#: mach-o.c:2786
+#: mach-o.c:2802
#, c-format
msgid "unable to write unknown load command %#x"
msgstr ""
-#: mach-o.c:2970
+#: mach-o.c:2986
#, c-format
msgid "section address (%#<PRIx64>) below start of segment (%#<PRIx64>)"
msgstr ""
-#: mach-o.c:3112
+#: mach-o.c:3128
#, c-format
msgid "unable to layout unknown load command %#x"
msgstr ""
-#: mach-o.c:3647
+#: mach-o.c:3654
#, c-format
msgid "bfd_mach_o_read_section_32: overlarge alignment value: %#lx"
msgstr ""
-#: mach-o.c:3690
+#: mach-o.c:3697
#, c-format
msgid "bfd_mach_o_read_section_64: overlarge alignment value: %#lx"
msgstr ""
-#: mach-o.c:3741
+#: mach-o.c:3748
#, c-format
msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %u"
msgstr ""
-#: mach-o.c:3760
+#: mach-o.c:3767
#, c-format
msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %u)"
msgstr ""
-#: mach-o.c:3843
+#: mach-o.c:3850
#, c-format
msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d (max %lu): setting to undefined"
msgstr ""
-#: mach-o.c:3862
+#: mach-o.c:3869
#, c-format
msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x%x: setting to undefined"
msgstr ""
-#: mach-o.c:5061
+#: mach-o.c:5068
#, c-format
msgid "%pB: unknown load command %#x"
msgstr ""
-#: mach-o.c:5260
+#: mach-o.c:5266
#, c-format
msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx"
msgstr ""
-#: mach-o.c:5382
+#: mach-o.c:5391
#, c-format
msgid "unknown header byte-order value %#x"
msgstr ""
-#: merge.c:894
+#: merge.c:1126
#, c-format
msgid "%pB: access beyond end of merged section (%<PRId64>)"
msgstr ""
@@ -6047,192 +6421,192 @@ msgstr ""
msgid "%pB: no core to allocate a symbol %d bytes long"
msgstr ""
-#: mmo.c:958
+#: mmo.c:951
#, c-format
msgid "%pB: attempt to emit contents at non-multiple-of-4 address %#<PRIx64>"
msgstr ""
-#: mmo.c:1253
+#: mmo.c:1246
#, c-format
msgid "%pB: invalid mmo file: initialization value for $255 is not `Main'\n"
msgstr ""
-#: mmo.c:1400
+#: mmo.c:1393
#, c-format
msgid "%pB: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n"
msgstr ""
-#: mmo.c:1416
+#: mmo.c:1409
#, c-format
msgid "%pB: symbol name exceeds given max length of %d"
msgstr ""
-#: mmo.c:1645
+#: mmo.c:1638
#, c-format
msgid "%pB: invalid mmo file: unsupported lopcode `%d'\n"
msgstr ""
-#: mmo.c:1656
+#: mmo.c:1649
#, c-format
msgid "%pB: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n"
msgstr ""
-#: mmo.c:1700
+#: mmo.c:1693
#, c-format
msgid "%pB: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n"
msgstr ""
-#: mmo.c:1751
+#: mmo.c:1744
#, c-format
msgid "%pB: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n"
msgstr ""
-#: mmo.c:1800
+#: mmo.c:1793
#, c-format
msgid "%pB: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n"
msgstr ""
-#: mmo.c:1811
+#: mmo.c:1804
#, c-format
msgid "%pB: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n"
msgstr ""
-#: mmo.c:1836
+#: mmo.c:1829
#, c-format
msgid "%pB: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n"
msgstr ""
-#: mmo.c:1865
+#: mmo.c:1858
#, c-format
msgid "%pB: cannot allocate file name for file number %d, %d bytes\n"
msgstr ""
-#: mmo.c:1887
+#: mmo.c:1880
#, c-format
msgid "%pB: invalid mmo file: file number %d `%s', was already entered as `%s'\n"
msgstr ""
-#: mmo.c:1901
+#: mmo.c:1895
#, c-format
msgid "%pB: invalid mmo file: file name for number %d was not specified before use\n"
msgstr ""
-#: mmo.c:2013
+#: mmo.c:2007
#, c-format
msgid "%pB: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n"
msgstr ""
-#: mmo.c:2050
+#: mmo.c:2044
#, c-format
msgid "%pB: invalid mmo file: lop_end not last item in file\n"
msgstr ""
-#: mmo.c:2064
+#: mmo.c:2058
#, c-format
msgid "%pB: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n"
msgstr ""
-#: mmo.c:2777
+#: mmo.c:2768
#, c-format
msgid "%pB: invalid symbol table: duplicate symbol `%s'\n"
msgstr ""
-#: mmo.c:3016
+#: mmo.c:3007
#, c-format
msgid "%pB: bad symbol definition: `Main' set to %<PRIx64> rather than the start address %<PRIx64>\n"
msgstr ""
-#: mmo.c:3115
+#: mmo.c:3106
#, c-format
msgid "%pB: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d. Only `Main' will be emitted.\n"
msgstr ""
-#: mmo.c:3161
+#: mmo.c:3152
#, c-format
msgid "%pB: internal error, symbol table changed size from %d to %d words\n"
msgstr ""
-#: mmo.c:3214
+#: mmo.c:3205
#, c-format
msgid "%pB: internal error, internal register section %pA had contents\n"
msgstr ""
-#: mmo.c:3265
+#: mmo.c:3256
#, c-format
msgid "%pB: no initialized registers; section length 0\n"
msgstr ""
-#: mmo.c:3272
+#: mmo.c:3263
#, c-format
msgid "%pB: too many initialized registers; section length %<PRId64>"
msgstr ""
-#: mmo.c:3277
+#: mmo.c:3268
#, c-format
msgid "%pB: invalid start address for initialized registers of length %<PRId64>: %#<PRIx64>"
msgstr ""
-#: osf-core.c:127
+#: osf-core.c:128
#, c-format
msgid "unhandled OSF/1 core file section type %d"
msgstr ""
-#: pdp11.c:1589
+#: pdp11.c:1573
#, c-format
msgid "%pB: symbol indicates overlay (not supported)"
msgstr ""
-#: pef.c:531
+#: pef.c:534
#, c-format
msgid "bfd_pef_scan: unknown architecture 0x%lx"
msgstr ""
-#: pei-x86_64.c:178 pei-x86_64.c:232 pei-x86_64.c:242 pei-x86_64.c:267
-#: pei-x86_64.c:279 pei-x86_64.c:293 pei-x86_64.c:311 pei-x86_64.c:323
-#: pei-x86_64.c:335
+#: pei-x86_64.c:176 pei-x86_64.c:230 pei-x86_64.c:240 pei-x86_64.c:265
+#: pei-x86_64.c:277 pei-x86_64.c:291 pei-x86_64.c:309 pei-x86_64.c:321
+#: pei-x86_64.c:333
#, c-format
msgid "warning: corrupt unwind data\n"
msgstr ""
#. PR 17512: file: 2245-7442-0.004.
-#: pei-x86_64.c:356
+#: pei-x86_64.c:354
#, c-format
msgid "Unknown: %x"
-msgstr ""
+msgstr "უცნáƒáƒ‘ი: %x"
-#: pei-x86_64.c:407 pei-x86_64.c:417 pei-x86_64.c:426
+#: pei-x86_64.c:405 pei-x86_64.c:415 pei-x86_64.c:424
#, c-format
msgid "warning: xdata section corrupt\n"
msgstr ""
-#: pei-x86_64.c:481
+#: pei-x86_64.c:479
#, c-format
msgid "Too many unwind codes (%ld)\n"
msgstr ""
-#: pei-x86_64.c:566
+#: pei-x86_64.c:565
#, c-format
msgid "Warning: %s section size (%ld) is not a multiple of %d\n"
msgstr ""
-#: pei-x86_64.c:573
+#: pei-x86_64.c:572
#, c-format
msgid "Warning: %s section size is zero\n"
msgstr ""
-#: pei-x86_64.c:588
+#: pei-x86_64.c:587
#, c-format
msgid "Warning: %s section size (%ld) is smaller than virtual size (%ld)\n"
msgstr ""
-#: pei-x86_64.c:597
+#: pei-x86_64.c:596
#, c-format
msgid ""
"\n"
"The Function Table (interpreted %s section contents)\n"
msgstr ""
-#: pei-x86_64.c:600
+#: pei-x86_64.c:599
#, c-format
msgid "vma:\t\t\tBeginAddress\t EndAddress\t UnwindData\n"
msgstr ""
@@ -6244,131 +6618,159 @@ msgid ""
"Dump of %s\n"
msgstr ""
-#. XXX code yet to be written.
-#: peicode.h:819
+#: peicode.h:823
#, c-format
-msgid "%pB: unhandled import type; %x"
+msgid "%pB: unrecognized import type; %x"
msgstr ""
-#: peicode.h:825
+#: peicode.h:840
#, c-format
-msgid "%pB: unrecognized import type; %x"
+msgid "%pB: missing import name for IMPORT_NAME_EXPORTAS for %s"
msgstr ""
-#: peicode.h:840
+#: peicode.h:849
#, c-format
msgid "%pB: unrecognized import name type; %x"
msgstr ""
-#: peicode.h:1260
+#: peicode.h:1299
#, c-format
msgid "%pB: unrecognised machine type (0x%x) in Import Library Format archive"
msgstr ""
-#: peicode.h:1273
+#: peicode.h:1312
#, c-format
msgid "%pB: recognised but unhandled machine type (0x%x) in Import Library Format archive"
msgstr ""
-#: peicode.h:1291
+#: peicode.h:1330
#, c-format
msgid "%pB: size field is zero in Import Library Format header"
msgstr ""
-#: peicode.h:1317
+#: peicode.h:1356
#, c-format
msgid "%pB: string not null terminated in ILF object file"
msgstr ""
-#: peicode.h:1373
+#: peicode.h:1427
#, c-format
msgid "%pB: error: debug data ends beyond end of debug directory"
msgstr ""
-#: peicode.h:1530
+#: peicode.h:1599
#, c-format
msgid "%pB: adjusting invalid SectionAlignment"
msgstr ""
-#: peicode.h:1540
+#: peicode.h:1609
#, c-format
msgid "%pB: adjusting invalid FileAlignment"
msgstr ""
-#: peicode.h:1548
+#: peicode.h:1617
#, c-format
msgid "%pB: invalid NumberOfRvaAndSizes"
msgstr ""
-#: plugin.c:247
+#: plugin.c:195
+#, c-format
+msgid "%s: failed to open to extract object only section: %s"
+msgstr ""
+
+#: plugin.c:212
+#, c-format
+msgid "%pB: invalid file to extract object only section: %s"
+msgstr ""
+
+#: plugin.c:225
+#, c-format
+msgid "%pB: failed to extract object only section: %s"
+msgstr ""
+
+#: plugin.c:245
+#, c-format
+msgid "%pB: failed to open object only section: %s"
+msgstr ""
+
+#: plugin.c:255
+#, c-format
+msgid "%pB: failed to get symbol table in object only section: %s"
+msgstr ""
+
+#: plugin.c:411
msgid "plugin framework: out of file descriptors. Try using fewer objects/archives\n"
msgstr ""
-#: ppcboot.c:393
+#: ppcboot.c:392
#, c-format
msgid ""
"\n"
"ppcboot header:\n"
msgstr ""
+"\n"
+"ppcboot-ის თáƒáƒ•სáƒáƒ áƒ—ი:\n"
-#: ppcboot.c:394
+#: ppcboot.c:393
#, c-format
msgid "Entry offset = 0x%.8lx (%ld)\n"
msgstr ""
-#: ppcboot.c:396
+#: ppcboot.c:395
#, c-format
msgid "Length = 0x%.8lx (%ld)\n"
-msgstr ""
+msgstr "სიგრძე = 0x%.8lx (%ld)\n"
-#: ppcboot.c:400
+#: ppcboot.c:399
#, c-format
msgid "Flag field = 0x%.2x\n"
-msgstr ""
+msgstr "áƒáƒšáƒ›áƒ˜áƒ¡ ველი = 0x%.2x\n"
-#: ppcboot.c:406
+#: ppcboot.c:405
#, c-format
msgid "Partition name = \"%s\"\n"
-msgstr ""
+msgstr "დáƒáƒœáƒáƒ§áƒáƒ¤áƒ˜áƒ¡ სáƒáƒ®áƒ”ლი = \"%s\"\n"
-#: ppcboot.c:426
+#: ppcboot.c:425
#, c-format
msgid ""
"\n"
"Partition[%d] start = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n"
msgstr ""
+"\n"
+"დáƒáƒœáƒáƒ§áƒáƒ¤áƒ˜áƒ¡[%d] სáƒáƒ¬áƒ§áƒ˜áƒ¡áƒ˜ = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n"
-#: ppcboot.c:433
+#: ppcboot.c:432
#, c-format
msgid "Partition[%d] end = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n"
-msgstr ""
+msgstr "დáƒáƒœáƒáƒ§áƒáƒ¤áƒ˜áƒ¡[%d] დáƒáƒ¡áƒáƒ¡áƒ áƒ£áƒšáƒ˜ = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n"
-#: ppcboot.c:440
+#: ppcboot.c:439
#, c-format
msgid "Partition[%d] sector = 0x%.8lx (%ld)\n"
-msgstr ""
+msgstr "დáƒáƒœáƒáƒ§áƒáƒ¤áƒ˜áƒ¡[%d] სექტáƒáƒ áƒ˜ = 0x%.8lx (%ld)\n"
-#: ppcboot.c:444
+#: ppcboot.c:443
#, c-format
msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
-msgstr ""
+msgstr "დáƒáƒœáƒáƒ§áƒáƒ¤áƒ˜áƒ¡[%d] სიგრძე = 0x%.8lx (%ld)\n"
-#: reloc.c:8471
+#: reloc.c:8423
msgid "INPUT_SECTION_FLAGS are not supported"
msgstr ""
-#: reloc.c:8738
+#: reloc.c:8689
#, c-format
msgid "%pB: unrecognized relocation type %#x in section `%pA'"
msgstr ""
#. PR 21803: Suggest the most likely cause of this error.
-#: reloc.c:8742
+#: reloc.c:8693
#, c-format
msgid "is this version of the linker - %s - out of date ?"
msgstr ""
-#: rs6000-core.c:470
+#: rs6000-core.c:471
#, c-format
msgid "%pB: warning core file truncated"
msgstr ""
@@ -6384,19 +6786,19 @@ msgid "%pB(%pA+%#<PRIx64>): %s relocation offset out of range"
msgstr ""
#. User has specified a subspace without its containing space.
-#: som.c:5488
+#: som.c:5403
#, c-format
msgid "%pB[%pA]: no output section for space %pA"
msgstr ""
-#: som.c:5534
+#: som.c:5450
#, c-format
msgid ""
"\n"
"Exec Auxiliary Header\n"
msgstr ""
-#: som.c:5843
+#: som.c:5759
msgid "som_sizeof_headers unimplemented"
msgstr ""
@@ -6415,12 +6817,12 @@ msgstr ""
msgid "%pB:%d: bad checksum in S-record file"
msgstr ""
-#: stabs.c:279
+#: stabs.c:308
#, c-format
msgid "%pB(%pA+%#lx): stabs entry has invalid string index"
msgstr ""
-#: syms.c:1098
+#: syms.c:1121
msgid "unsupported .stab relocation"
msgstr ""
@@ -6518,14 +6920,14 @@ msgstr ""
#: vms-alpha.c:2382 vms-alpha.c:2397
#, c-format
msgid "invalid %s"
-msgstr ""
+msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ %s"
#. Divide by zero is supposed to give a result of zero,
#. and a non-fatal warning message.
#: vms-alpha.c:2457
#, c-format
msgid "%s divide by zero"
-msgstr ""
+msgstr "%s ნულზე გáƒáƒ§áƒáƒ¤áƒ"
#: vms-alpha.c:2523
#, c-format
@@ -6545,2026 +6947,2020 @@ msgstr ""
msgid "object module not error-free !"
msgstr ""
-#: vms-alpha.c:4004
+#: vms-alpha.c:4006
#, c-format
msgid "SEC_RELOC with no relocs in section %pA"
msgstr ""
-#: vms-alpha.c:4056 vms-alpha.c:4271
+#: vms-alpha.c:4058 vms-alpha.c:4286
#, c-format
msgid "size error in section %pA"
msgstr ""
-#: vms-alpha.c:4216
+#: vms-alpha.c:4229
msgid "spurious ALPHA_R_BSR reloc"
msgstr ""
-#: vms-alpha.c:4257
+#: vms-alpha.c:4272
#, c-format
msgid "unhandled relocation %s"
msgstr ""
-#: vms-alpha.c:4616
+#: vms-alpha.c:4637
#, c-format
msgid "unknown source command %d"
msgstr ""
-#: vms-alpha.c:4768 vms-alpha.c:4773 vms-alpha.c:4778 vms-alpha.c:4783
-#: vms-alpha.c:4788 vms-alpha.c:4811 vms-alpha.c:4816 vms-alpha.c:4821
-#: vms-alpha.c:4826
+#: vms-alpha.c:4789 vms-alpha.c:4794 vms-alpha.c:4799 vms-alpha.c:4804
+#: vms-alpha.c:4809 vms-alpha.c:4832 vms-alpha.c:4837 vms-alpha.c:4842
+#: vms-alpha.c:4847
#, c-format
msgid "%s not implemented"
-msgstr ""
+msgstr "%s გáƒáƒœáƒ®áƒáƒ áƒªáƒ˜áƒ”ლებული áƒáƒ áƒáƒ"
-#: vms-alpha.c:4862
+#: vms-alpha.c:4883
#, c-format
msgid "unknown line command %d"
msgstr ""
-#: vms-alpha.c:5323 vms-alpha.c:5341 vms-alpha.c:5356 vms-alpha.c:5372
-#: vms-alpha.c:5385 vms-alpha.c:5397 vms-alpha.c:5410
+#: vms-alpha.c:5322
+msgid "corrupt reloc record"
+msgstr ""
+
+#: vms-alpha.c:5352 vms-alpha.c:5370 vms-alpha.c:5387 vms-alpha.c:5405
+#: vms-alpha.c:5418 vms-alpha.c:5430 vms-alpha.c:5443
#, c-format
msgid "unknown reloc %s + %s"
msgstr ""
-#: vms-alpha.c:5465
+#: vms-alpha.c:5502
#, c-format
msgid "unknown reloc %s"
msgstr ""
-#: vms-alpha.c:5479
+#: vms-alpha.c:5516
msgid "invalid section index in ETIR"
msgstr ""
-#: vms-alpha.c:5488
+#: vms-alpha.c:5525
msgid "relocation for non-REL psect"
msgstr ""
-#: vms-alpha.c:5537
+#: vms-alpha.c:5578
#, c-format
msgid "unknown symbol in command %s"
msgstr ""
-#: vms-alpha.c:5956
+#: vms-alpha.c:5996
#, c-format
msgid "reloc (%d) is *UNKNOWN*"
msgstr ""
-#: vms-alpha.c:6072
-#, c-format
-msgid " EMH %u (len=%u): "
-msgstr ""
-
-#: vms-alpha.c:6077
+#: vms-alpha.c:6113
#, c-format
-msgid " Error: The length is less than the length of an EMH record\n"
+msgid " EMH %d (len=%u): "
msgstr ""
-#: vms-alpha.c:6094
+#: vms-alpha.c:6118 vms-alpha.c:6137 vms-alpha.c:6216
#, c-format
-msgid " Error: The record length is less than the size of an EMH_MHD record\n"
+msgid " Error: %s min length is %u\n"
msgstr ""
-#: vms-alpha.c:6097
+#: vms-alpha.c:6141
#, c-format
msgid "Module header\n"
msgstr ""
-#: vms-alpha.c:6098
+#: vms-alpha.c:6142
#, c-format
msgid " structure level: %u\n"
msgstr ""
-#: vms-alpha.c:6099
+#: vms-alpha.c:6143
#, c-format
msgid " max record size: %u\n"
msgstr ""
-#: vms-alpha.c:6105
+#: vms-alpha.c:6149
#, c-format
msgid " Error: The module name is missing\n"
msgstr ""
-#: vms-alpha.c:6111
+#: vms-alpha.c:6155
#, c-format
msgid " Error: The module name is too long\n"
msgstr ""
-#: vms-alpha.c:6114
+#: vms-alpha.c:6158
#, c-format
msgid " module name : %.*s\n"
msgstr ""
-#: vms-alpha.c:6118
+#: vms-alpha.c:6162
#, c-format
msgid " Error: The module version is missing\n"
msgstr ""
-#: vms-alpha.c:6124
+#: vms-alpha.c:6168
#, c-format
msgid " Error: The module version is too long\n"
msgstr ""
-#: vms-alpha.c:6127
+#: vms-alpha.c:6171
#, c-format
msgid " module version : %.*s\n"
msgstr ""
-#: vms-alpha.c:6130
+#: vms-alpha.c:6174
#, c-format
msgid " Error: The compile date is truncated\n"
msgstr ""
-#: vms-alpha.c:6132
+#: vms-alpha.c:6176
#, c-format
msgid " compile date : %.17s\n"
msgstr ""
-#: vms-alpha.c:6137
+#: vms-alpha.c:6181
#, c-format
msgid "Language Processor Name\n"
msgstr ""
-#: vms-alpha.c:6138
+#: vms-alpha.c:6182
#, c-format
msgid " language name: %.*s\n"
msgstr ""
-#: vms-alpha.c:6142
+#: vms-alpha.c:6186
#, c-format
msgid "Source Files Header\n"
msgstr ""
-#: vms-alpha.c:6143
+#: vms-alpha.c:6187
#, c-format
msgid " file: %.*s\n"
msgstr ""
-#: vms-alpha.c:6147
+#: vms-alpha.c:6191
#, c-format
msgid "Title Text Header\n"
msgstr ""
-#: vms-alpha.c:6148
+#: vms-alpha.c:6192
#, c-format
msgid " title: %.*s\n"
msgstr ""
-#: vms-alpha.c:6152
+#: vms-alpha.c:6196
#, c-format
msgid "Copyright Header\n"
msgstr ""
-#: vms-alpha.c:6153
+#: vms-alpha.c:6197
#, c-format
msgid " copyright: %.*s\n"
msgstr ""
-#: vms-alpha.c:6157
+#: vms-alpha.c:6201
#, c-format
msgid "unhandled emh subtype %u\n"
msgstr ""
-#: vms-alpha.c:6167
+#: vms-alpha.c:6211
#, c-format
msgid " EEOM (len=%u):\n"
msgstr ""
-#: vms-alpha.c:6172
-#, c-format
-msgid " Error: The length is less than the length of an EEOM record\n"
-msgstr ""
-
-#: vms-alpha.c:6176
+#: vms-alpha.c:6221
#, c-format
msgid " number of cond linkage pairs: %u\n"
msgstr ""
-#: vms-alpha.c:6178
+#: vms-alpha.c:6223
#, c-format
msgid " completion code: %u\n"
msgstr ""
-#: vms-alpha.c:6182
+#: vms-alpha.c:6228
#, c-format
msgid " transfer addr flags: 0x%02x\n"
msgstr ""
-#: vms-alpha.c:6183
+#: vms-alpha.c:6229
#, c-format
msgid " transfer addr psect: %u\n"
msgstr ""
-#: vms-alpha.c:6185
+#: vms-alpha.c:6231
#, c-format
msgid " transfer address : 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6194
+#: vms-alpha.c:6240
msgid " WEAK"
msgstr ""
-#: vms-alpha.c:6196
+#: vms-alpha.c:6242
msgid " DEF"
msgstr ""
-#: vms-alpha.c:6198
+#: vms-alpha.c:6244
msgid " UNI"
msgstr ""
-#: vms-alpha.c:6200 vms-alpha.c:6221
+#: vms-alpha.c:6246 vms-alpha.c:6267
msgid " REL"
msgstr ""
-#: vms-alpha.c:6202
+#: vms-alpha.c:6248
msgid " COMM"
msgstr ""
-#: vms-alpha.c:6204
+#: vms-alpha.c:6250
msgid " VECEP"
msgstr ""
-#: vms-alpha.c:6206
+#: vms-alpha.c:6252
msgid " NORM"
msgstr ""
-#: vms-alpha.c:6208
+#: vms-alpha.c:6254
msgid " QVAL"
msgstr ""
-#: vms-alpha.c:6215
+#: vms-alpha.c:6261
msgid " PIC"
msgstr ""
-#: vms-alpha.c:6217
+#: vms-alpha.c:6263
msgid " LIB"
msgstr ""
-#: vms-alpha.c:6219
+#: vms-alpha.c:6265
msgid " OVR"
msgstr ""
-#: vms-alpha.c:6223
+#: vms-alpha.c:6269
msgid " GBL"
msgstr ""
-#: vms-alpha.c:6225
+#: vms-alpha.c:6271
msgid " SHR"
msgstr ""
-#: vms-alpha.c:6227
+#: vms-alpha.c:6273
msgid " EXE"
msgstr ""
-#: vms-alpha.c:6229
+#: vms-alpha.c:6275
msgid " RD"
msgstr ""
-#: vms-alpha.c:6231
+#: vms-alpha.c:6277
msgid " WRT"
msgstr ""
-#: vms-alpha.c:6233
+#: vms-alpha.c:6279
msgid " VEC"
msgstr ""
-#: vms-alpha.c:6235
+#: vms-alpha.c:6281
msgid " NOMOD"
msgstr ""
-#: vms-alpha.c:6237
+#: vms-alpha.c:6283
msgid " COM"
msgstr ""
-#: vms-alpha.c:6239
+#: vms-alpha.c:6285
msgid " 64B"
msgstr ""
-#: vms-alpha.c:6248
+#: vms-alpha.c:6294
#, c-format
msgid " EGSD (len=%u):\n"
msgstr ""
-#: vms-alpha.c:6263
+#: vms-alpha.c:6309
#, c-format
msgid " EGSD entry %2u (type: %u, len: %u): "
msgstr ""
-#: vms-alpha.c:6269 vms-alpha.c:6564
+#: vms-alpha.c:6315 vms-alpha.c:6610
#, c-format
msgid " Erroneous length\n"
msgstr ""
-#: vms-alpha.c:6282
+#: vms-alpha.c:6328
#, c-format
msgid "PSC - Program section definition\n"
msgstr ""
-#: vms-alpha.c:6283 vms-alpha.c:6303
+#: vms-alpha.c:6329 vms-alpha.c:6349
#, c-format
msgid " alignment : 2**%u\n"
msgstr ""
-#: vms-alpha.c:6284 vms-alpha.c:6304
+#: vms-alpha.c:6330 vms-alpha.c:6350
#, c-format
msgid " flags : 0x%04x"
msgstr ""
-#: vms-alpha.c:6288
+#: vms-alpha.c:6334
#, c-format
msgid " alloc (len): %u (0x%08x)\n"
msgstr ""
-#: vms-alpha.c:6290 vms-alpha.c:6356 vms-alpha.c:6424
+#: vms-alpha.c:6336 vms-alpha.c:6402 vms-alpha.c:6470
#, c-format
msgid " name : %.*s\n"
msgstr ""
-#: vms-alpha.c:6302
+#: vms-alpha.c:6348
#, c-format
msgid "SPSC - Shared Image Program section def\n"
msgstr ""
-#: vms-alpha.c:6308
+#: vms-alpha.c:6354
#, c-format
msgid " alloc (len) : %u (0x%08x)\n"
msgstr ""
-#: vms-alpha.c:6309
+#: vms-alpha.c:6355
#, c-format
msgid " image offset : 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6311
+#: vms-alpha.c:6357
#, c-format
msgid " symvec offset : 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6314
+#: vms-alpha.c:6360
#, c-format
msgid " name : %.*s\n"
msgstr ""
-#: vms-alpha.c:6330
+#: vms-alpha.c:6376
#, c-format
msgid "SYM - Global symbol definition\n"
msgstr ""
-#: vms-alpha.c:6331 vms-alpha.c:6412 vms-alpha.c:6436 vms-alpha.c:6459
+#: vms-alpha.c:6377 vms-alpha.c:6458 vms-alpha.c:6482 vms-alpha.c:6505
#, c-format
msgid " flags: 0x%04x"
msgstr ""
-#: vms-alpha.c:6334
+#: vms-alpha.c:6380
#, c-format
msgid " psect offset: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6338
+#: vms-alpha.c:6384
#, c-format
msgid " code address: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6340
+#: vms-alpha.c:6386
#, c-format
msgid " psect index for entry point : %u\n"
msgstr ""
-#: vms-alpha.c:6343 vms-alpha.c:6443 vms-alpha.c:6466
+#: vms-alpha.c:6389 vms-alpha.c:6489 vms-alpha.c:6512
#, c-format
msgid " psect index : %u\n"
msgstr ""
-#: vms-alpha.c:6346 vms-alpha.c:6446 vms-alpha.c:6469
+#: vms-alpha.c:6392 vms-alpha.c:6492 vms-alpha.c:6515
#, c-format
msgid " name : %.*s\n"
msgstr ""
-#: vms-alpha.c:6354
+#: vms-alpha.c:6400
#, c-format
msgid "SYM - Global symbol reference\n"
msgstr ""
-#: vms-alpha.c:6369
+#: vms-alpha.c:6415
#, c-format
msgid "IDC - Ident Consistency check\n"
msgstr ""
-#: vms-alpha.c:6370
+#: vms-alpha.c:6416
#, c-format
msgid " flags : 0x%08x"
msgstr ""
-#: vms-alpha.c:6374
+#: vms-alpha.c:6420
#, c-format
msgid " id match : %x\n"
msgstr ""
-#: vms-alpha.c:6376
+#: vms-alpha.c:6422
#, c-format
msgid " error severity: %x\n"
msgstr ""
-#: vms-alpha.c:6380
+#: vms-alpha.c:6426
#, c-format
msgid " entity name : %.*s\n"
msgstr ""
-#: vms-alpha.c:6386
+#: vms-alpha.c:6432
#, c-format
msgid " object name : %.*s\n"
msgstr ""
-#: vms-alpha.c:6395
+#: vms-alpha.c:6441
#, c-format
msgid " binary ident : 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6399
+#: vms-alpha.c:6445
#, c-format
msgid " ascii ident : %.*s\n"
msgstr ""
-#: vms-alpha.c:6411
+#: vms-alpha.c:6457
#, c-format
msgid "SYMG - Universal symbol definition\n"
msgstr ""
-#: vms-alpha.c:6415
+#: vms-alpha.c:6461
#, c-format
msgid " symbol vector offset: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6417
+#: vms-alpha.c:6463
#, c-format
msgid " entry point: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6419
+#: vms-alpha.c:6465
#, c-format
msgid " proc descr : 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6421
+#: vms-alpha.c:6467
#, c-format
msgid " psect index: %u\n"
msgstr ""
-#: vms-alpha.c:6435
+#: vms-alpha.c:6481
#, c-format
msgid "SYMV - Vectored symbol definition\n"
msgstr ""
-#: vms-alpha.c:6439
+#: vms-alpha.c:6485
#, c-format
msgid " vector : 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6441 vms-alpha.c:6464
+#: vms-alpha.c:6487 vms-alpha.c:6510
#, c-format
msgid " psect offset: %u\n"
msgstr ""
-#: vms-alpha.c:6458
+#: vms-alpha.c:6504
#, c-format
msgid "SYMM - Global symbol definition with version\n"
msgstr ""
-#: vms-alpha.c:6462
+#: vms-alpha.c:6508
#, c-format
msgid " version mask: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6475
+#: vms-alpha.c:6521
#, c-format
msgid "unhandled egsd entry type %u\n"
msgstr ""
-#: vms-alpha.c:6514
+#: vms-alpha.c:6560
#, c-format
msgid " linkage index: %u, replacement insn: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6518
+#: vms-alpha.c:6564
#, c-format
msgid " psect idx 1: %u, offset 1: 0x%08x %08x\n"
msgstr ""
-#: vms-alpha.c:6523
+#: vms-alpha.c:6569
#, c-format
msgid " psect idx 2: %u, offset 2: 0x%08x %08x\n"
msgstr ""
-#: vms-alpha.c:6529
+#: vms-alpha.c:6575
#, c-format
msgid " psect idx 3: %u, offset 3: 0x%08x %08x\n"
msgstr ""
-#: vms-alpha.c:6534
+#: vms-alpha.c:6580
#, c-format
msgid " global name: %.*s\n"
msgstr ""
-#: vms-alpha.c:6546
+#: vms-alpha.c:6592
#, c-format
msgid " %s (len=%u):\n"
msgstr ""
-#: vms-alpha.c:6569
+#: vms-alpha.c:6615
#, c-format
msgid " (type: %3u, size: %3u): "
msgstr ""
-#: vms-alpha.c:6575
+#: vms-alpha.c:6621
#, c-format
msgid "STA_GBL (stack global) %.*s\n"
msgstr ""
-#: vms-alpha.c:6579
+#: vms-alpha.c:6625
#, c-format
msgid "STA_LW (stack longword)"
msgstr ""
-#: vms-alpha.c:6585
+#: vms-alpha.c:6631
#, c-format
msgid "STA_QW (stack quadword)"
msgstr ""
-#: vms-alpha.c:6592
+#: vms-alpha.c:6638
#, c-format
msgid "STA_PQ (stack psect base + offset)\n"
msgstr ""
-#: vms-alpha.c:6595
+#: vms-alpha.c:6641
#, c-format
msgid " psect: %u, offset: 0x%08x %08x\n"
msgstr ""
-#: vms-alpha.c:6601
+#: vms-alpha.c:6647
#, c-format
msgid "STA_LI (stack literal)\n"
msgstr ""
-#: vms-alpha.c:6604
+#: vms-alpha.c:6650
#, c-format
msgid "STA_MOD (stack module)\n"
msgstr ""
-#: vms-alpha.c:6607
+#: vms-alpha.c:6653
#, c-format
msgid "STA_CKARG (compare procedure argument)\n"
msgstr ""
-#: vms-alpha.c:6611
+#: vms-alpha.c:6657
#, c-format
msgid "STO_B (store byte)\n"
msgstr ""
-#: vms-alpha.c:6614
+#: vms-alpha.c:6660
#, c-format
msgid "STO_W (store word)\n"
msgstr ""
-#: vms-alpha.c:6617
+#: vms-alpha.c:6663
#, c-format
msgid "STO_LW (store longword)\n"
msgstr ""
-#: vms-alpha.c:6620
+#: vms-alpha.c:6666
#, c-format
msgid "STO_QW (store quadword)\n"
msgstr ""
-#: vms-alpha.c:6627
+#: vms-alpha.c:6673
#, c-format
msgid "STO_IMMR (store immediate repeat) %u bytes\n"
msgstr ""
-#: vms-alpha.c:6636
+#: vms-alpha.c:6682
#, c-format
msgid "STO_GBL (store global) %.*s\n"
msgstr ""
-#: vms-alpha.c:6641
+#: vms-alpha.c:6687
#, c-format
msgid "STO_CA (store code address) %.*s\n"
msgstr ""
-#: vms-alpha.c:6645
+#: vms-alpha.c:6691
#, c-format
msgid "STO_RB (store relative branch)\n"
msgstr ""
-#: vms-alpha.c:6648
+#: vms-alpha.c:6694
#, c-format
msgid "STO_AB (store absolute branch)\n"
msgstr ""
-#: vms-alpha.c:6651
+#: vms-alpha.c:6697
#, c-format
msgid "STO_OFF (store offset to psect)\n"
msgstr ""
-#: vms-alpha.c:6658
+#: vms-alpha.c:6704
#, c-format
msgid "STO_IMM (store immediate) %u bytes\n"
msgstr ""
-#: vms-alpha.c:6667
+#: vms-alpha.c:6713
#, c-format
msgid "STO_GBL_LW (store global longword) %.*s\n"
msgstr ""
-#: vms-alpha.c:6671
+#: vms-alpha.c:6717
#, c-format
msgid "STO_OFF (store LP with procedure signature)\n"
msgstr ""
-#: vms-alpha.c:6674
+#: vms-alpha.c:6720
#, c-format
msgid "STO_BR_GBL (store branch global) *todo*\n"
msgstr ""
-#: vms-alpha.c:6677
+#: vms-alpha.c:6723
#, c-format
msgid "STO_BR_PS (store branch psect + offset) *todo*\n"
msgstr ""
-#: vms-alpha.c:6681
+#: vms-alpha.c:6727
#, c-format
msgid "OPR_NOP (no-operation)\n"
msgstr ""
-#: vms-alpha.c:6684
+#: vms-alpha.c:6730
#, c-format
msgid "OPR_ADD (add)\n"
msgstr ""
-#: vms-alpha.c:6687
+#: vms-alpha.c:6733
#, c-format
msgid "OPR_SUB (subtract)\n"
msgstr ""
-#: vms-alpha.c:6690
+#: vms-alpha.c:6736
#, c-format
msgid "OPR_MUL (multiply)\n"
msgstr ""
-#: vms-alpha.c:6693
+#: vms-alpha.c:6739
#, c-format
msgid "OPR_DIV (divide)\n"
msgstr ""
-#: vms-alpha.c:6696
+#: vms-alpha.c:6742
#, c-format
msgid "OPR_AND (logical and)\n"
msgstr ""
-#: vms-alpha.c:6699
+#: vms-alpha.c:6745
#, c-format
msgid "OPR_IOR (logical inclusive or)\n"
msgstr ""
-#: vms-alpha.c:6702
+#: vms-alpha.c:6748
#, c-format
msgid "OPR_EOR (logical exclusive or)\n"
msgstr ""
-#: vms-alpha.c:6705
+#: vms-alpha.c:6751
#, c-format
msgid "OPR_NEG (negate)\n"
msgstr ""
-#: vms-alpha.c:6708
+#: vms-alpha.c:6754
#, c-format
msgid "OPR_COM (complement)\n"
msgstr ""
-#: vms-alpha.c:6711
+#: vms-alpha.c:6757
#, c-format
msgid "OPR_INSV (insert field)\n"
msgstr ""
-#: vms-alpha.c:6714
+#: vms-alpha.c:6760
#, c-format
msgid "OPR_ASH (arithmetic shift)\n"
msgstr ""
-#: vms-alpha.c:6717
+#: vms-alpha.c:6763
#, c-format
msgid "OPR_USH (unsigned shift)\n"
msgstr ""
-#: vms-alpha.c:6720
+#: vms-alpha.c:6766
#, c-format
msgid "OPR_ROT (rotate)\n"
msgstr ""
-#: vms-alpha.c:6723
+#: vms-alpha.c:6769
#, c-format
msgid "OPR_SEL (select)\n"
msgstr ""
-#: vms-alpha.c:6726
+#: vms-alpha.c:6772
#, c-format
msgid "OPR_REDEF (redefine symbol to curr location)\n"
msgstr ""
-#: vms-alpha.c:6729
+#: vms-alpha.c:6775
#, c-format
msgid "OPR_REDEF (define a literal)\n"
msgstr ""
-#: vms-alpha.c:6733
+#: vms-alpha.c:6779
#, c-format
msgid "STC_LP (store cond linkage pair)\n"
msgstr ""
-#: vms-alpha.c:6737
+#: vms-alpha.c:6783
#, c-format
msgid "STC_LP_PSB (store cond linkage pair + signature)\n"
msgstr ""
-#: vms-alpha.c:6741
+#: vms-alpha.c:6787
#, c-format
msgid " linkage index: %u, procedure: %.*s\n"
msgstr ""
-#: vms-alpha.c:6748
+#: vms-alpha.c:6794
#, c-format
msgid " signature: %.*s\n"
msgstr ""
-#: vms-alpha.c:6754
+#: vms-alpha.c:6800
#, c-format
msgid "STC_GBL (store cond global)\n"
msgstr ""
-#: vms-alpha.c:6757
+#: vms-alpha.c:6803
#, c-format
msgid " linkage index: %u, global: %.*s\n"
msgstr ""
-#: vms-alpha.c:6762
+#: vms-alpha.c:6808
#, c-format
msgid "STC_GCA (store cond code address)\n"
msgstr ""
-#: vms-alpha.c:6765
+#: vms-alpha.c:6811
#, c-format
msgid " linkage index: %u, procedure name: %.*s\n"
msgstr ""
-#: vms-alpha.c:6770
+#: vms-alpha.c:6816
#, c-format
msgid "STC_PS (store cond psect + offset)\n"
msgstr ""
-#: vms-alpha.c:6774
+#: vms-alpha.c:6820
#, c-format
msgid " linkage index: %u, psect: %u, offset: 0x%08x %08x\n"
msgstr ""
-#: vms-alpha.c:6781
+#: vms-alpha.c:6827
#, c-format
msgid "STC_NOP_GBL (store cond NOP at global addr)\n"
msgstr ""
-#: vms-alpha.c:6785
+#: vms-alpha.c:6831
#, c-format
msgid "STC_NOP_PS (store cond NOP at psect + offset)\n"
msgstr ""
-#: vms-alpha.c:6789
+#: vms-alpha.c:6835
#, c-format
msgid "STC_BSR_GBL (store cond BSR at global addr)\n"
msgstr ""
-#: vms-alpha.c:6793
+#: vms-alpha.c:6839
#, c-format
msgid "STC_BSR_PS (store cond BSR at psect + offset)\n"
msgstr ""
-#: vms-alpha.c:6797
+#: vms-alpha.c:6843
#, c-format
msgid "STC_LDA_GBL (store cond LDA at global addr)\n"
msgstr ""
-#: vms-alpha.c:6801
+#: vms-alpha.c:6847
#, c-format
msgid "STC_LDA_PS (store cond LDA at psect + offset)\n"
msgstr ""
-#: vms-alpha.c:6805
+#: vms-alpha.c:6851
#, c-format
msgid "STC_BOH_GBL (store cond BOH at global addr)\n"
msgstr ""
-#: vms-alpha.c:6809
+#: vms-alpha.c:6855
#, c-format
msgid "STC_BOH_PS (store cond BOH at psect + offset)\n"
msgstr ""
-#: vms-alpha.c:6814
+#: vms-alpha.c:6860
#, c-format
msgid "STC_NBH_GBL (store cond or hint at global addr)\n"
msgstr ""
-#: vms-alpha.c:6818
+#: vms-alpha.c:6864
#, c-format
msgid "STC_NBH_PS (store cond or hint at psect + offset)\n"
msgstr ""
-#: vms-alpha.c:6822
+#: vms-alpha.c:6868
#, c-format
msgid "CTL_SETRB (set relocation base)\n"
msgstr ""
-#: vms-alpha.c:6828
+#: vms-alpha.c:6874
#, c-format
msgid "CTL_AUGRB (augment relocation base) %u\n"
msgstr ""
-#: vms-alpha.c:6833
+#: vms-alpha.c:6879
#, c-format
msgid "CTL_DFLOC (define location)\n"
msgstr ""
-#: vms-alpha.c:6836
+#: vms-alpha.c:6882
#, c-format
msgid "CTL_STLOC (set location)\n"
msgstr ""
-#: vms-alpha.c:6839
+#: vms-alpha.c:6885
#, c-format
msgid "CTL_STKDL (stack defined location)\n"
msgstr ""
-#: vms-alpha.c:6842 vms-alpha.c:7285 vms-alpha.c:7446
+#: vms-alpha.c:6888 vms-alpha.c:7316 vms-alpha.c:7477
#, c-format
msgid "*unhandled*\n"
msgstr ""
-#: vms-alpha.c:6872 vms-alpha.c:6911
+#: vms-alpha.c:6913
#, c-format
-msgid "cannot read GST record length\n"
+msgid "cannot read GST record header\n"
msgstr ""
#. Ill-formed.
-#: vms-alpha.c:6893
+#: vms-alpha.c:6936
#, c-format
msgid "cannot find EMH in first GST record\n"
msgstr ""
-#: vms-alpha.c:6919
-#, c-format
-msgid "cannot read GST record header\n"
-msgstr ""
-
-#: vms-alpha.c:6932
+#: vms-alpha.c:6960
#, c-format
-msgid " corrupted GST\n"
-msgstr ""
+msgid "corrupted GST\n"
+msgstr "დáƒáƒ–იáƒáƒœáƒ”ბული GST\n"
-#: vms-alpha.c:6940
+#: vms-alpha.c:6973
#, c-format
msgid "cannot read GST record\n"
msgstr ""
-#: vms-alpha.c:6969
+#: vms-alpha.c:7000
#, c-format
msgid " unhandled EOBJ record type %u\n"
msgstr ""
-#: vms-alpha.c:6994
+#: vms-alpha.c:7025
#, c-format
msgid " bitcount: %u, base addr: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7008
+#: vms-alpha.c:7039
#, c-format
msgid " bitmap: 0x%08x (count: %u):\n"
msgstr ""
-#: vms-alpha.c:7015
+#: vms-alpha.c:7046
#, c-format
msgid " %08x"
msgstr ""
-#: vms-alpha.c:7042
+#: vms-alpha.c:7073
#, c-format
msgid " image %u (%u entries)\n"
msgstr ""
-#: vms-alpha.c:7048
+#: vms-alpha.c:7079
#, c-format
msgid " offset: 0x%08x, val: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7071
+#: vms-alpha.c:7102
#, c-format
msgid " image %u (%u entries), offsets:\n"
msgstr ""
-#: vms-alpha.c:7078
+#: vms-alpha.c:7109
#, c-format
msgid " 0x%08x"
msgstr ""
#. 64 bits.
-#: vms-alpha.c:7204
+#: vms-alpha.c:7235
#, c-format
msgid "64 bits *unhandled*\n"
msgstr ""
-#: vms-alpha.c:7209
+#: vms-alpha.c:7240
#, c-format
msgid "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7220
+#: vms-alpha.c:7251
#, c-format
msgid "non-contiguous array of %s\n"
msgstr ""
-#: vms-alpha.c:7227
+#: vms-alpha.c:7258
#, c-format
msgid "dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n"
msgstr ""
-#: vms-alpha.c:7232
+#: vms-alpha.c:7263
#, c-format
msgid "arsize: %u, a0: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7236
+#: vms-alpha.c:7267
#, c-format
msgid "Strides:\n"
msgstr ""
-#: vms-alpha.c:7250
+#: vms-alpha.c:7281
#, c-format
msgid "Bounds:\n"
msgstr ""
-#: vms-alpha.c:7257
+#: vms-alpha.c:7288
#, c-format
msgid "[%u]: Lower: %u, upper: %u\n"
msgstr ""
-#: vms-alpha.c:7271
+#: vms-alpha.c:7302
#, c-format
msgid "unaligned bit-string of %s\n"
msgstr ""
-#: vms-alpha.c:7278
+#: vms-alpha.c:7309
#, c-format
msgid "base: %u, pos: %u\n"
msgstr ""
-#: vms-alpha.c:7304
+#: vms-alpha.c:7335
#, c-format
msgid "vflags: 0x%02x, value: 0x%08x "
msgstr ""
-#: vms-alpha.c:7311
+#: vms-alpha.c:7342
#, c-format
msgid "(no value)\n"
msgstr ""
-#: vms-alpha.c:7314
+#: vms-alpha.c:7345
#, c-format
msgid "(not active)\n"
msgstr ""
-#: vms-alpha.c:7317
+#: vms-alpha.c:7348
#, c-format
msgid "(not allocated)\n"
msgstr ""
-#: vms-alpha.c:7320
+#: vms-alpha.c:7351
#, c-format
msgid "(descriptor)\n"
msgstr ""
-#: vms-alpha.c:7325
+#: vms-alpha.c:7356
#, c-format
msgid "(trailing value)\n"
msgstr ""
-#: vms-alpha.c:7328
+#: vms-alpha.c:7359
#, c-format
msgid "(value spec follows)\n"
msgstr ""
-#: vms-alpha.c:7331
+#: vms-alpha.c:7362
#, c-format
msgid "(at bit offset %u)\n"
msgstr ""
-#: vms-alpha.c:7335
+#: vms-alpha.c:7366
#, c-format
msgid "(reg: %u, disp: %u, indir: %u, kind: "
msgstr ""
-#: vms-alpha.c:7342
+#: vms-alpha.c:7373
msgid "literal"
msgstr ""
-#: vms-alpha.c:7345
+#: vms-alpha.c:7376
msgid "address"
-msgstr ""
+msgstr "მისáƒáƒ›áƒáƒ áƒ—ი"
-#: vms-alpha.c:7348
+#: vms-alpha.c:7379
msgid "desc"
msgstr ""
-#: vms-alpha.c:7351
+#: vms-alpha.c:7382
msgid "reg"
msgstr ""
-#: vms-alpha.c:7372
+#: vms-alpha.c:7403
#, c-format
msgid "len: %2u, kind: %2u "
msgstr ""
-#: vms-alpha.c:7380
+#: vms-alpha.c:7411
#, c-format
msgid "atomic, type=0x%02x %s\n"
msgstr ""
-#: vms-alpha.c:7385
+#: vms-alpha.c:7416
#, c-format
msgid "indirect, defined at 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7389
+#: vms-alpha.c:7420
#, c-format
msgid "typed pointer\n"
msgstr ""
-#: vms-alpha.c:7393
+#: vms-alpha.c:7424
#, c-format
msgid "pointer\n"
msgstr ""
-#: vms-alpha.c:7404
+#: vms-alpha.c:7435
#, c-format
msgid "array, dim: %u, bitmap: "
msgstr ""
-#: vms-alpha.c:7419
+#: vms-alpha.c:7450
#, c-format
msgid "array descriptor:\n"
msgstr ""
-#: vms-alpha.c:7430
+#: vms-alpha.c:7461
#, c-format
msgid "type spec for element:\n"
msgstr ""
-#: vms-alpha.c:7432
+#: vms-alpha.c:7463
#, c-format
msgid "type spec for subscript %u:\n"
msgstr ""
-#: vms-alpha.c:7457
+#: vms-alpha.c:7488
#, c-format
msgid "Debug symbol table:\n"
msgstr ""
-#: vms-alpha.c:7468
+#: vms-alpha.c:7499
#, c-format
msgid "cannot read DST header\n"
msgstr ""
-#: vms-alpha.c:7474
+#: vms-alpha.c:7505
#, c-format
msgid " type: %3u, len: %3u (at 0x%08x): "
msgstr ""
-#: vms-alpha.c:7491
+#: vms-alpha.c:7524
#, c-format
msgid "cannot read DST symbol\n"
msgstr ""
-#: vms-alpha.c:7535
+#: vms-alpha.c:7568
#, c-format
msgid "standard data: %s\n"
msgstr ""
-#: vms-alpha.c:7539 vms-alpha.c:7663
+#: vms-alpha.c:7572 vms-alpha.c:7696
#, c-format
msgid " name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7547
+#: vms-alpha.c:7580
#, c-format
msgid "modbeg\n"
msgstr ""
-#: vms-alpha.c:7551
+#: vms-alpha.c:7584
#, c-format
msgid " flags: %d, language: %u, major: %u, minor: %u\n"
msgstr ""
-#: vms-alpha.c:7561 vms-alpha.c:7927
+#: vms-alpha.c:7594 vms-alpha.c:7963
#, c-format
msgid " module name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7568
+#: vms-alpha.c:7601
#, c-format
msgid " compiler : %.*s\n"
msgstr ""
-#: vms-alpha.c:7575
+#: vms-alpha.c:7608
#, c-format
msgid "modend\n"
msgstr ""
-#: vms-alpha.c:7582
+#: vms-alpha.c:7615
msgid "rtnbeg\n"
msgstr ""
-#: vms-alpha.c:7586
+#: vms-alpha.c:7619
#, c-format
msgid " flags: %u, address: 0x%08x, pd-address: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7595
+#: vms-alpha.c:7628
#, c-format
msgid " routine name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7606
+#: vms-alpha.c:7639
#, c-format
msgid "rtnend: size 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7616
+#: vms-alpha.c:7649
#, c-format
msgid "prolog: bkpt address 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7626
+#: vms-alpha.c:7659
#, c-format
msgid "epilog: flags: %u, count: %u\n"
msgstr ""
-#: vms-alpha.c:7641
+#: vms-alpha.c:7674
#, c-format
msgid "blkbeg: address: 0x%08x, name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7653
+#: vms-alpha.c:7686
#, c-format
msgid "blkend: size: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7659
+#: vms-alpha.c:7692
#, c-format
msgid "typspec (len: %u)\n"
msgstr ""
-#: vms-alpha.c:7675
+#: vms-alpha.c:7708
#, c-format
msgid "septyp, name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7691
+#: vms-alpha.c:7725
#, c-format
msgid "recbeg: name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7695
+#: vms-alpha.c:7731
#, c-format
msgid " len: %u bits\n"
msgstr ""
-#: vms-alpha.c:7701
+#: vms-alpha.c:7737
#, c-format
msgid "recend\n"
msgstr ""
-#: vms-alpha.c:7706
+#: vms-alpha.c:7742
#, c-format
msgid "enumbeg, len: %u, name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7712
+#: vms-alpha.c:7748
#, c-format
msgid "enumelt, name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7718
+#: vms-alpha.c:7754
#, c-format
msgid "enumend\n"
msgstr ""
-#: vms-alpha.c:7725
+#: vms-alpha.c:7761
#, c-format
msgid "label, name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7728
+#: vms-alpha.c:7764
#, c-format
msgid " address: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7740
+#: vms-alpha.c:7776
#, c-format
msgid "discontiguous range (nbr: %u)\n"
msgstr ""
-#: vms-alpha.c:7747
+#: vms-alpha.c:7783
#, c-format
msgid " address: 0x%08x, size: %u\n"
msgstr ""
-#: vms-alpha.c:7758
+#: vms-alpha.c:7794
#, c-format
msgid "line num (len: %u)\n"
msgstr ""
-#: vms-alpha.c:7777
+#: vms-alpha.c:7813
#, c-format
msgid "delta_pc_w %u\n"
msgstr ""
-#: vms-alpha.c:7786
+#: vms-alpha.c:7822
#, c-format
msgid "incr_linum(b): +%u\n"
msgstr ""
-#: vms-alpha.c:7794
+#: vms-alpha.c:7830
#, c-format
msgid "incr_linum_w: +%u\n"
msgstr ""
-#: vms-alpha.c:7802
+#: vms-alpha.c:7838
#, c-format
msgid "incr_linum_l: +%u\n"
msgstr ""
-#: vms-alpha.c:7810
+#: vms-alpha.c:7846
#, c-format
msgid "set_line_num(w) %u\n"
msgstr ""
-#: vms-alpha.c:7817
+#: vms-alpha.c:7853
#, c-format
msgid "set_line_num_b %u\n"
msgstr ""
-#: vms-alpha.c:7824
+#: vms-alpha.c:7860
#, c-format
msgid "set_line_num_l %u\n"
msgstr ""
-#: vms-alpha.c:7831
+#: vms-alpha.c:7867
#, c-format
msgid "set_abs_pc: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7837
+#: vms-alpha.c:7873
#, c-format
msgid "delta_pc_l: +0x%08x\n"
msgstr ""
-#: vms-alpha.c:7844
+#: vms-alpha.c:7880
#, c-format
msgid "term(b): 0x%02x"
msgstr ""
-#: vms-alpha.c:7846
+#: vms-alpha.c:7882
#, c-format
msgid " pc: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7853
+#: vms-alpha.c:7889
#, c-format
msgid "term_w: 0x%04x"
msgstr ""
-#: vms-alpha.c:7855
+#: vms-alpha.c:7891
#, c-format
msgid " pc: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7861
+#: vms-alpha.c:7897
#, c-format
msgid "delta pc +%-4d"
msgstr ""
-#: vms-alpha.c:7865
+#: vms-alpha.c:7901
#, c-format
msgid " pc: 0x%08x line: %5u\n"
msgstr ""
-#: vms-alpha.c:7870
+#: vms-alpha.c:7906
#, c-format
msgid " *unhandled* cmd %u\n"
msgstr ""
-#: vms-alpha.c:7885
+#: vms-alpha.c:7921
#, c-format
msgid "source (len: %u)\n"
msgstr ""
-#: vms-alpha.c:7904
+#: vms-alpha.c:7940
#, c-format
msgid " declfile: len: %u, flags: %u, fileid: %u\n"
msgstr ""
-#: vms-alpha.c:7909
+#: vms-alpha.c:7945
#, c-format
msgid " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n"
msgstr ""
-#: vms-alpha.c:7921
+#: vms-alpha.c:7957
#, c-format
msgid " filename : %.*s\n"
msgstr ""
-#: vms-alpha.c:7937
+#: vms-alpha.c:7973
#, c-format
msgid " setfile %u\n"
msgstr ""
-#: vms-alpha.c:7944 vms-alpha.c:7951
+#: vms-alpha.c:7980 vms-alpha.c:7987
#, c-format
msgid " setrec %u\n"
msgstr ""
-#: vms-alpha.c:7958 vms-alpha.c:7965
+#: vms-alpha.c:7994 vms-alpha.c:8001
#, c-format
msgid " setlnum %u\n"
msgstr ""
-#: vms-alpha.c:7972 vms-alpha.c:7979
+#: vms-alpha.c:8008 vms-alpha.c:8015
#, c-format
msgid " deflines %u\n"
msgstr ""
-#: vms-alpha.c:7983
+#: vms-alpha.c:8019
#, c-format
msgid " formfeed\n"
msgstr ""
-#: vms-alpha.c:7987
+#: vms-alpha.c:8023
#, c-format
msgid " *unhandled* cmd %u\n"
msgstr ""
-#: vms-alpha.c:7999
+#: vms-alpha.c:8035
#, c-format
msgid "*unhandled* dst type %u\n"
msgstr ""
-#: vms-alpha.c:8031
+#: vms-alpha.c:8067
#, c-format
msgid "cannot read EIHD\n"
msgstr ""
-#: vms-alpha.c:8035
+#: vms-alpha.c:8071
#, c-format
msgid "EIHD: (size: %u, nbr blocks: %u)\n"
msgstr ""
-#: vms-alpha.c:8039
+#: vms-alpha.c:8075
#, c-format
msgid " majorid: %u, minorid: %u\n"
msgstr ""
-#: vms-alpha.c:8047
+#: vms-alpha.c:8083
msgid "executable"
-msgstr ""
+msgstr "გáƒáƒ›áƒ¨áƒ•ები"
-#: vms-alpha.c:8050
+#: vms-alpha.c:8086
msgid "linkable image"
msgstr ""
-#: vms-alpha.c:8057
+#: vms-alpha.c:8093
#, c-format
msgid " image type: %u (%s)"
msgstr ""
-#: vms-alpha.c:8063
+#: vms-alpha.c:8099
msgid "native"
msgstr ""
-#: vms-alpha.c:8066
+#: vms-alpha.c:8102
msgid "CLI"
msgstr ""
-#: vms-alpha.c:8073
+#: vms-alpha.c:8109
#, c-format
msgid ", subtype: %u (%s)\n"
msgstr ""
-#: vms-alpha.c:8080
+#: vms-alpha.c:8116
#, c-format
msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n"
msgstr ""
-#: vms-alpha.c:8084
+#: vms-alpha.c:8120
#, c-format
msgid " fixup info rva: "
msgstr ""
-#: vms-alpha.c:8086
+#: vms-alpha.c:8122
#, c-format
msgid ", symbol vector rva: "
msgstr ""
-#: vms-alpha.c:8089
+#: vms-alpha.c:8125
#, c-format
msgid ""
"\n"
" version array off: %u\n"
msgstr ""
-#: vms-alpha.c:8094
+#: vms-alpha.c:8130
#, c-format
msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n"
msgstr ""
-#: vms-alpha.c:8100
+#: vms-alpha.c:8136
#, c-format
msgid " linker flags: %08x:"
msgstr ""
-#: vms-alpha.c:8131
+#: vms-alpha.c:8167
#, c-format
msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n"
msgstr ""
-#: vms-alpha.c:8137
+#: vms-alpha.c:8173
#, c-format
msgid " BPAGE: %u"
msgstr ""
-#: vms-alpha.c:8144
+#: vms-alpha.c:8180
#, c-format
msgid ", ext fixup offset: %u, no_opt psect off: %u"
msgstr ""
-#: vms-alpha.c:8147
+#: vms-alpha.c:8183
#, c-format
msgid ", alias: %u\n"
msgstr ""
-#: vms-alpha.c:8155
+#: vms-alpha.c:8191
#, c-format
msgid "system version array information:\n"
msgstr ""
-#: vms-alpha.c:8159
+#: vms-alpha.c:8195
#, c-format
msgid "cannot read EIHVN header\n"
msgstr ""
-#: vms-alpha.c:8169
+#: vms-alpha.c:8205
#, c-format
msgid "cannot read EIHVN version\n"
msgstr ""
-#: vms-alpha.c:8172
+#: vms-alpha.c:8208
#, c-format
msgid " %02u "
msgstr ""
-#: vms-alpha.c:8176
+#: vms-alpha.c:8212
msgid "BASE_IMAGE "
msgstr ""
-#: vms-alpha.c:8179
+#: vms-alpha.c:8215
msgid "MEMORY_MANAGEMENT"
msgstr ""
-#: vms-alpha.c:8182
+#: vms-alpha.c:8218
msgid "IO "
msgstr ""
-#: vms-alpha.c:8185
+#: vms-alpha.c:8221
msgid "FILES_VOLUMES "
msgstr ""
-#: vms-alpha.c:8188
+#: vms-alpha.c:8224
msgid "PROCESS_SCHED "
msgstr ""
-#: vms-alpha.c:8191
+#: vms-alpha.c:8227
msgid "SYSGEN "
msgstr ""
-#: vms-alpha.c:8194
+#: vms-alpha.c:8230
msgid "CLUSTERS_LOCKMGR "
msgstr ""
-#: vms-alpha.c:8197
+#: vms-alpha.c:8233
msgid "LOGICAL_NAMES "
msgstr ""
-#: vms-alpha.c:8200
+#: vms-alpha.c:8236
msgid "SECURITY "
msgstr ""
-#: vms-alpha.c:8203
+#: vms-alpha.c:8239
msgid "IMAGE_ACTIVATOR "
msgstr ""
-#: vms-alpha.c:8206
+#: vms-alpha.c:8242
msgid "NETWORKS "
msgstr ""
-#: vms-alpha.c:8209
+#: vms-alpha.c:8245
msgid "COUNTERS "
msgstr ""
-#: vms-alpha.c:8212
+#: vms-alpha.c:8248
msgid "STABLE "
msgstr ""
-#: vms-alpha.c:8215
+#: vms-alpha.c:8251
msgid "MISC "
msgstr ""
-#: vms-alpha.c:8218
+#: vms-alpha.c:8254
msgid "CPU "
msgstr ""
-#: vms-alpha.c:8221
+#: vms-alpha.c:8257
msgid "VOLATILE "
msgstr ""
-#: vms-alpha.c:8224
+#: vms-alpha.c:8260
msgid "SHELL "
msgstr ""
-#: vms-alpha.c:8227
+#: vms-alpha.c:8263
msgid "POSIX "
msgstr ""
-#: vms-alpha.c:8230
+#: vms-alpha.c:8266
msgid "MULTI_PROCESSING "
msgstr ""
-#: vms-alpha.c:8233
+#: vms-alpha.c:8269
msgid "GALAXY "
msgstr ""
-#: vms-alpha.c:8236
+#: vms-alpha.c:8272
msgid "*unknown* "
msgstr ""
-#: vms-alpha.c:8252 vms-alpha.c:8526
+#: vms-alpha.c:8288 vms-alpha.c:8575
#, c-format
msgid "cannot read EIHA\n"
msgstr ""
-#: vms-alpha.c:8255
+#: vms-alpha.c:8291
#, c-format
msgid "Image activation: (size=%u)\n"
msgstr ""
-#: vms-alpha.c:8258
+#: vms-alpha.c:8294
#, c-format
msgid " First address : 0x%08x 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8262
+#: vms-alpha.c:8298
#, c-format
msgid " Second address: 0x%08x 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8266
+#: vms-alpha.c:8302
#, c-format
msgid " Third address : 0x%08x 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8270
+#: vms-alpha.c:8306
#, c-format
msgid " Fourth address: 0x%08x 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8274
+#: vms-alpha.c:8310
#, c-format
msgid " Shared image : 0x%08x 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8285
+#: vms-alpha.c:8321
#, c-format
msgid "cannot read EIHI\n"
msgstr ""
-#: vms-alpha.c:8289
+#: vms-alpha.c:8325
#, c-format
msgid "Image identification: (major: %u, minor: %u)\n"
msgstr ""
-#: vms-alpha.c:8292
+#: vms-alpha.c:8331
#, c-format
msgid " image name : %.*s\n"
msgstr ""
-#: vms-alpha.c:8294
+#: vms-alpha.c:8332
#, c-format
msgid " link time : %s\n"
msgstr ""
-#: vms-alpha.c:8296
+#: vms-alpha.c:8337
#, c-format
msgid " image ident : %.*s\n"
msgstr ""
-#: vms-alpha.c:8298
+#: vms-alpha.c:8341
#, c-format
msgid " linker ident : %.*s\n"
msgstr ""
-#: vms-alpha.c:8300
+#: vms-alpha.c:8345
#, c-format
msgid " image build ident: %.*s\n"
msgstr ""
-#: vms-alpha.c:8310
+#: vms-alpha.c:8354
#, c-format
msgid "cannot read EIHS\n"
msgstr ""
-#: vms-alpha.c:8314
+#: vms-alpha.c:8358
#, c-format
msgid "Image symbol & debug table: (major: %u, minor: %u)\n"
msgstr ""
-#: vms-alpha.c:8320
+#: vms-alpha.c:8364
#, c-format
msgid " debug symbol table : vbn: %u, size: %u (0x%x)\n"
msgstr ""
-#: vms-alpha.c:8325
+#: vms-alpha.c:8369
#, c-format
msgid " global symbol table: vbn: %u, records: %u\n"
msgstr ""
-#: vms-alpha.c:8330
+#: vms-alpha.c:8374
#, c-format
msgid " debug module table : vbn: %u, size: %u\n"
msgstr ""
-#: vms-alpha.c:8343
+#: vms-alpha.c:8387
#, c-format
msgid "cannot read EISD\n"
msgstr ""
-#: vms-alpha.c:8354
+#: vms-alpha.c:8398
#, c-format
msgid "Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)\n"
msgstr ""
-#: vms-alpha.c:8362
+#: vms-alpha.c:8406
#, c-format
msgid " section: base: 0x%08x%08x size: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8367
+#: vms-alpha.c:8411
#, c-format
msgid " flags: 0x%04x"
msgstr ""
-#: vms-alpha.c:8405
+#: vms-alpha.c:8449
#, c-format
msgid " vbn: %u, pfc: %u, matchctl: %u type: %u ("
msgstr ""
-#: vms-alpha.c:8411
+#: vms-alpha.c:8455
msgid "NORMAL"
msgstr ""
-#: vms-alpha.c:8414
+#: vms-alpha.c:8458
msgid "SHRFXD"
msgstr ""
-#: vms-alpha.c:8417
+#: vms-alpha.c:8461
msgid "PRVFXD"
msgstr ""
-#: vms-alpha.c:8420
+#: vms-alpha.c:8464
msgid "SHRPIC"
msgstr ""
-#: vms-alpha.c:8423
+#: vms-alpha.c:8467
msgid "PRVPIC"
msgstr ""
-#: vms-alpha.c:8426
+#: vms-alpha.c:8470
msgid "USRSTACK"
msgstr ""
-#: vms-alpha.c:8432
+#: vms-alpha.c:8476
msgid ")\n"
msgstr ""
-#: vms-alpha.c:8435
+#: vms-alpha.c:8483
#, c-format
msgid " ident: 0x%08x, name: %.*s\n"
msgstr ""
-#: vms-alpha.c:8445
+#: vms-alpha.c:8494
#, c-format
msgid "cannot read DMT\n"
msgstr ""
-#: vms-alpha.c:8449
+#: vms-alpha.c:8498
#, c-format
msgid "Debug module table:\n"
msgstr ""
-#: vms-alpha.c:8458
+#: vms-alpha.c:8507
#, c-format
msgid "cannot read DMT header\n"
msgstr ""
-#: vms-alpha.c:8464
+#: vms-alpha.c:8513
#, c-format
msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n"
msgstr ""
-#: vms-alpha.c:8474
+#: vms-alpha.c:8523
#, c-format
msgid "cannot read DMT psect\n"
msgstr ""
-#: vms-alpha.c:8478
+#: vms-alpha.c:8527
#, c-format
msgid " psect start: 0x%08x, length: %u\n"
msgstr ""
-#: vms-alpha.c:8491
+#: vms-alpha.c:8540
#, c-format
msgid "cannot read DST\n"
msgstr ""
-#: vms-alpha.c:8501
+#: vms-alpha.c:8550
#, c-format
msgid "cannot read GST\n"
msgstr ""
-#: vms-alpha.c:8505
+#: vms-alpha.c:8554
#, c-format
msgid "Global symbol table:\n"
msgstr ""
-#: vms-alpha.c:8532
+#: vms-alpha.c:8581
#, c-format
msgid "Image activator fixup: (major: %u, minor: %u)\n"
msgstr ""
-#: vms-alpha.c:8536
+#: vms-alpha.c:8585
#, c-format
msgid " iaflink : 0x%08x %08x\n"
msgstr ""
-#: vms-alpha.c:8540
+#: vms-alpha.c:8589
#, c-format
msgid " fixuplnk: 0x%08x %08x\n"
msgstr ""
-#: vms-alpha.c:8543
+#: vms-alpha.c:8592
#, c-format
msgid " size : %u\n"
msgstr ""
-#: vms-alpha.c:8545
+#: vms-alpha.c:8594
#, c-format
msgid " flags: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8550
+#: vms-alpha.c:8599
#, c-format
msgid " qrelfixoff: %5u, lrelfixoff: %5u\n"
msgstr ""
-#: vms-alpha.c:8555
+#: vms-alpha.c:8604
#, c-format
msgid " qdotadroff: %5u, ldotadroff: %5u\n"
msgstr ""
-#: vms-alpha.c:8560
+#: vms-alpha.c:8609
#, c-format
msgid " codeadroff: %5u, lpfixoff : %5u\n"
msgstr ""
-#: vms-alpha.c:8563
+#: vms-alpha.c:8612
#, c-format
msgid " chgprtoff : %5u\n"
msgstr ""
-#: vms-alpha.c:8567
+#: vms-alpha.c:8616
#, c-format
msgid " shlstoff : %5u, shrimgcnt : %5u\n"
msgstr ""
-#: vms-alpha.c:8570
+#: vms-alpha.c:8619
#, c-format
msgid " shlextra : %5u, permctx : %5u\n"
msgstr ""
-#: vms-alpha.c:8573
+#: vms-alpha.c:8622
#, c-format
msgid " base_va : 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8575
+#: vms-alpha.c:8624
#, c-format
msgid " lppsbfixoff: %5u\n"
msgstr ""
-#: vms-alpha.c:8582
+#: vms-alpha.c:8631
#, c-format
msgid " Shareable images:\n"
msgstr ""
-#: vms-alpha.c:8590
+#: vms-alpha.c:8642
#, c-format
msgid " %u: size: %u, flags: 0x%02x, name: %.*s\n"
msgstr ""
-#: vms-alpha.c:8597
+#: vms-alpha.c:8649
#, c-format
msgid " quad-word relocation fixups:\n"
msgstr ""
-#: vms-alpha.c:8603
+#: vms-alpha.c:8655
#, c-format
msgid " long-word relocation fixups:\n"
msgstr ""
-#: vms-alpha.c:8609
+#: vms-alpha.c:8661
#, c-format
msgid " quad-word .address reference fixups:\n"
msgstr ""
-#: vms-alpha.c:8614
+#: vms-alpha.c:8666
#, c-format
msgid " long-word .address reference fixups:\n"
msgstr ""
-#: vms-alpha.c:8619
+#: vms-alpha.c:8671
#, c-format
msgid " Code Address Reference Fixups:\n"
msgstr ""
-#: vms-alpha.c:8624
+#: vms-alpha.c:8676
#, c-format
msgid " Linkage Pairs Reference Fixups:\n"
msgstr ""
-#: vms-alpha.c:8632
+#: vms-alpha.c:8684
#, c-format
msgid " Change Protection (%u entries):\n"
msgstr ""
-#: vms-alpha.c:8641
+#: vms-alpha.c:8693
#, c-format
msgid " base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x "
msgstr ""
#. FIXME: we do not yet support relocatable link. It is not obvious
#. how to do it for debug infos.
-#: vms-alpha.c:9518
+#: vms-alpha.c:9571
msgid "%P: relocatable link is not supported\n"
msgstr ""
-#: vms-alpha.c:9589
+#: vms-alpha.c:9642
#, c-format
msgid "%P: multiple entry points: in modules %pB and %pB\n"
msgstr ""
-#: vms-lib.c:1527
+#: vms-lib.c:1530
#, c-format
msgid "could not open shared image '%s' from '%s'"
msgstr ""
-#: vms-misc.c:370
+#: vms-misc.c:374
msgid "_bfd_vms_output_counted called with zero bytes"
msgstr ""
-#: vms-misc.c:375
+#: vms-misc.c:379
msgid "_bfd_vms_output_counted called with too many bytes"
msgstr ""
-#: xcofflink.c:891
+#: xcofflink.c:505
+#, c-format
+msgid "%pB: warning: illegal symbol index %lu in relocs"
+msgstr ""
+
+#: xcofflink.c:924
#, c-format
msgid "%pB: XCOFF shared object when not producing XCOFF output"
msgstr ""
-#: xcofflink.c:912
+#: xcofflink.c:945
#, c-format
msgid "%pB: dynamic object with no .loader section"
msgstr ""
-#: xcofflink.c:1497
+#: xcofflink.c:1527
#, c-format
msgid "%pB: `%s' has line numbers but no enclosing section"
msgstr ""
-#: xcofflink.c:1553
+#: xcofflink.c:1583
#, c-format
msgid "%pB: class %d symbol `%s' has no aux entries"
msgstr ""
-#: xcofflink.c:1576
+#: xcofflink.c:1606
#, c-format
msgid "%pB: symbol `%s' has unrecognized csect type %d"
msgstr ""
-#: xcofflink.c:1589
+#: xcofflink.c:1619
#, c-format
msgid "%pB: bad XTY_ER symbol `%s': class %d scnum %d scnlen %<PRId64>"
msgstr ""
-#: xcofflink.c:1620
+#: xcofflink.c:1650
#, c-format
-msgid "%pB: XMC_TC0 symbol `%s' is class %d scnlen %<PRId64>"
+msgid "%pB: XMC_TC0 symbol `%s' is class %d scnlen %<PRIu64>"
msgstr ""
-#: xcofflink.c:1755
+#: xcofflink.c:1785
#, c-format
msgid "%pB: TOC entry `%s' has a R_TLSMLrelocation not targeting itself"
msgstr ""
-#: xcofflink.c:1789
+#: xcofflink.c:1819
#, c-format
msgid "%pB: csect `%s' not in enclosing section"
msgstr ""
-#: xcofflink.c:1899
+#: xcofflink.c:1928
#, c-format
msgid "%pB: misplaced XTY_LD `%s'"
msgstr ""
-#: xcofflink.c:2242
+#: xcofflink.c:2271
#, c-format
msgid "%pB: reloc %s:%<PRId64> not in csect"
msgstr ""
-#: xcofflink.c:3356
+#: xcofflink.c:3380
#, c-format
msgid "%pB: cannot export internal symbol `%s`."
msgstr ""
-#: xcofflink.c:3404
+#: xcofflink.c:3428
#, c-format
msgid "%s: no such symbol"
msgstr ""
-#: xcofflink.c:3513
+#: xcofflink.c:3537
#, c-format
msgid "warning: attempt to export undefined symbol `%s'"
msgstr ""
-#: xcofflink.c:3861
+#: xcofflink.c:3885
msgid "error: undefined symbol __rtinit"
msgstr ""
-#: xcofflink.c:4872
+#: xcofflink.c:4902
#, c-format
msgid "%pB: Unable to find a stub csect in rangeof relocation at %#<PRIx64> targeting'%s'"
msgstr ""
-#: xcofflink.c:4901
+#: xcofflink.c:4931
#, c-format
msgid "%pB: Cannot create stub entry '%s'"
msgstr ""
-#: xcofflink.c:5021
+#: xcofflink.c:5051
msgid "TOC overflow during stub generation; try -mminimal-toc when compiling"
msgstr ""
-#: xcofflink.c:5089
+#: xcofflink.c:5119
#, c-format
msgid "%pB: loader reloc in unrecognized section `%s'"
msgstr ""
-#: xcofflink.c:5101
+#: xcofflink.c:5131
#, c-format
msgid "%pB: `%s' in loader reloc but not loader sym"
msgstr ""
-#: xcofflink.c:5118
+#: xcofflink.c:5148
#, c-format
msgid "%pB: loader reloc in read-only section %pA"
msgstr ""
-#: xcofflink.c:6191
+#: xcofflink.c:6227
#, c-format
msgid "TOC overflow: %#<PRIx64> > 0x10000; try -mminimal-toc when compiling"
msgstr ""
-#: xcofflink.c:7305
+#: xcofflink.c:7343
#, c-format
msgid "Unable to link input file: %s"
msgstr ""
@@ -8589,220 +8985,373 @@ msgid "%s is defined but plugin support is disabled"
msgstr ""
#. Not fatal, this callback cannot fail.
-#: elfnn-aarch64.c:2880 elfnn-riscv.c:5319
+#: elfnn-aarch64.c:2889 elfnn-riscv.c:5940
#, c-format
msgid "unknown attribute for symbol `%s': 0x%02x"
msgstr ""
-#: elfnn-aarch64.c:5258
+#: elfnn-aarch64.c:5486
#, c-format
msgid "%pB: error: erratum 835769 stub out of range (input file too large)"
msgstr ""
-#: elfnn-aarch64.c:5350
+#: elfnn-aarch64.c:5578
#, c-format
msgid "%pB: error: erratum 843419 stub out of range (input file too large)"
msgstr ""
-#: elfnn-aarch64.c:5363
+#: elfnn-aarch64.c:5591
#, c-format
msgid "%pB: error: erratum 843419 immediate 0x%<PRIx64> out of range for ADR (input file too large) and --fix-cortex-a53-843419=adr used. Run the linker with --fix-cortex-a53-843419=full instead"
msgstr ""
-#: elfnn-aarch64.c:5898
+#: elfnn-aarch64.c:6134
#, c-format
msgid "%pB: relocation %s against symbol `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC"
msgstr ""
-#: elfnn-aarch64.c:5918
+#: elfnn-aarch64.c:6154
#, c-format
msgid "%pB: conditional branch to undefined symbol `%s' not allowed"
msgstr ""
-#: elfnn-aarch64.c:6006
+#: elfnn-aarch64.c:6242 elfnn-kvx.c:2382
#, c-format
msgid "%pB: local symbol descriptor table be NULL when applying relocation %s against local symbol"
msgstr ""
-#: elfnn-aarch64.c:6119 elfnn-aarch64.c:6156
+#: elfnn-aarch64.c:6356 elfnn-aarch64.c:6393
#, c-format
msgid "%pB: TLS relocation %s against undefined symbol `%s'"
msgstr ""
-#: elfnn-aarch64.c:7143
+#: elfnn-aarch64.c:7384
msgid "too many GOT entries for -fpic, please recompile with -fPIC"
msgstr ""
-#: elfnn-aarch64.c:7171
+#: elfnn-aarch64.c:7412
msgid "one possible cause of this error is that the symbol is being referenced in the indicated code as if it had a larger alignment than was declared where it was defined"
msgstr ""
-#: elfnn-aarch64.c:7738
+#: elfnn-aarch64.c:7979
#, c-format
msgid "%pB: relocation %s against `%s' can not be used when making a shared object"
msgstr ""
-#: elfnn-aarch64.c:8814
+#: elfnn-aarch64.c:8940
+#, c-format
+msgid "%P: %pB: copy relocation against non-copyable protected symbol `%s'\n"
+msgstr ""
+
+#: elfnn-kvx.c:929
+msgid "%P: Could not assign '%pA' to an output section. Retry without --enable-non-contiguous-regions.\n"
+msgstr ""
+
+#: elfnn-kvx.c:2127
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): unresolvable %s relocation in section `%s'"
+msgstr ""
+
+#: elfnn-kvx.c:2851
+#, c-format
+msgid "%s: Bad ELF id: `%d'"
+msgstr ""
+
+#: elfnn-kvx.c:2906
+#, c-format
+msgid "%s: compiled as 32-bit object and %s is 64-bit"
+msgstr ""
+
+#: elfnn-kvx.c:2909
#, c-format
-msgid "%F%P: %pB: copy relocation against non-copyable protected symbol `%s'\n"
+msgid "%s: compiled as 64-bit object and %s is 32-bit"
msgstr ""
-#: elfnn-loongarch.c:148 elfnn-loongarch.c:200
+#: elfnn-kvx.c:2911
+#, c-format
+msgid "%s: object size does not match that of target %s"
+msgstr ""
+
+#. Ignore init flag - it may not be set, despite the flags field
+#. containing valid data.
+#: elfnn-kvx.c:2999
+#, c-format
+msgid "Private flags = 0x%lx : "
+msgstr ""
+
+#: elfnn-kvx.c:3003
+#, c-format
+msgid "Coolidge (kv3) V1 64 bits"
+msgstr ""
+
+#: elfnn-kvx.c:3005
+#, c-format
+msgid "Coolidge (kv3) V2 64 bits"
+msgstr ""
+
+#: elfnn-kvx.c:3007
+#, c-format
+msgid "Coolidge (kv4) V1 64 bits"
+msgstr ""
+
+#: elfnn-kvx.c:3012
+#, c-format
+msgid "Coolidge (kv3) V1 32 bits"
+msgstr ""
+
+#: elfnn-kvx.c:3014
+#, c-format
+msgid "Coolidge (kv3) V2 32 bits"
+msgstr ""
+
+#: elfnn-kvx.c:3016
+#, c-format
+msgid "Coolidge (kv4) V1 32 bits"
+msgstr ""
+
+#: elfnn-kvx.c:3848
+#, c-format
+msgid "relocation against `%s' has faulty GOT type "
+msgstr ""
+
+#: elfnn-loongarch.c:303 elfnn-loongarch.c:355
#, c-format
msgid "%#<PRIx64> invaild imm"
msgstr ""
-#: elfnn-loongarch.c:382 elfnn-riscv.c:3811
+#: elfnn-loongarch.c:537 elfnn-riscv.c:4383
#, c-format
msgid ""
"%pB: ABI is incompatible with that of the selected emulation:\n"
" target emulation `%s' does not match `%s'"
msgstr ""
-#: elfnn-loongarch.c:437
+#: elfnn-loongarch.c:592
#, c-format
msgid "%pB: can't link different ABI object."
msgstr ""
-#: elfnn-loongarch.c:578
+#: elfnn-loongarch.c:735
msgid "Internal error: unreachable."
msgstr ""
-#: elfnn-riscv.c:224 elfnn-riscv.c:259
+#: elfnn-loongarch.c:915
+#, c-format
+msgid "%pB:(%pA+%#lx): relocation %s against `%s` can not be used when making %s; recompile with %s%s"
+msgstr ""
+
+#: elfnn-loongarch.c:919
+msgid " and check the symbol visibility"
+msgstr ""
+
+#: elfnn-loongarch.c:1045
+#, c-format
+msgid "%pB: stack based reloc type (%u) is not supported with -z pack-relative-relocs"
+msgstr ""
+
+#: elfnn-loongarch.c:1240
+#, c-format
+msgid "%pB: relocation R_LARCH_32 against non-absolute symbol `%s' cannot be used in ELFCLASS64 when making a shared object or PIE"
+msgstr ""
+
+#: elfnn-loongarch.c:1305
+#, c-format
+msgid "%pB: R_LARCH_ALIGN with offset %<PRId64> not aligned to instruction boundary"
+msgstr ""
+
+#: elfnn-loongarch.c:4196
+msgid "cannot resolve R_LARCH_PCREL20_S2 against undefined weak symbol with addend out of [-2048, 2048)"
+msgstr ""
+
+#: elfnn-loongarch.c:4706
+msgid "recompile with 'gcc -mno-relax' or 'as -mno-relax' or 'ld --no-relax'"
+msgstr ""
+
+#: elfnn-loongarch.c:5584 elfnn-riscv.c:5168
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): %<PRId64> bytes required for alignment to %<PRId64>-byte boundary, but only %<PRId64> present"
+msgstr ""
+
+#: elfnn-riscv.c:385 elfnn-riscv.c:436 elfnn-riscv.c:484 elfnn-riscv.c:520
#, c-format
msgid "%pB: warning: RVE PLT generation not supported"
msgstr ""
-#: elfnn-riscv.c:1899
+#: elfnn-riscv.c:675
+#, c-format
+msgid "%pB: error: unsupported PLT type: %u"
+msgstr "%pB: შეცდáƒáƒ›áƒ: მხáƒáƒ áƒ“áƒáƒ£áƒ­áƒ”რელი PLT-ის ტიპი: %u"
+
+#: elfnn-riscv.c:1120
+#, c-format
+msgid "%pB: relocation %s against absolute symbol `%s' can not be used when making a shared object"
+msgstr ""
+
+#: elfnn-riscv.c:1162
+#, c-format
+msgid "%pB: relocation %s against non-absolute symbol `%s' can not be used in RV32 when making a shared object"
+msgstr ""
+
+#: elfnn-riscv.c:2095
+#, c-format
+msgid "final size of uleb128 value at offset 0x%lx in %pA from %pB exceeds available space"
+msgstr ""
+
+#: elfnn-riscv.c:2337
#, c-format
msgid "%pcrel_lo missing matching %pcrel_hi"
msgstr ""
-#: elfnn-riscv.c:1902
+#: elfnn-riscv.c:2340
#, c-format
msgid "%pcrel_lo with addend isn't allowed for R_RISCV_GOT_HI20"
msgstr ""
-#: elfnn-riscv.c:1908
+#. Check the overflow when adding reloc addend.
+#: elfnn-riscv.c:2345
#, c-format
msgid "%%pcrel_lo overflow with an addend, the value of %%pcrel_hi is 0x%<PRIx64> without any addend, but may be 0x%<PRIx64> after adding the %%pcrel_lo addend"
msgstr ""
-#: elfnn-riscv.c:1915
+#: elfnn-riscv.c:2353
#, c-format
msgid "%pcrel_lo overflow with an addend"
msgstr ""
-#: elfnn-riscv.c:2396
+#: elfnn-riscv.c:2843
+#, c-format
+msgid "%pB: warning: R_RISCV_SUB_ULEB128 with non-zero addend, please rebuild by binutils 2.42 or up"
+msgstr ""
+
+#: elfnn-riscv.c:2923
msgid "The addend isn't allowed for R_RISCV_GOT_HI20"
msgstr ""
-#: elfnn-riscv.c:2498
+#. PR 28509, when generating the shared object, these
+#. referenced symbols may bind externally, which means
+#. they will be exported to the dynamic symbol table,
+#. and are preemptible by default. These symbols cannot
+#. be referenced by the non-pic relocations, like
+#. R_RISCV_JAL and R_RISCV_RVC_JUMP relocations.
+#.
+#. However, consider that linker may relax the R_RISCV_CALL
+#. relocations to R_RISCV_JAL or R_RISCV_RVC_JUMP, if
+#. these relocations are relocated to the plt entries,
+#. then we won't report error for them.
+#.
+#. Perhaps we also need the similar checks for the
+#. R_RISCV_BRANCH and R_RISCV_RVC_BRANCH relocations.
+#: elfnn-riscv.c:3022
#, c-format
msgid "%%X%%P: relocation %s against `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC\n"
msgstr ""
-#: elfnn-riscv.c:2581
+#: elfnn-riscv.c:3103
#, c-format
msgid "%pcrel_lo section symbol with an addend"
msgstr ""
-#: elfnn-riscv.c:2800
+#: elfnn-riscv.c:3124
+#, c-format
+msgid "%tlsdesc_lo with addend"
+msgstr ""
+
+#: elfnn-riscv.c:3357
#, c-format
msgid "%%X%%P: unresolvable %s relocation against symbol `%s'\n"
msgstr ""
-#: elfnn-riscv.c:2837
+#: elfnn-riscv.c:3392
msgid "%X%P: internal error: out of range error\n"
msgstr ""
-#: elfnn-riscv.c:2842
+#: elfnn-riscv.c:3397
msgid "%X%P: internal error: unsupported relocation error\n"
msgstr ""
-#: elfnn-riscv.c:2848
+#: elfnn-riscv.c:3403
msgid "dangerous relocation error"
msgstr ""
-#: elfnn-riscv.c:2854
+#: elfnn-riscv.c:3409
msgid "%X%P: internal error: unknown error\n"
msgstr ""
-#: elfnn-riscv.c:3403
+#: elfnn-riscv.c:3982
#, c-format
msgid "error: %pB: corrupted ISA string '%s'. First letter should be 'i' or 'e' but got '%s'"
msgstr ""
-#: elfnn-riscv.c:3446
+#: elfnn-riscv.c:4025
#, c-format
msgid "error: %pB: mis-matched ISA string to merge '%s' and '%s'"
msgstr ""
-#: elfnn-riscv.c:3583
+#: elfnn-riscv.c:4162
#, c-format
msgid "error: %pB: ISA string of input (%s) doesn't match output (%s)"
msgstr ""
-#: elfnn-riscv.c:3603
+#: elfnn-riscv.c:4182
#, c-format
msgid "error: %pB: XLEN of input (%u) doesn't match output (%u)"
msgstr ""
-#: elfnn-riscv.c:3611
+#: elfnn-riscv.c:4190
#, c-format
msgid "error: %pB: unsupported XLEN (%u), you might be using wrong emulation"
msgstr ""
-#: elfnn-riscv.c:3725
-#, c-format
-msgid "warning: %pB use privileged spec version %u.%u.%u but the output use version %u.%u.%u"
-msgstr ""
-
-#: elfnn-riscv.c:3742
+#: elfnn-riscv.c:4314
msgid "warning: privileged spec version 1.9.1 can not be linked with other spec versions"
msgstr ""
-#: elfnn-riscv.c:3770
+#: elfnn-riscv.c:4342
#, c-format
msgid "error: %pB use %u-byte stack aligned but the output use %u-byte stack aligned"
msgstr ""
-#: elfnn-riscv.c:3867
+#: elfnn-riscv.c:4439
#, c-format
msgid "%pB: can't link %s modules with %s modules"
msgstr ""
-#: elfnn-riscv.c:3877
+#: elfnn-riscv.c:4449
#, c-format
msgid "%pB: can't link RVE with other target"
msgstr ""
-#: elfnn-riscv.c:4562
+#: elfnn-riscv.c:4473
#, c-format
-msgid "%pB(%pA+%#<PRIx64>): %<PRId64> bytes required for alignment to %<PRId64>-byte boundary, but only %<PRId64> present"
+msgid "warning: %pB: unknown RISCV ABI object attribute %d"
+msgstr ""
+
+#: elfnn-riscv.c:1162
+#, c-format
+msgid "%pB: relocation %s against non-absolute symbol `%s' can not be used in RV64 when making a shared object"
msgstr ""
-#: peXXigen.c:159
+#: peXXigen.c:161
#, c-format
msgid "%pB: unable to find name for empty section"
msgstr ""
-#: peXXigen.c:186
+#: peXXigen.c:188
#, c-format
msgid "%pB: out of memory creating name for empty section"
msgstr ""
-#: peXXigen.c:196
+#: peXXigen.c:199
#, c-format
msgid "%pB: unable to create fake empty section"
msgstr ""
-#: peXXigen.c:930
+#: peXXigen.c:928
#, c-format
msgid "%pB:%.8s: section below image base"
msgstr ""
-#: peXXigen.c:935
+#: peXXigen.c:933
#, c-format
msgid "%pB:%.8s: RVA truncated"
msgstr ""
@@ -8876,101 +9425,94 @@ msgstr ""
msgid "Reserved"
msgstr "რეზერვირებული"
-#: peXXigen.c:1294
+#: peXXigen.c:1312
#, c-format
msgid ""
"\n"
"There is an import table, but the section containing it could not be found\n"
msgstr ""
-#: peXXigen.c:1300
+#: peXXigen.c:1318
#, c-format
msgid ""
"\n"
"There is an import table in %s, but that section has no contents\n"
msgstr ""
-#: peXXigen.c:1307
+#: peXXigen.c:1325
#, c-format
msgid ""
"\n"
"There is an import table in %s at 0x%lx\n"
msgstr ""
-#: peXXigen.c:1313
+#: peXXigen.c:1331
#, c-format
msgid ""
"\n"
"The Import Tables (interpreted %s section contents)\n"
msgstr ""
-#: peXXigen.c:1316
+#: peXXigen.c:1334
#, c-format
msgid ""
" vma: Hint Time Forward DLL First\n"
" Table Stamp Chain Name Thunk\n"
msgstr ""
-#: peXXigen.c:1365
+#: peXXigen.c:1383
#, c-format
msgid ""
"\n"
"\tDLL Name: %.*s\n"
msgstr ""
-#: peXXigen.c:1381
+#: peXXigen.c:1399
#, c-format
-msgid "\tvma: Hint/Ord Member-Name Bound-To\n"
+msgid "\tvma: Ordinal Hint Member-Name Bound-To\n"
msgstr ""
-#: peXXigen.c:1406
+#: peXXigen.c:1424
#, c-format
msgid ""
"\n"
"There is a first thunk, but the section containing it could not be found\n"
msgstr ""
-#: peXXigen.c:1450 peXXigen.c:1489
+#: peXXigen.c:1474 peXXigen.c:1519
#, c-format
-msgid "\t<corrupt: 0x%04lx>"
-msgstr ""
+msgid "\t<corrupt: 0x%08lx>"
+msgstr "\t<დáƒáƒ–იáƒáƒœáƒ”ბული: 0x%08lx>"
-#: peXXigen.c:1582
+#: peXXigen.c:1613
#, c-format
msgid ""
"\n"
"There is an export table, but the section containing it could not be found\n"
msgstr ""
-#: peXXigen.c:1588
-#, c-format
-msgid ""
-"\n"
-"There is an export table in %s, but that section has no contents\n"
-msgstr ""
-
-#: peXXigen.c:1599
+#: peXXigen.c:1626
#, c-format
msgid ""
"\n"
-"There is an export table in %s, but it does not fit into that section\n"
+"There is an export table in %s, but it is too small (%d)\n"
msgstr ""
-#: peXXigen.c:1610
+#: peXXigen.c:1634
#, c-format
msgid ""
"\n"
-"There is an export table in %s, but it is too small (%d)\n"
+"There is an export table in %s, but contents cannot be read\n"
msgstr ""
-#: peXXigen.c:1616
+#: peXXigen.c:1640
#, c-format
msgid ""
"\n"
"There is an export table in %s at 0x%lx\n"
msgstr ""
-#: peXXigen.c:1644
+#: peXXigen.c:1671
#, c-format
msgid ""
"\n"
@@ -8978,145 +9520,145 @@ msgid ""
"\n"
msgstr ""
-#: peXXigen.c:1648
+#: peXXigen.c:1675
#, c-format
msgid "Export Flags \t\t\t%lx\n"
msgstr ""
-#: peXXigen.c:1651
+#: peXXigen.c:1678
#, c-format
msgid "Time/Date stamp \t\t%lx\n"
msgstr ""
-#: peXXigen.c:1655
+#: peXXigen.c:1682
#, c-format
msgid "Major/Minor \t\t\t%d/%d\n"
msgstr ""
-#: peXXigen.c:1658
+#: peXXigen.c:1685
#, c-format
msgid "Name \t\t\t\t"
msgstr ""
-#: peXXigen.c:1669
+#: peXXigen.c:1696
#, c-format
msgid "Ordinal Base \t\t\t%ld\n"
msgstr ""
-#: peXXigen.c:1672
+#: peXXigen.c:1699
#, c-format
msgid "Number in:\n"
msgstr ""
-#: peXXigen.c:1675
+#: peXXigen.c:1702
#, c-format
msgid "\tExport Address Table \t\t%08lx\n"
msgstr ""
-#: peXXigen.c:1679
+#: peXXigen.c:1706
#, c-format
msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
msgstr ""
-#: peXXigen.c:1682
+#: peXXigen.c:1709
#, c-format
msgid "Table Addresses\n"
msgstr ""
-#: peXXigen.c:1685
+#: peXXigen.c:1712
#, c-format
msgid "\tExport Address Table \t\t"
msgstr ""
-#: peXXigen.c:1690
+#: peXXigen.c:1717
#, c-format
msgid "\tName Pointer Table \t\t"
msgstr ""
-#: peXXigen.c:1695
+#: peXXigen.c:1722
#, c-format
msgid "\tOrdinal Table \t\t\t"
msgstr ""
-#: peXXigen.c:1709
+#: peXXigen.c:1736
#, c-format
msgid ""
"\n"
"Export Address Table -- Ordinal Base %ld\n"
msgstr ""
-#: peXXigen.c:1718
+#: peXXigen.c:1746
#, c-format
msgid "\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n"
msgstr ""
-#: peXXigen.c:1737
+#: peXXigen.c:1765
msgid "Forwarder RVA"
msgstr ""
-#: peXXigen.c:1749
+#: peXXigen.c:1777
msgid "Export RVA"
msgstr ""
-#: peXXigen.c:1756
+#: peXXigen.c:1784
#, c-format
msgid ""
"\n"
-"[Ordinal/Name Pointer] Table\n"
+"[Ordinal/Name Pointer] Table -- Ordinal Base %ld\n"
msgstr ""
-#: peXXigen.c:1764
+#: peXXigen.c:1794
#, c-format
msgid "\tInvalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)\n"
msgstr ""
-#: peXXigen.c:1771
+#: peXXigen.c:1801
#, c-format
msgid "\tInvalid Ordinal Table rva (0x%lx) or entry count (0x%lx)\n"
msgstr ""
-#: peXXigen.c:1785
+#: peXXigen.c:1815
#, c-format
-msgid "\t[%4ld] <corrupt offset: %lx>\n"
+msgid "\t[%4ld] +base[%4ld] %04lx <corrupt offset: %lx>\n"
msgstr ""
-#: peXXigen.c:1839 peXXigen.c:2008
+#: peXXigen.c:1872 peXXigen.c:2042
#, c-format
msgid "warning, .pdata section size (%ld) is not a multiple of %d\n"
msgstr ""
-#: peXXigen.c:1843 peXXigen.c:2012
+#: peXXigen.c:1876 peXXigen.c:2046
#, c-format
msgid ""
"\n"
"The Function Table (interpreted .pdata section contents)\n"
msgstr ""
-#: peXXigen.c:1846
+#: peXXigen.c:1879
#, c-format
msgid " vma:\t\t\tBegin Address End Address Unwind Info\n"
msgstr ""
-#: peXXigen.c:1848
+#: peXXigen.c:1881
#, c-format
msgid ""
" vma:\t\tBegin End EH EH PrologEnd Exception\n"
" \t\tAddress Address Handler Data Address Mask\n"
msgstr ""
-#: peXXigen.c:1861
+#: peXXigen.c:1894
#, c-format
msgid "Virtual size of .pdata section (%ld) larger than real size (%ld)\n"
msgstr ""
-#: peXXigen.c:2014
+#: peXXigen.c:2048
#, c-format
msgid ""
" vma:\t\tBegin Prolog Function Flags Exception EH\n"
" \t\tAddress Length Length 32b exc Handler Data\n"
msgstr ""
-#: peXXigen.c:2137
+#: peXXigen.c:2173
#, c-format
msgid ""
"\n"
@@ -9124,107 +9666,107 @@ msgid ""
"PE File Base Relocations (interpreted .reloc section contents)\n"
msgstr ""
-#: peXXigen.c:2166
+#: peXXigen.c:2202
#, c-format
msgid ""
"\n"
"Virtual Address: %08lx Chunk size %ld (0x%lx) Number of fixups %ld\n"
msgstr ""
-#: peXXigen.c:2184
+#: peXXigen.c:2220
#, c-format
msgid "\treloc %4d offset %4x [%4lx] %s"
msgstr ""
-#: peXXigen.c:2245
+#: peXXigen.c:2281
#, c-format
msgid "%03x %*.s Entry: "
msgstr ""
-#: peXXigen.c:2269
+#: peXXigen.c:2305
#, c-format
msgid "name: [val: %08lx len %d]: "
msgstr ""
-#: peXXigen.c:2289
+#: peXXigen.c:2325
#, c-format
msgid "<corrupt string length: %#x>\n"
msgstr ""
-#: peXXigen.c:2299
+#: peXXigen.c:2335
#, c-format
msgid "<corrupt string offset: %#lx>\n"
msgstr ""
-#: peXXigen.c:2304
+#: peXXigen.c:2340
#, c-format
msgid "ID: %#08lx"
msgstr ""
-#: peXXigen.c:2307
+#: peXXigen.c:2343
#, c-format
msgid ", Value: %#08lx\n"
msgstr ""
-#: peXXigen.c:2329
+#: peXXigen.c:2365
#, c-format
msgid "%03x %*.s Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n"
msgstr ""
-#: peXXigen.c:2371
+#: peXXigen.c:2407
#, c-format
msgid "<unknown directory type: %d>\n"
msgstr ""
-#: peXXigen.c:2379
+#: peXXigen.c:2415
#, c-format
msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n"
msgstr ""
-#: peXXigen.c:2467
+#: peXXigen.c:2503
#, c-format
msgid "Corrupt .rsrc section detected!\n"
msgstr ""
-#: peXXigen.c:2491
+#: peXXigen.c:2527
#, c-format
msgid ""
"\n"
"WARNING: Extra data in .rsrc section - it will be ignored by Windows:\n"
msgstr ""
-#: peXXigen.c:2497
+#: peXXigen.c:2533
#, c-format
msgid " String table starts at offset: %#03x\n"
msgstr ""
-#: peXXigen.c:2500
+#: peXXigen.c:2536
#, c-format
msgid " Resources start at offset: %#03x\n"
msgstr ""
-#: peXXigen.c:2557
+#: peXXigen.c:2593
#, c-format
msgid ""
"\n"
"There is a debug directory, but the section containing it could not be found\n"
msgstr ""
-#: peXXigen.c:2563
+#: peXXigen.c:2599
#, c-format
msgid ""
"\n"
"There is a debug directory in %s, but that section has no contents\n"
msgstr ""
-#: peXXigen.c:2570
+#: peXXigen.c:2606
#, c-format
msgid ""
"\n"
"Error: section %s contains the debug data starting address but it is too small\n"
msgstr ""
-#: peXXigen.c:2575
+#: peXXigen.c:2611
#, c-format
msgid ""
"\n"
@@ -9232,22 +9774,22 @@ msgid ""
"\n"
msgstr ""
-#: peXXigen.c:2582
+#: peXXigen.c:2618
#, c-format
msgid "The debug data size field in the data directory is too big for the section"
msgstr ""
-#: peXXigen.c:2587
+#: peXXigen.c:2623
#, c-format
msgid "Type Size Rva Offset\n"
msgstr ""
-#: peXXigen.c:2635
+#: peXXigen.c:2671
#, c-format
msgid "(format %c%c%c%c signature %s age %ld pdb %s)\n"
msgstr ""
-#: peXXigen.c:2647
+#: peXXigen.c:2683
#, c-format
msgid "The debug directory size is not a multiple of the debug directory entry size\n"
msgstr ""
@@ -9255,94 +9797,89 @@ msgstr ""
#. The MS dumpbin program reportedly ands with 0xff0f before
#. printing the characteristics field. Not sure why. No reason to
#. emulate it here.
-#: peXXigen.c:2731
+#: peXXigen.c:2767
#, c-format
msgid ""
"\n"
"Characteristics 0x%x\n"
msgstr ""
-#: peXXigen.c:3016
+#: peXXigen.c:3052
#, c-format
msgid "%pB: Data Directory (%lx bytes at %<PRIx64>) extends across section boundary at %<PRIx64>"
msgstr ""
-#: peXXigen.c:3056
+#: peXXigen.c:3093
msgid "failed to update file offsets in debug directory"
msgstr ""
-#: peXXigen.c:3065
+#: peXXigen.c:3102
#, c-format
msgid "%pB: failed to read debug data section"
msgstr ""
-#: peXXigen.c:3866
+#: peXXigen.c:3907
#, c-format
msgid ".rsrc merge failure: duplicate string resource: %d"
msgstr ""
-#: peXXigen.c:4001
+#: peXXigen.c:4042
msgid ".rsrc merge failure: multiple non-default manifests"
msgstr ""
-#: peXXigen.c:4019
+#: peXXigen.c:4060
msgid ".rsrc merge failure: a directory matches a leaf"
msgstr ""
-#: peXXigen.c:4061
+#: peXXigen.c:4102
msgid ".rsrc merge failure: duplicate leaf"
msgstr ""
-#: peXXigen.c:4066
+#: peXXigen.c:4107
#, c-format
msgid ".rsrc merge failure: duplicate leaf: %s"
msgstr ""
-#: peXXigen.c:4133
+#: peXXigen.c:4174
msgid ".rsrc merge failure: dirs with differing characteristics"
msgstr ""
-#: peXXigen.c:4140
+#: peXXigen.c:4181
msgid ".rsrc merge failure: differing directory versions"
msgstr ""
#. Corrupted .rsrc section - cannot merge.
-#: peXXigen.c:4257
+#: peXXigen.c:4293
#, c-format
msgid "%pB: .rsrc merge failure: corrupt .rsrc section"
msgstr ""
-#: peXXigen.c:4265
+#: peXXigen.c:4301
#, c-format
msgid "%pB: .rsrc merge failure: unexpected .rsrc size"
msgstr ""
-#: peXXigen.c:4404
-#, c-format
-msgid "%pB: unable to fill in DataDictionary[1] because .idata$2 is missing"
-msgstr ""
-
-#: peXXigen.c:4424
+#: peXXigen.c:4441 peXXigen.c:4461 peXXigen.c:4482 peXXigen.c:4502
#, c-format
-msgid "%pB: unable to fill in DataDictionary[1] because .idata$4 is missing"
+msgid "%pB: unable to fill in DataDirectory[%d]: %s is missing"
msgstr ""
-#: peXXigen.c:4445
+#: peXXigen.c:4544 peXXigen.c:4590 peXXigen.c:4614 peXXigen.c:4698
#, c-format
-msgid "%pB: unable to fill in DataDictionary[12] because .idata$5 is missing"
+msgid "%pB: unable to fill in DataDirectory[%d]: %s not defined correctly"
msgstr ""
-#: peXXigen.c:4465
+#: peXXigen.c:4651
#, c-format
-msgid "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing"
+msgid "%pB: unable to fill in DataDirectory[%d]: %s not properly aligned"
msgstr ""
-#: peXXigen.c:4507
+#: peXXigen.c:4682
#, c-format
-msgid "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing"
+msgid "%pB: unable to fill in DataDirectory[%d]: size too large for the containing section"
msgstr ""
-#: peXXigen.c:4532
+#: peXXigen.c:4690
#, c-format
-msgid "%pB: unable to fill in DataDictionary[9] because __tls_used is missing"
+msgid "%pB: unable to fill in DataDirectory[%d]: size can't be read from %s"
msgstr ""
diff --git a/bfd/po/ms.po b/bfd/po/ms.po
index 89e2760..87803f7 100644
--- a/bfd/po/ms.po
+++ b/bfd/po/ms.po
@@ -5,10 +5,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: bfd 2.43.90\n"
+"Project-Id-Version: bfd 2.44.90\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2025-01-19 12:19+0000\n"
-"PO-Revision-Date: 2025-07-04 21:09+0800\n"
+"POT-Creation-Date: 2025-07-13 08:44+0100\n"
+"PO-Revision-Date: 2025-08-23 00:14+0800\n"
"Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>\n"
"Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
"Language: ms\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 3.6\n"
+"X-Generator: Poedit 3.7\n"
#: aout-cris.c:196
#, c-format
@@ -69,47 +69,48 @@ msgstr ""
msgid "%pB: attempt to write out unknown reloc type"
msgstr ""
-#: aoutx.h:4047 pdp11.c:3409
+#: aoutx.h:4040 pdp11.c:3402
#, fuzzy, c-format
msgid "%pB: unsupported relocation type"
msgstr "Jenis _MIME tidak disokong %s"
#. Unknown relocation.
-#: aoutx.h:4367 coff-alpha.c:601 coff-mips.c:356 coff-rs6000.c:3037
+#: aoutx.h:4360 coff-alpha.c:604 coff-mips.c:356 coff-rs6000.c:3037
#: coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:262 elf-hppa.h:798
#: elf-hppa.h:826 elf-m10200.c:226 elf-m10300.c:813 elf32-arc.c:531
-#: elf32-arm.c:1985 elf32-avr.c:957 elf32-bfin.c:1063 elf32-bfin.c:4686
+#: elf32-arm.c:1985 elf32-avr.c:957 elf32-bfin.c:1063 elf32-bfin.c:4692
#: elf32-cr16.c:654 elf32-cr16.c:684 elf32-cris.c:467 elf32-crx.c:429
#: elf32-csky.c:991 elf32-d10v.c:234 elf32-d30v.c:522 elf32-d30v.c:544
#: elf32-dlx.c:546 elf32-epiphany.c:373 elf32-fr30.c:381 elf32-frv.c:2558
-#: elf32-frv.c:6240 elf32-ft32.c:304 elf32-h8300.c:302 elf32-i386.c:394
+#: elf32-frv.c:6246 elf32-ft32.c:304 elf32-h8300.c:302 elf32-i386.c:394
#: elf32-ip2k.c:1241 elf32-iq2000.c:442 elf32-lm32.c:495 elf32-m32c.c:305
-#: elf32-m32r.c:1286 elf32-m32r.c:1311 elf32-m32r.c:2209 elf32-m68hc11.c:390
+#: elf32-m32r.c:1286 elf32-m32r.c:1311 elf32-m32r.c:2211 elf32-m68hc11.c:390
#: elf32-m68hc12.c:510 elf32-m68k.c:354 elf32-mcore.c:354 elf32-mcore.c:440
#: elf32-mep.c:385 elf32-metag.c:871 elf32-microblaze.c:708
#: elf32-microblaze.c:1015 elf32-mips.c:2242 elf32-moxie.c:137
-#: elf32-msp430.c:737 elf32-msp430.c:747 elf32-mt.c:241 elf32-nds32.c:3287
-#: elf32-nds32.c:3308 elf32-nds32.c:5077 elf32-or1k.c:1085 elf32-pj.c:326
+#: elf32-msp430.c:737 elf32-msp430.c:747 elf32-mt.c:241 elf32-nds32.c:3294
+#: elf32-nds32.c:3315 elf32-nds32.c:5084 elf32-or1k.c:1085 elf32-pj.c:326
#: elf32-ppc.c:900 elf32-ppc.c:913 elf32-pru.c:423 elf32-rl78.c:291
#: elf32-rx.c:324 elf32-rx.c:333 elf32-s12z.c:296 elf32-s390.c:347
#: elf32-score.c:2373 elf32-score7.c:2214 elf32-sh.c:437 elf32-spu.c:163
#: elf32-tic6x.c:1498 elf32-tic6x.c:1508 elf32-tic6x.c:1527 elf32-tic6x.c:1537
#: elf32-tic6x.c:2575 elf32-tilepro.c:791 elf32-v850.c:1902 elf32-v850.c:1924
-#: elf32-v850.c:4253 elf32-vax.c:288 elf32-visium.c:481 elf32-wasm32.c:105
+#: elf32-v850.c:4254 elf32-vax.c:288 elf32-visium.c:481 elf32-wasm32.c:105
#: elf32-xgate.c:418 elf32-xstormy16.c:395 elf32-xtensa.c:510
-#: elf32-xtensa.c:544 elf32-z80.c:331 elf64-alpha.c:1112 elf64-alpha.c:4055
-#: elf64-alpha.c:4203 elf64-bpf.c:132 elf64-ia64-vms.c:255
-#: elf64-ia64-vms.c:3426 elf64-mips.c:3965 elf64-mips.c:3981 elf64-mmix.c:1260
+#: elf32-xtensa.c:544 elf32-z80.c:331 elf64-alpha.c:1112 elf64-alpha.c:4058
+#: elf64-alpha.c:4206 elf64-bpf.c:132 elf64-ia64-vms.c:255
+#: elf64-ia64-vms.c:3428 elf64-mips.c:3965 elf64-mips.c:3981 elf64-mmix.c:1260
#: elf64-nfp.c:151 elf64-ppc.c:1031 elf64-ppc.c:1385 elf64-ppc.c:1394
-#: elf64-s390.c:328 elf64-s390.c:378 elf64-x86-64.c:305 elfn32-mips.c:3799
-#: elfxx-ia64.c:324 elfxx-loongarch.c:1897 elfxx-riscv.c:1062 elfxx-sparc.c:589
-#: elfxx-sparc.c:639 elfxx-tilegx.c:907 elfxx-tilegx.c:947 elfnn-aarch64.c:2215
-#: elfnn-aarch64.c:2313 elfnn-ia64.c:214 elfnn-ia64.c:3821 elfnn-kvx.c:259
+#: elf64-s390.c:331 elf64-s390.c:381 elf64-x86-64.c:305 elf64-x86-64.c:2558
+#: elfn32-mips.c:3799 elfxx-ia64.c:324 elfxx-loongarch.c:1897
+#: elfxx-riscv.c:1068 elfxx-sparc.c:589 elfxx-sparc.c:639 elfxx-tilegx.c:907
+#: elfxx-tilegx.c:947 elfnn-aarch64.c:2215 elfnn-aarch64.c:2316
+#: elfnn-ia64.c:214 elfnn-ia64.c:3823 elfnn-kvx.c:259
#, fuzzy, c-format
msgid "%pB: unsupported relocation type %#x"
msgstr "TYPE(x)"
-#: aoutx.h:5387 pdp11.c:3825
+#: aoutx.h:5380 pdp11.c:3818
#, fuzzy, c-format
msgid "%pB: relocatable link from %s to %s not supported"
msgstr "Pertukaran dari set aksara \"%s\" ke \"UTF-8\" tidak disokong"
@@ -120,157 +121,157 @@ msgid "%pB: cannot allocate memory for local GOT entries"
msgstr ""
#: archive.c:748
-msgid "%F%P: %pB(%s): error opening thin archive member: %E\n"
+msgid "%P: %pB(%s): error opening thin archive member: %E\n"
msgstr ""
#: archive.c:2282
msgid "warning: writing archive was slow: rewriting timestamp"
msgstr ""
-#: archive.c:2351 archive.c:2412 elflink.c:4931 linker.c:1452
+#: archive.c:2351 archive.c:2408 elflink.c:4956 linker.c:1470
#, c-format
msgid "%pB: plugin needed to handle lto object"
msgstr ""
-#: archive.c:2644
+#: archive.c:2640
#, fuzzy
msgid "Reading archive file mod timestamp"
msgstr "Setem masa penciptaan fail imej tidak ditetapkan dalam fail"
-#: archive.c:2675
+#: archive.c:2671
#, fuzzy
msgid "Writing updated armap timestamp"
msgstr "Dikemaskini"
-#: bfd.c:777
+#: bfd.c:793
msgid "no error"
msgstr "tiada ralat"
-#: bfd.c:778
+#: bfd.c:794
#, fuzzy
msgid "system call error"
msgstr "panggilan sistem fork() gagal"
-#: bfd.c:779
+#: bfd.c:795
#, fuzzy
msgid "invalid bfd target"
msgstr "Nilai sasaran tak sah."
-#: bfd.c:780
+#: bfd.c:796
#, fuzzy
msgid "file in wrong format"
msgstr "Format fail:"
-#: bfd.c:781
+#: bfd.c:797
#, fuzzy
msgid "archive object file in wrong format"
msgstr "Cipta arkib dengan objek terpilih"
-#: bfd.c:782
+#: bfd.c:798
#, fuzzy
msgid "invalid operation"
msgstr "Operasi tidak sah %d\n"
-#: bfd.c:783
+#: bfd.c:799
msgid "memory exhausted"
msgstr "kehabisan memori"
-#: bfd.c:784
+#: bfd.c:800
#, fuzzy
msgid "no symbols"
msgstr "Simbol"
-#: bfd.c:785
+#: bfd.c:801
msgid "archive has no index; run ranlib to add one"
msgstr ""
-#: bfd.c:786
+#: bfd.c:802
#, fuzzy
msgid "no more archived files"
msgstr "Diarkib"
-#: bfd.c:787
+#: bfd.c:803
#, fuzzy
msgid "malformed archive"
msgstr "Respon cacat"
-#: bfd.c:788
+#: bfd.c:804
#, fuzzy
msgid "DSO missing from command line"
msgstr "Alatan KDE untuk pembukaan URL daripada baris arahan"
-#: bfd.c:789
+#: bfd.c:805
#, fuzzy
msgid "file format not recognized"
msgstr "PNM: Format fail tidak dikenal."
-#: bfd.c:790
+#: bfd.c:806
#, fuzzy
msgid "file format is ambiguous"
msgstr "Format Fail"
-#: bfd.c:791
+#: bfd.c:807
#, fuzzy
msgid "section has no contents"
msgstr ""
"\n"
"Terdapat direktori nyahpijat dalam %s, tetapi bahagian itu tidak mempunyai kandungan\n"
-#: bfd.c:792
+#: bfd.c:808
#, fuzzy
msgid "nonrepresentable section on output"
msgstr "&Seksyen:"
-#: bfd.c:793
+#: bfd.c:809
msgid "symbol needs debug section which does not exist"
msgstr ""
-#: bfd.c:794
+#: bfd.c:810
#, fuzzy
msgid "bad value"
msgstr "nilai salah untuk maklumat keadaan ikon terlabuh %s"
-#: bfd.c:795
+#: bfd.c:811
#, fuzzy
msgid "file truncated"
msgstr "PNM: Fail seperti dipotong."
-#: bfd.c:796
+#: bfd.c:812
#, fuzzy
msgid "file too big"
msgstr "Fail terlalu besar."
-#: bfd.c:797
+#: bfd.c:813
#, fuzzy
msgid "sorry, cannot handle this file"
msgstr "pluma tidak dapat mengendali lokasi ini."
-#: bfd.c:798
+#: bfd.c:814
#, fuzzy, c-format
msgid "error reading %s: %s"
msgstr "Ralat membaca %s: %s"
-#: bfd.c:799
+#: bfd.c:815
#, fuzzy
msgid "#<invalid error code>"
msgstr "kod kesalahan"
-#: bfd.c:2242
+#: bfd.c:2266
#, fuzzy, c-format
msgid "BFD %s assertion fail %s:%d"
msgstr "Gagal sebelum mengembalikan media kepada pengguna: %s"
-#: bfd.c:2255
+#: bfd.c:2279
#, fuzzy, c-format
msgid "%s: BFD %s internal error, aborting at %s:%d in %s\n"
msgstr "RALAT DALAMAN pada %s:%d: regex hilang atau tidak sah"
-#: bfd.c:2259
+#: bfd.c:2283
#, fuzzy, c-format
msgid "%s: BFD %s internal error, aborting at %s:%d\n"
msgstr "RALAT DALAMAN pada %s:%d: regex hilang atau tidak sah"
-#: bfd.c:2262
+#: bfd.c:2286
#, fuzzy, c-format
msgid "Please report this bug.\n"
msgstr "Sila laporkan pepijat ini kepada pihak pembangun."
@@ -290,38 +291,38 @@ msgstr "PB"
msgid "%pB: cannot handle compressed Alpha binaries; use compiler flags, or objZ, to generate uncompressed binaries"
msgstr ""
-#: coff-alpha.c:867 coff-alpha.c:894 coff-alpha.c:2004 coff-mips.c:948
+#: coff-alpha.c:914 coff-alpha.c:941 coff-alpha.c:2009 coff-mips.c:948
msgid "GP relative relocation used when GP not defined"
msgstr ""
-#: coff-alpha.c:1151 coff-z80.c:351 coff-z8k.c:214 elf32-nds32.c:13188
-#: elfxx-mips.c:13509 reloc.c:8596 reloc16.c:314
+#: coff-alpha.c:1177 coff-z80.c:351 coff-z8k.c:214 elf32-nds32.c:13195
+#: elfxx-mips.c:13594 reloc.c:8602 reloc16.c:314
#, c-format
msgid "%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n"
msgstr ""
-#: coff-alpha.c:1157 coff-z80.c:477 coff-z8k.c:378 elfxx-mips.c:13519
-#: reloc.c:8606
+#: coff-alpha.c:1183 coff-z80.c:477 coff-z8k.c:378 elfxx-mips.c:13604
+#: reloc.c:8612
#, c-format
msgid "%X%P: %pB(%pA): relocation \"%pR\" is not supported\n"
msgstr ""
-#: coff-alpha.c:1163 elfxx-mips.c:13528 reloc.c:8615
+#: coff-alpha.c:1189 elfxx-mips.c:13613 reloc.c:8621
#, c-format
msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"
msgstr ""
-#: coff-alpha.c:1489
+#: coff-alpha.c:1515
#, fuzzy
msgid "using multiple gp values"
msgstr "Muat P_GP"
-#: coff-alpha.c:1987
+#: coff-alpha.c:1992
#, c-format
msgid "%X%P: %pB(%pA): relocation out of range\n"
msgstr ""
-#: coff-alpha.c:1999
+#: coff-alpha.c:2004
#, c-format
msgid "%X%P: %pB(%pA): relocation is not supported\n"
msgstr ""
@@ -421,13 +422,13 @@ msgstr ""
msgid "%pB: fatal: generic symbols retrieved before relaxing"
msgstr ""
-#: coff-sh.c:2773 cofflink.c:2947
+#: coff-sh.c:2773 cofflink.c:2986
#, c-format
msgid "%pB: illegal symbol index %ld in relocs"
msgstr ""
#: coff-tic30.c:172 coff-tic4x.c:228 coff-tic54x.c:338 coff-z80.c:325
-#: coff-z8k.c:188 coffcode.h:5314
+#: coff-z8k.c:188 coffcode.h:5305
#, c-format
msgid "%pB: warning: illegal symbol index %ld in relocs"
msgstr ""
@@ -485,112 +486,113 @@ msgstr ""
msgid "%pB (%s): section flag %s (%#lx) ignored"
msgstr ""
-#: coffcode.h:1954
+#: coffcode.h:1945
#, c-format
msgid "%pB: overflow reloc count too small"
msgstr ""
-#: coffcode.h:1963 coffcode.h:2028
+#: coffcode.h:1954 coffcode.h:2019
#, c-format
msgid "%pB: warning: claims to have 0xffff relocs, without overflow"
msgstr ""
-#: coffcode.h:2411
+#: coffcode.h:2402
#, c-format
msgid "unrecognized TI COFF target id '0x%x'"
msgstr ""
-#: coffcode.h:2690
+#: coffcode.h:2681
#, c-format
msgid "%pB: reloc against a non-existent symbol index: %ld"
msgstr ""
-#: coffcode.h:3162
+#: coffcode.h:3153
#, fuzzy, c-format
msgid "%pB: too many sections (%d)"
msgstr "Terlalu banyak titik henti. Maksimum ialah %d."
-#: coffcode.h:3690
+#: coffcode.h:3681
#, c-format
msgid "%pB: section %pA: string table overflow at offset %ld"
msgstr ""
-#: coffcode.h:3791
+#: coffcode.h:3782
#, c-format
msgid "%pB:%s section %s: alignment 2**%u not representable"
msgstr ""
-#: coffcode.h:4532
+#: coffcode.h:4523
#, c-format
msgid "%pB: warning: line number table read failed"
msgstr ""
-#: coffcode.h:4578 coffcode.h:4592
+#: coffcode.h:4569 coffcode.h:4583
#, c-format
msgid "%pB: warning: illegal symbol index 0x%lx in line number entry %d"
msgstr ""
-#: coffcode.h:4606
+#: coffcode.h:4597
#, c-format
msgid "%pB: warning: illegal symbol in line number entry %d"
msgstr ""
-#: coffcode.h:4619
+#: coffcode.h:4610
#, c-format
msgid "%pB: warning: duplicate line number information for `%s'"
msgstr ""
-#: coffcode.h:5043
+#: coffcode.h:5034
#, c-format
msgid "%pB: unrecognized storage class %d for %s symbol `%s'"
msgstr ""
-#: coffcode.h:5183
+#: coffcode.h:5174
#, c-format
msgid "warning: %pB: local symbol `%s' has no section"
msgstr ""
-#: coffcode.h:5354
+#: coffcode.h:5345
#, c-format
msgid "%pB: illegal relocation type %d at address %#<PRIx64>"
msgstr ""
-#: coffgen.c:255 elf.c:1033
+#: coffgen.c:257 elf.c:1060
#, fuzzy, c-format
msgid "%pB: unable to compress section %s"
-msgstr "%pB: gagal membaca bahagian data nyahpepijat"
+msgstr "%pB: gagal menggabung .rsrc: bahagian .rsrc rosak"
-#: coffgen.c:265 elf.c:1043
+#: coffgen.c:267 elf.c:1070
#, fuzzy, c-format
msgid "%pB: unable to decompress section %s"
msgstr "Sumber pada \"%s\" gagal dinyahmampatkan"
-#: coffgen.c:1778
+#: coffgen.c:1795
#, c-format
msgid "%pB: bad string table size %<PRIu64>"
msgstr ""
-#: coffgen.c:2162 coffgen.c:2301 cofflink.c:2012 ecoff.c:1456 elf.c:2288
-#: elf.c:2320 pef.c:214 syms.c:788 xcofflink.c:5530
+#: coffgen.c:2179 coffgen.c:2318 cofflink.c:2051 ecoff.c:1444 elf.c:2313
+#: elf.c:2345 pef.c:214 syms.c:789 xcofflink.c:384 xcofflink.c:5577
#, fuzzy
msgid "<corrupt>"
msgstr "Fail rosak?"
-#: coffgen.c:2191
+#: coffgen.c:2208
#, fuzzy, c-format
msgid "<corrupt info> %s"
msgstr "PNG imej kenit rosak: '%s'"
-#: coffgen.c:2797 elflink.c:15435 linker.c:3011
-msgid "%F%P: already_linked_table: %E\n"
-msgstr ""
+#: coffgen.c:2818 elflink.c:15490 linker.c:3061
+#, fuzzy
+msgid "%P: already_linked_table: %E\n"
+msgstr "%-e %b %Y %l:%M %p"
-#: coffgen.c:3139 elflink.c:14375
+#: coffgen.c:3175 elflink.c:14430
#, c-format
msgid "removing unused section '%pA' in file '%pB'"
msgstr ""
-#: coffgen.c:3216 elflink.c:14606
+#: coffgen.c:3252 elflink.c:14661
#, fuzzy
msgid "warning: gc-sections option ignored"
msgstr ""
@@ -598,44 +600,44 @@ msgstr ""
"\n"
"%(warning)s"
-#: cofflink.c:398
+#: cofflink.c:399
#, c-format
msgid "warning: symbol `%s' is both section and non-section"
msgstr ""
-#: cofflink.c:503 elf64-ia64-vms.c:5198 elflink.c:5560
+#: cofflink.c:504 elf64-ia64-vms.c:5200 elflink.c:5587
#, c-format
msgid "warning: type of symbol `%s' changed from %d to %d in %pB"
msgstr ""
-#: cofflink.c:2340
+#: cofflink.c:2379
#, fuzzy, c-format
msgid "%pB: relocs in section `%pA', but it has no contents"
msgstr ""
"\n"
"Terdapat direktori nyahpijat dalam %s, tetapi bahagian itu tidak mempunyai kandungan\n"
-#: cofflink.c:2403 elflink.c:11809
+#: cofflink.c:2442 elflink.c:11880
#, c-format
msgid "%X`%s' referenced in section `%pA' of %pB: defined in discarded section `%pA' of %pB\n"
msgstr ""
-#: cofflink.c:2598
+#: cofflink.c:2637
#, c-format
msgid "%pB: stripping non-representable symbol '%s' (value 0x%<PRIx64>)"
msgstr ""
-#: cofflink.c:2716
+#: cofflink.c:2755
#, c-format
msgid "%pB: %pA: reloc overflow: %#x > 0xffff"
msgstr ""
-#: cofflink.c:2724
+#: cofflink.c:2763
#, c-format
msgid "%pB: warning: %pA: line number overflow: %#x > 0xffff"
msgstr ""
-#: cofflink.c:3118
+#: cofflink.c:3157
#, c-format
msgid "%pB: bad reloc address %#<PRIx64> in section `%pA'"
msgstr ""
@@ -645,7 +647,7 @@ msgstr ""
msgid "%pB: %s: reloc overflow: 0x%lx > 0xffff"
msgstr ""
-#: compress.c:748 compress.c:765 libbfd.c:1322
+#: compress.c:732 compress.c:749 libbfd.c:1322
#, c-format
msgid "error: %pB(%pA) is too large (%#<PRIx64> bytes)"
msgstr ""
@@ -784,169 +786,174 @@ msgstr ""
msgid "DWARF error: found address size '%u', this reader can not handle sizes greater than '%u'"
msgstr ""
-#: ecoff.c:1017
+#: ecoff.c:1005
#, c-format
msgid "%pB: warning: isymMax (%ld) is greater than ifdMax (%ld)"
msgstr ""
-#: ecoff.c:1313
+#: ecoff.c:1301
#, fuzzy, c-format
msgid "unknown basic type %d"
msgstr "Jenis bus %d tidak diketahui"
-#: ecoff.c:1571
+#: ecoff.c:1559
#, fuzzy, c-format
msgid ""
"\n"
" End+1 symbol: %ld"
msgstr "Tetapkan alamat &akhir simbol"
-#: ecoff.c:1578 ecoff.c:1581
+#: ecoff.c:1566 ecoff.c:1569
#, fuzzy, c-format
msgid ""
"\n"
" First symbol: %ld"
msgstr "Memadam fail %ld drpd %ld"
-#: ecoff.c:1596
+#: ecoff.c:1584
#, fuzzy, c-format
msgid ""
"\n"
" End+1 symbol: %-7ld Type: %s"
msgstr "jenis <%s> digunakan, tetapi tidak dihubungkan ke sebarang simbol"
-#: ecoff.c:1604
+#: ecoff.c:1592
#, fuzzy, c-format
msgid ""
"\n"
" Local symbol: %ld"
msgstr "Memadam fail %ld drpd %ld"
-#: ecoff.c:1612
+#: ecoff.c:1600
#, fuzzy, c-format
msgid ""
"\n"
" struct; End+1 symbol: %ld"
msgstr "Lumpuhkan simbol _akhir baris"
-#: ecoff.c:1617
+#: ecoff.c:1605
#, fuzzy, c-format
msgid ""
"\n"
" union; End+1 symbol: %ld"
msgstr "Lumpuhkan simbol _akhir baris"
-#: ecoff.c:1622
+#: ecoff.c:1610
#, fuzzy, c-format
msgid ""
"\n"
" enum; End+1 symbol: %ld"
msgstr "Lumpuhkan simbol _akhir baris"
-#: ecoff.c:1630
+#: ecoff.c:1618
#, fuzzy, c-format
msgid ""
"\n"
" Type: %s"
msgstr "Indeks tidak sah untuk jenis %s untuk jenis asa %s"
-#: elf-attrs.c:417 elf-attrs.c:447 elf-attrs.c:623
+#: elf-attrs.c:424 elf-attrs.c:454 elf-attrs.c:596
#, fuzzy
msgid "error adding attribute"
msgstr "Ralat ketika menambah hubungan"
-#: elf-attrs.c:503
+#: elf-attrs.c:513
+#, c-format
+msgid "%pB: error: attribute section length too small: %ld"
+msgstr ""
+
+#: elf-attrs.c:623
#, c-format
msgid "%pB: error: attribute section '%pA' too big: %#llx"
msgstr ""
-#: elf-attrs.c:540
+#: elf-attrs.c:642
#, c-format
-msgid "%pB: error: attribute section length too small: %ld"
+msgid "%pB: error: unknown attributes version '%c'(%d) - expecting 'A'\n"
msgstr ""
-#: elf-attrs.c:673
+#: elf-attrs.c:688
#, c-format
msgid "error: %pB: object has vendor-specific contents that must be processed by the '%s' toolchain"
msgstr ""
-#: elf-attrs.c:683
+#: elf-attrs.c:698
#, c-format
msgid "error: %pB: object tag '%d, %s' is incompatible with tag '%d, %s'"
msgstr ""
-#: elf-eh-frame.c:946
+#: elf-eh-frame.c:952
#, c-format
msgid "discarding zero address range FDE in %pB(%pA).\n"
msgstr ""
-#: elf-eh-frame.c:1051
+#: elf-eh-frame.c:1057
#, c-format
msgid "error in %pB(%pA); no .eh_frame_hdr table will be created"
msgstr ""
-#: elf-eh-frame.c:1542
+#: elf-eh-frame.c:1548
#, c-format
msgid "FDE encoding in %pB(%pA) prevents .eh_frame_hdr table being created"
msgstr ""
-#: elf-eh-frame.c:1549
+#: elf-eh-frame.c:1555
msgid "further warnings about FDE encoding preventing .eh_frame_hdr generation dropped"
msgstr ""
-#: elf-eh-frame.c:1872
+#: elf-eh-frame.c:1878
#, fuzzy, c-format
msgid "%pB: %pA not in order"
msgstr "PA="
-#: elf-eh-frame.c:1886
+#: elf-eh-frame.c:1892
#, c-format
msgid "%pB: %pA invalid input section size"
msgstr ""
-#: elf-eh-frame.c:1894
+#: elf-eh-frame.c:1900
#, c-format
msgid "%pB: %pA points past end of text section"
msgstr ""
-#: elf-eh-frame.c:2147
+#: elf-eh-frame.c:2153
msgid "DW_EH_PE_datarel unspecified for this architecture"
msgstr ""
-#: elf-eh-frame.c:2317
+#: elf-eh-frame.c:2323
#, c-format
msgid "invalid output section for .eh_frame_entry: %pA"
msgstr ""
-#: elf-eh-frame.c:2340
+#: elf-eh-frame.c:2346
#, fuzzy, c-format
msgid "invalid contents in %pA section"
msgstr "PA="
-#: elf-eh-frame.c:2496
+#: elf-eh-frame.c:2500
#, fuzzy
msgid ".eh_frame_hdr entry overflow"
msgstr "Lukis bingkai disekeliling masukan"
-#: elf-eh-frame.c:2498
+#: elf-eh-frame.c:2502
msgid ".eh_frame_hdr refers to overlapping FDEs"
msgstr ""
#. xgettext:c-format.
-#: elf-ifunc.c:144 elfnn-loongarch.c:1704
+#: elf-ifunc.c:144 elfnn-loongarch.c:1713
#, c-format
-msgid "%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%pB' can not be used when making an executable; recompile with -fPIE and relink with -pie\n"
+msgid "%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%pB' can not be used when making an executable; recompile with -fPIE and relink with -pie\n"
msgstr ""
#: elf-m10200.c:434 elf-m10300.c:2146 elf32-bfin.c:3132 elf32-cr16.c:1429
#: elf32-cris.c:2033 elf32-crx.c:922 elf32-d10v.c:510 elf32-epiphany.c:563
#: elf32-fr30.c:594 elf32-frv.c:4048 elf32-ft32.c:492 elf32-h8300.c:523
#: elf32-ip2k.c:1478 elf32-iq2000.c:691 elf32-lm32.c:1069 elf32-m32c.c:624
-#: elf32-m32r.c:2837 elf32-m68hc1x.c:1270 elf32-mep.c:522 elf32-metag.c:1983
-#: elf32-microblaze.c:1677 elf32-moxie.c:288 elf32-mt.c:402 elf32-nds32.c:6092
-#: elf32-or1k.c:1895 elf32-score.c:2724 elf32-score7.c:2535 elf32-spu.c:5081
-#: elf32-tilepro.c:3369 elf32-v850.c:2297 elf32-visium.c:680
-#: elf32-xstormy16.c:930 elf64-bpf.c:339 elf64-mmix.c:1537 elfxx-tilegx.c:3742
+#: elf32-m32r.c:2839 elf32-m68hc1x.c:1271 elf32-mep.c:522 elf32-metag.c:1983
+#: elf32-microblaze.c:1677 elf32-moxie.c:288 elf32-mt.c:402 elf32-nds32.c:6099
+#: elf32-or1k.c:1895 elf32-score.c:2724 elf32-score7.c:2535 elf32-spu.c:5084
+#: elf32-tilepro.c:3371 elf32-v850.c:2297 elf32-visium.c:680
+#: elf32-xstormy16.c:931 elf64-bpf.c:339 elf64-mmix.c:1537 elfxx-tilegx.c:3744
#, fuzzy
msgid "internal error: out of range error"
msgstr "Ralat dalaman: Ralat tidak diketahui"
@@ -954,20 +961,20 @@ msgstr "Ralat dalaman: Ralat tidak diketahui"
#: elf-m10200.c:438 elf-m10300.c:2150 elf32-bfin.c:3136 elf32-cr16.c:1433
#: elf32-cris.c:2037 elf32-crx.c:926 elf32-d10v.c:514 elf32-fr30.c:598
#: elf32-frv.c:4052 elf32-ft32.c:496 elf32-h8300.c:527 elf32-iq2000.c:695
-#: elf32-lm32.c:1073 elf32-m32c.c:628 elf32-m32r.c:2841 elf32-m68hc1x.c:1274
+#: elf32-lm32.c:1073 elf32-m32c.c:628 elf32-m32r.c:2843 elf32-m68hc1x.c:1275
#: elf32-mep.c:526 elf32-metag.c:1987 elf32-microblaze.c:1681 elf32-moxie.c:292
-#: elf32-msp430.c:1510 elf32-nds32.c:6096 elf32-or1k.c:1899 elf32-score.c:2728
-#: elf32-score7.c:2539 elf32-spu.c:5085 elf32-tilepro.c:3373 elf32-v850.c:2301
-#: elf32-visium.c:684 elf32-xstormy16.c:934 elf64-mmix.c:1541
-#: elfxx-mips.c:10642 elfxx-tilegx.c:3746
+#: elf32-msp430.c:1510 elf32-nds32.c:6103 elf32-or1k.c:1899 elf32-score.c:2728
+#: elf32-score7.c:2539 elf32-spu.c:5088 elf32-tilepro.c:3375 elf32-v850.c:2301
+#: elf32-visium.c:684 elf32-xstormy16.c:935 elf64-mmix.c:1541
+#: elfxx-mips.c:10727 elfxx-tilegx.c:3748
#, fuzzy
msgid "internal error: unsupported relocation error"
msgstr "Ralat dalaman: Ralat tidak diketahui"
#: elf-m10200.c:442 elf32-cr16.c:1437 elf32-crx.c:930 elf32-d10v.c:518
-#: elf32-h8300.c:531 elf32-lm32.c:1077 elf32-m32r.c:2845 elf32-m68hc1x.c:1278
-#: elf32-microblaze.c:1685 elf32-nds32.c:6100 elf32-score.c:2732
-#: elf32-score7.c:2543 elf32-spu.c:5089
+#: elf32-h8300.c:531 elf32-lm32.c:1077 elf32-m32r.c:2847 elf32-m68hc1x.c:1279
+#: elf32-microblaze.c:1685 elf32-nds32.c:6107 elf32-score.c:2732
+#: elf32-score7.c:2543 elf32-spu.c:5092
#, fuzzy
msgid "internal error: dangerous error"
msgstr "Ralat dalaman: Ralat tidak diketahui"
@@ -976,11 +983,11 @@ msgstr "Ralat dalaman: Ralat tidak diketahui"
#: elf32-cris.c:2045 elf32-crx.c:934 elf32-d10v.c:522 elf32-epiphany.c:578
#: elf32-fr30.c:606 elf32-frv.c:4060 elf32-ft32.c:504 elf32-h8300.c:535
#: elf32-ip2k.c:1493 elf32-iq2000.c:703 elf32-lm32.c:1081 elf32-m32c.c:636
-#: elf32-m32r.c:2849 elf32-m68hc1x.c:1282 elf32-mep.c:534 elf32-metag.c:1995
+#: elf32-m32r.c:2851 elf32-m68hc1x.c:1283 elf32-mep.c:534 elf32-metag.c:1995
#: elf32-microblaze.c:1689 elf32-moxie.c:300 elf32-msp430.c:1518 elf32-mt.c:410
-#: elf32-nds32.c:6104 elf32-or1k.c:1907 elf32-score.c:2741 elf32-score7.c:2547
-#: elf32-spu.c:5093 elf32-tilepro.c:3381 elf32-v850.c:2321 elf32-visium.c:692
-#: elf32-xstormy16.c:942 elf64-bpf.c:352 elf64-mmix.c:1549 elfxx-tilegx.c:3754
+#: elf32-nds32.c:6111 elf32-or1k.c:1907 elf32-score.c:2741 elf32-score7.c:2547
+#: elf32-spu.c:5096 elf32-tilepro.c:3383 elf32-v850.c:2321 elf32-visium.c:692
+#: elf32-xstormy16.c:943 elf64-bpf.c:352 elf64-mmix.c:1549 elfxx-tilegx.c:3756
#, fuzzy
msgid "internal error: unknown error"
msgstr "Ralat dalaman: Ralat tidak diketahui"
@@ -995,11 +1002,11 @@ msgstr ""
msgid "%pB: %s' accessed both as normal and thread local symbol"
msgstr ""
-#: elf-m10300.c:2093 elf32-arm.c:13472 elf32-i386.c:3503 elf32-m32r.c:2331
-#: elf32-m68k.c:3929 elf32-s390.c:3072 elf32-sh.c:3672 elf32-tilepro.c:3272
-#: elf32-xtensa.c:3020 elf64-s390.c:3129 elf64-x86-64.c:4564 elfxx-sparc.c:2913
-#: elfxx-sparc.c:3810 elfxx-tilegx.c:3665 elfnn-aarch64.c:5725
-#: elfnn-aarch64.c:7343 elfnn-kvx.c:2772
+#: elf-m10300.c:2093 elf32-arm.c:13476 elf32-i386.c:3545 elf32-m32r.c:2333
+#: elf32-m68k.c:3931 elf32-s390.c:3074 elf32-sh.c:3674 elf32-tilepro.c:3274
+#: elf32-xtensa.c:3022 elf64-s390.c:3391 elf64-x86-64.c:5025 elfxx-sparc.c:2924
+#: elfxx-sparc.c:3820 elfxx-tilegx.c:3667 elfnn-aarch64.c:5743
+#: elfnn-aarch64.c:7361 elfnn-kvx.c:2773
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unresolvable %s relocation against symbol `%s'"
msgstr ""
@@ -1017,111 +1024,118 @@ msgstr ""
msgid "internal error: suspicious relocation type used in shared library"
msgstr ""
-#: elf-m10300.c:2650 elf32-avr.c:2483 elf32-frv.c:5621 elf64-ia64-vms.c:365
-#: elfxx-sparc.c:2680 reloc.c:8370 reloc16.c:155 elfnn-ia64.c:365
-msgid "%P%F: --relax and -r may not be used together\n"
-msgstr ""
+#: elf-m10300.c:2650 elf32-avr.c:2483 elf32-frv.c:5627 elf64-ia64-vms.c:365
+#: elfxx-sparc.c:2691 reloc.c:8376 reloc16.c:155 elfnn-ia64.c:365
+#, fuzzy
+msgid "%P: --relax and -r may not be used together\n"
+msgstr "opsyen untuk mencetak dan menetapkan masa tak boleh digunakan bersama"
-#: elf-properties.c:65
+#: elf-properties.c:121
#, c-format
msgid "%pB: out of memory in _bfd_elf_get_property"
msgstr ""
-#: elf-properties.c:91
+#: elf-properties.c:150
#, c-format
msgid "warning: %pB: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx"
msgstr ""
-#: elf-properties.c:112
+#: elf-properties.c:171
#, c-format
msgid "warning: %pB: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%x"
msgstr ""
-#: elf-properties.c:151
+#: elf-properties.c:210
#, c-format
msgid "warning: %pB: corrupt stack size: 0x%x"
msgstr ""
-#: elf-properties.c:169
+#: elf-properties.c:228
#, c-format
msgid "warning: %pB: corrupt no copy on protected size: 0x%x"
msgstr ""
-#: elf-properties.c:184
+#: elf-properties.c:243
#, c-format
msgid "warning: %pB: corrupt memory sealing size: 0x%x"
msgstr ""
-#: elf-properties.c:203
+#: elf-properties.c:262
#, c-format
msgid "error: %pB: <corrupt property (0x%x) size: 0x%x>"
msgstr ""
-#: elf-properties.c:228
+#: elf-properties.c:287
#, c-format
msgid "warning: %pB: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x"
msgstr ""
-#: elf-properties.c:415
+#: elf-properties.c:467
msgid "Removed property %W to merge %pB (0x%v) and %pB (0x%v)\n"
msgstr ""
-#: elf-properties.c:421
+#: elf-properties.c:473
msgid "Removed property %W to merge %pB (0x%v) and %pB (not found)\n"
msgstr ""
-#: elf-properties.c:430 elf-properties.c:508
+#: elf-properties.c:482 elf-properties.c:560
+#, fuzzy
msgid "Removed property %W to merge %pB and %pB\n"
-msgstr ""
+msgstr "%pB: gagal menggabung .rsrc: saiz .rsrc tidak dijangka"
-#: elf-properties.c:434
+#: elf-properties.c:486
msgid "Removed property %W to merge %pB and %pB (not found)\n"
msgstr ""
-#: elf-properties.c:451
+#: elf-properties.c:503
msgid "Updated property %W (0x%v) to merge %pB (0x%v) and %pB (0x%v)\n"
msgstr ""
-#: elf-properties.c:460
+#: elf-properties.c:512
msgid "Updated property %W (%v) to merge %pB (0x%v) and %pB (not found)\n"
msgstr ""
-#: elf-properties.c:502
+#: elf-properties.c:554
msgid "Removed property %W to merge %pB (not found) and %pB (0x%v)\n"
msgstr ""
-#: elf-properties.c:640 elfxx-aarch64.c:748 elfxx-x86.c:4348
-msgid "%F%P: failed to create GNU property section\n"
-msgstr ""
-
-#: elf-properties.c:644 elfxx-aarch64.c:752 elfxx-x86.c:4353
-#, fuzzy, c-format
-msgid "%F%pA: failed to align section\n"
-msgstr "%pB: gagal membaca bahagian data nyahpepijat"
+#: elf-properties.c:693 elfxx-aarch64.c:765
+#, fuzzy
+msgid "%P: failed to create %s\n"
+msgstr "Gagal mencipta direktori \"%s\""
#. Merge .note.gnu.property sections.
-#: elf-properties.c:749 elf-properties.c:751
+#: elf-properties.c:798 elf-properties.c:800
msgid "\n"
msgstr "\n"
-#: elf-properties.c:750
+#: elf-properties.c:799
#, fuzzy
msgid "Merging program properties\n"
msgstr "Tiada Penggabungan"
-#: elf-sframe.c:239
+#: elf-sframe.c:201
+#, c-format
+msgid "error in %pB(%pA); unexpected SFrame section type"
+msgstr ""
+
+#: elf-sframe.c:252
#, c-format
msgid "error in %pB(%pA); no .sframe will be created"
msgstr ""
-#: elf-sframe.c:399
+#: elf-sframe.c:426
msgid "input SFrame sections with different abi prevent .sframe generation"
msgstr ""
-#: elf-sframe.c:410
+#: elf-sframe.c:437
msgid "input SFrame sections with different format versions prevent .sframe generation"
msgstr ""
+#: elf-sframe.c:450
+msgid "SFrame sections with unexpected data encoding prevent .sframe generation"
+msgstr ""
+
#: elf.c:299
#, fuzzy, c-format
msgid "%pB: string table [%u] is corrupt"
@@ -1138,185 +1152,201 @@ msgstr ""
msgid "%pB: invalid string offset %u >= %<PRIu64> for section `%s'"
msgstr ""
-#: elf.c:511 elf32-arm.c:17773 elfnn-aarch64.c:8343 elfnn-loongarch.c:6132
-#: elfnn-riscv.c:3688
+#: elf.c:512 elf32-arm.c:17779 elfnn-aarch64.c:8361 elfnn-loongarch.c:6449
+#: elfnn-riscv.c:3885
#, c-format
msgid "%pB symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
msgstr ""
-#: elf.c:614
+#: elf.c:526
+#, c-format
+msgid "%pB symbol number %lu uses unsupported binding of %u"
+msgstr ""
+
+#: elf.c:538
+#, c-format
+msgid "%pB symbol number %lu uses unsupported type of %u"
+msgstr ""
+
+#: elf.c:641
#, fuzzy, c-format
msgid "%pB: could not read contents of group [%u]"
msgstr "Tidak dapat membaca kandungan folder"
-#: elf.c:645
+#: elf.c:672
#, c-format
msgid "%pB: invalid entry (%#x) in group [%u]"
msgstr ""
-#: elf.c:664
+#: elf.c:691
#, c-format
msgid "%pB: unexpected type (%#x) section `%s' in group [%u]"
msgstr ""
-#: elf.c:740
+#: elf.c:767
#, c-format
msgid "%pB: sh_link [%d] in section `%pA' is incorrect"
msgstr ""
-#: elf.c:769
+#: elf.c:796
#, c-format
msgid "%pB: section group entry number %u is corrupt"
msgstr ""
-#: elf.c:1051
+#: elf.c:1078
#, c-format
msgid "%pB: section %s is compressed with zstd, but BFD is not built with zstd support"
msgstr ""
-#: elf.c:1237
+#: elf.c:1264
#, c-format
msgid "%pB: invalid sh_link field (%d) in section number %d"
msgstr ""
-#: elf.c:1253
+#: elf.c:1280
#, fuzzy, c-format
msgid "%pB: failed to find link section for section %d"
msgstr "%pB: gagal membaca bahagian data nyahpepijat"
-#: elf.c:1280
+#: elf.c:1307
#, fuzzy, c-format
msgid "%pB: failed to find info section for section %d"
msgstr "%pB: gagal membaca bahagian data nyahpepijat"
-#: elf.c:1457
+#: elf.c:1484
#, fuzzy, c-format
msgid ""
"\n"
"Program Header:\n"
msgstr "Program"
-#: elf.c:1499
+#: elf.c:1526
#, fuzzy, c-format
msgid ""
"\n"
"Dynamic Section:\n"
msgstr "dinamik"
-#: elf.c:1638
+#: elf.c:1665
#, fuzzy, c-format
msgid ""
"\n"
"Version definitions:\n"
msgstr "Sedang mentakrifkan item..."
-#: elf.c:1663
+#: elf.c:1690
#, fuzzy, c-format
msgid ""
"\n"
"Version References:\n"
msgstr "Rujukan:"
-#: elf.c:1668
+#: elf.c:1695
#, fuzzy, c-format
msgid " required from %s:\n"
msgstr "diperlukan=%s"
-#: elf.c:1917
+#: elf.c:1944
#, fuzzy, c-format
msgid "%pB: DT_STRTAB table is corrupt"
msgstr "Fail nampaknya rosak. Melangkau jadual. "
-#: elf.c:2426
+#: elf.c:2451
#, c-format
msgid "%pB: warning: loop in section dependencies detected"
msgstr ""
-#: elf.c:2533
+#: elf.c:2559
#, c-format
msgid "%pB: warning: multiple symbol tables detected - ignoring the table in section %u"
msgstr ""
-#: elf.c:2618
+#: elf.c:2644
#, c-format
msgid "%pB: warning: multiple dynamic symbol tables detected - ignoring the table in section %u"
msgstr ""
-#: elf.c:2737
+#: elf.c:2763
#, c-format
msgid "%pB: invalid link %u for reloc section %s (index %u)"
msgstr ""
-#: elf.c:2794
+#: elf.c:2820
#, c-format
msgid "%pB: warning: secondary relocation section '%s' for section %pA found - ignoring"
msgstr ""
-#: elf.c:2879 elf.c:2893 elf.c:2904 elf.c:2917
+#: elf.c:2905 elf.c:2919 elf.c:2930 elf.c:2943
#, fuzzy, c-format
msgid "%pB: unknown type [%#x] section `%s'"
msgstr "Seksyen tidak diketahui: %s"
-#: elf.c:3586
+#: elf.c:3614
#, c-format
msgid "%pB: error: alignment power %d of section `%pA' is too big"
msgstr ""
-#: elf.c:3621
+#: elf.c:3649
#, c-format
msgid "warning: section `%pA' type changed to PROGBITS"
msgstr ""
-#: elf.c:4130
+#: elf.c:3981
+#, fuzzy, c-format
+msgid "%pB: corrupted group section: `%pA'"
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
+
+#: elf.c:4156
#, fuzzy, c-format
msgid "%pB: too many sections: %u"
msgstr "Terlalu banyak klien. Sambungan daripada %s:%u ditolak."
-#: elf.c:4216
+#: elf.c:4242
#, c-format
msgid "%pB: sh_link of section `%pA' points to discarded section `%pA' of `%pB'"
msgstr ""
-#: elf.c:4234
+#: elf.c:4260
#, c-format
msgid "%pB: sh_link of section `%pA' points to removed section `%pA' of `%pB'"
msgstr ""
-#: elf.c:4830
+#: elf.c:4860
#, c-format
msgid "%pB: GNU_MBIND section `%pA' has invalid sh_info field: %d"
msgstr ""
-#: elf.c:5013
-msgid "%F%P: failed to size relative relocations\n"
-msgstr ""
+#: elf.c:5043
+#, fuzzy
+msgid "%P: failed to size relative relocations\n"
+msgstr "Saiz font, relatif kepada saiz default"
-#: elf.c:5440
+#: elf.c:5470
#, fuzzy, c-format
msgid "%pB: TLS sections are not adjacent:"
msgstr "PB"
-#: elf.c:5447
+#: elf.c:5477
#, c-format
msgid "\t TLS: %pA"
msgstr "\t TLS: %pA"
-#: elf.c:5451
+#: elf.c:5481
#, fuzzy, c-format
msgid "\tnon-TLS: %pA"
msgstr "PA="
-#: elf.c:6075
+#: elf.c:6103
#, c-format
msgid "%pB: The first section in the PT_DYNAMIC segment is not the .dynamic section"
msgstr ""
-#: elf.c:6101
+#: elf.c:6129
#, c-format
msgid "%pB: not enough room for program headers, try linking with -N"
msgstr ""
-#: elf.c:6222
+#: elf.c:6256
#, c-format
msgid "%pB: section %pA lma %#<PRIx64> adjusted to %#<PRIx64>"
msgstr ""
@@ -1324,189 +1354,189 @@ msgstr ""
#. The fix for this error is usually to edit the linker script being
#. used and set up the program headers manually. Either that or
#. leave room for the headers at the start of the SECTIONS.
-#: elf.c:6362
+#: elf.c:6397
#, c-format
msgid "%pB: error: PHDR segment not covered by LOAD segment"
msgstr ""
-#: elf.c:6402
+#: elf.c:6437
#, c-format
msgid "%pB: section `%pA' can't be allocated in segment %u"
msgstr ""
-#: elf.c:6543
+#: elf.c:6575
#, c-format
msgid "%pB: warning: allocated section `%s' not in segment"
msgstr ""
-#: elf.c:6678
+#: elf.c:6710
#, c-format
msgid "%pB: warning: unable to allocate any sections to PT_GNU_RELRO segment"
msgstr ""
-#: elf.c:6709
+#: elf.c:6741
#, c-format
msgid "%pB: error: non-load segment %d includes file header and/or program header"
msgstr ""
-#: elf.c:6862
+#: elf.c:6894
#, fuzzy, c-format
msgid "error: %pB has a TLS segment with execute permission"
msgstr "Proses mempunyai keizinan untuk melakukan arahan yang terkandung di dalam segmen ingatan."
-#: elf.c:6868
+#: elf.c:6900
#, fuzzy, c-format
msgid "warning: %pB has a TLS segment with execute permission"
msgstr "Proses mempunyai keizinan untuk melakukan arahan yang terkandung di dalam segmen ingatan."
-#: elf.c:6883
+#: elf.c:6915
#, c-format
msgid "error: %pB has a LOAD segment with RWX permissions"
msgstr ""
-#: elf.c:6889
+#: elf.c:6921
#, c-format
msgid "warning: %pB has a LOAD segment with RWX permissions"
msgstr ""
-#: elf.c:7284
+#: elf.c:7316
#, fuzzy, c-format
msgid "%pB: symbol `%s' required but not present"
msgstr "Satu unsur (%s) diperlukan tidak hadir."
-#: elf.c:7661
+#: elf.c:7693
#, c-format
msgid "%pB: warning: empty loadable segment detected at vaddr=%#<PRIx64>, is this intentional?"
msgstr ""
-#: elf.c:8334
+#: elf.c:8366
#, c-format
msgid "%pB: warning: segment alignment of %#<PRIx64> is too large"
msgstr ""
-#: elf.c:8837
+#: elf.c:8848
#, c-format
msgid "%pB: Unable to handle section index %x in ELF symbol. Using ABS instead."
msgstr ""
-#: elf.c:8867
+#: elf.c:8878
#, c-format
msgid "unable to find equivalent output section for symbol '%s' from section '%s'"
msgstr ""
-#: elf.c:9300
+#: elf.c:9311
#, fuzzy, c-format
msgid "%pB: .gnu.version_r invalid entry"
msgstr "Masukan rangkaian tidak sah."
-#: elf.c:9478
+#: elf.c:9489
#, fuzzy, c-format
msgid "%pB: .gnu.version_d invalid entry"
msgstr "%d masukan"
-#: elf.c:9981
+#: elf.c:9992
#, c-format
msgid "%pB:%pA: error: attempting to write over the end of the section"
msgstr ""
-#: elf.c:9993
+#: elf.c:10004
#, c-format
msgid "%pB:%pA: error: attempting to write section into an empty buffer"
msgstr ""
-#: elf.c:10108 elf32-mcore.c:100 elf32-mcore.c:455 elf32-ppc.c:7675
-#: elf32-ppc.c:8863 elf64-ppc.c:16860
+#: elf.c:10119 elf32-mcore.c:100 elf32-mcore.c:455 elf32-ppc.c:7666
+#: elf32-ppc.c:8854 elf64-ppc.c:16870
#, fuzzy, c-format
msgid "%pB: %s unsupported"
msgstr "PB"
-#: elf.c:10923
+#: elf.c:10966
#, c-format
msgid "%pB: warning: win32pstatus %s of size %lu bytes is too small"
msgstr ""
-#: elf.c:11002
+#: elf.c:11045
#, c-format
msgid "%pB: win32pstatus NOTE_INFO_MODULE of size %lu is too small to contain a name of size %u"
msgstr ""
-#: elf.c:13640
+#: elf.c:13726
msgid "GNU_MBIND section is supported only by GNU and FreeBSD targets"
msgstr ""
-#: elf.c:13643
+#: elf.c:13729
msgid "symbol type STT_GNU_IFUNC is supported only by GNU and FreeBSD targets"
msgstr ""
-#: elf.c:13646
+#: elf.c:13732
msgid "symbol binding STB_GNU_UNIQUE is supported only by GNU and FreeBSD targets"
msgstr ""
-#: elf.c:13649
+#: elf.c:13735
msgid "GNU_RETAIN section is supported only by GNU and FreeBSD targets"
msgstr ""
-#: elf.c:13866
+#: elf.c:13952
#, c-format
msgid "%pB(%pA): relocation %zu has invalid symbol index %lu"
msgstr ""
-#: elf.c:13941
+#: elf.c:14027
#, c-format
msgid "%pB(%pA): link section cannot be set because the output file does not have a symbol table"
msgstr ""
-#: elf.c:13955
+#: elf.c:14041
#, c-format
msgid "%pB(%pA): info section index is invalid"
msgstr ""
-#: elf.c:13969
+#: elf.c:14055
#, c-format
msgid "%pB(%pA): info section index cannot be set because the section is not in the output"
msgstr ""
-#: elf.c:14045
+#: elf.c:14131
#, c-format
msgid "%pB(%pA): error: secondary reloc section processed twice"
msgstr ""
-#: elf.c:14057
+#: elf.c:14143
#, c-format
msgid "%pB(%pA): error: secondary reloc section has zero sized entries"
msgstr ""
-#: elf.c:14069
+#: elf.c:14155
#, c-format
msgid "%pB(%pA): error: secondary reloc section has non-standard sized entries"
msgstr ""
-#: elf.c:14083
+#: elf.c:14169
#, c-format
msgid "%pB(%pA): error: secondary reloc section is empty!"
msgstr ""
-#: elf.c:14106
+#: elf.c:14193
#, c-format
msgid "%pB(%pA): error: internal relocs missing for secondary reloc section"
msgstr ""
-#: elf.c:14126
+#: elf.c:14213
#, c-format
msgid "%pB(%pA): error: reloc table entry %zu is empty"
msgstr ""
-#: elf.c:14151
+#: elf.c:14238
#, c-format
msgid "%pB(%pA): error: secondary reloc %zu references a missing symbol"
msgstr ""
-#: elf.c:14169
+#: elf.c:14256
#, c-format
msgid "%pB(%pA): error: secondary reloc %zu references a deleted symbol"
msgstr ""
-#: elf.c:14183
+#: elf.c:14270
#, c-format
msgid "%pB(%pA): error: secondary reloc %zu is of an unknown type"
msgstr ""
@@ -1515,9 +1545,9 @@ msgstr ""
#. containing valid data.
#. Ignore init flag - it may not be set, despite the flags field
#. containing valid data.
-#: elf32-arc.c:454 elf32-arm.c:15194 elf32-frv.c:6612 elf32-iq2000.c:868
-#: elf32-m32c.c:914 elf32-mt.c:560 elf32-rl78.c:1275 elf32-rx.c:3218
-#: elf32-visium.c:844 elf64-ppc.c:5531 elfnn-aarch64.c:7573
+#: elf32-arc.c:454 elf32-arm.c:15198 elf32-frv.c:6618 elf32-iq2000.c:868
+#: elf32-m32c.c:915 elf32-mt.c:560 elf32-rl78.c:1275 elf32-rx.c:3218
+#: elf32-visium.c:844 elf64-ppc.c:5531 elfnn-aarch64.c:7591
#, fuzzy, c-format
msgid "private flags = 0x%lx:"
msgstr "[find_call] %s: 0x%lx ke 0x%lx\n"
@@ -1562,8 +1592,8 @@ msgstr "Konflik tindakan untuk %s"
msgid "error: attempting to link %pB with a binary %pB of different architecture"
msgstr ""
-#: elf32-arc.c:937 elf32-iq2000.c:844 elf32-m32c.c:889 elf32-m68hc1x.c:1389
-#: elf32-ppc.c:3854 elf64-sparc.c:737 elfxx-mips.c:15680
+#: elf32-arc.c:937 elf32-iq2000.c:844 elf32-m32c.c:890 elf32-m68hc1x.c:1390
+#: elf32-ppc.c:3854 elf64-sparc.c:737 elfxx-mips.c:15766
#, c-format
msgid "%pB: uses different e_flags (%#x) fields than previous modules (%#x)"
msgstr ""
@@ -1616,629 +1646,629 @@ msgstr ""
msgid "%pB(%pA): internal error: unknown error"
msgstr "Ralat dalaman: Ralat tidak diketahui"
-#: elf32-arc.c:2035 elf32-arc.c:2103 elf32-arm.c:15637 elf32-metag.c:2250
-#: elf32-nds32.c:5542 elfnn-aarch64.c:7980 elfnn-riscv.c:722
+#: elf32-arc.c:2035 elf32-arc.c:2103 elf32-arm.c:15641 elf32-metag.c:2250
+#: elf32-nds32.c:5549 elfnn-aarch64.c:7998 elfnn-riscv.c:915
#, c-format
msgid "%pB: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC"
msgstr ""
-#: elf32-arc.c:2920
+#: elf32-arc.c:2922
#, c-format
msgid "%pB: unknown mandatory ARC object attribute %d"
msgstr ""
-#: elf32-arc.c:2928
+#: elf32-arc.c:2930
#, c-format
msgid "warning: %pB: unknown ARC object attribute %d"
msgstr ""
-#: elf32-arm.c:4365 elf32-arm.c:4399 elf32-arm.c:4418 elf32-arm.c:4470
+#: elf32-arm.c:4367 elf32-arm.c:4401 elf32-arm.c:4420 elf32-arm.c:4472
#, c-format
msgid "%pB(%pA): warning: long branch veneers used in section with SHF_ARM_PURECODE section attribute is only supported for M-profile targets that implement the movw instruction"
msgstr ""
-#: elf32-arm.c:4430 elf32-arm.c:4484 elf32-arm.c:9181 elf32-arm.c:9271
+#: elf32-arm.c:4432 elf32-arm.c:4486 elf32-arm.c:9185 elf32-arm.c:9275
#, c-format
msgid "%pB(%s): warning: interworking not enabled; first occurrence: %pB: %s call to %s"
msgstr ""
-#: elf32-arm.c:4610
+#: elf32-arm.c:4612
#, c-format
msgid "ERROR: CMSE stub (%s section) too far (%#<PRIx64>) from destination (%#<PRIx64>)"
msgstr ""
-#: elf32-arm.c:4779
+#: elf32-arm.c:4781
#, c-format
msgid "no address assigned to the veneers output section %s"
msgstr ""
-#: elf32-arm.c:4854 elf32-arm.c:7003 elf32-csky.c:3385 elf32-hppa.c:581
-#: elf32-m68hc1x.c:163 elf32-metag.c:1179 elf64-ppc.c:3902 elf64-ppc.c:14175
-#: elfnn-aarch64.c:3188 elfnn-kvx.c:894
+#: elf32-arm.c:4856 elf32-arm.c:7005 elf32-csky.c:3387 elf32-hppa.c:581
+#: elf32-m68hc1x.c:163 elf32-metag.c:1179 elf64-ppc.c:3902 elf64-ppc.c:14180
+#: elfnn-aarch64.c:3200 elfnn-kvx.c:894
#, fuzzy, c-format
msgid "%pB: cannot create stub entry %s"
msgstr "%s: Tak dapat mencipta symlink ke %s"
-#: elf32-arm.c:5075 elf32-csky.c:3727 elf32-hppa.c:731 elf32-hppa.c:760
-#: elf32-hppa.c:841 elf32-m68hc11.c:422 elf32-m68hc12.c:542 elf32-metag.c:3344
-#: elf64-ppc.c:12292 elf64-ppc.c:12300 xcofflink.c:4676 elfnn-aarch64.c:3260
-msgid "%F%P: Could not assign `%pA' to an output section. Retry without --enable-non-contiguous-regions.\n"
+#: elf32-arm.c:5077 elf32-csky.c:3729 elf32-hppa.c:731 elf32-hppa.c:760
+#: elf32-hppa.c:841 elf32-m68hc11.c:422 elf32-m68hc12.c:542 elf32-metag.c:3346
+#: elf64-ppc.c:12297 elf64-ppc.c:12305 xcofflink.c:4723 elfnn-aarch64.c:3272
+msgid "%P: Could not assign `%pA' to an output section. Retry without --enable-non-contiguous-regions.\n"
msgstr ""
-#: elf32-arm.c:6046
+#: elf32-arm.c:6048
#, c-format
msgid "%pB: special symbol `%s' only allowed for ARMv8-M architecture or later"
msgstr ""
-#: elf32-arm.c:6055
+#: elf32-arm.c:6057
#, c-format
msgid "%pB: invalid special symbol `%s'; it must be a global or weak function symbol"
msgstr ""
-#: elf32-arm.c:6094
+#: elf32-arm.c:6096
#, c-format
msgid "%pB: invalid standard symbol `%s'; it must be a global or weak function symbol"
msgstr ""
-#: elf32-arm.c:6100
+#: elf32-arm.c:6102
#, fuzzy, c-format
msgid "%pB: absent standard symbol `%s'"
msgstr "%s: tiada simbol sedemikian"
-#: elf32-arm.c:6112
+#: elf32-arm.c:6114
#, c-format
msgid "%pB: `%s' and its special symbol are in different sections"
msgstr ""
-#: elf32-arm.c:6124
+#: elf32-arm.c:6126
#, fuzzy, c-format
msgid "%pB: entry function `%s' not output"
msgstr "Gagal mencari fungsi titik masukan \"%s\" dalam \"%s\": %s"
-#: elf32-arm.c:6131
+#: elf32-arm.c:6133
#, fuzzy, c-format
msgid "%pB: entry function `%s' is empty"
msgstr "Fungsi kosong"
-#: elf32-arm.c:6260
+#: elf32-arm.c:6262
#, c-format
msgid "%pB: --in-implib only supported for Secure Gateway import libraries"
msgstr ""
-#: elf32-arm.c:6309
+#: elf32-arm.c:6311
#, c-format
msgid "%pB: invalid import library entry: `%s'; symbol should be absolute, global and refer to Thumb functions"
msgstr ""
-#: elf32-arm.c:6331
+#: elf32-arm.c:6333
#, c-format
msgid "entry function `%s' disappeared from secure code"
msgstr ""
-#: elf32-arm.c:6355
+#: elf32-arm.c:6357
#, fuzzy, c-format
msgid "`%s' refers to a non entry function"
msgstr "Tuju atau hubungan merujuk pada anak yang tidak wujud"
-#: elf32-arm.c:6370
+#: elf32-arm.c:6372
#, fuzzy, c-format
msgid "%pB: visibility of symbol `%s' has changed"
msgstr "Format mel setempat Evolution telah berubah."
-#: elf32-arm.c:6379
+#: elf32-arm.c:6381
#, fuzzy, c-format
msgid "%pB: incorrect size for symbol `%s'"
-msgstr "Tetapkan &saiz simbol"
+msgstr "%pB: gagal menggabung .rsrc: saiz .rsrc tidak dijangka"
-#: elf32-arm.c:6398
+#: elf32-arm.c:6400
#, c-format
msgid "offset of veneer for entry function `%s' not a multiple of its size"
msgstr ""
-#: elf32-arm.c:6418
+#: elf32-arm.c:6420
msgid "new entry function(s) introduced but no output import library specified:"
msgstr ""
-#: elf32-arm.c:6426
+#: elf32-arm.c:6428
#, c-format
msgid "start address of `%s' is different from previous link"
msgstr ""
-#: elf32-arm.c:7137 elf32-arm.c:7175
+#: elf32-arm.c:7140 elf32-arm.c:7178
#, fuzzy, c-format
msgid "unable to find %s glue '%s' for '%s'"
msgstr "Tak menjumpai fail include: \"%s\""
-#: elf32-arm.c:7886
+#: elf32-arm.c:7890
#, c-format
msgid "%pB: BE8 images only valid in big-endian mode"
msgstr ""
#. Give a warning, but do as the user requests anyway.
-#: elf32-arm.c:8114
+#: elf32-arm.c:8118
#, c-format
msgid "%pB: warning: selected VFP11 erratum workaround is not necessary for target architecture"
msgstr ""
-#: elf32-arm.c:8141
+#: elf32-arm.c:8145
#, c-format
msgid "%pB: warning: selected STM32L4XX erratum workaround is not necessary for target architecture"
msgstr ""
-#: elf32-arm.c:8677 elf32-arm.c:8697 elf32-arm.c:8764 elf32-arm.c:8783
+#: elf32-arm.c:8681 elf32-arm.c:8701 elf32-arm.c:8768 elf32-arm.c:8787
#, fuzzy, c-format
msgid "%pB: unable to find %s veneer `%s'"
msgstr "Tidak dapat mencari \"%s\""
-#: elf32-arm.c:8990
+#: elf32-arm.c:8994
#, c-format
msgid "%pB(%pA+%#x): error: multiple load detected in non-last IT block instruction: STM32L4XX veneer cannot be generated; use gcc option -mrestrict-it to generate only one instruction per IT block"
msgstr ""
-#: elf32-arm.c:9088
+#: elf32-arm.c:9092
#, fuzzy, c-format
msgid "invalid TARGET2 relocation type '%s'"
msgstr "Indeks tidak sah untuk jenis %s untuk jenis asa %s"
#. FIXME: We ought to be able to generate thumb-1 PLT
#. instructions...
-#: elf32-arm.c:9857
+#: elf32-arm.c:9861
#, c-format
msgid "%pB: warning: thumb-1 mode PLT generation not currently supported"
msgstr ""
-#: elf32-arm.c:10166 elf32-arm.c:10208
+#: elf32-arm.c:10170 elf32-arm.c:10212
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' in TLS trampoline"
msgstr ""
-#: elf32-arm.c:10489
+#: elf32-arm.c:10493
#, c-format
msgid "warning: %pB(%s): Forcing bramch to absolute symbol in Thumb mode (Thumb-only CPU) in %pB"
msgstr ""
-#: elf32-arm.c:10494
+#: elf32-arm.c:10498
#, c-format
msgid "warning: (%s): Forcing branch to absolute symbol in Thumb mode (Thumb-only CPU) in %pB"
msgstr ""
-#: elf32-arm.c:10523
+#: elf32-arm.c:10527
#, c-format
msgid "%pB(%s): Unknown destination type (ARM/Thumb) in %pB"
msgstr ""
-#: elf32-arm.c:10527
+#: elf32-arm.c:10531
#, c-format
msgid "(%s): Unknown destination type (ARM/Thumb) in %pB"
msgstr ""
-#: elf32-arm.c:10615
+#: elf32-arm.c:10619
#, fuzzy
msgid "shared object"
msgstr "objek memori terkongsi"
-#: elf32-arm.c:10618
+#: elf32-arm.c:10622
#, fuzzy
msgid "PIE executable"
msgstr "Pai"
-#: elf32-arm.c:10621
+#: elf32-arm.c:10625
#, c-format
msgid "%pB: relocation %s against external or undefined symbol `%s' can not be used when making a %s; recompile with -fPIC"
msgstr ""
-#: elf32-arm.c:10723
+#: elf32-arm.c:10727
#, c-format
msgid "\\%pB: warning: %s BLX instruction targets %s function '%s'"
msgstr ""
-#: elf32-arm.c:11140
+#: elf32-arm.c:11144
#, c-format
msgid "%pB: warning: %s BLX instruction targets %s function '%s'"
msgstr ""
-#: elf32-arm.c:11774
+#: elf32-arm.c:11778
#, c-format
msgid "%pB: expected symbol index in range 0..%lu but found local symbol with index %lu"
msgstr ""
-#: elf32-arm.c:12049 elf32-arm.c:12075
+#: elf32-arm.c:12053 elf32-arm.c:12079
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' referenced by TLS_GOTDESC"
msgstr ""
-#: elf32-arm.c:12121 elf32-csky.c:4955 elf32-m68k.c:3733 elf32-metag.c:1912
+#: elf32-arm.c:12125 elf32-csky.c:4958 elf32-m68k.c:3735 elf32-metag.c:1912
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s relocation not permitted in shared object"
msgstr ""
-#: elf32-arm.c:12335
+#: elf32-arm.c:12339
#, c-format
msgid "%pB(%pA+%#<PRIx64>): only ADD or SUB instructions are allowed for ALU group relocations"
msgstr ""
-#: elf32-arm.c:12376 elf32-arm.c:12468 elf32-arm.c:12556 elf32-arm.c:12646
+#: elf32-arm.c:12380 elf32-arm.c:12472 elf32-arm.c:12560 elf32-arm.c:12650
#, c-format
msgid "%pB(%pA+%#<PRIx64>): overflow whilst splitting %#<PRIx64> for group relocation %s"
msgstr ""
-#: elf32-arm.c:12704 elf32-arm.c:12863
+#: elf32-arm.c:12708 elf32-arm.c:12867
#, fuzzy
msgid "local symbol index too big"
msgstr "Tiada simbol untuk indeks"
-#: elf32-arm.c:12714 elf32-arm.c:12748
+#: elf32-arm.c:12718 elf32-arm.c:12752
#, fuzzy
msgid "no dynamic index information available"
msgstr "Tidak tersedia bila menggunakan senarai main dinamik"
-#: elf32-arm.c:12756
+#: elf32-arm.c:12760
#, fuzzy
msgid "invalid dynamic index"
msgstr "ICO: Indeks ikon tidak sah."
-#: elf32-arm.c:12873
+#: elf32-arm.c:12877
#, fuzzy
msgid "dynamic index information not available"
msgstr "Tidak tersedia bila menggunakan senarai main dinamik"
-#: elf32-arm.c:13304 elf32-sh.c:3566
+#: elf32-arm.c:13308 elf32-sh.c:3568
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s relocation against SEC_MERGE section"
msgstr ""
-#: elf32-arm.c:13417 elf32-m68k.c:3966 elf32-xtensa.c:2758 elfnn-aarch64.c:7070
-#: elfnn-kvx.c:2568
+#: elf32-arm.c:13421 elf32-m68k.c:3968 elf32-xtensa.c:2760 elfnn-aarch64.c:7088
+#: elfnn-kvx.c:2569
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s used with TLS symbol %s"
msgstr ""
-#: elf32-arm.c:13419 elf32-m68k.c:3968 elf32-xtensa.c:2760 elfnn-aarch64.c:7072
-#: elfnn-kvx.c:2570
+#: elf32-arm.c:13423 elf32-m68k.c:3970 elf32-xtensa.c:2762 elfnn-aarch64.c:7090
+#: elfnn-kvx.c:2571
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s used with non-TLS symbol %s"
msgstr ""
-#: elf32-arm.c:13502 elf32-tic6x.c:2641 elfnn-aarch64.c:7407 elfnn-kvx.c:2797
+#: elf32-arm.c:13506 elf32-tic6x.c:2641 elfnn-aarch64.c:7425 elfnn-kvx.c:2798
#, fuzzy
msgid "out of range"
msgstr "Diluar Julat"
-#: elf32-arm.c:13506 elf32-pru.c:936 elf32-tic6x.c:2645 elfnn-aarch64.c:7411
-#: elfnn-kvx.c:2801
+#: elf32-arm.c:13510 elf32-pru.c:936 elf32-tic6x.c:2645 elfnn-aarch64.c:7429
+#: elfnn-kvx.c:2802
#, fuzzy
msgid "unsupported relocation"
msgstr " (tidak disokong)"
-#: elf32-arm.c:13514 elf32-pru.c:946 elf32-tic6x.c:2653 elfnn-aarch64.c:7419
-#: elfnn-kvx.c:2809
+#: elf32-arm.c:13518 elf32-pru.c:946 elf32-tic6x.c:2653 elfnn-aarch64.c:7437
+#: elfnn-kvx.c:2810
msgid "unknown error"
msgstr "ralat tidak diketahui"
-#: elf32-arm.c:13991
+#: elf32-arm.c:13995
#, c-format
msgid "warning: not setting interworking flag of %pB since it has already been specified as non-interworking"
msgstr ""
-#: elf32-arm.c:13995
+#: elf32-arm.c:13999
#, c-format
msgid "warning: clearing the interworking flag of %pB due to outside request"
msgstr ""
-#: elf32-arm.c:14040
+#: elf32-arm.c:14044
#, c-format
msgid "warning: clearing the interworking flag of %pB because non-interworking code in %pB has been linked with it"
msgstr ""
-#: elf32-arm.c:14127
+#: elf32-arm.c:14131
#, c-format
msgid "%pB: unknown mandatory EABI object attribute %d"
msgstr ""
-#: elf32-arm.c:14135
+#: elf32-arm.c:14139
#, c-format
msgid "warning: %pB: unknown EABI object attribute %d"
msgstr ""
-#: elf32-arm.c:14470
+#: elf32-arm.c:14474
#, fuzzy, c-format
msgid "error: %pB: unknown CPU architecture"
msgstr "Ralat tidak diketahui"
-#: elf32-arm.c:14508
+#: elf32-arm.c:14512
#, c-format
msgid "error: conflicting CPU architectures %s vs %s in %pB"
msgstr ""
-#: elf32-arm.c:14605
+#: elf32-arm.c:14609
#, c-format
msgid "Error: %pB has both the current and legacy Tag_MPextension_use attributes"
msgstr ""
-#: elf32-arm.c:14642
+#: elf32-arm.c:14646
#, c-format
msgid "error: %pB uses VFP register arguments, %pB does not"
msgstr ""
-#: elf32-arm.c:14812
+#: elf32-arm.c:14816
#, c-format
msgid "error: %pB: unable to merge virtualization attributes with %pB"
msgstr ""
-#: elf32-arm.c:14838
+#: elf32-arm.c:14842
#, c-format
msgid "error: %pB: conflicting architecture profiles %c/%c"
msgstr ""
-#: elf32-arm.c:14977
+#: elf32-arm.c:14981
#, fuzzy, c-format
msgid "warning: %pB: conflicting platform configuration"
msgstr "Kunci berkonflik dari Conflict1 yang sepatutnya beri satu amaran"
-#: elf32-arm.c:14986
+#: elf32-arm.c:14990
#, fuzzy, c-format
msgid "error: %pB: conflicting use of R9"
msgstr "Kunci berkonflik dengan julat 0~5 yang sepatutnya berikan satu ralat"
-#: elf32-arm.c:14998
+#: elf32-arm.c:15002
#, c-format
msgid "error: %pB: SB relative addressing conflicts with use of R9"
msgstr ""
-#: elf32-arm.c:15011
+#: elf32-arm.c:15015
#, c-format
msgid "warning: %pB uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may fail"
msgstr ""
-#: elf32-arm.c:15042
+#: elf32-arm.c:15046
#, c-format
msgid "warning: %pB uses %s enums yet the output is to use %s enums; use of enum values across objects may fail"
msgstr ""
-#: elf32-arm.c:15054
+#: elf32-arm.c:15058
#, c-format
msgid "error: %pB uses iWMMXt register arguments, %pB does not"
msgstr ""
-#: elf32-arm.c:15071
+#: elf32-arm.c:15075
#, c-format
msgid "error: fp16 format mismatch between %pB and %pB"
msgstr ""
-#: elf32-arm.c:15107
+#: elf32-arm.c:15111
#, c-format
msgid "%pB has both the current and legacy Tag_MPextension_use attributes"
msgstr ""
-#: elf32-arm.c:15203
+#: elf32-arm.c:15207
#, fuzzy, c-format
msgid " [interworking enabled]"
msgstr "tidak dihidupkan"
-#: elf32-arm.c:15211
+#: elf32-arm.c:15215
#, fuzzy, c-format
msgid " [VFP float format]"
msgstr "apung"
-#: elf32-arm.c:15213
+#: elf32-arm.c:15217
#, fuzzy, c-format
msgid " [FPA float format]"
msgstr "apung"
-#: elf32-arm.c:15216
+#: elf32-arm.c:15220
#, fuzzy, c-format
msgid " [floats passed in float registers]"
msgstr "&Daftar"
-#: elf32-arm.c:15219 elf32-arm.c:15304
+#: elf32-arm.c:15223 elf32-arm.c:15308
#, fuzzy, c-format
msgid " [position independent]"
msgstr "Dokumen bebas"
-#: elf32-arm.c:15222
+#: elf32-arm.c:15226
#, fuzzy, c-format
msgid " [new ABI]"
msgstr "Baharu"
-#: elf32-arm.c:15225
+#: elf32-arm.c:15229
#, fuzzy, c-format
msgid " [old ABI]"
msgstr " tua "
-#: elf32-arm.c:15228
+#: elf32-arm.c:15232
#, fuzzy, c-format
msgid " [software FP]"
msgstr "Segerak FP dibenarkan"
-#: elf32-arm.c:15236
+#: elf32-arm.c:15240
#, c-format
msgid " [Version1 EABI]"
msgstr ""
-#: elf32-arm.c:15239 elf32-arm.c:15250
+#: elf32-arm.c:15243 elf32-arm.c:15254
#, fuzzy, c-format
msgid " [sorted symbol table]"
msgstr "Simbol"
-#: elf32-arm.c:15241 elf32-arm.c:15252
+#: elf32-arm.c:15245 elf32-arm.c:15256
#, fuzzy, c-format
msgid " [unsorted symbol table]"
msgstr "Tidak Diisih"
-#: elf32-arm.c:15247
+#: elf32-arm.c:15251
#, c-format
msgid " [Version2 EABI]"
msgstr ""
-#: elf32-arm.c:15255
+#: elf32-arm.c:15259
#, fuzzy, c-format
msgid " [dynamic symbols use segment index]"
msgstr "Guna kodek bab ditemui dalam segmen."
-#: elf32-arm.c:15258
+#: elf32-arm.c:15262
#, fuzzy, c-format
msgid " [mapping symbols precede others]"
msgstr "Simbol"
-#: elf32-arm.c:15265
+#: elf32-arm.c:15269
#, c-format
msgid " [Version3 EABI]"
msgstr ""
-#: elf32-arm.c:15269
+#: elf32-arm.c:15273
#, c-format
msgid " [Version4 EABI]"
msgstr ""
-#: elf32-arm.c:15273
+#: elf32-arm.c:15277
#, c-format
msgid " [Version5 EABI]"
msgstr ""
-#: elf32-arm.c:15276
+#: elf32-arm.c:15280
#, fuzzy, c-format
msgid " [soft-float ABI]"
msgstr "Soft"
-#: elf32-arm.c:15279
+#: elf32-arm.c:15283
#, fuzzy, c-format
msgid " [hard-float ABI]"
msgstr "Sukar"
-#: elf32-arm.c:15285
+#: elf32-arm.c:15289
#, c-format
msgid " [BE8]"
msgstr " [BE8]"
-#: elf32-arm.c:15288
+#: elf32-arm.c:15292
#, c-format
msgid " [LE8]"
msgstr " [LE8]"
-#: elf32-arm.c:15294
+#: elf32-arm.c:15298
#, fuzzy, c-format
msgid " <EABI version unrecognised>"
msgstr ""
"perintah tidak dikenali: %s\n"
"\n"
-#: elf32-arm.c:15301
+#: elf32-arm.c:15305
#, fuzzy, c-format
msgid " [relocatable executable]"
msgstr "Skema boleh letak semula"
-#: elf32-arm.c:15307
+#: elf32-arm.c:15311
#, fuzzy, c-format
msgid " [FDPIC ABI supplement]"
msgstr "Latin-1 Tambahan"
-#: elf32-arm.c:15312 elfnn-aarch64.c:7576
+#: elf32-arm.c:15316 elfnn-aarch64.c:7594
#, fuzzy, c-format
msgid " <Unrecognised flag bits set>"
msgstr "Alamat mempunyai set bit melangkaui panjang awalan"
-#: elf32-arm.c:15420 elf32-arm.c:15554 elf32-i386.c:1545 elf32-s390.c:921
-#: elf32-tic6x.c:2716 elf32-tilepro.c:1433 elf32-xtensa.c:1088 elf64-s390.c:843
-#: elf64-x86-64.c:2173 elfxx-sparc.c:1385 elfxx-tilegx.c:1661 elfxx-x86.c:971
-#: elfnn-aarch64.c:7847 elfnn-kvx.c:3247 elfnn-loongarch.c:952
-#: elfnn-riscv.c:766
+#: elf32-arm.c:15424 elf32-arm.c:15558 elf32-i386.c:1576 elf32-s390.c:921
+#: elf32-tic6x.c:2716 elf32-tilepro.c:1433 elf32-xtensa.c:1088 elf64-s390.c:924
+#: elf64-x86-64.c:2550 elfxx-sparc.c:1385 elfxx-tilegx.c:1661 elfxx-x86.c:962
+#: elfnn-aarch64.c:7865 elfnn-kvx.c:3248 elfnn-loongarch.c:961
+#: elfnn-riscv.c:959
#, fuzzy, c-format
msgid "%pB: bad symbol index: %d"
msgstr "Tiada simbol untuk indeks"
-#: elf32-arm.c:15810
+#: elf32-arm.c:15814
#, c-format
msgid "FDPIC does not yet support %s relocation to become dynamic for executable"
msgstr ""
-#: elf32-arm.c:17072
+#: elf32-arm.c:17077
#, fuzzy, c-format
msgid "errors encountered processing file %pB"
msgstr "end-of-file tak matang berlaku"
-#: elf32-arm.c:17442 elflink.c:13533 elflink.c:13580
+#: elf32-arm.c:17448 elflink.c:13605 elflink.c:13652
#, fuzzy, c-format
msgid "could not find section %s"
msgstr "Gagal mencipta sesi sftp: %s"
-#: elf32-arm.c:18397
+#: elf32-arm.c:18406
#, c-format
msgid "%pB: Number of symbols in input file has increased from %lu to %u\n"
msgstr ""
-#: elf32-arm.c:18655
+#: elf32-arm.c:18664
#, c-format
msgid "%pB: error: Cortex-A8 erratum stub is allocated in unsafe location"
msgstr ""
#. There's not much we can do apart from complain if this
#. happens.
-#: elf32-arm.c:18682
+#: elf32-arm.c:18691
#, c-format
msgid "%pB: error: Cortex-A8 erratum stub out of range (input file too large)"
msgstr ""
-#: elf32-arm.c:19509 elf32-arm.c:19531
+#: elf32-arm.c:19518 elf32-arm.c:19540
#, fuzzy, c-format
msgid "%pB: error: VFP11 veneer out of range"
msgstr "Ralat kaji hurai: Nombor terkeluar dari Julat (mesti kecil daripada %1)"
-#: elf32-arm.c:19582
+#: elf32-arm.c:19591
#, c-format
msgid "%pB(%#<PRIx64>): error: cannot create STM32L4XX veneer; jump out of range by %<PRId64> bytes; cannot encode branch instruction"
msgstr ""
-#: elf32-arm.c:19621
+#: elf32-arm.c:19630
#, fuzzy, c-format
msgid "%pB: error: cannot create STM32L4XX veneer"
msgstr "Ralat: Tidak dapat cipta fail sementara: %s\n"
-#: elf32-arm.c:20704
+#: elf32-arm.c:20713
#, c-format
msgid "error: %pB is already in final BE8 format"
msgstr ""
-#: elf32-arm.c:20781
+#: elf32-arm.c:20790
#, c-format
msgid "error: source object %pB has EABI version %d, but target %pB has EABI version %d"
msgstr ""
-#: elf32-arm.c:20796
+#: elf32-arm.c:20805
#, c-format
msgid "error: %pB is compiled for APCS-%d, whereas target %pB uses APCS-%d"
msgstr ""
-#: elf32-arm.c:20806
+#: elf32-arm.c:20815
#, c-format
msgid "error: %pB passes floats in float registers, whereas %pB passes them in integer registers"
msgstr ""
-#: elf32-arm.c:20810
+#: elf32-arm.c:20819
#, c-format
msgid "error: %pB passes floats in integer registers, whereas %pB passes them in float registers"
msgstr ""
-#: elf32-arm.c:20820 elf32-arm.c:20824
+#: elf32-arm.c:20829 elf32-arm.c:20833
#, c-format
msgid "error: %pB uses %s instructions, whereas %pB does not"
msgstr ""
-#: elf32-arm.c:20843
+#: elf32-arm.c:20852
#, c-format
msgid "error: %pB uses software FP, whereas %pB uses hardware FP"
msgstr ""
-#: elf32-arm.c:20847
+#: elf32-arm.c:20856
#, c-format
msgid "error: %pB uses hardware FP, whereas %pB uses software FP"
msgstr ""
-#: elf32-arm.c:20861
+#: elf32-arm.c:20870
#, c-format
msgid "warning: %pB supports interworking, whereas %pB does not"
msgstr ""
-#: elf32-arm.c:20867
+#: elf32-arm.c:20876
#, c-format
msgid "warning: %pB does not support interworking, whereas %pB does"
msgstr ""
@@ -2255,10 +2285,10 @@ msgstr ""
msgid "%X%H: %s against `%s': internal error: unexpected relocation result %d\n"
msgstr ""
-#: elf32-avr.c:3335 elfnn-aarch64.c:3219
+#: elf32-avr.c:3335 elfnn-aarch64.c:3231
#, fuzzy, c-format
msgid "cannot create stub entry %s"
-msgstr "Tidak dapat cipta folder '%s'"
+msgstr "%s: Tak dapat mencipta symlink ke %s"
#: elf32-bfin.c:107 elf32-bfin.c:364
#, fuzzy
@@ -2270,8 +2300,8 @@ msgstr "Jumlah aksara genap diperlukan"
msgid "%pB(%pA+%#<PRIx64>): unresolvable relocation against symbol `%s'"
msgstr ""
-#: elf32-bfin.c:1621 elf32-i386.c:3543 elf32-m68k.c:4006 elf32-s390.c:3130
-#: elf64-s390.c:3205 elf64-x86-64.c:4619
+#: elf32-bfin.c:1621 elf32-i386.c:3585 elf32-m68k.c:4008 elf32-s390.c:3132
+#: elf64-s390.c:3468 elf64-x86-64.c:5080
#, c-format
msgid "%pB(%pA+%#<PRIx64>): reloc against `%s': error %d"
msgstr ""
@@ -2295,7 +2325,7 @@ msgstr ""
msgid "cannot emit fixups in read-only section"
msgstr "Peristiwa tidak boleh disunting, kerana kalendar terpilih adalah baca sahaja"
-#: elf32-bfin.c:2831 elf32-bfin.c:2959 elf32-lm32.c:1006 elf32-sh.c:4384
+#: elf32-bfin.c:2831 elf32-bfin.c:2959 elf32-lm32.c:1006 elf32-sh.c:4386
msgid "cannot emit dynamic relocations in read-only section"
msgstr ""
@@ -2315,41 +2345,41 @@ msgstr ""
#: elf32-bfin.c:3140 elf32-cris.c:2041 elf32-epiphany.c:574 elf32-fr30.c:602
#: elf32-frv.c:4056 elf32-ft32.c:500 elf32-ip2k.c:1489 elf32-iq2000.c:699
#: elf32-m32c.c:632 elf32-mep.c:530 elf32-metag.c:1991 elf32-moxie.c:296
-#: elf32-msp430.c:1514 elf32-mt.c:406 elf32-or1k.c:1903 elf32-tilepro.c:3377
-#: elf32-v850.c:2305 elf32-visium.c:688 elf32-xstormy16.c:938 elf64-bpf.c:348
-#: elf64-mmix.c:1545 elfxx-tilegx.c:3750
+#: elf32-msp430.c:1514 elf32-mt.c:406 elf32-or1k.c:1903 elf32-tilepro.c:3379
+#: elf32-v850.c:2305 elf32-visium.c:688 elf32-xstormy16.c:939 elf64-bpf.c:348
+#: elf64-mmix.c:1545 elfxx-tilegx.c:3752
#, fuzzy
msgid "internal error: dangerous relocation"
msgstr "Ralat dalaman: Ralat tidak diketahui"
#. Ignore init flag - it may not be set, despite the flags field containing valid data.
-#: elf32-bfin.c:4728 elf32-cris.c:3860 elf32-m68hc1x.c:1414 elf32-m68k.c:1264
-#: elf32-score.c:3984 elf32-score7.c:3791 elf32-vax.c:534 elf32-xgate.c:494
-#: elfxx-mips.c:16366
+#: elf32-bfin.c:4734 elf32-cris.c:3862 elf32-m68hc1x.c:1415 elf32-m68k.c:1264
+#: elf32-score.c:3986 elf32-score7.c:3793 elf32-vax.c:534 elf32-xgate.c:494
+#: elfxx-mips.c:16452
#, fuzzy, c-format
msgid "private flags = %lx:"
msgstr "Persendirian"
-#: elf32-bfin.c:4779 elf32-frv.c:6585
+#: elf32-bfin.c:4785 elf32-frv.c:6591
#, c-format
msgid "%pB: cannot link non-fdpic object file into fdpic executable"
msgstr ""
-#: elf32-bfin.c:4783 elf32-frv.c:6589
+#: elf32-bfin.c:4789 elf32-frv.c:6595
#, c-format
msgid "%pB: cannot link fdpic object file into non-fdpic executable"
msgstr ""
-#: elf32-bfin.c:4919
+#: elf32-bfin.c:4925
#, fuzzy, c-format
msgid "*** check this relocation %s"
msgstr "Tidak dapat memeriksa folder: %s: %s"
-#: elf32-bfin.c:5034
+#: elf32-bfin.c:5040
msgid "the bfin target does not currently support the generation of copy relocations"
msgstr ""
-#: elf32-bfin.c:5329 elf32-cr16.c:2720 elf32-m68k.c:4420
+#: elf32-bfin.c:5335 elf32-cr16.c:2723 elf32-m68k.c:4423
#, fuzzy
msgid "unsupported relocation type"
msgstr "Jenis Python tidak disokong: %s"
@@ -2436,98 +2466,98 @@ msgstr ""
msgid "%pB, section %pA: relocation %s should not be used in a shared object; recompile with -fPIC"
msgstr ""
-#: elf32-cris.c:3699
+#: elf32-cris.c:3701
#, c-format
msgid "%pB, section `%pA', to symbol `%s': relocation %s should not be used in a shared object; recompile with -fPIC"
msgstr ""
-#: elf32-cris.c:3811
+#: elf32-cris.c:3813
#, fuzzy
msgid "unexpected machine number"
msgstr "Nombor pemacu %1 tak dijangka."
-#: elf32-cris.c:3863
+#: elf32-cris.c:3865
#, fuzzy, c-format
msgid " [symbols have a _ prefix]"
msgstr "Pengenalpasti pulsar mempunyai awalan 'PSR'"
-#: elf32-cris.c:3866
+#: elf32-cris.c:3868
#, c-format
msgid " [v10 and v32]"
msgstr ""
-#: elf32-cris.c:3869
+#: elf32-cris.c:3871
#, c-format
msgid " [v32]"
msgstr " [v32]"
-#: elf32-cris.c:3913
+#: elf32-cris.c:3915
#, c-format
msgid "%pB: uses _-prefixed symbols, but writing file with non-prefixed symbols"
msgstr ""
-#: elf32-cris.c:3914
+#: elf32-cris.c:3916
#, c-format
msgid "%pB: uses non-prefixed symbols, but writing file with _-prefixed symbols"
msgstr ""
-#: elf32-cris.c:3933
+#: elf32-cris.c:3935
#, c-format
msgid "%pB contains CRIS v32 code, incompatible with previous objects"
msgstr ""
-#: elf32-cris.c:3935
+#: elf32-cris.c:3937
#, c-format
msgid "%pB contains non-CRIS-v32 code, incompatible with previous objects"
msgstr ""
-#: elf32-csky.c:2016
+#: elf32-csky.c:2017
#, fuzzy
msgid "GOT table size out of range"
msgstr "Diluar Julat"
-#: elf32-csky.c:2826
+#: elf32-csky.c:2828
#, c-format
msgid "warning: unrecognized arch eflag '%#lx'"
msgstr ""
-#: elf32-csky.c:2849
+#: elf32-csky.c:2851
#, fuzzy, c-format
msgid "warning: unrecognised arch name '%#x'"
msgstr "nama (x,y)"
-#: elf32-csky.c:2914 elf32-csky.c:3074
+#: elf32-csky.c:2916 elf32-csky.c:3076
#, c-format
msgid "%pB: machine flag conflict with target"
msgstr ""
-#: elf32-csky.c:2927
+#: elf32-csky.c:2929
#, c-format
msgid "warning: file %pB's arch flag %s conflict with target %s,set target arch flag to %s"
msgstr ""
-#: elf32-csky.c:2956
+#: elf32-csky.c:2958
#, c-format
msgid "Error: %pB and %pB has different VDSP version"
msgstr ""
-#: elf32-csky.c:2973
+#: elf32-csky.c:2975
#, c-format
msgid "Error: %pB and %pB has different DSP version"
msgstr ""
-#: elf32-csky.c:2991
+#: elf32-csky.c:2993
#, c-format
msgid "Error: %pB and %pB has different FPU ABI"
msgstr ""
-#: elf32-csky.c:3088
+#: elf32-csky.c:3090
#, c-format
msgid "warning: file %pB's arch flag %s conflicts with target ck%s, using %s"
msgstr ""
#. The r_type is error, not support it.
-#: elf32-csky.c:4327 elf32-i386.c:344
+#: elf32-csky.c:4330 elf32-i386.c:344
#, fuzzy, c-format
msgid "%pB: unsupported relocation type: %#x"
msgstr "TYPE(x)"
@@ -2631,17 +2661,17 @@ msgstr ""
msgid "%H: reloc against `%s': %s\n"
msgstr "%s j %s"
-#: elf32-frv.c:6496
+#: elf32-frv.c:6502
#, c-format
msgid "%pB: compiled with %s and linked with modules that use non-pic relocations"
msgstr ""
-#: elf32-frv.c:6550 elf32-iq2000.c:830 elf32-m32c.c:876
+#: elf32-frv.c:6556 elf32-iq2000.c:830 elf32-m32c.c:877
#, fuzzy, c-format
msgid "%pB: compiled with %s and linked with modules compiled with %s"
msgstr "Dia Versi %s dikompil %s, %s\n"
-#: elf32-frv.c:6563
+#: elf32-frv.c:6569
#, c-format
msgid "%pB: uses different unknown e_flags (%#x) fields than previous modules (%#x)"
msgstr ""
@@ -2651,7 +2681,7 @@ msgstr ""
msgid "%pB: relocations in generic ELF (EM: %d)"
msgstr ""
-#: elf32-hppa.c:862 elf32-hppa.c:3402
+#: elf32-hppa.c:862 elf32-hppa.c:3403
#, c-format
msgid "%pB(%pA+%#<PRIx64>): cannot reach %s, recompile with -ffunction-sections"
msgstr ""
@@ -2666,112 +2696,118 @@ msgstr ""
msgid "%pB: duplicate export stub %s"
msgstr "%s Pb"
-#: elf32-hppa.c:3235
+#: elf32-hppa.c:3236
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s fixup for insn %#x is not supported in a non-shared link"
msgstr ""
-#: elf32-hppa.c:3455
+#: elf32-hppa.c:3456
#, c-format
msgid "%pB(%pA+%#<PRIx64>): displacement %#x for insn %#x is not a multiple of 8 (gp %#x)"
msgstr ""
-#: elf32-hppa.c:3474
+#: elf32-hppa.c:3475
#, c-format
msgid "%pB(%pA+%#<PRIx64>): displacement %#x for insn %#x is not a multiple of 4 (gp %#x)"
msgstr ""
-#: elf32-hppa.c:4089
+#: elf32-hppa.c:4090
#, c-format
msgid "%s has both normal and TLS relocs"
msgstr ""
-#: elf32-hppa.c:4107
+#: elf32-hppa.c:4108
#, c-format
msgid "%pB:%s has both normal and TLS relocs"
msgstr ""
-#: elf32-hppa.c:4166
+#: elf32-hppa.c:4167
#, fuzzy, c-format
msgid "%pB(%pA+%#<PRIx64>): cannot handle %s for %s"
msgstr "Caja tidak dapat mengendali lokasi \"%s\"."
-#: elf32-hppa.c:4470
+#: elf32-hppa.c:4471
msgid ".got section not immediately after .plt section"
msgstr ""
-#: elf32-i386.c:1296
+#: elf32-i386.c:1300
#, c-format
msgid "%pB: direct GOT relocation R_386_GOT32X against `%s' without base register can not be used when making a shared object"
msgstr ""
-#: elf32-i386.c:1729 elf32-s390.c:1149 elf32-sh.c:5498 elf32-tilepro.c:1546
-#: elf32-xtensa.c:1261 elf64-s390.c:1081 elfxx-sparc.c:1555 elfxx-tilegx.c:1766
-#: elfnn-loongarch.c:741 elfnn-riscv.c:673
+#: elf32-i386.c:1586
+#, c-format
+msgid "%pB: bad reloc offset (%#<PRIx32> > %#<PRIx32>) for section `%pA'"
+msgstr ""
+
+#: elf32-i386.c:1771 elf32-s390.c:1149 elf32-sh.c:5500 elf32-tilepro.c:1546
+#: elf32-xtensa.c:1261 elf64-s390.c:1162 elfxx-sparc.c:1565 elfxx-tilegx.c:1766
+#: elfnn-loongarch.c:750 elfnn-riscv.c:866
#, c-format
msgid "%pB: `%s' accessed both as normal and thread local symbol"
msgstr ""
-#: elf32-i386.c:1801
+#: elf32-i386.c:1843
#, c-format
msgid "%pB: unsupported non-PIC call to IFUNC `%s'"
msgstr ""
-#: elf32-i386.c:1856 elf64-x86-64.c:2567
+#: elf32-i386.c:1898 elf64-x86-64.c:2964
#, c-format
msgid "%pB: non-canonical reference to canonical protected function `%s' in %pB"
msgstr ""
-#: elf32-i386.c:2419 elf64-x86-64.c:3050 elfnn-riscv.c:2544
+#: elf32-i386.c:2461 elf64-x86-64.c:3446 elfnn-riscv.c:2742
#, c-format
msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported"
msgstr ""
-#: elf32-i386.c:2452 elf32-i386.c:3752 elf32-i386.c:3900 elf64-x86-64.c:3107
-#: elf64-x86-64.c:4790 elf64-x86-64.c:4958 elfnn-riscv.c:2406
-#: elfnn-riscv.c:3318 elfnn-riscv.c:3392
+#: elf32-i386.c:2494 elf32-i386.c:3794 elf32-i386.c:3942 elf64-x86-64.c:3503
+#: elf64-x86-64.c:5254 elf64-x86-64.c:5425 elfnn-riscv.c:2604
+#: elfnn-riscv.c:3511 elfnn-riscv.c:3585
#, fuzzy, c-format
msgid "Local IFUNC function `%s' in %pB\n"
msgstr "%s Pb"
-#: elf32-i386.c:2630
+#: elf32-i386.c:2672
#, c-format
msgid "%pB: direct GOT relocation %s against `%s' without base register can not be used when making a shared object"
msgstr ""
-#: elf32-i386.c:2665 elf64-x86-64.c:3324
+#: elf32-i386.c:2707 elf64-x86-64.c:3726
#, fuzzy
msgid "hidden symbol"
msgstr "Tersembunyi"
-#: elf32-i386.c:2668 elf64-x86-64.c:3327
+#: elf32-i386.c:2710 elf64-x86-64.c:3729
#, fuzzy
msgid "internal symbol"
msgstr "Dalaman"
-#: elf32-i386.c:2671 elf64-x86-64.c:3330
+#: elf32-i386.c:2713 elf64-x86-64.c:3732
#, fuzzy
msgid "protected symbol"
msgstr "Dilindungi"
-#: elf32-i386.c:2674 elf64-x86-64.c:3333
+#: elf32-i386.c:2716 elf64-x86-64.c:3735
#, fuzzy
msgid "symbol"
msgstr "Simbol"
-#: elf32-i386.c:2680
+#: elf32-i386.c:2722
#, c-format
msgid "%pB: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object"
msgstr ""
-#: elf32-i386.c:2693
+#: elf32-i386.c:2735
#, c-format
msgid "%pB: relocation R_386_GOTOFF against protected %s `%s' can not be used when making a shared object"
msgstr ""
-#: elf32-i386.c:4103 elf64-x86-64.c:5169
-msgid "%F%P: discarded output section: `%pA'\n"
-msgstr ""
+#: elf32-i386.c:4145 elf64-x86-64.c:5645
+#, fuzzy
+msgid "%P: discarded output section: `%pA'\n"
+msgstr "Bahagian"
#: elf32-ip2k.c:855 elf32-ip2k.c:861 elf32-ip2k.c:928 elf32-ip2k.c:934
msgid "ip2k relaxer: switch table without complete matching relocation information."
@@ -2808,122 +2844,122 @@ msgstr "Ralat Dalaman, kiraan bukan-sifar"
msgid "SDA relocation when _SDA_BASE_ not defined"
msgstr ""
-#: elf32-m32r.c:2776 elf32-microblaze.c:1147 elf32-microblaze.c:1195
+#: elf32-m32r.c:2778 elf32-microblaze.c:1147 elf32-microblaze.c:1195
#, c-format
msgid "%pB: the target (%s) of an %s relocation is in the wrong section (%pA)"
msgstr ""
-#: elf32-m32r.c:3277
+#: elf32-m32r.c:3279
#, c-format
msgid "%pB: instruction set mismatch with previous modules"
msgstr ""
-#: elf32-m32r.c:3298 elf32-nds32.c:6899
+#: elf32-m32r.c:3300 elf32-nds32.c:6906
#, fuzzy, c-format
msgid "private flags = %lx"
msgstr "Persendirian"
-#: elf32-m32r.c:3303
+#: elf32-m32r.c:3305
#, fuzzy, c-format
msgid ": m32r instructions"
msgstr "Arahan"
-#: elf32-m32r.c:3304
+#: elf32-m32r.c:3306
#, fuzzy, c-format
msgid ": m32rx instructions"
msgstr "Arahan"
-#: elf32-m32r.c:3305
+#: elf32-m32r.c:3307
#, fuzzy, c-format
msgid ": m32r2 instructions"
msgstr "Arahan"
-#: elf32-m68hc1x.c:1134
+#: elf32-m68hc1x.c:1135
#, c-format
msgid "reference to the far symbol `%s' using a wrong relocation may result in incorrect execution"
msgstr ""
-#: elf32-m68hc1x.c:1165
+#: elf32-m68hc1x.c:1166
#, c-format
msgid "XGATE address (%lx) is not within shared RAM(0xE000-0xFFFF), therefore you must manually offset the address, and possibly manage the page, in your code."
msgstr ""
-#: elf32-m68hc1x.c:1181
+#: elf32-m68hc1x.c:1182
#, c-format
msgid "banked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)"
msgstr ""
-#: elf32-m68hc1x.c:1196
+#: elf32-m68hc1x.c:1197
#, c-format
msgid "reference to a banked address [%lx:%04lx] in the normal address space at %04lx"
msgstr ""
-#: elf32-m68hc1x.c:1232
+#: elf32-m68hc1x.c:1233
#, c-format
msgid "S12 address (%lx) is not within shared RAM(0x2000-0x4000), therefore you must manually offset the address in your code"
msgstr ""
-#: elf32-m68hc1x.c:1356
+#: elf32-m68hc1x.c:1357
#, c-format
msgid "%pB: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers"
msgstr ""
-#: elf32-m68hc1x.c:1363
+#: elf32-m68hc1x.c:1364
#, c-format
msgid "%pB: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double"
msgstr ""
-#: elf32-m68hc1x.c:1372
+#: elf32-m68hc1x.c:1373
#, c-format
msgid "%pB: linking files compiled for HCS12 with others compiled for HC12"
msgstr ""
-#: elf32-m68hc1x.c:1417 elf32-xgate.c:497
+#: elf32-m68hc1x.c:1418 elf32-xgate.c:497
#, fuzzy, c-format
msgid "[abi=32-bit int, "
msgstr "32-bit"
-#: elf32-m68hc1x.c:1419 elf32-xgate.c:499
+#: elf32-m68hc1x.c:1420 elf32-xgate.c:499
#, fuzzy, c-format
msgid "[abi=16-bit int, "
msgstr "16-bit"
-#: elf32-m68hc1x.c:1422 elf32-xgate.c:502
+#: elf32-m68hc1x.c:1423 elf32-xgate.c:502
#, fuzzy, c-format
msgid "64-bit double, "
msgstr "64-bit"
-#: elf32-m68hc1x.c:1424 elf32-xgate.c:504
+#: elf32-m68hc1x.c:1425 elf32-xgate.c:504
#, fuzzy, c-format
msgid "32-bit double, "
msgstr "32-bit"
-#: elf32-m68hc1x.c:1427
+#: elf32-m68hc1x.c:1428
#, c-format
msgid "cpu=HC11]"
msgstr "cpu=HC11]"
-#: elf32-m68hc1x.c:1429
+#: elf32-m68hc1x.c:1430
#, c-format
msgid "cpu=HCS12]"
msgstr "cpu=HCS12]"
-#: elf32-m68hc1x.c:1431
+#: elf32-m68hc1x.c:1432
#, c-format
msgid "cpu=HC12]"
msgstr "cpu=HC12]"
-#: elf32-m68hc1x.c:1434
+#: elf32-m68hc1x.c:1435
#, fuzzy, c-format
msgid " [memory=bank-model]"
msgstr "Bank"
-#: elf32-m68hc1x.c:1436
+#: elf32-m68hc1x.c:1437
#, fuzzy, c-format
msgid " [memory=flat]"
msgstr "Rata."
-#: elf32-m68hc1x.c:1439
+#: elf32-m68hc1x.c:1440
#, fuzzy, c-format
msgid " [XGATE RAM offsetting]"
msgstr "Kayu pelantak."
@@ -2986,8 +3022,8 @@ msgstr ""
msgid "%pB(%pA): shared library symbol %s encountered whilst performing a static link"
msgstr ""
-#: elf32-microblaze.c:1590 elf32-tilepro.c:3018 elfxx-sparc.c:3442
-#: elfxx-tilegx.c:3415
+#: elf32-microblaze.c:1590 elf32-tilepro.c:3020 elfxx-sparc.c:3452
+#: elfxx-tilegx.c:3417
#, fuzzy, c-format
msgid "%pB: probably compiled without -fPIC?"
msgstr "Boxes telah dikompil tanpa sokongan RDP"
@@ -3055,87 +3091,87 @@ msgstr ""
msgid "error: %pB can use the upper region for data, but %pB assumes data is exclusively in lower memory"
msgstr ""
-#: elf32-nds32.c:3673
+#: elf32-nds32.c:3680
#, fuzzy, c-format
msgid "error: can't find symbol: %s"
msgstr "Kami tidak menemui simbol \"%s\""
-#: elf32-nds32.c:5572
+#: elf32-nds32.c:5579
#, c-format
msgid "%pB: warning: %s unsupported in shared mode"
msgstr ""
-#: elf32-nds32.c:5698
+#: elf32-nds32.c:5705
#, c-format
msgid "%pB: warning: unaligned access to GOT entry"
msgstr ""
-#: elf32-nds32.c:5739
+#: elf32-nds32.c:5746
#, c-format
msgid "%pB: warning: relocate SDA_BASE failed"
msgstr ""
-#: elf32-nds32.c:5761
+#: elf32-nds32.c:5768
#, c-format
msgid "%pB(%pA): warning: unaligned small data access of type %d"
msgstr ""
-#: elf32-nds32.c:6687
+#: elf32-nds32.c:6694
#, c-format
msgid "%pB: ISR vector size mismatch with previous modules, previous %u-byte, current %u-byte"
msgstr ""
-#: elf32-nds32.c:6735
+#: elf32-nds32.c:6742
#, c-format
msgid "%pB: warning: endian mismatch with previous modules"
msgstr ""
-#: elf32-nds32.c:6749
+#: elf32-nds32.c:6756
#, c-format
msgid "%pB: warning: older version of object file encountered, please recompile with current tool chain"
msgstr ""
-#: elf32-nds32.c:6837
+#: elf32-nds32.c:6844
#, c-format
msgid "%pB: error: ABI mismatch with previous modules"
msgstr ""
-#: elf32-nds32.c:6847
+#: elf32-nds32.c:6854
#, c-format
msgid "%pB: error: instruction set mismatch with previous modules"
msgstr ""
-#: elf32-nds32.c:6874
+#: elf32-nds32.c:6881
#, c-format
msgid "%pB: warning: incompatible elf-versions %s and %s"
msgstr ""
-#: elf32-nds32.c:6905
+#: elf32-nds32.c:6912
#, fuzzy, c-format
msgid ": n1 instructions"
msgstr "Arahan"
-#: elf32-nds32.c:6908
+#: elf32-nds32.c:6915
#, fuzzy, c-format
msgid ": n1h instructions"
msgstr "Arahan"
-#: elf32-nds32.c:9357
+#: elf32-nds32.c:9364
#, c-format
msgid "%pB: error: search_nds32_elf_blank reports wrong node"
msgstr ""
-#: elf32-nds32.c:9621
+#: elf32-nds32.c:9628
#, c-format
msgid "%pB: warning: %s points to unrecognized reloc at %#<PRIx64>"
msgstr ""
-#: elf32-nds32.c:12886
+#: elf32-nds32.c:12893
#, c-format
msgid "%pB: nested OMIT_FP in %pA"
msgstr ""
-#: elf32-nds32.c:12905
+#: elf32-nds32.c:12912
#, c-format
msgid "%pB: unmatched OMIT_FP in %pA"
msgstr ""
@@ -3165,7 +3201,7 @@ msgstr ""
msgid "%pB: gotoff relocation against dynamic symbol %s"
msgstr ""
-#: elf32-or1k.c:1573 elf32-or1k.c:1588 elf64-alpha.c:4409 elf64-alpha.c:4553
+#: elf32-or1k.c:1573 elf32-or1k.c:1588 elf64-alpha.c:4412 elf64-alpha.c:4556
#, c-format
msgid "%pB: pc-relative relocation against dynamic symbol %s"
msgstr ""
@@ -3188,9 +3224,9 @@ msgstr ""
#: elf32-or1k.c:2199
#, fuzzy, c-format
msgid "%pB: bad relocation section name `%s'"
-msgstr "Nama petimel teruk untuk tapisan: %s"
+msgstr "uid/nama pengguna buruk - %s"
-#: elf32-or1k.c:3312
+#: elf32-or1k.c:3313
#, c-format
msgid "%pB: %s flag mismatch with previous modules"
msgstr ""
@@ -3203,7 +3239,7 @@ msgstr "Tidak boleh mengendalikan lokasi \"%s:\"."
#: elf32-ppc.c:1627
#, fuzzy, c-format
msgid "corrupt %s section in %pB"
-msgstr "%s Pb"
+msgstr "%pB: gagal menggabung .rsrc: bahagian .rsrc rosak"
#: elf32-ppc.c:1646
#, fuzzy, c-format
@@ -3289,7 +3325,7 @@ msgstr ""
msgid "bss-plt forced by profiling"
msgstr "Paksa Dihidupkan"
-#: elf32-ppc.c:4606 elf64-ppc.c:8516
+#: elf32-ppc.c:4606 elf64-ppc.c:8517
msgid "%H: warning: %s unexpected insn %#x.\n"
msgstr ""
@@ -3297,46 +3333,46 @@ msgstr ""
#. could just mark this symbol to exclude it
#. from tls optimization but it's safer to skip
#. the entire optimization.
-#: elf32-ppc.c:4636 elf64-ppc.c:8581
+#: elf32-ppc.c:4636 elf64-ppc.c:8582
#, c-format
msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n"
msgstr ""
-#: elf32-ppc.c:5564 elf32-sh.c:3018 elf32-tilepro.c:2245 elfxx-sparc.c:2454
-#: elfxx-tilegx.c:2494
+#: elf32-ppc.c:5565 elf32-sh.c:3019 elf32-tilepro.c:2246 elfxx-sparc.c:2464
+#: elfxx-tilegx.c:2495
#, c-format
msgid "%pB: dynamic relocation in read-only section `%pA'\n"
msgstr ""
-#: elf32-ppc.c:6510
+#: elf32-ppc.c:6512
msgid "%pB: Adjusting branch at 0x%V towards \"%s\" in section %s\n"
msgstr ""
-#: elf32-ppc.c:7463
+#: elf32-ppc.c:7454
msgid "%P: %H: error: %s with unexpected instruction %x\n"
msgstr ""
-#: elf32-ppc.c:7501
+#: elf32-ppc.c:7492
#, fuzzy
msgid "%H: fixup branch overflow\n"
msgstr "Rekod melimpah"
-#: elf32-ppc.c:7541 elf32-ppc.c:7579
+#: elf32-ppc.c:7532 elf32-ppc.c:7570
#, c-format
msgid "%pB(%pA+%#<PRIx64>): error: %s with unexpected instruction %#x"
msgstr ""
-#: elf32-ppc.c:7643
+#: elf32-ppc.c:7634
#, c-format
msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n"
msgstr ""
-#: elf32-ppc.c:7679
+#: elf32-ppc.c:7670
#, fuzzy, c-format
msgid "%pB: reloc %#x unsupported"
msgstr "%1 PB"
-#: elf32-ppc.c:7962
+#: elf32-ppc.c:7953
#, c-format
msgid "%H: non-zero addend on %s reloc against `%s'\n"
msgstr ""
@@ -3349,51 +3385,49 @@ msgstr ""
#. local won't have the +32k reloc addend trick marking
#. -fPIC code, so the linker won't know whether r30 is
#. _GLOBAL_OFFSET_TABLE_ or pointing into a .got2 section.
-#: elf32-ppc.c:7994
+#: elf32-ppc.c:7985
#, c-format
msgid "%X%H: @local call to ifunc %s\n"
msgstr ""
-#: elf32-ppc.c:8172
+#: elf32-ppc.c:8163
#, c-format
msgid "%H: relocation %s for indirect function %s unsupported\n"
msgstr ""
-#: elf32-ppc.c:8510 elf32-ppc.c:8541 elf32-ppc.c:8644 elf32-ppc.c:8744
+#: elf32-ppc.c:8501 elf32-ppc.c:8532 elf32-ppc.c:8635 elf32-ppc.c:8735
#, c-format
msgid "%pB: the target (%s) of a %s relocation is in the wrong output section (%s)"
msgstr ""
-#: elf32-ppc.c:8922 elf32-ppc.c:8943
+#: elf32-ppc.c:8913 elf32-ppc.c:8934
msgid "%X%P: %H: %s relocation unsupported for bss-plt\n"
msgstr ""
-#: elf32-ppc.c:9025
+#: elf32-ppc.c:9016
#, fuzzy, c-format
msgid "%H: error: %s against `%s' not a multiple of %u\n"
msgstr "Kod ralat %u ketika menyisip satu masukan: %s"
-#: elf32-ppc.c:9054
+#: elf32-ppc.c:9045
#, c-format
msgid "%H: unresolvable %s relocation against symbol `%s'\n"
msgstr ""
-#: elf32-ppc.c:9136
+#: elf32-ppc.c:9127
#, fuzzy, c-format
msgid "%H: %s reloc against `%s': error %d\n"
-msgstr ""
-"\n"
-"%02d h %02d j %02d min pada: %s"
+msgstr "%d/%m/%Y %H:%M:%S"
-#: elf32-ppc.c:10018
+#: elf32-ppc.c:10009
msgid "%X%P: text relocations and GNU indirect functions will result in a segfault at runtime\n"
msgstr ""
-#: elf32-ppc.c:10022 elf64-ppc.c:18320
+#: elf32-ppc.c:10013 elf64-ppc.c:18330
msgid "%P: warning: text relocations and GNU indirect functions may result in a segfault at runtime\n"
msgstr ""
-#: elf32-ppc.c:10067
+#: elf32-ppc.c:10058
#, fuzzy, c-format
msgid "%s not defined in linker created %pA"
msgstr "Port %s/%s tidak dinyatakan"
@@ -3524,12 +3558,12 @@ msgstr ""
msgid "%pB:%pA: %s and %s must be in the same input section"
msgstr ""
-#: elf32-s390.c:2005 elf64-s390.c:1974
+#: elf32-s390.c:2007 elf64-s390.c:2242
#, c-format
msgid "%pB(%pA+%#<PRIx64>): invalid instruction for TLS relocation %s"
msgstr ""
-#: elf32-score.c:1505 elf32-score7.c:1368 elfxx-mips.c:3868
+#: elf32-score.c:1505 elf32-score7.c:1368 elfxx-mips.c:3914
msgid "not enough GOT space for local GOT entries"
msgstr ""
@@ -3548,22 +3582,22 @@ msgstr ""
msgid "%pB: CALL15 reloc at %#<PRIx64> not against global symbol"
msgstr ""
-#: elf32-score.c:3481 elf32-score7.c:3292 elfxx-mips.c:11175
+#: elf32-score.c:3483 elf32-score7.c:3294 elfxx-mips.c:11260
#, c-format
msgid "%pB: cannot handle more than %d dynamic symbols"
msgstr ""
-#: elf32-score.c:3987 elf32-score7.c:3794
+#: elf32-score.c:3989 elf32-score7.c:3796
#, c-format
msgid " [pic]"
msgstr ""
-#: elf32-score.c:3991 elf32-score7.c:3798
+#: elf32-score.c:3993 elf32-score7.c:3800
#, fuzzy, c-format
msgid " [fix dep]"
msgstr "A-DEP"
-#: elf32-score.c:4038 elf32-score7.c:3845
+#: elf32-score.c:4040 elf32-score7.c:3847
#, c-format
msgid "%pB: warning: linking PIC files with non-PIC files"
msgstr ""
@@ -3573,148 +3607,148 @@ msgstr ""
msgid "%pB: %#<PRIx64>: warning: R_SH_USES points to unrecognized insn 0x%x"
msgstr ""
-#: elf32-sh.c:3753
+#: elf32-sh.c:3755
#, c-format
msgid "%pB: %#<PRIx64>: fatal: unaligned branch target for relax-support relocation"
msgstr ""
-#: elf32-sh.c:3783 elf32-sh.c:3799
+#: elf32-sh.c:3785 elf32-sh.c:3801
#, c-format
msgid "%pB: %#<PRIx64>: fatal: unaligned %s relocation %#<PRIx64>"
msgstr ""
-#: elf32-sh.c:3815
+#: elf32-sh.c:3817
#, c-format
msgid "%pB: %#<PRIx64>: fatal: R_SH_PSHA relocation %<PRId64> not in range -32..32"
msgstr ""
-#: elf32-sh.c:3831
+#: elf32-sh.c:3833
#, c-format
msgid "%pB: %#<PRIx64>: fatal: R_SH_PSHL relocation %<PRId64> not in range -32..32"
msgstr ""
-#: elf32-sh.c:3961 elf32-sh.c:4356
+#: elf32-sh.c:3963 elf32-sh.c:4358
#, c-format
msgid "%pB(%pA+%#<PRIx64>): cannot emit fixup to `%s' in read-only section"
msgstr ""
-#: elf32-sh.c:4459
+#: elf32-sh.c:4461
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s relocation against external symbol \"%s\""
msgstr ""
-#: elf32-sh.c:4578
+#: elf32-sh.c:4580
#, c-format
msgid "%pB(%pA): offset in relocation for GD->LE translation is too small: %#<PRIx64>"
msgstr ""
#. The backslash is to prevent bogus trigraph detection.
-#: elf32-sh.c:4596
+#: elf32-sh.c:4598
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd4??)"
msgstr ""
-#: elf32-sh.c:4604
+#: elf32-sh.c:4606
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xc7??)"
msgstr ""
-#: elf32-sh.c:4611
+#: elf32-sh.c:4613
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd1??)"
msgstr ""
-#: elf32-sh.c:4618
+#: elf32-sh.c:4620
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x310c)"
msgstr ""
-#: elf32-sh.c:4625
+#: elf32-sh.c:4627
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x410b)"
msgstr ""
-#: elf32-sh.c:4632
+#: elf32-sh.c:4634
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x34cc)"
msgstr ""
-#: elf32-sh.c:4667
+#: elf32-sh.c:4669
#, c-format
msgid "%pB(%pA): offset in relocation for IE->LE translation is too small: %#<PRIx64>"
msgstr ""
-#: elf32-sh.c:4685
+#: elf32-sh.c:4687
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd0??: mov.l)"
msgstr ""
-#: elf32-sh.c:4694
+#: elf32-sh.c:4696
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x0?12: stc)"
msgstr ""
-#: elf32-sh.c:4701
+#: elf32-sh.c:4703
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x0?ce: mov.l)"
msgstr ""
-#: elf32-sh.c:4816
+#: elf32-sh.c:4818
#, c-format
msgid "%pB(%pA): offset in relocation for GD->IE translation is too small: %#<PRIx64>"
msgstr ""
-#: elf32-sh.c:4884
+#: elf32-sh.c:4886
#, c-format
msgid "%pB(%pA): offset in relocation for LD->LE translation is too small: %#<PRIx64>"
msgstr ""
-#: elf32-sh.c:5012
+#: elf32-sh.c:5014
#, c-format
msgid "%X%H: relocation to \"%s\" references a different segment\n"
msgstr ""
-#: elf32-sh.c:5019
+#: elf32-sh.c:5021
#, c-format
msgid "%H: warning: relocation to \"%s\" references a different segment\n"
msgstr ""
-#: elf32-sh.c:5487 elf32-sh.c:5569
+#: elf32-sh.c:5489 elf32-sh.c:5571
#, c-format
msgid "%pB: `%s' accessed both as normal and FDPIC symbol"
msgstr ""
-#: elf32-sh.c:5493 elf32-sh.c:5574
+#: elf32-sh.c:5495 elf32-sh.c:5576
#, c-format
msgid "%pB: `%s' accessed both as FDPIC and thread local symbol"
msgstr ""
-#: elf32-sh.c:5524
+#: elf32-sh.c:5526
#, c-format
msgid "%pB: Function descriptor relocation with non-zero addend"
msgstr ""
-#: elf32-sh.c:5731 elf64-alpha.c:4645
+#: elf32-sh.c:5733 elf64-alpha.c:4648
#, c-format
msgid "%pB: TLS local exec code cannot be linked into shared objects"
msgstr ""
-#: elf32-sh.c:5846
+#: elf32-sh.c:5848
#, c-format
msgid "%pB: uses %s instructions while previous modules use %s instructions"
msgstr ""
-#: elf32-sh.c:5858
+#: elf32-sh.c:5860
#, c-format
msgid "internal error: merge of architecture '%s' with architecture '%s' produced unknown architecture"
msgstr ""
-#: elf32-sh.c:5899
+#: elf32-sh.c:5901
#, c-format
msgid "%pB: uses instructions which are incompatible with instructions used in previous modules"
msgstr ""
-#: elf32-sh.c:5912
+#: elf32-sh.c:5914
#, c-format
msgid "%pB: attempt to mix FDPIC and non-FDPIC objects"
msgstr ""
@@ -3734,144 +3768,146 @@ msgstr ""
msgid "%pB: unhandled sparc machine value '%lu' detected during write processing"
msgstr ""
-#: elf32-spu.c:733
+#: elf32-spu.c:734
msgid "%X%P: overlay section %pA does not start on a cache line\n"
msgstr ""
-#: elf32-spu.c:741
+#: elf32-spu.c:742
msgid "%X%P: overlay section %pA is larger than a cache line\n"
msgstr ""
-#: elf32-spu.c:761
+#: elf32-spu.c:762
msgid "%X%P: overlay section %pA is not in cache area\n"
msgstr ""
-#: elf32-spu.c:802
+#: elf32-spu.c:803
#, c-format
msgid "%X%P: overlay sections %pA and %pA do not start at the same address\n"
msgstr ""
-#: elf32-spu.c:1028
+#: elf32-spu.c:1029
#, c-format
msgid "warning: call to non-function symbol %s defined in %pB"
msgstr ""
-#: elf32-spu.c:1378
+#: elf32-spu.c:1379
#, c-format
msgid "%pA:0x%v lrlive .brinfo (%u) differs from analysis (%u)\n"
msgstr ""
-#: elf32-spu.c:1908
+#: elf32-spu.c:1909
#, fuzzy, c-format
msgid "%pB is not allowed to define %s"
msgstr "PB"
-#: elf32-spu.c:1916
+#: elf32-spu.c:1917
#, fuzzy, c-format
msgid "you are not allowed to define %s in a script"
msgstr "pembolehubah %%define %s ditakrif semula"
-#: elf32-spu.c:1950
+#: elf32-spu.c:1951
#, fuzzy, c-format
msgid "%s in overlay section"
msgstr "Tiada seksyen sebegitu: %s"
-#: elf32-spu.c:1979
+#: elf32-spu.c:1981
#, fuzzy
msgid "overlay stub relocation overflow"
msgstr "Stab"
-#: elf32-spu.c:1988 elf64-ppc.c:15362
+#: elf32-spu.c:1990 elf64-ppc.c:15372
#, fuzzy
msgid "stubs don't match calculated size"
msgstr "Jika pola diatas tidak sepadan:"
-#: elf32-spu.c:2571
+#: elf32-spu.c:2575
#, fuzzy, c-format
msgid "warning: %s overlaps %s\n"
msgstr "%s: Amaran: Tak dapat %s"
-#: elf32-spu.c:2587
+#: elf32-spu.c:2591
#, fuzzy, c-format
msgid "warning: %s exceeds section size\n"
msgstr "Bahagian"
-#: elf32-spu.c:2619
+#: elf32-spu.c:2623
#, c-format
msgid "%pA:0x%v not found in function table\n"
msgstr ""
-#: elf32-spu.c:2760
+#: elf32-spu.c:2764
#, c-format
msgid "%pB(%pA+0x%v): call to non-code section %pB(%pA), analysis incomplete\n"
msgstr ""
-#: elf32-spu.c:3326
+#: elf32-spu.c:3330
#, c-format
msgid "stack analysis will ignore the call from %s to %s\n"
msgstr ""
-#: elf32-spu.c:4023
+#: elf32-spu.c:4027
#, fuzzy
msgid " calls:\n"
msgstr "Tiada panggilan"
-#: elf32-spu.c:4338
+#: elf32-spu.c:4342
#, fuzzy, c-format
msgid "%s duplicated in %s\n"
msgstr "\"%s\" diduplikasi"
-#: elf32-spu.c:4342
+#: elf32-spu.c:4346
#, fuzzy, c-format
msgid "%s duplicated\n"
msgstr "Satu unsur tunggal (%s) mempunyai pendua."
-#: elf32-spu.c:4349
+#: elf32-spu.c:4353
msgid "sorry, no support for duplicate object files in auto-overlay script\n"
msgstr ""
-#: elf32-spu.c:4391
+#: elf32-spu.c:4395
#, c-format
msgid "non-overlay size of 0x%v plus maximum overlay size of 0x%v exceeds local store\n"
msgstr ""
-#: elf32-spu.c:4547
+#: elf32-spu.c:4551
#, c-format
msgid "%pB:%pA%s exceeds overlay size\n"
msgstr ""
-#: elf32-spu.c:4688
-msgid "%F%P: auto overlay error: %E\n"
-msgstr ""
+#: elf32-spu.c:4692
+#, fuzzy
+msgid "%P: auto overlay error: %E\n"
+msgstr "%-e %b %Y %l:%M %p"
-#: elf32-spu.c:4709
+#: elf32-spu.c:4712
msgid "Stack size for call graph root nodes.\n"
msgstr ""
-#: elf32-spu.c:4710
+#: elf32-spu.c:4713
msgid ""
"\n"
"Stack size for functions. Annotations: '*' max stack, 't' tail call\n"
msgstr ""
-#: elf32-spu.c:4720
+#: elf32-spu.c:4723
msgid "Maximum stack required is 0x%v\n"
msgstr ""
-#: elf32-spu.c:4739
+#: elf32-spu.c:4742
msgid "%X%P: stack/lrlive analysis error: %E\n"
msgstr ""
-#: elf32-spu.c:4742
-msgid "%F%P: can not build overlay stubs: %E\n"
-msgstr ""
+#: elf32-spu.c:4745
+#, fuzzy
+msgid "%P: can not build overlay stubs: %E\n"
+msgstr "Gabung %s ke dalam cabang %s"
-#: elf32-spu.c:4811
+#: elf32-spu.c:4814
#, fuzzy
msgid "fatal error while creating .fixup"
msgstr "Ralat ketika mencipta pautan ke %s."
-#: elf32-spu.c:5047
+#: elf32-spu.c:5050
#, c-format
msgid "%pB(%s+%#<PRIx64>): unresolvable %s relocation against symbol `%s'"
msgstr ""
@@ -3889,49 +3925,49 @@ msgstr ""
msgid "%pB: SB-relative relocation but __c6xabi_DSBT_BASE not defined"
msgstr ""
-#: elf32-tic6x.c:3490
+#: elf32-tic6x.c:3492
#, c-format
msgid "%pB: error: unknown mandatory EABI object attribute %d"
msgstr ""
-#: elf32-tic6x.c:3499
+#: elf32-tic6x.c:3501
#, c-format
msgid "%pB: warning: unknown EABI object attribute %d"
msgstr ""
-#: elf32-tic6x.c:3617 elf32-tic6x.c:3626
+#: elf32-tic6x.c:3619 elf32-tic6x.c:3628
#, c-format
msgid "error: %pB requires more stack alignment than %pB preserves"
msgstr ""
-#: elf32-tic6x.c:3636 elf32-tic6x.c:3645
+#: elf32-tic6x.c:3638 elf32-tic6x.c:3647
#, c-format
msgid "error: unknown Tag_ABI_array_object_alignment value in %pB"
msgstr ""
-#: elf32-tic6x.c:3654 elf32-tic6x.c:3663
+#: elf32-tic6x.c:3656 elf32-tic6x.c:3665
#, c-format
msgid "error: unknown Tag_ABI_array_object_align_expected value in %pB"
msgstr ""
-#: elf32-tic6x.c:3672 elf32-tic6x.c:3680
+#: elf32-tic6x.c:3674 elf32-tic6x.c:3682
#, c-format
msgid "error: %pB requires more array alignment than %pB preserves"
msgstr ""
-#: elf32-tic6x.c:3703
+#: elf32-tic6x.c:3705
#, c-format
msgid "warning: %pB and %pB differ in wchar_t size"
msgstr ""
-#: elf32-tic6x.c:3722
+#: elf32-tic6x.c:3724
#, c-format
msgid "warning: %pB and %pB differ in whether code is compiled for DSBT"
msgstr ""
-#: elf32-tilepro.c:3624 elfxx-tilegx.c:4017 elfxx-x86.c:2773
-#: elfnn-aarch64.c:10343 elfnn-kvx.c:4628 elfnn-loongarch.c:6062
-#: elfnn-riscv.c:3615
+#: elf32-tilepro.c:3626 elfxx-tilegx.c:4019 elfxx-x86.c:2762
+#: elfnn-aarch64.c:10375 elfnn-kvx.c:4631 elfnn-loongarch.c:6379
+#: elfnn-riscv.c:3801
#, fuzzy, c-format
msgid "discarded output section: `%pA'"
msgstr "Bahagian"
@@ -3978,176 +4014,176 @@ msgstr ""
msgid "could not locate special linker symbol __ctbp"
msgstr ""
-#: elf32-v850.c:2538
+#: elf32-v850.c:2539
#, c-format
msgid "error: %pB needs 8-byte alignment but %pB is set for 4-byte alignment"
msgstr ""
-#: elf32-v850.c:2554
+#: elf32-v850.c:2555
#, c-format
msgid "error: %pB uses 64-bit doubles but %pB uses 32-bit doubles"
msgstr ""
-#: elf32-v850.c:2569
+#: elf32-v850.c:2570
#, c-format
msgid "error: %pB uses FPU-3.0 but %pB only supports FPU-2.0"
msgstr ""
-#: elf32-v850.c:2601
+#: elf32-v850.c:2602
#, fuzzy, c-format
msgid " alignment of 8-byte entities: "
msgstr "Salin semula entiti sedia ada"
-#: elf32-v850.c:2604
+#: elf32-v850.c:2605
#, c-format
msgid "4-byte"
msgstr ""
-#: elf32-v850.c:2605
+#: elf32-v850.c:2606
#, c-format
msgid "8-byte"
msgstr ""
-#: elf32-v850.c:2606 elf32-v850.c:2618
+#: elf32-v850.c:2607 elf32-v850.c:2619
#, c-format
msgid "not set"
msgstr "tidak ditetapkan"
-#: elf32-v850.c:2607 elf32-v850.c:2619 elf32-v850.c:2631 elf32-v850.c:2642
-#: elf32-v850.c:2653 elf32-v850.c:2664
+#: elf32-v850.c:2608 elf32-v850.c:2620 elf32-v850.c:2632 elf32-v850.c:2643
+#: elf32-v850.c:2654 elf32-v850.c:2665
#, fuzzy, c-format
msgid "unknown: %x"
msgstr "(Kod mekanisma GSSAPI tidak diketahui: %x)"
-#: elf32-v850.c:2613
+#: elf32-v850.c:2614
#, c-format
msgid " size of doubles: "
msgstr ""
-#: elf32-v850.c:2616
+#: elf32-v850.c:2617
#, c-format
msgid "4-bytes"
msgstr ""
-#: elf32-v850.c:2617
+#: elf32-v850.c:2618
#, c-format
msgid "8-bytes"
msgstr ""
-#: elf32-v850.c:2625
+#: elf32-v850.c:2626
#, fuzzy, c-format
msgid " FPU support required: "
msgstr "Periksa sama ada alatan sokongan yang diperlukan tersedia"
-#: elf32-v850.c:2628
+#: elf32-v850.c:2629
#, c-format
msgid "FPU-2.0"
msgstr ""
-#: elf32-v850.c:2629
+#: elf32-v850.c:2630
#, c-format
msgid "FPU-3.0"
msgstr ""
-#: elf32-v850.c:2630
+#: elf32-v850.c:2631
#, c-format
msgid "none"
msgstr "tiada"
-#: elf32-v850.c:2637
+#: elf32-v850.c:2638
#, fuzzy, c-format
msgid "SIMD use: "
msgstr "_Guna sebagaimana ia"
-#: elf32-v850.c:2640 elf32-v850.c:2651 elf32-v850.c:2662
+#: elf32-v850.c:2641 elf32-v850.c:2652 elf32-v850.c:2663
#, c-format
msgid "yes"
msgstr "ya"
-#: elf32-v850.c:2641 elf32-v850.c:2652 elf32-v850.c:2663
+#: elf32-v850.c:2642 elf32-v850.c:2653 elf32-v850.c:2664
#, c-format
msgid "no"
msgstr ""
-#: elf32-v850.c:2648
+#: elf32-v850.c:2649
#, fuzzy, c-format
msgid "CACHE use: "
msgstr ""
"Tiada fail indeks tema dalam \"%s\".\n"
"Jika anda pasti mahu mencipta satu cache ikon di sini, guna -ignore-theme-index.\n"
-#: elf32-v850.c:2659
+#: elf32-v850.c:2660
#, fuzzy, c-format
msgid "MMU use: "
msgstr "Benarkan MMU"
-#: elf32-v850.c:2826 elf32-v850.c:2882
+#: elf32-v850.c:2827 elf32-v850.c:2883
#, c-format
msgid "%pB: architecture mismatch with previous modules"
msgstr ""
#. xgettext:c-format.
-#: elf32-v850.c:2900
+#: elf32-v850.c:2901
#, fuzzy, c-format
msgid "private flags = %lx: "
msgstr "Persendirian"
-#: elf32-v850.c:2905
+#: elf32-v850.c:2906
#, fuzzy, c-format
msgid "unknown v850 architecture"
msgstr "S_eni Bina"
-#: elf32-v850.c:2907
+#: elf32-v850.c:2908
#, fuzzy, c-format
msgid "v850 E3 architecture"
msgstr "S_eni Bina"
-#: elf32-v850.c:2909 elf32-v850.c:2916
+#: elf32-v850.c:2910 elf32-v850.c:2917
#, fuzzy, c-format
msgid "v850 architecture"
msgstr "S_eni Bina"
-#: elf32-v850.c:2917
+#: elf32-v850.c:2918
#, fuzzy, c-format
msgid "v850e architecture"
msgstr "S_eni Bina"
-#: elf32-v850.c:2918
+#: elf32-v850.c:2919
#, fuzzy, c-format
msgid "v850e1 architecture"
msgstr "S_eni Bina"
-#: elf32-v850.c:2919
+#: elf32-v850.c:2920
#, fuzzy, c-format
msgid "v850e2 architecture"
msgstr "S_eni Bina"
-#: elf32-v850.c:2920
+#: elf32-v850.c:2921
#, fuzzy, c-format
msgid "v850e2v3 architecture"
msgstr "S_eni Bina"
-#: elf32-v850.c:2921
+#: elf32-v850.c:2922
#, fuzzy, c-format
msgid "v850e3v5 architecture"
msgstr "S_eni Bina"
-#: elf32-v850.c:3595 elf32-v850.c:3834
+#: elf32-v850.c:3596 elf32-v850.c:3835
#, c-format
msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized insns"
msgstr ""
-#: elf32-v850.c:3605 elf32-v850.c:3844
+#: elf32-v850.c:3606 elf32-v850.c:3845
#, c-format
msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized insn %#x"
msgstr ""
-#: elf32-v850.c:3651 elf32-v850.c:3879
+#: elf32-v850.c:3652 elf32-v850.c:3880
#, c-format
msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized reloc"
msgstr ""
-#: elf32-v850.c:3691
+#: elf32-v850.c:3692
#, c-format
msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized reloc %#<PRIx64>"
msgstr ""
@@ -4172,17 +4208,17 @@ msgstr "apung"
msgid "%pB: warning: GOT addend of %<PRId64> to `%s' does not match previous GOT addend of %<PRId64>"
msgstr ""
-#: elf32-vax.c:1387
+#: elf32-vax.c:1389
#, c-format
msgid "%pB: warning: PLT addend of %<PRId64> to `%s' from %pA section ignored"
msgstr ""
-#: elf32-vax.c:1513
+#: elf32-vax.c:1515
#, c-format
msgid "%pB: warning: %s relocation against symbol `%s' from %pA section"
msgstr ""
-#: elf32-vax.c:1520
+#: elf32-vax.c:1522
#, c-format
msgid "%pB: warning: %s relocation to %#<PRIx64> from %pA section"
msgstr ""
@@ -4202,7 +4238,7 @@ msgstr "% CPU"
msgid "error reading cpu type from elf private data"
msgstr ""
-#: elf32-xstormy16.c:457 elf64-ia64-vms.c:2076 elfnn-ia64.c:2345
+#: elf32-xstormy16.c:457 elf64-ia64-vms.c:2077 elfnn-ia64.c:2345
#, fuzzy
msgid "non-zero addend in @fptr reloc"
msgstr "Ralat Dalaman, kiraan bukan-sifar"
@@ -4212,55 +4248,55 @@ msgstr "Ralat Dalaman, kiraan bukan-sifar"
msgid "%pB(%pA): invalid property table"
msgstr "Jadual pemampasan paparan tidak sah"
-#: elf32-xtensa.c:2730
+#: elf32-xtensa.c:2732
#, c-format
msgid "%pB(%pA+%#<PRIx64>): relocation offset out of range (size=%#<PRIx64>)"
msgstr ""
-#: elf32-xtensa.c:2813 elf32-xtensa.c:2936
+#: elf32-xtensa.c:2815 elf32-xtensa.c:2938
#, fuzzy
msgid "dynamic relocation in read-only section"
msgstr "%pB: gagal membaca bahagian data nyahpepijat"
-#: elf32-xtensa.c:2913
+#: elf32-xtensa.c:2915
msgid "TLS relocation invalid without dynamic sections"
msgstr ""
-#: elf32-xtensa.c:3126
+#: elf32-xtensa.c:3128
msgid "internal inconsistency in size of .got.loc section"
msgstr ""
-#: elf32-xtensa.c:3432
+#: elf32-xtensa.c:3434
#, c-format
msgid "%pB: incompatible machine type; output is 0x%x; input is 0x%x"
msgstr ""
-#: elf32-xtensa.c:4731 elf32-xtensa.c:4739
+#: elf32-xtensa.c:4733 elf32-xtensa.c:4741
#, fuzzy
msgid "attempt to convert L32R/CALLX to CALL failed"
msgstr "Percubaan dailan telah gagal"
-#: elf32-xtensa.c:6567 elf32-xtensa.c:6646 elf32-xtensa.c:8072
+#: elf32-xtensa.c:6569 elf32-xtensa.c:6648 elf32-xtensa.c:8074
#, c-format
msgid "%pB(%pA+%#<PRIx64>): could not decode instruction; possible configuration mismatch"
msgstr ""
-#: elf32-xtensa.c:7813
+#: elf32-xtensa.c:7815
#, c-format
msgid "%pB(%pA+%#<PRIx64>): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch"
msgstr ""
-#: elf32-xtensa.c:9671
+#: elf32-xtensa.c:9673
#, fuzzy
msgid "invalid relocation address"
msgstr "Alamat IP tidak sah"
-#: elf32-xtensa.c:9762
+#: elf32-xtensa.c:9764
#, fuzzy
msgid "overflow after relaxation"
msgstr "nombor baris melimpah"
-#: elf32-xtensa.c:10908
+#: elf32-xtensa.c:10910
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected fix for %s relocation"
msgstr ""
@@ -4294,52 +4330,52 @@ msgstr ""
msgid "%pB: .got subsegment exceeds 64K (size %d)"
msgstr ""
-#: elf64-alpha.c:2678 elflink.c:15697 elfnn-kvx.c:4015 elfnn-loongarch.c:2007
+#: elf64-alpha.c:2679 elflink.c:15752 elfnn-kvx.c:4016 elfnn-loongarch.c:2016
#, c-format
msgid "%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"
msgstr ""
-#: elf64-alpha.c:2974 elf64-alpha.c:3169
+#: elf64-alpha.c:2977 elf64-alpha.c:3172
#, c-format
msgid "%pB: %pA+%#<PRIx64>: warning: %s relocation against unexpected insn"
msgstr ""
-#: elf64-alpha.c:4369 elf64-alpha.c:4382
+#: elf64-alpha.c:4372 elf64-alpha.c:4385
#, c-format
msgid "%pB: gp-relative relocation against dynamic symbol %s"
msgstr ""
-#: elf64-alpha.c:4438
+#: elf64-alpha.c:4441
#, fuzzy, c-format
msgid "%pB: change in gp: BRSGP %s"
msgstr "%s Pb"
-#: elf64-alpha.c:4463 mach-o.c:625 elfnn-loongarch.c:908 elfnn-riscv.c:724
-#: elfnn-riscv.c:929 elfnn-riscv.c:971
+#: elf64-alpha.c:4466 mach-o.c:627 elfnn-loongarch.c:917 elfnn-riscv.c:917
+#: elfnn-riscv.c:1122 elfnn-riscv.c:1164
msgid "<unknown>"
msgstr "<tidak diketahui>"
-#: elf64-alpha.c:4469
+#: elf64-alpha.c:4472
#, c-format
msgid "%pB: !samegp reloc against symbol without .prologue: %s"
msgstr ""
-#: elf64-alpha.c:4527
+#: elf64-alpha.c:4530
#, c-format
msgid "%pB: unhandled dynamic relocation against %s"
msgstr ""
-#: elf64-alpha.c:4562
+#: elf64-alpha.c:4565
#, c-format
msgid "%pB: pc-relative relocation against undefined weak symbol %s"
msgstr ""
-#: elf64-alpha.c:4628
+#: elf64-alpha.c:4631
#, c-format
msgid "%pB: dtp-relative relocation against dynamic symbol %s"
msgstr ""
-#: elf64-alpha.c:4653
+#: elf64-alpha.c:4656
#, c-format
msgid "%pB: tp-relative relocation against dynamic symbol %s"
msgstr ""
@@ -4355,12 +4391,12 @@ msgstr "Ralat dalaman: Ralat tidak diketahui"
msgid "%pB: Relocations in generic ELF (EM: %d)"
msgstr ""
-#: elf64-hppa.c:2035
+#: elf64-hppa.c:2037
#, c-format
msgid "stub entry for %s cannot load .plt, dp offset = %<PRId64>"
msgstr ""
-#: elf64-hppa.c:3239
+#: elf64-hppa.c:3241
#, c-format
msgid "%pB(%pA+%#<PRIx64>): cannot reach %s"
msgstr ""
@@ -4370,101 +4406,101 @@ msgstr ""
msgid "%pB: can't relax br at %#<PRIx64> in section `%pA'; please use brl or indirect branch"
msgstr ""
-#: elf64-ia64-vms.c:2031 elfnn-ia64.c:2293
+#: elf64-ia64-vms.c:2032 elfnn-ia64.c:2293
msgid "@pltoff reloc against local symbol"
msgstr ""
-#: elf64-ia64-vms.c:3278 elfnn-ia64.c:3671
+#: elf64-ia64-vms.c:3280 elfnn-ia64.c:3673
#, c-format
msgid "%pB: short data segment overflowed (%#<PRIx64> >= 0x400000)"
msgstr ""
-#: elf64-ia64-vms.c:3288 elfnn-ia64.c:3681
+#: elf64-ia64-vms.c:3290 elfnn-ia64.c:3683
#, c-format
msgid "%pB: __gp does not cover short data segment"
msgstr ""
-#: elf64-ia64-vms.c:3558 elfnn-ia64.c:3954
+#: elf64-ia64-vms.c:3560 elfnn-ia64.c:3956
#, c-format
msgid "%pB: non-pic code with imm relocation against dynamic symbol `%s'"
msgstr ""
-#: elf64-ia64-vms.c:3622 elfnn-ia64.c:4022
+#: elf64-ia64-vms.c:3624 elfnn-ia64.c:4024
#, c-format
msgid "%pB: @gprel relocation against dynamic symbol %s"
msgstr ""
-#: elf64-ia64-vms.c:3681 elfnn-ia64.c:4085
+#: elf64-ia64-vms.c:3683 elfnn-ia64.c:4087
#, c-format
msgid "%pB: linking non-pic code in a position independent executable"
msgstr ""
-#: elf64-ia64-vms.c:3783 elfnn-ia64.c:4223
+#: elf64-ia64-vms.c:3785 elfnn-ia64.c:4225
#, fuzzy, c-format
msgid "%pB: @internal branch to dynamic symbol %s"
msgstr "Gagal menemui simbol '%s' dalam pustaka dinamik"
-#: elf64-ia64-vms.c:3786 elfnn-ia64.c:4226
+#: elf64-ia64-vms.c:3788 elfnn-ia64.c:4228
#, fuzzy, c-format
msgid "%pB: speculation fixup to dynamic symbol %s"
msgstr "Gagal menemui simbol '%s' dalam pustaka dinamik"
-#: elf64-ia64-vms.c:3789 elfnn-ia64.c:4229
+#: elf64-ia64-vms.c:3791 elfnn-ia64.c:4231
#, c-format
msgid "%pB: @pcrel relocation against dynamic symbol %s"
msgstr ""
-#: elf64-ia64-vms.c:3913 elfnn-ia64.c:4426
+#: elf64-ia64-vms.c:3915 elfnn-ia64.c:4428
#, fuzzy
msgid "unsupported reloc"
msgstr " (tidak disokong)"
-#: elf64-ia64-vms.c:3950 elfnn-ia64.c:4464
+#: elf64-ia64-vms.c:3952 elfnn-ia64.c:4466
#, c-format
msgid "%pB: missing TLS section for relocation %s against `%s' at %#<PRIx64> in section `%pA'."
msgstr ""
-#: elf64-ia64-vms.c:3967 elfnn-ia64.c:4481
+#: elf64-ia64-vms.c:3969 elfnn-ia64.c:4483
#, c-format
msgid "%pB: Can't relax br (%s) to `%s' at %#<PRIx64> in section `%pA' with size %#<PRIx64> (> 0x1000000)."
msgstr ""
-#: elf64-ia64-vms.c:4261 elfnn-ia64.c:4740
+#: elf64-ia64-vms.c:4263 elfnn-ia64.c:4742
#, c-format
msgid "%pB: linking trap-on-NULL-dereference with non-trapping files"
msgstr ""
-#: elf64-ia64-vms.c:4270 elfnn-ia64.c:4749
+#: elf64-ia64-vms.c:4272 elfnn-ia64.c:4751
#, c-format
msgid "%pB: linking big-endian files with little-endian files"
msgstr ""
-#: elf64-ia64-vms.c:4279 elfnn-ia64.c:4758
+#: elf64-ia64-vms.c:4281 elfnn-ia64.c:4760
#, c-format
msgid "%pB: linking 64-bit files with 32-bit files"
msgstr ""
-#: elf64-ia64-vms.c:4288 elfnn-ia64.c:4767
+#: elf64-ia64-vms.c:4290 elfnn-ia64.c:4769
#, c-format
msgid "%pB: linking constant-gp files with non-constant-gp files"
msgstr ""
-#: elf64-ia64-vms.c:4298 elfnn-ia64.c:4777
+#: elf64-ia64-vms.c:4300 elfnn-ia64.c:4779
#, c-format
msgid "%pB: linking auto-pic files with non-auto-pic files"
msgstr ""
-#: elf64-ia64-vms.c:5148 elflink.c:5491
+#: elf64-ia64-vms.c:5150 elflink.c:5518
#, c-format
msgid "warning: alignment %u of common symbol `%s' in %pB is greater than the alignment (%u) of its section %pA"
msgstr ""
-#: elf64-ia64-vms.c:5155
+#: elf64-ia64-vms.c:5157
#, c-format
msgid "warning: alignment %u of symbol `%s' in %pB is smaller than %u in %pB"
msgstr ""
-#: elf64-ia64-vms.c:5171 elflink.c:5520
+#: elf64-ia64-vms.c:5173 elflink.c:5547
#, c-format
msgid "warning: size of symbol `%s' changed from %<PRIu64> in %pB to %<PRIu64> in %pB"
msgstr ""
@@ -4531,7 +4567,7 @@ msgstr ""
"\n"
"Terdapat direktori nyahpijat dalam %s, tetapi bahagian itu tidak mempunyai kandungan\n"
-#: elf64-mmix.c:2398
+#: elf64-mmix.c:2399
#, c-format
msgid "internal inconsistency: remaining %lu != max %lu; please report this bug"
msgstr ""
@@ -4576,31 +4612,31 @@ msgstr ""
msgid " [abiv%ld]"
msgstr "%ld:%02ld"
-#: elf64-ppc.c:6844
+#: elf64-ppc.c:6845
msgid "%P: copy reloc against `%pT' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n"
msgstr ""
-#: elf64-ppc.c:7111
+#: elf64-ppc.c:7112
#, fuzzy, c-format
msgid "%pB: undefined symbol on R_PPC64_TOCSAVE relocation"
msgstr "simbol permulaan %s tidak ditakrifkan"
-#: elf64-ppc.c:7362
+#: elf64-ppc.c:7363
#, fuzzy, c-format
msgid "dynreloc miscount for %pB, section %pA"
msgstr "%pB: gagal membaca bahagian data nyahpepijat"
-#: elf64-ppc.c:7453
+#: elf64-ppc.c:7454
#, c-format
msgid "%pB: .opd is not a regular array of opd entries"
msgstr ""
-#: elf64-ppc.c:7463
+#: elf64-ppc.c:7464
#, c-format
msgid "%pB: unexpected reloc type %u in .opd section"
msgstr ""
-#: elf64-ppc.c:7485
+#: elf64-ppc.c:7486
#, c-format
msgid "%pB: undefined sym `%s' in .opd section"
msgstr ""
@@ -4612,83 +4648,83 @@ msgstr ""
#. __glink_PLTresolve save of r2 is incompatible with code
#. making tail calls, because the tail call might go via the
#. resolver and thus overwrite the proper saved r2.
-#: elf64-ppc.c:7986
+#: elf64-ppc.c:7987
msgid "warning: --plt-localentry is incompatible with power10 pc-relative code"
msgstr ""
-#: elf64-ppc.c:7994
+#: elf64-ppc.c:7995
msgid "warning: --plt-localentry is especially dangerous without ld.so support to detect ABI violations"
msgstr ""
-#: elf64-ppc.c:8310
+#: elf64-ppc.c:8311
msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n"
msgstr ""
-#: elf64-ppc.c:8745 elf64-ppc.c:9461
+#: elf64-ppc.c:8746 elf64-ppc.c:9462
#, fuzzy, c-format
msgid "%s defined on removed toc entry"
msgstr "Sistem mungkin tidak berfungsi dengan baik jika masukan ini diubah suai atau dibuang."
-#: elf64-ppc.c:9418
+#: elf64-ppc.c:9419
#, c-format
msgid "%H: %s references optimized away TOC entry\n"
msgstr ""
-#: elf64-ppc.c:9639
+#: elf64-ppc.c:9640
#, c-format
msgid "%H: got/toc optimization is not supported for %s instruction\n"
msgstr ""
-#: elf64-ppc.c:10534
+#: elf64-ppc.c:10536
#, fuzzy, c-format
msgid "warning: discarding dynamic section %s"
msgstr "Bahagian"
-#: elf64-ppc.c:11687
+#: elf64-ppc.c:11692
msgid "%P: cannot find opd entry toc for `%pT'\n"
msgstr ""
-#: elf64-ppc.c:11837
+#: elf64-ppc.c:11842
#, c-format
msgid "long branch stub `%s' offset overflow"
msgstr ""
-#: elf64-ppc.c:11864
+#: elf64-ppc.c:11869
#, fuzzy, c-format
msgid "can't find branch stub `%s'"
msgstr "Gagal mencari posisi semasa dalam fail '%s'"
-#: elf64-ppc.c:11925 elf64-ppc.c:12177 elf64-ppc.c:14742
+#: elf64-ppc.c:11930 elf64-ppc.c:12182 elf64-ppc.c:14748
#, c-format
msgid "%P: linkage table error against `%pT'\n"
msgstr ""
-#: elf64-ppc.c:12376
+#: elf64-ppc.c:12381
#, fuzzy, c-format
msgid "can't build branch stub `%s'"
msgstr "Gabung %s ke dalam cabang %s"
-#: elf64-ppc.c:13407
+#: elf64-ppc.c:13412
#, c-format
msgid "%pB section %pA exceeds stub group size"
msgstr ""
-#: elf64-ppc.c:14923
+#: elf64-ppc.c:14929
msgid "__tls_get_addr call offset overflow"
msgstr ""
-#: elf64-ppc.c:15263 elf64-ppc.c:15282
+#: elf64-ppc.c:15272 elf64-ppc.c:15291
#, c-format
msgid "%s offset too large for .eh_frame sdata4 encoding"
msgstr ""
-#: elf64-ppc.c:15370
+#: elf64-ppc.c:15380
#, fuzzy, c-format
msgid "linker stubs in %u group"
msgid_plural "linker stubs in %u groups"
msgstr[0] "Pemaut"
-#: elf64-ppc.c:15377
+#: elf64-ppc.c:15387
#, c-format
msgid ""
"%s, iter %u\n"
@@ -4698,71 +4734,71 @@ msgid ""
" global entry %lu"
msgstr ""
-#: elf64-ppc.c:15759
+#: elf64-ppc.c:15769
#, fuzzy, c-format
msgid "%H: %s used with TLS symbol `%pT'\n"
msgstr "simbol %s digunakan lebih dari sekali sebagai rentetan perkataan"
-#: elf64-ppc.c:15761
+#: elf64-ppc.c:15771
#, c-format
msgid "%H: %s used with non-TLS symbol `%pT'\n"
msgstr ""
-#: elf64-ppc.c:16545
+#: elf64-ppc.c:16555
#, c-format
msgid "%H: call to `%pT' lacks nop, can't restore toc; (plt call stub)\n"
msgstr ""
-#: elf64-ppc.c:16551
+#: elf64-ppc.c:16561
#, c-format
msgid "%H: call to `%pT' lacks nop, can't restore toc; (toc save/adjust stub)\n"
msgstr ""
-#: elf64-ppc.c:17202
+#: elf64-ppc.c:17212
#, fuzzy, c-format
msgid "%H: %s against %pT is not supported\n"
msgstr "%s pt"
-#: elf64-ppc.c:17478
+#: elf64-ppc.c:17488
#, c-format
msgid "%H: %s for indirect function `%pT' unsupported\n"
msgstr ""
-#: elf64-ppc.c:17565
+#: elf64-ppc.c:17575
#, c-format
msgid "%X%P: %pB: %s against %pT is not supported by glibc as a dynamic relocation\n"
msgstr ""
-#: elf64-ppc.c:17620
+#: elf64-ppc.c:17630
#, fuzzy, c-format
msgid "%P: %pB: %s is not supported for `%pT'\n"
msgstr "%s Pb"
-#: elf64-ppc.c:17889
+#: elf64-ppc.c:17899
#, fuzzy, c-format
msgid "%H: error: %s not a multiple of %u\n"
msgstr "Kod ralat %u ketika mengesahihkan: %s"
-#: elf64-ppc.c:17912
+#: elf64-ppc.c:17922
#, fuzzy, c-format
msgid "%H: unresolvable %s against `%pT'\n"
msgstr "%s pt"
-#: elf64-ppc.c:18057
+#: elf64-ppc.c:18067
#, fuzzy, c-format
msgid "%H: %s against `%pT': error %d\n"
msgstr ""
"\n"
"%02d h %02d j %02d min pada: %s"
-#: elf64-s390.c:2490
+#: elf64-s390.c:2752
#, c-format
msgid "%pB: `%s' non-PLT reloc for symbol defined in shared library and accessed from executable (rebuild file with -fPIC ?)"
msgstr ""
-#: elf64-s390.c:3153
+#: elf64-s390.c:3415
#, c-format
-msgid "%pB(%pA+%#<PRIx64>): misaligned symbol `%s' (%#<PRIx64>) for relocation %s"
+msgid "%pB(%pA+%#<PRIx64>): relocation %s against misaligned symbol `%s' (%#<PRIx64>) in %pB"
msgstr ""
#: elf64-sparc.c:134 elfcode.h:1601
@@ -4795,116 +4831,127 @@ msgstr ""
msgid "%pB: linking UltraSPARC specific with HAL specific code"
msgstr ""
-#: elf64-x86-64.c:1660
+#: elf64-x86-64.c:1690
#, fuzzy
msgid "hidden symbol "
msgstr "Tersembunyi"
-#: elf64-x86-64.c:1663
+#: elf64-x86-64.c:1693
#, fuzzy
msgid "internal symbol "
msgstr "Dalaman"
-#: elf64-x86-64.c:1666 elf64-x86-64.c:1670
+#: elf64-x86-64.c:1696 elf64-x86-64.c:1700
#, fuzzy
msgid "protected symbol "
msgstr "Dilindungi"
-#: elf64-x86-64.c:1672
+#: elf64-x86-64.c:1702
#, fuzzy
msgid "symbol "
msgstr "Simbol:"
-#: elf64-x86-64.c:1678
+#: elf64-x86-64.c:1708
#, fuzzy
msgid "undefined "
msgstr "Tidak ditakrif"
-#: elf64-x86-64.c:1688 elfnn-loongarch.c:892
+#: elf64-x86-64.c:1718 elfnn-loongarch.c:901
#, fuzzy
msgid "a shared object"
msgstr "objek memori terkongsi"
-#: elf64-x86-64.c:1690
+#: elf64-x86-64.c:1720
msgid "; recompile with -fPIC"
msgstr ""
-#: elf64-x86-64.c:1695 elfnn-loongarch.c:898
+#: elf64-x86-64.c:1725 elfnn-loongarch.c:907
#, fuzzy
msgid "a PIE object"
msgstr "Pai"
-#: elf64-x86-64.c:1697 elfnn-loongarch.c:900
+#: elf64-x86-64.c:1727 elfnn-loongarch.c:909
#, fuzzy
msgid "a PDE object"
msgstr "Tiada objek sebegitu"
-#: elf64-x86-64.c:1699
+#: elf64-x86-64.c:1729
msgid "; recompile with -fPIE"
msgstr ""
-#: elf64-x86-64.c:1703
+#: elf64-x86-64.c:1733
#, c-format
msgid "%pB: relocation %s against %s%s`%s' can not be used when making %s%s"
msgstr ""
-#: elf64-x86-64.c:2239
+#: elf64-x86-64.c:2566
+#, c-format
+msgid "%pB: bad reloc offset (%#<PRIx64> > %#<PRIx64>) for section `%pA'"
+msgstr ""
+
+#: elf64-x86-64.c:2630
#, c-format
msgid "%pB: relocation %s against symbol `%s' isn't supported in x32 mode"
msgstr ""
-#: elf64-x86-64.c:2394
+#: elf64-x86-64.c:2791
#, c-format
msgid "%pB: '%s' accessed both as normal and thread local symbol"
msgstr ""
-#: elf64-x86-64.c:2652
+#: elf64-x86-64.c:3046
#, c-format
msgid "%pB: unsupported relocation %s against symbol `%s'"
msgstr ""
-#: elf64-x86-64.c:3076 elfnn-aarch64.c:5766 elfnn-riscv.c:2374
+#: elf64-x86-64.c:3472 elfnn-aarch64.c:5784 elfnn-riscv.c:2572
#, c-format
msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %<PRId64>"
msgstr ""
-#: elf64-x86-64.c:3339
+#: elf64-x86-64.c:3741
#, c-format
msgid "%pB: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used when making a shared object"
msgstr ""
-#: elf64-x86-64.c:3353
+#: elf64-x86-64.c:3755
#, c-format
msgid "%pB: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used when making a shared object"
msgstr ""
-#: elf64-x86-64.c:3643
+#: elf64-x86-64.c:4045
#, c-format
msgid "%pB: addend %s%#x in relocation %s against symbol `%s' at %#<PRIx64> in section `%pA' is out of range"
msgstr ""
-#: elf64-x86-64.c:3794 elflink.c:14005
-msgid "%F%P: corrupt input: %pB\n"
-msgstr ""
+#: elf64-x86-64.c:4197
+#, fuzzy
+msgid "%P: corrupt input: %pB\n"
+msgstr "%pB: gagal menggabung .rsrc: bahagian .rsrc rosak"
-#: elf64-x86-64.c:4605
+#: elf64-x86-64.c:5066
#, c-format
msgid " failed to convert GOTPCREL relocation against '%s'; relink with --no-relax\n"
msgstr ""
-#: elf64-x86-64.c:4764
+#: elf64-x86-64.c:5225
#, c-format
-msgid "%F%pB: PC-relative offset overflow in PLT entry for `%s'\n"
+msgid "%pB: PC-relative offset overflow in PLT entry for `%s'\n"
msgstr ""
-#: elf64-x86-64.c:4837
+#: elf64-x86-64.c:5301
#, c-format
-msgid "%F%pB: branch displacement overflow in PLT entry for `%s'\n"
+msgid "%pB: branch displacement overflow in PLT entry for `%s'\n"
msgstr ""
-#: elf64-x86-64.c:4890
+#: elf64-x86-64.c:5354
#, c-format
-msgid "%F%pB: PC-relative offset overflow in GOT PLT entry for `%s'\n"
+msgid "%pB: PC-relative offset overflow in GOT PLT entry for `%s'\n"
+msgstr ""
+
+#: elf64-x86-64.c:5505
+#, c-format
+msgid "%pB: Unable to generate dynamic relocs because a suitable section does not exist\n"
msgstr ""
#: elfcode.h:342
@@ -4937,339 +4984,346 @@ msgstr ""
msgid "warning: %pB has a segment extending past end of file"
msgstr ""
-#: elflink.c:1438
+#: elflink.c:1477
#, c-format
msgid "%s: TLS definition in %pB section %pA mismatches non-TLS definition in %pB section %pA"
msgstr ""
-#: elflink.c:1444
+#: elflink.c:1483
#, c-format
msgid "%s: TLS reference in %pB mismatches non-TLS reference in %pB"
msgstr ""
-#: elflink.c:1450
+#: elflink.c:1489
#, c-format
msgid "%s: TLS definition in %pB section %pA mismatches non-TLS reference in %pB"
msgstr ""
-#: elflink.c:1456
+#: elflink.c:1495
#, c-format
msgid "%s: TLS reference in %pB mismatches non-TLS definition in %pB section %pA"
msgstr ""
-#: elflink.c:2168
+#: elflink.c:2207
#, c-format
msgid "%pB: unexpected redefinition of indirect versioned symbol `%s'"
msgstr ""
-#: elflink.c:2681
+#: elflink.c:2720
#, fuzzy, c-format
msgid "%pB: version node not found for symbol %s"
msgstr "simbol tidak dijumpai di dalam pengeluaran: %.*s"
-#: elflink.c:2780
+#: elflink.c:2819
#, c-format
msgid "%pB: bad reloc symbol index (%#<PRIx64> >= %#lx) for offset %#<PRIx64> in section `%pA'"
msgstr ""
-#: elflink.c:2792
+#: elflink.c:2831
#, c-format
msgid "%pB: non-zero symbol index (%#<PRIx64>) for offset %#<PRIx64> in section `%pA' when the object file has no symbol table"
msgstr ""
-#: elflink.c:2989
+#: elflink.c:3017
#, c-format
msgid "%pB: relocation size mismatch in %pB section %pA"
msgstr ""
-#: elflink.c:3322
+#: elflink.c:3350
#, c-format
msgid "warning: type and size of dynamic symbol `%s' are not defined"
msgstr ""
-#: elflink.c:3382
+#: elflink.c:3407
msgid "%P: copy reloc against protected `%pT' is dangerous\n"
msgstr ""
-#: elflink.c:4338
-msgid "%F%P: %pB: failed to add %s to first hash\n"
+#: elflink.c:4363
+msgid "%P: %pB: failed to add %s to first hash\n"
msgstr ""
-#: elflink.c:4406
-msgid "%F%P: first_hash failed to create: %E\n"
+#: elflink.c:4431
+msgid "%P: first_hash failed to create: %E\n"
msgstr ""
-#: elflink.c:4437
+#: elflink.c:4462
#, c-format
msgid "alternate ELF machine code found (%d) in %pB, expecting %d"
msgstr ""
-#: elflink.c:4920
+#: elflink.c:4945
#, c-format
msgid "%pB: invalid version offset %lx (max %lx)"
msgstr ""
-#: elflink.c:4989
+#: elflink.c:5015
#, c-format
msgid "%pB: %s local symbol at index %lu (>= sh_info of %lu)"
msgstr ""
-#: elflink.c:5137
+#: elflink.c:5164
#, fuzzy, c-format
msgid "%pB: not enough version information"
msgstr "Maklumat versi"
-#: elflink.c:5175
+#: elflink.c:5202
#, c-format
msgid "%pB: %s: invalid version %u (max %d)"
msgstr ""
-#: elflink.c:5212
+#: elflink.c:5239
#, fuzzy, c-format
msgid "%pB: %s: invalid needed version %d"
msgstr "keperluan versi tidak sah: %s"
-#: elflink.c:5498
+#: elflink.c:5525
#, c-format
msgid "warning: alignment %u of normal symbol `%s' in %pB is smaller than %u used by the common definition in %pB"
msgstr ""
-#: elflink.c:5505
+#: elflink.c:5532
msgid "warning: NOTE: alignment discrepancies can cause real problems. Investigation is advised."
msgstr ""
-#: elflink.c:5527
+#: elflink.c:5554
msgid "warning: NOTE: size discrepancies can cause real problems. Investigation is advised."
msgstr ""
-#: elflink.c:5670
+#: elflink.c:5697
#, fuzzy, c-format
msgid "%pB: undefined reference to symbol '%s'"
msgstr "simbol permulaan %s tidak ditakrifkan"
-#: elflink.c:6759
+#: elflink.c:6812
#, fuzzy, c-format
msgid "%pB: stack size specified and %s set"
msgstr "Fail %s tidak wujud dan tiada saiz dinyatakan.\n"
-#: elflink.c:6763
+#: elflink.c:6816
#, fuzzy, c-format
msgid "%pB: %s not absolute"
msgstr "PB"
-#: elflink.c:6975
+#: elflink.c:7028
#, fuzzy, c-format
msgid "%s: undefined version: %s"
msgstr "%s: pembolehubah %s %%define tidak ditakrifkan"
-#: elflink.c:7364
+#: elflink.c:7419
msgid "error: creating an executable stack because of -z execstack command line option"
msgstr ""
-#: elflink.c:7370
+#: elflink.c:7425
msgid "warning: enabling an executable stack because of -z execstack command line option"
msgstr ""
-#: elflink.c:7432
+#: elflink.c:7487
#, c-format
msgid "error: %s: is triggering the generation of an executable stack (because it has an executable .note.GNU-stack section)"
msgstr ""
-#: elflink.c:7438
+#: elflink.c:7493
#, c-format
msgid "warning: %s: requires executable stack (because the .note.GNU-stack section is executable)"
msgstr ""
-#: elflink.c:7446
+#: elflink.c:7501
#, c-format
msgid "error: %s: is triggering the generation of an executable stack because it does not have a .note.GNU-stack section"
msgstr ""
-#: elflink.c:7452
+#: elflink.c:7507
#, c-format
msgid "warning: %s: missing .note.GNU-stack section implies executable stack"
msgstr ""
-#: elflink.c:7455
+#: elflink.c:7510
msgid "NOTE: This behaviour is deprecated and will be removed in a future version of the linker"
msgstr ""
-#: elflink.c:7609
+#: elflink.c:7664
#, c-format
msgid "%pB: .preinit_array section is not allowed in DSO"
msgstr ""
-#: elflink.c:9218
+#: elflink.c:9284
#, fuzzy, c-format
msgid "undefined %s reference in complex symbol: %s"
msgstr "simbol permulaan %s tidak ditakrifkan"
-#: elflink.c:9381 elflink.c:9389
+#: elflink.c:9447 elflink.c:9455
msgid "division by zero"
msgstr "dibahagi dengan sifar"
-#: elflink.c:9403
+#: elflink.c:9469
#, fuzzy, c-format
msgid "unknown operator '%c' in complex symbol"
msgstr "Pilihan tidak diketahui '-%c'\n"
#. PR 21524: Let the user know if a symbol was removed by garbage collection.
-#: elflink.c:9739
+#: elflink.c:9805
#, c-format
msgid "%pB:%pA: error: relocation references symbol %s which was removed by garbage collection"
msgstr ""
-#: elflink.c:9742
+#: elflink.c:9808
#, c-format
msgid "%pB:%pA: error: try relinking with --gc-keep-exported enabled"
msgstr ""
-#: elflink.c:9993 elflink.c:10011 elflink.c:10050 elflink.c:10068
+#: elflink.c:10059 elflink.c:10077 elflink.c:10116 elflink.c:10134
#, c-format
msgid "%pB: unable to sort relocs - they are in more than one size"
msgstr ""
#. The section size is not divisible by either -
#. something is wrong.
-#: elflink.c:10027 elflink.c:10084
+#: elflink.c:10093 elflink.c:10150
#, c-format
msgid "%pB: unable to sort relocs - they are of an unknown size"
msgstr ""
-#: elflink.c:10136
+#: elflink.c:10202
#, fuzzy
msgid "not enough memory to sort relocations"
msgstr "GIF: memori tidak mencukupi."
-#: elflink.c:10470
+#: elflink.c:10536
#, fuzzy, c-format
msgid "%pB: too many sections: %d (>= %d)"
msgstr "Terlalu banyak titik henti. Maksimum ialah %d."
-#: elflink.c:10746
+#: elflink.c:10812
#, c-format
msgid "%pB: internal symbol `%s' in %pB is referenced by DSO"
msgstr ""
-#: elflink.c:10749
+#: elflink.c:10815
#, c-format
msgid "%pB: hidden symbol `%s' in %pB is referenced by DSO"
msgstr ""
-#: elflink.c:10752
+#: elflink.c:10818
#, c-format
msgid "%pB: local symbol `%s' in %pB is referenced by DSO"
msgstr ""
-#: elflink.c:10845
+#: elflink.c:10911
#, c-format
msgid "%pB: could not find output section %pA for input section %pA"
msgstr ""
-#: elflink.c:11003
+#: elflink.c:11069
#, fuzzy, c-format
msgid "%pB: protected symbol `%s' isn't defined"
msgstr "simbol %s digunakan, tetapi tidak ditakrifkan sebagai token atau mempunyai hukum"
-#: elflink.c:11006
+#: elflink.c:11072
#, fuzzy, c-format
msgid "%pB: internal symbol `%s' isn't defined"
msgstr "simbol %s digunakan, tetapi tidak ditakrifkan sebagai token atau mempunyai hukum"
-#: elflink.c:11009
+#: elflink.c:11075
#, fuzzy, c-format
msgid "%pB: hidden symbol `%s' isn't defined"
msgstr "simbol %s digunakan, tetapi tidak ditakrifkan sebagai token atau mempunyai hukum"
-#: elflink.c:11041
+#: elflink.c:11107
#, c-format
msgid "%pB: no symbol version section for versioned symbol `%s'"
msgstr ""
-#: elflink.c:11723
+#: elflink.c:11649
+#, fuzzy, c-format
+msgid "error: %pB: unable to create group section symbol"
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
+
+#: elflink.c:11798
#, c-format
-msgid "error: %pB contains a reloc (%#<PRIx64>) for section %pA that references a non-existent global symbol"
+msgid "error: %pB contains a reloc (%#<PRIx64>) for section '%pA' that references a non-existent global symbol"
msgstr ""
-#: elflink.c:12193
+#: elflink.c:12264
#, c-format
msgid "error: %pB: size of section %pA is not multiple of address size"
msgstr ""
-#: elflink.c:12473
+#: elflink.c:12544
#, fuzzy, c-format
msgid "%pB: no symbol found for import library"
msgstr "Pustaka \"%1\" tidak dijumpai"
-#: elflink.c:13078
-msgid "%F%P: %pB: failed to finish relative relocations\n"
-msgstr ""
+#: elflink.c:13150
+#, fuzzy
+msgid "%P: %pB: failed to finish relative relocations\n"
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
-#: elflink.c:13155
+#: elflink.c:13227
#, fuzzy, c-format
msgid "%pB: file class %s incompatible with %s"
msgstr "%s: tidak sepadan dengan fail gmon pertama\n"
-#: elflink.c:13377
+#: elflink.c:13449
#, fuzzy, c-format
msgid "%pB: failed to generate import library"
msgstr "Pustaka yang digunakan untuk menjana lakaran kenit"
-#: elflink.c:13538
+#: elflink.c:13610
#, fuzzy, c-format
msgid "warning: %s section has zero size"
msgstr "Imej GIF yang terhasil bersaiz sifar"
-#: elflink.c:13586
+#: elflink.c:13658
#, c-format
msgid "warning: section '%s' is being made into a note"
msgstr ""
-#: elflink.c:13680
+#: elflink.c:13752
msgid "%P%X: read-only segment has dynamic relocations\n"
msgstr ""
-#: elflink.c:13683
+#: elflink.c:13755
msgid "%P: warning: creating DT_TEXTREL in a shared object\n"
msgstr ""
-#: elflink.c:13686
+#: elflink.c:13758
msgid "%P: warning: creating DT_TEXTREL in a PDE\n"
msgstr ""
-#: elflink.c:13689
+#: elflink.c:13761
msgid "%P: warning: creating DT_TEXTREL in a PIE\n"
msgstr ""
-#: elflink.c:13825
+#: elflink.c:13890
msgid "%P%X: can not read symbols: %E\n"
msgstr ""
-#: elflink.c:14258
-msgid "%F%P: %pB(%pA): error: need linked-to section for --gc-sections\n"
-msgstr ""
+#: elflink.c:14312
+#, fuzzy
+msgid "%P: %pB(%pA): error: need linked-to section for --gc-sections\n"
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
-#: elflink.c:14738
+#: elflink.c:14793
#, c-format
msgid "%pB: %pA+%#<PRIx64>: no symbol found for INHERIT"
msgstr ""
-#: elflink.c:14779
-#, c-format
+#: elflink.c:14834
+#, fuzzy, c-format
msgid "%pB: section '%pA': corrupt VTENTRY entry"
-msgstr ""
+msgstr "%pB: gagal menggabung .rsrc: bahagian .rsrc rosak"
-#: elflink.c:14922
+#: elflink.c:14977
#, fuzzy, c-format
msgid "unrecognized INPUT_SECTION_FLAG %s\n"
msgstr "%s: pilihan '--%s' tidak dikenali\n"
-#: elflink.c:15703
+#: elflink.c:15758
#, c-format
msgid "%P: %pB: warning: relocation against `%s' in read-only section `%pA'\n"
msgstr ""
-#: elflink.c:15792
+#: elflink.c:15847
msgid "%P: warning: GNU indirect functions with DT_TEXTREL may result in a segfault at runtime; recompile with %s\n"
msgstr ""
@@ -5278,67 +5332,67 @@ msgstr ""
msgid "%pB: warning: Weak TLS is implementation defined and may not work as expected"
msgstr ""
-#: elfxx-aarch64.c:773
+#: elfxx-aarch64.c:786
#, c-format
msgid "%Xerror: found a total of %d inputs incompatible with BTI requirements.\n"
msgstr ""
-#: elfxx-aarch64.c:775
+#: elfxx-aarch64.c:788
#, c-format
msgid "warning: found a total of %d inputs incompatible with BTI requirements.\n"
msgstr ""
-#: elfxx-aarch64.c:785
+#: elfxx-aarch64.c:798
#, c-format
msgid "%Xerror: found a total of %d inputs incompatible with GCS requirements.\n"
msgstr ""
-#: elfxx-aarch64.c:787
+#: elfxx-aarch64.c:800
#, c-format
msgid "warning: found a total of %d inputs incompatible with GCS requirements.\n"
msgstr ""
-#: elfxx-aarch64.c:797
+#: elfxx-aarch64.c:810
#, c-format
msgid "%Xerror: found a total of %d dynamically-linked objects incompatible with GCS requirements.\n"
msgstr ""
-#: elfxx-aarch64.c:799
+#: elfxx-aarch64.c:812
#, c-format
msgid "warning: found a total of %d dynamically-linked objects incompatible with GCS requirements.\n"
msgstr ""
-#: elfxx-aarch64.c:960
+#: elfxx-aarch64.c:971
#, c-format
msgid "error: %pB: <corrupt AArch64 used size: 0x%x>"
msgstr ""
-#: elfxx-aarch64.c:1104
+#: elfxx-aarch64.c:1115
#, c-format
msgid "%pB: warning: BTI is required by -z force-bti, but this input object file lacks the necessary property note.\n"
msgstr ""
-#: elfxx-aarch64.c:1106
+#: elfxx-aarch64.c:1117
#, c-format
msgid "%X%pB: error: BTI is required by -z force-bti, but this input object file lacks the necessary property note.\n"
msgstr ""
-#: elfxx-aarch64.c:1138
+#: elfxx-aarch64.c:1149
#, c-format
msgid "%pB: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking.\n"
msgstr ""
-#: elfxx-aarch64.c:1142
+#: elfxx-aarch64.c:1153
#, c-format
msgid "%X%pB: error: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking.\n"
msgstr ""
-#: elfxx-aarch64.c:1148
+#: elfxx-aarch64.c:1159
#, c-format
msgid "%pB: warning: GCS is required by -z gcs, but this input object file lacks the necessary property note.\n"
msgstr ""
-#: elfxx-aarch64.c:1150
+#: elfxx-aarch64.c:1161
#, c-format
msgid "%X%pB: error: GCS is required by -z gcs, but this input object file lacks the necessary property note.\n"
msgstr ""
@@ -5368,37 +5422,37 @@ msgstr "[find_call] %s: 0x%lx ke 0x%lx\n"
msgid "static procedure (no name)"
msgstr "nama prosedur tiada"
-#: elfxx-mips.c:5849
+#: elfxx-mips.c:5895
msgid "MIPS16 and microMIPS functions cannot call each other"
msgstr ""
-#: elfxx-mips.c:6619
+#: elfxx-mips.c:6665
msgid "%X%H: unsupported JALX to the same ISA mode\n"
msgstr ""
-#: elfxx-mips.c:6652
+#: elfxx-mips.c:6698
msgid "%X%H: unsupported jump between ISA modes; consider recompiling with interlinking enabled\n"
msgstr ""
-#: elfxx-mips.c:6697
+#: elfxx-mips.c:6743
msgid "%X%H: cannot convert branch between ISA modes to JALX: relocation out of range\n"
msgstr ""
-#: elfxx-mips.c:6709
+#: elfxx-mips.c:6755
msgid "%X%H: unsupported branch between ISA modes\n"
msgstr ""
-#: elfxx-mips.c:7355
+#: elfxx-mips.c:7401
#, c-format
msgid "%pB: incorrect `.reginfo' section size; expected %<PRIu64>, got %<PRIu64>"
msgstr ""
-#: elfxx-mips.c:7399
+#: elfxx-mips.c:7445
#, c-format
msgid "%pB: warning: bad `%s' option size %u smaller than its header"
msgstr ""
-#: elfxx-mips.c:7635
+#: elfxx-mips.c:7681
#, fuzzy, c-format
msgid "%pB: warning: truncated `%s' option"
msgstr ""
@@ -5406,769 +5460,834 @@ msgstr ""
"\n"
"%(warning)s"
-#: elfxx-mips.c:8453 elfxx-mips.c:8579
+#: elfxx-mips.c:8533 elfxx-mips.c:8659
#, c-format
msgid "%pB: warning: cannot determine the target function for stub section `%s'"
msgstr ""
-#: elfxx-mips.c:8711
+#: elfxx-mips.c:8791
#, c-format
msgid "%pB: malformed reloc detected for section %s"
msgstr ""
-#: elfxx-mips.c:8811
+#: elfxx-mips.c:8891
#, c-format
msgid "%pB: GOT reloc at %#<PRIx64> not expected in executables"
msgstr ""
-#: elfxx-mips.c:8951
+#: elfxx-mips.c:9031
#, c-format
msgid "%pB: CALL16 reloc at %#<PRIx64> not against global symbol"
msgstr ""
-#: elfxx-mips.c:9254
+#: elfxx-mips.c:9334
#, c-format
msgid "%X%H: relocation %s against `%s' cannot be used when making a shared object; recompile with -fPIC\n"
msgstr ""
-#: elfxx-mips.c:9380
+#: elfxx-mips.c:9460
#, c-format
msgid "IFUNC symbol %s in dynamic symbol table - IFUNCS are not supported"
msgstr ""
-#: elfxx-mips.c:9383
+#: elfxx-mips.c:9463
#, fuzzy, c-format
msgid "non-dynamic symbol %s in dynamic symbol table"
msgstr "Gagal menemui simbol '%s' dalam pustaka dinamik"
-#: elfxx-mips.c:9603
+#: elfxx-mips.c:9683
#, fuzzy, c-format
msgid "non-dynamic relocations refer to dynamic symbol %s"
msgstr "Gagal menemui simbol '%s' dalam pustaka dinamik"
-#: elfxx-mips.c:10523
+#: elfxx-mips.c:10606
#, c-format
msgid "%pB: can't find matching LO16 reloc against `%s' for %s at %#<PRIx64> in section `%pA'"
msgstr ""
-#: elfxx-mips.c:10663
+#: elfxx-mips.c:10748
msgid "small-data section too large; lower small-data size limit (see option -G)"
msgstr ""
-#: elfxx-mips.c:10682
+#: elfxx-mips.c:10767
msgid "cannot convert a jump to JALX for a non-word-aligned address"
msgstr ""
-#: elfxx-mips.c:10685
+#: elfxx-mips.c:10770
msgid "jump to a non-word-aligned address"
msgstr ""
-#: elfxx-mips.c:10686
+#: elfxx-mips.c:10771
msgid "jump to a non-instruction-aligned address"
msgstr ""
-#: elfxx-mips.c:10689
+#: elfxx-mips.c:10774
msgid "cannot convert a branch to JALX for a non-word-aligned address"
msgstr ""
-#: elfxx-mips.c:10691
+#: elfxx-mips.c:10776
msgid "branch to a non-instruction-aligned address"
msgstr ""
-#: elfxx-mips.c:10693
+#: elfxx-mips.c:10778
msgid "PC-relative load from unaligned address"
msgstr ""
-#: elfxx-mips.c:10993
+#: elfxx-mips.c:11078
#, c-format
msgid "%pB: `%pA' entry VMA of %#<PRIx64> outside the 32-bit range supported; consider using `-Ttext-segment=...'"
msgstr ""
-#: elfxx-mips.c:11108 elfxx-mips.c:11701
+#: elfxx-mips.c:11193 elfxx-mips.c:11786
#, c-format
msgid "%pB: `%pA' offset of %<PRId64> from `%pA' beyond the range of ADDIUPC"
msgstr ""
-#: elfxx-mips.c:11673
+#: elfxx-mips.c:11758
#, c-format
msgid "%pB: `%pA' start VMA of %#<PRIx64> outside the 32-bit range supported; consider using `-Ttext-segment=...'"
msgstr ""
-#: elfxx-mips.c:13418 reloc.c:8518
+#: elfxx-mips.c:13503 reloc.c:8524
#, c-format
msgid "%X%P: %pB(%pA): error: relocation for offset %V has no value\n"
msgstr ""
-#: elfxx-mips.c:14729
+#: elfxx-mips.c:14814
#, fuzzy, c-format
msgid "%pB: unknown architecture %s"
msgstr "%s: -c tidak disokong pada rekabentuk %s\n"
-#: elfxx-mips.c:15257
+#: elfxx-mips.c:15342
#, fuzzy, c-format
msgid "%pB: illegal section name `%pA'"
msgstr "%pB: gagal membaca bahagian data nyahpepijat"
-#: elfxx-mips.c:15534
+#: elfxx-mips.c:15620
#, c-format
msgid "%pB: warning: linking abicalls files with non-abicalls files"
msgstr ""
-#: elfxx-mips.c:15551
+#: elfxx-mips.c:15637
#, c-format
msgid "%pB: linking 32-bit code with 64-bit code"
msgstr ""
-#: elfxx-mips.c:15583 elfxx-mips.c:15649 elfxx-mips.c:15664
+#: elfxx-mips.c:15669 elfxx-mips.c:15735 elfxx-mips.c:15750
#, c-format
msgid "%pB: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:15607
+#: elfxx-mips.c:15693
#, c-format
msgid "%pB: ABI mismatch: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:15632
+#: elfxx-mips.c:15718
#, c-format
msgid "%pB: ASE mismatch: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:15766
+#: elfxx-mips.c:15852
#, c-format
msgid "warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses unknown floating point ABI %d"
msgstr ""
-#: elfxx-mips.c:15772
+#: elfxx-mips.c:15858
#, c-format
msgid "warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses %s"
msgstr ""
-#: elfxx-mips.c:15778
+#: elfxx-mips.c:15864
#, c-format
msgid "warning: %pB uses %s (set by %pB), %pB uses unknown floating point ABI %d"
msgstr ""
-#: elfxx-mips.c:15792
+#: elfxx-mips.c:15878
#, c-format
msgid "warning: %pB uses %s (set by %pB), %pB uses %s"
msgstr ""
-#: elfxx-mips.c:15811
+#: elfxx-mips.c:15897
#, c-format
msgid "warning: %pB uses %s (set by %pB), %pB uses unknown MSA ABI %d"
msgstr ""
-#: elfxx-mips.c:15823
+#: elfxx-mips.c:15909
#, c-format
msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses %s"
msgstr ""
-#: elfxx-mips.c:15832
+#: elfxx-mips.c:15918
#, c-format
msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses unknown MSA ABI %d"
msgstr ""
-#: elfxx-mips.c:15894
+#: elfxx-mips.c:15980
#, fuzzy, c-format
msgid "%pB: endianness incompatible with that of the selected emulation"
msgstr "Kekunci DSA yang diberikan tidak serasi dengan protokol TLS yang dipilih."
-#: elfxx-mips.c:15908
+#: elfxx-mips.c:15994
#, fuzzy, c-format
msgid "%pB: ABI is incompatible with that of the selected emulation"
msgstr "Kekunci DSA yang diberikan tidak serasi dengan protokol TLS yang dipilih."
-#: elfxx-mips.c:15961
+#: elfxx-mips.c:16047
#, c-format
msgid "%pB: warning: inconsistent ISA between e_flags and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15966
+#: elfxx-mips.c:16052
#, c-format
msgid "%pB: warning: inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15970
+#: elfxx-mips.c:16056
#, c-format
msgid "%pB: warning: inconsistent ASEs between e_flags and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15977
+#: elfxx-mips.c:16063
#, c-format
msgid "%pB: warning: inconsistent ISA extensions between e_flags and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15981
+#: elfxx-mips.c:16067
#, c-format
msgid "%pB: warning: unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)"
msgstr ""
-#: elfxx-mips.c:16172
+#: elfxx-mips.c:16258
msgid "-mips32r2 -mfp64 (12 callee-saved)"
msgstr ""
-#: elfxx-mips.c:16234 elfxx-mips.c:16245
+#: elfxx-mips.c:16320 elfxx-mips.c:16331
msgid "None"
msgstr "Tiada"
-#: elfxx-mips.c:16236 elfxx-mips.c:16305
+#: elfxx-mips.c:16322 elfxx-mips.c:16391
msgid "Unknown"
msgstr "Tidak Diketahui"
-#: elfxx-mips.c:16316
+#: elfxx-mips.c:16402
#, fuzzy, c-format
msgid "Hard or soft float\n"
msgstr "apung"
-#: elfxx-mips.c:16319
+#: elfxx-mips.c:16405
#, fuzzy, c-format
msgid "Hard float (double precision)\n"
msgstr "Kepersisan"
-#: elfxx-mips.c:16322
+#: elfxx-mips.c:16408
#, fuzzy, c-format
msgid "Hard float (single precision)\n"
msgstr "Volum audio jitu tunggal"
-#: elfxx-mips.c:16325
+#: elfxx-mips.c:16411
#, fuzzy, c-format
msgid "Soft float\n"
msgstr "Soft"
-#: elfxx-mips.c:16328
+#: elfxx-mips.c:16414
#, c-format
msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
msgstr ""
-#: elfxx-mips.c:16331
+#: elfxx-mips.c:16417
#, c-format
msgid "Hard float (32-bit CPU, Any FPU)\n"
msgstr ""
-#: elfxx-mips.c:16334
+#: elfxx-mips.c:16420
#, c-format
msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
msgstr ""
-#: elfxx-mips.c:16337
+#: elfxx-mips.c:16423
#, c-format
msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
msgstr ""
-#: elfxx-mips.c:16369
+#: elfxx-mips.c:16455
#, c-format
msgid " [abi=O32]"
msgstr ""
-#: elfxx-mips.c:16371
+#: elfxx-mips.c:16457
#, c-format
msgid " [abi=O64]"
msgstr ""
-#: elfxx-mips.c:16373
+#: elfxx-mips.c:16459
#, c-format
msgid " [abi=EABI32]"
msgstr ""
-#: elfxx-mips.c:16375
+#: elfxx-mips.c:16461
#, c-format
msgid " [abi=EABI64]"
msgstr ""
-#: elfxx-mips.c:16377
+#: elfxx-mips.c:16463
#, fuzzy, c-format
msgid " [abi unknown]"
msgstr "Tidak diketahui "
-#: elfxx-mips.c:16379
+#: elfxx-mips.c:16465
#, c-format
msgid " [abi=N32]"
msgstr ""
-#: elfxx-mips.c:16381
+#: elfxx-mips.c:16467
#, c-format
msgid " [abi=64]"
msgstr " [abi=64]"
-#: elfxx-mips.c:16383
+#: elfxx-mips.c:16469
#, fuzzy, c-format
msgid " [no abi set]"
msgstr "tidak ditetapkan"
-#: elfxx-mips.c:16408
+#: elfxx-mips.c:16494
#, fuzzy, c-format
msgid " [unknown ISA]"
msgstr "Tidak diketahui "
-#: elfxx-mips.c:16428
+#: elfxx-mips.c:16514
#, c-format
msgid " [not 32bitmode]"
msgstr ""
-#: elfxx-riscv.c:1827
+#: elfxx-riscv.c:1950
#, c-format
msgid "x ISA extension `%s' must be set with the versions"
msgstr ""
-#: elfxx-riscv.c:1833
+#: elfxx-riscv.c:1956
#, c-format
msgid "cannot find default versions of the ISA extension `%s'"
msgstr ""
-#: elfxx-riscv.c:1939
+#: elfxx-riscv.c:2063
#, c-format
msgid "%s: first ISA extension must be `e', `i' or `g'"
msgstr ""
-#: elfxx-riscv.c:1963
+#: elfxx-riscv.c:2087
#, c-format
msgid "%s: unknown standard ISA extension or prefix class `%c'"
msgstr ""
-#: elfxx-riscv.c:1999
+#: elfxx-riscv.c:2123
#, c-format
msgid "%s: invalid prefixed ISA extension `%s' ends with <number>p"
msgstr ""
-#: elfxx-riscv.c:2023
+#: elfxx-riscv.c:2147
#, fuzzy, c-format
msgid "%s: unknown prefixed ISA extension `%s'"
msgstr "%s\t\tSambungan tidak diketahui %s (%s):\n"
-#: elfxx-riscv.c:2047
+#: elfxx-riscv.c:2171
#, c-format
msgid "%s: prefixed ISA extension must separate with _"
msgstr ""
-#: elfxx-riscv.c:2087
+#: elfxx-riscv.c:2211
#, fuzzy, c-format
msgid "rv%de does not support the `h' extension"
msgstr "Sambungan tidak menyokong versi shell"
-#: elfxx-riscv.c:2095
+#: elfxx-riscv.c:2219
#, fuzzy, c-format
msgid "rv%d does not support the `q' extension"
msgstr "Sambungan tidak menyokong versi shell"
-#: elfxx-riscv.c:2102
-msgid "zcmp' is incompatible with `d/zcd' extension"
+#: elfxx-riscv.c:2226
+msgid "zcmp' is incompatible with `d' and `c', or `zcd' extension"
msgstr ""
-#: elfxx-riscv.c:2109
+#: elfxx-riscv.c:2233
#, fuzzy, c-format
msgid "rv%d does not support the `zcf' extension"
msgstr "Sambungan tidak menyokong versi shell"
-#: elfxx-riscv.c:2116
+#: elfxx-riscv.c:2240
msgid "`zfinx' is conflict with the `f/d/q/zfh/zfhmin' extension"
msgstr ""
-#: elfxx-riscv.c:2123
+#: elfxx-riscv.c:2247
+#, fuzzy
+msgid "`xtheadvector' is conflict with the `v/zve32x' extension"
+msgstr "Penghujungan:"
+
+#: elfxx-riscv.c:2256
#, fuzzy
-msgid "`xtheadvector' is conflict with the `v' extension"
+msgid "`zclsd' is conflict with the `c+f'/ `zcf' extension"
msgstr "V"
-#: elfxx-riscv.c:2144
+#: elfxx-riscv.c:2261
+#, fuzzy, c-format
+msgid "rv%d does not support the `ssnpm' extension"
+msgstr "Sambungan tidak menyokong versi shell"
+
+#: elfxx-riscv.c:2267
+#, fuzzy, c-format
+msgid "rv%d does not support the `smnpm' extension"
+msgstr "Sambungan tidak menyokong versi shell"
+
+#: elfxx-riscv.c:2273
+#, fuzzy, c-format
+msgid "rv%d does not support the `smmpm' extension"
+msgstr "Sambungan tidak menyokong versi shell"
+
+#: elfxx-riscv.c:2279
+#, fuzzy, c-format
+msgid "rv%d does not support the `sspm' extension"
+msgstr "Sambungan tidak menyokong versi shell"
+
+#: elfxx-riscv.c:2285
+#, fuzzy, c-format
+msgid "rv%d does not support the `supm' extension"
+msgstr "Sambungan tidak menyokong versi shell"
+
+#: elfxx-riscv.c:2307
msgid "zvl*b extensions need to enable either `v' or `zve' extension"
msgstr ""
-#: elfxx-riscv.c:2206
+#: elfxx-riscv.c:2364
+msgid "Warning: should use \"_\" to contact Profiles with other extensions"
+msgstr ""
+
+#: elfxx-riscv.c:2405
#, c-format
msgid "%s: ISA string cannot contain uppercase letters"
msgstr ""
-#: elfxx-riscv.c:2234
+#: elfxx-riscv.c:2439
#, c-format
-msgid "%s: ISA string must begin with rv32 or rv64"
+msgid "%s: ISA string must begin with rv32, rv64 or Profiles"
msgstr ""
-#: elfxx-riscv.c:2417
+#: elfxx-riscv.c:2629
#, fuzzy
msgid "internal: "
msgstr "Dalaman"
-#: elfxx-riscv.c:2471
+#: elfxx-riscv.c:2683
#, c-format
msgid "%sinvalid ISA extension ends with <number>p in %s `%s'"
msgstr ""
-#: elfxx-riscv.c:2494
+#: elfxx-riscv.c:2706
#, fuzzy, c-format
msgid "%sunknown ISA extension `%s' in %s `%s'"
msgstr "%s\t\tSambungan tidak diketahui %s (%s):\n"
-#: elfxx-riscv.c:2506
+#: elfxx-riscv.c:2717
#, fuzzy, c-format
-msgid "%scannot + or - base extension `%s' in %s `%s'"
+msgid "%sdeprecated - extension `%s' in %s `%s'"
msgstr "%s\t\tSambungan tidak diketahui %s (%s):\n"
-#: elfxx-riscv.c:2817 elfxx-riscv.c:3112
+#: elfxx-riscv.c:2727
+#, fuzzy, c-format
+msgid "%scannot + base extension `%s' in %s `%s'"
+msgstr "%s\t\tSambungan tidak diketahui %s (%s):\n"
+
+#: elfxx-riscv.c:3059 elfxx-riscv.c:3343
#, fuzzy
msgid "internal: unreachable INSN_CLASS_*"
msgstr "KELAS"
-#: elfxx-riscv.c:2851
+#: elfxx-riscv.c:3093
msgid "zicfiss' and `zcmop"
msgstr ""
-#: elfxx-riscv.c:2865
+#: elfxx-riscv.c:3106
#, fuzzy
msgid "zihintntl' and `c', or `zihintntl' and `zca"
msgstr "_C/C++"
-#: elfxx-riscv.c:2870 elfxx-riscv.c:2896
+#: elfxx-riscv.c:3111 elfxx-riscv.c:3137
#, fuzzy
msgid "c' or `zca"
msgstr "_C/C++"
-#: elfxx-riscv.c:2878
+#: elfxx-riscv.c:3119
#, fuzzy
msgid "m' or `zmmul"
msgstr "%a dari %m"
-#: elfxx-riscv.c:2902
+#: elfxx-riscv.c:3139
#, fuzzy
-msgid "f' and `c', or `f' and `zcf"
-msgstr "F"
+msgid "f' and `c', or `zcf"
+msgstr "%.0f° C / %.0f° F"
-#: elfxx-riscv.c:2907
+#: elfxx-riscv.c:3141
#, fuzzy
-msgid "c' or `zcf"
-msgstr "_C/C++"
-
-#: elfxx-riscv.c:2913
-#, fuzzy
-msgid "d' and `c', or `d' and `zcd"
+msgid "d' and `c', or `zcd"
msgstr "Volum %d%c (disenyapkan)"
-#: elfxx-riscv.c:2918
-#, fuzzy
-msgid "c' or `zcd"
-msgstr "_C/C++"
-
-#: elfxx-riscv.c:2920
+#: elfxx-riscv.c:3143
#, fuzzy
msgid "f' or `zfinx"
msgstr "%.f%%"
-#: elfxx-riscv.c:2922
+#: elfxx-riscv.c:3145
#, fuzzy
msgid "d' or `zdinx"
msgstr "%d × %d"
-#: elfxx-riscv.c:2924
+#: elfxx-riscv.c:3147
#, fuzzy
msgid "q' or `zqinx"
msgstr "\t\tQ: "
-#: elfxx-riscv.c:2926
+#: elfxx-riscv.c:3149
msgid "zfh' or `zhinx"
msgstr ""
-#: elfxx-riscv.c:2930
+#: elfxx-riscv.c:3153
msgid "zfhmin' or `zhinxmin"
msgstr ""
-#: elfxx-riscv.c:2941
+#: elfxx-riscv.c:3164
#, fuzzy
msgid "zfhmin' and `d', or `zhinxmin' and `zdinx"
msgstr "%d × %d"
-#: elfxx-riscv.c:2952
+#: elfxx-riscv.c:3175
#, fuzzy
msgid "zfhmin' and `q', or `zhinxmin' and `zqinx"
msgstr " q, Q, Esc Keluar"
-#: elfxx-riscv.c:2960
+#: elfxx-riscv.c:3183
#, fuzzy
msgid "d' and `zfa"
msgstr "%d × %d"
-#: elfxx-riscv.c:2968
+#: elfxx-riscv.c:3191
#, fuzzy
msgid "q' and `zfa"
msgstr "\t\tQ: "
-#: elfxx-riscv.c:2976
+#: elfxx-riscv.c:3199
msgid "zfh' and `zfa"
msgstr ""
-#: elfxx-riscv.c:2986
+#: elfxx-riscv.c:3209
msgid "zfh' and `zfa', or `zvfh' and `zfa"
msgstr ""
-#: elfxx-riscv.c:2991
+#: elfxx-riscv.c:3214
msgid "zfh' or `zvfh"
msgstr ""
-#: elfxx-riscv.c:3007
+#: elfxx-riscv.c:3230
msgid "zbb' or `zbkb"
msgstr ""
-#: elfxx-riscv.c:3009
+#: elfxx-riscv.c:3232
msgid "zbc' or `zbkc"
msgstr ""
-#: elfxx-riscv.c:3017
+#: elfxx-riscv.c:3240
msgid "zknd' or `zkne"
msgstr ""
-#: elfxx-riscv.c:3023
+#: elfxx-riscv.c:3246
#, fuzzy
msgid "v' or `zve64x' or `zve32x"
msgstr "Ctrl+V"
-#: elfxx-riscv.c:3025
+#: elfxx-riscv.c:3248
#, fuzzy
msgid "v' or `zve64d' or `zve64f' or `zve32f"
msgstr "Ctrl+V"
-#: elfxx-riscv.c:3027
+#: elfxx-riscv.c:3250
msgid "zvbb"
msgstr ""
-#: elfxx-riscv.c:3029
+#: elfxx-riscv.c:3252
msgid "zvbc"
msgstr ""
-#: elfxx-riscv.c:3035
+#: elfxx-riscv.c:3258
msgid "zvkb"
msgstr ""
-#: elfxx-riscv.c:3037
+#: elfxx-riscv.c:3260
msgid "zvkg"
msgstr ""
-#: elfxx-riscv.c:3039
+#: elfxx-riscv.c:3262
msgid "zvkned"
msgstr ""
-#: elfxx-riscv.c:3041
+#: elfxx-riscv.c:3264
msgid "zvknha' or `zvknhb"
msgstr ""
-#: elfxx-riscv.c:3043
+#: elfxx-riscv.c:3266
msgid "zvksed"
msgstr ""
-#: elfxx-riscv.c:3045
+#: elfxx-riscv.c:3268
msgid "zvksh"
msgstr ""
-#: elfxx-riscv.c:3049
+#: elfxx-riscv.c:3272
msgid "zcb' and `zba"
msgstr ""
-#: elfxx-riscv.c:3051
+#: elfxx-riscv.c:3274
msgid "zcb' and `zbb"
msgstr ""
-#: elfxx-riscv.c:3053
+#: elfxx-riscv.c:3276
#, fuzzy
msgid "zcb' and `zmmul', or `zcb' and `m"
msgstr "Mod:"
-#: elfxx-riscv.c:3061
+#: elfxx-riscv.c:3284
msgid "smctr' or `ssctr"
msgstr ""
-#: elfxx-riscv.c:3065
+#: elfxx-riscv.c:3294
msgid "h"
msgstr "h"
-#: elfxx-sparc.c:3017 elfnn-aarch64.c:5750
+#: elfxx-riscv.c:3441
+msgid "%F%P: failed to create GNU property section\n"
+msgstr ""
+
+#: elfxx-riscv.c:3485
+#, c-format
+msgid "error: %pB: <corrupt RISC-V used size: 0x%x>"
+msgstr ""
+
+#: elfxx-sparc.c:3028 elfnn-aarch64.c:5768
#, c-format
msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s"
msgstr ""
-#: elfxx-tilegx.c:4126
+#: elfxx-tilegx.c:4128
#, fuzzy, c-format
msgid "%pB: cannot link together %s and %s objects"
msgstr "%s: Tak dapat memaut keras ke %s"
-#: elfxx-x86.c:534 elfxx-x86.c:3597
+#: elfxx-x86.c:534 elfxx-x86.c:3586
#, c-format
-msgid "%F%P: %pB: copy relocation against non-copyable protected symbol `%s' in %pB\n"
+msgid "%P: %pB: copy relocation against non-copyable protected symbol `%s' in %pB\n"
msgstr ""
-#: elfxx-x86.c:1044
+#: elfxx-x86.c:1027
#, c-format
-msgid "%F%P: %pB: failed to allocate relative reloc record\n"
+msgid "%P: %pB: failed to allocate relative reloc record\n"
msgstr ""
-#: elfxx-x86.c:1403
+#: elfxx-x86.c:1388
#, c-format
-msgid "%F%P: %pB: failed to allocate 64-bit DT_RELR bitmap\n"
+msgid "%P: %pB: failed to allocate 64-bit DT_RELR bitmap\n"
msgstr ""
-#: elfxx-x86.c:1439
+#: elfxx-x86.c:1424
#, c-format
-msgid "%F%P: %pB: failed to allocate 32-bit DT_RELR bitmap\n"
+msgid "%P: %pB: failed to allocate 32-bit DT_RELR bitmap\n"
msgstr ""
-#: elfxx-x86.c:1578
-#, c-format
-msgid "%F%P: %pB: failed to allocate memory for section `%pA'\n"
-msgstr ""
+#: elfxx-x86.c:1563
+#, fuzzy, c-format
+msgid "%P: %pB: failed to allocate memory for section `%pA'\n"
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
-#: elfxx-x86.c:1765
+#: elfxx-x86.c:1750
#, c-format
-msgid "%F%P: %pB: size of compact relative reloc section is changed: new (%lu) != old (%lu)\n"
+msgid "%P: %pB: size of compact relative reloc section is changed: new (%lu) != old (%lu)\n"
msgstr ""
-#: elfxx-x86.c:1787
-#, c-format
-msgid "%F%P: %pB: failed to allocate compact relative reloc section\n"
-msgstr ""
+#: elfxx-x86.c:1772
+#, fuzzy, c-format
+msgid "%P: %pB: failed to allocate compact relative reloc section\n"
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
-#: elfxx-x86.c:2256
+#: elfxx-x86.c:2243
#, c-format
-msgid "%F%P: %pB: relocation %s against absolute symbol `%s' in section `%pA' is disallowed\n"
+msgid "%P: %pB: relocation %s against absolute symbol `%s' in section `%pA' is disallowed\n"
msgstr ""
-#: elfxx-x86.c:2338
+#: elfxx-x86.c:2325
msgid "%P: %pB: warning: relocation in read-only section `%pA'\n"
msgstr ""
-#: elfxx-x86.c:3265
+#: elfxx-x86.c:3254
msgid "%pB: %s (offset: 0x%v, info: 0x%v, addend: 0x%v) against '%s' for section '%pA' in %pB\n"
msgstr ""
-#: elfxx-x86.c:3271
+#: elfxx-x86.c:3260
msgid "%pB: %s (offset: 0x%v, info: 0x%v) against '%s' for section '%pA' in %pB\n"
msgstr ""
-#: elfxx-x86.c:3307
+#: elfxx-x86.c:3296
#, c-format
msgid "%pB: TLS transition from %s to %s against `%s' at 0x%v in section `%pA' failed\n"
msgstr ""
-#: elfxx-x86.c:3316
+#: elfxx-x86.c:3305
#, c-format
-msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in ADD only\n"
+msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in ADD or MOV only\n"
msgstr ""
-#: elfxx-x86.c:3324
+#: elfxx-x86.c:3313
#, c-format
-msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in ADD or MOV only\n"
+msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in ADD or MOVRS only\n"
msgstr ""
-#: elfxx-x86.c:3332
+#: elfxx-x86.c:3321
#, c-format
msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in ADD, SUB or MOV only\n"
msgstr ""
-#: elfxx-x86.c:3340
+#: elfxx-x86.c:3329
#, c-format
msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in indirect CALL with %s register only\n"
msgstr ""
-#: elfxx-x86.c:3349
+#: elfxx-x86.c:3338
#, c-format
msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in LEA only\n"
msgstr ""
-#: elfxx-x86.c:3976
+#: elfxx-x86.c:3965
#, c-format
msgid "error: %pB: <corrupt x86 property (0x%x) size: 0x%x>"
msgstr ""
-#: elfxx-x86.c:4189
+#: elfxx-x86.c:4178
#, fuzzy, c-format
msgid "%pB: x86 ISA needed: "
msgstr "Sistem x86 32-bit"
-#: elfxx-x86.c:4191
+#: elfxx-x86.c:4180
#, fuzzy, c-format
msgid "%pB: x86 ISA used: "
msgstr "Sistem x86 32-bit"
-#: elfxx-x86.c:4213
+#: elfxx-x86.c:4202
#, fuzzy, c-format
msgid "<unknown: %x>"
msgstr "(Kod mekanisma GSSAPI tidak diketahui: %x)"
-#: elfxx-x86.c:4368
+#: elfxx-x86.c:4338
+#, fuzzy
+#| msgid "%pB: failed to read debug data section"
+msgid "%P: failed to create %sn"
+msgstr "Gagal mencipta kursor."
+
+#: elfxx-x86.c:4352
#, fuzzy
msgid "%P: %pB: warning: missing %s\n"
msgstr "%s Pb"
-#: elfxx-x86.c:4369
+#: elfxx-x86.c:4353
#, fuzzy
msgid "%X%P: %pB: error: missing %s\n"
msgstr "Ralat dalam alamat \"%s\"— atribut hos hilang atau cacat"
-#: elfxx-x86.c:4475
+#: elfxx-x86.c:4459
#, fuzzy
msgid "IBT and SHSTK properties"
msgstr "&Sifat…"
-#: elfxx-x86.c:4477
+#: elfxx-x86.c:4461
#, fuzzy
msgid "IBT property"
msgstr "Si_fat:"
-#: elfxx-x86.c:4479
+#: elfxx-x86.c:4463
#, fuzzy
msgid "SHSTK property"
msgstr "Si_fat:"
-#: elfxx-x86.c:4484
+#: elfxx-x86.c:4468
#, fuzzy
msgid "LAM_U48 property"
msgstr "Si_fat:"
-#: elfxx-x86.c:4489
+#: elfxx-x86.c:4473
#, fuzzy
msgid "LAM_U57 property"
msgstr "Si_fat:"
-#: elfxx-x86.c:4667
-msgid "%F%P: failed to create VxWorks dynamic sections\n"
-msgstr ""
+#: elfxx-x86.c:4651
+#, fuzzy
+#| msgid "%pB: failed to read debug data section"
+msgid "%P: failed to create VxWorks dynamic sections\n"
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
-#: elfxx-x86.c:4676
-msgid "%F%P: failed to create GOT sections\n"
-msgstr ""
+#: elfxx-x86.c:4660
+#, fuzzy
+#| msgid "%pB: failed to read debug data section"
+msgid "%P: failed to create GOT sections\n"
+msgstr "Dapat %1 kulit muka dari %2 (%3 gagal)"
-#: elfxx-x86.c:4694
-msgid "%F%P: failed to create ifunc sections\n"
-msgstr ""
+#: elfxx-x86.c:4678
+#, fuzzy
+msgid "%P: failed to create ifunc sections\n"
+msgstr "Gagal mencipta direktori \"%s\""
-#: elfxx-x86.c:4731
-msgid "%F%P: failed to create GOT PLT section\n"
-msgstr ""
+#: elfxx-x86.c:4717
+#, fuzzy
+#| msgid "%pB: failed to read debug data section"
+msgid "%P: failed to create GOT PLT section\n"
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
-#: elfxx-x86.c:4750
-msgid "%F%P: failed to create IBT-enabled PLT section\n"
-msgstr ""
+#: elfxx-x86.c:4734
+#, fuzzy
+#| msgid "%pB: failed to read debug data section"
+msgid "%P: failed to create IBT-enabled PLT section\n"
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
-#: elfxx-x86.c:4770
-msgid "%F%P: failed to create PLT .eh_frame section\n"
-msgstr ""
+#: elfxx-x86.c:4752
+#, fuzzy
+#| msgid "%pB: failed to read debug data section"
+msgid "%P: failed to create PLT .eh_frame section\n"
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
-#: elfxx-x86.c:4783
-msgid "%F%P: failed to create GOT PLT .eh_frame section\n"
-msgstr ""
+#: elfxx-x86.c:4763
+#, fuzzy
+#| msgid "%pB: failed to read debug data section"
+msgid "%P: failed to create GOT PLT .eh_frame section\n"
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
-#: elfxx-x86.c:4797
-msgid "%F%P: failed to create the second PLT .eh_frame section\n"
-msgstr ""
+#: elfxx-x86.c:4775
+#, fuzzy
+#| msgid "%pB: failed to read debug data section"
+msgid "%P: failed to create the second PLT .eh_frame section\n"
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
-#: elfxx-x86.c:4817
-msgid "%F%P: failed to create PLT .sframe section\n"
-msgstr ""
+#: elfxx-x86.c:4790
+#, fuzzy
+#| msgid "%pB: failed to read debug data section"
+msgid "%P: failed to create PLT .sframe section\n"
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
-#: elfxx-x86.c:4832
-msgid "%F%P: failed to create second PLT .sframe section\n"
-msgstr ""
+#: elfxx-x86.c:4806
+#, fuzzy
+#| msgid "%pB: failed to read debug data section"
+msgid "%P: failed to create second PLT .sframe section\n"
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
-#: elfxx-x86.c:4844
-msgid "%F%P: failed to create PLT GOT .sframe section\n"
-msgstr ""
+#: elfxx-x86.c:4819
+#, fuzzy
+#| msgid "%pB: failed to read debug data section"
+msgid "%P: failed to create PLT GOT .sframe section\n"
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
-#: elfxx-x86.c:4883
+#: elfxx-x86.c:4859
msgid "%X%P: attempted static link of dynamic object `%pB'\n"
msgstr ""
@@ -6237,46 +6356,46 @@ msgstr ""
msgid "%pB: mapped section %pA has non-NULL buffer"
msgstr ""
-#: linker.c:1731
+#: linker.c:1749
#, c-format
msgid "%pB: indirect symbol `%s' to `%s' is a loop"
msgstr ""
-#: linker.c:1811
+#: linker.c:1829
msgid "%P: %pB: note: the message above does not take linker garbage collection into account\n"
msgstr ""
-#: linker.c:2617
+#: linker.c:2663
#, c-format
msgid "attempt to do relocatable link with %s input and %s output"
msgstr ""
-#: linker.c:2896
+#: linker.c:2942
#, fuzzy, c-format
msgid "%pB: ignoring duplicate section `%pA'\n"
msgstr "%pB: gagal membaca bahagian data nyahpepijat"
-#: linker.c:2906 linker.c:2916
+#: linker.c:2952 linker.c:2962
#, c-format
msgid "%pB: duplicate section `%pA' has different size\n"
msgstr ""
-#: linker.c:2930 linker.c:2938
+#: linker.c:2976 linker.c:2984
#, fuzzy, c-format
msgid "%pB: could not read contents of section `%pA'\n"
msgstr "%pB: gagal membaca bahagian data nyahpepijat"
-#: linker.c:2947
+#: linker.c:2993
#, c-format
msgid "%pB: duplicate section `%pA' has different contents\n"
msgstr ""
-#: linker.c:3466
+#: linker.c:3517
#, c-format
msgid "%pB: compiled for a big endian system and target is little endian"
msgstr ""
-#: linker.c:3469
+#: linker.c:3520
#, c-format
msgid "%pB: compiled for a little endian system and target is big endian"
msgstr ""
@@ -6315,27 +6434,27 @@ msgstr ""
msgid "malformed mach-o ARM reloc: unknown reloc type: %d"
msgstr ""
-#: mach-o.c:640
+#: mach-o.c:642
#, fuzzy, c-format
msgid "<unknown mask flags>"
msgstr "Bendera"
-#: mach-o.c:695
+#: mach-o.c:697
#, fuzzy
msgid " (<unknown>)"
msgstr "Tidak diketahui "
-#: mach-o.c:707
+#: mach-o.c:709
#, fuzzy, c-format
msgid " MACH-O header:\n"
msgstr "Output:"
-#: mach-o.c:708
+#: mach-o.c:710
#, fuzzy, c-format
msgid " magic: %#lx\n"
msgstr "Ajaib"
-#: mach-o.c:709
+#: mach-o.c:711
#, fuzzy, c-format
msgid " cputype: %#lx (%s)\n"
msgstr ""
@@ -6343,7 +6462,7 @@ msgstr ""
"Terdapat direktori nyahpepijat dalam %s pada 0x%lx\n"
"\n"
-#: mach-o.c:711
+#: mach-o.c:713
#, fuzzy, c-format
msgid " cpusubtype: %#lx%s\n"
msgstr ""
@@ -6351,12 +6470,12 @@ msgstr ""
"Terdapat direktori nyahpepijat dalam %s pada 0x%lx\n"
"\n"
-#: mach-o.c:713
+#: mach-o.c:715
#, fuzzy, c-format
msgid " filetype: %#lx\n"
msgstr "Tiada jenis fail"
-#: mach-o.c:714
+#: mach-o.c:716
#, fuzzy, c-format
msgid " ncmds: %#lx\n"
msgstr ""
@@ -6364,7 +6483,7 @@ msgstr ""
"Terdapat direktori nyahpepijat dalam %s pada 0x%lx\n"
"\n"
-#: mach-o.c:715
+#: mach-o.c:717
#, fuzzy, c-format
msgid " sizeocmds: %#lx\n"
msgstr ""
@@ -6372,100 +6491,100 @@ msgstr ""
"Terdapat direktori nyahpepijat dalam %s pada 0x%lx\n"
"\n"
-#: mach-o.c:716
+#: mach-o.c:718
#, fuzzy, c-format
msgid " flags: %#lx\n"
msgstr "Bendera"
-#: mach-o.c:717
+#: mach-o.c:719
#, fuzzy, c-format
msgid " version: %x\n"
msgstr "Versi"
#. Urg - what has happened ?
-#: mach-o.c:752
+#: mach-o.c:754
#, c-format
msgid "incompatible cputypes in mach-o files: %ld vs %ld"
msgstr ""
-#: mach-o.c:921
+#: mach-o.c:923
msgid "bfd_mach_o_canonicalize_symtab: unable to load symbols"
msgstr ""
-#: mach-o.c:1513
+#: mach-o.c:1515
msgid "malformed mach-o reloc: section index is greater than the number of sections"
msgstr ""
-#: mach-o.c:2155
+#: mach-o.c:2157
msgid "sorry: modtab, toc and extrefsyms are not yet implemented for dysymtab commands."
msgstr ""
-#: mach-o.c:2603
+#: mach-o.c:2605
#, c-format
msgid "mach-o: there are too many sections (%u) maximum is 255,\n"
msgstr ""
-#: mach-o.c:2695
+#: mach-o.c:2697
#, fuzzy, c-format
msgid "unable to allocate data for load command %#x"
msgstr "Tidak boleh muatkan data imej"
-#: mach-o.c:2800
+#: mach-o.c:2802
#, c-format
msgid "unable to write unknown load command %#x"
msgstr ""
-#: mach-o.c:2984
+#: mach-o.c:2986
#, c-format
msgid "section address (%#<PRIx64>) below start of segment (%#<PRIx64>)"
msgstr ""
-#: mach-o.c:3126
+#: mach-o.c:3128
#, c-format
msgid "unable to layout unknown load command %#x"
msgstr ""
-#: mach-o.c:3652
+#: mach-o.c:3654
#, c-format
msgid "bfd_mach_o_read_section_32: overlarge alignment value: %#lx"
msgstr ""
-#: mach-o.c:3695
+#: mach-o.c:3697
#, c-format
msgid "bfd_mach_o_read_section_64: overlarge alignment value: %#lx"
msgstr ""
-#: mach-o.c:3746
+#: mach-o.c:3748
#, c-format
msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %u"
msgstr ""
-#: mach-o.c:3765
+#: mach-o.c:3767
#, c-format
msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %u)"
msgstr ""
-#: mach-o.c:3848
+#: mach-o.c:3850
#, c-format
msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d (max %lu): setting to undefined"
msgstr ""
-#: mach-o.c:3867
+#: mach-o.c:3869
#, c-format
msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x%x: setting to undefined"
msgstr ""
-#: mach-o.c:5066
+#: mach-o.c:5068
#, fuzzy, c-format
msgid "%pB: unknown load command %#x"
msgstr "Arahan tak diketahui '%1'"
-#: mach-o.c:5264
+#: mach-o.c:5266
#, c-format
msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx"
msgstr ""
-#: mach-o.c:5389
+#: mach-o.c:5391
#, c-format
msgid "unknown header byte-order value %#x"
msgstr ""
@@ -6620,47 +6739,47 @@ msgstr ""
msgid "bfd_pef_scan: unknown architecture 0x%lx"
msgstr ""
-#: pei-x86_64.c:174 pei-x86_64.c:228 pei-x86_64.c:238 pei-x86_64.c:263
-#: pei-x86_64.c:275 pei-x86_64.c:289 pei-x86_64.c:307 pei-x86_64.c:319
-#: pei-x86_64.c:331
+#: pei-x86_64.c:176 pei-x86_64.c:230 pei-x86_64.c:240 pei-x86_64.c:265
+#: pei-x86_64.c:277 pei-x86_64.c:291 pei-x86_64.c:309 pei-x86_64.c:321
+#: pei-x86_64.c:333
#, fuzzy, c-format
msgid "warning: corrupt unwind data\n"
msgstr "Data piksel imej rosak"
#. PR 17512: file: 2245-7442-0.004.
-#: pei-x86_64.c:352
+#: pei-x86_64.c:354
#, fuzzy, c-format
msgid "Unknown: %x"
msgstr "(Kod mekanisma GSSAPI tidak diketahui: %x)"
-#: pei-x86_64.c:403 pei-x86_64.c:413 pei-x86_64.c:422
+#: pei-x86_64.c:405 pei-x86_64.c:415 pei-x86_64.c:424
#, fuzzy, c-format
msgid "warning: xdata section corrupt\n"
msgstr "Bahagian .rsrc yang rosak dikesan!\n"
-#: pei-x86_64.c:477
+#: pei-x86_64.c:479
#, fuzzy, c-format
msgid "Too many unwind codes (%ld)\n"
msgstr "Terlalu banyak rujukan dalam jadual"
-#: pei-x86_64.c:563
+#: pei-x86_64.c:565
#, c-format
msgid "Warning: %s section size (%ld) is not a multiple of %d\n"
msgstr ""
-#: pei-x86_64.c:570
+#: pei-x86_64.c:572
#, fuzzy, c-format
msgid "Warning: %s section size is zero\n"
msgstr ""
"Terima Sifar\n"
"Saiz"
-#: pei-x86_64.c:585
+#: pei-x86_64.c:587
#, c-format
msgid "Warning: %s section size (%ld) is smaller than virtual size (%ld)\n"
msgstr ""
-#: pei-x86_64.c:594
+#: pei-x86_64.c:596
#, fuzzy, c-format
msgid ""
"\n"
@@ -6669,12 +6788,12 @@ msgstr ""
"\n"
"Terdapat direktori nyahpijat dalam %s, tetapi bahagian itu tidak mempunyai kandungan\n"
-#: pei-x86_64.c:597
+#: pei-x86_64.c:599
#, c-format
msgid "vma:\t\t\tBeginAddress\t EndAddress\t UnwindData\n"
msgstr ""
-#: pei-x86_64.c:722
+#: pei-x86_64.c:724
#, fuzzy, c-format
msgid ""
"\n"
@@ -6696,72 +6815,72 @@ msgstr ""
msgid "%pB: unrecognized import name type; %x"
msgstr ""
-#: peicode.h:1298
+#: peicode.h:1299
#, c-format
msgid "%pB: unrecognised machine type (0x%x) in Import Library Format archive"
msgstr ""
-#: peicode.h:1311
+#: peicode.h:1312
#, c-format
msgid "%pB: recognised but unhandled machine type (0x%x) in Import Library Format archive"
msgstr ""
-#: peicode.h:1329
+#: peicode.h:1330
#, c-format
msgid "%pB: size field is zero in Import Library Format header"
msgstr ""
-#: peicode.h:1355
+#: peicode.h:1356
#, c-format
msgid "%pB: string not null terminated in ILF object file"
msgstr ""
-#: peicode.h:1426
+#: peicode.h:1427
#, c-format
msgid "%pB: error: debug data ends beyond end of debug directory"
msgstr ""
-#: peicode.h:1598
+#: peicode.h:1599
#, fuzzy, c-format
msgid "%pB: adjusting invalid SectionAlignment"
msgstr "Pelarasan"
-#: peicode.h:1608
+#: peicode.h:1609
#, fuzzy, c-format
msgid "%pB: adjusting invalid FileAlignment"
msgstr "Pelarasan"
-#: peicode.h:1616
+#: peicode.h:1617
#, fuzzy, c-format
msgid "%pB: invalid NumberOfRvaAndSizes"
msgstr "%1 PB"
-#: plugin.c:197
+#: plugin.c:195
#, c-format
msgid "%s: failed to open to extract object only section: %s"
msgstr ""
-#: plugin.c:214
+#: plugin.c:212
#, c-format
msgid "%pB: invalid file to extract object only section: %s"
msgstr ""
-#: plugin.c:227
+#: plugin.c:225
#, c-format
msgid "%pB: failed to extract object only section: %s"
msgstr ""
-#: plugin.c:247
+#: plugin.c:245
#, c-format
msgid "%pB: failed to open object only section: %s"
msgstr ""
-#: plugin.c:257
+#: plugin.c:255
#, c-format
msgid "%pB: failed to get symbol table in object only section: %s"
msgstr ""
-#: plugin.c:413
+#: plugin.c:411
msgid "plugin framework: out of file descriptors. Try using fewer objects/archives\n"
msgstr ""
@@ -6814,18 +6933,18 @@ msgstr ""
msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
msgstr ""
-#: reloc.c:8417
+#: reloc.c:8423
#, fuzzy
msgid "INPUT_SECTION_FLAGS are not supported"
msgstr "Bendera terima tidak disokong"
-#: reloc.c:8683
+#: reloc.c:8689
#, c-format
msgid "%pB: unrecognized relocation type %#x in section `%pA'"
msgstr ""
#. PR 21803: Suggest the most likely cause of this error.
-#: reloc.c:8687
+#: reloc.c:8693
#, fuzzy, c-format
msgid "is this version of the linker - %s - out of date ?"
msgstr "Pralihat sudah ketinggalan zaman"
@@ -6851,14 +6970,14 @@ msgstr ""
msgid "%pB[%pA]: no output section for space %pA"
msgstr ""
-#: som.c:5449
+#: som.c:5450
#, fuzzy, c-format
msgid ""
"\n"
"Exec Auxiliary Header\n"
msgstr "Jalankan"
-#: som.c:5758
+#: som.c:5759
#, fuzzy
msgid "som_sizeof_headers unimplemented"
msgstr "Tak diimplementasi"
@@ -6883,7 +7002,7 @@ msgstr "%s: %s: tag buruk %d dijumpai (fail rosak?)\n"
msgid "%pB(%pA+%#lx): stabs entry has invalid string index"
msgstr ""
-#: syms.c:1120
+#: syms.c:1121
#, fuzzy
msgid "unsupported .stab relocation"
msgstr " (tidak disokong)"
@@ -7120,7 +7239,7 @@ msgstr "Nama tidak ditulis"
#: vms-alpha.c:6155
#, fuzzy, c-format
msgid " Error: The module name is too long\n"
-msgstr "Nama arkib terlalu panjang."
+msgstr "nama adalah terlalu panjang (%zu > %d)"
#: vms-alpha.c:6158
#, fuzzy, c-format
@@ -8923,12 +9042,12 @@ msgstr ""
#. FIXME: we do not yet support relocatable link. It is not obvious
#. how to do it for debug infos.
-#: vms-alpha.c:9570
+#: vms-alpha.c:9571
#, fuzzy
msgid "%P: relocatable link is not supported\n"
msgstr "Skema boleh letak semula"
-#: vms-alpha.c:9641
+#: vms-alpha.c:9642
#, c-format
msgid "%P: multiple entry points: in modules %pB and %pB\n"
msgstr ""
@@ -8946,121 +9065,121 @@ msgstr ""
msgid "_bfd_vms_output_counted called with too many bytes"
msgstr ""
-#: xcofflink.c:462
+#: xcofflink.c:505
#, c-format
msgid "%pB: warning: illegal symbol index %lu in relocs"
msgstr ""
-#: xcofflink.c:881
+#: xcofflink.c:924
#, c-format
msgid "%pB: XCOFF shared object when not producing XCOFF output"
msgstr ""
-#: xcofflink.c:902
+#: xcofflink.c:945
#, fuzzy, c-format
msgid "%pB: dynamic object with no .loader section"
-msgstr "%pB: gagal membaca bahagian data nyahpepijat"
+msgstr "%pB: gagal menggabung .rsrc: bahagian .rsrc rosak"
-#: xcofflink.c:1484
+#: xcofflink.c:1527
#, c-format
msgid "%pB: `%s' has line numbers but no enclosing section"
msgstr ""
-#: xcofflink.c:1540
+#: xcofflink.c:1583
#, c-format
msgid "%pB: class %d symbol `%s' has no aux entries"
msgstr ""
-#: xcofflink.c:1563
+#: xcofflink.c:1606
#, c-format
msgid "%pB: symbol `%s' has unrecognized csect type %d"
msgstr ""
-#: xcofflink.c:1576
+#: xcofflink.c:1619
#, c-format
msgid "%pB: bad XTY_ER symbol `%s': class %d scnum %d scnlen %<PRId64>"
msgstr ""
-#: xcofflink.c:1607
+#: xcofflink.c:1650
#, c-format
msgid "%pB: XMC_TC0 symbol `%s' is class %d scnlen %<PRIu64>"
msgstr ""
-#: xcofflink.c:1742
+#: xcofflink.c:1785
#, c-format
msgid "%pB: TOC entry `%s' has a R_TLSMLrelocation not targeting itself"
msgstr ""
-#: xcofflink.c:1776
+#: xcofflink.c:1819
#, fuzzy, c-format
msgid "%pB: csect `%s' not in enclosing section"
-msgstr "%pB: gagal membaca bahagian data nyahpepijat"
+msgstr "%pB: gagal menggabung .rsrc: bahagian .rsrc rosak"
-#: xcofflink.c:1885
+#: xcofflink.c:1928
#, fuzzy, c-format
msgid "%pB: misplaced XTY_LD `%s'"
msgstr "%s Pb"
-#: xcofflink.c:2228
+#: xcofflink.c:2271
#, fuzzy, c-format
msgid "%pB: reloc %s:%<PRId64> not in csect"
msgstr "%s Pb"
-#: xcofflink.c:3337
+#: xcofflink.c:3380
#, c-format
msgid "%pB: cannot export internal symbol `%s`."
msgstr ""
-#: xcofflink.c:3385
+#: xcofflink.c:3428
#, c-format
msgid "%s: no such symbol"
msgstr "%s: tiada simbol sedemikian"
-#: xcofflink.c:3494
+#: xcofflink.c:3537
#, fuzzy, c-format
msgid "warning: attempt to export undefined symbol `%s'"
msgstr "amaran: pembolehubah tidak dinyatakan `%.*s'"
-#: xcofflink.c:3842
+#: xcofflink.c:3885
#, fuzzy
msgid "error: undefined symbol __rtinit"
msgstr "simbol permulaan %s tidak ditakrifkan"
-#: xcofflink.c:4855
+#: xcofflink.c:4902
#, c-format
msgid "%pB: Unable to find a stub csect in rangeof relocation at %#<PRIx64> targeting'%s'"
msgstr ""
-#: xcofflink.c:4884
+#: xcofflink.c:4931
#, fuzzy, c-format
msgid "%pB: Cannot create stub entry '%s'"
msgstr "%s: Tak dapat mencipta symlink ke %s"
-#: xcofflink.c:5004
+#: xcofflink.c:5051
msgid "TOC overflow during stub generation; try -mminimal-toc when compiling"
msgstr ""
-#: xcofflink.c:5072
+#: xcofflink.c:5119
#, c-format
msgid "%pB: loader reloc in unrecognized section `%s'"
msgstr ""
-#: xcofflink.c:5084
+#: xcofflink.c:5131
#, fuzzy, c-format
msgid "%pB: `%s' in loader reloc but not loader sym"
msgstr "Ralat dalaman pada pemuat GIF (%s)"
-#: xcofflink.c:5101
+#: xcofflink.c:5148
#, c-format
msgid "%pB: loader reloc in read-only section %pA"
msgstr ""
-#: xcofflink.c:6180
+#: xcofflink.c:6227
#, c-format
msgid "TOC overflow: %#<PRIx64> > 0x10000; try -mminimal-toc when compiling"
msgstr ""
-#: xcofflink.c:7296
+#: xcofflink.c:7343
#, fuzzy, c-format
msgid "Unable to link input file: %s"
msgstr "menutup fail input %s"
@@ -9073,7 +9192,7 @@ msgstr "Tidak boleh muatkan lokasi"
#: xtensa-dynconfig.c:86
#, fuzzy, c-format
msgid "%s is defined but could not be loaded: %s"
-msgstr "Profil tidak dapat dimuatkan: %s"
+msgstr "Pemalam \"%s\" tidak dapat dimuatkan"
#: xtensa-dynconfig.c:102
#, fuzzy, c-format
@@ -9086,242 +9205,247 @@ msgid "%s is defined but plugin support is disabled"
msgstr "Gagal memulakan perkhidmatan Penjejak: %s. Pemalam dilumpuhkan."
#. Not fatal, this callback cannot fail.
-#: elfnn-aarch64.c:2878 elfnn-riscv.c:5739
+#: elfnn-aarch64.c:2889 elfnn-riscv.c:5940
#, fuzzy, c-format
msgid "unknown attribute for symbol `%s': 0x%02x"
msgstr "Vendor GPU anda tidak diketahui: %s (0x%X)"
-#: elfnn-aarch64.c:5468
+#: elfnn-aarch64.c:5486
#, c-format
msgid "%pB: error: erratum 835769 stub out of range (input file too large)"
msgstr ""
-#: elfnn-aarch64.c:5560
+#: elfnn-aarch64.c:5578
#, c-format
msgid "%pB: error: erratum 843419 stub out of range (input file too large)"
msgstr ""
-#: elfnn-aarch64.c:5573
+#: elfnn-aarch64.c:5591
#, c-format
msgid "%pB: error: erratum 843419 immediate 0x%<PRIx64> out of range for ADR (input file too large) and --fix-cortex-a53-843419=adr used. Run the linker with --fix-cortex-a53-843419=full instead"
msgstr ""
-#: elfnn-aarch64.c:6116
+#: elfnn-aarch64.c:6134
#, c-format
msgid "%pB: relocation %s against symbol `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC"
msgstr ""
-#: elfnn-aarch64.c:6136
+#: elfnn-aarch64.c:6154
#, c-format
msgid "%pB: conditional branch to undefined symbol `%s' not allowed"
msgstr ""
-#: elfnn-aarch64.c:6224 elfnn-kvx.c:2381
+#: elfnn-aarch64.c:6242 elfnn-kvx.c:2382
#, c-format
msgid "%pB: local symbol descriptor table be NULL when applying relocation %s against local symbol"
msgstr ""
-#: elfnn-aarch64.c:6338 elfnn-aarch64.c:6375
+#: elfnn-aarch64.c:6356 elfnn-aarch64.c:6393
#, c-format
msgid "%pB: TLS relocation %s against undefined symbol `%s'"
msgstr ""
-#: elfnn-aarch64.c:7366
+#: elfnn-aarch64.c:7384
msgid "too many GOT entries for -fpic, please recompile with -fPIC"
msgstr ""
-#: elfnn-aarch64.c:7394
+#: elfnn-aarch64.c:7412
msgid "one possible cause of this error is that the symbol is being referenced in the indicated code as if it had a larger alignment than was declared where it was defined"
msgstr ""
-#: elfnn-aarch64.c:7961
+#: elfnn-aarch64.c:7979
#, c-format
msgid "%pB: relocation %s against `%s' can not be used when making a shared object"
msgstr ""
-#: elfnn-aarch64.c:8922
+#: elfnn-aarch64.c:8940
#, c-format
-msgid "%F%P: %pB: copy relocation against non-copyable protected symbol `%s'\n"
+msgid "%P: %pB: copy relocation against non-copyable protected symbol `%s'\n"
msgstr ""
#: elfnn-kvx.c:929
-msgid "%F%P: Could not assign '%pA' to an output section. Retry without --enable-non-contiguous-regions.\n"
+msgid "%P: Could not assign '%pA' to an output section. Retry without --enable-non-contiguous-regions.\n"
msgstr ""
-#: elfnn-kvx.c:2126
+#: elfnn-kvx.c:2127
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unresolvable %s relocation in section `%s'"
msgstr ""
-#: elfnn-kvx.c:2850
+#: elfnn-kvx.c:2851
#, fuzzy, c-format
msgid "%s: Bad ELF id: `%d'"
msgstr "%s: ofset teruk pada halaman %d\n"
-#: elfnn-kvx.c:2905
+#: elfnn-kvx.c:2906
#, fuzzy, c-format
msgid "%s: compiled as 32-bit object and %s is 64-bit"
msgstr "Dikompil oleh %s pada %s (%s)\n"
-#: elfnn-kvx.c:2908
+#: elfnn-kvx.c:2909
#, fuzzy, c-format
msgid "%s: compiled as 64-bit object and %s is 32-bit"
msgstr "Dikompil oleh %s pada %s (%s)\n"
-#: elfnn-kvx.c:2910
+#: elfnn-kvx.c:2911
#, fuzzy, c-format
msgid "%s: object size does not match that of target %s"
msgstr "Direktori sasaran \"%s\" tidak wujud"
#. Ignore init flag - it may not be set, despite the flags field
#. containing valid data.
-#: elfnn-kvx.c:2998
+#: elfnn-kvx.c:2999
#, fuzzy, c-format
msgid "Private flags = 0x%lx : "
msgstr "[find_call] %s: 0x%lx ke 0x%lx\n"
-#: elfnn-kvx.c:3002
+#: elfnn-kvx.c:3003
#, fuzzy, c-format
msgid "Coolidge (kv3) V1 64 bits"
msgstr "64 bit"
-#: elfnn-kvx.c:3004
+#: elfnn-kvx.c:3005
#, fuzzy, c-format
msgid "Coolidge (kv3) V2 64 bits"
msgstr "64 bit"
-#: elfnn-kvx.c:3006
+#: elfnn-kvx.c:3007
#, fuzzy, c-format
msgid "Coolidge (kv4) V1 64 bits"
msgstr "64 bit"
-#: elfnn-kvx.c:3011
+#: elfnn-kvx.c:3012
#, fuzzy, c-format
msgid "Coolidge (kv3) V1 32 bits"
msgstr "Himpun data dengan 32 bit"
-#: elfnn-kvx.c:3013
+#: elfnn-kvx.c:3014
#, fuzzy, c-format
msgid "Coolidge (kv3) V2 32 bits"
msgstr "Himpun data dengan 32 bit"
-#: elfnn-kvx.c:3015
+#: elfnn-kvx.c:3016
#, fuzzy, c-format
msgid "Coolidge (kv4) V1 32 bits"
msgstr "Himpun data dengan 32 bit"
-#: elfnn-kvx.c:3847
+#: elfnn-kvx.c:3848
#, c-format
msgid "relocation against `%s' has faulty GOT type "
msgstr ""
-#: elfnn-loongarch.c:294 elfnn-loongarch.c:346
+#: elfnn-loongarch.c:303 elfnn-loongarch.c:355
#, c-format
msgid "%#<PRIx64> invaild imm"
msgstr ""
-#: elfnn-loongarch.c:528 elfnn-riscv.c:4182
+#: elfnn-loongarch.c:537 elfnn-riscv.c:4383
#, c-format
msgid ""
"%pB: ABI is incompatible with that of the selected emulation:\n"
" target emulation `%s' does not match `%s'"
msgstr ""
-#: elfnn-loongarch.c:583
+#: elfnn-loongarch.c:592
#, c-format
msgid "%pB: can't link different ABI object."
msgstr ""
-#: elfnn-loongarch.c:726
+#: elfnn-loongarch.c:735
#, fuzzy
msgid "Internal error: unreachable."
msgstr "Ralat dalaman: Ralat tidak diketahui"
-#: elfnn-loongarch.c:906
+#: elfnn-loongarch.c:915
#, c-format
msgid "%pB:(%pA+%#lx): relocation %s against `%s` can not be used when making %s; recompile with %s%s"
msgstr ""
-#: elfnn-loongarch.c:910
+#: elfnn-loongarch.c:919
#, fuzzy
msgid " and check the symbol visibility"
msgstr "Simbol"
-#: elfnn-loongarch.c:1036
+#: elfnn-loongarch.c:1045
#, c-format
msgid "%pB: stack based reloc type (%u) is not supported with -z pack-relative-relocs"
msgstr ""
-#: elfnn-loongarch.c:1231
+#: elfnn-loongarch.c:1240
#, c-format
msgid "%pB: relocation R_LARCH_32 against non-absolute symbol `%s' cannot be used in ELFCLASS64 when making a shared object or PIE"
msgstr ""
-#: elfnn-loongarch.c:1296
+#: elfnn-loongarch.c:1305
#, c-format
msgid "%pB: R_LARCH_ALIGN with offset %<PRId64> not aligned to instruction boundary"
msgstr ""
-#: elfnn-loongarch.c:4174
+#: elfnn-loongarch.c:4196
msgid "cannot resolve R_LARCH_PCREL20_S2 against undefined weak symbol with addend out of [-2048, 2048)"
msgstr ""
-#: elfnn-loongarch.c:4684
+#: elfnn-loongarch.c:4706
msgid "recompile with 'gcc -mno-relax' or 'as -mno-relax' or 'ld --no-relax'"
msgstr ""
-#: elfnn-loongarch.c:5301 elfnn-riscv.c:4967
+#: elfnn-loongarch.c:5584 elfnn-riscv.c:5168
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %<PRId64> bytes required for alignment to %<PRId64>-byte boundary, but only %<PRId64> present"
msgstr ""
-#: elfnn-riscv.c:329 elfnn-riscv.c:364
+#: elfnn-riscv.c:385 elfnn-riscv.c:436 elfnn-riscv.c:484 elfnn-riscv.c:520
#, c-format
msgid "%pB: warning: RVE PLT generation not supported"
msgstr ""
-#: elfnn-riscv.c:927
+#: elfnn-riscv.c:675
+#, fuzzy, c-format
+msgid "%pB: error: unsupported PLT type: %u"
+msgstr "TYPE(x)"
+
+#: elfnn-riscv.c:1120
#, c-format
msgid "%pB: relocation %s against absolute symbol `%s' can not be used when making a shared object"
msgstr ""
-#: elfnn-riscv.c:969
+#: elfnn-riscv.c:1162
#, c-format
msgid "%pB: relocation %s against non-absolute symbol `%s' can not be used in RV32 when making a shared object"
msgstr ""
-#: elfnn-riscv.c:1898
+#: elfnn-riscv.c:2095
#, c-format
msgid "final size of uleb128 value at offset 0x%lx in %pA from %pB exceeds available space"
msgstr ""
-#: elfnn-riscv.c:2140
+#: elfnn-riscv.c:2337
#, c-format
msgid "%pcrel_lo missing matching %pcrel_hi"
msgstr ""
-#: elfnn-riscv.c:2143
+#: elfnn-riscv.c:2340
#, c-format
msgid "%pcrel_lo with addend isn't allowed for R_RISCV_GOT_HI20"
msgstr ""
#. Check the overflow when adding reloc addend.
-#: elfnn-riscv.c:2148
+#: elfnn-riscv.c:2345
#, c-format
msgid "%%pcrel_lo overflow with an addend, the value of %%pcrel_hi is 0x%<PRIx64> without any addend, but may be 0x%<PRIx64> after adding the %%pcrel_lo addend"
msgstr ""
-#: elfnn-riscv.c:2156
+#: elfnn-riscv.c:2353
#, fuzzy, c-format
msgid "%pcrel_lo overflow with an addend"
msgstr "Rekod melimpah"
-#: elfnn-riscv.c:2639
+#: elfnn-riscv.c:2843
#, c-format
msgid "%pB: warning: R_RISCV_SUB_ULEB128 with non-zero addend, please rebuild by binutils 2.42 or up"
msgstr ""
-#: elfnn-riscv.c:2719
+#: elfnn-riscv.c:2923
msgid "The addend isn't allowed for R_RISCV_GOT_HI20"
msgstr ""
@@ -9339,96 +9463,96 @@ msgstr ""
#.
#. Perhaps we also need the similar checks for the
#. R_RISCV_BRANCH and R_RISCV_RVC_BRANCH relocations.
-#: elfnn-riscv.c:2820
+#: elfnn-riscv.c:3022
#, c-format
msgid "%%X%%P: relocation %s against `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC\n"
msgstr ""
-#: elfnn-riscv.c:2902
+#: elfnn-riscv.c:3103
#, c-format
msgid "%pcrel_lo section symbol with an addend"
msgstr ""
-#: elfnn-riscv.c:2923
+#: elfnn-riscv.c:3124
#, fuzzy, c-format
msgid "%tlsdesc_lo with addend"
msgstr "Tambah _Lokasi...:"
-#: elfnn-riscv.c:3156
+#: elfnn-riscv.c:3357
#, c-format
msgid "%%X%%P: unresolvable %s relocation against symbol `%s'\n"
msgstr ""
-#: elfnn-riscv.c:3191
+#: elfnn-riscv.c:3392
#, fuzzy
msgid "%X%P: internal error: out of range error\n"
msgstr "ralat dalaman X: %s\n"
-#: elfnn-riscv.c:3196
+#: elfnn-riscv.c:3397
#, fuzzy
msgid "%X%P: internal error: unsupported relocation error\n"
msgstr "ralat dalaman X: %s\n"
-#: elfnn-riscv.c:3202
+#: elfnn-riscv.c:3403
#, fuzzy
msgid "dangerous relocation error"
msgstr "Fail berpontensi bahaya"
-#: elfnn-riscv.c:3208
+#: elfnn-riscv.c:3409
#, fuzzy
msgid "%X%P: internal error: unknown error\n"
msgstr "Ralat dalaman: Ralat tidak diketahui"
-#: elfnn-riscv.c:3785
+#: elfnn-riscv.c:3982
#, c-format
msgid "error: %pB: corrupted ISA string '%s'. First letter should be 'i' or 'e' but got '%s'"
msgstr ""
-#: elfnn-riscv.c:3828
+#: elfnn-riscv.c:4025
#, c-format
msgid "error: %pB: mis-matched ISA string to merge '%s' and '%s'"
msgstr ""
-#: elfnn-riscv.c:3965
+#: elfnn-riscv.c:4162
#, c-format
msgid "error: %pB: ISA string of input (%s) doesn't match output (%s)"
msgstr ""
-#: elfnn-riscv.c:3985
+#: elfnn-riscv.c:4182
#, c-format
msgid "error: %pB: XLEN of input (%u) doesn't match output (%u)"
msgstr ""
-#: elfnn-riscv.c:3993
+#: elfnn-riscv.c:4190
#, c-format
msgid "error: %pB: unsupported XLEN (%u), you might be using wrong emulation"
msgstr ""
-#: elfnn-riscv.c:4113
+#: elfnn-riscv.c:4314
msgid "warning: privileged spec version 1.9.1 can not be linked with other spec versions"
msgstr ""
-#: elfnn-riscv.c:4141
+#: elfnn-riscv.c:4342
#, c-format
msgid "error: %pB use %u-byte stack aligned but the output use %u-byte stack aligned"
msgstr ""
-#: elfnn-riscv.c:4238
+#: elfnn-riscv.c:4439
#, fuzzy, c-format
msgid "%pB: can't link %s modules with %s modules"
msgstr "Tidak dapat awalkan modul berdaftar PKCS#11: %s"
-#: elfnn-riscv.c:4248
+#: elfnn-riscv.c:4449
#, c-format
msgid "%pB: can't link RVE with other target"
msgstr ""
-#: elfnn-riscv.c:4272
+#: elfnn-riscv.c:4473
#, c-format
msgid "warning: %pB: unknown RISCV ABI object attribute %d"
msgstr ""
-#: elfnn-riscv.c:969
+#: elfnn-riscv.c:1162
#, c-format
msgid "%pB: relocation %s against non-absolute symbol `%s' can not be used in RV64 when making a shared object"
msgstr ""
@@ -9448,109 +9572,109 @@ msgstr ""
msgid "%pB: unable to create fake empty section"
msgstr ""
-#: peXXigen.c:924
+#: peXXigen.c:928
#, c-format
msgid "%pB:%.8s: section below image base"
msgstr ""
-#: peXXigen.c:929
+#: peXXigen.c:933
#, fuzzy, c-format
msgid "%pB:%.8s: RVA truncated"
msgstr "DIPANGKAS"
-#: peXXigen.c:1061
+#: peXXigen.c:1066
#, c-format
msgid "%pB: line number overflow: 0x%lx > 0xffff"
msgstr ""
-#: peXXigen.c:1227
+#: peXXigen.c:1232
msgid "Export Directory [.edata (or where ever we found it)]"
msgstr ""
-#: peXXigen.c:1228
+#: peXXigen.c:1233
#, fuzzy
msgid "Import Directory [parts of .idata]"
msgstr "bahagian"
-#: peXXigen.c:1229
+#: peXXigen.c:1234
#, fuzzy
msgid "Resource Directory [.rsrc]"
-msgstr "Sumber pada \"%s\" bukan satu direktori"
+msgstr "gagal menggabung .rsrc: versi direktori berbeza"
-#: peXXigen.c:1230
+#: peXXigen.c:1235
#, fuzzy
msgid "Exception Directory [.pdata]"
msgstr "Maklumat pengecualian:"
-#: peXXigen.c:1231
+#: peXXigen.c:1236
#, fuzzy
msgid "Security Directory"
msgstr "KESELAMATAN "
-#: peXXigen.c:1232
+#: peXXigen.c:1237
#, fuzzy
msgid "Base Relocation Directory [.reloc]"
msgstr "_Pangkalan Direktori:"
-#: peXXigen.c:1233
+#: peXXigen.c:1238
#, fuzzy
msgid "Debug Directory"
msgstr ""
"\n"
"Terdapat direktori nyahpijat dalam %s, tetapi bahagian itu tidak mempunyai kandungan\n"
-#: peXXigen.c:1234
+#: peXXigen.c:1239
#, fuzzy
msgid "Description Directory"
msgstr "Keterangan"
-#: peXXigen.c:1235
+#: peXXigen.c:1240
#, fuzzy
msgid "Special Directory"
msgstr "SPECIAL"
-#: peXXigen.c:1236
+#: peXXigen.c:1241
#, fuzzy
msgid "Thread Storage Directory [.tls]"
msgstr "Gagal memulakan benang: ralat menulis TLS."
-#: peXXigen.c:1237
+#: peXXigen.c:1242
#, fuzzy
msgid "Load Configuration Directory"
msgstr "Muatkan item tambahan konfigurasi"
-#: peXXigen.c:1238
+#: peXXigen.c:1243
#, fuzzy
msgid "Bound Import Directory"
msgstr "Import direktori"
-#: peXXigen.c:1239
+#: peXXigen.c:1244
#, fuzzy
msgid "Import Address Table Directory"
msgstr "Import direktori"
-#: peXXigen.c:1240
+#: peXXigen.c:1245
#, fuzzy
msgid "Delay Import Directory"
msgstr "Import direktori"
-#: peXXigen.c:1241
+#: peXXigen.c:1246
#, fuzzy
msgid "CLR Runtime Header"
msgstr "Masa Jalan"
-#: peXXigen.c:1242
+#: peXXigen.c:1247
msgid "Reserved"
msgstr "Simpanan"
-#: peXXigen.c:1307
+#: peXXigen.c:1312
#, c-format
msgid ""
"\n"
"There is an import table, but the section containing it could not be found\n"
msgstr ""
-#: peXXigen.c:1313
+#: peXXigen.c:1318
#, fuzzy, c-format
msgid ""
"\n"
@@ -9559,14 +9683,14 @@ msgstr ""
"\n"
"Terdapat direktori nyahpijat dalam %s, tetapi bahagian itu tidak mempunyai kandungan\n"
-#: peXXigen.c:1320
+#: peXXigen.c:1325
#, fuzzy, c-format
msgid ""
"\n"
"There is an import table in %s at 0x%lx\n"
msgstr "[find_call] %s: 0x%lx ke 0x%lx\n"
-#: peXXigen.c:1326
+#: peXXigen.c:1331
#, fuzzy, c-format
msgid ""
"\n"
@@ -9575,66 +9699,66 @@ msgstr ""
"\n"
"Terdapat direktori nyahpijat dalam %s, tetapi bahagian itu tidak mempunyai kandungan\n"
-#: peXXigen.c:1329
+#: peXXigen.c:1334
#, c-format
msgid ""
" vma: Hint Time Forward DLL First\n"
" Table Stamp Chain Name Thunk\n"
msgstr ""
-#: peXXigen.c:1378
+#: peXXigen.c:1383
#, fuzzy, c-format
msgid ""
"\n"
"\tDLL Name: %.*s\n"
msgstr "Nama: %s, EntitiID: %s"
-#: peXXigen.c:1394
+#: peXXigen.c:1399
#, c-format
msgid "\tvma: Ordinal Hint Member-Name Bound-To\n"
msgstr ""
-#: peXXigen.c:1419
+#: peXXigen.c:1424
#, c-format
msgid ""
"\n"
"There is a first thunk, but the section containing it could not be found\n"
msgstr ""
-#: peXXigen.c:1469 peXXigen.c:1514
+#: peXXigen.c:1474 peXXigen.c:1519
#, fuzzy, c-format
msgid "\t<corrupt: 0x%08lx>"
msgstr "Eksponen: 0x"
-#: peXXigen.c:1608
+#: peXXigen.c:1613
#, c-format
msgid ""
"\n"
"There is an export table, but the section containing it could not be found\n"
msgstr ""
-#: peXXigen.c:1621
+#: peXXigen.c:1626
#, c-format
msgid ""
"\n"
"There is an export table in %s, but it is too small (%d)\n"
msgstr ""
-#: peXXigen.c:1629
+#: peXXigen.c:1634
#, fuzzy, c-format
msgid ""
"\n"
"There is an export table in %s, but contents cannot be read\n"
msgstr "Tidak dapat menyediakan kandungan sebagai \"%s\""
-#: peXXigen.c:1635
+#: peXXigen.c:1640
#, fuzzy, c-format
msgid ""
"\n"
"There is an export table in %s at 0x%lx\n"
msgstr "[find_call] %s: 0x%lx ke 0x%lx\n"
-#: peXXigen.c:1666
+#: peXXigen.c:1671
#, fuzzy, c-format
msgid ""
"\n"
@@ -9644,147 +9768,147 @@ msgstr ""
"\n"
"Terdapat direktori nyahpijat dalam %s, tetapi bahagian itu tidak mempunyai kandungan\n"
-#: peXXigen.c:1670
+#: peXXigen.c:1675
#, fuzzy, c-format
msgid "Export Flags \t\t\t%lx\n"
msgstr "Eksport"
-#: peXXigen.c:1673
+#: peXXigen.c:1678
#, fuzzy, c-format
msgid "Time/Date stamp \t\t%lx\n"
msgstr "Setem Tarikh GPS"
-#: peXXigen.c:1677
+#: peXXigen.c:1682
#, fuzzy, c-format
msgid "Major/Minor \t\t\t%d/%d\n"
msgstr "Penggunaan: %s [OPSYEN]... NAMA JENIS [MAJOR MINOR]\n"
-#: peXXigen.c:1680
+#: peXXigen.c:1685
#, c-format
msgid "Name \t\t\t\t"
msgstr "Nama \t\t\t\t"
-#: peXXigen.c:1691
+#: peXXigen.c:1696
#, fuzzy, c-format
msgid "Ordinal Base \t\t\t%ld\n"
msgstr "ordinal"
-#: peXXigen.c:1694
+#: peXXigen.c:1699
#, c-format
msgid "Number in:\n"
msgstr "Nombor dalam:\n"
-#: peXXigen.c:1697
+#: peXXigen.c:1702
#, fuzzy, c-format
msgid "\tExport Address Table \t\t%08lx\n"
msgstr "Eksport"
-#: peXXigen.c:1701
+#: peXXigen.c:1706
#, fuzzy, c-format
msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
msgstr "Nama jadual adalah kosong!"
-#: peXXigen.c:1704
+#: peXXigen.c:1709
#, fuzzy, c-format
msgid "Table Addresses\n"
msgstr "Alamat:"
-#: peXXigen.c:1707
+#: peXXigen.c:1712
#, fuzzy, c-format
msgid "\tExport Address Table \t\t"
msgstr "Eksport"
-#: peXXigen.c:1712
+#: peXXigen.c:1717
#, fuzzy, c-format
msgid "\tName Pointer Table \t\t"
msgstr "Nama jadual adalah kosong!"
-#: peXXigen.c:1717
+#: peXXigen.c:1722
#, fuzzy, c-format
msgid "\tOrdinal Table \t\t\t"
msgstr "ordinal"
-#: peXXigen.c:1731
+#: peXXigen.c:1736
#, c-format
msgid ""
"\n"
"Export Address Table -- Ordinal Base %ld\n"
msgstr ""
-#: peXXigen.c:1741
+#: peXXigen.c:1746
#, c-format
msgid "\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n"
msgstr ""
-#: peXXigen.c:1760
+#: peXXigen.c:1765
#, fuzzy
msgid "Forwarder RVA"
msgstr "Jenis Saiz Rva Offset\n"
-#: peXXigen.c:1772
+#: peXXigen.c:1777
#, fuzzy
msgid "Export RVA"
msgstr "Jenis Saiz Rva Offset\n"
-#: peXXigen.c:1779
+#: peXXigen.c:1784
#, c-format
msgid ""
"\n"
"[Ordinal/Name Pointer] Table -- Ordinal Base %ld\n"
msgstr ""
-#: peXXigen.c:1789
+#: peXXigen.c:1794
#, c-format
msgid "\tInvalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)\n"
msgstr ""
-#: peXXigen.c:1796
+#: peXXigen.c:1801
#, c-format
msgid "\tInvalid Ordinal Table rva (0x%lx) or entry count (0x%lx)\n"
msgstr ""
-#: peXXigen.c:1810
+#: peXXigen.c:1815
#, c-format
msgid "\t[%4ld] +base[%4ld] %04lx <corrupt offset: %lx>\n"
msgstr ""
-#: peXXigen.c:1867 peXXigen.c:2037
+#: peXXigen.c:1872 peXXigen.c:2042
#, c-format
msgid "warning, .pdata section size (%ld) is not a multiple of %d\n"
msgstr ""
-#: peXXigen.c:1871 peXXigen.c:2041
+#: peXXigen.c:1876 peXXigen.c:2046
#, c-format
msgid ""
"\n"
"The Function Table (interpreted .pdata section contents)\n"
msgstr ""
-#: peXXigen.c:1874
+#: peXXigen.c:1879
#, c-format
msgid " vma:\t\t\tBegin Address End Address Unwind Info\n"
msgstr ""
-#: peXXigen.c:1876
+#: peXXigen.c:1881
#, c-format
msgid ""
" vma:\t\tBegin End EH EH PrologEnd Exception\n"
" \t\tAddress Address Handler Data Address Mask\n"
msgstr ""
-#: peXXigen.c:1889
+#: peXXigen.c:1894
#, c-format
msgid "Virtual size of .pdata section (%ld) larger than real size (%ld)\n"
msgstr ""
-#: peXXigen.c:2043
+#: peXXigen.c:2048
#, c-format
msgid ""
" vma:\t\tBegin Prolog Function Flags Exception EH\n"
" \t\tAddress Length Length 32b exc Handler Data\n"
msgstr ""
-#: peXXigen.c:2168
+#: peXXigen.c:2173
#, c-format
msgid ""
"\n"
@@ -9792,86 +9916,86 @@ msgid ""
"PE File Base Relocations (interpreted .reloc section contents)\n"
msgstr ""
-#: peXXigen.c:2197
+#: peXXigen.c:2202
#, c-format
msgid ""
"\n"
"Virtual Address: %08lx Chunk size %ld (0x%lx) Number of fixups %ld\n"
msgstr ""
-#: peXXigen.c:2215
+#: peXXigen.c:2220
#, c-format
msgid "\treloc %4d offset %4x [%4lx] %s"
msgstr ""
-#: peXXigen.c:2276
+#: peXXigen.c:2281
#, fuzzy, c-format
msgid "%03x %*.s Entry: "
msgstr " Sumber bermula pada offset: %#03x\n"
-#: peXXigen.c:2300
+#: peXXigen.c:2305
#, fuzzy, c-format
msgid "name: [val: %08lx len %d]: "
msgstr "Ralat membaca dari klien, len = %d\n"
-#: peXXigen.c:2320
+#: peXXigen.c:2325
#, fuzzy, c-format
msgid "<corrupt string length: %#x>\n"
msgstr "-X <rentetan>"
-#: peXXigen.c:2330
+#: peXXigen.c:2335
#, fuzzy, c-format
msgid "<corrupt string offset: %#lx>\n"
msgstr "ofset"
-#: peXXigen.c:2335
+#: peXXigen.c:2340
#, c-format
msgid "ID: %#08lx"
msgstr "ID: %#08lx"
-#: peXXigen.c:2338
+#: peXXigen.c:2343
#, fuzzy, c-format
msgid ", Value: %#08lx\n"
msgstr "nilai"
-#: peXXigen.c:2360
+#: peXXigen.c:2365
#, c-format
msgid "%03x %*.s Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n"
msgstr ""
-#: peXXigen.c:2402
+#: peXXigen.c:2407
#, c-format
msgid "<unknown directory type: %d>\n"
msgstr "<jenis direktori tidak diketahui: %d>\n"
-#: peXXigen.c:2410
+#: peXXigen.c:2415
#, c-format
msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n"
msgstr ""
-#: peXXigen.c:2498
+#: peXXigen.c:2503
#, c-format
msgid "Corrupt .rsrc section detected!\n"
msgstr "Bahagian .rsrc yang rosak dikesan!\n"
-#: peXXigen.c:2522
+#: peXXigen.c:2527
#, c-format
msgid ""
"\n"
"WARNING: Extra data in .rsrc section - it will be ignored by Windows:\n"
msgstr ""
-#: peXXigen.c:2528
+#: peXXigen.c:2533
#, fuzzy, c-format
msgid " String table starts at offset: %#03x\n"
msgstr " Sumber bermula pada offset: %#03x\n"
-#: peXXigen.c:2531
+#: peXXigen.c:2536
#, c-format
msgid " Resources start at offset: %#03x\n"
msgstr " Sumber bermula pada offset: %#03x\n"
-#: peXXigen.c:2588
+#: peXXigen.c:2593
#, fuzzy, c-format
msgid ""
"\n"
@@ -9880,7 +10004,7 @@ msgstr ""
"\n"
"Terdapat direktori nyahpijat dalam %s, tetapi bahagian itu tidak mempunyai kandungan\n"
-#: peXXigen.c:2594
+#: peXXigen.c:2599
#, c-format
msgid ""
"\n"
@@ -9889,14 +10013,14 @@ msgstr ""
"\n"
"Terdapat direktori nyahpijat dalam %s, tetapi bahagian itu tidak mempunyai kandungan\n"
-#: peXXigen.c:2601
+#: peXXigen.c:2606
#, c-format
msgid ""
"\n"
"Error: section %s contains the debug data starting address but it is too small\n"
msgstr ""
-#: peXXigen.c:2606
+#: peXXigen.c:2611
#, c-format
msgid ""
"\n"
@@ -9907,22 +10031,22 @@ msgstr ""
"Terdapat direktori nyahpepijat dalam %s pada 0x%lx\n"
"\n"
-#: peXXigen.c:2613
+#: peXXigen.c:2618
#, c-format
msgid "The debug data size field in the data directory is too big for the section"
msgstr ""
-#: peXXigen.c:2618
+#: peXXigen.c:2623
#, c-format
msgid "Type Size Rva Offset\n"
msgstr "Jenis Saiz Rva Offset\n"
-#: peXXigen.c:2666
+#: peXXigen.c:2671
#, c-format
msgid "(format %c%c%c%c signature %s age %ld pdb %s)\n"
msgstr ""
-#: peXXigen.c:2678
+#: peXXigen.c:2683
#, c-format
msgid "The debug directory size is not a multiple of the debug directory entry size\n"
msgstr ""
@@ -9930,7 +10054,7 @@ msgstr ""
#. The MS dumpbin program reportedly ands with 0xff0f before
#. printing the characteristics field. Not sure why. No reason to
#. emulate it here.
-#: peXXigen.c:2762
+#: peXXigen.c:2767
#, c-format
msgid ""
"\n"
@@ -9939,87 +10063,84 @@ msgstr ""
"\n"
"Ciri-ciri 0x%x\n"
-#: peXXigen.c:3047
+#: peXXigen.c:3052
#, c-format
msgid "%pB: Data Directory (%lx bytes at %<PRIx64>) extends across section boundary at %<PRIx64>"
msgstr ""
-#: peXXigen.c:3088
+#: peXXigen.c:3093
msgid "failed to update file offsets in debug directory"
msgstr "gagal mengemaskini offset fail dalam direktori nyahpijat"
-#: peXXigen.c:3097
+#: peXXigen.c:3102
#, c-format
msgid "%pB: failed to read debug data section"
msgstr "%pB: gagal membaca bahagian data nyahpepijat"
-#: peXXigen.c:3900
+#: peXXigen.c:3907
#, c-format
msgid ".rsrc merge failure: duplicate string resource: %d"
msgstr ""
-#: peXXigen.c:4035
+#: peXXigen.c:4042
msgid ".rsrc merge failure: multiple non-default manifests"
msgstr ""
-#: peXXigen.c:4053
+#: peXXigen.c:4060
+#, fuzzy
msgid ".rsrc merge failure: a directory matches a leaf"
-msgstr ""
+msgstr "gagal menggabung .rsrc: versi direktori berbeza"
-#: peXXigen.c:4095
+#: peXXigen.c:4102
+#, fuzzy
msgid ".rsrc merge failure: duplicate leaf"
-msgstr ""
+msgstr "%pB: gagal menggabung .rsrc: saiz .rsrc tidak dijangka"
-#: peXXigen.c:4100
+#: peXXigen.c:4107
#, c-format
msgid ".rsrc merge failure: duplicate leaf: %s"
-msgstr ""
+msgstr "gagal menggabung .rsrc: daun pendua: %s"
-#: peXXigen.c:4167
+#: peXXigen.c:4174
msgid ".rsrc merge failure: dirs with differing characteristics"
-msgstr ""
+msgstr "gagal menggabung .rsrc: directori dengan ciri berbeza"
-#: peXXigen.c:4174
+#: peXXigen.c:4181
msgid ".rsrc merge failure: differing directory versions"
-msgstr ""
+msgstr "gagal menggabung .rsrc: versi direktori berbeza"
#. Corrupted .rsrc section - cannot merge.
-#: peXXigen.c:4286
-#, fuzzy, c-format
+#: peXXigen.c:4293
+#, c-format
msgid "%pB: .rsrc merge failure: corrupt .rsrc section"
-msgstr "Bahagian .rsrc yang rosak dikesan!\n"
+msgstr "%pB: gagal menggabung .rsrc: bahagian .rsrc rosak"
-#: peXXigen.c:4294
+#: peXXigen.c:4301
#, c-format
msgid "%pB: .rsrc merge failure: unexpected .rsrc size"
-msgstr ""
-
-#: peXXigen.c:4433
-#, c-format
-msgid "%pB: unable to fill in DataDictionary[1] because .idata$2 is missing"
-msgstr ""
+msgstr "%pB: gagal menggabung .rsrc: saiz .rsrc tidak dijangka"
-#: peXXigen.c:4453
+#: peXXigen.c:4441 peXXigen.c:4461 peXXigen.c:4482 peXXigen.c:4502
#, c-format
-msgid "%pB: unable to fill in DataDictionary[1] because .idata$4 is missing"
+msgid "%pB: unable to fill in DataDirectory[%d]: %s is missing"
msgstr ""
-#: peXXigen.c:4474
+#: peXXigen.c:4544 peXXigen.c:4590 peXXigen.c:4614 peXXigen.c:4698
#, c-format
-msgid "%pB: unable to fill in DataDictionary[12] because .idata$5 is missing"
+msgid "%pB: unable to fill in DataDirectory[%d]: %s not defined correctly"
msgstr ""
-#: peXXigen.c:4494
+#: peXXigen.c:4651
#, c-format
-msgid "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing"
+msgid "%pB: unable to fill in DataDirectory[%d]: %s not properly aligned"
msgstr ""
-#: peXXigen.c:4536
+#: peXXigen.c:4682
#, c-format
-msgid "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing"
+msgid "%pB: unable to fill in DataDirectory[%d]: size too large for the containing section"
msgstr ""
-#: peXXigen.c:4561
+#: peXXigen.c:4690
#, c-format
-msgid "%pB: unable to fill in DataDictionary[9] because __tls_used is missing"
+msgid "%pB: unable to fill in DataDirectory[%d]: size can't be read from %s"
msgstr ""
diff --git a/bfd/po/sr.po b/bfd/po/sr.po
index 20faead..ea2db58 100644
--- a/bfd/po/sr.po
+++ b/bfd/po/sr.po
@@ -5,10 +5,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: bfd-2.43.90\n"
+"Project-Id-Version: bfd-2.44.90\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2025-01-19 12:19+0000\n"
-"PO-Revision-Date: 2025-03-02 16:32+0100\n"
+"POT-Creation-Date: 2025-07-13 08:44+0100\n"
+"PO-Revision-Date: 2025-09-01 06:18+0200\n"
"Last-Translator: МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(nothing)>\n"
"Language: sr\n"
@@ -68,47 +68,48 @@ msgstr "%pB: неподржана величина „AOUT“ премештањ
msgid "%pB: attempt to write out unknown reloc type"
msgstr "%pB: покушавам да запишем непознату врÑту премештања"
-#: aoutx.h:4047 pdp11.c:3409
+#: aoutx.h:4040 pdp11.c:3402
#, c-format
msgid "%pB: unsupported relocation type"
msgstr "%pB: врÑта премештања није подржана"
#. Unknown relocation.
-#: aoutx.h:4367 coff-alpha.c:601 coff-mips.c:356 coff-rs6000.c:3037
+#: aoutx.h:4360 coff-alpha.c:604 coff-mips.c:356 coff-rs6000.c:3037
#: coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:262 elf-hppa.h:798
#: elf-hppa.h:826 elf-m10200.c:226 elf-m10300.c:813 elf32-arc.c:531
-#: elf32-arm.c:1985 elf32-avr.c:957 elf32-bfin.c:1063 elf32-bfin.c:4686
+#: elf32-arm.c:1985 elf32-avr.c:957 elf32-bfin.c:1063 elf32-bfin.c:4692
#: elf32-cr16.c:654 elf32-cr16.c:684 elf32-cris.c:467 elf32-crx.c:429
#: elf32-csky.c:991 elf32-d10v.c:234 elf32-d30v.c:522 elf32-d30v.c:544
#: elf32-dlx.c:546 elf32-epiphany.c:373 elf32-fr30.c:381 elf32-frv.c:2558
-#: elf32-frv.c:6240 elf32-ft32.c:304 elf32-h8300.c:302 elf32-i386.c:394
+#: elf32-frv.c:6246 elf32-ft32.c:304 elf32-h8300.c:302 elf32-i386.c:394
#: elf32-ip2k.c:1241 elf32-iq2000.c:442 elf32-lm32.c:495 elf32-m32c.c:305
-#: elf32-m32r.c:1286 elf32-m32r.c:1311 elf32-m32r.c:2209 elf32-m68hc11.c:390
+#: elf32-m32r.c:1286 elf32-m32r.c:1311 elf32-m32r.c:2211 elf32-m68hc11.c:390
#: elf32-m68hc12.c:510 elf32-m68k.c:354 elf32-mcore.c:354 elf32-mcore.c:440
#: elf32-mep.c:385 elf32-metag.c:871 elf32-microblaze.c:708
#: elf32-microblaze.c:1015 elf32-mips.c:2242 elf32-moxie.c:137
-#: elf32-msp430.c:737 elf32-msp430.c:747 elf32-mt.c:241 elf32-nds32.c:3287
-#: elf32-nds32.c:3308 elf32-nds32.c:5077 elf32-or1k.c:1085 elf32-pj.c:326
+#: elf32-msp430.c:737 elf32-msp430.c:747 elf32-mt.c:241 elf32-nds32.c:3294
+#: elf32-nds32.c:3315 elf32-nds32.c:5084 elf32-or1k.c:1085 elf32-pj.c:326
#: elf32-ppc.c:900 elf32-ppc.c:913 elf32-pru.c:423 elf32-rl78.c:291
#: elf32-rx.c:324 elf32-rx.c:333 elf32-s12z.c:296 elf32-s390.c:347
#: elf32-score.c:2373 elf32-score7.c:2214 elf32-sh.c:437 elf32-spu.c:163
#: elf32-tic6x.c:1498 elf32-tic6x.c:1508 elf32-tic6x.c:1527 elf32-tic6x.c:1537
#: elf32-tic6x.c:2575 elf32-tilepro.c:791 elf32-v850.c:1902 elf32-v850.c:1924
-#: elf32-v850.c:4253 elf32-vax.c:288 elf32-visium.c:481 elf32-wasm32.c:105
+#: elf32-v850.c:4254 elf32-vax.c:288 elf32-visium.c:481 elf32-wasm32.c:105
#: elf32-xgate.c:418 elf32-xstormy16.c:395 elf32-xtensa.c:510
-#: elf32-xtensa.c:544 elf32-z80.c:331 elf64-alpha.c:1112 elf64-alpha.c:4055
-#: elf64-alpha.c:4203 elf64-bpf.c:132 elf64-ia64-vms.c:255
-#: elf64-ia64-vms.c:3426 elf64-mips.c:3965 elf64-mips.c:3981 elf64-mmix.c:1260
+#: elf32-xtensa.c:544 elf32-z80.c:331 elf64-alpha.c:1112 elf64-alpha.c:4058
+#: elf64-alpha.c:4206 elf64-bpf.c:132 elf64-ia64-vms.c:255
+#: elf64-ia64-vms.c:3428 elf64-mips.c:3965 elf64-mips.c:3981 elf64-mmix.c:1260
#: elf64-nfp.c:151 elf64-ppc.c:1031 elf64-ppc.c:1385 elf64-ppc.c:1394
-#: elf64-s390.c:328 elf64-s390.c:378 elf64-x86-64.c:305 elfn32-mips.c:3799
-#: elfxx-ia64.c:324 elfxx-loongarch.c:1897 elfxx-riscv.c:1062 elfxx-sparc.c:589
-#: elfxx-sparc.c:639 elfxx-tilegx.c:907 elfxx-tilegx.c:947 elfnn-aarch64.c:2215
-#: elfnn-aarch64.c:2313 elfnn-ia64.c:214 elfnn-ia64.c:3821 elfnn-kvx.c:259
+#: elf64-s390.c:331 elf64-s390.c:381 elf64-x86-64.c:305 elf64-x86-64.c:2558
+#: elfn32-mips.c:3799 elfxx-ia64.c:324 elfxx-loongarch.c:1897
+#: elfxx-riscv.c:1068 elfxx-sparc.c:589 elfxx-sparc.c:639 elfxx-tilegx.c:907
+#: elfxx-tilegx.c:947 elfnn-aarch64.c:2215 elfnn-aarch64.c:2316
+#: elfnn-ia64.c:214 elfnn-ia64.c:3823 elfnn-kvx.c:259
#, c-format
msgid "%pB: unsupported relocation type %#x"
msgstr "%pB: врÑта премештања није подржана „%#x“"
-#: aoutx.h:5387 pdp11.c:3825
+#: aoutx.h:5380 pdp11.c:3818
#, c-format
msgid "%pB: relocatable link from %s to %s not supported"
msgstr "%pB: премеÑтива веза Ñа „%s“ на „%s“ није подржана"
@@ -119,135 +120,135 @@ msgid "%pB: cannot allocate memory for local GOT entries"
msgstr "%pB: не могу да доделим меморију за локалне „GOT“ уноÑе"
#: archive.c:748
-msgid "%F%P: %pB(%s): error opening thin archive member: %E\n"
-msgstr "%F%P: %pB(%s): грешка отварања мајушног члана архиве: %E\n"
+msgid "%P: %pB(%s): error opening thin archive member: %E\n"
+msgstr "%P: %pB(%s): грешка отварања мајушног члана архиве: %E\n"
#: archive.c:2282
msgid "warning: writing archive was slow: rewriting timestamp"
msgstr "упозорење: ÑƒÐ¿Ð¸Ñ Ñƒ архиву је Ñпор: поново упиÑујем време"
-#: archive.c:2351 archive.c:2412 elflink.c:4931 linker.c:1452
+#: archive.c:2351 archive.c:2408 elflink.c:4956 linker.c:1470
#, c-format
msgid "%pB: plugin needed to handle lto object"
msgstr "%pB: потребан је прикључак за руковање „lto“ објектом"
-#: archive.c:2644
+#: archive.c:2640
msgid "Reading archive file mod timestamp"
msgstr "Читам време режима датотеке архиве"
-#: archive.c:2675
+#: archive.c:2671
msgid "Writing updated armap timestamp"
msgstr "УпиÑујем оÑвежено време армапа"
-#: bfd.c:777
+#: bfd.c:793
msgid "no error"
msgstr "нема грешке"
-#: bfd.c:778
+#: bfd.c:794
msgid "system call error"
msgstr "грешка ÑиÑтемÑког позива"
-#: bfd.c:779
+#: bfd.c:795
msgid "invalid bfd target"
msgstr "неиÑправан циљ бфд-а"
-#: bfd.c:780
+#: bfd.c:796
msgid "file in wrong format"
msgstr "датотека је у погрешном запиÑу"
-#: bfd.c:781
+#: bfd.c:797
msgid "archive object file in wrong format"
msgstr "датотека објекта архиве је у погрешном запиÑу"
-#: bfd.c:782
+#: bfd.c:798
msgid "invalid operation"
msgstr "неиÑправна операција"
-#: bfd.c:783
+#: bfd.c:799
msgid "memory exhausted"
msgstr "меморија је иÑцрпљена"
-#: bfd.c:784
+#: bfd.c:800
msgid "no symbols"
msgstr "нема Ñимбола"
-#: bfd.c:785
+#: bfd.c:801
msgid "archive has no index; run ranlib to add one"
msgstr "архива нема индекÑ; покрените „ranlib“ да га додате"
-#: bfd.c:786
+#: bfd.c:802
msgid "no more archived files"
msgstr "нема више архивираних датотека"
-#: bfd.c:787
+#: bfd.c:803
msgid "malformed archive"
msgstr "лоша архива"
-#: bfd.c:788
+#: bfd.c:804
msgid "DSO missing from command line"
msgstr "„DSO“ недоÑтаје на линији наредби"
-#: bfd.c:789
+#: bfd.c:805
msgid "file format not recognized"
msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð´Ð°Ñ‚Ð¾Ñ‚ÐµÐºÐµ није препознат"
-#: bfd.c:790
+#: bfd.c:806
msgid "file format is ambiguous"
msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð´Ð°Ñ‚Ð¾Ñ‚ÐµÐºÐµ је нејаÑан"
-#: bfd.c:791
+#: bfd.c:807
msgid "section has no contents"
msgstr "одељак нема Ñадржаје"
-#: bfd.c:792
+#: bfd.c:808
msgid "nonrepresentable section on output"
msgstr "на излазу је одељак који Ñе не може приказати"
-#: bfd.c:793
+#: bfd.c:809
msgid "symbol needs debug section which does not exist"
msgstr "Ñимболу је потребан одељак за уклањање грешака који не поÑтоји"
-#: bfd.c:794
+#: bfd.c:810
msgid "bad value"
msgstr "погрешна вредноÑÑ‚"
-#: bfd.c:795
+#: bfd.c:811
msgid "file truncated"
msgstr "датотека је окрњена"
-#: bfd.c:796
+#: bfd.c:812
msgid "file too big"
msgstr "датотека је превелика"
-#: bfd.c:797
+#: bfd.c:813
msgid "sorry, cannot handle this file"
msgstr "извините, не могу да радим Ñа овом датотеком"
-#: bfd.c:798
+#: bfd.c:814
#, c-format
msgid "error reading %s: %s"
msgstr "грешка читања „%s“: %s"
-#: bfd.c:799
+#: bfd.c:815
msgid "#<invalid error code>"
msgstr "#<неиÑправан код грешке>"
-#: bfd.c:2242
+#: bfd.c:2266
#, c-format
msgid "BFD %s assertion fail %s:%d"
msgstr "„BFD“ „%s“ тврдња није уÑпела „%s“:%d"
-#: bfd.c:2255
+#: bfd.c:2279
#, c-format
msgid "%s: BFD %s internal error, aborting at %s:%d in %s\n"
msgstr "%s: унутрашња „BFD %s“ грешка, прекидам на „%s:%d“ у „%s“\n"
-#: bfd.c:2259
+#: bfd.c:2283
#, c-format
msgid "%s: BFD %s internal error, aborting at %s:%d\n"
msgstr "%s: унутрашња „BFD %s “ грешка, прекидам на „%s:%d“\n"
-#: bfd.c:2262
+#: bfd.c:2286
#, c-format
msgid "Please report this bug.\n"
msgstr "Пријавите ову грешку.\n"
@@ -267,37 +268,37 @@ msgstr "поново отварам „%pB“: %s"
msgid "%pB: cannot handle compressed Alpha binaries; use compiler flags, or objZ, to generate uncompressed binaries"
msgstr "%pB: не могу да радим Ñа Ñажетим бинарним Ðлфа датотекама; кориÑтите заÑтавице преводиоца, или „objZ“, да Ñтворите неÑажете бинарне датотеке"
-#: coff-alpha.c:867 coff-alpha.c:894 coff-alpha.c:2004 coff-mips.c:948
+#: coff-alpha.c:914 coff-alpha.c:941 coff-alpha.c:2009 coff-mips.c:948
msgid "GP relative relocation used when GP not defined"
msgstr "употребљено је релативно премештање општег показивача када није дефиниÑан"
-#: coff-alpha.c:1151 coff-z80.c:351 coff-z8k.c:214 elf32-nds32.c:13188
-#: elfxx-mips.c:13509 reloc.c:8596 reloc16.c:314
+#: coff-alpha.c:1177 coff-z80.c:351 coff-z8k.c:214 elf32-nds32.c:13195
+#: elfxx-mips.c:13594 reloc.c:8602 reloc16.c:314
#, c-format
msgid "%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n"
msgstr "%X%P: %pB(%pA): премештање „%pR“ иде ван опÑега\n"
-#: coff-alpha.c:1157 coff-z80.c:477 coff-z8k.c:378 elfxx-mips.c:13519
-#: reloc.c:8606
+#: coff-alpha.c:1183 coff-z80.c:477 coff-z8k.c:378 elfxx-mips.c:13604
+#: reloc.c:8612
#, c-format
msgid "%X%P: %pB(%pA): relocation \"%pR\" is not supported\n"
msgstr "%X%P: %pB(%pA): премештање „%pR“ није подржано\n"
-#: coff-alpha.c:1163 elfxx-mips.c:13528 reloc.c:8615
+#: coff-alpha.c:1189 elfxx-mips.c:13613 reloc.c:8621
#, c-format
msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"
msgstr "%X%P: %pB(%pA): премештање „%pR“ је вратило непознату вредноÑÑ‚ „%x“\n"
-#: coff-alpha.c:1489
+#: coff-alpha.c:1515
msgid "using multiple gp values"
msgstr "кориÑтим неколико вредноÑти општег показивача"
-#: coff-alpha.c:1987
+#: coff-alpha.c:1992
#, c-format
msgid "%X%P: %pB(%pA): relocation out of range\n"
msgstr "%X%P: %pB(%pA): премештање је ван опÑега\n"
-#: coff-alpha.c:1999
+#: coff-alpha.c:2004
#, c-format
msgid "%X%P: %pB(%pA): relocation is not supported\n"
msgstr "%X%P: %pB(%pA): премештање није подржано\n"
@@ -397,13 +398,13 @@ msgstr "%pB: %#<PRIx64>: кобна грешка: прекорачење преÐ
msgid "%pB: fatal: generic symbols retrieved before relaxing"
msgstr "%pB: кобно: општи Ñимболи Ñу пронађени пре опуштања"
-#: coff-sh.c:2773 cofflink.c:2947
+#: coff-sh.c:2773 cofflink.c:2986
#, c-format
msgid "%pB: illegal symbol index %ld in relocs"
msgstr "%pB: неиÑправан Ð¸Ð½Ð´ÐµÐºÑ Ñимбола %ld у премештањима"
#: coff-tic30.c:172 coff-tic4x.c:228 coff-tic54x.c:338 coff-z80.c:325
-#: coff-z8k.c:188 coffcode.h:5314
+#: coff-z8k.c:188 coffcode.h:5305
#, c-format
msgid "%pB: warning: illegal symbol index %ld in relocs"
msgstr "%pB: упозорење: неиÑправан Ð¸Ð½Ð´ÐµÐºÑ Ñимбола %ld у премештањима"
@@ -460,150 +461,150 @@ msgstr "%pB: упозорење: занемарујем заÑтавицу одÐ
msgid "%pB (%s): section flag %s (%#lx) ignored"
msgstr "%pB (%s): заÑтавица одељка „%s“ (%#lx) је занемарена"
-#: coffcode.h:1954
+#: coffcode.h:1945
#, c-format
msgid "%pB: overflow reloc count too small"
msgstr "%pB: број премештања прекорачења је превише мали"
-#: coffcode.h:1963 coffcode.h:2028
+#: coffcode.h:1954 coffcode.h:2019
#, c-format
msgid "%pB: warning: claims to have 0xffff relocs, without overflow"
msgstr "%pB: упозорење: потврђујем 0xffff премештања, без прекорачења"
-#: coffcode.h:2411
+#: coffcode.h:2402
#, c-format
msgid "unrecognized TI COFF target id '0x%x'"
msgstr "непознат ид „TI COFF“ циља „0x%x“"
-#: coffcode.h:2690
+#: coffcode.h:2681
#, c-format
msgid "%pB: reloc against a non-existent symbol index: %ld"
msgstr "%pB: премештање наÑпрам непоÑтојећег индекÑа Ñимбола: %ld"
-#: coffcode.h:3162
+#: coffcode.h:3153
#, c-format
msgid "%pB: too many sections (%d)"
msgstr "%pB: превише одељака (%d)"
-#: coffcode.h:3690
+#: coffcode.h:3681
#, c-format
msgid "%pB: section %pA: string table overflow at offset %ld"
msgstr "%pB: одељак „%pA“: прекорачење табеле ниÑки на померају %ld"
-#: coffcode.h:3791
+#: coffcode.h:3782
#, c-format
msgid "%pB:%s section %s: alignment 2**%u not representable"
msgstr "%pB:%s одељак %s: поравнање 2**%u Ñе не може предÑтавити"
-#: coffcode.h:4532
+#: coffcode.h:4523
#, c-format
msgid "%pB: warning: line number table read failed"
msgstr "%pB: упозорење: није уÑпело читање броја реда табеле"
-#: coffcode.h:4578 coffcode.h:4592
+#: coffcode.h:4569 coffcode.h:4583
#, c-format
msgid "%pB: warning: illegal symbol index 0x%lx in line number entry %d"
msgstr "%pB: упозорење: неиÑправан Ð¸Ð½Ð´ÐµÐºÑ Ñимбола 0x%lx у уноÑу броја реда %d"
-#: coffcode.h:4606
+#: coffcode.h:4597
#, c-format
msgid "%pB: warning: illegal symbol in line number entry %d"
msgstr "%pB: упозорење: неиÑправан Ð¸Ð½Ð´ÐµÐºÑ Ñимбола у уноÑу броја реда %d"
-#: coffcode.h:4619
+#: coffcode.h:4610
#, c-format
msgid "%pB: warning: duplicate line number information for `%s'"
msgstr "%pB: упозорење: удвоÑтручени податак о броју реда за „%s“"
-#: coffcode.h:5043
+#: coffcode.h:5034
#, c-format
msgid "%pB: unrecognized storage class %d for %s symbol `%s'"
msgstr "%pB: непозната клаÑа Ñмештаја „%d“ за „%s“ Ñимбол „%s“"
-#: coffcode.h:5183
+#: coffcode.h:5174
#, c-format
msgid "warning: %pB: local symbol `%s' has no section"
msgstr "упозорење: %pB: локални Ñимбол „%s“ нема одељак"
-#: coffcode.h:5354
+#: coffcode.h:5345
#, c-format
msgid "%pB: illegal relocation type %d at address %#<PRIx64>"
msgstr "%pB: неиÑправна врÑта премештања %d на адреÑи %#<PRIx64>"
-#: coffgen.c:255 elf.c:1033
+#: coffgen.c:257 elf.c:1060
#, c-format
msgid "%pB: unable to compress section %s"
msgstr "%pB: не могу да запакујем одељак „%s“"
-#: coffgen.c:265 elf.c:1043
+#: coffgen.c:267 elf.c:1070
#, c-format
msgid "%pB: unable to decompress section %s"
msgstr "%pB: не могу да раÑпакујем одељак „%s“"
-#: coffgen.c:1778
+#: coffgen.c:1795
#, c-format
msgid "%pB: bad string table size %<PRIu64>"
msgstr "%pB: лоша величина табеле низа %<PRIu64>"
-#: coffgen.c:2162 coffgen.c:2301 cofflink.c:2012 ecoff.c:1456 elf.c:2288
-#: elf.c:2320 pef.c:214 syms.c:788 xcofflink.c:5530
+#: coffgen.c:2179 coffgen.c:2318 cofflink.c:2051 ecoff.c:1444 elf.c:2313
+#: elf.c:2345 pef.c:214 syms.c:789 xcofflink.c:384 xcofflink.c:5577
msgid "<corrupt>"
msgstr "<оштећење>"
-#: coffgen.c:2191
+#: coffgen.c:2208
#, c-format
msgid "<corrupt info> %s"
msgstr "<оштећени подаци> %s"
-#: coffgen.c:2797 elflink.c:15435 linker.c:3011
-msgid "%F%P: already_linked_table: %E\n"
-msgstr "%F%P: већ_повезана_табела: %E\n"
+#: coffgen.c:2818 elflink.c:15490 linker.c:3061
+msgid "%P: already_linked_table: %E\n"
+msgstr "%P: већ_повезана_табела: %E\n"
-#: coffgen.c:3139 elflink.c:14375
+#: coffgen.c:3175 elflink.c:14430
#, c-format
msgid "removing unused section '%pA' in file '%pB'"
msgstr "уклањам некоришћени одељак „%pA“ у датотеци „%pB“"
-#: coffgen.c:3216 elflink.c:14606
+#: coffgen.c:3252 elflink.c:14661
msgid "warning: gc-sections option ignored"
msgstr "упозорење: опција „gc“ одељака је занемарена"
-#: cofflink.c:398
+#: cofflink.c:399
#, c-format
msgid "warning: symbol `%s' is both section and non-section"
msgstr "упозорење: Ñимбол „%s“ је и одељак и није одељак"
-#: cofflink.c:503 elf64-ia64-vms.c:5198 elflink.c:5560
+#: cofflink.c:504 elf64-ia64-vms.c:5200 elflink.c:5587
#, c-format
msgid "warning: type of symbol `%s' changed from %d to %d in %pB"
msgstr "упозорење: врÑта Ñимбола „%s“ је измењена из „%d“ у „%d“ за „%pB“"
-#: cofflink.c:2340
+#: cofflink.c:2379
#, c-format
msgid "%pB: relocs in section `%pA', but it has no contents"
msgstr "%pB: премештања у одељку „%pA“, али нема никаквог Ñадржаја"
-#: cofflink.c:2403 elflink.c:11809
+#: cofflink.c:2442 elflink.c:11880
#, c-format
msgid "%X`%s' referenced in section `%pA' of %pB: defined in discarded section `%pA' of %pB\n"
msgstr "%X„%s“ је упутно у одељку „%pA“ од „%pB“: дефиниÑано је у одбаченом одељку „%pA“ од „%pB“\n"
-#: cofflink.c:2598
+#: cofflink.c:2637
#, c-format
msgid "%pB: stripping non-representable symbol '%s' (value 0x%<PRIx64>)"
msgstr "%pB: уклањам непредÑтављајући Ñимбол „%s“ (вредноÑÑ‚ 0x%<PRIx64>)"
-#: cofflink.c:2716
+#: cofflink.c:2755
#, c-format
msgid "%pB: %pA: reloc overflow: %#x > 0xffff"
msgstr "%pB: %pA: прекорачење премештања: %#x > 0xffff"
-#: cofflink.c:2724
+#: cofflink.c:2763
#, c-format
msgid "%pB: warning: %pA: line number overflow: %#x > 0xffff"
msgstr "%pB: warning: %pA: line number overflow: %#x > 0xffff"
-#: cofflink.c:3118
+#: cofflink.c:3157
#, c-format
msgid "%pB: bad reloc address %#<PRIx64> in section `%pA'"
msgstr "%pB: погрешна адреÑа премештања %#<PRIx64> у одељку „%pA“"
@@ -613,7 +614,7 @@ msgstr "%pB: погрешна адреÑа премештања %#<PRIx64> у о
msgid "%pB: %s: reloc overflow: 0x%lx > 0xffff"
msgstr "%pB: %s: прекорачење премештања: 0x%lx > 0xffff"
-#: compress.c:748 compress.c:765 libbfd.c:1322
+#: compress.c:732 compress.c:749 libbfd.c:1322
#, c-format
msgid "error: %pB(%pA) is too large (%#<PRIx64> bytes)"
msgstr "грешка: %pB(%pA) је превелико (%#<PRIx64> бајта)"
@@ -749,17 +750,17 @@ msgstr "„DWARF“ грешка: нађох „DWARF“ издање „%u“,
msgid "DWARF error: found address size '%u', this reader can not handle sizes greater than '%u'"
msgstr "„DWARF“ грешка: нађох величину адреÑе „%u“, овај читач не може да ради Ñа величинама већим од „%u“"
-#: ecoff.c:1017
+#: ecoff.c:1005
#, c-format
msgid "%pB: warning: isymMax (%ld) is greater than ifdMax (%ld)"
msgstr "%pB: упозорење: „isymMax“ (%ld) је веће од „ifdMax“ (%ld)"
-#: ecoff.c:1313
+#: ecoff.c:1301
#, c-format
msgid "unknown basic type %d"
msgstr "непозната оÑновна врÑта „%d“"
-#: ecoff.c:1571
+#: ecoff.c:1559
#, c-format
msgid ""
"\n"
@@ -768,7 +769,7 @@ msgstr ""
"\n"
" ПоÑледњи+1 Ñимбол: %ld"
-#: ecoff.c:1578 ecoff.c:1581
+#: ecoff.c:1566 ecoff.c:1569
#, c-format
msgid ""
"\n"
@@ -777,7 +778,7 @@ msgstr ""
"\n"
" Први Ñимбол: %ld"
-#: ecoff.c:1596
+#: ecoff.c:1584
#, c-format
msgid ""
"\n"
@@ -786,7 +787,7 @@ msgstr ""
"\n"
" ПоÑледњи+1 Ñимбол: %-7ld Ð’Ñ€Ñта: %s"
-#: ecoff.c:1604
+#: ecoff.c:1592
#, c-format
msgid ""
"\n"
@@ -795,7 +796,7 @@ msgstr ""
"\n"
" Локални Ñимбол: %ld"
-#: ecoff.c:1612
+#: ecoff.c:1600
#, c-format
msgid ""
"\n"
@@ -804,7 +805,7 @@ msgstr ""
"\n"
" struct; ПоÑледњи+1 Ñимбол: %ld"
-#: ecoff.c:1617
+#: ecoff.c:1605
#, c-format
msgid ""
"\n"
@@ -813,7 +814,7 @@ msgstr ""
"\n"
" union; ПоÑледњи+1 Ñимбол: %ld"
-#: ecoff.c:1622
+#: ecoff.c:1610
#, c-format
msgid ""
"\n"
@@ -822,7 +823,7 @@ msgstr ""
"\n"
" enum; ПоÑледњи+1 Ñимбол: %ld"
-#: ecoff.c:1630
+#: ecoff.c:1618
#, c-format
msgid ""
"\n"
@@ -831,120 +832,125 @@ msgstr ""
"\n"
" Ð’Ñ€Ñта: %s"
-#: elf-attrs.c:417 elf-attrs.c:447 elf-attrs.c:623
+#: elf-attrs.c:424 elf-attrs.c:454 elf-attrs.c:596
msgid "error adding attribute"
msgstr "грешка додавања атрибута"
-#: elf-attrs.c:503
+#: elf-attrs.c:513
+#, c-format
+msgid "%pB: error: attribute section length too small: %ld"
+msgstr "%pB: грешка: величина одељка оÑобине је премала: %ld"
+
+#: elf-attrs.c:623
#, c-format
msgid "%pB: error: attribute section '%pA' too big: %#llx"
msgstr "%pB: грешка: одељак оÑобине „%pA“ је превелик: %#llx"
-#: elf-attrs.c:540
+#: elf-attrs.c:642
#, c-format
-msgid "%pB: error: attribute section length too small: %ld"
-msgstr "%pB: грешка: величина одељка оÑобине је премала: %ld"
+msgid "%pB: error: unknown attributes version '%c'(%d) - expecting 'A'\n"
+msgstr "%pB: грешка: непознато издање оÑобине „%c“(%d) – очекујем „A“\n"
-#: elf-attrs.c:673
+#: elf-attrs.c:688
#, c-format
msgid "error: %pB: object has vendor-specific contents that must be processed by the '%s' toolchain"
msgstr "грешка: %pB: објекат има Ñадржај продавцу Ñпецифичан који мора бити обрађен алатним ланцем „%s“"
-#: elf-attrs.c:683
+#: elf-attrs.c:698
#, c-format
msgid "error: %pB: object tag '%d, %s' is incompatible with tag '%d, %s'"
msgstr "грешка: %pB: ознака објекта „%d, %s“ није ÑаглаÑна Ñа ознаком „%d, %s“"
-#: elf-eh-frame.c:946
+#: elf-eh-frame.c:952
#, c-format
msgid "discarding zero address range FDE in %pB(%pA).\n"
msgstr "одбацујем нулти опÑег адреÑе „FDE“ у „%pB(%pA)“.\n"
-#: elf-eh-frame.c:1051
+#: elf-eh-frame.c:1057
#, c-format
msgid "error in %pB(%pA); no .eh_frame_hdr table will be created"
msgstr "грешка у „%pB(%pA)“; неће бити направљена ниједна „.eh_frame_hdr“ табела"
-#: elf-eh-frame.c:1542
+#: elf-eh-frame.c:1548
#, c-format
msgid "FDE encoding in %pB(%pA) prevents .eh_frame_hdr table being created"
msgstr "„FDE“ кодирање у „%pB(%pA)“ Ñпречава Ñтварање „.eh_frame_hdr“ табеле"
-#: elf-eh-frame.c:1549
+#: elf-eh-frame.c:1555
msgid "further warnings about FDE encoding preventing .eh_frame_hdr generation dropped"
msgstr "будућа упозорења о „FDE“ кодирању Ñпречава одбацивање „.eh_frame_hdr“ генерације"
-#: elf-eh-frame.c:1872
+#: elf-eh-frame.c:1878
#, c-format
msgid "%pB: %pA not in order"
msgstr "%pB: „%pA“ није у поретку"
-#: elf-eh-frame.c:1886
+#: elf-eh-frame.c:1892
#, c-format
msgid "%pB: %pA invalid input section size"
msgstr "%pB: „%pA“ неиÑправна величина одељак улаза"
-#: elf-eh-frame.c:1894
+#: elf-eh-frame.c:1900
#, c-format
msgid "%pB: %pA points past end of text section"
msgstr "%pB: „%pA“ тачака прелази крај одељка текÑта"
-#: elf-eh-frame.c:2147
+#: elf-eh-frame.c:2153
msgid "DW_EH_PE_datarel unspecified for this architecture"
msgstr "„DW_EH_PE_datarel“ није одређено за ову архитектуру"
-#: elf-eh-frame.c:2317
+#: elf-eh-frame.c:2323
#, c-format
msgid "invalid output section for .eh_frame_entry: %pA"
msgstr "неиÑправан одељак излаза за „.eh_frame_entry“: %pA"
-#: elf-eh-frame.c:2340
+#: elf-eh-frame.c:2346
#, c-format
msgid "invalid contents in %pA section"
msgstr "неиÑправан Ñадржај у одељку „%pA“"
-#: elf-eh-frame.c:2496
+#: elf-eh-frame.c:2500
msgid ".eh_frame_hdr entry overflow"
msgstr "прекорачење „.eh_frame_hdr“ уноÑа"
-#: elf-eh-frame.c:2498
+#: elf-eh-frame.c:2502
msgid ".eh_frame_hdr refers to overlapping FDEs"
msgstr "„.eh_frame_hdr“ упућује на преклапајуће „FDE“-ове"
#. xgettext:c-format.
-#: elf-ifunc.c:144 elfnn-loongarch.c:1704
+#: elf-ifunc.c:144 elfnn-loongarch.c:1713
#, c-format
-msgid "%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%pB' can not be used when making an executable; recompile with -fPIE and relink with -pie\n"
-msgstr "%F%P: динамички „STT_GNU_IFUNC“ Ñимбол „%s“ Ñа једнакошћу показивача у „%pB“ Ñе не може кориÑтити приликом Ñтварања извршне; преведите поново Ñа „-fPIE“ и повежите поново Ñа „-pie“\n"
+msgid "%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%pB' can not be used when making an executable; recompile with -fPIE and relink with -pie\n"
+msgstr "%P: динамички „STT_GNU_IFUNC“ Ñимбол „%s“ Ñа једнакошћу показивача у „%pB“ Ñе не може кориÑтити приликом Ñтварања извршне; преведите поново Ñа „-fPIE“ и повежите поново Ñа „-pie“\n"
#: elf-m10200.c:434 elf-m10300.c:2146 elf32-bfin.c:3132 elf32-cr16.c:1429
#: elf32-cris.c:2033 elf32-crx.c:922 elf32-d10v.c:510 elf32-epiphany.c:563
#: elf32-fr30.c:594 elf32-frv.c:4048 elf32-ft32.c:492 elf32-h8300.c:523
#: elf32-ip2k.c:1478 elf32-iq2000.c:691 elf32-lm32.c:1069 elf32-m32c.c:624
-#: elf32-m32r.c:2837 elf32-m68hc1x.c:1270 elf32-mep.c:522 elf32-metag.c:1983
-#: elf32-microblaze.c:1677 elf32-moxie.c:288 elf32-mt.c:402 elf32-nds32.c:6092
-#: elf32-or1k.c:1895 elf32-score.c:2724 elf32-score7.c:2535 elf32-spu.c:5081
-#: elf32-tilepro.c:3369 elf32-v850.c:2297 elf32-visium.c:680
-#: elf32-xstormy16.c:930 elf64-bpf.c:339 elf64-mmix.c:1537 elfxx-tilegx.c:3742
+#: elf32-m32r.c:2839 elf32-m68hc1x.c:1271 elf32-mep.c:522 elf32-metag.c:1983
+#: elf32-microblaze.c:1677 elf32-moxie.c:288 elf32-mt.c:402 elf32-nds32.c:6099
+#: elf32-or1k.c:1895 elf32-score.c:2724 elf32-score7.c:2535 elf32-spu.c:5084
+#: elf32-tilepro.c:3371 elf32-v850.c:2297 elf32-visium.c:680
+#: elf32-xstormy16.c:931 elf64-bpf.c:339 elf64-mmix.c:1537 elfxx-tilegx.c:3744
msgid "internal error: out of range error"
msgstr "унутрашња грешка: изван опÑега"
#: elf-m10200.c:438 elf-m10300.c:2150 elf32-bfin.c:3136 elf32-cr16.c:1433
#: elf32-cris.c:2037 elf32-crx.c:926 elf32-d10v.c:514 elf32-fr30.c:598
#: elf32-frv.c:4052 elf32-ft32.c:496 elf32-h8300.c:527 elf32-iq2000.c:695
-#: elf32-lm32.c:1073 elf32-m32c.c:628 elf32-m32r.c:2841 elf32-m68hc1x.c:1274
+#: elf32-lm32.c:1073 elf32-m32c.c:628 elf32-m32r.c:2843 elf32-m68hc1x.c:1275
#: elf32-mep.c:526 elf32-metag.c:1987 elf32-microblaze.c:1681 elf32-moxie.c:292
-#: elf32-msp430.c:1510 elf32-nds32.c:6096 elf32-or1k.c:1899 elf32-score.c:2728
-#: elf32-score7.c:2539 elf32-spu.c:5085 elf32-tilepro.c:3373 elf32-v850.c:2301
-#: elf32-visium.c:684 elf32-xstormy16.c:934 elf64-mmix.c:1541
-#: elfxx-mips.c:10642 elfxx-tilegx.c:3746
+#: elf32-msp430.c:1510 elf32-nds32.c:6103 elf32-or1k.c:1899 elf32-score.c:2728
+#: elf32-score7.c:2539 elf32-spu.c:5088 elf32-tilepro.c:3375 elf32-v850.c:2301
+#: elf32-visium.c:684 elf32-xstormy16.c:935 elf64-mmix.c:1541
+#: elfxx-mips.c:10727 elfxx-tilegx.c:3748
msgid "internal error: unsupported relocation error"
msgstr "унутрашња грешка: премештање није подржано"
#: elf-m10200.c:442 elf32-cr16.c:1437 elf32-crx.c:930 elf32-d10v.c:518
-#: elf32-h8300.c:531 elf32-lm32.c:1077 elf32-m32r.c:2845 elf32-m68hc1x.c:1278
-#: elf32-microblaze.c:1685 elf32-nds32.c:6100 elf32-score.c:2732
-#: elf32-score7.c:2543 elf32-spu.c:5089
+#: elf32-h8300.c:531 elf32-lm32.c:1077 elf32-m32r.c:2847 elf32-m68hc1x.c:1279
+#: elf32-microblaze.c:1685 elf32-nds32.c:6107 elf32-score.c:2732
+#: elf32-score7.c:2543 elf32-spu.c:5092
msgid "internal error: dangerous error"
msgstr "унутрашња грешка: грешка опаÑноÑти"
@@ -952,11 +958,11 @@ msgstr "унутрашња грешка: грешка опаÑноÑти"
#: elf32-cris.c:2045 elf32-crx.c:934 elf32-d10v.c:522 elf32-epiphany.c:578
#: elf32-fr30.c:606 elf32-frv.c:4060 elf32-ft32.c:504 elf32-h8300.c:535
#: elf32-ip2k.c:1493 elf32-iq2000.c:703 elf32-lm32.c:1081 elf32-m32c.c:636
-#: elf32-m32r.c:2849 elf32-m68hc1x.c:1282 elf32-mep.c:534 elf32-metag.c:1995
+#: elf32-m32r.c:2851 elf32-m68hc1x.c:1283 elf32-mep.c:534 elf32-metag.c:1995
#: elf32-microblaze.c:1689 elf32-moxie.c:300 elf32-msp430.c:1518 elf32-mt.c:410
-#: elf32-nds32.c:6104 elf32-or1k.c:1907 elf32-score.c:2741 elf32-score7.c:2547
-#: elf32-spu.c:5093 elf32-tilepro.c:3381 elf32-v850.c:2321 elf32-visium.c:692
-#: elf32-xstormy16.c:942 elf64-bpf.c:352 elf64-mmix.c:1549 elfxx-tilegx.c:3754
+#: elf32-nds32.c:6111 elf32-or1k.c:1907 elf32-score.c:2741 elf32-score7.c:2547
+#: elf32-spu.c:5096 elf32-tilepro.c:3383 elf32-v850.c:2321 elf32-visium.c:692
+#: elf32-xstormy16.c:943 elf64-bpf.c:352 elf64-mmix.c:1549 elfxx-tilegx.c:3756
msgid "internal error: unknown error"
msgstr "унутрашња грешка: непозната грешка"
@@ -970,11 +976,11 @@ msgstr "%pB: неподржан прелазак Ñа „%s“ на „%s“"
msgid "%pB: %s' accessed both as normal and thread local symbol"
msgstr "%pB: „%s“ Ñе приÑтупило и као нормалном и као Ñимболу локалне нити"
-#: elf-m10300.c:2093 elf32-arm.c:13472 elf32-i386.c:3503 elf32-m32r.c:2331
-#: elf32-m68k.c:3929 elf32-s390.c:3072 elf32-sh.c:3672 elf32-tilepro.c:3272
-#: elf32-xtensa.c:3020 elf64-s390.c:3129 elf64-x86-64.c:4564 elfxx-sparc.c:2913
-#: elfxx-sparc.c:3810 elfxx-tilegx.c:3665 elfnn-aarch64.c:5725
-#: elfnn-aarch64.c:7343 elfnn-kvx.c:2772
+#: elf-m10300.c:2093 elf32-arm.c:13476 elf32-i386.c:3545 elf32-m32r.c:2333
+#: elf32-m68k.c:3931 elf32-s390.c:3074 elf32-sh.c:3674 elf32-tilepro.c:3274
+#: elf32-xtensa.c:3022 elf64-s390.c:3391 elf64-x86-64.c:5025 elfxx-sparc.c:2924
+#: elfxx-sparc.c:3820 elfxx-tilegx.c:3667 elfnn-aarch64.c:5743
+#: elfnn-aarch64.c:7361 elfnn-kvx.c:2773
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unresolvable %s relocation against symbol `%s'"
msgstr "%pB(%pA+%#<PRIx64>): нерешиво „%s“ премештање наÑпрам Ñимбола „%s“"
@@ -992,110 +998,114 @@ msgstr "%pB: узимање адреÑе заштићене функције „
msgid "internal error: suspicious relocation type used in shared library"
msgstr "унутрашња грешка: Ñумњива врÑта премештања је коришћена у дељеној библиотеци"
-#: elf-m10300.c:2650 elf32-avr.c:2483 elf32-frv.c:5621 elf64-ia64-vms.c:365
-#: elfxx-sparc.c:2680 reloc.c:8370 reloc16.c:155 elfnn-ia64.c:365
-msgid "%P%F: --relax and -r may not be used together\n"
-msgstr "%P%F: „--relax“ и „-r“ Ñе не могу кориÑтити заједно\n"
+#: elf-m10300.c:2650 elf32-avr.c:2483 elf32-frv.c:5627 elf64-ia64-vms.c:365
+#: elfxx-sparc.c:2691 reloc.c:8376 reloc16.c:155 elfnn-ia64.c:365
+msgid "%P: --relax and -r may not be used together\n"
+msgstr "%P: „--relax“ и „-r“ Ñе не могу кориÑтити заједно\n"
-#: elf-properties.c:65
+#: elf-properties.c:121
#, c-format
msgid "%pB: out of memory in _bfd_elf_get_property"
msgstr "%pB: нема више меморије у „_bfd_elf_get_property“"
-#: elf-properties.c:91
+#: elf-properties.c:150
#, c-format
msgid "warning: %pB: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx"
msgstr "упозорење: %pB: оштећено „GNU_PROPERTY_TYPE“ (%ld) величине: %#lx"
-#: elf-properties.c:112
+#: elf-properties.c:171
#, c-format
msgid "warning: %pB: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%x"
msgstr "упозорење: %pB: оштећено „GNU_PROPERTY_TYPE“ (%ld) врÑта (0x%x) величина података: 0x%x"
-#: elf-properties.c:151
+#: elf-properties.c:210
#, c-format
msgid "warning: %pB: corrupt stack size: 0x%x"
msgstr "упозорење: %pB: оштећена величина Ñпремника: 0x%x"
-#: elf-properties.c:169
+#: elf-properties.c:228
#, c-format
msgid "warning: %pB: corrupt no copy on protected size: 0x%x"
msgstr "упозорење: %pB: оштећење не умножава на заштићеној величине: 0x%x"
-#: elf-properties.c:184
+#: elf-properties.c:243
#, c-format
msgid "warning: %pB: corrupt memory sealing size: 0x%x"
msgstr "упозорење: %pB: оштећена величина затварања меморије: 0x%x"
-#: elf-properties.c:203
+#: elf-properties.c:262
#, c-format
msgid "error: %pB: <corrupt property (0x%x) size: 0x%x>"
msgstr "грешка: %pB: <оштећено ÑвојÑтво (0x%x) величине: 0x%x>"
-#: elf-properties.c:228
+#: elf-properties.c:287
#, c-format
msgid "warning: %pB: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x"
msgstr "упозорење: %pB: неподржано „GNU_PROPERTY_TYPE“ (%ld) врÑта: 0x%x"
-#: elf-properties.c:415
+#: elf-properties.c:467
msgid "Removed property %W to merge %pB (0x%v) and %pB (0x%v)\n"
msgstr "Уклоњено ÑвојÑтво „%W“ за Ñтапање „%pB“ (0x%v) и „%pB“ (0x%v)\n"
-#: elf-properties.c:421
+#: elf-properties.c:473
msgid "Removed property %W to merge %pB (0x%v) and %pB (not found)\n"
msgstr "Уклоњено ÑвојÑтво „%W“ за Ñтапање „%pB“ (0x%v) и „%pB“ (ниÑам нашао)\n"
-#: elf-properties.c:430 elf-properties.c:508
+#: elf-properties.c:482 elf-properties.c:560
msgid "Removed property %W to merge %pB and %pB\n"
msgstr "Уклоњено ÑвојÑтво „%W“ за Ñтапање „%pB“ и „%pB“\n"
-#: elf-properties.c:434
+#: elf-properties.c:486
msgid "Removed property %W to merge %pB and %pB (not found)\n"
msgstr "Уклоњено ÑвојÑтво „%W“ за Ñтапање „%pB“ и „%pB“ (ниÑам нашао)\n"
-#: elf-properties.c:451
+#: elf-properties.c:503
msgid "Updated property %W (0x%v) to merge %pB (0x%v) and %pB (0x%v)\n"
msgstr "ОÑвежено ÑвојÑтво „%W“ (0x%v) за Ñтапање „%pB“ (0x%v) и „%pB“ (0x%v)\n"
-#: elf-properties.c:460
+#: elf-properties.c:512
msgid "Updated property %W (%v) to merge %pB (0x%v) and %pB (not found)\n"
msgstr "ОÑвежено ÑвојÑтво „%W“ (%v) за Ñтапање „%pB“ (0x%v) и „%pB“ (ниÑам нашао)\n"
-#: elf-properties.c:502
+#: elf-properties.c:554
msgid "Removed property %W to merge %pB (not found) and %pB (0x%v)\n"
msgstr "Уклоњено ÑвојÑтво „%W“ за Ñтапање „%pB“ (ниÑам нашао) и „%pB“ (0x%v)\n"
-#: elf-properties.c:640 elfxx-aarch64.c:748 elfxx-x86.c:4348
-msgid "%F%P: failed to create GNU property section\n"
-msgstr "%F%P: ниÑам уÑпео да направим одељак ГÐУ ÑвојÑтва\n"
-
-#: elf-properties.c:644 elfxx-aarch64.c:752 elfxx-x86.c:4353
-#, c-format
-msgid "%F%pA: failed to align section\n"
-msgstr "%F%pA: ниÑам уÑпео да поравнам одељак\n"
+#: elf-properties.c:693 elfxx-aarch64.c:765
+msgid "%P: failed to create %s\n"
+msgstr "%P: ниÑам уÑпео да направим „GOT“ одељке\n"
#. Merge .note.gnu.property sections.
-#: elf-properties.c:749 elf-properties.c:751
+#: elf-properties.c:798 elf-properties.c:800
msgid "\n"
msgstr "\n"
-#: elf-properties.c:750
+#: elf-properties.c:799
msgid "Merging program properties\n"
msgstr "Стапам ÑвојÑтва програма\n"
-#: elf-sframe.c:239
+#: elf-sframe.c:201
+#, c-format
+msgid "error in %pB(%pA); unexpected SFrame section type"
+msgstr "грешка у „%pB(%pA)“; неочекивана врÑта SFrame одељка"
+
+#: elf-sframe.c:252
#, c-format
msgid "error in %pB(%pA); no .sframe will be created"
msgstr "грешка у „%pB(%pA)“; неће бити направљено „.sframe“"
-#: elf-sframe.c:399
+#: elf-sframe.c:426
msgid "input SFrame sections with different abi prevent .sframe generation"
msgstr "улазни „SFrame“ одељци Ñа различитим „abi“-ем Ñпречавају „.sframe“ Ñтварање"
-#: elf-sframe.c:410
+#: elf-sframe.c:437
msgid "input SFrame sections with different format versions prevent .sframe generation"
msgstr "улазни „SFrame“ одељци Ñа различитим издањима формата Ñпречавају „.sframe“ Ñтварање"
+#: elf-sframe.c:450
+msgid "SFrame sections with unexpected data encoding prevent .sframe generation"
+msgstr "„SFrame“ одељци Ñа неочекиваним кодирањем података Ñпречавају „.sframe“ Ñтварање"
+
#: elf.c:299
#, c-format
msgid "%pB: string table [%u] is corrupt"
@@ -1112,58 +1122,68 @@ msgstr "%pB: покушавам да учитам ниÑке из одељка Ð
msgid "%pB: invalid string offset %u >= %<PRIu64> for section `%s'"
msgstr "%pB: неиÑправан померај ниÑке „%u >= %<PRIu64>“ за одељак „%s“"
-#: elf.c:511 elf32-arm.c:17773 elfnn-aarch64.c:8343 elfnn-loongarch.c:6132
-#: elfnn-riscv.c:3688
+#: elf.c:512 elf32-arm.c:17779 elfnn-aarch64.c:8361 elfnn-loongarch.c:6449
+#: elfnn-riscv.c:3885
#, c-format
msgid "%pB symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
msgstr "„%pB“ Ñимбол број %lu упућује на непоÑтојећи одељак „SHT_SYMTAB_SHNDX“"
-#: elf.c:614
+#: elf.c:526
+#, c-format
+msgid "%pB symbol number %lu uses unsupported binding of %u"
+msgstr "„%pB“ Ñимбол број %lu кориÑти неподржано Ñвезивање од %u"
+
+#: elf.c:538
+#, c-format
+msgid "%pB symbol number %lu uses unsupported type of %u"
+msgstr "„%pB“ Ñимбол број %lu кориÑти неподржану врÑту %u"
+
+#: elf.c:641
#, c-format
msgid "%pB: could not read contents of group [%u]"
msgstr "%pB: не могу да читам Ñадржај групе [%u]"
-#: elf.c:645
+#: elf.c:672
#, c-format
msgid "%pB: invalid entry (%#x) in group [%u]"
msgstr "%pB: неиÑправан ÑƒÐ½Ð¾Ñ (%#x) у групи [%u]"
-#: elf.c:664
+#: elf.c:691
#, c-format
msgid "%pB: unexpected type (%#x) section `%s' in group [%u]"
msgstr "%pB: неочекивана врÑта [%#x] одељак „%s“ у групи [%u]"
-#: elf.c:740
+#: elf.c:767
#, c-format
msgid "%pB: sh_link [%d] in section `%pA' is incorrect"
msgstr "%pB: „sh_link [%d]“ у одељку „%pA“ није иÑправно"
-#: elf.c:769
+#: elf.c:796
#, c-format
msgid "%pB: section group entry number %u is corrupt"
msgstr "%pB: број одељка уноÑа групе %u је оштећен"
-#: elf.c:1051
+#: elf.c:1078
#, c-format
msgid "%pB: section %s is compressed with zstd, but BFD is not built with zstd support"
msgstr "%pB: одељак „%s“ је запакован Ñа „zstd“, али BFD није изграђен Ñа „zstd“ подршком"
-#: elf.c:1237
+#: elf.c:1264
#, c-format
msgid "%pB: invalid sh_link field (%d) in section number %d"
msgstr "%pB: неиÑправно „sh_link“ поље (%d) у броју одељка %d"
-#: elf.c:1253
+#: elf.c:1280
#, c-format
msgid "%pB: failed to find link section for section %d"
msgstr "%pB: ниÑам уÑпео да нађем одељак везе за одељак %d"
-#: elf.c:1280
+#: elf.c:1307
#, c-format
msgid "%pB: failed to find info section for section %d"
msgstr "%pB: ниÑам уÑпео да нађем одељак података за одељак %d"
-#: elf.c:1457
+#: elf.c:1484
#, c-format
msgid ""
"\n"
@@ -1172,7 +1192,7 @@ msgstr ""
"\n"
"Заглавље програма:\n"
-#: elf.c:1499
+#: elf.c:1526
#, c-format
msgid ""
"\n"
@@ -1181,7 +1201,7 @@ msgstr ""
"\n"
"Динамички одељак:\n"
-#: elf.c:1638
+#: elf.c:1665
#, c-format
msgid ""
"\n"
@@ -1190,7 +1210,7 @@ msgstr ""
"\n"
"Дефиниција издања:\n"
-#: elf.c:1663
+#: elf.c:1690
#, c-format
msgid ""
"\n"
@@ -1199,106 +1219,111 @@ msgstr ""
"\n"
"Упута издања:\n"
-#: elf.c:1668
+#: elf.c:1695
#, c-format
msgid " required from %s:\n"
msgstr " захтевано из „%s“:\n"
-#: elf.c:1917
+#: elf.c:1944
#, c-format
msgid "%pB: DT_STRTAB table is corrupt"
msgstr "%pB: DT_STRTAB табела је оштећена"
-#: elf.c:2426
+#: elf.c:2451
#, c-format
msgid "%pB: warning: loop in section dependencies detected"
msgstr "%pB: упозорење: петља у завиÑноÑтима одељка је откривена"
-#: elf.c:2533
+#: elf.c:2559
#, c-format
msgid "%pB: warning: multiple symbol tables detected - ignoring the table in section %u"
msgstr "%pB: упозорење: откривено је више табела Ñимбола – занемарујем табелу у одељку %u"
-#: elf.c:2618
+#: elf.c:2644
#, c-format
msgid "%pB: warning: multiple dynamic symbol tables detected - ignoring the table in section %u"
msgstr "%pB: упозорење: откривено је више динамичких табела Ñимбола – занемарујем табелу у одељку %u"
-#: elf.c:2737
+#: elf.c:2763
#, c-format
msgid "%pB: invalid link %u for reloc section %s (index %u)"
msgstr "%pB: неиÑправна веза „%u“ за одељак премештања „%s“ (Ð¸Ð½Ð´ÐµÐºÑ â€ž%u“)"
-#: elf.c:2794
+#: elf.c:2820
#, c-format
msgid "%pB: warning: secondary relocation section '%s' for section %pA found - ignoring"
msgstr "%pB: упозорење: нађох Ñекундарни одељак премештања „%s“ за одељак „%pA“ – занемарујем"
-#: elf.c:2879 elf.c:2893 elf.c:2904 elf.c:2917
+#: elf.c:2905 elf.c:2919 elf.c:2930 elf.c:2943
#, c-format
msgid "%pB: unknown type [%#x] section `%s'"
msgstr "%pB: непозната врÑта [%#x] одељак „%s“"
-#: elf.c:3586
+#: elf.c:3614
#, c-format
msgid "%pB: error: alignment power %d of section `%pA' is too big"
msgstr "%pB: грешка: Ñнага поравнања %d одељка „%pA“ је превелика"
-#: elf.c:3621
+#: elf.c:3649
#, c-format
msgid "warning: section `%pA' type changed to PROGBITS"
msgstr "упозорење: врÑта „%pA“ одељка је измењена у „PROGBITS“"
-#: elf.c:4130
+#: elf.c:3981
+#, c-format
+msgid "%pB: corrupted group section: `%pA'"
+msgstr "%pB: оштећен одељак групе: „%pA“"
+
+#: elf.c:4156
#, c-format
msgid "%pB: too many sections: %u"
msgstr "%pB: превише одељака: %u"
-#: elf.c:4216
+#: elf.c:4242
#, c-format
msgid "%pB: sh_link of section `%pA' points to discarded section `%pA' of `%pB'"
msgstr "%pB: „sh_link“ одељка „%pA“ указује на одбачени одељак „%pA“ од „%pB“"
-#: elf.c:4234
+#: elf.c:4260
#, c-format
msgid "%pB: sh_link of section `%pA' points to removed section `%pA' of `%pB'"
msgstr "%pB: „sh_link“ одељка „%pA“ указује на уклоњени одељак „%pA“ од „%pB“"
-#: elf.c:4830
+#: elf.c:4860
#, c-format
msgid "%pB: GNU_MBIND section `%pA' has invalid sh_info field: %d"
msgstr "%pB: „GNU_MBIND“ одељак „%pA“ има неиÑправно „sh_info“ поље: %d"
-#: elf.c:5013
-msgid "%F%P: failed to size relative relocations\n"
-msgstr "%F%P: ниÑам уÑпео на величину релативна премештања\n"
+#: elf.c:5043
+msgid "%P: failed to size relative relocations\n"
+msgstr "%P: ниÑам уÑпео на величину релативна премештања\n"
-#: elf.c:5440
+#: elf.c:5470
#, c-format
msgid "%pB: TLS sections are not adjacent:"
msgstr "%pB: ТЛС одељци ниÑу ÑуÑедни:"
-#: elf.c:5447
+#: elf.c:5477
#, c-format
msgid "\t TLS: %pA"
msgstr "\t ТЛС: %pA"
-#: elf.c:5451
+#: elf.c:5481
#, c-format
msgid "\tnon-TLS: %pA"
msgstr "\tне-ТЛС: %pA"
-#: elf.c:6075
+#: elf.c:6103
#, c-format
msgid "%pB: The first section in the PT_DYNAMIC segment is not the .dynamic section"
msgstr "%pB: Први одељак у подеоку „PT_DYNAMIC“ није „.dynamic“ одељак"
-#: elf.c:6101
+#: elf.c:6129
#, c-format
msgid "%pB: not enough room for program headers, try linking with -N"
msgstr "%pB: нема довољно меÑта за заглавље програм, пробајте да повежете Ñа „-N“"
-#: elf.c:6222
+#: elf.c:6256
#, c-format
msgid "%pB: section %pA lma %#<PRIx64> adjusted to %#<PRIx64>"
msgstr "%pB: одељак „%pA lma %#<PRIx64>“ је дотеран на %#<PRIx64>"
@@ -1306,189 +1331,189 @@ msgstr "%pB: одељак „%pA lma %#<PRIx64>“ је дотеран на %#<P
#. The fix for this error is usually to edit the linker script being
#. used and set up the program headers manually. Either that or
#. leave room for the headers at the start of the SECTIONS.
-#: elf.c:6362
+#: elf.c:6397
#, c-format
msgid "%pB: error: PHDR segment not covered by LOAD segment"
msgstr "%pB: грешка: „PHDR“ подеок није покривен „LOAD“ подеоком"
-#: elf.c:6402
+#: elf.c:6437
#, c-format
msgid "%pB: section `%pA' can't be allocated in segment %u"
msgstr "%pB: одељак „%pA“ Ñе не може доделити у подеоку %u"
-#: elf.c:6543
+#: elf.c:6575
#, c-format
msgid "%pB: warning: allocated section `%s' not in segment"
msgstr "%pB: упозорење: додељени одељак „%s“ није у подеоку"
-#: elf.c:6678
+#: elf.c:6710
#, c-format
msgid "%pB: warning: unable to allocate any sections to PT_GNU_RELRO segment"
msgstr "%pB: упозорење: не могу да доделим ниједан одељак на „PT_GNU_RELRO“ подеок"
-#: elf.c:6709
+#: elf.c:6741
#, c-format
msgid "%pB: error: non-load segment %d includes file header and/or program header"
msgstr "%pB: грешка: подеок не-учитавања %d укључује заглавље датотеке и/или заглавље програма"
-#: elf.c:6862
+#: elf.c:6894
#, c-format
msgid "error: %pB has a TLS segment with execute permission"
msgstr "грешка: „%pB“ има ТЛС подеок Ñа овлашћењем извршавања"
-#: elf.c:6868
+#: elf.c:6900
#, c-format
msgid "warning: %pB has a TLS segment with execute permission"
msgstr "упозорење: „%pB“ има ТЛС подеок Ñа овлашћењем извршавања"
-#: elf.c:6883
+#: elf.c:6915
#, c-format
msgid "error: %pB has a LOAD segment with RWX permissions"
msgstr "грешка: „%pB“ има подеок УЧИТÐЈ Ñа овлашћењима пиÑања и бриÑања"
-#: elf.c:6889
+#: elf.c:6921
#, c-format
msgid "warning: %pB has a LOAD segment with RWX permissions"
msgstr "упозорење: „%pB“ има подеок УЧИТÐЈ Ñа овлашћењима пиÑања и бриÑања"
-#: elf.c:7284
+#: elf.c:7316
#, c-format
msgid "%pB: symbol `%s' required but not present"
msgstr "%pB: Ñимбол „%s“ је потребан али није приÑутан"
-#: elf.c:7661
+#: elf.c:7693
#, c-format
msgid "%pB: warning: empty loadable segment detected at vaddr=%#<PRIx64>, is this intentional?"
msgstr "%pB: упозорење: празан подеок који Ñе може учитати откривен је на „vaddr=%#<PRIx64>“, да ли је то намеравано?"
-#: elf.c:8334
+#: elf.c:8366
#, c-format
msgid "%pB: warning: segment alignment of %#<PRIx64> is too large"
msgstr "%pB: упозорење: поравнање подеока за „%#<PRIx64>“ је превелико"
-#: elf.c:8837
+#: elf.c:8848
#, c-format
msgid "%pB: Unable to handle section index %x in ELF symbol. Using ABS instead."
msgstr "%pB: Ðе могу да рукујем Ñа индекÑом одељка %x у ЕЛФ Ñимболу. КориÑтићу „ABS“."
-#: elf.c:8867
+#: elf.c:8878
#, c-format
msgid "unable to find equivalent output section for symbol '%s' from section '%s'"
msgstr "не могу да нађем еквивалентан одељак излаза за Ñимбол „%s“ из одељка „%s“"
-#: elf.c:9300
+#: elf.c:9311
#, c-format
msgid "%pB: .gnu.version_r invalid entry"
msgstr "%pB: „.gnu.version_r“ неиÑправан уноÑ"
-#: elf.c:9478
+#: elf.c:9489
#, c-format
msgid "%pB: .gnu.version_d invalid entry"
msgstr "%pB: „.gnu.version_d“ неиÑправан уноÑ"
-#: elf.c:9981
+#: elf.c:9992
#, c-format
msgid "%pB:%pA: error: attempting to write over the end of the section"
msgstr "%pB:%pA: грешка: покушавам да пишем преко краја одељка"
-#: elf.c:9993
+#: elf.c:10004
#, c-format
msgid "%pB:%pA: error: attempting to write section into an empty buffer"
msgstr "%pB:%pA: грешка: покушавам да упишем одељак у празну међумеморију"
-#: elf.c:10108 elf32-mcore.c:100 elf32-mcore.c:455 elf32-ppc.c:7675
-#: elf32-ppc.c:8863 elf64-ppc.c:16860
+#: elf.c:10119 elf32-mcore.c:100 elf32-mcore.c:455 elf32-ppc.c:7666
+#: elf32-ppc.c:8854 elf64-ppc.c:16870
#, c-format
msgid "%pB: %s unsupported"
msgstr "%pB: „%s“ није подржано"
-#: elf.c:10923
+#: elf.c:10966
#, c-format
msgid "%pB: warning: win32pstatus %s of size %lu bytes is too small"
msgstr "%pB: упозорење: „win32pstatus %s“ величине %lu бајта је превише мало"
-#: elf.c:11002
+#: elf.c:11045
#, c-format
msgid "%pB: win32pstatus NOTE_INFO_MODULE of size %lu is too small to contain a name of size %u"
msgstr "%pB: „win32pstatus NOTE_INFO_MODULE“ величине %lu је превише мало да би Ñадржало назив величине %u"
-#: elf.c:13640
+#: elf.c:13726
msgid "GNU_MBIND section is supported only by GNU and FreeBSD targets"
msgstr "„GNU_MBIND“ одељак је подржан Ñамо Гну и ФриБСД метама"
-#: elf.c:13643
+#: elf.c:13729
msgid "symbol type STT_GNU_IFUNC is supported only by GNU and FreeBSD targets"
msgstr "врÑта Ñимбола „STT_GNU_IFUNC“ је подржана Ñамо Гну и ФриБСД метама"
-#: elf.c:13646
+#: elf.c:13732
msgid "symbol binding STB_GNU_UNIQUE is supported only by GNU and FreeBSD targets"
msgstr "Ñвеза Ñимбола „STB_GNU_UNIQUE“ је подржана Ñамо Гну и ФриБСД метама"
-#: elf.c:13649
+#: elf.c:13735
msgid "GNU_RETAIN section is supported only by GNU and FreeBSD targets"
msgstr "„GNU_RETAIN“ одељак је подржан Ñамо Гну и ФриБСД метама"
-#: elf.c:13866
+#: elf.c:13952
#, c-format
msgid "%pB(%pA): relocation %zu has invalid symbol index %lu"
msgstr "%pB(%pA): премештање „%zu“ има неиÑправан Ð¸Ð½Ð´ÐµÐºÑ Ñимбола %lu"
-#: elf.c:13941
+#: elf.c:14027
#, c-format
msgid "%pB(%pA): link section cannot be set because the output file does not have a symbol table"
msgstr "%pB(%pA): одељак везе Ñе не може подеÑити зато што излазна датотека нема табелу Ñимбола"
-#: elf.c:13955
+#: elf.c:14041
#, c-format
msgid "%pB(%pA): info section index is invalid"
msgstr "%pB(%pA): Ð¸Ð½Ð´ÐµÐºÑ Ð¾Ð´ÐµÑ™ÐºÐ° података није иÑправан"
-#: elf.c:13969
+#: elf.c:14055
#, c-format
msgid "%pB(%pA): info section index cannot be set because the section is not in the output"
msgstr "%pB(%pA): Ð¸Ð½Ð´ÐµÐºÑ Ð¾Ð´ÐµÑ™ÐºÐ° података Ñе не може подеÑити зато што одељак није у излазу"
-#: elf.c:14045
+#: elf.c:14131
#, c-format
msgid "%pB(%pA): error: secondary reloc section processed twice"
msgstr "%pB(%pA): грешка: Ñекундарни одељак премештаја је обрађен два пута"
-#: elf.c:14057
+#: elf.c:14143
#, c-format
msgid "%pB(%pA): error: secondary reloc section has zero sized entries"
msgstr "%pB(%pA): грешка: Ñекундарни одељак премештаја има уноÑе нулте величине"
-#: elf.c:14069
+#: elf.c:14155
#, c-format
msgid "%pB(%pA): error: secondary reloc section has non-standard sized entries"
msgstr "%pB(%pA): грешка: Ñекундарни одељак премештаја има уноÑе неуобичајене величине"
-#: elf.c:14083
+#: elf.c:14169
#, c-format
msgid "%pB(%pA): error: secondary reloc section is empty!"
msgstr "%pB(%pA): грешка: Ñекундарни одељак премештаја је празан!"
-#: elf.c:14106
+#: elf.c:14193
#, c-format
msgid "%pB(%pA): error: internal relocs missing for secondary reloc section"
msgstr "%pB(%pA): грешка: унутрашњи премештаји недоÑтају за Ñекундарни одељак премештаја"
-#: elf.c:14126
+#: elf.c:14213
#, c-format
msgid "%pB(%pA): error: reloc table entry %zu is empty"
msgstr "%pB(%pA): грешка: ÑƒÐ½Ð¾Ñ Ñ‚Ð°Ð±ÐµÐ»Ðµ премештаја %zu је празан"
-#: elf.c:14151
+#: elf.c:14238
#, c-format
msgid "%pB(%pA): error: secondary reloc %zu references a missing symbol"
msgstr "%pB(%pA): грешка: Ñекундарни премштај %zu упућује на недоÑтајући Ñимбол"
-#: elf.c:14169
+#: elf.c:14256
#, c-format
msgid "%pB(%pA): error: secondary reloc %zu references a deleted symbol"
msgstr "%pB(%pA): грешка: Ñекундарни премштај %zu упућује на обриÑан Ñимбол"
-#: elf.c:14183
+#: elf.c:14270
#, c-format
msgid "%pB(%pA): error: secondary reloc %zu is of an unknown type"
msgstr "%pB(%pA): грешка: Ñекундарни премештај %zu је непознате врÑте"
@@ -1497,9 +1522,9 @@ msgstr "%pB(%pA): грешка: Ñекундарни премештај %zu је
#. containing valid data.
#. Ignore init flag - it may not be set, despite the flags field
#. containing valid data.
-#: elf32-arc.c:454 elf32-arm.c:15194 elf32-frv.c:6612 elf32-iq2000.c:868
-#: elf32-m32c.c:914 elf32-mt.c:560 elf32-rl78.c:1275 elf32-rx.c:3218
-#: elf32-visium.c:844 elf64-ppc.c:5531 elfnn-aarch64.c:7573
+#: elf32-arc.c:454 elf32-arm.c:15198 elf32-frv.c:6618 elf32-iq2000.c:868
+#: elf32-m32c.c:915 elf32-mt.c:560 elf32-rl78.c:1275 elf32-rx.c:3218
+#: elf32-visium.c:844 elf64-ppc.c:5531 elfnn-aarch64.c:7591
#, c-format
msgid "private flags = 0x%lx:"
msgstr "приватне заÑтавице = 0x%lx:"
@@ -1544,8 +1569,8 @@ msgstr "грешка: %pB: Ñукоб атрибута „%s“"
msgid "error: attempting to link %pB with a binary %pB of different architecture"
msgstr "грешка: покушавам да увежем „%pB“ Ñа извршном „%pB“ другачије архитектуре"
-#: elf32-arc.c:937 elf32-iq2000.c:844 elf32-m32c.c:889 elf32-m68hc1x.c:1389
-#: elf32-ppc.c:3854 elf64-sparc.c:737 elfxx-mips.c:15680
+#: elf32-arc.c:937 elf32-iq2000.c:844 elf32-m32c.c:890 elf32-m68hc1x.c:1390
+#: elf32-ppc.c:3854 elf64-sparc.c:737 elfxx-mips.c:15766
#, c-format
msgid "%pB: uses different e_flags (%#x) fields than previous modules (%#x)"
msgstr "%pB: кориÑти другачија поља „e_flags“ (%#x) него претходни модули (%#x)"
@@ -1597,619 +1622,619 @@ msgstr "%pB(%pA): унутрашња грешка: опаÑно премешта
msgid "%pB(%pA): internal error: unknown error"
msgstr "%pB(%pA): унутрашња грешка: непозната грешка"
-#: elf32-arc.c:2035 elf32-arc.c:2103 elf32-arm.c:15637 elf32-metag.c:2250
-#: elf32-nds32.c:5542 elfnn-aarch64.c:7980 elfnn-riscv.c:722
+#: elf32-arc.c:2035 elf32-arc.c:2103 elf32-arm.c:15641 elf32-metag.c:2250
+#: elf32-nds32.c:5549 elfnn-aarch64.c:7998 elfnn-riscv.c:915
#, c-format
msgid "%pB: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC"
msgstr "%pB: премештање „%s“ наÑпрам „%s“ Ñе не може кориÑтити приликом Ñтварања дељеног објекта; поново преведите Ñа „-fPIC“"
-#: elf32-arc.c:2920
+#: elf32-arc.c:2922
#, c-format
msgid "%pB: unknown mandatory ARC object attribute %d"
msgstr "%pB: непознат атрибут „%d“ обавезног „ARC“ објекта"
-#: elf32-arc.c:2928
+#: elf32-arc.c:2930
#, c-format
msgid "warning: %pB: unknown ARC object attribute %d"
msgstr "упозорење: %pB: непознат атрибут „%d“ објекта „ARC“"
-#: elf32-arm.c:4365 elf32-arm.c:4399 elf32-arm.c:4418 elf32-arm.c:4470
+#: elf32-arm.c:4367 elf32-arm.c:4401 elf32-arm.c:4420 elf32-arm.c:4472
#, c-format
msgid "%pB(%pA): warning: long branch veneers used in section with SHF_ARM_PURECODE section attribute is only supported for M-profile targets that implement the movw instruction"
msgstr "%pB(%pA): упозорење: дуге превлаке гране коришћене Ñу у одељку Ñа атрибутом „SHF_ARM_PURECODE“ одељком је подржана Ñамо за циљеве M-профила које примењују „movw“ инÑтрукцију"
-#: elf32-arm.c:4430 elf32-arm.c:4484 elf32-arm.c:9181 elf32-arm.c:9271
+#: elf32-arm.c:4432 elf32-arm.c:4486 elf32-arm.c:9185 elf32-arm.c:9275
#, c-format
msgid "%pB(%s): warning: interworking not enabled; first occurrence: %pB: %s call to %s"
msgstr "%pB(%s): упозорење: међудејÑтво није укључено; прво појављивање: %pB: „%s“ позива „%s“"
-#: elf32-arm.c:4610
+#: elf32-arm.c:4612
#, c-format
msgid "ERROR: CMSE stub (%s section) too far (%#<PRIx64>) from destination (%#<PRIx64>)"
msgstr "ГРЕШКÐ: „CMSE“ окрајак (одељак „%s“) је превише далеко (%#<PRIx64>) од пдредишта (%#<PRIx64>)"
-#: elf32-arm.c:4779
+#: elf32-arm.c:4781
#, c-format
msgid "no address assigned to the veneers output section %s"
msgstr "ниједна адреÑа није додељена излазу превлаке одељка „%s“"
-#: elf32-arm.c:4854 elf32-arm.c:7003 elf32-csky.c:3385 elf32-hppa.c:581
-#: elf32-m68hc1x.c:163 elf32-metag.c:1179 elf64-ppc.c:3902 elf64-ppc.c:14175
-#: elfnn-aarch64.c:3188 elfnn-kvx.c:894
+#: elf32-arm.c:4856 elf32-arm.c:7005 elf32-csky.c:3387 elf32-hppa.c:581
+#: elf32-m68hc1x.c:163 elf32-metag.c:1179 elf64-ppc.c:3902 elf64-ppc.c:14180
+#: elfnn-aarch64.c:3200 elfnn-kvx.c:894
#, c-format
msgid "%pB: cannot create stub entry %s"
msgstr "%pB: не могу да Ñтворим ÑƒÐ½Ð¾Ñ Ð¾ÐºÑ€Ð°Ñ˜ÐºÐ° „%s“"
-#: elf32-arm.c:5075 elf32-csky.c:3727 elf32-hppa.c:731 elf32-hppa.c:760
-#: elf32-hppa.c:841 elf32-m68hc11.c:422 elf32-m68hc12.c:542 elf32-metag.c:3344
-#: elf64-ppc.c:12292 elf64-ppc.c:12300 xcofflink.c:4676 elfnn-aarch64.c:3260
-msgid "%F%P: Could not assign `%pA' to an output section. Retry without --enable-non-contiguous-regions.\n"
-msgstr "%F%P: Ðе могу да доделим „%pA“ излазном одељку. Покушајте поново без „--enable-non-contiguous-regions“.\n"
+#: elf32-arm.c:5077 elf32-csky.c:3729 elf32-hppa.c:731 elf32-hppa.c:760
+#: elf32-hppa.c:841 elf32-m68hc11.c:422 elf32-m68hc12.c:542 elf32-metag.c:3346
+#: elf64-ppc.c:12297 elf64-ppc.c:12305 xcofflink.c:4723 elfnn-aarch64.c:3272
+msgid "%P: Could not assign `%pA' to an output section. Retry without --enable-non-contiguous-regions.\n"
+msgstr "%P: Ðе могу да доделим „%pA“ излазном одељку. Покушајте поново без „--enable-non-contiguous-regions“.\n"
-#: elf32-arm.c:6046
+#: elf32-arm.c:6048
#, c-format
msgid "%pB: special symbol `%s' only allowed for ARMv8-M architecture or later"
msgstr "%pB: Ñпецијални Ñимбол „%s“ је дозвољен Ñамо за „ARMv8-M“ архитектуру или новију"
-#: elf32-arm.c:6055
+#: elf32-arm.c:6057
#, c-format
msgid "%pB: invalid special symbol `%s'; it must be a global or weak function symbol"
msgstr "%pB: неиÑправан Ñпецијални Ñимбол „%s“; мора бити општи или Ñимбол Ñлабе функције"
-#: elf32-arm.c:6094
+#: elf32-arm.c:6096
#, c-format
msgid "%pB: invalid standard symbol `%s'; it must be a global or weak function symbol"
msgstr "%pB: неиÑправан Ñтандардни Ñимбол „%s“; мора бити општи или Ñимбол Ñлабе функције"
-#: elf32-arm.c:6100
+#: elf32-arm.c:6102
#, c-format
msgid "%pB: absent standard symbol `%s'"
msgstr "%pB: недоÑтаје Ñтандардни Ñимбол „%s“"
-#: elf32-arm.c:6112
+#: elf32-arm.c:6114
#, c-format
msgid "%pB: `%s' and its special symbol are in different sections"
msgstr "%pB: „%s“ и њен Ñпецијални Ñимбол Ñу у различитим одељцима"
-#: elf32-arm.c:6124
+#: elf32-arm.c:6126
#, c-format
msgid "%pB: entry function `%s' not output"
msgstr "%pB: функцја уноÑа „%s“ није излаз"
-#: elf32-arm.c:6131
+#: elf32-arm.c:6133
#, c-format
msgid "%pB: entry function `%s' is empty"
msgstr "%pB: функцја уноÑа „%s“ је празна"
-#: elf32-arm.c:6260
+#: elf32-arm.c:6262
#, c-format
msgid "%pB: --in-implib only supported for Secure Gateway import libraries"
msgstr "%pB: „--in-implib“ је подржана Ñамо за „Secure Gateway“ библиотеке уноÑа"
-#: elf32-arm.c:6309
+#: elf32-arm.c:6311
#, c-format
msgid "%pB: invalid import library entry: `%s'; symbol should be absolute, global and refer to Thumb functions"
msgstr "%pB: неиÑправан ÑƒÐ½Ð¾Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐºÐµ уноÑа: „%s“; Ñимбол треба да буде апÑолутни, општи и да Ñе одноÑи на „Thumb“ функције"
-#: elf32-arm.c:6331
+#: elf32-arm.c:6333
#, c-format
msgid "entry function `%s' disappeared from secure code"
msgstr "функција уноÑа „%s“ је неÑтала из безбедног кода"
-#: elf32-arm.c:6355
+#: elf32-arm.c:6357
#, c-format
msgid "`%s' refers to a non entry function"
msgstr "„%s“ упућује на не улазну функцију"
-#: elf32-arm.c:6370
+#: elf32-arm.c:6372
#, c-format
msgid "%pB: visibility of symbol `%s' has changed"
msgstr "%pB: видљивоÑÑ‚ Ñимбола „%s“ је измењена"
-#: elf32-arm.c:6379
+#: elf32-arm.c:6381
#, c-format
msgid "%pB: incorrect size for symbol `%s'"
msgstr "%pB: неиÑправна величина за Ñимбол „%s“"
-#: elf32-arm.c:6398
+#: elf32-arm.c:6400
#, c-format
msgid "offset of veneer for entry function `%s' not a multiple of its size"
msgstr "померај превлаке за функцију уноÑа „%s“ није умножак величине"
-#: elf32-arm.c:6418
+#: elf32-arm.c:6420
msgid "new entry function(s) introduced but no output import library specified:"
msgstr "нова функција уноÑа је приÑтигла али није наведена излазно улазна библиотека:"
-#: elf32-arm.c:6426
+#: elf32-arm.c:6428
#, c-format
msgid "start address of `%s' is different from previous link"
msgstr "почетна адреÑа за „%s“ Ñе разликује од претходне везе"
-#: elf32-arm.c:7137 elf32-arm.c:7175
+#: elf32-arm.c:7140 elf32-arm.c:7178
#, c-format
msgid "unable to find %s glue '%s' for '%s'"
msgstr "не могу да нађем „%s“ лепак „%s“ за „%s“"
-#: elf32-arm.c:7886
+#: elf32-arm.c:7890
#, c-format
msgid "%pB: BE8 images only valid in big-endian mode"
msgstr "%pB: „BE8“ Ñлике Ñу иÑправне Ñамо у режиму велике крајњоÑти"
#. Give a warning, but do as the user requests anyway.
-#: elf32-arm.c:8114
+#: elf32-arm.c:8118
#, c-format
msgid "%pB: warning: selected VFP11 erratum workaround is not necessary for target architecture"
msgstr "%pB: упозорење: изабрано решење „VFP11“ грешака није потребно за циљну архитектуру"
-#: elf32-arm.c:8141
+#: elf32-arm.c:8145
#, c-format
msgid "%pB: warning: selected STM32L4XX erratum workaround is not necessary for target architecture"
msgstr "%pB: упозорење: изабрано решење „STM32L4XX“ грешака није потребно за циљну архитектуру"
-#: elf32-arm.c:8677 elf32-arm.c:8697 elf32-arm.c:8764 elf32-arm.c:8783
+#: elf32-arm.c:8681 elf32-arm.c:8701 elf32-arm.c:8768 elf32-arm.c:8787
#, c-format
msgid "%pB: unable to find %s veneer `%s'"
msgstr "%pB: не могу да нађем „%s“ превлаку „%s“"
-#: elf32-arm.c:8990
+#: elf32-arm.c:8994
#, c-format
msgid "%pB(%pA+%#x): error: multiple load detected in non-last IT block instruction: STM32L4XX veneer cannot be generated; use gcc option -mrestrict-it to generate only one instruction per IT block"
msgstr "%pB(%pA+%#x): грешка: вишеÑтруко учитавање је откривено у не-поÑледњој инÑтрукцији „IT“ блока: „STM32L4XX“ превлака Ñе не може Ñтворити; кориÑтите „gcc“ опцију „-mrestrict-it“ за Ñтварање Ñамо једне инÑтрукције по „IT“ блоку"
-#: elf32-arm.c:9088
+#: elf32-arm.c:9092
#, c-format
msgid "invalid TARGET2 relocation type '%s'"
msgstr "неиÑправна врÑта „TARGET2“ премештања „%s“"
#. FIXME: We ought to be able to generate thumb-1 PLT
#. instructions...
-#: elf32-arm.c:9857
+#: elf32-arm.c:9861
#, c-format
msgid "%pB: warning: thumb-1 mode PLT generation not currently supported"
msgstr "%pB: упозорење: „PLT“ Ñтварање у „thumb-1“ режиму тренутно није подржано"
-#: elf32-arm.c:10166 elf32-arm.c:10208
+#: elf32-arm.c:10170 elf32-arm.c:10212
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' in TLS trampoline"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана „%s“ инÑтрукција „%#lx“ у „TLS“ трамбулини"
-#: elf32-arm.c:10489
+#: elf32-arm.c:10493
#, c-format
msgid "warning: %pB(%s): Forcing bramch to absolute symbol in Thumb mode (Thumb-only CPU) in %pB"
msgstr "упозорење: %pB(%s): Приморавам грану на апÑолутни Ñимбол у Thumb режиму (Thumb-Ñамо процеÑор) у „%pB“"
-#: elf32-arm.c:10494
+#: elf32-arm.c:10498
#, c-format
msgid "warning: (%s): Forcing branch to absolute symbol in Thumb mode (Thumb-only CPU) in %pB"
msgstr "упозорење: (%s): Приморавам грану на апÑолутни Ñимбол у Thumb режиму (Thumb-Ñамо процеÑор) у „%pB“"
-#: elf32-arm.c:10523
+#: elf32-arm.c:10527
#, c-format
msgid "%pB(%s): Unknown destination type (ARM/Thumb) in %pB"
msgstr "%pB(%s): Ðепозната врÑта одредишта (ARM/Thumb) у „%pB“"
-#: elf32-arm.c:10527
+#: elf32-arm.c:10531
#, c-format
msgid "(%s): Unknown destination type (ARM/Thumb) in %pB"
msgstr "(%s): Ðепозната врÑта одрдишта (ARM/Thumb) у „%pB“"
-#: elf32-arm.c:10615
+#: elf32-arm.c:10619
msgid "shared object"
msgstr "дељени објекат"
-#: elf32-arm.c:10618
+#: elf32-arm.c:10622
msgid "PIE executable"
msgstr "„PIE“ извршна"
-#: elf32-arm.c:10621
+#: elf32-arm.c:10625
#, c-format
msgid "%pB: relocation %s against external or undefined symbol `%s' can not be used when making a %s; recompile with -fPIC"
msgstr "%pB: премештање „%s“ наÑпрам Ñпољног или неодређеног Ñимбола „%s“ Ñе не може кориÑтити приликом Ñтварања „%s“; поново преведите Ñа „-fPIC“"
-#: elf32-arm.c:10723
+#: elf32-arm.c:10727
#, c-format
msgid "\\%pB: warning: %s BLX instruction targets %s function '%s'"
msgstr "\\%pB: упозорење: инÑтрукција „%s BLX“ циља на „%s“ функцију „%s“"
-#: elf32-arm.c:11140
+#: elf32-arm.c:11144
#, c-format
msgid "%pB: warning: %s BLX instruction targets %s function '%s'"
msgstr "%pB: упозорење: инÑтрукција „%s BLX“ циља на „%s“ функцију „%s“"
-#: elf32-arm.c:11774
+#: elf32-arm.c:11778
#, c-format
msgid "%pB: expected symbol index in range 0..%lu but found local symbol with index %lu"
msgstr "%pB: очекивах Ð¸Ð½Ð´ÐµÐºÑ Ñимбола у опÑегу 0..%lu али нађох локални Ñимбол Ñа индекÑом %lu"
-#: elf32-arm.c:12049 elf32-arm.c:12075
+#: elf32-arm.c:12053 elf32-arm.c:12079
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' referenced by TLS_GOTDESC"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана „%s“ инÑтрукција „%#lx“ на коју упућује „TLS_GOTDESC“"
-#: elf32-arm.c:12121 elf32-csky.c:4955 elf32-m68k.c:3733 elf32-metag.c:1912
+#: elf32-arm.c:12125 elf32-csky.c:4958 elf32-m68k.c:3735 elf32-metag.c:1912
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s relocation not permitted in shared object"
msgstr "%pB(%pA+%#<PRIx64>): „%s“ премештање није допуштено у дељеним објектима"
-#: elf32-arm.c:12335
+#: elf32-arm.c:12339
#, c-format
msgid "%pB(%pA+%#<PRIx64>): only ADD or SUB instructions are allowed for ALU group relocations"
msgstr "%pB(%pA+%#<PRIx64>): дозвољене Ñу Ñамо „ADD“ или „SUB“ инÑтрукције за премештања „ALU“ групе"
-#: elf32-arm.c:12376 elf32-arm.c:12468 elf32-arm.c:12556 elf32-arm.c:12646
+#: elf32-arm.c:12380 elf32-arm.c:12472 elf32-arm.c:12560 elf32-arm.c:12650
#, c-format
msgid "%pB(%pA+%#<PRIx64>): overflow whilst splitting %#<PRIx64> for group relocation %s"
msgstr "%pB(%pA+%#<PRIx64>): прекорачење за време дељења %#<PRIx64> за премештање групе „%s“"
-#: elf32-arm.c:12704 elf32-arm.c:12863
+#: elf32-arm.c:12708 elf32-arm.c:12867
msgid "local symbol index too big"
msgstr "Ð¸Ð½Ð´ÐµÐºÑ Ð»Ð¾ÐºÐ°Ð»Ð½Ð¾Ð³ Ñимбола је превелик"
-#: elf32-arm.c:12714 elf32-arm.c:12748
+#: elf32-arm.c:12718 elf32-arm.c:12752
msgid "no dynamic index information available"
msgstr "нема доÑтупних података динамичког индекÑа"
-#: elf32-arm.c:12756
+#: elf32-arm.c:12760
msgid "invalid dynamic index"
msgstr "неиÑправан динамички индекÑ"
-#: elf32-arm.c:12873
+#: elf32-arm.c:12877
msgid "dynamic index information not available"
msgstr "подаци динамичког индекÑа ниÑу доÑтупни"
-#: elf32-arm.c:13304 elf32-sh.c:3566
+#: elf32-arm.c:13308 elf32-sh.c:3568
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s relocation against SEC_MERGE section"
msgstr "%pB(%pA+%#<PRIx64>): „%s“ премештање наÑпрам „SEC_MERGE“ одељка"
-#: elf32-arm.c:13417 elf32-m68k.c:3966 elf32-xtensa.c:2758 elfnn-aarch64.c:7070
-#: elfnn-kvx.c:2568
+#: elf32-arm.c:13421 elf32-m68k.c:3968 elf32-xtensa.c:2760 elfnn-aarch64.c:7088
+#: elfnn-kvx.c:2569
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s used with TLS symbol %s"
msgstr "%pB(%pA+%#<PRIx64>): „%s“ је употребљено Ñа „TLS“ Ñимболом „%s“"
-#: elf32-arm.c:13419 elf32-m68k.c:3968 elf32-xtensa.c:2760 elfnn-aarch64.c:7072
-#: elfnn-kvx.c:2570
+#: elf32-arm.c:13423 elf32-m68k.c:3970 elf32-xtensa.c:2762 elfnn-aarch64.c:7090
+#: elfnn-kvx.c:2571
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s used with non-TLS symbol %s"
msgstr "%pB(%pA+%#<PRIx64>): „%s“ је употребљено Ñа „не-TLS“ Ñимболом „%s“"
-#: elf32-arm.c:13502 elf32-tic6x.c:2641 elfnn-aarch64.c:7407 elfnn-kvx.c:2797
+#: elf32-arm.c:13506 elf32-tic6x.c:2641 elfnn-aarch64.c:7425 elfnn-kvx.c:2798
msgid "out of range"
msgstr "изван опÑега"
-#: elf32-arm.c:13506 elf32-pru.c:936 elf32-tic6x.c:2645 elfnn-aarch64.c:7411
-#: elfnn-kvx.c:2801
+#: elf32-arm.c:13510 elf32-pru.c:936 elf32-tic6x.c:2645 elfnn-aarch64.c:7429
+#: elfnn-kvx.c:2802
msgid "unsupported relocation"
msgstr "неподржано премештање"
-#: elf32-arm.c:13514 elf32-pru.c:946 elf32-tic6x.c:2653 elfnn-aarch64.c:7419
-#: elfnn-kvx.c:2809
+#: elf32-arm.c:13518 elf32-pru.c:946 elf32-tic6x.c:2653 elfnn-aarch64.c:7437
+#: elfnn-kvx.c:2810
msgid "unknown error"
msgstr "непозната грешка"
-#: elf32-arm.c:13991
+#: elf32-arm.c:13995
#, c-format
msgid "warning: not setting interworking flag of %pB since it has already been specified as non-interworking"
msgstr "упозорење: ниÑам подеÑио заÑтавицу међудејÑтва за „%pB“ пошто је већ наведен као не-међудејÑтвено"
-#: elf32-arm.c:13995
+#: elf32-arm.c:13999
#, c-format
msgid "warning: clearing the interworking flag of %pB due to outside request"
msgstr "упозорење: уклањам заÑтавицу међудејÑтва за „%pB“ уÑлед захтева Ñпоља"
-#: elf32-arm.c:14040
+#: elf32-arm.c:14044
#, c-format
msgid "warning: clearing the interworking flag of %pB because non-interworking code in %pB has been linked with it"
msgstr "упозорење: чиÑтим заÑтавицу међудејÑтва за „%pB“ зато што је немеђудејÑтвени код у „%pB“ повезан Ñа њим"
-#: elf32-arm.c:14127
+#: elf32-arm.c:14131
#, c-format
msgid "%pB: unknown mandatory EABI object attribute %d"
msgstr "%pB: обавезан „%d“ атрибут „EABI“ објекта није познат"
-#: elf32-arm.c:14135
+#: elf32-arm.c:14139
#, c-format
msgid "warning: %pB: unknown EABI object attribute %d"
msgstr "упозорење: %pB: „%d“ атрибут „EABI“ објекта није познат"
-#: elf32-arm.c:14470
+#: elf32-arm.c:14474
#, c-format
msgid "error: %pB: unknown CPU architecture"
msgstr "грешка: %pB: непозната архитектура процеÑора"
-#: elf32-arm.c:14508
+#: elf32-arm.c:14512
#, c-format
msgid "error: conflicting CPU architectures %s vs %s in %pB"
msgstr "грешка: Ñукобљене архитектуре процеÑора „%s“ и „%s“ у „%pB“"
-#: elf32-arm.c:14605
+#: elf32-arm.c:14609
#, c-format
msgid "Error: %pB has both the current and legacy Tag_MPextension_use attributes"
msgstr "Грешка: „%pB“ поÑедује и тренутни и Ñтари „Tag_MPextension_use“ атрибут"
-#: elf32-arm.c:14642
+#: elf32-arm.c:14646
#, c-format
msgid "error: %pB uses VFP register arguments, %pB does not"
msgstr "грешка: „%pB“ кориÑти аргументе „VFP“ региÑтра, а „%pB“ не"
-#: elf32-arm.c:14812
+#: elf32-arm.c:14816
#, c-format
msgid "error: %pB: unable to merge virtualization attributes with %pB"
msgstr "грешка: %pB: не могу да Ñпојим атрибуте виртуелизације Ñа „%pB“"
-#: elf32-arm.c:14838
+#: elf32-arm.c:14842
#, c-format
msgid "error: %pB: conflicting architecture profiles %c/%c"
msgstr "грешка: %pB: У Ñукобу Ñу профили архитектуре „%c/%c“"
-#: elf32-arm.c:14977
+#: elf32-arm.c:14981
#, c-format
msgid "warning: %pB: conflicting platform configuration"
msgstr "упозорење: %pB: подешавање платформе је у Ñукобу"
-#: elf32-arm.c:14986
+#: elf32-arm.c:14990
#, c-format
msgid "error: %pB: conflicting use of R9"
msgstr "грешка: %pB: у Ñукобу је коришћење „R9“"
-#: elf32-arm.c:14998
+#: elf32-arm.c:15002
#, c-format
msgid "error: %pB: SB relative addressing conflicts with use of R9"
msgstr "грешка: %pB: релативно „SB“ адреÑирање је у Ñукобу Ñа коришћењем „R9“"
-#: elf32-arm.c:15011
+#: elf32-arm.c:15015
#, c-format
msgid "warning: %pB uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may fail"
msgstr "упозорење: „%pB“ кориÑти %u-бајтни „wchar_t“ онда ће излаз да кориÑти %u-бајтни „wchar_t“; коришћење „wchar_t“ вредноÑти кроз објекте можда неће уÑпети"
-#: elf32-arm.c:15042
+#: elf32-arm.c:15046
#, c-format
msgid "warning: %pB uses %s enums yet the output is to use %s enums; use of enum values across objects may fail"
msgstr "упозорење: „%pB“ кориÑти %s набрајања онда ће излаз да кориÑти %s набрајања; коришћење вредноÑти набрајања кроз објекте можда неће уÑпети"
-#: elf32-arm.c:15054
+#: elf32-arm.c:15058
#, c-format
msgid "error: %pB uses iWMMXt register arguments, %pB does not"
msgstr "грешка: „%pB“ кориÑти аргументе „iWMMXt“ региÑтра, а „%pB“ не"
-#: elf32-arm.c:15071
+#: elf32-arm.c:15075
#, c-format
msgid "error: fp16 format mismatch between %pB and %pB"
msgstr "грешка: „fp16“ Ð·Ð°Ð¿Ð¸Ñ Ð½Ð¸Ñ˜Ðµ иÑти за „%pB“ и „%pB“"
-#: elf32-arm.c:15107
+#: elf32-arm.c:15111
#, c-format
msgid "%pB has both the current and legacy Tag_MPextension_use attributes"
msgstr "„%pB“ поÑедује и тренутни и Ñтари „Tag_MPextension_use“ атрибут"
-#: elf32-arm.c:15203
+#: elf32-arm.c:15207
#, c-format
msgid " [interworking enabled]"
msgstr " [међудејÑтво је укључено]"
-#: elf32-arm.c:15211
+#: elf32-arm.c:15215
#, c-format
msgid " [VFP float format]"
msgstr " [„VFP“ Ð·Ð°Ð¿Ð¸Ñ Ð´ÐµÑ†Ð¸Ð¼Ð°Ð»Ð½Ð¾Ð³ броја]"
-#: elf32-arm.c:15213
+#: elf32-arm.c:15217
#, c-format
msgid " [FPA float format]"
msgstr " [„FPA“ Ð·Ð°Ð¿Ð¸Ñ Ð´ÐµÑ†Ð¸Ð¼Ð°Ð»Ð½Ð¾Ð³ броја]"
-#: elf32-arm.c:15216
+#: elf32-arm.c:15220
#, c-format
msgid " [floats passed in float registers]"
msgstr " [децималне вредноÑти Ñу проÑлеђене у региÑтре децималних вредноÑти]"
-#: elf32-arm.c:15219 elf32-arm.c:15304
+#: elf32-arm.c:15223 elf32-arm.c:15308
#, c-format
msgid " [position independent]"
msgstr " [незавиÑтан од положаја]"
-#: elf32-arm.c:15222
+#: elf32-arm.c:15226
#, c-format
msgid " [new ABI]"
msgstr " [нови „ABI“]"
-#: elf32-arm.c:15225
+#: elf32-arm.c:15229
#, c-format
msgid " [old ABI]"
msgstr " [Ñтари „ABI“]"
-#: elf32-arm.c:15228
+#: elf32-arm.c:15232
#, c-format
msgid " [software FP]"
msgstr " [логички покретни зарез]"
-#: elf32-arm.c:15236
+#: elf32-arm.c:15240
#, c-format
msgid " [Version1 EABI]"
msgstr " [Издање1 „EABI“]"
-#: elf32-arm.c:15239 elf32-arm.c:15250
+#: elf32-arm.c:15243 elf32-arm.c:15254
#, c-format
msgid " [sorted symbol table]"
msgstr " [табела Ñређених Ñимбола]"
-#: elf32-arm.c:15241 elf32-arm.c:15252
+#: elf32-arm.c:15245 elf32-arm.c:15256
#, c-format
msgid " [unsorted symbol table]"
msgstr " [табела неÑређених Ñимбола]"
-#: elf32-arm.c:15247
+#: elf32-arm.c:15251
#, c-format
msgid " [Version2 EABI]"
msgstr " [Издање2 „EABI“]"
-#: elf32-arm.c:15255
+#: elf32-arm.c:15259
#, c-format
msgid " [dynamic symbols use segment index]"
msgstr " [динамички Ñимболи кориÑте Ð¸Ð½Ð´ÐµÐºÑ Ñегмента]"
-#: elf32-arm.c:15258
+#: elf32-arm.c:15262
#, c-format
msgid " [mapping symbols precede others]"
msgstr " [мапирање Ñимбола претходи другима]"
-#: elf32-arm.c:15265
+#: elf32-arm.c:15269
#, c-format
msgid " [Version3 EABI]"
msgstr " [Издање3 „EABI“]"
-#: elf32-arm.c:15269
+#: elf32-arm.c:15273
#, c-format
msgid " [Version4 EABI]"
msgstr " [Издање4 „EABI“]"
-#: elf32-arm.c:15273
+#: elf32-arm.c:15277
#, c-format
msgid " [Version5 EABI]"
msgstr " [Издање5 „EABI“]"
-#: elf32-arm.c:15276
+#: elf32-arm.c:15280
#, c-format
msgid " [soft-float ABI]"
msgstr " [„ABI“ ÑофтверÑког покретног зареза]"
-#: elf32-arm.c:15279
+#: elf32-arm.c:15283
#, c-format
msgid " [hard-float ABI]"
msgstr " [„ABI“ хардверÑког покретног зареза]"
-#: elf32-arm.c:15285
+#: elf32-arm.c:15289
#, c-format
msgid " [BE8]"
msgstr " [BE8]"
-#: elf32-arm.c:15288
+#: elf32-arm.c:15292
#, c-format
msgid " [LE8]"
msgstr " [LE8]"
-#: elf32-arm.c:15294
+#: elf32-arm.c:15298
#, c-format
msgid " <EABI version unrecognised>"
msgstr " <Ðепознато „EABI“ издање>"
-#: elf32-arm.c:15301
+#: elf32-arm.c:15305
#, c-format
msgid " [relocatable executable]"
msgstr " [премеÑтива извршна]"
-#: elf32-arm.c:15307
+#: elf32-arm.c:15311
#, c-format
msgid " [FDPIC ABI supplement]"
msgstr " [„FDPIC ABI“ додатак]"
-#: elf32-arm.c:15312 elfnn-aarch64.c:7576
+#: elf32-arm.c:15316 elfnn-aarch64.c:7594
#, c-format
msgid " <Unrecognised flag bits set>"
msgstr " <Ðепознат Ñкуп битова заÑтавице>"
-#: elf32-arm.c:15420 elf32-arm.c:15554 elf32-i386.c:1545 elf32-s390.c:921
-#: elf32-tic6x.c:2716 elf32-tilepro.c:1433 elf32-xtensa.c:1088 elf64-s390.c:843
-#: elf64-x86-64.c:2173 elfxx-sparc.c:1385 elfxx-tilegx.c:1661 elfxx-x86.c:971
-#: elfnn-aarch64.c:7847 elfnn-kvx.c:3247 elfnn-loongarch.c:952
-#: elfnn-riscv.c:766
+#: elf32-arm.c:15424 elf32-arm.c:15558 elf32-i386.c:1576 elf32-s390.c:921
+#: elf32-tic6x.c:2716 elf32-tilepro.c:1433 elf32-xtensa.c:1088 elf64-s390.c:924
+#: elf64-x86-64.c:2550 elfxx-sparc.c:1385 elfxx-tilegx.c:1661 elfxx-x86.c:962
+#: elfnn-aarch64.c:7865 elfnn-kvx.c:3248 elfnn-loongarch.c:961
+#: elfnn-riscv.c:959
#, c-format
msgid "%pB: bad symbol index: %d"
msgstr "%pB: лош Ð¸Ð½Ð´ÐµÐºÑ Ñимбола: %d"
-#: elf32-arm.c:15810
+#: elf32-arm.c:15814
#, c-format
msgid "FDPIC does not yet support %s relocation to become dynamic for executable"
msgstr "„FDPIC“ још увек не подржава „%s“ премештање да би поÑтао динамички за извршне"
-#: elf32-arm.c:17072
+#: elf32-arm.c:17077
#, c-format
msgid "errors encountered processing file %pB"
msgstr "наиђох на грешке током обраде датотеке „%pB“"
-#: elf32-arm.c:17442 elflink.c:13533 elflink.c:13580
+#: elf32-arm.c:17448 elflink.c:13605 elflink.c:13652
#, c-format
msgid "could not find section %s"
msgstr "не могу да нађем одељак „%s“"
-#: elf32-arm.c:18397
+#: elf32-arm.c:18406
#, c-format
msgid "%pB: Number of symbols in input file has increased from %lu to %u\n"
msgstr "%pB: Број Ñимбола у улазној датотеци Ñе повећао Ñа %lu на %u\n"
-#: elf32-arm.c:18655
+#: elf32-arm.c:18664
#, c-format
msgid "%pB: error: Cortex-A8 erratum stub is allocated in unsafe location"
msgstr "%pB: грешка: окрајак грешке КортекÑа Ð8 је додељен небезбедној локацији"
#. There's not much we can do apart from complain if this
#. happens.
-#: elf32-arm.c:18682
+#: elf32-arm.c:18691
#, c-format
msgid "%pB: error: Cortex-A8 erratum stub out of range (input file too large)"
msgstr "%pB: грешка: окрајак грешке КортекÑа Ð8 је ван опÑега (улазна датотека је превелика)"
-#: elf32-arm.c:19509 elf32-arm.c:19531
+#: elf32-arm.c:19518 elf32-arm.c:19540
#, c-format
msgid "%pB: error: VFP11 veneer out of range"
msgstr "%pB: грешка: „VFP11“ превлака је ван опÑега"
-#: elf32-arm.c:19582
+#: elf32-arm.c:19591
#, c-format
msgid "%pB(%#<PRIx64>): error: cannot create STM32L4XX veneer; jump out of range by %<PRId64> bytes; cannot encode branch instruction"
msgstr "%pB(%#<PRIx64>): грешка: не могу да Ñтворим „STM32L4XX“ превлаку; иÑкочих из опÑега за %<PRId64> бајта; не могу да декодирам инÑтрукцију гране"
-#: elf32-arm.c:19621
+#: elf32-arm.c:19630
#, c-format
msgid "%pB: error: cannot create STM32L4XX veneer"
msgstr "%pB: грешка: не могу да Ñтворим „STM32L4XX“ превлаку"
-#: elf32-arm.c:20704
+#: elf32-arm.c:20713
#, c-format
msgid "error: %pB is already in final BE8 format"
msgstr "грешка: „%pB“ је већ у завршном запиÑу „BE8“"
-#: elf32-arm.c:20781
+#: elf32-arm.c:20790
#, c-format
msgid "error: source object %pB has EABI version %d, but target %pB has EABI version %d"
msgstr "грешка: изворни објекат „%pB“ Ñадржи „EABI“ издање %d, али циљни „%pB“ има „EABI“ издање %d"
-#: elf32-arm.c:20796
+#: elf32-arm.c:20805
#, c-format
msgid "error: %pB is compiled for APCS-%d, whereas target %pB uses APCS-%d"
msgstr "грешка: „%pB“ је преведен за „APCS-%d“, док циљни „%pB“ кориÑти „APCS-%d“"
-#: elf32-arm.c:20806
+#: elf32-arm.c:20815
#, c-format
msgid "error: %pB passes floats in float registers, whereas %pB passes them in integer registers"
msgstr "грешка: „%pB“ проÑлеђује децималне вредноÑти у региÑтре децималних, док их „%pB“ проÑлеђује у региÑтре целих вредноÑти"
-#: elf32-arm.c:20810
+#: elf32-arm.c:20819
#, c-format
msgid "error: %pB passes floats in integer registers, whereas %pB passes them in float registers"
msgstr "грешка: „%pB“ проÑлеђује децималне вредноÑти у региÑтре целих, док их „%pB“ проÑлеђује у региÑтре децималних вредноÑти"
-#: elf32-arm.c:20820 elf32-arm.c:20824
+#: elf32-arm.c:20829 elf32-arm.c:20833
#, c-format
msgid "error: %pB uses %s instructions, whereas %pB does not"
msgstr "грешка: „%pB“ кориÑти „%s“ инÑтрукције, али „%pB“ не"
-#: elf32-arm.c:20843
+#: elf32-arm.c:20852
#, c-format
msgid "error: %pB uses software FP, whereas %pB uses hardware FP"
msgstr "грешка: „%pB“ кориÑти ÑофтверÑки покретни зарез, док „%pB“ кориÑти хардверÑки"
-#: elf32-arm.c:20847
+#: elf32-arm.c:20856
#, c-format
msgid "error: %pB uses hardware FP, whereas %pB uses software FP"
msgstr "грешка: „%pB“ кориÑти хардверÑки покретни зарез, док „%pB“ кориÑти ÑофтверÑки"
-#: elf32-arm.c:20861
+#: elf32-arm.c:20870
#, c-format
msgid "warning: %pB supports interworking, whereas %pB does not"
msgstr "упозорење: „%pB“ подржава међудејÑтво, док га „%pB“ не подржава"
-#: elf32-arm.c:20867
+#: elf32-arm.c:20876
#, c-format
msgid "warning: %pB does not support interworking, whereas %pB does"
msgstr "упозорење: „%pB“ не подржава међудејÑтво, док га „%pB“ подржава"
@@ -2226,7 +2251,7 @@ msgstr "%X%H: %s наÑпрам „%s“: грешка: адреÑа мете п
msgid "%X%H: %s against `%s': internal error: unexpected relocation result %d\n"
msgstr "%X%H: %s наÑпрам „%s“: унутрашња грешка: неочекивани резултат премештања %d\n"
-#: elf32-avr.c:3335 elfnn-aarch64.c:3219
+#: elf32-avr.c:3335 elfnn-aarch64.c:3231
#, c-format
msgid "cannot create stub entry %s"
msgstr "не могу да Ñтворим ÑƒÐ½Ð¾Ñ Ð¾ÐºÑ€Ð°Ñ˜ÐºÐ° „%s“"
@@ -2240,8 +2265,8 @@ msgstr "премештање треба бити паран број"
msgid "%pB(%pA+%#<PRIx64>): unresolvable relocation against symbol `%s'"
msgstr "%pB(%pA+%#<PRIx64>): нерешиво премештање наÑпрам Ñимбола „%s“"
-#: elf32-bfin.c:1621 elf32-i386.c:3543 elf32-m68k.c:4006 elf32-s390.c:3130
-#: elf64-s390.c:3205 elf64-x86-64.c:4619
+#: elf32-bfin.c:1621 elf32-i386.c:3585 elf32-m68k.c:4008 elf32-s390.c:3132
+#: elf64-s390.c:3468 elf64-x86-64.c:5080
#, c-format
msgid "%pB(%pA+%#<PRIx64>): reloc against `%s': error %d"
msgstr "%pB(%pA+%#<PRIx64>): премештање наÑпрам „%s“: грешка %d"
@@ -2263,7 +2288,7 @@ msgstr "„R_BFIN_FUNCDESC“ Ñтвара упуту динамичког ÑиÐ
msgid "cannot emit fixups in read-only section"
msgstr "не могу да пошаљем иÑправке у одељку Ñамо за читање"
-#: elf32-bfin.c:2831 elf32-bfin.c:2959 elf32-lm32.c:1006 elf32-sh.c:4384
+#: elf32-bfin.c:2831 elf32-bfin.c:2959 elf32-lm32.c:1006 elf32-sh.c:4386
msgid "cannot emit dynamic relocations in read-only section"
msgstr "не могу да пошаљем динамичка премештања у одељку Ñамо за читање"
@@ -2282,40 +2307,40 @@ msgstr "упозорење: премештање упућује на другаÑ
#: elf32-bfin.c:3140 elf32-cris.c:2041 elf32-epiphany.c:574 elf32-fr30.c:602
#: elf32-frv.c:4056 elf32-ft32.c:500 elf32-ip2k.c:1489 elf32-iq2000.c:699
#: elf32-m32c.c:632 elf32-mep.c:530 elf32-metag.c:1991 elf32-moxie.c:296
-#: elf32-msp430.c:1514 elf32-mt.c:406 elf32-or1k.c:1903 elf32-tilepro.c:3377
-#: elf32-v850.c:2305 elf32-visium.c:688 elf32-xstormy16.c:938 elf64-bpf.c:348
-#: elf64-mmix.c:1545 elfxx-tilegx.c:3750
+#: elf32-msp430.c:1514 elf32-mt.c:406 elf32-or1k.c:1903 elf32-tilepro.c:3379
+#: elf32-v850.c:2305 elf32-visium.c:688 elf32-xstormy16.c:939 elf64-bpf.c:348
+#: elf64-mmix.c:1545 elfxx-tilegx.c:3752
msgid "internal error: dangerous relocation"
msgstr "унутрашња грешка: опаÑно премештање"
#. Ignore init flag - it may not be set, despite the flags field containing valid data.
-#: elf32-bfin.c:4728 elf32-cris.c:3860 elf32-m68hc1x.c:1414 elf32-m68k.c:1264
-#: elf32-score.c:3984 elf32-score7.c:3791 elf32-vax.c:534 elf32-xgate.c:494
-#: elfxx-mips.c:16366
+#: elf32-bfin.c:4734 elf32-cris.c:3862 elf32-m68hc1x.c:1415 elf32-m68k.c:1264
+#: elf32-score.c:3986 elf32-score7.c:3793 elf32-vax.c:534 elf32-xgate.c:494
+#: elfxx-mips.c:16452
#, c-format
msgid "private flags = %lx:"
msgstr "приватне заÑтавице = %lx:"
-#: elf32-bfin.c:4779 elf32-frv.c:6585
+#: elf32-bfin.c:4785 elf32-frv.c:6591
#, c-format
msgid "%pB: cannot link non-fdpic object file into fdpic executable"
msgstr "%pB: не могу да повежем датотеку не-„fdpic“ објекта у „fdpic“ извршну"
-#: elf32-bfin.c:4783 elf32-frv.c:6589
+#: elf32-bfin.c:4789 elf32-frv.c:6595
#, c-format
msgid "%pB: cannot link fdpic object file into non-fdpic executable"
msgstr "%pB: не могу да повежем датотеку „fdpic“ објекта у не-„fdpic“ извршну"
-#: elf32-bfin.c:4919
+#: elf32-bfin.c:4925
#, c-format
msgid "*** check this relocation %s"
msgstr "*** проверава ово премештање „%s“"
-#: elf32-bfin.c:5034
+#: elf32-bfin.c:5040
msgid "the bfin target does not currently support the generation of copy relocations"
msgstr "„bfin“ циљ тренутно не подржава Ñтварање премештања умножавања"
-#: elf32-bfin.c:5329 elf32-cr16.c:2720 elf32-m68k.c:4420
+#: elf32-bfin.c:5335 elf32-cr16.c:2723 elf32-m68k.c:4423
msgid "unsupported relocation type"
msgstr "неподржана врÑта премештања"
@@ -2402,96 +2427,96 @@ msgstr ""
msgid "%pB, section %pA: relocation %s should not be used in a shared object; recompile with -fPIC"
msgstr "„%pB“, одељак „%pA“: премештање „%s“ не треба да Ñе кориÑти у дељеном објекту; поново преведите Ñа „-fPIC“"
-#: elf32-cris.c:3699
+#: elf32-cris.c:3701
#, c-format
msgid "%pB, section `%pA', to symbol `%s': relocation %s should not be used in a shared object; recompile with -fPIC"
msgstr "„%pB“, одељак „%pA“, ка Ñимболу „%s“: премештање „%s“ не треба да Ñе кориÑти у дељеном објекту; поново преведите Ñа „-fPIC“"
-#: elf32-cris.c:3811
+#: elf32-cris.c:3813
msgid "unexpected machine number"
msgstr "неочекивани број машине"
-#: elf32-cris.c:3863
+#: elf32-cris.c:3865
#, c-format
msgid " [symbols have a _ prefix]"
msgstr " [Ñимболи Ñадрже префикÑе „ _ “]"
-#: elf32-cris.c:3866
+#: elf32-cris.c:3868
#, c-format
msgid " [v10 and v32]"
msgstr " [v10 и v32]"
-#: elf32-cris.c:3869
+#: elf32-cris.c:3871
#, c-format
msgid " [v32]"
msgstr " [v32]"
-#: elf32-cris.c:3913
+#: elf32-cris.c:3915
#, c-format
msgid "%pB: uses _-prefixed symbols, but writing file with non-prefixed symbols"
msgstr "%pB: кориÑти Ñимболе Ñа префикÑом „_“, али запиÑује датотеку Ñа Ñимболима без префикÑа"
-#: elf32-cris.c:3914
+#: elf32-cris.c:3916
#, c-format
msgid "%pB: uses non-prefixed symbols, but writing file with _-prefixed symbols"
msgstr "%pB: кориÑти Ñимболе без префикÑа, али запиÑује датотеку Ñа Ñимболима Ñа префикÑом „_“"
-#: elf32-cris.c:3933
+#: elf32-cris.c:3935
#, c-format
msgid "%pB contains CRIS v32 code, incompatible with previous objects"
msgstr "„%pB„ Ñадржи „CRIS v32“ код који није ÑаглаÑан Ñа претходним објектима"
-#: elf32-cris.c:3935
+#: elf32-cris.c:3937
#, c-format
msgid "%pB contains non-CRIS-v32 code, incompatible with previous objects"
msgstr "„%pB„ Ñадржи не-„CRIS-v32“ код који није ÑаглаÑан Ñа претходним објектима"
-#: elf32-csky.c:2016
+#: elf32-csky.c:2017
msgid "GOT table size out of range"
msgstr "величина „GOT“ табеле је ван опÑега"
-#: elf32-csky.c:2826
+#: elf32-csky.c:2828
#, c-format
msgid "warning: unrecognized arch eflag '%#lx'"
msgstr "упозорење: непрепозната „e“-заÑтавица архитектуре „%#lx“"
-#: elf32-csky.c:2849
+#: elf32-csky.c:2851
#, c-format
msgid "warning: unrecognised arch name '%#x'"
msgstr "упозорење: непознат назив архитектуре „%#x“"
-#: elf32-csky.c:2914 elf32-csky.c:3074
+#: elf32-csky.c:2916 elf32-csky.c:3076
#, c-format
msgid "%pB: machine flag conflict with target"
msgstr "%pB: заÑтавица машине је у Ñукобу Ñа циљем"
-#: elf32-csky.c:2927
+#: elf32-csky.c:2929
#, c-format
msgid "warning: file %pB's arch flag %s conflict with target %s,set target arch flag to %s"
msgstr "упозорење: заÑтавица архитектуре “%pB“-а датотеке „%s“ је у Ñукобу Ñа циљним „%s“, поÑтавите заÑтавицу архитектуре мете на „%s“"
-#: elf32-csky.c:2956
+#: elf32-csky.c:2958
#, c-format
msgid "Error: %pB and %pB has different VDSP version"
msgstr "Грешка: „%pB“ и „%pB“ имају различита „VDSP“ издања"
-#: elf32-csky.c:2973
+#: elf32-csky.c:2975
#, c-format
msgid "Error: %pB and %pB has different DSP version"
msgstr "Грешка: „%pB“ и „%pB“ имају различита „DSP“ издања"
-#: elf32-csky.c:2991
+#: elf32-csky.c:2993
#, c-format
msgid "Error: %pB and %pB has different FPU ABI"
msgstr "Грешка: „%pB“ и „%pB“ имају различите „FPU ABI“"
-#: elf32-csky.c:3088
+#: elf32-csky.c:3090
#, c-format
msgid "warning: file %pB's arch flag %s conflicts with target ck%s, using %s"
msgstr "упозорење: заÑтавица архитектуре “%pB“-а датотеке „%s“ је у Ñукобу Ñа циљним „ck%s“, кориÑтим „%s“"
#. The r_type is error, not support it.
-#: elf32-csky.c:4327 elf32-i386.c:344
+#: elf32-csky.c:4330 elf32-i386.c:344
#, c-format
msgid "%pB: unsupported relocation type: %#x"
msgstr "%pB: неподржана врÑта премештања: %#x"
@@ -2594,17 +2619,17 @@ msgstr "%H: премештање наÑпрам „%s“ Ñтвара упуту
msgid "%H: reloc against `%s': %s\n"
msgstr "%H: премештање наÑпрам „%s“: %s\n"
-#: elf32-frv.c:6496
+#: elf32-frv.c:6502
#, c-format
msgid "%pB: compiled with %s and linked with modules that use non-pic relocations"
msgstr "%pB: преведено Ñа „%s“ и повезано Ñа модулима који кориÑте не-„pic“ премештања"
-#: elf32-frv.c:6550 elf32-iq2000.c:830 elf32-m32c.c:876
+#: elf32-frv.c:6556 elf32-iq2000.c:830 elf32-m32c.c:877
#, c-format
msgid "%pB: compiled with %s and linked with modules compiled with %s"
msgstr "%pB: преведено Ñа „%s“ и повезано Ñа модулима који Ñу преведени Ñа „%s“"
-#: elf32-frv.c:6563
+#: elf32-frv.c:6569
#, c-format
msgid "%pB: uses different unknown e_flags (%#x) fields than previous modules (%#x)"
msgstr "%pB: кориÑти другачија непозната поља „e_flags“ (%#x) него претходни модули (%#x)"
@@ -2614,7 +2639,7 @@ msgstr "%pB: кориÑти другачија непозната поља „e_
msgid "%pB: relocations in generic ELF (EM: %d)"
msgstr "%pB: премештања у општем „ELF“-у (EM: %d)"
-#: elf32-hppa.c:862 elf32-hppa.c:3402
+#: elf32-hppa.c:862 elf32-hppa.c:3403
#, c-format
msgid "%pB(%pA+%#<PRIx64>): cannot reach %s, recompile with -ffunction-sections"
msgstr "%pB(%pA+%#<PRIx64>): не могу да доÑтигнем „%s“, поново преведите Ñа „-ffunction-sections“"
@@ -2629,108 +2654,113 @@ msgstr "%pB: премештање „%s“ Ñе не може кориÑтити
msgid "%pB: duplicate export stub %s"
msgstr "%pB: удвоÑтручени окрајак извоза „%s“"
-#: elf32-hppa.c:3235
+#: elf32-hppa.c:3236
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s fixup for insn %#x is not supported in a non-shared link"
msgstr "%pB(%pA+%#<PRIx64>): иÑправка „%s“ за „insn %#x“ није подржана у не-дељеној вези"
-#: elf32-hppa.c:3455
+#: elf32-hppa.c:3456
#, c-format
msgid "%pB(%pA+%#<PRIx64>): displacement %#x for insn %#x is not a multiple of 8 (gp %#x)"
msgstr "%pB(%pA+%#<PRIx64>): премештај %#x за “insn %#x“ није производ броја 8 (gp %#x)"
-#: elf32-hppa.c:3474
+#: elf32-hppa.c:3475
#, c-format
msgid "%pB(%pA+%#<PRIx64>): displacement %#x for insn %#x is not a multiple of 4 (gp %#x)"
msgstr "%pB(%pA+%#<PRIx64>): премештај %#x за „insn %#x“ није производ броја 4 (gp %#x)"
-#: elf32-hppa.c:4089
+#: elf32-hppa.c:4090
#, c-format
msgid "%s has both normal and TLS relocs"
msgstr "„%s“ има и нормално и „TLS“ премештање"
-#: elf32-hppa.c:4107
+#: elf32-hppa.c:4108
#, c-format
msgid "%pB:%s has both normal and TLS relocs"
msgstr "%pB: „%s“ има и нормално и „TLS“ премештање"
-#: elf32-hppa.c:4166
+#: elf32-hppa.c:4167
#, c-format
msgid "%pB(%pA+%#<PRIx64>): cannot handle %s for %s"
msgstr "%pB(%pA+%#<PRIx64>): не могу да радим Ñа „%s“ за „%s“"
-#: elf32-hppa.c:4470
+#: elf32-hppa.c:4471
msgid ".got section not immediately after .plt section"
msgstr "одељак „.got“ није одмах након одељка „.plt“"
-#: elf32-i386.c:1296
+#: elf32-i386.c:1300
#, c-format
msgid "%pB: direct GOT relocation R_386_GOT32X against `%s' without base register can not be used when making a shared object"
msgstr "%pB: директно „GOT“ премештање „R_386_GOT32X“ наÑпрам „%s“ без региÑтра оÑнове Ñе не може кориÑтити када Ñе Ñтвара дељени објекат"
-#: elf32-i386.c:1729 elf32-s390.c:1149 elf32-sh.c:5498 elf32-tilepro.c:1546
-#: elf32-xtensa.c:1261 elf64-s390.c:1081 elfxx-sparc.c:1555 elfxx-tilegx.c:1766
-#: elfnn-loongarch.c:741 elfnn-riscv.c:673
+#: elf32-i386.c:1586
+#, c-format
+msgid "%pB: bad reloc offset (%#<PRIx32> > %#<PRIx32>) for section `%pA'"
+msgstr "%pB: лош померај премештања (%#<PRIx32> >= %#<PRIx32>) за одељак „%pA“"
+
+#: elf32-i386.c:1771 elf32-s390.c:1149 elf32-sh.c:5500 elf32-tilepro.c:1546
+#: elf32-xtensa.c:1261 elf64-s390.c:1162 elfxx-sparc.c:1565 elfxx-tilegx.c:1766
+#: elfnn-loongarch.c:750 elfnn-riscv.c:866
#, c-format
msgid "%pB: `%s' accessed both as normal and thread local symbol"
msgstr "%pB: „%s“ Ñе приÑтупило и као нормалном и као Ñимболу локалне нити"
-#: elf32-i386.c:1801
+#: elf32-i386.c:1843
#, c-format
msgid "%pB: unsupported non-PIC call to IFUNC `%s'"
msgstr "%pB: неподржани не-„PIC“ позив за „IFUNC“ „%s“"
-#: elf32-i386.c:1856 elf64-x86-64.c:2567
+#: elf32-i386.c:1898 elf64-x86-64.c:2964
#, c-format
msgid "%pB: non-canonical reference to canonical protected function `%s' in %pB"
msgstr "%pB: не-канонÑка упута ка канонÑкој заштићеној функцији „%s“ %pB"
-#: elf32-i386.c:2419 elf64-x86-64.c:3050 elfnn-riscv.c:2544
+#: elf32-i386.c:2461 elf64-x86-64.c:3446 elfnn-riscv.c:2742
#, c-format
msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported"
msgstr "%pB: премештање „%s“ наÑпрам „STT_GNU_IFUNC“ Ñимбола „%s“ није подржано"
-#: elf32-i386.c:2452 elf32-i386.c:3752 elf32-i386.c:3900 elf64-x86-64.c:3107
-#: elf64-x86-64.c:4790 elf64-x86-64.c:4958 elfnn-riscv.c:2406
-#: elfnn-riscv.c:3318 elfnn-riscv.c:3392
+#: elf32-i386.c:2494 elf32-i386.c:3794 elf32-i386.c:3942 elf64-x86-64.c:3503
+#: elf64-x86-64.c:5254 elf64-x86-64.c:5425 elfnn-riscv.c:2604
+#: elfnn-riscv.c:3511 elfnn-riscv.c:3585
#, c-format
msgid "Local IFUNC function `%s' in %pB\n"
msgstr "Локална „IFUNC“ функција „%s“ у „%pB“\n"
-#: elf32-i386.c:2630
+#: elf32-i386.c:2672
#, c-format
msgid "%pB: direct GOT relocation %s against `%s' without base register can not be used when making a shared object"
msgstr "%pB: директно „GOT“ премештање „%s“ наÑпрам „%s“ без региÑтра оÑнове Ñе не може кориÑтити када Ñе Ñтвара дељени објекат"
-#: elf32-i386.c:2665 elf64-x86-64.c:3324
+#: elf32-i386.c:2707 elf64-x86-64.c:3726
msgid "hidden symbol"
msgstr "Ñкривени Ñимбол"
-#: elf32-i386.c:2668 elf64-x86-64.c:3327
+#: elf32-i386.c:2710 elf64-x86-64.c:3729
msgid "internal symbol"
msgstr "унутрашњи Ñимбол"
-#: elf32-i386.c:2671 elf64-x86-64.c:3330
+#: elf32-i386.c:2713 elf64-x86-64.c:3732
msgid "protected symbol"
msgstr "заштићени Ñимбол"
-#: elf32-i386.c:2674 elf64-x86-64.c:3333
+#: elf32-i386.c:2716 elf64-x86-64.c:3735
msgid "symbol"
msgstr "Ñимбол"
-#: elf32-i386.c:2680
+#: elf32-i386.c:2722
#, c-format
msgid "%pB: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object"
msgstr "%pB: премештање „R_386_GOTOFF“ наÑпрам недефиниÑаног %s „%s“ Ñе не може кориÑтити када Ñе Ñтвара дељени објекат"
-#: elf32-i386.c:2693
+#: elf32-i386.c:2735
#, c-format
msgid "%pB: relocation R_386_GOTOFF against protected %s `%s' can not be used when making a shared object"
msgstr "%pB: премештање „R_386_GOTOFF“ наÑпрам заштићеног %s „%s“ Ñе не може кориÑтити када Ñе Ñтвара дељени објекат"
-#: elf32-i386.c:4103 elf64-x86-64.c:5169
-msgid "%F%P: discarded output section: `%pA'\n"
-msgstr "%F%P: одбачени одељак излаза: „%pA“\n"
+#: elf32-i386.c:4145 elf64-x86-64.c:5645
+msgid "%P: discarded output section: `%pA'\n"
+msgstr "%P: одбачени одељак излаза: „%pA“\n"
#: elf32-ip2k.c:855 elf32-ip2k.c:861 elf32-ip2k.c:928 elf32-ip2k.c:934
msgid "ip2k relaxer: switch table without complete matching relocation information."
@@ -2767,122 +2797,122 @@ msgstr "унутрашња грешка: Ñабирак треба да буде
msgid "SDA relocation when _SDA_BASE_ not defined"
msgstr "„SDA“ премештање када „_SDA_BASE_“ није дефиниÑано"
-#: elf32-m32r.c:2776 elf32-microblaze.c:1147 elf32-microblaze.c:1195
+#: elf32-m32r.c:2778 elf32-microblaze.c:1147 elf32-microblaze.c:1195
#, c-format
msgid "%pB: the target (%s) of an %s relocation is in the wrong section (%pA)"
msgstr "%pB: мета (%s) премештања „%s“ је у погрешном одељку (%pA)"
-#: elf32-m32r.c:3277
+#: elf32-m32r.c:3279
#, c-format
msgid "%pB: instruction set mismatch with previous modules"
msgstr "%pB: Ñкуп инÑтрукција Ñе разликује од претходних модула"
-#: elf32-m32r.c:3298 elf32-nds32.c:6899
+#: elf32-m32r.c:3300 elf32-nds32.c:6906
#, c-format
msgid "private flags = %lx"
msgstr "приватне заÑтавице = %lx"
-#: elf32-m32r.c:3303
+#: elf32-m32r.c:3305
#, c-format
msgid ": m32r instructions"
msgstr ": инÑтрукције „m32r“"
-#: elf32-m32r.c:3304
+#: elf32-m32r.c:3306
#, c-format
msgid ": m32rx instructions"
msgstr ": инÑтрукције „m32rx“"
-#: elf32-m32r.c:3305
+#: elf32-m32r.c:3307
#, c-format
msgid ": m32r2 instructions"
msgstr ": инÑтрукције „m32r2“"
-#: elf32-m68hc1x.c:1134
+#: elf32-m68hc1x.c:1135
#, c-format
msgid "reference to the far symbol `%s' using a wrong relocation may result in incorrect execution"
msgstr "упућивање на далеки Ñимбол „%s“ употребом погрешног премештања може довеÑти до нетачног извршавања"
-#: elf32-m68hc1x.c:1165
+#: elf32-m68hc1x.c:1166
#, c-format
msgid "XGATE address (%lx) is not within shared RAM(0xE000-0xFFFF), therefore you must manually offset the address, and possibly manage the page, in your code."
msgstr "ÐдреÑа „XGATE“ (%lx) није унутар дељене меморије (0xE000-0xFFFF), Ñтога морате ручно да померите адреÑу, и по могућÑтву да радите Ñа Ñтраницом у вашем коду."
-#: elf32-m68hc1x.c:1181
+#: elf32-m68hc1x.c:1182
#, c-format
msgid "banked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)"
msgstr "групиÑана адреÑа [%lx:%04lx] (%lx) није у иÑтој групи као тренутна групиÑана адреÑа [%lx:%04lx] (%lx)"
-#: elf32-m68hc1x.c:1196
+#: elf32-m68hc1x.c:1197
#, c-format
msgid "reference to a banked address [%lx:%04lx] in the normal address space at %04lx"
msgstr "упута на групиÑану адреÑу [%lx:%04lx] у обичном проÑтору адреÑе на %04lx"
-#: elf32-m68hc1x.c:1232
+#: elf32-m68hc1x.c:1233
#, c-format
msgid "S12 address (%lx) is not within shared RAM(0x2000-0x4000), therefore you must manually offset the address in your code"
msgstr "ÐдреÑа „S12“ (%lx) није унутар дељене меморије (0x2000-0x4000), Ñтога морате ручно да померите адреÑу у вашем коду"
-#: elf32-m68hc1x.c:1356
+#: elf32-m68hc1x.c:1357
#, c-format
msgid "%pB: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers"
msgstr "%pB: Ñвезујуће датотеке Ñу преведене за целе бројеве од 16 бита (-mshort) а друге за целе бројеве од 32 бита"
-#: elf32-m68hc1x.c:1363
+#: elf32-m68hc1x.c:1364
#, c-format
msgid "%pB: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double"
msgstr "%pB: Ñвезујуће датотеке Ñу преведене за целе бројеве од 32 бита (-fshort-double) а друге за целе бројеве од 64 бита"
-#: elf32-m68hc1x.c:1372
+#: elf32-m68hc1x.c:1373
#, c-format
msgid "%pB: linking files compiled for HCS12 with others compiled for HC12"
msgstr "%pB: Ñвезујуће датотеке Ñу преведене за „HCS12“ Ñа другима преведеним за „HC12“"
-#: elf32-m68hc1x.c:1417 elf32-xgate.c:497
+#: elf32-m68hc1x.c:1418 elf32-xgate.c:497
#, c-format
msgid "[abi=32-bit int, "
msgstr "[аби=32-битни цео број, "
-#: elf32-m68hc1x.c:1419 elf32-xgate.c:499
+#: elf32-m68hc1x.c:1420 elf32-xgate.c:499
#, c-format
msgid "[abi=16-bit int, "
msgstr "[аби=16-битни цео број, "
-#: elf32-m68hc1x.c:1422 elf32-xgate.c:502
+#: elf32-m68hc1x.c:1423 elf32-xgate.c:502
#, c-format
msgid "64-bit double, "
msgstr "64-битни мешовити, "
-#: elf32-m68hc1x.c:1424 elf32-xgate.c:504
+#: elf32-m68hc1x.c:1425 elf32-xgate.c:504
#, c-format
msgid "32-bit double, "
msgstr "32-битни мешовити, "
-#: elf32-m68hc1x.c:1427
+#: elf32-m68hc1x.c:1428
#, c-format
msgid "cpu=HC11]"
msgstr "процеÑор=HC11]"
-#: elf32-m68hc1x.c:1429
+#: elf32-m68hc1x.c:1430
#, c-format
msgid "cpu=HCS12]"
msgstr "процеÑор=HCS12]"
-#: elf32-m68hc1x.c:1431
+#: elf32-m68hc1x.c:1432
#, c-format
msgid "cpu=HC12]"
msgstr "процеÑор=HC12]"
-#: elf32-m68hc1x.c:1434
+#: elf32-m68hc1x.c:1435
#, c-format
msgid " [memory=bank-model]"
msgstr " [меморија=модел-групе]"
-#: elf32-m68hc1x.c:1436
+#: elf32-m68hc1x.c:1437
#, c-format
msgid " [memory=flat]"
msgstr " [меморија=обично]"
-#: elf32-m68hc1x.c:1439
+#: elf32-m68hc1x.c:1440
#, c-format
msgid " [XGATE RAM offsetting]"
msgstr " [XGATE RAM померај]"
@@ -2942,8 +2972,8 @@ msgstr "%pB(%pA): више „TLS“ модела није подржано"
msgid "%pB(%pA): shared library symbol %s encountered whilst performing a static link"
msgstr "%pB(%pA): наиђох на Ñимбол дељене библиотеке „%s“ за време обављања Ñтатичке везе"
-#: elf32-microblaze.c:1590 elf32-tilepro.c:3018 elfxx-sparc.c:3442
-#: elfxx-tilegx.c:3415
+#: elf32-microblaze.c:1590 elf32-tilepro.c:3020 elfxx-sparc.c:3452
+#: elfxx-tilegx.c:3417
#, c-format
msgid "%pB: probably compiled without -fPIC?"
msgstr "%pB: вероватно је преведено без „-fPIC“?"
@@ -3010,87 +3040,87 @@ msgstr "грешка: „%pB“ кориÑти модел „%s“ податаÐ
msgid "error: %pB can use the upper region for data, but %pB assumes data is exclusively in lower memory"
msgstr "грешка: „%pB“ може да кориÑти горњу облаÑÑ‚ за податке, али „%pB“ подразумева да Ñу подаци иÑкључиво у доњој меморији"
-#: elf32-nds32.c:3673
+#: elf32-nds32.c:3680
#, c-format
msgid "error: can't find symbol: %s"
msgstr "грешка: не могу да нађем Ñимбол: %s"
-#: elf32-nds32.c:5572
+#: elf32-nds32.c:5579
#, c-format
msgid "%pB: warning: %s unsupported in shared mode"
msgstr "%pB: упозорење: „%s“ није подржано у дељеном режиму"
-#: elf32-nds32.c:5698
+#: elf32-nds32.c:5705
#, c-format
msgid "%pB: warning: unaligned access to GOT entry"
msgstr "%pB: упозорење: непоравнат приÑтуп уноÑу „GOT“"
-#: elf32-nds32.c:5739
+#: elf32-nds32.c:5746
#, c-format
msgid "%pB: warning: relocate SDA_BASE failed"
msgstr "%pB: упозорење: није уÑпело премештање „SDA_BASE“"
-#: elf32-nds32.c:5761
+#: elf32-nds32.c:5768
#, c-format
msgid "%pB(%pA): warning: unaligned small data access of type %d"
msgstr "%pB(%pA): упозорење: приÑтуп непоравнатим малим подацима врÑте „%d“"
-#: elf32-nds32.c:6687
+#: elf32-nds32.c:6694
#, c-format
msgid "%pB: ISR vector size mismatch with previous modules, previous %u-byte, current %u-byte"
msgstr "%pB: величина вектора „ISR“ Ñе разликује од претходних модула: претходна %u бајта; текућа %u бајта"
-#: elf32-nds32.c:6735
+#: elf32-nds32.c:6742
#, c-format
msgid "%pB: warning: endian mismatch with previous modules"
msgstr "%pB: упозорење: крајњоÑÑ‚ Ñе разликује од претходних модула"
-#: elf32-nds32.c:6749
+#: elf32-nds32.c:6756
#, c-format
msgid "%pB: warning: older version of object file encountered, please recompile with current tool chain"
msgstr "%pB: упозорење: наишао Ñам на Ñтарије издање датотеке објекта, преведите поново Ñа текућим ланцем алата"
-#: elf32-nds32.c:6837
+#: elf32-nds32.c:6844
#, c-format
msgid "%pB: error: ABI mismatch with previous modules"
msgstr "%pB: грешка: „ABI“ Ñе разликује од претходних модула"
-#: elf32-nds32.c:6847
+#: elf32-nds32.c:6854
#, c-format
msgid "%pB: error: instruction set mismatch with previous modules"
msgstr "%pB: грешка: Ñкуп инÑтрукција Ñе разликује од претходних модула"
-#: elf32-nds32.c:6874
+#: elf32-nds32.c:6881
#, c-format
msgid "%pB: warning: incompatible elf-versions %s and %s"
msgstr "%pB: упозорење: елф издања %s и %s ниÑу ÑаглаÑна"
-#: elf32-nds32.c:6905
+#: elf32-nds32.c:6912
#, c-format
msgid ": n1 instructions"
msgstr ": инÑтрукције „n1“"
-#: elf32-nds32.c:6908
+#: elf32-nds32.c:6915
#, c-format
msgid ": n1h instructions"
msgstr ": инÑтрукције „n1h“"
-#: elf32-nds32.c:9357
+#: elf32-nds32.c:9364
#, c-format
msgid "%pB: error: search_nds32_elf_blank reports wrong node"
msgstr "%pB: грешка: „search_nds32_elf_blank“ извештава о погрешном чвору"
-#: elf32-nds32.c:9621
+#: elf32-nds32.c:9628
#, c-format
msgid "%pB: warning: %s points to unrecognized reloc at %#<PRIx64>"
msgstr "%pB: упозорење: „%s“ показује на непознато премештање на %#<PRIx64>"
-#: elf32-nds32.c:12886
+#: elf32-nds32.c:12893
#, c-format
msgid "%pB: nested OMIT_FP in %pA"
msgstr "%pB: угнежђено „OMIT_FP“ у „%pA“"
-#: elf32-nds32.c:12905
+#: elf32-nds32.c:12912
#, c-format
msgid "%pB: unmatched OMIT_FP in %pA"
msgstr "%pB: неодговарајуће „OMIT_FP“ у „%pA“"
@@ -3120,7 +3150,7 @@ msgstr "%pB: Ñабирак треба да буде нула за „got“ пÑ
msgid "%pB: gotoff relocation against dynamic symbol %s"
msgstr "%pB: „gotoff“ премештање наÑпрам динамичког Ñимбола „%s“"
-#: elf32-or1k.c:1573 elf32-or1k.c:1588 elf64-alpha.c:4409 elf64-alpha.c:4553
+#: elf32-or1k.c:1573 elf32-or1k.c:1588 elf64-alpha.c:4412 elf64-alpha.c:4556
#, c-format
msgid "%pB: pc-relative relocation against dynamic symbol %s"
msgstr "%pB: „pc“-одноÑно премештање наÑпрам динамичког Ñимбола „%s“"
@@ -3145,7 +3175,7 @@ msgstr "%pB: нећу решити време покретања „TLS“ прÐ
msgid "%pB: bad relocation section name `%s'"
msgstr "%pB: лош назив одељка премештања „%s“"
-#: elf32-or1k.c:3312
+#: elf32-or1k.c:3313
#, c-format
msgid "%pB: %s flag mismatch with previous modules"
msgstr "%pB: „%s“ заÑтавица Ñе разликује од претходних модула"
@@ -3241,7 +3271,7 @@ msgstr "„bss-plt“ је приÑиљено због „%pB“"
msgid "bss-plt forced by profiling"
msgstr "„bss-plt“ је приÑиљено профилиÑањем"
-#: elf32-ppc.c:4606 elf64-ppc.c:8516
+#: elf32-ppc.c:4606 elf64-ppc.c:8517
msgid "%H: warning: %s unexpected insn %#x.\n"
msgstr "%H: упозорење: „%s“ неочекивани улазни знак „%#x“.\n"
@@ -3249,45 +3279,45 @@ msgstr "%H: упозорење: „%s“ неочекивани улазни зÐ
#. could just mark this symbol to exclude it
#. from tls optimization but it's safer to skip
#. the entire optimization.
-#: elf32-ppc.c:4636 elf64-ppc.c:8581
+#: elf32-ppc.c:4636 elf64-ppc.c:8582
#, c-format
msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n"
msgstr "Ðргумент „%H“ је изгубио „__tls_get_addr“, „TLS“ оптимизација је иÑкључена\n"
-#: elf32-ppc.c:5564 elf32-sh.c:3018 elf32-tilepro.c:2245 elfxx-sparc.c:2454
-#: elfxx-tilegx.c:2494
+#: elf32-ppc.c:5565 elf32-sh.c:3019 elf32-tilepro.c:2246 elfxx-sparc.c:2464
+#: elfxx-tilegx.c:2495
#, c-format
msgid "%pB: dynamic relocation in read-only section `%pA'\n"
msgstr "%pB: динамичко премештање у одељку Ñамо за читање %pA\n"
-#: elf32-ppc.c:6510
+#: elf32-ppc.c:6512
msgid "%pB: Adjusting branch at 0x%V towards \"%s\" in section %s\n"
msgstr "%pB: Дотерујем грану на 0x%V према „%s“ у одељку „%s“\n"
-#: elf32-ppc.c:7463
+#: elf32-ppc.c:7454
msgid "%P: %H: error: %s with unexpected instruction %x\n"
msgstr "%P: %H: грешка: „%s“ Ñа неочекиваном инÑтрукцијом „%x“\n"
-#: elf32-ppc.c:7501
+#: elf32-ppc.c:7492
msgid "%H: fixup branch overflow\n"
msgstr "%H: прекорачење „fixup“ гране\n"
-#: elf32-ppc.c:7541 elf32-ppc.c:7579
+#: elf32-ppc.c:7532 elf32-ppc.c:7570
#, c-format
msgid "%pB(%pA+%#<PRIx64>): error: %s with unexpected instruction %#x"
msgstr "%pB(%pA+%#<PRIx64>): грешка: „%s“ Ñа неочекиваном инÑтрукцијом „%#x“"
-#: elf32-ppc.c:7643
+#: elf32-ppc.c:7634
#, c-format
msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n"
msgstr "%X%H: неподржано „bss-plt“ „-fPIC“ „ifunc“ „%s“\n"
-#: elf32-ppc.c:7679
+#: elf32-ppc.c:7670
#, c-format
msgid "%pB: reloc %#x unsupported"
msgstr "%pB: премештање „%#x“ није подржано"
-#: elf32-ppc.c:7962
+#: elf32-ppc.c:7953
#, c-format
msgid "%H: non-zero addend on %s reloc against `%s'\n"
msgstr "%H: не нулти Ñабирак на „%s“ премештању наÑпрам „%s“\n"
@@ -3300,49 +3330,49 @@ msgstr "%H: не нулти Ñабирак на „%s“ премештању н
#. local won't have the +32k reloc addend trick marking
#. -fPIC code, so the linker won't know whether r30 is
#. _GLOBAL_OFFSET_TABLE_ or pointing into a .got2 section.
-#: elf32-ppc.c:7994
+#: elf32-ppc.c:7985
#, c-format
msgid "%X%H: @local call to ifunc %s\n"
msgstr "%X%H: позив „@local“ за i-функцију „%s“\n"
-#: elf32-ppc.c:8172
+#: elf32-ppc.c:8163
#, c-format
msgid "%H: relocation %s for indirect function %s unsupported\n"
msgstr "%H: „%s“ премештање за индиректну функцију „%s“ није подржано\n"
-#: elf32-ppc.c:8510 elf32-ppc.c:8541 elf32-ppc.c:8644 elf32-ppc.c:8744
+#: elf32-ppc.c:8501 elf32-ppc.c:8532 elf32-ppc.c:8635 elf32-ppc.c:8735
#, c-format
msgid "%pB: the target (%s) of a %s relocation is in the wrong output section (%s)"
msgstr "%pB: мета (%s) премештања „%s“ је у погрешном излазном одељку (%s)"
-#: elf32-ppc.c:8922 elf32-ppc.c:8943
+#: elf32-ppc.c:8913 elf32-ppc.c:8934
msgid "%X%P: %H: %s relocation unsupported for bss-plt\n"
msgstr "%X%P: %H: „%s“ премештање није подржано за „bss-plt“\n"
-#: elf32-ppc.c:9025
+#: elf32-ppc.c:9016
#, c-format
msgid "%H: error: %s against `%s' not a multiple of %u\n"
msgstr "%H: грешка: „%s“ наÑпрам „%s“ није производ „%u“\n"
-#: elf32-ppc.c:9054
+#: elf32-ppc.c:9045
#, c-format
msgid "%H: unresolvable %s relocation against symbol `%s'\n"
msgstr "%H: нерешиво „%s“ премештање наÑпрам Ñимбола „%s“\n"
-#: elf32-ppc.c:9136
+#: elf32-ppc.c:9127
#, c-format
msgid "%H: %s reloc against `%s': error %d\n"
msgstr "%H: „%s“ премештање наÑпрам „%s“: грешка %d\n"
-#: elf32-ppc.c:10018
+#: elf32-ppc.c:10009
msgid "%X%P: text relocations and GNU indirect functions will result in a segfault at runtime\n"
msgstr "%X%P: премештање текÑта и ГÐУ-ове индиректне функције ће резултирати неуÑпехом Ñегментације у време извршавања\n"
-#: elf32-ppc.c:10022 elf64-ppc.c:18320
+#: elf32-ppc.c:10013 elf64-ppc.c:18330
msgid "%P: warning: text relocations and GNU indirect functions may result in a segfault at runtime\n"
msgstr "%P: упозорење: премештање текÑта и ГÐУ-ове индиректне функције могу резултирати неуÑпехом Ñегментације у време извршавања\n"
-#: elf32-ppc.c:10067
+#: elf32-ppc.c:10058
#, c-format
msgid "%s not defined in linker created %pA"
msgstr "„%s“ није дефиниÑано у повезивачу Ñтвореном „%pA“"
@@ -3466,12 +3496,12 @@ msgstr "%pB:%pA: табели „%s“ недоÑтаје одговарајућ
msgid "%pB:%pA: %s and %s must be in the same input section"
msgstr "%pB:%pA: „%s“ и „%s“ морају бити у иÑтом улазном одељку"
-#: elf32-s390.c:2005 elf64-s390.c:1974
+#: elf32-s390.c:2007 elf64-s390.c:2242
#, c-format
msgid "%pB(%pA+%#<PRIx64>): invalid instruction for TLS relocation %s"
msgstr "%pB(%pA+%#<PRIx64>): неиÑправна инÑтрукција за „TLS“ премештање „%s“"
-#: elf32-score.c:1505 elf32-score7.c:1368 elfxx-mips.c:3868
+#: elf32-score.c:1505 elf32-score7.c:1368 elfxx-mips.c:3914
msgid "not enough GOT space for local GOT entries"
msgstr "нема довољно „GOT“ проÑтора за меÑне уноÑе „GOT“"
@@ -3489,22 +3519,22 @@ msgstr "%pB: откривено је лоше премештање за одељ
msgid "%pB: CALL15 reloc at %#<PRIx64> not against global symbol"
msgstr "%pB: „CALL15“ премештање на %#<PRIx64> није наÑпрам општег Ñимбола"
-#: elf32-score.c:3481 elf32-score7.c:3292 elfxx-mips.c:11175
+#: elf32-score.c:3483 elf32-score7.c:3294 elfxx-mips.c:11260
#, c-format
msgid "%pB: cannot handle more than %d dynamic symbols"
msgstr "%pB: не могу да радим Ñа више од %d динамичких Ñимбола"
-#: elf32-score.c:3987 elf32-score7.c:3794
+#: elf32-score.c:3989 elf32-score7.c:3796
#, c-format
msgid " [pic]"
msgstr " [пик]"
-#: elf32-score.c:3991 elf32-score7.c:3798
+#: elf32-score.c:3993 elf32-score7.c:3800
#, c-format
msgid " [fix dep]"
msgstr " [Ñ„Ð¸ÐºÑ Ð´ÑƒÐ±]"
-#: elf32-score.c:4038 elf32-score7.c:3845
+#: elf32-score.c:4040 elf32-score7.c:3847
#, c-format
msgid "%pB: warning: linking PIC files with non-PIC files"
msgstr "%pB: упозорење: повезујем „PIC“ датотеке Ñа не-„PIC“ датотекама"
@@ -3514,148 +3544,148 @@ msgstr "%pB: упозорење: повезујем „PIC“ датотеке Ñ
msgid "%pB: %#<PRIx64>: warning: R_SH_USES points to unrecognized insn 0x%x"
msgstr "%pB: %#<PRIx64>: упозорење: „R_SH_USES“ показује на непознат улазни злак 0x%x"
-#: elf32-sh.c:3753
+#: elf32-sh.c:3755
#, c-format
msgid "%pB: %#<PRIx64>: fatal: unaligned branch target for relax-support relocation"
msgstr "%pB: %#<PRIx64>: кобна грешка: непоравнат циљ гране за премештање подршке опуштања"
-#: elf32-sh.c:3783 elf32-sh.c:3799
+#: elf32-sh.c:3785 elf32-sh.c:3801
#, c-format
msgid "%pB: %#<PRIx64>: fatal: unaligned %s relocation %#<PRIx64>"
msgstr "%pB: %#<PRIx64>: кобна грешка: непоравнато премештање „%s“ %#<PRIx64>"
-#: elf32-sh.c:3815
+#: elf32-sh.c:3817
#, c-format
msgid "%pB: %#<PRIx64>: fatal: R_SH_PSHA relocation %<PRId64> not in range -32..32"
msgstr "%pB: %#<PRIx64>: кобна грешка: „R_SH_PSHA“ премештање „%#<PRId64>“ није у опÑегу -32..32"
-#: elf32-sh.c:3831
+#: elf32-sh.c:3833
#, c-format
msgid "%pB: %#<PRIx64>: fatal: R_SH_PSHL relocation %<PRId64> not in range -32..32"
msgstr "%pB: %#<PRIx64>: кобна грешка: „R_SH_PSHL“ премештање „%#<PRId64>“ није у опÑегу -32..32"
-#: elf32-sh.c:3961 elf32-sh.c:4356
+#: elf32-sh.c:3963 elf32-sh.c:4358
#, c-format
msgid "%pB(%pA+%#<PRIx64>): cannot emit fixup to `%s' in read-only section"
msgstr "%pB(%pA+%#<PRIx64>): не могу да унеÑем иÑправке у „%s“ у одељку Ñамо за читање"
-#: elf32-sh.c:4459
+#: elf32-sh.c:4461
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s relocation against external symbol \"%s\""
msgstr "%pB(%pA+%#<PRIx64>): „%s“ премештање наÑпрам Ñпољног Ñимбола „%s“"
-#: elf32-sh.c:4578
+#: elf32-sh.c:4580
#, c-format
msgid "%pB(%pA): offset in relocation for GD->LE translation is too small: %#<PRIx64>"
msgstr "%pB(%pA): померај у премештању за „GD->LE“ превод је премали: %#<PRIx64>"
#. The backslash is to prevent bogus trigraph detection.
-#: elf32-sh.c:4596
+#: elf32-sh.c:4598
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd4??)"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана инÑтрукција „%#04X“ (очекивах 0xd4??)"
-#: elf32-sh.c:4604
+#: elf32-sh.c:4606
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xc7??)"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана инÑтрукција „%#04X“ (очекивах 0xc7??)"
-#: elf32-sh.c:4611
+#: elf32-sh.c:4613
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd1??)"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана инÑтрукција „%#04X“ (очекивах 0xd1??)"
-#: elf32-sh.c:4618
+#: elf32-sh.c:4620
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x310c)"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана инÑтрукција „%#04X“ (очекивах 0x310c??)"
-#: elf32-sh.c:4625
+#: elf32-sh.c:4627
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x410b)"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана инÑтрукција „%#04X“ (очекивах 0x410b??)"
-#: elf32-sh.c:4632
+#: elf32-sh.c:4634
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x34cc)"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана инÑтрукција „%#04X“ (очекивах 0x34cc??)"
-#: elf32-sh.c:4667
+#: elf32-sh.c:4669
#, c-format
msgid "%pB(%pA): offset in relocation for IE->LE translation is too small: %#<PRIx64>"
msgstr "%pB(%pA): померај у премештању за „IE->LE“ превод је премали: %#<PRIx64>"
-#: elf32-sh.c:4685
+#: elf32-sh.c:4687
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd0??: mov.l)"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана инÑтрукција „%#04X“ (очекивах 0xd0??: mov.l)"
-#: elf32-sh.c:4694
+#: elf32-sh.c:4696
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x0?12: stc)"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана инÑтрукција „%#04X“ (очекивах 0x0?12: stc)"
-#: elf32-sh.c:4701
+#: elf32-sh.c:4703
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x0?ce: mov.l)"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана инÑтрукција „%#04X“ (очекивах 0x0?ce: mov.l)"
-#: elf32-sh.c:4816
+#: elf32-sh.c:4818
#, c-format
msgid "%pB(%pA): offset in relocation for GD->IE translation is too small: %#<PRIx64>"
msgstr "%pB(%pA): померај у премештању за „GD->IE“ превод је премали: %#<PRIx64>"
-#: elf32-sh.c:4884
+#: elf32-sh.c:4886
#, c-format
msgid "%pB(%pA): offset in relocation for LD->LE translation is too small: %#<PRIx64>"
msgstr "%pB(%pA): померај у премештању за „LD->LE“ превод је премали: %#<PRIx64>"
-#: elf32-sh.c:5012
+#: elf32-sh.c:5014
#, c-format
msgid "%X%H: relocation to \"%s\" references a different segment\n"
msgstr "%X%H: премештање у „%s“ Ñтвара упуту другог Ñегмента\n"
-#: elf32-sh.c:5019
+#: elf32-sh.c:5021
#, c-format
msgid "%H: warning: relocation to \"%s\" references a different segment\n"
msgstr "%H: упозорење: премештање у „%s“ Ñтвара упуту другог Ñегмента\n"
-#: elf32-sh.c:5487 elf32-sh.c:5569
+#: elf32-sh.c:5489 elf32-sh.c:5571
#, c-format
msgid "%pB: `%s' accessed both as normal and FDPIC symbol"
msgstr "%pB: „%s“ Ñе приÑтупило и као нормалном и као Ñимболу „FDPIC“"
-#: elf32-sh.c:5493 elf32-sh.c:5574
+#: elf32-sh.c:5495 elf32-sh.c:5576
#, c-format
msgid "%pB: `%s' accessed both as FDPIC and thread local symbol"
msgstr "%pB: „%s“ Ñе приÑтупило и као „FDPIC“-у и као Ñимболу локалне нити"
-#: elf32-sh.c:5524
+#: elf32-sh.c:5526
#, c-format
msgid "%pB: Function descriptor relocation with non-zero addend"
msgstr "%pB: Премештање опиÑника функције Ñа не-нултим Ñабирком"
-#: elf32-sh.c:5731 elf64-alpha.c:4645
+#: elf32-sh.c:5733 elf64-alpha.c:4648
#, c-format
msgid "%pB: TLS local exec code cannot be linked into shared objects"
msgstr "%pB: „TLS“ меÑни извршни код не може бити повезан у дељеним објектима"
-#: elf32-sh.c:5846
+#: elf32-sh.c:5848
#, c-format
msgid "%pB: uses %s instructions while previous modules use %s instructions"
msgstr "%pB: кориÑти „%s“ инÑтрукције док претходни модули кориÑте „%s“ инÑтрукције"
-#: elf32-sh.c:5858
+#: elf32-sh.c:5860
#, c-format
msgid "internal error: merge of architecture '%s' with architecture '%s' produced unknown architecture"
msgstr "унутрашња грешка: Ñтапање архитектуре „%s“ Ñа архитектуром „%s“ је дало непознату архитектуру"
-#: elf32-sh.c:5899
+#: elf32-sh.c:5901
#, c-format
msgid "%pB: uses instructions which are incompatible with instructions used in previous modules"
msgstr "%pB: кориÑти инÑтрукције које ниÑу ÑаглаÑне Ñа инÑтрукцијама коришћеним у претходним модулима"
-#: elf32-sh.c:5912
+#: elf32-sh.c:5914
#, c-format
msgid "%pB: attempt to mix FDPIC and non-FDPIC objects"
msgstr "%pB: покушавам да помешам „FDPIC“ и не-„FDPIC“ објекте"
@@ -3675,118 +3705,118 @@ msgstr "%pB: повезујем датотеке мале крајњоÑти ÑÐ
msgid "%pB: unhandled sparc machine value '%lu' detected during write processing"
msgstr "%pB: необрадива вредноÑÑ‚ „sparc“ машине „%lu“ је откривена за време обрађивања пиÑања"
-#: elf32-spu.c:733
+#: elf32-spu.c:734
msgid "%X%P: overlay section %pA does not start on a cache line\n"
msgstr "%X%P: одељак преклапања „%pA“ не почиње у реду оÑтаве\n"
-#: elf32-spu.c:741
+#: elf32-spu.c:742
msgid "%X%P: overlay section %pA is larger than a cache line\n"
msgstr "%X%P: одељак преклапања „%pA“ је већи од реда оÑтаве\n"
-#: elf32-spu.c:761
+#: elf32-spu.c:762
msgid "%X%P: overlay section %pA is not in cache area\n"
msgstr "%X%P: одељак преклапања „%pA“ није у реду оÑтаве\n"
-#: elf32-spu.c:802
+#: elf32-spu.c:803
#, c-format
msgid "%X%P: overlay sections %pA and %pA do not start at the same address\n"
msgstr "%X%P: одељци преклапања „%pA“ и „%pA“ не почињу на иÑтој адреÑи\n"
-#: elf32-spu.c:1028
+#: elf32-spu.c:1029
#, c-format
msgid "warning: call to non-function symbol %s defined in %pB"
msgstr "упозорење: позив не-функцијÑком Ñимболу „%s“ је дефиниÑан у „%pB“"
-#: elf32-spu.c:1378
+#: elf32-spu.c:1379
#, c-format
msgid "%pA:0x%v lrlive .brinfo (%u) differs from analysis (%u)\n"
msgstr "%pA:0x%v „lrlive .brinfo“ (%u) Ñе разликује од анализе (%u)\n"
-#: elf32-spu.c:1908
+#: elf32-spu.c:1909
#, c-format
msgid "%pB is not allowed to define %s"
msgstr "„%pB“ нема дозволу да дефинише „%s“"
-#: elf32-spu.c:1916
+#: elf32-spu.c:1917
#, c-format
msgid "you are not allowed to define %s in a script"
msgstr "ви немате дозволу да дефинишете „%s“ у Ñкрипти"
-#: elf32-spu.c:1950
+#: elf32-spu.c:1951
#, c-format
msgid "%s in overlay section"
msgstr "„%s“ у одељку преклапања"
-#: elf32-spu.c:1979
+#: elf32-spu.c:1981
msgid "overlay stub relocation overflow"
msgstr "прекорачење премештања окрајка прекривања"
-#: elf32-spu.c:1988 elf64-ppc.c:15362
+#: elf32-spu.c:1990 elf64-ppc.c:15372
msgid "stubs don't match calculated size"
msgstr "окрајци не одговарају израчунатој величини"
-#: elf32-spu.c:2571
+#: elf32-spu.c:2575
#, c-format
msgid "warning: %s overlaps %s\n"
msgstr "упозорење: „%s“ преклапа „%s“\n"
-#: elf32-spu.c:2587
+#: elf32-spu.c:2591
#, c-format
msgid "warning: %s exceeds section size\n"
msgstr "упозорење: „%s“ превазилази величину одељка\n"
-#: elf32-spu.c:2619
+#: elf32-spu.c:2623
#, c-format
msgid "%pA:0x%v not found in function table\n"
msgstr "„%pA:0x%v“ ниÑам нашао у табели функције\n"
-#: elf32-spu.c:2760
+#: elf32-spu.c:2764
#, c-format
msgid "%pB(%pA+0x%v): call to non-code section %pB(%pA), analysis incomplete\n"
msgstr "%pB(%pA+0x%v): позив не-кодном одељку „%pB(%pA)“, анализа је непотпуна\n"
-#: elf32-spu.c:3326
+#: elf32-spu.c:3330
#, c-format
msgid "stack analysis will ignore the call from %s to %s\n"
msgstr "анализа Ñпремника ће занемарити позив од „%s“ до „%s“\n"
-#: elf32-spu.c:4023
+#: elf32-spu.c:4027
msgid " calls:\n"
msgstr " позиви:\n"
-#: elf32-spu.c:4338
+#: elf32-spu.c:4342
#, c-format
msgid "%s duplicated in %s\n"
msgstr "„%s“ је удвоÑтручено у „%s“\n"
-#: elf32-spu.c:4342
+#: elf32-spu.c:4346
#, c-format
msgid "%s duplicated\n"
msgstr "„%s“ је удвоÑтручено\n"
-#: elf32-spu.c:4349
+#: elf32-spu.c:4353
msgid "sorry, no support for duplicate object files in auto-overlay script\n"
msgstr "извините, нема подршке за удвоÑтручене датотеке објекта у Ñкрипти Ñамо-преклапања\n"
-#: elf32-spu.c:4391
+#: elf32-spu.c:4395
#, c-format
msgid "non-overlay size of 0x%v plus maximum overlay size of 0x%v exceeds local store\n"
msgstr "не-преклапајућа величина 0x%v Ð¿Ð»ÑƒÑ Ð½Ð°Ñ˜Ð²ÐµÑ›Ð° величина преклапања 0x%v превазилазе меÑно Ñпремиште\n"
-#: elf32-spu.c:4547
+#: elf32-spu.c:4551
#, c-format
msgid "%pB:%pA%s exceeds overlay size\n"
msgstr "„%pB:%pA%s“ превазилази величину преклапања\n"
-#: elf32-spu.c:4688
-msgid "%F%P: auto overlay error: %E\n"
-msgstr "%F%P: грешка Ñамопреклапања: %E\n"
+#: elf32-spu.c:4692
+msgid "%P: auto overlay error: %E\n"
+msgstr "%P: грешка Ñамопреклапања: %E\n"
-#: elf32-spu.c:4709
+#: elf32-spu.c:4712
msgid "Stack size for call graph root nodes.\n"
msgstr "Величина Ñпремника за позив чворова корена графика.\n"
-#: elf32-spu.c:4710
+#: elf32-spu.c:4713
msgid ""
"\n"
"Stack size for functions. Annotations: '*' max stack, 't' tail call\n"
@@ -3794,23 +3824,23 @@ msgstr ""
"\n"
"Величина Ñпремника за функције. Ðапомене: „*“ највећи Ñпремник, „t“ позив оÑтатка\n"
-#: elf32-spu.c:4720
+#: elf32-spu.c:4723
msgid "Maximum stack required is 0x%v\n"
msgstr "Ðајвећи потребан Ñпремник је 0x%v\n"
-#: elf32-spu.c:4739
+#: elf32-spu.c:4742
msgid "%X%P: stack/lrlive analysis error: %E\n"
msgstr "%X%P: грешка „stack/lrlive“ анализе: %E\n"
-#: elf32-spu.c:4742
-msgid "%F%P: can not build overlay stubs: %E\n"
-msgstr "%F%P: не могу да изградим окрајке преклапања „%E“\n"
+#: elf32-spu.c:4745
+msgid "%P: can not build overlay stubs: %E\n"
+msgstr "%P: не могу да изградим окрајке преклапања „%E“\n"
-#: elf32-spu.c:4811
+#: elf32-spu.c:4814
msgid "fatal error while creating .fixup"
msgstr "кобна грешка приликом Ñтварања „.fixup“-а"
-#: elf32-spu.c:5047
+#: elf32-spu.c:5050
#, c-format
msgid "%pB(%s+%#<PRIx64>): unresolvable %s relocation against symbol `%s'"
msgstr "%pB(%s+%#<PRIx64>): нерешиво „%s“ премештање наÑпрам Ñимбола „%s“"
@@ -3828,49 +3858,49 @@ msgstr "упозорење: Ñтварам дељену библиотеку кÐ
msgid "%pB: SB-relative relocation but __c6xabi_DSBT_BASE not defined"
msgstr "%pB: премештање Ñе одноÑи на „SB“ али „__c6xabi_DSBT_BASE“ није дефиниÑано"
-#: elf32-tic6x.c:3490
+#: elf32-tic6x.c:3492
#, c-format
msgid "%pB: error: unknown mandatory EABI object attribute %d"
msgstr "%pB: грешка: обавезан „%d“ атрибут „EABI“ објекта није познат"
-#: elf32-tic6x.c:3499
+#: elf32-tic6x.c:3501
#, c-format
msgid "%pB: warning: unknown EABI object attribute %d"
msgstr "%pB: упозорење: „%d“ атрибут „EABI“ објекта није познат"
-#: elf32-tic6x.c:3617 elf32-tic6x.c:3626
+#: elf32-tic6x.c:3619 elf32-tic6x.c:3628
#, c-format
msgid "error: %pB requires more stack alignment than %pB preserves"
msgstr "грешка: „%pB“ захтева веће поравнање Ñпремника него што „%pB“ Ñадржи"
-#: elf32-tic6x.c:3636 elf32-tic6x.c:3645
+#: elf32-tic6x.c:3638 elf32-tic6x.c:3647
#, c-format
msgid "error: unknown Tag_ABI_array_object_alignment value in %pB"
msgstr "грешка: непозната вредноÑÑ‚ „Tag_ABI_array_object_alignment“ у „%pB“"
-#: elf32-tic6x.c:3654 elf32-tic6x.c:3663
+#: elf32-tic6x.c:3656 elf32-tic6x.c:3665
#, c-format
msgid "error: unknown Tag_ABI_array_object_align_expected value in %pB"
msgstr "грешка: непозната вредноÑÑ‚ „Tag_ABI_array_object_align_expected“ у „%pB“"
-#: elf32-tic6x.c:3672 elf32-tic6x.c:3680
+#: elf32-tic6x.c:3674 elf32-tic6x.c:3682
#, c-format
msgid "error: %pB requires more array alignment than %pB preserves"
msgstr "грешка: „%pB“ захтева веће поравнање низа него што „%pB“ Ñадржи"
-#: elf32-tic6x.c:3703
+#: elf32-tic6x.c:3705
#, c-format
msgid "warning: %pB and %pB differ in wchar_t size"
msgstr "упозорење: „%pB“ и „%pB“ имају различите „wchar_t“"
-#: elf32-tic6x.c:3722
+#: elf32-tic6x.c:3724
#, c-format
msgid "warning: %pB and %pB differ in whether code is compiled for DSBT"
msgstr "упозорење: „%pB“ и „%pB“ Ñе разликују по томе да ли је код преведен за „DSBT“"
-#: elf32-tilepro.c:3624 elfxx-tilegx.c:4017 elfxx-x86.c:2773
-#: elfnn-aarch64.c:10343 elfnn-kvx.c:4628 elfnn-loongarch.c:6062
-#: elfnn-riscv.c:3615
+#: elf32-tilepro.c:3626 elfxx-tilegx.c:4019 elfxx-x86.c:2762
+#: elfnn-aarch64.c:10375 elfnn-kvx.c:4631 elfnn-loongarch.c:6379
+#: elfnn-riscv.c:3801
#, c-format
msgid "discarded output section: `%pA'"
msgstr "одбачени одељак излаза: „%pA“"
@@ -3916,174 +3946,174 @@ msgstr "не могу да нађем нарочит „__ep“ Ñимбол пÐ
msgid "could not locate special linker symbol __ctbp"
msgstr "не могу да нађем нарочит „__ctbp“ Ñимбол повезивача"
-#: elf32-v850.c:2538
+#: elf32-v850.c:2539
#, c-format
msgid "error: %pB needs 8-byte alignment but %pB is set for 4-byte alignment"
msgstr "грешка: „%pBд захтева 8-битно поравнање али је „%pB“ подешено на 4-битно"
-#: elf32-v850.c:2554
+#: elf32-v850.c:2555
#, c-format
msgid "error: %pB uses 64-bit doubles but %pB uses 32-bit doubles"
msgstr "грешка: „%pB“ кориÑти 64-битне дублере али „%pB“ кориÑти 32-битне"
-#: elf32-v850.c:2569
+#: elf32-v850.c:2570
#, c-format
msgid "error: %pB uses FPU-3.0 but %pB only supports FPU-2.0"
msgstr "грешка: „%pB“ кориÑти „FPU-3.0“ али „%pB“ подржава Ñамо „FPU-2.0“"
-#: elf32-v850.c:2601
+#: elf32-v850.c:2602
#, c-format
msgid " alignment of 8-byte entities: "
msgstr " поравнање 8-битних ентитета: "
-#: elf32-v850.c:2604
+#: elf32-v850.c:2605
#, c-format
msgid "4-byte"
msgstr "4-бита"
-#: elf32-v850.c:2605
+#: elf32-v850.c:2606
#, c-format
msgid "8-byte"
msgstr "8-бита"
-#: elf32-v850.c:2606 elf32-v850.c:2618
+#: elf32-v850.c:2607 elf32-v850.c:2619
#, c-format
msgid "not set"
msgstr "није подешено"
-#: elf32-v850.c:2607 elf32-v850.c:2619 elf32-v850.c:2631 elf32-v850.c:2642
-#: elf32-v850.c:2653 elf32-v850.c:2664
+#: elf32-v850.c:2608 elf32-v850.c:2620 elf32-v850.c:2632 elf32-v850.c:2643
+#: elf32-v850.c:2654 elf32-v850.c:2665
#, c-format
msgid "unknown: %x"
msgstr "непознато: %x"
-#: elf32-v850.c:2613
+#: elf32-v850.c:2614
#, c-format
msgid " size of doubles: "
msgstr " величина дублера: "
-#: elf32-v850.c:2616
+#: elf32-v850.c:2617
#, c-format
msgid "4-bytes"
msgstr "4-бајта"
-#: elf32-v850.c:2617
+#: elf32-v850.c:2618
#, c-format
msgid "8-bytes"
msgstr "8-бајта"
-#: elf32-v850.c:2625
+#: elf32-v850.c:2626
#, c-format
msgid " FPU support required: "
msgstr " „FPU“ подршка је потребна: "
-#: elf32-v850.c:2628
+#: elf32-v850.c:2629
#, c-format
msgid "FPU-2.0"
msgstr "FPU-2.0"
-#: elf32-v850.c:2629
+#: elf32-v850.c:2630
#, c-format
msgid "FPU-3.0"
msgstr "FPU-3.0"
-#: elf32-v850.c:2630
+#: elf32-v850.c:2631
#, c-format
msgid "none"
msgstr "ништа"
-#: elf32-v850.c:2637
+#: elf32-v850.c:2638
#, c-format
msgid "SIMD use: "
msgstr "„SIMD“ коришћење: "
-#: elf32-v850.c:2640 elf32-v850.c:2651 elf32-v850.c:2662
+#: elf32-v850.c:2641 elf32-v850.c:2652 elf32-v850.c:2663
#, c-format
msgid "yes"
msgstr "да"
-#: elf32-v850.c:2641 elf32-v850.c:2652 elf32-v850.c:2663
+#: elf32-v850.c:2642 elf32-v850.c:2653 elf32-v850.c:2664
#, c-format
msgid "no"
msgstr "не"
-#: elf32-v850.c:2648
+#: elf32-v850.c:2649
#, c-format
msgid "CACHE use: "
msgstr "„CACHE“ коришћење: "
-#: elf32-v850.c:2659
+#: elf32-v850.c:2660
#, c-format
msgid "MMU use: "
msgstr "„MMU“ коришћење: "
-#: elf32-v850.c:2826 elf32-v850.c:2882
+#: elf32-v850.c:2827 elf32-v850.c:2883
#, c-format
msgid "%pB: architecture mismatch with previous modules"
msgstr "%pB: архитектура Ñе разликује од претходних модула"
#. xgettext:c-format.
-#: elf32-v850.c:2900
+#: elf32-v850.c:2901
#, c-format
msgid "private flags = %lx: "
msgstr "приватне заÑтавице = %lx: "
-#: elf32-v850.c:2905
+#: elf32-v850.c:2906
#, c-format
msgid "unknown v850 architecture"
msgstr "непозната архитектура „v850“"
-#: elf32-v850.c:2907
+#: elf32-v850.c:2908
#, c-format
msgid "v850 E3 architecture"
msgstr "архитектура „v850 E3“"
-#: elf32-v850.c:2909 elf32-v850.c:2916
+#: elf32-v850.c:2910 elf32-v850.c:2917
#, c-format
msgid "v850 architecture"
msgstr "архитектура „v850“"
-#: elf32-v850.c:2917
+#: elf32-v850.c:2918
#, c-format
msgid "v850e architecture"
msgstr "архитектура „v850e“"
-#: elf32-v850.c:2918
+#: elf32-v850.c:2919
#, c-format
msgid "v850e1 architecture"
msgstr "архитектура „v850e1“"
-#: elf32-v850.c:2919
+#: elf32-v850.c:2920
#, c-format
msgid "v850e2 architecture"
msgstr "архитектура „v850e2“"
-#: elf32-v850.c:2920
+#: elf32-v850.c:2921
#, c-format
msgid "v850e2v3 architecture"
msgstr "архитектура „v850e2v3“"
-#: elf32-v850.c:2921
+#: elf32-v850.c:2922
#, c-format
msgid "v850e3v5 architecture"
msgstr "архитектура „v850e3v5“"
-#: elf32-v850.c:3595 elf32-v850.c:3834
+#: elf32-v850.c:3596 elf32-v850.c:3835
#, c-format
msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized insns"
msgstr "%pB: %#<PRIx64>: упозорење: „%s“ показује на непознат улазни знак"
-#: elf32-v850.c:3605 elf32-v850.c:3844
+#: elf32-v850.c:3606 elf32-v850.c:3845
#, c-format
msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized insn %#x"
msgstr "%pB: %#<PRIx64>: упозорење: „%s“ показује на непознат улазни знак „%#x“"
-#: elf32-v850.c:3651 elf32-v850.c:3879
+#: elf32-v850.c:3652 elf32-v850.c:3880
#, c-format
msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized reloc"
msgstr "%pB: %#<PRIx64>: упозорење: „%s“ показује на непознато премештање"
-#: elf32-v850.c:3691
+#: elf32-v850.c:3692
#, c-format
msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized reloc %#<PRIx64>"
msgstr "%pB: %#<PRIx64>: упозорење: „%s“ показује на непознато премештање „%#<PRIx64>“"
@@ -4108,17 +4138,17 @@ msgstr " [g-покретни зарез]"
msgid "%pB: warning: GOT addend of %<PRId64> to `%s' does not match previous GOT addend of %<PRId64>"
msgstr "%pB: упозорење: „GOT“ Ñабирак „%<PRId64>“-а за „%s“ не одговара претходном „GOT“ Ñабирку „%<PRId64>“-а"
-#: elf32-vax.c:1387
+#: elf32-vax.c:1389
#, c-format
msgid "%pB: warning: PLT addend of %<PRId64> to `%s' from %pA section ignored"
msgstr "%pB: упозорење: „PLT“ Ñабирак „%<PRId64>“-а за „%s“ из одељка „%pA“ је занемарен"
-#: elf32-vax.c:1513
+#: elf32-vax.c:1515
#, c-format
msgid "%pB: warning: %s relocation against symbol `%s' from %pA section"
msgstr "%pB: упозорење: „%s“ премештање наÑпрам Ñимбола „%s“ из одељка „%pA“"
-#: elf32-vax.c:1520
+#: elf32-vax.c:1522
#, c-format
msgid "%pB: warning: %s relocation to %#<PRIx64> from %pA section"
msgstr "%pB: упозорење: „%s“ премештање у %#<PRIx64> из одељка „%pA“"
@@ -4138,7 +4168,7 @@ msgstr "процеÑор=XGATE]"
msgid "error reading cpu type from elf private data"
msgstr "грешка читања врÑте процеÑора из личних података елф-а"
-#: elf32-xstormy16.c:457 elf64-ia64-vms.c:2076 elfnn-ia64.c:2345
+#: elf32-xstormy16.c:457 elf64-ia64-vms.c:2077 elfnn-ia64.c:2345
msgid "non-zero addend in @fptr reloc"
msgstr "не-нулти Ñабирак у „@fptr“ премештању"
@@ -4147,51 +4177,51 @@ msgstr "не-нулти Ñабирак у „@fptr“ премештању"
msgid "%pB(%pA): invalid property table"
msgstr "%pB(%pA): неиÑправна табела влаÑништва"
-#: elf32-xtensa.c:2730
+#: elf32-xtensa.c:2732
#, c-format
msgid "%pB(%pA+%#<PRIx64>): relocation offset out of range (size=%#<PRIx64>)"
msgstr "%pB(%pA+%#<PRIx64>): померај премештања је ван опÑега (величина=%#<PRIx64>)"
-#: elf32-xtensa.c:2813 elf32-xtensa.c:2936
+#: elf32-xtensa.c:2815 elf32-xtensa.c:2938
msgid "dynamic relocation in read-only section"
msgstr "динамичко премештање у одељку Ñамо за читање"
-#: elf32-xtensa.c:2913
+#: elf32-xtensa.c:2915
msgid "TLS relocation invalid without dynamic sections"
msgstr "ТЛС премештање је неиÑправно без динамичких одељака"
-#: elf32-xtensa.c:3126
+#: elf32-xtensa.c:3128
msgid "internal inconsistency in size of .got.loc section"
msgstr "унутрашња недоÑледноÑÑ‚ у величини одељка „.got.loc“"
-#: elf32-xtensa.c:3432
+#: elf32-xtensa.c:3434
#, c-format
msgid "%pB: incompatible machine type; output is 0x%x; input is 0x%x"
msgstr "%pB: неÑаглаÑна врÑта машине; излаз је 0x%x, а улаз 0x%x"
-#: elf32-xtensa.c:4731 elf32-xtensa.c:4739
+#: elf32-xtensa.c:4733 elf32-xtensa.c:4741
msgid "attempt to convert L32R/CALLX to CALL failed"
msgstr "покушај претварања „L32R/CALLX“ у „CALL“ није уÑпео"
-#: elf32-xtensa.c:6567 elf32-xtensa.c:6646 elf32-xtensa.c:8072
+#: elf32-xtensa.c:6569 elf32-xtensa.c:6648 elf32-xtensa.c:8074
#, c-format
msgid "%pB(%pA+%#<PRIx64>): could not decode instruction; possible configuration mismatch"
msgstr "%pB(%pA+%#<PRIx64>): не могу да декодирам инÑтрукцију; вероватно је подешавање погрешно"
-#: elf32-xtensa.c:7813
+#: elf32-xtensa.c:7815
#, c-format
msgid "%pB(%pA+%#<PRIx64>): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch"
msgstr "%pB(%pA+%#<PRIx64>): не могу да декодирам инÑтрукцију за „XTENSA_ASM_SIMPLIFY“ премештање; вероватно је подешавање погрешно"
-#: elf32-xtensa.c:9671
+#: elf32-xtensa.c:9673
msgid "invalid relocation address"
msgstr "неиÑправна адреÑа премештања"
-#: elf32-xtensa.c:9762
+#: elf32-xtensa.c:9764
msgid "overflow after relaxation"
msgstr "прекорачење након опуштања"
-#: elf32-xtensa.c:10908
+#: elf32-xtensa.c:10910
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected fix for %s relocation"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана иÑправка за „%s“ премештање"
@@ -4225,52 +4255,52 @@ msgstr "%pB: динамичко премештање за локални ÑимÐ
msgid "%pB: .got subsegment exceeds 64K (size %d)"
msgstr "%pB: под-подеок „.got“ превазилази 64K (величина је %d)"
-#: elf64-alpha.c:2678 elflink.c:15697 elfnn-kvx.c:4015 elfnn-loongarch.c:2007
+#: elf64-alpha.c:2679 elflink.c:15752 elfnn-kvx.c:4016 elfnn-loongarch.c:2016
#, c-format
msgid "%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"
msgstr "%pB: премештање наÑпрам „%pT“ у одељку „%pA“ који је Ñамо за читање\n"
-#: elf64-alpha.c:2974 elf64-alpha.c:3169
+#: elf64-alpha.c:2977 elf64-alpha.c:3172
#, c-format
msgid "%pB: %pA+%#<PRIx64>: warning: %s relocation against unexpected insn"
msgstr "%pB: %pA+%#<PRIx64>: упозорење: „%s“ премештање неочекиваног улазног знака"
-#: elf64-alpha.c:4369 elf64-alpha.c:4382
+#: elf64-alpha.c:4372 elf64-alpha.c:4385
#, c-format
msgid "%pB: gp-relative relocation against dynamic symbol %s"
msgstr "%pB: „gp“-одноÑно премештање наÑпрам динамичког Ñимбола „%s“"
-#: elf64-alpha.c:4438
+#: elf64-alpha.c:4441
#, c-format
msgid "%pB: change in gp: BRSGP %s"
msgstr "%pB: измена у „gp“-у: BRSGP %s"
-#: elf64-alpha.c:4463 mach-o.c:625 elfnn-loongarch.c:908 elfnn-riscv.c:724
-#: elfnn-riscv.c:929 elfnn-riscv.c:971
+#: elf64-alpha.c:4466 mach-o.c:627 elfnn-loongarch.c:917 elfnn-riscv.c:917
+#: elfnn-riscv.c:1122 elfnn-riscv.c:1164
msgid "<unknown>"
msgstr "<непознато>"
-#: elf64-alpha.c:4469
+#: elf64-alpha.c:4472
#, c-format
msgid "%pB: !samegp reloc against symbol without .prologue: %s"
msgstr "%pB: „!samegp“ премештање наÑпрам Ñимбола без „.prologue“-а: %s"
-#: elf64-alpha.c:4527
+#: elf64-alpha.c:4530
#, c-format
msgid "%pB: unhandled dynamic relocation against %s"
msgstr "%pB: необрађено динамичко премештање наÑпрам „%s“"
-#: elf64-alpha.c:4562
+#: elf64-alpha.c:4565
#, c-format
msgid "%pB: pc-relative relocation against undefined weak symbol %s"
msgstr "%pB: „pc“-одноÑно премештање наÑпрам недефиниÑаног Ñлабог Ñимбола „%s“"
-#: elf64-alpha.c:4628
+#: elf64-alpha.c:4631
#, c-format
msgid "%pB: dtp-relative relocation against dynamic symbol %s"
msgstr "%pB: „dtp“-одноÑно премештање наÑпрам динамичког Ñимбола „%s“"
-#: elf64-alpha.c:4653
+#: elf64-alpha.c:4656
#, c-format
msgid "%pB: tp-relative relocation against dynamic symbol %s"
msgstr "%pB: „tp“-одноÑно премештање наÑпрам динамичког Ñимбола „%s“"
@@ -4285,12 +4315,12 @@ msgstr "унутрашња грешка: премештање није подрÐ
msgid "%pB: Relocations in generic ELF (EM: %d)"
msgstr "%pB: Премештања у општем „ELF“-у (EM: %d)"
-#: elf64-hppa.c:2035
+#: elf64-hppa.c:2037
#, c-format
msgid "stub entry for %s cannot load .plt, dp offset = %<PRId64>"
msgstr "ÑƒÐ½Ð¾Ñ Ð¾ÐºÑ€Ð°Ñ˜ÐºÐ° за „%s“ не може да учита „.plt“, померај „dp“ = %<PRId64>"
-#: elf64-hppa.c:3239
+#: elf64-hppa.c:3241
#, c-format
msgid "%pB(%pA+%#<PRIx64>): cannot reach %s"
msgstr "%pB(%pA+%#<PRIx64>): не може доÑтићи „%s“"
@@ -4300,100 +4330,100 @@ msgstr "%pB(%pA+%#<PRIx64>): не може доÑтићи „%s“"
msgid "%pB: can't relax br at %#<PRIx64> in section `%pA'; please use brl or indirect branch"
msgstr "%pB: не могу да опуÑтим „br“ на %#<PRIx64> у одељку „%pA“; кориÑтите „brl“ или индиректну грану"
-#: elf64-ia64-vms.c:2031 elfnn-ia64.c:2293
+#: elf64-ia64-vms.c:2032 elfnn-ia64.c:2293
msgid "@pltoff reloc against local symbol"
msgstr "„@pltoff“ премештање наÑпрам локалног Ñимбола"
-#: elf64-ia64-vms.c:3278 elfnn-ia64.c:3671
+#: elf64-ia64-vms.c:3280 elfnn-ia64.c:3673
#, c-format
msgid "%pB: short data segment overflowed (%#<PRIx64> >= 0x400000)"
msgstr "%pB: прекорачење Ñегмента кратких података (%#<PRIx64> >= 0x400000)"
-#: elf64-ia64-vms.c:3288 elfnn-ia64.c:3681
+#: elf64-ia64-vms.c:3290 elfnn-ia64.c:3683
#, c-format
msgid "%pB: __gp does not cover short data segment"
msgstr "%pB: „__gp“ не покрива Ñегмент кратких података"
-#: elf64-ia64-vms.c:3558 elfnn-ia64.c:3954
+#: elf64-ia64-vms.c:3560 elfnn-ia64.c:3956
#, c-format
msgid "%pB: non-pic code with imm relocation against dynamic symbol `%s'"
msgstr "%pB: не-„pic“ код Ñа „imm“ премештањем наÑпрам динамичког Ñимбола „%s“"
-#: elf64-ia64-vms.c:3622 elfnn-ia64.c:4022
+#: elf64-ia64-vms.c:3624 elfnn-ia64.c:4024
#, c-format
msgid "%pB: @gprel relocation against dynamic symbol %s"
msgstr "%pB: „@gprel“ премештање наÑпрам динамичког Ñимбола „%s“"
-#: elf64-ia64-vms.c:3681 elfnn-ia64.c:4085
+#: elf64-ia64-vms.c:3683 elfnn-ia64.c:4087
#, c-format
msgid "%pB: linking non-pic code in a position independent executable"
msgstr "%pB: повезујем не-„pic“ код у извршном незавиÑном од положаја"
-#: elf64-ia64-vms.c:3783 elfnn-ia64.c:4223
+#: elf64-ia64-vms.c:3785 elfnn-ia64.c:4225
#, c-format
msgid "%pB: @internal branch to dynamic symbol %s"
msgstr "%pB: „@internal“ грана ка динамичком Ñимболу „%s“"
-#: elf64-ia64-vms.c:3786 elfnn-ia64.c:4226
+#: elf64-ia64-vms.c:3788 elfnn-ia64.c:4228
#, c-format
msgid "%pB: speculation fixup to dynamic symbol %s"
msgstr "%pB: разматрам иÑправку динамичког Ñимбола „%s“"
-#: elf64-ia64-vms.c:3789 elfnn-ia64.c:4229
+#: elf64-ia64-vms.c:3791 elfnn-ia64.c:4231
#, c-format
msgid "%pB: @pcrel relocation against dynamic symbol %s"
msgstr "%pB: „@pcrel“ премештање наÑпрам динамичког Ñимбола „%s“"
-#: elf64-ia64-vms.c:3913 elfnn-ia64.c:4426
+#: elf64-ia64-vms.c:3915 elfnn-ia64.c:4428
msgid "unsupported reloc"
msgstr "неподржано премештање"
-#: elf64-ia64-vms.c:3950 elfnn-ia64.c:4464
+#: elf64-ia64-vms.c:3952 elfnn-ia64.c:4466
#, c-format
msgid "%pB: missing TLS section for relocation %s against `%s' at %#<PRIx64> in section `%pA'."
msgstr "%pB: недоÑтаје „TLS“ одељак за „%s“ премештање наÑпрам „%s“ на %#<PRIx64> у одељку „%pA“."
-#: elf64-ia64-vms.c:3967 elfnn-ia64.c:4481
+#: elf64-ia64-vms.c:3969 elfnn-ia64.c:4483
#, c-format
msgid "%pB: Can't relax br (%s) to `%s' at %#<PRIx64> in section `%pA' with size %#<PRIx64> (> 0x1000000)."
msgstr "%pB: Ðе могу да опуÑтим „br“ (%s) у „%s“ на %#<PRIx64> у одељку „%pA“ Ñа величином %#<PRIx64> (> 0x1000000)."
-#: elf64-ia64-vms.c:4261 elfnn-ia64.c:4740
+#: elf64-ia64-vms.c:4263 elfnn-ia64.c:4742
#, c-format
msgid "%pB: linking trap-on-NULL-dereference with non-trapping files"
msgstr "%pB: повезујем захват-на-ÐИШТÐÐ’ÐОЈ-дереференци Ñа не-захватним датотекама"
-#: elf64-ia64-vms.c:4270 elfnn-ia64.c:4749
+#: elf64-ia64-vms.c:4272 elfnn-ia64.c:4751
#, c-format
msgid "%pB: linking big-endian files with little-endian files"
msgstr "%pB: повезујем датотеке велике крајњоÑти Ñа датотекама мале крајњоÑти"
-#: elf64-ia64-vms.c:4279 elfnn-ia64.c:4758
+#: elf64-ia64-vms.c:4281 elfnn-ia64.c:4760
#, c-format
msgid "%pB: linking 64-bit files with 32-bit files"
msgstr "%pB: повезујем 64-битне датотеке Ñа 32-битним датотекама"
-#: elf64-ia64-vms.c:4288 elfnn-ia64.c:4767
+#: elf64-ia64-vms.c:4290 elfnn-ia64.c:4769
#, c-format
msgid "%pB: linking constant-gp files with non-constant-gp files"
msgstr "%pB: повезујем датотеке „конÑтантног-гп“-а Ñа датотекама „не-конÑтантног-гп“-а"
-#: elf64-ia64-vms.c:4298 elfnn-ia64.c:4777
+#: elf64-ia64-vms.c:4300 elfnn-ia64.c:4779
#, c-format
msgid "%pB: linking auto-pic files with non-auto-pic files"
msgstr "%pB: повезујем датотеке ауто-„pic“-а Ñа датотекама не-ауто-„pic“"
-#: elf64-ia64-vms.c:5148 elflink.c:5491
+#: elf64-ia64-vms.c:5150 elflink.c:5518
#, c-format
msgid "warning: alignment %u of common symbol `%s' in %pB is greater than the alignment (%u) of its section %pA"
msgstr "упозорење: „%u“ поравнање општег Ñимбола „%s“ у „%pB“ је веће од поравнања (%u) његовог одељка „%pA“"
-#: elf64-ia64-vms.c:5155
+#: elf64-ia64-vms.c:5157
#, c-format
msgid "warning: alignment %u of symbol `%s' in %pB is smaller than %u in %pB"
msgstr "упозорење: „%u“ поравнање Ñимбола „%s“ у „%pB“ је мање од „%u“ у „%pB“"
-#: elf64-ia64-vms.c:5171 elflink.c:5520
+#: elf64-ia64-vms.c:5173 elflink.c:5547
#, c-format
msgid "warning: size of symbol `%s' changed from %<PRIu64> in %pB to %<PRIu64> in %pB"
msgstr "упозорење: величина Ñимбола „%s“ је измењена из „%<PRIx64>“ у „%pB“ у „%<PRIx64>“ у „%pB“"
@@ -4459,7 +4489,7 @@ msgstr "%pB: грешка: неколико дефиниција за „%s“;
msgid "register section has contents\n"
msgstr "одељак региÑтра има Ñадржај\n"
-#: elf64-mmix.c:2398
+#: elf64-mmix.c:2399
#, c-format
msgid "internal inconsistency: remaining %lu != max %lu; please report this bug"
msgstr "унутрашња недоÑледноÑÑ‚: преоÑтаје %lu != max %lu; пријавите ову грешку"
@@ -4503,31 +4533,31 @@ msgstr "%pB: „ABI“ издање %ld није ÑаглаÑно Ñа „ABI“
msgid " [abiv%ld]"
msgstr " [abiv%ld]"
-#: elf64-ppc.c:6844
+#: elf64-ppc.c:6845
msgid "%P: copy reloc against `%pT' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n"
msgstr "%P: премештање умножавања наÑпрам „%pT“ захтева лењо „plt“ повезивање; избегавајте подешавање „LD_BIND_NOW=1“ или надоградите гцц\n"
-#: elf64-ppc.c:7111
+#: elf64-ppc.c:7112
#, c-format
msgid "%pB: undefined symbol on R_PPC64_TOCSAVE relocation"
msgstr "%pB: неодређени Ñимбол на „R_PPC64_TOCSAVE“ премештању"
-#: elf64-ppc.c:7362
+#: elf64-ppc.c:7363
#, c-format
msgid "dynreloc miscount for %pB, section %pA"
msgstr "грешка бројања динамичког премештања за „%pB“, одељак „%pA“"
-#: elf64-ppc.c:7453
+#: elf64-ppc.c:7454
#, c-format
msgid "%pB: .opd is not a regular array of opd entries"
msgstr "%pB: „.opd“ није регуларан низ уноÑа операнда"
-#: elf64-ppc.c:7463
+#: elf64-ppc.c:7464
#, c-format
msgid "%pB: unexpected reloc type %u in .opd section"
msgstr "%pB: неочекивана врÑта премештања „%u“ у „.opd“ одељку"
-#: elf64-ppc.c:7485
+#: elf64-ppc.c:7486
#, c-format
msgid "%pB: undefined sym `%s' in .opd section"
msgstr "%pB: неодређени Ñимбол „%s“ у „.opd“ одељку"
@@ -4539,77 +4569,77 @@ msgstr "%pB: неодређени Ñимбол „%s“ у „.opd“ одељк
#. __glink_PLTresolve save of r2 is incompatible with code
#. making tail calls, because the tail call might go via the
#. resolver and thus overwrite the proper saved r2.
-#: elf64-ppc.c:7986
+#: elf64-ppc.c:7987
msgid "warning: --plt-localentry is incompatible with power10 pc-relative code"
msgstr "упозорење: „--plt-localentry“ је неÑаглаÑно Ñа „power10 pc-relative“ кодом"
-#: elf64-ppc.c:7994
+#: elf64-ppc.c:7995
msgid "warning: --plt-localentry is especially dangerous without ld.so support to detect ABI violations"
msgstr "упозорење: „--plt-localentry“ је нарочито опаÑно без „ld.so“ подршке за откривање „ABI“ преÑтупа"
-#: elf64-ppc.c:8310
+#: elf64-ppc.c:8311
msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n"
msgstr "„%H“ „__tls_get_addr“ је изгубио аргумент, ТЛС оптимизација је иÑкључена\n"
-#: elf64-ppc.c:8745 elf64-ppc.c:9461
+#: elf64-ppc.c:8746 elf64-ppc.c:9462
#, c-format
msgid "%s defined on removed toc entry"
msgstr "„%s“ је дефиниÑано на уклоњеном уноÑу табеле Ñадржаја"
-#: elf64-ppc.c:9418
+#: elf64-ppc.c:9419
#, c-format
msgid "%H: %s references optimized away TOC entry\n"
msgstr "%H: „%s“ упућује на оптимизацијом одÑтрањени ÑƒÐ½Ð¾Ñ Ñ‚Ð°Ð±ÐµÐ»Ðµ Ñадржаја\n"
-#: elf64-ppc.c:9639
+#: elf64-ppc.c:9640
#, c-format
msgid "%H: got/toc optimization is not supported for %s instruction\n"
msgstr "%H: оптимизација табеле Ñадржаја није подржана за инÑтрукцију „%s“\n"
-#: elf64-ppc.c:10534
+#: elf64-ppc.c:10536
#, c-format
msgid "warning: discarding dynamic section %s"
msgstr "упозорење: одбацујем динамички одељак „%s“"
-#: elf64-ppc.c:11687
+#: elf64-ppc.c:11692
msgid "%P: cannot find opd entry toc for `%pT'\n"
msgstr "%P: не могу да нађем табелу Ñадржаја уноÑа операнда за „%pT“\n"
-#: elf64-ppc.c:11837
+#: elf64-ppc.c:11842
#, c-format
msgid "long branch stub `%s' offset overflow"
msgstr "прекорачење помераја дугог окрајка гране „%s“"
-#: elf64-ppc.c:11864
+#: elf64-ppc.c:11869
#, c-format
msgid "can't find branch stub `%s'"
msgstr "не могу да нађем окрајак гране „%s“"
-#: elf64-ppc.c:11925 elf64-ppc.c:12177 elf64-ppc.c:14742
+#: elf64-ppc.c:11930 elf64-ppc.c:12182 elf64-ppc.c:14748
#, c-format
msgid "%P: linkage table error against `%pT'\n"
msgstr "%P: грешка табеле повезивања наÑпрам „%pT“\n"
-#: elf64-ppc.c:12376
+#: elf64-ppc.c:12381
#, c-format
msgid "can't build branch stub `%s'"
msgstr "не могу да изградим окрајак гране „%s“"
-#: elf64-ppc.c:13407
+#: elf64-ppc.c:13412
#, c-format
msgid "%pB section %pA exceeds stub group size"
msgstr "„%pB“ одељак „%pA“ превазилази величину групе окрајка"
-#: elf64-ppc.c:14923
+#: elf64-ppc.c:14929
msgid "__tls_get_addr call offset overflow"
msgstr "прекорачење помераја „__tls_get_addr“ позива"
-#: elf64-ppc.c:15263 elf64-ppc.c:15282
+#: elf64-ppc.c:15272 elf64-ppc.c:15291
#, c-format
msgid "%s offset too large for .eh_frame sdata4 encoding"
msgstr "„%s“ померај је превелик за „.eh_frame sdata4“ кодирање"
-#: elf64-ppc.c:15370
+#: elf64-ppc.c:15380
#, c-format
msgid "linker stubs in %u group"
msgid_plural "linker stubs in %u groups"
@@ -4617,7 +4647,7 @@ msgstr[0] "окрајци повезивача у %u групи"
msgstr[1] "окрајци повезивача у %u групе"
msgstr[2] "окрајци повезивача у %u група"
-#: elf64-ppc.c:15377
+#: elf64-ppc.c:15387
#, c-format
msgid ""
"%s, iter %u\n"
@@ -4632,70 +4662,70 @@ msgstr ""
" „plt“ позив %lu\n"
" општи ÑƒÐ½Ð¾Ñ %lu"
-#: elf64-ppc.c:15759
+#: elf64-ppc.c:15769
#, c-format
msgid "%H: %s used with TLS symbol `%pT'\n"
msgstr "%H: „%s“ је коришћено Ñа „TLS“ Ñимболом „%pT“\n"
-#: elf64-ppc.c:15761
+#: elf64-ppc.c:15771
#, c-format
msgid "%H: %s used with non-TLS symbol `%pT'\n"
msgstr "%H: „%s“ је коришћено Ñа не-„TLS“ Ñимболом „%pT“\n"
-#: elf64-ppc.c:16545
+#: elf64-ppc.c:16555
#, c-format
msgid "%H: call to `%pT' lacks nop, can't restore toc; (plt call stub)\n"
msgstr "%H: позиву за „%pT“ недоÑтаје „nop“, не могу да вратим табелу Ñадржаја; (plt call stub)\n"
-#: elf64-ppc.c:16551
+#: elf64-ppc.c:16561
#, c-format
msgid "%H: call to `%pT' lacks nop, can't restore toc; (toc save/adjust stub)\n"
msgstr "%H: позиву за „%pT“ недоÑтаје „nop“, не могу да вратим табелу Ñадржаја; (toc save/adjust stub)\n"
-#: elf64-ppc.c:17202
+#: elf64-ppc.c:17212
#, c-format
msgid "%H: %s against %pT is not supported\n"
msgstr "%H: „%s“ наÑпрам „%pT“ није подржано\n"
-#: elf64-ppc.c:17478
+#: elf64-ppc.c:17488
#, c-format
msgid "%H: %s for indirect function `%pT' unsupported\n"
msgstr "%H: „%s“ за индиректну функцију „%pT“ није подржано\n"
-#: elf64-ppc.c:17565
+#: elf64-ppc.c:17575
#, c-format
msgid "%X%P: %pB: %s against %pT is not supported by glibc as a dynamic relocation\n"
msgstr "%X%P: %pB: „%s“ наÑпрам „%pT“ није подржано „glibc“-ом као динамичко премештање\n"
-#: elf64-ppc.c:17620
+#: elf64-ppc.c:17630
#, c-format
msgid "%P: %pB: %s is not supported for `%pT'\n"
msgstr "%P: %pB: „%s“ није подржано за „%pT“\n"
-#: elf64-ppc.c:17889
+#: elf64-ppc.c:17899
#, c-format
msgid "%H: error: %s not a multiple of %u\n"
msgstr "%H: грешка: „%s“ није производ „%u“\n"
-#: elf64-ppc.c:17912
+#: elf64-ppc.c:17922
#, c-format
msgid "%H: unresolvable %s against `%pT'\n"
msgstr "%H: „%s“ је нерешиво наÑпрам „%pT“\n"
-#: elf64-ppc.c:18057
+#: elf64-ppc.c:18067
#, c-format
msgid "%H: %s against `%pT': error %d\n"
msgstr "%H: „%s“ наÑпрам „%pT“: грешка %d\n"
-#: elf64-s390.c:2490
+#: elf64-s390.c:2752
#, c-format
msgid "%pB: `%s' non-PLT reloc for symbol defined in shared library and accessed from executable (rebuild file with -fPIC ?)"
msgstr "%pB: „%s“ не-„PLT“ премештање за Ñимбол дефиниÑан у дељеној библиотеци и коме је приÑтупљено из извршног (да поново изградим датотеку Ñа „-fPIC“ ?)"
-#: elf64-s390.c:3153
+#: elf64-s390.c:3415
#, c-format
-msgid "%pB(%pA+%#<PRIx64>): misaligned symbol `%s' (%#<PRIx64>) for relocation %s"
-msgstr "%pB(%pA+%#<PRIx64>): лоше поравнат Ñимбол „%s“ (%#<PRIx64>) за премештање „%s“"
+msgid "%pB(%pA+%#<PRIx64>): relocation %s against misaligned symbol `%s' (%#<PRIx64>) in %pB"
+msgstr "%pB(%pA+%#<PRIx64>): премештај за „%s“ лоше поравнат Ñимбол „%s“ (%#<PRIx64>) у „%pB“"
#: elf64-sparc.c:134 elfcode.h:1601
#, c-format
@@ -4727,109 +4757,119 @@ msgstr "Симбол „%s“ има другачије врÑте: „%s“ у
msgid "%pB: linking UltraSPARC specific with HAL specific code"
msgstr "%pB: повезујем код Ñпецифичан „UltraSPARC“-у Ñа кодом Ñпецифичним „HAL“-у"
-#: elf64-x86-64.c:1660
+#: elf64-x86-64.c:1690
msgid "hidden symbol "
msgstr "Ñкривени Ñимбол "
-#: elf64-x86-64.c:1663
+#: elf64-x86-64.c:1693
msgid "internal symbol "
msgstr "унутрашњи Ñимбол "
-#: elf64-x86-64.c:1666 elf64-x86-64.c:1670
+#: elf64-x86-64.c:1696 elf64-x86-64.c:1700
msgid "protected symbol "
msgstr "заштићени Ñимбол "
-#: elf64-x86-64.c:1672
+#: elf64-x86-64.c:1702
msgid "symbol "
msgstr "Ñимбол "
-#: elf64-x86-64.c:1678
+#: elf64-x86-64.c:1708
msgid "undefined "
msgstr "неодређено "
-#: elf64-x86-64.c:1688 elfnn-loongarch.c:892
+#: elf64-x86-64.c:1718 elfnn-loongarch.c:901
msgid "a shared object"
msgstr "дељени објекат"
-#: elf64-x86-64.c:1690
+#: elf64-x86-64.c:1720
msgid "; recompile with -fPIC"
msgstr "; поново преведите Ñа „-fPIC“"
-#: elf64-x86-64.c:1695 elfnn-loongarch.c:898
+#: elf64-x86-64.c:1725 elfnn-loongarch.c:907
msgid "a PIE object"
msgstr "„PIE“ објекат"
-#: elf64-x86-64.c:1697 elfnn-loongarch.c:900
+#: elf64-x86-64.c:1727 elfnn-loongarch.c:909
msgid "a PDE object"
msgstr "„PDE“ објекат"
-#: elf64-x86-64.c:1699
+#: elf64-x86-64.c:1729
msgid "; recompile with -fPIE"
msgstr "; поново преведите Ñа „-fPIE“"
-#: elf64-x86-64.c:1703
+#: elf64-x86-64.c:1733
#, c-format
msgid "%pB: relocation %s against %s%s`%s' can not be used when making %s%s"
msgstr "%pB: премештање „%s“ наÑпрам „%s%s“ „%s“ Ñе не може кориÑтити приликом Ñтварања „%s%s“"
-#: elf64-x86-64.c:2239
+#: elf64-x86-64.c:2566
+#, c-format
+msgid "%pB: bad reloc offset (%#<PRIx64> > %#<PRIx64>) for section `%pA'"
+msgstr "%pB: лош померај премештања (%#<PRIx64> >= %#<PRIx64>) за одељак „%pA“"
+
+#: elf64-x86-64.c:2630
#, c-format
msgid "%pB: relocation %s against symbol `%s' isn't supported in x32 mode"
msgstr "%pB: „%s“ премештање наÑпрам Ñимбола „%s“ није подржано у режиму x32"
-#: elf64-x86-64.c:2394
+#: elf64-x86-64.c:2791
#, c-format
msgid "%pB: '%s' accessed both as normal and thread local symbol"
msgstr "%pB: „%s“ Ñе приÑтупило и као нормалном и као Ñимболу локалне нити"
-#: elf64-x86-64.c:2652
+#: elf64-x86-64.c:3046
#, c-format
msgid "%pB: unsupported relocation %s against symbol `%s'"
msgstr "%pB: неподржан премештај „%s “ за Ñимбол „%s“"
-#: elf64-x86-64.c:3076 elfnn-aarch64.c:5766 elfnn-riscv.c:2374
+#: elf64-x86-64.c:3472 elfnn-aarch64.c:5784 elfnn-riscv.c:2572
#, c-format
msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %<PRId64>"
msgstr "%pB: премештање „%s“ наÑпрам „STT_GNU_IFUNC“ Ñимбола „%s“ има не-нулти Ñабирак: %<PRId64>"
-#: elf64-x86-64.c:3339
+#: elf64-x86-64.c:3741
#, c-format
msgid "%pB: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used when making a shared object"
msgstr "%pB: премештање „R_X86_64_GOTOFF64“ наÑпрам недефиниÑаног %s „%s“ Ñе не може кориÑтити када Ñе Ñтвара дељени објекат"
-#: elf64-x86-64.c:3353
+#: elf64-x86-64.c:3755
#, c-format
msgid "%pB: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used when making a shared object"
msgstr "%pB: премештање „R_X86_64_GOTOFF64“ наÑпрам заштићеног %s „%s“ Ñе не може кориÑтити када Ñе Ñтвара дељени објекат"
-#: elf64-x86-64.c:3643
+#: elf64-x86-64.c:4045
#, c-format
msgid "%pB: addend %s%#x in relocation %s against symbol `%s' at %#<PRIx64> in section `%pA' is out of range"
msgstr "%pB: Ñабирак %s%#x у премештању „%s“ наÑпрам Ñимбола „%s“ на %#<PRIx64> у одељку „%pA“ је ван опÑега"
-#: elf64-x86-64.c:3794 elflink.c:14005
-msgid "%F%P: corrupt input: %pB\n"
-msgstr "%F%P: оштећени уноÑ: %pB\n"
+#: elf64-x86-64.c:4197
+msgid "%P: corrupt input: %pB\n"
+msgstr "%P: оштећени уноÑ: %pB\n"
-#: elf64-x86-64.c:4605
+#: elf64-x86-64.c:5066
#, c-format
msgid " failed to convert GOTPCREL relocation against '%s'; relink with --no-relax\n"
msgstr " ниÑам уÑпео да претворим „GOTPCREL“ премештање за „%s“; поново повежите Ñа „--no-relax“\n"
-#: elf64-x86-64.c:4764
+#: elf64-x86-64.c:5225
+#, c-format
+msgid "%pB: PC-relative offset overflow in PLT entry for `%s'\n"
+msgstr "%pB: прекорачење „PC“-одноÑног помераја у „PLT“ уноÑу за „%s“\n"
+
+#: elf64-x86-64.c:5301
#, c-format
-msgid "%F%pB: PC-relative offset overflow in PLT entry for `%s'\n"
-msgstr "%F%pB: прекорачење „PC“-одноÑног помераја у „PLT“ уноÑу за „%s“\n"
+msgid "%pB: branch displacement overflow in PLT entry for `%s'\n"
+msgstr "%pB: прекорачење размештаја гране у „PLT“ уноÑу за „%s“\n"
-#: elf64-x86-64.c:4837
+#: elf64-x86-64.c:5354
#, c-format
-msgid "%F%pB: branch displacement overflow in PLT entry for `%s'\n"
-msgstr "%F%pB: прекорачење размештаја гране у „PLT“ уноÑу за „%s“\n"
+msgid "%pB: PC-relative offset overflow in GOT PLT entry for `%s'\n"
+msgstr "%pB: прекорачење „PC“-одноÑног помераја у „GOT PLT“ уноÑу за „%s“\n"
-#: elf64-x86-64.c:4890
+#: elf64-x86-64.c:5505
#, c-format
-msgid "%F%pB: PC-relative offset overflow in GOT PLT entry for `%s'\n"
-msgstr "%F%pB: прекорачење „PC“-одноÑног помераја у „GOT PLT“ уноÑу за „%s“\n"
+msgid "%pB: Unable to generate dynamic relocs because a suitable section does not exist\n"
+msgstr "%pB: Ðе могу да Ñтворим динамичке премештаје јер одговарајући одељак не поÑтоји\n"
#: elfcode.h:342
#, c-format
@@ -4861,338 +4901,343 @@ msgstr "%pB: број издања (%<PRId64>) не одговара броју
msgid "warning: %pB has a segment extending past end of file"
msgstr "упозорење: „%pB“ има подеок који Ñе шири преко краја датотеке"
-#: elflink.c:1438
+#: elflink.c:1477
#, c-format
msgid "%s: TLS definition in %pB section %pA mismatches non-TLS definition in %pB section %pA"
msgstr "%s: „TLS“ дефиниција у „%pB“ одељак „%pA“ не одговара не-„TLS“ дефиницији у „%pB“ одељак „%pA“"
-#: elflink.c:1444
+#: elflink.c:1483
#, c-format
msgid "%s: TLS reference in %pB mismatches non-TLS reference in %pB"
msgstr "%s: „TLS“ упута у „%pB“ не одговара не-„TLS“ упути у „%pB“"
-#: elflink.c:1450
+#: elflink.c:1489
#, c-format
msgid "%s: TLS definition in %pB section %pA mismatches non-TLS reference in %pB"
msgstr "%s: „TLS“ дефиниција у „%pB“ одељак „%pA“ не одговара не-„TLS“ упути у „%pB“"
-#: elflink.c:1456
+#: elflink.c:1495
#, c-format
msgid "%s: TLS reference in %pB mismatches non-TLS definition in %pB section %pA"
msgstr "%s: „TLS“ упута у „%pB“ не одговара не-„TLS“ дефиницији у „%pB“ одељак „%pA“"
-#: elflink.c:2168
+#: elflink.c:2207
#, c-format
msgid "%pB: unexpected redefinition of indirect versioned symbol `%s'"
msgstr "%pB: неочекивано поновно дефиниÑање индиректно верзиониÑаног Ñимбола „%s“"
-#: elflink.c:2681
+#: elflink.c:2720
#, c-format
msgid "%pB: version node not found for symbol %s"
msgstr "%pB: ниÑам нашао чвор издања за Ñимбол „%s“"
-#: elflink.c:2780
+#: elflink.c:2819
#, c-format
msgid "%pB: bad reloc symbol index (%#<PRIx64> >= %#lx) for offset %#<PRIx64> in section `%pA'"
msgstr "%pB: лош Ð¸Ð½Ð´ÐµÐºÑ Ñимбола премештања (%#<PRIx64> >= %#lx) за померај %#<PRIx64> у одељку „%pA“"
-#: elflink.c:2792
+#: elflink.c:2831
#, c-format
msgid "%pB: non-zero symbol index (%#<PRIx64>) for offset %#<PRIx64> in section `%pA' when the object file has no symbol table"
msgstr "%pB: не-нулти Ð¸Ð½Ð´ÐµÐºÑ Ñимбола (%#<PRIx64>) за померај %#<PRIx64> у одељку „%pA“ када датотека објекта нема табелу Ñимбола"
-#: elflink.c:2989
+#: elflink.c:3017
#, c-format
msgid "%pB: relocation size mismatch in %pB section %pA"
msgstr "%pB: величина премештања не одговара у „%pB“ одељак „%pA“"
-#: elflink.c:3322
+#: elflink.c:3350
#, c-format
msgid "warning: type and size of dynamic symbol `%s' are not defined"
msgstr "упозорење: врÑта и величина динамичког Ñимбола „%s“ ниÑу дефиниÑане"
-#: elflink.c:3382
+#: elflink.c:3407
msgid "%P: copy reloc against protected `%pT' is dangerous\n"
msgstr "%P: умножи премештање наÑпрам заштићеног „%pT“ је опаÑно\n"
-#: elflink.c:4338
-msgid "%F%P: %pB: failed to add %s to first hash\n"
-msgstr "%F%P: %pB: ниÑам уÑпео да додам „%s“ у први хеш\n"
+#: elflink.c:4363
+msgid "%P: %pB: failed to add %s to first hash\n"
+msgstr "%P: %pB: ниÑам уÑпео да додам „%s“ у први хеш\n"
-#: elflink.c:4406
-msgid "%F%P: first_hash failed to create: %E\n"
-msgstr "%F%P: „first_hash“ није уÑпео да Ñе направи: %E\n"
+#: elflink.c:4431
+msgid "%P: first_hash failed to create: %E\n"
+msgstr "%P: „first_hash“ није уÑпео да Ñе направи: %E\n"
-#: elflink.c:4437
+#: elflink.c:4462
#, c-format
msgid "alternate ELF machine code found (%d) in %pB, expecting %d"
msgstr "нађох измењени „ELF“ машинÑки код (%d) у „%pB“, очекивах „%d“"
-#: elflink.c:4920
+#: elflink.c:4945
#, c-format
msgid "%pB: invalid version offset %lx (max %lx)"
msgstr "%pB: неиÑправан померај издања %lx (најв. %lx)"
-#: elflink.c:4989
+#: elflink.c:5015
#, c-format
msgid "%pB: %s local symbol at index %lu (>= sh_info of %lu)"
msgstr "%pB: „%s“ локални Ñимбол у индекÑу %lu (>= sh_info %lu)"
-#: elflink.c:5137
+#: elflink.c:5164
#, c-format
msgid "%pB: not enough version information"
msgstr "%pB: нема довољно података о издању"
-#: elflink.c:5175
+#: elflink.c:5202
#, c-format
msgid "%pB: %s: invalid version %u (max %d)"
msgstr "%pB: %s: неиÑправно издање %u (најв. %d)"
-#: elflink.c:5212
+#: elflink.c:5239
#, c-format
msgid "%pB: %s: invalid needed version %d"
msgstr "%pB: %s: неиÑправно потребно издање %d"
-#: elflink.c:5498
+#: elflink.c:5525
#, c-format
msgid "warning: alignment %u of normal symbol `%s' in %pB is smaller than %u used by the common definition in %pB"
msgstr "упозорење: „%u“ поравнање обичног Ñимбола „%s“ у „%pB“ је мање од „%u“ коришћеног општом дефиницијом у „%pB“"
-#: elflink.c:5505
+#: elflink.c:5532
msgid "warning: NOTE: alignment discrepancies can cause real problems. Investigation is advised."
msgstr "уозорење: ÐÐПОМЕÐÐ: неподударноÑти поравнања могу довеÑти до озбиљних проблема. ИÑпитивање Ñе препоручује."
-#: elflink.c:5527
+#: elflink.c:5554
msgid "warning: NOTE: size discrepancies can cause real problems. Investigation is advised."
msgstr "уозорење: ÐÐПОМЕÐÐ: неподударноÑти величине могу довеÑти до озбиљних проблема. ИÑпитивање Ñе препоручује."
-#: elflink.c:5670
+#: elflink.c:5697
#, c-format
msgid "%pB: undefined reference to symbol '%s'"
msgstr "%pB: недефиниÑана упута ка Ñимболу „%s“"
-#: elflink.c:6759
+#: elflink.c:6812
#, c-format
msgid "%pB: stack size specified and %s set"
msgstr "%pB: величина Ñпремника је наведена и „%s“ подешена"
-#: elflink.c:6763
+#: elflink.c:6816
#, c-format
msgid "%pB: %s not absolute"
msgstr "%pB: „%s“ није апÑолутно"
-#: elflink.c:6975
+#: elflink.c:7028
#, c-format
msgid "%s: undefined version: %s"
msgstr "%s: недефиниÑано издање: %s"
-#: elflink.c:7364
+#: elflink.c:7419
msgid "error: creating an executable stack because of -z execstack command line option"
msgstr "грешка: Ñтварам извршиви Ñпремник због „-z execstack“ опције линије наредби"
-#: elflink.c:7370
+#: elflink.c:7425
msgid "warning: enabling an executable stack because of -z execstack command line option"
msgstr "упозорење: укључујем извршиви Ñпремник због „-z execstack“ опције линије наредби"
-#: elflink.c:7432
+#: elflink.c:7487
#, c-format
msgid "error: %s: is triggering the generation of an executable stack (because it has an executable .note.GNU-stack section)"
msgstr "грешка: %s: окида Ñтварање извршног Ñпремника (јер има извршив „.note.GNU-stack“ одељак)"
-#: elflink.c:7438
+#: elflink.c:7493
#, c-format
msgid "warning: %s: requires executable stack (because the .note.GNU-stack section is executable)"
msgstr "упозорење: %s: захтева извршни Ñпремник (јер је одељак „.note.GNU-stack“ извршив)"
-#: elflink.c:7446
+#: elflink.c:7501
#, c-format
msgid "error: %s: is triggering the generation of an executable stack because it does not have a .note.GNU-stack section"
msgstr "грешка: %s: окида Ñтварање извршног Ñпремника јер нема „.note.GNU-stack“ одељак"
-#: elflink.c:7452
+#: elflink.c:7507
#, c-format
msgid "warning: %s: missing .note.GNU-stack section implies executable stack"
msgstr "упозорење: %s: недоÑтајући одељак „.note.GNU-stack“ подразумева извршни Ñпремник"
-#: elflink.c:7455
+#: elflink.c:7510
msgid "NOTE: This behaviour is deprecated and will be removed in a future version of the linker"
msgstr "ÐÐПОМЕÐÐ: Ово понашање је заÑтарело и биће уклоњено у будућем издању повезивача"
-#: elflink.c:7609
+#: elflink.c:7664
#, c-format
msgid "%pB: .preinit_array section is not allowed in DSO"
msgstr "%pB: одељак „.preinit_array“ није дозвољен у „DSO“-у"
-#: elflink.c:9218
+#: elflink.c:9284
#, c-format
msgid "undefined %s reference in complex symbol: %s"
msgstr "недефиниÑана „%s“ упута у Ñложеном Ñимболу: %s"
-#: elflink.c:9381 elflink.c:9389
+#: elflink.c:9447 elflink.c:9455
msgid "division by zero"
msgstr "дељење нулом"
-#: elflink.c:9403
+#: elflink.c:9469
#, c-format
msgid "unknown operator '%c' in complex symbol"
msgstr "непознат оператор „%c“ у Ñложеном Ñимболу"
#. PR 21524: Let the user know if a symbol was removed by garbage collection.
-#: elflink.c:9739
+#: elflink.c:9805
#, c-format
msgid "%pB:%pA: error: relocation references symbol %s which was removed by garbage collection"
msgstr "%pB:%pA: грешка: Ñимбол упута премештања „%s“ који је уклоњен Ñкупљањем отпада"
-#: elflink.c:9742
+#: elflink.c:9808
#, c-format
msgid "%pB:%pA: error: try relinking with --gc-keep-exported enabled"
msgstr "%pB:%pA: грешка: покушајте поновно повезивање Ñа укљученим „--gc-keep-exported“"
-#: elflink.c:9993 elflink.c:10011 elflink.c:10050 elflink.c:10068
+#: elflink.c:10059 elflink.c:10077 elflink.c:10116 elflink.c:10134
#, c-format
msgid "%pB: unable to sort relocs - they are in more than one size"
msgstr "%pB: не могу да поређам премештања — имају више од једне величине"
#. The section size is not divisible by either -
#. something is wrong.
-#: elflink.c:10027 elflink.c:10084
+#: elflink.c:10093 elflink.c:10150
#, c-format
msgid "%pB: unable to sort relocs - they are of an unknown size"
msgstr "%pB: не могу да поређам премештања — непознате Ñу величине"
-#: elflink.c:10136
+#: elflink.c:10202
msgid "not enough memory to sort relocations"
msgstr "нема довољно меморије за ређање премештања"
-#: elflink.c:10470
+#: elflink.c:10536
#, c-format
msgid "%pB: too many sections: %d (>= %d)"
msgstr "%pB: превише одељака: %d (>= %d)"
-#: elflink.c:10746
+#: elflink.c:10812
#, c-format
msgid "%pB: internal symbol `%s' in %pB is referenced by DSO"
msgstr "%pB: на унутрашњи Ñимбол „%s“ у „%pB“ упућује „DSO“"
-#: elflink.c:10749
+#: elflink.c:10815
#, c-format
msgid "%pB: hidden symbol `%s' in %pB is referenced by DSO"
msgstr "%pB: на Ñкривени Ñимбол „%s“ у „%pB“ упућује „DSO“"
-#: elflink.c:10752
+#: elflink.c:10818
#, c-format
msgid "%pB: local symbol `%s' in %pB is referenced by DSO"
msgstr "%pB: на локални Ñимбол „%s“ у „%pB“ упућује „DSO“"
-#: elflink.c:10845
+#: elflink.c:10911
#, c-format
msgid "%pB: could not find output section %pA for input section %pA"
msgstr "%pB: не могу да нађем излазни одељак „%pA“ за улазни одељак „%pA“"
-#: elflink.c:11003
+#: elflink.c:11069
#, c-format
msgid "%pB: protected symbol `%s' isn't defined"
msgstr "%pB: заштићени Ñимбол „%s“ није дефиниÑан"
-#: elflink.c:11006
+#: elflink.c:11072
#, c-format
msgid "%pB: internal symbol `%s' isn't defined"
msgstr "%pB: унутрашњи Ñимбол „%s“ није дефиниÑан"
-#: elflink.c:11009
+#: elflink.c:11075
#, c-format
msgid "%pB: hidden symbol `%s' isn't defined"
msgstr "%pB: Ñкривени Ñимбол „%s“ није дефиниÑан"
-#: elflink.c:11041
+#: elflink.c:11107
#, c-format
msgid "%pB: no symbol version section for versioned symbol `%s'"
msgstr "%pB: нема одељка издања Ñимбола за верзиониÑани Ñимбол „%s“"
-#: elflink.c:11723
+#: elflink.c:11649
#, c-format
-msgid "error: %pB contains a reloc (%#<PRIx64>) for section %pA that references a non-existent global symbol"
+msgid "error: %pB: unable to create group section symbol"
+msgstr "грешка: %pB: не могу да направим Ñимбол групе одељка"
+
+#: elflink.c:11798
+#, c-format
+msgid "error: %pB contains a reloc (%#<PRIx64>) for section '%pA' that references a non-existent global symbol"
msgstr "грешка: „%pB“ Ñадржи премештање (%#<PRIx64>) за одељак „%pA“ који упућује на не-поÑтојећи општи Ñимбол"
-#: elflink.c:12193
+#: elflink.c:12264
#, c-format
msgid "error: %pB: size of section %pA is not multiple of address size"
msgstr "грешка: %pB: величина одељка „%pA“ није производ величине адреÑе"
-#: elflink.c:12473
+#: elflink.c:12544
#, c-format
msgid "%pB: no symbol found for import library"
msgstr "%pB: ниÑам нашао никакав Ñимбол за увозну библиотеку"
-#: elflink.c:13078
-msgid "%F%P: %pB: failed to finish relative relocations\n"
-msgstr "%F%P: %pB: ниÑам уÑпео да довршим релативна премештања\n"
+#: elflink.c:13150
+msgid "%P: %pB: failed to finish relative relocations\n"
+msgstr "%P: %pB: ниÑам уÑпео да довршим релативна премештања\n"
-#: elflink.c:13155
+#: elflink.c:13227
#, c-format
msgid "%pB: file class %s incompatible with %s"
msgstr "%pB: клаÑа датотеке „%s“ није ÑаглаÑна Ñа „%s“"
-#: elflink.c:13377
+#: elflink.c:13449
#, c-format
msgid "%pB: failed to generate import library"
msgstr "%pB: ниÑам уÑпео да направим увозну библиотеку"
-#: elflink.c:13538
+#: elflink.c:13610
#, c-format
msgid "warning: %s section has zero size"
msgstr "упозорење: одељак „%s“ је нулте величине"
-#: elflink.c:13586
+#: elflink.c:13658
#, c-format
msgid "warning: section '%s' is being made into a note"
msgstr "упозорење: одељак „%s“ је претворен у белешку"
-#: elflink.c:13680
+#: elflink.c:13752
msgid "%P%X: read-only segment has dynamic relocations\n"
msgstr "%P%X: одељак Ñамо за читање има динамичка премештања\n"
-#: elflink.c:13683
+#: elflink.c:13755
msgid "%P: warning: creating DT_TEXTREL in a shared object\n"
msgstr "%P: упозорење: Ñтварам „DT_TEXTREL“ у дељеном објекту\n"
-#: elflink.c:13686
+#: elflink.c:13758
msgid "%P: warning: creating DT_TEXTREL in a PDE\n"
msgstr "%P: упозорење: Ñтварам „DT_TEXTREL“ у „PDE“\n"
-#: elflink.c:13689
+#: elflink.c:13761
msgid "%P: warning: creating DT_TEXTREL in a PIE\n"
msgstr "%P: упозорење: Ñтварам „DT_TEXTREL“ у „PIE“\n"
-#: elflink.c:13825
+#: elflink.c:13890
msgid "%P%X: can not read symbols: %E\n"
msgstr "%P%X: не може да чита Ñимболе: %E\n"
-#: elflink.c:14258
-msgid "%F%P: %pB(%pA): error: need linked-to section for --gc-sections\n"
-msgstr "%F%P: %pB(%pA): грешка: потребан је повезан-на одељак за „--gc-sections“\n"
+#: elflink.c:14312
+msgid "%P: %pB(%pA): error: need linked-to section for --gc-sections\n"
+msgstr "%P: %pB(%pA): грешка: потребан је повезан-на одељак за „--gc-sections“\n"
-#: elflink.c:14738
+#: elflink.c:14793
#, c-format
msgid "%pB: %pA+%#<PRIx64>: no symbol found for INHERIT"
msgstr "%pB: %pA+%#<PRIx64>: ниÑам нашао никакав Ñимбол за „INHERIT“"
-#: elflink.c:14779
+#: elflink.c:14834
#, c-format
msgid "%pB: section '%pA': corrupt VTENTRY entry"
msgstr "%pB: одељак „%pA“: оштећен „VTENTRY“ уноÑ"
-#: elflink.c:14922
+#: elflink.c:14977
#, c-format
msgid "unrecognized INPUT_SECTION_FLAG %s\n"
msgstr "непознато „INPUT_SECTION_FLAG %s“\n"
-#: elflink.c:15703
+#: elflink.c:15758
#, c-format
msgid "%P: %pB: warning: relocation against `%s' in read-only section `%pA'\n"
msgstr "%P: %pB: упозорење: премештање наÑпрам „%s“ у одељку „%pA“ који је Ñамо за читање\n"
-#: elflink.c:15792
+#: elflink.c:15847
msgid "%P: warning: GNU indirect functions with DT_TEXTREL may result in a segfault at runtime; recompile with %s\n"
msgstr "%P: упозорење: ГÐУ-ове индиректне функције Ñа „DT_TEXTREL“ могу резултирати неуÑпехом Ñегментације у време извршавања; поново преведите Ñа „%s“\n"
@@ -5201,67 +5246,67 @@ msgstr "%P: упозорење: ГÐУ-ове индиректне функциÑ
msgid "%pB: warning: Weak TLS is implementation defined and may not work as expected"
msgstr "%pB: упозорење: Ñлабо „TLS“ је дефиниÑана примена и можда неће радити као што Ñе очекује"
-#: elfxx-aarch64.c:773
+#: elfxx-aarch64.c:786
#, c-format
msgid "%Xerror: found a total of %d inputs incompatible with BTI requirements.\n"
msgstr "%Xгрешка: нађох укупно %d улаза неÑаглаÑна Ñа BTI захтевима.\n"
-#: elfxx-aarch64.c:775
+#: elfxx-aarch64.c:788
#, c-format
msgid "warning: found a total of %d inputs incompatible with BTI requirements.\n"
msgstr "упозорење: нађох укупно %d улаза неÑаглаÑна Ñа BTI захтевима.\n"
-#: elfxx-aarch64.c:785
+#: elfxx-aarch64.c:798
#, c-format
msgid "%Xerror: found a total of %d inputs incompatible with GCS requirements.\n"
msgstr "%Xгрешка: нађох укупно %d улаза неÑаглаÑна Ñа GCS захтевима.\n"
-#: elfxx-aarch64.c:787
+#: elfxx-aarch64.c:800
#, c-format
msgid "warning: found a total of %d inputs incompatible with GCS requirements.\n"
msgstr "упозорење: нађох укупно %d улаза неÑаглаÑна Ñа GCS захтевима.\n"
-#: elfxx-aarch64.c:797
+#: elfxx-aarch64.c:810
#, c-format
msgid "%Xerror: found a total of %d dynamically-linked objects incompatible with GCS requirements.\n"
msgstr "%Xгрешка: нађох укупно %d динамички повезана објекта неÑаглаÑна Ñа GCS захтевима.\n"
-#: elfxx-aarch64.c:799
+#: elfxx-aarch64.c:812
#, c-format
msgid "warning: found a total of %d dynamically-linked objects incompatible with GCS requirements.\n"
msgstr "упозорење: нађох укупно %d динамички повезана објекта неÑаглаÑна Ñа GCS захтевима.\n"
-#: elfxx-aarch64.c:960
+#: elfxx-aarch64.c:971
#, c-format
msgid "error: %pB: <corrupt AArch64 used size: 0x%x>"
msgstr "грешка: %pB: <оштећена „AArch64“ коришћена величина: 0x%x>"
-#: elfxx-aarch64.c:1104
+#: elfxx-aarch64.c:1115
#, c-format
msgid "%pB: warning: BTI is required by -z force-bti, but this input object file lacks the necessary property note.\n"
msgstr "%pB: упозорење: BTI Ñе захтева од Ñтране „-z force-bti“, али овој датотеци улазног објекта недоÑтаје неопходна напомена ÑвојÑтва.\n"
-#: elfxx-aarch64.c:1106
+#: elfxx-aarch64.c:1117
#, c-format
msgid "%X%pB: error: BTI is required by -z force-bti, but this input object file lacks the necessary property note.\n"
msgstr "%X%pB: грешка: BTI Ñе захтева од Ñтране „-z force-bti“, али тој датотеци улазног објекта недоÑтаје неопходна напомена ÑвојÑтва.\n"
-#: elfxx-aarch64.c:1138
+#: elfxx-aarch64.c:1149
#, c-format
msgid "%pB: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking.\n"
msgstr "%pB: упозорење: GCS Ñе захтева од Ñтране „-z gcs“, али тој дељеној библиотеци недоÑтаје неопходна напомена ÑвојÑтва. Динамички учитавач неће моћ да омогући GCS или ће одбити да учита програм оÑим ако Ñве завиÑноÑти дељене библиотеке не буду имале GCS означавање.\n"
-#: elfxx-aarch64.c:1142
+#: elfxx-aarch64.c:1153
#, c-format
msgid "%X%pB: error: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking.\n"
msgstr "%X%pB: грешка: GCS Ñе захтева од Ñтране „-z gcs“, али тој дељеној библиотеци недоÑтаје неопходна напомена ÑвојÑтва. Динамички учитавач неће моћи да омогући GCS или ће одбити да учита програм оÑим ако Ñве завиÑноÑти дељене библиотеке не буду имале GCS означавање.\n"
-#: elfxx-aarch64.c:1148
+#: elfxx-aarch64.c:1159
#, c-format
msgid "%pB: warning: GCS is required by -z gcs, but this input object file lacks the necessary property note.\n"
msgstr "%pB: упозорење: GCS Ñе захтева од Ñтране „-z gcs“, али тој датотеци улазног објекта недоÑтаје напомена ÑвојÑтва.\n"
-#: elfxx-aarch64.c:1150
+#: elfxx-aarch64.c:1161
#, c-format
msgid "%X%pB: error: GCS is required by -z gcs, but this input object file lacks the necessary property note.\n"
msgstr "%X%pB: грешка: GCS Ñе захтева од Ñтране „-z gcs“, али тој датотеци улазног објекта недоÑтаје неопходна напомена ÑвојÑтва.\n"
@@ -5290,777 +5335,820 @@ msgstr "%pB: премештање „%s“ препуњава 0x%lx"
msgid "static procedure (no name)"
msgstr "Ñтатички поÑтупак (без назива)"
-#: elfxx-mips.c:5849
+#: elfxx-mips.c:5895
msgid "MIPS16 and microMIPS functions cannot call each other"
msgstr "Функције „MIPS16“ и „microMIPS“ не могу да позивају једна другу"
-#: elfxx-mips.c:6619
+#: elfxx-mips.c:6665
msgid "%X%H: unsupported JALX to the same ISA mode\n"
msgstr "%X%H: неподржано „JALX“ у иÑтом ISA режиму\n"
-#: elfxx-mips.c:6652
+#: elfxx-mips.c:6698
msgid "%X%H: unsupported jump between ISA modes; consider recompiling with interlinking enabled\n"
msgstr "%X%H: неподржан Ñкок између ISA режима; размотрите поновно превођење Ñа укљученим међуповезивањем\n"
-#: elfxx-mips.c:6697
+#: elfxx-mips.c:6743
msgid "%X%H: cannot convert branch between ISA modes to JALX: relocation out of range\n"
msgstr "%X%H: не могу да претворим гране између ISA режима у „JALX“: премештање је ван опÑега\n"
-#: elfxx-mips.c:6709
+#: elfxx-mips.c:6755
msgid "%X%H: unsupported branch between ISA modes\n"
msgstr "%X%H: неподржана грана између ISA режима\n"
-#: elfxx-mips.c:7355
+#: elfxx-mips.c:7401
#, c-format
msgid "%pB: incorrect `.reginfo' section size; expected %<PRIu64>, got %<PRIu64>"
msgstr "%pB: нетачна величина „.reginfo“ одељка; очекивах %<PRIu64>, али добих %<PRIu64>"
-#: elfxx-mips.c:7399
+#: elfxx-mips.c:7445
#, c-format
msgid "%pB: warning: bad `%s' option size %u smaller than its header"
msgstr "%pB: упозорење: лоша величина опције „%s“ %u мања од заглавља"
-#: elfxx-mips.c:7635
+#: elfxx-mips.c:7681
#, c-format
msgid "%pB: warning: truncated `%s' option"
msgstr "%pB: упозорење: Ñкраћена опција „%s“"
-#: elfxx-mips.c:8453 elfxx-mips.c:8579
+#: elfxx-mips.c:8533 elfxx-mips.c:8659
#, c-format
msgid "%pB: warning: cannot determine the target function for stub section `%s'"
msgstr "%pB: упозорење: не могу да одредим циљну функцију за одељак окрајка „%s“"
-#: elfxx-mips.c:8711
+#: elfxx-mips.c:8791
#, c-format
msgid "%pB: malformed reloc detected for section %s"
msgstr "%pB: откривено је лоше премештање за одељак „%s“"
-#: elfxx-mips.c:8811
+#: elfxx-mips.c:8891
#, c-format
msgid "%pB: GOT reloc at %#<PRIx64> not expected in executables"
msgstr "%pB: „GOT“ премештање на %#<PRIx64> није очекивано у извршним"
-#: elfxx-mips.c:8951
+#: elfxx-mips.c:9031
#, c-format
msgid "%pB: CALL16 reloc at %#<PRIx64> not against global symbol"
msgstr "%pB: „CALL16“ премештање на %#<PRIx64> није наÑпрам општег Ñимбола"
-#: elfxx-mips.c:9254
+#: elfxx-mips.c:9334
#, c-format
msgid "%X%H: relocation %s against `%s' cannot be used when making a shared object; recompile with -fPIC\n"
msgstr "%X%H: премештање „%s“ наÑпрам „%s“ Ñе не може кориÑтити приликом Ñтварања дељеног објекта; поново преведите Ñа „-fPIC“\n"
-#: elfxx-mips.c:9380
+#: elfxx-mips.c:9460
#, c-format
msgid "IFUNC symbol %s in dynamic symbol table - IFUNCS are not supported"
msgstr "„IFUNC„ Ñимбол „%s“ у табели динамичког Ñимбола – „IFUNCS“ ниÑу подржане"
-#: elfxx-mips.c:9383
+#: elfxx-mips.c:9463
#, c-format
msgid "non-dynamic symbol %s in dynamic symbol table"
msgstr "не-динамички Ñимбол „%s“ у табели динамичког Ñимбола"
-#: elfxx-mips.c:9603
+#: elfxx-mips.c:9683
#, c-format
msgid "non-dynamic relocations refer to dynamic symbol %s"
msgstr "не-динамичка премештања упућују на динамички Ñимбол „%s“"
-#: elfxx-mips.c:10523
+#: elfxx-mips.c:10606
#, c-format
msgid "%pB: can't find matching LO16 reloc against `%s' for %s at %#<PRIx64> in section `%pA'"
msgstr "%pB: не могу да нађем упоређујуће „LO16“ премештање наÑпрам „%s“ за „%s“ на %#<PRIx64> у одељку „%pA“"
-#: elfxx-mips.c:10663
+#: elfxx-mips.c:10748
msgid "small-data section too large; lower small-data size limit (see option -G)"
msgstr "одељак малих података је превелик; доња граница величине малих података (видите опцију „-G“)"
-#: elfxx-mips.c:10682
+#: elfxx-mips.c:10767
msgid "cannot convert a jump to JALX for a non-word-aligned address"
msgstr "не могу да претворим Ñкок у „JALX“ за адреÑу поравнату не-речју"
-#: elfxx-mips.c:10685
+#: elfxx-mips.c:10770
msgid "jump to a non-word-aligned address"
msgstr "Ñкок на адреÑу поравнату не-речју"
-#: elfxx-mips.c:10686
+#: elfxx-mips.c:10771
msgid "jump to a non-instruction-aligned address"
msgstr "Ñкок на адреÑу поравнату не-инÑтрукцијом"
-#: elfxx-mips.c:10689
+#: elfxx-mips.c:10774
msgid "cannot convert a branch to JALX for a non-word-aligned address"
msgstr "не могу да претворим грану у „JALX“ за адреÑу поравнату не-речју"
-#: elfxx-mips.c:10691
+#: elfxx-mips.c:10776
msgid "branch to a non-instruction-aligned address"
msgstr "грана на адреÑу поравнату не-инÑтрукцијом"
-#: elfxx-mips.c:10693
+#: elfxx-mips.c:10778
msgid "PC-relative load from unaligned address"
msgstr "„PC“-одноÑни утовар из непоравнате адреÑе"
-#: elfxx-mips.c:10993
+#: elfxx-mips.c:11078
#, c-format
msgid "%pB: `%pA' entry VMA of %#<PRIx64> outside the 32-bit range supported; consider using `-Ttext-segment=...'"
msgstr "%pB: „%pA“ ÑƒÐ½Ð¾Ñ â€žVMA“ од %#<PRIx64> ван 32-битног опÑега је подржано; кориÑтите „-Ttext-segment=...“"
-#: elfxx-mips.c:11108 elfxx-mips.c:11701
+#: elfxx-mips.c:11193 elfxx-mips.c:11786
#, c-format
msgid "%pB: `%pA' offset of %<PRId64> from `%pA' beyond the range of ADDIUPC"
msgstr "%pB: „%pA“ померај %<PRId64> из „%pA“ иза опÑега „ADDIUPC“"
-#: elfxx-mips.c:11673
+#: elfxx-mips.c:11758
#, c-format
msgid "%pB: `%pA' start VMA of %#<PRIx64> outside the 32-bit range supported; consider using `-Ttext-segment=...'"
msgstr "%pB: „%pA“ почетак „VMA“ од %#<PRIx64> ван 32-битног опÑега је подржано; кориÑтите „-Ttext-segment=...“"
-#: elfxx-mips.c:13418 reloc.c:8518
+#: elfxx-mips.c:13503 reloc.c:8524
#, c-format
msgid "%X%P: %pB(%pA): error: relocation for offset %V has no value\n"
msgstr "%X%P: %pB(%pA): грешка: премештање за померај „%V“ нема вредноÑÑ‚\n"
-#: elfxx-mips.c:14729
+#: elfxx-mips.c:14814
#, c-format
msgid "%pB: unknown architecture %s"
msgstr "%pB: непозната архитектура „%s“"
-#: elfxx-mips.c:15257
+#: elfxx-mips.c:15342
#, c-format
msgid "%pB: illegal section name `%pA'"
msgstr "%pB: неиÑправан назив одељка „%pA“"
-#: elfxx-mips.c:15534
+#: elfxx-mips.c:15620
#, c-format
msgid "%pB: warning: linking abicalls files with non-abicalls files"
msgstr "%pB: упозорење: повезујем датотеке абипозива Ñа датотекама не-абипозива"
-#: elfxx-mips.c:15551
+#: elfxx-mips.c:15637
#, c-format
msgid "%pB: linking 32-bit code with 64-bit code"
msgstr "%pB: повезујем 32-битни код Ñа 64-битним кодом"
-#: elfxx-mips.c:15583 elfxx-mips.c:15649 elfxx-mips.c:15664
+#: elfxx-mips.c:15669 elfxx-mips.c:15735 elfxx-mips.c:15750
#, c-format
msgid "%pB: linking %s module with previous %s modules"
msgstr "%pB: повезујем „%s“ модул Ñа претходним „%s“ модулима"
-#: elfxx-mips.c:15607
+#: elfxx-mips.c:15693
#, c-format
msgid "%pB: ABI mismatch: linking %s module with previous %s modules"
msgstr "%pB: „ABI“ не одговара: повезујем „%s“ модул Ñа претходним „%s“ модулима"
-#: elfxx-mips.c:15632
+#: elfxx-mips.c:15718
#, c-format
msgid "%pB: ASE mismatch: linking %s module with previous %s modules"
msgstr "%pB: „ASE“ не одговара: повезујем „%s“ модул Ñа претходним „%s“ модулима"
-#: elfxx-mips.c:15766
+#: elfxx-mips.c:15852
#, c-format
msgid "warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses unknown floating point ABI %d"
msgstr "упозорење: „%pB“ кориÑти непознату „ABI“ тачку покретног зареза „%d“ (подешено Ñа „%pB“), „%pB“ кориÑти непознату „ABI“ тачку покретног зареза „%d“"
-#: elfxx-mips.c:15772
+#: elfxx-mips.c:15858
#, c-format
msgid "warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses %s"
msgstr "упозорење: „%pB“ кориÑти непознату „ABI“ тачку покретног зареза „%d“ (подешено Ñа „%pB“), „%pB“ кориÑти „%s“"
-#: elfxx-mips.c:15778
+#: elfxx-mips.c:15864
#, c-format
msgid "warning: %pB uses %s (set by %pB), %pB uses unknown floating point ABI %d"
msgstr "упозорење: „%pB“ кориÑти „%s“ (подешено Ñа „%pB“), „%pB“ кориÑти непознату „ABI“ тачку покретног зареза „%d“"
-#: elfxx-mips.c:15792
+#: elfxx-mips.c:15878
#, c-format
msgid "warning: %pB uses %s (set by %pB), %pB uses %s"
msgstr "упозорење: „%pB“ кориÑти „%s“ (подешено Ñа „%pB“), „%pB“ кориÑти „%s“"
-#: elfxx-mips.c:15811
+#: elfxx-mips.c:15897
#, c-format
msgid "warning: %pB uses %s (set by %pB), %pB uses unknown MSA ABI %d"
msgstr "упозорење: „%pB“ кориÑти „%s“ (подешено Ñа „%pB“), „%pB“ кориÑти непознато „MSA ABI“ „%d“"
-#: elfxx-mips.c:15823
+#: elfxx-mips.c:15909
#, c-format
msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses %s"
msgstr "упозорење: „%pB“ кориÑти непознато „MSA ABI“ „%d“ (подешено Ñа „%pB“), „%pB“ кориÑти „%s“"
-#: elfxx-mips.c:15832
+#: elfxx-mips.c:15918
#, c-format
msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses unknown MSA ABI %d"
msgstr "упозорење: „%pB“ кориÑти непознато „MSA ABI“ „%d“ (подешено Ñа „%pB“), „%pB“ кориÑти непознато „MSA ABI %d“"
-#: elfxx-mips.c:15894
+#: elfxx-mips.c:15980
#, c-format
msgid "%pB: endianness incompatible with that of the selected emulation"
msgstr "%pB: крајњоÑÑ‚ није ÑаглаÑна Ñа оном изабране емулације"
-#: elfxx-mips.c:15908
+#: elfxx-mips.c:15994
#, c-format
msgid "%pB: ABI is incompatible with that of the selected emulation"
msgstr "%pB: „ABI“ није ÑаглаÑна Ñа оном изабране емулације"
-#: elfxx-mips.c:15961
+#: elfxx-mips.c:16047
#, c-format
msgid "%pB: warning: inconsistent ISA between e_flags and .MIPS.abiflags"
msgstr "%pB: упозорење: недоÑледно ISA између „e_flags“ и „.MIPS.abiflags“"
-#: elfxx-mips.c:15966
+#: elfxx-mips.c:16052
#, c-format
msgid "%pB: warning: inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags"
msgstr "%pB: упозорење: недоÑледно „FP ABI“ између „.gnu.attributes“ и „.MIPS.abiflags“"
-#: elfxx-mips.c:15970
+#: elfxx-mips.c:16056
#, c-format
msgid "%pB: warning: inconsistent ASEs between e_flags and .MIPS.abiflags"
msgstr "%pB: упозорење: недоÑледно „ASE“ између „e_flags“ и „.MIPS.abiflags“"
-#: elfxx-mips.c:15977
+#: elfxx-mips.c:16063
#, c-format
msgid "%pB: warning: inconsistent ISA extensions between e_flags and .MIPS.abiflags"
msgstr "%pB: упозорење: недоÑледна ISA проширења између „e_flags“ и „.MIPS.abiflags“"
-#: elfxx-mips.c:15981
+#: elfxx-mips.c:16067
#, c-format
msgid "%pB: warning: unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)"
msgstr "%pB: упозорење: неочекивана заÑтавица у „flags2“ пољу „.MIPS.abiflags“-а (0x%lx)"
-#: elfxx-mips.c:16172
+#: elfxx-mips.c:16258
msgid "-mips32r2 -mfp64 (12 callee-saved)"
msgstr "-mips32r2 -mfp64 (12 позиваоца-Ñачувано)"
-#: elfxx-mips.c:16234 elfxx-mips.c:16245
+#: elfxx-mips.c:16320 elfxx-mips.c:16331
msgid "None"
msgstr "Ðишта"
-#: elfxx-mips.c:16236 elfxx-mips.c:16305
+#: elfxx-mips.c:16322 elfxx-mips.c:16391
msgid "Unknown"
msgstr "Ðепознато"
-#: elfxx-mips.c:16316
+#: elfxx-mips.c:16402
#, c-format
msgid "Hard or soft float\n"
msgstr "ХардверÑки или ÑофтверÑки покретни зарез\n"
-#: elfxx-mips.c:16319
+#: elfxx-mips.c:16405
#, c-format
msgid "Hard float (double precision)\n"
msgstr "ХардверÑки покретни зарез (двоÑтрука тачноÑÑ‚)\n"
-#: elfxx-mips.c:16322
+#: elfxx-mips.c:16408
#, c-format
msgid "Hard float (single precision)\n"
msgstr "ХардверÑки покретни зарез (једноÑтрука тачноÑÑ‚)\n"
-#: elfxx-mips.c:16325
+#: elfxx-mips.c:16411
#, c-format
msgid "Soft float\n"
msgstr "СофтверÑки покретни зарез\n"
-#: elfxx-mips.c:16328
+#: elfxx-mips.c:16414
#, c-format
msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
msgstr "ХардверÑки покретни зарез („MIPS32r2“ 64-бита „FPU 12 callee-saved“)\n"
-#: elfxx-mips.c:16331
+#: elfxx-mips.c:16417
#, c-format
msgid "Hard float (32-bit CPU, Any FPU)\n"
msgstr "ХардверÑки покретни зарез (32-битни процеÑор, било који „FPU“)\n"
-#: elfxx-mips.c:16334
+#: elfxx-mips.c:16420
#, c-format
msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
msgstr "ХардверÑки покретни зарез (32-битни процеÑор, 64-битни „FPU“)\n"
-#: elfxx-mips.c:16337
+#: elfxx-mips.c:16423
#, c-format
msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
msgstr "ХардверÑко покретном зарезу ÑаглаÑно (32-битни процеÑор, 64-битни „FPU“)\n"
-#: elfxx-mips.c:16369
+#: elfxx-mips.c:16455
#, c-format
msgid " [abi=O32]"
msgstr " [аби=O32]"
-#: elfxx-mips.c:16371
+#: elfxx-mips.c:16457
#, c-format
msgid " [abi=O64]"
msgstr " [аби=O64]"
-#: elfxx-mips.c:16373
+#: elfxx-mips.c:16459
#, c-format
msgid " [abi=EABI32]"
msgstr " [аби=EABI32]"
-#: elfxx-mips.c:16375
+#: elfxx-mips.c:16461
#, c-format
msgid " [abi=EABI64]"
msgstr " [аби=EABI64]"
-#: elfxx-mips.c:16377
+#: elfxx-mips.c:16463
#, c-format
msgid " [abi unknown]"
msgstr " [аби није познато]"
-#: elfxx-mips.c:16379
+#: elfxx-mips.c:16465
#, c-format
msgid " [abi=N32]"
msgstr " [аби=N32]"
-#: elfxx-mips.c:16381
+#: elfxx-mips.c:16467
#, c-format
msgid " [abi=64]"
msgstr " [аби=64]"
-#: elfxx-mips.c:16383
+#: elfxx-mips.c:16469
#, c-format
msgid " [no abi set]"
msgstr " [аби није подешено]"
-#: elfxx-mips.c:16408
+#: elfxx-mips.c:16494
#, c-format
msgid " [unknown ISA]"
msgstr " [непознато ИСÐ]"
-#: elfxx-mips.c:16428
+#: elfxx-mips.c:16514
#, c-format
msgid " [not 32bitmode]"
msgstr " [није 32-битни режим]"
-#: elfxx-riscv.c:1827
+#: elfxx-riscv.c:1950
#, c-format
msgid "x ISA extension `%s' must be set with the versions"
msgstr "x ISA проширење „%s“ мора бити поÑтављено Ñа издањима"
-#: elfxx-riscv.c:1833
+#: elfxx-riscv.c:1956
#, c-format
msgid "cannot find default versions of the ISA extension `%s'"
msgstr "не могу да нађем оÑновна издања за ISA проширење „%s“"
-#: elfxx-riscv.c:1939
+#: elfxx-riscv.c:2063
#, c-format
msgid "%s: first ISA extension must be `e', `i' or `g'"
msgstr "%s: прво ISA проширење мора бити „e“, „i“ или „g“"
-#: elfxx-riscv.c:1963
+#: elfxx-riscv.c:2087
#, c-format
msgid "%s: unknown standard ISA extension or prefix class `%c'"
msgstr "%s: непознато Ñтандардно ISA проширење или клаÑа префикÑа „%c“"
-#: elfxx-riscv.c:1999
+#: elfxx-riscv.c:2123
#, c-format
msgid "%s: invalid prefixed ISA extension `%s' ends with <number>p"
msgstr "%s: неиÑправно Ñа префикÑом ISA проширење „%s“ Ñе завршава Ñа <број>p"
-#: elfxx-riscv.c:2023
+#: elfxx-riscv.c:2147
#, c-format
msgid "%s: unknown prefixed ISA extension `%s'"
msgstr "%s: непознато Ñа префикÑом ISA проширење „%s“"
-#: elfxx-riscv.c:2047
+#: elfxx-riscv.c:2171
#, c-format
msgid "%s: prefixed ISA extension must separate with _"
msgstr "%s: Ñа префикÑом ISA проширење Ñе мора раздвојити Ñа „_“"
-#: elfxx-riscv.c:2087
+#: elfxx-riscv.c:2211
#, c-format
msgid "rv%de does not support the `h' extension"
msgstr "„rv%de“ не подржава проширење „h“"
-#: elfxx-riscv.c:2095
+#: elfxx-riscv.c:2219
#, c-format
msgid "rv%d does not support the `q' extension"
msgstr "„rv%d“ не подржава проширење „q“"
-#: elfxx-riscv.c:2102
-msgid "zcmp' is incompatible with `d/zcd' extension"
-msgstr "zcmp' није ÑаглаÑно Ñа „d/zcd“ проширењем"
+#: elfxx-riscv.c:2226
+msgid "zcmp' is incompatible with `d' and `c', or `zcd' extension"
+msgstr "zcmp' није ÑаглаÑно Ñа „d“ и „c“, или „zcd“ проширењем"
-#: elfxx-riscv.c:2109
+#: elfxx-riscv.c:2233
#, c-format
msgid "rv%d does not support the `zcf' extension"
msgstr "„rv%d“ не подржава проширење „zcf“"
-#: elfxx-riscv.c:2116
+#: elfxx-riscv.c:2240
msgid "`zfinx' is conflict with the `f/d/q/zfh/zfhmin' extension"
msgstr "„zfinx“ је у Ñукобу Ñа проширењем „f/d/q/zfh/zfhmin“"
-#: elfxx-riscv.c:2123
-msgid "`xtheadvector' is conflict with the `v' extension"
-msgstr "„xtheadvector“ је у Ñукобу Ñа проширењем „v“"
+#: elfxx-riscv.c:2247
+msgid "`xtheadvector' is conflict with the `v/zve32x' extension"
+msgstr "„xtheadvector“ је у Ñукобу Ñа проширењем „v/zve32x“"
-#: elfxx-riscv.c:2144
+#: elfxx-riscv.c:2256
+msgid "`zclsd' is conflict with the `c+f'/ `zcf' extension"
+msgstr "„zclsd“ је у Ñукобу Ñа „c+f“/ „zcf“ проширењем"
+
+#: elfxx-riscv.c:2261
+#, c-format
+msgid "rv%d does not support the `ssnpm' extension"
+msgstr "„rv%d“ не подржава проширење „ssnpm“"
+
+#: elfxx-riscv.c:2267
+#, c-format
+msgid "rv%d does not support the `smnpm' extension"
+msgstr "„rv%d“ не подржава проширење „smnpm“"
+
+#: elfxx-riscv.c:2273
+#, c-format
+msgid "rv%d does not support the `smmpm' extension"
+msgstr "„rv%d“ не подржава проширење „smmpm“"
+
+#: elfxx-riscv.c:2279
+#, c-format
+msgid "rv%d does not support the `sspm' extension"
+msgstr "„rv%d“ не подржава проширење „sspm“"
+
+#: elfxx-riscv.c:2285
+#, c-format
+msgid "rv%d does not support the `supm' extension"
+msgstr "„rv%d“ не подржава проширење „supm“"
+
+#: elfxx-riscv.c:2307
msgid "zvl*b extensions need to enable either `v' or `zve' extension"
msgstr "„zvl*b“ проширења треба да укључе или „v“ или „zve“ проширење"
-#: elfxx-riscv.c:2206
+#: elfxx-riscv.c:2364
+msgid "Warning: should use \"_\" to contact Profiles with other extensions"
+msgstr "Упозорење: теба да кориÑтите „_“ за контакт „Profiles“ Ñа другим проширењима"
+
+#: elfxx-riscv.c:2405
#, c-format
msgid "%s: ISA string cannot contain uppercase letters"
msgstr "%s: ISA ниÑка не може Ñадржати велика Ñлова"
-#: elfxx-riscv.c:2234
+#: elfxx-riscv.c:2439
#, c-format
-msgid "%s: ISA string must begin with rv32 or rv64"
-msgstr "%s: ISA ниÑка мора почети Ñа „rv32“ или „rv64“"
+msgid "%s: ISA string must begin with rv32, rv64 or Profiles"
+msgstr "%s: ISA ниÑка мора почети Ñа „rv32“, „rv64“ или Профилима"
-#: elfxx-riscv.c:2417
+#: elfxx-riscv.c:2629
msgid "internal: "
msgstr "унутрашње: "
-#: elfxx-riscv.c:2471
+#: elfxx-riscv.c:2683
#, c-format
msgid "%sinvalid ISA extension ends with <number>p in %s `%s'"
msgstr "%sнеиÑправно ISA проширење Ñе завршава Ñа <број>p у %s „%s“"
-#: elfxx-riscv.c:2494
+#: elfxx-riscv.c:2706
#, c-format
msgid "%sunknown ISA extension `%s' in %s `%s'"
msgstr "%sнепознато ISA проширење „%s“ у %s „%s“"
-#: elfxx-riscv.c:2506
+#: elfxx-riscv.c:2717
#, c-format
-msgid "%scannot + or - base extension `%s' in %s `%s'"
-msgstr "%sне могу да + или - проширење оÑнове „%s“ у %s „%s“"
+msgid "%sdeprecated - extension `%s' in %s `%s'"
+msgstr "%sзаÑтарело - проширење „%s“ у %s „%s“"
-#: elfxx-riscv.c:2817 elfxx-riscv.c:3112
+#: elfxx-riscv.c:2727
+#, c-format
+msgid "%scannot + base extension `%s' in %s `%s'"
+msgstr "%sне могу да + проширење оÑнове „%s“ у %s „%s“"
+
+#: elfxx-riscv.c:3059 elfxx-riscv.c:3343
msgid "internal: unreachable INSN_CLASS_*"
msgstr "унутрашње: недоÑтижна „INSN_CLASS_*“"
-#: elfxx-riscv.c:2851
+#: elfxx-riscv.c:3093
msgid "zicfiss' and `zcmop"
msgstr "zicfiss“ и „zcmop"
-#: elfxx-riscv.c:2865
+#: elfxx-riscv.c:3106
msgid "zihintntl' and `c', or `zihintntl' and `zca"
msgstr "zihintntl“ и „c“, или „zihintntl“ и „zca"
-#: elfxx-riscv.c:2870 elfxx-riscv.c:2896
+#: elfxx-riscv.c:3111 elfxx-riscv.c:3137
msgid "c' or `zca"
msgstr "c“ или „zca"
-#: elfxx-riscv.c:2878
+#: elfxx-riscv.c:3119
msgid "m' or `zmmul"
msgstr "m“ или „zmmul"
-#: elfxx-riscv.c:2902
-msgid "f' and `c', or `f' and `zcf"
-msgstr "f“ и „c“, или „f“ и „zcf"
-
-#: elfxx-riscv.c:2907
-msgid "c' or `zcf"
-msgstr "c“ или „zcf"
+#: elfxx-riscv.c:3139
+msgid "f' and `c', or `zcf"
+msgstr "f“ и „c“, или „zcf"
-#: elfxx-riscv.c:2913
-msgid "d' and `c', or `d' and `zcd"
-msgstr "d“ и „c“, или „d“ и „zcd"
+#: elfxx-riscv.c:3141
+msgid "d' and `c', or `zcd"
+msgstr "d“ и „c“, или „zcd"
-#: elfxx-riscv.c:2918
-msgid "c' or `zcd"
-msgstr "c“ или „zcd"
-
-#: elfxx-riscv.c:2920
+#: elfxx-riscv.c:3143
msgid "f' or `zfinx"
msgstr "f“ или „zfinx"
-#: elfxx-riscv.c:2922
+#: elfxx-riscv.c:3145
msgid "d' or `zdinx"
msgstr "d“ или „zdinx"
-#: elfxx-riscv.c:2924
+#: elfxx-riscv.c:3147
msgid "q' or `zqinx"
msgstr "q“ или „zqinx"
-#: elfxx-riscv.c:2926
+#: elfxx-riscv.c:3149
msgid "zfh' or `zhinx"
msgstr "zfh“ или „zhinx"
-#: elfxx-riscv.c:2930
+#: elfxx-riscv.c:3153
msgid "zfhmin' or `zhinxmin"
msgstr "zfhmin“ или „zhinxmin"
-#: elfxx-riscv.c:2941
+#: elfxx-riscv.c:3164
msgid "zfhmin' and `d', or `zhinxmin' and `zdinx"
msgstr "zfhmin“ и „d“, или „zhinxmin“ и „zdinx"
-#: elfxx-riscv.c:2952
+#: elfxx-riscv.c:3175
msgid "zfhmin' and `q', or `zhinxmin' and `zqinx"
msgstr "zfhmin“ и „q“, или „zhinxmin“ и „zqinx"
-#: elfxx-riscv.c:2960
+#: elfxx-riscv.c:3183
msgid "d' and `zfa"
msgstr "d“ и „zfa"
-#: elfxx-riscv.c:2968
+#: elfxx-riscv.c:3191
msgid "q' and `zfa"
msgstr "q“ и „zfa"
-#: elfxx-riscv.c:2976
+#: elfxx-riscv.c:3199
msgid "zfh' and `zfa"
msgstr "zfh“ и „zfa"
-#: elfxx-riscv.c:2986
+#: elfxx-riscv.c:3209
msgid "zfh' and `zfa', or `zvfh' and `zfa"
msgstr "zfh“ и „zfa“, или „zvfh“ и „zfa"
-#: elfxx-riscv.c:2991
+#: elfxx-riscv.c:3214
msgid "zfh' or `zvfh"
msgstr "zfh“ или „zvfh"
-#: elfxx-riscv.c:3007
+#: elfxx-riscv.c:3230
msgid "zbb' or `zbkb"
msgstr "zbb“ или „zbkb"
-#: elfxx-riscv.c:3009
+#: elfxx-riscv.c:3232
msgid "zbc' or `zbkc"
msgstr "zbc“ или „zbkc"
-#: elfxx-riscv.c:3017
+#: elfxx-riscv.c:3240
msgid "zknd' or `zkne"
msgstr "zknd“ или „zkne"
-#: elfxx-riscv.c:3023
+#: elfxx-riscv.c:3246
msgid "v' or `zve64x' or `zve32x"
msgstr "v“ или „zve64x“ или „zve32x"
-#: elfxx-riscv.c:3025
+#: elfxx-riscv.c:3248
msgid "v' or `zve64d' or `zve64f' or `zve32f"
msgstr "v“ или „zve64d“ или „zve64f“ или „zve32f"
-#: elfxx-riscv.c:3027
+#: elfxx-riscv.c:3250
msgid "zvbb"
msgstr "zvbb"
-#: elfxx-riscv.c:3029
+#: elfxx-riscv.c:3252
msgid "zvbc"
msgstr "zvbc"
-#: elfxx-riscv.c:3035
+#: elfxx-riscv.c:3258
msgid "zvkb"
msgstr "zvkb"
-#: elfxx-riscv.c:3037
+#: elfxx-riscv.c:3260
msgid "zvkg"
msgstr "zvkg"
-#: elfxx-riscv.c:3039
+#: elfxx-riscv.c:3262
msgid "zvkned"
msgstr "zvkned"
-#: elfxx-riscv.c:3041
+#: elfxx-riscv.c:3264
msgid "zvknha' or `zvknhb"
msgstr "zvknha“ или „zvknhb"
-#: elfxx-riscv.c:3043
+#: elfxx-riscv.c:3266
msgid "zvksed"
msgstr "zvksed"
-#: elfxx-riscv.c:3045
+#: elfxx-riscv.c:3268
msgid "zvksh"
msgstr "zvksh"
-#: elfxx-riscv.c:3049
+#: elfxx-riscv.c:3272
msgid "zcb' and `zba"
msgstr "zcb“ и „zba"
-#: elfxx-riscv.c:3051
+#: elfxx-riscv.c:3274
msgid "zcb' and `zbb"
msgstr "zcb“ и „zbb"
-#: elfxx-riscv.c:3053
+#: elfxx-riscv.c:3276
msgid "zcb' and `zmmul', or `zcb' and `m"
msgstr "zcb“ и „zmmul“, или „zcb“ и „m"
-#: elfxx-riscv.c:3061
+#: elfxx-riscv.c:3284
msgid "smctr' or `ssctr"
msgstr "smctr“ или „ssctr"
-#: elfxx-riscv.c:3065
+#: elfxx-riscv.c:3294
msgid "h"
msgstr "h"
-#: elfxx-sparc.c:3017 elfnn-aarch64.c:5750
+#: elfxx-riscv.c:3441
+msgid "%F%P: failed to create GNU property section\n"
+msgstr "%F%P: ниÑам уÑпео да направим одељак ГÐУ ÑвојÑтва\n"
+
+#: elfxx-riscv.c:3485
+#, c-format
+msgid "error: %pB: <corrupt RISC-V used size: 0x%x>"
+msgstr "грешка: %pB: <оштећена „RISC-V“ коришћена величина: 0x%x>"
+
+#: elfxx-sparc.c:3028 elfnn-aarch64.c:5768
#, c-format
msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s"
msgstr "%pB: премештање „%s“ наÑпрам „STT_GNU_IFUNC“ Ñимбола „%s“ „%s“ не може да одради"
-#: elfxx-tilegx.c:4126
+#: elfxx-tilegx.c:4128
#, c-format
msgid "%pB: cannot link together %s and %s objects"
msgstr "%pB: не могу да повежем заједно објекте „%s“ и „%s“"
-#: elfxx-x86.c:534 elfxx-x86.c:3597
+#: elfxx-x86.c:534 elfxx-x86.c:3586
#, c-format
-msgid "%F%P: %pB: copy relocation against non-copyable protected symbol `%s' in %pB\n"
-msgstr "%F%P: %pB: премештање умношка за неумноживи заштићени Ñимбол „%s“ у „%pB“\n"
+msgid "%P: %pB: copy relocation against non-copyable protected symbol `%s' in %pB\n"
+msgstr "%P: %pB: премештање умношка за неумноживи заштићени Ñимбол „%s“ у „%pB“\n"
-#: elfxx-x86.c:1044
+#: elfxx-x86.c:1027
#, c-format
-msgid "%F%P: %pB: failed to allocate relative reloc record\n"
-msgstr "%F%P: %pB: ниÑам уÑпео да доделим Ð·Ð°Ð¿Ð¸Ñ Ñ€ÐµÐ»Ð°Ñ‚Ð¸Ð²Ð½Ð¾Ð³ премештања\n"
+msgid "%P: %pB: failed to allocate relative reloc record\n"
+msgstr "%P: %pB: ниÑам уÑпео да доделим Ð·Ð°Ð¿Ð¸Ñ Ñ€ÐµÐ»Ð°Ñ‚Ð¸Ð²Ð½Ð¾Ð³ премештања\n"
-#: elfxx-x86.c:1403
+#: elfxx-x86.c:1388
#, c-format
-msgid "%F%P: %pB: failed to allocate 64-bit DT_RELR bitmap\n"
-msgstr "%F%P: %pB: ниÑам уÑпео да доделим 64-битну „DT_RELR“ битмапу\n"
+msgid "%P: %pB: failed to allocate 64-bit DT_RELR bitmap\n"
+msgstr "%P: %pB: ниÑам уÑпео да доделим 64-битну „DT_RELR“ битмапу\n"
-#: elfxx-x86.c:1439
+#: elfxx-x86.c:1424
#, c-format
-msgid "%F%P: %pB: failed to allocate 32-bit DT_RELR bitmap\n"
-msgstr "%F%P: %pB: ниÑам уÑпео да доделим 32-битну „DT_RELR“ битмапу\n"
+msgid "%P: %pB: failed to allocate 32-bit DT_RELR bitmap\n"
+msgstr "%P: %pB: ниÑам уÑпео да доделим 32-битну „DT_RELR“ битмапу\n"
-#: elfxx-x86.c:1578
+#: elfxx-x86.c:1563
#, c-format
-msgid "%F%P: %pB: failed to allocate memory for section `%pA'\n"
-msgstr "%F%P: %pB: ниÑам уÑпео да доделим меморију за одељак „%pA“\n"
+msgid "%P: %pB: failed to allocate memory for section `%pA'\n"
+msgstr "%P: %pB: ниÑам уÑпео да доделим меморију за одељак „%pA“\n"
-#: elfxx-x86.c:1765
+#: elfxx-x86.c:1750
#, c-format
-msgid "%F%P: %pB: size of compact relative reloc section is changed: new (%lu) != old (%lu)\n"
-msgstr "%F%P: %pB: величина Ñажетог одељка релативног премештања је измењено: нова (%lu) != Ñтара (%lu)\n"
+msgid "%P: %pB: size of compact relative reloc section is changed: new (%lu) != old (%lu)\n"
+msgstr "%P: %pB: величина Ñажетог одељка релативног премештања је измењено: нова (%lu) != Ñтара (%lu)\n"
-#: elfxx-x86.c:1787
+#: elfxx-x86.c:1772
#, c-format
-msgid "%F%P: %pB: failed to allocate compact relative reloc section\n"
-msgstr "%F%P: %pB: ниÑам уÑпео да доделим Ñажети одељак релативног премештања\n"
+msgid "%P: %pB: failed to allocate compact relative reloc section\n"
+msgstr "%P: %pB: ниÑам уÑпео да доделим Ñажети одељак релативног премештања\n"
-#: elfxx-x86.c:2256
+#: elfxx-x86.c:2243
#, c-format
-msgid "%F%P: %pB: relocation %s against absolute symbol `%s' in section `%pA' is disallowed\n"
-msgstr "%F%P: %pB: премештај „%s“ наÑпрам апÑолутног Ñимбола „%s“ у одељку „%pA“ је иÑкључен\n"
+msgid "%P: %pB: relocation %s against absolute symbol `%s' in section `%pA' is disallowed\n"
+msgstr "%P: %pB: премештај „%s“ наÑпрам апÑолутног Ñимбола „%s“ у одељку „%pA“ је иÑкључен\n"
-#: elfxx-x86.c:2338
+#: elfxx-x86.c:2325
msgid "%P: %pB: warning: relocation in read-only section `%pA'\n"
msgstr "%P: %pB: упозорење: премештање у одељку „%pA“ који је Ñамо за читање\n"
-#: elfxx-x86.c:3265
+#: elfxx-x86.c:3254
msgid "%pB: %s (offset: 0x%v, info: 0x%v, addend: 0x%v) against '%s' for section '%pA' in %pB\n"
msgstr "%pB: %s (померај: 0x%v, инфо: 0x%v, Ñабирак: 0x%v) за „%s“ за одељак „%pA“ у „%pB“\n"
-#: elfxx-x86.c:3271
+#: elfxx-x86.c:3260
msgid "%pB: %s (offset: 0x%v, info: 0x%v) against '%s' for section '%pA' in %pB\n"
msgstr "%pB: %s (померај: 0x%v, инфо: 0x%v) за „%s“ за одељак „%pA“ у „%pB“\n"
-#: elfxx-x86.c:3307
+#: elfxx-x86.c:3296
#, c-format
msgid "%pB: TLS transition from %s to %s against `%s' at 0x%v in section `%pA' failed\n"
msgstr "%pB: није уÑпео „TLS“ прелаз Ñа „%s“ на „%s“ наÑпрам „%s“ при 0x%v у одељку „%pA“\n"
-#: elfxx-x86.c:3316
-#, c-format
-msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in ADD only\n"
-msgstr "%pB(%pA+0x%v): премештање „%s“ наÑпрам „%s“ Ñе мора кориÑтити Ñамо у „ADD“\n"
-
-#: elfxx-x86.c:3324
+#: elfxx-x86.c:3305
#, c-format
msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in ADD or MOV only\n"
msgstr "%pB(%pA+0x%v): премештање „%s“ наÑпрам „%s“ Ñе мора кориÑтити Ñамо у „ADD“ или „MOV“\n"
-#: elfxx-x86.c:3332
+#: elfxx-x86.c:3313
+#, c-format
+msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in ADD or MOVRS only\n"
+msgstr "%pB(%pA+0x%v): премештај „%s“ за „%s“ Ñе мора кориÑтити Ñамо у „ADD“ или „MOVRS“\n"
+
+#: elfxx-x86.c:3321
#, c-format
msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in ADD, SUB or MOV only\n"
msgstr "%pB(%pA+0x%v): премештање „%s“ наÑпрам „%s“ Ñе мора кориÑтити Ñамо у „ADD“, „SUB“ или „MOV“\n"
-#: elfxx-x86.c:3340
+#: elfxx-x86.c:3329
#, c-format
msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in indirect CALL with %s register only\n"
msgstr "%pB(%pA+0x%v): премештање „%s“ наÑпрам „%s“ Ñе мора кориÑтити Ñамо у индиректном CALL Ñа „%s“ региÑтром\n"
-#: elfxx-x86.c:3349
+#: elfxx-x86.c:3338
#, c-format
msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in LEA only\n"
msgstr "%pB(%pA+0x%v): премештање „%s“ наÑпрам „%s“ Ñе мора кориÑтити Ñамо у „LEA“\n"
-#: elfxx-x86.c:3976
+#: elfxx-x86.c:3965
#, c-format
msgid "error: %pB: <corrupt x86 property (0x%x) size: 0x%x>"
msgstr "грешка: %pB: <оштећено x86 ÑвојÑтво (0x%x) величине: 0x%x>"
-#: elfxx-x86.c:4189
+#: elfxx-x86.c:4178
#, c-format
msgid "%pB: x86 ISA needed: "
msgstr "%pB: x86 ISA је потребно: "
-#: elfxx-x86.c:4191
+#: elfxx-x86.c:4180
#, c-format
msgid "%pB: x86 ISA used: "
msgstr "%pB: x86 ISA Ñе кориÑти: "
-#: elfxx-x86.c:4213
+#: elfxx-x86.c:4202
#, c-format
msgid "<unknown: %x>"
msgstr "<непознато: %x>"
-#: elfxx-x86.c:4368
+#: elfxx-x86.c:4338
+msgid "%P: failed to create %sn"
+msgstr "%P: ниÑам уÑпео да направим „GOT“ одељке"
+
+#: elfxx-x86.c:4352
msgid "%P: %pB: warning: missing %s\n"
msgstr "%P: %pB: упозорење: недоÑтаје „%s“\n"
-#: elfxx-x86.c:4369
+#: elfxx-x86.c:4353
msgid "%X%P: %pB: error: missing %s\n"
msgstr "%X%P: %pB: грешка: недоÑтаје „%s“\n"
-#: elfxx-x86.c:4475
+#: elfxx-x86.c:4459
msgid "IBT and SHSTK properties"
msgstr "„IBT“ и „SHSTK“ ÑвојÑтва"
-#: elfxx-x86.c:4477
+#: elfxx-x86.c:4461
msgid "IBT property"
msgstr "„IBT“ ÑвојÑтво"
-#: elfxx-x86.c:4479
+#: elfxx-x86.c:4463
msgid "SHSTK property"
msgstr "„SHSTK“ ÑвојÑтво"
-#: elfxx-x86.c:4484
+#: elfxx-x86.c:4468
msgid "LAM_U48 property"
msgstr "„LAM_U48“ property"
-#: elfxx-x86.c:4489
+#: elfxx-x86.c:4473
msgid "LAM_U57 property"
msgstr "„LAM_U57“ ÑвојÑтво"
-#: elfxx-x86.c:4667
-msgid "%F%P: failed to create VxWorks dynamic sections\n"
-msgstr "%F%P: ниÑам уÑпео да Ñтворим „VxWorks“ динамичке одељке\n"
+#: elfxx-x86.c:4651
+msgid "%P: failed to create VxWorks dynamic sections\n"
+msgstr "%P: ниÑам уÑпео да Ñтворим „VxWorks“ динамичке одељке\n"
-#: elfxx-x86.c:4676
-msgid "%F%P: failed to create GOT sections\n"
-msgstr "%F%P: ниÑам уÑпео да направим „GOT“ одељке\n"
+#: elfxx-x86.c:4660
+msgid "%P: failed to create GOT sections\n"
+msgstr "%P: ниÑам уÑпео да направим „GOT“ одељке\n"
-#: elfxx-x86.c:4694
-msgid "%F%P: failed to create ifunc sections\n"
-msgstr "%F%P: ниÑам уÑпео да направим „ifunc“ одељке\n"
+#: elfxx-x86.c:4678
+msgid "%P: failed to create ifunc sections\n"
+msgstr "%P: ниÑам уÑпео да направим „ifunc“ одељке\n"
-#: elfxx-x86.c:4731
-msgid "%F%P: failed to create GOT PLT section\n"
-msgstr "%F%P: ниÑам уÑпео да направим „GOT PLT“ одељак\n"
+#: elfxx-x86.c:4717
+msgid "%P: failed to create GOT PLT section\n"
+msgstr "%P: ниÑам уÑпео да направим „GOT PLT“ одељак\n"
-#: elfxx-x86.c:4750
-msgid "%F%P: failed to create IBT-enabled PLT section\n"
-msgstr "%F%P: ниÑам уÑпео да направим „IBT“-ом укључен „PLT“ одељак\n"
+#: elfxx-x86.c:4734
+msgid "%P: failed to create IBT-enabled PLT section\n"
+msgstr "%P: ниÑам уÑпео да направим „IBT“-ом укључен „PLT“ одељак\n"
-#: elfxx-x86.c:4770
-msgid "%F%P: failed to create PLT .eh_frame section\n"
-msgstr "%F%P: ниÑам уÑпео да направим „PLT .eh_frame“ одељак\n"
+#: elfxx-x86.c:4752
+msgid "%P: failed to create PLT .eh_frame section\n"
+msgstr "%P: ниÑам уÑпео да направим „PLT .eh_frame“ одељак\n"
-#: elfxx-x86.c:4783
-msgid "%F%P: failed to create GOT PLT .eh_frame section\n"
-msgstr "%F%P: ниÑам уÑпео да направим „GOT .eh_frame“ одељак\n"
+#: elfxx-x86.c:4763
+msgid "%P: failed to create GOT PLT .eh_frame section\n"
+msgstr "%P: ниÑам уÑпео да направим „GOT .eh_frame“ одељак\n"
-#: elfxx-x86.c:4797
-msgid "%F%P: failed to create the second PLT .eh_frame section\n"
-msgstr "%F%P: ниÑам уÑпео да направим други „PLT .eh_frame“ одељак\n"
+#: elfxx-x86.c:4775
+msgid "%P: failed to create the second PLT .eh_frame section\n"
+msgstr "%P: ниÑам уÑпео да направим други „PLT .eh_frame“ одељак\n"
-#: elfxx-x86.c:4817
-msgid "%F%P: failed to create PLT .sframe section\n"
-msgstr "%F%P: ниÑам уÑпео да направим PLT „.sframe“ одељак\n"
+#: elfxx-x86.c:4790
+msgid "%P: failed to create PLT .sframe section\n"
+msgstr "%P: ниÑам уÑпео да направим PLT „.sframe“ одељак\n"
-#: elfxx-x86.c:4832
-msgid "%F%P: failed to create second PLT .sframe section\n"
-msgstr "%F%P: ниÑам уÑпео да направим други PLT „.sframe“ одељак\n"
+#: elfxx-x86.c:4806
+msgid "%P: failed to create second PLT .sframe section\n"
+msgstr "%P: ниÑам уÑпео да направим други PLT „.sframe“ одељак\n"
-#: elfxx-x86.c:4844
-msgid "%F%P: failed to create PLT GOT .sframe section\n"
-msgstr "%F%P: ниÑам уÑпео да направим PLT GOT „.sframe“ одељак\n"
+#: elfxx-x86.c:4819
+msgid "%P: failed to create PLT GOT .sframe section\n"
+msgstr "%P: ниÑам уÑпео да направим PLT GOT „.sframe“ одељак\n"
-#: elfxx-x86.c:4883
+#: elfxx-x86.c:4859
msgid "%X%P: attempted static link of dynamic object `%pB'\n"
msgstr "%X%P: покушах Ñтатичку везу динамичког објекта „%pB“\n"
@@ -6129,46 +6217,46 @@ msgstr "%pB: не могу да добавим раÑпаковани одеља
msgid "%pB: mapped section %pA has non-NULL buffer"
msgstr "%pB: мапирани одељак „%pA“ има не-ПРÐЗÐУ међумеморију"
-#: linker.c:1731
+#: linker.c:1749
#, c-format
msgid "%pB: indirect symbol `%s' to `%s' is a loop"
msgstr "%pB: индиректни Ñимбол „%s“ ка „%s“ је петља"
-#: linker.c:1811
+#: linker.c:1829
msgid "%P: %pB: note: the message above does not take linker garbage collection into account\n"
msgstr "%P: %pB: напомена: порука изнад не узима збирку ђубра повезивача у налог\n"
-#: linker.c:2617
+#: linker.c:2663
#, c-format
msgid "attempt to do relocatable link with %s input and %s output"
msgstr "покушавам да одрадим премеÑтиву везу Ñа „%s“ улазом и „%s“ излазом"
-#: linker.c:2896
+#: linker.c:2942
#, c-format
msgid "%pB: ignoring duplicate section `%pA'\n"
msgstr "%pB: занемарујем удвоÑтручени одељак „%pA“\n"
-#: linker.c:2906 linker.c:2916
+#: linker.c:2952 linker.c:2962
#, c-format
msgid "%pB: duplicate section `%pA' has different size\n"
msgstr "%pB: удвоÑтручени одељак „%pA“ има другачију величину\n"
-#: linker.c:2930 linker.c:2938
+#: linker.c:2976 linker.c:2984
#, c-format
msgid "%pB: could not read contents of section `%pA'\n"
msgstr "%pB: не могу да прочитам Ñадржај одељка „%pA“\n"
-#: linker.c:2947
+#: linker.c:2993
#, c-format
msgid "%pB: duplicate section `%pA' has different contents\n"
msgstr "%pB: удвоÑтручени одељак „%pA“ има другачији Ñадржај\n"
-#: linker.c:3466
+#: linker.c:3517
#, c-format
msgid "%pB: compiled for a big endian system and target is little endian"
msgstr "%pB: преведено за ÑиÑтем велике крајноÑти а циљ је мала крајноÑÑ‚"
-#: linker.c:3469
+#: linker.c:3520
#, c-format
msgid "%pB: compiled for a little endian system and target is big endian"
msgstr "%pB: преведено за ÑиÑтем мале крајноÑти а циљ је велика крајноÑÑ‚"
@@ -6207,144 +6295,144 @@ msgstr "лоше „mach-o ARM“ ванила премештање: неиÑпÑ
msgid "malformed mach-o ARM reloc: unknown reloc type: %d"
msgstr "лоше „mach-o ARM“ премештање: непозната врÑта премештања: %d"
-#: mach-o.c:640
+#: mach-o.c:642
#, c-format
msgid "<unknown mask flags>"
msgstr "<непознате заÑтавице маÑке>"
-#: mach-o.c:695
+#: mach-o.c:697
msgid " (<unknown>)"
msgstr " (<непознато>)"
-#: mach-o.c:707
+#: mach-o.c:709
#, c-format
msgid " MACH-O header:\n"
msgstr " „MACH-O“ заглавље:\n"
-#: mach-o.c:708
+#: mach-o.c:710
#, c-format
msgid " magic: %#lx\n"
msgstr " магија: %#lx\n"
-#: mach-o.c:709
+#: mach-o.c:711
#, c-format
msgid " cputype: %#lx (%s)\n"
msgstr " врÑта цпј: %#lx (%s)\n"
-#: mach-o.c:711
+#: mach-o.c:713
#, c-format
msgid " cpusubtype: %#lx%s\n"
msgstr " подврÑта цпј: %#lx%s\n"
-#: mach-o.c:713
+#: mach-o.c:715
#, c-format
msgid " filetype: %#lx\n"
msgstr " врÑта датотеке: %#lx\n"
-#: mach-o.c:714
+#: mach-o.c:716
#, c-format
msgid " ncmds: %#lx\n"
msgstr " брнаредби: %#lx\n"
-#: mach-o.c:715
+#: mach-o.c:717
#, c-format
msgid " sizeocmds: %#lx\n"
msgstr " велнаредби: %#lx\n"
-#: mach-o.c:716
+#: mach-o.c:718
#, c-format
msgid " flags: %#lx\n"
msgstr " заÑтавице: %#lx\n"
-#: mach-o.c:717
+#: mach-o.c:719
#, c-format
msgid " version: %x\n"
msgstr " издање: %x\n"
#. Urg - what has happened ?
-#: mach-o.c:752
+#: mach-o.c:754
#, c-format
msgid "incompatible cputypes in mach-o files: %ld vs %ld"
msgstr "неÑаглаÑне врÑте процеÑора у „mach-o“ датотекама: „%ld“ наÑпрам „%ld“"
-#: mach-o.c:921
+#: mach-o.c:923
msgid "bfd_mach_o_canonicalize_symtab: unable to load symbols"
msgstr "bfd_mach_o_canonicalize_symtab: не могу да прочитам Ñимболе"
-#: mach-o.c:1513
+#: mach-o.c:1515
msgid "malformed mach-o reloc: section index is greater than the number of sections"
msgstr "лоше „mach-o“ премештање: Ð¸Ð½Ð´ÐµÐºÑ Ð¾Ð´ÐµÑ™ÐºÐ° је већи од броја одељака"
-#: mach-o.c:2155
+#: mach-o.c:2157
msgid "sorry: modtab, toc and extrefsyms are not yet implemented for dysymtab commands."
msgstr "извините: „modtab“, „toc“ и „extrefsyms“ још ниÑу примењени за наредбе „dysymtab“."
-#: mach-o.c:2603
+#: mach-o.c:2605
#, c-format
msgid "mach-o: there are too many sections (%u) maximum is 255,\n"
msgstr "mach-o: има превише одељака (%u) највише је 255,\n"
-#: mach-o.c:2695
+#: mach-o.c:2697
#, c-format
msgid "unable to allocate data for load command %#x"
msgstr "не могу да доделим податке за наредбу учитавања „%#x“"
-#: mach-o.c:2800
+#: mach-o.c:2802
#, c-format
msgid "unable to write unknown load command %#x"
msgstr "не могу да запишем непознату наредбу учитавања „%#x“"
-#: mach-o.c:2984
+#: mach-o.c:2986
#, c-format
msgid "section address (%#<PRIx64>) below start of segment (%#<PRIx64>)"
msgstr "адреÑа подеока (%#<PRIx64>) је иÑпод почетка подеока (%#<PRIx64>)"
-#: mach-o.c:3126
+#: mach-o.c:3128
#, c-format
msgid "unable to layout unknown load command %#x"
msgstr "не могу да прикажем непознату наредбу учитавања „%#x“"
-#: mach-o.c:3652
+#: mach-o.c:3654
#, c-format
msgid "bfd_mach_o_read_section_32: overlarge alignment value: %#lx"
msgstr "bfd_mach_o_read_section_32: превелика вредноÑÑ‚ поравања: %#lx"
-#: mach-o.c:3695
+#: mach-o.c:3697
#, c-format
msgid "bfd_mach_o_read_section_64: overlarge alignment value: %#lx"
msgstr "bfd_mach_o_read_section_64: превелика вредноÑÑ‚ поравања: %#lx"
-#: mach-o.c:3746
+#: mach-o.c:3748
#, c-format
msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %u"
msgstr "bfd_mach_o_read_symtab_symbol: не могу да прочитам %d бајта на %u"
-#: mach-o.c:3765
+#: mach-o.c:3767
#, c-format
msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %u)"
msgstr "bfd_mach_o_read_symtab_symbol: назив је ван опÑега (%lu >= %u)"
-#: mach-o.c:3848
+#: mach-o.c:3850
#, c-format
msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d (max %lu): setting to undefined"
msgstr "bfd_mach_o_read_symtab_symbol: Ñимбол „%s“ је навео неиÑправан одељак „%d“ (најв. %lu): поÑтављам на недефиниÑано"
-#: mach-o.c:3867
+#: mach-o.c:3869
#, c-format
msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x%x: setting to undefined"
msgstr "bfd_mach_o_read_symtab_symbol: Ñимбол „%s“ је навео неиÑправно поље врÑте 0x%x: поÑтављам на недефиниÑано"
-#: mach-o.c:5066
+#: mach-o.c:5068
#, c-format
msgid "%pB: unknown load command %#x"
msgstr "%pB: непозната наредба учитавања „%#x“"
-#: mach-o.c:5264
+#: mach-o.c:5266
#, c-format
msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx"
msgstr "bfd_mach_o_scan: непозната архитектура 0x%lx/0x%lx"
-#: mach-o.c:5389
+#: mach-o.c:5391
#, c-format
msgid "unknown header byte-order value %#x"
msgstr "непозната вредноÑÑ‚ поретка бајта заглавља „%#x“"
@@ -6499,45 +6587,45 @@ msgstr "%pB: Ñимбол означава прекорачење (није по
msgid "bfd_pef_scan: unknown architecture 0x%lx"
msgstr "bfd_pef_scan: непозната архитектура 0x%lx"
-#: pei-x86_64.c:174 pei-x86_64.c:228 pei-x86_64.c:238 pei-x86_64.c:263
-#: pei-x86_64.c:275 pei-x86_64.c:289 pei-x86_64.c:307 pei-x86_64.c:319
-#: pei-x86_64.c:331
+#: pei-x86_64.c:176 pei-x86_64.c:230 pei-x86_64.c:240 pei-x86_64.c:265
+#: pei-x86_64.c:277 pei-x86_64.c:291 pei-x86_64.c:309 pei-x86_64.c:321
+#: pei-x86_64.c:333
#, c-format
msgid "warning: corrupt unwind data\n"
msgstr "упозорење: оштећени изложени подаци\n"
#. PR 17512: file: 2245-7442-0.004.
-#: pei-x86_64.c:352
+#: pei-x86_64.c:354
#, c-format
msgid "Unknown: %x"
msgstr "Ðепознато: %x"
-#: pei-x86_64.c:403 pei-x86_64.c:413 pei-x86_64.c:422
+#: pei-x86_64.c:405 pei-x86_64.c:415 pei-x86_64.c:424
#, c-format
msgid "warning: xdata section corrupt\n"
msgstr "упозорење: оштећен одељак х-података\n"
-#: pei-x86_64.c:477
+#: pei-x86_64.c:479
#, c-format
msgid "Too many unwind codes (%ld)\n"
msgstr "Превише изложених кодова (%ld)\n"
-#: pei-x86_64.c:563
+#: pei-x86_64.c:565
#, c-format
msgid "Warning: %s section size (%ld) is not a multiple of %d\n"
msgstr "Упозорење: величина одељка „%s“ (%ld) није производ од %d\n"
-#: pei-x86_64.c:570
+#: pei-x86_64.c:572
#, c-format
msgid "Warning: %s section size is zero\n"
msgstr "Упозорење: величина одељка „%s“ је нула\n"
-#: pei-x86_64.c:585
+#: pei-x86_64.c:587
#, c-format
msgid "Warning: %s section size (%ld) is smaller than virtual size (%ld)\n"
msgstr "Упозорење: величина одељка „%s“ (%ld) је мања од виртуелне величине (%ld)\n"
-#: pei-x86_64.c:594
+#: pei-x86_64.c:596
#, c-format
msgid ""
"\n"
@@ -6546,12 +6634,12 @@ msgstr ""
"\n"
"Табела функција (протумачени Ñадржај одељка „%s“)\n"
-#: pei-x86_64.c:597
+#: pei-x86_64.c:599
#, c-format
msgid "vma:\t\t\tBeginAddress\t EndAddress\t UnwindData\n"
msgstr "vma:\t\t\tÐдреÑа почетка\t ÐдреÑа краја\t Изложени подаци\n"
-#: pei-x86_64.c:722
+#: pei-x86_64.c:724
#, c-format
msgid ""
"\n"
@@ -6575,72 +6663,72 @@ msgstr "%pB: недоÑтаје назив увоза за „IMPORT_NAME_EXPORT
msgid "%pB: unrecognized import name type; %x"
msgstr "%pB: непознат назив врÑте увоза; %x"
-#: peicode.h:1298
+#: peicode.h:1299
#, c-format
msgid "%pB: unrecognised machine type (0x%x) in Import Library Format archive"
msgstr "%pB: непозната врÑта машине (0x%x) у архиви запиÑа библиотеке увоза"
-#: peicode.h:1311
+#: peicode.h:1312
#, c-format
msgid "%pB: recognised but unhandled machine type (0x%x) in Import Library Format archive"
msgstr "%pB: позната али необрадива врÑта машине (0x%x) у архиви запиÑа библиотеке увоза"
-#: peicode.h:1329
+#: peicode.h:1330
#, c-format
msgid "%pB: size field is zero in Import Library Format header"
msgstr "%pB: поље величине је нула у заглављу запиÑа библиотеке увоза"
-#: peicode.h:1355
+#: peicode.h:1356
#, c-format
msgid "%pB: string not null terminated in ILF object file"
msgstr "%pB: ниÑка Ñе не завршава нулом у датотеци „ILF“ објекта"
-#: peicode.h:1426
+#: peicode.h:1427
#, c-format
msgid "%pB: error: debug data ends beyond end of debug directory"
msgstr "%pB: грешка: подаци прочишћавања Ñе завршавају изван краја директоријума прочишћавања"
-#: peicode.h:1598
+#: peicode.h:1599
#, c-format
msgid "%pB: adjusting invalid SectionAlignment"
msgstr "%pB: поправљам неиÑправно поравнање одељка"
-#: peicode.h:1608
+#: peicode.h:1609
#, c-format
msgid "%pB: adjusting invalid FileAlignment"
msgstr "%pB: поправљам неиÑправно поравнање датотеке"
-#: peicode.h:1616
+#: peicode.h:1617
#, c-format
msgid "%pB: invalid NumberOfRvaAndSizes"
msgstr "%pB: неиÑправан број Рва и величина"
-#: plugin.c:197
+#: plugin.c:195
#, c-format
msgid "%s: failed to open to extract object only section: %s"
msgstr "%s: ниÑÑам уÑпео да отворим да извучем одељак Ñамо објекта: %s"
-#: plugin.c:214
+#: plugin.c:212
#, c-format
msgid "%pB: invalid file to extract object only section: %s"
msgstr "%pB: неиÑправна датотека за извлачење одељка Ñамо објекта: %s"
-#: plugin.c:227
+#: plugin.c:225
#, c-format
msgid "%pB: failed to extract object only section: %s"
msgstr "%pB: ниÑам уÑпео да извучем одељак Ñамо објекта: %s"
-#: plugin.c:247
+#: plugin.c:245
#, c-format
msgid "%pB: failed to open object only section: %s"
msgstr "%pB: ниÑам уÑпео да отворим одељак Ñамо објекта: %s"
-#: plugin.c:257
+#: plugin.c:255
#, c-format
msgid "%pB: failed to get symbol table in object only section: %s"
msgstr "%pB: ниÑам уÑпео да добавим табелу Ñимбола у одељку Ñамо објекта: %s"
-#: plugin.c:413
+#: plugin.c:411
msgid "plugin framework: out of file descriptors. Try using fewer objects/archives\n"
msgstr "радни оквир прикључка: нема више опиÑника датотека. Покушајте да кориÑтите мање објеката/архива\n"
@@ -6697,17 +6785,17 @@ msgstr "Одељак партиције[%d] = 0x%.8lx (%ld)\n"
msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
msgstr "Дужина партиције[%d] = 0x%.8lx (%ld)\n"
-#: reloc.c:8417
+#: reloc.c:8423
msgid "INPUT_SECTION_FLAGS are not supported"
msgstr "„INPUT_SECTION_FLAGS“ није подржано"
-#: reloc.c:8683
+#: reloc.c:8689
#, c-format
msgid "%pB: unrecognized relocation type %#x in section `%pA'"
msgstr "%pB: непозната врÑта премештања %#x у одељку „%pA“"
#. PR 21803: Suggest the most likely cause of this error.
-#: reloc.c:8687
+#: reloc.c:8693
#, c-format
msgid "is this version of the linker - %s - out of date ?"
msgstr "да није ово издање повезивача – %s – мало заÑтарело ?"
@@ -6733,7 +6821,7 @@ msgstr "%pB(%pA+%#<PRIx64>): померај премештања „%s“ је Ð
msgid "%pB[%pA]: no output section for space %pA"
msgstr "%pB[%pA]: нема излазног одељка за размак „%pA“"
-#: som.c:5449
+#: som.c:5450
#, c-format
msgid ""
"\n"
@@ -6742,7 +6830,7 @@ msgstr ""
"\n"
"Помоћно заглавље извршне\n"
-#: som.c:5758
+#: som.c:5759
msgid "som_sizeof_headers unimplemented"
msgstr "„som_sizeof_headers“ није примењено"
@@ -6766,7 +6854,7 @@ msgstr "%pB:%d: лоша Ñума провере у датотеци S-запиÑ
msgid "%pB(%pA+%#lx): stabs entry has invalid string index"
msgstr "%pB(%pA+%#lx): ÑƒÐ½Ð¾Ñ Ð¾ÐºÑ€ÑšÐ°ÐºÐ° има неиÑправан Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð¸Ñке"
-#: syms.c:1120
+#: syms.c:1121
msgid "unsupported .stab relocation"
msgstr "неподржано „.stab“ премештање"
@@ -8771,11 +8859,11 @@ msgstr " оÑнова: 0x%08x %08x, величина: 0x%08x, заштита: 0
#. FIXME: we do not yet support relocatable link. It is not obvious
#. how to do it for debug infos.
-#: vms-alpha.c:9570
+#: vms-alpha.c:9571
msgid "%P: relocatable link is not supported\n"
msgstr "%P: премеÑтива веза није подржана\n"
-#: vms-alpha.c:9641
+#: vms-alpha.c:9642
#, c-format
msgid "%P: multiple entry points: in modules %pB and %pB\n"
msgstr "%P: тачке више уноÑа: у модулима „%pB“ и „%pB“\n"
@@ -8793,120 +8881,120 @@ msgstr "„_bfd_vms_output_counted“ је позвано Ñа нула бајт
msgid "_bfd_vms_output_counted called with too many bytes"
msgstr "„_bfd_vms_output_counted“ је позвано Ñа превише бајтова"
-#: xcofflink.c:462
+#: xcofflink.c:505
#, c-format
msgid "%pB: warning: illegal symbol index %lu in relocs"
msgstr "%pB: упозорење: неиÑправан Ð¸Ð½Ð´ÐµÐºÑ Ñимбола %lu у премештањима"
-#: xcofflink.c:881
+#: xcofflink.c:924
#, c-format
msgid "%pB: XCOFF shared object when not producing XCOFF output"
msgstr "%pB: „XCOFF“ дељени објекат када Ñе не производи „XCOFF“ излаз"
-#: xcofflink.c:902
+#: xcofflink.c:945
#, c-format
msgid "%pB: dynamic object with no .loader section"
msgstr "%pB: динамички објекат без „.loader“ одељка"
-#: xcofflink.c:1484
+#: xcofflink.c:1527
#, c-format
msgid "%pB: `%s' has line numbers but no enclosing section"
msgstr "%pB: „%s“ има бројеве редова али не и затварајући одељак"
-#: xcofflink.c:1540
+#: xcofflink.c:1583
#, c-format
msgid "%pB: class %d symbol `%s' has no aux entries"
msgstr "%pB: клаÑа %d Ñимбола „%s“ нема помоћних уноÑа"
-#: xcofflink.c:1563
+#: xcofflink.c:1606
#, c-format
msgid "%pB: symbol `%s' has unrecognized csect type %d"
msgstr "%pB: Ñимбол „%s“ има непознату врÑту цÑектора „%d“"
-#: xcofflink.c:1576
+#: xcofflink.c:1619
#, c-format
msgid "%pB: bad XTY_ER symbol `%s': class %d scnum %d scnlen %<PRId64>"
msgstr "%pB: лош „XTY_ER“ Ñимбол „%s“: клаÑа %d Ñцброј %d Ñцндужине %<PRId64>"
-#: xcofflink.c:1607
+#: xcofflink.c:1650
#, c-format
msgid "%pB: XMC_TC0 symbol `%s' is class %d scnlen %<PRIu64>"
msgstr "%pB: „XMC_TC0“ Ñимбол „%s“ је клаÑа %d scn-дужине %<PRIu64>"
-#: xcofflink.c:1742
+#: xcofflink.c:1785
#, c-format
msgid "%pB: TOC entry `%s' has a R_TLSMLrelocation not targeting itself"
msgstr "%pB: ÑƒÐ½Ð¾Ñ Ñ‚Ð°Ð±ÐµÐ»Ðµ Ñадржаја „%s“ има „R_TLSML“-премештање које не циља на Ñебе Ñамог"
-#: xcofflink.c:1776
+#: xcofflink.c:1819
#, c-format
msgid "%pB: csect `%s' not in enclosing section"
msgstr "%pB: ц-одељак „%s“ није у затварајућем одељку"
-#: xcofflink.c:1885
+#: xcofflink.c:1928
#, c-format
msgid "%pB: misplaced XTY_LD `%s'"
msgstr "%pB: лоше поÑтављено „XTY_LD“ „%s“"
-#: xcofflink.c:2228
+#: xcofflink.c:2271
#, c-format
msgid "%pB: reloc %s:%<PRId64> not in csect"
msgstr "%pB: премештање „%s:%<PRId64>“ није у ц-одељку"
-#: xcofflink.c:3337
+#: xcofflink.c:3380
#, c-format
msgid "%pB: cannot export internal symbol `%s`."
msgstr "%pB: не могу да извезем унутрашњи Ñимбол „%s“."
-#: xcofflink.c:3385
+#: xcofflink.c:3428
#, c-format
msgid "%s: no such symbol"
msgstr "%s: нема таквог Ñимбола"
-#: xcofflink.c:3494
+#: xcofflink.c:3537
#, c-format
msgid "warning: attempt to export undefined symbol `%s'"
msgstr "упозорење: покушај извоза недефиниÑаног Ñимбола „%s“"
-#: xcofflink.c:3842
+#: xcofflink.c:3885
msgid "error: undefined symbol __rtinit"
msgstr "грешка: Ñимбол „__rtinit“ није дефиниÑан"
-#: xcofflink.c:4855
+#: xcofflink.c:4902
#, c-format
msgid "%pB: Unable to find a stub csect in rangeof relocation at %#<PRIx64> targeting'%s'"
msgstr "%pB: Ðе могу да нађем окрајак ц-одељка у премештају опÑега на %#<PRIx64> који показује на „%s“"
-#: xcofflink.c:4884
+#: xcofflink.c:4931
#, c-format
msgid "%pB: Cannot create stub entry '%s'"
msgstr "%pB: Ðе могу да Ñтворим ÑƒÐ½Ð¾Ñ Ð¾ÐºÑ€Ð°Ñ˜ÐºÐ° „%s“"
-#: xcofflink.c:5004
+#: xcofflink.c:5051
msgid "TOC overflow during stub generation; try -mminimal-toc when compiling"
msgstr "Прекорачење табеле Ñадржаја за време Ñтварања окрајка; пробајте Ñа „-mminimal-toc“ приликом превођења"
-#: xcofflink.c:5072
+#: xcofflink.c:5119
#, c-format
msgid "%pB: loader reloc in unrecognized section `%s'"
msgstr "%pB: премештање утоваривача у непознатом одељку „%s“"
-#: xcofflink.c:5084
+#: xcofflink.c:5131
#, c-format
msgid "%pB: `%s' in loader reloc but not loader sym"
msgstr "%pB: „%s“ је у премештању утоваривача али није Ñимбол утоваривача"
-#: xcofflink.c:5101
+#: xcofflink.c:5148
#, c-format
msgid "%pB: loader reloc in read-only section %pA"
msgstr "%pB: премештање утоваривача у одељку Ñамо за читање „%pA“"
-#: xcofflink.c:6180
+#: xcofflink.c:6227
#, c-format
msgid "TOC overflow: %#<PRIx64> > 0x10000; try -mminimal-toc when compiling"
msgstr "Прекорачење табеле Ñадржаја: %#<PRIx64> > 0x10000; пробајте Ñа „-mminimal-toc“ приликом превођења"
-#: xcofflink.c:7296
+#: xcofflink.c:7343
#, c-format
msgid "Unable to link input file: %s"
msgstr "Ðе могу да повежем улазну датотеку: %s"
@@ -8931,141 +9019,141 @@ msgid "%s is defined but plugin support is disabled"
msgstr "„%s“ је дефиниÑано али је подршка прикључка иÑкључена"
#. Not fatal, this callback cannot fail.
-#: elfnn-aarch64.c:2878 elfnn-riscv.c:5739
+#: elfnn-aarch64.c:2889 elfnn-riscv.c:5940
#, c-format
msgid "unknown attribute for symbol `%s': 0x%02x"
msgstr "непознат атрибут за Ñимбол „%s“: 0x%02x"
-#: elfnn-aarch64.c:5468
+#: elfnn-aarch64.c:5486
#, c-format
msgid "%pB: error: erratum 835769 stub out of range (input file too large)"
msgstr "%pB: грешка: окрајак грешке 835769 је ван опÑега (улазна датотека је превелика)"
-#: elfnn-aarch64.c:5560
+#: elfnn-aarch64.c:5578
#, c-format
msgid "%pB: error: erratum 843419 stub out of range (input file too large)"
msgstr "%pB: грешка: окрајак грешке 843419 је ван опÑега (улазна датотека је превелика)"
-#: elfnn-aarch64.c:5573
+#: elfnn-aarch64.c:5591
#, c-format
msgid "%pB: error: erratum 843419 immediate 0x%<PRIx64> out of range for ADR (input file too large) and --fix-cortex-a53-843419=adr used. Run the linker with --fix-cortex-a53-843419=full instead"
msgstr "%pB: грешка: погрешка 843419 непоÑредно 0x%<PRIx64> је ван опÑега за ÐДР (улазна датотека је превелика) и коришћено је „--fix-cortex-a53-843419=адр“. Тако да покрећем повезивача Ñа „--fix-cortex-a53-843419=full“"
-#: elfnn-aarch64.c:6116
+#: elfnn-aarch64.c:6134
#, c-format
msgid "%pB: relocation %s against symbol `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC"
msgstr "%pB: премештање „%s“ наÑпрам Ñимбола „%s“ која Ñе може Ñвезати Ñпоља не може Ñе кориÑтити приликом Ñтварања дељеног објекта; поново преведите Ñа „-fPIC“"
-#: elfnn-aarch64.c:6136
+#: elfnn-aarch64.c:6154
#, c-format
msgid "%pB: conditional branch to undefined symbol `%s' not allowed"
msgstr "%pB: уÑловна грана за недефиниÑани Ñимбол „%s“ није дозвољена"
-#: elfnn-aarch64.c:6224 elfnn-kvx.c:2381
+#: elfnn-aarch64.c:6242 elfnn-kvx.c:2382
#, c-format
msgid "%pB: local symbol descriptor table be NULL when applying relocation %s against local symbol"
msgstr "%pB: табела опиÑника локалног Ñимбола биће „NULL“ приликом примене премештања „%s“ наÑпрам локалног Ñимбола"
-#: elfnn-aarch64.c:6338 elfnn-aarch64.c:6375
+#: elfnn-aarch64.c:6356 elfnn-aarch64.c:6393
#, c-format
msgid "%pB: TLS relocation %s against undefined symbol `%s'"
msgstr "%pB: „TLS“ премештање „%s“ наÑпрам недефиниÑаног Ñимбола „%s“"
-#: elfnn-aarch64.c:7366
+#: elfnn-aarch64.c:7384
msgid "too many GOT entries for -fpic, please recompile with -fPIC"
msgstr "превише „GOT“ уноÑа за „-fpic“, поново преведите Ñа „-fPIC“"
-#: elfnn-aarch64.c:7394
+#: elfnn-aarch64.c:7412
msgid "one possible cause of this error is that the symbol is being referenced in the indicated code as if it had a larger alignment than was declared where it was defined"
msgstr "један од могућих разлога ове грешке може бити да Ñимбол упутан у назначеном коду има веће поравнање него што је објављено тамо где је дефиниÑан"
-#: elfnn-aarch64.c:7961
+#: elfnn-aarch64.c:7979
#, c-format
msgid "%pB: relocation %s against `%s' can not be used when making a shared object"
msgstr "%pB: премештање „%s“ наÑпрам „%s“ Ñе не може кориÑтити приликом Ñтварања дељеног објекта"
-#: elfnn-aarch64.c:8922
+#: elfnn-aarch64.c:8940
#, c-format
-msgid "%F%P: %pB: copy relocation against non-copyable protected symbol `%s'\n"
-msgstr "%F%P: %pB: премештање умношка за неумноживи заштићени Ñимбол „%s“\n"
+msgid "%P: %pB: copy relocation against non-copyable protected symbol `%s'\n"
+msgstr "%P: %pB: премештање умношка за неумноживи заштићени Ñимбол „%s“\n"
#: elfnn-kvx.c:929
-msgid "%F%P: Could not assign '%pA' to an output section. Retry without --enable-non-contiguous-regions.\n"
-msgstr "%F%P: Ðе могу да доделим „%pA“ излазном одељку. Покушајте поново без „--enable-non-contiguous-regions“.\n"
+msgid "%P: Could not assign '%pA' to an output section. Retry without --enable-non-contiguous-regions.\n"
+msgstr "%P: Ðе могу да доделим „%pA“ излазном одељку. Покушајте поново без „--enable-non-contiguous-regions“.\n"
-#: elfnn-kvx.c:2126
+#: elfnn-kvx.c:2127
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unresolvable %s relocation in section `%s'"
msgstr "%pB(%pA+%#<PRIx64>): нерешиво „%s“ премештање у одељку „%s“"
-#: elfnn-kvx.c:2850
+#: elfnn-kvx.c:2851
#, c-format
msgid "%s: Bad ELF id: `%d'"
msgstr "%s: Лош ELF ид: „%d“"
-#: elfnn-kvx.c:2905
+#: elfnn-kvx.c:2906
#, c-format
msgid "%s: compiled as 32-bit object and %s is 64-bit"
msgstr "%s: преведен је као 32-битни објекат а „%s“ је 64-битни"
-#: elfnn-kvx.c:2908
+#: elfnn-kvx.c:2909
#, c-format
msgid "%s: compiled as 64-bit object and %s is 32-bit"
msgstr "%s: преведен је као 64-битни објекат а „%s“ је 32-битни"
-#: elfnn-kvx.c:2910
+#: elfnn-kvx.c:2911
#, c-format
msgid "%s: object size does not match that of target %s"
msgstr "%s: величина објекта не одговара величини циља „%s“"
#. Ignore init flag - it may not be set, despite the flags field
#. containing valid data.
-#: elfnn-kvx.c:2998
+#: elfnn-kvx.c:2999
#, c-format
msgid "Private flags = 0x%lx : "
msgstr "Приватне заÑтавице = 0x%lx: "
-#: elfnn-kvx.c:3002
+#: elfnn-kvx.c:3003
#, c-format
msgid "Coolidge (kv3) V1 64 bits"
msgstr "Coolidge (kv3) V1 64 бита"
-#: elfnn-kvx.c:3004
+#: elfnn-kvx.c:3005
#, c-format
msgid "Coolidge (kv3) V2 64 bits"
msgstr "Coolidge (kv3) V2 64 бита"
-#: elfnn-kvx.c:3006
+#: elfnn-kvx.c:3007
#, c-format
msgid "Coolidge (kv4) V1 64 bits"
msgstr "Coolidge (kv4) V1 64 бита"
-#: elfnn-kvx.c:3011
+#: elfnn-kvx.c:3012
#, c-format
msgid "Coolidge (kv3) V1 32 bits"
msgstr "Coolidge (kv3) V1 32 бита"
-#: elfnn-kvx.c:3013
+#: elfnn-kvx.c:3014
#, c-format
msgid "Coolidge (kv3) V2 32 bits"
msgstr "Coolidge (kv3) V2 32 бита"
-#: elfnn-kvx.c:3015
+#: elfnn-kvx.c:3016
#, c-format
msgid "Coolidge (kv4) V1 32 bits"
msgstr "Coolidge (kv4) V1 32 бита"
-#: elfnn-kvx.c:3847
+#: elfnn-kvx.c:3848
#, c-format
msgid "relocation against `%s' has faulty GOT type "
msgstr "премештање за „%s“ има погрешну GOT врÑту "
-#: elfnn-loongarch.c:294 elfnn-loongarch.c:346
+#: elfnn-loongarch.c:303 elfnn-loongarch.c:355
#, c-format
msgid "%#<PRIx64> invaild imm"
msgstr "%#<PRIx64> неиÑправно „imm“"
-#: elfnn-loongarch.c:528 elfnn-riscv.c:4182
+#: elfnn-loongarch.c:537 elfnn-riscv.c:4383
#, c-format
msgid ""
"%pB: ABI is incompatible with that of the selected emulation:\n"
@@ -9074,99 +9162,104 @@ msgstr ""
"%pB: „ABI“ није ÑаглаÑно Ñа оним из изабране емулације:\n"
" циљна емулација „%s“ Ñе не подудара Ñа „%s“"
-#: elfnn-loongarch.c:583
+#: elfnn-loongarch.c:592
#, c-format
msgid "%pB: can't link different ABI object."
msgstr "%pB: не могу да повежем другачији „ABI“ објекат."
-#: elfnn-loongarch.c:726
+#: elfnn-loongarch.c:735
msgid "Internal error: unreachable."
msgstr "Унутрашња грешка: недоÑтижно."
-#: elfnn-loongarch.c:906
+#: elfnn-loongarch.c:915
#, c-format
msgid "%pB:(%pA+%#lx): relocation %s against `%s` can not be used when making %s; recompile with %s%s"
msgstr "%pB:(%pA+%#lx): премештај „%s“ за „%s“ Ñе не може кориÑтити приликом Ñтварања „%s“; поново преведите Ñа „%s%s“"
-#: elfnn-loongarch.c:910
+#: elfnn-loongarch.c:919
msgid " and check the symbol visibility"
msgstr " и проверава видљивоÑÑ‚ Ñимбола"
-#: elfnn-loongarch.c:1036
+#: elfnn-loongarch.c:1045
#, c-format
msgid "%pB: stack based reloc type (%u) is not supported with -z pack-relative-relocs"
msgstr "%pB: врÑта премештаја на оÑнову Ñпремника (%u) није подржана Ñа „-z pack-relative-relocs“"
-#: elfnn-loongarch.c:1231
+#: elfnn-loongarch.c:1240
#, c-format
msgid "%pB: relocation R_LARCH_32 against non-absolute symbol `%s' cannot be used in ELFCLASS64 when making a shared object or PIE"
msgstr "%pB: премештај „R_LARCH_32“ за не-апÑолутни Ñимбол „%s“ Ñе не може кориÑтити у „ELFCLASS64“ приликом Ñтварања дељеног објекта или IPE"
-#: elfnn-loongarch.c:1296
+#: elfnn-loongarch.c:1305
#, c-format
msgid "%pB: R_LARCH_ALIGN with offset %<PRId64> not aligned to instruction boundary"
msgstr "%pB: R_LARCH_ALIGN Ñа померајем %<PRId64> није поравнато на границу инÑтрукције"
-#: elfnn-loongarch.c:4174
+#: elfnn-loongarch.c:4196
msgid "cannot resolve R_LARCH_PCREL20_S2 against undefined weak symbol with addend out of [-2048, 2048)"
msgstr "не могу да решим „R_LARCH_PCREL20_S2“ за неодређено Ñлаб Ñимбол Ñа Ñабирком ван [-2048, 2048)"
-#: elfnn-loongarch.c:4684
+#: elfnn-loongarch.c:4706
msgid "recompile with 'gcc -mno-relax' or 'as -mno-relax' or 'ld --no-relax'"
msgstr "поново преведите Ñа „gcc -mno-relax“ или „as -mno-relax“ или „ld --no-relax“"
-#: elfnn-loongarch.c:5301 elfnn-riscv.c:4967
+#: elfnn-loongarch.c:5584 elfnn-riscv.c:5168
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %<PRId64> bytes required for alignment to %<PRId64>-byte boundary, but only %<PRId64> present"
msgstr "%pB(%pA+%#<PRIx64>): %<PRId64> бајта је потребно за поравнање на %<PRId64>-бајтну границу, али Ñамо %<PRId64> је приÑутно"
-#: elfnn-riscv.c:329 elfnn-riscv.c:364
+#: elfnn-riscv.c:385 elfnn-riscv.c:436 elfnn-riscv.c:484 elfnn-riscv.c:520
#, c-format
msgid "%pB: warning: RVE PLT generation not supported"
msgstr "%pB: упозорење: „RVE PLT“ Ñтварање није подржано"
-#: elfnn-riscv.c:927
+#: elfnn-riscv.c:675
+#, c-format
+msgid "%pB: error: unsupported PLT type: %u"
+msgstr "%pB: грешка: неподржана PLT врÑта: %u"
+
+#: elfnn-riscv.c:1120
#, c-format
msgid "%pB: relocation %s against absolute symbol `%s' can not be used when making a shared object"
msgstr "%pB: премештање „%s“ наÑпрам апÑолутног Ñимбола „%s“ Ñе не може кориÑтити приликом Ñтварања дељеног објекта"
-#: elfnn-riscv.c:969
+#: elfnn-riscv.c:1162
#, c-format
msgid "%pB: relocation %s against non-absolute symbol `%s' can not be used in RV32 when making a shared object"
msgstr "%pB: премештање „%s“ наÑпрам неапÑолутног Ñимбола „%s“ Ñе не може кориÑтити у „RV32“ приликом Ñтварања дељеног објекта"
-#: elfnn-riscv.c:1898
+#: elfnn-riscv.c:2095
#, c-format
msgid "final size of uleb128 value at offset 0x%lx in %pA from %pB exceeds available space"
msgstr "крајња величина „uleb128“ вредноÑти на померају 0x%lx у „%pA“ из „%pB“ премашује раÑположиви проÑтор"
-#: elfnn-riscv.c:2140
+#: elfnn-riscv.c:2337
#, c-format
msgid "%pcrel_lo missing matching %pcrel_hi"
msgstr "„%pcrel_lo“-у недоÑтаје подударајуће „%pcrel_hi“"
-#: elfnn-riscv.c:2143
+#: elfnn-riscv.c:2340
#, c-format
msgid "%pcrel_lo with addend isn't allowed for R_RISCV_GOT_HI20"
msgstr "„%pcrel_lo“ Ñа Ñабирком није дозвољено за „R_RISCV_GOT_HI20“"
#. Check the overflow when adding reloc addend.
-#: elfnn-riscv.c:2148
+#: elfnn-riscv.c:2345
#, c-format
msgid "%%pcrel_lo overflow with an addend, the value of %%pcrel_hi is 0x%<PRIx64> without any addend, but may be 0x%<PRIx64> after adding the %%pcrel_lo addend"
msgstr "„%%pcrel_lo“ прекорачење Ñа Ñабирком, вредноÑÑ‚ за „%%pcrel_hi“ је 0x%<PRIx64> без икаквог Ñабирка, али може бити 0x%<PRIx64> након додавања „%%pcrel_lo“ Ñабирка"
-#: elfnn-riscv.c:2156
+#: elfnn-riscv.c:2353
#, c-format
msgid "%pcrel_lo overflow with an addend"
msgstr "„%pcrel_lo“ прекорачење Ñа Ñабирком"
-#: elfnn-riscv.c:2639
+#: elfnn-riscv.c:2843
#, c-format
msgid "%pB: warning: R_RISCV_SUB_ULEB128 with non-zero addend, please rebuild by binutils 2.42 or up"
msgstr "%pB: упозорење: „R_RISCV_SUB_ULEB128“ Ñа не-нултим додатком, поново изградите binutils-ом 2.42 или већим"
-#: elfnn-riscv.c:2719
+#: elfnn-riscv.c:2923
msgid "The addend isn't allowed for R_RISCV_GOT_HI20"
msgstr "Сабирак није дозвољен за „R_RISCV_GOT_HI20“"
@@ -9184,92 +9277,92 @@ msgstr "Сабирак није дозвољен за „R_RISCV_GOT_HI20“"
#.
#. Perhaps we also need the similar checks for the
#. R_RISCV_BRANCH and R_RISCV_RVC_BRANCH relocations.
-#: elfnn-riscv.c:2820
+#: elfnn-riscv.c:3022
#, c-format
msgid "%%X%%P: relocation %s against `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC\n"
msgstr "%%X%%P: премештање „%s“ наÑпрам „%s“ која Ñе може Ñвезати Ñпоља не може Ñе кориÑтити приликом Ñтварања дељеног објекта; поново преведите Ñа „-fPIC“\n"
-#: elfnn-riscv.c:2902
+#: elfnn-riscv.c:3103
#, c-format
msgid "%pcrel_lo section symbol with an addend"
msgstr "Ñимбол „%pcrel_lo“ одељка Ñа Ñабирком"
-#: elfnn-riscv.c:2923
+#: elfnn-riscv.c:3124
#, c-format
msgid "%tlsdesc_lo with addend"
msgstr "„%tlsdesc_lo“ Ñа Ñабирком"
-#: elfnn-riscv.c:3156
+#: elfnn-riscv.c:3357
#, c-format
msgid "%%X%%P: unresolvable %s relocation against symbol `%s'\n"
msgstr "%%X%%P: нерешиво „%s“ премештање наÑпрам Ñимбола „%s“\n"
-#: elfnn-riscv.c:3191
+#: elfnn-riscv.c:3392
msgid "%X%P: internal error: out of range error\n"
msgstr "%X%P: унутрашња грешка: изван опÑега\n"
-#: elfnn-riscv.c:3196
+#: elfnn-riscv.c:3397
msgid "%X%P: internal error: unsupported relocation error\n"
msgstr "%X%P: унутрашња грешка: премештање није подржано\n"
-#: elfnn-riscv.c:3202
+#: elfnn-riscv.c:3403
msgid "dangerous relocation error"
msgstr "опаÑно премештање"
-#: elfnn-riscv.c:3208
+#: elfnn-riscv.c:3409
msgid "%X%P: internal error: unknown error\n"
msgstr "%X%P: унутрашња грешка: непозната грешка\n"
-#: elfnn-riscv.c:3785
+#: elfnn-riscv.c:3982
#, c-format
msgid "error: %pB: corrupted ISA string '%s'. First letter should be 'i' or 'e' but got '%s'"
msgstr "грешка: %pB: оштећена ISA ниÑка „%s“. Прво Ñлово треба да буде „i“ или „e“ али добих „%s“"
-#: elfnn-riscv.c:3828
+#: elfnn-riscv.c:4025
#, c-format
msgid "error: %pB: mis-matched ISA string to merge '%s' and '%s'"
msgstr "грешка: %pB: неодговарајућа ISA ниÑка за Ñтапање „%s“ и „%s“"
-#: elfnn-riscv.c:3965
+#: elfnn-riscv.c:4162
#, c-format
msgid "error: %pB: ISA string of input (%s) doesn't match output (%s)"
msgstr "грешка: %pB: ISA ниÑка улаза (%s) не одговара излазу (%s)"
-#: elfnn-riscv.c:3985
+#: elfnn-riscv.c:4182
#, c-format
msgid "error: %pB: XLEN of input (%u) doesn't match output (%u)"
msgstr "грешка: %pB: „XLEN“ ниÑка улаза (%u) не одговара излазу (%u)"
-#: elfnn-riscv.c:3993
+#: elfnn-riscv.c:4190
#, c-format
msgid "error: %pB: unsupported XLEN (%u), you might be using wrong emulation"
msgstr "грешка: %pB: неподржано „XLEN“ (%u), можда кориÑтите погрешну емулацију"
-#: elfnn-riscv.c:4113
+#: elfnn-riscv.c:4314
msgid "warning: privileged spec version 1.9.1 can not be linked with other spec versions"
msgstr "упозорење: привилеговано Ñпец издање 1.9.1 Ñе не може повезати Ñа другим Ñпец издањима"
-#: elfnn-riscv.c:4141
+#: elfnn-riscv.c:4342
#, c-format
msgid "error: %pB use %u-byte stack aligned but the output use %u-byte stack aligned"
msgstr "грешка: „%pB“ кориÑти %u-бајтно поравнан Ñпремник али излаз кориÑти %u-бајтно поравнан Ñпремник"
-#: elfnn-riscv.c:4238
+#: elfnn-riscv.c:4439
#, c-format
msgid "%pB: can't link %s modules with %s modules"
msgstr "%pB: не могу да повежем „%s“ модуле Ñа „%s“ модулима"
-#: elfnn-riscv.c:4248
+#: elfnn-riscv.c:4449
#, c-format
msgid "%pB: can't link RVE with other target"
msgstr "%pB: не могу да повежем „RVE“ Ñа другом метом"
-#: elfnn-riscv.c:4272
+#: elfnn-riscv.c:4473
#, c-format
msgid "warning: %pB: unknown RISCV ABI object attribute %d"
msgstr "упозорење: %pB: атрибут „%d“ објекта „RISCV ABI“ није познат"
-#: elfnn-riscv.c:969
+#: elfnn-riscv.c:1162
#, c-format
msgid "%pB: relocation %s against non-absolute symbol `%s' can not be used in RV64 when making a shared object"
msgstr "%pB: премештање „%s“ наÑпрам неапÑолутног Ñимбола „%s“ Ñе не може кориÑтити у „RV64“ приликом Ñтварања дељеног објекта"
@@ -9289,86 +9382,86 @@ msgstr "%pB: понеÑтало је меморије при Ñтварању н
msgid "%pB: unable to create fake empty section"
msgstr "%pB: не могу да направим лажни празан одељак"
-#: peXXigen.c:924
+#: peXXigen.c:928
#, c-format
msgid "%pB:%.8s: section below image base"
msgstr "%pB:%.8s: одељак иÑпод оÑнове Ñлике"
-#: peXXigen.c:929
+#: peXXigen.c:933
#, c-format
msgid "%pB:%.8s: RVA truncated"
msgstr "%pB:%.8s: „RVA“ је Ñкраћено"
-#: peXXigen.c:1061
+#: peXXigen.c:1066
#, c-format
msgid "%pB: line number overflow: 0x%lx > 0xffff"
msgstr "%pB: прекорачење броја редова: 0x%lx > 0xffff"
-#: peXXigen.c:1227
+#: peXXigen.c:1232
msgid "Export Directory [.edata (or where ever we found it)]"
msgstr "Директоријум извоза [„.edata“ (или тамо где Ñмо га нашли)]"
-#: peXXigen.c:1228
+#: peXXigen.c:1233
msgid "Import Directory [parts of .idata]"
msgstr "Директоријум увоза [део „.idata“]"
-#: peXXigen.c:1229
+#: peXXigen.c:1234
msgid "Resource Directory [.rsrc]"
msgstr "Директоријум изворишта [.rsrc]"
-#: peXXigen.c:1230
+#: peXXigen.c:1235
msgid "Exception Directory [.pdata]"
msgstr "Директоријум изузетака [.pdata]"
-#: peXXigen.c:1231
+#: peXXigen.c:1236
msgid "Security Directory"
msgstr "Директоријум безбедноÑти"
-#: peXXigen.c:1232
+#: peXXigen.c:1237
msgid "Base Relocation Directory [.reloc]"
msgstr "Директоријум премештања оÑнове [.reloc]"
-#: peXXigen.c:1233
+#: peXXigen.c:1238
msgid "Debug Directory"
msgstr "Директоријум прочишћавања"
-#: peXXigen.c:1234
+#: peXXigen.c:1239
msgid "Description Directory"
msgstr "Директоријум опиÑа"
-#: peXXigen.c:1235
+#: peXXigen.c:1240
msgid "Special Directory"
msgstr "Директоријум поÑебноÑти"
-#: peXXigen.c:1236
+#: peXXigen.c:1241
msgid "Thread Storage Directory [.tls]"
msgstr "Директоријум Ñмештаја нити [.tls]"
-#: peXXigen.c:1237
+#: peXXigen.c:1242
msgid "Load Configuration Directory"
msgstr "Директоријум подешавања учитавања"
-#: peXXigen.c:1238
+#: peXXigen.c:1243
msgid "Bound Import Directory"
msgstr "Директоријум увоза Ñвеза"
-#: peXXigen.c:1239
+#: peXXigen.c:1244
msgid "Import Address Table Directory"
msgstr "Директоријум табеле увоза адреÑе"
-#: peXXigen.c:1240
+#: peXXigen.c:1245
msgid "Delay Import Directory"
msgstr "Директоријум заÑтоја увоза"
-#: peXXigen.c:1241
+#: peXXigen.c:1246
msgid "CLR Runtime Header"
msgstr "Заглавље ЦЛР извршавања"
-#: peXXigen.c:1242
+#: peXXigen.c:1247
msgid "Reserved"
msgstr "РезервиÑано"
-#: peXXigen.c:1307
+#: peXXigen.c:1312
#, c-format
msgid ""
"\n"
@@ -9377,7 +9470,7 @@ msgstr ""
"\n"
"ПоÑтоји табела увоза, али не могу да нађем одељак који је Ñадржи\n"
-#: peXXigen.c:1313
+#: peXXigen.c:1318
#, c-format
msgid ""
"\n"
@@ -9386,7 +9479,7 @@ msgstr ""
"\n"
"ПоÑтоји табела увоза у „%s“, али одељак нема Ñадржај\n"
-#: peXXigen.c:1320
+#: peXXigen.c:1325
#, c-format
msgid ""
"\n"
@@ -9395,7 +9488,7 @@ msgstr ""
"\n"
"ПоÑтоји табела увоза у „%s“ на 0x%lx\n"
-#: peXXigen.c:1326
+#: peXXigen.c:1331
#, c-format
msgid ""
"\n"
@@ -9404,7 +9497,7 @@ msgstr ""
"\n"
"Табеле увоза (протумачени Ñадржај одељка „%s“)\n"
-#: peXXigen.c:1329
+#: peXXigen.c:1334
#, c-format
msgid ""
" vma: Hint Time Forward DLL First\n"
@@ -9413,7 +9506,7 @@ msgstr ""
" vma: Ðајава Време Ðапред ДЛЛ Први\n"
" Табела ОтиÑак Ланац Ðазив Потпрограм\n"
-#: peXXigen.c:1378
+#: peXXigen.c:1383
#, c-format
msgid ""
"\n"
@@ -9422,12 +9515,12 @@ msgstr ""
"\n"
"\t„DLL“ назив: %.*s\n"
-#: peXXigen.c:1394
+#: peXXigen.c:1399
#, c-format
msgid "\tvma: Ordinal Hint Member-Name Bound-To\n"
msgstr "\tvma: Редни Ðајава Ðазив_члана Свезан-за\n"
-#: peXXigen.c:1419
+#: peXXigen.c:1424
#, c-format
msgid ""
"\n"
@@ -9436,12 +9529,12 @@ msgstr ""
"\n"
"ПоÑтоји први потпрограм, али не могу да нађем одељак који га Ñадржи\n"
-#: peXXigen.c:1469 peXXigen.c:1514
+#: peXXigen.c:1474 peXXigen.c:1519
#, c-format
msgid "\t<corrupt: 0x%08lx>"
msgstr "\t<оштећење: 0x%08lx>"
-#: peXXigen.c:1608
+#: peXXigen.c:1613
#, c-format
msgid ""
"\n"
@@ -9450,7 +9543,7 @@ msgstr ""
"\n"
"ПоÑтоји табела извоза, али не могу да нађем одељак који је Ñадржи\n"
-#: peXXigen.c:1621
+#: peXXigen.c:1626
#, c-format
msgid ""
"\n"
@@ -9459,7 +9552,7 @@ msgstr ""
"\n"
"ПоÑтоји табела извоза у „%s“, али је премала (%d)\n"
-#: peXXigen.c:1629
+#: peXXigen.c:1634
#, c-format
msgid ""
"\n"
@@ -9468,7 +9561,7 @@ msgstr ""
"\n"
"ПоÑтоји табела извоза у „%s“, али Ñадржај Ñе не може прочитати\n"
-#: peXXigen.c:1635
+#: peXXigen.c:1640
#, c-format
msgid ""
"\n"
@@ -9477,7 +9570,7 @@ msgstr ""
"\n"
"ПоÑтоји табела извоза у „%s“ на 0x%lx\n"
-#: peXXigen.c:1666
+#: peXXigen.c:1671
#, c-format
msgid ""
"\n"
@@ -9488,67 +9581,67 @@ msgstr ""
"Табеле извоза (протумачени Ñадржај одељка „%s“)\n"
"\n"
-#: peXXigen.c:1670
+#: peXXigen.c:1675
#, c-format
msgid "Export Flags \t\t\t%lx\n"
msgstr "ЗаÑтавице извоза \t\t%lx\n"
-#: peXXigen.c:1673
+#: peXXigen.c:1678
#, c-format
msgid "Time/Date stamp \t\t%lx\n"
msgstr "ОтиÑак времена/датума \t\t%lx\n"
-#: peXXigen.c:1677
+#: peXXigen.c:1682
#, c-format
msgid "Major/Minor \t\t\t%d/%d\n"
msgstr "Већи/Мањи \t\t\t%d/%d\n"
-#: peXXigen.c:1680
+#: peXXigen.c:1685
#, c-format
msgid "Name \t\t\t\t"
msgstr "Ðазив \t\t\t\t"
-#: peXXigen.c:1691
+#: peXXigen.c:1696
#, c-format
msgid "Ordinal Base \t\t\t%ld\n"
msgstr "ОÑнова редног броја \t\t\t%ld\n"
-#: peXXigen.c:1694
+#: peXXigen.c:1699
#, c-format
msgid "Number in:\n"
msgstr "Број улаза:\n"
-#: peXXigen.c:1697
+#: peXXigen.c:1702
#, c-format
msgid "\tExport Address Table \t\t%08lx\n"
msgstr "\tТабела адреÑа извоза \t %08lx\n"
-#: peXXigen.c:1701
+#: peXXigen.c:1706
#, c-format
msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
msgstr "\tТабела [Ðазив показивача/редног броја]\t%08lx\n"
-#: peXXigen.c:1704
+#: peXXigen.c:1709
#, c-format
msgid "Table Addresses\n"
msgstr "Табела адреÑа\n"
-#: peXXigen.c:1707
+#: peXXigen.c:1712
#, c-format
msgid "\tExport Address Table \t\t"
msgstr "\tТабела адреÑа извоза \t\t"
-#: peXXigen.c:1712
+#: peXXigen.c:1717
#, c-format
msgid "\tName Pointer Table \t\t"
msgstr "\tТабела назива показивача \t\t"
-#: peXXigen.c:1717
+#: peXXigen.c:1722
#, c-format
msgid "\tOrdinal Table \t\t\t"
msgstr "\tТабела редних бројева \t\t\t"
-#: peXXigen.c:1731
+#: peXXigen.c:1736
#, c-format
msgid ""
"\n"
@@ -9557,20 +9650,20 @@ msgstr ""
"\n"
"Табела адреÑе извоза —— ОÑнова редних бројева %ld\n"
-#: peXXigen.c:1741
+#: peXXigen.c:1746
#, c-format
msgid "\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n"
msgstr "\tÐеиÑправна табела адреÑе извоза „rva“ (0x%lx) или број уноÑа (0x%lx)\n"
-#: peXXigen.c:1760
+#: peXXigen.c:1765
msgid "Forwarder RVA"
msgstr "„RVA“ проÑлеђивача"
-#: peXXigen.c:1772
+#: peXXigen.c:1777
msgid "Export RVA"
msgstr "„RVA“ извоза"
-#: peXXigen.c:1779
+#: peXXigen.c:1784
#, c-format
msgid ""
"\n"
@@ -9579,27 +9672,27 @@ msgstr ""
"\n"
"[Редни/Ðазив Показивач] Табела – Редни ОÑнова %ld\n"
-#: peXXigen.c:1789
+#: peXXigen.c:1794
#, c-format
msgid "\tInvalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)\n"
msgstr "\tÐеиÑправна табела назива показивача „rva“ (0x%lx) или број уноÑа (0x%lx)\n"
-#: peXXigen.c:1796
+#: peXXigen.c:1801
#, c-format
msgid "\tInvalid Ordinal Table rva (0x%lx) or entry count (0x%lx)\n"
msgstr "\tÐеиÑправна табела редног „rva“ (0x%lx) или број уноÑа (0x%lx)\n"
-#: peXXigen.c:1810
+#: peXXigen.c:1815
#, c-format
msgid "\t[%4ld] +base[%4ld] %04lx <corrupt offset: %lx>\n"
msgstr "\t[%4ld] +base[%4ld] %04lx <оштећен померај: %lx>\n"
-#: peXXigen.c:1867 peXXigen.c:2037
+#: peXXigen.c:1872 peXXigen.c:2042
#, c-format
msgid "warning, .pdata section size (%ld) is not a multiple of %d\n"
msgstr "упозорење, величина одељка „.pdata“ (%ld) није производ од %d\n"
-#: peXXigen.c:1871 peXXigen.c:2041
+#: peXXigen.c:1876 peXXigen.c:2046
#, c-format
msgid ""
"\n"
@@ -9608,12 +9701,12 @@ msgstr ""
"\n"
"Табела функција (протумачени Ñадржај одељка „.pdata“)\n"
-#: peXXigen.c:1874
+#: peXXigen.c:1879
#, c-format
msgid " vma:\t\t\tBegin Address End Address Unwind Info\n"
msgstr " vma:\t\t\tÐдреÑа почетка\t ÐдреÑа краја\t\tИзложени подаци\n"
-#: peXXigen.c:1876
+#: peXXigen.c:1881
#, c-format
msgid ""
" vma:\t\tBegin End EH EH PrologEnd Exception\n"
@@ -9622,12 +9715,12 @@ msgstr ""
" vma:\t\tПочетак Крај EH EH Крај пролога Изузетак\n"
" \t\tÐдреÑа ÐдреÑа Руковалац Подаци ÐдреÑа МаÑка\n"
-#: peXXigen.c:1889
+#: peXXigen.c:1894
#, c-format
msgid "Virtual size of .pdata section (%ld) larger than real size (%ld)\n"
msgstr "Виртуелна величина „.pdata“ одељка (%ld) је већа од Ñтварне величине (%ld)\n"
-#: peXXigen.c:2043
+#: peXXigen.c:2048
#, c-format
msgid ""
" vma:\t\tBegin Prolog Function Flags Exception EH\n"
@@ -9636,7 +9729,7 @@ msgstr ""
" vma:\t\tПочетак Пролог Функција ЗаÑтавице Изузетак ЕХ\n"
" \t\tÐдреÑа Дужина Дужина 32b извр Руковлац Подаци\n"
-#: peXXigen.c:2168
+#: peXXigen.c:2173
#, c-format
msgid ""
"\n"
@@ -9647,7 +9740,7 @@ msgstr ""
"\n"
"Премештање оÑнове ПЕ датотеке (протумачени Ñадржај „.reloc“ одељка)\n"
-#: peXXigen.c:2197
+#: peXXigen.c:2202
#, c-format
msgid ""
"\n"
@@ -9656,62 +9749,62 @@ msgstr ""
"\n"
"Виртуелна адреÑа: %08lx величина одломка %ld (0x%lx) Број иÑправки %ld\n"
-#: peXXigen.c:2215
+#: peXXigen.c:2220
#, c-format
msgid "\treloc %4d offset %4x [%4lx] %s"
msgstr "\tпремештање %4d померај %4x [%4lx] %s"
-#: peXXigen.c:2276
+#: peXXigen.c:2281
#, c-format
msgid "%03x %*.s Entry: "
msgstr "„%03x %*.s“ уноÑ: "
-#: peXXigen.c:2300
+#: peXXigen.c:2305
#, c-format
msgid "name: [val: %08lx len %d]: "
msgstr "назив: [вредноÑÑ‚: %08lx дужина %d]: "
-#: peXXigen.c:2320
+#: peXXigen.c:2325
#, c-format
msgid "<corrupt string length: %#x>\n"
msgstr "<оштећена дужина ниÑке: %#x>\n"
-#: peXXigen.c:2330
+#: peXXigen.c:2335
#, c-format
msgid "<corrupt string offset: %#lx>\n"
msgstr "<оштећен померај ниÑке: %#lx>\n"
-#: peXXigen.c:2335
+#: peXXigen.c:2340
#, c-format
msgid "ID: %#08lx"
msgstr "ИД: %#08lx"
-#: peXXigen.c:2338
+#: peXXigen.c:2343
#, c-format
msgid ", Value: %#08lx\n"
msgstr ", ВредноÑÑ‚: %#08lx\n"
-#: peXXigen.c:2360
+#: peXXigen.c:2365
#, c-format
msgid "%03x %*.s Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n"
msgstr "%03x%*.s ЛиÑÑ‚: ÐдреÑа: %#08lx, Величина: %#08lx, Кодна Ñтраница: %d\n"
-#: peXXigen.c:2402
+#: peXXigen.c:2407
#, c-format
msgid "<unknown directory type: %d>\n"
msgstr "<непозната врÑта директоријума: %d>\n"
-#: peXXigen.c:2410
+#: peXXigen.c:2415
#, c-format
msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n"
msgstr " Табела: Знак: %d, Време: %08lx, Изд: %d/%d, Број назива: %d, ИД-ови: %d\n"
-#: peXXigen.c:2498
+#: peXXigen.c:2503
#, c-format
msgid "Corrupt .rsrc section detected!\n"
msgstr "Откривен је оштећени „.rsrc“ одељак!\n"
-#: peXXigen.c:2522
+#: peXXigen.c:2527
#, c-format
msgid ""
"\n"
@@ -9720,17 +9813,17 @@ msgstr ""
"\n"
"УПОЗОРЕЊЕ: Вишак података у „.rsrc“ одељку – Виндоуз ће их занемарити:\n"
-#: peXXigen.c:2528
+#: peXXigen.c:2533
#, c-format
msgid " String table starts at offset: %#03x\n"
msgstr " Табела ниÑке почиње на померају: %#03x\n"
-#: peXXigen.c:2531
+#: peXXigen.c:2536
#, c-format
msgid " Resources start at offset: %#03x\n"
msgstr " Изворишта почињу на померају: %#03x\n"
-#: peXXigen.c:2588
+#: peXXigen.c:2593
#, c-format
msgid ""
"\n"
@@ -9739,7 +9832,7 @@ msgstr ""
"\n"
"ПоÑтоји директоријум прочишћавања, али не могу да нађем одељак који га Ñадржи\n"
-#: peXXigen.c:2594
+#: peXXigen.c:2599
#, c-format
msgid ""
"\n"
@@ -9748,7 +9841,7 @@ msgstr ""
"\n"
"ПоÑтоји директоријум прочишћавања у „%s“, али тај одељак нема Ñадржаја\n"
-#: peXXigen.c:2601
+#: peXXigen.c:2606
#, c-format
msgid ""
"\n"
@@ -9757,7 +9850,7 @@ msgstr ""
"\n"
"Грешка: одељак „%s“ Ñадржи почетну адреÑу података прочишћавања али је премали\n"
-#: peXXigen.c:2606
+#: peXXigen.c:2611
#, c-format
msgid ""
"\n"
@@ -9768,22 +9861,22 @@ msgstr ""
"ПоÑтоји директоријум прочишћавања у „%s“ на 0x%lx\n"
"\n"
-#: peXXigen.c:2613
+#: peXXigen.c:2618
#, c-format
msgid "The debug data size field in the data directory is too big for the section"
msgstr "Поље величине података прочишћавања у директоријуму података је превелико за одељак"
-#: peXXigen.c:2618
+#: peXXigen.c:2623
#, c-format
msgid "Type Size Rva Offset\n"
msgstr "Ð’Ñ€Ñта Величина Rva Померај\n"
-#: peXXigen.c:2666
+#: peXXigen.c:2671
#, c-format
msgid "(format %c%c%c%c signature %s age %ld pdb %s)\n"
msgstr "(Ð·Ð°Ð¿Ð¸Ñ %c%c%c%c Ð¿Ð¾Ñ‚Ð¿Ð¸Ñ %s ÑтароÑÑ‚ %ld пдб %s)\n"
-#: peXXigen.c:2678
+#: peXXigen.c:2683
#, c-format
msgid "The debug directory size is not a multiple of the debug directory entry size\n"
msgstr "Величина директоријума прочишћавања није производ величине уноÑа директоријума прочишћавања\n"
@@ -9791,7 +9884,7 @@ msgstr "Величина директоријума прочишћавања нÐ
#. The MS dumpbin program reportedly ands with 0xff0f before
#. printing the characteristics field. Not sure why. No reason to
#. emulate it here.
-#: peXXigen.c:2762
+#: peXXigen.c:2767
#, c-format
msgid ""
"\n"
@@ -9800,90 +9893,115 @@ msgstr ""
"\n"
"ОÑобеноÑти 0x%x\n"
-#: peXXigen.c:3047
+#: peXXigen.c:3052
#, c-format
msgid "%pB: Data Directory (%lx bytes at %<PRIx64>) extends across section boundary at %<PRIx64>"
msgstr "%pB: Директоријум података (%lx бајта на %<PRIx64>) Ñе преноÑи преко границе одељка на %<PRIx64>"
-#: peXXigen.c:3088
+#: peXXigen.c:3093
msgid "failed to update file offsets in debug directory"
msgstr "ниÑам уÑпео да оÑвежим помераје датотеке у директоријуму прочишћавања"
-#: peXXigen.c:3097
+#: peXXigen.c:3102
#, c-format
msgid "%pB: failed to read debug data section"
msgstr "%pB: ниÑам уÑпео да читам одељак података прочишћавања"
-#: peXXigen.c:3900
+#: peXXigen.c:3907
#, c-format
msgid ".rsrc merge failure: duplicate string resource: %d"
msgstr "неуÑпело „.rsrc“ Ñтапање: извориште удвоÑтручене ниÑке: %d"
-#: peXXigen.c:4035
+#: peXXigen.c:4042
msgid ".rsrc merge failure: multiple non-default manifests"
msgstr "неуÑпело „.rsrc“ Ñтапање: неколико не-подразумеваних иÑпољавања"
-#: peXXigen.c:4053
+#: peXXigen.c:4060
msgid ".rsrc merge failure: a directory matches a leaf"
msgstr "неуÑпело „.rsrc“ Ñтапање: директоријум одговара лиÑту"
-#: peXXigen.c:4095
+#: peXXigen.c:4102
msgid ".rsrc merge failure: duplicate leaf"
msgstr "неуÑпело „.rsrc“ Ñтапање: удвоÑтручени лиÑÑ‚"
-#: peXXigen.c:4100
+#: peXXigen.c:4107
#, c-format
msgid ".rsrc merge failure: duplicate leaf: %s"
msgstr "неуÑпело „.rsrc“ Ñтапање: удвоÑтручени лиÑÑ‚: %s"
-#: peXXigen.c:4167
+#: peXXigen.c:4174
msgid ".rsrc merge failure: dirs with differing characteristics"
msgstr "неуÑпело „.rsrc“ Ñтапање: директоријуми Ñа различитим оÑобеноÑтима"
-#: peXXigen.c:4174
+#: peXXigen.c:4181
msgid ".rsrc merge failure: differing directory versions"
msgstr "неуÑпело „.rsrc“ Ñтапање: издања директоријума Ñе разликују"
#. Corrupted .rsrc section - cannot merge.
-#: peXXigen.c:4286
+#: peXXigen.c:4293
#, c-format
msgid "%pB: .rsrc merge failure: corrupt .rsrc section"
msgstr "%pB: неуÑпело „.rsrc“ Ñтапање: оштећени „.rsrc“ одељак"
-#: peXXigen.c:4294
+#: peXXigen.c:4301
#, c-format
msgid "%pB: .rsrc merge failure: unexpected .rsrc size"
msgstr "%pB: неуÑпело „.rsrc“ Ñтапање: оштећени „.rsrc“ одељак"
-#: peXXigen.c:4433
+#: peXXigen.c:4441 peXXigen.c:4461 peXXigen.c:4482 peXXigen.c:4502
+#, c-format
+msgid "%pB: unable to fill in DataDirectory[%d]: %s is missing"
+msgstr "%pB: не могу да попуним директоријум података[%d]: недоÑтаје „%s“"
+
+#: peXXigen.c:4544 peXXigen.c:4590 peXXigen.c:4614 peXXigen.c:4698
#, c-format
-msgid "%pB: unable to fill in DataDictionary[1] because .idata$2 is missing"
-msgstr "%pB: не могу да попуним речник података[1] зато што недоÑтаје „.idata$2“"
+msgid "%pB: unable to fill in DataDirectory[%d]: %s not defined correctly"
+msgstr "%pB: не могу да попуним директоријум података[%d]: „%s“ није иÑправно дефиниÑано"
-#: peXXigen.c:4453
+#: peXXigen.c:4651
#, c-format
-msgid "%pB: unable to fill in DataDictionary[1] because .idata$4 is missing"
-msgstr "%pB: не могу да попуним речник података[1] зато што недоÑтаје „.idata$4“"
+msgid "%pB: unable to fill in DataDirectory[%d]: %s not properly aligned"
+msgstr "%pB: не могу да попуним директоријум података[%d]: „%s“ није иÑправно поравнато"
-#: peXXigen.c:4474
+#: peXXigen.c:4682
#, c-format
-msgid "%pB: unable to fill in DataDictionary[12] because .idata$5 is missing"
-msgstr "%pB: не могу да попуним речник података[12] зато што недоÑтаје „.idata$5“"
+msgid "%pB: unable to fill in DataDirectory[%d]: size too large for the containing section"
+msgstr "%pB: не могу да попуним директоријум података[%d]: величина је превелика за Ñадржајни одељак"
-#: peXXigen.c:4494
+#: peXXigen.c:4690
#, c-format
-msgid "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing"
-msgstr "%pB: не могу да попуним речник података[PE_IMPORT_ADDRESS_TABLE (12)] зато што недоÑтаје „.idata$6“"
+msgid "%pB: unable to fill in DataDirectory[%d]: size can't be read from %s"
+msgstr "%pB: не могу да попуним директоријум података[%d]: величина Ñе не може прочитати из „%s“"
-#: peXXigen.c:4536
#, c-format
-msgid "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing"
-msgstr "%pB: не могу да попуним речник података[PE_IMPORT_ADDRESS_TABLE(12)] зато што недоÑтаје „.idata$6“"
+#~ msgid "%F%pA: failed to align section\n"
+#~ msgstr "%F%pA: ниÑам уÑпео да поравнам одељак\n"
+
+#~ msgid "c' or `zcf"
+#~ msgstr "c“ или „zcf"
+
+#~ msgid "c' or `zcd"
+#~ msgstr "c“ или „zcd"
+
+#, c-format
+#~ msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in ADD only\n"
+#~ msgstr "%pB(%pA+0x%v): премештање „%s“ наÑпрам „%s“ Ñе мора кориÑтити Ñамо у „ADD“\n"
+
+#, c-format
+#~ msgid "%pB: unable to fill in DataDictionary[1] because .idata$4 is missing"
+#~ msgstr "%pB: не могу да попуним речник података[1] зато што недоÑтаје „.idata$4“"
-#: peXXigen.c:4561
#, c-format
-msgid "%pB: unable to fill in DataDictionary[9] because __tls_used is missing"
-msgstr "%pB: не могу да попуним речник података[9] зато што недоÑтаје „__tls_used“"
+#~ msgid "%pB: unable to fill in DataDictionary[12] because .idata$5 is missing"
+#~ msgstr "%pB: не могу да попуним речник података[12] зато што недоÑтаје „.idata$5“"
+
+#, c-format
+#~ msgid "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing"
+#~ msgstr "%pB: не могу да попуним речник података[PE_IMPORT_ADDRESS_TABLE (12)] зато што недоÑтаје „.idata$6“"
+
+#, c-format
+#~ msgid "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing"
+#~ msgstr "%pB: не могу да попуним речник података[PE_IMPORT_ADDRESS_TABLE(12)] зато што недоÑтаје „.idata$6“"
#, c-format
#~ msgid "error: %pB: big-endian R2 is not supported"
@@ -10200,9 +10318,6 @@ msgstr "%pB: не могу да попуним речник података[9]
#~ msgid "%B: Invalid relocation type imported: %d"
#~ msgstr "%B: Увезена је неиÑправна врÑта премештања: %d"
-#~ msgid "%P: %B: unexpected relocation type\n"
-#~ msgstr "%P: %B: неочекивана врÑта премештања\n"
-
#~ msgid "%B: unknown/unsupported relocation type %d"
#~ msgstr "%B: непозната/неподржана врÑта премештања „%d“"
diff --git a/bfd/po/sv.po b/bfd/po/sv.po
index 7213fe2..a775d5e 100644
--- a/bfd/po/sv.po
+++ b/bfd/po/sv.po
@@ -3,596 +3,764 @@
# Copyright © 2001 - 2016 Free Software Foundation, Inc.
# Christian Rose <menthos@menthos.com>, 2001, 2002, 2003.
# Arve Eriksson <031299870@telia.com >, 2011.
-# Josef Andersson <josef.andersson@fripost.org>, 2016.
+# Josef Andersson <janderssonse@proton.me>, 2016, 2025.
msgid ""
msgstr ""
-"Project-Id-Version: bfd-2.24.90\n"
-"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2014-02-10 09:42+1030\n"
-"PO-Revision-Date: 2016-05-14 04:05+0200\n"
-"Last-Translator: Josef Andersson <josef.andersson@fripost.org>\n"
+"Project-Id-Version: bfd 2.43.90\n"
+"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
+"POT-Creation-Date: 2025-01-19 12:19+0000\n"
+"PO-Revision-Date: 2025-04-17 20:32+0200\n"
+"Last-Translator: Josef Andersson <janderssonse@proton.me>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\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=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.8.7.1\n"
-"X-Launchpad-Export-Date: 2016-05-06 19:08+0000\n"
-
-#: aout-adobe.c:127
-msgid "%B: Unknown section type in a.out.adobe file: %x\n"
-msgstr "%B: Okänd sektionstyp i filen a.out.adobe: %x\n"
+"X-Generator: Poedit 3.4.2\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
-#: aout-cris.c:200
+#: aout-cris.c:196
#, c-format
-msgid "%s: Invalid relocation type exported: %d"
-msgstr "%s: Ogiltig omlokaliseringstyp exporterad: %d"
+msgid "%pB: unsupported relocation type exported: %#x"
+msgstr "%pB: omlokaliseringstyp: %#x saknar stöd"
-#: aout-cris.c:243
-msgid "%B: Invalid relocation type imported: %d"
-msgstr "%B: Ogiltig omlokaliseringstyp importerad: %d"
+#: aout-cris.c:242
+#, c-format
+msgid "%pB: unsupported relocation type imported: %#x"
+msgstr "%pB: Omlokaliseringstyp som inte stöds importerad: %#x"
#: aout-cris.c:254
-msgid "%B: Bad relocation record imported: %d"
-msgstr "%B: DÃ¥lig omlokaliseringspost importerad: %d"
+#, c-format
+msgid "%pB: bad relocation record imported: %d"
+msgstr "%pB: dålig flyttningsrekord importerad: %d"
+
+#: aoutx.h:444 pdp11.c:481
+#, c-format
+msgid "%pB: %#<PRIx64> overflows header %s field"
+msgstr "%pB: %#<PRIx64> överskrider rubrikfältet %s"
-#: aoutx.h:1273 aoutx.h:1611
+#: aoutx.h:1269 aoutx.h:1598 pdp11.c:1246 pdp11.c:1495
#, c-format
-msgid "%s: can not represent section `%s' in a.out object file format"
-msgstr "%s: kan inte representera sektionen â€%s†i a.out-objektfilformat"
+msgid "%pB: can not represent section `%pA' in a.out object file format"
+msgstr "%pB: kan inte representera avsnitt `%pA' i a.out objektfilformat"
-#: aoutx.h:1577
+#: aoutx.h:1562 pdp11.c:1467
#, c-format
-msgid "%s: can not represent section for symbol `%s' in a.out object file format"
-msgstr "%s: kan inte representera sektionen för symbolen â€%s†i a.out-objektfilformat"
+msgid "%pB: can not represent section for symbol `%s' in a.out object file format"
+msgstr "%pB: kan inte representera avsnitt för symbol `%s' i a.out objektfilformat"
-#: aoutx.h:1579 vms-alpha.c:7564
+#: aoutx.h:1565 vms-alpha.c:8473
msgid "*unknown*"
msgstr "*okänd*"
-#: aoutx.h:4018 aoutx.h:4344
-msgid "%P: %B: unexpected relocation type\n"
-msgstr "%P: %B: oväntad omlokaliseringstyp\n"
+#: aoutx.h:1701 pdp11.c:1563
+#, c-format
+msgid "%pB: invalid string offset %<PRIu64> >= %<PRIu64>"
+msgstr "%pB: ogiltig strängoffset %<PRIu64> >= %<PRIu64>"
+
+#: aoutx.h:1945
+#, c-format
+msgid "%pB: unsupported AOUT relocation size: %d"
+msgstr "%pB: storlek på AOUT-relokalisering som inte stöds: %d"
-#: aoutx.h:5375
+#: aoutx.h:2389 aoutx.h:2407 pdp11.c:2040
#, c-format
-msgid "%s: relocatable link from %s to %s not supported"
-msgstr "%s: omlokaliseringsbar länk från %s till %s stöds inte"
+msgid "%pB: attempt to write out unknown reloc type"
+msgstr "%pB: försök att skriva ut okänd reloc-typ"
-#: archive.c:2249
-msgid "Warning: writing archive was slow: rewriting timestamp\n"
-msgstr "Varning: arkivskrivning var långsam: skriver om tidsstämpel\n"
+#: aoutx.h:4047 pdp11.c:3409
+#, c-format
+msgid "%pB: unsupported relocation type"
+msgstr "%pB: typ av omlokalisering som inte stöds"
-#: archive.c:2549
+#. Unknown relocation.
+#: aoutx.h:4367 coff-alpha.c:601 coff-mips.c:356 coff-rs6000.c:3037
+#: coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:262 elf-hppa.h:798
+#: elf-hppa.h:826 elf-m10200.c:226 elf-m10300.c:813 elf32-arc.c:531
+#: elf32-arm.c:1985 elf32-avr.c:957 elf32-bfin.c:1063 elf32-bfin.c:4686
+#: elf32-cr16.c:654 elf32-cr16.c:684 elf32-cris.c:467 elf32-crx.c:429
+#: elf32-csky.c:991 elf32-d10v.c:234 elf32-d30v.c:522 elf32-d30v.c:544
+#: elf32-dlx.c:546 elf32-epiphany.c:373 elf32-fr30.c:381 elf32-frv.c:2558
+#: elf32-frv.c:6240 elf32-ft32.c:304 elf32-h8300.c:302 elf32-i386.c:394
+#: elf32-ip2k.c:1241 elf32-iq2000.c:442 elf32-lm32.c:495 elf32-m32c.c:305
+#: elf32-m32r.c:1286 elf32-m32r.c:1311 elf32-m32r.c:2209 elf32-m68hc11.c:390
+#: elf32-m68hc12.c:510 elf32-m68k.c:354 elf32-mcore.c:354 elf32-mcore.c:440
+#: elf32-mep.c:385 elf32-metag.c:871 elf32-microblaze.c:708
+#: elf32-microblaze.c:1015 elf32-mips.c:2242 elf32-moxie.c:137
+#: elf32-msp430.c:737 elf32-msp430.c:747 elf32-mt.c:241 elf32-nds32.c:3287
+#: elf32-nds32.c:3308 elf32-nds32.c:5077 elf32-or1k.c:1085 elf32-pj.c:326
+#: elf32-ppc.c:900 elf32-ppc.c:913 elf32-pru.c:423 elf32-rl78.c:291
+#: elf32-rx.c:324 elf32-rx.c:333 elf32-s12z.c:296 elf32-s390.c:347
+#: elf32-score.c:2373 elf32-score7.c:2214 elf32-sh.c:437 elf32-spu.c:163
+#: elf32-tic6x.c:1498 elf32-tic6x.c:1508 elf32-tic6x.c:1527 elf32-tic6x.c:1537
+#: elf32-tic6x.c:2575 elf32-tilepro.c:791 elf32-v850.c:1902 elf32-v850.c:1924
+#: elf32-v850.c:4253 elf32-vax.c:288 elf32-visium.c:481 elf32-wasm32.c:105
+#: elf32-xgate.c:418 elf32-xstormy16.c:395 elf32-xtensa.c:510
+#: elf32-xtensa.c:544 elf32-z80.c:331 elf64-alpha.c:1112 elf64-alpha.c:4055
+#: elf64-alpha.c:4203 elf64-bpf.c:132 elf64-ia64-vms.c:255
+#: elf64-ia64-vms.c:3426 elf64-mips.c:3965 elf64-mips.c:3981 elf64-mmix.c:1260
+#: elf64-nfp.c:151 elf64-ppc.c:1031 elf64-ppc.c:1385 elf64-ppc.c:1394
+#: elf64-s390.c:328 elf64-s390.c:378 elf64-x86-64.c:305 elfn32-mips.c:3799
+#: elfxx-ia64.c:324 elfxx-loongarch.c:1897 elfxx-riscv.c:1062 elfxx-sparc.c:589
+#: elfxx-sparc.c:639 elfxx-tilegx.c:907 elfxx-tilegx.c:947 elfnn-aarch64.c:2215
+#: elfnn-aarch64.c:2313 elfnn-ia64.c:214 elfnn-ia64.c:3821 elfnn-kvx.c:259
+#, c-format
+msgid "%pB: unsupported relocation type %#x"
+msgstr "%pB: omplaceringstyp som inte stöds %#x"
+
+#: aoutx.h:5387 pdp11.c:3825
+#, c-format
+msgid "%pB: relocatable link from %s to %s not supported"
+msgstr "%pB: relokaliserbar länk från %s till %s stöds inte"
+
+#: arc-got.h:69
+#, c-format
+msgid "%pB: cannot allocate memory for local GOT entries"
+msgstr "%pB: kan inte allokera minne för lokala GOT-poster"
+
+#: archive.c:748
+msgid "%F%P: %pB(%s): error opening thin archive member: %E\n"
+msgstr "%F%P: %pB(%s): fel vid öppning av tunn arkivmedlem: %E\n"
+
+#: archive.c:2282
+msgid "warning: writing archive was slow: rewriting timestamp"
+msgstr "varning: det gick långsamt att skriva arkiv: omskrivning av tidsstämpel"
+
+#: archive.c:2351 archive.c:2412 elflink.c:4931 linker.c:1452
+#, c-format
+msgid "%pB: plugin needed to handle lto object"
+msgstr "%pB: plugin behövs för att hantera lto-objekt"
+
+#: archive.c:2644
msgid "Reading archive file mod timestamp"
msgstr "Läser arkivfilens modifieringstidsstämpel"
-#: archive.c:2573
+#: archive.c:2675
msgid "Writing updated armap timestamp"
msgstr "Skriver uppdaterad armap-tidsstämpel"
-#: bfd.c:411
-msgid "No error"
-msgstr "Inget fel"
+#: bfd.c:777
+msgid "no error"
+msgstr "inget fel"
-#: bfd.c:412
-msgid "System call error"
-msgstr "Systemanropsfel"
+#: bfd.c:778
+msgid "system call error"
+msgstr "fel vid systemanrop"
-#: bfd.c:413
-msgid "Invalid bfd target"
-msgstr "Ogiltigt bfd-mål"
+#: bfd.c:779
+msgid "invalid bfd target"
+msgstr "ogiltigt bfd-mål"
-#: bfd.c:414
-msgid "File in wrong format"
-msgstr "Filen är i fel format"
+#: bfd.c:780
+msgid "file in wrong format"
+msgstr "fil i fel format"
-#: bfd.c:415
-msgid "Archive object file in wrong format"
-msgstr "Arkivobjektfilen är i fel format"
+#: bfd.c:781
+msgid "archive object file in wrong format"
+msgstr "arkivera objektfil i fel format"
-#: bfd.c:416
-msgid "Invalid operation"
-msgstr "Ogiltig åtgärd"
+#: bfd.c:782
+msgid "invalid operation"
+msgstr "ogiltig operation"
-#: bfd.c:417
-msgid "Memory exhausted"
-msgstr "Minnet är slut"
+#: bfd.c:783
+msgid "memory exhausted"
+msgstr "minnet utmattat"
-#: bfd.c:418
-msgid "No symbols"
-msgstr "Inga symboler"
+#: bfd.c:784
+msgid "no symbols"
+msgstr "inga symboler"
-#: bfd.c:419
-msgid "Archive has no index; run ranlib to add one"
-msgstr "Arkivet har inget index; kör ranlib för att lägga till ett"
+#: bfd.c:785
+msgid "archive has no index; run ranlib to add one"
+msgstr "arkivet har inget index; kör ranlib för att lägga till ett"
-#: bfd.c:420
-msgid "No more archived files"
-msgstr "Inga fler arkiverade filer"
+#: bfd.c:786
+msgid "no more archived files"
+msgstr "inga fler arkiverade filer"
-#: bfd.c:421
-msgid "Malformed archive"
-msgstr "Trasigt arkiv"
+#: bfd.c:787
+msgid "malformed archive"
+msgstr "missbildat arkiv"
-#: bfd.c:422
+#: bfd.c:788
msgid "DSO missing from command line"
msgstr "DSO saknas från kommandoraden"
-#: bfd.c:423
-msgid "File format not recognized"
-msgstr "Filformatet känns inte igen"
+#: bfd.c:789
+msgid "file format not recognized"
+msgstr "filformatet känns inte igen"
+
+#: bfd.c:790
+msgid "file format is ambiguous"
+msgstr "filformatet är tvetydigt"
-#: bfd.c:424
-msgid "File format is ambiguous"
-msgstr "Filformatet är tvetydigt"
+#: bfd.c:791
+msgid "section has no contents"
+msgstr "avsnittet har inget innehåll"
-#: bfd.c:425
-msgid "Section has no contents"
-msgstr "sektionen har inget innehåll"
+#: bfd.c:792
+msgid "nonrepresentable section on output"
+msgstr "icke-representerande avsnitt om produktion"
-#: bfd.c:426
-msgid "Nonrepresentable section on output"
-msgstr "Ickerepresenterbar sektion i utdata"
+#: bfd.c:793
+msgid "symbol needs debug section which does not exist"
+msgstr "symbolen behöver ett debug-avsnitt som inte finns"
-#: bfd.c:427
-msgid "Symbol needs debug section which does not exist"
-msgstr "Symbolen kräver felsökningssektion som inte finns"
+#: bfd.c:794
+msgid "bad value"
+msgstr "dåligt värde"
-#: bfd.c:428
-msgid "Bad value"
-msgstr "Felaktigt värde"
+#: bfd.c:795
+msgid "file truncated"
+msgstr "fil avkortad"
-#: bfd.c:429
-msgid "File truncated"
-msgstr "Filen trunkerad"
+#: bfd.c:796
+msgid "file too big"
+msgstr "filen är för stor"
-#: bfd.c:430
-msgid "File too big"
-msgstr "Filen är för stor"
+#: bfd.c:797
+msgid "sorry, cannot handle this file"
+msgstr "kan inte hantera den här filen"
-#: bfd.c:431
+#: bfd.c:798
#, c-format
-msgid "Error reading %s: %s"
-msgstr "Fel vid läsning av %s: %s"
+msgid "error reading %s: %s"
+msgstr "fel vid läsning av %s: %s"
-#: bfd.c:432
-msgid "#<Invalid error code>"
-msgstr "#<Ogiltig felkod>"
+#: bfd.c:799
+msgid "#<invalid error code>"
+msgstr "#<ogiltig felkod>"
-#: bfd.c:1046
+#: bfd.c:2242
#, c-format
msgid "BFD %s assertion fail %s:%d"
msgstr "BFD %s-försäkran misslyckades %s:%d"
-#: bfd.c:1058
+#: bfd.c:2255
#, c-format
-msgid "BFD %s internal error, aborting at %s line %d in %s\n"
-msgstr "Internt BFD %s-fel, avbryter vid %s rad %d i %s\n"
+msgid "%s: BFD %s internal error, aborting at %s:%d in %s\n"
+msgstr "%s: BFD %s internt fel, avbryter vid %s:%d i %s\n"
-#: bfd.c:1062
+#: bfd.c:2259
#, c-format
-msgid "BFD %s internal error, aborting at %s line %d\n"
-msgstr "Internt BFD %s-fel, avbryter vid %s rad %d\n"
+msgid "%s: BFD %s internal error, aborting at %s:%d\n"
+msgstr "%s: BFD %s internt fel, avbryter vid %s:%d\n"
-#: bfd.c:1064
+#: bfd.c:2262
+#, c-format
msgid "Please report this bug.\n"
msgstr "Rapportera gärna detta fel.\n"
-#: bfdwin.c:206
+#: binary.c:277
#, c-format
-msgid "not mapping: data=%lx mapped=%d\n"
-msgstr "mappar inte: data=%lx mappat=%d\n"
+msgid "warning: writing section `%pA' at huge (ie negative) file offset"
+msgstr "varning: skriver avsnitt `%pA' vid stor (dvs negativ) filoffset"
-#: bfdwin.c:209
+#: cache.c:290
#, c-format
-msgid "not mapping: env var not set\n"
-msgstr "mappar inte: miljövariabel är inte satt\n"
+msgid "reopening %pB: %s"
+msgstr "återöppnar %pB: %s"
-#: binary.c:271
+#: coff-alpha.c:450
#, c-format
-msgid "Warning: Writing section `%s' to huge (ie negative) file offset 0x%lx."
-msgstr "Varning: Skrivning av sektionen â€%s†till enormt (dvs negativt) avlägsen byte 0x%lx."
+msgid "%pB: cannot handle compressed Alpha binaries; use compiler flags, or objZ, to generate uncompressed binaries"
+msgstr "%pB: kan inte hantera komprimerade Alpha-binärfiler; använd kompilatorflaggor eller objZ för att generera okomprimerade binärfiler"
-#: bout.c:1146 elf-m10300.c:2665 elf32-avr.c:1706 elf32-frv.c:5641
-#: elf64-ia64-vms.c:354 elfxx-sparc.c:2869 reloc.c:7324 reloc16.c:160
-#: elf32-ia64.c:351 elf64-ia64.c:351
-msgid "%P%F: --relax and -r may not be used together\n"
-msgstr "%P%F: --relax och -r kan inte användas tillsammans\n"
-
-#: cache.c:253
-msgid "reopening %B: %s\n"
-msgstr "öppnar %B igen: %s\n"
+#: coff-alpha.c:867 coff-alpha.c:894 coff-alpha.c:2004 coff-mips.c:948
+msgid "GP relative relocation used when GP not defined"
+msgstr "GP-relativ omlokalisering användes då GP inte är definierad"
-#: coff-alpha.c:452
-msgid ""
-"%B: Cannot handle compressed Alpha binaries.\n"
-" Use compiler flags, or objZ, to generate uncompressed binaries."
-msgstr ""
-"%B: Kan inte hantera komprimerade Alpha-binärer.\n"
-" Använd kompileringsflaggor eller objZ för att generera okomprimerade binärer."
+#: coff-alpha.c:1151 coff-z80.c:351 coff-z8k.c:214 elf32-nds32.c:13188
+#: elfxx-mips.c:13509 reloc.c:8596 reloc16.c:314
+#, c-format
+msgid "%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n"
+msgstr "%X%P: %pB(%pA): flyttning \"%pR\" går utanför intervallet\n"
-#: coff-alpha.c:603
-msgid "%B: unknown/unsupported relocation type %d"
-msgstr "%B: omlokaliseringstyp okänd/stöd saknas för typ %d"
+#: coff-alpha.c:1157 coff-z80.c:477 coff-z8k.c:378 elfxx-mips.c:13519
+#: reloc.c:8606
+#, c-format
+msgid "%X%P: %pB(%pA): relocation \"%pR\" is not supported\n"
+msgstr "%X%P: %pB(%pA): relokalisering \"%pR\" stöds inte\n"
-#: coff-alpha.c:852 coff-alpha.c:889 coff-alpha.c:1973 coff-mips.c:946
-msgid "GP relative relocation used when GP not defined"
-msgstr "GP-relativ omlokalisering användes då GP inte är definierad"
+#: coff-alpha.c:1163 elfxx-mips.c:13528 reloc.c:8615
+#, c-format
+msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"
+msgstr "%X%P: %pB(%pA): relocation \"%pR\" returnerar ett okänt värde %x\n"
-#: coff-alpha.c:1450
+#: coff-alpha.c:1489
msgid "using multiple gp values"
msgstr "använder flera gp-värden"
-#: coff-alpha.c:1509
-msgid "%B: unsupported relocation: ALPHA_R_GPRELHIGH"
-msgstr "%B: omlokalisering stöds ej: ALPHA_R_GPRELHIGH"
+#: coff-alpha.c:1987
+#, c-format
+msgid "%X%P: %pB(%pA): relocation out of range\n"
+msgstr "%X%P: %pB(%pA): förflyttning utanför intervallet\n"
+
+#: coff-alpha.c:1999
+#, c-format
+msgid "%X%P: %pB(%pA): relocation is not supported\n"
+msgstr "%X%P: %pB(%pA): omlokalisering stöds inte\n"
-#: coff-alpha.c:1516
-msgid "%B: unsupported relocation: ALPHA_R_GPRELLOW"
-msgstr "%B: omlokalisering stöds ej: ALPHA_R_GPRELLOW"
+#: coff-go32.c:167 coffswap.h:812
+#, c-format
+msgid "%pB: warning: %s: line number overflow: 0x%lx > 0xffff"
+msgstr "%pB: Varning: %s: radnummeröverskridning: 0x%lx > 0xffff"
-#: coff-alpha.c:1523 elf32-m32r.c:2443 elf64-alpha.c:4083 elf64-alpha.c:4233
-#: elf64-ia64-vms.c:3429 elf32-ia64.c:3836 elf64-ia64.c:3836
-msgid "%B: unknown relocation type %d"
-msgstr "%B: okänd omlokaliseringstyp %d"
+#: coff-mips.c:638 elf32-mips.c:1743 elf32-score.c:433 elf32-score7.c:333
+#: elf64-mips.c:3450 elfn32-mips.c:3277
+msgid "GP relative relocation when _gp not defined"
+msgstr "GP-relativ omlokalisering då _gp inte var definierat"
-#: coff-arm.c:1034
+#: coff-rs6000.c:484 coff64-rs6000.c:377
#, c-format
-msgid "%B: unable to find THUMB glue '%s' for `%s'"
-msgstr "%B: kunde inte hitta THUMB-lim â€%s†för â€%sâ€"
+msgid "%pB: unsupported swap_aux_in for storage class %#x"
+msgstr "%pB: swap_aux_in stöds inte för lagringsklass %#x"
-#: coff-arm.c:1063
+#: coff-rs6000.c:571 coff64-rs6000.c:497
#, c-format
-msgid "%B: unable to find ARM glue '%s' for `%s'"
-msgstr "%B: kunde inte hitta ARM-lim â€%s†för â€%sâ€"
+msgid "%pB: unsupported swap_aux_out for storage class %#x"
+msgstr "%pB: swap_aux_out stöds inte för lagringsklass %#x"
-#: coff-arm.c:1365 elf32-arm.c:7141
+#: coff-rs6000.c:3127
#, c-format
-msgid ""
-"%B(%s): warning: interworking not enabled.\n"
-" first occurrence: %B: arm call to thumb"
-msgstr ""
-"%B(%s): varning: växelverkning inte aktiverat.\n"
-" första användning: %B: arm-anrop till thumb"
+msgid "%pB: TOC reloc at %#<PRIx64> to symbol `%s' with no TOC entry"
+msgstr "%pB: TOC-reloc vid %#<PRIx64> till symbolen `%s' utan TOC-post"
-#: coff-arm.c:1455
+#: coff-rs6000.c:3251 coff64-rs6000.c:848
#, c-format
-msgid ""
-"%B(%s): warning: interworking not enabled.\n"
-" first occurrence: %B: thumb call to arm\n"
-" consider relinking with --support-old-code enabled"
-msgstr ""
-"%B(%s): varning: växelverkning inte aktiverat.\n"
-" första användning: %B: thumb-anrop till arm\n"
-" prova att länka om med --support-old-code aktiverad"
+msgid "Unable to find the stub entry targeting %s"
+msgstr "Det går inte att hitta stub-posten som riktar sig till %s"
-#: coff-arm.c:1750 coff-tic80.c:673 cofflink.c:3168
-msgid "%B: bad reloc address 0x%lx in section `%A'"
-msgstr "%B: felaktig omlokaliseringsadress 0x%lx i sektion â€%Aâ€"
+#: coff-rs6000.c:3366
+#, c-format
+msgid "%pB: TLS relocation at 0x%<PRIx64> over non-TLS symbol %s (0x%x)\n"
+msgstr "%pB: TLS-omlokalisering vid 0x%<PRIx64> över icke-TLS symbol %s (0x%x)\n"
-#: coff-arm.c:2075
-msgid "%B: illegal symbol index in reloc: %d"
-msgstr "%B: otillåtet symbolindex i omlokalisering: %d"
+#: coff-rs6000.c:3379
+#, c-format
+msgid "%pB: TLS local relocation at 0x%<PRIx64> over imported symbol %s\n"
+msgstr "%pB: TLS lokal omlokalisering vid 0x%<PRIx64> över importerad symbol %s\n"
-#: coff-arm.c:2206
+#: coff-rs6000.c:3785
#, c-format
-msgid "error: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%d"
-msgstr "fel: %B kompilerades för APCS-%d, medan %B kompilerades för APCS-%d"
+msgid "%pB: relocation (%d) at 0x%<PRIx64> has wrong r_rsize (0x%x)\n"
+msgstr "%pB: omlokalisering (%d) på 0x%<PRIx64> har fel r_rsize (0x%x)\n"
-#: coff-arm.c:2222 elf32-arm.c:16123
+#: coff-rs6000.c:4047 coff64-rs6000.c:2021
#, c-format
-msgid "error: %B passes floats in float registers, whereas %B passes them in integer registers"
-msgstr "fel: %B skickar flyttal i flyttalsregister, medan %B skickar dem i heltalsregister"
+msgid "%pB: symbol `%s' has unrecognized smclas %d"
+msgstr "%pB: symbolen `%s' har oigenkänd smclas %d"
-#: coff-arm.c:2225 elf32-arm.c:16127
+#: coff-sh.c:781 elf32-sh.c:521
#, c-format
-msgid "error: %B passes floats in integer registers, whereas %B passes them in float registers"
-msgstr "fel: %B skickar flyttal i heltalsregister, medan %B skickar dem i flyttalsregister"
+msgid "%pB: %#<PRIx64>: warning: bad R_SH_USES offset"
+msgstr "%pB: %#<PRIx64>: varning: dålig R_SH_USES-offset"
-#: coff-arm.c:2239
+#: coff-sh.c:792
#, c-format
-msgid "error: %B is compiled as position independent code, whereas target %B is absolute position"
-msgstr "fel: %B kompilerades som positionsoberoende kod, medan målet %B är en absolut position"
+msgid "%pB: %#<PRIx64>: warning: R_SH_USES points to unrecognized insn %#x"
+msgstr "%pB: %#<PRIx64>: varning: R_SH_USES pekar på oigenkänd insn %#x"
-#: coff-arm.c:2242
+#: coff-sh.c:810 elf32-sh.c:552
#, c-format
-msgid "error: %B is compiled as absolute position code, whereas target %B is position independent"
-msgstr "fel: %B kompilerades som absolut position-kod, medan målet %B är positionsoberoende"
+msgid "%pB: %#<PRIx64>: warning: bad R_SH_USES load offset"
+msgstr "%pB: %#<PRIx64>: varning: dålig R_SH_USES-laddningsoffset"
-#: coff-arm.c:2270 elf32-arm.c:16192
+#: coff-sh.c:835 elf32-sh.c:568
#, c-format
-msgid "Warning: %B supports interworking, whereas %B does not"
-msgstr "Varning: %B stöder samverkan, medan %B inte gör det"
+msgid "%pB: %#<PRIx64>: warning: could not find expected reloc"
+msgstr "%pB: %#<PRIx64>: varning: kunde inte hitta förväntad reloc"
-#: coff-arm.c:2273 elf32-arm.c:16198
+#: coff-sh.c:852 elf32-sh.c:597
#, c-format
-msgid "Warning: %B does not support interworking, whereas %B does"
-msgstr "Varning: %B stöder inte samverkan, medan %B gör det"
+msgid "%pB: %#<PRIx64>: warning: symbol in unexpected section"
+msgstr "%pB: %#<PRIx64>: varning: symbol i oväntat avsnitt"
-#: coff-arm.c:2297
+#: coff-sh.c:973 elf32-sh.c:727
#, c-format
-msgid "private flags = %x:"
-msgstr "privata flaggor = %x:"
+msgid "%pB: %#<PRIx64>: warning: could not find expected COUNT reloc"
+msgstr "%pB: %#<PRIx64>: varning: kunde inte hitta förväntad COUNT reloc"
-#: coff-arm.c:2305 elf32-arm.c:12119
+#: coff-sh.c:983 elf32-sh.c:738
#, c-format
-msgid " [floats passed in float registers]"
-msgstr " [flyttal skickade i flyttalsregister]"
+msgid "%pB: %#<PRIx64>: warning: bad count"
+msgstr "%pB: %#<PRIx64>: varning: dåligt antal"
-#: coff-arm.c:2307
+#: coff-sh.c:1349 coff-sh.c:2636 elf32-sh.c:1138 elf32-sh.c:1506
#, c-format
-msgid " [floats passed in integer registers]"
-msgstr " [flyttal skickade i heltalsregister]"
+msgid "%pB: %#<PRIx64>: fatal: reloc overflow while relaxing"
+msgstr "%pB: %#<PRIx64>: fatalt: reloc-överflöde under avkoppling"
-#: coff-arm.c:2310 elf32-arm.c:12122
+#: coff-sh.c:1443
#, c-format
-msgid " [position independent]"
-msgstr " [positionsoberoende]"
+msgid "%pB: fatal: generic symbols retrieved before relaxing"
+msgstr "%pB: fatalt: generiska symboler hämtade före avslappning"
-#: coff-arm.c:2312
+#: coff-sh.c:2773 cofflink.c:2947
#, c-format
-msgid " [absolute position]"
-msgstr " [absolut position]"
+msgid "%pB: illegal symbol index %ld in relocs"
+msgstr "%pB: olagligt symbolindex %ld i relocs"
-#: coff-arm.c:2316
+#: coff-tic30.c:172 coff-tic4x.c:228 coff-tic54x.c:338 coff-z80.c:325
+#: coff-z8k.c:188 coffcode.h:5314
#, c-format
-msgid " [interworking flag not initialised]"
-msgstr " [samverkandeflagga är inte initierad]"
+msgid "%pB: warning: illegal symbol index %ld in relocs"
+msgstr "%pB: varning: olagligt symbolindex %ld i relocs"
-#: coff-arm.c:2318
+#: coff-x86_64.c:147
+msgid "R_AMD64_IMAGEBASE with __ImageBase undefined"
+msgstr "R_AMD64_IMAGEBASE med __ImageBase odefinierad"
+
+#: coff64-rs6000.c:447 coff64-rs6000.c:554
#, c-format
-msgid " [interworking supported]"
-msgstr " [samverkan stöds]"
+msgid "%pB: C_STAT isn't supported by XCOFF64"
+msgstr "%pB: C_STAT stöds inte av XCOFF64"
-#: coff-arm.c:2320
+#: coff64-rs6000.c:477
#, c-format
-msgid " [interworking not supported]"
-msgstr " [samverkan stöds inte]"
+msgid "%pB: wrong auxtype %#x for storage class %#x"
+msgstr "%pB: fel auxtyp %#x för lagringsklass %#x"
-#: coff-arm.c:2366 elf32-arm.c:11104
+#: coff64-rs6000.c:1598
#, c-format
-msgid "Warning: Not setting interworking flag of %B since it has already been specified as non-interworking"
-msgstr "Varning: Ställer inte in interoperationsflagga för %B eftersom den redan har angetts som ej samverkande"
+msgid "%pB: relocation (%d) at (0x%<PRIx64>) has wrong r_rsize (0x%x)\n"
+msgstr "%pB: omlokalisering (%d) vid (0x%<PRIx64>) har fel r_rsize (0x%x)\n"
-#: coff-arm.c:2370 elf32-arm.c:11108
+#: coffcode.h:951
#, c-format
-msgid "Warning: Clearing the interworking flag of %B due to outside request"
-msgstr "Varning: Rensar samverkandeflaggan för %B på begäran utifrån"
+msgid "%pB: unable to load COMDAT section name"
+msgstr "%pB: kan inte läsa in COMDAT-avsnittsnamn"
-#: coff-h8300.c:1096
+#: coffcode.h:976
#, c-format
-msgid "cannot handle R_MEM_INDIRECT reloc when using %s output"
-msgstr "kan inte hantera R_MEM_INDIRECT-omlokalisering vid användning av %s-utdata"
+msgid "%pB: warning: no symbol for section '%s' found"
+msgstr "%pB: varning: ingen symbol för avsnittet '%s' hittades"
-#: coff-i860.c:147
+#: coffcode.h:1148
#, c-format
-msgid "relocation `%s' not yet implemented"
-msgstr "omplacering â€%s†ännu inte tillämpad"
+msgid "%pB: error: unexpected symbol '%s' in COMDAT section"
+msgstr "%pB: fel: oväntad symbol '%s' i COMDAT-avsnittet"
-#: coff-i860.c:605 coff-tic54x.c:365 coffcode.h:5209
-msgid "%B: warning: illegal symbol index %ld in relocs"
-msgstr "%B: varning: ogiltigt symbolindex %ld i relocs"
+#: coffcode.h:1159
+#, c-format
+msgid "%pB: warning: COMDAT symbol '%s' does not match section name '%s'"
+msgstr "%pB: varning: COMDAT-symbolen '%s' stämmer inte överens med sektionsnamnet '%s'"
-#: coff-i960.c:124 coff-i960.c:480
-msgid "uncertain calling convention for non-COFF symbol"
-msgstr "osäker anropskonvention för icke-COFF-symbol"
+#. Generate a warning message rather using the 'unhandled'
+#. variable as this will allow some .sys files generate by
+#. other toolchains to be processed. See bugzilla issue 196.
+#: coffcode.h:1267
+#, c-format
+msgid "%pB: warning: ignoring section flag %s in section %s"
+msgstr "%pB: varning: ignorerar sektionsflaggan %s i sektionen %s"
-#: coff-m68k.c:484 elf32-bfin.c:5556 elf32-cr16.c:2853 elf32-m68k.c:4632
-msgid "unsupported reloc type"
-msgstr "omlokaliseringstypen stöds inte"
+#: coffcode.h:1337
+#, c-format
+msgid "%pB (%s): section flag %s (%#lx) ignored"
+msgstr "%pB (%s): sektionsflaggan %s (%#lx) ignoreras"
-#: coff-mips.c:636 elf32-mips.c:1637 elf32-score.c:431 elf32-score7.c:330
-#: elf64-mips.c:2925 elfn32-mips.c:2737
-msgid "GP relative relocation when _gp not defined"
-msgstr "GP-relativ omlokalisering då _gp inte var definierat"
+#: coffcode.h:1954
+#, c-format
+msgid "%pB: overflow reloc count too small"
+msgstr "%pB: överflöd reloc count för litet"
-#: coff-or32.c:216
-msgid "Unrecognized reloc"
-msgstr "Okänd omlokalisering"
+#: coffcode.h:1963 coffcode.h:2028
+#, c-format
+msgid "%pB: warning: claims to have 0xffff relocs, without overflow"
+msgstr "%pB: varning: påstår sig ha 0xffff relocs, utan överskridande"
-#: coff-rs6000.c:2802
+#: coffcode.h:2411
#, c-format
-msgid "%s: unsupported relocation type 0x%02x"
-msgstr "%s: omlokaliseringstypen 0x%02x stöds inte"
+msgid "unrecognized TI COFF target id '0x%x'"
+msgstr "oigenkänd TI COFF mål-id '0x%x'"
-#: coff-rs6000.c:2887
+#: coffcode.h:2690
#, c-format
-msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry"
-msgstr "%s: TOC-omlokalisering vid 0x%x till symbolen â€%s†utan nÃ¥gon TOC-post"
+msgid "%pB: reloc against a non-existent symbol index: %ld"
+msgstr "%pB: reloc mot ett icke-existerande symbolindex: %ld"
-#: coff-rs6000.c:3638 coff64-rs6000.c:2117
-msgid "%B: symbol `%s' has unrecognized smclas %d"
-msgstr "%B: symbolen â€%s†har okänd smclas %d"
+#: coffcode.h:3162
+#, c-format
+msgid "%pB: too many sections (%d)"
+msgstr "%pB: för många sektioner (%d)"
-#: coff-sh.c:506
+#: coffcode.h:3690
#, c-format
-msgid "SH Error: unknown reloc type %d"
-msgstr "SH-fel: okänd omlokaliseringstyp %d"
+msgid "%pB: section %pA: string table overflow at offset %ld"
+msgstr "%pB: avsnitt %pA: strängtabellöverflöd vid offset %ld"
-#: coff-tic4x.c:184 coff-tic54x.c:279 coff-tic80.c:440
+#: coffcode.h:3791
#, c-format
-msgid "Unrecognized reloc type 0x%x"
-msgstr "Okänd omlokaliseringstyp 0x%x"
+msgid "%pB:%s section %s: alignment 2**%u not representable"
+msgstr "%pB:%s sektion %s: anpassning 2**%u inte representerbar"
-#: coff-tic4x.c:227
+#: coffcode.h:4532
#, c-format
-msgid "%s: warning: illegal symbol index %ld in relocs"
-msgstr "%s: varning: otillåtet symbolindex %ld i omlokaliseringarna"
+msgid "%pB: warning: line number table read failed"
+msgstr "%pB: varning: läsning av radnummertabell misslyckades"
-#: coff-w65.c:355
+#: coffcode.h:4578 coffcode.h:4592
#, c-format
-msgid "ignoring reloc %s\n"
-msgstr "ignorerar omlokalisering %s\n"
+msgid "%pB: warning: illegal symbol index 0x%lx in line number entry %d"
+msgstr "%pB: varning: olagligt symbolindex 0x%lx i radnummerposten %d"
-#: coffcode.h:1005
-msgid "%B: warning: COMDAT symbol '%s' does not match section name '%s'"
-msgstr "%B: varning: COMDAT-symbolen â€%s†matchar inte sektionsnamnet â€%sâ€"
+#: coffcode.h:4606
+#, c-format
+msgid "%pB: warning: illegal symbol in line number entry %d"
+msgstr "%pB: varning: olaglig symbol i radnummerposten %d"
-#. Generate a warning message rather using the 'unhandled'
-#. variable as this will allow some .sys files generate by
-#. other toolchains to be processed. See bugzilla issue 196.
-#: coffcode.h:1230
-msgid "%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s"
-msgstr "%B: Varning: Ignorerar sektionsflaggan IMAGE_SCN_MEM_NOT_PAGED i sektion %s"
+#: coffcode.h:4619
+#, c-format
+msgid "%pB: warning: duplicate line number information for `%s'"
+msgstr "%pB: varning: duplicerad information om radnummer för `%s'"
+
+#: coffcode.h:5043
+#, c-format
+msgid "%pB: unrecognized storage class %d for %s symbol `%s'"
+msgstr "%pB: oigenkänd lagringsklass %d för %s symbolen `%s'"
+
+#: coffcode.h:5183
+#, c-format
+msgid "warning: %pB: local symbol `%s' has no section"
+msgstr "warning: %pB: den lokala symbolen `%s' har inget avsnitt"
-#: coffcode.h:1297
-msgid "%B (%s): Section flag %s (0x%x) ignored"
-msgstr "%B (%s): sektionsflaggan %s (0x%x) ignoreras"
+#: coffcode.h:5354
+#, c-format
+msgid "%pB: illegal relocation type %d at address %#<PRIx64>"
+msgstr "%pB: olaglig omlokaliseringstyp %d på adress %#<PRIx64>"
+
+#: coffgen.c:255 elf.c:1033
+#, c-format
+msgid "%pB: unable to compress section %s"
+msgstr "%pB: det går inte att komprimera avsnitt %s"
-#: coffcode.h:2439
+#: coffgen.c:265 elf.c:1043
#, c-format
-msgid "Unrecognized TI COFF target id '0x%x'"
-msgstr "Okänt TI COFF-mÃ¥lid â€0x%xâ€"
+msgid "%pB: unable to decompress section %s"
+msgstr "%pB: det går inte att dekomprimera sektion %s"
-#: coffcode.h:2753
-msgid "%B: reloc against a non-existant symbol index: %ld"
-msgstr "%B: omlokalisering mot ett icke-existerande symbolindex: %ld"
+#: coffgen.c:1778
+#, c-format
+msgid "%pB: bad string table size %<PRIu64>"
+msgstr "%pB: fel storlek på strängtabellen %<PRIu64>"
+
+#: coffgen.c:2162 coffgen.c:2301 cofflink.c:2012 ecoff.c:1456 elf.c:2288
+#: elf.c:2320 pef.c:214 syms.c:788 xcofflink.c:5530
+msgid "<corrupt>"
+msgstr "<korrupt>"
+
+#: coffgen.c:2191
+#, c-format
+msgid "<corrupt info> %s"
+msgstr "<korrupt information> %s"
-#: coffcode.h:3311
-msgid "%B: too many sections (%d)"
-msgstr "%B: för många sektioner (%d)"
+#: coffgen.c:2797 elflink.c:15435 linker.c:3011
+msgid "%F%P: already_linked_table: %E\n"
+msgstr "%F%P: already_linked_table: %E\n"
-#: coffcode.h:3729
-msgid "%B: section %s: string table overflow at offset %ld"
-msgstr "%B: sektion %s: strängtabellen flödade över vid %ld"
+#: coffgen.c:3139 elflink.c:14375
+#, c-format
+msgid "removing unused section '%pA' in file '%pB'"
+msgstr "tar bort oanvända avsnitt '%pA' i filen '%pB'"
-#: coffcode.h:4534
-msgid "%B: warning: line number table read failed"
-msgstr "%B: varning: kunde inte läsa radnummertabellen"
+#: coffgen.c:3216 elflink.c:14606
+msgid "warning: gc-sections option ignored"
+msgstr "varning: alternativet gc-sektioner ignoreras"
-#: coffcode.h:4564
-msgid "%B: warning: illegal symbol index %ld in line numbers"
-msgstr "%B: varning: ogiltigt symbolindex %ld i radnummer"
+#: cofflink.c:398
+#, c-format
+msgid "warning: symbol `%s' is both section and non-section"
+msgstr "varning: symbolen `%s' är både en sektion och en icke-sektion"
-#: coffcode.h:4578
-msgid "%B: warning: duplicate line number information for `%s'"
-msgstr "%B: varning: dubbla kopior av linjenummer för â€%sâ€"
+#: cofflink.c:503 elf64-ia64-vms.c:5198 elflink.c:5560
+#, c-format
+msgid "warning: type of symbol `%s' changed from %d to %d in %pB"
+msgstr "warning: typen av symbolen `%s' ändrades från %d till %d i %pB"
-#: coffcode.h:4978
-msgid "%B: Unrecognized storage class %d for %s symbol `%s'"
-msgstr "%B: Okänd lagringsklass %d för %s symbol â€%sâ€"
+#: cofflink.c:2340
+#, c-format
+msgid "%pB: relocs in section `%pA', but it has no contents"
+msgstr "%pB: flyttar in i sektion `%pA', men den har inget innehåll"
-#: coffcode.h:5104
-msgid "warning: %B: local symbol `%s' has no section"
-msgstr "varning: %B: den lokala symbolen â€%s†har ingen sektion"
+#: cofflink.c:2403 elflink.c:11809
+#, c-format
+msgid "%X`%s' referenced in section `%pA' of %pB: defined in discarded section `%pA' of %pB\n"
+msgstr "%X`%s' refererad till i avsnitt `%pA' i %pB: definierad i borttaget avsnitt `%pA' i %pB\n"
-#: coffcode.h:5248
-msgid "%B: illegal relocation type %d at address 0x%lx"
-msgstr "%B: ogiltig omlokaliseringstyp %d på adress 0x%lx"
+#: cofflink.c:2598
+#, c-format
+msgid "%pB: stripping non-representable symbol '%s' (value 0x%<PRIx64>)"
+msgstr "%pB: borttagning av den icke-representerbara symbolen '%s' (värde 0x%<PRIx64>)"
-#: coffgen.c:179 elf.c:1030
-msgid "%B: unable to initialize compress status for section %s"
-msgstr "%B: kunde inte initiera kompression av status för sektion %s"
+#: cofflink.c:2716
+#, c-format
+msgid "%pB: %pA: reloc overflow: %#x > 0xffff"
+msgstr "%pB: %pA: reläöverflöd: %#x > 0xffff"
-#: coffgen.c:199 elf.c:1050
-msgid "%B: unable to initialize decompress status for section %s"
-msgstr "%B: kunde inte initiera uppackning av status för sektion %s"
+#: cofflink.c:2724
+#, c-format
+msgid "%pB: warning: %pA: line number overflow: %#x > 0xffff"
+msgstr "%pB: varning: %pA: radnummeröverskridning: %#x > 0xffff"
-#: coffgen.c:1685
-msgid "%B: bad string table size %lu"
-msgstr "%B: felaktig strängtabellsstorlek %lu"
+#: cofflink.c:3118
+#, c-format
+msgid "%pB: bad reloc address %#<PRIx64> in section `%pA'"
+msgstr "%pB: dålig reloc-adress %#<PRIx64> i avsnitt `%pA'"
-#: coffgen.c:2608 elflink.c:12906 linker.c:3136
-msgid "%F%P: already_linked_table: %E\n"
-msgstr "%F%P: already_linked_table: %E\n"
+#: coffswap.h:826
+#, c-format
+msgid "%pB: %s: reloc overflow: 0x%lx > 0xffff"
+msgstr "%pB: %s: reloc-överskridning: 0x%lx > 0xffff"
-#: cofflink.c:533 elf64-ia64-vms.c:5173 elflink.c:4356
-msgid "Warning: type of symbol `%s' changed from %d to %d in %B"
-msgstr "Varning: type av symbol â€%s†har ändrats frÃ¥n %d till %d i %B"
+#: compress.c:748 compress.c:765 libbfd.c:1322
+#, c-format
+msgid "error: %pB(%pA) is too large (%#<PRIx64> bytes)"
+msgstr "fel: %pB(%pA) är för stor (%#<PRIx64> bytes)"
+
+#: cpu-arm.c:438
+#, c-format
+msgid "warning: unable to update contents of %s section in %pB"
+msgstr "varning: det går inte att uppdatera innehållet i %s avsnitt i %pB"
-#: cofflink.c:2416
-msgid "%B: relocs in section `%A', but it has no contents"
-msgstr "%B: relocs i sektion â€%Aâ€, men den har inget innehÃ¥ll"
+#: dwarf2.c:702
+#, c-format
+msgid "DWARF error: can't find %s section."
+msgstr "DWARF-fel: kan inte hitta %s avsnitt."
-#: cofflink.c:2478 elflink.c:9711
-msgid "%X`%s' referenced in section `%A' of %B: defined in discarded section `%A' of %B\n"
-msgstr "%Xâ€%s†används i sektionen â€%A†i %B: definieras i kastad sektion â€%A†i %B\n"
+#: dwarf2.c:710
+#, c-format
+msgid "DWARF error: section %s has no contents"
+msgstr "DWARF-fel: avsnittet %s har inget innehåll"
+
+#. PR 26946
+#: dwarf2.c:719
+#, c-format
+msgid "DWARF error: section %s is too big"
+msgstr "DWARF-fel: Avsnittet %s är för stort"
-#: cofflink.c:2777 coffswap.h:826
+#: dwarf2.c:754
#, c-format
-msgid "%s: %s: reloc overflow: 0x%lx > 0xffff"
-msgstr "%s: %s: omlokalisering ger överspill: 0x%lx > 0xffff"
+msgid "DWARF error: offset (%<PRIu64>) greater than or equal to %s size (%<PRIu64>)"
+msgstr "DWARF-fel: offset (%<PRIu64>) större än eller lika med %s storlek (%<PRIu64>)"
-#: cofflink.c:2786 coffswap.h:812
+#: dwarf2.c:1501
+msgid "DWARF error: info pointer extends beyond end of attributes"
+msgstr "DWARF-fel: infopekaren sträcker sig längre än slutet av attributen"
+
+#: dwarf2.c:1693
#, c-format
-msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff"
-msgstr "%s: varning: %s: radnummer ger överspill: 0x%lx > 0xffff"
+msgid "DWARF error: invalid or unhandled FORM value: %#x"
+msgstr "DWARF-fel: ogiltigt eller obehandlat FORM-värde: %#x"
+
+#: dwarf2.c:2050
+msgid "DWARF error: mangled line number section (bad file number)"
+msgstr "DWARF-fel: manglad radnummersektion (dåligt filnummer)"
-#: cpu-arm.c:190 cpu-arm.c:201
-msgid "error: %B is compiled for the EP9312, whereas %B is compiled for XScale"
-msgstr "fel: %B kompilerades för EP9312, medan %B kompilerades för XScale"
+#: dwarf2.c:2614
+msgid "DWARF error: zero format count"
+msgstr "DWARF-fel: noll formaträkning"
+
+#: dwarf2.c:2624
+#, c-format
+msgid "DWARF error: data count (%<PRIx64>) larger than buffer size"
+msgstr "DWARF-fel: antal data (%<PRIx64>) större än buffertstorlek"
-#: cpu-arm.c:334
+#: dwarf2.c:2663
#, c-format
-msgid "warning: unable to update contents of %s section in %s"
-msgstr "varning: kan inte uppdatera innehållet i %s-sektion i %s"
+msgid "DWARF error: unknown format content type %<PRIu64>"
+msgstr "DWARF-fel: okänt format innehållstyp %<PRIu64>"
-#: dwarf2.c:514
+#: dwarf2.c:2736
#, c-format
-msgid "Dwarf Error: Can't find %s section."
-msgstr "Dwarf-fel: Kan inte hitta sektion %s."
+msgid "DWARF error: line info section is too small (%<PRId64>)"
+msgstr "DWARF-fel: Linjeinfosektionen är för liten (%<PRId64>)"
-#: dwarf2.c:543
+#: dwarf2.c:2763
#, c-format
-msgid "Dwarf Error: Offset (%lu) greater than or equal to %s size (%lu)."
-msgstr "Dwarf-fel: Offset (%lu) är större än eller i samma storlek som %s (%lu)."
+msgid "DWARF error: line info data is bigger (%#<PRIx64>) than the space remaining in the section (%#lx)"
+msgstr "DWARF-fel: data för radinfo är större (%#<PRIx64>) än det utrymme som återstår i avsnittet (%#lx)"
-#: dwarf2.c:1071
+#: dwarf2.c:2776
#, c-format
-msgid "Dwarf Error: Invalid or unhandled FORM value: %#x."
-msgstr "Dwarf-fel: Ogiltigt eller ej hanterat FORM-värde: %#x."
+msgid "DWARF error: unhandled .debug_line version %d"
+msgstr "DWARF-fel: obehandlad .debug_line version %d"
-#: dwarf2.c:1332
-msgid "Dwarf Error: mangled line number section (bad file number)."
-msgstr "Dwarf-fel: trasig radnummerssektion (felaktigt filnummer)."
+#: dwarf2.c:2785
+msgid "DWARF error: ran out of room reading prologue"
+msgstr "DWARF-fel: fick slut på utrymme när jag läste prologen"
-#: dwarf2.c:1590
+#: dwarf2.c:2801
#, c-format
-msgid "Dwarf Error: Unhandled .debug_line version %d."
-msgstr "Dwarf-fel: Ickehanterad version %d av .debug_line."
+msgid "DWARF error: line info unsupported segment selector size %u"
+msgstr "DWARF-fel: radinfo stöds inte segmentväljarstorlek %u"
+
+#: dwarf2.c:2823
+msgid "DWARF error: invalid maximum operations per instruction"
+msgstr "DWARF-fel: ogiltigt maximalt antal operationer per instruktion"
+
+#: dwarf2.c:2835
+msgid "DWARF error: ran out of room reading opcodes"
+msgstr "DWARF-fel: fick slut på utrymme för att läsa opkoder"
+
+#: dwarf2.c:3012
+msgid "DWARF error: mangled line number section"
+msgstr "DWARF-fel: manglad radnummersektion"
-#: dwarf2.c:1612
-msgid "Dwarf Error: Invalid maximum operations per instruction."
-msgstr "Dwarf-fel: Ogiltigt maximala operationer per instruktion."
+#: dwarf2.c:3483
+msgid "DWARF error: abstract instance recursion detected"
+msgstr "DWARF-fel: rekursion i abstrakt instans upptäckt"
-#: dwarf2.c:1807
-msgid "Dwarf Error: mangled line number section."
-msgstr "Dwarf-fel: trasig radnummerssektion."
+#: dwarf2.c:3517 dwarf2.c:3607
+msgid "DWARF error: invalid abstract instance DIE ref"
+msgstr "DWARF-fel: ogiltig abstrakt instans DIE ref"
-#: dwarf2.c:2160
+#: dwarf2.c:3533
#, c-format
-msgid "Dwarf Error: Unable to read alt ref %u."
-msgstr "Dwarf-fel: Kunde inte läsa alt ref %u."
+msgid "DWARF error: unable to read alt ref %<PRIu64>"
+msgstr "DWARF-fel: det går inte att läsa alt ref %<PRIu64>"
-#: dwarf2.c:2179 dwarf2.c:2299 dwarf2.c:2595
+#: dwarf2.c:3585
#, c-format
-msgid "Dwarf Error: Could not find abbrev number %u."
-msgstr "Dwarf-fel: Kunde inte hitta förkortningsnumret %u."
+msgid "DWARF error: unable to locate abstract instance DIE ref %<PRIu64>"
+msgstr "DWARF-fel: det går inte att hitta den abstrakta instansen DIE ref %<PRIu64>"
-#: dwarf2.c:2551
+#: dwarf2.c:3622 dwarf2.c:3938 dwarf2.c:4511
#, c-format
-msgid "Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3 and 4 information."
-msgstr "Dwarf-fel: hittade dwarf version â€%uâ€, läsaren hanterar bara versioner 2,3 och 4."
+msgid "DWARF error: could not find abbrev number %u"
+msgstr "DWARF-fel: kunde inte hitta förkortningsnummer %u"
-#: dwarf2.c:2560
+#: dwarf2.c:4211
#, c-format
-msgid "Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'."
-msgstr "Dwarf-fel: hittade adresstorleken â€%uâ€, denna läsare kan inte hantera storlekar större än â€%uâ€."
+msgid "DWARF error: could not find variable specification at offset 0x%lx"
+msgstr "DWARF-fel: kunde inte hitta variabelspecifikationen vid offset 0x%lx"
-#: dwarf2.c:2586
+#: dwarf2.c:4357 dwarf2.c:4611
+msgid "DWARF error: DW_AT_comp_dir attribute encountered with a non-string form"
+msgstr "DWARF-fel: DW_AT_comp_dir-attributet påträffades med en icke-strängform"
+
+#: dwarf2.c:4428
+#, c-format
+msgid "DWARF error: found dwarf version '%u', this reader only handles version 2, 3, 4 and 5 information"
+msgstr "DWARF-fel: hittade dvärgversion '%u', den här läsaren hanterar endast information om version 2, 3, 4 och 5"
+
+#: dwarf2.c:4475
#, c-format
-msgid "Dwarf Error: Bad abbrev number: %u."
-msgstr "Dwarf-fel: Felaktigt förkortningsnummer: %u."
+msgid "DWARF error: found address size '%u', this reader can not handle sizes greater than '%u'"
+msgstr "DWARF-fel: hittade adressstorlek '%u', den här läsaren kan inte hantera storlekar större än '%u'"
-#: ecoff.c:1233
+#: ecoff.c:1017
#, c-format
-msgid "Unknown basic type %d"
-msgstr "Okänd grundtyp %d"
+msgid "%pB: warning: isymMax (%ld) is greater than ifdMax (%ld)"
+msgstr "%pB: varning: isymMax (%ld) är större än ifdMax (%ld)"
-#: ecoff.c:1490
+#: ecoff.c:1313
+#, c-format
+msgid "unknown basic type %d"
+msgstr "okänd grundtyp %d"
+
+#: ecoff.c:1571
#, c-format
msgid ""
"\n"
@@ -601,7 +769,7 @@ msgstr ""
"\n"
" Symbol slut+1: %ld"
-#: ecoff.c:1497 ecoff.c:1500
+#: ecoff.c:1578 ecoff.c:1581
#, c-format
msgid ""
"\n"
@@ -610,7 +778,7 @@ msgstr ""
"\n"
" Första symbolen: %ld"
-#: ecoff.c:1512
+#: ecoff.c:1596
#, c-format
msgid ""
"\n"
@@ -619,7 +787,7 @@ msgstr ""
"\n"
" Symbol slut+1: %-7ld Typ: %s"
-#: ecoff.c:1519
+#: ecoff.c:1604
#, c-format
msgid ""
"\n"
@@ -628,7 +796,7 @@ msgstr ""
"\n"
" Lokal symbol: %ld"
-#: ecoff.c:1527
+#: ecoff.c:1612
#, c-format
msgid ""
"\n"
@@ -637,7 +805,7 @@ msgstr ""
"\n"
" struct; symbol slut+1: %ld"
-#: ecoff.c:1532
+#: ecoff.c:1617
#, c-format
msgid ""
"\n"
@@ -646,7 +814,7 @@ msgstr ""
"\n"
" union; symbol slut+1: %ld"
-#: ecoff.c:1537
+#: ecoff.c:1622
#, c-format
msgid ""
"\n"
@@ -655,7 +823,7 @@ msgstr ""
"\n"
" enum; symbol slut+1: %ld"
-#: ecoff.c:1543
+#: ecoff.c:1630
#, c-format
msgid ""
"\n"
@@ -664,138 +832,339 @@ msgstr ""
"\n"
" Typ: %s"
-#: elf-attrs.c:573
-msgid "error: %B: Object has vendor-specific contents that must be processed by the '%s' toolchain"
-msgstr "fel: %B: Objektet har leverantörspecifikt innehÃ¥ll som mÃ¥ste behandlas av verktygskedjan â€%sâ€"
-
-#: elf-attrs.c:582
-msgid "error: %B: Object tag '%d, %s' is incompatible with tag '%d, %s'"
-msgstr "fel: %B: Objektetikett â€%d, %s†är inkompatibel med etikett â€%d, %sâ€"
-
-#: elf-eh-frame.c:921
-msgid "%P: error in %B(%A); no .eh_frame_hdr table will be created.\n"
-msgstr "%P: fel i %B(%A); ingen .eh_frame_hdr-tabell kommer skapas.\n"
-
-#: elf-eh-frame.c:1193
-msgid "%P: fde encoding in %B(%A) prevents .eh_frame_hdr table being created.\n"
-msgstr "%P: fde-kodningen i %B(%A) förhindrar att .eh_frame_hdr-tabell skapas.\n"
-
-#: elf-eh-frame.c:1612
-msgid "%P: DW_EH_PE_datarel unspecified for this architecture.\n"
-msgstr "%P: DW_EH_PE_datarel ospecificerad för den här arkitekturen.\n"
-
-#: elf-ifunc.c:135
-msgid "%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%B' can not be used when making an executable; recompile with -fPIE and relink with -pie\n"
-msgstr "%F%P: dynamisk STT_GNU_IFUNC-symbol â€%s†med pekarmotsvarighet i â€%B†kan inte användas när en körfil framställs; kompilera om med -fPIE och länka om med -pie\n"
-
-#: elf-m10200.c:430 elf-m10300.c:2164 elf32-avr.c:1256 elf32-bfin.c:3220
-#: elf32-cr16.c:1484 elf32-cr16c.c:780 elf32-cris.c:2016 elf32-crx.c:922
-#: elf32-d10v.c:513 elf32-epiphany.c:557 elf32-fr30.c:589 elf32-frv.c:4039
-#: elf32-h8300.c:525 elf32-i860.c:1212 elf32-ip2k.c:1468 elf32-iq2000.c:688
-#: elf32-lm32.c:1160 elf32-m32c.c:553 elf32-m32r.c:3066 elf32-m68hc1x.c:1283
-#: elf32-mep.c:535 elf32-metag.c:1992 elf32-microblaze.c:1560
-#: elf32-moxie.c:282 elf32-mt.c:395 elf32-nds32.c:4910 elf32-openrisc.c:404
-#: elf32-score.c:2729 elf32-score7.c:2537 elf32-spu.c:5041
-#: elf32-tilepro.c:3666 elf32-v850.c:2281 elf32-xstormy16.c:936
-#: elf64-mmix.c:1538 elfxx-tilegx.c:4051
+#: elf-attrs.c:417 elf-attrs.c:447 elf-attrs.c:623
+msgid "error adding attribute"
+msgstr "fel vid tillägg av attribut"
+
+#: elf-attrs.c:503
+#, c-format
+msgid "%pB: error: attribute section '%pA' too big: %#llx"
+msgstr "%pB: fel: attributavsnittet \"%pA\" är för stort: %#llx"
+
+#: elf-attrs.c:540
+#, c-format
+msgid "%pB: error: attribute section length too small: %ld"
+msgstr "%pB: fel: attributets sektionslängd är för liten: %ld"
+
+#: elf-attrs.c:673
+#, c-format
+msgid "error: %pB: object has vendor-specific contents that must be processed by the '%s' toolchain"
+msgstr "fel: %pB: objektet har leverantörsspecifikt innehåll som måste bearbetas av verktygskedjan \"%s"
+
+#: elf-attrs.c:683
+#, c-format
+msgid "error: %pB: object tag '%d, %s' is incompatible with tag '%d, %s'"
+msgstr "fel: %pB: objekttaggen \"%d, %s\" är inkompatibel med taggen \"%d, %s"
+
+#: elf-eh-frame.c:946
+#, c-format
+msgid "discarding zero address range FDE in %pB(%pA).\n"
+msgstr "förkastar nolladressområdet FDE i %pB(%pA).\n"
+
+#: elf-eh-frame.c:1051
+#, c-format
+msgid "error in %pB(%pA); no .eh_frame_hdr table will be created"
+msgstr "fel i %pB(%pA); ingen .eh_frame_hdr-tabell kommer att skapas"
+
+#: elf-eh-frame.c:1542
+#, c-format
+msgid "FDE encoding in %pB(%pA) prevents .eh_frame_hdr table being created"
+msgstr "FDE-kodning i %pB(%pA) förhindrar att .eh_frame_hdr-tabellen skapas"
+
+#: elf-eh-frame.c:1549
+msgid "further warnings about FDE encoding preventing .eh_frame_hdr generation dropped"
+msgstr "ytterligare varningar om att FDE-kodning förhindrar generering av .eh_frame_hdr har tagits bort"
+
+#: elf-eh-frame.c:1872
+#, c-format
+msgid "%pB: %pA not in order"
+msgstr "%pB: %pA inte i ordning"
+
+#: elf-eh-frame.c:1886
+#, c-format
+msgid "%pB: %pA invalid input section size"
+msgstr "%pB: %pA ogiltig storlek på inmatningsavsnitt"
+
+#: elf-eh-frame.c:1894
+#, c-format
+msgid "%pB: %pA points past end of text section"
+msgstr "%pB: %pA pekar förbi slutet av textavsnittet"
+
+#: elf-eh-frame.c:2147
+msgid "DW_EH_PE_datarel unspecified for this architecture"
+msgstr "DW_EH_PE_datarel ospecificerad för denna arkitektur"
+
+#: elf-eh-frame.c:2317
+#, c-format
+msgid "invalid output section for .eh_frame_entry: %pA"
+msgstr "ogiltigt utdataavsnitt för .eh_frame_entry: %pA"
+
+#: elf-eh-frame.c:2340
+#, c-format
+msgid "invalid contents in %pA section"
+msgstr "ogiltigt innehåll i %pA avsnitt"
+
+#: elf-eh-frame.c:2496
+msgid ".eh_frame_hdr entry overflow"
+msgstr ".eh_frame_hdr post överskridande"
+
+#: elf-eh-frame.c:2498
+msgid ".eh_frame_hdr refers to overlapping FDEs"
+msgstr ".eh_frame_hdr hänvisar till överlappande FDE"
+
+#. xgettext:c-format.
+#: elf-ifunc.c:144 elfnn-loongarch.c:1704
+#, c-format
+msgid "%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%pB' can not be used when making an executable; recompile with -fPIE and relink with -pie\n"
+msgstr "%F%P: dynamisk STT_GNU_IFUNC-symbol `%s' med pekarlikhet i `%pB' kan inte användas när man skapar en körbar fil; kompilera om med -fPIE och länka om med -pie\n"
+
+#: elf-m10200.c:434 elf-m10300.c:2146 elf32-bfin.c:3132 elf32-cr16.c:1429
+#: elf32-cris.c:2033 elf32-crx.c:922 elf32-d10v.c:510 elf32-epiphany.c:563
+#: elf32-fr30.c:594 elf32-frv.c:4048 elf32-ft32.c:492 elf32-h8300.c:523
+#: elf32-ip2k.c:1478 elf32-iq2000.c:691 elf32-lm32.c:1069 elf32-m32c.c:624
+#: elf32-m32r.c:2837 elf32-m68hc1x.c:1270 elf32-mep.c:522 elf32-metag.c:1983
+#: elf32-microblaze.c:1677 elf32-moxie.c:288 elf32-mt.c:402 elf32-nds32.c:6092
+#: elf32-or1k.c:1895 elf32-score.c:2724 elf32-score7.c:2535 elf32-spu.c:5081
+#: elf32-tilepro.c:3369 elf32-v850.c:2297 elf32-visium.c:680
+#: elf32-xstormy16.c:930 elf64-bpf.c:339 elf64-mmix.c:1537 elfxx-tilegx.c:3742
msgid "internal error: out of range error"
msgstr "internt fel: utanför intervallet"
-#: elf-m10200.c:434 elf-m10300.c:2168 elf32-avr.c:1260 elf32-bfin.c:3224
-#: elf32-cr16.c:1488 elf32-cr16c.c:784 elf32-cris.c:2020 elf32-crx.c:926
-#: elf32-d10v.c:517 elf32-fr30.c:593 elf32-frv.c:4043 elf32-h8300.c:529
-#: elf32-i860.c:1216 elf32-iq2000.c:692 elf32-lm32.c:1164 elf32-m32c.c:557
-#: elf32-m32r.c:3070 elf32-m68hc1x.c:1287 elf32-mep.c:539 elf32-metag.c:1996
-#: elf32-microblaze.c:1564 elf32-moxie.c:286 elf32-msp430.c:1321
-#: elf32-nds32.c:4914 elf32-openrisc.c:408 elf32-score.c:2733
-#: elf32-score7.c:2541 elf32-spu.c:5045 elf32-tilepro.c:3670 elf32-v850.c:2285
-#: elf32-xstormy16.c:940 elf64-mmix.c:1542 elfxx-mips.c:9995
-#: elfxx-tilegx.c:4055
+#: elf-m10200.c:438 elf-m10300.c:2150 elf32-bfin.c:3136 elf32-cr16.c:1433
+#: elf32-cris.c:2037 elf32-crx.c:926 elf32-d10v.c:514 elf32-fr30.c:598
+#: elf32-frv.c:4052 elf32-ft32.c:496 elf32-h8300.c:527 elf32-iq2000.c:695
+#: elf32-lm32.c:1073 elf32-m32c.c:628 elf32-m32r.c:2841 elf32-m68hc1x.c:1274
+#: elf32-mep.c:526 elf32-metag.c:1987 elf32-microblaze.c:1681 elf32-moxie.c:292
+#: elf32-msp430.c:1510 elf32-nds32.c:6096 elf32-or1k.c:1899 elf32-score.c:2728
+#: elf32-score7.c:2539 elf32-spu.c:5085 elf32-tilepro.c:3373 elf32-v850.c:2301
+#: elf32-visium.c:684 elf32-xstormy16.c:934 elf64-mmix.c:1541
+#: elfxx-mips.c:10642 elfxx-tilegx.c:3746
msgid "internal error: unsupported relocation error"
msgstr "internt fel: omlokaliseringen stöds inte"
-#: elf-m10200.c:438 elf32-cr16.c:1492 elf32-cr16c.c:788 elf32-crx.c:930
-#: elf32-d10v.c:521 elf32-h8300.c:533 elf32-lm32.c:1168 elf32-m32r.c:3074
-#: elf32-m68hc1x.c:1291 elf32-microblaze.c:1568 elf32-nds32.c:4918
-#: elf32-score.c:2737 elf32-score7.c:2545 elf32-spu.c:5049
+#: elf-m10200.c:442 elf32-cr16.c:1437 elf32-crx.c:930 elf32-d10v.c:518
+#: elf32-h8300.c:531 elf32-lm32.c:1077 elf32-m32r.c:2845 elf32-m68hc1x.c:1278
+#: elf32-microblaze.c:1685 elf32-nds32.c:6100 elf32-score.c:2732
+#: elf32-score7.c:2543 elf32-spu.c:5089
msgid "internal error: dangerous error"
msgstr "internt fel: farligt fel"
-#: elf-m10200.c:442 elf-m10300.c:2184 elf32-avr.c:1268 elf32-bfin.c:3232
-#: elf32-cr16.c:1496 elf32-cr16c.c:792 elf32-cris.c:2028 elf32-crx.c:934
-#: elf32-d10v.c:525 elf32-epiphany.c:572 elf32-fr30.c:601 elf32-frv.c:4051
-#: elf32-h8300.c:537 elf32-i860.c:1224 elf32-ip2k.c:1483 elf32-iq2000.c:700
-#: elf32-lm32.c:1172 elf32-m32c.c:565 elf32-m32r.c:3078 elf32-m68hc1x.c:1295
-#: elf32-mep.c:547 elf32-metag.c:2004 elf32-microblaze.c:1572
-#: elf32-moxie.c:294 elf32-msp430.c:1329 elf32-mt.c:403 elf32-nds32.c:4922
-#: elf32-openrisc.c:416 elf32-score.c:2746 elf32-score7.c:2549
-#: elf32-spu.c:5053 elf32-tilepro.c:3678 elf32-v850.c:2305
-#: elf32-xstormy16.c:948 elf64-mmix.c:1550 elfxx-tilegx.c:4063
+#: elf-m10200.c:446 elf-m10300.c:2167 elf32-bfin.c:3144 elf32-cr16.c:1441
+#: elf32-cris.c:2045 elf32-crx.c:934 elf32-d10v.c:522 elf32-epiphany.c:578
+#: elf32-fr30.c:606 elf32-frv.c:4060 elf32-ft32.c:504 elf32-h8300.c:535
+#: elf32-ip2k.c:1493 elf32-iq2000.c:703 elf32-lm32.c:1081 elf32-m32c.c:636
+#: elf32-m32r.c:2849 elf32-m68hc1x.c:1282 elf32-mep.c:534 elf32-metag.c:1995
+#: elf32-microblaze.c:1689 elf32-moxie.c:300 elf32-msp430.c:1518 elf32-mt.c:410
+#: elf32-nds32.c:6104 elf32-or1k.c:1907 elf32-score.c:2741 elf32-score7.c:2547
+#: elf32-spu.c:5093 elf32-tilepro.c:3381 elf32-v850.c:2321 elf32-visium.c:692
+#: elf32-xstormy16.c:942 elf64-bpf.c:352 elf64-mmix.c:1549 elfxx-tilegx.c:3754
msgid "internal error: unknown error"
msgstr "internt fel: okänt fel"
-#: elf-m10300.c:1021
+#: elf-m10300.c:1030
#, c-format
-msgid "%s: Unsupported transition from %s to %s"
-msgstr "%s:Övergång från %s till %s stöds ej"
+msgid "%pB: unsupported transition from %s to %s"
+msgstr "%pB: övergång utan stöd från %s till %s"
-#: elf-m10300.c:1213
-msgid "%B: %s' accessed both as normal and thread local symbol"
-msgstr "%B: %s' hade åtkomst både som normal och trådlokal symbol"
+#: elf-m10300.c:1197
+#, c-format
+msgid "%pB: %s' accessed both as normal and thread local symbol"
+msgstr "%pB: %s' åtkomlig både som normal och trådlokal symbol"
-#: elf-m10300.c:2108 elf32-arm.c:10632 elf32-i386.c:4363 elf32-m32r.c:2558
-#: elf32-m68k.c:4120 elf32-s390.c:3303 elf32-sh.c:4109 elf32-tilepro.c:3569
-#: elf32-xtensa.c:3063 elf64-s390.c:3229 elf64-sh64.c:1640 elf64-x86-64.c:4463
-#: elfxx-sparc.c:3904 elfxx-tilegx.c:3974
-#: /src/binutils-gdb/bfd/elfnn-aarch64.c:4450
-msgid "%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"
-msgstr "%B(%A+0x%lx): olöslig omplacering av %s mot symbol â€%sâ€"
+#: elf-m10300.c:2093 elf32-arm.c:13472 elf32-i386.c:3503 elf32-m32r.c:2331
+#: elf32-m68k.c:3929 elf32-s390.c:3072 elf32-sh.c:3672 elf32-tilepro.c:3272
+#: elf32-xtensa.c:3020 elf64-s390.c:3129 elf64-x86-64.c:4564 elfxx-sparc.c:2913
+#: elfxx-sparc.c:3810 elfxx-tilegx.c:3665 elfnn-aarch64.c:5725
+#: elfnn-aarch64.c:7343 elfnn-kvx.c:2772
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): unresolvable %s relocation against symbol `%s'"
+msgstr "%pB(%pA+%#<PRIx64>): olöslig %s omplacering mot symbolen `%s'"
-#: elf-m10300.c:2173
+#: elf-m10300.c:2155
msgid "error: inappropriate relocation type for shared library (did you forget -fpic?)"
msgstr "fel: olämplig omplaceringstyp för delat bibliotek (glömde du -fpic?)"
-#: elf-m10300.c:2176
-msgid "%B: taking the address of protected function '%s' cannot be done when making a shared library"
-msgstr "%B: ta adressen för den skyddade funktionen â€%s†kan inte göras vid skapandet av ett delat bibliotek"
+#: elf-m10300.c:2159
+#, c-format
+msgid "%pB: taking the address of protected function '%s' cannot be done when making a shared library"
+msgstr "%pB: att ta adressen till den skyddade funktionen '%s' kan inte göras när man skapar ett delat bibliotek"
-#: elf-m10300.c:2179
+#: elf-m10300.c:2162
msgid "internal error: suspicious relocation type used in shared library"
msgstr "internt fel: suspekt omlokaliseringstyp för delade bibliotek"
-#: elf.c:343
-msgid "%B: invalid string offset %u >= %lu for section `%s'"
-msgstr "%B: ogiltig strängförskjutning %u >= %lu för sektion â€%sâ€"
+#: elf-m10300.c:2650 elf32-avr.c:2483 elf32-frv.c:5621 elf64-ia64-vms.c:365
+#: elfxx-sparc.c:2680 reloc.c:8370 reloc16.c:155 elfnn-ia64.c:365
+msgid "%P%F: --relax and -r may not be used together\n"
+msgstr "%P%F: --relax och -r kan inte användas tillsammans\n"
+
+#: elf-properties.c:65
+#, c-format
+msgid "%pB: out of memory in _bfd_elf_get_property"
+msgstr "%pB: slut på minne i _bfd_elf_get_property"
+
+#: elf-properties.c:91
+#, c-format
+msgid "warning: %pB: corrupt GNU_PROPERTY_TYPE (%ld) size: %#lx"
+msgstr "varning: %pB: skadad GNU_PROPERTY_TYPE (%ld) storlek: %#lx"
+
+#: elf-properties.c:112
+#, c-format
+msgid "warning: %pB: corrupt GNU_PROPERTY_TYPE (%ld) type (0x%x) datasz: 0x%x"
+msgstr "varning: %pB: skadad GNU_PROPERTY_TYPE (%ld) typ (0x%x) datasz: 0x%x"
+
+#: elf-properties.c:151
+#, c-format
+msgid "warning: %pB: corrupt stack size: 0x%x"
+msgstr "varning: %pB: korrupt stackstorlek: 0x%x"
+
+#: elf-properties.c:169
+#, c-format
+msgid "warning: %pB: corrupt no copy on protected size: 0x%x"
+msgstr "varning: %pB: korrupt ingen kopia på skyddad storlek: 0x%x"
+
+#: elf-properties.c:184
+#, c-format
+msgid "warning: %pB: corrupt memory sealing size: 0x%x"
+msgstr "varning: %pB: skadat minne som förseglar storlek: 0x%x"
+
+#: elf-properties.c:203
+#, c-format
+msgid "error: %pB: <corrupt property (0x%x) size: 0x%x>"
+msgstr "fel: %pB: <korrupt egenskap (0x%x) storlek: 0x%x>"
+
+#: elf-properties.c:228
+#, c-format
+msgid "warning: %pB: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x"
+msgstr "varning: %pB: GNU_PROPERTY_TYPE (%ld)-typ som inte stöds: 0x%x"
+
+#: elf-properties.c:415
+msgid "Removed property %W to merge %pB (0x%v) and %pB (0x%v)\n"
+msgstr "Tog bort egenskapen %W för att slå samman %pB (0x%v) och %pB (0x%v)\n"
+
+#: elf-properties.c:421
+msgid "Removed property %W to merge %pB (0x%v) and %pB (not found)\n"
+msgstr "Tog bort egenskapen %W för att slå samman %pB (0x%v) och %pB (hittades inte)\n"
+
+#: elf-properties.c:430 elf-properties.c:508
+msgid "Removed property %W to merge %pB and %pB\n"
+msgstr "Borttagen egenskap %W för att slå samman %pB och %pB\n"
+
+#: elf-properties.c:434
+msgid "Removed property %W to merge %pB and %pB (not found)\n"
+msgstr "Borttagen egenskap %W för att slå samman %pB och %pB (hittades inte)\n"
+
+#: elf-properties.c:451
+msgid "Updated property %W (0x%v) to merge %pB (0x%v) and %pB (0x%v)\n"
+msgstr "Uppdaterade egenskapen %W (0x%v) för att slå samman %pB (0x%v) och %pB (0x%v)\n"
+
+#: elf-properties.c:460
+msgid "Updated property %W (%v) to merge %pB (0x%v) and %pB (not found)\n"
+msgstr "Uppdaterade egenskapen %W (%v) för att slå samman %pB (0x%v) och %pB (hittades inte)\n"
+
+#: elf-properties.c:502
+msgid "Removed property %W to merge %pB (not found) and %pB (0x%v)\n"
+msgstr "Tog bort egenskapen %W för att slå samman %pB (hittades inte) och %pB (0x%v)\n"
-#: elf.c:455
-msgid "%B symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
-msgstr "%B symbol nummer %lu refererar icke existerande SHT_SYMTAB_SHNDX sektion"
+#: elf-properties.c:640 elfxx-aarch64.c:748 elfxx-x86.c:4348
+msgid "%F%P: failed to create GNU property section\n"
+msgstr "%F%P: misslyckades med att skapa GNU-egenskapsavsnitt\n"
-#: elf.c:611
-msgid "%B: Corrupt size field in group section header: 0x%lx"
-msgstr "%B: Korrupt storleksfält i gruppsektionshuvudet: 0x%lx"
+#: elf-properties.c:644 elfxx-aarch64.c:752 elfxx-x86.c:4353
+#, c-format
+msgid "%F%pA: failed to align section\n"
+msgstr "%F%pA: misslyckades med att justera avsnittet\n"
+
+#. Merge .note.gnu.property sections.
+#: elf-properties.c:749 elf-properties.c:751
+msgid "\n"
+msgstr "\n"
-#: elf.c:647
-msgid "%B: invalid SHT_GROUP entry"
-msgstr "%B: ogiltig SHT_GROUP post"
+#: elf-properties.c:750
+msgid "Merging program properties\n"
+msgstr "Sammanslagning av programegenskaper\n"
-#: elf.c:717
-msgid "%B: no group info for section %A"
-msgstr "%B: ingen gruppinformation för sektion %A"
+#: elf-sframe.c:239
+#, c-format
+msgid "error in %pB(%pA); no .sframe will be created"
+msgstr "fel i %pB(%pA); ingen .sframe kommer att skapas"
-#: elf.c:746 elf.c:3144 elflink.c:10290
-msgid "%B: warning: sh_link not set for section `%A'"
-msgstr "%B: varning: sh_link inte satt för sektion â€%Aâ€"
+#: elf-sframe.c:399
+msgid "input SFrame sections with different abi prevent .sframe generation"
+msgstr "inmatning SFrame sektioner med olika abi förhindra .sframe generation"
-#: elf.c:765
-msgid "%B: sh_link [%d] in section `%A' is incorrect"
-msgstr "%B: sh_link [%d] i sektion â€%A†är inkorrekt"
+#: elf-sframe.c:410
+msgid "input SFrame sections with different format versions prevent .sframe generation"
+msgstr "inmatning av SFrame-sektioner med olika formatversioner förhindrar .sframe-generering"
-#: elf.c:800
-msgid "%B: unknown [%d] section `%s' in group [%s]"
-msgstr "%B: okänd [%d] sektion â€%s†i grupp [%s]"
+#: elf.c:299
+#, c-format
+msgid "%pB: string table [%u] is corrupt"
+msgstr "%pB: strängtabellen [%u] är korrupt"
-#: elf.c:1174
+#. PR 17512: file: f057ec89.
+#: elf.c:328
+#, c-format
+msgid "%pB: attempt to load strings from a non-string section (number %d)"
+msgstr "%pB: försök att ladda strängar från ett avsnitt som inte är strängar (nummer %d)"
+
+#: elf.c:353
+#, c-format
+msgid "%pB: invalid string offset %u >= %<PRIu64> for section `%s'"
+msgstr "%pB: ogiltig strängoffset %u >= %<PRIu64> för avsnitt `%s'"
+
+#: elf.c:511 elf32-arm.c:17773 elfnn-aarch64.c:8343 elfnn-loongarch.c:6132
+#: elfnn-riscv.c:3688
+#, c-format
+msgid "%pB symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
+msgstr "%pB symbolnummer %lu refererar till icke-existerande SHT_SYMTAB_SHNDX-avsnitt"
+
+#: elf.c:614
+#, c-format
+msgid "%pB: could not read contents of group [%u]"
+msgstr "%pB: kunde inte läsa innehållet i gruppen [%u]"
+
+#: elf.c:645
+#, c-format
+msgid "%pB: invalid entry (%#x) in group [%u]"
+msgstr "%pB: ogiltig post (%#x) i grupp [%u]"
+
+#: elf.c:664
+#, c-format
+msgid "%pB: unexpected type (%#x) section `%s' in group [%u]"
+msgstr "%pB: oväntad typ (%#x) avsnitt `%s' i grupp [%u]"
+
+#: elf.c:740
+#, c-format
+msgid "%pB: sh_link [%d] in section `%pA' is incorrect"
+msgstr "%pB: sh_link [%d] i avsnitt `%pA' är felaktig"
+
+#: elf.c:769
+#, c-format
+msgid "%pB: section group entry number %u is corrupt"
+msgstr "%pB: sektionsgruppens postnummer %u är korrupt"
+
+#: elf.c:1051
+#, c-format
+msgid "%pB: section %s is compressed with zstd, but BFD is not built with zstd support"
+msgstr "%pB: sektion %s komprimeras med zstd, men BFD är inte byggd med zstd-stöd"
+
+#: elf.c:1237
+#, c-format
+msgid "%pB: invalid sh_link field (%d) in section number %d"
+msgstr "%pB: ogiltigt sh_link-fält (%d) i sektionsnummer %d"
+
+#: elf.c:1253
+#, c-format
+msgid "%pB: failed to find link section for section %d"
+msgstr "%pB: hittade inte länkavsnitt för avsnitt %d"
+
+#: elf.c:1280
+#, c-format
+msgid "%pB: failed to find info section for section %d"
+msgstr "%pB: hittade inte informationsavsnittet för avsnittet %d"
+
+#: elf.c:1457
#, c-format
msgid ""
"\n"
@@ -804,7 +1173,7 @@ msgstr ""
"\n"
"Programhuvud:\n"
-#: elf.c:1216
+#: elf.c:1499
#, c-format
msgid ""
"\n"
@@ -813,7 +1182,7 @@ msgstr ""
"\n"
"Dynamisk sektion:\n"
-#: elf.c:1352
+#: elf.c:1638
#, c-format
msgid ""
"\n"
@@ -822,7 +1191,7 @@ msgstr ""
"\n"
"Versionsdefinitioner:\n"
-#: elf.c:1377
+#: elf.c:1663
#, c-format
msgid ""
"\n"
@@ -831,1797 +1200,2594 @@ msgstr ""
"\n"
"Versionsreferenser:\n"
-#: elf.c:1382
+#: elf.c:1668
#, c-format
msgid " required from %s:\n"
msgstr " krävs från %s:\n"
-#: elf.c:1807
-msgid "%B: invalid link %lu for reloc section %s (index %u)"
-msgstr "%B: ogiltig länk %lu för omlokaliseringssektion %s (index %u)"
+#: elf.c:1917
+#, c-format
+msgid "%pB: DT_STRTAB table is corrupt"
+msgstr "%pB: DT_STRTAB-tabellen är korrupt"
-#: elf.c:1977
-msgid "%B: don't know how to handle allocated, application specific section `%s' [0x%8x]"
-msgstr "%B: vet ej hur att hantera allokerad, programspecifik sektion â€%s†[0x%8x]"
+#: elf.c:2426
+#, c-format
+msgid "%pB: warning: loop in section dependencies detected"
+msgstr "%pB: varning: loop i sektionsberoenden upptäckt"
-#: elf.c:1989
-msgid "%B: don't know how to handle processor specific section `%s' [0x%8x]"
-msgstr "%B: vet ej hur att hantera processorspecifik sektion â€%s†[0x%8x]"
+#: elf.c:2533
+#, c-format
+msgid "%pB: warning: multiple symbol tables detected - ignoring the table in section %u"
+msgstr "%pB: varning: flera symboltabeller upptäcks - ignorerar tabellen i avsnitt %u"
-#: elf.c:2000
-msgid "%B: don't know how to handle OS specific section `%s' [0x%8x]"
-msgstr "%B: vet ej hur att hantera OS-specifik sektion â€%s†[0x%8x]"
+#: elf.c:2618
+#, c-format
+msgid "%pB: warning: multiple dynamic symbol tables detected - ignoring the table in section %u"
+msgstr "%pB: varning: flera dynamiska symboltabeller upptäcks - ignorerar tabellen i avsnitt %u"
-#: elf.c:2010
-msgid "%B: don't know how to handle section `%s' [0x%8x]"
-msgstr "%B: vet ej hur att hantera sektion â€%s†[0x%8x]"
+#: elf.c:2737
+#, c-format
+msgid "%pB: invalid link %u for reloc section %s (index %u)"
+msgstr "%pB: ogiltig länk %u för reloc-sektion %s (index %u)"
-#: elf.c:2648
+#: elf.c:2794
#, c-format
-msgid "warning: section `%A' type changed to PROGBITS"
-msgstr "varning: sektion â€%A†typ ändrades till PROGBITS"
+msgid "%pB: warning: secondary relocation section '%s' for section %pA found - ignoring"
+msgstr "%pB: varning: sekundär flyttningssektion \"%s\" för sektion %pA hittades - ignoreras"
-#: elf.c:3015
-msgid "%B: too many sections: %u"
-msgstr "%B: för många sektioner: %u"
+#: elf.c:2879 elf.c:2893 elf.c:2904 elf.c:2917
+#, c-format
+msgid "%pB: unknown type [%#x] section `%s'"
+msgstr "%pB: okänd typ [%#x] avsnitt `%s'"
-#: elf.c:3101
-msgid "%B: sh_link of section `%A' points to discarded section `%A' of `%B'"
-msgstr "%B: sh_link frÃ¥n sektion â€%A†pekar pÃ¥ kastad sektion â€%A†av â€%Bâ€"
+#: elf.c:3586
+#, c-format
+msgid "%pB: error: alignment power %d of section `%pA' is too big"
+msgstr "%pB: fel: justeringseffekten %d i avsnitt `%pA' är för stor"
-#: elf.c:3124
-msgid "%B: sh_link of section `%A' points to removed section `%A' of `%B'"
-msgstr "%B: sh_link frÃ¥n sektion â€%A†pekar pÃ¥ borttagen sektion â€%A†av â€%Bâ€"
+#: elf.c:3621
+#, c-format
+msgid "warning: section `%pA' type changed to PROGBITS"
+msgstr "warning: section `%pA' type changed to PROGBITS"
-#: elf.c:4126
-msgid "%B: TLS sections are not adjacent:"
-msgstr "%B: TLS-sektion är inte närliggande:"
+#: elf.c:4130
+#, c-format
+msgid "%pB: too many sections: %u"
+msgstr "%pB: för många sektioner: %u"
-#: elf.c:4133
+#: elf.c:4216
#, c-format
-msgid "\t TLS: %A"
-msgstr "\t TLS: %A"
+msgid "%pB: sh_link of section `%pA' points to discarded section `%pA' of `%pB'"
+msgstr "%pB: sh_link i avsnitt `%pA' pekar på kasserat avsnitt `%pA' i `%pB'"
-#: elf.c:4137
+#: elf.c:4234
#, c-format
-msgid "\tnon-TLS: %A"
-msgstr "\tej-TLS: %A"
+msgid "%pB: sh_link of section `%pA' points to removed section `%pA' of `%pB'"
+msgstr "%pB: sh_link i avsnitt `%pA' pekar på borttaget avsnitt `%pA' i `%pB'"
-#: elf.c:4596
-msgid "%B: The first section in the PT_DYNAMIC segment is not the .dynamic section"
-msgstr "%B: Den första sektionen i PT_DYNAMIC segment är inte .dynamic-sektionen"
+#: elf.c:4830
+#, c-format
+msgid "%pB: GNU_MBIND section `%pA' has invalid sh_info field: %d"
+msgstr "%pB: GNU_MBIND-avsnittet `%pA' har ett ogiltigt sh_info-fält: %d"
-#: elf.c:4621
-msgid "%B: Not enough room for program headers, try linking with -N"
-msgstr "%B: Inte tillräckligt med utrymme för programhuvud, försök länka med -N"
+#: elf.c:5013
+msgid "%F%P: failed to size relative relocations\n"
+msgstr "%F%P: misslyckades med att dimensionera relativa omplaceringar\n"
-#: elf.c:4707
-msgid "%B: section %A lma %#lx adjusted to %#lx"
-msgstr "%B: sektion %A lma %#lx justerad till %#lx"
+#: elf.c:5440
+#, c-format
+msgid "%pB: TLS sections are not adjacent:"
+msgstr "%pB: TLS-avsnitten är inte angränsande:"
-#: elf.c:4843
-msgid "%B: section `%A' can't be allocated in segment %d"
-msgstr "%B: sektion â€%A†kan inte allokeras i segment %d"
+#: elf.c:5447
+#, c-format
+msgid "\t TLS: %pA"
+msgstr "\t TLS: %pA"
-#: elf.c:4892
-msgid "%B: warning: allocated section `%s' not in segment"
-msgstr "%B: varning: allokerat segment â€%s†är inte i sektionen"
+#: elf.c:5451
+#, c-format
+msgid "\tnon-TLS: %pA"
+msgstr "\ticke-TLS: %pA"
-#: elf.c:5473
-msgid "%B: symbol `%s' required but not present"
-msgstr "%B: symbol â€%s†krävs men är inte tillgänglig"
+#: elf.c:6075
+#, c-format
+msgid "%pB: The first section in the PT_DYNAMIC segment is not the .dynamic section"
+msgstr "%pB: Den första sektionen i segmentet PT_DYNAMIC är inte den dynamiska sektionen"
-#: elf.c:5811
-msgid "%B: warning: Empty loadable segment detected, is this intentional ?\n"
-msgstr "%B: varning: Tomt laddningsbart segment detekterat, är detta avsiktligt?\n"
+#: elf.c:6101
+#, c-format
+msgid "%pB: not enough room for program headers, try linking with -N"
+msgstr "%pB: inte tillräckligt med utrymme för programhuvuden, försök länka med -N"
-#: elf.c:6867
+#: elf.c:6222
#, c-format
-msgid "Unable to find equivalent output section for symbol '%s' from section '%s'"
-msgstr "Kan inte hitta ekvivalent utdatasektion för symbolen â€%s†frÃ¥n sektionen â€%sâ€"
+msgid "%pB: section %pA lma %#<PRIx64> adjusted to %#<PRIx64>"
+msgstr "%pB: avsnitt %pA lma %#<PRIx64> justerat till %#<PRIx64>"
-#: elf.c:7915
-msgid "%B: unsupported relocation type %s"
-msgstr "%B: omlokaliseringstyp %s saknar stöd"
+#. The fix for this error is usually to edit the linker script being
+#. used and set up the program headers manually. Either that or
+#. leave room for the headers at the start of the SECTIONS.
+#: elf.c:6362
+#, c-format
+msgid "%pB: error: PHDR segment not covered by LOAD segment"
+msgstr "%pB: fel: PHDR-segmentet täcks inte av LOAD-segmentet"
-#: elf32-arm.c:3722 elf32-arm.c:7051
-msgid ""
-"%B(%s): warning: interworking not enabled.\n"
-" first occurrence: %B: Thumb call to ARM"
-msgstr ""
-"%B(%s): varning: samverkan inte aktiverat.\n"
-" första förekomst: %B: Thumb-anrop till ARM"
+#: elf.c:6402
+#, c-format
+msgid "%pB: section `%pA' can't be allocated in segment %u"
+msgstr "%pB: sektion `%pA' kan inte allokeras i segment %u"
-#: elf32-arm.c:3769
-msgid ""
-"%B(%s): warning: interworking not enabled.\n"
-" first occurrence: %B: ARM call to Thumb"
-msgstr ""
-"%B(%s): varning: samverkan inte aktiverat.\n"
-" första förekomst: %B: ARM-anrop till Thumb"
+#: elf.c:6543
+#, c-format
+msgid "%pB: warning: allocated section `%s' not in segment"
+msgstr "%pB: varning: allokerad sektion `%s' finns inte i segmentet"
+
+#: elf.c:6678
+#, c-format
+msgid "%pB: warning: unable to allocate any sections to PT_GNU_RELRO segment"
+msgstr "%pB: varning: det går inte att tilldela några sektioner till PT_GNU_RELRO-segmentet"
-#: elf32-arm.c:3988 elf32-arm.c:5433
-#: /src/binutils-gdb/bfd/elfnn-aarch64.c:2324
+#: elf.c:6709
#, c-format
-msgid "%s: cannot create stub entry %s"
-msgstr "%s: kan inte skapa stubbstarten %s"
+msgid "%pB: error: non-load segment %d includes file header and/or program header"
+msgstr "%pB: fel: segment %d som inte är laddat innehåller filhuvud och/eller programhuvud"
-#: elf32-arm.c:5549
+#: elf.c:6862
#, c-format
-msgid "unable to find THUMB glue '%s' for '%s'"
-msgstr "kunde inte hitta THUMB-klister â€%s†för â€%sâ€"
+msgid "error: %pB has a TLS segment with execute permission"
+msgstr "fel: %pB har ett TLS-segment med exekveringsbehörighet"
-#: elf32-arm.c:5585
+#: elf.c:6868
#, c-format
-msgid "unable to find ARM glue '%s' for '%s'"
-msgstr "kunde inte hitta ARM-klister â€%s†för â€%sâ€"
+msgid "warning: %pB has a TLS segment with execute permission"
+msgstr "varning: %pB har ett TLS-segment med exekveringsbehörighet"
-#: elf32-arm.c:6123
-msgid "%B: BE8 images only valid in big-endian mode."
-msgstr "%B: BE8-avbilder bara giltiga i läge med rak byteordning."
+#: elf.c:6883
+#, c-format
+msgid "error: %pB has a LOAD segment with RWX permissions"
+msgstr "fel: %pB har ett LOAD-segment med RWX-behörighet"
+
+#: elf.c:6889
+#, c-format
+msgid "warning: %pB has a LOAD segment with RWX permissions"
+msgstr "varning: %pB har ett LOAD-segment med RWX-behörighet"
+
+#: elf.c:7284
+#, c-format
+msgid "%pB: symbol `%s' required but not present"
+msgstr "%pB: symbolen `%s' krävs men finns inte"
+
+#: elf.c:7661
+#, c-format
+msgid "%pB: warning: empty loadable segment detected at vaddr=%#<PRIx64>, is this intentional?"
+msgstr "%pB: varning: tomt laddningsbart segment upptäcktes vid vaddr=%#<PRIx64>, är detta avsiktligt?"
+
+#: elf.c:8334
+#, c-format
+msgid "%pB: warning: segment alignment of %#<PRIx64> is too large"
+msgstr "%pB: varning: segmentinriktningen för %#<PRIx64> är för stor"
+
+#: elf.c:8837
+#, c-format
+msgid "%pB: Unable to handle section index %x in ELF symbol. Using ABS instead."
+msgstr "%pB: Det går inte att hantera sektionsindex %x i ELF-symbolen. Använder ABS istället."
+
+#: elf.c:8867
+#, c-format
+msgid "unable to find equivalent output section for symbol '%s' from section '%s'"
+msgstr "kan inte hitta motsvarande utmatningsavsnitt för symbolen '%s' från avsnittet '%s'"
+
+#: elf.c:9300
+#, c-format
+msgid "%pB: .gnu.version_r invalid entry"
+msgstr "%pB: .gnu.version_r ogiltig post"
+
+#: elf.c:9478
+#, c-format
+msgid "%pB: .gnu.version_d invalid entry"
+msgstr "%pB: .gnu.version_d ogiltig post"
+
+#: elf.c:9981
+#, c-format
+msgid "%pB:%pA: error: attempting to write over the end of the section"
+msgstr "%pB:%pA: fel: försök att skriva över slutet av avsnittet"
+
+#: elf.c:9993
+#, c-format
+msgid "%pB:%pA: error: attempting to write section into an empty buffer"
+msgstr "%pB:%pA: fel: försök att skriva avsnitt till en tom buffert"
+
+#: elf.c:10108 elf32-mcore.c:100 elf32-mcore.c:455 elf32-ppc.c:7675
+#: elf32-ppc.c:8863 elf64-ppc.c:16860
+#, c-format
+msgid "%pB: %s unsupported"
+msgstr "%pB: %s stöds inte"
+
+#: elf.c:10923
+#, c-format
+msgid "%pB: warning: win32pstatus %s of size %lu bytes is too small"
+msgstr "%pB: varning: win32pstatus %s med storleken %lu bytes är för liten"
+
+#: elf.c:11002
+#, c-format
+msgid "%pB: win32pstatus NOTE_INFO_MODULE of size %lu is too small to contain a name of size %u"
+msgstr "%pB: win32pstatus NOTE_INFO_MODULE av storleken %lu är för liten för att innehålla ett namn av storleken %u"
+
+#: elf.c:13640
+msgid "GNU_MBIND section is supported only by GNU and FreeBSD targets"
+msgstr "GNU_MBIND-avsnittet stöds endast av GNU- och FreeBSD-mål"
+
+#: elf.c:13643
+msgid "symbol type STT_GNU_IFUNC is supported only by GNU and FreeBSD targets"
+msgstr "symboltypen STT_GNU_IFUNC stöds endast av GNU- och FreeBSD-mål"
+
+#: elf.c:13646
+msgid "symbol binding STB_GNU_UNIQUE is supported only by GNU and FreeBSD targets"
+msgstr "symbolbindning STB_GNU_UNIQUE stöds endast av GNU- och FreeBSD-mål"
+
+#: elf.c:13649
+msgid "GNU_RETAIN section is supported only by GNU and FreeBSD targets"
+msgstr "GNU_RETAIN-avsnittet stöds endast av GNU- och FreeBSD-mål"
+
+#: elf.c:13866
+#, c-format
+msgid "%pB(%pA): relocation %zu has invalid symbol index %lu"
+msgstr "%pB(%pA): relokalisering %zu har ogiltigt symbolindex %lu"
+
+#: elf.c:13941
+#, c-format
+msgid "%pB(%pA): link section cannot be set because the output file does not have a symbol table"
+msgstr "%pB(%pA): länkavsnittet kan inte ställas in eftersom utdatafilen inte har någon symboltabell"
+
+#: elf.c:13955
+#, c-format
+msgid "%pB(%pA): info section index is invalid"
+msgstr "%pB(%pA): index för informationsavsnitt är ogiltigt"
+
+#: elf.c:13969
+#, c-format
+msgid "%pB(%pA): info section index cannot be set because the section is not in the output"
+msgstr "%pB(%pA): index för informationsavsnitt kan inte ställas in eftersom avsnittet inte finns med i utdata"
+
+#: elf.c:14045
+#, c-format
+msgid "%pB(%pA): error: secondary reloc section processed twice"
+msgstr "%pB(%pA): fel: sekundär relokaliseringssektion behandlad två gånger"
+
+#: elf.c:14057
+#, c-format
+msgid "%pB(%pA): error: secondary reloc section has zero sized entries"
+msgstr "%pB(%pA): fel: sekundär reloc-sektion har nollstora poster"
+
+#: elf.c:14069
+#, c-format
+msgid "%pB(%pA): error: secondary reloc section has non-standard sized entries"
+msgstr "%pB(%pA): fel: sekundär reloc-sektion har poster med icke-standardiserade storlekar"
+
+#: elf.c:14083
+#, c-format
+msgid "%pB(%pA): error: secondary reloc section is empty!"
+msgstr "%pB(%pA): fel: sekundär reloc-sektion är tom!"
+
+#: elf.c:14106
+#, c-format
+msgid "%pB(%pA): error: internal relocs missing for secondary reloc section"
+msgstr "%pB(%pA): fel: interna relokaliseringar saknas för sekundär relokaliseringssektion"
+
+#: elf.c:14126
+#, c-format
+msgid "%pB(%pA): error: reloc table entry %zu is empty"
+msgstr "%pB(%pA): fel: posten %zu i reloc-tabellen är tom"
+
+#: elf.c:14151
+#, c-format
+msgid "%pB(%pA): error: secondary reloc %zu references a missing symbol"
+msgstr "%pB(%pA): fel: sekundär reloc %zu refererar till en saknad symbol"
+
+#: elf.c:14169
+#, c-format
+msgid "%pB(%pA): error: secondary reloc %zu references a deleted symbol"
+msgstr "%pB(%pA): fel: sekundär reloc %zu refererar till en borttagen symbol"
+
+#: elf.c:14183
+#, c-format
+msgid "%pB(%pA): error: secondary reloc %zu is of an unknown type"
+msgstr "%pB(%pA): fel: sekundär reloc %zu är av okänd typ"
+
+#. Ignore init flag - it may not be set, despite the flags field
+#. containing valid data.
+#. Ignore init flag - it may not be set, despite the flags field
+#. containing valid data.
+#: elf32-arc.c:454 elf32-arm.c:15194 elf32-frv.c:6612 elf32-iq2000.c:868
+#: elf32-m32c.c:914 elf32-mt.c:560 elf32-rl78.c:1275 elf32-rx.c:3218
+#: elf32-visium.c:844 elf64-ppc.c:5531 elfnn-aarch64.c:7573
+#, c-format
+msgid "private flags = 0x%lx:"
+msgstr "privata flaggor = 0x%lx:"
+
+#: elf32-arc.c:641
+#, c-format
+msgid "warning: %pB: conflicting platform configuration %s with %s"
+msgstr "varning: %pB: plattformskonfigurationen %s står i konflikt med %s"
+
+#: elf32-arc.c:660
+#, c-format
+msgid "error: %pB: unable to merge CPU base attributes %s with %s"
+msgstr "fel: %pB: det går inte att slå samman CPU-basattribut %s med %s"
+
+#: elf32-arc.c:697
+#, c-format
+msgid "error: %pB: unable to merge ISA extension attributes %s"
+msgstr "fel: %pB: det går inte att sammanfoga ISA-tilläggsattribut %s"
+
+#: elf32-arc.c:721
+#, c-format
+msgid "error: %pB: conflicting ISA extension attributes %s with %s"
+msgstr "fel: %pB: ISA-tilläggsattributen %s och %s står i konflikt med varandra"
+
+#: elf32-arc.c:761
+#, c-format
+msgid "error: %pB: cannot mix rf16 with full register set %pB"
+msgstr "fel: %pB: kan inte blanda rf16 med full registeruppsättning %pB"
+
+#: elf32-arc.c:789
+#, c-format
+msgid "error: %pB: conflicting attributes %s: %s with %s"
+msgstr "fel: %pB: motstridiga attribut %s: %s med %s"
+
+#: elf32-arc.c:816
+#, c-format
+msgid "error: %pB: conflicting attributes %s"
+msgstr "fel: %pB: motstridiga attribut %s"
+
+#: elf32-arc.c:921
+#, c-format
+msgid "error: attempting to link %pB with a binary %pB of different architecture"
+msgstr "fel: Försöker länka %pB med en binär %pB med annan arkitektur"
+
+#: elf32-arc.c:937 elf32-iq2000.c:844 elf32-m32c.c:889 elf32-m68hc1x.c:1389
+#: elf32-ppc.c:3854 elf64-sparc.c:737 elfxx-mips.c:15680
+#, c-format
+msgid "%pB: uses different e_flags (%#x) fields than previous modules (%#x)"
+msgstr "%pB: använder andra e_flags-fält (%#x) än tidigare moduler (%#x)"
+
+#: elf32-arc.c:1026
+msgid "error: the ARC4 architecture is no longer supported"
+msgstr "fel: ARC4-arkitekturen stöds inte längre"
+
+#: elf32-arc.c:1032
+msgid "warning: unset or old architecture flags; use default machine"
+msgstr "varning: ej inställda eller gamla arkitekturflaggor; använd standardmaskin"
+
+#: elf32-arc.c:1158
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): CMEM relocation to `%s' is invalid, 16 MSB should be %#x (value is %#<PRIx64>)"
+msgstr "%pB(%pA+%#<PRIx64>): CMEM-relokering till `%s' är ogiltig, 16 MSB ska vara %#x (värdet är %#<PRIx64>)"
+
+#: elf32-arc.c:1169
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): CMEM relocation to `%s+%#<PRIx64>' is invalid, 16 MSB should be %#x (value is %#<PRIx64>)"
+msgstr "%pB(%pA+%#<PRIx64>): CMEM-relokering till `%s+%#<PRIx64>' är ogiltig, 16 MSB ska vara %#x (värdet är %#<PRIx64>)"
+
+#: elf32-arc.c:1897
+msgid "GOT and PLT relocations cannot be fixed with a non dynamic linker"
+msgstr "GOT- och PLT-relokaliseringar kan inte åtgärdas med en icke-dynamisk länkare"
+
+#: elf32-arc.c:1921 elf32-rx.c:1486
+#, c-format
+msgid "%pB(%pA): warning: unaligned access to symbol '%s' in the small data area"
+msgstr "%pB(%pA): varning: ojusterad åtkomst till symbolen '%s' i det lilla dataområdet"
+
+#: elf32-arc.c:1926 elf32-rx.c:1491
+#, c-format
+msgid "%pB(%pA): internal error: out of range error"
+msgstr "%pB(%pA): internt fel: fel utanför intervallet"
+
+#: elf32-arc.c:1931 elf32-rx.c:1496
+#, c-format
+msgid "%pB(%pA): internal error: unsupported relocation error"
+msgstr "%pB(%pA): internt fel: fel på omlokalisering som inte stöds"
+
+#: elf32-arc.c:1936 elf32-rx.c:1501
+#, c-format
+msgid "%pB(%pA): internal error: dangerous relocation"
+msgstr "%pB(%pA): internt fel: farlig omlokalisering"
+
+#: elf32-arc.c:1941 elf32-rx.c:1506
+#, c-format
+msgid "%pB(%pA): internal error: unknown error"
+msgstr "%pB(%pA): internt fel: okänt fel"
+
+#: elf32-arc.c:2035 elf32-arc.c:2103 elf32-arm.c:15637 elf32-metag.c:2250
+#: elf32-nds32.c:5542 elfnn-aarch64.c:7980 elfnn-riscv.c:722
+#, c-format
+msgid "%pB: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC"
+msgstr "%pB: relokalisering %s mot `%s' kan inte användas när man skapar ett delat objekt; kompilera om med -fPIC"
+
+#: elf32-arc.c:2920
+#, c-format
+msgid "%pB: unknown mandatory ARC object attribute %d"
+msgstr "%pB: okänt obligatoriskt ARC objektattribut %d"
+
+#: elf32-arc.c:2928
+#, c-format
+msgid "warning: %pB: unknown ARC object attribute %d"
+msgstr "varning: %pB: okänt ARC objektattribut %d"
+
+#: elf32-arm.c:4365 elf32-arm.c:4399 elf32-arm.c:4418 elf32-arm.c:4470
+#, c-format
+msgid "%pB(%pA): warning: long branch veneers used in section with SHF_ARM_PURECODE section attribute is only supported for M-profile targets that implement the movw instruction"
+msgstr "%pB(%pA): varning: långa grenfaner som används i avsnitt med SHF_ARM_PURECODE-avsnittsattribut stöds endast för M-profilmål som implementerar movw-instruktionen"
+
+#: elf32-arm.c:4430 elf32-arm.c:4484 elf32-arm.c:9181 elf32-arm.c:9271
+#, c-format
+msgid "%pB(%s): warning: interworking not enabled; first occurrence: %pB: %s call to %s"
+msgstr "%pB(%s): varning: samverkan ej aktiverad; första förekomsten: %pB: %s anrop till %s"
+
+#: elf32-arm.c:4610
+#, c-format
+msgid "ERROR: CMSE stub (%s section) too far (%#<PRIx64>) from destination (%#<PRIx64>)"
+msgstr "FEL: CMSE-stub (%s sektion) för långt (%#<PRIx64>) från destination (%#<PRIx64>)"
+
+#: elf32-arm.c:4779
+#, c-format
+msgid "no address assigned to the veneers output section %s"
+msgstr "ingen adress tilldelad till fanerutmatningssektionen %s"
+
+#: elf32-arm.c:4854 elf32-arm.c:7003 elf32-csky.c:3385 elf32-hppa.c:581
+#: elf32-m68hc1x.c:163 elf32-metag.c:1179 elf64-ppc.c:3902 elf64-ppc.c:14175
+#: elfnn-aarch64.c:3188 elfnn-kvx.c:894
+#, c-format
+msgid "%pB: cannot create stub entry %s"
+msgstr "%pB: kan inte skapa stub-post %s"
+
+#: elf32-arm.c:5075 elf32-csky.c:3727 elf32-hppa.c:731 elf32-hppa.c:760
+#: elf32-hppa.c:841 elf32-m68hc11.c:422 elf32-m68hc12.c:542 elf32-metag.c:3344
+#: elf64-ppc.c:12292 elf64-ppc.c:12300 xcofflink.c:4676 elfnn-aarch64.c:3260
+msgid "%F%P: Could not assign `%pA' to an output section. Retry without --enable-non-contiguous-regions.\n"
+msgstr "%F%P: Det gick inte att tilldela `%pA' till ett utmatningsavsnitt. Försök igen utan --enable-non-contiguous-regions.\n"
+
+#: elf32-arm.c:6046
+#, c-format
+msgid "%pB: special symbol `%s' only allowed for ARMv8-M architecture or later"
+msgstr "%pB: specialsymbolen `%s' är endast tillåten för ARMv8-M-arkitektur eller senare"
+
+#: elf32-arm.c:6055
+#, c-format
+msgid "%pB: invalid special symbol `%s'; it must be a global or weak function symbol"
+msgstr "%pB: ogiltig specialsymbol `%s'; den måste vara en global eller svag funktionssymbol"
+
+#: elf32-arm.c:6094
+#, c-format
+msgid "%pB: invalid standard symbol `%s'; it must be a global or weak function symbol"
+msgstr "%pB: ogiltig standardsymbol `%s'; den måste vara en global eller svag funktionssymbol"
+
+#: elf32-arm.c:6100
+#, c-format
+msgid "%pB: absent standard symbol `%s'"
+msgstr "%pB: standardsymbolen `%s' saknas"
+
+#: elf32-arm.c:6112
+#, c-format
+msgid "%pB: `%s' and its special symbol are in different sections"
+msgstr "%pB: `%s' och dess specialsymbol finns i olika avsnitt"
+
+#: elf32-arm.c:6124
+#, c-format
+msgid "%pB: entry function `%s' not output"
+msgstr "%pB: inmatningsfunktionen `%s' matas inte ut"
+
+#: elf32-arm.c:6131
+#, c-format
+msgid "%pB: entry function `%s' is empty"
+msgstr "%pB: inmatningsfunktionen `%s' är tom"
+
+#: elf32-arm.c:6260
+#, c-format
+msgid "%pB: --in-implib only supported for Secure Gateway import libraries"
+msgstr "%pB: --in-implib stöds endast för Secure Gateway-importbibliotek"
+
+#: elf32-arm.c:6309
+#, c-format
+msgid "%pB: invalid import library entry: `%s'; symbol should be absolute, global and refer to Thumb functions"
+msgstr "%pB: ogiltig import av bibliotekspost: `%s'; symbolen ska vara absolut, global och hänvisa till Thumb-funktioner"
+
+#: elf32-arm.c:6331
+#, c-format
+msgid "entry function `%s' disappeared from secure code"
+msgstr "entry-funktionen `%s' försvann från säker kod"
+
+#: elf32-arm.c:6355
+#, c-format
+msgid "`%s' refers to a non entry function"
+msgstr "`%s' hänvisar till en funktion som inte är en post"
+
+#: elf32-arm.c:6370
+#, c-format
+msgid "%pB: visibility of symbol `%s' has changed"
+msgstr "%pB: synligheten för symbolen `%s' har ändrats"
+
+#: elf32-arm.c:6379
+#, c-format
+msgid "%pB: incorrect size for symbol `%s'"
+msgstr "%pB: felaktig storlek för symbolen `%s'"
+
+#: elf32-arm.c:6398
+#, c-format
+msgid "offset of veneer for entry function `%s' not a multiple of its size"
+msgstr "offset för faner för inmatningsfunktion `%s' inte en multipel av dess storlek"
+
+#: elf32-arm.c:6418
+msgid "new entry function(s) introduced but no output import library specified:"
+msgstr "ny(a) ingångsfunktion(er) införs men inget bibliotek för import av utdata anges:"
+
+#: elf32-arm.c:6426
+#, c-format
+msgid "start address of `%s' is different from previous link"
+msgstr "startadressen för `%s' skiljer sig från föregående länk"
+
+#: elf32-arm.c:7137 elf32-arm.c:7175
+#, c-format
+msgid "unable to find %s glue '%s' for '%s'"
+msgstr "kan inte hitta %s lim '%s' för '%s'"
+
+#: elf32-arm.c:7886
+#, c-format
+msgid "%pB: BE8 images only valid in big-endian mode"
+msgstr "%pB: BE8-bilderna är endast giltiga i big-endian-läge"
#. Give a warning, but do as the user requests anyway.
-#: elf32-arm.c:6353
-msgid "%B: warning: selected VFP11 erratum workaround is not necessary for target architecture"
-msgstr "%B: varning: vald problemlösning VFP11 behövs inte för destinationsarkitektur"
+#: elf32-arm.c:8114
+#, c-format
+msgid "%pB: warning: selected VFP11 erratum workaround is not necessary for target architecture"
+msgstr "%pB: varning: vald lösning för VFP11-erratum är inte nödvändig för målarkitekturen"
-#: elf32-arm.c:6897 elf32-arm.c:6917
-msgid "%B: unable to find VFP11 veneer `%s'"
-msgstr "%B: kan inte hitta VFP11-lagret â€%sâ€"
+#: elf32-arm.c:8141
+#, c-format
+msgid "%pB: warning: selected STM32L4XX erratum workaround is not necessary for target architecture"
+msgstr "%pB: varning: vald STM32L4XX erratum-lösning är inte nödvändig för målarkitekturen"
-#: elf32-arm.c:6966
+#: elf32-arm.c:8677 elf32-arm.c:8697 elf32-arm.c:8764 elf32-arm.c:8783
#, c-format
-msgid "Invalid TARGET2 relocation type '%s'."
-msgstr "Ogiltig TARGET2-omlokaliseringstyp â€%sâ€."
+msgid "%pB: unable to find %s veneer `%s'"
+msgstr "%pB: kan inte hitta %s faner `%s'"
-#. PR ld/16017: Do not generate ARM instructions for
-#. the PLT if compiling for a thumb-only target.
-#.
-#. FIXME: We ought to be able to generate thumb PLT instructions...
-#: elf32-arm.c:7696
-msgid "%B: Warning: thumb mode PLT generation not currently supported"
-msgstr "%B: Varning: tumläges PLT-generering stöds ej"
-
-#: elf32-arm.c:7909
-msgid "%B(%A+0x%lx):unexpected Thumb instruction '0x%x' in TLS trampoline"
-msgstr "%B(%A+0x%lx): oväntad Thumb-instruktion â€0x%x†i TLS-trampolin"
-
-#: elf32-arm.c:7948
-msgid "%B(%A+0x%lx):unexpected ARM instruction '0x%x' in TLS trampoline"
-msgstr "%B(%A+0x%lx): oväntad ARM-instruktion â€0x%x†i TLS-trampolin"
-
-#: elf32-arm.c:8412
-msgid "\\%B: Warning: Arm BLX instruction targets Arm function '%s'."
-msgstr "\\%B: Varning: Arm BLX-instruktion pekar mot Arm-funktionen â€%sâ€."
-
-#: elf32-arm.c:8831
-msgid "%B: Warning: Thumb BLX instruction targets thumb function '%s'."
-msgstr "%B: Varning: Thumb BLX-instruktion pekar mot thumb-funktionen â€%sâ€."
-
-#: elf32-arm.c:9672
-msgid "%B(%A+0x%lx):unexpected Thumb instruction '0x%x' referenced by TLS_GOTDESC"
-msgstr "%B(%A+0x%lx): oväntad Thumb-instruktion â€0x%x†hänvisad till av TLS_GOTDESC"
-
-#: elf32-arm.c:9695
-msgid "%B(%A+0x%lx):unexpected ARM instruction '0x%x' referenced by TLS_GOTDESC"
-msgstr "%B(%A+0x%lx): oväntad ARM-instruktion â€0x%x†hänvisad till av TLS_GOTDESC"
-
-#: elf32-arm.c:9724
-msgid "%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object"
-msgstr "%B(%A+0x%lx): R_ARM_TLS_LE32-omlokalisering tillåts inte i delat objekt"
-
-#: elf32-arm.c:9937
-msgid "%B(%A+0x%lx): Only ADD or SUB instructions are allowed for ALU group relocations"
-msgstr "%B(%A+0x%lx): Enbart ADD- eller SUB-instruktioner tillåts för ALU-gruppsomlokaliseringar"
-
-#: elf32-arm.c:9977 elf32-arm.c:10065 elf32-arm.c:10149 elf32-arm.c:10235
-msgid "%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s"
-msgstr "%B(%A+0x%lx): Överflöde vid delning av 0x%lx för gruppomlokalisering %s"
-
-#: elf32-arm.c:10474 elf32-sh.c:3994 elf64-sh64.c:1544
-msgid "%B(%A+0x%lx): %s relocation against SEC_MERGE section"
-msgstr "%B(%A+0x%lx): %s-omlokalisering mot SEC_MERGE-sektion"
-
-#: elf32-arm.c:10585 elf32-m68k.c:4155 elf32-xtensa.c:2799
-#: /src/binutils-gdb/bfd/elfnn-aarch64.c:4192
-msgid "%B(%A+0x%lx): %s used with TLS symbol %s"
-msgstr "%B(%A+0x%lx): %s används med TLS-symbolen %s"
-
-#: elf32-arm.c:10586 elf32-m68k.c:4156 elf32-xtensa.c:2800
-#: /src/binutils-gdb/bfd/elfnn-aarch64.c:4193
-msgid "%B(%A+0x%lx): %s used with non-TLS symbol %s"
-msgstr "%B(%A+0x%lx): %s används med icke-TLS-symbolen %s"
-
-#: elf32-arm.c:10666 elf32-tic6x.c:2736
-#: /src/binutils-gdb/bfd/elfnn-aarch64.c:4481
+#: elf32-arm.c:8990
+#, c-format
+msgid "%pB(%pA+%#x): error: multiple load detected in non-last IT block instruction: STM32L4XX veneer cannot be generated; use gcc option -mrestrict-it to generate only one instruction per IT block"
+msgstr "%pB(%pA+%#x): fel: multipel laddning upptäckt i den icke-sista IT-blockinstruktionen: STM32L4XX-faner kan inte genereras; använd gcc-alternativet -mrestrict-it för att generera endast en instruktion per IT-block"
+
+#: elf32-arm.c:9088
+#, c-format
+msgid "invalid TARGET2 relocation type '%s'"
+msgstr "ogiltig TARGET2 omlokaliseringstyp \"%s"
+
+#. FIXME: We ought to be able to generate thumb-1 PLT
+#. instructions...
+#: elf32-arm.c:9857
+#, c-format
+msgid "%pB: warning: thumb-1 mode PLT generation not currently supported"
+msgstr "%pB: varning: PLT-generering i thumb-1-läge stöds inte för närvarande"
+
+#: elf32-arm.c:10166 elf32-arm.c:10208
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' in TLS trampoline"
+msgstr "%pB(%pA+%#<PRIx64>): oväntad %s-instruktion '%#lx' i TLS-trampolin"
+
+#: elf32-arm.c:10489
+#, c-format
+msgid "warning: %pB(%s): Forcing bramch to absolute symbol in Thumb mode (Thumb-only CPU) in %pB"
+msgstr "varning: %pB(%s): Tvingar bramch till absolut symbol i Thumb-läge (CPU med enbart Thumb) i %pB"
+
+#: elf32-arm.c:10494
+#, c-format
+msgid "warning: (%s): Forcing branch to absolute symbol in Thumb mode (Thumb-only CPU) in %pB"
+msgstr "varning: (%s): Tvingar fram förgrening till absolut symbol i Thumb-läge (CPU med enbart Thumb) i %pB"
+
+#: elf32-arm.c:10523
+#, c-format
+msgid "%pB(%s): Unknown destination type (ARM/Thumb) in %pB"
+msgstr "%pB(%s): Okänd destinationstyp (ARM/Thumb) i %pB"
+
+#: elf32-arm.c:10527
+#, c-format
+msgid "(%s): Unknown destination type (ARM/Thumb) in %pB"
+msgstr "(%s): Okänd destinationstyp (ARM/Thumb) i %pB"
+
+#: elf32-arm.c:10615
+msgid "shared object"
+msgstr "delat objekt"
+
+#: elf32-arm.c:10618
+msgid "PIE executable"
+msgstr "PIE körbar"
+
+#: elf32-arm.c:10621
+#, c-format
+msgid "%pB: relocation %s against external or undefined symbol `%s' can not be used when making a %s; recompile with -fPIC"
+msgstr "%pB: relokalisering %s mot extern eller odefinierad symbol `%s' kan inte användas när man gör en %s; kompilera om med -fPIC"
+
+#: elf32-arm.c:10723
+#, c-format
+msgid "\\%pB: warning: %s BLX instruction targets %s function '%s'"
+msgstr "\\%pB: varning: %s BLX-instruktion riktar sig till %s-funktionen '%s'"
+
+#: elf32-arm.c:11140
+#, c-format
+msgid "%pB: warning: %s BLX instruction targets %s function '%s'"
+msgstr "%pB: varning: %s BLX-instruktion riktar sig mot %s-funktionen '%s'"
+
+#: elf32-arm.c:11774
+#, c-format
+msgid "%pB: expected symbol index in range 0..%lu but found local symbol with index %lu"
+msgstr "%pB: förväntat symbolindex i intervallet 0..%lu men hittade lokal symbol med index %lu"
+
+#: elf32-arm.c:12049 elf32-arm.c:12075
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' referenced by TLS_GOTDESC"
+msgstr "%pB(%pA+%#<PRIx64>): oväntad %s-instruktion '%#lx' refererad av TLS_GOTDESC"
+
+#: elf32-arm.c:12121 elf32-csky.c:4955 elf32-m68k.c:3733 elf32-metag.c:1912
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): %s relocation not permitted in shared object"
+msgstr "%pB(%pA+%#<PRIx64>): %s-förflyttning inte tillåten i delat objekt"
+
+#: elf32-arm.c:12335
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): only ADD or SUB instructions are allowed for ALU group relocations"
+msgstr "%pB(%pA+%#<PRIx64>): endast ADD- eller SUB-instruktioner är tillåtna för ALU-gruppflyttningar"
+
+#: elf32-arm.c:12376 elf32-arm.c:12468 elf32-arm.c:12556 elf32-arm.c:12646
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): overflow whilst splitting %#<PRIx64> for group relocation %s"
+msgstr "%pB(%pA+%#<PRIx64>): överskridande vid delning av %#<PRIx64> för gruppflyttning %s"
+
+#: elf32-arm.c:12704 elf32-arm.c:12863
+msgid "local symbol index too big"
+msgstr "lokalt symbolindex för stort"
+
+#: elf32-arm.c:12714 elf32-arm.c:12748
+msgid "no dynamic index information available"
+msgstr "ingen dynamisk indexinformation tillgänglig"
+
+#: elf32-arm.c:12756
+msgid "invalid dynamic index"
+msgstr "ogiltigt dynamiskt index"
+
+#: elf32-arm.c:12873
+msgid "dynamic index information not available"
+msgstr "dynamisk indexinformation inte tillgänglig"
+
+#: elf32-arm.c:13304 elf32-sh.c:3566
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): %s relocation against SEC_MERGE section"
+msgstr "%pB(%pA+%#<PRIx64>): %s omplacering mot SEC_MERGE-avsnittet"
+
+#: elf32-arm.c:13417 elf32-m68k.c:3966 elf32-xtensa.c:2758 elfnn-aarch64.c:7070
+#: elfnn-kvx.c:2568
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): %s used with TLS symbol %s"
+msgstr "%pB(%pA+%#<PRIx64>): %s används med TLS-symbolen %s"
+
+#: elf32-arm.c:13419 elf32-m68k.c:3968 elf32-xtensa.c:2760 elfnn-aarch64.c:7072
+#: elfnn-kvx.c:2570
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): %s used with non-TLS symbol %s"
+msgstr "%pB(%pA+%#<PRIx64>): %s används med icke-TLS-symbolen %s"
+
+#: elf32-arm.c:13502 elf32-tic6x.c:2641 elfnn-aarch64.c:7407 elfnn-kvx.c:2797
msgid "out of range"
msgstr "utanför intervall"
-#: elf32-arm.c:10670 elf32-nios2.c:3525 elf32-tic6x.c:2740
-#: /src/binutils-gdb/bfd/elfnn-aarch64.c:4485
+#: elf32-arm.c:13506 elf32-pru.c:936 elf32-tic6x.c:2645 elfnn-aarch64.c:7411
+#: elfnn-kvx.c:2801
msgid "unsupported relocation"
msgstr "omlokalisering utan stöd"
-#: elf32-arm.c:10678 elf32-nios2.c:3535 elf32-tic6x.c:2748
-#: /src/binutils-gdb/bfd/elfnn-aarch64.c:4493
+#: elf32-arm.c:13514 elf32-pru.c:946 elf32-tic6x.c:2653 elfnn-aarch64.c:7419
+#: elfnn-kvx.c:2809
msgid "unknown error"
msgstr "okänt fel"
-#: elf32-arm.c:11153
-msgid "Warning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with it"
-msgstr "Varning: Rensar %Bs samverkandeflagga eftersom ej samverkande kod i %B har länkats till den"
+#: elf32-arm.c:13991
+#, c-format
+msgid "warning: not setting interworking flag of %pB since it has already been specified as non-interworking"
+msgstr "varning: sätter inte interworking-flaggan för %pB eftersom den redan har angetts som icke-interworking"
-#: elf32-arm.c:11240
-msgid "%B: Unknown mandatory EABI object attribute %d"
-msgstr "%B: Okänt obligatoriskt EABI-objektattribut %d"
+#: elf32-arm.c:13995
+#, c-format
+msgid "warning: clearing the interworking flag of %pB due to outside request"
+msgstr "varning: rensning av samverkansflaggan för %pB på grund av extern begäran"
-#: elf32-arm.c:11248
-msgid "Warning: %B: Unknown EABI object attribute %d"
-msgstr "Varning: %B: Okänt EABI-objektattribut %d"
+#: elf32-arm.c:14040
+#, c-format
+msgid "warning: clearing the interworking flag of %pB because non-interworking code in %pB has been linked with it"
+msgstr "varning: rensning av samverkansflaggan för %pB eftersom icke-samverkande kod i %pB har länkats med den"
-#: elf32-arm.c:11449
-msgid "error: %B: Unknown CPU architecture"
-msgstr "fel: %B: Okänd CPU-arkitektur"
+#: elf32-arm.c:14127
+#, c-format
+msgid "%pB: unknown mandatory EABI object attribute %d"
+msgstr "%pB: okänt obligatoriskt EABI-objektattribut %d"
-#: elf32-arm.c:11487
-msgid "error: %B: Conflicting CPU architectures %d/%d"
-msgstr "fel: %B: Motstridiga CPU-arkitekturer %d/%d"
+#: elf32-arm.c:14135
+#, c-format
+msgid "warning: %pB: unknown EABI object attribute %d"
+msgstr "warning: %pB: okänt EABI-objektattribut %d"
-#: elf32-arm.c:11576
-msgid "Error: %B has both the current and legacy Tag_MPextension_use attributes"
-msgstr "Fel: %B har både aktuella och föråldrade Tag_MPextension_use-attribut"
+#: elf32-arm.c:14470
+#, c-format
+msgid "error: %pB: unknown CPU architecture"
+msgstr "fel: %pB: okänd CPU-arkitektur"
-#: elf32-arm.c:11601
-msgid "error: %B uses VFP register arguments, %B does not"
-msgstr "fel: %B använder VFP-registerargument, men inte %B"
+#: elf32-arm.c:14508
+#, c-format
+msgid "error: conflicting CPU architectures %s vs %s in %pB"
+msgstr "fel: motstridiga CPU-arkitekturer %s vs %s i %pB"
-#: elf32-arm.c:11747
-msgid "error: %B: unable to merge virtualization attributes with %B"
-msgstr "fel: %B: kunde inte sammanfoga virtualiseringsattribut med %B"
+#: elf32-arm.c:14605
+#, c-format
+msgid "Error: %pB has both the current and legacy Tag_MPextension_use attributes"
+msgstr "Fel: %pB har både det aktuella och det äldre attributet Tag_MPextension_use"
-#: elf32-arm.c:11773
-msgid "error: %B: Conflicting architecture profiles %c/%c"
-msgstr "fel: %B: Motstridiga arkitekturprofiler %c/%c"
+#: elf32-arm.c:14642
+#, c-format
+msgid "error: %pB uses VFP register arguments, %pB does not"
+msgstr "fel: %pB använder VFP registerargument, %pB gör det inte"
-#: elf32-arm.c:11877
-msgid "Warning: %B: Conflicting platform configuration"
-msgstr "Varning: %B: Motstridig plattformskonfigurering"
+#: elf32-arm.c:14812
+#, c-format
+msgid "error: %pB: unable to merge virtualization attributes with %pB"
+msgstr "fel: %pB: det går inte att slå samman virtualiseringsattribut med %pB"
-#: elf32-arm.c:11886
-msgid "error: %B: Conflicting use of R9"
-msgstr "fel: %B: Konflikt vid användande av R9"
+#: elf32-arm.c:14838
+#, c-format
+msgid "error: %pB: conflicting architecture profiles %c/%c"
+msgstr "fel: %pB: motstridiga arkitekturprofiler %c/%c"
-#: elf32-arm.c:11898
-msgid "error: %B: SB relative addressing conflicts with use of R9"
-msgstr "fel: %B: SB-relativ adressering kolliderar med användande av R9"
+#: elf32-arm.c:14977
+#, c-format
+msgid "warning: %pB: conflicting platform configuration"
+msgstr "varning: %pB: motstridig plattformskonfiguration"
-#: elf32-arm.c:11911
-msgid "warning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may fail"
-msgstr "varning: %B använder %u-byte wchar_t, men utdata ska använda %u-byte wchar_t; användning av wchar_t-värden mellan objekt kanske inte fungerar"
+#: elf32-arm.c:14986
+#, c-format
+msgid "error: %pB: conflicting use of R9"
+msgstr "fel: %pB: motstridig användning av R9"
-#: elf32-arm.c:11942
-msgid "warning: %B uses %s enums yet the output is to use %s enums; use of enum values across objects may fail"
-msgstr "varning: %B använder %s enum, men utdata ska använda %s enum; användning av enum-värden mellan objekt kanske inte fungerar"
+#: elf32-arm.c:14998
+#, c-format
+msgid "error: %pB: SB relative addressing conflicts with use of R9"
+msgstr "fel: %pB: SB:s relativa adressering står i konflikt med användningen av R9"
-#: elf32-arm.c:11954
-msgid "error: %B uses iWMMXt register arguments, %B does not"
-msgstr "fel: %B använder iWMMXt-registerargument, men inte %B"
+#: elf32-arm.c:15011
+#, c-format
+msgid "warning: %pB uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may fail"
+msgstr "warning: %pB använder %u-byte wchar_t men utdata ska använda %u-byte wchar_t; användning av wchar_t-värden mellan objekt kan misslyckas"
-#: elf32-arm.c:11971
-msgid "error: fp16 format mismatch between %B and %B"
-msgstr "fel: fp16-format stämmer inte överens mellan %B och %B"
+#: elf32-arm.c:15042
+#, c-format
+msgid "warning: %pB uses %s enums yet the output is to use %s enums; use of enum values across objects may fail"
+msgstr "warning: %pB använder %s enums men utdata är att använda %s enums; användning av enumvärden mellan objekt kan misslyckas"
-#: elf32-arm.c:12007
-msgid "%B has has both the current and legacy Tag_MPextension_use attributes"
-msgstr "%B har både aktuella och föråldrade Tag_MPextension_use-attribut"
+#: elf32-arm.c:15054
+#, c-format
+msgid "error: %pB uses iWMMXt register arguments, %pB does not"
+msgstr "fel: %pB använder iWMMXt-registerargument, %pB gör det inte"
-#. Ignore init flag - it may not be set, despite the flags field
-#. containing valid data.
-#. Ignore init flag - it may not be set, despite the flags field containing valid data.
-#. Ignore init flag - it may not be set, despite the flags field
-#. containing valid data.
-#: elf32-arm.c:12095 elf32-bfin.c:4949 elf32-cris.c:4139 elf32-m68hc1x.c:1427
-#: elf32-m68k.c:1195 elf32-score.c:4004 elf32-score7.c:3808 elf32-vax.c:529
-#: elf32-xgate.c:674 elfxx-mips.c:14955
-#: /src/binutils-gdb/bfd/elfnn-aarch64.c:4645
+#: elf32-arm.c:15071
#, c-format
-msgid "private flags = %lx:"
-msgstr "privata flaggor = %lx:"
+msgid "error: fp16 format mismatch between %pB and %pB"
+msgstr "fel: fp16-formatavvikelse mellan %pB och %pB"
-#: elf32-arm.c:12104
+#: elf32-arm.c:15107
+#, c-format
+msgid "%pB has both the current and legacy Tag_MPextension_use attributes"
+msgstr "%pB har både nuvarande och äldre Tag_MPextension_use-attribut"
+
+#: elf32-arm.c:15203
#, c-format
msgid " [interworking enabled]"
msgstr " [samverkande är aktiverat]"
-#: elf32-arm.c:12112
+#: elf32-arm.c:15211
#, c-format
msgid " [VFP float format]"
msgstr " [VFP-flyttalsformat]"
-#: elf32-arm.c:12114
-#, c-format
-msgid " [Maverick float format]"
-msgstr " [Maverick-flyttalsformat]"
-
-#: elf32-arm.c:12116
+#: elf32-arm.c:15213
#, c-format
msgid " [FPA float format]"
msgstr " [FPA-flyttalsformat]"
-#: elf32-arm.c:12125
+#: elf32-arm.c:15216
+#, c-format
+msgid " [floats passed in float registers]"
+msgstr " [flyttal skickade i flyttalsregister]"
+
+#: elf32-arm.c:15219 elf32-arm.c:15304
+#, c-format
+msgid " [position independent]"
+msgstr " [positionsoberoende]"
+
+#: elf32-arm.c:15222
#, c-format
msgid " [new ABI]"
msgstr " [nytt ABI]"
-#: elf32-arm.c:12128
+#: elf32-arm.c:15225
#, c-format
msgid " [old ABI]"
msgstr " [gammalt ABI]"
-#: elf32-arm.c:12131
+#: elf32-arm.c:15228
#, c-format
msgid " [software FP]"
msgstr " [programvaru-FP]"
-#: elf32-arm.c:12140
+#: elf32-arm.c:15236
#, c-format
msgid " [Version1 EABI]"
msgstr " [Version1 EABI]"
-#: elf32-arm.c:12143 elf32-arm.c:12154
+#: elf32-arm.c:15239 elf32-arm.c:15250
#, c-format
msgid " [sorted symbol table]"
msgstr " [sorterad symboltabell]"
-#: elf32-arm.c:12145 elf32-arm.c:12156
+#: elf32-arm.c:15241 elf32-arm.c:15252
#, c-format
msgid " [unsorted symbol table]"
msgstr " [osorterad symboltabell]"
-#: elf32-arm.c:12151
+#: elf32-arm.c:15247
#, c-format
msgid " [Version2 EABI]"
msgstr " [Version2 EABI]"
-#: elf32-arm.c:12159
+#: elf32-arm.c:15255
#, c-format
msgid " [dynamic symbols use segment index]"
msgstr " [dynamiska symboler använder segmentindex]"
-#: elf32-arm.c:12162
+#: elf32-arm.c:15258
#, c-format
msgid " [mapping symbols precede others]"
msgstr " [mappsymboler har företräde före andra]"
-#: elf32-arm.c:12169
+#: elf32-arm.c:15265
#, c-format
msgid " [Version3 EABI]"
msgstr " [Version3 EABI]"
-#: elf32-arm.c:12173
+#: elf32-arm.c:15269
#, c-format
msgid " [Version4 EABI]"
msgstr " [Version4 EABI]"
-#: elf32-arm.c:12177
+#: elf32-arm.c:15273
#, c-format
msgid " [Version5 EABI]"
msgstr " [Version5 EABI]"
-#: elf32-arm.c:12180
+#: elf32-arm.c:15276
#, c-format
msgid " [soft-float ABI]"
-msgstr " [mjuk-flyttal ABI]"
+msgstr " [programvaruflyttal ABI]"
-#: elf32-arm.c:12183
+#: elf32-arm.c:15279
#, c-format
msgid " [hard-float ABI]"
-msgstr " [hårt-flyttal ABI]"
+msgstr " [hårdvaruflyttal ABI]"
-#: elf32-arm.c:12189
+#: elf32-arm.c:15285
#, c-format
msgid " [BE8]"
msgstr " [BE8]"
-#: elf32-arm.c:12192
+#: elf32-arm.c:15288
#, c-format
msgid " [LE8]"
msgstr " [LE8]"
-#: elf32-arm.c:12198
+#: elf32-arm.c:15294
#, c-format
msgid " <EABI version unrecognised>"
msgstr " <EABI-version känns inte igen>"
-#: elf32-arm.c:12205
+#: elf32-arm.c:15301
#, c-format
msgid " [relocatable executable]"
msgstr " [omlokaliseringsbar körbar fil]"
-#: elf32-arm.c:12208
+#: elf32-arm.c:15307
#, c-format
-msgid " [has entry point]"
-msgstr " [har startpunkt]"
+msgid " [FDPIC ABI supplement]"
+msgstr " [FDPIC ABI tillägg]"
-#: elf32-arm.c:12213 /src/binutils-gdb/bfd/elfnn-aarch64.c:4648
+#: elf32-arm.c:15312 elfnn-aarch64.c:7576
#, c-format
-msgid "<Unrecognised flag bits set>"
-msgstr "<Okända flaggbitar satta>"
+msgid " <Unrecognised flag bits set>"
+msgstr " <Unrecognised flag bits set>"
-#: elf32-arm.c:12522 elf32-i386.c:1452 elf32-s390.c:1005 elf32-tic6x.c:2812
-#: elf32-tilepro.c:1511 elf32-xtensa.c:999 elf64-s390.c:927
-#: elf64-x86-64.c:1467 elfxx-sparc.c:1415 elfxx-tilegx.c:1728
-#: /src/binutils-gdb/bfd/elfnn-aarch64.c:5038
-msgid "%B: bad symbol index: %d"
-msgstr "%B: felaktigt symbolindex: %d"
+#: elf32-arm.c:15420 elf32-arm.c:15554 elf32-i386.c:1545 elf32-s390.c:921
+#: elf32-tic6x.c:2716 elf32-tilepro.c:1433 elf32-xtensa.c:1088 elf64-s390.c:843
+#: elf64-x86-64.c:2173 elfxx-sparc.c:1385 elfxx-tilegx.c:1661 elfxx-x86.c:971
+#: elfnn-aarch64.c:7847 elfnn-kvx.c:3247 elfnn-loongarch.c:952
+#: elfnn-riscv.c:766
+#, c-format
+msgid "%pB: bad symbol index: %d"
+msgstr "%pB: fel symbolindex: %d"
+
+#: elf32-arm.c:15810
+#, c-format
+msgid "FDPIC does not yet support %s relocation to become dynamic for executable"
+msgstr "FDPIC stöder ännu inte %s relocation för att bli dynamisk för körbar"
-#: elf32-arm.c:12674 elf32-metag.c:2283 elf64-x86-64.c:1593
-#: elf64-x86-64.c:1771 elfxx-mips.c:8482
-msgid "%B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC"
-msgstr "%B: omlokalisering %s mot â€%s†kan inte användas när ett delat objekt skapas; kompilera om med -fPIC"
+#: elf32-arm.c:17072
+#, c-format
+msgid "errors encountered processing file %pB"
+msgstr "fel uppstod vid bearbetning av filen %pB"
-#: elf32-arm.c:13796
+#: elf32-arm.c:17442 elflink.c:13533 elflink.c:13580
#, c-format
-msgid "Errors encountered processing file %s"
-msgstr "Fel inträffade vid bearbetning av filen %s"
+msgid "could not find section %s"
+msgstr "kunde inte hitta sektionen %s"
-#: elf32-arm.c:14230
+#: elf32-arm.c:18397
#, c-format
-msgid "error: required section '%s' not found in the linker script"
-msgstr "fel: krävd sektion â€%s†inte funnen i länkarens skript"
+msgid "%pB: Number of symbols in input file has increased from %lu to %u\n"
+msgstr "%pB: Antalet symboler i indatafilen har ökat från %lu till %u\n"
-#: elf32-arm.c:15252
-msgid "%B: error: Cortex-A8 erratum stub is allocated in unsafe location"
-msgstr "%B: fel: Cortex-A8 felstubbe har tilldelats en osäker plats"
+#: elf32-arm.c:18655
+#, c-format
+msgid "%pB: error: Cortex-A8 erratum stub is allocated in unsafe location"
+msgstr "%pB: fel: Cortex-A8 erratum stub är allokerad på osäker plats"
#. There's not much we can do apart from complain if this
#. happens.
-#: elf32-arm.c:15279
-msgid "%B: error: Cortex-A8 erratum stub out of range (input file too large)"
-msgstr "%B: fel: Cortex-A8 felstubbe utanför intervallet (indatafilen är för stor)"
-
-#: elf32-arm.c:15373 elf32-arm.c:15395
-msgid "%B: error: VFP11 veneer out of range"
-msgstr "%B: fel: VFP11-lager utanför intervall"
-
-#: elf32-arm.c:16020
-msgid "error: %B is already in final BE8 format"
-msgstr "fel: %B är redan i färdigt BE8-format"
-
-#: elf32-arm.c:16096
-msgid "error: Source object %B has EABI version %d, but target %B has EABI version %d"
-msgstr "fel: Källkodsobjekt %B har EABI-version %d, men destinationen %B har EABI-version %d"
-
-#: elf32-arm.c:16112
-msgid "error: %B is compiled for APCS-%d, whereas target %B uses APCS-%d"
-msgstr "fel: %B kompilerades för APCS-%d, medan destinationen %B använder APCS-%d"
-
-#: elf32-arm.c:16137
-msgid "error: %B uses VFP instructions, whereas %B does not"
-msgstr "fel: %B använder VFP-instruktioner, men inte %B"
-
-#: elf32-arm.c:16141
-msgid "error: %B uses FPA instructions, whereas %B does not"
-msgstr "fel: %B använder FPA-instruktioner, men inte %B"
-
-#: elf32-arm.c:16151
-msgid "error: %B uses Maverick instructions, whereas %B does not"
-msgstr "fel: %B använder Maverick-instruktioner, men inte %B"
-
-#: elf32-arm.c:16155
-msgid "error: %B does not use Maverick instructions, whereas %B does"
-msgstr "fel: %B använder inte Maverick-instruktioner, men det gör %B"
-
-#: elf32-arm.c:16174
-msgid "error: %B uses software FP, whereas %B uses hardware FP"
-msgstr "fel: %B använder FP i mjukvara, medan %B använder FP i hårdvara"
-
-#: elf32-arm.c:16178
-msgid "error: %B uses hardware FP, whereas %B uses software FP"
-msgstr "fel: %B använder FP i hårdvara, medan %B använder FP i mjukvara"
-
-#: elf32-avr.c:1264 elf32-bfin.c:3228 elf32-cris.c:2024 elf32-epiphany.c:568
-#: elf32-fr30.c:597 elf32-frv.c:4047 elf32-i860.c:1220 elf32-ip2k.c:1479
-#: elf32-iq2000.c:696 elf32-m32c.c:561 elf32-mep.c:543 elf32-metag.c:2000
-#: elf32-moxie.c:290 elf32-msp430.c:1325 elf32-mt.c:399 elf32-openrisc.c:412
-#: elf32-tilepro.c:3674 elf32-v850.c:2289 elf32-xstormy16.c:944
-#: elf64-mmix.c:1546 elfxx-tilegx.c:4059
-msgid "internal error: dangerous relocation"
-msgstr "internt fel: farlig omlokalisering"
+#: elf32-arm.c:18682
+#, c-format
+msgid "%pB: error: Cortex-A8 erratum stub out of range (input file too large)"
+msgstr "%pB: fel: Cortex-A8 erratum stub utanför intervallet (indatafilen för stor)"
+
+#: elf32-arm.c:19509 elf32-arm.c:19531
+#, c-format
+msgid "%pB: error: VFP11 veneer out of range"
+msgstr "%pB: fel: VFP11 faner utanför intervallet"
+
+#: elf32-arm.c:19582
+#, c-format
+msgid "%pB(%#<PRIx64>): error: cannot create STM32L4XX veneer; jump out of range by %<PRId64> bytes; cannot encode branch instruction"
+msgstr "%pB(%#<PRIx64>): fel: kan inte skapa STM32L4XX-faner; hopp utanför intervallet med %<PRId64> byte; kan inte koda greninstruktionen"
+
+#: elf32-arm.c:19621
+#, c-format
+msgid "%pB: error: cannot create STM32L4XX veneer"
+msgstr "%pB: fel: kan inte skapa STM32L4XX-faner"
+
+#: elf32-arm.c:20704
+#, c-format
+msgid "error: %pB is already in final BE8 format"
+msgstr "fel: %pB är redan i det slutliga BE8-formatet"
+
+#: elf32-arm.c:20781
+#, c-format
+msgid "error: source object %pB has EABI version %d, but target %pB has EABI version %d"
+msgstr "fel: källobjektet %pB har EABI-versionen %d, men målet %pB har EABI-versionen %d"
+
+#: elf32-arm.c:20796
+#, c-format
+msgid "error: %pB is compiled for APCS-%d, whereas target %pB uses APCS-%d"
+msgstr "fel: %pB är kompilerad för APCS-%d, medan målet %pB använder APCS-%d"
+
+#: elf32-arm.c:20806
+#, c-format
+msgid "error: %pB passes floats in float registers, whereas %pB passes them in integer registers"
+msgstr "fel: %pB skickar flyttal i flyttalsregister, medan %pB skickar dem i heltalsregister"
+
+#: elf32-arm.c:20810
+#, c-format
+msgid "error: %pB passes floats in integer registers, whereas %pB passes them in float registers"
+msgstr "fel: %pB skickar flyttal i heltalsregister, medan %pB skickar dem i flyttalsregister"
+
+#: elf32-arm.c:20820 elf32-arm.c:20824
+#, c-format
+msgid "error: %pB uses %s instructions, whereas %pB does not"
+msgstr "fel: %pB använder %s instruktioner, medan %pB inte gör det"
+
+#: elf32-arm.c:20843
+#, c-format
+msgid "error: %pB uses software FP, whereas %pB uses hardware FP"
+msgstr "fel: %pB använder FP för programvara, medan %pB använder FP för hårdvara"
+
+#: elf32-arm.c:20847
+#, c-format
+msgid "error: %pB uses hardware FP, whereas %pB uses software FP"
+msgstr "fel: %pB använder FP för hårdvara, medan %pB använder FP för programvara"
+
+#: elf32-arm.c:20861
+#, c-format
+msgid "warning: %pB supports interworking, whereas %pB does not"
+msgstr "varning: %pB stöder interworking, medan %pB inte gör det"
+
+#: elf32-arm.c:20867
+#, c-format
+msgid "warning: %pB does not support interworking, whereas %pB does"
+msgstr "varning: %pB stöder inte interworking, medan %pB gör det"
+
+#: elf32-avr.c:1503
+msgid "%X%H: %s against `%s': error: relocation applies outside section\n"
+msgstr "%X%H: %s mot `%s': fel: omlokaliseringen gäller utanför avsnittet\n"
+
+#: elf32-avr.c:1511
+msgid "%X%H: %s against `%s': error: relocation target address is odd\n"
+msgstr "%X%H: %s mot `%s': fel: måladressen för omlokalisering är udda\n"
+
+#: elf32-avr.c:1519
+msgid "%X%H: %s against `%s': internal error: unexpected relocation result %d\n"
+msgstr "%X%H: %s mot `%s': internt fel: oväntat omlokaliseringsresultat %d\n"
-#: elf32-avr.c:2476 elf32-hppa.c:578 elf32-m68hc1x.c:160 elf32-metag.c:1197
-#: elf32-nios2.c:1357
-msgid "%B: cannot create stub entry %s"
-msgstr "%B: kan inte skapa stubbpost %s"
+#: elf32-avr.c:3335 elfnn-aarch64.c:3219
+#, c-format
+msgid "cannot create stub entry %s"
+msgstr "kan inte skapa stub-post %s"
-#: elf32-bfin.c:107 elf32-bfin.c:363
+#: elf32-bfin.c:107 elf32-bfin.c:364
msgid "relocation should be even number"
msgstr "omlokalisering bör ske med jämna siffror"
-#: elf32-bfin.c:1601
-msgid "%B(%A+0x%lx): unresolvable relocation against symbol `%s'"
-msgstr "%B(%A+0x%lx): olöslig omlokalisering mot symbol â€%sâ€"
+#: elf32-bfin.c:1589
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): unresolvable relocation against symbol `%s'"
+msgstr "%pB(%pA+%#<PRIx64>): olöslig omplacering mot symbolen `%s'"
-#: elf32-bfin.c:1634 elf32-i386.c:4406 elf32-m68k.c:4197 elf32-s390.c:3364
-#: elf64-s390.c:3290 elf64-x86-64.c:4506
-msgid "%B(%A+0x%lx): reloc against `%s': error %d"
-msgstr "%B(%A+0x%lx): omlokalisering mot â€%sâ€: fel %d"
+#: elf32-bfin.c:1621 elf32-i386.c:3543 elf32-m68k.c:4006 elf32-s390.c:3130
+#: elf64-s390.c:3205 elf64-x86-64.c:4619
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): reloc against `%s': error %d"
+msgstr "%pB(%pA+%#<PRIx64>): reloc mot `%s': fel %d"
-#: elf32-bfin.c:2732
-msgid "%B: relocation at `%A+0x%x' references symbol `%s' with nonzero addend"
-msgstr "%B. omlokalisering vid â€%A+0x%x†använder symbolen â€%s†med en addend som inte är noll"
+#: elf32-bfin.c:2646
+#, c-format
+msgid "%pB: relocation at `%pA+%#<PRIx64>' references symbol `%s' with nonzero addend"
+msgstr "%pB: omlokalisering vid `%pA+%#<PRIx64>' refererar till symbolen `%s' med addendum som inte är noll"
-#: elf32-bfin.c:2748
+#: elf32-bfin.c:2663
msgid "relocation references symbol not defined in the module"
msgstr "omlokalisering använder symbol som inte definierats i modulen"
-#: elf32-bfin.c:2845
+#: elf32-bfin.c:2761
msgid "R_BFIN_FUNCDESC references dynamic symbol with nonzero addend"
msgstr "R_BFIN_FUNCDESC använder dynamisk symbol med en addend som inte är noll"
-#: elf32-bfin.c:2886 elf32-bfin.c:3009
+#: elf32-bfin.c:2801 elf32-bfin.c:2922
msgid "cannot emit fixups in read-only section"
msgstr "kan inte skicka fixar till en skrivskyddad sektion"
-#: elf32-bfin.c:2917 elf32-bfin.c:3047 elf32-lm32.c:1095 elf32-sh.c:4913
+#: elf32-bfin.c:2831 elf32-bfin.c:2959 elf32-lm32.c:1006 elf32-sh.c:4384
msgid "cannot emit dynamic relocations in read-only section"
msgstr "kan inte skicka dynamiska omlokaliseringar till en skrivskyddad sektion"
-#: elf32-bfin.c:2967
+#: elf32-bfin.c:2881
msgid "R_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addend"
msgstr "R_BFIN_FUNCDESC_VALUE använder dynamisk symbol med addend som inte är noll"
-#: elf32-bfin.c:3132
+#: elf32-bfin.c:3044
msgid "relocations between different segments are not supported"
msgstr "omlokaliseringar mellan olika segment saknar stöd"
-#: elf32-bfin.c:3133
+#: elf32-bfin.c:3045
msgid "warning: relocation references a different segment"
msgstr "varning: omlokalisering använder ett annat segment"
-#: elf32-bfin.c:4907
-msgid "%B: unsupported relocation type %i"
-msgstr "%B: omlokaliseringstyp %i saknar stöd"
+#: elf32-bfin.c:3140 elf32-cris.c:2041 elf32-epiphany.c:574 elf32-fr30.c:602
+#: elf32-frv.c:4056 elf32-ft32.c:500 elf32-ip2k.c:1489 elf32-iq2000.c:699
+#: elf32-m32c.c:632 elf32-mep.c:530 elf32-metag.c:1991 elf32-moxie.c:296
+#: elf32-msp430.c:1514 elf32-mt.c:406 elf32-or1k.c:1903 elf32-tilepro.c:3377
+#: elf32-v850.c:2305 elf32-visium.c:688 elf32-xstormy16.c:938 elf64-bpf.c:348
+#: elf64-mmix.c:1545 elfxx-tilegx.c:3750
+msgid "internal error: dangerous relocation"
+msgstr "internt fel: farlig omlokalisering"
+
+#. Ignore init flag - it may not be set, despite the flags field containing valid data.
+#: elf32-bfin.c:4728 elf32-cris.c:3860 elf32-m68hc1x.c:1414 elf32-m68k.c:1264
+#: elf32-score.c:3984 elf32-score7.c:3791 elf32-vax.c:534 elf32-xgate.c:494
+#: elfxx-mips.c:16366
+#, c-format
+msgid "private flags = %lx:"
+msgstr "privata flaggor = %lx:"
-#: elf32-bfin.c:4995 elf32-frv.c:6600
+#: elf32-bfin.c:4779 elf32-frv.c:6585
#, c-format
-msgid "%s: cannot link non-fdpic object file into fdpic executable"
-msgstr "%s: kan inte länka icke-fdpic-objektfil till fdpic-körfil"
+msgid "%pB: cannot link non-fdpic object file into fdpic executable"
+msgstr "%pB: kan inte länka icke-fdpic-objektfil till fdpic-körbar fil"
-#: elf32-bfin.c:4999 elf32-frv.c:6604
+#: elf32-bfin.c:4783 elf32-frv.c:6589
#, c-format
-msgid "%s: cannot link fdpic object file into non-fdpic executable"
-msgstr "%s: kan inte länka fdpic-objektfil till icke-fdpic-körfil"
+msgid "%pB: cannot link fdpic object file into non-fdpic executable"
+msgstr "%pB: kan inte länka fdpic-objektfilen till en icke-fdpic-körbar fil"
-#: elf32-bfin.c:5153
+#: elf32-bfin.c:4919
#, c-format
msgid "*** check this relocation %s"
msgstr "*** kontrollera denna omlokalisering: %s"
-#: elf32-cris.c:1110
-msgid "%B, section %A: unresolvable relocation %s against symbol `%s'"
-msgstr "%B, sektion %A: oläslig omlokalisering %s mot symbol â€%sâ€"
+#: elf32-bfin.c:5034
+msgid "the bfin target does not currently support the generation of copy relocations"
+msgstr "bfin target stöder för närvarande inte generering av kopiering av omplaceringar"
+
+#: elf32-bfin.c:5329 elf32-cr16.c:2720 elf32-m68k.c:4420
+msgid "unsupported relocation type"
+msgstr "typ av flyttning som inte stöds"
+
+#: elf32-cris.c:1119
+#, c-format
+msgid "%pB, section %pA: unresolvable relocation %s against symbol `%s'"
+msgstr "%pB, avsnitt %pA: olöslig relokalisering %s mot symbolen `%s'"
-#: elf32-cris.c:1172
-msgid "%B, section %A: No PLT nor GOT for relocation %s against symbol `%s'"
-msgstr "%B, sektion %A: Varken PLT eller GOT för omlokalisering %s mot symbol â€%sâ€"
+#: elf32-cris.c:1184
+#, c-format
+msgid "%pB, section %pA: no PLT nor GOT for relocation %s against symbol `%s'"
+msgstr "%pB, avsnitt %pA: ingen PLT eller GOT för omplacering %s mot symbol `%s'"
-#: elf32-cris.c:1174
-msgid "%B, section %A: No PLT for relocation %s against symbol `%s'"
-msgstr "%B, sektion %A: Ingen PLT för omlokalisering %s mot symbol â€%sâ€"
+#: elf32-cris.c:1187
+#, c-format
+msgid "%pB, section %pA: no PLT for relocation %s against symbol `%s'"
+msgstr "%pB, avsnitt %pA: ingen PLT för flyttning %s mot symbol `%s'"
-#: elf32-cris.c:1180 elf32-cris.c:1313 elf32-cris.c:1573 elf32-cris.c:1656
-#: elf32-cris.c:1809 elf32-tic6x.c:2645
+#: elf32-cris.c:1193 elf32-cris.c:1326 elf32-cris.c:1591 elf32-cris.c:1674
+#: elf32-cris.c:1827 elf32-tic6x.c:2552
msgid "[whose name is lost]"
msgstr "[vars namn tappats bort]"
-#: elf32-cris.c:1299 elf32-tic6x.c:2630
-msgid "%B, section %A: relocation %s with non-zero addend %d against local symbol"
-msgstr "%B, sektion %A: omlokalisering %s med addend %d som inte är noll mot lokal symbol"
+#: elf32-cris.c:1311 elf32-tic6x.c:2536
+#, c-format
+msgid "%pB, section %pA: relocation %s with non-zero addend %<PRId64> against local symbol"
+msgstr "%pB, avsnitt %pA: relokering %s med icke-noll addend %<PRId64> mot lokal symbol"
-#: elf32-cris.c:1307 elf32-cris.c:1650 elf32-cris.c:1803 elf32-tic6x.c:2638
-msgid "%B, section %A: relocation %s with non-zero addend %d against symbol `%s'"
-msgstr "%B, sektion %A: omlokalisering %s med addend %d som inte är noll mot symbol â€%sâ€"
+#: elf32-cris.c:1320 elf32-cris.c:1668 elf32-cris.c:1821 elf32-tic6x.c:2545
+#, c-format
+msgid "%pB, section %pA: relocation %s with non-zero addend %<PRId64> against symbol `%s'"
+msgstr "%pB, avsnitt %pA: relokalisering %s med icke-noll addend %<PRId64> mot symbol `%s'"
-#: elf32-cris.c:1333
-msgid "%B, section %A: relocation %s is not allowed for global symbol: `%s'"
-msgstr "%B, sektion %A: omlokalisering %s tillÃ¥ts inte för global symbol: â€%sâ€"
+#: elf32-cris.c:1347
+#, c-format
+msgid "%pB, section %pA: relocation %s is not allowed for global symbol: `%s'"
+msgstr "%pB, avsnitt %pA: flyttningen %s är inte tillåten för den globala symbolen: `%s'"
-#: elf32-cris.c:1349
-msgid "%B, section %A: relocation %s with no GOT created"
-msgstr "%B, sektion %A: omlokalisering %s utan GOT skapades"
+#: elf32-cris.c:1364
+#, c-format
+msgid "%pB, section %pA: relocation %s with no GOT created"
+msgstr "%pB, avsnitt %pA: flyttning %s utan GOT skapad"
#. We shouldn't get here for GCC-emitted code.
-#: elf32-cris.c:1564
-msgid "%B, section %A: relocation %s has an undefined reference to `%s', perhaps a declaration mixup?"
-msgstr "%B, sektion %A: omlokalisering %s har en odefinierad referens till â€%sâ€, kanske en deklarationsblunder?"
+#: elf32-cris.c:1581
+#, c-format
+msgid "%pB, section %pA: relocation %s has an undefined reference to `%s', perhaps a declaration mixup?"
+msgstr "%pB, avsnitt %pA: relocation %s har en odefinierad referens till `%s', kanske en deklarationsförväxling?"
-#: elf32-cris.c:1937
-msgid "%B, section %A: relocation %s is not allowed for symbol: `%s' which is defined outside the program, perhaps a declaration mixup?"
-msgstr "%B, sektion %A: omlokalisering %s tillÃ¥ts inte för symbol: â€%s†som definieras utanför programmet, kanske en deklarationsblunder?"
+#: elf32-cris.c:1584
+#, c-format
+msgid "%pB, section %pA: relocation %s is not allowed for `%s', a global symbol with default visibility, perhaps a declaration mixup?"
+msgstr "%pB, avsnitt %pA: relocation %s är inte tillåtet för `%s', en global symbol med standardvisibilitet, kanske en deklarationsförväxling?"
+
+#: elf32-cris.c:1955
+#, c-format
+msgid "%pB, section %pA: relocation %s is not allowed for symbol: `%s' which is defined outside the program, perhaps a declaration mixup?"
+msgstr "%pB, avsnitt %pA: flyttningen %s är inte tillåten för symbolen: `%s' som är definierad utanför programmet, kanske en deklarationsförväxling?"
-#: elf32-cris.c:1990
+#: elf32-cris.c:2008
msgid "(too many global variables for -fpic: recompile with -fPIC)"
msgstr "(för många globala variabler för -fpic: kompilera om med -fPIC)"
-#: elf32-cris.c:1997
+#: elf32-cris.c:2015
msgid "(thread-local data too big for -fpic or -msmall-tls: recompile with -fPIC or -mno-small-tls)"
msgstr "(thread-local-data för stor för -fpic eller -msmall-tls: kompilera om med -fPIC eller -mno-small-tls)"
-#: elf32-cris.c:3234
-msgid ""
-"%B, section %A:\n"
-" v10/v32 compatible object %s must not contain a PIC relocation"
-msgstr ""
-"%B, sektion %A:\n"
-" v10/v32-kompatibelt objekt %s får inte innehålla en PIC-omlokalisering"
+#: elf32-cris.c:3048
+#, c-format
+msgid "%pB, section %pA: v10/v32 compatible object must not contain a PIC relocation"
+msgstr "%pB, avsnitt %pA: v10/v32-kompatibelt objekt får inte innehålla en PIC-omlokalisering"
-#: elf32-cris.c:3342
+#: elf32-cris.c:3102
+#, c-format
msgid ""
-"%B, section %A:\n"
+"%pB, section %pA:\n"
" relocation %s not valid in a shared object; typically an option mixup, recompile with -fPIC"
msgstr ""
-"%B, sektion %A:\n"
-" omlokalisering %s ogiltig i ett delat objekt; i regel en flaggmiss, kompilera om med -fPIC"
+"%pB, avsnitt %pA:\n"
+" relokalisering %s inte giltig i ett delat objekt; vanligtvis en förväxling av alternativ, kompilera om med -fPIC"
-#: elf32-cris.c:3556
-msgid ""
-"%B, section %A:\n"
-" relocation %s should not be used in a shared object; recompile with -fPIC"
-msgstr ""
-"%B, sektion %A:\n"
-" omlokalisering %s bör inte användas i ett delat objekt; kompilera om med -fPIC"
+#: elf32-cris.c:3320
+#, c-format
+msgid "%pB, section %pA: relocation %s should not be used in a shared object; recompile with -fPIC"
+msgstr "%pB, avsnitt %pA: relokalisering %s ska inte användas i ett delat objekt; kompilera om med -fPIC"
-#: elf32-cris.c:3978
-msgid ""
-"%B, section `%A', to symbol `%s':\n"
-" relocation %s should not be used in a shared object; recompile with -fPIC"
-msgstr ""
-"%B, sektion â€%Aâ€, till symbol â€%sâ€:\n"
-" omlokalisering %s bör inte användas i ett delat objekt; kompilera om med -fPIC"
+#: elf32-cris.c:3699
+#, c-format
+msgid "%pB, section `%pA', to symbol `%s': relocation %s should not be used in a shared object; recompile with -fPIC"
+msgstr "%pB, avsnitt `%pA', till symbol `%s': relokalisering %s ska inte användas i ett delat objekt; kompilera om med -fPIC"
-#: elf32-cris.c:4091
-msgid "Unexpected machine number"
-msgstr "Oväntat maskinnummer"
+#: elf32-cris.c:3811
+msgid "unexpected machine number"
+msgstr "oväntat maskinnummer"
-#: elf32-cris.c:4142
+#: elf32-cris.c:3863
#, c-format
msgid " [symbols have a _ prefix]"
msgstr " [symboler har ett _-prefix]"
-#: elf32-cris.c:4145
+#: elf32-cris.c:3866
#, c-format
msgid " [v10 and v32]"
msgstr " [v10 och v32]"
-#: elf32-cris.c:4148
+#: elf32-cris.c:3869
#, c-format
msgid " [v32]"
msgstr " [v32]"
-#: elf32-cris.c:4191
-msgid "%B: uses _-prefixed symbols, but writing file with non-prefixed symbols"
-msgstr "%B: använder symboler med _-prefix, men skriver en fil med symboler utan prefix"
+#: elf32-cris.c:3913
+#, c-format
+msgid "%pB: uses _-prefixed symbols, but writing file with non-prefixed symbols"
+msgstr "%pB: använder _-prefixerade symboler, men skriver fil med icke-prefixerade symboler"
+
+#: elf32-cris.c:3914
+#, c-format
+msgid "%pB: uses non-prefixed symbols, but writing file with _-prefixed symbols"
+msgstr "%pB: använder icke-prefixerade symboler, men skriver fil med _-prefixerade symboler"
+
+#: elf32-cris.c:3933
+#, c-format
+msgid "%pB contains CRIS v32 code, incompatible with previous objects"
+msgstr "%pB innehåller CRIS v32-kod, inkompatibel med tidigare objekt"
+
+#: elf32-cris.c:3935
+#, c-format
+msgid "%pB contains non-CRIS-v32 code, incompatible with previous objects"
+msgstr "%pB innehåller icke-CRIS-v32-kod, inkompatibel med tidigare objekt"
+
+#: elf32-csky.c:2016
+msgid "GOT table size out of range"
+msgstr "GOT tabellstorlek utanför intervallet"
-#: elf32-cris.c:4192
-msgid "%B: uses non-prefixed symbols, but writing file with _-prefixed symbols"
-msgstr "%B: använder symboler utan prefix, men skriver en fil med symboler med _-prefix"
+#: elf32-csky.c:2826
+#, c-format
+msgid "warning: unrecognized arch eflag '%#lx'"
+msgstr "varning: oigenkänd arch eflag '%#lx'"
+
+#: elf32-csky.c:2849
+#, c-format
+msgid "warning: unrecognised arch name '%#x'"
+msgstr "varning: okänt arknamn '%#x'"
+
+#: elf32-csky.c:2914 elf32-csky.c:3074
+#, c-format
+msgid "%pB: machine flag conflict with target"
+msgstr "%pB: maskinflaggkonflikt med mål"
+
+#: elf32-csky.c:2927
+#, c-format
+msgid "warning: file %pB's arch flag %s conflict with target %s,set target arch flag to %s"
+msgstr "varning: filen %pB:s arch-flagga %s står i konflikt med målet %s,sätt målets arch-flagga till %s"
-#: elf32-cris.c:4211
-msgid "%B contains CRIS v32 code, incompatible with previous objects"
-msgstr "%B innehåller CRIS v32-kod, inkompatibelt med föregående objekt"
+#: elf32-csky.c:2956
+#, c-format
+msgid "Error: %pB and %pB has different VDSP version"
+msgstr "Fel: %pB och %pB har olika VDSP-versioner"
+
+#: elf32-csky.c:2973
+#, c-format
+msgid "Error: %pB and %pB has different DSP version"
+msgstr "Fel: %pB och %pB har olika DSP-versioner"
+
+#: elf32-csky.c:2991
+#, c-format
+msgid "Error: %pB and %pB has different FPU ABI"
+msgstr "Fel: %pB och %pB har olika FPU ABI"
+
+#: elf32-csky.c:3088
+#, c-format
+msgid "warning: file %pB's arch flag %s conflicts with target ck%s, using %s"
+msgstr "varning: filen %pB:s arkflagga %s står i konflikt med målet ck%s, med %s"
-#: elf32-cris.c:4213
-msgid "%B contains non-CRIS-v32 code, incompatible with previous objects"
-msgstr "%B innehåller icke-CRIS v32-kod, inkompatibelt med föregående objekt"
+#. The r_type is error, not support it.
+#: elf32-csky.c:4327 elf32-i386.c:344
+#, c-format
+msgid "%pB: unsupported relocation type: %#x"
+msgstr "%pB: Omflyttningstyp som inte stöds: %#x"
-#: elf32-dlx.c:142
+#: elf32-dlx.c:141
#, c-format
-msgid "BFD Link Error: branch (PC rel16) to section (%s) not supported"
-msgstr "BFD-länkningsfel: gren (PC rel16) till sektion (%s) saknar stöd"
+msgid "branch (PC rel16) to section (%s) not supported"
+msgstr "gren (PC rel16) till sektion (%s) stöds inte"
#: elf32-dlx.c:204
#, c-format
-msgid "BFD Link Error: jump (PC rel26) to section (%s) not supported"
-msgstr "BFD-länkningsfel: hopp (PC rel26) till sektion (%s) saknar stöd"
+msgid "jump (PC rel26) to section (%s) not supported"
+msgstr "hopp (PC rel26) till avsnitt (%s) stöds inte"
#. Only if it's not an unresolved symbol.
-#: elf32-epiphany.c:564 elf32-ip2k.c:1475
+#: elf32-epiphany.c:570 elf32-ip2k.c:1485
msgid "unsupported relocation between data/insn address spaces"
msgstr "omlokalisering mellan data/-instruktionsadressutrymmen stöds inte"
-#: elf32-frv.c:1460 elf32-frv.c:1609
+#: elf32-frv.c:1452 elf32-frv.c:1603
msgid "relocation requires zero addend"
msgstr "omlokalisering kräver addend som är noll"
-#: elf32-frv.c:2822
+#: elf32-frv.c:2832
+#, c-format
msgid "%H: relocation to `%s+%v' may have caused the error above\n"
msgstr "%H: omlokalisering till â€%s+%v†kan ha orsakat felet ovan\n"
-#: elf32-frv.c:2839
+#: elf32-frv.c:2849
msgid "%H: relocation references symbol not defined in the module\n"
msgstr "%H: omlokalisering hänvisar till en symbol som inte definierats i modulen\n"
-#: elf32-frv.c:2915
+#: elf32-frv.c:2925
msgid "%H: R_FRV_GETTLSOFF not applied to a call instruction\n"
msgstr "%H: R_FRV_GETTLSOFF inte tillämpat på en anropsinstruktion\n"
-#: elf32-frv.c:2956
+#: elf32-frv.c:2966
msgid "%H: R_FRV_GOTTLSDESC12 not applied to an lddi instruction\n"
msgstr "%H: R_FRV_GOTTLSDESC12 inte tillämpad på en lddi-instruktion\n"
-#: elf32-frv.c:3027
+#: elf32-frv.c:3037
msgid "%H: R_FRV_GOTTLSDESCHI not applied to a sethi instruction\n"
msgstr "%H: R_FRV_GOTTLSDESCHI inte tillämpad på en sethi-instruktion\n"
-#: elf32-frv.c:3064
+#: elf32-frv.c:3074
msgid "%H: R_FRV_GOTTLSDESCLO not applied to a setlo or setlos instruction\n"
msgstr "%H: R_FRV_GOTTLSDESCLO inte tillämpad på en setlo- eller setlos-instruktion\n"
-#: elf32-frv.c:3111
+#: elf32-frv.c:3121
msgid "%H: R_FRV_TLSDESC_RELAX not applied to an ldd instruction\n"
msgstr "%H: R_FRV_TLSDESC_RELAX inte tillämpad på en ldd-instruktion\n"
-#: elf32-frv.c:3195
+#: elf32-frv.c:3205
msgid "%H: R_FRV_GETTLSOFF_RELAX not applied to a calll instruction\n"
msgstr "%H: R_FRV_GETTLSOFF_RELAX inte tillämpad på en calll-instruktion\n"
-#: elf32-frv.c:3249
+#: elf32-frv.c:3259
msgid "%H: R_FRV_GOTTLSOFF12 not applied to an ldi instruction\n"
msgstr "%H: R_FRV_GOTTLSOFF12 inte tillämpad på en ldi-instruktion\n"
-#: elf32-frv.c:3279
+#: elf32-frv.c:3289
msgid "%H: R_FRV_GOTTLSOFFHI not applied to a sethi instruction\n"
msgstr "%H: R_FRV_GOTTLSOFFHI inte tillämpad på en sethi-instruktion\n"
-#: elf32-frv.c:3308
+#: elf32-frv.c:3318
msgid "%H: R_FRV_GOTTLSOFFLO not applied to a setlo or setlos instruction\n"
msgstr "%H: R_FRV_GOTTLSOFFLO inte tillämpad på en setlo eller setlos instruktion\n"
-#: elf32-frv.c:3338
+#: elf32-frv.c:3348
msgid "%H: R_FRV_TLSOFF_RELAX not applied to an ld instruction\n"
msgstr "%H: R_FRV_TLSOFF_RELAX inte tillämpad på en ld-instruktion\n"
-#: elf32-frv.c:3383
+#: elf32-frv.c:3393
msgid "%H: R_FRV_TLSMOFFHI not applied to a sethi instruction\n"
msgstr "%H: R_FRV_TLSMOFFHI inte tillämpad på en sethi-instruktion\n"
-#: elf32-frv.c:3410
+#: elf32-frv.c:3420
msgid "R_FRV_TLSMOFFLO not applied to a setlo or setlos instruction\n"
msgstr "R_FRV_TLSMOFFLO inte tillämpad på en setlo eller setlos instruktion\n"
-#: elf32-frv.c:3531
-msgid "%H: R_FRV_FUNCDESC references dynamic symbol with nonzero addend\n"
-msgstr "%H: R_FRV_FUNCDESC-referenser dynamisk symbol på ett ickenoll addend\n"
+#: elf32-frv.c:3541 elf32-frv.c:3661
+msgid "%H: %s references dynamic symbol with nonzero addend\n"
+msgstr "%H: %s refererar till dynamisk symbol med addend som inte är noll\n"
-#: elf32-frv.c:3572 elf32-frv.c:3694
+#: elf32-frv.c:3582 elf32-frv.c:3703
msgid "%H: cannot emit fixups in read-only section\n"
msgstr "%H: kan inte sända ut fixar i skrivskyddade sektioner\n"
-#: elf32-frv.c:3603 elf32-frv.c:3737
+#: elf32-frv.c:3612 elf32-frv.c:3745
msgid "%H: cannot emit dynamic relocations in read-only section\n"
msgstr "%H: kan inte sända ut dynamiska omlokaliseringar i skrivskyddad sektion\n"
-#: elf32-frv.c:3652
-msgid "%H: R_FRV_FUNCDESC_VALUE references dynamic symbol with nonzero addend\n"
-msgstr "%H: R_FRV_FUNCDESC_VALUE hänvisar till dynamisk symbol med icke-noll addend\n"
-
-#: elf32-frv.c:3908
+#: elf32-frv.c:3917
+#, c-format
msgid "%H: reloc against `%s' references a different segment\n"
msgstr "%H: omlokalisering mot â€%s†hänvisar till ett annat segment\n"
-#: elf32-frv.c:4058
+#: elf32-frv.c:4068
+#, c-format
msgid "%H: reloc against `%s': %s\n"
msgstr "%H: omlokalisering mot â€%sâ€: %s\n"
-#: elf32-frv.c:6265
-msgid "%B: unsupported relocation type %i\n"
-msgstr "%B: omlokaliseringstyp stöds ej %i\n"
+#: elf32-frv.c:6496
+#, c-format
+msgid "%pB: compiled with %s and linked with modules that use non-pic relocations"
+msgstr "%pB: kompilerad med %s och länkad med moduler som använder icke-pic-omlokaliseringar"
-#: elf32-frv.c:6514
+#: elf32-frv.c:6550 elf32-iq2000.c:830 elf32-m32c.c:876
#, c-format
-msgid "%s: compiled with %s and linked with modules that use non-pic relocations"
-msgstr "%s: kompilerad med %s och länkad med moduler som använder icke-pic-omlokalisering"
+msgid "%pB: compiled with %s and linked with modules compiled with %s"
+msgstr "%pB: kompilerad med %s och länkad med moduler kompilerade med %s"
-#: elf32-frv.c:6567 elf32-iq2000.c:828 elf32-m32c.c:812
+#: elf32-frv.c:6563
#, c-format
-msgid "%s: compiled with %s and linked with modules compiled with %s"
-msgstr "%s: kompilerad med %s och länkad med moduler som kompilerats med %s"
+msgid "%pB: uses different unknown e_flags (%#x) fields than previous modules (%#x)"
+msgstr "%pB: använder andra okända e_flags-fält (%#x) än tidigare moduler (%#x)"
-#: elf32-frv.c:6579
+#: elf32-gen.c:71
#, c-format
-msgid "%s: uses different unknown e_flags (0x%lx) fields than previous modules (0x%lx)"
-msgstr "%s: använder andra okända e_flags-fält (0x%lx) än tidigare moduler (0x%lx)"
+msgid "%pB: relocations in generic ELF (EM: %d)"
+msgstr "%pB: omlokaliseringar i generisk ELF (EM: %d)"
-#: elf32-frv.c:6627 elf32-iq2000.c:865 elf32-m32c.c:848 elf32-mt.c:561
-#: elf32-rl78.c:1069 elf32-rx.c:3040 elf64-ppc.c:5839
+#: elf32-hppa.c:862 elf32-hppa.c:3402
#, c-format
-msgid "private flags = 0x%lx:"
-msgstr "privata flaggor = 0x%lx:"
+msgid "%pB(%pA+%#<PRIx64>): cannot reach %s, recompile with -ffunction-sections"
+msgstr "%pB(%pA+%#<PRIx64>): kan inte nå %s, kompilera om med -ffunction-sections"
-#: elf32-gen.c:69 elf64-gen.c:69
-msgid "%B: Relocations in generic ELF (EM: %d)"
-msgstr "%B: omlokaliseringar i vanlig ELF (EM: %d)"
+#: elf32-hppa.c:1240
+#, c-format
+msgid "%pB: relocation %s can not be used when making a shared object; recompile with -fPIC"
+msgstr "%pB: relokalisering %s kan inte användas när man skapar ett delat objekt; kompilera om med -fPIC"
-#: elf32-hppa.c:830 elf32-hppa.c:3592
-msgid "%B(%A+0x%lx): cannot reach %s, recompile with -ffunction-sections"
-msgstr "%B(%A+0x%lx): kan inte nå %s, kompilera om med -ffunction-sections"
+#: elf32-hppa.c:2579
+#, c-format
+msgid "%pB: duplicate export stub %s"
+msgstr "%pB: duplicerad exportstub %s"
-#: elf32-hppa.c:1268
-msgid "%B: relocation %s can not be used when making a shared object; recompile with -fPIC"
-msgstr "%B: omlokalisering %s kan inte användas vid skapande av ett delat objekt; kompilera om med -fPIC"
+#: elf32-hppa.c:3235
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): %s fixup for insn %#x is not supported in a non-shared link"
+msgstr "%pB(%pA+%#<PRIx64>): %s fixup för insn %#x stöds inte i en icke delad länk"
-#: elf32-hppa.c:2781
-msgid "%B: duplicate export stub %s"
-msgstr "%B: duplicera exportstubbe %s"
+#: elf32-hppa.c:3455
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): displacement %#x for insn %#x is not a multiple of 8 (gp %#x)"
+msgstr "%pB(%pA+%#<PRIx64>): förskjutning %#x för insn %#x är inte en multipel av 8 (gp %#x)"
-#: elf32-hppa.c:3427
-msgid "%B(%A+0x%lx): %s fixup for insn 0x%x is not supported in a non-shared link"
-msgstr "%B(%A+0x%lx): %s-fixup för insn 0x%x saknar stöd i en icke-delad länk"
+#: elf32-hppa.c:3474
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): displacement %#x for insn %#x is not a multiple of 4 (gp %#x)"
+msgstr "%pB(%pA+%#<PRIx64>): förskjutning %#x för insn %#x är inte en multipel av 4 (gp %#x)"
-#: elf32-hppa.c:4279
-msgid "%B(%A+0x%lx): cannot handle %s for %s"
-msgstr "%B(%A+0x%lx): kan inte hantera %s för %s"
+#: elf32-hppa.c:4089
+#, c-format
+msgid "%s has both normal and TLS relocs"
+msgstr "%s har både normala och TLS-flyttar"
-#: elf32-hppa.c:4598
+#: elf32-hppa.c:4107
+#, c-format
+msgid "%pB:%s has both normal and TLS relocs"
+msgstr "%pB:%s har både normala och TLS-flyttningar"
+
+#: elf32-hppa.c:4166
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): cannot handle %s for %s"
+msgstr "%pB(%pA+%#<PRIx64>): kan inte hantera %s för %s"
+
+#: elf32-hppa.c:4470
msgid ".got section not immediately after .plt section"
msgstr ".got-sektion följer inte omedelbart efter .plt-sektion"
-#. Unknown relocation.
-#: elf32-i386.c:380 elf32-m68k.c:353 elf32-ppc.c:2035 elf32-s390.c:345
-#: elf32-tic6x.c:2667 elf64-ppc.c:2427 elf64-s390.c:371 elf64-x86-64.c:281
-msgid "%B: invalid relocation type %d"
-msgstr "%B: ogiltig omlokaliseringstyp %d"
-
-#: elf32-i386.c:1394 elf64-x86-64.c:1410
-msgid "%B: TLS transition from %s to %s against `%s' at 0x%lx in section `%A' failed"
-msgstr "%B: TLS-övergÃ¥ng frÃ¥n %s till %s mot â€%s†vid 0x%lx i sektion â€%A†misslyckades"
-
-#: elf32-i386.c:1642 elf32-s390.c:1233 elf32-sh.c:6263 elf32-tilepro.c:1627
-#: elf32-xtensa.c:1176 elf64-s390.c:1166 elfxx-sparc.c:1596
-#: elfxx-tilegx.c:1836
-msgid "%B: `%s' accessed both as normal and thread local symbol"
-msgstr "%B: â€%s†åtkommen som bÃ¥de normal och trÃ¥dlokal symbol"
-
-#: elf32-i386.c:2500 elf64-x86-64.c:2582
-msgid "%P: %B: warning: relocation against `%s' in readonly section `%A'.\n"
-msgstr "%P: %B: varning: omlokalisering mot â€%s†i skrivskyddad sektion â€%Aâ€.\n"
-
-#: elf32-i386.c:2740 elf64-x86-64.c:2820
-msgid "%P: %B: warning: relocation in readonly section `%A'.\n"
-msgstr "%P: %B: varning: omlokalisering i skrivskyddad sektion â€%Aâ€.\n"
-
-#: elf32-i386.c:3207 elf32-tilepro.c:2873 elf64-x86-64.c:3275
-#: elfxx-tilegx.c:3172 /src/binutils-gdb/bfd/elfnn-aarch64.c:4099
-msgid "%B: unrecognized relocation (0x%x) in section `%A'"
-msgstr "%B: okänd omlokalisering (0x%x) i sektion â€%Aâ€"
-
-#: elf32-i386.c:3368 elf64-x86-64.c:3380 elfxx-sparc.c:3150
-#: /src/binutils-gdb/bfd/elfnn-aarch64.c:3496
-msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s"
-msgstr "%B: omlokalisering %s mot STT_GNU_IFUNC-symbolen â€%s†hanteras inte av %s"
-
-#: elf32-i386.c:3610 elf64-x86-64.c:3777
+#: elf32-i386.c:1296
+#, c-format
+msgid "%pB: direct GOT relocation R_386_GOT32X against `%s' without base register can not be used when making a shared object"
+msgstr "%pB: direkt GOT-omflyttning R_386_GOT32X mot `%s' utan basregister kan inte användas när man skapar ett delat objekt"
+
+#: elf32-i386.c:1729 elf32-s390.c:1149 elf32-sh.c:5498 elf32-tilepro.c:1546
+#: elf32-xtensa.c:1261 elf64-s390.c:1081 elfxx-sparc.c:1555 elfxx-tilegx.c:1766
+#: elfnn-loongarch.c:741 elfnn-riscv.c:673
+#, c-format
+msgid "%pB: `%s' accessed both as normal and thread local symbol"
+msgstr "%pB: `%s' nås både som normal och som trådlokal symbol"
+
+#: elf32-i386.c:1801
+#, c-format
+msgid "%pB: unsupported non-PIC call to IFUNC `%s'"
+msgstr "%pB: icke-stöttat icke-PIC-anrop till IFUNC `%s'"
+
+#: elf32-i386.c:1856 elf64-x86-64.c:2567
+#, c-format
+msgid "%pB: non-canonical reference to canonical protected function `%s' in %pB"
+msgstr "%pB: icke-kanonisk referens till kanonisk skyddad funktion `%s' i %pB"
+
+#: elf32-i386.c:2419 elf64-x86-64.c:3050 elfnn-riscv.c:2544
+#, c-format
+msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported"
+msgstr "%pB: relokering %s mot STT_GNU_IFUNC-symbolen `%s' stöds inte"
+
+#: elf32-i386.c:2452 elf32-i386.c:3752 elf32-i386.c:3900 elf64-x86-64.c:3107
+#: elf64-x86-64.c:4790 elf64-x86-64.c:4958 elfnn-riscv.c:2406
+#: elfnn-riscv.c:3318 elfnn-riscv.c:3392
+#, c-format
+msgid "Local IFUNC function `%s' in %pB\n"
+msgstr "Lokal IFUNC-funktion `%s' i %pB\n"
+
+#: elf32-i386.c:2630
+#, c-format
+msgid "%pB: direct GOT relocation %s against `%s' without base register can not be used when making a shared object"
+msgstr "%pB: direkt GOT-omflyttning %s mot `%s' utan basregister kan inte användas när man skapar ett delat objekt"
+
+#: elf32-i386.c:2665 elf64-x86-64.c:3324
msgid "hidden symbol"
msgstr "dold symbol"
-#: elf32-i386.c:3613 elf64-x86-64.c:3780
+#: elf32-i386.c:2668 elf64-x86-64.c:3327
msgid "internal symbol"
msgstr "intern symbol"
-#: elf32-i386.c:3616 elf64-x86-64.c:3783
+#: elf32-i386.c:2671 elf64-x86-64.c:3330
msgid "protected symbol"
msgstr "skyddad symbol"
-#: elf32-i386.c:3619 elf64-x86-64.c:3786
+#: elf32-i386.c:2674 elf64-x86-64.c:3333
msgid "symbol"
msgstr "symbol"
-#: elf32-i386.c:3624
-msgid "%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object"
-msgstr "%B: omlokalisering R_386_GOTOFF mot odefinierad %s â€%s†kan inte användas när ett delat objekt skapas"
-
-#: elf32-i386.c:3635
-msgid "%B: relocation R_386_GOTOFF against protected function `%s' can not be used when making a shared object"
-msgstr "%B: omlokalisering R_386_GOTOFF mot skyddad funktion â€%s†kan inte användas när ett delat objekt skapas"
+#: elf32-i386.c:2680
+#, c-format
+msgid "%pB: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object"
+msgstr "%pB: omlokalisering R_386_GOTOFF mot odefinierade %s `%s' kan inte användas när man skapar ett delat objekt"
-#: elf32-i386.c:4923 elf32-tilepro.c:3923 elf64-x86-64.c:4964
-#: elfxx-tilegx.c:4326 /src/binutils-gdb/bfd/elfnn-aarch64.c:7105
+#: elf32-i386.c:2693
#, c-format
-msgid "discarded output section: `%A'"
-msgstr "kastade utdata-sektion: â€%Aâ€"
+msgid "%pB: relocation R_386_GOTOFF against protected %s `%s' can not be used when making a shared object"
+msgstr "%pB: omlokalisering R_386_GOTOFF mot skyddade %s `%s' kan inte användas när man skapar ett delat objekt"
-#: elf32-ip2k.c:857 elf32-ip2k.c:863 elf32-ip2k.c:930 elf32-ip2k.c:936
+#: elf32-i386.c:4103 elf64-x86-64.c:5169
+msgid "%F%P: discarded output section: `%pA'\n"
+msgstr "%F%P: kasserad utdatasektion: `%pA'\n"
+
+#: elf32-ip2k.c:855 elf32-ip2k.c:861 elf32-ip2k.c:928 elf32-ip2k.c:934
msgid "ip2k relaxer: switch table without complete matching relocation information."
msgstr "ip2k-relaxer: switchtabell utan helt matchande omlokaliseringsinformation."
-#: elf32-ip2k.c:880 elf32-ip2k.c:963
+#: elf32-ip2k.c:878 elf32-ip2k.c:961
msgid "ip2k relaxer: switch table header corrupt."
msgstr "ip2k-relaxer: switch-tabellshuvud trasigt."
-#: elf32-ip2k.c:1292
-#, c-format
-msgid "ip2k linker: missing page instruction at 0x%08lx (dest = 0x%08lx)."
-msgstr "ip2k-länkare: sidinstruktion saknas vid 0x%08lx (dest = 0x%08lx)."
-
-#: elf32-ip2k.c:1308
+#: elf32-ip2k.c:1298
#, c-format
-msgid "ip2k linker: redundant page instruction at 0x%08lx (dest = 0x%08lx)."
-msgstr "ip2k-länkare: överflödig sidinstruktion vid 0x%08lx (dest = 0x%08lx)."
+msgid "ip2k linker: missing page instruction at %#<PRIx64> (dest = %#<PRIx64>)"
+msgstr "ip2k-länkaren: sidinstruktionen saknas vid %#<PRIx64> (dest = %#<PRIx64>)"
-#: elf32-iq2000.c:841 elf32-m32c.c:824
+#: elf32-ip2k.c:1317
#, c-format
-msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
-msgstr "%s: använder andra e_flags-fält (0x%lx) än tidigare moduler (0x%lx)"
+msgid "ip2k linker: redundant page instruction at %#<PRIx64> (dest = %#<PRIx64>)"
+msgstr "ip2k-kopplaren: överflödig sidinstruktion vid %#<PRIx64> (dest = %#<PRIx64>)"
-#: elf32-lm32.c:698 elf32-nios2.c:2191
+#: elf32-lm32.c:608
msgid "global pointer relative relocation when _gp not defined"
msgstr "global pekarrelativ omlokalisering när _gp inte definierades"
-#: elf32-lm32.c:753 elf32-nios2.c:2623
+#: elf32-lm32.c:663
msgid "global pointer relative address out of range"
msgstr "global pekarrelativ adress utanför intervall"
-#: elf32-lm32.c:1049
-msgid "internal error: addend should be zero for R_LM32_16_GOT"
-msgstr "internt fel: addend bör vara noll för R_LM32_16_GOT"
+#: elf32-lm32.c:959
+#, c-format
+msgid "internal error: addend should be zero for %s"
+msgstr "internt fel: addendumet ska vara noll för %s"
-#: elf32-m32r.c:1453
+#: elf32-m32r.c:1461
msgid "SDA relocation when _SDA_BASE_ not defined"
msgstr "SDA-omlokalisering då _SDA_BASE_ inte är definierat"
-#: elf32-m32r.c:3003
-msgid "%B: The target (%s) of an %s relocation is in the wrong section (%A)"
-msgstr "%B: Destinationen (%s) för en %s-omlokalisering är i fel sektion (%A)"
+#: elf32-m32r.c:2776 elf32-microblaze.c:1147 elf32-microblaze.c:1195
+#, c-format
+msgid "%pB: the target (%s) of an %s relocation is in the wrong section (%pA)"
+msgstr "%pB: målet (%s) för en %s-flyttning är i fel avsnitt (%pA)"
-#: elf32-m32r.c:3529
-msgid "%B: Instruction set mismatch with previous modules"
-msgstr "%B: Instruktionsuppsättningen stämmer inte överens med föregående moduler"
+#: elf32-m32r.c:3277
+#, c-format
+msgid "%pB: instruction set mismatch with previous modules"
+msgstr "%pB: instruktionsuppsättningen stämmer inte överens med tidigare moduler"
-#: elf32-m32r.c:3550 elf32-nds32.c:5636
+#: elf32-m32r.c:3298 elf32-nds32.c:6899
#, c-format
msgid "private flags = %lx"
msgstr "privata flaggor = %lx"
-#: elf32-m32r.c:3555
+#: elf32-m32r.c:3303
#, c-format
msgid ": m32r instructions"
msgstr ": m32r-instruktioner"
-#: elf32-m32r.c:3556
+#: elf32-m32r.c:3304
#, c-format
msgid ": m32rx instructions"
msgstr ": m32rx-instruktioner"
-#: elf32-m32r.c:3557
+#: elf32-m32r.c:3305
#, c-format
msgid ": m32r2 instructions"
msgstr ": m32r2-instruktioner"
-#: elf32-m68hc1x.c:1114
+#: elf32-m68hc1x.c:1134
#, c-format
-msgid "Reference to the far symbol `%s' using a wrong relocation may result in incorrect execution"
-msgstr "Referens till den avlägsna symbolen â€%s†med hjälp av en felaktig omlokalisering kan resultera i felaktig exekvering"
+msgid "reference to the far symbol `%s' using a wrong relocation may result in incorrect execution"
+msgstr "referens till far-symbolen `%s' med fel relokalisering kan leda till felaktigt utförande"
-#: elf32-m68hc1x.c:1150
+#: elf32-m68hc1x.c:1165
#, c-format
msgid "XGATE address (%lx) is not within shared RAM(0xE000-0xFFFF), therefore you must manually offset the address, and possibly manage the page, in your code."
msgstr "XGATE-adress (%lx) är inte inom delat RAM(0xE000-0xFFFF), därför måste du manuellt förskjuta adressen och möjligtvis hantera sidan i din kod."
-#: elf32-m68hc1x.c:1170
+#: elf32-m68hc1x.c:1181
#, c-format
msgid "banked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)"
msgstr "bankad adress [%lx:%04lx] (%lx) är inte i samma bank som den aktuella bankade adressen [%lx:%04lx] (%lx)"
-#: elf32-m68hc1x.c:1190
+#: elf32-m68hc1x.c:1196
#, c-format
msgid "reference to a banked address [%lx:%04lx] in the normal address space at %04lx"
msgstr "referens till en banked-adress [%lx:%04lx] i det normala adressutrymmet vid %04lx"
-#: elf32-m68hc1x.c:1237
+#: elf32-m68hc1x.c:1232
#, c-format
msgid "S12 address (%lx) is not within shared RAM(0x2000-0x4000), therefore you must manually offset the address in your code"
msgstr "S12-adress (%lx) är inte inom delat RAM(0x2000-0x4000), därför måste du manuellt förskjuta adressen i din kod"
-#: elf32-m68hc1x.c:1370
-msgid "%B: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers"
-msgstr "%B: länkar filer kompilerade för 16-bitars heltal (-mshort) och andra för 32-bitars heltal"
-
-#: elf32-m68hc1x.c:1377
-msgid "%B: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double"
-msgstr "%B: länkar filer kompilerade för 32-bitars dubbelprecision (-fshort-double) och andra för 64-bitars dubbelprecision"
+#: elf32-m68hc1x.c:1356
+#, c-format
+msgid "%pB: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers"
+msgstr "%pB: länkning av filer som kompilerats för 16-bitars heltal (-mshort) och andra för 32-bitars heltal"
-#: elf32-m68hc1x.c:1386
-msgid "%B: linking files compiled for HCS12 with others compiled for HC12"
-msgstr "%B: länkar filer kompilerade för HCS12 med andra kompilerade för HC12"
+#: elf32-m68hc1x.c:1363
+#, c-format
+msgid "%pB: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double"
+msgstr "%pB: länkning av filer som kompilerats för 32-bitars dubbel (-fshort-double) och andra för 64-bitars dubbel"
-#: elf32-m68hc1x.c:1402 elf32-ppc.c:4776 elf64-sparc.c:706 elfxx-mips.c:14817
-msgid "%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
-msgstr "%B: använder andra e_flags-fält (0x%lx) än föregående moduler (0x%lx)"
+#: elf32-m68hc1x.c:1372
+#, c-format
+msgid "%pB: linking files compiled for HCS12 with others compiled for HC12"
+msgstr "%pB: länka filer som kompilerats för HCS12 med andra som kompilerats för HC12"
-#: elf32-m68hc1x.c:1430 elf32-xgate.c:677
+#: elf32-m68hc1x.c:1417 elf32-xgate.c:497
#, c-format
msgid "[abi=32-bit int, "
msgstr "[abi=32-bitars heltal, "
-#: elf32-m68hc1x.c:1432 elf32-xgate.c:679
+#: elf32-m68hc1x.c:1419 elf32-xgate.c:499
#, c-format
msgid "[abi=16-bit int, "
msgstr "[abi=16-bitars heltal, "
-#: elf32-m68hc1x.c:1435 elf32-xgate.c:682
+#: elf32-m68hc1x.c:1422 elf32-xgate.c:502
#, c-format
msgid "64-bit double, "
msgstr "64-bitars dubbelprecisionsflyttal, "
-#: elf32-m68hc1x.c:1437 elf32-xgate.c:684
+#: elf32-m68hc1x.c:1424 elf32-xgate.c:504
#, c-format
msgid "32-bit double, "
msgstr "32-bitars dubbelprecisionsflyttal, "
-#: elf32-m68hc1x.c:1440
+#: elf32-m68hc1x.c:1427
#, c-format
msgid "cpu=HC11]"
msgstr "cpu=HC11]"
-#: elf32-m68hc1x.c:1442
+#: elf32-m68hc1x.c:1429
#, c-format
msgid "cpu=HCS12]"
msgstr "cpu=HCS12]"
-#: elf32-m68hc1x.c:1444
+#: elf32-m68hc1x.c:1431
#, c-format
msgid "cpu=HC12]"
msgstr "cpu=HC12]"
-#: elf32-m68hc1x.c:1447
+#: elf32-m68hc1x.c:1434
#, c-format
msgid " [memory=bank-model]"
msgstr " [minne=bank-modell]"
-#: elf32-m68hc1x.c:1449
+#: elf32-m68hc1x.c:1436
#, c-format
msgid " [memory=flat]"
msgstr " [minne=platt]"
-#: elf32-m68hc1x.c:1452
+#: elf32-m68hc1x.c:1439
#, c-format
msgid " [XGATE RAM offsetting]"
msgstr " [XGATE RAM-förskjutning]"
-#: elf32-m68k.c:1210 elf32-m68k.c:1211 vms-alpha.c:7207 vms-alpha.c:7222
+#: elf32-m68k.c:1156 elf32-m68k.c:1164 elf32-ppc.c:3570 elf32-ppc.c:3578
+#, c-format
+msgid "%pB uses hard float, %pB uses soft float"
+msgstr "%pB använder hårdvaruflyttal, %pB använder soft float"
+
+#: elf32-m68k.c:1279 elf32-m68k.c:1280 vms-alpha.c:8089 vms-alpha.c:8105
msgid "unknown"
msgstr "okänd"
-#: elf32-m68k.c:1674
-msgid "%B: GOT overflow: Number of relocations with 8-bit offset > %d"
-msgstr "%B: GOT överbelastades: Antal omlokaliseringar med 8-bitars förskjutning > %d"
-
-#: elf32-m68k.c:1680
-msgid "%B: GOT overflow: Number of relocations with 8- or 16-bit offset > %d"
-msgstr "%B: GOT överbelastades: Antal omlokaliseringar med 8- eller 16-bitars förskjutning > %d"
-
-#: elf32-m68k.c:3921
-msgid "%B(%A+0x%lx): R_68K_TLS_LE32 relocation not permitted in shared object"
-msgstr "%B(%A+0x%lx): omlokalisering R_68K_TLS_LE32 tillåts inte i ett delat objekt"
-
-#: elf32-mcore.c:99 elf32-mcore.c:442
-msgid "%B: Relocation %s (%d) is not currently supported.\n"
-msgstr "%B: omlokalisering %s (%d) saknar för närvarande stöd.\n"
+#: elf32-m68k.c:1730
+#, c-format
+msgid "%pB: GOT overflow: number of relocations with 8-bit offset > %d"
+msgstr "%pB: GOT-överflöd: antal omlokaliseringar med 8-bitars offset > %d"
-#: elf32-mcore.c:428
-msgid "%B: Unknown relocation type %d\n"
-msgstr "%B: Okänd omlokaliseringstyp %d\n"
+#: elf32-m68k.c:1737
+#, c-format
+msgid "%pB: GOT overflow: number of relocations with 8- or 16-bit offset > %d"
+msgstr "%pB: GOT-överskridning: antal omlokaliseringar med 8- eller 16-bitars offset > %d"
#. Pacify gcc -Wall.
-#: elf32-mep.c:157
+#: elf32-mep.c:139
#, c-format
msgid "mep: no reloc for code %d"
msgstr "mep: ingen omlokalisering för kod %d"
-#: elf32-mep.c:163
+#: elf32-mep.c:146
#, c-format
msgid "MeP: howto %d has type %d"
msgstr "MeP: howto %d har typen %d"
-#: elf32-mep.c:632
-msgid "%B and %B are for different cores"
-msgstr "%B och %B är för olika kärnor"
+#: elf32-mep.c:618
+#, c-format
+msgid "%pB and %pB are for different cores"
+msgstr "%pB och %pB är för olika kärnor"
-#: elf32-mep.c:649
-msgid "%B and %B are for different configurations"
-msgstr "%B och %B är för olika konfigurationer"
+#: elf32-mep.c:637
+#, c-format
+msgid "%pB and %pB are for different configurations"
+msgstr "%pB och %pB är för olika konfigurationer"
-#: elf32-mep.c:686
+#: elf32-mep.c:675
#, c-format
msgid "private flags = 0x%lx"
msgstr "privata flaggor = 0x%lx"
-#: elf32-metag.c:1921
-msgid "%B(%A+0x%lx): R_METAG_TLS_LE/IENONPIC relocation not permitted in shared object"
-msgstr "%B(%A+0x%lx): R_METAG_TLS_LE/IENONPIC-omlokalisering inte tillåtet i delat objekt"
-
-#: elf32-microblaze.c:950
+#: elf32-metag.c:1856
#, c-format
-msgid "%s: unknown relocation type %d"
-msgstr "%s: okänd omlokaliseringstyp %d"
+msgid "%pB(%pA): multiple TLS models are not supported"
+msgstr "%pB(%pA): flera TLS-modeller stöds inte"
-#: elf32-microblaze.c:1076 elf32-microblaze.c:1121
+#: elf32-metag.c:1859
#, c-format
-msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)"
-msgstr "%s: Målet (%s) för en %s-omlokalisering är i fel sektion (%s)"
+msgid "%pB(%pA): shared library symbol %s encountered whilst performing a static link"
+msgstr "%pB(%pA): symbolen %s för delat bibliotek påträffades när en statisk länk utfördes"
-#: elf32-microblaze.c:1484 elf32-tilepro.c:3320 elfxx-sparc.c:3526
-#: elfxx-tilegx.c:3729
-msgid "%B: probably compiled without -fPIC?"
-msgstr "%B: antagligen kompilerad utan -fPIC?"
+#: elf32-microblaze.c:1590 elf32-tilepro.c:3018 elfxx-sparc.c:3442
+#: elfxx-tilegx.c:3415
+#, c-format
+msgid "%pB: probably compiled without -fPIC?"
+msgstr "%pB: förmodligen kompilerad utan -fPIC?"
-#: elf32-mips.c:1670 elf64-mips.c:2990 elfn32-mips.c:2793
+#: elf32-mips.c:1776 elf64-mips.c:3515 elfn32-mips.c:3334
msgid "literal relocation occurs for an external symbol"
msgstr "bokstavstrogen omlokalisering utförs för en extern symbol"
-#: elf32-mips.c:1717 elf32-score.c:570 elf32-score7.c:469 elf64-mips.c:3033
-#: elfn32-mips.c:2834
+#: elf32-mips.c:1827 elf32-score.c:563 elf32-score7.c:465 elf64-mips.c:3558
+#: elfn32-mips.c:3376
msgid "32bits gp relative relocation occurs for an external symbol"
msgstr "32-bitars gp-relativ omlokalisering förekom för en extern symbol"
-#: elf32-msp430.c:801 elf32-msp430.c:1109
-msgid "Try enabling relaxation to avoid relocation truncations"
-msgstr "Försökte aktivera relax för att undvika omlokaliseringstrunkeringar"
+#: elf32-msp430.c:914
+#, c-format
+msgid "error: final size of uleb128 value at offset 0x%lx in %pA from %pB exceeds available space"
+msgstr "fel: den slutliga storleken på uleb128-värdet vid offset 0x%lx i %pA från %pB överskrider tillgängligt utrymme"
+
+#: elf32-msp430.c:983 elf32-msp430.c:1297
+msgid "try enabling relaxation to avoid relocation truncations"
+msgstr "försök att aktivera relaxation för att undvika flyttavkortningar"
-#: elf32-msp430.c:1317
+#: elf32-msp430.c:1506
msgid "internal error: branch/jump to an odd address detected"
msgstr "interna fel: grena/hoppa till en udda upptäckt adress"
-#: elf32-msp430.c:2221
-msgid "Warning: %B: Unknown MSPABI object attribute %d"
-msgstr "Varning: %B: Okänt MSPABI-objektattribut %d"
+#: elf32-msp430.c:2673
+#, c-format
+msgid "warning: %pB: unknown MSPABI object attribute %d"
+msgstr "warning: %pB: okänt MSPABI-objektattribut %d"
-#: elf32-msp430.c:2312
-msgid "error: %B uses %s instructions but %B uses %s"
-msgstr "fel: %B använder %s-instruktioner men %B använder %s"
+#: elf32-msp430.c:2774
+#, c-format
+msgid "error: %pB uses %s instructions but %pB uses %s"
+msgstr "fel: %pB använder %s instruktioner men %pB använder %s"
-#: elf32-msp430.c:2324
-msgid "error: %B uses the %s code model whereas %B uses the %s code model"
-msgstr "fel: %B använder %s-kodmodell men %B använder %s-kodmodell"
+#: elf32-msp430.c:2786
+#, c-format
+msgid "error: %pB uses the %s code model whereas %pB uses the %s code model"
+msgstr "fel: %pB använder kodmodellen %s medan %pB använder kodmodellen %s"
-#: elf32-msp430.c:2336
-msgid "error: %B uses the large code model but %B uses MSP430 instructions"
-msgstr "fel: %B använder den stora kodmodellen men %B använder MSP430-instruktioner"
+#: elf32-msp430.c:2799
+#, c-format
+msgid "error: %pB uses the large code model but %pB uses MSP430 instructions"
+msgstr "fel: %pB använder den stora kodmodellen men %pB använder MSP430-instruktioner"
-#: elf32-msp430.c:2346
-msgid "error: %B uses the %s data model whereas %B uses the %s data model"
-msgstr "fel: %B använder %s-datamodellen men %B använder %s-datamodellen"
+#: elf32-msp430.c:2810
+#, c-format
+msgid "error: %pB uses the %s data model whereas %pB uses the %s data model"
+msgstr "fel: %pB använder datamodellen %s medan %pB använder datamodellen %s"
-#: elf32-msp430.c:2358
-msgid "error: %B uses the small code model but %B uses the %s data model"
-msgstr "fel: %B använder den mindre kodmodellen men %B använder %s-datamodellen"
+#: elf32-msp430.c:2823
+#, c-format
+msgid "error: %pB uses the small code model but %pB uses the %s data model"
+msgstr "fel: %pB använder den lilla kodmodellen men %pB använder datamodellen %s"
-#: elf32-msp430.c:2369
-msgid "error: %B uses the %s data model but %B only uses MSP430 instructions"
-msgstr "fel: %B använder %s-datamodellen men %B använder MSP430-instruktioner"
+#: elf32-msp430.c:2835
+#, c-format
+msgid "error: %pB uses the %s data model but %pB only uses MSP430 instructions"
+msgstr "fel: %pB använder datamodellen %s men %pB använder bara MSP430-instruktioner"
-#: elf32-nds32.c:2921
-msgid "error: Can't find symbol: _SDA_BASE_."
-msgstr "fel: kan inte hitta symbol: _SDA_BASE_."
+#: elf32-msp430.c:2860
+#, c-format
+msgid "error: %pB can use the upper region for data, but %pB assumes data is exclusively in lower memory"
+msgstr "fel: %pB kan använda den övre regionen för data, men %pB antar att data endast finns i det nedre minnet"
-#: elf32-nds32.c:4142
-msgid "%B: error: unknown relocation type %d."
-msgstr "%B-fel: okänd omlokaliseringstyp %d."
+#: elf32-nds32.c:3673
+#, c-format
+msgid "error: can't find symbol: %s"
+msgstr "fel: kan inte hitta symbolen: %s"
-#: elf32-nds32.c:4584
+#: elf32-nds32.c:5572
#, c-format
-msgid "%s: warning: cannot deal R_NDS32_25_ABS_RELA in shared mode."
-msgstr "%s: varning: kan inte hantera R_NDS32_25_ABS_RELA i delat läge."
+msgid "%pB: warning: %s unsupported in shared mode"
+msgstr "%pB: varning: %s stöds inte i delat läge"
-#: elf32-nds32.c:4716
-msgid "%B: warning: unaligned access to GOT entry."
-msgstr "%B: varning: ojusterad åtkomst till GOT-post."
+#: elf32-nds32.c:5698
+#, c-format
+msgid "%pB: warning: unaligned access to GOT entry"
+msgstr "%pB: varning: ojusterad åtkomst till GOT-post"
-#: elf32-nds32.c:4758
-msgid "%B: warning: relocate SDA_BASE failed."
-msgstr "%B: varning: omlokalisering av SDA_BASE-misslyckades."
+#: elf32-nds32.c:5739
+#, c-format
+msgid "%pB: warning: relocate SDA_BASE failed"
+msgstr "%pB: varning: flytt av SDA_BASE misslyckades"
-#: elf32-nds32.c:4779
-msgid "%B(%A): warning: unaligned small data access of type %d."
-msgstr "%B(%A): varning: ojusterad mindre dataåtkomst för typen %d."
+#: elf32-nds32.c:5761
+#, c-format
+msgid "%pB(%pA): warning: unaligned small data access of type %d"
+msgstr "%pB(%pA): varning: ojusterad liten dataåtkomst av typen %d"
-#: elf32-nds32.c:5446
-msgid "%B: ISR vector size mismatch with previous modules, previous %u-byte, current %u-byte"
-msgstr "%B: ISR-vektorstorlek stämmer inte överens med tidigare moduler, föregående %u-byte, aktuell %u-byte"
+#: elf32-nds32.c:6687
+#, c-format
+msgid "%pB: ISR vector size mismatch with previous modules, previous %u-byte, current %u-byte"
+msgstr "%pB: ISR-vektorns storlek stämmer inte överens med tidigare moduler, tidigare %u-byte, aktuell %u-byte"
-#: elf32-nds32.c:5489
-msgid "%B: warning: Endian mismatch with previous modules."
-msgstr "%B: varning: byteordning stämmer inte med tidigare moduler."
+#: elf32-nds32.c:6735
+#, c-format
+msgid "%pB: warning: endian mismatch with previous modules"
+msgstr "%pB: varning: endian-missmatchning med tidigare moduler"
-#: elf32-nds32.c:5499
-msgid "%B: warning: Older version of object file encountered, Please recompile with current tool chain."
-msgstr "%B: varning: Äldre versioner av objektfiler påträffat. Kompilera om med aktuell verktygskedja."
+#: elf32-nds32.c:6749
+#, c-format
+msgid "%pB: warning: older version of object file encountered, please recompile with current tool chain"
+msgstr "%pB: varning: äldre version av objektfil påträffad, kompilera om med aktuell verktygskedja"
-#: elf32-nds32.c:5577
-msgid "%B: error: ABI mismatch with previous modules."
-msgstr "%B: fel: ABI-mismatch med tidigare moduler."
+#: elf32-nds32.c:6837
+#, c-format
+msgid "%pB: error: ABI mismatch with previous modules"
+msgstr "%pB: fel: ABI-missmatchning med tidigare moduler"
-#: elf32-nds32.c:5588
-msgid "%B: error: Instruction set mismatch with previous modules."
-msgstr "%B: fel: Instruktionsuppsättning stämmer inte med tidigare moduler."
+#: elf32-nds32.c:6847
+#, c-format
+msgid "%pB: error: instruction set mismatch with previous modules"
+msgstr "%pB: fel: instruktionsuppsättningen stämmer inte överens med tidigare moduler"
-#: elf32-nds32.c:5612
-msgid "%B: warning: Incompatible elf-versions %s and %s."
-msgstr "%B: varning: Inkompatibla elf-versioner %s och %s."
+#: elf32-nds32.c:6874
+#, c-format
+msgid "%pB: warning: incompatible elf-versions %s and %s"
+msgstr "%pB: varning: inkompatibla elf-versioner %s och %s"
-#: elf32-nds32.c:5642
+#: elf32-nds32.c:6905
#, c-format
msgid ": n1 instructions"
msgstr ": n1-instruktioner"
-#: elf32-nds32.c:5645
+#: elf32-nds32.c:6908
#, c-format
msgid ": n1h instructions"
msgstr ": n1h-instruktioner"
-#: elf32-nds32.c:8147
-msgid "%B: %s\n"
-msgstr "%B: %s\n"
+#: elf32-nds32.c:9357
+#, c-format
+msgid "%pB: error: search_nds32_elf_blank reports wrong node"
+msgstr "%pB: fel: search_nds32_elf_blank rapporterar fel nod"
-#: elf32-nds32.c:8449
-msgid "%B(%A): warning: relax is suppressed for sections of alignment %d-bytes > 4-byte."
-msgstr "%B(%A): varning: relax är undertryckt för sektioner med justering %d-byte > 4-byte."
+#: elf32-nds32.c:9621
+#, c-format
+msgid "%pB: warning: %s points to unrecognized reloc at %#<PRIx64>"
+msgstr "%pB: varning: %s pekar på en oigenkänd reloc på %#<PRIx64>"
-#: elf32-nds32.c:8502
-msgid "%B: error: Cannot set _ITB_BASE_"
-msgstr "%B: fel: Kan inte sätta _ITB_BASE_"
+#: elf32-nds32.c:12886
+#, c-format
+msgid "%pB: nested OMIT_FP in %pA"
+msgstr "%pB: nästlad OMIT_FP i %pA"
-#: elf32-nds32.c:11384
-msgid "%B: Nested OMIT_FP in %A."
-msgstr "%B: Nästlade OMIT_FP i %A."
+#: elf32-nds32.c:12905
+#, c-format
+msgid "%pB: unmatched OMIT_FP in %pA"
+msgstr "%pB: omatchad OMIT_FP i %pA"
-#: elf32-nds32.c:11401
-msgid "%B: Unmatched OMIT_FP in %A."
-msgstr "%B: Omatchade OMIT_FP i %A."
+#: elf32-or1k.c:1256
+#, c-format
+msgid "%pB: Cannot handle relocation value size of %d"
+msgstr "%pB: Det går inte att hantera storleken %d på omlokaliseringsvärdet"
-#: elf32-nds32.c:13357
-msgid "Linker: cannot init ex9 hash table error \n"
-msgstr "Länkare: kan inte initiera ex9-hashtabellfel \n"
+#: elf32-or1k.c:1375
+#, c-format
+msgid "%pB: unknown relocation type %d"
+msgstr "%pB: okänd förflyttningstyp %d"
-#: elf32-nds32.c:13790 elf32-nds32.c:13804
-msgid "Linker: error cannot fixed ex9 relocation \n"
-msgstr "Länkare: kan inte fixa ex9-omlokalisering \n"
+#: elf32-or1k.c:1429
+#, c-format
+msgid "%pB: addend should be zero for plt relocations"
+msgstr "%pB: addend bör vara noll för plt-omflyttningar"
-#: elf32-nds32.c:14015
+#: elf32-or1k.c:1542
#, c-format
-msgid "%s: warning: unaligned small data access. For entry: {%d, %d, %d}, addr = 0x%x, align = 0x%x."
-msgstr "%s: varning: ojusterad liten dataåtkomst. För post: {%d, %d, %d}, adr = 0x%x, just = 0x%x."
+msgid "%pB: addend should be zero for got relocations"
+msgstr "%pB: addend bör vara noll för omlokaliseringar"
-#: elf32-nds32.c:14047
-msgid "%P%F: failed creating ex9.it %s hash table: %E\n"
-msgstr "%P%F: misslyckades skapa ex9.it %s hashtabell: %E\n"
+#: elf32-or1k.c:1559
+#, c-format
+msgid "%pB: gotoff relocation against dynamic symbol %s"
+msgstr "%pB: avbruten omlokalisering mot dynamisk symbol %s"
-#: elf32-nios2.c:2861
+#: elf32-or1k.c:1573 elf32-or1k.c:1588 elf64-alpha.c:4409 elf64-alpha.c:4553
#, c-format
-msgid "global pointer relative relocation at address 0x%08x when _gp not defined\n"
-msgstr "global pekarrelativ omlokalisering på adress 0x%08x när _gp inte är definierad\n"
+msgid "%pB: pc-relative relocation against dynamic symbol %s"
+msgstr "%pB: pc-relativ omlokalisering mot dynamisk symbol %s"
-#: elf32-nios2.c:2878
+#: elf32-or1k.c:1602
#, c-format
-msgid "Unable to reach %s (at 0x%08x) from the global pointer (at 0x%08x) because the offset (%d) is out of the allowed range, -32678 to 32767.\n"
-msgstr "Kunde inte nå %s (på 0x%08x) från den globala pekaren (på 0x%08x) eftersom förskjutningen (%d) är utanför det tillåtna intervallet, -32678 till 32767.\n"
+msgid "%pB: non-pic relocation against symbol %s"
+msgstr "%pB: icke-pic omplacering mot symbolen %s"
-#: elf32-nios2.c:3392
-msgid "%B(%A+0x%lx): R_NIOS2_TLS_LE16 relocation not permitted in shared object"
-msgstr "%B(%A+0x%lx): R_NIOS2_TLS_LE16-omlokalisering inte tillåtet i ett delat objekt"
+#: elf32-or1k.c:1686
+#, c-format
+msgid "%pB: support for local dynamic not implemented"
+msgstr "%pB: stöd för lokal dynamik ej implementerat"
-#: elf32-nios2.c:3520
-msgid "relocation out of range"
-msgstr "omlokalisering utanför intervallet"
+#: elf32-or1k.c:1865
+#, c-format
+msgid "%pB: will not resolve runtime TLS relocation"
+msgstr "%pB: löser inte TLS-omlokalisering under körtid"
-#: elf32-nios2.c:3530 elf32-tic6x.c:2744
-msgid "dangerous relocation"
-msgstr "riskabel omlokalisering"
+#: elf32-or1k.c:2199
+#, c-format
+msgid "%pB: bad relocation section name `%s'"
+msgstr "%pB: felaktig flyttning av sektionsnamn `%s'"
-#: elf32-nios2.c:4529
+#: elf32-or1k.c:3312
#, c-format
-msgid "dynamic variable `%s' is zero size"
-msgstr "dynamisk variabel â€%s†är av storlek noll"
+msgid "%pB: %s flag mismatch with previous modules"
+msgstr "%pB: %s flagga stämmer inte överens med tidigare moduler"
-#: elf32-ppc.c:2100
+#: elf32-ppc.c:990 elf64-ppc.c:1753
#, c-format
msgid "generic linker can't handle %s"
msgstr "allmän länkare kan inte hantera %s"
-#: elf32-ppc.c:2642
-msgid "corrupt %s section in %B"
-msgstr "korrupt %s-sektion i %B"
-
-#: elf32-ppc.c:2661
-msgid "unable to read in %s section from %B"
-msgstr "kunde inte läsa i sektionen %s från %B"
-
-#: elf32-ppc.c:2702
-msgid "warning: unable to set size of %s section in %B"
-msgstr "varning: kunde inte ange storlek för sektionen %s i %B"
+#: elf32-ppc.c:1627
+#, c-format
+msgid "corrupt %s section in %pB"
+msgstr "korrupt %s avsnitt i %pB"
-#: elf32-ppc.c:2752
-msgid "failed to allocate space for new APUinfo section."
-msgstr "misslyckades med att allokera utrymme för nytt APUinfo-sektion."
+#: elf32-ppc.c:1646
+#, c-format
+msgid "unable to read in %s section from %pB"
+msgstr "kan inte läsa i %s avsnitt från %pB"
-#: elf32-ppc.c:2771
-msgid "failed to compute new APUinfo section."
-msgstr "misslyckades med att beräkna nytt APUinfo-sektion."
+#: elf32-ppc.c:1688
+#, c-format
+msgid "warning: unable to set size of %s section in %pB"
+msgstr "varning: det går inte att ange storleken på avsnittet %s i %pB"
-#: elf32-ppc.c:2774
-msgid "failed to install new APUinfo section."
-msgstr "misslyckades med att installera nytt APUinfo-sektion."
+#: elf32-ppc.c:1737
+msgid "failed to allocate space for new APUinfo section"
+msgstr "misslyckades med att allokera utrymme för det nya avsnittet APUinfo"
-#: elf32-ppc.c:3844
-msgid "%B: relocation %s cannot be used when making a shared object"
-msgstr "%B: omlokalisering %s kan inte användas när ett delat objekt skapas"
+#: elf32-ppc.c:1756
+msgid "failed to compute new APUinfo section"
+msgstr "misslyckades med att beräkna det nya avsnittet APUinfo"
-#. It does not make sense to have a procedure linkage
-#. table entry for a local symbol.
-#: elf32-ppc.c:4218
-msgid "%P: %H: %s reloc against local symbol\n"
-msgstr "%P: %H: %s-omlokalisering mot lokala symboler\n"
+#: elf32-ppc.c:1759
+msgid "failed to install new APUinfo section"
+msgstr "kunde inte installera det nya avsnittet APUinfo"
-#: elf32-ppc.c:4299
-msgid "%P: %H: @local call to ifunc %s\n"
-msgstr "%P: %H: @local till ifunc %s\n"
+#: elf32-ppc.c:2867
+#, c-format
+msgid "%pB: relocation %s cannot be used when making a shared object"
+msgstr "%pB: relocation %s kan inte användas när man skapar ett delat objekt"
-#: elf32-ppc.c:4588 elf32-ppc.c:4603
-msgid "Warning: %B uses hard float, %B uses soft float"
-msgstr "Varning. %B använder hårt flyttal, %B använder mjukt flyttal"
+#: elf32-ppc.c:3586 elf32-ppc.c:3594
+#, c-format
+msgid "%pB uses double-precision hard float, %pB uses single-precision hard float"
+msgstr "%pB använder hårdvaruflyttal med dubbel precision, %pB använder hårdvaruflyttal med enkel precision"
-#: elf32-ppc.c:4591 elf32-ppc.c:4595
-msgid "Warning: %B uses double-precision hard float, %B uses single-precision hard float"
-msgstr "Varning: %B använder hårt flyttal med dubbelprecision, %B använder hårt flyttal med enkel precision"
+#: elf32-ppc.c:3616 elf32-ppc.c:3624
+#, c-format
+msgid "%pB uses 64-bit long double, %pB uses 128-bit long double"
+msgstr "%pB använder 64-bitars lång dubbel, %pB använder 128-bitars lång dubbel"
-#: elf32-ppc.c:4599
-msgid "Warning: %B uses soft float, %B uses single-precision hard float"
-msgstr "Varning: %B använder mjuka flyttal, %B använder hårda flyttal med enkelprecision"
+#: elf32-ppc.c:3632 elf32-ppc.c:3640
+#, c-format
+msgid "%pB uses IBM long double, %pB uses IEEE long double"
+msgstr "%pB använder IBM lång dubbel, %pB använder IEEE lång dubbel"
-#: elf32-ppc.c:4606 elf32-ppc.c:4610
-msgid "Warning: %B uses unknown floating point ABI %d"
-msgstr "Varning: %B använder okänt flyttals-ABI %d"
+#: elf32-ppc.c:3707 elf32-ppc.c:3716
+#, c-format
+msgid "%pB uses AltiVec vector ABI, %pB uses SPE vector ABI"
+msgstr "%pB använder AltiVec vektor ABI, %pB använder SPE vektor ABI"
-#: elf32-ppc.c:4652 elf32-ppc.c:4656
-msgid "Warning: %B uses unknown vector ABI %d"
-msgstr "Varning: %B använder okänd vektor-ABI %d"
+#: elf32-ppc.c:3745 elf32-ppc.c:3754
+#, c-format
+msgid "%pB uses r3/r4 for small structure returns, %pB uses memory"
+msgstr "%pB använder r3/r4 för små strukturreturer, %pB använder minne"
-#: elf32-ppc.c:4660
-msgid "Warning: %B uses vector ABI \"%s\", %B uses \"%s\""
-msgstr "Varning: %B använder vektor-ABI â€%sâ€, %B använder â€%sâ€"
+#: elf32-ppc.c:3818
+#, c-format
+msgid "%pB: compiled with -mrelocatable and linked with modules compiled normally"
+msgstr "%pB: kompilerad med -mrelocatable och länkad med moduler som kompilerats normalt"
-#: elf32-ppc.c:4677 elf32-ppc.c:4680
-msgid "Warning: %B uses r3/r4 for small structure returns, %B uses memory"
-msgstr "Varning: %B använder r3/r4 för små struktur-returneringar, %B använder minnet"
+#: elf32-ppc.c:3826
+#, c-format
+msgid "%pB: compiled normally and linked with modules compiled with -mrelocatable"
+msgstr "%pB: kompilerad normalt och länkad med moduler kompilerade med -mrelocatable"
-#: elf32-ppc.c:4683 elf32-ppc.c:4687
-msgid "Warning: %B uses unknown small structure return convention %d"
-msgstr "Varning: %B använder okänd konvention %d för små strukturers returer"
+#: elf32-ppc.c:3897
+#, c-format
+msgid "%pB(%pA+0x%lx): expected 16A style relocation on 0x%08x insn"
+msgstr "%pB(%pA+0x%lx): förväntad omlokalisering i 16A-stil på 0x%08x insn"
-#: elf32-ppc.c:4741
-msgid "%B: compiled with -mrelocatable and linked with modules compiled normally"
-msgstr "%B: kompilerades med -mrelocatable och länkades med moduler som kompilerats normalt"
+#: elf32-ppc.c:3916
+#, c-format
+msgid "%pB(%pA+0x%lx): expected 16D style relocation on 0x%08x insn"
+msgstr "%pB(%pA+0x%lx): förväntad omlokalisering i 16D-stil på 0x%08x insn"
-#: elf32-ppc.c:4749
-msgid "%B: compiled normally and linked with modules compiled with -mrelocatable"
-msgstr "%B: kompilerades normalt och länkades med moduler som kompilerades med -mrelocatable"
+#: elf32-ppc.c:4026
+#, c-format
+msgid "bss-plt forced due to %pB"
+msgstr "bss-plt tvingad på grund av %pB"
-#: elf32-ppc.c:4872
-msgid "%P: bss-plt forced due to %B\n"
-msgstr "%P: bss-plt tvingade till %B\n"
+#: elf32-ppc.c:4028
+msgid "bss-plt forced by profiling"
+msgstr "bss-plt tvingad av profilering"
-#: elf32-ppc.c:4875
-msgid "%P: bss-plt forced by profiling\n"
-msgstr "%P: bss-plt tvingade genom profilering\n"
+#: elf32-ppc.c:4606 elf64-ppc.c:8516
+msgid "%H: warning: %s unexpected insn %#x.\n"
+msgstr "%H: varning: %s oväntad insn %#x.\n"
#. Uh oh, we didn't find the expected call. We
#. could just mark this symbol to exclude it
#. from tls optimization but it's safer to skip
#. the entire optimization.
-#: elf32-ppc.c:5369 elf64-ppc.c:8371
+#: elf32-ppc.c:4636 elf64-ppc.c:8581
+#, c-format
msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n"
msgstr "%H arg försvunnet __tls_get_addr, TLS-optimering inaktiverad\n"
-#: elf32-ppc.c:7927
-msgid "%P: %B: unknown relocation type %d for symbol %s\n"
-msgstr "%P: %B: okänd omlokaliseringstyp %d för symbolen %s\n"
+#: elf32-ppc.c:5564 elf32-sh.c:3018 elf32-tilepro.c:2245 elfxx-sparc.c:2454
+#: elfxx-tilegx.c:2494
+#, c-format
+msgid "%pB: dynamic relocation in read-only section `%pA'\n"
+msgstr "%pB: dynamisk omplacering i skrivskyddat avsnitt `%pA'\n"
-#: elf32-ppc.c:8191
-msgid "%P: %H: non-zero addend on %s reloc against `%s'\n"
-msgstr "%P: %H: ej-noll addend pÃ¥ %s omlokalisering mot â€%sâ€\n"
+#: elf32-ppc.c:6510
+msgid "%pB: Adjusting branch at 0x%V towards \"%s\" in section %s\n"
+msgstr "%pB: Justering av gren på 0x%V mot \"%s\" i avsnitt %s\n"
-#: elf32-ppc.c:8389
-msgid "%P: %H: relocation %s for indirect function %s unsupported\n"
-msgstr "%P: %H: omlokalisering %s för indirekta funktionen %s stöddes ej\n"
+#: elf32-ppc.c:7463
+msgid "%P: %H: error: %s with unexpected instruction %x\n"
+msgstr "%P: %H: fel: %s med oväntad instruktion %x\n"
-#: elf32-ppc.c:8646 elf32-ppc.c:8676 elf32-ppc.c:8767
-msgid "%P: %B: the target (%s) of a %s relocation is in the wrong output section (%s)\n"
-msgstr "%P %B: destinationen (%s) av %s för omlokaliseringen är i fel utdata-sektion (%s)\n"
+#: elf32-ppc.c:7501
+msgid "%H: fixup branch overflow\n"
+msgstr "%H: fixa överflödet i grenen\n"
-#: elf32-ppc.c:8854
-msgid "%B: the target (%s) of a %s relocation is in the wrong output section (%s)"
-msgstr "%B: destinationen (%s) för omlokaliseringen %s är i fel utdata-sektion (%s)"
+#: elf32-ppc.c:7541 elf32-ppc.c:7579
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): error: %s with unexpected instruction %#x"
+msgstr "%pB(%pA+%#<PRIx64>): fel: %s med oväntad instruktion %#x"
-#: elf32-ppc.c:8958
-msgid "%P: %B: relocation %s is not yet supported for symbol %s\n"
-msgstr "%P: %B: omlokalisering %s stöds ej för symbolen %s\n"
+#: elf32-ppc.c:7643
+#, c-format
+msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n"
+msgstr "%X%H: bss-plt -fPIC ifunc %s stöds inte\n"
-#: elf32-ppc.c:9038
-msgid "%P: %H: error: %s against `%s' not a multiple of %u\n"
-msgstr "%P: %H: fel: %s mot â€%s†är inte en multipel av %u\n"
+#: elf32-ppc.c:7679
+#, c-format
+msgid "%pB: reloc %#x unsupported"
+msgstr "%pB: reloc %#x stöds inte"
-#: elf32-ppc.c:9067
-msgid "%P: %H: unresolvable %s relocation against symbol `%s'\n"
-msgstr "%P: %H: olösbar %s-omlokalisering till symbolen â€%sâ€\n"
+#: elf32-ppc.c:7962
+#, c-format
+msgid "%H: non-zero addend on %s reloc against `%s'\n"
+msgstr "%H: icke-noll addend på %s reloc mot `%s'\n"
-#: elf32-ppc.c:9114
-msgid "%P: %H: %s reloc against `%s': error %d\n"
-msgstr "%P: %H: %s omlokalisering till â€%sâ€: fel %d\n"
+#. @local on an ifunc does not really make sense since
+#. the ifunc resolver can take you anywhere. More
+#. seriously, calls to ifuncs must go through a plt call
+#. stub, and for pic the plt call stubs uses r30 to
+#. access the PLT. The problem is that a call that is
+#. local won't have the +32k reloc addend trick marking
+#. -fPIC code, so the linker won't know whether r30 is
+#. _GLOBAL_OFFSET_TABLE_ or pointing into a .got2 section.
+#: elf32-ppc.c:7994
+#, c-format
+msgid "%X%H: @local call to ifunc %s\n"
+msgstr "%X%H: @lokalt anrop till ifunc %s\n"
-#: elf32-ppc.c:9750
-msgid "%P: %s not defined in linker created %s\n"
-msgstr "%P: %s är inte definierat i länkaren skapad %s\n"
+#: elf32-ppc.c:8172
+#, c-format
+msgid "%H: relocation %s for indirect function %s unsupported\n"
+msgstr "%H: omplacering %s för indirekt funktion %s stöds inte\n"
-#: elf32-rl78.c:784
-msgid "Warning: RL78_SYM reloc with an unknown symbol"
-msgstr "Varning: RL78_SYM-omlokalisering med en okänd symbol"
+#: elf32-ppc.c:8510 elf32-ppc.c:8541 elf32-ppc.c:8644 elf32-ppc.c:8744
+#, c-format
+msgid "%pB: the target (%s) of a %s relocation is in the wrong output section (%s)"
+msgstr "%pB: målet (%s) för en %s-förflyttning är i fel utmatningsavsnitt (%s)"
-#: elf32-rl78.c:952 elf32-rx.c:1324
-msgid "%B(%A): error: call to undefined function '%s'"
-msgstr "%B(%A): fel: anrop till odefinierad funktion â€%sâ€"
+#: elf32-ppc.c:8922 elf32-ppc.c:8943
+msgid "%X%P: %H: %s relocation unsupported for bss-plt\n"
+msgstr "%X%P: %H: %s flyttning stöds inte för bss-plt\n"
-#: elf32-rl78.c:966 elf32-rx.c:1338
-msgid "%B(%A): warning: unaligned access to symbol '%s' in the small data area"
-msgstr "%B(%A): varning: ojusterad Ã¥tkomst till symbol â€%s†i mindre dataomrÃ¥det"
+#: elf32-ppc.c:9025
+#, c-format
+msgid "%H: error: %s against `%s' not a multiple of %u\n"
+msgstr "%H: fel: %s mot `%s' är inte en multipel av %u\n"
-#: elf32-rl78.c:970 elf32-rx.c:1342
-msgid "%B(%A): internal error: out of range error"
-msgstr "%B(%A): internt fel: utanför intervall"
+#: elf32-ppc.c:9054
+#, c-format
+msgid "%H: unresolvable %s relocation against symbol `%s'\n"
+msgstr "%H: olöslig %s omplacering mot symbolen `%s'\n"
-#: elf32-rl78.c:974 elf32-rx.c:1346
-msgid "%B(%A): internal error: unsupported relocation error"
-msgstr "%B(%A): internt fel: omlokalisering saknar stöd"
+#: elf32-ppc.c:9136
+#, c-format
+msgid "%H: %s reloc against `%s': error %d\n"
+msgstr "%H: %s reloc mot `%s': fel %d\n"
-#: elf32-rl78.c:978 elf32-rx.c:1350
-msgid "%B(%A): internal error: dangerous relocation"
-msgstr "%B(%A): internt fel: riskabel omlokalisering"
+#: elf32-ppc.c:10018
+msgid "%X%P: text relocations and GNU indirect functions will result in a segfault at runtime\n"
+msgstr "%X%P: textrelokaliseringar och GNU indirekta funktioner kommer att resultera i ett segfel vid körning\n"
-#: elf32-rl78.c:982 elf32-rx.c:1354
-msgid "%B(%A): internal error: unknown error"
-msgstr "%B(%A): internt fel: okänt fel"
+#: elf32-ppc.c:10022 elf64-ppc.c:18320
+msgid "%P: warning: text relocations and GNU indirect functions may result in a segfault at runtime\n"
+msgstr "%P: varning: textomflyttningar och GNU indirekta funktioner kan resultera i ett segfel vid körning\n"
-#: elf32-rl78.c:1043
-msgid "RL78/G10 ABI conflict: cannot link G10 and non-G10 objects together"
-msgstr "RL78/G10 ABI-konflikt: kan inte länka samman G10 och icke-G10 objekt"
+#: elf32-ppc.c:10067
+#, c-format
+msgid "%s not defined in linker created %pA"
+msgstr "%s inte definierad i länkaren skapad %pA"
-#: elf32-rl78.c:1046 elf32-rl78.c:1049
+#: elf32-pru.c:582 elf32-pru.c:1477
#, c-format
-msgid "- %s is G10, %s is not"
-msgstr "- %s är G10, %s är det ej"
+msgid "error: %pB: old incompatible object file detected"
+msgstr "error: %pB: gammal inkompatibel objektfil upptäckt"
+
+#: elf32-pru.c:931
+msgid "relocation out of range"
+msgstr "omlokalisering utanför intervallet"
-#: elf32-rl78.c:1072
+#: elf32-pru.c:941 elf32-tic6x.c:2649
+msgid "dangerous relocation"
+msgstr "riskabel omlokalisering"
+
+#: elf32-rl78.c:551
+msgid "RL78 reloc stack overflow/underflow"
+msgstr "RL78 reloc stack överflöde/underflöde"
+
+#: elf32-rl78.c:555
+msgid "RL78 reloc divide by zero"
+msgstr "RL78 reloc dividera med noll"
+
+#: elf32-rl78.c:1069
+msgid "warning: RL78_SYM reloc with an unknown symbol"
+msgstr "varning: RL78_SYM reloc med en okänd symbol"
+
+#: elf32-rl78.c:1115
+msgid "%H: %s out of range\n"
+msgstr "%H: %s utanför intervallet\n"
+
+#: elf32-rl78.c:1122
+msgid "%H: relocation type %u is not supported\n"
+msgstr "%H: Förflyttningstypen %u stöds inte\n"
+
+#: elf32-rl78.c:1134
+msgid "%H: relocation %s returns an unrecognized value %x\n"
+msgstr "%H: relocation %s returnerar ett okänt värde %x\n"
+
+#: elf32-rl78.c:1220
+#, c-format
+msgid "RL78 ABI conflict: G10 file %pB cannot be linked with %s file %pB"
+msgstr "RL78 ABI-konflikt: G10-fil %pB kan inte länkas till %s-fil %pB"
+
+#: elf32-rl78.c:1237
+#, c-format
+msgid "RL78 ABI conflict: cannot link %s file %pB with %s file %pB"
+msgstr "RL78 ABI-konflikt: kan inte länka %s fil %pB med %s fil %pB"
+
+#: elf32-rl78.c:1246
+msgid "RL78 merge conflict: cannot link 32-bit and 64-bit objects together"
+msgstr "RL78 sammanfogningskonflikt: kan inte länka 32-bitars och 64-bitars objekt tillsammans"
+
+#: elf32-rl78.c:1250 elf32-rl78.c:1254
+#, c-format
+msgid "- %pB is 64-bit, %pB is not"
+msgstr "- %pB är 64-bitars, %pB är inte det"
+
+#: elf32-rl78.c:1281
#, c-format
-msgid " [G10]"
-msgstr " [G10]"
+msgid " [64-bit doubles]"
+msgstr " [64-bitars dubblar]"
-#: elf32-rx.c:563
-msgid "%B:%A: Warning: deprecated Red Hat reloc "
-msgstr "%B:%A: Varning: föråldrad Red Hat-omlokalisering "
+#: elf32-rx.c:618
+#, c-format
+msgid "%pB:%pA: table entry %s outside table"
+msgstr "%pB:%pA: tabellpost %s utanför tabell"
+
+#: elf32-rx.c:625
+#, c-format
+msgid "%pB:%pA: table entry %s not word-aligned within table"
+msgstr "%pB:%pA: tabellposten %s är inte ordalignerad inom tabellen"
+
+#: elf32-rx.c:700
+#, c-format
+msgid "%pB:%pA: warning: deprecated Red Hat reloc %s detected against: %s"
+msgstr "%pB:%pA: varning: föråldrad Red Hat-reloc %s upptäckt mot: %s"
#. Check for unsafe relocs in PID mode. These are any relocs where
#. an absolute address is being computed. There are special cases
#. for relocs against symbols that are known to be referenced in
#. crt0.o before the PID base address register has been initialised.
-#: elf32-rx.c:581
-msgid "%B(%A): unsafe PID relocation %s at 0x%08lx (against %s in %s)"
-msgstr "%B(%A): osäker PID-omlokalisering %s vid 0x%08lx (mot %s i %s)"
+#: elf32-rx.c:720
+#, c-format
+msgid "%pB(%pA): unsafe PID relocation %s at %#<PRIx64> (against %s in %s)"
+msgstr "%pB(%pA): osäker PID-relokalisering %s vid %#<PRIx64> (mot %s i %s)"
+
+#: elf32-rx.c:1304
+msgid "warning: RX_SYM reloc with an unknown symbol"
+msgstr "varning: RX_SYM reloc med en okänd symbol"
+
+#: elf32-rx.c:1472
+#, c-format
+msgid "%pB(%pA): error: call to undefined function '%s'"
+msgstr "%pB(%pA): fel: anrop till odefinierad funktion '%s'"
+
+#: elf32-rx.c:3185
+#, c-format
+msgid "there is a conflict merging the ELF header flags from %pB"
+msgstr "det finns en konflikt som sammanfogar ELF-huvudflaggorna från %pB"
+
+#: elf32-rx.c:3188
+#, c-format
+msgid " the input file's flags: %s"
+msgstr " inmatningsfilens flaggor: %s"
+
+#: elf32-rx.c:3190
+#, c-format
+msgid " the output file's flags: %s"
+msgstr " utdatafilens flaggor: %s"
-#: elf32-rx.c:1157
-msgid "Warning: RX_SYM reloc with an unknown symbol"
-msgstr "Varning: RX_SYM-omlokalisering med en okänd symbol"
+#: elf32-rx.c:3797
+#, c-format
+msgid "%pB:%pA: table %s missing corresponding %s"
+msgstr "%pB:%pA: tabell %s saknar motsvarande %s"
-#: elf32-s390.c:2292 elf64-s390.c:2244
-msgid "%B(%A+0x%lx): invalid instruction for TLS relocation %s"
-msgstr "%B(%A+0x%lx): ogiltig instruktion för TLS-omlokalisering %s"
+#: elf32-rx.c:3805
+#, c-format
+msgid "%pB:%pA: %s and %s must be in the same input section"
+msgstr "%pB:%pA: %s och %s måste finnas i samma inmatningsavsnitt"
-#: elf32-score.c:1520 elf32-score7.c:1379 elfxx-mips.c:3642
+#: elf32-s390.c:2005 elf64-s390.c:1974
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): invalid instruction for TLS relocation %s"
+msgstr "%pB(%pA+%#<PRIx64>): ogiltig instruktion för TLS-omlokalisering %s"
+
+#: elf32-score.c:1505 elf32-score7.c:1368 elfxx-mips.c:3868
msgid "not enough GOT space for local GOT entries"
msgstr "inte tillräckligt med GOT-utrymme för lokala GOT-poster"
-#: elf32-score.c:2742
-msgid "address not word align"
-msgstr "adressen inte ordjusterad"
+#: elf32-score.c:2737
+msgid "address not word aligned"
+msgstr "adressen är inte ordinriktad"
+
+#: elf32-score.c:2818 elf32-score7.c:2625
+#, c-format
+msgid "%pB: malformed reloc detected for section %pA"
+msgstr "%pB: felformad reloc upptäckt för avsnitt %pA"
-#: elf32-score.c:2827 elf32-score7.c:2631
+#: elf32-score.c:2872 elf32-score7.c:2679
#, c-format
-msgid "%s: Malformed reloc detected for section %s"
-msgstr "%s: Felaktig omlokalisering för sektion %s upptäckt"
+msgid "%pB: CALL15 reloc at %#<PRIx64> not against global symbol"
+msgstr "%pB: CALL15 reloc vid %#<PRIx64> inte mot global symbol"
-#: elf32-score.c:2882 elf32-score7.c:2686
-msgid "%B: CALL15 reloc at 0x%lx not against global symbol"
-msgstr "%B: CALL15-omlokalisering vid 0x%lx inte mot global symbol"
+#: elf32-score.c:3481 elf32-score7.c:3292 elfxx-mips.c:11175
+#, c-format
+msgid "%pB: cannot handle more than %d dynamic symbols"
+msgstr "%pB: kan inte hantera mer än %d dynamiska symboler"
-#: elf32-score.c:4007 elf32-score7.c:3811
+#: elf32-score.c:3987 elf32-score7.c:3794
#, c-format
msgid " [pic]"
msgstr " [pic]"
-#: elf32-score.c:4011 elf32-score7.c:3815
+#: elf32-score.c:3991 elf32-score7.c:3798
#, c-format
msgid " [fix dep]"
msgstr " [fix dep]"
-#: elf32-score.c:4053 elf32-score7.c:3857
-msgid "%B: warning: linking PIC files with non-PIC files"
-msgstr "%B: varning: länkar PIC-filer med icke-PIC-filer"
-
-#: elf32-sh-symbian.c:130
-msgid "%B: IMPORT AS directive for %s conceals previous IMPORT AS"
-msgstr "%B: IMPORT AS-direktiv för %s döljer föregående IMPORT AS"
-
-#: elf32-sh-symbian.c:383
-msgid "%B: Unrecognised .directive command: %s"
-msgstr "%B: Okänt .directive-kommando: %s"
-
-#: elf32-sh-symbian.c:500
-msgid "%B: Failed to add renamed symbol %s"
-msgstr "%B: Kunde inte lägga till namnändrad symbol %s"
+#: elf32-score.c:4038 elf32-score7.c:3845
+#, c-format
+msgid "%pB: warning: linking PIC files with non-PIC files"
+msgstr "%pB: varning: länka PIC-filer med icke-PIC-filer"
-#: elf32-sh.c:569
-msgid "%B: 0x%lx: warning: bad R_SH_USES offset"
-msgstr "%B: 0x%lx: varning: felaktig R_SH_USES-förskjutning"
+#: elf32-sh.c:533
+#, c-format
+msgid "%pB: %#<PRIx64>: warning: R_SH_USES points to unrecognized insn 0x%x"
+msgstr "%pB: %#<PRIx64>: varning: R_SH_USES pekar på ett okänt insn 0x%x"
-#: elf32-sh.c:581
-msgid "%B: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x"
-msgstr "%B: 0x%lx: varning: R_SH_USES pekar på okänd insn 0x%x"
+#: elf32-sh.c:3753
+#, c-format
+msgid "%pB: %#<PRIx64>: fatal: unaligned branch target for relax-support relocation"
+msgstr "%pB: %#<PRIx64>: fatalt: ojusterat grenmål för relokalisering av relax-support"
-#: elf32-sh.c:598
-msgid "%B: 0x%lx: warning: bad R_SH_USES load offset"
-msgstr "%B: 0x%lx: varning: felaktig R_SH_USES-laddningsförskjutning"
+#: elf32-sh.c:3783 elf32-sh.c:3799
+#, c-format
+msgid "%pB: %#<PRIx64>: fatal: unaligned %s relocation %#<PRIx64>"
+msgstr "%pB: %#<PRIx64>: fatalt: ojusterad %s omlokalisering %#<PRIx64>"
-#: elf32-sh.c:613
-msgid "%B: 0x%lx: warning: could not find expected reloc"
-msgstr "%B: 0x%lx: varning: kunde inte hitta förväntad omlokalisering"
+#: elf32-sh.c:3815
+#, c-format
+msgid "%pB: %#<PRIx64>: fatal: R_SH_PSHA relocation %<PRId64> not in range -32..32"
+msgstr "%pB: %#<PRIx64>: fatalt: R_SH_PSHA-förflyttning %<PRId64> inte inom intervallet -32..32"
-#: elf32-sh.c:641
-msgid "%B: 0x%lx: warning: symbol in unexpected section"
-msgstr "%B: 0x%lx: varning: symbol i oväntad sektion"
+#: elf32-sh.c:3831
+#, c-format
+msgid "%pB: %#<PRIx64>: fatal: R_SH_PSHL relocation %<PRId64> not in range -32..32"
+msgstr "%pB: %#<PRIx64>: fatalt: R_SH_PSHL-förflyttning %<PRId64> inte inom intervallet -32..32"
-#: elf32-sh.c:767
-msgid "%B: 0x%lx: warning: could not find expected COUNT reloc"
-msgstr "%B: 0x%lx: varning: kunde inte hitta förväntad COUNT-omlokalisering"
+#: elf32-sh.c:3961 elf32-sh.c:4356
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): cannot emit fixup to `%s' in read-only section"
+msgstr "%pB(%pA+%#<PRIx64>): kan inte skicka ut fixup till `%s' i skrivskyddat avsnitt"
-#: elf32-sh.c:776
-msgid "%B: 0x%lx: warning: bad count"
-msgstr "%B: 0x%lx: varning: felaktigt antal"
+#: elf32-sh.c:4459
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): %s relocation against external symbol \"%s\""
+msgstr "%pB(%pA+%#<PRIx64>): %s relokalisering mot extern symbol \"%s\""
-#: elf32-sh.c:1180 elf32-sh.c:1550
-msgid "%B: 0x%lx: fatal: reloc overflow while relaxing"
-msgstr "%B: 0x%lx: ödesdigert: omlokalisering överbelastad vid relax"
+#: elf32-sh.c:4578
+#, c-format
+msgid "%pB(%pA): offset in relocation for GD->LE translation is too small: %#<PRIx64>"
+msgstr "%pB(%pA): offset i relokalisering för GD->LE-översättning är för liten: %#<PRIx64>"
-#: elf32-sh.c:3939 elf64-sh64.c:1514
-msgid "Unexpected STO_SH5_ISA32 on local symbol is not handled"
-msgstr "Oväntat STO_SH5_ISA32 på lokal symbol hanteras inte"
+#. The backslash is to prevent bogus trigraph detection.
+#: elf32-sh.c:4596
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd4??)"
+msgstr "%pB(%pA+%#<PRIx64>): oväntad instruktion %#04X (förväntad 0xd4??)"
-#: elf32-sh.c:4190
-msgid "%B: 0x%lx: fatal: unaligned branch target for relax-support relocation"
-msgstr "%B: 0x%lx: ödesdigert: ojusterad grendestination för relax-stödd omlokalisering"
+#: elf32-sh.c:4604
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xc7??)"
+msgstr "%pB(%pA+%#<PRIx64>): oväntad instruktion %#04X (förväntad 0xc7??)"
-#: elf32-sh.c:4223 elf32-sh.c:4238
-msgid "%B: 0x%lx: fatal: unaligned %s relocation 0x%lx"
-msgstr "%B: 0x%lx: ödesdigert: ojusterad %s-omlokalisering 0x%lx"
+#: elf32-sh.c:4611
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd1??)"
+msgstr "%pB(%pA+%#<PRIx64>): oväntad instruktion %#04X (förväntad 0xd1??)"
-#: elf32-sh.c:4252
-msgid "%B: 0x%lx: fatal: R_SH_PSHA relocation %d not in range -32..32"
-msgstr "%B: 0x%lx: ödesdigert: R_SH_PSHA-omlokalisering %d inte i intervallet -32..32"
+#: elf32-sh.c:4618
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x310c)"
+msgstr "%pB(%pA+%#<PRIx64>): oväntad instruktion %#04X (förväntad 0x310c)"
-#: elf32-sh.c:4266
-msgid "%B: 0x%lx: fatal: R_SH_PSHL relocation %d not in range -32..32"
-msgstr "%B: 0x%lx: ödesdigert: R_SH_PSHL-omlokalisering %d inte i intervallet -32..32"
+#: elf32-sh.c:4625
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x410b)"
+msgstr "%pB(%pA+%#<PRIx64>): oväntad instruktion %#04X (förväntad 0x410b)"
-#: elf32-sh.c:4410 elf32-sh.c:4886
-msgid "%B(%A+0x%lx): cannot emit fixup to `%s' in read-only section"
-msgstr "%B(%A+0x%lx): kan inte skicka fix till â€%s†i en skrivskyddad sektion"
+#: elf32-sh.c:4632
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x34cc)"
+msgstr "%pB(%pA+%#<PRIx64>): oväntad instruktion %#04X (förväntad 0x34cc)"
-#: elf32-sh.c:4993
-msgid "%B(%A+0x%lx): %s relocation against external symbol \"%s\""
-msgstr "%B(%A+0x%lx): %s-omlokalisering mot extern symbol â€%sâ€"
+#: elf32-sh.c:4667
+#, c-format
+msgid "%pB(%pA): offset in relocation for IE->LE translation is too small: %#<PRIx64>"
+msgstr "%pB(%pA): förskjutning i omlokalisering för IE->LE-översättning är för liten: %#<PRIx64>"
-#: elf32-sh.c:5466
+#: elf32-sh.c:4685
#, c-format
-msgid "%X%C: relocation to \"%s\" references a different segment\n"
-msgstr "%X%C: omlokalisering till â€%s†använder ett annat segment\n"
+msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd0??: mov.l)"
+msgstr "%pB(%pA+%#<PRIx64>): oväntad instruktion %#04X (förväntad 0xd0??: mov.l)"
-#: elf32-sh.c:5472
+#: elf32-sh.c:4694
#, c-format
-msgid "%C: warning: relocation to \"%s\" references a different segment\n"
-msgstr "%C: varning: omlokalisering till â€%s†använder ett annat segment\n"
+msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x0?12: stc)"
+msgstr "%pB(%pA+%#<PRIx64>): oväntad instruktion %#04X (förväntad 0x0?12: stc)"
-#: elf32-sh.c:6254 elf32-sh.c:6337
-msgid "%B: `%s' accessed both as normal and FDPIC symbol"
-msgstr "%B: â€%s†åtkommen bÃ¥de som normal och FDPIC-symbol"
+#: elf32-sh.c:4701
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x0?ce: mov.l)"
+msgstr "%pB(%pA+%#<PRIx64>): oväntad instruktion %#04X (förväntad 0x0?ce: mov.l)"
-#: elf32-sh.c:6259 elf32-sh.c:6341
-msgid "%B: `%s' accessed both as FDPIC and thread local symbol"
-msgstr "%B: â€%s†åtkommen bÃ¥de som FDPIC- och trÃ¥dlokal symbol"
+#: elf32-sh.c:4816
+#, c-format
+msgid "%pB(%pA): offset in relocation for GD->IE translation is too small: %#<PRIx64>"
+msgstr "%pB(%pA): offset i relokalisering för GD->IE-översättning är för liten: %#<PRIx64>"
-#: elf32-sh.c:6289
-msgid "%B: Function descriptor relocation with non-zero addend"
-msgstr "%B: Funktionsbeskrivningsomlokalisering med addend som inte är noll"
+#: elf32-sh.c:4884
+#, c-format
+msgid "%pB(%pA): offset in relocation for LD->LE translation is too small: %#<PRIx64>"
+msgstr "%pB(%pA): offset i relokalisering för LD->LE-översättning är för liten: %#<PRIx64>"
-#: elf32-sh.c:6525 elf64-alpha.c:4661
-msgid "%B: TLS local exec code cannot be linked into shared objects"
-msgstr "%B: TLS-lokal körkod kan inte länkas till delade objekt"
+#: elf32-sh.c:5012
+#, c-format
+msgid "%X%H: relocation to \"%s\" references a different segment\n"
+msgstr "%X%H: flytt till \"%s\" refererar till ett annat segment\n"
-#: elf32-sh64.c:224 elf64-sh64.c:2318
+#: elf32-sh.c:5019
#, c-format
-msgid "%s: compiled as 32-bit object and %s is 64-bit"
-msgstr "%s: kompilerat som 32-bitarsobjekt och %s är 64-bitars"
+msgid "%H: warning: relocation to \"%s\" references a different segment\n"
+msgstr "%H: Varning: Flytt till \"%s\" refererar till ett annat segment\n"
-#: elf32-sh64.c:227 elf64-sh64.c:2321
+#: elf32-sh.c:5487 elf32-sh.c:5569
#, c-format
-msgid "%s: compiled as 64-bit object and %s is 32-bit"
-msgstr "%s: kompilerat som 64-bitarsobjekt och %s är 32-bitars"
+msgid "%pB: `%s' accessed both as normal and FDPIC symbol"
+msgstr "%pB: `%s' åtkom både som normal och FDPIC-symbol"
-#: elf32-sh64.c:229 elf64-sh64.c:2323
+#: elf32-sh.c:5493 elf32-sh.c:5574
#, c-format
-msgid "%s: object size does not match that of target %s"
-msgstr "%s: objektstorleken stämmer inte överens med den hos målet %s"
+msgid "%pB: `%s' accessed both as FDPIC and thread local symbol"
+msgstr "%pB: `%s' åtkom både som FDPIC och trådlokal symbol"
-#: elf32-sh64.c:452 elf64-sh64.c:2839
+#: elf32-sh.c:5524
#, c-format
-msgid "%s: encountered datalabel symbol in input"
-msgstr "%s: påträffade dataetikettssymbol i indata"
+msgid "%pB: Function descriptor relocation with non-zero addend"
+msgstr "%pB: Flytt av funktionsdeskriptor med addend som inte är noll"
-#: elf32-sh64.c:529
-msgid "PTB mismatch: a SHmedia address (bit 0 == 1)"
-msgstr "PTB passar inte: en SHmedia-adress (bit 0 == 1)"
+#: elf32-sh.c:5731 elf64-alpha.c:4645
+#, c-format
+msgid "%pB: TLS local exec code cannot be linked into shared objects"
+msgstr "%pB: TLS lokal exekveringskod kan inte länkas till delade objekt"
-#: elf32-sh64.c:532
-msgid "PTA mismatch: a SHcompact address (bit 0 == 0)"
-msgstr "PTA passar inte: en SHcompact-adress (bit 0 == 0)"
+#: elf32-sh.c:5846
+#, c-format
+msgid "%pB: uses %s instructions while previous modules use %s instructions"
+msgstr "%pB: använder %s instruktioner medan tidigare moduler använder %s instruktioner"
-#: elf32-sh64.c:550
+#: elf32-sh.c:5858
#, c-format
-msgid "%s: GAS error: unexpected PTB insn with R_SH_PT_16"
-msgstr "%s: GAS-fel: oväntad PTB-instruktion med R_SH_PT_16"
+msgid "internal error: merge of architecture '%s' with architecture '%s' produced unknown architecture"
+msgstr "internt fel: sammanslagning av arkitektur \"%s\" med arkitektur \"%s\" gav okänd arkitektur"
-#: elf32-sh64.c:599
-msgid "%B: error: unaligned relocation type %d at %08x reloc %p\n"
-msgstr "%B: fel: ojusterad omlokaliseringstyp %d vid %08x omlokalisering %p\n"
+#: elf32-sh.c:5899
+#, c-format
+msgid "%pB: uses instructions which are incompatible with instructions used in previous modules"
+msgstr "%pB: använder instruktioner som inte är kompatibla med instruktioner som använts i tidigare moduler"
-#: elf32-sh64.c:675
+#: elf32-sh.c:5912
#, c-format
-msgid "%s: could not write out added .cranges entries"
-msgstr "%s: kunde inte skriva ut tillagda .cranges-poster"
+msgid "%pB: attempt to mix FDPIC and non-FDPIC objects"
+msgstr "%pB: försök att blanda FDPIC- och icke-FDPIC-objekt"
-#: elf32-sh64.c:735
+#: elf32-sparc.c:89
#, c-format
-msgid "%s: could not write out sorted .cranges entries"
-msgstr "%s: kunde inte skriva ut sorterade cranges-poster"
+msgid "%pB: compiled for a 64 bit system and target is 32 bit"
+msgstr "%pB: kompilerad för ett 64 bitars system och målet är 32 bitars"
-#: elf32-sparc.c:90
-msgid "%B: compiled for a 64 bit system and target is 32 bit"
-msgstr "%B: kompilerad för ett 64-bitars system medan destinationen är 32-bitar"
+#: elf32-sparc.c:102
+#, c-format
+msgid "%pB: linking little endian files with big endian files"
+msgstr "%pB: länka små endian-filer med stora endian-filer"
-#: elf32-sparc.c:103
-msgid "%B: linking little endian files with big endian files"
-msgstr "%B: länkar filer med omvänd byteordning med rak byteordning"
+#: elf32-sparc.c:157
+#, c-format
+msgid "%pB: unhandled sparc machine value '%lu' detected during write processing"
+msgstr "%pB: ohanterat sparc-maskinvärde '%lu' upptäcktes under skrivbearbetning"
-#: elf32-spu.c:716
-msgid "%X%P: overlay section %A does not start on a cache line.\n"
-msgstr "%X%P: överläggssektion %A börjar inte på en cache-rad.\n"
+#: elf32-spu.c:733
+msgid "%X%P: overlay section %pA does not start on a cache line\n"
+msgstr "%X%P: overlay-sektionen %pA börjar inte på en cache-rad\n"
-#: elf32-spu.c:724
-msgid "%X%P: overlay section %A is larger than a cache line.\n"
-msgstr "%X%P: överläggssektion %A är större än en cache-rad.\n"
+#: elf32-spu.c:741
+msgid "%X%P: overlay section %pA is larger than a cache line\n"
+msgstr "%X%P: overlay-sektionen %pA är större än en cache-rad\n"
-#: elf32-spu.c:744
-msgid "%X%P: overlay section %A is not in cache area.\n"
-msgstr "%X%P: överläggssektion %A finns inte i cache-området.\n"
+#: elf32-spu.c:761
+msgid "%X%P: overlay section %pA is not in cache area\n"
+msgstr "%X%P: overlay-sektionen %pA finns inte i cache-området\n"
-#: elf32-spu.c:784
-msgid "%X%P: overlay sections %A and %A do not start at the same address.\n"
-msgstr "%X%P: överläggssektionen %A och %A börjar inte på samma adress.\n"
+#: elf32-spu.c:802
+#, c-format
+msgid "%X%P: overlay sections %pA and %pA do not start at the same address\n"
+msgstr "%X%P: överlagringssektionerna %pA och %pA börjar inte på samma adress\n"
-#: elf32-spu.c:1008
-msgid "warning: call to non-function symbol %s defined in %B"
-msgstr "varning: anrop till icke-funktionssymbolen %s definierat i %B"
+#: elf32-spu.c:1028
+#, c-format
+msgid "warning: call to non-function symbol %s defined in %pB"
+msgstr "warning: anrop till icke-funktionssymbolen %s definierad i %pB"
-#: elf32-spu.c:1358
-msgid "%A:0x%v lrlive .brinfo (%u) differs from analysis (%u)\n"
-msgstr "%A: 0x%v lrlive .brinfo (%u) skiljer sig från analys (%u)\n"
+#: elf32-spu.c:1378
+#, c-format
+msgid "%pA:0x%v lrlive .brinfo (%u) differs from analysis (%u)\n"
+msgstr "%pA:0x%v lrlive .brinfo (%u) skiljer sig från analys (%u)\n"
-#: elf32-spu.c:1877
-msgid "%B is not allowed to define %s"
-msgstr "%B har inte tillstånd att definiera %s"
+#: elf32-spu.c:1908
+#, c-format
+msgid "%pB is not allowed to define %s"
+msgstr "%pB har inte rätt att definiera %s"
-#: elf32-spu.c:1885
+#: elf32-spu.c:1916
#, c-format
msgid "you are not allowed to define %s in a script"
msgstr "du har inte tillstånd att definiera %s i ett skript"
-#: elf32-spu.c:1919
+#: elf32-spu.c:1950
#, c-format
msgid "%s in overlay section"
msgstr "%s i överläggssektion"
-#: elf32-spu.c:1948
+#: elf32-spu.c:1979
msgid "overlay stub relocation overflow"
msgstr "omlokalisering för överläggsstubbe spillde över"
-#: elf32-spu.c:1957
+#: elf32-spu.c:1988 elf64-ppc.c:15362
msgid "stubs don't match calculated size"
msgstr "stubbar stämmer inte överens med beräknad storlek"
-#: elf32-spu.c:2539
+#: elf32-spu.c:2571
#, c-format
msgid "warning: %s overlaps %s\n"
msgstr "varning: %s överlappar %s\n"
-#: elf32-spu.c:2555
+#: elf32-spu.c:2587
#, c-format
msgid "warning: %s exceeds section size\n"
msgstr "varning: %s överstiger sektionens storlek\n"
-#: elf32-spu.c:2586
-msgid "%A:0x%v not found in function table\n"
-msgstr "%A:0x%v hittades inte i funktionstabellen\n"
-
-#: elf32-spu.c:2726
-msgid "%B(%A+0x%v): call to non-code section %B(%A), analysis incomplete\n"
-msgstr "%B(%A+0x%v): anrop till icke-kodsektion %B(%A), analys inte slutförd\n"
-
-#: elf32-spu.c:3294
+#: elf32-spu.c:2619
#, c-format
-msgid "Stack analysis will ignore the call from %s to %s\n"
-msgstr "Stackanalys kommer ignorera anropet från %s till %s\n"
+msgid "%pA:0x%v not found in function table\n"
+msgstr "%pA:0x%v hittades inte i funktionstabellen\n"
-#: elf32-spu.c:3985
-msgid " %s: 0x%v\n"
-msgstr " %s: 0x%v\n"
+#: elf32-spu.c:2760
+#, c-format
+msgid "%pB(%pA+0x%v): call to non-code section %pB(%pA), analysis incomplete\n"
+msgstr "%pB(%pA+0x%v): anrop till icke-kodavsnitt %pB(%pA), analys ofullständig\n"
-#: elf32-spu.c:3986
-msgid "%s: 0x%v 0x%v\n"
-msgstr "%s: 0x%v 0x%v\n"
+#: elf32-spu.c:3326
+#, c-format
+msgid "stack analysis will ignore the call from %s to %s\n"
+msgstr "stackanalysen ignorerar anropet från %s till %s\n"
-#: elf32-spu.c:3991
+#: elf32-spu.c:4023
msgid " calls:\n"
msgstr " anrop:\n"
-#: elf32-spu.c:3999
-#, c-format
-msgid " %s%s %s\n"
-msgstr " %s%s %s\n"
-
-#: elf32-spu.c:4304
+#: elf32-spu.c:4338
#, c-format
msgid "%s duplicated in %s\n"
msgstr "%s duplicerad i %s\n"
-#: elf32-spu.c:4308
+#: elf32-spu.c:4342
#, c-format
msgid "%s duplicated\n"
msgstr "%s duplicerad\n"
-#: elf32-spu.c:4315
+#: elf32-spu.c:4349
msgid "sorry, no support for duplicate object files in auto-overlay script\n"
msgstr "tyvärr, inget stöd för duplicerade objektfiler i auto-överläggsskript\n"
-#: elf32-spu.c:4356
+#: elf32-spu.c:4391
+#, c-format
msgid "non-overlay size of 0x%v plus maximum overlay size of 0x%v exceeds local store\n"
msgstr "icke-överläggsstorlek på 0x%v plus största överläggsstorlek på 0x%v överstiger lokal lagring\n"
-#: elf32-spu.c:4511
-msgid "%B:%A%s exceeds overlay size\n"
-msgstr "%B:%A%s överstiger överläggsstorlek\n"
+#: elf32-spu.c:4547
+#, c-format
+msgid "%pB:%pA%s exceeds overlay size\n"
+msgstr "%pB:%pA%s överskrider överläggets storlek\n"
+
+#: elf32-spu.c:4688
+msgid "%F%P: auto overlay error: %E\n"
+msgstr "%F%P: fel i automatisk överlagring: %E\n"
-#: elf32-spu.c:4673
+#: elf32-spu.c:4709
msgid "Stack size for call graph root nodes.\n"
msgstr "Stackstorlek för anropsgrafens rotnoder.\n"
-#: elf32-spu.c:4674
+#: elf32-spu.c:4710
msgid ""
"\n"
"Stack size for functions. Annotations: '*' max stack, 't' tail call\n"
@@ -2629,1477 +3795,2856 @@ msgstr ""
"\n"
"Stackstorlek för funktioner. Annoteringar: â€*†max stack, â€t†tail-anrop\n"
-#: elf32-spu.c:4684
+#: elf32-spu.c:4720
msgid "Maximum stack required is 0x%v\n"
msgstr "Maximal stack som krävs är 0x%v\n"
-#: elf32-spu.c:4775
+#: elf32-spu.c:4739
+msgid "%X%P: stack/lrlive analysis error: %E\n"
+msgstr "%X%P: fel vid analys av stack/lrlive: %E\n"
+
+#: elf32-spu.c:4742
+msgid "%F%P: can not build overlay stubs: %E\n"
+msgstr "%F%P: kan inte bygga överlagringsstubbar: %E\n"
+
+#: elf32-spu.c:4811
msgid "fatal error while creating .fixup"
msgstr "ödesdigert fel när .fixup skapades"
-#: elf32-spu.c:5005
-msgid "%B(%s+0x%lx): unresolvable %s relocation against symbol `%s'"
-msgstr "%B(%s+0x%lx): olöslig %s-omlokalisering mot symbol â€%sâ€"
+#: elf32-spu.c:5047
+#, c-format
+msgid "%pB(%s+%#<PRIx64>): unresolvable %s relocation against symbol `%s'"
+msgstr "%pB(%s+%#<PRIx64>): olöslig %s omplacering mot symbolen `%s'"
-#: elf32-tic6x.c:1600
+#: elf32-tic6x.c:1587
msgid "warning: generating a shared library containing non-PIC code"
msgstr "varning: generera ett delat bibliotek innehållandes icke-PIC-kod"
-#: elf32-tic6x.c:1605
+#: elf32-tic6x.c:1592
msgid "warning: generating a shared library containing non-PID code"
msgstr "varning: generera ett delat bibliotek innehållandes icke-PID-kod"
-#: elf32-tic6x.c:2524
-msgid "%B: SB-relative relocation but __c6xabi_DSBT_BASE not defined"
-msgstr "%B: SB-relativ omlokalisering, men __c6xabi_DSBT_BASE har inte definierats"
+#: elf32-tic6x.c:2426
+#, c-format
+msgid "%pB: SB-relative relocation but __c6xabi_DSBT_BASE not defined"
+msgstr "%pB: SB-relativ omlokalisering men __c6xabi_DSBT_BASE inte definierad"
-#: elf32-tic6x.c:3648
-msgid "%B: error: unknown mandatory EABI object attribute %d"
-msgstr "%B: fel: okänt tvingande EABI-objektattribut %d"
+#: elf32-tic6x.c:3490
+#, c-format
+msgid "%pB: error: unknown mandatory EABI object attribute %d"
+msgstr "%pB: fel: okänt obligatoriskt EABI-objektattribut %d"
-#: elf32-tic6x.c:3656
-msgid "%B: warning: unknown EABI object attribute %d"
-msgstr "%B: varning: okänt EABI-objektattribut %d"
+#: elf32-tic6x.c:3499
+#, c-format
+msgid "%pB: warning: unknown EABI object attribute %d"
+msgstr "%pB: varning: okänt EABI-objektattribut %d"
+
+#: elf32-tic6x.c:3617 elf32-tic6x.c:3626
+#, c-format
+msgid "error: %pB requires more stack alignment than %pB preserves"
+msgstr "fel: %pB kräver mer stackjustering än %pB bevarar"
-#: elf32-tic6x.c:3768 elf32-tic6x.c:3776
-msgid "error: %B requires more stack alignment than %B preserves"
-msgstr "fel: %B kräver mer stackrättning än %B bevarar"
+#: elf32-tic6x.c:3636 elf32-tic6x.c:3645
+#, c-format
+msgid "error: unknown Tag_ABI_array_object_alignment value in %pB"
+msgstr "fel: okänt Tag_ABI_array_object_alignment-värde i %pB"
-#: elf32-tic6x.c:3786 elf32-tic6x.c:3795
-msgid "error: unknown Tag_ABI_array_object_alignment value in %B"
-msgstr "fel: okänt Tag_ABI_array_object_alignment-värde i %B"
+#: elf32-tic6x.c:3654 elf32-tic6x.c:3663
+#, c-format
+msgid "error: unknown Tag_ABI_array_object_align_expected value in %pB"
+msgstr "fel: okänt Tag_ABI_array_object_align_expected-värde i %pB"
-#: elf32-tic6x.c:3804 elf32-tic6x.c:3813
-msgid "error: unknown Tag_ABI_array_object_align_expected value in %B"
-msgstr "fel: okänt Tag_ABI_array_object_align_expected-värde i %B"
+#: elf32-tic6x.c:3672 elf32-tic6x.c:3680
+#, c-format
+msgid "error: %pB requires more array alignment than %pB preserves"
+msgstr "fel: %pB kräver mer arrayjustering än %pB bevarar"
-#: elf32-tic6x.c:3821 elf32-tic6x.c:3828
-msgid "error: %B requires more array alignment than %B preserves"
-msgstr "fel: %B kräver mer vektorjustering än %B bevarar"
+#: elf32-tic6x.c:3703
+#, c-format
+msgid "warning: %pB and %pB differ in wchar_t size"
+msgstr "varning: %pB och %pB skiljer sig åt i wchar_t-storlek"
-#: elf32-tic6x.c:3850
-msgid "warning: %B and %B differ in wchar_t size"
-msgstr "varning: %B och %B skiljer i wchar_t-storlek"
+#: elf32-tic6x.c:3722
+#, c-format
+msgid "warning: %pB and %pB differ in whether code is compiled for DSBT"
+msgstr "varning: %pB och %pB skiljer sig åt när det gäller om koden är kompilerad för DSBT"
-#: elf32-tic6x.c:3868
-msgid "warning: %B and %B differ in whether code is compiled for DSBT"
-msgstr "varning: %B och %B skiljer sig ifråga om koden är kompilerad för DSBT eller ej"
+#: elf32-tilepro.c:3624 elfxx-tilegx.c:4017 elfxx-x86.c:2773
+#: elfnn-aarch64.c:10343 elfnn-kvx.c:4628 elfnn-loongarch.c:6062
+#: elfnn-riscv.c:3615
+#, c-format
+msgid "discarded output section: `%pA'"
+msgstr "kasserat utdataavsnitt: `%pA'"
-#: elf32-v850.c:157
+#: elf32-v850.c:152
#, c-format
-msgid "Variable `%s' cannot occupy in multiple small data regions"
-msgstr "Variabel â€%s†kan inte befinna sig i flera smÃ¥ dataomrÃ¥den"
+msgid "variable `%s' cannot occupy in multiple small data regions"
+msgstr "variabeln `%s' kan inte rymmas i flera små dataregioner"
-#: elf32-v850.c:160
+#: elf32-v850.c:155
#, c-format
-msgid "Variable `%s' can only be in one of the small, zero, and tiny data regions"
-msgstr "Variabel â€%s†kan bara vara i ett av de smÃ¥, tomma och pyttesmÃ¥ dataomrÃ¥dena"
+msgid "variable `%s' can only be in one of the small, zero, and tiny data regions"
+msgstr "variabeln `%s' kan bara finnas i en av dataregionerna small, zero och tiny"
-#: elf32-v850.c:163
+#: elf32-v850.c:158
#, c-format
-msgid "Variable `%s' cannot be in both small and zero data regions simultaneously"
-msgstr "Variabel â€%s†kan inte vara i bÃ¥de smÃ¥ och tomma dataomrÃ¥den samtidigt"
+msgid "variable `%s' cannot be in both small and zero data regions simultaneously"
+msgstr "variabeln `%s' kan inte finnas i både små och noll dataregioner samtidigt"
-#: elf32-v850.c:166
+#: elf32-v850.c:161
#, c-format
-msgid "Variable `%s' cannot be in both small and tiny data regions simultaneously"
-msgstr "Variabel â€%s†kan inte vara i bÃ¥de smÃ¥ och pyttesmÃ¥ dataomrÃ¥den samtidigt"
+msgid "variable `%s' cannot be in both small and tiny data regions simultaneously"
+msgstr "variabeln `%s' kan inte finnas i både små och stora dataregioner samtidigt"
-#: elf32-v850.c:169
+#: elf32-v850.c:164
#, c-format
-msgid "Variable `%s' cannot be in both zero and tiny data regions simultaneously"
-msgstr "Variabel â€%s†kan inte vara i bÃ¥de tomma och pyttesmÃ¥ dataomrÃ¥den samtidigt"
+msgid "variable `%s' cannot be in both zero and tiny data regions simultaneously"
+msgstr "variabeln `%s' kan inte vara i både noll- och tiny-dataregioner samtidigt"
-#: elf32-v850.c:467
-msgid "FAILED to find previous HI16 reloc"
-msgstr "KUNDE INTE HITTA föregående HI16-omlokalisering"
+#: elf32-v850.c:466
+msgid "failed to find previous HI16 reloc"
+msgstr "kunde inte hitta tidigare HI16 reloc"
-#: elf32-v850.c:2293
+#: elf32-v850.c:2309
msgid "could not locate special linker symbol __gp"
msgstr "kunde inte lokalisera speciell länkarsymbol __gp"
-#: elf32-v850.c:2297
+#: elf32-v850.c:2313
msgid "could not locate special linker symbol __ep"
msgstr "kunde inte lokalisera speciell länkarsymbol __ep"
-#: elf32-v850.c:2301
+#: elf32-v850.c:2317
msgid "could not locate special linker symbol __ctbp"
msgstr "kunde inte lokalisera speciell länkarsymbol __ctbp"
-#: elf32-v850.c:2471 elf32-v850.c:2534
-msgid "%B: Architecture mismatch with previous modules"
-msgstr "%B: Arkitekturen stämmer inte överens med föregående moduler"
+#: elf32-v850.c:2538
+#, c-format
+msgid "error: %pB needs 8-byte alignment but %pB is set for 4-byte alignment"
+msgstr "fel: %pB behöver 8-bytesjustering men %pB är inställd för 4-bytejustering"
+
+#: elf32-v850.c:2554
+#, c-format
+msgid "error: %pB uses 64-bit doubles but %pB uses 32-bit doubles"
+msgstr "fel: %pB använder 64-bitars dubblar men %pB använder 32-bitars dubblar"
+
+#: elf32-v850.c:2569
+#, c-format
+msgid "error: %pB uses FPU-3.0 but %pB only supports FPU-2.0"
+msgstr "fel: %pB använder FPU-3.0 men %pB stöder bara FPU-2.0"
+
+#: elf32-v850.c:2601
+#, c-format
+msgid " alignment of 8-byte entities: "
+msgstr " inriktning av 8-byte-enheter: "
+
+#: elf32-v850.c:2604
+#, c-format
+msgid "4-byte"
+msgstr "4 byte"
+
+#: elf32-v850.c:2605
+#, c-format
+msgid "8-byte"
+msgstr "8 byte"
+
+#: elf32-v850.c:2606 elf32-v850.c:2618
+#, c-format
+msgid "not set"
+msgstr "inte inställd"
+
+#: elf32-v850.c:2607 elf32-v850.c:2619 elf32-v850.c:2631 elf32-v850.c:2642
+#: elf32-v850.c:2653 elf32-v850.c:2664
+#, c-format
+msgid "unknown: %x"
+msgstr "okänd: %x"
+
+#: elf32-v850.c:2613
+#, c-format
+msgid " size of doubles: "
+msgstr " storlek på dubbletter: "
+
+#: elf32-v850.c:2616
+#, c-format
+msgid "4-bytes"
+msgstr "4 byte"
+
+#: elf32-v850.c:2617
+#, c-format
+msgid "8-bytes"
+msgstr "8 byte"
+
+#: elf32-v850.c:2625
+#, c-format
+msgid " FPU support required: "
+msgstr " FPU-stöd krävs: "
+
+#: elf32-v850.c:2628
+#, c-format
+msgid "FPU-2.0"
+msgstr "FPU-2.0"
+
+#: elf32-v850.c:2629
+#, c-format
+msgid "FPU-3.0"
+msgstr "FPU-3.0"
+
+#: elf32-v850.c:2630
+#, c-format
+msgid "none"
+msgstr "ingen"
+
+#: elf32-v850.c:2637
+#, c-format
+msgid "SIMD use: "
+msgstr "SIMD-användning: "
+
+#: elf32-v850.c:2640 elf32-v850.c:2651 elf32-v850.c:2662
+#, c-format
+msgid "yes"
+msgstr "ja"
+
+#: elf32-v850.c:2641 elf32-v850.c:2652 elf32-v850.c:2663
+#, c-format
+msgid "no"
+msgstr "nej"
-#: elf32-v850.c:2478
-msgid "%B: Alignment mismatch with previous modules"
-msgstr "%B: Justering stämde inte med föregående moduler"
+#: elf32-v850.c:2648
+#, c-format
+msgid "CACHE use: "
+msgstr "CACHE-användning: "
+
+#: elf32-v850.c:2659
+#, c-format
+msgid "MMU use: "
+msgstr "MMU-användning: "
+
+#: elf32-v850.c:2826 elf32-v850.c:2882
+#, c-format
+msgid "%pB: architecture mismatch with previous modules"
+msgstr "%pB: Arkitekturen stämmer inte överens med tidigare moduler"
#. xgettext:c-format.
-#: elf32-v850.c:2553
+#: elf32-v850.c:2900
#, c-format
msgid "private flags = %lx: "
msgstr "privata flaggor = %lx: "
-#: elf32-v850.c:2558
+#: elf32-v850.c:2905
#, c-format
msgid "unknown v850 architecture"
msgstr "okänd v850-arkitektur"
-#: elf32-v850.c:2560
+#: elf32-v850.c:2907
#, c-format
msgid "v850 E3 architecture"
msgstr "v850 E3-arkitektur"
-#: elf32-v850.c:2562 elf32-v850.c:2572
+#: elf32-v850.c:2909 elf32-v850.c:2916
#, c-format
msgid "v850 architecture"
msgstr "v850-arkitektur"
-#: elf32-v850.c:2565
-#, c-format
-msgid ", 8-byte data alignment"
-msgstr ", 8-bytedatajustering"
-
-#: elf32-v850.c:2573
+#: elf32-v850.c:2917
#, c-format
msgid "v850e architecture"
msgstr "v850e-arkitektur"
-#: elf32-v850.c:2574
+#: elf32-v850.c:2918
#, c-format
msgid "v850e1 architecture"
msgstr "v850e1-arkitektur"
-#: elf32-v850.c:2575
+#: elf32-v850.c:2919
#, c-format
msgid "v850e2 architecture"
msgstr "v850e2-arkitektur"
-#: elf32-v850.c:2576
+#: elf32-v850.c:2920
#, c-format
msgid "v850e2v3 architecture"
msgstr "v850e2v3-arkitektur"
-#: elf32-v850.c:2577
+#: elf32-v850.c:2921
#, c-format
msgid "v850e3v5 architecture"
msgstr "v850e3v5-arkitektur"
-#: elf32-vax.c:532
+#: elf32-v850.c:3595 elf32-v850.c:3834
+#, c-format
+msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized insns"
+msgstr "%pB: %#<PRIx64>: varning: %s pekar på oigenkända insns"
+
+#: elf32-v850.c:3605 elf32-v850.c:3844
+#, c-format
+msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized insn %#x"
+msgstr "%pB: %#<PRIx64>: varning: %s pekar på oigenkänd insn %#x"
+
+#: elf32-v850.c:3651 elf32-v850.c:3879
+#, c-format
+msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized reloc"
+msgstr "%pB: %#<PRIx64>: varning: %s pekar på en okänd relokalisering"
+
+#: elf32-v850.c:3691
+#, c-format
+msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized reloc %#<PRIx64>"
+msgstr "%pB: %#<PRIx64>: varning: %s pekar på oigenkänd reloc %#<PRIx64>"
+
+#: elf32-vax.c:537
#, c-format
msgid " [nonpic]"
msgstr " [icke-pic]"
-#: elf32-vax.c:535
+#: elf32-vax.c:540
#, c-format
msgid " [d-float]"
msgstr " [d-flyttal]"
-#: elf32-vax.c:538
+#: elf32-vax.c:543
#, c-format
msgid " [g-float]"
msgstr " [g-flyttal]"
-#: elf32-vax.c:656
+#: elf32-vax.c:629
+#, c-format
+msgid "%pB: warning: GOT addend of %<PRId64> to `%s' does not match previous GOT addend of %<PRId64>"
+msgstr "%pB: varning: GOT-tillägget %<PRId64> till `%s' matchar inte tidigare GOT-tillägg av %<PRId64>"
+
+#: elf32-vax.c:1387
#, c-format
-msgid "%s: warning: GOT addend of %ld to `%s' does not match previous GOT addend of %ld"
-msgstr "%s: varning: GOT-addend %ld till â€%s†stämmer inte överens med tidigare GOT-addend %ld"
+msgid "%pB: warning: PLT addend of %<PRId64> to `%s' from %pA section ignored"
+msgstr "%pB: varning: PLT-tillägget %<PRId64> till `%s' från %pA-avsnittet ignoreras"
-#: elf32-vax.c:1543
+#: elf32-vax.c:1513
#, c-format
-msgid "%s: warning: PLT addend of %d to `%s' from %s section ignored"
-msgstr "%s: varning: PLT-addend %d till â€%s†frÃ¥n sektionen %s ignorerades"
+msgid "%pB: warning: %s relocation against symbol `%s' from %pA section"
+msgstr "%pB: varning: %s relokalisering mot symbolen `%s' från %pA avsnitt"
-#: elf32-vax.c:1668
+#: elf32-vax.c:1520
#, c-format
-msgid "%s: warning: %s relocation against symbol `%s' from %s section"
-msgstr "%s: varning: %s-omlokalisering mot symbolen â€%s†frÃ¥n sektionen %s"
+msgid "%pB: warning: %s relocation to %#<PRIx64> from %pA section"
+msgstr "%pB: varning: %s flyttas till %#<PRIx64> från %pA avsnitt"
-#: elf32-vax.c:1674
+#: elf32-visium.c:824
#, c-format
-msgid "%s: warning: %s relocation to 0x%x from %s section"
-msgstr "%s: varning: %s-omlokalisering till 0x%x från sektionen %s"
+msgid "%pB: compiled %s -mtune=%s and linked with modules compiled %s -mtune=%s"
+msgstr "%pB: kompilerad %s -mtune=%s och länkad med moduler kompilerade %s -mtune=%s"
-#: elf32-xgate.c:686
+#: elf32-xgate.c:506
#, c-format
msgid "cpu=XGATE]"
msgstr "cpu=XGATE]"
-#: elf32-xgate.c:688
+#: elf32-xgate.c:508
#, c-format
msgid "error reading cpu type from elf private data"
msgstr "fel vid läsning av cpu-typ från privat elf-data"
-#: elf32-xstormy16.c:455 elf64-ia64-vms.c:2072 elf32-ia64.c:2330
-#: elf64-ia64.c:2330
+#: elf32-xstormy16.c:457 elf64-ia64-vms.c:2076 elfnn-ia64.c:2345
msgid "non-zero addend in @fptr reloc"
msgstr "icke-tom addend i @fptr-omlokalisering"
-#: elf32-xtensa.c:908
-msgid "%B(%A): invalid property table"
-msgstr "%B(%A): ogiltig egenskapstabell"
+#: elf32-xtensa.c:996
+#, c-format
+msgid "%pB(%pA): invalid property table"
+msgstr "%pB(%pA): ogiltig egenskapstabell"
-#: elf32-xtensa.c:2774
-msgid "%B(%A+0x%lx): relocation offset out of range (size=0x%x)"
-msgstr "%B(%A+0x%lx): omlokaliseringsförskjutning utanför intervall (storlek=0x%x)"
+#: elf32-xtensa.c:2730
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): relocation offset out of range (size=%#<PRIx64>)"
+msgstr "%pB(%pA+%#<PRIx64>): flyttningsoffset utanför intervallet (storlek=%#<PRIx64>)"
-#: elf32-xtensa.c:2853 elf32-xtensa.c:2974
+#: elf32-xtensa.c:2813 elf32-xtensa.c:2936
msgid "dynamic relocation in read-only section"
msgstr "dynamisk omlokalisering i skrivskyddad sektion"
-#: elf32-xtensa.c:2950
+#: elf32-xtensa.c:2913
msgid "TLS relocation invalid without dynamic sections"
msgstr "TLS-omlokalisering ogiltig utan dynamiska sektioner"
-#: elf32-xtensa.c:3169
+#: elf32-xtensa.c:3126
msgid "internal inconsistency in size of .got.loc section"
msgstr "intern inkonsekvens i storleken för .got.loc-sektionen"
-#: elf32-xtensa.c:3482
-msgid "%B: incompatible machine type. Output is 0x%x. Input is 0x%x"
-msgstr "%B: inkompatibel maskintyp. Utdata är 0x%x. Indata är 0x%x"
+#: elf32-xtensa.c:3432
+#, c-format
+msgid "%pB: incompatible machine type; output is 0x%x; input is 0x%x"
+msgstr "%pB: inkompatibel maskintyp; utdata är 0x%x; indata är 0x%x"
-#: elf32-xtensa.c:4713 elf32-xtensa.c:4721
-msgid "Attempt to convert L32R/CALLX to CALL failed"
-msgstr "Försök att konvertera L32R/CALLX till CALL misslyckades"
+#: elf32-xtensa.c:4731 elf32-xtensa.c:4739
+msgid "attempt to convert L32R/CALLX to CALL failed"
+msgstr "försöket att omvandla L32R/CALLX till CALL misslyckades"
-#: elf32-xtensa.c:6330 elf32-xtensa.c:6406 elf32-xtensa.c:7522
-msgid "%B(%A+0x%lx): could not decode instruction; possible configuration mismatch"
-msgstr "%B(%A+0x%lx): kunde inte avkoda instruktion; kanske stämmer inställningarna inte överens"
+#: elf32-xtensa.c:6567 elf32-xtensa.c:6646 elf32-xtensa.c:8072
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): could not decode instruction; possible configuration mismatch"
+msgstr "%pB(%pA+%#<PRIx64>): kunde inte avkoda instruktion; möjlig konfigurationsmissmatchning"
-#: elf32-xtensa.c:7262
-msgid "%B(%A+0x%lx): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch"
-msgstr "%B(%A+0x%lx): kunde inte avkoda instruktion för XTENSA_ASM_SIMPLIFY-omlokalisering; kanske stämmer inställningarna inte överens"
+#: elf32-xtensa.c:7813
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch"
+msgstr "%pB(%pA+%#<PRIx64>): kunde inte avkoda instruktion för XTENSA_ASM_SIMPLIFY-omlokalisering; möjlig konfigurationsmissmatchning"
-#: elf32-xtensa.c:9022
+#: elf32-xtensa.c:9671
msgid "invalid relocation address"
msgstr "ogiltig omlokaliseringsadress"
-#: elf32-xtensa.c:9071
+#: elf32-xtensa.c:9762
msgid "overflow after relaxation"
msgstr "överbelastning efter relax"
-#: elf32-xtensa.c:10203
-msgid "%B(%A+0x%lx): unexpected fix for %s relocation"
-msgstr "%B(%A+0x%lx): oväntad fix för %s-omlokalisering"
+#: elf32-xtensa.c:10908
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): unexpected fix for %s relocation"
+msgstr "%pB(%pA+%#<PRIx64>): oväntad korrigering för %s omlokalisering"
+
+#: elf32-z80.c:473
+#, c-format
+msgid "%pB: unsupported bfd mach %#lx"
+msgstr "%pB: bfd-maskin som inte stöds %#lx"
+
+#: elf32-z80.c:518
+#, c-format
+msgid "%pB: unsupported mach %#x"
+msgstr "%pB: maskin som inte stöds %#x"
+
+#: elf32-z80.c:546
+#, c-format
+msgid "%pB: unsupported arch %#x"
+msgstr "%pB: ark som inte stöds %#x"
-#: elf64-alpha.c:474
+#: elf64-alpha.c:472
msgid "GPDISP relocation did not find ldah and lda instructions"
msgstr "GPDISP-omlokalisering hittade inga ldah- och lda-instruktioner"
-#: elf64-alpha.c:2503
-msgid "%B: .got subsegment exceeds 64K (size %d)"
-msgstr "%B: .got-delsegment överstiger 64K (storlek %d)"
+#: elf64-alpha.c:1983
+#, c-format
+msgid "%pB: dynamic relocation against a local symbol in read-only section `%pA'\n"
+msgstr "%pB: dynamisk omplacering mot en lokal symbol i det skrivskyddade avsnittet `%pA'\n"
-#: elf64-alpha.c:4396 elf64-alpha.c:4408
-msgid "%B: gp-relative relocation against dynamic symbol %s"
-msgstr "%B: gp-relativ omlokalisering mot dynamisk symbol %s"
+#: elf64-alpha.c:2435
+#, c-format
+msgid "%pB: .got subsegment exceeds 64K (size %d)"
+msgstr "%pB: .got-undersegmentet överstiger 64K (storlek %d)"
-#: elf64-alpha.c:4434 elf64-alpha.c:4574
-msgid "%B: pc-relative relocation against dynamic symbol %s"
-msgstr "%B: pc-relativ omlokalisering mot dynamisk symbol %s"
+#: elf64-alpha.c:2678 elflink.c:15697 elfnn-kvx.c:4015 elfnn-loongarch.c:2007
+#, c-format
+msgid "%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"
+msgstr "%pB: dynamisk omplacering mot `%pT' i skrivskyddat avsnitt `%pA'\n"
-#: elf64-alpha.c:4462
-msgid "%B: change in gp: BRSGP %s"
-msgstr "%B: ändring i gp: BRSGP %s"
+#: elf64-alpha.c:2974 elf64-alpha.c:3169
+#, c-format
+msgid "%pB: %pA+%#<PRIx64>: warning: %s relocation against unexpected insn"
+msgstr "%pB: %pA+%#<PRIx64>: varning: %s omplacering mot oväntad insn"
+
+#: elf64-alpha.c:4369 elf64-alpha.c:4382
+#, c-format
+msgid "%pB: gp-relative relocation against dynamic symbol %s"
+msgstr "%pB: gp-relativ omlokalisering mot dynamisk symbol %s"
-#: elf64-alpha.c:4487
+#: elf64-alpha.c:4438
+#, c-format
+msgid "%pB: change in gp: BRSGP %s"
+msgstr "%pB: förändring i gp: BRSGP %s"
+
+#: elf64-alpha.c:4463 mach-o.c:625 elfnn-loongarch.c:908 elfnn-riscv.c:724
+#: elfnn-riscv.c:929 elfnn-riscv.c:971
msgid "<unknown>"
msgstr "<okänd>"
-#: elf64-alpha.c:4492
-msgid "%B: !samegp reloc against symbol without .prologue: %s"
-msgstr "%B: !samegp-omlokalisering mot symbol utan .prologue: %s"
+#: elf64-alpha.c:4469
+#, c-format
+msgid "%pB: !samegp reloc against symbol without .prologue: %s"
+msgstr "%pB: !samegp reloc mot symbol utan .prolog: %s"
+
+#: elf64-alpha.c:4527
+#, c-format
+msgid "%pB: unhandled dynamic relocation against %s"
+msgstr "%pB: ohanterad dynamisk omlokalisering mot %s"
+
+#: elf64-alpha.c:4562
+#, c-format
+msgid "%pB: pc-relative relocation against undefined weak symbol %s"
+msgstr "%pB: pc-relativ omlokalisering mot odefinierad svag symbol %s"
-#: elf64-alpha.c:4549
-msgid "%B: unhandled dynamic relocation against %s"
-msgstr "%B: ohanterad dynamisk omlokalisering mot %s"
+#: elf64-alpha.c:4628
+#, c-format
+msgid "%pB: dtp-relative relocation against dynamic symbol %s"
+msgstr "%pB: dtp-relativ relokalisering mot dynamisk symbol %s"
-#: elf64-alpha.c:4581
-msgid "%B: pc-relative relocation against undefined weak symbol %s"
-msgstr "%B: pc-relativ omlokalisering mot odefinierad svag symbol %s"
+#: elf64-alpha.c:4653
+#, c-format
+msgid "%pB: tp-relative relocation against dynamic symbol %s"
+msgstr "%pB: tp-relativ omplacering mot dynamisk symbol %s"
-#: elf64-alpha.c:4645
-msgid "%B: dtp-relative relocation against dynamic symbol %s"
-msgstr "%B: dtp-relativ omlokalisering mot dynamisk symbol %s"
+#. Only if it's not an unresolved symbol.
+#: elf64-bpf.c:344
+msgid "internal error: relocation not supported"
+msgstr "internt fel: Relokalisering stöds inte"
-#: elf64-alpha.c:4668
-msgid "%B: tp-relative relocation against dynamic symbol %s"
-msgstr "%B: tp-relativ omlokalisering mot dynamisk symbol %s"
+#: elf64-gen.c:71
+#, c-format
+msgid "%pB: Relocations in generic ELF (EM: %d)"
+msgstr "%pB: Omlokaliseringar i generisk ELF (EM: %d)"
-#: elf64-hppa.c:2084
+#: elf64-hppa.c:2035
#, c-format
-msgid "stub entry for %s cannot load .plt, dp offset = %ld"
-msgstr "stubbpost för %s kan inte läsa in .plt, dp-förskjutning = %ld"
+msgid "stub entry for %s cannot load .plt, dp offset = %<PRId64>"
+msgstr "stub entry för %s kan inte läsa in .plt, dp offset = %<PRId64>"
-#: elf64-hppa.c:3280
-msgid "%B(%A+0x%"
-msgstr "%B(%A+0x%"
+#: elf64-hppa.c:3239
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): cannot reach %s"
+msgstr "%pB(%pA+%#<PRIx64>): kan inte nå %s"
-#: elf64-ia64-vms.c:587 elf32-ia64.c:619 elf64-ia64.c:619
-msgid "%B: Can't relax br at 0x%lx in section `%A'. Please use brl or indirect branch."
-msgstr "%B: Kan inte relax br pÃ¥ 0x%lx i sektion â€%Aâ€. Använd brl eller indirekt gren."
+#: elf64-ia64-vms.c:600 elfnn-ia64.c:641
+#, c-format
+msgid "%pB: can't relax br at %#<PRIx64> in section `%pA'; please use brl or indirect branch"
+msgstr "%pB: kan inte slappna av br vid %#<PRIx64> i avsnitt `%pA'; använd brl eller indirekt gren"
-#: elf64-ia64-vms.c:2027 elf32-ia64.c:2278 elf64-ia64.c:2278
+#: elf64-ia64-vms.c:2031 elfnn-ia64.c:2293
msgid "@pltoff reloc against local symbol"
msgstr "@pltoff-omlokalisering mot lokal symbol"
-#: elf64-ia64-vms.c:3279 elf32-ia64.c:3684 elf64-ia64.c:3684
+#: elf64-ia64-vms.c:3278 elfnn-ia64.c:3671
#, c-format
-msgid "%s: short data segment overflowed (0x%lx >= 0x400000)"
-msgstr "%s: kort datasegment spillde över (0x%lx >= 0x400000)"
+msgid "%pB: short data segment overflowed (%#<PRIx64> >= 0x400000)"
+msgstr "%pB: kort datasegment överflödade (%#<PRIx64> >= 0x400000)"
-#: elf64-ia64-vms.c:3290 elf32-ia64.c:3695 elf64-ia64.c:3695
+#: elf64-ia64-vms.c:3288 elfnn-ia64.c:3681
#, c-format
-msgid "%s: __gp does not cover short data segment"
-msgstr "%s: __gp täcker inte kort datasegment"
+msgid "%pB: __gp does not cover short data segment"
+msgstr "%pB: __gp täcker inte kort datasegment"
-#: elf64-ia64-vms.c:3555 elf32-ia64.c:3962 elf64-ia64.c:3962
-msgid "%B: non-pic code with imm relocation against dynamic symbol `%s'"
-msgstr "%B: Icke-pic kod med imm-omlokalisering mot dynamisk symbol â€%sâ€"
+#: elf64-ia64-vms.c:3558 elfnn-ia64.c:3954
+#, c-format
+msgid "%pB: non-pic code with imm relocation against dynamic symbol `%s'"
+msgstr "%pB: icke-pic-kod med imm-relokalisering mot dynamisk symbol `%s'"
-#: elf64-ia64-vms.c:3617 elf32-ia64.c:4029 elf64-ia64.c:4029
-msgid "%B: @gprel relocation against dynamic symbol %s"
-msgstr "%B: @gprel-omlokalisering mot dynamisk symbol %s"
+#: elf64-ia64-vms.c:3622 elfnn-ia64.c:4022
+#, c-format
+msgid "%pB: @gprel relocation against dynamic symbol %s"
+msgstr "%pB: @gprel relokalisering mot dynamisk symbol %s"
-#: elf64-ia64-vms.c:3676 elf32-ia64.c:4092 elf64-ia64.c:4092
-msgid "%B: linking non-pic code in a position independent executable"
-msgstr "%B: Länkar icke-pic kod i en positionsoberoende körfil"
+#: elf64-ia64-vms.c:3681 elfnn-ia64.c:4085
+#, c-format
+msgid "%pB: linking non-pic code in a position independent executable"
+msgstr "%pB: länka icke-pic-kod i en positionsoberoende körbar fil"
-#: elf64-ia64-vms.c:3777 elf32-ia64.c:4229 elf64-ia64.c:4229
-msgid "%B: @internal branch to dynamic symbol %s"
-msgstr "%B: @internal-gren till dynamisk symbol %s"
+#: elf64-ia64-vms.c:3783 elfnn-ia64.c:4223
+#, c-format
+msgid "%pB: @internal branch to dynamic symbol %s"
+msgstr "%pB: @intern förgrening till dynamisk symbol %s"
-#: elf64-ia64-vms.c:3779 elf32-ia64.c:4231 elf64-ia64.c:4231
-msgid "%B: speculation fixup to dynamic symbol %s"
-msgstr "%B: Spekuleringsfix till dynamisk symbol %s"
+#: elf64-ia64-vms.c:3786 elfnn-ia64.c:4226
+#, c-format
+msgid "%pB: speculation fixup to dynamic symbol %s"
+msgstr "%pB: spekulationsfix för den dynamiska symbolen %s"
-#: elf64-ia64-vms.c:3781 elf32-ia64.c:4233 elf64-ia64.c:4233
-msgid "%B: @pcrel relocation against dynamic symbol %s"
-msgstr "%B: @pcrel-omlokalisering mot dynamisk symbol %s"
+#: elf64-ia64-vms.c:3789 elfnn-ia64.c:4229
+#, c-format
+msgid "%pB: @pcrel relocation against dynamic symbol %s"
+msgstr "%pB: @pcrel relokalisering mot dynamisk symbol %s"
-#: elf64-ia64-vms.c:3905 elf32-ia64.c:4430 elf64-ia64.c:4430
+#: elf64-ia64-vms.c:3913 elfnn-ia64.c:4426
msgid "unsupported reloc"
msgstr "omlokaliseringen stöds inte"
-#: elf64-ia64-vms.c:3942 elf32-ia64.c:4468 elf64-ia64.c:4468
-msgid "%B: missing TLS section for relocation %s against `%s' at 0x%lx in section `%A'."
-msgstr "%B: Saknar TLS-sektion för omlokalisering %s mot â€%s†pÃ¥ 0x%lx i sektion â€%Aâ€."
+#: elf64-ia64-vms.c:3950 elfnn-ia64.c:4464
+#, c-format
+msgid "%pB: missing TLS section for relocation %s against `%s' at %#<PRIx64> in section `%pA'."
+msgstr "%pB: TLS-avsnitt saknas för omlokalisering %s mot `%s' vid %#<PRIx64> i avsnitt `%pA'."
-#: elf64-ia64-vms.c:3957 elf32-ia64.c:4483 elf64-ia64.c:4483
-msgid "%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> 0x1000000)."
-msgstr "%B: Kan inte göra relax pÃ¥ br (%s) till â€%s†pÃ¥ 0x%lx i sektion â€%A†med storlek 0x%lx (> 0x1000000)."
+#: elf64-ia64-vms.c:3967 elfnn-ia64.c:4481
+#, c-format
+msgid "%pB: Can't relax br (%s) to `%s' at %#<PRIx64> in section `%pA' with size %#<PRIx64> (> 0x1000000)."
+msgstr "%pB: Kan inte slappna av br (%s) till `%s' vid %#<PRIx64> i avsnitt `%pA' med storlek %#<PRIx64> (> 0x1000000)."
-#: elf64-ia64-vms.c:4246 elf32-ia64.c:4745 elf64-ia64.c:4745
-msgid "%B: linking trap-on-NULL-dereference with non-trapping files"
-msgstr "%B: Länkar avbryt-vid-NOLL-dereferens med ickeavbrytande filer"
+#: elf64-ia64-vms.c:4261 elfnn-ia64.c:4740
+#, c-format
+msgid "%pB: linking trap-on-NULL-dereference with non-trapping files"
+msgstr "%pB: länka trap-on-NULL-dereference med icke-trappande filer"
-#: elf64-ia64-vms.c:4255 elf32-ia64.c:4754 elf64-ia64.c:4754
-msgid "%B: linking big-endian files with little-endian files"
-msgstr "%B: Länkar filer med rak byteordning med filer med omvänd byteordning"
+#: elf64-ia64-vms.c:4270 elfnn-ia64.c:4749
+#, c-format
+msgid "%pB: linking big-endian files with little-endian files"
+msgstr "%pB: länka big-endian-filer med little-endian-filer"
-#: elf64-ia64-vms.c:4264 elf32-ia64.c:4763 elf64-ia64.c:4763
-msgid "%B: linking 64-bit files with 32-bit files"
-msgstr "%B: Länkar 64 bit-filer med 32 bit-filer"
+#: elf64-ia64-vms.c:4279 elfnn-ia64.c:4758
+#, c-format
+msgid "%pB: linking 64-bit files with 32-bit files"
+msgstr "%pB: länka 64-bitarsfiler med 32-bitarsfiler"
-#: elf64-ia64-vms.c:4273 elf32-ia64.c:4772 elf64-ia64.c:4772
-msgid "%B: linking constant-gp files with non-constant-gp files"
-msgstr "%B: Länkar konstant-gp-filer med ickekonstant-gp-filer"
+#: elf64-ia64-vms.c:4288 elfnn-ia64.c:4767
+#, c-format
+msgid "%pB: linking constant-gp files with non-constant-gp files"
+msgstr "%pB: länka konstanta-gp-filer med icke-konstanta-gp-filer"
-#: elf64-ia64-vms.c:4283 elf32-ia64.c:4782 elf64-ia64.c:4782
-msgid "%B: linking auto-pic files with non-auto-pic files"
-msgstr "%B: Länkar auto-pic-filer med ickeauto-pic-filer"
+#: elf64-ia64-vms.c:4298 elfnn-ia64.c:4777
+#, c-format
+msgid "%pB: linking auto-pic files with non-auto-pic files"
+msgstr "%pB: länka auto-pic-filer med icke-auto-pic-filer"
-#: elf64-ia64-vms.c:5125 elflink.c:4299
-msgid "Warning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %A"
-msgstr "Varning: rättning %u för gemensam symbol â€%s†i %B är större än rättningen (%u) av dess sektion %A"
+#: elf64-ia64-vms.c:5148 elflink.c:5491
+#, c-format
+msgid "warning: alignment %u of common symbol `%s' in %pB is greater than the alignment (%u) of its section %pA"
+msgstr "warning: alignment %u för den gemensamma symbolen `%s' i %pB är större än alignment (%u) i dess avsnitt %pA"
-#: elf64-ia64-vms.c:5131 elflink.c:4305
-msgid "Warning: alignment %u of symbol `%s' in %B is smaller than %u in %B"
-msgstr "Varning: rättning %u för symbol â€%s†i %B är mindre än %u i %B"
+#: elf64-ia64-vms.c:5155
+#, c-format
+msgid "warning: alignment %u of symbol `%s' in %pB is smaller than %u in %pB"
+msgstr "warning: alignment %u av symbolen `%s' i %pB är mindre än %u i %pB"
-#: elf64-ia64-vms.c:5146 elflink.c:4321
-msgid "Warning: size of symbol `%s' changed from %lu in %B to %lu in %B"
-msgstr "Varning: storleken för symbol â€%s†ändrades frÃ¥n %lu i %B till %lu i %B"
+#: elf64-ia64-vms.c:5171 elflink.c:5520
+#, c-format
+msgid "warning: size of symbol `%s' changed from %<PRIu64> in %pB to %<PRIu64> in %pB"
+msgstr "warning: storleken på symbolen `%s' ändrades från %<PRIu64> i %pB till %<PRIu64> i %pB"
-#: elf64-mmix.c:986
-msgid ""
-"invalid input relocation when producing non-ELF, non-mmo format output.\n"
-" Please use the objcopy program to convert from ELF or mmo,\n"
-" or assemble using \"-no-expand\" (for gcc, \"-Wa,-no-expand\""
-msgstr ""
-"ogiltig inmatningsomlokalisering vid skapande av icke-ELF, icke-mmoformatutmatning.\n"
-" Använd objcopy-programmet för att konvertera från ELF till mmo,\n"
-" eller assemblera med â€-no-expand†(för gcc, â€-Wa,-no-expandâ€"
+#: elf64-mips.c:4102
+#, c-format
+msgid "%pB(%pA): relocation %<PRIu64> has invalid symbol index %ld"
+msgstr "%pB(%pA): förflyttning %<PRIu64> har ogiltigt symbolindex %ld"
-#: elf64-mmix.c:1170
-msgid ""
-"invalid input relocation when producing non-ELF, non-mmo format output.\n"
-" Please use the objcopy program to convert from ELF or mmo,\n"
-" or compile using the gcc-option \"-mno-base-addresses\"."
-msgstr ""
-"ogiltig inmatningsomlokalisering vid skapandet av icke-ELF, icke-mmoformatutmatning.\n"
-" Använd programmet objcopy till att konvertera från ELF eller mmo,\n"
-" eller kompilera genom flaggan gcc â€-mno-base-addressesâ€."
+#: elf64-mmix.c:980
+msgid "invalid input relocation when producing non-ELF, non-mmo format output; please use the objcopy program to convert from ELF or mmo, or assemble using \"-no-expand\" (for gcc, \"-Wa,-no-expand\""
+msgstr "ogiltig indataförflyttning när utdata i icke-ELF-, icke-mmo-format produceras; använd programmet objcopy för att konvertera från ELF eller mmo, eller montera med \"-no-expand\" (för gcc, \"-Wa,-no-expand\""
+
+#: elf64-mmix.c:1164
+msgid "invalid input relocation when producing non-ELF, non-mmo format output; please use the objcopy program to convert from ELF or mmo, or compile using the gcc-option \"-mno-base-addresses\"."
+msgstr "ogiltig indataförflyttning när utdata i icke-ELF-, icke-mmo-format produceras; använd programmet objcopy för att konvertera från ELF eller mmo, eller kompilera med gcc-alternativet \"-mno-base-addresses\"."
-#: elf64-mmix.c:1196
+#: elf64-mmix.c:1191
#, c-format
msgid ""
-"%s: Internal inconsistency error for value for\n"
-" linker-allocated global register: linked: 0x%lx%08lx != relaxed: 0x%lx%08lx\n"
+"%pB: Internal inconsistency error for value for\n"
+" linker-allocated global register: linked: %#<PRIx64> != relaxed: %#<PRIx64>"
msgstr ""
-"%s: Internt inkonsistensfel för värdet för\n"
-" länkarallokerat globalt register: länkat: 0x%lx%08lx != relaxed: 0x%lx%08lx\n"
+"%pB: Internt inkonsekvensfel för värdet för\n"
+" linker-allokerat globalt register: linked: %#<PRIx64> != relaxed: %#<PRIx64>"
-#: elf64-mmix.c:1618
+#: elf64-mmix.c:1615
#, c-format
-msgid "%s: base-plus-offset relocation against register symbol: (unknown) in %s"
-msgstr "%s: bas-plus-förskjutningsomlokalisering mot registersymbol: (okänd) i %s"
+msgid "%pB: base-plus-offset relocation against register symbol: (unknown) in %pA"
+msgstr "%pB: bas-plus-offset-omflyttning mot registersymbol: (okänd) i %pA"
-#: elf64-mmix.c:1623
+#: elf64-mmix.c:1621
#, c-format
-msgid "%s: base-plus-offset relocation against register symbol: %s in %s"
-msgstr "%s: bas-plus-förskjutningsomlokalisering mot registersymbol: %s i %s"
+msgid "%pB: base-plus-offset relocation against register symbol: %s in %pA"
+msgstr "%pB: bas-plus-offset-relokalisering mot registersymbol: %s i %pA"
-#: elf64-mmix.c:1667
+#: elf64-mmix.c:1666
#, c-format
-msgid "%s: register relocation against non-register symbol: (unknown) in %s"
-msgstr "%s: registeromlokalisering mot icke-registersymbol: (okänd) i %s"
+msgid "%pB: register relocation against non-register symbol: (unknown) in %pA"
+msgstr "%pB: registerflyttning mot icke-registersymbol: (okänd) i %pA"
#: elf64-mmix.c:1672
#, c-format
-msgid "%s: register relocation against non-register symbol: %s in %s"
-msgstr "%s: registeromlokalisering mot icke-registersymbol: %s i %s"
+msgid "%pB: register relocation against non-register symbol: %s in %pA"
+msgstr "%pB: registerflyttning mot icke-registersymbol: %s i %pA"
#: elf64-mmix.c:1709
#, c-format
-msgid "%s: directive LOCAL valid only with a register or absolute value"
-msgstr "%s: LOCAL-direktivet är endast giltigt med ett register eller absolutvärde"
+msgid "%pB: directive LOCAL valid only with a register or absolute value"
+msgstr "%pB: direktivet LOCAL gäller endast med ett register eller absolut värde"
-#: elf64-mmix.c:1739
+#: elf64-mmix.c:1738
#, c-format
-msgid "%s: LOCAL directive: Register $%ld is not a local register. First global register is $%ld."
-msgstr "%s: LOCAL-direktiv: Register $%ld är inte ett lokalt register. Första globala registret är $%ld."
+msgid "%pB: LOCAL directive: register $%<PRId64> is not a local register; first global register is $%<PRId64>"
+msgstr "%pB: LOCAL-direktiv: registret $%<PRId64> är inte ett lokalt register; det första globala registret är $%<PRId64>"
-#: elf64-mmix.c:2198
+#: elf64-mmix.c:2153
#, c-format
-msgid "%s: Error: multiple definition of `%s'; start of %s is set in a earlier linked file\n"
-msgstr "%s: Fel: flera definitioner av â€%sâ€; början pÃ¥ %s är inställd i en tidigare länkad fil\n"
+msgid "%pB: error: multiple definition of `%s'; start of %s is set in a earlier linked file"
+msgstr "%pB: fel: flera definitioner av `%s'; början av %s är angiven i en tidigare länkad fil"
-#: elf64-mmix.c:2252
-msgid "Register section has contents\n"
-msgstr "Registersektion har innehåll\n"
+#: elf64-mmix.c:2208
+msgid "register section has contents\n"
+msgstr "registeravsnittet har följande innehåll\n"
-#: elf64-mmix.c:2441
+#: elf64-mmix.c:2398
#, c-format
-msgid ""
-"Internal inconsistency: remaining %u != max %u.\n"
-" Please report this bug."
-msgstr ""
-"Intern inkonsekvens: återstående %u != max %u.\n"
-" Rapportera detta fel."
+msgid "internal inconsistency: remaining %lu != max %lu; please report this bug"
+msgstr "intern inkonsekvens: återstående %lu != max %lu; vänligen rapportera denna bugg"
-#: elf64-ppc.c:4463
-msgid "%P: %B: cannot create stub entry %s\n"
-msgstr "%P: %B: kan inte skapa stubbposten %s\n"
+#: elf64-ppc.c:1361
+#, c-format
+msgid "warning: %s should be used rather than %s"
+msgstr "varning: %s bör användas i stället för %s"
-#: elf64-ppc.c:4810
-msgid "%P: symbol '%s' has invalid st_other for ABI version 1\n"
-msgstr "%P: symbolen â€%s†har ogiltig st_other för ABI version 1\n"
+#: elf64-ppc.c:4302
+#, c-format
+msgid "symbol '%s' has invalid st_other for ABI version 1"
+msgstr "symbolen '%s' har ogiltig st_other för ABI version 1"
-#: elf64-ppc.c:5170
-msgid "%P: .opd not allowed in ABI version %d\n"
-msgstr "%P: .opd är inte tillåtet i ABI-versionen %d\n"
+#: elf64-ppc.c:4485
+#, c-format
+msgid "%pB .opd not allowed in ABI version %d"
+msgstr "%pB .opd är inte tillåtet i ABI-version %d"
-#: elf64-ppc.c:5809
-msgid "%B uses unknown e_flags 0x%lx"
-msgstr "%B använder okänd e_flags 0x%lx"
+#: elf64-ppc.c:5107
+#, c-format
+msgid "%H: %s reloc unsupported in shared libraries and PIEs\n"
+msgstr "%H: %s reloc stöds inte i delade bibliotek och PIE\n"
-#: elf64-ppc.c:5816
-msgid "%B: ABI version %ld is not compatible with ABI version %ld output"
-msgstr "%B: ABI-versionen %ld är inte kompatibel med ABI version %ld-utmatning"
+#: elf64-ppc.c:5277
+msgid "%H: %s reloc unsupported here\n"
+msgstr "%H: %s reloc stöds inte här\n"
-#: elf64-ppc.c:5843
+#: elf64-ppc.c:5500
+#, c-format
+msgid "%pB uses unknown e_flags 0x%lx"
+msgstr "%pB använder okända e_flags 0x%lx"
+
+#: elf64-ppc.c:5508
+#, c-format
+msgid "%pB: ABI version %ld is not compatible with ABI version %ld output"
+msgstr "%pB: ABI-version %ld är inte kompatibel med ABI-version %ld-utdata"
+
+#: elf64-ppc.c:5535
#, c-format
msgid " [abiv%ld]"
msgstr " [abiv%ld]"
-#: elf64-ppc.c:7007
-msgid "%P: copy reloc against `%T' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n"
-msgstr "%P: kopiera omlokalisering mot â€%T†kräver lazy plt-länkning; undvik att sätta LD_BIND_NOW=1 eller uppgradera gcc\n"
+#: elf64-ppc.c:6844
+msgid "%P: copy reloc against `%pT' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n"
+msgstr "%P: kopiering av reloc mot `%pT' kräver lat plt-länkning; undvik att ställa in LD_BIND_NOW=1 eller uppgradera gcc\n"
-#: elf64-ppc.c:7270
-msgid "%B: undefined symbol on R_PPC64_TOCSAVE relocation"
-msgstr "%B: odefinierad symbol vid R_PPC64_TOCSAVE-omlokalisering"
+#: elf64-ppc.c:7111
+#, c-format
+msgid "%pB: undefined symbol on R_PPC64_TOCSAVE relocation"
+msgstr "%pB: odefinierad symbol vid omplacering av R_PPC64_TOCSAVE"
-#: elf64-ppc.c:7499
-msgid "%P: dynreloc miscount for %B, section %A\n"
-msgstr "%P: dynreloc-felräkning för %B, sektion %A\n"
+#: elf64-ppc.c:7362
+#, c-format
+msgid "dynreloc miscount for %pB, section %pA"
+msgstr "dynreloc felräkning för %pB, sektion %pA"
-#: elf64-ppc.c:7583
-msgid "%B: .opd is not a regular array of opd entries"
-msgstr "%B: .opd är inte ett vanligt fält av opd-poster"
+#: elf64-ppc.c:7453
+#, c-format
+msgid "%pB: .opd is not a regular array of opd entries"
+msgstr "%pB: .opd är inte en vanlig matris av opd-poster"
-#: elf64-ppc.c:7592
-msgid "%B: unexpected reloc type %u in .opd section"
-msgstr "%B: oväntad omlokaliseringstyp %u i .opd-sektion"
+#: elf64-ppc.c:7463
+#, c-format
+msgid "%pB: unexpected reloc type %u in .opd section"
+msgstr "%pB: oväntad reloc-typ %u i .opd-avsnittet"
-#: elf64-ppc.c:7613
-msgid "%B: undefined sym `%s' in .opd section"
-msgstr "%B: odefinierad sym â€%s†i .opd-sektion"
+#: elf64-ppc.c:7485
+#, c-format
+msgid "%pB: undefined sym `%s' in .opd section"
+msgstr "%pB: odefinierad sym `%s' i .opd-avsnittet"
+
+#. The issue is that __glink_PLTresolve saves r2, which is done
+#. because glibc ld.so _dl_runtime_resolve restores r2 to support
+#. a glibc plt call optimisation where global entry code is
+#. skipped on calls that resolve to the same binary. The
+#. __glink_PLTresolve save of r2 is incompatible with code
+#. making tail calls, because the tail call might go via the
+#. resolver and thus overwrite the proper saved r2.
+#: elf64-ppc.c:7986
+msgid "warning: --plt-localentry is incompatible with power10 pc-relative code"
+msgstr "varning: --plt-localentry är inkompatibel med power10 pc-relative-koden"
+
+#: elf64-ppc.c:7994
+msgid "warning: --plt-localentry is especially dangerous without ld.so support to detect ABI violations"
+msgstr "varning: --plt-localentry är särskilt farligt utan ld.so-stöd för att upptäcka ABI-överträdelser"
-#: elf64-ppc.c:8177
+#: elf64-ppc.c:8310
msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n"
msgstr "%H __tls_get_addr förlorat arg, TLS-optimering inaktiverat\n"
-#: elf64-ppc.c:8516 elf64-ppc.c:9139
+#: elf64-ppc.c:8745 elf64-ppc.c:9461
#, c-format
msgid "%s defined on removed toc entry"
msgstr "%s definierades i borttagen innehållsförteckningspost"
-#: elf64-ppc.c:8868
-msgid "%P: %H: toc optimization is not supported for %s instruction.\n"
-msgstr "%P: %H: toc-optimering stöds inte av %s-instruktionen.\n"
+#: elf64-ppc.c:9418
+#, c-format
+msgid "%H: %s references optimized away TOC entry\n"
+msgstr "%H: %s referenser optimerade bort från TOC-posten\n"
+
+#: elf64-ppc.c:9639
+#, c-format
+msgid "%H: got/toc optimization is not supported for %s instruction\n"
+msgstr "%H: got/toc-optimering stöds inte för %s-instruktionen\n"
+
+#: elf64-ppc.c:10534
+#, c-format
+msgid "warning: discarding dynamic section %s"
+msgstr "varning: dynamiskt avsnitt %s kasseras"
-#: elf64-ppc.c:9096
-msgid "%P: %H: %s references optimized away TOC entry\n"
-msgstr "%P: %H: %s-referenser optimerade bort TOC-post\n"
+#: elf64-ppc.c:11687
+msgid "%P: cannot find opd entry toc for `%pT'\n"
+msgstr "%P: kan inte hitta opd-inträdet toc för `%pT'\n"
-#: elf64-ppc.c:10394
-msgid "%P: cannot find opd entry toc for `%T'\n"
-msgstr "%P: kan inte hitta opd-post toc för â€%Tâ€\n"
+#: elf64-ppc.c:11837
+#, c-format
+msgid "long branch stub `%s' offset overflow"
+msgstr "lång gren stub `%s' offset överflöd"
-#: elf64-ppc.c:10479
-msgid "%P: long branch stub `%s' offset overflow\n"
-msgstr "%P: lÃ¥ng grenstubbe â€%sâ€-förskjutningsspill\n"
+#: elf64-ppc.c:11864
+#, c-format
+msgid "can't find branch stub `%s'"
+msgstr "kan inte hitta grenstubben `%s'"
-#: elf64-ppc.c:10538
-msgid "%P: can't find branch stub `%s'\n"
-msgstr "%P: kan inte hitta grenstubb â€%sâ€\n"
+#: elf64-ppc.c:11925 elf64-ppc.c:12177 elf64-ppc.c:14742
+#, c-format
+msgid "%P: linkage table error against `%pT'\n"
+msgstr "%P: fel i kopplingstabellen mot `%pT'\n"
-#: elf64-ppc.c:10602 elf64-ppc.c:10749 elf64-ppc.c:12416
-msgid "%P: linkage table error against `%T'\n"
-msgstr "%P: länkningstabellfel mot â€%Tâ€\n"
+#: elf64-ppc.c:12376
+#, c-format
+msgid "can't build branch stub `%s'"
+msgstr "kan inte bygga grenstub `%s'"
-#: elf64-ppc.c:10940
-msgid "%P: can't build branch stub `%s'\n"
-msgstr "%P: kan inte bygga grenstubbe â€%sâ€\n"
+#: elf64-ppc.c:13407
+#, c-format
+msgid "%pB section %pA exceeds stub group size"
+msgstr "%pB sektion %pA överstiger stubbgruppens storlek"
-#: elf64-ppc.c:11748
-msgid "%B section %A exceeds stub group size"
-msgstr "%B-sektion %A överstiger stubbgruppstorleken"
+#: elf64-ppc.c:14923
+msgid "__tls_get_addr call offset overflow"
+msgstr "__tls_get_addr anrop offset överskridande"
-#: elf64-ppc.c:12662 elf64-ppc.c:12697
-msgid "%P: %s offset too large for .eh_frame sdata4 encoding"
-msgstr "%P: %s-förskjutning för stor för .eh_frame sdata4-kodning"
+#: elf64-ppc.c:15263 elf64-ppc.c:15282
+#, c-format
+msgid "%s offset too large for .eh_frame sdata4 encoding"
+msgstr "%s offset för stor för .eh_frame sdata4-kodning"
-#: elf64-ppc.c:12758
-msgid "%P: stubs don't match calculated size\n"
-msgstr "%P: stubbe stämmer inte överens med beräknad storlek\n"
+#: elf64-ppc.c:15370
+#, c-format
+msgid "linker stubs in %u group"
+msgid_plural "linker stubs in %u groups"
+msgstr[0] "länkstubbar i %u-gruppen"
+msgstr[1] "länkstubbar i %u-gruppen"
-#: elf64-ppc.c:12770
+#: elf64-ppc.c:15377
#, c-format
msgid ""
-"linker stubs in %u group%s\n"
-" branch %lu\n"
-" toc adjust %lu\n"
-" long branch %lu\n"
-" long toc adj %lu\n"
-" plt call %lu\n"
-" plt call toc %lu"
+"%s, iter %u\n"
+" branch %lu\n"
+" long branch %lu\n"
+" plt call %lu\n"
+" global entry %lu"
msgstr ""
-"länkarstubbe i %u grupp%s\n"
-" gren %lu\n"
-" toc-just %lu\n"
-" långgren %lu\n"
-" lång-toc-just %lu\n"
-" plt-anr %lu\n"
-" plt-anr-toc %lu"
+"%s, iter %u\n"
+" gren %lu\n"
+" lång gren %lu\n"
+" plt-anrop %lu\n"
+" global post %lu"
+
+#: elf64-ppc.c:15759
+#, c-format
+msgid "%H: %s used with TLS symbol `%pT'\n"
+msgstr "%H: %s används med TLS-symbolen `%pT'\n"
+
+#: elf64-ppc.c:15761
+#, c-format
+msgid "%H: %s used with non-TLS symbol `%pT'\n"
+msgstr "%H: %s används med icke-TLS-symbolen `%pT'\n"
+
+#: elf64-ppc.c:16545
+#, c-format
+msgid "%H: call to `%pT' lacks nop, can't restore toc; (plt call stub)\n"
+msgstr "%H: anrop till `%pT' saknar nop, kan inte återställa toc; (plt-anrop stub)\n"
+
+#: elf64-ppc.c:16551
+#, c-format
+msgid "%H: call to `%pT' lacks nop, can't restore toc; (toc save/adjust stub)\n"
+msgstr "%H: anrop till `%pT' saknar nop, kan inte återställa toc; (toc spara/justera stub)\n"
+
+#: elf64-ppc.c:17202
+#, c-format
+msgid "%H: %s against %pT is not supported\n"
+msgstr "%H: %s mot %pT stöds inte\n"
+
+#: elf64-ppc.c:17478
+#, c-format
+msgid "%H: %s for indirect function `%pT' unsupported\n"
+msgstr "%H: %s för indirekt funktion `%pT' stöds inte\n"
-#: elf64-ppc.c:13096
-msgid "%P: %H: %s used with TLS symbol `%T'\n"
-msgstr "%P: %H: %s använt med TLS-symbol â€%Tâ€\n"
+#: elf64-ppc.c:17565
+#, c-format
+msgid "%X%P: %pB: %s against %pT is not supported by glibc as a dynamic relocation\n"
+msgstr "%X%P: %pB: %s mot %pT stöds inte av Glibc som en dynamisk omlokalisering\n"
-#: elf64-ppc.c:13097
-msgid "%P: %H: %s used with non-TLS symbol `%T'\n"
-msgstr "%P: %H: %s använt med icke-TLS-symbol â€%Tâ€\n"
+#: elf64-ppc.c:17620
+#, c-format
+msgid "%P: %pB: %s is not supported for `%pT'\n"
+msgstr "%P: %pB: %s stöds inte för `%pT'\n"
-#: elf64-ppc.c:13675
-msgid "%P: %H: call to `%T' lacks nop, can't restore toc; recompile with -fPIC\n"
-msgstr "%P: %H: anrop till â€%T†saknar nop, kan inte Ã¥terställa toc; kompilera med -fPIC\n"
+#: elf64-ppc.c:17889
+#, c-format
+msgid "%H: error: %s not a multiple of %u\n"
+msgstr "%H: fel: %s är inte en multipel av %u\n"
-#: elf64-ppc.c:13793
-msgid "%P: %B: unknown relocation type %d for `%T'\n"
-msgstr "%P: %B: okänd omlokaliseringstyp %d för â€%Tâ€\n"
+#: elf64-ppc.c:17912
+#, c-format
+msgid "%H: unresolvable %s against `%pT'\n"
+msgstr "%H: olöslig %s mot `%pT'\n"
-#: elf64-ppc.c:14310
-msgid "%P: %H: %s for indirect function `%T' unsupported\n"
-msgstr "%P: %H: %s för indirekta funktioner â€%T†stöds ej\n"
+#: elf64-ppc.c:18057
+#, c-format
+msgid "%H: %s against `%pT': error %d\n"
+msgstr "%H: %s mot `%pT': fel %d\n"
-#: elf64-ppc.c:14417
-msgid "%P: %B: %s is not supported for `%T'\n"
-msgstr "%P: %B: %s stöds ej för â€%Tâ€\n"
+#: elf64-s390.c:2490
+#, c-format
+msgid "%pB: `%s' non-PLT reloc for symbol defined in shared library and accessed from executable (rebuild file with -fPIC ?)"
+msgstr "%pB: `%s' icke-PLT-reloc för symbol som definieras i delat bibliotek och nås från körbar fil (återskapa fil med -fPIC ?)"
-#: elf64-ppc.c:14565
-msgid "%P: %H: error: %s not a multiple of %u\n"
-msgstr "%P: %H: fel: %s är inte en multipel av %u\n"
+#: elf64-s390.c:3153
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): misaligned symbol `%s' (%#<PRIx64>) for relocation %s"
+msgstr "%pB(%pA+%#<PRIx64>): feljusterad symbol `%s' (%#<PRIx64>) för omplacering %s"
-#: elf64-ppc.c:14586
-msgid "%P: %H: unresolvable %s against `%T'\n"
-msgstr "%P: %H: kunde inte lösas med %s mot â€%Tâ€\n"
+#: elf64-sparc.c:134 elfcode.h:1601
+#, c-format
+msgid "%pB(%pA): relocation %d has invalid symbol index %ld"
+msgstr "%pB(%pA): relokering %d har ogiltigt symbolindex %ld"
-#: elf64-ppc.c:14644
-msgid "%P: %H: %s against `%T': error %d\n"
-msgstr "%P: %H: %s mot â€%Tâ€: fel %d\n"
+#: elf64-sparc.c:493
+#, c-format
+msgid "%pB: only registers %%g[2367] can be declared using STT_REGISTER"
+msgstr "%pB: endast register %%g[2367] kan deklareras med STT_REGISTER"
-#: elf64-sh64.c:1686
+#: elf64-sparc.c:514
#, c-format
-msgid "%s: error: unaligned relocation type %d at %08x reloc %08x\n"
-msgstr "%s: fel: ojusterad omlokaliseringstyp %d på %08x omlokalisering %08x\n"
+msgid "register %%g%d used incompatibly: %s in %pB, previously %s in %pB"
+msgstr "register %%g%d används på ett inkompatibelt sätt: %s i %pB, tidigare %s i %pB"
-#: elf64-sparc.c:446
-msgid "%B: Only registers %%g[2367] can be declared using STT_REGISTER"
-msgstr "%B: Bara registren %%g[2367] kan deklareras med STT_REGISTER"
+#: elf64-sparc.c:538
+#, c-format
+msgid "symbol `%s' has differing types: REGISTER in %pB, previously %s in %pB"
+msgstr "symbolen `%s' har olika typer: REGISTER i %pB, tidigare %s i %pB"
-#: elf64-sparc.c:466
-msgid "Register %%g%d used incompatibly: %s in %B, previously %s in %B"
-msgstr "Registret %%g%d användes på ett inkompatibelt sätt: %s i %B, förut %s i %B"
+#: elf64-sparc.c:585
+#, c-format
+msgid "Symbol `%s' has differing types: %s in %pB, previously REGISTER in %pB"
+msgstr "Symbolen `%s' har olika typer: %s i %pB, tidigare REGISTER i %pB"
-#: elf64-sparc.c:489
-msgid "Symbol `%s' has differing types: REGISTER in %B, previously %s in %B"
-msgstr "Symbolen â€%s†har skiljande typer: REGISTER i %B, förut %s i %B"
+#: elf64-sparc.c:717
+#, c-format
+msgid "%pB: linking UltraSPARC specific with HAL specific code"
+msgstr "%pB: länka UltraSPARC-specifik med HAL-specifik kod"
-#: elf64-sparc.c:534
-msgid "Symbol `%s' has differing types: %s in %B, previously REGISTER in %B"
-msgstr "Symbolen â€%s†har skiljande typer: %s i %B, förut REGISTER i %B"
+#: elf64-x86-64.c:1660
+msgid "hidden symbol "
+msgstr "dold symbol "
-#: elf64-sparc.c:687
-msgid "%B: linking UltraSPARC specific with HAL specific code"
-msgstr "%B: länkar UltraSPARC-specifik med HAL-specifik kod"
+#: elf64-x86-64.c:1663
+msgid "internal symbol "
+msgstr "intern symbol "
-#: elf64-x86-64.c:1530
-msgid "%B: relocation %s against symbol `%s' isn't supported in x32 mode"
-msgstr "%B: omlokalisering %s mot symbol â€%s†stöds inte i x32-läge"
+#: elf64-x86-64.c:1666 elf64-x86-64.c:1670
+msgid "protected symbol "
+msgstr "skyddad symbol "
-#: elf64-x86-64.c:1688
-msgid "%B: '%s' accessed both as normal and thread local symbol"
-msgstr "%B: â€%s†åtkommen bÃ¥de som normal och trÃ¥dlokal symbol"
+#: elf64-x86-64.c:1672
+msgid "symbol "
+msgstr "symbol "
-#: elf64-x86-64.c:3405 /src/binutils-gdb/bfd/elfnn-aarch64.c:3511
-msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %d"
-msgstr "%B: omlokalisering %s mot STT_GNU_IFUNC-symbolen â€%s†har en addend som inte är noll: %d"
+#: elf64-x86-64.c:1678
+msgid "undefined "
+msgstr "odefinierad "
-#: elf64-x86-64.c:3667
-msgid "%B: relocation R_X86_64_GOTOFF64 against protected function `%s' can not be used when making a shared object"
-msgstr "%B: omlokalisering R_X86_64_GOTOFF64 mot skyddad funktion â€%s†kan inte användas när ett delat objekt skapas"
+#: elf64-x86-64.c:1688 elfnn-loongarch.c:892
+msgid "a shared object"
+msgstr "ett delat objekt"
-#: elf64-x86-64.c:3787
+#: elf64-x86-64.c:1690
msgid "; recompile with -fPIC"
msgstr "; kompilera om med -fPIC"
-#: elf64-x86-64.c:3792
-msgid "%B: relocation %s against %s `%s' can not be used when making a shared object%s"
-msgstr "%B: omlokalisering %s mot %s â€%s†kan inte användas när ett delat objekt%s skapas"
+#: elf64-x86-64.c:1695 elfnn-loongarch.c:898
+msgid "a PIE object"
+msgstr "ett PIE-objekt"
+
+#: elf64-x86-64.c:1697 elfnn-loongarch.c:900
+msgid "a PDE object"
+msgstr "ett PDE-objekt"
+
+#: elf64-x86-64.c:1699
+msgid "; recompile with -fPIE"
+msgstr "; kompilera om med -fPIE"
+
+#: elf64-x86-64.c:1703
+#, c-format
+msgid "%pB: relocation %s against %s%s`%s' can not be used when making %s%s"
+msgstr "%pB: omlokalisering %s mot %s%s`%s\" kan inte användas när %s%s görs"
+
+#: elf64-x86-64.c:2239
+#, c-format
+msgid "%pB: relocation %s against symbol `%s' isn't supported in x32 mode"
+msgstr "%pB: relokering %s mot symbol `%s' stöds inte i x32-läge"
+
+#: elf64-x86-64.c:2394
+#, c-format
+msgid "%pB: '%s' accessed both as normal and thread local symbol"
+msgstr "%pB: '%s' åtkomlig både som normal och trådlokal symbol"
+
+#: elf64-x86-64.c:2652
+#, c-format
+msgid "%pB: unsupported relocation %s against symbol `%s'"
+msgstr "%pB: omplacering %s stöds inte mot symbolen `%s'"
+
+#: elf64-x86-64.c:3076 elfnn-aarch64.c:5766 elfnn-riscv.c:2374
+#, c-format
+msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %<PRId64>"
+msgstr "%pB: relokering %s mot STT_GNU_IFUNC symbolen `%s' har addend som inte är noll: %<PRId64>"
+
+#: elf64-x86-64.c:3339
+#, c-format
+msgid "%pB: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used when making a shared object"
+msgstr "%pB: omlokalisering R_X86_64_GOTOFF64 mot odefinierade %s `%s' kan inte användas när man skapar ett delat objekt"
+
+#: elf64-x86-64.c:3353
+#, c-format
+msgid "%pB: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used when making a shared object"
+msgstr "%pB: omplacering R_X86_64_GOTOFF64 mot skyddade %s `%s' kan inte användas när man skapar ett delat objekt"
-#: elf64-x86-64.c:3794
-msgid "%B: relocation %s against undefined %s `%s' can not be used when making a shared object%s"
-msgstr "%B: omlokalisering %s mot odefinierad %s â€%s†kan inte användas när ett delat objekt%s skapas"
+#: elf64-x86-64.c:3643
+#, c-format
+msgid "%pB: addend %s%#x in relocation %s against symbol `%s' at %#<PRIx64> in section `%pA' is out of range"
+msgstr "%pB: addend %s%#x i relokalisering %s mot symbol `%s' på %#<PRIx64> i avsnitt `%pA' är utanför intervallet"
+
+#: elf64-x86-64.c:3794 elflink.c:14005
+msgid "%F%P: corrupt input: %pB\n"
+msgstr "%F%P: korrupt inmatning: %pB\n"
-#: elf64-x86-64.c:3900
-msgid "%B: addend -0x%x in relocation %s against symbol `%s' at 0x%lx in section `%A' is out of range"
-msgstr "%B: addend -0x%x i omlokalisering %s mot symbolen â€%s†vid 0x%lx i sektionen â€%A†är utanför intervallet"
+#: elf64-x86-64.c:4605
+#, c-format
+msgid " failed to convert GOTPCREL relocation against '%s'; relink with --no-relax\n"
+msgstr " misslyckades med att konvertera GOTPCREL-relokering mot \"%s\"; länka om med --no-relax\n"
-#: elf64-x86-64.c:3908
-msgid "%B: addend 0x%x in relocation %s against symbol `%s' at 0x%lx in section `%A' is out of range"
-msgstr "%B: adderade 0x%x i omlokalisering %s mot symbolen â€%s†vid 0x%lx i sektionen â€%A†är utanför intervallet"
+#: elf64-x86-64.c:4764
+#, c-format
+msgid "%F%pB: PC-relative offset overflow in PLT entry for `%s'\n"
+msgstr "%F%pB: PC-relativt offsetöverflöd i PLT-post för `%s'\n"
-#: elfcode.h:760
+#: elf64-x86-64.c:4837
#, c-format
-msgid "warning: %s has a corrupt string table index - ignoring"
-msgstr "varning: %s har ett fördärvat strängtabellindex - ignorerar"
+msgid "%F%pB: branch displacement overflow in PLT entry for `%s'\n"
+msgstr "%F%pB: överskridande av grenförskjutning i PLT-post för `%s'\n"
-#: elfcode.h:1186
+#: elf64-x86-64.c:4890
#, c-format
-msgid "%s: version count (%ld) does not match symbol count (%ld)"
-msgstr "%s: versionsantal (%ld) stämmer inte med symbolantal (%ld)"
+msgid "%F%pB: PC-relative offset overflow in GOT PLT entry for `%s'\n"
+msgstr "%F%pB: PC-relativt offsetöverdrag i GOT PLT-post för `%s'\n"
-#: elfcode.h:1440
+#: elfcode.h:342
#, c-format
-msgid "%s(%s): relocation %d has invalid symbol index %ld"
-msgstr "%s(%s): omlokalisering %d har ogiltigt symbolindex %ld"
+msgid "warning: %pB has a section extending past end of file"
+msgstr "varning: %pB har ett avsnitt som sträcker sig längre än slutet av filen"
-#: elfcore.h:305
-msgid "Warning: %B is truncated: expected core file size >= %lu, found: %lu."
-msgstr "Varning: %B är avkortad: förväntade mig kärnfilsstorlek >= %lu, hittade: %lu."
+#: elfcode.h:790
+#, c-format
+msgid "warning: %pB has a corrupt string table index"
+msgstr "varning: %pB har ett korrupt strängtabellindex"
+
+#: elfcode.h:838
+#, c-format
+msgid "warning: %pB has a program header with invalid alignment"
+msgstr "varning: %pB har ett programhuvud med ogiltig inriktning"
-#: elflink.c:1143
-msgid "%s: TLS definition in %B section %A mismatches non-TLS definition in %B section %A"
-msgstr "%s: TLS-definiering i %B-sektionen %A stämmer inte överens med icke-TLS-definieringen i %B-sektionen %A"
+#: elfcode.h:1056
+#, c-format
+msgid "%pB: %pA+%<PRIx64>: relocation addend %<PRIx64> too large"
+msgstr "%pB: %pA+%<PRIx64>: flyttningsaddendet %<PRIx64> är för stort"
-#: elflink.c:1148
-msgid "%s: TLS reference in %B mismatches non-TLS reference in %B"
-msgstr "%s: TLS-referensen i %B stämmer inte överens med icke-TLS-referensen i %B"
+#: elfcode.h:1321
+#, c-format
+msgid "%pB: version count (%<PRId64>) does not match symbol count (%ld)"
+msgstr "%pB: versionsantalet (%<PRId64>) stämmer inte överens med symbolantalet (%ld)"
-#: elflink.c:1153
-msgid "%s: TLS definition in %B section %A mismatches non-TLS reference in %B"
-msgstr "%s: TLS-definieringen i %B-sektionen %A stämmer inte överens med icke-TLS-referensen i %B"
+#: elfcore.h:280
+#, c-format
+msgid "warning: %pB has a segment extending past end of file"
+msgstr "varning: %pB har ett segment som sträcker sig längre än slutet av filen"
-#: elflink.c:1158
-msgid "%s: TLS reference in %B mismatches non-TLS definition in %B section %A"
-msgstr "%s: TLS-referensen i %B stämmer inte överens med icke-TLS-definieringen i %B-sektionen %A"
+#: elflink.c:1438
+#, c-format
+msgid "%s: TLS definition in %pB section %pA mismatches non-TLS definition in %pB section %pA"
+msgstr "%s: TLS-definitionen i %pB avsnitt %pA stämmer inte överens med icke-TLS-definitionen i %pB avsnitt %pA"
-#: elflink.c:1763
-msgid "%B: unexpected redefinition of indirect versioned symbol `%s'"
-msgstr "%B: oväntad omdefiniering av indirekt versionsbestämd symbol â€%sâ€"
+#: elflink.c:1444
+#, c-format
+msgid "%s: TLS reference in %pB mismatches non-TLS reference in %pB"
+msgstr "%s: TLS-referensen i %pB stämmer inte överens med icke-TLS-referensen i %pB"
-#: elflink.c:2066
-msgid "%B: version node not found for symbol %s"
-msgstr "%B: versionsnod hittades inte för symbol %s"
+#: elflink.c:1450
+#, c-format
+msgid "%s: TLS definition in %pB section %pA mismatches non-TLS reference in %pB"
+msgstr "%s: TLS-definitionen i %pB avsnitt %pA stämmer inte överens med icke-TLS-referensen i %pB"
-#: elflink.c:2157
-msgid "%B: bad reloc symbol index (0x%lx >= 0x%lx) for offset 0x%lx in section `%A'"
-msgstr "%B: felaktigt omlokaliseringssymbolindex (0x%lx >= 0x%lx) för förskjutning 0x%lx i sektion â€%Aâ€"
+#: elflink.c:1456
+#, c-format
+msgid "%s: TLS reference in %pB mismatches non-TLS definition in %pB section %pA"
+msgstr "%s: TLS-referensen i %pB stämmer inte överens med icke-TLS-definitionen i %pB-avsnittet %pA"
#: elflink.c:2168
-msgid "%B: non-zero symbol index (0x%lx) for offset 0x%lx in section `%A' when the object file has no symbol table"
-msgstr "%B: symbolindex är inte noll (0x%lx) för förskjutning 0x%lx i sektion â€%A†när objektfilen saknar symboltabell"
+#, c-format
+msgid "%pB: unexpected redefinition of indirect versioned symbol `%s'"
+msgstr "%pB: oväntad omdefiniering av indirekt versionerad symbol `%s'"
+
+#: elflink.c:2681
+#, c-format
+msgid "%pB: version node not found for symbol %s"
+msgstr "%pB: versionsnoden hittades inte för symbolen %s"
+
+#: elflink.c:2780
+#, c-format
+msgid "%pB: bad reloc symbol index (%#<PRIx64> >= %#lx) for offset %#<PRIx64> in section `%pA'"
+msgstr "%pB: fel reloc-symbolindex (%#<PRIx64> >= %#lx) för offset %#<PRIx64> i avsnitt `%pA'"
+
+#: elflink.c:2792
+#, c-format
+msgid "%pB: non-zero symbol index (%#<PRIx64>) for offset %#<PRIx64> in section `%pA' when the object file has no symbol table"
+msgstr "%pB: symbolindex som inte är noll (%#<PRIx64>) för offset %#<PRIx64> i avsnitt `%pA' när objektfilen inte har någon symboltabell"
-#: elflink.c:2358
-msgid "%B: relocation size mismatch in %B section %A"
-msgstr "%B: omlokaliseringsstorlek stämmer inte överens i %B-sektionen %A"
+#: elflink.c:2989
+#, c-format
+msgid "%pB: relocation size mismatch in %pB section %pA"
+msgstr "%pB: felaktig storlek på flyttning i %pB-avsnittet %pA"
-#: elflink.c:2640
+#: elflink.c:3322
#, c-format
msgid "warning: type and size of dynamic symbol `%s' are not defined"
msgstr "varning: typen och storleken pÃ¥ dynamiska symbolen â€%s†är inte definierade"
-#: elflink.c:3403
-msgid "%P: alternate ELF machine code found (%d) in %B, expecting %d\n"
-msgstr "%P: alternativ ELF-maskinkod hittades (%d) i %B, förväntade mig %d\n"
+#: elflink.c:3382
+msgid "%P: copy reloc against protected `%pT' is dangerous\n"
+msgstr "%P: copy reloc mot skyddad `%pT' är farligt\n"
+
+#: elflink.c:4338
+msgid "%F%P: %pB: failed to add %s to first hash\n"
+msgstr "%F%P: %pB: misslyckades med att lägga till %s i första hashen\n"
+
+#: elflink.c:4406
+msgid "%F%P: first_hash failed to create: %E\n"
+msgstr "%F%P: first_hash kunde inte skapas: %E\n"
+
+#: elflink.c:4437
+#, c-format
+msgid "alternate ELF machine code found (%d) in %pB, expecting %d"
+msgstr "alternativ ELF-maskinkod hittades (%d) i %pB, väntar på %d"
+
+#: elflink.c:4920
+#, c-format
+msgid "%pB: invalid version offset %lx (max %lx)"
+msgstr "%pB: ogiltig versionsoffset %lx (max %lx)"
+
+#: elflink.c:4989
+#, c-format
+msgid "%pB: %s local symbol at index %lu (>= sh_info of %lu)"
+msgstr "%pB: %s lokal symbol vid index %lu (>= sh_info för %lu)"
+
+#: elflink.c:5137
+#, c-format
+msgid "%pB: not enough version information"
+msgstr "%pB: inte tillräckligt med versionsinformation"
+
+#: elflink.c:5175
+#, c-format
+msgid "%pB: %s: invalid version %u (max %d)"
+msgstr "%pB: %s: ogiltig version %u (max %d)"
+
+#: elflink.c:5212
+#, c-format
+msgid "%pB: %s: invalid needed version %d"
+msgstr "%pB: %s: ogiltig version krävs %d"
-#: elflink.c:4032
-msgid "%B: %s: invalid version %u (max %d)"
-msgstr "%B: %s: ogiltig version %u (max %d)"
+#: elflink.c:5498
+#, c-format
+msgid "warning: alignment %u of normal symbol `%s' in %pB is smaller than %u used by the common definition in %pB"
+msgstr "warning: alignment %u för den normala symbolen `%s' i %pB är mindre än %u som används av den gemensamma definitionen i %pB"
-#: elflink.c:4068
-msgid "%B: %s: invalid needed version %d"
-msgstr "%B: %s: ogiltigt versionskrav %d"
+#: elflink.c:5505
+msgid "warning: NOTE: alignment discrepancies can cause real problems. Investigation is advised."
+msgstr "varning: OBS: avvikelser i uppriktningen kan orsaka verkliga problem. Undersökning rekommenderas."
-#: elflink.c:4452
-msgid "%B: undefined reference to symbol '%s'"
-msgstr "%B: odefinierad referens till symbolen â€%sâ€"
+#: elflink.c:5527
+msgid "warning: NOTE: size discrepancies can cause real problems. Investigation is advised."
+msgstr "varning: OBS: storleksskillnader kan orsaka verkliga problem. Undersökning rekommenderas."
-#: elflink.c:5523
-msgid "%B: stack size specified and %s set"
-msgstr "%B: stackstorlek angiven och %s satt"
+#: elflink.c:5670
+#, c-format
+msgid "%pB: undefined reference to symbol '%s'"
+msgstr "%pB: odefinierad referens till symbolen '%s'"
-#: elflink.c:5526
-msgid "%B: %s not absolute"
-msgstr "%B: %s inte absolut"
+#: elflink.c:6759
+#, c-format
+msgid "%pB: stack size specified and %s set"
+msgstr "%pB: stackstorlek angiven och %s inställd"
-#: elflink.c:5824
+#: elflink.c:6763
+#, c-format
+msgid "%pB: %s not absolute"
+msgstr "%pB: %s är inte absolut"
+
+#: elflink.c:6975
#, c-format
msgid "%s: undefined version: %s"
msgstr "%s: odefinierad version: %s"
-#: elflink.c:5892
-msgid "%B: .preinit_array section is not allowed in DSO"
-msgstr "%B: .preinit_array-sektion tillåts inte i DSO"
+#: elflink.c:7364
+msgid "error: creating an executable stack because of -z execstack command line option"
+msgstr "fel: skapande av en körbar stack på grund av kommandoradsalternativet -z execstack"
+
+#: elflink.c:7370
+msgid "warning: enabling an executable stack because of -z execstack command line option"
+msgstr "varning: aktivering av en körbar stack på grund av kommandoradsalternativet -z execstack"
+
+#: elflink.c:7432
+#, c-format
+msgid "error: %s: is triggering the generation of an executable stack (because it has an executable .note.GNU-stack section)"
+msgstr "fel: %s: utlöser genereringen av en körbar stack (eftersom den har ett körbart .note.GNU-stack-avsnitt)"
+
+#: elflink.c:7438
+#, c-format
+msgid "warning: %s: requires executable stack (because the .note.GNU-stack section is executable)"
+msgstr "warning: %s: kräver körbar stack (eftersom avsnittet .note.GNU-stack är körbart)"
+
+#: elflink.c:7446
+#, c-format
+msgid "error: %s: is triggering the generation of an executable stack because it does not have a .note.GNU-stack section"
+msgstr "fel: %s: utlöser genereringen av en körbar stack eftersom den inte har ett .note.GNU-stackavsnitt"
+
+#: elflink.c:7452
+#, c-format
+msgid "warning: %s: missing .note.GNU-stack section implies executable stack"
+msgstr "varning: %s: saknad .note.GNU-stack-sektion innebär att den körbara stacken"
+
+#: elflink.c:7455
+msgid "NOTE: This behaviour is deprecated and will be removed in a future version of the linker"
+msgstr "OBS: Detta beteende är föråldrat och kommer att tas bort i en framtida version av länkprogrammet"
+
+#: elflink.c:7609
+#, c-format
+msgid "%pB: .preinit_array section is not allowed in DSO"
+msgstr "%pB: .preinit_array-avsnittet är inte tillåtet i DSO"
-#: elflink.c:7657
+#: elflink.c:9218
#, c-format
msgid "undefined %s reference in complex symbol: %s"
msgstr "odefinierad %s-referens i komplex symbol: %s"
-#: elflink.c:7811
+#: elflink.c:9381 elflink.c:9389
+msgid "division by zero"
+msgstr "division med noll"
+
+#: elflink.c:9403
#, c-format
msgid "unknown operator '%c' in complex symbol"
-msgstr "Okänd operand â€%c†i komplex symbol"
+msgstr "okänd operand â€%c†i komplex symbol"
-#: elflink.c:8165 elflink.c:8182 elflink.c:8219 elflink.c:8236
-msgid "%B: Unable to sort relocs - they are in more than one size"
-msgstr "%B: Kunde inte sortera omlokaliseringar - de finns i mer än en storlek"
+#. PR 21524: Let the user know if a symbol was removed by garbage collection.
+#: elflink.c:9739
+#, c-format
+msgid "%pB:%pA: error: relocation references symbol %s which was removed by garbage collection"
+msgstr "%pB:%pA: fel: relokalisering refererar till symbolen %s som togs bort genom garbage collection"
-#: elflink.c:8196 elflink.c:8250
-msgid "%B: Unable to sort relocs - they are of an unknown size"
-msgstr "%B: Kunde inte sortera omlokaliseringar - deras storlek är okänd"
+#: elflink.c:9742
+#, c-format
+msgid "%pB:%pA: error: try relinking with --gc-keep-exported enabled"
+msgstr "%pB:%pA: fel: försök länka om med --gc-keep-exported aktiverat"
-#: elflink.c:8301
-msgid "Not enough memory to sort relocations"
-msgstr "Inte tillräckligt med minne för att sortera omlokaliseringar"
+#: elflink.c:9993 elflink.c:10011 elflink.c:10050 elflink.c:10068
+#, c-format
+msgid "%pB: unable to sort relocs - they are in more than one size"
+msgstr "%pB: kan inte sortera relocs - de finns i mer än en storlek"
-#: elflink.c:8494
-msgid "%B: Too many sections: %d (>= %d)"
-msgstr "%B: För många sektioner: %d (>= %d)"
+#. The section size is not divisible by either -
+#. something is wrong.
+#: elflink.c:10027 elflink.c:10084
+#, c-format
+msgid "%pB: unable to sort relocs - they are of an unknown size"
+msgstr "%pB: det går inte att sortera relocs - de är av okänd storlek"
-#: elflink.c:8775
-msgid "%B: internal symbol `%s' in %B is referenced by DSO"
-msgstr "%B: intern symbol â€%s†i %B används av DSO"
+#: elflink.c:10136
+msgid "not enough memory to sort relocations"
+msgstr "inte tillräckligt med minne för att sortera omlokaliseringar"
-#: elflink.c:8777
-msgid "%B: hidden symbol `%s' in %B is referenced by DSO"
-msgstr "%B: dold symbol â€%s†i %B används av DSO"
+#: elflink.c:10470
+#, c-format
+msgid "%pB: too many sections: %d (>= %d)"
+msgstr "%pB: för många sektioner: %d (>= %d)"
-#: elflink.c:8779
-msgid "%B: local symbol `%s' in %B is referenced by DSO"
-msgstr "%B: lokal symbol â€%s†i %B används av DSO"
+#: elflink.c:10746
+#, c-format
+msgid "%pB: internal symbol `%s' in %pB is referenced by DSO"
+msgstr "%pB: den interna symbolen `%s' i %pB refereras av DSO"
-#: elflink.c:8890
-msgid "%B: could not find output section %A for input section %A"
-msgstr "%B: kunde inte hitta utdata-sektionen %A för indata-sektion %A"
+#: elflink.c:10749
+#, c-format
+msgid "%pB: hidden symbol `%s' in %pB is referenced by DSO"
+msgstr "%pB: dold symbol `%s' i %pB är refererad av DSO"
-#: elflink.c:9013
-msgid "%B: protected symbol `%s' isn't defined"
-msgstr "%B: den skyddade symbolen â€%s†har inte definierats"
+#: elflink.c:10752
+#, c-format
+msgid "%pB: local symbol `%s' in %pB is referenced by DSO"
+msgstr "%pB: den lokala symbolen `%s' i %pB refereras av DSO"
-#: elflink.c:9015
-msgid "%B: internal symbol `%s' isn't defined"
-msgstr "%B: den interna symbolen â€%s†har inte definierats"
+#: elflink.c:10845
+#, c-format
+msgid "%pB: could not find output section %pA for input section %pA"
+msgstr "%pB: kunde inte hitta utmatningsavsnittet %pA för inmatningsavsnittet %pA"
-#: elflink.c:9017
-msgid "%B: hidden symbol `%s' isn't defined"
-msgstr "%B: den dolda symbolen â€%s†har inte definierats"
+#: elflink.c:11003
+#, c-format
+msgid "%pB: protected symbol `%s' isn't defined"
+msgstr "%pB: den skyddade symbolen `%s' är inte definierad"
-#: elflink.c:9043
-msgid "%B: No symbol version section for versioned symbol `%s'"
-msgstr "%B: Ingen symbolversionssektion för versionerad symbol â€%sâ€"
+#: elflink.c:11006
+#, c-format
+msgid "%pB: internal symbol `%s' isn't defined"
+msgstr "%pB: den interna symbolen `%s' är inte definierad"
-#: elflink.c:9598
-msgid "error: %B: size of section %A is not multiple of address size"
-msgstr "Fel: %B: storleken på sektion %A är inte en multipel av adresstorleken"
+#: elflink.c:11009
+#, c-format
+msgid "%pB: hidden symbol `%s' isn't defined"
+msgstr "%pB: den dolda symbolen `%s' är inte definierad"
-#: elflink.c:9645
-msgid "error: %B contains a reloc (0x%s) for section %A that references a non-existent global symbol"
-msgstr "fel: %B innehåller en omlokalisering (0x%s) för sektion %A som använder en icke-existerande global symbol"
+#: elflink.c:11041
+#, c-format
+msgid "%pB: no symbol version section for versioned symbol `%s'"
+msgstr "%pB: inget symbolversionsavsnitt för versionerad symbol `%s'"
-#: elflink.c:10369
-msgid "%A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections"
-msgstr "%A har bÃ¥de sorterade [â€%A†i %B] och osorterade [â€%A†i %B] sektioner"
+#: elflink.c:11723
+#, c-format
+msgid "error: %pB contains a reloc (%#<PRIx64>) for section %pA that references a non-existent global symbol"
+msgstr "fel: %pB innehåller en reloc (%#<PRIx64>) för avsnitt %pA som refererar till en icke-existerande global symbol"
+
+#: elflink.c:12193
+#, c-format
+msgid "error: %pB: size of section %pA is not multiple of address size"
+msgstr "fel: %pB: storleken på avsnittet %pA är inte en multipel av adressstorleken"
-#: elflink.c:10374
+#: elflink.c:12473
#, c-format
-msgid "%A has both ordered and unordered sections"
-msgstr "%A har både sorterade och osorterade sektioner"
+msgid "%pB: no symbol found for import library"
+msgstr "%pB: ingen symbol hittades för importbiblioteket"
-#: elflink.c:10982
-msgid "%B: file class %s incompatible with %s"
-msgstr "%B: Filklassen %s är inkompatibel med %s"
+#: elflink.c:13078
+msgid "%F%P: %pB: failed to finish relative relocations\n"
+msgstr "%F%P: %pB: lyckades inte slutföra relativa omplaceringar\n"
-#: elflink.c:11303 elflink.c:11347
-msgid "%B: could not find output section %s"
-msgstr "%B: kunde inte hitta utdata-sektion %s"
+#: elflink.c:13155
+#, c-format
+msgid "%pB: file class %s incompatible with %s"
+msgstr "%pB: filklassen %s är inkompatibel med %s"
+
+#: elflink.c:13377
+#, c-format
+msgid "%pB: failed to generate import library"
+msgstr "%pB: misslyckades med att generera importbibliotek"
-#: elflink.c:11308
+#: elflink.c:13538
#, c-format
msgid "warning: %s section has zero size"
msgstr "varning: sektionen %s har nollstorlek"
-#: elflink.c:11353
+#: elflink.c:13586
#, c-format
msgid "warning: section '%s' is being made into a note"
msgstr "varning: sektion â€%s†görs om till en anteckning"
-#: elflink.c:11419
-msgid "%P%X: read-only segment has dynamic relocations.\n"
-msgstr "%P%X: skrivskyddat segment har dynamiska omlokaliseringar.\n"
+#: elflink.c:13680
+msgid "%P%X: read-only segment has dynamic relocations\n"
+msgstr "%P%X: skrivskyddat segment har dynamiska omplaceringar\n"
+
+#: elflink.c:13683
+msgid "%P: warning: creating DT_TEXTREL in a shared object\n"
+msgstr "%P: varning: skapa DT_TEXTREL i ett delat objekt\n"
-#: elflink.c:11422
-msgid "%P: warning: creating a DT_TEXTREL in a shared object.\n"
-msgstr "%P: varning: skapar en DT_TEXTREL i ett delat objekt.\n"
+#: elflink.c:13686
+msgid "%P: warning: creating DT_TEXTREL in a PDE\n"
+msgstr "%P: varning: skapa DT_TEXTREL i en PDE\n"
-#: elflink.c:11545
+#: elflink.c:13689
+msgid "%P: warning: creating DT_TEXTREL in a PIE\n"
+msgstr "%P: varning: skapar DT_TEXTREL i en PIE\n"
+
+#: elflink.c:13825
msgid "%P%X: can not read symbols: %E\n"
msgstr "%P%X: kan inte läsa symboler: %E\n"
-#: elflink.c:11989
-msgid "Removing unused section '%s' in file '%B'"
-msgstr "Tar bort oanvända sektionen â€%s†i filen â€%Bâ€"
+#: elflink.c:14258
+msgid "%F%P: %pB(%pA): error: need linked-to section for --gc-sections\n"
+msgstr "%F%P: %pB(%pA): fel: behöver länkad till sektion för --gc-sektioner\n"
+
+#: elflink.c:14738
+#, c-format
+msgid "%pB: %pA+%#<PRIx64>: no symbol found for INHERIT"
+msgstr "%pB: %pA+%#<PRIx64>: ingen symbol hittades för INHERIT"
+
+#: elflink.c:14779
+#, c-format
+msgid "%pB: section '%pA': corrupt VTENTRY entry"
+msgstr "%pB: avsnitt '%pA': skadad VTENTRY-post"
+
+#: elflink.c:14922
+#, c-format
+msgid "unrecognized INPUT_SECTION_FLAG %s\n"
+msgstr "oigenkänd INPUT_SECTION_FLAG %s\n"
+
+#: elflink.c:15703
+#, c-format
+msgid "%P: %pB: warning: relocation against `%s' in read-only section `%pA'\n"
+msgstr "%P: %pB: varning: omplacering mot `%s' i skrivskyddat avsnitt `%pA'\n"
+
+#: elflink.c:15792
+msgid "%P: warning: GNU indirect functions with DT_TEXTREL may result in a segfault at runtime; recompile with %s\n"
+msgstr "%P: varning: GNU indirekta funktioner med DT_TEXTREL kan resultera i ett segfault vid körning; kompilera om med %s\n"
+
+#: elfxx-aarch64.c:478
+#, c-format
+msgid "%pB: warning: Weak TLS is implementation defined and may not work as expected"
+msgstr "%pB: varning: Svag TLS är implementationsdefinierad och kanske inte fungerar som förväntat"
+
+#: elfxx-aarch64.c:773
+#, c-format
+msgid "%Xerror: found a total of %d inputs incompatible with BTI requirements.\n"
+msgstr "%Xerror: hittade totalt %d indata som inte är kompatibla med BTI-kraven.\n"
+
+#: elfxx-aarch64.c:775
+#, c-format
+msgid "warning: found a total of %d inputs incompatible with BTI requirements.\n"
+msgstr "warning: hittade totalt %d indata som inte är kompatibla med BTI-kraven.\n"
+
+#: elfxx-aarch64.c:785
+#, c-format
+msgid "%Xerror: found a total of %d inputs incompatible with GCS requirements.\n"
+msgstr "%Xerror: fann totalt %d inmatningar som inte var kompatibla med GCS krav.\n"
+
+#: elfxx-aarch64.c:787
+#, c-format
+msgid "warning: found a total of %d inputs incompatible with GCS requirements.\n"
+msgstr "warning: hittade totalt %d indata som inte är kompatibla med GCS krav.\n"
+
+#: elfxx-aarch64.c:797
+#, c-format
+msgid "%Xerror: found a total of %d dynamically-linked objects incompatible with GCS requirements.\n"
+msgstr "%Xerror: hittade totalt %d dynamiskt länkade objekt som inte är kompatibla med GCS krav.\n"
+
+#: elfxx-aarch64.c:799
+#, c-format
+msgid "warning: found a total of %d dynamically-linked objects incompatible with GCS requirements.\n"
+msgstr "warning: hittade totalt %d dynamiskt länkade objekt som inte är kompatibla med GCS-kraven.\n"
+
+#: elfxx-aarch64.c:960
+#, c-format
+msgid "error: %pB: <corrupt AArch64 used size: 0x%x>"
+msgstr "fel: %pB: <korrupt AArch64 använt storlek: 0x%x>"
+
+#: elfxx-aarch64.c:1104
+#, c-format
+msgid "%pB: warning: BTI is required by -z force-bti, but this input object file lacks the necessary property note.\n"
+msgstr "%pB: varning: BTI krävs av -z force-bti, men denna indataobjektfil saknar den nödvändiga egenskapsnoteringen.\n"
+
+#: elfxx-aarch64.c:1106
+#, c-format
+msgid "%X%pB: error: BTI is required by -z force-bti, but this input object file lacks the necessary property note.\n"
+msgstr "%X%pB: fel: BTI krävs av -z force-bti, men den här indataobjektfilen saknar den nödvändiga egenskapsnoteringen.\n"
+
+#: elfxx-aarch64.c:1138
+#, c-format
+msgid "%pB: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking.\n"
+msgstr "%pB: varning: GCS krävs av -z gcs, men det här delade biblioteket saknar den nödvändiga egenskapsnoteringen. Den dynamiska laddaren kanske inte aktiverar GCS eller vägrar att ladda programmet om inte alla beroenden till det delade biblioteket har GCS-märkningen.\n"
+
+#: elfxx-aarch64.c:1142
+#, c-format
+msgid "%X%pB: error: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking.\n"
+msgstr "%X%pB: fel: GCS krävs av -z gcs, men det här delade biblioteket saknar den nödvändiga egenskapsnoteringen. Den dynamiska laddaren kanske inte aktiverar GCS eller vägrar att ladda programmet om inte alla beroenden till det delade biblioteket har GCS-märkningen.\n"
+
+#: elfxx-aarch64.c:1148
+#, c-format
+msgid "%pB: warning: GCS is required by -z gcs, but this input object file lacks the necessary property note.\n"
+msgstr "%pB: varning: GCS krävs av -z gcs, men den här indataobjektfilen saknar den nödvändiga egenskapsnoteringen.\n"
+
+#: elfxx-aarch64.c:1150
+#, c-format
+msgid "%X%pB: error: GCS is required by -z gcs, but this input object file lacks the necessary property note.\n"
+msgstr "%X%pB: fel: GCS krävs av -z gcs, men denna indataobjektfil saknar den nödvändiga egenskapsnoteringen.\n"
-#: elflink.c:12200
-msgid "Warning: gc-sections option ignored"
-msgstr "Varning: flaggan gc-sections ignoreras"
+#: elfxx-loongarch.c:1911
+#, c-format
+msgid "%pB: unsupported relocation type %s"
+msgstr "%pB: Omflyttningstyp %s stöds inte"
+
+#: elfxx-loongarch.c:1939
+#, c-format
+msgid "%pB: unsupported bfd relocation type %#x"
+msgstr "%pB: bfd-omflyttningstyp %#x stöds inte"
-#: elflink.c:12489
+#: elfxx-loongarch.c:2013
#, c-format
-msgid "Unrecognized INPUT_SECTION_FLAG %s\n"
-msgstr "Okänd INPUT_SECTION_FLAG %s\n"
+msgid "%pB: relocation %s right shift %d error 0x%lx"
+msgstr "%pB: omlokalisering %s högerskift %d fel 0x%lx"
-#: elfxx-mips.c:1419
+#: elfxx-loongarch.c:2032
+#, c-format
+msgid "%pB: relocation %s overflow 0x%lx"
+msgstr "%pB: förflyttning %s överskridande 0x%lx"
+
+#: elfxx-mips.c:1534
msgid "static procedure (no name)"
msgstr "statisk procedur (inget namn)"
-#: elfxx-mips.c:5476
+#: elfxx-mips.c:5849
msgid "MIPS16 and microMIPS functions cannot call each other"
msgstr "MIPS16 och microMIPS-funktioner kan inte anropa varandra"
-#: elfxx-mips.c:6087
-msgid "%B: %A+0x%lx: Unsupported jump between ISA modes; consider recompiling with interlinking enabled."
-msgstr "%B: %A+0x%lx: Stöder inte hopp mellan ISA-lägen; överväg omkompilering med korslänkning aktiverat."
+#: elfxx-mips.c:6619
+msgid "%X%H: unsupported JALX to the same ISA mode\n"
+msgstr "%X%H: JALX som inte stöds till samma ISA-läge\n"
-#: elfxx-mips.c:6756 elfxx-mips.c:6979
-msgid "%B: Warning: bad `%s' option size %u smaller than its header"
-msgstr "%B: Varning: felaktig â€%s†alternativstorlek %u mindre än dess huvud"
+#: elfxx-mips.c:6652
+msgid "%X%H: unsupported jump between ISA modes; consider recompiling with interlinking enabled\n"
+msgstr "%X%H: hopp mellan ISA-lägen stöds inte; överväg att kompilera om med interlinking aktiverat\n"
-#: elfxx-mips.c:7734 elfxx-mips.c:7859
-msgid "%B: Warning: cannot determine the target function for stub section `%s'"
-msgstr "%B: Varning: kan inte avgöra destinationsfunktionen för stubbsektionen â€%sâ€"
+#: elfxx-mips.c:6697
+msgid "%X%H: cannot convert branch between ISA modes to JALX: relocation out of range\n"
+msgstr "%X%H: kan inte konvertera gren mellan ISA-lägen till JALX: omlokalisering utanför intervallet\n"
-#: elfxx-mips.c:7990
-msgid "%B: Malformed reloc detected for section %s"
-msgstr "%B: Felformad omlokalisering hittad för sektion %s"
+#: elfxx-mips.c:6709
+msgid "%X%H: unsupported branch between ISA modes\n"
+msgstr "%X%H: ej stödd förgrening mellan ISA-lägen\n"
-#: elfxx-mips.c:8065
-msgid "%B: GOT reloc at 0x%lx not expected in executables"
-msgstr "%B: GOT omlokalisering vid 0x%lx förväntas inte i körbara filer"
+#: elfxx-mips.c:7355
+#, c-format
+msgid "%pB: incorrect `.reginfo' section size; expected %<PRIu64>, got %<PRIu64>"
+msgstr "%pB: felaktig storlek på avsnittet `.reginfo'; förväntade %<PRIu64>, fick %<PRIu64>"
-#: elfxx-mips.c:8199
-msgid "%B: CALL16 reloc at 0x%lx not against global symbol"
-msgstr "%B: CALL16-omlokalisering vid 0x%lx inte mot global symbol"
+#: elfxx-mips.c:7399
+#, c-format
+msgid "%pB: warning: bad `%s' option size %u smaller than its header"
+msgstr "%pB: varning: dåligt `%s'-alternativ storlek %u mindre än dess rubrik"
-#: elfxx-mips.c:8977
+#: elfxx-mips.c:7635
+#, c-format
+msgid "%pB: warning: truncated `%s' option"
+msgstr "%pB: varning: avkortat `%s'-alternativ"
+
+#: elfxx-mips.c:8453 elfxx-mips.c:8579
+#, c-format
+msgid "%pB: warning: cannot determine the target function for stub section `%s'"
+msgstr "%pB: varning: kan inte bestämma målfunktionen för stubbavsnittet `%s'"
+
+#: elfxx-mips.c:8711
+#, c-format
+msgid "%pB: malformed reloc detected for section %s"
+msgstr "%pB: felformad reloc upptäckt för sektion %s"
+
+#: elfxx-mips.c:8811
+#, c-format
+msgid "%pB: GOT reloc at %#<PRIx64> not expected in executables"
+msgstr "%pB: GOT-reloc vid %#<PRIx64> förväntas inte i körbara filer"
+
+#: elfxx-mips.c:8951
+#, c-format
+msgid "%pB: CALL16 reloc at %#<PRIx64> not against global symbol"
+msgstr "%pB: CALL16 reloc vid %#<PRIx64> inte mot global symbol"
+
+#: elfxx-mips.c:9254
+#, c-format
+msgid "%X%H: relocation %s against `%s' cannot be used when making a shared object; recompile with -fPIC\n"
+msgstr "%X%H: relokalisering %s mot `%s' kan inte användas när man skapar ett delat objekt; kompilera om med -fPIC\n"
+
+#: elfxx-mips.c:9380
+#, c-format
+msgid "IFUNC symbol %s in dynamic symbol table - IFUNCS are not supported"
+msgstr "IFUNC-symbolen %s i den dynamiska symboltabellen - IFUNCS stöds inte"
+
+#: elfxx-mips.c:9383
+#, c-format
+msgid "non-dynamic symbol %s in dynamic symbol table"
+msgstr "icke-dynamisk symbol %s i dynamisk symboltabell"
+
+#: elfxx-mips.c:9603
#, c-format
msgid "non-dynamic relocations refer to dynamic symbol %s"
msgstr "icke-dynamiska omlokaliseringar använder dynamisk symbol %s"
-#: elfxx-mips.c:9877
-msgid "%B: Can't find matching LO16 reloc against `%s' for %s at 0x%lx in section `%A'"
-msgstr "%B: Kan inte hitta passande LO16-omlokalisering mot â€%s†för %s vid 0x%lx i sektion â€%Aâ€"
+#: elfxx-mips.c:10523
+#, c-format
+msgid "%pB: can't find matching LO16 reloc against `%s' for %s at %#<PRIx64> in section `%pA'"
+msgstr "%pB: kan inte hitta matchande LO16 reloc mot `%s' för %s vid %#<PRIx64> i sektion `%pA'"
+
+#: elfxx-mips.c:10663
+msgid "small-data section too large; lower small-data size limit (see option -G)"
+msgstr "small-data-avsnittet för stort; sänk gränsen för storleken på small-data (se alternativ -G)"
+
+#: elfxx-mips.c:10682
+msgid "cannot convert a jump to JALX for a non-word-aligned address"
+msgstr "kan inte konvertera ett hopp till JALX för en adress som inte är ordalignerad"
+
+#: elfxx-mips.c:10685
+msgid "jump to a non-word-aligned address"
+msgstr "hoppa till en adress som inte är ordalignerad"
+
+#: elfxx-mips.c:10686
+msgid "jump to a non-instruction-aligned address"
+msgstr "hoppa till en icke-instruktionsjusterad adress"
-#: elfxx-mips.c:10016
-msgid "small-data section exceeds 64KB; lower small-data size limit (see option -G)"
-msgstr "small-data-sektion överstiger 64Kb; minska small-data-storleksgräns (se flaggan -G)"
+#: elfxx-mips.c:10689
+msgid "cannot convert a branch to JALX for a non-word-aligned address"
+msgstr "kan inte konvertera en gren till JALX för en adress som inte är ordalignerad"
-#: elfxx-mips.c:10035
-msgid "JALX to a non-word-aligned address"
-msgstr "JALX till en ej ordjusterad adress"
+#: elfxx-mips.c:10691
+msgid "branch to a non-instruction-aligned address"
+msgstr "förgrening till en icke-instruktionsjusterad adress"
-#: elfxx-mips.c:10402 elfxx-mips.c:10966
-msgid "%B: `%A' offset of %ld from `%A' beyond the range of ADDIUPC"
-msgstr "%B: â€%A†förskjutning pÃ¥ %ld frÃ¥n â€%A†bortom intervallet för ADDIUPC"
+#: elfxx-mips.c:10693
+msgid "PC-relative load from unaligned address"
+msgstr "PC-relativ belastning från oadresserad adress"
-#: elfxx-mips.c:13990
+#: elfxx-mips.c:10993
#, c-format
-msgid "%s: illegal section name `%s'"
-msgstr "%s: ogiltigt sektionsnamn â€%sâ€"
+msgid "%pB: `%pA' entry VMA of %#<PRIx64> outside the 32-bit range supported; consider using `-Ttext-segment=...'"
+msgstr "%pB: `%pA' entry VMA för %#<PRIx64> utanför det 32-bitarsintervall som stöds; överväg att använda `-Ttext-segment=...'"
-#: elfxx-mips.c:14375 elfxx-mips.c:14381 elfxx-mips.c:14387 elfxx-mips.c:14407
-#: elfxx-mips.c:14413 elfxx-mips.c:14419 elfxx-mips.c:14441 elfxx-mips.c:14460
-#: elfxx-mips.c:14467 elfxx-mips.c:14474
-msgid "Warning: %B uses %s (set by %B), %B uses %s"
-msgstr "Varning: %B använder %s (satt av %B), %B använder %s"
+#: elfxx-mips.c:11108 elfxx-mips.c:11701
+#, c-format
+msgid "%pB: `%pA' offset of %<PRId64> from `%pA' beyond the range of ADDIUPC"
+msgstr "%pB: `%pA' förskjutning av %<PRId64> från `%pA' utanför ADDIUPC:s område"
-#: elfxx-mips.c:14394 elfxx-mips.c:14426 elfxx-mips.c:14447 elfxx-mips.c:14480
-msgid "Warning: %B uses %s (set by %B), %B uses unknown floating point ABI %d"
-msgstr "Varning: %B använder %s (satt av %B), %B använder okänd flyttals-ABI %d"
+#: elfxx-mips.c:11673
+#, c-format
+msgid "%pB: `%pA' start VMA of %#<PRIx64> outside the 32-bit range supported; consider using `-Ttext-segment=...'"
+msgstr "%pB: `%pA' startar VMA för %#<PRIx64> utanför det 32-bitarsintervall som stöds; överväg att använda `-Ttext-segment=...'"
-#: elfxx-mips.c:14493 elfxx-mips.c:14501 elfxx-mips.c:14509 elfxx-mips.c:14517
-msgid "Warning: %B uses unknown floating point ABI %d (set by %B), %B uses %s"
-msgstr "Varning: %B använder okänt flyttals-ABI %d (satt av %B), %B använder %s"
+#: elfxx-mips.c:13418 reloc.c:8518
+#, c-format
+msgid "%X%P: %pB(%pA): error: relocation for offset %V has no value\n"
+msgstr "%X%P: %pB(%pA): fel: relokering för offset %V har inget värde\n"
-#: elfxx-mips.c:14525
-msgid "Warning: %B uses unknown floating point ABI %d (set by %B), %B uses unknown floating point ABI %d"
-msgstr "Varning: %B använder okänt flyttals-ABI %d (satt av %B), %B använder okänd flyttals-ABI %d"
+#: elfxx-mips.c:14729
+#, c-format
+msgid "%pB: unknown architecture %s"
+msgstr "%pB: okänd arkitektur %s"
-#: elfxx-mips.c:14548
-msgid "Warning: %B uses %s (set by %B), %B uses unknown MSA ABI %d"
-msgstr "Varning: %B använder %s (satt av %B), %B använder MSA-ABI %d"
+#: elfxx-mips.c:15257
+#, c-format
+msgid "%pB: illegal section name `%pA'"
+msgstr "%pB: olagligt sektionsnamn `%pA'"
-#: elfxx-mips.c:14559
-msgid "Warning: %B uses unknown MSA ABI %d (set by %B), %B uses %s"
-msgstr "Varning: %B använder okänt MSA-ABI %d (satt av %B), %B använder %s"
+#: elfxx-mips.c:15534
+#, c-format
+msgid "%pB: warning: linking abicalls files with non-abicalls files"
+msgstr "%pB: varning: länka abicalls-filer med icke abicalls-filer"
-#: elfxx-mips.c:14567
-msgid "Warning: %B uses unknown MSA ABI %d (set by %B), %B uses unknown MSA ABI %d"
-msgstr "Varning: %B använder okänt MSA-ABI %d (satt av %B), %B använder okänd MSA-ABI %d"
+#: elfxx-mips.c:15551
+#, c-format
+msgid "%pB: linking 32-bit code with 64-bit code"
+msgstr "%pB: länka 32-bitars kod med 64-bitars kod"
-#: elfxx-mips.c:14599
-msgid "%B: endianness incompatible with that of the selected emulation"
-msgstr "%B: bitordning inkompatibel med vald emulering"
+#: elfxx-mips.c:15583 elfxx-mips.c:15649 elfxx-mips.c:15664
+#, c-format
+msgid "%pB: linking %s module with previous %s modules"
+msgstr "%pB: länka %s modul med tidigare %s moduler"
+
+#: elfxx-mips.c:15607
+#, c-format
+msgid "%pB: ABI mismatch: linking %s module with previous %s modules"
+msgstr "%pB: ABI-missmatchning: länka %s modul med tidigare %s moduler"
+
+#: elfxx-mips.c:15632
+#, c-format
+msgid "%pB: ASE mismatch: linking %s module with previous %s modules"
+msgstr "%pB: ASE-missmatchning: länka %s modul med tidigare %s moduler"
+
+#: elfxx-mips.c:15766
+#, c-format
+msgid "warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses unknown floating point ABI %d"
+msgstr "warning: %pB använder okänd ABI för flyttal %d (inställd av %pB), %pB använder okänd ABI för flyttal %d"
-#: elfxx-mips.c:14610
-msgid "%B: ABI is incompatible with that of the selected emulation"
-msgstr "%B: ABI är inkompatibelt med vald emulering"
+#: elfxx-mips.c:15772
+#, c-format
+msgid "warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses %s"
+msgstr "varning: %pB använder okänd ABI för flyttal %d (anges av %pB), %pB använder %s"
-#: elfxx-mips.c:14694
-msgid "%B: warning: linking abicalls files with non-abicalls files"
-msgstr "%B: varning: länkar abicalls-filer till icke-abicalls-filer"
+#: elfxx-mips.c:15778
+#, c-format
+msgid "warning: %pB uses %s (set by %pB), %pB uses unknown floating point ABI %d"
+msgstr "varning: %pB använder %s (inställd av %pB), %pB använder okänd ABI för flyttal %d"
-#: elfxx-mips.c:14711
-msgid "%B: linking 32-bit code with 64-bit code"
-msgstr "%B: länkar 32-bitars kod till 64-bitars kod"
+#: elfxx-mips.c:15792
+#, c-format
+msgid "warning: %pB uses %s (set by %pB), %pB uses %s"
+msgstr "varning: %pB använder %s (inställd av %pB), %pB använder %s"
-#: elfxx-mips.c:14739 elfxx-mips.c:14802
-msgid "%B: linking %s module with previous %s modules"
-msgstr "%B: länkar %s-modul till tidigare %s-moduler"
+#: elfxx-mips.c:15811
+#, c-format
+msgid "warning: %pB uses %s (set by %pB), %pB uses unknown MSA ABI %d"
+msgstr "varning: %pB använder %s (inställd av %pB), %pB använder okänd MSA ABI %d"
-#: elfxx-mips.c:14762
-msgid "%B: ABI mismatch: linking %s module with previous %s modules"
-msgstr "%B: ABI felmatchning: länkar %s-modul till tidigare %s-moduler"
+#: elfxx-mips.c:15823
+#, c-format
+msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses %s"
+msgstr "varning: %pB använder okänd MSA ABI %d (inställd av %pB), %pB använder %s"
-#: elfxx-mips.c:14786
-msgid "%B: ASE mismatch: linking %s module with previous %s modules"
-msgstr "%B: ASE-felmatchning: länkning av %s med tidigare %s moduler"
+#: elfxx-mips.c:15832
+#, c-format
+msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses unknown MSA ABI %d"
+msgstr "varning: %pB använder okänd MSA ABI %d (inställd av %pB), %pB använder okänd MSA ABI %d"
-#: elfxx-mips.c:14958
+#: elfxx-mips.c:15894
+#, c-format
+msgid "%pB: endianness incompatible with that of the selected emulation"
+msgstr "%pB: endianness oförenlig med den för den valda emuleringen"
+
+#: elfxx-mips.c:15908
+#, c-format
+msgid "%pB: ABI is incompatible with that of the selected emulation"
+msgstr "%pB: ABI är inte kompatibelt med den valda emuleringen"
+
+#: elfxx-mips.c:15961
+#, c-format
+msgid "%pB: warning: inconsistent ISA between e_flags and .MIPS.abiflags"
+msgstr "%pB: varning: inkonsekvent ISA mellan e_flags och .MIPS.abiflags"
+
+#: elfxx-mips.c:15966
+#, c-format
+msgid "%pB: warning: inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags"
+msgstr "%pB: varning: inkonsekvent FP ABI mellan .gnu.attributes och .MIPS.abiflags"
+
+#: elfxx-mips.c:15970
+#, c-format
+msgid "%pB: warning: inconsistent ASEs between e_flags and .MIPS.abiflags"
+msgstr "%pB: varning: inkonsekventa ASE:er mellan e_flags och .MIPS.abiflags"
+
+#: elfxx-mips.c:15977
+#, c-format
+msgid "%pB: warning: inconsistent ISA extensions between e_flags and .MIPS.abiflags"
+msgstr "%pB: varning: inkonsekventa ISA-tillägg mellan e_flags och .MIPS.abiflags"
+
+#: elfxx-mips.c:15981
+#, c-format
+msgid "%pB: warning: unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)"
+msgstr "%pB: varning: oväntad flagga i fältet flags2 i .MIPS.abiflags (0x%lx)"
+
+#: elfxx-mips.c:16172
+msgid "-mips32r2 -mfp64 (12 callee-saved)"
+msgstr "-mips32r2 -mfp64 (12 kaliber sparade)"
+
+#: elfxx-mips.c:16234 elfxx-mips.c:16245
+msgid "None"
+msgstr "Ingen"
+
+#: elfxx-mips.c:16236 elfxx-mips.c:16305
+msgid "Unknown"
+msgstr "Okänd"
+
+#: elfxx-mips.c:16316
+#, c-format
+msgid "Hard or soft float\n"
+msgstr "HÃ¥rdvaru- eller programvaruflyttal\n"
+
+#: elfxx-mips.c:16319
+#, c-format
+msgid "Hard float (double precision)\n"
+msgstr "HÃ¥rdvaruflyttal (dubbel precision)\n"
+
+#: elfxx-mips.c:16322
+#, c-format
+msgid "Hard float (single precision)\n"
+msgstr "HÃ¥rdvaruflyttal (enkel precision)\n"
+
+#: elfxx-mips.c:16325
+#, c-format
+msgid "Soft float\n"
+msgstr "Programvaruflyttal\n"
+
+#: elfxx-mips.c:16328
+#, c-format
+msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
+msgstr "HÃ¥rdvaruflyttal (MIPS32r2 64-bit FPU 12 calle-saved)\n"
+
+#: elfxx-mips.c:16331
+#, c-format
+msgid "Hard float (32-bit CPU, Any FPU)\n"
+msgstr "HÃ¥rdvaruflyttal (32-bitars CPU, valfri FPU)\n"
+
+#: elfxx-mips.c:16334
+#, c-format
+msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
+msgstr "HÃ¥rdvaruflyttal (32-bitars CPU, 64-bitars FPU)\n"
+
+#: elfxx-mips.c:16337
+#, c-format
+msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
+msgstr "HÃ¥rdvaruflyttalskompatibilitet (32-bitars CPU, 64-bitars FPU)\n"
+
+#: elfxx-mips.c:16369
#, c-format
msgid " [abi=O32]"
msgstr " [abi=O32]"
-#: elfxx-mips.c:14960
+#: elfxx-mips.c:16371
#, c-format
msgid " [abi=O64]"
msgstr " [abi=O64]"
-#: elfxx-mips.c:14962
+#: elfxx-mips.c:16373
#, c-format
msgid " [abi=EABI32]"
msgstr " [abi=EABI32]"
-#: elfxx-mips.c:14964
+#: elfxx-mips.c:16375
#, c-format
msgid " [abi=EABI64]"
msgstr " [abi=EABI64]"
-#: elfxx-mips.c:14966
+#: elfxx-mips.c:16377
#, c-format
msgid " [abi unknown]"
msgstr " [okänt abi]"
-#: elfxx-mips.c:14968
+#: elfxx-mips.c:16379
#, c-format
msgid " [abi=N32]"
msgstr " [abi=N32]"
-#: elfxx-mips.c:14970
+#: elfxx-mips.c:16381
#, c-format
msgid " [abi=64]"
msgstr " [abi=64]"
-#: elfxx-mips.c:14972
+#: elfxx-mips.c:16383
#, c-format
msgid " [no abi set]"
msgstr " [inget abi inställt]"
-#: elfxx-mips.c:14993
+#: elfxx-mips.c:16408
#, c-format
msgid " [unknown ISA]"
msgstr " [okänd ISA]"
-#: elfxx-mips.c:15013
+#: elfxx-mips.c:16428
#, c-format
msgid " [not 32bitmode]"
msgstr " [inte 32-bitarsläge]"
-#: elfxx-sparc.c:640
+#: elfxx-riscv.c:1827
+#, c-format
+msgid "x ISA extension `%s' must be set with the versions"
+msgstr "x ISA-tillägget `%s' måste ställas in med versionerna"
+
+#: elfxx-riscv.c:1833
+#, c-format
+msgid "cannot find default versions of the ISA extension `%s'"
+msgstr "kan inte hitta standardversioner av ISA-tillägget `%s'"
+
+#: elfxx-riscv.c:1939
+#, c-format
+msgid "%s: first ISA extension must be `e', `i' or `g'"
+msgstr "%s: första ISA-tillägget måste vara `e', `i' eller `g'"
+
+#: elfxx-riscv.c:1963
+#, c-format
+msgid "%s: unknown standard ISA extension or prefix class `%c'"
+msgstr "%s: okänd standard ISA-förlängning eller prefixklass `%c'"
+
+#: elfxx-riscv.c:1999
+#, c-format
+msgid "%s: invalid prefixed ISA extension `%s' ends with <number>p"
+msgstr "%s: ogiltigt prefix för ISA-tillägget `%s' slutar med <number>p"
+
+#: elfxx-riscv.c:2023
+#, c-format
+msgid "%s: unknown prefixed ISA extension `%s'"
+msgstr "%s: okänt prefix för ISA-tillägget `%s'"
+
+#: elfxx-riscv.c:2047
+#, c-format
+msgid "%s: prefixed ISA extension must separate with _"
+msgstr "%s: ISA-tillägg med prefix måste separeras med _"
+
+#: elfxx-riscv.c:2087
+#, c-format
+msgid "rv%de does not support the `h' extension"
+msgstr "rv%de stöder inte ändelsen `h'"
+
+#: elfxx-riscv.c:2095
+#, c-format
+msgid "rv%d does not support the `q' extension"
+msgstr "rv%d stöder inte ändelsen `q'"
+
+#: elfxx-riscv.c:2102
+msgid "zcmp' is incompatible with `d/zcd' extension"
+msgstr "zcmp' är inkompatibel med `d/zcd' förlängning"
+
+#: elfxx-riscv.c:2109
+#, c-format
+msgid "rv%d does not support the `zcf' extension"
+msgstr "rv%d stöder inte ändelsen `zcf'"
+
+#: elfxx-riscv.c:2116
+msgid "`zfinx' is conflict with the `f/d/q/zfh/zfhmin' extension"
+msgstr "`zfinx' är i konflikt med tillägget `f/d/q/zfh/zfhmin'"
+
+#: elfxx-riscv.c:2123
+msgid "`xtheadvector' is conflict with the `v' extension"
+msgstr "`xtheadvector' är i konflikt med `v' tillägget"
+
+#: elfxx-riscv.c:2144
+msgid "zvl*b extensions need to enable either `v' or `zve' extension"
+msgstr "zvl*b-tillägg måste aktivera antingen `v' eller `zve'-tillägg"
+
+#: elfxx-riscv.c:2206
+#, c-format
+msgid "%s: ISA string cannot contain uppercase letters"
+msgstr "%s: ISA-strängen kan inte innehålla versaler"
+
+#: elfxx-riscv.c:2234
+#, c-format
+msgid "%s: ISA string must begin with rv32 or rv64"
+msgstr "%s: ISA-strängen måste börja med rv32 eller rv64"
+
+#: elfxx-riscv.c:2417
+msgid "internal: "
+msgstr "intern: "
+
+#: elfxx-riscv.c:2471
+#, c-format
+msgid "%sinvalid ISA extension ends with <number>p in %s `%s'"
+msgstr "%sinvalid ISA extension slutar med <number>p i %s `%s'"
+
+#: elfxx-riscv.c:2494
+#, c-format
+msgid "%sunknown ISA extension `%s' in %s `%s'"
+msgstr "%sokänd ISA-förlängning `%s' i %s `%s'"
+
+#: elfxx-riscv.c:2506
+#, c-format
+msgid "%scannot + or - base extension `%s' in %s `%s'"
+msgstr "%scannot + eller - bastillägget `%s' i %s `%s'"
+
+#: elfxx-riscv.c:2817 elfxx-riscv.c:3112
+msgid "internal: unreachable INSN_CLASS_*"
+msgstr "intern: ej nåbar INSN_CLASS_*"
+
+#: elfxx-riscv.c:2851
+msgid "zicfiss' and `zcmop"
+msgstr "zicfiss' och `zcmop"
+
+#: elfxx-riscv.c:2865
+msgid "zihintntl' and `c', or `zihintntl' and `zca"
+msgstr "zihintntl\" och \"c\", eller \"zihintntl\" och \"zca"
+
+#: elfxx-riscv.c:2870 elfxx-riscv.c:2896
+msgid "c' or `zca"
+msgstr "c' eller `zca"
+
+#: elfxx-riscv.c:2878
+msgid "m' or `zmmul"
+msgstr "m\" eller \"zmmul"
+
+#: elfxx-riscv.c:2902
+msgid "f' and `c', or `f' and `zcf"
+msgstr "f\" och \"c\", eller \"f\" och \"zcf"
+
+#: elfxx-riscv.c:2907
+msgid "c' or `zcf"
+msgstr "c' eller `zcf"
+
+#: elfxx-riscv.c:2913
+msgid "d' and `c', or `d' and `zcd"
+msgstr "d' och `c', eller `d' och `zcd"
+
+#: elfxx-riscv.c:2918
+msgid "c' or `zcd"
+msgstr "c' eller `zcd"
+
+#: elfxx-riscv.c:2920
+msgid "f' or `zfinx"
+msgstr "f\" eller \"zfinx"
+
+#: elfxx-riscv.c:2922
+msgid "d' or `zdinx"
+msgstr "d' eller `zdinx"
+
+#: elfxx-riscv.c:2924
+msgid "q' or `zqinx"
+msgstr "q' eller `zqinx"
+
+#: elfxx-riscv.c:2926
+msgid "zfh' or `zhinx"
+msgstr "zfh' eller `zhinx"
+
+#: elfxx-riscv.c:2930
+msgid "zfhmin' or `zhinxmin"
+msgstr "zfhmin\" eller \"zhinxmin"
+
+#: elfxx-riscv.c:2941
+msgid "zfhmin' and `d', or `zhinxmin' and `zdinx"
+msgstr "zfhmin\" och \"d\", eller \"zhinxmin\" och \"zdinx"
+
+#: elfxx-riscv.c:2952
+msgid "zfhmin' and `q', or `zhinxmin' and `zqinx"
+msgstr "zfhmin' och `q', eller `zhinxmin' och `zqinx"
+
+#: elfxx-riscv.c:2960
+msgid "d' and `zfa"
+msgstr "d\" och \"zfa"
+
+#: elfxx-riscv.c:2968
+msgid "q' and `zfa"
+msgstr "q\" och \"zfa"
+
+#: elfxx-riscv.c:2976
+msgid "zfh' and `zfa"
+msgstr "zfh\" och \"zfa"
+
+#: elfxx-riscv.c:2986
+msgid "zfh' and `zfa', or `zvfh' and `zfa"
+msgstr "zfh\" och \"zfa\", eller \"zvfh\" och \"zfa"
+
+#: elfxx-riscv.c:2991
+msgid "zfh' or `zvfh"
+msgstr "zfh' eller `zvfh"
+
+#: elfxx-riscv.c:3007
+msgid "zbb' or `zbkb"
+msgstr "zbb\" eller \"zbkb"
+
+#: elfxx-riscv.c:3009
+msgid "zbc' or `zbkc"
+msgstr "zbc' eller `zbkc"
+
+#: elfxx-riscv.c:3017
+msgid "zknd' or `zkne"
+msgstr "zknd\" eller \"zkne"
+
+#: elfxx-riscv.c:3023
+msgid "v' or `zve64x' or `zve32x"
+msgstr "v' eller `zve64x' eller `zve32x"
+
+#: elfxx-riscv.c:3025
+msgid "v' or `zve64d' or `zve64f' or `zve32f"
+msgstr "v' eller `zve64d' eller `zve64f' eller `zve32f"
+
+#: elfxx-riscv.c:3027
+msgid "zvbb"
+msgstr "zvbb"
+
+#: elfxx-riscv.c:3029
+msgid "zvbc"
+msgstr "zvbc"
+
+#: elfxx-riscv.c:3035
+msgid "zvkb"
+msgstr "zvkb"
+
+#: elfxx-riscv.c:3037
+msgid "zvkg"
+msgstr "zvkg"
+
+#: elfxx-riscv.c:3039
+msgid "zvkned"
+msgstr "zvkned"
+
+#: elfxx-riscv.c:3041
+msgid "zvknha' or `zvknhb"
+msgstr "zvknha\" eller \"zvknhb"
+
+#: elfxx-riscv.c:3043
+msgid "zvksed"
+msgstr "zvksed"
+
+#: elfxx-riscv.c:3045
+msgid "zvksh"
+msgstr "zvksh"
+
+#: elfxx-riscv.c:3049
+msgid "zcb' and `zba"
+msgstr "zcb' och `zba"
+
+#: elfxx-riscv.c:3051
+msgid "zcb' and `zbb"
+msgstr "zcb' och `zbb"
+
+#: elfxx-riscv.c:3053
+msgid "zcb' and `zmmul', or `zcb' and `m"
+msgstr "zcb\" och \"zmmul\", eller \"zcb\" och \"m"
+
+#: elfxx-riscv.c:3061
+msgid "smctr' or `ssctr"
+msgstr "smctr' eller `ssctr"
+
+#: elfxx-riscv.c:3065
+msgid "h"
+msgstr "h"
+
+#: elfxx-sparc.c:3017 elfnn-aarch64.c:5750
+#, c-format
+msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s"
+msgstr "%pB: relokering %s mot STT_GNU_IFUNC-symbolen `%s' hanteras inte av %s"
+
+#: elfxx-tilegx.c:4126
+#, c-format
+msgid "%pB: cannot link together %s and %s objects"
+msgstr "%pB: kan inte länka samman %s och %s objekt"
+
+#: elfxx-x86.c:534 elfxx-x86.c:3597
+#, c-format
+msgid "%F%P: %pB: copy relocation against non-copyable protected symbol `%s' in %pB\n"
+msgstr "%F%P: %pB: kopieringsflytt mot icke-kopierbar skyddad symbol `%s' i %pB\n"
+
+#: elfxx-x86.c:1044
+#, c-format
+msgid "%F%P: %pB: failed to allocate relative reloc record\n"
+msgstr "%F%P: %pB: kunde inte tilldela relativ reloc-post\n"
+
+#: elfxx-x86.c:1403
+#, c-format
+msgid "%F%P: %pB: failed to allocate 64-bit DT_RELR bitmap\n"
+msgstr "%F%P: %pB: misslyckades med att allokera 64-bitars DT_RELR-bitmapp\n"
+
+#: elfxx-x86.c:1439
+#, c-format
+msgid "%F%P: %pB: failed to allocate 32-bit DT_RELR bitmap\n"
+msgstr "%F%P: %pB: misslyckades med att allokera 32-bitars DT_RELR-bitmapp\n"
+
+#: elfxx-x86.c:1578
+#, c-format
+msgid "%F%P: %pB: failed to allocate memory for section `%pA'\n"
+msgstr "%F%P: %pB: det gick inte att allokera minne för sektion `%pA'\n"
+
+#: elfxx-x86.c:1765
+#, c-format
+msgid "%F%P: %pB: size of compact relative reloc section is changed: new (%lu) != old (%lu)\n"
+msgstr "%F%P: %pB: storleken på den kompakta relativa reloc-sektionen har ändrats: ny (%lu) != gammal (%lu)\n"
+
+#: elfxx-x86.c:1787
+#, c-format
+msgid "%F%P: %pB: failed to allocate compact relative reloc section\n"
+msgstr "%F%P: %pB: kunde inte allokera kompakt relativ reloc-sektion\n"
+
+#: elfxx-x86.c:2256
#, c-format
-msgid "invalid relocation type %d"
-msgstr "ogiltig omlokaliseringstyp %d"
+msgid "%F%P: %pB: relocation %s against absolute symbol `%s' in section `%pA' is disallowed\n"
+msgstr "%F%P: %pB: flyttningen %s mot den absoluta symbolen `%s' i avsnitt `%pA' är otillåten\n"
-#: elfxx-tilegx.c:4433
-msgid "%B: Cannot link together %s and %s objects."
-msgstr "%B: Kan inte länka samman objekten %s och %s."
+#: elfxx-x86.c:2338
+msgid "%P: %pB: warning: relocation in read-only section `%pA'\n"
+msgstr "%P: %pB: varning: omplacering i skrivskyddat avsnitt `%pA'\n"
-#: i386linux.c:418 m68klinux.c:421 sparclinux.c:414
+#: elfxx-x86.c:3265
+msgid "%pB: %s (offset: 0x%v, info: 0x%v, addend: 0x%v) against '%s' for section '%pA' in %pB\n"
+msgstr "%pB: %s (offset: 0x%v, info: 0x%v, addend: 0x%v) mot '%s' för avsnitt '%pA' i %pB\n"
+
+#: elfxx-x86.c:3271
+msgid "%pB: %s (offset: 0x%v, info: 0x%v) against '%s' for section '%pA' in %pB\n"
+msgstr "%pB: %s (offset: 0x%v, info: 0x%v) mot '%s' för avsnitt '%pA' i %pB\n"
+
+#: elfxx-x86.c:3307
+#, c-format
+msgid "%pB: TLS transition from %s to %s against `%s' at 0x%v in section `%pA' failed\n"
+msgstr "%pB: TLS-övergången från %s till %s mot `%s' på 0x%v i avsnitt `%pA' misslyckades\n"
+
+#: elfxx-x86.c:3316
+#, c-format
+msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in ADD only\n"
+msgstr "%pB(%pA+0x%v): omlokalisering %s mot `%s' får endast användas i ADD\n"
+
+#: elfxx-x86.c:3324
+#, c-format
+msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in ADD or MOV only\n"
+msgstr "%pB(%pA+0x%v): relokering %s mot `%s' får endast användas i ADD eller MOV\n"
+
+#: elfxx-x86.c:3332
+#, c-format
+msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in ADD, SUB or MOV only\n"
+msgstr "%pB(%pA+0x%v): relokering %s mot `%s' får endast användas i ADD, SUB eller MOV\n"
+
+#: elfxx-x86.c:3340
#, c-format
-msgid "Output file requires shared library `%s'\n"
-msgstr "Utdatafilen kräver delade biblioteket â€%sâ€\n"
+msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in indirect CALL with %s register only\n"
+msgstr "%pB(%pA+0x%v): relokering %s mot `%s' får endast användas i indirekt CALL med %s register\n"
-#: i386linux.c:426 m68klinux.c:429 sparclinux.c:422
+#: elfxx-x86.c:3349
#, c-format
-msgid "Output file requires shared library `%s.so.%s'\n"
-msgstr "Utdatafilen kräver delade biblioteket â€%s.so.%sâ€\n"
+msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in LEA only\n"
+msgstr "%pB(%pA+0x%v): omlokalisering %s mot `%s' får endast användas i LEA\n"
-#: i386linux.c:613 i386linux.c:663 m68klinux.c:618 m68klinux.c:666
-#: sparclinux.c:609 sparclinux.c:659
+#: elfxx-x86.c:3976
#, c-format
-msgid "Symbol %s not defined for fixups\n"
-msgstr "Symbolen %s är inte definierad för fixar\n"
+msgid "error: %pB: <corrupt x86 property (0x%x) size: 0x%x>"
+msgstr "fel: %pB: <korrupt x86-egenskap (0x%x) storlek: 0x%x>"
-#: i386linux.c:687 m68klinux.c:690 sparclinux.c:683
-msgid "Warning: fixup count mismatch\n"
-msgstr "Varning: antalet fixar stämmer inte\n"
+#: elfxx-x86.c:4189
+#, c-format
+msgid "%pB: x86 ISA needed: "
+msgstr "%pB: x86 ISA behövs: "
-#: ieee.c:158
+#: elfxx-x86.c:4191
#, c-format
-msgid "%s: string too long (%d chars, max 65535)"
-msgstr "%s: strängen är för lång (%d tecken, max 65535)"
+msgid "%pB: x86 ISA used: "
+msgstr "%pB: x86 ISA används: "
-#: ieee.c:285
+#: elfxx-x86.c:4213
#, c-format
-msgid "%s: unrecognized symbol `%s' flags 0x%x"
-msgstr "%s: okänd symbol â€%s†flaggor 0x%x"
+msgid "<unknown: %x>"
+msgstr "< okänt: %x>"
+
+#: elfxx-x86.c:4368
+msgid "%P: %pB: warning: missing %s\n"
+msgstr "%P: %pB: varning: %s saknas\n"
+
+#: elfxx-x86.c:4369
+msgid "%X%P: %pB: error: missing %s\n"
+msgstr "%X%P: %pB: fel: %s saknas\n"
+
+#: elfxx-x86.c:4475
+msgid "IBT and SHSTK properties"
+msgstr "IBT- och SHSTK-egenskaper"
-#: ieee.c:791
-msgid "%B: unimplemented ATI record %u for symbol %u"
-msgstr "%B: ej implementerad ATI-post %u för symbol %u"
+#: elfxx-x86.c:4477
+msgid "IBT property"
+msgstr "IBT egendom"
-#: ieee.c:815
-msgid "%B: unexpected ATN type %d in external part"
-msgstr "%B: oväntad ATN-typ %d i extern del"
+#: elfxx-x86.c:4479
+msgid "SHSTK property"
+msgstr "SHSTK fastighet"
-#: ieee.c:837
-msgid "%B: unexpected type after ATN"
-msgstr "%B: oväntad typ efter ATN"
+#: elfxx-x86.c:4484
+msgid "LAM_U48 property"
+msgstr "LAM_U48 fastighet"
+
+#: elfxx-x86.c:4489
+msgid "LAM_U57 property"
+msgstr "LAM_U57 fastighet"
+
+#: elfxx-x86.c:4667
+msgid "%F%P: failed to create VxWorks dynamic sections\n"
+msgstr "%F%P: misslyckades med att skapa dynamiska VxWorks-avsnitt\n"
+
+#: elfxx-x86.c:4676
+msgid "%F%P: failed to create GOT sections\n"
+msgstr "%F%P: misslyckades med att skapa GOT-avsnitt\n"
+
+#: elfxx-x86.c:4694
+msgid "%F%P: failed to create ifunc sections\n"
+msgstr "%F%P: misslyckades med att skapa ifunc-avsnitt\n"
+
+#: elfxx-x86.c:4731
+msgid "%F%P: failed to create GOT PLT section\n"
+msgstr "%F%P: misslyckades med att skapa GOT PLT-avsnittet\n"
+
+#: elfxx-x86.c:4750
+msgid "%F%P: failed to create IBT-enabled PLT section\n"
+msgstr "%F%P: lyckades inte skapa en IBT-aktiverad PLT-sektion\n"
+
+#: elfxx-x86.c:4770
+msgid "%F%P: failed to create PLT .eh_frame section\n"
+msgstr "%F%P: misslyckades med att skapa PLT .eh_frame-avsnitt\n"
+
+#: elfxx-x86.c:4783
+msgid "%F%P: failed to create GOT PLT .eh_frame section\n"
+msgstr "%F%P: misslyckades med att skapa GOT PLT .eh_frame-avsnitt\n"
+
+#: elfxx-x86.c:4797
+msgid "%F%P: failed to create the second PLT .eh_frame section\n"
+msgstr "%F%P: misslyckades med att skapa den andra PLT .eh_frame-sektionen\n"
+
+#: elfxx-x86.c:4817
+msgid "%F%P: failed to create PLT .sframe section\n"
+msgstr "%F%P: misslyckades med att skapa PLT .sframe-avsnitt\n"
+
+#: elfxx-x86.c:4832
+msgid "%F%P: failed to create second PLT .sframe section\n"
+msgstr "%F%P: misslyckades med att skapa en andra PLT .sframe-sektion\n"
+
+#: elfxx-x86.c:4844
+msgid "%F%P: failed to create PLT GOT .sframe section\n"
+msgstr "%F%P: misslyckades med att skapa PLT GOT .sframe-sektionen\n"
+
+#: elfxx-x86.c:4883
+msgid "%X%P: attempted static link of dynamic object `%pB'\n"
+msgstr "%X%P: försök till statisk länk av dynamiskt objekt `%pB'\n"
#: ihex.c:230
-msgid "%B:%d: unexpected character `%s' in Intel Hex file"
-msgstr "%B:%d: oväntat tecken â€%s†i Intel Hex-fil"
+#, c-format
+msgid "%pB:%d: unexpected character `%s' in Intel Hex file"
+msgstr "%pB:%d: oväntat tecken `%s' i Intel Hex-fil"
-#: ihex.c:337
-msgid "%B:%u: bad checksum in Intel Hex file (expected %u, found %u)"
-msgstr "%B:%u: felaktig kontrollsumma i Intel Hex-fil (förväntade mig %u, hittade %u)"
+#: ihex.c:338
+#, c-format
+msgid "%pB:%u: bad checksum in Intel Hex file (expected %u, found %u)"
+msgstr "%pB:%u: dålig kontrollsumma i Intel Hex-fil (förväntat %u, hittat %u)"
-#: ihex.c:392
-msgid "%B:%u: bad extended address record length in Intel Hex file"
-msgstr "%B:%u: felaktig utökad adresspostlängd i Intel Hex-fil"
+#: ihex.c:393
+#, c-format
+msgid "%pB:%u: bad extended address record length in Intel Hex file"
+msgstr "%pB:%u: fel längd på utökad adresspost i Intel Hex-fil"
-#: ihex.c:409
-msgid "%B:%u: bad extended start address length in Intel Hex file"
-msgstr "%B:%u: felaktig utökad startadresslängd i Intel Hex-fil"
+#: ihex.c:411
+#, c-format
+msgid "%pB:%u: bad extended start address length in Intel Hex file"
+msgstr "%pB:%u: fel längd på den utökade startadressen i Intel Hex-filen"
-#: ihex.c:426
-msgid "%B:%u: bad extended linear address record length in Intel Hex file"
-msgstr "%B:%u: felaktig linjär adresspostlängd i Intel Hex-fil"
+#: ihex.c:429
+#, c-format
+msgid "%pB:%u: bad extended linear address record length in Intel Hex file"
+msgstr "%pB:%u: fel längd på utökad linjär adresspost i Intel Hex-fil"
-#: ihex.c:443
-msgid "%B:%u: bad extended linear start address length in Intel Hex file"
-msgstr "%B:%u: felaktig utökad linjär startadresslängd i Intel Hex-fil"
+#: ihex.c:447
+#, c-format
+msgid "%pB:%u: bad extended linear start address length in Intel Hex file"
+msgstr "%pB:%u: felaktig längd på den utökade linjära startadressen i Intel Hex-filen"
-#: ihex.c:460
-msgid "%B:%u: unrecognized ihex type %u in Intel Hex file"
-msgstr "%B:%u: okänd ihex-typ %u i Intel Hex-fil"
+#: ihex.c:465
+#, c-format
+msgid "%pB:%u: unrecognized ihex type %u in Intel Hex file"
+msgstr "%pB:%u: okänd ihex-typ %u i Intel Hex-filen"
-#: ihex.c:579
-msgid "%B: internal error in ihex_read_section"
-msgstr "%B: internt fel i ihex_read_section"
+#: ihex.c:580
+#, c-format
+msgid "%pB: internal error in ihex_read_section"
+msgstr "%pB: internt fel i ihex_read_section"
#: ihex.c:613
-msgid "%B: bad section length in ihex_read_section"
-msgstr "%B: felaktig sektionslängd i ihex_read_section"
+#, c-format
+msgid "%pB: bad section length in ihex_read_section"
+msgstr "%pB: dålig sektionslängd i ihex_read_section"
+
+#: ihex.c:784
+#, c-format
+msgid "%pB 64-bit address %#<PRIx64> out of range for Intel Hex file"
+msgstr "%pB 64-bitarsadress %#<PRIx64> utanför intervallet för Intel Hex-fil"
+
+#: ihex.c:842
+#, c-format
+msgid "%pB: address %#<PRIx64> out of range for Intel Hex file"
+msgstr "%pB: adress %#<PRIx64> utanför intervallet för Intel Hex-fil"
+
+#: libbfd.c:1260
+#, c-format
+msgid "%pB: unable to get decompressed section %pA"
+msgstr "%pB: det går inte att hämta den dekomprimerade delen %pA"
-#: ihex.c:826
+#: libbfd.c:1272
#, c-format
-msgid "%s: address 0x%s out of range for Intel Hex file"
-msgstr "%s: adressen 0x%s är utanför intervallet för hexadecimal Intel-fil"
+msgid "%pB: mapped section %pA has non-NULL buffer"
+msgstr "%pB: mappad sektion %pA har buffert som inte är NULL"
-#: libbfd.c:863
-msgid "%B: unable to get decompressed section %A"
-msgstr "%B: kunde inte hämta dekomprimerad sektion %A"
+#: linker.c:1731
+#, c-format
+msgid "%pB: indirect symbol `%s' to `%s' is a loop"
+msgstr "%pB: indirekt symbol `%s' till `%s' är en loop"
-#: libbfd.c:1012
-msgid "%B: compiled for a big endian system and target is little endian"
-msgstr "%B: kompilerat för system med rak byteordning, medan destinationen är omvänd byteordning"
+#: linker.c:1811
+msgid "%P: %pB: note: the message above does not take linker garbage collection into account\n"
+msgstr "%P: %pB: notera: meddelandet ovan tar inte hänsyn till linker garbage collection\n"
-#: libbfd.c:1014
-msgid "%B: compiled for a little endian system and target is big endian"
-msgstr "%B: kompilerat för system med omvänd byteordning, medan destinationen är rak byteordning"
+#: linker.c:2617
+#, c-format
+msgid "attempt to do relocatable link with %s input and %s output"
+msgstr "försök att göra en flyttbar länk med %s indata och %s utdata"
-#: libbfd.c:1043
+#: linker.c:2896
#, c-format
-msgid "Deprecated %s called at %s line %d in %s\n"
-msgstr "Föråldrad %s anropad vid %s rad %d i %s\n"
+msgid "%pB: ignoring duplicate section `%pA'\n"
+msgstr "%pB: ignorerar duplicerat avsnitt `%pA'\n"
-#: libbfd.c:1046
+#: linker.c:2906 linker.c:2916
#, c-format
-msgid "Deprecated %s called\n"
-msgstr "Föråldrad %s anropad\n"
+msgid "%pB: duplicate section `%pA' has different size\n"
+msgstr "%pB: duplicerat avsnitt `%pA' har olika storlek\n"
-#: linker.c:1873
-msgid "%B: indirect symbol `%s' to `%s' is a loop"
-msgstr "%B: indirekt symbol â€%s†till â€%s†är en slinga"
+#: linker.c:2930 linker.c:2938
+#, c-format
+msgid "%pB: could not read contents of section `%pA'\n"
+msgstr "%pB: kunde inte läsa innehållet i avsnitt `%pA'\n"
-#: linker.c:2750
+#: linker.c:2947
#, c-format
-msgid "Attempt to do relocatable link with %s input and %s output"
-msgstr "Försök att göra en omlokaliseringsbar länk med %s-indata och %s-utdata"
+msgid "%pB: duplicate section `%pA' has different contents\n"
+msgstr "%pB: duplicerat avsnitt `%pA' har olika innehåll\n"
-#: linker.c:3035
-msgid "%B: ignoring duplicate section `%A'\n"
-msgstr "%B: ignorerar dubblerad sektion â€%Aâ€\n"
+#: linker.c:3466
+#, c-format
+msgid "%pB: compiled for a big endian system and target is little endian"
+msgstr "%pB: kompilerad för ett system med stor endian och målet är liten endian"
-#: linker.c:3044 linker.c:3053
-msgid "%B: duplicate section `%A' has different size\n"
-msgstr "%B: dubblerad sektion â€%A†har en annan storlek\n"
+#: linker.c:3469
+#, c-format
+msgid "%pB: compiled for a little endian system and target is big endian"
+msgstr "%pB: kompilerad för ett system med liten endian och målet är stor endian"
-#: linker.c:3061 linker.c:3066
-msgid "%B: could not read contents of section `%A'\n"
-msgstr "%B: kunde inte läsa innehÃ¥llet i sektion â€%Aâ€\n"
+#: mach-o-arm.c:169 mach-o-arm.c:301
+msgid "malformed mach-o ARM reloc pair: reloc is first reloc"
+msgstr "missbildat mach-o ARM reloc-par: reloc är först reloc"
-#: linker.c:3070
-msgid "%B: duplicate section `%A' has different contents\n"
-msgstr "%B: dubblerad sektion â€%A†har olika innehÃ¥ll\n"
+#: mach-o-arm.c:185
+#, c-format
+msgid "malformed mach-o ARM reloc pair: invalid length: %d"
+msgstr "missbildat mach-o ARM reloc-par: ogiltig längd: %d"
-#: mach-o.c:648
-msgid "bfd_mach_o_canonicalize_symtab: unable to load symbols"
-msgstr "bfd_mach_o_canonicalize_symtab: kunde inte ladda symboler"
+#: mach-o-arm.c:200
+#, c-format
+msgid "malformed mach-o ARM sectdiff reloc: invalid length: %d"
+msgstr "missbildad mach-o ARM sectdiff reloc: ogiltig längd: %d"
+
+#: mach-o-arm.c:215
+#, c-format
+msgid "malformed mach-o ARM local sectdiff reloc: invalid length: %d"
+msgstr "missbildad mach-o ARM lokal sectdiff reloc: ogiltig längd: %d"
-#: mach-o.c:1918
+#: mach-o-arm.c:230
#, c-format
-msgid "mach-o: there are too many sections (%d) maximum is 255,\n"
-msgstr "mach-o: det finns för många sektion (%d) maximalt är 255,\n"
+msgid "malformed mach-o ARM half sectdiff reloc: invalid length: %d"
+msgstr "missbildad mach-o ARM halv sectdiff reloc: ogiltig längd: %d"
-#: mach-o.c:2017
+#: mach-o-arm.c:262
#, c-format
-msgid "unable to write unknown load command 0x%lx"
-msgstr "kunde inte skriva okänt laddningskommando 0x%lx"
+msgid "malformed mach-o ARM vanilla reloc: invalid length: %d (pcrel: %d)"
+msgstr "missbildad mach-o ARM vanilla reloc: ogiltig längd: %d (pcrel: %d)"
-#: mach-o.c:2272
+#: mach-o-arm.c:332
+#, c-format
+msgid "malformed mach-o ARM reloc: unknown reloc type: %d"
+msgstr "missbildad mach-o ARM reloc: okänd reloc-typ: %d"
+
+#: mach-o.c:640
+#, c-format
+msgid "<unknown mask flags>"
+msgstr "< okända maskflaggor>"
+
+#: mach-o.c:695
+msgid " (<unknown>)"
+msgstr " (<okänd>)"
+
+#: mach-o.c:707
+#, c-format
+msgid " MACH-O header:\n"
+msgstr " MACH-O huvud:\n"
+
+#: mach-o.c:708
+#, c-format
+msgid " magic: %#lx\n"
+msgstr " magi: %#lx\n"
+
+#: mach-o.c:709
+#, c-format
+msgid " cputype: %#lx (%s)\n"
+msgstr " cputype: %#lx (%s)\n"
+
+#: mach-o.c:711
+#, c-format
+msgid " cpusubtype: %#lx%s\n"
+msgstr " cpusubtyp: %#lx%s\n"
+
+#: mach-o.c:713
+#, c-format
+msgid " filetype: %#lx\n"
+msgstr " filtyp: %#lx\n"
+
+#: mach-o.c:714
+#, c-format
+msgid " ncmds: %#lx\n"
+msgstr " ncmds: %#lx\n"
+
+#: mach-o.c:715
+#, c-format
+msgid " sizeocmds: %#lx\n"
+msgstr " storlekocmds: %#lx\n"
+
+#: mach-o.c:716
+#, c-format
+msgid " flags: %#lx\n"
+msgstr " flaggor: %#lx\n"
+
+#: mach-o.c:717
+#, c-format
+msgid " version: %x\n"
+msgstr " version: %x\n"
+
+#. Urg - what has happened ?
+#: mach-o.c:752
+#, c-format
+msgid "incompatible cputypes in mach-o files: %ld vs %ld"
+msgstr "inkompatibla cputyper i mach-o filer: %ld vs %ld"
+
+#: mach-o.c:921
+msgid "bfd_mach_o_canonicalize_symtab: unable to load symbols"
+msgstr "bfd_mach_o_canonicalize_symtab: kunde inte ladda symboler"
+
+#: mach-o.c:1513
+msgid "malformed mach-o reloc: section index is greater than the number of sections"
+msgstr "missbildad mach-o reloc: sektionsindex är större än antalet sektioner"
+
+#: mach-o.c:2155
msgid "sorry: modtab, toc and extrefsyms are not yet implemented for dysymtab commands."
msgstr "tyvärr: modtab, toc och extrefsyms är ännu inte implementerade för dysymtab-kommandon."
-#: mach-o.c:2898
+#: mach-o.c:2603
+#, c-format
+msgid "mach-o: there are too many sections (%u) maximum is 255,\n"
+msgstr "mach-o: det finns för många sektioner (%u) max är 255,\n"
+
+#: mach-o.c:2695
#, c-format
-msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %lu"
-msgstr "bfd_mach_o_read_symtab_symbol: kunde inte läsa %d byte vid %lu"
+msgid "unable to allocate data for load command %#x"
+msgstr "kan inte allokera data för laddningskommando %#x"
-#: mach-o.c:2916
+#: mach-o.c:2800
#, c-format
-msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %lu)"
-msgstr "bfd_mach_o_read_symtab_symbol: namn utanför intervallet (%lu >= %lu)"
+msgid "unable to write unknown load command %#x"
+msgstr "kan inte skriva okänt lastkommando %#x"
-#: mach-o.c:2997
+#: mach-o.c:2984
+#, c-format
+msgid "section address (%#<PRIx64>) below start of segment (%#<PRIx64>)"
+msgstr "sektionsadress (%#<PRIx64>) under början av segmentet (%#<PRIx64>)"
+
+#: mach-o.c:3126
+#, c-format
+msgid "unable to layout unknown load command %#x"
+msgstr "unable to layout okänt lastkommando %#x"
+
+#: mach-o.c:3652
+#, c-format
+msgid "bfd_mach_o_read_section_32: overlarge alignment value: %#lx"
+msgstr "bfd_mach_o_read_section_32: överdimensionerat justeringsvärde: %#lx"
+
+#: mach-o.c:3695
+#, c-format
+msgid "bfd_mach_o_read_section_64: overlarge alignment value: %#lx"
+msgstr "bfd_mach_o_read_section_64: överdimensionerat justeringsvärde: %#lx"
+
+#: mach-o.c:3746
+#, c-format
+msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %u"
+msgstr "bfd_mach_o_read_symtab_symbol: det går inte att läsa %d byte vid %u"
+
+#: mach-o.c:3765
+#, c-format
+msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %u)"
+msgstr "bfd_mach_o_read_symtab_symbol: namn utanför intervallet (%lu >= %u)"
+
+#: mach-o.c:3848
#, c-format
msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d (max %lu): setting to undefined"
msgstr "bfd_mach_o_read_symtab_symbol: symbol â€%s†angav ogiltig sektion %d (max %lu): ställer in som odefinierad"
-#: mach-o.c:3013
+#: mach-o.c:3867
#, c-format
msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x%x: setting to undefined"
msgstr "bfd_mach_o_read_symtab_symbol: symbol â€%s†angav ogiltigt typfält 0x%x: ställer in som odefinierad"
-#: mach-o.c:3085
-msgid "bfd_mach_o_read_symtab_symbols: unable to allocate memory for symbols"
-msgstr "bfd_mach_o_read_symtab_symbols: kunde inte allokera minne för symboler"
-
-#: mach-o.c:3915
-msgid "%B: unknown load command 0x%lx"
-msgstr "%B: okänt inläst kommando 0x%lx"
+#: mach-o.c:5066
+#, c-format
+msgid "%pB: unknown load command %#x"
+msgstr "%pB: okänt laddningskommando %#x"
-#: mach-o.c:4107
+#: mach-o.c:5264
#, c-format
msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx"
msgstr "bfd_mach_o_scan: okänd arkitektur 0x%lx/0x%lx"
-#: mach-o.c:4204
+#: mach-o.c:5389
#, c-format
-msgid "unknown header byte-order value 0x%lx"
-msgstr "okänt byte-ordningsvärde i huvudet; 0x%lx"
+msgid "unknown header byte-order value %#x"
+msgstr "okänt värde för byteordning i header %#x"
-#: merge.c:832
+#: merge.c:1126
#, c-format
-msgid "%s: access beyond end of merged section (%ld)"
-msgstr "%s: åtkomst bortom slutet av sammanfogad sektion (%ld)"
+msgid "%pB: access beyond end of merged section (%<PRId64>)"
+msgstr "%pB: åtkomst bortom slutet av den sammanslagna sektionen (%<PRId64>)"
-#: mmo.c:455
+#: mmo.c:535
#, c-format
-msgid "%s: No core to allocate section name %s\n"
-msgstr "%s: Ingen kärna för att allokera sektionsnamn %s\n"
+msgid "%pB: no core to allocate a symbol %d bytes long"
+msgstr "%pB: ingen kärna för att allokera en symbol som är %d byte lång"
-#: mmo.c:530
+#: mmo.c:951
#, c-format
-msgid "%s: No core to allocate a symbol %d bytes long\n"
-msgstr "%s: Ingen kärna för att allokera en %d byte lång symbol\n"
+msgid "%pB: attempt to emit contents at non-multiple-of-4 address %#<PRIx64>"
+msgstr "%pB: försök att skicka ut innehåll på en adress som inte är flera än 4 %#<PRIx64>"
-#: mmo.c:1189
+#: mmo.c:1246
#, c-format
-msgid "%s: invalid mmo file: initialization value for $255 is not `Main'\n"
-msgstr "%s: ogiltig mmo-fil: initieringsvärde för $255 är inte â€Mainâ€\n"
+msgid "%pB: invalid mmo file: initialization value for $255 is not `Main'\n"
+msgstr "%pB: ogiltig mmo-fil: initialiseringsvärdet för $255 är inte `Main'\n"
-#: mmo.c:1334
+#: mmo.c:1393
#, c-format
-msgid "%s: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n"
-msgstr "%s: bred teckensekvens som inte stöds 0x%02X 0x%02X efter symbolnamnet som börjar med â€%sâ€\n"
+msgid "%pB: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n"
+msgstr "%pB: bred teckensekvens 0x%02X 0x%02X stöds inte efter symbolnamn som börjar med `%s'\n"
-#: mmo.c:1568
+#: mmo.c:1409
#, c-format
-msgid "%s: invalid mmo file: unsupported lopcode `%d'\n"
-msgstr "%s: ogiltig mmo-fil: lopkod â€%d†stöds inte\n"
+msgid "%pB: symbol name exceeds given max length of %d"
+msgstr "%pB: symbolnamnet överskrider angiven maxlängd på %d"
-#: mmo.c:1578
+#: mmo.c:1638
#, c-format
-msgid "%s: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n"
-msgstr "%s: ogiltig mmo-fil: förväntade YZ = 1 fick YZ = %d för lop_quote\n"
+msgid "%pB: invalid mmo file: unsupported lopcode `%d'\n"
+msgstr "%pB: ogiltig mmo-fil: lopcode `%d' stöds inte\n"
-#: mmo.c:1614
+#: mmo.c:1649
#, c-format
-msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n"
-msgstr "%s: ogiltig mmo-fil: förväntade z = 1 eller z = 2, fick z = %d för lop_loc\n"
+msgid "%pB: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n"
+msgstr "%pB: ogiltig mmo-fil: förväntad YZ = 1 fick YZ = %d för lop_quote\n"
-#: mmo.c:1660
+#: mmo.c:1693
#, c-format
-msgid "%s: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n"
-msgstr "%s: ogiltig mmo-fil: förväntade z = 1 eller z = 2, fick z = %d för lop_fixo\n"
+msgid "%pB: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n"
+msgstr "%pB: ogiltig mmo-fil: förväntade z = 1 eller z = 2, fick z = %d för lop_loc\n"
-#: mmo.c:1699
+#: mmo.c:1744
#, c-format
-msgid "%s: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n"
-msgstr "%s: ogiltig mmo-fil: förväntade y = 0, fick y = %d för lop_fixrx\n"
+msgid "%pB: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n"
+msgstr "%pB: ogiltig mmo-fil: förväntade z = 1 eller z = 2, fick z = %d för lop_fixo\n"
-#: mmo.c:1708
+#: mmo.c:1793
#, c-format
-msgid "%s: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n"
-msgstr "%s: ogiltig mmo-fil: förväntade z = 16 eller z = 24, fick z = %d för lop_fixrx\n"
+msgid "%pB: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n"
+msgstr "%pB: ogiltig mmo-fil: förväntat y = 0, fick y = %d för lop_fixrx\n"
-#: mmo.c:1731
+#: mmo.c:1804
#, c-format
-msgid "%s: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n"
-msgstr "%s: ogiltig mmo-fil: inledande byte i operandord måste vara 0 eller 1, fick %d för lop_fixrx\n"
+msgid "%pB: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n"
+msgstr "%pB: ogiltig mmo-fil: förväntade z = 16 eller z = 24, fick z = %d för lop_fixrx\n"
-#: mmo.c:1754
+#: mmo.c:1829
#, c-format
-msgid "%s: cannot allocate file name for file number %d, %d bytes\n"
-msgstr "%s: kan inte allokera filnamn för fil nummer %d, %d byte\n"
+msgid "%pB: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n"
+msgstr "%pB: ogiltig mmo-fil: första byte i operandordet måste vara 0 eller 1, fick %d för lop_fixrx\n"
-#: mmo.c:1774
+#: mmo.c:1858
#, c-format
-msgid "%s: invalid mmo file: file number %d `%s', was already entered as `%s'\n"
-msgstr "%s: ogiltig mmo-fil: fil nummer %d â€%sâ€, var redan angiven som â€%sâ€\n"
+msgid "%pB: cannot allocate file name for file number %d, %d bytes\n"
+msgstr "%pB: kan inte tilldela filnamn för filnummer %d, %d byte\n"
-#: mmo.c:1787
+#: mmo.c:1880
#, c-format
-msgid "%s: invalid mmo file: file name for number %d was not specified before use\n"
-msgstr "%s: ogiltig mmo-fil: filnamnet för nummer %d angavs inte innan användning\n"
+msgid "%pB: invalid mmo file: file number %d `%s', was already entered as `%s'\n"
+msgstr "%pB: ogiltig mmo-fil: filnummer %d `%s', var redan inmatad som `%s'\n"
-#: mmo.c:1893
+#: mmo.c:1895
#, c-format
-msgid "%s: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n"
-msgstr "%s: ogiltig mmo-fil: fälten y och z i lop_stab är icke-tomma, y: %d, z: %d\n"
+msgid "%pB: invalid mmo file: file name for number %d was not specified before use\n"
+msgstr "%pB: ogiltig mmo-fil: filnamnet för nummer %d specificerades inte före användning\n"
-#: mmo.c:1929
+#: mmo.c:2007
#, c-format
-msgid "%s: invalid mmo file: lop_end not last item in file\n"
-msgstr "%s: ogiltig mmo-fil: lop_end är inte sista objektet i fil\n"
+msgid "%pB: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n"
+msgstr "%pB: ogiltig mmo-fil: fälten y och z i lop_stab är inte noll, y: %d, z: %d\n"
-#: mmo.c:1942
+#: mmo.c:2044
#, c-format
-msgid "%s: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n"
-msgstr "%s: ogiltig mmo-fil: YZ i lop_end (%ld) är inte lika med antalet tetra till den föregående lop_stab (%ld)\n"
+msgid "%pB: invalid mmo file: lop_end not last item in file\n"
+msgstr "%pB: ogiltig mmo-fil: lop_end inte sista objektet i filen\n"
-#: mmo.c:2652
+#: mmo.c:2058
#, c-format
-msgid "%s: invalid symbol table: duplicate symbol `%s'\n"
-msgstr "%s: ogiltig symboltabell: dubblettsymbol â€%sâ€\n"
+msgid "%pB: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n"
+msgstr "%pB: ogiltig mmo-fil: YZ i lop_end (%ld) inte lika med antalet tetror i föregående lop_stab (%ld)\n"
-#: mmo.c:2892
+#: mmo.c:2768
#, c-format
-msgid "%s: Bad symbol definition: `Main' set to %s rather than the start address %s\n"
-msgstr "%s: Felaktig symboldefinition: â€Main†är inställd till %s istället för startadressen %s\n"
+msgid "%pB: invalid symbol table: duplicate symbol `%s'\n"
+msgstr "%pB: ogiltig symboltabell: duplicerad symbol `%s'\n"
-#: mmo.c:2984
+#: mmo.c:3007
#, c-format
-msgid "%s: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d. Only `Main' will be emitted.\n"
-msgstr "%s: varning: symboltabellen är för stor för mmo, större än 65535 32-bitars ord: %d. Endast â€Main†kommer att skickas.\n"
+msgid "%pB: bad symbol definition: `Main' set to %<PRIx64> rather than the start address %<PRIx64>\n"
+msgstr "%pB: felaktig symboldefinition: `Main' satt till %<PRIx64> istället för startadressen %<PRIx64>\n"
-#: mmo.c:3029
+#: mmo.c:3106
#, c-format
-msgid "%s: internal error, symbol table changed size from %d to %d words\n"
-msgstr "%s: internt fel, symboltabellen ändrade storlek från %d till %d ord\n"
+msgid "%pB: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d. Only `Main' will be emitted.\n"
+msgstr "%pB: varning: symboltabellen är för stor för mmo, större än 65535 32-bitarsord: %d. Endast `Main' kommer att sändas ut.\n"
-#: mmo.c:3081
+#: mmo.c:3152
#, c-format
-msgid "%s: internal error, internal register section %s had contents\n"
-msgstr "%s: internt fel, interna registersektionen %s hade innehåll\n"
+msgid "%pB: internal error, symbol table changed size from %d to %d words\n"
+msgstr "%pB: internt fel, symboltabellen ändrade storlek från %d till %d ord\n"
-#: mmo.c:3132
+#: mmo.c:3205
#, c-format
-msgid "%s: no initialized registers; section length 0\n"
-msgstr "%s: inga initierade register; sektionslängd 0\n"
+msgid "%pB: internal error, internal register section %pA had contents\n"
+msgstr "%pB: internt fel, intern registersektion %pA hade innehåll\n"
-#: mmo.c:3138
+#: mmo.c:3256
#, c-format
-msgid "%s: too many initialized registers; section length %ld\n"
-msgstr "%s: för många initierade register; sektionslängd %ld\n"
+msgid "%pB: no initialized registers; section length 0\n"
+msgstr "%pB: inga initialiserade register; sektionslängd 0\n"
-#: mmo.c:3143
+#: mmo.c:3263
#, c-format
-msgid "%s: invalid start address for initialized registers of length %ld: 0x%lx%08lx\n"
-msgstr "%s: ogiltig startadress för initierade register med längden %ld: 0x%lx%08lx\n"
+msgid "%pB: too many initialized registers; section length %<PRId64>"
+msgstr "%pB: för många initialiserade register; sektionslängd %<PRId64>"
-#: oasys.c:881
+#: mmo.c:3268
#, c-format
-msgid "%s: can not represent section `%s' in oasys"
-msgstr "%s: kan inte representera sektionen â€%s†i oasys"
+msgid "%pB: invalid start address for initialized registers of length %<PRId64>: %#<PRIx64>"
+msgstr "%pB: ogiltig startadress för initialiserade register med längden %<PRId64>: %#<PRIx64>"
#: osf-core.c:128
#, c-format
-msgid "Unhandled OSF/1 core file section type %d\n"
-msgstr "Ohanterad sektionstyp %d för OSF/1-minnesfil\n"
+msgid "unhandled OSF/1 core file section type %d"
+msgstr "ohanterad OSF/1 core fil sektionstyp %d"
-#: pe-mips.c:607
-msgid "%B: `ld -r' not supported with PE MIPS objects\n"
-msgstr "%B: â€ld -r†stöds inte för PE MIPS-objekt\n"
+#: pdp11.c:1573
+#, c-format
+msgid "%pB: symbol indicates overlay (not supported)"
+msgstr "%pB: symbolen indikerar överlagring (stöds inte)"
-#. OK, at this point the following variables are set up:
-#. src = VMA of the memory we're fixing up
-#. mem = pointer to memory we're fixing up
-#. val = VMA of what we need to refer to.
-#: pe-mips.c:719
-msgid "%B: unimplemented %s\n"
-msgstr "%B: oimplementerad %s\n"
+#: pef.c:534
+#, c-format
+msgid "bfd_pef_scan: unknown architecture 0x%lx"
+msgstr "bfd_pef_scan: okänd arkitektur 0x%lx"
-#: pe-mips.c:745
-msgid "%B: jump too far away\n"
-msgstr "%B: hopp för långt\n"
+#: pei-x86_64.c:174 pei-x86_64.c:228 pei-x86_64.c:238 pei-x86_64.c:263
+#: pei-x86_64.c:275 pei-x86_64.c:289 pei-x86_64.c:307 pei-x86_64.c:319
+#: pei-x86_64.c:331
+#, c-format
+msgid "warning: corrupt unwind data\n"
+msgstr "varning: korrupt unwind--data\n"
-#: pe-mips.c:771
-msgid "%B: bad pair/reflo after refhi\n"
-msgstr "%B: felaktigt pair/reflo efter refhi\n"
+#. PR 17512: file: 2245-7442-0.004.
+#: pei-x86_64.c:352
+#, c-format
+msgid "Unknown: %x"
+msgstr "Okänd: %x"
-#: pef.c:522
+#: pei-x86_64.c:403 pei-x86_64.c:413 pei-x86_64.c:422
#, c-format
-msgid "bfd_pef_scan: unknown architecture 0x%lx"
-msgstr "bfd_pef_scan: okänd arkitektur 0x%lx"
+msgid "warning: xdata section corrupt\n"
+msgstr "varning: xdata-avsnittet är skadat\n"
+
+#: pei-x86_64.c:477
+#, c-format
+msgid "Too many unwind codes (%ld)\n"
+msgstr "För många unwind-koder (%ld)\n"
+
+#: pei-x86_64.c:563
+#, c-format
+msgid "Warning: %s section size (%ld) is not a multiple of %d\n"
+msgstr "Varning: %s sektionsstorlek (%ld) är inte en multipel av %d\n"
+
+#: pei-x86_64.c:570
+#, c-format
+msgid "Warning: %s section size is zero\n"
+msgstr "Varning: %s sektionsstorlek är noll\n"
-#: pei-x86_64.c:469
+#: pei-x86_64.c:585
#, c-format
-msgid "warning: .pdata section size (%ld) is not a multiple of %d\n"
-msgstr "varning: .pdata-sektionsstorlek (%ld) är inte en multiplikator av %d\n"
+msgid "Warning: %s section size (%ld) is smaller than virtual size (%ld)\n"
+msgstr "Varning: %s sektionsstorlek (%ld) är mindre än den virtuella storleken (%ld)\n"
-#: pei-x86_64.c:474 peigen.c:1626 peigen.c:1809 pepigen.c:1626 pepigen.c:1809
-#: pex64igen.c:1626 pex64igen.c:1809
+#: pei-x86_64.c:594
#, c-format
msgid ""
"\n"
-"The Function Table (interpreted .pdata section contents)\n"
+"The Function Table (interpreted %s section contents)\n"
msgstr ""
"\n"
-"Funktionstabellen (tolkade innehåll från .pdata-sektionen)\n"
+"Funktionstabellen (tolkat %s avsnittinnehåll)\n"
-#: pei-x86_64.c:476
+#: pei-x86_64.c:597
#, c-format
msgid "vma:\t\t\tBeginAddress\t EndAddress\t UnwindData\n"
msgstr "vma:\t\t\tStartadress\t Slutadress\t Unwinddata\n"
-#. XXX code yet to be written.
-#: peicode.h:758
-msgid "%B: Unhandled import type; %x"
-msgstr "%B: Ohanterad importtyp; %x"
+#: pei-x86_64.c:722
+#, c-format
+msgid ""
+"\n"
+"Dump of %s\n"
+msgstr ""
+"\n"
+"Dumpning av %s\n"
+
+#: peicode.h:823
+#, c-format
+msgid "%pB: unrecognized import type; %x"
+msgstr "%pB: oigenkänd importtyp; %x"
+
+#: peicode.h:840
+#, c-format
+msgid "%pB: missing import name for IMPORT_NAME_EXPORTAS for %s"
+msgstr "%pB: importnamn saknas för IMPORT_NAME_EXPORTAS för %s"
+
+#: peicode.h:849
+#, c-format
+msgid "%pB: unrecognized import name type; %x"
+msgstr "%pB: okänd typ av importnamn; %x"
+
+#: peicode.h:1298
+#, c-format
+msgid "%pB: unrecognised machine type (0x%x) in Import Library Format archive"
+msgstr "%pB: okänd maskintyp (0x%x) i Import Library Format-arkivet"
+
+#: peicode.h:1311
+#, c-format
+msgid "%pB: recognised but unhandled machine type (0x%x) in Import Library Format archive"
+msgstr "%pB: identifierad men obehandlad maskintyp (0x%x) i Import Library Format-arkivet"
+
+#: peicode.h:1329
+#, c-format
+msgid "%pB: size field is zero in Import Library Format header"
+msgstr "%pB: fältet size är noll i rubriken Import Library Format"
+
+#: peicode.h:1355
+#, c-format
+msgid "%pB: string not null terminated in ILF object file"
+msgstr "%pB: sträng inte nollavslutad i ILF-objektfil"
+
+#: peicode.h:1426
+#, c-format
+msgid "%pB: error: debug data ends beyond end of debug directory"
+msgstr "%pB: fel: debug-data slutar efter slutet av debug-katalogen"
+
+#: peicode.h:1598
+#, c-format
+msgid "%pB: adjusting invalid SectionAlignment"
+msgstr "%pB: justering av ogiltig SectionAlignment"
+
+#: peicode.h:1608
+#, c-format
+msgid "%pB: adjusting invalid FileAlignment"
+msgstr "%pB: justering av ogiltig FileAlignment"
+
+#: peicode.h:1616
+#, c-format
+msgid "%pB: invalid NumberOfRvaAndSizes"
+msgstr "%pB: ogiltigt antalRvaOchStorlekar"
-#: peicode.h:763
-msgid "%B: Unrecognised import type; %x"
-msgstr "%B Okänd importtyp; %x"
+#: plugin.c:197
+#, c-format
+msgid "%s: failed to open to extract object only section: %s"
+msgstr "%s: misslyckades med att öppna för att extrahera objekt endast avsnitt: %s"
-#: peicode.h:777
-msgid "%B: Unrecognised import name type; %x"
-msgstr "%B: Okänd importnamnstyp; %x"
+#: plugin.c:214
+#, c-format
+msgid "%pB: invalid file to extract object only section: %s"
+msgstr "%pB: ogiltig fil för att extrahera objekt endast avsnitt: %s"
-#: peicode.h:1173
-msgid "%B: Unrecognised machine type (0x%x) in Import Library Format archive"
-msgstr "%B: Okänd maskintyp (0x%x) i Importbiblioteksformatarkivet"
+#: plugin.c:227
+#, c-format
+msgid "%pB: failed to extract object only section: %s"
+msgstr "%pB: misslyckades med att extrahera objektet endast avsnitt: %s"
-#: peicode.h:1185
-msgid "%B: Recognised but unhandled machine type (0x%x) in Import Library Format archive"
-msgstr "%B: Känd men ohanterad maskintyp (0x%x) i importbiblioteksformatarkivet"
+#: plugin.c:247
+#, c-format
+msgid "%pB: failed to open object only section: %s"
+msgstr "%pB: misslyckades med att öppna objektet endast avsnitt: %s"
-#: peicode.h:1203
-msgid "%B: size field is zero in Import Library Format header"
-msgstr "%B: storleksfältet är noll i importbiblioteksformathuvudet"
+#: plugin.c:257
+#, c-format
+msgid "%pB: failed to get symbol table in object only section: %s"
+msgstr "%pB: misslyckades med att hämta symboltabell i avsnitt för endast objekt: %s"
-#: peicode.h:1234
-msgid "%B: string not null terminated in ILF object file."
-msgstr "%B: sträng som inte är nollavslutad i ILF-objektfil."
+#: plugin.c:413
+msgid "plugin framework: out of file descriptors. Try using fewer objects/archives\n"
+msgstr "plugin-ramverk: slut på filbeskrivare. Försök använda färre objekt/arkiv\n"
-#: ppcboot.c:391
+#: ppcboot.c:392
#, c-format
msgid ""
"\n"
@@ -4108,27 +6653,27 @@ msgstr ""
"\n"
"ppcboot-huvud:\n"
-#: ppcboot.c:392
+#: ppcboot.c:393
#, c-format
msgid "Entry offset = 0x%.8lx (%ld)\n"
msgstr "Startavstånd = 0x%.8lx (%ld)\n"
-#: ppcboot.c:394
+#: ppcboot.c:395
#, c-format
msgid "Length = 0x%.8lx (%ld)\n"
msgstr "Längd = 0x%.8lx (%ld)\n"
-#: ppcboot.c:398
+#: ppcboot.c:399
#, c-format
msgid "Flag field = 0x%.2x\n"
msgstr "Flaggfält = 0x%.2x\n"
-#: ppcboot.c:404
+#: ppcboot.c:405
#, c-format
msgid "Partition name = \"%s\"\n"
msgstr "Partitionsnamn = â€%sâ€\n"
-#: ppcboot.c:423
+#: ppcboot.c:425
#, c-format
msgid ""
"\n"
@@ -4137,35 +6682,58 @@ msgstr ""
"\n"
"Start på partition[%d] = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n"
-#: ppcboot.c:429
+#: ppcboot.c:432
#, c-format
msgid "Partition[%d] end = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n"
msgstr "Slut på partition[%d] = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n"
-#: ppcboot.c:435
+#: ppcboot.c:439
#, c-format
msgid "Partition[%d] sector = 0x%.8lx (%ld)\n"
msgstr "Sektor för partition[%d] = 0x%.8lx (%ld)\n"
-#: ppcboot.c:437
+#: ppcboot.c:443
#, c-format
msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
msgstr "Längd på partition[%d] = 0x%.8lx (%ld)\n"
-#: reloc.c:7371
-msgid "INPUT_SECTION_FLAGS are not supported.\n"
-msgstr "INPUT_SECTION_FLAGS stöds ej.\n"
+#: reloc.c:8417
+msgid "INPUT_SECTION_FLAGS are not supported"
+msgstr "INPUT_SECTION_FLAGS stöds inte"
+
+#: reloc.c:8683
+#, c-format
+msgid "%pB: unrecognized relocation type %#x in section `%pA'"
+msgstr "%pB: oigenkänd flyttyp %#x i avsnitt `%pA'"
+
+#. PR 21803: Suggest the most likely cause of this error.
+#: reloc.c:8687
+#, c-format
+msgid "is this version of the linker - %s - out of date ?"
+msgstr "är den här versionen av länken - %s - föråldrad ?"
+
+#: rs6000-core.c:471
+#, c-format
+msgid "%pB: warning core file truncated"
+msgstr "%pB: varning kärnfil avkortad"
+
+#: som.c:3002
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): %s relocation offset out of order"
+msgstr "%pB(%pA+%#<PRIx64>): %s flyttningsoffset i fel ordning"
-#: reloc.c:7526
-msgid "%X%P: %B(%A): relocation \"%R\" goes out of range\n"
-msgstr "%X%P: %B(%A): omlokaliseringen â€%R†gÃ¥r utanför intervallet\n"
+#: som.c:3015
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): %s relocation offset out of range"
+msgstr "%pB(%pA+%#<PRIx64>): %s förflyttningsoffset utanför intervallet"
-#: rs6000-core.c:448
+#. User has specified a subspace without its containing space.
+#: som.c:5403
#, c-format
-msgid "%s: warning core file truncated"
-msgstr "%s: varning: kärnfil avkortad"
+msgid "%pB[%pA]: no output section for space %pA"
+msgstr "%pB[%pA]: ingen utmatningssektion för utrymme %pA"
-#: som.c:5471
+#: som.c:5449
#, c-format
msgid ""
"\n"
@@ -4174,1443 +6742,1578 @@ msgstr ""
"\n"
"Kör hjälphuvud\n"
-#: som.c:5776
+#: som.c:5758
msgid "som_sizeof_headers unimplemented"
msgstr "som_sizeof_headers är inte implementerat"
-#: srec.c:261
-msgid "%B:%d: Unexpected character `%s' in S-record file\n"
-msgstr "%B:%d: Oväntat tecken â€%s†i S-postfil\n"
+#: srec.c:260
+#, c-format
+msgid "%pB:%d: unexpected character `%s' in S-record file"
+msgstr "%pB:%d: oväntat tecken `%s' i S-record-fil"
+
+#: srec.c:488
+#, c-format
+msgid "%pB:%d: byte count %d too small"
+msgstr "%pB:%d: byteantalet %d är för litet"
+
+#: srec.c:580 srec.c:614
+#, c-format
+msgid "%pB:%d: bad checksum in S-record file"
+msgstr "%pB:%d: dålig kontrollsumma i S-record-filen"
+
+#: stabs.c:308
+#, c-format
+msgid "%pB(%pA+%#lx): stabs entry has invalid string index"
+msgstr "%pB(%pA+%#lx): stabs-posten har ogiltigt strängindex"
+
+#: syms.c:1120
+msgid "unsupported .stab relocation"
+msgstr ".stab-omflyttning som inte stöds"
+
+#: vms-alpha.c:479
+msgid "corrupt EIHD record - size is too small"
+msgstr "korrupt EIHD-post - storleken är för liten"
+
+#: vms-alpha.c:665
+#, c-format
+msgid "unable to read EIHS record at offset %#x"
+msgstr "kan inte läsa EIHS-posten vid offset %#x"
+
+#: vms-alpha.c:1157
+msgid "record is too small for symbol name length"
+msgstr "posten är för liten för symbolnamnets längd"
-#: srec.c:567 srec.c:600
-msgid "%B:%d: Bad checksum in S-record file\n"
-msgstr "%B:%d: Felaktig kontrollsumma i S-postfil\n"
+#: vms-alpha.c:1190
+#, c-format
+msgid "corrupt EGSD record: its size (%#x) is too small"
+msgstr "korrupt EGSD-post: dess storlek (%#x) är för liten"
-#: stabs.c:279
-msgid "%B(%A+0x%lx): Stabs entry has invalid string index."
-msgstr "%B(%A+0x%lx): Stabs-post har ogiltigt strängindex."
+#: vms-alpha.c:1214
+#, c-format
+msgid "corrupt EGSD record type %d: size (%#x) is larger than remaining space (%#x)"
+msgstr "korrupt EGSD-posttyp %d: storlek (%#x) är större än återstående utrymme (%#x)"
-#: syms.c:1079
-msgid "Unsupported .stab relocation"
-msgstr ".stab-omlokalisering som inte stöds"
+#: vms-alpha.c:1224
+#, c-format
+msgid "corrupt EGSD record type %d: size (%#x) is too small"
+msgstr "korrupt EGSD-posttyp %d: storleken (%#x) är för liten"
+
+#: vms-alpha.c:1366
+#, c-format
+msgid "corrupt EGSD record: its psindx field is too big (%#lx)"
+msgstr "korrupt EGSD-post: dess psindx-fält är för stort (%#lx)"
-#: vms-alpha.c:1294
+#: vms-alpha.c:1441
#, c-format
-msgid "Unknown EGSD subtype %d"
-msgstr "Okänd EGSD-deltyp %d"
+msgid "unknown EGSD subtype %d"
+msgstr "okänd EGSD-subtyp %d"
-#: vms-alpha.c:1325
+#: vms-alpha.c:1474
#, c-format
-msgid "Stack overflow (%d) in _bfd_vms_push"
-msgstr "Stacken ger överspill (%d) i _bfd_vms_push"
+msgid "stack overflow (%d) in _bfd_vms_push"
+msgstr "stacköverskridning (%d) i _bfd_vms_push"
-#: vms-alpha.c:1338
-msgid "Stack underflow in _bfd_vms_pop"
-msgstr "Stacken ger underspill i _bfd_vms_pop"
+#: vms-alpha.c:1488
+msgid "stack underflow in _bfd_vms_pop"
+msgstr "underflöde i stapeln i _bfd_vms_pop"
+
+#: vms-alpha.c:1562
+#, c-format
+msgid "dst_define_location %u too large"
+msgstr "dst_define_location %u för stor"
#. These names have not yet been added to this switch statement.
-#: vms-alpha.c:1575
+#: vms-alpha.c:1765
#, c-format
msgid "unknown ETIR command %d"
msgstr "okänt ETIR-kommando %d"
-#: vms-alpha.c:1762
+#: vms-alpha.c:1796
+msgid "corrupt vms value"
+msgstr "korrupt vms-värde"
+
+#: vms-alpha.c:1927
+msgid "corrupt ETIR record encountered"
+msgstr "korrupt ETIR-post påträffad"
+
+#: vms-alpha.c:1989
#, c-format
msgid "bad section index in %s"
msgstr "felaktigt sektionsindex i %s"
-#: vms-alpha.c:1775
+#: vms-alpha.c:2003
#, c-format
msgid "unsupported STA cmd %s"
-msgstr "STA-kommando %s stöds inte"
+msgstr "stöder ej STA-kommando %s"
#. Insert field.
#. Unsigned shift.
#. Rotate.
#. Redefine symbol to current location.
#. Define a literal.
-#: vms-alpha.c:1951 vms-alpha.c:1982 vms-alpha.c:2229
+#: vms-alpha.c:2211 vms-alpha.c:2242 vms-alpha.c:2337 vms-alpha.c:2557
#, c-format
msgid "%s: not supported"
msgstr "%s: stöds inte"
-#: vms-alpha.c:1957
+#: vms-alpha.c:2217
#, c-format
msgid "%s: not implemented"
msgstr "%s: inte implementerad"
-#: vms-alpha.c:2213
+#: vms-alpha.c:2382 vms-alpha.c:2397
+#, c-format
+msgid "invalid %s"
+msgstr "ogiltig %s"
+
+#. Divide by zero is supposed to give a result of zero,
+#. and a non-fatal warning message.
+#: vms-alpha.c:2457
+#, c-format
+msgid "%s divide by zero"
+msgstr "%s dividera med noll"
+
+#: vms-alpha.c:2523
#, c-format
msgid "invalid use of %s with contexts"
msgstr "ogiltig användning av %s med sammanhang"
-#: vms-alpha.c:2247
+#: vms-alpha.c:2581
#, c-format
msgid "reserved cmd %d"
msgstr "reserverat cmd %d"
-#: vms-alpha.c:2332
-msgid "Object module NOT error-free !\n"
-msgstr "Objektmodulen INTE felfri!\n"
+#: vms-alpha.c:2665
+msgid "corrupt EEOM record - size is too small"
+msgstr "korrupt EEOM-rekord - storleken är för liten"
+
+#: vms-alpha.c:2674
+msgid "object module not error-free !"
+msgstr "objektmodulen inte felfri !"
-#: vms-alpha.c:3657
+#: vms-alpha.c:4006
#, c-format
-msgid "SEC_RELOC with no relocs in section %s"
-msgstr "SEC_RELOC utan omlokaliseringar i sektion %s"
+msgid "SEC_RELOC with no relocs in section %pA"
+msgstr "SEC_RELOC utan relokaliseringar i sektion %pA"
-#: vms-alpha.c:3709 vms-alpha.c:3922
+#: vms-alpha.c:4058 vms-alpha.c:4286
#, c-format
-msgid "Size error in section %s"
-msgstr "Storleksfel i sektion %s"
+msgid "size error in section %pA"
+msgstr "storleksfel i avsnitt %pA"
-#: vms-alpha.c:3868
-msgid "Spurious ALPHA_R_BSR reloc"
-msgstr "Oriktig ALPHA_R_BSR-omlokalisering"
+#: vms-alpha.c:4229
+msgid "spurious ALPHA_R_BSR reloc"
+msgstr "felaktig ALPHA_R_BSR reloc"
-#: vms-alpha.c:3909
+#: vms-alpha.c:4272
#, c-format
-msgid "Unhandled relocation %s"
-msgstr "Ohanterad omlokalisering %s"
+msgid "unhandled relocation %s"
+msgstr "obehandlad omplacering %s"
-#: vms-alpha.c:4199
+#: vms-alpha.c:4637
#, c-format
msgid "unknown source command %d"
msgstr "okänt källkommando %d"
-#: vms-alpha.c:4260
-msgid "DST__K_SET_LINUM_INCR not implemented"
-msgstr "DST__K_SET_LINUM_INCR inte implementerad"
-
-#: vms-alpha.c:4266
-msgid "DST__K_SET_LINUM_INCR_W not implemented"
-msgstr "DST__K_SET_LINUM_INCR_W inte implementerad"
-
-#: vms-alpha.c:4272
-msgid "DST__K_RESET_LINUM_INCR not implemented"
-msgstr "DST__K_RESET_LINUM_INCR inte implementerad"
-
-#: vms-alpha.c:4278
-msgid "DST__K_BEG_STMT_MODE not implemented"
-msgstr "DST__K_BEG_STMT_MODE inte implementerad"
-
-#: vms-alpha.c:4284
-msgid "DST__K_END_STMT_MODE not implemented"
-msgstr "DST__K_END_STMT_MODE inte implementerad"
-
-#: vms-alpha.c:4311
-msgid "DST__K_SET_PC not implemented"
-msgstr "DST__K_SET_PC inte implementerad"
-
-#: vms-alpha.c:4317
-msgid "DST__K_SET_PC_W not implemented"
-msgstr "DST__K_SET_PC_W inte implementerad"
-
-#: vms-alpha.c:4323
-msgid "DST__K_SET_PC_L not implemented"
-msgstr "DST__K_SET_PC_L inte implementerad"
-
-#: vms-alpha.c:4329
-msgid "DST__K_SET_STMTNUM not implemented"
-msgstr "DST__K_SET_STMTNUM inte implementerad"
+#: vms-alpha.c:4789 vms-alpha.c:4794 vms-alpha.c:4799 vms-alpha.c:4804
+#: vms-alpha.c:4809 vms-alpha.c:4832 vms-alpha.c:4837 vms-alpha.c:4842
+#: vms-alpha.c:4847
+#, c-format
+msgid "%s not implemented"
+msgstr "%s inte implementerad"
-#: vms-alpha.c:4372
+#: vms-alpha.c:4883
#, c-format
msgid "unknown line command %d"
msgstr "okänt radkommando %d"
-#: vms-alpha.c:4846 vms-alpha.c:4863 vms-alpha.c:4877 vms-alpha.c:4892
-#: vms-alpha.c:4904 vms-alpha.c:4915 vms-alpha.c:4927
+#: vms-alpha.c:5322
+msgid "corrupt reloc record"
+msgstr "korrupt reloc record"
+
+#: vms-alpha.c:5352 vms-alpha.c:5370 vms-alpha.c:5387 vms-alpha.c:5405
+#: vms-alpha.c:5418 vms-alpha.c:5430 vms-alpha.c:5443
#, c-format
-msgid "Unknown reloc %s + %s"
-msgstr "Okänd omlokalisering %s + %s"
+msgid "unknown reloc %s + %s"
+msgstr "okänd reloc %s + %s"
-#: vms-alpha.c:4982
+#: vms-alpha.c:5502
#, c-format
-msgid "Unknown reloc %s"
-msgstr "Okänd omlokalisering %s"
+msgid "unknown reloc %s"
+msgstr "okänd reloc %s"
-#: vms-alpha.c:4995
-msgid "Invalid section index in ETIR"
-msgstr "Ogiltigt sektionsindex i ETIR"
+#: vms-alpha.c:5516
+msgid "invalid section index in ETIR"
+msgstr "ogiltigt sektionsindex i ETIR"
-#: vms-alpha.c:5002
-msgid "Relocation for non-REL psect"
-msgstr "Omlokalisering för icke-REL psect"
+#: vms-alpha.c:5525
+msgid "relocation for non-REL psect"
+msgstr "omlokalisering för icke-REL-psekt"
-#: vms-alpha.c:5049
+#: vms-alpha.c:5578
+#, c-format
+msgid "unknown symbol in command %s"
+msgstr "okänd symbol i kommandot %s"
+
+#: vms-alpha.c:5996
#, c-format
-msgid "Unknown symbol in command %s"
-msgstr "Okänd symbol i kommando %s"
+msgid "reloc (%d) is *UNKNOWN*"
+msgstr "reloc (%d) är *OKÄNT*"
-#: vms-alpha.c:5564
+#: vms-alpha.c:6113
#, c-format
-msgid " EMH %u (len=%u): "
-msgstr " EMH %u (len=%u): "
+msgid " EMH %d (len=%u): "
+msgstr " EMH %d (len=%u): "
-#: vms-alpha.c:5573
+#: vms-alpha.c:6118 vms-alpha.c:6137 vms-alpha.c:6216
+#, c-format
+msgid " Error: %s min length is %u\n"
+msgstr " Fel: %s min längd är %u\n"
+
+#: vms-alpha.c:6141
#, c-format
msgid "Module header\n"
msgstr "Modulhuvud\n"
-#: vms-alpha.c:5574
+#: vms-alpha.c:6142
#, c-format
msgid " structure level: %u\n"
msgstr " strukturnivå: %u\n"
-#: vms-alpha.c:5575
+#: vms-alpha.c:6143
#, c-format
msgid " max record size: %u\n"
msgstr " max poststorlek: %u\n"
-#: vms-alpha.c:5578
+#: vms-alpha.c:6149
+#, c-format
+msgid " Error: The module name is missing\n"
+msgstr " Felmeddelande: Modulnamnet saknas\n"
+
+#: vms-alpha.c:6155
+#, c-format
+msgid " Error: The module name is too long\n"
+msgstr " Felmeddelande: Modulnamnet är för långt\n"
+
+#: vms-alpha.c:6158
#, c-format
msgid " module name : %.*s\n"
msgstr " modulnamn : %.*s\n"
-#: vms-alpha.c:5580
+#: vms-alpha.c:6162
+#, c-format
+msgid " Error: The module version is missing\n"
+msgstr " Fel på modulen: Modulversionen saknas\n"
+
+#: vms-alpha.c:6168
+#, c-format
+msgid " Error: The module version is too long\n"
+msgstr " Felmeddelande: Modulversionen är för lång\n"
+
+#: vms-alpha.c:6171
#, c-format
msgid " module version : %.*s\n"
msgstr " modulversion: %.*s\n"
-#: vms-alpha.c:5582
+#: vms-alpha.c:6174
+#, c-format
+msgid " Error: The compile date is truncated\n"
+msgstr " Felmeddelande: Kompileringsdatumet är avkortat\n"
+
+#: vms-alpha.c:6176
#, c-format
msgid " compile date : %.17s\n"
msgstr " kompileringsdatum: %.17s\n"
-#: vms-alpha.c:5587
+#: vms-alpha.c:6181
#, c-format
msgid "Language Processor Name\n"
msgstr "Språkbehandlarens namn\n"
-#: vms-alpha.c:5588
+#: vms-alpha.c:6182
#, c-format
msgid " language name: %.*s\n"
msgstr " språknamn: %.*s\n"
-#: vms-alpha.c:5595
+#: vms-alpha.c:6186
#, c-format
msgid "Source Files Header\n"
msgstr "Källkodsfilers huvud\n"
-#: vms-alpha.c:5596
+#: vms-alpha.c:6187
#, c-format
msgid " file: %.*s\n"
msgstr " fil: %.*s\n"
-#: vms-alpha.c:5603
+#: vms-alpha.c:6191
#, c-format
msgid "Title Text Header\n"
msgstr "Titeltexthuvud\n"
-#: vms-alpha.c:5604
+#: vms-alpha.c:6192
#, c-format
msgid " title: %.*s\n"
msgstr " titel: %.*s\n"
-#: vms-alpha.c:5611
+#: vms-alpha.c:6196
#, c-format
msgid "Copyright Header\n"
msgstr "Upphovsrättshuvud\n"
-#: vms-alpha.c:5612
+#: vms-alpha.c:6197
#, c-format
msgid " copyright: %.*s\n"
msgstr " upphovsrätt: %.*s\n"
-#: vms-alpha.c:5618
+#: vms-alpha.c:6201
#, c-format
msgid "unhandled emh subtype %u\n"
msgstr "ohanterad emh-deltyp %u\n"
-#: vms-alpha.c:5628
+#: vms-alpha.c:6211
#, c-format
msgid " EEOM (len=%u):\n"
msgstr " EEOM (len=%u):\n"
-#: vms-alpha.c:5629
+#: vms-alpha.c:6221
#, c-format
msgid " number of cond linkage pairs: %u\n"
msgstr " antal cond-länkningspar: %u\n"
-#: vms-alpha.c:5631
+#: vms-alpha.c:6223
#, c-format
msgid " completion code: %u\n"
msgstr " slutförandekod: %u\n"
-#: vms-alpha.c:5635
+#: vms-alpha.c:6228
#, c-format
msgid " transfer addr flags: 0x%02x\n"
msgstr " överför addr-flaggor: 0x%02x\n"
-#: vms-alpha.c:5636
+#: vms-alpha.c:6229
#, c-format
msgid " transfer addr psect: %u\n"
msgstr " överför addr psect: %u\n"
-#: vms-alpha.c:5638
+#: vms-alpha.c:6231
#, c-format
msgid " transfer address : 0x%08x\n"
msgstr " överför adress : 0x%08x\n"
-#: vms-alpha.c:5647
+#: vms-alpha.c:6240
msgid " WEAK"
msgstr " SVAG"
-#: vms-alpha.c:5649
+#: vms-alpha.c:6242
msgid " DEF"
msgstr " DEF"
-#: vms-alpha.c:5651
+#: vms-alpha.c:6244
msgid " UNI"
msgstr " UNI"
-#: vms-alpha.c:5653 vms-alpha.c:5674
+#: vms-alpha.c:6246 vms-alpha.c:6267
msgid " REL"
msgstr " REL"
-#: vms-alpha.c:5655
+#: vms-alpha.c:6248
msgid " COMM"
msgstr " KOMM"
-#: vms-alpha.c:5657
+#: vms-alpha.c:6250
msgid " VECEP"
msgstr " VECEP"
-#: vms-alpha.c:5659
+#: vms-alpha.c:6252
msgid " NORM"
msgstr " NORM"
-#: vms-alpha.c:5661
+#: vms-alpha.c:6254
msgid " QVAL"
msgstr " QVAL"
-#: vms-alpha.c:5668
+#: vms-alpha.c:6261
msgid " PIC"
msgstr " PIC"
-#: vms-alpha.c:5670
+#: vms-alpha.c:6263
msgid " LIB"
msgstr " LIB"
-#: vms-alpha.c:5672
+#: vms-alpha.c:6265
msgid " OVR"
msgstr " OVR"
-#: vms-alpha.c:5676
+#: vms-alpha.c:6269
msgid " GBL"
msgstr " GBL"
-#: vms-alpha.c:5678
+#: vms-alpha.c:6271
msgid " SHR"
msgstr " SHR"
-#: vms-alpha.c:5680
+#: vms-alpha.c:6273
msgid " EXE"
msgstr " EXE"
-#: vms-alpha.c:5682
+#: vms-alpha.c:6275
msgid " RD"
msgstr " LÄS"
-#: vms-alpha.c:5684
+#: vms-alpha.c:6277
msgid " WRT"
msgstr " SKR"
-#: vms-alpha.c:5686
+#: vms-alpha.c:6279
msgid " VEC"
msgstr " VEK"
-#: vms-alpha.c:5688
+#: vms-alpha.c:6281
msgid " NOMOD"
msgstr " NOMOD"
-#: vms-alpha.c:5690
+#: vms-alpha.c:6283
msgid " COM"
msgstr " COM"
-#: vms-alpha.c:5692
+#: vms-alpha.c:6285
msgid " 64B"
msgstr " 64B"
-#: vms-alpha.c:5701
+#: vms-alpha.c:6294
#, c-format
msgid " EGSD (len=%u):\n"
msgstr " EGSD (len=%u):\n"
-#: vms-alpha.c:5713
+#: vms-alpha.c:6309
#, c-format
msgid " EGSD entry %2u (type: %u, len: %u): "
msgstr " EGSD-post %2u (typ: %u, len: %u): "
-#: vms-alpha.c:5725
+#: vms-alpha.c:6315 vms-alpha.c:6610
+#, c-format
+msgid " Erroneous length\n"
+msgstr " Felaktig längd\n"
+
+#: vms-alpha.c:6328
#, c-format
msgid "PSC - Program section definition\n"
msgstr "PSC - Programsektionsdefinition\n"
-#: vms-alpha.c:5726 vms-alpha.c:5743
+#: vms-alpha.c:6329 vms-alpha.c:6349
#, c-format
msgid " alignment : 2**%u\n"
msgstr " rättning : 2**%u\n"
-#: vms-alpha.c:5727 vms-alpha.c:5744
+#: vms-alpha.c:6330 vms-alpha.c:6350
#, c-format
msgid " flags : 0x%04x"
msgstr " flaggor : 0x%04x"
-#: vms-alpha.c:5731
+#: vms-alpha.c:6334
#, c-format
msgid " alloc (len): %u (0x%08x)\n"
msgstr " allok (len): %u (0x%08x)\n"
-#: vms-alpha.c:5732 vms-alpha.c:5789 vms-alpha.c:5838
+#: vms-alpha.c:6336 vms-alpha.c:6402 vms-alpha.c:6470
#, c-format
msgid " name : %.*s\n"
msgstr " namn : %.*s\n"
-#: vms-alpha.c:5742
+#: vms-alpha.c:6348
#, c-format
msgid "SPSC - Shared Image Program section def\n"
msgstr "SPSC - Delad avbilds-programsektionsdef\n"
-#: vms-alpha.c:5748
+#: vms-alpha.c:6354
#, c-format
msgid " alloc (len) : %u (0x%08x)\n"
msgstr " allok (len) : %u (0x%08x)\n"
-#: vms-alpha.c:5749
+#: vms-alpha.c:6355
#, c-format
msgid " image offset : 0x%08x\n"
msgstr " avbildsförskjutning : 0x%08x\n"
-#: vms-alpha.c:5751
+#: vms-alpha.c:6357
#, c-format
msgid " symvec offset : 0x%08x\n"
msgstr " symvec-förskjutning: 0x%08x\n"
-#: vms-alpha.c:5753
+#: vms-alpha.c:6360
#, c-format
msgid " name : %.*s\n"
msgstr " namn : %.*s\n"
-#: vms-alpha.c:5766
+#: vms-alpha.c:6376
#, c-format
msgid "SYM - Global symbol definition\n"
msgstr "SYM - Global symboldefinition\n"
-#: vms-alpha.c:5767 vms-alpha.c:5827 vms-alpha.c:5848 vms-alpha.c:5867
+#: vms-alpha.c:6377 vms-alpha.c:6458 vms-alpha.c:6482 vms-alpha.c:6505
#, c-format
msgid " flags: 0x%04x"
msgstr " flaggor: 0x%04x"
-#: vms-alpha.c:5770
+#: vms-alpha.c:6380
#, c-format
msgid " psect offset: 0x%08x\n"
msgstr " psect-förskjutning: 0x%08x\n"
-#: vms-alpha.c:5774
+#: vms-alpha.c:6384
#, c-format
msgid " code address: 0x%08x\n"
msgstr " kodadress: 0x%08x\n"
-#: vms-alpha.c:5776
+#: vms-alpha.c:6386
#, c-format
msgid " psect index for entry point : %u\n"
msgstr " psect-index för startpunkt: %u\n"
-#: vms-alpha.c:5779 vms-alpha.c:5855 vms-alpha.c:5874
+#: vms-alpha.c:6389 vms-alpha.c:6489 vms-alpha.c:6512
#, c-format
msgid " psect index : %u\n"
msgstr " psect-index: %u\n"
-#: vms-alpha.c:5781 vms-alpha.c:5857 vms-alpha.c:5876
+#: vms-alpha.c:6392 vms-alpha.c:6492 vms-alpha.c:6515
#, c-format
msgid " name : %.*s\n"
msgstr " namn : %.*s\n"
-#: vms-alpha.c:5788
+#: vms-alpha.c:6400
#, c-format
msgid "SYM - Global symbol reference\n"
msgstr "SYM - Global symbolreferens\n"
-#: vms-alpha.c:5800
+#: vms-alpha.c:6415
#, c-format
msgid "IDC - Ident Consistency check\n"
msgstr "IDC - Identitetskonsekvenskontroll\n"
-#: vms-alpha.c:5801
+#: vms-alpha.c:6416
#, c-format
msgid " flags : 0x%08x"
msgstr " flaggor : 0x%08x"
-#: vms-alpha.c:5805
+#: vms-alpha.c:6420
#, c-format
msgid " id match : %x\n"
msgstr " id-match : %x\n"
-#: vms-alpha.c:5807
+#: vms-alpha.c:6422
#, c-format
msgid " error severity: %x\n"
msgstr " felgrad :%x\n"
-#: vms-alpha.c:5810
+#: vms-alpha.c:6426
#, c-format
msgid " entity name : %.*s\n"
msgstr " postnamn : %.*s\n"
-#: vms-alpha.c:5812
+#: vms-alpha.c:6432
#, c-format
msgid " object name : %.*s\n"
msgstr " objektnamn : %.*s\n"
-#: vms-alpha.c:5815
+#: vms-alpha.c:6441
#, c-format
msgid " binary ident : 0x%08x\n"
msgstr " binärident : 0x%08x\n"
-#: vms-alpha.c:5818
+#: vms-alpha.c:6445
#, c-format
msgid " ascii ident : %.*s\n"
msgstr " ascii-ident : %.*s\n"
-#: vms-alpha.c:5826
+#: vms-alpha.c:6457
#, c-format
msgid "SYMG - Universal symbol definition\n"
msgstr "SYMG - Universell symboldefinition\n"
-#: vms-alpha.c:5830
+#: vms-alpha.c:6461
#, c-format
msgid " symbol vector offset: 0x%08x\n"
msgstr " symbolvektor-offset : 0x%08x\n"
-#: vms-alpha.c:5832
+#: vms-alpha.c:6463
#, c-format
msgid " entry point: 0x%08x\n"
msgstr " startpunkt: 0x%08x\n"
-#: vms-alpha.c:5834
+#: vms-alpha.c:6465
#, c-format
msgid " proc descr : 0x%08x\n"
msgstr " proc-beskr : 0x%08x\n"
-#: vms-alpha.c:5836
+#: vms-alpha.c:6467
#, c-format
msgid " psect index: %u\n"
msgstr " psect-index: %u\n"
-#: vms-alpha.c:5847
+#: vms-alpha.c:6481
#, c-format
msgid "SYMV - Vectored symbol definition\n"
msgstr "SYMV - Vektoriserad symboldefinition\n"
-#: vms-alpha.c:5851
+#: vms-alpha.c:6485
#, c-format
msgid " vector : 0x%08x\n"
msgstr " vektor : 0x%08x\n"
-#: vms-alpha.c:5853 vms-alpha.c:5872
+#: vms-alpha.c:6487 vms-alpha.c:6510
#, c-format
msgid " psect offset: %u\n"
msgstr " psect-offset: %u\n"
-#: vms-alpha.c:5866
+#: vms-alpha.c:6504
#, c-format
msgid "SYMM - Global symbol definition with version\n"
msgstr "SYMM - Global symboldefinition med versioner\n"
-#: vms-alpha.c:5870
+#: vms-alpha.c:6508
#, c-format
msgid " version mask: 0x%08x\n"
msgstr " versionsmask: 0x%08x\n"
-#: vms-alpha.c:5881
+#: vms-alpha.c:6521
#, c-format
msgid "unhandled egsd entry type %u\n"
msgstr "ohanterad egsd-posttyp %u\n"
-#: vms-alpha.c:5915
+#: vms-alpha.c:6560
#, c-format
msgid " linkage index: %u, replacement insn: 0x%08x\n"
msgstr " länkningsindex: %u, ersättning insn: 0x%08x\n"
-#: vms-alpha.c:5918
+#: vms-alpha.c:6564
#, c-format
msgid " psect idx 1: %u, offset 1: 0x%08x %08x\n"
msgstr " psect-idx 1: %u, offset 1: 0x%08x %08x\n"
-#: vms-alpha.c:5922
+#: vms-alpha.c:6569
#, c-format
msgid " psect idx 2: %u, offset 2: 0x%08x %08x\n"
msgstr " psect-idx 2: %u, offset 2: 0x%08x %08x\n"
-#: vms-alpha.c:5927
+#: vms-alpha.c:6575
#, c-format
msgid " psect idx 3: %u, offset 3: 0x%08x %08x\n"
msgstr " psect-idx 3: %u, offset 3: 0x%08x %08x\n"
-#: vms-alpha.c:5932
+#: vms-alpha.c:6580
#, c-format
msgid " global name: %.*s\n"
msgstr " globalt namn: %.*s\n"
-#: vms-alpha.c:5942
+#: vms-alpha.c:6592
#, c-format
-msgid " %s (len=%u+%u):\n"
-msgstr " %s (len=%u+%u):\n"
+msgid " %s (len=%u):\n"
+msgstr " %s (len=%u):\n"
-#: vms-alpha.c:5957
+#: vms-alpha.c:6615
#, c-format
-msgid " (type: %3u, size: 4+%3u): "
-msgstr " (typ: %3u, stl: 4+%3u): "
+msgid " (type: %3u, size: %3u): "
+msgstr " (typ: %3u, storlek: %3u): "
-#: vms-alpha.c:5961
+#: vms-alpha.c:6621
#, c-format
msgid "STA_GBL (stack global) %.*s\n"
msgstr "STA_GBL (global stack) %.*s\n"
-#: vms-alpha.c:5965
+#: vms-alpha.c:6625
#, c-format
-msgid "STA_LW (stack longword) 0x%08x\n"
-msgstr "STA_LW (longword-stack) 0x%08x\n"
+msgid "STA_LW (stack longword)"
+msgstr "STA_LW (stapel långord)"
-#: vms-alpha.c:5969
+#: vms-alpha.c:6631
#, c-format
-msgid "STA_QW (stack quadword) 0x%08x %08x\n"
-msgstr "STA_QW (quadword-stack) 0x%08x %08x\n"
+msgid "STA_QW (stack quadword)"
+msgstr "STA_QW (stack quadword)"
-#: vms-alpha.c:5974
+#: vms-alpha.c:6638
#, c-format
msgid "STA_PQ (stack psect base + offset)\n"
msgstr "STA_PQ (psect-basstack + förskjutning)\n"
-#: vms-alpha.c:5975
+#: vms-alpha.c:6641
#, c-format
msgid " psect: %u, offset: 0x%08x %08x\n"
msgstr " psect: %u, förskjutning: 0x%08x %08x\n"
-#: vms-alpha.c:5981
+#: vms-alpha.c:6647
#, c-format
msgid "STA_LI (stack literal)\n"
msgstr "STA_LI (litteral stack)\n"
-#: vms-alpha.c:5984
+#: vms-alpha.c:6650
#, c-format
msgid "STA_MOD (stack module)\n"
msgstr "STA_MOD (modulstack)\n"
-#: vms-alpha.c:5987
+#: vms-alpha.c:6653
#, c-format
msgid "STA_CKARG (compare procedure argument)\n"
msgstr "STA_CKARG (jämför procedurargument)\n"
-#: vms-alpha.c:5991
+#: vms-alpha.c:6657
#, c-format
msgid "STO_B (store byte)\n"
msgstr "STO_B (lagra byte)\n"
-#: vms-alpha.c:5994
+#: vms-alpha.c:6660
#, c-format
msgid "STO_W (store word)\n"
msgstr "STO_W (lagra ord)\n"
-#: vms-alpha.c:5997
+#: vms-alpha.c:6663
#, c-format
msgid "STO_LW (store longword)\n"
msgstr "STO_LW (lagra långord)\n"
-#: vms-alpha.c:6000
+#: vms-alpha.c:6666
#, c-format
msgid "STO_QW (store quadword)\n"
msgstr "STO_QW (lagra quad-ord)\n"
-#: vms-alpha.c:6006
+#: vms-alpha.c:6673
#, c-format
msgid "STO_IMMR (store immediate repeat) %u bytes\n"
msgstr "STO_IMMR (lagra omedelbar upprepning) %u byte\n"
-#: vms-alpha.c:6013
+#: vms-alpha.c:6682
#, c-format
msgid "STO_GBL (store global) %.*s\n"
msgstr "STO_GBL (lagra global) %.*s\n"
-#: vms-alpha.c:6017
+#: vms-alpha.c:6687
#, c-format
msgid "STO_CA (store code address) %.*s\n"
msgstr "STO_CA (lagra kodadress) %.*s\n"
-#: vms-alpha.c:6021
+#: vms-alpha.c:6691
#, c-format
msgid "STO_RB (store relative branch)\n"
msgstr "STO_RB (lagra relativ gren)\n"
-#: vms-alpha.c:6024
+#: vms-alpha.c:6694
#, c-format
msgid "STO_AB (store absolute branch)\n"
msgstr "STO_AB (lagra absolut gren)\n"
-#: vms-alpha.c:6027
+#: vms-alpha.c:6697
#, c-format
msgid "STO_OFF (store offset to psect)\n"
msgstr "STO_OFF (lagra offset i psect)\n"
-#: vms-alpha.c:6033
+#: vms-alpha.c:6704
#, c-format
msgid "STO_IMM (store immediate) %u bytes\n"
msgstr "STO_IMM (lagra omedelbart) %u byte\n"
-#: vms-alpha.c:6040
+#: vms-alpha.c:6713
#, c-format
msgid "STO_GBL_LW (store global longword) %.*s\n"
msgstr "STO_GBL_LW (lagra globalt långord) %.*s\n"
-#: vms-alpha.c:6044
+#: vms-alpha.c:6717
#, c-format
msgid "STO_OFF (store LP with procedure signature)\n"
msgstr "STO_OFF (lagra LP med procedursignatur)\n"
-#: vms-alpha.c:6047
+#: vms-alpha.c:6720
#, c-format
msgid "STO_BR_GBL (store branch global) *todo*\n"
msgstr "STO_BR_GBL (lagra gren globalt) *todo*\n"
-#: vms-alpha.c:6050
+#: vms-alpha.c:6723
#, c-format
msgid "STO_BR_PS (store branch psect + offset) *todo*\n"
msgstr "STO_BR_PS (lagra grenens psect + offset) *todo*\n"
-#: vms-alpha.c:6054
+#: vms-alpha.c:6727
#, c-format
msgid "OPR_NOP (no-operation)\n"
msgstr "OPR_NOP (no-operation)\n"
-#: vms-alpha.c:6057
+#: vms-alpha.c:6730
#, c-format
msgid "OPR_ADD (add)\n"
msgstr "OPR_ADD (addera)\n"
-#: vms-alpha.c:6060
+#: vms-alpha.c:6733
#, c-format
-msgid "OPR_SUB (substract)\n"
+msgid "OPR_SUB (subtract)\n"
msgstr "OPR_SUB (subtrahera)\n"
-#: vms-alpha.c:6063
+#: vms-alpha.c:6736
#, c-format
msgid "OPR_MUL (multiply)\n"
msgstr "OPR_MUL (multiplicera)\n"
-#: vms-alpha.c:6066
+#: vms-alpha.c:6739
#, c-format
msgid "OPR_DIV (divide)\n"
msgstr "OPR_DIV (division)\n"
-#: vms-alpha.c:6069
+#: vms-alpha.c:6742
#, c-format
msgid "OPR_AND (logical and)\n"
msgstr "OPR_AND (logiskt â€ochâ€)\n"
-#: vms-alpha.c:6072
+#: vms-alpha.c:6745
#, c-format
msgid "OPR_IOR (logical inclusive or)\n"
msgstr "OPR_IOR (logiskt inkluderande â€ellerâ€)\n"
-#: vms-alpha.c:6075
+#: vms-alpha.c:6748
#, c-format
msgid "OPR_EOR (logical exclusive or)\n"
msgstr "OPR_EOR (logiskt exkluderande â€ellerâ€)\n"
-#: vms-alpha.c:6078
+#: vms-alpha.c:6751
#, c-format
msgid "OPR_NEG (negate)\n"
msgstr "OPR_NEG (negera)\n"
-#: vms-alpha.c:6081
+#: vms-alpha.c:6754
#, c-format
msgid "OPR_COM (complement)\n"
msgstr "OPR_COM (komplementera)\n"
-#: vms-alpha.c:6084
+#: vms-alpha.c:6757
#, c-format
msgid "OPR_INSV (insert field)\n"
msgstr "OPR_INSV (infoga fält)\n"
-#: vms-alpha.c:6087
+#: vms-alpha.c:6760
#, c-format
msgid "OPR_ASH (arithmetic shift)\n"
msgstr "OPR_ASH (aritmetiskt skifte)\n"
-#: vms-alpha.c:6090
+#: vms-alpha.c:6763
#, c-format
msgid "OPR_USH (unsigned shift)\n"
msgstr "OPR_USH (osignerat skifte)\n"
-#: vms-alpha.c:6093
+#: vms-alpha.c:6766
#, c-format
msgid "OPR_ROT (rotate)\n"
msgstr "OPR_ROT (rotera)\n"
-#: vms-alpha.c:6096
+#: vms-alpha.c:6769
#, c-format
msgid "OPR_SEL (select)\n"
msgstr "OPR_SEL (välj)\n"
-#: vms-alpha.c:6099
+#: vms-alpha.c:6772
#, c-format
msgid "OPR_REDEF (redefine symbol to curr location)\n"
msgstr "OPR_REDEF (omdefiniera symbol till nuv. plats)\n"
-#: vms-alpha.c:6102
+#: vms-alpha.c:6775
#, c-format
msgid "OPR_REDEF (define a literal)\n"
msgstr "OPR_REDEF (definiera en litteral)\n"
-#: vms-alpha.c:6106
+#: vms-alpha.c:6779
#, c-format
msgid "STC_LP (store cond linkage pair)\n"
msgstr "STC_LP (lagra villkorslänkpar)\n"
-#: vms-alpha.c:6110
+#: vms-alpha.c:6783
#, c-format
msgid "STC_LP_PSB (store cond linkage pair + signature)\n"
msgstr "STC_LP_PSB (lagra villkorslänkpar + signatur)\n"
-#: vms-alpha.c:6111
+#: vms-alpha.c:6787
#, c-format
msgid " linkage index: %u, procedure: %.*s\n"
msgstr " länkindex: %u, procedur: %.*s\n"
-#: vms-alpha.c:6114
+#: vms-alpha.c:6794
#, c-format
msgid " signature: %.*s\n"
msgstr " signatur: %.*s\n"
-#: vms-alpha.c:6117
+#: vms-alpha.c:6800
#, c-format
msgid "STC_GBL (store cond global)\n"
msgstr "STC_GBL (lagra villkor globalt)\n"
-#: vms-alpha.c:6118
+#: vms-alpha.c:6803
#, c-format
msgid " linkage index: %u, global: %.*s\n"
msgstr " länkindex: %u, globalt: %.*s\n"
-#: vms-alpha.c:6122
+#: vms-alpha.c:6808
#, c-format
msgid "STC_GCA (store cond code address)\n"
msgstr "STC_GCA (lagra villkorets kodadress)\n"
-#: vms-alpha.c:6123
+#: vms-alpha.c:6811
#, c-format
msgid " linkage index: %u, procedure name: %.*s\n"
msgstr " länkindex: %u, procedurnamn: %.*s\n"
-#: vms-alpha.c:6127
+#: vms-alpha.c:6816
#, c-format
msgid "STC_PS (store cond psect + offset)\n"
msgstr "STC_PS (lagra villkorets psect + offset)\n"
-#: vms-alpha.c:6129
+#: vms-alpha.c:6820
#, c-format
msgid " linkage index: %u, psect: %u, offset: 0x%08x %08x\n"
msgstr " länkindex: %u, psect: %u, förskjutning: 0x%08x %08x\n"
-#: vms-alpha.c:6136
+#: vms-alpha.c:6827
#, c-format
msgid "STC_NOP_GBL (store cond NOP at global addr)\n"
msgstr "STC_NOP_GBL (lagra villk. NOP i global adress)\n"
-#: vms-alpha.c:6140
+#: vms-alpha.c:6831
#, c-format
msgid "STC_NOP_PS (store cond NOP at psect + offset)\n"
msgstr "STC_NOP_PS (lagra villk. NOP i psect + förskjutning)\n"
-#: vms-alpha.c:6144
+#: vms-alpha.c:6835
#, c-format
msgid "STC_BSR_GBL (store cond BSR at global addr)\n"
msgstr "STC_BSR_GBL (lagra villk. BSR i global adress)\n"
-#: vms-alpha.c:6148
+#: vms-alpha.c:6839
#, c-format
msgid "STC_BSR_PS (store cond BSR at psect + offset)\n"
msgstr "STC_BSR_PS (lagra villk. BSR i psect + förskjutning)\n"
-#: vms-alpha.c:6152
+#: vms-alpha.c:6843
#, c-format
msgid "STC_LDA_GBL (store cond LDA at global addr)\n"
msgstr "STC_LDA_GBL (lagra villk. LDA i global adress)\n"
-#: vms-alpha.c:6156
+#: vms-alpha.c:6847
#, c-format
msgid "STC_LDA_PS (store cond LDA at psect + offset)\n"
msgstr "STC_LDA_PS (lagra villk. LDA i psect + förskjutning)\n"
-#: vms-alpha.c:6160
+#: vms-alpha.c:6851
#, c-format
msgid "STC_BOH_GBL (store cond BOH at global addr)\n"
msgstr "STC_BOH_GBL (lagra villk. BOH i global adress)\n"
-#: vms-alpha.c:6164
+#: vms-alpha.c:6855
#, c-format
msgid "STC_BOH_PS (store cond BOH at psect + offset)\n"
msgstr "STC_BOH_PS (lagra villk. BOH i psect + förskjutning)\n"
-#: vms-alpha.c:6169
+#: vms-alpha.c:6860
#, c-format
msgid "STC_NBH_GBL (store cond or hint at global addr)\n"
msgstr "STC_NBH_GBL (lagra villk. eller hint i global adress)\n"
-#: vms-alpha.c:6173
+#: vms-alpha.c:6864
#, c-format
msgid "STC_NBH_PS (store cond or hint at psect + offset)\n"
msgstr "STC_NBH_PS (lagra villk. eller hint i psect + förskjutning)\n"
-#: vms-alpha.c:6177
+#: vms-alpha.c:6868
#, c-format
msgid "CTL_SETRB (set relocation base)\n"
msgstr "CTL_SETRB (ange bas för omlokalisering)\n"
-#: vms-alpha.c:6183
+#: vms-alpha.c:6874
#, c-format
msgid "CTL_AUGRB (augment relocation base) %u\n"
msgstr "CTL_AUGRB (öka bas för omlokalisering) %u\n"
-#: vms-alpha.c:6187
+#: vms-alpha.c:6879
#, c-format
msgid "CTL_DFLOC (define location)\n"
msgstr "CTL_DFLOC (definiera plats)\n"
-#: vms-alpha.c:6190
+#: vms-alpha.c:6882
#, c-format
msgid "CTL_STLOC (set location)\n"
msgstr "CTL_STLOC (ange plats)\n"
-#: vms-alpha.c:6193
+#: vms-alpha.c:6885
#, c-format
msgid "CTL_STKDL (stack defined location)\n"
msgstr "CTL_STKDL (stackdefinierad plats)\n"
-#: vms-alpha.c:6196 vms-alpha.c:6610
+#: vms-alpha.c:6888 vms-alpha.c:7316 vms-alpha.c:7477
#, c-format
msgid "*unhandled*\n"
msgstr "*ohanterad*\n"
-#: vms-alpha.c:6226 vms-alpha.c:6265
+#: vms-alpha.c:6913
#, c-format
-msgid "cannot read GST record length\n"
-msgstr "Kan inte läsa GST-postens längd\n"
+msgid "cannot read GST record header\n"
+msgstr "kan inte läsa GST-postens huvud\n"
#. Ill-formed.
-#: vms-alpha.c:6247
+#: vms-alpha.c:6936
#, c-format
msgid "cannot find EMH in first GST record\n"
-msgstr "Kan inte hitta EMH i första GST-posten\n"
+msgstr "kan inte hitta EMH i första GST-posten\n"
-#: vms-alpha.c:6273
+#: vms-alpha.c:6960
#, c-format
-msgid "cannot read GST record header\n"
-msgstr "Kan inte läsa GST-postens huvud\n"
+msgid "corrupted GST\n"
+msgstr "korrumperad GST\n"
-#: vms-alpha.c:6286
-#, c-format
-msgid " corrupted GST\n"
-msgstr " fördärvad GST\n"
-
-#: vms-alpha.c:6294
+#: vms-alpha.c:6973
#, c-format
msgid "cannot read GST record\n"
-msgstr "Kan inte läsa GST-post\n"
+msgstr "kan inte läsa GST-post\n"
-#: vms-alpha.c:6323
+#: vms-alpha.c:7000
#, c-format
msgid " unhandled EOBJ record type %u\n"
msgstr " ohanterad EOBJ-posttyp %u\n"
-#: vms-alpha.c:6346
+#: vms-alpha.c:7025
#, c-format
msgid " bitcount: %u, base addr: 0x%08x\n"
msgstr " bitantal: %u, basadress: 0x%08x\n"
-#: vms-alpha.c:6359
+#: vms-alpha.c:7039
#, c-format
msgid " bitmap: 0x%08x (count: %u):\n"
msgstr " bitmap: 0x%08x (antal: %u):\n"
-#: vms-alpha.c:6366
+#: vms-alpha.c:7046
#, c-format
msgid " %08x"
msgstr " %08x"
-#: vms-alpha.c:6391
+#: vms-alpha.c:7073
#, c-format
msgid " image %u (%u entries)\n"
msgstr " avbild %u (%u poster)\n"
-#: vms-alpha.c:6396
+#: vms-alpha.c:7079
#, c-format
msgid " offset: 0x%08x, val: 0x%08x\n"
msgstr " förskjutning: 0x%08x, val: 0x%08x\n"
-#: vms-alpha.c:6417
+#: vms-alpha.c:7102
#, c-format
msgid " image %u (%u entries), offsets:\n"
msgstr " avbild %u (%u poster), förskjutningar:\n"
-#: vms-alpha.c:6424
+#: vms-alpha.c:7109
#, c-format
msgid " 0x%08x"
msgstr " 0x%08x"
#. 64 bits.
-#: vms-alpha.c:6546
+#: vms-alpha.c:7235
#, c-format
msgid "64 bits *unhandled*\n"
msgstr "64 bitar *ohanterad*\n"
-#: vms-alpha.c:6550
+#: vms-alpha.c:7240
#, c-format
msgid "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n"
msgstr "klass: %u, dtype: %u, längd: %u, pekare: 0x%08x\n"
-#: vms-alpha.c:6561
+#: vms-alpha.c:7251
#, c-format
msgid "non-contiguous array of %s\n"
msgstr "osammanhängande fält av %s\n"
-#: vms-alpha.c:6565
+#: vms-alpha.c:7258
#, c-format
msgid "dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n"
msgstr "dimct: %u, aflaggor: 0x%02x, siffror: %u, skala: %u\n"
-#: vms-alpha.c:6569
+#: vms-alpha.c:7263
#, c-format
msgid "arsize: %u, a0: 0x%08x\n"
msgstr "arstorlek: %u, a0: 0x%08x\n"
-#: vms-alpha.c:6573
+#: vms-alpha.c:7267
#, c-format
msgid "Strides:\n"
msgstr "Steg:\n"
-#: vms-alpha.c:6578
-#, c-format
-msgid "[%u]: %u\n"
-msgstr "[%u]: %u\n"
-
-#: vms-alpha.c:6583
+#: vms-alpha.c:7281
#, c-format
msgid "Bounds:\n"
msgstr "Gränser:\n"
-#: vms-alpha.c:6588
+#: vms-alpha.c:7288
#, c-format
msgid "[%u]: Lower: %u, upper: %u\n"
msgstr "[%u]: Lägre: %u, övre: %u\n"
-#: vms-alpha.c:6600
+#: vms-alpha.c:7302
#, c-format
msgid "unaligned bit-string of %s\n"
msgstr "otillrättad bitsträng av %s\n"
-#: vms-alpha.c:6604
+#: vms-alpha.c:7309
#, c-format
msgid "base: %u, pos: %u\n"
msgstr "bas: %u, pos: %u\n"
-#: vms-alpha.c:6624
+#: vms-alpha.c:7335
#, c-format
msgid "vflags: 0x%02x, value: 0x%08x "
msgstr "vflaggor: 0x%02x, värde: 0x%08x "
-#: vms-alpha.c:6630
+#: vms-alpha.c:7342
#, c-format
msgid "(no value)\n"
msgstr "(inget värde)\n"
-#: vms-alpha.c:6633
+#: vms-alpha.c:7345
#, c-format
msgid "(not active)\n"
msgstr "(inaktiv)\n"
-#: vms-alpha.c:6636
+#: vms-alpha.c:7348
#, c-format
msgid "(not allocated)\n"
msgstr "(ej allokerad)\n"
-#: vms-alpha.c:6639
+#: vms-alpha.c:7351
#, c-format
msgid "(descriptor)\n"
msgstr "(beskrivning)\n"
-#: vms-alpha.c:6643
+#: vms-alpha.c:7356
#, c-format
msgid "(trailing value)\n"
msgstr "(efterhängande värde)\n"
-#: vms-alpha.c:6646
+#: vms-alpha.c:7359
#, c-format
msgid "(value spec follows)\n"
msgstr "(värdespec. följer)\n"
-#: vms-alpha.c:6649
+#: vms-alpha.c:7362
#, c-format
msgid "(at bit offset %u)\n"
msgstr "(vid bitoffset %u)\n"
-#: vms-alpha.c:6652
+#: vms-alpha.c:7366
#, c-format
msgid "(reg: %u, disp: %u, indir: %u, kind: "
msgstr "(reg: %u, disp: %u, indir: %u, sort: "
-#: vms-alpha.c:6659
+#: vms-alpha.c:7373
msgid "literal"
msgstr "litteral"
-#: vms-alpha.c:6662
+#: vms-alpha.c:7376
msgid "address"
msgstr "adress"
-#: vms-alpha.c:6665
+#: vms-alpha.c:7379
msgid "desc"
msgstr "beskr"
-#: vms-alpha.c:6668
+#: vms-alpha.c:7382
msgid "reg"
msgstr "reg"
-#: vms-alpha.c:6743
+#: vms-alpha.c:7403
+#, c-format
+msgid "len: %2u, kind: %2u "
+msgstr "len: %2u, typ: %2u "
+
+#: vms-alpha.c:7411
+#, c-format
+msgid "atomic, type=0x%02x %s\n"
+msgstr "atomär, typ=0x%02x %s\n"
+
+#: vms-alpha.c:7416
+#, c-format
+msgid "indirect, defined at 0x%08x\n"
+msgstr "indirekt, definierad på 0x%08x\n"
+
+#: vms-alpha.c:7420
+#, c-format
+msgid "typed pointer\n"
+msgstr "typad pekare\n"
+
+#: vms-alpha.c:7424
+#, c-format
+msgid "pointer\n"
+msgstr "pekare\n"
+
+#: vms-alpha.c:7435
+#, c-format
+msgid "array, dim: %u, bitmap: "
+msgstr "array, dim: %u, bitmap: "
+
+#: vms-alpha.c:7450
+#, c-format
+msgid "array descriptor:\n"
+msgstr "array-beskrivning:\n"
+
+#: vms-alpha.c:7461
+#, c-format
+msgid "type spec for element:\n"
+msgstr "typspecifikation för element:\n"
+
+#: vms-alpha.c:7463
+#, c-format
+msgid "type spec for subscript %u:\n"
+msgstr "typspecifikation för avskrift %u:\n"
+
+#: vms-alpha.c:7488
#, c-format
msgid "Debug symbol table:\n"
msgstr "Felsökningssymboltabell:\n"
-#: vms-alpha.c:6754
+#: vms-alpha.c:7499
#, c-format
msgid "cannot read DST header\n"
-msgstr "Kan inte läsa DST-huvud\n"
+msgstr "kan inte läsa DST-huvud\n"
-#: vms-alpha.c:6759
+#: vms-alpha.c:7505
#, c-format
msgid " type: %3u, len: %3u (at 0x%08x): "
msgstr " typ: %3u, len: %3u (vid 0x%08x): "
-#: vms-alpha.c:6773
+#: vms-alpha.c:7524
#, c-format
msgid "cannot read DST symbol\n"
-msgstr "Kan inte läsa DST-symbol\n"
+msgstr "kan inte läsa DST-symbol\n"
-#: vms-alpha.c:6816
+#: vms-alpha.c:7568
#, c-format
msgid "standard data: %s\n"
-msgstr "Standarddata: %s\n"
+msgstr "standarddata: %s\n"
-#: vms-alpha.c:6819 vms-alpha.c:6903
+#: vms-alpha.c:7572 vms-alpha.c:7696
#, c-format
msgid " name: %.*s\n"
msgstr " namn: %.*s\n"
-#: vms-alpha.c:6826
+#: vms-alpha.c:7580
#, c-format
msgid "modbeg\n"
msgstr "modbeg\n"
-#: vms-alpha.c:6827
+#: vms-alpha.c:7584
#, c-format
msgid " flags: %d, language: %u, major: %u, minor: %u\n"
msgstr " flaggor: %d, språk: %u, större: %u, mindre: %u\n"
-#: vms-alpha.c:6833 vms-alpha.c:7099
+#: vms-alpha.c:7594 vms-alpha.c:7963
#, c-format
msgid " module name: %.*s\n"
msgstr " modulnamn: %.*s\n"
-#: vms-alpha.c:6836
+#: vms-alpha.c:7601
#, c-format
msgid " compiler : %.*s\n"
msgstr " kompilator : %.*s\n"
-#: vms-alpha.c:6841
+#: vms-alpha.c:7608
#, c-format
msgid "modend\n"
msgstr "modend\n"
-#: vms-alpha.c:6848
+#: vms-alpha.c:7615
msgid "rtnbeg\n"
msgstr "rtnbeg\n"
-#: vms-alpha.c:6849
+#: vms-alpha.c:7619
#, c-format
msgid " flags: %u, address: 0x%08x, pd-address: 0x%08x\n"
msgstr " flaggor: %u, adress: 0x%08x, pd-adress: 0x%08x\n"
-#: vms-alpha.c:6854
+#: vms-alpha.c:7628
#, c-format
msgid " routine name: %.*s\n"
msgstr " rutinnamn: %.*s\n"
-#: vms-alpha.c:6862
+#: vms-alpha.c:7639
#, c-format
msgid "rtnend: size 0x%08x\n"
msgstr "rtnend: storlek 0x%08x\n"
-#: vms-alpha.c:6870
+#: vms-alpha.c:7649
#, c-format
msgid "prolog: bkpt address 0x%08x\n"
msgstr "prolog: bkpt-adress 0x%08x\n"
-#: vms-alpha.c:6878
+#: vms-alpha.c:7659
#, c-format
msgid "epilog: flags: %u, count: %u\n"
msgstr "epilog: flaggor: %u, antal: %u\n"
-#: vms-alpha.c:6887
+#: vms-alpha.c:7674
#, c-format
msgid "blkbeg: address: 0x%08x, name: %.*s\n"
msgstr "blkbeg: adress: 0x%08x, namn: %.*s\n"
-#: vms-alpha.c:6896
+#: vms-alpha.c:7686
#, c-format
msgid "blkend: size: 0x%08x\n"
msgstr "blkend: storlek: 0x%08x\n"
-#: vms-alpha.c:6902
+#: vms-alpha.c:7692
#, c-format
msgid "typspec (len: %u)\n"
msgstr "typspec (len: %u)\n"
-#: vms-alpha.c:6909
+#: vms-alpha.c:7708
#, c-format
msgid "septyp, name: %.*s\n"
msgstr "septyp, namn: %.*s\n"
-#: vms-alpha.c:6918
+#: vms-alpha.c:7725
#, c-format
msgid "recbeg: name: %.*s\n"
msgstr "recbeg: namn: %.*s\n"
-#: vms-alpha.c:6925
+#: vms-alpha.c:7731
+#, c-format
+msgid " len: %u bits\n"
+msgstr " len: %u bitar\n"
+
+#: vms-alpha.c:7737
#, c-format
msgid "recend\n"
msgstr "recend\n"
-#: vms-alpha.c:6928
+#: vms-alpha.c:7742
#, c-format
msgid "enumbeg, len: %u, name: %.*s\n"
msgstr "enumbeg, len: %u, namn: %.*s\n"
-#: vms-alpha.c:6932
+#: vms-alpha.c:7748
#, c-format
msgid "enumelt, name: %.*s\n"
msgstr "enumelt, namn: %.*s\n"
-#: vms-alpha.c:6936
+#: vms-alpha.c:7754
#, c-format
msgid "enumend\n"
msgstr "enumend\n"
-#: vms-alpha.c:6953
+#: vms-alpha.c:7761
+#, c-format
+msgid "label, name: %.*s\n"
+msgstr "etikett, namn: %.*s\n"
+
+#: vms-alpha.c:7764
+#, c-format
+msgid " address: 0x%08x\n"
+msgstr " adress: 0x%08x\n"
+
+#: vms-alpha.c:7776
#, c-format
msgid "discontiguous range (nbr: %u)\n"
msgstr "osammanhängande intervall (nbr: %u)\n"
-#: vms-alpha.c:6955
+#: vms-alpha.c:7783
#, c-format
msgid " address: 0x%08x, size: %u\n"
msgstr " adress: 0x%08x, storlek: %u\n"
-#: vms-alpha.c:6965
+#: vms-alpha.c:7794
#, c-format
msgid "line num (len: %u)\n"
msgstr "radnum (len: %u)\n"
-#: vms-alpha.c:6982
+#: vms-alpha.c:7813
#, c-format
msgid "delta_pc_w %u\n"
msgstr "delta_pc_w %u\n"
-#: vms-alpha.c:6989
+#: vms-alpha.c:7822
#, c-format
msgid "incr_linum(b): +%u\n"
msgstr "incr_linum(b): +%u\n"
-#: vms-alpha.c:6995
+#: vms-alpha.c:7830
#, c-format
msgid "incr_linum_w: +%u\n"
msgstr "incr_linum_w: +%u\n"
-#: vms-alpha.c:7001
+#: vms-alpha.c:7838
#, c-format
msgid "incr_linum_l: +%u\n"
msgstr "incr_linum_l: +%u\n"
-#: vms-alpha.c:7007
+#: vms-alpha.c:7846
#, c-format
msgid "set_line_num(w) %u\n"
msgstr "set_line_num(w) %u\n"
-#: vms-alpha.c:7012
+#: vms-alpha.c:7853
#, c-format
msgid "set_line_num_b %u\n"
msgstr "set_line_num_b %u\n"
-#: vms-alpha.c:7017
+#: vms-alpha.c:7860
#, c-format
msgid "set_line_num_l %u\n"
msgstr "set_line_num_l %u\n"
-#: vms-alpha.c:7022
+#: vms-alpha.c:7867
#, c-format
msgid "set_abs_pc: 0x%08x\n"
msgstr "set_abs_pc: 0x%08x\n"
-#: vms-alpha.c:7026
+#: vms-alpha.c:7873
#, c-format
msgid "delta_pc_l: +0x%08x\n"
msgstr "delta_pc_l: +0x%08x\n"
-#: vms-alpha.c:7031
+#: vms-alpha.c:7880
#, c-format
msgid "term(b): 0x%02x"
msgstr "term(b): 0x%02x"
-#: vms-alpha.c:7033
+#: vms-alpha.c:7882
#, c-format
msgid " pc: 0x%08x\n"
msgstr " pc: 0x%08x\n"
-#: vms-alpha.c:7038
+#: vms-alpha.c:7889
#, c-format
msgid "term_w: 0x%04x"
msgstr "term_w: 0x%04x"
-#: vms-alpha.c:7040
+#: vms-alpha.c:7891
#, c-format
msgid " pc: 0x%08x\n"
msgstr " pc: 0x%08x\n"
-#: vms-alpha.c:7046
+#: vms-alpha.c:7897
#, c-format
msgid "delta pc +%-4d"
msgstr "delta pc +%-4d"
-#: vms-alpha.c:7049
+#: vms-alpha.c:7901
#, c-format
msgid " pc: 0x%08x line: %5u\n"
msgstr " pc: 0x%08x rad: %5u\n"
-#: vms-alpha.c:7054
+#: vms-alpha.c:7906
#, c-format
msgid " *unhandled* cmd %u\n"
msgstr " *ohanterat* kmd %u\n"
-#: vms-alpha.c:7069
+#: vms-alpha.c:7921
#, c-format
msgid "source (len: %u)\n"
msgstr "källa (len: %u)\n"
-#: vms-alpha.c:7083
+#: vms-alpha.c:7940
#, c-format
msgid " declfile: len: %u, flags: %u, fileid: %u\n"
msgstr " dklfil: len: %u, flaggor: %u, fil-ID: %u\n"
-#: vms-alpha.c:7087
+#: vms-alpha.c:7945
#, c-format
msgid " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n"
msgstr " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n"
-#: vms-alpha.c:7096
+#: vms-alpha.c:7957
#, c-format
msgid " filename : %.*s\n"
msgstr " filnamn : %.*s\n"
-#: vms-alpha.c:7105
+#: vms-alpha.c:7973
#, c-format
msgid " setfile %u\n"
msgstr " setfile %u\n"
-#: vms-alpha.c:7110 vms-alpha.c:7115
+#: vms-alpha.c:7980 vms-alpha.c:7987
#, c-format
msgid " setrec %u\n"
msgstr " setrec %u\n"
-#: vms-alpha.c:7120 vms-alpha.c:7125
+#: vms-alpha.c:7994 vms-alpha.c:8001
#, c-format
msgid " setlnum %u\n"
msgstr " setlnum %u\n"
-#: vms-alpha.c:7130 vms-alpha.c:7135
+#: vms-alpha.c:8008 vms-alpha.c:8015
#, c-format
msgid " deflines %u\n"
msgstr " deflines %u\n"
-#: vms-alpha.c:7139
+#: vms-alpha.c:8019
#, c-format
msgid " formfeed\n"
msgstr " formfeed\n"
-#: vms-alpha.c:7143
+#: vms-alpha.c:8023
#, c-format
msgid " *unhandled* cmd %u\n"
msgstr " *ohanterat* kmd %u\n"
-#: vms-alpha.c:7155
+#: vms-alpha.c:8035
#, c-format
msgid "*unhandled* dst type %u\n"
msgstr "*ohanterad* dst-typ %u\n"
-#: vms-alpha.c:7187
+#: vms-alpha.c:8067
#, c-format
msgid "cannot read EIHD\n"
-msgstr "Kan inte läsa EIHD\n"
+msgstr "kan inte läsa EIHD\n"
-#: vms-alpha.c:7190
+#: vms-alpha.c:8071
#, c-format
msgid "EIHD: (size: %u, nbr blocks: %u)\n"
msgstr "EIHD: (storlek: %u, nbr-block: %u)\n"
-#: vms-alpha.c:7193
+#: vms-alpha.c:8075
#, c-format
msgid " majorid: %u, minorid: %u\n"
msgstr " majorid: %u, minorid: %u\n"
-#: vms-alpha.c:7201
+#: vms-alpha.c:8083
msgid "executable"
msgstr "körbar fil"
-#: vms-alpha.c:7204
+#: vms-alpha.c:8086
msgid "linkable image"
msgstr "länkningsbar avbild"
-#: vms-alpha.c:7210
+#: vms-alpha.c:8093
#, c-format
msgid " image type: %u (%s)"
msgstr " avbildtyp: %u (%s)"
-#: vms-alpha.c:7216
+#: vms-alpha.c:8099
msgid "native"
msgstr "nativ"
-#: vms-alpha.c:7219
+#: vms-alpha.c:8102
msgid "CLI"
msgstr "CLI"
-#: vms-alpha.c:7225
+#: vms-alpha.c:8109
#, c-format
msgid ", subtype: %u (%s)\n"
msgstr ", deltyp: %u (%s)\n"
-#: vms-alpha.c:7231
+#: vms-alpha.c:8116
#, c-format
msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n"
msgstr " förskjutningar: isd: %u, aktiv: %u, symdbg: %u, imgid: %u, patch: %u\n"
-#: vms-alpha.c:7235
+#: vms-alpha.c:8120
#, c-format
msgid " fixup info rva: "
msgstr " fixup info rva: "
-#: vms-alpha.c:7237
+#: vms-alpha.c:8122
#, c-format
msgid ", symbol vector rva: "
msgstr ", symbolvektor rva: "
-#: vms-alpha.c:7240
+#: vms-alpha.c:8125
#, c-format
msgid ""
"\n"
@@ -5619,624 +8322,1053 @@ msgstr ""
"\n"
" versionsfält av: %u\n"
-#: vms-alpha.c:7244
+#: vms-alpha.c:8130
#, c-format
msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n"
msgstr " img I/O-antal: %u, nbr-kanaler: %u, req pri: %08x%08x\n"
-#: vms-alpha.c:7250
+#: vms-alpha.c:8136
#, c-format
msgid " linker flags: %08x:"
msgstr " länkarflaggor: %08x:"
-#: vms-alpha.c:7280
+#: vms-alpha.c:8167
#, c-format
msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n"
msgstr " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n"
-#: vms-alpha.c:7286
+#: vms-alpha.c:8173
#, c-format
msgid " BPAGE: %u"
msgstr " BPAGE: %u"
-#: vms-alpha.c:7292
+#: vms-alpha.c:8180
#, c-format
msgid ", ext fixup offset: %u, no_opt psect off: %u"
msgstr ", ext fixup förskjutning: %u, no_opt psect off: %u"
-#: vms-alpha.c:7295
+#: vms-alpha.c:8183
#, c-format
msgid ", alias: %u\n"
msgstr ", alias: %u\n"
-#: vms-alpha.c:7303
+#: vms-alpha.c:8191
#, c-format
msgid "system version array information:\n"
msgstr "fältinformation om systemversion:\n"
-#: vms-alpha.c:7307
+#: vms-alpha.c:8195
#, c-format
msgid "cannot read EIHVN header\n"
-msgstr "Kan inte läsa EIHVN-huvud\n"
+msgstr "kan inte läsa EIHVN-huvud\n"
-#: vms-alpha.c:7317
+#: vms-alpha.c:8205
#, c-format
msgid "cannot read EIHVN version\n"
-msgstr "Kan inte läsa EIHVN-version\n"
+msgstr "kan inte läsa EIHVN-version\n"
-#: vms-alpha.c:7320
+#: vms-alpha.c:8208
#, c-format
msgid " %02u "
msgstr " %02u "
-#: vms-alpha.c:7324
+#: vms-alpha.c:8212
msgid "BASE_IMAGE "
msgstr "BASE_IMAGE "
-#: vms-alpha.c:7327
+#: vms-alpha.c:8215
msgid "MEMORY_MANAGEMENT"
msgstr "MEMORY_MANAGEMENT"
-#: vms-alpha.c:7330
+#: vms-alpha.c:8218
msgid "IO "
msgstr "IO "
-#: vms-alpha.c:7333
+#: vms-alpha.c:8221
msgid "FILES_VOLUMES "
msgstr "FILES_VOLUMES "
-#: vms-alpha.c:7336
+#: vms-alpha.c:8224
msgid "PROCESS_SCHED "
msgstr "PROCESS_SCHED "
-#: vms-alpha.c:7339
+#: vms-alpha.c:8227
msgid "SYSGEN "
msgstr "SYSGEN "
-#: vms-alpha.c:7342
+#: vms-alpha.c:8230
msgid "CLUSTERS_LOCKMGR "
msgstr "CLUSTERS_LOCKMGR "
-#: vms-alpha.c:7345
+#: vms-alpha.c:8233
msgid "LOGICAL_NAMES "
msgstr "LOGICAL_NAMES "
-#: vms-alpha.c:7348
+#: vms-alpha.c:8236
msgid "SECURITY "
msgstr "SECURITY "
-#: vms-alpha.c:7351
+#: vms-alpha.c:8239
msgid "IMAGE_ACTIVATOR "
msgstr "IMAGE_ACTIVATOR "
-#: vms-alpha.c:7354
+#: vms-alpha.c:8242
msgid "NETWORKS "
msgstr "NETWORKS "
-#: vms-alpha.c:7357
+#: vms-alpha.c:8245
msgid "COUNTERS "
msgstr "COUNTERS "
-#: vms-alpha.c:7360
+#: vms-alpha.c:8248
msgid "STABLE "
msgstr "STABLE "
-#: vms-alpha.c:7363
+#: vms-alpha.c:8251
msgid "MISC "
msgstr "MISC "
-#: vms-alpha.c:7366
+#: vms-alpha.c:8254
msgid "CPU "
msgstr "CPU "
-#: vms-alpha.c:7369
+#: vms-alpha.c:8257
msgid "VOLATILE "
msgstr "VOLATILE "
-#: vms-alpha.c:7372
+#: vms-alpha.c:8260
msgid "SHELL "
msgstr "SHELL "
-#: vms-alpha.c:7375
+#: vms-alpha.c:8263
msgid "POSIX "
msgstr "POSIX "
-#: vms-alpha.c:7378
+#: vms-alpha.c:8266
msgid "MULTI_PROCESSING "
msgstr "MULTI_PROCESSING "
-#: vms-alpha.c:7381
+#: vms-alpha.c:8269
msgid "GALAXY "
msgstr "GALAXY "
-#: vms-alpha.c:7384
+#: vms-alpha.c:8272
msgid "*unknown* "
msgstr "*unknown* "
-#: vms-alpha.c:7387
-#, c-format
-msgid ": %u.%u\n"
-msgstr ": %u.%u\n"
-
-#: vms-alpha.c:7400 vms-alpha.c:7659
+#: vms-alpha.c:8288 vms-alpha.c:8575
#, c-format
msgid "cannot read EIHA\n"
-msgstr "Kan inte läsa EIHA\n"
+msgstr "kan inte läsa EIHA\n"
-#: vms-alpha.c:7403
+#: vms-alpha.c:8291
#, c-format
msgid "Image activation: (size=%u)\n"
msgstr "Avbildsaktivering: (storlek=%u)\n"
-#: vms-alpha.c:7405
+#: vms-alpha.c:8294
#, c-format
msgid " First address : 0x%08x 0x%08x\n"
msgstr " Första adress : 0x%08x 0x%08x\n"
-#: vms-alpha.c:7408
+#: vms-alpha.c:8298
#, c-format
msgid " Second address: 0x%08x 0x%08x\n"
msgstr " Andra adress : 0x%08x 0x%08x\n"
-#: vms-alpha.c:7411
+#: vms-alpha.c:8302
#, c-format
msgid " Third address : 0x%08x 0x%08x\n"
msgstr " Tredje adress : 0x%08x 0x%08x\n"
-#: vms-alpha.c:7414
+#: vms-alpha.c:8306
#, c-format
msgid " Fourth address: 0x%08x 0x%08x\n"
msgstr " Fjärde adress : 0x%08x 0x%08x\n"
-#: vms-alpha.c:7417
+#: vms-alpha.c:8310
#, c-format
msgid " Shared image : 0x%08x 0x%08x\n"
msgstr " Delad avbild : 0x%08x 0x%08x\n"
-#: vms-alpha.c:7428
+#: vms-alpha.c:8321
#, c-format
msgid "cannot read EIHI\n"
-msgstr "Kan inte läsa EIHI\n"
+msgstr "kan inte läsa EIHI\n"
-#: vms-alpha.c:7431
+#: vms-alpha.c:8325
#, c-format
msgid "Image identification: (major: %u, minor: %u)\n"
msgstr "Avbildsidentifiering: (major: %u, minor: %u)\n"
-#: vms-alpha.c:7434
+#: vms-alpha.c:8331
#, c-format
msgid " image name : %.*s\n"
msgstr " avbildens namn : %.*s\n"
-#: vms-alpha.c:7436
+#: vms-alpha.c:8332
#, c-format
msgid " link time : %s\n"
msgstr " länkningstid : %s\n"
-#: vms-alpha.c:7438
+#: vms-alpha.c:8337
#, c-format
msgid " image ident : %.*s\n"
msgstr " avbildsident : %.*s\n"
-#: vms-alpha.c:7440
+#: vms-alpha.c:8341
#, c-format
msgid " linker ident : %.*s\n"
msgstr " länkarident : %.*s\n"
-#: vms-alpha.c:7442
+#: vms-alpha.c:8345
#, c-format
msgid " image build ident: %.*s\n"
msgstr " avbildsbyggident: %.*s\n"
-#: vms-alpha.c:7452
+#: vms-alpha.c:8354
#, c-format
msgid "cannot read EIHS\n"
-msgstr "Kan inte läsa EIHS\n"
+msgstr "kan inte läsa EIHS\n"
-#: vms-alpha.c:7455
+#: vms-alpha.c:8358
#, c-format
msgid "Image symbol & debug table: (major: %u, minor: %u)\n"
msgstr "Avbildens symbol & felsöktabell: (major: %u, minor: %u)\n"
-#: vms-alpha.c:7460
+#: vms-alpha.c:8364
#, c-format
msgid " debug symbol table : vbn: %u, size: %u (0x%x)\n"
msgstr " Felsökningssymboltabell: vbn: %u, storlek: %u (0x%x)\n"
-#: vms-alpha.c:7464
+#: vms-alpha.c:8369
#, c-format
msgid " global symbol table: vbn: %u, records: %u\n"
msgstr " Global symboltabell: vbn: %u, poster: %u\n"
-#: vms-alpha.c:7468
+#: vms-alpha.c:8374
#, c-format
msgid " debug module table : vbn: %u, size: %u\n"
msgstr " Felsökningsmodultabell: vbn: %u, storlek: %u\n"
-#: vms-alpha.c:7481
+#: vms-alpha.c:8387
#, c-format
msgid "cannot read EISD\n"
-msgstr "Kan inte läsa EISD\n"
+msgstr "kan inte läsa EISD\n"
-#: vms-alpha.c:7491
+#: vms-alpha.c:8398
#, c-format
msgid "Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)\n"
msgstr "Avbildens sektionsbeskrivning: (major: %u, minor: %u, storlek: %u, förskjutning: %u)\n"
-#: vms-alpha.c:7498
+#: vms-alpha.c:8406
#, c-format
msgid " section: base: 0x%08x%08x size: 0x%08x\n"
msgstr " sektion: bas: 0x%08x%08x storlek: 0x%08x\n"
-#: vms-alpha.c:7503
+#: vms-alpha.c:8411
#, c-format
msgid " flags: 0x%04x"
msgstr " flaggor: 0x%04x"
-#: vms-alpha.c:7540
+#: vms-alpha.c:8449
#, c-format
msgid " vbn: %u, pfc: %u, matchctl: %u type: %u ("
msgstr " vbn: %u, pfc: %u, matchctl: %u type: %u ("
-#: vms-alpha.c:7546
+#: vms-alpha.c:8455
msgid "NORMAL"
msgstr "NORMAL"
-#: vms-alpha.c:7549
+#: vms-alpha.c:8458
msgid "SHRFXD"
msgstr "SHRFXD"
-#: vms-alpha.c:7552
+#: vms-alpha.c:8461
msgid "PRVFXD"
msgstr "PRVFXD"
-#: vms-alpha.c:7555
+#: vms-alpha.c:8464
msgid "SHRPIC"
msgstr "SHRPIC"
-#: vms-alpha.c:7558
+#: vms-alpha.c:8467
msgid "PRVPIC"
msgstr "PRVPIC"
-#: vms-alpha.c:7561
+#: vms-alpha.c:8470
msgid "USRSTACK"
msgstr "USRSTACK"
-#: vms-alpha.c:7567
+#: vms-alpha.c:8476
msgid ")\n"
msgstr ")\n"
-#: vms-alpha.c:7569
+#: vms-alpha.c:8483
#, c-format
msgid " ident: 0x%08x, name: %.*s\n"
msgstr " ident: 0x%08x, namn: %.*s\n"
-#: vms-alpha.c:7579
+#: vms-alpha.c:8494
#, c-format
msgid "cannot read DMT\n"
-msgstr "Kan inte läsa DMT\n"
+msgstr "kan inte läsa DMT\n"
-#: vms-alpha.c:7583
+#: vms-alpha.c:8498
#, c-format
msgid "Debug module table:\n"
msgstr "Felsökningsmodultabell:\n"
-#: vms-alpha.c:7592
+#: vms-alpha.c:8507
#, c-format
msgid "cannot read DMT header\n"
-msgstr "Kan inte läsa DMT-huvud\n"
+msgstr "kan inte läsa DMT-huvud\n"
-#: vms-alpha.c:7597
+#: vms-alpha.c:8513
#, c-format
msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n"
msgstr " moduloffset: 0x%08x, storlek: 0x%08x, (%u psects)\n"
-#: vms-alpha.c:7607
+#: vms-alpha.c:8523
#, c-format
msgid "cannot read DMT psect\n"
-msgstr "Kan inte läsa DMT-psect\n"
+msgstr "kan inte läsa DMT-psect\n"
-#: vms-alpha.c:7610
+#: vms-alpha.c:8527
#, c-format
msgid " psect start: 0x%08x, length: %u\n"
msgstr " psect start: 0x%08x, längd: %u\n"
-#: vms-alpha.c:7623
+#: vms-alpha.c:8540
#, c-format
msgid "cannot read DST\n"
msgstr "kan inte läsa DST\n"
-#: vms-alpha.c:7633
+#: vms-alpha.c:8550
#, c-format
msgid "cannot read GST\n"
-msgstr "Kan inte läsa GST\n"
+msgstr "kan inte läsa GST\n"
-#: vms-alpha.c:7637
+#: vms-alpha.c:8554
#, c-format
msgid "Global symbol table:\n"
msgstr "Global symboltabell:\n"
-#: vms-alpha.c:7665
+#: vms-alpha.c:8581
#, c-format
msgid "Image activator fixup: (major: %u, minor: %u)\n"
msgstr "Avbildsaktiverarfixup: (major: %u, minor: %u)\n"
-#: vms-alpha.c:7668
+#: vms-alpha.c:8585
#, c-format
msgid " iaflink : 0x%08x %08x\n"
msgstr " iaflänk : 0x%08x %08x\n"
-#: vms-alpha.c:7671
+#: vms-alpha.c:8589
#, c-format
msgid " fixuplnk: 0x%08x %08x\n"
msgstr " fixuplnk: 0x%08x %08x\n"
-#: vms-alpha.c:7674
+#: vms-alpha.c:8592
#, c-format
msgid " size : %u\n"
msgstr " storlek : %u\n"
-#: vms-alpha.c:7676
+#: vms-alpha.c:8594
#, c-format
msgid " flags: 0x%08x\n"
msgstr " flaggor: 0x%08x\n"
-#: vms-alpha.c:7680
+#: vms-alpha.c:8599
#, c-format
msgid " qrelfixoff: %5u, lrelfixoff: %5u\n"
msgstr " qrelfixoff: %5u, lrelfixoff: %5u\n"
-#: vms-alpha.c:7684
+#: vms-alpha.c:8604
#, c-format
msgid " qdotadroff: %5u, ldotadroff: %5u\n"
msgstr " qdotadroff: %5u, ldotadroff: %5u\n"
-#: vms-alpha.c:7688
+#: vms-alpha.c:8609
#, c-format
msgid " codeadroff: %5u, lpfixoff : %5u\n"
msgstr " codeadroff: %5u, lpfixoff : %5u\n"
-#: vms-alpha.c:7691
+#: vms-alpha.c:8612
#, c-format
msgid " chgprtoff : %5u\n"
msgstr " chgprtoff : %5u\n"
-#: vms-alpha.c:7694
+#: vms-alpha.c:8616
#, c-format
msgid " shlstoff : %5u, shrimgcnt : %5u\n"
msgstr " shlstoff : %5u, shrimgcnt : %5u\n"
-#: vms-alpha.c:7696
+#: vms-alpha.c:8619
#, c-format
msgid " shlextra : %5u, permctx : %5u\n"
msgstr " shlextra : %5u, permctx : %5u\n"
-#: vms-alpha.c:7699
+#: vms-alpha.c:8622
#, c-format
msgid " base_va : 0x%08x\n"
msgstr " base_va : 0x%08x\n"
-#: vms-alpha.c:7701
+#: vms-alpha.c:8624
#, c-format
msgid " lppsbfixoff: %5u\n"
msgstr " lppsbfixoff: %5u\n"
-#: vms-alpha.c:7709
+#: vms-alpha.c:8631
#, c-format
msgid " Shareable images:\n"
msgstr " Avbilder som kan delas:\n"
-#: vms-alpha.c:7713
+#: vms-alpha.c:8642
#, c-format
msgid " %u: size: %u, flags: 0x%02x, name: %.*s\n"
msgstr " %u: storlek: %u, flaggor: 0x%02x, namn: %.*s\n"
-#: vms-alpha.c:7720
+#: vms-alpha.c:8649
#, c-format
msgid " quad-word relocation fixups:\n"
msgstr " quad-ord omlokaliseringsfixar:\n"
-#: vms-alpha.c:7725
+#: vms-alpha.c:8655
#, c-format
msgid " long-word relocation fixups:\n"
msgstr " långord omlokaliseringsfixar:\n"
-#: vms-alpha.c:7730
+#: vms-alpha.c:8661
#, c-format
msgid " quad-word .address reference fixups:\n"
msgstr " quad-ord .address-referensfixar:\n"
-#: vms-alpha.c:7735
+#: vms-alpha.c:8666
#, c-format
msgid " long-word .address reference fixups:\n"
msgstr " långord .address-referensfixar:\n"
-#: vms-alpha.c:7740
+#: vms-alpha.c:8671
#, c-format
msgid " Code Address Reference Fixups:\n"
msgstr " Kodadressreferens-fixar:\n"
-#: vms-alpha.c:7745
+#: vms-alpha.c:8676
#, c-format
msgid " Linkage Pairs Reference Fixups:\n"
msgstr " Länkning Par Referens Fixar:\n"
-#: vms-alpha.c:7754
+#: vms-alpha.c:8684
#, c-format
msgid " Change Protection (%u entries):\n"
msgstr " Ändringsskydd (%u poster):\n"
-#: vms-alpha.c:7759
+#: vms-alpha.c:8693
#, c-format
msgid " base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x "
msgstr " bas: 0x%08x %08x, storlek: 0x%08x, prot: 0x%08x "
#. FIXME: we do not yet support relocatable link. It is not obvious
#. how to do it for debug infos.
-#: vms-alpha.c:8599
+#: vms-alpha.c:9570
msgid "%P: relocatable link is not supported\n"
msgstr "%P: Länk som kan omlokaliseras stöds inte\n"
-#: vms-alpha.c:8669
-msgid "%P: multiple entry points: in modules %B and %B\n"
-msgstr "%P: Flera ingångspunkter: i modulerna %B och %B\n"
+#: vms-alpha.c:9641
+#, c-format
+msgid "%P: multiple entry points: in modules %pB and %pB\n"
+msgstr "%P: flera inmatningspunkter: i modulerna %pB och %pB\n"
-#: vms-lib.c:1444
+#: vms-lib.c:1530
#, c-format
msgid "could not open shared image '%s' from '%s'"
-msgstr "Kunde inte öppna delad avbild â€%s†frÃ¥n â€%sâ€"
+msgstr "kunde inte öppna delad avbild â€%s†frÃ¥n â€%sâ€"
-#: vms-misc.c:360
+#: vms-misc.c:374
msgid "_bfd_vms_output_counted called with zero bytes"
msgstr "_bfd_vms_output_counted anropad med noll byte"
-#: vms-misc.c:365
+#: vms-misc.c:379
msgid "_bfd_vms_output_counted called with too many bytes"
msgstr "_bfd_vms_output_counted called anropad med för många byte"
-#: xcofflink.c:824
+#: xcofflink.c:462
+#, c-format
+msgid "%pB: warning: illegal symbol index %lu in relocs"
+msgstr "%pB: varning: olagligt symbolindex %lu i relocs"
+
+#: xcofflink.c:881
+#, c-format
+msgid "%pB: XCOFF shared object when not producing XCOFF output"
+msgstr "%pB: XCOFF delat objekt när det inte producerar XCOFF-utdata"
+
+#: xcofflink.c:902
#, c-format
-msgid "%s: XCOFF shared object when not producing XCOFF output"
-msgstr "%s: XCOFF delade objekt när inte XCOFF-utdata produceras"
+msgid "%pB: dynamic object with no .loader section"
+msgstr "%pB: dynamiskt objekt utan .loader-avsnitt"
-#: xcofflink.c:845
+#: xcofflink.c:1484
#, c-format
-msgid "%s: dynamic object with no .loader section"
-msgstr "%s: dynamiskt objekt utan någon .loader-sektion"
+msgid "%pB: `%s' has line numbers but no enclosing section"
+msgstr "%pB: `%s' har radnummer men ingen omslutande sektion"
-#: xcofflink.c:1404
-msgid "%B: `%s' has line numbers but no enclosing section"
-msgstr "%B: â€%s†har radnummer, men ingen omslutande sektion"
+#: xcofflink.c:1540
+#, c-format
+msgid "%pB: class %d symbol `%s' has no aux entries"
+msgstr "%pB: klass %d symbolen `%s' har inga aux-poster"
-#: xcofflink.c:1456
-msgid "%B: class %d symbol `%s' has no aux entries"
-msgstr "%B: Klass %d-symbolen â€%s†har inga extraposter"
+#: xcofflink.c:1563
+#, c-format
+msgid "%pB: symbol `%s' has unrecognized csect type %d"
+msgstr "%pB: symbolen `%s' har en okänd csect-typ %d"
-#: xcofflink.c:1478
-msgid "%B: symbol `%s' has unrecognized csect type %d"
-msgstr "%B: Symbolen â€%s†har okänd csect-typ %d"
+#: xcofflink.c:1576
+#, c-format
+msgid "%pB: bad XTY_ER symbol `%s': class %d scnum %d scnlen %<PRId64>"
+msgstr "%pB: fel XTY_ER-symbol `%s': klass %d scnum %d scnlen %<PRId64>"
-#: xcofflink.c:1490
-msgid "%B: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d"
-msgstr "%B: Felaktig XTY_ER-symbol â€%sâ€: klass %d scnum %d scnlen %d"
+#: xcofflink.c:1607
+#, c-format
+msgid "%pB: XMC_TC0 symbol `%s' is class %d scnlen %<PRIu64>"
+msgstr "%pB: XMC_TC0-symbolen `%s' är klass %d scnlen %<PRIu64>"
+
+#: xcofflink.c:1742
+#, c-format
+msgid "%pB: TOC entry `%s' has a R_TLSMLrelocation not targeting itself"
+msgstr "%pB: TOC-post `%s' har en R_TLSML-relokalisering som inte riktar sig till sig själv"
-#: xcofflink.c:1519
-msgid "%B: XMC_TC0 symbol `%s' is class %d scnlen %d"
-msgstr "%B: XMC_TC0-symbol â€%s†är klass %d scnlen %d"
+#: xcofflink.c:1776
+#, c-format
+msgid "%pB: csect `%s' not in enclosing section"
+msgstr "%pB: csect `%s' inte i omslutande sektion"
-#: xcofflink.c:1665
-msgid "%B: csect `%s' not in enclosing section"
-msgstr "%B: csect â€%s†är inte i en omslutande sektion"
+#: xcofflink.c:1885
+#, c-format
+msgid "%pB: misplaced XTY_LD `%s'"
+msgstr "%pB: felplacerad XTY_LD `%s'"
-#: xcofflink.c:1772
-msgid "%B: misplaced XTY_LD `%s'"
-msgstr "%B: Felplacerad XTY_LD â€%sâ€"
+#: xcofflink.c:2228
+#, c-format
+msgid "%pB: reloc %s:%<PRId64> not in csect"
+msgstr "%pB: reloc %s:%<PRId64> inte i sektion"
-#: xcofflink.c:2091
-msgid "%B: reloc %s:%d not in csect"
-msgstr "%B: omlokalisering %s:%d inte i csect"
+#: xcofflink.c:3337
+#, c-format
+msgid "%pB: cannot export internal symbol `%s`."
+msgstr "%pB: kan inte exportera den interna symbolen `%s`."
-#: xcofflink.c:3182
+#: xcofflink.c:3385
#, c-format
msgid "%s: no such symbol"
msgstr "%s: ingen sådan symbol"
-#: xcofflink.c:3287
+#: xcofflink.c:3494
#, c-format
msgid "warning: attempt to export undefined symbol `%s'"
msgstr "varning: försök att exportera odefinierade symbolen â€%sâ€"
-#: xcofflink.c:3666
+#: xcofflink.c:3842
msgid "error: undefined symbol __rtinit"
msgstr "fel: odefinierad symbol __rtinit"
-#: xcofflink.c:4045
-msgid "%B: loader reloc in unrecognized section `%s'"
-msgstr "%B: Laddaromlokalisering i okänd sektion â€%sâ€"
+#: xcofflink.c:4855
+#, c-format
+msgid "%pB: Unable to find a stub csect in rangeof relocation at %#<PRIx64> targeting'%s'"
+msgstr "%pB: Det går inte att hitta en stub csect i rangeof relocation vid %#<PRIx64> targeting'%s'"
-#: xcofflink.c:4056
-msgid "%B: `%s' in loader reloc but not loader sym"
-msgstr "%B: â€%s†i laddaromlokalisering men inte laddarsym"
+#: xcofflink.c:4884
+#, c-format
+msgid "%pB: Cannot create stub entry '%s'"
+msgstr "%pB: Det går inte att skapa stubbposten '%s'"
-#: xcofflink.c:4072
-msgid "%B: loader reloc in read-only section %A"
-msgstr "%B: Laddaromlokalisering i skrivskyddad sektion %A"
+#: xcofflink.c:5004
+msgid "TOC overflow during stub generation; try -mminimal-toc when compiling"
+msgstr "TOC-överflöd vid generering av stubbar; prova -mminimal-toc vid kompilering"
-#: xcofflink.c:5094
+#: xcofflink.c:5072
#, c-format
-msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling"
-msgstr "TOC ger överspill: 0x%lx > 0x10000; prova -mminimal-toc vid kompilering"
+msgid "%pB: loader reloc in unrecognized section `%s'"
+msgstr "%pB: laddaren reloc i ett okänt avsnitt `%s'"
-#: peigen.c:1009 pepigen.c:1009 pex64igen.c:1009
+#: xcofflink.c:5084
#, c-format
-msgid "%s: line number overflow: 0x%lx > 0xffff"
-msgstr "%s: radnummer ger överspill: 0x%lx > 0xffff"
+msgid "%pB: `%s' in loader reloc but not loader sym"
+msgstr "%pB: `%s' i laddaren reloc men inte i laddaren sym"
-#: peigen.c:1036 pepigen.c:1036 pex64igen.c:1036
+#: xcofflink.c:5101
+#, c-format
+msgid "%pB: loader reloc in read-only section %pA"
+msgstr "%pB: laddare reloc i skrivskyddat avsnitt %pA"
+
+#: xcofflink.c:6180
+#, c-format
+msgid "TOC overflow: %#<PRIx64> > 0x10000; try -mminimal-toc when compiling"
+msgstr "TOC-överflöd: %#<PRIx64> > 0x10000; prova -mminimal-toc vid kompilering"
+
+#: xcofflink.c:7296
+#, c-format
+msgid "Unable to link input file: %s"
+msgstr "Det går inte att länka inmatningsfilen: %s"
+
+#: xtensa-dynconfig.c:60
+msgid "Unable to load DLL."
+msgstr "Det går inte att ladda DLL."
+
+#: xtensa-dynconfig.c:86
+#, c-format
+msgid "%s is defined but could not be loaded: %s"
+msgstr "%s är definierad men kunde inte laddas: %s"
+
+#: xtensa-dynconfig.c:102
+#, c-format
+msgid "%s is loaded but symbol \"%s\" is not found: %s"
+msgstr "%s har laddats men symbolen \"%s\" finns inte: %s"
+
+#: xtensa-dynconfig.c:115
+#, c-format
+msgid "%s is defined but plugin support is disabled"
+msgstr "%s är definierad men plugin-stödet är inaktiverat"
+
+#. Not fatal, this callback cannot fail.
+#: elfnn-aarch64.c:2878 elfnn-riscv.c:5739
+#, c-format
+msgid "unknown attribute for symbol `%s': 0x%02x"
+msgstr "okänt attribut för symbolen `%s': 0x%02x"
+
+#: elfnn-aarch64.c:5468
+#, c-format
+msgid "%pB: error: erratum 835769 stub out of range (input file too large)"
+msgstr "%pB: fel: erratum 835769 stub utanför intervallet (indatafilen för stor)"
+
+#: elfnn-aarch64.c:5560
+#, c-format
+msgid "%pB: error: erratum 843419 stub out of range (input file too large)"
+msgstr "%pB: fel: erratum 843419 stub utanför intervallet (indatafilen är för stor)"
+
+#: elfnn-aarch64.c:5573
+#, c-format
+msgid "%pB: error: erratum 843419 immediate 0x%<PRIx64> out of range for ADR (input file too large) and --fix-cortex-a53-843419=adr used. Run the linker with --fix-cortex-a53-843419=full instead"
+msgstr "%pB: fel: erratum 843419 immediate 0x%<PRIx64> utanför intervallet för ADR (indatafilen är för stor) och --fix-cortex-a53-843419=adr användes. Kör länkaren med --fix-cortex-a53-843419=full istället"
+
+#: elfnn-aarch64.c:6116
+#, c-format
+msgid "%pB: relocation %s against symbol `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC"
+msgstr "%pB: relokalisering %s mot symbol `%s' som kan binda externt kan inte användas när man skapar ett delat objekt; kompilera om med -fPIC"
+
+#: elfnn-aarch64.c:6136
+#, c-format
+msgid "%pB: conditional branch to undefined symbol `%s' not allowed"
+msgstr "%pB: villkorlig gren till odefinierad symbol `%s' inte tillåten"
+
+#: elfnn-aarch64.c:6224 elfnn-kvx.c:2381
+#, c-format
+msgid "%pB: local symbol descriptor table be NULL when applying relocation %s against local symbol"
+msgstr "%pB: lokal symbolbeskrivartabell är NULL när man använder relokering %s mot lokal symbol"
+
+#: elfnn-aarch64.c:6338 elfnn-aarch64.c:6375
+#, c-format
+msgid "%pB: TLS relocation %s against undefined symbol `%s'"
+msgstr "%pB: TLS-förflyttning %s mot odefinierad symbol `%s'"
+
+#: elfnn-aarch64.c:7366
+msgid "too many GOT entries for -fpic, please recompile with -fPIC"
+msgstr "för många GOT-poster för -fpic, vänligen kompilera om med -fPIC"
+
+#: elfnn-aarch64.c:7394
+msgid "one possible cause of this error is that the symbol is being referenced in the indicated code as if it had a larger alignment than was declared where it was defined"
+msgstr "en möjlig orsak till detta fel är att symbolen refereras till i den angivna koden som om den hade en större alignment än vad som deklarerades där den definierades"
+
+#: elfnn-aarch64.c:7961
+#, c-format
+msgid "%pB: relocation %s against `%s' can not be used when making a shared object"
+msgstr "%pB: omplacering %s mot `%s' kan inte användas när man skapar ett delat objekt"
+
+#: elfnn-aarch64.c:8922
+#, c-format
+msgid "%F%P: %pB: copy relocation against non-copyable protected symbol `%s'\n"
+msgstr "%F%P: %pB: kopieringsflytt mot icke-kopierbar skyddad symbol `%s'\n"
+
+#: elfnn-kvx.c:929
+msgid "%F%P: Could not assign '%pA' to an output section. Retry without --enable-non-contiguous-regions.\n"
+msgstr "%F%P: Det gick inte att tilldela '%pA' till ett utmatningsavsnitt. Försök igen utan --enable-non-contiguous-regions.\n"
+
+#: elfnn-kvx.c:2126
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): unresolvable %s relocation in section `%s'"
+msgstr "%pB(%pA+%#<PRIx64>): olöslig %s-flytt i avsnitt `%s'"
+
+#: elfnn-kvx.c:2850
+#, c-format
+msgid "%s: Bad ELF id: `%d'"
+msgstr "%s: DÃ¥lig ELF-id: `%d'"
+
+#: elfnn-kvx.c:2905
+#, c-format
+msgid "%s: compiled as 32-bit object and %s is 64-bit"
+msgstr "%s: kompilerat som 32-bitarsobjekt och %s är 64-bitars"
+
+#: elfnn-kvx.c:2908
+#, c-format
+msgid "%s: compiled as 64-bit object and %s is 32-bit"
+msgstr "%s: kompilerat som 64-bitarsobjekt och %s är 32-bitars"
+
+#: elfnn-kvx.c:2910
+#, c-format
+msgid "%s: object size does not match that of target %s"
+msgstr "%s: objektstorleken stämmer inte överens med den hos målet %s"
+
+#. Ignore init flag - it may not be set, despite the flags field
+#. containing valid data.
+#: elfnn-kvx.c:2998
+#, c-format
+msgid "Private flags = 0x%lx : "
+msgstr "Privata flaggor = 0x%lx : "
+
+#: elfnn-kvx.c:3002
+#, c-format
+msgid "Coolidge (kv3) V1 64 bits"
+msgstr "Coolidge (kv3) V1 64 bitar"
+
+#: elfnn-kvx.c:3004
+#, c-format
+msgid "Coolidge (kv3) V2 64 bits"
+msgstr "Coolidge (kv3) V2 64 bitar"
+
+#: elfnn-kvx.c:3006
+#, c-format
+msgid "Coolidge (kv4) V1 64 bits"
+msgstr "Coolidge (kv4) V1 64 bitar"
+
+#: elfnn-kvx.c:3011
+#, c-format
+msgid "Coolidge (kv3) V1 32 bits"
+msgstr "Coolidge (kv3) V1 32 bitar"
+
+#: elfnn-kvx.c:3013
+#, c-format
+msgid "Coolidge (kv3) V2 32 bits"
+msgstr "Coolidge (kv3) V2 32 bitar"
+
+#: elfnn-kvx.c:3015
+#, c-format
+msgid "Coolidge (kv4) V1 32 bits"
+msgstr "Coolidge (kv4) V1 32 bitar"
+
+#: elfnn-kvx.c:3847
+#, c-format
+msgid "relocation against `%s' has faulty GOT type "
+msgstr "omlokalisering mot `%s' har felaktig GOT-typ "
+
+#: elfnn-loongarch.c:294 elfnn-loongarch.c:346
+#, c-format
+msgid "%#<PRIx64> invaild imm"
+msgstr "%#<PRIx64> invaild imm"
+
+#: elfnn-loongarch.c:528 elfnn-riscv.c:4182
+#, c-format
+msgid ""
+"%pB: ABI is incompatible with that of the selected emulation:\n"
+" target emulation `%s' does not match `%s'"
+msgstr ""
+"%pB: ABI är inkompatibel med den valda emuleringens ABI:\n"
+" målemuleringen `%s' matchar inte `%s'"
+
+#: elfnn-loongarch.c:583
+#, c-format
+msgid "%pB: can't link different ABI object."
+msgstr "%pB: kan inte länka olika ABI-objekt."
+
+#: elfnn-loongarch.c:726
+msgid "Internal error: unreachable."
+msgstr "Internt fel: ej nåbar."
+
+#: elfnn-loongarch.c:906
+#, c-format
+msgid "%pB:(%pA+%#lx): relocation %s against `%s` can not be used when making %s; recompile with %s%s"
+msgstr "%pB:(%pA+%#lx): relokalisering %s mot `%s` kan inte användas när %s skapas; kompilera om med %s%s"
+
+#: elfnn-loongarch.c:910
+msgid " and check the symbol visibility"
+msgstr " och kontrollera symbolens synlighet"
+
+#: elfnn-loongarch.c:1036
+#, c-format
+msgid "%pB: stack based reloc type (%u) is not supported with -z pack-relative-relocs"
+msgstr "%pB: stackbaserad reloc-typ (%u) stöds inte med -z pack-relative-relocs"
+
+#: elfnn-loongarch.c:1231
+#, c-format
+msgid "%pB: relocation R_LARCH_32 against non-absolute symbol `%s' cannot be used in ELFCLASS64 when making a shared object or PIE"
+msgstr "%pB: omlokalisering R_LARCH_32 mot icke-absolut symbol `%s' kan inte användas i ELFCLASS64 när man skapar ett delat objekt eller PIE"
+
+#: elfnn-loongarch.c:1296
+#, c-format
+msgid "%pB: R_LARCH_ALIGN with offset %<PRId64> not aligned to instruction boundary"
+msgstr "%pB: R_LARCH_ALIGN med offset %<PRId64> inte anpassad till instruktionsgränsen"
+
+#: elfnn-loongarch.c:4174
+msgid "cannot resolve R_LARCH_PCREL20_S2 against undefined weak symbol with addend out of [-2048, 2048)"
+msgstr "kan inte lösa R_LARCH_PCREL20_S2 mot odefinierad svag symbol med addend utanför [-2048, 2048]."
+
+#: elfnn-loongarch.c:4684
+msgid "recompile with 'gcc -mno-relax' or 'as -mno-relax' or 'ld --no-relax'"
+msgstr "kompilera om med 'gcc -mno-relax' eller 'as -mno-relax' eller 'ld --no-relax'"
+
+#: elfnn-loongarch.c:5301 elfnn-riscv.c:4967
+#, c-format
+msgid "%pB(%pA+%#<PRIx64>): %<PRId64> bytes required for alignment to %<PRId64>-byte boundary, but only %<PRId64> present"
+msgstr "%pB(%pA+%#<PRIx64>): %<PRId64> byte krävs för anpassning till %<PRId64>-bytegräns, men endast %<PRId64> finns"
+
+#: elfnn-riscv.c:329 elfnn-riscv.c:364
+#, c-format
+msgid "%pB: warning: RVE PLT generation not supported"
+msgstr "%pB: varning: RVE PLT-generering stöds inte"
+
+#: elfnn-riscv.c:927
+#, c-format
+msgid "%pB: relocation %s against absolute symbol `%s' can not be used when making a shared object"
+msgstr "%pB: relokering %s mot absolut symbol `%s' kan inte användas när man skapar ett delat objekt"
+
+#: elfnn-riscv.c:969
+#, c-format
+msgid "%pB: relocation %s against non-absolute symbol `%s' can not be used in RV32 when making a shared object"
+msgstr "%pB: relokering %s mot icke-absolut symbol `%s' kan inte användas i RV32 när man skapar ett delat objekt"
+
+#: elfnn-riscv.c:1898
+#, c-format
+msgid "final size of uleb128 value at offset 0x%lx in %pA from %pB exceeds available space"
+msgstr "den slutliga storleken på uleb128-värdet med offset 0x%lx i %pA från %pB överskrider tillgängligt utrymme"
+
+#: elfnn-riscv.c:2140
+#, c-format
+msgid "%pcrel_lo missing matching %pcrel_hi"
+msgstr "%pcrel_lo saknar matchning %pcrel_hi"
+
+#: elfnn-riscv.c:2143
+#, c-format
+msgid "%pcrel_lo with addend isn't allowed for R_RISCV_GOT_HI20"
+msgstr "%pcrel_lo med addend är inte tillåtet för R_RISCV_GOT_HI20"
+
+#. Check the overflow when adding reloc addend.
+#: elfnn-riscv.c:2148
+#, c-format
+msgid "%%pcrel_lo overflow with an addend, the value of %%pcrel_hi is 0x%<PRIx64> without any addend, but may be 0x%<PRIx64> after adding the %%pcrel_lo addend"
+msgstr "%%pcrel_lo överflödar med ett addend, värdet på %%pcrel_hi är 0x%<PRIx64> utan något addend, men kan vara 0x%<PRIx64> efter att ha lagt till %%pcrel_lo addend"
+
+#: elfnn-riscv.c:2156
+#, c-format
+msgid "%pcrel_lo overflow with an addend"
+msgstr "%pcrel_lo överflöd med ett addendum"
+
+#: elfnn-riscv.c:2639
+#, c-format
+msgid "%pB: warning: R_RISCV_SUB_ULEB128 with non-zero addend, please rebuild by binutils 2.42 or up"
+msgstr "%pB: varning: R_RISCV_SUB_ULEB128 med icke-noll addend, vänligen bygg om med binutils 2.42 eller senare"
+
+#: elfnn-riscv.c:2719
+msgid "The addend isn't allowed for R_RISCV_GOT_HI20"
+msgstr "Addendumet är inte tillåtet för R_RISCV_GOT_HI20"
+
+#. PR 28509, when generating the shared object, these
+#. referenced symbols may bind externally, which means
+#. they will be exported to the dynamic symbol table,
+#. and are preemptible by default. These symbols cannot
+#. be referenced by the non-pic relocations, like
+#. R_RISCV_JAL and R_RISCV_RVC_JUMP relocations.
+#.
+#. However, consider that linker may relax the R_RISCV_CALL
+#. relocations to R_RISCV_JAL or R_RISCV_RVC_JUMP, if
+#. these relocations are relocated to the plt entries,
+#. then we won't report error for them.
+#.
+#. Perhaps we also need the similar checks for the
+#. R_RISCV_BRANCH and R_RISCV_RVC_BRANCH relocations.
+#: elfnn-riscv.c:2820
+#, c-format
+msgid "%%X%%P: relocation %s against `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC\n"
+msgstr "%%X%%P: relokalisering %s mot `%s' som kan binda externt kan inte användas när man skapar ett delat objekt; kompilera om med -fPIC\n"
+
+#: elfnn-riscv.c:2902
+#, c-format
+msgid "%pcrel_lo section symbol with an addend"
+msgstr "%pcrel_lo sektionssymbol med ett addendum"
+
+#: elfnn-riscv.c:2923
+#, c-format
+msgid "%tlsdesc_lo with addend"
+msgstr "%tlsdesc_lo med addendum"
+
+#: elfnn-riscv.c:3156
+#, c-format
+msgid "%%X%%P: unresolvable %s relocation against symbol `%s'\n"
+msgstr "%%X%%P: olöslig %s omplacering mot symbolen `%s'\n"
+
+#: elfnn-riscv.c:3191
+msgid "%X%P: internal error: out of range error\n"
+msgstr "%X%P: internt fel: fel utanför intervallet\n"
+
+#: elfnn-riscv.c:3196
+msgid "%X%P: internal error: unsupported relocation error\n"
+msgstr "%X%P: internt fel: fel på omlokalisering som inte stöds\n"
+
+#: elfnn-riscv.c:3202
+msgid "dangerous relocation error"
+msgstr "farligt fel vid omlokalisering"
+
+#: elfnn-riscv.c:3208
+msgid "%X%P: internal error: unknown error\n"
+msgstr "%X%P: internt fel: okänt fel\n"
+
+#: elfnn-riscv.c:3785
+#, c-format
+msgid "error: %pB: corrupted ISA string '%s'. First letter should be 'i' or 'e' but got '%s'"
+msgstr "fel: %pB: ISA-strängen \"%s\" är skadad. Första bokstaven borde vara 'i' eller 'e' men fick '%s'"
+
+#: elfnn-riscv.c:3828
+#, c-format
+msgid "error: %pB: mis-matched ISA string to merge '%s' and '%s'"
+msgstr "fel: %pB: felmatchad ISA-sträng för att slå samman \"%s\" och \"%s"
+
+#: elfnn-riscv.c:3965
+#, c-format
+msgid "error: %pB: ISA string of input (%s) doesn't match output (%s)"
+msgstr "error: %pB: ISA-strängen i indata (%s) stämmer inte överens med utdata (%s)"
+
+#: elfnn-riscv.c:3985
+#, c-format
+msgid "error: %pB: XLEN of input (%u) doesn't match output (%u)"
+msgstr "fel: %pB: XLEN för indata (%u) stämmer inte överens med utdata (%u)"
+
+#: elfnn-riscv.c:3993
+#, c-format
+msgid "error: %pB: unsupported XLEN (%u), you might be using wrong emulation"
+msgstr "fel: %pB: XLEN stöds inte (%u), du kanske använder fel emulering"
+
+#: elfnn-riscv.c:4113
+msgid "warning: privileged spec version 1.9.1 can not be linked with other spec versions"
+msgstr "varning: privilegierad spec version 1.9.1 kan inte länkas med andra spec versioner"
+
+#: elfnn-riscv.c:4141
+#, c-format
+msgid "error: %pB use %u-byte stack aligned but the output use %u-byte stack aligned"
+msgstr "fel: %pB använder %u-byte stack aligned men utdata använder %u-byte stack aligned"
+
+#: elfnn-riscv.c:4238
+#, c-format
+msgid "%pB: can't link %s modules with %s modules"
+msgstr "%pB: kan inte länka %s moduler med %s moduler"
+
+#: elfnn-riscv.c:4248
+#, c-format
+msgid "%pB: can't link RVE with other target"
+msgstr "%pB: kan inte länka RVE med annat mål"
+
+#: elfnn-riscv.c:4272
+#, c-format
+msgid "warning: %pB: unknown RISCV ABI object attribute %d"
+msgstr "varning: %pB: okänt RISCV ABI-objektattribut %d"
+
+#: elfnn-riscv.c:969
+#, c-format
+msgid "%pB: relocation %s against non-absolute symbol `%s' can not be used in RV64 when making a shared object"
+msgstr "%pB: relokalisering %s mot icke-absolut symbol `%s' kan inte användas i RV64 när man skapar ett delat objekt"
+
+#: peXXigen.c:161
+#, c-format
+msgid "%pB: unable to find name for empty section"
+msgstr "%pB: kan inte hitta namn för tom sektion"
+
+#: peXXigen.c:188
+#, c-format
+msgid "%pB: out of memory creating name for empty section"
+msgstr "%pB: ur minnet för att skapa namn för tom sektion"
+
+#: peXXigen.c:199
+#, c-format
+msgid "%pB: unable to create fake empty section"
+msgstr "%pB: det går inte att skapa en falsk tom sektion"
+
+#: peXXigen.c:924
+#, c-format
+msgid "%pB:%.8s: section below image base"
+msgstr "%pB:%.8s: sektion under bildbasen"
+
+#: peXXigen.c:929
+#, c-format
+msgid "%pB:%.8s: RVA truncated"
+msgstr "%pB:%.8s: RVA avkortad"
+
+#: peXXigen.c:1061
+#, c-format
+msgid "%pB: line number overflow: 0x%lx > 0xffff"
+msgstr "%pB: överskridande av radnummer: 0x%lx > 0xffff"
+
+#: peXXigen.c:1227
msgid "Export Directory [.edata (or where ever we found it)]"
msgstr "Exportkatalog [.edata (eller där vi hittade det)]"
-#: peigen.c:1037 pepigen.c:1037 pex64igen.c:1037
+#: peXXigen.c:1228
msgid "Import Directory [parts of .idata]"
msgstr "Importkatalog [delar av .idata]"
-#: peigen.c:1038 pepigen.c:1038 pex64igen.c:1038
+#: peXXigen.c:1229
msgid "Resource Directory [.rsrc]"
msgstr "Resurskatalog [.rsrc]"
-#: peigen.c:1039 pepigen.c:1039 pex64igen.c:1039
+#: peXXigen.c:1230
msgid "Exception Directory [.pdata]"
msgstr "Undantagskatalog [.pdata]"
-#: peigen.c:1040 pepigen.c:1040 pex64igen.c:1040
+#: peXXigen.c:1231
msgid "Security Directory"
msgstr "Säkerhetskatalog"
-#: peigen.c:1041 pepigen.c:1041 pex64igen.c:1041
+#: peXXigen.c:1232
msgid "Base Relocation Directory [.reloc]"
msgstr "Basomlokaliseringskatalog [.reloc]"
-#: peigen.c:1042 pepigen.c:1042 pex64igen.c:1042
+#: peXXigen.c:1233
msgid "Debug Directory"
msgstr "Felsökningskatalog"
-#: peigen.c:1043 pepigen.c:1043 pex64igen.c:1043
+#: peXXigen.c:1234
msgid "Description Directory"
msgstr "Beskrivningskatalog"
-#: peigen.c:1044 pepigen.c:1044 pex64igen.c:1044
+#: peXXigen.c:1235
msgid "Special Directory"
msgstr "Specialkatalog"
-#: peigen.c:1045 pepigen.c:1045 pex64igen.c:1045
+#: peXXigen.c:1236
msgid "Thread Storage Directory [.tls]"
msgstr "Trådlagringskatalog [.tls]"
-#: peigen.c:1046 pepigen.c:1046 pex64igen.c:1046
+#: peXXigen.c:1237
msgid "Load Configuration Directory"
msgstr "Inläsningskonfigurationskatalog"
-#: peigen.c:1047 pepigen.c:1047 pex64igen.c:1047
+#: peXXigen.c:1238
msgid "Bound Import Directory"
msgstr "Katalog över bundna importer"
-#: peigen.c:1048 pepigen.c:1048 pex64igen.c:1048
+#: peXXigen.c:1239
msgid "Import Address Table Directory"
msgstr "Importadresstabellkatalog"
-#: peigen.c:1049 pepigen.c:1049 pex64igen.c:1049
+#: peXXigen.c:1240
msgid "Delay Import Directory"
msgstr "Katalog över fördröjda importer"
-#: peigen.c:1050 pepigen.c:1050 pex64igen.c:1050
+#: peXXigen.c:1241
msgid "CLR Runtime Header"
msgstr "CLR körtidshuvud"
-#: peigen.c:1051 pepigen.c:1051 pex64igen.c:1051
+#: peXXigen.c:1242
msgid "Reserved"
msgstr "Reserverad"
-#: peigen.c:1111 pepigen.c:1111 pex64igen.c:1111
+#: peXXigen.c:1307
#, c-format
msgid ""
"\n"
@@ -6245,39 +9377,25 @@ msgstr ""
"\n"
"Det finns en importtabell, men sektionen som innehåller den kunde inte hittas\n"
-#: peigen.c:1116 pepigen.c:1116 pex64igen.c:1116
-#, c-format
-msgid ""
-"\n"
-"There is an import table in %s at 0x%lx\n"
-msgstr ""
-"\n"
-"Det finns en importtabell i %s på 0x%lx\n"
-
-#: peigen.c:1158 pepigen.c:1158 pex64igen.c:1158
+#: peXXigen.c:1313
#, c-format
msgid ""
"\n"
-"Function descriptor located at the start address: %04lx\n"
+"There is an import table in %s, but that section has no contents\n"
msgstr ""
"\n"
-"Funktionsidentifierare hittad på startadressen: %04lx\n"
-
-#: peigen.c:1161 pepigen.c:1161 pex64igen.c:1161
-#, c-format
-msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n"
-msgstr "\tkodbas %08lx toc (inläsningsbar/verklig) %08lx/%08lx\n"
+"Det finns en importtabell i %s, men det avsnittet har inget innehåll\n"
-#: peigen.c:1169 pepigen.c:1169 pex64igen.c:1169
+#: peXXigen.c:1320
#, c-format
msgid ""
"\n"
-"No reldata section! Function descriptor not decoded.\n"
+"There is an import table in %s at 0x%lx\n"
msgstr ""
"\n"
-"Ingen reldata-sektion! Funktionsidentifierare avkodades inte.\n"
+"Det finns en importtabell i %s på 0x%lx\n"
-#: peigen.c:1174 pepigen.c:1174 pex64igen.c:1174
+#: peXXigen.c:1326
#, c-format
msgid ""
"\n"
@@ -6286,8 +9404,7 @@ msgstr ""
"\n"
"Importtabellerna (tolkade innehåll i %s-sektion)\n"
-# Vad är thunk?
-#: peigen.c:1177 pepigen.c:1177 pex64igen.c:1177
+#: peXXigen.c:1329
#, c-format
msgid ""
" vma: Hint Time Forward DLL First\n"
@@ -6296,21 +9413,21 @@ msgstr ""
" vma: Tips- Tids- Framåt- DLL- Första\n"
" tabell stämpel kedja namn thunk\n"
-#: peigen.c:1225 pepigen.c:1225 pex64igen.c:1225
+#: peXXigen.c:1378
#, c-format
msgid ""
"\n"
-"\tDLL Name: %s\n"
+"\tDLL Name: %.*s\n"
msgstr ""
"\n"
-"\tDLL-namn: %s\n"
+"\tDLL namn: %.*s\n"
-#: peigen.c:1236 pepigen.c:1236 pex64igen.c:1236
+#: peXXigen.c:1394
#, c-format
-msgid "\tvma: Hint/Ord Member-Name Bound-To\n"
-msgstr "\tvma: Tips/Ordn Medlemsnamn Bundet-till\n"
+msgid "\tvma: Ordinal Hint Member-Name Bound-To\n"
+msgstr "\tvma: Ordinal Hint Medlem-Namn Bound-To\n"
-#: peigen.c:1261 pepigen.c:1261 pex64igen.c:1261
+#: peXXigen.c:1419
#, c-format
msgid ""
"\n"
@@ -6319,7 +9436,12 @@ msgstr ""
"\n"
"Det finns en första thunk, men sektionen som innehåller den kunde inte hittas\n"
-#: peigen.c:1423 pepigen.c:1423 pex64igen.c:1423
+#: peXXigen.c:1469 peXXigen.c:1514
+#, c-format
+msgid "\t<corrupt: 0x%08lx>"
+msgstr "\t<fel: 0x%08lx>"
+
+#: peXXigen.c:1608
#, c-format
msgid ""
"\n"
@@ -6328,16 +9450,25 @@ msgstr ""
"\n"
"Det finns en exporttabell, men sektionen som innehåller den kunde inte hittas\n"
-#: peigen.c:1432 pepigen.c:1432 pex64igen.c:1432
+#: peXXigen.c:1621
+#, c-format
+msgid ""
+"\n"
+"There is an export table in %s, but it is too small (%d)\n"
+msgstr ""
+"\n"
+"Det finns en exporttabell i %s, men den är för liten (%d)\n"
+
+#: peXXigen.c:1629
#, c-format
msgid ""
"\n"
-"There is an export table in %s, but it does not fit into that section\n"
+"There is an export table in %s, but contents cannot be read\n"
msgstr ""
"\n"
-"Det finns en exporttabell i %s, men den passar inte i den sektionen\n"
+"Det finns en exporttabell i %s, men innehållet kan inte läsas\n"
-#: peigen.c:1438 pepigen.c:1438 pex64igen.c:1438
+#: peXXigen.c:1635
#, c-format
msgid ""
"\n"
@@ -6346,7 +9477,7 @@ msgstr ""
"\n"
"Det finns en exporttabell i %s vid 0x%lx\n"
-#: peigen.c:1466 pepigen.c:1466 pex64igen.c:1466
+#: peXXigen.c:1666
#, c-format
msgid ""
"\n"
@@ -6357,67 +9488,67 @@ msgstr ""
"Exporttabellerna (tolkade innehåll i %s-sektion)\n"
"\n"
-#: peigen.c:1470 pepigen.c:1470 pex64igen.c:1470
+#: peXXigen.c:1670
#, c-format
msgid "Export Flags \t\t\t%lx\n"
msgstr "Exportflaggor \t\t\t%lx\n"
-#: peigen.c:1473 pepigen.c:1473 pex64igen.c:1473
+#: peXXigen.c:1673
#, c-format
msgid "Time/Date stamp \t\t%lx\n"
msgstr "Tid-/Datumstämpel \t\t%lx\n"
-#: peigen.c:1476 pepigen.c:1476 pex64igen.c:1476
+#: peXXigen.c:1677
#, c-format
msgid "Major/Minor \t\t\t%d/%d\n"
msgstr "Övre/Undre \t\t\t%d/%d\n"
-#: peigen.c:1479 pepigen.c:1479 pex64igen.c:1479
+#: peXXigen.c:1680
#, c-format
msgid "Name \t\t\t\t"
msgstr "Namn \t\t\t\t"
-#: peigen.c:1485 pepigen.c:1485 pex64igen.c:1485
+#: peXXigen.c:1691
#, c-format
msgid "Ordinal Base \t\t\t%ld\n"
msgstr "Ordningsbas \t\t\t%ld\n"
-#: peigen.c:1488 pepigen.c:1488 pex64igen.c:1488
+#: peXXigen.c:1694
#, c-format
msgid "Number in:\n"
msgstr "Tal i:\n"
-#: peigen.c:1491 pepigen.c:1491 pex64igen.c:1491
+#: peXXigen.c:1697
#, c-format
msgid "\tExport Address Table \t\t%08lx\n"
msgstr "\tExportadresstabell \t\t%08lx\n"
-#: peigen.c:1495 pepigen.c:1495 pex64igen.c:1495
+#: peXXigen.c:1701
#, c-format
msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
msgstr "\t[Namnpekare/Ordningstal]-tabell\t%08lx\n"
-#: peigen.c:1498 pepigen.c:1498 pex64igen.c:1498
+#: peXXigen.c:1704
#, c-format
msgid "Table Addresses\n"
msgstr "Tabelladresser\n"
-#: peigen.c:1501 pepigen.c:1501 pex64igen.c:1501
+#: peXXigen.c:1707
#, c-format
msgid "\tExport Address Table \t\t"
msgstr "\tExportadresstabell \t\t"
-#: peigen.c:1506 pepigen.c:1506 pex64igen.c:1506
+#: peXXigen.c:1712
#, c-format
msgid "\tName Pointer Table \t\t"
msgstr "\tNamnpekartabell \t\t"
-#: peigen.c:1511 pepigen.c:1511 pex64igen.c:1511
+#: peXXigen.c:1717
#, c-format
msgid "\tOrdinal Table \t\t\t"
msgstr "\tOrdningstaltabell \t\t\t"
-#: peigen.c:1525 pepigen.c:1525 pex64igen.c:1525
+#: peXXigen.c:1731
#, c-format
msgid ""
"\n"
@@ -6426,35 +9557,63 @@ msgstr ""
"\n"
"Exportadresstabell -- Ordningsbas %ld\n"
-#: peigen.c:1544 pepigen.c:1544 pex64igen.c:1544
+#: peXXigen.c:1741
+#, c-format
+msgid "\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n"
+msgstr "\tOgiltig exportadresstabell rva (0x%lx) eller postantal (0x%lx)\n"
+
+#: peXXigen.c:1760
msgid "Forwarder RVA"
msgstr "Vidarebefordrar-RVA"
-#: peigen.c:1555 pepigen.c:1555 pex64igen.c:1555
+#: peXXigen.c:1772
msgid "Export RVA"
msgstr "Export-RVA"
-#: peigen.c:1562 pepigen.c:1562 pex64igen.c:1562
+#: peXXigen.c:1779
#, c-format
msgid ""
"\n"
-"[Ordinal/Name Pointer] Table\n"
+"[Ordinal/Name Pointer] Table -- Ordinal Base %ld\n"
msgstr ""
"\n"
-"[Ordningstals-/Namnpekar-]tabell\n"
+"[Ordinal/Namnpekare] Tabell -- Ordinal Bas %ld\n"
+
+#: peXXigen.c:1789
+#, c-format
+msgid "\tInvalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)\n"
+msgstr "\tOgiltig namnpekartabell rva (0x%lx) eller postantal (0x%lx)\n"
+
+#: peXXigen.c:1796
+#, c-format
+msgid "\tInvalid Ordinal Table rva (0x%lx) or entry count (0x%lx)\n"
+msgstr "\tOgiltig Ordinal Table rva (0x%lx) eller entry count (0x%lx)\n"
+
+#: peXXigen.c:1810
+#, c-format
+msgid "\t[%4ld] +base[%4ld] %04lx <corrupt offset: %lx>\n"
+msgstr "\t[%4ld] +bas[%4ld] %04lx <korrupt offset: %lx>\n"
+
+#: peXXigen.c:1867 peXXigen.c:2037
+#, c-format
+msgid "warning, .pdata section size (%ld) is not a multiple of %d\n"
+msgstr "varning, storleken på .pdata-avsnittet (%ld) är inte en multipel av %d\n"
-#: peigen.c:1622 peigen.c:1805 pepigen.c:1622 pepigen.c:1805 pex64igen.c:1622
-#: pex64igen.c:1805
+#: peXXigen.c:1871 peXXigen.c:2041
#, c-format
-msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n"
-msgstr "Varning, storleken på .pdata-sektionen (%ld) är inte en multipel av %d\n"
+msgid ""
+"\n"
+"The Function Table (interpreted .pdata section contents)\n"
+msgstr ""
+"\n"
+"Funktionstabellen (tolkade innehåll från .pdata-sektionen)\n"
-#: peigen.c:1629 pepigen.c:1629 pex64igen.c:1629
+#: peXXigen.c:1874
#, c-format
msgid " vma:\t\t\tBegin Address End Address Unwind Info\n"
msgstr " vma:\t\t\tStartadress Slutadress Ospola information\n"
-#: peigen.c:1631 pepigen.c:1631 pex64igen.c:1631
+#: peXXigen.c:1876
#, c-format
msgid ""
" vma:\t\tBegin End EH EH PrologEnd Exception\n"
@@ -6463,22 +9622,12 @@ msgstr ""
" vma:\t\tStart- Slut- EH- EH- Prologsluts- Undantags-\n"
" \t\tadress adress hanterare data adress mask\n"
-#: peigen.c:1705 pepigen.c:1705 pex64igen.c:1705
+#: peXXigen.c:1889
#, c-format
-msgid " Register save millicode"
-msgstr " Registerspara millikod"
+msgid "Virtual size of .pdata section (%ld) larger than real size (%ld)\n"
+msgstr "Den virtuella storleken på .pdata-avsnittet (%ld) är större än den verkliga storleken (%ld)\n"
-#: peigen.c:1708 pepigen.c:1708 pex64igen.c:1708
-#, c-format
-msgid " Register restore millicode"
-msgstr " Registeråterställ millikod"
-
-#: peigen.c:1711 pepigen.c:1711 pex64igen.c:1711
-#, c-format
-msgid " Glue code sequence"
-msgstr " Klisterkodsekvens"
-
-#: peigen.c:1811 pepigen.c:1811 pex64igen.c:1811
+#: peXXigen.c:2043
#, c-format
msgid ""
" vma:\t\tBegin Prolog Function Flags Exception EH\n"
@@ -6487,7 +9636,7 @@ msgstr ""
" vma:\t\tBörja Prolog Funktionsflaggor Undantag EH\n"
" \t\tAdress Längd Längd 32b exc Handler Data\n"
-#: peigen.c:1937 pepigen.c:1937 pex64igen.c:1937
+#: peXXigen.c:2168
#, c-format
msgid ""
"\n"
@@ -6498,7 +9647,7 @@ msgstr ""
"\n"
"PE-filbasomlokaliseringar (tolkat innehåll i .reloc-sektionen)\n"
-#: peigen.c:1966 pepigen.c:1966 pex64igen.c:1966
+#: peXXigen.c:2197
#, c-format
msgid ""
"\n"
@@ -6507,57 +9656,62 @@ msgstr ""
"\n"
"Virtuell adress: %08lx Områdesstorlek %ld (0x%lx) Antal fixar %ld\n"
-#: peigen.c:1979 pepigen.c:1979 pex64igen.c:1979
+#: peXXigen.c:2215
#, c-format
msgid "\treloc %4d offset %4x [%4lx] %s"
msgstr "\tomlokalisering %4d avstånd %4x [%4lx] %s"
-#: peigen.c:2023 pepigen.c:2023 pex64igen.c:2023
+#: peXXigen.c:2276
#, c-format
-msgid "%*.s Entry: "
-msgstr "%*.s Post: "
+msgid "%03x %*.s Entry: "
+msgstr "%03x %*.s Ingång: "
-#: peigen.c:2043 pepigen.c:2043 pex64igen.c:2043
+#: peXXigen.c:2300
#, c-format
msgid "name: [val: %08lx len %d]: "
msgstr "namn: [vär: %08lx län %d]: "
-#: peigen.c:2054 pepigen.c:2054 pex64igen.c:2054
+#: peXXigen.c:2320
#, c-format
-msgid "<corrupt string length: %#x>"
-msgstr "<korrupt stränglängd: %#x>"
+msgid "<corrupt string length: %#x>\n"
+msgstr "<Korrupt stränglängd: %#x>\n"
-#: peigen.c:2057 pepigen.c:2057 pex64igen.c:2057
+#: peXXigen.c:2330
#, c-format
-msgid "<corrupt string offset: %#lx>"
-msgstr "<korrupt strängförskjutning: %#lx>"
+msgid "<corrupt string offset: %#lx>\n"
+msgstr "<Offset för felaktig sträng: %#lx>\n"
-#: peigen.c:2060 pepigen.c:2060 pex64igen.c:2060
+#: peXXigen.c:2335
#, c-format
msgid "ID: %#08lx"
msgstr "ID: %#08lx"
-#: peigen.c:2063 pepigen.c:2063 pex64igen.c:2063
+#: peXXigen.c:2338
#, c-format
msgid ", Value: %#08lx\n"
msgstr ", Värde: %#08lx\n"
-#: peigen.c:2074 pepigen.c:2074 pex64igen.c:2074
+#: peXXigen.c:2360
#, c-format
-msgid "%*.s Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n"
-msgstr "%*.s Löv: Adr: %#08lx, Storlek: %#08lx, Kodsida: %d\n"
+msgid "%03x %*.s Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n"
+msgstr "%03x %*.s Blad: Addr: %#08lx, Storlek: %#08lx, Kodsida: %d\n"
-#: peigen.c:2116 pepigen.c:2116 pex64igen.c:2116
+#: peXXigen.c:2402
+#, c-format
+msgid "<unknown directory type: %d>\n"
+msgstr "<okänd katalogtyp: %d>\n"
+
+#: peXXigen.c:2410
#, c-format
msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n"
msgstr " Tabell: Char: %d, Tid: %08lx, Ver: %d/%d, Num namn: %d, IDs: %d\n"
-#: peigen.c:2204 pepigen.c:2204 pex64igen.c:2204
+#: peXXigen.c:2498
#, c-format
msgid "Corrupt .rsrc section detected!\n"
msgstr "Felaktig .rsrc-sektion upptäckt!\n"
-#: peigen.c:2220 pepigen.c:2220 pex64igen.c:2220
+#: peXXigen.c:2522
#, c-format
msgid ""
"\n"
@@ -6566,10 +9720,78 @@ msgstr ""
"\n"
"VARNING: Extra data i .rsrc-sektionen - det kommer att ignoreras av Windows:\n"
+#: peXXigen.c:2528
+#, c-format
+msgid " String table starts at offset: %#03x\n"
+msgstr " Strängtabellen börjar vid offset: %#03x\n"
+
+#: peXXigen.c:2531
+#, c-format
+msgid " Resources start at offset: %#03x\n"
+msgstr " Resurserna börjar vid offset: %#03x\n"
+
+#: peXXigen.c:2588
+#, c-format
+msgid ""
+"\n"
+"There is a debug directory, but the section containing it could not be found\n"
+msgstr ""
+"\n"
+"Det finns en debug-katalog, men avsnittet som innehåller den kunde inte hittas\n"
+
+#: peXXigen.c:2594
+#, c-format
+msgid ""
+"\n"
+"There is a debug directory in %s, but that section has no contents\n"
+msgstr ""
+"\n"
+"Det finns en debug-katalog i %s, men det avsnittet har inget innehåll\n"
+
+#: peXXigen.c:2601
+#, c-format
+msgid ""
+"\n"
+"Error: section %s contains the debug data starting address but it is too small\n"
+msgstr ""
+"\n"
+"Fel: sektion %s innehåller debugdatans startadress men den är för liten\n"
+
+#: peXXigen.c:2606
+#, c-format
+msgid ""
+"\n"
+"There is a debug directory in %s at 0x%lx\n"
+"\n"
+msgstr ""
+"\n"
+"Det finns en debug-katalog i %s på 0x%lx\n"
+"\n"
+
+#: peXXigen.c:2613
+#, c-format
+msgid "The debug data size field in the data directory is too big for the section"
+msgstr "Storleksfältet för debugdata i datakatalogen är för stort för avsnittet"
+
+#: peXXigen.c:2618
+#, c-format
+msgid "Type Size Rva Offset\n"
+msgstr "Typ Storlek Rva Offset\n"
+
+#: peXXigen.c:2666
+#, c-format
+msgid "(format %c%c%c%c signature %s age %ld pdb %s)\n"
+msgstr "(format %c%c%c%c signatur %s ålder %ld pdb %s)\n"
+
+#: peXXigen.c:2678
+#, c-format
+msgid "The debug directory size is not a multiple of the debug directory entry size\n"
+msgstr "Debug-katalogens storlek är inte en multipel av debug-katalogens poststorlek\n"
+
#. The MS dumpbin program reportedly ands with 0xff0f before
#. printing the characteristics field. Not sure why. No reason to
#. emulate it here.
-#: peigen.c:2243 pepigen.c:2243 pex64igen.c:2243
+#: peXXigen.c:2762
#, c-format
msgid ""
"\n"
@@ -6578,65 +9800,87 @@ msgstr ""
"\n"
"Karakteristik 0x%x\n"
-#: peigen.c:3194 pepigen.c:3194 pex64igen.c:3194
+#: peXXigen.c:3047
+#, c-format
+msgid "%pB: Data Directory (%lx bytes at %<PRIx64>) extends across section boundary at %<PRIx64>"
+msgstr "%pB: Datakatalog (%lx byte vid %<PRIx64>) sträcker sig över sektionsgränsen vid %<PRIx64>"
+
+#: peXXigen.c:3088
+msgid "failed to update file offsets in debug directory"
+msgstr "misslyckades med att uppdatera filoffsets i debug-katalogen"
+
+#: peXXigen.c:3097
+#, c-format
+msgid "%pB: failed to read debug data section"
+msgstr "%pB: misslyckades med att läsa debugdataavsnittet"
+
+#: peXXigen.c:3900
#, c-format
msgid ".rsrc merge failure: duplicate string resource: %d"
msgstr ".rsrc sammanfogningsfel: dubblerad strängresurs: %d"
-#: peigen.c:3329 pepigen.c:3329 pex64igen.c:3329
+#: peXXigen.c:4035
msgid ".rsrc merge failure: multiple non-default manifests"
msgstr ".rsrc sammanfogningsfel: multipla ej-standard manifest"
-#: peigen.c:3347 pepigen.c:3347 pex64igen.c:3347
+#: peXXigen.c:4053
msgid ".rsrc merge failure: a directory matches a leaf"
msgstr ".rsrc sammanfogningsfel: en katalog matchar ett löv"
-#: peigen.c:3389 pepigen.c:3389 pex64igen.c:3389
+#: peXXigen.c:4095
msgid ".rsrc merge failure: duplicate leaf"
msgstr ".rsrc sammanfogningsfel: dubblerat löv"
-#: peigen.c:3391 pepigen.c:3391 pex64igen.c:3391
+#: peXXigen.c:4100
#, c-format
msgid ".rsrc merge failure: duplicate leaf: %s"
msgstr ".rsrc sammanfogningsfel: dubblerat löv: %s"
-#: peigen.c:3457 pepigen.c:3457 pex64igen.c:3457
-msgid ".rsrc merge failure: dirs with differing characteristics\n"
-msgstr ".rsrc sammanfogningsfel: kataloger med olika karakteristik\n"
+#: peXXigen.c:4167
+msgid ".rsrc merge failure: dirs with differing characteristics"
+msgstr ".rsrc merge failure: dirs med olika egenskaper"
-#: peigen.c:3464 pepigen.c:3464 pex64igen.c:3464
-msgid ".rsrc merge failure: differing directory versions\n"
-msgstr ".rsrc sammanfogningsfel: olika katalogversioner\n"
+#: peXXigen.c:4174
+msgid ".rsrc merge failure: differing directory versions"
+msgstr "Fel vid sammanfogning av .rsrc: olika katalogversioner"
#. Corrupted .rsrc section - cannot merge.
-#: peigen.c:3537 pepigen.c:3537 pex64igen.c:3537
+#: peXXigen.c:4286
#, c-format
-msgid "%s: .rsrc merge failure: corrupt .rsrc section"
-msgstr "%s: .rsrc sammanfogningsfel: felaktigt .rsrc-sektion"
+msgid "%pB: .rsrc merge failure: corrupt .rsrc section"
+msgstr "%pB: Fel i .rsrc-sammanslagning: skadat .rsrc-avsnitt"
-#: peigen.c:3673 pepigen.c:3673 pex64igen.c:3673
-msgid "%B: unable to fill in DataDictionary[1] because .idata$2 is missing"
-msgstr "%B: Kunde inte fylla i DataDictionary[1] eftersom .idata$2 saknas"
+#: peXXigen.c:4294
+#, c-format
+msgid "%pB: .rsrc merge failure: unexpected .rsrc size"
+msgstr "%pB: Fel i .rsrc-sammanslagning: oväntad .rsrc-storlek"
-#: peigen.c:3693 pepigen.c:3693 pex64igen.c:3693
-msgid "%B: unable to fill in DataDictionary[1] because .idata$4 is missing"
-msgstr "%B: Kunde inte fylla i DataDictionary[1] eftersom .data$4 saknas"
+#: peXXigen.c:4433
+#, c-format
+msgid "%pB: unable to fill in DataDictionary[1] because .idata$2 is missing"
+msgstr "%pB: det går inte att fylla i DataDictionary[1] eftersom .idata$2 saknas"
-#: peigen.c:3714 pepigen.c:3714 pex64igen.c:3714
-msgid "%B: unable to fill in DataDictionary[12] because .idata$5 is missing"
-msgstr "%B: Kunde inte fylla i DataDictionary[12] eftersom .idata$5 saknas"
+#: peXXigen.c:4453
+#, c-format
+msgid "%pB: unable to fill in DataDictionary[1] because .idata$4 is missing"
+msgstr "%pB: det går inte att fylla i DataDictionary[1] eftersom .idata$4 saknas"
-#: peigen.c:3734 pepigen.c:3734 pex64igen.c:3734
-msgid "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing"
-msgstr "%B: Kunde inte fylla i DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] eftersom .idata$6 saknas"
+#: peXXigen.c:4474
+#, c-format
+msgid "%pB: unable to fill in DataDictionary[12] because .idata$5 is missing"
+msgstr "%pB: det går inte att fylla i DataDictionary[12] eftersom .idata$5 saknas"
-#: peigen.c:3776 pepigen.c:3776 pex64igen.c:3776
-msgid "%B: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing"
-msgstr "%B: Kunde inte fylla i DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] eftersom .idata$6 saknas"
+#: peXXigen.c:4494
+#, c-format
+msgid "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing"
+msgstr "%pB: det går inte att fylla i DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] eftersom .idata$6 saknas"
-#: peigen.c:3801 pepigen.c:3801 pex64igen.c:3801
-msgid "%B: unable to fill in DataDictionary[9] because __tls_used is missing"
-msgstr "%B: Kunde inte fylla i DataDictionary[9] eftersom __tls_used saknas"
+#: peXXigen.c:4536
+#, c-format
+msgid "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing"
+msgstr "%pB: det går inte att fylla i DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] eftersom .idata$6 saknas"
-#~ msgid "%B: addend -0x%x in relocation %s against symbol `%s' at 0x%lx in section â€%A†is out of range"
-#~ msgstr "%B: adderade -0x%x i omlokalisering %s mot symbolen â€%s†vid 0x%lx i sektionen â€%A†är utanför intervallet"
+#: peXXigen.c:4561
+#, c-format
+msgid "%pB: unable to fill in DataDictionary[9] because __tls_used is missing"
+msgstr "%pB: kan inte fylla i DataDictionary[9] eftersom __tls_used saknas"
diff --git a/bfd/targets.c b/bfd/targets.c
index c2ee917..ee629bb 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -676,9 +676,7 @@ to find an alternative output format that is suitable.
extern const bfd_target aarch64_elf32_be_vec;
extern const bfd_target aarch64_elf32_le_vec;
extern const bfd_target aarch64_elf64_be_vec;
-extern const bfd_target aarch64_elf64_be_cloudabi_vec;
extern const bfd_target aarch64_elf64_le_vec;
-extern const bfd_target aarch64_elf64_le_cloudabi_vec;
extern const bfd_target aarch64_mach_o_vec;
extern const bfd_target aarch64_pei_le_vec;
extern const bfd_target aarch64_pe_le_vec;
@@ -929,7 +927,6 @@ extern const bfd_target wasm32_elf32_vec;
extern const bfd_target x86_64_coff_vec;
extern const bfd_target x86_64_elf32_vec;
extern const bfd_target x86_64_elf64_vec;
-extern const bfd_target x86_64_elf64_cloudabi_vec;
extern const bfd_target x86_64_elf64_fbsd_vec;
extern const bfd_target x86_64_elf64_sol2_vec;
extern const bfd_target x86_64_mach_o_vec;
@@ -987,9 +984,7 @@ static const bfd_target * const _bfd_target_vector[] =
&aarch64_elf32_be_vec,
&aarch64_elf32_le_vec,
&aarch64_elf64_be_vec,
- &aarch64_elf64_be_cloudabi_vec,
&aarch64_elf64_le_vec,
- &aarch64_elf64_le_cloudabi_vec,
&aarch64_mach_o_vec,
&aarch64_pe_le_vec,
&aarch64_pei_le_vec,
@@ -1341,7 +1336,6 @@ static const bfd_target * const _bfd_target_vector[] =
&x86_64_coff_vec,
&x86_64_elf32_vec,
&x86_64_elf64_vec,
- &x86_64_elf64_cloudabi_vec,
&x86_64_elf64_fbsd_vec,
&x86_64_elf64_sol2_vec,
&x86_64_mach_o_vec,
diff --git a/bfd/tekhex.c b/bfd/tekhex.c
index 7e4e698..4ac6116 100644
--- a/bfd/tekhex.c
+++ b/bfd/tekhex.c
@@ -655,7 +655,7 @@ move_section_contents (bfd *abfd,
{
/* Different chunk, so move pointer. */
d = find_chunk (abfd, chunk_number, must_write);
- if (!d)
+ if (!d && must_write)
return false;
prev_number = chunk_number;
}
diff --git a/bfd/version.h b/bfd/version.h
index 89f11ee..f95cba2 100644
--- a/bfd/version.h
+++ b/bfd/version.h
@@ -16,7 +16,7 @@
In releases, the date is not included in either version strings or
sonames. */
-#define BFD_VERSION_DATE 20250807
+#define BFD_VERSION_DATE 20250926
#define BFD_VERSION @bfd_version@
#define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@
#define REPORT_BUGS_TO @report_bugs_to@
diff --git a/bfd/vms-alpha.c b/bfd/vms-alpha.c
index c4b2484..36cdac6 100644
--- a/bfd/vms-alpha.c
+++ b/bfd/vms-alpha.c
@@ -467,21 +467,12 @@ static bool
_bfd_vms_slurp_eihd (bfd *abfd, unsigned int *eisd_offset,
unsigned int *eihs_offset)
{
- unsigned int imgtype, size;
+ unsigned int imgtype;
bfd_vma symvva;
struct vms_eihd *eihd = (struct vms_eihd *)PRIV (recrd.rec);
vms_debug2 ((8, "_bfd_vms_slurp_eihd\n"));
- /* PR 21813: Check for an undersized record. */
- if (PRIV (recrd.buf_size) < sizeof (* eihd))
- {
- _bfd_error_handler (_("corrupt EIHD record - size is too small"));
- bfd_set_error (bfd_error_bad_value);
- return false;
- }
-
- size = bfd_getl32 (eihd->size);
imgtype = bfd_getl32 (eihd->imgtype);
if (imgtype == EIHD__K_EXE || imgtype == EIHD__K_LIM)
@@ -501,10 +492,8 @@ _bfd_vms_slurp_eihd (bfd *abfd, unsigned int *eisd_offset,
*eihs_offset = bfd_getl32 (eihd->symdbgoff);
vms_debug2 ((4, "EIHD size %d imgtype %d symvva 0x%lx eisd %d eihs %d\n",
- size, imgtype, (unsigned long)symvva,
+ PRIV (recrd.rec_size), imgtype, (unsigned long) symvva,
*eisd_offset, *eihs_offset));
- (void) size;
-
return true;
}
@@ -903,65 +892,64 @@ static bool
_bfd_vms_slurp_ehdr (bfd *abfd)
{
unsigned char *ptr;
- unsigned char *vms_rec;
- unsigned char *end;
+ unsigned int len, slen;
int subtype;
- vms_rec = PRIV (recrd.rec);
- /* PR 17512: file: 62736583. */
- end = PRIV (recrd.buf) + PRIV (recrd.buf_size);
-
vms_debug2 ((2, "HDR/EMH\n"));
- subtype = bfd_getl16 (vms_rec + 4);
+ ptr = PRIV (recrd.rec);
+ len = PRIV (recrd.rec_size);
+ if (len < 6)
+ goto fail;
+
+ subtype = bfd_getl16 (ptr + 4);
vms_debug2 ((3, "subtype %d\n", subtype));
+ ptr += 6;
+ len -= 6;
switch (subtype)
{
case EMH__C_MHD:
/* Module header. */
- if (vms_rec + 21 >= end)
- goto fail;
- PRIV (hdr_data).hdr_b_strlvl = vms_rec[6];
- PRIV (hdr_data).hdr_l_arch1 = bfd_getl32 (vms_rec + 8);
- PRIV (hdr_data).hdr_l_arch2 = bfd_getl32 (vms_rec + 12);
- PRIV (hdr_data).hdr_l_recsiz = bfd_getl32 (vms_rec + 16);
- if ((vms_rec + 20 + vms_rec[20] + 1) >= end)
+ if (len < 15)
goto fail;
+ PRIV (hdr_data).hdr_b_strlvl = *ptr;
+ PRIV (hdr_data).hdr_l_arch1 = bfd_getl32 (ptr + 2);
+ PRIV (hdr_data).hdr_l_arch2 = bfd_getl32 (ptr + 6);
+ PRIV (hdr_data).hdr_l_recsiz = bfd_getl32 (ptr + 10);
+ ptr += 14;
+ len -= 14;
PRIV (hdr_data).hdr_t_name
- = _bfd_vms_save_counted_string (abfd, vms_rec + 20, vms_rec[20]);
- ptr = vms_rec + 20 + vms_rec[20] + 1;
- if ((ptr + *ptr + 1) >= end)
+ = _bfd_vms_save_counted_string (abfd, ptr, len);
+ slen = *ptr + 1;
+ if (len <= slen)
goto fail;
+ ptr += slen;
+ len -= slen;
PRIV (hdr_data).hdr_t_version
- = _bfd_vms_save_counted_string (abfd, ptr, *ptr);
- ptr += *ptr + 1;
- if (ptr + 17 >= end)
+ = _bfd_vms_save_counted_string (abfd, ptr, len);
+ slen = *ptr + 1;
+ if (len < slen + 17)
goto fail;
+ ptr += slen;
PRIV (hdr_data).hdr_t_date
= _bfd_vms_save_sized_string (abfd, ptr, 17);
break;
case EMH__C_LNM:
- if (vms_rec + PRIV (recrd.rec_size - 6) > end)
- goto fail;
PRIV (hdr_data).hdr_c_lnm
- = _bfd_vms_save_sized_string (abfd, vms_rec, PRIV (recrd.rec_size - 6));
+ = _bfd_vms_save_sized_string (abfd, ptr, len);
break;
case EMH__C_SRC:
- if (vms_rec + PRIV (recrd.rec_size - 6) > end)
- goto fail;
PRIV (hdr_data).hdr_c_src
- = _bfd_vms_save_sized_string (abfd, vms_rec, PRIV (recrd.rec_size - 6));
+ = _bfd_vms_save_sized_string (abfd, ptr, len);
break;
case EMH__C_TTL:
- if (vms_rec + PRIV (recrd.rec_size - 6) > end)
- goto fail;
PRIV (hdr_data).hdr_c_ttl
- = _bfd_vms_save_sized_string (abfd, vms_rec, PRIV (recrd.rec_size - 6));
+ = _bfd_vms_save_sized_string (abfd, ptr, len);
break;
case EMH__C_CPR:
@@ -1616,37 +1604,43 @@ static bool
image_write (bfd *abfd, unsigned char *ptr, unsigned int size)
{
asection *sec = PRIV (image_section);
- size_t off = PRIV (image_offset);
- /* Check bounds. */
- if (off > sec->size
- || size > sec->size - off)
+ if ((sec->flags & SEC_IN_MEMORY) != 0
+ && sec->contents == NULL)
+ /* Not yet allocated. Just increment size. */
+ ;
+ else
{
- bfd_set_error (bfd_error_bad_value);
- return false;
- }
+ size_t off = PRIV (image_offset);
+ /* Check bounds. */
+ if (off > sec->size
+ || size > sec->size - off)
+ {
+ bfd_set_error (bfd_error_bad_value);
+ return false;
+ }
#if VMS_DEBUG
- _bfd_vms_debug (8, "image_write from (%p, %d) to (%ld)\n", ptr, size,
- (long) off);
+ _bfd_vms_debug (8, "image_write from (%p, %d) to (%ld)\n", ptr, size,
+ (long) off);
#endif
- if (PRIV (image_section)->contents != NULL)
- memcpy (sec->contents + off, ptr, size);
- else
- {
- unsigned int i;
- for (i = 0; i < size; i++)
- if (ptr[i] != 0)
- {
- bfd_set_error (bfd_error_bad_value);
- return false;
- }
- }
-
+ if (sec->contents != NULL)
+ memcpy (sec->contents + off, ptr, size);
+ else
+ {
+ unsigned int i;
+ for (i = 0; i < size; i++)
+ if (ptr[i] != 0)
+ {
+ bfd_set_error (bfd_error_bad_value);
+ return false;
+ }
+ }
#if VMS_DEBUG
- _bfd_hexdump (9, ptr, size, 0);
+ _bfd_hexdump (9, ptr, size, 0);
#endif
+ }
PRIV (image_offset) += size;
return true;
@@ -1869,11 +1863,16 @@ alpha_vms_fix_sec_rel (bfd *abfd, struct bfd_link_info *info,
unsigned int rel, bfd_vma vma)
{
asection *sec;
+ unsigned int sec_indx;
if (PRIV (sections) == NULL)
return 0;
- sec = PRIV (sections)[rel & RELC_MASK];
+ sec_indx = rel & RELC_MASK;
+ if (sec_indx >= PRIV (section_count))
+ return 0;
+
+ sec = PRIV (sections)[sec_indx];
if (info)
{
@@ -2660,7 +2659,7 @@ _bfd_vms_slurp_eeom (bfd *abfd)
vms_debug2 ((2, "EEOM\n"));
/* PR 21813: Check for an undersized record. */
- if (PRIV (recrd.buf_size) < sizeof (* eeom))
+ if (PRIV (recrd.rec_size) < 10)
{
_bfd_error_handler (_("corrupt EEOM record - size is too small"));
bfd_set_error (bfd_error_bad_value);
@@ -2677,7 +2676,7 @@ _bfd_vms_slurp_eeom (bfd *abfd)
}
PRIV (eom_data).eom_has_transfer = false;
- if (PRIV (recrd.rec_size) > 10)
+ if (PRIV (recrd.rec_size) >= sizeof (*eeom))
{
PRIV (eom_data).eom_has_transfer = true;
PRIV (eom_data).eom_b_tfrflg = eeom->tfrflg;
@@ -2841,7 +2840,7 @@ alpha_vms_object_p (bfd *abfd)
/* PR 21813: Check for a truncated record. */
/* PR 17512: file: 7d7c57c2. */
- if (PRIV (recrd.rec_size) < sizeof (struct vms_eihd))
+ if (PRIV (recrd.rec_size) < EIHD__C_LENGTH)
goto err_wrong_format;
if (bfd_seek (abfd, 0, SEEK_SET))
@@ -7504,6 +7503,8 @@ evax_bfd_print_dst (struct bfd *abfd, unsigned int dst_size, FILE *file)
/* xgettext:c-format */
fprintf (file, _(" type: %3u, len: %3u (at 0x%08x): "),
type, len, off);
+ /* !!! The length is short by one! */
+ len++;
if (len > dst_size)
len = dst_size;
if (len < sizeof (dsth))
@@ -8043,6 +8044,7 @@ static void
evax_bfd_print_image (bfd *abfd, FILE *file)
{
struct vms_eihd eihd;
+ unsigned int rec_size, size;
const char *name;
unsigned int val;
unsigned int eiha_off;
@@ -8062,15 +8064,17 @@ evax_bfd_print_image (bfd *abfd, FILE *file)
unsigned int eihvn_off;
if (bfd_seek (abfd, 0, SEEK_SET)
- || bfd_read (&eihd, sizeof (eihd), abfd) != sizeof (eihd))
+ || (rec_size = bfd_read (&eihd, sizeof (eihd), abfd)) < EIHD__C_LENGTH)
{
fprintf (file, _("cannot read EIHD\n"));
return;
}
+ size = bfd_getl32 (eihd.size);
/* xgettext:c-format */
fprintf (file, _("EIHD: (size: %u, nbr blocks: %u)\n"),
- (unsigned)bfd_getl32 (eihd.size),
- (unsigned)bfd_getl32 (eihd.hdrblkcnt));
+ size, (unsigned) bfd_getl32 (eihd.hdrblkcnt));
+ if (size > rec_size)
+ size = rec_size;
/* xgettext:c-format */
fprintf (file, _(" majorid: %u, minorid: %u\n"),
(unsigned)bfd_getl32 (eihd.majorid),
@@ -8172,7 +8176,9 @@ evax_bfd_print_image (bfd *abfd, FILE *file)
(unsigned)bfd_getl32 (eihd.symvect_size));
fprintf (file, _(" BPAGE: %u"),
(unsigned)bfd_getl32 (eihd.virt_mem_block_size));
- if (val & (EIHD__M_OMV_READY | EIHD__M_EXT_BIND_SECT))
+ if (size >= (offsetof (struct vms_eihd, noopt_psect_off)
+ + sizeof (eihd.noopt_psect_off))
+ && (val & (EIHD__M_OMV_READY | EIHD__M_EXT_BIND_SECT)))
{
eihef_off = bfd_getl32 (eihd.ext_fixup_off);
eihnp_off = bfd_getl32 (eihd.noopt_psect_off);
@@ -8180,7 +8186,9 @@ evax_bfd_print_image (bfd *abfd, FILE *file)
fprintf (file, _(", ext fixup offset: %u, no_opt psect off: %u"),
eihef_off, eihnp_off);
}
- fprintf (file, _(", alias: %u\n"), (unsigned)bfd_getl16 (eihd.alias));
+ if (size >= offsetof (struct vms_eihd, alias) + sizeof (eihd.alias))
+ fprintf (file, _(", alias: %u"), (unsigned) bfd_getl16 (eihd.alias));
+ fprintf (file, "\n");
if (eihvn_off != 0)
{
@@ -8935,13 +8943,13 @@ alpha_vms_add_fixup_lr (struct bfd_link_info *info ATTRIBUTE_UNUSED,
static bool
alpha_vms_add_lw_reloc (struct bfd_link_info *info ATTRIBUTE_UNUSED)
{
- return false;
+ return true;
}
static bool
alpha_vms_add_qw_reloc (struct bfd_link_info *info ATTRIBUTE_UNUSED)
{
- return false;
+ return true;
}
static struct bfd_hash_entry *
@@ -9652,6 +9660,7 @@ alpha_vms_bfd_final_link (bfd *abfd, struct bfd_link_info *info)
bfd_vma tfradr = PRIV2 (startbfd, eom_data).eom_l_tfradr;
asection *sec;
+ BFD_ASSERT (ps_idx < PRIV2 (startbfd, section_count));
sec = PRIV2 (startbfd, sections)[ps_idx];
bfd_set_start_address
diff --git a/bfd/vms-lib.c b/bfd/vms-lib.c
index 659832c..1206d7e 100644
--- a/bfd/vms-lib.c
+++ b/bfd/vms-lib.c
@@ -1304,6 +1304,10 @@ vms_lib_bopen (bfd *el, file_ptr filepos)
el->iostream = vec;
el->iovec = &vms_lib_iovec;
+ /* Force the next rewind to call vms_lib_bseek even though it will
+ appear to bfd_seek that the file position is already at 0. */
+ el->last_io = bfd_io_force;
+
/* File length is not known. */
vec->file_len = -1;
diff --git a/bfd/xtensa-dynconfig.c b/bfd/xtensa-dynconfig.c
index 89053f7..eb04b9d 100644
--- a/bfd/xtensa-dynconfig.c
+++ b/bfd/xtensa-dynconfig.c
@@ -69,43 +69,44 @@ const void *xtensa_load_config (const char *name ATTRIBUTE_UNUSED,
const void *no_name_def ATTRIBUTE_UNUSED)
{
static int init;
-#if BFD_SUPPORTS_PLUGINS
- static void *handle;
- void *p;
-
- if (!init)
+ if (bfd_plugin_enabled ())
{
- const char *path = getenv (CONFIG_ENV_NAME);
+ static void *handle;
+ void *p;
- init = 1;
- if (!path)
- return no_plugin_def;
- handle = dlopen (path, RTLD_LAZY);
- if (!handle)
+ if (!init)
{
- _bfd_error_handler (_("%s is defined but could not be loaded: %s"),
- CONFIG_ENV_NAME, dlerror ());
- abort ();
+ const char *path = getenv (CONFIG_ENV_NAME);
+
+ init = 1;
+ if (!path)
+ return no_plugin_def;
+ handle = dlopen (path, RTLD_LAZY);
+ if (!handle)
+ {
+ _bfd_error_handler (_("%s is defined but could not be loaded: %s"),
+ CONFIG_ENV_NAME, dlerror ());
+ abort ();
+ }
+ }
+ else if (!handle)
+ {
+ return no_plugin_def;
}
- }
- else if (!handle)
- {
- return no_plugin_def;
- }
- p = dlsym (handle, name);
- if (!p)
- {
- if (no_name_def)
- return no_name_def;
+ p = dlsym (handle, name);
+ if (!p)
+ {
+ if (no_name_def)
+ return no_name_def;
- _bfd_error_handler (_("%s is loaded but symbol \"%s\" is not found: %s"),
- CONFIG_ENV_NAME, name, dlerror ());
- abort ();
+ _bfd_error_handler (_("%s is loaded but symbol \"%s\" is not found: %s"),
+ CONFIG_ENV_NAME, name, dlerror ());
+ abort ();
+ }
+ return p;
}
- return p;
-#else
- if (!init)
+ else if (!init)
{
const char *path = getenv (CONFIG_ENV_NAME);
@@ -118,7 +119,6 @@ const void *xtensa_load_config (const char *name ATTRIBUTE_UNUSED,
}
}
return no_plugin_def;
-#endif
}
XTENSA_CONFIG_INSTANCE_LIST;
diff --git a/binutils/MAINTAINERS b/binutils/MAINTAINERS
index 14c24af..59f1603 100644
--- a/binutils/MAINTAINERS
+++ b/binutils/MAINTAINERS
@@ -87,10 +87,8 @@ responsibility among the other maintainers.
FRV Alexandre Oliva <aoliva@sourceware.org>
GOLD Ian Lance Taylor <iant@google.com>
GOLD Cary Coutant <ccoutant@gmail.com>
- gprofng Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
HPPA Dave Anglin <dave.anglin@bell.net>
HPPA elf64 Jeff Law <law@redhat.com> [Basic maintainance only]
- IA-64 Jim Wilson <wilson@tuliptree.org>
ix86 H.J. Lu <hjl.tools@gmail.com>
ix86 COFF DJ Delorie <dj@redhat.com>
ix86 PE/COFF Dave Korn <dave.korn.cygwin@gmail.com>
@@ -166,6 +164,8 @@ goes with them.
M R Swami Reddy
Martin Schwidefsky
Matt Thomas
+ Jim Wilson
+ Vladimir Mezentsev
--------- CGEN Maintainers -------------
diff --git a/binutils/Makefile.in b/binutils/Makefile.in
index 549b5a3..a374e80 100644
--- a/binutils/Makefile.in
+++ b/binutils/Makefile.in
@@ -139,8 +139,10 @@ subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../bfd/acinclude.m4 \
$(top_srcdir)/../bfd/warning.m4 \
+ $(top_srcdir)/../config/clang-plugin.m4 \
$(top_srcdir)/../config/depstand.m4 \
$(top_srcdir)/../config/enable.m4 \
+ $(top_srcdir)/../config/gcc-plugin.m4 \
$(top_srcdir)/../config/gettext-sister.m4 \
$(top_srcdir)/../config/gettext.m4 \
$(top_srcdir)/../config/iconv.m4 \
@@ -533,6 +535,7 @@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
+LLVM_CONFIG = @LLVM_CONFIG@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
LTLIBINTL = @LTLIBINTL@
diff --git a/binutils/NEWS b/binutils/NEWS
index 5038851..0a4ed3b 100644
--- a/binutils/NEWS
+++ b/binutils/NEWS
@@ -1,5 +1,15 @@
-*- text -*-
+* Add --got-contents option to readelf to display the contents of
+ Global Offset Table (GOT) sections.
+
+* Internal changes to plugin support, and stricter target checking may result
+ in some errors being exposed in user options passed to the various binutils.
+ For example objcopy --target=TARGET now will only work if the input file is
+ for TARGET whereas prior versions of objcopy accepted other target input
+ files and produced a TARGET output. If you do in fact want the old
+ behaviour the correct usage is objcopy --output-target=TARGET.
+
* NaCl target support is removed.
Changes in 2.45:
diff --git a/binutils/README-how-to-make-a-release b/binutils/README-how-to-make-a-release
index 7ab4c69..0b37776 100644
--- a/binutils/README-how-to-make-a-release
+++ b/binutils/README-how-to-make-a-release
@@ -229,12 +229,36 @@ If this is an ODD numbered release:
==============================================================================
==============================================================================
-For the next few weeks, monitor the mailing list for new translations
-and respond to any requests to have patches applied to the branch.
+For the next few weeks, monitor the mailing list for any requests to have
+patches applied to the branch.
Also - expect to receive lots of new/updated translations from the
Translation Project. These all need to be checked in to both the
-mainline and the branch.
+mainline and the branch. Note however, you can do this in bulk:
+
+ wget -r -np -nH -R "latest/*/index.html*" https://translationproject.org -I latest/bfd,latest/binutils,latest/gas,latest/gprof,latest/ld,latest/opcodes
+
+ bin_src=<path-to-binutils-sources>
+
+ cd latest
+ for A in * ; do
+ cd $A ;
+ for B in * ; do
+ if ! [ -f $bin_src/$A/po/$B ] ; then
+ echo "new file $bin_src/$A/po/$B" ;
+ cp $B $bin_src/$A/po/$B ;
+ else
+ diff $B $bin_src/$A/po/$B > /dev/null ;
+ if [ $? != 0 ] ; then
+ echo "updated $bin_src/$A/po/$B" ;
+ cp $B $bin_src/$A/po/$B ;
+ fi ;
+ fi ;
+ done
+ cd ..
+ done
+
+Then just git-add the new files and commit the updated translations.
==============================================================================
==============================================================================
diff --git a/binutils/aclocal.m4 b/binutils/aclocal.m4
index eb1433a..ebefc41 100644
--- a/binutils/aclocal.m4
+++ b/binutils/aclocal.m4
@@ -1187,8 +1187,10 @@ AC_SUBST([am__untar])
m4_include([../bfd/acinclude.m4])
m4_include([../bfd/warning.m4])
+m4_include([../config/clang-plugin.m4])
m4_include([../config/depstand.m4])
m4_include([../config/enable.m4])
+m4_include([../config/gcc-plugin.m4])
m4_include([../config/gettext-sister.m4])
m4_include([../config/gettext.m4])
m4_include([../config/iconv.m4])
diff --git a/binutils/ar.c b/binutils/ar.c
index 3cac3f3..afe8633 100644
--- a/binutils/ar.c
+++ b/binutils/ar.c
@@ -32,9 +32,7 @@
#include "arsup.h"
#include "filenames.h"
#include "binemul.h"
-#if BFD_SUPPORTS_PLUGINS
#include "plugin.h"
-#endif
#ifdef __GO32___
#define EXT_NAME_LEN 3 /* Bufflen of addition to name if it's MS-DOS. */
@@ -42,12 +40,9 @@
#define EXT_NAME_LEN 6 /* Ditto for *NIX. */
#endif
-/* Static declarations. */
+/* Forward declarations. */
-static void mri_emul (void);
static const char *normalize (const char *, bfd *);
-static void remove_output (void);
-static void map_over_members (bfd *, void (*)(bfd *), char **, int);
static void print_contents (bfd * member);
static void delete_members (bfd *, char **files_to_delete);
@@ -58,8 +53,7 @@ static void print_descr (bfd * abfd);
static void write_archive (bfd *);
static int ranlib_only (const char *archname);
static int ranlib_touch (const char *archname);
-static void usage (int);
-
+
/** Globals and flags. */
static int mri_mode;
@@ -148,12 +142,6 @@ static int show_version = 0;
static int show_help = 0;
-#if BFD_SUPPORTS_PLUGINS
-static const char *plugin_target = "plugin";
-#else
-static const char *plugin_target = NULL;
-#endif
-
static const char *target = NULL;
enum long_option_numbers
@@ -280,18 +268,18 @@ usage (int help)
{
FILE *s;
-#if BFD_SUPPORTS_PLUGINS
- /* xgettext:c-format */
- const char *command_line
- = _("Usage: %s [emulation options] [-]{dmpqrstx}[abcDfilMNoOPsSTuvV]"
- " [--plugin <name>] [member-name] [count] archive-file file...\n");
+ const char *command_line;
+ if (bfd_plugin_enabled ())
+ /* xgettext:c-format */
+ command_line
+ = _("Usage: %s [emulation options] [-]{dmpqrstx}[abcDfilMNoOPsSTuvV]"
+ " [--plugin <name>] [member-name] [count] archive-file file...\n");
+ else
+ /* xgettext:c-format */
+ command_line
+ = _("Usage: %s [emulation options] [-]{dmpqrstx}[abcDfilMNoOPsSTuvV]"
+ " [member-name] [count] archive-file file...\n");
-#else
- /* xgettext:c-format */
- const char *command_line
- = _("Usage: %s [emulation options] [-]{dmpqrstx}[abcDfilMNoOPsSTuvV]"
- " [member-name] [count] archive-file file...\n");
-#endif
s = help ? stdout : stderr;
fprintf (s, command_line, program_name);
@@ -343,10 +331,11 @@ usage (int help)
fprintf (s, _(" --output=DIRNAME - specify the output directory for extraction operations\n"));
fprintf (s, _(" --record-libdeps=<text> - specify the dependencies of this library\n"));
fprintf (s, _(" --thin - make a thin archive\n"));
-#if BFD_SUPPORTS_PLUGINS
- fprintf (s, _(" optional:\n"));
- fprintf (s, _(" --plugin <p> - load the specified plugin\n"));
-#endif
+ if (bfd_plugin_enabled ())
+ {
+ fprintf (s, _(" optional:\n"));
+ fprintf (s, _(" --plugin <p> - load the specified plugin\n"));
+ }
ar_emul_usage (s);
@@ -370,10 +359,9 @@ ranlib_usage (int help)
fprintf (s, _(" Generate an index to speed access to archives\n"));
fprintf (s, _(" The options are:\n\
@<file> Read options from <file>\n"));
-#if BFD_SUPPORTS_PLUGINS
- fprintf (s, _("\
+ if (bfd_plugin_enabled ())
+ fprintf (s, _("\
--plugin <name> Load the specified plugin\n"));
-#endif
if (DEFAULT_AR_DETERMINISTIC)
fprintf (s, _("\
-D Use zero for symbol map timestamp (default)\n\
@@ -600,12 +588,9 @@ decode_options (int argc, char **argv)
deterministic = false;
break;
case OPTION_PLUGIN:
-#if BFD_SUPPORTS_PLUGINS
+ if (!bfd_plugin_enabled ())
+ fatal (_("sorry - this program has been built without plugin support\n"));
bfd_plugin_set_plugin (optarg);
-#else
- fprintf (stderr, _("sorry - this program has been built without plugin support\n"));
- xexit (1);
-#endif
break;
case OPTION_TARGET:
target = optarg;
@@ -675,12 +660,9 @@ ranlib_main (int argc, char **argv)
/* PR binutils/13493: Support plugins. */
case OPTION_PLUGIN:
-#if BFD_SUPPORTS_PLUGINS
+ if (!bfd_plugin_enabled ())
+ fatal (_("sorry - this program has been built without plugin support\n"));
bfd_plugin_set_plugin (optarg);
-#else
- fprintf (stderr, _("sorry - this program has been built without plugin support\n"));
- xexit (1);
-#endif
break;
}
}
@@ -731,9 +713,7 @@ main (int argc, char **argv)
program_name = argv[0];
xmalloc_set_program_name (program_name);
bfd_set_error_program_name (program_name);
-#if BFD_SUPPORTS_PLUGINS
bfd_plugin_set_program_name (program_name);
-#endif
expandargv (&argc, &argv);
@@ -888,7 +868,7 @@ main (int argc, char **argv)
if (! bfd_make_readable (libdeps_bfd))
fatal (_("Cannot make libdeps object readable."));
- if (bfd_find_target (plugin_target, libdeps_bfd) == NULL)
+ if (bfd_find_target (target, libdeps_bfd) == NULL)
fatal (_("Cannot reset libdeps record type."));
/* Insert our libdeps record in 2nd slot of the list of files
@@ -977,12 +957,10 @@ open_inarch (const char *archive_filename, const char *file)
struct stat sbuf;
bfd *arch;
char **matching;
+ const char *arch_target = target;
bfd_set_error (bfd_error_no_error);
- if (target == NULL)
- target = plugin_target;
-
if (stat (archive_filename, &sbuf) != 0)
{
#if !defined(__GO32__) || defined(__DJGPP__)
@@ -1008,16 +986,16 @@ open_inarch (const char *archive_filename, const char *file)
/* If the target isn't set, try to figure out the target to use
for the archive from the first object on the list. */
- if (target == NULL && file != NULL)
+ if (arch_target == NULL && file != NULL)
{
bfd *obj;
- obj = bfd_openr (file, target);
+ obj = bfd_openr (file, arch_target);
if (obj != NULL)
{
if (bfd_check_format (obj, bfd_object)
&& bfd_target_supports_archives (obj))
- target = bfd_get_target (obj);
+ arch_target = bfd_get_target (obj);
(void) bfd_close (obj);
}
}
@@ -1026,7 +1004,7 @@ open_inarch (const char *archive_filename, const char *file)
output_filename = xstrdup (archive_filename);
/* Create an empty archive. */
- arch = bfd_openw (archive_filename, target);
+ arch = bfd_openw (archive_filename, arch_target);
if (arch == NULL
|| ! bfd_set_format (arch, bfd_archive)
|| ! bfd_close (arch))
@@ -1035,7 +1013,7 @@ open_inarch (const char *archive_filename, const char *file)
non_fatal (_("creating %s"), archive_filename);
}
- arch = bfd_openr (archive_filename, target);
+ arch = bfd_openr (archive_filename, arch_target);
if (arch == NULL)
{
bloser:
@@ -1069,8 +1047,8 @@ open_inarch (const char *archive_filename, const char *file)
}
}
+ /* Open all the archive contents. */
last_one = &(arch->archive_next);
- /* Read all the contents right away, regardless. */
for (next_one = bfd_openr_next_archived_file (arch, NULL);
next_one;
next_one = bfd_openr_next_archived_file (arch, next_one))
diff --git a/binutils/arsup.c b/binutils/arsup.c
index 67cbd5c..c7b6564 100644
--- a/binutils/arsup.c
+++ b/binutils/arsup.c
@@ -32,11 +32,6 @@
#include "bucomm.h"
#include "arsup.h"
-static void map_over_list
- (bfd *, void (*function) (bfd *, bfd *), struct list *);
-static void ar_directory_doer (bfd *, bfd *);
-static void ar_addlib_doer (bfd *, bfd *);
-
extern int verbose;
extern int deterministic;
@@ -180,11 +175,7 @@ ar_open (char *name, int t)
bfd *element;
bfd *ibfd;
-#if BFD_SUPPORTS_PLUGINS
- ibfd = bfd_openr (name, "plugin");
-#else
ibfd = bfd_openr (name, NULL);
-#endif
if (!ibfd)
{
@@ -266,11 +257,7 @@ ar_addmod (struct list *list)
{
bfd *abfd;
-#if BFD_SUPPORTS_PLUGINS
- abfd = bfd_openr (list->name, "plugin");
-#else
abfd = bfd_openr (list->name, NULL);
-#endif
if (!abfd)
{
fprintf (stderr, _("%s: can't open file %s\n"),
@@ -504,7 +491,6 @@ ar_extract (struct list *list)
if (!found)
{
- bfd_openr (list->name, NULL);
fprintf (stderr, _("%s: can't find module file %s\n"),
program_name, list->name);
}
diff --git a/binutils/configure b/binutils/configure
index 6f54be9..71c52a3 100755
--- a/binutils/configure
+++ b/binutils/configure
@@ -706,6 +706,7 @@ NMEDIT
DSYMUTIL
RANLIB
AR
+LLVM_CONFIG
OBJDUMP
LN_S
NM
@@ -6098,8 +6099,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
-plugin_option=
+
+# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
+# wrong plugin_option with clang.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
+$as_echo_n "checking for clang... " >&6; }
+if ${clang_cv_is_clang+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __clang__
+ yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ clang_cv_is_clang=yes
+else
+ clang_cv_is_clang=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
+$as_echo "$clang_cv_is_clang" >&6; }
+ plugin_file=
+ if test $clang_cv_is_clang = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
+$as_echo_n "checking for clang plugin file... " >&6; }
+ plugin_names="LLVMgold.so"
+ for plugin in $plugin_names; do
+ plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
+ if test x$plugin_file = x$plugin; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LLVM_CONFIG"; then
+ ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
+if test -n "$LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
+$as_echo "$LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LLVM_CONFIG"; then
+ ac_ct_LLVM_CONFIG=$LLVM_CONFIG
+ # Extract the first word of "llvm-config", so it can be a program name with args.
+set dummy llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LLVM_CONFIG"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
+if test -n "$ac_ct_LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
+$as_echo "$ac_ct_LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LLVM_CONFIG" = x; then
+ LLVM_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LLVM_CONFIG=$ac_ct_LLVM_CONFIG
+ fi
+else
+ LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
+fi
+
+ if test "$?" != 0; then
+ as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
+ fi
+ clang_lib_dir=`$LLVM_CONFIG --libdir`
+ if test -f $clang_lib_dir/$plugin; then
+ plugin_file=$clang_lib_dir/$plugin
+ fi
+ if test x$plugin_file != x$plugin; then
+ break;
+ fi
+ fi
+ done
+ if test -z $plugin_file; then
+ as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
+ fi
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+ if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ plugin_option="--plugin $plugin_file"
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_file=
+ fi
+ rm -f conftest.*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
+$as_echo "$plugin_file" >&6; }
+ fi
+ plugin_file="$plugin_file"
+
+if test -n "$plugin_file"; then
+ plugin_option="--plugin $plugin_file"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
+$as_echo_n "checking for -plugin option... " >&6; }
+
plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+plugin_option=
for plugin in $plugin_names; do
plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
if test x$plugin_so = x$plugin; then
@@ -6110,7 +6369,119 @@ for plugin in $plugin_names; do
break
fi
done
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+fi
+touch conftest.c
+${AR} $plugin_option rc conftest.a conftest.c
+if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_option=
+fi
+rm -f conftest.*
+if test -n "$plugin_option"; then
+ plugin_option="$plugin_option"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+$as_echo "$plugin_option" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
@@ -6205,17 +6576,15 @@ fi
test -z "$AR" && AR=ar
if test -n "$plugin_option"; then
- if $AR --help 2>&1 | grep -q "\--plugin"; then
- touch conftest.c
- $AR $plugin_option rc conftest.a conftest.c
- if test "$?" != 0; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
-$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
- else
+ case "$AR" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $AR --help 2>&1 | grep -q "\--plugin"; then
AR="$AR $plugin_option"
fi
- rm -f conftest.*
- fi
+ ;;
+ esac
fi
test -z "$AR_FLAGS" && AR_FLAGS=cru
@@ -6422,9 +6791,15 @@ fi
test -z "$RANLIB" && RANLIB=:
if test -n "$plugin_option" && test "$RANLIB" != ":"; then
- if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
- RANLIB="$RANLIB $plugin_option"
- fi
+ case "$RANLIB" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
+ RANLIB="$RANLIB $plugin_option"
+ fi
+ ;;
+ esac
fi
@@ -11081,7 +11456,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11084 "configure"
+#line 11459 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11187,7 +11562,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11190 "configure"
+#line 11565 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi
index 4543341..89425b8 100644
--- a/binutils/doc/binutils.texi
+++ b/binutils/doc/binutils.texi
@@ -5076,6 +5076,7 @@ readelf [@option{-a}|@option{--all}]
[@option{--ctf-strings=}@var{section}]
[@option{--sframe=}@var{section}]
[@option{-I}|@option{--histogram}]
+ [@option{--got-contents}]
[@option{-v}|@option{--version}]
[@option{-W}|@option{--wide}]
[@option{-T}|@option{--silent-truncation}]
@@ -5111,7 +5112,8 @@ given.
Equivalent to specifying @option{--file-header},
@option{--program-headers}, @option{--sections}, @option{--symbols},
@option{--relocs}, @option{--dynamic}, @option{--notes},
-@option{--version-info}, @option{--arch-specific}, @option{--unwind},
+@option{--got-contents}, @option{--version-info},
+@option{--arch-specific}, @option{--unwind},
@option{--section-groups} and @option{--histogram}.
Note - this option does not enable @option{--use-dynamic} itself, so
@@ -5387,6 +5389,14 @@ string table are used.
If either of @option{--ctf-symbols} or @option{--ctf-strings} is specified, the
other must be specified as well.
+@item --got-contents
+@cindex ELF section information
+@cindex ELF reloc information
+Displays the contents of the file's Global Offset Table (GOT) sections,
+if it has any. For MIPS, this option is similar to
+@option{--arch-specific}, but it only displays the GOT related contents
+and it is ignored when @option{--arch-specific} is used.
+
@item -I
@itemx --histogram
Display a histogram of bucket list lengths when displaying the contents
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index f4bcb67..bc5aa2b 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -8574,6 +8574,7 @@ typedef struct Frame_Chunk
uint64_t pc_range;
unsigned int cfa_reg;
uint64_t cfa_offset;
+ bool cfa_ofs_signed_p;
unsigned int ra;
unsigned char fde_encoding;
unsigned char cfa_exp;
@@ -9071,7 +9072,8 @@ frame_display_row (Frame_Chunk *fc, int *need_col_headers, unsigned int *max_reg
if (fc->cfa_exp)
strcpy (tmp, "exp");
else
- sprintf (tmp, "%s%+d", regname (fc->cfa_reg, 1), (int) fc->cfa_offset);
+ sprintf (tmp, (fc->cfa_ofs_signed_p ? "%s%+" PRId64 : "%s+%" PRIu64),
+ regname (fc->cfa_reg, 1), fc->cfa_offset);
printf ("%-8s ", tmp);
for (r = 0; r < fc->ncols; r++)
@@ -9794,6 +9796,7 @@ display_debug_frames (struct dwarf_section *section,
fc->data_factor = cie->data_factor;
fc->cfa_reg = cie->cfa_reg;
fc->cfa_offset = cie->cfa_offset;
+ fc->cfa_ofs_signed_p = cie->cfa_ofs_signed_p;
fc->ra = cie->ra;
if (frame_need_space (fc, max_regs > 0 ? max_regs - 1: 0) < 0)
{
@@ -10263,6 +10266,7 @@ display_debug_frames (struct dwarf_section *section,
printf (" DW_CFA_remember_state\n");
rs = (Frame_Chunk *) xmalloc (sizeof (Frame_Chunk));
rs->cfa_offset = fc->cfa_offset;
+ rs->cfa_ofs_signed_p = fc->cfa_ofs_signed_p;
rs->cfa_reg = fc->cfa_reg;
rs->ra = fc->ra;
rs->cfa_exp = fc->cfa_exp;
@@ -10285,6 +10289,7 @@ display_debug_frames (struct dwarf_section *section,
{
remembered_state = rs->next;
fc->cfa_offset = rs->cfa_offset;
+ fc->cfa_ofs_signed_p = rs->cfa_ofs_signed_p;
fc->cfa_reg = rs->cfa_reg;
fc->ra = rs->ra;
fc->cfa_exp = rs->cfa_exp;
@@ -10311,10 +10316,11 @@ display_debug_frames (struct dwarf_section *section,
case DW_CFA_def_cfa:
READ_ULEB (fc->cfa_reg, start, block_end);
READ_ULEB (fc->cfa_offset, start, block_end);
+ fc->cfa_ofs_signed_p = false;
fc->cfa_exp = 0;
if (! do_debug_frames_interp)
- printf (" DW_CFA_def_cfa: %s ofs %d\n",
- regname (fc->cfa_reg, 0), (int) fc->cfa_offset);
+ printf (" DW_CFA_def_cfa: %s ofs %" PRIu64 "\n",
+ regname (fc->cfa_reg, 0), fc->cfa_offset);
break;
case DW_CFA_def_cfa_register:
@@ -10327,8 +10333,9 @@ display_debug_frames (struct dwarf_section *section,
case DW_CFA_def_cfa_offset:
READ_ULEB (fc->cfa_offset, start, block_end);
+ fc->cfa_ofs_signed_p = false;
if (! do_debug_frames_interp)
- printf (" DW_CFA_def_cfa_offset: %d\n", (int) fc->cfa_offset);
+ printf (" DW_CFA_def_cfa_offset: %" PRIu64 "\n", fc->cfa_offset);
break;
case DW_CFA_nop:
@@ -10448,6 +10455,7 @@ display_debug_frames (struct dwarf_section *section,
ofs = sofs;
ofs *= fc->data_factor;
fc->cfa_offset = ofs;
+ fc->cfa_ofs_signed_p = true;
fc->cfa_exp = 0;
if (! do_debug_frames_interp)
printf (" DW_CFA_def_cfa_sf: %s ofs %" PRId64 "\n",
@@ -10459,6 +10467,7 @@ display_debug_frames (struct dwarf_section *section,
ofs = sofs;
ofs *= fc->data_factor;
fc->cfa_offset = ofs;
+ fc->cfa_ofs_signed_p = true;
if (! do_debug_frames_interp)
printf (" DW_CFA_def_cfa_offset_sf: %" PRId64 "\n", ofs);
break;
diff --git a/binutils/nm.c b/binutils/nm.c
index a7f0e9d..4ea5c11 100644
--- a/binutils/nm.c
+++ b/binutils/nm.c
@@ -37,9 +37,7 @@
#include "bucomm.h"
#include "demanguse.h"
#include "safe-ctype.h"
-#if BFD_SUPPORTS_PLUGINS
#include "plugin.h"
-#endif
#ifndef streq
#define streq(a,b) (strcmp ((a),(b)) == 0)
@@ -72,6 +70,7 @@ struct extended_symbol_info
bfd_vma ssize;
elf_symbol_type *elfinfo;
coff_symbol_type *coffinfo;
+ bool is_stab;
/* FIXME: We should add more fields for Type, Line, Section. */
};
#define SYM_VALUE(sym) (sym->sinfo->value)
@@ -222,11 +221,6 @@ static char other_format[] = "%02x";
static char desc_format[] = "%04x";
static char *target = NULL;
-#if BFD_SUPPORTS_PLUGINS
-static const char *plugin_target = "plugin";
-#else
-static const char *plugin_target = NULL;
-#endif
typedef enum unicode_display_type
{
@@ -344,10 +338,9 @@ usage (FILE *stream, int status)
-P, --portability Same as --format=posix\n"));
fprintf (stream, _("\
-r, --reverse-sort Reverse the sense of the sort\n"));
-#if BFD_SUPPORTS_PLUGINS
- fprintf (stream, _("\
+ if (bfd_plugin_enabled ())
+ fprintf (stream, _("\
--plugin NAME Load the specified plugin\n"));
-#endif
fprintf (stream, _("\
-S, --print-size Print size of defined symbols\n"));
fprintf (stream, _("\
@@ -573,8 +566,8 @@ display_utf8 (const unsigned char * in, char * out, unsigned int * consumed)
case 4:
out += sprintf (out, "\\u%02x%02x%02x",
- ((in[0] & 0x07) << 6) | ((in[1] & 0x3c) >> 2),
- ((in[1] & 0x03) << 6) | ((in[2] & 0x3c) >> 2),
+ ((in[0] & 0x07) << 2) | ((in[1] & 0x30) >> 4),
+ ((in[1] & 0x0f) << 4) | ((in[2] & 0x3c) >> 2),
((in[2] & 0x03) << 6) | ((in[3] & 0x3f)));
break;
default:
@@ -803,9 +796,7 @@ filter_symbols (bfd *abfd, bool is_dynamic, void *minisyms,
continue;
if (bfd_lto_slim_symbol_p (abfd, sym->name)
-#if BFD_SUPPORTS_PLUGINS
&& !bfd_plugin_target_p (abfd->xvec)
-#endif
&& report_plugin_err)
{
report_plugin_err = false;
@@ -1218,8 +1209,11 @@ print_symbol (bfd * abfd,
bfd_get_symbol_info (abfd, sym, &syminfo);
+ info.is_stab = false;
+ if (syminfo.type == '-')
+ info.is_stab = true;
/* PR 22967 - Distinguish between local and global ifunc symbols. */
- if (syminfo.type == 'i'
+ else if (syminfo.type == 'i'
&& sym->flags & BSF_GNU_INDIRECT_FUNCTION)
{
if (ifunc_type_chars == NULL || ifunc_type_chars[0] == 0)
@@ -1489,10 +1483,7 @@ display_rel_file (bfd *abfd, bfd *archive_bfd)
/* lto_type is set to lto_non_ir_object when a bfd is loaded with a
compiler LTO plugin. */
if (bfd_get_lto_type (abfd) == lto_slim_ir_object
-#if BFD_SUPPORTS_PLUGINS
- && !bfd_plugin_target_p (abfd->xvec)
-#endif
- )
+ && !bfd_plugin_target_p (abfd->xvec))
{
report_plugin_err = false;
non_fatal (_("%s: plugin needed to handle lto object"),
@@ -1650,7 +1641,7 @@ display_file (char *filename)
if (get_file_size (filename) < 1)
return false;
- file = bfd_openr (filename, target ? target : plugin_target);
+ file = bfd_openr (filename, target);
if (file == NULL)
{
bfd_nonfatal (filename);
@@ -1886,7 +1877,7 @@ print_symbol_info_bsd (struct extended_symbol_info *info, bfd *abfd)
printf (" %c", SYM_TYPE (info));
- if (SYM_TYPE (info) == '-')
+ if (info->is_stab)
{
/* A stab. */
printf (" ");
@@ -1915,7 +1906,7 @@ print_symbol_info_sysv (struct extended_symbol_info *info, bfd *abfd)
printf ("| %c |", SYM_TYPE (info));
- if (SYM_TYPE (info) == '-')
+ if (info->is_stab)
{
/* A stab. */
printf ("%18s| ", SYM_STAB_NAME (info)); /* (C) Type. */
@@ -1993,9 +1984,7 @@ main (int argc, char **argv)
program_name = *argv;
xmalloc_set_program_name (program_name);
bfd_set_error_program_name (program_name);
-#if BFD_SUPPORTS_PLUGINS
bfd_plugin_set_program_name (program_name);
-#endif
expandargv (&argc, &argv);
@@ -2142,11 +2131,9 @@ main (int argc, char **argv)
break;
case OPTION_PLUGIN: /* --plugin */
-#if BFD_SUPPORTS_PLUGINS
+ if (!bfd_plugin_enabled ())
+ fatal (_("sorry - this program has been built without plugin support\n"));
bfd_plugin_set_plugin (optarg);
-#else
- fatal (_("sorry - this program has been built without plugin support\n"));
-#endif
break;
case OPTION_IFUNC_CHARS:
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index 654d2b9..3c1bcf6 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -30,9 +30,7 @@
#include "coff/internal.h"
#include "libcoff.h"
#include "safe-ctype.h"
-#if BFD_SUPPORTS_PLUGINS
#include "plugin.h"
-#endif
/* FIXME: See bfd/peXXigen.c for why we include an architecture specific
header in generic PE code. */
@@ -168,13 +166,6 @@ static struct section_list *change_sections;
/* TRUE if some sections are to be removed. */
static bool sections_removed;
-#if BFD_SUPPORTS_PLUGINS
-/* TRUE if all GCC LTO sections are to be removed. */
-static bool lto_sections_removed;
-#else
-#define lto_sections_removed false
-#endif
-
/* TRUE if only some sections are to be copied. */
static bool sections_copied;
@@ -770,10 +761,9 @@ strip_usage (FILE *stream, int exit_status)
--info List object formats & architectures supported\n\
-o <file> Place stripped output into <file>\n\
"));
-#if BFD_SUPPORTS_PLUGINS
- fprintf (stream, _("\
+ if (bfd_plugin_enabled ())
+ fprintf (stream, _("\
--plugin NAME Load the specified plugin\n"));
-#endif
list_supported_targets (program_name, stream);
if (REPORT_BUGS_TO[0] && exit_status == 0)
@@ -2664,8 +2654,7 @@ set_long_section_mode (bfd *output_bfd, bfd *input_bfd, enum long_section_name_h
Returns TRUE upon success, FALSE otherwise. */
static bool
-copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch,
- bool target_defaulted)
+copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
{
bfd_vma start;
long symcount;
@@ -2815,17 +2804,20 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch,
iarch = bed->arch;
imach = 0;
}
+ if (iarch == bfd_arch_unknown
+ && bfd_get_flavour (ibfd) == bfd_target_elf_flavour
+ && ibfd->target_defaulted)
+ {
+ non_fatal (_("Unable to recognise the architecture of the input file `%s'"),
+ bfd_get_archive_filename (ibfd));
+ return false;
+ }
if (!bfd_set_arch_mach (obfd, iarch, imach)
- && (target_defaulted
- || bfd_get_arch (ibfd) != bfd_get_arch (obfd)))
+ && iarch != bfd_arch_unknown)
{
- if (bfd_get_arch (ibfd) == bfd_arch_unknown)
- non_fatal (_("Unable to recognise the format of the input file `%s'"),
- bfd_get_archive_filename (ibfd));
- else
- non_fatal (_("Output file cannot represent architecture `%s'"),
- bfd_printable_arch_mach (bfd_get_arch (ibfd),
- bfd_get_mach (ibfd)));
+ non_fatal (_("Output file cannot represent architecture `%s'"),
+ bfd_printable_arch_mach (bfd_get_arch (ibfd),
+ bfd_get_mach (ibfd)));
return false;
}
@@ -3619,8 +3611,7 @@ fail:
static bool
copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
bool force_output_target,
- const bfd_arch_info_type *input_arch,
- bool target_defaulted)
+ const bfd_arch_info_type *input_arch)
{
struct name_list
{
@@ -3690,8 +3681,6 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
bool ok_object;
const char *element_name;
- this_element->is_strip_input = 1;
-
element_name = bfd_get_filename (this_element);
/* PR binutils/17533: Do not allow directory traversal
outside of the current directory tree by archive members. */
@@ -3748,11 +3737,7 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
l->obfd = NULL;
list = l;
-#if BFD_SUPPORTS_PLUGINS
- /* Ignore plugin target if all LTO sections should be removed. */
- if (lto_sections_removed)
- this_element->plugin_format = bfd_plugin_no;
-#endif
+ this_element->plugin_format = bfd_plugin_no;
ok_object = bfd_check_format (this_element, bfd_object);
/* PR binutils/3110: Cope with archives
@@ -3770,18 +3755,12 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
goto cleanup_and_exit;
}
-#if BFD_SUPPORTS_PLUGINS
- /* Copy LTO IR file as unknown object. */
- if ((!lto_sections_removed
- && this_element->lto_type == lto_slim_ir_object)
- || bfd_plugin_target_p (this_element->xvec))
+ /* Copy slim LTO IR file as unknown object. */
+ if (this_element->lto_type == lto_slim_ir_object)
ok_object = false;
- else
-#endif
if (ok_object)
{
- ok = copy_object (this_element, output_element, input_arch,
- target_defaulted);
+ ok = copy_object (this_element, output_element, input_arch);
if (!ok && bfd_get_arch (this_element) == bfd_arch_unknown)
/* Try again as an unknown object file. */
@@ -3812,7 +3791,8 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
set_times (output_name, &buf);
/* Open the newly created output file and attach to our list. */
- output_element = bfd_openr (output_name, output_target);
+ const char *targ = force_output_target ? output_target : NULL;
+ output_element = bfd_openr (output_name, targ);
list->obfd = output_element;
@@ -3869,25 +3849,6 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
return ok;
}
-static bool
-check_format_object (bfd *ibfd, char ***obj_matching,
- bool no_plugins ATTRIBUTE_UNUSED)
-{
-#if BFD_SUPPORTS_PLUGINS
- /* Ignore plugin target first if all LTO sections should be
- removed. Try with plugin target next if ignoring plugin
- target fails to match the format. */
- if (no_plugins && ibfd->plugin_format == bfd_plugin_unknown)
- {
- ibfd->plugin_format = bfd_plugin_no;
- if (bfd_check_format_matches (ibfd, bfd_object, obj_matching))
- return true;
- ibfd->plugin_format = bfd_plugin_unknown;
- }
-#endif
- return bfd_check_format_matches (ibfd, bfd_object, obj_matching);
-}
-
/* The top-level control. */
static void
@@ -3900,8 +3861,6 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
char **core_matching;
off_t size = get_file_size (input_filename);
const char *target = input_target;
- bool target_defaulted = (!input_target
- || strcmp (input_target, "default") == 0);
if (size < 1)
{
@@ -3912,18 +3871,15 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
return;
}
-#if BFD_SUPPORTS_PLUGINS
- /* Enable LTO plugin in strip. */
- if (is_strip && !target)
- target = "plugin";
-#endif
-
/* To allow us to do "strip *" without dying on the first
non-object file, failures are nonfatal. */
ibfd = bfd_openr (input_filename, target);
if (ibfd == NULL || bfd_stat (ibfd, in_stat) != 0)
{
- bfd_nonfatal_message (input_filename, NULL, NULL, NULL);
+ if (bfd_get_error () == bfd_error_invalid_target && target != NULL)
+ bfd_nonfatal_message (target, NULL, NULL, NULL);
+ else
+ bfd_nonfatal_message (input_filename, NULL, NULL, NULL);
if (ibfd != NULL)
bfd_close (ibfd);
status = 1;
@@ -3971,7 +3927,7 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
break;
}
- ibfd->is_strip_input = 1;
+ ibfd->plugin_format = bfd_plugin_no;
if (bfd_check_format (ibfd, bfd_archive))
{
@@ -3998,7 +3954,10 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
{
if (ofd >= 0)
close (ofd);
- bfd_nonfatal_message (output_filename, NULL, NULL, NULL);
+ if (force_output_target && bfd_get_error () == bfd_error_invalid_target)
+ bfd_nonfatal_message (output_target, NULL, NULL, NULL);
+ else
+ bfd_nonfatal_message (output_filename, NULL, NULL, NULL);
bfd_close (ibfd);
status = 1;
return;
@@ -4012,18 +3971,66 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
}
if (!copy_archive (ibfd, obfd, output_target, force_output_target,
- input_arch, target_defaulted))
+ input_arch))
status = 1;
+ return;
}
- else if (check_format_object (ibfd, &obj_matching, lto_sections_removed))
+
+ bool ok_plugin = false;
+ bool ok_object = bfd_check_format_matches (ibfd, bfd_object, &obj_matching);
+ bfd_error_type obj_error = bfd_get_error ();
+ bfd_error_type core_error = bfd_error_no_error;
+ if (!ok_object)
+ {
+ ok_object = bfd_check_format_matches (ibfd, bfd_core, &core_matching);
+ core_error = bfd_get_error ();
+ if (ok_object)
+ {
+ if (obj_error == bfd_error_file_ambiguously_recognized)
+ free (obj_matching);
+ obj_error = bfd_error_no_error;
+ }
+ else if (bfd_plugin_enabled ())
+ {
+ /* This is for LLVM bytecode files, which are not ELF objects.
+ Since objcopy/strip does nothing with these files except
+ copy them whole perhaps we ought to just reject them? */
+ bfd_find_target ("plugin", ibfd);
+ ibfd->plugin_format = bfd_plugin_unknown;
+ ok_plugin = bfd_check_format (ibfd, bfd_object);
+ }
+ }
+
+ if (obj_error == bfd_error_file_ambiguously_recognized)
+ {
+ if (core_error == bfd_error_file_ambiguously_recognized)
+ free (core_matching);
+ bfd_set_error (obj_error);
+ status = 1;
+ bfd_nonfatal_message (input_filename, NULL, NULL, NULL);
+ list_matching_formats (obj_matching);
+ }
+ else if (core_error == bfd_error_file_ambiguously_recognized)
+ {
+ status = 1;
+ bfd_nonfatal_message (input_filename, NULL, NULL, NULL);
+ list_matching_formats (core_matching);
+ }
+ else if (!ok_object && !ok_plugin)
+ {
+ status = 1;
+ bfd_set_error (obj_error);
+ bfd_nonfatal_message (input_filename, NULL, NULL, NULL);
+ }
+ else
{
bfd *obfd;
- do_copy:
/* bfd_get_target does not return the correct value until
bfd_check_format succeeds. */
- if (output_target == NULL
- || strcmp (output_target, "default") == 0)
+ if (ok_object
+ && (output_target == NULL
+ || strcmp (output_target, "default") == 0))
output_target = bfd_get_target (ibfd);
if (ofd >= 0)
@@ -4035,72 +4042,39 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
{
if (ofd >= 0)
close (ofd);
- bfd_nonfatal_message (output_filename, NULL, NULL, NULL);
+ if (bfd_get_error () == bfd_error_invalid_target)
+ bfd_nonfatal_message (output_target, NULL, NULL, NULL);
+ else
+ bfd_nonfatal_message (output_filename, NULL, NULL, NULL);
bfd_close (ibfd);
status = 1;
return;
}
-#if BFD_SUPPORTS_PLUGINS
- if (bfd_plugin_target_p (ibfd->xvec))
- {
- /* Copy LTO IR file as unknown file. */
- if (!copy_unknown_file (ibfd, obfd, in_stat->st_size,
- in_stat->st_mode))
- status = 1;
- else if (!bfd_close_all_done (obfd))
- status = 1;
- }
- else
-#endif
- {
- if (! copy_object (ibfd, obfd, input_arch, target_defaulted))
- status = 1;
-
- /* PR 17512: file: 0f15796a.
- If the file could not be copied it may not be in a writeable
- state. So use bfd_close_all_done to avoid the possibility of
- writing uninitialised data into the file. */
- if (! (status ? bfd_close_all_done (obfd) : bfd_close (obfd)))
- {
- status = 1;
- bfd_nonfatal_message (output_filename, NULL, NULL, NULL);
- }
- }
+ /* Copy slim LTO IR file as unknown file. */
+ if (ibfd->lto_type == lto_slim_ir_object)
+ ok_object = false;
+ if (ok_object
+ ? !copy_object (ibfd, obfd, input_arch)
+ : !copy_unknown_file (ibfd, obfd,
+ in_stat->st_size, in_stat->st_mode))
+ status = 1;
- if (!bfd_close (ibfd))
+ /* PR 17512: file: 0f15796a.
+ If the file could not be copied it may not be in a writeable
+ state. So use bfd_close_all_done to avoid the possibility of
+ writing uninitialised data into the file. */
+ if (!(ok_object && !status ? bfd_close : bfd_close_all_done) (obfd))
{
status = 1;
- bfd_nonfatal_message (input_filename, NULL, NULL, NULL);
+ bfd_nonfatal_message (output_filename, NULL, NULL, NULL);
}
}
- else
- {
- bfd_error_type obj_error = bfd_get_error ();
- bfd_error_type core_error;
-
- if (bfd_check_format_matches (ibfd, bfd_core, &core_matching))
- {
- /* This probably can't happen.. */
- if (obj_error == bfd_error_file_ambiguously_recognized)
- free (obj_matching);
- goto do_copy;
- }
- core_error = bfd_get_error ();
- /* Report the object error in preference to the core error. */
- if (obj_error != core_error)
- bfd_set_error (obj_error);
-
- bfd_nonfatal_message (input_filename, NULL, NULL, NULL);
-
- if (obj_error == bfd_error_file_ambiguously_recognized)
- list_matching_formats (obj_matching);
- if (core_error == bfd_error_file_ambiguously_recognized)
- list_matching_formats (core_matching);
-
- bfd_close (ibfd);
+ if (!bfd_close (ibfd))
+ {
status = 1;
+ bfd_nonfatal_message (input_filename, NULL, NULL, NULL);
}
}
@@ -4924,9 +4898,7 @@ strip_main (int argc, char *argv[])
char *output_file = NULL;
bool merge_notes_set = false;
-#if BFD_SUPPORTS_PLUGINS
bfd_plugin_set_program_name (argv[0]);
-#endif
while ((c = getopt_long (argc, argv, "I:O:F:K:MN:R:o:sSpdgxXHhVvwDU",
strip_options, (int *) 0)) != EOF)
@@ -5019,11 +4991,9 @@ strip_main (int argc, char *argv[])
keep_section_symbols = true;
break;
case OPTION_PLUGIN: /* --plugin */
-#if BFD_SUPPORTS_PLUGINS
+ if (!bfd_plugin_enabled ())
+ fatal (_("sorry - this program has been built without plugin support\n"));
bfd_plugin_set_plugin (optarg);
-#else
- fatal (_("sorry - this program has been built without plugin support\n"));
-#endif
break;
case 0:
/* We've been given a long option. */
@@ -5069,22 +5039,15 @@ strip_main (int argc, char *argv[])
if (output_target == NULL)
output_target = input_target;
-#if BFD_SUPPORTS_PLUGINS
/* Check if all GCC LTO sections should be removed, assuming all LTO
- sections will be removed with -R .gnu.lto_.*. * Remove .gnu.lto_.*
- sections will also remove .gnu.debuglto_. sections. LLVM IR
- bitcode is stored in .llvm.lto section which will be removed with
- -R .llvm.lto. */
- lto_sections_removed = (!!find_section_list (".gnu.lto_.*", false,
- SECTION_CONTEXT_REMOVE)
- || !!find_section_list (".llvm.lto", false,
- SECTION_CONTEXT_REMOVE));
- /* NB: Must keep .gnu.debuglto_* sections unless all GCC LTO sections
+ sections will be removed with -R .gnu.lto_.*. Remove .gnu.lto_.*
+ sections will also remove .gnu.debuglto_.* sections.
+
+ NB: Must keep .gnu.debuglto_* sections unless all GCC LTO sections
will be removed to avoid undefined references to symbols in GCC LTO
debug sections. */
- if (!lto_sections_removed)
+ if (!find_section_list (".gnu.lto_.*", false, SECTION_CONTEXT_REMOVE))
find_section_list (".gnu.debuglto_*", true, SECTION_CONTEXT_KEEP);
-#endif
i = optind;
if (i == argc
diff --git a/binutils/objdump.c b/binutils/objdump.c
index 0bea4d0..513f616 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -659,8 +659,8 @@ display_utf8 (const unsigned char * in, char * out, unsigned int * consumed)
case 4:
out += sprintf (out, "\\u%02x%02x%02x",
- ((in[0] & 0x07) << 6) | ((in[1] & 0x3c) >> 2),
- ((in[1] & 0x03) << 6) | ((in[2] & 0x3c) >> 2),
+ ((in[0] & 0x07) << 2) | ((in[1] & 0x30) >> 4),
+ ((in[1] & 0x0f) << 4) | ((in[2] & 0x3c) >> 2),
((in[2] & 0x03) << 6) | ((in[3] & 0x3f)));
break;
default:
@@ -1106,6 +1106,9 @@ remove_useless_symbols (asymbol **symbols, long count)
if (bfd_is_und_section (sym->section)
|| bfd_is_com_section (sym->section))
continue;
+ if (strstr (sym->name, "gnu_compiled")
+ || strstr (sym->name, "gcc2_compiled"))
+ continue;
*out_ptr++ = sym;
}
@@ -1171,18 +1174,6 @@ compare_symbols (const void *ap, const void *bp)
anl = strlen (an);
bnl = strlen (bn);
- /* The symbols gnu_compiled and gcc2_compiled convey no real
- information, so put them after other symbols with the same value. */
- af = (strstr (an, "gnu_compiled") != NULL
- || strstr (an, "gcc2_compiled") != NULL);
- bf = (strstr (bn, "gnu_compiled") != NULL
- || strstr (bn, "gcc2_compiled") != NULL);
-
- if (af && ! bf)
- return 1;
- if (! af && bf)
- return -1;
-
/* We use a heuristic for the file name, to try to sort it after
more useful symbols. It may not work on non Unix systems, but it
doesn't really matter; the only difference is precisely which
@@ -4092,11 +4083,7 @@ disassemble_section (bfd *abfd, asection *section, void *inf)
|| sym == NULL
|| sym->section != section
|| bfd_asymbol_value (sym) > addr
- || ((sym->flags & BSF_OBJECT) == 0
- && (strstr (bfd_asymbol_name (sym), "gnu_compiled")
- == NULL)
- && (strstr (bfd_asymbol_name (sym), "gcc2_compiled")
- == NULL))
+ || (sym->flags & BSF_OBJECT) == 0
|| (sym->flags & BSF_FUNCTION) != 0)
insns = true;
else
@@ -4498,7 +4485,8 @@ dump_dwarf_section (bfd *abfd, asection *section,
else
match = name;
- if (elf_section_type (section) == SHT_GNU_SFRAME)
+ if (bfd_get_flavour (abfd) == bfd_target_elf_flavour
+ && elf_section_type (section) == SHT_GNU_SFRAME)
match = ".sframe";
for (i = 0; i < max; i++)
@@ -5006,9 +4994,10 @@ dump_sframe_section (bfd *abfd, const char *sect_name, bool is_mainfile)
SHT_GNU_SFRAME. For SFrame sections from Binutils 2.44 or earlier,
check explcitly for SFrame sections of type SHT_PROGBITS and name
".sframe" to allow them. */
- else if (elf_section_type (sec) != SHT_GNU_SFRAME
- && !(elf_section_type (sec) == SHT_PROGBITS
- && strcmp (sect_name, ".sframe") == 0))
+ else if (bfd_get_flavour (abfd) != bfd_target_elf_flavour
+ || (elf_section_type (sec) != SHT_GNU_SFRAME
+ && !(elf_section_type (sec) == SHT_PROGBITS
+ && strcmp (sect_name, ".sframe") == 0)))
{
printf (_("Section %s does not contain SFrame data\n\n"),
sanitize_string (sect_name));
diff --git a/binutils/po/ka.po b/binutils/po/ka.po
new file mode 100644
index 0000000..c6b2546
--- /dev/null
+++ b/binutils/po/ka.po
@@ -0,0 +1,13801 @@
+# Georgian translation for binutils
+# Copyright (C) 2025 Free Software Foundation, Inc.
+# This file is distributed under the same license as the binutils package.
+# Temuri Doghonadze <temuri.doghonadze@gmail.com>, 2025
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: binutils-2.44.90\n"
+"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
+"POT-Creation-Date: 2025-07-13 08:46+0100\n"
+"PO-Revision-Date: 2025-08-07 06:55+0200\n"
+"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
+"Language-Team: Georgian <(nothing)>\n"
+"Language: ka\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=2; plural=(n != 1);\n"
+"X-Generator: Poedit 3.6\n"
+
+#: addr2line.c:89
+#, c-format
+msgid "Usage: %s [option(s)] [addr(s)]\n"
+msgstr "გáƒáƒ›áƒáƒ§áƒ”ნებáƒ: %s [პáƒáƒ áƒáƒ›áƒ”ტრ(ებ)-ი] [მისáƒáƒ›áƒáƒ áƒ—(ებ)-ი]\n"
+
+#: addr2line.c:90
+#, c-format
+msgid " Convert addresses into line number/file name pairs.\n"
+msgstr " მისáƒáƒ›áƒáƒ áƒ—ების გáƒáƒ“áƒáƒ§áƒ•áƒáƒœáƒ ხáƒáƒ–ის ნáƒáƒ›áƒ”რი/ფáƒáƒ˜áƒšáƒ˜áƒ¡ სáƒáƒ®áƒ”ლის წყვილებში.\n"
+
+#: addr2line.c:91
+#, c-format
+msgid " If no addresses are specified on the command line, they will be read from stdin\n"
+msgstr ""
+
+#: addr2line.c:92
+#, c-format
+msgid ""
+" The options are:\n"
+" @<file> Read options from <file>\n"
+" -a --addresses Show addresses\n"
+" -b --target=<bfdname> Set the binary file format\n"
+" -e --exe=<executable> Set the input file name (default is a.out)\n"
+" -i --inlines Unwind inlined functions\n"
+" -j --section=<name> Read section-relative offsets instead of addresses\n"
+" -p --pretty-print Make the output easier to read for humans\n"
+" -s --basenames Strip directory names\n"
+" -f --functions Show function names\n"
+" -C --demangle[=style] Demangle function names\n"
+" -R --recurse-limit Enable a limit on recursion whilst demangling. [Default]\n"
+" -r --no-recurse-limit Disable a limit on recursion whilst demangling\n"
+" -h --help Display this information\n"
+" -v --version Display the program's version\n"
+"\n"
+msgstr ""
+
+#: addr2line.c:111 ar.c:356 ar.c:393 coffdump.c:470 dlltool.c:3770
+#: dllwrap.c:518 elfedit.c:987 objcopy.c:717 objcopy.c:777 readelf.c:6332
+#: size.c:110 srconv.c:1705 strings.c:1361 sysdump.c:655 windmc.c:227
+#: windres.c:670
+#, c-format
+msgid "Report bugs to %s\n"
+msgstr "შეცდáƒáƒ›áƒ”ბის შესáƒáƒ®áƒ”ბ მიწერეთ: %s\n"
+
+#. Note for translators: This printf is used to join the
+#. function name just printed above to the line number/
+#. file name pair that is about to be printed below. Eg:
+#.
+#. foo at 123:bar.c
+#: addr2line.c:379
+#, c-format
+msgid " at "
+msgstr ""
+
+#. Note for translators: This printf is used to join the
+#. line number/file name pair that has just been printed with
+#. the line number/file name pair that is going to be printed
+#. by the next iteration of the while loop. Eg:
+#.
+#. 123:bar.c (inlined by) 456:main.c
+#: addr2line.c:419
+#, c-format
+msgid " (inlined by) "
+msgstr ""
+
+#: addr2line.c:453
+#, c-format
+msgid "%s: cannot get addresses from archive"
+msgstr "%s: áƒáƒ áƒ¥áƒ˜áƒ•იდáƒáƒœ მისáƒáƒ›áƒáƒ áƒ—ები ვერ მივიღე"
+
+#: addr2line.c:472
+#, c-format
+msgid "%s: cannot find section %s"
+msgstr "%s: ვერ ვიპáƒáƒ•ე სექცირ%s"
+
+#: addr2line.c:514 ar.c:759 dlltool.c:3285 nm.c:1995 objcopy.c:6268
+#: objdump.c:6023 size.c:152 strings.c:356 windmc.c:958 windres.c:796
+msgid "fatal error: libbfd ABI mismatch"
+msgstr "ფáƒáƒ¢áƒáƒšáƒ£áƒ áƒ˜ შეცდáƒáƒ›áƒ: libbfd ABI áƒáƒ  ემთხვევáƒ"
+
+#: addr2line.c:541 nm.c:2021 objdump.c:6075 readelf.c:6647
+#, c-format
+msgid "unknown demangling style `%s'"
+msgstr ""
+
+#: ar.c:272
+#, c-format
+msgid "no entry %s in archive\n"
+msgstr "áƒáƒ áƒ¥áƒ˜áƒ•ში %s ჩáƒáƒœáƒáƒ¬áƒ”რი áƒáƒ  áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს\n"
+
+#: ar.c:286
+#, c-format
+msgid "Usage: %s [emulation options] [-]{dmpqrstx}[abcDfilMNoOPsSTuvV] [--plugin <name>] [member-name] [count] archive-file file...\n"
+msgstr ""
+
+#: ar.c:292
+#, c-format
+msgid "Usage: %s [emulation options] [-]{dmpqrstx}[abcDfilMNoOPsSTuvV] [member-name] [count] archive-file file...\n"
+msgstr ""
+
+#: ar.c:300
+#, c-format
+msgid " %s -M [<mri-script]\n"
+msgstr ""
+
+#: ar.c:301
+#, c-format
+msgid " commands:\n"
+msgstr " ბრძáƒáƒœáƒ”ბები:\n"
+
+#: ar.c:302
+#, c-format
+msgid " d - delete file(s) from the archive\n"
+msgstr " d - ფáƒáƒ˜áƒš(ებ)-ის წáƒáƒ¨áƒšáƒ áƒáƒ áƒ¥áƒ˜áƒ•იდáƒáƒœ\n"
+
+#: ar.c:303
+#, c-format
+msgid " m[ab] - move file(s) in the archive\n"
+msgstr ""
+
+#: ar.c:304
+#, c-format
+msgid " p - print file(s) found in the archive\n"
+msgstr ""
+
+#: ar.c:305
+#, c-format
+msgid " q[f] - quick append file(s) to the archive\n"
+msgstr ""
+
+#: ar.c:306
+#, c-format
+msgid " r[ab][f][u] - replace existing or insert new file(s) into the archive\n"
+msgstr ""
+
+#: ar.c:307
+#, c-format
+msgid " s - act as ranlib\n"
+msgstr ""
+
+#: ar.c:308
+#, c-format
+msgid " t[O][v] - display contents of the archive\n"
+msgstr ""
+
+#: ar.c:309
+#, c-format
+msgid " x[o] - extract file(s) from the archive\n"
+msgstr ""
+
+#: ar.c:310
+#, c-format
+msgid " command specific modifiers:\n"
+msgstr ""
+
+#: ar.c:311
+#, c-format
+msgid " [a] - put file(s) after [member-name]\n"
+msgstr ""
+
+#: ar.c:312
+#, c-format
+msgid " [b] - put file(s) before [member-name] (same as [i])\n"
+msgstr ""
+
+#: ar.c:315
+#, c-format
+msgid " [D] - use zero for timestamps and uids/gids (default)\n"
+msgstr ""
+
+#: ar.c:317
+#, c-format
+msgid " [U] - use actual timestamps and uids/gids\n"
+msgstr ""
+
+#: ar.c:322
+#, c-format
+msgid " [D] - use zero for timestamps and uids/gids\n"
+msgstr ""
+
+#: ar.c:324
+#, c-format
+msgid " [U] - use actual timestamps and uids/gids (default)\n"
+msgstr ""
+
+#: ar.c:327
+#, c-format
+msgid " [N] - use instance [count] of name\n"
+msgstr ""
+
+#: ar.c:328
+#, c-format
+msgid " [f] - truncate inserted file names\n"
+msgstr ""
+
+#: ar.c:329
+#, c-format
+msgid " [P] - use full path names when matching\n"
+msgstr ""
+
+#: ar.c:330
+#, c-format
+msgid " [o] - preserve original dates\n"
+msgstr ""
+
+#: ar.c:331
+#, c-format
+msgid " [O] - display offsets of files in the archive\n"
+msgstr ""
+
+#: ar.c:332
+#, c-format
+msgid " [u] - only replace files that are newer than current archive contents\n"
+msgstr ""
+
+#: ar.c:333
+#, c-format
+msgid " generic modifiers:\n"
+msgstr ""
+
+#: ar.c:334
+#, c-format
+msgid " [c] - do not warn if the library had to be created\n"
+msgstr ""
+
+#: ar.c:335
+#, c-format
+msgid " [s] - create an archive index (cf. ranlib)\n"
+msgstr ""
+
+#: ar.c:336
+#, c-format
+msgid " [l <text> ] - specify the dependencies of this library\n"
+msgstr ""
+
+#: ar.c:337
+#, c-format
+msgid " [S] - do not build a symbol table\n"
+msgstr ""
+
+#: ar.c:338
+#, c-format
+msgid " [T] - deprecated, use --thin instead\n"
+msgstr ""
+
+#: ar.c:339
+#, c-format
+msgid " [v] - be verbose\n"
+msgstr ""
+
+#: ar.c:340
+#, c-format
+msgid " [V] - display the version number\n"
+msgstr ""
+
+#: ar.c:341
+#, c-format
+msgid " @<file> - read options from <file>\n"
+msgstr ""
+
+#: ar.c:342
+#, c-format
+msgid " --target=BFDNAME - specify the target object format as BFDNAME\n"
+msgstr ""
+
+#: ar.c:343
+#, c-format
+msgid " --output=DIRNAME - specify the output directory for extraction operations\n"
+msgstr ""
+
+#: ar.c:344
+#, c-format
+msgid " --record-libdeps=<text> - specify the dependencies of this library\n"
+msgstr ""
+
+#: ar.c:345
+#, c-format
+msgid " --thin - make a thin archive\n"
+msgstr ""
+
+#: ar.c:347
+#, c-format
+msgid " optional:\n"
+msgstr " áƒáƒ áƒáƒ¡áƒáƒ•áƒáƒšáƒ“ებულáƒ:\n"
+
+#: ar.c:348
+#, c-format
+msgid " --plugin <p> - load the specified plugin\n"
+msgstr ""
+
+#: ar.c:369
+#, c-format
+msgid "Usage: %s [options] archive\n"
+msgstr ""
+
+#: ar.c:370
+#, c-format
+msgid " Generate an index to speed access to archives\n"
+msgstr ""
+
+#: ar.c:371
+#, c-format
+msgid ""
+" The options are:\n"
+" @<file> Read options from <file>\n"
+msgstr ""
+
+#: ar.c:374
+#, c-format
+msgid " --plugin <name> Load the specified plugin\n"
+msgstr ""
+
+#: ar.c:378
+#, c-format
+msgid ""
+" -D Use zero for symbol map timestamp (default)\n"
+" -U Use an actual symbol map timestamp\n"
+msgstr ""
+
+#: ar.c:382
+#, c-format
+msgid ""
+" -D Use zero for symbol map timestamp\n"
+" -U Use actual symbol map timestamp (default)\n"
+msgstr ""
+
+#: ar.c:385
+#, c-format
+msgid ""
+" -t Update the archive's symbol map timestamp\n"
+" -h --help Print this help message\n"
+" -v --version Print version information\n"
+msgstr ""
+
+#: ar.c:509
+msgid "two different operation options specified"
+msgstr ""
+
+#: ar.c:545
+msgid "libdeps specified more than once"
+msgstr ""
+
+#: ar.c:606 ar.c:681 nm.c:2140 objcopy.c:4996
+#, c-format
+msgid "sorry - this program has been built without plugin support\n"
+msgstr ""
+
+#: ar.c:815
+msgid "no operation specified"
+msgstr ""
+
+#: ar.c:818
+msgid "`u' is only meaningful with the `r' option."
+msgstr ""
+
+#: ar.c:821
+msgid "`u' is not meaningful with the `D' option - replacement will always happen."
+msgstr ""
+
+#: ar.c:824
+msgid "`u' modifier ignored since `D' is the default (see `U')"
+msgstr ""
+
+#: ar.c:833
+msgid "missing position arg."
+msgstr ""
+
+#: ar.c:839
+msgid "`N' is only meaningful with the `x' and `d' options."
+msgstr ""
+
+#: ar.c:841
+msgid "`N' missing value."
+msgstr ""
+
+#: ar.c:844
+msgid "Value for `N' must be positive."
+msgstr ""
+
+#: ar.c:860
+msgid "`x' cannot be used on thin archives."
+msgstr ""
+
+#: ar.c:874
+msgid "Cannot create libdeps record."
+msgstr ""
+
+#: ar.c:877
+msgid "Cannot set libdeps record type to binary."
+msgstr ""
+
+#: ar.c:880
+msgid "Cannot set libdeps object format."
+msgstr ""
+
+#: ar.c:883
+msgid "Cannot make libdeps object writable."
+msgstr ""
+
+#: ar.c:886
+msgid "Cannot write libdeps record."
+msgstr ""
+
+#: ar.c:889
+msgid "Cannot make libdeps object readable."
+msgstr ""
+
+#: ar.c:892
+msgid "Cannot reset libdeps record type."
+msgstr ""
+
+#: ar.c:964
+#, c-format
+msgid "internal error -- this option not implemented"
+msgstr ""
+
+#: ar.c:1035
+#, c-format
+msgid "creating %s"
+msgstr ""
+
+#: ar.c:1060
+#, c-format
+msgid "Cannot convert existing library %s to thin format"
+msgstr ""
+
+#: ar.c:1066
+#, c-format
+msgid "Cannot convert existing thin library %s to normal format"
+msgstr ""
+
+#: ar.c:1097 ar.c:1202 ar.c:1531 objcopy.c:3742
+#, c-format
+msgid "internal stat error on %s"
+msgstr ""
+
+#: ar.c:1117 ar.c:1229
+#, c-format
+msgid "%s is not a valid archive"
+msgstr ""
+
+#: ar.c:1147
+#, c-format
+msgid "illegal output pathname for archive member: %s, using '%s' instead"
+msgstr ""
+
+#: ar.c:1279
+msgid "could not create temporary file whilst writing archive"
+msgstr ""
+
+#: ar.c:1429
+#, c-format
+msgid "No member named `%s'\n"
+msgstr ""
+
+#: ar.c:1482
+#, c-format
+msgid "no entry %s in archive %s!"
+msgstr ""
+
+#: ar.c:1664
+#, c-format
+msgid "%s: no archive map to update"
+msgstr ""
+
+#: arsup.c:91
+#, c-format
+msgid "No entry %s in archive.\n"
+msgstr ""
+
+#: arsup.c:116
+#, c-format
+msgid "Can't open file %s\n"
+msgstr ""
+
+#: arsup.c:159
+#, c-format
+msgid "%s: Can't open temporary file (%s)\n"
+msgstr ""
+
+#: arsup.c:170
+#, c-format
+msgid "%s: Can't open output archive %s\n"
+msgstr ""
+
+#: arsup.c:191
+#, c-format
+msgid "%s: Can't open input archive %s\n"
+msgstr ""
+
+#: arsup.c:200
+#, c-format
+msgid "%s: file %s is not an archive\n"
+msgstr ""
+
+#: arsup.c:240
+#, c-format
+msgid "%s: no output archive specified yet\n"
+msgstr ""
+
+#: arsup.c:260 arsup.c:303 arsup.c:345 arsup.c:383 arsup.c:449
+#, c-format
+msgid "%s: no open output archive\n"
+msgstr ""
+
+#: arsup.c:276 arsup.c:404 arsup.c:430
+#, c-format
+msgid "%s: can't open file %s\n"
+msgstr ""
+
+#: arsup.c:330 arsup.c:426 arsup.c:508
+#, c-format
+msgid "%s: can't find module file %s\n"
+msgstr ""
+
+#: arsup.c:458
+#, c-format
+msgid "Current open archive is %s\n"
+msgstr ""
+
+#: arsup.c:483
+#, c-format
+msgid "%s: no open archive\n"
+msgstr ""
+
+#: binemul.c:38
+#, c-format
+msgid " No emulation specific options\n"
+msgstr ""
+
+#. Macros for common output.
+#: binemul.h:45
+#, c-format
+msgid " emulation options: \n"
+msgstr ""
+
+#: bucomm.c:43 bucomm.c:76
+msgid "cause of error unknown"
+msgstr ""
+
+#: bucomm.c:170
+#, c-format
+msgid "can't set BFD default target to `%s': %s"
+msgstr ""
+
+#: bucomm.c:182
+#, c-format
+msgid "%s: Matching formats:"
+msgstr ""
+
+#: bucomm.c:199
+#, c-format
+msgid "Supported targets:"
+msgstr "მხáƒáƒ áƒ“áƒáƒ­áƒ”რილი მიზნები:"
+
+#: bucomm.c:201
+#, c-format
+msgid "%s: supported targets:"
+msgstr "%s: მხáƒáƒ áƒ“áƒáƒ­áƒ”რილი სáƒáƒ›áƒ˜áƒ–ნეები:"
+
+#: bucomm.c:219
+#, c-format
+msgid "Supported architectures:"
+msgstr "მხáƒáƒ áƒ“áƒáƒ­áƒ”რილი áƒáƒ áƒ¥áƒ˜áƒ¢áƒ”ქტურები:"
+
+#: bucomm.c:221
+#, c-format
+msgid "%s: supported architectures:"
+msgstr "%s: მხáƒáƒ áƒ“áƒáƒ­áƒ”რილი áƒáƒ áƒ¥áƒ˜áƒ¢áƒ”ქტურები:"
+
+#: bucomm.c:234
+msgid "big endian"
+msgstr "მსხვილბáƒáƒšáƒáƒ˜áƒáƒœáƒ˜"
+
+#: bucomm.c:235
+msgid "little endian"
+msgstr "წვრილბáƒáƒšáƒáƒ˜áƒáƒœáƒ˜"
+
+#: bucomm.c:236
+msgid "endianness unknown"
+msgstr ""
+
+#: bucomm.c:283
+#, c-format
+msgid ""
+"%s\n"
+" (header %s, data %s)\n"
+msgstr ""
+
+#: bucomm.c:432
+#, c-format
+msgid "BFD header file version %s\n"
+msgstr ""
+
+#: bucomm.c:462
+#, c-format
+msgid "<time data corrupt>"
+msgstr ""
+
+#: bucomm.c:607
+#, c-format
+msgid "%s: bad number: %s"
+msgstr ""
+
+#: bucomm.c:627 strings.c:469
+#, c-format
+msgid "'%s': No such file"
+msgstr ""
+
+#: bucomm.c:629 strings.c:471
+#, c-format
+msgid "Warning: could not locate '%s'. reason: %s"
+msgstr ""
+
+#: bucomm.c:633 strings.c:477
+#, c-format
+msgid "Warning: '%s' is a directory"
+msgstr ""
+
+#: bucomm.c:635 bucomm.c:648
+#, c-format
+msgid "Warning: '%s' is not an ordinary file"
+msgstr ""
+
+#: bucomm.c:637
+#, c-format
+msgid "Warning: '%s' has negative size, probably it is too large"
+msgstr ""
+
+#: coffdump.c:106
+#, c-format
+msgid "#lines %d "
+msgstr ""
+
+#: coffdump.c:129
+#, c-format
+msgid "size %d "
+msgstr "ზáƒáƒ›áƒ %d "
+
+#: coffdump.c:134
+#, c-format
+msgid "section definition at %x size %x\n"
+msgstr ""
+
+#: coffdump.c:140
+#, c-format
+msgid "pointer to"
+msgstr ""
+
+#: coffdump.c:145
+#, c-format
+msgid "array [%d] of"
+msgstr ""
+
+#: coffdump.c:150
+#, c-format
+msgid "function returning"
+msgstr ""
+
+#: coffdump.c:154
+#, c-format
+msgid "arguments"
+msgstr "áƒáƒ áƒ’უმენტები"
+
+#: coffdump.c:158
+#, c-format
+msgid "code"
+msgstr "კáƒáƒ“ი"
+
+#: coffdump.c:164
+#, c-format
+msgid "structure definition"
+msgstr ""
+
+#: coffdump.c:170
+#, c-format
+msgid "structure ref to UNKNOWN struct"
+msgstr ""
+
+#: coffdump.c:172
+#, c-format
+msgid "structure ref to %s"
+msgstr ""
+
+#: coffdump.c:175
+#, c-format
+msgid "enum ref to %s"
+msgstr ""
+
+#: coffdump.c:178
+#, c-format
+msgid "enum definition"
+msgstr ""
+
+#: coffdump.c:251
+#, c-format
+msgid "Stack offset %x"
+msgstr ""
+
+#: coffdump.c:254
+#, c-format
+msgid "Memory section %s+%x"
+msgstr ""
+
+#: coffdump.c:257
+#, c-format
+msgid "Register %d"
+msgstr ""
+
+#: coffdump.c:260
+#, c-format
+msgid "Struct Member offset %x"
+msgstr ""
+
+#: coffdump.c:263
+#, c-format
+msgid "Enum Member offset %x"
+msgstr ""
+
+#: coffdump.c:266
+#, c-format
+msgid "Undefined symbol"
+msgstr ""
+
+#: coffdump.c:334
+#, c-format
+msgid "List of symbols"
+msgstr ""
+
+#: coffdump.c:341
+#, c-format
+msgid "Symbol %s, tag %d, number %d"
+msgstr ""
+
+#: coffdump.c:345 readelf.c:20372 readelf.c:20468
+#, c-format
+msgid "Type"
+msgstr "ტიპი"
+
+#: coffdump.c:350
+#, c-format
+msgid "Where"
+msgstr "სáƒáƒ“"
+
+#: coffdump.c:354
+#, c-format
+msgid "Visible"
+msgstr "ხილული"
+
+#: coffdump.c:369
+msgid "List of blocks "
+msgstr ""
+
+#: coffdump.c:382
+#, c-format
+msgid "vars %d"
+msgstr ""
+
+#: coffdump.c:385
+#, c-format
+msgid "blocks"
+msgstr "ბლáƒáƒ™áƒ”ბი"
+
+#: coffdump.c:403
+#, c-format
+msgid "List of source files"
+msgstr ""
+
+#: coffdump.c:409
+#, c-format
+msgid "Source file %s"
+msgstr ""
+
+#: coffdump.c:423
+#, c-format
+msgid "section %s %d %d address %x size %x number %d nrelocs %u"
+msgstr ""
+
+#. PR 17512: file: 0a38fb7c.
+#: coffdump.c:435
+msgid "<no sym>"
+msgstr ""
+
+#: coffdump.c:450
+#, c-format
+msgid "#sources %d"
+msgstr ""
+
+#: coffdump.c:461 sysdump.c:648
+#, c-format
+msgid "Usage: %s [option(s)] in-file\n"
+msgstr ""
+
+#: coffdump.c:462
+#, c-format
+msgid " Print a human readable interpretation of a COFF object file\n"
+msgstr ""
+
+#: coffdump.c:463
+#, c-format
+msgid ""
+" The options are:\n"
+" @<file> Read options from <file>\n"
+" -h --help Display this information\n"
+" -v --version Display the program's version\n"
+"\n"
+msgstr ""
+
+#: coffdump.c:531 srconv.c:1794 sysdump.c:711
+msgid "no input file specified"
+msgstr ""
+
+#: coffgrok.c:107
+msgid "Out of context scope change encountered"
+msgstr ""
+
+#: coffgrok.c:130
+#, c-format
+msgid "Invalid section target index: %u"
+msgstr ""
+
+#: coffgrok.c:187
+#, c-format
+msgid "Invalid section target index: %d"
+msgstr ""
+
+#: coffgrok.c:190
+msgid "Target section has insufficient relocs"
+msgstr ""
+
+#: coffgrok.c:198
+#, c-format
+msgid "Symbol index %u encountered when there are no symbols"
+msgstr ""
+
+#: coffgrok.c:199
+#, c-format
+msgid "Invalid symbol index %u encountered"
+msgstr ""
+
+#: coffgrok.c:251
+#, c-format
+msgid "Invalid section number (%d) encountered"
+msgstr ""
+
+#: coffgrok.c:273
+#, c-format
+msgid "Unrecognized symbol class: %d"
+msgstr ""
+
+#: coffgrok.c:351
+#, c-format
+msgid "Type entry %u does not have enough symbolic information"
+msgstr ""
+
+#: coffgrok.c:354
+#, c-format
+msgid "Type entry %u does not refer to a symbol"
+msgstr ""
+
+#: coffgrok.c:376
+msgid "Section definition needs a section length"
+msgstr ""
+
+#: coffgrok.c:427
+msgid "Aggregate definition needs auxiliary information"
+msgstr ""
+
+#: coffgrok.c:460
+msgid "Enum definition needs auxiliary information"
+msgstr ""
+
+#: coffgrok.c:500
+msgid "Array definition needs auxiliary information"
+msgstr ""
+
+#: coffgrok.c:516
+#, c-format
+msgid "Out of range sum for els (%#x) * size (%#x)"
+msgstr ""
+
+#: coffgrok.c:607 coffgrok.c:850
+#, c-format
+msgid "Unrecognised symbol class: %d"
+msgstr ""
+
+#: coffgrok.c:624
+msgid "ICE: do_define called without a block"
+msgstr ""
+
+#: coffgrok.c:626
+#, c-format
+msgid "Out of range symbol index: %u"
+msgstr ""
+
+#: coffgrok.c:663
+msgid "Section referenced before any file is defined"
+msgstr ""
+
+#: coffgrok.c:681
+#, c-format
+msgid "Out of range sum for offset (%#x) + size (%#x)"
+msgstr ""
+
+#: coffgrok.c:686
+#, c-format
+msgid "Out of range type size: %u"
+msgstr ""
+
+#: coffgrok.c:772
+msgid "Function start encountered without a top level scope."
+msgstr ""
+
+#: coffgrok.c:798
+msgid "Block start encountered without a scope for it."
+msgstr ""
+
+#: coffgrok.c:808
+msgid "Function arguments encountered without a function definition"
+msgstr ""
+
+#: coffgrok.c:816
+msgid "Structure element encountered without a structure definition"
+msgstr ""
+
+#: coffgrok.c:821
+msgid "Enum element encountered without an enum definition"
+msgstr ""
+
+#: coffgrok.c:829
+msgid "Aggregate definition encountered without a scope"
+msgstr ""
+
+#: coffgrok.c:835
+msgid "Label definition encountered without a file scope"
+msgstr ""
+
+#: coffgrok.c:843
+msgid "Variable definition encountered without a scope"
+msgstr ""
+
+#: coffgrok.c:866
+#, c-format
+msgid "%s: is not a COFF format file"
+msgstr ""
+
+#: cxxfilt.c:124 nm.c:388 objdump.c:470
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "შეცდáƒáƒ›áƒ”ბის შესáƒáƒ®áƒ”ბ მიწერეთ: %s\n"
+
+#: debug.c:650
+msgid "debug_add_to_current_namespace: no current file"
+msgstr ""
+
+#: debug.c:744
+msgid "debug_start_source: no debug_set_filename call"
+msgstr ""
+
+#: debug.c:796
+msgid "debug_record_function: no debug_set_filename call"
+msgstr ""
+
+#: debug.c:846
+msgid "debug_record_parameter: no current function"
+msgstr "debug_record_parameter: მიმდინáƒáƒ áƒ” ფუნქციის გáƒáƒ áƒ”შე"
+
+#: debug.c:877
+msgid "debug_end_function: no current function"
+msgstr "debug_end_function: მიმდინáƒáƒ áƒ” ფუნქციის გáƒáƒ áƒ”შე"
+
+#: debug.c:883
+msgid "debug_end_function: some blocks were not closed"
+msgstr ""
+
+#: debug.c:911
+msgid "debug_start_block: no current block"
+msgstr "debug_start_block: მიმდინáƒáƒ áƒ” ბლáƒáƒ™áƒ˜áƒ¡ გáƒáƒ áƒ”შე"
+
+#: debug.c:946
+msgid "debug_end_block: no current block"
+msgstr "debug_end_block: მიმდინáƒáƒ áƒ” ბლáƒáƒ™áƒ˜áƒ¡ გáƒáƒ áƒ”შე"
+
+#: debug.c:953
+msgid "debug_end_block: attempt to close top level block"
+msgstr ""
+
+#: debug.c:976
+msgid "debug_record_line: no current unit"
+msgstr ""
+
+#. FIXME
+#: debug.c:1028
+msgid "debug_start_common_block: not implemented"
+msgstr "debug_start_common_block: გáƒáƒœáƒ®áƒáƒ áƒªáƒ˜áƒ”ლებული áƒáƒ áƒáƒ"
+
+#. FIXME
+#: debug.c:1039
+msgid "debug_end_common_block: not implemented"
+msgstr "debug_end_common_block: გáƒáƒœáƒ®áƒáƒ áƒªáƒ˜áƒ”ლებული áƒáƒ áƒáƒ"
+
+#. FIXME.
+#: debug.c:1122
+msgid "debug_record_label: not implemented"
+msgstr "debug_record_label: გáƒáƒœáƒ®áƒáƒ áƒªáƒ˜áƒ”ლებული áƒáƒ áƒáƒ"
+
+#: debug.c:1144
+msgid "debug_record_variable: no current file"
+msgstr ""
+
+#: debug.c:1660
+msgid "debug_make_undefined_type: unsupported kind"
+msgstr "debug_make_undefined_type: მხáƒáƒ áƒ“áƒáƒ£áƒ­áƒ”რელი ტიპი"
+
+#: debug.c:1837
+msgid "debug_name_type: no current file"
+msgstr "debug_name_type: no current file"
+
+#: debug.c:1881
+msgid "debug_tag_type: no current file"
+msgstr ""
+
+#: debug.c:1889
+msgid "debug_tag_type: extra tag attempted"
+msgstr ""
+
+#: debug.c:1925
+#, c-format
+msgid "Warning: changing type size from %d to %d\n"
+msgstr ""
+
+#: debug.c:1947
+msgid "debug_find_named_type: no current compilation unit"
+msgstr ""
+
+#: debug.c:2050
+#, c-format
+msgid "debug_get_real_type: circular debug information for %s\n"
+msgstr ""
+
+#: debug.c:2489
+msgid "debug_write_type: illegal type encountered"
+msgstr ""
+
+#: dlltool.c:876 dlltool.c:901
+#, c-format
+msgid "Internal error: Unknown machine type: %d"
+msgstr ""
+
+#: dlltool.c:952
+#, c-format
+msgid "Can't open def file: %s"
+msgstr ""
+
+#: dlltool.c:957
+#, c-format
+msgid "Processing def file: %s"
+msgstr ""
+
+#: dlltool.c:961
+msgid "Processed def file"
+msgstr ""
+
+#: dlltool.c:985
+#, c-format
+msgid "Syntax error in def file %s:%d"
+msgstr ""
+
+#: dlltool.c:1020
+#, c-format
+msgid "%s: Path components stripped from image name, '%s'."
+msgstr ""
+
+#: dlltool.c:1033
+#, c-format
+msgid "NAME: %s base: %x"
+msgstr ""
+
+#: dlltool.c:1036 dlltool.c:1059
+msgid "Can't have LIBRARY and NAME"
+msgstr ""
+
+#: dlltool.c:1056
+#, c-format
+msgid "LIBRARY: %s base: %x"
+msgstr ""
+
+#: dlltool.c:1214
+#, c-format
+msgid "VERSION %d.%d\n"
+msgstr ""
+
+#: dlltool.c:1259
+#, c-format
+msgid "run: %s %s"
+msgstr ""
+
+#: dlltool.c:1301 resrc.c:289
+#, c-format
+msgid "wait: %s"
+msgstr ""
+
+#: dlltool.c:1306 dllwrap.c:416 resrc.c:294
+#, c-format
+msgid "subprocess got fatal signal %d"
+msgstr ""
+
+#: dlltool.c:1312 dllwrap.c:423 resrc.c:301
+#, c-format
+msgid "%s exited with status %d"
+msgstr ""
+
+#: dlltool.c:1335
+#, c-format
+msgid "Sucking in info from %s section in %s"
+msgstr ""
+
+#: dlltool.c:1473
+#, c-format
+msgid "Excluding symbol: %s"
+msgstr ""
+
+#: dlltool.c:1562 dlltool.c:1573 nm.c:1424 nm.c:1433
+#, c-format
+msgid "%s: no symbols"
+msgstr ""
+
+#. FIXME: we ought to read in and block out the base relocations.
+#: dlltool.c:1599
+#, c-format
+msgid "Done reading %s"
+msgstr ""
+
+#: dlltool.c:1609
+#, c-format
+msgid "Unable to open object file: %s: %s"
+msgstr ""
+
+#: dlltool.c:1612
+#, c-format
+msgid "Scanning object file %s"
+msgstr ""
+
+#: dlltool.c:1632
+#, c-format
+msgid "Cannot produce mcore-elf dll from archive file: %s"
+msgstr ""
+
+#: dlltool.c:1734
+msgid "Adding exports to output file"
+msgstr ""
+
+#: dlltool.c:1786
+msgid "Added exports to output file"
+msgstr ""
+
+#: dlltool.c:1948
+#, c-format
+msgid "Generating export file: %s"
+msgstr ""
+
+#: dlltool.c:1953
+#, c-format
+msgid "Unable to open temporary assembler file: %s"
+msgstr ""
+
+#: dlltool.c:1958
+#, c-format
+msgid "Opened temporary file: %s"
+msgstr ""
+
+#: dlltool.c:2144
+msgid "failed to read the number of entries from base file"
+msgstr ""
+
+#: dlltool.c:2196
+msgid "Generated exports file"
+msgstr ""
+
+#: dlltool.c:2345
+#, c-format
+msgid "bfd_open failed open stub file: %s: %s"
+msgstr ""
+
+#: dlltool.c:2349
+#, c-format
+msgid "Creating stub file: %s"
+msgstr ""
+
+#: dlltool.c:2689
+#, c-format
+msgid "bfd_open failed reopen stub file: %s: %s"
+msgstr ""
+
+#: dlltool.c:2703 dlltool.c:2782
+#, c-format
+msgid "failed to open temporary head file: %s"
+msgstr ""
+
+#: dlltool.c:2767 dlltool.c:2859
+#, c-format
+msgid "failed to open temporary head file: %s: %s"
+msgstr ""
+
+#: dlltool.c:2874 dlltool.c:2925
+#, c-format
+msgid "failed to open temporary tail file: %s"
+msgstr ""
+
+#: dlltool.c:2910 dlltool.c:2961
+#, c-format
+msgid "failed to open temporary tail file: %s: %s"
+msgstr ""
+
+#: dlltool.c:2984
+#, c-format
+msgid "Can't create .lib file: %s: %s"
+msgstr ""
+
+#: dlltool.c:2988
+#, c-format
+msgid "Creating library file: %s"
+msgstr ""
+
+#: dlltool.c:3073 dlltool.c:3079
+#, c-format
+msgid "cannot delete %s: %s"
+msgstr ""
+
+#: dlltool.c:3084
+msgid "Created lib file"
+msgstr ""
+
+#: dlltool.c:3290
+#, c-format
+msgid "Can't open .lib file: %s: %s"
+msgstr ""
+
+#: dlltool.c:3298 dlltool.c:3320
+#, c-format
+msgid "%s is not a library"
+msgstr "%s ბიბლიáƒáƒ—ეკრáƒáƒ áƒáƒ"
+
+#: dlltool.c:3338
+#, c-format
+msgid "Import library `%s' specifies two or more dlls"
+msgstr ""
+
+#: dlltool.c:3349
+#, c-format
+msgid "Unable to determine dll name for `%s' (not an import library?)"
+msgstr ""
+
+#: dlltool.c:3566
+#, c-format
+msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
+msgstr ""
+
+#: dlltool.c:3572
+#, c-format
+msgid "Error, duplicate EXPORT with ordinals: %s"
+msgstr ""
+
+#: dlltool.c:3677
+msgid "Processing definitions"
+msgstr ""
+
+#: dlltool.c:3710
+msgid "Processed definitions"
+msgstr ""
+
+#. xgetext:c-format
+#: dlltool.c:3717 dllwrap.c:477
+#, c-format
+msgid "Usage %s <option(s)> <object-file(s)>\n"
+msgstr ""
+
+#. xgetext:c-format
+#: dlltool.c:3719
+#, c-format
+msgid " -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
+msgstr ""
+
+#: dlltool.c:3720
+#, c-format
+msgid " possible <machine>: arm[_interwork], arm64, i386, mcore[-elf]{-le|-be}, thumb\n"
+msgstr ""
+
+#: dlltool.c:3721
+#, c-format
+msgid " -e --output-exp <outname> Generate an export file.\n"
+msgstr ""
+
+#: dlltool.c:3722
+#, c-format
+msgid " -l --output-lib <outname> Generate an interface library.\n"
+msgstr ""
+
+#: dlltool.c:3723
+#, c-format
+msgid " -y --output-delaylib <outname> Create a delay-import library.\n"
+msgstr ""
+
+#: dlltool.c:3724
+#, c-format
+msgid " --deterministic-libraries\n"
+msgstr " --deterministic-libraries\n"
+
+#: dlltool.c:3726
+#, c-format
+msgid " Use zero for timestamps and uids/gids in output libraries (default)\n"
+msgstr ""
+
+#: dlltool.c:3728
+#, c-format
+msgid " Use zero for timestamps and uids/gids in output libraries\n"
+msgstr ""
+
+#: dlltool.c:3729
+#, c-format
+msgid " --non-deterministic-libraries\n"
+msgstr " --non-deterministic-libraries\n"
+
+#: dlltool.c:3731
+#, c-format
+msgid " Use actual timestamps and uids/gids in output libraries\n"
+msgstr ""
+
+#: dlltool.c:3733
+#, c-format
+msgid " Use actual timestamps and uids/gids in output libraries (default)\n"
+msgstr ""
+
+#: dlltool.c:3734
+#, c-format
+msgid " -a --add-indirect Add dll indirects to export file.\n"
+msgstr ""
+
+#: dlltool.c:3735
+#, c-format
+msgid " -D --dllname <name> Name of input dll to put into interface lib.\n"
+msgstr ""
+
+#: dlltool.c:3736
+#, c-format
+msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
+msgstr ""
+
+#: dlltool.c:3737
+#, c-format
+msgid " -z --output-def <deffile> Name of .def file to be created.\n"
+msgstr ""
+
+#: dlltool.c:3738
+#, c-format
+msgid " --export-all-symbols Export all symbols to .def\n"
+msgstr ""
+
+#: dlltool.c:3739
+#, c-format
+msgid " --no-export-all-symbols Only export listed symbols\n"
+msgstr ""
+
+#: dlltool.c:3740
+#, c-format
+msgid " --exclude-symbols <list> Don't export <list>\n"
+msgstr ""
+
+#: dlltool.c:3741
+#, c-format
+msgid " --no-default-excludes Clear default exclude symbols\n"
+msgstr ""
+
+#: dlltool.c:3742
+#, c-format
+msgid " -b --base-file <basefile> Read linker generated base file.\n"
+msgstr ""
+
+#: dlltool.c:3743
+#, c-format
+msgid " -x --no-idata4 Don't generate idata$4 section.\n"
+msgstr ""
+
+#: dlltool.c:3744
+#, c-format
+msgid " -c --no-idata5 Don't generate idata$5 section.\n"
+msgstr ""
+
+#: dlltool.c:3745
+#, c-format
+msgid " --use-nul-prefixed-import-tables Use zero prefixed idata$4 and idata$5.\n"
+msgstr ""
+
+#: dlltool.c:3746
+#, c-format
+msgid " -U --add-underscore Add underscores to all symbols in interface library.\n"
+msgstr ""
+
+#: dlltool.c:3747
+#, c-format
+msgid " --add-stdcall-underscore Add underscores to stdcall symbols in interface library.\n"
+msgstr ""
+
+#: dlltool.c:3748
+#, c-format
+msgid " --no-leading-underscore All symbols shouldn't be prefixed by an underscore.\n"
+msgstr ""
+
+#: dlltool.c:3749
+#, c-format
+msgid " --leading-underscore All symbols should be prefixed by an underscore.\n"
+msgstr ""
+
+#: dlltool.c:3750
+#, c-format
+msgid " -k --kill-at Kill @<n> from exported names.\n"
+msgstr ""
+
+#: dlltool.c:3751
+#, c-format
+msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
+msgstr ""
+
+#: dlltool.c:3752
+#, c-format
+msgid " -p --ext-prefix-alias <prefix> Add aliases with <prefix>.\n"
+msgstr ""
+
+#: dlltool.c:3753
+#, c-format
+msgid " -S --as <name> Use <name> for assembler.\n"
+msgstr ""
+
+#: dlltool.c:3754
+#, c-format
+msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
+msgstr ""
+
+#: dlltool.c:3755
+#, c-format
+msgid " -C --compat-implib Create backward compatible import library.\n"
+msgstr ""
+
+#: dlltool.c:3756
+#, c-format
+msgid " -n --no-delete Keep temp files (repeat for extra preservation).\n"
+msgstr ""
+
+#: dlltool.c:3757
+#, c-format
+msgid " -t --temp-prefix <prefix> Use <prefix> to construct temp file names.\n"
+msgstr ""
+
+#: dlltool.c:3758
+#, c-format
+msgid " -I --identify <implib> Report the name of the DLL associated with <implib>.\n"
+msgstr ""
+
+#: dlltool.c:3759
+#, c-format
+msgid " --identify-strict Causes --identify to report error when multiple DLLs.\n"
+msgstr ""
+
+#: dlltool.c:3760
+#, c-format
+msgid " -v --verbose Be verbose.\n"
+msgstr ""
+
+#: dlltool.c:3761
+#, c-format
+msgid " -V --version Display the program version.\n"
+msgstr ""
+
+#: dlltool.c:3762
+#, c-format
+msgid " -h --help Display this information.\n"
+msgstr ""
+
+#: dlltool.c:3763
+#, c-format
+msgid " @<file> Read options from <file>.\n"
+msgstr ""
+
+#: dlltool.c:3765
+#, c-format
+msgid " -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
+msgstr ""
+
+#: dlltool.c:3766
+#, c-format
+msgid " -L --linker <name> Use <name> as the linker.\n"
+msgstr ""
+
+#: dlltool.c:3767
+#, c-format
+msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
+msgstr ""
+
+#: dlltool.c:3917
+#, c-format
+msgid "Unable to open def-file: %s"
+msgstr ""
+
+#: dlltool.c:3922
+#, c-format
+msgid "Path components stripped from dllname, '%s'."
+msgstr ""
+
+#: dlltool.c:3970
+#, c-format
+msgid "Unable to open base-file: %s"
+msgstr ""
+
+#: dlltool.c:4008
+#, c-format
+msgid "Machine '%s' not supported"
+msgstr ""
+
+#: dlltool.c:4108
+#, c-format
+msgid "Warning, machine type (%d) not supported for delayimport."
+msgstr ""
+
+#: dlltool.c:4176 dllwrap.c:206
+#, c-format
+msgid "Tried file: %s"
+msgstr ""
+
+#: dlltool.c:4183 dllwrap.c:213
+#, c-format
+msgid "Using file: %s"
+msgstr ""
+
+#: dllwrap.c:296
+#, c-format
+msgid "Keeping temporary base file %s"
+msgstr ""
+
+#: dllwrap.c:298
+#, c-format
+msgid "Deleting temporary base file %s"
+msgstr ""
+
+#: dllwrap.c:312
+#, c-format
+msgid "Keeping temporary exp file %s"
+msgstr ""
+
+#: dllwrap.c:314
+#, c-format
+msgid "Deleting temporary exp file %s"
+msgstr ""
+
+#: dllwrap.c:327
+#, c-format
+msgid "Keeping temporary def file %s"
+msgstr ""
+
+#: dllwrap.c:329
+#, c-format
+msgid "Deleting temporary def file %s"
+msgstr ""
+
+#: dllwrap.c:411
+#, c-format
+msgid "pwait returns: %s"
+msgstr ""
+
+#: dllwrap.c:478
+#, c-format
+msgid " Generic options:\n"
+msgstr " ზáƒáƒ’áƒáƒ“ი პáƒáƒ áƒáƒ›áƒ”ტრები:\n"
+
+#: dllwrap.c:479
+#, c-format
+msgid " @<file> Read options from <file>\n"
+msgstr ""
+
+#: dllwrap.c:480
+#, c-format
+msgid " --quiet, -q Work quietly\n"
+msgstr ""
+
+#: dllwrap.c:481
+#, c-format
+msgid " --verbose, -v Verbose\n"
+msgstr " --verbose, -v მეტი შეტყáƒáƒ‘ინებáƒ\n"
+
+#: dllwrap.c:482
+#, c-format
+msgid " --version Print dllwrap version\n"
+msgstr ""
+
+#: dllwrap.c:483
+#, c-format
+msgid " --implib <outname> Synonym for --output-lib\n"
+msgstr ""
+
+#: dllwrap.c:484
+#, c-format
+msgid " Options for %s:\n"
+msgstr ""
+
+#: dllwrap.c:485
+#, c-format
+msgid " --driver-name <driver> Defaults to \"gcc\"\n"
+msgstr ""
+
+#: dllwrap.c:486
+#, c-format
+msgid " --driver-flags <flags> Override default ld flags\n"
+msgstr ""
+
+#: dllwrap.c:487
+#, c-format
+msgid " --dlltool-name <dlltool> Defaults to \"dlltool\"\n"
+msgstr ""
+
+#: dllwrap.c:488
+#, c-format
+msgid " --entry <entry> Specify alternate DLL entry point\n"
+msgstr ""
+
+#: dllwrap.c:489
+#, c-format
+msgid " --image-base <base> Specify image base address\n"
+msgstr ""
+
+#: dllwrap.c:490
+#, c-format
+msgid " --target <machine> i386-cygwin32 or i386-mingw32\n"
+msgstr ""
+
+#: dllwrap.c:491
+#, c-format
+msgid " --dry-run Show what needs to be run\n"
+msgstr ""
+
+#: dllwrap.c:492
+#, c-format
+msgid " --mno-cygwin Create Mingw DLL\n"
+msgstr " --mno-cygwin Mingw-ის DLL-ის შექმნáƒ\n"
+
+#: dllwrap.c:493
+#, c-format
+msgid " Options passed to DLLTOOL:\n"
+msgstr ""
+
+#: dllwrap.c:494
+#, c-format
+msgid " --machine <machine>\n"
+msgstr " --machine <მáƒáƒœáƒ¥áƒáƒœáƒ>\n"
+
+#: dllwrap.c:495
+#, c-format
+msgid " --output-exp <outname> Generate export file.\n"
+msgstr ""
+
+#: dllwrap.c:496
+#, c-format
+msgid " --output-lib <outname> Generate input library.\n"
+msgstr ""
+
+#: dllwrap.c:497
+#, c-format
+msgid " --add-indirect Add dll indirects to export file.\n"
+msgstr ""
+
+#: dllwrap.c:498
+#, c-format
+msgid " --dllname <name> Name of input dll to put into output lib.\n"
+msgstr ""
+
+#: dllwrap.c:499
+#, c-format
+msgid " --def <deffile> Name input .def file\n"
+msgstr ""
+
+#: dllwrap.c:500
+#, c-format
+msgid " --output-def <deffile> Name output .def file\n"
+msgstr ""
+
+#: dllwrap.c:501
+#, c-format
+msgid " --export-all-symbols Export all symbols to .def\n"
+msgstr ""
+
+#: dllwrap.c:502
+#, c-format
+msgid " --no-export-all-symbols Only export .drectve symbols\n"
+msgstr ""
+
+#: dllwrap.c:503
+#, c-format
+msgid " --exclude-symbols <list> Exclude <list> from .def\n"
+msgstr ""
+
+#: dllwrap.c:504
+#, c-format
+msgid " --no-default-excludes Zap default exclude symbols\n"
+msgstr ""
+
+#: dllwrap.c:505
+#, c-format
+msgid " --base-file <basefile> Read linker generated base file\n"
+msgstr ""
+
+#: dllwrap.c:506
+#, c-format
+msgid " --no-idata4 Don't generate idata$4 section\n"
+msgstr ""
+
+#: dllwrap.c:507
+#, c-format
+msgid " --no-idata5 Don't generate idata$5 section\n"
+msgstr ""
+
+#: dllwrap.c:508
+#, c-format
+msgid " -U Add underscores to .lib\n"
+msgstr ""
+
+#: dllwrap.c:509
+#, c-format
+msgid " -k Kill @<n> from exported names\n"
+msgstr ""
+
+#: dllwrap.c:510
+#, c-format
+msgid " --add-stdcall-alias Add aliases without @<n>\n"
+msgstr ""
+
+#: dllwrap.c:511
+#, c-format
+msgid " --as <name> Use <name> for assembler\n"
+msgstr ""
+
+#: dllwrap.c:512
+#, c-format
+msgid " --nodelete Keep temp files.\n"
+msgstr ""
+
+#: dllwrap.c:513
+#, c-format
+msgid " --no-leading-underscore Entrypoint without underscore\n"
+msgstr ""
+
+#: dllwrap.c:514
+#, c-format
+msgid " --leading-underscore Entrypoint with underscore.\n"
+msgstr ""
+
+#: dllwrap.c:515
+#, c-format
+msgid " Rest are passed unmodified to the language driver\n"
+msgstr ""
+
+#: dllwrap.c:640
+#, c-format
+msgid "WARNING: %s is deprecated, use gcc -shared or ld -shared instead\n"
+msgstr ""
+
+#: dllwrap.c:800
+msgid "Must provide at least one of -o or --dllname options"
+msgstr ""
+
+#: dllwrap.c:829
+msgid ""
+"no export definition file provided.\n"
+"Creating one, but that may not be what you want"
+msgstr ""
+
+#: dllwrap.c:1018
+#, c-format
+msgid "DLLTOOL name : %s\n"
+msgstr ""
+
+#: dllwrap.c:1019
+#, c-format
+msgid "DLLTOOL options : %s\n"
+msgstr ""
+
+#: dllwrap.c:1020
+#, c-format
+msgid "DRIVER name : %s\n"
+msgstr ""
+
+#: dllwrap.c:1021
+#, c-format
+msgid "DRIVER options : %s\n"
+msgstr ""
+
+#: dwarf.c:189
+msgid "Encoded value extends past end of section\n"
+msgstr ""
+
+#: dwarf.c:197
+#, c-format
+msgid "Encoded size of %d is too large to read\n"
+msgstr ""
+
+#: dwarf.c:205
+msgid "Encoded size of 0 is too small to read\n"
+msgstr ""
+
+#: dwarf.c:265 readelf.c:3946 readelf.c:12072
+msgid "unknown"
+msgstr "უცნáƒáƒ‘ი"
+
+#. Read AMOUNT bytes from PTR and store them in VAL.
+#. Checks to make sure that the read will not reach or pass END.
+#. FUNC chooses whether the value read is unsigned or signed, and may
+#. be either byte_get or byte_get_signed. If INC is true, PTR is
+#. incremented after reading the value.
+#. This macro cannot protect against PTR values derived from user input.
+#. The C standard sections 6.5.6 and 6.5.8 say attempts to do so using
+#. pointers is undefined behaviour.
+#: dwarf.c:344
+#, c-format
+msgid "internal error: attempt to read %d byte of data in to %d sized variable"
+msgid_plural "internal error: attempt to read %d bytes of data in to %d sized variable"
+msgstr[0] ""
+msgstr[1] ""
+
+#: dwarf.c:432 dwarf.c:5574
+msgid "Badly formed extended line op encountered!\n"
+msgstr ""
+
+#: dwarf.c:438
+#, c-format
+msgid " Extended opcode %d: "
+msgstr ""
+
+#: dwarf.c:443
+#, c-format
+msgid ""
+"End of Sequence\n"
+"\n"
+msgstr ""
+
+#: dwarf.c:451
+#, c-format
+msgid "Length (%zu) of DW_LNE_set_address op is too long\n"
+msgstr ""
+
+#: dwarf.c:457
+#, c-format
+msgid "set Address to %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:464
+#, c-format
+msgid "define new File Table entry\n"
+msgstr ""
+
+#: dwarf.c:465 dwarf.c:4847
+#, c-format
+msgid " Entry\tDir\tTime\tSize\tName\n"
+msgstr ""
+
+#: dwarf.c:486
+msgid "DW_LNE_define_file: Bad opcode length\n"
+msgstr ""
+
+#: dwarf.c:491
+#, c-format
+msgid "set Discriminator to %<PRIu64>\n"
+msgstr ""
+
+#: dwarf.c:557
+#, c-format
+msgid " UNKNOWN DW_LNE_HP_SFC opcode (%u)\n"
+msgstr ""
+
+#. The test against DW_LNW_hi_user is redundant due to
+#. the limited range of the unsigned char data type used
+#. for op_code.
+#. && op_code <= DW_LNE_hi_user
+#: dwarf.c:574
+#, c-format
+msgid "user defined: "
+msgstr ""
+
+#: dwarf.c:576
+#, c-format
+msgid "UNKNOWN: "
+msgstr "უცნáƒáƒ‘ი: "
+
+#: dwarf.c:577
+#, c-format
+msgid "length %d ["
+msgstr "სიგრძე %d ["
+
+#: dwarf.c:595 dwarf.c:663
+msgid "<no .debug_str section>"
+msgstr ""
+
+#: dwarf.c:599
+#, c-format
+msgid "DW_FORM_strp offset too big: %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:600 dwarf.c:627 dwarf.c:1798
+msgid "<offset is too big>"
+msgstr ""
+
+#: dwarf.c:610
+msgid "<no NUL byte at end of .debug_str section>"
+msgstr ""
+
+#: dwarf.c:622
+msgid "<no .debug_line_str section>"
+msgstr ""
+
+#: dwarf.c:626
+#, c-format
+msgid "DW_FORM_line_strp offset too big: %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:637
+msgid "<no NUL byte at end of .debug_line_str section>"
+msgstr ""
+
+#: dwarf.c:658
+msgid "<no .debug_str_offsets.dwo section>"
+msgstr ""
+
+#: dwarf.c:659
+msgid "<no .debug_str_offsets section>"
+msgstr ""
+
+#: dwarf.c:662
+msgid "<no .debug_str.dwo section>"
+msgstr ""
+
+#: dwarf.c:673
+#, c-format
+msgid "string index of %<PRIu64> converts to an offset of %#<PRIx64> which is too big for section %s\n"
+msgstr ""
+
+#: dwarf.c:677
+msgid "<string index too big>"
+msgstr ""
+
+#: dwarf.c:684
+#, c-format
+msgid "indirect offset too big: %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:685
+msgid "<indirect index offset is too big>"
+msgstr ""
+
+#: dwarf.c:695
+msgid "<no NUL byte at end of section>"
+msgstr ""
+
+#: dwarf.c:707
+msgid "Cannot fetch indexed address: the .debug_addr section is missing\n"
+msgstr ""
+
+#: dwarf.c:713
+#, c-format
+msgid "Offset into section %s too big: %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:741
+#, c-format
+msgid "Unable to locate %s section\n"
+msgstr ""
+
+#: dwarf.c:747
+#, c-format
+msgid "Section %s is too small to contain an value indexed from another section!\n"
+msgstr ""
+
+#: dwarf.c:754
+#, c-format
+msgid "Offset of %#<PRIx64> is too big for section %s\n"
+msgstr ""
+
+#. Report the missing single zero which ends the section.
+#: dwarf.c:1029
+#, c-format
+msgid "%s section not zero terminated\n"
+msgstr ""
+
+#. PR 17531: file:4bcd9ce9.
+#: dwarf.c:1056
+#, c-format
+msgid "Debug info is corrupted, abbrev size (%#<PRIx64>) is larger than abbrev section size (%#<PRIx64>)\n"
+msgstr ""
+
+#: dwarf.c:1063
+#, c-format
+msgid "Debug info is corrupted, abbrev offset (%#<PRIx64>) is larger than abbrev section size (%#<PRIx64>)\n"
+msgstr ""
+
+#: dwarf.c:1096
+#, c-format
+msgid "User TAG value: %#<PRIx64>"
+msgstr ""
+
+#: dwarf.c:1099
+#, c-format
+msgid "Unknown TAG value: %#<PRIx64>"
+msgstr ""
+
+#: dwarf.c:1120
+#, c-format
+msgid "Unknown FORM value: %lx"
+msgstr ""
+
+#: dwarf.c:1138
+#, c-format
+msgid "Unknown IDX value: %lx"
+msgstr ""
+
+#: dwarf.c:1152
+#, c-format
+msgid "%c%<PRIu64> byte block: "
+msgstr ""
+
+#: dwarf.c:1489
+#, c-format
+msgid "(DW_OP_call_ref in frame info)"
+msgstr ""
+
+#: dwarf.c:1512
+#, c-format
+msgid "size: %<PRIu64> "
+msgstr "ზáƒáƒ›áƒ: %<PRIu64> "
+
+#: dwarf.c:1514
+#, c-format
+msgid "offset: %<PRIu64> "
+msgstr "წáƒáƒœáƒáƒªáƒ•ლებáƒ: %<PRIu64> "
+
+#: dwarf.c:1530
+#, c-format
+msgid "DW_OP_GNU_push_tls_address or DW_OP_HP_unknown"
+msgstr ""
+
+#: dwarf.c:1555
+#, c-format
+msgid "(%s in frame info)"
+msgstr ""
+
+#: dwarf.c:1658
+#, c-format
+msgid "(DW_OP_GNU_variable_value in frame info)"
+msgstr ""
+
+#: dwarf.c:1711
+#, c-format
+msgid "(User defined location op %#x)"
+msgstr ""
+
+#: dwarf.c:1713
+#, c-format
+msgid "(Unknown location op %#x)"
+msgstr ""
+
+#: dwarf.c:1767
+msgid "<no links available>"
+msgstr ""
+
+#: dwarf.c:1791
+msgid "<no NUL byte at end of alt .debug_str section>"
+msgstr ""
+
+#: dwarf.c:1796
+#, c-format
+msgid "DW_FORM_GNU_strp_alt offset (%#<PRIx64>) too big or no string sections available\n"
+msgstr ""
+
+#: dwarf.c:1819
+#, c-format
+msgid "Unknown AT value: %lx"
+msgstr ""
+
+#: dwarf.c:1885
+#, c-format
+msgid "Corrupt attribute block length: %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:2057
+#, c-format
+msgid "Unable to resolve ref_addr form: uvalue %<PRIx64> >= section size %<PRIx64> (%s)\n"
+msgstr ""
+
+#: dwarf.c:2076
+#, c-format
+msgid "Unable to resolve ref form: uvalue %<PRIx64> + cu_offset %<PRIx64> > CU size %tx\n"
+msgstr ""
+
+#: dwarf.c:2087
+#, c-format
+msgid "Unexpected form %lx encountered whilst finding abbreviation for type\n"
+msgstr ""
+
+#: dwarf.c:2095
+#, c-format
+msgid "Unable to find abbreviations for CU offset %<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:2101
+#, c-format
+msgid "Empty abbreviation list encountered for CU offset %<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:2133
+#, c-format
+msgid "Unable to find entry for abbreviation %lu\n"
+msgstr ""
+
+#: dwarf.c:2287
+msgid "corrupt discr_list - not using a block form\n"
+msgstr ""
+
+#: dwarf.c:2294
+msgid "corrupt discr_list - block not long enough\n"
+msgstr ""
+
+#: dwarf.c:2329
+#, c-format
+msgid "corrupt discr_list - unrecognized discriminant byte %#x\n"
+msgstr ""
+
+#: dwarf.c:2428
+#, c-format
+msgid "implementation defined: %#<PRIx64>"
+msgstr ""
+
+#: dwarf.c:2430
+#, c-format
+msgid "unknown: %#<PRIx64>"
+msgstr "უცნáƒáƒ‘ი: %#<PRIx64>"
+
+#: dwarf.c:2461
+msgid "Corrupt attribute\n"
+msgstr "დáƒáƒ–იáƒáƒœáƒ”ბული áƒáƒ¢áƒ áƒ˜áƒ‘უტი\n"
+
+#: dwarf.c:2484
+msgid "Internal error: DW_FORM_ref_addr is not supported in DWARF version 1.\n"
+msgstr ""
+
+#: dwarf.c:2678
+msgid "Block ends prematurely\n"
+msgstr ""
+
+#. We have already displayed the form name.
+#: dwarf.c:2713 dwarf.c:2726 dwarf.c:2750
+#, c-format
+msgid "%c(offset: %#<PRIx64>): %s"
+msgstr ""
+
+#: dwarf.c:2716
+#, c-format
+msgid "%c(indirect string, offset: %#<PRIx64>): %s"
+msgstr ""
+
+#: dwarf.c:2729
+#, c-format
+msgid "%c(indirect line string, offset: %#<PRIx64>): %s"
+msgstr ""
+
+#: dwarf.c:2753
+#, c-format
+msgid "%c(indexed string: %#<PRIx64>): %s"
+msgstr ""
+
+#. We have already displayed the form name.
+#: dwarf.c:2763
+#, c-format
+msgid "%c(offset: %#<PRIx64>) %s"
+msgstr "%c(წáƒáƒœáƒáƒªáƒ•ლებáƒ: %#<PRIx64>) %s"
+
+#: dwarf.c:2766
+#, c-format
+msgid "%c(alt indirect string, offset: %#<PRIx64>) %s"
+msgstr ""
+
+#: dwarf.c:2825
+#, c-format
+msgid "loc_offset %<PRIu64> too big\n"
+msgstr ""
+
+#: dwarf.c:2855
+#, c-format
+msgid "%c(index: %#<PRIx64>): %#<PRIx64>"
+msgstr ""
+
+#: dwarf.c:2866
+#, c-format
+msgid "Unrecognized form: %#lx\n"
+msgstr ""
+
+#: dwarf.c:2880
+#, c-format
+msgid "CU @ %#<PRIx64> has multiple loclists_base values (%#<PRIx64> and %#<PRIx64>)\n"
+msgstr ""
+
+#: dwarf.c:2887
+#, c-format
+msgid "CU @ %#<PRIx64> has has a negative loclists_base value of %#<PRIx64> - treating as zero\n"
+msgstr ""
+
+#: dwarf.c:2901
+#, c-format
+msgid "CU @ %#<PRIx64> has multiple str_offsets_base values %#<PRIx64> and %#<PRIx64>)\n"
+msgstr ""
+
+#: dwarf.c:2908
+#, c-format
+msgid "CU @ %#<PRIx64> has has a negative stroffsets_base value of %#<PRIx64> - treating as zero\n"
+msgstr ""
+
+#: dwarf.c:2976
+msgid "More location offset attributes than DW_AT_GNU_locview attributes\n"
+msgstr ""
+
+#: dwarf.c:2987
+#, c-format
+msgid "The number of views (%u) is greater than the number of locations (%u)\n"
+msgstr ""
+
+#: dwarf.c:2994
+msgid "More DW_AT_GNU_locview attributes than location offset attributes\n"
+msgstr ""
+
+#: dwarf.c:3083 dwarf.c:3117 dwarf.c:3132
+#, c-format
+msgid "Unsupported form (%s) for attribute %s\n"
+msgstr ""
+
+#: dwarf.c:3179
+#, c-format
+msgid "(not inlined)"
+msgstr ""
+
+#: dwarf.c:3182
+#, c-format
+msgid "(inlined)"
+msgstr ""
+
+#: dwarf.c:3185
+#, c-format
+msgid "(declared as inline but ignored)"
+msgstr ""
+
+#: dwarf.c:3188
+#, c-format
+msgid "(declared as inline and inlined)"
+msgstr ""
+
+#: dwarf.c:3191
+#, c-format
+msgid " (Unknown inline attribute value: %#<PRIx64>)"
+msgstr ""
+
+#: dwarf.c:3243
+#, c-format
+msgid "(user defined type)"
+msgstr ""
+
+#: dwarf.c:3245
+#, c-format
+msgid "(unknown type)"
+msgstr "(უცნáƒáƒ‘ი ტიპი)"
+
+#: dwarf.c:3258
+#, c-format
+msgid "(unknown accessibility)"
+msgstr "(უცნáƒáƒ‘ი ხელმისáƒáƒ¬áƒ•დáƒáƒ›áƒáƒ‘áƒ)"
+
+#: dwarf.c:3270
+#, c-format
+msgid "(unknown visibility)"
+msgstr "(უცნáƒáƒ‘ი ხილვáƒáƒ“áƒáƒ‘áƒ)"
+
+#: dwarf.c:3283
+#, c-format
+msgid "(user specified)"
+msgstr "(მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის მითითებული)"
+
+#: dwarf.c:3285
+#, c-format
+msgid "(unknown endianity)"
+msgstr ""
+
+#: dwarf.c:3297
+#, c-format
+msgid "(unknown virtuality)"
+msgstr "(უცნáƒáƒ‘ი ვირტუáƒáƒšáƒ£áƒ áƒáƒ‘áƒ)"
+
+#: dwarf.c:3309
+#, c-format
+msgid "(unknown case)"
+msgstr ""
+
+#: dwarf.c:3327
+#, c-format
+msgid "(user defined)"
+msgstr "(მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის გáƒáƒœáƒ¡áƒáƒ–ღვრული)"
+
+#: dwarf.c:3329
+#, c-format
+msgid "(unknown convention)"
+msgstr ""
+
+#: dwarf.c:3338
+#, c-format
+msgid "(undefined)"
+msgstr "(áƒáƒ¦áƒ£áƒ¬áƒ”რელიáƒ)"
+
+#: dwarf.c:3348
+#, c-format
+msgid "(unsigned)"
+msgstr ""
+
+#: dwarf.c:3349
+#, c-format
+msgid "(leading overpunch)"
+msgstr ""
+
+#: dwarf.c:3350
+#, c-format
+msgid "(trailing overpunch)"
+msgstr ""
+
+#: dwarf.c:3351
+#, c-format
+msgid "(leading separate)"
+msgstr ""
+
+#: dwarf.c:3352
+#, c-format
+msgid "(trailing separate)"
+msgstr ""
+
+#: dwarf.c:3353 dwarf.c:3364
+#, c-format
+msgid "(unrecognised)"
+msgstr ""
+
+#: dwarf.c:3361
+#, c-format
+msgid "(no)"
+msgstr "(áƒáƒ áƒ)"
+
+#: dwarf.c:3362
+#, c-format
+msgid "(in class)"
+msgstr ""
+
+#: dwarf.c:3363
+#, c-format
+msgid "(out of class)"
+msgstr ""
+
+#: dwarf.c:3402
+#, c-format
+msgid " (location list)"
+msgstr ""
+
+#: dwarf.c:3425 dwarf.c:6830 dwarf.c:7032 dwarf.c:7207
+#, c-format
+msgid " [without DW_AT_frame_base]"
+msgstr ""
+
+#: dwarf.c:3455
+#, c-format
+msgid "Offset %#<PRIx64> used as value for DW_AT_import attribute of DIE at offset %#tx is too big.\n"
+msgstr ""
+
+#: dwarf.c:3461
+#, c-format
+msgid "\t[Abbrev Number: %ld"
+msgstr ""
+
+#: dwarf.c:3556
+#, c-format
+msgid ""
+"Raw dump of debug contents of section %s (loaded from %s):\n"
+"\n"
+msgstr ""
+
+#: dwarf.c:3559
+#, c-format
+msgid ""
+"Raw dump of debug contents of section %s:\n"
+"\n"
+msgstr ""
+
+#: dwarf.c:3564
+#, c-format
+msgid ""
+"Contents of the %s section (loaded from %s):\n"
+"\n"
+msgstr ""
+
+#: dwarf.c:3567
+#, c-format
+msgid ""
+"Contents of the %s section:\n"
+"\n"
+msgstr ""
+
+#: dwarf.c:3694
+msgid "Unexpected form in top DIE\n"
+msgstr ""
+
+#: dwarf.c:3729
+msgid "Unexpected form of DW_AT_rnglists_base in the top DIE\n"
+msgstr ""
+
+#: dwarf.c:3740
+msgid "Unexpected form of DW_AT_addr_base in the top DIE\n"
+msgstr ""
+
+#: dwarf.c:3787
+#, c-format
+msgid "Reserved length value (%#<PRIx64>) found in section %s\n"
+msgstr ""
+
+#: dwarf.c:3797
+#, c-format
+msgid "Corrupt unit length (got %#<PRIx64> expected at most %#tx) in section %s\n"
+msgstr ""
+
+#: dwarf.c:3807
+#, c-format
+msgid "No comp units in %s section ?\n"
+msgstr ""
+
+#: dwarf.c:3819
+#, c-format
+msgid "Not enough memory for a debug info array of %u entries\n"
+msgstr ""
+
+#: dwarf.c:3853
+#, c-format
+msgid "Unable to locate %s section!\n"
+msgstr ""
+
+#: dwarf.c:4020
+#, c-format
+msgid "Invalid pointer size (%d) in compunit header, using %d instead\n"
+msgstr ""
+
+#: dwarf.c:4054
+#, c-format
+msgid " Compilation Unit @ offset %#<PRIx64>:\n"
+msgstr ""
+
+#: dwarf.c:4056
+#, c-format
+msgid " Length: %#<PRIx64> (%s)\n"
+msgstr " სიგრძე: %#<PRIx64> (%s)\n"
+
+#: dwarf.c:4059
+#, c-format
+msgid " Version: %d\n"
+msgstr " ვერსიáƒ: %d\n"
+
+#: dwarf.c:4064
+#, c-format
+msgid " Unit Type: %s (%x)\n"
+msgstr " ერთეულის ტიპი: %s (%x)\n"
+
+#: dwarf.c:4068
+#, c-format
+msgid " Abbrev Offset: %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:4070
+#, c-format
+msgid " Pointer Size: %d\n"
+msgstr ""
+
+#: dwarf.c:4073
+#, c-format
+msgid " Signature: %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:4074
+#, c-format
+msgid " Type Offset: %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:4077
+#, c-format
+msgid " DWO ID: %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:4083
+#, c-format
+msgid " Section contributions:\n"
+msgstr ""
+
+#: dwarf.c:4084
+#, c-format
+msgid " .debug_abbrev.dwo: %#<PRIx64> %#zx\n"
+msgstr " .debug_abbrev.dwo: %#<PRIx64> %#zx\n"
+
+#: dwarf.c:4086
+#, c-format
+msgid " .debug_line.dwo: %#<PRIx64> %#zx\n"
+msgstr " .debug_line.dwo: %#<PRIx64> %#zx\n"
+
+#: dwarf.c:4088
+#, c-format
+msgid " .debug_loc.dwo: %#<PRIx64> %#zx\n"
+msgstr " .debug_loc.dwo: %#<PRIx64> %#zx\n"
+
+#: dwarf.c:4090
+#, c-format
+msgid " .debug_str_offsets.dwo: %#<PRIx64> %#zx\n"
+msgstr " .debug_str_offsets.dwo: %#<PRIx64> %#zx\n"
+
+#: dwarf.c:4100
+#, c-format
+msgid "CU at offset %#<PRIx64> contains corrupt or unsupported version number: %d.\n"
+msgstr ""
+
+#: dwarf.c:4112
+#, c-format
+msgid "CU at offset %#<PRIx64> contains corrupt or unsupported unit type: %d.\n"
+msgstr ""
+
+#: dwarf.c:4157
+#, c-format
+msgid " <%d><%lx>: Abbrev Number: 0\n"
+msgstr ""
+
+#: dwarf.c:4167
+#, c-format
+msgid "Bogus end-of-siblings marker detected at offset %lx in %s section\n"
+msgstr ""
+
+#: dwarf.c:4171
+msgid "Further warnings about bogus end-of-sibling markers suppressed\n"
+msgstr ""
+
+#: dwarf.c:4194
+#, c-format
+msgid " <%d><%lx>: Abbrev Number: %lu"
+msgstr ""
+
+#: dwarf.c:4198
+#, c-format
+msgid " <%d><%lx>: ...\n"
+msgstr " <%d><%lx>: ...\n"
+
+#: dwarf.c:4218
+#, c-format
+msgid "DIE at offset %#lx refers to abbreviation number %lu which does not exist\n"
+msgstr ""
+
+#: dwarf.c:4281
+#, c-format
+msgid "CU @ %#<PRIx64> has has a negative rnglists_base value of %#<PRIx64> - treating as zero\n"
+msgstr ""
+
+#: dwarf.c:4329
+msgid "DIE has locviews without loclist\n"
+msgstr ""
+
+#: dwarf.c:4440
+#, c-format
+msgid "The length field (%#<PRIx64>) in the debug_line header is wrong - the section is too small\n"
+msgstr ""
+
+#: dwarf.c:4457
+msgid "Only DWARF version 2, 3, 4 and 5 line info is currently supported.\n"
+msgstr ""
+
+#: dwarf.c:4469 dwarf.c:7370 dwarf.c:8349
+#, c-format
+msgid "The %s section contains unsupported segment selector size: %d.\n"
+msgstr ""
+
+#: dwarf.c:4486
+msgid "Invalid maximum operations per insn.\n"
+msgstr ""
+
+#: dwarf.c:4513
+msgid "Directory Table"
+msgstr "სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის ცხრილი"
+
+#: dwarf.c:4513
+msgid "File Name Table"
+msgstr "ფáƒáƒ˜áƒšáƒ˜áƒ¡ სáƒáƒ®áƒ”ლის ცხრილი"
+
+#: dwarf.c:4517
+#, c-format
+msgid "Unexpectedly large number of columns in the %s (%u)\n"
+msgstr ""
+
+#: dwarf.c:4527
+#, c-format
+msgid "%s: Corrupt format description entry\n"
+msgstr ""
+
+#: dwarf.c:4535
+#, c-format
+msgid ""
+"\n"
+" The %s is empty.\n"
+msgstr ""
+"\n"
+"%s ცáƒáƒ áƒ˜áƒ”ლიáƒ.\n"
+
+#: dwarf.c:4541
+#, c-format
+msgid "%s: Corrupt entry count %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:4547
+#, c-format
+msgid "%s: format count is zero, but the table is not empty\n"
+msgstr ""
+
+#: dwarf.c:4552
+#, c-format
+msgid ""
+"\n"
+" The %s (offset %#tx, lines %<PRIu64>, columns %u):\n"
+msgstr ""
+
+#: dwarf.c:4555
+#, c-format
+msgid " Entry"
+msgstr " ჩáƒáƒœáƒáƒ¬áƒ”რი"
+
+#: dwarf.c:4569
+#, c-format
+msgid "\tName"
+msgstr "\tსáƒáƒ®áƒ”ლ\t"
+
+#: dwarf.c:4572
+#, c-format
+msgid "\tDir"
+msgstr "\tსáƒáƒ¥áƒ¦áƒšáƒ“"
+
+#: dwarf.c:4575
+#, c-format
+msgid "\tTime"
+msgstr "\tდრáƒ"
+
+#: dwarf.c:4578
+#, c-format
+msgid "\tSize"
+msgstr "\tზáƒáƒ›áƒ"
+
+#: dwarf.c:4581
+#, c-format
+msgid "\tMD5\t\t\t"
+msgstr "\tMD5\t\t\t"
+
+#: dwarf.c:4584
+#, c-format
+msgid "\t(Unknown format content type %<PRIu64>)"
+msgstr ""
+
+#: dwarf.c:4618
+#, c-format
+msgid ""
+"\n"
+"%s: Corrupt entries list\n"
+msgstr ""
+
+#: dwarf.c:4644
+msgid "corrupt .debug_sup section: size is too small\n"
+msgstr ""
+
+#: dwarf.c:4651
+msgid "corrupt .debug_sup section: version < 5\n"
+msgstr ""
+
+#: dwarf.c:4655
+msgid "corrupt .debug_sup section: is_supplementary not 0 or 1\n"
+msgstr ""
+
+#: dwarf.c:4659
+msgid "corrupt .debug_sup section: filename not empty in supplementary section\n"
+msgstr ""
+
+#: dwarf.c:4664
+msgid "corrupt .debug_sup section: filename is not NUL terminated\n"
+msgstr ""
+
+#: dwarf.c:4672
+msgid "corrupt .debug_sup section: bad LEB128 field for checksum length\n"
+msgstr ""
+
+#: dwarf.c:4678
+msgid "corrupt .debug_sup section: checksum length is longer than the remaining section length\n"
+msgstr ""
+
+#: dwarf.c:4683
+#, c-format
+msgid "corrupt .debug_sup section: there are %#<PRIx64> extra, unused bytes at the end of the section\n"
+msgstr ""
+
+#: dwarf.c:4688
+#, c-format
+msgid " Version: %u\n"
+msgstr " ვერსიáƒ: %u\n"
+
+#: dwarf.c:4689
+#, c-format
+msgid " Is Supp: %u\n"
+msgstr " მხáƒáƒ áƒ“áƒáƒ­áƒ”რილიáƒ: %u\n"
+
+#: dwarf.c:4690
+#, c-format
+msgid " Filename: %s\n"
+msgstr " ფáƒáƒ˜áƒšáƒ˜áƒ¡ სáƒáƒ®áƒ”ლი: %s\n"
+
+#: dwarf.c:4691
+#, c-format
+msgid " Checksum Len: %<PRIu64>\n"
+msgstr " სáƒáƒ™áƒáƒœáƒ¢áƒ áƒáƒšáƒ ჯáƒáƒ›áƒ˜áƒ¡ სიგრძე: %<PRIu64>\n"
+
+#: dwarf.c:4694
+#, c-format
+msgid " Checksum: "
+msgstr " სáƒáƒ™áƒáƒœáƒ¢áƒ áƒáƒšáƒ ჯáƒáƒ›áƒ˜: "
+
+#: dwarf.c:4742 dwarf.c:5160
+msgid "Partial .debug_line. section encountered without a prior full .debug_line section\n"
+msgstr ""
+
+#: dwarf.c:4755
+#, c-format
+msgid " Offset: %#tx\n"
+msgstr " წáƒáƒœáƒáƒªáƒ•ლებáƒ: %#tx\n"
+
+#: dwarf.c:4756
+#, c-format
+msgid " Length: %<PRId64>\n"
+msgstr " სიგრძე: %<PRId64>\n"
+
+#: dwarf.c:4757
+#, c-format
+msgid " DWARF Version: %d\n"
+msgstr " DWARF-ის ვერსიáƒ: %d\n"
+
+#: dwarf.c:4760
+#, c-format
+msgid " Address size (bytes): %d\n"
+msgstr " მისáƒáƒ›áƒáƒ áƒ—ის ზáƒáƒ›áƒ (ბáƒáƒ˜áƒ¢áƒ”ბში): %d\n"
+
+#: dwarf.c:4761
+#, c-format
+msgid " Segment selector (bytes): %d\n"
+msgstr ""
+
+#: dwarf.c:4763
+#, c-format
+msgid " Prologue Length: %d\n"
+msgstr ""
+
+#: dwarf.c:4764
+#, c-format
+msgid " Minimum Instruction Length: %d\n"
+msgstr ""
+
+#: dwarf.c:4766
+#, c-format
+msgid " Maximum Ops per Instruction: %d\n"
+msgstr ""
+
+#: dwarf.c:4767
+#, c-format
+msgid " Initial value of 'is_stmt': %d\n"
+msgstr ""
+
+#: dwarf.c:4768
+#, c-format
+msgid " Line Base: %d\n"
+msgstr ""
+
+#: dwarf.c:4769
+#, c-format
+msgid " Line Range: %d\n"
+msgstr ""
+
+#: dwarf.c:4770
+#, c-format
+msgid " Opcode Base: %d\n"
+msgstr ""
+
+#: dwarf.c:4775 dwarf.c:5176
+msgid "Line range of 0 is invalid, using 1 instead\n"
+msgstr ""
+
+#: dwarf.c:4787
+msgid "Line Base extends beyond end of section\n"
+msgstr ""
+
+#: dwarf.c:4791
+#, c-format
+msgid ""
+"\n"
+" Opcodes:\n"
+msgstr ""
+
+#: dwarf.c:4794
+#, c-format
+msgid " Opcode %d has %d arg\n"
+msgid_plural " Opcode %d has %d args\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: dwarf.c:4814
+#, c-format
+msgid ""
+"\n"
+" The Directory Table is empty.\n"
+msgstr ""
+
+#: dwarf.c:4819
+#, c-format
+msgid ""
+"\n"
+" The Directory Table (offset %#tx):\n"
+msgstr ""
+
+#: dwarf.c:4842
+#, c-format
+msgid ""
+"\n"
+" The File Name Table is empty.\n"
+msgstr ""
+
+#: dwarf.c:4845
+#, c-format
+msgid ""
+"\n"
+" The File Name Table (offset %#tx):\n"
+msgstr ""
+
+#: dwarf.c:4870
+msgid "Corrupt file name table entry\n"
+msgstr ""
+
+#: dwarf.c:4887
+#, c-format
+msgid " No Line Number Statements.\n"
+msgstr ""
+
+#: dwarf.c:4890
+#, c-format
+msgid " Line Number Statements:\n"
+msgstr ""
+
+#: dwarf.c:4912
+#, c-format
+msgid " Special opcode %d: advance Address by %<PRIu64> to %#<PRIx64>%s"
+msgstr ""
+
+#: dwarf.c:4917 dwarf.c:4938 dwarf.c:4980 dwarf.c:5000 dwarf.c:5048
+#: dwarf.c:5068
+msgid " (reset view)"
+msgstr ""
+
+#: dwarf.c:4932
+#, c-format
+msgid " Special opcode %d: advance Address by %<PRIu64> to %#<PRIx64>[%d]%s"
+msgstr ""
+
+#: dwarf.c:4942
+#, c-format
+msgid " and Line by %d to %d"
+msgstr ""
+
+#: dwarf.c:4945 dwarf.c:4962
+#, c-format
+msgid " (view %u)\n"
+msgstr ""
+
+#: dwarf.c:4960
+#, c-format
+msgid " Copy"
+msgstr " კáƒáƒžáƒ˜áƒ áƒ”ბáƒ"
+
+#: dwarf.c:4976
+#, c-format
+msgid " Advance PC by %<PRIu64> to %#<PRIx64>%s\n"
+msgstr ""
+
+#: dwarf.c:4995
+#, c-format
+msgid " Advance PC by %<PRIu64> to %#<PRIx64>[%d]%s\n"
+msgstr ""
+
+#: dwarf.c:5007
+#, c-format
+msgid " Advance Line by %d to %d\n"
+msgstr ""
+
+#: dwarf.c:5013
+#, c-format
+msgid " Set File Name to entry %<PRIu64> in the File Name Table\n"
+msgstr ""
+
+#: dwarf.c:5020
+#, c-format
+msgid " Set column to %<PRIu64>\n"
+msgstr ""
+
+#: dwarf.c:5027
+#, c-format
+msgid " Set is_stmt to %d\n"
+msgstr ""
+
+#: dwarf.c:5032
+#, c-format
+msgid " Set basic block\n"
+msgstr ""
+
+#: dwarf.c:5044
+#, c-format
+msgid " Advance PC by constant %<PRIu64> to %#<PRIx64>%s\n"
+msgstr ""
+
+#: dwarf.c:5063
+#, c-format
+msgid " Advance PC by constant %<PRIu64> to %#<PRIx64>[%d]%s\n"
+msgstr ""
+
+#: dwarf.c:5076
+#, c-format
+msgid " Advance PC by fixed size amount %<PRIu64> to %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:5083
+#, c-format
+msgid " Set prologue_end to true\n"
+msgstr ""
+
+#: dwarf.c:5087
+#, c-format
+msgid " Set epilogue_begin to true\n"
+msgstr ""
+
+#: dwarf.c:5092
+#, c-format
+msgid " Set ISA to %<PRIu64>\n"
+msgstr ""
+
+#: dwarf.c:5096 dwarf.c:5773
+#, c-format
+msgid " Unknown opcode %d with operands: "
+msgstr ""
+
+#: dwarf.c:5189
+#, c-format
+msgid "opcode base of %d extends beyond end of section\n"
+msgstr ""
+
+#: dwarf.c:5204
+#, c-format
+msgid "Unexpectedly large number of columns in the directory name table (%u)\n"
+msgstr ""
+
+#: dwarf.c:5216 dwarf.c:5246 dwarf.c:5276
+msgid "Corrupt directories list\n"
+msgstr ""
+
+#: dwarf.c:5224
+#, c-format
+msgid "number of directories (0x%x) exceeds size of section %s\n"
+msgstr ""
+
+#: dwarf.c:5284
+#, c-format
+msgid "Unexpectedly large number of columns in the file name table (%u)\n"
+msgstr ""
+
+#: dwarf.c:5297 dwarf.c:5328 dwarf.c:5375
+msgid "Corrupt file name list\n"
+msgstr ""
+
+#: dwarf.c:5305
+#, c-format
+msgid "number of files (0x%x) exceeds size of section %s\n"
+msgstr ""
+
+#: dwarf.c:5397
+msgid "directory table ends unexpectedly\n"
+msgstr ""
+
+#: dwarf.c:5437
+msgid "file table ends unexpectedly\n"
+msgstr ""
+
+#: dwarf.c:5470
+#, c-format
+msgid "CU: No directory table\n"
+msgstr ""
+
+#: dwarf.c:5472
+#, c-format
+msgid "CU: %s:\n"
+msgstr "CU: %s:\n"
+
+#: dwarf.c:5482 dwarf.c:5814 readelf.c:7990 readelf.c:8086 readelf.c:8103
+#: readelf.c:8120 readelf.c:8934 readelf.c:13173 readelf.c:13835
+#: readelf.c:13848 readelf.c:19456 readelf.c:19488
+msgid "<unknown>"
+msgstr "<უცნáƒáƒ‘ი>"
+
+#: dwarf.c:5489 dwarf.c:5700
+#, c-format
+msgid "directory index %u >= number of directories %u\n"
+msgstr ""
+
+#: dwarf.c:5492 dwarf.c:5808 elfcomm.c:776 readelf.c:980 readelf.c:9112
+#: readelf.c:9725 readelf.c:11751 readelf.c:14142 readelf.c:14208
+#: readelf.c:14212 readelf.c:14326 readelf.c:18196 readelf.c:18286
+#: readelf.c:18879 readelf.c:18898 readelf.c:19017 readelf.c:19465
+#: readelf.c:20628 readelf.c:20631
+#, c-format
+msgid "<corrupt>"
+msgstr "<corrupt>"
+
+#: dwarf.c:5498
+#, c-format
+msgid "CU: %s/%s:\n"
+msgstr "CU: %s/%s:\n"
+
+#: dwarf.c:5508
+#, c-format
+msgid "File name Line number Starting address View Stmt\n"
+msgstr ""
+
+#: dwarf.c:5510
+#, c-format
+msgid "File name Line number Starting address View Stmt\n"
+msgstr ""
+
+#: dwarf.c:5513
+#, c-format
+msgid "CU: Empty file name table\n"
+msgstr ""
+
+#: dwarf.c:5620
+#, c-format
+msgid "UNKNOWN (%u): length %ld\n"
+msgstr ""
+
+#: dwarf.c:5670
+#, c-format
+msgid ""
+"\n"
+" [Use file table entry %d]\n"
+msgstr ""
+
+#: dwarf.c:5674 dwarf.c:5806
+#, c-format
+msgid "file index %u >= number of files %u\n"
+msgstr ""
+
+#: dwarf.c:5676
+#, c-format
+msgid ""
+"\n"
+" <over large file table index %u>"
+msgstr ""
+
+#: dwarf.c:5690
+#, c-format
+msgid ""
+"\n"
+" [Use file %s in directory table entry %d]\n"
+msgstr ""
+
+#: dwarf.c:5703
+#, c-format
+msgid ""
+"\n"
+" <over large directory table entry %u>\n"
+msgstr ""
+
+#: dwarf.c:5769
+#, c-format
+msgid " Set ISA to %lu\n"
+msgstr ""
+
+#: dwarf.c:5976
+msgid "no info"
+msgstr "ინფáƒáƒ áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ გáƒáƒ áƒ”შე"
+
+#: dwarf.c:5977
+msgid "type"
+msgstr "ტიპი"
+
+#: dwarf.c:5978
+msgid "variable"
+msgstr "ცვლáƒáƒ“ი"
+
+#: dwarf.c:5979
+msgid "function"
+msgstr "ფუნქციáƒ"
+
+#: dwarf.c:5980
+msgid "other"
+msgstr "სხვáƒ"
+
+#: dwarf.c:5981
+msgid "unused5"
+msgstr ""
+
+#: dwarf.c:5982
+msgid "unused6"
+msgstr ""
+
+#: dwarf.c:5983
+msgid "unused7"
+msgstr ""
+
+#: dwarf.c:6021
+#, c-format
+msgid "Debug info is corrupted, %s header at %#lx has length %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:6036 dwarf.c:7777
+#, c-format
+msgid ".debug_info offset of %#<PRIx64> in %s section does not point to a CU header.\n"
+msgstr ""
+
+#: dwarf.c:6042
+#, c-format
+msgid " Length: %<PRId64>\n"
+msgstr ""
+
+#: dwarf.c:6044
+#, c-format
+msgid " Version: %d\n"
+msgstr ""
+
+#: dwarf.c:6046
+#, c-format
+msgid " Offset into .debug_info section: %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:6048
+#, c-format
+msgid " Size of area in .debug_info section: %<PRId64>\n"
+msgstr ""
+
+#: dwarf.c:6057
+msgid "Only DWARF 2 and 3 pubnames are currently supported\n"
+msgstr ""
+
+#: dwarf.c:6065
+#, c-format
+msgid ""
+"\n"
+" Offset Kind Name\n"
+msgstr ""
+
+#: dwarf.c:6067
+#, c-format
+msgid ""
+"\n"
+" Offset\tName\n"
+msgstr ""
+
+#: dwarf.c:6101
+msgid "s"
+msgstr "წმ"
+
+#: dwarf.c:6101
+msgid "g"
+msgstr "გ"
+
+#: dwarf.c:6159
+#, c-format
+msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n"
+msgstr ""
+
+#: dwarf.c:6165
+#, c-format
+msgid " DW_MACINFO_end_file\n"
+msgstr ""
+
+#: dwarf.c:6172
+#, c-format
+msgid " DW_MACINFO_define - lineno : %d macro : %*s\n"
+msgstr ""
+
+#: dwarf.c:6182
+#, c-format
+msgid " DW_MACINFO_undef - lineno : %d macro : %*s\n"
+msgstr ""
+
+#: dwarf.c:6195
+#, c-format
+msgid " DW_MACINFO_vendor_ext - constant : %d string : %*s\n"
+msgstr ""
+
+#: dwarf.c:6347
+#, c-format
+msgid "Expected to find a version number of 4 or 5 in section %s but found %d instead\n"
+msgstr ""
+
+#: dwarf.c:6354
+#, c-format
+msgid " Offset: %#<PRIx64>\n"
+msgstr " წáƒáƒœáƒáƒªáƒ•ლებáƒ: %#<PRIx64>\n"
+
+#: dwarf.c:6355
+#, c-format
+msgid " Version: %d\n"
+msgstr " ვერსიáƒ: %d\n"
+
+#: dwarf.c:6356
+#, c-format
+msgid " Offset size: %d\n"
+msgstr " წáƒáƒœáƒáƒªáƒ•ლების ზáƒáƒ›áƒ: %d\n"
+
+#: dwarf.c:6360
+#, c-format
+msgid " Offset into .debug_line: %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:6374
+#, c-format
+msgid " Extension opcode arguments:\n"
+msgstr ""
+
+#: dwarf.c:6381
+#, c-format
+msgid " DW_MACRO_%02x has no arguments\n"
+msgstr ""
+
+#: dwarf.c:6384
+#, c-format
+msgid " DW_MACRO_%02x arguments: "
+msgstr ""
+
+#: dwarf.c:6410
+#, c-format
+msgid "Invalid extension opcode form %s\n"
+msgstr ""
+
+#: dwarf.c:6427
+msgid ".debug_macro section not zero terminated\n"
+msgstr ""
+
+#: dwarf.c:6441
+#, c-format
+msgid " DW_MACRO_define - lineno : %d macro : %*s\n"
+msgstr ""
+
+#: dwarf.c:6451
+#, c-format
+msgid " DW_MACRO_undef - lineno : %d macro : %*s\n"
+msgstr ""
+
+#: dwarf.c:6466
+msgid "DW_MACRO_start_file used, but no .debug_line offset provided.\n"
+msgstr ""
+
+#: dwarf.c:6472
+#, c-format
+msgid " DW_MACRO_start_file - lineno: %d filenum: %d\n"
+msgstr ""
+
+#: dwarf.c:6475
+#, c-format
+msgid " DW_MACRO_start_file - lineno: %d filenum: %d filename: %s%s%s\n"
+msgstr ""
+
+#: dwarf.c:6483
+#, c-format
+msgid " DW_MACRO_end_file\n"
+msgstr " DW_MACRO_end_file\n"
+
+#: dwarf.c:6493
+#, c-format
+msgid " DW_MACRO_define_strp - lineno : %d macro : %s\n"
+msgstr ""
+
+#: dwarf.c:6504
+#, c-format
+msgid " DW_MACRO_undef_strp - lineno : %d macro : %s\n"
+msgstr ""
+
+#: dwarf.c:6510
+#, c-format
+msgid " DW_MACRO_import - offset : %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:6517
+#, c-format
+msgid " DW_MACRO_define_sup - lineno : %d macro offset : %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:6525
+#, c-format
+msgid " DW_MACRO_undef_sup - lineno : %d macro offset : %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:6532
+#, c-format
+msgid " DW_MACRO_import_sup - offset : %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:6547
+#, c-format
+msgid "(with offset %#<PRIx64>) "
+msgstr ""
+
+#: dwarf.c:6548
+#, c-format
+msgid "lineno : %d macro : %s\n"
+msgstr ""
+
+#: dwarf.c:6555
+#, c-format
+msgid " <Target Specific macro op: %#x - UNHANDLED"
+msgstr ""
+
+#: dwarf.c:6561
+#, c-format
+msgid " Unknown macro opcode %02x seen\n"
+msgstr ""
+
+#: dwarf.c:6572
+#, c-format
+msgid " DW_MACRO_%02x\n"
+msgstr " DW_MACRO_%02x\n"
+
+#: dwarf.c:6575
+#, c-format
+msgid " DW_MACRO_%02x -"
+msgstr " DW_MACRO_%02x -"
+
+#: dwarf.c:6622
+#, c-format
+msgid " Number TAG (%#<PRIx64>)\n"
+msgstr ""
+
+#: dwarf.c:6631
+msgid "has children"
+msgstr ""
+
+#: dwarf.c:6631
+msgid "no children"
+msgstr ""
+
+#: dwarf.c:6695
+#, c-format
+msgid "location view pair\n"
+msgstr ""
+
+#: dwarf.c:6726
+#, c-format
+msgid "No debug information available for loc lists of entry: %u\n"
+msgstr ""
+
+#: dwarf.c:6738 dwarf.c:6879 dwarf.c:7100
+#, c-format
+msgid "Invalid pointer size (%d) in debug info for entry %d\n"
+msgstr ""
+
+#: dwarf.c:6750 dwarf.c:6803 dwarf.c:6812 dwarf.c:6891 dwarf.c:7006
+#: dwarf.c:7014 dwarf.c:7112 dwarf.c:7184 dwarf.c:7192
+#, c-format
+msgid "Location list starting at offset %#<PRIx64> is not terminated.\n"
+msgstr ""
+
+#: dwarf.c:6772 dwarf.c:6919 dwarf.c:7149 dwarf.c:8148 dwarf.c:8209
+#, c-format
+msgid "<End of list>\n"
+msgstr ""
+
+#: dwarf.c:6784 dwarf.c:6929 dwarf.c:6964 dwarf.c:8218 dwarf.c:8242
+#, c-format
+msgid "(base address)\n"
+msgstr ""
+
+#: dwarf.c:6798 dwarf.c:6913 dwarf.c:7138
+#, c-format
+msgid ""
+"views at %8.8<PRIx64> for:\n"
+" %*s "
+msgstr ""
+
+#: dwarf.c:6833 dwarf.c:7035 dwarf.c:8167 dwarf.c:8275
+msgid " (start == end)"
+msgstr ""
+
+#: dwarf.c:6835 dwarf.c:7037 dwarf.c:8169 dwarf.c:8277
+msgid " (start > end)"
+msgstr ""
+
+#: dwarf.c:6925
+#, c-format
+msgid "(index into .debug_addr) "
+msgstr ""
+
+#: dwarf.c:6981
+#, c-format
+msgid "View pair entry in loclist with locviews attribute\n"
+msgstr ""
+
+#: dwarf.c:6988
+#, c-format
+msgid "views for:\n"
+msgstr ""
+
+#: dwarf.c:6993
+#, c-format
+msgid "Invalid location list entry type %d\n"
+msgstr ""
+
+#: dwarf.c:7046
+#, c-format
+msgid "Trailing view pair not used in a range"
+msgstr ""
+
+#: dwarf.c:7088
+#, c-format
+msgid "No debug information for loc lists of entry: %u\n"
+msgstr ""
+
+#: dwarf.c:7155
+#, c-format
+msgid "(base address selection entry)\n"
+msgstr ""
+
+#: dwarf.c:7176
+#, c-format
+msgid "Unknown location list entry type 0x%x.\n"
+msgstr ""
+
+#: dwarf.c:7260
+#, c-format
+msgid "Table at Offset %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:7276 dwarf.c:8340
+#, c-format
+msgid " Length: %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:7277 dwarf.c:8341
+#, c-format
+msgid " DWARF version: %u\n"
+msgstr ""
+
+#: dwarf.c:7278 dwarf.c:8342
+#, c-format
+msgid " Address size: %u\n"
+msgstr ""
+
+#: dwarf.c:7279 dwarf.c:8343
+#, c-format
+msgid " Segment size: %u\n"
+msgstr ""
+
+#: dwarf.c:7280 dwarf.c:8344
+#, c-format
+msgid " Offset entries: %u\n"
+msgstr ""
+
+#: dwarf.c:7284
+#, c-format
+msgid "The %s section contains an unsupported segment selector size: %d.\n"
+msgstr ""
+
+#: dwarf.c:7292
+#, c-format
+msgid ""
+"\n"
+" Offset Entries starting at %#tx:\n"
+msgstr ""
+
+#: dwarf.c:7300 dwarf.c:8371
+#, c-format
+msgid " [%6u] %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:7339 dwarf.c:7627 dwarf.c:7875 dwarf.c:7999 dwarf.c:8410
+#, c-format
+msgid ""
+"\n"
+"The %s section is empty.\n"
+msgstr ""
+
+#: dwarf.c:7359
+#, c-format
+msgid "The %s section contains corrupt or unsupported version number: %d.\n"
+msgstr ""
+
+#: dwarf.c:7386 dwarf.c:7881 dwarf.c:8418
+#, c-format
+msgid "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"
+msgstr ""
+
+#: dwarf.c:7433
+msgid "No location lists in .debug_info section!\n"
+msgstr ""
+
+#: dwarf.c:7441
+#, c-format
+msgid ""
+" Warning: This section has relocations - addresses seen here may not be accurate.\n"
+"\n"
+msgstr ""
+
+#: dwarf.c:7444 dwarf.c:7502
+#, c-format
+msgid " Offset Begin End Expression\n"
+msgstr ""
+
+#: dwarf.c:7541 dwarf.c:7545
+#, c-format
+msgid "There is a hole [%#tx - %#<PRIx64>] in %s section.\n"
+msgstr ""
+
+#: dwarf.c:7550
+#, c-format
+msgid "There is an overlap [%#tx - %#<PRIx64>] in %s section.\n"
+msgstr ""
+
+#: dwarf.c:7558
+#, c-format
+msgid "Offset %#<PRIx64> is bigger than %s section size.\n"
+msgstr ""
+
+#: dwarf.c:7565
+#, c-format
+msgid "View Offset %#<PRIx64> is bigger than %s section size.\n"
+msgstr ""
+
+#: dwarf.c:7582
+msgid "DWO is not yet supported.\n"
+msgstr ""
+
+#: dwarf.c:7599
+msgid "Hole and overlap detection requires adjacent view lists and loclists.\n"
+msgstr ""
+
+#: dwarf.c:7608
+#, c-format
+msgid "There is %ld unused byte at the end of section %s\n"
+msgid_plural "There are %ld unused bytes at the end of section %s\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: dwarf.c:7703
+msgid "Section name must be provided \n"
+msgstr ""
+
+#: dwarf.c:7711
+#, c-format
+msgid "SFrame decode failure: %s\n"
+msgstr ""
+
+#: dwarf.c:7715
+#, c-format
+msgid "Contents of the SFrame section %s:"
+msgstr ""
+
+#: dwarf.c:7763
+#, c-format
+msgid "Debug info is corrupted, %s header at %#<PRIx64> has length %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:7791
+msgid "Only DWARF 2 and 3 aranges are currently supported.\n"
+msgstr ""
+
+#: dwarf.c:7795
+#, c-format
+msgid " Length: %<PRId64>\n"
+msgstr ""
+
+#: dwarf.c:7796
+#, c-format
+msgid " Version: %d\n"
+msgstr ""
+
+#: dwarf.c:7797
+#, c-format
+msgid " Offset into .debug_info: %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:7799
+#, c-format
+msgid " Pointer Size: %d\n"
+msgstr ""
+
+#: dwarf.c:7800
+#, c-format
+msgid " Segment Size: %d\n"
+msgstr ""
+
+#: dwarf.c:7807
+#, c-format
+msgid "Invalid address size in %s section!\n"
+msgstr ""
+
+#: dwarf.c:7817
+msgid "Pointer size + Segment size is not a power of two.\n"
+msgstr ""
+
+#: dwarf.c:7822
+#, c-format
+msgid ""
+"\n"
+" Address Length\n"
+msgstr ""
+
+#: dwarf.c:7824
+#, c-format
+msgid ""
+"\n"
+" Address Length\n"
+msgstr ""
+
+#: dwarf.c:7901
+#, c-format
+msgid "Corrupt address base (%#<PRIx64>) found in debug section %u\n"
+msgstr ""
+
+#: dwarf.c:7919
+#, c-format
+msgid " For compilation unit at offset %#<PRIx64>:\n"
+msgstr ""
+
+#: dwarf.c:7922
+#, c-format
+msgid "\tIndex\tAddress\n"
+msgstr ""
+
+#: dwarf.c:7934
+#, c-format
+msgid "Corrupt %s section: expecting header size of 8 or 16, but found %zd instead\n"
+msgstr ""
+
+#: dwarf.c:7945
+#, c-format
+msgid "Corrupt %s section: unit_length field of %#<PRIx64> is invalid\n"
+msgstr ""
+
+#: dwarf.c:7952
+#, c-format
+msgid "Corrupt %s section: expecting version number 5 in header but found %d instead\n"
+msgstr ""
+
+#: dwarf.c:7967
+#, c-format
+msgid "Corrupt %s section: address size (%x) is wrong\n"
+msgstr ""
+
+#: dwarf.c:7975
+#, c-format
+msgid "\t%d:\t"
+msgstr "\t%d:\t"
+
+#: dwarf.c:8047 dwarf.c:8071
+#, c-format
+msgid " Length: %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:8048 dwarf.c:8073
+#, c-format
+msgid " Index Offset [String]\n"
+msgstr ""
+
+#: dwarf.c:8056
+#, c-format
+msgid "Section %s is too small %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:8064
+#, c-format
+msgid "Unexpected version number in str_offset header: %#x\n"
+msgstr ""
+
+#: dwarf.c:8069
+#, c-format
+msgid "Unexpected value in str_offset header's padding field: %#x\n"
+msgstr ""
+
+#: dwarf.c:8072
+#, c-format
+msgid " Version: %#x\n"
+msgstr ""
+
+#: dwarf.c:8196
+#, c-format
+msgid "Range list starting at offset %#<PRIx64> is not terminated.\n"
+msgstr ""
+
+#: dwarf.c:8214
+#, c-format
+msgid "(base address index) "
+msgstr ""
+
+#: dwarf.c:8254
+#, c-format
+msgid "Invalid range list entry type %d\n"
+msgstr ""
+
+#: dwarf.c:8322
+#, c-format
+msgid "The length field (%#<PRIx64>) in the debug_rnglists header is wrong - the section is too small\n"
+msgstr ""
+
+#: dwarf.c:8339
+#, c-format
+msgid " Table at Offset: %#<PRIx64>:\n"
+msgstr ""
+
+#: dwarf.c:8357
+msgid "Only DWARF version 5+ debug_rnglists info is currently supported.\n"
+msgstr ""
+
+#: dwarf.c:8364
+#, c-format
+msgid ""
+"\n"
+" Offsets starting at %#tx:\n"
+msgstr ""
+
+#. This can happen when the file was compiled with -gsplit-debug
+#. which removes references to range lists from the primary .o file.
+#: dwarf.c:8432
+#, c-format
+msgid "No range lists referenced by .debug_info section.\n"
+msgstr ""
+
+#: dwarf.c:8462 dwarf.c:8498
+#, c-format
+msgid " Offset Begin End\n"
+msgstr ""
+
+#: dwarf.c:8481
+#, c-format
+msgid "Corrupt pointer size (%d) in debug entry at offset %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:8488
+#, c-format
+msgid "Corrupt offset (%#<PRIx64>) in range entry %u\n"
+msgstr ""
+
+#: dwarf.c:8523
+#, c-format
+msgid "There is a hole [%#tx - %#tx] in %s section.\n"
+msgstr ""
+
+#: dwarf.c:8531
+#, c-format
+msgid "There is an overlap [%#tx - %#tx] in %s section.\n"
+msgstr ""
+
+#: dwarf.c:8621
+#, c-format
+msgid "Unfeasibly large register number: %u\n"
+msgstr ""
+
+#: dwarf.c:8635
+#, c-format
+msgid "Out of memory allocating %u columns in dwarf frame arrays\n"
+msgstr ""
+
+#: dwarf.c:9147
+msgid "No terminator for augmentation name\n"
+msgstr ""
+
+#: dwarf.c:9165
+#, c-format
+msgid "Invalid pointer size (%d) in CIE data\n"
+msgstr ""
+
+#: dwarf.c:9173
+#, c-format
+msgid "Invalid segment size (%d) in CIE data\n"
+msgstr ""
+
+#: dwarf.c:9209 dwarf.c:9839
+#, c-format
+msgid "Augmentation data too long: %#<PRIx64>, expected at most %#tx\n"
+msgstr ""
+
+#: dwarf.c:9294
+#, c-format
+msgid " Augmentation data: "
+msgstr ""
+
+#: dwarf.c:9451
+msgid ".eh_frame_hdr section is too small\n"
+msgstr ""
+
+#: dwarf.c:9458
+#, c-format
+msgid "Unsupported .eh_frame_hdr version %u\n"
+msgstr ""
+
+#: dwarf.c:9462 dwarf.c:11394
+#, c-format
+msgid " Version: %u\n"
+msgstr ""
+
+#. Strictly speaking this is the encoding format of the eh_frame_ptr field below.
+#: dwarf.c:9466
+#, c-format
+msgid " Pointer Encoding Format: %#x (%s)\n"
+msgstr ""
+
+#: dwarf.c:9469
+#, c-format
+msgid " Count Encoding Format: %#x (%s)\n"
+msgstr ""
+
+#: dwarf.c:9472
+#, c-format
+msgid " Table Encoding Format: %#x (%s)\n"
+msgstr ""
+
+#: dwarf.c:9481
+msgid "unable to read eh_frame_ptr field in .eh_frame_hdr section\n"
+msgstr ""
+
+#: dwarf.c:9484
+#, c-format
+msgid " Start of frame section: %#<PRIx64>"
+msgstr ""
+
+#: dwarf.c:9488
+#, c-format
+msgid " (offset: %#<PRIx64>)"
+msgstr " (წáƒáƒœáƒáƒªáƒ•ლებáƒ: %#<PRIx64>)"
+
+#: dwarf.c:9495
+msgid "It is suspicious to have a .eh_frame_hdr section with an empty search table\n"
+msgstr ""
+
+#: dwarf.c:9501
+msgid "The count field format should be absolute, not relative to an address\n"
+msgstr ""
+
+#: dwarf.c:9508
+msgid "unable to read fde_count field in .eh_frame_hdr section\n"
+msgstr ""
+
+#: dwarf.c:9511
+#, c-format
+msgid " Entries in search table: %#<PRIx64>"
+msgstr ""
+
+#: dwarf.c:9517
+msgid "It is suspicious to have a .eh_frame_hdr section an empty table but a non empty count field\n"
+msgstr ""
+
+#: dwarf.c:9531
+#, c-format
+msgid "Failed to read location field for entry %#<PRIx64> in the .eh_frame_hdr's search table\n"
+msgstr ""
+
+#: dwarf.c:9539
+#, c-format
+msgid "Failed to read address field for entry %#<PRIx64> in the .eh_frame_hdr's search table\n"
+msgstr ""
+
+#: dwarf.c:9568
+msgid "bad register: "
+msgstr ""
+
+#: dwarf.c:9739
+msgid "Failed to read CIE information\n"
+msgstr ""
+
+#: dwarf.c:9750 dwarf.c:9771 dwarf.c:9800
+msgid "Invalid max register\n"
+msgstr ""
+
+#. PR 17512: file: 9e196b3e.
+#: dwarf.c:9815
+#, c-format
+msgid "Probably corrupt segment size: %d - using 4 instead\n"
+msgstr ""
+
+#. Ideally translate "invalid " to 8 chars, trailing space
+#. is optional.
+#: dwarf.c:9859
+#, c-format
+msgid "cie=invalid "
+msgstr ""
+
+#: dwarf.c:10293
+msgid "Invalid column number in saved frame state\n"
+msgstr ""
+
+#: dwarf.c:10343 dwarf.c:10367
+#, c-format
+msgid " %s: <corrupt len %<PRIu64>>\n"
+msgstr ""
+
+#: dwarf.c:10516
+#, c-format
+msgid " DW_CFA_??? (User defined call frame op: %#x)\n"
+msgstr ""
+
+#: dwarf.c:10518
+#, c-format
+msgid "Unsupported or unknown Dwarf Call Frame Instruction number: %#x\n"
+msgstr ""
+
+#: dwarf.c:10622
+#, c-format
+msgid "Debug info is corrupted, %s header at %#tx has length %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:10631
+#, c-format
+msgid "Version %d\n"
+msgstr ""
+
+#: dwarf.c:10637
+msgid "Only DWARF version 5 .debug_names is currently supported.\n"
+msgstr ""
+
+#: dwarf.c:10644
+#, c-format
+msgid "Padding field of .debug_names must be 0 (found 0x%x)\n"
+msgstr ""
+
+#: dwarf.c:10649
+msgid "Compilation unit count must be >= 1 in .debug_names\n"
+msgstr ""
+
+#: dwarf.c:10660
+#, c-format
+msgid "Augmentation string length %u must be rounded up to a multiple of 4 in .debug_names.\n"
+msgstr ""
+
+#: dwarf.c:10668
+#, c-format
+msgid "Augmentation string:"
+msgstr ""
+
+#: dwarf.c:10695
+#, c-format
+msgid "CU table:\n"
+msgstr ""
+
+#: dwarf.c:10708
+#, c-format
+msgid "TU table:\n"
+msgstr ""
+
+#: dwarf.c:10721
+#, c-format
+msgid "Foreign TU table:\n"
+msgstr ""
+
+#: dwarf.c:10730
+#, c-format
+msgid "[%3u] "
+msgstr ""
+
+#: dwarf.c:10741
+#, c-format
+msgid "Entry pool offset (%#<PRIx64>) exceeds unit size %#tx for unit %#tx in the debug_names\n"
+msgstr ""
+
+#: dwarf.c:10769
+#, c-format
+msgid "Used %zu of %lu bucket.\n"
+msgid_plural "Used %zu of %lu buckets.\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: dwarf.c:10798
+#, c-format
+msgid "Out of %<PRIu64> items there are %zu bucket clashes (longest of %zu entries).\n"
+msgstr ""
+
+#: dwarf.c:10803
+#, c-format
+msgid "The name_count (%<PRIu64>) is not the same as the used bucket_count (%zu) + the hash clash count (%zu)\n"
+msgstr ""
+
+#: dwarf.c:10841
+#, c-format
+msgid "Duplicate abbreviation tag %<PRIu64> in unit %#tx in the debug_names section\n"
+msgstr ""
+
+#: dwarf.c:10863 dwarf.c:11167
+#, c-format
+msgid ""
+"\n"
+"Symbol table:\n"
+msgstr ""
+
+#: dwarf.c:10896
+#, c-format
+msgid "Invalid entry offset value: %<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:10929
+#, c-format
+msgid "Undefined abbreviation tag %<PRId64> in unit %#tx in the debug_names section\n"
+msgstr ""
+
+#: dwarf.c:10960
+#, c-format
+msgid " <no entries>"
+msgstr ""
+
+#: dwarf.c:10992
+msgid "The debuglink filename is corrupt/missing\n"
+msgstr ""
+
+#: dwarf.c:10996
+#, c-format
+msgid " Separate debug info file: %s\n"
+msgstr ""
+
+#: dwarf.c:11007
+msgid "CRC offset missing/truncated\n"
+msgstr ""
+
+#: dwarf.c:11013
+#, c-format
+msgid " CRC value: %#x\n"
+msgstr ""
+
+#: dwarf.c:11017
+#, c-format
+msgid "There are %#<PRIx64> extraneous bytes at the end of the section\n"
+msgstr ""
+
+#: dwarf.c:11032
+#, c-format
+msgid "Build-ID is too short (%#zx bytes)\n"
+msgstr ""
+
+#: dwarf.c:11036
+#, c-format
+msgid " Build-ID (%#zx bytes):"
+msgstr ""
+
+#: dwarf.c:11068
+#, c-format
+msgid "Truncated header in the %s section.\n"
+msgstr ""
+
+#: dwarf.c:11072
+#, c-format
+msgid "Version %lu\n"
+msgstr ""
+
+#: dwarf.c:11078
+#, c-format
+msgid "Unsupported version %lu.\n"
+msgstr ""
+
+#: dwarf.c:11082
+msgid "The address table data in version 3 may be wrong.\n"
+msgstr ""
+
+#: dwarf.c:11084
+msgid "Version 4 does not support case insensitive lookups.\n"
+msgstr ""
+
+#: dwarf.c:11086
+msgid "Version 5 does not include inlined functions.\n"
+msgstr ""
+
+#: dwarf.c:11088
+msgid "Version 6 does not include symbol attributes.\n"
+msgstr ""
+
+#: dwarf.c:11116
+#, c-format
+msgid "Corrupt header in the %s section.\n"
+msgstr ""
+
+#: dwarf.c:11132
+#, c-format
+msgid ""
+"\n"
+"CU table:\n"
+msgstr ""
+
+#: dwarf.c:11142
+#, c-format
+msgid ""
+"\n"
+"TU table:\n"
+msgstr ""
+
+#: dwarf.c:11155
+#, c-format
+msgid ""
+"\n"
+"Address table:\n"
+msgstr ""
+
+#: dwarf.c:11182
+#, c-format
+msgid "[%3u] <corrupt offset: %x>"
+msgstr ""
+
+#: dwarf.c:11183
+#, c-format
+msgid "Corrupt name offset of 0x%x found for symbol table slot %d\n"
+msgstr ""
+
+#: dwarf.c:11194
+#, c-format
+msgid "<invalid CU vector offset: %x>\n"
+msgstr ""
+
+#: dwarf.c:11195
+#, c-format
+msgid "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"
+msgstr ""
+
+#: dwarf.c:11206
+#, c-format
+msgid "Invalid number of CUs (0x%x) for symbol table slot %d\n"
+msgstr ""
+
+#: dwarf.c:11231
+msgid "static"
+msgstr "სტáƒáƒ¢áƒ˜áƒ™áƒ£áƒ áƒ˜"
+
+#: dwarf.c:11231
+msgid "global"
+msgstr "გლáƒáƒ‘áƒáƒšáƒ£áƒ áƒ˜"
+
+#: dwarf.c:11243
+#, c-format
+msgid ""
+"\n"
+"Shortcut table:\n"
+msgstr ""
+
+#: dwarf.c:11247
+#, c-format
+msgid "Corrupt shortcut table in the %s section.\n"
+msgstr ""
+
+#: dwarf.c:11252
+#, c-format
+msgid "Language of main: "
+msgstr ""
+
+#: dwarf.c:11256
+#, c-format
+msgid "Name of main: "
+msgstr ""
+
+#: dwarf.c:11258
+#, c-format
+msgid "<unknown>\n"
+msgstr ""
+
+#: dwarf.c:11264
+#, c-format
+msgid "<corrupt offset: %x>\n"
+msgstr ""
+
+#: dwarf.c:11265
+#, c-format
+msgid "Corrupt name offset of 0x%x found for name of main\n"
+msgstr ""
+
+#: dwarf.c:11369
+#, c-format
+msgid "Section %s is empty\n"
+msgstr ""
+
+#: dwarf.c:11375
+#, c-format
+msgid "Section %s is too small to contain a CU/TU header\n"
+msgstr ""
+
+#: dwarf.c:11396
+#, c-format
+msgid " Number of columns: %u\n"
+msgstr ""
+
+#: dwarf.c:11397
+#, c-format
+msgid " Number of used entries: %u\n"
+msgstr ""
+
+#: dwarf.c:11398
+#, c-format
+msgid ""
+" Number of slots: %u\n"
+"\n"
+msgstr ""
+
+#: dwarf.c:11405
+#, c-format
+msgid "Section %s is too small for %u slot\n"
+msgid_plural "Section %s is too small for %u slots\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: dwarf.c:11438
+msgid "Section index pool located before start of section\n"
+msgstr ""
+
+#: dwarf.c:11442
+#, c-format
+msgid " [%3d] Signature: %#<PRIx64> Sections: "
+msgstr ""
+
+#: dwarf.c:11448
+#, c-format
+msgid "Section %s too small for shndx pool\n"
+msgstr ""
+
+#: dwarf.c:11491
+#, c-format
+msgid "Section %s too small for offset and size tables\n"
+msgstr ""
+
+#: dwarf.c:11498
+#, c-format
+msgid " Offset table\n"
+msgstr ""
+
+#: dwarf.c:11500 dwarf.c:11587
+msgid "signature"
+msgstr "ხელმáƒáƒ¬áƒ”რáƒ"
+
+#: dwarf.c:11500 dwarf.c:11587
+msgid "dwo_id"
+msgstr ""
+
+#: dwarf.c:11539
+#, c-format
+msgid "Row index (%u) is larger than number of used entries (%u)\n"
+msgstr ""
+
+#: dwarf.c:11567 dwarf.c:11638
+#, c-format
+msgid "Overlarge Dwarf section index detected: %u\n"
+msgstr ""
+
+#: dwarf.c:11585
+#, c-format
+msgid " Size table\n"
+msgstr ""
+
+#: dwarf.c:11624
+#, c-format
+msgid "Too many rows/columns in DWARF index section %s\n"
+msgstr ""
+
+#: dwarf.c:11653
+#, c-format
+msgid " Unsupported version (%d)\n"
+msgstr ""
+
+#: dwarf.c:11725
+#, c-format
+msgid "Displaying the debug contents of section %s is not yet supported.\n"
+msgstr ""
+
+#: dwarf.c:11756
+#, c-format
+msgid "Attempt to allocate an array with an excessive number of elements: %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:11774
+#, c-format
+msgid "Attempt to re-allocate an array with an excessive number of elements: %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:11790
+#, c-format
+msgid "Attempt to allocate a zero'ed array with an excessive number of elements: %#<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:11888
+#, c-format
+msgid "Unable to reopen separate debug info file: %s\n"
+msgstr ""
+
+#: dwarf.c:11900
+#, c-format
+msgid "Separate debug info file %s found, but CRC does not match - ignoring\n"
+msgstr ""
+
+#: dwarf.c:12080
+#, c-format
+msgid "Corrupt debuglink section: %s\n"
+msgstr ""
+
+#: dwarf.c:12119 elfcomm.c:295 elfcomm.c:320 elfcomm.c:794
+msgid "Out of memory\n"
+msgstr "áƒáƒ áƒáƒ¡áƒáƒ™áƒ›áƒáƒ áƒ˜áƒ¡áƒ˜ მეხსიერებáƒ!\n"
+
+#. Failed to find the file.
+#: dwarf.c:12195
+#, c-format
+msgid "could not find separate debug file '%s'\n"
+msgstr ""
+
+#: dwarf.c:12197 dwarf.c:12202 dwarf.c:12208 dwarf.c:12212 dwarf.c:12217
+#: dwarf.c:12220 dwarf.c:12223 dwarf.c:12226
+#, c-format
+msgid "tried: %s\n"
+msgstr ""
+
+#: dwarf.c:12236
+#, c-format
+msgid "tried: DEBUGINFOD_URLS=%s\n"
+msgstr ""
+
+#: dwarf.c:12264
+#, c-format
+msgid "failed to open separate debug file: %s\n"
+msgstr ""
+
+#: dwarf.c:12273
+#, c-format
+msgid ""
+"\n"
+"%s: Found separate debug info file: %s\n"
+msgstr ""
+
+#: dwarf.c:12296
+msgid "Out of memory allocating dwo filename\n"
+msgstr ""
+
+#: dwarf.c:12302
+#, c-format
+msgid "Unable to load dwo file: %s\n"
+msgstr ""
+
+#. FIXME: We should check the dwo_id.
+#: dwarf.c:12309
+#, c-format
+msgid ""
+"%s: Found separate debug object file: %s\n"
+"\n"
+msgstr ""
+
+#: dwarf.c:12341
+msgid "Unable to load the .note.gnu.build-id section\n"
+msgstr ""
+
+#: dwarf.c:12347
+msgid ".note.gnu.build-id section is corrupt/empty\n"
+msgstr ""
+
+#: dwarf.c:12368
+msgid ".note.gnu.build-id data size is too small\n"
+msgstr ""
+
+#: dwarf.c:12374
+msgid ".note.gnu.build-id data size is too big\n"
+msgstr ""
+
+#: dwarf.c:12435
+msgid ".debug_sup section is corrupt/empty\n"
+msgstr ""
+
+#: dwarf.c:12445
+msgid "filename in .debug_sup section is corrupt\n"
+msgstr ""
+
+#: dwarf.c:12462
+#, c-format
+msgid "unable to open file '%s' referenced from .debug_sup section\n"
+msgstr ""
+
+#: dwarf.c:12467
+#, c-format
+msgid ""
+"%s: Found supplementary debug file: %s\n"
+"\n"
+msgstr ""
+
+#: dwarf.c:12568
+msgid "Multiple DWO_NAMEs encountered for the same CU\n"
+msgstr ""
+
+#: dwarf.c:12580
+msgid "multiple DWO_IDs encountered for the same CU\n"
+msgstr ""
+
+#: dwarf.c:12585
+msgid "Unexpected DWO INFO type"
+msgstr ""
+
+#: dwarf.c:12600
+#, c-format
+msgid ""
+"The %s section contains link(s) to dwo file(s):\n"
+"\n"
+msgstr ""
+
+#: dwarf.c:12605
+#, c-format
+msgid " Name: %s\n"
+msgstr ""
+
+#: dwarf.c:12606
+#, c-format
+msgid " Directory: %s\n"
+msgstr ""
+
+#: dwarf.c:12606
+msgid "<not-found>"
+msgstr ""
+
+#: dwarf.c:12608
+#, c-format
+msgid " ID: "
+msgstr ""
+
+#: dwarf.c:12610
+#, c-format
+msgid " ID: <not specified>\n"
+msgstr ""
+
+#: dwarf.c:12768
+#, c-format
+msgid "Unrecognized debug option '%s'\n"
+msgstr ""
+
+#: dwarf.c:12812
+#, c-format
+msgid "Unrecognized debug letter option '%c'\n"
+msgstr ""
+
+#: dwarf.h:283
+msgid "end of data encountered whilst reading LEB\n"
+msgstr ""
+
+#: dwarf.h:285
+msgid "read LEB value is too large to store in destination variable\n"
+msgstr ""
+
+#: elfcomm.c:47
+#, c-format
+msgid "%s: Error: "
+msgstr "%s: შეცდáƒáƒ›áƒ: "
+
+#: elfcomm.c:61
+#, c-format
+msgid "%s: Warning: "
+msgstr "%s: გáƒáƒ¤áƒ áƒ—ხილებáƒ: "
+
+#: elfcomm.c:75
+#, c-format
+msgid "%s: Info: "
+msgstr ""
+
+#: elfcomm.c:87 elfcomm.c:102 elfcomm.c:172 elfcomm.c:235
+#, c-format
+msgid "Unhandled data length: %d\n"
+msgstr ""
+
+#: elfcomm.c:312
+#, c-format
+msgid "Abnormal length of thin archive member name: %lx\n"
+msgstr ""
+
+#: elfcomm.c:356
+#, c-format
+msgid "%s: invalid archive header size: %ld\n"
+msgstr ""
+
+#: elfcomm.c:369
+#, c-format
+msgid "%s: failed to skip archive symbol table\n"
+msgstr ""
+
+#: elfcomm.c:388
+#, c-format
+msgid "%s: the archive index is empty\n"
+msgstr ""
+
+#: elfcomm.c:396 elfcomm.c:425
+#, c-format
+msgid "%s: failed to read archive index\n"
+msgstr ""
+
+#: elfcomm.c:407
+#, c-format
+msgid "%s: the archive index is supposed to have 0x%lx entries of %d bytes, but the size is only 0x%lx\n"
+msgstr ""
+
+#: elfcomm.c:417
+msgid "Out of memory whilst trying to read archive symbol index\n"
+msgstr ""
+
+#: elfcomm.c:437
+msgid "Out of memory whilst trying to convert the archive symbol index\n"
+msgstr ""
+
+#: elfcomm.c:450
+#, c-format
+msgid "%s: the archive has an index but no symbols\n"
+msgstr ""
+
+#: elfcomm.c:458
+msgid "Out of memory whilst trying to read archive index symbol table\n"
+msgstr ""
+
+#: elfcomm.c:466
+#, c-format
+msgid "%s: failed to read archive index symbol table\n"
+msgstr ""
+
+#: elfcomm.c:476
+#, c-format
+msgid "%s: failed to read archive header following archive index\n"
+msgstr ""
+
+#: elfcomm.c:509
+#, c-format
+msgid "%s: failed to seek to first archive header\n"
+msgstr ""
+
+#. PR 24049 - we cannot use filedata->file_name as this will
+#. have already been freed.
+#: elfcomm.c:518 elfcomm.c:752 elfedit.c:624 readelf.c:24044
+#, c-format
+msgid "%s: failed to read archive header\n"
+msgstr ""
+
+#: elfcomm.c:535
+#, c-format
+msgid "%s has no archive index\n"
+msgstr ""
+
+#: elfcomm.c:547
+#, c-format
+msgid "%s: long name table is too small, (size = %<PRId64>)\n"
+msgstr ""
+
+#: elfcomm.c:555
+#, c-format
+msgid "%s: long name table is too big, (size = %#<PRIx64>)\n"
+msgstr ""
+
+#: elfcomm.c:566
+msgid "Out of memory reading long symbol names in archive\n"
+msgstr ""
+
+#: elfcomm.c:574
+#, c-format
+msgid "%s: failed to read long symbol name string table\n"
+msgstr ""
+
+#: elfcomm.c:657
+msgid "Archive member uses long names, but no longname table found\n"
+msgstr ""
+
+#: elfcomm.c:671
+#, c-format
+msgid "Found long name index (%ld) beyond end of long name table\n"
+msgstr ""
+
+#: elfcomm.c:690
+msgid "Invalid Thin archive member name\n"
+msgstr ""
+
+#: elfcomm.c:746
+#, c-format
+msgid "%s: failed to seek to next file name\n"
+msgstr ""
+
+#: elfcomm.c:757 elfedit.c:631 readelf.c:24051
+#, c-format
+msgid "%s: did not find a valid archive header\n"
+msgstr ""
+
+#: elfedit.c:93
+#, c-format
+msgid "%s: Not an i386 nor x86-64 ELF file\n"
+msgstr ""
+
+#: elfedit.c:99
+#, c-format
+msgid "%s: stat () failed\n"
+msgstr ""
+
+#: elfedit.c:107
+#, c-format
+msgid "%s: mmap () failed\n"
+msgstr ""
+
+#: elfedit.c:118
+#, c-format
+msgid "%s: can't read program headers\n"
+msgstr ""
+
+#: elfedit.c:257
+#, c-format
+msgid "%s: Invalid PT_NOTE segment\n"
+msgstr ""
+
+#: elfedit.c:282
+#, c-format
+msgid "Unknown x86 feature: %s\n"
+msgstr ""
+
+#: elfedit.c:330
+#, c-format
+msgid "%s: Unsupported EI_VERSION: %d is not %d\n"
+msgstr ""
+
+#: elfedit.c:351
+#, c-format
+msgid "%s: Unmatched input EI_CLASS: %d is not %d\n"
+msgstr ""
+
+#: elfedit.c:360
+#, c-format
+msgid "%s: Unmatched output EI_CLASS: %d is not %d\n"
+msgstr ""
+
+#: elfedit.c:369
+#, c-format
+msgid "%s: Unmatched e_machine: %d is not %d\n"
+msgstr ""
+
+#: elfedit.c:380
+#, c-format
+msgid "%s: Unmatched e_type: %d is not %d\n"
+msgstr ""
+
+#: elfedit.c:391
+#, c-format
+msgid "%s: Unmatched EI_OSABI: %d is not %d\n"
+msgstr ""
+
+#: elfedit.c:403
+#, c-format
+msgid "%s: Unmatched EI_ABIVERSION: %d is not %d\n"
+msgstr ""
+
+#: elfedit.c:440
+#, c-format
+msgid "%s: Failed to update ELF header: %s\n"
+msgstr ""
+
+#: elfedit.c:510
+msgid ""
+"This executable has been built without support for a\n"
+"64 bit data type and so it cannot process 64 bit ELF files.\n"
+msgstr ""
+
+#: elfedit.c:551
+#, c-format
+msgid "%s: Failed to read ELF header\n"
+msgstr ""
+
+#: elfedit.c:558
+#, c-format
+msgid "%s: Failed to seek to ELF header\n"
+msgstr ""
+
+#: elfedit.c:615 readelf.c:24032
+#, c-format
+msgid "%s: failed to seek to next archive header\n"
+msgstr ""
+
+#: elfedit.c:646 elfedit.c:655 readelf.c:24064 readelf.c:24073
+#, c-format
+msgid "%s: bad archive file name\n"
+msgstr ""
+
+#: elfedit.c:678 elfedit.c:789
+#, c-format
+msgid "Input file '%s' is not readable\n"
+msgstr ""
+
+#: elfedit.c:705
+#, c-format
+msgid "%s: failed to seek to archive member\n"
+msgstr ""
+
+#: elfedit.c:746 readelf.c:24192
+#, c-format
+msgid "'%s': No such file\n"
+msgstr ""
+
+#: elfedit.c:748 readelf.c:24194
+#, c-format
+msgid "Could not locate '%s'. System error message: %s\n"
+msgstr ""
+
+#: elfedit.c:769 readelf.c:24201
+#, c-format
+msgid "'%s' is not an ordinary file\n"
+msgstr ""
+
+#: elfedit.c:795 readelf.c:24223
+#, c-format
+msgid "%s: Failed to read file's magic number\n"
+msgstr ""
+
+#: elfedit.c:859
+#, c-format
+msgid "Unknown OSABI: %s\n"
+msgstr ""
+
+#: elfedit.c:884
+#, c-format
+msgid "Unknown machine type: %s\n"
+msgstr ""
+
+#: elfedit.c:903
+#, c-format
+msgid "Unknown type: %s\n"
+msgstr ""
+
+#: elfedit.c:954
+#, c-format
+msgid "Usage: %s <option(s)> elffile(s)\n"
+msgstr ""
+
+#: elfedit.c:956
+#, c-format
+msgid " Update the ELF header of ELF files\n"
+msgstr ""
+
+#: elfedit.c:957 nm.c:302 objcopy.c:584 objcopy.c:726 strings.c:1332
+#, c-format
+msgid " The options are:\n"
+msgstr ""
+
+#: elfedit.c:958
+#, c-format
+msgid ""
+" --input-mach [none|i386|iamcu|l1om|k1om|x86_64]\n"
+" Set input machine type\n"
+" --output-mach [none|i386|iamcu|l1om|k1om|x86_64]\n"
+" Set output machine type\n"
+" --input-type [none|rel|exec|dyn]\n"
+" Set input file type\n"
+" --output-type [none|rel|exec|dyn]\n"
+" Set output file type\n"
+" --input-osabi [%s]\n"
+" Set input OSABI\n"
+" --output-osabi [%s]\n"
+" Set output OSABI\n"
+" --input-abiversion [0-255] Set input ABIVERSION\n"
+" --output-abiversion [0-255] Set output ABIVERSION\n"
+msgstr ""
+
+#: elfedit.c:975
+#, c-format
+msgid ""
+" --enable-x86-feature [ibt|shstk|lam_u48|lam_u57]\n"
+" Enable x86 feature\n"
+" --disable-x86-feature [ibt|shstk|lam_u48|lam_u57]\n"
+" Disable x86 feature\n"
+msgstr ""
+
+#: elfedit.c:981
+#, c-format
+msgid ""
+" -h --help Display this information\n"
+" -v --version Display the version number of %s\n"
+msgstr ""
+
+#: elfedit.c:1060 elfedit.c:1071
+#, c-format
+msgid "Invalid ABIVERSION: %s\n"
+msgstr ""
+
+#: emul_aix.c:44
+#, c-format
+msgid " [-g] - 32 bit small archive\n"
+msgstr ""
+
+#: emul_aix.c:45
+#, c-format
+msgid " [-X32] - ignores 64 bit objects\n"
+msgstr ""
+
+#: emul_aix.c:46
+#, c-format
+msgid " [-X64] - ignores 32 bit objects\n"
+msgstr ""
+
+#: emul_aix.c:47
+#, c-format
+msgid " [-X32_64] - accepts 32 and 64 bit objects\n"
+msgstr ""
+
+#: mclex.c:245
+msgid "Duplicate symbol entered into keyword list."
+msgstr ""
+
+#: nm.c:300 size.c:88 strings.c:1330
+#, c-format
+msgid "Usage: %s [option(s)] [file(s)]\n"
+msgstr ""
+
+#: nm.c:301
+#, c-format
+msgid " List symbols in [file(s)] (a.out by default).\n"
+msgstr ""
+
+#: nm.c:303
+#, c-format
+msgid " -a, --debug-syms Display debugger-only symbols\n"
+msgstr ""
+
+#: nm.c:305
+#, c-format
+msgid " -A, --print-file-name Print name of the input file before every symbol\n"
+msgstr ""
+
+#: nm.c:307
+#, c-format
+msgid " -B Same as --format=bsd\n"
+msgstr ""
+
+#: nm.c:309
+#, c-format
+msgid " -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
+msgstr ""
+
+#: nm.c:311 readelf.c:6206
+msgid " STYLE can be "
+msgstr ""
+
+#: nm.c:313
+#, c-format
+msgid " --no-demangle Do not demangle low-level symbol names\n"
+msgstr ""
+
+#: nm.c:315
+#, c-format
+msgid " --recurse-limit Enable a demangling recursion limit. (default)\n"
+msgstr ""
+
+#: nm.c:317
+#, c-format
+msgid " --no-recurse-limit Disable a demangling recursion limit.\n"
+msgstr ""
+
+#: nm.c:319
+#, c-format
+msgid " -D, --dynamic Display dynamic symbols instead of normal symbols\n"
+msgstr ""
+
+#: nm.c:321
+#, c-format
+msgid " -e (ignored)\n"
+msgstr ""
+
+#: nm.c:323
+#, c-format
+msgid ""
+" -f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',\n"
+" `sysv', `posix' or 'just-symbols'.\n"
+" The default is `bsd'\n"
+msgstr ""
+
+#: nm.c:327
+#, c-format
+msgid " -g, --extern-only Display only external symbols\n"
+msgstr ""
+
+#: nm.c:329
+#, c-format
+msgid " --ifunc-chars=CHARS Characters to use when displaying ifunc symbols\n"
+msgstr ""
+
+#: nm.c:331
+#, c-format
+msgid " -j, --just-symbols Same as --format=just-symbols\n"
+msgstr ""
+
+#: nm.c:333
+#, c-format
+msgid ""
+" -l, --line-numbers Use debugging information to find a filename and\n"
+" line number for each symbol\n"
+msgstr ""
+
+#: nm.c:336
+#, c-format
+msgid " -n, --numeric-sort Sort symbols numerically by address\n"
+msgstr ""
+
+#: nm.c:338
+#, c-format
+msgid " -o Same as -A\n"
+msgstr ""
+
+#: nm.c:340
+#, c-format
+msgid " -p, --no-sort Do not sort the symbols\n"
+msgstr ""
+
+#: nm.c:342
+#, c-format
+msgid " -P, --portability Same as --format=posix\n"
+msgstr ""
+
+#: nm.c:344
+#, c-format
+msgid " -r, --reverse-sort Reverse the sense of the sort\n"
+msgstr ""
+
+#: nm.c:347
+#, c-format
+msgid " --plugin NAME Load the specified plugin\n"
+msgstr ""
+
+#: nm.c:350
+#, c-format
+msgid " -S, --print-size Print size of defined symbols\n"
+msgstr ""
+
+#: nm.c:352
+#, c-format
+msgid " -s, --print-armap Include index for symbols from archive members\n"
+msgstr ""
+
+#: nm.c:354
+#, c-format
+msgid " --quiet Suppress \"no symbols\" diagnostic\n"
+msgstr ""
+
+#: nm.c:356
+#, c-format
+msgid " --size-sort Sort symbols by size\n"
+msgstr ""
+
+#: nm.c:358
+#, c-format
+msgid " --special-syms Include special symbols in the output\n"
+msgstr ""
+
+#: nm.c:360
+#, c-format
+msgid " --synthetic Display synthetic symbols as well\n"
+msgstr ""
+
+#: nm.c:362
+#, c-format
+msgid " -t, --radix=RADIX Use RADIX for printing symbol values\n"
+msgstr ""
+
+#: nm.c:364
+#, c-format
+msgid " --target=BFDNAME Specify the target object format as BFDNAME\n"
+msgstr ""
+
+#: nm.c:366
+#, c-format
+msgid " -u, --undefined-only Display only undefined symbols\n"
+msgstr ""
+
+#: nm.c:368
+#, c-format
+msgid " -U, --defined-only Display only defined symbols\n"
+msgstr ""
+
+#: nm.c:370
+#, c-format
+msgid ""
+" --unicode={default|show|invalid|hex|escape|highlight}\n"
+" Specify how to treat UTF-8 encoded unicode characters\n"
+msgstr ""
+
+#: nm.c:373
+#, c-format
+msgid " -W, --no-weak Ignore weak symbols\n"
+msgstr ""
+
+#: nm.c:375
+#, c-format
+msgid " --without-symbol-versions Do not display version strings after symbol names\n"
+msgstr ""
+
+#: nm.c:377
+#, c-format
+msgid " -X 32_64 (ignored)\n"
+msgstr ""
+
+#: nm.c:379
+#, c-format
+msgid " @FILE Read options from FILE\n"
+msgstr ""
+
+#: nm.c:381
+#, c-format
+msgid " -h, --help Display this information\n"
+msgstr ""
+
+#: nm.c:383
+#, c-format
+msgid " -V, --version Display this program's version number\n"
+msgstr ""
+
+#: nm.c:404
+#, c-format
+msgid "%s: invalid radix"
+msgstr ""
+
+#: nm.c:434
+#, c-format
+msgid "%s: invalid output format"
+msgstr ""
+
+#: nm.c:458 readelf.c:13756 readelf.c:13799
+#, c-format
+msgid "<processor specific>: %d"
+msgstr ""
+
+#: nm.c:460 readelf.c:13763 readelf.c:13816
+#, c-format
+msgid "<OS specific>: %d"
+msgstr ""
+
+#: nm.c:462 readelf.c:13766 readelf.c:13819
+#, c-format
+msgid "<unknown>: %d"
+msgstr "<უცნáƒáƒ‘ი>: %d"
+
+#: nm.c:489
+#, c-format
+msgid "<unknown>: %d/%d"
+msgstr ""
+
+#: nm.c:757
+#, c-format
+msgid ""
+"\n"
+"Archive index:\n"
+msgstr ""
+"\n"
+"áƒáƒ áƒ¥áƒ˜áƒ•ის ინდექსი:\n"
+
+#: nm.c:808 nm.c:1490
+#, c-format
+msgid "%s: plugin needed to handle lto object"
+msgstr ""
+
+#: nm.c:1699
+#, c-format
+msgid ""
+"\n"
+"\n"
+"Undefined symbols from %s:\n"
+"\n"
+msgstr ""
+
+#: nm.c:1701
+#, c-format
+msgid ""
+"\n"
+"\n"
+"Symbols from %s:\n"
+"\n"
+msgstr ""
+"\n"
+"\n"
+"\n"
+"სიმბáƒáƒšáƒáƒ”ბი %s-დáƒáƒœ:\n"
+"\n"
+
+#: nm.c:1703 nm.c:1764
+#, c-format
+msgid ""
+"Name Value Class Type Size Line Section\n"
+"\n"
+msgstr ""
+
+#: nm.c:1706 nm.c:1767
+#, c-format
+msgid ""
+"Name Value Class Type Size Line Section\n"
+"\n"
+msgstr ""
+
+#: nm.c:1760
+#, c-format
+msgid ""
+"\n"
+"\n"
+"Undefined symbols from %s[%s]:\n"
+"\n"
+msgstr ""
+
+#: nm.c:1762
+#, c-format
+msgid ""
+"\n"
+"\n"
+"Symbols from %s[%s]:\n"
+"\n"
+msgstr ""
+
+#: nm.c:1846
+#, c-format
+msgid "Print width has not been initialized (%d)"
+msgstr ""
+
+#: nm.c:2111 objdump.c:6387 readelf.c:6681 strings.c:314
+#, c-format
+msgid "invalid argument to -U/--unicode: %s"
+msgstr ""
+
+#: nm.c:2129
+msgid "Only -X 32_64 is supported"
+msgstr ""
+
+#: nm.c:2161
+msgid "Using the --size-sort and --undefined-only options together"
+msgstr ""
+
+#: nm.c:2162
+msgid "will produce no output, since undefined symbols have no size."
+msgstr ""
+
+#: objcopy.c:582 srconv.c:1694
+#, c-format
+msgid "Usage: %s [option(s)] in-file [out-file]\n"
+msgstr ""
+
+#: objcopy.c:583
+#, c-format
+msgid " Copies a binary file, possibly transforming it in the process\n"
+msgstr ""
+
+#: objcopy.c:585
+#, c-format
+msgid ""
+" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
+" -O --output-target <bfdname> Create an output file in format <bfdname>\n"
+" -B --binary-architecture <arch> Set output arch, when input is arch-less\n"
+" -F --target <bfdname> Set both input and output format to <bfdname>\n"
+" --debugging Convert debugging information, if possible\n"
+" -p --preserve-dates Copy modified/access timestamps to the output\n"
+msgstr ""
+
+#: objcopy.c:593 objcopy.c:734
+#, c-format
+msgid ""
+" -D --enable-deterministic-archives\n"
+" Produce deterministic output when stripping archives (default)\n"
+" -U --disable-deterministic-archives\n"
+" Disable -D behavior\n"
+msgstr ""
+
+#: objcopy.c:599 objcopy.c:740
+#, c-format
+msgid ""
+" -D --enable-deterministic-archives\n"
+" Produce deterministic output when stripping archives\n"
+" -U --disable-deterministic-archives\n"
+" Disable -D behavior (default)\n"
+msgstr ""
+
+#: objcopy.c:604
+#, c-format
+msgid ""
+" -j --only-section <name> Only copy section <name> into the output\n"
+" --add-gnu-debuglink=<file> Add section .gnu_debuglink linking to <file>\n"
+" -R --remove-section <name> Remove section <name> from the output\n"
+" --remove-relocations <name> Remove relocations from section <name>\n"
+" --strip-section-headers Strip section header from the output\n"
+" -S --strip-all Remove all symbol and relocation information\n"
+" -g --strip-debug Remove all debugging symbols & sections\n"
+" --strip-dwo Remove all DWO sections\n"
+" --strip-unneeded Remove all symbols not needed by relocations\n"
+" -N --strip-symbol <name> Do not copy symbol <name>\n"
+" --strip-unneeded-symbol <name>\n"
+" Do not copy symbol <name> unless needed by\n"
+" relocations\n"
+" --only-keep-debug Strip everything but the debug information\n"
+" --extract-dwo Copy only DWO sections\n"
+" --extract-symbol Remove section contents but keep symbols\n"
+" --keep-section <name> Do not strip section <name>\n"
+" -K --keep-symbol <name> Do not strip symbol <name>\n"
+" --keep-section-symbols Do not strip section symbols\n"
+" --keep-file-symbols Do not strip file symbol(s)\n"
+" --localize-hidden Turn all ELF hidden symbols into locals\n"
+" -L --localize-symbol <name> Force symbol <name> to be marked as a local\n"
+" --globalize-symbol <name> Force symbol <name> to be marked as a global\n"
+" -G --keep-global-symbol <name> Localize all symbols except <name>\n"
+" -W --weaken-symbol <name> Force symbol <name> to be marked as a weak\n"
+" --weaken Force all global symbols to be marked as weak\n"
+" -w --wildcard Permit wildcard in symbol comparison\n"
+" -x --discard-all Remove all non-global symbols\n"
+" -X --discard-locals Remove any compiler-generated symbols\n"
+" -i --interleave[=<number>] Only copy N out of every <number> bytes\n"
+" --interleave-width <number> Set N for --interleave\n"
+" -b --byte <num> Select byte <num> in every interleaved block\n"
+" --gap-fill <val> Fill gaps between sections with <val>\n"
+" --pad-to <addr> Pad the last section up to address <addr>\n"
+" --set-start <addr> Set the start address to <addr>\n"
+" {--change-start|--adjust-start} <incr>\n"
+" Add <incr> to the start address\n"
+" {--change-addresses|--adjust-vma} <incr>\n"
+" Add <incr> to LMA, VMA and start addresses\n"
+" {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>\n"
+" Change LMA and VMA of section <name> by <val>\n"
+" --change-section-lma <name>{=|+|-}<val>\n"
+" Change the LMA of section <name> by <val>\n"
+" --change-section-vma <name>{=|+|-}<val>\n"
+" Change the VMA of section <name> by <val>\n"
+" {--[no-]change-warnings|--[no-]adjust-warnings}\n"
+" Warn if a named section does not exist\n"
+" --set-section-flags <name>=<flags>\n"
+" Set section <name>'s properties to <flags>\n"
+" --set-section-alignment <name>=<align>\n"
+" Set section <name>'s alignment to <align> bytes\n"
+" --add-section <name>=<file> Add section <name> found in <file> to output\n"
+" --update-section <name>=<file>\n"
+" Update contents of section <name> with\n"
+" contents found in <file>\n"
+" --dump-section <name>=<file> Dump the contents of section <name> into <file>\n"
+" --rename-section <old>=<new>[,<flags>] Rename section <old> to <new>\n"
+" --long-section-names {enable|disable|keep}\n"
+" Handle long section names in Coff objects.\n"
+" --change-leading-char Force output format's leading character style\n"
+" --remove-leading-char Remove leading character from global symbols\n"
+" --reverse-bytes=<num> Reverse <num> bytes at a time, in output sections with content\n"
+" --redefine-sym <old>=<new> Redefine symbol name <old> to <new>\n"
+" --redefine-syms <file> --redefine-sym for all symbol pairs \n"
+" listed in <file>\n"
+" --srec-len <number> Restrict the length of generated Srecords\n"
+" --srec-forceS3 Restrict the type of generated Srecords to S3\n"
+" --strip-symbols <file> -N for all symbols listed in <file>\n"
+" --strip-unneeded-symbols <file>\n"
+" --strip-unneeded-symbol for all symbols listed\n"
+" in <file>\n"
+" --keep-symbols <file> -K for all symbols listed in <file>\n"
+" --localize-symbols <file> -L for all symbols listed in <file>\n"
+" --globalize-symbols <file> --globalize-symbol for all in <file>\n"
+" --keep-global-symbols <file> -G for all symbols listed in <file>\n"
+" --weaken-symbols <file> -W for all symbols listed in <file>\n"
+" --add-symbol <name>=[<section>:]<value>[,<flags>] Add a symbol\n"
+" --alt-machine-code <index> Use the target's <index>'th alternative machine\n"
+" --writable-text Mark the output text as writable\n"
+" --readonly-text Make the output text write protected\n"
+" --pure Mark the output file as demand paged\n"
+" --impure Mark the output file as impure\n"
+" --prefix-symbols <prefix> Add <prefix> to start of every symbol name\n"
+" --prefix-sections <prefix> Add <prefix> to start of every section name\n"
+" --prefix-alloc-sections <prefix>\n"
+" Add <prefix> to start of every allocatable\n"
+" section name\n"
+" --file-alignment <num> Set PE file alignment to <num>\n"
+" --heap <reserve>[,<commit>] Set PE reserve/commit heap to <reserve>/\n"
+" <commit>\n"
+" --image-base <address> Set PE image base to <address>\n"
+" --section-alignment <num> Set PE section alignment to <num>\n"
+" --stack <reserve>[,<commit>] Set PE reserve/commit stack to <reserve>/\n"
+" <commit>\n"
+" --subsystem <name>[:<version>]\n"
+" Set PE subsystem to <name> [& <version>]\n"
+" --compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi|zstd}]\n"
+"\t\t\t\t Compress DWARF debug sections\n"
+" --decompress-debug-sections Decompress DWARF debug sections using zlib\n"
+" --elf-stt-common=[yes|no] Generate ELF common symbols with STT_COMMON\n"
+" type\n"
+" --verilog-data-width <number> Specifies data width, in bytes, for verilog output\n"
+" -M --merge-notes Remove redundant entries in note sections\n"
+" --no-merge-notes Do not attempt to remove redundant notes (default)\n"
+" -v --verbose List all object files modified\n"
+" @<file> Read options from <file>\n"
+" -V --version Display this program's version number\n"
+" -h --help Display this output\n"
+" --info List object formats & architectures supported\n"
+msgstr ""
+
+#: objcopy.c:724
+#, c-format
+msgid "Usage: %s <option(s)> in-file(s)\n"
+msgstr ""
+
+#: objcopy.c:725
+#, c-format
+msgid " Removes symbols and sections from files\n"
+msgstr ""
+
+#: objcopy.c:727
+#, c-format
+msgid ""
+" -I --input-target=<bfdname> Assume input file is in format <bfdname>\n"
+" -O --output-target=<bfdname> Create an output file in format <bfdname>\n"
+" -F --target=<bfdname> Set both input and output format to <bfdname>\n"
+" -p --preserve-dates Copy modified/access timestamps to the output\n"
+msgstr ""
+
+#: objcopy.c:745
+#, c-format
+msgid ""
+" -R --remove-section=<name> Also remove section <name> from the output\n"
+" --remove-relocations <name> Remove relocations from section <name>\n"
+" --strip-section-headers Strip section headers from the output\n"
+" -s --strip-all Remove all symbol and relocation information\n"
+" -g -S -d --strip-debug Remove all debugging symbols & sections\n"
+" --strip-dwo Remove all DWO sections\n"
+" --strip-unneeded Remove all symbols not needed by relocations\n"
+" --only-keep-debug Strip everything but the debug information\n"
+" -M --merge-notes Remove redundant entries in note sections (default)\n"
+" --no-merge-notes Do not attempt to remove redundant notes\n"
+" -N --strip-symbol=<name> Do not copy symbol <name>\n"
+" --keep-section=<name> Do not strip section <name>\n"
+" -K --keep-symbol=<name> Do not strip symbol <name>\n"
+" --keep-section-symbols Do not strip section symbols\n"
+" --keep-file-symbols Do not strip file symbol(s)\n"
+" -w --wildcard Permit wildcard in symbol comparison\n"
+" -x --discard-all Remove all non-global symbols\n"
+" -X --discard-locals Remove any compiler-generated symbols\n"
+" -v --verbose List all object files modified\n"
+" -V --version Display this program's version number\n"
+" -h --help Display this output\n"
+" --info List object formats & architectures supported\n"
+" -o <file> Place stripped output into <file>\n"
+msgstr ""
+
+#: objcopy.c:771
+#, c-format
+msgid " --plugin NAME Load the specified plugin\n"
+msgstr ""
+
+#: objcopy.c:829
+#, c-format
+msgid "unrecognized section flag `%s'"
+msgstr ""
+
+#: objcopy.c:830 objcopy.c:904
+#, c-format
+msgid "supported flags: %s"
+msgstr ""
+
+#: objcopy.c:903
+#, c-format
+msgid "unrecognized symbol flag `%s'"
+msgstr ""
+
+#: objcopy.c:962
+#, c-format
+msgid "error: %s both copied and removed"
+msgstr ""
+
+#: objcopy.c:968
+#, c-format
+msgid "error: %s both sets and alters VMA"
+msgstr ""
+
+#: objcopy.c:974
+#, c-format
+msgid "error: %s both sets and alters LMA"
+msgstr ""
+
+#: objcopy.c:1137
+#, c-format
+msgid "cannot open '%s': %s"
+msgstr ""
+
+#: objcopy.c:1140 objcopy.c:5323
+#, c-format
+msgid "%s: fread failed"
+msgstr ""
+
+#: objcopy.c:1213
+#, c-format
+msgid "%s:%d: Ignoring rubbish found on this line"
+msgstr ""
+
+#: objcopy.c:1357
+#, c-format
+msgid "error: section %s matches both remove and copy options"
+msgstr ""
+
+#: objcopy.c:1360
+#, c-format
+msgid "error: section %s matches both update and remove options"
+msgstr ""
+
+#: objcopy.c:1535
+#, c-format
+msgid "Section %s not found"
+msgstr ""
+
+#: objcopy.c:1584
+msgid "redefining symbols does not work on LTO-compiled object files"
+msgstr ""
+
+#: objcopy.c:1697
+#, c-format
+msgid "not stripping symbol `%s' because it is named in a relocation"
+msgstr ""
+
+#: objcopy.c:1760
+#, c-format
+msgid "'before=%s' not found"
+msgstr ""
+
+#: objcopy.c:1800
+#, c-format
+msgid "%s: Multiple redefinition of symbol \"%s\""
+msgstr ""
+
+#: objcopy.c:1804
+#, c-format
+msgid "%s: Symbol \"%s\" is target of more than one redefinition"
+msgstr ""
+
+#: objcopy.c:1831
+#, c-format
+msgid "couldn't open symbol redefinition file %s (error: %s)"
+msgstr ""
+
+#: objcopy.c:1909
+#, c-format
+msgid "%s:%d: garbage found at end of line"
+msgstr ""
+
+#: objcopy.c:1912
+#, c-format
+msgid "%s:%d: missing new symbol name"
+msgstr ""
+
+#: objcopy.c:1922
+#, c-format
+msgid "%s:%d: premature end of file"
+msgstr ""
+
+#: objcopy.c:1939
+#, c-format
+msgid "stat returns negative size for `%s'"
+msgstr ""
+
+#: objcopy.c:1951
+#, c-format
+msgid "copy from `%s' [unknown] to `%s' [unknown]\n"
+msgstr ""
+
+#: objcopy.c:2219
+#, c-format
+msgid "%s[%s]: Cannot merge - there are relocations against this section"
+msgstr ""
+
+#: objcopy.c:2241
+msgid "corrupt GNU build attribute note: description size not a factor of 4"
+msgstr ""
+
+#: objcopy.c:2248
+msgid "corrupt GNU build attribute note: wrong note type"
+msgstr ""
+
+#: objcopy.c:2254
+msgid "corrupt GNU build attribute note: note too big"
+msgstr ""
+
+#: objcopy.c:2260
+msgid "corrupt GNU build attribute note: name too small"
+msgstr ""
+
+#: objcopy.c:2283
+msgid "corrupt GNU build attribute note: unsupported version"
+msgstr ""
+
+#: objcopy.c:2317
+msgid "corrupt GNU build attribute note: bad description size"
+msgstr ""
+
+#: objcopy.c:2353
+msgid "corrupt GNU build attribute note: name not NUL terminated"
+msgstr ""
+
+#: objcopy.c:2365
+msgid "corrupt GNU build attribute notes: excess data at end"
+msgstr ""
+
+#: objcopy.c:2372
+msgid "bad GNU build attribute notes: no known versions detected"
+msgstr ""
+
+#. This happens with glibc. No idea why.
+#: objcopy.c:2376
+#, c-format
+msgid "%s[%s]: Warning: version note missing - assuming version 3"
+msgstr ""
+
+#: objcopy.c:2386
+msgid "bad GNU build attribute notes: multiple different versions"
+msgstr ""
+
+#: objcopy.c:2634
+#, c-format
+msgid "%s[%s]: Note - dropping 'share' flag as output format is not COFF"
+msgstr ""
+
+#: objcopy.c:2646
+#, c-format
+msgid "%s[%s]: 'large' flag is ELF x86-64 specific"
+msgstr ""
+
+#. PR 17636: Call non-fatal so that we return to our parent who
+#. may need to tidy temporary files.
+#: objcopy.c:2692
+#, c-format
+msgid "unable to change endianness of '%s'"
+msgstr ""
+
+#: objcopy.c:2699
+#, c-format
+msgid "unable to modify '%s' due to errors"
+msgstr ""
+
+#: objcopy.c:2712
+#, c-format
+msgid "error: the input file '%s' has no sections"
+msgstr ""
+
+#: objcopy.c:2740
+#, c-format
+msgid "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi|zstd] is unsupported on `%s'"
+msgstr ""
+
+#: objcopy.c:2748
+#, c-format
+msgid "--elf-stt-common=[yes|no] is unsupported on `%s'"
+msgstr ""
+
+#: objcopy.c:2755
+#, c-format
+msgid "--strip-section-headers is unsupported on `%s'"
+msgstr ""
+
+#: objcopy.c:2762
+#, c-format
+msgid "copy from `%s' [%s] to `%s' [%s]\n"
+msgstr ""
+
+#: objcopy.c:2810
+#, c-format
+msgid "Input file `%s' ignores binary architecture parameter."
+msgstr ""
+
+#: objcopy.c:2826
+#, c-format
+msgid "Unable to recognise the format of the input file `%s'"
+msgstr ""
+
+#: objcopy.c:2829
+#, c-format
+msgid "Output file cannot represent architecture `%s'"
+msgstr ""
+
+#: objcopy.c:2895
+#, c-format
+msgid "warning: file alignment (0x%<PRIx64>) > section alignment (0x%<PRIx64>)"
+msgstr ""
+
+#: objcopy.c:2969
+#, c-format
+msgid "can't add section '%s'"
+msgstr ""
+
+#: objcopy.c:2983
+#, c-format
+msgid "can't create section `%s'"
+msgstr ""
+
+#: objcopy.c:3031
+#, c-format
+msgid "error: %s not found, can't be updated"
+msgstr ""
+
+#: objcopy.c:3071
+msgid "warning: could not load note section"
+msgstr ""
+
+#: objcopy.c:3092
+msgid "warning: failed to set merged notes size"
+msgstr ""
+
+#: objcopy.c:3118
+#, c-format
+msgid "can't dump section '%s' - it does not exist"
+msgstr ""
+
+#: objcopy.c:3126
+msgid "can't dump section - it has no contents"
+msgstr ""
+
+#: objcopy.c:3138
+msgid "could not open section dump file"
+msgstr ""
+
+#: objcopy.c:3146
+#, c-format
+msgid "error writing section contents to %s (error: %s)"
+msgstr ""
+
+#: objcopy.c:3156
+msgid "could not retrieve section contents"
+msgstr ""
+
+#: objcopy.c:3170
+#, c-format
+msgid "%s: debuglink section already exists"
+msgstr ""
+
+#: objcopy.c:3182
+#, c-format
+msgid "cannot create debug link section `%s'"
+msgstr ""
+
+#: objcopy.c:3275
+msgid "Can't fill gap after section"
+msgstr ""
+
+#: objcopy.c:3299
+msgid "can't add padding"
+msgstr ""
+
+#: objcopy.c:3471
+msgid "error: failed to locate merged notes"
+msgstr ""
+
+#: objcopy.c:3480
+msgid "error: failed to merge notes"
+msgstr ""
+
+#: objcopy.c:3489
+msgid "error: failed to copy merged notes into output"
+msgstr ""
+
+#: objcopy.c:3506
+#, c-format
+msgid "%s: Could not find any mergeable note sections"
+msgstr ""
+
+#: objcopy.c:3515
+#, c-format
+msgid "cannot fill debug link section `%s'"
+msgstr ""
+
+#: objcopy.c:3578
+msgid "error copying private BFD data"
+msgstr ""
+
+#: objcopy.c:3589
+#, c-format
+msgid "this target does not support %lu alternative machine codes"
+msgstr ""
+
+#: objcopy.c:3593
+msgid "treating that number as an absolute e_machine value instead"
+msgstr ""
+
+#: objcopy.c:3597
+msgid "ignoring the alternative value"
+msgstr ""
+
+#: objcopy.c:3658
+msgid "sorry: copying thin archives is not currently supported"
+msgstr ""
+
+#: objcopy.c:3665 objcopy.c:3721
+#, c-format
+msgid "cannot create tempdir for archive copying (error: %s)"
+msgstr ""
+
+#: objcopy.c:3700
+#, c-format
+msgid "warning: illegal pathname found in archive member: %s"
+msgstr ""
+
+#: objcopy.c:3706
+#, c-format
+msgid "warning: using the basename of the member instead: %s"
+msgstr ""
+
+#: objcopy.c:3754
+msgid "Unable to recognise the format of file"
+msgstr ""
+
+#: objcopy.c:3883
+#, c-format
+msgid "error: the input file '%s' is empty"
+msgstr ""
+
+#: objcopy.c:3925
+msgid "--compress-debug-sections=zstd: binutils is not built with zstd support"
+msgstr ""
+
+#: objcopy.c:3981
+#, c-format
+msgid "--add-gnu-debuglink ignored for archive %s"
+msgstr ""
+
+#: objcopy.c:4095
+#, c-format
+msgid "Multiple renames of section %s"
+msgstr ""
+
+#: objcopy.c:4140
+msgid "error in private header data"
+msgstr ""
+
+#: objcopy.c:4273 objcopy.c:4281
+msgid "failed to create output section"
+msgstr ""
+
+#: objcopy.c:4290
+msgid "failed to set size"
+msgstr ""
+
+#: objcopy.c:4309
+msgid "failed to set vma"
+msgstr ""
+
+#: objcopy.c:4343
+msgid "failed to set alignment"
+msgstr ""
+
+#: objcopy.c:4358
+#, c-format
+msgid "output section %s's alignment does not match its VMA"
+msgstr ""
+
+#: objcopy.c:4372
+#, c-format
+msgid "output section %s's alignment does not match its LMA"
+msgstr ""
+
+#: objcopy.c:4402
+msgid "failed to copy private data"
+msgstr ""
+
+#: objcopy.c:4556
+msgid "relocation count is negative"
+msgstr ""
+
+#. User must pad the section up in order to do this.
+#: objcopy.c:4642
+#, c-format
+msgid "cannot reverse bytes: length of section %s must be evenly divisible by %d"
+msgstr ""
+
+#: objcopy.c:4848
+msgid "can't create debugging section"
+msgstr ""
+
+#: objcopy.c:4862
+msgid "can't set debugging section contents"
+msgstr ""
+
+#: objcopy.c:4872
+#, c-format
+msgid "don't know how to write debugging information for %s"
+msgstr ""
+
+#: objcopy.c:5083
+msgid "could not create temporary file to hold stripped copy"
+msgstr ""
+
+#: objcopy.c:5157
+#, c-format
+msgid "%s: bad version in PE subsystem"
+msgstr ""
+
+#: objcopy.c:5187
+#, c-format
+msgid "unknown PE subsystem: %s"
+msgstr ""
+
+#: objcopy.c:5276 objcopy.c:5552 objcopy.c:5632 objcopy.c:5770 objcopy.c:5802
+#: objcopy.c:5858 objcopy.c:5862 objcopy.c:5882
+#, c-format
+msgid "bad format for %s"
+msgstr ""
+
+#: objcopy.c:5305
+#, c-format
+msgid "cannot open: %s: %s"
+msgstr ""
+
+#: objcopy.c:5360
+msgid "byte number must be non-negative"
+msgstr ""
+
+#: objcopy.c:5366
+#, c-format
+msgid "architecture %s unknown"
+msgstr ""
+
+#: objcopy.c:5374
+msgid "interleave must be positive"
+msgstr ""
+
+#: objcopy.c:5383
+msgid "interleave width must be positive"
+msgstr ""
+
+#: objcopy.c:5707
+#, c-format
+msgid "unrecognized --compress-debug-sections type `%s'"
+msgstr ""
+
+#: objcopy.c:5728
+#, c-format
+msgid "unrecognized --elf-stt-common= option `%s'"
+msgstr ""
+
+#: objcopy.c:5739
+#, c-format
+msgid "Warning: truncating gap-fill from 0x%<PRIx64> to 0x%x"
+msgstr ""
+
+#: objcopy.c:5825
+msgid "bad format for --set-section-alignment: argument needed"
+msgstr ""
+
+#: objcopy.c:5829
+msgid "bad format for --set-section-alignment: numeric argument needed"
+msgstr ""
+
+#: objcopy.c:5834
+msgid "bad format for --set-section-alignment: alignment is not a power of two"
+msgstr ""
+
+#: objcopy.c:5941
+#, c-format
+msgid "unknown long section names option '%s'"
+msgstr ""
+
+#: objcopy.c:5964
+msgid "unable to parse alternative machine code"
+msgstr ""
+
+#: objcopy.c:6013
+msgid "number of bytes to reverse must be positive and even"
+msgstr ""
+
+#: objcopy.c:6016
+#, c-format
+msgid "Warning: ignoring previous --reverse-bytes value of %d"
+msgstr ""
+
+#: objcopy.c:6025
+#, c-format
+msgid "--file-alignment argument is not a power of two: %s - ignoring"
+msgstr ""
+
+#: objcopy.c:6036
+#, c-format
+msgid "%s: invalid reserve value for --heap"
+msgstr ""
+
+#: objcopy.c:6042
+#, c-format
+msgid "%s: invalid commit value for --heap"
+msgstr ""
+
+#: objcopy.c:6057
+#, c-format
+msgid "--section-alignment argument is not a power of two: %s - ignoring"
+msgstr ""
+
+#: objcopy.c:6072
+#, c-format
+msgid "%s: invalid reserve value for --stack"
+msgstr ""
+
+#: objcopy.c:6078
+#, c-format
+msgid "%s: invalid commit value for --stack"
+msgstr ""
+
+#: objcopy.c:6096
+msgid "error: verilog data width must be 1, 2, 4, 8 or 16"
+msgstr ""
+
+#: objcopy.c:6114
+msgid "--globalize-symbol(s) is incompatible with -G/--keep-global-symbol(s)"
+msgstr ""
+
+#: objcopy.c:6126
+msgid "interleave start byte must be set with --byte"
+msgstr ""
+
+#: objcopy.c:6129
+msgid "byte number must be less than interleave"
+msgstr ""
+
+#: objcopy.c:6132
+msgid "interleave width must be less than or equal to interleave - byte`"
+msgstr ""
+
+#: objcopy.c:6155
+#, c-format
+msgid "unknown input EFI target: %s"
+msgstr ""
+
+#: objcopy.c:6165
+#, c-format
+msgid "unknown output EFI target: %s"
+msgstr ""
+
+#: objcopy.c:6189
+#, c-format
+msgid "warning: could not create temporary file whilst copying '%s', (error: %s)"
+msgstr ""
+
+#: objcopy.c:6221 objcopy.c:6229
+#, c-format
+msgid "%s %s%c0x%<PRIx64> never used"
+msgstr ""
+
+#: objdump.c:261
+#, c-format
+msgid "Usage: %s <option(s)> <file(s)>\n"
+msgstr ""
+
+#: objdump.c:262
+#, c-format
+msgid " Display information from object <file(s)>.\n"
+msgstr ""
+
+#: objdump.c:263
+#, c-format
+msgid " At least one of the following switches must be given:\n"
+msgstr ""
+
+#: objdump.c:264
+#, c-format
+msgid " -a, --archive-headers Display archive header information\n"
+msgstr ""
+
+#: objdump.c:266
+#, c-format
+msgid " -f, --file-headers Display the contents of the overall file header\n"
+msgstr ""
+
+#: objdump.c:268
+#, c-format
+msgid " -p, --private-headers Display object format specific file header contents\n"
+msgstr ""
+
+#: objdump.c:270
+#, c-format
+msgid " -P, --private=OPT,OPT... Display object format specific contents\n"
+msgstr ""
+
+#: objdump.c:272
+#, c-format
+msgid " -h, --[section-]headers Display the contents of the section headers\n"
+msgstr ""
+
+#: objdump.c:274
+#, c-format
+msgid " -x, --all-headers Display the contents of all headers\n"
+msgstr ""
+
+#: objdump.c:276
+#, c-format
+msgid " -d, --disassemble Display assembler contents of executable sections\n"
+msgstr ""
+
+#: objdump.c:278
+#, c-format
+msgid " -D, --disassemble-all Display assembler contents of all sections\n"
+msgstr ""
+
+#: objdump.c:280
+#, c-format
+msgid " --disassemble=<sym> Display assembler contents from <sym>\n"
+msgstr ""
+
+#: objdump.c:282
+#, c-format
+msgid " -S, --source Intermix source code with disassembly\n"
+msgstr ""
+
+#: objdump.c:284
+#, c-format
+msgid " --source-comment[=<txt>] Prefix lines of source code with <txt>\n"
+msgstr ""
+
+#: objdump.c:286
+#, c-format
+msgid " -s, --full-contents Display the full contents of all sections requested\n"
+msgstr ""
+
+#: objdump.c:288
+#, c-format
+msgid " -Z, --decompress Decompress section(s) before displaying their contents\n"
+msgstr ""
+
+#: objdump.c:290
+#, c-format
+msgid " -g, --debugging Display debug information in object file\n"
+msgstr ""
+
+#: objdump.c:292
+#, c-format
+msgid " -e, --debugging-tags Display debug information using ctags style\n"
+msgstr ""
+
+#: objdump.c:294
+#, c-format
+msgid " -G, --stabs Display (in raw form) any STABS info in the file\n"
+msgstr ""
+
+#: objdump.c:296
+#, c-format
+msgid ""
+" -W, --dwarf[a/=abbrev, A/=addr, r/=aranges, c/=cu_index, L/=decodedline,\n"
+" f/=frames, F/=frames-interp, g/=gdb_index, i/=info, o/=loc,\n"
+" m/=macro, p/=pubnames, t/=pubtypes, R/=Ranges, l/=rawline,\n"
+" s/=str, O/=str-offsets, u/=trace_abbrev, T/=trace_aranges,\n"
+" U/=trace_info]\n"
+" Display the contents of DWARF debug sections\n"
+msgstr ""
+
+#: objdump.c:303
+#, c-format
+msgid ""
+" -Wk,--dwarf=links Display the contents of sections that link to\n"
+" separate debuginfo files\n"
+msgstr ""
+
+#: objdump.c:307
+#, c-format
+msgid ""
+" -WK,--dwarf=follow-links\n"
+" Follow links to separate debug info files (default)\n"
+msgstr ""
+
+#: objdump.c:310
+#, c-format
+msgid ""
+" -WN,--dwarf=no-follow-links\n"
+" Do not follow links to separate debug info files\n"
+msgstr ""
+
+#: objdump.c:314
+#, c-format
+msgid ""
+" -WK,--dwarf=follow-links\n"
+" Follow links to separate debug info files\n"
+msgstr ""
+
+#: objdump.c:317
+#, c-format
+msgid ""
+" -WN,--dwarf=no-follow-links\n"
+" Do not follow links to separate debug info files\n"
+" (default)\n"
+msgstr ""
+
+#: objdump.c:323
+#, c-format
+msgid ""
+" -WD --dwarf=use-debuginfod\n"
+" When following links, also query debuginfod servers (default)\n"
+msgstr ""
+
+#: objdump.c:326
+#, c-format
+msgid ""
+" -WE --dwarf=do-not-use-debuginfod\n"
+" When following links, do not query debuginfod servers\n"
+msgstr ""
+
+#: objdump.c:330
+#, c-format
+msgid ""
+" -L, --process-links Display the contents of non-debug sections in\n"
+" separate debuginfo files. (Implies -WK)\n"
+msgstr ""
+
+#: objdump.c:334
+#, c-format
+msgid " --ctf[=SECTION] Display CTF info from SECTION, (default `.ctf')\n"
+msgstr ""
+
+#: objdump.c:337
+#, c-format
+msgid " --sframe[=SECTION] Display SFrame info from SECTION, (default '.sframe')\n"
+msgstr ""
+
+#: objdump.c:339
+#, c-format
+msgid " -t, --syms Display the contents of the symbol table(s)\n"
+msgstr ""
+
+#: objdump.c:341
+#, c-format
+msgid " -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
+msgstr ""
+
+#: objdump.c:343
+#, c-format
+msgid " -r, --reloc Display the relocation entries in the file\n"
+msgstr ""
+
+#: objdump.c:345
+#, c-format
+msgid " -R, --dynamic-reloc Display the dynamic relocation entries in the file\n"
+msgstr ""
+
+#: objdump.c:347
+#, c-format
+msgid " @<file> Read options from <file>\n"
+msgstr ""
+
+#: objdump.c:349
+#, c-format
+msgid " -v, --version Display this program's version number\n"
+msgstr ""
+
+#: objdump.c:351
+#, c-format
+msgid " -i, --info List object formats and architectures supported\n"
+msgstr ""
+
+#: objdump.c:353
+#, c-format
+msgid " -H, --help Display this information\n"
+msgstr ""
+
+#: objdump.c:360
+#, c-format
+msgid ""
+"\n"
+" The following switches are optional:\n"
+msgstr ""
+
+#: objdump.c:361
+#, c-format
+msgid " -b, --target=BFDNAME Specify the target object format as BFDNAME\n"
+msgstr ""
+
+#: objdump.c:363
+#, c-format
+msgid " -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
+msgstr ""
+
+#: objdump.c:365
+#, c-format
+msgid " -j, --section=NAME Only display information for section NAME\n"
+msgstr ""
+
+#: objdump.c:367
+#, c-format
+msgid " -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
+msgstr ""
+
+#: objdump.c:369
+#, c-format
+msgid " -EB --endian=big Assume big endian format when disassembling\n"
+msgstr ""
+
+#: objdump.c:371
+#, c-format
+msgid " -EL --endian=little Assume little endian format when disassembling\n"
+msgstr ""
+
+#: objdump.c:373
+#, c-format
+msgid " --file-start-context Include context from start of file (with -S)\n"
+msgstr ""
+
+#: objdump.c:375
+#, c-format
+msgid " -I, --include=DIR Add DIR to search list for source files\n"
+msgstr ""
+
+#: objdump.c:377
+#, c-format
+msgid " -l, --line-numbers Include line numbers and filenames in output\n"
+msgstr ""
+
+#: objdump.c:379
+#, c-format
+msgid " -F, --file-offsets Include file offsets when displaying information\n"
+msgstr ""
+
+#: objdump.c:381
+#, c-format
+msgid " -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
+msgstr ""
+
+#: objdump.c:383
+msgid " STYLE can be "
+msgstr ""
+
+#: objdump.c:385
+#, c-format
+msgid ""
+" --recurse-limit Enable a limit on recursion whilst demangling\n"
+" (default)\n"
+msgstr ""
+
+#: objdump.c:388
+#, c-format
+msgid " --no-recurse-limit Disable a limit on recursion whilst demangling\n"
+msgstr ""
+
+#: objdump.c:390
+#, c-format
+msgid " -w, --wide Format output for more than 80 columns\n"
+msgstr ""
+
+#: objdump.c:392
+#, c-format
+msgid ""
+" -U[d|l|i|x|e|h] Controls the display of UTF-8 unicode characters\n"
+" --unicode=[default|locale|invalid|hex|escape|highlight]\n"
+msgstr ""
+
+#: objdump.c:395
+#, c-format
+msgid " -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n"
+msgstr ""
+
+#: objdump.c:397
+#, c-format
+msgid " --start-address=ADDR Only process data whose address is >= ADDR\n"
+msgstr ""
+
+#: objdump.c:399
+#, c-format
+msgid " --stop-address=ADDR Only process data whose address is < ADDR\n"
+msgstr ""
+
+#: objdump.c:401
+#, c-format
+msgid " --no-addresses Do not print address alongside disassembly\n"
+msgstr ""
+
+#: objdump.c:403
+#, c-format
+msgid " --prefix-addresses Print complete address alongside disassembly\n"
+msgstr ""
+
+#: objdump.c:405
+#, c-format
+msgid " --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
+msgstr ""
+
+#: objdump.c:407
+#, c-format
+msgid " --insn-width=WIDTH Display WIDTH bytes on a single line for -d\n"
+msgstr ""
+
+#: objdump.c:409
+#, c-format
+msgid " --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n"
+msgstr ""
+
+#: objdump.c:411
+#, c-format
+msgid " --show-all-symbols When disassembling, display all symbols at a given address\n"
+msgstr ""
+
+#: objdump.c:413
+#, c-format
+msgid " --special-syms Include special symbols in symbol dumps\n"
+msgstr ""
+
+#: objdump.c:415
+#, c-format
+msgid " --inlines Print all inlines for source line (with -l)\n"
+msgstr ""
+
+#: objdump.c:417
+#, c-format
+msgid " --prefix=PREFIX Add PREFIX to absolute paths for -S\n"
+msgstr ""
+
+#: objdump.c:419
+#, c-format
+msgid " --prefix-strip=LEVEL Strip initial directory names for -S\n"
+msgstr ""
+
+#: objdump.c:421
+#, c-format
+msgid " --dwarf-depth=N Do not display DIEs at depth N or greater\n"
+msgstr ""
+
+#: objdump.c:423
+#, c-format
+msgid " --dwarf-start=N Display DIEs starting at offset N\n"
+msgstr ""
+
+#: objdump.c:425
+#, c-format
+msgid " --dwarf-check Make additional dwarf consistency checks.\n"
+msgstr ""
+
+#: objdump.c:428
+#, c-format
+msgid " --ctf-parent=NAME Use CTF archive member NAME as the CTF parent\n"
+msgstr ""
+
+#: objdump.c:431
+#, c-format
+msgid " --visualize-jumps Visualize jumps by drawing ASCII art lines\n"
+msgstr ""
+
+#: objdump.c:433
+#, c-format
+msgid " --visualize-jumps=color Use colors in the ASCII art\n"
+msgstr ""
+
+#: objdump.c:435
+#, c-format
+msgid ""
+" --visualize-jumps=extended-color\n"
+" Use extended 8-bit color codes\n"
+msgstr ""
+
+#: objdump.c:438
+#, c-format
+msgid " --visualize-jumps=off Disable jump visualization\n"
+msgstr ""
+
+#: objdump.c:441
+#, c-format
+msgid " --disassembler-color=off Disable disassembler color output.\n"
+msgstr ""
+
+#: objdump.c:443
+#, c-format
+msgid " --disassembler-color=terminal Enable disassembler color output if displaying on a terminal. (default)\n"
+msgstr ""
+
+#: objdump.c:446
+#, c-format
+msgid " --disassembler-color=off Disable disassembler color output. (default)\n"
+msgstr ""
+
+#: objdump.c:448
+#, c-format
+msgid " --disassembler-color=terminal Enable disassembler color output if displaying on a terminal.\n"
+msgstr ""
+
+#: objdump.c:451
+#, c-format
+msgid " --disassembler-color=on Enable disassembler color output.\n"
+msgstr ""
+
+#: objdump.c:453
+#, c-format
+msgid ""
+" --disassembler-color=extended Use 8-bit colors in disassembler output.\n"
+"\n"
+msgstr ""
+
+#: objdump.c:464
+#, c-format
+msgid ""
+"\n"
+"Options supported for -P/--private switch:\n"
+msgstr ""
+
+#: objdump.c:837
+#, c-format
+msgid "section '%s' mentioned in a -j option, but not found in any input file"
+msgstr ""
+
+#: objdump.c:995
+#, c-format
+msgid "Sections:\n"
+msgstr ""
+
+#: objdump.c:1001
+#, c-format
+msgid "Idx %-*s Size %-*s%-*sFile off Algn"
+msgstr ""
+
+#: objdump.c:1007
+#, c-format
+msgid " Flags"
+msgstr ""
+
+#: objdump.c:1024
+#, c-format
+msgid "failed to read symbol table from: %s"
+msgstr ""
+
+#: objdump.c:1026 objdump.c:5513 objdump.c:5595
+msgid "error message was"
+msgstr ""
+
+#: objdump.c:1055
+#, c-format
+msgid "%s: not a dynamic object"
+msgstr ""
+
+#: objdump.c:1663 objdump.c:1728
+#, c-format
+msgid " (File Offset: 0x%lx)"
+msgstr ""
+
+#: objdump.c:2150
+#, c-format
+msgid "source file %s is more recent than object file\n"
+msgstr ""
+
+#: objdump.c:2519
+msgid "disassembly color not correctly selected"
+msgstr ""
+
+#: objdump.c:3393
+#, c-format
+msgid "\t... (skipping %lu zeroes, resuming at file offset: 0x%lx)\n"
+msgstr ""
+
+#: objdump.c:3532
+#, c-format
+msgid "disassemble_fn returned length %d"
+msgstr ""
+
+#: objdump.c:3869 objdump.c:5130
+#, c-format
+msgid "Reading section %s failed because: %s"
+msgstr ""
+
+#: objdump.c:3885
+#, c-format
+msgid ""
+"\n"
+"Disassembly of section %s:\n"
+msgstr ""
+
+#: objdump.c:4202
+#, c-format
+msgid "can't use supplied machine %s"
+msgstr ""
+
+#: objdump.c:4225
+#, c-format
+msgid "can't disassemble for architecture %s\n"
+msgstr ""
+
+#: objdump.c:4324
+#, c-format
+msgid ""
+"\n"
+"Section '%s' has an invalid size: %#<PRIx64>.\n"
+msgstr ""
+
+#: objdump.c:4373
+#, c-format
+msgid ""
+"\n"
+"Can't get contents for section '%s'.\n"
+msgstr ""
+
+#: objdump.c:4536
+#, c-format
+msgid "File %s does not contain any dwarf debug information\n"
+msgstr ""
+
+#: objdump.c:4572 objdump.c:4999
+#, c-format
+msgid ""
+"No %s section present\n"
+"\n"
+msgstr ""
+
+#: objdump.c:4581
+#, c-format
+msgid "reading %s section of %s failed: %s"
+msgstr ""
+
+#: objdump.c:4619
+#, c-format
+msgid ""
+"Contents of %s section:\n"
+"\n"
+msgstr ""
+
+#: objdump.c:4761
+#, c-format
+msgid "architecture: %s, "
+msgstr ""
+
+#: objdump.c:4764
+#, c-format
+msgid "flags 0x%08x:\n"
+msgstr ""
+
+#: objdump.c:4777
+#, c-format
+msgid ""
+"\n"
+"start address 0x"
+msgstr ""
+
+#: objdump.c:4823 readelf.c:16942
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: objdump.c:4823 readelf.c:16942
+msgid "warning"
+msgstr "გáƒáƒ¤áƒ áƒ—ხილებáƒ"
+
+#: objdump.c:4823 readelf.c:16942
+msgid "error"
+msgstr "შეცდáƒáƒ›áƒ"
+
+#: objdump.c:4829 readelf.c:16947
+#, c-format
+msgid "CTF error: cannot get CTF errors: `%s'"
+msgstr ""
+
+#: objdump.c:4853 readelf.c:16969
+#, c-format
+msgid ""
+"\n"
+"CTF archive member: %s:\n"
+msgstr ""
+
+#: objdump.c:4873
+#, c-format
+msgid "Iteration failed: %s, %s"
+msgstr ""
+
+#: objdump.c:4919 objdump.c:4939 objdump.c:4952
+#, c-format
+msgid "CTF open failure: %s"
+msgstr ""
+
+#: objdump.c:4960
+#, c-format
+msgid "Contents of CTF section %s:\n"
+msgstr ""
+
+#: objdump.c:4970
+#, c-format
+msgid "CTF archive member open failure: %s"
+msgstr ""
+
+#: objdump.c:5011
+#, c-format
+msgid "warning: private headers incomplete: %s"
+msgstr ""
+
+#: objdump.c:5029
+msgid "option -P/--private not supported by this file"
+msgstr ""
+
+#: objdump.c:5053
+#, c-format
+msgid "target specific dump '%s' not supported"
+msgstr ""
+
+#: objdump.c:5119
+#, c-format
+msgid "Contents of section %s:"
+msgstr ""
+
+#: objdump.c:5121
+#, c-format
+msgid " (Starting at file offset: 0x%lx)"
+msgstr ""
+
+#: objdump.c:5126 readelf.c:16640
+#, c-format
+msgid " NOTE: This section is compressed, but its contents have NOT been expanded for this dump.\n"
+msgstr ""
+
+#: objdump.c:5234
+#, c-format
+msgid "no symbols\n"
+msgstr ""
+
+#: objdump.c:5241
+#, c-format
+msgid "no information for symbol number %ld\n"
+msgstr ""
+
+#: objdump.c:5244
+#, c-format
+msgid "could not determine the type of symbol number %ld\n"
+msgstr ""
+
+#: objdump.c:5511 objdump.c:5593
+#, c-format
+msgid "failed to read relocs in: %s"
+msgstr ""
+
+#: objdump.c:5565
+#, c-format
+msgid "%s: This file does not contain any ordinary relocations.\n"
+msgstr ""
+
+#: objdump.c:5568
+#, c-format
+msgid "%s: It does however contain RELR relocations. These can be displayed by the readelf program\n"
+msgstr ""
+
+#: objdump.c:5612
+#, c-format
+msgid ""
+"%s: contains RELR relocations which are not displayed by %s.\n"
+"These can be displayed by the readelf program instead.\n"
+msgstr ""
+
+#: objdump.c:5736
+#, c-format
+msgid ""
+"\n"
+"%s: file format %s\n"
+msgstr ""
+
+#: objdump.c:5849
+#, c-format
+msgid "%s: printing debugging information failed"
+msgstr ""
+
+#: objdump.c:5936
+#, c-format
+msgid "In archive %s:\n"
+msgstr ""
+
+#. Prevent corrupted files from spinning us into an
+#. infinite loop. 100 is an arbitrary heuristic.
+#: objdump.c:5941
+msgid "Archive nesting is too deep"
+msgstr ""
+
+#: objdump.c:5946
+#, c-format
+msgid "In nested archive %s:\n"
+msgstr ""
+
+#: objdump.c:6096
+msgid "error: the start address should be before the end address"
+msgstr ""
+
+#: objdump.c:6101
+msgid "error: the stop address should be after the start address"
+msgstr ""
+
+#: objdump.c:6113
+msgid "error: prefix strip must be non-negative"
+msgstr ""
+
+#: objdump.c:6118
+msgid "error: instruction width must be in the range 1 to "
+msgstr ""
+
+#: objdump.c:6141
+msgid "unrecognized argument to --visualize-option"
+msgstr ""
+
+#: objdump.c:6161
+msgid "unrecognized argument to --disassembler-color"
+msgstr ""
+
+#: objdump.c:6172
+msgid "unrecognized -E option"
+msgstr ""
+
+#: objdump.c:6183
+#, c-format
+msgid "unrecognized --endian type `%s'"
+msgstr ""
+
+#: objdump.c:6290 readelf.c:6546
+msgid "Unrecognized debug option 'sframe-internal-only'\n"
+msgstr ""
+
+#: od-elf32_avr.c:55
+#, c-format
+msgid ""
+"For AVR ELF files:\n"
+" mem-usage Display memory usage\n"
+" avr-prop Display contents of .avr.prop section\n"
+" avr-deviceinfo Display contents of .note.gnu.avr.deviceinfo section\n"
+msgstr ""
+
+#: od-elf32_avr.c:190
+#, c-format
+msgid "Warning: section %s has a negative size of %ld bytes, saturating to 0 bytes\n"
+msgstr ""
+
+#: od-elf32_avr.c:197
+#, c-format
+msgid "Warning: section %s has an impossible size of %lu bytes, truncating to %lu bytes\n"
+msgstr ""
+
+#: od-macho.c:75
+#, c-format
+msgid ""
+"For Mach-O files:\n"
+" header Display the file header\n"
+" section Display the segments and sections commands\n"
+" map Display the section map\n"
+" load Display the load commands\n"
+" dysymtab Display the dynamic symbol table\n"
+" codesign Display code signature\n"
+" seg_split_info Display segment split info\n"
+" compact_unwind Display compact unwinding info\n"
+" function_starts Display start address of functions\n"
+" data_in_code Display data in code entries\n"
+" twolevel_hints Display the two-level namespace lookup hints table\n"
+" dyld_info Display dyld information\n"
+msgstr ""
+
+#: od-macho.c:314
+msgid "Mach-O header:\n"
+msgstr ""
+
+#: od-macho.c:315
+#, c-format
+msgid " magic : %08lx\n"
+msgstr ""
+
+#: od-macho.c:316
+#, c-format
+msgid " cputype : %08lx (%s)\n"
+msgstr ""
+
+#: od-macho.c:318
+#, c-format
+msgid " cpusubtype: %08lx\n"
+msgstr ""
+
+#: od-macho.c:319
+#, c-format
+msgid " filetype : %08lx (%s)\n"
+msgstr ""
+
+#: od-macho.c:322
+#, c-format
+msgid " ncmds : %08lx (%lu)\n"
+msgstr ""
+
+#: od-macho.c:323
+#, c-format
+msgid " sizeofcmds: %08lx (%lu)\n"
+msgstr ""
+
+#: od-macho.c:324
+#, c-format
+msgid " flags : %08lx ("
+msgstr ""
+
+#: od-macho.c:326
+msgid ")\n"
+msgstr ""
+
+#: od-macho.c:327
+#, c-format
+msgid " reserved : %08x\n"
+msgstr ""
+
+#: od-macho.c:346
+msgid "Segments and Sections:\n"
+msgstr ""
+
+#: od-macho.c:347
+msgid " #: Segment name Section name Address\n"
+msgstr ""
+
+#: od-macho.c:989
+msgid "cannot read rebase dyld info"
+msgstr ""
+
+#: od-macho.c:994
+msgid "cannot read bind dyld info"
+msgstr ""
+
+#: od-macho.c:999
+msgid "cannot read weak bind dyld info"
+msgstr ""
+
+#: od-macho.c:1004
+msgid "cannot read lazy bind dyld info"
+msgstr ""
+
+#: od-macho.c:1009
+msgid "cannot read export symbols dyld info"
+msgstr ""
+
+#: od-macho.c:1089 od-macho.c:1099 od-macho.c:1173 od-macho.c:1225
+#, c-format
+msgid " [bad block length]\n"
+msgstr ""
+
+#: od-macho.c:1093
+#, c-format
+msgid " %u index entry:\n"
+msgid_plural " %u index entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: od-macho.c:1109
+#, c-format
+msgid " index entry %u: type: %08x, offset: %08x\n"
+msgstr ""
+
+#: od-macho.c:1180
+#, c-format
+msgid " version: %08x\n"
+msgstr ""
+
+#: od-macho.c:1181
+#, c-format
+msgid " flags: %08x\n"
+msgstr ""
+
+#: od-macho.c:1182
+#, c-format
+msgid " hash offset: %08x\n"
+msgstr ""
+
+#: od-macho.c:1184
+#, c-format
+msgid " ident offset: %08x (- %08x)\n"
+msgstr ""
+
+#: od-macho.c:1186
+#, c-format
+msgid " identity: %s\n"
+msgstr ""
+
+#: od-macho.c:1187
+#, c-format
+msgid " nbr special slots: %08x (at offset %08x)\n"
+msgstr ""
+
+#: od-macho.c:1190
+#, c-format
+msgid " nbr code slots: %08x\n"
+msgstr ""
+
+#: od-macho.c:1191
+#, c-format
+msgid " code limit: %08x\n"
+msgstr ""
+
+#: od-macho.c:1192
+#, c-format
+msgid " hash size: %02x\n"
+msgstr ""
+
+#: od-macho.c:1193
+#, c-format
+msgid " hash type: %02x (%s)\n"
+msgstr ""
+
+#: od-macho.c:1196
+#, c-format
+msgid " spare1: %02x\n"
+msgstr ""
+
+#: od-macho.c:1197
+#, c-format
+msgid " page size: %02x\n"
+msgstr ""
+
+#: od-macho.c:1198
+#, c-format
+msgid " spare2: %08x\n"
+msgstr ""
+
+#: od-macho.c:1200
+#, c-format
+msgid " scatter offset: %08x\n"
+msgstr ""
+
+#: od-macho.c:1212
+#, c-format
+msgid " [truncated block]\n"
+msgstr ""
+
+#: od-macho.c:1220
+#, c-format
+msgid " magic : %08x (%s)\n"
+msgstr ""
+
+#: od-macho.c:1222
+#, c-format
+msgid " length: %08x\n"
+msgstr ""
+
+#: od-macho.c:1253
+msgid "cannot read code signature data"
+msgstr ""
+
+#: od-macho.c:1281
+msgid "cannot read segment split info"
+msgstr ""
+
+#: od-macho.c:1287
+msgid "segment split info is not nul terminated"
+msgstr ""
+
+#: od-macho.c:1295
+#, c-format
+msgid " 32 bit pointers:\n"
+msgstr ""
+
+#: od-macho.c:1298
+#, c-format
+msgid " 64 bit pointers:\n"
+msgstr ""
+
+#: od-macho.c:1301
+#, c-format
+msgid " PPC hi-16:\n"
+msgstr ""
+
+#: od-macho.c:1304
+#, c-format
+msgid " Unhandled location type %u\n"
+msgstr ""
+
+#: od-macho.c:1328
+msgid "cannot read function starts"
+msgstr ""
+
+#: od-macho.c:1392
+msgid "cannot read data_in_code"
+msgstr ""
+
+#: od-macho.c:1430
+msgid "cannot read twolevel hints"
+msgstr ""
+
+#: od-macho.c:1498
+msgid "cannot read build tools"
+msgstr ""
+
+#: od-pe.c:215
+#, c-format
+msgid ""
+"For PE files:\n"
+" header Display the file header\n"
+" sections Display the section headers\n"
+msgstr ""
+
+#: od-pe.c:268
+#, c-format
+msgid "unknown: 0x%x"
+msgstr ""
+
+#: od-pe.c:284
+#, c-format
+msgid ""
+"\n"
+" File header not present\n"
+msgstr ""
+
+#: od-pe.c:287
+#, c-format
+msgid ""
+"\n"
+" File Header (at offset 0):\n"
+msgstr ""
+
+#: od-pe.c:293
+#, c-format
+msgid "Bytes on Last Page:\t\t%d\n"
+msgstr ""
+
+#: od-pe.c:296
+#, c-format
+msgid "Pages In File:\t\t\t%d\n"
+msgstr ""
+
+#: od-pe.c:299
+#, c-format
+msgid "Relocations:\t\t\t%d\n"
+msgstr ""
+
+#: od-pe.c:302
+#, c-format
+msgid "Size of header in paragraphs:\t%d\n"
+msgstr ""
+
+#: od-pe.c:305
+#, c-format
+msgid "Min extra paragraphs needed:\t%d\n"
+msgstr ""
+
+#: od-pe.c:308
+#, c-format
+msgid "Max extra paragraphs needed:\t%d\n"
+msgstr ""
+
+#: od-pe.c:311
+#, c-format
+msgid "Initial (relative) SS value:\t%d\n"
+msgstr ""
+
+#: od-pe.c:314
+#, c-format
+msgid "Initial SP value:\t\t%d\n"
+msgstr ""
+
+#: od-pe.c:317
+#, c-format
+msgid "Checksum:\t\t\t%#x\n"
+msgstr ""
+
+#: od-pe.c:320
+#, c-format
+msgid "Initial IP value:\t\t%d\n"
+msgstr ""
+
+#: od-pe.c:323
+#, c-format
+msgid "Initial (relative) CS value:\t%d\n"
+msgstr ""
+
+#: od-pe.c:326
+#, c-format
+msgid "File address of reloc table:\t%d\n"
+msgstr ""
+
+#: od-pe.c:329
+#, c-format
+msgid "Overlay number:\t\t\t%d\n"
+msgstr ""
+
+#: od-pe.c:332
+#, c-format
+msgid "OEM identifier:\t\t\t%d\n"
+msgstr ""
+
+#: od-pe.c:335
+#, c-format
+msgid "OEM information:\t\t%#x\n"
+msgstr ""
+
+#: od-pe.c:338
+#, c-format
+msgid "File address of new exe header:\t%#lx\n"
+msgstr ""
+
+#: od-pe.c:369
+#, c-format
+msgid "Stub message:\t\t\t"
+msgstr ""
+
+#: od-pe.c:383
+#, c-format
+msgid ""
+"\n"
+" Image Header (at offset %#lx):\n"
+msgstr ""
+
+#: od-pe.c:391
+#, c-format
+msgid "Machine Number:\t\t\t%#x\t\t- %s\n"
+msgstr ""
+
+#: od-pe.c:394
+#, c-format
+msgid "Number of sections:\t\t\\%d\n"
+msgstr ""
+
+#: od-pe.c:397
+#, c-format
+msgid "Time/Date:\t\t\t%#08lx\t- "
+msgstr ""
+
+#: od-pe.c:399 od-xcoff.c:422 readelf.c:21737
+#, c-format
+msgid "not set\n"
+msgstr "დáƒáƒ§áƒ”ნებული áƒáƒ áƒáƒ\n"
+
+#: od-pe.c:407
+#, c-format
+msgid "Symbol table offset:\t\t%#08lx\n"
+msgstr ""
+
+#: od-pe.c:409
+#, c-format
+msgid "Number of symbols:\t\t\\%ld\n"
+msgstr ""
+
+#: od-pe.c:413
+#, c-format
+msgid "Optional header size:\t\t%#x\n"
+msgstr ""
+
+#: od-pe.c:416
+#, c-format
+msgid "Flags:\t\t\t\t0x%04x\t\t- "
+msgstr ""
+
+#: od-pe.c:424
+#, c-format
+msgid ""
+"\n"
+" Optional 64-bit AOUT Header (at offset %#lx):\n"
+msgstr ""
+
+#: od-pe.c:431
+#, c-format
+msgid "error: unable to read AOUT and PE+ headers\n"
+msgstr ""
+
+#: od-pe.c:435 od-pe.c:537
+#, c-format
+msgid "Magic:\t\t\t\t%x\t\t- %s\n"
+msgstr ""
+
+#: od-pe.c:436 od-pe.c:538 readelf.c:19547 readelf.c:19616
+msgid "Unknown"
+msgstr "უცნáƒáƒ‘ი"
+
+#: od-pe.c:438 od-pe.c:540
+#, c-format
+msgid "Linker Version:\t\t\t%x\t\t- %u.%02u\n"
+msgstr ""
+
+#: od-pe.c:443 od-pe.c:545
+#, c-format
+msgid "Text Size:\t\t\t%#lx\n"
+msgstr ""
+
+#: od-pe.c:445 od-pe.c:547
+#, c-format
+msgid "Data Size:\t\t\t%#lx\n"
+msgstr ""
+
+#: od-pe.c:447 od-pe.c:549
+#, c-format
+msgid "BSS Size:\t\t\t%#lx\n"
+msgstr ""
+
+#: od-pe.c:449 od-pe.c:551
+#, c-format
+msgid "Entry Point:\t\t\t%#lx\n"
+msgstr ""
+
+#: od-pe.c:451 od-pe.c:553
+#, c-format
+msgid "Text Start:\t\t\t%#lx\n"
+msgstr ""
+
+#. There is no data_start field in the PE+ standard header.
+#: od-pe.c:455
+#, c-format
+msgid ""
+"\n"
+" Optional PE+ Header (at offset %#lx):\n"
+msgstr ""
+
+#: od-pe.c:458 od-pe.c:571
+#, c-format
+msgid "Image Base:\t\t\t%#lx\n"
+msgstr ""
+
+#: od-pe.c:460 od-pe.c:573
+#, c-format
+msgid "Section Alignment:\t\t%#lx\n"
+msgstr ""
+
+#: od-pe.c:462 od-pe.c:575
+#, c-format
+msgid "File Alignment:\t\t\t%#lx\n"
+msgstr ""
+
+#: od-pe.c:465 od-pe.c:578
+#, c-format
+msgid "Image Version:\t\t\t%lx\t\t- %u.%02u\n"
+msgstr ""
+
+#: od-pe.c:470 od-pe.c:583
+#, c-format
+msgid "Minimal Subsystem Version:\t%lx\t\t- %u.%02u\n"
+msgstr ""
+
+#: od-pe.c:475 od-pe.c:588
+#, c-format
+msgid "Minimal OS Version:\t\t%lx\t\t- %u.%02u\n"
+msgstr ""
+
+#: od-pe.c:480 od-pe.c:593
+#, c-format
+msgid "Overwrite OS Version:\t\t%lx\t\t- "
+msgstr ""
+
+#: od-pe.c:483 od-pe.c:596
+#, c-format
+msgid "(default)\n"
+msgstr ""
+
+#: od-pe.c:485 od-pe.c:598
+#, c-format
+msgid "%u.%02u (build %u, platform %s)\n"
+msgstr ""
+
+#: od-pe.c:491 od-pe.c:604
+#, c-format
+msgid "Size Of Image:\t\t\t%#lx\n"
+msgstr ""
+
+#: od-pe.c:493 od-pe.c:606
+#, c-format
+msgid "Size Of Headers:\t\t%#lx\n"
+msgstr ""
+
+#: od-pe.c:495 od-pe.c:608
+#, c-format
+msgid "CheckSum:\t\t\t%#lx\n"
+msgstr ""
+
+#: od-pe.c:497 od-pe.c:610
+#, c-format
+msgid "Subsystem:\t\t\t%d\n"
+msgstr ""
+
+#. FIXME: Decode the characteristics.
+#: od-pe.c:500 od-pe.c:613
+#, c-format
+msgid "DllCharacteristics:\t\t%#x\n"
+msgstr ""
+
+#: od-pe.c:502 od-pe.c:615
+#, c-format
+msgid "Size Of Stack Reserve:\t\t%#lx\n"
+msgstr ""
+
+#: od-pe.c:504 od-pe.c:617
+#, c-format
+msgid "Size Of Stack Commit:\t\t%#lx\n"
+msgstr ""
+
+#: od-pe.c:506 od-pe.c:619
+#, c-format
+msgid "Size Of Heap Reserve:\t\t%#lx\n"
+msgstr ""
+
+#: od-pe.c:508 od-pe.c:621
+#, c-format
+msgid "Size Of Heap Commit:\t\t%#lx\n"
+msgstr ""
+
+#: od-pe.c:510 od-pe.c:623
+#, c-format
+msgid "Loader Flags:\t\t\t%#lx\n"
+msgstr ""
+
+#: od-pe.c:512 od-pe.c:625
+#, c-format
+msgid "Number Of Rva and Sizes:\t%#lx\n"
+msgstr ""
+
+#: od-pe.c:528
+#, c-format
+msgid ""
+"\n"
+" Optional 32-bit AOUT Header (at offset %#lx, size %d):\n"
+msgstr ""
+
+#: od-pe.c:533
+#, c-format
+msgid "error: unable to seek to/read AOUT header\n"
+msgstr ""
+
+#: od-pe.c:555
+#, c-format
+msgid "Data Start:\t\t\t%#lx\n"
+msgstr ""
+
+#: od-pe.c:562
+#, c-format
+msgid ""
+"\n"
+" Optional PE Header (at offset %#lx):\n"
+msgstr ""
+
+#: od-pe.c:568
+#, c-format
+msgid "error: unable to seek to/read PE header\n"
+msgstr ""
+
+#: od-pe.c:633
+#, c-format
+msgid ""
+"\n"
+"Unsupported size of Optional Header\n"
+msgstr ""
+
+#: od-pe.c:636
+#, c-format
+msgid ""
+"\n"
+" Optional header not present\n"
+msgstr ""
+
+#: od-pe.c:645
+#, c-format
+msgid "Align: 8192 "
+msgstr ""
+
+#: od-pe.c:647
+#, c-format
+msgid "Align: 4096 "
+msgstr ""
+
+#: od-pe.c:649
+#, c-format
+msgid "Align: 2048 "
+msgstr ""
+
+#: od-pe.c:651
+#, c-format
+msgid "Align: 1024 "
+msgstr ""
+
+#: od-pe.c:653
+#, c-format
+msgid "Align: 512 "
+msgstr ""
+
+#: od-pe.c:655
+#, c-format
+msgid "Align: 256 "
+msgstr ""
+
+#: od-pe.c:657
+#, c-format
+msgid "Align: 128 "
+msgstr ""
+
+#: od-pe.c:659
+#, c-format
+msgid "Align: 64 "
+msgstr ""
+
+#: od-pe.c:661
+#, c-format
+msgid "Align: 32 "
+msgstr ""
+
+#: od-pe.c:663
+#, c-format
+msgid "Align: 16 "
+msgstr ""
+
+#: od-pe.c:665
+#, c-format
+msgid "Align: 8 "
+msgstr ""
+
+#: od-pe.c:667
+#, c-format
+msgid "Align: 4 "
+msgstr ""
+
+#: od-pe.c:669
+#, c-format
+msgid "Align: 2 "
+msgstr ""
+
+#: od-pe.c:671
+#, c-format
+msgid "Align: 1 "
+msgstr ""
+
+#: od-pe.c:673
+#, c-format
+msgid "Align: *unknown* "
+msgstr ""
+
+#: od-pe.c:693
+#, c-format
+msgid ""
+"\n"
+"Section headers (at offset 0x%08x):\n"
+msgstr ""
+
+#: od-pe.c:697
+#, c-format
+msgid " No section headers\n"
+msgstr ""
+
+#: od-pe.c:702
+msgid "cannot seek to section headers start\n"
+msgstr ""
+
+#: od-pe.c:720 od-xcoff.c:535 od-xcoff.c:547 od-xcoff.c:602
+msgid "cannot read section header"
+msgstr ""
+
+#: od-pe.c:737
+#, c-format
+msgid " %08x "
+msgstr ""
+
+#: od-pe.c:739
+#, c-format
+msgid ""
+"\n"
+" Flags: %08x: "
+msgstr ""
+
+#: od-pe.c:779
+msgid "cannot seek to/read file header"
+msgstr ""
+
+#: od-pe.c:799
+#, c-format
+msgid "cannot seek to/read image header at offset %#x"
+msgstr ""
+
+#: od-pe.c:822
+msgid "cannot seek to/read image header"
+msgstr ""
+
+#: od-xcoff.c:78
+#, c-format
+msgid ""
+"For XCOFF files:\n"
+" header Display the file header\n"
+" aout Display the auxiliary header\n"
+" sections Display the section headers\n"
+" syms Display the symbols table\n"
+" relocs Display the relocation entries\n"
+" lineno Display the line number entries\n"
+" loader Display loader section\n"
+" except Display exception table\n"
+" typchk Display type-check section\n"
+" traceback Display traceback tags\n"
+" toc Display toc symbols\n"
+" ldinfo Display loader info in core files\n"
+msgstr ""
+
+#: od-xcoff.c:419
+#, c-format
+msgid " nbr sections: %d\n"
+msgstr ""
+
+#: od-xcoff.c:420
+#, c-format
+msgid " time and date: 0x%08x - "
+msgstr ""
+
+#: od-xcoff.c:429
+#, c-format
+msgid " symbols off: 0x%08x\n"
+msgstr ""
+
+#: od-xcoff.c:430
+#, c-format
+msgid " nbr symbols: %d\n"
+msgstr ""
+
+#: od-xcoff.c:431
+#, c-format
+msgid " opt hdr sz: %d\n"
+msgstr ""
+
+#: od-xcoff.c:432
+#, c-format
+msgid " flags: 0x%04x "
+msgstr ""
+
+#: od-xcoff.c:446
+#, c-format
+msgid "Auxiliary header:\n"
+msgstr ""
+
+#: od-xcoff.c:449
+#, c-format
+msgid " No aux header\n"
+msgstr ""
+
+#: od-xcoff.c:454
+#, c-format
+msgid "warning: optional header size too large (> %d)\n"
+msgstr ""
+
+#: od-xcoff.c:460
+msgid "cannot read auxhdr"
+msgstr ""
+
+#: od-xcoff.c:525
+#, c-format
+msgid "Section headers (at %u+%u=0x%08x to 0x%08x):\n"
+msgstr ""
+
+#: od-xcoff.c:530
+#, c-format
+msgid " No section header\n"
+msgstr ""
+
+#: od-xcoff.c:561
+#, c-format
+msgid " Flags: %08x "
+msgstr ""
+
+#: od-xcoff.c:569
+#, c-format
+msgid "overflow - nreloc: %u, nlnno: %u\n"
+msgstr ""
+
+#: od-xcoff.c:590 od-xcoff.c:925 od-xcoff.c:981
+msgid "cannot read section headers"
+msgstr ""
+
+#: od-xcoff.c:649
+msgid "cannot read strings table length"
+msgstr ""
+
+#: od-xcoff.c:665
+msgid "cannot read strings table"
+msgstr ""
+
+#: od-xcoff.c:673
+msgid "cannot read symbol table"
+msgstr ""
+
+#: od-xcoff.c:688
+msgid "cannot read symbol entry"
+msgstr ""
+
+#: od-xcoff.c:723
+msgid "cannot read symbol aux entry"
+msgstr ""
+
+#: od-xcoff.c:745
+#, c-format
+msgid "Symbols table (strtable at 0x%08x)"
+msgstr ""
+
+#: od-xcoff.c:750
+#, c-format
+msgid ""
+":\n"
+" No symbols\n"
+msgstr ""
+
+#: od-xcoff.c:756
+#, c-format
+msgid " (no strings):\n"
+msgstr ""
+
+#: od-xcoff.c:758
+#, c-format
+msgid " (strings size: %08x):\n"
+msgstr ""
+
+#. Translators: 'sc' is for storage class, 'off' for offset.
+#: od-xcoff.c:772
+#, c-format
+msgid " # sc value section type aux name/off\n"
+msgstr ""
+
+#. Section length, number of relocs and line number.
+#: od-xcoff.c:824
+#, c-format
+msgid " scnlen: %08x nreloc: %-6u nlinno: %-6u\n"
+msgstr ""
+
+#. Section length and number of relocs.
+#: od-xcoff.c:831
+#, c-format
+msgid " scnlen: %08x nreloc: %-6u\n"
+msgstr ""
+
+#: od-xcoff.c:894
+#, c-format
+msgid "offset: %08x"
+msgstr ""
+
+#: od-xcoff.c:937
+#, c-format
+msgid "Relocations for %s (%u)\n"
+msgstr ""
+
+#: od-xcoff.c:940
+msgid "cannot read relocations"
+msgstr ""
+
+#: od-xcoff.c:953
+msgid "cannot read relocation entry"
+msgstr ""
+
+#: od-xcoff.c:993
+#, c-format
+msgid "Line numbers for %s (%u)\n"
+msgstr ""
+
+#: od-xcoff.c:996
+msgid "cannot read line numbers"
+msgstr ""
+
+#. Line number, symbol index and physical address.
+#: od-xcoff.c:1000
+#, c-format
+msgid "lineno symndx/paddr\n"
+msgstr ""
+
+#: od-xcoff.c:1008
+msgid "cannot read line number entry"
+msgstr ""
+
+#: od-xcoff.c:1051
+#, c-format
+msgid "no .loader section in file\n"
+msgstr ""
+
+#: od-xcoff.c:1057
+#, c-format
+msgid "section .loader is too short\n"
+msgstr ""
+
+#: od-xcoff.c:1064
+#, c-format
+msgid "Loader header:\n"
+msgstr ""
+
+#: od-xcoff.c:1066
+#, c-format
+msgid " version: %u\n"
+msgstr ""
+
+#: od-xcoff.c:1069
+#, c-format
+msgid " Unhandled version\n"
+msgstr ""
+
+#: od-xcoff.c:1074
+#, c-format
+msgid " nbr symbols: %u\n"
+msgstr ""
+
+#: od-xcoff.c:1076
+#, c-format
+msgid " nbr relocs: %u\n"
+msgstr ""
+
+#. Import string table length.
+#: od-xcoff.c:1078
+#, c-format
+msgid " import strtab len: %u\n"
+msgstr ""
+
+#: od-xcoff.c:1081
+#, c-format
+msgid " nbr import files: %u\n"
+msgstr ""
+
+#: od-xcoff.c:1083
+#, c-format
+msgid " import file off: %u\n"
+msgstr ""
+
+#: od-xcoff.c:1085
+#, c-format
+msgid " string table len: %u\n"
+msgstr ""
+
+#: od-xcoff.c:1087
+#, c-format
+msgid " string table off: %u\n"
+msgstr ""
+
+#: od-xcoff.c:1090
+#, c-format
+msgid "Dynamic symbols:\n"
+msgstr ""
+
+#: od-xcoff.c:1097
+#, c-format
+msgid " %4u %08x %3u "
+msgstr ""
+
+#: od-xcoff.c:1110
+#, c-format
+msgid " %3u %3u "
+msgstr ""
+
+#: od-xcoff.c:1119
+#, c-format
+msgid "(bad offset: %u)"
+msgstr ""
+
+#: od-xcoff.c:1126
+#, c-format
+msgid "Dynamic relocs:\n"
+msgstr ""
+
+#: od-xcoff.c:1166
+#, c-format
+msgid "Import files:\n"
+msgstr ""
+
+#: od-xcoff.c:1198
+#, c-format
+msgid "no .except section in file\n"
+msgstr ""
+
+#: od-xcoff.c:1206
+#, c-format
+msgid "Exception table:\n"
+msgstr ""
+
+#: od-xcoff.c:1241
+#, c-format
+msgid "no .typchk section in file\n"
+msgstr ""
+
+#: od-xcoff.c:1248
+#, c-format
+msgid "Type-check section:\n"
+msgstr ""
+
+#: od-xcoff.c:1295
+#, c-format
+msgid " address beyond section size\n"
+msgstr ""
+
+#: od-xcoff.c:1305
+#, c-format
+msgid " tags at %08x\n"
+msgstr ""
+
+#: od-xcoff.c:1383
+#, c-format
+msgid " number of CTL anchors: %u\n"
+msgstr ""
+
+#: od-xcoff.c:1402
+#, c-format
+msgid " Name (len: %u): "
+msgstr ""
+
+#: od-xcoff.c:1405
+#, c-format
+msgid "[truncated]\n"
+msgstr ""
+
+#: od-xcoff.c:1424
+#, c-format
+msgid " (end of tags at %08x)\n"
+msgstr ""
+
+#: od-xcoff.c:1427
+#, c-format
+msgid " no tags found\n"
+msgstr ""
+
+#: od-xcoff.c:1431
+#, c-format
+msgid " Truncated .text section\n"
+msgstr ""
+
+#: od-xcoff.c:1516
+#, c-format
+msgid "TOC:\n"
+msgstr ""
+
+#: od-xcoff.c:1559
+#, c-format
+msgid "Nbr entries: %-8u Size: %08x (%u)\n"
+msgstr ""
+
+#: od-xcoff.c:1643
+msgid "cannot read header"
+msgstr "თáƒáƒ•სáƒáƒ áƒ—ის წáƒáƒ™áƒ˜áƒ—ხვის შეცდáƒáƒ›áƒ"
+
+#: od-xcoff.c:1651
+#, c-format
+msgid "File header:\n"
+msgstr ""
+
+#: od-xcoff.c:1652
+#, c-format
+msgid " magic: 0x%04x (0%04o) "
+msgstr ""
+
+#: od-xcoff.c:1656
+#, c-format
+msgid "(WRMAGIC: writable text segments)"
+msgstr ""
+
+#: od-xcoff.c:1659
+#, c-format
+msgid "(ROMAGIC: readonly sharablee text segments)"
+msgstr ""
+
+#: od-xcoff.c:1662
+#, c-format
+msgid "(TOCMAGIC: readonly text segments and TOC)"
+msgstr ""
+
+#: od-xcoff.c:1665
+#, c-format
+msgid "unknown magic"
+msgstr ""
+
+#: od-xcoff.c:1673 od-xcoff.c:1815
+#, c-format
+msgid " Unhandled magic\n"
+msgstr ""
+
+#: od-xcoff.c:1739
+msgid "cannot read loader info table"
+msgstr ""
+
+#: od-xcoff.c:1771
+#, c-format
+msgid ""
+"\n"
+"ldinfo dump not supported in 32 bits environments\n"
+msgstr ""
+
+#: od-xcoff.c:1789
+msgid "cannot core read header"
+msgstr ""
+
+#: od-xcoff.c:1796
+#, c-format
+msgid "Core header:\n"
+msgstr ""
+
+#: od-xcoff.c:1797
+#, c-format
+msgid " version: 0x%08x "
+msgstr ""
+
+#: od-xcoff.c:1801
+#, c-format
+msgid "(dumpx format - aix4.3 / 32 bits)"
+msgstr ""
+
+#: od-xcoff.c:1804
+#, c-format
+msgid "(dumpxx format - aix5.0 / 64 bits)"
+msgstr ""
+
+#: od-xcoff.c:1807
+#, c-format
+msgid "unknown format"
+msgstr ""
+
+#: rclex.c:196
+msgid "invalid value specified for pragma code_page.\n"
+msgstr ""
+
+#: rdcoff.c:172
+#, c-format
+msgid "parse_coff_type: Bad type code 0x%x"
+msgstr ""
+
+#: rdcoff.c:353 rdcoff.c:467 rdcoff.c:661
+#, c-format
+msgid "bfd_coff_get_syment failed: %s"
+msgstr ""
+
+#: rdcoff.c:370 rdcoff.c:681
+#, c-format
+msgid "bfd_coff_get_auxent failed: %s"
+msgstr ""
+
+#: rdcoff.c:748
+#, c-format
+msgid "%ld: .bf without preceding function"
+msgstr ""
+
+#: rdcoff.c:798
+#, c-format
+msgid "%ld: unexpected .ef\n"
+msgstr ""
+
+#: rddbg.c:84
+#, c-format
+msgid "%s: no recognized debugging information"
+msgstr ""
+
+#: rddbg.c:200
+#, c-format
+msgid "%s: %s: stab entry %ld is corrupt, strx = 0x%x, type = %d\n"
+msgstr ""
+
+#: rddbg.c:224
+#, c-format
+msgid "%s: %s: stab entry %ld is corrupt\n"
+msgstr ""
+
+#: rddbg.c:388
+#, c-format
+msgid "Last stabs entries before error:\n"
+msgstr ""
+
+#: readelf.c:509
+#, c-format
+msgid "Size overflow prevents reading %<PRIu64> elements of size %<PRIu64> for %s\n"
+msgstr ""
+
+#: readelf.c:522
+#, c-format
+msgid "Reading %<PRIu64> bytes extends past end of file for %s\n"
+msgstr ""
+
+#: readelf.c:531
+#, c-format
+msgid "Unable to seek to %#<PRIx64> for %s\n"
+msgstr ""
+
+#: readelf.c:545
+#, c-format
+msgid "Out of memory allocating %<PRIu64> bytes for %s\n"
+msgstr ""
+
+#: readelf.c:556
+#, c-format
+msgid "Unable to read in %<PRIu64> bytes of %s\n"
+msgstr ""
+
+#: readelf.c:974
+msgid "<internal error>"
+msgstr ""
+
+#: readelf.c:976
+msgid "<none>"
+msgstr "<áƒáƒ áƒªáƒ”რთი>"
+
+#: readelf.c:978
+msgid "<no-strings>"
+msgstr ""
+
+#: readelf.c:1073
+#, c-format
+msgid "BAD[0x%lx]"
+msgstr ""
+
+#: readelf.c:1315
+msgid "Don't know about relocations on this machine architecture\n"
+msgstr ""
+
+#: readelf.c:1342 readelf.c:1442
+msgid "32-bit relocation data"
+msgstr ""
+
+#: readelf.c:1354 readelf.c:1384 readelf.c:1453 readelf.c:1482
+msgid "out of memory parsing relocs\n"
+msgstr ""
+
+#: readelf.c:1372 readelf.c:1471
+msgid "64-bit relocation data"
+msgstr ""
+
+#: readelf.c:1801 readelf.c:1868
+msgid "RELR relocation data"
+msgstr ""
+
+#: readelf.c:1864
+msgid "Unexpected entsize for RELR section\n"
+msgstr ""
+
+#: readelf.c:1889
+#, c-format
+msgid "Index: Entry Address Symbolic Address\n"
+msgstr ""
+
+#: readelf.c:1891
+#, c-format
+msgid "Index: Entry Address Symbolic Address\n"
+msgstr ""
+
+#. We assume that there will never be more than 9999 entries.
+#: readelf.c:1903
+#, c-format
+msgid "%04u: "
+msgstr ""
+
+#: readelf.c:1925
+msgid "Unusual RELR bitmap - no previous entry to set the base address\n"
+msgstr ""
+
+#: readelf.c:1939
+#, c-format
+msgid ""
+"\n"
+"%*s "
+msgstr ""
+
+#: readelf.c:1995
+#, c-format
+msgid " Offset Info Type Sym. Value Symbol's Name + Addend\n"
+msgstr ""
+
+#: readelf.c:1997
+#, c-format
+msgid " Offset Info Type Sym.Value Sym. Name + Addend\n"
+msgstr ""
+
+#: readelf.c:2002
+#, c-format
+msgid " Offset Info Type Sym. Value Symbol's Name\n"
+msgstr ""
+
+#: readelf.c:2004
+#, c-format
+msgid " Offset Info Type Sym.Value Sym. Name\n"
+msgstr ""
+
+#: readelf.c:2012
+#, c-format
+msgid " Offset Info Type Symbol's Value Symbol's Name + Addend\n"
+msgstr ""
+
+#: readelf.c:2014
+#, c-format
+msgid " Offset Info Type Sym. Value Sym. Name + Addend\n"
+msgstr ""
+
+#: readelf.c:2019
+#, c-format
+msgid " Offset Info Type Symbol's Value Symbol's Name\n"
+msgstr ""
+
+#: readelf.c:2021
+#, c-format
+msgid " Offset Info Type Sym. Value Sym. Name\n"
+msgstr ""
+
+#: readelf.c:2401 readelf.c:2560 readelf.c:2568
+#, c-format
+msgid "unrecognized: %-7lx"
+msgstr ""
+
+#: readelf.c:2427
+#, c-format
+msgid "<unknown addend: %<PRIx64>>"
+msgstr ""
+
+#: readelf.c:2436
+#, c-format
+msgid " bad symbol index: %08lx in reloc\n"
+msgstr ""
+
+#: readelf.c:2506
+#, c-format
+msgid "<string table index: %3ld>"
+msgstr ""
+
+#: readelf.c:2509
+#, c-format
+msgid "<corrupt string table index: %3ld>\n"
+msgstr ""
+
+#: readelf.c:3051
+#, c-format
+msgid "Processor Specific: %lx"
+msgstr ""
+
+#: readelf.c:3078
+#, c-format
+msgid "Operating System specific: %lx"
+msgstr ""
+
+#: readelf.c:3082 readelf.c:5583
+#, c-format
+msgid "<unknown>: %lx"
+msgstr ""
+
+#: readelf.c:3182
+msgid "NONE (None)"
+msgstr "NONE (áƒáƒ áƒáƒ¤áƒ”რი)"
+
+#: readelf.c:3183
+msgid "REL (Relocatable file)"
+msgstr "REL (გáƒáƒ“áƒáƒáƒ“გილებáƒáƒ“ი ფáƒáƒ˜áƒšáƒ˜)"
+
+#: readelf.c:3184
+msgid "EXEC (Executable file)"
+msgstr "EXEC (შესრულებáƒáƒ“ი ფáƒáƒ˜áƒšáƒ˜)"
+
+#: readelf.c:3187
+msgid "DYN (Position-Independent Executable file)"
+msgstr ""
+
+#: readelf.c:3189
+msgid "DYN (Shared object file)"
+msgstr "DYN (გáƒáƒ–იáƒáƒ áƒ”ბული áƒáƒ‘იეტქის ფáƒáƒ˜áƒšáƒ˜)"
+
+#: readelf.c:3190
+msgid "CORE (Core file)"
+msgstr "CORE (ბირთვის ფáƒáƒ˜áƒšáƒ˜)"
+
+#: readelf.c:3194
+#, c-format
+msgid "Processor Specific: (%x)"
+msgstr ""
+
+#: readelf.c:3196
+#, c-format
+msgid "OS Specific: (%x)"
+msgstr ""
+
+#: readelf.c:3198
+#, c-format
+msgid "<unknown>: %x"
+msgstr ""
+
+#. Please keep this switch table sorted by increasing EM_ value.
+#. 0
+#: readelf.c:3212 readelf.c:19545 readelf.c:19556
+msgid "None"
+msgstr "áƒáƒ áƒªáƒ”რთი"
+
+#: readelf.c:3460
+#, c-format
+msgid "<unknown>: 0x%x"
+msgstr ""
+
+#: readelf.c:3743
+msgid ", <unknown>"
+msgstr ""
+
+#: readelf.c:3910
+#, c-format
+msgid "Unrecognised IA64 VMS Command Code: %x\n"
+msgstr ""
+
+#: readelf.c:3947
+msgid "unknown mac"
+msgstr ""
+
+#: readelf.c:4031
+msgid ", <unknown MeP cpu type>"
+msgstr ""
+
+#: readelf.c:4052
+msgid "<unknown MeP copro type>"
+msgstr ""
+
+#: readelf.c:4064 readelf.c:5013
+#, c-format
+msgid ", unknown flags bits: %#x"
+msgstr ""
+
+#: readelf.c:4173
+msgid ", unknown CPU"
+msgstr ""
+
+#: readelf.c:4198
+msgid ", unknown ABI"
+msgstr ""
+
+#: readelf.c:4247 readelf.c:4694
+msgid ", unknown ISA"
+msgstr ""
+
+#: readelf.c:4256
+msgid ": architecture variant: "
+msgstr ""
+
+#: readelf.c:4305
+msgid ": unknown"
+msgstr ""
+
+#: readelf.c:4310
+msgid ": unknown extra flag bits also present"
+msgstr ""
+
+#: readelf.c:4833
+msgid ", unknown v850 architecture variant"
+msgstr ""
+
+#: readelf.c:4866
+msgid ", unknown"
+msgstr ""
+
+#: readelf.c:4932
+#, c-format
+msgid ", <unknown AMDGPU GPU type: %#x>"
+msgstr ""
+
+#: readelf.c:4980
+#, c-format
+msgid ", <unknown xnack value: %#x>"
+msgstr ""
+
+#: readelf.c:5005
+#, c-format
+msgid ", <unknown sramecc value: %#x>"
+msgstr ""
+
+#: readelf.c:5078
+msgid ", relocatable"
+msgstr ""
+
+#: readelf.c:5081
+msgid ", relocatable-lib"
+msgstr ""
+
+#: readelf.c:5282
+msgid "Standalone App"
+msgstr ""
+
+#: readelf.c:5291
+msgid "Bare-metal C6000"
+msgstr ""
+
+#: readelf.c:5301 readelf.c:6744 readelf.c:6760 readelf.c:20985 readelf.c:21085
+#: readelf.c:21132 readelf.c:21169 readelf.c:21230 readelf.c:21261
+#: readelf.c:21288 readelf.c:21310
+#, c-format
+msgid "<unknown: %x>"
+msgstr "<უცნáƒáƒ‘ი: %x>"
+
+#. This message is probably going to be displayed in a 15
+#. character wide field, so put the hex value first.
+#: readelf.c:6079
+#, c-format
+msgid "%08x: <unknown>"
+msgstr ""
+
+#: readelf.c:6171
+#, c-format
+msgid "Usage: readelf <option(s)> elf-file(s)\n"
+msgstr ""
+
+#: readelf.c:6172
+#, c-format
+msgid " Display information about the contents of ELF format files\n"
+msgstr ""
+
+#: readelf.c:6173
+#, c-format
+msgid " Options are:\n"
+msgstr ""
+
+#: readelf.c:6174
+#, c-format
+msgid " -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
+msgstr ""
+
+#: readelf.c:6176
+#, c-format
+msgid " -h --file-header Display the ELF file header\n"
+msgstr ""
+
+#: readelf.c:6178
+#, c-format
+msgid " -l --program-headers Display the program headers\n"
+msgstr ""
+
+#: readelf.c:6180
+#, c-format
+msgid " --segments An alias for --program-headers\n"
+msgstr ""
+
+#: readelf.c:6182
+#, c-format
+msgid " -S --section-headers Display the sections' header\n"
+msgstr ""
+
+#: readelf.c:6184
+#, c-format
+msgid " --sections An alias for --section-headers\n"
+msgstr ""
+
+#: readelf.c:6186
+#, c-format
+msgid " -g --section-groups Display the section groups\n"
+msgstr ""
+
+#: readelf.c:6188
+#, c-format
+msgid " -t --section-details Display the section details\n"
+msgstr ""
+
+#: readelf.c:6190
+#, c-format
+msgid " -e --headers Equivalent to: -h -l -S\n"
+msgstr ""
+
+#: readelf.c:6192
+#, c-format
+msgid " -s --syms Display the symbol table\n"
+msgstr ""
+
+#: readelf.c:6194
+#, c-format
+msgid " --symbols An alias for --syms\n"
+msgstr ""
+
+#: readelf.c:6196
+#, c-format
+msgid " --dyn-syms Display the dynamic symbol table\n"
+msgstr ""
+
+#: readelf.c:6198
+#, c-format
+msgid " --lto-syms Display LTO symbol tables\n"
+msgstr ""
+
+#: readelf.c:6200
+#, c-format
+msgid ""
+" --sym-base=[0|8|10|16] \n"
+" Force base for symbol sizes. The options are \n"
+" mixed (the default), octal, decimal, hexadecimal.\n"
+msgstr ""
+
+#: readelf.c:6204
+#, c-format
+msgid " -C --demangle[=STYLE] Decode mangled/processed symbol names\n"
+msgstr ""
+
+#: readelf.c:6208
+#, c-format
+msgid " --no-demangle Do not demangle low-level symbol names. (default)\n"
+msgstr ""
+
+#: readelf.c:6210
+#, c-format
+msgid " --recurse-limit Enable a demangling recursion limit. (default)\n"
+msgstr ""
+
+#: readelf.c:6212
+#, c-format
+msgid " --no-recurse-limit Disable a demangling recursion limit\n"
+msgstr ""
+
+#: readelf.c:6214
+#, c-format
+msgid ""
+" -U[dlexhi] --unicode=[default|locale|escape|hex|highlight|invalid]\n"
+" Display unicode characters as determined by the current locale\n"
+" (default), escape sequences, \"<hex sequences>\", highlighted\n"
+" escape sequences, or treat them as invalid and display as\n"
+" \"{hex sequences}\"\n"
+msgstr ""
+
+#: readelf.c:6220
+#, c-format
+msgid " -X --extra-sym-info Display extra information when showing symbols\n"
+msgstr ""
+
+#: readelf.c:6222
+#, c-format
+msgid " --no-extra-sym-info Do not display extra information when showing symbols (default)\n"
+msgstr ""
+
+#: readelf.c:6224
+#, c-format
+msgid " -n --notes Display the contents of note sections (if present)\n"
+msgstr ""
+
+#: readelf.c:6226
+#, c-format
+msgid " -r --relocs Display the relocations (if present)\n"
+msgstr ""
+
+#: readelf.c:6228
+#, c-format
+msgid " -u --unwind Display the unwind info (if present)\n"
+msgstr ""
+
+#: readelf.c:6230
+#, c-format
+msgid " -d --dynamic Display the dynamic section (if present)\n"
+msgstr ""
+
+#: readelf.c:6232
+#, c-format
+msgid " -V --version-info Display the version sections (if present)\n"
+msgstr ""
+
+#: readelf.c:6234
+#, c-format
+msgid " -A --arch-specific Display architecture specific information (if any)\n"
+msgstr ""
+
+#: readelf.c:6236
+#, c-format
+msgid " -c --archive-index Display the symbol/file index in an archive\n"
+msgstr ""
+
+#: readelf.c:6238
+#, c-format
+msgid " -D --use-dynamic Use the dynamic section info when displaying symbols\n"
+msgstr ""
+
+#: readelf.c:6240
+#, c-format
+msgid ""
+" -L --lint|--enable-checks\n"
+" Display warning messages for possible problems\n"
+msgstr ""
+
+#: readelf.c:6243
+#, c-format
+msgid ""
+" -x --hex-dump=<number|name>\n"
+" Dump the contents of section <number|name> as bytes\n"
+msgstr ""
+
+#: readelf.c:6246
+#, c-format
+msgid ""
+" -p --string-dump=<number|name>\n"
+" Dump the contents of section <number|name> as strings\n"
+msgstr ""
+
+#: readelf.c:6249
+#, c-format
+msgid ""
+" -R --relocated-dump=<number|name>\n"
+" Dump the relocated contents of section <number|name>\n"
+msgstr ""
+
+#: readelf.c:6252
+#, c-format
+msgid " -z --decompress Decompress section before dumping it\n"
+msgstr ""
+
+#: readelf.c:6254
+#, c-format
+msgid ""
+"\n"
+" -j --display-section=<name|number>\n"
+"\t\t Display the contents of the indicated section. Can be repeated\n"
+msgstr ""
+
+#: readelf.c:6257
+#, c-format
+msgid ""
+" -w --debug-dump[a/=abbrev, A/=addr, r/=aranges, c/=cu_index, L/=decodedline,\n"
+" f/=frames, F/=frames-interp, g/=gdb_index, i/=info, o/=loc,\n"
+" m/=macro, p/=pubnames, t/=pubtypes, R/=Ranges, l/=rawline,\n"
+" s/=str, O/=str-offsets, u/=trace_abbrev, T/=trace_aranges,\n"
+" U/=trace_info]\n"
+" Display the contents of DWARF debug sections\n"
+msgstr ""
+
+#: readelf.c:6264
+#, c-format
+msgid ""
+" -wk --debug-dump=links Display the contents of sections that link to separate\n"
+" debuginfo files\n"
+msgstr ""
+
+#: readelf.c:6267
+#, c-format
+msgid ""
+" -P --process-links Display the contents of non-debug sections in separate\n"
+" debuginfo files. (Implies -wK)\n"
+msgstr ""
+
+#: readelf.c:6271
+#, c-format
+msgid ""
+" -wK --debug-dump=follow-links\n"
+" Follow links to separate debug info files (default)\n"
+msgstr ""
+
+#: readelf.c:6274
+#, c-format
+msgid ""
+" -wN --debug-dump=no-follow-links\n"
+" Do not follow links to separate debug info files\n"
+msgstr ""
+
+#: readelf.c:6278
+#, c-format
+msgid ""
+" -wK --debug-dump=follow-links\n"
+" Follow links to separate debug info files\n"
+msgstr ""
+
+#: readelf.c:6281
+#, c-format
+msgid ""
+" -wN --debug-dump=no-follow-links\n"
+" Do not follow links to separate debug info files\n"
+" (default)\n"
+msgstr ""
+
+#: readelf.c:6287
+#, c-format
+msgid ""
+" -wD --debug-dump=use-debuginfod\n"
+" When following links, also query debuginfod servers (default)\n"
+msgstr ""
+
+#: readelf.c:6290
+#, c-format
+msgid ""
+" -wE --debug-dump=do-not-use-debuginfod\n"
+" When following links, do not query debuginfod servers\n"
+msgstr ""
+
+#: readelf.c:6294
+#, c-format
+msgid " --dwarf-depth=N Do not display DIEs at depth N or greater\n"
+msgstr ""
+
+#: readelf.c:6296
+#, c-format
+msgid " --dwarf-start=N Display DIEs starting at offset N\n"
+msgstr ""
+
+#: readelf.c:6299
+#, c-format
+msgid " --ctf=<number|name> Display CTF info from section <number|name>\n"
+msgstr ""
+
+#: readelf.c:6301
+#, c-format
+msgid " --ctf-parent=<name> Use CTF archive member <name> as the CTF parent\n"
+msgstr ""
+
+#: readelf.c:6303
+#, c-format
+msgid ""
+" --ctf-symbols=<number|name>\n"
+" Use section <number|name> as the CTF external symtab\n"
+msgstr ""
+
+#: readelf.c:6306
+#, c-format
+msgid ""
+" --ctf-strings=<number|name>\n"
+" Use section <number|name> as the CTF external strtab\n"
+msgstr ""
+
+#: readelf.c:6310
+#, c-format
+msgid " --sframe[=NAME] Display SFrame info from section NAME, (default '.sframe')\n"
+msgstr ""
+
+#: readelf.c:6314
+#, c-format
+msgid ""
+" -i --instruction-dump=<number|name>\n"
+" Disassemble the contents of section <number|name>\n"
+msgstr ""
+
+#: readelf.c:6318
+#, c-format
+msgid " -I --histogram Display histogram of bucket list lengths\n"
+msgstr ""
+
+#: readelf.c:6320
+#, c-format
+msgid " -W --wide Allow output width to exceed 80 characters\n"
+msgstr ""
+
+#: readelf.c:6322
+#, c-format
+msgid " -T --silent-truncation If a symbol name is truncated, do not add [...] suffix\n"
+msgstr ""
+
+#: readelf.c:6324
+#, c-format
+msgid " @<file> Read options from <file>\n"
+msgstr ""
+
+#: readelf.c:6326
+#, c-format
+msgid " -H --help Display this information\n"
+msgstr ""
+
+#: readelf.c:6328
+#, c-format
+msgid " -v --version Display the version number of readelf\n"
+msgstr ""
+
+#: readelf.c:6354 readelf.c:6385 readelf.c:6389
+msgid "Out of memory allocating dump request table.\n"
+msgstr ""
+
+#: readelf.c:6596
+msgid "Section name must be provided\n"
+msgstr ""
+
+#: readelf.c:6667
+msgid "Missing arg to -U/--unicode"
+msgstr ""
+
+#: readelf.c:6706
+#, c-format
+msgid "Invalid option '-%c'\n"
+msgstr ""
+
+#: readelf.c:6740 readelf.c:6756 readelf.c:13147
+msgid "none"
+msgstr "áƒáƒ áƒªáƒ”რთი"
+
+#: readelf.c:6757
+msgid "2's complement, little endian"
+msgstr ""
+
+#: readelf.c:6758
+msgid "2's complement, big endian"
+msgstr ""
+
+#: readelf.c:6791
+msgid "This is a LLVM bitcode file - try using llvm-bcanalyzer\n"
+msgstr ""
+
+#: readelf.c:6792
+msgid "This is a LLVM bitcode file - try extracting and then using llvm-bcanalyzer\n"
+msgstr ""
+
+#: readelf.c:6795
+msgid "This is a GO binary file - try using 'go tool objdump' or 'go tool nm'\n"
+msgstr ""
+
+#: readelf.c:6819
+msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
+msgstr ""
+
+#: readelf.c:6841
+#, c-format
+msgid "ELF Header in linked file '%s':\n"
+msgstr ""
+
+#: readelf.c:6844
+#, c-format
+msgid "ELF Header:\n"
+msgstr ""
+
+#: readelf.c:6845
+#, c-format
+msgid " Magic: "
+msgstr ""
+
+#: readelf.c:6849
+#, c-format
+msgid " Class: %s\n"
+msgstr ""
+
+#: readelf.c:6851
+#, c-format
+msgid " Data: %s\n"
+msgstr " მáƒáƒœáƒáƒªáƒ”მები: %s\n"
+
+#: readelf.c:6853
+#, c-format
+msgid " Version: %d%s\n"
+msgstr ""
+
+#: readelf.c:6856
+msgid " (current)"
+msgstr ""
+
+#: readelf.c:6858
+msgid " <unknown>"
+msgstr ""
+
+#: readelf.c:6860
+#, c-format
+msgid " OS/ABI: %s\n"
+msgstr " áƒáƒ¡-ი/ABI: %s\n"
+
+#: readelf.c:6862
+#, c-format
+msgid " ABI Version: %d\n"
+msgstr ""
+
+#: readelf.c:6864
+#, c-format
+msgid " Type: %s\n"
+msgstr ""
+
+#: readelf.c:6866
+#, c-format
+msgid " Machine: %s\n"
+msgstr " მáƒáƒœáƒ¥áƒáƒœáƒ: %s\n"
+
+#: readelf.c:6868
+#, c-format
+msgid " Version: 0x%lx\n"
+msgstr ""
+
+#: readelf.c:6871
+#, c-format
+msgid " Entry point address: "
+msgstr ""
+
+#: readelf.c:6873
+#, c-format
+msgid ""
+"\n"
+" Start of program headers: "
+msgstr ""
+
+#: readelf.c:6875
+#, c-format
+msgid ""
+" (bytes into file)\n"
+" Start of section headers: "
+msgstr ""
+
+#: readelf.c:6877
+#, c-format
+msgid " (bytes into file)\n"
+msgstr ""
+
+#: readelf.c:6879
+#, c-format
+msgid " Flags: 0x%lx%s\n"
+msgstr ""
+
+#: readelf.c:6882
+#, c-format
+msgid " Size of this header: %u (bytes)\n"
+msgstr ""
+
+#: readelf.c:6884
+#, c-format
+msgid " Size of program headers: %u (bytes)\n"
+msgstr ""
+
+#: readelf.c:6886
+#, c-format
+msgid " Number of program headers: %u"
+msgstr ""
+
+#: readelf.c:6893
+#, c-format
+msgid " Size of section headers: %u (bytes)\n"
+msgstr ""
+
+#: readelf.c:6895
+#, c-format
+msgid " Number of section headers: %u"
+msgstr ""
+
+#: readelf.c:6903
+#, c-format
+msgid " Section header string table index: %u"
+msgstr ""
+
+#: readelf.c:6915
+#, c-format
+msgid " <corrupt: out of range>"
+msgstr ""
+
+#: readelf.c:6959 readelf.c:7006
+msgid "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"
+msgstr ""
+
+#: readelf.c:6963 readelf.c:7010
+msgid "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"
+msgstr ""
+
+#: readelf.c:6966 readelf.c:7013
+msgid "program headers"
+msgstr "პრáƒáƒ’რáƒáƒ›áƒ˜áƒ¡ თáƒáƒ•სáƒáƒ áƒ—ები"
+
+#: readelf.c:7052
+#, c-format
+msgid "Too many program headers - %#x - the file is not that big\n"
+msgstr ""
+
+#: readelf.c:7061
+#, c-format
+msgid "Out of memory reading %u program headers\n"
+msgstr ""
+
+#: readelf.c:7091
+msgid "possibly corrupt ELF header - it has a non-zero program header offset, but no program headers\n"
+msgstr ""
+
+#: readelf.c:7096
+#, c-format
+msgid ""
+"\n"
+"There are no program headers in linked file '%s'.\n"
+msgstr ""
+
+#: readelf.c:7099
+#, c-format
+msgid ""
+"\n"
+"There are no program headers in this file.\n"
+msgstr ""
+
+#: readelf.c:7111
+#, c-format
+msgid ""
+"\n"
+"Elf file type is %s\n"
+msgstr ""
+
+#: readelf.c:7112
+#, c-format
+msgid "Entry point 0x%<PRIx64>\n"
+msgstr ""
+
+#: readelf.c:7114
+#, c-format
+msgid "There is %d program header, starting at offset %<PRIu64>\n"
+msgid_plural "There are %d program headers, starting at offset %<PRIu64>\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:7129 readelf.c:7131
+#, c-format
+msgid ""
+"\n"
+"Program Headers:\n"
+msgstr ""
+
+#: readelf.c:7135
+#, c-format
+msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
+msgstr ""
+
+#: readelf.c:7138
+#, c-format
+msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
+msgstr ""
+
+#: readelf.c:7142
+#, c-format
+msgid " Type Offset VirtAddr PhysAddr\n"
+msgstr ""
+
+#: readelf.c:7144
+#, c-format
+msgid " FileSiz MemSiz Flags Align\n"
+msgstr ""
+
+#: readelf.c:7242
+msgid "LOAD segments must be sorted in order of increasing VirtAddr\n"
+msgstr ""
+
+#: readelf.c:7245
+msgid "the segment's file size is larger than its memory size\n"
+msgstr ""
+
+#: readelf.c:7252
+msgid "the PHDR segment must occur before any LOAD segment\n"
+msgstr ""
+
+#: readelf.c:7270
+msgid "the PHDR segment is not covered by a LOAD segment\n"
+msgstr ""
+
+#: readelf.c:7276
+msgid "more than one dynamic segment\n"
+msgstr "ერთზე მეტი დინáƒáƒ›áƒ˜áƒ™áƒ£áƒ áƒ˜ სეგმენტი\n"
+
+#: readelf.c:7295
+msgid "no .dynamic section in the dynamic segment\n"
+msgstr ""
+
+#: readelf.c:7314
+msgid "the .dynamic section is not the same as the dynamic segment\n"
+msgstr ""
+
+#: readelf.c:7325
+msgid "the dynamic segment offset + size exceeds the size of the file\n"
+msgstr ""
+
+#: readelf.c:7338
+msgid "Unable to find program interpreter name\n"
+msgstr ""
+
+#: readelf.c:7349
+#, c-format
+msgid " [Requesting program interpreter: %s]\n"
+msgstr ""
+
+#: readelf.c:7360
+#, c-format
+msgid ""
+"\n"
+" Section to Segment mapping:\n"
+msgstr ""
+
+#: readelf.c:7361
+#, c-format
+msgid " Segment Sections...\n"
+msgstr ""
+
+#: readelf.c:7403 readelf.c:12432
+msgid "Cannot interpret virtual addresses without program headers.\n"
+msgstr ""
+
+#: readelf.c:7419
+#, c-format
+msgid "Virtual address %#<PRIx64> not located in any PT_LOAD segment.\n"
+msgstr ""
+
+#: readelf.c:7451 readelf.c:7521
+msgid "The e_shentsize field in the ELF header is less than the size of an ELF section header\n"
+msgstr ""
+
+#: readelf.c:7455 readelf.c:7526
+msgid "The e_shentsize field in the ELF header is larger than the size of an ELF section header\n"
+msgstr ""
+
+#: readelf.c:7459 readelf.c:7531
+msgid "section headers"
+msgstr "სექციის თáƒáƒ•სáƒáƒ áƒ—ები"
+
+#: readelf.c:7468 readelf.c:7540
+#, c-format
+msgid "Out of memory reading %u section headers\n"
+msgstr ""
+
+#: readelf.c:7488 readelf.c:7560
+#, c-format
+msgid "Section %u has an out of range sh_link value of %u\n"
+msgstr ""
+
+#: readelf.c:7490 readelf.c:7562
+#, c-format
+msgid "Section %u has an out of range sh_info value of %u\n"
+msgstr ""
+
+#: readelf.c:7604 readelf.c:7721
+#, c-format
+msgid "Section %s has an invalid sh_entsize of %#<PRIx64>\n"
+msgstr ""
+
+#: readelf.c:7612 readelf.c:7729 readelf.c:14454
+#, c-format
+msgid "Section %s has an invalid sh_size of %#<PRIx64>\n"
+msgstr ""
+
+#: readelf.c:7622 readelf.c:7739
+#, c-format
+msgid "Size (%#<PRIx64>) of section %s is not a multiple of its sh_entsize (%#<PRIx64>)\n"
+msgstr ""
+
+#: readelf.c:7631 readelf.c:7748 readelf.c:17039
+msgid "symbols"
+msgstr "სიმბáƒáƒšáƒáƒ”ბი"
+
+#: readelf.c:7643 readelf.c:7760
+msgid "Multiple symbol table index sections associated with the same symbol section\n"
+msgstr ""
+
+#: readelf.c:7650 readelf.c:7767
+msgid "symbol table section indices"
+msgstr ""
+
+#: readelf.c:7657 readelf.c:7774
+#, c-format
+msgid "Index section %s has an sh_size of %#<PRIx64> - expected %#<PRIx64>\n"
+msgstr ""
+
+#: readelf.c:7669 readelf.c:7786
+#, c-format
+msgid "Out of memory reading %<PRIu64> symbols\n"
+msgstr ""
+
+#: readelf.c:7989 readelf.c:8085 readelf.c:8102 readelf.c:8119
+msgid "Internal error: not enough buffer room for section flag info"
+msgstr ""
+
+#: readelf.c:8127
+#, c-format
+msgid "UNKNOWN (%*.*lx)"
+msgstr ""
+
+#: readelf.c:8146 readelf.c:8161
+msgid "Compressed section is too small even for a compression header\n"
+msgstr ""
+
+#: readelf.c:8183
+msgid "possibly corrupt ELF file header - it has a non-zero section header offset, but no section headers\n"
+msgstr ""
+
+#: readelf.c:8188
+#, c-format
+msgid ""
+"\n"
+"There are no sections in this file.\n"
+msgstr ""
+
+#: readelf.c:8196 readelf.c:23111
+#, c-format
+msgid "In linked file '%s': "
+msgstr ""
+
+#: readelf.c:8199
+#, c-format
+msgid "There is %d section header, starting at offset %#<PRIx64>:\n"
+msgid_plural "There are %d section headers, starting at offset %#<PRIx64>:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:8222 readelf.c:8906 readelf.c:9108 readelf.c:14736 readelf.c:17410
+msgid "string table"
+msgstr ""
+
+#: readelf.c:8284
+#, c-format
+msgid "Section %d has invalid sh_entsize of %<PRIx64>\n"
+msgstr ""
+
+#: readelf.c:8286
+#, c-format
+msgid "(Using the expected size of %<PRIx64> for the rest of this dump)\n"
+msgstr ""
+
+#: readelf.c:8310
+msgid "File contains multiple dynamic symbol tables\n"
+msgstr ""
+
+#: readelf.c:8325
+msgid "File contains multiple dynamic string tables\n"
+msgstr ""
+
+#: readelf.c:8331
+msgid "dynamic strings"
+msgstr ""
+
+#: readelf.c:8359 readelf.c:8365
+#, c-format
+msgid "Section '%s': zero-sized relocation section\n"
+msgstr ""
+
+#: readelf.c:8379
+#, c-format
+msgid "Section '%s': has a size of zero - is this intended ?\n"
+msgstr ""
+
+#: readelf.c:8465
+#, c-format
+msgid ""
+"\n"
+"Section Headers in linked file '%s':\n"
+msgstr ""
+
+#: readelf.c:8468
+#, c-format
+msgid ""
+"\n"
+"Section Headers:\n"
+msgstr ""
+
+#: readelf.c:8470
+#, c-format
+msgid ""
+"\n"
+"Section Header:\n"
+msgstr ""
+
+#: readelf.c:8476 readelf.c:8487 readelf.c:8498
+#, c-format
+msgid " [Nr] Name\n"
+msgstr ""
+
+#: readelf.c:8477
+#, c-format
+msgid " Type Addr Off Size ES Lk Inf Al\n"
+msgstr ""
+
+#: readelf.c:8481
+#, c-format
+msgid " [Nr] Name Type Addr Off Size ES Flg Lk Inf Al\n"
+msgstr ""
+
+#: readelf.c:8488
+#, c-format
+msgid " Type Address Off Size ES Lk Inf Al\n"
+msgstr ""
+
+#: readelf.c:8492
+#, c-format
+msgid " [Nr] Name Type Address Off Size ES Flg Lk Inf Al\n"
+msgstr ""
+
+#: readelf.c:8499
+#, c-format
+msgid " Type Address Offset Link\n"
+msgstr ""
+
+#: readelf.c:8500
+#, c-format
+msgid " Size EntSize Info Align\n"
+msgstr ""
+
+#: readelf.c:8504
+#, c-format
+msgid " [Nr] Name Type Address Offset\n"
+msgstr ""
+
+#: readelf.c:8505
+#, c-format
+msgid " Size EntSize Flags Link Info Align\n"
+msgstr ""
+
+#: readelf.c:8510
+#, c-format
+msgid " Flags\n"
+msgstr ""
+
+#: readelf.c:8540
+#, c-format
+msgid "[%2u]: Link field (%u) should index a symtab section.\n"
+msgstr ""
+
+#: readelf.c:8553
+#, c-format
+msgid "[%2u]: Link field (%u) should index a string section.\n"
+msgstr ""
+
+#: readelf.c:8561 readelf.c:8572
+#, c-format
+msgid "[%2u]: Unexpected value (%u) in link field.\n"
+msgstr ""
+
+#: readelf.c:8599
+#, c-format
+msgid "[%2u]: Info field (%u) should index a relocatable section.\n"
+msgstr ""
+
+#: readelf.c:8610 readelf.c:8637
+#, c-format
+msgid "[%2u]: Unexpected value (%u) in info field.\n"
+msgstr ""
+
+#: readelf.c:8632
+#, c-format
+msgid "[%2u]: Expected link to another section in info field"
+msgstr ""
+
+#: readelf.c:8647
+#, c-format
+msgid "Size of section %u is larger than the entire file!\n"
+msgstr ""
+
+#: readelf.c:8716
+#, c-format
+msgid "section %u: sh_link value of %u is larger than the number of sections\n"
+msgstr ""
+
+#: readelf.c:8817
+msgid "compression header"
+msgstr ""
+
+#: readelf.c:8822
+#, c-format
+msgid " [<corrupt>]\n"
+msgstr ""
+
+#: readelf.c:8830
+#, c-format
+msgid " [<unknown>: 0x%x], "
+msgstr ""
+
+#. The ordering of the letters shown here matches the ordering of the
+#. corresponding SHF_xxx values, and hence the order in which these
+#. letters will be displayed to the user.
+#: readelf.c:8845
+#, c-format
+msgid ""
+"Key to Flags:\n"
+" W (write), A (alloc), X (execute), M (merge), S (strings), I (info),\n"
+" L (link order), O (extra OS processing required), G (group), T (TLS),\n"
+" C (compressed), x (unknown), o (OS specific), E (exclude),\n"
+" "
+msgstr ""
+
+#: readelf.c:8853
+#, c-format
+msgid "R (retain), "
+msgstr ""
+
+#: readelf.c:8856
+#, c-format
+msgid "D (mbind), "
+msgstr ""
+
+#: readelf.c:8864
+#, c-format
+msgid "l (large), "
+msgstr ""
+
+#: readelf.c:8866
+#, c-format
+msgid "y (purecode), "
+msgstr ""
+
+#: readelf.c:8868
+#, c-format
+msgid "v (VLE), "
+msgstr ""
+
+#: readelf.c:8896
+msgid "Bad sh_link in symbol table section\n"
+msgstr ""
+
+#: readelf.c:8931
+msgid "<OS specific>"
+msgstr ""
+
+#: readelf.c:8932
+msgid "<PROC specific>"
+msgstr ""
+
+#: readelf.c:8961
+#, c-format
+msgid ""
+"\n"
+"There are no sections group in linked file '%s'.\n"
+msgstr ""
+
+#: readelf.c:8964 readelf.c:9003
+#, c-format
+msgid ""
+"\n"
+"There are no section groups in this file.\n"
+msgstr ""
+
+#: readelf.c:8971
+msgid "Section headers are not available!\n"
+msgstr ""
+
+#: readelf.c:8982
+#, c-format
+msgid "Out of memory reading %u section group headers\n"
+msgstr ""
+
+#: readelf.c:9000
+#, c-format
+msgid ""
+"\n"
+"There are no section groups in linked file '%s'.\n"
+msgstr ""
+
+#: readelf.c:9014
+#, c-format
+msgid "Out of memory reading %zu groups\n"
+msgstr ""
+
+#: readelf.c:9026
+#, c-format
+msgid "Section groups in linked file '%s'\n"
+msgstr ""
+
+#: readelf.c:9048
+#, c-format
+msgid "Bad sh_link in group section `%s'\n"
+msgstr ""
+
+#: readelf.c:9061
+#, c-format
+msgid "Corrupt header in group section `%s'\n"
+msgstr ""
+
+#: readelf.c:9067 readelf.c:9078
+#, c-format
+msgid "Bad sh_info in group section `%s'\n"
+msgstr ""
+
+#: readelf.c:9118
+#, c-format
+msgid "Section %s has sh_entsize (%#<PRIx64>) which is larger than its size (%#<PRIx64>)\n"
+msgstr ""
+
+#: readelf.c:9128
+msgid "section data"
+msgstr ""
+
+#: readelf.c:9139
+#, c-format
+msgid ""
+"\n"
+"%sgroup section [%5u] `%s' [%s] contains %u sections:\n"
+msgstr ""
+
+#: readelf.c:9142
+#, c-format
+msgid " [Index] Name\n"
+msgstr ""
+
+#: readelf.c:9160
+#, c-format
+msgid "section [%5u] in group section [%5u] > maximum section [%5u]\n"
+msgstr ""
+
+#: readelf.c:9163
+msgid "Further error messages about overlarge group section indices suppressed\n"
+msgstr ""
+
+#: readelf.c:9176
+#, c-format
+msgid "section [%5u] in group section [%5u] already in group section [%5u]\n"
+msgstr ""
+
+#: readelf.c:9180
+msgid "Further error messages about already contained group sections suppressed\n"
+msgstr ""
+
+#: readelf.c:9192
+#, c-format
+msgid "section 0 in group section [%5u]\n"
+msgstr ""
+
+#: readelf.c:9259
+msgid "dynamic section image fixups"
+msgstr ""
+
+#: readelf.c:9267
+#, c-format
+msgid "corrupt library name index of %#<PRIx64> found in dynamic entry"
+msgstr ""
+
+#: readelf.c:9272
+#, c-format
+msgid ""
+"\n"
+"Image fixups for needed library #%<PRId64>: %s - ident: %<PRIx64>\n"
+msgstr ""
+
+#: readelf.c:9276
+#, c-format
+msgid "Seg Offset Type SymVec DataType\n"
+msgstr ""
+
+#: readelf.c:9310
+msgid "dynamic section image relocations"
+msgstr ""
+
+#: readelf.c:9314
+#, c-format
+msgid ""
+"\n"
+"Image relocs\n"
+msgstr ""
+
+#: readelf.c:9316
+#, c-format
+msgid "Seg Offset Type Addend Seg Sym Off\n"
+msgstr ""
+
+#: readelf.c:9371
+msgid "dynamic string section"
+msgstr ""
+
+#: readelf.c:9454
+#, c-format
+msgid ""
+"\n"
+"In linked file '%s' relocation section "
+msgstr ""
+
+#: readelf.c:9457
+#, c-format
+msgid ""
+"\n"
+"Relocation section "
+msgstr ""
+
+#: readelf.c:9476
+#, c-format
+msgid " at offset %#<PRIx64>"
+msgstr ""
+
+#: readelf.c:9477
+#, c-format
+msgid " contains %<PRIu64> entry which relocates"
+msgid_plural " contains %<PRIu64> entries which relocate"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:9480
+#, c-format
+msgid " %<PRIu64> location:\n"
+msgid_plural " %<PRIu64> locations:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:9486
+#, c-format
+msgid " at offset %#<PRIx64> contains %<PRIu64> entry:\n"
+msgid_plural " at offset %#<PRIx64> contains %<PRIu64> entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:9585
+#, c-format
+msgid ""
+"\n"
+"In linked file '%s' section '%s' at offset %#<PRIx64> contains %<PRId64> bytes:\n"
+msgstr ""
+
+#: readelf.c:9590
+#, c-format
+msgid ""
+"\n"
+"'%s' relocation section at offset %#<PRIx64> contains %<PRId64> bytes:\n"
+msgstr ""
+
+#: readelf.c:9612
+#, c-format
+msgid ""
+"\n"
+"There are no dynamic relocations in linked file '%s'.\n"
+msgstr ""
+
+#: readelf.c:9615
+#, c-format
+msgid ""
+"\n"
+"There are no dynamic relocations in this file.\n"
+msgstr ""
+
+#: readelf.c:9640
+#, c-format
+msgid ""
+"\n"
+"There are no static relocations in linked file '%s'."
+msgstr ""
+
+#: readelf.c:9643
+#, c-format
+msgid ""
+"\n"
+"There are no static relocations in this file."
+msgstr ""
+
+#: readelf.c:9644
+#, c-format
+msgid ""
+"\n"
+"To see the dynamic relocations add --use-dynamic to the command line.\n"
+msgstr ""
+
+#: readelf.c:9652
+#, c-format
+msgid ""
+"\n"
+"There are no relocations in linked file '%s'.\n"
+msgstr ""
+
+#: readelf.c:9655
+#, c-format
+msgid ""
+"\n"
+"There are no relocations in this file.\n"
+msgstr ""
+
+#: readelf.c:9814
+#, c-format
+msgid "Invalid section %u in table entry %td\n"
+msgstr ""
+
+#: readelf.c:9826
+#, c-format
+msgid "Invalid offset %<PRIx64> in table entry %td\n"
+msgstr ""
+
+#: readelf.c:9844
+#, c-format
+msgid "\tUnknown version.\n"
+msgstr ""
+
+#: readelf.c:9907 readelf.c:10345
+msgid "unwind table"
+msgstr ""
+
+#: readelf.c:9958 readelf.c:10428
+#, c-format
+msgid "Skipping unknown relocation type: %u\n"
+msgstr ""
+
+#: readelf.c:9964 readelf.c:10435
+#, c-format
+msgid "Skipping unexpected relocation type: %s\n"
+msgstr ""
+
+#: readelf.c:9973 readelf.c:10442
+#, c-format
+msgid "Skipping reloc with overlarge offset: %#<PRIx64>\n"
+msgstr ""
+
+#: readelf.c:9981 readelf.c:10450
+#, c-format
+msgid "Skipping reloc with invalid symbol index: %u\n"
+msgstr ""
+
+#: readelf.c:10029 readelf.c:10497 readelf.c:11608
+msgid "Multiple symbol tables encountered\n"
+msgstr ""
+
+#: readelf.c:10044 readelf.c:10513 readelf.c:11623
+#, c-format
+msgid ""
+"\n"
+"There are no unwind sections in this file.\n"
+msgstr ""
+
+#: readelf.c:10130
+#, c-format
+msgid ""
+"\n"
+"Could not find unwind info section for "
+msgstr ""
+
+#: readelf.c:10142
+msgid "unwind info"
+msgstr ""
+
+#: readelf.c:10145
+#, c-format
+msgid ""
+"\n"
+"Unwind section "
+msgstr ""
+
+#: readelf.c:10152
+#, c-format
+msgid " at offset %#<PRIx64> contains %<PRIu64> entries:\n"
+msgstr ""
+
+#: readelf.c:10522 readelf.c:11630
+#, c-format
+msgid ""
+"\n"
+"Unwind section '%s' at offset %#<PRIx64> contains %<PRIu64> entry:\n"
+msgid_plural ""
+"\n"
+"Unwind section '%s' at offset %#<PRIx64> contains %<PRIu64> entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:10655
+msgid "unwind data"
+msgstr ""
+
+#: readelf.c:10727
+#, c-format
+msgid "Skipping unexpected relocation at offset %#<PRIx64>\n"
+msgstr ""
+
+#: readelf.c:10749
+#, c-format
+msgid "Unknown section relocation type %d encountered\n"
+msgstr ""
+
+#: readelf.c:10757
+#, c-format
+msgid "Bad symbol index in unwind relocation (%<PRIu64> > %<PRIu64>)\n"
+msgstr ""
+
+#: readelf.c:10773
+#, c-format
+msgid "Skipping unknown ARM relocation type: %d\n"
+msgstr ""
+
+#: readelf.c:10783
+#, c-format
+msgid "Skipping unexpected ARM relocation type %s\n"
+msgstr ""
+
+#: readelf.c:10792
+#, c-format
+msgid "Skipping unknown C6000 relocation type: %d\n"
+msgstr ""
+
+#: readelf.c:10802
+#, c-format
+msgid "Skipping unexpected C6000 relocation type %s\n"
+msgstr ""
+
+#. This function currently only supports ARM and TI unwinders.
+#: readelf.c:10811
+msgid "Only TI and ARM unwinders are currently supported\n"
+msgstr ""
+
+#: readelf.c:10874
+#, c-format
+msgid "[Truncated opcode]\n"
+msgstr ""
+
+#: readelf.c:10922 readelf.c:11142
+#, c-format
+msgid "Refuse to unwind"
+msgstr ""
+
+#: readelf.c:10945
+#, c-format
+msgid " [Reserved]"
+msgstr ""
+
+#: readelf.c:10973
+#, c-format
+msgid " finish"
+msgstr ""
+
+#: readelf.c:10978 readelf.c:11075
+#, c-format
+msgid "[Spare]"
+msgstr ""
+
+#: readelf.c:11012
+msgid "corrupt change to vsp\n"
+msgstr ""
+
+#: readelf.c:11038
+#, c-format
+msgid " pop {ra_auth_code}"
+msgstr ""
+
+#: readelf.c:11040
+#, c-format
+msgid " vsp as modifier for PAC validation"
+msgstr ""
+
+#: readelf.c:11097 readelf.c:11254
+#, c-format
+msgid " [unsupported opcode]"
+msgstr ""
+
+#: readelf.c:11190
+#, c-format
+msgid "pop frame {"
+msgstr ""
+
+#: readelf.c:11193
+#, c-format
+msgid "*corrupt* - no registers specified"
+msgstr ""
+
+#: readelf.c:11207
+msgid "[pad]"
+msgstr ""
+
+#: readelf.c:11236
+msgid "Corrupt stack pointer adjustment detected\n"
+msgstr ""
+
+#: readelf.c:11243
+#, c-format
+msgid "sp = sp + %<PRId64>"
+msgstr ""
+
+#: readelf.c:11318
+#, c-format
+msgid " Personality routine: "
+msgstr ""
+
+#: readelf.c:11350
+#, c-format
+msgid " [Truncated data]\n"
+msgstr ""
+
+#: readelf.c:11374
+#, c-format
+msgid "Corrupt ARM compact model table entry: %x \n"
+msgstr ""
+
+#: readelf.c:11379
+#, c-format
+msgid " Compact model index: %d\n"
+msgstr ""
+
+#: readelf.c:11405
+msgid "Unknown ARM compact model index encountered\n"
+msgstr ""
+
+#: readelf.c:11406
+#, c-format
+msgid " [reserved]\n"
+msgstr ""
+
+#: readelf.c:11421
+#, c-format
+msgid " Restore stack from frame pointer\n"
+msgstr ""
+
+#: readelf.c:11423
+#, c-format
+msgid " Stack increment %d\n"
+msgstr ""
+
+#: readelf.c:11424
+#, c-format
+msgid " Registers restored: "
+msgstr ""
+
+#: readelf.c:11429
+#, c-format
+msgid " Return register: %s\n"
+msgstr ""
+
+#: readelf.c:11433
+#, c-format
+msgid " [reserved (%d)]\n"
+msgstr ""
+
+#: readelf.c:11437
+#, c-format
+msgid "Unsupported architecture type %d encountered when decoding unwind table\n"
+msgstr ""
+
+#: readelf.c:11492
+#, c-format
+msgid "corrupt index table entry: %x\n"
+msgstr ""
+
+#: readelf.c:11531
+#, c-format
+msgid "Unwind entry contains corrupt offset (%#<PRIx64>) into section %s\n"
+msgstr ""
+
+#: readelf.c:11547
+#, c-format
+msgid "Could not locate .ARM.extab section containing %#<PRIx64>.\n"
+msgstr ""
+
+#: readelf.c:11591
+#, c-format
+msgid "Unsupported architecture type %d encountered when processing unwind table\n"
+msgstr ""
+
+#: readelf.c:11653
+#, c-format
+msgid "No processor specific unwind information to decode\n"
+msgstr ""
+
+#: readelf.c:11683
+#, c-format
+msgid ""
+"\n"
+"The decoding of unwind sections for machine type %s is not currently supported.\n"
+msgstr ""
+
+#: readelf.c:11710
+#, c-format
+msgid "NONE"
+msgstr "áƒáƒ áƒªáƒ”რთი"
+
+#: readelf.c:11735
+#, c-format
+msgid "Interface Version: %s"
+msgstr ""
+
+#: readelf.c:11738
+#, c-format
+msgid "Interface Version: <corrupt: %<PRIx64>>"
+msgstr ""
+
+#: readelf.c:11756
+#, c-format
+msgid "Time Stamp: %s"
+msgstr ""
+
+#: readelf.c:11945 readelf.c:11995
+msgid "dynamic section"
+msgstr ""
+
+#: readelf.c:11965 readelf.c:12016 readelf.c:12124
+#, c-format
+msgid "Out of memory allocating space for %<PRIu64> dynamic entries\n"
+msgstr ""
+
+#: readelf.c:12090
+#, c-format
+msgid "Size overflow prevents reading %<PRIu64> elements of size %u\n"
+msgstr ""
+
+#: readelf.c:12100
+#, c-format
+msgid "Invalid number of dynamic entries: %<PRIu64>\n"
+msgstr ""
+
+#: readelf.c:12108
+#, c-format
+msgid "Out of memory reading %<PRIu64> dynamic entries\n"
+msgstr ""
+
+#: readelf.c:12115
+#, c-format
+msgid "Unable to read in %<PRIu64> bytes of dynamic data\n"
+msgstr ""
+
+#: readelf.c:12165 readelf.c:12219 readelf.c:12243 readelf.c:12276
+#: readelf.c:12302 readelf.c:12321
+msgid "Unable to seek to start of dynamic information\n"
+msgstr ""
+
+#: readelf.c:12171 readelf.c:12225
+msgid "Failed to read in number of buckets\n"
+msgstr ""
+
+#: readelf.c:12177
+msgid "Failed to read in number of chains\n"
+msgstr ""
+
+#: readelf.c:12284
+msgid "Failed to determine last chain length\n"
+msgstr ""
+
+#: readelf.c:12384
+#, c-format
+msgid ""
+"\n"
+"There is no dynamic section in linked file '%s'.\n"
+msgstr ""
+
+#: readelf.c:12387
+#, c-format
+msgid ""
+"\n"
+"There is no dynamic section in this file.\n"
+msgstr ""
+
+#. See PR 21379 for a reproducer.
+#: readelf.c:12447
+msgid "Invalid PT_LOAD entry\n"
+msgstr ""
+
+#: readelf.c:12473
+msgid "the .dynsym section doesn't match the DT_SYMTAB and DT_SYMENT tags\n"
+msgstr ""
+
+#: readelf.c:12483
+msgid "Corrupt DT_SYMTAB dynamic entry\n"
+msgstr ""
+
+#: readelf.c:12519
+msgid "the .dynstr section doesn't match the DT_STRTAB and DT_STRSZ tags\n"
+msgstr ""
+
+#: readelf.c:12524
+msgid "dynamic string table"
+msgstr ""
+
+#: readelf.c:12527
+msgid "Corrupt DT_STRTAB dynamic entry\n"
+msgstr ""
+
+#: readelf.c:12552
+#, c-format
+msgid "Bad value (%d) for SYMINENT entry\n"
+msgstr ""
+
+#: readelf.c:12571
+msgid "symbol information"
+msgstr ""
+
+#: readelf.c:12577
+msgid "Multiple dynamic symbol information sections found\n"
+msgstr ""
+
+#: readelf.c:12583
+#, c-format
+msgid "Out of memory allocating %<PRIu64> bytes for dynamic symbol info\n"
+msgstr ""
+
+#: readelf.c:12607
+#, c-format
+msgid ""
+"\n"
+"In linked file '%s' the dynamic section at offset %#<PRIx64> contains %<PRIu64> entry:\n"
+msgid_plural ""
+"\n"
+"In linked file '%s' the dynamic section at offset %#<PRIx64> contains %<PRIu64> entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:12614
+#, c-format
+msgid ""
+"\n"
+"Dynamic section at offset %#<PRIx64> contains %<PRIu64> entry:\n"
+msgid_plural ""
+"\n"
+"Dynamic section at offset %#<PRIx64> contains %<PRIu64> entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:12621
+#, c-format
+msgid " Tag Type Name/Value\n"
+msgstr ""
+
+#: readelf.c:12655
+#, c-format
+msgid "Auxiliary library"
+msgstr ""
+
+#: readelf.c:12659
+#, c-format
+msgid "Filter library"
+msgstr ""
+
+#: readelf.c:12663
+#, c-format
+msgid "Configuration file"
+msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ ფáƒáƒ˜áƒšáƒ˜"
+
+#: readelf.c:12667
+#, c-format
+msgid "Dependency audit library"
+msgstr ""
+
+#: readelf.c:12671
+#, c-format
+msgid "Audit library"
+msgstr ""
+
+#: readelf.c:12690 readelf.c:12718 readelf.c:12746 readelf.c:13086
+#, c-format
+msgid "Flags:"
+msgstr "áƒáƒšáƒ›áƒ”ბი:"
+
+#: readelf.c:12693 readelf.c:12721 readelf.c:12748 readelf.c:13088
+#, c-format
+msgid " None\n"
+msgstr " áƒáƒ áƒªáƒ”რთი\n"
+
+#: readelf.c:12955
+#, c-format
+msgid "Shared library: [%s]"
+msgstr ""
+
+#: readelf.c:12959
+#, c-format
+msgid " program interpreter"
+msgstr ""
+
+#: readelf.c:12963
+#, c-format
+msgid "Library soname: [%s]"
+msgstr ""
+
+#: readelf.c:12967
+#, c-format
+msgid "Library rpath: [%s]"
+msgstr ""
+
+#: readelf.c:12971
+#, c-format
+msgid "Library runpath: [%s]"
+msgstr ""
+
+#: readelf.c:13008
+#, c-format
+msgid " (bytes)\n"
+msgstr ""
+
+#: readelf.c:13039
+#, c-format
+msgid "Not needed object: [%s]\n"
+msgstr ""
+
+#: readelf.c:13064
+#, c-format
+msgid "<corrupt time val: %<PRIx64>"
+msgstr ""
+
+#: readelf.c:13207
+#, c-format
+msgid ""
+"\n"
+"In linked file '%s' the version definition section '%s' contains %u entry:\n"
+msgid_plural ""
+"\n"
+"In linked file '%s' the version definition section '%s' contains %u entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:13214
+#, c-format
+msgid ""
+"\n"
+"Version definition section '%s' contains %u entry:\n"
+msgid_plural ""
+"\n"
+"Version definition section '%s' contains %u entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:13222 readelf.c:13368 readelf.c:13533
+#, c-format
+msgid " Addr: 0x%016<PRIx64>"
+msgstr ""
+
+#: readelf.c:13223 readelf.c:13369 readelf.c:13534
+#, c-format
+msgid " Offset: 0x%08<PRIx64> Link: %u (%s)\n"
+msgstr ""
+
+#: readelf.c:13229
+msgid "version definition section"
+msgstr ""
+
+#: readelf.c:13258
+#, c-format
+msgid " %#06zx: Rev: %d Flags: %s"
+msgstr ""
+
+#: readelf.c:13261
+#, c-format
+msgid " Index: %d Cnt: %d "
+msgstr ""
+
+#: readelf.c:13278
+#, c-format
+msgid "Name: %s\n"
+msgstr "სáƒáƒ®áƒ”ლი: %s\n"
+
+#: readelf.c:13281
+#, c-format
+msgid "Name index: %ld\n"
+msgstr ""
+
+#: readelf.c:13290
+#, c-format
+msgid "Invalid vda_next field of %lx\n"
+msgstr ""
+
+#: readelf.c:13310
+#, c-format
+msgid " %#06zx: Parent %d: %s\n"
+msgstr ""
+
+#: readelf.c:13314
+#, c-format
+msgid " %#06zx: Parent %d, name index: %ld\n"
+msgstr ""
+
+#: readelf.c:13319
+#, c-format
+msgid " Version def aux past end of section\n"
+msgstr ""
+
+#: readelf.c:13326
+#, c-format
+msgid "Invalid vd_next field of %lx\n"
+msgstr ""
+
+#: readelf.c:13337
+#, c-format
+msgid " Version definition past end of section\n"
+msgstr ""
+
+#: readelf.c:13353
+#, c-format
+msgid ""
+"\n"
+"In linked file '%s' the version needs section '%s' contains %u entry:\n"
+msgid_plural ""
+"\n"
+"In linked file '%s' the version needs section '%s' contains %u entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:13360
+#, c-format
+msgid ""
+"\n"
+"Version needs section '%s' contains %u entry:\n"
+msgid_plural ""
+"\n"
+"Version needs section '%s' contains %u entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:13376
+msgid "Version Needs section"
+msgstr ""
+
+#: readelf.c:13401
+#, c-format
+msgid " %#06zx: Version: %d"
+msgstr ""
+
+#: readelf.c:13404
+#, c-format
+msgid " File: %s"
+msgstr ""
+
+#: readelf.c:13407
+#, c-format
+msgid " File: %lx"
+msgstr ""
+
+#: readelf.c:13409
+#, c-format
+msgid " Cnt: %d\n"
+msgstr ""
+
+#: readelf.c:13432
+#, c-format
+msgid " %#06zx: Name: %s"
+msgstr ""
+
+#: readelf.c:13435
+#, c-format
+msgid " %#06zx: Name index: %lx"
+msgstr ""
+
+#: readelf.c:13438
+#, c-format
+msgid " Flags: %s Version: %d\n"
+msgstr ""
+
+#: readelf.c:13444
+#, c-format
+msgid "Invalid vna_next field of %lx\n"
+msgstr ""
+
+#: readelf.c:13457
+msgid "Missing Version Needs auxiliary information\n"
+msgstr ""
+
+#: readelf.c:13462
+#, c-format
+msgid "Invalid vn_next field of %lx\n"
+msgstr ""
+
+#: readelf.c:13472
+msgid "Missing Version Needs information\n"
+msgstr ""
+
+#: readelf.c:13510
+msgid "version string table"
+msgstr ""
+
+#: readelf.c:13518
+#, c-format
+msgid ""
+"\n"
+"In linked file '%s' the version symbols section '%s' contains %<PRIu64> entry:\n"
+msgid_plural ""
+"\n"
+"In linked file '%s' the version symbols section '%s' contains %<PRIu64> entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:13525
+#, c-format
+msgid ""
+"\n"
+"Version symbols section '%s' contains %<PRIu64> entry:\n"
+msgid_plural ""
+"\n"
+"Version symbols section '%s' contains %<PRIu64> entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:13543
+msgid "version symbol data"
+msgstr ""
+
+#: readelf.c:13563
+msgid "*invalid*"
+msgstr ""
+
+#: readelf.c:13571
+msgid " 0 (*local*) "
+msgstr ""
+
+#: readelf.c:13575
+msgid " 1 (*global*) "
+msgstr ""
+
+#: readelf.c:13586
+msgid "invalid index into symbol array\n"
+msgstr ""
+
+#: readelf.c:13609 readelf.c:14161
+msgid "version need"
+msgstr ""
+
+#: readelf.c:13620
+msgid "version need aux (2)"
+msgstr ""
+
+#: readelf.c:13667 readelf.c:14105
+msgid "version def"
+msgstr ""
+
+#: readelf.c:13695 readelf.c:14136
+msgid "version def aux"
+msgstr ""
+
+#: readelf.c:13703
+msgid "*both*"
+msgstr ""
+
+#: readelf.c:13735
+#, c-format
+msgid ""
+"\n"
+"No version information found in linked file '%s'.\n"
+msgstr ""
+
+#: readelf.c:13738
+#, c-format
+msgid ""
+"\n"
+"No version information found in this file.\n"
+msgstr ""
+
+#: readelf.c:13834
+#, c-format
+msgid "Unrecognized visibility value: %u\n"
+msgstr ""
+
+#: readelf.c:13847
+#, c-format
+msgid "Unrecognized alpha specific other value: %u\n"
+msgstr ""
+
+#: readelf.c:13924
+#, c-format
+msgid "Unrecognized IA64 VMS ST Function type: %d\n"
+msgstr ""
+
+#: readelf.c:13948
+#, c-format
+msgid "Unrecognized IA64 VMS ST Linkage: %d\n"
+msgstr ""
+
+#: readelf.c:13974
+#, c-format
+msgid "<localentry>: %d"
+msgstr ""
+
+#: readelf.c:13988
+msgid " VARIANT_CC"
+msgstr ""
+
+#: readelf.c:14039
+#, c-format
+msgid "<other>: %x"
+msgstr ""
+
+#: readelf.c:14067
+msgid "version data"
+msgstr ""
+
+#: readelf.c:14179
+msgid "version need aux (3)"
+msgstr ""
+
+#: readelf.c:14370
+#, c-format
+msgid "local symbol %<PRIu64> found at index >= %s's sh_info value of %u\n"
+msgstr ""
+
+#: readelf.c:14389
+#, c-format
+msgid "Unknown LTO symbol definition encountered: %u\n"
+msgstr ""
+
+#: readelf.c:14408
+#, c-format
+msgid "Unknown LTO symbol visibility encountered: %u\n"
+msgstr ""
+
+#: readelf.c:14426
+#, c-format
+msgid "Unknown LTO symbol type encountered: %u\n"
+msgstr ""
+
+#: readelf.c:14442
+#, c-format
+msgid ""
+"\n"
+"The LTO Symbol table section '%s' in linked file '%s' is empty!\n"
+msgstr ""
+
+#: readelf.c:14446
+#, c-format
+msgid ""
+"\n"
+"LTO Symbol table '%s' is empty!\n"
+msgstr ""
+
+#: readelf.c:14461
+msgid "LTO symbols"
+msgstr ""
+
+#: readelf.c:14476
+#, c-format
+msgid "LTO Symbol extension table '%s' is empty!\n"
+msgstr ""
+
+#: readelf.c:14482
+msgid "LTO ext symbol data"
+msgstr ""
+
+#: readelf.c:14487
+msgid "Unexpected version number in symbol extension table\n"
+msgstr ""
+
+#: readelf.c:14496
+#, c-format
+msgid ""
+"\n"
+"In linked file '%s': "
+msgstr ""
+
+#: readelf.c:14503
+#, c-format
+msgid "LTO Symbol table '%s' and extension table '%s' contain:\n"
+msgstr ""
+
+#: readelf.c:14508
+#, c-format
+msgid "LTO Symbol table '%s'\n"
+msgstr ""
+
+#: readelf.c:14510
+#, c-format
+msgid " and extension table '%s' contain:\n"
+msgstr ""
+
+#: readelf.c:14515
+#, c-format
+msgid "LTO Symbol table '%s' contains:\n"
+msgstr ""
+
+#: readelf.c:14520
+#, c-format
+msgid " Comdat_Key Kind Visibility Size Slot Type Section Name\n"
+msgstr ""
+
+#: readelf.c:14522
+#, c-format
+msgid " Comdat_Key Kind Visibility Size Slot Name\n"
+msgstr ""
+
+#: readelf.c:14569
+msgid "Ran out of LTO symbol extension data\n"
+msgstr ""
+
+#: readelf.c:14589
+msgid "Data remains in the LTO symbol extension table\n"
+msgstr ""
+
+#: readelf.c:14599
+msgid "Buffer overrun encountered whilst decoding LTO symbol table\n"
+msgstr ""
+
+#: readelf.c:14641
+#, c-format
+msgid " Num: Value Size Type Bind Vis+Other Ndx(SecName) Name [+ Version Info]\n"
+msgstr ""
+
+#: readelf.c:14647 readelf.c:14653
+#, c-format
+msgid " Num: Value Size Type Bind Vis Ndx Name\n"
+msgstr ""
+
+#: readelf.c:14662
+#, c-format
+msgid " Num: Value Size Type Bind Vis+Other Ndx(SecName) Name [+ Version Info]\n"
+msgstr ""
+
+#: readelf.c:14669 readelf.c:14675
+#, c-format
+msgid " Num: Value Size Type Bind Vis Ndx Name\n"
+msgstr ""
+
+#: readelf.c:14688
+#, c-format
+msgid ""
+"\n"
+"Symbol table '%s' has a sh_entsize of zero!\n"
+msgstr ""
+
+#: readelf.c:14696
+#, c-format
+msgid ""
+"\n"
+"In linked file '%s' symbol section '%s' contains %<PRIu64> entry:\n"
+msgid_plural ""
+"\n"
+"In linked file '%s' symbol section '%s' contains %<PRIu64> entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:14705
+#, c-format
+msgid ""
+"\n"
+"Symbol table '%s' contains %<PRIu64> entry:\n"
+msgid_plural ""
+"\n"
+"Symbol table '%s' contains %<PRIu64> entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:14773
+#, c-format
+msgid ""
+"\n"
+"In linked file '%s' the dynamic symbol table contains %<PRIu64> entry:\n"
+msgid_plural ""
+"\n"
+"In linked file '%s' the dynamic symbol table contains %<PRIu64> entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:14783
+#, c-format
+msgid ""
+"\n"
+"Symbol table for image contains %<PRIu64> entry:\n"
+msgid_plural ""
+"\n"
+"Symbol table for image contains %<PRIu64> entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:14818
+#, c-format
+msgid ""
+"\n"
+"Dynamic symbol information is not available for displaying symbols.\n"
+msgstr ""
+
+#: readelf.c:14831
+#, c-format
+msgid ""
+"\n"
+"Histogram for bucket list length (total of %<PRIu64> bucket):\n"
+msgid_plural ""
+"\n"
+"Histogram for bucket list length (total of %<PRIu64> buckets):\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:14841
+msgid "Out of memory allocating space for histogram buckets\n"
+msgstr ""
+
+#: readelf.c:14847 readelf.c:14924
+#, c-format
+msgid " Length Number %% of total Coverage\n"
+msgstr ""
+
+#: readelf.c:14857
+msgid "histogram chain is corrupt\n"
+msgstr ""
+
+#: readelf.c:14869
+msgid "Out of memory allocating space for histogram counts\n"
+msgstr ""
+
+#: readelf.c:14909
+#, c-format
+msgid ""
+"\n"
+"Histogram for `%s' bucket list length (total of %<PRIu64> bucket):\n"
+msgid_plural ""
+"\n"
+"Histogram for `%s' bucket list length (total of %<PRIu64> buckets):\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:14920
+msgid "Out of memory allocating space for gnu histogram buckets\n"
+msgstr ""
+
+#: readelf.c:14947
+msgid "Out of memory allocating space for gnu histogram counts\n"
+msgstr ""
+
+#: readelf.c:15013
+#, c-format
+msgid ""
+"\n"
+"In linked file '%s: the dynamic info segment at offset %#<PRIx64> contains %d entry:\n"
+msgid_plural ""
+"\n"
+"In linked file '%s: the dynamic info segment at offset %#<PRIx64> contains %d entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:15020
+#, c-format
+msgid ""
+"\n"
+"Dynamic info segment at offset %#<PRIx64> contains %d entry:\n"
+msgid_plural ""
+"\n"
+"Dynamic info segment at offset %#<PRIx64> contains %d entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:15028
+#, c-format
+msgid " Num: Name BoundTo Flags\n"
+msgstr ""
+
+#: readelf.c:15035
+#, c-format
+msgid "<corrupt index>"
+msgstr ""
+
+#: readelf.c:15040
+#, c-format
+msgid "<corrupt: %19ld>"
+msgstr ""
+
+#: readelf.c:15132
+#, c-format
+msgid "LoongArch ULEB128 field at 0x%lx contains invalid ULEB128 value\n"
+msgstr ""
+
+#: readelf.c:15137 readelf.c:15191 readelf.c:15242 readelf.c:15288
+#: readelf.c:15302 readelf.c:15346
+#, c-format
+msgid "%s reloc contains invalid symbol index %<PRIu64>\n"
+msgstr ""
+
+#: readelf.c:15238
+#, c-format
+msgid "MSP430 ULEB128 field at %#<PRIx64> contains invalid ULEB128 value\n"
+msgstr ""
+
+#. PR 21137
+#: readelf.c:15253
+#, c-format
+msgid "MSP430 sym diff reloc contains invalid offset: %#<PRIx64>\n"
+msgstr ""
+
+#: readelf.c:15265
+msgid "Unhandled MSP430 reloc type found after SYM_DIFF reloc\n"
+msgstr ""
+
+#: readelf.c:15312
+#, c-format
+msgid "MN10300 sym diff reloc contains invalid offset: %#<PRIx64>\n"
+msgstr ""
+
+#: readelf.c:15323
+msgid "Unhandled MN10300 reloc type found after SYM_DIFF reloc\n"
+msgstr ""
+
+#: readelf.c:15365 readelf.c:15375
+#, c-format
+msgid "RL78 sym diff reloc contains invalid offset: %#<PRIx64>\n"
+msgstr ""
+
+#: readelf.c:15598
+#, c-format
+msgid "Missing knowledge of 32-bit reloc types used in DWARF sections of machine number %d\n"
+msgstr ""
+
+#: readelf.c:16333
+#, c-format
+msgid "unable to apply unsupported reloc type %d to section %s\n"
+msgstr ""
+
+#: readelf.c:16342
+#, c-format
+msgid "skipping invalid relocation offset %#<PRIx64> in section %s\n"
+msgstr ""
+
+#: readelf.c:16352
+#, c-format
+msgid "skipping invalid relocation symbol index %#<PRIx64> in section %s\n"
+msgstr ""
+
+#: readelf.c:16376
+#, c-format
+msgid "skipping unexpected symbol type %s in section %s relocation %tu\n"
+msgstr ""
+
+#: readelf.c:16454
+#, c-format
+msgid ""
+"\n"
+"Assembly dump of section %s\n"
+msgstr ""
+
+#: readelf.c:16472
+#, c-format
+msgid "Section '%s' has no data to dump.\n"
+msgstr ""
+
+#: readelf.c:16478
+msgid "section contents"
+msgstr ""
+
+#: readelf.c:16501
+#, c-format
+msgid "Uncompressed section size is suspiciously large: 0x%<PRIu64>\n"
+msgstr ""
+
+#: readelf.c:16593 readelf.c:17177
+#, c-format
+msgid "section '%s' has unsupported compress type: %d\n"
+msgstr ""
+
+#: readelf.c:16629 readelf.c:17214
+#, c-format
+msgid "Unable to decompress section %s\n"
+msgstr ""
+
+#: readelf.c:16668
+#, c-format
+msgid " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"
+msgstr ""
+
+#: readelf.c:16696
+#, c-format
+msgid ""
+"\n"
+"String dump of section '%s' in linked file %s:\n"
+msgstr ""
+
+#: readelf.c:16700
+#, c-format
+msgid ""
+"\n"
+"String dump of section '%s':\n"
+msgstr ""
+
+#: readelf.c:16798 readelf.c:18272 readelf.c:18312 readelf.c:18350
+#: readelf.c:18397 readelf.c:18428 readelf.c:20023 readelf.c:20055
+#, c-format
+msgid "<corrupt>\n"
+msgstr ""
+
+#: readelf.c:16806
+#, c-format
+msgid " No strings found in this section."
+msgstr ""
+
+#: readelf.c:16841
+#, c-format
+msgid ""
+"\n"
+"Hex dump of section '%s' in linked file %s:\n"
+msgstr ""
+
+#: readelf.c:16845
+#, c-format
+msgid ""
+"\n"
+"Hex dump of section '%s':\n"
+msgstr ""
+
+#: readelf.c:16989
+#, c-format
+msgid "Iteration failed: %s, %s\n"
+msgstr ""
+
+#: readelf.c:17033
+#, c-format
+msgid "No symbol section named %s\n"
+msgstr ""
+
+#: readelf.c:17049
+#, c-format
+msgid "No string table section named %s\n"
+msgstr ""
+
+#: readelf.c:17056
+msgid "strings"
+msgstr ""
+
+#: readelf.c:17069 readelf.c:17081
+#, c-format
+msgid "CTF open failure: %s\n"
+msgstr ""
+
+#: readelf.c:17088
+#, c-format
+msgid ""
+"\n"
+"Dump of CTF section '%s' in linked file %s:\n"
+msgstr ""
+
+#: readelf.c:17092
+#, c-format
+msgid ""
+"\n"
+"Dump of CTF section '%s':\n"
+msgstr ""
+
+#: readelf.c:17103
+#, c-format
+msgid "CTF member open failure: %s\n"
+msgstr ""
+
+#: readelf.c:17134
+#, c-format
+msgid "%s section data"
+msgstr ""
+
+#: readelf.c:17158
+#, c-format
+msgid "compressed section %s is too small to contain a compression header\n"
+msgstr ""
+
+#: readelf.c:17290 readelf.c:17317 readelf.c:17342
+#, c-format
+msgid "malformed note encountered in section %s whilst scanning for build-id note\n"
+msgstr ""
+
+#: readelf.c:17470
+#, c-format
+msgid ""
+"\n"
+"Section '%s' has no debugging data.\n"
+msgstr ""
+
+#. There is no point in dumping the contents of a debugging section
+#. which has the NOBITS type - the bits in the file will be random.
+#. This can happen when a file containing a .eh_frame section is
+#. stripped with the --only-keep-debug command line option.
+#: readelf.c:17479
+#, c-format
+msgid "section '%s' has the NOBITS type - its contents are unreliable.\n"
+msgstr ""
+
+#: readelf.c:17529
+#, c-format
+msgid "Unrecognized debug section: %s\n"
+msgstr ""
+
+#: readelf.c:17559
+#, c-format
+msgid "Section '%s' was not dumped because it does not exist\n"
+msgstr ""
+
+#: readelf.c:17622
+#, c-format
+msgid "Unable to display section %d - it has a NULL type\n"
+msgstr ""
+
+#: readelf.c:17626
+#, c-format
+msgid "Unable to display section %d - it has no contents\n"
+msgstr ""
+
+#. FIXME: Add Proc and OS specific section types ?
+#: readelf.c:17637
+#, c-format
+msgid "Unable to determine how to dump section %d (type %#x)\n"
+msgstr ""
+
+#: readelf.c:17696
+#, c-format
+msgid "Section %d was not dumped because it does not exist!\n"
+msgstr ""
+
+#: readelf.c:17752
+msgid "<corrupt tag>\n"
+msgstr ""
+
+#: readelf.c:17766 readelf.c:17771
+#, c-format
+msgid "<corrupt string tag>"
+msgstr ""
+
+#: readelf.c:17805
+#, c-format
+msgid "Absent/Non standard\n"
+msgstr ""
+
+#: readelf.c:17808
+#, c-format
+msgid "Bare metal/mwdt\n"
+msgstr ""
+
+#: readelf.c:17811
+#, c-format
+msgid "Bare metal/newlib\n"
+msgstr ""
+
+#: readelf.c:17814
+#, c-format
+msgid "Linux/uclibc\n"
+msgstr ""
+
+#: readelf.c:17817
+#, c-format
+msgid "Linux/glibc\n"
+msgstr ""
+
+#: readelf.c:17820 readelf.c:17899
+#, c-format
+msgid "Unknown\n"
+msgstr ""
+
+#: readelf.c:17832 readelf.c:17862 readelf.c:17890
+#, c-format
+msgid "Absent\n"
+msgstr "áƒáƒ™áƒšáƒ˜áƒ\n"
+
+#: readelf.c:17874
+msgid "yes"
+msgstr "დიáƒáƒ®"
+
+#: readelf.c:17874
+msgid "no"
+msgstr ""
+
+#: readelf.c:17911 readelf.c:17918
+msgid "default"
+msgstr "ნáƒáƒ’ულისხმევი"
+
+#: readelf.c:17912
+msgid "smallest"
+msgstr ""
+
+#: readelf.c:17917
+msgid "OPTFP"
+msgstr ""
+
+#: readelf.c:18138 readelf.c:18151 readelf.c:18169 readelf.c:18691
+#: readelf.c:18970 readelf.c:18982 readelf.c:18994
+#, c-format
+msgid "None\n"
+msgstr ""
+
+#: readelf.c:18139
+#, c-format
+msgid "Application\n"
+msgstr ""
+
+#: readelf.c:18140
+#, c-format
+msgid "Realtime\n"
+msgstr ""
+
+#: readelf.c:18141
+#, c-format
+msgid "Microcontroller\n"
+msgstr ""
+
+#: readelf.c:18142
+#, c-format
+msgid "Application or Realtime\n"
+msgstr ""
+
+#: readelf.c:18152 readelf.c:18171 readelf.c:18743 readelf.c:18760
+#: readelf.c:18831 readelf.c:18851 readelf.c:21747
+#, c-format
+msgid "8-byte\n"
+msgstr ""
+
+#: readelf.c:18153 readelf.c:18834 readelf.c:18854 readelf.c:21746
+#, c-format
+msgid "4-byte\n"
+msgstr ""
+
+#: readelf.c:18157 readelf.c:18175
+#, c-format
+msgid "8-byte and up to %d-byte extended\n"
+msgstr ""
+
+#: readelf.c:18170
+#, c-format
+msgid "8-byte, except leaf SP\n"
+msgstr ""
+
+#: readelf.c:18186 readelf.c:18269 readelf.c:18869
+#, c-format
+msgid "flag = %d, vendor = "
+msgstr ""
+
+#: readelf.c:18207
+#, c-format
+msgid "True\n"
+msgstr ""
+
+#: readelf.c:18227
+#, c-format
+msgid "<unknown: %d>\n"
+msgstr ""
+
+#: readelf.c:18273
+msgid "corrupt vendor attribute\n"
+msgstr ""
+
+#: readelf.c:18323
+#, c-format
+msgid "unspecified hard/soft float\n"
+msgstr ""
+
+#: readelf.c:18326
+#, c-format
+msgid "hard float\n"
+msgstr ""
+
+#: readelf.c:18329
+#, c-format
+msgid "soft float\n"
+msgstr ""
+
+#: readelf.c:18361
+#, c-format
+msgid "unspecified hard/soft float, "
+msgstr ""
+
+#: readelf.c:18364
+#, c-format
+msgid "hard float, "
+msgstr ""
+
+#: readelf.c:18367
+#, c-format
+msgid "soft float, "
+msgstr ""
+
+#: readelf.c:18370
+#, c-format
+msgid "single-precision hard float, "
+msgstr ""
+
+#: readelf.c:18377
+#, c-format
+msgid "unspecified long double\n"
+msgstr ""
+
+#: readelf.c:18380
+#, c-format
+msgid "128-bit IBM long double\n"
+msgstr ""
+
+#: readelf.c:18383
+#, c-format
+msgid "64-bit long double\n"
+msgstr ""
+
+#: readelf.c:18386
+#, c-format
+msgid "128-bit IEEE long double\n"
+msgstr ""
+
+#: readelf.c:18408 readelf.c:18439
+#, c-format
+msgid "unspecified\n"
+msgstr ""
+
+#: readelf.c:18411
+#, c-format
+msgid "generic\n"
+msgstr ""
+
+#: readelf.c:18445
+#, c-format
+msgid "memory\n"
+msgstr ""
+
+#: readelf.c:18472
+#, c-format
+msgid "any\n"
+msgstr ""
+
+#: readelf.c:18475
+#, c-format
+msgid "software\n"
+msgstr ""
+
+#: readelf.c:18478
+#, c-format
+msgid "hardware\n"
+msgstr ""
+
+#: readelf.c:18601
+#, c-format
+msgid "Hard or soft float\n"
+msgstr ""
+
+#: readelf.c:18604
+#, c-format
+msgid "Hard float (double precision)\n"
+msgstr ""
+
+#: readelf.c:18607
+#, c-format
+msgid "Hard float (single precision)\n"
+msgstr ""
+
+#: readelf.c:18610
+#, c-format
+msgid "Soft float\n"
+msgstr ""
+
+#: readelf.c:18613
+#, c-format
+msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
+msgstr ""
+
+#: readelf.c:18616
+#, c-format
+msgid "Hard float (32-bit CPU, Any FPU)\n"
+msgstr ""
+
+#: readelf.c:18619
+#, c-format
+msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
+msgstr ""
+
+#: readelf.c:18622
+#, c-format
+msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
+msgstr ""
+
+#: readelf.c:18625
+#, c-format
+msgid "NaN 2008 compatibility\n"
+msgstr ""
+
+#: readelf.c:18658
+#, c-format
+msgid "Any MSA or not\n"
+msgstr ""
+
+#: readelf.c:18661
+#, c-format
+msgid "128-bit MSA\n"
+msgstr ""
+
+#: readelf.c:18723
+#, c-format
+msgid "Not used\n"
+msgstr ""
+
+#: readelf.c:18726
+#, c-format
+msgid "2 bytes\n"
+msgstr ""
+
+#: readelf.c:18729
+#, c-format
+msgid "4 bytes\n"
+msgstr ""
+
+#: readelf.c:18746 readelf.c:18763 readelf.c:18837 readelf.c:18857
+#, c-format
+msgid "16-byte\n"
+msgstr ""
+
+#: readelf.c:18777
+#, c-format
+msgid "DSBT addressing not used\n"
+msgstr ""
+
+#: readelf.c:18780
+#, c-format
+msgid "DSBT addressing used\n"
+msgstr ""
+
+#: readelf.c:18794
+#, c-format
+msgid "Data addressing position-dependent\n"
+msgstr ""
+
+#: readelf.c:18797
+#, c-format
+msgid "Data addressing position-independent, GOT near DP\n"
+msgstr ""
+
+#: readelf.c:18800
+#, c-format
+msgid "Data addressing position-independent, GOT far from DP\n"
+msgstr ""
+
+#: readelf.c:18814
+#, c-format
+msgid "Code addressing position-dependent\n"
+msgstr ""
+
+#: readelf.c:18817
+#, c-format
+msgid "Code addressing position-independent\n"
+msgstr ""
+
+#: readelf.c:18971
+#, c-format
+msgid "MSP430\n"
+msgstr ""
+
+#: readelf.c:18972
+#, c-format
+msgid "MSP430X\n"
+msgstr ""
+
+#: readelf.c:18983 readelf.c:18995
+#, c-format
+msgid "Small\n"
+msgstr ""
+
+#: readelf.c:18984 readelf.c:18996
+#, c-format
+msgid "Large\n"
+msgstr ""
+
+#: readelf.c:18997
+#, c-format
+msgid "Restricted Large\n"
+msgstr ""
+
+#: readelf.c:19003
+#, c-format
+msgid " <unknown tag %<PRId64>>: "
+msgstr ""
+
+#: readelf.c:19049
+#, c-format
+msgid "Any Region\n"
+msgstr ""
+
+#: readelf.c:19052
+#, c-format
+msgid "Lower Region Only\n"
+msgstr ""
+
+#: readelf.c:19118
+#, c-format
+msgid "No unaligned access\n"
+msgstr ""
+
+#: readelf.c:19121
+#, c-format
+msgid "Unaligned access\n"
+msgstr ""
+
+#: readelf.c:19127
+#, c-format
+msgid "%<PRIu64>-bytes\n"
+msgstr ""
+
+#: readelf.c:19263
+msgid "attributes"
+msgstr ""
+
+#: readelf.c:19273
+#, c-format
+msgid "Unknown attributes version '%c'(%d) - expecting 'A'\n"
+msgstr ""
+
+#: readelf.c:19290
+msgid "Tag section ends prematurely\n"
+msgstr ""
+
+#: readelf.c:19299
+#, c-format
+msgid "Bad attribute length (%u > %u)\n"
+msgstr ""
+
+#: readelf.c:19307
+#, c-format
+msgid "Attribute length of %u is too small\n"
+msgstr ""
+
+#: readelf.c:19318
+msgid "Corrupt attribute section name\n"
+msgstr ""
+
+#: readelf.c:19323
+#, c-format
+msgid "Attribute Section: "
+msgstr ""
+
+#: readelf.c:19350
+msgid "Unused bytes at end of section\n"
+msgstr ""
+
+#: readelf.c:19360
+#, c-format
+msgid "Bad subsection length (%u > %u)\n"
+msgstr ""
+
+#: readelf.c:19368
+#, c-format
+msgid "Bad subsection length (%u < 6)\n"
+msgstr ""
+
+#: readelf.c:19383
+#, c-format
+msgid "File Attributes\n"
+msgstr ""
+
+#: readelf.c:19386
+#, c-format
+msgid "Section Attributes:"
+msgstr ""
+
+#: readelf.c:19389
+#, c-format
+msgid "Symbol Attributes:"
+msgstr ""
+
+#: readelf.c:19402
+#, c-format
+msgid "Unknown tag: %d\n"
+msgstr ""
+
+#: readelf.c:19423
+#, c-format
+msgid " Unknown attribute:\n"
+msgstr ""
+
+#: readelf.c:19464
+msgid "MIPS GOT entry extends beyond the end of available data\n"
+msgstr ""
+
+#: readelf.c:19663
+msgid "Corrupt MIPS ABI Flags section.\n"
+msgstr ""
+
+#: readelf.c:19669
+msgid "MIPS ABI Flags section"
+msgstr ""
+
+#: readelf.c:19728 readelf.c:20311
+msgid "Global Offset Table data"
+msgstr ""
+
+#: readelf.c:19732
+#, c-format
+msgid ""
+"\n"
+"Static GOT:\n"
+msgstr ""
+
+#: readelf.c:19733 readelf.c:20316
+#, c-format
+msgid " Canonical gp value: "
+msgstr ""
+
+#: readelf.c:19747 readelf.c:20320 readelf.c:20455
+#, c-format
+msgid " Reserved entries:\n"
+msgstr ""
+
+#: readelf.c:19748
+#, c-format
+msgid " %*s %10s %*s\n"
+msgstr ""
+
+#: readelf.c:19749 readelf.c:19779 readelf.c:20322 readelf.c:20350
+#: readelf.c:20368 readelf.c:20457 readelf.c:20466
+msgid "Address"
+msgstr "მისáƒáƒ›áƒáƒ áƒ—ი"
+
+#: readelf.c:19749 readelf.c:19779 readelf.c:20322 readelf.c:20350
+#: readelf.c:20369
+msgid "Access"
+msgstr "წვდáƒáƒ›áƒ"
+
+#: readelf.c:19750 readelf.c:19780
+msgid "Value"
+msgstr "მნიშვნელáƒáƒ‘áƒ"
+
+#: readelf.c:19777 readelf.c:20348
+#, c-format
+msgid " Local entries:\n"
+msgstr ""
+
+#: readelf.c:19859 readelf.c:20572
+msgid "liblist section data"
+msgstr ""
+
+#: readelf.c:19862
+#, c-format
+msgid ""
+"\n"
+"Section '.liblist' contains %zu entry:\n"
+msgid_plural ""
+"\n"
+"Section '.liblist' contains %zu entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:19866
+msgid " Library Time Stamp Checksum Version Flags\n"
+msgstr ""
+
+#: readelf.c:19892
+#, c-format
+msgid "<corrupt: %9ld>"
+msgstr ""
+
+#: readelf.c:19897
+msgid " NONE"
+msgstr ""
+
+#: readelf.c:19947
+msgid "No MIPS_OPTIONS header found\n"
+msgstr ""
+
+#: readelf.c:19953
+msgid "The MIPS options section is too small.\n"
+msgstr ""
+
+#: readelf.c:19958
+msgid "options"
+msgstr "პáƒáƒ áƒáƒ›áƒ”ტრები"
+
+#: readelf.c:19977
+#, c-format
+msgid "Invalid size (%u) for MIPS option\n"
+msgstr ""
+
+#: readelf.c:19986
+#, c-format
+msgid ""
+"\n"
+"Section '%s' contains %d entry:\n"
+msgid_plural ""
+"\n"
+"Section '%s' contains %d entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:20024 readelf.c:20056
+msgid "Truncated MIPS REGINFO option\n"
+msgstr ""
+
+#: readelf.c:20192
+msgid "conflict list found without a dynamic symbol table\n"
+msgstr ""
+
+#: readelf.c:20200
+#, c-format
+msgid "Overlarge number of conflicts detected: %zx\n"
+msgstr ""
+
+#: readelf.c:20208
+msgid "Out of memory allocating space for dynamic conflicts\n"
+msgstr ""
+
+#: readelf.c:20218 readelf.c:20236
+msgid "conflict"
+msgstr "კáƒáƒœáƒ¤áƒšáƒ˜áƒ¥áƒ¢áƒ˜"
+
+#: readelf.c:20249
+#, c-format
+msgid ""
+"\n"
+"Section '.conflict' contains %zu entry:\n"
+msgid_plural ""
+"\n"
+"Section '.conflict' contains %zu entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:20253
+msgid " Num: Index Value Name"
+msgstr ""
+
+#: readelf.c:20260
+#, c-format
+msgid "<corrupt symbol index>"
+msgstr ""
+
+#: readelf.c:20271 readelf.c:20403 readelf.c:20491
+#, c-format
+msgid "<corrupt: %14ld>"
+msgstr ""
+
+#: readelf.c:20294
+#, c-format
+msgid "The GOT symbol offset (%<PRIu64>) is greater than the symbol table size (%<PRIu64>)\n"
+msgstr ""
+
+#: readelf.c:20304
+#, c-format
+msgid "Too many GOT symbols: %<PRIu64>\n"
+msgstr ""
+
+#: readelf.c:20315
+#, c-format
+msgid ""
+"\n"
+"Primary GOT:\n"
+msgstr ""
+
+#: readelf.c:20321
+#, c-format
+msgid " %*s %10s %*s Purpose\n"
+msgstr ""
+
+#: readelf.c:20323 readelf.c:20351 readelf.c:20370 readelf.c:20457
+#: readelf.c:20467
+msgid "Initial"
+msgstr "სáƒáƒ¬áƒ§áƒ˜áƒ¡áƒ˜"
+
+#: readelf.c:20325
+#, c-format
+msgid " Lazy resolver\n"
+msgstr ""
+
+#: readelf.c:20340
+#, c-format
+msgid " Module pointer (GNU extension)\n"
+msgstr ""
+
+#: readelf.c:20366
+#, c-format
+msgid " Global entries:\n"
+msgstr ""
+
+#: readelf.c:20371 readelf.c:20468
+msgid "Sym.Val."
+msgstr ""
+
+#. Note for translators: "Ndx" = abbreviated form of "Index".
+#: readelf.c:20374 readelf.c:20468
+msgid "Ndx"
+msgstr ""
+
+#: readelf.c:20374 readelf.c:20468
+msgid "Name"
+msgstr "სáƒáƒ®áƒ”ლი"
+
+#: readelf.c:20384
+#, c-format
+msgid "<no dynamic symbols>"
+msgstr ""
+
+#: readelf.c:20406
+#, c-format
+msgid "<symbol index %zu exceeds number of dynamic symbols>"
+msgstr ""
+
+#: readelf.c:20447
+msgid "Procedure Linkage Table data"
+msgstr ""
+
+#: readelf.c:20456
+#, c-format
+msgid " %*s %*s Purpose\n"
+msgstr ""
+
+#: readelf.c:20459
+#, c-format
+msgid " PLT lazy resolver\n"
+msgstr ""
+
+#: readelf.c:20461
+#, c-format
+msgid " Module pointer\n"
+msgstr ""
+
+#: readelf.c:20464
+#, c-format
+msgid " Entries:\n"
+msgstr ""
+
+#: readelf.c:20478
+#, c-format
+msgid "<corrupt symbol index: %<PRIu64>>"
+msgstr ""
+
+#: readelf.c:20517
+msgid "NDS32 elf flags section"
+msgstr ""
+
+#: readelf.c:20583
+msgid "liblist string table"
+msgstr ""
+
+#: readelf.c:20595
+#, c-format
+msgid ""
+"\n"
+"Library list section '%s' contains %<PRIu64> entries:\n"
+msgid_plural ""
+"\n"
+"Library list section '%s' contains %<PRIu64> entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:20603
+msgid " Library Time Stamp Checksum Version Flags"
+msgstr ""
+
+#: readelf.c:20653
+msgid "NT_AUXV (auxiliary vector)"
+msgstr ""
+
+#: readelf.c:20655
+msgid "NT_PRSTATUS (prstatus structure)"
+msgstr ""
+
+#: readelf.c:20657
+msgid "NT_FPREGSET (floating point registers)"
+msgstr ""
+
+#: readelf.c:20659
+msgid "NT_PRPSINFO (prpsinfo structure)"
+msgstr ""
+
+#: readelf.c:20661
+msgid "NT_TASKSTRUCT (task structure)"
+msgstr ""
+
+#: readelf.c:20663
+msgid "NT_GDB_TDESC (GDB XML target description)"
+msgstr ""
+
+#: readelf.c:20665
+msgid "NT_PRXFPREG (user_xfpregs structure)"
+msgstr ""
+
+#: readelf.c:20667
+msgid "NT_PPC_VMX (ppc Altivec registers)"
+msgstr ""
+
+#: readelf.c:20669
+msgid "NT_PPC_VSX (ppc VSX registers)"
+msgstr ""
+
+#: readelf.c:20671
+msgid "NT_PPC_TAR (ppc TAR register)"
+msgstr ""
+
+#: readelf.c:20673
+msgid "NT_PPC_PPR (ppc PPR register)"
+msgstr ""
+
+#: readelf.c:20675
+msgid "NT_PPC_DSCR (ppc DSCR register)"
+msgstr ""
+
+#: readelf.c:20677
+msgid "NT_PPC_EBB (ppc EBB registers)"
+msgstr ""
+
+#: readelf.c:20679
+msgid "NT_PPC_PMU (ppc PMU registers)"
+msgstr ""
+
+#: readelf.c:20681
+msgid "NT_PPC_TM_CGPR (ppc checkpointed GPR registers)"
+msgstr ""
+
+#: readelf.c:20683
+msgid "NT_PPC_TM_CFPR (ppc checkpointed floating point registers)"
+msgstr ""
+
+#: readelf.c:20685
+msgid "NT_PPC_TM_CVMX (ppc checkpointed Altivec registers)"
+msgstr ""
+
+#: readelf.c:20687
+msgid "NT_PPC_TM_CVSX (ppc checkpointed VSX registers)"
+msgstr ""
+
+#: readelf.c:20689
+msgid "NT_PPC_TM_SPR (ppc TM special purpose registers)"
+msgstr ""
+
+#: readelf.c:20691
+msgid "NT_PPC_TM_CTAR (ppc checkpointed TAR register)"
+msgstr ""
+
+#: readelf.c:20693
+msgid "NT_PPC_TM_CPPR (ppc checkpointed PPR register)"
+msgstr ""
+
+#: readelf.c:20695
+msgid "NT_PPC_TM_CDSCR (ppc checkpointed DSCR register)"
+msgstr ""
+
+#: readelf.c:20697
+msgid "NT_386_TLS (x86 TLS information)"
+msgstr ""
+
+#: readelf.c:20699
+msgid "NT_386_IOPERM (x86 I/O permissions)"
+msgstr ""
+
+#: readelf.c:20701
+msgid "NT_X86_XSTATE (x86 XSAVE extended state)"
+msgstr ""
+
+#: readelf.c:20703
+msgid "NT_X86_CET (x86 CET state)"
+msgstr ""
+
+#: readelf.c:20705
+msgid "NT_X86_SHSTK (x86 SHSTK state)"
+msgstr ""
+
+#: readelf.c:20707
+msgid "NT_S390_HIGH_GPRS (s390 upper register halves)"
+msgstr ""
+
+#: readelf.c:20709
+msgid "NT_S390_TIMER (s390 timer register)"
+msgstr ""
+
+#: readelf.c:20711
+msgid "NT_S390_TODCMP (s390 TOD comparator register)"
+msgstr ""
+
+#: readelf.c:20713
+msgid "NT_S390_TODPREG (s390 TOD programmable register)"
+msgstr ""
+
+#: readelf.c:20715
+msgid "NT_S390_CTRS (s390 control registers)"
+msgstr ""
+
+#: readelf.c:20717
+msgid "NT_S390_PREFIX (s390 prefix register)"
+msgstr ""
+
+#: readelf.c:20719
+msgid "NT_S390_LAST_BREAK (s390 last breaking event address)"
+msgstr ""
+
+#: readelf.c:20721
+msgid "NT_S390_SYSTEM_CALL (s390 system call restart data)"
+msgstr ""
+
+#: readelf.c:20723
+msgid "NT_S390_TDB (s390 transaction diagnostic block)"
+msgstr ""
+
+#: readelf.c:20725
+msgid "NT_S390_VXRS_LOW (s390 vector registers 0-15 upper half)"
+msgstr ""
+
+#: readelf.c:20727
+msgid "NT_S390_VXRS_HIGH (s390 vector registers 16-31)"
+msgstr ""
+
+#: readelf.c:20729
+msgid "NT_S390_GS_CB (s390 guarded-storage registers)"
+msgstr ""
+
+#: readelf.c:20731
+msgid "NT_S390_GS_BC (s390 guarded-storage broadcast control)"
+msgstr ""
+
+#: readelf.c:20733
+msgid "NT_ARM_VFP (arm VFP registers)"
+msgstr ""
+
+#: readelf.c:20735
+msgid "NT_ARM_TLS (AArch TLS registers)"
+msgstr ""
+
+#: readelf.c:20737
+msgid "NT_ARM_HW_BREAK (AArch hardware breakpoint registers)"
+msgstr ""
+
+#: readelf.c:20739
+msgid "NT_ARM_HW_WATCH (AArch hardware watchpoint registers)"
+msgstr ""
+
+#: readelf.c:20741
+msgid "NT_ARM_SYSTEM_CALL (AArch system call number)"
+msgstr ""
+
+#: readelf.c:20743
+msgid "NT_ARM_SVE (AArch SVE registers)"
+msgstr ""
+
+#: readelf.c:20745
+msgid "NT_ARM_PAC_MASK (AArch pointer authentication code masks)"
+msgstr ""
+
+#: readelf.c:20747
+msgid "NT_ARM_PACA_KEYS (ARM pointer authentication address keys)"
+msgstr ""
+
+#: readelf.c:20749
+msgid "NT_ARM_PACG_KEYS (ARM pointer authentication generic keys)"
+msgstr ""
+
+#: readelf.c:20751
+msgid "NT_ARM_TAGGED_ADDR_CTRL (AArch tagged address control)"
+msgstr ""
+
+#: readelf.c:20753
+msgid "NT_ARM_SSVE (AArch64 streaming SVE registers)"
+msgstr ""
+
+#: readelf.c:20755
+msgid "NT_ARM_ZA (AArch64 SME ZA register)"
+msgstr ""
+
+#: readelf.c:20757
+msgid "NT_ARM_ZT (AArch64 SME2 ZT registers)"
+msgstr ""
+
+#: readelf.c:20759
+msgid "NT_ARM_PAC_ENABLED_KEYS (AArch64 pointer authentication enabled keys)"
+msgstr ""
+
+#: readelf.c:20761
+msgid "NT_ARC_V2 (ARC HS accumulator/extra registers)"
+msgstr ""
+
+#: readelf.c:20763
+msgid "NT_RISCV_CSR (RISC-V control and status registers)"
+msgstr ""
+
+#: readelf.c:20765
+msgid "NT_PSTATUS (pstatus structure)"
+msgstr ""
+
+#: readelf.c:20767
+msgid "NT_FPREGS (floating point registers)"
+msgstr ""
+
+#: readelf.c:20769
+msgid "NT_PSINFO (psinfo structure)"
+msgstr ""
+
+#: readelf.c:20771
+msgid "NT_LWPSTATUS (lwpstatus_t structure)"
+msgstr ""
+
+#: readelf.c:20773
+msgid "NT_LWPSINFO (lwpsinfo_t structure)"
+msgstr ""
+
+#: readelf.c:20775
+msgid "NT_WIN32PSTATUS (win32_pstatus structure)"
+msgstr ""
+
+#: readelf.c:20777
+msgid "NT_SIGINFO (siginfo_t data)"
+msgstr ""
+
+#: readelf.c:20779
+msgid "NT_FILE (mapped files)"
+msgstr ""
+
+#: readelf.c:20787
+msgid "NT_VERSION (version)"
+msgstr ""
+
+#: readelf.c:20789
+msgid "NT_ARCH (architecture)"
+msgstr ""
+
+#: readelf.c:20791
+msgid "OPEN"
+msgstr "გáƒáƒ®áƒ¡áƒœáƒ"
+
+#: readelf.c:20793
+msgid "func"
+msgstr "ფუნქც"
+
+#: readelf.c:20795
+msgid "GO BUILDID"
+msgstr ""
+
+#: readelf.c:20797
+msgid "FDO_PACKAGING_METADATA"
+msgstr ""
+
+#: readelf.c:20799
+msgid "FDO_DLOPEN_METADATA"
+msgstr ""
+
+#: readelf.c:20804 readelf.c:20914 readelf.c:21103 readelf.c:21720
+#: readelf.c:21890 readelf.c:22019 readelf.c:22152
+#, c-format
+msgid "Unknown note type: (0x%08x)"
+msgstr ""
+
+#: readelf.c:20824
+msgid " Malformed note - too short for header\n"
+msgstr ""
+
+#: readelf.c:20833
+msgid " Malformed note - does not end with \\0\n"
+msgstr ""
+
+#: readelf.c:20846
+msgid " Malformed note - too short for supplied file count\n"
+msgstr ""
+
+#: readelf.c:20850
+#, c-format
+msgid " Page size: "
+msgstr ""
+
+#: readelf.c:20854
+#, c-format
+msgid " %*s%*s%*s\n"
+msgstr ""
+
+#: readelf.c:20855
+msgid "Start"
+msgstr "დáƒáƒ¬áƒ§áƒ”ბáƒ"
+
+#: readelf.c:20856
+msgid "End"
+msgstr "დáƒáƒ¡áƒáƒ¡áƒ áƒ£áƒšáƒ˜"
+
+#: readelf.c:20857
+msgid "Page Offset"
+msgstr ""
+
+#: readelf.c:20865
+msgid " Malformed note - filenames end too early\n"
+msgstr ""
+
+#: readelf.c:20897
+msgid "NT_GNU_ABI_TAG (ABI version tag)"
+msgstr ""
+
+#: readelf.c:20899
+msgid "NT_GNU_HWCAP (DSO-supplied software HWCAP info)"
+msgstr ""
+
+#: readelf.c:20901
+msgid "NT_GNU_BUILD_ID (unique build ID bitstring)"
+msgstr ""
+
+#: readelf.c:20903
+msgid "NT_GNU_GOLD_VERSION (gold version)"
+msgstr ""
+
+#: readelf.c:20905
+msgid "NT_GNU_PROPERTY_TYPE_0"
+msgstr ""
+
+#: readelf.c:20907
+msgid "NT_GNU_BUILD_ATTRIBUTE_OPEN"
+msgstr ""
+
+#: readelf.c:20909
+msgid "NT_GNU_BUILD_ATTRIBUTE_FUNC"
+msgstr ""
+
+#: readelf.c:20998 readelf.c:21145 readelf.c:21182
+#, c-format
+msgid "<None>"
+msgstr "<áƒáƒ áƒªáƒ”რთი>"
+
+#: readelf.c:21099
+msgid "NT_AMDGPU_METADATA (code object metadata)"
+msgstr ""
+
+#: readelf.c:21325
+#, c-format
+msgid " Properties: "
+msgstr ""
+
+#: readelf.c:21329
+#, c-format
+msgid "<corrupt GNU_PROPERTY_TYPE, size = %#lx>\n"
+msgstr ""
+
+#: readelf.c:21341
+#, c-format
+msgid "<corrupt descsz: %#lx>\n"
+msgstr ""
+
+#: readelf.c:21352
+#, c-format
+msgid "<corrupt type (%#x) datasz: %#x>\n"
+msgstr ""
+
+#: readelf.c:21374 readelf.c:21428 readelf.c:21450
+#, c-format
+msgid "x86 ISA used: <corrupt length: %#x> "
+msgstr ""
+
+#: readelf.c:21385 readelf.c:21439 readelf.c:21461
+#, c-format
+msgid "x86 ISA needed: <corrupt length: %#x> "
+msgstr ""
+
+#: readelf.c:21396
+#, c-format
+msgid "x86 feature: <corrupt length: %#x> "
+msgstr ""
+
+#: readelf.c:21407
+#, c-format
+msgid "x86 feature used: <corrupt length: %#x> "
+msgstr ""
+
+#: readelf.c:21418
+#, c-format
+msgid "x86 feature needed: <corrupt length: %#x> "
+msgstr ""
+
+#: readelf.c:21480 readelf.c:21492 readelf.c:21506 readelf.c:21514
+#: readelf.c:21520 readelf.c:21551
+#, c-format
+msgid "<corrupt length: %#x> "
+msgstr ""
+
+#: readelf.c:21504
+#, c-format
+msgid "stack size: "
+msgstr ""
+
+#: readelf.c:21533
+#, c-format
+msgid "1_needed: <corrupt length: %#x> "
+msgstr ""
+
+#: readelf.c:21547
+#, c-format
+msgid "UINT32_AND (%#x): "
+msgstr ""
+
+#: readelf.c:21549
+#, c-format
+msgid "UINT32_OR (%#x): "
+msgstr ""
+
+#: readelf.c:21561
+#, c-format
+msgid "<unknown type %#x data: "
+msgstr ""
+
+#: readelf.c:21563
+#, c-format
+msgid "<processor-specific type %#x data: "
+msgstr ""
+
+#: readelf.c:21565
+#, c-format
+msgid "<application-specific type %#x data: "
+msgstr ""
+
+#: readelf.c:21594
+#, c-format
+msgid " Build ID: "
+msgstr " áƒáƒ’ების ID: "
+
+#: readelf.c:21609
+#, c-format
+msgid " <corrupt GNU_ABI_TAG>\n"
+msgstr ""
+
+#: readelf.c:21646
+#, c-format
+msgid " OS: %s, ABI: %d.%d.%d\n"
+msgstr ""
+
+#: readelf.c:21655
+#, c-format
+msgid " Version: "
+msgstr ""
+
+#. Hardware capabilities information. Word 0 is the number of entries.
+#. Word 1 is a bitmask of enabled entries. The rest of the descriptor
+#. is a series of entries, where each entry is a single byte followed
+#. by a nul terminated string. The byte gives the bit number to test
+#. if enabled in the bitmask.
+#: readelf.c:21671
+#, c-format
+msgid " Hardware Capabilities: "
+msgstr ""
+
+#: readelf.c:21674
+msgid "<corrupt GNU_HWCAP>\n"
+msgstr ""
+
+#: readelf.c:21679
+#, c-format
+msgid "num entries: %d, enabled mask: %x\n"
+msgstr ""
+
+#: readelf.c:21695
+#, c-format
+msgid " Description data: "
+msgstr ""
+
+#: readelf.c:21713
+msgid "Alignment of 8-byte objects"
+msgstr ""
+
+#: readelf.c:21714
+msgid "Sizeof double and long double"
+msgstr ""
+
+#: readelf.c:21715
+msgid "Type of FPU support needed"
+msgstr ""
+
+#: readelf.c:21716
+msgid "Use of SIMD instructions"
+msgstr ""
+
+#: readelf.c:21717
+msgid "Use of cache"
+msgstr ""
+
+#: readelf.c:21718
+msgid "Use of MMU"
+msgstr ""
+
+#: readelf.c:21754
+#, c-format
+msgid "4-bytes\n"
+msgstr ""
+
+#: readelf.c:21755
+#, c-format
+msgid "8-bytes\n"
+msgstr ""
+
+#: readelf.c:21762
+#, c-format
+msgid "FPU-2.0\n"
+msgstr ""
+
+#: readelf.c:21763
+#, c-format
+msgid "FPU-3.0\n"
+msgstr ""
+
+#: readelf.c:21772
+#, c-format
+msgid "yes\n"
+msgstr "დიáƒáƒ®\n"
+
+#: readelf.c:21782
+#, c-format
+msgid "unknown value: %x\n"
+msgstr ""
+
+#: readelf.c:21838
+msgid "NT_THRMISC (thrmisc structure)"
+msgstr ""
+
+#: readelf.c:21840
+msgid "NT_PROCSTAT_PROC (proc data)"
+msgstr ""
+
+#: readelf.c:21842
+msgid "NT_PROCSTAT_FILES (files data)"
+msgstr ""
+
+#: readelf.c:21844
+msgid "NT_PROCSTAT_VMMAP (vmmap data)"
+msgstr ""
+
+#: readelf.c:21846
+msgid "NT_PROCSTAT_GROUPS (groups data)"
+msgstr ""
+
+#: readelf.c:21848
+msgid "NT_PROCSTAT_UMASK (umask data)"
+msgstr ""
+
+#: readelf.c:21850
+msgid "NT_PROCSTAT_RLIMIT (rlimit data)"
+msgstr ""
+
+#: readelf.c:21852
+msgid "NT_PROCSTAT_OSREL (osreldate data)"
+msgstr ""
+
+#: readelf.c:21854
+msgid "NT_PROCSTAT_PSSTRINGS (ps_strings data)"
+msgstr ""
+
+#: readelf.c:21856
+msgid "NT_PROCSTAT_AUXV (auxv data)"
+msgstr ""
+
+#: readelf.c:21858
+msgid "NT_PTLWPINFO (ptrace_lwpinfo structure)"
+msgstr ""
+
+#: readelf.c:21860
+msgid "NT_X86_SEGBASES (x86 segment base registers)"
+msgstr ""
+
+#. NetBSD core "procinfo" structure.
+#: readelf.c:21874
+msgid "NetBSD procinfo structure"
+msgstr ""
+
+#: readelf.c:21877
+msgid "NetBSD ELF auxiliary vector data"
+msgstr ""
+
+#: readelf.c:21880
+msgid "PT_LWPSTATUS (ptrace_lwpstatus structure)"
+msgstr ""
+
+#: readelf.c:21909 readelf.c:21926 readelf.c:21940
+msgid "PT_GETREGS (reg structure)"
+msgstr ""
+
+#: readelf.c:21911 readelf.c:21928 readelf.c:21942
+msgid "PT_GETFPREGS (fpreg structure)"
+msgstr ""
+
+#: readelf.c:21924
+msgid "PT___GETREGS40 (old reg structure)"
+msgstr ""
+
+#: readelf.c:21959
+msgid "OpenBSD procinfo structure"
+msgstr ""
+
+#: readelf.c:21961
+msgid "OpenBSD ELF auxiliary vector data"
+msgstr ""
+
+#: readelf.c:21963
+msgid "OpenBSD regular registers"
+msgstr ""
+
+#: readelf.c:21965
+msgid "OpenBSD floating point registers"
+msgstr ""
+
+#: readelf.c:21967
+msgid "OpenBSD window cookie"
+msgstr ""
+
+#: readelf.c:21979
+msgid "QNX debug fullpath"
+msgstr ""
+
+#: readelf.c:21981
+msgid "QNX debug relocation"
+msgstr ""
+
+#: readelf.c:21983
+msgid "QNX stack"
+msgstr ""
+
+#: readelf.c:21985
+msgid "QNX generator"
+msgstr ""
+
+#: readelf.c:21987
+msgid "QNX default library"
+msgstr ""
+
+#: readelf.c:21989
+msgid "QNX core sysinfo"
+msgstr ""
+
+#: readelf.c:21991
+msgid "QNX core info"
+msgstr ""
+
+#: readelf.c:21993
+msgid "QNX core status"
+msgstr ""
+
+#: readelf.c:21995
+msgid "QNX general registers"
+msgstr ""
+
+#: readelf.c:21997
+msgid "QNX floating point registers"
+msgstr ""
+
+#: readelf.c:21999
+msgid "QNX link map"
+msgstr ""
+
+#: readelf.c:22013
+msgid "NT_STAPSDT (SystemTap probe descriptors)"
+msgstr ""
+
+#: readelf.c:22081
+#, c-format
+msgid " Provider: %s\n"
+msgstr ""
+
+#: readelf.c:22082
+#, c-format
+msgid " Name: %s\n"
+msgstr ""
+
+#: readelf.c:22083
+#, c-format
+msgid " Location: "
+msgstr ""
+
+#: readelf.c:22085
+#, c-format
+msgid ", Base: "
+msgstr ""
+
+#: readelf.c:22087
+#, c-format
+msgid ", Semaphore: "
+msgstr ""
+
+#: readelf.c:22090
+#, c-format
+msgid " Arguments: %s\n"
+msgstr ""
+
+#: readelf.c:22095
+#, c-format
+msgid " <corrupt - note is too small>\n"
+msgstr ""
+
+#: readelf.c:22096
+msgid "corrupt stapdt note - the data size is too small\n"
+msgstr ""
+
+#: readelf.c:22105
+#, c-format
+msgid " Packaging Metadata: %.*s\n"
+msgstr ""
+
+#: readelf.c:22110
+#, c-format
+msgid " Dlopen Metadata: %.*s\n"
+msgstr ""
+
+#: readelf.c:22124
+msgid "NT_VMS_MHD (module header)"
+msgstr ""
+
+#: readelf.c:22126
+msgid "NT_VMS_LNM (language name)"
+msgstr ""
+
+#: readelf.c:22128
+msgid "NT_VMS_SRC (source files)"
+msgstr ""
+
+#: readelf.c:22132
+msgid "NT_VMS_EIDC (consistency check)"
+msgstr ""
+
+#: readelf.c:22134
+msgid "NT_VMS_FPMODE (FP mode)"
+msgstr ""
+
+#: readelf.c:22138
+msgid "NT_VMS_IMGNAM (image name)"
+msgstr ""
+
+#: readelf.c:22140
+msgid "NT_VMS_IMGID (image id)"
+msgstr ""
+
+#: readelf.c:22142
+msgid "NT_VMS_LINKID (link id)"
+msgstr ""
+
+#: readelf.c:22144
+msgid "NT_VMS_IMGBID (build id)"
+msgstr ""
+
+#: readelf.c:22146
+msgid "NT_VMS_GSTNAM (sym table name)"
+msgstr ""
+
+#: readelf.c:22173
+#, c-format
+msgid " Creation date : %.17s\n"
+msgstr ""
+
+#: readelf.c:22174
+#, c-format
+msgid " Last patch date: %.17s\n"
+msgstr ""
+
+#: readelf.c:22177
+#, c-format
+msgid " Module name : %s\n"
+msgstr ""
+
+#: readelf.c:22179
+#, c-format
+msgid " Module version : %s\n"
+msgstr ""
+
+#: readelf.c:22181 readelf.c:22186
+#, c-format
+msgid " Module version : <missing>\n"
+msgstr ""
+
+#: readelf.c:22185
+#, c-format
+msgid " Module name : <missing>\n"
+msgstr ""
+
+#: readelf.c:22191
+#, c-format
+msgid " Language: %.*s\n"
+msgstr ""
+
+#: readelf.c:22195
+#, c-format
+msgid " Floating Point mode: "
+msgstr ""
+
+#: readelf.c:22205
+#, c-format
+msgid " Link time: "
+msgstr ""
+
+#: readelf.c:22215
+#, c-format
+msgid " Patch time: "
+msgstr ""
+
+#: readelf.c:22228
+#, c-format
+msgid " Major id: %u, minor id: %u\n"
+msgstr ""
+
+#: readelf.c:22231
+#, c-format
+msgid " Last modified : "
+msgstr ""
+
+#: readelf.c:22233
+#, c-format
+msgid ""
+"\n"
+" Link flags : "
+msgstr ""
+
+#: readelf.c:22236
+#, c-format
+msgid " Header flags: 0x%08x\n"
+msgstr ""
+
+#: readelf.c:22238
+#, c-format
+msgid " Image id : %.*s\n"
+msgstr ""
+
+#: readelf.c:22242
+#, c-format
+msgid " Image name: %.*s\n"
+msgstr ""
+
+#: readelf.c:22246
+#, c-format
+msgid " Global symbol table name: %.*s\n"
+msgstr ""
+
+#: readelf.c:22250
+#, c-format
+msgid " Image id: %.*s\n"
+msgstr ""
+
+#: readelf.c:22254
+#, c-format
+msgid " Linker id: %.*s\n"
+msgstr ""
+
+#: readelf.c:22264 readelf.c:22957
+#, c-format
+msgid " <corrupt - data size is too small>\n"
+msgstr ""
+
+#: readelf.c:22265
+msgid "corrupt IA64 note: data size is too small\n"
+msgstr ""
+
+#: readelf.c:22432 readelf.c:22441
+#, c-format
+msgid " Applies to region from %#<PRIx64> to %#<PRIx64>\n"
+msgstr ""
+
+#: readelf.c:22435 readelf.c:22444
+#, c-format
+msgid " Applies to region from %#<PRIx64>\n"
+msgstr ""
+
+#: readelf.c:22465
+#, c-format
+msgid " <invalid description size: %lx>\n"
+msgstr ""
+
+#: readelf.c:22466
+#, c-format
+msgid " <invalid descsz>"
+msgstr ""
+
+#: readelf.c:22492
+#, c-format
+msgid "Gap in build notes detected from %#<PRIx64> to %#<PRIx64>\n"
+msgstr ""
+
+#: readelf.c:22496 readelf.c:22507
+#, c-format
+msgid " Applies to region from %#<PRIx64>"
+msgstr ""
+
+#: readelf.c:22501 readelf.c:22512
+#, c-format
+msgid " to %#<PRIx64>"
+msgstr ""
+
+#: readelf.c:22518
+#, c-format
+msgid " (%s)"
+msgstr ""
+
+#: readelf.c:22539 readelf.c:22554
+#, c-format
+msgid "corrupt name field in GNU build attribute note: size = %ld\n"
+msgstr ""
+
+#: readelf.c:22540 readelf.c:22555
+msgid " <corrupt name>"
+msgstr ""
+
+#: readelf.c:22574
+#, c-format
+msgid "unrecognised attribute type in name field: %d\n"
+msgstr ""
+
+#: readelf.c:22575
+msgid "<unknown name type>"
+msgstr ""
+
+#: readelf.c:22585
+msgid "<version>"
+msgstr ""
+
+#: readelf.c:22590
+msgid "<stack prot>"
+msgstr ""
+
+#: readelf.c:22595
+msgid "<relro>"
+msgstr ""
+
+#: readelf.c:22600
+msgid "<stack size>"
+msgstr ""
+
+#: readelf.c:22605
+msgid "<tool>"
+msgstr ""
+
+#: readelf.c:22610
+msgid "<ABI>"
+msgstr ""
+
+#: readelf.c:22615
+msgid "<PIC>"
+msgstr ""
+
+#: readelf.c:22620
+msgid "<short enum>"
+msgstr ""
+
+#: readelf.c:22639
+#, c-format
+msgid "unrecognised byte in name field: %d\n"
+msgstr ""
+
+#: readelf.c:22640
+#, c-format
+msgid "<unknown:_%d>"
+msgstr ""
+
+#: readelf.c:22652
+#, c-format
+msgid "attribute does not have an expected type (%c)\n"
+msgstr ""
+
+#: readelf.c:22656
+#, c-format
+msgid "corrupt name field: namesz: %lu but parsing gets to %td\n"
+msgstr ""
+
+#: readelf.c:22683
+#, c-format
+msgid "corrupt numeric name field: too many bytes in the value: %x\n"
+msgstr ""
+
+#: readelf.c:22772
+#, c-format
+msgid " description data: "
+msgstr ""
+
+#: readelf.c:22920
+msgid "failed to unpack msgpack contents in NT_AMDGPU_METADATA note"
+msgstr ""
+
+#: readelf.c:22943
+#, c-format
+msgid " Stack Size: 0x%<PRIx32>\n"
+msgstr ""
+
+#: readelf.c:22945
+#, c-format
+msgid " Stack allocated: %<PRIx32>\n"
+msgstr ""
+
+#: readelf.c:22947
+#, c-format
+msgid " Executable: %s\n"
+msgstr ""
+
+#: readelf.c:22958
+msgid "corrupt QNX note: data size is too small\n"
+msgstr ""
+
+#: readelf.c:23103
+msgid "notes"
+msgstr "შენიშვნები"
+
+#: readelf.c:23115
+#, c-format
+msgid "Displaying notes found in: %s\n"
+msgstr ""
+
+#: readelf.c:23117
+#, c-format
+msgid "Displaying notes found at file offset 0x%08<PRIx64> with length 0x%08<PRIx64>:\n"
+msgstr ""
+
+#: readelf.c:23130
+#, c-format
+msgid "Corrupt note: alignment %<PRId64>, expecting 4 or 8\n"
+msgstr ""
+
+#: readelf.c:23136
+#, c-format
+msgid " %-20s %-10s\tDescription\n"
+msgstr ""
+
+#: readelf.c:23136
+msgid "Owner"
+msgstr "მფლáƒáƒ‘ელი"
+
+#: readelf.c:23136
+msgid "Data size"
+msgstr ""
+
+#: readelf.c:23154 readelf.c:23183
+#, c-format
+msgid "Corrupt note: only %zd byte remains, not enough for a full note\n"
+msgid_plural "Corrupt note: only %zd bytes remain, not enough for a full note\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:23211
+#, c-format
+msgid "note with invalid namesz and/or descsz found at offset %#tx\n"
+msgstr ""
+
+#: readelf.c:23213
+#, c-format
+msgid " type: %#lx, namesize: %#lx, descsize: %#lx, alignment: %u\n"
+msgstr ""
+
+#: readelf.c:23231
+msgid "Out of memory allocating space for inote name\n"
+msgstr ""
+
+#: readelf.c:23289
+msgid "v850 notes"
+msgstr ""
+
+#: readelf.c:23296
+#, c-format
+msgid ""
+"\n"
+"Displaying contents of Renesas V850 notes section at offset %#<PRIx64> with length %#<PRIx64>:\n"
+msgstr ""
+
+#: readelf.c:23314
+#, c-format
+msgid "Corrupt note: name size is too big: %lx\n"
+msgstr ""
+
+#: readelf.c:23324
+#, c-format
+msgid "corrupt descsz found in note at offset %#tx\n"
+msgstr ""
+
+#: readelf.c:23326 readelf.c:23339
+#, c-format
+msgid " type: %#lx, namesize: %#lx, descsize: %#lx\n"
+msgstr ""
+
+#: readelf.c:23337
+#, c-format
+msgid "corrupt namesz found in note at offset %#zx\n"
+msgstr ""
+
+#: readelf.c:23413
+#, c-format
+msgid "No notes found in linked file '%s'.\n"
+msgstr ""
+
+#: readelf.c:23416
+#, c-format
+msgid "No notes found file.\n"
+msgstr ""
+
+#: readelf.c:23425
+#, c-format
+msgid " Unknown GNU attribute: %s\n"
+msgstr ""
+
+#: readelf.c:23754
+#, c-format
+msgid "%s: Failed to read file header\n"
+msgstr ""
+
+#: readelf.c:23769
+#, c-format
+msgid ""
+"\n"
+"File: %s\n"
+msgstr ""
+
+#: readelf.c:23930
+#, c-format
+msgid "%s: unable to dump the index as none was found\n"
+msgstr ""
+
+#: readelf.c:23937
+#, c-format
+msgid "Index of archive %s: (%<PRIu64> entries, %#<PRIx64> bytes in the symbol table)\n"
+msgstr ""
+
+#: readelf.c:23961
+#, c-format
+msgid "Contents of binary %s at offset "
+msgstr ""
+
+#: readelf.c:23973
+#, c-format
+msgid "%s: end of the symbol table reached before the end of the index\n"
+msgstr ""
+
+#: readelf.c:23992
+#, c-format
+msgid "%s: %<PRId64> byte remains in the symbol table, but without corresponding entries in the index table\n"
+msgid_plural "%s: %<PRId64> bytes remain in the symbol table, but without corresponding entries in the index table\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:24005
+#, c-format
+msgid "%s: failed to seek back to start of object files in the archive\n"
+msgstr ""
+
+#: readelf.c:24097 readelf.c:24216
+#, c-format
+msgid "Input file '%s' is not readable.\n"
+msgstr ""
+
+#: readelf.c:24125
+#, c-format
+msgid "%s: contains corrupt thin archive: %s\n"
+msgstr ""
+
+#: readelf.c:24143
+#, c-format
+msgid "%s: failed to seek to archive member.\n"
+msgstr ""
+
+#: readelf.c:24208
+msgid "Out of memory allocating file data structure\n"
+msgstr ""
+
+#: readelf.c:24245
+#, c-format
+msgid "File %s is not an archive so its index cannot be displayed.\n"
+msgstr ""
+
+#: readelf.c:24311
+msgid "Nothing to do.\n"
+msgstr "გáƒáƒ¡áƒáƒ™áƒ”თებელი áƒáƒ áƒáƒ¤áƒ”რიáƒ.\n"
+
+#: rename.c:200
+#, c-format
+msgid "%s: cannot set time: %s"
+msgstr ""
+
+#: rename.c:219
+#, c-format
+msgid "unable to copy file '%s'; reason: %s"
+msgstr ""
+
+#: resbin.c:119
+#, c-format
+msgid "%s: not enough binary data"
+msgstr ""
+
+#: resbin.c:136
+msgid "null terminated unicode string"
+msgstr ""
+
+#: resbin.c:166 resbin.c:175
+msgid "resource ID"
+msgstr ""
+
+#: resbin.c:219
+msgid "cursor"
+msgstr "კურსáƒáƒ áƒ˜"
+
+#: resbin.c:253 resbin.c:263
+msgid "menu header"
+msgstr ""
+
+#: resbin.c:277
+msgid "menuex header"
+msgstr ""
+
+#: resbin.c:284
+msgid "menuex offset"
+msgstr ""
+
+#: resbin.c:294
+#, c-format
+msgid "unsupported menu version %d"
+msgstr ""
+
+#: resbin.c:322 resbin.c:340 resbin.c:411
+msgid "menuitem header"
+msgstr ""
+
+#: resbin.c:453
+msgid "menuitem"
+msgstr ""
+
+#: resbin.c:496 resbin.c:530
+msgid "dialog header"
+msgstr ""
+
+#: resbin.c:517
+#, c-format
+msgid "unexpected DIALOGEX version %d"
+msgstr ""
+
+#: resbin.c:574
+msgid "dialog font point size"
+msgstr ""
+
+#: resbin.c:585
+msgid "dialogex font information"
+msgstr ""
+
+#: resbin.c:616 resbin.c:640
+msgid "dialog control"
+msgstr ""
+
+#: resbin.c:629
+msgid "dialogex control"
+msgstr ""
+
+#: resbin.c:668
+msgid "dialog control end"
+msgstr ""
+
+#: resbin.c:681
+msgid "dialog control data"
+msgstr ""
+
+#: resbin.c:723
+msgid "stringtable string length"
+msgstr ""
+
+#: resbin.c:736
+msgid "stringtable string"
+msgstr ""
+
+#: resbin.c:770
+msgid "fontdir header"
+msgstr ""
+
+#: resbin.c:787
+msgid "fontdir"
+msgstr ""
+
+#: resbin.c:807
+msgid "fontdir device name"
+msgstr ""
+
+#: resbin.c:816
+msgid "fontdir face name"
+msgstr ""
+
+#: resbin.c:860
+msgid "accelerator"
+msgstr ""
+
+#: resbin.c:923
+msgid "group cursor header"
+msgstr ""
+
+#: resbin.c:930 resrc.c:1362
+#, c-format
+msgid "unexpected group cursor type %d"
+msgstr ""
+
+#: resbin.c:948
+msgid "group cursor"
+msgstr ""
+
+#: resbin.c:988
+msgid "group icon header"
+msgstr ""
+
+#: resbin.c:995 resrc.c:1309
+#, c-format
+msgid "unexpected group icon type %d"
+msgstr ""
+
+#: resbin.c:1013
+msgid "group icon"
+msgstr ""
+
+#: resbin.c:1088
+msgid "unexpected version string"
+msgstr ""
+
+#: resbin.c:1126
+#, c-format
+msgid "version length %lu greater than resource length %lu"
+msgstr ""
+
+#: resbin.c:1133
+#, c-format
+msgid "unexpected version type %d"
+msgstr ""
+
+#: resbin.c:1152
+#, c-format
+msgid "unexpected fixed version information length %ld"
+msgstr ""
+
+#: resbin.c:1159
+msgid "fixed version info"
+msgstr ""
+
+#: resbin.c:1166
+#, c-format
+msgid "unexpected fixed version signature %lu"
+msgstr ""
+
+#: resbin.c:1173
+#, c-format
+msgid "unexpected fixed version info version %lu"
+msgstr ""
+
+#: resbin.c:1205
+msgid "version var info"
+msgstr ""
+
+#: resbin.c:1226
+#, c-format
+msgid "unexpected stringfileinfo value length %ld"
+msgstr ""
+
+#: resbin.c:1247
+msgid "version stringtable"
+msgstr ""
+
+#: resbin.c:1260
+#, c-format
+msgid "unexpected version stringtable value length %ld"
+msgstr ""
+
+#: resbin.c:1281
+msgid "version string"
+msgstr ""
+
+#: resbin.c:1303
+#, c-format
+msgid "unexpected version string length %ld != %ld + %ld"
+msgstr ""
+
+#: resbin.c:1313
+#, c-format
+msgid "unexpected version string length %ld < %ld"
+msgstr ""
+
+#: resbin.c:1343
+#, c-format
+msgid "unexpected varfileinfo value length %ld"
+msgstr ""
+
+#: resbin.c:1368
+msgid "version varfileinfo"
+msgstr ""
+
+#: resbin.c:1386
+#, c-format
+msgid "unexpected version value length %ld"
+msgstr ""
+
+#: resbin.c:1399
+msgid "nul bytes found in version string"
+msgstr ""
+
+#: resbin.c:1404
+#, c-format
+msgid "unexpected version string character: %x"
+msgstr ""
+
+#: resbin.c:1457
+msgid "toolbar"
+msgstr ""
+
+#: resbin.c:1475
+msgid "toolbar item"
+msgstr ""
+
+#: rescoff.c:124
+msgid "filename required for COFF input"
+msgstr ""
+
+#: rescoff.c:147
+#, c-format
+msgid "%s: not a PE file"
+msgstr ""
+
+#: rescoff.c:155
+#, c-format
+msgid "%s: no resource section"
+msgstr ""
+
+#: rescoff.c:168
+#, c-format
+msgid "%s: .rsrc section is bigger than the file!"
+msgstr ""
+
+#: rescoff.c:199
+#, c-format
+msgid "%s: %s: address out of bounds"
+msgstr ""
+
+#: rescoff.c:221
+#, c-format
+msgid "%s: resources nest too deep"
+msgstr ""
+
+#: rescoff.c:228
+msgid "directory"
+msgstr "სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ე"
+
+#: rescoff.c:260
+msgid "named directory entry"
+msgstr ""
+
+#: rescoff.c:272
+msgid "directory entry name"
+msgstr ""
+
+#: rescoff.c:279 rescoff.c:286
+msgid "resource name"
+msgstr "რესურსის სáƒáƒ®áƒ”ლი"
+
+#: rescoff.c:305
+msgid "named subdirectory"
+msgstr ""
+
+#: rescoff.c:316
+msgid "named resource"
+msgstr ""
+
+#: rescoff.c:336
+msgid "ID directory entry"
+msgstr ""
+
+#: rescoff.c:356
+msgid "ID subdirectory"
+msgstr ""
+
+#: rescoff.c:367
+msgid "ID resource"
+msgstr ""
+
+#: rescoff.c:396
+msgid "resource type unknown"
+msgstr ""
+
+#: rescoff.c:402
+msgid "data entry"
+msgstr ""
+
+#: rescoff.c:413
+msgid "resource data"
+msgstr ""
+
+#: rescoff.c:421
+msgid "resource data size"
+msgstr ""
+
+#: rescoff.c:521
+msgid "filename required for COFF output"
+msgstr ""
+
+#: rescoff.c:879
+msgid "can't get BFD_RELOC_RVA relocation type"
+msgstr ""
+
+#: resrc.c:257 resrc.c:329
+#, c-format
+msgid "can't open temporary file `%s': %s"
+msgstr ""
+
+#: resrc.c:263
+#, c-format
+msgid "can't redirect stdout: `%s': %s"
+msgstr ""
+
+#: resrc.c:325
+#, c-format
+msgid "can't execute `%s': %s"
+msgstr ""
+
+#: resrc.c:334
+#, c-format
+msgid "Using temporary file `%s' to read preprocessor output\n"
+msgstr ""
+
+#: resrc.c:341
+#, c-format
+msgid "can't popen `%s': %s"
+msgstr ""
+
+#: resrc.c:343
+#, c-format
+msgid "Using popen to read preprocessor output\n"
+msgstr ""
+
+#: resrc.c:405
+#, c-format
+msgid "Tried `%s'\n"
+msgstr ""
+
+#: resrc.c:422
+#, c-format
+msgid "Using `%s'\n"
+msgstr ""
+
+#: resrc.c:599
+msgid "preprocessing failed."
+msgstr ""
+
+#: resrc.c:630
+#, c-format
+msgid "%s: unexpected EOF"
+msgstr ""
+
+#: resrc.c:679
+#, c-format
+msgid "%s: read of %lu returned %lu"
+msgstr ""
+
+#: resrc.c:687 resrc.c:695
+msgid "not enough data"
+msgstr ""
+
+#: resrc.c:734 resrc.c:1509
+#, c-format
+msgid "stat failed on bitmap file `%s': %s"
+msgstr ""
+
+#: resrc.c:785
+#, c-format
+msgid "cursor file `%s' does not contain cursor data"
+msgstr ""
+
+#: resrc.c:817 resrc.c:1217
+#, c-format
+msgid "%s: fseek to %lu failed: %s"
+msgstr ""
+
+#: resrc.c:943
+msgid "help ID requires DIALOGEX"
+msgstr ""
+
+#: resrc.c:945
+msgid "control data requires DIALOGEX"
+msgstr ""
+
+#: resrc.c:973
+#, c-format
+msgid "stat failed on font file `%s': %s"
+msgstr ""
+
+#: resrc.c:1186
+#, c-format
+msgid "icon file `%s' does not contain icon data"
+msgstr ""
+
+#: resrc.c:1735 resrc.c:1770
+#, c-format
+msgid "stat failed on file `%s': %s"
+msgstr ""
+
+#: resrc.c:1970
+#, c-format
+msgid "can't open `%s' for output: %s"
+msgstr ""
+
+#: size.c:89
+#, c-format
+msgid " Displays the sizes of sections inside binary files\n"
+msgstr ""
+
+#: size.c:90
+#, c-format
+msgid " If no input file(s) are specified, a.out is assumed\n"
+msgstr ""
+
+#: size.c:91
+#, c-format
+msgid ""
+" The options are:\n"
+" -A|-B|-G --format={sysv|berkeley|gnu} Select output style (default is %s)\n"
+" -o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or hex\n"
+" -t --totals Display the total sizes (Berkeley only)\n"
+" -f Ignored.\n"
+" --common Display total size for *COM* syms\n"
+" --target=<bfdname> Set the binary file format\n"
+" @<file> Read options from <file>\n"
+" -h|-H|-? --help Display this information\n"
+" -v|-V --version Display the program's version\n"
+"\n"
+msgstr ""
+
+#: size.c:175
+#, c-format
+msgid "invalid argument to --format: %s"
+msgstr ""
+
+#: size.c:202
+#, c-format
+msgid "Invalid radix: %s\n"
+msgstr ""
+
+#: srconv.c:130
+msgid "Checksum failure"
+msgstr ""
+
+#. FIXME: Return error status.
+#: srconv.c:142
+msgid "Failed to write checksum"
+msgstr ""
+
+#: srconv.c:182
+#, c-format
+msgid "Unsupported integer write size: %d"
+msgstr ""
+
+#. FIXME: Return error status.
+#: srconv.c:268
+msgid "Failed to write TR block"
+msgstr ""
+
+#: srconv.c:360
+#, c-format
+msgid "Unrecognized H8300 sub-architecture: %ld"
+msgstr ""
+
+#: srconv.c:378
+#, c-format
+msgid "Unsupported architecture: %d"
+msgstr ""
+
+#: srconv.c:832
+#, c-format
+msgid "Unrecognised type: %d"
+msgstr ""
+
+#: srconv.c:958
+#, c-format
+msgid "Unrecognised coff symbol type: %d"
+msgstr ""
+
+#: srconv.c:1020 srconv.c:1120
+#, c-format
+msgid "Unrecognised coff symbol visibility: %d"
+msgstr ""
+
+#: srconv.c:1046 srconv.c:1091
+#, c-format
+msgid "Unrecognised coff symbol location: %d"
+msgstr ""
+
+#. FIXME: Return error status.
+#: srconv.c:1425
+msgid "Failed to write CS struct"
+msgstr ""
+
+#: srconv.c:1695
+#, c-format
+msgid "Convert a COFF object file into a SYSROFF object file\n"
+msgstr ""
+
+#: srconv.c:1696
+#, c-format
+msgid ""
+" The options are:\n"
+" -q --quick (Obsolete - ignored)\n"
+" -n --noprescan Do not perform a scan to convert commons into defs\n"
+" -d --debug Display information about what is being done\n"
+" @<file> Read options from <file>\n"
+" -h --help Display this information\n"
+" -v --version Print the program's version number\n"
+msgstr ""
+
+#: srconv.c:1785
+msgid "input and output files must be different"
+msgstr ""
+
+#: srconv.c:1838
+#, c-format
+msgid "unable to open output file %s"
+msgstr ""
+
+#: stabs.c:344 stabs.c:1796
+msgid "numeric overflow"
+msgstr ""
+
+#: stabs.c:354
+#, c-format
+msgid "Bad stab: %s\n"
+msgstr ""
+
+#: stabs.c:362
+#, c-format
+msgid "Warning: %s: %s\n"
+msgstr ""
+
+#: stabs.c:486
+#, c-format
+msgid "N_LBRAC not within function\n"
+msgstr ""
+
+#: stabs.c:525
+#, c-format
+msgid "Too many N_RBRACs\n"
+msgstr ""
+
+#: stabs.c:764
+msgid "unknown C++ encoded name"
+msgstr ""
+
+#. Complain and keep going, so compilers can invent new
+#. cross-reference types.
+#: stabs.c:1325
+msgid "unrecognized cross reference type"
+msgstr ""
+
+#. Does this actually ever happen? Is that why we are worrying
+#. about dealing with it rather than just calling error_type?
+#: stabs.c:1888
+msgid "missing index type"
+msgstr ""
+
+#: stabs.c:2239
+msgid "unknown virtual character for baseclass"
+msgstr ""
+
+#: stabs.c:2260
+msgid "unknown visibility character for baseclass"
+msgstr ""
+
+#: stabs.c:2471
+msgid "unnamed $vb type"
+msgstr ""
+
+#: stabs.c:2480
+msgid "unrecognized C++ abbreviation"
+msgstr ""
+
+#: stabs.c:2565
+msgid "unknown visibility character for field"
+msgstr ""
+
+#: stabs.c:2826
+msgid "const/volatile indicator missing"
+msgstr ""
+
+#: stabs.c:3369
+msgid "Undefined N_EXCL"
+msgstr ""
+
+#: stabs.c:3445
+#, c-format
+msgid "Type file number %d out of range\n"
+msgstr ""
+
+#: stabs.c:3521
+#, c-format
+msgid "Unrecognized XCOFF type %d\n"
+msgstr ""
+
+#: stabs.c:3807
+#, c-format
+msgid "bad mangled name `%s'\n"
+msgstr ""
+
+#: stabs.c:3900
+#, c-format
+msgid "no argument types in mangled string\n"
+msgstr ""
+
+#: stabs.c:5240
+#, c-format
+msgid "Demangled name is not a function\n"
+msgstr ""
+
+#: stabs.c:5282
+#, c-format
+msgid "Unexpected type in v3 arglist demangling\n"
+msgstr ""
+
+#: stabs.c:5357
+#, c-format
+msgid "Unrecognized demangle component %d\n"
+msgstr ""
+
+#: stabs.c:5409
+#, c-format
+msgid "Failed to print demangled template\n"
+msgstr ""
+
+#: stabs.c:5489
+#, c-format
+msgid "Couldn't get demangled builtin type\n"
+msgstr ""
+
+#: stabs.c:5538
+#, c-format
+msgid "Unexpected demangled varargs\n"
+msgstr ""
+
+#: stabs.c:5545
+#, c-format
+msgid "Unrecognized demangled builtin type\n"
+msgstr ""
+
+#: strings.c:181
+#, c-format
+msgid "invalid integer argument %s"
+msgstr ""
+
+#: strings.c:186
+#, c-format
+msgid "minimum string length is too big: %s"
+msgstr ""
+
+#: strings.c:189
+#, c-format
+msgid "minimum string length is too small: %s"
+msgstr ""
+
+#: strings.c:193
+#, c-format
+msgid "minimum string length %s is too big"
+msgstr ""
+
+#: strings.c:406
+#, c-format
+msgid "%s: Reading section %s failed: %s"
+msgstr ""
+
+#: strings.c:1331
+#, c-format
+msgid " Display printable strings in [file(s)] (stdin by default)\n"
+msgstr ""
+
+#: strings.c:1335
+#, c-format
+msgid ""
+" -a - --all Scan the entire file, not just the data section [default]\n"
+" -d --data Only scan the data sections in the file\n"
+msgstr ""
+
+#: strings.c:1339
+#, c-format
+msgid ""
+" -a - --all Scan the entire file, not just the data section\n"
+" -d --data Only scan the data sections in the file [default]\n"
+msgstr ""
+
+#: strings.c:1343
+#, c-format
+msgid ""
+" -f --print-file-name Print the name of the file before each string\n"
+" -n <number> Locate & print any sequence of at least <number>\n"
+" --bytes=<number> displayable characters. (The default is 4).\n"
+" -t --radix={o,d,x} Print the location of the string in base 8, 10 or 16\n"
+" -w --include-all-whitespace Include all whitespace as valid string characters\n"
+" -o An alias for --radix=o\n"
+" -T --target=<BFDNAME> Specify the binary file format\n"
+" -e --encoding={s,S,b,l,B,L} Select character size and endianness:\n"
+" s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n"
+" --unicode={default|locale|invalid|hex|escape|highlight}\n"
+" -U {d|l|i|x|e|h} Specify how to treat UTF-8 encoded unicode characters\n"
+" -s --output-separator=<string> String used to separate strings in output.\n"
+" @<file> Read options from <file>\n"
+" -h --help Display this information\n"
+" -v -V --version Print the program's version number\n"
+msgstr ""
+
+#: sysdump.c:51
+msgid "*undefined*"
+msgstr ""
+
+#. PR 28564
+#: sysdump.c:57 sysdump.c:66
+msgid "*corrupt*"
+msgstr ""
+
+#: sysdump.c:131
+#, c-format
+msgid "SUM IS %x\n"
+msgstr ""
+
+#. PR 17512: file: id:000001,src:000002,op:flip1,pos:45.
+#. Prevent infinite loops re-reading beyond the end of the buffer.
+#: sysdump.c:169
+msgid "ICE: getINT: Out of buffer space"
+msgstr ""
+
+#: sysdump.c:194
+#, c-format
+msgid "Unsupported read size: %d"
+msgstr ""
+
+#: sysdump.c:505
+#, c-format
+msgid "GOT A %x\n"
+msgstr ""
+
+#: sysdump.c:523
+#, c-format
+msgid "WANTED %x!!\n"
+msgstr ""
+
+#: sysdump.c:541
+msgid "SYMBOL INFO"
+msgstr ""
+
+#: sysdump.c:559
+msgid "DERIVED TYPE"
+msgstr ""
+
+#: sysdump.c:616
+msgid "MODULE***\n"
+msgstr ""
+
+#: sysdump.c:649
+#, c-format
+msgid "Print a human readable interpretation of a SYSROFF object file\n"
+msgstr ""
+
+#: sysdump.c:650
+#, c-format
+msgid ""
+" The options are:\n"
+" -h --help Display this information\n"
+" -v --version Print the program's version number\n"
+msgstr ""
+
+#: sysdump.c:716
+#, c-format
+msgid "cannot open input file %s"
+msgstr ""
+
+#: unwind-ia64.c:180
+#, c-format
+msgid "Unknown code 0x%02x\n"
+msgstr ""
+
+#. PR 18420.
+#: unwind-ia64.c:366
+#, c-format
+msgid ""
+"\n"
+"ERROR: unwind length too long (0x%lx > 0x%lx)\n"
+"\n"
+msgstr ""
+
+#: unwind-ia64.c:578
+#, c-format
+msgid "Bad uleb128\n"
+msgstr ""
+
+#: unwind-ia64.c:592
+#, c-format
+msgid "\t<corrupt X1>\n"
+msgstr ""
+
+#: unwind-ia64.c:616
+#, c-format
+msgid "\t<corrupt X2>\n"
+msgstr ""
+
+#: unwind-ia64.c:642
+#, c-format
+msgid "\t<corrupt X3>\n"
+msgstr ""
+
+#: unwind-ia64.c:670
+#, c-format
+msgid "\t<corrupt X4>\n"
+msgstr ""
+
+#: unwind-ia64.c:712
+#, c-format
+msgid "\t<corrupt R2>\n"
+msgstr ""
+
+#: unwind-ia64.c:758
+#, c-format
+msgid "\t<corrupt P2>\n"
+msgstr ""
+
+#: unwind-ia64.c:773
+#, c-format
+msgid "\t<corrupt P3>\n"
+msgstr ""
+
+#: unwind-ia64.c:832
+#, c-format
+msgid "\t<corrupt P5>\n"
+msgstr ""
+
+#: unwind-ia64.c:939
+#, c-format
+msgid "\t<corrupt P8>\n"
+msgstr ""
+
+#: unwind-ia64.c:1014
+#, c-format
+msgid "\t<corrupt P9>\n"
+msgstr ""
+
+#: unwind-ia64.c:1026
+#, c-format
+msgid "\t<corrupt P10>\n"
+msgstr ""
+
+#: unwind-ia64.c:1157
+#, c-format
+msgid "\t<corrupt IA64 descriptor>\n"
+msgstr ""
+
+#: version.c:34
+#, c-format
+msgid "Copyright (C) 2025 Free Software Foundation, Inc.\n"
+msgstr ""
+
+#: version.c:35
+#, 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) any later version.\n"
+"This program has absolutely no warranty.\n"
+msgstr ""
+
+#: windmc.c:189
+#, c-format
+msgid "can't create %s file `%s' for output.\n"
+msgstr ""
+
+#: windmc.c:197
+#, c-format
+msgid "Usage: %s [option(s)] [input-file]\n"
+msgstr ""
+
+#: windmc.c:199
+#, c-format
+msgid ""
+" The options are:\n"
+" -a --ascii_in Read input file as ASCII file\n"
+" -A --ascii_out Write binary messages as ASCII\n"
+" -b --binprefix .bin filename is prefixed by .mc filename_ for uniqueness.\n"
+" -c --customflag Set custom flags for messages\n"
+" -C --codepage_in=<val> Set codepage when reading mc text file\n"
+" -d --decimal_values Print values to text files decimal\n"
+" -e --extension=<extension> Set header extension used on export header file\n"
+" -F --target <target> Specify output target for endianness.\n"
+" -h --headerdir=<directory> Set the export directory for headers\n"
+" -u --unicode_in Read input file as UTF16 file\n"
+" -U --unicode_out Write binary messages as UFT16\n"
+" -m --maxlength=<val> Set the maximal allowed message length\n"
+" -n --nullterminate Automatic add a zero termination to strings\n"
+" -o --hresult_use Use HRESULT definition instead of status code definition\n"
+" -O --codepage_out=<val> Set codepage used for writing text file\n"
+" -r --rcdir=<directory> Set the export directory for rc files\n"
+" -x --xdbg=<directory> Where to create the .dbg C include file\n"
+" that maps message ID's to their symbolic name.\n"
+msgstr ""
+
+#: windmc.c:219
+#, c-format
+msgid ""
+" -H --help Print this help message\n"
+" -v --verbose Verbose - tells you what it's doing\n"
+" -V --version Print version information\n"
+msgstr ""
+
+#: windmc.c:260 windres.c:384
+#, c-format
+msgid "%s: warning: "
+msgstr ""
+
+#: windmc.c:261
+#, c-format
+msgid "A codepage was specified switch `%s' and UTF16.\n"
+msgstr ""
+
+#: windmc.c:262
+#, c-format
+msgid "\tcodepage settings are ignored.\n"
+msgstr ""
+
+#: windmc.c:306
+msgid "try to add a ill language."
+msgstr ""
+
+#: windmc.c:1115
+#, c-format
+msgid "unable to open file `%s' for input.\n"
+msgstr ""
+
+#: windmc.c:1123
+#, c-format
+msgid "unable to read contents of %s"
+msgstr ""
+
+#: windmc.c:1135
+msgid "input file does not seems to be UFT16.\n"
+msgstr ""
+
+#: windres.c:194
+#, c-format
+msgid "can't open %s `%s': %s"
+msgstr ""
+
+#: windres.c:363
+#, c-format
+msgid ": expected to be a directory\n"
+msgstr ""
+
+#: windres.c:375
+#, c-format
+msgid ": expected to be a leaf\n"
+msgstr ""
+
+#: windres.c:386
+#, c-format
+msgid ": duplicate value\n"
+msgstr ""
+
+#: windres.c:538
+#, c-format
+msgid "unknown format type `%s'"
+msgstr ""
+
+#: windres.c:539
+#, c-format
+msgid "%s: supported formats:"
+msgstr ""
+
+#. Otherwise, we give up.
+#: windres.c:622
+#, c-format
+msgid "can not determine type of file `%s'; use the -J option"
+msgstr ""
+
+#: windres.c:634
+#, c-format
+msgid "Usage: %s [option(s)] [input-file] [output-file]\n"
+msgstr ""
+
+#: windres.c:636
+#, c-format
+msgid ""
+" The options are:\n"
+" -i --input=<file> Name input file\n"
+" -o --output=<file> Name output file\n"
+" -J --input-format=<format> Specify input format\n"
+" -O --output-format=<format> Specify output format\n"
+" -F --target=<target> Specify COFF target\n"
+" --preprocessor=<program> Program to use to preprocess rc file\n"
+" --preprocessor-arg=<arg> Additional preprocessor argument\n"
+" -I --include-dir=<dir> Include directory when preprocessing rc file\n"
+" -D --define <sym>[=<val>] Define SYM when preprocessing rc file\n"
+" -U --undefine <sym> Undefine SYM when preprocessing rc file\n"
+" -v --verbose Verbose - tells you what it's doing\n"
+" -c --codepage=<codepage> Specify default codepage\n"
+" -l --language=<val> Set language when reading rc file\n"
+" --use-temp-file Use a temporary file instead of popen to read\n"
+" the preprocessor output\n"
+" --no-use-temp-file Use popen (default)\n"
+msgstr ""
+
+#: windres.c:654
+#, c-format
+msgid " --yydebug Turn on parser debugging\n"
+msgstr ""
+
+#: windres.c:657
+#, c-format
+msgid ""
+" -r Ignored for compatibility with rc\n"
+" @<file> Read options from <file>\n"
+" -h --help Print this help message\n"
+" -V --version Print version information\n"
+msgstr ""
+
+#: windres.c:662
+#, c-format
+msgid ""
+"FORMAT is one of rc, res, or coff, and is deduced from the file name\n"
+"extension if not specified. A single file name is an input file.\n"
+"No input-file is stdin, default rc. No output-file is stdout, default rc.\n"
+msgstr ""
+
+#: windres.c:825
+msgid "invalid codepage specified.\n"
+msgstr ""
+
+#: windres.c:840
+msgid "invalid option -f\n"
+msgstr ""
+
+#: windres.c:845
+msgid "No filename following the -fo option.\n"
+msgstr ""
+
+#: windres.c:937
+#, c-format
+msgid "Option -I is deprecated for setting the input format, please use -J instead.\n"
+msgstr ""
+
+#: windres.c:1050
+msgid "no resources"
+msgstr ""
+
+#: wrstabs.c:336 wrstabs.c:1909
+#, c-format
+msgid "string_hash_lookup failed: %s"
+msgstr ""
+
+#: wrstabs.c:660
+#, c-format
+msgid "stab_int_type: bad size %u"
+msgstr ""
+
+#: wrstabs.c:1382
+#, c-format
+msgid "%s: warning: unknown size for field `%s' in struct"
+msgstr ""
diff --git a/binutils/po/sr.po b/binutils/po/sr.po
index 6aa51d5..92f0e58 100644
--- a/binutils/po/sr.po
+++ b/binutils/po/sr.po
@@ -5,10 +5,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: binutils-2.43.90\n"
+"Project-Id-Version: binutils-2.44.90\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2025-01-19 12:20+0000\n"
-"PO-Revision-Date: 2025-03-02 16:44+0100\n"
+"POT-Creation-Date: 2025-07-13 08:46+0100\n"
+"PO-Revision-Date: 2025-08-31 07:17+0200\n"
"Last-Translator: МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(nothing)>\n"
"Language: sr\n"
@@ -71,10 +71,10 @@ msgstr ""
" -v --version Приказује издање програма\n"
"\n"
-#: addr2line.c:111 ar.c:354 ar.c:391 coffdump.c:470 dlltool.c:3724
-#: dllwrap.c:518 elfedit.c:976 objcopy.c:706 objcopy.c:762 readelf.c:6328
+#: addr2line.c:111 ar.c:356 ar.c:393 coffdump.c:470 dlltool.c:3770
+#: dllwrap.c:518 elfedit.c:987 objcopy.c:717 objcopy.c:777 readelf.c:6332
#: size.c:110 srconv.c:1705 strings.c:1361 sysdump.c:655 windmc.c:227
-#: windres.c:690
+#: windres.c:670
#, c-format
msgid "Report bugs to %s\n"
msgstr "Грешке пријавите на „%s“\n"
@@ -110,232 +110,232 @@ msgstr "%s: не могу да добавим адреÑе из архиве"
msgid "%s: cannot find section %s"
msgstr "%s: не могу да пронађем одељак %s"
-#: addr2line.c:514 ar.c:750 dlltool.c:3240 nm.c:1981 objcopy.c:6222
-#: objdump.c:5982 size.c:152 strings.c:356 windmc.c:958 windres.c:816
+#: addr2line.c:514 ar.c:759 dlltool.c:3285 nm.c:1995 objcopy.c:6268
+#: objdump.c:6023 size.c:152 strings.c:356 windmc.c:958 windres.c:796
msgid "fatal error: libbfd ABI mismatch"
msgstr "кобна грешка: „libbfd ABI“ не одговара"
-#: addr2line.c:541 nm.c:2007 objdump.c:6034 readelf.c:6635
+#: addr2line.c:541 nm.c:2021 objdump.c:6075 readelf.c:6647
#, c-format
msgid "unknown demangling style `%s'"
msgstr "непознат Ñтил раÑкршчавања „%s“"
-#: ar.c:270
+#: ar.c:272
#, c-format
msgid "no entry %s in archive\n"
msgstr "нема уноÑа „%s“ у архиви\n"
-#: ar.c:284
+#: ar.c:286
#, c-format
msgid "Usage: %s [emulation options] [-]{dmpqrstx}[abcDfilMNoOPsSTuvV] [--plugin <name>] [member-name] [count] archive-file file...\n"
msgstr "Употреба: %s [опције опонашања] [-]{dmpqrstx}[abcDfilMNoOPsSTuvV] [--plugin <назив>] [назив-члана] [број] датотека-архиве датотека...\n"
-#: ar.c:290
+#: ar.c:292
#, c-format
msgid "Usage: %s [emulation options] [-]{dmpqrstx}[abcDfilMNoOPsSTuvV] [member-name] [count] archive-file file...\n"
msgstr "Употреба: %s [опције опонашања] [-]{dmpqrstx}[abcDfilMNoOPsSTuvV] [назив-члана] [број] датотека-архиве датотека...\n"
-#: ar.c:298
+#: ar.c:300
#, c-format
msgid " %s -M [<mri-script]\n"
msgstr " %s -M [<мри-ÑпиÑ]\n"
-#: ar.c:299
+#: ar.c:301
#, c-format
msgid " commands:\n"
msgstr " наредбе:\n"
-#: ar.c:300
+#: ar.c:302
#, c-format
msgid " d - delete file(s) from the archive\n"
msgstr " d – брише датотеку(е) из архиве\n"
-#: ar.c:301
+#: ar.c:303
#, c-format
msgid " m[ab] - move file(s) in the archive\n"
msgstr " m[ab] – премешта датотеку(е) у архиву\n"
-#: ar.c:302
+#: ar.c:304
#, c-format
msgid " p - print file(s) found in the archive\n"
msgstr " p – иÑпиÑује датотеку(е) пронађену(е) у архиви\n"
-#: ar.c:303
+#: ar.c:305
#, c-format
msgid " q[f] - quick append file(s) to the archive\n"
msgstr " q[f] – брзо додаје датотеку(е) у архиву\n"
-#: ar.c:304
+#: ar.c:306
#, c-format
msgid " r[ab][f][u] - replace existing or insert new file(s) into the archive\n"
msgstr " r[ab][f][u] – замењује поÑтојећу(е) или умеће нову(е) датотеку(е) у архиву\n"
-#: ar.c:305
+#: ar.c:307
#, c-format
msgid " s - act as ranlib\n"
msgstr " s – делује као библиотека покретања\n"
-#: ar.c:306
+#: ar.c:308
#, c-format
msgid " t[O][v] - display contents of the archive\n"
msgstr " t[O][v] – приказује Ñадржај архиве\n"
-#: ar.c:307
+#: ar.c:309
#, c-format
msgid " x[o] - extract file(s) from the archive\n"
msgstr " x[o] – извлачи датотеку(е) из архиве\n"
-#: ar.c:308
+#: ar.c:310
#, c-format
msgid " command specific modifiers:\n"
msgstr " наредбено поÑебни измењивачи:\n"
-#: ar.c:309
+#: ar.c:311
#, c-format
msgid " [a] - put file(s) after [member-name]\n"
msgstr " [a] – Ñтавља датотеку(е) након [назив-члана]\n"
-#: ar.c:310
+#: ar.c:312
#, c-format
msgid " [b] - put file(s) before [member-name] (same as [i])\n"
msgstr " [b] – Ñтавља датотеку(е) пре [назив-члана] (иÑто као [i])\n"
-#: ar.c:313
+#: ar.c:315
#, c-format
msgid " [D] - use zero for timestamps and uids/gids (default)\n"
msgstr " [D] – кориÑти нулу за временÑке ознаке и јиб-ове/гиб-ове (оÑновно)\n"
-#: ar.c:315
+#: ar.c:317
#, c-format
msgid " [U] - use actual timestamps and uids/gids\n"
msgstr " [U] – кориÑти тренутне временÑке ознаке и јиб-ове/гиб-ове\n"
-#: ar.c:320
+#: ar.c:322
#, c-format
msgid " [D] - use zero for timestamps and uids/gids\n"
msgstr " [D] – кориÑти нулу за временÑке ознаке и јиб-ове/гиб-ове\n"
-#: ar.c:322
+#: ar.c:324
#, c-format
msgid " [U] - use actual timestamps and uids/gids (default)\n"
msgstr " [U] – кориÑти тренутне временÑке ознаке и јиб-ове/гиб-ове (оÑновно)\n"
-#: ar.c:325
+#: ar.c:327
#, c-format
msgid " [N] - use instance [count] of name\n"
msgstr " [N] – кориÑти примерак [број] назива\n"
-#: ar.c:326
+#: ar.c:328
#, c-format
msgid " [f] - truncate inserted file names\n"
msgstr " [f] – Ñкраћује називе уметнутих датотека\n"
-#: ar.c:327
+#: ar.c:329
#, c-format
msgid " [P] - use full path names when matching\n"
msgstr " [P] – кориÑти пуне називе путања приликом упоређивања\n"
-#: ar.c:328
+#: ar.c:330
#, c-format
msgid " [o] - preserve original dates\n"
msgstr " [o] – задржава изворне датуме\n"
-#: ar.c:329
+#: ar.c:331
#, c-format
msgid " [O] - display offsets of files in the archive\n"
msgstr " [O] – приказује помераје датотека у архиви\n"
-#: ar.c:330
+#: ar.c:332
#, c-format
msgid " [u] - only replace files that are newer than current archive contents\n"
msgstr " [u] – замењује Ñамо датотеке које Ñу новије од тренутног Ñадржаја архиве\n"
-#: ar.c:331
+#: ar.c:333
#, c-format
msgid " generic modifiers:\n"
msgstr " општи измењивачи:\n"
-#: ar.c:332
+#: ar.c:334
#, c-format
msgid " [c] - do not warn if the library had to be created\n"
msgstr " [c] – не упозорава ако библиотека треба да буде направљена\n"
-#: ar.c:333
+#: ar.c:335
#, c-format
msgid " [s] - create an archive index (cf. ranlib)\n"
msgstr " [s] – прави Ð¸Ð½Ð´ÐµÐºÑ Ð°Ñ€Ñ…Ð¸Ð²Ðµ (видети „ranlib“)\n"
-#: ar.c:334
+#: ar.c:336
#, c-format
msgid " [l <text> ] - specify the dependencies of this library\n"
msgstr " [l <текÑÑ‚> ] – наводи завиÑноÑти ове библиотеке\n"
-#: ar.c:335
+#: ar.c:337
#, c-format
msgid " [S] - do not build a symbol table\n"
msgstr " [S] – не изграђује табелу Ñимбола\n"
-#: ar.c:336
+#: ar.c:338
#, c-format
msgid " [T] - deprecated, use --thin instead\n"
msgstr " [T] – заÑтарело, кориÑтите --thin умеÑто тога\n"
-#: ar.c:337
+#: ar.c:339
#, c-format
msgid " [v] - be verbose\n"
msgstr " [v] – бива опширан\n"
-#: ar.c:338
+#: ar.c:340
#, c-format
msgid " [V] - display the version number\n"
msgstr " [V] – приказује број издања\n"
-#: ar.c:339
+#: ar.c:341
#, c-format
msgid " @<file> - read options from <file>\n"
msgstr " @<датотека> – чита опције из <датотеке>\n"
-#: ar.c:340
+#: ar.c:342
#, c-format
msgid " --target=BFDNAME - specify the target object format as BFDNAME\n"
msgstr " --target=БФДÐÐЗИВ – наводи Ð·Ð°Ð¿Ð¸Ñ Ð¾Ð±Ñ˜ÐµÐºÑ‚Ð° мете као БФДÐÐЗИВ\n"
-#: ar.c:341
+#: ar.c:343
#, c-format
msgid " --output=DIRNAME - specify the output directory for extraction operations\n"
msgstr " --output=DIRNAME – наводи излазни директоријум за радње извлачења\n"
-#: ar.c:342
+#: ar.c:344
#, c-format
msgid " --record-libdeps=<text> - specify the dependencies of this library\n"
msgstr " --record-libdeps=<текÑÑ‚> – наводи завиÑноÑти ове библиотеке\n"
-#: ar.c:343
+#: ar.c:345
#, c-format
msgid " --thin - make a thin archive\n"
msgstr " --thin – прави лаку архиву\n"
-#: ar.c:345
+#: ar.c:347
#, c-format
msgid " optional:\n"
msgstr " опционално:\n"
-#: ar.c:346
+#: ar.c:348
#, c-format
msgid " --plugin <p> - load the specified plugin\n"
msgstr " -plugin <p> – учитава наведени прикључак\n"
-#: ar.c:367
+#: ar.c:369
#, c-format
msgid "Usage: %s [options] archive\n"
msgstr "Употреба: %s [опције] архива\n"
-#: ar.c:368
+#: ar.c:370
#, c-format
msgid " Generate an index to speed access to archives\n"
msgstr " Створите Ð¸Ð½Ð´ÐµÐºÑ Ð·Ð° убрзање приÑтупа архивама\n"
-#: ar.c:369
+#: ar.c:371
#, c-format
msgid ""
" The options are:\n"
@@ -344,12 +344,12 @@ msgstr ""
" Опције Ñу:\n"
" @<датотека> Чита опције из <датотеке>\n"
-#: ar.c:372
+#: ar.c:374
#, c-format
msgid " --plugin <name> Load the specified plugin\n"
msgstr " --plugin <назив> Учитава наведени прикључак\n"
-#: ar.c:376
+#: ar.c:378
#, c-format
msgid ""
" -D Use zero for symbol map timestamp (default)\n"
@@ -358,7 +358,7 @@ msgstr ""
" -D КориÑти нулу за временÑку онаку мапе Ñимбола (оÑновно)\n"
" -U КориÑти тренутну временÑку ознаку мапе Ñимбола\n"
-#: ar.c:380
+#: ar.c:382
#, c-format
msgid ""
" -D Use zero for symbol map timestamp\n"
@@ -367,7 +367,7 @@ msgstr ""
" -D КориÑти нулу за временÑку онаку мапе Ñимбола\n"
" -U КориÑти тренутну временÑку ознаку мапе Ñимбола (оÑновно)\n"
-#: ar.c:383
+#: ar.c:385
#, c-format
msgid ""
" -t Update the archive's symbol map timestamp\n"
@@ -378,133 +378,133 @@ msgstr ""
" -h --help Приказује ову поруку помоћи\n"
" -V --version ИÑпиÑује податке о издању\n"
-#: ar.c:507
+#: ar.c:509
msgid "two different operation options specified"
msgstr "наведене Ñу две различите опције радње"
-#: ar.c:543
+#: ar.c:545
msgid "libdeps specified more than once"
msgstr "„libdeps“ је наведено више од једном"
-#: ar.c:604 ar.c:679 nm.c:2126
+#: ar.c:606 ar.c:681 nm.c:2140 objcopy.c:4996
#, c-format
msgid "sorry - this program has been built without plugin support\n"
msgstr "извините – овај програм је изграђен без подршке за прикључке\n"
-#: ar.c:806
+#: ar.c:815
msgid "no operation specified"
msgstr "није наведена радња"
-#: ar.c:809
+#: ar.c:818
msgid "`u' is only meaningful with the `r' option."
msgstr "„u“ има ÑмиÑла Ñамо Ñа опцијом „r“."
-#: ar.c:812
+#: ar.c:821
msgid "`u' is not meaningful with the `D' option - replacement will always happen."
msgstr "„u“ нема ÑмиÑла Ñа опцијом „D“ – замена ће Ñе увек деÑити."
-#: ar.c:815
+#: ar.c:824
msgid "`u' modifier ignored since `D' is the default (see `U')"
msgstr "„u“ измењивач је занемарен јер је „D“ оÑновно (видите „U“)"
-#: ar.c:824
+#: ar.c:833
msgid "missing position arg."
msgstr "недоÑтаје аргумент положаја."
-#: ar.c:830
+#: ar.c:839
msgid "`N' is only meaningful with the `x' and `d' options."
msgstr "„N“ има ÑмиÑла Ñамо Ñа опцијама „x“ и „d“."
-#: ar.c:832
+#: ar.c:841
msgid "`N' missing value."
msgstr "„N“ недоÑтајућа вредноÑÑ‚."
-#: ar.c:835
+#: ar.c:844
msgid "Value for `N' must be positive."
msgstr "ВредноÑÑ‚ за „N“ мора бити позитивна."
-#: ar.c:851
+#: ar.c:860
msgid "`x' cannot be used on thin archives."
msgstr "„x“ не може да Ñе кориÑти на лаким архивама."
-#: ar.c:865
+#: ar.c:874
msgid "Cannot create libdeps record."
msgstr "Ðе могу да направим „libdeps“ запиÑ."
-#: ar.c:868
+#: ar.c:877
msgid "Cannot set libdeps record type to binary."
msgstr "Ðе могу да поÑтавим врÑту „libdeps“ запиÑа за извршну."
-#: ar.c:871
+#: ar.c:880
msgid "Cannot set libdeps object format."
msgstr "Ðе могу да поÑтавим формат „libdeps“ објекат."
-#: ar.c:874
+#: ar.c:883
msgid "Cannot make libdeps object writable."
msgstr "Ðе могу да учиним упиÑивим „libdeps“ објекат."
-#: ar.c:877
+#: ar.c:886
msgid "Cannot write libdeps record."
msgstr "Ðе могу да пишем „libdeps“ запиÑ."
-#: ar.c:880
+#: ar.c:889
msgid "Cannot make libdeps object readable."
msgstr "Ðе могу да учиним читљивим „libdeps“ објекат."
-#: ar.c:883
+#: ar.c:892
msgid "Cannot reset libdeps record type."
msgstr "Ðе могу поново да поÑтавим врÑту „libdeps“ запиÑа."
-#: ar.c:955
+#: ar.c:964
#, c-format
msgid "internal error -- this option not implemented"
msgstr "унутрашња грешка –– ова опција није примењена"
-#: ar.c:1026
+#: ar.c:1035
#, c-format
msgid "creating %s"
msgstr "Ñтварам „%s“"
-#: ar.c:1051
+#: ar.c:1060
#, c-format
msgid "Cannot convert existing library %s to thin format"
msgstr "Ðе могу да претворим поÑтојећу библиотеку „%s“ у лаки запиÑ"
-#: ar.c:1057
+#: ar.c:1066
#, c-format
msgid "Cannot convert existing thin library %s to normal format"
msgstr "Ðе могу да претворим лаку библиотеку „%s“ у обичан запиÑ"
-#: ar.c:1088 ar.c:1193 ar.c:1522 objcopy.c:3716
+#: ar.c:1097 ar.c:1202 ar.c:1531 objcopy.c:3742
#, c-format
msgid "internal stat error on %s"
msgstr "унутрашња грешка добављања података над „%s“"
-#: ar.c:1108 ar.c:1220
+#: ar.c:1117 ar.c:1229
#, c-format
msgid "%s is not a valid archive"
msgstr "%s није иÑправна архива"
-#: ar.c:1138
+#: ar.c:1147
#, c-format
msgid "illegal output pathname for archive member: %s, using '%s' instead"
msgstr "неиÑправна путања излаза за члана архиве: %s, кориÑтићу „%s“"
-#: ar.c:1270
+#: ar.c:1279
msgid "could not create temporary file whilst writing archive"
msgstr "не могу да Ñтворим привремену датотеку док пишем архиву"
-#: ar.c:1420
+#: ar.c:1429
#, c-format
msgid "No member named `%s'\n"
msgstr "Ðема члана под називом „%s“\n"
-#: ar.c:1473
+#: ar.c:1482
#, c-format
msgid "no entry %s in archive %s!"
msgstr "нема уноÑа „%s“ у архиви „%s“!"
-#: ar.c:1655
+#: ar.c:1664
#, c-format
msgid "%s: no archive map to update"
msgstr "%s: нема мапе архиве за оÑвежавање"
@@ -640,37 +640,37 @@ msgstr ""
msgid "BFD header file version %s\n"
msgstr "Издање датотеке БФД заглавља „%s“\n"
-#: bucomm.c:461
+#: bucomm.c:462
#, c-format
msgid "<time data corrupt>"
msgstr "<оштећени подаци времена>"
-#: bucomm.c:606
+#: bucomm.c:607
#, c-format
msgid "%s: bad number: %s"
msgstr "%s: лош број: %s"
-#: bucomm.c:626 strings.c:469
+#: bucomm.c:627 strings.c:469
#, c-format
msgid "'%s': No such file"
msgstr "„%s“: Ðема такве датотеке"
-#: bucomm.c:628 strings.c:471
+#: bucomm.c:629 strings.c:471
#, c-format
msgid "Warning: could not locate '%s'. reason: %s"
msgstr "Упозорење : не могу да пронађем „%s“. Разлог: %s"
-#: bucomm.c:632 strings.c:477
+#: bucomm.c:633 strings.c:477
#, c-format
msgid "Warning: '%s' is a directory"
msgstr "Упозорење : „%s“ је директоријум"
-#: bucomm.c:634 bucomm.c:647
+#: bucomm.c:635 bucomm.c:648
#, c-format
msgid "Warning: '%s' is not an ordinary file"
msgstr "Упозорење : „%s“ није обична датотека"
-#: bucomm.c:636
+#: bucomm.c:637
#, c-format
msgid "Warning: '%s' has negative size, probably it is too large"
msgstr "Упозорење : „%s“ има негативну величину, вреоватно је превелика"
@@ -780,7 +780,7 @@ msgstr "СпиÑак Ñимбола"
msgid "Symbol %s, tag %d, number %d"
msgstr "Симбол %s, ознака %d, број %d"
-#: coffdump.c:345 readelf.c:20401 readelf.c:20497
+#: coffdump.c:345 readelf.c:20372 readelf.c:20468
#, c-format
msgid "Type"
msgstr "Ð’Ñ€Ñта"
@@ -999,7 +999,7 @@ msgstr "Ðаиђох на одредницу променљиве без доÑÐ
msgid "%s: is not a COFF format file"
msgstr "%s: није датотека у „COFF“ запиÑу"
-#: cxxfilt.c:124 nm.c:380 objdump.c:465
+#: cxxfilt.c:124 nm.c:388 objdump.c:470
#, c-format
msgid "Report bugs to %s.\n"
msgstr "Грешке пријавите на „%s“.\n"
@@ -1126,16 +1126,16 @@ msgstr "Садржајна грешка у датотеци одреднице â
msgid "%s: Path components stripped from image name, '%s'."
msgstr "%s: СаÑтојци путање Ñу иÑцепљени из назива Ñлике, „%s“."
-#: dlltool.c:1038
+#: dlltool.c:1033
#, c-format
msgid "NAME: %s base: %x"
msgstr "ÐÐЗИВ: %s оÑнова: %x"
-#: dlltool.c:1041 dlltool.c:1062
+#: dlltool.c:1036 dlltool.c:1059
msgid "Can't have LIBRARY and NAME"
msgstr "Ðе могу да имам БИБЛИОТЕКУ и ÐÐЗИВ"
-#: dlltool.c:1059
+#: dlltool.c:1056
#, c-format
msgid "LIBRARY: %s base: %x"
msgstr "БИБЛИОТЕКÐ: %s оÑнова: %x"
@@ -1145,443 +1145,443 @@ msgstr "БИБЛИОТЕКÐ: %s оÑнова: %x"
msgid "VERSION %d.%d\n"
msgstr "ИЗДÐЊЕ %d.%d\n"
-#: dlltool.c:1261
+#: dlltool.c:1259
#, c-format
msgid "run: %s %s"
msgstr "покрени: %s %s"
-#: dlltool.c:1302 resrc.c:289
+#: dlltool.c:1301 resrc.c:289
#, c-format
msgid "wait: %s"
msgstr "чекај: %s"
-#: dlltool.c:1307 dllwrap.c:416 resrc.c:294
+#: dlltool.c:1306 dllwrap.c:416 resrc.c:294
#, c-format
msgid "subprocess got fatal signal %d"
msgstr "Ð¿Ð¾Ñ‚Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ˜Ðµ добио кобни Ñигнал %d"
-#: dlltool.c:1313 dllwrap.c:423 resrc.c:301
+#: dlltool.c:1312 dllwrap.c:423 resrc.c:301
#, c-format
msgid "%s exited with status %d"
msgstr "%s је изашао Ñа Ñтањем %d"
-#: dlltool.c:1344
+#: dlltool.c:1335
#, c-format
msgid "Sucking in info from %s section in %s"
msgstr "ИÑиÑавам податке из %s одељка у %s"
-#: dlltool.c:1486
+#: dlltool.c:1473
#, c-format
msgid "Excluding symbol: %s"
msgstr "Избацујем Ñимбол: %s"
-#: dlltool.c:1575 dlltool.c:1586 nm.c:1410 nm.c:1419
+#: dlltool.c:1562 dlltool.c:1573 nm.c:1424 nm.c:1433
#, c-format
msgid "%s: no symbols"
msgstr "%s: нема Ñимбола"
#. FIXME: we ought to read in and block out the base relocations.
-#: dlltool.c:1612
+#: dlltool.c:1599
#, c-format
msgid "Done reading %s"
msgstr "Завршио Ñам читање „%s“"
-#: dlltool.c:1622
+#: dlltool.c:1609
#, c-format
msgid "Unable to open object file: %s: %s"
msgstr "Ðе могу да отворим датотеку објекта: %s: %s"
-#: dlltool.c:1625
+#: dlltool.c:1612
#, c-format
msgid "Scanning object file %s"
msgstr "Скенирам датотеку објекта „%s“"
-#: dlltool.c:1645
+#: dlltool.c:1632
#, c-format
msgid "Cannot produce mcore-elf dll from archive file: %s"
msgstr "Ðе могу да произведем „dll mcore-elf“ из датотеке архиве: %s"
-#: dlltool.c:1747
+#: dlltool.c:1734
msgid "Adding exports to output file"
msgstr "Додајем извозе у датотеку излаза"
-#: dlltool.c:1799
+#: dlltool.c:1786
msgid "Added exports to output file"
msgstr "Додао Ñам извозе у излазну датотеку"
-#: dlltool.c:1966
+#: dlltool.c:1948
#, c-format
msgid "Generating export file: %s"
msgstr "Стварам датотеку извоза: %s"
-#: dlltool.c:1971
+#: dlltool.c:1953
#, c-format
msgid "Unable to open temporary assembler file: %s"
msgstr "Ðе могу да отворим привремену датотеку аÑемблера: %s"
-#: dlltool.c:1976
+#: dlltool.c:1958
#, c-format
msgid "Opened temporary file: %s"
msgstr "Привремена датотека је отворена: %s"
-#: dlltool.c:2157
+#: dlltool.c:2144
msgid "failed to read the number of entries from base file"
msgstr "ниÑам уÑпео да прочитам број уноÑа из оÑновне датотеке"
-#: dlltool.c:2208
+#: dlltool.c:2196
msgid "Generated exports file"
msgstr "Датотека извоза је Ñтворена"
-#: dlltool.c:2351
+#: dlltool.c:2345
#, c-format
msgid "bfd_open failed open stub file: %s: %s"
msgstr "бфд_отвори није уÑпео да отвори привидну датотеку: %s: %s"
-#: dlltool.c:2355
+#: dlltool.c:2349
#, c-format
msgid "Creating stub file: %s"
msgstr "Правим привидну датотеку: %s"
-#: dlltool.c:2698
+#: dlltool.c:2689
#, c-format
msgid "bfd_open failed reopen stub file: %s: %s"
msgstr "бфд_отвори није уÑпео поново да отвори привидну датотеку: %s: %s"
-#: dlltool.c:2712 dlltool.c:2791
+#: dlltool.c:2703 dlltool.c:2782
#, c-format
msgid "failed to open temporary head file: %s"
msgstr "ниÑам уÑпео да отворим привремену прву датотеку: %s"
-#: dlltool.c:2776 dlltool.c:2866
+#: dlltool.c:2767 dlltool.c:2859
#, c-format
msgid "failed to open temporary head file: %s: %s"
msgstr "ниÑам уÑпео да отворим привремену прву датотеку: %s: %s"
-#: dlltool.c:2881
+#: dlltool.c:2874 dlltool.c:2925
#, c-format
msgid "failed to open temporary tail file: %s"
msgstr "ниÑам уÑпео да отворим привремену поÑледњу датотеку: %s"
-#: dlltool.c:2917
+#: dlltool.c:2910 dlltool.c:2961
#, c-format
msgid "failed to open temporary tail file: %s: %s"
msgstr "ниÑам уÑпео да отворим привремену поÑледњу датотеку: %s: %s"
-#: dlltool.c:2940
+#: dlltool.c:2984
#, c-format
msgid "Can't create .lib file: %s: %s"
msgstr "Ðе могу да направим датотеку „.lib“: %s: %s"
-#: dlltool.c:2944
+#: dlltool.c:2988
#, c-format
msgid "Creating library file: %s"
msgstr "Правим датотеку библиотеке: %s"
-#: dlltool.c:3028 dlltool.c:3034
+#: dlltool.c:3073 dlltool.c:3079
#, c-format
msgid "cannot delete %s: %s"
msgstr "не могу да обришем „%s“: %s"
-#: dlltool.c:3039
+#: dlltool.c:3084
msgid "Created lib file"
msgstr "Ðаправљена је библ датотека"
-#: dlltool.c:3245
+#: dlltool.c:3290
#, c-format
msgid "Can't open .lib file: %s: %s"
msgstr "Ðе могу да отворим датотеку „.lib“: %s: %s"
-#: dlltool.c:3253 dlltool.c:3275
+#: dlltool.c:3298 dlltool.c:3320
#, c-format
msgid "%s is not a library"
msgstr "%s није библиотека"
-#: dlltool.c:3293
+#: dlltool.c:3338
#, c-format
msgid "Import library `%s' specifies two or more dlls"
msgstr "Библиотека увоза „%s“ наводи два или више ДЛЛ-а"
-#: dlltool.c:3304
+#: dlltool.c:3349
#, c-format
msgid "Unable to determine dll name for `%s' (not an import library?)"
msgstr "Ðе могу да одредим длл назив за „%s“ (није библиотека увоза?)"
-#: dlltool.c:3521
+#: dlltool.c:3566
#, c-format
msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
msgstr "Упозорење, занемарујем двоÑтруко ИЗВОЗ %s %d,%d"
-#: dlltool.c:3527
+#: dlltool.c:3572
#, c-format
msgid "Error, duplicate EXPORT with ordinals: %s"
msgstr "Грешка двоÑтруки ИЗВОЗ Ñа редним бројевима: %s"
-#: dlltool.c:3632
+#: dlltool.c:3677
msgid "Processing definitions"
msgstr "Обрађујем одреднице"
-#: dlltool.c:3664
+#: dlltool.c:3710
msgid "Processed definitions"
msgstr "Обрађене одреднице"
#. xgetext:c-format
-#: dlltool.c:3671 dllwrap.c:477
+#: dlltool.c:3717 dllwrap.c:477
#, c-format
msgid "Usage %s <option(s)> <object-file(s)>\n"
msgstr "Употреба %s <опције> <датотека-објкета>\n"
#. xgetext:c-format
-#: dlltool.c:3673
+#: dlltool.c:3719
#, c-format
msgid " -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
msgstr " -m --machine <машина> Прави као ДЛЛ за <машину>. [оÑновно је: %s]\n"
-#: dlltool.c:3674
+#: dlltool.c:3720
#, c-format
msgid " possible <machine>: arm[_interwork], arm64, i386, mcore[-elf]{-le|-be}, thumb\n"
msgstr " могућа <машина>: arm[_interwork], arm64, i386, mcore[-elf]{-le|-be}, thumb\n"
-#: dlltool.c:3675
+#: dlltool.c:3721
#, c-format
msgid " -e --output-exp <outname> Generate an export file.\n"
msgstr " -e --output-exp <назив-излаза> Ствара датотеку извоза.\n"
-#: dlltool.c:3676
+#: dlltool.c:3722
#, c-format
msgid " -l --output-lib <outname> Generate an interface library.\n"
msgstr " -l --output-lib <назив-излаза> Ствара библиотеку Ñучеља.\n"
-#: dlltool.c:3677
+#: dlltool.c:3723
#, c-format
msgid " -y --output-delaylib <outname> Create a delay-import library.\n"
msgstr " -y --output-delaylib <назив-излаза> Ствара библиотеку кашњења-увоза.\n"
-#: dlltool.c:3678
+#: dlltool.c:3724
#, c-format
msgid " --deterministic-libraries\n"
msgstr " --deterministic-libraries\n"
-#: dlltool.c:3680
+#: dlltool.c:3726
#, c-format
msgid " Use zero for timestamps and uids/gids in output libraries (default)\n"
msgstr " КориÑти нулу за временÑке ознаке и уид-е/гид-е у излазним библиотекама (оÑновно)\n"
-#: dlltool.c:3682
+#: dlltool.c:3728
#, c-format
msgid " Use zero for timestamps and uids/gids in output libraries\n"
msgstr " КориÑти нулу за временÑке ознаке и уид-е/гид-е у излазним библиотекама\n"
-#: dlltool.c:3683
+#: dlltool.c:3729
#, c-format
msgid " --non-deterministic-libraries\n"
msgstr " --non-deterministic-libraries\n"
-#: dlltool.c:3685
+#: dlltool.c:3731
#, c-format
msgid " Use actual timestamps and uids/gids in output libraries\n"
msgstr " КориÑти Ñтварне временÑке ознаке и уид-е/гид-е у излазним библиотекама\n"
-#: dlltool.c:3687
+#: dlltool.c:3733
#, c-format
msgid " Use actual timestamps and uids/gids in output libraries (default)\n"
msgstr " КориÑти Ñтварне временÑке ознаке и уид-е/гид-е у излазним библиотекама (оÑновно)\n"
-#: dlltool.c:3688
+#: dlltool.c:3734
#, c-format
msgid " -a --add-indirect Add dll indirects to export file.\n"
msgstr " -a --add-indirect Додаје „длл“ поÑредно у датотеку извоза.\n"
-#: dlltool.c:3689
+#: dlltool.c:3735
#, c-format
msgid " -D --dllname <name> Name of input dll to put into interface lib.\n"
msgstr " -D --dllname <назив> Ðазив улазне длл за Ñтављање у библиотеку Ñучеља.\n"
-#: dlltool.c:3690
+#: dlltool.c:3736
#, c-format
msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
msgstr " -d --input-def <дефотека> Ðазив „.def“ датотеке за читање.\n"
-#: dlltool.c:3691
+#: dlltool.c:3737
#, c-format
msgid " -z --output-def <deffile> Name of .def file to be created.\n"
msgstr " -z --output-def <дефотека> Ðазив „.def“ датотеке за Ñтварање.\n"
-#: dlltool.c:3692
+#: dlltool.c:3738
#, c-format
msgid " --export-all-symbols Export all symbols to .def\n"
msgstr " --export-all-symbols Извози Ñве Ñимболе у „.def“\n"
-#: dlltool.c:3693
+#: dlltool.c:3739
#, c-format
msgid " --no-export-all-symbols Only export listed symbols\n"
msgstr " --no-export-all-symbols Извози Ñамо иÑпиÑане Ñимболе\n"
-#: dlltool.c:3694
+#: dlltool.c:3740
#, c-format
msgid " --exclude-symbols <list> Don't export <list>\n"
msgstr " --exclude-symbols <ÑпиÑак> Ðе извози <ÑпиÑак>\n"
-#: dlltool.c:3695
+#: dlltool.c:3741
#, c-format
msgid " --no-default-excludes Clear default exclude symbols\n"
msgstr " --no-default-excludes ЧиÑти оÑновне Ñимболе иÑкључивања\n"
-#: dlltool.c:3696
+#: dlltool.c:3742
#, c-format
msgid " -b --base-file <basefile> Read linker generated base file.\n"
msgstr " -b --base-file <fichier_base> Чита датотеку оÑнове Ñтворену Ñвезивачем.\n"
-#: dlltool.c:3697
+#: dlltool.c:3743
#, c-format
msgid " -x --no-idata4 Don't generate idata$4 section.\n"
msgstr " -x --no-idata4 Ðе прави одељак „idata$4“.\n"
-#: dlltool.c:3698
+#: dlltool.c:3744
#, c-format
msgid " -c --no-idata5 Don't generate idata$5 section.\n"
msgstr " -c --no-idata5 Ðе прави одељак „idata$5“.\n"
-#: dlltool.c:3699
+#: dlltool.c:3745
#, c-format
msgid " --use-nul-prefixed-import-tables Use zero prefixed idata$4 and idata$5.\n"
msgstr " --use-nul-prefixed-import-tables КориÑти „idata$4“ и „idata$5“ Ñа префикÑом нуле.\n"
-#: dlltool.c:3700
+#: dlltool.c:3746
#, c-format
msgid " -U --add-underscore Add underscores to all symbols in interface library.\n"
msgstr " -U --add-underscore Додаје подвлаке Ñвим Ñимболима у библиотеци Ñучеља.\n"
-#: dlltool.c:3701
+#: dlltool.c:3747
#, c-format
msgid " --add-stdcall-underscore Add underscores to stdcall symbols in interface library.\n"
msgstr " --add-stdcall-underscore Додаје подвлаке Ñимболима Ñтандардног позива у библиотеци Ñучеља.\n"
-#: dlltool.c:3702
+#: dlltool.c:3748
#, c-format
msgid " --no-leading-underscore All symbols shouldn't be prefixed by an underscore.\n"
msgstr " --no-leading-underscore Сви Ñимболи не требају имати подвлаку као префикÑ.\n"
-#: dlltool.c:3703
+#: dlltool.c:3749
#, c-format
msgid " --leading-underscore All symbols should be prefixed by an underscore.\n"
msgstr " --leading-underscore Сви Ñимболи требају имати подвлаку као префикÑ.\n"
-#: dlltool.c:3704
+#: dlltool.c:3750
#, c-format
msgid " -k --kill-at Kill @<n> from exported names.\n"
msgstr " -k --kill-at Убија @<n> из извезених назива.\n"
-#: dlltool.c:3705
+#: dlltool.c:3751
#, c-format
msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
msgstr " -A --add-stdcall-alias Додаје пÑеудониме без @<n>.\n"
-#: dlltool.c:3706
+#: dlltool.c:3752
#, c-format
msgid " -p --ext-prefix-alias <prefix> Add aliases with <prefix>.\n"
msgstr " -p --axd-prefix-alias <префикÑ> Додаје пÑеудониме Ñа <префикÑом>.\n"
-#: dlltool.c:3707
+#: dlltool.c:3753
#, c-format
msgid " -S --as <name> Use <name> for assembler.\n"
msgstr " -S --as <назив> КориÑти <назив> за аÑемблера.\n"
-#: dlltool.c:3708
+#: dlltool.c:3754
#, c-format
msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
msgstr " -f --as-flags <опције> ПроÑлеђује <опције> у аÑемблер.\n"
-#: dlltool.c:3709
+#: dlltool.c:3755
#, c-format
msgid " -C --compat-implib Create backward compatible import library.\n"
msgstr " -C --compat-implib Ствара повратно ÑаглаÑну библиотеку увоза.\n"
-#: dlltool.c:3710
+#: dlltool.c:3756
#, c-format
msgid " -n --no-delete Keep temp files (repeat for extra preservation).\n"
msgstr " -n --no-delete Задржава привремене датотеке (понавља зарад додатнпог очувања).\n"
-#: dlltool.c:3711
+#: dlltool.c:3757
#, c-format
msgid " -t --temp-prefix <prefix> Use <prefix> to construct temp file names.\n"
msgstr " -t --temp-prefix <префикÑ> КориÑти <префикÑ> да изгради називе привремених датотека.\n"
-#: dlltool.c:3712
+#: dlltool.c:3758
#, c-format
msgid " -I --identify <implib> Report the name of the DLL associated with <implib>.\n"
msgstr " -I --identify <библувз> Даје назив ДЛЛ-а придруженог <библувз>-а.\n"
-#: dlltool.c:3713
+#: dlltool.c:3759
#, c-format
msgid " --identify-strict Causes --identify to report error when multiple DLLs.\n"
msgstr " --identify-strict Доводи до тога да „--identify“ да грешку када има више ДЛЛ-а.\n"
-#: dlltool.c:3714
+#: dlltool.c:3760
#, c-format
msgid " -v --verbose Be verbose.\n"
msgstr " -v --verbose Бива опширан.\n"
-#: dlltool.c:3715
+#: dlltool.c:3761
#, c-format
msgid " -V --version Display the program version.\n"
msgstr " -V --version Приказује издање програма.\n"
-#: dlltool.c:3716
+#: dlltool.c:3762
#, c-format
msgid " -h --help Display this information.\n"
msgstr " -h --help Приказује ове податке.\n"
-#: dlltool.c:3717
+#: dlltool.c:3763
#, c-format
msgid " @<file> Read options from <file>.\n"
msgstr " @<датотека> Чита опције из <датотеке>.\n"
-#: dlltool.c:3719
+#: dlltool.c:3765
#, c-format
msgid " -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
msgstr " -M --mcore-elf <излзназив> Обрађује „mcore-elf“ датотеке предмета у <излзназив>.\n"
-#: dlltool.c:3720
+#: dlltool.c:3766
#, c-format
msgid " -L --linker <name> Use <name> as the linker.\n"
msgstr " -L --linker <назив> КориÑти <назив> као Ñвезивача.\n"
-#: dlltool.c:3721
+#: dlltool.c:3767
#, c-format
msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
msgstr " -F --linker-flags <опције> ПроÑлеђује <опције> до Ñвезивача.\n"
-#: dlltool.c:3871
+#: dlltool.c:3917
#, c-format
msgid "Unable to open def-file: %s"
msgstr "Ðе могу да отворим датотеку одреднице: %s"
-#: dlltool.c:3876
+#: dlltool.c:3922
#, c-format
msgid "Path components stripped from dllname, '%s'."
msgstr "СаÑтојци путање Ñу иÑцепљени из дллназива, „%s“."
-#: dlltool.c:3924
+#: dlltool.c:3970
#, c-format
msgid "Unable to open base-file: %s"
msgstr "Ðе могу да отворим оÑновну датотеку: %s"
-#: dlltool.c:3962
+#: dlltool.c:4008
#, c-format
msgid "Machine '%s' not supported"
msgstr "Machine „%s“ није подржана"
-#: dlltool.c:4063
+#: dlltool.c:4108
#, c-format
msgid "Warning, machine type (%d) not supported for delayimport."
msgstr "Упозорење, врÑта машине (%d) није подржана за кашњење-увоза."
-#: dlltool.c:4131 dllwrap.c:206
+#: dlltool.c:4176 dllwrap.c:206
#, c-format
msgid "Tried file: %s"
msgstr "Покушах датотеку: %s"
-#: dlltool.c:4138 dllwrap.c:213
+#: dlltool.c:4183 dllwrap.c:213
#, c-format
msgid "Using file: %s"
msgstr "КориÑтим датотеку: %s"
@@ -1848,20 +1848,20 @@ msgstr "Ðазив УПРÐВЉÐЧР: %s\n"
msgid "DRIVER options : %s\n"
msgstr "Опције УПРÐВЉÐЧÐ: %s\n"
-#: dwarf.c:187
+#: dwarf.c:189
msgid "Encoded value extends past end of section\n"
msgstr "Кодирана вредноÑÑ‚ прелази крај одељка\n"
-#: dwarf.c:195
+#: dwarf.c:197
#, c-format
msgid "Encoded size of %d is too large to read\n"
msgstr "Кодирана величина %d је превелика за читање\n"
-#: dwarf.c:203
+#: dwarf.c:205
msgid "Encoded size of 0 is too small to read\n"
msgstr "Кодирана величина 0 је премала за читање\n"
-#: dwarf.c:263 readelf.c:3943 readelf.c:12059
+#: dwarf.c:265 readelf.c:3946 readelf.c:12072
msgid "unknown"
msgstr "непознато"
@@ -1873,7 +1873,7 @@ msgstr "непознато"
#. This macro cannot protect against PTR values derived from user input.
#. The C standard sections 6.5.6 and 6.5.8 say attempts to do so using
#. pointers is undefined behaviour.
-#: dwarf.c:342
+#: dwarf.c:344
#, c-format
msgid "internal error: attempt to read %d byte of data in to %d sized variable"
msgid_plural "internal error: attempt to read %d bytes of data in to %d sized variable"
@@ -1881,16 +1881,16 @@ msgstr[0] "унутрашња грешка: покушах да прочитам
msgstr[1] "унутрашња грешка: покушах да прочитам %d бајта података у променљивој величине %d"
msgstr[2] "унутрашња грешка: покушах да прочитам %d бајтова података у променљивој величине %d"
-#: dwarf.c:430 dwarf.c:5574
+#: dwarf.c:432 dwarf.c:5574
msgid "Badly formed extended line op encountered!\n"
msgstr "Дошло је до лоше обликованог проширеноиг оп реда!\n"
-#: dwarf.c:436
+#: dwarf.c:438
#, c-format
msgid " Extended opcode %d: "
msgstr " Проширени опкод %d: "
-#: dwarf.c:441
+#: dwarf.c:443
#, c-format
msgid ""
"End of Sequence\n"
@@ -1899,36 +1899,36 @@ msgstr ""
"Крај низа\n"
"\n"
-#: dwarf.c:449
+#: dwarf.c:451
#, c-format
msgid "Length (%zu) of DW_LNE_set_address op is too long\n"
msgstr "Дужина (%zu) оп „DW_LNE_set_address“ је предуга\n"
-#: dwarf.c:455
+#: dwarf.c:457
#, c-format
msgid "set Address to %#<PRIx64>\n"
msgstr "подешава адреÑу на %#<PRIx64>\n"
-#: dwarf.c:462
+#: dwarf.c:464
#, c-format
msgid "define new File Table entry\n"
msgstr "одређује нови ÑƒÐ½Ð¾Ñ Ñ‚Ð°Ð±ÐµÐ»Ðµ датотека\n"
-#: dwarf.c:463 dwarf.c:4847
+#: dwarf.c:465 dwarf.c:4847
#, c-format
msgid " Entry\tDir\tTime\tSize\tName\n"
msgstr " Улазни дир\tВреме\tВеличина\tÐазив\n"
-#: dwarf.c:484
+#: dwarf.c:486
msgid "DW_LNE_define_file: Bad opcode length\n"
msgstr "DW_LNE_define_file: Лоша дужина опкода\n"
-#: dwarf.c:489
+#: dwarf.c:491
#, c-format
msgid "set Discriminator to %<PRIu64>\n"
msgstr "подешава разабирача на %<PRIu64>\n"
-#: dwarf.c:555
+#: dwarf.c:557
#, c-format
msgid " UNKNOWN DW_LNE_HP_SFC opcode (%u)\n"
msgstr " ÐЕПОЗÐÐТ „DW_LNE_HP_SFC“ опкод (%u)\n"
@@ -1937,510 +1937,510 @@ msgstr " ÐЕПОЗÐÐТ „DW_LNE_HP_SFC“ опкод (%u)\n"
#. the limited range of the unsigned char data type used
#. for op_code.
#. && op_code <= DW_LNE_hi_user
-#: dwarf.c:572
+#: dwarf.c:574
#, c-format
msgid "user defined: "
msgstr "кориÑник је одредио: "
-#: dwarf.c:574
+#: dwarf.c:576
#, c-format
msgid "UNKNOWN: "
msgstr "ÐЕПОЗÐÐТО: "
-#: dwarf.c:575
+#: dwarf.c:577
#, c-format
msgid "length %d ["
msgstr "дужина %d ["
-#: dwarf.c:593 dwarf.c:661
+#: dwarf.c:595 dwarf.c:663
msgid "<no .debug_str section>"
msgstr "<нема одељка „.debug_str“>"
-#: dwarf.c:597
+#: dwarf.c:599
#, c-format
msgid "DW_FORM_strp offset too big: %#<PRIx64>\n"
msgstr "померај „DW_FORM_strp“ је превелик: %#<PRIx64>\n"
-#: dwarf.c:598 dwarf.c:625 dwarf.c:1796
+#: dwarf.c:600 dwarf.c:627 dwarf.c:1798
msgid "<offset is too big>"
msgstr "<померај је превелик>"
-#: dwarf.c:608
+#: dwarf.c:610
msgid "<no NUL byte at end of .debug_str section>"
msgstr "<нема NUL бајта на крају одељка „.debug_str“>"
-#: dwarf.c:620
+#: dwarf.c:622
msgid "<no .debug_line_str section>"
msgstr "<нема одељка „.debug_line_str“>"
-#: dwarf.c:624
+#: dwarf.c:626
#, c-format
msgid "DW_FORM_line_strp offset too big: %#<PRIx64>\n"
msgstr "померај „DW_FORM_line_strp“ је превелик: %#<PRIx64>\n"
-#: dwarf.c:635
+#: dwarf.c:637
msgid "<no NUL byte at end of .debug_line_str section>"
msgstr "<нема NUL бајта на крају одељка „.debug_line_str“>"
-#: dwarf.c:656
+#: dwarf.c:658
msgid "<no .debug_str_offsets.dwo section>"
msgstr "<нема одељка „.debug_str_offsets.dwo“>"
-#: dwarf.c:657
+#: dwarf.c:659
msgid "<no .debug_str_offsets section>"
msgstr "<нема одељка „.debug_str_offsets“>"
-#: dwarf.c:660
+#: dwarf.c:662
msgid "<no .debug_str.dwo section>"
msgstr "<нема одељка „.debug_str.dwo“>"
-#: dwarf.c:671
+#: dwarf.c:673
#, c-format
msgid "string index of %<PRIu64> converts to an offset of %#<PRIx64> which is too big for section %s\n"
msgstr "Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð¸Ñке %#<PRIu64> претвара Ñе у померај %#<PRIx64> који је превелик за одељак „%s“\n"
-#: dwarf.c:675
+#: dwarf.c:677
msgid "<string index too big>"
msgstr "<Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð¸Ñке је превелик>"
-#: dwarf.c:682
+#: dwarf.c:684
#, c-format
msgid "indirect offset too big: %#<PRIx64>\n"
msgstr "поÑредни померај је превелик: %#<PRIx64>\n"
-#: dwarf.c:683
+#: dwarf.c:685
msgid "<indirect index offset is too big>"
msgstr "<померај поÑредног индекÑа је превелик>"
-#: dwarf.c:693
+#: dwarf.c:695
msgid "<no NUL byte at end of section>"
msgstr "<нема NUL бајта на крају одељка>"
-#: dwarf.c:705
+#: dwarf.c:707
msgid "Cannot fetch indexed address: the .debug_addr section is missing\n"
msgstr "Ðе могу да довучем индекÑирану адреÑу: недоÑтаје „.debug_addr“ одељак\n"
-#: dwarf.c:711
+#: dwarf.c:713
#, c-format
msgid "Offset into section %s too big: %#<PRIx64>\n"
msgstr "Померај у одељку „%s“ је превелик: %#<PRIx64>\n"
-#: dwarf.c:739
+#: dwarf.c:741
#, c-format
msgid "Unable to locate %s section\n"
msgstr "Ðе могу да пронађем одељак „%s“\n"
-#: dwarf.c:745
+#: dwarf.c:747
#, c-format
msgid "Section %s is too small to contain an value indexed from another section!\n"
msgstr "Одељак „%s“ је премали да Ñадржи вредноÑÑ‚ индекÑирану из другог одељка!\n"
-#: dwarf.c:752
+#: dwarf.c:754
#, c-format
msgid "Offset of %#<PRIx64> is too big for section %s\n"
msgstr "Померај %#<PRIx64> је превелик за одељак „%s“\n"
#. Report the missing single zero which ends the section.
-#: dwarf.c:1027
+#: dwarf.c:1029
#, c-format
msgid "%s section not zero terminated\n"
msgstr "Одељак „%s“ није окончан нулом\n"
#. PR 17531: file:4bcd9ce9.
-#: dwarf.c:1054
+#: dwarf.c:1056
#, c-format
msgid "Debug info is corrupted, abbrev size (%#<PRIx64>) is larger than abbrev section size (%#<PRIx64>)\n"
msgstr "Подаци прочишћавања Ñу оштећени, величина Ñкраћења (%#<PRIx64>) је већи од величине одељка Ñкраћења (%#<PRIx64>)\n"
-#: dwarf.c:1061
+#: dwarf.c:1063
#, c-format
msgid "Debug info is corrupted, abbrev offset (%#<PRIx64>) is larger than abbrev section size (%#<PRIx64>)\n"
msgstr "Подаци прочишћавања Ñу оштећени, померај Ñкраћења (%#<PRIx64>) је већи од величине одељка Ñкраћења (%#<PRIx64>)\n"
-#: dwarf.c:1094
+#: dwarf.c:1096
#, c-format
msgid "User TAG value: %#<PRIx64>"
msgstr "ВредноÑÑ‚ кориÑничке ОЗÐÐКЕ: %#<PRIx64>"
-#: dwarf.c:1097
+#: dwarf.c:1099
#, c-format
msgid "Unknown TAG value: %#<PRIx64>"
msgstr "Ðепозната вредноÑÑ‚ ОЗÐÐКЕ: %#<PRIx64>"
-#: dwarf.c:1118
+#: dwarf.c:1120
#, c-format
msgid "Unknown FORM value: %lx"
msgstr "Ðепозната вредноÑÑ‚ ОБЛИКÐ: %lx"
-#: dwarf.c:1136
+#: dwarf.c:1138
#, c-format
msgid "Unknown IDX value: %lx"
msgstr "Ðепозната вредноÑÑ‚ ИÐДЕКСÐ: %lx"
-#: dwarf.c:1150
+#: dwarf.c:1152
#, c-format
msgid "%c%<PRIu64> byte block: "
msgstr "%c%<PRIu64> бајта блок: "
-#: dwarf.c:1487
+#: dwarf.c:1489
#, c-format
msgid "(DW_OP_call_ref in frame info)"
msgstr "(„DW_OP_call_ref“ у подацима оквира)"
-#: dwarf.c:1510
+#: dwarf.c:1512
#, c-format
msgid "size: %<PRIu64> "
msgstr "величина: %<PRIu64> "
-#: dwarf.c:1512
+#: dwarf.c:1514
#, c-format
msgid "offset: %<PRIu64> "
msgstr "померај: %<PRIu64> "
-#: dwarf.c:1528
+#: dwarf.c:1530
#, c-format
msgid "DW_OP_GNU_push_tls_address or DW_OP_HP_unknown"
msgstr "„DW_OP_GNU_push_tls_address“ или „DW_OP_HP_unknown“"
-#: dwarf.c:1553
+#: dwarf.c:1555
#, c-format
msgid "(%s in frame info)"
msgstr "(„%s“ у подацима оквира)"
-#: dwarf.c:1656
+#: dwarf.c:1658
#, c-format
msgid "(DW_OP_GNU_variable_value in frame info)"
msgstr "(„DW_OP_GNU_variable_value“ у подацима оквира)"
-#: dwarf.c:1709
+#: dwarf.c:1711
#, c-format
msgid "(User defined location op %#x)"
msgstr "(Оп меÑта који је одредио кориÑник %#x)"
-#: dwarf.c:1711
+#: dwarf.c:1713
#, c-format
msgid "(Unknown location op %#x)"
msgstr "(Ðепознат оп меÑта %#x)"
-#: dwarf.c:1765
+#: dwarf.c:1767
msgid "<no links available>"
msgstr "<нема доÑтупних веза>"
-#: dwarf.c:1789
+#: dwarf.c:1791
msgid "<no NUL byte at end of alt .debug_str section>"
msgstr "<нема NUL бајта на крају одељка „alt .debug_str“>"
-#: dwarf.c:1794
+#: dwarf.c:1796
#, c-format
msgid "DW_FORM_GNU_strp_alt offset (%#<PRIx64>) too big or no string sections available\n"
msgstr "Померај „DW_FORM_GNU_strp_alt“ (%#<PRIx64>) је превелик или није доÑтупна ниједна ниÑка одељака\n"
-#: dwarf.c:1817
+#: dwarf.c:1819
#, c-format
msgid "Unknown AT value: %lx"
msgstr "Ðепозната ÐТ вредноÑÑ‚: %lx"
-#: dwarf.c:1883
+#: dwarf.c:1885
#, c-format
msgid "Corrupt attribute block length: %#<PRIx64>\n"
msgstr "Оштећена дужина блока атрибута: %#<PRIx64>\n"
-#: dwarf.c:2055
+#: dwarf.c:2057
#, c-format
msgid "Unable to resolve ref_addr form: uvalue %<PRIx64> >= section size %<PRIx64> (%s)\n"
msgstr "Ðе могу да решим „ref_addr“ образац: uvalue %<PRIx64> >= величина одељка %<PRIx64> (%s)\n"
-#: dwarf.c:2074
+#: dwarf.c:2076
#, c-format
msgid "Unable to resolve ref form: uvalue %<PRIx64> + cu_offset %<PRIx64> > CU size %tx\n"
msgstr "Ðе могу да решим образац: uvalue %<PRIx64> + cu_offset %<PRIx64> > CU величине %tx\n"
-#: dwarf.c:2085
+#: dwarf.c:2087
#, c-format
msgid "Unexpected form %lx encountered whilst finding abbreviation for type\n"
msgstr "Ðађох неочекивани образац %lx док Ñам тражио Ñкраћеницу за врÑту\n"
-#: dwarf.c:2093
+#: dwarf.c:2095
#, c-format
msgid "Unable to find abbreviations for CU offset %<PRIx64>\n"
msgstr "Ðе могу да нађем Ñкраћенице за померај процеÑора %<PRIx64>\n"
-#: dwarf.c:2099
+#: dwarf.c:2101
#, c-format
msgid "Empty abbreviation list encountered for CU offset %<PRIx64>\n"
msgstr "Ðаиђох на празан ÑпиÑак Ñкраћеница за померај процеÑора %<PRIx64>\n"
-#: dwarf.c:2131
+#: dwarf.c:2133
#, c-format
msgid "Unable to find entry for abbreviation %lu\n"
msgstr "Ðе могу да нађем ÑƒÐ½Ð¾Ñ Ð·Ð° Ñкраћеницу %lu\n"
-#: dwarf.c:2285
+#: dwarf.c:2287
msgid "corrupt discr_list - not using a block form\n"
msgstr "оштећен је „discr_list“ – не кориÑтим облик блока\n"
-#: dwarf.c:2292
+#: dwarf.c:2294
msgid "corrupt discr_list - block not long enough\n"
msgstr "оштећен „discr_list“ – блок није довољно дуг\n"
-#: dwarf.c:2327
+#: dwarf.c:2329
#, c-format
msgid "corrupt discr_list - unrecognized discriminant byte %#x\n"
msgstr "оштећен „discr_list“ – непознат диÑкриминантни бајт %#x\n"
-#: dwarf.c:2426
+#: dwarf.c:2428
#, c-format
msgid "implementation defined: %#<PRIx64>"
msgstr "дефиниÑана примена: %#<PRIx64>"
-#: dwarf.c:2428
+#: dwarf.c:2430
#, c-format
msgid "unknown: %#<PRIx64>"
msgstr "непознато: %#<PRIx64>"
-#: dwarf.c:2459
+#: dwarf.c:2461
msgid "Corrupt attribute\n"
msgstr "Оштећен атрибут\n"
-#: dwarf.c:2482
+#: dwarf.c:2484
msgid "Internal error: DW_FORM_ref_addr is not supported in DWARF version 1.\n"
msgstr "Унутрашња грешка: „DW_FORM_ref_addr“ није подржано у „DWARF“-у издања 1.\n"
-#: dwarf.c:2676
+#: dwarf.c:2678
msgid "Block ends prematurely\n"
msgstr "Блок је прерано завршио\n"
#. We have already displayed the form name.
-#: dwarf.c:2711 dwarf.c:2724 dwarf.c:2748
+#: dwarf.c:2713 dwarf.c:2726 dwarf.c:2750
#, c-format
msgid "%c(offset: %#<PRIx64>): %s"
msgstr "%c(померај: %#<PRIx64>): %s"
-#: dwarf.c:2714
+#: dwarf.c:2716
#, c-format
msgid "%c(indirect string, offset: %#<PRIx64>): %s"
msgstr "%c(поÑредна ниÑка, померај: %#<PRIx64>): %s"
-#: dwarf.c:2727
+#: dwarf.c:2729
#, c-format
msgid "%c(indirect line string, offset: %#<PRIx64>): %s"
msgstr "%c(поÑредна ниÑка реда, померај: %#<PRIx64>): %s"
-#: dwarf.c:2751
+#: dwarf.c:2753
#, c-format
msgid "%c(indexed string: %#<PRIx64>): %s"
msgstr "%c(индекÑирана ниÑка: %#<PRIx64>): %s"
#. We have already displayed the form name.
-#: dwarf.c:2761
+#: dwarf.c:2763
#, c-format
msgid "%c(offset: %#<PRIx64>) %s"
msgstr "%c(померај: %#<PRIx64>) %s"
-#: dwarf.c:2764
+#: dwarf.c:2766
#, c-format
msgid "%c(alt indirect string, offset: %#<PRIx64>) %s"
msgstr "%c(поÑредна ниÑка алт, померај: %#<PRIx64>) %s"
-#: dwarf.c:2823
+#: dwarf.c:2825
#, c-format
msgid "loc_offset %<PRIu64> too big\n"
msgstr "„loc_offset“ %<PRIu64> је превелико\n"
-#: dwarf.c:2853
+#: dwarf.c:2855
#, c-format
msgid "%c(index: %#<PRIx64>): %#<PRIx64>"
msgstr "%c(индекÑ: %#<PRIx64>): %#<PRIx64>"
-#: dwarf.c:2864
+#: dwarf.c:2866
#, c-format
msgid "Unrecognized form: %#lx\n"
msgstr "Ðепознат облик: %#lx\n"
-#: dwarf.c:2878
+#: dwarf.c:2880
#, c-format
msgid "CU @ %#<PRIx64> has multiple loclists_base values (%#<PRIx64> and %#<PRIx64>)\n"
msgstr "CU @ %#<PRIx64> имаше негативну вредноÑÑ‚ „loclists_base“ (%#<PRIx64> и %#<PRIx64>)\n"
-#: dwarf.c:2885
+#: dwarf.c:2887
#, c-format
msgid "CU @ %#<PRIx64> has has a negative loclists_base value of %#<PRIx64> - treating as zero\n"
msgstr "CU @ %#<PRIx64> имаше негативну вредноÑÑ‚ „loclists_base“ од %#<PRIx64> – Ñматрам то нулом\n"
-#: dwarf.c:2899
+#: dwarf.c:2901
#, c-format
msgid "CU @ %#<PRIx64> has multiple str_offsets_base values %#<PRIx64> and %#<PRIx64>)\n"
msgstr "CU @ %#<PRIx64> има неколико вредноÑти „str_offsets_base“ (%#<PRIx64> и %#<PRIx64>)\n"
-#: dwarf.c:2906
+#: dwarf.c:2908
#, c-format
msgid "CU @ %#<PRIx64> has has a negative stroffsets_base value of %#<PRIx64> - treating as zero\n"
msgstr "CU @ %#<PRIx64> имаше негативну вредноÑÑ‚ „stroffsets_base“ од %#<PRIx64> – Ñматрам то нулом\n"
-#: dwarf.c:2974
+#: dwarf.c:2976
msgid "More location offset attributes than DW_AT_GNU_locview attributes\n"
msgstr "Има више атрибута помераја меÑта него „DW_AT_GNU_locview“ атрибута\n"
-#: dwarf.c:2985
+#: dwarf.c:2987
#, c-format
msgid "The number of views (%u) is greater than the number of locations (%u)\n"
msgstr "Померај „GOT“ Ñимбола (%u) је већи од броја меÑта (%u)\n"
-#: dwarf.c:2992
+#: dwarf.c:2994
msgid "More DW_AT_GNU_locview attributes than location offset attributes\n"
msgstr "Има више „DW_AT_GNU_locview“ атрибута него атрибута помераја меÑта\n"
-#: dwarf.c:3081 dwarf.c:3115 dwarf.c:3130
+#: dwarf.c:3083 dwarf.c:3117 dwarf.c:3132
#, c-format
msgid "Unsupported form (%s) for attribute %s\n"
msgstr "Ðеподржан облик (%s) за атрибут „%s“\n"
-#: dwarf.c:3177
+#: dwarf.c:3179
#, c-format
msgid "(not inlined)"
msgstr "(није надовезано)"
-#: dwarf.c:3180
+#: dwarf.c:3182
#, c-format
msgid "(inlined)"
msgstr "(надовезано)"
-#: dwarf.c:3183
+#: dwarf.c:3185
#, c-format
msgid "(declared as inline but ignored)"
msgstr "(објављено као надовезујуће али занемарено)"
-#: dwarf.c:3186
+#: dwarf.c:3188
#, c-format
msgid "(declared as inline and inlined)"
msgstr "(објављено као надовезујуће и надовезано)"
-#: dwarf.c:3189
+#: dwarf.c:3191
#, c-format
msgid " (Unknown inline attribute value: %#<PRIx64>)"
msgstr " (Ðепозната вредноÑÑ‚ оÑобине надовезујућег: %#<PRIx64>)"
-#: dwarf.c:3241
+#: dwarf.c:3243
#, c-format
msgid "(user defined type)"
msgstr "(кориÑник је одредио врÑту)"
-#: dwarf.c:3243
+#: dwarf.c:3245
#, c-format
msgid "(unknown type)"
msgstr "(непозната врÑта)"
-#: dwarf.c:3256
+#: dwarf.c:3258
#, c-format
msgid "(unknown accessibility)"
msgstr "(непозната приÑтупачноÑÑ‚)"
-#: dwarf.c:3268
+#: dwarf.c:3270
#, c-format
msgid "(unknown visibility)"
msgstr "(непозната видљивоÑÑ‚)"
-#: dwarf.c:3281
+#: dwarf.c:3283
#, c-format
msgid "(user specified)"
msgstr "(кориÑник је навео)"
-#: dwarf.c:3283
+#: dwarf.c:3285
#, c-format
msgid "(unknown endianity)"
msgstr "(непозната крајноÑÑ‚)"
-#: dwarf.c:3295
+#: dwarf.c:3297
#, c-format
msgid "(unknown virtuality)"
msgstr "(непозната виртуалноÑÑ‚)"
-#: dwarf.c:3307
+#: dwarf.c:3309
#, c-format
msgid "(unknown case)"
msgstr "(непозната величина Ñлова)"
-#: dwarf.c:3325
+#: dwarf.c:3327
#, c-format
msgid "(user defined)"
msgstr "(кориÑник је одредио)"
-#: dwarf.c:3327
+#: dwarf.c:3329
#, c-format
msgid "(unknown convention)"
msgstr "(непознат одоговор)"
-#: dwarf.c:3336
+#: dwarf.c:3338
#, c-format
msgid "(undefined)"
msgstr "(неодређено)"
-#: dwarf.c:3346
+#: dwarf.c:3348
#, c-format
msgid "(unsigned)"
msgstr "(неозначено)"
-#: dwarf.c:3347
+#: dwarf.c:3349
#, c-format
msgid "(leading overpunch)"
msgstr "(водеће пребушавање)"
-#: dwarf.c:3348
+#: dwarf.c:3350
#, c-format
msgid "(trailing overpunch)"
msgstr "(пратеће пребушавање)"
-#: dwarf.c:3349
+#: dwarf.c:3351
#, c-format
msgid "(leading separate)"
msgstr "(водећи раздвојник)"
-#: dwarf.c:3350
+#: dwarf.c:3352
#, c-format
msgid "(trailing separate)"
msgstr "(пратећи раздвојник)"
-#: dwarf.c:3351 dwarf.c:3362
+#: dwarf.c:3353 dwarf.c:3364
#, c-format
msgid "(unrecognised)"
msgstr "(непрепознато)"
-#: dwarf.c:3359
+#: dwarf.c:3361
#, c-format
msgid "(no)"
msgstr "(не)"
-#: dwarf.c:3360
+#: dwarf.c:3362
#, c-format
msgid "(in class)"
msgstr "(у клаÑи)"
-#: dwarf.c:3361
+#: dwarf.c:3363
#, c-format
msgid "(out of class)"
msgstr "(ван клаÑе)"
-#: dwarf.c:3400
+#: dwarf.c:3402
#, c-format
msgid " (location list)"
msgstr " (ÑпиÑак меÑта)"
-#: dwarf.c:3423 dwarf.c:6830 dwarf.c:7032 dwarf.c:7207
+#: dwarf.c:3425 dwarf.c:6830 dwarf.c:7032 dwarf.c:7207
#, c-format
msgid " [without DW_AT_frame_base]"
msgstr " [без „DW_AT_frame_base“]"
-#: dwarf.c:3453
+#: dwarf.c:3455
#, c-format
msgid "Offset %#<PRIx64> used as value for DW_AT_import attribute of DIE at offset %#tx is too big.\n"
msgstr "Померај %#<PRIx64> коришћен као вредноÑÑ‚ за DW_AT_import атрибут DIE-а на померају %#tx је превелик.\n"
-#: dwarf.c:3459
+#: dwarf.c:3461
#, c-format
msgid "\t[Abbrev Number: %ld"
msgstr "\t[Број Ñкраћенице: %ld"
-#: dwarf.c:3554
+#: dwarf.c:3556
#, c-format
msgid ""
"Raw dump of debug contents of section %s (loaded from %s):\n"
@@ -2449,7 +2449,7 @@ msgstr ""
"Сирови избачај Ñадржаја прочишћавања одељка %s (учитано из %s):\n"
"\n"
-#: dwarf.c:3557
+#: dwarf.c:3559
#, c-format
msgid ""
"Raw dump of debug contents of section %s:\n"
@@ -2458,7 +2458,7 @@ msgstr ""
"Сирови избачај Ñадржаја прочишћавања одељка %s:\n"
"\n"
-#: dwarf.c:3562
+#: dwarf.c:3564
#, c-format
msgid ""
"Contents of the %s section (loaded from %s):\n"
@@ -2467,7 +2467,7 @@ msgstr ""
"Садржај одељка %s (учитано из %s):\n"
"\n"
-#: dwarf.c:3565
+#: dwarf.c:3567
#, c-format
msgid ""
"Contents of the %s section:\n"
@@ -2476,29 +2476,29 @@ msgstr ""
"Садржај одељка %s:\n"
"\n"
-#: dwarf.c:3692
+#: dwarf.c:3694
msgid "Unexpected form in top DIE\n"
msgstr "Ðеочекиван облик у горњем DIE\n"
-#: dwarf.c:3727
+#: dwarf.c:3729
msgid "Unexpected form of DW_AT_rnglists_base in the top DIE\n"
msgstr "Ðеочекиван облик „DW_AT_rnglists_base“ у горњрм DIE\n"
-#: dwarf.c:3738
+#: dwarf.c:3740
msgid "Unexpected form of DW_AT_addr_base in the top DIE\n"
msgstr "Ðеочекиван облик „DW_AT_addr_base“ у горњем DIE\n"
-#: dwarf.c:3785
+#: dwarf.c:3787
#, c-format
msgid "Reserved length value (%#<PRIx64>) found in section %s\n"
msgstr "РезервиÑана вредноÑÑ‚ дужине (%#<PRIx64>) је пронађена у одељку %s\n"
-#: dwarf.c:3795
+#: dwarf.c:3797
#, c-format
msgid "Corrupt unit length (got %#<PRIx64> expected at most %#tx) in section %s\n"
msgstr "Оштећена дужина јединице (добих %#<PRIx64>, очекивах барем %#tx) у одељку %s\n"
-#: dwarf.c:3805
+#: dwarf.c:3807
#, c-format
msgid "No comp units in %s section ?\n"
msgstr "Ðема јединица поређења у одељку %s ?\n"
@@ -2645,7 +2645,7 @@ msgstr "Поље дужине (%#<PRIx64>) у заглављу „ред_проÑ
msgid "Only DWARF version 2, 3, 4 and 5 line info is currently supported.\n"
msgstr "Само „DWARF“ издање 2, 3, 4 и 5 податка реда је тренутно подржано.\n"
-#: dwarf.c:4469 dwarf.c:7370 dwarf.c:8308
+#: dwarf.c:4469 dwarf.c:7370 dwarf.c:8349
#, c-format
msgid "The %s section contains unsupported segment selector size: %d.\n"
msgstr "Одељак „%s“ Ñадржи неподржану величину бирача одељка: %d.\n"
@@ -3092,9 +3092,9 @@ msgstr "ЦУ: Ðема табеле директоријума\n"
msgid "CU: %s:\n"
msgstr "ЦУ: %s:\n"
-#: dwarf.c:5482 dwarf.c:5814 readelf.c:7978 readelf.c:8074 readelf.c:8091
-#: readelf.c:8108 readelf.c:8921 readelf.c:13160 readelf.c:13822
-#: readelf.c:13835 readelf.c:19485 readelf.c:19517
+#: dwarf.c:5482 dwarf.c:5814 readelf.c:7990 readelf.c:8086 readelf.c:8103
+#: readelf.c:8120 readelf.c:8934 readelf.c:13173 readelf.c:13835
+#: readelf.c:13848 readelf.c:19456 readelf.c:19488
msgid "<unknown>"
msgstr "<непознато>"
@@ -3103,11 +3103,11 @@ msgstr "<непознато>"
msgid "directory index %u >= number of directories %u\n"
msgstr "Ð¸Ð½Ð´ÐµÐºÑ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ˜ÑƒÐ¼Ð° %u >= броју директоријума %u\n"
-#: dwarf.c:5492 dwarf.c:5808 elfcomm.c:776 readelf.c:980 readelf.c:9099
-#: readelf.c:9712 readelf.c:11738 readelf.c:14129 readelf.c:14195
-#: readelf.c:14199 readelf.c:14313 readelf.c:18214 readelf.c:18304
-#: readelf.c:18897 readelf.c:18916 readelf.c:19035 readelf.c:19494
-#: readelf.c:20657 readelf.c:20660
+#: dwarf.c:5492 dwarf.c:5808 elfcomm.c:776 readelf.c:980 readelf.c:9112
+#: readelf.c:9725 readelf.c:11751 readelf.c:14142 readelf.c:14208
+#: readelf.c:14212 readelf.c:14326 readelf.c:18196 readelf.c:18286
+#: readelf.c:18879 readelf.c:18898 readelf.c:19017 readelf.c:19465
+#: readelf.c:20628 readelf.c:20631
#, c-format
msgid "<corrupt>"
msgstr "<оштећено>"
@@ -3220,7 +3220,7 @@ msgstr "некоришћено7"
msgid "Debug info is corrupted, %s header at %#lx has length %#<PRIx64>\n"
msgstr "Подаци прочишћавања Ñу оштећени, „%s“ заглавље на %#lx је дужине %#<PRIx64>\n"
-#: dwarf.c:6036 dwarf.c:7738
+#: dwarf.c:6036 dwarf.c:7777
#, c-format
msgid ".debug_info offset of %#<PRIx64> in %s section does not point to a CU header.\n"
msgstr "Померај „.debug_info“ од %#<PRIx64> у одељку %s не указује на CU заглавље.\n"
@@ -3472,12 +3472,12 @@ msgstr "ÐеиÑправна величина показивача (%d) у поÐ
msgid "Location list starting at offset %#<PRIx64> is not terminated.\n"
msgstr "СпиÑак меÑта који почиње на померају %#<PRIx64> није окончан.\n"
-#: dwarf.c:6772 dwarf.c:6919 dwarf.c:7149 dwarf.c:8109 dwarf.c:8168
+#: dwarf.c:6772 dwarf.c:6919 dwarf.c:7149 dwarf.c:8148 dwarf.c:8209
#, c-format
msgid "<End of list>\n"
msgstr "<Крај ÑпиÑка>\n"
-#: dwarf.c:6784 dwarf.c:6929 dwarf.c:6964 dwarf.c:8177 dwarf.c:8201
+#: dwarf.c:6784 dwarf.c:6929 dwarf.c:6964 dwarf.c:8218 dwarf.c:8242
#, c-format
msgid "(base address)\n"
msgstr "(адреÑа оÑнове)\n"
@@ -3491,11 +3491,11 @@ msgstr ""
"прегледи на %8.8<PRIx64> за:\n"
" %*s "
-#: dwarf.c:6833 dwarf.c:7035 dwarf.c:8128 dwarf.c:8234
+#: dwarf.c:6833 dwarf.c:7035 dwarf.c:8167 dwarf.c:8275
msgid " (start == end)"
msgstr " (почетак == крај)"
-#: dwarf.c:6835 dwarf.c:7037 dwarf.c:8130 dwarf.c:8236
+#: dwarf.c:6835 dwarf.c:7037 dwarf.c:8169 dwarf.c:8277
msgid " (start > end)"
msgstr " (почетак > крај)"
@@ -3544,27 +3544,27 @@ msgstr "Ðепозната врÑта уноÑа ÑпиÑка меÑта 0x%x.\n
msgid "Table at Offset %#<PRIx64>\n"
msgstr "Табела на померају %#<PRIx64>\n"
-#: dwarf.c:7276 dwarf.c:8299
+#: dwarf.c:7276 dwarf.c:8340
#, c-format
msgid " Length: %#<PRIx64>\n"
msgstr " Дужина: %#<PRIx64>\n"
-#: dwarf.c:7277 dwarf.c:8300
+#: dwarf.c:7277 dwarf.c:8341
#, c-format
msgid " DWARF version: %u\n"
msgstr " DWARF издање: %u\n"
-#: dwarf.c:7278 dwarf.c:8301
+#: dwarf.c:7278 dwarf.c:8342
#, c-format
msgid " Address size: %u\n"
msgstr " Величина адреÑе: %u\n"
-#: dwarf.c:7279 dwarf.c:8302
+#: dwarf.c:7279 dwarf.c:8343
#, c-format
msgid " Segment size: %u\n"
msgstr " Величина подеока: %u\n"
-#: dwarf.c:7280 dwarf.c:8303
+#: dwarf.c:7280 dwarf.c:8344
#, c-format
msgid " Offset entries: %u\n"
msgstr " УноÑи помераја: %u\n"
@@ -3583,12 +3583,12 @@ msgstr ""
"\n"
" УноÑи помераја почињу на %#tx:\n"
-#: dwarf.c:7300 dwarf.c:8330
+#: dwarf.c:7300 dwarf.c:8371
#, c-format
msgid " [%6u] %#<PRIx64>\n"
msgstr " [%6u] %#<PRIx64>\n"
-#: dwarf.c:7339 dwarf.c:7619 dwarf.c:7836 dwarf.c:7960 dwarf.c:8368
+#: dwarf.c:7339 dwarf.c:7627 dwarf.c:7875 dwarf.c:7999 dwarf.c:8410
#, c-format
msgid ""
"\n"
@@ -3602,16 +3602,16 @@ msgstr ""
msgid "The %s section contains corrupt or unsupported version number: %d.\n"
msgstr "Одељак %s Ñадржи оштећени или неподржани број издања: %d.\n"
-#: dwarf.c:7386 dwarf.c:7842 dwarf.c:8376
+#: dwarf.c:7386 dwarf.c:7881 dwarf.c:8418
#, c-format
msgid "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"
msgstr "Ðе могу да учитам/обрадим одељак „.debug_info“, тако да не могу да раÑтумачим одељак %s.\n"
-#: dwarf.c:7434
+#: dwarf.c:7433
msgid "No location lists in .debug_info section!\n"
msgstr "Ðема ÑпиÑкова меÑта у одељку „.debug_info“!\n"
-#: dwarf.c:7442
+#: dwarf.c:7441
#, c-format
msgid ""
" Warning: This section has relocations - addresses seen here may not be accurate.\n"
@@ -3620,40 +3620,40 @@ msgstr ""
" Упозорење: Овај одељак има премештања – адреÑе овде виђене могу бити нетачне.\n"
"\n"
-#: dwarf.c:7445 dwarf.c:7494
+#: dwarf.c:7444 dwarf.c:7502
#, c-format
msgid " Offset Begin End Expression\n"
msgstr " Померај Почетак Крај Израз\n"
-#: dwarf.c:7533 dwarf.c:7537
+#: dwarf.c:7541 dwarf.c:7545
#, c-format
msgid "There is a hole [%#tx - %#<PRIx64>] in %s section.\n"
msgstr "ПоÑтоји рупа [%#tx – %#<PRIx64>] у одељку „%s.\n"
-#: dwarf.c:7542
+#: dwarf.c:7550
#, c-format
msgid "There is an overlap [%#tx - %#<PRIx64>] in %s section.\n"
msgstr "ПоÑтоји преклапање [%#tx – %#<PRIx64>] у одељку „%s“.\n"
-#: dwarf.c:7550
+#: dwarf.c:7558
#, c-format
msgid "Offset %#<PRIx64> is bigger than %s section size.\n"
msgstr "Померај %#<PRIx64> је већи од величине одељка „%s“.\n"
-#: dwarf.c:7557
+#: dwarf.c:7565
#, c-format
msgid "View Offset %#<PRIx64> is bigger than %s section size.\n"
msgstr "Померај прегледа %#<PRIx64> је већи од величине одељка „%s“.\n"
-#: dwarf.c:7574
+#: dwarf.c:7582
msgid "DWO is not yet supported.\n"
msgstr "„DWO“ још није подржано.\n"
-#: dwarf.c:7591
+#: dwarf.c:7599
msgid "Hole and overlap detection requires adjacent view lists and loclists.\n"
msgstr "Откривање рупа и преклапања захтева ÑуÑедне ÑпиÑкове прегледа и ÑпиÑкове меÑта.\n"
-#: dwarf.c:7600
+#: dwarf.c:7608
#, c-format
msgid "There is %ld unused byte at the end of section %s\n"
msgid_plural "There are %ld unused bytes at the end of section %s\n"
@@ -3661,50 +3661,64 @@ msgstr[0] "ПоÑтоји %ld некоришћени бајт на крају о
msgstr[1] "ПоÑтоје %ld некоришћена бајта на крају одељка %s\n"
msgstr[2] "ПоÑтоји %ld некоришћених бајтова на крају одељка %s\n"
-#: dwarf.c:7724
+#: dwarf.c:7703
+msgid "Section name must be provided \n"
+msgstr "Ðазив одељка мора бити доÑтављен \n"
+
+#: dwarf.c:7711
+#, c-format
+msgid "SFrame decode failure: %s\n"
+msgstr "Декодирање „SFrame“-а није уÑпело: %s\n"
+
+#: dwarf.c:7715
+#, c-format
+msgid "Contents of the SFrame section %s:"
+msgstr "Садржај одељка „SFrame“ „%s“:"
+
+#: dwarf.c:7763
#, c-format
msgid "Debug info is corrupted, %s header at %#<PRIx64> has length %#<PRIx64>\n"
msgstr "Подаци прочишћавања Ñу оштећени, „%s“ заглавље на %#<PRIx64> је дужине %#<PRIx64>\n"
-#: dwarf.c:7752
+#: dwarf.c:7791
msgid "Only DWARF 2 and 3 aranges are currently supported.\n"
msgstr "Само ДВÐРФ 2 и 3 ређања Ñу тренутно подржана.\n"
-#: dwarf.c:7756
+#: dwarf.c:7795
#, c-format
msgid " Length: %<PRId64>\n"
msgstr " Дужина: %<PRId64>\n"
-#: dwarf.c:7757
+#: dwarf.c:7796
#, c-format
msgid " Version: %d\n"
msgstr " Издање: %d\n"
-#: dwarf.c:7758
+#: dwarf.c:7797
#, c-format
msgid " Offset into .debug_info: %#<PRIx64>\n"
msgstr " Померај у „.debug_info“: %#<PRIx64>\n"
-#: dwarf.c:7760
+#: dwarf.c:7799
#, c-format
msgid " Pointer Size: %d\n"
msgstr " Величина показивача: %d\n"
-#: dwarf.c:7761
+#: dwarf.c:7800
#, c-format
msgid " Segment Size: %d\n"
msgstr " Величина подеока: %d\n"
-#: dwarf.c:7768
+#: dwarf.c:7807
#, c-format
msgid "Invalid address size in %s section!\n"
msgstr "ÐеиÑправна величина адреÑе у одељку %s!\n"
-#: dwarf.c:7778
+#: dwarf.c:7817
msgid "Pointer size + Segment size is not a power of two.\n"
msgstr "Величина показивача + величина подеока није Ñтепен двојке.\n"
-#: dwarf.c:7783
+#: dwarf.c:7822
#, c-format
msgid ""
"\n"
@@ -3713,7 +3727,7 @@ msgstr ""
"\n"
" ÐдреÑа Дужина\n"
-#: dwarf.c:7785
+#: dwarf.c:7824
#, c-format
msgid ""
"\n"
@@ -3722,106 +3736,106 @@ msgstr ""
"\n"
" ÐдреÑа Дужина\n"
-#: dwarf.c:7862
+#: dwarf.c:7901
#, c-format
msgid "Corrupt address base (%#<PRIx64>) found in debug section %u\n"
msgstr "Оштећена оÑнова адреÑе (%#<PRIx64>) је пронађена у одељку прочишћавања %u\n"
-#: dwarf.c:7880
+#: dwarf.c:7919
#, c-format
msgid " For compilation unit at offset %#<PRIx64>:\n"
msgstr " За јединицу превођења на померају %#<PRIx64>:\n"
-#: dwarf.c:7883
+#: dwarf.c:7922
#, c-format
msgid "\tIndex\tAddress\n"
msgstr "\tПопиÑ\tÐдреÑа\n"
-#: dwarf.c:7895
+#: dwarf.c:7934
#, c-format
msgid "Corrupt %s section: expecting header size of 8 or 16, but found %zd instead\n"
msgstr "Оштећени одељак „%s“: очекујући величину заглавља 8 или 16, али нађох %zd\n"
-#: dwarf.c:7906
+#: dwarf.c:7945
#, c-format
msgid "Corrupt %s section: unit_length field of %#<PRIx64> is invalid\n"
msgstr "Оштећен одељак „%s“: поље „unit_length“ од %#<PRIx64> је нетачно\n"
-#: dwarf.c:7913
+#: dwarf.c:7952
#, c-format
msgid "Corrupt %s section: expecting version number 5 in header but found %d instead\n"
msgstr "Оштећени одељак „%s“: очекујући број издања 5 у заглављу, али нађох %d\n"
-#: dwarf.c:7928
+#: dwarf.c:7967
#, c-format
msgid "Corrupt %s section: address size (%x) is wrong\n"
msgstr "Оштећени „%s“ одељак: величина адреÑе (%x) је погрешна\n"
-#: dwarf.c:7936
+#: dwarf.c:7975
#, c-format
msgid "\t%d:\t"
msgstr "\t%d:\t"
-#: dwarf.c:8008 dwarf.c:8032
+#: dwarf.c:8047 dwarf.c:8071
#, c-format
msgid " Length: %#<PRIx64>\n"
msgstr " Дужина: %#<PRIx64>\n"
-#: dwarf.c:8009 dwarf.c:8034
+#: dwarf.c:8048 dwarf.c:8073
#, c-format
msgid " Index Offset [String]\n"
msgstr " Ð˜Ð½Ð´ÐµÐºÑ ÐŸÐ¾Ð¼ÐµÑ€Ð°Ñ˜ [ÐиÑка]\n"
-#: dwarf.c:8017
+#: dwarf.c:8056
#, c-format
msgid "Section %s is too small %#<PRIx64>\n"
msgstr "Одељак „%s“ је премали за %#<PRIx64>\n"
-#: dwarf.c:8025
+#: dwarf.c:8064
#, c-format
msgid "Unexpected version number in str_offset header: %#x\n"
msgstr "Ðеочекивани број издања у заглављу помераја ниÑке: %#x\n"
-#: dwarf.c:8030
+#: dwarf.c:8069
#, c-format
msgid "Unexpected value in str_offset header's padding field: %#x\n"
msgstr "Ðеочекивана вредноÑÑ‚ у пољу попуне заглавља помераја ниÑке: %#x\n"
-#: dwarf.c:8033
+#: dwarf.c:8072
#, c-format
msgid " Version: %#x\n"
msgstr " Издање: %#x\n"
-#: dwarf.c:8155
+#: dwarf.c:8196
#, c-format
msgid "Range list starting at offset %#<PRIx64> is not terminated.\n"
msgstr "СпиÑак опÑега који почиње на померају %#<PRIx64> није окончан.\n"
-#: dwarf.c:8173
+#: dwarf.c:8214
#, c-format
msgid "(base address index) "
msgstr "(Ð¸Ð½Ð´ÐµÐºÑ Ð°Ð´Ñ€ÐµÑа оÑнове) "
-#: dwarf.c:8213
+#: dwarf.c:8254
#, c-format
msgid "Invalid range list entry type %d\n"
msgstr "ÐеиÑправна врÑта уноÑа ÑпиÑка опÑега %d\n"
-#: dwarf.c:8281
+#: dwarf.c:8322
#, c-format
msgid "The length field (%#<PRIx64>) in the debug_rnglists header is wrong - the section is too small\n"
msgstr "Поље дужине (%#<PRIx64>) у заглављу „ÑпиÑковиопÑега_прочишћавања“ је погрешно – одељак је премали\n"
-#: dwarf.c:8298
+#: dwarf.c:8339
#, c-format
msgid " Table at Offset: %#<PRIx64>:\n"
msgstr " Табела на померају: %#<PRIx64>:\n"
-#: dwarf.c:8316
+#: dwarf.c:8357
msgid "Only DWARF version 5+ debug_rnglists info is currently supported.\n"
msgstr "Само DWARF издање 5+ ÑпиÑкова_опÑега_прочишћавања је тренутно подржано.\n"
-#: dwarf.c:8323
+#: dwarf.c:8364
#, c-format
msgid ""
"\n"
@@ -3832,253 +3846,248 @@ msgstr ""
#. This can happen when the file was compiled with -gsplit-debug
#. which removes references to range lists from the primary .o file.
-#: dwarf.c:8390
+#: dwarf.c:8432
#, c-format
msgid "No range lists referenced by .debug_info section.\n"
msgstr "Ðема упутних ÑпиÑкова опÑега у одељку „.debug_info“.\n"
-#: dwarf.c:8419
-#, c-format
-msgid "Range lists in %s section start at %#<PRIx64>\n"
-msgstr "СпиÑкови опÑега у одељку %s почињу на %#<PRIx64>\n"
-
-#: dwarf.c:8424 dwarf.c:8459
+#: dwarf.c:8462 dwarf.c:8498
#, c-format
msgid " Offset Begin End\n"
msgstr " Померај Почетак Крај\n"
-#: dwarf.c:8442
+#: dwarf.c:8481
#, c-format
msgid "Corrupt pointer size (%d) in debug entry at offset %#<PRIx64>\n"
msgstr "Оштећена величина показивача (%d) у уноÑу прочишћавања на померају %#<PRIx64>\n"
-#: dwarf.c:8449
+#: dwarf.c:8488
#, c-format
msgid "Corrupt offset (%#<PRIx64>) in range entry %u\n"
msgstr "Оштећен померај (%#<PRIx64>) у уноÑу опÑега %u\n"
-#: dwarf.c:8476
+#: dwarf.c:8523
#, c-format
msgid "There is a hole [%#tx - %#tx] in %s section.\n"
msgstr "ПоÑтоји рупа [%#tx – %#tx] у одељку „%s.\n"
-#: dwarf.c:8482
+#: dwarf.c:8531
#, c-format
msgid "There is an overlap [%#tx - %#tx] in %s section.\n"
msgstr "ПоÑтоји преклапање [%#tx – %#tx] у одељку „%s“.\n"
-#: dwarf.c:8567
+#: dwarf.c:8621
#, c-format
msgid "Unfeasibly large register number: %u\n"
msgstr "ÐеоÑтвариво велики број региÑтра: %u\n"
-#: dwarf.c:8581
+#: dwarf.c:8635
#, c-format
msgid "Out of memory allocating %u columns in dwarf frame arrays\n"
msgstr "Ðема више меморије за додељивање %u Ñтупца у низовима „dwarf“ оквира\n"
-#: dwarf.c:9077
+#: dwarf.c:9147
msgid "No terminator for augmentation name\n"
msgstr "Ðема окончивача за назив повећања\n"
-#: dwarf.c:9095
+#: dwarf.c:9165
#, c-format
msgid "Invalid pointer size (%d) in CIE data\n"
msgstr "ÐеиÑправна величина показивача (%d) у „CIE“ подацима\n"
-#: dwarf.c:9103
+#: dwarf.c:9173
#, c-format
msgid "Invalid segment size (%d) in CIE data\n"
msgstr "ÐеиÑправна величина подеока (%d) у „CIE“ подацима\n"
-#: dwarf.c:9139 dwarf.c:9770
+#: dwarf.c:9209 dwarf.c:9839
#, c-format
msgid "Augmentation data too long: %#<PRIx64>, expected at most %#tx\n"
msgstr "Подаци повећања Ñу предуги: %#<PRIx64>, очекивах највише %#tx\n"
-#: dwarf.c:9224
+#: dwarf.c:9294
#, c-format
msgid " Augmentation data: "
msgstr " Подаци повећања: "
-#: dwarf.c:9382
+#: dwarf.c:9451
msgid ".eh_frame_hdr section is too small\n"
msgstr "Одељак „.eh_frame_hdr“ опција је премали.\n"
-#: dwarf.c:9389
+#: dwarf.c:9458
#, c-format
msgid "Unsupported .eh_frame_hdr version %u\n"
msgstr "Ðеподржано „.eh_frame_hdr“ издање %u\n"
-#: dwarf.c:9393 dwarf.c:11324
+#: dwarf.c:9462 dwarf.c:11394
#, c-format
msgid " Version: %u\n"
msgstr " Издање: %u\n"
#. Strictly speaking this is the encoding format of the eh_frame_ptr field below.
-#: dwarf.c:9397
+#: dwarf.c:9466
#, c-format
msgid " Pointer Encoding Format: %#x (%s)\n"
msgstr " Формат кодирања показивача: %#x (%s)\n"
-#: dwarf.c:9400
+#: dwarf.c:9469
#, c-format
msgid " Count Encoding Format: %#x (%s)\n"
msgstr " Формат кодирања бројања: %#x (%s)\n"
-#: dwarf.c:9403
+#: dwarf.c:9472
#, c-format
msgid " Table Encoding Format: %#x (%s)\n"
msgstr " Формат кодирања табеле: %#x (%s)\n"
-#: dwarf.c:9412
+#: dwarf.c:9481
msgid "unable to read eh_frame_ptr field in .eh_frame_hdr section\n"
msgstr "не могу да прочитам поље „eh_frame_ptr“ у одељку „.eh_frame_hdr“\n"
-#: dwarf.c:9415
+#: dwarf.c:9484
#, c-format
msgid " Start of frame section: %#<PRIx64>"
msgstr " Почетак одељка оквира: %#<PRIx64>"
-#: dwarf.c:9419
+#: dwarf.c:9488
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr " (помераај: %#<PRIx64>)"
-#: dwarf.c:9426
+#: dwarf.c:9495
msgid "It is suspicious to have a .eh_frame_hdr section with an empty search table\n"
msgstr "Сумњиво је имати „.eh_frame_hdr“ одељак Ñа празном табелом претраге\n"
-#: dwarf.c:9432
+#: dwarf.c:9501
msgid "The count field format should be absolute, not relative to an address\n"
msgstr "Формат поља укупноÑти треба бити апÑолутан а не релативан на адреÑу\n"
-#: dwarf.c:9439
+#: dwarf.c:9508
msgid "unable to read fde_count field in .eh_frame_hdr section\n"
msgstr "не могу да прочитам поље „fde_count“ у одељку „.eh_frame_hdr“\n"
-#: dwarf.c:9442
+#: dwarf.c:9511
#, c-format
msgid " Entries in search table: %#<PRIx64>"
msgstr " УноÑи у табели претраге: %#<PRIx64>"
-#: dwarf.c:9448
+#: dwarf.c:9517
msgid "It is suspicious to have a .eh_frame_hdr section an empty table but a non empty count field\n"
msgstr "Сумњиво је да „.eh_frame_hdr“ одељак има празну табелу али не и празно поље укупноÑти\n"
-#: dwarf.c:9462
+#: dwarf.c:9531
#, c-format
msgid "Failed to read location field for entry %#<PRIx64> in the .eh_frame_hdr's search table\n"
msgstr "ÐиÑам уÑпео да прочитам поље меÑта за ÑƒÐ½Ð¾Ñ %#<PRIx64> у „.eh_frame_hdr“ табели претраге\n"
-#: dwarf.c:9470
+#: dwarf.c:9539
#, c-format
msgid "Failed to read address field for entry %#<PRIx64> in the .eh_frame_hdr's search table\n"
msgstr "ÐиÑам упео да прочитам поље адреÑе за ÑƒÐ½Ð¾Ñ %#<PRIx64> у „.eh_frame_hdr“ табели претраге\n"
-#: dwarf.c:9499
+#: dwarf.c:9568
msgid "bad register: "
msgstr "лош региÑтар: "
-#: dwarf.c:9670
+#: dwarf.c:9739
msgid "Failed to read CIE information\n"
msgstr "ÐиÑам уÑпео да прочитам „CIE“ податке\n"
-#: dwarf.c:9681 dwarf.c:9702 dwarf.c:9731
+#: dwarf.c:9750 dwarf.c:9771 dwarf.c:9800
msgid "Invalid max register\n"
msgstr "ÐеиÑправан највећи региÑтар\n"
#. PR 17512: file: 9e196b3e.
-#: dwarf.c:9746
+#: dwarf.c:9815
#, c-format
msgid "Probably corrupt segment size: %d - using 4 instead\n"
msgstr "Вероватно је оштећена величина подеока: %d – кориÑтићу 4\n"
#. Ideally translate "invalid " to 8 chars, trailing space
#. is optional.
-#: dwarf.c:9790
+#: dwarf.c:9859
#, c-format
msgid "cie=invalid "
msgstr "cie=нетачно "
-#: dwarf.c:10224
+#: dwarf.c:10293
msgid "Invalid column number in saved frame state\n"
msgstr "ÐеиÑправан број Ñтупца у Ñачуваном Ñтању оквира\n"
-#: dwarf.c:10274 dwarf.c:10298
+#: dwarf.c:10343 dwarf.c:10367
#, c-format
msgid " %s: <corrupt len %<PRIu64>>\n"
msgstr " %s: <оштећена дужина %<PRIu64>>\n"
-#: dwarf.c:10447
+#: dwarf.c:10516
#, c-format
msgid " DW_CFA_??? (User defined call frame op: %#x)\n"
msgstr " DW_CFA_??? (Оп кадра позива који је одредио кориÑник: %#x)\n"
-#: dwarf.c:10449
+#: dwarf.c:10518
#, c-format
msgid "Unsupported or unknown Dwarf Call Frame Instruction number: %#x\n"
msgstr "Ðеподржан или непознат број инÑтрукције „Dwarf Call Frame“: %#x\n"
-#: dwarf.c:10553
+#: dwarf.c:10622
#, c-format
msgid "Debug info is corrupted, %s header at %#tx has length %#<PRIx64>\n"
msgstr "Подаци прочишћавања Ñу оштећени, „%s“ заглавље на %#tx је дужине %#<PRIx64>\n"
-#: dwarf.c:10562
+#: dwarf.c:10631
#, c-format
msgid "Version %d\n"
msgstr "Издање %d\n"
-#: dwarf.c:10568
+#: dwarf.c:10637
msgid "Only DWARF version 5 .debug_names is currently supported.\n"
msgstr "Само „DWARF“ издање 5 „.назива_прочишћавања“ је тренутно подржано.\n"
-#: dwarf.c:10575
+#: dwarf.c:10644
#, c-format
msgid "Padding field of .debug_names must be 0 (found 0x%x)\n"
msgstr "Поље попуњавања за „.debug_names“ мора бити 0 (нађох 0x%x)\n"
-#: dwarf.c:10580
+#: dwarf.c:10649
msgid "Compilation unit count must be >= 1 in .debug_names\n"
msgstr "Број јединица иÑпуњавања мора бити >= 1 у „.debug_names“\n"
-#: dwarf.c:10591
+#: dwarf.c:10660
#, c-format
msgid "Augmentation string length %u must be rounded up to a multiple of 4 in .debug_names.\n"
msgstr "Дужина ниÑке повећања %u мора бити заокружена на производ 4 у „.debug_names“.\n"
-#: dwarf.c:10599
+#: dwarf.c:10668
#, c-format
msgid "Augmentation string:"
msgstr "ÐиÑка повећања:"
-#: dwarf.c:10626
+#: dwarf.c:10695
#, c-format
msgid "CU table:\n"
msgstr "ЦУ табела:\n"
-#: dwarf.c:10639
+#: dwarf.c:10708
#, c-format
msgid "TU table:\n"
msgstr "ТУ табела:\n"
-#: dwarf.c:10652
+#: dwarf.c:10721
#, c-format
msgid "Foreign TU table:\n"
msgstr "Страна ТУ табела:\n"
-#: dwarf.c:10661
+#: dwarf.c:10730
#, c-format
msgid "[%3u] "
msgstr "[%3u] "
-#: dwarf.c:10672
+#: dwarf.c:10741
#, c-format
msgid "Entry pool offset (%#<PRIx64>) exceeds unit size %#tx for unit %#tx in the debug_names\n"
msgstr "Померај уноÑа припреме (%#<PRIx64>) превазилази величину јединице %#tx за јединицу %#tx у називима_прочишћавања\n"
-#: dwarf.c:10700
+#: dwarf.c:10769
#, c-format
msgid "Used %zu of %lu bucket.\n"
msgid_plural "Used %zu of %lu buckets.\n"
@@ -4086,22 +4095,22 @@ msgstr[0] "Коришћено је %zu од %lu ведара.\n"
msgstr[1] "Коришћена Ñу %zu од %lu ведара.\n"
msgstr[2] "Коришћено је %zu од %lu ведара.\n"
-#: dwarf.c:10729
+#: dwarf.c:10798
#, c-format
msgid "Out of %<PRIu64> items there are %zu bucket clashes (longest of %zu entries).\n"
msgstr "Од %<PRIu64> Ñтавке имамо %zu преклапања ведра (најдужих од %zu уноÑа).\n"
-#: dwarf.c:10734
+#: dwarf.c:10803
#, c-format
msgid "The name_count (%<PRIu64>) is not the same as the used bucket_count (%zu) + the hash clash count (%zu)\n"
msgstr "УкупноÑÑ‚ назива (%<PRIu64>) није иÑта као коришћена укупноÑÑ‚ ведра (%zu) + укупноÑÑ‚ преклапања хеша (%zu)\n"
-#: dwarf.c:10772
+#: dwarf.c:10841
#, c-format
msgid "Duplicate abbreviation tag %<PRIu64> in unit %#tx in the debug_names section\n"
msgstr "УдвоÑтручена ознака Ñкраћења %<PRIu64> у јединици %#tx у одељку „debug_names“\n"
-#: dwarf.c:10794 dwarf.c:11097
+#: dwarf.c:10863 dwarf.c:11167
#, c-format
msgid ""
"\n"
@@ -4110,91 +4119,91 @@ msgstr ""
"\n"
"Табела Ñимбола:\n"
-#: dwarf.c:10827
+#: dwarf.c:10896
#, c-format
msgid "Invalid entry offset value: %<PRIx64>\n"
msgstr "Ðетачна вредноÑÑ‚ помераја уноÑа: %<PRIx64>\n"
-#: dwarf.c:10859
+#: dwarf.c:10929
#, c-format
msgid "Undefined abbreviation tag %<PRId64> in unit %#tx in the debug_names section\n"
msgstr "Ðеодређена ознака Ñкраћења %<PRId64> у јединици %#tx у одељку „debug_names“\n"
-#: dwarf.c:10890
+#: dwarf.c:10960
#, c-format
msgid " <no entries>"
msgstr " <нема уноÑа>"
-#: dwarf.c:10922
+#: dwarf.c:10992
msgid "The debuglink filename is corrupt/missing\n"
msgstr "Ðазив датотеке везе прочишћавања је оштећен или недоÑтаје\n"
-#: dwarf.c:10926
+#: dwarf.c:10996
#, c-format
msgid " Separate debug info file: %s\n"
msgstr " Одвојена датотека података прочишћавања: %s\n"
-#: dwarf.c:10937
+#: dwarf.c:11007
msgid "CRC offset missing/truncated\n"
msgstr "„CRC“ померај недоÑтаје или је Ñкраћен\n"
-#: dwarf.c:10943
+#: dwarf.c:11013
#, c-format
msgid " CRC value: %#x\n"
msgstr " „CRC“ вредноÑÑ‚: %#x\n"
-#: dwarf.c:10947
+#: dwarf.c:11017
#, c-format
msgid "There are %#<PRIx64> extraneous bytes at the end of the section\n"
msgstr "ПоÑтоје %#<PRIx64> Ñтрана бајта на крају одељка\n"
-#: dwarf.c:10962
+#: dwarf.c:11032
#, c-format
msgid "Build-ID is too short (%#zx bytes)\n"
msgstr "ИД изградње је прекратак (%#zx бајта)\n"
-#: dwarf.c:10966
+#: dwarf.c:11036
#, c-format
msgid " Build-ID (%#zx bytes):"
msgstr " ИБ изградње (%#zx бајта):"
-#: dwarf.c:10998
+#: dwarf.c:11068
#, c-format
msgid "Truncated header in the %s section.\n"
msgstr "Скраћено заглавље у одељку %s.\n"
-#: dwarf.c:11002
+#: dwarf.c:11072
#, c-format
msgid "Version %lu\n"
msgstr "Издање %lu\n"
-#: dwarf.c:11008
+#: dwarf.c:11078
#, c-format
msgid "Unsupported version %lu.\n"
msgstr "Издање %lu није подржано.\n"
-#: dwarf.c:11012
+#: dwarf.c:11082
msgid "The address table data in version 3 may be wrong.\n"
msgstr "Можда Ñу погрешни подаци табеле адреÑе у издању 3.\n"
-#: dwarf.c:11014
+#: dwarf.c:11084
msgid "Version 4 does not support case insensitive lookups.\n"
msgstr "Издање 4 не подржава тражење неоÑетљиво на величину Ñлова.\n"
-#: dwarf.c:11016
+#: dwarf.c:11086
msgid "Version 5 does not include inlined functions.\n"
msgstr "Издање 5 не укључује уграђене функције.\n"
-#: dwarf.c:11018
+#: dwarf.c:11088
msgid "Version 6 does not include symbol attributes.\n"
msgstr "Издање 6 не укључује атрибуте Ñимбола.\n"
-#: dwarf.c:11046
+#: dwarf.c:11116
#, c-format
msgid "Corrupt header in the %s section.\n"
msgstr "Оштећено заглавље у одељку %s.\n"
-#: dwarf.c:11062
+#: dwarf.c:11132
#, c-format
msgid ""
"\n"
@@ -4203,7 +4212,7 @@ msgstr ""
"\n"
"ЦУ табела:\n"
-#: dwarf.c:11072
+#: dwarf.c:11142
#, c-format
msgid ""
"\n"
@@ -4212,7 +4221,7 @@ msgstr ""
"\n"
"ТУ табела:\n"
-#: dwarf.c:11085
+#: dwarf.c:11155
#, c-format
msgid ""
"\n"
@@ -4221,40 +4230,40 @@ msgstr ""
"\n"
"Табела адреÑе:\n"
-#: dwarf.c:11112
+#: dwarf.c:11182
#, c-format
msgid "[%3u] <corrupt offset: %x>"
msgstr "[%3u] <оштећен померај: %x>"
-#: dwarf.c:11113
+#: dwarf.c:11183
#, c-format
msgid "Corrupt name offset of 0x%x found for symbol table slot %d\n"
msgstr "Ðађох оштећен померај назива 0x%x за утор табеле Ñимбола %d\n"
-#: dwarf.c:11124
+#: dwarf.c:11194
#, c-format
msgid "<invalid CU vector offset: %x>\n"
msgstr "<неиÑправан померај ЦУ вектора: %x>\n"
-#: dwarf.c:11125
+#: dwarf.c:11195
#, c-format
msgid "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"
msgstr "Ðађох оштећен померај ЦУ вектора 0x%x за утор табеле Ñимбола %d\n"
-#: dwarf.c:11136
+#: dwarf.c:11206
#, c-format
msgid "Invalid number of CUs (0x%x) for symbol table slot %d\n"
msgstr "ÐеиÑправан број ЦУ-ова (0x%x) за утор табеле Ñимбола %d\n"
-#: dwarf.c:11161
+#: dwarf.c:11231
msgid "static"
msgstr "Ñтатичко"
-#: dwarf.c:11161
+#: dwarf.c:11231
msgid "global"
msgstr "опште"
-#: dwarf.c:11173
+#: dwarf.c:11243
#, c-format
msgid ""
"\n"
@@ -4263,57 +4272,57 @@ msgstr ""
"\n"
"Табела пречица:\n"
-#: dwarf.c:11177
+#: dwarf.c:11247
#, c-format
msgid "Corrupt shortcut table in the %s section.\n"
msgstr "Оштећена табела Ñкраћенице у одељку %s.\n"
-#: dwarf.c:11182
+#: dwarf.c:11252
#, c-format
msgid "Language of main: "
msgstr "Језик главног: "
-#: dwarf.c:11186
+#: dwarf.c:11256
#, c-format
msgid "Name of main: "
msgstr "Ðазив главног: "
-#: dwarf.c:11188
+#: dwarf.c:11258
#, c-format
msgid "<unknown>\n"
msgstr "<непознато>\n"
-#: dwarf.c:11194
+#: dwarf.c:11264
#, c-format
msgid "<corrupt offset: %x>\n"
msgstr "<оштећен померај: %x>\n"
-#: dwarf.c:11195
+#: dwarf.c:11265
#, c-format
msgid "Corrupt name offset of 0x%x found for name of main\n"
msgstr "Ðађох оштећен померај назива 0x%x за назив главног\n"
-#: dwarf.c:11299
+#: dwarf.c:11369
#, c-format
msgid "Section %s is empty\n"
msgstr "Одељак %s је празан\n"
-#: dwarf.c:11305
+#: dwarf.c:11375
#, c-format
msgid "Section %s is too small to contain a CU/TU header\n"
msgstr "Одељак „%s“ је премали да Ñадржи ЦУ/ТУ заглавље\n"
-#: dwarf.c:11326
+#: dwarf.c:11396
#, c-format
msgid " Number of columns: %u\n"
msgstr " Број Ñтубаца: %u\n"
-#: dwarf.c:11327
+#: dwarf.c:11397
#, c-format
msgid " Number of used entries: %u\n"
msgstr " Број коришћених уноÑа: %u\n"
-#: dwarf.c:11328
+#: dwarf.c:11398
#, c-format
msgid ""
" Number of slots: %u\n"
@@ -4322,7 +4331,7 @@ msgstr ""
" Број прикључака: %u\n"
"\n"
-#: dwarf.c:11335
+#: dwarf.c:11405
#, c-format
msgid "Section %s is too small for %u slot\n"
msgid_plural "Section %s is too small for %u slots\n"
@@ -4330,125 +4339,125 @@ msgstr[0] "Одељак „%s“ је премали за %u утор\n"
msgstr[1] "Одељак „%s“ је премали за %u утора\n"
msgstr[2] "Одељак „%s“ је премали за %u утора\n"
-#: dwarf.c:11368
+#: dwarf.c:11438
msgid "Section index pool located before start of section\n"
msgstr "Припрема индекÑа одељка Ñе налази пре почетка одељка\n"
-#: dwarf.c:11372
+#: dwarf.c:11442
#, c-format
msgid " [%3d] Signature: %#<PRIx64> Sections: "
msgstr " [%3d] ПотпиÑ: %#<PRIx64> Одељци: "
-#: dwarf.c:11378
+#: dwarf.c:11448
#, c-format
msgid "Section %s too small for shndx pool\n"
msgstr "Одељак „%s“ је премали за „shndx“ припрему\n"
-#: dwarf.c:11421
+#: dwarf.c:11491
#, c-format
msgid "Section %s too small for offset and size tables\n"
msgstr "Одељак „%s“ је премали за табеле помераја и величине\n"
-#: dwarf.c:11428
+#: dwarf.c:11498
#, c-format
msgid " Offset table\n"
msgstr " Табела помераја\n"
-#: dwarf.c:11430 dwarf.c:11517
+#: dwarf.c:11500 dwarf.c:11587
msgid "signature"
msgstr "потпиÑ"
-#: dwarf.c:11430 dwarf.c:11517
+#: dwarf.c:11500 dwarf.c:11587
msgid "dwo_id"
msgstr "dwo_id"
-#: dwarf.c:11469
+#: dwarf.c:11539
#, c-format
msgid "Row index (%u) is larger than number of used entries (%u)\n"
msgstr "Ð˜Ð½Ð´ÐµÐºÑ Ñ€ÐµÐ´Ð° (%u) је већи од броја коришћених уноÑа (%u)\n"
-#: dwarf.c:11497 dwarf.c:11568
+#: dwarf.c:11567 dwarf.c:11638
#, c-format
msgid "Overlarge Dwarf section index detected: %u\n"
msgstr "Откривен је превелик Ð¸Ð½Ð´ÐµÐºÑ â€ždwarf“ одељка: %u\n"
-#: dwarf.c:11515
+#: dwarf.c:11585
#, c-format
msgid " Size table\n"
msgstr " Табела величине\n"
-#: dwarf.c:11554
+#: dwarf.c:11624
#, c-format
msgid "Too many rows/columns in DWARF index section %s\n"
msgstr "Превише редова/колона у „DWARF“ одељку индекÑа „%s“\n"
-#: dwarf.c:11583
+#: dwarf.c:11653
#, c-format
msgid " Unsupported version (%d)\n"
msgstr " Ðеподржано издање (%d)\n"
-#: dwarf.c:11655
+#: dwarf.c:11725
#, c-format
msgid "Displaying the debug contents of section %s is not yet supported.\n"
msgstr "Приказивање Ñадржаја прочишћавања одељка %s још није подржано.\n"
-#: dwarf.c:11686
+#: dwarf.c:11756
#, c-format
msgid "Attempt to allocate an array with an excessive number of elements: %#<PRIx64>\n"
msgstr "Покушах да доделим низ Ñа превеликим бројем елемената: %#<PRIx64>\n"
-#: dwarf.c:11704
+#: dwarf.c:11774
#, c-format
msgid "Attempt to re-allocate an array with an excessive number of elements: %#<PRIx64>\n"
msgstr "Покушах поново да доделим низ Ñа превеликим бројем елемената: %#<PRIx64>\n"
-#: dwarf.c:11720
+#: dwarf.c:11790
#, c-format
msgid "Attempt to allocate a zero'ed array with an excessive number of elements: %#<PRIx64>\n"
msgstr "Покушах да доделим нулиран низ Ñа превеликим бројем елемената: %#<PRIx64>\n"
-#: dwarf.c:11818
+#: dwarf.c:11888
#, c-format
msgid "Unable to reopen separate debug info file: %s\n"
msgstr "Ðе могу поново да отворим одвојену датотеку података прочишћавања: %s\n"
-#: dwarf.c:11830
+#: dwarf.c:11900
#, c-format
msgid "Separate debug info file %s found, but CRC does not match - ignoring\n"
msgstr "Ðађох одвојену датотеку података прочишћавања „%s“, али „CRC“ не одговара – занемарујем\n"
-#: dwarf.c:12010
+#: dwarf.c:12080
#, c-format
msgid "Corrupt debuglink section: %s\n"
msgstr "Оштећен одељак везе прочишћавања: %s\n"
-#: dwarf.c:12049 elfcomm.c:295 elfcomm.c:320 elfcomm.c:794
+#: dwarf.c:12119 elfcomm.c:295 elfcomm.c:320 elfcomm.c:794
msgid "Out of memory\n"
msgstr "ПонеÑтало је меморије\n"
#. Failed to find the file.
-#: dwarf.c:12125
+#: dwarf.c:12195
#, c-format
msgid "could not find separate debug file '%s'\n"
msgstr "не могу да нађем одвојену датотеку прочишћавања „%s“\n"
-#: dwarf.c:12127 dwarf.c:12132 dwarf.c:12138 dwarf.c:12142 dwarf.c:12147
-#: dwarf.c:12150 dwarf.c:12153 dwarf.c:12156
+#: dwarf.c:12197 dwarf.c:12202 dwarf.c:12208 dwarf.c:12212 dwarf.c:12217
+#: dwarf.c:12220 dwarf.c:12223 dwarf.c:12226
#, c-format
msgid "tried: %s\n"
msgstr "покушах „%s“\n"
-#: dwarf.c:12166
+#: dwarf.c:12236
#, c-format
msgid "tried: DEBUGINFOD_URLS=%s\n"
msgstr "покушах: „DEBUGINFOD_URLS=%s“\n"
-#: dwarf.c:12194
+#: dwarf.c:12264
#, c-format
msgid "failed to open separate debug file: %s\n"
msgstr "ниÑам уÑпео да отворим одвојену датотеку прочишћавања: %s\n"
-#: dwarf.c:12203
+#: dwarf.c:12273
#, c-format
msgid ""
"\n"
@@ -4457,17 +4466,17 @@ msgstr ""
"\n"
"%s: Ðађох одвојену датотеку података прочишћавања: %s\n"
-#: dwarf.c:12226
+#: dwarf.c:12296
msgid "Out of memory allocating dwo filename\n"
msgstr "ПонеÑтало је меморије приликом додељивања „dwo“ назива датотеке\n"
-#: dwarf.c:12232
+#: dwarf.c:12302
#, c-format
msgid "Unable to load dwo file: %s\n"
msgstr "Ðе могу да учитам „dwo“ датотеку: %s\n"
#. FIXME: We should check the dwo_id.
-#: dwarf.c:12239
+#: dwarf.c:12309
#, c-format
msgid ""
"%s: Found separate debug object file: %s\n"
@@ -4476,36 +4485,36 @@ msgstr ""
"%s: Ðађох одвојену датотеку објекта прочишћавања: %s\n"
"\n"
-#: dwarf.c:12271
+#: dwarf.c:12341
msgid "Unable to load the .note.gnu.build-id section\n"
msgstr "Ðе могу да учитам одељак „.note.gnu.build-id“\n"
-#: dwarf.c:12277
+#: dwarf.c:12347
msgid ".note.gnu.build-id section is corrupt/empty\n"
msgstr "одељак „.note.gnu.build-id“ је оштећен/празан\n"
-#: dwarf.c:12298
+#: dwarf.c:12368
msgid ".note.gnu.build-id data size is too small\n"
msgstr "величина података „.note.gnu.build-id“ је премала\n"
-#: dwarf.c:12304
+#: dwarf.c:12374
msgid ".note.gnu.build-id data size is too big\n"
msgstr "величина података „.note.gnu.build-id“ је превелика\n"
-#: dwarf.c:12365
+#: dwarf.c:12435
msgid ".debug_sup section is corrupt/empty\n"
msgstr "одељак „.debug_sup“ је оштећен/празан\n"
-#: dwarf.c:12375
+#: dwarf.c:12445
msgid "filename in .debug_sup section is corrupt\n"
msgstr "назив датотеке у „.debug_sup“ одељку је оштећен\n"
-#: dwarf.c:12392
+#: dwarf.c:12462
#, c-format
msgid "unable to open file '%s' referenced from .debug_sup section\n"
msgstr "не могу да отворим датотеку „%s“ упутну из „.debug_sup“ одељка\n"
-#: dwarf.c:12397
+#: dwarf.c:12467
#, c-format
msgid ""
"%s: Found supplementary debug file: %s\n"
@@ -4514,19 +4523,19 @@ msgstr ""
"%s: Ðађох додатну датотеку прочишћавања: %s\n"
"\n"
-#: dwarf.c:12498
+#: dwarf.c:12568
msgid "Multiple DWO_NAMEs encountered for the same CU\n"
msgstr "Ðаиђох на више „DWO_NAME“-а за иÑту ЦЈ\n"
-#: dwarf.c:12510
+#: dwarf.c:12580
msgid "multiple DWO_IDs encountered for the same CU\n"
msgstr "наиђох на више „DWO_ID“-а за иÑту ЦЈ\n"
-#: dwarf.c:12515
+#: dwarf.c:12585
msgid "Unexpected DWO INFO type"
msgstr "Ðеочекивана „DWO INFO“ врÑта"
-#: dwarf.c:12530
+#: dwarf.c:12600
#, c-format
msgid ""
"The %s section contains link(s) to dwo file(s):\n"
@@ -4535,45 +4544,45 @@ msgstr ""
"Одељак „%s“ Ñадржи везу до „dwo“ датотеке:\n"
"\n"
-#: dwarf.c:12535
+#: dwarf.c:12605
#, c-format
msgid " Name: %s\n"
msgstr " Ðазив: %s\n"
-#: dwarf.c:12536
+#: dwarf.c:12606
#, c-format
msgid " Directory: %s\n"
msgstr " Директоријум: %s\n"
-#: dwarf.c:12536
+#: dwarf.c:12606
msgid "<not-found>"
msgstr "<ниÑам нашао>"
-#: dwarf.c:12538
+#: dwarf.c:12608
#, c-format
msgid " ID: "
msgstr " ИБ: "
-#: dwarf.c:12540
+#: dwarf.c:12610
#, c-format
msgid " ID: <not specified>\n"
msgstr " ИБ: <није наведено>\n"
-#: dwarf.c:12697
+#: dwarf.c:12768
#, c-format
msgid "Unrecognized debug option '%s'\n"
msgstr "Ðепозната опција прочишћавања „%s“\n"
-#: dwarf.c:12741
+#: dwarf.c:12812
#, c-format
msgid "Unrecognized debug letter option '%c'\n"
msgstr "Ðепозната опција Ñлова прочишћавања „%c“\n"
-#: dwarf.h:282
+#: dwarf.h:283
msgid "end of data encountered whilst reading LEB\n"
msgstr "наиђох на крај података приликом читања „LEB“-а\n"
-#: dwarf.h:284
+#: dwarf.h:285
msgid "read LEB value is too large to store in destination variable\n"
msgstr "вредноÑÑ‚ читања „LEB“-а је превелика за Ñмештај у променљиву одредишта\n"
@@ -4661,7 +4670,7 @@ msgstr "%s: ниÑам уÑпео да премотам до првог загл
#. PR 24049 - we cannot use filedata->file_name as this will
#. have already been freed.
-#: elfcomm.c:518 elfcomm.c:752 elfedit.c:613 readelf.c:24034
+#: elfcomm.c:518 elfcomm.c:752 elfedit.c:624 readelf.c:24044
#, c-format
msgid "%s: failed to read archive header\n"
msgstr "%s: ниÑам уÑпео да прочитам заглавље архиве\n"
@@ -4708,7 +4717,7 @@ msgstr "ÐеиÑправан назив члана танане архиве\n"
msgid "%s: failed to seek to next file name\n"
msgstr "%s: ниÑам уÑпео да премотам до Ñледећег назива датотеке\n"
-#: elfcomm.c:757 elfedit.c:620 readelf.c:24041
+#: elfcomm.c:757 elfedit.c:631 readelf.c:24051
#, c-format
msgid "%s: did not find a valid archive header\n"
msgstr "%s: ниÑам пронашао иÑправно заглавље архиве\n"
@@ -4728,57 +4737,62 @@ msgstr "%s: није уÑпело „stat ()“\n"
msgid "%s: mmap () failed\n"
msgstr "%s: није упÑело „mmap ()“\n"
-#: elfedit.c:246
+#: elfedit.c:118
+#, c-format
+msgid "%s: can't read program headers\n"
+msgstr "%s: не могу да прочитам заглавља\n"
+
+#: elfedit.c:257
#, c-format
msgid "%s: Invalid PT_NOTE segment\n"
msgstr "%s: ÐеиÑправан „PT_NOTE“ подеок\n"
-#: elfedit.c:271
+#: elfedit.c:282
#, c-format
msgid "Unknown x86 feature: %s\n"
msgstr "Ðепозната x86 функција: %s\n"
-#: elfedit.c:319
+#: elfedit.c:330
#, c-format
msgid "%s: Unsupported EI_VERSION: %d is not %d\n"
msgstr "%s: „EI_VERSION“ није подржано: „%d“ није „%d“\n"
-#: elfedit.c:340
+#: elfedit.c:351
#, c-format
msgid "%s: Unmatched input EI_CLASS: %d is not %d\n"
msgstr "%s: Ðепоклопљен улаз „EI_CLASS“: „%d“ није „%d“\n"
-#: elfedit.c:349
+#: elfedit.c:360
#, c-format
msgid "%s: Unmatched output EI_CLASS: %d is not %d\n"
msgstr "%s: Ðепоклопљен излаз „EI_CLASS“: „%d“ није „%d“\n"
-#: elfedit.c:358
+#: elfedit.c:369
#, c-format
msgid "%s: Unmatched e_machine: %d is not %d\n"
msgstr "%s: „e_machine“ није поклопљено: „%d“ није „%d“\n"
-#: elfedit.c:369
+#: elfedit.c:380
#, c-format
msgid "%s: Unmatched e_type: %d is not %d\n"
msgstr "%s: „e_type“ није поклопљено: „%d“ није „%d“\n"
-#: elfedit.c:380
+#: elfedit.c:391
#, c-format
msgid "%s: Unmatched EI_OSABI: %d is not %d\n"
msgstr "%s: „EI_OSABI“ није поклопљено: „%d“ није „%d“\n"
-#: elfedit.c:392
+#: elfedit.c:403
#, c-format
msgid "%s: Unmatched EI_ABIVERSION: %d is not %d\n"
msgstr "%s: „EI_ABIVERSION“ није поклопљено: „%d“ није „%d“\n"
-#: elfedit.c:429
+#: elfedit.c:440
#, c-format
msgid "%s: Failed to update ELF header: %s\n"
msgstr "%s: ÐиÑам уÑпео да оÑвежим ЕЛФ заглавље: %s\n"
-#: elfedit.c:499
+#: elfedit.c:510
msgid ""
"This executable has been built without support for a\n"
"64 bit data type and so it cannot process 64 bit ELF files.\n"
@@ -4786,87 +4800,87 @@ msgstr ""
"Ова извршна је изграђена без подршке за 64-битну врÑту\n"
"података тако да не може да обради 64-битне ЕЛФ датотеке.\n"
-#: elfedit.c:540
+#: elfedit.c:551
#, c-format
msgid "%s: Failed to read ELF header\n"
msgstr "%s: ÐиÑам уÑпео да прочитам ЕЛФ заглавље\n"
-#: elfedit.c:547
+#: elfedit.c:558
#, c-format
msgid "%s: Failed to seek to ELF header\n"
msgstr "%s: ÐиÑам уÑпео да премотам до ЕЛФ заглавља\n"
-#: elfedit.c:604 readelf.c:24022
+#: elfedit.c:615 readelf.c:24032
#, c-format
msgid "%s: failed to seek to next archive header\n"
msgstr "%s: ниÑам уÑпео да премотам до Ñледећег заглавља архиве\n"
-#: elfedit.c:635 elfedit.c:644 readelf.c:24054 readelf.c:24063
+#: elfedit.c:646 elfedit.c:655 readelf.c:24064 readelf.c:24073
#, c-format
msgid "%s: bad archive file name\n"
msgstr "%s: лош назив датотеке архиве\n"
-#: elfedit.c:667 elfedit.c:778
+#: elfedit.c:678 elfedit.c:789
#, c-format
msgid "Input file '%s' is not readable\n"
msgstr "Улазна датотека „%s“ није читљива\n"
-#: elfedit.c:694
+#: elfedit.c:705
#, c-format
msgid "%s: failed to seek to archive member\n"
msgstr "%s: ниÑам уÑпео да премотам до члана архиве\n"
-#: elfedit.c:735 readelf.c:24182
+#: elfedit.c:746 readelf.c:24192
#, c-format
msgid "'%s': No such file\n"
msgstr "„%s“: Ðема такве датотеке\n"
-#: elfedit.c:737 readelf.c:24184
+#: elfedit.c:748 readelf.c:24194
#, c-format
msgid "Could not locate '%s'. System error message: %s\n"
msgstr "Ðе могу да пронађем „%s“. Порука грешке ÑиÑтема: %s\n"
-#: elfedit.c:758 readelf.c:24191
+#: elfedit.c:769 readelf.c:24201
#, c-format
msgid "'%s' is not an ordinary file\n"
msgstr "„%s“ није обична датотека\n"
-#: elfedit.c:784 readelf.c:24213
+#: elfedit.c:795 readelf.c:24223
#, c-format
msgid "%s: Failed to read file's magic number\n"
msgstr "%s: ÐиÑам уÑпео да прочитам магичан број датотеке\n"
-#: elfedit.c:848
+#: elfedit.c:859
#, c-format
msgid "Unknown OSABI: %s\n"
msgstr "Ðепознат ОСÐБИ: %s\n"
-#: elfedit.c:873
+#: elfedit.c:884
#, c-format
msgid "Unknown machine type: %s\n"
msgstr "Ðепозната врÑта машине: %s\n"
-#: elfedit.c:892
+#: elfedit.c:903
#, c-format
msgid "Unknown type: %s\n"
msgstr "Ðепозната врÑта: %s\n"
-#: elfedit.c:943
+#: elfedit.c:954
#, c-format
msgid "Usage: %s <option(s)> elffile(s)\n"
msgstr "Употреба: %s <опција(е)> елфдатотека(е)\n"
-#: elfedit.c:945
+#: elfedit.c:956
#, c-format
msgid " Update the ELF header of ELF files\n"
msgstr " ОÑвежите ЕЛФ заглавље у ЕЛФ датотекама\n"
-#: elfedit.c:946 nm.c:294 objcopy.c:573 objcopy.c:715 strings.c:1332
+#: elfedit.c:957 nm.c:302 objcopy.c:584 objcopy.c:726 strings.c:1332
#, c-format
msgid " The options are:\n"
msgstr " Опције Ñу:\n"
-#: elfedit.c:947
+#: elfedit.c:958
#, c-format
msgid ""
" --input-mach [none|i386|iamcu|l1om|k1om|x86_64]\n"
@@ -4900,7 +4914,7 @@ msgstr ""
" --output-abiversion [0-255] ПоÑтавља излазно „ABIVERSION“\n"
"\n"
-#: elfedit.c:964
+#: elfedit.c:975
#, c-format
msgid ""
" --enable-x86-feature [ibt|shstk|lam_u48|lam_u57]\n"
@@ -4913,7 +4927,7 @@ msgstr ""
" --disable-x86-feature [ibt|shstk|lam_u48|lam_u57]\n"
" ИÑкључује x86 функцију\n"
-#: elfedit.c:970
+#: elfedit.c:981
#, c-format
msgid ""
" -h --help Display this information\n"
@@ -4922,7 +4936,7 @@ msgstr ""
" -h --help Приказује ове податке\n"
" -v --version Приказује број издања „%s“\n"
-#: elfedit.c:1049 elfedit.c:1060
+#: elfedit.c:1060 elfedit.c:1071
#, c-format
msgid "Invalid ABIVERSION: %s\n"
msgstr "ÐеиÑправно „ABIVERSION“: %s\n"
@@ -4951,66 +4965,66 @@ msgstr " [-X32_64] – прихвата предмете од 32 и 64 би
msgid "Duplicate symbol entered into keyword list."
msgstr "УдвоÑтручени Ñимбол је унет у ÑпиÑак кључних речи."
-#: nm.c:292 size.c:88 strings.c:1330
+#: nm.c:300 size.c:88 strings.c:1330
#, c-format
msgid "Usage: %s [option(s)] [file(s)]\n"
msgstr "Употреба: %s [опција(е)] [датотека(е)]\n"
-#: nm.c:293
+#: nm.c:301
#, c-format
msgid " List symbols in [file(s)] (a.out by default).\n"
msgstr " Приказује Ñимболе у [датотека(е)] (оÑновно је „a.out“).\n"
-#: nm.c:295
+#: nm.c:303
#, c-format
msgid " -a, --debug-syms Display debugger-only symbols\n"
msgstr " -a, --debug-syms Приказује Ñимболе Ñамо прочишћавања\n"
-#: nm.c:297
+#: nm.c:305
#, c-format
msgid " -A, --print-file-name Print name of the input file before every symbol\n"
msgstr " -A, --print-file-name ИÑпиÑује назив улазне датотеке пре Ñваког Ñимбола\n"
-#: nm.c:299
+#: nm.c:307
#, c-format
msgid " -B Same as --format=bsd\n"
msgstr " -B ИÑто као „--format=bsd“\n"
-#: nm.c:301
+#: nm.c:309
#, c-format
msgid " -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
msgstr " -C, --demangle[=СТИЛ] Декодира прекрштене/обрађене називе Ñимбола\n"
-#: nm.c:303 readelf.c:6202
+#: nm.c:311 readelf.c:6206
msgid " STYLE can be "
msgstr " СТИЛ може бити "
-#: nm.c:305
+#: nm.c:313
#, c-format
msgid " --no-demangle Do not demangle low-level symbol names\n"
msgstr " --no-demangle Ðе раÑкршћавања називе Ñимбола ниÑког нивоа.\n"
-#: nm.c:307
+#: nm.c:315
#, c-format
msgid " --recurse-limit Enable a demangling recursion limit. (default)\n"
msgstr " --recurse-limit Укључује ограничење понављања раÑкршћавања. (оÑновно)\n"
-#: nm.c:309
+#: nm.c:317
#, c-format
msgid " --no-recurse-limit Disable a demangling recursion limit.\n"
msgstr " --no-recurse-limit ИÑкључује ограничење понављања раÑкршћавања\n"
-#: nm.c:311
+#: nm.c:319
#, c-format
msgid " -D, --dynamic Display dynamic symbols instead of normal symbols\n"
msgstr " -D, --dynamic Приказује динамичке Ñимболе умеÑто обичних Ñимбола\n"
-#: nm.c:313
+#: nm.c:321
#, c-format
msgid " -e (ignored)\n"
msgstr " -e (занемарено)\n"
-#: nm.c:315
+#: nm.c:323
#, c-format
msgid ""
" -f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',\n"
@@ -5021,22 +5035,22 @@ msgstr ""
" „sysv“, „posix“ или „just-symbols“.\n"
" ОÑновно је „bsd“\n"
-#: nm.c:319
+#: nm.c:327
#, c-format
msgid " -g, --extern-only Display only external symbols\n"
msgstr " -g, --extern-only Приказује Ñамо Ñпољне Ñимболе\n"
-#: nm.c:321
+#: nm.c:329
#, c-format
msgid " --ifunc-chars=CHARS Characters to use when displaying ifunc symbols\n"
msgstr " --ifunc-chars=ЗÐÐЦИ Знаци за коришћење када Ñе приказују „ifunc“ Ñимболи\n"
-#: nm.c:323
+#: nm.c:331
#, c-format
msgid " -j, --just-symbols Same as --format=just-symbols\n"
msgstr " -j, --just-symbols ИÑто као „--format=just-symbols“\n"
-#: nm.c:325
+#: nm.c:333
#, c-format
msgid ""
" -l, --line-numbers Use debugging information to find a filename and\n"
@@ -5045,87 +5059,87 @@ msgstr ""
" -l, --line-numbers КориÑти информације прочишћавања да нађе назив датотеке и\n"
" број реда за Ñваки Ñимбол\n"
-#: nm.c:328
+#: nm.c:336
#, c-format
msgid " -n, --numeric-sort Sort symbols numerically by address\n"
msgstr " -n, --numeric-sort Ређа Ñимболе бројевно према адреÑи\n"
-#: nm.c:330
+#: nm.c:338
#, c-format
msgid " -o Same as -A\n"
msgstr " -o ИÑто као „-A“\n"
-#: nm.c:332
+#: nm.c:340
#, c-format
msgid " -p, --no-sort Do not sort the symbols\n"
msgstr " -p, --no-sort Ðе ређа Ñимболе\n"
-#: nm.c:334
+#: nm.c:342
#, c-format
msgid " -P, --portability Same as --format=posix\n"
msgstr " -P, --portability ИÑто као „--format=posix“\n"
-#: nm.c:336
+#: nm.c:344
#, c-format
msgid " -r, --reverse-sort Reverse the sense of the sort\n"
msgstr " -r, --reverse-sort Обрће Ñмер ређања\n"
-#: nm.c:339
+#: nm.c:347
#, c-format
msgid " --plugin NAME Load the specified plugin\n"
msgstr " --plugin NOM Учитава наведени прикључак\n"
-#: nm.c:342
+#: nm.c:350
#, c-format
msgid " -S, --print-size Print size of defined symbols\n"
msgstr " -S, --print-size ИÑпиÑује величину дефиниÑаних Ñимбола\n"
-#: nm.c:344
+#: nm.c:352
#, c-format
msgid " -s, --print-armap Include index for symbols from archive members\n"
msgstr " -s, --print-armap Укључује Ð¸Ð½Ð´ÐµÐºÑ Ð·Ð° Ñимболе из чланова архива\n"
-#: nm.c:346
+#: nm.c:354
#, c-format
msgid " --quiet Suppress \"no symbols\" diagnostic\n"
msgstr " --quiet ПотиÑкује дијагноÑтику „no symbols“\n"
-#: nm.c:348
+#: nm.c:356
#, c-format
msgid " --size-sort Sort symbols by size\n"
msgstr " --size-sort Ређа Ñимболе по величини\n"
-#: nm.c:350
+#: nm.c:358
#, c-format
msgid " --special-syms Include special symbols in the output\n"
msgstr " --special-syms Укључује нарочите Ñимболе у излаз\n"
-#: nm.c:352
+#: nm.c:360
#, c-format
msgid " --synthetic Display synthetic symbols as well\n"
msgstr " --synthetic Приказује Ñинтетичке Ñимболе иÑто тако\n"
-#: nm.c:354
+#: nm.c:362
#, c-format
msgid " -t, --radix=RADIX Use RADIX for printing symbol values\n"
msgstr " -t, --radix=RADIX КориÑти „RADIX“ за иÑпиÑивање вредноÑти Ñимбола\n"
-#: nm.c:356
+#: nm.c:364
#, c-format
msgid " --target=BFDNAME Specify the target object format as BFDNAME\n"
msgstr " --target=БФДÐÐЗИВ Ðаводи Ð·Ð°Ð¿Ð¸Ñ Ð¾Ð±Ñ˜ÐµÐºÑ‚Ð° мете као БФДÐÐЗИВ\n"
-#: nm.c:358
+#: nm.c:366
#, c-format
msgid " -u, --undefined-only Display only undefined symbols\n"
msgstr " -u, --undefined-only Приказује Ñамо недефиниÑане Ñимболе\n"
-#: nm.c:360
+#: nm.c:368
#, c-format
msgid " -U, --defined-only Display only defined symbols\n"
msgstr " -U, --defined-only Приказује Ñамо дефиниÑане Ñимболе\n"
-#: nm.c:362
+#: nm.c:370
#, c-format
msgid ""
" --unicode={default|show|invalid|hex|escape|highlight}\n"
@@ -5134,67 +5148,67 @@ msgstr ""
" --unicode={default|show|invalid|hex|escape|highlight}\n"
" Ðаводи како ће Ñматрати UTF-8 кодиране јуникод знаке\n"
-#: nm.c:365
+#: nm.c:373
#, c-format
msgid " -W, --no-weak Ignore weak symbols\n"
msgstr " -W, --no-weak Занемарује Ñлабе Ñимболе\n"
-#: nm.c:367
+#: nm.c:375
#, c-format
msgid " --without-symbol-versions Do not display version strings after symbol names\n"
msgstr " --with-symbol-versions Ðе приказује ниÑке издања након назива Ñимбола\n"
-#: nm.c:369
+#: nm.c:377
#, c-format
msgid " -X 32_64 (ignored)\n"
msgstr " -X 32_64 (занемарено)\n"
-#: nm.c:371
+#: nm.c:379
#, c-format
msgid " @FILE Read options from FILE\n"
msgstr " @ДТТКРЧита опције из ДÐТОТЕКЕ\n"
-#: nm.c:373
+#: nm.c:381
#, c-format
msgid " -h, --help Display this information\n"
msgstr " -h, --help Приказује ове информације\n"
-#: nm.c:375
+#: nm.c:383
#, c-format
msgid " -V, --version Display this program's version number\n"
msgstr " -V, --version Приказује издање овог програма\n"
-#: nm.c:396
+#: nm.c:404
#, c-format
msgid "%s: invalid radix"
msgstr "%s: неиÑправна бројевна оÑнова"
-#: nm.c:426
+#: nm.c:434
#, c-format
msgid "%s: invalid output format"
msgstr "%s: неиÑправан излазни запиÑ"
-#: nm.c:450 readelf.c:13743 readelf.c:13786
+#: nm.c:458 readelf.c:13756 readelf.c:13799
#, c-format
msgid "<processor specific>: %d"
msgstr "<поÑебноÑÑ‚ процеÑора>: %d"
-#: nm.c:452 readelf.c:13750 readelf.c:13803
+#: nm.c:460 readelf.c:13763 readelf.c:13816
#, c-format
msgid "<OS specific>: %d"
msgstr "<ПоÑебноÑÑ‚ ОС-а>: %d"
-#: nm.c:454 readelf.c:13753 readelf.c:13806
+#: nm.c:462 readelf.c:13766 readelf.c:13819
#, c-format
msgid "<unknown>: %d"
msgstr "<непознато>: %d"
-#: nm.c:481
+#: nm.c:489
#, c-format
msgid "<unknown>: %d/%d"
msgstr "<непознато>: %d/%d"
-#: nm.c:749
+#: nm.c:757
#, c-format
msgid ""
"\n"
@@ -5203,12 +5217,12 @@ msgstr ""
"\n"
"Ð˜Ð½Ð´ÐµÐºÑ Ð°Ñ€Ñ…Ð¸Ð²Ðµ:\n"
-#: nm.c:803 nm.c:1476
+#: nm.c:808 nm.c:1490
#, c-format
msgid "%s: plugin needed to handle lto object"
msgstr "%s: потребан је прикључак за руковање „lto“ објектом"
-#: nm.c:1685
+#: nm.c:1699
#, c-format
msgid ""
"\n"
@@ -5221,7 +5235,7 @@ msgstr ""
"Ðеодређени Ñимболи из %s:\n"
"\n"
-#: nm.c:1687
+#: nm.c:1701
#, c-format
msgid ""
"\n"
@@ -5234,7 +5248,7 @@ msgstr ""
"Симболи из „%s“:\n"
"\n"
-#: nm.c:1689 nm.c:1750
+#: nm.c:1703 nm.c:1764
#, c-format
msgid ""
"Name Value Class Type Size Line Section\n"
@@ -5243,7 +5257,7 @@ msgstr ""
"Ðазив Вред Разред Ð’Ñ€Ñта Вел Ред Одељак\n"
"\n"
-#: nm.c:1692 nm.c:1753
+#: nm.c:1706 nm.c:1767
#, c-format
msgid ""
"Name Value Class Type Size Line Section\n"
@@ -5252,7 +5266,7 @@ msgstr ""
"Ðазив Вред Разред Ð’Ñ€Ñта Вел Ред Одељак\n"
"\n"
-#: nm.c:1746
+#: nm.c:1760
#, c-format
msgid ""
"\n"
@@ -5265,7 +5279,7 @@ msgstr ""
"Ðеодређени Ñимболи из %s[%s]:\n"
"\n"
-#: nm.c:1748
+#: nm.c:1762
#, c-format
msgid ""
"\n"
@@ -5278,39 +5292,39 @@ msgstr ""
"Симболи из %s[%s]:\n"
"\n"
-#: nm.c:1832
+#: nm.c:1846
#, c-format
msgid "Print width has not been initialized (%d)"
msgstr "Ширина иÑпиÑивања није покренута (%d)"
-#: nm.c:2097 objdump.c:6330 readelf.c:6669 strings.c:314
+#: nm.c:2111 objdump.c:6387 readelf.c:6681 strings.c:314
#, c-format
msgid "invalid argument to -U/--unicode: %s"
msgstr "неиÑправан аргумент за „-U/--unicode“: %s"
-#: nm.c:2115
+#: nm.c:2129
msgid "Only -X 32_64 is supported"
msgstr "Подржано је Ñамо „-X 32_64“"
-#: nm.c:2147
+#: nm.c:2161
msgid "Using the --size-sort and --undefined-only options together"
msgstr "КориÑтим заједно опције „--size-sort“ и „--undefined-only“"
-#: nm.c:2148
+#: nm.c:2162
msgid "will produce no output, since undefined symbols have no size."
msgstr "неће дати никаквих резултата, јер неодређени Ñимболи немају величину."
-#: objcopy.c:571 srconv.c:1694
+#: objcopy.c:582 srconv.c:1694
#, c-format
msgid "Usage: %s [option(s)] in-file [out-file]\n"
msgstr "Употреба: %s [опција(е)] улазна_датотека [излазна_датотека]\n"
-#: objcopy.c:572
+#: objcopy.c:583
#, c-format
msgid " Copies a binary file, possibly transforming it in the process\n"
msgstr " Умножава бинарну датотеку, по могућÑтву је преиначује у процеÑ\n"
-#: objcopy.c:574
+#: objcopy.c:585
#, c-format
msgid ""
" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
@@ -5327,7 +5341,7 @@ msgstr ""
" --debugging Претвара податке прочишћавања, ако је могуће\n"
" -p --preserve-dates Умножава измењене/приÑтупне временÑке ознаке на излаз\n"
-#: objcopy.c:582 objcopy.c:723
+#: objcopy.c:593 objcopy.c:734
#, c-format
msgid ""
" -D --enable-deterministic-archives\n"
@@ -5340,7 +5354,7 @@ msgstr ""
" -U --disable-deterministic-archives\n"
" ИÑкључује „-D“ понашање\n"
-#: objcopy.c:588 objcopy.c:729
+#: objcopy.c:599 objcopy.c:740
#, c-format
msgid ""
" -D --enable-deterministic-archives\n"
@@ -5353,7 +5367,7 @@ msgstr ""
" -U --disable-deterministic-archives\n"
" ИÑкључује „-D“ понашање (оÑновно)\n"
-#: objcopy.c:593
+#: objcopy.c:604
#, c-format
msgid ""
" -j --only-section <name> Only copy section <name> into the output\n"
@@ -5575,17 +5589,17 @@ msgstr ""
" -h --help Приказује ову помоћ\\n\n"
" --info ИÑпиÑује подржане запиÑе и архитектуре предмета\\n\n"
-#: objcopy.c:713
+#: objcopy.c:724
#, c-format
msgid "Usage: %s <option(s)> in-file(s)\n"
msgstr "Употреба: %s <опција(е)> датотека(е)\n"
-#: objcopy.c:714
+#: objcopy.c:725
#, c-format
msgid " Removes symbols and sections from files\n"
msgstr " Уклања Ñимболе и одељке из датотека\n"
-#: objcopy.c:716
+#: objcopy.c:727
#, c-format
msgid ""
" -I --input-target=<bfdname> Assume input file is in format <bfdname>\n"
@@ -5598,7 +5612,7 @@ msgstr ""
" -F --target=<бфдназив> ПоÑтавља и улазни и излазни Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° <бфдназив>\n"
" -p --preserve-dates Умножава измењене/приÑтупне временÑке ознаке на излаз\n"
-#: objcopy.c:734
+#: objcopy.c:745
#, c-format
msgid ""
" -R --remove-section=<name> Also remove section <name> from the output\n"
@@ -5649,687 +5663,697 @@ msgstr ""
" --info ИÑпиÑује подржане запиÑе и архитектуре предмета\n"
" -o <датотека> ПоÑтавља иÑпражњени излаз у <датотеку>\n"
-#: objcopy.c:814
+#: objcopy.c:771
+#, c-format
+msgid " --plugin NAME Load the specified plugin\n"
+msgstr " --plugin NAME Учитава наведени прикључак\n"
+
+#: objcopy.c:829
#, c-format
msgid "unrecognized section flag `%s'"
msgstr "непозната опција одељка „%s“"
-#: objcopy.c:815 objcopy.c:889
+#: objcopy.c:830 objcopy.c:904
#, c-format
msgid "supported flags: %s"
msgstr "подржане опције: %s"
-#: objcopy.c:888
+#: objcopy.c:903
#, c-format
msgid "unrecognized symbol flag `%s'"
msgstr "непозната опција Ñимбола „%s“"
-#: objcopy.c:947
+#: objcopy.c:962
#, c-format
msgid "error: %s both copied and removed"
msgstr "грешка: „%s“ је и умножено и уклоњено"
-#: objcopy.c:953
+#: objcopy.c:968
#, c-format
msgid "error: %s both sets and alters VMA"
msgstr "грешка: „%s“ и подешава и мења ВМÐ"
-#: objcopy.c:959
+#: objcopy.c:974
#, c-format
msgid "error: %s both sets and alters LMA"
msgstr "грешка: „%s“ и подешава и мења ЛМÐ"
-#: objcopy.c:1122
+#: objcopy.c:1137
#, c-format
msgid "cannot open '%s': %s"
msgstr "не могу да отворим „%s“ : %s"
-#: objcopy.c:1125 objcopy.c:5282
+#: objcopy.c:1140 objcopy.c:5323
#, c-format
msgid "%s: fread failed"
msgstr "%s: није уÑпело оÑлобађање"
-#: objcopy.c:1198
+#: objcopy.c:1213
#, c-format
msgid "%s:%d: Ignoring rubbish found on this line"
msgstr "%s:%d: Занемарујем Ñмеће пронађено на овом реду"
-#: objcopy.c:1342
+#: objcopy.c:1357
#, c-format
msgid "error: section %s matches both remove and copy options"
msgstr "грешка: одељак „%s“ одговара и опцији уклањања и умножавања"
-#: objcopy.c:1345
+#: objcopy.c:1360
#, c-format
msgid "error: section %s matches both update and remove options"
msgstr "грешка: одељак „%s“ одговара и опцији оÑвежења и уклањања"
-#: objcopy.c:1520
+#: objcopy.c:1535
#, c-format
msgid "Section %s not found"
msgstr "ÐиÑам нашао одељак „%s“"
-#: objcopy.c:1569
+#: objcopy.c:1584
msgid "redefining symbols does not work on LTO-compiled object files"
msgstr "поновно дефиниÑање Ñимбола не ради на „LTO“-преведеним објектним датотекама"
-#: objcopy.c:1682
+#: objcopy.c:1697
#, c-format
msgid "not stripping symbol `%s' because it is named in a relocation"
msgstr "не огољавам Ñимбол „%s“ јер је именован у премештају"
-#: objcopy.c:1745
+#: objcopy.c:1760
#, c-format
msgid "'before=%s' not found"
msgstr "ÐиÑам нашао „before=%s“"
-#: objcopy.c:1785
+#: objcopy.c:1800
#, c-format
msgid "%s: Multiple redefinition of symbol \"%s\""
msgstr "%s: ВишеÑтруко поновно одређивање Ñимбола „%s“"
-#: objcopy.c:1789
+#: objcopy.c:1804
#, c-format
msgid "%s: Symbol \"%s\" is target of more than one redefinition"
msgstr "%s: Симбол „%s“ је мета за више од једног поновног одређивања"
-#: objcopy.c:1816
+#: objcopy.c:1831
#, c-format
msgid "couldn't open symbol redefinition file %s (error: %s)"
msgstr "не могу да отворим датотеку поновног одређивања Ñимбола „%s“ (грешка: %s)"
-#: objcopy.c:1894
+#: objcopy.c:1909
#, c-format
msgid "%s:%d: garbage found at end of line"
msgstr "%s:%d: пронађено је ђубре на крају реда"
-#: objcopy.c:1897
+#: objcopy.c:1912
#, c-format
msgid "%s:%d: missing new symbol name"
msgstr "%s:%d: недоÑтаје назив новог Ñимбола"
-#: objcopy.c:1907
+#: objcopy.c:1922
#, c-format
msgid "%s:%d: premature end of file"
msgstr "%s:%d: прерани крај датотеке"
-#: objcopy.c:1933
+#: objcopy.c:1939
#, c-format
msgid "stat returns negative size for `%s'"
msgstr "Ñтат враћа негативну величину за „%s“"
-#: objcopy.c:1945
+#: objcopy.c:1951
#, c-format
msgid "copy from `%s' [unknown] to `%s' [unknown]\n"
msgstr "умножавам из „%s“ [непознато] у „%s“ [непознато]\n"
-#: objcopy.c:2193
+#: objcopy.c:2219
#, c-format
msgid "%s[%s]: Cannot merge - there are relocations against this section"
msgstr "%s[%s]: Ðе могу да Ñтопим – поÑтоје премештаји за овај одељак"
-#: objcopy.c:2215
+#: objcopy.c:2241
msgid "corrupt GNU build attribute note: description size not a factor of 4"
msgstr "оштећена напомена атрибута Гну изградње: величина опиÑа није фактор 4"
-#: objcopy.c:2222
+#: objcopy.c:2248
msgid "corrupt GNU build attribute note: wrong note type"
msgstr "оштећена напомена атрибута Гну изградње: погрешна врÑта напомене"
-#: objcopy.c:2228
+#: objcopy.c:2254
msgid "corrupt GNU build attribute note: note too big"
msgstr "оштећена напомена атрибута Гну изградње: напомена је превелика"
-#: objcopy.c:2234
+#: objcopy.c:2260
msgid "corrupt GNU build attribute note: name too small"
msgstr "оштећена напомена атрибута Гну изградње: назив је премали"
-#: objcopy.c:2257
+#: objcopy.c:2283
msgid "corrupt GNU build attribute note: unsupported version"
msgstr "оштећена напомена атрибута Гну изградње: неподжано издање"
-#: objcopy.c:2291
+#: objcopy.c:2317
msgid "corrupt GNU build attribute note: bad description size"
msgstr "оштећена напомена атрибута Гну изградње: лоша величина опиÑа"
-#: objcopy.c:2327
+#: objcopy.c:2353
msgid "corrupt GNU build attribute note: name not NUL terminated"
msgstr "оштећена напомена атрибута Гну изградње: назив није „NUL“ окончан"
-#: objcopy.c:2339
+#: objcopy.c:2365
msgid "corrupt GNU build attribute notes: excess data at end"
msgstr "оштећена напомена атрибута Гну изградње: превише података на крају"
-#: objcopy.c:2346
+#: objcopy.c:2372
msgid "bad GNU build attribute notes: no known versions detected"
msgstr "лоше напомене атрибута Гну изградње: ниÑам открио позната издања"
#. This happens with glibc. No idea why.
-#: objcopy.c:2350
+#: objcopy.c:2376
#, c-format
msgid "%s[%s]: Warning: version note missing - assuming version 3"
msgstr "%s[%s]: Упозорење: недоÑтаје напомена издања – подразумевам издање 3"
-#: objcopy.c:2360
+#: objcopy.c:2386
msgid "bad GNU build attribute notes: multiple different versions"
msgstr "лоше напомене атрибута Гну изградње: више различитих издања"
-#: objcopy.c:2608
+#: objcopy.c:2634
#, c-format
msgid "%s[%s]: Note - dropping 'share' flag as output format is not COFF"
msgstr "%s[%s]: Ðапомена – одбацујем заÑтавицу „share“ као формат излаза није „COFF“"
-#: objcopy.c:2620
+#: objcopy.c:2646
#, c-format
msgid "%s[%s]: 'large' flag is ELF x86-64 specific"
msgstr "%s[%s]: заÑтавица „large“ је поÑебна за ELF x86-64"
#. PR 17636: Call non-fatal so that we return to our parent who
#. may need to tidy temporary files.
-#: objcopy.c:2666
+#: objcopy.c:2692
#, c-format
msgid "unable to change endianness of '%s'"
msgstr "не могу да променим крајњоÑÑ‚ за „%s“"
-#: objcopy.c:2673
+#: objcopy.c:2699
#, c-format
msgid "unable to modify '%s' due to errors"
msgstr "не могу да изменим „%s“ због грешака"
-#: objcopy.c:2686
+#: objcopy.c:2712
#, c-format
msgid "error: the input file '%s' has no sections"
msgstr "грешка: улазна датотека „%s“ нема одељке"
-#: objcopy.c:2714
+#: objcopy.c:2740
#, c-format
msgid "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi|zstd] is unsupported on `%s'"
msgstr "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi|zstd] није подржано на „%s“"
-#: objcopy.c:2722
+#: objcopy.c:2748
#, c-format
msgid "--elf-stt-common=[yes|no] is unsupported on `%s'"
msgstr "--elf-stt-common=[да|не] није подржано на „%s“"
-#: objcopy.c:2729
+#: objcopy.c:2755
#, c-format
msgid "--strip-section-headers is unsupported on `%s'"
msgstr "„--strip-section-headers“ није подржано на „%s“"
-#: objcopy.c:2736
+#: objcopy.c:2762
#, c-format
msgid "copy from `%s' [%s] to `%s' [%s]\n"
msgstr "умножавам из „%s“ [%s] у „%s“ [%s]\n"
-#: objcopy.c:2784
+#: objcopy.c:2810
#, c-format
msgid "Input file `%s' ignores binary architecture parameter."
msgstr "Улазна датотека „%s“ занемарује бинарне параметре архитектуре."
-#: objcopy.c:2800
+#: objcopy.c:2826
#, c-format
msgid "Unable to recognise the format of the input file `%s'"
msgstr "Ðе могу да препознам Ð·Ð°Ð¿Ð¸Ñ ÑƒÐ»Ð°Ð·Ð½Ðµ датотеке „%s“"
-#: objcopy.c:2803
+#: objcopy.c:2829
#, c-format
msgid "Output file cannot represent architecture `%s'"
msgstr "Излазна датотека не може да предÑтавља архитектуру „%s“"
-#: objcopy.c:2869
+#: objcopy.c:2895
#, c-format
msgid "warning: file alignment (0x%<PRIx64>) > section alignment (0x%<PRIx64>)"
msgstr "упозорење: поравнање датотеке (0x%<PRIx64>) > поравнање одељка (0x%<PRIx64>)"
-#: objcopy.c:2943
+#: objcopy.c:2969
#, c-format
msgid "can't add section '%s'"
msgstr "не могу да додам одељак „%s“"
-#: objcopy.c:2957
+#: objcopy.c:2983
#, c-format
msgid "can't create section `%s'"
msgstr "не могу да направим одељак „%s“"
-#: objcopy.c:3005
+#: objcopy.c:3031
#, c-format
msgid "error: %s not found, can't be updated"
msgstr "грешка: ниÑам нашао „%s“, не може бити оÑвежено"
-#: objcopy.c:3045
+#: objcopy.c:3071
msgid "warning: could not load note section"
msgstr "упозорење : не могу да учитам одељак напомене"
-#: objcopy.c:3066
+#: objcopy.c:3092
msgid "warning: failed to set merged notes size"
msgstr "упозорење: ниÑам уÑпео да подеÑим Ñпојену величину напомена"
-#: objcopy.c:3092
+#: objcopy.c:3118
#, c-format
msgid "can't dump section '%s' - it does not exist"
msgstr "не могу да избацим одељак „%s“ – не поÑтоји"
-#: objcopy.c:3100
+#: objcopy.c:3126
msgid "can't dump section - it has no contents"
msgstr "не могу да избацим одељак – не Ñадржи ништа"
-#: objcopy.c:3112
+#: objcopy.c:3138
msgid "could not open section dump file"
msgstr "не могу да отворим датотеку избачаја одељка"
-#: objcopy.c:3120
+#: objcopy.c:3146
#, c-format
msgid "error writing section contents to %s (error: %s)"
msgstr "грешка пиÑања Ñадржаја одељка у „%s“ (грешка: %s)"
-#: objcopy.c:3130
+#: objcopy.c:3156
msgid "could not retrieve section contents"
msgstr "не могу да довучем Ñадржај одељка"
-#: objcopy.c:3144
+#: objcopy.c:3170
#, c-format
msgid "%s: debuglink section already exists"
msgstr "%s: већ поÑтоји одељак везе прочишћавања"
-#: objcopy.c:3156
+#: objcopy.c:3182
#, c-format
msgid "cannot create debug link section `%s'"
msgstr "не могу да направим одељак прочишћавања „%s“"
-#: objcopy.c:3249
+#: objcopy.c:3275
msgid "Can't fill gap after section"
msgstr "Ðе могу да попуним јаз након одељка"
-#: objcopy.c:3273
+#: objcopy.c:3299
msgid "can't add padding"
msgstr "не могу да додам попуну"
-#: objcopy.c:3445
+#: objcopy.c:3471
msgid "error: failed to locate merged notes"
msgstr "грешка: ниÑам уÑпео да нађем Ñпојене напомене"
-#: objcopy.c:3454
+#: objcopy.c:3480
msgid "error: failed to merge notes"
msgstr "грешка: ниÑам уÑпео да Ñпојим напомене"
-#: objcopy.c:3463
+#: objcopy.c:3489
msgid "error: failed to copy merged notes into output"
msgstr "грешка: ниÑам уÑпео да умножим Ñпојене напомене у излаз"
-#: objcopy.c:3480
+#: objcopy.c:3506
#, c-format
msgid "%s: Could not find any mergeable note sections"
msgstr "%s: Ðе могу да нађем ниједан Ñпојиви одељак напомена"
-#: objcopy.c:3489
+#: objcopy.c:3515
#, c-format
msgid "cannot fill debug link section `%s'"
msgstr "не могу да попуним одељак прочишћавања „%s“"
-#: objcopy.c:3552
+#: objcopy.c:3578
msgid "error copying private BFD data"
msgstr "ниÑам уÑпео да умножим личне БФД податке"
-#: objcopy.c:3563
+#: objcopy.c:3589
#, c-format
msgid "this target does not support %lu alternative machine codes"
msgstr "ова мета не подржава %lu заменÑке кодове машине"
-#: objcopy.c:3567
+#: objcopy.c:3593
msgid "treating that number as an absolute e_machine value instead"
msgstr "Ñматрам тај број за апÑолутну вредноÑÑ‚ „e_machine“"
-#: objcopy.c:3571
+#: objcopy.c:3597
msgid "ignoring the alternative value"
msgstr "занемарујем заменÑку вредноÑÑ‚"
-#: objcopy.c:3632
+#: objcopy.c:3658
msgid "sorry: copying thin archives is not currently supported"
msgstr "извините: умножавање танане архиве тренутно није подржано"
-#: objcopy.c:3639 objcopy.c:3695
+#: objcopy.c:3665 objcopy.c:3721
#, c-format
msgid "cannot create tempdir for archive copying (error: %s)"
msgstr "не могу да направим привремениу директоријум за умножавање архиве (грешка: %s)"
-#: objcopy.c:3674
+#: objcopy.c:3700
#, c-format
msgid "warning: illegal pathname found in archive member: %s"
msgstr "упозорење: нађох неиÑправан назив путање у члану архиве: %s"
-#: objcopy.c:3680
+#: objcopy.c:3706
#, c-format
msgid "warning: using the basename of the member instead: %s"
msgstr "упозорење: кориÑтим назив оÑнове члана: %s"
-#: objcopy.c:3728
+#: objcopy.c:3754
msgid "Unable to recognise the format of file"
msgstr "Ðе могу да препознам Ð·Ð°Ð¿Ð¸Ñ Ð´Ð°Ñ‚Ð¾Ñ‚ÐµÐºÐµ"
-#: objcopy.c:3850
+#: objcopy.c:3883
#, c-format
msgid "error: the input file '%s' is empty"
msgstr "грешка: улазна датотека „%s“ је празна"
-#: objcopy.c:3885
+#: objcopy.c:3925
msgid "--compress-debug-sections=zstd: binutils is not built with zstd support"
msgstr "--compress-debug-sections=zstd: binutils није изграђен Ñа „zstd“ подршком"
-#: objcopy.c:3941
+#: objcopy.c:3981
#, c-format
msgid "--add-gnu-debuglink ignored for archive %s"
msgstr "„--add-gnu-debuglink“ је занемарено за архиву „%s“"
-#: objcopy.c:4041
+#: objcopy.c:4095
#, c-format
msgid "Multiple renames of section %s"
msgstr "ВишеÑтрука преименовања одељка %s"
-#: objcopy.c:4086
+#: objcopy.c:4140
msgid "error in private header data"
msgstr "грешка у личним подацима заглавља"
-#: objcopy.c:4242 objcopy.c:4250
+#: objcopy.c:4273 objcopy.c:4281
msgid "failed to create output section"
msgstr "ниÑам уÑпео да направим излазни одељак"
-#: objcopy.c:4259
+#: objcopy.c:4290
msgid "failed to set size"
msgstr "ниÑам уÑпео да подеÑим величину"
-#: objcopy.c:4278
+#: objcopy.c:4309
msgid "failed to set vma"
msgstr "ниÑам уÑпео да подеÑим вма"
-#: objcopy.c:4327
+#: objcopy.c:4343
msgid "failed to set alignment"
msgstr "ниÑам уÑпео да подеÑим поравнање"
-#: objcopy.c:4342
+#: objcopy.c:4358
#, c-format
msgid "output section %s's alignment does not match its VMA"
msgstr "поравнање „%s“ одељка излаза Ñе не поклапа Ñа Ñвојим VMA"
-#: objcopy.c:4356
+#: objcopy.c:4372
#, c-format
msgid "output section %s's alignment does not match its LMA"
msgstr "поравнање „%s“ одељка излаза Ñе не поклапа Ñа Ñвојим LMA"
-#: objcopy.c:4386
+#: objcopy.c:4402
msgid "failed to copy private data"
msgstr "ниÑам уÑпео да умножим личне податке"
-#: objcopy.c:4540
+#: objcopy.c:4556
msgid "relocation count is negative"
msgstr "укупноÑÑ‚ премештаја је негативна"
#. User must pad the section up in order to do this.
-#: objcopy.c:4626
+#: objcopy.c:4642
#, c-format
msgid "cannot reverse bytes: length of section %s must be evenly divisible by %d"
msgstr "не могу да преокренем бајтове: дужина одељка %s мора бити парно дељива Ñа %d"
-#: objcopy.c:4826
+#: objcopy.c:4848
msgid "can't create debugging section"
msgstr "не могу да направим одељак прочишћавања"
-#: objcopy.c:4840
+#: objcopy.c:4862
msgid "can't set debugging section contents"
msgstr "не могу да подеÑим Ñадржај одељка прочишћавања"
-#: objcopy.c:4850
+#: objcopy.c:4872
#, c-format
msgid "don't know how to write debugging information for %s"
msgstr "не знам како да упишем податке прочишћавања за %s"
-#: objcopy.c:5042
+#: objcopy.c:5083
msgid "could not create temporary file to hold stripped copy"
msgstr "не могу да Ñтворим привремену датотеку да држим огољени примерак"
-#: objcopy.c:5116
+#: objcopy.c:5157
#, c-format
msgid "%s: bad version in PE subsystem"
msgstr "%s: лоше издање у ПЕ подÑиÑтему"
-#: objcopy.c:5146
+#: objcopy.c:5187
#, c-format
msgid "unknown PE subsystem: %s"
msgstr "непознат ПЕ подÑиÑтем: %s"
-#: objcopy.c:5235 objcopy.c:5511 objcopy.c:5591 objcopy.c:5729 objcopy.c:5761
-#: objcopy.c:5817 objcopy.c:5821 objcopy.c:5841
+#: objcopy.c:5276 objcopy.c:5552 objcopy.c:5632 objcopy.c:5770 objcopy.c:5802
+#: objcopy.c:5858 objcopy.c:5862 objcopy.c:5882
#, c-format
msgid "bad format for %s"
msgstr "лош Ð·Ð°Ð¿Ð¸Ñ Ð·Ð° „%s“"
-#: objcopy.c:5264
+#: objcopy.c:5305
#, c-format
msgid "cannot open: %s: %s"
msgstr "не могу да отворим: %s: %s"
-#: objcopy.c:5319
+#: objcopy.c:5360
msgid "byte number must be non-negative"
msgstr "број бајта мора бити не-негативан"
-#: objcopy.c:5325
+#: objcopy.c:5366
#, c-format
msgid "architecture %s unknown"
msgstr "непозната архитектура %s"
-#: objcopy.c:5333
+#: objcopy.c:5374
msgid "interleave must be positive"
msgstr "преплетање мора бити позитивно"
-#: objcopy.c:5342
+#: objcopy.c:5383
msgid "interleave width must be positive"
msgstr "ширина преплетања мора бити позитивна"
-#: objcopy.c:5666
+#: objcopy.c:5707
#, c-format
msgid "unrecognized --compress-debug-sections type `%s'"
msgstr "непозната „--compress-debug-sections“ врÑта „%s“"
-#: objcopy.c:5687
+#: objcopy.c:5728
#, c-format
msgid "unrecognized --elf-stt-common= option `%s'"
msgstr "непозната „--elf-stt-common“ опција „%s“"
-#: objcopy.c:5698
+#: objcopy.c:5739
#, c-format
msgid "Warning: truncating gap-fill from 0x%<PRIx64> to 0x%x"
msgstr "Упозорење: Ñкраћујем иÑпуну јаза од 0x%<PRIx64> до 0x%x"
-#: objcopy.c:5784
+#: objcopy.c:5825
msgid "bad format for --set-section-alignment: argument needed"
msgstr "лош Ð·Ð°Ð¿Ð¸Ñ Ð·Ð° „--set-section-alignment“: потребан је аргумент"
-#: objcopy.c:5788
+#: objcopy.c:5829
msgid "bad format for --set-section-alignment: numeric argument needed"
msgstr "лош Ð·Ð°Ð¿Ð¸Ñ Ð·Ð° „--set-section-alignment“: потребан је бројевни аргумент"
-#: objcopy.c:5793
+#: objcopy.c:5834
msgid "bad format for --set-section-alignment: alignment is not a power of two"
msgstr "лош Ð·Ð°Ð¿Ð¸Ñ Ð·Ð° „--set-section-alignment“: поравнање није Ñтепен двојке"
-#: objcopy.c:5900
+#: objcopy.c:5941
#, c-format
msgid "unknown long section names option '%s'"
msgstr "непозната дуга опција назива одељка „%s“"
-#: objcopy.c:5923
+#: objcopy.c:5964
msgid "unable to parse alternative machine code"
msgstr "не могу да обрадим заменÑки код машине"
-#: objcopy.c:5972
+#: objcopy.c:6013
msgid "number of bytes to reverse must be positive and even"
msgstr "број бајтова за преокретање мора бити позитиван и паран"
-#: objcopy.c:5975
+#: objcopy.c:6016
#, c-format
msgid "Warning: ignoring previous --reverse-bytes value of %d"
msgstr "Упозорење: занемарујем претходну вредноÑÑ‚ „--reverse-bytes“ од %d"
-#: objcopy.c:5990
+#: objcopy.c:6025
+#, c-format
+msgid "--file-alignment argument is not a power of two: %s - ignoring"
+msgstr "„--file-alignment“ аргумент није Ñтепен двојке: %s – занемарујем"
+
+#: objcopy.c:6036
#, c-format
msgid "%s: invalid reserve value for --heap"
msgstr "%s: неиÑправна вредноÑÑ‚ резерве за „--heap“"
-#: objcopy.c:5996
+#: objcopy.c:6042
#, c-format
msgid "%s: invalid commit value for --heap"
msgstr "%s: неиÑправна вредноÑÑ‚ предаје за „--heap“"
-#: objcopy.c:6011
+#: objcopy.c:6057
#, c-format
msgid "--section-alignment argument is not a power of two: %s - ignoring"
msgstr "„--section-alignment“ аргумент није Ñтепен двојке: %s – занемарујем"
-#: objcopy.c:6026
+#: objcopy.c:6072
#, c-format
msgid "%s: invalid reserve value for --stack"
msgstr "%s: неиÑправна вредноÑÑ‚ резерве за „--stack“"
-#: objcopy.c:6032
+#: objcopy.c:6078
#, c-format
msgid "%s: invalid commit value for --stack"
msgstr "%s: неиÑправна вредноÑÑ‚ предаје за „--stack“"
-#: objcopy.c:6050
+#: objcopy.c:6096
msgid "error: verilog data width must be 1, 2, 4, 8 or 16"
msgstr "грешка: ширина верилог података мора бити 1, 2, 4, 8 или 16"
-#: objcopy.c:6068
+#: objcopy.c:6114
msgid "--globalize-symbol(s) is incompatible with -G/--keep-global-symbol(s)"
msgstr "„--globalize-symbol(s)“ није ÑаглаÑно Ñа „-G/--keep-global-symbol(s)“"
-#: objcopy.c:6080
+#: objcopy.c:6126
msgid "interleave start byte must be set with --byte"
msgstr "почетни бајт преплетања мора бити подешен опцијом „--byte“"
-#: objcopy.c:6083
+#: objcopy.c:6129
msgid "byte number must be less than interleave"
msgstr "број бајтова мора бити мањи од преплетања"
-#: objcopy.c:6086
+#: objcopy.c:6132
msgid "interleave width must be less than or equal to interleave - byte`"
msgstr "ширина преплетања мора бити мања од или иÑта као преплетање – byte`"
-#: objcopy.c:6109
+#: objcopy.c:6155
#, c-format
msgid "unknown input EFI target: %s"
msgstr "непозната улазна ЕФИ мета: %s"
-#: objcopy.c:6119
+#: objcopy.c:6165
#, c-format
msgid "unknown output EFI target: %s"
msgstr "непозната излазна ЕФИ мета: %s"
-#: objcopy.c:6143
+#: objcopy.c:6189
#, c-format
msgid "warning: could not create temporary file whilst copying '%s', (error: %s)"
msgstr "упозорење: не могу да направим привремену датотеку док умножавам „%s“ (грешка: %s)"
-#: objcopy.c:6175 objcopy.c:6183
+#: objcopy.c:6221 objcopy.c:6229
#, c-format
msgid "%s %s%c0x%<PRIx64> never used"
msgstr "%s %s%c0x%<PRIx64> никад коришћено"
-#: objdump.c:256
+#: objdump.c:261
#, c-format
msgid "Usage: %s <option(s)> <file(s)>\n"
msgstr "Употреба: %s <опција(е)> <датотека(е)>\n"
-#: objdump.c:257
+#: objdump.c:262
#, c-format
msgid " Display information from object <file(s)>.\n"
msgstr " Приказује податке из <датотеке(а)> предмета.\n"
-#: objdump.c:258
+#: objdump.c:263
#, c-format
msgid " At least one of the following switches must be given:\n"
msgstr " Барем један од Ñледећих прекидача мора бити дат:\n"
-#: objdump.c:259
+#: objdump.c:264
#, c-format
msgid " -a, --archive-headers Display archive header information\n"
msgstr " -a, --archive-headers Приказује информације заглавља архиве\n"
-#: objdump.c:261
+#: objdump.c:266
#, c-format
msgid " -f, --file-headers Display the contents of the overall file header\n"
msgstr " -f, --file-headers Приказује Ñадржаје преклопних заглавља датотеке\n"
-#: objdump.c:263
+#: objdump.c:268
#, c-format
msgid " -p, --private-headers Display object format specific file header contents\n"
msgstr " -p, --private-headers Приказује Ñадржај заглавља датотеке Ñпецифичне за формат објекта\n"
-#: objdump.c:265
+#: objdump.c:270
#, c-format
msgid " -P, --private=OPT,OPT... Display object format specific contents\n"
msgstr " -P, --private=OPT,OPT... Приказује Ñадржај Ñпецифичан формату објекта\n"
-#: objdump.c:267
+#: objdump.c:272
#, c-format
msgid " -h, --[section-]headers Display the contents of the section headers\n"
msgstr " -h, --[одељка-]заглавља Приказује Ñадржај заглавља одељка\n"
-#: objdump.c:269
+#: objdump.c:274
#, c-format
msgid " -x, --all-headers Display the contents of all headers\n"
msgstr " -x, --all-headers Приказује Ñадржај Ñвих заглавља\n"
-#: objdump.c:271
+#: objdump.c:276
#, c-format
msgid " -d, --disassemble Display assembler contents of executable sections\n"
msgstr " -d, --disassemble Приказује Ñадржај аÑемблера извршних одељака\n"
-#: objdump.c:273
+#: objdump.c:278
#, c-format
msgid " -D, --disassemble-all Display assembler contents of all sections\n"
msgstr " -D, --disassemble Приказује Ñадржај аÑемблера Ñвих одељака\n"
-#: objdump.c:275
+#: objdump.c:280
#, c-format
msgid " --disassemble=<sym> Display assembler contents from <sym>\n"
msgstr " --disassemble=<Ñим> Приказује Ñадржај аÑемблера за <Ñим>\n"
-#: objdump.c:277
+#: objdump.c:282
#, c-format
msgid " -S, --source Intermix source code with disassembly\n"
msgstr " -S, --source Меша изворни код Ñа рашчлањивачем\n"
-#: objdump.c:279
+#: objdump.c:284
#, c-format
msgid " --source-comment[=<txt>] Prefix lines of source code with <txt>\n"
msgstr " --source-comment[=<текÑÑ‚>] Ставља <текÑÑ‚> као Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð¸Ð·Ð²Ð¾Ñ€Ð½Ð¾Ð³ кода\n"
-#: objdump.c:281
+#: objdump.c:286
#, c-format
msgid " -s, --full-contents Display the full contents of all sections requested\n"
msgstr " -s, --full-contents Приказује пун Ñадржај Ñвих захтеваних одељака\n"
-#: objdump.c:283
+#: objdump.c:288
#, c-format
msgid " -Z, --decompress Decompress section(s) before displaying their contents\n"
msgstr " -Z, --decompress РаÑпакује одељак(е) пре приказивања њиховог Ñадржаја\n"
-#: objdump.c:285
+#: objdump.c:290
#, c-format
msgid " -g, --debugging Display debug information in object file\n"
msgstr " -g, --debugging Приказује информације прочишћавања у објектној датотеци\n"
-#: objdump.c:287
+#: objdump.c:292
#, c-format
msgid " -e, --debugging-tags Display debug information using ctags style\n"
msgstr " -e, --debugging-tags Приказује информације прочишћавања кориÑтећи „ctags“ Ñтил\n"
-#: objdump.c:289
+#: objdump.c:294
#, c-format
msgid " -G, --stabs Display (in raw form) any STABS info in the file\n"
msgstr " -G, --stabs Приказује (у Ñировом облики+у) Ñве „STABS“ информације у датотеци\n"
-#: objdump.c:291
+#: objdump.c:296
#, c-format
msgid ""
" -W, --dwarf[a/=abbrev, A/=addr, r/=aranges, c/=cu_index, L/=decodedline,\n"
@@ -6346,7 +6370,7 @@ msgstr ""
" U/=инфо_трага]\n"
" Приказује Ñадржај одељака „DWARF“ прочишћавања\n"
-#: objdump.c:298
+#: objdump.c:303
#, c-format
msgid ""
" -Wk,--dwarf=links Display the contents of sections that link to\n"
@@ -6355,7 +6379,7 @@ msgstr ""
" -Wk,--dwarf=links Приказује Ñадржај одељака који повезују на одвојене\n"
" датотеке информација прочишћавања\n"
-#: objdump.c:302
+#: objdump.c:307
#, c-format
msgid ""
" -WK,--dwarf=follow-links\n"
@@ -6364,7 +6388,7 @@ msgstr ""
" -WK,--dwarf=follow-links\n"
" Прати везе до одвојених датотека информација прочишћавања (оÑновно)\n"
-#: objdump.c:305
+#: objdump.c:310
#, c-format
msgid ""
" -WN,--dwarf=no-follow-links\n"
@@ -6373,7 +6397,7 @@ msgstr ""
" -WN,--dwarf=no-follow-links\n"
" Ðе прати везе до одвојених датотека информација прочишћавања\n"
-#: objdump.c:309
+#: objdump.c:314
#, c-format
msgid ""
" -WK,--dwarf=follow-links\n"
@@ -6382,7 +6406,7 @@ msgstr ""
" -WK,--dwarf=follow-links\n"
" Прати везе до одвојених датотека информација прочишћавања\n"
-#: objdump.c:312
+#: objdump.c:317
#, c-format
msgid ""
" -WN,--dwarf=no-follow-links\n"
@@ -6393,7 +6417,7 @@ msgstr ""
" Ðе прати везе до одвојених датотека информација прочишћавања\n"
" (оÑновно)\n"
-#: objdump.c:318
+#: objdump.c:323
#, c-format
msgid ""
" -WD --dwarf=use-debuginfod\n"
@@ -6402,7 +6426,7 @@ msgstr ""
" -WD --dwarf=use-debuginfod\n"
" Када прати везе, такође пропитује Ñервере позадинца информација прочишћавања (оÑновно)\n"
-#: objdump.c:321
+#: objdump.c:326
#, c-format
msgid ""
" -WE --dwarf=do-not-use-debuginfod\n"
@@ -6411,7 +6435,7 @@ msgstr ""
" -WE --dwarf=do-not-use-debuginfod\n"
" Када прати везе, не пропитује Ñервере позадинца информација прочишћавања\n"
-#: objdump.c:325
+#: objdump.c:330
#, c-format
msgid ""
" -L, --process-links Display the contents of non-debug sections in\n"
@@ -6420,57 +6444,57 @@ msgstr ""
" -L, --process-links Приказује Ñадржај одељака не-прочишћавања у\n"
" одвојеним датотекама информација прочишћавања. (Подразумева „-WK“)\n"
-#: objdump.c:329
+#: objdump.c:334
#, c-format
msgid " --ctf[=SECTION] Display CTF info from SECTION, (default `.ctf')\n"
msgstr " --ctf[=ОДЕЉÐК] Приказује „CTF“ податке из ОДЕЉКÐ, (оÑновно је „.ctf“)\n"
-#: objdump.c:332
+#: objdump.c:337
#, c-format
msgid " --sframe[=SECTION] Display SFrame info from SECTION, (default '.sframe')\n"
msgstr " --sframe[=ОДЕЉÐК] Приказује „SFrame“ инфо из ОДЕЉКÐ, (оÑновно „.sframe“)\n"
-#: objdump.c:334
+#: objdump.c:339
#, c-format
msgid " -t, --syms Display the contents of the symbol table(s)\n"
msgstr " -t, --syms Приказује Ñадржај табеле(а) Ñимбола\n"
-#: objdump.c:336
+#: objdump.c:341
#, c-format
msgid " -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
msgstr " -T, --dynamic-syms Приказује Ñадржај динамичке табеле Ñимбола\n"
-#: objdump.c:338
+#: objdump.c:343
#, c-format
msgid " -r, --reloc Display the relocation entries in the file\n"
msgstr " -r, --reloc Приказује уноÑе премештања у датотеци\n"
-#: objdump.c:340
+#: objdump.c:345
#, c-format
msgid " -R, --dynamic-reloc Display the dynamic relocation entries in the file\n"
msgstr " -R, --reloc Приказује динамичке уноÑе премештања у датотеци\n"
-#: objdump.c:342
+#: objdump.c:347
#, c-format
msgid " @<file> Read options from <file>\n"
msgstr " @<датотека> Чита опције из <датотеке>\n"
-#: objdump.c:344
+#: objdump.c:349
#, c-format
msgid " -v, --version Display this program's version number\n"
msgstr " -V --version Приказује издање овог програма\n"
-#: objdump.c:346
+#: objdump.c:351
#, c-format
msgid " -i, --info List object formats and architectures supported\n"
msgstr " -i, --info ИÑпиÑује подржане објектне формате и архитектуре\n"
-#: objdump.c:348
+#: objdump.c:353
#, c-format
msgid " -H, --help Display this information\n"
msgstr " -H --help Приказује ове информације\n"
-#: objdump.c:355
+#: objdump.c:360
#, c-format
msgid ""
"\n"
@@ -6479,66 +6503,66 @@ msgstr ""
"\n"
" Следећи прекидачи Ñу опционални:\n"
-#: objdump.c:356
+#: objdump.c:361
#, c-format
msgid " -b, --target=BFDNAME Specify the target object format as BFDNAME\n"
msgstr " -b, --target=БФДÐÐЗИВ Ðаводи формат објекта мете као БФДÐÐЗИВ\n"
-#: objdump.c:358
+#: objdump.c:363
#, c-format
msgid " -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
msgstr " -m, --architecture=РÐЧУÐÐР Ðаводи циљну архитектуру као РÐЧУÐÐР\n"
-#: objdump.c:360
+#: objdump.c:365
#, c-format
msgid " -j, --section=NAME Only display information for section NAME\n"
msgstr " -j, --section=ÐÐЗИВ Само приказује информације за одељак ÐÐЗИВ\n"
-#: objdump.c:362
+#: objdump.c:367
#, c-format
msgid " -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
msgstr " -M, --disassembler-options=ОПЦ Убацује текÑÑ‚ ОПЦ у рашчлањивач\n"
-#: objdump.c:364
+#: objdump.c:369
#, c-format
msgid " -EB --endian=big Assume big endian format when disassembling\n"
msgstr " -EB --endian=велика Подразумева формат велике крајњоÑти приликом рашчлањивања\n"
-#: objdump.c:366
+#: objdump.c:371
#, c-format
msgid " -EL --endian=little Assume little endian format when disassembling\n"
msgstr " -EL --endian=мала Подразумева формат мале крајњоÑти приликом рашчлањивања\n"
-#: objdump.c:368
+#: objdump.c:373
#, c-format
msgid " --file-start-context Include context from start of file (with -S)\n"
msgstr " --file-start-context Укључује Ñаджај Ñа почетка датотеке (Ñа „-S“)\n"
-#: objdump.c:370
+#: objdump.c:375
#, c-format
msgid " -I, --include=DIR Add DIR to search list for source files\n"
msgstr " -I, --include=ДИР Додаје ДИР на ÑпиÑак претраге за изворне датотеке\n"
-#: objdump.c:372
+#: objdump.c:377
#, c-format
msgid " -l, --line-numbers Include line numbers and filenames in output\n"
msgstr " -l, --line-numbers Укључује бројеве редова и називе датотека на излазу\n"
-#: objdump.c:374
+#: objdump.c:379
#, c-format
msgid " -F, --file-offsets Include file offsets when displaying information\n"
msgstr " -F, --file-offsets Укључује помераје датотека приликом приказивања информација\n"
-#: objdump.c:376
+#: objdump.c:381
#, c-format
msgid " -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
msgstr " -C, --demangle[=СТИЛ] Декодира прекрштене/обрађене називе Ñимбола\n"
-#: objdump.c:378
+#: objdump.c:383
msgid " STYLE can be "
msgstr " СТИЛ може бити "
-#: objdump.c:380
+#: objdump.c:385
#, c-format
msgid ""
" --recurse-limit Enable a limit on recursion whilst demangling\n"
@@ -6547,17 +6571,17 @@ msgstr ""
" --recurse-limit Укључује ограничење понављања приликом раÑкршћавања\n"
" (оÑновно)\n"
-#: objdump.c:383
+#: objdump.c:388
#, c-format
msgid " --no-recurse-limit Disable a limit on recursion whilst demangling\n"
msgstr " --no-recurse-limit ИÑкључује ограничење понављања приликом раÑкршћавања\n"
-#: objdump.c:385
+#: objdump.c:390
#, c-format
msgid " -w, --wide Format output for more than 80 columns\n"
msgstr " -w, --wide Обликује излаз за више од 80 колона\n"
-#: objdump.c:387
+#: objdump.c:392
#, c-format
msgid ""
" -U[d|l|i|x|e|h] Controls the display of UTF-8 unicode characters\n"
@@ -6566,102 +6590,102 @@ msgstr ""
" -U[d|l|i|x|e|h] Контролише приказ УТФ-8 јуникод знакова\n"
" --unicode=[default|locale|invalid|hex|escape|highlight]\n"
-#: objdump.c:390
+#: objdump.c:395
#, c-format
msgid " -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n"
msgstr " -z, --disassemble-zeroes Ðе преÑкаче блокове нула приликом рашчлањивања\n"
-#: objdump.c:392
+#: objdump.c:397
#, c-format
msgid " --start-address=ADDR Only process data whose address is >= ADDR\n"
msgstr " --start-address=ÐДР Само обрађује податке чија адреÑа је >= ÐДР\n"
-#: objdump.c:394
+#: objdump.c:399
#, c-format
msgid " --stop-address=ADDR Only process data whose address is < ADDR\n"
msgstr " --stop-address=ÐДР Само обрађује податке чија адреÑа је < ÐДР\n"
-#: objdump.c:396
+#: objdump.c:401
#, c-format
msgid " --no-addresses Do not print address alongside disassembly\n"
msgstr " --no-addresses Ðе иÑпиÑује адреÑе уз рашчлањивање\n"
-#: objdump.c:398
+#: objdump.c:403
#, c-format
msgid " --prefix-addresses Print complete address alongside disassembly\n"
msgstr " --prefix-addresses ИÑпиÑује потпуну адреÑу уз рашчлањивање\n"
-#: objdump.c:400
+#: objdump.c:405
#, c-format
msgid " --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
msgstr " --[no-]show-raw-insn Приказује хекÑадецимално уз Ñимболичко рашчлањивање\n"
-#: objdump.c:402
+#: objdump.c:407
#, c-format
msgid " --insn-width=WIDTH Display WIDTH bytes on a single line for -d\n"
msgstr " --insn-width=ШИРИÐРПриказује ШИРИÐРбајтова у једном реду за „-d“\n"
-#: objdump.c:404
+#: objdump.c:409
#, c-format
msgid " --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n"
msgstr " --adjust-vma=ПОМЕРÐЈ Додаје ПОМЕРÐЈ Ñвим приказаним адреÑама одељка\n"
-#: objdump.c:406
+#: objdump.c:411
#, c-format
msgid " --show-all-symbols When disassembling, display all symbols at a given address\n"
msgstr " --show-all-symbols Приликом рашчлањивања, приказује Ñве Ñимболе на датој адреÑи\n"
-#: objdump.c:408
+#: objdump.c:413
#, c-format
msgid " --special-syms Include special symbols in symbol dumps\n"
msgstr " --special-syms Укључује нарочите Ñимболе у иÑпиÑу Ñимбола\n"
-#: objdump.c:410
+#: objdump.c:415
#, c-format
msgid " --inlines Print all inlines for source line (with -l)\n"
msgstr " --inlines ИÑпиÑује Ñва надовезивања за изворни ред (Ñа „-l“)\n"
-#: objdump.c:412
+#: objdump.c:417
#, c-format
msgid " --prefix=PREFIX Add PREFIX to absolute paths for -S\n"
msgstr " --prefix=ПРЕФИКС Додаје ПРЕФИКС апÑолутним путањама за „-S“\n"
-#: objdump.c:414
+#: objdump.c:419
#, c-format
msgid " --prefix-strip=LEVEL Strip initial directory names for -S\n"
msgstr " --prefix-strip=ÐИВО ИÑпражњује почетне називе директоријума за „-S“\n"
-#: objdump.c:416
+#: objdump.c:421
#, c-format
msgid " --dwarf-depth=N Do not display DIEs at depth N or greater\n"
msgstr " --dwarf-depth=N Ðе приказује „DIE“-е на дубини N или већој\n"
-#: objdump.c:418
+#: objdump.c:423
#, c-format
msgid " --dwarf-start=N Display DIEs starting at offset N\n"
msgstr " --dwarf-start=N Приказује „DIE“ почевши на померају N\n"
-#: objdump.c:420
+#: objdump.c:425
#, c-format
msgid " --dwarf-check Make additional dwarf consistency checks.\n"
msgstr " --dwarf-check Одрађује додатна проверавања „dwarf“ доÑледноÑти.\n"
-#: objdump.c:423
+#: objdump.c:428
#, c-format
msgid " --ctf-parent=NAME Use CTF archive member NAME as the CTF parent\n"
msgstr " --ctf-parent=ÐÐЗИВ КориÑти ÐÐЗИВ „CTF“ члана архиве као родитеља „CTF“-а\n"
-#: objdump.c:426
+#: objdump.c:431
#, c-format
msgid " --visualize-jumps Visualize jumps by drawing ASCII art lines\n"
msgstr " --visualize-jumps Приказује Ñкокове иÑцртавајући редове ÐСКРИ Ñимболима\n"
-#: objdump.c:428
+#: objdump.c:433
#, c-format
msgid " --visualize-jumps=color Use colors in the ASCII art\n"
msgstr " --visualize-jumps=боја КориÑти боје у ÐСКРИ иÑпиÑу\n"
-#: objdump.c:430
+#: objdump.c:435
#, c-format
msgid ""
" --visualize-jumps=extended-color\n"
@@ -6670,37 +6694,37 @@ msgstr ""
" --visualize-jumps=проширена-боја\n"
" КориÑти проширене 8-битне кодове боје\n"
-#: objdump.c:433
+#: objdump.c:438
#, c-format
msgid " --visualize-jumps=off Disable jump visualization\n"
msgstr " --visualize-jumps=off ИÑкључује приказивање Ñкока\n"
-#: objdump.c:436
+#: objdump.c:441
#, c-format
msgid " --disassembler-color=off Disable disassembler color output.\n"
msgstr " --disassembler-color=off ИÑкључује обојени излаз раÑтављача.\n"
-#: objdump.c:438
+#: objdump.c:443
#, c-format
msgid " --disassembler-color=terminal Enable disassembler color output if displaying on a terminal. (default)\n"
msgstr " --disassembler-color=terminal Укључује обојени излаз раÑтављача ако приказује на терминалу. (оÑновно)\n"
-#: objdump.c:441
+#: objdump.c:446
#, c-format
msgid " --disassembler-color=off Disable disassembler color output. (default)\n"
msgstr " --disassembler-color=off ИÑкључује обојени излаз раÑтављача. (оÑновно)\n"
-#: objdump.c:443
+#: objdump.c:448
#, c-format
msgid " --disassembler-color=terminal Enable disassembler color output if displaying on a terminal.\n"
msgstr " --disassembler-color=terminal Укључује обојени излаз раÑтављача ако приказује на терминалу.\n"
-#: objdump.c:446
+#: objdump.c:451
#, c-format
msgid " --disassembler-color=on Enable disassembler color output.\n"
msgstr " --disassembler-color=on Укључује обојени излаз раÑтављача.\n"
-#: objdump.c:448
+#: objdump.c:453
#, c-format
msgid ""
" --disassembler-color=extended Use 8-bit colors in disassembler output.\n"
@@ -6709,7 +6733,7 @@ msgstr ""
" --disassembler-color=extended КориÑти 8-битне боје у излазу раÑтављача.\n"
"\n"
-#: objdump.c:459
+#: objdump.c:464
#, c-format
msgid ""
"\n"
@@ -6718,70 +6742,70 @@ msgstr ""
"\n"
"Подржане опције за прекидач „-P/--private“:\n"
-#: objdump.c:832
+#: objdump.c:837
#, c-format
msgid "section '%s' mentioned in a -j option, but not found in any input file"
msgstr "одељак „%s“ је поменут у опцији „-j“, али га нема ни у једној улазној датотеци"
-#: objdump.c:990
+#: objdump.c:995
#, c-format
msgid "Sections:\n"
msgstr "Одељци:\n"
-#: objdump.c:996
+#: objdump.c:1001
#, c-format
msgid "Idx %-*s Size %-*s%-*sFile off Algn"
msgstr "Idx %-*s Величина %-*s%-*sДатотека Поравн"
-#: objdump.c:1002
+#: objdump.c:1007
#, c-format
msgid " Flags"
msgstr " Опције"
-#: objdump.c:1019
+#: objdump.c:1024
#, c-format
msgid "failed to read symbol table from: %s"
msgstr "ниÑам уÑпео да прочитам табелу Ñимбола из: %s"
-#: objdump.c:1021 objdump.c:5514 objdump.c:5566
+#: objdump.c:1026 objdump.c:5513 objdump.c:5595
msgid "error message was"
msgstr "порука грешке беше"
-#: objdump.c:1050
+#: objdump.c:1055
#, c-format
msgid "%s: not a dynamic object"
msgstr "%s: није динамички објекат"
-#: objdump.c:1655 objdump.c:1720
+#: objdump.c:1663 objdump.c:1728
#, c-format
msgid " (File Offset: 0x%lx)"
msgstr " (Померај датотеке: 0x%lx)"
-#: objdump.c:2142
+#: objdump.c:2150
#, c-format
msgid "source file %s is more recent than object file\n"
msgstr "датотека извора „%s“ је новија од датотеке објекта\n"
-#: objdump.c:2511
+#: objdump.c:2519
msgid "disassembly color not correctly selected"
msgstr "боја рашчлањења није правилно изабрана"
-#: objdump.c:3385
+#: objdump.c:3393
#, c-format
msgid "\t... (skipping %lu zeroes, resuming at file offset: 0x%lx)\n"
msgstr "\t... (преÑкачем %lu нуле, наÑтављам на померају датотеке: 0x%lx)\n"
-#: objdump.c:3524
+#: objdump.c:3532
#, c-format
msgid "disassemble_fn returned length %d"
msgstr "„disassemble_fn“ даје дужину %d"
-#: objdump.c:3861 objdump.c:5131
+#: objdump.c:3869 objdump.c:5130
#, c-format
msgid "Reading section %s failed because: %s"
msgstr "ÐиÑам уÑпео да прочитам одељак %s због: %s"
-#: objdump.c:3877
+#: objdump.c:3885
#, c-format
msgid ""
"\n"
@@ -6790,17 +6814,17 @@ msgstr ""
"\n"
"РаÑтављање одељка %s:\n"
-#: objdump.c:4188
+#: objdump.c:4202
#, c-format
msgid "can't use supplied machine %s"
msgstr "не могу да кориÑтим доÑтављену машину %s"
-#: objdump.c:4211
+#: objdump.c:4225
#, c-format
msgid "can't disassemble for architecture %s\n"
msgstr "не могу да раÑтавим за архитектуру %s\n"
-#: objdump.c:4304
+#: objdump.c:4324
#, c-format
msgid ""
"\n"
@@ -6809,7 +6833,7 @@ msgstr ""
"\n"
"Одељак „%s“ има неиÑправну величину: %#<PRIx64>.\n"
-#: objdump.c:4353
+#: objdump.c:4373
#, c-format
msgid ""
"\n"
@@ -6818,12 +6842,12 @@ msgstr ""
"\n"
"Ðе могу да добавим Ñадржај за одељак „%s“.\n"
-#: objdump.c:4516
+#: objdump.c:4536
#, c-format
msgid "File %s does not contain any dwarf debug information\n"
msgstr "Датотека „%s“ не Ñадржи никакве „dwarf“ податке прочишћавања\n"
-#: objdump.c:4552
+#: objdump.c:4572 objdump.c:4999
#, c-format
msgid ""
"No %s section present\n"
@@ -6832,12 +6856,12 @@ msgstr ""
"Ðема %s одељка\n"
"\n"
-#: objdump.c:4561
+#: objdump.c:4581
#, c-format
msgid "reading %s section of %s failed: %s"
msgstr "читање „%s“ одељка %s поља: %s"
-#: objdump.c:4599
+#: objdump.c:4619
#, c-format
msgid ""
"Contents of %s section:\n"
@@ -6846,17 +6870,17 @@ msgstr ""
"Садржај одељка %s:\n"
"\n"
-#: objdump.c:4741
+#: objdump.c:4761
#, c-format
msgid "architecture: %s, "
msgstr "архитектура: %s, "
-#: objdump.c:4744
+#: objdump.c:4764
#, c-format
msgid "flags 0x%08x:\n"
msgstr "опције 0x%08x:\n"
-#: objdump.c:4757
+#: objdump.c:4777
#, c-format
msgid ""
"\n"
@@ -6865,25 +6889,25 @@ msgstr ""
"\n"
"почетна адреÑа 0x"
-#: objdump.c:4803 readelf.c:16929
+#: objdump.c:4823 readelf.c:16942
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
-#: objdump.c:4803 readelf.c:16929
+#: objdump.c:4823 readelf.c:16942
msgid "warning"
msgstr "упозорење"
-#: objdump.c:4803 readelf.c:16929
+#: objdump.c:4823 readelf.c:16942
msgid "error"
msgstr "грешка"
-#: objdump.c:4809 readelf.c:16934
+#: objdump.c:4829 readelf.c:16947
#, c-format
msgid "CTF error: cannot get CTF errors: `%s'"
msgstr "„CTF“ грешка: не могу да добавим „CTF“ грешке: %s"
-#: objdump.c:4833 readelf.c:16956
+#: objdump.c:4853 readelf.c:16969
#, c-format
msgid ""
"\n"
@@ -6892,81 +6916,95 @@ msgstr ""
"\n"
"Члан „CTF“ архиве: %s:\n"
-#: objdump.c:4853
+#: objdump.c:4873
#, c-format
msgid "Iteration failed: %s, %s"
msgstr "Понављање није уÑпело: %s, %s"
-#: objdump.c:4899 objdump.c:4919 objdump.c:4932
+#: objdump.c:4919 objdump.c:4939 objdump.c:4952
#, c-format
msgid "CTF open failure: %s"
msgstr "ÐиÑам уÑпео да отворим „CTF“: %s"
-#: objdump.c:4940
+#: objdump.c:4960
#, c-format
msgid "Contents of CTF section %s:\n"
msgstr "Садржај „CTF“ одељка %s:\n"
-#: objdump.c:4947
+#: objdump.c:4970
#, c-format
msgid "CTF archive member open failure: %s"
msgstr "неуÑпех отварања члана „CTF“ архиве: %s"
-#: objdump.c:4998 readelf.c:17130
-#, c-format
-msgid "Contents of the SFrame section %s:"
-msgstr "Садржај одељка „SFrame“ „%s“:"
-
-#: objdump.c:5012
+#: objdump.c:5011
#, c-format
msgid "warning: private headers incomplete: %s"
msgstr "упозорење: лична заглавља Ñу непотпуна: %s"
-#: objdump.c:5030
+#: objdump.c:5029
msgid "option -P/--private not supported by this file"
msgstr "опција „-P/--private“ није подржана овом датотеком"
-#: objdump.c:5054
+#: objdump.c:5053
#, c-format
msgid "target specific dump '%s' not supported"
msgstr "нарочит избачај мете „%s“ није подржан"
-#: objdump.c:5120
+#: objdump.c:5119
#, c-format
msgid "Contents of section %s:"
msgstr "Садржај одељка %s:"
-#: objdump.c:5122
+#: objdump.c:5121
#, c-format
msgid " (Starting at file offset: 0x%lx)"
msgstr " (Почињем на померају датотеке: 0x%lx)"
-#: objdump.c:5127 readelf.c:16627
+#: objdump.c:5126 readelf.c:16640
#, c-format
msgid " NOTE: This section is compressed, but its contents have NOT been expanded for this dump.\n"
msgstr " ÐÐПОМЕÐÐ: Овај одељак је Ñажет, али његов Ñадржај ÐИЈЕ раширен за овај избачај.\n"
-#: objdump.c:5235
+#: objdump.c:5234
#, c-format
msgid "no symbols\n"
msgstr "нема Ñимбола\n"
-#: objdump.c:5242
+#: objdump.c:5241
#, c-format
msgid "no information for symbol number %ld\n"
msgstr "нема података за број Ñимбола %ld\n"
-#: objdump.c:5245
+#: objdump.c:5244
#, c-format
msgid "could not determine the type of symbol number %ld\n"
msgstr "не могу да одредим врÑту броја Ñимбола %ld\n"
-#: objdump.c:5512 objdump.c:5564
+#: objdump.c:5511 objdump.c:5593
#, c-format
msgid "failed to read relocs in: %s"
msgstr "ниÑам уÑпео да прочитам премештања у: %s"
-#: objdump.c:5695
+#: objdump.c:5565
+#, c-format
+msgid "%s: This file does not contain any ordinary relocations.\n"
+msgstr "%s: Ова датотека не Ñадржи никакве обичне премештаје.\n"
+
+#: objdump.c:5568
+#, c-format
+msgid "%s: It does however contain RELR relocations. These can be displayed by the readelf program\n"
+msgstr "%s: Међутим Ñадржи RELR премештаје. Њих може да прикаже програм „readelf“\n"
+
+#: objdump.c:5612
+#, c-format
+msgid ""
+"%s: contains RELR relocations which are not displayed by %s.\n"
+"These can be displayed by the readelf program instead.\n"
+msgstr ""
+"%s: Ñадржи RELR премештаје које „%s“ не приказује.\n"
+"УмеÑто тога могу бити приказани „readelf“ програмом.\n"
+
+#: objdump.c:5736
#, c-format
msgid ""
"\n"
@@ -6975,60 +7013,64 @@ msgstr ""
"\n"
"%s: Ð·Ð°Ð¿Ð¸Ñ Ð´Ð°Ñ‚Ð¾Ñ‚ÐµÐºÐµ %s\n"
-#: objdump.c:5808
+#: objdump.c:5849
#, c-format
msgid "%s: printing debugging information failed"
msgstr "%s: није уÑпело иÑпиÑивање података прочишћавања"
-#: objdump.c:5895
+#: objdump.c:5936
#, c-format
msgid "In archive %s:\n"
msgstr "У архиви %s:\n"
#. Prevent corrupted files from spinning us into an
#. infinite loop. 100 is an arbitrary heuristic.
-#: objdump.c:5900
+#: objdump.c:5941
msgid "Archive nesting is too deep"
msgstr "Угнежђење архиве је предубоко"
-#: objdump.c:5905
+#: objdump.c:5946
#, c-format
msgid "In nested archive %s:\n"
msgstr "У угнежденој архиви %s:\n"
-#: objdump.c:6055
+#: objdump.c:6096
msgid "error: the start address should be before the end address"
msgstr "грешка: адреÑа почетка мора бити пре адреÑе краја"
-#: objdump.c:6060
+#: objdump.c:6101
msgid "error: the stop address should be after the start address"
msgstr "грешка: адреÑа краја мора бити након адреÑе почетка"
-#: objdump.c:6072
+#: objdump.c:6113
msgid "error: prefix strip must be non-negative"
msgstr "грешка: иÑцепак префикÑа мора бити не-негативан"
-#: objdump.c:6077
+#: objdump.c:6118
msgid "error: instruction width must be in the range 1 to "
msgstr "грешка: ширина инÑтрукције мора бити у опÑегу од 1 до "
-#: objdump.c:6100
+#: objdump.c:6141
msgid "unrecognized argument to --visualize-option"
msgstr "непознати аргументи за „--visualize-option“"
-#: objdump.c:6120
+#: objdump.c:6161
msgid "unrecognized argument to --disassembler-color"
msgstr "непознат аргумент за „--disassembler-color“"
-#: objdump.c:6131
+#: objdump.c:6172
msgid "unrecognized -E option"
msgstr "непозната опција „-E“"
-#: objdump.c:6142
+#: objdump.c:6183
#, c-format
msgid "unrecognized --endian type `%s'"
msgstr "непозната „--endian“ врÑта „%s“"
+#: objdump.c:6290 readelf.c:6546
+msgid "Unrecognized debug option 'sframe-internal-only'\n"
+msgstr "Ðепозната опција прочишћавања „sframe-internal-only“\n"
+
#: od-elf32_avr.c:55
#, c-format
msgid ""
@@ -7453,7 +7495,7 @@ msgstr "Број одељака:\t\t\\%d\n"
msgid "Time/Date:\t\t\t%#08lx\t- "
msgstr "Време/датум:\t\t\t%#08lx\t- "
-#: od-pe.c:399 od-xcoff.c:422 readelf.c:21727
+#: od-pe.c:399 od-xcoff.c:422 readelf.c:21737
#, c-format
msgid "not set\n"
msgstr "није подешено\n"
@@ -7497,7 +7539,7 @@ msgstr "грешка: не могу да прочитам AOUT и PE+ загла
msgid "Magic:\t\t\t\t%x\t\t- %s\n"
msgstr "Магија:\t\t\t\t%x\t\t- %s\n"
-#: od-pe.c:436 od-pe.c:538 readelf.c:19576 readelf.c:19645
+#: od-pe.c:436 od-pe.c:538 readelf.c:19547 readelf.c:19616
msgid "Unknown"
msgstr "Ðепознато"
@@ -8471,255 +8513,255 @@ msgstr "<Ð¸Ð½Ð´ÐµÐºÑ Ñ‚Ð°Ð±ÐµÐ»Ðµ ниÑке: %3ld>"
msgid "<corrupt string table index: %3ld>\n"
msgstr "<оштећен Ð¸Ð½Ð´ÐµÐºÑ Ñ‚Ð°Ð±ÐµÐ»Ðµ ниÑке: %3ld>\n"
-#: readelf.c:3048
+#: readelf.c:3051
#, c-format
msgid "Processor Specific: %lx"
msgstr "ПоÑебноÑÑ‚ процеÑора: %lx"
-#: readelf.c:3075
+#: readelf.c:3078
#, c-format
msgid "Operating System specific: %lx"
msgstr "ПоÑебноÑÑ‚ оперативног ÑиÑтема: %lx"
-#: readelf.c:3079 readelf.c:5580
+#: readelf.c:3082 readelf.c:5583
#, c-format
msgid "<unknown>: %lx"
msgstr "<непознато>: %lx"
-#: readelf.c:3179
+#: readelf.c:3182
msgid "NONE (None)"
msgstr "NONE (ништа)"
-#: readelf.c:3180
+#: readelf.c:3183
msgid "REL (Relocatable file)"
msgstr "REL (премеÑтива датотека)"
-#: readelf.c:3181
+#: readelf.c:3184
msgid "EXEC (Executable file)"
msgstr "EXEC (извршна датотека)"
-#: readelf.c:3184
+#: readelf.c:3187
msgid "DYN (Position-Independent Executable file)"
msgstr "DYN (Положајно незавиÑна извршна датотека)"
-#: readelf.c:3186
+#: readelf.c:3189
msgid "DYN (Shared object file)"
msgstr "DYN (дељена датотека предмета)"
-#: readelf.c:3187
+#: readelf.c:3190
msgid "CORE (Core file)"
msgstr "CORE (кључна датотека)"
-#: readelf.c:3191
+#: readelf.c:3194
#, c-format
msgid "Processor Specific: (%x)"
msgstr "ПоÑебноÑÑ‚ процеÑора: (%x)"
-#: readelf.c:3193
+#: readelf.c:3196
#, c-format
msgid "OS Specific: (%x)"
msgstr "ПоÑебноÑÑ‚ ОС-а: (%x)"
-#: readelf.c:3195
+#: readelf.c:3198
#, c-format
msgid "<unknown>: %x"
msgstr "<непознато>: %x"
#. Please keep this switch table sorted by increasing EM_ value.
#. 0
-#: readelf.c:3209 readelf.c:19574 readelf.c:19585
+#: readelf.c:3212 readelf.c:19545 readelf.c:19556
msgid "None"
msgstr "Ðишта"
-#: readelf.c:3457
+#: readelf.c:3460
#, c-format
msgid "<unknown>: 0x%x"
msgstr "<непознато>: 0x%x"
-#: readelf.c:3740
+#: readelf.c:3743
msgid ", <unknown>"
msgstr ", <непознато>"
-#: readelf.c:3907
+#: readelf.c:3910
#, c-format
msgid "Unrecognised IA64 VMS Command Code: %x\n"
msgstr "Ðепознат „IA64 VMS“ код наредби: %x\n"
-#: readelf.c:3944
+#: readelf.c:3947
msgid "unknown mac"
msgstr "непознат мак"
-#: readelf.c:4028
+#: readelf.c:4031
msgid ", <unknown MeP cpu type>"
msgstr ", <непозната врÑта „MeP“ процеÑора>"
-#: readelf.c:4049
+#: readelf.c:4052
msgid "<unknown MeP copro type>"
msgstr "<непозната „MeP copro“ врÑте>"
-#: readelf.c:4061 readelf.c:5010
+#: readelf.c:4064 readelf.c:5013
#, c-format
msgid ", unknown flags bits: %#x"
msgstr ", непознати битови заÑтавица: %#x"
-#: readelf.c:4170
+#: readelf.c:4173
msgid ", unknown CPU"
msgstr ", непозната ЦПЈ"
-#: readelf.c:4195
+#: readelf.c:4198
msgid ", unknown ABI"
msgstr ", непознат ÐБИ"
-#: readelf.c:4244 readelf.c:4691
+#: readelf.c:4247 readelf.c:4694
msgid ", unknown ISA"
msgstr ", непознат ИСÐ"
-#: readelf.c:4253
+#: readelf.c:4256
msgid ": architecture variant: "
msgstr ": варијанта архитектуре: "
-#: readelf.c:4302
+#: readelf.c:4305
msgid ": unknown"
msgstr ": непознато"
-#: readelf.c:4307
+#: readelf.c:4310
msgid ": unknown extra flag bits also present"
msgstr ": приÑутни Ñу битови непознате додатне опције"
-#: readelf.c:4830
+#: readelf.c:4833
msgid ", unknown v850 architecture variant"
msgstr ", непозната варијанта и850 архитектуре"
-#: readelf.c:4863
+#: readelf.c:4866
msgid ", unknown"
msgstr ", непознато"
-#: readelf.c:4929
+#: readelf.c:4932
#, c-format
msgid ", <unknown AMDGPU GPU type: %#x>"
msgstr ", <непозната врÑта графичког процеÑора „AMDGPU“: %#x>"
-#: readelf.c:4977
+#: readelf.c:4980
#, c-format
msgid ", <unknown xnack value: %#x>"
msgstr ", <непозната вредноÑÑ‚ „xnack“: %#x>"
-#: readelf.c:5002
+#: readelf.c:5005
#, c-format
msgid ", <unknown sramecc value: %#x>"
msgstr ", <непозната вредноÑÑ‚ „sramecc“: %#x>"
-#: readelf.c:5075
+#: readelf.c:5078
msgid ", relocatable"
msgstr ", премеÑтиво"
-#: readelf.c:5078
+#: readelf.c:5081
msgid ", relocatable-lib"
msgstr ", премеÑтива библиотека"
-#: readelf.c:5279
+#: readelf.c:5282
msgid "Standalone App"
msgstr "СамоÑталан програм"
-#: readelf.c:5288
+#: readelf.c:5291
msgid "Bare-metal C6000"
msgstr "Огољени-метал Ц6000"
-#: readelf.c:5298 readelf.c:6732 readelf.c:6748 readelf.c:21014 readelf.c:21114
-#: readelf.c:21161 readelf.c:21198 readelf.c:21259 readelf.c:21290
-#: readelf.c:21312
+#: readelf.c:5301 readelf.c:6744 readelf.c:6760 readelf.c:20985 readelf.c:21085
+#: readelf.c:21132 readelf.c:21169 readelf.c:21230 readelf.c:21261
+#: readelf.c:21288 readelf.c:21310
#, c-format
msgid "<unknown: %x>"
msgstr "<непознато: %x>"
#. This message is probably going to be displayed in a 15
#. character wide field, so put the hex value first.
-#: readelf.c:6075
+#: readelf.c:6079
#, c-format
msgid "%08x: <unknown>"
msgstr "%08x: <непознато>"
-#: readelf.c:6167
+#: readelf.c:6171
#, c-format
msgid "Usage: readelf <option(s)> elf-file(s)\n"
msgstr "Употреба: readelf <опција(е)> елф-датотека(е)\n"
-#: readelf.c:6168
+#: readelf.c:6172
#, c-format
msgid " Display information about the contents of ELF format files\n"
msgstr " Приказује податке о Ñадржају датотека ЕЛФ запиÑа\n"
-#: readelf.c:6169
+#: readelf.c:6173
#, c-format
msgid " Options are:\n"
msgstr " Опције Ñу:\n"
-#: readelf.c:6170
+#: readelf.c:6174
#, c-format
msgid " -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
msgstr " -a --all ИÑто као: -h -l -S -s -r -d -V -A -I\n"
-#: readelf.c:6172
+#: readelf.c:6176
#, c-format
msgid " -h --file-header Display the ELF file header\n"
msgstr " -h --file-header Приказује заглавље „ELF“ датотеке\n"
-#: readelf.c:6174
+#: readelf.c:6178
#, c-format
msgid " -l --program-headers Display the program headers\n"
msgstr " -l --program-headers Приказује заглавља програма\n"
-#: readelf.c:6176
+#: readelf.c:6180
#, c-format
msgid " --segments An alias for --program-headers\n"
msgstr " --segments ÐÐ»Ð¸Ñ˜Ð°Ñ Ð·Ð° „--program-headers“\n"
-#: readelf.c:6178
+#: readelf.c:6182
#, c-format
msgid " -S --section-headers Display the sections' header\n"
msgstr " -S --section-headers Приказује заглавље одељака\n"
-#: readelf.c:6180
+#: readelf.c:6184
#, c-format
msgid " --sections An alias for --section-headers\n"
msgstr " --sections ÐÐ»Ð¸Ñ˜Ð°Ñ Ð·Ð° „--section-headers“\n"
-#: readelf.c:6182
+#: readelf.c:6186
#, c-format
msgid " -g --section-groups Display the section groups\n"
msgstr " -g --section-groups Приказује групе одељка\n"
-#: readelf.c:6184
+#: readelf.c:6188
#, c-format
msgid " -t --section-details Display the section details\n"
msgstr " -t --section-details Приказује појединоÑти одељка\n"
-#: readelf.c:6186
+#: readelf.c:6190
#, c-format
msgid " -e --headers Equivalent to: -h -l -S\n"
msgstr " -e --headers ИÑто као: -h -l -S\n"
-#: readelf.c:6188
+#: readelf.c:6192
#, c-format
msgid " -s --syms Display the symbol table\n"
msgstr " -s --syms Приказује табелу Ñимбола\n"
-#: readelf.c:6190
+#: readelf.c:6194
#, c-format
msgid " --symbols An alias for --syms\n"
msgstr " --symbols ÐÐ»Ð¸Ñ˜Ð°Ñ Ð·Ð° „--syms“\n"
-#: readelf.c:6192
+#: readelf.c:6196
#, c-format
msgid " --dyn-syms Display the dynamic symbol table\n"
msgstr " --dyn-syms Приказује динамичку табелу Ñимбола\n"
-#: readelf.c:6194
+#: readelf.c:6198
#, c-format
msgid " --lto-syms Display LTO symbol tables\n"
msgstr " --lto-syms Приказује „LTO“ табеле Ñимбола\n"
-#: readelf.c:6196
+#: readelf.c:6200
#, c-format
msgid ""
" --sym-base=[0|8|10|16] \n"
@@ -8730,27 +8772,27 @@ msgstr ""
" Приморава оÑнову за величинама Ñимбола. Опције Ñу \n"
" mixed (оÑновно), octal, decimal, hexadecimal.\n"
-#: readelf.c:6200
+#: readelf.c:6204
#, c-format
msgid " -C --demangle[=STYLE] Decode mangled/processed symbol names\n"
msgstr " -C --demangle[=СТИЛ] Декодира прекрштене/обрађене називе Ñимбола\n"
-#: readelf.c:6204
+#: readelf.c:6208
#, c-format
msgid " --no-demangle Do not demangle low-level symbol names. (default)\n"
msgstr " --no-demangle Ðе раÑкршћавања називе Ñимбола ниÑког нивоа. (оÑновно)\n"
-#: readelf.c:6206
+#: readelf.c:6210
#, c-format
msgid " --recurse-limit Enable a demangling recursion limit. (default)\n"
msgstr " --recurse-limit Укључује ограничење понављања раÑкршћавања. (оÑновно)\n"
-#: readelf.c:6208
+#: readelf.c:6212
#, c-format
msgid " --no-recurse-limit Disable a demangling recursion limit\n"
msgstr " --no-recurse-limit ИÑкључује ограничење понављања раÑкршћавања\n"
-#: readelf.c:6210
+#: readelf.c:6214
#, c-format
msgid ""
" -U[dlexhi] --unicode=[default|locale|escape|hex|highlight|invalid]\n"
@@ -8765,57 +8807,57 @@ msgstr ""
" нитовима промене реда, или их Ñматра неиÑправним и приказје као\n"
" „{Ñ…ÐµÐºÑ Ð½Ð¸Ð·Ð¾Ð²Ðµ}“\n"
-#: readelf.c:6216
+#: readelf.c:6220
#, c-format
msgid " -X --extra-sym-info Display extra information when showing symbols\n"
msgstr " -X --extra-sym-info Приказује додатне информације када приказује Ñимболе\n"
-#: readelf.c:6218
+#: readelf.c:6222
#, c-format
msgid " --no-extra-sym-info Do not display extra information when showing symbols (default)\n"
msgstr " --no-extra-sym-info Ðе приказује додатне информације када приказује Ñимболе (оÑновно)\n"
-#: readelf.c:6220
+#: readelf.c:6224
#, c-format
msgid " -n --notes Display the contents of note sections (if present)\n"
msgstr " -n --notes Приказује Ñадржај одељака напомене (ако их има)\n"
-#: readelf.c:6222
+#: readelf.c:6226
#, c-format
msgid " -r --relocs Display the relocations (if present)\n"
msgstr " -r --relocs Приказује премештаје (ако их има)\n"
-#: readelf.c:6224
+#: readelf.c:6228
#, c-format
msgid " -u --unwind Display the unwind info (if present)\n"
msgstr " -u --unwind Приказује информације развијања (ако их има)\n"
-#: readelf.c:6226
+#: readelf.c:6230
#, c-format
msgid " -d --dynamic Display the dynamic section (if present)\n"
msgstr " -d --dynamic Приказује динамичке одељке (ако их има)\n"
-#: readelf.c:6228
+#: readelf.c:6232
#, c-format
msgid " -V --version-info Display the version sections (if present)\n"
msgstr " -V --version-info Приказује одељке издања (ако их има)\n"
-#: readelf.c:6230
+#: readelf.c:6234
#, c-format
msgid " -A --arch-specific Display architecture specific information (if any)\n"
msgstr " -A --arch-specific Приказује Ñпецифичне информације о архитектури (ако поÑтоје)\n"
-#: readelf.c:6232
+#: readelf.c:6236
#, c-format
msgid " -c --archive-index Display the symbol/file index in an archive\n"
msgstr " -c --archive-index Приказује Ð¸Ð½Ð´ÐµÐºÑ Ñимбола/датотеке у архиви\n"
-#: readelf.c:6234
+#: readelf.c:6238
#, c-format
msgid " -D --use-dynamic Use the dynamic section info when displaying symbols\n"
msgstr " -D --use-dynamic КориÑти информације динамичког одељка приликом приказивања Ñимбола\n"
-#: readelf.c:6236
+#: readelf.c:6240
#, c-format
msgid ""
" -L --lint|--enable-checks\n"
@@ -8824,7 +8866,7 @@ msgstr ""
" -L --lint|--enable-checks\n"
" Приказује поруке упозорења за могуће проблеме\n"
-#: readelf.c:6239
+#: readelf.c:6243
#, c-format
msgid ""
" -x --hex-dump=<number|name>\n"
@@ -8833,7 +8875,7 @@ msgstr ""
" -x --hex-dump=<број|назив>\n"
" ИÑпиÑује Ñадржај одељка <број|назив> као бајтове\n"
-#: readelf.c:6242
+#: readelf.c:6246
#, c-format
msgid ""
" -p --string-dump=<number|name>\n"
@@ -8842,7 +8884,7 @@ msgstr ""
" -p --string-dump=<број|назив>\n"
" ИÑпиÑује Ñадржај одељка <број|назив> као ниÑке\n"
-#: readelf.c:6245
+#: readelf.c:6249
#, c-format
msgid ""
" -R --relocated-dump=<number|name>\n"
@@ -8851,12 +8893,12 @@ msgstr ""
" -R --relocated-dump=<број|назив>\n"
" ИÑпиÑује премештене Ñадржаје одељка <број|назив>\n"
-#: readelf.c:6248
+#: readelf.c:6252
#, c-format
msgid " -z --decompress Decompress section before dumping it\n"
msgstr " -z --decompress РаÑпакује одељак пре иÑпиÑивања\n"
-#: readelf.c:6250
+#: readelf.c:6254
#, c-format
msgid ""
"\n"
@@ -8867,7 +8909,7 @@ msgstr ""
" -j --display-section=<назив|број>\n"
"\t\t Приказује Ñадржај назначеног одељка. Може Ñе понављати\n"
-#: readelf.c:6253
+#: readelf.c:6257
#, c-format
msgid ""
" -w --debug-dump[a/=abbrev, A/=addr, r/=aranges, c/=cu_index, L/=decodedline,\n"
@@ -8884,7 +8926,7 @@ msgstr ""
" U/=инфо_трага]\n"
" Приказује Ñадржај одељака „DWARF“ прочишћавања\n"
-#: readelf.c:6260
+#: readelf.c:6264
#, c-format
msgid ""
" -wk --debug-dump=links Display the contents of sections that link to separate\n"
@@ -8893,7 +8935,7 @@ msgstr ""
" -wk --debug-dump=везе Приказује Ñадржај одељака који повезују на одвојене\n"
" датотеке информација прочишћавања\n"
-#: readelf.c:6263
+#: readelf.c:6267
#, c-format
msgid ""
" -P --process-links Display the contents of non-debug sections in separate\n"
@@ -8902,7 +8944,7 @@ msgstr ""
" -P, --process-links Приказује Ñадржај одељака не-прочишћавања у\n"
" одвојеним датотекама информација прочишћавања. (Подразумева „-wK“)\n"
-#: readelf.c:6267
+#: readelf.c:6271
#, c-format
msgid ""
" -wK --debug-dump=follow-links\n"
@@ -8911,7 +8953,7 @@ msgstr ""
" -wK --debug-dump=follow-links\n"
" Прати везе до одвојених датотека информација прочишћавања (оÑновно)\n"
-#: readelf.c:6270
+#: readelf.c:6274
#, c-format
msgid ""
" -wN --debug-dump=no-follow-links\n"
@@ -8920,7 +8962,7 @@ msgstr ""
" wN --debug-dump=no-follow-links\n"
" Ðе прати везе до одвојених датотека информација прочишћавања\n"
-#: readelf.c:6274
+#: readelf.c:6278
#, c-format
msgid ""
" -wK --debug-dump=follow-links\n"
@@ -8929,7 +8971,7 @@ msgstr ""
" -wK --debug-dump=follow-links\n"
" Прати везе до одвојених датотека информација прочишћавања\n"
-#: readelf.c:6277
+#: readelf.c:6281
#, c-format
msgid ""
" -wN --debug-dump=no-follow-links\n"
@@ -8940,7 +8982,7 @@ msgstr ""
" Ðе прати везе до одвојених датотека информација прочишћавања\n"
" (оÑновно)\n"
-#: readelf.c:6283
+#: readelf.c:6287
#, c-format
msgid ""
" -wD --debug-dump=use-debuginfod\n"
@@ -8949,7 +8991,7 @@ msgstr ""
" -wD --debug-dump=use-debuginfod\n"
" Када прати везе, такође пропитује Ñервере позадинца информација прочишћавања (оÑновно)\n"
-#: readelf.c:6286
+#: readelf.c:6290
#, c-format
msgid ""
" -wE --debug-dump=do-not-use-debuginfod\n"
@@ -8958,27 +9000,27 @@ msgstr ""
" -wE --debug-dump=do-not-use-debuginfod\n"
" Када прати везе, не пропитује Ñервере позадинца информација прочишћавања\n"
-#: readelf.c:6290
+#: readelf.c:6294
#, c-format
msgid " --dwarf-depth=N Do not display DIEs at depth N or greater\n"
msgstr " --dwarf-depth=N Ðе приказује „DIE“-е на дубини N или већој\n"
-#: readelf.c:6292
+#: readelf.c:6296
#, c-format
msgid " --dwarf-start=N Display DIEs starting at offset N\n"
msgstr " --dwarf-start=N Приказује „DIE“ почевши на померају N\n"
-#: readelf.c:6295
+#: readelf.c:6299
#, c-format
msgid " --ctf=<number|name> Display CTF info from section <number|name>\n"
msgstr " --ctf=<број|назив> Приказује „CTF“ информације из одељка <број|назив>\n"
-#: readelf.c:6297
+#: readelf.c:6301
#, c-format
msgid " --ctf-parent=<name> Use CTF archive member <name> as the CTF parent\n"
msgstr " --ctf-parent=<назив> КориÑти <назив> „CTF“ члана архиве као родитеља „CTF“-а\n"
-#: readelf.c:6299
+#: readelf.c:6303
#, c-format
msgid ""
" --ctf-symbols=<number|name>\n"
@@ -8987,7 +9029,7 @@ msgstr ""
" --ctf-symbols=<број|назив>\n"
" КориÑти одељак <број|назив> као „CTF“ Ñпољну табелу Ñимбола\n"
-#: readelf.c:6302
+#: readelf.c:6306
#, c-format
msgid ""
" --ctf-strings=<number|name>\n"
@@ -8996,12 +9038,12 @@ msgstr ""
" --ctf-strings=<број|назив>\n"
" КориÑти одељак <број|назив> као „CTF“ Ñпољну табелу ниÑки\n"
-#: readelf.c:6306
+#: readelf.c:6310
#, c-format
msgid " --sframe[=NAME] Display SFrame info from section NAME, (default '.sframe')\n"
msgstr " --sframe[=ÐÐЗИВ] Приказује „SFrame“ инфо из одељка ÐÐЗИВ, (оÑновно „.sframe“)\n"
-#: readelf.c:6310
+#: readelf.c:6314
#, c-format
msgid ""
" -i --instruction-dump=<number|name>\n"
@@ -9010,146 +9052,150 @@ msgstr ""
" -i --instruction-dump=<број|назив>\n"
" РаÑтавља Ñадржај одељка <број|назив>\n"
-#: readelf.c:6314
+#: readelf.c:6318
#, c-format
msgid " -I --histogram Display histogram of bucket list lengths\n"
msgstr " -I --histogram Приказује хиÑтограм дужина ÑпиÑка ведра\n"
-#: readelf.c:6316
+#: readelf.c:6320
#, c-format
msgid " -W --wide Allow output width to exceed 80 characters\n"
msgstr " -W --wide Допушта да ширина излаза премаши 80 знакова\n"
-#: readelf.c:6318
+#: readelf.c:6322
#, c-format
msgid " -T --silent-truncation If a symbol name is truncated, do not add [...] suffix\n"
msgstr " -T --silent-truncation Ðко је назив Ñимбола Ñкраћен, не додаје ÑÑƒÑ„Ð¸ÐºÑ [...]\n"
-#: readelf.c:6320
+#: readelf.c:6324
#, c-format
msgid " @<file> Read options from <file>\n"
msgstr " @<датотека> Чита опције из <датотеке>\n"
-#: readelf.c:6322
+#: readelf.c:6326
#, c-format
msgid " -H --help Display this information\n"
msgstr " -H --help Приказује ове информације\n"
-#: readelf.c:6324
+#: readelf.c:6328
#, c-format
msgid " -v --version Display the version number of readelf\n"
msgstr " -v --version Приказује број издања за „readelf“\n"
-#: readelf.c:6350 readelf.c:6381 readelf.c:6385
+#: readelf.c:6354 readelf.c:6385 readelf.c:6389
msgid "Out of memory allocating dump request table.\n"
msgstr "ПонеÑтало је меморије приликом додељивања табеле захтева избачаја.\n"
-#: readelf.c:6655
+#: readelf.c:6596
+msgid "Section name must be provided\n"
+msgstr "Ðазив одељка мора бити доÑтављен\n"
+
+#: readelf.c:6667
msgid "Missing arg to -U/--unicode"
msgstr "ÐедоÑтаје аргумент за „-U/--unicode“"
-#: readelf.c:6694
+#: readelf.c:6706
#, c-format
msgid "Invalid option '-%c'\n"
msgstr "ÐеиÑправна опција „-%c“\n"
-#: readelf.c:6728 readelf.c:6744 readelf.c:13134
+#: readelf.c:6740 readelf.c:6756 readelf.c:13147
msgid "none"
msgstr "ништа"
-#: readelf.c:6745
+#: readelf.c:6757
msgid "2's complement, little endian"
msgstr "комплемент двојке, мала крајњоÑÑ‚"
-#: readelf.c:6746
+#: readelf.c:6758
msgid "2's complement, big endian"
msgstr "комплемент двојке, велика крајњоÑÑ‚"
-#: readelf.c:6779
+#: readelf.c:6791
msgid "This is a LLVM bitcode file - try using llvm-bcanalyzer\n"
msgstr "Ово је LLVM датотека биткода – покушајте да кориÑтите „llvm-bcanalyzer“\n"
-#: readelf.c:6780
+#: readelf.c:6792
msgid "This is a LLVM bitcode file - try extracting and then using llvm-bcanalyzer\n"
msgstr "Ово је LLVM датотека биткода – покушајте да је раÑпакујете и затим кориÑтите „llvm-bcanalyzer“\n"
-#: readelf.c:6783
+#: readelf.c:6795
msgid "This is a GO binary file - try using 'go tool objdump' or 'go tool nm'\n"
msgstr "Ово је GO бинарна датотека – покушајте да кориÑтите „go tool objdump“ или „go tool nm“\n"
-#: readelf.c:6807
+#: readelf.c:6819
msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
msgstr "Ðије ЕЛФ датотека – има погрешне магичне бајтове на почетку\n"
-#: readelf.c:6829
+#: readelf.c:6841
#, c-format
msgid "ELF Header in linked file '%s':\n"
msgstr "ЕЛФ заглавље у повезаној датотеци „%s“:\n"
-#: readelf.c:6832
+#: readelf.c:6844
#, c-format
msgid "ELF Header:\n"
msgstr "ЕЛФ заглавље:\n"
-#: readelf.c:6833
+#: readelf.c:6845
#, c-format
msgid " Magic: "
msgstr " Магија: "
-#: readelf.c:6837
+#: readelf.c:6849
#, c-format
msgid " Class: %s\n"
msgstr " Разред: %s\n"
-#: readelf.c:6839
+#: readelf.c:6851
#, c-format
msgid " Data: %s\n"
msgstr " Подаци: %s\n"
-#: readelf.c:6841
+#: readelf.c:6853
#, c-format
msgid " Version: %d%s\n"
msgstr " Издање: %d%s\n"
-#: readelf.c:6844
+#: readelf.c:6856
msgid " (current)"
msgstr " (текуће)"
-#: readelf.c:6846
+#: readelf.c:6858
msgid " <unknown>"
msgstr " <непознато>"
-#: readelf.c:6848
+#: readelf.c:6860
#, c-format
msgid " OS/ABI: %s\n"
msgstr " ОС/ÐБИ: %s\n"
-#: readelf.c:6850
+#: readelf.c:6862
#, c-format
msgid " ABI Version: %d\n"
msgstr " Издање ABI-ја: %d\n"
-#: readelf.c:6852
+#: readelf.c:6864
#, c-format
msgid " Type: %s\n"
msgstr " Ð’Ñ€Ñта: %s\n"
-#: readelf.c:6854
+#: readelf.c:6866
#, c-format
msgid " Machine: %s\n"
msgstr " Машина: %s\n"
-#: readelf.c:6856
+#: readelf.c:6868
#, c-format
msgid " Version: 0x%lx\n"
msgstr " Издање: 0x%lx\n"
-#: readelf.c:6859
+#: readelf.c:6871
#, c-format
msgid " Entry point address: "
msgstr " ÐдреÑа улазне тачке: "
-#: readelf.c:6861
+#: readelf.c:6873
#, c-format
msgid ""
"\n"
@@ -9158,7 +9204,7 @@ msgstr ""
"\n"
" Почетак заглавља програма: "
-#: readelf.c:6863
+#: readelf.c:6875
#, c-format
msgid ""
" (bytes into file)\n"
@@ -9167,78 +9213,78 @@ msgstr ""
" (бајтова у датотеци)\n"
" Почетак заглавља одељка: "
-#: readelf.c:6865
+#: readelf.c:6877
#, c-format
msgid " (bytes into file)\n"
msgstr " (бајтова у датотеци)\n"
-#: readelf.c:6867
+#: readelf.c:6879
#, c-format
msgid " Flags: 0x%lx%s\n"
msgstr " Опције: 0x%lx%s\n"
-#: readelf.c:6870
+#: readelf.c:6882
#, c-format
msgid " Size of this header: %u (bytes)\n"
msgstr " Величина овог заглавља: %u (бајта)\n"
-#: readelf.c:6872
+#: readelf.c:6884
#, c-format
msgid " Size of program headers: %u (bytes)\n"
msgstr " Величина заглавља програма: %u (бајта)\n"
-#: readelf.c:6874
+#: readelf.c:6886
#, c-format
msgid " Number of program headers: %u"
msgstr " Број заглавља програма: %u"
-#: readelf.c:6881
+#: readelf.c:6893
#, c-format
msgid " Size of section headers: %u (bytes)\n"
msgstr " Величина заглавља одељка: %u (бајта)\n"
-#: readelf.c:6883
+#: readelf.c:6895
#, c-format
msgid " Number of section headers: %u"
msgstr " Број заглавља одељка: %u"
-#: readelf.c:6891
+#: readelf.c:6903
#, c-format
msgid " Section header string table index: %u"
msgstr " Ð˜Ð½Ð´ÐµÐºÑ Ñ‚Ð°Ð±ÐµÐ»Ðµ ниÑке заглавља одељка: %u"
-#: readelf.c:6903
+#: readelf.c:6915
#, c-format
msgid " <corrupt: out of range>"
msgstr " <оштећено: ван опÑега>"
-#: readelf.c:6947 readelf.c:6994
+#: readelf.c:6959 readelf.c:7006
msgid "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"
msgstr "Поље „e_phentsize“ у ЕЛФ заглављу је мање од величине заглавља ЕЛФ програма\n"
-#: readelf.c:6951 readelf.c:6998
+#: readelf.c:6963 readelf.c:7010
msgid "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"
msgstr "Поље „e_phentsize“ у ЕЛФ заглављу је веће од величине заглавља ЕЛФ програма\n"
-#: readelf.c:6954 readelf.c:7001
+#: readelf.c:6966 readelf.c:7013
msgid "program headers"
msgstr "заглавља програма"
-#: readelf.c:7040
+#: readelf.c:7052
#, c-format
msgid "Too many program headers - %#x - the file is not that big\n"
msgstr "Превише заглавља програма – %#x – датотека није толико велика\n"
-#: readelf.c:7049
+#: readelf.c:7061
#, c-format
msgid "Out of memory reading %u program headers\n"
msgstr "ПонеÑтало је меморије за време читања %u заглавља програма\n"
-#: readelf.c:7079
+#: readelf.c:7091
msgid "possibly corrupt ELF header - it has a non-zero program header offset, but no program headers\n"
msgstr "вероватно оштећено ЕЛФ заглавље – има не-нулти померај заглавља програма, али нема заглавља програма\n"
-#: readelf.c:7084
+#: readelf.c:7096
#, c-format
msgid ""
"\n"
@@ -9247,7 +9293,7 @@ msgstr ""
"\n"
"Ðема заглавља програма у овој повезаној датотеци „%s“.\n"
-#: readelf.c:7087
+#: readelf.c:7099
#, c-format
msgid ""
"\n"
@@ -9256,7 +9302,7 @@ msgstr ""
"\n"
"Ðема заглавља програма у овој датотеци.\n"
-#: readelf.c:7099
+#: readelf.c:7111
#, c-format
msgid ""
"\n"
@@ -9265,12 +9311,12 @@ msgstr ""
"\n"
"Ð’Ñ€Ñта елф датотеке је „%s“\n"
-#: readelf.c:7100
+#: readelf.c:7112
#, c-format
msgid "Entry point 0x%<PRIx64>\n"
msgstr "Улазна тачка 0x%<PRIx64>\n"
-#: readelf.c:7102
+#: readelf.c:7114
#, c-format
msgid "There is %d program header, starting at offset %<PRIu64>\n"
msgid_plural "There are %d program headers, starting at offset %<PRIu64>\n"
@@ -9278,7 +9324,7 @@ msgstr[0] "ПоÑтоји %d заглавље програма, које почÐ
msgstr[1] "ПоÑтоје %d заглавља програма, која почињу на померају %<PRIx64>\n"
msgstr[2] "ПоÑтоји %d заглавља програма, која почињу на померају %<PRIx64>\n"
-#: readelf.c:7117 readelf.c:7119
+#: readelf.c:7129 readelf.c:7131
#, c-format
msgid ""
"\n"
@@ -9287,68 +9333,68 @@ msgstr ""
"\n"
"Заглавља програма:\n"
-#: readelf.c:7123
+#: readelf.c:7135
#, c-format
msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
msgstr " Ð’Ñ€Ñта Померај Вирт.адр Физ.адр Вел.дат Вел.мем Опц Првнње\n"
-#: readelf.c:7126
+#: readelf.c:7138
#, c-format
msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
msgstr " Ð’Ñ€Ñта Померај Вирт.адр Физ.адр Вел.дат Вел.мем Опц Првнње\n"
-#: readelf.c:7130
+#: readelf.c:7142
#, c-format
msgid " Type Offset VirtAddr PhysAddr\n"
msgstr " Ð’Ñ€Ñта Померај Вирт.адр Физ.адр\n"
-#: readelf.c:7132
+#: readelf.c:7144
#, c-format
msgid " FileSiz MemSiz Flags Align\n"
msgstr " Вел.дат Вел.мем Опцје Првнње\n"
-#: readelf.c:7230
+#: readelf.c:7242
msgid "LOAD segments must be sorted in order of increasing VirtAddr\n"
msgstr "„LOAD“ подеоци морају бити поређани по раÑтућем „VirtAddr“\n"
-#: readelf.c:7233
+#: readelf.c:7245
msgid "the segment's file size is larger than its memory size\n"
msgstr "величина датотеке подеока је већа од његове величине меморије\n"
-#: readelf.c:7240
+#: readelf.c:7252
msgid "the PHDR segment must occur before any LOAD segment\n"
msgstr "„PHDR“ подеок Ñе мора појавити пре било ког „LOAD“ подеока\n"
-#: readelf.c:7258
+#: readelf.c:7270
msgid "the PHDR segment is not covered by a LOAD segment\n"
msgstr "„PHDR“ подеок није покривен „LOAD“ подеоком\n"
-#: readelf.c:7264
+#: readelf.c:7276
msgid "more than one dynamic segment\n"
msgstr "више од једног динамичког одломка\n"
-#: readelf.c:7283
+#: readelf.c:7295
msgid "no .dynamic section in the dynamic segment\n"
msgstr "нема одељака „.dynamic“ у динамичком одломку\n"
-#: readelf.c:7302
+#: readelf.c:7314
msgid "the .dynamic section is not the same as the dynamic segment\n"
msgstr "одељак „.dynamic“ није иÑти као динамички одломак\n"
-#: readelf.c:7313
+#: readelf.c:7325
msgid "the dynamic segment offset + size exceeds the size of the file\n"
msgstr "померај динамичког подеока + величина превазилазе величину датотеке\n"
-#: readelf.c:7326
+#: readelf.c:7338
msgid "Unable to find program interpreter name\n"
msgstr "Ðе могу да нађем назив тумача програма\n"
-#: readelf.c:7337
+#: readelf.c:7349
#, c-format
msgid " [Requesting program interpreter: %s]\n"
msgstr " [Потражујем тумача програма: %s]\n"
-#: readelf.c:7348
+#: readelf.c:7360
#, c-format
msgid ""
"\n"
@@ -9357,102 +9403,102 @@ msgstr ""
"\n"
" Мапирање одељка у одломак:\n"
-#: readelf.c:7349
+#: readelf.c:7361
#, c-format
msgid " Segment Sections...\n"
msgstr " Одељци одломка...\n"
-#: readelf.c:7391 readelf.c:12419
+#: readelf.c:7403 readelf.c:12432
msgid "Cannot interpret virtual addresses without program headers.\n"
msgstr "Ðе могу да протумачим виртуелне адреÑе без заглавља програма.\n"
-#: readelf.c:7407
+#: readelf.c:7419
#, c-format
msgid "Virtual address %#<PRIx64> not located in any PT_LOAD segment.\n"
msgstr "Виртуелна адреÑа %#<PRIx64> Ñе не налази ни у једном PT_LOAD одломку.\n"
-#: readelf.c:7439 readelf.c:7509
+#: readelf.c:7451 readelf.c:7521
msgid "The e_shentsize field in the ELF header is less than the size of an ELF section header\n"
msgstr "Поље „e_shentsize“ у ЕЛФ заглављу је мање од величине заглавља ЕЛФ одељка\n"
-#: readelf.c:7443 readelf.c:7514
+#: readelf.c:7455 readelf.c:7526
msgid "The e_shentsize field in the ELF header is larger than the size of an ELF section header\n"
msgstr "Поље „e_shentsize“ у ЕЛФ заглављу је веће од величине заглавља ЕЛФ одељка\n"
-#: readelf.c:7447 readelf.c:7519
+#: readelf.c:7459 readelf.c:7531
msgid "section headers"
msgstr "заглавља одељка"
-#: readelf.c:7456 readelf.c:7528
+#: readelf.c:7468 readelf.c:7540
#, c-format
msgid "Out of memory reading %u section headers\n"
msgstr "ПонеÑтало је меморије за време читања %u заглавља одељка\n"
-#: readelf.c:7476 readelf.c:7548
+#: readelf.c:7488 readelf.c:7560
#, c-format
msgid "Section %u has an out of range sh_link value of %u\n"
msgstr "Одељак %u има ван опÑега „sh_link“ вредноÑÑ‚ од %u\n"
-#: readelf.c:7478 readelf.c:7550
+#: readelf.c:7490 readelf.c:7562
#, c-format
msgid "Section %u has an out of range sh_info value of %u\n"
msgstr "Одељак %u има ван опÑега „sh_info“ вредноÑÑ‚ од %u\n"
-#: readelf.c:7592 readelf.c:7709
+#: readelf.c:7604 readelf.c:7721
#, c-format
msgid "Section %s has an invalid sh_entsize of %#<PRIx64>\n"
msgstr "Одељак %s има неиÑправну „sh_entsize“ од %#<PRIx64>\n"
-#: readelf.c:7600 readelf.c:7717 readelf.c:14441
+#: readelf.c:7612 readelf.c:7729 readelf.c:14454
#, c-format
msgid "Section %s has an invalid sh_size of %#<PRIx64>\n"
msgstr "Одељак %s има неиÑправну „sh_size“ од %#<PRIx64>\n"
-#: readelf.c:7610 readelf.c:7727
+#: readelf.c:7622 readelf.c:7739
#, c-format
msgid "Size (%#<PRIx64>) of section %s is not a multiple of its sh_entsize (%#<PRIx64>)\n"
msgstr "Величина (%#<PRIx64>) одељка %s није производ његове „sh_entsize“ (%#<PRIx64>)\n"
-#: readelf.c:7619 readelf.c:7736 readelf.c:17026
+#: readelf.c:7631 readelf.c:7748 readelf.c:17039
msgid "symbols"
msgstr "Ñимболи"
-#: readelf.c:7631 readelf.c:7748
+#: readelf.c:7643 readelf.c:7760
msgid "Multiple symbol table index sections associated with the same symbol section\n"
msgstr "Више одељака индекÑа табеле Ñимбола придружених Ñа иÑтим одељком Ñимбола\n"
-#: readelf.c:7638 readelf.c:7755
+#: readelf.c:7650 readelf.c:7767
msgid "symbol table section indices"
msgstr "индекÑи одељка табеле Ñимбола"
-#: readelf.c:7645 readelf.c:7762
+#: readelf.c:7657 readelf.c:7774
#, c-format
msgid "Index section %s has an sh_size of %#<PRIx64> - expected %#<PRIx64>\n"
msgstr "Одељак индекÑа %s има „sh_size“ од %#<PRIx64> – очекивах %#<PRIx64>\n"
-#: readelf.c:7657 readelf.c:7774
+#: readelf.c:7669 readelf.c:7786
#, c-format
msgid "Out of memory reading %<PRIu64> symbols\n"
msgstr "ПонеÑтало је меморије током читања %<PRIu64> Ñимбола\n"
-#: readelf.c:7977 readelf.c:8073 readelf.c:8090 readelf.c:8107
+#: readelf.c:7989 readelf.c:8085 readelf.c:8102 readelf.c:8119
msgid "Internal error: not enough buffer room for section flag info"
msgstr "Унутрашња грешка: нема довољно међумеморије за податке заÑтавице одељка"
-#: readelf.c:8115
+#: readelf.c:8127
#, c-format
msgid "UNKNOWN (%*.*lx)"
msgstr "ÐЕПОЗÐÐТО (%*.*lx)"
-#: readelf.c:8134 readelf.c:8149
+#: readelf.c:8146 readelf.c:8161
msgid "Compressed section is too small even for a compression header\n"
msgstr "Сажети одељак је премали чак и за заглавље Ñажимања\n"
-#: readelf.c:8171
+#: readelf.c:8183
msgid "possibly corrupt ELF file header - it has a non-zero section header offset, but no section headers\n"
msgstr "вероватно је оштећено заглавље ЕЛФ датотеке – има не-нулти померај заглавља одељка, али нема заглавља одељка\n"
-#: readelf.c:8176
+#: readelf.c:8188
#, c-format
msgid ""
"\n"
@@ -9461,12 +9507,12 @@ msgstr ""
"\n"
"Ðема одељака у овој датотеци.\n"
-#: readelf.c:8184 readelf.c:23101
+#: readelf.c:8196 readelf.c:23111
#, c-format
msgid "In linked file '%s': "
msgstr "У повезаној датотеци „%s“: "
-#: readelf.c:8187
+#: readelf.c:8199
#, c-format
msgid "There is %d section header, starting at offset %#<PRIx64>:\n"
msgid_plural "There are %d section headers, starting at offset %#<PRIx64>:\n"
@@ -9474,43 +9520,43 @@ msgstr[0] "ПоÑтоји %d заглавље одељка, које почињÐ
msgstr[1] "ПоÑтоје %d заглавља одељака, која почињу на померају %#<PRIx64>:\n"
msgstr[2] "ПоÑтоји %d заглавља одељака, која почињу на померају %#<PRIx64>:\n"
-#: readelf.c:8210 readelf.c:8893 readelf.c:9095 readelf.c:14723 readelf.c:17432
+#: readelf.c:8222 readelf.c:8906 readelf.c:9108 readelf.c:14736 readelf.c:17410
msgid "string table"
msgstr "табела ниÑке"
-#: readelf.c:8272
+#: readelf.c:8284
#, c-format
msgid "Section %d has invalid sh_entsize of %<PRIx64>\n"
msgstr "Одељак %d има неиÑправну „sh_entsize“ од %<PRIx64>\n"
-#: readelf.c:8274
+#: readelf.c:8286
#, c-format
msgid "(Using the expected size of %<PRIx64> for the rest of this dump)\n"
msgstr "(КориÑтим очекивану величину од %<PRIx64> за оÑтатак овог избачаја)\n"
-#: readelf.c:8298
+#: readelf.c:8310
msgid "File contains multiple dynamic symbol tables\n"
msgstr "Датотека Ñадржи више табела динамичких Ñимбола\n"
-#: readelf.c:8313
+#: readelf.c:8325
msgid "File contains multiple dynamic string tables\n"
msgstr "Датотека Ñадржи више табела динамичке ниÑке\n"
-#: readelf.c:8319
+#: readelf.c:8331
msgid "dynamic strings"
msgstr "динамичке ниÑке"
-#: readelf.c:8347 readelf.c:8353
+#: readelf.c:8359 readelf.c:8365
#, c-format
msgid "Section '%s': zero-sized relocation section\n"
msgstr "Одељак „%s“: одељак премештаја нулте величине\n"
-#: readelf.c:8366
+#: readelf.c:8379
#, c-format
msgid "Section '%s': has a size of zero - is this intended ?\n"
msgstr "Одељак „%s“: има нулту величину – да ли је то намеравано ?\n"
-#: readelf.c:8452
+#: readelf.c:8465
#, c-format
msgid ""
"\n"
@@ -9519,7 +9565,7 @@ msgstr ""
"\n"
"Заглавља одељака у повезаној датотеци „%s“:\n"
-#: readelf.c:8455
+#: readelf.c:8468
#, c-format
msgid ""
"\n"
@@ -9528,7 +9574,7 @@ msgstr ""
"\n"
"Заглавља одељка:\n"
-#: readelf.c:8457
+#: readelf.c:8470
#, c-format
msgid ""
"\n"
@@ -9537,106 +9583,106 @@ msgstr ""
"\n"
"Заглавље одељка:\n"
-#: readelf.c:8463 readelf.c:8474 readelf.c:8485
+#: readelf.c:8476 readelf.c:8487 readelf.c:8498
#, c-format
msgid " [Nr] Name\n"
msgstr " [Бр] Ðазив\n"
-#: readelf.c:8464
+#: readelf.c:8477
#, c-format
msgid " Type Addr Off Size ES Lk Inf Al\n"
msgstr " Ð’Ñ€Ñта ÐдреÑа Пмрај Влчна ЕС Вз Инф Пор\n"
-#: readelf.c:8468
+#: readelf.c:8481
#, c-format
msgid " [Nr] Name Type Addr Off Size ES Flg Lk Inf Al\n"
msgstr " [Бр] Ðазив Ð’Ñ€Ñта ÐдреÑа Пмрј Влчна ЕС Опц Вз Инф Пор\n"
-#: readelf.c:8475
+#: readelf.c:8488
#, c-format
msgid " Type Address Off Size ES Lk Inf Al\n"
msgstr " Ð’Ñ€Ñта ÐдреÑа Пмрј Влчна ЕС Вз Инф Пор\n"
-#: readelf.c:8479
+#: readelf.c:8492
#, c-format
msgid " [Nr] Name Type Address Off Size ES Flg Lk Inf Al\n"
msgstr " [Бр] Ðазив Ð’Ñ€Ñта ÐдреÑа Пмрј Влчна ЕС Опц Вз Инф Пор\n"
-#: readelf.c:8486
+#: readelf.c:8499
#, c-format
msgid " Type Address Offset Link\n"
msgstr " Ð’Ñ€Ñта ÐдреÑа Померај Веза\n"
-#: readelf.c:8487
+#: readelf.c:8500
#, c-format
msgid " Size EntSize Info Align\n"
msgstr " Величина Улзна вел Инфо Поравнање\n"
-#: readelf.c:8491
+#: readelf.c:8504
#, c-format
msgid " [Nr] Name Type Address Offset\n"
msgstr " [Бр] Ðазив Ð’Ñ€Ñта ÐдреÑа Померај\n"
-#: readelf.c:8492
+#: readelf.c:8505
#, c-format
msgid " Size EntSize Flags Link Info Align\n"
msgstr " Величина Улзна вел. Опције Веза Инфо Порвнње\n"
-#: readelf.c:8497
+#: readelf.c:8510
#, c-format
msgid " Flags\n"
msgstr " Опције\n"
-#: readelf.c:8527
+#: readelf.c:8540
#, c-format
msgid "[%2u]: Link field (%u) should index a symtab section.\n"
msgstr "[%2u]: Поље везе (%u) треба да индекÑира одељак Ñимтаб.\n"
-#: readelf.c:8540
+#: readelf.c:8553
#, c-format
msgid "[%2u]: Link field (%u) should index a string section.\n"
msgstr "[%2u]: Поље везе (%u) треба да индекÑира одељак ниÑке.\n"
-#: readelf.c:8548 readelf.c:8559
+#: readelf.c:8561 readelf.c:8572
#, c-format
msgid "[%2u]: Unexpected value (%u) in link field.\n"
msgstr "[%2u]: Ðеочекивана вредноÑÑ‚ (%u) у пољу везе.\n"
-#: readelf.c:8586
+#: readelf.c:8599
#, c-format
msgid "[%2u]: Info field (%u) should index a relocatable section.\n"
msgstr "[%2u]: Поље података (%u) треба да индекÑира премеÑтиви одељак.\n"
-#: readelf.c:8597 readelf.c:8624
+#: readelf.c:8610 readelf.c:8637
#, c-format
msgid "[%2u]: Unexpected value (%u) in info field.\n"
msgstr "[%2u]: Ðеочекивана вредноÑÑ‚ (%u) у пољу података.\n"
-#: readelf.c:8619
+#: readelf.c:8632
#, c-format
msgid "[%2u]: Expected link to another section in info field"
msgstr "[%2u]: Очекивах везу до другог одељка у пољу података"
-#: readelf.c:8634
+#: readelf.c:8647
#, c-format
msgid "Size of section %u is larger than the entire file!\n"
msgstr "Величина одељка %u је већа од читаве датотеке!\n"
-#: readelf.c:8703
+#: readelf.c:8716
#, c-format
msgid "section %u: sh_link value of %u is larger than the number of sections\n"
msgstr "одељак %u: „sh_link“ вредноÑÑ‚ за %u је већа од броја одељака\n"
-#: readelf.c:8804
+#: readelf.c:8817
msgid "compression header"
msgstr "заглавље Ñажимања"
-#: readelf.c:8809
+#: readelf.c:8822
#, c-format
msgid " [<corrupt>]\n"
msgstr " [<оштећено>]\n"
-#: readelf.c:8817
+#: readelf.c:8830
#, c-format
msgid " [<unknown>: 0x%x], "
msgstr " [<непознато>: 0x%x], "
@@ -9644,7 +9690,7 @@ msgstr " [<непознато>: 0x%x], "
#. The ordering of the letters shown here matches the ordering of the
#. corresponding SHF_xxx values, and hence the order in which these
#. letters will be displayed to the user.
-#: readelf.c:8832
+#: readelf.c:8845
#, c-format
msgid ""
"Key to Flags:\n"
@@ -9659,44 +9705,44 @@ msgstr ""
" C (Ñажето), x (непознато), o (поÑебноÑÑ‚ ОС-а), E (иÑкључи),\n"
" "
-#: readelf.c:8840
+#: readelf.c:8853
#, c-format
msgid "R (retain), "
msgstr "R (задржи), "
-#: readelf.c:8843
+#: readelf.c:8856
#, c-format
msgid "D (mbind), "
msgstr "D (mbind), "
-#: readelf.c:8851
+#: readelf.c:8864
#, c-format
msgid "l (large), "
msgstr "l (велико), "
-#: readelf.c:8853
+#: readelf.c:8866
#, c-format
msgid "y (purecode), "
msgstr "y (чиÑÑ‚ код), "
-#: readelf.c:8855
+#: readelf.c:8868
#, c-format
msgid "v (VLE), "
msgstr "v (VLE), "
-#: readelf.c:8883
+#: readelf.c:8896
msgid "Bad sh_link in symbol table section\n"
msgstr "Лоша „sh_link“ у одељку табеле Ñимбола\n"
-#: readelf.c:8918
+#: readelf.c:8931
msgid "<OS specific>"
msgstr "<ПоÑебноÑÑ‚ ОС-а>"
-#: readelf.c:8919
+#: readelf.c:8932
msgid "<PROC specific>"
msgstr "<ПоÑебноÑÑ‚ „PROC“-а>"
-#: readelf.c:8948
+#: readelf.c:8961
#, c-format
msgid ""
"\n"
@@ -9705,7 +9751,7 @@ msgstr ""
"\n"
"Ðема групе заглавља у повезаној датотеци „%s“.\n"
-#: readelf.c:8951 readelf.c:8990
+#: readelf.c:8964 readelf.c:9003
#, c-format
msgid ""
"\n"
@@ -9714,16 +9760,16 @@ msgstr ""
"\n"
"Ðема група одељка у овој датотеци.\n"
-#: readelf.c:8958
+#: readelf.c:8971
msgid "Section headers are not available!\n"
msgstr "Заглавља одељка ниÑу доÑтупна!\n"
-#: readelf.c:8969
+#: readelf.c:8982
#, c-format
msgid "Out of memory reading %u section group headers\n"
msgstr "ПонеÑтало је меморије за време читања %u заглавља групе одељка\n"
-#: readelf.c:8987
+#: readelf.c:9000
#, c-format
msgid ""
"\n"
@@ -9732,41 +9778,41 @@ msgstr ""
"\n"
"Ðема група заглавља у повезаној датотеци „%s“.\n"
-#: readelf.c:9001
+#: readelf.c:9014
#, c-format
msgid "Out of memory reading %zu groups\n"
msgstr "ПонеÑтало је меморије током читања %zu група\n"
-#: readelf.c:9013
+#: readelf.c:9026
#, c-format
msgid "Section groups in linked file '%s'\n"
msgstr "Групе одељка у повезаној датотеци „%s“\n"
-#: readelf.c:9035
+#: readelf.c:9048
#, c-format
msgid "Bad sh_link in group section `%s'\n"
msgstr "Лоша „sh_link“ у одељку групе „%s“\n"
-#: readelf.c:9048
+#: readelf.c:9061
#, c-format
msgid "Corrupt header in group section `%s'\n"
msgstr "Оштећено заглавље у одељку групе „%s“\n"
-#: readelf.c:9054 readelf.c:9065
+#: readelf.c:9067 readelf.c:9078
#, c-format
msgid "Bad sh_info in group section `%s'\n"
msgstr "Лоши „sh_info“ у одељку групе „%s“\n"
-#: readelf.c:9105
+#: readelf.c:9118
#, c-format
msgid "Section %s has sh_entsize (%#<PRIx64>) which is larger than its size (%#<PRIx64>)\n"
msgstr "Одељак %s има „sh_entsize“ (%#<PRIx64>) која је већа од његове величине (%#<PRIx64>)\n"
-#: readelf.c:9115
+#: readelf.c:9128
msgid "section data"
msgstr "подаци одељка"
-#: readelf.c:9126
+#: readelf.c:9139
#, c-format
msgid ""
"\n"
@@ -9775,44 +9821,44 @@ msgstr ""
"\n"
"%sгрупа одељка [%5u] „%s“ [%s] Ñадржи %u одељка:\n"
-#: readelf.c:9129
+#: readelf.c:9142
#, c-format
msgid " [Index] Name\n"
msgstr " [ИндекÑ] Ðазив\n"
-#: readelf.c:9147
+#: readelf.c:9160
#, c-format
msgid "section [%5u] in group section [%5u] > maximum section [%5u]\n"
msgstr "одељак [%5u] у одељку групе [%5u] > највише одељака [%5u]\n"
-#: readelf.c:9150
+#: readelf.c:9163
msgid "Further error messages about overlarge group section indices suppressed\n"
msgstr "Будуће поруке грешака о превеликим индекÑима одељка групе Ñу потиÑнуте\n"
-#: readelf.c:9163
+#: readelf.c:9176
#, c-format
msgid "section [%5u] in group section [%5u] already in group section [%5u]\n"
msgstr "одељак [%5u] у одељку групе [%5u] је већ у одељку групе [%5u]\n"
-#: readelf.c:9167
+#: readelf.c:9180
msgid "Further error messages about already contained group sections suppressed\n"
msgstr "Будуће поруке грешака о већ Ñадржаним одељцима групе Ñу потиÑнуте\n"
-#: readelf.c:9179
+#: readelf.c:9192
#, c-format
msgid "section 0 in group section [%5u]\n"
msgstr "одељак 0 у одељку групе [%5u]\n"
-#: readelf.c:9246
+#: readelf.c:9259
msgid "dynamic section image fixups"
msgstr "преправке Ñлике динамичког одељка"
-#: readelf.c:9254
+#: readelf.c:9267
#, c-format
msgid "corrupt library name index of %#<PRIx64> found in dynamic entry"
msgstr "нађох оштећен Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð°Ð·Ð¸Ð²Ð° biblioteke %#<PRIx64> у динамичком уноÑу"
-#: readelf.c:9259
+#: readelf.c:9272
#, c-format
msgid ""
"\n"
@@ -9821,16 +9867,16 @@ msgstr ""
"\n"
"Преправке Ñлике потребне библиотеке #%<PRId64>: %s – увлачење: %<PRIx64>\n"
-#: readelf.c:9263
+#: readelf.c:9276
#, c-format
msgid "Seg Offset Type SymVec DataType\n"
msgstr "Одл Померај Ð’Ñ€Ñта ВекСим Ð’Ñ€Ñта пдтка\n"
-#: readelf.c:9297
+#: readelf.c:9310
msgid "dynamic section image relocations"
msgstr "премештаји Ñлике динамичког одељка"
-#: readelf.c:9301
+#: readelf.c:9314
#, c-format
msgid ""
"\n"
@@ -9839,16 +9885,16 @@ msgstr ""
"\n"
"Премештаји Ñлике\n"
-#: readelf.c:9303
+#: readelf.c:9316
#, c-format
msgid "Seg Offset Type Addend Seg Sym Off\n"
msgstr "Одл Померај Ð’Ñ€Ñта Сабирак Одл Сим Пом\n"
-#: readelf.c:9358
+#: readelf.c:9371
msgid "dynamic string section"
msgstr "одељак динамичке ниÑке"
-#: readelf.c:9441
+#: readelf.c:9454
#, c-format
msgid ""
"\n"
@@ -9857,7 +9903,7 @@ msgstr ""
"\n"
"У повезаној датотеци „%s“одељак премештаја "
-#: readelf.c:9444
+#: readelf.c:9457
#, c-format
msgid ""
"\n"
@@ -9866,12 +9912,12 @@ msgstr ""
"\n"
"Одељак премештаја "
-#: readelf.c:9463
+#: readelf.c:9476
#, c-format
msgid " at offset %#<PRIx64>"
msgstr " на померају %#<PRIx64>"
-#: readelf.c:9464
+#: readelf.c:9477
#, c-format
msgid " contains %<PRIu64> entry which relocates"
msgid_plural " contains %<PRIu64> entries which relocate"
@@ -9879,7 +9925,7 @@ msgstr[0] " Ñадржи %<PRIu64> ÑƒÐ½Ð¾Ñ ÐºÐ¾Ñ˜Ð¸ премешта"
msgstr[1] " Ñадржи %<PRIu64> уноÑа који премештају"
msgstr[2] " Ñадржи %<PRIu64> уноÑа који премештају"
-#: readelf.c:9467
+#: readelf.c:9480
#, c-format
msgid " %<PRIu64> location:\n"
msgid_plural " %<PRIu64> locations:\n"
@@ -9887,7 +9933,7 @@ msgstr[0] " %<PRIu64> меÑто:\n"
msgstr[1] " %<PRIu64> меÑта:\n"
msgstr[2] " %<PRIu64> меÑта:\n"
-#: readelf.c:9473
+#: readelf.c:9486
#, c-format
msgid " at offset %#<PRIx64> contains %<PRIu64> entry:\n"
msgid_plural " at offset %#<PRIx64> contains %<PRIu64> entries:\n"
@@ -9895,7 +9941,7 @@ msgstr[0] " на померају %#<PRIx64> Ñадржи %<PRIu64> уноÑ:\n"
msgstr[1] " на померају %#<PRIx64> Ñадржи %<PRIu64> уноÑа:\n"
msgstr[2] " на померају %#<PRIx64> Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:9572
+#: readelf.c:9585
#, c-format
msgid ""
"\n"
@@ -9904,7 +9950,7 @@ msgstr ""
"\n"
"У повезаној датотеци „%s“ одељак „%s“ на померају %#<PRIx64> Ñадржи %<PRId64> бајта:\n"
-#: readelf.c:9577
+#: readelf.c:9590
#, c-format
msgid ""
"\n"
@@ -9913,7 +9959,7 @@ msgstr ""
"\n"
"одељак премештаја „%s“ на померају %#<PRIx64> Ñадржи %<PRId64> бајта:\n"
-#: readelf.c:9599
+#: readelf.c:9612
#, c-format
msgid ""
"\n"
@@ -9922,7 +9968,7 @@ msgstr ""
"\n"
"Ðема динамичких премештаја у повезаној датотеци „%s“.\n"
-#: readelf.c:9602
+#: readelf.c:9615
#, c-format
msgid ""
"\n"
@@ -9931,7 +9977,7 @@ msgstr ""
"\n"
"Ðема динамичких премештаја у овој датотеци.\n"
-#: readelf.c:9627
+#: readelf.c:9640
#, c-format
msgid ""
"\n"
@@ -9940,7 +9986,7 @@ msgstr ""
"\n"
"Ðема Ñтатичких премештаја у повезаној датотеци „%s“."
-#: readelf.c:9630
+#: readelf.c:9643
#, c-format
msgid ""
"\n"
@@ -9949,7 +9995,7 @@ msgstr ""
"\n"
"Ðема Ñтатичких премештаја у овој датотеци."
-#: readelf.c:9631
+#: readelf.c:9644
#, c-format
msgid ""
"\n"
@@ -9958,7 +10004,7 @@ msgstr ""
"\n"
"Да видите динамичке премештаје додајте „--use-dynamic“ на линију наредби.\n"
-#: readelf.c:9639
+#: readelf.c:9652
#, c-format
msgid ""
"\n"
@@ -9967,7 +10013,7 @@ msgstr ""
"\n"
"Ðема премештаја у повезаној датотеци „%s“.\n"
-#: readelf.c:9642
+#: readelf.c:9655
#, c-format
msgid ""
"\n"
@@ -9976,50 +10022,50 @@ msgstr ""
"\n"
"Ðема премештаја у овој датотеци.\n"
-#: readelf.c:9801
+#: readelf.c:9814
#, c-format
msgid "Invalid section %u in table entry %td\n"
msgstr "ÐеиÑправан одељак %u у уноÑу табеле %td\n"
-#: readelf.c:9813
+#: readelf.c:9826
#, c-format
msgid "Invalid offset %<PRIx64> in table entry %td\n"
msgstr "ÐеиÑправан померај %<PRIx64> у уноÑу табеле %td\n"
-#: readelf.c:9831
+#: readelf.c:9844
#, c-format
msgid "\tUnknown version.\n"
msgstr "\tÐепознато издање.\n"
-#: readelf.c:9894 readelf.c:10332
+#: readelf.c:9907 readelf.c:10345
msgid "unwind table"
msgstr "табела одмотавања"
-#: readelf.c:9945 readelf.c:10415
+#: readelf.c:9958 readelf.c:10428
#, c-format
msgid "Skipping unknown relocation type: %u\n"
msgstr "ПреÑкачем неопознату врÑту премештаја: %u\n"
-#: readelf.c:9951 readelf.c:10422
+#: readelf.c:9964 readelf.c:10435
#, c-format
msgid "Skipping unexpected relocation type: %s\n"
msgstr "ПреÑкачем неочекивану врÑту премештаја: %s\n"
-#: readelf.c:9960 readelf.c:10429
+#: readelf.c:9973 readelf.c:10442
#, c-format
msgid "Skipping reloc with overlarge offset: %#<PRIx64>\n"
msgstr "ПреÑкачем премештај Ñа превеликим померајем: %#<PRIx64>\n"
-#: readelf.c:9968 readelf.c:10437
+#: readelf.c:9981 readelf.c:10450
#, c-format
msgid "Skipping reloc with invalid symbol index: %u\n"
msgstr "ПреÑкачем премештај Ñа неиÑправним индекÑом Ñимбола: %u\n"
-#: readelf.c:10016 readelf.c:10484 readelf.c:11595
+#: readelf.c:10029 readelf.c:10497 readelf.c:11608
msgid "Multiple symbol tables encountered\n"
msgstr "Ðаиђох на више табела Ñимбола\n"
-#: readelf.c:10031 readelf.c:10500 readelf.c:11610
+#: readelf.c:10044 readelf.c:10513 readelf.c:11623
#, c-format
msgid ""
"\n"
@@ -10028,7 +10074,7 @@ msgstr ""
"\n"
"Ðема одељка одмотавања у овој датотеци.\n"
-#: readelf.c:10117
+#: readelf.c:10130
#, c-format
msgid ""
"\n"
@@ -10037,11 +10083,11 @@ msgstr ""
"\n"
"Ðе могу да пронађем одељак података одмотавања за "
-#: readelf.c:10129
+#: readelf.c:10142
msgid "unwind info"
msgstr "подаци одмотавања"
-#: readelf.c:10132
+#: readelf.c:10145
#, c-format
msgid ""
"\n"
@@ -10050,12 +10096,12 @@ msgstr ""
"\n"
"Одељак одмотавања "
-#: readelf.c:10139
+#: readelf.c:10152
#, c-format
msgid " at offset %#<PRIx64> contains %<PRIu64> entries:\n"
msgstr " на померају %#<PRIx64> Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:10509 readelf.c:11617
+#: readelf.c:10522 readelf.c:11630
#, c-format
msgid ""
"\n"
@@ -10073,202 +10119,202 @@ msgstr[2] ""
"\n"
"Одељак одмотавања „%s“ на померају %#<PRIx64> Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:10642
+#: readelf.c:10655
msgid "unwind data"
msgstr "подаци одмотавања"
-#: readelf.c:10714
+#: readelf.c:10727
#, c-format
msgid "Skipping unexpected relocation at offset %#<PRIx64>\n"
msgstr "ПреÑкачем неочекивани премештај на померају %#<PRIx64>\n"
-#: readelf.c:10736
+#: readelf.c:10749
#, c-format
msgid "Unknown section relocation type %d encountered\n"
msgstr "Ðаиђох на непознату врÑту премештаја %d\n"
-#: readelf.c:10744
+#: readelf.c:10757
#, c-format
msgid "Bad symbol index in unwind relocation (%<PRIu64> > %<PRIu64>)\n"
msgstr "Лош Ð¸Ð½Ð´ÐµÐºÑ Ñимбола у неодвијеном премештају (%<PRIu64> > %<PRIu64>)\n"
-#: readelf.c:10760
+#: readelf.c:10773
#, c-format
msgid "Skipping unknown ARM relocation type: %d\n"
msgstr "ПреÑкачем непознату врÑту „ARM“ премештаја: %d\n"
-#: readelf.c:10770
+#: readelf.c:10783
#, c-format
msgid "Skipping unexpected ARM relocation type %s\n"
msgstr "ПреÑкачем неочекивану врÑту „ARM“ премештаја „%s“\n"
-#: readelf.c:10779
+#: readelf.c:10792
#, c-format
msgid "Skipping unknown C6000 relocation type: %d\n"
msgstr "ПреÑкачем непознату врÑту „C6000“ премештаја: %d\n"
-#: readelf.c:10789
+#: readelf.c:10802
#, c-format
msgid "Skipping unexpected C6000 relocation type %s\n"
msgstr "ПреÑкачем неочекивану врÑту „C6000“ премештаја „%s“\n"
#. This function currently only supports ARM and TI unwinders.
-#: readelf.c:10798
+#: readelf.c:10811
msgid "Only TI and ARM unwinders are currently supported\n"
msgstr "Само „TI“ и „ARM“ одмотавачи Ñу тренутно подржани\n"
-#: readelf.c:10861
+#: readelf.c:10874
#, c-format
msgid "[Truncated opcode]\n"
msgstr "[Скраћени опкод]\n"
-#: readelf.c:10909 readelf.c:11129
+#: readelf.c:10922 readelf.c:11142
#, c-format
msgid "Refuse to unwind"
msgstr "Одбија да одмота"
-#: readelf.c:10932
+#: readelf.c:10945
#, c-format
msgid " [Reserved]"
msgstr " [РезервиÑано]"
-#: readelf.c:10960
+#: readelf.c:10973
#, c-format
msgid " finish"
msgstr " крај"
-#: readelf.c:10965 readelf.c:11062
+#: readelf.c:10978 readelf.c:11075
#, c-format
msgid "[Spare]"
msgstr "[ДопунÑко]"
-#: readelf.c:10999
+#: readelf.c:11012
msgid "corrupt change to vsp\n"
msgstr "оштећена измена у „vsp“\n"
-#: readelf.c:11025
+#: readelf.c:11038
#, c-format
msgid " pop {ra_auth_code}"
msgstr " pop {ra_auth_code}"
-#: readelf.c:11027
+#: readelf.c:11040
#, c-format
msgid " vsp as modifier for PAC validation"
msgstr " „vsp“ као измењивач за PAC потврђивање"
-#: readelf.c:11084 readelf.c:11241
+#: readelf.c:11097 readelf.c:11254
#, c-format
msgid " [unsupported opcode]"
msgstr " [неподржан опкод]"
-#: readelf.c:11177
+#: readelf.c:11190
#, c-format
msgid "pop frame {"
msgstr "поп кадар {"
-#: readelf.c:11180
+#: readelf.c:11193
#, c-format
msgid "*corrupt* - no registers specified"
msgstr "*оштећено* – ниÑу наведени региÑтри"
-#: readelf.c:11194
+#: readelf.c:11207
msgid "[pad]"
msgstr "[пад]"
-#: readelf.c:11223
+#: readelf.c:11236
msgid "Corrupt stack pointer adjustment detected\n"
msgstr "Оштећено дотеривање показивача Ñпремника је откривено\n"
-#: readelf.c:11230
+#: readelf.c:11243
#, c-format
msgid "sp = sp + %<PRId64>"
msgstr "sp = sp + %<PRId64>"
-#: readelf.c:11305
+#: readelf.c:11318
#, c-format
msgid " Personality routine: "
msgstr " Потпрограм личноÑти: "
-#: readelf.c:11337
+#: readelf.c:11350
#, c-format
msgid " [Truncated data]\n"
msgstr " [Скраћени подаци]\n"
-#: readelf.c:11361
+#: readelf.c:11374
#, c-format
msgid "Corrupt ARM compact model table entry: %x \n"
msgstr "Оштећен ÑƒÐ½Ð¾Ñ Ñ‚Ð°Ð±ÐµÐ»Ðµ збијеног ÐРМ модела: %x \n"
-#: readelf.c:11366
+#: readelf.c:11379
#, c-format
msgid " Compact model index: %d\n"
msgstr " ÐŸÐ¾Ð¿Ð¸Ñ Ð·Ð±Ð¸Ñ˜ÐµÐ½Ð¾Ð³ модела: %d\n"
-#: readelf.c:11392
+#: readelf.c:11405
msgid "Unknown ARM compact model index encountered\n"
msgstr "Ðађох непознати Ð¸Ð½Ð´ÐµÐºÑ Ð·Ð±Ð¸Ñ˜ÐµÐ½Ð¾Ð³ ÐРМ модела\n"
-#: readelf.c:11393
+#: readelf.c:11406
#, c-format
msgid " [reserved]\n"
msgstr " [резервиÑано]\n"
-#: readelf.c:11408
+#: readelf.c:11421
#, c-format
msgid " Restore stack from frame pointer\n"
msgstr " Поврати Ñпремник од показивача кадра\n"
-#: readelf.c:11410
+#: readelf.c:11423
#, c-format
msgid " Stack increment %d\n"
msgstr " Повећање Ñпремника %d\n"
-#: readelf.c:11411
+#: readelf.c:11424
#, c-format
msgid " Registers restored: "
msgstr " Повраћени региÑтри: "
-#: readelf.c:11416
+#: readelf.c:11429
#, c-format
msgid " Return register: %s\n"
msgstr " РегиÑтар резултата: %s\n"
-#: readelf.c:11420
+#: readelf.c:11433
#, c-format
msgid " [reserved (%d)]\n"
msgstr " [резервиÑано (%d)]\n"
-#: readelf.c:11424
+#: readelf.c:11437
#, c-format
msgid "Unsupported architecture type %d encountered when decoding unwind table\n"
msgstr "Ðеподржана врÑта архитектуре %d је откривена приликом декодирања табеле развијања\n"
-#: readelf.c:11479
+#: readelf.c:11492
#, c-format
msgid "corrupt index table entry: %x\n"
msgstr "оштећен Ð¸Ð½Ð´ÐµÐºÑ Ñ‚Ð°Ð±ÐµÐ»Ðµ ниÑке: %x\n"
-#: readelf.c:11518
+#: readelf.c:11531
#, c-format
msgid "Unwind entry contains corrupt offset (%#<PRIx64>) into section %s\n"
msgstr "Ðеодмотани ÑƒÐ½Ð¾Ñ Ñадржи оштећени померај (%#<PRIx64>) у одељку %s\n"
-#: readelf.c:11534
+#: readelf.c:11547
#, c-format
msgid "Could not locate .ARM.extab section containing %#<PRIx64>.\n"
msgstr "Ðе могу да нађем одељак „.ARM.extab“ који Ñадржи %#<PRIx64>.\n"
-#: readelf.c:11578
+#: readelf.c:11591
#, c-format
msgid "Unsupported architecture type %d encountered when processing unwind table\n"
msgstr "Ðеподржана врÑта архитектуре %d је откривена приликом обраде табеле развијања\n"
-#: readelf.c:11640
+#: readelf.c:11653
#, c-format
msgid "No processor specific unwind information to decode\n"
msgstr "Ðема информација развијања Ñпецифичних процеÑору за декодирање\n"
-#: readelf.c:11670
+#: readelf.c:11683
#, c-format
msgid ""
"\n"
@@ -10277,73 +10323,73 @@ msgstr ""
"\n"
"Декодирање одељака развијања за врÑту машине %s није тренутно подржано.\n"
-#: readelf.c:11697
+#: readelf.c:11710
#, c-format
msgid "NONE"
msgstr "ÐИШТÐ"
-#: readelf.c:11722
+#: readelf.c:11735
#, c-format
msgid "Interface Version: %s"
msgstr "Издање Ñучеља: %s"
-#: readelf.c:11725
+#: readelf.c:11738
#, c-format
msgid "Interface Version: <corrupt: %<PRIx64>>"
msgstr "Издање Ñучеља: <оштећено: %<PRIx64>>"
-#: readelf.c:11743
+#: readelf.c:11756
#, c-format
msgid "Time Stamp: %s"
msgstr "ВременÑка ознака: %s"
-#: readelf.c:11932 readelf.c:11982
+#: readelf.c:11945 readelf.c:11995
msgid "dynamic section"
msgstr "динамички одељак"
-#: readelf.c:11952 readelf.c:12003 readelf.c:12111
+#: readelf.c:11965 readelf.c:12016 readelf.c:12124
#, c-format
msgid "Out of memory allocating space for %<PRIu64> dynamic entries\n"
msgstr "ПонеÑтало је меморије током додељивања проÑтора за %<PRIu64> динамичка уноÑа\n"
-#: readelf.c:12077
+#: readelf.c:12090
#, c-format
msgid "Size overflow prevents reading %<PRIu64> elements of size %u\n"
msgstr "Прекорачење величине Ñпречава читање %<PRIu64> елемента величине %u\n"
-#: readelf.c:12087
+#: readelf.c:12100
#, c-format
msgid "Invalid number of dynamic entries: %<PRIu64>\n"
msgstr "Ðетачан број динамичких уноÑа: %<PRIu64>\n"
-#: readelf.c:12095
+#: readelf.c:12108
#, c-format
msgid "Out of memory reading %<PRIu64> dynamic entries\n"
msgstr "ПонеÑтало је меморије за време читања %<PRIu64> динамичка уноÑа\n"
-#: readelf.c:12102
+#: readelf.c:12115
#, c-format
msgid "Unable to read in %<PRIu64> bytes of dynamic data\n"
msgstr "Ðе могу да прочитам %<PRIu64> бајта динамичких података\n"
-#: readelf.c:12152 readelf.c:12206 readelf.c:12230 readelf.c:12263
-#: readelf.c:12289 readelf.c:12308
+#: readelf.c:12165 readelf.c:12219 readelf.c:12243 readelf.c:12276
+#: readelf.c:12302 readelf.c:12321
msgid "Unable to seek to start of dynamic information\n"
msgstr "Ðе могу да премотам на почетак променљивих података\n"
-#: readelf.c:12158 readelf.c:12212
+#: readelf.c:12171 readelf.c:12225
msgid "Failed to read in number of buckets\n"
msgstr "ÐиÑам уÑпео да прочитам број ведара\n"
-#: readelf.c:12164
+#: readelf.c:12177
msgid "Failed to read in number of chains\n"
msgstr "ÐиÑам уÑпео да прочитам број ланаца\n"
-#: readelf.c:12271
+#: readelf.c:12284
msgid "Failed to determine last chain length\n"
msgstr "ÐиÑам уÑпео да одредим дужину поÑледњег ланца\n"
-#: readelf.c:12371
+#: readelf.c:12384
#, c-format
msgid ""
"\n"
@@ -10352,7 +10398,7 @@ msgstr ""
"\n"
"Ðема динамичког одељка у повезаној датотеци „%s“.\n"
-#: readelf.c:12374
+#: readelf.c:12387
#, c-format
msgid ""
"\n"
@@ -10362,49 +10408,49 @@ msgstr ""
"Ðема динамичког одељка у овој датотеци.\n"
#. See PR 21379 for a reproducer.
-#: readelf.c:12434
+#: readelf.c:12447
msgid "Invalid PT_LOAD entry\n"
msgstr "ÐеиÑправан „PT_LOAD“ уноÑ\n"
-#: readelf.c:12460
+#: readelf.c:12473
msgid "the .dynsym section doesn't match the DT_SYMTAB and DT_SYMENT tags\n"
msgstr "одељак „.dynsym“ не одговара ознакама „DT_SYMTAB“ и „DT_SYMENT“\n"
-#: readelf.c:12470
+#: readelf.c:12483
msgid "Corrupt DT_SYMTAB dynamic entry\n"
msgstr "Оштећен динамички ÑƒÐ½Ð¾Ñ â€žDT_SYMTAB“\n"
-#: readelf.c:12506
+#: readelf.c:12519
msgid "the .dynstr section doesn't match the DT_STRTAB and DT_STRSZ tags\n"
msgstr "одељак „.dynstr“ не одговара ознакама „DT_STRTAB“ и „DT_STRSZ“\n"
-#: readelf.c:12511
+#: readelf.c:12524
msgid "dynamic string table"
msgstr "табела динамичке ниÑке"
-#: readelf.c:12514
+#: readelf.c:12527
msgid "Corrupt DT_STRTAB dynamic entry\n"
msgstr "Оштећен динамички ÑƒÐ½Ð¾Ñ â€žDT_STRTAB“\n"
-#: readelf.c:12539
+#: readelf.c:12552
#, c-format
msgid "Bad value (%d) for SYMINENT entry\n"
msgstr "Лоша вредноÑÑ‚ (%d) за „SYMINENT“ уноÑ\n"
-#: readelf.c:12558
+#: readelf.c:12571
msgid "symbol information"
msgstr "подаци Ñимбола"
-#: readelf.c:12564
+#: readelf.c:12577
msgid "Multiple dynamic symbol information sections found\n"
msgstr "Ðађох више одељака података динамичког Ñимбола\n"
-#: readelf.c:12570
+#: readelf.c:12583
#, c-format
msgid "Out of memory allocating %<PRIu64> bytes for dynamic symbol info\n"
msgstr "ПонеÑтало је меморије током додељивања %<PRIu64> бајта за инфо динамичких Ñимбола\n"
-#: readelf.c:12594
+#: readelf.c:12607
#, c-format
msgid ""
"\n"
@@ -10422,7 +10468,7 @@ msgstr[2] ""
"\n"
"У повезаној датотеци „%s“ динамички одељак на померају %#<PRIx64> Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:12601
+#: readelf.c:12614
#, c-format
msgid ""
"\n"
@@ -10440,87 +10486,87 @@ msgstr[2] ""
"\n"
"Динамички одељак на померају %#<PRIx64> Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:12608
+#: readelf.c:12621
#, c-format
msgid " Tag Type Name/Value\n"
msgstr " Ознака Ð’Ñ€Ñта Ðазив/ВредноÑÑ‚\n"
-#: readelf.c:12642
+#: readelf.c:12655
#, c-format
msgid "Auxiliary library"
msgstr "Помоћна библиотека"
-#: readelf.c:12646
+#: readelf.c:12659
#, c-format
msgid "Filter library"
msgstr "Библиотека пропуÑника"
-#: readelf.c:12650
+#: readelf.c:12663
#, c-format
msgid "Configuration file"
msgstr "Датотека подешавања"
-#: readelf.c:12654
+#: readelf.c:12667
#, c-format
msgid "Dependency audit library"
msgstr "Библиотека прегледа завиÑноÑти"
-#: readelf.c:12658
+#: readelf.c:12671
#, c-format
msgid "Audit library"
msgstr "Библиотека прегледа"
-#: readelf.c:12677 readelf.c:12705 readelf.c:12733 readelf.c:13073
+#: readelf.c:12690 readelf.c:12718 readelf.c:12746 readelf.c:13086
#, c-format
msgid "Flags:"
msgstr "Опције:"
-#: readelf.c:12680 readelf.c:12708 readelf.c:12735 readelf.c:13075
+#: readelf.c:12693 readelf.c:12721 readelf.c:12748 readelf.c:13088
#, c-format
msgid " None\n"
msgstr " Ðишта\n"
-#: readelf.c:12942
+#: readelf.c:12955
#, c-format
msgid "Shared library: [%s]"
msgstr "Дељена библиотека: [%s]"
-#: readelf.c:12946
+#: readelf.c:12959
#, c-format
msgid " program interpreter"
msgstr " тумач програма"
-#: readelf.c:12950
+#: readelf.c:12963
#, c-format
msgid "Library soname: [%s]"
msgstr "тзвназив библиотеке: [%s]"
-#: readelf.c:12954
+#: readelf.c:12967
#, c-format
msgid "Library rpath: [%s]"
msgstr "рпутања библиотеке: [%s]"
-#: readelf.c:12958
+#: readelf.c:12971
#, c-format
msgid "Library runpath: [%s]"
msgstr "покретања_путања библиотеке: [%s]"
-#: readelf.c:12995
+#: readelf.c:13008
#, c-format
msgid " (bytes)\n"
msgstr " (бајта)\n"
-#: readelf.c:13026
+#: readelf.c:13039
#, c-format
msgid "Not needed object: [%s]\n"
msgstr "Ðепотребан предмет: [%s]\n"
-#: readelf.c:13051
+#: readelf.c:13064
#, c-format
msgid "<corrupt time val: %<PRIx64>"
msgstr "<оштећена вредноÑÑ‚ времена: %<PRIx64>"
-#: readelf.c:13194
+#: readelf.c:13207
#, c-format
msgid ""
"\n"
@@ -10538,7 +10584,7 @@ msgstr[2] ""
"\n"
"У повезаној датотеци „%s“ одељак одреднице издања „%s“ Ñадржи %u уноÑа:\n"
-#: readelf.c:13201
+#: readelf.c:13214
#, c-format
msgid ""
"\n"
@@ -10556,71 +10602,71 @@ msgstr[2] ""
"\n"
"Одељак одреднице издања „%s“ Ñадржи %u уноÑа:\n"
-#: readelf.c:13209 readelf.c:13355 readelf.c:13520
+#: readelf.c:13222 readelf.c:13368 readelf.c:13533
#, c-format
msgid " Addr: 0x%016<PRIx64>"
msgstr " ÐдреÑа: 0x%016<PRIx64>"
-#: readelf.c:13210 readelf.c:13356 readelf.c:13521
+#: readelf.c:13223 readelf.c:13369 readelf.c:13534
#, c-format
msgid " Offset: 0x%08<PRIx64> Link: %u (%s)\n"
msgstr " Померај: 0x%08<PRIx64> Веза: %u (%s)\n"
-#: readelf.c:13216
+#: readelf.c:13229
msgid "version definition section"
msgstr "одељак одреднице издања"
-#: readelf.c:13245
+#: readelf.c:13258
#, c-format
msgid " %#06zx: Rev: %d Flags: %s"
msgstr " %#06zx: Рев: %d Опције: %s"
-#: readelf.c:13248
+#: readelf.c:13261
#, c-format
msgid " Index: %d Cnt: %d "
msgstr " ИндекÑ: %d Бројач: %d "
-#: readelf.c:13265
+#: readelf.c:13278
#, c-format
msgid "Name: %s\n"
msgstr "Ðазив: %s\n"
-#: readelf.c:13268
+#: readelf.c:13281
#, c-format
msgid "Name index: %ld\n"
msgstr "Ð˜Ð½Ð´ÐµÐºÑ Ð½Ð°Ð·Ð¸Ð²Ð°: %ld\n"
-#: readelf.c:13277
+#: readelf.c:13290
#, c-format
msgid "Invalid vda_next field of %lx\n"
msgstr "ÐеиÑправно „vda_next“ поље од %lx\n"
-#: readelf.c:13297
+#: readelf.c:13310
#, c-format
msgid " %#06zx: Parent %d: %s\n"
msgstr " %#06zx: Родитељ %d: %s\n"
-#: readelf.c:13301
+#: readelf.c:13314
#, c-format
msgid " %#06zx: Parent %d, name index: %ld\n"
msgstr " %#06zx: Родитељ %d, Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð°Ð·Ð¸Ð²Ð°: %ld\n"
-#: readelf.c:13306
+#: readelf.c:13319
#, c-format
msgid " Version def aux past end of section\n"
msgstr " Одредница издања „aux“ је прешла крај одељка\n"
-#: readelf.c:13313
+#: readelf.c:13326
#, c-format
msgid "Invalid vd_next field of %lx\n"
msgstr "ÐеиÑправно „vd_next“ поље од %lx\n"
-#: readelf.c:13324
+#: readelf.c:13337
#, c-format
msgid " Version definition past end of section\n"
msgstr " Одредница издања је прешла крај одељка\n"
-#: readelf.c:13340
+#: readelf.c:13353
#, c-format
msgid ""
"\n"
@@ -10638,7 +10684,7 @@ msgstr[2] ""
"\n"
"У повезаној датотеци „%s“ одељку потребно издање „%s“ Ñадржи %u уноÑа:\n"
-#: readelf.c:13347
+#: readelf.c:13360
#, c-format
msgid ""
"\n"
@@ -10656,68 +10702,68 @@ msgstr[2] ""
"\n"
"Издању треба одељак „%s“ који Ñадржи %u уноÑа:\n"
-#: readelf.c:13363
+#: readelf.c:13376
msgid "Version Needs section"
msgstr "Одељак „Издању треба“"
-#: readelf.c:13388
+#: readelf.c:13401
#, c-format
msgid " %#06zx: Version: %d"
msgstr " %#06zx: Издање: %d"
-#: readelf.c:13391
+#: readelf.c:13404
#, c-format
msgid " File: %s"
msgstr " Датотека: %s"
-#: readelf.c:13394
+#: readelf.c:13407
#, c-format
msgid " File: %lx"
msgstr " Датотека: %lx"
-#: readelf.c:13396
+#: readelf.c:13409
#, c-format
msgid " Cnt: %d\n"
msgstr " Бројач: %d\n"
-#: readelf.c:13419
+#: readelf.c:13432
#, c-format
msgid " %#06zx: Name: %s"
msgstr " %#06zx: Ðазив: %s"
-#: readelf.c:13422
+#: readelf.c:13435
#, c-format
msgid " %#06zx: Name index: %lx"
msgstr " %#06zx: Ð˜Ð½Ð´ÐµÐºÑ Ð½Ð°Ð·Ð¸Ð²Ð°: %lx"
-#: readelf.c:13425
+#: readelf.c:13438
#, c-format
msgid " Flags: %s Version: %d\n"
msgstr " Опције: %s Издање: %d\n"
-#: readelf.c:13431
+#: readelf.c:13444
#, c-format
msgid "Invalid vna_next field of %lx\n"
msgstr "ÐеиÑправно „vna_next“ поље од %lx\n"
-#: readelf.c:13444
+#: readelf.c:13457
msgid "Missing Version Needs auxiliary information\n"
msgstr "Потребне Ñу додатне информације недоÑтајућег издања\n"
-#: readelf.c:13449
+#: readelf.c:13462
#, c-format
msgid "Invalid vn_next field of %lx\n"
msgstr "ÐеиÑправно „vn_next“ поље од %lx\n"
-#: readelf.c:13459
+#: readelf.c:13472
msgid "Missing Version Needs information\n"
msgstr "ÐедоÑтају подаци за „Издању треба“\n"
-#: readelf.c:13497
+#: readelf.c:13510
msgid "version string table"
msgstr "табела ниÑке издања"
-#: readelf.c:13505
+#: readelf.c:13518
#, c-format
msgid ""
"\n"
@@ -10735,7 +10781,7 @@ msgstr[2] ""
"\n"
"У повезаној датотеци „%s“ одељак Ñимбола издања „%s“ Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:13512
+#: readelf.c:13525
#, c-format
msgid ""
"\n"
@@ -10753,47 +10799,47 @@ msgstr[2] ""
"\n"
"Одељак Ñимбола издања „%s“ Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:13530
+#: readelf.c:13543
msgid "version symbol data"
msgstr "подаци Ñимбола издања"
-#: readelf.c:13550
+#: readelf.c:13563
msgid "*invalid*"
msgstr "*неиÑправно*"
-#: readelf.c:13558
+#: readelf.c:13571
msgid " 0 (*local*) "
msgstr " 0 (*меÑно*) "
-#: readelf.c:13562
+#: readelf.c:13575
msgid " 1 (*global*) "
msgstr " 1 (*опште*) "
-#: readelf.c:13573
+#: readelf.c:13586
msgid "invalid index into symbol array\n"
msgstr "неиÑправан Ð¸Ð½Ð´ÐµÐºÑ Ñƒ низу Ñимбола\n"
-#: readelf.c:13596 readelf.c:14148
+#: readelf.c:13609 readelf.c:14161
msgid "version need"
msgstr "издање „need“"
-#: readelf.c:13607
+#: readelf.c:13620
msgid "version need aux (2)"
msgstr "издање „need aux“ (2)"
-#: readelf.c:13654 readelf.c:14092
+#: readelf.c:13667 readelf.c:14105
msgid "version def"
msgstr "одредница издања"
-#: readelf.c:13682 readelf.c:14123
+#: readelf.c:13695 readelf.c:14136
msgid "version def aux"
msgstr "помоћна одредница издања"
-#: readelf.c:13690
+#: readelf.c:13703
msgid "*both*"
msgstr "*оба*"
-#: readelf.c:13722
+#: readelf.c:13735
#, c-format
msgid ""
"\n"
@@ -10802,7 +10848,7 @@ msgstr ""
"\n"
"Ðема података о издању у повезаној датотеци „%s“.\n"
-#: readelf.c:13725
+#: readelf.c:13738
#, c-format
msgid ""
"\n"
@@ -10811,69 +10857,69 @@ msgstr ""
"\n"
"Ðема података о издању у овој датотеци.\n"
-#: readelf.c:13821
+#: readelf.c:13834
#, c-format
msgid "Unrecognized visibility value: %u\n"
msgstr "Ðепозната вредноÑÑ‚ видљивоÑти: %u\n"
-#: readelf.c:13834
+#: readelf.c:13847
#, c-format
msgid "Unrecognized alpha specific other value: %u\n"
msgstr "Ðепозната друга „alpha“ Ñпецифична вредноÑÑ‚: %u\n"
-#: readelf.c:13911
+#: readelf.c:13924
#, c-format
msgid "Unrecognized IA64 VMS ST Function type: %d\n"
msgstr "Ðепозната врÑта „IA64 VMS ST“ функције: %d\n"
-#: readelf.c:13935
+#: readelf.c:13948
#, c-format
msgid "Unrecognized IA64 VMS ST Linkage: %d\n"
msgstr "Ðепознато „IA64 VMS ST“ повезивање: %d\n"
-#: readelf.c:13961
+#: readelf.c:13974
#, c-format
msgid "<localentry>: %d"
msgstr "<меÑни_уноÑ>: %d"
-#: readelf.c:13975
+#: readelf.c:13988
msgid " VARIANT_CC"
msgstr " VARIANT_CC"
-#: readelf.c:14026
+#: readelf.c:14039
#, c-format
msgid "<other>: %x"
msgstr "<друго>: %x"
-#: readelf.c:14054
+#: readelf.c:14067
msgid "version data"
msgstr "подаци издања"
-#: readelf.c:14166
+#: readelf.c:14179
msgid "version need aux (3)"
msgstr "издање „need aux“ (3)"
-#: readelf.c:14357
+#: readelf.c:14370
#, c-format
msgid "local symbol %<PRIu64> found at index >= %s's sh_info value of %u\n"
msgstr "нађох локални Ñимбол %<PRIu64> у индекÑу >= %s „sh_info“ вредноÑÑ‚ %u\n"
-#: readelf.c:14376
+#: readelf.c:14389
#, c-format
msgid "Unknown LTO symbol definition encountered: %u\n"
msgstr "Ðаиђох на непознату дефиницију „LTO“ Ñимбола: %u\n"
-#: readelf.c:14395
+#: readelf.c:14408
#, c-format
msgid "Unknown LTO symbol visibility encountered: %u\n"
msgstr "Ðаиђох на непознату видљивоÑÑ‚ „LTO“ Ñимбола: %u\n"
-#: readelf.c:14413
+#: readelf.c:14426
#, c-format
msgid "Unknown LTO symbol type encountered: %u\n"
msgstr "Ðаиђох на непознату врÑту „LTO“ Ñимбола: %u\n"
-#: readelf.c:14429
+#: readelf.c:14442
#, c-format
msgid ""
"\n"
@@ -10882,7 +10928,7 @@ msgstr ""
"\n"
"Одељак табеле „LTO“ Ñимбола „%s“ у повезаној датотеци „%s“ је празан!\n"
-#: readelf.c:14433
+#: readelf.c:14446
#, c-format
msgid ""
"\n"
@@ -10891,24 +10937,24 @@ msgstr ""
"\n"
"Табела „LTO“ Ñимбола „%s“ је празна!\n"
-#: readelf.c:14448
+#: readelf.c:14461
msgid "LTO symbols"
msgstr "„LTO“ Ñимболи"
-#: readelf.c:14463
+#: readelf.c:14476
#, c-format
msgid "LTO Symbol extension table '%s' is empty!\n"
msgstr "Табела проширења „LTO“ Ñимбола „%s“ је празна!\n"
-#: readelf.c:14469
+#: readelf.c:14482
msgid "LTO ext symbol data"
msgstr "Подаци проширења „LTO“ Ñимбола"
-#: readelf.c:14474
+#: readelf.c:14487
msgid "Unexpected version number in symbol extension table\n"
msgstr "Ðеочекивани број издања у табели проширења Ñимбола\n"
-#: readelf.c:14483
+#: readelf.c:14496
#, c-format
msgid ""
"\n"
@@ -10917,69 +10963,69 @@ msgstr ""
"\n"
"У повезаној датотеци „%s“: "
-#: readelf.c:14490
+#: readelf.c:14503
#, c-format
msgid "LTO Symbol table '%s' and extension table '%s' contain:\n"
msgstr "Табела „LTO“ Ñимбола „%s“ и табела проширења „%s“ Ñадрже:\n"
-#: readelf.c:14495
+#: readelf.c:14508
#, c-format
msgid "LTO Symbol table '%s'\n"
msgstr "Табела „LTO“ Ñимбола „%s“\n"
-#: readelf.c:14497
+#: readelf.c:14510
#, c-format
msgid " and extension table '%s' contain:\n"
msgstr " и табела проширења „%s“ Ñадрже:\n"
-#: readelf.c:14502
+#: readelf.c:14515
#, c-format
msgid "LTO Symbol table '%s' contains:\n"
msgstr "Табела „LTO“ Ñимбола „%s“ Ñадржи:\n"
-#: readelf.c:14507
+#: readelf.c:14520
#, c-format
msgid " Comdat_Key Kind Visibility Size Slot Type Section Name\n"
msgstr " Ðарпод_Кључ Ð’Ñ€Ñта ВидљивоÑÑ‚ Величина Утор Ð’Ñ€Ñта Ðазив одељка\n"
-#: readelf.c:14509
+#: readelf.c:14522
#, c-format
msgid " Comdat_Key Kind Visibility Size Slot Name\n"
msgstr " Ðарпод_Кључ Ð’Ñ€Ñта ВидљивоÑÑ‚ Величина Ðазив утора\n"
-#: readelf.c:14556
+#: readelf.c:14569
msgid "Ran out of LTO symbol extension data\n"
msgstr "Ðема више података проширења „LTO“ Ñимбола\n"
-#: readelf.c:14576
+#: readelf.c:14589
msgid "Data remains in the LTO symbol extension table\n"
msgstr "Подаци оÑтали у табели проширења „LTO“ Ñимбола\n"
-#: readelf.c:14586
+#: readelf.c:14599
msgid "Buffer overrun encountered whilst decoding LTO symbol table\n"
msgstr "Ðаиђох на прекорачење међумеморије за време дешифровања табеле „LTO“ Ñимбола\n"
-#: readelf.c:14628
+#: readelf.c:14641
#, c-format
msgid " Num: Value Size Type Bind Vis+Other Ndx(SecName) Name [+ Version Info]\n"
msgstr " Број: ВрднÑÑ‚ Влчна Тип Свеза Виз+Дрги ИндкÑ(ÐзивОдљка) Ðазив [+ Инфо Издња]\n"
-#: readelf.c:14634 readelf.c:14640
+#: readelf.c:14647 readelf.c:14653
#, c-format
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " Број: ВрднÑÑ‚ Вел. Ð’Ñ€Ñта Свеза Виз Инд Ðазив\n"
-#: readelf.c:14649
+#: readelf.c:14662
#, c-format
msgid " Num: Value Size Type Bind Vis+Other Ndx(SecName) Name [+ Version Info]\n"
msgstr " Број: ВрднÑÑ‚ Влчна Тип Свеза Виз+Дрги ИндкÑ(ÐзивОдљка) Ðазив [+ Инфо Издња]\n"
-#: readelf.c:14656 readelf.c:14662
+#: readelf.c:14669 readelf.c:14675
#, c-format
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " Број: ВрднÑÑ‚ Вел. Ð’Ñ€Ñта Свеза Виз Инд Ðазив\n"
-#: readelf.c:14675
+#: readelf.c:14688
#, c-format
msgid ""
"\n"
@@ -10988,7 +11034,7 @@ msgstr ""
"\n"
"Табела Ñимбола „%s“ има нулту „sh_entsize“!\n"
-#: readelf.c:14683
+#: readelf.c:14696
#, c-format
msgid ""
"\n"
@@ -11006,7 +11052,7 @@ msgstr[2] ""
"\n"
"У повезаној датотеци „%s“ одељак Ñимбола „%s“ Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:14692
+#: readelf.c:14705
#, c-format
msgid ""
"\n"
@@ -11024,7 +11070,7 @@ msgstr[2] ""
"\n"
"Табела Ñимбола „%s“ Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:14760
+#: readelf.c:14773
#, c-format
msgid ""
"\n"
@@ -11042,7 +11088,7 @@ msgstr[2] ""
"\n"
"У повезаној датотеци „%s“ табела динамичког Ñимбола Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:14770
+#: readelf.c:14783
#, c-format
msgid ""
"\n"
@@ -11060,7 +11106,7 @@ msgstr[2] ""
"\n"
"Табела Ñимбола за Ñлику Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:14805
+#: readelf.c:14818
#, c-format
msgid ""
"\n"
@@ -11069,7 +11115,7 @@ msgstr ""
"\n"
"Подаци динамичког Ñимбола ниÑу доÑтупни за приказивање Ñимбола.\n"
-#: readelf.c:14818
+#: readelf.c:14831
#, c-format
msgid ""
"\n"
@@ -11087,24 +11133,24 @@ msgstr[2] ""
"\n"
"ХиÑтограм за дужину ÑпиÑка ведра (укупно %<PRIu64> ведара):\n"
-#: readelf.c:14828
+#: readelf.c:14841
msgid "Out of memory allocating space for histogram buckets\n"
msgstr "ПонеÑтало је меморије приликом додељивања проÑтора за ведра хиÑтограма\n"
-#: readelf.c:14834 readelf.c:14911
+#: readelf.c:14847 readelf.c:14924
#, c-format
msgid " Length Number %% of total Coverage\n"
msgstr " Дужина Број %% од укупно ПокривеноÑÑ‚\n"
-#: readelf.c:14844
+#: readelf.c:14857
msgid "histogram chain is corrupt\n"
msgstr "ланац хиÑтограма је оштећен\n"
-#: readelf.c:14856
+#: readelf.c:14869
msgid "Out of memory allocating space for histogram counts\n"
msgstr "ПонеÑтало је меморије приликом додељивања проÑтора за број хиÑтограма\n"
-#: readelf.c:14896
+#: readelf.c:14909
#, c-format
msgid ""
"\n"
@@ -11122,15 +11168,15 @@ msgstr[2] ""
"\n"
"ХиÑтограм за „%s“ дужину ÑпиÑка ведра (укупно %<PRIu64> ведара):\n"
-#: readelf.c:14907
+#: readelf.c:14920
msgid "Out of memory allocating space for gnu histogram buckets\n"
msgstr "ПонеÑтало је меморије приликом додељивања проÑтора за ведра гну хиÑтограма\n"
-#: readelf.c:14934
+#: readelf.c:14947
msgid "Out of memory allocating space for gnu histogram counts\n"
msgstr "ПонеÑтало је меморије приликом додељивања проÑтора за број гну хиÑтограма\n"
-#: readelf.c:15000
+#: readelf.c:15013
#, c-format
msgid ""
"\n"
@@ -11148,7 +11194,7 @@ msgstr[2] ""
"\n"
"У повезаној датотеци „%s“ одломак динамичких информација на померају %#<PRIx64> Ñадржи %d уноÑа:\n"
-#: readelf.c:15007
+#: readelf.c:15020
#, c-format
msgid ""
"\n"
@@ -11166,87 +11212,87 @@ msgstr[2] ""
"\n"
"Одломак динамичких података на померају %#<PRIx64> Ñадржи %d уноÑа:\n"
-#: readelf.c:15015
+#: readelf.c:15028
#, c-format
msgid " Num: Name BoundTo Flags\n"
msgstr " Бр.: Ðазив Свезан за Опције\n"
-#: readelf.c:15022
+#: readelf.c:15035
#, c-format
msgid "<corrupt index>"
msgstr "<оштећен индекÑ>"
-#: readelf.c:15027
+#: readelf.c:15040
#, c-format
msgid "<corrupt: %19ld>"
msgstr "<оштећено: %19ld>"
-#: readelf.c:15119
+#: readelf.c:15132
#, c-format
msgid "LoongArch ULEB128 field at 0x%lx contains invalid ULEB128 value\n"
msgstr "LoongArch ULEB128 поље на 0x%lx Ñадржи нетачну ULEB128 вредноÑÑ‚\n"
-#: readelf.c:15124 readelf.c:15178 readelf.c:15229 readelf.c:15275
-#: readelf.c:15289 readelf.c:15333
+#: readelf.c:15137 readelf.c:15191 readelf.c:15242 readelf.c:15288
+#: readelf.c:15302 readelf.c:15346
#, c-format
msgid "%s reloc contains invalid symbol index %<PRIu64>\n"
msgstr "„%s“ премештај Ñадржи неиÑправан Ð¸Ð½Ð´ÐµÐºÑ Ñимбола %<PRIu64>\n"
-#: readelf.c:15225
+#: readelf.c:15238
#, c-format
msgid "MSP430 ULEB128 field at %#<PRIx64> contains invalid ULEB128 value\n"
msgstr "MSP430 ULEB128 поље на %#<PRIx64> Ñадржи неиÑправну „ULEB128“ вредноÑÑ‚\n"
#. PR 21137
-#: readelf.c:15240
+#: readelf.c:15253
#, c-format
msgid "MSP430 sym diff reloc contains invalid offset: %#<PRIx64>\n"
msgstr "MSP430 премештај разлике Ñимбола Ñадржи неиÑправан померај: %#<PRIx64>\n"
-#: readelf.c:15252
+#: readelf.c:15265
msgid "Unhandled MSP430 reloc type found after SYM_DIFF reloc\n"
msgstr "Ðађох необрадиву „MSP430“ врÑту премештаја након „SYM_DIFF“ премештаја\n"
-#: readelf.c:15299
+#: readelf.c:15312
#, c-format
msgid "MN10300 sym diff reloc contains invalid offset: %#<PRIx64>\n"
msgstr "MN10300 премештај разлике Ñимбола Ñадржи неиÑправан померај: %#<PRIx64>\n"
-#: readelf.c:15310
+#: readelf.c:15323
msgid "Unhandled MN10300 reloc type found after SYM_DIFF reloc\n"
msgstr "Пронађох непознату MN10300 врÑту премештаја након „SYM_DIFF“ премештаја\n"
-#: readelf.c:15352 readelf.c:15362
+#: readelf.c:15365 readelf.c:15375
#, c-format
msgid "RL78 sym diff reloc contains invalid offset: %#<PRIx64>\n"
msgstr "RL78 премештај разлике Ñимбола Ñадржи неиÑправан померај: %#<PRIx64>\n"
-#: readelf.c:15585
+#: readelf.c:15598
#, c-format
msgid "Missing knowledge of 32-bit reloc types used in DWARF sections of machine number %d\n"
msgstr "ÐедоÑтаје знање о 32-битним врÑтама премештаја коришћених у „DWARF“ одељцима броја машине %d\n"
-#: readelf.c:16320
+#: readelf.c:16333
#, c-format
msgid "unable to apply unsupported reloc type %d to section %s\n"
msgstr "не могу да применим неподржану врÑту премештаја %d на одељак %s\n"
-#: readelf.c:16329
+#: readelf.c:16342
#, c-format
msgid "skipping invalid relocation offset %#<PRIx64> in section %s\n"
msgstr "преÑкачем неиÑправан померај премештаја %#<PRIx64> у одељку %s\n"
-#: readelf.c:16339
+#: readelf.c:16352
#, c-format
msgid "skipping invalid relocation symbol index %#<PRIx64> in section %s\n"
msgstr "преÑкачем неиÑправан Ð¸Ð½Ð´ÐµÐºÑ Ñимбола премештаја %#<PRIx64> у одељку %s\n"
-#: readelf.c:16363
+#: readelf.c:16376
#, c-format
msgid "skipping unexpected symbol type %s in section %s relocation %tu\n"
msgstr "преÑкачем неочекивану врÑту Ñимбола %s у одељку %s премештај %tu\n"
-#: readelf.c:16441
+#: readelf.c:16454
#, c-format
msgid ""
"\n"
@@ -11255,36 +11301,36 @@ msgstr ""
"\n"
"Избачај аÑемблера за одељак %s\n"
-#: readelf.c:16459
+#: readelf.c:16472
#, c-format
msgid "Section '%s' has no data to dump.\n"
msgstr "Одељак „%s“ нема податке за избачај.\n"
-#: readelf.c:16465
+#: readelf.c:16478
msgid "section contents"
msgstr "Ñадржај одељка"
-#: readelf.c:16488
+#: readelf.c:16501
#, c-format
msgid "Uncompressed section size is suspiciously large: 0x%<PRIu64>\n"
msgstr "Величина неÑажетог одељка је Ñумњиво велика: 0x%<PRIu64>\n"
-#: readelf.c:16580 readelf.c:17199
+#: readelf.c:16593 readelf.c:17177
#, c-format
msgid "section '%s' has unsupported compress type: %d\n"
msgstr "одељак „%s“ има неподржану врÑту Ñажимања: %d\n"
-#: readelf.c:16616 readelf.c:17236
+#: readelf.c:16629 readelf.c:17214
#, c-format
msgid "Unable to decompress section %s\n"
msgstr "Ðе могу да раÑпакујем одељак %s\n"
-#: readelf.c:16655
+#: readelf.c:16668
#, c-format
msgid " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"
msgstr " ÐÐПОМЕÐÐ: Ðад овим одељком Ñе раде премештаји, али они ÐИСУ примењени на овај избачај.\n"
-#: readelf.c:16683
+#: readelf.c:16696
#, c-format
msgid ""
"\n"
@@ -11293,7 +11339,7 @@ msgstr ""
"\n"
"Избачај ниÑке одељка „%s“ у повезаној датотеци „%s“:\n"
-#: readelf.c:16687
+#: readelf.c:16700
#, c-format
msgid ""
"\n"
@@ -11302,18 +11348,18 @@ msgstr ""
"\n"
"Избачај ниÑке одељка „%s“:\n"
-#: readelf.c:16785 readelf.c:18290 readelf.c:18330 readelf.c:18368
-#: readelf.c:18415 readelf.c:18446 readelf.c:20052 readelf.c:20084
+#: readelf.c:16798 readelf.c:18272 readelf.c:18312 readelf.c:18350
+#: readelf.c:18397 readelf.c:18428 readelf.c:20023 readelf.c:20055
#, c-format
msgid "<corrupt>\n"
msgstr "<оштећено>\n"
-#: readelf.c:16793
+#: readelf.c:16806
#, c-format
msgid " No strings found in this section."
msgstr " Ðема пронађених ниÑки у овом одељку."
-#: readelf.c:16828
+#: readelf.c:16841
#, c-format
msgid ""
"\n"
@@ -11322,7 +11368,7 @@ msgstr ""
"\n"
"ХекÑадецимални избачај одељка „%s“ у повезаној датотеци „%s“:\n"
-#: readelf.c:16832
+#: readelf.c:16845
#, c-format
msgid ""
"\n"
@@ -11331,31 +11377,31 @@ msgstr ""
"\n"
"ХекÑадецимални избачај одељка „%s“:\n"
-#: readelf.c:16976
+#: readelf.c:16989
#, c-format
msgid "Iteration failed: %s, %s\n"
msgstr "Понављање није уÑпело: %s, %s\n"
-#: readelf.c:17020
+#: readelf.c:17033
#, c-format
msgid "No symbol section named %s\n"
msgstr "Ðема одељка Ñимбола под називом „%s“\n"
-#: readelf.c:17036
+#: readelf.c:17049
#, c-format
msgid "No string table section named %s\n"
msgstr "Ðема одељка табеле ниÑке под називом „%s“\n"
-#: readelf.c:17043
+#: readelf.c:17056
msgid "strings"
msgstr "ниÑке"
-#: readelf.c:17056 readelf.c:17068
+#: readelf.c:17069 readelf.c:17081
#, c-format
msgid "CTF open failure: %s\n"
msgstr "ÐиÑам уÑпео да отворим „CTF“: %s\n"
-#: readelf.c:17075
+#: readelf.c:17088
#, c-format
msgid ""
"\n"
@@ -11364,7 +11410,7 @@ msgstr ""
"\n"
"Избачај „CTF“ одељка „%s“ у повезаној датотеци „%s“:\n"
-#: readelf.c:17079
+#: readelf.c:17092
#, c-format
msgid ""
"\n"
@@ -11373,36 +11419,27 @@ msgstr ""
"\n"
"Избачај „CTF“ одељка „%s“:\n"
-#: readelf.c:17087
+#: readelf.c:17103
#, c-format
msgid "CTF member open failure: %s\n"
msgstr "ÐеуÑпех отварања „CTF“ члана: %s\n"
-#: readelf.c:17114
-msgid "Section name must be provided \n"
-msgstr "Ðазив одељка мора бити доÑтављен \n"
-
-#: readelf.c:17126
-#, c-format
-msgid "SFrame decode failure: %s\n"
-msgstr "Декодирање „SFrame“-а није уÑпело: %s\n"
-
-#: readelf.c:17156
+#: readelf.c:17134
#, c-format
msgid "%s section data"
msgstr "подаци одељка %s"
-#: readelf.c:17180
+#: readelf.c:17158
#, c-format
msgid "compressed section %s is too small to contain a compression header\n"
msgstr "Ñажети одељак „%s“ је премали да Ñадржи заглавље Ñажимања\n"
-#: readelf.c:17312 readelf.c:17339 readelf.c:17364
+#: readelf.c:17290 readelf.c:17317 readelf.c:17342
#, c-format
msgid "malformed note encountered in section %s whilst scanning for build-id note\n"
msgstr "наиђох на лошу напомену у одељку „%s“ док Ñам тражио напомену иб-а изградње\n"
-#: readelf.c:17492
+#: readelf.c:17470
#, c-format
msgid ""
"\n"
@@ -11415,510 +11452,510 @@ msgstr ""
#. which has the NOBITS type - the bits in the file will be random.
#. This can happen when a file containing a .eh_frame section is
#. stripped with the --only-keep-debug command line option.
-#: readelf.c:17501
+#: readelf.c:17479
#, c-format
msgid "section '%s' has the NOBITS type - its contents are unreliable.\n"
msgstr "одељак „%s“ има врÑту „NOBITS“ – његови Ñадржаји Ñу непоуздани.\n"
-#: readelf.c:17551
+#: readelf.c:17529
#, c-format
msgid "Unrecognized debug section: %s\n"
msgstr "Ðепознат одељак прочишћавања: %s\n"
-#: readelf.c:17581
+#: readelf.c:17559
#, c-format
msgid "Section '%s' was not dumped because it does not exist\n"
msgstr "Одељак „%s“ није избачен зато што не поÑтоји\n"
-#: readelf.c:17644
+#: readelf.c:17622
#, c-format
msgid "Unable to display section %d - it has a NULL type\n"
msgstr "Ðе могу да прикажем одељак %d – има врÑту ÐИШТÐ\n"
-#: readelf.c:17648
+#: readelf.c:17626
#, c-format
msgid "Unable to display section %d - it has no contents\n"
msgstr "Ðе могу да прикажем одељак %d – нема Ñадржаја\n"
#. FIXME: Add Proc and OS specific section types ?
-#: readelf.c:17659
+#: readelf.c:17637
#, c-format
msgid "Unable to determine how to dump section %d (type %#x)\n"
msgstr "Ðе могу да одредим како да иÑпишем одељак %d (врÑта „%#x“)\n"
-#: readelf.c:17718
+#: readelf.c:17696
#, c-format
msgid "Section %d was not dumped because it does not exist!\n"
msgstr "Одељак %d није избачен зато што не поÑтоји!\n"
-#: readelf.c:17774
+#: readelf.c:17752
msgid "<corrupt tag>\n"
msgstr "<оштећена ознака>\n"
-#: readelf.c:17789
+#: readelf.c:17766 readelf.c:17771
#, c-format
msgid "<corrupt string tag>"
msgstr "<оштећена ознака ниÑке>"
-#: readelf.c:17823
+#: readelf.c:17805
#, c-format
msgid "Absent/Non standard\n"
msgstr "ОдÑтутно/ÐеÑтандардно\n"
-#: readelf.c:17826
+#: readelf.c:17808
#, c-format
msgid "Bare metal/mwdt\n"
msgstr "Огољени метал/mwdt\n"
-#: readelf.c:17829
+#: readelf.c:17811
#, c-format
msgid "Bare metal/newlib\n"
msgstr "Огољени метал/newlib\n"
-#: readelf.c:17832
+#: readelf.c:17814
#, c-format
msgid "Linux/uclibc\n"
msgstr "ЛинукÑ/uclibc\n"
-#: readelf.c:17835
+#: readelf.c:17817
#, c-format
msgid "Linux/glibc\n"
msgstr "ЛинукÑ/glibc\n"
-#: readelf.c:17838 readelf.c:17917
+#: readelf.c:17820 readelf.c:17899
#, c-format
msgid "Unknown\n"
msgstr "Ðепознато\n"
-#: readelf.c:17850 readelf.c:17880 readelf.c:17908
+#: readelf.c:17832 readelf.c:17862 readelf.c:17890
#, c-format
msgid "Absent\n"
msgstr "ÐедоÑтаје\n"
-#: readelf.c:17892
+#: readelf.c:17874
msgid "yes"
msgstr "да"
-#: readelf.c:17892
+#: readelf.c:17874
msgid "no"
msgstr "не"
-#: readelf.c:17929 readelf.c:17936
+#: readelf.c:17911 readelf.c:17918
msgid "default"
msgstr "оÑновно"
-#: readelf.c:17930
+#: readelf.c:17912
msgid "smallest"
msgstr "најмање"
-#: readelf.c:17935
+#: readelf.c:17917
msgid "OPTFP"
msgstr "OPTFP"
-#: readelf.c:18156 readelf.c:18169 readelf.c:18187 readelf.c:18709
-#: readelf.c:18988 readelf.c:19000 readelf.c:19012
+#: readelf.c:18138 readelf.c:18151 readelf.c:18169 readelf.c:18691
+#: readelf.c:18970 readelf.c:18982 readelf.c:18994
#, c-format
msgid "None\n"
msgstr "Ðишта\n"
-#: readelf.c:18157
+#: readelf.c:18139
#, c-format
msgid "Application\n"
msgstr "Програм\n"
-#: readelf.c:18158
+#: readelf.c:18140
#, c-format
msgid "Realtime\n"
msgstr "Стварно време\n"
-#: readelf.c:18159
+#: readelf.c:18141
#, c-format
msgid "Microcontroller\n"
msgstr "Микроконтролер\n"
-#: readelf.c:18160
+#: readelf.c:18142
#, c-format
msgid "Application or Realtime\n"
msgstr "Програм или Ñтварно време\n"
-#: readelf.c:18170 readelf.c:18189 readelf.c:18761 readelf.c:18778
-#: readelf.c:18849 readelf.c:18869 readelf.c:21737
+#: readelf.c:18152 readelf.c:18171 readelf.c:18743 readelf.c:18760
+#: readelf.c:18831 readelf.c:18851 readelf.c:21747
#, c-format
msgid "8-byte\n"
msgstr "8-бајта\n"
-#: readelf.c:18171 readelf.c:18852 readelf.c:18872 readelf.c:21736
+#: readelf.c:18153 readelf.c:18834 readelf.c:18854 readelf.c:21746
#, c-format
msgid "4-byte\n"
msgstr "4-бајта\n"
-#: readelf.c:18175 readelf.c:18193
+#: readelf.c:18157 readelf.c:18175
#, c-format
msgid "8-byte and up to %d-byte extended\n"
msgstr "8-бајта и Ñве до %d-бајта проширено\n"
-#: readelf.c:18188
+#: readelf.c:18170
#, c-format
msgid "8-byte, except leaf SP\n"
msgstr "8-бајта, оÑим за лиÑÑ‚ СП\n"
-#: readelf.c:18204 readelf.c:18287 readelf.c:18887
+#: readelf.c:18186 readelf.c:18269 readelf.c:18869
#, c-format
msgid "flag = %d, vendor = "
msgstr "опција = %d, продавац = "
-#: readelf.c:18225
+#: readelf.c:18207
#, c-format
msgid "True\n"
msgstr "Тачно\n"
-#: readelf.c:18245
+#: readelf.c:18227
#, c-format
msgid "<unknown: %d>\n"
msgstr "<непознато: %d>\n"
-#: readelf.c:18291
+#: readelf.c:18273
msgid "corrupt vendor attribute\n"
msgstr "оштећен атрибут продавца\n"
-#: readelf.c:18341
+#: readelf.c:18323
#, c-format
msgid "unspecified hard/soft float\n"
msgstr "неодређеи машинÑки/ÑофтверÑки покретни зарез\n"
-#: readelf.c:18344
+#: readelf.c:18326
#, c-format
msgid "hard float\n"
msgstr "машинÑки зарез\n"
-#: readelf.c:18347
+#: readelf.c:18329
#, c-format
msgid "soft float\n"
msgstr "ÑофтверÑки зарез\n"
-#: readelf.c:18379
+#: readelf.c:18361
#, c-format
msgid "unspecified hard/soft float, "
msgstr "неодређеи машинÑки/ÑофтверÑки покретни зарез, "
-#: readelf.c:18382
+#: readelf.c:18364
#, c-format
msgid "hard float, "
msgstr "машинÑки зарез, "
-#: readelf.c:18385
+#: readelf.c:18367
#, c-format
msgid "soft float, "
msgstr "ÑофтверÑки зарез, "
-#: readelf.c:18388
+#: readelf.c:18370
#, c-format
msgid "single-precision hard float, "
msgstr "машинÑки зарез једно-тачноÑти, "
-#: readelf.c:18395
+#: readelf.c:18377
#, c-format
msgid "unspecified long double\n"
msgstr "неодређени дуги дубл\n"
-#: readelf.c:18398
+#: readelf.c:18380
#, c-format
msgid "128-bit IBM long double\n"
msgstr "128-битни „IBM“ дуги дубл\n"
-#: readelf.c:18401
+#: readelf.c:18383
#, c-format
msgid "64-bit long double\n"
msgstr "64-битни дуги дубл\n"
-#: readelf.c:18404
+#: readelf.c:18386
#, c-format
msgid "128-bit IEEE long double\n"
msgstr "128-битни „IEEE“ дуги дубл\n"
-#: readelf.c:18426 readelf.c:18457
+#: readelf.c:18408 readelf.c:18439
#, c-format
msgid "unspecified\n"
msgstr "неодређено\n"
-#: readelf.c:18429
+#: readelf.c:18411
#, c-format
msgid "generic\n"
msgstr "опште\n"
-#: readelf.c:18463
+#: readelf.c:18445
#, c-format
msgid "memory\n"
msgstr "меморија\n"
-#: readelf.c:18490
+#: readelf.c:18472
#, c-format
msgid "any\n"
msgstr "било који\n"
-#: readelf.c:18493
+#: readelf.c:18475
#, c-format
msgid "software\n"
msgstr "ÑофтверÑки\n"
-#: readelf.c:18496
+#: readelf.c:18478
#, c-format
msgid "hardware\n"
msgstr "машинÑки\n"
-#: readelf.c:18619
+#: readelf.c:18601
#, c-format
msgid "Hard or soft float\n"
msgstr "МашинÑки или програмÑки зарез\n"
-#: readelf.c:18622
+#: readelf.c:18604
#, c-format
msgid "Hard float (double precision)\n"
msgstr "МашинÑки зарез (дво-тачноÑÑ‚)\n"
-#: readelf.c:18625
+#: readelf.c:18607
#, c-format
msgid "Hard float (single precision)\n"
msgstr "МашинÑки зарез (једно-тачноÑÑ‚)\n"
-#: readelf.c:18628
+#: readelf.c:18610
#, c-format
msgid "Soft float\n"
msgstr "СофтверÑки зарез\n"
-#: readelf.c:18631
+#: readelf.c:18613
#, c-format
msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
msgstr "ХардверÑки покретни зарез („MIPS32r2“ 64-бита „FPU 12 callee-saved“)\n"
-#: readelf.c:18634
+#: readelf.c:18616
#, c-format
msgid "Hard float (32-bit CPU, Any FPU)\n"
msgstr "ХардверÑки покретни зарез (32-битни процеÑор, било који „FPU“)\n"
-#: readelf.c:18637
+#: readelf.c:18619
#, c-format
msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
msgstr "ХардверÑки покретни зарез (32-битни процеÑор, 64-битни „FPU“)\n"
-#: readelf.c:18640
+#: readelf.c:18622
#, c-format
msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
msgstr "ХардверÑко покретном зарезу ÑаглаÑно (32-битни процеÑор, 64-битни „FPU“)\n"
-#: readelf.c:18643
+#: readelf.c:18625
#, c-format
msgid "NaN 2008 compatibility\n"
msgstr "NaN 2008 ÑаглаÑноÑÑ‚\n"
-#: readelf.c:18676
+#: readelf.c:18658
#, c-format
msgid "Any MSA or not\n"
msgstr "Било који МСРили не\n"
-#: readelf.c:18679
+#: readelf.c:18661
#, c-format
msgid "128-bit MSA\n"
msgstr "128-битни МСÐ\n"
-#: readelf.c:18741
+#: readelf.c:18723
#, c-format
msgid "Not used\n"
msgstr "Ðе кориÑти Ñе\n"
-#: readelf.c:18744
+#: readelf.c:18726
#, c-format
msgid "2 bytes\n"
msgstr "2 бајта\n"
-#: readelf.c:18747
+#: readelf.c:18729
#, c-format
msgid "4 bytes\n"
msgstr "4 бајта\n"
-#: readelf.c:18764 readelf.c:18781 readelf.c:18855 readelf.c:18875
+#: readelf.c:18746 readelf.c:18763 readelf.c:18837 readelf.c:18857
#, c-format
msgid "16-byte\n"
msgstr "16-бајта\n"
-#: readelf.c:18795
+#: readelf.c:18777
#, c-format
msgid "DSBT addressing not used\n"
msgstr "ДСБТ адреÑирање није коришћено\n"
-#: readelf.c:18798
+#: readelf.c:18780
#, c-format
msgid "DSBT addressing used\n"
msgstr "ДСБТ адреÑирање је коришћено\n"
-#: readelf.c:18812
+#: readelf.c:18794
#, c-format
msgid "Data addressing position-dependent\n"
msgstr "ÐдреÑирање података завиÑно од положаја\n"
-#: readelf.c:18815
+#: readelf.c:18797
#, c-format
msgid "Data addressing position-independent, GOT near DP\n"
msgstr "ÐдреÑирање података незавиÑно од положаја, ТОП близу ДП\n"
-#: readelf.c:18818
+#: readelf.c:18800
#, c-format
msgid "Data addressing position-independent, GOT far from DP\n"
msgstr "ÐдреÑирање података незавиÑно од положаја, ТОП далеко од ДП\n"
-#: readelf.c:18832
+#: readelf.c:18814
#, c-format
msgid "Code addressing position-dependent\n"
msgstr "ÐдреÑирање кода завиÑно од положаја\n"
-#: readelf.c:18835
+#: readelf.c:18817
#, c-format
msgid "Code addressing position-independent\n"
msgstr "ÐдреÑирање кода незавиÑно од положаја\n"
-#: readelf.c:18989
+#: readelf.c:18971
#, c-format
msgid "MSP430\n"
msgstr "MSP430\n"
-#: readelf.c:18990
+#: readelf.c:18972
#, c-format
msgid "MSP430X\n"
msgstr "MSP430X\n"
-#: readelf.c:19001 readelf.c:19013
+#: readelf.c:18983 readelf.c:18995
#, c-format
msgid "Small\n"
msgstr "Мало\n"
-#: readelf.c:19002 readelf.c:19014
+#: readelf.c:18984 readelf.c:18996
#, c-format
msgid "Large\n"
msgstr "Велико\n"
-#: readelf.c:19015
+#: readelf.c:18997
#, c-format
msgid "Restricted Large\n"
msgstr "Ограничене дужине\n"
-#: readelf.c:19021
+#: readelf.c:19003
#, c-format
msgid " <unknown tag %<PRId64>>: "
msgstr " <непозната ознака %<PRId64>>: "
-#: readelf.c:19067
+#: readelf.c:19049
#, c-format
msgid "Any Region\n"
msgstr "Било која облаÑÑ‚\n"
-#: readelf.c:19070
+#: readelf.c:19052
#, c-format
msgid "Lower Region Only\n"
msgstr "Само нижа облаÑÑ‚\n"
-#: readelf.c:19136
+#: readelf.c:19118
#, c-format
msgid "No unaligned access\n"
msgstr "Ðема непоравнатог приÑтупа\n"
-#: readelf.c:19139
+#: readelf.c:19121
#, c-format
msgid "Unaligned access\n"
msgstr "Ðепоравнат приÑтуп\n"
-#: readelf.c:19145
+#: readelf.c:19127
#, c-format
msgid "%<PRIu64>-bytes\n"
msgstr "%<PRIu64>-бајта\n"
-#: readelf.c:19287
+#: readelf.c:19263
msgid "attributes"
msgstr "оÑобине"
-#: readelf.c:19299
+#: readelf.c:19273
#, c-format
msgid "Unknown attributes version '%c'(%d) - expecting 'A'\n"
msgstr "Ðепознато издање атрибута „%c“(%d) – очекујем „A“\n"
-#: readelf.c:19318
+#: readelf.c:19290
msgid "Tag section ends prematurely\n"
msgstr "Одељак ознаке Ñе завршава прерано\n"
-#: readelf.c:19327
+#: readelf.c:19299
#, c-format
msgid "Bad attribute length (%u > %u)\n"
msgstr "Лоша дужина атрибута (%u > %u)\n"
-#: readelf.c:19335
+#: readelf.c:19307
#, c-format
msgid "Attribute length of %u is too small\n"
msgstr "Дужина атрибута %u је премала\n"
-#: readelf.c:19346
+#: readelf.c:19318
msgid "Corrupt attribute section name\n"
msgstr "Ðазив одељка оштећеног атрибута\n"
-#: readelf.c:19351
+#: readelf.c:19323
#, c-format
msgid "Attribute Section: "
msgstr "Одељак атрибута: "
-#: readelf.c:19378
+#: readelf.c:19350
msgid "Unused bytes at end of section\n"
msgstr "Ðекоришћени бајтови на крају одељка\n"
-#: readelf.c:19388
+#: readelf.c:19360
#, c-format
msgid "Bad subsection length (%u > %u)\n"
msgstr "Лоша дужина пододељка (%u > %u)\n"
-#: readelf.c:19396
+#: readelf.c:19368
#, c-format
msgid "Bad subsection length (%u < 6)\n"
msgstr "Лоша дужина пододељка (%u < 6)\n"
-#: readelf.c:19411
+#: readelf.c:19383
#, c-format
msgid "File Attributes\n"
msgstr "ОÑобине датотеке\n"
-#: readelf.c:19414
+#: readelf.c:19386
#, c-format
msgid "Section Attributes:"
msgstr "ОÑобине одељка:"
-#: readelf.c:19417
+#: readelf.c:19389
#, c-format
msgid "Symbol Attributes:"
msgstr "ОÑобине Ñимбола:"
-#: readelf.c:19430
+#: readelf.c:19402
#, c-format
msgid "Unknown tag: %d\n"
msgstr "Ðепозната ознака: %d\n"
-#: readelf.c:19451
+#: readelf.c:19423
#, c-format
msgid " Unknown attribute:\n"
msgstr " Ðепознат атрибут:\n"
-#: readelf.c:19493
+#: readelf.c:19464
msgid "MIPS GOT entry extends beyond the end of available data\n"
msgstr "„MIPS GOT“ ÑƒÐ½Ð¾Ñ Ð¿Ñ€ÐµÐ²Ð°Ð·Ð¸Ð»Ð°Ð·Ð¸ крај доÑтупних података\n"
-#: readelf.c:19692
+#: readelf.c:19663
msgid "Corrupt MIPS ABI Flags section.\n"
msgstr "Оштећени одељак „MIPS ABI“ заÑтавица.\n"
-#: readelf.c:19698
+#: readelf.c:19669
msgid "MIPS ABI Flags section"
msgstr "Одељак „MIPS ABI“ заÑтавица"
-#: readelf.c:19757 readelf.c:20340
+#: readelf.c:19728 readelf.c:20311
msgid "Global Offset Table data"
msgstr "Подаци табеле општег помераја"
-#: readelf.c:19761
+#: readelf.c:19732
#, c-format
msgid ""
"\n"
@@ -11927,45 +11964,45 @@ msgstr ""
"\n"
"Статичко „GOT“:\n"
-#: readelf.c:19762 readelf.c:20345
+#: readelf.c:19733 readelf.c:20316
#, c-format
msgid " Canonical gp value: "
msgstr " ПропиÑна гп вредноÑÑ‚: "
-#: readelf.c:19776 readelf.c:20349 readelf.c:20484
+#: readelf.c:19747 readelf.c:20320 readelf.c:20455
#, c-format
msgid " Reserved entries:\n"
msgstr " РезервиÑани уноÑи:\n"
-#: readelf.c:19777
+#: readelf.c:19748
#, c-format
msgid " %*s %10s %*s\n"
msgstr " %*s %10s %*s\n"
-#: readelf.c:19778 readelf.c:19808 readelf.c:20351 readelf.c:20379
-#: readelf.c:20397 readelf.c:20486 readelf.c:20495
+#: readelf.c:19749 readelf.c:19779 readelf.c:20322 readelf.c:20350
+#: readelf.c:20368 readelf.c:20457 readelf.c:20466
msgid "Address"
msgstr "ÐдреÑа"
-#: readelf.c:19778 readelf.c:19808 readelf.c:20351 readelf.c:20379
-#: readelf.c:20398
+#: readelf.c:19749 readelf.c:19779 readelf.c:20322 readelf.c:20350
+#: readelf.c:20369
msgid "Access"
msgstr "ПриÑтуп"
-#: readelf.c:19779 readelf.c:19809
+#: readelf.c:19750 readelf.c:19780
msgid "Value"
msgstr "ВредноÑÑ‚"
-#: readelf.c:19806 readelf.c:20377
+#: readelf.c:19777 readelf.c:20348
#, c-format
msgid " Local entries:\n"
msgstr " МеÑни подаци:\n"
-#: readelf.c:19888 readelf.c:20601
+#: readelf.c:19859 readelf.c:20572
msgid "liblist section data"
msgstr "подаци одељка библÑпиÑка"
-#: readelf.c:19891
+#: readelf.c:19862
#, c-format
msgid ""
"\n"
@@ -11983,37 +12020,37 @@ msgstr[2] ""
"\n"
"Одељак „.liblist“ Ñадржи %zu уноÑа:\n"
-#: readelf.c:19895
+#: readelf.c:19866
msgid " Library Time Stamp Checksum Version Flags\n"
msgstr " Библиотека ВременÑка ознака Сума пров. Издање Опције\n"
-#: readelf.c:19921
+#: readelf.c:19892
#, c-format
msgid "<corrupt: %9ld>"
msgstr "<оштећено: %9ld>"
-#: readelf.c:19926
+#: readelf.c:19897
msgid " NONE"
msgstr " ÐИШТÐ"
-#: readelf.c:19976
+#: readelf.c:19947
msgid "No MIPS_OPTIONS header found\n"
msgstr "ÐиÑам нашао „MIPS_OPTIONS“ заглавље\n"
-#: readelf.c:19982
+#: readelf.c:19953
msgid "The MIPS options section is too small.\n"
msgstr "Одељак „MIPS“ опција је премали.\n"
-#: readelf.c:19987
+#: readelf.c:19958
msgid "options"
msgstr "опције"
-#: readelf.c:20006
+#: readelf.c:19977
#, c-format
msgid "Invalid size (%u) for MIPS option\n"
msgstr "ÐеиÑправна величина (%u) за „MIPS“ опцију\n"
-#: readelf.c:20015
+#: readelf.c:19986
#, c-format
msgid ""
"\n"
@@ -12031,28 +12068,28 @@ msgstr[2] ""
"\n"
"Одељак „%s“ Ñадржи %d уноÑа:\n"
-#: readelf.c:20053 readelf.c:20085
+#: readelf.c:20024 readelf.c:20056
msgid "Truncated MIPS REGINFO option\n"
msgstr "Скраћена „MIPS REGINFO“ опција\n"
-#: readelf.c:20221
+#: readelf.c:20192
msgid "conflict list found without a dynamic symbol table\n"
msgstr "пронађен је Ñукобљавајући ÑпиÑак без динамичке табеле Ñимбола\n"
-#: readelf.c:20229
+#: readelf.c:20200
#, c-format
msgid "Overlarge number of conflicts detected: %zx\n"
msgstr "Превелик број Ñукоба је откривен: %zx\n"
-#: readelf.c:20237
+#: readelf.c:20208
msgid "Out of memory allocating space for dynamic conflicts\n"
msgstr "ПонеÑтало је меморије за време додељивања проÑтора за динамичке Ñукобе\n"
-#: readelf.c:20247 readelf.c:20265
+#: readelf.c:20218 readelf.c:20236
msgid "conflict"
msgstr "Ñукоб"
-#: readelf.c:20278
+#: readelf.c:20249
#, c-format
msgid ""
"\n"
@@ -12070,31 +12107,31 @@ msgstr[2] ""
"\n"
"Одељак „.conflict“ Ñадржи %zu уноÑа:\n"
-#: readelf.c:20282
+#: readelf.c:20253
msgid " Num: Index Value Name"
msgstr " Број: Ð˜Ð½Ð´ÐµÐºÑ Ð’Ñ€Ð´Ð½ÑÑ‚ Ðазив"
-#: readelf.c:20289
+#: readelf.c:20260
#, c-format
msgid "<corrupt symbol index>"
msgstr "<оштећен Ð¸Ð½Ð´ÐµÐºÑ Ñимбола>"
-#: readelf.c:20300 readelf.c:20432 readelf.c:20520
+#: readelf.c:20271 readelf.c:20403 readelf.c:20491
#, c-format
msgid "<corrupt: %14ld>"
msgstr "<оштећено: %14ld>"
-#: readelf.c:20323
+#: readelf.c:20294
#, c-format
msgid "The GOT symbol offset (%<PRIu64>) is greater than the symbol table size (%<PRIu64>)\n"
msgstr "Померај GOT Ñимбола (%<PRIu64>) је већи од величине табеле Ñимбола (%<PRIu64>)\n"
-#: readelf.c:20333
+#: readelf.c:20304
#, c-format
msgid "Too many GOT symbols: %<PRIu64>\n"
msgstr "Превише „GOT“ Ñимбола: %<PRIu64>\n"
-#: readelf.c:20344
+#: readelf.c:20315
#, c-format
msgid ""
"\n"
@@ -12103,92 +12140,92 @@ msgstr ""
"\n"
"Главни ТОП:\n"
-#: readelf.c:20350
+#: readelf.c:20321
#, c-format
msgid " %*s %10s %*s Purpose\n"
msgstr " %*s %10s %*s Ñврха\n"
-#: readelf.c:20352 readelf.c:20380 readelf.c:20399 readelf.c:20486
-#: readelf.c:20496
+#: readelf.c:20323 readelf.c:20351 readelf.c:20370 readelf.c:20457
+#: readelf.c:20467
msgid "Initial"
msgstr "Почетно"
-#: readelf.c:20354
+#: readelf.c:20325
#, c-format
msgid " Lazy resolver\n"
msgstr " Лењи решавач\n"
-#: readelf.c:20369
+#: readelf.c:20340
#, c-format
msgid " Module pointer (GNU extension)\n"
msgstr " Показивач модула (Гну проширење)\n"
-#: readelf.c:20395
+#: readelf.c:20366
#, c-format
msgid " Global entries:\n"
msgstr " Општи подаци:\n"
-#: readelf.c:20400 readelf.c:20497
+#: readelf.c:20371 readelf.c:20468
msgid "Sym.Val."
msgstr "Сим.Вред."
#. Note for translators: "Ndx" = abbreviated form of "Index".
-#: readelf.c:20403 readelf.c:20497
+#: readelf.c:20374 readelf.c:20468
msgid "Ndx"
msgstr "Инд"
-#: readelf.c:20403 readelf.c:20497
+#: readelf.c:20374 readelf.c:20468
msgid "Name"
msgstr "Ðазив"
-#: readelf.c:20413
+#: readelf.c:20384
#, c-format
msgid "<no dynamic symbols>"
msgstr "<нема динамичких Ñимбола>"
-#: readelf.c:20435
+#: readelf.c:20406
#, c-format
msgid "<symbol index %zu exceeds number of dynamic symbols>"
msgstr "<Ð¸Ð½Ð´ÐµÐºÑ Ñимбола %zu превазилази број динамичких Ñимбола>"
-#: readelf.c:20476
+#: readelf.c:20447
msgid "Procedure Linkage Table data"
msgstr "Подаци табеле повезивања поÑтупка"
-#: readelf.c:20485
+#: readelf.c:20456
#, c-format
msgid " %*s %*s Purpose\n"
msgstr " %*s %*s Ñврха\n"
-#: readelf.c:20488
+#: readelf.c:20459
#, c-format
msgid " PLT lazy resolver\n"
msgstr " ТПП лењи решавач\n"
-#: readelf.c:20490
+#: readelf.c:20461
#, c-format
msgid " Module pointer\n"
msgstr " Показивач модула\n"
-#: readelf.c:20493
+#: readelf.c:20464
#, c-format
msgid " Entries:\n"
msgstr " УноÑи:\n"
-#: readelf.c:20507
+#: readelf.c:20478
#, c-format
msgid "<corrupt symbol index: %<PRIu64>>"
msgstr "<оштећен Ð¸Ð½Ð´ÐµÐºÑ Ñимбола: %<PRIu64>>"
-#: readelf.c:20546
+#: readelf.c:20517
msgid "NDS32 elf flags section"
msgstr "одељак NDS32 елф опција"
-#: readelf.c:20612
+#: readelf.c:20583
msgid "liblist string table"
msgstr "табела ниÑке библÑпиÑка"
-#: readelf.c:20624
+#: readelf.c:20595
#, c-format
msgid ""
"\n"
@@ -12206,477 +12243,477 @@ msgstr[2] ""
"\n"
"Одељак ÑпиÑка библиотека „%s“ Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:20632
+#: readelf.c:20603
msgid " Library Time Stamp Checksum Version Flags"
msgstr " Библиотека ВременÑка ознака Сума првре Издање Опције"
-#: readelf.c:20682
+#: readelf.c:20653
msgid "NT_AUXV (auxiliary vector)"
msgstr "NT_AUXV (помоћни вектор)"
-#: readelf.c:20684
+#: readelf.c:20655
msgid "NT_PRSTATUS (prstatus structure)"
msgstr "NT_PRSTATUS (Ñтруктура прÑтања)"
-#: readelf.c:20686
+#: readelf.c:20657
msgid "NT_FPREGSET (floating point registers)"
msgstr "NT_FPREGSET (региÑтри покретног зареза)"
-#: readelf.c:20688
+#: readelf.c:20659
msgid "NT_PRPSINFO (prpsinfo structure)"
msgstr "NT_PRPSINFO (Ñтруктура прпÑподатака)"
-#: readelf.c:20690
+#: readelf.c:20661
msgid "NT_TASKSTRUCT (task structure)"
msgstr "NT_TASKSTRUCT (Ñтруктура задатка)"
-#: readelf.c:20692
+#: readelf.c:20663
msgid "NT_GDB_TDESC (GDB XML target description)"
msgstr "NT_GDB_TDESC (Ð¾Ð¿Ð¸Ñ â€žGDB XML“ мете)"
-#: readelf.c:20694
+#: readelf.c:20665
msgid "NT_PRXFPREG (user_xfpregs structure)"
msgstr "NT_PRXFPREG (Ñтруктура кориÑничког_икÑфпрегÑа)"
-#: readelf.c:20696
+#: readelf.c:20667
msgid "NT_PPC_VMX (ppc Altivec registers)"
msgstr "NT_PPC_VMX (ппц Ðлтивек региÑтри)"
-#: readelf.c:20698
+#: readelf.c:20669
msgid "NT_PPC_VSX (ppc VSX registers)"
msgstr "NT_PPC_VSX (ппц Ð’Ð¡Ð˜ÐºÑ Ñ€ÐµÐ³Ð¸Ñтри)"
-#: readelf.c:20700
+#: readelf.c:20671
msgid "NT_PPC_TAR (ppc TAR register)"
msgstr "NT_PPC_TAR (ппц „TAR“ региÑтар)"
-#: readelf.c:20702
+#: readelf.c:20673
msgid "NT_PPC_PPR (ppc PPR register)"
msgstr "NT_PPC_PPR (ппц „PPR“ региÑтар)"
-#: readelf.c:20704
+#: readelf.c:20675
msgid "NT_PPC_DSCR (ppc DSCR register)"
msgstr "NT_PPC_DSCR (ппц „DSCR“ региÑтар)"
-#: readelf.c:20706
+#: readelf.c:20677
msgid "NT_PPC_EBB (ppc EBB registers)"
msgstr "NT_PPC_EBB (ппц „EBB“ региÑтри)"
-#: readelf.c:20708
+#: readelf.c:20679
msgid "NT_PPC_PMU (ppc PMU registers)"
msgstr "NT_PPC_PMU (ппц „PMU“ региÑтри)"
-#: readelf.c:20710
+#: readelf.c:20681
msgid "NT_PPC_TM_CGPR (ppc checkpointed GPR registers)"
msgstr "NT_PPC_TM_CGPR (ппц проверени „GPR“ региÑтри)"
-#: readelf.c:20712
+#: readelf.c:20683
msgid "NT_PPC_TM_CFPR (ppc checkpointed floating point registers)"
msgstr "NT_PPC_TM_CFPR (ппц проверени региÑтри покретне тачке)"
-#: readelf.c:20714
+#: readelf.c:20685
msgid "NT_PPC_TM_CVMX (ppc checkpointed Altivec registers)"
msgstr "NT_PPC_TM_CVMX (ппц проверени „Altivec“ региÑтри)"
-#: readelf.c:20716
+#: readelf.c:20687
msgid "NT_PPC_TM_CVSX (ppc checkpointed VSX registers)"
msgstr "NT_PPC_TM_CVSX (ппц проверени „VSX“ региÑтри)"
-#: readelf.c:20718
+#: readelf.c:20689
msgid "NT_PPC_TM_SPR (ppc TM special purpose registers)"
msgstr "NT_PPC_TM_SPR (ппц „TM“ региÑтри поÑебне намене)"
-#: readelf.c:20720
+#: readelf.c:20691
msgid "NT_PPC_TM_CTAR (ppc checkpointed TAR register)"
msgstr "NT_PPC_TM_CTAR (ппц проверени „TAR“ региÑтар)"
-#: readelf.c:20722
+#: readelf.c:20693
msgid "NT_PPC_TM_CPPR (ppc checkpointed PPR register)"
msgstr "NT_PPC_TM_CPPR (ппц проверени „PPR“ региÑтар)"
-#: readelf.c:20724
+#: readelf.c:20695
msgid "NT_PPC_TM_CDSCR (ppc checkpointed DSCR register)"
msgstr "NT_PPC_TM_CDSCR (ппц проверени „DSCR“ региÑтар)"
-#: readelf.c:20726
+#: readelf.c:20697
msgid "NT_386_TLS (x86 TLS information)"
msgstr "NT_386_TLS (x86 ТЛС подаци)"
-#: readelf.c:20728
+#: readelf.c:20699
msgid "NT_386_IOPERM (x86 I/O permissions)"
msgstr "NT_386_IOPERM (x86 У/И овлашћења)"
-#: readelf.c:20730
+#: readelf.c:20701
msgid "NT_X86_XSTATE (x86 XSAVE extended state)"
msgstr "NT_X86_XSTATE (x86 XSAVE проширено Ñтање)"
-#: readelf.c:20732
+#: readelf.c:20703
msgid "NT_X86_CET (x86 CET state)"
msgstr "NT_X86_CET (x86 CET Ñтање)"
-#: readelf.c:20734
+#: readelf.c:20705
msgid "NT_X86_SHSTK (x86 SHSTK state)"
msgstr "NT_X86_SHSTK (x86 SHSTK Ñтање)"
-#: readelf.c:20736
+#: readelf.c:20707
msgid "NT_S390_HIGH_GPRS (s390 upper register halves)"
msgstr "NT_S390_HIGH_GPRS (s390 горње половине региÑтра)"
-#: readelf.c:20738
+#: readelf.c:20709
msgid "NT_S390_TIMER (s390 timer register)"
msgstr "NT_S390_TIMER (s390 временÑки региÑтар)"
-#: readelf.c:20740
+#: readelf.c:20711
msgid "NT_S390_TODCMP (s390 TOD comparator register)"
msgstr "NT_S390_TODCMP (s390 ТОД региÑтар упоређивача)"
-#: readelf.c:20742
+#: readelf.c:20713
msgid "NT_S390_TODPREG (s390 TOD programmable register)"
msgstr "NT_S390_TODPREG (s390 ТОД програмљив региÑтар)"
-#: readelf.c:20744
+#: readelf.c:20715
msgid "NT_S390_CTRS (s390 control registers)"
msgstr "NT_S390_CTRS (s390 региÑтри управљања)"
-#: readelf.c:20746
+#: readelf.c:20717
msgid "NT_S390_PREFIX (s390 prefix register)"
msgstr "NT_S390_PREFIX (s390 региÑтар префикÑа)"
-#: readelf.c:20748
+#: readelf.c:20719
msgid "NT_S390_LAST_BREAK (s390 last breaking event address)"
msgstr "NT_S390_LAST_BREAK (s390 адреÑа поÑледњег догађаја прекида)"
-#: readelf.c:20750
+#: readelf.c:20721
msgid "NT_S390_SYSTEM_CALL (s390 system call restart data)"
msgstr "NT_S390_SYSTEM_CALL (s390 подаци поновног покретања ÑиÑтемÑког позива)"
-#: readelf.c:20752
+#: readelf.c:20723
msgid "NT_S390_TDB (s390 transaction diagnostic block)"
msgstr "NT_S390_TDB (s390 блок дијагнозе преноÑа)"
-#: readelf.c:20754
+#: readelf.c:20725
msgid "NT_S390_VXRS_LOW (s390 vector registers 0-15 upper half)"
msgstr "NT_S390_VXRS_LOW (региÑтри „s390“ вектора 0-15 горње половине)"
-#: readelf.c:20756
+#: readelf.c:20727
msgid "NT_S390_VXRS_HIGH (s390 vector registers 16-31)"
msgstr "NT_S390_VXRS_HIGH (региÑтри „s390“ вектора 16-31)"
-#: readelf.c:20758
+#: readelf.c:20729
msgid "NT_S390_GS_CB (s390 guarded-storage registers)"
msgstr "NT_S390_GS_CB (региÑтри „s390“ чуваног Ñмештаја)"
-#: readelf.c:20760
+#: readelf.c:20731
msgid "NT_S390_GS_BC (s390 guarded-storage broadcast control)"
msgstr "NT_S390_GS_BC (контрола емитовања „s390“ чуваног Ñмештаја)"
-#: readelf.c:20762
+#: readelf.c:20733
msgid "NT_ARM_VFP (arm VFP registers)"
msgstr "NT_ARM_VFP (арм ВФП региÑтри)"
-#: readelf.c:20764
+#: readelf.c:20735
msgid "NT_ARM_TLS (AArch TLS registers)"
msgstr "NT_ARM_TLS (ÐÐрх ТЛС региÑтри)"
-#: readelf.c:20766
+#: readelf.c:20737
msgid "NT_ARM_HW_BREAK (AArch hardware breakpoint registers)"
msgstr "NT_ARM_HW_BREAK (ÐÐрх региÑтри тачке прекида хардвера)"
-#: readelf.c:20768
+#: readelf.c:20739
msgid "NT_ARM_HW_WATCH (AArch hardware watchpoint registers)"
msgstr "NT_ARM_HW_WATCH (ÐÐрх региÑтри тачке оÑматрања хардвера)"
-#: readelf.c:20770
+#: readelf.c:20741
msgid "NT_ARM_SYSTEM_CALL (AArch system call number)"
msgstr "NT_ARM_SYSTEM_CALL (AArch број ÑиÑтемÑког позива)"
-#: readelf.c:20772
+#: readelf.c:20743
msgid "NT_ARM_SVE (AArch SVE registers)"
msgstr "NT_ARM_SVE (ÐÐрх SVE региÑтри)"
-#: readelf.c:20774
+#: readelf.c:20745
msgid "NT_ARM_PAC_MASK (AArch pointer authentication code masks)"
msgstr "NT_ARM_PAC_MASK (ÐÐрх показивача маÑке кода потврђивања идентитета)"
-#: readelf.c:20776
+#: readelf.c:20747
msgid "NT_ARM_PACA_KEYS (ARM pointer authentication address keys)"
msgstr "NT_ARM_PACA_KEYS (кључеви адреÑе потврђивања идентитета ARM показивача)"
-#: readelf.c:20778
+#: readelf.c:20749
msgid "NT_ARM_PACG_KEYS (ARM pointer authentication generic keys)"
msgstr "NT_ARM_PACG_KEYS (општи кључеви потврђивања идентитета ARM показивача)"
-#: readelf.c:20780
+#: readelf.c:20751
msgid "NT_ARM_TAGGED_ADDR_CTRL (AArch tagged address control)"
msgstr "NT_ARM_TAGGED_ADDR_CTRL (ÐÐрх означена контрола адреÑе)"
-#: readelf.c:20782
+#: readelf.c:20753
msgid "NT_ARM_SSVE (AArch64 streaming SVE registers)"
msgstr "NT_ARM_SSVE (AArch64 Ñтримујући SVE региÑтри)"
-#: readelf.c:20784
+#: readelf.c:20755
msgid "NT_ARM_ZA (AArch64 SME ZA register)"
msgstr "NT_ARM_ZA (AArch64 SME ZA региÑтар)"
-#: readelf.c:20786
+#: readelf.c:20757
msgid "NT_ARM_ZT (AArch64 SME2 ZT registers)"
msgstr "NT_ARM_ZT (AArch64 SME2 ZT региÑтри)"
-#: readelf.c:20788
+#: readelf.c:20759
msgid "NT_ARM_PAC_ENABLED_KEYS (AArch64 pointer authentication enabled keys)"
msgstr "NT_ARM_PAC_ENABLED_KEYS (укључени кључеви потврђивања идентитета AArch64 показивача)"
-#: readelf.c:20790
+#: readelf.c:20761
msgid "NT_ARC_V2 (ARC HS accumulator/extra registers)"
msgstr "NT_ARC_V2 („ARC HS“ акумулатор/додатни региÑтри)"
-#: readelf.c:20792
+#: readelf.c:20763
msgid "NT_RISCV_CSR (RISC-V control and status registers)"
msgstr "NT_RISCV_CSR (региÑтри „RISC-V“ контроле и Ñтања)"
-#: readelf.c:20794
+#: readelf.c:20765
msgid "NT_PSTATUS (pstatus structure)"
msgstr "NT_PSTATUS (Ñтруктура пÑÑтања)"
-#: readelf.c:20796
+#: readelf.c:20767
msgid "NT_FPREGS (floating point registers)"
msgstr "NT_FPREGS (региÑтри покретног зареза)"
-#: readelf.c:20798
+#: readelf.c:20769
msgid "NT_PSINFO (psinfo structure)"
msgstr "NT_PSINFO (Ñтруктура пÑподатака)"
-#: readelf.c:20800
+#: readelf.c:20771
msgid "NT_LWPSTATUS (lwpstatus_t structure)"
msgstr "NT_LWPSTATUS (Ñтруктура лвпÑÑтања_Ñ‚)"
-#: readelf.c:20802
+#: readelf.c:20773
msgid "NT_LWPSINFO (lwpsinfo_t structure)"
msgstr "NT_LWPSINFO (Ñтруктура лвпÑподатака_Ñ‚)"
-#: readelf.c:20804
+#: readelf.c:20775
msgid "NT_WIN32PSTATUS (win32_pstatus structure)"
msgstr "NT_WIN32PSTATUS (Ñтруктура win32_пÑÑтања)"
-#: readelf.c:20806
+#: readelf.c:20777
msgid "NT_SIGINFO (siginfo_t data)"
msgstr "NT_SIGINFO (Ñигинфо_Ñ‚ подаци)"
-#: readelf.c:20808
+#: readelf.c:20779
msgid "NT_FILE (mapped files)"
msgstr "NT_FILE (мапиране датотеке)"
-#: readelf.c:20816
+#: readelf.c:20787
msgid "NT_VERSION (version)"
msgstr "NT_VERSION (издање)"
-#: readelf.c:20818
+#: readelf.c:20789
msgid "NT_ARCH (architecture)"
msgstr "NT_ARCH (архитектура)"
-#: readelf.c:20820
+#: readelf.c:20791
msgid "OPEN"
msgstr "OPEN"
-#: readelf.c:20822
+#: readelf.c:20793
msgid "func"
msgstr "функција"
-#: readelf.c:20824
+#: readelf.c:20795
msgid "GO BUILDID"
msgstr "GO BUILDID"
-#: readelf.c:20826
+#: readelf.c:20797
msgid "FDO_PACKAGING_METADATA"
msgstr "FDO_МЕТÐПОДÐЦИ_ПÐКОВÐЊÐ"
-#: readelf.c:20828
+#: readelf.c:20799
msgid "FDO_DLOPEN_METADATA"
msgstr "FDO_DLOPEN_МЕТÐПОДÐЦИ"
-#: readelf.c:20833 readelf.c:20943 readelf.c:21132 readelf.c:21710
-#: readelf.c:21880 readelf.c:22009 readelf.c:22142
+#: readelf.c:20804 readelf.c:20914 readelf.c:21103 readelf.c:21720
+#: readelf.c:21890 readelf.c:22019 readelf.c:22152
#, c-format
msgid "Unknown note type: (0x%08x)"
msgstr "Ðепозната врÑта напомене: (0x%08x)"
-#: readelf.c:20853
+#: readelf.c:20824
msgid " Malformed note - too short for header\n"
msgstr " Лоша напомена – прекратка за заглавље\n"
-#: readelf.c:20862
+#: readelf.c:20833
msgid " Malformed note - does not end with \\0\n"
msgstr " Лоша напомена – не завршава Ñе на \\0\n"
-#: readelf.c:20875
+#: readelf.c:20846
msgid " Malformed note - too short for supplied file count\n"
msgstr " Лоша напомена – прекратка за доÑтављени број датотека\n"
-#: readelf.c:20879
+#: readelf.c:20850
#, c-format
msgid " Page size: "
msgstr " Величина Ñтранице: "
-#: readelf.c:20883
+#: readelf.c:20854
#, c-format
msgid " %*s%*s%*s\n"
msgstr " %*s%*s%*s\n"
-#: readelf.c:20884
+#: readelf.c:20855
msgid "Start"
msgstr "Почетак"
-#: readelf.c:20885
+#: readelf.c:20856
msgid "End"
msgstr "Крај"
-#: readelf.c:20886
+#: readelf.c:20857
msgid "Page Offset"
msgstr "Померај Ñтранице"
-#: readelf.c:20894
+#: readelf.c:20865
msgid " Malformed note - filenames end too early\n"
msgstr " Лоша напомена – називи датотека Ñе прерано завршавају\n"
-#: readelf.c:20926
+#: readelf.c:20897
msgid "NT_GNU_ABI_TAG (ABI version tag)"
msgstr "NT_GNU_ABI_TAG (ознака ÐБИ издања)"
-#: readelf.c:20928
+#: readelf.c:20899
msgid "NT_GNU_HWCAP (DSO-supplied software HWCAP info)"
msgstr "NT_GNU_HWCAP (ÑофтверÑки „HWCAP“ подаци које доÑтавља ДСО)"
-#: readelf.c:20930
+#: readelf.c:20901
msgid "NT_GNU_BUILD_ID (unique build ID bitstring)"
msgstr "NT_GNU_BUILD_ID (јединÑтвена битниÑка ИБ-а изградње)"
-#: readelf.c:20932
+#: readelf.c:20903
msgid "NT_GNU_GOLD_VERSION (gold version)"
msgstr "NT_GNU_GOLD_VERSION (златно издање)"
-#: readelf.c:20934
+#: readelf.c:20905
msgid "NT_GNU_PROPERTY_TYPE_0"
msgstr "NT_GNU_PROPERTY_TYPE_0"
-#: readelf.c:20936
+#: readelf.c:20907
msgid "NT_GNU_BUILD_ATTRIBUTE_OPEN"
msgstr "NT_GNU_BUILD_ATTRIBUTE_OPEN"
-#: readelf.c:20938
+#: readelf.c:20909
msgid "NT_GNU_BUILD_ATTRIBUTE_FUNC"
msgstr "NT_GNU_BUILD_ATTRIBUTE_FUNC"
-#: readelf.c:21027 readelf.c:21174 readelf.c:21211
+#: readelf.c:20998 readelf.c:21145 readelf.c:21182
#, c-format
msgid "<None>"
msgstr "<Ðишта>"
-#: readelf.c:21128
+#: readelf.c:21099
msgid "NT_AMDGPU_METADATA (code object metadata)"
msgstr "NT_AMDGPU_МЕТÐПОДÐЦИ (метаподаци објектног кода)"
-#: readelf.c:21327
+#: readelf.c:21325
#, c-format
msgid " Properties: "
msgstr " СвојÑтва: "
-#: readelf.c:21331
+#: readelf.c:21329
#, c-format
msgid "<corrupt GNU_PROPERTY_TYPE, size = %#lx>\n"
msgstr "<оштећено „GNU_PROPERTY_TYPE“, величина = %#lx>\n"
-#: readelf.c:21343
+#: readelf.c:21341
#, c-format
msgid "<corrupt descsz: %#lx>\n"
msgstr "<оштећена вел_опиÑа: %#lx>\n"
-#: readelf.c:21354
+#: readelf.c:21352
#, c-format
msgid "<corrupt type (%#x) datasz: %#x>\n"
msgstr "<оштећена врÑта (%#x) вел_података: %#x>\n"
-#: readelf.c:21376 readelf.c:21430 readelf.c:21452
+#: readelf.c:21374 readelf.c:21428 readelf.c:21450
#, c-format
msgid "x86 ISA used: <corrupt length: %#x> "
msgstr "„x86 ISA“ је коришћено: <оштећена дужина: %#x> "
-#: readelf.c:21387 readelf.c:21441 readelf.c:21463
+#: readelf.c:21385 readelf.c:21439 readelf.c:21461
#, c-format
msgid "x86 ISA needed: <corrupt length: %#x> "
msgstr "„x86 ISA“ је потребно: <оштећена дужина: %#x> "
-#: readelf.c:21398
+#: readelf.c:21396
#, c-format
msgid "x86 feature: <corrupt length: %#x> "
msgstr "„x86“ функција: <оштећена дужина: %#x> "
-#: readelf.c:21409
+#: readelf.c:21407
#, c-format
msgid "x86 feature used: <corrupt length: %#x> "
msgstr "„x86“ функција је коришћена: <оштећена дужина: %#x> "
-#: readelf.c:21420
+#: readelf.c:21418
#, c-format
msgid "x86 feature needed: <corrupt length: %#x> "
msgstr "„x86“ функција је потребна: <оштећена дужина: %#x> "
-#: readelf.c:21482 readelf.c:21496 readelf.c:21504 readelf.c:21510
-#: readelf.c:21541
+#: readelf.c:21480 readelf.c:21492 readelf.c:21506 readelf.c:21514
+#: readelf.c:21520 readelf.c:21551
#, c-format
msgid "<corrupt length: %#x> "
msgstr "<оштећена дужина: %#x> "
-#: readelf.c:21494
+#: readelf.c:21504
#, c-format
msgid "stack size: "
msgstr "величина Ñпремника: "
-#: readelf.c:21523
+#: readelf.c:21533
#, c-format
msgid "1_needed: <corrupt length: %#x> "
msgstr "„1“ је потребно: <оштећена дужина: %#x> "
-#: readelf.c:21537
+#: readelf.c:21547
#, c-format
msgid "UINT32_AND (%#x): "
msgstr "UINT32_AND (%#x): "
-#: readelf.c:21539
+#: readelf.c:21549
#, c-format
msgid "UINT32_OR (%#x): "
msgstr "UINT32_OR (%#x): "
-#: readelf.c:21551
+#: readelf.c:21561
#, c-format
msgid "<unknown type %#x data: "
msgstr "<непозната врÑта %#x података: "
-#: readelf.c:21553
+#: readelf.c:21563
#, c-format
msgid "<processor-specific type %#x data: "
msgstr "<процеÑору Ñпецифичне врÑте %#x подаци: "
-#: readelf.c:21555
+#: readelf.c:21565
#, c-format
msgid "<application-specific type %#x data: "
msgstr "<програму Ñпецифичне врÑте %#x подаци: "
-#: readelf.c:21584
+#: readelf.c:21594
#, c-format
msgid " Build ID: "
msgstr " ИБ изградње: "
-#: readelf.c:21599
+#: readelf.c:21609
#, c-format
msgid " <corrupt GNU_ABI_TAG>\n"
msgstr " <оштећено „GNU_ABI_TAG“>\n"
-#: readelf.c:21636
+#: readelf.c:21646
#, c-format
msgid " OS: %s, ABI: %d.%d.%d\n"
msgstr " ОС: %s, ABI: %d.%d.%d\n"
-#: readelf.c:21645
+#: readelf.c:21655
#, c-format
msgid " Version: "
msgstr " Издање: "
@@ -12686,370 +12723,370 @@ msgstr " Издање: "
#. is a series of entries, where each entry is a single byte followed
#. by a nul terminated string. The byte gives the bit number to test
#. if enabled in the bitmask.
-#: readelf.c:21661
+#: readelf.c:21671
#, c-format
msgid " Hardware Capabilities: "
msgstr " ХардверÑке могућноÑти: "
-#: readelf.c:21664
+#: readelf.c:21674
msgid "<corrupt GNU_HWCAP>\n"
msgstr "<оштећено „GNU_HWCAP“>\n"
-#: readelf.c:21669
+#: readelf.c:21679
#, c-format
msgid "num entries: %d, enabled mask: %x\n"
msgstr "број уноÑа: %d, укључена маÑка: %x\n"
-#: readelf.c:21685
+#: readelf.c:21695
#, c-format
msgid " Description data: "
msgstr " Подаци опиÑа: "
-#: readelf.c:21703
+#: readelf.c:21713
msgid "Alignment of 8-byte objects"
msgstr "Поравнање 8-бајтних објеката"
-#: readelf.c:21704
+#: readelf.c:21714
msgid "Sizeof double and long double"
msgstr "Величина дубла или дугог дубла"
-#: readelf.c:21705
+#: readelf.c:21715
msgid "Type of FPU support needed"
msgstr "Ð’Ñ€Ñта „FPU“ подршке је потребна"
-#: readelf.c:21706
+#: readelf.c:21716
msgid "Use of SIMD instructions"
msgstr "Употреба „SIMD“ инÑтрукција"
-#: readelf.c:21707
+#: readelf.c:21717
msgid "Use of cache"
msgstr "Употреба оÑтаве"
-#: readelf.c:21708
+#: readelf.c:21718
msgid "Use of MMU"
msgstr "Употреба „MMU“"
-#: readelf.c:21744
+#: readelf.c:21754
#, c-format
msgid "4-bytes\n"
msgstr "4-бајта\n"
-#: readelf.c:21745
+#: readelf.c:21755
#, c-format
msgid "8-bytes\n"
msgstr "8-бајта\n"
-#: readelf.c:21752
+#: readelf.c:21762
#, c-format
msgid "FPU-2.0\n"
msgstr "FPU-2.0\n"
-#: readelf.c:21753
+#: readelf.c:21763
#, c-format
msgid "FPU-3.0\n"
msgstr "FPU-3.0\n"
-#: readelf.c:21762
+#: readelf.c:21772
#, c-format
msgid "yes\n"
msgstr "да\n"
-#: readelf.c:21772
+#: readelf.c:21782
#, c-format
msgid "unknown value: %x\n"
msgstr "непозната вредноÑÑ‚: %x\n"
-#: readelf.c:21828
+#: readelf.c:21838
msgid "NT_THRMISC (thrmisc structure)"
msgstr "NT_THRMISC („thrmisc“ Ñтруктура)"
-#: readelf.c:21830
+#: readelf.c:21840
msgid "NT_PROCSTAT_PROC (proc data)"
msgstr "NT_PROCSTAT_PROC (подаци процеÑора)"
-#: readelf.c:21832
+#: readelf.c:21842
msgid "NT_PROCSTAT_FILES (files data)"
msgstr "NT_PROCSTAT_FILES (подаци датотека)"
-#: readelf.c:21834
+#: readelf.c:21844
msgid "NT_PROCSTAT_VMMAP (vmmap data)"
msgstr "NT_PROCSTAT_VMMAP („vmmap“ подаци)"
-#: readelf.c:21836
+#: readelf.c:21846
msgid "NT_PROCSTAT_GROUPS (groups data)"
msgstr "NT_PROCSTAT_GROUPS (подаци група)"
-#: readelf.c:21838
+#: readelf.c:21848
msgid "NT_PROCSTAT_UMASK (umask data)"
msgstr "NT_PROCSTAT_UMASK („umask“ подаци)"
-#: readelf.c:21840
+#: readelf.c:21850
msgid "NT_PROCSTAT_RLIMIT (rlimit data)"
msgstr "NT_PROCSTAT_RLIMIT („rlimit“ подаци)"
-#: readelf.c:21842
+#: readelf.c:21852
msgid "NT_PROCSTAT_OSREL (osreldate data)"
msgstr "NT_PROCSTAT_OSREL („osreldate“ подаци)"
-#: readelf.c:21844
+#: readelf.c:21854
msgid "NT_PROCSTAT_PSSTRINGS (ps_strings data)"
msgstr "NT_PROCSTAT_PSSTRINGS („ps_strings“ подаци)"
-#: readelf.c:21846
+#: readelf.c:21856
msgid "NT_PROCSTAT_AUXV (auxv data)"
msgstr "NT_PROCSTAT_AUXV („auxv“ подаци)"
-#: readelf.c:21848
+#: readelf.c:21858
msgid "NT_PTLWPINFO (ptrace_lwpinfo structure)"
msgstr "NT_PTLWPINFO („ptrace_lwpinfo“ Ñтруктура)"
-#: readelf.c:21850
+#: readelf.c:21860
msgid "NT_X86_SEGBASES (x86 segment base registers)"
msgstr "NT_X86_SEGBASES (x86 региÑтри оÑнове подеока)"
#. NetBSD core "procinfo" structure.
-#: readelf.c:21864
+#: readelf.c:21874
msgid "NetBSD procinfo structure"
msgstr "ÐетБСД прокинфо Ñтруктура"
-#: readelf.c:21867
+#: readelf.c:21877
msgid "NetBSD ELF auxiliary vector data"
msgstr "„NetBSD ELF“ подаци помоћног вектора"
-#: readelf.c:21870
+#: readelf.c:21880
msgid "PT_LWPSTATUS (ptrace_lwpstatus structure)"
msgstr "PT_LWPSTATUS (Ñтруктура „ptrace_lwpstatus“)"
-#: readelf.c:21899 readelf.c:21916 readelf.c:21930
+#: readelf.c:21909 readelf.c:21926 readelf.c:21940
msgid "PT_GETREGS (reg structure)"
msgstr "PT_GETREGS (рег Ñтруктура)"
-#: readelf.c:21901 readelf.c:21918 readelf.c:21932
+#: readelf.c:21911 readelf.c:21928 readelf.c:21942
msgid "PT_GETFPREGS (fpreg structure)"
msgstr "PT_GETFPPREGS (фпрег Ñтруктура)"
-#: readelf.c:21914
+#: readelf.c:21924
msgid "PT___GETREGS40 (old reg structure)"
msgstr "PT___GETREGS40 (Ñтара „reg“ Ñтруктура)"
-#: readelf.c:21949
+#: readelf.c:21959
msgid "OpenBSD procinfo structure"
msgstr "Структура података процеÑора OpenBSD-а"
-#: readelf.c:21951
+#: readelf.c:21961
msgid "OpenBSD ELF auxiliary vector data"
msgstr "„OpenBSD ELF“ подаци помоћног вектора"
-#: readelf.c:21953
+#: readelf.c:21963
msgid "OpenBSD regular registers"
msgstr "„OpenBSD“ уобичајени региÑтри"
-#: readelf.c:21955
+#: readelf.c:21965
msgid "OpenBSD floating point registers"
msgstr "„OpenBSD“ региÑтри покретног зареза"
-#: readelf.c:21957
+#: readelf.c:21967
msgid "OpenBSD window cookie"
msgstr "„OpenBSD“ колачићи прозора"
-#: readelf.c:21969
+#: readelf.c:21979
msgid "QNX debug fullpath"
msgstr "QNX пуна путања прочишћавања"
-#: readelf.c:21971
+#: readelf.c:21981
msgid "QNX debug relocation"
msgstr "QNX премештај прочишћавања"
-#: readelf.c:21973
+#: readelf.c:21983
msgid "QNX stack"
msgstr "QNX Ñпремник"
-#: readelf.c:21975
+#: readelf.c:21985
msgid "QNX generator"
msgstr "QNX творац"
-#: readelf.c:21977
+#: readelf.c:21987
msgid "QNX default library"
msgstr "QNX оÑновна библиотека"
-#: readelf.c:21979
+#: readelf.c:21989
msgid "QNX core sysinfo"
msgstr "QNX кључни ÑиÑтемÑки подаци"
-#: readelf.c:21981
+#: readelf.c:21991
msgid "QNX core info"
msgstr "QNX кључни подаци"
-#: readelf.c:21983
+#: readelf.c:21993
msgid "QNX core status"
msgstr "QNX кључно Ñтање"
-#: readelf.c:21985
+#: readelf.c:21995
msgid "QNX general registers"
msgstr "QNX општи региÑтри"
-#: readelf.c:21987
+#: readelf.c:21997
msgid "QNX floating point registers"
msgstr "QNX региÑтри покретног зареза"
-#: readelf.c:21989
+#: readelf.c:21999
msgid "QNX link map"
msgstr "QNX мапа везе"
-#: readelf.c:22003
+#: readelf.c:22013
msgid "NT_STAPSDT (SystemTap probe descriptors)"
msgstr "NT_STAPSDT (опиÑници СиÑтемТап иÑпитивања)"
-#: readelf.c:22071
+#: readelf.c:22081
#, c-format
msgid " Provider: %s\n"
msgstr " ДоÑтављач: %s\n"
-#: readelf.c:22072
+#: readelf.c:22082
#, c-format
msgid " Name: %s\n"
msgstr " Ðазив: %s\n"
-#: readelf.c:22073
+#: readelf.c:22083
#, c-format
msgid " Location: "
msgstr " МеÑто: "
-#: readelf.c:22075
+#: readelf.c:22085
#, c-format
msgid ", Base: "
msgstr ", ОÑнова: "
-#: readelf.c:22077
+#: readelf.c:22087
#, c-format
msgid ", Semaphore: "
msgstr ", Семафор: "
-#: readelf.c:22080
+#: readelf.c:22090
#, c-format
msgid " Arguments: %s\n"
msgstr " Ðргументи: %s\n"
-#: readelf.c:22085
+#: readelf.c:22095
#, c-format
msgid " <corrupt - note is too small>\n"
msgstr " <оштећено – напомена је премала>\n"
-#: readelf.c:22086
+#: readelf.c:22096
msgid "corrupt stapdt note - the data size is too small\n"
msgstr "оштећена „stapdt“ напомена – величина података је премала\n"
-#: readelf.c:22095
+#: readelf.c:22105
#, c-format
msgid " Packaging Metadata: %.*s\n"
msgstr " Метаподаци паковања: %.*s\n"
-#: readelf.c:22100
+#: readelf.c:22110
#, c-format
msgid " Dlopen Metadata: %.*s\n"
msgstr " Метаподаци dl-отвори: %.*s\n"
-#: readelf.c:22114
+#: readelf.c:22124
msgid "NT_VMS_MHD (module header)"
msgstr "NT_VMS_MHD (заглавље модула)"
-#: readelf.c:22116
+#: readelf.c:22126
msgid "NT_VMS_LNM (language name)"
msgstr "NT_VMS_LNM (назив језика)"
-#: readelf.c:22118
+#: readelf.c:22128
msgid "NT_VMS_SRC (source files)"
msgstr "NT_VMS_SRC (изворне датотеке)"
-#: readelf.c:22122
+#: readelf.c:22132
msgid "NT_VMS_EIDC (consistency check)"
msgstr "NT_VMS_EIDC (провера доÑледноÑти)"
-#: readelf.c:22124
+#: readelf.c:22134
msgid "NT_VMS_FPMODE (FP mode)"
msgstr "NT_VMS_FPMODE (ФП режим)"
-#: readelf.c:22128
+#: readelf.c:22138
msgid "NT_VMS_IMGNAM (image name)"
msgstr "NT_VMS_IMGNAM (назив Ñлике)"
-#: readelf.c:22130
+#: readelf.c:22140
msgid "NT_VMS_IMGID (image id)"
msgstr "NT_VMS_IMGID (иб Ñлике)"
-#: readelf.c:22132
+#: readelf.c:22142
msgid "NT_VMS_LINKID (link id)"
msgstr "NT_VMS_LINKID (иб везе)"
-#: readelf.c:22134
+#: readelf.c:22144
msgid "NT_VMS_IMGBID (build id)"
msgstr "NT_VMS_IMGBID (иб изградње)"
-#: readelf.c:22136
+#: readelf.c:22146
msgid "NT_VMS_GSTNAM (sym table name)"
msgstr "NT_VMS_GSTNAM (назив табеле Ñимбола)"
-#: readelf.c:22163
+#: readelf.c:22173
#, c-format
msgid " Creation date : %.17s\n"
msgstr " Датум Ñтварања : %.17s\n"
-#: readelf.c:22164
+#: readelf.c:22174
#, c-format
msgid " Last patch date: %.17s\n"
msgstr " Датум поÑледње закрпе: %.17s\n"
-#: readelf.c:22167
+#: readelf.c:22177
#, c-format
msgid " Module name : %s\n"
msgstr " Ðазив модула : %s\n"
-#: readelf.c:22169
+#: readelf.c:22179
#, c-format
msgid " Module version : %s\n"
msgstr " Издање модула : %s\n"
-#: readelf.c:22171 readelf.c:22176
+#: readelf.c:22181 readelf.c:22186
#, c-format
msgid " Module version : <missing>\n"
msgstr " Издање модула : <недоÑтаје>\n"
-#: readelf.c:22175
+#: readelf.c:22185
#, c-format
msgid " Module name : <missing>\n"
msgstr " Ðазив модула : <недоÑтаје>\n"
-#: readelf.c:22181
+#: readelf.c:22191
#, c-format
msgid " Language: %.*s\n"
msgstr " Језик: %.*s\n"
-#: readelf.c:22185
+#: readelf.c:22195
#, c-format
msgid " Floating Point mode: "
msgstr " Режим покретног зареза: "
-#: readelf.c:22195
+#: readelf.c:22205
#, c-format
msgid " Link time: "
msgstr " Време везе: "
-#: readelf.c:22205
+#: readelf.c:22215
#, c-format
msgid " Patch time: "
msgstr " Време закрпе: "
-#: readelf.c:22218
+#: readelf.c:22228
#, c-format
msgid " Major id: %u, minor id: %u\n"
msgstr " Главни иб: %u, Ñпоредни иб: %u\n"
-#: readelf.c:22221
+#: readelf.c:22231
#, c-format
msgid " Last modified : "
msgstr " ПоÑледња измена : "
-#: readelf.c:22223
+#: readelf.c:22233
#, c-format
msgid ""
"\n"
@@ -13058,221 +13095,221 @@ msgstr ""
"\n"
" Опције везе : "
-#: readelf.c:22226
+#: readelf.c:22236
#, c-format
msgid " Header flags: 0x%08x\n"
msgstr " Опције заглавља: 0x%08x\n"
-#: readelf.c:22228
+#: readelf.c:22238
#, c-format
msgid " Image id : %.*s\n"
msgstr " ИБ Ñлике : %.*s\n"
-#: readelf.c:22232
+#: readelf.c:22242
#, c-format
msgid " Image name: %.*s\n"
msgstr " Ðазив Ñлике: %.*s\n"
-#: readelf.c:22236
+#: readelf.c:22246
#, c-format
msgid " Global symbol table name: %.*s\n"
msgstr " Ðазив опште табеле Ñимбола: %.*s\n"
-#: readelf.c:22240
+#: readelf.c:22250
#, c-format
msgid " Image id: %.*s\n"
msgstr " ИБ Ñлике: %.*s\n"
-#: readelf.c:22244
+#: readelf.c:22254
#, c-format
msgid " Linker id: %.*s\n"
msgstr " Иб Ñвезивача: %.*s\n"
-#: readelf.c:22254 readelf.c:22947
+#: readelf.c:22264 readelf.c:22957
#, c-format
msgid " <corrupt - data size is too small>\n"
msgstr " <оштећено – величина података је премала>\n"
-#: readelf.c:22255
+#: readelf.c:22265
msgid "corrupt IA64 note: data size is too small\n"
msgstr "оштећена „IA64“ напомена – величина података је премала\n"
-#: readelf.c:22422 readelf.c:22431
+#: readelf.c:22432 readelf.c:22441
#, c-format
msgid " Applies to region from %#<PRIx64> to %#<PRIx64>\n"
msgstr " Примењује Ñе на облаÑÑ‚ од %#<PRIx64> до %#<PRIx64>\n"
-#: readelf.c:22425 readelf.c:22434
+#: readelf.c:22435 readelf.c:22444
#, c-format
msgid " Applies to region from %#<PRIx64>\n"
msgstr " Примењује Ñе на облаÑÑ‚ од %#<PRIx64>\n"
-#: readelf.c:22455
+#: readelf.c:22465
#, c-format
msgid " <invalid description size: %lx>\n"
msgstr " <неиÑправна величина опиÑа: %lx>\n"
-#: readelf.c:22456
+#: readelf.c:22466
#, c-format
msgid " <invalid descsz>"
msgstr " <неиÑправна вел_опиÑа>"
-#: readelf.c:22482
+#: readelf.c:22492
#, c-format
msgid "Gap in build notes detected from %#<PRIx64> to %#<PRIx64>\n"
msgstr "Јаз у напоменама изградње је откривен од %#<PRIx64> до %#<PRIx64>\n"
-#: readelf.c:22486 readelf.c:22497
+#: readelf.c:22496 readelf.c:22507
#, c-format
msgid " Applies to region from %#<PRIx64>"
msgstr " Примењује Ñе на облаÑÑ‚ од %#<PRIx64>"
-#: readelf.c:22491 readelf.c:22502
+#: readelf.c:22501 readelf.c:22512
#, c-format
msgid " to %#<PRIx64>"
msgstr " до %#<PRIx64>"
-#: readelf.c:22508
+#: readelf.c:22518
#, c-format
msgid " (%s)"
msgstr " (%s)"
-#: readelf.c:22529 readelf.c:22544
+#: readelf.c:22539 readelf.c:22554
#, c-format
msgid "corrupt name field in GNU build attribute note: size = %ld\n"
msgstr "оштећено поље назива у напомени атрибута Гну изградње: величина = %ld\n"
-#: readelf.c:22530 readelf.c:22545
+#: readelf.c:22540 readelf.c:22555
msgid " <corrupt name>"
msgstr " <оштећен назив>"
-#: readelf.c:22564
+#: readelf.c:22574
#, c-format
msgid "unrecognised attribute type in name field: %d\n"
msgstr "непозната врÑта атрибута у пољу назива: %d\n"
-#: readelf.c:22565
+#: readelf.c:22575
msgid "<unknown name type>"
msgstr "<непозната врÑта назива>"
-#: readelf.c:22575
+#: readelf.c:22585
msgid "<version>"
msgstr "<издање>"
-#: readelf.c:22580
+#: readelf.c:22590
msgid "<stack prot>"
msgstr "<прот Ñпремника>"
-#: readelf.c:22585
+#: readelf.c:22595
msgid "<relro>"
msgstr "<relro>"
-#: readelf.c:22590
+#: readelf.c:22600
msgid "<stack size>"
msgstr "<величина Ñпремника>"
-#: readelf.c:22595
+#: readelf.c:22605
msgid "<tool>"
msgstr "<алат>"
-#: readelf.c:22600
+#: readelf.c:22610
msgid "<ABI>"
msgstr "<ABI>"
-#: readelf.c:22605
+#: readelf.c:22615
msgid "<PIC>"
msgstr "<PIC>"
-#: readelf.c:22610
+#: readelf.c:22620
msgid "<short enum>"
msgstr "<кратко набрајање>"
-#: readelf.c:22629
+#: readelf.c:22639
#, c-format
msgid "unrecognised byte in name field: %d\n"
msgstr "непознат бајт у пољу назива: %d\n"
-#: readelf.c:22630
+#: readelf.c:22640
#, c-format
msgid "<unknown:_%d>"
msgstr "<непознато:_%d>"
-#: readelf.c:22642
+#: readelf.c:22652
#, c-format
msgid "attribute does not have an expected type (%c)\n"
msgstr "атрибут нема очекивану врÑту (%c)\n"
-#: readelf.c:22646
+#: readelf.c:22656
#, c-format
msgid "corrupt name field: namesz: %lu but parsing gets to %td\n"
msgstr "оштећено поље назива: вел_назива: %lu али обрадом добија %td\n"
-#: readelf.c:22673
+#: readelf.c:22683
#, c-format
msgid "corrupt numeric name field: too many bytes in the value: %x\n"
msgstr "оштећено бројевно поље назива: превише бајтова у вредноÑти: %x\n"
-#: readelf.c:22762
+#: readelf.c:22772
#, c-format
msgid " description data: "
msgstr " подаци опиÑа: "
-#: readelf.c:22910
+#: readelf.c:22920
msgid "failed to unpack msgpack contents in NT_AMDGPU_METADATA note"
msgstr "ниÑам уÑпео да раÑпакујем Ñадржај пакета поруке у напомени NT_AMDGPU_METADATA"
-#: readelf.c:22933
+#: readelf.c:22943
#, c-format
msgid " Stack Size: 0x%<PRIx32>\n"
msgstr " Величина Ñпремника: 0x%<PRIx32>\n"
-#: readelf.c:22935
+#: readelf.c:22945
#, c-format
msgid " Stack allocated: %<PRIx32>\n"
msgstr " ДоÑељен Ñпремник: %<PRIx32>\n"
-#: readelf.c:22937
+#: readelf.c:22947
#, c-format
msgid " Executable: %s\n"
msgstr " Извршна: %s\n"
-#: readelf.c:22948
+#: readelf.c:22958
msgid "corrupt QNX note: data size is too small\n"
msgstr "оштећена „QNX“ напомена: величина података је премала\n"
-#: readelf.c:23093
+#: readelf.c:23103
msgid "notes"
msgstr "напомене"
-#: readelf.c:23105
+#: readelf.c:23115
#, c-format
msgid "Displaying notes found in: %s\n"
msgstr "Приказујем напомене нађене у: %s\n"
-#: readelf.c:23107
+#: readelf.c:23117
#, c-format
msgid "Displaying notes found at file offset 0x%08<PRIx64> with length 0x%08<PRIx64>:\n"
msgstr "Приказујем напомене нађене на померају датотеке 0x%08<PRIx64> Ñа дужином 0x%08<PRIx64>:\n"
-#: readelf.c:23120
+#: readelf.c:23130
#, c-format
msgid "Corrupt note: alignment %<PRId64>, expecting 4 or 8\n"
msgstr "Оштећена напомена: поравнање %<PRId64>, очекујем 4 или 8\n"
-#: readelf.c:23126
+#: readelf.c:23136
#, c-format
msgid " %-20s %-10s\tDescription\n"
msgstr " %-20s %-10s\tОпиÑ\n"
-#: readelf.c:23126
+#: readelf.c:23136
msgid "Owner"
msgstr "ВлаÑник"
-#: readelf.c:23126
+#: readelf.c:23136
msgid "Data size"
msgstr "Величина података"
-#: readelf.c:23144 readelf.c:23173
+#: readelf.c:23154 readelf.c:23183
#, c-format
msgid "Corrupt note: only %zd byte remains, not enough for a full note\n"
msgid_plural "Corrupt note: only %zd bytes remain, not enough for a full note\n"
@@ -13280,25 +13317,25 @@ msgstr[0] "Оштећена напомена: оÑтаје Ñамо %zd бајт
msgstr[1] "Оштећена напомена: оÑтају Ñамо %zd бајта, недовољно за читаву напомену\n"
msgstr[2] "Оштећена напомена: оÑтаје Ñамо %zd бајтова, недовољно за читаву напомену\n"
-#: readelf.c:23201
+#: readelf.c:23211
#, c-format
msgid "note with invalid namesz and/or descsz found at offset %#tx\n"
msgstr "напомена Ñа неиÑправним „namesz“ и/или „descsz“ је нађена на померају %#tx\n"
-#: readelf.c:23203
+#: readelf.c:23213
#, c-format
msgid " type: %#lx, namesize: %#lx, descsize: %#lx, alignment: %u\n"
msgstr " врÑта: %#lx, величина назива: %#lx, величина опиÑа: %#lx, поравнање: %u\n"
-#: readelf.c:23221
+#: readelf.c:23231
msgid "Out of memory allocating space for inote name\n"
msgstr "ПонеÑтало је меморије приликом додељивања проÑтора за назив и-напомене\n"
-#: readelf.c:23279
+#: readelf.c:23289
msgid "v850 notes"
msgstr "„v850“ напомене"
-#: readelf.c:23286
+#: readelf.c:23296
#, c-format
msgid ""
"\n"
@@ -13307,47 +13344,47 @@ msgstr ""
"\n"
"Приказујем Ñадржај одељка „Renesas V850“ напомена на померају %#<PRIx64> Ñа дужином %#<PRIx64>:\n"
-#: readelf.c:23304
+#: readelf.c:23314
#, c-format
msgid "Corrupt note: name size is too big: %lx\n"
msgstr "Оштећена напомена: величина назива је превелика: %lx\n"
-#: readelf.c:23314
+#: readelf.c:23324
#, c-format
msgid "corrupt descsz found in note at offset %#tx\n"
msgstr "нађох оштећену вел_опиÑа у напомени на померају %#tx\n"
-#: readelf.c:23316 readelf.c:23329
+#: readelf.c:23326 readelf.c:23339
#, c-format
msgid " type: %#lx, namesize: %#lx, descsize: %#lx\n"
msgstr " врÑта: %#lx, величина назива: %#lx, величина опиÑа: %#lx\n"
-#: readelf.c:23327
+#: readelf.c:23337
#, c-format
msgid "corrupt namesz found in note at offset %#zx\n"
msgstr "нађох оштећену вел_назива у напомени на померају %#zx\n"
-#: readelf.c:23403
+#: readelf.c:23413
#, c-format
msgid "No notes found in linked file '%s'.\n"
msgstr "ÐиÑам нашао никакве напомене у повезаној датотеци „%s“.\n"
-#: readelf.c:23406
+#: readelf.c:23416
#, c-format
msgid "No notes found file.\n"
msgstr "ÐиÑам нашао напомене у датотеци.\n"
-#: readelf.c:23415
+#: readelf.c:23425
#, c-format
msgid " Unknown GNU attribute: %s\n"
msgstr " Ðепознат Гну атрибут: %s\n"
-#: readelf.c:23744
+#: readelf.c:23754
#, c-format
msgid "%s: Failed to read file header\n"
msgstr "%s: ÐиÑам уÑпео да прочитам заглавље датотеке\n"
-#: readelf.c:23759
+#: readelf.c:23769
#, c-format
msgid ""
"\n"
@@ -13356,27 +13393,27 @@ msgstr ""
"\n"
"Датотека: %s\n"
-#: readelf.c:23920
+#: readelf.c:23930
#, c-format
msgid "%s: unable to dump the index as none was found\n"
msgstr "%s: не могу да изнеÑем Ð¸Ð½Ð´ÐµÐºÑ Ñ˜ÐµÑ€ нема ни једног\n"
-#: readelf.c:23927
+#: readelf.c:23937
#, c-format
msgid "Index of archive %s: (%<PRIu64> entries, %#<PRIx64> bytes in the symbol table)\n"
msgstr "Ð˜Ð½Ð´ÐµÐºÑ Ð°Ñ€Ñ…Ð¸Ð²Ðµ %s: (%<PRIu64> уноÑа, %#<PRIx64> бајта у табели Ñимбола)\n"
-#: readelf.c:23951
+#: readelf.c:23961
#, c-format
msgid "Contents of binary %s at offset "
msgstr "Садржај извршног „%s“ на померају "
-#: readelf.c:23963
+#: readelf.c:23973
#, c-format
msgid "%s: end of the symbol table reached before the end of the index\n"
msgstr "%s: Ñтигох до краја табеле Ñимбола пре краја индекÑа\n"
-#: readelf.c:23982
+#: readelf.c:23992
#, c-format
msgid "%s: %<PRId64> byte remains in the symbol table, but without corresponding entries in the index table\n"
msgid_plural "%s: %<PRId64> bytes remain in the symbol table, but without corresponding entries in the index table\n"
@@ -13384,36 +13421,36 @@ msgstr[0] "%s: %<PRId64> бајт оÑтаје у табели Ñимбола, Ð
msgstr[1] "%s: %<PRId64> бајта оÑтају у табели Ñимбола, али без одговарајућих уноÑа у табели индекÑа\n"
msgstr[2] "%s: %<PRId64> бајтова оÑтаје у табели Ñимбола, али без одговарајућих уноÑа у табели индекÑа\n"
-#: readelf.c:23995
+#: readelf.c:24005
#, c-format
msgid "%s: failed to seek back to start of object files in the archive\n"
msgstr "%s: ниÑам уÑпео да премотам назад на почетак датотека предмета у архиви\n"
-#: readelf.c:24087 readelf.c:24206
+#: readelf.c:24097 readelf.c:24216
#, c-format
msgid "Input file '%s' is not readable.\n"
msgstr "Улазна датотека %s није читљива.\n"
-#: readelf.c:24115
+#: readelf.c:24125
#, c-format
msgid "%s: contains corrupt thin archive: %s\n"
msgstr "%s: Ñадржи оштећену лаку архиву: %s\n"
-#: readelf.c:24133
+#: readelf.c:24143
#, c-format
msgid "%s: failed to seek to archive member.\n"
msgstr "%s: ниÑам уÑпео да премотам до члана архиве.\n"
-#: readelf.c:24198
+#: readelf.c:24208
msgid "Out of memory allocating file data structure\n"
msgstr "ПонеÑтало је меморије приликом додељивања Ñтруктуре података датотеке\n"
-#: readelf.c:24235
+#: readelf.c:24245
#, c-format
msgid "File %s is not an archive so its index cannot be displayed.\n"
msgstr "Датотека %s није архива тако да њен Ð¸Ð½Ð´ÐµÐºÑ Ð½Ðµ може бити приказан.\n"
-#: readelf.c:24301
+#: readelf.c:24311
msgid "Nothing to do.\n"
msgstr "Ðишта за радити.\n"
@@ -13432,298 +13469,312 @@ msgstr "не могу да умножим датотеку „%s“; разлоÐ
msgid "%s: not enough binary data"
msgstr "%s: нема довољно бинарних података"
-#: resbin.c:135
+#: resbin.c:136
msgid "null terminated unicode string"
msgstr "ништицом окончана ниÑка јуникода"
-#: resbin.c:162 resbin.c:168
+#: resbin.c:166 resbin.c:175
msgid "resource ID"
msgstr "ИБ изворишта"
-#: resbin.c:207
+#: resbin.c:219
msgid "cursor"
msgstr "курзор"
-#: resbin.c:238 resbin.c:245
+#: resbin.c:253 resbin.c:263
msgid "menu header"
msgstr "заглавље изборника"
-#: resbin.c:254
+#: resbin.c:277
msgid "menuex header"
msgstr "заглавље екÑ_изборника"
-#: resbin.c:258
+#: resbin.c:284
msgid "menuex offset"
msgstr "померај екÑ_изборника"
-#: resbin.c:263
+#: resbin.c:294
#, c-format
msgid "unsupported menu version %d"
msgstr "неподржано издање изборника %d"
-#: resbin.c:288 resbin.c:303 resbin.c:365
+#: resbin.c:322 resbin.c:340 resbin.c:411
msgid "menuitem header"
msgstr "заглавље Ñтавке изборника"
-#: resbin.c:395
+#: resbin.c:453
msgid "menuitem"
msgstr "Ñтавка изборника"
-#: resbin.c:432 resbin.c:460
+#: resbin.c:496 resbin.c:530
msgid "dialog header"
msgstr "заглавље прозорчета"
-#: resbin.c:450
+#: resbin.c:517
#, c-format
msgid "unexpected DIALOGEX version %d"
msgstr "неочекивано издање „DIALOGEX“ %d"
-#: resbin.c:495
+#: resbin.c:574
msgid "dialog font point size"
msgstr "величина тачке Ñловолика прозорчета"
-#: resbin.c:503
+#: resbin.c:585
msgid "dialogex font information"
msgstr "подаци о Ñловолику екÑ_прозорчета"
-#: resbin.c:529 resbin.c:547
+#: resbin.c:616 resbin.c:640
msgid "dialog control"
msgstr "управљање прозорчетом"
-#: resbin.c:539
+#: resbin.c:629
msgid "dialogex control"
msgstr "управљање екÑ_прозорчетом"
-#: resbin.c:568
+#: resbin.c:668
msgid "dialog control end"
msgstr "крај управљања прозорчетом"
-#: resbin.c:578
+#: resbin.c:681
msgid "dialog control data"
msgstr "подаци управљања прозорчетом"
-#: resbin.c:618
+#: resbin.c:723
msgid "stringtable string length"
msgstr "дужина ниÑке табеле ниÑке"
-#: resbin.c:628
+#: resbin.c:736
msgid "stringtable string"
msgstr "ниÑка табеле ниÑке"
-#: resbin.c:658
+#: resbin.c:770
msgid "fontdir header"
msgstr "заглавље директоријума Ñловолика"
-#: resbin.c:672
+#: resbin.c:787
msgid "fontdir"
msgstr "директоријум Ñловолика"
-#: resbin.c:689
+#: resbin.c:807
msgid "fontdir device name"
msgstr "назив уређаја директоријума Ñловолика"
-#: resbin.c:695
+#: resbin.c:816
msgid "fontdir face name"
msgstr "назив Ñучеља директоријума Ñловолика"
-#: resbin.c:735
+#: resbin.c:860
msgid "accelerator"
msgstr "убрзавач"
-#: resbin.c:794
+#: resbin.c:923
msgid "group cursor header"
msgstr "заглавље курзора групе"
-#: resbin.c:798 resrc.c:1346
+#: resbin.c:930 resrc.c:1362
#, c-format
msgid "unexpected group cursor type %d"
msgstr "неочекивана врÑта курзора групе „%d“"
-#: resbin.c:813
+#: resbin.c:948
msgid "group cursor"
msgstr "курзор групе"
-#: resbin.c:849
+#: resbin.c:988
msgid "group icon header"
msgstr "заглавље иконице групе"
-#: resbin.c:853 resrc.c:1293
+#: resbin.c:995 resrc.c:1309
#, c-format
msgid "unexpected group icon type %d"
msgstr "неочекивана врÑта иконице групе „%d“"
-#: resbin.c:868
+#: resbin.c:1013
msgid "group icon"
msgstr "иконица групе"
-#: resbin.c:932
+#: resbin.c:1088
msgid "unexpected version string"
msgstr "неочекивана ниÑка издања"
-#: resbin.c:964
+#: resbin.c:1126
#, c-format
msgid "version length %lu greater than resource length %lu"
msgstr "дужина издања %lu је већа од дужине изворишта %lu"
-#: resbin.c:968
+#: resbin.c:1133
#, c-format
msgid "unexpected version type %d"
msgstr "неочекивана врÑта издања „%d“"
-#: resbin.c:983
+#: resbin.c:1152
#, c-format
msgid "unexpected fixed version information length %ld"
msgstr "неочекивана дужина података Ñталног издања %ld"
-#: resbin.c:986
+#: resbin.c:1159
msgid "fixed version info"
msgstr "подаци Ñталног издања"
-#: resbin.c:990
+#: resbin.c:1166
#, c-format
msgid "unexpected fixed version signature %lu"
msgstr "неочекивани Ð¿Ð¾Ñ‚Ð¿Ð¸Ñ Ñталног издања %lu"
-#: resbin.c:994
+#: resbin.c:1173
#, c-format
msgid "unexpected fixed version info version %lu"
msgstr "неочекивано издање података Ñталног издања %lu"
-#: resbin.c:1023
+#: resbin.c:1205
msgid "version var info"
msgstr "подаци променљиве издања"
-#: resbin.c:1040
+#: resbin.c:1226
#, c-format
msgid "unexpected stringfileinfo value length %ld"
msgstr "неочекивана дужина вредноÑти података датотеке ниÑке %ld"
-#: resbin.c:1057
+#: resbin.c:1247
msgid "version stringtable"
msgstr "табела ниÑке издања"
-#: resbin.c:1065
+#: resbin.c:1260
#, c-format
msgid "unexpected version stringtable value length %ld"
msgstr "неочекивана дужина вредноÑти табеле ниÑке издања %ld"
-#: resbin.c:1082
+#: resbin.c:1281
msgid "version string"
msgstr "ниÑка издања"
-#: resbin.c:1097
+#: resbin.c:1303
#, c-format
msgid "unexpected version string length %ld != %ld + %ld"
msgstr "неочекивана дужина ниÑке издања %ld != %ld +%ld"
-#: resbin.c:1104
+#: resbin.c:1313
#, c-format
msgid "unexpected version string length %ld < %ld"
msgstr "неочекивана дужина ниÑке издања %ld < %ld"
-#: resbin.c:1130
+#: resbin.c:1343
#, c-format
msgid "unexpected varfileinfo value length %ld"
msgstr "неочекивана дужина вредноÑти податка датотеке променљиве %ld"
-#: resbin.c:1149
+#: resbin.c:1368
msgid "version varfileinfo"
msgstr "подаци датотеке променљиве издања"
-#: resbin.c:1164
+#: resbin.c:1386
#, c-format
msgid "unexpected version value length %ld"
msgstr "неочекивана дужина вредноÑти издања %ld"
-#: resbin.c:1174
+#: resbin.c:1399
msgid "nul bytes found in version string"
msgstr "нађени Ñу ништавни бајтови у ниÑци издања"
-#: resbin.c:1177
+#: resbin.c:1404
#, c-format
msgid "unexpected version string character: %x"
msgstr "неочекивани знак ниÑке издања: %x"
-#: rescoff.c:123
+#: resbin.c:1457
+msgid "toolbar"
+msgstr "трака алата"
+
+#: resbin.c:1475
+msgid "toolbar item"
+msgstr "Ñтавка траке алата"
+
+#: rescoff.c:124
msgid "filename required for COFF input"
msgstr "назив датотеке Ñе захтева за ЦОФФ улаз"
-#: rescoff.c:140
+#: rescoff.c:147
+#, c-format
+msgid "%s: not a PE file"
+msgstr "%s: није PE датптека"
+
+#: rescoff.c:155
#, c-format
msgid "%s: no resource section"
msgstr "%s: нема одељка изворишта"
-#: rescoff.c:150
+#: rescoff.c:168
#, c-format
msgid "%s: .rsrc section is bigger than the file!"
msgstr "%s: „.rsrc“ одељак је већи него датотека!"
-#: rescoff.c:178
+#: rescoff.c:199
#, c-format
msgid "%s: %s: address out of bounds"
msgstr "%s: %s: адреÑа је изван граница"
-#: rescoff.c:199
-msgid "Resources nest too deep"
-msgstr "Гнездо изворишта је предуко"
+#: rescoff.c:221
+#, c-format
+msgid "%s: resources nest too deep"
+msgstr "%s: изворишта Ñу угнежђена предубоко"
-#: rescoff.c:202
+#: rescoff.c:228
msgid "directory"
msgstr "директоријум"
-#: rescoff.c:230
+#: rescoff.c:260
msgid "named directory entry"
msgstr "ÑƒÐ½Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¾Ð³ директоријума"
-#: rescoff.c:239
+#: rescoff.c:272
msgid "directory entry name"
msgstr "назив уноÑа директоријума"
-#: rescoff.c:253
+#: rescoff.c:279 rescoff.c:286
msgid "resource name"
msgstr "назив изворишта"
-#: rescoff.c:264
+#: rescoff.c:305
msgid "named subdirectory"
msgstr "именовани поддиректоријум"
-#: rescoff.c:272
+#: rescoff.c:316
msgid "named resource"
msgstr "именовано извориште"
-#: rescoff.c:287
+#: rescoff.c:336
msgid "ID directory entry"
msgstr "ÑƒÐ½Ð¾Ñ Ð˜Ð‘-а директоријума"
-#: rescoff.c:304
+#: rescoff.c:356
msgid "ID subdirectory"
msgstr "ИБ поддиректоријума"
-#: rescoff.c:312
+#: rescoff.c:367
msgid "ID resource"
msgstr "ИБ изворишта"
-#: rescoff.c:337
+#: rescoff.c:396
msgid "resource type unknown"
msgstr "непозната врÑта изворишта"
-#: rescoff.c:340
+#: rescoff.c:402
msgid "data entry"
msgstr "ÑƒÐ½Ð¾Ñ Ð¿Ð¾Ð´Ð°Ñ‚Ð°ÐºÐ°"
-#: rescoff.c:348
+#: rescoff.c:413
msgid "resource data"
msgstr "подаци изворишта"
-#: rescoff.c:353
+#: rescoff.c:421
msgid "resource data size"
msgstr "величина података изворишта"
-#: rescoff.c:448
+#: rescoff.c:521
msgid "filename required for COFF output"
msgstr "назив датотеке Ñе захтева за ЦОФФ излаз"
-#: rescoff.c:735
+#: rescoff.c:879
msgid "can't get BFD_RELOC_RVA relocation type"
msgstr "не могу да добавим врÑту премештаја „BFD_RELOC_RVA“"
@@ -13781,45 +13832,49 @@ msgstr "%s: неочекивани крај датотеке"
msgid "%s: read of %lu returned %lu"
msgstr "%s: читање „%lu“ је дало %lu"
-#: resrc.c:718 resrc.c:1493
+#: resrc.c:687 resrc.c:695
+msgid "not enough data"
+msgstr "нема довољно података"
+
+#: resrc.c:734 resrc.c:1509
#, c-format
msgid "stat failed on bitmap file `%s': %s"
msgstr "ниÑам уÑпео да дознам податке битмап датотеке „%s“ : %s"
-#: resrc.c:769
+#: resrc.c:785
#, c-format
msgid "cursor file `%s' does not contain cursor data"
msgstr "датотека курзора „%s“ не Ñадржи податке курзора"
-#: resrc.c:801 resrc.c:1201
+#: resrc.c:817 resrc.c:1217
#, c-format
msgid "%s: fseek to %lu failed: %s"
msgstr "%s: није уÑпело Ñ„_премотај до „%lu“: %s"
-#: resrc.c:927
+#: resrc.c:943
msgid "help ID requires DIALOGEX"
msgstr " ИБ помоћи захтева „DIALOGEX“"
-#: resrc.c:929
+#: resrc.c:945
msgid "control data requires DIALOGEX"
msgstr "подаци управљања захтевају „DIALOGEX“"
-#: resrc.c:957
+#: resrc.c:973
#, c-format
msgid "stat failed on font file `%s': %s"
msgstr "ниÑам уÑпео да дознам податке датотеке Ñловолика „%s“ : %s"
-#: resrc.c:1170
+#: resrc.c:1186
#, c-format
msgid "icon file `%s' does not contain icon data"
msgstr "датотека иконице „%s“ не Ñадржи податке иконице"
-#: resrc.c:1719 resrc.c:1754
+#: resrc.c:1735 resrc.c:1770
#, c-format
msgid "stat failed on file `%s': %s"
msgstr "ниÑам уÑпео да дознам податке датотеке „%s“ : %s"
-#: resrc.c:1953
+#: resrc.c:1970
#, c-format
msgid "can't open `%s' for output: %s"
msgstr "не могу да отворим „%s“ за излаз: %s"
@@ -14394,7 +14449,7 @@ msgstr ""
" -v --verbose Опширно – говори вам шата ради\n"
" -V --version Приказује податке о издању\n"
-#: windmc.c:260 windres.c:404
+#: windmc.c:260 windres.c:384
#, c-format
msgid "%s: warning: "
msgstr "%s: упозорење: "
@@ -14427,48 +14482,48 @@ msgstr "не могу да прочитам Ñадржај „%s“"
msgid "input file does not seems to be UFT16.\n"
msgstr "улазна датотека не изгледа да је УТФ16.\n"
-#: windres.c:214
+#: windres.c:194
#, c-format
msgid "can't open %s `%s': %s"
msgstr "не могу да отворим %s „%s“ : %s"
-#: windres.c:383
+#: windres.c:363
#, c-format
msgid ": expected to be a directory\n"
msgstr ": очекивах директоријум\n"
-#: windres.c:395
+#: windres.c:375
#, c-format
msgid ": expected to be a leaf\n"
msgstr ": очекивах лиÑÑ‚\n"
-#: windres.c:406
+#: windres.c:386
#, c-format
msgid ": duplicate value\n"
msgstr ": двоÑтрука вредноÑÑ‚\n"
-#: windres.c:558
+#: windres.c:538
#, c-format
msgid "unknown format type `%s'"
msgstr "непозната врÑта запиÑа „%s“"
-#: windres.c:559
+#: windres.c:539
#, c-format
msgid "%s: supported formats:"
msgstr "%s: подржани запиÑи:"
#. Otherwise, we give up.
-#: windres.c:642
+#: windres.c:622
#, c-format
msgid "can not determine type of file `%s'; use the -J option"
msgstr "не могу да одредим врÑту датотеке „%s“; кориÑтите опцију „-J“"
-#: windres.c:654
+#: windres.c:634
#, c-format
msgid "Usage: %s [option(s)] [input-file] [output-file]\n"
msgstr "Употреба: %s [опција(е)] [улазна_датотека] [излазна_датотека]\n"
-#: windres.c:656
+#: windres.c:636
#, c-format
msgid ""
" The options are:\n"
@@ -14507,12 +14562,12 @@ msgstr ""
" читање излаза предобрађивача\n"
" --no-use-temp-file КориÑти „popen“ (оÑновно)\n"
-#: windres.c:674
+#: windres.c:654
#, c-format
msgid " --yydebug Turn on parser debugging\n"
msgstr " --yydebug Укључује прочишћавање обрађивача\n"
-#: windres.c:677
+#: windres.c:657
#, c-format
msgid ""
" -r Ignored for compatibility with rc\n"
@@ -14525,7 +14580,7 @@ msgstr ""
" -h --help Приказује ову поруку помоћи\n"
" -V --version Приказује податке о издању\n"
-#: windres.c:682
+#: windres.c:662
#, c-format
msgid ""
"FORMAT is one of rc, res, or coff, and is deduced from the file name\n"
@@ -14536,24 +14591,24 @@ msgstr ""
"датотеке ако није наведен. Један назив датотеке је улазна датотека.\n"
"Ðиједна улазна датотека није Ñтндулаз, оÑновно је „rc“. Ðиједна излазна датотека није Ñтндизлаз, подразумева Ñе „rc“.\n"
-#: windres.c:845
+#: windres.c:825
msgid "invalid codepage specified.\n"
msgstr "наведена је неиÑправна кодна Ñтраница.\n"
-#: windres.c:860
+#: windres.c:840
msgid "invalid option -f\n"
msgstr "неиÑправна опција „-f“\n"
-#: windres.c:865
+#: windres.c:845
msgid "No filename following the -fo option.\n"
msgstr "Ðема назива датотеке након опције „-fo“.\n"
-#: windres.c:957
+#: windres.c:937
#, c-format
msgid "Option -I is deprecated for setting the input format, please use -J instead.\n"
msgstr "Опција „-I“ је занемарена за подешавање улазног запиÑа, кориÑтите „-J“ умеÑто ње.\n"
-#: windres.c:1070
+#: windres.c:1050
msgid "no resources"
msgstr "нема изворишта"
@@ -14572,6 +14627,10 @@ msgstr "stab_int_type: лоша величина %u"
msgid "%s: warning: unknown size for field `%s' in struct"
msgstr "%s: упозорење: непозната величина за поље „%s“ у Ñтруктури"
+#, c-format
+#~ msgid "Range lists in %s section start at %#<PRIx64>\n"
+#~ msgstr "СпиÑкови опÑега у одељку %s почињу на %#<PRIx64>\n"
+
#~ msgid "unable to construct path for supplementary debug file\n"
#~ msgstr "не могу да направим путању за додатну датотеку прочишћавања\n"
diff --git a/binutils/readelf.c b/binutils/readelf.c
index bb81c82..fd9722c 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -229,6 +229,7 @@ static bool do_dyn_syms = false;
static bool do_lto_syms = false;
static bool do_reloc = false;
static bool do_sections = false;
+static bool do_got_section_contents = false;
static bool do_section_groups = false;
static bool do_section_details = false;
static bool do_segments = false;
@@ -372,6 +373,21 @@ enum versioned_symbol_info
symbol_public
};
+/* Relocation entries */
+
+typedef struct elf_relocation
+{
+ bfd_vma r_offset; /* Location at which to apply the action */
+ bfd_vma r_addend; /* Constant addend used to compute value */
+ const char *r_name; /* Relocation name. */
+ char *r_symbol; /* Relocation symbol. */
+ relocation_type r_type; /* Relocation type. */
+} elf_relocation;
+
+static elf_relocation *all_relocations_root;
+static elf_relocation *all_relocations;
+static size_t all_relocations_count;
+
static int
fseek64 (FILE *stream, int64_t offset, int whence)
{
@@ -832,8 +848,8 @@ print_symbol_name (signed int width, const char * symbol)
if (width_remaining < 8)
break;
printf ("\\u%02x%02x%02x",
- ((bytes[0] & 0x07) << 6) | ((bytes[1] & 0x3c) >> 2),
- ((bytes[1] & 0x03) << 6) | ((bytes[2] & 0x3c) >> 2),
+ ((bytes[0] & 0x07) << 2) | ((bytes[1] & 0x30) >> 4),
+ ((bytes[1] & 0x0f) << 4) | ((bytes[2] & 0x3c) >> 2),
((bytes[2] & 0x03) << 6) | (bytes[3] & 0x3f));
break;
@@ -1767,9 +1783,36 @@ symcmp (const void *p, const void *q)
return sp->st_value > sq->st_value ? 1 : (sp->st_value < sq->st_value ? -1 : 0);
}
+static void
+update_all_relocations (size_t nentries)
+{
+ size_t sz;
+
+ if (!do_got_section_contents)
+ return;
+
+ if (!all_relocations_root)
+ {
+ sz = nentries * sizeof (elf_relocation);
+ all_relocations_root = (elf_relocation *) xmalloc (sz);
+ all_relocations = all_relocations_root;
+ all_relocations_count = nentries;
+ }
+ else
+ {
+ size_t orig_count = all_relocations_count;
+ sz = (orig_count + nentries) * sizeof (elf_relocation);
+ all_relocations_root = (elf_relocation *)
+ xrealloc (all_relocations_root, sz);
+ all_relocations = all_relocations_root + orig_count;
+ all_relocations_count += nentries;
+ }
+}
+
static uint64_t
count_relr_relocations (Filedata * filedata,
- Elf_Internal_Shdr * section)
+ Elf_Internal_Shdr * section,
+ uint64_t ** relrs_p)
{
uint64_t * relrs;
uint64_t nentries;
@@ -1794,9 +1837,6 @@ count_relr_relocations (Filedata * filedata,
if (nentries == 0)
return 0;
- /* FIXME: This call to get_data duplicates one that follows in
- dump_relr_relocations(). They could be combined into just
- one call. */
relrs = get_data (NULL, filedata, section->sh_offset, 1,
section->sh_size, _("RELR relocation data"));
if (relrs == NULL)
@@ -1826,23 +1866,27 @@ count_relr_relocations (Filedata * filedata,
}
}
- free (relrs);
+ *relrs_p = relrs;
+
return count;
}
+/* If DUMP_RELOC is false, don't display RELR relocations, just collect
+ RELR relocations for displaying GOT section contents later. */
+
static bool
dump_relr_relocations (Filedata * filedata,
- Elf_Internal_Shdr * section,
- Elf_Internal_Sym * symtab,
+ uint64_t relr_size,
+ int relr_entsize,
+ uint64_t relr_offset,
+ uint64_t * relrs,
+ const Elf_Internal_Sym * symtab_p,
uint64_t nsyms,
char * strtab,
- uint64_t strtablen)
+ uint64_t strtablen,
+ bool dump_reloc)
{
- uint64_t * relrs;
uint64_t nentries, i;
- uint64_t relr_size = section->sh_size;
- int relr_entsize = section->sh_entsize;
- uint64_t relr_offset = section->sh_offset;
uint64_t where = 0;
int num_bits_in_entry;
@@ -1861,35 +1905,203 @@ dump_relr_relocations (Filedata * filedata,
num_bits_in_entry = 63;
else
{
- warn (_("Unexpected entsize for RELR section\n"));
+ if (dump_reloc)
+ warn (_("Unexpected entsize for RELR section\n"));
return false;
}
- relrs = get_data (NULL, filedata, relr_offset, 1, relr_size, _("RELR relocation data"));
+ uint64_t *alloc_relrs = NULL;
if (relrs == NULL)
- return false;
+ {
+ relrs = get_data (NULL, filedata, relr_offset, 1, relr_size,
+ _("RELR relocation data"));
+ if (relrs == NULL)
+ return false;
+ alloc_relrs = relrs;
+ }
/* Paranoia. */
if (strtab == NULL)
strtablen = 0;
- if (symtab == NULL)
+ if (symtab_p == NULL)
nsyms = 0;
- if (symtab != NULL)
+ const char *rtype = NULL;
+ if (do_got_section_contents)
+ switch (filedata->file_header.e_machine)
+ {
+ default:
+ abort ();
+
+ case EM_386:
+ case EM_IAMCU:
+ rtype = "R_386_RELATIVE";
+ break;
+
+ case EM_68K:
+ rtype = "R_68K_RELATIVE";
+ break;
+
+ case EM_860:
+ rtype = "R_860_RELATIVE";
+ break;
+
+ case EM_AARCH64:
+ rtype = "R_AARCH64_RELATIVE";
+ break;
+
+ case EM_AMDGPU:
+ rtype = "R_AMDGPU_RELATIVE64";
+ break;
+
+ case EM_ALPHA:
+ rtype = "R_ALPHA_RELATIVE";
+ break;
+
+ case EM_ALTERA_NIOS2:
+ rtype = "R_NIOS2_RELATIVE";
+ break;
+
+ case EM_ARM:
+ rtype = "R_ARM_RELATIVE";
+ break;
+
+ case EM_ARC:
+ case EM_ARC_COMPACT:
+ case EM_ARC_COMPACT2:
+ case EM_ARC_COMPACT3:
+ case EM_ARC_COMPACT3_64:
+ rtype = "R_ARC_RELATIVE";
+ break;
+
+ case EM_CRIS:
+ rtype = "R_CRIS_RELATIVE";
+ break;
+
+ case EM_CSKY:
+ rtype = "R_CKCORE_RELATIVE";
+ break;
+
+ case EM_KVX:
+ rtype = "R_KVX_RELATIVE";
+ break;
+
+ case EM_LATTICEMICO32:
+ rtype = "R_LM32_RELATIVE";
+ break;
+
+ case EM_LOONGARCH:
+ rtype = "R_LARCH_RELATIVE";
+ break;
+
+ case EM_M32R:
+ case EM_CYGNUS_M32R:
+ rtype = "R_M32R_RELATIVE";
+ break;
+
+ case EM_MCORE:
+ rtype = "R_MCORE_RELATIVE";
+ break;
+
+ case EM_METAG:
+ rtype = "R_METAG_RELATIVE";
+ break;
+
+ case EM_MN10300:
+ case EM_CYGNUS_MN10300:
+ rtype = "R_MN10300_RELATIVE";
+ break;
+
+ case EM_NDS32:
+ rtype = "R_NDS32_RELATIVE";
+ break;
+
+ case EM_OR1K:
+ rtype = "R_OR1K_RELATIVE";
+ break;
+
+ case EM_PPC:
+ rtype = "R_PPC_RELATIVE";
+ break;
+
+ case EM_PPC64:
+ rtype = "R_PPC64_RELATIVE";
+ break;
+
+ case EM_RISCV:
+ rtype = "R_RISCV_RELATIVE";
+ break;
+
+ case EM_S370:
+ rtype = "R_I370_RELATIVE";
+ break;
+
+ case EM_S390_OLD:
+ case EM_S390:
+ rtype = "R_390_RELATIVE";
+ break;
+
+ case EM_SH:
+ rtype = "R_SH_RELATIVE";
+ break;
+
+ case EM_OLD_SPARCV9:
+ case EM_SPARC32PLUS:
+ case EM_SPARCV9:
+ case EM_SPARC:
+ rtype = "R_SPARC_RELATIVE";
+ break;
+
+ case EM_TILEGX:
+ rtype = "R_TILEGX_RELATIVE";
+ break;
+
+ case EM_TILEPRO:
+ rtype = "R_TILEPRO_RELATIVE";
+ break;
+
+ case EM_V850:
+ case EM_CYGNUS_V850:
+ rtype = "R_V850_RELATIVE";
+ break;
+
+ case EM_VAX:
+ rtype = "R_VAX_RELATIVE";
+ break;
+
+ case EM_X86_64:
+ case EM_L1OM:
+ case EM_K1OM:
+ rtype = "R_X86_64_RELATIVE";
+ break;
+
+ case EM_XTENSA_OLD:
+ case EM_XTENSA:
+ rtype = "R_XTENSA_RELATIVE";
+ break;
+ }
+
+ Elf_Internal_Sym *symtab = NULL;
+ if (symtab_p != NULL)
{
/* Symbol tables are not sorted on address, but we want a quick lookup
for the symbol associated with each address computed below, so sort
- the table then filter out unwanted entries. FIXME: This assumes that
- the symbol table will not be used later on for some other purpose. */
+ the table then filter out unwanted entries. */
+ size_t sz = nsyms * sizeof (*symtab);
+ symtab = xmemdup (symtab_p, sz, sz);
qsort (symtab, nsyms, sizeof (Elf_Internal_Sym), symcmp);
nsyms = filter_display_syms (filedata, symtab, nsyms, strtab, strtablen);
}
- if (relr_entsize == sizeof (Elf32_External_Relr))
- printf (_ ("Index: Entry Address Symbolic Address\n"));
- else
- printf (_ ("Index: Entry Address Symbolic Address\n"));
+ if (dump_reloc)
+ {
+ if (relr_entsize == sizeof (Elf32_External_Relr))
+ printf (_ ("Index: Entry Address Symbolic Address\n"));
+ else
+ printf (_ ("Index: Entry Address Symbolic Address\n"));
+ }
+ uint64_t r = 0;
for (i = 0; i < nentries; i++)
{
uint64_t entry;
@@ -1899,16 +2111,34 @@ dump_relr_relocations (Filedata * filedata,
else
entry = BYTE_GET (((Elf64_External_Relr *)relrs)[i].r_data);
- /* We assume that there will never be more than 9999 entries. */
- printf (_("%04u: "), (unsigned int) i);
- print_vma (entry, ZERO_HEX);
- printf (" ");
+ if (dump_reloc)
+ {
+ /* We assume that there will never be more than 9999
+ entries. */
+ printf (_("%04u: "), (unsigned int) i);
+ print_vma (entry, ZERO_HEX);
+ printf (" ");
+ }
if ((entry & 1) == 0)
{
where = entry;
- print_relr_addr_and_sym (filedata, symtab, nsyms, strtab, where);
- printf ("\n");
+ if (dump_reloc)
+ {
+ print_relr_addr_and_sym (filedata, symtab, nsyms, strtab,
+ where);
+ printf ("\n");
+ }
+
+ if (do_got_section_contents)
+ {
+ all_relocations[r].r_offset = where;
+ all_relocations[r].r_name = rtype;
+ all_relocations[r].r_symbol = NULL;
+ all_relocations[r].r_type = reltype_relr;
+ r++;
+ }
+
where += relr_entsize;
}
else
@@ -1921,7 +2151,7 @@ dump_relr_relocations (Filedata * filedata,
/* This can actually happen when the linker is allowed to shrink
RELR sections. For more details see: https://reviews.llvm.org/D67164. */
continue;
- else if (i == 0)
+ else if (dump_reloc && i == 0)
warn (_("Unusual RELR bitmap - no previous entry to set the base address\n"));
for (j = 0; entry >>= 1; j++)
@@ -1929,29 +2159,47 @@ dump_relr_relocations (Filedata * filedata,
{
uint64_t addr = where + (j * relr_entsize);
- if (first)
+ if (dump_reloc)
{
- print_relr_addr_and_sym (filedata, symtab, nsyms, strtab, addr);
- first = false;
+ if (first)
+ {
+ print_relr_addr_and_sym (filedata, symtab, nsyms,
+ strtab, addr);
+ first = false;
+ }
+ else
+ {
+ printf (_("\n%*s "),
+ relr_entsize == 4 ? 15 : 23, " ");
+ print_relr_addr_and_sym (filedata, symtab, nsyms,
+ strtab, addr);
+ }
}
- else
+
+ if (do_got_section_contents)
{
- printf (_("\n%*s "), relr_entsize == 4 ? 15 : 23, " ");
- print_relr_addr_and_sym (filedata, symtab, nsyms, strtab, addr);
+ all_relocations[r].r_offset = addr;
+ all_relocations[r].r_name = rtype;
+ all_relocations[r].r_symbol = NULL;
+ all_relocations[r].r_type = reltype_relr;
+ r++;
}
}
- printf ("\n");
+ if (dump_reloc)
+ printf ("\n");
where += num_bits_in_entry * relr_entsize;
}
}
- free (relrs);
+ free (symtab);
+ free (alloc_relrs);
return true;
}
/* Display the contents of the relocation data found at the specified
- offset. */
+ offset. If DUMP_RELOC is false, don't display relocations, just
+ collect relocations for displaying GOT section contents later. */
static bool
dump_relocations (Filedata * filedata,
@@ -1962,7 +2210,8 @@ dump_relocations (Filedata * filedata,
char * strtab,
uint64_t strtablen,
relocation_type rel_type,
- bool is_dynsym)
+ bool is_dynsym,
+ bool dump_reloc)
{
size_t i;
Elf_Internal_Rela * rels;
@@ -1987,26 +2236,26 @@ dump_relocations (Filedata * filedata,
return false;
}
- if (is_32bit_elf)
+ if (dump_reloc)
{
- if (rel_type == reltype_rela)
- {
- if (do_wide)
- printf (_(" Offset Info Type Sym. Value Symbol's Name + Addend\n"));
- else
- printf (_(" Offset Info Type Sym.Value Sym. Name + Addend\n"));
- }
- else
+ if (is_32bit_elf)
{
- if (do_wide)
- printf (_(" Offset Info Type Sym. Value Symbol's Name\n"));
+ if (rel_type == reltype_rela)
+ {
+ if (do_wide)
+ printf (_(" Offset Info Type Sym. Value Symbol's Name + Addend\n"));
+ else
+ printf (_(" Offset Info Type Sym.Value Sym. Name + Addend\n"));
+ }
else
- printf (_(" Offset Info Type Sym.Value Sym. Name\n"));
+ {
+ if (do_wide)
+ printf (_(" Offset Info Type Sym. Value Symbol's Name\n"));
+ else
+ printf (_(" Offset Info Type Sym.Value Sym. Name\n"));
+ }
}
- }
- else
- {
- if (rel_type == reltype_rela)
+ else if (rel_type == reltype_rela)
{
if (do_wide)
printf (_(" Offset Info Type Symbol's Value Symbol's Name + Addend\n"));
@@ -2036,18 +2285,16 @@ dump_relocations (Filedata * filedata,
type = get_reloc_type (filedata, inf);
symtab_index = get_reloc_symindex (inf);
- if (is_32bit_elf)
+ if (dump_reloc)
{
- printf ("%8.8lx %8.8lx ",
- (unsigned long) offset & 0xffffffff,
- (unsigned long) inf & 0xffffffff);
- }
- else
- {
- printf (do_wide
- ? "%16.16" PRIx64 " %16.16" PRIx64 " "
- : "%12.12" PRIx64 " %12.12" PRIx64 " ",
- offset, inf);
+ if (is_32bit_elf)
+ printf ("%8.8" PRIx32 " %8.8" PRIx32 " ",
+ (uint32_t) offset, (uint32_t) inf);
+ else
+ printf (do_wide
+ ? "%16.16" PRIx64 " %16.16" PRIx64 " "
+ : "%12.12" PRIx64 " %12.12" PRIx64 " ",
+ offset, inf);
}
switch (filedata->file_header.e_machine)
@@ -2397,10 +2644,15 @@ dump_relocations (Filedata * filedata,
break;
}
- if (rtype == NULL)
- printf (_("unrecognized: %-7lx"), (unsigned long) type & 0xffffffff);
- else
- printf (do_wide ? "%-22s" : "%-17.17s", rtype);
+ char *symbol_name = NULL;
+ if (dump_reloc)
+ {
+ if (rtype == NULL)
+ printf (_("unrecognized: %-7lx"),
+ (unsigned long) type & 0xffffffff);
+ else
+ printf (do_wide ? "%-22s" : "%-17.17s", rtype);
+ }
if (filedata->file_header.e_machine == EM_ALPHA
&& rtype != NULL
@@ -2419,23 +2671,29 @@ dump_relocations (Filedata * filedata,
default: rtype = NULL;
}
- if (rtype)
- printf (" (%s)", rtype);
- else
+ if (dump_reloc)
{
- putchar (' ');
- printf (_("<unknown addend: %" PRIx64 ">"),
- rels[i].r_addend);
- res = false;
+ if (rtype)
+ printf (" (%s)", rtype);
+ else
+ {
+ putchar (' ');
+ printf (_("<unknown addend: %" PRIx64 ">"),
+ rels[i].r_addend);
+ res = false;
+ }
}
}
else if (symtab_index)
{
if (symtab == NULL || symtab_index >= nsyms)
{
- error (_(" bad symbol index: %08lx in reloc\n"),
- (unsigned long) symtab_index);
- res = false;
+ if (dump_reloc)
+ {
+ error (_(" bad symbol index: %08lx in reloc\n"),
+ (unsigned long) symtab_index);
+ res = false;
+ }
}
else
{
@@ -2454,7 +2712,8 @@ dump_relocations (Filedata * filedata,
&sym_info,
&vna_other);
- printf (" ");
+ if (dump_reloc)
+ printf (" ");
if (ELF_ST_TYPE (psym->st_info) == STT_GNU_IFUNC)
{
@@ -2479,13 +2738,30 @@ dump_relocations (Filedata * filedata,
else
name = strtab + psym->st_name;
- len = print_symbol_name (width, name);
- if (version_string)
- printf (sym_info == symbol_public ? "@@%s" : "@%s",
- version_string);
- printf ("()%-*s", len <= width ? (width + 1) - len : 1, " ");
+ if (do_got_section_contents)
+ {
+ if (version_string)
+ symbol_name = concat (name,
+ sym_info == symbol_public
+ ? "@@" : "@",
+ version_string, NULL);
+ else
+ symbol_name = xstrdup (name);
+ }
+
+ if (dump_reloc)
+ {
+ len = print_symbol_name (width, name);
+ if (version_string)
+ printf (sym_info == symbol_public
+ ? "@@%s" : "@%s",
+ version_string);
+ printf ("()%-*s",
+ len <= width ? (width + 1) - len : 1,
+ " ");
+ }
}
- else
+ else if (dump_reloc)
{
print_vma (psym->st_value, LONG_HEX);
@@ -2500,25 +2776,49 @@ dump_relocations (Filedata * filedata,
sec_name = printable_section_name_from_index
(filedata, psym->st_shndx, NULL);
- print_symbol_name (22, sec_name);
+ if (do_got_section_contents)
+ symbol_name = xstrdup (sec_name);
+ if (dump_reloc)
+ print_symbol_name (22, sec_name);
}
else if (strtab == NULL)
- printf (_("<string table index: %3ld>"), psym->st_name);
+ {
+ if (dump_reloc)
+ printf (_("<string table index: %3ld>"),
+ psym->st_name);
+ }
else if (psym->st_name >= strtablen)
{
- error (_("<corrupt string table index: %3ld>\n"),
- psym->st_name);
- res = false;
+ if (dump_reloc)
+ {
+ error (_("<corrupt string table index: %3ld>\n"),
+ psym->st_name);
+ res = false;
+ }
}
else
{
- print_symbol_name (22, strtab + psym->st_name);
- if (version_string)
- printf (sym_info == symbol_public ? "@@%s" : "@%s",
- version_string);
+ if (dump_reloc)
+ {
+ print_symbol_name (22, strtab + psym->st_name);
+ if (version_string)
+ printf (sym_info == symbol_public
+ ? "@@%s" : "@%s",
+ version_string);
+ }
+ if (do_got_section_contents)
+ {
+ if (version_string)
+ symbol_name = concat (strtab + psym->st_name,
+ sym_info == symbol_public
+ ? "@@" : "@",
+ version_string, NULL);
+ else
+ symbol_name = xstrdup (strtab + psym->st_name);
+ }
}
- if (rel_type == reltype_rela)
+ if (dump_reloc && rel_type == reltype_rela)
{
uint64_t off = rels[i].r_addend;
@@ -2529,7 +2829,7 @@ dump_relocations (Filedata * filedata,
}
}
}
- else if (rel_type == reltype_rela)
+ else if (dump_reloc && rel_type == reltype_rela)
{
uint64_t off = rels[i].r_addend;
@@ -2540,37 +2840,50 @@ dump_relocations (Filedata * filedata,
printf ("%" PRIx64, off);
}
- if (filedata->file_header.e_machine == EM_SPARCV9
- && rtype != NULL
- && streq (rtype, "R_SPARC_OLO10"))
- printf (" + %" PRIx64, ELF64_R_TYPE_DATA (inf));
-
- putchar ('\n');
+ if (do_got_section_contents)
+ {
+ all_relocations[i].r_offset = offset;
+ all_relocations[i].r_name = rtype;
+ all_relocations[i].r_symbol = symbol_name;
+ all_relocations[i].r_addend = rels[i].r_addend;
+ all_relocations[i].r_type = rel_type;
+ }
- if (! is_32bit_elf && filedata->file_header.e_machine == EM_MIPS)
+ if (dump_reloc)
{
- uint64_t type2 = ELF64_MIPS_R_TYPE2 (inf);
- uint64_t type3 = ELF64_MIPS_R_TYPE3 (inf);
- const char * rtype2 = elf_mips_reloc_type (type2);
- const char * rtype3 = elf_mips_reloc_type (type3);
+ if (filedata->file_header.e_machine == EM_SPARCV9
+ && rtype != NULL
+ && streq (rtype, "R_SPARC_OLO10"))
+ printf (" + %" PRIx64, ELF64_R_TYPE_DATA (inf));
- printf (" Type2: ");
+ putchar ('\n');
- if (rtype2 == NULL)
- printf (_("unrecognized: %-7lx"),
- (unsigned long) type2 & 0xffffffff);
- else
- printf ("%-17.17s", rtype2);
+ if (! is_32bit_elf
+ && filedata->file_header.e_machine == EM_MIPS)
+ {
+ uint64_t type2 = ELF64_MIPS_R_TYPE2 (inf);
+ uint64_t type3 = ELF64_MIPS_R_TYPE3 (inf);
+ const char * rtype2 = elf_mips_reloc_type (type2);
+ const char * rtype3 = elf_mips_reloc_type (type3);
- printf ("\n Type3: ");
+ printf (" Type2: ");
- if (rtype3 == NULL)
- printf (_("unrecognized: %-7lx"),
- (unsigned long) type3 & 0xffffffff);
- else
- printf ("%-17.17s", rtype3);
+ if (rtype2 == NULL)
+ printf (_("unrecognized: %-7lx"),
+ (unsigned long) type2 & 0xffffffff);
+ else
+ printf ("%-17.17s", rtype2);
- putchar ('\n');
+ printf ("\n Type3: ");
+
+ if (rtype3 == NULL)
+ printf (_("unrecognized: %-7lx"),
+ (unsigned long) type3 & 0xffffffff);
+ else
+ printf ("%-17.17s", rtype3);
+
+ putchar ('\n');
+ }
}
}
@@ -2769,26 +3082,50 @@ get_solaris_section_type (unsigned long type)
{
switch (type)
{
- case 0x6fffffee: return "SUNW_ancillary";
- case 0x6fffffef: return "SUNW_capchain";
- case 0x6ffffff0: return "SUNW_capinfo";
- case 0x6ffffff1: return "SUNW_symsort";
- case 0x6ffffff2: return "SUNW_tlssort";
- case 0x6ffffff3: return "SUNW_LDYNSYM";
- case 0x6ffffff4: return "SUNW_dof";
- case 0x6ffffff5: return "SUNW_cap";
- case 0x6ffffff6: return "SUNW_SIGNATURE";
- case 0x6ffffff7: return "SUNW_ANNOTATE";
- case 0x6ffffff8: return "SUNW_DEBUGSTR";
- case 0x6ffffff9: return "SUNW_DEBUG";
- case 0x6ffffffa: return "SUNW_move";
- case 0x6ffffffb: return "SUNW_COMDAT";
- case 0x6ffffffc: return "SUNW_syminfo";
- case 0x6ffffffd: return "SUNW_verdef";
- case 0x6ffffffe: return "SUNW_verneed";
- case 0x6fffffff: return "SUNW_versym";
- case 0x70000000: return "SPARC_GOTDATA";
- default: return NULL;
+ case SHT_SUNW_symtabnsort:
+ return "SUNW_symtabnsort";
+ case SHT_SUNW_ancillary:
+ return "SUNW_ancillary";
+ case SHT_SUNW_phname:
+ return "SUNW_phname";
+ case SHT_SUNW_capchain:
+ return "SUNW_capchain";
+ case SHT_SUNW_capinfo:
+ return "SUNW_capinfo";
+ case SHT_SUNW_symsort:
+ return "SUNW_symsort";
+ case SHT_SUNW_tlssort:
+ return "SUNW_tlssort";
+ case SHT_SUNW_LDYNSYM:
+ return "SUNW_LDYNSYM";
+ case SHT_SUNW_dof:
+ return "SUNW_dof";
+ case SHT_SUNW_cap:
+ return "SUNW_cap";
+ case SHT_SUNW_SIGNATURE:
+ return "SUNW_SIGNATURE";
+ case SHT_SUNW_ANNOTATE:
+ return "SUNW_ANNOTATE";
+ case SHT_SUNW_DEBUGSTR:
+ return "SUNW_DEBUGSTR";
+ case SHT_SUNW_DEBUG:
+ return "SUNW_DEBUG";
+ case SHT_SUNW_move:
+ return "SUNW_move";
+ case SHT_SUNW_COMDAT:
+ return "SUNW_COMDAT";
+ case SHT_SUNW_syminfo:
+ return "SUNW_syminfo";
+ case SHT_SUNW_verdef:
+ return "SUNW_verdef";
+ case SHT_SUNW_verneed:
+ return "SUNW_verneed";
+ case SHT_SUNW_versym:
+ return "SUNW_versym";
+ case 0x70000000:
+ return "SPARC_GOTDATA";
+ default:
+ return NULL;
}
}
@@ -6098,7 +6435,8 @@ enum long_option_values
OPTION_NO_RECURSE_LIMIT,
OPTION_NO_DEMANGLING,
OPTION_NO_EXTRA_SYM_INFO,
- OPTION_SYM_BASE
+ OPTION_SYM_BASE,
+ OPTION_GOT_CONTENTS
};
static struct option options[] =
@@ -6161,6 +6499,7 @@ static struct option options[] =
#endif
{"sframe", optional_argument, 0, OPTION_SFRAME_DUMP},
{"sym-base", optional_argument, 0, OPTION_SYM_BASE},
+ {"got-contents", no_argument, 0, OPTION_GOT_CONTENTS},
{0, no_argument, 0, 0}
};
@@ -6172,7 +6511,7 @@ usage (FILE * stream)
fprintf (stream, _(" Display information about the contents of ELF format files\n"));
fprintf (stream, _(" Options are:\n"));
fprintf (stream, _("\
- -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"));
+ -a --all Equivalent to: -h -l -S -s -r -d -V -A -I --got-contents\n"));
fprintf (stream, _("\
-h --file-header Display the ELF file header\n"));
fprintf (stream, _("\
@@ -6318,6 +6657,8 @@ usage (FILE * stream)
fprintf (stream, _("\
-I --histogram Display histogram of bucket list lengths\n"));
fprintf (stream, _("\
+ --got-contents Display GOT section contents\n"));
+ fprintf (stream, _("\
-W --wide Allow output width to exceed 80 characters\n"));
fprintf (stream, _("\
-T --silent-truncation If a symbol name is truncated, do not add [...] suffix\n"));
@@ -6442,6 +6783,7 @@ parse_args (struct dump_data *dumpdata, int argc, char ** argv)
do_histogram = true;
do_arch = true;
do_notes = true;
+ do_got_section_contents = true;
break;
case 'g':
@@ -6701,6 +7043,11 @@ parse_args (struct dump_data *dumpdata, int argc, char ** argv)
}
break;
+ case OPTION_GOT_CONTENTS:
+ do_got_section_contents = true;
+ do_dump = true;
+ break;
+
default:
/* xgettext:c-format */
error (_("Invalid option '-%c'\n"), c);
@@ -9438,7 +9785,8 @@ rel_type_from_sh_type (unsigned int sh_type)
static bool
display_relocations (Elf_Internal_Shdr * section,
- Filedata * filedata)
+ Filedata * filedata,
+ bool dump_reloc)
{
relocation_type rel_type = rel_type_from_sh_type (section->sh_type);
@@ -9450,19 +9798,24 @@ display_relocations (Elf_Internal_Shdr * section,
if (rel_size == 0)
return false;
- if (filedata->is_separate)
- printf (_("\nIn linked file '%s' relocation section "),
- printable_string (filedata->file_name, 0));
- else
- printf (_("\nRelocation section "));
+ if (dump_reloc)
+ {
+ if (filedata->is_separate)
+ printf (_("\nIn linked file '%s' relocation section "),
+ printable_string (filedata->file_name, 0));
+ else
+ printf (_("\nRelocation section "));
- if (filedata->string_table == NULL)
- printf ("%d", section->sh_name);
- else
- printf ("'%s'", printable_section_name (filedata, section));
+ if (filedata->string_table == NULL)
+ printf ("%d", section->sh_name);
+ else
+ printf ("'%s'", printable_section_name (filedata, section));
+ }
- uint64_t num_rela = rel_size / section->sh_entsize;
uint64_t rel_offset = section->sh_offset;
+ uint64_t num_rela = rel_size / section->sh_entsize;
+ uint64_t num_reloc;
+ uint64_t *relrs = NULL;
if (rel_type == reltype_relr)
{
@@ -9471,26 +9824,33 @@ display_relocations (Elf_Internal_Shdr * section,
the number of words in the compressed RELR format. So also provide
the number of locations affected. */
- uint64_t num_reloc = count_relr_relocations (filedata, section);
+ num_reloc = count_relr_relocations (filedata, section, &relrs);
- printf (_(" at offset %#" PRIx64), rel_offset);
- printf (ngettext (" contains %" PRIu64 " entry which relocates",
- " contains %" PRIu64 " entries which relocate",
- num_rela), num_rela);
- printf (ngettext (" %" PRIu64 " location:\n",
- " %" PRIu64 " locations:\n",
- num_reloc), num_reloc);
+ if (dump_reloc)
+ {
+ printf (_(" at offset %#" PRIx64), rel_offset);
+ printf (ngettext (" contains %" PRIu64 " entry which relocates",
+ " contains %" PRIu64 " entries which relocate",
+ num_rela), num_rela);
+ printf (ngettext (" %" PRIu64 " location:\n",
+ " %" PRIu64 " locations:\n",
+ num_reloc), num_reloc);
+ }
}
else
{
- printf (ngettext (" at offset %#" PRIx64
- " contains %" PRIu64 " entry:\n",
- " at offset %#" PRIx64
- " contains %" PRIu64 " entries:\n",
- num_rela),
- rel_offset, num_rela);
+ num_reloc = num_rela;
+ if (dump_reloc)
+ printf (ngettext (" at offset %#" PRIx64
+ " contains %" PRIu64 " entry:\n",
+ " at offset %#" PRIx64
+ " contains %" PRIu64 " entries:\n",
+ num_rela),
+ rel_offset, num_rela);
}
+ update_all_relocations (num_reloc);
+
Elf_Internal_Shdr * symsec;
Elf_Internal_Sym * symtab = NULL;
uint64_t nsyms = 0;
@@ -9512,22 +9872,38 @@ display_relocations (Elf_Internal_Shdr * section,
if (symsec->sh_type != SHT_SYMTAB
&& symsec->sh_type != SHT_DYNSYM)
- return false;
+ {
+ free (relrs);
+ return false;
+ }
}
if (symsec != NULL
&& !get_symtab (filedata, symsec, &symtab, &nsyms, &strtab, &strtablen))
- return false;
+ {
+ free (relrs);
+ return false;
+ }
bool res;
if (rel_type == reltype_relr)
- res = dump_relr_relocations (filedata, section, symtab, nsyms, strtab, strtablen);
+ {
+ res = dump_relr_relocations (filedata, section->sh_size,
+ section->sh_entsize,
+ section->sh_offset,
+ relrs,
+ symtab, nsyms, strtab, strtablen,
+ dump_reloc);
+ free (relrs);
+ }
else
res = dump_relocations (filedata, rel_offset, rel_size,
symtab, nsyms, strtab, strtablen,
rel_type,
- symsec == NULL ? false : symsec->sh_type == SHT_DYNSYM);
+ symsec == NULL
+ ? false : symsec->sh_type == SHT_DYNSYM,
+ dump_reloc);
free (strtab);
free (symtab);
@@ -9541,14 +9917,16 @@ process_relocs (Filedata * filedata)
{
uint64_t rel_size;
uint64_t rel_offset;
+ unsigned int rel_entsz;
- if (!do_reloc)
+ if (!do_reloc && !do_got_section_contents)
return true;
if (do_using_dynamic)
{
relocation_type rel_type;
const char * name;
+ const char * entsz_name;
bool has_dynamic_reloc;
unsigned int i;
@@ -9556,57 +9934,104 @@ process_relocs (Filedata * filedata)
for (i = 0; i < ARRAY_SIZE (dynamic_relocations); i++)
{
+ rel_size = filedata->dynamic_info[dynamic_relocations [i].size];
+
+ if (!rel_size)
+ continue;
+
+ has_dynamic_reloc = true;
+
rel_type = dynamic_relocations [i].rel_type;
name = dynamic_relocations [i].name;
- rel_size = filedata->dynamic_info[dynamic_relocations [i].size];
rel_offset = filedata->dynamic_info[dynamic_relocations [i].reloc];
- if (rel_size)
- has_dynamic_reloc = true;
-
if (rel_type == reltype_unknown)
{
- if (dynamic_relocations [i].reloc == DT_JMPREL)
- switch (filedata->dynamic_info[DT_PLTREL])
- {
- case DT_REL:
- rel_type = reltype_rel;
- break;
- case DT_RELA:
- rel_type = reltype_rela;
- break;
- }
+ if (dynamic_relocations [i].reloc != DT_JMPREL)
+ abort ();
+ switch (filedata->dynamic_info[DT_PLTREL])
+ {
+ case DT_REL:
+ rel_type = reltype_rel;
+ break;
+ case DT_RELA:
+ rel_type = reltype_rela;
+ break;
+ }
+ }
+
+ switch (rel_type)
+ {
+ default:
+ abort ();
+ case reltype_rel:
+ rel_entsz = filedata->dynamic_info[DT_RELENT];
+ entsz_name = "DT_RELENT";
+ break;
+ case reltype_rela:
+ rel_entsz = filedata->dynamic_info[DT_RELAENT];
+ entsz_name = "DT_RELAENT";
+ break;
+ case reltype_relr:
+ rel_entsz = filedata->dynamic_info[DT_RELRENT];
+ entsz_name = "DT_RELRENT";
+ break;
}
- if (rel_size)
+ if (do_reloc)
{
if (filedata->is_separate)
printf
- (_("\nIn linked file '%s' section '%s' at offset %#" PRIx64
- " contains %" PRId64 " bytes:\n"),
+ (_("\nIn linked file '%s' section '%s' at offset"
+ "%#" PRIx64 " contains %" PRId64 " bytes:\n"),
filedata->file_name, name, rel_offset, rel_size);
else
printf
(_("\n'%s' relocation section at offset %#" PRIx64
" contains %" PRId64 " bytes:\n"),
name, rel_offset, rel_size);
+ }
+
+ if (rel_type == reltype_relr)
+ dump_relr_relocations (filedata,
+ filedata->dynamic_info[DT_RELRSZ],
+ filedata->dynamic_info[DT_RELRENT],
+ filedata->dynamic_info[DT_RELR],
+ NULL,
+ filedata->dynamic_symbols,
+ filedata->num_dynamic_syms,
+ filedata->dynamic_strings,
+ filedata->dynamic_strings_length,
+ do_reloc);
+ else
+ {
+ if (rel_entsz == 0)
+ {
+ printf (_("<missing or corrupt dynamic tag: %s>\n"),
+ entsz_name);
+ continue;
+ }
+
+ update_all_relocations (rel_size / rel_entsz);
dump_relocations (filedata,
- offset_from_vma (filedata, rel_offset, rel_size),
+ offset_from_vma (filedata, rel_offset,
+ rel_size),
rel_size,
filedata->dynamic_symbols,
filedata->num_dynamic_syms,
filedata->dynamic_strings,
filedata->dynamic_strings_length,
- rel_type, true /* is_dynamic */);
+ rel_type, true /* is_dynamic */,
+ do_reloc);
}
}
- if (is_ia64_vms (filedata))
- if (process_ia64_vms_dynamic_relocs (filedata))
- has_dynamic_reloc = true;
+ if (is_ia64_vms (filedata)
+ && process_ia64_vms_dynamic_relocs (filedata))
+ has_dynamic_reloc = true;
- if (! has_dynamic_reloc)
+ if (do_reloc && ! has_dynamic_reloc)
{
if (filedata->is_separate)
printf (_("\nThere are no dynamic relocations in linked file '%s'.\n"),
@@ -9625,11 +10050,11 @@ process_relocs (Filedata * filedata)
i < filedata->file_header.e_shnum;
i++, section++)
{
- if (display_relocations (section, filedata))
+ if (display_relocations (section, filedata, do_reloc))
found = true;
}
- if (! found)
+ if (do_reloc && ! found)
{
/* Users sometimes forget the -D option, so try to be helpful. */
for (i = 0; i < ARRAY_SIZE (dynamic_relocations); i++)
@@ -17613,7 +18038,7 @@ process_section_contents (Filedata * filedata)
case SHT_RELA:
case SHT_REL:
case SHT_RELR:
- res &= display_relocations (section, filedata);
+ res &= display_relocations (section, filedata, true);
break;
case SHT_NOTE:
@@ -19630,8 +20055,11 @@ get_mips_reg_size (int reg_size)
: -1;
}
+/* If DUMP_GOT is true, display only the GOT related contents.
+ Otherwise, display all MIPS specific information. */
+
static bool
-process_mips_specific (Filedata * filedata)
+process_mips_specific (Filedata * filedata, bool dump_got)
{
Elf_Internal_Dyn * entry;
Elf_Internal_Shdr *sect = NULL;
@@ -19650,60 +20078,63 @@ process_mips_specific (Filedata * filedata)
uint64_t symtabno = 0;
bool res = true;
- if (! process_attributes (filedata, NULL, SHT_GNU_ATTRIBUTES, NULL,
- display_mips_gnu_attribute))
- res = false;
-
- sect = find_section (filedata, ".MIPS.abiflags");
-
- if (sect != NULL)
+ if (!dump_got)
{
- Elf_External_ABIFlags_v0 *abiflags_ext;
- Elf_Internal_ABIFlags_v0 abiflags_in;
+ if (! process_attributes (filedata, NULL, SHT_GNU_ATTRIBUTES, NULL,
+ display_mips_gnu_attribute))
+ res = false;
- if (sizeof (Elf_External_ABIFlags_v0) != sect->sh_size)
- {
- error (_("Corrupt MIPS ABI Flags section.\n"));
- res = false;
- }
- else
+ sect = find_section (filedata, ".MIPS.abiflags");
+
+ if (sect != NULL)
{
- abiflags_ext = get_data (NULL, filedata, sect->sh_offset, 1,
- sect->sh_size, _("MIPS ABI Flags section"));
- if (abiflags_ext)
+ Elf_External_ABIFlags_v0 *abiflags_ext;
+ Elf_Internal_ABIFlags_v0 abiflags_in;
+
+ if (sizeof (Elf_External_ABIFlags_v0) != sect->sh_size)
{
- abiflags_in.version = BYTE_GET (abiflags_ext->version);
- abiflags_in.isa_level = BYTE_GET (abiflags_ext->isa_level);
- abiflags_in.isa_rev = BYTE_GET (abiflags_ext->isa_rev);
- abiflags_in.gpr_size = BYTE_GET (abiflags_ext->gpr_size);
- abiflags_in.cpr1_size = BYTE_GET (abiflags_ext->cpr1_size);
- abiflags_in.cpr2_size = BYTE_GET (abiflags_ext->cpr2_size);
- abiflags_in.fp_abi = BYTE_GET (abiflags_ext->fp_abi);
- abiflags_in.isa_ext = BYTE_GET (abiflags_ext->isa_ext);
- abiflags_in.ases = BYTE_GET (abiflags_ext->ases);
- abiflags_in.flags1 = BYTE_GET (abiflags_ext->flags1);
- abiflags_in.flags2 = BYTE_GET (abiflags_ext->flags2);
-
- printf ("\nMIPS ABI Flags Version: %d\n", abiflags_in.version);
- printf ("\nISA: MIPS%d", abiflags_in.isa_level);
- if (abiflags_in.isa_rev > 1)
- printf ("r%d", abiflags_in.isa_rev);
- printf ("\nGPR size: %d",
- get_mips_reg_size (abiflags_in.gpr_size));
- printf ("\nCPR1 size: %d",
- get_mips_reg_size (abiflags_in.cpr1_size));
- printf ("\nCPR2 size: %d",
- get_mips_reg_size (abiflags_in.cpr2_size));
- fputs ("\nFP ABI: ", stdout);
- print_mips_fp_abi_value (abiflags_in.fp_abi);
- fputs ("ISA Extension: ", stdout);
- print_mips_isa_ext (abiflags_in.isa_ext);
- fputs ("\nASEs:", stdout);
- print_mips_ases (abiflags_in.ases);
- printf ("\nFLAGS 1: %8.8lx", abiflags_in.flags1);
- printf ("\nFLAGS 2: %8.8lx", abiflags_in.flags2);
- fputc ('\n', stdout);
- free (abiflags_ext);
+ error (_("Corrupt MIPS ABI Flags section.\n"));
+ res = false;
+ }
+ else
+ {
+ abiflags_ext = get_data (NULL, filedata, sect->sh_offset, 1,
+ sect->sh_size, _("MIPS ABI Flags section"));
+ if (abiflags_ext)
+ {
+ abiflags_in.version = BYTE_GET (abiflags_ext->version);
+ abiflags_in.isa_level = BYTE_GET (abiflags_ext->isa_level);
+ abiflags_in.isa_rev = BYTE_GET (abiflags_ext->isa_rev);
+ abiflags_in.gpr_size = BYTE_GET (abiflags_ext->gpr_size);
+ abiflags_in.cpr1_size = BYTE_GET (abiflags_ext->cpr1_size);
+ abiflags_in.cpr2_size = BYTE_GET (abiflags_ext->cpr2_size);
+ abiflags_in.fp_abi = BYTE_GET (abiflags_ext->fp_abi);
+ abiflags_in.isa_ext = BYTE_GET (abiflags_ext->isa_ext);
+ abiflags_in.ases = BYTE_GET (abiflags_ext->ases);
+ abiflags_in.flags1 = BYTE_GET (abiflags_ext->flags1);
+ abiflags_in.flags2 = BYTE_GET (abiflags_ext->flags2);
+
+ printf ("\nMIPS ABI Flags Version: %d\n", abiflags_in.version);
+ printf ("\nISA: MIPS%d", abiflags_in.isa_level);
+ if (abiflags_in.isa_rev > 1)
+ printf ("r%d", abiflags_in.isa_rev);
+ printf ("\nGPR size: %d",
+ get_mips_reg_size (abiflags_in.gpr_size));
+ printf ("\nCPR1 size: %d",
+ get_mips_reg_size (abiflags_in.cpr1_size));
+ printf ("\nCPR2 size: %d",
+ get_mips_reg_size (abiflags_in.cpr2_size));
+ fputs ("\nFP ABI: ", stdout);
+ print_mips_fp_abi_value (abiflags_in.fp_abi);
+ fputs ("ISA Extension: ", stdout);
+ print_mips_isa_ext (abiflags_in.isa_ext);
+ fputs ("\nASEs:", stdout);
+ print_mips_ases (abiflags_in.ases);
+ printf ("\nFLAGS 1: %8.8lx", abiflags_in.flags1);
+ printf ("\nFLAGS 2: %8.8lx", abiflags_in.flags2);
+ fputc ('\n', stdout);
+ free (abiflags_ext);
+ }
}
}
}
@@ -19851,7 +20282,7 @@ process_mips_specific (Filedata * filedata)
break;
}
- if (liblist_offset != 0 && liblistno != 0 && do_dynamic)
+ if (!dump_got && liblist_offset != 0 && liblistno != 0 && do_dynamic)
{
Elf32_External_Lib * elib;
size_t cnt;
@@ -19936,7 +20367,7 @@ process_mips_specific (Filedata * filedata)
res = false;
}
- if (options_offset != 0)
+ if (!dump_got && options_offset != 0)
{
Elf_External_Options * eopt;
size_t offset;
@@ -20185,7 +20616,7 @@ process_mips_specific (Filedata * filedata)
res = false;
}
- if (conflicts_offset != 0 && conflictsno != 0)
+ if (!dump_got && conflicts_offset != 0 && conflictsno != 0)
{
Elf32_Conflict * iconf;
size_t cnt;
@@ -20544,6 +20975,248 @@ process_nds32_specific (Filedata * filedata)
return true;
}
+static int
+elf_relocation_cmp (const void *p, const void *q)
+{
+ const elf_relocation *rp = (const elf_relocation *) p;
+ const elf_relocation *rq = (const elf_relocation *) q;
+
+ return (rp->r_offset > rq->r_offset
+ ? 1
+ : (rp->r_offset < rq->r_offset ? -1 : 0));
+}
+
+static void
+display_elf_relocation_at (uint64_t offset, uint64_t g)
+{
+ bool matched = false;
+
+ for (size_t i = 0; i < all_relocations_count; i++)
+ if (all_relocations_root[i].r_offset == offset)
+ {
+ if (do_wide)
+ printf (" %-22s", all_relocations_root[i].r_name);
+ else
+ printf (" %-17.17s", all_relocations_root[i].r_name);
+
+ uint64_t off;
+ switch (all_relocations_root[i].r_type)
+ {
+ default:
+ abort ();
+ case reltype_rel:
+ case reltype_relr:
+ off = g;
+ break;
+ case reltype_rela:
+ off = all_relocations_root[i].r_addend;
+ break;
+ }
+
+ if (all_relocations_root[i].r_symbol)
+ {
+ printf (" %s", all_relocations_root[i].r_symbol);
+ if ((int64_t) off < 0)
+ printf (" - %" PRIx64, -off);
+ else
+ printf (" + %" PRIx64, off);
+ }
+ else
+ {
+ if ((int64_t) off < 0)
+ printf (" -%" PRIx64, -off);
+ else
+ printf (" %" PRIx64, off);
+ }
+
+ matched = true;
+ break;
+ }
+ else if (all_relocations_root[i].r_offset > offset)
+ break;
+
+ if (!matched)
+ {
+ if (do_wide)
+ printf ("%*c", 24, ' ');
+ else
+ printf ("%*c", 19, ' ');
+ printf ("%" PRIx64, g);
+ }
+}
+
+static bool
+process_got_section_contents (Filedata * filedata)
+{
+ Elf_Internal_Shdr * section;
+ unsigned int i;
+ uint64_t entries;
+ unsigned char *data;
+ bool res = true;
+ bool found = false;
+
+ if (!do_got_section_contents)
+ return res;
+
+ switch (filedata->file_header.e_type)
+ {
+ case ET_DYN:
+ case ET_EXEC:
+ break;
+ default:
+ goto out;
+ }
+
+ switch (filedata->file_header.e_machine)
+ {
+ case EM_MIPS:
+ case EM_MIPS_RS3_LE:
+ /* process_mips_specific also displays GOT related contents. */
+ if (!do_arch)
+ res = process_mips_specific (filedata, true);
+ found = true;
+ goto out;
+ }
+
+ if (all_relocations_count > 1)
+ qsort (all_relocations_root, all_relocations_count,
+ sizeof (elf_relocation), elf_relocation_cmp);
+
+ initialise_dumps_byname (filedata);
+
+ for (i = 0, section = filedata->section_headers;
+ i < filedata->file_header.e_shnum;
+ i++, section++)
+ if (section->sh_type == SHT_PROGBITS
+ && section->sh_size != 0)
+ {
+ const char *name = printable_section_name (filedata, section);
+
+ if (!startswith (name, ".got"))
+ continue;
+
+ found = true;
+
+ data = (unsigned char *) get_section_contents (section,
+ filedata);
+ if (data == NULL)
+ {
+ res = false;
+ goto out;
+ }
+
+ uint32_t entsz = section->sh_entsize;
+ /* NB: Gold, lld and mold set sh_entsize to 0 on .got and
+ .got.plt sections. */
+ if (entsz == 0)
+ {
+ if (is_32bit_elf)
+ switch (filedata->file_header.e_machine)
+ {
+ default:
+ entsz = 4;
+ break;
+ case EM_X86_64:
+ /* x32 uses 8 byte GOT sh_entsize. */
+ entsz = 8;
+ break;
+ }
+ else
+ entsz = 8;
+ }
+
+ entries = section->sh_size / entsz;
+ if (entries == 1)
+ printf (_("\nGlobal Offset Table '%s' contains 1 entry:\n"),
+ name);
+ else
+ printf (_("\nGlobal Offset Table '%s' contains %" PRIu64
+ " entries:\n"), name, entries);
+
+ uint64_t g;
+
+ if (is_32bit_elf)
+ {
+ uint32_t j, n = entries;
+ uint32_t addr;
+ struct got32
+ {
+ unsigned char bytes[4];
+ } *got;
+
+ if (do_wide)
+ printf (_(" Index: Address Reloc Sym. Name + Addend/Value\n"));
+ /* |---9---| |---8--| |---------22---------| |........... */
+ else
+ printf (_(" Index: Address Reloc Sym. Name + Addend/Value\n"));
+ /* |--7--| |---8--| |-------17------| |........... */
+
+ addr = section->sh_addr;
+ got = (struct got32 *) data;
+ for (j = 0; j < n; j++)
+ {
+ g = BYTE_GET (got[j].bytes);
+ if (do_wide)
+ printf ("%8" PRIu32 ": %8.8" PRIx32, j, addr);
+ else
+ printf ("%6" PRIu32 ": %8.8" PRIx32, j, addr);
+ display_elf_relocation_at (addr, g);
+ putchar ('\n');
+ addr += entsz;
+ }
+ }
+ else
+ {
+ uint64_t j, addr;
+ struct got64
+ {
+ unsigned char bytes[4];
+ } *got;
+
+ if (do_wide)
+ printf (_(" Index: Address Reloc Sym. Name + Addend/Value\n"));
+ /* |---9---| |------16------| |---------22---------| |........... */
+ else
+ printf (_(" Index: Address Reloc Sym. Name + Addend/Value\n"));
+ /* |--7--| |----12----| |------17-------| |........... */
+
+ addr = section->sh_addr;
+ got = (struct got64 *) data;
+ for (j = 0; j < entries; j++)
+ {
+ g = BYTE_GET (got[j].bytes);
+ if (do_wide)
+ printf ("%8" PRIu64 ": %16.16" PRIx64, j, addr);
+ else
+ printf ("%6" PRIu64 ": %12.12" PRIx64, j, addr);
+ display_elf_relocation_at (addr, g);
+ putchar ('\n');
+ addr += entsz;
+ }
+ }
+
+ free (data);
+ }
+
+ out:
+ if (! found)
+ {
+ if (filedata->is_separate)
+ printf (_("\nThere is no GOT section in linked file '%s'.\n"),
+ filedata->file_name);
+ else
+ printf (_("\nThere is no GOT section in this file.\n"));
+ }
+
+ for (size_t j = 0; j < all_relocations_count; j++)
+ free (all_relocations_root[j].r_symbol);
+ free (all_relocations_root);
+ all_relocations_root = NULL;
+ all_relocations = NULL;
+ all_relocations_count = 0;
+ return res;
+}
+
static bool
process_gnu_liblist (Filedata * filedata)
{
@@ -23455,7 +24128,7 @@ process_arch_specific (Filedata * filedata)
case EM_MIPS:
case EM_MIPS_RS3_LE:
- return process_mips_specific (filedata);
+ return process_mips_specific (filedata, false);
case EM_MSP430:
return process_attributes (filedata, "mspabi", SHT_MSP430_ATTRIBUTES,
@@ -23819,6 +24492,9 @@ process_object (Filedata * filedata)
if (! process_section_contents (filedata))
res = false;
+ if (! process_got_section_contents (filedata))
+ res = false;
+
if (have_separate_files)
{
separate_info * d;
diff --git a/binutils/resbin.c b/binutils/resbin.c
index fa77cd4..02905b9 100644
--- a/binutils/resbin.c
+++ b/binutils/resbin.c
@@ -1060,8 +1060,14 @@ get_version_header (windres_bfd *wrbfd, const bfd_byte *data,
*vallen = windres_get_16 (wrbfd, data + 2);
*type = windres_get_16 (wrbfd, data + 4);
- *off = 6;
+ if (*len > length)
+ {
+ non_fatal (_("version length %lu greater than resource length %lu"),
+ (unsigned long) *len, (unsigned long) length);
+ return false;
+ }
+ *off = 6;
length -= 6;
data += 6;
@@ -1101,6 +1107,14 @@ get_version_header (windres_bfd *wrbfd, const bfd_byte *data,
}
*off = (*off + 3) &~ 3;
+
+ if (*len < *off)
+ {
+ non_fatal (_("version length %lu does not cover header length %lu"),
+ (unsigned long) *len, (unsigned long) *off);
+ return false;
+ }
+
return true;
}
@@ -1120,14 +1134,6 @@ bin_to_res_version (windres_bfd *wrbfd, const bfd_byte *data,
(unichar **) NULL, &verlen, &vallen, &type, &off))
return NULL;
- /* PR 17512: The verlen field does not include padding length. */
- if (verlen > length)
- {
- non_fatal (_("version length %lu greater than resource length %lu"),
- (unsigned long) verlen, (unsigned long) length);
- return NULL;
- }
-
if (type != 0)
{
non_fatal (_("unexpected version type %d"), (int) type);
@@ -1311,7 +1317,7 @@ bin_to_res_version (windres_bfd *wrbfd, const bfd_byte *data,
if (stverlen < sverlen)
{
non_fatal (_("unexpected version string length %ld < %ld"),
- (long) verlen, (long) sverlen);
+ (long) stverlen, (long) sverlen);
return NULL;
}
stverlen -= sverlen;
diff --git a/binutils/rescoff.c b/binutils/rescoff.c
index 14546a4..efcdba4 100644
--- a/binutils/rescoff.c
+++ b/binutils/rescoff.c
@@ -308,6 +308,8 @@ read_coff_res_dir (windres_bfd *wrbfd, const bfd_byte *data,
re->subdir = 1;
re->u.dir = read_coff_res_dir (wrbfd, flaginfo->data + rva, flaginfo,
type, level + 1);
+ if (re->u.dir == NULL)
+ return NULL;
}
else
{
@@ -319,6 +321,8 @@ read_coff_res_dir (windres_bfd *wrbfd, const bfd_byte *data,
re->subdir = 0;
re->u.res = read_coff_data_entry (wrbfd, flaginfo->data + rva,
flaginfo, type);
+ if (re->u.res == NULL)
+ return NULL;
}
*pp = re;
@@ -359,6 +363,8 @@ read_coff_res_dir (windres_bfd *wrbfd, const bfd_byte *data,
re->subdir = 1;
re->u.dir = read_coff_res_dir (wrbfd, flaginfo->data + rva, flaginfo,
type, level + 1);
+ if (re->u.dir == NULL)
+ return NULL;
}
else
{
@@ -370,6 +376,8 @@ read_coff_res_dir (windres_bfd *wrbfd, const bfd_byte *data,
re->subdir = 0;
re->u.res = read_coff_data_entry (wrbfd, flaginfo->data + rva,
flaginfo, type);
+ if (re->u.res == NULL)
+ return NULL;
}
*pp = re;
diff --git a/binutils/strings.c b/binutils/strings.c
index f5c022b..38da638 100644
--- a/binutils/strings.c
+++ b/binutils/strings.c
@@ -757,8 +757,8 @@ display_utf8_char (const unsigned char * buffer)
case 4:
printf ("\\u%02x%02x%02x",
- ((buffer[0] & 0x07) << 6) | ((buffer[1] & 0x3c) >> 2),
- ((buffer[1] & 0x03) << 6) | ((buffer[2] & 0x3c) >> 2),
+ ((buffer[0] & 0x07) << 2) | ((buffer[1] & 0x30) >> 4),
+ ((buffer[1] & 0x0f) << 4) | ((buffer[2] & 0x3c) >> 2),
((buffer[2] & 0x03) << 6) | ((buffer[3] & 0x3f)));
break;
default:
diff --git a/binutils/testsuite/binutils-all/aarch64/pei-aarch64-little.d b/binutils/testsuite/binutils-all/aarch64/pei-aarch64-little.d
index 27cb6e1..22f6649 100644
--- a/binutils/testsuite/binutils-all/aarch64/pei-aarch64-little.d
+++ b/binutils/testsuite/binutils-all/aarch64/pei-aarch64-little.d
@@ -1,7 +1,7 @@
#skip: aarch64_be-*-*
#ld: -e0
#PROG: objcopy
-#objcopy: -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* -j .reloc --target=efi-app-aarch64
+#objcopy: -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* -j .reloc --output-target=efi-app-aarch64
#objdump: -h -f
#name: Check if efi app format is recognized
diff --git a/binutils/testsuite/binutils-all/ar.exp b/binutils/testsuite/binutils-all/ar.exp
index d06fe90..f38dce5 100644
--- a/binutils/testsuite/binutils-all/ar.exp
+++ b/binutils/testsuite/binutils-all/ar.exp
@@ -1013,8 +1013,8 @@ tek1.obj:
*: no symbols
tek2.obj:
-00000001 D _binary_x_end
-00000001 A _binary_x_size
+00000003 D _binary_x_end
+00000003 A _binary_x_size
00000000 D _binary_x_start
} $got] {
fail $testname
diff --git a/binutils/testsuite/binutils-all/copy-7.d b/binutils/testsuite/binutils-all/copy-7.d
new file mode 100644
index 0000000..ac8e756
--- /dev/null
+++ b/binutils/testsuite/binutils-all/copy-7.d
@@ -0,0 +1,14 @@
+#PROG: objcopy
+#readelf: -tW
+#name: copy with unknown section flag
+#warning: .*/copy-7[.].*:[.]special: warning: retaining .* 0x10000
+
+There are .* section headers, starting at offset .*
+
+Section Headers:
+ \[Nr\].*
+#...
+ \[ [1-9]\] .special
+ PROGBITS .*
+ \[0+10000\]: UNKNOWN \(0+10000\)
+#...
diff --git a/binutils/testsuite/binutils-all/copy-7.s b/binutils/testsuite/binutils-all/copy-7.s
new file mode 100644
index 0000000..0861c3c
--- /dev/null
+++ b/binutils/testsuite/binutils-all/copy-7.s
@@ -0,0 +1,7 @@
+ .globl text_symbol
+ .text
+text_symbol:
+ .nop
+
+ .section .special,"0x10000", %progbits
+ .long -1
diff --git a/binutils/testsuite/binutils-all/loongarch64/pei-loongarch64.d b/binutils/testsuite/binutils-all/loongarch64/pei-loongarch64.d
index 574b3e5..61b026d 100644
--- a/binutils/testsuite/binutils-all/loongarch64/pei-loongarch64.d
+++ b/binutils/testsuite/binutils-all/loongarch64/pei-loongarch64.d
@@ -1,6 +1,6 @@
#ld: -e0
#PROG: objcopy
-#objcopy: -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* -j .reloc --target=pei-loongarch64
+#objcopy: -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* -j .reloc --output-target=pei-loongarch64
#objdump: -h -f
#name: Check if efi app format is recognized
diff --git a/binutils/testsuite/binutils-all/nm.exp b/binutils/testsuite/binutils-all/nm.exp
index c571520..1feb857 100644
--- a/binutils/testsuite/binutils-all/nm.exp
+++ b/binutils/testsuite/binutils-all/nm.exp
@@ -304,7 +304,6 @@ if [is_elf_format] {
setup_xfail "msp430*-*-*"
setup_xfail "kvx*-*-*"
setup_xfail "visium*-*-*"
- setup_xfail "x86_64-*-cloudabi*"
set testname "nm --ifunc-chars"
if {![binutils_assemble $srcdir/$subdir/ifunc.s tmpdir/ifunc.o]} then {
@@ -330,6 +329,23 @@ if [is_elf_format] {
fail "$testname (local ifunc)"
}
+ # PR 32556
+ # Test nm --ifunc-chars=--
+
+ set got [binutils_run $NM "$NMFLAGS --ifunc-chars=-- $tmpfile"]
+
+ if [regexp -line "^\\S+ - global_foo$" $got] then {
+ pass "$testname=-- (global ifunc)"
+ } else {
+ fail "$testname=-- (global ifunc)"
+ }
+
+ if [regexp -line "^\\S+ - local_foo$" $got] then {
+ pass "$testname=-- (local ifunc)"
+ } else {
+ fail "$testname=-- (local ifunc)"
+ }
+
if { $verbose < 1 } {
remote_file host delete "tmpdir/ifunc.o"
}
diff --git a/binutils/testsuite/binutils-all/objcopy.exp b/binutils/testsuite/binutils-all/objcopy.exp
index 89370bc..b11b17e 100644
--- a/binutils/testsuite/binutils-all/objcopy.exp
+++ b/binutils/testsuite/binutils-all/objcopy.exp
@@ -1313,6 +1313,7 @@ if [is_elf_format] {
run_dump_test "group-7b"
run_dump_test "group-7c"
run_dump_test "copy-1"
+ run_dump_test "copy-7"
run_dump_test "note-1"
# Use copytest.o from the note-1 test to determine ELF32 or ELF64
if [is_elf64 tmpdir/copytest.o] {
@@ -1462,18 +1463,23 @@ proc objcopy_test_without_global_symbol { } {
global OBJDUMPFLAGS
global srcdir
global subdir
+ global CFLAGS_FOR_TARGET
set test "strip without global symbol "
- if { [target_compile $srcdir/$subdir/pr19547.c tmpdir/pr19547.o object debug] != "" } {
+ set opts "debug"
+ if [string match "*-fsanitize=*" $CFLAGS_FOR_TARGET] {
+ append opts " additional_flags=-fno-sanitize=all"
+ }
+
+ set objfile tmpdir/pr19547.o
+ if { [target_compile $srcdir/$subdir/pr19547.c $objfile object $opts] != "" } {
untested $test
return
}
if [is_remote host] {
- set objfile [remote_download host tmpdir/pr19547.o]
- } else {
- set objfile tmpdir/pr19547.o
+ set objfile [remote_download host $objfile]
}
set exec_output [binutils_run $OBJCOPY "$OBJCOPYFLAGS --strip-unneeded $objfile"]
@@ -1566,3 +1572,33 @@ if { ![is_xcoff_format] } {
}
run_dump_test "rename-section-01"
+
+proc objcopy_tek2bin {} {
+ global OBJCOPY
+ global OBJDUMP
+ global srcdir
+ global subdir
+
+ set tek $srcdir/$subdir/tek2.obj
+ set out tmpdir/tek2bin
+ if [is_remote host] {
+ set tek [remote_download host $tek]
+ set out tek2bin
+ }
+
+ set got [binutils_run $OBJCOPY "-O binary $tek $out"]
+ if ![string equal "" $got] then {
+ send_log "$got\n"
+ fail "objcopy tek2bin"
+ } else {
+ set got [binutils_run $OBJDUMP "-s -b binary $out"]
+ if {![regexp ".* 0000 000031 .*" $got]} {
+ fail "objcopy tek2bin (objdump)"
+ } else {
+ pass "objcopy tek2bin"
+ }
+ }
+ remote_file host delete $out
+}
+
+objcopy_tek2bin
diff --git a/binutils/testsuite/binutils-all/readelf.exp b/binutils/testsuite/binutils-all/readelf.exp
index 571bb99..dcb63b1 100644
--- a/binutils/testsuite/binutils-all/readelf.exp
+++ b/binutils/testsuite/binutils-all/readelf.exp
@@ -317,24 +317,21 @@ proc readelf_thin_archive_test {} {
if ![is_remote host] {
set tempfile tmpdir/bintest.o
- set templib tmpdir/bintest.thin.a
set libname tmpdir/bintest.thin.a
} else {
set tempfile [remote_download host tmpdir/bintest.o]
- set templib [remote_download host tmpdir/bintest.thin.a]
set libname bintest.thin.a
}
set testname "readelf -h bintest.thin"
+ file_on_host delete $libname
set got [binutils_run $AR "rcT $libname ${tempfile}"]
if ![string match "" $got] {
fail $testname
return
}
- readelf_test -h $templib readelf.h.thin
-
- pass $testname
+ readelf_test -h $libname readelf.h.thin
}
if ![is_remote host] {
@@ -630,7 +627,7 @@ if ![is_remote host] {
}
# First, determine the size, so specific output matchers can be used.
-readelf_find_size $tempfile 2
+readelf_find_size $tempfile 4
# Make sure that readelf can decode the contents.
readelf_test -wi $tempfile dw5-op.W
diff --git a/binutils/testsuite/binutils-all/riscv/pei-riscv64.d b/binutils/testsuite/binutils-all/riscv/pei-riscv64.d
index 189b016..4316414 100644
--- a/binutils/testsuite/binutils-all/riscv/pei-riscv64.d
+++ b/binutils/testsuite/binutils-all/riscv/pei-riscv64.d
@@ -1,7 +1,7 @@
#as: -march=rv64gc -mabi=lp64d
#ld: -m elf64lriscv -e0
#PROG: objcopy
-#objcopy: -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* -j .reloc --target=pei-riscv64-little
+#objcopy: -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* -j .reloc --output-target=pei-riscv64-little
#objdump: -h -f
#name: Check if efi app format is recognized
diff --git a/binutils/testsuite/binutils-all/tek2.obj b/binutils/testsuite/binutils-all/tek2.obj
index da696d1..a4e29af 100644
--- a/binutils/testsuite/binutils-all/tek2.obj
+++ b/binutils/testsuite/binutils-all/tek2.obj
@@ -1,6 +1,6 @@
-%47615103000000000000000000000000000000000000000000000000000000000000000
-%103E95.data11011
+%47616100000310000000000000000000000000000000000000000000000000000000000
+%103EB5.data11013
%1E3FB5.data4F_binary_x_start10
-%1C3735.data4D_binary_x_end11
-%1D3135*ABS*2E_binary_x_size11
+%1C3755.data4D_binary_x_end13
+%1D3155*ABS*2E_binary_x_size13
%0781010
diff --git a/binutils/testsuite/binutils-all/testranges-ia64.d b/binutils/testsuite/binutils-all/testranges-ia64.d
index e1e29e7..26963c9 100644
--- a/binutils/testsuite/binutils-all/testranges-ia64.d
+++ b/binutils/testsuite/binutils-all/testranges-ia64.d
@@ -1,7 +1,7 @@
#PROG: objcopy
#source: testranges-ia64.s
#readelf: -wR --wide
-#name: unordered .debug_info references to .debug_ranges
+#name: unordered .debug_info references to .debug_ranges (ia64)
#target: ia64-*-*
Contents of the .debug_ranges section:
diff --git a/binutils/testsuite/binutils-all/x86-64/x86-64.exp b/binutils/testsuite/binutils-all/x86-64/x86-64.exp
index 6d1b308..3c98b03 100644
--- a/binutils/testsuite/binutils-all/x86-64/x86-64.exp
+++ b/binutils/testsuite/binutils-all/x86-64/x86-64.exp
@@ -295,7 +295,7 @@ proc run_pr33230_test { testname obj strip_flags run_readelf } {
fail "$testname (${obj}.strip)"
return
}
- } elseif { ![regexp "Unable to recognise the format" $got] } then {
+ } elseif { ![regexp "Unable to recognise the architecture" $got] } then {
send_log "$got\n"
verbose "$got" 1
fail "$testname"
diff --git a/binutils/testsuite/lib/binutils-common.exp b/binutils/testsuite/lib/binutils-common.exp
index 7297f6d..fb12607 100644
--- a/binutils/testsuite/lib/binutils-common.exp
+++ b/binutils/testsuite/lib/binutils-common.exp
@@ -32,7 +32,6 @@ proc is_elf_format {} {
# && ![istarget *-*-windiss*]
if { ![istarget *-*-chorus*]
- && ![istarget *-*-cloudabi*]
&& ![istarget *-*-eabi*]
&& ![istarget *-*-*elf*]
&& ![istarget *-*-*freebsd*]
@@ -1175,17 +1174,17 @@ proc run_dump_test { name {extra_options {}} } {
[big_or_little_endian] opts(ld)
if { $opts(name) == "" } {
- set testname "$subdir/$name"
+ set base_testname "$subdir/$name"
} else {
- set testname $opts(name)
+ set base_testname $opts(name)
}
set err_warn 0
foreach opt { warning error warning_output error_output } {
if { $opts($opt) != "" } {
if { $err_warn } {
- perror "$testname: bad mix of warning and error test directives"
- unresolved $testname
+ perror "$base_testname: bad mix of warning and error test directives"
+ unresolved $base_testname
return
}
set err_warn 1
@@ -1224,19 +1223,19 @@ proc run_dump_test { name {extra_options {}} } {
}
}
if { $targmatch == 0 } {
- unsupported $testname
+ unsupported $base_testname
return
}
}
foreach targ $opts(alltargets) {
if ![match_target $targ] {
- unsupported $testname
+ unsupported $base_testname
return
}
}
foreach targ $opts(notarget) {
if [match_target $targ] {
- unsupported $testname
+ unsupported $base_testname
return
}
}
@@ -1254,7 +1253,7 @@ proc run_dump_test { name {extra_options {}} } {
size { set dumpprogram size }
default {
perror "unrecognized DUMPPROG option $opts(DUMPPROG) in $file.d"
- unresolved $testname
+ unresolved $base_testname
return
}
}
@@ -1264,7 +1263,7 @@ proc run_dump_test { name {extra_options {}} } {
if {$opts($p) != ""} {
if {$dumpprogram != ""} {
perror "ambiguous dump program in $file.d"
- unresolved $testname
+ unresolved $base_testname
return
} else {
set dumpprogram $p
@@ -1274,7 +1273,7 @@ proc run_dump_test { name {extra_options {}} } {
}
if { $dumpprogram == "" && $opts(map) == "" && !$err_warn } {
perror "dump program unspecified in $file.d"
- unresolved $testname
+ unresolved $base_testname
return
}
}
@@ -1313,7 +1312,7 @@ proc run_dump_test { name {extra_options {}} } {
if { $cmdret != 0} {
send_log "compilation of $cfile failed, exit status $cmdret with <$comp_output>"
# Should this be 'unresolved', or is that too silent?
- fail $testname
+ fail $base_testname
return 0
}
}
@@ -1356,6 +1355,11 @@ proc run_dump_test { name {extra_options {}} } {
}
foreach as_flags $as_final_flags {
+ if { [llength $as_final_flags] > 1 } {
+ set testname [concat $base_testname $as_flags]
+ } else {
+ set testname $base_testname
+ }
# Assemble each file.
set objfiles {}
for { set i 0 } { $i < [llength $sourcefiles] } { incr i } {
diff --git a/config/clang-plugin.m4 b/config/clang-plugin.m4
new file mode 100644
index 0000000..ce7307c
--- /dev/null
+++ b/config/clang-plugin.m4
@@ -0,0 +1,62 @@
+# clang-plugin.m4 -*- Autoconf -*-
+# Check clang plugin file.
+
+dnl Copyright (C) 2025 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl
+dnl
+dnl CLANG_PLUGIN_FILE
+dnl (SHELL-CODE_HANDLER)
+dnl
+AC_DEFUN([CLANG_PLUGIN_FILE],[dnl
+ AC_CACHE_CHECK([for clang], clang_cv_is_clang, [
+ AC_EGREP_CPP(yes, [
+#ifdef __clang__
+ yes
+#endif
+ ], clang_cv_is_clang=yes, clang_cv_is_clang=no)])
+ plugin_file=
+ if test $clang_cv_is_clang = yes; then
+ AC_MSG_CHECKING([for clang plugin file])
+ plugin_names="LLVMgold.so"
+ for plugin in $plugin_names; do
+ plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
+ if test x$plugin_file = x$plugin; then
+ AC_CHECK_TOOL(LLVM_CONFIG, llvm-config)
+ if test "$?" != 0; then
+ AC_MSG_ERROR([Required tool 'llvm-config' not found on PATH.])
+ fi
+ clang_lib_dir=`$LLVM_CONFIG --libdir`
+ if test -f $clang_lib_dir/$plugin; then
+ plugin_file=$clang_lib_dir/$plugin
+ fi
+ if test x$plugin_file != x$plugin; then
+ break;
+ fi
+ fi
+ done
+ if test -z $plugin_file; then
+ AC_MSG_ERROR([Couldn't find clang plugin file for $CC.])
+ fi
+ dnl Check if ${AR} $plugin_option rc works.
+ AC_CHECK_TOOL(AR, ar)
+ if test "${AR}" = "" ; then
+ AC_MSG_ERROR([Required archive tool 'ar' not found on PATH.])
+ fi
+ plugin_option="--plugin $plugin_file"
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+ AC_MSG_WARN([Failed: $AR $plugin_option rc])
+ plugin_file=
+ fi
+ rm -f conftest.*
+ AC_MSG_RESULT($plugin_file)
+ fi
+ $1="$plugin_file"
+])
diff --git a/config/dejagnu.m4 b/config/dejagnu.m4
index 0606e42..e0ed818 100644
--- a/config/dejagnu.m4
+++ b/config/dejagnu.m4
@@ -9,9 +9,9 @@ AC_DEFUN([DEJAGNU_CHECK_VERSION],
AC_MSG_CHECKING([for incompatibility between DejaGnu and GCC])
AC_MSG_RESULT([$ac_cv_dejagnu_compat])
- AC_TRY_LINK([#include <dejagnu.h>],
- [pass ("test foo");
- return 0;],
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <dejagnu.h>]],
+ [[pass ("test foo");
+ return 0;]])],
[ac_cv_dejagnu_compat=yes],
[ac_cv_dejagnu_compat=no])
AC_MSG_RESULT([$ac_cv_dejagnu_compat])
diff --git a/configure b/configure
index bbfb597..5cef196 100755
--- a/configure
+++ b/configure
@@ -621,7 +621,12 @@ GCC_FOR_TARGET
CXX_FOR_TARGET
CC_FOR_TARGET
RANLIB_PLUGIN_OPTION
+NM_PLUGIN_OPTION
AR_PLUGIN_OPTION
+LLVM_CONFIG
+EGREP
+GREP
+CPP
PKG_CONFIG_PATH
GDCFLAGS
READELF
@@ -891,6 +896,7 @@ OBJCOPY
OBJDUMP
OTOOL
READELF
+CPP
CC_FOR_TARGET
CXX_FOR_TARGET
GCC_FOR_TARGET
@@ -1690,6 +1696,7 @@ Some influential environment variables:
OBJDUMP OBJDUMP for the host
OTOOL OTOOL for the host
READELF READELF for the host
+ CPP C preprocessor
CC_FOR_TARGET
CC for the target
CXX_FOR_TARGET
@@ -1982,6 +1989,43 @@ fi
as_fn_set_status $ac_retval
} # ac_fn_c_try_link
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } > conftest.i && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
@@ -4008,10 +4052,6 @@ case "${target}" in
# always build newlib.
skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
;;
- # This is temporary until we can link against shared libraries
- powerpcle-*-solaris*)
- noconfigdirs="$noconfigdirs gdb sim tcl tk itcl"
- ;;
powerpc-*-beos*)
noconfigdirs="$noconfigdirs gdb"
;;
@@ -14108,7 +14148,529 @@ fi
GDCFLAGS=${GDCFLAGS-${CFLAGS}}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
+# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
+# wrong PLUGIN_OPTION with clang.
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if ${ac_cv_prog_CPP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
+$as_echo_n "checking for clang... " >&6; }
+if ${clang_cv_is_clang+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __clang__
+ yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ clang_cv_is_clang=yes
+else
+ clang_cv_is_clang=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
+$as_echo "$clang_cv_is_clang" >&6; }
+ plugin_file=
+ if test $clang_cv_is_clang = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
+$as_echo_n "checking for clang plugin file... " >&6; }
+ plugin_names="LLVMgold.so"
+ for plugin in $plugin_names; do
+ plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
+ if test x$plugin_file = x$plugin; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LLVM_CONFIG"; then
+ ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
+if test -n "$LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
+$as_echo "$LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LLVM_CONFIG"; then
+ ac_ct_LLVM_CONFIG=$LLVM_CONFIG
+ # Extract the first word of "llvm-config", so it can be a program name with args.
+set dummy llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LLVM_CONFIG"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
+if test -n "$ac_ct_LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
+$as_echo "$ac_ct_LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LLVM_CONFIG" = x; then
+ LLVM_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LLVM_CONFIG=$ac_ct_LLVM_CONFIG
+ fi
+else
+ LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
+fi
+
+ if test "$?" != 0; then
+ as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
+ fi
+ clang_lib_dir=`$LLVM_CONFIG --libdir`
+ if test -f $clang_lib_dir/$plugin; then
+ plugin_file=$clang_lib_dir/$plugin
+ fi
+ if test x$plugin_file != x$plugin; then
+ break;
+ fi
+ fi
+ done
+ if test -z $plugin_file; then
+ as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
+ fi
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+ if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ plugin_option="--plugin $plugin_file"
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_file=
+ fi
+ rm -f conftest.*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
+$as_echo "$plugin_file" >&6; }
+ fi
+ PLUGIN_FILE="$plugin_file"
+
+if test -n "$PLUGIN_FILE"; then
+ PLUGIN_OPTION="--plugin $PLUGIN_FILE"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
$as_echo_n "checking for -plugin option... " >&6; }
plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
@@ -14235,12 +14797,17 @@ else
$as_echo "no" >&6; }
fi
+fi
AR_PLUGIN_OPTION=
+NM_PLUGIN_OPTION=
RANLIB_PLUGIN_OPTION=
if test -n "$PLUGIN_OPTION"; then
if $AR --help 2>&1 | grep -q "\--plugin"; then
AR_PLUGIN_OPTION="$PLUGIN_OPTION"
fi
+ if $NM --help 2>&1 | grep -q "\--plugin"; then
+ NM_PLUGIN_OPTION="$PLUGIN_OPTION"
+ fi
if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
fi
@@ -14248,6 +14815,7 @@ fi
+
# Target tools.
# Check whether --with-build-time-tools was given.
diff --git a/configure.ac b/configure.ac
index f9694cd..bc9a3d4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -24,6 +24,7 @@ m4_include(config/override.m4)
m4_include(config/proginstall.m4)
m4_include(config/elf.m4)
m4_include(config/ax_cxx_compile_stdcxx.m4)
+m4_include(config/clang-plugin.m4)
m4_include(config/gcc-plugin.m4)
m4_include([libtool.m4])
m4_include([ltoptions.m4])
@@ -1230,10 +1231,6 @@ case "${target}" in
# always build newlib.
skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
;;
- # This is temporary until we can link against shared libraries
- powerpcle-*-solaris*)
- noconfigdirs="$noconfigdirs gdb sim tcl tk itcl"
- ;;
powerpc-*-beos*)
noconfigdirs="$noconfigdirs gdb"
;;
@@ -3909,18 +3906,30 @@ AC_SUBST(GDCFLAGS)
GDCFLAGS=${GDCFLAGS-${CFLAGS}}
AC_SUBST(PKG_CONFIG_PATH)
-GCC_PLUGIN_OPTION(PLUGIN_OPTION)
+# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
+# wrong PLUGIN_OPTION with clang.
+CLANG_PLUGIN_FILE(PLUGIN_FILE)
+if test -n "$PLUGIN_FILE"; then
+ PLUGIN_OPTION="--plugin $PLUGIN_FILE"
+else
+ GCC_PLUGIN_OPTION(PLUGIN_OPTION)
+fi
AR_PLUGIN_OPTION=
+NM_PLUGIN_OPTION=
RANLIB_PLUGIN_OPTION=
if test -n "$PLUGIN_OPTION"; then
if $AR --help 2>&1 | grep -q "\--plugin"; then
AR_PLUGIN_OPTION="$PLUGIN_OPTION"
fi
+ if $NM --help 2>&1 | grep -q "\--plugin"; then
+ NM_PLUGIN_OPTION="$PLUGIN_OPTION"
+ fi
if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
fi
fi
AC_SUBST(AR_PLUGIN_OPTION)
+AC_SUBST(NM_PLUGIN_OPTION)
AC_SUBST(RANLIB_PLUGIN_OPTION)
# Target tools.
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 95e8d4f..dd76915 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,28 @@
+2025-09-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * NEWS: Mention Solaris/PowerPC removal.
+
+ * configure.ac <ppc-*-solaris*>: Remove.
+ * configure: Regenerate.
+ * configure.in: Regenerate.
+ * configure.tgt <ppc-*-solaris*>: Remove.
+
+ * config/tc-ppc.c (ppc_solaris_comment_chars): Remove.
+ (ppc_eabi_comment_chars): Remove.
+ (SOLARIS_P): Remove.
+ (msolaris): Remove.
+ (md_parse_option): Remove "solaris", "no-solaris" hangling.
+ (md_show_usage): Likewise.
+ (md_begin): Remove msolaris handling.
+ * config/tc-ppc.h (ppc_comment_chars): Fix declaration.
+ * stabs.c (s_stab_generic) [TC_PPC && OBJ_ELF]: Remove 4-arg
+ .stabd support.
+
+ * doc/as.texi (Overview, Target PowerPC options): Remove
+ -msolaris, -mno-solaris.
+ * doc/c-ppc.texi (PowerPC-Opts): Remove -msolaris, -mno-solaris.
+ (PowerPC-Chars): Remove ! as line comment character.
+
2025-07-13 Nick Clifton <nickc@redhat.com>
* 2.45 Branch point.
diff --git a/gas/Makefile.in b/gas/Makefile.in
index 1f24d4a..76e633d 100644
--- a/gas/Makefile.in
+++ b/gas/Makefile.in
@@ -132,7 +132,9 @@ subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../bfd/acinclude.m4 \
$(top_srcdir)/../bfd/warning.m4 $(top_srcdir)/../config/acx.m4 \
+ $(top_srcdir)/../config/clang-plugin.m4 \
$(top_srcdir)/../config/depstand.m4 \
+ $(top_srcdir)/../config/gcc-plugin.m4 \
$(top_srcdir)/../config/gettext-sister.m4 \
$(top_srcdir)/../config/gettext.m4 \
$(top_srcdir)/../config/iconv.m4 \
@@ -419,6 +421,7 @@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
+LLVM_CONFIG = @LLVM_CONFIG@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
LTLIBINTL = @LTLIBINTL@
diff --git a/gas/NEWS b/gas/NEWS
index a985893..4de0cfb 100644
--- a/gas/NEWS
+++ b/gas/NEWS
@@ -1,7 +1,15 @@
-*- text -*-
+* ELF targets can now have section entity size specified for arbitrary
+ sections, using the new attribute letter 'E'.
+
* NaCl target support is removed.
+* Solaris/PowerPC target support is removed.
+
+* Add support for RISC-V standard extensions:
+ sdtrig v1.0, ssstrict v1.0.
+
Changes in 2.45:
* Add support to generate SFrame stack trace information (.sframe)
diff --git a/gas/aclocal.m4 b/gas/aclocal.m4
index 5f8b996..db15767 100644
--- a/gas/aclocal.m4
+++ b/gas/aclocal.m4
@@ -1188,7 +1188,9 @@ AC_SUBST([am__untar])
m4_include([../bfd/acinclude.m4])
m4_include([../bfd/warning.m4])
m4_include([../config/acx.m4])
+m4_include([../config/clang-plugin.m4])
m4_include([../config/depstand.m4])
+m4_include([../config/gcc-plugin.m4])
m4_include([../config/gettext-sister.m4])
m4_include([../config/gettext.m4])
m4_include([../config/iconv.m4])
diff --git a/gas/as.c b/gas/as.c
index 58ed0a5..efcc80d 100644
--- a/gas/as.c
+++ b/gas/as.c
@@ -113,6 +113,12 @@ int flag_use_elf_stt_common = DEFAULT_GENERATE_ELF_STT_COMMON;
bool flag_generate_build_notes = DEFAULT_GENERATE_BUILD_NOTES;
#endif
+/* If DEFAULT_SFRAME is 0 instead, flag_gen_sframe gets the default
+ enum value GEN_SFRAME_DEFAULT_NONE. */
+#if DEFAULT_SFRAME
+enum gen_sframe_option flag_gen_sframe = GEN_SFRAME_CONFIG_ENABLED;
+#endif
+
segT reg_section;
segT expr_section;
segT text_section;
@@ -312,7 +318,7 @@ Options:\n\
generate GNU Build notes if none are present in the input\n"));
fprintf (stream, _("\
--gsframe[={no|yes}] whether to generate SFrame stack trace information\n\
- (default: no)\n"));
+ (default: %s)\n"), DEFAULT_SFRAME ? "yes" : "no");
# if defined (TARGET_USE_SCFI) && defined (TARGET_USE_GINSN)
fprintf (stream, _("\
--scfi=experimental Synthesize DWARF CFI for hand-written asm\n\
diff --git a/gas/as.h b/gas/as.h
index 8f2facb..b743ba9 100644
--- a/gas/as.h
+++ b/gas/as.h
@@ -500,6 +500,7 @@ PRINTF_WHERE_LIKE (as_bad_where);
PRINTF_WHERE_LIKE (as_warn_where);
PRINTF_INDENT_LIKE (as_info_where);
+void set_identify_name (const char *);
void as_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
void signal_init (void);
int had_errors (void);
diff --git a/gas/config.in b/gas/config.in
index bb89624..d6ce237 100644
--- a/gas/config.in
+++ b/gas/config.in
@@ -60,6 +60,9 @@
/* Define default value for RISC-V -mpriv-spec */
#undef DEFAULT_RISCV_PRIV_SPEC
+/* Define to 1 if you want to emit SFrames by default. */
+#undef DEFAULT_SFRAME
+
/* Define to 1 if you want to check x86 TLS relocation by default. */
#undef DEFAULT_X86_TLS_CHECK
@@ -266,9 +269,6 @@
/* Target OS. */
#undef TARGET_OS
-/* Define if default target is PowerPC Solaris. */
-#undef TARGET_SOLARIS_COMMENT
-
/* Target vendor. */
#undef TARGET_VENDOR
diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c
index 315d08e..ccf020f 100644
--- a/gas/config/obj-elf.c
+++ b/gas/config/obj-elf.c
@@ -792,7 +792,7 @@ change_section (const char *name,
= match_p->linked_to_symbol_name;
bfd_set_section_flags (sec, flags);
- if (flags & (SEC_MERGE | SEC_STRINGS))
+ if (entsize != 0)
sec->entsize = entsize;
elf_group_name (sec) = match_p->group_name;
@@ -847,7 +847,7 @@ change_section (const char *name,
processor or application specific attribute as suspicious? */
elf_section_flags (sec) = attr;
- if ((flags & (SEC_MERGE | SEC_STRINGS))
+ if (entsize != 0
&& old_sec->entsize != (unsigned) entsize)
as_bad (_("changed section entity size for %s"), name);
}
@@ -870,8 +870,9 @@ obj_elf_change_section (const char *name,
}
static bfd_vma
-obj_elf_parse_section_letters (char *str, size_t len,
- bool *is_clone, int *inherit, bfd_vma *gnu_attr)
+obj_elf_parse_section_letters (char *str, size_t len, bool push,
+ bool *is_clone, int *inherit, bfd_vma *gnu_attr,
+ bool *has_entsize)
{
bfd_vma attr = 0;
@@ -896,6 +897,11 @@ obj_elf_parse_section_letters (char *str, size_t len,
}
}
break;
+ case 'd':
+ if (gnu_attr == NULL)
+ goto unrecognized;
+ *gnu_attr |= SHF_GNU_MBIND;
+ break;
case 'e':
attr |= SHF_EXCLUDE;
break;
@@ -908,33 +914,36 @@ obj_elf_parse_section_letters (char *str, size_t len,
case 'x':
attr |= SHF_EXECINSTR;
break;
+ case 'E':
+ *has_entsize = true;
+ break;
+ case 'G':
+ attr |= SHF_GROUP;
+ break;
case 'M':
attr |= SHF_MERGE;
break;
+ case 'R':
+ if (gnu_attr == NULL)
+ goto unrecognized;
+ *gnu_attr |= SHF_GNU_RETAIN;
+ break;
case 'S':
attr |= SHF_STRINGS;
break;
- case 'G':
- attr |= SHF_GROUP;
- break;
case 'T':
attr |= SHF_TLS;
break;
- case 'd':
- *gnu_attr |= SHF_GNU_MBIND;
- break;
- case 'R':
- *gnu_attr |= SHF_GNU_RETAIN;
- break;
case '?':
*is_clone = true;
break;
default:
+ unrecognized:
{
- const char *bad_msg = _("unrecognized .section attribute:"
- " want a,e,o,w,x,M,S,G,T or number");
+ const char *md_extra = "";
+
#ifdef md_elf_section_letter
- bfd_vma md_attr = md_elf_section_letter (*str, &bad_msg);
+ bfd_vma md_attr = md_elf_section_letter (*str, &md_extra);
if (md_attr != (bfd_vma) -1)
attr |= md_attr;
else
@@ -942,22 +951,14 @@ obj_elf_parse_section_letters (char *str, size_t len,
if (ISDIGIT (*str))
{
char * end;
- const struct elf_backend_data *bed;
bfd_vma numeric_flags = strtoul (str, &end, 0);
attr |= numeric_flags;
- bed = get_elf_backend_data (stdoutput);
-
- if (bed->elf_osabi == ELFOSABI_NONE
- || bed->elf_osabi == ELFOSABI_STANDALONE
- || bed->elf_osabi == ELFOSABI_GNU
- || bed->elf_osabi == ELFOSABI_FREEBSD)
+ if (gnu_attr != NULL)
{
/* Add flags in the SHF_MASKOS range to gnu_attr for
OSABIs that support those flags.
- Also adding the flags for ELFOSABI_{NONE,STANDALONE}
- allows them to be validated later in obj_elf_section.
We can't just always set these bits in gnu_attr for
all OSABIs, since Binutils does not recognize all
SHF_MASKOS bits for non-GNU OSABIs. It's therefore
@@ -973,10 +974,19 @@ obj_elf_parse_section_letters (char *str, size_t len,
len -= (end - str);
str = end;
}
- else if (!attr && !*gnu_attr && (*str == '+' || *str == '-'))
+ else if (!*inherit && !attr
+ && (gnu_attr == NULL || !*gnu_attr)
+ && (*str == '+' || *str == '-'))
*inherit = *str == '+' ? 1 : -1;
else
- as_fatal ("%s", bad_msg);
+ {
+ as_bad (_("unrecognized .%ssection attribute: want %s%s%s,? or number"),
+ push ? "push" : "",
+ gnu_attr != NULL ? "a,d,e,o,w,x,E,G,M,R,S,T"
+ : "a,e,o,w,x,E,G,M,S,T",
+ md_extra != NULL ? "," : "", md_extra);
+ return attr;
+ }
}
break;
}
@@ -1181,7 +1191,7 @@ obj_elf_section (int push)
bfd_vma attr;
bfd_vma gnu_attr;
int entsize;
- bool linkonce;
+ bool linkonce, has_entsize;
subsegT new_subsection = 0;
struct elf_section_match match;
unsigned long linked_to_section_index = -1UL;
@@ -1226,6 +1236,7 @@ obj_elf_section (int push)
attr = 0;
gnu_attr = 0;
entsize = 0;
+ has_entsize = false;
linkonce = 0;
if (*input_line_pointer == ',')
@@ -1261,8 +1272,17 @@ obj_elf_section (int push)
ignore_rest_of_line ();
return;
}
- attr = obj_elf_parse_section_letters (beg, strlen (beg), &is_clone,
- &inherit, &gnu_attr);
+
+ const struct elf_backend_data *bed = get_elf_backend_data (stdoutput);
+ attr = obj_elf_parse_section_letters (beg, strlen (beg), push,
+ &is_clone, &inherit,
+ bed->elf_osabi == ELFOSABI_NONE
+ || (bed->elf_osabi
+ == ELFOSABI_GNU)
+ || (bed->elf_osabi
+ == ELFOSABI_FREEBSD)
+ ? &gnu_attr : NULL,
+ &has_entsize);
if (inherit > 0)
attr |= elf_section_flags (now_seg);
@@ -1271,6 +1291,9 @@ obj_elf_section (int push)
if (inherit)
type = elf_section_type (now_seg);
+ if ((attr & (SHF_MERGE | SHF_STRINGS)) != 0)
+ has_entsize = true;
+
SKIP_WHITESPACE ();
if (*input_line_pointer == ',')
{
@@ -1310,16 +1333,18 @@ obj_elf_section (int push)
}
SKIP_WHITESPACE ();
- if ((attr & (SHF_MERGE | SHF_STRINGS)) != 0
- && *input_line_pointer == ',')
+ if (has_entsize && *input_line_pointer == ',')
{
++input_line_pointer;
SKIP_WHITESPACE ();
if (inherit && *input_line_pointer == ','
+ && ((bfd_section_flags (now_seg)
+ & (SEC_MERGE | SEC_STRINGS)) != 0
+ || now_seg->entsize))
+ goto fetch_entsize;
+ if (is_end_of_stmt (*input_line_pointer)
&& (bfd_section_flags (now_seg)
& (SEC_MERGE | SEC_STRINGS)) != 0)
- goto fetch_entsize;
- if (is_end_of_stmt (*input_line_pointer))
{
/* ??? This is here for older versions of gcc that
test for gas string merge support with
@@ -1327,7 +1352,7 @@ obj_elf_section (int push)
Unfortunately '@' begins a comment on arm.
This isn't as_warn because gcc tests with
--fatal-warnings. */
- as_tsktsk (_("missing merge / string entity size, 1 assumed"));
+ as_tsktsk (_("missing section entity size, 1 assumed"));
entsize = 1;
}
else
@@ -1336,15 +1361,17 @@ obj_elf_section (int push)
SKIP_WHITESPACE ();
if (entsize <= 0)
{
- as_warn (_("invalid merge / string entity size"));
+ as_warn (_("invalid section entity size"));
attr &= ~(SHF_MERGE | SHF_STRINGS);
+ has_entsize = false;
entsize = 0;
}
}
}
- else if ((attr & (SHF_MERGE | SHF_STRINGS)) != 0 && inherit
- && (bfd_section_flags (now_seg)
- & (SEC_MERGE | SEC_STRINGS)) != 0)
+ else if (has_entsize && inherit
+ && ((bfd_section_flags (now_seg)
+ & (SEC_MERGE | SEC_STRINGS)) != 0
+ || now_seg->entsize))
{
fetch_entsize:
entsize = now_seg->entsize;
@@ -1355,6 +1382,7 @@ obj_elf_section (int push)
entsize must be specified if SHF_MERGE is set. */
as_warn (_("entity size for SHF_MERGE not specified"));
attr &= ~(SHF_MERGE | SHF_STRINGS);
+ has_entsize = false;
}
else if ((attr & SHF_STRINGS) != 0)
{
@@ -1364,6 +1392,11 @@ obj_elf_section (int push)
compatibility. */
entsize = 1;
}
+ else if (has_entsize)
+ {
+ as_warn (_("entity size not specified"));
+ has_entsize = false;
+ }
if ((attr & (SHF_MERGE | SHF_STRINGS)) != 0 && type == SHT_NOBITS)
as_warn (_("bogus SHF_MERGE / SHF_STRINGS for SHT_NOBITS section"));
@@ -1572,28 +1605,17 @@ obj_elf_section (int push)
if ((gnu_attr & (SHF_GNU_MBIND | SHF_GNU_RETAIN)) != 0)
{
- const struct elf_backend_data *bed;
bool mbind_p = (gnu_attr & SHF_GNU_MBIND) != 0;
if (mbind_p && (attr & SHF_ALLOC) == 0)
as_bad (_("SHF_ALLOC isn't set for GNU_MBIND section: %s"), name);
- bed = get_elf_backend_data (stdoutput);
+ if (mbind_p)
+ elf_tdata (stdoutput)->has_gnu_osabi |= elf_gnu_osabi_mbind;
+ if ((gnu_attr & SHF_GNU_RETAIN) != 0)
+ elf_tdata (stdoutput)->has_gnu_osabi |= elf_gnu_osabi_retain;
- if (bed->elf_osabi != ELFOSABI_GNU
- && bed->elf_osabi != ELFOSABI_FREEBSD
- && bed->elf_osabi != ELFOSABI_NONE)
- as_bad (_("%s section is supported only by GNU and FreeBSD targets"),
- mbind_p ? "GNU_MBIND" : "GNU_RETAIN");
- else
- {
- if (mbind_p)
- elf_tdata (stdoutput)->has_gnu_osabi |= elf_gnu_osabi_mbind;
- if ((gnu_attr & SHF_GNU_RETAIN) != 0)
- elf_tdata (stdoutput)->has_gnu_osabi |= elf_gnu_osabi_retain;
-
- attr |= gnu_attr;
- }
+ attr |= gnu_attr;
}
change_section (name, type, attr, entsize, &match, linkonce, push,
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index 96bfe74..08f995d 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -5029,7 +5029,7 @@ parse_sys_reg (char **str, htab_t sys_regs,
"name '%s'"), buf);
if (!pstatefield_p && sysreg_checking_p
&& !aarch64_sys_ins_reg_supported_p (cpu_variant, o->name,
- o->flags, &o->features))
+ &o->features))
as_bad (_("selected processor does not support system register "
"name '%s'"), buf);
if (sysreg128_p && !aarch64_sys_reg_128bit_p (o->flags))
@@ -5073,8 +5073,7 @@ parse_sys_ins_reg (char **str, htab_t sys_ins_regs, bool sysreg128_p)
if (!o || (sysreg128_p && !aarch64_sys_reg_128bit_p (o->flags)))
return NULL;
- if (!aarch64_sys_ins_reg_supported_p (cpu_variant,
- o->name, o->flags, &o->features))
+ if (!aarch64_sys_ins_reg_supported_p (cpu_variant, o->name, &o->features))
as_bad (_("selected processor does not support system register "
"name '%s'"), buf);
if (aarch64_sys_reg_deprecated_p (o->flags))
@@ -10214,18 +10213,10 @@ aarch64_after_parse_args (void)
const char *
elf64_aarch64_target_format (void)
{
-#ifdef TE_CLOUDABI
- /* FIXME: What to do for ilp32_p ? */
- if (target_big_endian)
- return "elf64-bigaarch64-cloudabi";
- else
- return "elf64-littleaarch64-cloudabi";
-#else
if (target_big_endian)
return ilp32_p ? "elf32-bigaarch64" : "elf64-bigaarch64";
else
return ilp32_p ? "elf32-littleaarch64" : "elf64-littleaarch64";
-#endif
}
void
@@ -10754,10 +10745,6 @@ struct aarch64_option_cpu_value_table
const aarch64_feature_set require; /* Feature dependencies. */
};
-/* There are currently many feature bits with no corresponding flag for features implied by FEAT_D128. We should combine or remove most of these in the future, but for now just make +d128 enable these dependencies as well. */
-#define D128_FEATURE_DEPS AARCH64_FEATURES (8, LSE128, SCTLR2, FGT2, ATS1A, \
- AIE, S1PIE, S2PIE, TCR2)
-
static const struct aarch64_option_cpu_value_table aarch64_features[] = {
{"crc", AARCH64_FEATURE (CRC), AARCH64_NO_FEATURES},
{"crypto", AARCH64_FEATURES (2, AES, SHA2),
@@ -10834,7 +10821,7 @@ static const struct aarch64_option_cpu_value_table aarch64_features[] = {
{"the", AARCH64_FEATURE (THE), AARCH64_NO_FEATURES},
{"rasv2", AARCH64_FEATURE (RASv2), AARCH64_FEATURE (RAS)},
{"ite", AARCH64_FEATURE (ITE), AARCH64_NO_FEATURES},
- {"d128", AARCH64_FEATURE (D128), D128_FEATURE_DEPS},
+ {"d128", AARCH64_FEATURE (D128), AARCH64_FEATURES (2, LSE128, ATS1A)},
{"sve-b16b16", AARCH64_FEATURE (SVE_B16B16), AARCH64_NO_FEATURES},
{"sve-bfscale", AARCH64_FEATURE (SVE_BFSCALE), AARCH64_NO_FEATURES},
{"sme2p1", AARCH64_FEATURE (SME2p1), AARCH64_FEATURE (SME2)},
diff --git a/gas/config/tc-alpha.c b/gas/config/tc-alpha.c
index 9558425..7ba85a6 100644
--- a/gas/config/tc-alpha.c
+++ b/gas/config/tc-alpha.c
@@ -5306,12 +5306,12 @@ select_gp_value (void)
/* Map 's' to SHF_ALPHA_GPREL. */
bfd_vma
-alpha_elf_section_letter (int letter, const char **ptr_msg)
+alpha_elf_section_letter (int letter, const char **extra)
{
if (letter == 's')
return SHF_ALPHA_GPREL;
- *ptr_msg = _("bad .section directive: want a,s,w,x,M,S,G,T in string");
+ *extra = "s";
return -1;
}
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 99c07d4..a58949f 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -920,20 +920,16 @@ struct asm_opcode
#define BAD_CDE_COPROC _("coprocessor for insn is not enabled for cde")
#define UNPRED_REG(R) _("using " R " results in unpredictable behaviour")
#define THUMB1_RELOC_ONLY _("relocation valid in thumb1 code only")
-#define MVE_NOT_IT _("Warning: instruction is UNPREDICTABLE in an IT " \
- "block")
-#define MVE_NOT_VPT _("Warning: instruction is UNPREDICTABLE in a VPT " \
- "block")
-#define MVE_BAD_PC _("Warning: instruction is UNPREDICTABLE with PC" \
- " operand")
-#define MVE_BAD_SP _("Warning: instruction is UNPREDICTABLE with SP" \
- " operand")
+#define MVE_NOT_IT _("instruction is UNPREDICTABLE in an IT block")
+#define MVE_NOT_VPT _("instruction is UNPREDICTABLE in a VPT block")
+#define MVE_BAD_PC _("instruction is UNPREDICTABLE with PC operand")
+#define MVE_BAD_SP _("instruction is UNPREDICTABLE with SP operand")
#define BAD_SIMD_TYPE _("bad type in SIMD instruction")
#define BAD_MVE_AUTO \
_("GAS auto-detection mode and -march=all is deprecated for MVE, please" \
" use a valid -march or -mcpu option.")
-#define BAD_MVE_SRCDEST _("Warning: 32-bit element size and same destination "\
- "and source operands makes instruction UNPREDICTABLE")
+#define BAD_MVE_SRCDEST _("32-bit element size and same destination and " \
+ "source operands makes instruction UNPREDICTABLE")
#define BAD_EL_TYPE _("bad element type for instruction")
#define MVE_BAD_QREG _("MVE vector register Q[0..7] expected")
#define BAD_PACBTI _("selected processor does not support PACBTI extention")
@@ -1474,7 +1470,7 @@ parse_neon_type (struct neon_type *type, char **str)
while (type->elems < NEON_MAX_TYPE_ELS)
{
enum neon_el_type thistype = NT_untyped;
- unsigned thissize = -1u;
+ unsigned long thissize = -1ul;
if (*ptr != '.')
break;
@@ -1505,14 +1501,17 @@ parse_neon_type (struct neon_type *type, char **str)
return FAIL;
}
ptr += 1;
+ if (!ISDIGIT (*ptr) || *ptr == '0')
+ goto unexpected;
thissize = strtoul (ptr, &ptr, 10);
if (thissize != 16)
{
- as_bad (_("bad size %d in type specifier"), thissize);
+ as_bad (_("bad size %lu in type specifier"), thissize);
return FAIL;
}
goto done;
default:
+ unexpected:
as_bad (_("unexpected character `%c' in type specifier"), *ptr);
return FAIL;
}
@@ -1525,12 +1524,14 @@ parse_neon_type (struct neon_type *type, char **str)
else
{
parsesize:
+ if (!ISDIGIT (*ptr) || *ptr == '0')
+ goto unexpected;
thissize = strtoul (ptr, &ptr, 10);
if (thissize != 8 && thissize != 16 && thissize != 32
&& thissize != 64)
{
- as_bad (_("bad size %d in type specifier"), thissize);
+ as_bad (_("bad size %lu in type specifier"), thissize);
return FAIL;
}
}
@@ -1972,7 +1973,7 @@ parse_reg_list (char ** strp, enum reg_list_els etype)
{
if (range & (1 << i))
as_tsktsk
- (_("Warning: duplicated register (r%d) in register list"),
+ (_("duplicated register (r%d) in register list"),
i);
else
range |= 1 << i;
@@ -1981,10 +1982,10 @@ parse_reg_list (char ** strp, enum reg_list_els etype)
}
if (range & (1 << reg))
- as_tsktsk (_("Warning: duplicated register (r%d) in register list"),
+ as_tsktsk (_("duplicated register (r%d) in register list"),
reg);
else if (reg <= cur_reg)
- as_tsktsk (_("Warning: register range not in ascending order"));
+ as_tsktsk (_("register range not in ascending order"));
range |= 1 << reg;
cur_reg = reg;
@@ -2022,7 +2023,7 @@ parse_reg_list (char ** strp, enum reg_list_els etype)
regno &= -regno;
regno = (1 << regno) - 1;
as_tsktsk
- (_("Warning: duplicated register (r%d) in register list"),
+ (_("duplicated register (r%d) in register list"),
regno);
}
@@ -4350,10 +4351,10 @@ parse_dot_save (char **str_p, int prev_reg)
if (!in_range)
{
if (core_regs & (1 << reg))
- as_tsktsk (_("Warning: duplicated register (r%d) in register list"),
+ as_tsktsk (_("duplicated register (r%d) in register list"),
reg);
else if (reg <= prev_reg)
- as_tsktsk (_("Warning: register list not in ascending order"));
+ as_tsktsk (_("register list not in ascending order"));
core_regs |= (1 << reg);
prev_reg = reg;
@@ -4370,7 +4371,7 @@ parse_dot_save (char **str_p, int prev_reg)
for (i = prev_reg + 1; i <= reg; i++)
{
if (core_regs & (1 << i))
- as_tsktsk (_("Warning: duplicated register (r%d) in register list"),
+ as_tsktsk (_("duplicated register (r%d) in register list"),
i);
else
core_regs |= 1 << i;
@@ -9454,7 +9455,7 @@ struct deprecated_coproc_regs_s
};
#define DEPR_ACCESS_V8 \
- N_("This coprocessor register access is deprecated in ARMv8")
+ N_("this coprocessor register access is deprecated in ARMv8")
/* Table of all deprecated coprocessor registers. */
static struct deprecated_coproc_regs_s deprecated_coproc_regs[] =
@@ -9516,7 +9517,7 @@ do_co_reg (void)
&& inst.operands[4].reg == r->crm
&& inst.operands[5].imm == r->opc2)
{
- if (! ARM_CPU_IS_ANY (cpu_variant)
+ if (!(r->obs_msg && check_obsolete (&r->obsoleted, r->obs_msg))
&& warn_on_deprecated
&& ARM_CPU_HAS_FEATURE (cpu_variant, r->deprecated))
as_tsktsk ("%s", r->dep_msg);
@@ -17953,7 +17954,7 @@ do_mve_vhcadd (void)
constraint (rot != 90 && rot != 270, _("immediate out of range"));
if (et.size == 32 && inst.operands[0].reg == inst.operands[2].reg)
- as_tsktsk (_("Warning: 32-bit element size and same first and third "
+ as_tsktsk (_("32-bit element size and same first and third "
"operand makes instruction UNPREDICTABLE"));
mve_encode_qqq (0, et.size);
@@ -19725,7 +19726,7 @@ do_neon_rev (void)
if (ARM_CPU_HAS_FEATURE (cpu_variant, mve_ext) && elsize == 64
&& inst.operands[0].reg == inst.operands[1].reg)
- as_tsktsk (_("Warning: 64-bit element size and same destination and source"
+ as_tsktsk (_("64-bit element size and same destination and source"
" operands makes instruction UNPREDICTABLE"));
gas_assert (elsize != 0);
@@ -21276,7 +21277,7 @@ do_vcadd (void)
et = neon_check_type (3, rs, N_EQK, N_EQK, N_KEY | N_F16 | N_F32 | N_I8
| N_I16 | N_I32);
if (et.size == 32 && inst.operands[0].reg == inst.operands[2].reg)
- as_tsktsk (_("Warning: 32-bit element size and same first and third "
+ as_tsktsk (_("32-bit element size and same first and third "
"operand makes instruction UNPREDICTABLE"));
}
@@ -22470,7 +22471,8 @@ opcode_lookup (char **str)
if (parse_neon_type (&inst.vectype, str) == FAIL)
return NULL;
}
- else if (end[offset] != '\0' && !is_whitespace (end[offset]))
+
+ if (**str != '\0' && !is_whitespace (**str))
return NULL;
}
else
@@ -22818,8 +22820,7 @@ handle_pred_state (void)
{
if (unified_syntax
&& !(implicit_it_mode & IMPLICIT_IT_MODE_ARM))
- as_tsktsk (_("Warning: conditional outside an IT block"\
- " for Thumb."));
+ as_tsktsk (_("conditional outside an IT block for Thumb"));
}
else
{
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 8fb8a7e..7f7f62b 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -648,7 +648,7 @@ static int this_operand = -1;
/* Are we processing a .insn directive? */
#define dot_insn() (i.tm.mnem_off == MN__insn)
-enum i386_flag_code i386_flag_code;
+static enum i386_flag_code i386_flag_code;
#define flag_code i386_flag_code /* Permit to continue using original name. */
static unsigned int object_64bit;
static unsigned int disallow_64bit_reloc;
@@ -861,7 +861,7 @@ static const char *cpu_arch_name = NULL;
static char *cpu_sub_arch_name = NULL;
/* CPU feature flags. */
-i386_cpu_flags cpu_arch_flags = CPU_UNKNOWN_FLAGS;
+static i386_cpu_flags cpu_arch_flags = CPU_UNKNOWN_FLAGS;
/* ISA extensions available in 64-bit mode only. */
static const i386_cpu_flags cpu_64_flags = CPU_ANY_64_FLAGS;
@@ -870,13 +870,13 @@ static const i386_cpu_flags cpu_64_flags = CPU_ANY_64_FLAGS;
static int cpu_arch_tune_set = 0;
/* Cpu we are generating instructions for. */
-enum processor_type cpu_arch_tune = PROCESSOR_UNKNOWN;
+static enum processor_type cpu_arch_tune = PROCESSOR_UNKNOWN;
/* CPU instruction set architecture used. */
-enum processor_type cpu_arch_isa = PROCESSOR_UNKNOWN;
+static enum processor_type cpu_arch_isa = PROCESSOR_UNKNOWN;
/* CPU feature flags of instruction set architecture used. */
-i386_cpu_flags cpu_arch_isa_flags;
+static i386_cpu_flags cpu_arch_isa_flags;
/* If set, conditional jumps are not automatically promoted to handle
larger than a byte offset. */
@@ -2303,8 +2303,7 @@ cpu_flags_match (const insn_template *t)
|| any.bitfield.cpuavx512f || any.bitfield.cpuavx512bw
|| any.bitfield.cpuavx512dq || any.bitfield.cpuamx_tile
|| any.bitfield.cpucmpccxadd || any.bitfield.cpuuser_msr
- || any.bitfield.cpumsr_imm || any.bitfield.cpuamx_transpose
- || any.bitfield.cpuamx_movrs))
+ || any.bitfield.cpumsr_imm || any.bitfield.cpuamx_movrs))
{
/* These checks (verifying that APX_F() was properly used in the
opcode table entry) make sure there's no need for an "else" to
@@ -3518,7 +3517,12 @@ set_cpu_arch (int dummy ATTRIBUTE_UNUSED)
string = s;
if (strcmp (string, "nojumps") == 0)
- no_cond_jump_promotion = 1;
+ {
+ if (cpu_arch_flags.bitfield.cpui386)
+ as_bad (_("`%s' only supported with 16-bit architectures"), string);
+ else
+ no_cond_jump_promotion = true;
+ }
else if (strcmp (string, "jumps") != 0)
{
as_bad (_("no such architecture modifier: `%s'"), string);
@@ -3896,10 +3900,13 @@ pt (i386_operand_type t)
#endif /* DEBUG386 */
static bfd_reloc_code_real_type
-reloc (unsigned int size,
- int pcrel,
- int sign,
- bfd_reloc_code_real_type other)
+_reloc (unsigned int size,
+ bool pcrel,
+ int sign,
+ bfd_reloc_code_real_type other,
+ bool code64,
+ const char *file,
+ unsigned int line)
{
if (other != NO_RELOC)
{
@@ -3940,30 +3947,33 @@ reloc (unsigned int size,
other = BFD_RELOC_SIZE64;
if (pcrel)
{
- as_bad (_("there are no pc-relative size relocations"));
+ as_bad_where (file, line,
+ _("there are no pc-relative size relocations"));
return NO_RELOC;
}
}
#endif
/* Sign-checking 4-byte relocations in 16-/32-bit code is pointless. */
- if (size == 4 && (flag_code != CODE_64BIT || disallow_64bit_reloc))
+ if (size == 4 && (!code64 || disallow_64bit_reloc))
sign = -1;
rel = bfd_reloc_type_lookup (stdoutput, other);
if (!rel)
- as_bad (_("unknown relocation (%u)"), other);
+ as_bad_where (file, line, _("unknown relocation (%u)"), other);
else if (size != bfd_get_reloc_size (rel))
- as_bad (_("%u-byte relocation cannot be applied to %u-byte field"),
- bfd_get_reloc_size (rel),
- size);
+ as_bad_where (file, line,
+ _("%u-byte relocation cannot be applied to %u-byte field"),
+ bfd_get_reloc_size (rel), size);
else if (pcrel && !rel->pc_relative)
- as_bad (_("non-pc-relative relocation for pc-relative field"));
+ as_bad_where (file, line,
+ _("non-pc-relative relocation for pc-relative field"));
else if ((rel->complain_on_overflow == complain_overflow_signed
&& !sign)
|| (rel->complain_on_overflow == complain_overflow_unsigned
&& sign > 0))
- as_bad (_("relocated field and relocation type differ in signedness"));
+ as_bad_where (file, line,
+ _("relocated field and relocation type differ in signedness"));
else
return other;
return NO_RELOC;
@@ -3972,7 +3982,8 @@ reloc (unsigned int size,
if (pcrel)
{
if (!sign)
- as_bad (_("there are no unsigned pc-relative relocations"));
+ as_bad_where (file, line,
+ _("there are no unsigned pc-relative relocations"));
switch (size)
{
case 1: return BFD_RELOC_8_PCREL;
@@ -3980,7 +3991,8 @@ reloc (unsigned int size,
case 4: return BFD_RELOC_32_PCREL;
case 8: return BFD_RELOC_64_PCREL;
}
- as_bad (_("cannot do %u byte pc-relative relocation"), size);
+ as_bad_where (file, line,
+ _("cannot do %u byte pc-relative relocation"), size);
}
else
{
@@ -3997,13 +4009,22 @@ reloc (unsigned int size,
case 4: return BFD_RELOC_32;
case 8: return BFD_RELOC_64;
}
- as_bad (_("cannot do %s %u byte relocation"),
- sign > 0 ? "signed" : "unsigned", size);
+ as_bad_where (file, line, _("cannot do %s %u byte relocation"),
+ sign > 0 ? "signed" : "unsigned", size);
}
return NO_RELOC;
}
+static bfd_reloc_code_real_type
+reloc (unsigned int size,
+ bool pcrel,
+ int sign,
+ bfd_reloc_code_real_type other)
+{
+ return _reloc (size, pcrel, sign, other, flag_code == CODE_64BIT, NULL, 0);
+}
+
#ifdef OBJ_ELF
/* Here we decide which fixups can be adjusted to make them relative to
the beginning of the section instead of the symbol. Basically we need
@@ -4179,8 +4200,7 @@ install_template (const insn_template *t)
|| maybe_cpu (t, CpuAVX512F) || maybe_cpu (t, CpuAVX512DQ)
|| maybe_cpu (t, CpuAVX512BW) || maybe_cpu (t, CpuBMI)
|| maybe_cpu (t, CpuBMI2) || maybe_cpu (t, CpuUSER_MSR)
- || maybe_cpu (t, CpuMSR_IMM) || maybe_cpu (t, CpuAMX_TRANSPOSE)
- || maybe_cpu (t, CpuAMX_MOVRS))
+ || maybe_cpu (t, CpuMSR_IMM) || maybe_cpu (t, CpuAMX_MOVRS))
&& maybe_cpu (t, CpuAPX_F))
{
if (need_evex_encoding (t))
@@ -15652,6 +15672,23 @@ i386_att_operand (char *operand_string)
return 1; /* Normal return. */
}
+/* Initialize the tc_frag_data field of a fragment. */
+
+void i386_frag_init (fragS *fragP, size_t max_bytes)
+{
+ memset (&fragP->tc_frag_data, 0, sizeof (fragP->tc_frag_data));
+ fragP->tc_frag_data.isa = cpu_arch_isa;
+ fragP->tc_frag_data.tune = cpu_arch_tune;
+ fragP->tc_frag_data.cpunop = cpu_arch_flags.bitfield.cpunop;
+ fragP->tc_frag_data.isanop = cpu_arch_isa_flags.bitfield.cpunop;
+ fragP->tc_frag_data.code = i386_flag_code;
+ fragP->tc_frag_data.max_bytes = max_bytes;
+ fragP->tc_frag_data.last_insn_normal
+ = (seg_info(now_seg)->tc_segment_info_data.last_insn.kind
+ == last_insn_other);
+ fragP->tc_frag_data.no_cond_jump_promotion = no_cond_jump_promotion;
+}
+
/* Calculate the maximum variable size (i.e., excluding fr_fix)
that an rs_machine_dependent frag may reach. */
@@ -16139,18 +16176,15 @@ md_estimate_size_before_relax (fragS *fragP, segT segment)
int old_fr_fix;
fixS *fixP = NULL;
- if (fragP->fr_var != NO_RELOC)
- reloc_type = (enum bfd_reloc_code_real) fragP->fr_var;
- else if (size == 2)
- reloc_type = BFD_RELOC_16_PCREL;
+ reloc_type = (enum bfd_reloc_code_real) fragP->fr_var;
#ifdef OBJ_ELF
- else if (fragP->tc_frag_data.code == CODE_64BIT
- && fragP->fr_offset == 0
- && need_plt32_p (fragP->fr_symbol))
+ if (reloc_type == NO_RELOC
+ && size != 2
+ && fragP->tc_frag_data.code == CODE_64BIT
+ && fragP->fr_offset == 0
+ && need_plt32_p (fragP->fr_symbol))
reloc_type = BFD_RELOC_X86_64_PLT32;
#endif
- else
- reloc_type = BFD_RELOC_32_PCREL;
old_fr_fix = fragP->fr_fix;
opcode = (unsigned char *) fragP->fr_opcode;
@@ -16164,12 +16198,25 @@ md_estimate_size_before_relax (fragS *fragP, segT segment)
fixP = fix_new (fragP, old_fr_fix, size,
fragP->fr_symbol,
fragP->fr_offset, 1,
- reloc_type);
+ _reloc (size, 1, 1, reloc_type,
+ fragP->tc_frag_data.code == CODE_64BIT,
+ fragP->fr_file, fragP->fr_line));
break;
case COND_JUMP86:
- if (size == 2
- && (!no_cond_jump_promotion || fragP->fr_var != NO_RELOC))
+ if (fragP->tc_frag_data.no_cond_jump_promotion
+ && fragP->fr_var == NO_RELOC)
+ {
+ fragP->fr_fix += 1;
+ fixP = fix_new (fragP, old_fr_fix, 1,
+ fragP->fr_symbol,
+ fragP->fr_offset, 1,
+ BFD_RELOC_8_PCREL);
+ fixP->fx_signed = 1;
+ break;
+ }
+
+ if (size == 2)
{
/* Negate the condition, and branch past an
unconditional jump. */
@@ -16183,23 +16230,14 @@ md_estimate_size_before_relax (fragS *fragP, segT segment)
fix_new (fragP, old_fr_fix + 2, 2,
fragP->fr_symbol,
fragP->fr_offset, 1,
- reloc_type);
+ _reloc (size, 1, 1, reloc_type,
+ fragP->tc_frag_data.code == CODE_64BIT,
+ fragP->fr_file, fragP->fr_line));
break;
}
/* Fall through. */
case COND_JUMP:
- if (no_cond_jump_promotion && fragP->fr_var == NO_RELOC)
- {
- fragP->fr_fix += 1;
- fixP = fix_new (fragP, old_fr_fix, 1,
- fragP->fr_symbol,
- fragP->fr_offset, 1,
- BFD_RELOC_8_PCREL);
- fixP->fx_signed = 1;
- break;
- }
-
/* This changes the byte-displacement jump 0x7N
to the (d)word-displacement jump 0x0f,0x8N. */
opcode[1] = opcode[0] + 0x10;
@@ -16209,7 +16247,9 @@ md_estimate_size_before_relax (fragS *fragP, segT segment)
fixP = fix_new (fragP, old_fr_fix + 1, size,
fragP->fr_symbol,
fragP->fr_offset, 1,
- reloc_type);
+ _reloc (size, 1, 1, reloc_type,
+ fragP->tc_frag_data.code == CODE_64BIT,
+ fragP->fr_file, fragP->fr_line));
break;
default:
@@ -16375,7 +16415,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, segT sec ATTRIBUTE_UNUSED,
}
else
{
- if (no_cond_jump_promotion
+ if (fragP->tc_frag_data.no_cond_jump_promotion
&& TYPE_FROM_RELAX_STATE (fragP->fr_subtype) != UNCOND_JUMP)
as_warn_where (fragP->fr_file, fragP->fr_line,
_("long jump required"));
@@ -18669,17 +18709,15 @@ i386_solaris_fix_up_eh_frame (segT sec)
/* For ELF on x86-64, add support for SHF_X86_64_LARGE. */
bfd_vma
-x86_64_section_letter (int letter, const char **ptr_msg)
+x86_64_section_letter (int letter, const char **extra)
{
if (flag_code == CODE_64BIT)
{
if (letter == 'l')
return SHF_X86_64_LARGE;
- *ptr_msg = _("bad .section directive: want a,l,w,x,M,S,G,T in string");
+ *extra = "l";
}
- else
- *ptr_msg = _("bad .section directive: want a,w,x,M,S,G,T in string");
return -1;
}
diff --git a/gas/config/tc-i386.h b/gas/config/tc-i386.h
index 641596d..0a38f6a 100644
--- a/gas/config/tc-i386.h
+++ b/gas/config/tc-i386.h
@@ -59,8 +59,6 @@ extern unsigned long i386_mach (void);
#define ELF_TARGET_FORMAT64 "elf64-x86-64-freebsd"
#elif defined (TE_VXWORKS)
#define ELF_TARGET_FORMAT "elf32-i386-vxworks"
-#elif defined TE_CLOUDABI
-#define ELF_TARGET_FORMAT64 "elf64-x86-64-cloudabi"
#endif
#ifdef TE_SOLARIS
@@ -279,19 +277,14 @@ enum processor_type
PROCESSOR_NONE
};
-extern i386_cpu_flags cpu_arch_flags;
-extern enum processor_type cpu_arch_tune;
-extern enum processor_type cpu_arch_isa;
-extern i386_cpu_flags cpu_arch_isa_flags;
-
/* We support four different modes. I386_FLAG_CODE variable is used to
distinguish three of these. */
-extern enum i386_flag_code {
+enum i386_flag_code {
CODE_32BIT,
CODE_16BIT,
CODE_64BIT
-} i386_flag_code;
+};
struct i386_segment_info {
/* Type of previous "instruction", e.g. .byte or stand-alone prefix. */
@@ -336,6 +329,7 @@ struct i386_tc_frag_data
unsigned int cpunop : 1;
unsigned int isanop : 1;
unsigned int last_insn_normal : 1;
+ bool no_cond_jump_promotion : 1;
};
/* We need to emit the right NOP pattern in .align frags. This is
@@ -343,31 +337,8 @@ struct i386_tc_frag_data
the isa/tune settings at the time the .align was assembled. */
#define TC_FRAG_TYPE struct i386_tc_frag_data
-#define TC_FRAG_INIT(FRAGP, MAX_BYTES) \
- do \
- { \
- (FRAGP)->tc_frag_data.u.padding_fragP = NULL; \
- (FRAGP)->tc_frag_data.padding_address = 0; \
- (FRAGP)->tc_frag_data.isa = cpu_arch_isa; \
- (FRAGP)->tc_frag_data.tune = cpu_arch_tune; \
- (FRAGP)->tc_frag_data.cpunop = cpu_arch_flags.bitfield.cpunop; \
- (FRAGP)->tc_frag_data.isanop = cpu_arch_isa_flags.bitfield.cpunop; \
- (FRAGP)->tc_frag_data.code = i386_flag_code; \
- (FRAGP)->tc_frag_data.max_bytes = (MAX_BYTES); \
- (FRAGP)->tc_frag_data.length = 0; \
- (FRAGP)->tc_frag_data.last_length = 0; \
- (FRAGP)->tc_frag_data.max_prefix_length = 0; \
- (FRAGP)->tc_frag_data.prefix_length = 0; \
- (FRAGP)->tc_frag_data.default_prefix = 0; \
- (FRAGP)->tc_frag_data.cmp_size = 0; \
- (FRAGP)->tc_frag_data.classified = 0; \
- (FRAGP)->tc_frag_data.branch_type = 0; \
- (FRAGP)->tc_frag_data.mf_type = 0; \
- (FRAGP)->tc_frag_data.last_insn_normal \
- = (seg_info(now_seg)->tc_segment_info_data.last_insn.kind \
- == last_insn_other); \
- } \
- while (0)
+void i386_frag_init (fragS *, size_t);
+#define TC_FRAG_INIT(fragP, max_bytes) i386_frag_init (fragP, max_bytes)
#define WORKING_DOT_WORD 1
diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c
index 88f9563..58e2c71 100644
--- a/gas/config/tc-ia64.c
+++ b/gas/config/tc-ia64.c
@@ -853,20 +853,20 @@ set_section (char *name)
/* Map 's' to SHF_IA_64_SHORT. */
bfd_vma
-ia64_elf_section_letter (int letter, const char **ptr_msg)
+ia64_elf_section_letter (int letter, const char **extra)
{
if (letter == 's')
return SHF_IA_64_SHORT;
- else if (letter == 'o')
- return SHF_LINK_ORDER;
#ifdef TE_VMS
else if (letter == 'O')
return SHF_IA_64_VMS_OVERLAID;
else if (letter == 'g')
return SHF_IA_64_VMS_GLOBAL;
+ *extra = "g,s,O";
+#else
+ *extra = "s";
#endif
- *ptr_msg = _("bad .section directive: want a,o,s,w,x,M,S,G,T in string");
return -1;
}
diff --git a/gas/config/tc-mep.c b/gas/config/tc-mep.c
index 1469186..16ea280 100644
--- a/gas/config/tc-mep.c
+++ b/gas/config/tc-mep.c
@@ -2081,12 +2081,12 @@ mep_fix_adjustable (fixS *fixP)
}
bfd_vma
-mep_elf_section_letter (int letter, const char **ptrmsg)
+mep_elf_section_letter (int letter, const char **extra)
{
if (letter == 'v')
return SHF_MEP_VLIW;
- *ptrmsg = _("bad .section directive: want a,v,w,x,M,S in string");
+ *extra = "v";
return -1;
}
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 7d0d855..f3a9875 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -3377,7 +3377,7 @@ mips_parse_arguments (char *s, char float_format)
if (!s)
{
obstack_free (&mips_operand_tokens,
- obstack_finish (&mips_operand_tokens));
+ obstack_base (&mips_operand_tokens));
return 0;
}
SKIP_SPACE_TABS (s);
diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
index 9b3aaab..3b2b218 100644
--- a/gas/config/tc-ppc.c
+++ b/gas/config/tc-ppc.c
@@ -123,6 +123,10 @@ static void ppc_weak (int);
static void ppc_GNU_visibility (int);
#endif
+/* This string holds the chars that always start a comment. If the
+ pre-processor is disabled, these aren't very useful. */
+const char ppc_comment_chars[] = "#";
+
#ifdef OBJ_ELF
static void ppc_elf_rdata (int);
static void ppc_elf_lcomm (int);
@@ -134,23 +138,6 @@ static void ppc_elf_gnu_attribute (int);
/* Generic assembler global variables which must be defined by all
targets. */
-#ifdef OBJ_ELF
-/* This string holds the chars that always start a comment. If the
- pre-processor is disabled, these aren't very useful. The macro
- tc_comment_chars points to this. We use this, rather than the
- usual comment_chars, so that we can switch for Solaris conventions. */
-static const char ppc_solaris_comment_chars[] = "#!";
-static const char ppc_eabi_comment_chars[] = "#";
-
-#ifdef TARGET_SOLARIS_COMMENT
-const char *ppc_comment_chars = ppc_solaris_comment_chars;
-#else
-const char *ppc_comment_chars = ppc_eabi_comment_chars;
-#endif
-#else
-const char comment_chars[] = "#";
-#endif
-
/* Characters which start a comment at the beginning of a line. */
const char line_comment_chars[] = "#";
@@ -993,15 +980,6 @@ static enum { SHLIB_NONE, SHLIB_PIC, SHLIB_MRELOCATABLE } shlib = SHLIB_NONE;
/* Flags to set in the elf header. */
static flagword ppc_flags = 0;
-
-/* Whether this is Solaris or not. */
-#ifdef TARGET_SOLARIS_COMMENT
-#define SOLARIS_P true
-#else
-#define SOLARIS_P false
-#endif
-
-static bool msolaris = SOLARIS_P;
#endif
#ifdef OBJ_XCOFF
@@ -1247,17 +1225,6 @@ md_parse_option (int c, const char *arg)
set_target_endian = 1;
}
- else if (strcmp (arg, "solaris") == 0)
- {
- msolaris = true;
- ppc_comment_chars = ppc_solaris_comment_chars;
- }
-
- else if (strcmp (arg, "no-solaris") == 0)
- {
- msolaris = false;
- ppc_comment_chars = ppc_eabi_comment_chars;
- }
else if (strcmp (arg, "spe2") == 0)
{
ppc_cpu |= PPC_OPCODE_SPE2;
@@ -1445,10 +1412,6 @@ PowerPC options:\n"));
-mbig, -mbig-endian, -be\n\
generate code for a big endian machine\n"));
fprintf (stream, _("\
--msolaris generate code for Solaris\n"));
- fprintf (stream, _("\
--mno-solaris do not generate code for Solaris\n"));
- fprintf (stream, _("\
-K PIC set EF_PPC_RELOCATABLE_LIB in ELF flags\n"));
fprintf (stream, _("\
-V print assembler version number\n"));
@@ -1891,7 +1854,7 @@ md_begin (void)
#ifdef OBJ_ELF
/* Set the ELF flags if desired. */
- if (ppc_flags && !msolaris)
+ if (ppc_flags)
bfd_set_private_flags (stdoutput, ppc_flags);
#endif
@@ -2359,7 +2322,7 @@ ppc_elf_cons_fix_check (expressionS *exp ATTRIBUTE_UNUSED,
}
}
-/* Solaris pseduo op to change to the .rodata section. */
+/* Solaris pseudo op to change to the .rodata section. */
static void
ppc_elf_rdata (int xxx)
{
@@ -4171,12 +4134,12 @@ ppc_section_flags (flagword flags, bfd_vma attr ATTRIBUTE_UNUSED, int type)
}
bfd_vma
-ppc_elf_section_letter (int letter, const char **ptrmsg)
+ppc_elf_section_letter (int letter, const char **extra)
{
if (letter == 'v')
return SHF_PPC_VLE;
- *ptrmsg = _("bad .section directive: want a,e,v,w,x,M,S,G,T in string");
+ *extra = "v";
return -1;
}
#endif /* OBJ_ELF */
diff --git a/gas/config/tc-ppc.h b/gas/config/tc-ppc.h
index e568c42..3bbeafc 100644
--- a/gas/config/tc-ppc.h
+++ b/gas/config/tc-ppc.h
@@ -216,6 +216,9 @@ extern void ppc_new_dot_label (symbolS *);
extern const char ppc_symbol_chars[];
#define tc_symbol_chars ppc_symbol_chars
+#define tc_comment_chars ppc_comment_chars
+extern const char ppc_comment_chars[];
+
#ifdef OBJ_ELF
/* Support for SHT_ORDERED */
@@ -225,9 +228,6 @@ extern int ppc_section_flags (flagword, bfd_vma, int);
#define md_elf_section_type(STR, LEN) ppc_section_type (STR, LEN)
#define md_elf_section_flags(FLAGS, ATTR, TYPE) ppc_section_flags (FLAGS, ATTR, TYPE)
-#define tc_comment_chars ppc_comment_chars
-extern const char *ppc_comment_chars;
-
#define md_elf_section_letter ppc_elf_section_letter
extern bfd_vma ppc_elf_section_letter (int, const char **);
diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
index 8a33568..df60c20 100644
--- a/gas/config/tc-riscv.c
+++ b/gas/config/tc-riscv.c
@@ -2518,13 +2518,16 @@ parse_relocation (char **str, bfd_reloc_code_real_type *reloc,
}
static void
-my_getExpression (expressionS *ep, char *str)
+my_getExpression (expressionS *ep, char *str, bool defer)
{
char *save_in;
save_in = input_line_pointer;
input_line_pointer = str;
- expression (ep);
+ if (defer)
+ deferred_expression (ep);
+ else
+ expression (ep);
expr_parse_end = input_line_pointer;
input_line_pointer = save_in;
}
@@ -2543,6 +2546,7 @@ my_getSmallExpression (expressionS *ep, bfd_reloc_code_real_type *reloc,
size_t reloc_index;
unsigned crux_depth, str_depth;
bool orig_probing = probing_insn_operands;
+ bool force_reloc = false;
char *crux;
/* Search for the start of the main expression.
@@ -2582,7 +2586,10 @@ my_getSmallExpression (expressionS *ep, bfd_reloc_code_real_type *reloc,
if (str_depth || reloc_index)
probing_insn_operands = false;
- my_getExpression (ep, crux);
+ if (*reloc == BFD_RELOC_RISCV_GOT_HI20)
+ force_reloc = true;
+
+ my_getExpression (ep, crux, force_reloc);
str = expr_parse_end;
probing_insn_operands = orig_probing;
@@ -2674,7 +2681,7 @@ my_getVsetvliExpression (expressionS *ep, char *str)
}
else
{
- my_getExpression (ep, str);
+ my_getExpression (ep, str, false/* defer */);
str = expr_parse_end;
}
}
@@ -2727,7 +2734,7 @@ my_getThVsetvliExpression (expressionS *ep, char *str)
}
else
{
- my_getExpression (ep, str);
+ my_getExpression (ep, str, false/* defer */);
str = expr_parse_end;
}
}
@@ -2851,6 +2858,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
error.missing_ext = NULL;
/* Indicate we are assembling instruction with CSR. */
bool insn_with_csr = false;
+ bool force_reloc = false;
/* Parse the name of the instruction. Terminate the string if whitespace
is found so that str_hash_find only sees the name part of the string. */
@@ -3353,7 +3361,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
continue;
case 'i': /* vector arith signed immediate */
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, FALSE);
if (imm_expr->X_add_number > 15
|| imm_expr->X_add_number < -16)
@@ -3365,7 +3373,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
continue;
case 'j': /* vector arith unsigned immediate */
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, FALSE);
if (imm_expr->X_add_number < 0
|| imm_expr->X_add_number >= 32)
@@ -3377,7 +3385,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
continue;
case 'k': /* vector arith signed immediate, minus 1 */
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, FALSE);
if (imm_expr->X_add_number > 16
|| imm_expr->X_add_number < -15)
@@ -3389,7 +3397,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
continue;
case 'l': /* 6-bit vector arith unsigned immediate */
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, FALSE);
if (imm_expr->X_add_number < 0
|| imm_expr->X_add_number >= 64)
@@ -3453,7 +3461,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
break;
case '<': /* Shift amount, 0 - 31. */
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, false);
if ((unsigned long) imm_expr->X_add_number > 31)
as_bad (_("improper shift amount (%"PRIu64")"),
@@ -3464,7 +3472,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
continue;
case '>': /* Shift amount, 0 - (XLEN-1). */
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, false);
if ((unsigned long) imm_expr->X_add_number >= xlen)
as_bad (_("improper shift amount (%"PRIu64")"),
@@ -3475,7 +3483,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
continue;
case 'Z': /* CSRRxI immediate. */
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, false);
if ((unsigned long) imm_expr->X_add_number > 31)
as_bad (_("improper CSRxI immediate (%"PRIu64")"),
@@ -3492,7 +3500,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
INSERT_OPERAND (CSR, *ip, regno);
else
{
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, true);
if ((unsigned long) imm_expr->X_add_number > 0xfff)
as_bad (_("improper CSR address (%"PRIu64")"),
@@ -3591,7 +3599,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
break;
case 'I':
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
if (imm_expr->X_op != O_big
&& imm_expr->X_op != O_constant)
break;
@@ -3600,7 +3608,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
continue;
case 'A':
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
normalize_constant_expr (imm_expr);
/* The 'A' format specifier must be a symbol. */
if (imm_expr->X_op != O_symbol)
@@ -3610,7 +3618,10 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
continue;
case 'B':
- my_getExpression (imm_expr, asarg);
+ if (ip->insn_mo->mask == M_LGA
+ || (riscv_opts.pic && ip->insn_mo->mask == M_LA))
+ force_reloc = true;
+ my_getExpression (imm_expr, asarg, force_reloc);
normalize_constant_expr (imm_expr);
/* The 'B' format specifier must be a symbol or a constant. */
if (imm_expr->X_op != O_symbol && imm_expr->X_op != O_constant)
@@ -3662,7 +3673,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
case 'p': /* PC-relative offset. */
branch:
*imm_reloc = BFD_RELOC_12_PCREL;
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
asarg = expr_parse_end;
continue;
@@ -3685,13 +3696,13 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
case 'a': /* 20-bit PC-relative offset. */
jump:
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
asarg = expr_parse_end;
*imm_reloc = BFD_RELOC_RISCV_JMP;
continue;
case 'c':
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
asarg = expr_parse_end;
if (strcmp (asarg, "@plt") == 0)
asarg += 4;
@@ -3792,7 +3803,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
break;
case 'y': /* bs immediate */
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, FALSE);
if ((unsigned long)imm_expr->X_add_number > 3)
as_bad(_("Improper bs immediate (%lu)"),
@@ -3803,7 +3814,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
continue;
case 'Y': /* rnum immediate */
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, FALSE);
if ((unsigned long)imm_expr->X_add_number > 10)
as_bad(_("Improper rnum immediate (%lu)"),
@@ -3833,7 +3844,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
pseudo S-type but lower 5-bits zero. */
if (riscv_handle_implicit_zero_offset (imm_expr, asarg))
continue;
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, false);
if (((unsigned) (imm_expr->X_add_number) & 0x1fU)
|| imm_expr->X_add_number >= RISCV_IMM_REACH / 2
@@ -4025,7 +4036,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
s = strtol (oparg + 1, (char **)&oparg, 10);
oparg--;
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, false);
if (!sign)
{
@@ -4053,7 +4064,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
switch (*++oparg)
{
case '2':
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, FALSE);
asarg = expr_parse_end;
if (imm_expr->X_add_number<0
@@ -4063,7 +4074,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
|= ENCODE_CV_IS2_UIMM5 (imm_expr->X_add_number);
continue;
case '3':
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, FALSE);
asarg = expr_parse_end;
if (imm_expr->X_add_number < 0
@@ -4073,7 +4084,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
|= ENCODE_CV_IS3_UIMM5 (imm_expr->X_add_number);
continue;
case '4':
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, FALSE);
asarg = expr_parse_end;
if (imm_expr->X_add_number < -16
@@ -4083,7 +4094,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
|= ENCODE_CV_IS2_UIMM5 (imm_expr->X_add_number);
continue;
case '5':
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, FALSE);
asarg = expr_parse_end;
if (imm_expr->X_add_number < -32
@@ -4093,7 +4104,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
|= ENCODE_CV_SIMD_IMM6 (imm_expr->X_add_number);
continue;
case '6':
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, FALSE);
asarg = expr_parse_end;
if (imm_expr->X_add_number < 0
@@ -4103,7 +4114,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
|= ENCODE_CV_BITMANIP_UIMM5 (imm_expr->X_add_number);
continue;
case '7':
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, FALSE);
asarg = expr_parse_end;
if (imm_expr->X_add_number < 0
@@ -4113,7 +4124,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
|= ENCODE_CV_BITMANIP_UIMM2 (imm_expr->X_add_number);
continue;
case '8':
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, FALSE);
asarg = expr_parse_end;
++oparg;
@@ -4194,7 +4205,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
switch (*++oparg)
{
case '@': /* hint 0 - 31. */
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, FALSE);
if ((unsigned long)imm_expr->X_add_number > 31)
as_bad(_("Improper hint amount (%lu)"),
@@ -4205,7 +4216,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
continue;
case '#': /* immediate 0 - 511. */
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, FALSE);
if ((unsigned long)imm_expr->X_add_number > 511)
as_bad(_("Improper immediate amount (%lu)"),
@@ -4216,7 +4227,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
continue;
case '$': /* LDP offset 0 to (1<<7)-8. */
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, FALSE);
if ((unsigned long)imm_expr->X_add_number >= (1 << 7)
|| ((unsigned long)imm_expr->X_add_number & 0x7) != 0)
@@ -4229,7 +4240,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
continue;
case '%': /* LWP offset 0 to (1<<7)-4. */
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, FALSE);
if ((unsigned long)imm_expr->X_add_number >= (1 << 7)
|| ((unsigned long)imm_expr->X_add_number & 0x3) != 0)
@@ -4242,7 +4253,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
continue;
case '^': /* SDP offset 0 to (1<<7)-8. */
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, FALSE);
if ((unsigned long)imm_expr->X_add_number >= (1 << 7)
|| ((unsigned long)imm_expr->X_add_number & 0x7) != 0)
@@ -4257,7 +4268,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
continue;
case '&': /* SWP offset 0 to (1<<7)-4. */
- my_getExpression (imm_expr, asarg);
+ my_getExpression (imm_expr, asarg, force_reloc);
check_absolute_expr (ip, imm_expr, FALSE);
if ((unsigned long)imm_expr->X_add_number >= (1 << 7)
|| ((unsigned long)imm_expr->X_add_number & 0x3) != 0)
@@ -4613,7 +4624,7 @@ bool riscv_parse_name (const char *name, struct expressionS *ep,
if (!probing_insn_operands)
return false;
- gas_assert (mode == expr_normal);
+ gas_assert (mode == expr_normal || expr_defer_p (mode));
regno = reg_lookup_internal (name, RCLASS_GPR);
if (regno == -1u)
diff --git a/gas/config/tc-tilegx.h b/gas/config/tc-tilegx.h
index e3789e4..ad935ef 100644
--- a/gas/config/tc-tilegx.h
+++ b/gas/config/tc-tilegx.h
@@ -42,7 +42,8 @@ extern const char * tilegx_target_format (void);
#define HANDLE_ALIGN(sec, fragp) tilegx_handle_align (fragp)
extern void tilegx_handle_align (struct frag *);
-#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (7 + 8)
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) \
+ (2 * TILEGX_BUNDLE_SIZE_IN_BYTES - 1)
struct tilegx_operand;
#define TC_FIX_TYPE const struct tilegx_operand *
diff --git a/gas/config/tc-tilepro.h b/gas/config/tc-tilepro.h
index f985053..4f57309 100644
--- a/gas/config/tc-tilepro.h
+++ b/gas/config/tc-tilepro.h
@@ -42,7 +42,8 @@
#define HANDLE_ALIGN(sec, fragp) tilepro_handle_align (fragp)
extern void tilepro_handle_align (struct frag *);
-#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (7 + 8)
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) \
+ (2 * TILEPRO_BUNDLE_SIZE_IN_BYTES - 1)
struct tilepro_operand;
#define TC_FIX_TYPE const struct tilepro_operand *
diff --git a/gas/config/tc-visium.h b/gas/config/tc-visium.h
index 8be7f77..d25a81b 100644
--- a/gas/config/tc-visium.h
+++ b/gas/config/tc-visium.h
@@ -45,7 +45,7 @@
#define tc_fix_adjustable(FIXP) visium_fix_adjustable (FIXP)
extern bool visium_fix_adjustable (struct fix *);
-#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (4 + 1)
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (3 + 4 + 1)
#define HANDLE_ALIGN(SEC, FRAGP) \
if ((FRAGP)->fr_type == rs_align_code) \
visium_handle_align (FRAGP);
diff --git a/gas/config/te-cloudabi.h b/gas/config/te-cloudabi.h
deleted file mode 100644
index 5791f52..0000000
--- a/gas/config/te-cloudabi.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright (C) 2019-2025 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. */
-
-#define TE_CLOUDABI
-
-#include "obj-format.h"
diff --git a/gas/configure b/gas/configure
index 9734044..f2cdd77 100755
--- a/gas/configure
+++ b/gas/configure
@@ -694,6 +694,7 @@ NMEDIT
DSYMUTIL
RANLIB
AR
+LLVM_CONFIG
OBJDUMP
LN_S
NM
@@ -820,6 +821,7 @@ enable_default_compressed_debug_sections_algorithm
enable_x86_relax_relocations
enable_x86_tls_check
enable_elf_stt_common
+enable_default_sframe
enable_generate_build_notes
enable_mips_fix_loongson3_llsc
enable_x86_used_note
@@ -1497,6 +1499,7 @@ Optional Features:
--enable-x86-tls-check check x86 TLS relocation by default
--enable-elf-stt-common generate ELF common symbols with STT_COMMON type by
default
+ --enable-default-sframe generate SFrame by default
--enable-generate-build-notes
generate GNU Build notes if none are provided by the
input
@@ -5794,8 +5797,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
-plugin_option=
+
+# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
+# wrong plugin_option with clang.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
+$as_echo_n "checking for clang... " >&6; }
+if ${clang_cv_is_clang+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __clang__
+ yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ clang_cv_is_clang=yes
+else
+ clang_cv_is_clang=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
+$as_echo "$clang_cv_is_clang" >&6; }
+ plugin_file=
+ if test $clang_cv_is_clang = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
+$as_echo_n "checking for clang plugin file... " >&6; }
+ plugin_names="LLVMgold.so"
+ for plugin in $plugin_names; do
+ plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
+ if test x$plugin_file = x$plugin; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LLVM_CONFIG"; then
+ ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
+if test -n "$LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
+$as_echo "$LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LLVM_CONFIG"; then
+ ac_ct_LLVM_CONFIG=$LLVM_CONFIG
+ # Extract the first word of "llvm-config", so it can be a program name with args.
+set dummy llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LLVM_CONFIG"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
+if test -n "$ac_ct_LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
+$as_echo "$ac_ct_LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LLVM_CONFIG" = x; then
+ LLVM_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LLVM_CONFIG=$ac_ct_LLVM_CONFIG
+ fi
+else
+ LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
+fi
+
+ if test "$?" != 0; then
+ as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
+ fi
+ clang_lib_dir=`$LLVM_CONFIG --libdir`
+ if test -f $clang_lib_dir/$plugin; then
+ plugin_file=$clang_lib_dir/$plugin
+ fi
+ if test x$plugin_file != x$plugin; then
+ break;
+ fi
+ fi
+ done
+ if test -z $plugin_file; then
+ as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
+ fi
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+ if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ plugin_option="--plugin $plugin_file"
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_file=
+ fi
+ rm -f conftest.*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
+$as_echo "$plugin_file" >&6; }
+ fi
+ plugin_file="$plugin_file"
+
+if test -n "$plugin_file"; then
+ plugin_option="--plugin $plugin_file"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
+$as_echo_n "checking for -plugin option... " >&6; }
+
plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+plugin_option=
for plugin in $plugin_names; do
plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
if test x$plugin_so = x$plugin; then
@@ -5806,7 +6067,119 @@ for plugin in $plugin_names; do
break
fi
done
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+fi
+touch conftest.c
+${AR} $plugin_option rc conftest.a conftest.c
+if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_option=
+fi
+rm -f conftest.*
+if test -n "$plugin_option"; then
+ plugin_option="$plugin_option"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+$as_echo "$plugin_option" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
@@ -5901,17 +6274,15 @@ fi
test -z "$AR" && AR=ar
if test -n "$plugin_option"; then
- if $AR --help 2>&1 | grep -q "\--plugin"; then
- touch conftest.c
- $AR $plugin_option rc conftest.a conftest.c
- if test "$?" != 0; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
-$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
- else
+ case "$AR" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $AR --help 2>&1 | grep -q "\--plugin"; then
AR="$AR $plugin_option"
fi
- rm -f conftest.*
- fi
+ ;;
+ esac
fi
test -z "$AR_FLAGS" && AR_FLAGS=cru
@@ -6118,9 +6489,15 @@ fi
test -z "$RANLIB" && RANLIB=:
if test -n "$plugin_option" && test "$RANLIB" != ":"; then
- if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
- RANLIB="$RANLIB $plugin_option"
- fi
+ case "$RANLIB" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
+ RANLIB="$RANLIB $plugin_option"
+ fi
+ ;;
+ esac
fi
@@ -10777,7 +11154,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10780 "configure"
+#line 11157 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -10883,7 +11260,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10886 "configure"
+#line 11263 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11599,6 +11976,15 @@ if test "${enable_elf_stt_common+set}" = set; then :
esac
fi
+ac_default_sframe=unset
+# Provide a configure time option to override our default.
+# Check whether --enable-default-sframe was given.
+if test "${enable_default_sframe+set}" = set; then :
+ enableval=$enable_default_sframe; case "${enableval}" in
+ yes) ac_default_sframe=1 ;;
+ no) ac_default_sframe=0 ;;
+esac
+fi
# Decide if the ELF assembler should default to generating
# GNU Build notes if none are provided by the input.
@@ -12176,16 +12562,6 @@ $as_echo "#define STRICTCOFF 1" >>confdefs.h
$as_echo "#define AIX_WEAK_SUPPORT 1" >>confdefs.h
;;
- ppc-*-solaris*)
- if test ${this_target} = $target; then
-
-$as_echo "#define TARGET_SOLARIS_COMMENT 1" >>confdefs.h
-
- fi
- if test x${endian} = xbig; then
- as_fn_error $? "Solaris must be configured little endian" "$LINENO" 5
- fi
- ;;
esac
if test ${this_target} = $target ; then
@@ -12723,6 +13099,15 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
+if test ${ac_default_sframe} = unset; then
+ ac_default_sframe=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define DEFAULT_SFRAME $ac_default_sframe
+_ACEOF
+
+
cat >>confdefs.h <<_ACEOF
#define DEFAULT_GENERATE_BUILD_NOTES $ac_default_generate_build_notes
diff --git a/gas/configure.ac b/gas/configure.ac
index c65797f..4c7df3d 100644
--- a/gas/configure.ac
+++ b/gas/configure.ac
@@ -117,6 +117,15 @@ AC_ARG_ENABLE(elf_stt_common,
yes) ac_default_elf_stt_common=1 ;;
esac])dnl
+ac_default_sframe=unset
+# Provide a configure time option to override our default.
+AC_ARG_ENABLE(default-sframe,
+ AS_HELP_STRING([--enable-default-sframe],
+ [generate SFrame by default]),
+[case "${enableval}" in
+ yes) ac_default_sframe=1 ;;
+ no) ac_default_sframe=0 ;;
+esac])dnl
# Decide if the ELF assembler should default to generating
# GNU Build notes if none are provided by the input.
@@ -289,15 +298,6 @@ changequote([,])dnl
AC_DEFINE(AIX_WEAK_SUPPORT, 1,
[Define if using AIX 5.2 value for C_WEAKEXT.])
;;
- ppc-*-solaris*)
- if test ${this_target} = $target; then
- AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
- [Define if default target is PowerPC Solaris.])
- fi
- if test x${endian} = xbig; then
- AC_MSG_ERROR(Solaris must be configured little endian)
- fi
- ;;
esac
if test ${this_target} = $target ; then
@@ -757,6 +757,13 @@ AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_ELF_STT_COMMON,
[Define to 1 if you want to generate ELF common symbols with the
STT_COMMON type by default.])
+if test ${ac_default_sframe} = unset; then
+ ac_default_sframe=0
+fi
+AC_DEFINE_UNQUOTED(DEFAULT_SFRAME,
+ $ac_default_sframe,
+ [Define to 1 if you want to emit SFrames by default.])
+
AC_DEFINE_UNQUOTED(DEFAULT_GENERATE_BUILD_NOTES,
$ac_default_generate_build_notes,
[Define to 1 if you want to generate GNU Build attribute notes
diff --git a/gas/configure.tgt b/gas/configure.tgt
index 2565134..9300086 100644
--- a/gas/configure.tgt
+++ b/gas/configure.tgt
@@ -364,7 +364,6 @@ case ${generic_target} in
ppc-*-eabi* | ppc-*-sysv4*) fmt=elf ;;
ppc-*-haiku*) fmt=elf em=haiku ;;
ppc-*-linux-*) fmt=elf em=linux ;;
- ppc-*-solaris*) fmt=elf em=solaris ;;
ppc-*-macos*) fmt=coff em=macos ;;
ppc-*-nto*) fmt=elf ;;
ppc-*-kaos*) fmt=elf ;;
@@ -435,7 +434,6 @@ case ${generic_target} in
z8k-*-coff | z8k-*-sim) fmt=coff ;;
*-*-aout | *-*-scout) fmt=aout ;;
- *-*-cloudabi*) fmt=elf em=cloudabi ;;
*-*-dragonfly*) fmt=elf em=dragonfly ;;
*-*-freebsd* | *-*-kfreebsd*-gnu) fmt=elf em=freebsd ;;
*-*-generic) fmt=generic ;;
diff --git a/gas/doc/as.texi b/gas/doc/as.texi
index 1cb1fd8..9b8fb4b 100644
--- a/gas/doc/as.texi
+++ b/gas/doc/as.texi
@@ -539,7 +539,6 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
[@b{-mregnames}|@b{-mno-regnames}]
[@b{-mrelocatable}|@b{-mrelocatable-lib}|@b{-K PIC}] [@b{-memb}]
[@b{-mlittle}|@b{-mlittle-endian}|@b{-le}|@b{-mbig}|@b{-mbig-endian}|@b{-be}]
- [@b{-msolaris}|@b{-mno-solaris}]
[@b{-nops=@var{count}}]
@end ifset
@ifset PRU
@@ -864,7 +863,8 @@ configure option.
@itemx --gsframe=yes
Create @var{.sframe} section from CFI directives. The explicit
@option{--gsframe=yes} option behaves the same as @option{--gsframe}.
-Generation can be suppressed with @option{--gsframe=no}.
+Generation can be suppressed with @option{--gsframe=no}. The default can be
+controlled by a configure option @option{--enable-default-sframe}.
@end ifset
@@ -7004,12 +7004,14 @@ section) in the same file.
section is writable
@item x
section is executable
+@item E
+section has a (non-zero) element/entry size
+@item G
+section is a member of a section group
@item M
section is mergeable
@item S
section contains zero terminated strings
-@item G
-section is a member of a section group
@item T
section is used for thread-local-storage
@item ?
@@ -7118,8 +7120,8 @@ is not generally a good idea as section indices are rarely known at assembly
time, but the facility is provided for testing purposes. An index of zero is
allowed. It indicates that the linked-to section has already been discarded.
-Note: If both one of @var{M} or @var{S} and @var{o} flags are present, then the
-fields for the Merge/String flag should come first, like this:
+Note: If both one of @var{M}, @var{S}, or @var{E} and @var{o} flags are present,
+then the type and entry size fields should come first, like this:
@smallexample
.section @var{name},"@var{flags}"Mo,@@@var{type},@var{entsize},@var{SymbolName}
@@ -7142,8 +7144,8 @@ indicates that only one copy of this section should be retained
an alias for comdat
@end table
-Note: Uf both one of @var{M} or @var{S} and @var{G} flags are present then the
-fields for the Merge/String flag should come first, like this:
+Note: If both one of @var{M}, @var{S}, or @var{E} and @var{G} flags are present
+then the type and entry size fields should come first, like this:
@smallexample
.section @var{name} , "@var{flags}"MG, @@@var{type}, @var{entsize}, @var{GroupName}[, @var{linkage}]
diff --git a/gas/doc/c-i386.texi b/gas/doc/c-i386.texi
index b1f3b04..6598a04 100644
--- a/gas/doc/c-i386.texi
+++ b/gas/doc/c-i386.texi
@@ -1463,10 +1463,10 @@ instruction with the @samp{data16} instruction prefix), since the 80386
insists upon masking @samp{%eip} to 16 bits after the word displacement
is added. (See also @pxref{i386-Arch})
-Note that the @samp{jcxz}, @samp{jecxz}, @samp{loop}, @samp{loopz},
-@samp{loope}, @samp{loopnz} and @samp{loopne} instructions only come in byte
-displacements, so that if you use these instructions (@code{@value{GCC}} does
-not use them) you may get an error message (and incorrect code). The AT&T
+Note that the @samp{jcxz}, @samp{jecxz}, @samp{jrcxz}, @samp{loop},
+@samp{loopz}, @samp{loope}, @samp{loopnz} and @samp{loopne} instructions only
+come with byte displacements, so that if you use these instructions
+(@code{@value{GCC}} does not use them) you may get an error message. The AT&T
80386 assembler tries to get around this problem by expanding @samp{jcxz foo}
to
@@ -1760,8 +1760,8 @@ suffixes will disable all insns with wider vector or mask register operands.
On SVR4-derived platforms, the separator character @samp{/} can be replaced by
@samp{:}.
-Following the CPU architecture (but not a sub-architecture, which are those
-starting with a dot), you may specify @samp{jumps} or @samp{nojumps} to
+Following a 16-bit CPU architecture (but not a sub-architecture, which are
+those starting with a dot), you may specify @samp{jumps} or @samp{nojumps} to
control automatic promotion of conditional jumps. @samp{jumps} is the
default, and enables jump promotion; All external jumps will be of the long
variety, and file-local jumps will be promoted as necessary.
diff --git a/gas/doc/c-ppc.texi b/gas/doc/c-ppc.texi
index fabc594..0a7278e 100644
--- a/gas/doc/c-ppc.texi
+++ b/gas/doc/c-ppc.texi
@@ -193,12 +193,6 @@ Generate code for a little endian machine.
@item -mbig, -mbig-endian, -be
Generate code for a big endian machine.
-@item -msolaris
-Generate code for Solaris.
-
-@item -mno-solaris
-Do not generate code for Solaris.
-
@item -nops=@var{count}
If an alignment directive inserts more than @var{count} nops, put a
branch at the beginning to skip execution of the nops.
@@ -242,11 +236,6 @@ line is treated as a comment, but in this case the line could also be
a logical line number directive (@pxref{Comments}) or a preprocessor
control command (@pxref{Preprocessing}).
-If the assembler has been configured for the ppc-*-solaris* target
-then the @samp{!} character also acts as a line comment character.
-This can be disabled via the @option{-mno-solaris} command-line
-option.
-
@cindex line separator, PowerPC
@cindex statement separator, PowerPC
@cindex PowerPC line separator
diff --git a/gas/dw2gencfi.c b/gas/dw2gencfi.c
index c28856c..186dfa6 100644
--- a/gas/dw2gencfi.c
+++ b/gas/dw2gencfi.c
@@ -2598,9 +2598,11 @@ cfi_finish (void)
/* Generate SFrame section if the user:
- enables via the command line option, or
+ - default-enabled at configure-time via --enable-default-sframe, or
- specifies .sframe in the .cfi_sections directive and does not disable
via the command line. */
if (flag_gen_sframe == GEN_SFRAME_ENABLED
+ || flag_gen_sframe == GEN_SFRAME_CONFIG_ENABLED
|| ((all_cfi_sections & CFI_EMIT_sframe) != 0
&& flag_gen_sframe != GEN_SFRAME_DISABLED))
{
@@ -2619,7 +2621,9 @@ cfi_finish (void)
}
else
#endif
- as_bad (_(".sframe not supported for target"));
+ /* Avoid erroring with DEFAULT_SFRAME for non-default options, like
+ -32 on x86_64. */
+ sframe_as_bad (_(".sframe not supported for target"));
}
if ((all_cfi_sections & CFI_EMIT_debug_frame) != 0)
diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c
index 84c9661..f1df564 100644
--- a/gas/dwarf2dbg.c
+++ b/gas/dwarf2dbg.c
@@ -1072,6 +1072,8 @@ dwarf2_emit_insn (int size)
{
struct dwarf2_line_info loc;
+ seg_info (now_seg)->insn_seen = 1;
+
if (debug_type != DEBUG_DWARF2
? !dwarf2_loc_directive_seen
: !seen_at_least_1_file ())
diff --git a/gas/ehopt.c b/gas/ehopt.c
index 5a9d9d6..a8f450b 100644
--- a/gas/ehopt.c
+++ b/gas/ehopt.c
@@ -306,25 +306,24 @@ check_eh_frame (expressionS *exp, unsigned int *pnbytes)
switch (d->state)
{
case state_idle:
- if (*pnbytes == 4)
+ /* This might be the size of the CIE or FDE. We want to know
+ the size so that we don't accidentally optimize across an FDE
+ boundary. We recognize the size in one of two forms: a
+ symbol which will later be defined as a difference, or a
+ subtraction of two symbols. Either way, we can tell when we
+ are at the end of the FDE because the symbol becomes defined
+ (in the case of a subtraction, the end symbol, from which the
+ start symbol is being subtracted). Other ways of describing
+ the size will not be optimized. */
+ if (*pnbytes == 4
+ && !seg_info (now_seg)->insn_seen
+ && (exp->X_op == O_symbol || exp->X_op == O_subtract)
+ && !S_IS_DEFINED (exp->X_add_symbol))
{
- /* This might be the size of the CIE or FDE. We want to know
- the size so that we don't accidentally optimize across an FDE
- boundary. We recognize the size in one of two forms: a
- symbol which will later be defined as a difference, or a
- subtraction of two symbols. Either way, we can tell when we
- are at the end of the FDE because the symbol becomes defined
- (in the case of a subtraction, the end symbol, from which the
- start symbol is being subtracted). Other ways of describing
- the size will not be optimized. */
- if ((exp->X_op == O_symbol || exp->X_op == O_subtract)
- && ! S_IS_DEFINED (exp->X_add_symbol))
- {
- d->state = state_saw_size;
- d->size_end_sym = exp->X_add_symbol;
- if (!d->cie_info.f)
- d->cie_info.f = frag_now;
- }
+ d->state = state_saw_size;
+ d->size_end_sym = exp->X_add_symbol;
+ if (!d->cie_info.f)
+ d->cie_info.f = frag_now;
}
break;
diff --git a/gas/expr.h b/gas/expr.h
index 2be3d69..8a8d58d 100644
--- a/gas/expr.h
+++ b/gas/expr.h
@@ -37,7 +37,7 @@
NOTE: This enumeration must match the op_rank array in expr.c. */
-typedef enum
+typedef enum operatorT
{
/* An illegal expression. */
O_illegal,
@@ -122,14 +122,8 @@ typedef struct expressionS
/* A number to add. */
offsetT X_add_number;
- /* The type of the expression. We can't assume that an arbitrary
- compiler can handle a bitfield of enum type. FIXME: We could
- check this using autoconf. */
-#ifdef __GNUC__
- operatorT X_op : 8;
-#else
- unsigned char X_op;
-#endif
+ /* The type of the expression. */
+ ENUM_BITFIELD (operatorT) X_op : 8;
/* Non-zero if the expression value should be regarded as unsigned. This is
only valid for
@@ -145,9 +139,7 @@ typedef struct expressionS
signed word. */
unsigned int X_extrabit : 1;
- /* 7 additional bits can be defined if needed. */
-
- /* Machine dependent field */
+ /* Machine dependent field. */
unsigned short X_md;
} expressionS;
diff --git a/gas/frags.c b/gas/frags.c
index 0ad1240..e93ae68 100644
--- a/gas/frags.c
+++ b/gas/frags.c
@@ -69,20 +69,24 @@ frag_alloc_check (const struct obstack *ob)
}
/* Allocate a frag on the specified obstack.
- Call this routine from everywhere else, so that all the weird alignment
- hackery can be done in just one place. */
+ Call this routine every time a new frag is made, so that the
+ alignment hackery can be done in just one place. */
fragS *
frag_alloc (struct obstack *ob, size_t extra)
{
fragS *ptr;
- int oalign;
- (void) obstack_alloc (ob, 0);
- oalign = obstack_alignment_mask (ob);
- obstack_alignment_mask (ob) = 0;
- ptr = obstack_alloc (ob, extra + SIZEOF_STRUCT_FRAG);
- obstack_alignment_mask (ob) = oalign;
+ /* This will align the obstack so the next struct we allocate on it
+ will begin at a correct boundary. */
+ (void) obstack_finish (ob);
+ /* Do not use obstack_alloc here. If you do, you'll need to turn
+ off alignment as otherwise obstack_alloc will align the end of
+ the frag (via obstack_finish adjusting obstack next_free
+ pointer), making it seem like the frag already has contents in
+ fr_literal. */
+ obstack_blank (ob, extra + SIZEOF_STRUCT_FRAG);
+ ptr = obstack_base (ob);
memset (ptr, 0, SIZEOF_STRUCT_FRAG);
totalfrags++;
return ptr;
@@ -172,9 +176,6 @@ frag_new (size_t old_frags_var_max_size
/* Make sure its type is valid. */
gas_assert (frag_now->fr_type != 0);
- /* This will align the obstack so the next struct we allocate on it
- will begin at a correct boundary. */
- obstack_finish (&frchain_now->frch_obstack);
frchP = frchain_now;
know (frchP);
former_last_fragP = frchP->frch_last;
diff --git a/gas/frags.h b/gas/frags.h
index c2fea09..ac245b4 100644
--- a/gas/frags.h
+++ b/gas/frags.h
@@ -78,7 +78,7 @@ struct frag {
unsigned int insn_addr:6;
/* What state is my tail in? */
- relax_stateT fr_type;
+ ENUM_BITFIELD (_relax_state) fr_type : 8;
relax_substateT fr_subtype;
#ifdef USING_CGEN
diff --git a/gas/gen-sframe.c b/gas/gen-sframe.c
index d082b97..ac14278 100644
--- a/gas/gen-sframe.c
+++ b/gas/gen-sframe.c
@@ -330,7 +330,7 @@ get_num_sframe_fres (void);
/* Get CFA base register ID as represented in SFrame Frame Row Entry. */
static unsigned int
-get_fre_base_reg_id (struct sframe_row_entry *sframe_fre)
+get_fre_base_reg_id (const struct sframe_row_entry *sframe_fre)
{
unsigned int cfi_insn_cfa_base_reg = sframe_fre->cfa_base_reg;
unsigned fre_base_reg = SFRAME_BASE_REG_SP;
@@ -348,7 +348,7 @@ get_fre_base_reg_id (struct sframe_row_entry *sframe_fre)
/* Get number of offsets necessary for the SFrame Frame Row Entry. */
static unsigned int
-get_fre_num_offsets (struct sframe_row_entry *sframe_fre)
+get_fre_num_offsets (const struct sframe_row_entry *sframe_fre)
{
/* Atleast 1 must always be present (to recover CFA). */
unsigned int fre_num_offsets = 1;
@@ -368,7 +368,7 @@ get_fre_num_offsets (struct sframe_row_entry *sframe_fre)
SFrame frame row entry. */
static unsigned int
-sframe_get_fre_offset_size (struct sframe_row_entry *sframe_fre)
+sframe_get_fre_offset_size (const struct sframe_row_entry *sframe_fre)
{
unsigned int max_offset_size = 0;
unsigned int cfa_offset_size = 0;
@@ -549,7 +549,7 @@ sframe_fde_free (struct sframe_func_entry *sframe_fde)
static void
output_sframe_row_entry (symbolS *fde_start_addr,
symbolS *fde_end_addr,
- struct sframe_row_entry *sframe_fre)
+ const struct sframe_row_entry *sframe_fre)
{
unsigned char fre_info;
unsigned int fre_num_offsets;
@@ -624,7 +624,7 @@ output_sframe_row_entry (symbolS *fde_start_addr,
static void
output_sframe_funcdesc (symbolS *start_of_fre_section,
symbolS *fre_symbol,
- struct sframe_func_entry *sframe_fde)
+ const struct sframe_func_entry *sframe_fde)
{
expressionS exp;
symbolS *dw_fde_start_addrS, *dw_fde_end_addrS;
@@ -897,7 +897,7 @@ sframe_xlate_ctx_finalize (struct sframe_xlate_ctx *xlate_ctx,
static void
sframe_xlate_ctx_add_fre (struct sframe_xlate_ctx *xlate_ctx,
- struct sframe_row_entry *fre)
+ struct sframe_row_entry *fre)
{
gas_assert (xlate_ctx && fre);
@@ -924,7 +924,7 @@ sframe_xlate_ctx_add_fre (struct sframe_xlate_ctx *xlate_ctx,
static void
sframe_row_entry_initialize (struct sframe_row_entry *cur_fre,
- struct sframe_row_entry *prev_fre)
+ const struct sframe_row_entry *prev_fre)
{
gas_assert (prev_fre);
cur_fre->cfa_base_reg = prev_fre->cfa_base_reg;
@@ -958,7 +958,7 @@ sframe_register_name (unsigned int reg)
static int
sframe_xlate_do_advance_loc (struct sframe_xlate_ctx *xlate_ctx,
- struct cfi_insn_data *cfi_insn)
+ const struct cfi_insn_data *cfi_insn)
{
struct sframe_row_entry *last_fre = xlate_ctx->last_fre;
/* Get the scratchpad FRE currently being updated as the cfi_insn's
@@ -1004,7 +1004,7 @@ sframe_xlate_do_advance_loc (struct sframe_xlate_ctx *xlate_ctx,
static int
sframe_xlate_do_def_cfa (struct sframe_xlate_ctx *xlate_ctx,
- struct cfi_insn_data *cfi_insn)
+ const struct cfi_insn_data *cfi_insn)
{
/* Get the scratchpad FRE. This FRE will eventually get linked in. */
@@ -1039,9 +1039,9 @@ sframe_xlate_do_def_cfa (struct sframe_xlate_ctx *xlate_ctx,
static int
sframe_xlate_do_def_cfa_register (struct sframe_xlate_ctx *xlate_ctx,
- struct cfi_insn_data *cfi_insn)
+ const struct cfi_insn_data *cfi_insn)
{
- struct sframe_row_entry *last_fre = xlate_ctx->last_fre;
+ const struct sframe_row_entry *last_fre = xlate_ctx->last_fre;
/* Get the scratchpad FRE. This FRE will eventually get linked in. */
struct sframe_row_entry *cur_fre = xlate_ctx->cur_fre;
@@ -1071,7 +1071,7 @@ sframe_xlate_do_def_cfa_register (struct sframe_xlate_ctx *xlate_ctx,
static int
sframe_xlate_do_def_cfa_offset (struct sframe_xlate_ctx *xlate_ctx,
- struct cfi_insn_data *cfi_insn)
+ const struct cfi_insn_data *cfi_insn)
{
/* The scratchpad FRE currently being updated with each cfi_insn
being interpreted. This FRE eventually gets linked in into the
@@ -1105,7 +1105,7 @@ sframe_xlate_do_def_cfa_offset (struct sframe_xlate_ctx *xlate_ctx,
static int
sframe_xlate_do_offset (struct sframe_xlate_ctx *xlate_ctx,
- struct cfi_insn_data *cfi_insn)
+ const struct cfi_insn_data *cfi_insn)
{
/* The scratchpad FRE currently being updated with each cfi_insn
being interpreted. This FRE eventually gets linked in into the
@@ -1172,7 +1172,7 @@ sframe_xlate_do_val_offset (const struct sframe_xlate_ctx *xlate_ctx ATTRIBUTE_U
static int
s390_sframe_xlate_do_register (struct sframe_xlate_ctx *xlate_ctx,
- struct cfi_insn_data *cfi_insn)
+ const struct cfi_insn_data *cfi_insn)
{
/* The scratchpad FRE currently being updated with each cfi_insn
being interpreted. This FRE eventually gets linked in into the
@@ -1201,8 +1201,8 @@ s390_sframe_xlate_do_register (struct sframe_xlate_ctx *xlate_ctx,
Return SFRAME_XLATE_OK if success. */
static int
-sframe_xlate_do_register (struct sframe_xlate_ctx *xlate_ctx ATTRIBUTE_UNUSED,
- struct cfi_insn_data *cfi_insn)
+sframe_xlate_do_register (struct sframe_xlate_ctx *xlate_ctx,
+ const struct cfi_insn_data *cfi_insn)
{
/* Conditionally invoke S390-specific implementation. */
if (sframe_get_abi_arch () == SFRAME_ABI_S390X_ENDIAN_BIG)
@@ -1232,7 +1232,7 @@ sframe_xlate_do_register (struct sframe_xlate_ctx *xlate_ctx ATTRIBUTE_UNUSED,
static int
sframe_xlate_do_remember_state (struct sframe_xlate_ctx *xlate_ctx)
{
- struct sframe_row_entry *last_fre = xlate_ctx->last_fre;
+ const struct sframe_row_entry *last_fre = xlate_ctx->last_fre;
/* If there is no FRE state to remember, nothing to do here. Return
early with non-zero error code, this will cause no SFrame stack trace
@@ -1278,7 +1278,7 @@ sframe_xlate_do_restore_state (struct sframe_xlate_ctx *xlate_ctx)
static int
sframe_xlate_do_restore (struct sframe_xlate_ctx *xlate_ctx,
- struct cfi_insn_data *cfi_insn)
+ const struct cfi_insn_data *cfi_insn)
{
struct sframe_row_entry *cie_fre = xlate_ctx->first_fre;
/* The scratchpad FRE currently being updated with each cfi_insn
@@ -1321,7 +1321,7 @@ sframe_xlate_do_restore (struct sframe_xlate_ctx *xlate_ctx,
static int
sframe_xlate_do_aarch64_negate_ra_state (struct sframe_xlate_ctx *xlate_ctx,
- struct cfi_insn_data *cfi_insn ATTRIBUTE_UNUSED)
+ const struct cfi_insn_data *cfi_insn ATTRIBUTE_UNUSED)
{
struct sframe_row_entry *cur_fre = xlate_ctx->cur_fre;
@@ -1338,7 +1338,7 @@ sframe_xlate_do_aarch64_negate_ra_state (struct sframe_xlate_ctx *xlate_ctx,
static int
sframe_xlate_do_aarch64_negate_ra_state_with_pc (struct sframe_xlate_ctx *xlate_ctx ATTRIBUTE_UNUSED,
- struct cfi_insn_data *cfi_insn ATTRIBUTE_UNUSED)
+ const struct cfi_insn_data *cfi_insn ATTRIBUTE_UNUSED)
{
as_warn (_("no SFrame FDE emitted; .cfi_negate_ra_state_with_pc"));
/* The used signing method should be encoded inside the FDE in SFrame v3.
@@ -1358,7 +1358,7 @@ sframe_xlate_do_aarch64_negate_ra_state_with_pc (struct sframe_xlate_ctx *xlate_
static int
sframe_xlate_do_gnu_window_save (struct sframe_xlate_ctx *xlate_ctx,
- struct cfi_insn_data *cfi_insn)
+ const struct cfi_insn_data *cfi_insn)
{
unsigned char abi_arch = sframe_get_abi_arch ();
@@ -1510,6 +1510,64 @@ warn_and_exit:
return err;
}
+/* Handle DW_CFA_GNU_args_size in .cfi_escape.
+
+ The purpose of DW_CFA_GNU_args_size is to adjust SP when performing stack
+ unwinding for exception handling. For stack tracing needs,
+ DW_CFA_GNU_args_size can be ignored, when CFA is FP-based. This is because
+ if the topmost frame is that of the catch block, the SP has been restored to
+ correct value by exception handling logic. From this point of interest in
+ the catch block now, stack tracing intends to go backwards to the caller
+ frame. If CFA restoration does not need SP, DW_CFA_GNU_args_size can be
+ ignored for stack tracing.
+
+ Continue to warn and not emit SFrame FDE if CFA is SP based. The pattern
+ where the CFA is SP based and there is a DW_CFA_GNU_args_size for
+ SP-adjustment is not entirely clear.
+
+ Sets CALLER_WARN_P for skipped cases (and returns SFRAME_XLATE_OK) where the
+ caller must warn. The caller then must also set
+ SFRAME_XLATE_ERR_NOTREPRESENTED for their callers. */
+
+static int
+sframe_xlate_do_escape_gnu_args_size (const struct sframe_xlate_ctx *xlate_ctx,
+ const struct cfi_insn_data *cfi_insn,
+ bool *caller_warn_p)
+{
+ const struct cfi_escape_data *e = cfi_insn->u.esc;
+ unsigned int i = 0;
+
+ /* Check for (DW_CFA_GNU_args_size offset) sequence. */
+#define CFI_ESC_NUM_EXP 1
+ offsetT items[CFI_ESC_NUM_EXP] = {0};
+ while (e->next)
+ {
+ e = e->next;
+ if (i >= CFI_ESC_NUM_EXP || e->exp.X_op != O_constant
+ || e->type != CFI_ESC_byte
+ || e->reloc != TC_PARSE_CONS_RETURN_NONE)
+ goto warn_and_exit;
+ items[i] = e->exp.X_add_number;
+ i++;
+ }
+ if (i == 0)
+ goto warn_and_exit;
+
+#undef CFI_ESC_NUM_EXP
+
+ offsetT offset = items[0];
+
+ struct sframe_row_entry *cur_fre = xlate_ctx->cur_fre;
+ gas_assert (cur_fre);
+ /* If CFA is FP based, safe to skip. */
+ if (offset == 0 || cur_fre->cfa_base_reg == SFRAME_CFA_FP_REG)
+ return SFRAME_XLATE_OK;
+
+warn_and_exit:
+ *caller_warn_p = true;
+ return SFRAME_XLATE_OK;
+}
+
/* Handle CFI_escape in SFrame context.
.cfi_escape CFI directive allows the user to add arbitrary data to the
@@ -1573,7 +1631,9 @@ sframe_xlate_do_cfi_escape (const struct sframe_xlate_ctx *xlate_ctx,
err = sframe_xlate_do_escape_val_offset (xlate_ctx, cfi_insn, &warn_p);
break;
- /* FIXME - Also add processing for DW_CFA_GNU_args_size in future? */
+ case DW_CFA_GNU_args_size:
+ err = sframe_xlate_do_escape_gnu_args_size (xlate_ctx, cfi_insn, &warn_p);
+ break;
default:
warn_p = true;
@@ -1725,7 +1785,7 @@ sframe_get_cfi_name (int cfi_opc)
static int
sframe_do_cfi_insn (struct sframe_xlate_ctx *xlate_ctx,
- struct cfi_insn_data *cfi_insn)
+ const struct cfi_insn_data *cfi_insn)
{
int err = 0;
@@ -1805,7 +1865,7 @@ static int
sframe_do_fde (struct sframe_xlate_ctx *xlate_ctx,
const struct fde_entry *dw_fde)
{
- struct cfi_insn_data *cfi_insn;
+ const struct cfi_insn_data *cfi_insn;
int err = SFRAME_XLATE_OK;
xlate_ctx->dw_fde = dw_fde;
diff --git a/gas/gen-sframe.h b/gas/gen-sframe.h
index e4a4c6e..8ad521b 100644
--- a/gas/gen-sframe.h
+++ b/gas/gen-sframe.h
@@ -21,6 +21,16 @@
#ifndef GENSFRAME_H
#define GENSFRAME_H
+/* Errors shouldn't be emitted either if SFrames are default-enabled, as
+ we interpret default-enabled as "opportunistic SFrames". Users don't
+ want to be bothered by something preventing emission of SFrames in
+ such a case. */
+#define sframe_as_bad(format, ...) \
+ do { \
+ if (flag_gen_sframe == GEN_SFRAME_ENABLED) \
+ as_bad (format, ##__VA_ARGS__); \
+ } while (0)
+
#define SFRAME_FRE_ELEM_LOC_REG 0
#define SFRAME_FRE_ELEM_LOC_STACK 1
diff --git a/gas/macro.c b/gas/macro.c
index 20309d4..13202d3 100644
--- a/gas/macro.c
+++ b/gas/macro.c
@@ -112,11 +112,13 @@ buffer_and_nest (const char *from, const char *to, sb *ptr,
unsigned int line;
char *linefile;
- as_where_top (&line);
- if (!flag_m68k_mri)
- linefile = xasprintf ("\t.linefile %u .", line + 1);
+ const char *prefix = flag_m68k_mri ? "" : ".";
+ const char *file = as_where_top (&line);
+
+ if (file)
+ linefile = xasprintf ("\t%slinefile %u \"%s\"", prefix, line + 1, file);
else
- linefile = xasprintf ("\tlinefile %u .", line + 1);
+ linefile = xasprintf ("\t%slinefile %u .", prefix, line + 1);
sb_add_string (ptr, linefile);
xfree (linefile);
}
diff --git a/gas/messages.c b/gas/messages.c
index 859ac17..c681e4a 100644
--- a/gas/messages.c
+++ b/gas/messages.c
@@ -27,12 +27,6 @@
extern const char *strsignal (int);
#endif
-static void identify (const char *);
-static void as_show_where (void);
-static void as_warn_internal (const char *, unsigned int, char *);
-static void as_bad_internal (const char *, unsigned int, char *);
-static void signal_crash (int) ATTRIBUTE_NORETURN;
-
/* Despite the rest of the comments in this file, (FIXME-SOON),
here is the current scheme for error messages etc:
@@ -72,8 +66,16 @@ static void signal_crash (int) ATTRIBUTE_NORETURN;
as_abort () is used for logic failure (assert or abort, signal).
*/
+static const char *ident_name;
+
+void
+set_identify_name (const char *name)
+{
+ ident_name = name;
+}
+
static void
-identify (const char *file)
+identify (void)
{
static int identified;
@@ -81,14 +83,8 @@ identify (const char *file)
return;
identified++;
- if (!file)
- {
- unsigned int x;
- file = as_where (&x);
- }
-
- if (file)
- fprintf (stderr, "%s: ", file);
+ if (ident_name && *ident_name)
+ fprintf (stderr, "%s: ", ident_name);
fprintf (stderr, _("Assembler messages:\n"));
}
@@ -121,7 +117,7 @@ as_show_where (void)
unsigned int line;
file = as_where_top (&line);
- identify (file);
+ identify ();
if (file)
{
if (line != 0)
@@ -151,41 +147,20 @@ as_info_where (const char *file, unsigned int line, unsigned int indent,
file, line, (int)indent, "", _("Info: "), buffer);
}
-/* Send to stderr a string as a warning, and locate warning
- in input file(s).
- Please only use this for when we have some recovery action.
- Please explain in string (which may have '\n's) what recovery was
- done. */
-
-void
-as_tsktsk (const char *format, ...)
-{
- va_list args;
-
- as_show_where ();
- va_start (args, format);
- vfprintf (stderr, format, args);
- va_end (args);
- (void) putc ('\n', stderr);
- as_report_context ();
-}
-
-/* The common portion of as_warn and as_warn_where. */
+/* The common portion of as_warn, as_warn_where, and as_tsktsk. */
static void
as_warn_internal (const char *file, unsigned int line, char *buffer)
{
bool context = false;
- ++warning_count;
-
if (file == NULL)
{
file = as_where_top (&line);
context = true;
}
- identify (file);
+ identify ();
if (file)
{
if (line != 0)
@@ -218,6 +193,8 @@ as_warn (const char *format, ...)
if (!flag_no_warnings)
{
+ ++warning_count;
+
va_start (args, format);
vsnprintf (buffer, sizeof (buffer), format, args);
va_end (args);
@@ -237,6 +214,8 @@ as_warn_where (const char *file, unsigned int line, const char *format, ...)
if (!flag_no_warnings)
{
+ ++warning_count;
+
va_start (args, format);
vsnprintf (buffer, sizeof (buffer), format, args);
va_end (args);
@@ -244,6 +223,24 @@ as_warn_where (const char *file, unsigned int line, const char *format, ...)
}
}
+/* Send to stderr a string as a warning, and locate warning
+ in input file(s).
+ Please only use this for when we have some recovery action.
+ Please explain in string (which may have '\n's) what recovery was
+ done. */
+
+void
+as_tsktsk (const char *format, ...)
+{
+ va_list args;
+ char buffer[2000];
+
+ va_start (args, format);
+ vsnprintf (buffer, sizeof (buffer), format, args);
+ va_end (args);
+ as_warn_internal (NULL, 0, buffer);
+}
+
/* The common portion of as_bad and as_bad_where. */
static void
@@ -259,7 +256,7 @@ as_bad_internal (const char *file, unsigned int line, char *buffer)
context = true;
}
- identify (file);
+ identify ();
if (file)
{
if (line != 0)
diff --git a/gas/po/es.po b/gas/po/es.po
index ac37d61a..2c54e11 100644
--- a/gas/po/es.po
+++ b/gas/po/es.po
@@ -6,10 +6,10 @@
# Antonio Ceballos <aceballos@gmail.com>, 2025
msgid ""
msgstr ""
-"Project-Id-Version: gas 2.43.90\n"
+"Project-Id-Version: gas 2.44.90\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2025-01-19 12:20+0000\n"
-"PO-Revision-Date: 2025-07-12 09:19+0200\n"
+"POT-Creation-Date: 2025-07-13 08:45+0100\n"
+"PO-Revision-Date: 2025-09-18 00:16+0200\n"
"Last-Translator: Antonio Ceballos <aceballos@gmail.com>\n"
"Language-Team: Spanish <es@tp.org.es>\n"
"Language: es\n"
@@ -49,7 +49,7 @@ msgstr "final de fichero en cadena; '%c' insertado"
msgid "unknown escape '\\%c' in string; ignored"
msgstr "escape '\\%c' desconocida en la cadena; se descarta"
-#: app.c:953 input-scrub.c:389
+#: app.c:953 input-scrub.c:400
msgid "end of file not at end of a line; newline inserted"
msgstr "final de fichero no situado en final de línea: se inserta una nueva línea"
@@ -204,14 +204,14 @@ msgstr ""
msgid " --elf-stt-common=[no|yes] "
msgstr " --elf-stt-common=[no|yes] "
-#: as.c:296 as.c:307 config/tc-i386.c:17662 config/tc-i386.c:17682
-#: config/tc-i386.c:17691
+#: as.c:296 as.c:307 config/tc-i386.c:17910 config/tc-i386.c:17930
+#: config/tc-i386.c:17939
#, c-format
msgid "(default: yes)\n"
msgstr "(por defecto: yes)\n"
-#: as.c:298 as.c:309 config/tc-i386.c:17664 config/tc-i386.c:17684
-#: config/tc-i386.c:17693
+#: as.c:298 as.c:309 config/tc-i386.c:17912 config/tc-i386.c:17932
+#: config/tc-i386.c:17941
#, c-format
msgid "(default: no)\n"
msgstr "(por defecto: no)\n"
@@ -493,38 +493,38 @@ msgstr " @FICHERO lee las opciones de FICHERO\n"
msgid "Report bugs to %s\n"
msgstr "Comunica defectos a %s\n"
-#: as.c:647
+#: as.c:653
#, c-format
msgid "unrecognized option `-%c%s'"
msgstr "opción no reconocida `-%c%s'"
-#: as.c:649
+#: as.c:655
#, c-format
msgid "unrecognized option `--%s=%s'"
msgstr "opción no reconocida `--%s=%s'"
-#: as.c:651
+#: as.c:657
#, c-format
msgid "unrecognized option `--%s'"
msgstr "opción no reconocida `--%s'"
-#: as.c:701
+#: as.c:711
#, c-format
msgid "unexpected argument to --multibyte-input-option: '%s'"
msgstr "argumento inesperado para --multibyte-input-option: '%s'"
#. This output is intended to follow the GNU standards document.
-#: as.c:706
+#: as.c:716
#, c-format
msgid "GNU assembler %s\n"
msgstr "Ensamblador GNU %s\n"
-#: as.c:707
+#: as.c:717
#, c-format
msgid "Copyright (C) 2025 Free Software Foundation, Inc.\n"
msgstr "Copyright (C) 2025 Free Software Foundation, Inc.\n"
-#: as.c:708
+#: as.c:718
#, c-format
msgid ""
"This program is free software; you may redistribute it under the terms of\n"
@@ -535,7 +535,7 @@ msgstr ""
"la Licencia Pública General de GNU versión 3 o posterior.\n"
"Este programa no tiene ninguna garantía.\n"
-#: as.c:713
+#: as.c:723
#, c-format
msgid ""
"This assembler was configured for a target of `%s' and default,\n"
@@ -544,145 +544,145 @@ msgstr ""
"Este ensamblador fue configurado para un objetivo de «%s» y por omisión,\n"
"tipo «%s» de cpu.\n"
-#: as.c:717
+#: as.c:727
#, c-format
msgid "This assembler was configured for a target of `%s'.\n"
msgstr "Este ensamblador se configuró para un objetivo «%s».\n"
-#: as.c:725
+#: as.c:735
msgid "multiple emulation names specified"
msgstr "se especificaron múltiples nombres de emulación"
-#: as.c:727
+#: as.c:737
msgid "emulations not handled in this configuration"
msgstr "las emulaciones no se manejan en esta configuración"
-#: as.c:732
+#: as.c:742
#, c-format
msgid "alias = %s\n"
msgstr "alias = %s\n"
-#: as.c:733
+#: as.c:743
#, c-format
msgid "canonical = %s\n"
msgstr "canónico = %s\n"
-#: as.c:734
+#: as.c:744
#, c-format
msgid "cpu-type = %s\n"
msgstr "tipo-cpu = %s\n"
-#: as.c:736
+#: as.c:746
#, c-format
msgid "format = %s\n"
msgstr "formato = %s\n"
-#: as.c:739
+#: as.c:749
#, c-format
msgid "bfd-target = %s\n"
msgstr "objetivo-bfd = %s\n"
-#: as.c:750
+#: as.c:760
msgid "--compress-debug-sections=zstd: gas is not built with zstd support"
msgstr "--compress-debug-sections=zstd: gas no está construido con soporte zstd"
-#: as.c:754
+#: as.c:764
#, c-format
msgid "Invalid --compress-debug-sections option: `%s'"
msgstr "Opción no valida de --compress-debug-sections: «%s»"
-#: as.c:757
+#: as.c:767
#, c-format
msgid "--compress-debug-sections=%s is unsupported"
msgstr "--compress-debug-sections=%s no está disponible"
-#: as.c:782
+#: as.c:792
msgid "bad defsym; format is --defsym name=value"
msgstr "defsym incorrecto; el formato es --defsym nombre=valor"
-#: as.c:800
+#: as.c:810
msgid "no file name following -t option"
msgstr "no hay un nombre de fichero a continuación de la opción -t"
-#: as.c:809
+#: as.c:819
#, c-format
msgid "failed to read instruction table %s\n"
msgstr "fallo al leer la table de instrucciones %s\n"
-#: as.c:831
+#: as.c:841
#, c-format
msgid "unknown DWARF option %s\n"
msgstr "Opción DWARF desconocida %s\n"
-#: as.c:833
+#: as.c:843
#, c-format
msgid "unknown option `%s'"
msgstr "opción desconocida «%s»"
-#: as.c:890
+#: as.c:900
#, c-format
msgid "Invalid --gdwarf-cie-version `%s'"
msgstr "Opción no válida de --gdwarf-cie-version «%s»"
-#: as.c:990
+#: as.c:1002
#, c-format
msgid "Invalid --scfi= option: `%s'; suggested option: experimental"
msgstr "Opción no válida de --scfi= : «%s»; se sugiere esta opción: xperimental"
-#: as.c:1001
+#: as.c:1013
#, c-format
msgid "Invalid --size-check= option: `%s'"
msgstr "Opción no válida de --size-check=: «%s»"
-#: as.c:1010
+#: as.c:1022
#, c-format
msgid "Invalid --elf-stt-common= option: `%s'"
msgstr "Opción no válida de --elf-stt-common=: «%s»"
-#: as.c:1024
+#: as.c:1036
#, c-format
msgid "Invalid --generate-missing-build-notes option: `%s'"
msgstr "Opción no valida de --generate-missing-build-notes: «%s»"
-#: as.c:1102
+#: as.c:1114
#, c-format
msgid "invalid listing option `%c'"
msgstr "opción de listado no válida `%c'"
-#: as.c:1165
+#: as.c:1197
#, c-format
msgid "%s: total time in assembly: %ld.%06ld\n"
msgstr "%s: tiempo total en ensamblado: %ld.%06ld\n"
-#: as.c:1263
+#: as.c:1299
msgid "libbfd ABI mismatch"
msgstr "ABI de libbfd no coincidente"
-#: as.c:1427
+#: as.c:1465
#, c-format
msgid "The input '%s' and output '%s' files are the same"
msgstr "Los ficheros de entrada «%s» y de salida «%s» son el mismo"
-#: as.c:1480
+#: as.c:1518
#, c-format
msgid "%d warning"
msgid_plural "%d warnings"
msgstr[0] "%d aviso"
msgstr[1] "%d avisos"
-#: as.c:1482
+#: as.c:1520
#, c-format
msgid "%d error"
msgid_plural "%d errors"
msgstr[0] "%d error"
msgstr[1] "%d errores"
-#: as.c:1486
+#: as.c:1524
#, c-format
msgid "%s, treating warnings as errors"
msgstr "%s , se tratan los avisos como errores"
-#: as.c:1497
+#: as.c:1535
#, c-format
msgid "%s, %s, generating bad object file\n"
msgstr "%s, %s, generando fichero objeto incorrecto\n"
@@ -696,64 +696,64 @@ msgstr "Valor de case %ld inesperado en la línea %d del fichero «%s»\n"
#. * We have a GROSS internal error.
#. * This should never happen.
#.
-#: atof-generic.c:456 config/tc-m68k.c:3485
+#: atof-generic.c:448 config/tc-m68k.c:3485
msgid "failed sanity check"
msgstr "la inspección sanitaria ha fallado"
-#: cgen.c:106 config/tc-alpha.c:2097 config/tc-alpha.c:2121
-#: config/tc-arc.c:4075 config/tc-arc.c:4148 config/tc-d10v.c:550
-#: config/tc-d30v.c:534 config/tc-mn10200.c:1093 config/tc-mn10300.c:1753
-#: config/tc-ppc.c:3954 config/tc-s390.c:1824 config/tc-v850.c:2530
-#: config/tc-v850.c:2601 config/tc-v850.c:2648 config/tc-v850.c:2685
-#: config/tc-v850.c:2722 config/tc-v850.c:2986
+#: cgen.c:106 config/tc-alpha.c:2081 config/tc-alpha.c:2105
+#: config/tc-arc.c:4073 config/tc-arc.c:4145 config/tc-d10v.c:549
+#: config/tc-d30v.c:534 config/tc-mn10200.c:1089 config/tc-mn10300.c:1753
+#: config/tc-ppc.c:3953 config/tc-s390.c:1846 config/tc-v850.c:2507
+#: config/tc-v850.c:2578 config/tc-v850.c:2625 config/tc-v850.c:2662
+#: config/tc-v850.c:2699 config/tc-v850.c:2963
msgid "too many fixups"
msgstr "demasiadas reparaciones"
-#: cgen.c:371 cgen.c:393 config/tc-d10v.c:461 config/tc-d30v.c:450
-#: config/tc-mn10200.c:1035 config/tc-mn10300.c:1678 config/tc-ppc.c:3483
-#: config/tc-v850.c:2639 config/tc-v850.c:2673 config/tc-v850.c:2713
-#: config/tc-v850.c:2959 config/tc-z80.c:785
+#: cgen.c:367 cgen.c:389 config/tc-d10v.c:460 config/tc-d30v.c:450
+#: config/tc-mn10200.c:1031 config/tc-mn10300.c:1678 config/tc-ppc.c:3482
+#: config/tc-v850.c:2616 config/tc-v850.c:2650 config/tc-v850.c:2690
+#: config/tc-v850.c:2936 config/tc-z80.c:785
msgid "illegal operand"
msgstr "operando ilegal"
-#: cgen.c:397 config/tc-avr.c:910 config/tc-d10v.c:463 config/tc-d30v.c:452
-#: config/tc-h8300.c:495 config/tc-mcore.c:662 config/tc-microblaze.c:585
-#: config/tc-mmix.c:485 config/tc-mn10200.c:1038 config/tc-mn10300.c:1681
-#: config/tc-msp430.c:417 config/tc-ppc.c:3485 config/tc-sh.c:988
-#: config/tc-v850.c:2643 config/tc-v850.c:2677 config/tc-v850.c:2717
-#: config/tc-v850.c:2962 config/tc-xgate.c:895 config/tc-z80.c:933
+#: cgen.c:393 config/tc-avr.c:908 config/tc-d10v.c:462 config/tc-d30v.c:452
+#: config/tc-h8300.c:495 config/tc-mcore.c:662 config/tc-microblaze.c:584
+#: config/tc-mmix.c:485 config/tc-mn10200.c:1034 config/tc-mn10300.c:1681
+#: config/tc-msp430.c:417 config/tc-ppc.c:3484 config/tc-sh.c:989
+#: config/tc-v850.c:2620 config/tc-v850.c:2654 config/tc-v850.c:2694
+#: config/tc-v850.c:2939 config/tc-xgate.c:892 config/tc-z80.c:933
#: config/tc-z8k.c:349
msgid "missing operand"
msgstr "falta operando"
-#: cgen.c:774
+#: cgen.c:770
msgid "a reloc on this operand implies an overflow"
msgstr "la reubicación de este operando implica desbordamiento"
-#: cgen.c:797
+#: cgen.c:793
msgid "operand mask overflow"
msgstr "desbordamiento de máscara de operando"
-#: cgen.c:860 config/tc-arm.c:2042 config/tc-arm.c:11126 config/tc-arm.c:11178
-#: config/tc-arm.c:11466 config/tc-arm.c:12364 config/tc-arm.c:13513
-#: config/tc-arm.c:13553 config/tc-arm.c:13926 config/tc-arm.c:13968
-#: config/tc-arm.c:21213 config/tc-arm.c:21273 config/tc-mips.c:9707
-#: config/tc-mips.c:11025 config/tc-mips.c:12322 config/tc-mips.c:13003
-#: config/tc-spu.c:980 config/tc-xtensa.c:13107
+#: cgen.c:856 config/tc-arm.c:2035 config/tc-arm.c:11115 config/tc-arm.c:11167
+#: config/tc-arm.c:11455 config/tc-arm.c:12353 config/tc-arm.c:13502
+#: config/tc-arm.c:13542 config/tc-arm.c:13915 config/tc-arm.c:13957
+#: config/tc-arm.c:21202 config/tc-arm.c:21262 config/tc-mips.c:9713
+#: config/tc-mips.c:11031 config/tc-mips.c:12328 config/tc-mips.c:13009
+#: config/tc-spu.c:970 config/tc-xtensa.c:13113
msgid "expression too complex"
msgstr "expresión demasiado compleja"
-#: cgen.c:961 config/tc-ppc.c:7491 config/tc-s390.c:2602 config/tc-v850.c:3492
+#: cgen.c:956 config/tc-ppc.c:7467 config/tc-s390.c:2613 config/tc-v850.c:3468
#: config/tc-xstormy16.c:541
msgid "unresolved expression that must be resolved"
msgstr "expresión sin resolver que se debe resolver"
-#: cgen.c:986 config/tc-bpf.c:884 config/tc-xstormy16.c:566
+#: cgen.c:981 config/tc-bpf.c:873 config/tc-xstormy16.c:566
#, c-format
msgid "internal error: can't install fix for reloc type %d (`%s')"
-msgstr "error interno: no se puede instalar la reparación para el tipo reubicado %d («%s»)"
+msgstr "error interno: no se puede instalar la reparación para el tipo de reubicación %d («%s»)"
-#: cgen.c:1039 config/tc-bpf.c:368 config/tc-pru.c:786
+#: cgen.c:1034 config/tc-bpf.c:368 config/tc-pru.c:786
msgid "relocation is not supported"
msgstr "no se admite la reubicación"
@@ -778,63 +778,63 @@ msgstr "el valor no puede expresarse como un .cv_ucomp"
msgid "invalid identifier for \".ifdef\""
msgstr "identificador inválido para \".ifdef\""
-#: cond.c:151
+#: cond.c:150
msgid "non-constant expression in \".if\" statement"
msgstr "expresión no constante en sentencia \".if\""
-#: cond.c:279
+#: cond.c:276
msgid "bad format for ifc or ifnc"
msgstr "formato incorrecto para ifc ó ifnc"
-#: cond.c:310
+#: cond.c:306
msgid "\".elseif\" without matching \".if\""
msgstr "\".elseif\" sin su correspondiente \".if\""
-#: cond.c:314
+#: cond.c:310
msgid "\".elseif\" after \".else\""
msgstr "\".elseif\" después de \".else\""
-#: cond.c:317 cond.c:423
+#: cond.c:313 cond.c:419
msgid "here is the previous \".else\""
msgstr "aquí está el anterior \".else\""
-#: cond.c:320 cond.c:426
+#: cond.c:316 cond.c:422
msgid "here is the previous \".if\""
msgstr "aquí está el anterior \".if\""
-#: cond.c:349
+#: cond.c:345
msgid "non-constant expression in \".elseif\" statement"
msgstr "expresión no constante en sentencia \".elseif\""
-#: cond.c:387
+#: cond.c:383
msgid "\".endif\" without \".if\""
msgstr "\".endif\" sin \".if\""
-#: cond.c:416
+#: cond.c:412
msgid "\".else\" without matching \".if\""
msgstr "\".else\" sin su correspondiente \".if\""
-#: cond.c:420
+#: cond.c:416
msgid "duplicate \".else\""
msgstr "\".else\" duplicado"
-#: cond.c:471
+#: cond.c:467
msgid ".ifeqs syntax error"
msgstr "error de sintaxis en .ifeqs"
-#: cond.c:559
+#: cond.c:553
msgid "end of macro inside conditional"
msgstr "fin de macro dentro de un condicional"
-#: cond.c:561
+#: cond.c:555
msgid "end of file inside conditional"
msgstr "final de fichero dentro de un condicional"
-#: cond.c:565
+#: cond.c:559
msgid "here is the start of the unterminated conditional"
msgstr "aquí está el comienzo del condicional sin terminar"
-#: cond.c:569
+#: cond.c:563
msgid "here is the \"else\" of the unterminated conditional"
msgstr "aquí está el \"else\" del condicional sin terminar"
@@ -855,7 +855,7 @@ msgid "Infinities are not supported by this target"
msgstr "No se admiten infinitos en este objetivo"
#: config/atof-ieee.c:825 config/atof-vax.c:449 config/tc-arm.c:1271
-#: config/tc-ia64.c:11573 config/tc-tic30.c:1241 config/tc-tic4x.c:2569
+#: config/tc-ia64.c:11573 config/tc-tic30.c:1241 config/tc-tic4x.c:2565
msgid "Unrecognized or unsupported floating point constant"
msgstr "No reconoce o no admite constante de coma flotante"
@@ -869,99 +869,99 @@ msgstr "Intento de poner un símbolo común en el conjunto %s"
msgid "Attempt to put an undefined symbol into set %s"
msgstr "Intento de poner un símbolo indefinido en el conjunto %s"
-#: config/obj-aout.c:112 config/obj-coff.c:1378
+#: config/obj-aout.c:112 config/obj-coff.c:1375
#, c-format
msgid "Symbol `%s' can not be both weak and common"
msgstr "El símbolo «%s» no puede ser débil y común al mismo tiempo"
-#: config/obj-coff.c:206 config/obj-coff.c:1693 config/tc-tic54x.c:4002
-#: read.c:3047
+#: config/obj-coff.c:206 config/obj-coff.c:1697 config/tc-tic54x.c:3991
+#: read.c:3096
#, c-format
msgid "error setting flags for \"%s\": %s"
msgstr "error al establecer las opciones para «%s»: %s"
#. Zero is used as an end marker in the file.
-#: config/obj-coff.c:424
+#: config/obj-coff.c:423
msgid "Line numbers must be positive integers\n"
msgstr "Los números de línea deben ser enteros positivos\n"
-#: config/obj-coff.c:456
+#: config/obj-coff.c:455
msgid ".ln pseudo-op inside .def/.endef: ignored."
msgstr "pseudo-operador .ln dentro de .def/.endef: se descarta."
-#: config/obj-coff.c:497 ecoff.c:3232
+#: config/obj-coff.c:496 ecoff.c:3204
msgid ".loc outside of .text"
msgstr ".loc fuera de .text"
-#: config/obj-coff.c:504
+#: config/obj-coff.c:503
msgid ".loc pseudo-op inside .def/.endef: ignored."
msgstr "pseudo-operador .loc dentro de .def/.endef: se descarta."
-#: config/obj-coff.c:584
+#: config/obj-coff.c:577
msgid ".def pseudo-op used inside of .def/.endef: ignored."
msgstr "se usó el pseudo-operador .def dentro de .def/.endef: se descarta."
-#: config/obj-coff.c:617
+#: config/obj-coff.c:614
msgid ".endef pseudo-op used outside of .def/.endef: ignored."
msgstr "se usó el pseudo-operador .endef fuera de .def/.endef: se descarta."
-#: config/obj-coff.c:656
+#: config/obj-coff.c:653
#, c-format
msgid "`%s' symbol without preceding function"
msgstr "símbolo «%s» sin función que lo preceda"
-#: config/obj-coff.c:743
+#: config/obj-coff.c:740
#, c-format
msgid "unexpected storage class %d"
msgstr "clase de almacenamiento %d inesperada"
-#: config/obj-coff.c:850
+#: config/obj-coff.c:847
msgid ".dim pseudo-op used outside of .def/.endef: ignored."
msgstr "se usó el pseudo-operador .dim fuera de .def/.endef: se descarta."
-#: config/obj-coff.c:870
+#: config/obj-coff.c:867
msgid "badly formed .dim directive ignored"
msgstr "se descarta la directiva .dim formada incorrectamente"
-#: config/obj-coff.c:919
+#: config/obj-coff.c:916
msgid ".size pseudo-op used outside of .def/.endef: ignored."
msgstr "pseudo-operador .size utilizado fuera de .def/.endef: descartado."
-#: config/obj-coff.c:934
+#: config/obj-coff.c:931
msgid ".scl pseudo-op used outside of .def/.endef: ignored."
msgstr "pseudo-operador .scl utilizado fuera de .def/.endef: descartado."
-#: config/obj-coff.c:951
+#: config/obj-coff.c:948
msgid ".tag pseudo-op used outside of .def/.endef: ignored."
msgstr "pseudo-operador .tag utilizado fuera de .def/.endef; descartado."
-#: config/obj-coff.c:968
+#: config/obj-coff.c:965
#, c-format
msgid "tag not found for .tag %s"
msgstr "no se encontró etiqueta para .tag %s"
-#: config/obj-coff.c:981
+#: config/obj-coff.c:978
msgid ".type pseudo-op used outside of .def/.endef: ignored."
msgstr "pseudo-operador .type utilizado fuera de .def/.endef; descartado."
-#: config/obj-coff.c:1000
+#: config/obj-coff.c:997
msgid ".val pseudo-op used outside of .def/.endef: ignored."
msgstr "pseudo-operador .val utilizado fuera de .def/.endef; descartado."
-#: config/obj-coff.c:1147
+#: config/obj-coff.c:1148
msgid "badly formed .weak directive ignored"
msgstr "se descarta la directiva .weak formada incorrectamente"
-#: config/obj-coff.c:1334
+#: config/obj-coff.c:1335
msgid "mismatched .eb"
msgstr ".eb sin coincidencia"
-#: config/obj-coff.c:1357
+#: config/obj-coff.c:1356
#, c-format
msgid "C_EFCN symbol for %s out of scope"
msgstr "símbolo C_EFCN para %s fuera de ámbito"
-#: config/obj-coff.c:1412
+#: config/obj-coff.c:1409
#, c-format
msgid "Warning: internal error: forgetting to set endndx of %s"
msgstr "Aviso: error interno: se olvida establecer el endndx de %s"
@@ -969,22 +969,22 @@ msgstr "Aviso: error interno: se olvida establecer el endndx de %s"
#. STYP_INFO
#. STYP_LIB
#. STYP_OVER
-#: config/obj-coff.c:1655
+#: config/obj-coff.c:1659
#, c-format
msgid "unsupported section attribute '%c'"
msgstr "no se admite el atributo de sección '%c'"
-#: config/obj-coff.c:1659
+#: config/obj-coff.c:1663
#, c-format
msgid "unknown section attribute '%c'"
msgstr "atributo de sección desconocido '%c'"
-#: config/obj-coff.c:1705 config/obj-macho.c:269
+#: config/obj-coff.c:1709 config/obj-macho.c:269
#, c-format
msgid "Ignoring changed section attributes for %s"
msgstr "Se descartan los atributos sección cambiados para %s"
-#: config/obj-coff.c:1849
+#: config/obj-coff.c:1853
#, c-format
msgid "0x%lx: \"%s\" type = %ld, class = %d, segment = %d\n"
msgstr "0x%lx: «%s» tipo = %ld, clase = %d, segmento = %d\n"
@@ -997,7 +997,7 @@ msgstr "No se puede establecer el valor GP"
msgid "Can't set register masks"
msgstr "No se pueden establecer las máscaras de registro"
-#: config/obj-elf.c:272 config/tc-sparc.c:4383 config/tc-v850.c:508
+#: config/obj-elf.c:272 config/tc-sparc.c:4387 config/tc-v850.c:506
#, c-format
msgid "bad .common segment %s"
msgstr "segmento .common %s incorrecto"
@@ -1006,17 +1006,17 @@ msgstr "segmento .common %s incorrecto"
msgid "Missing symbol name in directive"
msgstr "Falta el nombre de símbolo en la directiva"
-#: config/obj-elf.c:678
+#: config/obj-elf.c:665
#, c-format
msgid "setting incorrect section type for %s"
msgstr "se establece un tipo de sección incorrecto para %s"
-#: config/obj-elf.c:683
+#: config/obj-elf.c:670
#, c-format
msgid "ignoring incorrect section type for %s"
msgstr "se descarta el tipo de sección incorrecto para %s"
-#: config/obj-elf.c:742
+#: config/obj-elf.c:729
#, c-format
msgid "setting incorrect section attributes for %s"
msgstr "se establecen atributos de sección incorrectos para %s"
@@ -1025,290 +1025,302 @@ msgstr "se establecen atributos de sección incorrectos para %s"
#. assembly might get the section type wrong; Even high
#. profile projects like glibc have done so in the past.
#. So don't error in this case.
-#: config/obj-elf.c:836
+#: config/obj-elf.c:823
#, c-format
msgid "ignoring changed section type for %s"
msgstr "se descarta el tipo de sección cambiado para %s"
#. Do error when assembly isn't self-consistent.
-#: config/obj-elf.c:839
+#: config/obj-elf.c:826
#, c-format
msgid "changed section type for %s"
msgstr "tipo de sección cambiado para %s"
-#: config/obj-elf.c:854
+#: config/obj-elf.c:841
#, c-format
msgid "ignoring changed section attributes for %s"
msgstr "se descartan los atributos de sección cambiados para %s"
-#: config/obj-elf.c:856
+#: config/obj-elf.c:843
#, c-format
msgid "changed section attributes for %s"
msgstr "atributos de sección cambiados para %s"
-#: config/obj-elf.c:865
+#: config/obj-elf.c:852
#, c-format
msgid "changed section entity size for %s"
msgstr "tamaño de entidad de sección cambiado para %s"
-#: config/obj-elf.c:947
+#: config/obj-elf.c:934
msgid "unrecognized .section attribute: want a,e,o,w,x,M,S,G,T or number"
msgstr "atributo de .section no reconocido: se desea a,e,o,w,x,M,S,G,T o número"
-#: config/obj-elf.c:1033
+#: config/obj-elf.c:1019
msgid "extraneous characters at end of numeric section type"
msgstr "caracteres extraños al final de tipo de sección numérico"
-#: config/obj-elf.c:1039 read.c:3031
+#: config/obj-elf.c:1025 read.c:3080
msgid "unrecognized section type"
msgstr "tipo de sección no reconocido"
-#: config/obj-elf.c:1064
+#: config/obj-elf.c:1050
msgid "unrecognized section attribute"
msgstr "atributo de sección no reconocido"
-#: config/obj-elf.c:1096 config/tc-alpha.c:4208
+#: config/obj-elf.c:1082 config/tc-alpha.c:4180
msgid "missing name"
msgstr "falta el nombre"
-#: config/obj-elf.c:1166
+#: config/obj-elf.c:1152
msgid "group name not parseable"
msgstr "nombre de grupo no analizable"
-#: config/obj-elf.c:1173
+#: config/obj-elf.c:1159
#, c-format
msgid "section %s already has a group (%s)"
msgstr "la sección %s ya tiene un grupo (%s)"
-#: config/obj-elf.c:1226
+#: config/obj-elf.c:1221
#, c-format
msgid "section name '%s' already defined as another symbol"
msgstr "el nombre de sección «%s» ya está definido como otro símbolo"
-#: config/obj-elf.c:1331
+#. ??? This is here for older versions of gcc that
+#. test for gas string merge support with
+#. '.section .rodata.str, "aMS", @progbits, 1'
+#. Unfortunately '@' begins a comment on arm.
+#. This isn't as_warn because gcc tests with
+#. --fatal-warnings.
+#: config/obj-elf.c:1330
+msgid "missing merge / string entity size, 1 assumed"
+msgstr "falta mezcla / tamaño de entidad de cadena; se asume 1"
+
+#: config/obj-elf.c:1339
msgid "invalid merge / string entity size"
msgstr "mezcla / tamaño de entidad de cadena no válido(s)"
-#: config/obj-elf.c:1345
-msgid "entity size for SHF_MERGE / SHF_STRINGS not specified"
-msgstr "no se especificó el tamaño de entidad para SHF_MERGE / SHF_STRINGS"
+#. ??? Perhaps we should error here. The manual says that
+#. entsize must be specified if SHF_MERGE is set.
+#: config/obj-elf.c:1356
+msgid "entity size for SHF_MERGE not specified"
+msgstr "no se especificó el tamaño de entidad para SHF_MERGE"
-#: config/obj-elf.c:1350
+#: config/obj-elf.c:1369
msgid "bogus SHF_MERGE / SHF_STRINGS for SHT_NOBITS section"
msgstr "SHF_MERGE / SHF_STRINGS falso para sección SHT_NOBITS"
-#: config/obj-elf.c:1391
+#: config/obj-elf.c:1410
msgid "? section flag ignored with G present"
msgstr "se descarta la opción de sección ? con G presente"
-#: config/obj-elf.c:1428
+#: config/obj-elf.c:1447
msgid "group name for SHF_GROUP not specified"
msgstr "no se especificó el nombre de grupo para SHF_GROUP"
-#: config/obj-elf.c:1454
+#: config/obj-elf.c:1473
#, c-format
msgid "unsupported mbind section info: %s"
msgstr "información de sección mbind no admitida: %s"
-#: config/obj-elf.c:1507
+#: config/obj-elf.c:1525
#, c-format
msgid "unsupported section id: %s"
msgstr "id de sección: %s"
-#: config/obj-elf.c:1533
+#: config/obj-elf.c:1551
msgid "character following name is not '#'"
msgstr "el carácter que sigue al nombre no es '#'"
-#: config/obj-elf.c:1561
+#: config/obj-elf.c:1579
#, c-format
msgid "SHF_ALLOC isn't set for GNU_MBIND section: %s"
msgstr "SHF_ALLOC no está establecido para sección GNU_MBIND: %s"
-#: config/obj-elf.c:1568
+#: config/obj-elf.c:1586
#, c-format
msgid "%s section is supported only by GNU and FreeBSD targets"
msgstr "la sección %s solo se admite en objetivos GNU y FreeBSD"
-#: config/obj-elf.c:1706
+#: config/obj-elf.c:1724
msgid ".previous without corresponding .section; ignored"
msgstr ".previous sin .section correspondiente; se descarta"
-#: config/obj-elf.c:1732
+#: config/obj-elf.c:1750
msgid ".popsection without corresponding .pushsection; ignored"
msgstr ".popsection sin .pushsection correspondiente; se descarta"
-#: config/obj-elf.c:1776 config/obj-elf.c:1870
+#: config/obj-elf.c:1794 config/obj-elf.c:1888
#, c-format
msgid "missing version name in `%s' for symbol `%s'"
msgstr "falta el nombre de versión en «%s» para el símbolo «%s»"
-#: config/obj-elf.c:1795
+#: config/obj-elf.c:1813
#, c-format
msgid "only one version name with `@@@' is allowed for symbol `%s'"
msgstr "solo se permite un nombre de versión con «@@@» para el símbolo «%s»"
-#: config/obj-elf.c:1803
+#: config/obj-elf.c:1821
#, c-format
msgid "invalid version name '%s' for symbol `%s'"
msgstr "nombre de versión «%s» no válido para el símbolo «%s»"
-#: config/obj-elf.c:1844
+#: config/obj-elf.c:1862
msgid "expected comma after name in .symver"
msgstr "se esperaba una coma tras el nombre en .symver"
-#: config/obj-elf.c:1861 config/obj-elf.c:2805
+#: config/obj-elf.c:1879 config/obj-elf.c:2807
#, c-format
msgid "`%s' can't be versioned to common symbol '%s'"
msgstr "«%s» no puede ser versionado al símbolo común «%s»"
-#: config/obj-elf.c:1938
+#: config/obj-elf.c:1956
#, c-format
msgid "expected `%s' to have already been set for .vtable_inherit"
msgstr "se esperaba que «%s» ya estuviera definido para .vtable_inherit"
-#: config/obj-elf.c:1948
+#: config/obj-elf.c:1966
msgid "expected comma after name in .vtable_inherit"
msgstr "se esperaba una coma tras el nombre en .vtable_inherit"
-#: config/obj-elf.c:2009
+#: config/obj-elf.c:2027
msgid "expected comma after name in .vtable_entry"
msgstr "se esperaba una coma tras el nombre en .vtable_entry"
-#: config/obj-elf.c:2148
+#: config/obj-elf.c:2166
#, c-format
msgid "Attribute name not recognised: %s"
msgstr "Nombre de atributo no reconocido: %s"
-#: config/obj-elf.c:2165
+#: config/obj-elf.c:2183
msgid "expected numeric constant"
msgstr "se esperaba una constante numérica"
-#: config/obj-elf.c:2174 config/tc-arm.c:6970
+#: config/obj-elf.c:2192 config/tc-arm.c:6959
msgid "expected comma"
msgstr "se esperaba una coma"
-#: config/obj-elf.c:2205 config/tc-arc.c:4946 config/tc-arc.c:4957
-#: config/tc-arc.c:5029 config/tc-arc.c:5080 config/tc-arm.c:32197
-#: config/tc-arm.c:32208 config/tc-csky.c:1697 config/tc-csky.c:1709
-#: config/tc-csky.c:1880 config/tc-mips.c:20645 config/tc-msp430.c:5148
-#: config/tc-riscv.c:5523 config/tc-riscv.c:5566 config/tc-sparc.c:1134
-#: config/tc-tic6x.c:4384
+#: config/obj-elf.c:2223 config/tc-arc.c:4943 config/tc-arc.c:4954
+#: config/tc-arc.c:5026 config/tc-arc.c:5077 config/tc-arm.c:32142
+#: config/tc-arm.c:32153 config/tc-csky.c:1721 config/tc-csky.c:1733
+#: config/tc-csky.c:1904 config/tc-mips.c:20662 config/tc-msp430.c:5152
+#: config/tc-riscv.c:5657 config/tc-riscv.c:5700 config/tc-sparc.c:1134
+#: config/tc-tic6x.c:4383
#, c-format
msgid "error adding attribute: %s"
msgstr "error al añadir atributo: %s"
-#: config/obj-elf.c:2211
+#: config/obj-elf.c:2229
msgid "bad string constant"
msgstr "constante de cadena incorrecta"
-#: config/obj-elf.c:2215
+#: config/obj-elf.c:2233
msgid "expected <tag> , <value>"
msgstr "se esperaba <etiqueta> , <valor>"
-#: config/obj-elf.c:2344
+#: config/obj-elf.c:2348
msgid "expected quoted string"
msgstr "se esperaba una cadena entre comillas"
-#: config/obj-elf.c:2364
+#: config/obj-elf.c:2368
#, c-format
msgid "expected comma after name `%s' in .size directive"
msgstr "se esperaba una coma tras el nombre «%s» en la directiva .size"
-#: config/obj-elf.c:2373
+#: config/obj-elf.c:2377
msgid "missing expression in .size directive"
msgstr "falta expresión en la directiva .size"
-#: config/obj-elf.c:2500
+#: config/obj-elf.c:2503
#, c-format
msgid "symbol '%s' is already defined"
msgstr "el símbolo «%s» ya está definido"
-#: config/obj-elf.c:2520
+#: config/obj-elf.c:2523
#, c-format
msgid "symbol type \"%s\" is supported only by GNU and FreeBSD targets"
msgstr "el tipo de símbolo «%s» solo se admite en objetivos GNU y FreeBSD"
-#: config/obj-elf.c:2524
+#: config/obj-elf.c:2527
#, c-format
msgid "symbol type \"%s\" is not supported by MIPS targets"
msgstr "el tipo de símbolo «%s» no está disponible en objetivos MIPS"
-#: config/obj-elf.c:2536
+#: config/obj-elf.c:2539
#, c-format
msgid "symbol type \"%s\" is supported only by GNU targets"
msgstr "el tipo de símbolo «%s» solo se admite en objetivos GNU"
-#: config/obj-elf.c:2546 config/tc-kvx.c:2279
+#: config/obj-elf.c:2549 config/tc-kvx.c:2279
#, c-format
msgid "unrecognized symbol type \"%s\""
msgstr "tipo de símbolo no reconocido «%s»"
-#: config/obj-elf.c:2567
+#: config/obj-elf.c:2570
#, c-format
msgid "cannot change type of common symbol '%s'"
msgstr "no puede cambiersa el tipo del símbolo común «%s»"
-#: config/obj-elf.c:2579
+#: config/obj-elf.c:2582
#, c-format
msgid "symbol '%s' already has its type set"
msgstr "el símbolo «%s» ya tiene su tipo establecido"
-#: config/obj-elf.c:2681
+#: config/obj-elf.c:2684
#, c-format
msgid "undefined linked-to symbol `%s' on section `%s'"
msgstr "símbolo enlazado-a `%s' en la sección `%s'"
-#: config/obj-elf.c:2778 config/obj-elf.c:2781
+#: config/obj-elf.c:2781 config/obj-elf.c:2784
#, c-format
msgid ".size expression for %s does not evaluate to a constant"
msgstr "la expresión .size para %s no evalúa a una constante"
-#: config/obj-elf.c:2870
+#: config/obj-elf.c:2872
#, c-format
msgid "symbol '%s' with multiple versions cannot be used in relocation"
msgstr "el símbolo «%s» con varias versiones no puede utilizarse en una reubicación"
-#: config/obj-elf.c:2888 ecoff.c:3576
+#: config/obj-elf.c:2890 ecoff.c:3539
#, c-format
msgid "symbol `%s' can not be both weak and common"
msgstr "el símbolo «%s» no puede ser débil y común al mismo tiempo"
-#: config/obj-elf.c:2932
+#: config/obj-elf.c:2934
#, c-format
msgid "assuming all members of group `%s' are COMDAT"
msgstr "se asume que todos los miembros del grupo «%s» son COMDAT"
-#: config/obj-elf.c:2944
+#: config/obj-elf.c:2946
#, c-format
msgid "can't create group: %s"
msgstr "no se puede crear el grupo: %s"
-#: config/obj-elf.c:3021
+#: config/obj-elf.c:3023
#, c-format
msgid "invalid attempt to declare external version name as default in symbol `%s'"
msgstr "intento no válido de declarar un nombre de versión externo como predeterminado en el símbolo «%s»"
-#: config/obj-elf.c:3031
+#: config/obj-elf.c:3033
#, c-format
msgid "multiple versions [`%s'|`%s'] for symbol `%s'"
msgstr "varias versiones [«%s»|«%s»] para el símbolo «%s»"
-#: config/obj-elf.c:3120
+#: config/obj-elf.c:3123
#, c-format
msgid "failed to set up debugging information: %s"
msgstr "falló al establecer la información de depuración: %s"
-#: config/obj-elf.c:3140
+#: config/obj-elf.c:3143
#, c-format
msgid "can't start writing .mdebug section: %s"
msgstr "no se puede iniciar la escritura de la sección .mdebug: %s"
-#: config/obj-elf.c:3148
+#: config/obj-elf.c:3151
#, c-format
msgid "could not write .mdebug section: %s"
msgstr "no se puede escribir la sección .mdebug: %s"
-#: config/obj-evax.c:122
+#: config/obj-evax.c:121
#, c-format
msgid "no entry symbol for global function '%s'"
msgstr "no hay símbolo de entrada para la función global «%s»"
@@ -1360,32 +1372,32 @@ msgstr "información inesperada de tamaño de sección"
msgid "missing sizeof_stub expression"
msgstr "falta expresión sizeof_stub"
-#: config/obj-macho.c:478 config/tc-ia64.c:1080 config/tc-ia64.c:11734
-#: config/tc-score.c:6073 expr.c:1260 read.c:1784
+#: config/obj-macho.c:478 config/tc-ia64.c:1080 config/tc-ia64.c:11733
+#: config/tc-score.c:6072 expr.c:1274 read.c:1780
msgid "expected symbol name"
msgstr "se esperaba un nombre de símbolo"
-#: config/obj-macho.c:491 read.c:558
+#: config/obj-macho.c:491 read.c:539
msgid "bad or irreducible absolute expression"
msgstr "expresión absoluta incorrecta o irreducible"
-#: config/obj-macho.c:497 config/tc-score.c:6090 read.c:1823
+#: config/obj-macho.c:497 config/tc-score.c:6089 read.c:1819
msgid "missing size expression"
msgstr "falta expresión de tamaño"
-#: config/obj-macho.c:506 config/tc-ia64.c:1115 read.c:1829
+#: config/obj-macho.c:506 config/tc-ia64.c:1115 read.c:1825
#, c-format
msgid "size (%ld) out of range, ignored"
msgstr "tamaño (%ld) fuera de rango, se descarta"
-#: config/obj-macho.c:516 config/tc-score.c:6216 dwarf2dbg.c:1431 ecoff.c:3345
-#: read.c:1841 read.c:1944 read.c:2718 read.c:3311 read.c:3906 symbols.c:579
-#: symbols.c:674
+#: config/obj-macho.c:516 config/tc-score.c:6215 dwarf2dbg.c:1431 ecoff.c:3315
+#: read.c:1837 read.c:1940 read.c:2767 read.c:3359 read.c:3959 symbols.c:574
+#: symbols.c:666
#, c-format
msgid "symbol `%s' is already defined"
msgstr "el símbolo «%s» ya está definido"
-#: config/obj-macho.c:526 read.c:1856
+#: config/obj-macho.c:526 read.c:1852
#, c-format
msgid "size of \"%s\" is already %ld; not changing to %ld"
msgstr "El tamaño de «%s» ya es %ld; no se va a cambiar a %ld"
@@ -1480,17 +1492,12 @@ msgstr "«%s» no puede estar indefinido en «%s» {sección %s} - «%s»"
msgid "`%s' and `%s' can't be undefined in `%s' - `%s'"
msgstr "«%s» y «%s» no pueden estar indefinidos en «%s» - «%s»"
-#: config/obj-macho.c:1806
+#: config/obj-macho.c:1805
#, c-format
msgid "the number of .indirect_symbols defined in section %s does not match the number expected (%d defined, %d expected)"
msgstr "el número de .indirect_symbols definidos en la sección %s no coincide con el número esperado (%d definido, %d esperado)"
-#: config/obj-macho.c:1826
-#, c-format
-msgid "internal error: failed to allocate %d indirectsymbol pointers"
-msgstr "error interno: no se ha podido asignar %d punteros de símbolo indirectos"
-
-#: config/obj-macho.c:1840 config/obj-macho.c:1863
+#: config/obj-macho.c:1834 config/obj-macho.c:1857
msgid "internal error: more indirect mach-o symbols than expected"
msgstr "error interno: más símbolos «mach-o» indirectos que los esperados"
@@ -1668,11 +1675,11 @@ msgid "expected an SVE vector register or ZA tile slice at operand %d"
msgstr "se esperaba un registro vectorial SVE o una rodaja de matriz ZA para el operando %d"
#: config/tc-aarch64.c:715 config/tc-aarch64.c:717 config/tc-arm.c:1188
-#: config/tc-score.c:6435 expr.c:1423 read.c:2700
+#: config/tc-score.c:6434 expr.c:1446 read.c:2749
msgid "bad expression"
msgstr "expresión incorrecta"
-#: config/tc-aarch64.c:728 config/tc-sparc.c:3380
+#: config/tc-aarch64.c:728 config/tc-sparc.c:3386
msgid "bad segment"
msgstr "segmento incorrecto"
@@ -1708,9 +1715,9 @@ msgstr "carácter inesperado `%c' en tipo de predicación"
msgid "missing predication type"
msgstr "falta el tipo de predicación"
-#: config/tc-aarch64.c:1176 config/tc-aarch64.c:2324 config/tc-aarch64.c:2585
-#: config/tc-arm.c:1765 config/tc-arm.c:3972 config/tc-arm.c:5205
-#: config/tc-arm.c:7251
+#: config/tc-aarch64.c:1176 config/tc-aarch64.c:2324 config/tc-aarch64.c:2594
+#: config/tc-arm.c:1758 config/tc-arm.c:3965 config/tc-arm.c:5199
+#: config/tc-arm.c:7240
msgid "constant expression required"
msgstr "se requiere una expresión constante"
@@ -1771,30 +1778,30 @@ msgstr "demasiados registros en el listado de registros de vector"
msgid "empty vector register list"
msgstr "listado de registros de vector vacío"
-#: config/tc-aarch64.c:1609 config/tc-arm.c:2534
+#: config/tc-aarch64.c:1609 config/tc-arm.c:2526
#, c-format
msgid "ignoring attempt to redefine built-in register '%s'"
msgstr "se descarta el intento de redefinir el registro interno «%s»"
-#: config/tc-aarch64.c:1615 config/tc-arm.c:2539
+#: config/tc-aarch64.c:1615 config/tc-arm.c:2531
#, c-format
msgid "ignoring redefinition of register alias '%s'"
msgstr "se descarta la redefinición del alias de registro «%s»"
-#: config/tc-aarch64.c:1660 config/tc-arm.c:2604
+#: config/tc-aarch64.c:1660 config/tc-arm.c:2596
#, c-format
msgid "unknown register '%s' -- .req ignored"
msgstr "el registro «%s» desconocido -- se descarta .req"
-#: config/tc-aarch64.c:1718 config/tc-arm.c:2812
+#: config/tc-aarch64.c:1718 config/tc-arm.c:2804
msgid "invalid syntax for .req directive"
msgstr "sintaxis no válida para directiva .reg"
-#: config/tc-aarch64.c:1739 config/tc-arm.c:2845
+#: config/tc-aarch64.c:1739 config/tc-arm.c:2837
msgid "invalid syntax for .unreq directive"
msgstr "sintaxis no válida para directiva .unreq"
-#: config/tc-aarch64.c:1745 config/tc-arm.c:2852
+#: config/tc-aarch64.c:1745 config/tc-arm.c:2843
#, c-format
msgid "unknown register alias '%s'"
msgstr "alias de registro desconocido «%s»"
@@ -1804,13 +1811,13 @@ msgstr "alias de registro desconocido «%s»"
msgid "ignoring attempt to undefine built-in register '%s'"
msgstr "se descarta el intento de suprimir la definición del registro interno «%s»"
-#: config/tc-aarch64.c:2061 config/tc-arm.c:3583 config/tc-arm.c:3610
-#: config/tc-arm.c:3623
+#: config/tc-aarch64.c:2061 config/tc-arm.c:3577 config/tc-arm.c:3604
+#: config/tc-arm.c:3617
msgid "literal pool overflow"
msgstr "desbordamiento en el conjunto de literales"
-#: config/tc-aarch64.c:2242 config/tc-aarch64.c:7473 config/tc-arm.c:3845
-#: config/tc-arm.c:7677
+#: config/tc-aarch64.c:2242 config/tc-aarch64.c:7535 config/tc-arm.c:3839
+#: config/tc-arm.c:7666
msgid "unrecognized relocation suffix"
msgstr "sufijo de reubicación no reconocido"
@@ -1818,1218 +1825,1211 @@ msgstr "sufijo de reubicación no reconocido"
msgid "unimplemented relocation suffix"
msgstr "sufijo de reubicación no implementado"
-#: config/tc-aarch64.c:2552 config/tc-aarch64.c:2743 config/tc-aarch64.c:2787
-#: config/tc-csky.c:2336
+#: config/tc-aarch64.c:2561 config/tc-aarch64.c:2752 config/tc-aarch64.c:2796
+#: config/tc-csky.c:2360
msgid "immediate operand required"
msgstr "operando inmediato requerido"
-#: config/tc-aarch64.c:2561
+#: config/tc-aarch64.c:2570
msgid "missing immediate expression"
msgstr "falta expresión inmediata"
-#: config/tc-aarch64.c:2767 config/tc-aarch64.c:7296 config/tc-aarch64.c:7316
+#: config/tc-aarch64.c:2776 config/tc-aarch64.c:7351 config/tc-aarch64.c:7373
msgid "invalid floating-point constant"
msgstr "constante de coma flotante no válida"
-#: config/tc-aarch64.c:3575 config/tc-arm.c:5452 config/tc-arm.c:5462
+#: config/tc-aarch64.c:3584 config/tc-arm.c:5446 config/tc-arm.c:5454
msgid "shift expression expected"
msgstr "se esperaba expresión de desplazamiento"
-#: config/tc-aarch64.c:3583
+#: config/tc-aarch64.c:3592
msgid "shift operator expected"
msgstr "se esperaba operador de desplazamiento"
-#: config/tc-aarch64.c:3591
+#: config/tc-aarch64.c:3600
msgid "invalid use of 'MSL'"
msgstr "utilización no válida de 'MSL'"
-#: config/tc-aarch64.c:3599
+#: config/tc-aarch64.c:3608
msgid "invalid use of 'MUL'"
msgstr "utilización no válida de 'MUL'"
-#: config/tc-aarch64.c:3608
+#: config/tc-aarch64.c:3617
msgid "extending shift is not permitted"
msgstr "no está permitido extender el desplazamiento"
-#: config/tc-aarch64.c:3616
+#: config/tc-aarch64.c:3625
msgid "'ROR' shift is not permitted"
msgstr "el desplazamiento 'ROR' no está permitido"
-#: config/tc-aarch64.c:3624
+#: config/tc-aarch64.c:3633
msgid "only 'LSL' shift is permitted"
msgstr "solo está permitido el desplazamiento 'LSL'"
-#: config/tc-aarch64.c:3632
+#: config/tc-aarch64.c:3641
msgid "only 'MUL' is permitted"
msgstr "solo 'MUL' está permitido"
-#: config/tc-aarch64.c:3650
+#: config/tc-aarch64.c:3659
msgid "only 'MUL VL' is permitted"
msgstr "solo 'MUL VL' está permitido"
-#: config/tc-aarch64.c:3658
+#: config/tc-aarch64.c:3667
msgid "invalid shift for the register offset addressing mode"
msgstr "desplazamiento inválido para el modo de direccionamiento de desplazamiento de registro"
-#: config/tc-aarch64.c:3666
+#: config/tc-aarch64.c:3675
msgid "invalid shift operator"
msgstr "operador de desplazamiento no válido"
-#: config/tc-aarch64.c:3700
+#: config/tc-aarch64.c:3709
msgid "missing shift amount"
msgstr "falta la cantidad de desplazamiento"
-#: config/tc-aarch64.c:3707
+#: config/tc-aarch64.c:3716
msgid "constant shift amount required"
msgstr "cantidad de desplazamiento constante requerida"
-#: config/tc-aarch64.c:3716
+#: config/tc-aarch64.c:3725
msgid "shift amount out of range 0 to 63"
msgstr "cantidad de desplazamiento fuera del rango 0 a 63"
-#: config/tc-aarch64.c:3766
+#: config/tc-aarch64.c:3775
msgid "unexpected shift operator"
msgstr "operador de desplazamiento inesperado"
-#: config/tc-aarch64.c:3802
+#: config/tc-aarch64.c:3811
msgid "unexpected register in the immediate operand"
msgstr "el registro no esperado en el operando inmediato"
-#: config/tc-aarch64.c:3827
+#: config/tc-aarch64.c:3836
msgid "integer register expected in the extended/shifted operand register"
msgstr "se esperaba registro entero en el registro de operando extendido/desplazado"
-#: config/tc-aarch64.c:3865
+#: config/tc-aarch64.c:3874
msgid "integer register expected in the shifted operand register"
msgstr "se esperaba registro entero en el registro de operando desplazado"
-#: config/tc-aarch64.c:3897 config/tc-aarch64.c:4084 config/tc-aarch64.c:4225
-#: config/tc-aarch64.c:4425 config/tc-aarch64.c:4467
+#: config/tc-aarch64.c:3906 config/tc-aarch64.c:4093 config/tc-aarch64.c:4234
+#: config/tc-aarch64.c:4434 config/tc-aarch64.c:4476
msgid "unknown relocation modifier"
msgstr "modificador de reubicación desconocido"
-#: config/tc-aarch64.c:3904 config/tc-aarch64.c:4103 config/tc-aarch64.c:4232
-#: config/tc-aarch64.c:4432 config/tc-aarch64.c:4474
+#: config/tc-aarch64.c:3913 config/tc-aarch64.c:4112 config/tc-aarch64.c:4241
+#: config/tc-aarch64.c:4441 config/tc-aarch64.c:4483
msgid "this relocation modifier is not allowed on this instruction"
msgstr "este modificador de reubicación no está permitido en esta instrucción"
-#: config/tc-aarch64.c:4112 config/tc-aarch64.c:4244
+#: config/tc-aarch64.c:4121 config/tc-aarch64.c:4253
msgid "invalid relocation expression"
msgstr "expresión de reubicación no válida"
-#: config/tc-aarch64.c:4129
+#: config/tc-aarch64.c:4138
msgid "invalid address"
msgstr "dirección no válida"
-#: config/tc-aarch64.c:4147
+#: config/tc-aarch64.c:4156
msgid "expected a 64-bit base register"
msgstr "se esperaba un registro de base de 64 bits"
-#: config/tc-aarch64.c:4149
+#: config/tc-aarch64.c:4158
msgid "invalid base register"
msgstr "el registro de base no válido"
-#: config/tc-aarch64.c:4151
+#: config/tc-aarch64.c:4160
msgid "expected a base register"
msgstr "se esperaba un registro de base"
-#: config/tc-aarch64.c:4167 config/tc-aarch64.c:4305
+#: config/tc-aarch64.c:4176 config/tc-aarch64.c:4314
msgid "invalid offset register"
msgstr "el registro de desplazamiento no válido"
-#: config/tc-aarch64.c:4194
+#: config/tc-aarch64.c:4203
msgid "invalid use of 32-bit register offset"
msgstr "utilización no válida de desplazamiento de registro de 32 bits"
-#: config/tc-aarch64.c:4203
+#: config/tc-aarch64.c:4212
msgid "offset has different size from base"
msgstr "el desplazamiento tiene distinto tamaño que la base"
-#: config/tc-aarch64.c:4209
+#: config/tc-aarch64.c:4218
msgid "invalid use of 64-bit register offset"
msgstr "utilización no válida de desplazamiento de registro de 64 bits"
#. [Xn],#expr
-#: config/tc-aarch64.c:4258 config/tc-aarch64.c:4316
+#: config/tc-aarch64.c:4267 config/tc-aarch64.c:4325
msgid "invalid expression in the address"
msgstr "expresión no válida en la dirección"
-#: config/tc-aarch64.c:4272 config/tc-arm.c:6051 config/tc-arm.c:6650
+#: config/tc-aarch64.c:4281 config/tc-arm.c:6043 config/tc-arm.c:6639
msgid "']' expected"
msgstr "se esperaba ']'"
-#: config/tc-aarch64.c:4280
+#: config/tc-aarch64.c:4289
msgid "register offset not allowed in pre-indexed addressing mode"
msgstr "desplazamiento de registro no permitido en modo direccionamiento pre-indexado"
-#: config/tc-aarch64.c:4295 config/tc-arm.c:6087
+#: config/tc-aarch64.c:4304 config/tc-arm.c:6079
msgid "cannot combine pre- and post-indexing"
msgstr "no se puede combinar pre y post-indexación"
#. Reject [Rn]!
-#: config/tc-aarch64.c:4340
+#: config/tc-aarch64.c:4349
msgid "missing offset in the pre-indexed address"
msgstr "falta el desplazamiento en dirección pre-indexada"
-#: config/tc-aarch64.c:4683
+#: config/tc-aarch64.c:4694
msgid "expected '['"
msgstr "se esperaba '['"
-#: config/tc-aarch64.c:4691
+#: config/tc-aarch64.c:4702
msgid "expected a 32-bit selection register"
msgstr "se esperaba un registro de selección de 32 bits"
-#: config/tc-aarch64.c:4698
+#: config/tc-aarch64.c:4709
msgid "missing immediate offset"
msgstr "falta desplazamiento inmediato"
-#: config/tc-aarch64.c:4704 config/tc-aarch64.c:4713
+#: config/tc-aarch64.c:4715 config/tc-aarch64.c:4724
msgid "expected a constant immediate offset"
msgstr "se esperaba un desplazamiento inmediato constante"
-#: config/tc-aarch64.c:4718
+#: config/tc-aarch64.c:4729
msgid "the last offset is less than the first offset"
msgstr "el último desplazamiento es menor que el primer desplazamiento"
-#: config/tc-aarch64.c:4724
+#: config/tc-aarch64.c:4735
msgid "the last offset is equal to the first offset"
msgstr "el último desplazamiento es igual que el primer desplazamiento"
-#: config/tc-aarch64.c:4746
+#: config/tc-aarch64.c:4757
msgid "invalid vector group size"
msgstr "tamaño de grupo de vectores no válido"
-#: config/tc-aarch64.c:4753
+#: config/tc-aarch64.c:4764
msgid "expected ']'"
msgstr "se esperaba ']'"
-#: config/tc-aarch64.c:4813 config/tc-aarch64.c:4921
+#: config/tc-aarch64.c:4824 config/tc-aarch64.c:4932
msgid "expected '}'"
msgstr "se esperaba '}'"
-#: config/tc-aarch64.c:4872
+#: config/tc-aarch64.c:4883
msgid "ZA tile masks do not operate at .Q granularity"
msgstr "las máscaras de matriz ZA no operan con granularidad .Q"
-#: config/tc-aarch64.c:4878
+#: config/tc-aarch64.c:4889
msgid "missing ZA tile size"
msgstr "falta el tamaño de la matriz ZA"
-#: config/tc-aarch64.c:4883
+#: config/tc-aarch64.c:4894
msgid "invalid ZA tile"
msgstr "matriz ZA no válida"
-#: config/tc-aarch64.c:4908
+#: config/tc-aarch64.c:4919
msgid "expected '{'"
msgstr "se esperaba '{'"
-#: config/tc-aarch64.c:4949
+#: config/tc-aarch64.c:4960
msgid "expected SM or ZA operand"
msgstr "se esperaba un operando SM o ZA"
-#: config/tc-aarch64.c:5012
+#: config/tc-aarch64.c:5028
#, c-format
msgid "selected processor does not support PSTATE field name '%s'"
msgstr "el procesador seleccionado no admite el nombre de campo PSTATE '%s'"
-#: config/tc-aarch64.c:5017 config/tc-aarch64.c:5062
+#: config/tc-aarch64.c:5033 config/tc-aarch64.c:5078
#, c-format
msgid "selected processor does not support system register name '%s'"
msgstr "el procesador seleccionado no admite el nombre de registro del sistema «%s»"
-#: config/tc-aarch64.c:5020
+#: config/tc-aarch64.c:5036
#, c-format
msgid "128-bit-wide accsess not allowed on selected system register '%s'"
msgstr "el acceso de ancho de 128 bits no está permitido en el registro del sistema seleccionado «%s»"
-#: config/tc-aarch64.c:5023 config/tc-aarch64.c:5065
+#: config/tc-aarch64.c:5039 config/tc-aarch64.c:5081
#, c-format
msgid "system register name '%s' is deprecated and may be removed in a future release"
msgstr "el nombre de registro del sistema «%s» está obsoleto y puede desaparecer en futuras versiones"
-#: config/tc-aarch64.c:5104
+#: config/tc-aarch64.c:5122
msgid "immediate value out of range "
msgstr "valor inmediato fuera de rango "
-#: config/tc-aarch64.c:5707 messages.c:151
+#: config/tc-aarch64.c:5733 messages.c:151
#, c-format
msgid "Info: "
msgstr "Info: "
-#: config/tc-aarch64.c:5725
+#: config/tc-aarch64.c:5751
#, c-format
msgid "missing braces at operand %d"
msgstr "faltan las llaves para el operando %d"
-#: config/tc-aarch64.c:5736
+#: config/tc-aarch64.c:5762
#, c-format
msgid "unexpected register type at operand %d"
msgstr "tipo de registro no esperado para el operando %d"
-#: config/tc-aarch64.c:5747
+#: config/tc-aarch64.c:5773
#, c-format
msgid "invalid register list at operand %d"
msgstr "lista de registros no válida para el operando %d"
-#: config/tc-aarch64.c:5760
+#: config/tc-aarch64.c:5786
#, c-format
msgid "expected a register at operand %d"
msgstr "se esperaba un registro para el operando %d"
-#: config/tc-aarch64.c:5767
+#: config/tc-aarch64.c:5793
#, c-format
msgid "expected '{' at operand %d"
msgstr "se esperaba '{' para el operando %d"
-#: config/tc-aarch64.c:5769
+#: config/tc-aarch64.c:5795
#, c-format
msgid "expected a register or register list at operand %d"
msgstr "se esperaba un registro o una lista de registros para el operando %d"
-#: config/tc-aarch64.c:5794
+#: config/tc-aarch64.c:5820
#, c-format
msgid "this `%s' should have an immediately preceding `%s' -- `%s'"
msgstr "este «%s» debería ir inmediatamente precedido de «%s» -- «%s»"
-#: config/tc-aarch64.c:5800
+#: config/tc-aarch64.c:5826
#, c-format
msgid "the preceding `%s' should be followed by `%s` rather than `%s` -- `%s'"
msgstr "el «%s» precedente debería ir seguido de «%s» en lugar de «%s» -- «%s»"
-#: config/tc-aarch64.c:5812 config/tc-aarch64.c:5827 config/tc-score.c:2748
-#: config/tc-score.c:6424
+#: config/tc-aarch64.c:5838 config/tc-aarch64.c:5853 config/tc-score.c:2745
+#: config/tc-score.c:6423
#, c-format
msgid "%s -- `%s'"
msgstr "%s -- «%s»"
-#: config/tc-aarch64.c:5829
+#: config/tc-aarch64.c:5855
#, c-format
msgid "%s at operand %d -- `%s'"
msgstr "%s en el operando %d -- «%s»"
-#: config/tc-aarch64.c:5835
+#: config/tc-aarch64.c:5861
#, c-format
msgid "operand %d must be %s -- `%s'"
msgstr "el operando %d debe ser %s -- `%s'"
-#: config/tc-aarch64.c:5841
+#: config/tc-aarch64.c:5867
#, c-format
msgid "operand mismatch -- `%s'"
msgstr "el operando no coincide -- «%s»"
#. Print the hint.
-#: config/tc-aarch64.c:5901
+#: config/tc-aarch64.c:5927
msgid " did you mean this?"
msgstr " ¿quiso decir ésto?"
-#: config/tc-aarch64.c:5904 config/tc-aarch64.c:5931
+#: config/tc-aarch64.c:5930 config/tc-aarch64.c:5957
#, c-format
msgid " %s"
msgstr " %s"
-#: config/tc-aarch64.c:5909
+#: config/tc-aarch64.c:5935
msgid " other valid variant(s):"
msgstr " otra(s) variante(s) válida(s):"
-#: config/tc-aarch64.c:5938
+#: config/tc-aarch64.c:5964
#, c-format
msgid "operand %d must have the same immediate value as operand 1 -- `%s'"
msgstr "el operando %d debe tener el mismo valor inmediato que el operando 1 -- «%s»"
-#: config/tc-aarch64.c:5944
+#: config/tc-aarch64.c:5970
#, c-format
msgid "operand %d must be the same register as operand 1 -- `%s'"
msgstr "el operando %d debe ser el mismo registro que el operando 1 -- «%s»"
-#: config/tc-aarch64.c:5949
+#: config/tc-aarch64.c:5975
#, c-format
msgid "%s%d-%s%d expected at operand %d -- `%s'"
msgstr "se esperaba %s%d-%s%d en el operando %d -- «%s»"
-#: config/tc-aarch64.c:5956
+#: config/tc-aarch64.c:5982
#, c-format
msgid "%s out of range %d to %d at operand %d -- `%s'"
msgstr "%s fuera de rango %d a %d en el operando %d -- «%s»"
-#: config/tc-aarch64.c:5957 config/tc-aarch64.c:5961 config/tc-aarch64.c:8372
+#: config/tc-aarch64.c:5983 config/tc-aarch64.c:5987 config/tc-aarch64.c:8470
msgid "immediate value"
msgstr "valor inmediato"
-#: config/tc-aarch64.c:5960
+#: config/tc-aarch64.c:5986
#, c-format
msgid "%s must be %d at operand %d -- `%s'"
msgstr "%s debe ser %d en el operando %d -- «%s»"
-#: config/tc-aarch64.c:5967
+#: config/tc-aarch64.c:5993
#, c-format
msgid "unexpected vector group size at operand %d -- `%s'"
msgstr "tamaño de grupo de vectores inesperado en el operando %d -- «%s»"
-#: config/tc-aarch64.c:5970
+#: config/tc-aarch64.c:5996
#, c-format
msgid "operand %d must have a vector group size of %d -- `%s'"
msgstr "el operando %d debe tener un tamaño de grupo de vectores de %d -- «%s»"
-#: config/tc-aarch64.c:5976
+#: config/tc-aarch64.c:6002
#, c-format
msgid "expected a single-register list at operand %d -- `%s'"
msgstr "se esperaba una lista de registros sencillos en el operando %d -- «%s»"
-#: config/tc-aarch64.c:5979
+#: config/tc-aarch64.c:6005
#, c-format
msgid "expected a list of %d registers at operand %d -- `%s'"
msgstr "se esperaba una lista de %d registros en el operando %d -- «%s»"
-#: config/tc-aarch64.c:5982
+#: config/tc-aarch64.c:6008
#, c-format
msgid "expected a list of %d or %d registers at operand %d -- `%s'"
msgstr "se esperaba una lista de %d o %d registros en el operando %d -- «%s»"
-#: config/tc-aarch64.c:5986
+#: config/tc-aarch64.c:6012
#, c-format
msgid "invalid number of registers in the list at operand %d -- `%s'"
msgstr "número no válido de registros en la lista en el operando %d -- `%s'"
-#: config/tc-aarch64.c:5992
+#: config/tc-aarch64.c:6018
#, c-format
msgid "the register list must have a stride of %d at operand %d -- `%s'"
msgstr "la lista de registros debe tener un avance de %d en el operando %d -- «%s»"
-#: config/tc-aarch64.c:5995
+#: config/tc-aarch64.c:6021
#, c-format
msgid "the register list must have a stride of %d or %d at operand %d -- `%s`"
msgstr "la lista de registros debe tener un avance de %d o %d en el operando %d -- «%s»"
-#: config/tc-aarch64.c:5999
+#: config/tc-aarch64.c:6025
#, c-format
msgid "invalid register stride at operand %d -- `%s'"
msgstr "avance de registro inesperado en el operando %d -- «%s»"
-#: config/tc-aarch64.c:6004
+#: config/tc-aarch64.c:6030
#, c-format
msgid "immediate value must be a multiple of %d at operand %d -- `%s'"
msgstr "el valor inmediato debe ser múltiplo de %d en el operando %d «%s»"
-#: config/tc-aarch64.c:6448
+#: config/tc-aarch64.c:6473
msgid "the specified relocation type is not allowed for MOVK"
msgstr "el tipo de reubicación especificado no está permitido para MOVK"
-#: config/tc-aarch64.c:6496 config/tc-aarch64.c:6507
+#: config/tc-aarch64.c:6521 config/tc-aarch64.c:6532
msgid "the specified relocation type is not allowed for 32-bit register"
msgstr "el tipo de reubicación especificado no está permitido para registros de 32 bits"
-#: config/tc-aarch64.c:6602
+#: config/tc-aarch64.c:6627
msgid "relocation qualifier does not match instruction size"
msgstr "el cualificador de reubicación no coincide con el tamaño de la instrucción"
-#: config/tc-aarch64.c:6703
+#: config/tc-aarch64.c:6741
msgid "comma expected between operands"
msgstr "se esperaba coma entre los operandos"
-#: config/tc-aarch64.c:6739
+#: config/tc-aarch64.c:6777
msgid "invalid Rt register number in 64-byte load/store"
msgstr "número de registro Rt no válido en carga/almacenamiento de 64 bytes"
-#: config/tc-aarch64.c:6876
+#: config/tc-aarch64.c:6915
msgid "the top half of a 128-bit FP/SIMD register is expected"
msgstr "se espera la mitad superior de un registro FP/SIMD de 128 bits"
-#: config/tc-aarch64.c:6989 config/tc-aarch64.c:7039 config/tc-arm.c:2207
-#: config/tc-arm.c:2252 config/tc-h8300.c:1041
+#: config/tc-aarch64.c:7029 config/tc-aarch64.c:7079 config/tc-arm.c:2200
+#: config/tc-arm.c:2245 config/tc-h8300.c:1041
msgid "invalid register list"
msgstr "lista de registros no válida"
-#: config/tc-aarch64.c:7046
+#: config/tc-aarch64.c:7086
msgid "expected element type rather than vector type"
msgstr "se esperaba un tipo de elemento en vez de un tipo de vector"
-#: config/tc-aarch64.c:7064
+#: config/tc-aarch64.c:7104
msgid "missing type suffix"
msgstr "falta sufijo de tipo"
-#: config/tc-aarch64.c:7086
+#: config/tc-aarch64.c:7126
msgid "C8 - C9 expected"
msgstr "se esperaba C8 - C9"
-#: config/tc-aarch64.c:7092
+#: config/tc-aarch64.c:7132
msgid "C0 - C7 expected"
msgstr "se esperaba C0 - C7"
-#: config/tc-aarch64.c:7098
+#: config/tc-aarch64.c:7138
msgid "C0 - C15 expected"
msgstr "se esperaba C0 - C15"
-#: config/tc-aarch64.c:7210 config/tc-aarch64.c:7234
+#: config/tc-aarch64.c:7260 config/tc-aarch64.c:7286
msgid "immediate zero expected"
msgstr "se esperaba cero inmediato"
-#: config/tc-aarch64.c:7331
+#: config/tc-aarch64.c:7388
msgid "shift not allowed for bitmask immediate"
msgstr "desplazamiento no permitido para inmediato de máscara de bits"
-#: config/tc-aarch64.c:7385
+#: config/tc-aarch64.c:7442
msgid "can't mix relocation modifier with explicit shift"
msgstr "no se puede entremezclar un modificador de reubicación con un desplazamiento explícito"
-#: config/tc-aarch64.c:7434 config/tc-arm.c:15723 config/tc-arm.c:15748
-#: config/tc-arm.c:15759 config/tc-arm.c:15766
+#: config/tc-aarch64.c:7495 config/tc-arm.c:15712 config/tc-arm.c:15737
+#: config/tc-arm.c:15748 config/tc-arm.c:15755
msgid "invalid condition"
msgstr "condición no válida"
-#: config/tc-aarch64.c:7460
+#: config/tc-aarch64.c:7522
msgid "invalid pc-relative address"
msgstr "dirección relativa a pc no válida"
#. Only permit "=value" in the literal load instructions.
#. The literal will be generated by programmer_friendly_fixup.
-#: config/tc-aarch64.c:7468
+#: config/tc-aarch64.c:7530
msgid "invalid use of \"=immediate\""
msgstr "empleo no válido de \"=inmediato\""
-#: config/tc-aarch64.c:7531 config/tc-aarch64.c:7556 config/tc-aarch64.c:7578
-#: config/tc-aarch64.c:7610 config/tc-aarch64.c:7628 config/tc-aarch64.c:7652
-#: config/tc-aarch64.c:7672 config/tc-aarch64.c:7692 config/tc-aarch64.c:7711
-#: config/tc-aarch64.c:7734 config/tc-aarch64.c:7788 config/tc-aarch64.c:7795
-#: config/tc-aarch64.c:7823 config/tc-aarch64.c:7845 config/tc-aarch64.c:7870
-#: config/tc-aarch64.c:7888 config/tc-aarch64.c:7896 config/tc-aarch64.c:7913
-#: config/tc-aarch64.c:7937
+#: config/tc-aarch64.c:7596 config/tc-aarch64.c:7621 config/tc-aarch64.c:7643
+#: config/tc-aarch64.c:7675 config/tc-aarch64.c:7693 config/tc-aarch64.c:7717
+#: config/tc-aarch64.c:7737 config/tc-aarch64.c:7757 config/tc-aarch64.c:7776
+#: config/tc-aarch64.c:7799 config/tc-aarch64.c:7853 config/tc-aarch64.c:7860
+#: config/tc-aarch64.c:7905 config/tc-aarch64.c:7927 config/tc-aarch64.c:7952
+#: config/tc-aarch64.c:7970 config/tc-aarch64.c:7978 config/tc-aarch64.c:7995
+#: config/tc-aarch64.c:8019
msgid "invalid addressing mode"
msgstr "modo de direccionamiento no válido"
-#: config/tc-aarch64.c:7594
+#: config/tc-aarch64.c:7659
msgid "the optional immediate offset can only be 0"
msgstr "el desplazamiento de inmediato opcional solo puede ser 0"
-#: config/tc-aarch64.c:7633 config/tc-aarch64.c:7657 config/tc-aarch64.c:7677
-#: config/tc-aarch64.c:7697
+#: config/tc-aarch64.c:7698 config/tc-aarch64.c:7722 config/tc-aarch64.c:7742
+#: config/tc-aarch64.c:7762
msgid "relocation not allowed"
msgstr "reubicación no permitida"
-#: config/tc-aarch64.c:7744
+#: config/tc-aarch64.c:7809
msgid "writeback value must be an immediate constant"
msgstr "el valor retroescritura debe ser una constante inmediata"
-#: config/tc-aarch64.c:7755 config/tc-aarch64.c:7965
+#: config/tc-aarch64.c:7820 config/tc-aarch64.c:8047
msgid "unknown or missing PSTATE field name"
msgstr "nombre de campo PSTATE desconocido o ausente"
#. Make sure this has priority over
#. "invalid addressing mode".
-#: config/tc-aarch64.c:7803
+#: config/tc-aarch64.c:7868
msgid "constant offset required"
msgstr "se requiere un desplazamiento constante"
-#: config/tc-aarch64.c:7951
+#: config/tc-aarch64.c:8033
msgid "unknown or missing system register name"
msgstr "nombre de registro del sistema desconocido o ausente"
-#: config/tc-aarch64.c:8004
+#: config/tc-aarch64.c:8086
msgid "unknown or missing operation name"
msgstr "nombre de operación desconocido o ausente"
-#: config/tc-aarch64.c:8017
+#: config/tc-aarch64.c:8099
msgid "the specified option is not accepted in ISB"
msgstr "la opción especificada no se acepta en ISB"
-#: config/tc-aarch64.c:8029 config/tc-aarch64.c:8046
+#: config/tc-aarch64.c:8111 config/tc-aarch64.c:8128
msgid "the specified option is not accepted in DSB"
msgstr "la opción especificada no se acepta en DSB"
-#: config/tc-aarch64.c:8060
+#: config/tc-aarch64.c:8144
msgid "immediate value must be 16, 20, 24, 28"
msgstr "el valor inmediato debe ser 16, 20, 24, 28"
-#: config/tc-aarch64.c:8097 config/tc-aarch64.c:8132
+#: config/tc-aarch64.c:8158
+msgid "invalid prefetch operation (IR is not valid for this instruction variant)"
+msgstr "operación de precarga no válida (IR no es válida para esta variante de la instrucción)"
+
+#: config/tc-aarch64.c:8190 config/tc-aarch64.c:8225
msgid "missing register index"
msgstr "falta el índice de registros"
-#: config/tc-aarch64.c:8119
+#: config/tc-aarch64.c:8212
msgid "expected '}' after ZT0"
msgstr "se esperaba '}' tras ZT0"
-#: config/tc-aarch64.c:8246 config/tc-aarch64.c:9603 config/tc-arm.c:7945
+#: config/tc-aarch64.c:8344 config/tc-aarch64.c:9675 config/tc-arm.c:7934
#, c-format
msgid "unhandled operand code %d"
msgstr "código de operando %d no manejado"
-#: config/tc-aarch64.c:8292
+#: config/tc-aarch64.c:8390
msgid "unexpected comma before the omitted optional operand"
msgstr "coma inesperada antes del operando opcional omitido"
-#: config/tc-aarch64.c:8320
+#: config/tc-aarch64.c:8418
msgid "unexpected characters following instruction"
msgstr "caracteres inesperados después de la instrucción"
-#: config/tc-aarch64.c:8398 config/tc-arm.c:5577 config/tc-arm.c:6195
-#: config/tc-arm.c:8757
+#: config/tc-aarch64.c:8496 config/tc-arm.c:5569 config/tc-arm.c:6187
+#: config/tc-arm.c:8746
msgid "constant expression expected"
msgstr "se esperaba una expresión constante"
-#: config/tc-aarch64.c:8405
+#: config/tc-aarch64.c:8503
msgid "literal pool insertion failed"
msgstr "falló la inserción en el conjunto de literales"
-#: config/tc-aarch64.c:8476 config/tc-aarch64.c:8529
+#: config/tc-aarch64.c:8575 config/tc-aarch64.c:8594
#, c-format
msgid "unpredictable transfer with writeback -- `%s'"
msgstr "transferencia impredecible con retroescritura -- «%s»"
-#. ldiapp, stilp
-#: config/tc-aarch64.c:8488
-#, c-format
-msgid "unpredictable load pair transfer with register overlap -- `%s'"
-msgstr "transferencia de par de carga impredecible con solapamiento de registros -- «%s»"
-
-#: config/tc-aarch64.c:8506
-#, c-format
-msgid "unpredictable transfer with writeback (load) -- `%s'"
-msgstr "transferencia impredecible con retroescritura (carga) -- «%s»"
-
-#: config/tc-aarch64.c:8510
-#, c-format
-msgid "unpredictable transfer with writeback (store) -- `%s'"
-msgstr "transferencia impredecible con retroescritura (almacenamiento) -- «%s»"
-
-#: config/tc-aarch64.c:8533 config/tc-aarch64.c:8547
+#: config/tc-aarch64.c:8598 config/tc-aarch64.c:8612
#, c-format
msgid "unpredictable load of register pair -- `%s'"
msgstr "carga impredicible de par de registros -- «%s»"
-#: config/tc-aarch64.c:8554 config/tc-aarch64.c:8567
+#: config/tc-aarch64.c:8619 config/tc-aarch64.c:8632
#, c-format
msgid "unpredictable: identical transfer and status registers --`%s'"
msgstr "impredecible: registros de transferencia y estado idénticos -- «%s»"
-#: config/tc-aarch64.c:8562 config/tc-aarch64.c:8576
+#: config/tc-aarch64.c:8627 config/tc-aarch64.c:8641
#, c-format
msgid "unpredictable: identical base and status registers --`%s'"
msgstr "impredecible: registros de base y estado idénticos -- «%s»"
-#: config/tc-aarch64.c:8596
+#: config/tc-aarch64.c:8661
#, c-format
msgid "previous `%s' sequence has not been closed"
msgstr "la secuencia «%s» previa no se ha cerrado"
-#: config/tc-aarch64.c:8685
+#: config/tc-aarch64.c:8750
#, c-format
msgid "unknown mnemonic -- `%s'"
msgstr "mnemónico desconocido -- `%s'"
-#: config/tc-aarch64.c:8695
+#: config/tc-aarch64.c:8760
#, c-format
msgid "unknown mnemonic `%s' -- `%s'"
msgstr "mnemónico desconocido `%s' -- `%s'"
-#: config/tc-aarch64.c:8703
+#: config/tc-aarch64.c:8768
#, c-format
msgid "unexpected comma after the mnemonic name `%s' -- `%s'"
msgstr "coma inesperada tras el nombre de nemónico «%s» -- «%s»"
-#: config/tc-aarch64.c:8760
+#: config/tc-aarch64.c:8825
#, c-format
msgid "selected processor does not support `%s'"
msgstr "el procesador seleccionado no admite «%s»"
-#: config/tc-aarch64.c:9262 config/tc-arm.c:27396
+#: config/tc-aarch64.c:9330 config/tc-arm.c:27341
msgid "GOT already in the symbol table"
msgstr "GOT ya está en la tabla de símbolos"
-#: config/tc-aarch64.c:9425
+#: config/tc-aarch64.c:9497
msgid "immediate cannot be moved by a single instruction"
msgstr "el inmediato no puede moverse mediante una instrucción sencilla"
-#: config/tc-aarch64.c:9469 config/tc-aarch64.c:9514 config/tc-aarch64.c:9540
-#: config/tc-arm.c:16267 config/tc-arm.c:17964 config/tc-arm.c:18544
-#: config/tc-arm.c:18571 config/tc-arm.c:19358 config/tc-arm.c:20193
-#: config/tc-arm.c:21216 config/tc-arm.c:21276 config/tc-metag.c:2443
-#: config/tc-metag.c:2452 config/tc-metag.c:2491 config/tc-metag.c:2500
-#: config/tc-metag.c:3019 config/tc-metag.c:3028
+#: config/tc-aarch64.c:9541 config/tc-aarch64.c:9586 config/tc-aarch64.c:9612
+#: config/tc-arm.c:16256 config/tc-arm.c:17953 config/tc-arm.c:18533
+#: config/tc-arm.c:18560 config/tc-arm.c:19347 config/tc-arm.c:20182
+#: config/tc-arm.c:21205 config/tc-arm.c:21265 config/tc-metag.c:2442
+#: config/tc-metag.c:2451 config/tc-metag.c:2490 config/tc-metag.c:2499
+#: config/tc-metag.c:3018 config/tc-metag.c:3027
msgid "immediate out of range"
msgstr "inmediato fuera de rango"
-#: config/tc-aarch64.c:9533 config/tc-metag.c:4654 config/tc-xtensa.c:4229
+#: config/tc-aarch64.c:9605 config/tc-metag.c:4652 config/tc-xtensa.c:4230
msgid "invalid immediate"
msgstr "inmediato inválido"
-#: config/tc-aarch64.c:9598 config/tc-tic6x.c:3854 config/tc-tic6x.c:3919
-#: config/tc-tic6x.c:3946 config/tc-tic6x.c:3974
+#: config/tc-aarch64.c:9670 config/tc-tic6x.c:3853 config/tc-tic6x.c:3918
+#: config/tc-tic6x.c:3945 config/tc-tic6x.c:3973
msgid "immediate offset out of range"
msgstr "el desplazamiento inmediato está fuera de rango"
-#: config/tc-aarch64.c:9672 config/tc-arm.c:27734 config/tc-arm.c:27802
-#: config/tc-arm.c:28084
+#: config/tc-aarch64.c:9744 config/tc-arm.c:27679 config/tc-arm.c:27747
+#: config/tc-arm.c:28029
#, c-format
msgid "undefined symbol %s used as an immediate value"
msgstr "símbolo indefinido %s utilizado como un valor inmediato"
-#: config/tc-aarch64.c:9684
+#: config/tc-aarch64.c:9756
msgid "pc-relative load offset not word aligned"
msgstr "desplazamiento de carga relativo a pc no alineado con palabra"
-#: config/tc-aarch64.c:9687
+#: config/tc-aarch64.c:9759
msgid "pc-relative load offset out of range"
msgstr "desplazamiento de carga relativo a pc fuera de rango"
-#: config/tc-aarch64.c:9699
+#: config/tc-aarch64.c:9771
msgid "pc-relative address offset out of range"
msgstr "desplazamiento de dirección relativo a pc fuera de rango"
-#: config/tc-aarch64.c:9711 config/tc-aarch64.c:9726
+#: config/tc-aarch64.c:9783 config/tc-aarch64.c:9797 config/tc-aarch64.c:9812
msgid "conditional branch target not word aligned"
-msgstr "objetivo de ramificación condicional no alineado con palabra"
+msgstr "objetivo de bifurcación condicional no alineado con palabra"
-#: config/tc-aarch64.c:9714 config/tc-aarch64.c:9729 config/tc-arm.c:28379
+#: config/tc-aarch64.c:9786 config/tc-aarch64.c:9800 config/tc-aarch64.c:9815
+#: config/tc-arm.c:28324
msgid "conditional branch out of range"
-msgstr "ramificación condicional fuera de rango"
+msgstr "bifurcación condicional fuera de rango"
-#: config/tc-aarch64.c:9742
+#: config/tc-aarch64.c:9828
msgid "branch target not word aligned"
-msgstr "objetivo de ramificación no alineado con palabra"
+msgstr "objetivo de bifurcación no alineado con palabra"
-#: config/tc-aarch64.c:9745 config/tc-arm.c:916 config/tc-arm.c:29185
-#: config/tc-kvx.c:1725 config/tc-kvx.c:1731 config/tc-mips.c:16075
-#: config/tc-mips.c:16091 config/tc-mips.c:16181
+#: config/tc-aarch64.c:9831 config/tc-arm.c:916 config/tc-arm.c:29130
+#: config/tc-kvx.c:1725 config/tc-kvx.c:1731 config/tc-mips.c:16093
+#: config/tc-mips.c:16109 config/tc-mips.c:16199
msgid "branch out of range"
-msgstr "ramificación fuera de rango"
+msgstr "bifurcación fuera de rango"
-#: config/tc-aarch64.c:9804 config/tc-arm.c:27975 config/tc-arm.c:27990
-#: config/tc-arm.c:28005 config/tc-arm.c:28016 config/tc-arm.c:28039
-#: config/tc-arm.c:28889 config/tc-moxie.c:714 config/tc-pj.c:449
-#: config/tc-sh.c:3713
+#: config/tc-aarch64.c:9890 config/tc-arm.c:27920 config/tc-arm.c:27935
+#: config/tc-arm.c:27950 config/tc-arm.c:27961 config/tc-arm.c:27984
+#: config/tc-arm.c:28834 config/tc-moxie.c:711 config/tc-pj.c:449
+#: config/tc-sh.c:3709
msgid "offset out of range"
msgstr "desplazamiento fuera de rango"
-#: config/tc-aarch64.c:9819
+#: config/tc-aarch64.c:9905
msgid "unsigned value out of range"
msgstr "valor sin signo fuera de rango"
-#: config/tc-aarch64.c:9830
+#: config/tc-aarch64.c:9916
msgid "signed value out of range"
msgstr "valor con signo fuera de rango"
-#: config/tc-aarch64.c:9985
+#: config/tc-aarch64.c:10071
#, c-format
msgid "unexpected %s fixup"
msgstr "corrección inesperada %s"
-#: config/tc-aarch64.c:10049 config/tc-arm.c:29604 config/tc-arm.c:29625
-#: config/tc-mips.c:18444 config/tc-or1k.c:342 config/tc-score.c:7391
+#: config/tc-aarch64.c:10135 config/tc-arm.c:29549 config/tc-arm.c:29570
+#: config/tc-mips.c:18461 config/tc-or1k.c:342 config/tc-score.c:7389
#, c-format
msgid "cannot represent %s relocation in this object file format"
msgstr "no se puede representar la reubicación %s en este formato de fichero objeto"
-#: config/tc-aarch64.c:10096
+#: config/tc-aarch64.c:10182
#, c-format
msgid "cannot do %u-byte relocation"
msgstr "no puede hacer reubicación de %u bytes"
-#: config/tc-aarch64.c:10524 config/tc-arm.c:30425
+#: config/tc-aarch64.c:10610 config/tc-arm.c:30370
msgid "assemble for big-endian"
msgstr "ensamblar para big-endian"
-#: config/tc-aarch64.c:10525 config/tc-arm.c:30426
+#: config/tc-aarch64.c:10611 config/tc-arm.c:30371
msgid "assemble for little-endian"
msgstr "ensamblar para little-endian"
-#: config/tc-aarch64.c:10528
+#: config/tc-aarch64.c:10614
msgid "temporary switch for dumping"
msgstr "intercambiado temporal para volcado"
-#: config/tc-aarch64.c:10530
+#: config/tc-aarch64.c:10616
msgid "output verbose error messages"
msgstr "sacar mensajes de error detallados"
-#: config/tc-aarch64.c:10532
+#: config/tc-aarch64.c:10618
msgid "do not output verbose error messages"
msgstr "no sacar mensajes de error detallados"
-#: config/tc-aarch64.c:10876 config/tc-arm.c:31614
+#: config/tc-aarch64.c:10621
+msgid "enable feature flag gating for system registers"
+msgstr "activa opción puerta para el sistema de registros"
+
+#: config/tc-aarch64.c:10994 config/tc-arm.c:31559
msgid "invalid architectural extension"
msgstr "extensión de arquitectura no válida"
-#: config/tc-aarch64.c:10901 config/tc-arm.c:31646
+#: config/tc-aarch64.c:11019 config/tc-arm.c:31591
msgid "must specify extensions to add before specifying those to remove"
msgstr "se deben especificar las extensiones que hay que añadir antes de especificar las que hay que borrar"
-#: config/tc-aarch64.c:10909 config/tc-arm.c:31654
+#: config/tc-aarch64.c:11027 config/tc-arm.c:31599
msgid "missing architectural extension"
msgstr "falta la extensión de la arquitectura"
-#: config/tc-aarch64.c:10937 config/tc-arm.c:31740
+#: config/tc-aarch64.c:11055 config/tc-arm.c:31685
#, c-format
msgid "unknown architectural extension `%s'"
msgstr "extensión arquitectural desconocida «%s»"
-#: config/tc-aarch64.c:10962 config/tc-arm.c:31790 config/tc-metag.c:5832
+#: config/tc-aarch64.c:11094 config/tc-arm.c:31735 config/tc-metag.c:5830
#, c-format
msgid "missing cpu name `%s'"
msgstr "falta el nombre de cpu «%s»"
-#: config/tc-aarch64.c:10973 config/tc-aarch64.c:11194 config/tc-arm.c:31825
-#: config/tc-arm.c:32645 config/tc-csky.c:1218 config/tc-metag.c:5843
+#: config/tc-aarch64.c:11105 config/tc-aarch64.c:11326 config/tc-arm.c:31770
+#: config/tc-arm.c:32590 config/tc-csky.c:1242 config/tc-metag.c:5841
#, c-format
msgid "unknown cpu `%s'"
msgstr "cpu desconocida `%s'"
-#: config/tc-aarch64.c:10991 config/tc-arm.c:31843
+#: config/tc-aarch64.c:11123 config/tc-arm.c:31788
#, c-format
msgid "missing architecture name `%s'"
msgstr "falta el nombre de la arquitectura «%s»"
-#: config/tc-aarch64.c:11002 config/tc-aarch64.c:11239 config/tc-arm.c:31865
-#: config/tc-arm.c:32685 config/tc-arm.c:32721 config/tc-score.c:7626
+#: config/tc-aarch64.c:11134 config/tc-aarch64.c:11371 config/tc-arm.c:31810
+#: config/tc-arm.c:32630 config/tc-arm.c:32666 config/tc-csky.c:1259
#, c-format
-msgid "unknown architecture `%s'\n"
-msgstr "arquitectura desconocida «%s» \n"
+msgid "unknown architecture `%s'"
+msgstr "arquitectura desconocida «%s»"
-#: config/tc-aarch64.c:11029
+#: config/tc-aarch64.c:11161
#, c-format
msgid "missing abi name `%s'"
msgstr "falta el nombre de abi «%s»"
-#: config/tc-aarch64.c:11040
+#: config/tc-aarch64.c:11172
#, c-format
-msgid "unknown abi `%s'\n"
-msgstr "abi desconocida «%s»\n"
+msgid "unknown abi `%s'"
+msgstr "abi desconocida «%s»"
-#: config/tc-aarch64.c:11053
+#: config/tc-aarch64.c:11185
msgid "<abi name>\t specify for ABI <abi name>"
msgstr "<nombre de abi>\t específica para ABI el <nombre de abi>"
-#: config/tc-aarch64.c:11055 config/tc-arm.c:31952 config/tc-metag.c:5909
+#: config/tc-aarch64.c:11187 config/tc-arm.c:31897 config/tc-metag.c:5907
msgid "<cpu name>\t assemble for CPU <cpu name>"
msgstr "<nombre de cpu>\t ensambla para la CPU <nombre de cpu>"
-#: config/tc-aarch64.c:11057 config/tc-arm.c:31954
+#: config/tc-aarch64.c:11189 config/tc-arm.c:31899
msgid "<arch name>\t assemble for architecture <arch name>"
msgstr "<nombre de arq>\t ensambla para la arquitectura <nombre de arq>"
-#: config/tc-aarch64.c:11096 config/tc-aarch64.c:11115 config/tc-arm.c:32022
-#: config/tc-arm.c:32040 config/tc-arm.c:32060 config/tc-metag.c:5933
+#: config/tc-aarch64.c:11228 config/tc-aarch64.c:11247 config/tc-arm.c:31967
+#: config/tc-arm.c:31985 config/tc-arm.c:32005 config/tc-metag.c:5931
#, c-format
msgid "option `-%c%s' is deprecated: %s"
msgstr "la opción `-%c%s' es obsoleta: %s"
-#: config/tc-aarch64.c:11135
+#: config/tc-aarch64.c:11267
#, c-format
msgid " AArch64-specific assembler options:\n"
msgstr " Opciones de ensamblador específicas de AArch64:\n"
-#: config/tc-aarch64.c:11146 config/tc-arc.c:3598 config/tc-arm.c:32091
+#: config/tc-aarch64.c:11278 config/tc-arc.c:3597 config/tc-arm.c:32036
#, c-format
msgid " -EB assemble code for a big-endian cpu\n"
msgstr " -EB ensambla código para una cpu big-endian\n"
-#: config/tc-aarch64.c:11151 config/tc-arc.c:3600 config/tc-arm.c:32096
+#: config/tc-aarch64.c:11283 config/tc-arc.c:3599 config/tc-arm.c:32041
#, c-format
msgid " -EL assemble code for a little-endian cpu\n"
msgstr " -EL ensambla código para una cpu little-endian\n"
-#: config/tc-alpha.c:648
+#: config/tc-alpha.c:634
#, c-format
msgid "No !literal!%ld was found"
msgstr "No se ha encontrado ningún !literal!%ld"
-#: config/tc-alpha.c:655
+#: config/tc-alpha.c:641
#, c-format
msgid "No !tlsgd!%ld was found"
msgstr "No se ha encontrado ningún !tlsgd!%ld"
-#: config/tc-alpha.c:662
+#: config/tc-alpha.c:648
#, c-format
msgid "No !tlsldm!%ld was found"
msgstr "No se ha encontrado ningún !tlsldm!%ld"
-#: config/tc-alpha.c:671
+#: config/tc-alpha.c:657
#, c-format
msgid "No ldah !gpdisp!%ld was found"
msgstr "No se ha encontrado ningún !gpdisp!%ld ldah"
-#: config/tc-alpha.c:721
+#: config/tc-alpha.c:707
#, c-format
msgid "too many !literal!%ld for %s"
msgstr "demasiados !literal!%ld para %s"
-#: config/tc-alpha.c:751
+#: config/tc-alpha.c:737
#, c-format
msgid "No lda !gpdisp!%ld was found"
msgstr "No se ha encontrado ningún !gpdisp!%ld lda"
#. Only support one relocation op per insn.
-#: config/tc-alpha.c:910
+#: config/tc-alpha.c:896
msgid "More than one relocation op per insn"
msgstr "Más de un operador de reubicación por insn"
-#: config/tc-alpha.c:925 config/tc-arc.c:1137
+#: config/tc-alpha.c:911 config/tc-arc.c:1137
msgid "No relocation operand"
msgstr "No hay operando de reubicación"
-#: config/tc-alpha.c:935
+#: config/tc-alpha.c:921
#, c-format
msgid "Unknown relocation operand: !%s"
msgstr "Operando de reubicación desconocido: !%s"
-#: config/tc-alpha.c:945
+#: config/tc-alpha.c:931
#, c-format
msgid "no sequence number after !%s"
msgstr "no hay un número de secuencia tras !%s"
-#: config/tc-alpha.c:955
+#: config/tc-alpha.c:941
#, c-format
msgid "!%s does not use a sequence number"
msgstr "!%s no utiliza un número de secuencia"
-#: config/tc-alpha.c:965
+#: config/tc-alpha.c:951
#, c-format
msgid "Bad sequence number: !%s!%s"
msgstr "Número de secuencia incorrecto: !%s!%s"
-#: config/tc-alpha.c:1185 config/tc-alpha.c:3359
+#: config/tc-alpha.c:1170 config/tc-alpha.c:3332
#, c-format
msgid "inappropriate arguments for opcode `%s'"
msgstr "argumentos inapropiados para el código de operación «%s»"
-#: config/tc-alpha.c:1187 config/tc-alpha.c:3361
+#: config/tc-alpha.c:1172 config/tc-alpha.c:3334
#, c-format
msgid "opcode `%s' not supported for target %s"
msgstr "no se admite el código de operación «%s» para el objetivo %s"
-#: config/tc-alpha.c:1191 config/tc-alpha.c:3365 config/tc-avr.c:1914
-#: config/tc-msp430.c:4363 config/tc-wasm32.c:753
+#: config/tc-alpha.c:1176 config/tc-alpha.c:3338 config/tc-avr.c:1912
+#: config/tc-msp430.c:4367 config/tc-wasm32.c:753
#, c-format
msgid "unknown opcode `%s'"
msgstr "código de operación desconocido «%s»"
-#: config/tc-alpha.c:1271 config/tc-alpha.c:1530
+#: config/tc-alpha.c:1256 config/tc-alpha.c:1515
msgid "overflow in literal (.lita) table"
msgstr "desbordamiento en la tabla (.lita) de literales"
-#: config/tc-alpha.c:1278 config/tc-alpha.c:1302 config/tc-alpha.c:1543
-#: config/tc-alpha.c:2230 config/tc-alpha.c:2275 config/tc-alpha.c:2344
-#: config/tc-alpha.c:2427 config/tc-alpha.c:2652 config/tc-alpha.c:2750
+#: config/tc-alpha.c:1263 config/tc-alpha.c:1287 config/tc-alpha.c:1528
+#: config/tc-alpha.c:2213 config/tc-alpha.c:2258 config/tc-alpha.c:2326
+#: config/tc-alpha.c:2407 config/tc-alpha.c:2629 config/tc-alpha.c:2727
msgid "macro requires $at register while noat in effect"
msgstr "la macro requiere el registro $at mientras noat está en efecto"
-#: config/tc-alpha.c:1280 config/tc-alpha.c:1304 config/tc-alpha.c:1545
+#: config/tc-alpha.c:1265 config/tc-alpha.c:1289 config/tc-alpha.c:1530
msgid "macro requires $at while $at in use"
msgstr "la macro requiere $at mientras $at está en uso"
-#: config/tc-alpha.c:1489
+#: config/tc-alpha.c:1474
msgid "bignum invalid; zero assumed"
msgstr "bignum inválido; se asume cero"
-#: config/tc-alpha.c:1491
+#: config/tc-alpha.c:1476
msgid "floating point number invalid; zero assumed"
msgstr "número de coma flotante inválido; se asume cero"
-#: config/tc-alpha.c:1496
+#: config/tc-alpha.c:1481
msgid "can't handle expression"
msgstr "no se puede manejar la expresión"
-#: config/tc-alpha.c:1536
+#: config/tc-alpha.c:1521
msgid "overflow in literal (.lit8) table"
msgstr "desbordamiento en la tabla (.lit8) de literales"
-#: config/tc-alpha.c:1833
+#: config/tc-alpha.c:1817
#, c-format
msgid "too many ldah insns for !gpdisp!%ld"
msgstr "demasiadas insns ldah para !gpdisp!%ld"
-#: config/tc-alpha.c:1835 config/tc-alpha.c:1847
+#: config/tc-alpha.c:1819 config/tc-alpha.c:1831
#, c-format
msgid "both insns for !gpdisp!%ld must be in the same section"
msgstr "ambas insns para !gpdisp!%ld deben estar en la misma sección"
-#: config/tc-alpha.c:1845
+#: config/tc-alpha.c:1829
#, c-format
msgid "too many lda insns for !gpdisp!%ld"
msgstr "demasiadas insns lda para !gpdisp!%ld"
-#: config/tc-alpha.c:1901
+#: config/tc-alpha.c:1885
#, c-format
msgid "too many lituse insns for !lituse_tlsgd!%ld"
msgstr "demasiadas insns lituse para !lituse_tlsgd!%ld"
-#: config/tc-alpha.c:1904
+#: config/tc-alpha.c:1888
#, c-format
msgid "too many lituse insns for !lituse_tlsldm!%ld"
msgstr "demasiadas insns lituse para !lituse_tlsldm!%ld"
-#: config/tc-alpha.c:1921
+#: config/tc-alpha.c:1905
#, c-format
msgid "duplicate !tlsgd!%ld"
msgstr "!tlsgd!%ld duplicado"
-#: config/tc-alpha.c:1923
+#: config/tc-alpha.c:1907
#, c-format
msgid "sequence number in use for !tlsldm!%ld"
msgstr "número de secuencia en uso para !tlsldm!%ld"
-#: config/tc-alpha.c:1937
+#: config/tc-alpha.c:1921
#, c-format
msgid "duplicate !tlsldm!%ld"
msgstr "!tlsldm!%ld duplicado"
-#: config/tc-alpha.c:1939
+#: config/tc-alpha.c:1923
#, c-format
msgid "sequence number in use for !tlsgd!%ld"
msgstr "número de secuencia en uso para !tlsgd!%ld"
-#: config/tc-alpha.c:1994 config/tc-arc.c:2870 config/tc-mn10200.c:848
-#: config/tc-mn10300.c:1150 config/tc-ppc.c:2065 config/tc-tilegx.c:422
+#: config/tc-alpha.c:1978 config/tc-arc.c:2869 config/tc-mn10200.c:844
+#: config/tc-mn10300.c:1149 config/tc-ppc.c:2065 config/tc-tilegx.c:422
#: config/tc-tilegx.c:472 config/tc-tilepro.c:375
msgid "operand"
msgstr "operando"
-#: config/tc-alpha.c:2133
+#: config/tc-alpha.c:2117
msgid "invalid relocation for instruction"
msgstr "reubicación no válida para la instrucción"
-#: config/tc-alpha.c:2147
+#: config/tc-alpha.c:2130
msgid "invalid relocation for field"
msgstr "reubicación no válida para el campo"
-#: config/tc-alpha.c:2979
+#: config/tc-alpha.c:2954
msgid "can not resolve expression"
msgstr "no se puede resolver la expresión"
-#: config/tc-alpha.c:3514 config/tc-microblaze.c:183 config/tc-ppc.c:2407
+#: config/tc-alpha.c:3487 config/tc-microblaze.c:183 config/tc-ppc.c:2407
#, c-format
msgid ".COMMon length (%ld.) <0! Ignored."
msgstr "¡Longitud de .COMMon (%ld.) <0! Se descarta."
-#: config/tc-alpha.c:3525 config/tc-ia64.c:1091 config/tc-sparc.c:4273
-#: config/tc-v850.c:303
+#: config/tc-alpha.c:3498 config/tc-ia64.c:1091 config/tc-sparc.c:4278
+#: config/tc-v850.c:302
msgid "Ignoring attempt to re-define symbol"
msgstr "Se descarta el intento de redefinir el símbolo"
-#: config/tc-alpha.c:3617 config/tc-sparc.c:4281
+#: config/tc-alpha.c:3588 config/tc-sparc.c:4286
#, c-format
msgid "Length of .comm \"%s\" is already %ld. Not changed to %ld."
msgstr "La longitud de .comm «%s» ya es %ld. No se cambia a %ld."
-#: config/tc-alpha.c:3724
+#: config/tc-alpha.c:3695
msgid ".ent directive has no name"
msgstr "la directiva .ent no tiene nombre"
-#: config/tc-alpha.c:3732
+#: config/tc-alpha.c:3703
msgid "nested .ent directives"
msgstr "directivas .ent anidadas"
-#: config/tc-alpha.c:3776 ecoff.c:2996
+#: config/tc-alpha.c:3747 ecoff.c:2968
msgid ".end directive has no name"
msgstr "la directiva .end no tiene nombre"
-#: config/tc-alpha.c:3784
+#: config/tc-alpha.c:3755
msgid ".end directive without matching .ent"
msgstr "directiva .end sin su correspondiente .ent"
-#: config/tc-alpha.c:3786
+#: config/tc-alpha.c:3757
msgid ".end directive names different symbol than .ent"
msgstr "la directiva .end nombra un símbolo diferente que la .ent"
-#: config/tc-alpha.c:3829 ecoff.c:3132
+#: config/tc-alpha.c:3800 ecoff.c:3104
msgid ".fmask outside of .ent"
msgstr ".fmask fuera de .ent"
-#: config/tc-alpha.c:3831 config/tc-score.c:5582 ecoff.c:3196
+#: config/tc-alpha.c:3802 config/tc-score.c:5581 ecoff.c:3168
msgid ".mask outside of .ent"
msgstr ".mask fuera de .ent"
-#: config/tc-alpha.c:3839 ecoff.c:3139
+#: config/tc-alpha.c:3810 ecoff.c:3111
msgid "bad .fmask directive"
msgstr "directiva .fmask incorrecta"
-#: config/tc-alpha.c:3841 ecoff.c:3203
+#: config/tc-alpha.c:3812 ecoff.c:3175
msgid "bad .mask directive"
msgstr "directiva .mask incorrecta"
-#: config/tc-alpha.c:3874 config/tc-mips.c:19926 config/tc-score.c:5716
-#: ecoff.c:3160
+#: config/tc-alpha.c:3845 config/tc-mips.c:19943 config/tc-score.c:5715
+#: ecoff.c:3132
msgid ".frame outside of .ent"
msgstr ".frame fuera de .ent"
-#: config/tc-alpha.c:3885 config/tc-mips.c:19937 ecoff.c:3171
+#: config/tc-alpha.c:3856 config/tc-mips.c:19954 ecoff.c:3143
msgid "bad .frame directive"
msgstr "directiva .frame incorrecta"
-#: config/tc-alpha.c:3919
+#: config/tc-alpha.c:3890
msgid ".prologue directive without a preceding .ent directive"
msgstr "directiva .prologue sin una directiva .ent precedente"
-#: config/tc-alpha.c:3937
+#: config/tc-alpha.c:3908
#, c-format
msgid "Invalid argument %d to .prologue."
msgstr "Argumento inválido %d para .prologue."
-#: config/tc-alpha.c:4026
+#: config/tc-alpha.c:3997
msgid "ECOFF debugging is disabled."
msgstr "La depuración ECOFF está desactivada."
-#: config/tc-alpha.c:4040
+#: config/tc-alpha.c:4011
msgid ".ent directive without matching .end"
msgstr "directiva .ent sin su correspondiente .end"
-#: config/tc-alpha.c:4133
+#: config/tc-alpha.c:4105
msgid ".usepv directive has no name"
msgstr "la directiva .usepv no tiene nombre"
-#: config/tc-alpha.c:4146
+#: config/tc-alpha.c:4118
msgid ".usepv directive has no type"
msgstr "la directiva .usepv no tiene tipo"
-#: config/tc-alpha.c:4161
+#: config/tc-alpha.c:4133
msgid "unknown argument for .usepv"
msgstr "argumento desconocido para .usepv"
-#: config/tc-alpha.c:4274
+#: config/tc-alpha.c:4246
#, c-format
msgid "unknown section attribute %s"
msgstr "atributo de sección %s desconocido"
-#: config/tc-alpha.c:4369
+#: config/tc-alpha.c:4341
msgid "previous .ent not closed by a .end"
msgstr "el .ent previo no está cerrado por un .end"
-#: config/tc-alpha.c:4390
+#: config/tc-alpha.c:4362
msgid ".ent directive has no symbol"
msgstr "la directiva .ent no tiene símbolo"
-#: config/tc-alpha.c:4415
+#: config/tc-alpha.c:4387
msgid ".handler directive has no name"
msgstr "la directiva .handler no tiene nombre"
-#: config/tc-alpha.c:4446
+#: config/tc-alpha.c:4418
msgid "Bad .frame directive 1./2. param"
msgstr "Parámetro 1./2. de directiva .frame incorrecto"
-#: config/tc-alpha.c:4456
+#: config/tc-alpha.c:4428
#, c-format
msgid "Bad RA (%d) register for .frame"
msgstr "Registro RA (%d) incorrecto para .frame"
-#: config/tc-alpha.c:4461
+#: config/tc-alpha.c:4433
msgid "Bad .frame directive 3./4. param"
msgstr "Parámetro 3./4. de directiva .frame incorrecto"
-#: config/tc-alpha.c:4497
+#: config/tc-alpha.c:4469
msgid ".pdesc directive not in link (.link) section"
msgstr "la directiva .pdesc no está en la sección de enlace (.link)"
-#: config/tc-alpha.c:4504
+#: config/tc-alpha.c:4476
msgid ".pdesc directive has no entry symbol"
msgstr "la directiva .pdesc no tiene un símbolo de entrada"
-#: config/tc-alpha.c:4515
+#: config/tc-alpha.c:4487
msgid ".pdesc has a bad entry symbol"
msgstr ".pdesc tiene un símbolo de entrada incorrecto"
-#: config/tc-alpha.c:4526
+#: config/tc-alpha.c:4498
msgid ".pdesc doesn't match with last .ent"
msgstr ".pdesc no se corresponde con el último .ent"
-#: config/tc-alpha.c:4541
+#: config/tc-alpha.c:4513
msgid "No comma after .pdesc <entryname>"
msgstr "No hay una coma tras .pdesc <nombredeentrada>"
-#: config/tc-alpha.c:4561
+#: config/tc-alpha.c:4533
msgid "unknown procedure kind"
msgstr "clase de procedimiento desconocida"
-#: config/tc-alpha.c:4656
+#: config/tc-alpha.c:4628
msgid ".name directive not in link (.link) section"
msgstr "la directiva .name no está en la sección de enlace (.link)"
-#: config/tc-alpha.c:4664
+#: config/tc-alpha.c:4636
msgid ".name directive has no symbol"
msgstr "la directiva .name no tiene símbolo"
-#: config/tc-alpha.c:4698
+#: config/tc-alpha.c:4670
msgid "No symbol after .linkage"
msgstr "No hay un símbolo tras .linkage"
-#: config/tc-alpha.c:4745
+#: config/tc-alpha.c:4717
msgid "No symbol after .code_address"
msgstr "No hay un símbolo tras .code_address"
-#: config/tc-alpha.c:4771 config/tc-score.c:5588
+#: config/tc-alpha.c:4743 config/tc-score.c:5587
msgid "Bad .mask directive"
msgstr "Directiva .mask incorrecta"
-#: config/tc-alpha.c:4789
+#: config/tc-alpha.c:4761
msgid "Bad .fmask directive"
msgstr "Directiva .fmask incorrecta"
-#: config/tc-alpha.c:4946
+#: config/tc-alpha.c:4918
#, c-format
msgid "Expected comma after name \"%s\""
msgstr "Se esperaba una coma tras nombre «%s»"
-#: config/tc-alpha.c:4958
+#: config/tc-alpha.c:4930
#, c-format
msgid "unhandled: .proc %s,%d"
msgstr "sin manejar: .proc %s,%d"
-#: config/tc-alpha.c:4991
+#: config/tc-alpha.c:4963
#, c-format
msgid "Tried to .set unrecognized mode `%s'"
msgstr "Se ha intentado .set de un modo no reconocido «%s»"
-#: config/tc-alpha.c:5017
+#: config/tc-alpha.c:4989
#, c-format
msgid "Bad base register, using $%d."
msgstr "Registro base incorrecto; se usa $%d."
-#: config/tc-alpha.c:5038
+#: config/tc-alpha.c:5010
#, c-format
msgid "Alignment too large: %d. assumed"
msgstr "Alineación demasiado grande: se asume %d."
-#: config/tc-alpha.c:5042 config/tc-d30v.c:2034 config/tc-pru.c:220
+#: config/tc-alpha.c:5014 config/tc-d30v.c:2034 config/tc-pru.c:220
#: config/tc-pru.c:336
msgid "Alignment negative: 0 assumed"
msgstr "Alineación negativa: se asume 0"
-#: config/tc-alpha.c:5137 config/tc-alpha.c:5628
+#: config/tc-alpha.c:5109 config/tc-alpha.c:5600
#, c-format
msgid "Unknown CPU identifier `%s'"
msgstr "Identificador de CPU desconocido «%s»"
-#: config/tc-alpha.c:5328
+#: config/tc-alpha.c:5300
#, c-format
msgid "Chose GP value of %lx\n"
msgstr "Se ha escogido el valor GP de %lx\n"
-#: config/tc-alpha.c:5342
+#: config/tc-alpha.c:5314
msgid "bad .section directive: want a,s,w,x,M,S,G,T in string"
msgstr "directiva .section incorrecta: se quiere a,s,w,x,M,S,G,T en la cadena"
-#: config/tc-alpha.c:5430 config/tc-alpha.c:5466 config/tc-arc.c:768
-#: config/tc-arc.c:2564 config/tc-arc.c:2596 config/tc-arc.c:2702
+#: config/tc-alpha.c:5402 config/tc-alpha.c:5438 config/tc-arc.c:768
+#: config/tc-arc.c:2563 config/tc-arc.c:2595 config/tc-arc.c:2701
#: config/tc-cr16.c:807 config/tc-cr16.c:826 config/tc-cris.c:1223
#: config/tc-crx.c:510 config/tc-crx.c:532 config/tc-crx.c:543
-#: config/tc-dlx.c:289 config/tc-hppa.c:8252 config/tc-i386.c:3490
-#: config/tc-i386.c:3535 config/tc-ia64.c:5360 config/tc-ia64.c:7399
+#: config/tc-dlx.c:289 config/tc-hppa.c:8251 config/tc-i386.c:3604
+#: config/tc-i386.c:3649 config/tc-ia64.c:5360 config/tc-ia64.c:7399
#: config/tc-ia64.c:7458 config/tc-kvx.c:1478 config/tc-m68k.c:4556
-#: config/tc-m68k.c:4568 config/tc-mips.c:3709 config/tc-mips.c:3742
-#: config/tc-mips.c:3768 config/tc-nds32.c:3440 config/tc-ns32k.c:1906
-#: config/tc-ppc.c:1745 config/tc-ppc.c:1785 config/tc-pru.c:1576
-#: config/tc-pru.c:1580 config/tc-s390.c:611 config/tc-s390.c:649
+#: config/tc-m68k.c:4568 config/tc-mips.c:3708 config/tc-mips.c:3741
+#: config/tc-mips.c:3767 config/tc-nds32.c:3440 config/tc-ns32k.c:1908
+#: config/tc-ppc.c:1745 config/tc-ppc.c:1785 config/tc-pru.c:1574
+#: config/tc-pru.c:1578 config/tc-s390.c:624 config/tc-s390.c:662
#: config/tc-sparc.c:961 config/tc-sparc.c:993 config/tc-tic30.c:121
#: config/tc-tic30.c:131 config/tc-tic30.c:141 config/tc-tic30.c:151
-#: config/tc-tic4x.c:1219 config/tc-tilegx.c:316 config/tc-tilepro.c:252
-#: config/tc-vax.c:965 config/tc-vax.c:970 ecoff.c:1582
+#: config/tc-tic4x.c:1216 config/tc-tilegx.c:316 config/tc-tilepro.c:252
+#: config/tc-vax.c:963 config/tc-vax.c:968 ecoff.c:1583
#, c-format
msgid "duplicate %s"
msgstr "duplicado «%s»"
-#: config/tc-alpha.c:5549 config/tc-arc.c:2532 config/tc-arc.c:2546
-#: config/tc-arm.c:888 config/tc-xtensa.c:5473 config/tc-xtensa.c:5549
-#: config/tc-xtensa.c:5666 config/tc-z80.c:3677
+#: config/tc-alpha.c:5521 config/tc-arc.c:2531 config/tc-arc.c:2545
+#: config/tc-arm.c:888 config/tc-xtensa.c:5474 config/tc-xtensa.c:5550
+#: config/tc-xtensa.c:5667 config/tc-z80.c:3677
msgid "syntax error"
msgstr "error de sintaxis"
-#: config/tc-alpha.c:5679
+#: config/tc-alpha.c:5651
msgid ""
"Alpha options:\n"
"-32addr\t\t\ttreat addresses as 32-bit values\n"
@@ -3047,7 +3047,7 @@ msgstr ""
"-m21064 | -m21066 | -m21164 | -m21164a | -m21164pc | -m21264 | -m21264a | -m21264b\n"
"\t\t\testas variantes incluyen códigos de operación PALcode\n"
-#: config/tc-alpha.c:5689
+#: config/tc-alpha.c:5661
msgid ""
"VMS options:\n"
"-+\t\t\tencode (don't truncate) names longer than 64 characters\n"
@@ -3059,42 +3059,42 @@ msgstr ""
"-H\t\t\tmuestra el símbolo nuevo después del truncado hash\n"
"-replace/-noreplace\tactiva o desactiva la optimización de llamadas a procedimientos\n"
-#: config/tc-alpha.c:5946 config/tc-arc.c:3145
+#: config/tc-alpha.c:5918 config/tc-arc.c:3144
#, c-format
msgid "unhandled relocation type %s"
msgstr "tipo de reubicación %s sin manejar"
-#: config/tc-alpha.c:5959 config/tc-arc.c:3153
+#: config/tc-alpha.c:5931 config/tc-arc.c:3152
msgid "non-absolute expression in constant field"
msgstr "expresión no absoluta en campo constante"
-#: config/tc-alpha.c:5973
+#: config/tc-alpha.c:5945
#, c-format
msgid "type %d reloc done?\n"
msgstr "¿tipo %d de reubicación hecha?\n"
-#: config/tc-alpha.c:6020 config/tc-alpha.c:6027
+#: config/tc-alpha.c:5992 config/tc-alpha.c:5999
msgid "Used $at without \".set noat\""
msgstr "Se utilizó $at sin \".set noat\""
-#: config/tc-alpha.c:6196
+#: config/tc-alpha.c:6168
#, c-format
msgid "!samegp reloc against symbol without .prologue: %s"
msgstr "reubicación !samegp contra un símbolo sin .prologue: %s"
-#: config/tc-alpha.c:6240 config/tc-arc.c:3276 config/tc-csky.c:5668
-#: config/tc-tilegx.c:1745 config/tc-tilepro.c:1522 config/tc-wasm32.c:813
-#: config/tc-xtensa.c:6176
+#: config/tc-alpha.c:6212 config/tc-arc.c:3275 config/tc-csky.c:5686
+#: config/tc-tilegx.c:1737 config/tc-tilepro.c:1518 config/tc-wasm32.c:813
+#: config/tc-xtensa.c:6177
#, c-format
msgid "cannot represent `%s' relocation in object file"
msgstr "no se puede representar la reubicación «%s» en el fichero objeto"
-#: config/tc-alpha.c:6246 config/tc-arc.c:3282
+#: config/tc-alpha.c:6218 config/tc-arc.c:3281
#, c-format
msgid "internal error? cannot generate `%s' relocation"
msgstr "¿error interno? no se puede generar la reubicación «%s»"
-#: config/tc-alpha.c:6342
+#: config/tc-alpha.c:6314
#, c-format
msgid "frame reg expected, using $%d."
msgstr "se esperaba un registro de marco; se usa $%d."
@@ -3153,16 +3153,16 @@ msgstr "Expresión incorrecta: @%s + %s."
msgid "Brackets in operand field incorrect"
msgstr "Corchetes en campo de operando incorrectos"
-#: config/tc-arc.c:1345 config/tc-xtensa.c:2072
+#: config/tc-arc.c:1345 config/tc-xtensa.c:2073
msgid "extra comma"
msgstr "coma extra"
-#: config/tc-arc.c:1347 config/tc-pru.c:1457 config/tc-pru.c:1705
-#: config/tc-xtensa.c:2076
+#: config/tc-arc.c:1347 config/tc-pru.c:1456 config/tc-pru.c:1703
+#: config/tc-xtensa.c:2077
msgid "missing argument"
msgstr "falta un argumento"
-#: config/tc-arc.c:1349 config/tc-xtensa.c:2078
+#: config/tc-arc.c:1349 config/tc-xtensa.c:2079
msgid "missing comma or colon"
msgstr "falta coma o dos puntos"
@@ -3182,76 +3182,76 @@ msgstr "no se han podido interpretar las marcas"
msgid "Unhandled reloc type"
msgstr "Tipo de reubicación no manejado"
-#: config/tc-arc.c:1967
+#: config/tc-arc.c:1966
msgid "immediate is out of bounds"
msgstr "el inmediato está fuera de límites"
-#: config/tc-arc.c:1975
+#: config/tc-arc.c:1974
msgid "immediate is not 32bit aligned"
msgstr "el inmediato no está alineado a 32 bits"
-#: config/tc-arc.c:1982
+#: config/tc-arc.c:1981
msgid "immediate is not 16bit aligned"
msgstr "el inmediato no está alineado a 16 bits"
-#: config/tc-arc.c:2063
+#: config/tc-arc.c:2062
msgid "operand is not duplicate of the previous one"
msgstr "el operando no es un duplicado del anterior"
-#: config/tc-arc.c:2083
+#: config/tc-arc.c:2082
msgid "flag mismatch"
msgstr "marca discordante"
-#: config/tc-arc.c:2095 config/tc-pru.c:1413 config/tc-pru.c:1438
-#: config/tc-xtensa.c:2142
+#: config/tc-arc.c:2094 config/tc-pru.c:1412 config/tc-pru.c:1437
+#: config/tc-xtensa.c:2143
msgid "too many arguments"
msgstr "demasiados argumentos"
-#: config/tc-arc.c:2500
+#: config/tc-arc.c:2499
#, c-format
msgid "%s for instruction '%s'"
msgstr "%s para la instrucción «%s»"
-#: config/tc-arc.c:2502
+#: config/tc-arc.c:2501
#, c-format
msgid "inappropriate arguments for opcode '%s'"
msgstr "argumentos inapropiados para el código de operación «%s»"
-#: config/tc-arc.c:2504
+#: config/tc-arc.c:2503
#, c-format
msgid "opcode '%s' not supported for target %s"
msgstr "no se admite el código de operación «%s» para el objetivo %s"
-#: config/tc-arc.c:2508 config/tc-tic6x.c:3188
+#: config/tc-arc.c:2507 config/tc-tic6x.c:3187
#, c-format
msgid "unknown opcode '%s'"
msgstr "código de operación desconocido «%s»"
-#: config/tc-arc.c:2614 config/tc-arc.c:5093 config/tc-h8300.c:78
+#: config/tc-arc.c:2613 config/tc-arc.c:5090 config/tc-h8300.c:78
#: config/tc-h8300.c:87 config/tc-h8300.c:97 config/tc-h8300.c:107
#: config/tc-h8300.c:117 config/tc-h8300.c:128 config/tc-h8300.c:243
#: config/tc-hppa.c:6826 config/tc-hppa.c:6832 config/tc-hppa.c:6838
-#: config/tc-hppa.c:6844 config/tc-hppa.c:8231 config/tc-kvx.c:1438
-#: config/tc-lm32.c:197 config/tc-mips.c:3699 config/tc-mips.c:4193
-#: config/tc-mn10300.c:935 config/tc-mn10300.c:940 config/tc-mn10300.c:2438
-#: config/tc-riscv.c:1897 config/tc-riscv.c:5716
+#: config/tc-hppa.c:6844 config/tc-hppa.c:8230 config/tc-kvx.c:1438
+#: config/tc-lm32.c:197 config/tc-mips.c:3698 config/tc-mips.c:4192
+#: config/tc-mn10300.c:934 config/tc-mn10300.c:939 config/tc-mn10300.c:2438
+#: config/tc-riscv.c:1908 config/tc-riscv.c:5850
msgid "could not set architecture and machine"
msgstr "no se ha podido establecer la arquitectura y la máquina"
-#: config/tc-arc.c:2815
+#: config/tc-arc.c:2814
#, c-format
msgid "unhandled reloc %s in md_pcrel_from_section"
msgstr "reubicación no manejada %s en md_pcrel_from_section"
-#: config/tc-arc.c:2880
+#: config/tc-arc.c:2879
msgid "Unaligned operand. Needs to be 32bit aligned"
msgstr "Operando no alineado. Requiere ser alineado a 32 bits"
-#: config/tc-arc.c:2885
+#: config/tc-arc.c:2884
msgid "Unaligned operand. Needs to be 16bit aligned"
msgstr "Operando no alineado. Requiere ser alineado a 16 bits"
-#: config/tc-arc.c:3016
+#: config/tc-arc.c:3015
#, c-format
msgid "PC relative relocation not allowed for (internal) type %d"
msgstr "Reubicación relativa a PC no permitida para el tipo (interno) %d"
@@ -3260,35 +3260,35 @@ msgstr "Reubicación relativa a PC no permitida para el tipo (interno) %d"
#. the insn.
#. FIXME! Check for the conditionality of
#. the insn.
-#: config/tc-arc.c:3061 config/tc-arc.c:4042
+#: config/tc-arc.c:3060 config/tc-arc.c:4041
msgid "TLS_*_S9 relocs are not supported yet"
msgstr "Las reubicaciones TLS_*_S9 todavía no están disponibles"
#. I cannot fix an GOTPC relocation because I need to relax it
#. from ld rx,[pcl,@sym@gotpc] to add rx,pcl,@sym@gotpc.
-#: config/tc-arc.c:3097
+#: config/tc-arc.c:3096
msgid "Unsupported operation on reloc"
msgstr "Operación no soportada en reubicación"
-#: config/tc-arc.c:3173 config/tc-arc.c:3189
+#: config/tc-arc.c:3172 config/tc-arc.c:3188
msgid "unknown fixup size"
msgstr "tamaño de la corrección desconocido"
-#: config/tc-arc.c:3323
+#: config/tc-arc.c:3322
msgid "no relaxation found for this instruction."
msgstr "ninguna relajación encontrada para esta instrucción."
-#: config/tc-arc.c:3576
+#: config/tc-arc.c:3575
#, c-format
msgid "ARC-specific assembler options:\n"
msgstr "Opciones de ensamblador específicas de ARC:\n"
-#: config/tc-arc.c:3602
+#: config/tc-arc.c:3601
#, c-format
msgid " -mrelax enable relaxation\n"
msgstr " -mrelax activa la relajación\n"
-#: config/tc-arc.c:3605
+#: config/tc-arc.c:3604
#, c-format
msgid ""
"The following ARC-specific assembler options are deprecated and are accepted\n"
@@ -3297,7 +3297,7 @@ msgstr ""
"Las siguientes opciones de ensamblador específicas de ARC están obsoletas y\n"
"se aceptan únicamente por compatibilidad:\n"
-#: config/tc-arc.c:3608
+#: config/tc-arc.c:3607
#, c-format
msgid ""
" -mEA\n"
@@ -3352,145 +3352,145 @@ msgstr ""
" -muser-mode-only\n"
" -mxy\n"
-#: config/tc-arc.c:3698
+#: config/tc-arc.c:3697
#, c-format
msgid "Unable to find %s relocation for instruction %s"
msgstr "No se ha podido encontrar la reubicacion de %s para la instrucción %s"
-#: config/tc-arc.c:3993
+#: config/tc-arc.c:3992
#, c-format
msgid "Unable to use @plt relocation for insn %s"
msgstr "No se ha podido utilizar la reubicación de @plt para la insn %s"
-#: config/tc-arc.c:4012
+#: config/tc-arc.c:4011
#, c-format
msgid "Unable to use @pcl relocation for insn %s"
msgstr "No se ha podido emplear la reubicación de @pcl para la insn %s"
-#: config/tc-arc.c:4068
+#: config/tc-arc.c:4066
#, c-format
msgid "invalid relocation %s for field"
msgstr "reubicación no válida %s para el campo"
-#: config/tc-arc.c:4178
+#: config/tc-arc.c:4175
#, c-format
msgid "Insn %s has a jump/branch instruction %s in its delay slot."
msgstr "Insn %s tiene una instrucción de salto/bifurcación %s en su ranura de retardo."
-#: config/tc-arc.c:4183
+#: config/tc-arc.c:4180
#, c-format
msgid "Insn %s has an instruction %s with limm in its delay slot."
msgstr "Insn %s tiene una instrucción %s con limm en su ranura de retardo."
-#: config/tc-arc.c:4293 config/tc-microblaze.c:2628 config/tc-mn10300.c:1069
-#: config/tc-sh.c:418 config/tc-z80.c:1120 read.c:4837
+#: config/tc-arc.c:4290 config/tc-microblaze.c:2611 config/tc-mn10300.c:1068
+#: config/tc-sh.c:418 config/tc-z80.c:1120 read.c:4899
#, c-format
msgid "unsupported BFD relocation size %u"
msgstr "no se admite el tamaño de reubicación BFD %u"
-#: config/tc-arc.c:4313
+#: config/tc-arc.c:4310
#, c-format
msgid "Jump/Branch instruction detected at the end of the ZOL label @%s"
msgstr "Instrucción de Salto/Bifurcación detectada al final de la etiqueta ZOL @%s"
-#: config/tc-arc.c:4320
+#: config/tc-arc.c:4317
#, c-format
msgid "Kernel instruction detected at the end of the ZOL label @%s"
msgstr "Instrucción del núcleo detectada al final de la etiqueta ZOL @%s"
-#: config/tc-arc.c:4325
+#: config/tc-arc.c:4322
#, c-format
msgid "A jump instruction with long immediate detected at the end of the ZOL label @%s"
msgstr "Instrucción de salto con inmediato largo detectada al final de la etiqueta ZOL @%s"
-#: config/tc-arc.c:4331
+#: config/tc-arc.c:4328
#, c-format
msgid "An illegal use of delay slot detected at the end of the ZOL label @%s"
msgstr "Uso ilegal de la ranura de retardo detectado al final del etiqueta ZOL @%s"
-#: config/tc-arc.c:4440
+#: config/tc-arc.c:4437
msgid "expected comma after instruction name"
msgstr "se esperaba coma después del nombre de la instrucción"
-#: config/tc-arc.c:4452
+#: config/tc-arc.c:4449
msgid "expected comma after major opcode"
msgstr "se esperaba coma después del código de operación mayor"
-#: config/tc-arc.c:4637
+#: config/tc-arc.c:4634
#, c-format
msgid "Pseudocode already used %s"
msgstr "Pseudocódigo ya utilizado %s"
-#: config/tc-arc.c:4645
+#: config/tc-arc.c:4642
#, c-format
msgid "major opcode not in range [0x%02x - 0x%02x]"
msgstr "código de operación mayor no dentro del rango [0x%02x - 0x%02x]"
-#: config/tc-arc.c:4649
+#: config/tc-arc.c:4646
msgid "minor opcode not in range [0x00 - 0x3f]"
msgstr "código de operación menor no dentro del rango [0x00 - 0x3f]"
-#: config/tc-arc.c:4655
+#: config/tc-arc.c:4652
msgid "Improper use of OP1_IMM_IMPLIED"
msgstr "Utilización impropia de OP1_IMM_IMPLIED"
-#: config/tc-arc.c:4661
+#: config/tc-arc.c:4658
msgid "Improper use of OP1_MUST_BE_IMM"
msgstr "Utilización impropia de OP1_MUST_BE_IMM"
-#: config/tc-arc.c:4673
+#: config/tc-arc.c:4670
msgid "Couldn't generate extension instruction opcodes"
msgstr "No se han podido generar códigos de operación de instrucciones de extensión"
-#: config/tc-arc.c:4708
+#: config/tc-arc.c:4705
msgid "expected comma after name"
msgstr "se esperaba una coma tras el nombre"
-#: config/tc-arc.c:4719
+#: config/tc-arc.c:4716
#, c-format
msgid "%s second argument cannot be a negative number %d"
msgstr "el segundo argumento de %s no puede ser un número negativo %d"
-#: config/tc-arc.c:4734
+#: config/tc-arc.c:4731
msgid "expected comma after register number"
msgstr "se esperaba coma después del número de registro"
-#: config/tc-arc.c:4755
+#: config/tc-arc.c:4752
msgid "invalid mode"
msgstr "modo inválido"
-#: config/tc-arc.c:4773
+#: config/tc-arc.c:4770
msgid "expected comma after register mode"
msgstr "se esperaba coma después del modo de registro"
-#: config/tc-arc.c:4788
+#: config/tc-arc.c:4785
msgid "shortcut designator invalid"
msgstr "designador de atajo inválido"
-#: config/tc-arc.c:4886
+#: config/tc-arc.c:4883
#, c-format
msgid "core register %s value (%d) too large"
msgstr "el registro %s core con un valor (%d) demasiado grande"
-#: config/tc-arc.c:4898
+#: config/tc-arc.c:4895
#, c-format
msgid "duplicate aux register %s"
msgstr "el registro aux duplicado %s"
-#: config/tc-arc.c:4903
+#: config/tc-arc.c:4900
#, c-format
msgid "condition code %s value (%d) too large"
msgstr "código %s de condición con un valor (%d) demasiado grande"
-#: config/tc-arc.c:4920
+#: config/tc-arc.c:4917
msgid "Unknown extension"
msgstr "Extensión desconocida"
-#: config/tc-arc.c:5027
+#: config/tc-arc.c:5024
msgid "Overwrite explicitly set Tag_ARC_CPU_base"
msgstr "La sobreescritura establece explícitamente Tag_ARC_CPU_base"
-#: config/tc-arc.c:5077
+#: config/tc-arc.c:5074
msgid "Overwrite explicitly set Tag_ARC_ABI_rf16 to full register file"
msgstr "La sobreescritura establece explícitamente Tag_ARC_ABI_rf16 al fichero de registros completo"
@@ -3542,7 +3542,7 @@ msgstr "se esperaba un registro de sistema VFP"
msgid "iWMMXt data register expected"
msgstr "se esperaba un registro de datos iWMMXt"
-#: config/tc-arm.c:715 config/tc-arm.c:7745
+#: config/tc-arm.c:715 config/tc-arm.c:7734
msgid "iWMMXt control register expected"
msgstr "se esperaba un registro de control iWMMXt"
@@ -3613,7 +3613,7 @@ msgstr "la bifurcación debe ser la última instrucción en el bloque IT"
#: config/tc-arm.c:900
msgid "branch out of range or not a multiple of 2"
-msgstr "ramificación fuera de rango o no es múltiplo de 2"
+msgstr "bifurcación fuera de rango o no es múltiplo de 2"
#: config/tc-arm.c:901
msgid "instruction not allowed in VPT block"
@@ -3731,11 +3731,11 @@ msgstr "el procesador seleccionado no admite la extensión PACBTI"
msgid "immediate expression requires a # prefix"
msgstr "e xpresión inmediata requiere un prefijo #"
-#: config/tc-arm.c:1188 read.c:4077
+#: config/tc-arm.c:1188 read.c:4130
msgid "missing expression"
msgstr "falta expresión"
-#: config/tc-arm.c:1202 config/tc-arm.c:5590 config/tc-score.c:1205
+#: config/tc-arm.c:1202 config/tc-arm.c:5582 config/tc-score.c:1205
msgid "invalid constant"
msgstr "constante no válida"
@@ -3743,622 +3743,622 @@ msgstr "constante no válida"
msgid "expected #constant"
msgstr "se esperaba #constant"
-#: config/tc-arm.c:1509 config/tc-arm.c:1540
+#: config/tc-arm.c:1504
+msgid "unexpected type character `b' -- did you mean `bf'?"
+msgstr "carácter de tipo inesperado `b' -- ¿quiso decir `bf'?"
+
+#: config/tc-arm.c:1511 config/tc-arm.c:1533
#, c-format
msgid "bad size %d in type specifier"
msgstr "tamaño incorrecto %d en el especificador de tipo"
#: config/tc-arm.c:1516
-msgid "unexpected type character `b' -- did you mean `bf'?"
-msgstr "carácter de tipo inesperado `b' -- ¿quiso decir `bf'?"
-
-#: config/tc-arm.c:1523
#, c-format
msgid "unexpected character `%c' in type specifier"
msgstr "carácter inesperado `%c' en el especificador de tipo"
-#: config/tc-arm.c:1590
+#: config/tc-arm.c:1583
msgid "only one type should be specified for operand"
msgstr "solo se debe especificar un tipo para el operando"
-#: config/tc-arm.c:1596
+#: config/tc-arm.c:1589
msgid "vector type expected"
msgstr "se esperaba un tipo vector"
-#: config/tc-arm.c:1705
+#: config/tc-arm.c:1698
msgid "expected MVE register [q0..q7]"
msgstr "se esperaba un registro MVE [q0..q7]"
-#: config/tc-arm.c:1725
+#: config/tc-arm.c:1718
msgid "can't redefine type for operand"
msgstr "no se puede redefinir el tipo para el operando"
-#: config/tc-arm.c:1741
+#: config/tc-arm.c:1734
msgid "only D and Q registers may be indexed"
msgstr "solo se pueden indexar los registros D y Q"
-#: config/tc-arm.c:1743
+#: config/tc-arm.c:1736
msgid "only D registers may be indexed"
msgstr "solo se pueden indexar los registros D"
-#: config/tc-arm.c:1749
+#: config/tc-arm.c:1742
msgid "can't change index for operand"
msgstr "no se puede modificar el índice para el operando"
-#: config/tc-arm.c:1812
+#: config/tc-arm.c:1805
msgid "register operand expected, but got scalar"
msgstr "se esperaba un operando de registro, pero se recibió un escalar"
-#: config/tc-arm.c:1863
+#: config/tc-arm.c:1856
msgid "scalar must have an index"
msgstr "el escalar debe tener un índice"
-#: config/tc-arm.c:1868 config/tc-arm.c:20038 config/tc-arm.c:20121
-#: config/tc-arm.c:20794
+#: config/tc-arm.c:1861 config/tc-arm.c:20027 config/tc-arm.c:20110
+#: config/tc-arm.c:20783
msgid "scalar index out of range"
msgstr "índice escalar fuera de rango"
-#: config/tc-arm.c:1947
+#: config/tc-arm.c:1940
msgid "r0-r12, lr or APSR expected"
msgstr "se esperaba r0-r12, lr o APSR"
-#: config/tc-arm.c:1974 config/tc-arm.c:4376
+#: config/tc-arm.c:1967 config/tc-arm.c:4369
msgid "bad range in register list"
msgstr "rango incorrecto en la lista de registros"
-#: config/tc-arm.c:1982 config/tc-arm.c:1991 config/tc-arm.c:2032
-#: config/tc-arm.c:4360 config/tc-arm.c:4380
+#: config/tc-arm.c:1975 config/tc-arm.c:1984 config/tc-arm.c:2025
+#: config/tc-arm.c:4353 config/tc-arm.c:4373
#, c-format
msgid "Warning: duplicated register (r%d) in register list"
msgstr "Aviso: registro duplicado (r%d) en la lista de registros"
-#: config/tc-arm.c:1994
+#: config/tc-arm.c:1987
msgid "Warning: register range not in ascending order"
msgstr "Aviso: el rango de registros no está en orden ascendente"
-#: config/tc-arm.c:2005
+#: config/tc-arm.c:1998
msgid "missing `}'"
msgstr "falta `}'"
-#: config/tc-arm.c:2021
+#: config/tc-arm.c:2014
msgid "invalid register mask"
msgstr "máscara de registro no válida"
-#: config/tc-arm.c:2098
+#: config/tc-arm.c:2091
msgid "expecting {"
msgstr "se esperaba {"
-#: config/tc-arm.c:2165 config/tc-arm.c:2273
+#: config/tc-arm.c:2158 config/tc-arm.c:2266
msgid "VPR expected last"
msgstr "se esperaba VPR lo último"
-#: config/tc-arm.c:2171
+#: config/tc-arm.c:2164
msgid "VFP single precision register or VPR expected"
msgstr "Se esperaba un registro VFP de precisión simple o VPR"
#. regtype == REG_TYPE_VFD.
-#: config/tc-arm.c:2174
+#: config/tc-arm.c:2167
msgid "VFP/Neon double precision register or VPR expected"
msgstr "Se esperaba un registro VFP/Neon de precisión doble o VPR"
-#: config/tc-arm.c:2191 config/tc-arm.c:2235
+#: config/tc-arm.c:2184 config/tc-arm.c:2228
msgid "register out of range in list"
msgstr "el registro fuera de rango en la lista"
-#: config/tc-arm.c:2213 config/tc-arm.c:4526 config/tc-arm.c:4660
+#: config/tc-arm.c:2206 config/tc-arm.c:4519 config/tc-arm.c:4653
msgid "register list not in ascending order"
msgstr "la lista de registros no está en orden ascendente"
-#: config/tc-arm.c:2244
+#: config/tc-arm.c:2237
msgid "register range not in ascending order"
msgstr "el rango de registros no está en orden ascendente"
-#: config/tc-arm.c:2283
+#: config/tc-arm.c:2276
msgid "non-contiguous register range"
msgstr "el rango de registros no es contiguo"
-#: config/tc-arm.c:2343
+#: config/tc-arm.c:2336
msgid "register stride must be 1"
msgstr "el avance de registro debe ser 1"
-#: config/tc-arm.c:2344
+#: config/tc-arm.c:2337
msgid "register stride must be 1 or 2"
msgstr "el avance de registro debe ser 1 o 2"
-#: config/tc-arm.c:2345
+#: config/tc-arm.c:2338
msgid "mismatched element/structure types in list"
msgstr "los tipos de elementos/estructuras no coinciden en la lista"
-#: config/tc-arm.c:2415
+#: config/tc-arm.c:2408
msgid "don't use Rn-Rm syntax with non-unit stride"
msgstr "no utilice la sintaxis Rn-Rm con avance no unitario"
-#: config/tc-arm.c:2470
+#: config/tc-arm.c:2463
msgid "error parsing element/structure list"
msgstr "error al analizar la lista de elementos/estructuras"
-#: config/tc-arm.c:2476
+#: config/tc-arm.c:2469
msgid "expected }"
msgstr "se esperaba }"
-#: config/tc-arm.c:2566
+#: config/tc-arm.c:2558
msgid "attempt to redefine typed alias"
msgstr "se intentó redefinir el alias con tipo"
-#: config/tc-arm.c:2701
+#: config/tc-arm.c:2693
msgid "bad type for register"
msgstr "tipo incorrecto para el registro"
-#: config/tc-arm.c:2712
+#: config/tc-arm.c:2704
msgid "expression must be constant"
msgstr "la expresión debe ser constante"
-#: config/tc-arm.c:2729
+#: config/tc-arm.c:2721
msgid "can't redefine the type of a register alias"
msgstr "no se puede redefinir el tipo de un alias de registro"
-#: config/tc-arm.c:2736
+#: config/tc-arm.c:2728
msgid "you must specify a single type only"
msgstr "solo debe especificar un único tipo"
-#: config/tc-arm.c:2749
+#: config/tc-arm.c:2741
msgid "can't redefine the index of a scalar alias"
msgstr "no se puede redefinir el índice de un alias escalar"
-#: config/tc-arm.c:2757
+#: config/tc-arm.c:2749
msgid "scalar index must be constant"
msgstr "el índice escalar debe ser constante"
-#: config/tc-arm.c:2766
+#: config/tc-arm.c:2758
msgid "expecting ]"
msgstr "se esperaba ]"
-#: config/tc-arm.c:2818
+#: config/tc-arm.c:2810
msgid "invalid syntax for .dn directive"
msgstr "sintaxis no válida para la directiva .dn"
-#: config/tc-arm.c:2824
+#: config/tc-arm.c:2816
msgid "invalid syntax for .qn directive"
msgstr "sintaxis no válida para la directiva .qn"
-#: config/tc-arm.c:2854
+#: config/tc-arm.c:2845
#, c-format
msgid "ignoring attempt to use .unreq on fixed register name: '%s'"
msgstr "se descarta el intento de usar .unreq en un nombre de registro fijo: «%s»"
-#: config/tc-arm.c:3116
+#: config/tc-arm.c:3107
#, c-format
-msgid "Failed to find real start of function: %s\n"
-msgstr "No se ha podido encontrar el inicio real de la función: %s\n"
+msgid "Failed to find real start of function: %s"
+msgstr "No se ha podido encontrar el inicio real de la función: %s"
-#: config/tc-arm.c:3133
+#: config/tc-arm.c:3124
msgid "selected processor does not support THUMB opcodes"
msgstr "el procesador seleccionado no admite códigos operacionales THUMB"
-#: config/tc-arm.c:3146
+#: config/tc-arm.c:3137
msgid "selected processor does not support ARM opcodes"
msgstr "el procesador seleccionado no admite códigos operacionales ARM"
-#: config/tc-arm.c:3158
+#: config/tc-arm.c:3149
#, c-format
msgid "invalid instruction size selected (%d)"
msgstr "se ha seleccionado un tamaño de instrucción no válido (%d)"
-#: config/tc-arm.c:3190
+#: config/tc-arm.c:3181
#, c-format
msgid "invalid operand to .code directive (%d) (expecting 16 or 32)"
msgstr "operando inválido para la directiva .code (%d) (se esperaba 16 o 32)"
-#: config/tc-arm.c:3246
+#: config/tc-arm.c:3237
#, c-format
msgid "expected comma after name \"%s\""
msgstr "se esperaba una coma después del nombre «%s»"
-#: config/tc-arm.c:3296 config/tc-m32r.c:584
+#: config/tc-arm.c:3286 config/tc-m32r.c:584
#, c-format
msgid "symbol `%s' already defined"
msgstr "el símbolo «%s» ya está definido"
-#: config/tc-arm.c:3329
+#: config/tc-arm.c:3319
#, c-format
msgid "unrecognized syntax mode \"%s\""
msgstr "modo de sintaxis no reconocido «%s»"
-#: config/tc-arm.c:3359
+#: config/tc-arm.c:3349
msgid ".ref pseudo-op only available with -mccs flag."
msgstr "pseudo-op .ref solo disponible con el indicador -mccs."
-#: config/tc-arm.c:3400
+#: config/tc-arm.c:3390
msgid ".asmfunc repeated."
msgstr ".asmfunc repetido."
-#: config/tc-arm.c:3404
+#: config/tc-arm.c:3394
msgid ".asmfunc without function."
msgstr ".asmfunc sin función."
-#: config/tc-arm.c:3410
+#: config/tc-arm.c:3400
msgid ".asmfunc pseudo-op only available with -mccs flag."
msgstr "pseudo-op .asmfunc solo disponible con el indicador -mccs."
-#: config/tc-arm.c:3421
+#: config/tc-arm.c:3411
msgid ".endasmfunc without a .asmfunc."
msgstr ".endasmfunc sin un .asmfunc."
-#: config/tc-arm.c:3425
+#: config/tc-arm.c:3415
msgid ".endasmfunc without function."
msgstr ".endasmfunc sin función."
-#: config/tc-arm.c:3436
+#: config/tc-arm.c:3426
msgid ".endasmfunc pseudo-op only available with -mccs flag."
msgstr "pseudo-op .endasmfunc solo disponible con el indicador -mccs."
-#: config/tc-arm.c:3445
+#: config/tc-arm.c:3438
msgid ".def pseudo-op only available with -mccs flag."
msgstr "pseudo-op .def solo disponible con el indicador -mccs."
-#: config/tc-arm.c:3603
+#: config/tc-arm.c:3597
msgid "invalid type for literal pool"
msgstr "tipo no válido para conjunto de literales"
-#: config/tc-arm.c:3683 config/tc-tic54x.c:5379
+#: config/tc-arm.c:3677 config/tc-tic54x.c:5368
#, c-format
msgid "Invalid label '%s'"
msgstr "Etiqueta no válida «%s»"
-#: config/tc-arm.c:3860
+#: config/tc-arm.c:3853
msgid "(plt) is only valid on branch targets"
msgstr "(plt) solo es válido en objetivos de bifurcación"
-#: config/tc-arm.c:3866 config/tc-csky.c:7672 config/tc-s390.c:1304
-#: config/tc-s390.c:2099 config/tc-xtensa.c:1698
+#: config/tc-arm.c:3859 config/tc-csky.c:7686 config/tc-s390.c:1317
+#: config/tc-s390.c:2119 config/tc-xtensa.c:1698
#, c-format
msgid "%s relocations do not fit in %d byte"
msgid_plural "%s relocations do not fit in %d bytes"
msgstr[0] "%s reubicaciones no caben en %d byte"
msgstr[1] "%s reubicaciones no caben en %d bytes"
-#: config/tc-arm.c:3948
+#: config/tc-arm.c:3941
msgid ".inst.n operand too big. Use .inst.w instead"
msgstr "operando de .inst.n demasiado grande. Utilice .inst.w en su lugar"
-#: config/tc-arm.c:3968
+#: config/tc-arm.c:3961
msgid "cannot determine Thumb instruction size. Use .inst.n/.inst.w instead"
msgstr "no se puede determinar el tamaño de la instrucción Thumb. Utilice .inst.n/.inst.w en su lugar"
-#: config/tc-arm.c:3998
+#: config/tc-arm.c:3991
msgid "width suffixes are invalid in ARM mode"
msgstr "los sufijos de anchura son inválidos en modo ARM"
-#: config/tc-arm.c:4042 dwarf2dbg.c:1467
+#: config/tc-arm.c:4035 dwarf2dbg.c:1467
msgid "expected 0 or 1"
msgstr "se esperaba 0 ó 1"
-#: config/tc-arm.c:4046
+#: config/tc-arm.c:4039
msgid "missing comma"
msgstr "falta coma"
-#: config/tc-arm.c:4079
+#: config/tc-arm.c:4072
msgid "duplicate .fnstart directive"
msgstr "directiva .fnstart duplicada"
-#: config/tc-arm.c:4109 config/tc-tic6x.c:410
+#: config/tc-arm.c:4102 config/tc-tic6x.c:410
msgid "duplicate .handlerdata directive"
msgstr "directiva .handlerdata duplicada"
-#: config/tc-arm.c:4128
+#: config/tc-arm.c:4121
msgid ".fnend directive without .fnstart"
msgstr "directiva .fnend sin .fnstart"
-#: config/tc-arm.c:4195 config/tc-tic6x.c:391
+#: config/tc-arm.c:4188 config/tc-tic6x.c:391
msgid "personality routine specified for cantunwind frame"
msgstr "se especificó una rutina de personalidad para el marco cantunwind"
-#: config/tc-arm.c:4212 config/tc-tic6x.c:452
+#: config/tc-arm.c:4205 config/tc-tic6x.c:452
msgid "duplicate .personalityindex directive"
msgstr "directiva .personalityindex duplicada"
-#: config/tc-arm.c:4219 config/tc-tic6x.c:459
+#: config/tc-arm.c:4212 config/tc-tic6x.c:459
msgid "bad personality routine number"
msgstr "número de rutina de personalidad incorrecto"
-#: config/tc-arm.c:4241 config/tc-tic6x.c:476
+#: config/tc-arm.c:4234 config/tc-tic6x.c:476
msgid "duplicate .personality directive"
msgstr "directiva .personality duplicada"
-#: config/tc-arm.c:4267
+#: config/tc-arm.c:4260
#, c-format
-msgid "Unknown register no. encountered: %d\n"
-msgstr "Nº del registro encontrado desconocido: %d\n"
+msgid "Unknown register no. encountered: %d"
+msgstr "Nº del registro encontrado desconocido: %d"
-#: config/tc-arm.c:4363
+#: config/tc-arm.c:4356
msgid "Warning: register list not in ascending order"
msgstr "Aviso: la lista de registros no está en orden ascendente"
-#: config/tc-arm.c:4370 config/tc-epiphany.c:382 config/tc-m68k.c:5866
+#: config/tc-arm.c:4363 config/tc-epiphany.c:378 config/tc-m68k.c:5866
#: config/tc-m68k.c:5895
msgid "bad register list"
msgstr "lista de registros incorrecta"
-#: config/tc-arm.c:4428 config/tc-arm.c:4478
+#: config/tc-arm.c:4421 config/tc-arm.c:4471
msgid "expected register list"
msgstr "se esperaba una lista de registros"
-#: config/tc-arm.c:4540 config/tc-arm.c:4674
+#: config/tc-arm.c:4533 config/tc-arm.c:4667
msgid "bad register range"
msgstr "rango de registro incorrecto"
-#: config/tc-arm.c:4729
+#: config/tc-arm.c:4722
msgid "register expected"
msgstr "se esperaba un registro"
-#: config/tc-arm.c:4762
+#: config/tc-arm.c:4755
msgid ".unwind_save does not support this kind of register"
msgstr ".unwind_save no admite este tipo de registro"
-#: config/tc-arm.c:4801
+#: config/tc-arm.c:4794
msgid "SP and PC not permitted in .unwind_movsp directive"
msgstr "PS y PC no se permiten en la directiva .unwind_movsp"
-#: config/tc-arm.c:4806
+#: config/tc-arm.c:4799
msgid "unexpected .unwind_movsp directive"
msgstr "directiva .unwind_movsp inesperada"
-#: config/tc-arm.c:4833
+#: config/tc-arm.c:4826
msgid "stack increment must be multiple of 4"
msgstr "el incremento de pila debe ser múltiplo de 4"
-#: config/tc-arm.c:4881
+#: config/tc-arm.c:4874
msgid "expected <reg>, <reg>"
msgstr "se esperaba <reg>, <reg>"
-#: config/tc-arm.c:4899
+#: config/tc-arm.c:4892
msgid "register must be either sp or set by a previousunwind_movsp directive"
msgstr "el registro debe ser sp o establecido por una directiva previousunwind_movsp"
-#: config/tc-arm.c:4938
+#: config/tc-arm.c:4931
msgid "expected <offset>, <opcode>"
msgstr "se esperaba <desplazamiento>, <códigoop>"
-#: config/tc-arm.c:4950
+#: config/tc-arm.c:4943
msgid "unwind opcode too long"
msgstr "código de operación de desenrollado demasiado largo"
-#: config/tc-arm.c:4955
+#: config/tc-arm.c:4948
msgid "invalid unwind opcode"
msgstr "código de operación de desenredo inválido"
-#: config/tc-arm.c:5070 config/tc-arm.c:31769
+#: config/tc-arm.c:5064 config/tc-arm.c:31714
#, c-format
msgid "unrecognised float16 format \"%s\""
msgstr "formato float16 no reconocido «%s»"
-#: config/tc-arm.c:5081
+#: config/tc-arm.c:5075
msgid "float16 format cannot be set more than once, ignoring."
msgstr "el formato float16 no puede establecerse más de una vez; se descarta."
-#: config/tc-arm.c:5094
+#: config/tc-arm.c:5088
msgid "the floating-point format has not been set (or has been disabled)"
msgstr "el formato de coma flotante no se ha establecido (o se ha deshabilitado)"
-#: config/tc-arm.c:5211 config/tc-arm.c:6201 config/tc-arm.c:11469
-#: config/tc-arm.c:12002 config/tc-arm.c:14133 config/tc-arm.c:16084
-#: config/tc-arm.c:16119 config/tc-arm.c:17047 config/tc-arm.c:18960
-#: config/tc-arm.c:18968 config/tc-arm.c:18975 config/tc-arm.c:20635
-#: config/tc-arm.c:28766 config/tc-arm.c:28830 config/tc-arm.c:28838
-#: config/tc-metag.c:5174 config/tc-z8k.c:1161 config/tc-z8k.c:1171
+#: config/tc-arm.c:5205 config/tc-arm.c:6193 config/tc-arm.c:11458
+#: config/tc-arm.c:11991 config/tc-arm.c:14122 config/tc-arm.c:16073
+#: config/tc-arm.c:16108 config/tc-arm.c:17036 config/tc-arm.c:18949
+#: config/tc-arm.c:18957 config/tc-arm.c:18964 config/tc-arm.c:20624
+#: config/tc-arm.c:28711 config/tc-arm.c:28775 config/tc-arm.c:28783
+#: config/tc-metag.c:5172 config/tc-z8k.c:1161 config/tc-z8k.c:1171
msgid "immediate value out of range"
msgstr "valor inmediato fuera de rango"
-#: config/tc-arm.c:5474
+#: config/tc-arm.c:5466
msgid "'UXTW' not allowed here"
msgstr "no se permite 'UXTW' aquí"
-#: config/tc-arm.c:5482
+#: config/tc-arm.c:5474
msgid "'LSL' or 'ASR' required"
msgstr "'LSL' o 'ASR' requerido"
-#: config/tc-arm.c:5490
+#: config/tc-arm.c:5482
msgid "'LSL' required"
msgstr "'LSL' requerido"
-#: config/tc-arm.c:5498
+#: config/tc-arm.c:5490
msgid "'ASR' required"
msgstr "'ASR' requerido"
-#: config/tc-arm.c:5505
+#: config/tc-arm.c:5497
msgid "'UXTW' required"
msgstr "'UXTW' requerido"
-#: config/tc-arm.c:5584
+#: config/tc-arm.c:5576
msgid "invalid rotation"
msgstr "rotación no válida"
-#: config/tc-arm.c:5766 config/tc-arm.c:5979
+#: config/tc-arm.c:5758 config/tc-arm.c:5971
msgid "unknown group relocation"
msgstr "reubicación de grupo desconocida"
-#: config/tc-arm.c:5802
+#: config/tc-arm.c:5794
msgid "alignment must be constant"
msgstr "el alineamiento debe ser constante"
-#: config/tc-arm.c:6013
+#: config/tc-arm.c:6005
msgid "this group relocation is not allowed on this instruction"
msgstr "esta reubicación de grupo no se permite en esta instrucción"
-#: config/tc-arm.c:6069
+#: config/tc-arm.c:6061
msgid "'}' expected at end of 'option' field"
msgstr "se esperaba '}' al final del campo 'option'"
-#: config/tc-arm.c:6074
+#: config/tc-arm.c:6066
msgid "cannot combine index with option"
msgstr "no se puede combinar índice con opción"
-#: config/tc-arm.c:6339
+#: config/tc-arm.c:6330
msgid "unexpected bit specified after APSR"
msgstr "no se esperaba el bit especificado después de APSR"
-#: config/tc-arm.c:6351
+#: config/tc-arm.c:6342
msgid "selected processor does not support DSP extension"
msgstr "el procesador seleccionado no admite la extensión DSP"
-#: config/tc-arm.c:6363
+#: config/tc-arm.c:6354
msgid "bad bitmask specified after APSR"
msgstr "se especificó una máscara de bit incorrecta tras APSR"
-#: config/tc-arm.c:6387
+#: config/tc-arm.c:6377
msgid "writing to APSR without specifying a bitmask is deprecated"
msgstr "escribir en APSR sin especificar una máscara de bit está obsoleto"
-#: config/tc-arm.c:6399 config/tc-arm.c:13236 config/tc-arm.c:13281
-#: config/tc-arm.c:13285
+#: config/tc-arm.c:6389 config/tc-arm.c:13225 config/tc-arm.c:13270
+#: config/tc-arm.c:13274
msgid "selected processor does not support requested special purpose register"
msgstr "el procesador seleccionado no admite el registro de propósito especial solicitado"
-#: config/tc-arm.c:6404
+#: config/tc-arm.c:6394
msgid "flag for {c}psr instruction expected"
msgstr "se esperaba una opción para la instrucción {c}psr"
-#: config/tc-arm.c:6468
+#: config/tc-arm.c:6458
msgid "unrecognized CPS flag"
msgstr "no se reconoce la opción CPS"
-#: config/tc-arm.c:6475
+#: config/tc-arm.c:6465
msgid "missing CPS flags"
msgstr "faltan las opciones CPS"
-#: config/tc-arm.c:6498 config/tc-arm.c:6504
+#: config/tc-arm.c:6488 config/tc-arm.c:6494
msgid "valid endian specifiers are be or le"
msgstr "los especificadores endian válidos son be o le"
-#: config/tc-arm.c:6526
+#: config/tc-arm.c:6516
msgid "missing rotation field after comma"
msgstr "falta el campo rotation tras la coma"
-#: config/tc-arm.c:6541
+#: config/tc-arm.c:6531
msgid "rotation can only be 0, 8, 16, or 24"
msgstr "la rotación solo puede ser 0, 8, 16 o 24"
-#: config/tc-arm.c:6570
+#: config/tc-arm.c:6560
msgid "condition required"
msgstr "se requiere una condición"
-#: config/tc-arm.c:6612 config/tc-arm.c:9731
+#: config/tc-arm.c:6601 config/tc-arm.c:9720
msgid "'[' expected"
msgstr "se esperaba '['"
-#: config/tc-arm.c:6625
+#: config/tc-arm.c:6614
msgid "',' expected"
msgstr "se esperaba ','"
-#: config/tc-arm.c:6642
+#: config/tc-arm.c:6631
msgid "invalid shift"
msgstr "desplazamiento inválido"
-#: config/tc-arm.c:6722
+#: config/tc-arm.c:6711
msgid "expected ARM or MVE vector register"
msgstr "se esperaba un registro ARM o vectorial MVE"
-#: config/tc-arm.c:6771
+#: config/tc-arm.c:6760
msgid "can't use Neon quad register here"
msgstr "no se puede usar un registro Neon cuádruple aquí"
-#: config/tc-arm.c:6840
+#: config/tc-arm.c:6829
msgid "expected <Rm> or <Dm> or <Qm> operand"
msgstr "se esperaba un operando <Rm> o <Dm> o <Qm>"
-#: config/tc-arm.c:6940
+#: config/tc-arm.c:6929
msgid "VFP single, double or MVE vector register expected"
msgstr "Se esperaba un registro VFP de precisión simple o doble o un registro vectorial MVE"
-#: config/tc-arm.c:6960
+#: config/tc-arm.c:6949
msgid "parse error"
msgstr "error de análisis"
-#: config/tc-arm.c:7256
+#: config/tc-arm.c:7245
msgid "immediate value 48 or 64 expected"
msgstr "se esperaba valor inmediato 48 o 64"
#. ISB can only take SY as an option.
-#: config/tc-arm.c:7305
+#: config/tc-arm.c:7294
msgid "invalid barrier type"
msgstr "tipo de barrera no válido"
-#: config/tc-arm.c:7474
+#: config/tc-arm.c:7463
msgid "only floating point zero is allowed as immediate value"
msgstr "solo se permite cero en punto flotante como valor inmediato"
-#: config/tc-arm.c:7569
+#: config/tc-arm.c:7558
msgid "immediate value is out of range"
msgstr "el valor inmediato está fuera de rango"
-#: config/tc-arm.c:7730
+#: config/tc-arm.c:7719
msgid "iWMMXt data or control register expected"
msgstr "se esperaba un registro de datos o de control iWMMXt"
-#: config/tc-arm.c:7771
+#: config/tc-arm.c:7760
msgid "Banked registers are not available with this architecture."
msgstr "Los registros en bancos no están disponibles para esta arquitectura."
-#: config/tc-arm.c:8019
+#: config/tc-arm.c:8008
msgid "operand must be LR register"
msgstr "el operando debe ser registro LR"
-#: config/tc-arm.c:8024
+#: config/tc-arm.c:8013
msgid "operand must be SP register"
msgstr "el operando debe ser registro SP"
-#: config/tc-arm.c:8029
+#: config/tc-arm.c:8018
msgid "operand must be r12"
msgstr "el operando debe ser r12"
-#: config/tc-arm.c:8100 config/tc-score.c:260
+#: config/tc-arm.c:8089 config/tc-score.c:260
msgid "garbage following instruction"
msgstr "basura a continuación de la instrucción"
#. If REG is R13 (the stack pointer), warn that its use is
#. deprecated.
-#: config/tc-arm.c:8150
+#: config/tc-arm.c:8139
msgid "use of r13 is deprecated"
msgstr "el uso de r13 es obsoleto"
-#: config/tc-arm.c:8168 config/tc-arm.c:20335
+#: config/tc-arm.c:8157 config/tc-arm.c:20324
msgid "scalar fp16 instruction cannot be conditional, the behaviour is UNPREDICTABLE"
msgstr "una instrucción fp16 escalar no puede ser condicional, el comportamiento es IMPREDECIBLE"
-#: config/tc-arm.c:8243
+#: config/tc-arm.c:8232
msgid "D register out of range for selected VFP version"
msgstr "el registro D fuera de rango para la versión VFP seleccionada"
-#: config/tc-arm.c:8340 config/tc-arm.c:11158
+#: config/tc-arm.c:8329 config/tc-arm.c:11147
msgid "Instruction does not support =N addresses"
msgstr "La instrucción no admite las direcciones =N"
-#: config/tc-arm.c:8348
+#: config/tc-arm.c:8337
msgid "instruction does not accept preindexed addressing"
msgstr "la instrucción no acepta el direccionamiento preindexado"
#. unindexed - only for coprocessor
-#: config/tc-arm.c:8364 config/tc-arm.c:11221
+#: config/tc-arm.c:8353 config/tc-arm.c:11210
msgid "instruction does not accept unindexed addressing"
msgstr "la instrucción no acepta el direccionamiento sin indexar"
-#: config/tc-arm.c:8372
+#: config/tc-arm.c:8361
msgid "destination register same as write-back base"
msgstr "el registro de destino es el mismo que la base de retroescritura"
-#: config/tc-arm.c:8373
+#: config/tc-arm.c:8362
msgid "source register same as write-back base"
msgstr "el registro de origen es el mismo que la base de retroescritura"
-#: config/tc-arm.c:8423
+#: config/tc-arm.c:8412
msgid "use of PC in this instruction is deprecated"
msgstr "el uso de PC en esta instrucción está obsoleto"
-#: config/tc-arm.c:8446
+#: config/tc-arm.c:8435
msgid "instruction does not accept scaled register index"
msgstr "la instrucción no acepta el índice de registro escalado"
-#: config/tc-arm.c:8749
+#: config/tc-arm.c:8738
msgid "invalid pseudo operation"
msgstr "pseudo operación no válida"
@@ -4381,80 +4381,80 @@ msgstr "pseudo operación no válida"
#. literal values to be written this way, so this code
#. is probably unreachable. To be safe, we simply
#. return an error here.
-#: config/tc-arm.c:8791
+#: config/tc-arm.c:8780
msgid "constant expression not supported"
msgstr "no se admiten las expresiones constantes"
-#: config/tc-arm.c:8995
+#: config/tc-arm.c:8984
msgid "invalid co-processor operand"
msgstr "operando de coprocesador no válido"
-#: config/tc-arm.c:9011
+#: config/tc-arm.c:9000
msgid "instruction does not support unindexed addressing"
msgstr "la instrucción no admite el direccionamiento sin indexar"
-#: config/tc-arm.c:9026
+#: config/tc-arm.c:9015
msgid "pc may not be used with write-back"
msgstr "pc no puede utilizarse con retroescritura"
-#: config/tc-arm.c:9031
+#: config/tc-arm.c:9020
msgid "instruction does not support writeback"
msgstr "la instrucción no admite retroescritura"
-#: config/tc-arm.c:9137
+#: config/tc-arm.c:9126
msgid "Rn must not overlap other operands"
msgstr "Rn no debe solaparse con otros operandos"
-#: config/tc-arm.c:9142
+#: config/tc-arm.c:9131
msgid "swp{b} use is obsoleted for ARMv8 and later"
msgstr "el uso de swp{b} es obsoleto para ARMv8 y posterior"
-#: config/tc-arm.c:9145
+#: config/tc-arm.c:9134
msgid "swp{b} use is deprecated for ARMv6 and ARMv7"
msgstr "el uso de swp{b} es obsoleto para ARMv6 y ARMv7"
-#: config/tc-arm.c:9257 config/tc-arm.c:9276 config/tc-arm.c:9289
-#: config/tc-arm.c:11839 config/tc-arm.c:11870 config/tc-arm.c:11892
+#: config/tc-arm.c:9246 config/tc-arm.c:9265 config/tc-arm.c:9278
+#: config/tc-arm.c:11828 config/tc-arm.c:11859 config/tc-arm.c:11881
msgid "bit-field extends past end of register"
msgstr "el campo de bits se extiende más allá del final del registro"
-#: config/tc-arm.c:9319
+#: config/tc-arm.c:9308
msgid "the only valid suffixes here are '(plt)' and '(tlscall)'"
msgstr "los únicos sufijos válidos aquí son '(plt)' y '(tlscall)'"
-#: config/tc-arm.c:9372
+#: config/tc-arm.c:9361
msgid "use of r15 in blx in ARM mode is not really useful"
msgstr "el uso de r15 en blx en modo ARM no es realmente útil"
-#: config/tc-arm.c:9394
+#: config/tc-arm.c:9383
msgid "use of r15 in bx in ARM mode is not really useful"
msgstr "el uso de r15 en bx en modo ARM no es realmente útil"
-#: config/tc-arm.c:9420
+#: config/tc-arm.c:9409
msgid "use of r15 in bxj is not really useful"
msgstr "el uso de r15 en bxj no es realmente útil"
-#: config/tc-arm.c:9468
+#: config/tc-arm.c:9457
msgid "This coprocessor register access is deprecated in ARMv8"
msgstr "Este acceso a registro del coprocesador es obsoleto en ARMv8"
-#: config/tc-arm.c:9676 config/tc-arm.c:9685
+#: config/tc-arm.c:9665 config/tc-arm.c:9674
msgid "writeback of base register is UNPREDICTABLE"
msgstr "la retroescritura del registro base es IMPREDECIBLE"
-#: config/tc-arm.c:9679
+#: config/tc-arm.c:9668
msgid "writeback of base register when in register list is UNPREDICTABLE"
msgstr "la retroescritura del registro base cuando está en la lista de registros es IMPREDECIBLE"
-#: config/tc-arm.c:9689
+#: config/tc-arm.c:9678
msgid "if writeback register is in list, it must be the lowest reg in the list"
msgstr "si el registro de retroescritura está en la lista, debe ser el registro más bajo en la lista"
-#: config/tc-arm.c:9726
+#: config/tc-arm.c:9715
msgid "first transfer register must be even"
msgstr "el primer registro de transferencia debe ser par"
-#: config/tc-arm.c:9729
+#: config/tc-arm.c:9718
msgid "can only transfer two consecutive registers"
msgstr "solamente se pueden transferir dos registros consecutivos"
@@ -4462,1461 +4462,1445 @@ msgstr "solamente se pueden transferir dos registros consecutivos"
#. have been called in the first place.
#. If op 2 were present and equal to PC, this function wouldn't
#. have been called in the first place.
-#: config/tc-arm.c:9730 config/tc-arm.c:9800 config/tc-arm.c:10531
-#: config/tc-arm.c:12725
+#: config/tc-arm.c:9719 config/tc-arm.c:9789 config/tc-arm.c:10520
+#: config/tc-arm.c:12714
msgid "r14 not allowed here"
msgstr "no se permite r14 aquí"
-#: config/tc-arm.c:9742
+#: config/tc-arm.c:9731
msgid "base register written back, and overlaps second transfer register"
msgstr "el registro base se escribió hacia atrás, y se solapa con el segundo registro de transferencia"
-#: config/tc-arm.c:9752
+#: config/tc-arm.c:9741
msgid "index register overlaps transfer register"
msgstr "el registro de índice se solapa con el registro de transferencia"
-#: config/tc-arm.c:9781 config/tc-arm.c:10498
+#: config/tc-arm.c:9770 config/tc-arm.c:10487
msgid "offset must be zero in ARM encoding"
msgstr "el desplazamiento debe ser cero en codificación ARM"
-#: config/tc-arm.c:9794 config/tc-arm.c:10525
+#: config/tc-arm.c:9783 config/tc-arm.c:10514
msgid "even register required"
msgstr "se requiere un registro par"
-#: config/tc-arm.c:9797
+#: config/tc-arm.c:9786
msgid "can only load two consecutive registers"
msgstr "solamente se pueden cargar dos registros consecutivos"
-#: config/tc-arm.c:9815
+#: config/tc-arm.c:9804
msgid "ldr to register 15 must be 4-byte aligned"
msgstr "ldr al registro 15 debe estar alineado a 4-bytes"
-#: config/tc-arm.c:9838 config/tc-arm.c:9870
+#: config/tc-arm.c:9827 config/tc-arm.c:9859
msgid "this instruction requires a post-indexed address"
msgstr "esta instrucción requiere una dirección post-indexada"
-#: config/tc-arm.c:9897
+#: config/tc-arm.c:9886
msgid "Rd and Rm should be different in mla"
msgstr "Rd y Rm deberían ser diferentes en mla"
-#: config/tc-arm.c:9924 config/tc-arm.c:13100
+#: config/tc-arm.c:9913 config/tc-arm.c:13089
msgid ":lower16: not allowed in this instruction"
msgstr ":lower16: no permitido en esta instrucción"
-#: config/tc-arm.c:9926 config/tc-arm.c:13105
+#: config/tc-arm.c:9915 config/tc-arm.c:13094
msgid ":upper16: not allowed in this instruction"
msgstr ":upper16: no permitido en esta instrucción"
-#: config/tc-arm.c:9943
+#: config/tc-arm.c:9932
msgid "operand 1 must be FPSCR"
msgstr "el operando 1 debe ser FPSCR"
-#: config/tc-arm.c:9996 config/tc-arm.c:10005 config/tc-arm.c:10059
-#: config/tc-arm.c:10068
+#: config/tc-arm.c:9985 config/tc-arm.c:9994 config/tc-arm.c:10048
+#: config/tc-arm.c:10057
msgid "selected processor does not support instruction"
msgstr "el procesador seleccionado no admite la instrucción"
-#: config/tc-arm.c:10008 config/tc-arm.c:10071
+#: config/tc-arm.c:9997 config/tc-arm.c:10060
msgid "accessing MVE system register without MVE is UNPREDICTABLE"
msgstr "acceder al registro del sistema MVE sin MVE es IMPREDECIBLE"
-#: config/tc-arm.c:10099 config/tc-arm.c:13219
+#: config/tc-arm.c:10088 config/tc-arm.c:13208
msgid "bad register for mrs"
msgstr "registro incorrecto para mrs"
-#: config/tc-arm.c:10106 config/tc-arm.c:13243
+#: config/tc-arm.c:10095 config/tc-arm.c:13232
msgid "'APSR', 'CPSR' or 'SPSR' expected"
msgstr "se esperaba 'APSR', 'CPSR' o 'SPSR'"
-#: config/tc-arm.c:10147
+#: config/tc-arm.c:10136
msgid "Rd and Rm should be different in mul"
msgstr "Rd y Rm deberían ser diferentes en mul"
-#: config/tc-arm.c:10166 config/tc-arm.c:10443 config/tc-arm.c:13382
+#: config/tc-arm.c:10155 config/tc-arm.c:10432 config/tc-arm.c:13371
msgid "rdhi and rdlo must be different"
msgstr "rdhi y rdlo deben ser diferentes"
-#: config/tc-arm.c:10172
+#: config/tc-arm.c:10161
msgid "rdhi, rdlo and rm must all be different"
msgstr "rdhi, rdlo y rm deben ser todos diferentes"
-#: config/tc-arm.c:10238
+#: config/tc-arm.c:10227
msgid "'[' expected after PLD mnemonic"
msgstr "se esperaba '[' después del mnemónico PLD"
-#: config/tc-arm.c:10240 config/tc-arm.c:10255
+#: config/tc-arm.c:10229 config/tc-arm.c:10244
msgid "post-indexed expression used in preload instruction"
msgstr "se utilizó una expresión post-indexada en la instrucción de precarga"
-#: config/tc-arm.c:10242 config/tc-arm.c:10257
+#: config/tc-arm.c:10231 config/tc-arm.c:10246
msgid "writeback used in preload instruction"
msgstr "se utilicó retroescritura en la instrucción de precarga"
-#: config/tc-arm.c:10244 config/tc-arm.c:10259
+#: config/tc-arm.c:10233 config/tc-arm.c:10248
msgid "unindexed addressing used in preload instruction"
msgstr "se utilizó un direccionamiento sin indexar en la instrucción de precarga"
-#: config/tc-arm.c:10253
+#: config/tc-arm.c:10242
msgid "'[' expected after PLI mnemonic"
msgstr "se esperaba '[' tras el mnemónico PLI"
-#: config/tc-arm.c:10268 config/tc-arm.c:13551
+#: config/tc-arm.c:10257 config/tc-arm.c:13540
msgid "push/pop do not support {reglist}^"
msgstr "push/pop no admiten {reglist}^"
-#: config/tc-arm.c:10346 config/tc-arm.c:13728
+#: config/tc-arm.c:10335 config/tc-arm.c:13717
msgid "setend use is deprecated for ARMv8"
msgstr "el uso de setend está obsoleto para ARMv8"
-#: config/tc-arm.c:10367 config/tc-arm.c:13789 config/tc-arm.c:13821
-#: config/tc-arm.c:13864
+#: config/tc-arm.c:10356 config/tc-arm.c:13778 config/tc-arm.c:13810
+#: config/tc-arm.c:13853
msgid "extraneous shift as part of operand to shift insn"
msgstr "desplazamiento extraño como parte del operando para la insn de desplazamiento"
-#: config/tc-arm.c:10377 config/tc-arm.c:13927
+#: config/tc-arm.c:10366 config/tc-arm.c:13916
msgid "immediate too large (bigger than 0xF)"
msgstr "inmediato demasiado grande (mayor que 0xF)"
-#: config/tc-arm.c:10401 config/tc-arm.c:10410
+#: config/tc-arm.c:10390 config/tc-arm.c:10399
msgid "selected processor does not support SETPAN instruction"
msgstr "el procesador seleccionado no admite instrucción SETPAN"
-#: config/tc-arm.c:10469
+#: config/tc-arm.c:10458
msgid "SRS base register must be r13"
msgstr "el registro base SRS debe ser r13"
-#: config/tc-arm.c:10528
+#: config/tc-arm.c:10517
msgid "can only store two consecutive registers"
msgstr "solamente se pueden almacenar dos registros consecutivos"
-#: config/tc-arm.c:10650 config/tc-arm.c:10671
+#: config/tc-arm.c:10639 config/tc-arm.c:10660
msgid "only two consecutive VFP SP registers allowed here"
msgstr "solamente se permiten dos registros SP VFP consecutivos aquí"
-#: config/tc-arm.c:10699 config/tc-arm.c:10714
+#: config/tc-arm.c:10688 config/tc-arm.c:10703
msgid "this addressing mode requires base-register writeback"
msgstr "este modo de direccionamiento requiere retroescritura del registro base"
#. If srcsize is 16, inst.operands[1].imm must be in the range 0-16.
#. i.e. immbits must be in range 0 - 16.
-#: config/tc-arm.c:10843
+#: config/tc-arm.c:10832
msgid "immediate value out of range, expected range [0, 16]"
msgstr "valor inmediato fuera de rango, se esperaba el rango [0, 16]"
#. If srcsize is 32, inst.operands[1].imm must be in the range 1-32.
#. i.e. immbits must be in range 0 - 31.
-#: config/tc-arm.c:10850
+#: config/tc-arm.c:10839
msgid "immediate value out of range, expected range [1, 32]"
msgstr "valor inmediato fuera de rango, se esperaba el rango [1, 32]"
-#: config/tc-arm.c:10891
+#: config/tc-arm.c:10880
msgid "only r15 allowed here"
msgstr "solo se permite r15 aquí"
-#: config/tc-arm.c:11026
+#: config/tc-arm.c:11015
msgid "immediate operand requires iWMMXt2"
msgstr "el operando inmediato requiere iWMMXt2"
-#: config/tc-arm.c:11119
+#: config/tc-arm.c:11108
msgid "shift by register not allowed in thumb mode"
msgstr "no se permite desplazar por registro en modo «thumb»"
-#: config/tc-arm.c:11131 config/tc-arm.c:13973 config/tc-arm.c:28057
+#: config/tc-arm.c:11120 config/tc-arm.c:13962 config/tc-arm.c:28002
msgid "shift expression is too large"
msgstr "la expresión de desplazamiento es demasiado grande"
-#: config/tc-arm.c:11164
+#: config/tc-arm.c:11153
msgid "cannot use register index with this instruction"
msgstr "no se puede utilizar índice de registro con esta instrucción"
-#: config/tc-arm.c:11166
+#: config/tc-arm.c:11155
msgid "Thumb does not support negative register indexing"
msgstr "Thumb no admite el indexado negativo de registro"
-#: config/tc-arm.c:11168
+#: config/tc-arm.c:11157
msgid "Thumb does not support register post-indexing"
msgstr "Thumb no admite el post-indexado de registro"
-#: config/tc-arm.c:11170
+#: config/tc-arm.c:11159
msgid "Thumb does not support register indexing with writeback"
msgstr "Thumb no admite el indexado de registro con retroescritura"
-#: config/tc-arm.c:11172
+#: config/tc-arm.c:11161
msgid "Thumb supports only LSL in shifted register indexing"
msgstr "Thumb solo admite LSL en el indexado desplazado de registro"
-#: config/tc-arm.c:11181 config/tc-arm.c:19703
+#: config/tc-arm.c:11170 config/tc-arm.c:19692
msgid "shift out of range"
msgstr "desplazamiento fuera de rango"
-#: config/tc-arm.c:11190
+#: config/tc-arm.c:11179
msgid "cannot use writeback with this instruction"
msgstr "no se puede usar retroescritura con esta instrucción"
-#: config/tc-arm.c:11211
+#: config/tc-arm.c:11200
msgid "cannot use post-indexing with PC-relative addressing"
msgstr "no se puede usar post-indexado con el direccionamiento relativo al PC"
-#: config/tc-arm.c:11212
+#: config/tc-arm.c:11201
msgid "cannot use post-indexing with this instruction"
msgstr "no se puede usar post-indexado con esta instrucción"
-#: config/tc-arm.c:11450
+#: config/tc-arm.c:11439
msgid "cannot honor width suffix"
msgstr "no se puede honrar el sufijo de anchura"
-#: config/tc-arm.c:11464
+#: config/tc-arm.c:11453
msgid "only SUBS PC, LR, #const allowed"
msgstr "solo se permiten SUBS PC, LR, #const"
-#: config/tc-arm.c:11547 config/tc-arm.c:11707 config/tc-arm.c:11804
-#: config/tc-arm.c:13180 config/tc-arm.c:13488
+#: config/tc-arm.c:11536 config/tc-arm.c:11696 config/tc-arm.c:11793
+#: config/tc-arm.c:13169 config/tc-arm.c:13477
msgid "shift must be constant"
msgstr "el desplazamiento debe ser constante"
-#: config/tc-arm.c:11552
+#: config/tc-arm.c:11541
msgid "shift value over 3 not allowed in thumb mode"
msgstr "no se permite el valor de desplazamiento superior a 3 en modo «thumb»"
-#: config/tc-arm.c:11554
+#: config/tc-arm.c:11543
msgid "only LSL shift allowed in thumb mode"
msgstr "solamente se permite el desplazamiento LSL en modo «thumb»"
-#: config/tc-arm.c:11578 config/tc-arm.c:11722 config/tc-arm.c:11819
-#: config/tc-arm.c:13193
+#: config/tc-arm.c:11567 config/tc-arm.c:11711 config/tc-arm.c:11808
+#: config/tc-arm.c:13182
msgid "unshifted register required"
msgstr "se requiere un registro sin desplazar"
-#: config/tc-arm.c:11593 config/tc-arm.c:11830 config/tc-arm.c:13343
+#: config/tc-arm.c:11582 config/tc-arm.c:11819 config/tc-arm.c:13332
msgid "dest must overlap one source register"
msgstr "dest debe solaparse con un registro fuente"
-#: config/tc-arm.c:11725 config/tc-csky.c:6026
+#: config/tc-arm.c:11714 config/tc-csky.c:6044
msgid "dest and source1 must be the same register"
msgstr "dest y source1 deben ser el mismo registro"
-#: config/tc-arm.c:11965
+#: config/tc-arm.c:11954
msgid "selected architecture does not support wide conditional branch instruction"
msgstr "la arquitectura seleccionada no admite la instrucción de bifurcación condicional ancha"
-#: config/tc-arm.c:11998
+#: config/tc-arm.c:11987
msgid "instruction is always unconditional"
msgstr "la instrucción es siempre incondicional"
-#: config/tc-arm.c:12173
+#: config/tc-arm.c:12162
msgid "selected processor does not support 'A' form of this instruction"
msgstr "el procesador seleccionado no admite la forma 'A' de esta instrucción"
-#: config/tc-arm.c:12176
+#: config/tc-arm.c:12165
msgid "Thumb does not support the 2-argument form of this instruction"
msgstr "Thumb no admite la forma con 2 argumentos de esta instrucción"
-#: config/tc-arm.c:12301
+#: config/tc-arm.c:12290
msgid "SP not allowed in register list"
msgstr "SP no admitido en lista de registros"
-#: config/tc-arm.c:12305
+#: config/tc-arm.c:12294
msgid "having the base register in the register list when using write back is UNPREDICTABLE"
msgstr "tener el registro base en la lista de registros al usar retroescritura es IMPREDECIBLE"
-#: config/tc-arm.c:12313
+#: config/tc-arm.c:12302
msgid "LR and PC should not both be in register list"
msgstr "LR y PC no deberían estar ambos en la lista de registros"
-#: config/tc-arm.c:12321
+#: config/tc-arm.c:12310
msgid "PC not allowed in register list"
msgstr "PC no admitido en la lista de registros"
-#: config/tc-arm.c:12366
+#: config/tc-arm.c:12355
msgid "Thumb load/store multiple does not support {reglist}^"
msgstr "Thumb carga/almacenamiento múltiples no admite {reglist}^"
-#: config/tc-arm.c:12444 config/tc-arm.c:12478
+#: config/tc-arm.c:12433 config/tc-arm.c:12467
#, c-format
msgid "value stored for r%d is UNKNOWN"
msgstr "el valor almacenado para r%d es DESCONOCIDO"
-#: config/tc-arm.c:12471
+#: config/tc-arm.c:12460
msgid "Thumb-2 instruction only valid in unified syntax"
msgstr "Thumb-2 como instrucción solo válida en sintaxis unificada"
-#: config/tc-arm.c:12475 config/tc-arm.c:12485
+#: config/tc-arm.c:12464 config/tc-arm.c:12474
msgid "this instruction will write back the base register"
msgstr "esta instrucción escribirá hacia atrás el registro base"
-#: config/tc-arm.c:12488
+#: config/tc-arm.c:12477
msgid "this instruction will not write back the base register"
msgstr "esta instrucción no escribirá hacia atrás el registro base"
-#: config/tc-arm.c:12519
+#: config/tc-arm.c:12508
msgid "r14 not allowed as first register when second register is omitted"
msgstr "no se permite r14 como primer registro cuando se omite el segundo registro"
-#: config/tc-arm.c:12619
+#: config/tc-arm.c:12608
msgid "This instruction may be unpredictable if executed on M-profile cores with interrupts enabled."
msgstr "Esta instrucción puede ser impredecible si se ejecuta en núcleos M-profile con interrupciones activadas."
-#: config/tc-arm.c:12648 config/tc-arm.c:12661 config/tc-arm.c:12697
+#: config/tc-arm.c:12637 config/tc-arm.c:12650 config/tc-arm.c:12686
msgid "Thumb does not support this addressing mode"
msgstr "Thumb no admite este modo de direccionamiento"
-#: config/tc-arm.c:12665
+#: config/tc-arm.c:12654
msgid "byte or halfword not valid for base register"
msgstr "byte o media palabra no válido para registro base"
-#: config/tc-arm.c:12668
+#: config/tc-arm.c:12657
msgid "r15 based store not allowed"
msgstr "no se permite el almacenamiento basado en r15"
-#: config/tc-arm.c:12670
+#: config/tc-arm.c:12659
msgid "invalid base register for register offset"
msgstr "registro base inválido para el desplazamiento del registro"
-#: config/tc-arm.c:12727
+#: config/tc-arm.c:12716
msgid "r12 not allowed here"
msgstr "r12 no permitido aquí"
-#: config/tc-arm.c:12733
+#: config/tc-arm.c:12722
msgid "base register written back, and overlaps one of transfer registers"
msgstr "registro base escrito atrás, y se solapa con uno de los registros de transferencia"
-#: config/tc-arm.c:12861
+#: config/tc-arm.c:12850
#, c-format
msgid "Use of r%u as a source register is deprecated when r%u is the destination register."
msgstr "La utilización de r%u como registro origen está obsoleta cuando r%u es el registro destino."
-#: config/tc-arm.c:13056
+#: config/tc-arm.c:13045
msgid "shifts in CMP/MOV instructions are only supported in unified syntax"
msgstr "los desplazamientos en las instrucciones CMP/MOV solo se admiten en la sintaxis unificada"
-#: config/tc-arm.c:13084
+#: config/tc-arm.c:13073
msgid "only lo regs allowed with immediate"
msgstr "solo se permiten registros lo con inmediatos"
-#: config/tc-arm.c:13261
+#: config/tc-arm.c:13250
msgid "Thumb encoding does not support an immediate here"
msgstr "Thumb como codificación no admite un inmediato aquí"
-#: config/tc-arm.c:13348
+#: config/tc-arm.c:13337
msgid "Thumb-2 MUL must not set flags"
msgstr "MUL de Thumb-2 no debe establecer modificadores"
-#: config/tc-arm.c:13413
+#: config/tc-arm.c:13402
msgid "Thumb does not support NOP with hints"
-msgstr "Thumb no admite NOP con pistas"
+msgstr "Thumb no admite NOP con sugerencias"
-#: config/tc-arm.c:13573 config/tc-arm.c:13585
+#: config/tc-arm.c:13562 config/tc-arm.c:13574
msgid "invalid register list to push/pop instruction"
msgstr "lista de registros no válida para la instrucción push/pop"
-#: config/tc-arm.c:13848
+#: config/tc-arm.c:13837
msgid "source1 and dest must be same register"
msgstr "source1 y dest deben ser el mismo registro"
-#: config/tc-arm.c:13873
+#: config/tc-arm.c:13862
msgid "ror #imm not supported"
msgstr "no se admite ror #imm"
-#: config/tc-arm.c:13924
+#: config/tc-arm.c:13913
msgid "SMC is not permitted on this architecture"
msgstr "No se admite SMC en esta arquitectura"
-#: config/tc-arm.c:14090
+#: config/tc-arm.c:14079
msgid "Thumb encoding does not support rotation"
msgstr "Thumb como codificación no admite rotación"
-#: config/tc-arm.c:14110
+#: config/tc-arm.c:14099
msgid "instruction requires register index"
msgstr "la instrucción requiere un índice de registro"
-#: config/tc-arm.c:14120
+#: config/tc-arm.c:14109
msgid "instruction does not allow shifted index"
msgstr "la instrucción no permite un índice desplazado"
-#: config/tc-arm.c:14276 config/tc-arm.c:29201
+#: config/tc-arm.c:14265 config/tc-arm.c:29146
msgid "out of range label-relative fixup value"
msgstr "valor de corrección relativo a etiqueta fuera de rango"
-#: config/tc-arm.c:14600
+#: config/tc-arm.c:14589
msgid "invalid neon suffix for non neon instruction"
msgstr "sufijo neon inválido para instrucción que no es neon"
-#: config/tc-arm.c:14995 config/tc-arm.c:15348 config/tc-arm.c:16833
-#: config/tc-arm.c:16913 config/tc-arm.c:16970 config/tc-arm.c:18851
-#: config/tc-arm.c:21039 config/tc-arm.c:21226
+#: config/tc-arm.c:14984 config/tc-arm.c:15337 config/tc-arm.c:16822
+#: config/tc-arm.c:16902 config/tc-arm.c:16959 config/tc-arm.c:18840
+#: config/tc-arm.c:21028 config/tc-arm.c:21215
msgid "invalid instruction shape"
msgstr "aspecto de la instrucción no válido"
-#: config/tc-arm.c:15247
+#: config/tc-arm.c:15236
msgid "types specified in both the mnemonic and operands"
msgstr "tipos especificado tanto en mnemónico como en operandos"
-#: config/tc-arm.c:15284
+#: config/tc-arm.c:15273
msgid "operand types can't be inferred"
msgstr "no se pueden inferir los tipos de operando"
-#: config/tc-arm.c:15290
+#: config/tc-arm.c:15279
msgid "type specifier has the wrong number of parts"
msgstr "el especificador de tipo tiene un número incorrecto de partes"
-#: config/tc-arm.c:15376 config/tc-arm.c:19112 config/tc-arm.c:19119
+#: config/tc-arm.c:15365 config/tc-arm.c:19101 config/tc-arm.c:19108
msgid "operand size must match register width"
msgstr "el tamaño del operando debe coincidir con la anchura del registro"
-#: config/tc-arm.c:15398
+#: config/tc-arm.c:15387
msgid "inconsistent types in Neon instruction"
msgstr "tipos incoherente en la instrucción Neon"
-#: config/tc-arm.c:15819
+#: config/tc-arm.c:15808
msgid "Type is not allowed for this instruction"
msgstr "El tipo no está permitido para esta instrucción"
-#: config/tc-arm.c:15894
+#: config/tc-arm.c:15883
msgid "MVE vector or ARM register expected"
msgstr "Se esperaba un registro vectorial MVE o ARM"
-#: config/tc-arm.c:16011
+#: config/tc-arm.c:16000
msgid "immediate must be either 1, 2, 4 or 8"
msgstr "el inmediato debe ser 1, 2, 4 u 8"
-#: config/tc-arm.c:16168
+#: config/tc-arm.c:16157
msgid "immediate operand expected in the range [1,8]"
msgstr "se esperaba un operando inmediato en el rango [1,8]"
-#: config/tc-arm.c:16169
+#: config/tc-arm.c:16158
msgid "immediate operand expected in the range [1,16]"
msgstr "se esperaba un operando inmediato en el rango [1,16]"
-#: config/tc-arm.c:16311
+#: config/tc-arm.c:16300
msgid "expected LR"
msgstr "se esperaba LR"
-#: config/tc-arm.c:16810 config/tc-arm.c:16890 config/tc-arm.c:18487
-#: config/tc-arm.c:20320
+#: config/tc-arm.c:16799 config/tc-arm.c:16879 config/tc-arm.c:18476
+#: config/tc-arm.c:20309
msgid "immediate out of range for shift"
msgstr "inmediato fuera de rango para desplazamiento"
-#: config/tc-arm.c:17104
+#: config/tc-arm.c:17093
msgid "first and second operands shall be the same register"
msgstr "el primer y segundo operandos deben ser el mismo registro"
-#: config/tc-arm.c:17218 config/tc-arm.c:17280
+#: config/tc-arm.c:17207 config/tc-arm.c:17269
msgid "destination register and offset register may not be the same"
msgstr "el registro de destino y el registro del desplazamiento no pueden ser el mismo"
-#: config/tc-arm.c:17230 config/tc-arm.c:17349
+#: config/tc-arm.c:17219 config/tc-arm.c:17338
msgid "immediate must be a multiple of 4 in the range of +/-[0,508]"
msgstr "el inmediato tiene que ser múltiplo de 4 en el rango de +/-[0,508]"
-#: config/tc-arm.c:17232
+#: config/tc-arm.c:17221
msgid "immediate must be a multiple of 8 in the range of +/-[0,1016]"
msgstr "el inmediato tiene que ser múltiplo de 8 en el rango de +/-[0,1016]"
-#: config/tc-arm.c:17253
+#: config/tc-arm.c:17242
msgid "can not shift offsets when accessing less than half-word"
msgstr "no pueden cambiarse los desplazamientos al acceder a menos de media palabra"
-#: config/tc-arm.c:17255
+#: config/tc-arm.c:17244
msgid "shift immediate must be 1, 2 or 3 for half-word, word or double-word accesses respectively"
msgstr "el inmediato de desplazamiento tiene que ser 1, 2 o 3 para accesos de media palabra, palabra o doble palabra, respectivamente"
-#: config/tc-arm.c:17342
+#: config/tc-arm.c:17331
msgid "immediate must be in the range of +/-[0,127]"
msgstr "el inmediato tiene que estar en el rango de +/-[0,127]"
-#: config/tc-arm.c:17345
+#: config/tc-arm.c:17334
msgid "immediate must be a multiple of 2 in the range of +/-[0,254]"
msgstr "el inmediato tiene que ser múltiplo de 2 en el rango de +/-[0,254]"
-#: config/tc-arm.c:17359 config/tc-arm.c:18185
+#: config/tc-arm.c:17348 config/tc-arm.c:18174
msgid "MVE vector register in the range [Q0..Q7] expected"
msgstr "se esperaba un registro vectorial MVE en el rango [Q0..Q7]"
-#: config/tc-arm.c:17675 config/tc-arm.c:19542
+#: config/tc-arm.c:17664 config/tc-arm.c:19531
msgid "scalar out of range for multiply instruction"
msgstr "escalar fuera de rango para la instrucción multiply"
-#: config/tc-arm.c:17763
+#: config/tc-arm.c:17752
msgid "index must be in the range 0 to 3"
msgstr "el índice tiene que estar en el rango de 0 a 23"
-#: config/tc-arm.c:17766
+#: config/tc-arm.c:17755
msgid "indexed register must be less than 8"
msgstr "el registro indexado tiene que ser menor que 8"
-#: config/tc-arm.c:17967 config/tc-arm.c:21290
+#: config/tc-arm.c:17956 config/tc-arm.c:21279
msgid "Warning: 32-bit element size and same first and third operand makes instruction UNPREDICTABLE"
msgstr "Aviso: el tamaño del elemento de 32 bits y el mismo operando primer y tercer operando hacen la instrucción IMPREDECIBLE"
-#: config/tc-arm.c:18326
+#: config/tc-arm.c:18315
msgid "instruction form not available on this architecture."
msgstr "forma de la instrucción no disponible en esta arquitectura."
-#: config/tc-arm.c:18329
+#: config/tc-arm.c:18318
msgid "this instruction implies use of ARMv8.1 AdvSIMD."
msgstr "esta instrucción implica el uso de AdvSIMD ARMv8.1."
-#: config/tc-arm.c:18436 config/tc-arm.c:18461
+#: config/tc-arm.c:18425 config/tc-arm.c:18450
msgid "immediate out of range for insert"
msgstr "inmediato fuera de rango para insert"
-#: config/tc-arm.c:18608
+#: config/tc-arm.c:18597
msgid "immediate out of range for narrowing operation"
msgstr "inmediato fuera de rango para la operación de estrechamiento"
-#: config/tc-arm.c:18755
+#: config/tc-arm.c:18744
msgid "operands 0 and 1 must be the same register"
msgstr "los operandos 0 y 1 tienen que ser el mismo registro"
-#: config/tc-arm.c:18861 config/tc-arm.c:21138
+#: config/tc-arm.c:18850 config/tc-arm.c:21127
msgid "invalid rounding mode"
msgstr "modo de redondeo no válido"
-#: config/tc-arm.c:19332
+#: config/tc-arm.c:19321
msgid "operand size must be specified for immediate VMOV"
msgstr "el tamaño del operando se debe especificar para el inmediato VMOV"
-#: config/tc-arm.c:19342
+#: config/tc-arm.c:19331
msgid "immediate has bits set outside the operand size"
msgstr "el inmediato tiene bits puestos fuera del tamaño del operando"
-#: config/tc-arm.c:19577
+#: config/tc-arm.c:19566
msgid "vfmal/vfmsl with FP16 type cannot be conditional, the behaviour is UNPREDICTABLE"
msgstr "vfmal/vfmsl con tipo FP16 no puede ser conditional; el comportamiento es IMPREDECIBLE"
-#: config/tc-arm.c:19685
+#: config/tc-arm.c:19674
msgid "Instruction form not available on this architecture."
msgstr "Forma de la instrucción no disponible en esta arquitectura."
-#: config/tc-arm.c:19739
+#: config/tc-arm.c:19728
msgid "Warning: 64-bit element size and same destination and source operands makes instruction UNPREDICTABLE"
msgstr "Aviso: el tamaño del elemento de 64 bits y los mismos operandos destino y origen hacen la instrucción IMPREDECIBLE"
-#: config/tc-arm.c:19744
+#: config/tc-arm.c:19733
msgid "elements must be smaller than reversal region"
msgstr "los elementos deben ser menores que la región de inversión"
-#: config/tc-arm.c:19836
+#: config/tc-arm.c:19825
msgid "Index one must be [2,3] and index two must be two less than index one."
msgstr "El índice uno tiene que ser [2,3] y el índice dos tiene que ser dos menos que el índice uno."
-#: config/tc-arm.c:19839
+#: config/tc-arm.c:19828
msgid "Destination registers may not be the same"
msgstr "Los registros de destino no pueden ser el mismo"
-#: config/tc-arm.c:20037 config/tc-arm.c:20120
+#: config/tc-arm.c:20026 config/tc-arm.c:20109
msgid "bad type for scalar"
msgstr "tipo incorrecto para el escalar"
-#: config/tc-arm.c:20176
+#: config/tc-arm.c:20165
msgid "immediate constant is valid both as a bit-pattern and a floating point value (using the fp value)"
msgstr "la constante inmediata es válida tanto como patrón de bits como valor de coma flotante (utilizando el valor de fp)"
-#: config/tc-arm.c:20228 config/tc-arm.c:20239
+#: config/tc-arm.c:20217 config/tc-arm.c:20228
msgid "VFP registers must be adjacent"
msgstr "los registros VFP deben ser adyacentes"
-#: config/tc-arm.c:20329
+#: config/tc-arm.c:20318
msgid "invalid suffix"
msgstr "sufijo inválido"
-#: config/tc-arm.c:20483
+#: config/tc-arm.c:20472
msgid "bad list length for table lookup"
msgstr "longitud de lista incorrecta para búsqueda en tabla"
-#: config/tc-arm.c:20516
+#: config/tc-arm.c:20505
msgid "writeback (!) must be used for VLDMDB and VSTMDB"
msgstr "se debe usar retroescritura (!) para VLDMDB y VSTMDB"
-#: config/tc-arm.c:20519 config/tc-arm.c:20545
+#: config/tc-arm.c:20508 config/tc-arm.c:20534
msgid "register list must contain at least 1 and at most 16 registers"
msgstr "la lista de registros debe contener por lo menos 1 y como mucho 16 registros"
-#: config/tc-arm.c:20540
+#: config/tc-arm.c:20529
msgid "register list must contain at least 1 and at most 32 registers"
msgstr "la lista de registros debe contener por lo menos 1 y como mucho 32 registros"
-#: config/tc-arm.c:20593 config/tc-arm.c:20626
+#: config/tc-arm.c:20582 config/tc-arm.c:20615
msgid "Use of PC here is UNPREDICTABLE"
msgstr "El uso de PC aquí es IMPREDECIBLE"
-#: config/tc-arm.c:20595
+#: config/tc-arm.c:20584
msgid "Use of PC here is deprecated"
msgstr "El uso de PC aquí es obsoleto"
-#: config/tc-arm.c:20629
+#: config/tc-arm.c:20618
msgid "instruction does not accept register index"
msgstr "la instrucción no acepta índice de registro"
-#: config/tc-arm.c:20632
+#: config/tc-arm.c:20621
msgid "instruction does not accept PC-relative addressing"
msgstr "la instrucción no acepta el direccionamiento relativo a PC"
-#: config/tc-arm.c:20654 config/tc-arm.c:20663
+#: config/tc-arm.c:20643 config/tc-arm.c:20652
msgid "Instruction not permitted on this architecture"
msgstr "La instrucción no se admite en esta arquitectura"
-#: config/tc-arm.c:20712
+#: config/tc-arm.c:20701
msgid "bad alignment"
msgstr "alineamiento incorrecto"
-#: config/tc-arm.c:20729
+#: config/tc-arm.c:20718
msgid "bad list type for instruction"
msgstr "tipo de lista incorrecto para la instrucción"
-#: config/tc-arm.c:20773
+#: config/tc-arm.c:20762
msgid "unsupported alignment for instruction"
msgstr "no se admite el alineamiento para la instrucción"
-#: config/tc-arm.c:20792 config/tc-arm.c:20886 config/tc-arm.c:20898
-#: config/tc-arm.c:20908 config/tc-arm.c:20922
+#: config/tc-arm.c:20781 config/tc-arm.c:20875 config/tc-arm.c:20887
+#: config/tc-arm.c:20897 config/tc-arm.c:20911
msgid "bad list length"
msgstr "longitud de lista incorrecta"
-#: config/tc-arm.c:20797
+#: config/tc-arm.c:20786
msgid "stride of 2 unavailable when element size is 8"
msgstr "avance de 2 no disponible cuando el tamaño del elemento es 8"
-#: config/tc-arm.c:20830 config/tc-arm.c:20906
+#: config/tc-arm.c:20819 config/tc-arm.c:20895
msgid "can't use alignment with this instruction"
msgstr "no se puede utilizar alineamiento con esta instrucción"
-#: config/tc-arm.c:20978
+#: config/tc-arm.c:20967
msgid "post-index must be a register"
msgstr "el post-índice debe ser un registro"
-#: config/tc-arm.c:20980
+#: config/tc-arm.c:20969
msgid "bad register for post-index"
msgstr "registro incorrecto para el post-índice"
-#: config/tc-arm.c:21202
+#: config/tc-arm.c:21191
msgid "scalar out of range"
msgstr "escalar fuera de rango"
-#: config/tc-arm.c:21335
+#: config/tc-arm.c:21324
msgid "Dot Product instructions cannot be conditional, the behaviour is UNPREDICTABLE"
msgstr "Las instrucciones de producto escalar no pueden ser condicionalesr; el comportamiento es IMPREDECIBLE"
-#: config/tc-arm.c:21410 config/tc-arm.c:21438 config/tc-arm.c:22120
+#: config/tc-arm.c:21399 config/tc-arm.c:21427 config/tc-arm.c:22109
msgid "index must be 0 or 1"
msgstr "el índice debe ser 0 o 1"
-#: config/tc-arm.c:21413 config/tc-arm.c:21441 config/tc-arm.c:22123
+#: config/tc-arm.c:21402 config/tc-arm.c:21430 config/tc-arm.c:22112
msgid "indexed register must be less than 16"
msgstr "el registro indexado debe ser menor que 16"
-#: config/tc-arm.c:21479
+#: config/tc-arm.c:21468
msgid "Register must be r0-r14 except r13, or APSR_nzcv."
msgstr "El registro tiene que ser r0-r14 excepto r13, o APSR_nzcv."
-#: config/tc-arm.c:21482
+#: config/tc-arm.c:21471
msgid "Register must be an even register between r0-r10."
msgstr "El registro debe ser un registro par entre r0-r10."
-#: config/tc-arm.c:21507
+#: config/tc-arm.c:21496
msgid "CDE Coprocessor must be in range 0-7"
msgstr "el coprocesador CDE tiene que estar en el rango 0-7"
-#: config/tc-arm.c:21541
+#: config/tc-arm.c:21530
msgid "cx1d requires consecutive destination registers."
msgstr "cx1d requiere registros de destino consecutivos."
-#: config/tc-arm.c:21571
+#: config/tc-arm.c:21560
msgid "cx2d requires consecutive destination registers."
msgstr "cx2d requiere registros de destino consecutivos."
-#: config/tc-arm.c:21610
+#: config/tc-arm.c:21599
msgid "cx3d requires consecutive destination registers."
msgstr "cx3d requiere registros de destino consecutivos."
-#: config/tc-arm.c:21802
+#: config/tc-arm.c:21791
msgid "'q' register must be in range 0-7"
msgstr "el registro «q» tiene que estar en el rango 0-7"
-#: config/tc-arm.c:21805
+#: config/tc-arm.c:21794
msgid "'d' register must be in range 0-15"
msgstr "el registro «d» tiene que estar en el rango 0-15"
-#: config/tc-arm.c:21807
+#: config/tc-arm.c:21796
msgid "'s' register must be in range 0-31"
msgstr "el registro «s» tiene que estar en el rango 0-31"
-#: config/tc-arm.c:21862
+#: config/tc-arm.c:21851
msgid "vcx instructions with Q registers require MVE"
msgstr "las instrucciones vcx con registros Q requieren MVE"
-#: config/tc-arm.c:21867
+#: config/tc-arm.c:21856
msgid "vcx instructions with S or D registers require either MVE or Armv8-M floating point extension."
msgstr "Las instrucciones vcx con registros S o D requieren MVE o extensión de coma flotante Armv8-M."
-#: config/tc-arm.c:21883
+#: config/tc-arm.c:21872
msgid "vcx1 with S or D registers takes immediate within 0-2047"
msgstr "vcx1 con registros S o D toman inmediato en 0-2047"
-#: config/tc-arm.c:21899
+#: config/tc-arm.c:21888
msgid "vcx2 with S or D registers takes immediate within 0-63"
msgstr "vcx2 con registros S o D toman inmediato en 0-63"
-#: config/tc-arm.c:21914
+#: config/tc-arm.c:21903
msgid "vcx2 with S or D registers takes immediate within 0-7"
msgstr "vcx2 con registros S o D toman inmediato en 0-7"
-#: config/tc-arm.c:22504 config/tc-arm.c:22625
+#: config/tc-arm.c:22492 config/tc-arm.c:22610
msgid "conditional infixes are deprecated in unified syntax"
msgstr "los infijos condicionales están obsoletos en la sintaxis unificada"
-#: config/tc-arm.c:22836
+#: config/tc-arm.c:22821
msgid "Warning: conditional outside an IT block for Thumb."
msgstr "Aviso: condicional fuera de un bloque IT para Thumb."
-#: config/tc-arm.c:23164
+#: config/tc-arm.c:23149
msgid "Short branches, Undefined, SVC, LDM/STM"
msgstr "Bifurcaciones cortas, Indefinido, SVC, LDM/STM"
-#: config/tc-arm.c:23165
+#: config/tc-arm.c:23150
msgid "Miscellaneous 16-bit instructions"
msgstr "Instrucciones de 16 bits misceláneas"
-#: config/tc-arm.c:23166
+#: config/tc-arm.c:23151
msgid "ADR"
msgstr "DIR"
-#: config/tc-arm.c:23167
+#: config/tc-arm.c:23152
msgid "Literal loads"
msgstr "Cargas literales"
-#: config/tc-arm.c:23168
+#: config/tc-arm.c:23153
msgid "Hi-register ADD, MOV, CMP, BX, BLX using pc"
msgstr "Registro-Superior ADD, MOV, CMP, BX, BLX utilizando pc"
-#: config/tc-arm.c:23169
+#: config/tc-arm.c:23154
msgid "Hi-register ADD, MOV, CMP using pc"
msgstr "Registro-Superior ADD, MOV, CMP utilizando pc"
#. NOTE: 0x00dd is not the real encoding, instead, it is the 'tvalue'
#. field in asm_opcode. 'tvalue' is used at the stage this check happen.
-#: config/tc-arm.c:23172
+#: config/tc-arm.c:23157
msgid "ADD/SUB sp, sp #imm"
msgstr "ADD/SUB sp, sp #imm"
-#: config/tc-arm.c:23194
+#: config/tc-arm.c:23179
msgid "IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R"
msgstr "Los bloques IT que contienen instrucciones Thumb de 32 bits están obsoletos por rendimiento en ARMv8-A y ARMv8-R"
-#: config/tc-arm.c:23206
+#: config/tc-arm.c:23191
#, c-format
msgid "IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: %s"
msgstr "Los bloques IT que contienen instrucciones Thumb de 16 bits de la siguiente clase están obsoletos por rendimiento en ARMv8-A y ARMv8-R: %s"
-#: config/tc-arm.c:23220
+#: config/tc-arm.c:23205
msgid "IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R"
msgstr "Los bloques IT que contienen más de una instrucción condicional están obsoletos por rendimiento en ARMv8-A y ARMv8-R"
-#: config/tc-arm.c:23338
+#: config/tc-arm.c:23323
#, c-format
msgid "bad instruction `%s'"
msgstr "instrucción incorrecta «%s»"
-#: config/tc-arm.c:23344
+#: config/tc-arm.c:23329
msgid "s suffix on comparison instruction is deprecated"
msgstr "el sufijo s sobre instrucción comparación está obsoleto"
-#: config/tc-arm.c:23364
+#: config/tc-arm.c:23349
msgid "SVC is not permitted on this architecture"
msgstr "No se admite SVC en esta arquitectura"
-#: config/tc-arm.c:23366
+#: config/tc-arm.c:23351
#, c-format
msgid "selected processor does not support `%s' in Thumb mode"
msgstr "el procesador seleccionado no admite «%s» en modo Thumb"
-#: config/tc-arm.c:23372
+#: config/tc-arm.c:23357
msgid "Thumb does not support conditional execution"
msgstr "Thumb no admite la ejecución condicional"
-#: config/tc-arm.c:23392
+#: config/tc-arm.c:23377
#, c-format
msgid "selected processor does not support 32bit wide variant of instruction `%s'"
msgstr "el procesador seleccionado no admite variante ancha de 32 bits de la instrucción «%s»"
-#: config/tc-arm.c:23395
+#: config/tc-arm.c:23380
#, c-format
msgid "selected processor does not support `%s' in Thumb-2 mode"
msgstr "el procesador seleccionado no admite «%s» modo Thumb-2"
-#: config/tc-arm.c:23420
+#: config/tc-arm.c:23405
#, c-format
msgid "cannot honor width suffix -- `%s'"
msgstr "no se puede honrar el sufijo de anchura -- «%s»"
-#: config/tc-arm.c:23462
+#: config/tc-arm.c:23447
#, c-format
msgid "selected processor does not support `%s' in ARM mode"
msgstr "el procesador seleccionado no admite «%s» en modo ARM"
-#: config/tc-arm.c:23467
+#: config/tc-arm.c:23452
#, c-format
msgid "width suffixes are invalid in ARM mode -- `%s'"
msgstr "los sufijos de anchura son inválidos en modo ARM -- «%s»"
-#: config/tc-arm.c:23500
+#: config/tc-arm.c:23485
#, c-format
msgid "attempt to use an ARM instruction on a Thumb-only processor -- `%s'"
msgstr "se intentó usar una instrucción ARM en un procesador que solo es Thumb -- «%s»"
-#: config/tc-arm.c:23518
+#: config/tc-arm.c:23503
#, c-format
msgid "section '%s' finished with an open IT block."
msgstr "la sección «%s» terminó con un bloque IT abierto."
-#: config/tc-arm.c:23521
-#, fuzzy, c-format
-#| msgid "section '%s' finished with an open IT block."
+#: config/tc-arm.c:23506
+#, c-format
msgid "section '%s' finished with an open VPT/VPST block."
-msgstr "la sección «%s» terminó con un bloque IT abierto."
+msgstr "la sección «%s» terminó con un bloque VPT/VPST abierto."
-#: config/tc-arm.c:23528
+#: config/tc-arm.c:23513
msgid "file finished with an open IT block."
msgstr "el fichero terminó con un bloque IT abierto."
-#: config/tc-arm.c:23530
-#, fuzzy
-#| msgid "file finished with an open IT block."
+#: config/tc-arm.c:23515
msgid "file finished with an open VPT/VPST block."
-msgstr "el fichero terminó con un bloque IT abierto."
+msgstr "el fichero terminó con un bloque VPT/VPST abierto."
-#: config/tc-arm.c:26696
-#, c-format
-msgid "alignments greater than %d bytes not supported in .text sections."
-msgstr "no se admiten las alineaciones más grandes que %d bytes en las secciones .text."
-
-#: config/tc-arm.c:26962 config/tc-ia64.c:3588
+#: config/tc-arm.c:26907 config/tc-ia64.c:3586
#, c-format
msgid "Group section `%s' has no group signature"
msgstr "Sección de grupo «%s» no tiene firma de grupo"
-#: config/tc-arm.c:27008
+#: config/tc-arm.c:26953
msgid "handlerdata in cantunwind frame"
msgstr "handlerdata en un marco cantunwind"
-#: config/tc-arm.c:27026
+#: config/tc-arm.c:26971
msgid "too many unwind opcodes for personality routine 0"
-msgstr "demasiados códigos operacionales de desenredo para la rutina personality 0"
+msgstr "demasiados códigos de operación de desenredo para la rutina personality 0"
-#: config/tc-arm.c:27059
+#: config/tc-arm.c:27004
msgid "attempt to recreate an unwind entry"
-msgstr "trata recrear una entrada relajada"
+msgstr "intento de recrear una entrada de desenredo"
-#: config/tc-arm.c:27070
+#: config/tc-arm.c:27015
msgid "too many unwind opcodes"
-msgstr "demasiados códigos operacionales de desenredo"
+msgstr "demasiados códigos de operación de desenredo"
-#: config/tc-arm.c:27374
+#: config/tc-arm.c:27319
#, c-format
msgid "[-mwarn-syms]: Assignment makes a symbol match an ARM instruction: %s"
-msgstr ""
+msgstr "[-mwarn-syms]: La asignación vuelve la coincidencia de símbolos una instrucción ARM: %s"
-#: config/tc-arm.c:27736 config/tc-arm.c:27804
+#: config/tc-arm.c:27681 config/tc-arm.c:27749
#, c-format
msgid "symbol %s is in a different section"
msgstr "el símbolo %s está en una sección diferente"
-#: config/tc-arm.c:27738 config/tc-arm.c:27806
+#: config/tc-arm.c:27683 config/tc-arm.c:27751
#, c-format
msgid "symbol %s is weak and may be overridden later"
-msgstr "el símbolo %s es débil y se puede sobreescribir tras"
+msgstr "el símbolo %s es débil y podría ser anulado más adelante"
-#: config/tc-arm.c:27783 config/tc-arm.c:28155
+#: config/tc-arm.c:27728 config/tc-arm.c:28100
#, c-format
msgid "invalid constant (%lx) after fixup"
-msgstr "constante no válida (%lx) tras la compostura"
+msgstr "constante no válida (%lx) después de la corrección"
-#: config/tc-arm.c:27839
+#: config/tc-arm.c:27784
#, c-format
msgid "unable to compute ADRL instructions for PC offset of 0x%lx"
msgstr "incapaz de calcular las instrucciones ADRL para el desplazamiento de PC de 0x%lx"
-#: config/tc-arm.c:27875 config/tc-arm.c:27905
+#: config/tc-arm.c:27820 config/tc-arm.c:27850
msgid "invalid literal constant: pool needs to be closer"
msgstr "constante literal no válida: el conjunto necesita estar más cerca"
-#: config/tc-arm.c:27878 config/tc-arm.c:27927
+#: config/tc-arm.c:27823 config/tc-arm.c:27872
#, c-format
msgid "bad immediate value for offset (%ld)"
msgstr "valor inmediato incorrecto para el desplazamiento (%ld)"
-#: config/tc-arm.c:27908
+#: config/tc-arm.c:27853
#, c-format
msgid "bad immediate value for 8-bit offset (%ld)"
-msgstr "valor inmediato incorrecto para el desplazamiento de 8-bit (%ld)"
+msgstr "valor inmediato incorrecto para el desplazamiento de 8 bits (%ld)"
-#: config/tc-arm.c:27968
+#: config/tc-arm.c:27913
msgid "offset not a multiple of 4"
-msgstr "desplazamiento no un múltiplo de 4"
+msgstr "desplazamiento no múltiplo de 4"
-#: config/tc-arm.c:28171
+#: config/tc-arm.c:28116
msgid "invalid smc expression"
msgstr "expresión smc no válida"
-#: config/tc-arm.c:28181
+#: config/tc-arm.c:28126
msgid "invalid hvc expression"
msgstr "expresión hvc no válida"
-#: config/tc-arm.c:28192 config/tc-arm.c:28201
+#: config/tc-arm.c:28137 config/tc-arm.c:28146
msgid "invalid swi expression"
msgstr "expresión swi no válida"
-#: config/tc-arm.c:28211
+#: config/tc-arm.c:28156
msgid "invalid expression in load/store multiple"
msgstr "expresión no válida en load/store múltiples"
-#: config/tc-arm.c:28273
+#: config/tc-arm.c:28218
#, c-format
msgid "blx to '%s' an ARM ISA state function changed to bl"
-msgstr "blx a «%s» cambió una función estatal ISA de ARM a bl"
+msgstr "blx a «%s» la función de estado ARM ISA cambió a bl"
-#: config/tc-arm.c:28292
+#: config/tc-arm.c:28237
msgid "misaligned branch destination"
-msgstr "destinaciones ramificadas desalineadas"
+msgstr "destinos de bifurcación desalineados"
-#: config/tc-arm.c:28413
+#: config/tc-arm.c:28358
#, c-format
msgid "blx to Thumb func '%s' from Thumb ISA state changed to bl"
-msgstr "blx a la función Thumb «%s» cambió del estado ISA Thumb a bl"
+msgstr "blx a la función Thumb «%s» desde estado ISA Thumb cambió a bl"
-#: config/tc-arm.c:28462
+#: config/tc-arm.c:28407
msgid "Thumb2 branch out of range"
-msgstr "Thumb2 ramificado fuera de rango"
+msgstr "bifurcación Thumb2 fuera de rango"
-#: config/tc-arm.c:28514 config/tc-arm.c:28547
-#, fuzzy
-#| msgid "%s not supported in MIPS16 mode"
+#: config/tc-arm.c:28459 config/tc-arm.c:28492
msgid "Relocation supported only in FDPIC mode"
-msgstr "%s no admitido dentro del modo MIPS16"
+msgstr "Reubicación solo disponible en modo FDPIC"
-#: config/tc-arm.c:28577
+#: config/tc-arm.c:28522
msgid "rel31 relocation overflow"
msgstr "desbordamiento de reubicación rel31"
-#: config/tc-arm.c:28599 config/tc-arm.c:28605 config/tc-arm.c:28609
-#: config/tc-arm.c:28656
+#: config/tc-arm.c:28544 config/tc-arm.c:28550 config/tc-arm.c:28554
+#: config/tc-arm.c:28601
msgid "co-processor offset out of range"
msgstr "desplazamiento de coprocesador fuera de rango"
-#: config/tc-arm.c:28673
+#: config/tc-arm.c:28618
#, c-format
msgid "invalid offset, target not word aligned (0x%08lX)"
-msgstr "desplazamiento inválido, el objetivo no está alineado a word (0x%08lX)"
+msgstr "desplazamiento inválido, el objetivo no está alineado a palabra (0x%08lX)"
-#: config/tc-arm.c:28679
+#: config/tc-arm.c:28624
msgid "section does not have enough alignment to ensure safe PC-relative loads"
-msgstr ""
+msgstr "la sección no tiene suficiente alineamiento como para asegurar cargas relativas a PC seguras"
-#: config/tc-arm.c:28683 config/tc-arm.c:28692 config/tc-arm.c:28700
-#: config/tc-arm.c:28708 config/tc-arm.c:28716
+#: config/tc-arm.c:28628 config/tc-arm.c:28637 config/tc-arm.c:28645
+#: config/tc-arm.c:28653 config/tc-arm.c:28661
#, c-format
msgid "invalid offset, value too big (0x%08lX)"
msgstr "desplazamiento inválido, valor demasiado grande (0x%08lX)"
-#: config/tc-arm.c:28757
+#: config/tc-arm.c:28702
msgid "invalid Hi register with immediate"
-msgstr "el registro Hi inválido con el inmediato"
+msgstr "registro Hi inválido con inmediato"
-#: config/tc-arm.c:28773
+#: config/tc-arm.c:28718
msgid "invalid immediate for stack address calculation"
msgstr "inmediato inválido para el cálculo de la dirección de la pila"
-#: config/tc-arm.c:28792
+#: config/tc-arm.c:28737
msgid "address calculation needs a strongly defined nearby symbol"
-msgstr ""
+msgstr "el cálculo de dirección precisa símbolo cercano fuertemente definido"
-#: config/tc-arm.c:28808
+#: config/tc-arm.c:28753
msgid "symbol too far away"
-msgstr "símbolo fuera muy lejos"
+msgstr "símbolo demasiado lejos"
-#: config/tc-arm.c:28820
+#: config/tc-arm.c:28765
#, c-format
msgid "invalid immediate for address calculation (value = 0x%08lX)"
msgstr "inmediato inválido para el cálculo de la dirección (valor = 0x%08lX)"
-#: config/tc-arm.c:28850
+#: config/tc-arm.c:28795
#, c-format
msgid "invalid immediate: %ld is out of range"
msgstr "inmediato inválido: %ld está fuera de rango"
-#: config/tc-arm.c:28862
+#: config/tc-arm.c:28807
#, c-format
msgid "invalid shift value: %ld"
msgstr "valor de desplazamiento inválido: %ld"
-#: config/tc-arm.c:28932 config/tc-arm.c:29003
+#: config/tc-arm.c:28877 config/tc-arm.c:28948
#, c-format
msgid "the offset 0x%08lX is not representable"
msgstr "el desplazamiento 0x%08lX no es representable"
-#: config/tc-arm.c:28964
+#: config/tc-arm.c:28909
#, c-format
msgid "Unable to process relocation for thumb opcode: %lx"
-msgstr "No se ha podido procesar reubicación para código de operación pulgar: %lx"
+msgstr "No se ha podido procesar reubicación para código de operación «thumb»: %lx"
-#: config/tc-arm.c:29043
+#: config/tc-arm.c:28988
#, c-format
msgid "bad offset 0x%08lX (only 12 bits available for the magnitude)"
msgstr "desplazamiento incorrecto 0x%08lX (solo hay 12 bits disponibles para esta magnitud)"
-#: config/tc-arm.c:29082
+#: config/tc-arm.c:29027
#, c-format
msgid "bad offset 0x%08lX (only 8 bits available for the magnitude)"
msgstr "desplazamiento incorrecto 0x%08lX (solo hay 8 bits disponibles para esta magnitud)"
-#: config/tc-arm.c:29122
+#: config/tc-arm.c:29067
#, c-format
msgid "bad offset 0x%08lX (must be word-aligned)"
-msgstr "desplazamiento incorrecto 0x%08lX (debe ser alineado a word)"
+msgstr "desplazamiento incorrecto 0x%08lX (debe ser alineado a palabra)"
-#: config/tc-arm.c:29127
+#: config/tc-arm.c:29072
#, c-format
msgid "bad offset 0x%08lX (must be an 8-bit number of words)"
-msgstr "desplazamiento incorrecto 0x%08lX (debe ser un número de 8-bit de words)"
+msgstr "desplazamiento incorrecto 0x%08lX (debe ser un número de 8 bits de palabras)"
-#: config/tc-arm.c:29348 config/tc-score.c:7302
+#: config/tc-arm.c:29293 config/tc-score.c:7300
#, c-format
msgid "bad relocation fixup type (%d)"
-msgstr "tipo de compostura de reubicación inválido (%d)"
+msgstr "tipo de corrección de reubicación inválido (%d)"
-#: config/tc-arm.c:29465
+#: config/tc-arm.c:29410
msgid "literal referenced across section boundary"
-msgstr "se referencía una literal a través de un límite de sección"
+msgstr "la referencía a literal atraviesa frontera de sección"
-#: config/tc-arm.c:29545
+#: config/tc-arm.c:29490
msgid "internal relocation (type: IMMEDIATE) not fixed up"
-msgstr "reubicación interna (tipo: IMMEDIATE) no compuesta"
+msgstr "reubicación interna (tipo: IMMEDIATE) no corregida"
-#: config/tc-arm.c:29550
+#: config/tc-arm.c:29495
msgid "ADRL used for a symbol not defined in the same file"
msgstr "ADRL utilizado para un símbolo que no está definido en el mismo fichero"
-#: config/tc-arm.c:29557
-#, fuzzy, c-format
-#| msgid "ADRL used for a symbol not defined in the same file"
+#: config/tc-arm.c:29502
+#, c-format
msgid "%s used for a symbol not defined in the same file"
-msgstr "ADRL utilizado para un símbolo que no está definido en el mismo fichero"
+msgstr "%s utilizado para un símbolo que no está definido en el mismo fichero"
-#: config/tc-arm.c:29573
+#: config/tc-arm.c:29518
#, c-format
msgid "undefined local label `%s'"
msgstr "etiqueta local indefinida «%s»"
-#: config/tc-arm.c:29579
+#: config/tc-arm.c:29524
msgid "internal_relocation (type: OFFSET_IMM) not fixed up"
-msgstr "reubicación_interna (tipo OFFSET_IMM) no compuesta"
+msgstr "reubicación_interna (tipo: OFFSET_IMM) no corregida"
-#: config/tc-arm.c:29601 config/tc-cris.c:3999 config/tc-csky.c:1152
-#: config/tc-ft32.c:707 config/tc-mcore.c:1932 config/tc-microblaze.c:2062
-#: config/tc-mmix.c:2898 config/tc-moxie.c:823 config/tc-ns32k.c:2245
-#: config/tc-score.c:7389
+#: config/tc-arm.c:29546 config/tc-cris.c:3998 config/tc-csky.c:1176
+#: config/tc-ft32.c:705 config/tc-mcore.c:1932 config/tc-microblaze.c:2047
+#: config/tc-mmix.c:2897 config/tc-moxie.c:819 config/tc-ns32k.c:2247
+#: config/tc-score.c:7387
msgid "<unknown>"
msgstr "<desconocido>"
-#: config/tc-arm.c:30000
+#: config/tc-arm.c:29945
#, c-format
msgid "%s: unexpected function type: %d"
msgstr "%s: tipo de función inesperado: %d"
-#: config/tc-arm.c:30140
+#: config/tc-arm.c:30085
msgid "use of old and new-style options to set CPU type"
-msgstr "se utilizan casillas de estilo antiguo y nuevo para establecer el tipo de CPU"
+msgstr "se utilizan opciones de estilo antiguo y nuevo para establecer el tipo de CPU"
-#: config/tc-arm.c:30159
+#: config/tc-arm.c:30104
msgid "use of old and new-style options to set FPU type"
-msgstr "se utilizan casillas de estilo antiguo y nuevo para establecer el tipo de FPU"
+msgstr "se utilizan opciones de estilo antiguo y nuevo para establecer el tipo de FPU"
-#: config/tc-arm.c:30232
+#: config/tc-arm.c:30177
msgid "hard-float conflicts with specified fpu"
-msgstr "hard-float tiene conflictos con la unidad de coma flotante (fpu) especificada"
+msgstr "conflictos de coma flotante hardware con la fpu especificada"
-#: config/tc-arm.c:30415
+#: config/tc-arm.c:30360
msgid "generate PIC code"
msgstr "genera código PIC"
-#: config/tc-arm.c:30416
+#: config/tc-arm.c:30361
msgid "assemble Thumb code"
msgstr "ensambla código Thumb"
-#: config/tc-arm.c:30417
+#: config/tc-arm.c:30362
msgid "support ARM/Thumb interworking"
msgstr "admite la interoperación ARM/Thumb"
-#: config/tc-arm.c:30419
+#: config/tc-arm.c:30364
msgid "code uses 32-bit program counter"
-msgstr "el código utiliza un contador de programa de 32-bit"
+msgstr "el código utiliza un contador de programa de 32 bits"
-#: config/tc-arm.c:30420
+#: config/tc-arm.c:30365
msgid "code uses 26-bit program counter"
-msgstr "el código utiliza un contador de programa de 26-bit"
+msgstr "el código utiliza un contador de programa de 26 bits"
-#: config/tc-arm.c:30421
+#: config/tc-arm.c:30366
msgid "floating point args are in fp regs"
msgstr "los argumentos de coma flotante están en los registros de coma flotante"
-#: config/tc-arm.c:30423
+#: config/tc-arm.c:30368
msgid "re-entrant code"
msgstr "código reentrante"
-#: config/tc-arm.c:30424
+#: config/tc-arm.c:30369
msgid "code is ATPCS conformant"
msgstr "el código es conforme a ATPCS"
#. These are recognized by the assembler, but have no affect on code.
-#: config/tc-arm.c:30430
+#: config/tc-arm.c:30375
msgid "use frame pointer"
-msgstr "usa puntero de marco"
+msgstr "usa puntero al marco de pila"
-#: config/tc-arm.c:30431
+#: config/tc-arm.c:30376
msgid "use stack size checking"
-msgstr "usa revisión del tamaño de la pila"
+msgstr "usa comprobación del tamaño de la pila"
-#: config/tc-arm.c:30434
+#: config/tc-arm.c:30379
msgid "do not warn on use of deprecated feature"
msgstr "no avisa del uso de una opción obsoleta"
-#: config/tc-arm.c:30437
+#: config/tc-arm.c:30382
msgid "warn about performance deprecated IT instructions in ARMv8-A and ARMv8-R"
-msgstr ""
+msgstr "advierte de instrucciones IT obseltas por rendimiento en ARMv8-A y ARMv8-R"
-#: config/tc-arm.c:30441
+#: config/tc-arm.c:30386
msgid "warn about symbols that match instruction names [default]"
-msgstr ""
+msgstr "advierte de símbolos que coinciden con nombres de instrucción (por defecto)"
-#: config/tc-arm.c:30442
+#: config/tc-arm.c:30387
msgid "disable warnings about symobls that match instructions"
-msgstr ""
+msgstr "desactiva los avisos de símbolos que coinciden con nombres de instrucción"
#. DON'T add any new processors to this list -- we want the whole list
#. to go away... Add them to the processors table instead.
-#: config/tc-arm.c:30458 config/tc-arm.c:30459
+#: config/tc-arm.c:30403 config/tc-arm.c:30404
msgid "use -mcpu=arm1"
msgstr "emplea -mcpu=arm1"
-#: config/tc-arm.c:30460 config/tc-arm.c:30461
+#: config/tc-arm.c:30405 config/tc-arm.c:30406
msgid "use -mcpu=arm2"
msgstr "emplea -mcpu=arm2"
-#: config/tc-arm.c:30462 config/tc-arm.c:30463
+#: config/tc-arm.c:30407 config/tc-arm.c:30408
msgid "use -mcpu=arm250"
msgstr "emplea -mcpu=arm250"
-#: config/tc-arm.c:30464 config/tc-arm.c:30465
+#: config/tc-arm.c:30409 config/tc-arm.c:30410
msgid "use -mcpu=arm3"
msgstr "emplea -mcpu=arm3"
-#: config/tc-arm.c:30466 config/tc-arm.c:30467
+#: config/tc-arm.c:30411 config/tc-arm.c:30412
msgid "use -mcpu=arm6"
msgstr "emplea -mcpu=arm6"
-#: config/tc-arm.c:30468 config/tc-arm.c:30469
+#: config/tc-arm.c:30413 config/tc-arm.c:30414
msgid "use -mcpu=arm600"
msgstr "emplea -mcpu=arm600"
-#: config/tc-arm.c:30470 config/tc-arm.c:30471
+#: config/tc-arm.c:30415 config/tc-arm.c:30416
msgid "use -mcpu=arm610"
msgstr "emplea -mcpu=arm610"
-#: config/tc-arm.c:30472 config/tc-arm.c:30473
+#: config/tc-arm.c:30417 config/tc-arm.c:30418
msgid "use -mcpu=arm620"
msgstr "emplea -mcpu=arm620"
-#: config/tc-arm.c:30474 config/tc-arm.c:30475
+#: config/tc-arm.c:30419 config/tc-arm.c:30420
msgid "use -mcpu=arm7"
msgstr "emplea -mcpu=arm7"
-#: config/tc-arm.c:30476 config/tc-arm.c:30477
+#: config/tc-arm.c:30421 config/tc-arm.c:30422
msgid "use -mcpu=arm70"
msgstr "emplea -mcpu=arm70"
-#: config/tc-arm.c:30478 config/tc-arm.c:30479
+#: config/tc-arm.c:30423 config/tc-arm.c:30424
msgid "use -mcpu=arm700"
msgstr "emplea -mcpu=arm700"
-#: config/tc-arm.c:30480 config/tc-arm.c:30481
+#: config/tc-arm.c:30425 config/tc-arm.c:30426
msgid "use -mcpu=arm700i"
msgstr "emplea -mcpu=arm700i"
-#: config/tc-arm.c:30482 config/tc-arm.c:30483
+#: config/tc-arm.c:30427 config/tc-arm.c:30428
msgid "use -mcpu=arm710"
msgstr "emplea -mcpu=arm710"
-#: config/tc-arm.c:30484 config/tc-arm.c:30485
+#: config/tc-arm.c:30429 config/tc-arm.c:30430
msgid "use -mcpu=arm710c"
msgstr "emplea -mcpu=arm710c"
-#: config/tc-arm.c:30486 config/tc-arm.c:30487
+#: config/tc-arm.c:30431 config/tc-arm.c:30432
msgid "use -mcpu=arm720"
msgstr "emplea -mcpu=arm720"
-#: config/tc-arm.c:30488 config/tc-arm.c:30489
+#: config/tc-arm.c:30433 config/tc-arm.c:30434
msgid "use -mcpu=arm7d"
msgstr "emplea -mcpu=arm7d"
-#: config/tc-arm.c:30490 config/tc-arm.c:30491
+#: config/tc-arm.c:30435 config/tc-arm.c:30436
msgid "use -mcpu=arm7di"
msgstr "emplea -mcpu=arm7di"
-#: config/tc-arm.c:30492 config/tc-arm.c:30493
+#: config/tc-arm.c:30437 config/tc-arm.c:30438
msgid "use -mcpu=arm7m"
msgstr "emplea -mcpu=arm7m"
-#: config/tc-arm.c:30494 config/tc-arm.c:30495
+#: config/tc-arm.c:30439 config/tc-arm.c:30440
msgid "use -mcpu=arm7dm"
msgstr "emplea -mcpu=arm7dm"
-#: config/tc-arm.c:30496 config/tc-arm.c:30497
+#: config/tc-arm.c:30441 config/tc-arm.c:30442
msgid "use -mcpu=arm7dmi"
msgstr "emplea -mcpu=arm7dmi"
-#: config/tc-arm.c:30498 config/tc-arm.c:30499
+#: config/tc-arm.c:30443 config/tc-arm.c:30444
msgid "use -mcpu=arm7100"
msgstr "emplea -mcpu=arm7100"
-#: config/tc-arm.c:30500 config/tc-arm.c:30501
+#: config/tc-arm.c:30445 config/tc-arm.c:30446
msgid "use -mcpu=arm7500"
msgstr "emplea -mcpu=arm7500"
-#: config/tc-arm.c:30502 config/tc-arm.c:30503
+#: config/tc-arm.c:30447 config/tc-arm.c:30448
msgid "use -mcpu=arm7500fe"
msgstr "emplea -mcpu=arm7500fe"
-#: config/tc-arm.c:30504 config/tc-arm.c:30505 config/tc-arm.c:30506
-#: config/tc-arm.c:30507
+#: config/tc-arm.c:30449 config/tc-arm.c:30450 config/tc-arm.c:30451
+#: config/tc-arm.c:30452
msgid "use -mcpu=arm7tdmi"
msgstr "emplea -mcpu=arm7tdmi"
-#: config/tc-arm.c:30508 config/tc-arm.c:30509
+#: config/tc-arm.c:30453 config/tc-arm.c:30454
msgid "use -mcpu=arm710t"
msgstr "emplea -mcpu=arm710t"
-#: config/tc-arm.c:30510 config/tc-arm.c:30511
+#: config/tc-arm.c:30455 config/tc-arm.c:30456
msgid "use -mcpu=arm720t"
msgstr "emplea -mcpu=arm720t"
-#: config/tc-arm.c:30512 config/tc-arm.c:30513
+#: config/tc-arm.c:30457 config/tc-arm.c:30458
msgid "use -mcpu=arm740t"
msgstr "emplea -mcpu=arm740t"
-#: config/tc-arm.c:30514 config/tc-arm.c:30515
+#: config/tc-arm.c:30459 config/tc-arm.c:30460
msgid "use -mcpu=arm8"
msgstr "emplea -mcpu=arm8"
-#: config/tc-arm.c:30516 config/tc-arm.c:30517
+#: config/tc-arm.c:30461 config/tc-arm.c:30462
msgid "use -mcpu=arm810"
msgstr "emplea -mcpu=arm810"
-#: config/tc-arm.c:30518 config/tc-arm.c:30519
+#: config/tc-arm.c:30463 config/tc-arm.c:30464
msgid "use -mcpu=arm9"
msgstr "emplea -mcpu=arm9"
-#: config/tc-arm.c:30520 config/tc-arm.c:30521
+#: config/tc-arm.c:30465 config/tc-arm.c:30466
msgid "use -mcpu=arm9tdmi"
msgstr "emplea -mcpu=arm9tdmi"
-#: config/tc-arm.c:30522 config/tc-arm.c:30523
+#: config/tc-arm.c:30467 config/tc-arm.c:30468
msgid "use -mcpu=arm920"
msgstr "emplea -mcpu=arm920"
-#: config/tc-arm.c:30524 config/tc-arm.c:30525
+#: config/tc-arm.c:30469 config/tc-arm.c:30470
msgid "use -mcpu=arm940"
msgstr "emplea -mcpu=arm940"
-#: config/tc-arm.c:30526
+#: config/tc-arm.c:30471
msgid "use -mcpu=strongarm"
msgstr "emplea -mcpu=strongarm"
-#: config/tc-arm.c:30528
+#: config/tc-arm.c:30473
msgid "use -mcpu=strongarm110"
msgstr "emplea -mcpu=strongarm110"
-#: config/tc-arm.c:30530
+#: config/tc-arm.c:30475
msgid "use -mcpu=strongarm1100"
msgstr "emplea -mcpu=strongarm1100"
-#: config/tc-arm.c:30532
+#: config/tc-arm.c:30477
msgid "use -mcpu=strongarm1110"
msgstr "emplea -mcpu=strongarm1110"
-#: config/tc-arm.c:30533
+#: config/tc-arm.c:30478
msgid "use -mcpu=xscale"
msgstr "emplea -mcpu=xscale"
-#: config/tc-arm.c:30534
+#: config/tc-arm.c:30479
msgid "use -mcpu=iwmmxt"
msgstr "emplea -mcpu=iwmmxt"
-#: config/tc-arm.c:30535
+#: config/tc-arm.c:30480
msgid "use -mcpu=all"
msgstr "emplea -mcpu=all"
#. Architecture variants -- don't add any more to this list either.
-#: config/tc-arm.c:30538 config/tc-arm.c:30539
+#: config/tc-arm.c:30483 config/tc-arm.c:30484
msgid "use -march=armv2"
msgstr "emplea -march=armv2"
-#: config/tc-arm.c:30540 config/tc-arm.c:30541
+#: config/tc-arm.c:30485 config/tc-arm.c:30486
msgid "use -march=armv2a"
msgstr "emplea -march=armv2a"
-#: config/tc-arm.c:30542 config/tc-arm.c:30543
+#: config/tc-arm.c:30487 config/tc-arm.c:30488
msgid "use -march=armv3"
msgstr "emplea -march=armv3"
-#: config/tc-arm.c:30544 config/tc-arm.c:30545
+#: config/tc-arm.c:30489 config/tc-arm.c:30490
msgid "use -march=armv3m"
msgstr "emplea -march=armv3m"
-#: config/tc-arm.c:30546 config/tc-arm.c:30547
+#: config/tc-arm.c:30491 config/tc-arm.c:30492
msgid "use -march=armv4"
msgstr "emplea -march=armv4"
-#: config/tc-arm.c:30548 config/tc-arm.c:30549
+#: config/tc-arm.c:30493 config/tc-arm.c:30494
msgid "use -march=armv4t"
msgstr "emplea -march=armv4t"
-#: config/tc-arm.c:30550 config/tc-arm.c:30551
+#: config/tc-arm.c:30495 config/tc-arm.c:30496
msgid "use -march=armv5"
msgstr "emplea -march=armv5"
-#: config/tc-arm.c:30552 config/tc-arm.c:30553
+#: config/tc-arm.c:30497 config/tc-arm.c:30498
msgid "use -march=armv5t"
msgstr "emplea -march=armv5t"
-#: config/tc-arm.c:30554 config/tc-arm.c:30555
+#: config/tc-arm.c:30499 config/tc-arm.c:30500
msgid "use -march=armv5te"
msgstr "emplea -march=armv5te"
-#: config/tc-arm.c:30556
-#, fuzzy
-#| msgid "use -mfpu=fpe"
+#: config/tc-arm.c:30501
msgid "use -mfpu=softvfp"
-msgstr "emplea -mfpu=fpe"
+msgstr "emplea -mfpu=softvfp"
-#: config/tc-arm.c:31713
+#: config/tc-arm.c:31658
msgid "extension does not apply to the base architecture"
-msgstr "extensión no se aplica a la arquitectura base"
+msgstr "la extensión no se aplica a la arquitectura base"
-#: config/tc-arm.c:31742
+#: config/tc-arm.c:31687
msgid "architectural extensions must be specified in alphabetical order"
-msgstr "extensiones de arquitectura deben ser especificadas en orden alfabético"
+msgstr "las extensiones de arquitectura deben ser especificadas en orden alfabético"
-#: config/tc-arm.c:31881 config/tc-arm.c:32864
+#: config/tc-arm.c:31826 config/tc-arm.c:32813
#, c-format
-msgid "unknown floating point format `%s'\n"
-msgstr "desconoce formato de coma flotante «%s»\n"
+msgid "unknown floating point format `%s'"
+msgstr "formato de coma flotante «%s» desconocido"
-#: config/tc-arm.c:31897 config/tc-csky.c:1264
+#: config/tc-arm.c:31842
#, c-format
-msgid "unknown floating point abi `%s'\n"
-msgstr "desconoce abi de coma flotante «%s» desconocida\n"
+msgid "unknown floating point abi `%s'"
+msgstr "abi de coma flotante «%s» desconocida"
-#: config/tc-arm.c:31913
+#: config/tc-arm.c:31858
#, c-format
-msgid "unknown EABI `%s'\n"
-msgstr "desconoce EABI «%s»\n"
+msgid "unknown EABI `%s'"
+msgstr "EABI «%s» desconocida"
-#: config/tc-arm.c:31933
+#: config/tc-arm.c:31878
#, c-format
msgid "unknown implicit IT mode `%s', should be arm, thumb, always, or never."
-msgstr "desconoce modo IT implícito «%s» , debe ser brazo, pulgar, siempre o nunca."
+msgstr "modo IT implícito «%s» desconocido; debe ser arm, thumb, always o never."
-#: config/tc-arm.c:31956 config/tc-metag.c:5911
+#: config/tc-arm.c:31901 config/tc-metag.c:5909
msgid "<fpu name>\t assemble for FPU architecture <fpu name>"
-msgstr "<nombre fpu>\t ensambla para la arquitectura de Unidad de Coma Flotante <nombre fpu>"
+msgstr "<nombre_de_fpu>\t ensambla para la arquitectura de FPU <nombre_de_fpu>"
-#: config/tc-arm.c:31958
+#: config/tc-arm.c:31903
msgid "<abi>\t assemble for floating point ABI <abi>"
msgstr "<abi>\t ensambla para la ABI de coma flotante <abi>"
-#: config/tc-arm.c:31961
+#: config/tc-arm.c:31906
msgid "<ver>\t\t assemble for eabi version <ver>"
msgstr "<ver>\t\t ensambla para la eabi versión <ver>"
-#: config/tc-arm.c:31964
+#: config/tc-arm.c:31909
msgid "<mode>\t controls implicit insertion of IT instructions"
msgstr "<modo>\t controla la inserción implícita de instrucciones IT"
-#: config/tc-arm.c:31966
+#: config/tc-arm.c:31911
msgid "\t\t\t TI CodeComposer Studio syntax compatibility mode"
-msgstr "\t\t\t modo compatible de sintaxis TI CodeComposer Studio"
+msgstr "\t\t\t modo de compatibilidad de sintaxis TI CodeComposer Studio"
-#: config/tc-arm.c:31969
+#: config/tc-arm.c:31914
msgid ""
"[ieee|alternative]\n"
" set the encoding for half precision floating point numbers to IEEE\n"
" or Arm alternative format."
msgstr ""
+"[ieee|alternative]\n"
+" establece la codificación de los números de coma flotante de\n"
+" precisión media a IEEE o un formato Arm alternativo."
-#: config/tc-arm.c:32080
+#: config/tc-arm.c:32025
#, c-format
msgid " ARM-specific assembler options:\n"
msgstr " Opciones de ensamblador específicas de ARM:\n"
-#: config/tc-arm.c:32100
+#: config/tc-arm.c:32045
#, c-format
msgid " --fix-v4bx Allow BX in ARMv4 code\n"
msgstr " --fix-v4bx Permite BX en código ARMv4\n"
-#: config/tc-arm.c:32104
-#, fuzzy, c-format
-#| msgid "--fdpic\t\t\tgenerate an FDPIC object file\n"
+#: config/tc-arm.c:32049
+#, c-format
msgid " --fdpic generate an FDPIC object file\n"
-msgstr "--fdpic\t\t\tgenera un fichero objeto FDPIC\n"
+msgstr " --fdpic genera un fichero objeto FDPIC\n"
-#: config/tc-arm.c:32425
-msgid "no architecture contains all the instructions used\n"
-msgstr "ninguna arquitectura contiene todas las instrucciones utilizadas\n"
+#: config/tc-arm.c:32370
+msgid "no architecture contains all the instructions used"
+msgstr "ninguna arquitectura contiene todas las instrucciones utilizadas"
-#: config/tc-arm.c:32617
-#, fuzzy
-#| msgid "missing cpu name `%s'"
+#: config/tc-arm.c:32562
msgid ".cpu: missing cpu name"
-msgstr "ausente el nombre de cpu «%s»"
+msgstr ".cpu: falta el nombre de la cpu"
-#: config/tc-arm.c:32665
-#, fuzzy
-#| msgid "missing architecture name `%s'"
+#: config/tc-arm.c:32610
msgid ".arch: missing architecture name"
-msgstr "ausente el nombre de arquitectura «%s»"
+msgstr ".arch: falta el nombre de la arquitectura"
-#: config/tc-arm.c:32706
-#, fuzzy
-#| msgid "missing architecture name `%s'"
+#: config/tc-arm.c:32651
msgid ".object_arch: missing architecture name"
-msgstr "ausente el nombre de arquitectura «%s»"
+msgstr ".object_arch: falta el nombre de la arquitectura"
-#: config/tc-arm.c:32743
-#, fuzzy
-#| msgid "missing architectural extension"
+#: config/tc-arm.c:32688
msgid ".arch_extension: missing architecture extension"
-msgstr "ausente la extensión de la arquitectura"
+msgstr ".arch_extension:: falta la extensión de la arquitectura"
-#: config/tc-arm.c:32800
+#: config/tc-arm.c:32746
#, c-format
msgid "architectural extension `%s' is not allowed for the current base architecture"
msgstr "no se permite la extensión de arquitectura «%s» para la arquitectura base actual"
-#: config/tc-arm.c:32823
+#: config/tc-arm.c:32749
#, c-format
-msgid "unknown architecture extension `%s'\n"
-msgstr "desconoce extensión de arquitectura «%s»\n"
+msgid "disabling feature `%s' has no effect on the current base architecture"
+msgstr "desactivar la característica «%s» no tiene ningún efecto en la arquitectura base actual"
-#: config/tc-arm.c:32844
-#, fuzzy
-#| msgid "missing fpu name `%s'"
+#: config/tc-arm.c:32772
+#, c-format
+msgid "unknown architecture extension `%s'"
+msgstr "extensión de arquitectura «%s» desconocida"
+
+#: config/tc-arm.c:32793
msgid ".fpu: missing fpu name"
-msgstr "ausente el nombre fpu «%s»"
+msgstr ".fpu: falta el nombre de la fpu"
#: config/tc-avr.c:597
#, c-format
msgid "Known MCU names:"
-msgstr "Nombres MCU conocidos:"
+msgstr "Nombres de MCU conocidos:"
#: config/tc-avr.c:662
#, c-format
@@ -5947,37 +5931,28 @@ msgstr ""
"Opciones de ensamblador AVR:\n"
" -mmcu=[nombre-avr] selecciona la variante de microcontrolador\n"
" [nombre-avr] puede ser:\n"
-" avr1 - núcleo AVR nuclear sin RAM de datos\n"
-" avr2 - núcleo AVR nuclear hasta con 8K de memoria de programa\n"
-" avr25 - núcleo AVR nuclear hasta con 8K de memoria de programa\n"
+" avr1 - núcleo AVR clásico sin RAM de datos\n"
+" avr2 - núcleo AVR clásico con hasta 8K de memoria de programa\n"
+" avr25 - núcleo AVR clásico con hasta 8K de memoria de programa\n"
" más la instrucción MOVW\n"
-" avr3 - núcleo AVR nuclear hasta con 64K de memoria de programa\n"
-" avr31 - núcleo AVR nuclear hasta con 128K de memoria de programa\n"
-" avr35 - núcleo AVR nuclear hasta con 64K de memoria de programa\n"
+" avr3 - núcleo AVR clásico con hasta 64K de memoria de programa\n"
+" avr31 - núcleo AVR clásico con hasta 128K de memoria de programa\n"
+" avr35 - núcleo AVR clásico con hasta 64K de memoria de programa\n"
" más la instrucción MOVW\n"
-" avr4 - núcleo AVR mejorado hasta con 8K de memoria de programa\n"
-" avr5 - núcleo AVR mejorado hasta con 64K de memoria de programa\n"
-" avr51 - núcleo AVR mejorado hasta con 128K de memoria de programa\n"
-" avr6 - núcleo AVR mejorado hasta con 256K de memoria de programa\n"
-" avrxmega3 - XMEGA, > 8K, ≤ 64K FLASH, > 64K RAM\n"
-" avrxmega4 - XMEGA, > 64K, ≤ 128K FLASH, ≤ 64K RAM\n"
-" avrxmega5 - XMEGA, > 64K, ≤ 128K FLASH, > 64K RAM\n"
-" avrxmega6 - XMEGA, > 128K, ≤ 256K FLASH, ≤ 64K RAM\n"
-" avrxmega7 - XMEGA, > 128K, ≤ 256K FLASH, > 64K RAM\n"
-" avrtinyo Núcleo -AVR Tiny con registros 16 gp\n"
+" avr4 - núcleo AVR mejorado con hasta 8K de memoria de programa\n"
+" avr5 - núcleo AVR mejorado con hasta 64K de memoria de programa\n"
+" avr51 - núcleo AVR mejorado con hasta 128K de memoria de programa\n"
+" avr6 - núcleo AVR mejorado con hasta 256K de memoria de programa\n"
+" avrxmega2 - XMEGA, > 8K, < 64K FLASH, < 64K RAM\n"
+" avrxmega3 - XMEGA, RAM + FLASH < 64K, Flash visible en RAM\n"
+" avrxmega4 - XMEGA, > 64K, <= 128K FLASH, <= 64K RAM\n"
+" avrxmega5 - XMEGA, > 64K, <= 128K FLASH, > 64K RAM\n"
+" avrxmega6 - XMEGA, > 128K, <= 256K FLASH, <= 64K RAM\n"
+" avrxmega7 - XMEGA, > 128K, <= 256K FLASH, > 64K RAM\n"
+" avrtiny - núcleo AVR Tiny con 16 registros gp\n"
#: config/tc-avr.c:685
-#, fuzzy, c-format
-#| msgid ""
-#| " -mall-opcodes accept all AVR opcodes, even if not supported by MCU\n"
-#| " -mno-skip-bug disable warnings for skipping two-word instructions\n"
-#| " (default for avr4, avr5)\n"
-#| " -mno-wrap reject rjmp/rcall instructions with 8K wrap-around\n"
-#| " (default for avr3, avr5)\n"
-#| " -mrmw accept Read-Modify-Write instructions\n"
-#| " -mlink-relax generate relocations for linker relaxation (default)\n"
-#| " -mno-link-relax don't generate relocations for linker relaxation.\n"
-#| " -mgcc-isr accept the __gcc_isr pseudo-instruction.\n"
+#, c-format
msgid ""
" -mall-opcodes accept all AVR opcodes, even if not supported by MCU\n"
" -mno-skip-bug disable warnings for skipping two-word instructions\n"
@@ -5991,220 +5966,222 @@ msgid ""
" -mno-dollar-line-separator\n"
" do not treat the $ character as a line separator.\n"
msgstr ""
-" -mall-opcodes acepta todos los códigos operacionales AVR, aún si\n"
+" -mall-opcodes acepta todos los códigos operacionales AVR, aun si\n"
" no lo admite el MCU\n"
-" -mno-skip-bug desactiva los avisos para las instrucciones que omiten\n"
-" dos palabras (por defecto para avr4, avr5)\n"
+" -mno-skip-bug desactiva los avisos para saltar las instrucciones\n"
+" de dos palabras (por defecto para avr4, avr5)\n"
" -mno-wrap rechaza las instrucciones rjmp/rcall con envoltura de 8K\n"
" (por defecto para avr3, avr5)\n"
-" -mrmw acepta instrucciones Leer-Modificar-Escribir\n"
-" -mlink-relax genera reubicación para relajación de enlazador (predef.)\n"
-" -mno-link-relax no genera reubicación para relajación de enlazador.\n"
-" -mgcc-isr acepta la __gcc_isr pseudo-instrucción.\n"
+" -mrmw acepta instrucciones Leer-Modificar-Escribir\n"
+" -mlink-relax genera reubicaciones para relajación del enlazador (predef.)\n"
+" -mno-link-relax no genera reubicaciones para relajación de enlazador.\n"
+" -mgcc-isr acepta la pseudo-instrucción __gcc_isr.\n"
+" -mno-dollar-line-separator\n"
+" no trata el carácter $ como separador de línea.\n"
#: config/tc-avr.c:726
#, c-format
msgid "unknown MCU: %s\n"
-msgstr "desconoce MCU: %s\n"
+msgstr "MCU desconocida: %s\n"
#: config/tc-avr.c:740
#, c-format
msgid "redefinition of mcu type `%s' to `%s'"
msgstr "redefinición del tipo de mcu «%s» a «%s»"
-#: config/tc-avr.c:869
+#: config/tc-avr.c:867
msgid "constant value required"
msgstr "se requiere un valor constante"
-#: config/tc-avr.c:872
+#: config/tc-avr.c:870
#, c-format
msgid "number must be positive and less than %d"
msgstr "el número debe ser positivo y menor que %d"
-#: config/tc-avr.c:898 config/tc-avr.c:1035
+#: config/tc-avr.c:896 config/tc-avr.c:1033
#, c-format
msgid "constant out of 8-bit range: %d"
-msgstr "constante fuera del rango de 8-bit: %d"
+msgstr "constante fuera del rango de 8 bits: %d"
-#: config/tc-avr.c:966 config/tc-score.c:1194 read.c:4075
+#: config/tc-avr.c:964 config/tc-score.c:1194 read.c:4128
msgid "illegal expression"
msgstr "expresión ilegal"
-#: config/tc-avr.c:995 config/tc-avr.c:2004 config/tc-pru.c:1870
+#: config/tc-avr.c:993 config/tc-avr.c:2002 config/tc-pru.c:1868
msgid "`)' required"
msgstr "`)' requerido"
-#: config/tc-avr.c:1105
+#: config/tc-avr.c:1103
msgid "register name or number from 16 to 31 required"
-msgstr "requerido nombre o número de registro desde 16 a 32"
+msgstr "se requiere nombre de registro o número entre 16 y 31"
-#: config/tc-avr.c:1111
+#: config/tc-avr.c:1109
msgid "register name or number from 0 to 31 required"
-msgstr "requerido nombre o número de registro desde 0 a 31"
+msgstr "se requiere nombre de registro o número entre 0 y 31"
-#: config/tc-avr.c:1119
+#: config/tc-avr.c:1117
msgid "register r16-r23 required"
-msgstr "se requiere los registros r16-r23"
+msgstr "se requieren los registros r16-r23"
-#: config/tc-avr.c:1125
+#: config/tc-avr.c:1123
msgid "register number above 15 required"
msgstr "se requiere un número de registro superior a 15"
-#: config/tc-avr.c:1131 config/tc-csky.c:6417 config/tc-csky.c:6446
+#: config/tc-avr.c:1129 config/tc-csky.c:6435 config/tc-csky.c:6464
msgid "even register number required"
-msgstr "requerido número de registro par"
+msgstr "se requiere un número de registro par"
-#: config/tc-avr.c:1137
+#: config/tc-avr.c:1135
msgid "register r24, r26, r28 or r30 required"
msgstr "se requieren los registros r24, r26, r28 o r30"
-#: config/tc-avr.c:1158
+#: config/tc-avr.c:1156
msgid "pointer register (X, Y or Z) required"
-msgstr "el registro puntero (X, Y o Z) requerido"
+msgstr "se requiere registro de puntero (X, Y o Z)"
-#: config/tc-avr.c:1165
+#: config/tc-avr.c:1163
msgid "cannot both predecrement and postincrement"
-msgstr "no se puede predecrementar y postincrementar"
+msgstr "no se puede predecrementar y postincrementar a la vez"
-#: config/tc-avr.c:1173
+#: config/tc-avr.c:1171
msgid "addressing mode not supported"
msgstr "no se admite el modo de direccionamiento"
-#: config/tc-avr.c:1179
+#: config/tc-avr.c:1177
msgid "can't predecrement"
msgstr "no se puede predecrementar"
-#: config/tc-avr.c:1182
+#: config/tc-avr.c:1180
msgid "pointer register Z required"
-msgstr "se requiere el registro puntero Z"
+msgstr "se requiere registro de puntero Z"
-#: config/tc-avr.c:1201
+#: config/tc-avr.c:1199
msgid "postincrement not supported"
msgstr "no se admite el postincremento"
-#: config/tc-avr.c:1211
+#: config/tc-avr.c:1209
msgid "pointer register (Y or Z) required"
-msgstr "se requiere un registro puntero (Y o Z)"
+msgstr "se requiere un registro de puntero (Y o Z)"
-#: config/tc-avr.c:1333 config/tc-xgate.c:1354
+#: config/tc-avr.c:1331 config/tc-xgate.c:1353
#, c-format
msgid "unknown constraint `%c'"
-msgstr "desconoce constante `%c'"
+msgstr "restricción `%c' desconocida"
-#: config/tc-avr.c:1396 config/tc-avr.c:2686
+#: config/tc-avr.c:1394 config/tc-avr.c:2750
msgid "`,' required"
msgstr "`,' requerido"
-#: config/tc-avr.c:1417
+#: config/tc-avr.c:1415
msgid "undefined combination of operands"
msgstr "combinación indefinida de operandos"
-#: config/tc-avr.c:1426
+#: config/tc-avr.c:1424
msgid "skipping two-word instruction"
-msgstr "se omite la instrucción de dos word"
+msgstr "se omite la instrucción de dos palabras"
-#: config/tc-avr.c:1614 config/tc-avr.c:1630 config/tc-avr.c:1761
-#: config/tc-msp430.c:4500 config/tc-msp430.c:4519
+#: config/tc-avr.c:1612 config/tc-avr.c:1628 config/tc-avr.c:1759
+#: config/tc-msp430.c:4504 config/tc-msp430.c:4523
#, c-format
msgid "odd address operand: %ld"
msgstr "operando de direccón impar: %ld"
-#: config/tc-avr.c:1622 config/tc-avr.c:1641 config/tc-avr.c:1659
-#: config/tc-avr.c:1670 config/tc-avr.c:1686 config/tc-avr.c:1694
-#: config/tc-avr.c:1789 config/tc-avr.c:1796 config/tc-d10v.c:503
-#: config/tc-d30v.c:550 config/tc-msp430.c:4508 config/tc-msp430.c:4526
+#: config/tc-avr.c:1620 config/tc-avr.c:1639 config/tc-avr.c:1657
+#: config/tc-avr.c:1668 config/tc-avr.c:1684 config/tc-avr.c:1692
+#: config/tc-avr.c:1787 config/tc-avr.c:1794 config/tc-d10v.c:502
+#: config/tc-d30v.c:550 config/tc-msp430.c:4512 config/tc-msp430.c:4530
#, c-format
msgid "operand out of range: %ld"
msgstr "operando fuera de rango: %ld"
-#: config/tc-avr.c:1677
+#: config/tc-avr.c:1675
#, c-format
msgid "operand out of range: 0x%lx"
msgstr "operando fuera de rango: 0x%lx"
-#: config/tc-avr.c:1782 config/tc-d10v.c:1592 config/tc-d30v.c:2011
-#: config/tc-msp430.c:4597
+#: config/tc-avr.c:1780 config/tc-d10v.c:1591 config/tc-d30v.c:2011
+#: config/tc-msp430.c:4601
#, c-format
msgid "line %d: unknown relocation type: 0x%x"
-msgstr "línea %d: tipo reubicado desconocida: 0x%x"
+msgstr "línea %d: tipo de reubicación desconocido: 0x%x"
-#: config/tc-avr.c:1810
+#: config/tc-avr.c:1808
msgid "only constant expression allowed"
-msgstr "solo se permite una expresión constante"
+msgstr "solo se permite expresión constante"
#. xgettext:c-format.
-#: config/tc-avr.c:1864 config/tc-bfin.c:813 config/tc-d10v.c:1461
-#: config/tc-d30v.c:1768 config/tc-metag.c:7016 config/tc-mn10200.c:775
-#: config/tc-mn10300.c:2178 config/tc-msp430.c:4645 config/tc-ppc.c:7770
-#: config/tc-spu.c:878 config/tc-spu.c:1089 config/tc-v850.c:3360
+#: config/tc-avr.c:1862 config/tc-bfin.c:813 config/tc-d10v.c:1460
+#: config/tc-d30v.c:1768 config/tc-metag.c:7003 config/tc-mn10200.c:774
+#: config/tc-mn10300.c:2178 config/tc-msp430.c:4649 config/tc-ppc.c:7746
+#: config/tc-spu.c:868 config/tc-spu.c:1079 config/tc-v850.c:3336
#: config/tc-z80.c:3871
#, c-format
msgid "reloc %d not supported by object file format"
msgstr "el formato del fichero objeto no admite la reubicación %d"
-#: config/tc-avr.c:1886 config/tc-ft32.c:232 config/tc-h8300.c:1928
-#: config/tc-mcore.c:881 config/tc-microblaze.c:913 config/tc-moxie.c:180
+#: config/tc-avr.c:1884 config/tc-ft32.c:231 config/tc-h8300.c:1928
+#: config/tc-mcore.c:881 config/tc-microblaze.c:912 config/tc-moxie.c:180
#: config/tc-pj.c:253 config/tc-sh.c:2182 config/tc-wasm32.c:747
#: config/tc-z8k.c:1233
msgid "can't find opcode "
msgstr "no se puede encontrar el código de operación "
-#: config/tc-avr.c:1905
+#: config/tc-avr.c:1903
#, c-format
msgid "illegal opcode %s for mcu %s"
-msgstr "código de operación %s ilegal para el mcu %s"
+msgstr "código de operación %s ilegal para la mcu %s"
-#: config/tc-avr.c:1921
+#: config/tc-avr.c:1919
#, c-format
msgid "pseudo instruction `%s' not supported"
msgstr "pseudo instrucción «%s» no admitida"
-#: config/tc-avr.c:1943
+#: config/tc-avr.c:1941
msgid "garbage at end of line"
msgstr "basura al final de la línea"
-#: config/tc-avr.c:2053 config/tc-pru.c:1902
+#: config/tc-avr.c:2051 config/tc-pru.c:1900
#, c-format
msgid "illegal %s relocation size: %d"
-msgstr "reubicación de tamaño %s ilegal: %d"
+msgstr "tamaño de reubicación %s ilegal: %d"
-#: config/tc-avr.c:2166 config/tc-avr.c:2221
+#: config/tc-avr.c:2164 config/tc-avr.c:2218
#, c-format
msgid "unknown record type %d (in %s)"
msgstr "tipo de registro desconociodo %d (en %s)"
-#: config/tc-avr.c:2242
+#: config/tc-avr.c:2239
#, c-format
msgid "Failed to create property section `%s'\n"
-msgstr "Fallado para crear secciones propietarias `%s'\n"
+msgstr "No se ha podido crear la sección de propiedades `%s'\n"
-#: config/tc-avr.c:2678
+#: config/tc-avr.c:2742
#, c-format
msgid "%s requires value 0-2 as operand 1"
-msgstr ""
+msgstr "%s requiere el valor 0-2 como operando 1"
-#: config/tc-avr.c:2703
+#: config/tc-avr.c:2767
#, c-format
msgid "`%s %d' after `%s %d' from %s:%u"
msgstr "`%s %d' tras `%s %d' desde %s:%u"
-#: config/tc-avr.c:2706
+#: config/tc-avr.c:2770
#, c-format
msgid "`%s %d' but no chunk open yet"
-msgstr "«%s %d» pero no recorta abierto aún"
+msgstr "«%s %d» pero ningún frgamento abierto aún"
-#: config/tc-avr.c:2794
+#: config/tc-avr.c:2858
#, c-format
msgid "dangling `__gcc_isr %d'"
-msgstr "`__gcc_isr colgado %d'"
+msgstr "`__gcc_isr suelto %d'"
-#: config/tc-avr.c:2796
+#: config/tc-avr.c:2860
msgid "dangling `__gcc_isr'"
-msgstr "colgado `__gcc_isr'"
+msgstr "`__gcc_isr' suelto"
#: config/tc-bfin.c:93 config/tc-frv.c:1603 config/tc-frv.c:1613
msgid "missing ')'"
-msgstr "ausente ')'"
+msgstr "falta ')'"
#: config/tc-bfin.c:428
#, c-format
@@ -6214,7 +6191,7 @@ msgstr " Opciones de ensamblador específicas de Blackfin:\n"
#: config/tc-bfin.c:429
#, c-format
msgid " -mcpu=<cpu[-sirevision]> specify the name of the target CPU\n"
-msgstr " -mcpu=<cpu[-sirevision]> especifica el nombre del CPU objetivo\n"
+msgstr " -mcpu=<cpu[-sirevision]> especifica el nombre de CPU objetivo\n"
#: config/tc-bfin.c:430
#, c-format
@@ -6265,20 +6242,21 @@ msgstr "rel demasiado lejos de BFD_RELOC_16"
#: config/tc-bpf.c:194
#, c-format
msgid "-mdialect=%s is not valid. Expected normal or pseudoc"
-msgstr ""
+msgstr "-mdialect=%s no es válido. Se esperaba normal o pseudoc"
#: config/tc-bpf.c:209
#, c-format
msgid "-misa-spec=%s is not valid. Expected v1, v2, v3, v4 o xbpf"
-msgstr ""
+msgstr "-misa-spec=%s no es válido. Se esperaba v1, v2, v3, v4 o xbpf"
#: config/tc-bpf.c:229
-#, fuzzy, c-format
-#| msgid "FT32 options:\n"
+#, c-format
msgid ""
"\n"
"BPF options:\n"
-msgstr "Opciones FT32:\n"
+msgstr ""
+"\n"
+"Opciones BPF:\n"
#: config/tc-bpf.c:230
#, c-format
@@ -6290,79 +6268,76 @@ msgid ""
" -misa-spec set the BPF ISA spec (v1, v2, v3, v4, xbpf)\n"
" -mxbpf alias for -misa-spec=xbpf\n"
msgstr ""
+"Opciones BPF:\n"
+" -EL genera código para una máquina «little endian»\n"
+" -EB genera código para una máquina «big endian»\n"
+" -mdialect=DIALECTO indica dialecto de ensamblador (normal, pseudoc)\n"
+" -misa-spec indica la espec. BPF ISA (v1, v2, v3, v4, xbpf)\n"
+" -mxbpf alias de -misa-spec=xbpf\n"
-#: config/tc-bpf.c:588
+#: config/tc-bpf.c:577
msgid "signed instruction operand out of range, shall fit in 32 bits"
-msgstr ""
+msgstr "operando de instrucción con signo fuera de rango; debe encajar en 32 bits"
-#: config/tc-bpf.c:962
-#, fuzzy
-#| msgid "immediate out of range for insert"
+#: config/tc-bpf.c:951
msgid "immediate out of range, shall fit in 32 bits"
-msgstr "inmediato fuera de rango para insert"
+msgstr "inmediato fuera de rango; debe encajar en 32 bits"
-#: config/tc-bpf.c:972
-#, fuzzy
-#| msgid "pc-relative load offset out of range"
+#: config/tc-bpf.c:961
msgid "pc-relative offset out of range, shall fit in 32 bits"
-msgstr "el desplazamiento de carga pc-relativa fuera de rango"
+msgstr "desplazamiento relativo a pc fuera de rango; debe encajar en 32 bits"
-#: config/tc-bpf.c:982 config/tc-bpf.c:992
-#, fuzzy
-#| msgid "pc-relative load offset out of range"
+#: config/tc-bpf.c:971 config/tc-bpf.c:981
msgid "pc-relative offset out of range, shall fit in 16 bits"
-msgstr "el desplazamiento de carga pc-relativa fuera de rango"
+msgstr "desplazamiento relativo a pc fuera de rango; debe encajar en 16 bits"
-#: config/tc-bpf.c:1375
-#, fuzzy, c-format
-#| msgid "unexpected `\"' in expression"
+#: config/tc-bpf.c:1360
+#, c-format
msgid "unexpected register name `%s' in expression"
-msgstr "`«' o `»' inesperada dentro de expresión"
+msgstr "nombre de registro «%s» inesperado en la expresión"
-#: config/tc-bpf.c:1706
-#, fuzzy, c-format
-#| msgid "invalid condition code '%s'"
+#: config/tc-bpf.c:1691
+#, c-format
msgid "invalid %%-tag in BPF opcode '%s'\n"
-msgstr "código condicional inválido «%s»"
+msgstr "etiqueta %% no válida en el código de operación BPF «%s»\n"
-#: config/tc-bpf.c:1753
-#, fuzzy, c-format
-#| msgid "unrecognised instruction %s"
+#: config/tc-bpf.c:1738
+#, c-format
msgid "unrecognized instruction `%s'"
-msgstr "la instrucción %s no reconocida"
+msgstr "instrucción «%s» no reconocida"
#: config/tc-cr16.c:168
msgid "using a bit field width of zero"
-msgstr "empleando una anchura de campo de bit de cero"
+msgstr "se está utilizando una anchura de campo de bit de cero"
#: config/tc-cr16.c:176
#, c-format
msgid "field width \"%s\" too complex for a bitfield"
-msgstr "anchura de campo «%s» es demasiado compleja para un campo de bits"
+msgstr "anchura de campo «%s» demasiado compleja para un campo de bits"
#: config/tc-cr16.c:186
#, c-format
msgid "field width %lu too big to fit in %d byte: truncated to %d bits"
msgid_plural "field width %lu too big to fit in %d bytes: truncated to %d bits"
-msgstr[0] "anchura de campo %lu es muy grande para caber en %d byte: se truncó a %d bits"
-msgstr[1] "anchura de campo %lu es muy grande para caber en %d bytes: se truncó a %d bits"
+msgstr[0] "anchura de campo %lu demasiado grande para encajar en %d byte: se trunca a %d bits"
+msgstr[1] "anchura de campo %lu demasiado grande para encajar en %d bytes: se trunca a %d bits"
#: config/tc-cr16.c:212
#, c-format
msgid "field value \"%s\" too complex for a bitfield"
-msgstr "valor del campo «%s» es demasiado complejo para un campo de bits"
+msgstr "valor del campo «%s» demasiado complejo para un campo de bits"
#: config/tc-cr16.c:394
#, c-format
msgid "Unknown register pair - index relative mode: `%d'"
-msgstr "Registros modo relativo par - indexado desconocido: '%d'"
+msgstr "Pareja de registros desconocida - modo relativo de índices: «%d»"
#: config/tc-cr16.c:601 config/tc-crx.c:331
#, c-format
msgid "internal error: reloc %d (`%s') not supported by object file format"
-msgstr "error interno: reubicación %d («%s») no admitidó por formato del fichero objeto"
+msgstr "error interno: reubicación %d («%s») no admitida por el formato del fichero objeto"
-#: config/tc-cr16.c:694 config/tc-i386.c:17857 config/tc-s390.c:2340
+#: config/tc-cr16.c:694 config/tc-i386.c:18106 config/tc-s390.c:2351
msgid "GOT already in symbol table"
msgstr "GOT ya está en la tabla de símbolos"
@@ -6370,12 +6345,12 @@ msgstr "GOT ya está en la tabla de símbolos"
#: config/tc-cr16.c:878 config/tc-crx.c:568
#, c-format
msgid "missing or invalid displacement expression `%s' taken as 0"
-msgstr "la expresión de desubicación ausentente o no válida «%s» se toma como 0"
+msgstr "la expresión de desplazamiento ausente o no válida «%s» se toma como 0"
#: config/tc-cr16.c:928
#, c-format
msgid "GOT bad expression with %s."
-msgstr "GOT como expresión incorrecta con %s."
+msgstr "expresión incorrecta GOT con %s."
#: config/tc-cr16.c:1039
#, c-format
@@ -6385,27 +6360,27 @@ msgstr "operando %d: expresión de uso ilegal: `%s`"
#: config/tc-cr16.c:1104 config/tc-crx.c:1078
#, c-format
msgid "Unknown register: `%d'"
-msgstr "Registro desconocido: '%d'"
+msgstr "Registro desconocido: «%d»"
#. Issue a error message when register is illegal.
#: config/tc-cr16.c:1112
#, c-format
msgid "Illegal register (`%s') in Instruction: `%s'"
-msgstr "Registro ilegal («%s») en Instruction: «%s»"
+msgstr "Registro ilegal («%s») en instrucción: «%s»"
#: config/tc-cr16.c:1186 config/tc-cr16.c:1261
#, c-format
msgid "Illegal register `%s' in Instruction `%s'"
-msgstr "Registro ilegal «%s» en la Instruction «%s»"
+msgstr "Registro ilegal «%s» en la instrucción «%s»"
#: config/tc-cr16.c:1214 config/tc-cr16.c:1225
#, c-format
msgid "Illegal register pair `%s' in Instruction `%s'"
-msgstr "Par de registro ilegal «%s» en la Instrucción «%s»"
+msgstr "Pareja de registros ilegal «%s» en la instrucción «%s»"
#: config/tc-cr16.c:1250
msgid "unmatched '['"
-msgstr "desemparejado '['"
+msgstr "'[' desemparejado"
#: config/tc-cr16.c:1256
msgid "garbage after index spec ignored"
@@ -6421,111 +6396,111 @@ msgstr "Operandos ilegales (espacios en blanco): «%s»"
#: config/tc-crx.c:1714
#, c-format
msgid "Missing matching brackets : `%s'"
-msgstr "Ausenten las llaves coincidentes : «%s»"
+msgstr "faltan los corchetes correspondientes: «%s»"
#: config/tc-cr16.c:1472 config/tc-crx.c:949
#, c-format
msgid "Unknown exception: `%s'"
msgstr "Excepción desconocida: «%s»"
-#: config/tc-cr16.c:1554 config/tc-crx.c:1045
+#: config/tc-cr16.c:1555 config/tc-crx.c:1045
#, c-format
msgid "Illegal `cinv' parameter: `%c'"
-msgstr "Parámetro `cinv' ilegal: `%c'"
+msgstr "Parámetro `cinv' ilegal: «%c»"
-#: config/tc-cr16.c:1575 config/tc-cr16.c:1614
+#: config/tc-cr16.c:1576 config/tc-cr16.c:1615
#, c-format
msgid "Unknown register pair: `%d'"
-msgstr "Par de registro desconocido: '%d'"
+msgstr "Pareja de registros desconocida: «%d»"
#. Issue a error message when register pair is illegal.
-#: config/tc-cr16.c:1583
+#: config/tc-cr16.c:1584
#, c-format
msgid "Illegal register pair (`%s') in Instruction: `%s'"
-msgstr "Par de registro ilegal («%s») en la Instrucción: «%s»"
+msgstr "Pareja de registros ilegal («%s») en la instrucción: «%s»"
#. Issue a error message when register pair is illegal.
-#: config/tc-cr16.c:1622
+#: config/tc-cr16.c:1623
#, c-format
msgid "Illegal index register pair (`%s') in Instruction: `%s'"
-msgstr "Par de registro de índice ilegal («%s») en la Instrucción: «%s»"
+msgstr "Pareja de registros de índice ilegal («%s») en la instrucción: «%s»"
-#: config/tc-cr16.c:1661
+#: config/tc-cr16.c:1662
#, c-format
msgid "Unknown processor register : `%d'"
msgstr "Registro de procesador desconocido: '%d'"
#. Issue a error message when register pair is illegal.
-#: config/tc-cr16.c:1669
+#: config/tc-cr16.c:1670
#, c-format
msgid "Illegal processor register (`%s') in Instruction: `%s'"
-msgstr "Registro de procesador ilegal («%s») en la Instrucción: «%s»"
+msgstr "Registro de procesador ilegal («%s») en la instrucción: «%s»"
-#: config/tc-cr16.c:1717
+#: config/tc-cr16.c:1718
#, c-format
msgid "Unknown processor register (32 bit) : `%d'"
-msgstr "Registro de procesador desconocido (32 bit) : '%d'"
+msgstr "Registro de procesador desconocido (32 bits) : '%d'"
#. Issue a error message when register pair is illegal.
-#: config/tc-cr16.c:1725
+#: config/tc-cr16.c:1726
#, c-format
msgid "Illegal 32 bit - processor register (`%s') in Instruction: `%s'"
-msgstr "Registro de procesador de 32 bit ilegal («%s») en la Instruction: «%s»"
+msgstr "Registro de procesador de 32 bits ilegal («%s») en la instrucción: «%s»"
-#: config/tc-cr16.c:2070 config/tc-crx.c:1612 config/tc-crx.c:1629
+#: config/tc-cr16.c:2071 config/tc-crx.c:1612 config/tc-crx.c:1629
#, c-format
msgid "Same src/dest register is used (`r%d'), result is undefined"
-msgstr "Se usa el mismo registro fuente/destino (`r%d'), el resultado es indefinido"
+msgstr "Se usa el mismo registro origen/destino (`r%d'), el resultado es indefinido"
-#: config/tc-cr16.c:2092
+#: config/tc-cr16.c:2093
msgid "RA register is saved twice."
msgstr "El registro RA se guarda dos veces."
-#: config/tc-cr16.c:2096
+#: config/tc-cr16.c:2097
#, c-format
msgid "`%s' Illegal use of registers."
msgstr "«%s» Uso inválido de registros."
-#: config/tc-cr16.c:2110
+#: config/tc-cr16.c:2111
#, c-format
msgid "`%s' Illegal count-register combination."
msgstr "«%s» Combinación de registros-cuenta ilegal."
-#: config/tc-cr16.c:2116
+#: config/tc-cr16.c:2117
#, c-format
msgid "`%s' Illegal use of register."
msgstr "«%s» Uso inválido de registro."
-#: config/tc-cr16.c:2125 config/tc-crx.c:1621
+#: config/tc-cr16.c:2126 config/tc-crx.c:1621
#, c-format
msgid "`%s' has undefined result"
msgstr "«%s» tiene un resultado indefinido"
-#: config/tc-cr16.c:2133
+#: config/tc-cr16.c:2134
#, c-format
msgid "Same src/dest register is used (`r%d'),result is undefined"
-msgstr "Se usa el mismo registro fuente/destino (`r%d'), el resultado es indefinido"
+msgstr "Se usa el mismo registro origen/destino (`r%d'), el resultado es indefinido"
-#: config/tc-cr16.c:2304 config/tc-crx.c:1527
+#: config/tc-cr16.c:2305 config/tc-crx.c:1527
msgid "Incorrect number of operands"
msgstr "Número incorrecto de operandos"
-#: config/tc-cr16.c:2306 config/tc-crx.c:1529
+#: config/tc-cr16.c:2307 config/tc-crx.c:1529
#, c-format
msgid "Illegal type of operand (arg %d)"
msgstr "Tipo de operando ilegal (arg %d)"
-#: config/tc-cr16.c:2312 config/tc-crx.c:1535
+#: config/tc-cr16.c:2313 config/tc-crx.c:1535
#, c-format
msgid "Operand out of range (arg %d)"
msgstr "Operando fuera de rango (arg %d)"
-#: config/tc-cr16.c:2315 config/tc-crx.c:1538
+#: config/tc-cr16.c:2316 config/tc-crx.c:1538
#, c-format
msgid "Operand has odd displacement (arg %d)"
-msgstr "Operando tiene un desplazamiento impar (arg %d)"
+msgstr "El operando tiene un desplazamiento impar (arg %d)"
-#: config/tc-cr16.c:2318 config/tc-cr16.c:2349 config/tc-crx.c:1553
+#: config/tc-cr16.c:2319 config/tc-cr16.c:2350 config/tc-crx.c:1553
#: config/tc-crx.c:1581
#, c-format
msgid "Illegal operand (arg %d)"
@@ -6533,63 +6508,63 @@ msgstr "Operando ilegal (arg %d)"
#. Give an error if a frag containing code is not aligned to a 2-byte
#. boundary.
-#: config/tc-cr16.c:2451 config/tc-cr16.h:74 config/tc-crx.c:1903
+#: config/tc-cr16.c:2452 config/tc-cr16.h:74 config/tc-crx.c:1903
#: config/tc-crx.h:77
msgid "instruction address is not a multiple of 2"
-msgstr "la instrucción direccional no es un múltiplo de 2"
+msgstr "la dirección de la instrucción no es múltiplo de 2"
-#: config/tc-cr16.c:2474 config/tc-cris.c:1550 config/tc-cris.c:1558
-#: config/tc-crx.c:1939 config/tc-dlx.c:681 config/tc-hppa.c:3206
-#: config/tc-hppa.c:3213 config/tc-sparc.c:1753 config/tc-sparc.c:1761
+#: config/tc-cr16.c:2475 config/tc-cris.c:1549 config/tc-cris.c:1557
+#: config/tc-crx.c:1939 config/tc-dlx.c:681 config/tc-hppa.c:3207
+#: config/tc-hppa.c:3214 config/tc-sparc.c:1755 config/tc-sparc.c:1763
#, c-format
msgid "Unknown opcode: `%s'"
-msgstr "Código operacional desconocido: «%s»"
+msgstr "Código de operación desconocido: «%s»"
-#: config/tc-cris.c:550 config/tc-m68hc11.c:3894
+#: config/tc-cris.c:550 config/tc-m68hc11.c:3891
#, c-format
msgid "internal inconsistency problem in %s: fr_symbol %lx"
msgstr "problema de inconsistencia interna en %s: fr_symbol %lx"
-#: config/tc-cris.c:554 config/tc-m68hc11.c:3898 config/tc-msp430.c:4991
+#: config/tc-cris.c:554 config/tc-m68hc11.c:3895 config/tc-msp430.c:4995
#, c-format
msgid "internal inconsistency problem in %s: resolved symbol"
msgstr "problema de inconsistencia interna en %s: símbolo resuelto"
-#: config/tc-cris.c:564 config/tc-m68hc11.c:3904
+#: config/tc-cris.c:564 config/tc-m68hc11.c:3901
#, c-format
msgid "internal inconsistency problem in %s: fr_subtype %d"
msgstr "problema de inconsistencia interna en %s: fr_subtype %d"
#: config/tc-cris.c:904
msgid "Relaxation to long branches for .arch common_v10_v32 not implemented"
-msgstr "La relajación a grandes ramificaciones para .arch common_v10_v32 no está implementada"
+msgstr "La relajación a bifurcaciones largas para .arch common_v10_v32 no está implementada"
#: config/tc-cris.c:934
msgid "Complicated LAPC target operand is not a multiple of two. Use LAPC.D"
-msgstr "Operando de objetivo complicado LAPC no es un múltiplo de dos. Use LAPC.D"
+msgstr "El operando de objetivo LAPC complicado no es múltiplo de dos. Utilice LAPC.D"
#: config/tc-cris.c:939
#, c-format
msgid "Internal error found in md_convert_frag: offset %ld. Please report this."
-msgstr "Se encontró un error interno en md_convert_frag: desplazamiento %ld. Por favor repórtelo."
+msgstr "Se encontró un error interno en md_convert_frag: desplazamiento %ld. Por favor, informe de ello."
#: config/tc-cris.c:964
#, c-format
msgid "internal inconsistency in %s: bdapq no symbol"
-msgstr "inconsistencia interna en %s: bdapq no es un símbolo"
+msgstr "inconsistencia interna en %s: bdapq no símbolo"
#: config/tc-cris.c:977
#, c-format
msgid "internal inconsistency in %s: bdap.w with no symbol"
-msgstr "inconsistencia interna en %s: bdap.w sin algún símbolo"
+msgstr "inconsistencia interna en %s: bdap.w sin ningún símbolo"
#: config/tc-cris.c:1001
msgid "section alignment must be >= 4 bytes to check MULS/MULU safeness"
-msgstr "la alineamiento de la sección debe ser ≥ 4 bytes para marcar seguridad de MULS/MULU"
+msgstr "el alineamiento de la sección debe ser ≥ 4 bytes para comprobar seguridad de MULS/MULU"
#: config/tc-cris.c:1010
msgid "dangerous MULS/MULU location; give it higher alignment"
-msgstr "ubicación de MULS/MULU peligrosa; déles una alineamiento superior"
+msgstr "ubicación de MULS/MULU peligrosa; déle un alineamiento superior"
#. Bail out for compatibility mode. (It seems it can be implemented,
#. perhaps with a 10-byte sequence: "move.d NNNN,$pc/$acr", "jump
@@ -6600,262 +6575,262 @@ msgstr "El manejo del desplazamiento .word fuera de rango no está implementado
#: config/tc-cris.c:1096
msgid ".word case-table handling failed: table too large"
-msgstr "Falló el manejo de la tabla de case .word: la tabla es demasiado grande"
+msgstr "Falló el manejo de la tabla de casos .word: la tabla es demasiado grande"
#: config/tc-cris.c:1228
#, c-format
msgid "Buggy opcode: `%s' \"%s\"\n"
-msgstr "Código operacional defectuoso: «%s» «%s»\n"
+msgstr "Código de operación defectuoso: «%s» «%s»\n"
-#: config/tc-cris.c:1656
+#: config/tc-cris.c:1655
#, c-format
msgid "Immediate value not in 5 bit unsigned range: %ld"
-msgstr "El valor inmediato no está en el rango de 5 bit sin signo: %ld"
+msgstr "El valor inmediato no está en el rango de 5 bits sin signo: %ld"
-#: config/tc-cris.c:1672
+#: config/tc-cris.c:1671
#, c-format
msgid "Immediate value not in 4 bit unsigned range: %ld"
-msgstr "El valor inmediato no está en el rango de 4 bit sin signo: %ld"
+msgstr "El valor inmediato no está en el rango de 4 bits sin signo: %ld"
-#: config/tc-cris.c:1724
+#: config/tc-cris.c:1723
#, c-format
msgid "Immediate value not in 6 bit range: %ld"
-msgstr "El valor inmediato no está en el rango de 6 bit: %ld"
+msgstr "El valor inmediato no está en el rango de 6 bits: %ld"
-#: config/tc-cris.c:1740
+#: config/tc-cris.c:1739
#, c-format
msgid "Immediate value not in 6 bit unsigned range: %ld"
-msgstr "El valor inmediato no está en el rango de 6 bit sin signo: %ld"
+msgstr "El valor inmediato no está en el rango de 6 bits sin signo: %ld"
#. Others have a generic warning.
-#: config/tc-cris.c:1849
+#: config/tc-cris.c:1848
#, c-format
msgid "Unimplemented register `%s' specified"
msgstr "Registro no implementado «%s» especificado"
#. We've come to the end of instructions with this
#. opcode, so it must be an error.
-#: config/tc-cris.c:2093
+#: config/tc-cris.c:2092
msgid "Illegal operands"
msgstr "Operandos ilegales"
-#: config/tc-cris.c:2134 config/tc-cris.c:2174
+#: config/tc-cris.c:2133 config/tc-cris.c:2173
#, c-format
msgid "Immediate value not in 8 bit range: %ld"
-msgstr "El valor inmediato no está en el rango de 8 bit: %ld"
+msgstr "El valor inmediato no está en el rango de 8 bits: %ld"
-#: config/tc-cris.c:2144 config/tc-cris.c:2195
+#: config/tc-cris.c:2143 config/tc-cris.c:2194
#, c-format
msgid "Immediate value not in 16 bit range: %ld"
-msgstr "El valor inmediato no está en el rango de 16 bit: %ld"
+msgstr "El valor inmediato no está en el rango de 16 bits: %ld"
-#: config/tc-cris.c:2179
+#: config/tc-cris.c:2178
#, c-format
msgid "Immediate value not in 8 bit signed range: %ld"
-msgstr "El valor inmediato no está en el rango de 8 bit con signo: %ld"
+msgstr "El valor inmediato no está en el rango de 8 bits con signo: %ld"
-#: config/tc-cris.c:2184
+#: config/tc-cris.c:2183
#, c-format
msgid "Immediate value not in 8 bit unsigned range: %ld"
-msgstr "El valor inmediato no está en el rango de 8 bit sin signo: %ld"
+msgstr "El valor inmediato no está en el rango de 8 bits sin signo: %ld"
-#: config/tc-cris.c:2200
+#: config/tc-cris.c:2199
#, c-format
msgid "Immediate value not in 16 bit signed range: %ld"
-msgstr "El valor inmediato no está en el rango de 16 bit con signo: %ld"
+msgstr "El valor inmediato no está en el rango de 16 bits con signo: %ld"
-#: config/tc-cris.c:2205
+#: config/tc-cris.c:2204
#, c-format
msgid "Immediate value not in 16 bit unsigned range: %ld"
-msgstr "El valor inmediato no está en el rango de 16 bit sin signo: %ld"
+msgstr "El valor inmediato no está en el rango de 16 bits sin signo: %ld"
-#: config/tc-cris.c:2231
+#: config/tc-cris.c:2230
msgid "TLS relocation size does not match operand size"
-msgstr "TLS para tamaño de la reubicación no coincide con el tamaño de operando"
+msgstr "El tamaño de la reubicación TLS no coincide con el tamaño del operando"
-#: config/tc-cris.c:2232
+#: config/tc-cris.c:2231
msgid "PIC relocation size does not match operand size"
-msgstr "PIC como tamaño reubicado no coincide con el tamaño de operando"
+msgstr "El tamaño de la reubicación PIC no coincide con el tamaño del operando"
-#: config/tc-cris.c:3379
+#: config/tc-cris.c:3378
msgid "Calling gen_cond_branch_32 for .arch common_v10_v32\n"
msgstr "Se llama a gen_cond_branch_32 para .arch common_v10_v32\n"
-#: config/tc-cris.c:3383
+#: config/tc-cris.c:3382
msgid "32-bit conditional branch generated"
-msgstr "generada una ramificación condicional de 32-bit"
+msgstr "generada una bifurcación condicional de 32 bits"
-#: config/tc-cris.c:3444
+#: config/tc-cris.c:3443
msgid "Complex expression not supported"
-msgstr "No se admiten las expresiones complejas"
+msgstr "No se admite expresión compleja"
#. FIXME: Is this function mentioned in the internals.texi manual? If
#. not, add it.
-#: config/tc-cris.c:3594
+#: config/tc-cris.c:3593
msgid "Bad call to md_atof () - floating point formats are not supported"
msgstr "Llamada incorrecta a md_atof () - no se admiten los formatos de coma flotante"
-#: config/tc-cris.c:3635
+#: config/tc-cris.c:3634
msgid "PC-relative relocation must be trivially resolved"
msgstr "Reubicación relativa al PC se debe resolver trivialmente"
-#: config/tc-cris.c:3707
+#: config/tc-cris.c:3706
#, c-format
msgid "Value not in 16 bit range: %ld"
-msgstr "El valor no está en el rango de 16 bit: %ld"
+msgstr "El valor no está en el rango de 16 bits: %ld"
-#: config/tc-cris.c:3715
+#: config/tc-cris.c:3714
#, c-format
msgid "Value not in 16 bit signed range: %ld"
-msgstr "El valor no está en el rango de 16 bit con signo: %ld"
+msgstr "El valor no está en el rango de 16 bits con signo: %ld"
-#: config/tc-cris.c:3723
+#: config/tc-cris.c:3722
#, c-format
msgid "Value not in 8 bit range: %ld"
-msgstr "El valor no está en el rango de 8 bit: %ld"
+msgstr "El valor no está en el rango de 8 bits: %ld"
-#: config/tc-cris.c:3730
+#: config/tc-cris.c:3729
#, c-format
msgid "Value not in 8 bit signed range: %ld"
-msgstr "El valor no está en el rango de 8 bit con signo: %ld"
+msgstr "El valor no está en el rango de 8 bits con signo: %ld"
-#: config/tc-cris.c:3740
+#: config/tc-cris.c:3739
#, c-format
msgid "Value not in 4 bit unsigned range: %ld"
-msgstr "El valor no está en el rango de 4 bit sin signo: %ld"
+msgstr "El valor no está en el rango de 4 bits sin signo: %ld"
-#: config/tc-cris.c:3747
+#: config/tc-cris.c:3746
#, c-format
msgid "Value not in 5 bit unsigned range: %ld"
-msgstr "El valor no está en el rango de 5 bit sin signo: %ld"
+msgstr "El valor no está en el rango de 5 bits sin signo: %ld"
-#: config/tc-cris.c:3754
+#: config/tc-cris.c:3753
#, c-format
msgid "Value not in 6 bit range: %ld"
-msgstr "El valor no está en el rango de 6 bit: %ld"
+msgstr "El valor no está en el rango de 6 bits: %ld"
-#: config/tc-cris.c:3761
+#: config/tc-cris.c:3760
#, c-format
msgid "Value not in 6 bit unsigned range: %ld"
-msgstr "El valor no está en el rango de 6 bit sin signo: %ld"
+msgstr "El valor no está en el rango de 6 bits sin signo: %ld"
-#: config/tc-cris.c:3805
+#: config/tc-cris.c:3804
#, c-format
msgid "Please use --help to see usage and options for this assembler.\n"
-msgstr "Por favor utilice --help para ver el modo de empleo y casillas para este ensamblador.\n"
+msgstr "Por favor, utilice --help para ver el modo de empleo y las opciones para este ensamblador.\n"
-#: config/tc-cris.c:3817
+#: config/tc-cris.c:3816
msgid "--no-underscore is invalid with a.out format"
msgstr "--no-underscore es inválido con el formato a.out"
-#: config/tc-cris.c:3829
+#: config/tc-cris.c:3828
msgid "--pic is invalid for this object format"
msgstr "--pic es inválido en este formato de objeto"
-#: config/tc-cris.c:3843
+#: config/tc-cris.c:3842
#, c-format
msgid "invalid <arch> in --march=<arch>: %s"
msgstr "arquitectura <arq> en --march=<arq> no válida: %s"
-#: config/tc-cris.c:3952 config/tc-ft32.c:688 config/tc-moxie.c:776
+#: config/tc-cris.c:3951 config/tc-ft32.c:686 config/tc-moxie.c:772
msgid "Semantics error. This type of operand can not be relocated, it must be an assembly-time constant"
-msgstr "Error semántico. Este tipo de operando no se puede reubicar, debe ser una constante en el momento de ensamblado"
+msgstr "Error semántico. Este tipo de operando no se puede reubicar, debe ser una constante en tiempo de ensamblado"
-#: config/tc-cris.c:4000 config/tc-ft32.c:708 config/tc-moxie.c:824
+#: config/tc-cris.c:3999 config/tc-ft32.c:706 config/tc-moxie.c:820
#, c-format
msgid "Cannot generate relocation type for symbol %s, code %s"
-msgstr "No se puede generar el tipo reubicado para el símbolo %s, código %s"
+msgstr "No se puede generar el tipo de reubicación para el símbolo %s, código %s"
#. The messages are formatted to line up with the generic options.
-#: config/tc-cris.c:4013
+#: config/tc-cris.c:4012
#, c-format
msgid "CRIS-specific options:\n"
msgstr "Opciones específicas de CRIS:\n"
-#: config/tc-cris.c:4015
+#: config/tc-cris.c:4014
msgid " -h, -H Don't execute, print this help text. Deprecated.\n"
msgstr " -h, -H No ejecutar, escribir este texto de ayuda. Obsoleto.\n"
-#: config/tc-cris.c:4017
+#: config/tc-cris.c:4016
msgid " -N Warn when branches are expanded to jumps.\n"
-msgstr " -N Avisa cuando las ramificaciones se expanden a saltos.\n"
+msgstr " -N Avisa cuando las bifurcaciones se expanden a saltos.\n"
-#: config/tc-cris.c:4019
+#: config/tc-cris.c:4018
msgid " --underscore User symbols are normally prepended with underscore.\n"
msgstr " --underscore Los símbolos de usuario generalmente se preceden con subrayado.\n"
-#: config/tc-cris.c:4021
+#: config/tc-cris.c:4020
msgid " Registers will not need any prefix.\n"
msgstr " Los registros no necesitarán ningún prefijo.\n"
-#: config/tc-cris.c:4023
+#: config/tc-cris.c:4022
msgid " --no-underscore User symbols do not have any prefix.\n"
-msgstr " --no-underscore Usuarios de símbolos no tienen ningún prefijo.\n"
+msgstr " --no-underscore Los símbolos de usuario no tienen prefijo.\n"
-#: config/tc-cris.c:4025
+#: config/tc-cris.c:4024
msgid " Registers will require a `$'-prefix.\n"
msgstr " Los registros requerirán un prefijo `$'.\n"
-#: config/tc-cris.c:4028
+#: config/tc-cris.c:4027
msgid " --pic\t\t\tEnable generation of position-independent code.\n"
msgstr " --pic\t\t\tActiva la generación de código independiente de posición.\n"
-#: config/tc-cris.c:4031
+#: config/tc-cris.c:4030
msgid ""
" --march=<arch>\t\tGenerate code for <arch>. Valid choices for <arch>\n"
"\t\t\t\tare v0_v10, v10, v32 and common_v10_v32.\n"
msgstr ""
-" --march=<arq>\t\tGenera código para <arq>. Las casillas válidas para <arq>\n"
+" --march=<arq>\t\tGenera código para <arq>. Las opciones válidas para <arq>\n"
"\t\t\t\tson v0_v10, v10, v32 y common_v10_v32.\n"
-#: config/tc-cris.c:4080
+#: config/tc-cris.c:4078
msgid "Invalid pc-relative relocation"
msgstr "Reubicación relativa a pc no válida"
-#: config/tc-cris.c:4125
+#: config/tc-cris.c:4123
#, c-format
msgid "Adjusted signed .word (%ld) overflows: `switch'-statement too large."
-msgstr "Signo ajustado .word (%ld) desborda: sentencia `switch' demasiado grande."
+msgstr ".word (%ld) con signo ajustada se desborda: sentencia `switch' demasiado grande."
-#: config/tc-cris.c:4155
+#: config/tc-cris.c:4153
#, c-format
msgid ".syntax %s requires command-line option `--underscore'"
msgstr ".syntax %s requiere de la opción de línea de mandatos `--underscore'"
-#: config/tc-cris.c:4164
+#: config/tc-cris.c:4162
#, c-format
msgid ".syntax %s requires command-line option `--no-underscore'"
msgstr ".syntax %s requiere de la opción de línea de mandatos `--no-underscore'"
-#: config/tc-cris.c:4201
+#: config/tc-cris.c:4199
msgid "Unknown .syntax operand"
-msgstr "Desconoce operando .syntax"
+msgstr "Operando de .syntax desconocido"
-#: config/tc-cris.c:4211
+#: config/tc-cris.c:4209
msgid "Pseudodirective .file is only valid when generating ELF"
msgstr "La pseudodirectiva .file es válida solamente cuando se genera ELF"
-#: config/tc-cris.c:4223
+#: config/tc-cris.c:4221
msgid "Pseudodirective .loc is only valid when generating ELF"
msgstr "La pseudodirectiva .loc es válida solamente cuando se genera ELF"
-#: config/tc-cris.c:4238
+#: config/tc-cris.c:4236
#, c-format
msgid "internal inconsistency problem: %s called for %d bytes"
-msgstr "problema de inconsistencia interna: se llamó %s por %d bytes"
+msgstr "problema de inconsistencia interna: se llamó a %s para %d bytes"
-#: config/tc-cris.c:4390
+#: config/tc-cris.c:4388
msgid "unknown operand to .arch"
msgstr "operando desconocido para .arch"
-#: config/tc-cris.c:4399
+#: config/tc-cris.c:4397
msgid ".arch <arch> requires a matching --march=... option"
-msgstr ".arch <arq> requiere una coincidencia --march=... opcional"
+msgstr ".arch <arq> requiere una coincidencia --march=... opción"
#: config/tc-crx.c:708 config/tc-crx.c:728 config/tc-crx.c:743
#, c-format
msgid "Illegal register `%s' in instruction `%s'"
-msgstr "Registro ilegítimo «%s» en instrucción «%s»"
+msgstr "Registro ilegal «%s» en la instrucción «%s»"
#: config/tc-crx.c:771
#, c-format
@@ -6866,46 +6841,46 @@ msgstr "Escala ilegal - '%d'"
#: config/tc-crx.c:1086
#, c-format
msgid "Illegal register (`%s') in instruction: `%s'"
-msgstr "Registro ilegítimo («%s») en instrucción: «%s»"
+msgstr "Registro ilegal («%s») en instrucción: «%s»"
#: config/tc-crx.c:1215
#, c-format
msgid "Illegal co-processor register in instruction `%s'"
-msgstr "Registro coprocesador ilegal en Instrucción `%s'"
+msgstr "Registro del coprocesador ilegal en la instrucción `%s'"
#: config/tc-crx.c:1222
#, c-format
msgid "Illegal co-processor special register in instruction `%s'"
-msgstr "Registro especial de coprocesador ilegal en la Instrucción «%s»"
+msgstr "Registro especial del coprocesador ilegal en la instrucción «%s»"
#: config/tc-crx.c:1542
#, c-format
msgid "Invalid DISPU4 operand value (arg %d)"
-msgstr "Valor de operando DISPU4 inválido (arg %d)"
+msgstr "Valor del operando de DISPU4 inválido (arg %d)"
#: config/tc-crx.c:1546
#, c-format
msgid "Invalid CST4 operand value (arg %d)"
-msgstr "Valor de operando CST4 inválido (arg %d)"
+msgstr "Valor de operando de CST4 inválido (arg %d)"
#: config/tc-crx.c:1549
#, c-format
msgid "Operand value is not within upper 64 KB (arg %d)"
-msgstr "El valor de operando no está en los 64 KB superiores (arg %d)"
+msgstr "El valor del operando no está en los 64 KB superiores (arg %d)"
#: config/tc-crx.c:1683
msgid "Invalid register in register list"
-msgstr "Registrador inválido en listado de registro"
+msgstr "Registro inválido en lista de registros"
#: config/tc-crx.c:1737
#, c-format
msgid "Illegal register `%s' in cop-register list"
-msgstr "Registro ilegal «%s» en la lista de registros de coprocesador"
+msgstr "Registro ilegal «%s» en la lista de registros del coprocesador"
#: config/tc-crx.c:1745
#, c-format
msgid "Illegal register `%s' in cop-special-register list"
-msgstr "Registro ilegal «%s» en la lista especial de registros de coprocesador"
+msgstr "Registro ilegal «%s» en la lista de registros especiales del coprocesador"
#: config/tc-crx.c:1764
#, c-format
@@ -6920,7 +6895,7 @@ msgstr "Registro ilegal «%s» en la lista de registros"
#: config/tc-crx.c:1789
#, c-format
msgid "Maximum %d bits may be set in `mask16' operand"
-msgstr "Se pueden establecer %d bits `mask16' como máximo en operando"
+msgstr "Se pueden poner %d bits como máximo en el operando `mask16'"
#: config/tc-crx.c:1798
#, c-format
@@ -6943,282 +6918,262 @@ msgstr "Los registros HI/LO se deben especificar sin registros adicionales"
#. Variable not in small data read only segment accessed
#. using small data read only anchor.
-#: config/tc-csky.c:1149 config/tc-mcore.c:1927 config/tc-microblaze.c:2054
-#: config/tc-microblaze.c:2358 config/tc-microblaze.c:2381
+#: config/tc-csky.c:1173 config/tc-mcore.c:1927 config/tc-microblaze.c:2039
+#: config/tc-microblaze.c:2341 config/tc-microblaze.c:2364
msgid "unknown"
msgstr "desconocido"
-#: config/tc-csky.c:1151
-#, fuzzy, c-format
-#| msgid "pcrel for branch to %s too far (0x%lx)"
+#: config/tc-csky.c:1175
+#, c-format
msgid "pcrel offset for branch to %s too far (0x%lx)"
-msgstr "el pcrel para ramificar a %s muy lejos (0x%lx)"
+msgstr "desplazamiento pcrel para bifurcación a %s demasiado lejos (0x%lx)"
-#: config/tc-csky.c:1235
-#, fuzzy, c-format
-#| msgid "unknown architecture `%s'\n"
-msgid "unknown architecture `%s'"
-msgstr "desconoce arquitectura «%s» \n"
+#: config/tc-csky.c:1288
+#, c-format
+msgid "unknown floating point abi `%s'\n"
+msgstr "abi de coma flotante «%s» desconocida\n"
-#: config/tc-csky.c:1408
-#, fuzzy, c-format
-#| msgid "wasm32 assembler options:\n"
+#: config/tc-csky.c:1432
+#, c-format
msgid "C-SKY assembler options:\n"
-msgstr "opciones ensamblador wasm32:\n"
+msgstr "opciones de ensamblador C-SKY:\n"
-#: config/tc-csky.c:1410
-#, fuzzy, c-format
-#| msgid " -march=ARCH enable instructions from architecture ARCH\n"
+#: config/tc-csky.c:1434
+#, c-format
msgid " -march=ARCH\t\t\tselect architecture ARCH:"
-msgstr " -march=ARQ permite instrucciones para la arquitectura ARQ\n"
+msgstr " -march=ARQ\t\t\tselecciona la arquitectura ARQ:"
-#: config/tc-csky.c:1429
+#: config/tc-csky.c:1453
#, c-format
msgid " -mcpu=CPU\t\t\tselect processor CPU:"
-msgstr ""
+msgstr " -mcpu=CPU\t\t\tselecciona la CPU del procesador:"
-#: config/tc-csky.c:1456
+#: config/tc-csky.c:1480
#, c-format
msgid " -mfloat-abi=ABI\t\tselect float ABI:"
-msgstr ""
+msgstr " -mfloat-abi=ABI\t\tselecciona la ABI de coma flotante:"
-#: config/tc-csky.c:1475
-#, fuzzy, c-format
-#| msgid " -mlittle-endian generate little-endian code\n"
+#: config/tc-csky.c:1499
+#, c-format
msgid " -EL -mlittle-endian\t\tgenerate little-endian output\n"
-msgstr " -mlittle-endian genera código little-endian\n"
+msgstr " -EL -mlittle-endian\t\tgenera salida «little endian»\n"
-#: config/tc-csky.c:1477
-#, fuzzy, c-format
-#| msgid " -mbig-endian generate big-endian code\n"
+#: config/tc-csky.c:1501
+#, c-format
msgid " -EB -mbig-endian\t\tgenerate big-endian output\n"
-msgstr " -mbig-endian genera código big-endian\n"
+msgstr " -EB -mbig-endian\t\tgenera salida «big endian»\n"
-#: config/tc-csky.c:1479
-#, fuzzy, c-format
-#| msgid " --pic\t\t\tEnable generation of position-independent code.\n"
+#: config/tc-csky.c:1503
+#, c-format
msgid " -fpic -pic\t\t\tgenerate position-independent code\n"
-msgstr " --pic\t\t\tActiva la generación de código independiente de posición.\n"
+msgstr " -fpic -pic\t\t\tgenera código independiente de posición\n"
-#: config/tc-csky.c:1482
+#: config/tc-csky.c:1506
#, c-format
msgid " -mljump\t\t\ttransform jbf, jbt, jbr to jmpi (CK800 only)\n"
-msgstr ""
+msgstr " -mljump\t\t\ttransforma jbf, jbt, jbr en jmpi (solamente CK800)\n"
-#: config/tc-csky.c:1484
+#: config/tc-csky.c:1508
#, c-format
msgid " -mno-ljump\n"
-msgstr ""
+msgstr " -mno-ljump\n"
-#: config/tc-csky.c:1488
+#: config/tc-csky.c:1512
#, c-format
msgid " -mbranch-stub\t\t\tenable branch stubs for PC-relative calls\n"
-msgstr ""
+msgstr " -mbranch-stub\t\t\tactiva «stubs» de bifurcación para llamadas relativas a PC\n"
-#: config/tc-csky.c:1490
+#: config/tc-csky.c:1514
#, c-format
msgid " -mno-branch-stub\n"
-msgstr ""
+msgstr " -mno-branch-stub\n"
-#: config/tc-csky.c:1494
+#: config/tc-csky.c:1518
#, c-format
msgid " -force2bsr -mforce2bsr\ttransform jbsr to bsr\n"
-msgstr ""
+msgstr " -force2bsr -mforce2bsr\ttransforma jbsr en bsr\n"
-#: config/tc-csky.c:1496
+#: config/tc-csky.c:1520
#, c-format
msgid " -no-force2bsr -mno-force2bsr\n"
-msgstr ""
+msgstr " -no-force2bsr -mno-force2bsr\n"
-#: config/tc-csky.c:1498
+#: config/tc-csky.c:1522
#, c-format
msgid " -jsri2bsr -mjsri2bsr\t\ttransform jsri to bsr\n"
-msgstr ""
+msgstr " -jsri2bsr -mjsri2bsr\t\ttransforma jsri en bsr\n"
-#: config/tc-csky.c:1500
+#: config/tc-csky.c:1524
#, c-format
msgid " -no-jsri2bsr -mno-jsri2bsr\n"
-msgstr ""
+msgstr " -no-jsri2bsr -mno-jsri2bsr\n"
-#: config/tc-csky.c:1503
+#: config/tc-csky.c:1527
#, c-format
msgid " -mnolrw -mno-lrw\t\timplement lrw as movih + ori\n"
-msgstr ""
+msgstr " -mnolrw -mno-lrw\t\timplementa lrw como movih + ori\n"
-#: config/tc-csky.c:1505
+#: config/tc-csky.c:1529
#, c-format
msgid " -melrw\t\t\tenable extended lrw (CK800 only)\n"
-msgstr ""
+msgstr " -melrw\t\t\tactiva lrw extendida (solamente CK800)\n"
-#: config/tc-csky.c:1507
+#: config/tc-csky.c:1531
#, c-format
msgid " -mno-elrw\n"
-msgstr ""
+msgstr " -mno-elrw\n"
-#: config/tc-csky.c:1510
+#: config/tc-csky.c:1534
#, c-format
msgid " -mlaf -mliterals-after-func\temit literals after each function\n"
-msgstr ""
+msgstr " -mlaf -mliterals-after-func\temite literales después de cada función\n"
-#: config/tc-csky.c:1512
+#: config/tc-csky.c:1536
#, c-format
msgid " -mno-laf -mno-literals-after-func\n"
-msgstr ""
+msgstr " -mno-laf -mno-literals-after-func\n"
-#: config/tc-csky.c:1514
+#: config/tc-csky.c:1538
#, c-format
msgid " -mlabr -mliterals-after-br\temit literals after branch instructions\n"
-msgstr ""
+msgstr " -mlabr -mliterals-after-br\temite literales después de las instrucciones de bifurcación\n"
-#: config/tc-csky.c:1516
+#: config/tc-csky.c:1540
#, c-format
msgid " -mno-labr -mnoliterals-after-br\n"
-msgstr ""
+msgstr " -mno-labr -mnoliterals-after-br\n"
-#: config/tc-csky.c:1519
+#: config/tc-csky.c:1543
#, c-format
msgid " -mistack\t\t\tenable interrupt stack instructions\n"
-msgstr ""
+msgstr " -mistack\t\t\tactiva instrucciones de la pila de interrupciones\n"
-#: config/tc-csky.c:1521
+#: config/tc-csky.c:1545
#, c-format
msgid " -mno-istack\n"
-msgstr ""
+msgstr " -mno-istack\n"
-#: config/tc-csky.c:1524
-#, fuzzy, c-format
-#| msgid " -mno-stld23\t\t disable st/ld offset23 instruction\n"
+#: config/tc-csky.c:1548
+#, c-format
msgid " -mhard-float\t\t\tenable hard float instructions\n"
-msgstr " -mno-stld23\t\t desactiva la instrucción desplazamiento st/ld offset23\n"
+msgstr " -mhard-float\t\t\tactiva las instrucciones de coma flotante hardware\n"
-#: config/tc-csky.c:1526
+#: config/tc-csky.c:1550
#, c-format
msgid " -mmp\t\t\t\tenable multiprocessor instructions\n"
-msgstr ""
+msgstr " -mmp\t\t\t\tactiva las instrucciones de multiprocesador\n"
-#: config/tc-csky.c:1528
-#, fuzzy, c-format
-#| msgid "Illegal co-processor register in instruction `%s'"
+#: config/tc-csky.c:1552
+#, c-format
msgid " -mcp\t\t\t\tenable coprocessor instructions\n"
-msgstr "Registro coprocesador ilegal en Instrucción `%s'"
+msgstr " -mcp\t\t\t\tactiva las instrucciones del coprocesador\n"
-#: config/tc-csky.c:1530
+#: config/tc-csky.c:1554
#, c-format
msgid " -mcache\t\t\tenable cache prefetch instruction\n"
-msgstr ""
+msgstr " -mcache\t\t\tactiva las instrucciones de preadquisición de caché\n"
-#: config/tc-csky.c:1532
-#, fuzzy, c-format
-#| msgid " -mno-stld23\t\t disable st/ld offset23 instruction\n"
+#: config/tc-csky.c:1556
+#, c-format
msgid " -msecurity\t\t\tenable security instructions\n"
-msgstr " -mno-stld23\t\t desactiva la instrucción desplazamiento st/ld offset23\n"
+msgstr " -msecurity\t\t\tactiva las instrucciones de seguridad\n"
-#: config/tc-csky.c:1534
-#, fuzzy, c-format
-#| msgid " -mno-stld23\t\t disable st/ld offset23 instruction\n"
+#: config/tc-csky.c:1558
+#, c-format
msgid " -mtrust\t\t\tenable trust instructions\n"
-msgstr " -mno-stld23\t\t desactiva la instrucción desplazamiento st/ld offset23\n"
+msgstr " -mtrust\t\t\tactiva las instrucciones de confianza\n"
-#: config/tc-csky.c:1536
+#: config/tc-csky.c:1560
#, c-format
msgid " -mdsp\t\t\t\tenable DSP instructions\n"
-msgstr ""
+msgstr " -mdsp\t\t\t\tactiva las instrucciones de DSP\n"
-#: config/tc-csky.c:1538
+#: config/tc-csky.c:1562
#, c-format
msgid " -medsp\t\t\tenable enhanced DSP instructions\n"
-msgstr ""
+msgstr " -medsp\t\t\t\tactiva las instrucciones de DSP mejoradas\n"
-#: config/tc-csky.c:1540
-#, fuzzy, c-format
-#| msgid "unable to widen instruction"
+#: config/tc-csky.c:1564
+#, c-format
msgid " -mvdsp\t\t\tenable vector DSP instructions\n"
-msgstr "incapaz de extender instrucción"
+msgstr " -mvdsp\t\t\t\tactiva las instrucciones de DSP vectoriales\n"
-#: config/tc-csky.c:1773
+#: config/tc-csky.c:1797
msgid "C-SKY ABI v1 (ck510/ck610) does not support -mbranch-stub"
-msgstr ""
+msgstr "C-SKY ABI v1 (ck510/ck610) no dispone de -mbranch-stub"
-#: config/tc-csky.c:1778
+#: config/tc-csky.c:1802
msgid "-mno-force2bsr is ignored with -mbranch-stub"
-msgstr ""
+msgstr "-mno-force2bsr se descarta con -mbranch-stub"
-#: config/tc-csky.c:1786
+#: config/tc-csky.c:1810
msgid "-mno-force2bsr is ignored for ck801/ck802"
-msgstr ""
+msgstr "-mno-force2bsr se descarta con ck801/ck802"
-#: config/tc-csky.c:1813
+#: config/tc-csky.c:1837
msgid "-mljump is ignored for ck801/ck802"
-msgstr ""
+msgstr "-mljump se descarta con ck801/ck802"
-#: config/tc-csky.c:2095 config/tc-mcore.c:689
+#: config/tc-csky.c:2119 config/tc-mcore.c:689
msgid "more than 65K literal pools"
msgstr "más de 65K de conjuntos literales"
-#: config/tc-csky.c:2342 read.c:3786
+#: config/tc-csky.c:2366 read.c:3839
#, c-format
msgid "bad floating literal: %s"
-msgstr "literal de coma flotante incorrecta: %s"
+msgstr "literal de coma flotante incorrecto: %s"
-#: config/tc-csky.c:2490 config/tc-mcore.c:743
+#: config/tc-csky.c:2514 config/tc-mcore.c:743
msgid "missing ']'"
-msgstr "ausente ']'"
+msgstr "falta ']'"
-#: config/tc-csky.c:2518 config/tc-mips.c:14358 config/tc-mips.c:14422
-#: config/tc-mips.c:14433 config/tc-score.c:2688 config/tc-score.c:2735
+#: config/tc-csky.c:2542 config/tc-mips.c:14364 config/tc-mips.c:14418
+#: config/tc-mips.c:14432 config/tc-score.c:2686 config/tc-score.c:2732
msgid "unrecognized opcode"
-msgstr "no reconocido código de operación"
+msgstr "código de operación no reconocido"
-#: config/tc-csky.c:3653 config/tc-mcore.c:1164
+#: config/tc-csky.c:3673 config/tc-mcore.c:1164
msgid "translating mgeni to movi"
-msgstr "se traslada ‘mgeni’ a ‘movi’"
+msgstr "se traduce mgeni como movi"
-#: config/tc-csky.c:5301 config/tc-tilegx.c:1451 config/tc-tilepro.c:1310
+#: config/tc-csky.c:5319 config/tc-tilegx.c:1443 config/tc-tilepro.c:1306
#, c-format
msgid "unsupported BFD relocation size %d"
msgstr "no se admite el tamaño de reubicación BFD %d"
-#: config/tc-csky.c:5924
-#, fuzzy
-#| msgid "second operand must be 1"
+#: config/tc-csky.c:5942
msgid "second operand must be 4"
-msgstr "el segundo operando debe ser 1"
+msgstr "el segundo operando debe ser 4"
-#: config/tc-csky.c:5948 config/tc-mcore.c:1527
+#: config/tc-csky.c:5966 config/tc-mcore.c:1527
msgid "second operand must be 1"
msgstr "el segundo operando debe ser 1"
-#: config/tc-csky.c:6021 config/tc-xtensa.c:1988
+#: config/tc-csky.c:6039 config/tc-xtensa.c:1989
msgid "register number out of range"
msgstr "número de registro fuera de rango"
-#: config/tc-csky.c:6031
-#, fuzzy
-#| msgid "first transfer register must be even"
+#: config/tc-csky.c:6049
msgid "64-bit operator src/dst register must be less than 15"
-msgstr "primer registro de transferencia debe ser par"
+msgstr "el registro src/dst del operador de 64 bits tiene que ser menor que 15"
-#: config/tc-csky.c:7858
-#, fuzzy
-#| msgid "the first operand of `%s' must be `%s%s'"
+#: config/tc-csky.c:7871
msgid "the first operand must be a symbol"
-msgstr "el primer operando de `%s' debe ser `%s%s'"
+msgstr "el primer operando tiene que ser un símbolo"
-#: config/tc-csky.c:7867
-#, fuzzy
-#| msgid "missing size"
+#: config/tc-csky.c:7880
msgid "missing stack size"
-msgstr "ausente el tamaño"
+msgstr "falta el tamaño de la pila"
-#: config/tc-csky.c:7880 config/tc-score.c:4240
+#: config/tc-csky.c:7893 config/tc-score.c:4237
msgid "value not in range [0, 0xffffffff]"
msgstr "el valor no está en el rango [0, 0xffffffff]"
-#: config/tc-csky.c:7890 config/tc-mcore.c:782
+#: config/tc-csky.c:7903 config/tc-mcore.c:782
msgid "operand must be a constant"
-msgstr "operando debe ser una constante"
+msgstr "el operando debe ser una constante"
-#: config/tc-d10v.c:216
+#: config/tc-d10v.c:215
#, c-format
msgid ""
"D10V options:\n"
@@ -7230,135 +7185,135 @@ msgid ""
msgstr ""
"Opciones D10V:\n"
"-O Optimiza. Hará algunas operaciones en paralelo.\n"
-"--gstabs-packing Empaqueta instrucciones pares adyacentes cortas juntas\n"
-" cuando se especifique --gstabs. Activado por defecto.\n"
+"--gstabs-packing Empaqueta juntas las instrucciones cortas adyacentes\n"
+" incluso cuando se especifica --gstabs. Activado\n"
+" por defecto.\n"
"--no-gstabs-packing Si se especifica --gstabs, no empaqueta juntas\n"
" las instrucciones adjacentes.\n"
-#: config/tc-d10v.c:573
+#: config/tc-d10v.c:572
msgid "operand is not an immediate"
-msgstr "operando no es un inmediato"
+msgstr "el operando no es un inmediato"
-#: config/tc-d10v.c:590
+#: config/tc-d10v.c:589
#, c-format
msgid "operand out of range: %lu"
msgstr "operando fuera de rango: %lu"
-#: config/tc-d10v.c:650
+#: config/tc-d10v.c:649
msgid "Instruction must be executed in parallel with another instruction."
msgstr "La instrucción se debe ejecutar en paralelo con otra instrucción."
-#: config/tc-d10v.c:704 config/tc-d10v.c:712
+#: config/tc-d10v.c:703 config/tc-d10v.c:711
#, c-format
msgid "packing conflict: %s must dispatch sequentially"
msgstr "conflicto de empaquetado: %s debe despachar secuencialmente"
-#: config/tc-d10v.c:811
+#: config/tc-d10v.c:810
#, c-format
msgid "resource conflict (R%d)"
-msgstr "conflicto de recurso (R%d)"
+msgstr "conflicto de recursos (R%d)"
-#: config/tc-d10v.c:814
+#: config/tc-d10v.c:813
#, c-format
msgid "resource conflict (A%d)"
-msgstr "conflicto de recurso (A%d)"
+msgstr "conflicto de recursos (A%d)"
-#: config/tc-d10v.c:816
+#: config/tc-d10v.c:815
msgid "resource conflict (PSW)"
-msgstr "conflicto de recurso (PSW)"
+msgstr "conflicto de recursos (PSW)"
-#: config/tc-d10v.c:818
+#: config/tc-d10v.c:817
msgid "resource conflict (C flag)"
-msgstr "conflicto de recurso (opción C)"
+msgstr "conflicto de recursos (opción C)"
-#: config/tc-d10v.c:820
+#: config/tc-d10v.c:819
msgid "resource conflict (F flag)"
-msgstr "conflicto de recurso (opción F)"
+msgstr "conflicto de recursos (opción F)"
-#: config/tc-d10v.c:970
+#: config/tc-d10v.c:969
msgid "Instruction must be executed in parallel"
msgstr "La instrucción se debe ejecutar en paralelo"
-#: config/tc-d10v.c:973
+#: config/tc-d10v.c:972
msgid "Long instructions may not be combined."
-msgstr "Las instrucciones long no se pueden combinar."
+msgstr "Las instrucciones largas no se pueden combinar."
-#: config/tc-d10v.c:1006
+#: config/tc-d10v.c:1005
msgid "One of these instructions may not be executed in parallel."
msgstr "Una de estas instrucciones no se puede ejecutar en paralelo."
-#: config/tc-d10v.c:1010 config/tc-d30v.c:1034
+#: config/tc-d10v.c:1009 config/tc-d30v.c:1034
msgid "Two IU instructions may not be executed in parallel"
msgstr "Dos instrucciones IU no se pueden ejecutar en paralelo"
-#: config/tc-d10v.c:1012 config/tc-d10v.c:1020 config/tc-d10v.c:1034
-#: config/tc-d10v.c:1049 config/tc-d30v.c:1035 config/tc-d30v.c:1044
+#: config/tc-d10v.c:1011 config/tc-d10v.c:1019 config/tc-d10v.c:1033
+#: config/tc-d10v.c:1048 config/tc-d30v.c:1035 config/tc-d30v.c:1044
msgid "Swapping instruction order"
msgstr "Se intercambia el orden de la instrucción"
-#: config/tc-d10v.c:1018 config/tc-d30v.c:1041
+#: config/tc-d10v.c:1017 config/tc-d30v.c:1041
msgid "Two MU instructions may not be executed in parallel"
msgstr "Dos instrucciones MU no se pueden ejecutar en paralelo"
-#: config/tc-d10v.c:1038 config/tc-d30v.c:1061
+#: config/tc-d10v.c:1037 config/tc-d30v.c:1061
msgid "IU instruction may not be in the left container"
msgstr "Una instrucción IU no puede estar en el contenedor izquierdo"
# Parece que R es 'right' y L es 'left'. Revisar el código para comprobar
# y mejorar esta traducción. cfuga
-#: config/tc-d10v.c:1040 config/tc-d10v.c:1055
+#: config/tc-d10v.c:1039 config/tc-d10v.c:1054
msgid "Instruction in R container is squashed by flow control instruction in L container."
msgstr "La instrucción en el contenedor R es aplastada por la instrucción de control de flujo en el contenedor L."
-#: config/tc-d10v.c:1053 config/tc-d30v.c:1072
+#: config/tc-d10v.c:1052 config/tc-d30v.c:1072
msgid "MU instruction may not be in the right container"
msgstr "Una instrucción MU no puede estar en el contenedor derecho"
-#: config/tc-d10v.c:1059 config/tc-d30v.c:1084
+#: config/tc-d10v.c:1058 config/tc-d30v.c:1084
msgid "unknown execution type passed to write_2_short()"
msgstr "se pasó un tipo de ejecución desconocido a write_2_short()"
-#: config/tc-d10v.c:1188 config/tc-d10v.c:1361
+#: config/tc-d10v.c:1187 config/tc-d10v.c:1360
msgid "bad opcode or operands"
msgstr "código de operación u operandos incorrectos"
-#: config/tc-d10v.c:1263
+#: config/tc-d10v.c:1262
msgid "value out of range"
msgstr "valor fuera de rango"
-#: config/tc-d10v.c:1337
+#: config/tc-d10v.c:1336
msgid "illegal operand - register name found where none expected"
msgstr "operando ilegal - se encontró un nombre de registro donde no se esperaba ninguno"
-#: config/tc-d10v.c:1372
+#: config/tc-d10v.c:1371
msgid "Register number must be EVEN"
msgstr "El número de registro debe ser PAR"
-#: config/tc-d10v.c:1375
+#: config/tc-d10v.c:1374
msgid "Unsupported use of sp"
msgstr "No se admite el uso de sp"
-#: config/tc-d10v.c:1394
-#, fuzzy, c-format
-#| msgid "cr%ld is a reserved control register"
+#: config/tc-d10v.c:1393
+#, c-format
msgid "cr%d is a reserved control register"
-msgstr "cr%ld es un registro de control reservado"
+msgstr "cr%d es un registro de control reservado"
-#: config/tc-d10v.c:1569
+#: config/tc-d10v.c:1568
#, c-format
msgid "line %d: rep or repi must include at least 4 instructions"
msgstr "línea %d: rep o repi debe incluir por lo menos 4 instrucciones"
-#: config/tc-d10v.c:1761
+#: config/tc-d10v.c:1760
msgid "can't find previous opcode "
msgstr "no se puede encontrar el código de operación previo "
-#: config/tc-d10v.c:1773
+#: config/tc-d10v.c:1772
#, c-format
msgid "could not assemble: %s"
msgstr "no se puede ensamblar: %s"
-#: config/tc-d10v.c:1788 config/tc-d10v.c:1810 config/tc-d30v.c:1741
+#: config/tc-d10v.c:1787 config/tc-d10v.c:1809 config/tc-d30v.c:1741
msgid "Unable to mix instructions as specified"
msgstr "No se pueden mezclar las instrucciones como se especificó"
@@ -7380,19 +7335,19 @@ msgid ""
msgstr ""
"\n"
"Opciones D30V:\n"
-"-O Crea instrucciones short adyacentes cortas paralelas si es posible.\n"
+"-O Pone las instrucciones cortas adyacentes en paralelo si es posible.\n"
"-n Avisa sobre todos los NOPs insertados por el ensamblador.\n"
-"-N Avisa sobre los NOPs insertados tras los múltiplos de palabra.\n"
+"-N Avisa sobre los NOPs insertados tras los múltiplos de palabra.\n"
"-c Avisa sobre los símbolos cuyos nombres coincidan con nombres de registros.\n"
"-C Lo opuesto de -C. -c es por defecto.\n"
#: config/tc-d30v.c:364
msgid "unexpected 12-bit reloc type"
-msgstr "tipo reubicado de 12-bit inesperado"
+msgstr "tipo de reubicación de 12 bits inesperado"
#: config/tc-d30v.c:371
msgid "unexpected 18-bit reloc type"
-msgstr "tipo reubicado de 18-bit inesperado"
+msgstr "tipo de reubicación de 18 bits inesperado"
#: config/tc-d30v.c:622
#, c-format
@@ -7429,12 +7384,12 @@ msgstr "la instrucción especial izquierda «%s» mata a la instrucción «%s»
#: config/tc-d30v.c:1074
#, c-format
msgid "Executing %s in reverse serial with %s may not work"
-msgstr "Ejecutar %s en serie reversa con %s podría no funcionar"
+msgstr "Ejecutar %s en serie inversa con %s podría no funcionar"
#: config/tc-d30v.c:1077
#, c-format
msgid "Executing %s in IU in reverse serial may not work"
-msgstr "Ejecutar %s en IU en serie reversa podría no funcionar"
+msgstr "Ejecutar %s en IU en serie inversa podría no funcionar"
#: config/tc-d30v.c:1265
msgid "Odd numbered register used as target of multi-register instruction"
@@ -7443,7 +7398,7 @@ msgstr "Se usan registros numerados impares como objetivo para una instrucción
#: config/tc-d30v.c:1329 config/tc-d30v.c:1365
#, c-format
msgid "unknown condition code: %s"
-msgstr "desconoce código condicional: %s"
+msgstr "código de condición desconocido: %s"
#: config/tc-d30v.c:1358
#, c-format
@@ -7453,12 +7408,12 @@ msgstr "cmpu no admite el código de condición %s"
#: config/tc-d30v.c:1393
#, c-format
msgid "unknown opcode: %s"
-msgstr "desconoce código de operación: %s"
+msgstr "código de operación desconocido: %s"
#: config/tc-d30v.c:1404
#, c-format
msgid "operands for opcode `%s' do not match any valid format"
-msgstr "los operandos para el código de operación «%s» no coincide con ningún formato válido"
+msgstr "los operandos para el código de operación «%s» no coinciden con ningún formato válido"
#: config/tc-d30v.c:1619 config/tc-d30v.c:1636
msgid "Cannot assemble instruction"
@@ -7470,11 +7425,11 @@ msgstr "El primer código de operación es long. No se pueden mezclar las instr
#: config/tc-d30v.c:1691
msgid "word of NOPs added between word multiply and load"
-msgstr "word de NOPs agregados entre multiply de word y load"
+msgstr "palabra de NOPs agregados entre «word multiply» y «load»"
#: config/tc-d30v.c:1693
msgid "word of NOPs added between word multiply and 16-bit multiply"
-msgstr "word de NOPs agregados entre multiply de word y multiply de 16-bit"
+msgstr "palabra de NOPs agregados entre «word multiply» y «16-bit multiply»"
#: config/tc-d30v.c:1725
msgid "Instruction uses long version, so it cannot be mixed as specified"
@@ -7492,11 +7447,11 @@ msgstr "Alineación demasiado grande: se asume %d"
#: config/tc-dlx.c:213
msgid "missing .proc"
-msgstr "ausente .proc"
+msgstr "falta .proc"
#: config/tc-dlx.c:230
msgid ".endfunc missing for previous .proc"
-msgstr "ausente .endfunc para el .proc previo"
+msgstr "falta .endfunc para el .proc previo"
#: config/tc-dlx.c:320
#, c-format
@@ -7511,17 +7466,17 @@ msgstr "Operando incorrecto para una instrucción store <%s>"
#: config/tc-dlx.c:614
#, c-format
msgid "Expression Error for operand modifier %%hi/%%lo\n"
-msgstr "Error de Expresión para el modificador de operando %%hi/%%lo\n"
+msgstr "Error de expresión para el modificador de operando %%hi/%%lo\n"
#: config/tc-dlx.c:627
#, c-format
msgid "Invalid expression after %%%%\n"
-msgstr "Expresión no válida tras %%%%\n"
+msgstr "Expresión no válida después de %%%%\n"
-#: config/tc-dlx.c:692 config/tc-tic4x.c:2456
+#: config/tc-dlx.c:692 config/tc-tic4x.c:2452
#, c-format
msgid "Unknown opcode `%s'."
-msgstr "Desconoce código de operación «%s»."
+msgstr "Código de operación desconocido «%s»."
#: config/tc-dlx.c:701
msgid "Can not set dlx_skip_hi16_flag"
@@ -7530,7 +7485,7 @@ msgstr "No se puede establecer dlx_skip_hi16_flag"
#: config/tc-dlx.c:715
#, c-format
msgid "Missing arguments for opcode <%s>."
-msgstr "Ausentes argumentos para el código de operación <%s>."
+msgstr "Faltan los argumentos para el código de operación <%s>."
#: config/tc-dlx.c:749
#, c-format
@@ -7544,7 +7499,7 @@ msgstr "Tanto the_insn.HI como the_insn.LO están activados: %s"
#: config/tc-dlx.c:857
msgid "failed regnum sanity check."
-msgstr "inspección sanitaria de regnum ha fallado."
+msgstr "la inspección sanitaria de regnum ha fallado."
#: config/tc-dlx.c:870
msgid "failed general register sanity check."
@@ -7562,41 +7517,41 @@ msgstr "etiqueta \"$%d\" redefinida"
#: config/tc-dlx.c:1135
msgid "Invalid expression after # number\n"
-msgstr "Expresión no válida tras # número\n"
+msgstr "Expresión no válida después de # número\n"
-#: config/tc-dlx.c:1180 config/tc-m32r.c:2273 config/tc-nds32.c:7840
-#: config/tc-sparc.c:4015
+#: config/tc-dlx.c:1180 config/tc-m32r.c:2272 config/tc-nds32.c:7832
+#: config/tc-sparc.c:4021
#, c-format
msgid "internal error: can't export reloc type %d (`%s')"
-msgstr "error interno: no se puede exportar el tipo reubicado %d («%s»)"
+msgstr "error interno: no se puede exportar el tipo de reubicación %d («%s»)"
#: config/tc-epiphany.c:126
#, c-format
msgid "EPIPHANY specific command line options:\n"
msgstr "Opciones de la línea de mandatos específicas de EPIPHANY:\n"
-#: config/tc-epiphany.c:367
+#: config/tc-epiphany.c:363
msgid "register number too large for push/pop"
msgstr "número de registro demasiado grande para push/pop"
-#: config/tc-epiphany.c:371
+#: config/tc-epiphany.c:367
msgid "register is out of order"
msgstr "el registro está fuera de orden"
-#: config/tc-epiphany.c:385
+#: config/tc-epiphany.c:381
msgid "malformed reglist in push/pop"
msgstr "lista de registros malformada en push/pop"
#. Checks for behavioral restrictions on LD/ST instructions.
-#: config/tc-epiphany.c:431
+#: config/tc-epiphany.c:427
msgid "destination register modified by displacement-post-modified address"
-msgstr "el registro de destino se modificó por la dirección de desplazamiento-post-modificada"
+msgstr "registro de destino modificado por la dirección de desplazamiento-post-modificada"
-#: config/tc-epiphany.c:432
+#: config/tc-epiphany.c:428
msgid "ldrd/strd requires even:odd register pair"
msgstr "ldrd/strd requiere un par de registros par:impar"
-#: config/tc-epiphany.c:820 config/tc-m32r.c:1785
+#: config/tc-epiphany.c:816 config/tc-m32r.c:1784
msgid "Addend to unresolved symbol not on word boundary."
msgstr "La adición para un símbolo sin resolver no está en un límite de word."
@@ -7613,12 +7568,12 @@ msgstr "No se permite la instrucción %s en una ranura de retardo."
#: config/tc-frv.c:403
#, c-format
msgid "Unknown cpu -mcpu=%s"
-msgstr "Desconoce cpu -mcpu=%s"
+msgstr "cpu desconocida -mcpu=%s"
#: config/tc-frv.c:456
#, c-format
msgid "FRV specific command line options:\n"
-msgstr "Opciones de línea de mandatos específicas de FVR:\n"
+msgstr "Opciones de línea de mandatos específicas de FRV:\n"
#: config/tc-frv.c:457
#, c-format
@@ -7628,7 +7583,7 @@ msgstr "-G n Coloca datos ≤ n bytes en el área de datos small\n"
#: config/tc-frv.c:458
#, c-format
msgid "-mgpr-32 Mark generated file as only using 32 GPRs\n"
-msgstr "-mgpr-32 Marca el fichero generado para solo usar 32 GPRs\n"
+msgstr "-mgpr-32 Marca el fichero generado para usar solo 32 GPRs\n"
#: config/tc-frv.c:459
#, c-format
@@ -7638,7 +7593,7 @@ msgstr "-mgpr-64 Marca el fichero generado para usar todos los 64 GPRs\n"
#: config/tc-frv.c:460
#, c-format
msgid "-mfpr-32 Mark generated file as only using 32 FPRs\n"
-msgstr "-mfpr-32 Marca el fichero generado para solo usar 32 FPRs\n"
+msgstr "-mfpr-32 Marca el fichero generado para usar solo 32 FPRs\n"
#: config/tc-frv.c:461
#, c-format
@@ -7648,12 +7603,12 @@ msgstr "-mfpr-64 Marca el fichero generado para usar todos los 64 FPRs\n"
#: config/tc-frv.c:462
#, c-format
msgid "-msoft-float Mark generated file as using software FP\n"
-msgstr "-msoft-float Marca el fichero generado para usar FP de software\n"
+msgstr "-msoft-float Marca el fichero generado para usar FP software\n"
#: config/tc-frv.c:463
#, c-format
msgid "-mdword Mark generated file as using a 8-byte stack alignment\n"
-msgstr "-mdword Marca el fichero generado para usar alineamiento de pila de 8-bytes\n"
+msgstr "-mdword Marca el fichero generado para usar alineamiento de pila de 8 bytes\n"
#: config/tc-frv.c:464
#, c-format
@@ -7698,7 +7653,7 @@ msgstr "-mPIC Marca el fichero generado para usar código independient
#: config/tc-frv.c:472
#, c-format
msgid "-mlibrary-pic Mark generated file as using position independent code for libraries\n"
-msgstr "-mlibrary-pic Marca el fichero generado como usando posición de código independiente para bibliotecas\n"
+msgstr "-mlibrary-pic Marca el fichero generado para usar posición de código independiente para bibliotecas\n"
#: config/tc-frv.c:473
#, c-format
@@ -7756,42 +7711,42 @@ msgstr "se espera un registro"
msgid "illegal register number"
msgstr "número de registro ilegal"
-#: config/tc-ft32.c:239 config/tc-moxie.c:186 config/tc-pj.c:260
+#: config/tc-ft32.c:238 config/tc-moxie.c:186 config/tc-pj.c:260
#, c-format
msgid "unknown opcode %s"
-msgstr "desconoce código de operación %s"
+msgstr "código de operación desconocido %s"
-#: config/tc-ft32.c:264
+#: config/tc-ft32.c:263
#, c-format
msgid "unknown width specifier '.%c'"
-msgstr "especificador desconocida de anchura `%c'"
+msgstr "especificador de anchura desconocido `%c'"
-#: config/tc-ft32.c:387
+#: config/tc-ft32.c:386
msgid "internal error in argument parsing"
-msgstr "error interno en interpretación argumental"
+msgstr "error interno en interpretación de argumento"
-#: config/tc-ft32.c:400
+#: config/tc-ft32.c:399
msgid "expected comma separator"
-msgstr "esperaba separador de coma"
+msgstr "se esperaba separador de coma"
-#: config/tc-ft32.c:412 config/tc-moxie.c:230 config/tc-moxie.c:290
+#: config/tc-ft32.c:411 config/tc-moxie.c:230 config/tc-moxie.c:290
#: config/tc-moxie.c:302 config/tc-moxie.c:335 config/tc-moxie.c:367
-#: config/tc-moxie.c:400 config/tc-moxie.c:454 config/tc-moxie.c:508
-#: config/tc-moxie.c:518 config/tc-moxie.c:541 config/tc-moxie.c:554
+#: config/tc-moxie.c:400 config/tc-moxie.c:454 config/tc-moxie.c:505
+#: config/tc-moxie.c:515 config/tc-moxie.c:538 config/tc-moxie.c:551
#: config/tc-pj.c:308
msgid "extra stuff on line ignored"
msgstr "se descarta los elementos extra en la línea"
-#: config/tc-ft32.c:472 config/tc-lm32.c:236 config/tc-moxie.c:585
+#: config/tc-ft32.c:471 config/tc-lm32.c:236 config/tc-moxie.c:582
msgid "bad call to md_atof"
msgstr "llamada incorrecta a md_atof"
-#: config/tc-ft32.c:522
+#: config/tc-ft32.c:521
#, c-format
msgid "FT32 options:\n"
msgstr "Opciones FT32:\n"
-#: config/tc-ft32.c:523
+#: config/tc-ft32.c:522
#, c-format
msgid ""
"\n"
@@ -7799,7 +7754,7 @@ msgid ""
"\t\t\t\n"
msgstr ""
"\n"
-"-no-relax\t\tno relajar reubicaciones\n"
+"-no-relax\t\tno relaja las reubicaciones\n"
"\t\t\t\n"
#. These macros must be defined, but is will be a fatal assembler
@@ -7839,7 +7794,7 @@ msgstr "sufijo inválido tras registro."
#: config/tc-h8300.c:700
msgid "address too high for vector table jmp/jsr"
-msgstr "dirección demasiado alta para distribuciones de vectores jmp/jsr"
+msgstr "dirección demasiado alta para tabla de vectores jmp/jsr"
#: config/tc-h8300.c:727 config/tc-h8300.c:839 config/tc-h8300.c:849
msgid "Wrong size pointer register for architecture."
@@ -7863,17 +7818,17 @@ msgstr "se esperaba un registro"
#: config/tc-h8300.c:1049
msgid "expected closing paren"
-msgstr "se esperaba un paréntesis que cierra"
+msgstr "se esperaba un paréntesis de cierre"
#: config/tc-h8300.c:1108
#, c-format
msgid "can't use high part of register in operand %d"
-msgstr "no se puede usar la parte alta del registro en operando %d"
+msgstr "no se puede usar la parte alta del registro en el operando %d"
#: config/tc-h8300.c:1265
#, c-format
msgid "Opcode `%s' with these operand types not available in %s mode"
-msgstr "El código de operación «%s» con esos tipos de operando no está disponible en el modo %s"
+msgstr "El código de operación «%s» con estos tipos de operando no está disponible en el modo %s"
#: config/tc-h8300.c:1274
msgid "mismatch between opcode size and operand size"
@@ -7891,17 +7846,17 @@ msgstr "No se puede obtener el tamaño de operando.\n"
#: config/tc-h8300.c:1470
#, c-format
msgid "Opcode `%s' with these operand types not available in H8/300 mode"
-msgstr "El código de operación «%s» con esos tipos de operando no están disponibles en el modo H8/300"
+msgstr "El código de operación «%s» con estos tipos de operando no está disponibles en el modo H8/300"
#: config/tc-h8300.c:1475
#, c-format
msgid "Opcode `%s' with these operand types not available in H8/300H mode"
-msgstr "El código de operación «%s» con esos tipos de operando no está disponible en el modo H8/300H"
+msgstr "El código de operación «%s» con estos tipos de operando no está disponible en el modo H8/300H"
#: config/tc-h8300.c:1481
#, c-format
msgid "Opcode `%s' with these operand types not available in H8/300S mode"
-msgstr "El código de operación «%s» con esos tipos de operando no está disponible en el modo H8/300S"
+msgstr "El código de operación «%s» con estos tipos de operando no está disponible en el modo H8/300S"
#: config/tc-h8300.c:1542 config/tc-h8300.c:1562
msgid "Need #1 or #2 here"
@@ -7909,38 +7864,38 @@ msgstr "Necesita Nº1 o Nº2 aquí"
#: config/tc-h8300.c:1557
msgid "#4 not valid on H8/300."
-msgstr "Nº4 no valida en H8/300."
+msgstr "Nº4 no válido en H8/300."
#: config/tc-h8300.c:1664 config/tc-h8300.c:1736
#, c-format
msgid "branch operand has odd offset (%lx)\n"
-msgstr "operando de ramificación tiene un desplazamiento impar (%lx)\n"
+msgstr "el operando de bifurcación tiene un desplazamiento impar (%lx)\n"
#: config/tc-h8300.c:1774
msgid "destination operand must be 16 bit register"
-msgstr "operando de destino debe ser un registro de 16 bit"
+msgstr "el operando de destino debe ser un registro de 16 bits"
#: config/tc-h8300.c:1783
msgid "source operand must be 8 bit register"
-msgstr "operando de origen debe ser un registro de 8 bit"
+msgstr "el operando de origen debe ser un registro de 8 bits"
#: config/tc-h8300.c:1791
msgid "destination operand must be 16bit absolute address"
-msgstr "operando de destino debe ser una dirección absoluta de 16bit"
+msgstr "el operando de destino debe ser una dirección absoluta de 16 bits"
#: config/tc-h8300.c:1798
msgid "destination operand must be 8 bit register"
-msgstr "operando de destino debe ser un registro de 8 bit"
+msgstr "el operando de destino debe ser un registro de 8 bits"
#: config/tc-h8300.c:1806
msgid "source operand must be 16bit absolute address"
-msgstr "operando de origen debe ser una dirección absoluta de 16bit"
+msgstr "el operando de origen debe ser una dirección absoluta de 16 bits"
#. This seems more sane than saying "too many operands". We'll
#. get here only if the trailing trash starts with a comma.
-#: config/tc-h8300.c:1814 config/tc-mips.c:14374 config/tc-mips.c:14442
-#: config/tc-mmix.c:469 config/tc-mmix.c:481 config/tc-mmix.c:2537
-#: config/tc-mmix.c:2561 config/tc-mmix.c:2834
+#: config/tc-h8300.c:1814 config/tc-mips.c:14380 config/tc-mips.c:14441
+#: config/tc-mmix.c:469 config/tc-mmix.c:481 config/tc-mmix.c:2536
+#: config/tc-mmix.c:2560 config/tc-mmix.c:2833
msgid "invalid operands"
msgstr "operandos inválidos"
@@ -7948,66 +7903,66 @@ msgstr "operandos inválidos"
msgid "operand/size mis-match"
msgstr "no coinciden los operandos/tamaños"
-#: config/tc-h8300.c:1945 config/tc-sh.c:2537 config/tc-z8k.c:1243
+#: config/tc-h8300.c:1944 config/tc-sh.c:2538 config/tc-z8k.c:1243
msgid "unknown opcode"
-msgstr "desconoce código de operación"
+msgstr "código de operación desconocido"
-#: config/tc-h8300.c:1978
+#: config/tc-h8300.c:1977
msgid "invalid operand in ldm"
msgstr "operando inválido en ldm"
-#: config/tc-h8300.c:1987
+#: config/tc-h8300.c:1986
msgid "invalid operand in stm"
msgstr "operando inválido en stm"
-#: config/tc-h8300.c:2186
+#: config/tc-h8300.c:2185
#, c-format
msgid "Invalid argument to --mach option: %s"
-msgstr "Argumento inválido para opción --mach: %s"
+msgstr "Argumento inválido para la opción --mach: %s"
-#: config/tc-h8300.c:2197
+#: config/tc-h8300.c:2196
#, c-format
msgid " H8300-specific assembler options:\n"
msgstr " Opciones de ensamblador específicas de H8300:\n"
-#: config/tc-h8300.c:2198
+#: config/tc-h8300.c:2197
#, c-format
msgid ""
" -mach=<name> Set the H8300 machine type to one of:\n"
" h8300h, h8300hn, h8300s, h8300sn, h8300sx, h8300sxn\n"
msgstr ""
-" -mach=<name> Establece el tipo de máquina H8300 a una de:\n"
+" -mach=<nombre> Establece el tipo de máquina H8300 a una de:\n"
" h8300h, h8300hn, h8300s, h8300sn, h8300sx, h8300sxn\n"
-#: config/tc-h8300.c:2201
+#: config/tc-h8300.c:2200
#, c-format
msgid " -h-tick-hex Support H'00 style hex constants\n"
-msgstr " -h-tick-hex admite contantes hex estilo H'00\n"
+msgstr " -h-tick-hex Admite constantes hex estilo H'00\n"
-#: config/tc-h8300.c:2210
+#: config/tc-h8300.c:2209
#, c-format
msgid "call to tc_aout_fix_to_chars \n"
msgstr "llamada a tc_aout_fix_to_chars \n"
-#: config/tc-h8300.c:2219
+#: config/tc-h8300.c:2218
#, c-format
msgid "call to md_convert_frag \n"
msgstr "llamada a md_convert_frag \n"
-#: config/tc-h8300.c:2270
+#: config/tc-h8300.c:2269
#, c-format
msgid "call to md_estimate_size_before_relax \n"
msgstr "llamada a md_estimate_size_before_relax \n"
-#: config/tc-h8300.c:2285
+#: config/tc-h8300.c:2284
msgid "Unexpected reference to a symbol in a non-code section"
msgstr "Referencia inesperada a un símbolo en una sección que no es de código"
-#: config/tc-h8300.c:2322 config/tc-mcore.c:2208 config/tc-microblaze.c:2552
-#: config/tc-pj.c:488 config/tc-sh.c:3886 config/tc-tic6x.c:4515
+#: config/tc-h8300.c:2321 config/tc-mcore.c:2208 config/tc-microblaze.c:2535
+#: config/tc-pj.c:488 config/tc-sh.c:3882 config/tc-tic6x.c:4514
#, c-format
msgid "Cannot represent relocation type %s"
-msgstr "No se puede representar el tipo reubicado %s"
+msgstr "No se puede representar el tipo de reubicación %s"
#. Simple range checking for FIELD against HIGH and LOW bounds.
#. IGNORE is used to suppress the error message.
@@ -8027,271 +7982,271 @@ msgstr "El campo no está alineado adecuadamente [%d] (%d)."
#: config/tc-hppa.c:1108
msgid "Missing .exit\n"
-msgstr "Ausente .exit\n"
+msgstr "Falta .exit\n"
#: config/tc-hppa.c:1111
msgid "Missing .procend\n"
-msgstr "Ausente .procend\n"
+msgstr "Falta .procend\n"
#: config/tc-hppa.c:1264
#, c-format
msgid "Invalid field selector. Assuming F%%."
msgstr "Selector de campo inválido. Asumiendo F%%."
-#: config/tc-hppa.c:1288
+#: config/tc-hppa.c:1287
msgid "Bad segment in expression."
msgstr "Segmento incorrecto dentro de expresión."
-#: config/tc-hppa.c:1313
+#: config/tc-hppa.c:1312
#, c-format
msgid "Invalid Nullification: (%c)"
msgstr "Nulificación Inválida: (%c)"
-#: config/tc-hppa.c:1379
+#: config/tc-hppa.c:1378
msgid "Cannot handle fixup"
-msgstr "No se puede manipular la compostura"
+msgstr "No se puede manipular la corrección"
-#: config/tc-hppa.c:1663
+#: config/tc-hppa.c:1662
#, c-format
msgid " -Q ignored\n"
msgstr " -Q se descarta\n"
-#: config/tc-hppa.c:1667
+#: config/tc-hppa.c:1666
#, c-format
msgid " -c print a warning if a comment is found\n"
msgstr " -c escribe un aviso si se encuentra un comentario\n"
-#: config/tc-hppa.c:1733
+#: config/tc-hppa.c:1732
#, c-format
msgid "no hppa_fixup entry for fixup type 0x%x"
-msgstr "no hay una entrada hppa_fixup para el tipo de compostura 0x%x"
+msgstr "no hay una entrada hppa_fixup para el tipo de corrección 0x%x"
-#: config/tc-hppa.c:1912
+#: config/tc-hppa.c:1911
msgid "Unknown relocation encountered in md_apply_fix."
msgstr "Se encontró una reubicación desconocida en md_apply_fix."
-#: config/tc-hppa.c:2100 config/tc-hppa.c:2125
+#: config/tc-hppa.c:2099 config/tc-hppa.c:2124
#, c-format
msgid "Undefined register: '%s'."
msgstr "Registro indefinido: «%s»."
-#: config/tc-hppa.c:2159
+#: config/tc-hppa.c:2158
#, c-format
msgid "Non-absolute symbol: '%s'."
msgstr "Símbolo no absoluto: «%s»."
-#: config/tc-hppa.c:2174
+#: config/tc-hppa.c:2173
#, c-format
msgid "Undefined absolute constant: '%s'."
msgstr "Constante absoluta sin definir: «%s»."
-#: config/tc-hppa.c:2205 config/tc-hppa.c:5686
+#: config/tc-hppa.c:2204 config/tc-hppa.c:5691
msgid "could not update architecture and machine"
msgstr "no se pueden actualizar la arquitectura y la máquina"
-#: config/tc-hppa.c:2243
+#: config/tc-hppa.c:2242
#, c-format
msgid "Invalid FP Compare Condition: %s"
msgstr "Condición de Comparación de FP Inválida: %s"
-#: config/tc-hppa.c:2298
+#: config/tc-hppa.c:2297
#, c-format
msgid "Invalid FTEST completer: %s"
msgstr "Completador FTEST inválido: %s"
-#: config/tc-hppa.c:2364 config/tc-hppa.c:2401
+#: config/tc-hppa.c:2363 config/tc-hppa.c:2400
#, c-format
msgid "Invalid FP Operand Format: %3s"
msgstr "Formato de Operando FP Inválido: %3s"
-#: config/tc-hppa.c:2519
+#: config/tc-hppa.c:2518
msgid "Bad segment (should be absolute)."
msgstr "Segmento incorrecto (debe ser absoluto)."
-#: config/tc-hppa.c:2579
+#: config/tc-hppa.c:2578
#, c-format
msgid "Invalid argument location: %s\n"
msgstr "Ubicación de argumento no válida: %s\n"
-#: config/tc-hppa.c:2608
+#: config/tc-hppa.c:2607
#, c-format
msgid "Invalid argument description: %d"
msgstr "Descripción de argumento no válida: %d"
-#: config/tc-hppa.c:3437
+#: config/tc-hppa.c:3442
msgid "Invalid Indexed Load Completer."
-msgstr "Completador de Carga Indizado Inválido."
+msgstr "Completador de Carga Indexado Inválido."
-#: config/tc-hppa.c:3442
+#: config/tc-hppa.c:3447
msgid "Invalid Indexed Load Completer Syntax."
-msgstr "Sintaxis de Completador de Carga Indizado Inválido."
+msgstr "Sintaxis de Completador de Carga Indexado Inválida."
-#: config/tc-hppa.c:3476
+#: config/tc-hppa.c:3481
msgid "Invalid Short Load/Store Completer."
msgstr "Completador Short de Load/Store Inválido."
-#: config/tc-hppa.c:3537 config/tc-hppa.c:3542
+#: config/tc-hppa.c:3542 config/tc-hppa.c:3547
msgid "Invalid Store Bytes Short Completer"
-msgstr "Completador Almacenaje de Bytes Cortos Inválido"
+msgstr "Completador Corto de Almacenaje de Bytes Inválido"
-#: config/tc-hppa.c:3857 config/tc-hppa.c:3863
+#: config/tc-hppa.c:3862 config/tc-hppa.c:3868
msgid "Invalid left/right combination completer"
msgstr "Completador de combinación derecha/izquierda inválido"
-#: config/tc-hppa.c:3912 config/tc-hppa.c:3919
+#: config/tc-hppa.c:3917 config/tc-hppa.c:3924
msgid "Invalid permutation completer"
msgstr "Completador de permutación inválido"
-#: config/tc-hppa.c:4019
+#: config/tc-hppa.c:4024
#, c-format
msgid "Invalid Add Condition: %s"
msgstr "Condición de Adición Inválida: %s"
-#: config/tc-hppa.c:4035 config/tc-hppa.c:4045
+#: config/tc-hppa.c:4040 config/tc-hppa.c:4050
msgid "Invalid Add and Branch Condition"
-msgstr "Condición de Adición y Ramificación Inválida"
+msgstr "Condición de Adición y Bifurcación Inválida"
-#: config/tc-hppa.c:4066 config/tc-hppa.c:4211
+#: config/tc-hppa.c:4071 config/tc-hppa.c:4216
msgid "Invalid Compare/Subtract Condition"
msgstr "Condición de Comparación/Sustracción Inválida"
-#: config/tc-hppa.c:4106
+#: config/tc-hppa.c:4111
#, c-format
msgid "Invalid Branch On Bit Condition: %c"
-msgstr "Condición de Ramificación en Bit Inválida: %c"
+msgstr "Condición de Bifurcación en Bit Inválida: %c"
-#: config/tc-hppa.c:4109
+#: config/tc-hppa.c:4114
msgid "Missing Branch On Bit Condition"
-msgstr "Ausentea Condición de Ramificación de Bit"
+msgstr "Falta Condición de Bifurcación en Bit"
-#: config/tc-hppa.c:4194
+#: config/tc-hppa.c:4199
#, c-format
msgid "Invalid Compare/Subtract Condition: %s"
msgstr "Condición de Comparación/Sustracción Inválida: %s"
-#: config/tc-hppa.c:4226
+#: config/tc-hppa.c:4231
msgid "Invalid Compare and Branch Condition"
-msgstr "Condición de Comparación y Ramificación Inválida"
+msgstr "Condición de Comparación y Bifurcación Inválida"
-#: config/tc-hppa.c:4322
+#: config/tc-hppa.c:4327
msgid "Invalid Logical Instruction Condition."
msgstr "Condición de Instrucción Lógica Inválida."
-#: config/tc-hppa.c:4384
+#: config/tc-hppa.c:4389
msgid "Invalid Shift/Extract/Deposit Condition."
msgstr "Condición Desplazar/Extraer/Depositar Inválida."
-#: config/tc-hppa.c:4501
+#: config/tc-hppa.c:4506
msgid "Invalid Unit Instruction Condition."
msgstr "Condición de Instrucción Unit Inválida."
-#: config/tc-hppa.c:4980 config/tc-hppa.c:5012 config/tc-hppa.c:5043
-#: config/tc-hppa.c:5073
+#: config/tc-hppa.c:4985 config/tc-hppa.c:5017 config/tc-hppa.c:5048
+#: config/tc-hppa.c:5078
msgid "Branch to unaligned address"
-msgstr "Ramificación a dirección sin alinear"
+msgstr "Bifurcación a dirección sin alinear"
-#: config/tc-hppa.c:5255
+#: config/tc-hppa.c:5260
msgid "Invalid SFU identifier"
msgstr "Identificador SFU inválido"
-#: config/tc-hppa.c:5305
+#: config/tc-hppa.c:5310
msgid "Invalid COPR identifier"
msgstr "Identificador COPR inválido"
-#: config/tc-hppa.c:5435
+#: config/tc-hppa.c:5440
msgid "Invalid Floating Point Operand Format."
msgstr "Formato de Operando de Coma Flotante Inválido."
-#: config/tc-hppa.c:5555 config/tc-hppa.c:5575 config/tc-hppa.c:5595
-#: config/tc-hppa.c:5615 config/tc-hppa.c:5635
+#: config/tc-hppa.c:5560 config/tc-hppa.c:5580 config/tc-hppa.c:5600
+#: config/tc-hppa.c:5620 config/tc-hppa.c:5640
msgid "Invalid register for single precision fmpyadd or fmpysub"
msgstr "Registro inválido para fmpyadd ó fmpysub de precisión simple"
-#: config/tc-hppa.c:5703
+#: config/tc-hppa.c:5708
#, c-format
msgid "Invalid operands %s"
msgstr "Operandos inválidos %s"
-#: config/tc-hppa.c:5713
+#: config/tc-hppa.c:5718
#, c-format
msgid "Immediates %d and %d will give undefined behavior."
-msgstr "Los inmediatos %d y %d darán una conducta sin definir."
+msgstr "Los inmediatos %d y %d tendrán un comportamiento no definido."
-#: config/tc-hppa.c:5765 config/tc-hppa.c:6959 config/tc-hppa.c:7014
+#: config/tc-hppa.c:5770 config/tc-hppa.c:6959 config/tc-hppa.c:7014
msgid "Missing function name for .PROC (corrupted label chain)"
-msgstr "Ausente el nombre de función para .PROC (cadena de etiquetas corrupta)"
+msgstr "Falta el nombre de función para .PROC (cadena de etiquetas corrupta)"
-#: config/tc-hppa.c:5768 config/tc-hppa.c:7017
+#: config/tc-hppa.c:5773 config/tc-hppa.c:7017
msgid "Missing function name for .PROC"
-msgstr "Ausente el nombre de función para .PROC"
+msgstr "Falta el nombre de función para .PROC"
-#: config/tc-hppa.c:5827
+#: config/tc-hppa.c:5832
msgid "Argument to .BLOCK/.BLOCKZ must be between 0 and 0x3fffffff"
msgstr "El argumento para .BLOCK/.BLOCKZ debe estar entre 0 y 0x3fffffff"
-#: config/tc-hppa.c:5918
+#: config/tc-hppa.c:5923
#, c-format
msgid "Invalid .CALL argument: %s"
msgstr "Argumento de .CALL inválido: %s"
-#: config/tc-hppa.c:6063
+#: config/tc-hppa.c:6065
msgid ".callinfo is not within a procedure definition"
-msgstr "directiva .callinfo no está dentro de una definición de procedimiento"
+msgstr "la directiva .callinfo no está dentro de una definición de procedimiento"
-#: config/tc-hppa.c:6081
+#: config/tc-hppa.c:6083
#, c-format
msgid "FRAME parameter must be a multiple of 8: %d\n"
-msgstr "El parámetro FRAM debe ser un múltiplo de 8: %d\n"
+msgstr "El parámetro FRAME debe ser un múltiplo de 8: %d\n"
-#: config/tc-hppa.c:6098
+#: config/tc-hppa.c:6100
msgid "Value for ENTRY_GR must be in the range 3..18\n"
-msgstr "Valorar para ENTRY_GR debe estar en el rango 3..18\n"
+msgstr "El valor de ENTRY_GR debe estar en el rango 3..18\n"
-#: config/tc-hppa.c:6109
+#: config/tc-hppa.c:6111
msgid "Value for ENTRY_FR must be in the range 12..21\n"
-msgstr "Valorar para ENTRY_FR debe estar en el rango 12..21\n"
+msgstr "El valor de ENTRY_FR debe estar en el rango 12..21\n"
-#: config/tc-hppa.c:6118
+#: config/tc-hppa.c:6120
msgid "Value for ENTRY_SR must be 3\n"
-msgstr "Valorar para ENTRY_SR debe ser 3\n"
+msgstr "El valor de ENTRY_SR debe ser 3\n"
-#: config/tc-hppa.c:6167
+#: config/tc-hppa.c:6169
#, c-format
msgid "Invalid .CALLINFO argument: %s"
msgstr "Argumento de .CALLINFO inválido: %s"
-#: config/tc-hppa.c:6289
+#: config/tc-hppa.c:6291
msgid "The .ENTER pseudo-op is not supported"
-msgstr "No se admite el pseudo-operador .ENTER"
+msgstr "No se admite la pseudo-operación .ENTER"
-#: config/tc-hppa.c:6305
+#: config/tc-hppa.c:6307
msgid "Misplaced .entry. Ignored."
msgstr ".entry mal ubicado. Se descarta."
-#: config/tc-hppa.c:6309
+#: config/tc-hppa.c:6311
msgid "Missing .callinfo."
-msgstr "Ausente .callinfo."
+msgstr "Falta .callinfo."
-#: config/tc-hppa.c:6374
+#: config/tc-hppa.c:6375
msgid ".REG expression must be a register"
msgstr "la expresión .REG debe ser un registro"
-#: config/tc-hppa.c:6390
+#: config/tc-hppa.c:6391
msgid "bad or irreducible absolute expression; zero assumed"
msgstr "expresión absoluta incorrecta o irreducible; se asume cero"
-#: config/tc-hppa.c:6401
+#: config/tc-hppa.c:6402
msgid ".REG must use a label"
msgstr ".REG debe usar una etiqueta"
-#: config/tc-hppa.c:6403
+#: config/tc-hppa.c:6404
msgid ".EQU must use a label"
msgstr ".EQU debe usar una etiqueta"
-#: config/tc-hppa.c:6458
+#: config/tc-hppa.c:6459
#, c-format
msgid "Symbol '%s' could not be created."
-msgstr "No se puede crear el símbolo «%s»."
+msgstr "No se ha podido crear el símbolo «%s»."
#: config/tc-hppa.c:6508
msgid ".EXIT must appear within a procedure"
@@ -8299,7 +8254,7 @@ msgstr ".EXIT debe aparecer dentro de un procedimiento"
#: config/tc-hppa.c:6512
msgid "Missing .callinfo"
-msgstr "Ausente .callinfo"
+msgstr "Falta .callinfo"
#: config/tc-hppa.c:6516
msgid "No .ENTRY for this .EXIT"
@@ -8322,7 +8277,7 @@ msgstr "No se puede definir el símbolo de exportación: %s\n"
#: config/tc-hppa.c:6789
msgid "Missing label name on .LABEL"
-msgstr "Ausente el nombre de etiqueta en .LABEL"
+msgstr "Falta el nombre de etiqueta en .LABEL"
#: config/tc-hppa.c:6794
msgid "extra .LABEL arguments ignored."
@@ -8330,11 +8285,11 @@ msgstr "se descartan los argumentos extra de .LABEL."
#: config/tc-hppa.c:6810
msgid "The .LEAVE pseudo-op is not supported"
-msgstr "No se admite el pseudo-operador .LEAVE"
+msgstr "No se admite la pseudo-operación .LEAVE"
#: config/tc-hppa.c:6848
msgid "Unrecognized .LEVEL argument\n"
-msgstr "No reconocido el argumento de .LEVEL\n"
+msgstr "No se reconoce el argumento de .LEVEL\n"
#: config/tc-hppa.c:6881
#, c-format
@@ -8355,11 +8310,11 @@ msgstr ".procend mal ubicado"
#: config/tc-hppa.c:7024
msgid "Missing .callinfo for this procedure"
-msgstr "Ausente .callinfo para este procedimiento"
+msgstr "Falta .callinfo para este procedimiento"
#: config/tc-hppa.c:7027
msgid "Missing .EXIT for a .ENTRY"
-msgstr "Ausente .EXIT para un .ENTRY"
+msgstr "Falta .EXIT para un .ENTRY"
#: config/tc-hppa.c:7064
msgid "Not in a space.\n"
@@ -8375,7 +8330,7 @@ msgstr "Argumento de .SPACE inválido"
#: config/tc-hppa.c:7201
msgid "Can't change spaces within a procedure definition. Ignored"
-msgstr "No se pueden modificar espacios dentro de una definición de procedimiento. Se descarta"
+msgstr "No se pueden modificar los espacios dentro de una definición de procedimiento. Se descarta"
#: config/tc-hppa.c:7326
#, c-format
@@ -8400,1623 +8355,1506 @@ msgstr "Alineación debe ser una potencia de 2"
#: config/tc-hppa.c:7485
msgid "FIRST not supported as a .SUBSPACE argument"
-msgstr "No se admite FIRST como un argumento de .SUBSPACE"
+msgstr "No se admite FIRST como argumento de .SUBSPACE"
#: config/tc-hppa.c:7487
msgid "Invalid .SUBSPACE argument"
msgstr "Argumento de .SUBSPACE inválido"
-#: config/tc-hppa.c:7676
+#: config/tc-hppa.c:7675
#, c-format
msgid "Internal error: Unable to find containing space for %s."
msgstr "Error interno: No se puede encontrar el espacio contenedor para %s."
-#: config/tc-hppa.c:8237
+#: config/tc-hppa.c:8236
msgid "-R option not supported on this target."
msgstr "No se admite la opción -R en este objetivo."
-#: config/tc-hppa.c:8259
+#: config/tc-hppa.c:8258
#, c-format
msgid "internal error: losing opcode: `%s' \"%s\"\n"
msgstr "error interno: se pierde el código de operación: «%s» «%s»\n"
-#: config/tc-hppa.c:8269 config/tc-sparc.c:999
+#: config/tc-hppa.c:8268 config/tc-sparc.c:999
msgid "Broken assembler. No assembly attempted."
msgstr "Ensamblador descompuesto. No se intentó ensamblar."
-#: config/tc-i386.c:1558
-#, c-format
-msgid "i386_output_nops called to generate nops of at most %d bytes!"
-msgstr ""
-
-#: config/tc-i386.c:1738
+#: config/tc-i386.c:1709
#, c-format
msgid "invalid single nop size: %d (expect within [0, %d])"
-msgstr ""
+msgstr "tamaño de nop sencilla no válido: %d (se esperaba dentro de [0, %d])"
-#: config/tc-i386.c:1787
-#, fuzzy
-#| msgid "jump target out of range"
+#: config/tc-i386.c:1755
msgid "jump over nop padding out of range"
-msgstr "omite objetivo fuera de rango"
+msgstr "relleno de nop sobre jump fuera de rango"
-#: config/tc-i386.c:2103
-#, fuzzy
-#| msgid "same type of prefix used twice"
+#: config/tc-i386.c:2097
msgid "same oszc flag used twice"
-msgstr "se utilizó dos veces el mismo tipo de prefijo"
+msgstr "se utilizó dos veces el mismo indicador oszc"
-#: config/tc-i386.c:2135 config/tc-i386.c:2146
-#, fuzzy
-#| msgid "unrecognized symbol suffix"
+#: config/tc-i386.c:2134 config/tc-i386.c:2145 config/tc-i386.c:2182
+#: config/tc-i386.c:2193
msgid "unrecognized pseudo-suffix"
-msgstr "símbolo sufijo no reconocido"
+msgstr "pseudosufijo no reconocido"
-#: config/tc-i386.c:2182
+#: config/tc-i386.c:2159
+msgid "scc= value must be between 0 and 15 (decimal)"
+msgstr "scc= el valor debe estar entre 0 y 15 (decimal)"
+
+#: config/tc-i386.c:2229
msgid "unrecognized oszc flags or illegal `,' in pseudo-suffix"
-msgstr ""
+msgstr "indicadores oszc no reconocidos o ',' ilegal en pseudosufijo"
-#: config/tc-i386.c:2199
+#: config/tc-i386.c:2247
msgid "missing `}' or `,' in pseudo-suffix"
-msgstr ""
+msgstr "falta '}' o ',' en pseudosufijo"
-#: config/tc-i386.c:2867
-#, fuzzy, c-format
-#| msgid "value 0x%I64x truncated to 0x%I64x"
+#: config/tc-i386.c:2981
+#, c-format
msgid "0x%<PRIx64> shortened to 0x%<PRIx64>"
-msgstr "valora 0x%I64x truncado a 0x%I64x"
+msgstr "0x%<PRIx64> acortado a 0x%<PRIx64>"
-#: config/tc-i386.c:2964 config/tc-i386.c:4580 config/tc-i386.c:4591
-#: config/tc-i386.c:10628
+#: config/tc-i386.c:3078 config/tc-i386.c:4695 config/tc-i386.c:4706
+#: config/tc-i386.c:10751
msgid "same type of prefix used twice"
msgstr "se utilizó dos veces el mismo tipo de prefijo"
-#: config/tc-i386.c:2976 config/tc-i386.c:3304
+#: config/tc-i386.c:3090 config/tc-i386.c:3418
#, c-format
msgid "64bit mode not supported on `%s'."
-msgstr "no se admite el modo de 64bit en «%s»."
+msgstr "no se admite el modo de 64 bits en «%s»."
-#: config/tc-i386.c:2983 config/tc-i386.c:3311
+#: config/tc-i386.c:3097 config/tc-i386.c:3425
#, c-format
msgid "32bit mode not supported on `%s'."
-msgstr "no se admite el modo de 32bit en «%s»."
+msgstr "no se admite el modo de 32-bits en «%s»."
-#: config/tc-i386.c:3035
+#: config/tc-i386.c:3149
msgid "bad argument to syntax directive."
msgstr "argumento incorrecto para la directiva syntax."
-#: config/tc-i386.c:3092
+#: config/tc-i386.c:3206
#, c-format
msgid "bad argument to %s_check directive."
-msgstr "argumento incorrecto para `%s_check' de directiva."
+msgstr "argumento incorrecto para la directiva `%s_check'."
-#: config/tc-i386.c:3096
+#: config/tc-i386.c:3210
#, c-format
msgid "missing argument for %s_check directive"
-msgstr "argumento ausente para %s_check de directiva"
+msgstr "argumento ausente para la directiva %s_check"
-#: config/tc-i386.c:3123
+#: config/tc-i386.c:3237
#, c-format
msgid "`%s' is not supported on `%s'"
msgstr "«%s» no se admite en «%s»"
-#: config/tc-i386.c:3191
+#: config/tc-i386.c:3305
msgid "missing cpu architecture"
-msgstr "ausente la arquitectura de cpu"
+msgstr "falta la arquitectura de cpu"
-#: config/tc-i386.c:3230
+#: config/tc-i386.c:3344
msgid ".arch stack is empty"
-msgstr ""
+msgstr "la pila de .arch está vacía"
-#: config/tc-i386.c:3246
+#: config/tc-i386.c:3360
#, c-format
msgid "this `.arch pop' requires `.code%u%s' to be in effect"
-msgstr ""
+msgstr "este «.arch pop» requiere «.code%u%s» para ser efectivo"
-#: config/tc-i386.c:3357
-#, fuzzy
-#| msgid "Unrecognized dependency specifier %d\n"
+#: config/tc-i386.c:3471
msgid "Unrecognized vector size specifier"
-msgstr "No reconocido el especificador de dependencia %d\n"
+msgstr "Especificador de tamaño de vector no reconocido"
-#: config/tc-i386.c:3394
+#: config/tc-i386.c:3508
#, c-format
msgid "no such architecture: `%s'"
msgstr "no hay tal arquitectura: «%s»"
-#: config/tc-i386.c:3410
+#: config/tc-i386.c:3524
#, c-format
msgid "no such architecture modifier: `%s'"
msgstr "no hay tal modificador de arquitectura: «%s»"
-#: config/tc-i386.c:3426 config/tc-i386.c:3449
+#: config/tc-i386.c:3540 config/tc-i386.c:3563
msgid "Intel MCU is 32bit ELF only"
-msgstr "Intel MCU es solo 32bit ELF"
+msgstr "La MCU de Intel solo es ELF de 32 bits"
-#: config/tc-i386.c:3456 config/tc-i386.c:17765
+#: config/tc-i386.c:3570 config/tc-i386.c:18013
msgid "unknown architecture"
-msgstr "desconoce arquitectura"
+msgstr "arquitectura desconocida"
-#: config/tc-i386.c:3831
+#: config/tc-i386.c:3943
msgid "there are no pc-relative size relocations"
-msgstr "no hay reubicaciones de tamaño pc-relativo"
+msgstr "no hay reubicaciones de tamaño relativas a pc"
-#: config/tc-i386.c:3843
+#: config/tc-i386.c:3955
#, c-format
msgid "unknown relocation (%u)"
msgstr "reubicación desconocida (%u)"
-#: config/tc-i386.c:3845
+#: config/tc-i386.c:3957
#, c-format
msgid "%u-byte relocation cannot be applied to %u-byte field"
-msgstr "la reubicación de %u-bytes no se puede aplicar al campo %u-bytes"
+msgstr "la reubicación de %u bytes no se puede aplicar al campo de %u bytes"
-#: config/tc-i386.c:3849
+#: config/tc-i386.c:3961
msgid "non-pc-relative relocation for pc-relative field"
msgstr "reubicación no relativa a pc para el campo relativo a pc"
-#: config/tc-i386.c:3854
+#: config/tc-i386.c:3966
msgid "relocated field and relocation type differ in signedness"
-msgstr "el campo reubicado y el tipo reubicado difieren en signo"
+msgstr "el campo reubicado y el tipo de reubicación difieren en signo"
-#: config/tc-i386.c:3863
+#: config/tc-i386.c:3975
msgid "there are no unsigned pc-relative relocations"
msgstr "no hay reubicaciones relativas a pc sin signo"
-#: config/tc-i386.c:3871
+#: config/tc-i386.c:3983
#, c-format
msgid "cannot do %u byte pc-relative relocation"
msgstr "no se puede hacer la reubicación relativa a pc de %u bytes"
-#: config/tc-i386.c:3888
+#: config/tc-i386.c:4000
#, c-format
msgid "cannot do %s %u byte relocation"
msgstr "no se puede hacer la reubicación %s de %u bytes"
-#: config/tc-i386.c:4352
+#: config/tc-i386.c:4469
#, c-format
msgid "ambiguous broadcast for `%s', using %u-bit form"
-msgstr ""
+msgstr "difusión ambigua para «%s»; se utiliza la forma de %u bits"
-#: config/tc-i386.c:4581
+#: config/tc-i386.c:4696
msgid "conflicting use of `data16' prefix"
-msgstr ""
+msgstr "uso conflictivo del prefijo «data16»"
-#: config/tc-i386.c:4668
-#, fuzzy, c-format
-#| msgid "can't encode register '%s%s' in an instruction requiring REX prefix."
+#: config/tc-i386.c:4784
+#, c-format
msgid "can't encode register '%s%s' in an instruction requiring %s prefix"
-msgstr "no se puede codificar el registro '%s%s' en una instrucción que requiere el prefijo REX."
+msgstr "no se puede codificar el registro '%s%s' en una instrucción que requiere el prefijo %s"
-#: config/tc-i386.c:4710
-#, fuzzy, c-format
-#| msgid "`%s%s' not allowed with `%s%c'"
+#: config/tc-i386.c:4826
+#, c-format
msgid "size override not allowed with `%s'"
-msgstr "no se permite `%s%s' con `%s%c'"
+msgstr "anulación de tamaño no permitida con `%s'"
-#: config/tc-i386.c:4717
-#, fuzzy, c-format
-#| msgid "`%s%s' not allowed with `%s%c'"
+#: config/tc-i386.c:4833
+#, c-format
msgid "address override not allowed with `%s'"
-msgstr "no se permite `%s%s' con `%s%c'"
+msgstr "anulación de dirección no permitida con `%s'"
-#: config/tc-i386.c:4771 config/tc-i386.c:7240
+#: config/tc-i386.c:4887 config/tc-i386.c:7357
#, c-format
msgid "invalid instruction `%s' after `%s'"
-msgstr "la instrucción «%s» no válida tras «%s»"
+msgstr "instrucción no válida «%s» después de «%s»"
-#: config/tc-i386.c:4777
+#: config/tc-i386.c:4893
#, c-format
msgid "missing `lock' with `%s'"
-msgstr "ausente `lock' con «%s»"
+msgstr "falta `lock' con «%s»"
-#: config/tc-i386.c:4784
+#: config/tc-i386.c:4900
#, c-format
msgid "instruction `%s' after `xacquire' not allowed"
-msgstr "la instrucción «%s» tras «xacquire» no permitido"
+msgstr "la instrucción «%s» tras «xacquire» no está permitida"
-#: config/tc-i386.c:4790
+#: config/tc-i386.c:4906
#, c-format
msgid "memory destination needed for instruction `%s' after `xrelease'"
-msgstr "destino de memoria requerido para instrucción `%s' tras `xrelease'"
+msgstr "destino de memoria requerido para la instrucción `%s' tras `xrelease'"
-#: config/tc-i386.c:6224
-#, fuzzy
-#| msgid "extra .LABEL arguments ignored."
+#: config/tc-i386.c:6340
msgid "`.noopt' arguments ignored"
-msgstr "se descartan los argumentos extra de .LABEL."
+msgstr "se descartan los argumentos de .noopt"
-#: config/tc-i386.c:6410
+#: config/tc-i386.c:6526
#, c-format
msgid "`%s` changes flags which would affect control flow behavior"
-msgstr ""
+msgstr "`%s' cambia opciones que afectarían al comportamiento del flujo de control"
-#: config/tc-i386.c:6452
+#: config/tc-i386.c:6568
#, c-format
msgid "indirect `%s` with memory operand should be avoided"
-msgstr ""
+msgstr "`%s' indirecto con operando de memoria debería evitarse"
-#: config/tc-i386.c:6462
+#: config/tc-i386.c:6578
#, c-format
msgid "`%s` skips -mlfence-before-indirect-branch on `%s`"
-msgstr ""
+msgstr "`%s` se salta -mlfence-before-indirect-branch en `%s`"
-#: config/tc-i386.c:6481
+#: config/tc-i386.c:6597
#, c-format
msgid "`%s` skips -mlfence-before-ret on `%s`"
-msgstr ""
+msgstr "`%s` se salta -mlfence-before-ret en `%s`"
-#: config/tc-i386.c:6831
-#, fuzzy, c-format
-#| msgid "`%s' cannot be used with `%s'"
+#: config/tc-i386.c:6949
+#, c-format
msgid "@%s operator cannot be used with `%s'"
-msgstr "«%s» no puede ser utilizado con «%s»"
+msgstr "el operador @%s no puede utilizarse con «%s»"
-#: config/tc-i386.c:6836
+#: config/tc-i386.c:6954
#, c-format
msgid "@%s operator can be used with `%s', but format is wrong"
-msgstr ""
+msgstr "el operador @%s puede utilizarse con «%s», pero el formato es incorrecto"
-#: config/tc-i386.c:6841
+#: config/tc-i386.c:6959
#, c-format
msgid "@%s operator requires no SIB"
-msgstr ""
+msgstr "el operador @%s no requiere ningún SIB"
-#: config/tc-i386.c:6845
-#, fuzzy, c-format
-#| msgid "instruction requires register index"
+#: config/tc-i386.c:6963
+#, c-format
msgid "@%s operator requires base register"
-msgstr "la instrucción requiere un índice de registro"
+msgstr "el operador @%s requiere un registro base"
-#: config/tc-i386.c:6849
-#, fuzzy, c-format
-#| msgid "First operand to .%s not a valid register"
+#: config/tc-i386.c:6967
+#, c-format
msgid "@%s operator requires no base/index register"
-msgstr "El primer operando de .%s no es un registro válido"
+msgstr "el operador @%s no requiere registro base/índice"
-#: config/tc-i386.c:6854
-#, fuzzy, c-format
-#| msgid "First operand to .%s not a register"
+#: config/tc-i386.c:6972
+#, c-format
msgid "@%s operator requires no base register"
-msgstr "El primer operando de .%s no es un registro"
+msgstr "el operador @%s no requiere registro base"
-#: config/tc-i386.c:6858
-#, fuzzy, c-format
-#| msgid "First operand to .vframe must be a general register"
+#: config/tc-i386.c:6976
+#, c-format
msgid "@%s operator requires `%sebx' as index register"
-msgstr "El primer operando de .vfram debe ser un registro general"
+msgstr "el operador @%s requiere `%sebx' como registro índice"
-#: config/tc-i386.c:6863
+#: config/tc-i386.c:6981
#, c-format
msgid "@%s operator requires `%seax' as base register"
-msgstr ""
+msgstr "el operador @%s requiere `%seax' como registro base"
-#: config/tc-i386.c:6868
+#: config/tc-i386.c:6986
#, c-format
msgid "@%s operator requires `%seax/%srax' as base register"
-msgstr ""
+msgstr "el operador @%s requiere `%seax/%srax' como registro base"
-#: config/tc-i386.c:6873
+#: config/tc-i386.c:6991
#, c-format
msgid "@%s operator requires `%sebx' as base register"
-msgstr ""
+msgstr "el operador @%s requiere `%sebx' como registro base"
-#: config/tc-i386.c:6878
-#, fuzzy, c-format
-#| msgid "syntax error; missing ')' after base register"
+#: config/tc-i386.c:6996
+#, c-format
msgid "@%s operator requires `%srip' as base register"
-msgstr "error de sintaxis; ausente ')' tras registro base"
+msgstr "el operador @%s requiere `%srip' como registro base"
-#: config/tc-i386.c:6883
-#, fuzzy, c-format
-#| msgid "setx: temporary register same as destination register"
+#: config/tc-i386.c:7001
+#, c-format
msgid "@%s operator requires `%seax' as dest register"
-msgstr "setx: el registro temporal es el mismo que el registro destino"
+msgstr "el operador @%s requiere `%seax' como registro destino"
-#: config/tc-i386.c:6888
-#, fuzzy, c-format
-#| msgid "setx: temporary register same as destination register"
+#: config/tc-i386.c:7006
+#, c-format
msgid "@%s operator requires `%srdi' as dest register"
-msgstr "setx: el registro temporal es el mismo que el registro destino"
+msgstr "el operador @%s requiere `%srdi' como registro destino"
-#: config/tc-i386.c:6893
+#: config/tc-i386.c:7011
#, c-format
msgid "@%s operator requires scale factor of 1"
-msgstr ""
+msgstr "el operador @%s requiere un factor de escala 1"
-#: config/tc-i386.c:6898
-#, fuzzy, c-format
-#| msgid "First operand to .%s not a register"
+#: config/tc-i386.c:7016
+#, c-format
msgid "@%s operator requires 32-bit base register"
-msgstr "El primer operando de .%s no es un registro"
+msgstr "el operador @%s requiere un registro base de 32 bits"
-#: config/tc-i386.c:6903
+#: config/tc-i386.c:7021
#, c-format
msgid "@%s operator requires 32-bit dest register"
-msgstr ""
+msgstr "el operador @%s requiere un registro destino de 32 bits"
-#: config/tc-i386.c:6908
-#, fuzzy, c-format
-#| msgid "%s isa does not support 64-bit registers"
+#: config/tc-i386.c:7026
+#, c-format
msgid "@%s operator requires 64-bit dest register"
-msgstr "isa %s no admite registros de 64-bit"
+msgstr "el operador @%s requiere un registro destino de 64 bits"
-#: config/tc-i386.c:6913
-#, fuzzy, c-format
-#| msgid "%s isa does not support 64-bit registers"
+#: config/tc-i386.c:7031
+#, c-format
msgid "@%s operator requires 32-bit or 64-bit dest register"
-msgstr "isa %s no admite registros de 64-bit"
+msgstr "el operador @%s requiere un registro destino de 32 o 64 bits"
-#: config/tc-i386.c:7081
+#: config/tc-i386.c:7198
msgid "operand size mismatch"
-msgstr "no coincide tamaño de operando"
+msgstr "no coincide el tamaño de operando"
-#: config/tc-i386.c:7084
+#: config/tc-i386.c:7201
msgid "operand type mismatch"
msgstr "no coincide el tipo de operando"
-#: config/tc-i386.c:7087
+#: config/tc-i386.c:7204
msgid "register type mismatch"
msgstr "no coincide el tipo de registro"
-#: config/tc-i386.c:7090
+#: config/tc-i386.c:7207
msgid "number of operands mismatch"
msgstr "no coincide el número de operandos"
-#: config/tc-i386.c:7093
+#: config/tc-i386.c:7210
msgid "invalid instruction suffix"
-msgstr "invalida sufijo de instrucción"
+msgstr "sufijo de instrucción no válido"
-#: config/tc-i386.c:7096
+#: config/tc-i386.c:7213
msgid "constant doesn't fit in 4 bits"
-msgstr "constante no cabe en 4 bits"
+msgstr "la constante no cabe en 4 bits"
-#: config/tc-i386.c:7099
+#: config/tc-i386.c:7216
msgid "unsupported with Intel mnemonic"
msgstr "no se admite con mnemónico Intel"
-#: config/tc-i386.c:7102
+#: config/tc-i386.c:7219
msgid "unsupported syntax"
msgstr "no se admite la sintaxis"
-#: config/tc-i386.c:7105
-#, fuzzy
-#| msgid "register r0 cannot be used here"
+#: config/tc-i386.c:7222
msgid "extended GPR cannot be used as base/index"
-msgstr "el registro r0 no se puede usar aquí"
+msgstr "GPR extendido no se puede usar como base/índice"
-#: config/tc-i386.c:7108
-#, fuzzy
-#| msgid "unsupported"
+#: config/tc-i386.c:7225
msgid "{nf} unsupported"
-msgstr "no se admite"
+msgstr "no se admite {nf}"
-#: config/tc-i386.c:7111
+#: config/tc-i386.c:7228
#, c-format
msgid "unsupported instruction `%s'"
-msgstr "no admitió instrucción «%s»"
+msgstr "instrucción no admitida «%s»"
-#: config/tc-i386.c:7115 config/tc-i386.c:7633
+#: config/tc-i386.c:7232 config/tc-i386.c:7755
#, c-format
msgid "`%s' is not supported on `%s%s'"
msgstr "«%s» no se admite en `%s%s'"
-#: config/tc-i386.c:7124
-#, fuzzy, c-format
-#| msgid "`%s' is not supported in 64-bit mode"
+#: config/tc-i386.c:7241
+#, c-format
msgid "`%s%c' is not supported in 64-bit mode"
-msgstr "«%s» no se admite en modo de 64-bit"
+msgstr "«%s%c» no se admite en modo de 64 bits"
-#: config/tc-i386.c:7128
-#, fuzzy, c-format
-#| msgid "`%s' is only supported in 64-bit mode"
+#: config/tc-i386.c:7245
+#, c-format
msgid "`%s%c' is only supported in 64-bit mode"
-msgstr "«%s» solo se admite en modo de 64-bit"
+msgstr "«%s%c» solo se admite en modo de 64 bits"
-#: config/tc-i386.c:7135 config/tc-i386.c:7627
+#: config/tc-i386.c:7252 config/tc-i386.c:7749
#, c-format
msgid "`%s' is not supported in 64-bit mode"
-msgstr "«%s» no se admite en modo de 64-bit"
+msgstr "«%s» no se admite en modo de 64 bits"
-#: config/tc-i386.c:7138 config/tc-i386.c:7626
+#: config/tc-i386.c:7255 config/tc-i386.c:7748
#, c-format
msgid "`%s' is only supported in 64-bit mode"
-msgstr "«%s» solo se admite en modo de 64-bit"
+msgstr "«%s» solo se admite en modo de 64 bits"
-#: config/tc-i386.c:7143
+#: config/tc-i386.c:7260
msgid "no VEX/XOP encoding"
-msgstr ""
+msgstr "sin codificación VEX/VOP"
-#: config/tc-i386.c:7146
+#: config/tc-i386.c:7263
msgid "no EVEX encoding"
-msgstr ""
+msgstr "sin codificación EVEX"
-#: config/tc-i386.c:7149
-#, fuzzy
-#| msgid "invalid VSIB address"
+#: config/tc-i386.c:7266
msgid "invalid SIB address"
-msgstr "dirección VSIB no válida"
+msgstr "dirección SIB no válida"
-#: config/tc-i386.c:7152
+#: config/tc-i386.c:7269
msgid "invalid VSIB address"
msgstr "dirección VSIB no válida"
-#: config/tc-i386.c:7155
+#: config/tc-i386.c:7272
msgid "mask, index, and destination registers must be distinct"
-msgstr "máscara, índice, y registro de destino debe ser distinto"
+msgstr "los registros de máscara, índice y destino deben ser distintos"
-#: config/tc-i386.c:7158
-#, fuzzy
-#| msgid "last register must be r7"
+#: config/tc-i386.c:7275
msgid "all tmm registers must be distinct"
-msgstr "el último registro debe ser r7"
+msgstr "todos los registros tmm deben ser distintos"
-#: config/tc-i386.c:7161
-#, fuzzy
-#| msgid "mask, index, and destination registers must be distinct"
+#: config/tc-i386.c:7278
msgid "destination and source registers must be distinct"
-msgstr "máscara, índice, y registro de destino debe ser distinto"
+msgstr "los registros de destino y origen deben ser distintos"
-#: config/tc-i386.c:7164
-#, fuzzy
-#| msgid "mask, index, and destination registers must be distinct"
+#: config/tc-i386.c:7281
msgid "two dest registers must be distinct"
-msgstr "máscara, índice, y registro de destino debe ser distinto"
+msgstr "dos registros de destino deben ser distintos"
-#: config/tc-i386.c:7167
-#, fuzzy
-#| msgid "register r0 cannot be used here"
+#: config/tc-i386.c:7284
msgid "rex2 pseudo prefix cannot be used"
-msgstr "el registro r0 no se puede usar aquí"
+msgstr "el pseudoprefijo rex2 no se puede usar"
-#: config/tc-i386.c:7170
+#: config/tc-i386.c:7287
msgid "unsupported vector index register"
msgstr "no se admite el registro de índice de vector"
-#: config/tc-i386.c:7173
+#: config/tc-i386.c:7290
msgid "unsupported broadcast"
-msgstr "emisión no admitida"
+msgstr "difusión no admitida"
-#: config/tc-i386.c:7176
+#: config/tc-i386.c:7293
msgid "broadcast is needed for operand of such type"
-msgstr "emisión es necesaria para operando de tal tipo"
+msgstr "la difusión es necesaria para un operando de tal tipo"
-#: config/tc-i386.c:7179
+#: config/tc-i386.c:7296
msgid "unsupported masking"
msgstr "máscara no soportada"
-#: config/tc-i386.c:7182
+#: config/tc-i386.c:7299
msgid "mask not on destination operand"
msgstr "máscara no sobre operando destino"
-#: config/tc-i386.c:7185
+#: config/tc-i386.c:7302
msgid "default mask isn't allowed"
-msgstr ""
+msgstr "la máscara predefinida no está permitida"
-#: config/tc-i386.c:7188
+#: config/tc-i386.c:7305
msgid "unsupported static rounding/sae"
-msgstr "no admitida reubicación/sae estática"
+msgstr "redondeo/sae estático no admitido"
-#: config/tc-i386.c:7191
+#: config/tc-i386.c:7308
#, c-format
msgid "vector size above %u required for `%s'"
-msgstr ""
+msgstr "se requiere un tamaño de vector por encima de %u para «%s»"
-#: config/tc-i386.c:7195
-#, fuzzy
-#| msgid "odd register cannot be used here"
+#: config/tc-i386.c:7312
msgid "'rsp' register cannot be used"
-msgstr "no se puede usar aquí un registro impar"
+msgstr "no se puede usar el registro 'rsp'"
-#: config/tc-i386.c:7198
-#, fuzzy
-#| msgid "MIPS internal Error"
+#: config/tc-i386.c:7315
msgid "internal error"
-msgstr "Error interno de MIPS"
+msgstr "error interno"
-#: config/tc-i386.c:7201
+#: config/tc-i386.c:7318
#, c-format
msgid "%s for `%s'"
msgstr "%s para «%s»"
-#: config/tc-i386.c:7230
+#: config/tc-i386.c:7347
#, c-format
msgid "SSE instruction `%s' is used"
-msgstr "SSE como instrucción «%s» está utilizada"
+msgstr "la instrucción SSE «%s» es utilizada"
-#: config/tc-i386.c:7254
+#: config/tc-i386.c:7371
msgid "expecting lockable instruction after `lock'"
msgstr "se espera una instrucción bloqueable tras `lock'"
-#: config/tc-i386.c:7287
-#, fuzzy, c-format
-#| msgid "width suffixes are invalid in ARM mode -- `%s'"
+#: config/tc-i386.c:7404
+#, c-format
msgid "data size prefix invalid with `%s'"
-msgstr "los sufijos de anchura son inválidos en modo ARM -- «%s»"
+msgstr "prefijo de tamaño de datos no válido con «%s»"
-#: config/tc-i386.c:7298
+#: config/tc-i386.c:7415
msgid "expecting valid branch instruction after `bnd'"
-msgstr "esperando rama instruccional válida tras «bnd»"
+msgstr "se esperaba una instrucción de bifurcación válida después de «bnd»"
-#: config/tc-i386.c:7302
+#: config/tc-i386.c:7419
msgid "expecting indirect branch instruction after `notrack'"
-msgstr "esperando rama instruccional indirecta tras «notrack»"
+msgstr "se esperaba una instrucción de bifurcación indirecta después de «bnd»"
-#: config/tc-i386.c:7307
+#: config/tc-i386.c:7424
msgid "32-bit address isn't allowed in 64-bit MPX instructions."
-msgstr "dirección 32-bit no está permitido en instrucciones MPX de 64-bit."
+msgstr "no se permite dirección de 32 bits en instrucciones MPX de 64 bits."
-#: config/tc-i386.c:7311
+#: config/tc-i386.c:7428
msgid "16-bit address isn't allowed in MPX instructions"
-msgstr "dirección de 16-bit no está permitida dentro de instrucciones MPX"
+msgstr "no se permite dirección de 16 bits en instrucciones MPX."
-#: config/tc-i386.c:7321
+#: config/tc-i386.c:7438
msgid "replacing `rep'/`repe' prefix by `bnd'"
-msgstr ""
+msgstr "se reemplaza el prefijo «rep»/«repe» por «bnd»"
-#: config/tc-i386.c:7341
+#: config/tc-i386.c:7458
#, c-format
msgid "input/output port address isn't allowed with `%s'"
-msgstr ""
+msgstr "la dirección de puerto de entrada/salida no está permitida con «%s»"
-#: config/tc-i386.c:7374
-#, fuzzy, c-format
-#| msgid "invalid pc-relative address"
+#: config/tc-i386.c:7491
+#, c-format
msgid "'%s' only supports RIP-relative address"
-msgstr "dirección relativa a pc no válida"
+msgstr "«%s» solo admite dirección relativa a RIP"
#. UnixWare fsub no args is alias for fsubp, fadd -> faddp, etc.
-#: config/tc-i386.c:7423
+#: config/tc-i386.c:7545
#, c-format
msgid "translating to `%sp'"
-msgstr "se traslada a `%sp'"
+msgstr "traduciendo a `%sp'"
-#: config/tc-i386.c:7430
-#, fuzzy, c-format
-#| msgid "instruction `%s' isn't supported in 16-bit mode."
+#: config/tc-i386.c:7552
+#, c-format
msgid "instruction `%s' isn't supported outside of protected mode."
-msgstr "la instrucción «%s» no admitido en modo 16-bit."
+msgstr "la instrucción «%s» no está admitida fuera de modo protegido."
-#: config/tc-i386.c:7443
-#, fuzzy, c-format
-#| msgid "invalid switch -m%s"
+#: config/tc-i386.c:7565
+#, c-format
msgid "REX prefix invalid with `%s'"
-msgstr "interruptor -m%s inválido"
+msgstr "prefijo REX no válido con «%s»"
-#: config/tc-i386.c:7450
-#, fuzzy, c-format
-#| msgid "invalid switch -m%s"
+#: config/tc-i386.c:7572
+#, c-format
msgid "{rex2} prefix invalid with `%s'"
-msgstr "interruptor -m%s inválido"
+msgstr "prefijo {rex2} no válido con «%s»"
-#: config/tc-i386.c:7576 config/tc-i386.c:7890
+#: config/tc-i386.c:7698 config/tc-i386.c:8015
#, c-format
msgid "no such instruction: `%s'"
msgstr "no hay tal instrucción: «%s»"
-#: config/tc-i386.c:7602 config/tc-i386.c:7941
+#: config/tc-i386.c:7724 config/tc-i386.c:8066
#, c-format
msgid "invalid character %s in mnemonic"
msgstr "carácter inválido %s en el mnemónico"
-#: config/tc-i386.c:7609
+#: config/tc-i386.c:7731
msgid "expecting prefix; got nothing"
-msgstr "se esperaba un prefijo; se obtuvo nada"
+msgstr "se esperaba un prefijo; no se obtuvo nada"
-#: config/tc-i386.c:7611
+#: config/tc-i386.c:7733
msgid "expecting mnemonic; got nothing"
-msgstr "se esperaba un mnemónico; se obtuvo nada"
+msgstr "se esperaba un mnemónico; no se obtuvo nada"
-#: config/tc-i386.c:7647
+#: config/tc-i386.c:7769
#, c-format
msgid "redundant %s prefix"
msgstr "prefijo %s redundante"
-#: config/tc-i386.c:7712
-#, fuzzy
-#| msgid "insn cannot be combined with pmuls"
+#: config/tc-i386.c:7838
msgid "{nf} cannot be combined with {vex}/{vex3}"
-msgstr "la insn no se pueden combinar con pmuls"
+msgstr "{nf} no se puede combinar con {vex}/{vex3}"
-#: config/tc-i386.c:7762
+#: config/tc-i386.c:7914
#, c-format
msgid "ignoring `.s' suffix due to earlier `{%s}'"
-msgstr ""
+msgstr "se descarta sufijo «.s» a causa de «{%s}» previo"
-#: config/tc-i386.c:7772
+#: config/tc-i386.c:7924
msgid "ignoring `.d8' suffix due to earlier `{disp<N>}'"
-msgstr ""
+msgstr "se descarta sufijo «.dB» a causa de «{disp<N>}» previo"
-#: config/tc-i386.c:7782
+#: config/tc-i386.c:7934
msgid "ignoring `.d32' suffix due to earlier `{disp<N>}'"
-msgstr ""
+msgstr "se descarta sufijo «.d32» a causa de «{disp<N>}» previo"
-#: config/tc-i386.c:7873
+#: config/tc-i386.c:7998
#, c-format
msgid "found `%sd'; assuming `%sl' was meant"
-msgstr ""
+msgstr "se ha encontrado «%sd»; se asume que se quería decir «%sl»"
-#: config/tc-i386.c:7990
+#: config/tc-i386.c:8115
#, c-format
msgid "invalid character %s before operand %d"
-msgstr "caracter inválido %s antes de operando %d"
+msgstr "caracter inválido %s antes del operando %d"
-#: config/tc-i386.c:8002
-#, fuzzy, c-format
-#| msgid "unbalanced brackets in operand %d."
+#: config/tc-i386.c:8127
+#, c-format
msgid "unbalanced double quotes in operand %d."
-msgstr "llaves sin balancear en operando %d."
+msgstr "dobles comillas descompensadas en el operando %d."
-#: config/tc-i386.c:8009
+#: config/tc-i386.c:8134
#, c-format
msgid "unbalanced parenthesis in operand %d."
-msgstr "paréntesis sin balancear en operando %d."
+msgstr "paréntesis descompensados en el operando %d."
-#: config/tc-i386.c:8022
+#: config/tc-i386.c:8147
#, c-format
msgid "invalid character %s in operand %d"
-msgstr "carácter inválido %s en operando %d"
+msgstr "carácter inválido %s en el operando %d"
-#: config/tc-i386.c:8042
+#: config/tc-i386.c:8167
#, c-format
msgid "spurious operands; (%d operands/instruction max)"
msgstr "operandos espurios; (%d operandos/instrucción máximo)"
-#: config/tc-i386.c:8052 config/tc-i386.c:13607
+#: config/tc-i386.c:8177 config/tc-i386.c:13795
#, c-format
msgid "too many memory references for `%s'"
msgstr "demasiadas referencias a memoria para «%s»"
-#: config/tc-i386.c:8073 config/tc-i386.c:13601
+#: config/tc-i386.c:8198 config/tc-i386.c:13789
msgid "expecting operand after ','; got nothing"
-msgstr "se esperaba un operando tras ','; se obtuvo nada"
+msgstr "se esperaba un operando después de ','; no se obtuvo nada"
-#: config/tc-i386.c:8078
+#: config/tc-i386.c:8203
msgid "expecting operand before ','; got nothing"
-msgstr "se esperaba un operando antes de ','; se obtuvo nada"
+msgstr "se esperaba un operando antes de ','; no se obtuvo nada"
-#: config/tc-i386.c:8368
-#, fuzzy, c-format
-#| msgid "0x%lx out range of signed 32bit displacement"
+#: config/tc-i386.c:8493
+#, c-format
msgid "0x%<PRIx64> out of range of signed 32bit displacement"
-msgstr "0x%lx fuera de rango del desplazamiento de 32 bit con signo"
+msgstr "0x%<PRIx64> fuera de rango del desplazamiento de 32 bits con signo"
-#: config/tc-i386.c:8572
+#: config/tc-i386.c:8697
msgid "mask, index, and destination registers should be distinct"
-msgstr "el registros de máscaras, indexado, destino deberían ser distintos"
+msgstr "los registros de máscara, índice y destino deberían ser distintos"
-#: config/tc-i386.c:8589
+#: config/tc-i386.c:8714
msgid "index and destination registers should be distinct"
-msgstr "el registros indexados y destino deberían ser distintos"
+msgstr "los registros de índice y destino deberían ser distintos"
-#: config/tc-i386.c:9718
+#: config/tc-i386.c:9841
#, c-format
msgid "indirect %s without `*'"
-msgstr "%s indirecto sin `*'"
+msgstr "%s indirecta sin `*'"
#. Warn them that a data or address size prefix doesn't
#. affect assembly of the next line of code.
-#: config/tc-i386.c:9725
+#: config/tc-i386.c:9848
#, c-format
msgid "stand-alone `%s' prefix"
-msgstr "prefijo «%s» por sí solo"
+msgstr "prefijo de «%s» autónomo"
-#: config/tc-i386.c:9732
-#, fuzzy, c-format
-#| msgid "`%s' cannot be used with `%s'"
+#: config/tc-i386.c:9855
+#, c-format
msgid "mnemonic suffix used with `%s'"
-msgstr "«%s» no puede ser utilizado con «%s»"
+msgstr "sufijo de mnemónico utilizado con «%s»"
-#: config/tc-i386.c:9737
+#: config/tc-i386.c:9860
msgid "NOTE: Such forms are deprecated and will be rejected by a future version of the assembler"
-msgstr ""
+msgstr "NOTA: esas formas están obsoletas y serán rechazadas por futuras versiones del ensamblador"
-#: config/tc-i386.c:9822
-#, fuzzy, c-format
-#| msgid "`%s' operand %d must use `%ses' segment"
+#: config/tc-i386.c:9945
+#, c-format
msgid "`%s' operand %u must use `%ses' segment"
-msgstr "«%s» operando %d debe utilizar `%ses' como segmento"
+msgstr "el operando de «%s» %u debe utilizar el segmento `%ses'"
-#: config/tc-i386.c:9952
+#: config/tc-i386.c:10075
msgid "generating 16-bit `iret' for .code16gcc directive"
-msgstr ""
+msgstr "generando «iret» de 16 bits para directiva .code16gcc"
-#: config/tc-i386.c:9956
+#: config/tc-i386.c:10079
#, c-format
msgid "generating 32-bit `%s', unlike earlier gas versions"
-msgstr ""
+msgstr "generando «%s» de 32 bits, a diferencia de versiones anteriores de gas"
-#: config/tc-i386.c:10120
+#: config/tc-i386.c:10243
#, c-format
msgid "ambiguous operand size for `%s'"
msgstr "tamaño de operando ambiguo para «%s»"
-#: config/tc-i386.c:10125
-#, fuzzy, c-format
-#| msgid "no instruction mnemonic suffix given and no register operands; can't size instruction"
+#: config/tc-i386.c:10248
+#, c-format
msgid "no instruction mnemonic suffix given and no register operands; can't size `%s'"
-msgstr "no se dio un sufijo mnemónico de instrucción y ningún operando de registro; no se puede determinar el tamaño de la instrucción"
+msgstr "no se dio un sufijo mnemónico de instrucción ni ningún operando de registro; no se puede determinar el tamaño de «%s»"
-#: config/tc-i386.c:10130
-#, fuzzy, c-format
-#| msgid "unrecognized default cpu `%s'"
+#: config/tc-i386.c:10253
+#, c-format
msgid "%s; using default for `%s'"
-msgstr "no reconocido el cpu por defecto «%s»"
+msgstr "%s; se utiliza el valor predeterminado de «%s»"
-#: config/tc-i386.c:10132
-#, fuzzy
-#| msgid "ambiguous operand size for `%s'"
+#: config/tc-i386.c:10255
msgid "ambiguous operand size"
-msgstr "tamaño de operando ambiguo para «%s»"
+msgstr "tamaño de operando ambiguo"
-#: config/tc-i386.c:10133
-#, fuzzy
-#| msgid "no instruction mnemonic suffix given and no register operands; can't size instruction"
+#: config/tc-i386.c:10256
msgid "no instruction mnemonic suffix given and no register operands"
-msgstr "no se dio un sufijo mnemónico de instrucción y ningún operando de registro; no se puede determinar el tamaño de la instrucción"
+msgstr "no se dio sufijo de mnemónico de instrucción ni operandos de registro"
-#: config/tc-i386.c:10282
+#: config/tc-i386.c:10405
#, c-format
msgid "16-bit addressing unavailable for `%s'"
-msgstr ""
+msgstr "direccionamiento de 16 bits no disponible para «%s»"
-#: config/tc-i386.c:10350
-#, fuzzy, c-format
-#| msgid "invalid register operand: %s"
+#: config/tc-i386.c:10473
+#, c-format
msgid "invalid register operand size for `%s'"
-msgstr "operando registrado inválido: %s"
+msgstr "tamaño de operando de registro no válido para «%s»"
#. Any other register is bad.
-#: config/tc-i386.c:10389 config/tc-i386.c:10413 config/tc-i386.c:10453
-#: config/tc-i386.c:10490
+#: config/tc-i386.c:10512 config/tc-i386.c:10536 config/tc-i386.c:10576
+#: config/tc-i386.c:10613
#, c-format
msgid "`%s%s' not allowed with `%s%c'"
msgstr "no se permite `%s%s' con `%s%c'"
-#: config/tc-i386.c:10426 config/tc-i386.c:10465 config/tc-i386.c:10502
+#: config/tc-i386.c:10549 config/tc-i386.c:10588 config/tc-i386.c:10625
#, c-format
msgid "incorrect register `%s%s' used with `%c' suffix"
-msgstr "el registro incorrecto `%s%s' utilizado con `%c' como sufijo"
+msgstr "registro incorrecto `%s%s' utilizado con el sufijo `%c'"
-#: config/tc-i386.c:10592
+#: config/tc-i386.c:10715
msgid "no instruction mnemonic suffix given; can't determine immediate size"
-msgstr "no se dio un sufijo mnemónico de instrucción; no se puede determinar el tamaño inmediato"
+msgstr "no se dio un sufijo de mnemónico de instrucción; no se puede determinar el tamaño inmediato"
-#: config/tc-i386.c:10799
+#: config/tc-i386.c:10921
#, c-format
msgid "operand %u `%s%s' implicitly denotes `%s%s' to `%s%s' group in `%s'"
-msgstr ""
+msgstr "el operando %u «%s%s» denota implícitamente «%s%s» al grupo «%s%s» en «%s»"
#. Reversed arguments on faddp or fmulp.
-#: config/tc-i386.c:10846
+#: config/tc-i386.c:10968
#, c-format
msgid "translating to `%s %s%s,%s%s'"
-msgstr "se traslada a `%s %s%s,%s%s'"
+msgstr "traduciendo a `%s %s%s,%s%s'"
#. Extraneous `l' suffix on fp insn.
-#: config/tc-i386.c:10853
+#: config/tc-i386.c:10975
#, c-format
msgid "translating to `%s %s%s'"
-msgstr "se traslada a `%s %s%s'"
+msgstr "traduciendo a `%s %s%s'"
-#: config/tc-i386.c:10866
-#, fuzzy, c-format
-#| msgid "you can't `pop %scs'"
+#: config/tc-i386.c:10988
+#, c-format
msgid "you can't `%s %s%s'"
-msgstr "no se puede hacer `pop %scs'"
+msgstr "no se puede hacer «%s %s%s»"
-#: config/tc-i386.c:10923
+#: config/tc-i386.c:11045
#, c-format
msgid "segment override on `%s' is ineffectual"
msgstr "segmento invalidado en «%s» no tiene efecto"
-#: config/tc-i386.c:11381 config/tc-loongarch.c:1245 config/tc-riscv.c:1979
-#, fuzzy
-#| msgid "only constant offsets supported in absolute section"
+#: config/tc-i386.c:11506 config/tc-loongarch.c:1222 config/tc-riscv.c:1990
msgid "relaxable branches not supported in absolute section"
-msgstr "solo se admiten los desplazamientos constantes en la sección absoluta"
+msgstr "solo se admiten bifurcaciones relajables en sección absoluta"
-#: config/tc-i386.c:11416 config/tc-i386.c:11559 config/tc-i386.c:11641
-#, fuzzy, c-format
-#| msgid "skipping prefixes on this instruction"
+#: config/tc-i386.c:11541 config/tc-i386.c:11684 config/tc-i386.c:11766
+#, c-format
msgid "skipping prefixes on `%s'"
-msgstr "omitiendo prefijos sobre esta instrucción"
+msgstr "omitiendo prefijos en «%s»"
-#: config/tc-i386.c:11667
+#: config/tc-i386.c:11792
msgid "16-bit jump out of range"
-msgstr "16-bit omitido fuera de rango"
+msgstr "salto de 16 bits fuera de rango"
-#: config/tc-i386.c:11694 config/tc-i386.c:12436
+#: config/tc-i386.c:11819 config/tc-i386.c:12567
msgid "pseudo prefix without instruction"
-msgstr "pseudo prefijo sin instrucción"
+msgstr "pseudoprefijo sin instrucción"
-#: config/tc-i386.c:11706
-#, fuzzy
-#| msgid "pseudo prefix without instruction"
+#: config/tc-i386.c:11831
msgid "pseudo prefix ahead of label; ignoring"
-msgstr "pseudo prefijo sin instrucción"
+msgstr "pseudoprefijo por delante de etiqueta; se descarta"
-#: config/tc-i386.c:12025 config/tc-i386.c:12058 config/tc-i386.c:12147
+#: config/tc-i386.c:12150 config/tc-i386.c:12184 config/tc-i386.c:12273
#, c-format
msgid "`%s` skips -malign-branch-boundary on `%s`"
-msgstr ""
+msgstr "«%s» omite -malign-branch-boundary sobre «%s»"
-#: config/tc-i386.c:12316
+#: config/tc-i386.c:12446
msgid "use .code16 to ensure correct addressing mode"
msgstr "use .code16 para asegurar el modo de direccionamiento correcto"
-#: config/tc-i386.c:12344
-#, fuzzy, c-format
-#| msgid "instruction `%s' isn't supported in 16-bit mode."
+#: config/tc-i386.c:12474
+#, c-format
msgid "Cannot convert `%s' in 16-bit mode"
-msgstr "la instrucción «%s» no admitido en modo 16-bit."
+msgstr "No se puede convertir «%s» en modo de 16 bits."
-#: config/tc-i386.c:12346
+#: config/tc-i386.c:12476
#, c-format
msgid "Cannot convert `%s' with `-momit-lock-prefix=yes' in effect"
-msgstr ""
+msgstr "No se puede convertir «%s» con `-momit-lock-prefix=yes' en efecto"
-#: config/tc-i386.c:12591 config/tc-i386.c:12594
+#: config/tc-i386.c:12724 config/tc-i386.c:12727
#, c-format
msgid "instruction length of %u bytes exceeds the limit of 15"
-msgstr ""
+msgstr "la longitud de %u bytes de la instrucción excede el límite de 15"
-#: config/tc-i386.c:13145
+#: config/tc-i386.c:13299
#, c-format
msgid "@%s reloc is not supported with %d-bit output format"
msgstr "no se admiten las reubicaciones @%s con el formato de salida de %d bits"
-#: config/tc-i386.c:13203
+#: config/tc-i386.c:13357
#, c-format
msgid "missing or invalid expression `%s'"
-msgstr "expresión ausentente o no válida «%s»"
+msgstr "expresión ausente o no válida «%s»"
-#: config/tc-i386.c:13212
-#, fuzzy, c-format
-#| msgid "invalid LOC expression"
+#: config/tc-i386.c:13366
+#, c-format
msgid "invalid PLT expression `%s'"
-msgstr "expresión LOC no válida"
+msgstr "expresión PLT no válida «%s»"
-#: config/tc-i386.c:13311
-#, fuzzy
-#| msgid "hard-float conflicts with specified fpu"
+#: config/tc-i386.c:13466
msgid "pseudo-prefix conflicts with encoding specifier"
-msgstr "hard-float tiene conflictos con la unidad de coma flotante (fpu) especificada"
+msgstr "pseudoprefijo en conflicto con especificador de codificación"
-#: config/tc-i386.c:13335
+#: config/tc-i386.c:13490
msgid "illegal prefix used with VEX/XOP/EVEX"
-msgstr ""
+msgstr "prefijo ilegal utilizado con VEX/XOP/EVEX"
+
+#: config/tc-i386.c:13769
+msgid "SCC/OSZC specifier cannot be used here"
+msgstr "especificador SCC/OSZC no se puede usar aquí"
-#: config/tc-i386.c:13646
+#: config/tc-i386.c:13834
#, c-format
msgid "opcode residual (%#<PRIx64>) too wide"
-msgstr ""
+msgstr "residuo de código de operación (%#<PRIx64>) demasiado ancho"
-#: config/tc-i386.c:13662
+#: config/tc-i386.c:13850
msgid "eGPR use conflicts with encoding specifier"
-msgstr ""
+msgstr "uso de eGPR en conflicto con especificador de codificación"
-#: config/tc-i386.c:13683 config/tc-i386.c:13727
-#, fuzzy
-#| msgid "Too many registers popped"
+#: config/tc-i386.c:13871 config/tc-i386.c:13923
msgid "too many register/memory operands"
-msgstr "Demasiados registros aparecidos"
+msgstr "demasiados operandos de registro/memoria"
-#: config/tc-i386.c:13694 config/tc-i386.c:13701
-#, fuzzy
-#| msgid "too few operands"
+#: config/tc-i386.c:13883 config/tc-i386.c:13890 config/tc-i386.c:13897
msgid "too few register/memory operands"
-msgstr "muy pocos operandos"
+msgstr "demasiados pocos operandos de registro/memoria"
-#: config/tc-i386.c:13714
-#, fuzzy, c-format
-#| msgid "constant doesn't fit in 4 bits"
+#: config/tc-i386.c:13907
+#, c-format
msgid "constant doesn't fit in %d bits"
-msgstr "constante no cabe en 4 bits"
+msgstr "constante no cabe en %d bits"
-#: config/tc-i386.c:13778
+#: config/tc-i386.c:13974
msgid "VSIB unavailable with legacy encoding"
-msgstr ""
+msgstr "VSIB no disponible con codificación heredada"
#. We could allow two register operands, encoding the 2nd one in
#. an 8-bit immediate like for 4-register-operand insns, but that
#. would require ugly fiddling with process_operands() and/or
#. build_modrm_byte().
-#: config/tc-i386.c:13789
-#, fuzzy
-#| msgid "Too many registers popped"
+#: config/tc-i386.c:13985
msgid "too many register operands with VSIB"
-msgstr "Demasiados registros aparecidos"
+msgstr "demasiados operandos de registro con VSIB"
-#: config/tc-i386.c:13808
+#: config/tc-i386.c:14004
#, c-format
msgid "can't encode register '%s%s' with VEX/XOP/EVEX"
-msgstr ""
+msgstr "no se puede codificar el registro «%s%s» con VEX/XOP/EVEX"
-#: config/tc-i386.c:14013
-#, fuzzy
-#| msgid "Conflicting operand modifiers"
+#: config/tc-i386.c:14209
msgid "conflicting .insn operands"
-msgstr "Modificadores de operando en conflicto"
+msgstr "operandos de .insn en conflicto"
-#: config/tc-i386.c:14046 read.c:4318
-#, fuzzy
-#| msgid "pseudo instruction `%s' not supported"
+#: config/tc-i386.c:14217
+#, c-format
+msgid "APX functionality cannot be used with %s encodings"
+msgstr "la funcionalidad APX no puede utilizarse con codificaciones %s"
+
+#: config/tc-i386.c:14242
+msgid "opcode space cannot be larger than 7"
+msgstr "el espacio de código de operación no puede ser mayor que 7"
+
+#: config/tc-i386.c:14247
+msgid "ND and broadcast cannot be used at the same time"
+msgstr "ND y difusión no pueden utilizarse a la vez"
+
+#: config/tc-i386.c:14252
+msgid "{nf} and masking cannot be used at the same time"
+msgstr "{nf} y enmascaramiento no pueden utilizarse a la vez"
+
+#: config/tc-i386.c:14258
+msgid "SCC cannot be used at the same time {nf} / masking"
+msgstr "SCC no puede utilizarse a la vez {nf} / enmascaramiento"
+
+#: config/tc-i386.c:14278 read.c:4381
msgid "SCFI: hand-crafting instructions not supported"
-msgstr "pseudo instrucción «%s» no admitida"
+msgstr "SCFI: nos se admiten las instrucciones artesanales"
-#: config/tc-i386.c:14115
-#, fuzzy, c-format
-#| msgid "duplicated `%s'"
+#: config/tc-i386.c:14347
+#, c-format
msgid "duplicated `{%s}'"
-msgstr "duplicado «%s»"
+msgstr "«%s» duplicado"
-#: config/tc-i386.c:14188
+#: config/tc-i386.c:14420
#, c-format
msgid "Unsupported broadcast: `%s'"
-msgstr "No admitió emisión: «%s»"
+msgstr "Emisión no admitida: «%s»"
-#: config/tc-i386.c:14263
+#: config/tc-i386.c:14495
#, c-format
msgid "`%s%s' can't be used for write mask"
-msgstr "`%s%s' no se puede ser empleado para máscara de escritura"
+msgstr "`%s%s' no puede utilizarse para máscara de escritura"
-#: config/tc-i386.c:14283
+#: config/tc-i386.c:14515
#, c-format
msgid "invalid write mask `%s'"
msgstr "marca de escritura no válida «%s»"
-#: config/tc-i386.c:14304
+#: config/tc-i386.c:14536
#, c-format
msgid "duplicated `%s'"
-msgstr "duplicado «%s»"
+msgstr "«%s» duplicado"
-#: config/tc-i386.c:14314
+#: config/tc-i386.c:14546
#, c-format
msgid "invalid zeroing-masking `%s'"
-msgstr "invalida mascarada a cero `%s'"
+msgstr "máscarada cero no válida `%s'"
-#: config/tc-i386.c:14332
+#: config/tc-i386.c:14564
#, c-format
msgid "missing `}' in `%s'"
-msgstr "ausente `}' en «%s»"
+msgstr "falta `}' en «%s»"
#. We don't know this one.
-#: config/tc-i386.c:14344
+#: config/tc-i386.c:14576
#, c-format
msgid "unknown vector operation: `%s'"
-msgstr "operación de vector desconocida: «%s»"
+msgstr "operación vectorial desconocida: «%s»"
-#: config/tc-i386.c:14350
+#: config/tc-i386.c:14582
msgid "zeroing-masking only allowed with write mask"
-msgstr ""
+msgstr "máscara cero solo permitida con máscara de escritura"
-#: config/tc-i386.c:14370
+#: config/tc-i386.c:14602
#, c-format
msgid "at most %d immediate operands are allowed"
-msgstr "solo se permiten cuando mucho %d operandos inmediatos"
+msgstr "solo se permiten como mucho %d operandos inmediatos"
-#: config/tc-i386.c:14409 config/tc-i386.c:14668
+#: config/tc-i386.c:14641 config/tc-i386.c:14900
#, c-format
msgid "junk `%s' after expression"
msgstr "«%s» basura tras la expresión"
-#: config/tc-i386.c:14422
+#: config/tc-i386.c:14654
#, c-format
msgid "illegal immediate register operand %s"
msgstr "operando de registro inmediato ilegal %s"
-#: config/tc-i386.c:14436
+#: config/tc-i386.c:14668
#, c-format
msgid "missing or invalid immediate expression `%s'"
-msgstr "expresión inmediata ausentente o no válida «%s»"
+msgstr "expresión inmediata ausente o no válida «%s»"
-#: config/tc-i386.c:14459 config/tc-i386.c:14747
+#: config/tc-i386.c:14691 config/tc-i386.c:14979
#, c-format
msgid "unimplemented segment %s in operand"
msgstr "segmento %s sin implementar en operando"
-#: config/tc-i386.c:14508
+#: config/tc-i386.c:14740
#, c-format
msgid "expecting scale factor of 1, 2, 4, or 8: got `%s'"
-msgstr "se esperaba un factor de escala de 1, 2, 4, u 8: se obtuvo «%s»"
+msgstr "se esperaba un factor de escala de 1, 2, 4 u 8: se obtuvo «%s»"
-#: config/tc-i386.c:14517
+#: config/tc-i386.c:14749
#, c-format
msgid "scale factor of %d without an index register"
msgstr "factor de escala de %d sin un registro índice"
-#: config/tc-i386.c:14539
+#: config/tc-i386.c:14771
#, c-format
msgid "at most %d displacement operands are allowed"
-msgstr "solo se permiten hasta %d operandos de desubicación"
+msgstr "solo se permiten como mucho %d operandos de desplazamiento"
-#: config/tc-i386.c:14723
+#: config/tc-i386.c:14955
#, c-format
msgid "missing or invalid displacement expression `%s'"
-msgstr "expresión de desubicación ausentente o no válida «%s»"
+msgstr "expresión de desplazamiento ausennte o no válida «%s»"
-#: config/tc-i386.c:14898
+#: config/tc-i386.c:15144
#, c-format
msgid "`%s' is not valid here (expected `%c%s%s%c')"
msgstr "«%s» no es válido aquí (se esperaba `%c%s%s%c')"
-#: config/tc-i386.c:14910
+#: config/tc-i386.c:15156
#, c-format
msgid "`%s' is not a valid %s expression"
msgstr "«%s» no es una expresión %s válida"
-#: config/tc-i386.c:14924
-#, fuzzy, c-format
-#| msgid "invalid suffix"
+#: config/tc-i386.c:15170
+#, c-format
msgid "invalid `%s' prefix"
-msgstr "sufijo inválido"
+msgstr "prefijo «%s» inválido"
-#: config/tc-i386.c:14954
+#: config/tc-i386.c:15200
#, c-format
msgid "`%s' cannot be used here"
msgstr "`%s' no puede ser empleado aquí"
-#: config/tc-i386.c:14961
+#: config/tc-i386.c:15207
msgid "register scaling is being ignored here"
-msgstr "el registro escalado está siendo descartado aquí"
+msgstr "el escalado de registro está siendo descartado aquí"
-#: config/tc-i386.c:15009
+#: config/tc-i386.c:15255
#, c-format
msgid "Missing '}': '%s'"
-msgstr "Ausente '}': «%s»"
+msgstr "Falta '}': «%s»"
-#: config/tc-i386.c:15015
+#: config/tc-i386.c:15261
#, c-format
msgid "Junk after '}': '%s'"
msgstr "Basura tras '}': «%s»"
-#: config/tc-i386.c:15090
+#: config/tc-i386.c:15336
#, c-format
msgid "bad memory operand `%s'"
msgstr "operando de memoria incorrecto «%s»"
-#: config/tc-i386.c:15106
+#: config/tc-i386.c:15352
#, c-format
msgid "junk `%s' after register"
msgstr "«%s» basura tras registro"
-#: config/tc-i386.c:15113
-#, fuzzy, c-format
-#| msgid "`%s' cannot be used here"
+#: config/tc-i386.c:15359
+#, c-format
msgid "`%s%s' cannot be used here"
-msgstr "`%s' no puede ser empleado aquí"
+msgstr "`%s%s' no puede ser empleado aquí"
-#: config/tc-i386.c:15136
-#, fuzzy, c-format
-#| msgid "`%s' is deprecated, use `%s'"
+#: config/tc-i386.c:15382
+#, c-format
msgid "`%s': misplaced `{%s}'"
-msgstr "«%s» es obsoleta, emplee «%s»"
+msgstr "«%s»: «{%s}» fuera de lugar"
-#: config/tc-i386.c:15143 config/tc-i386.c:15317 config/tc-i386.c:15361
+#: config/tc-i386.c:15389 config/tc-i386.c:15563 config/tc-i386.c:15607
#, c-format
msgid "bad register name `%s'"
msgstr "nombre de registro incorrecto «%s»"
-#: config/tc-i386.c:15151
+#: config/tc-i386.c:15397
msgid "immediate operand illegal with absolute jump"
msgstr "operando inmediato ilegal con salto absoluto"
-#: config/tc-i386.c:15158
-#, fuzzy, c-format
-#| msgid "RC/SAE operand must follow immediate operands"
+#: config/tc-i386.c:15404
+#, c-format
msgid "`%s': RC/SAE operand must follow immediate operands"
-msgstr "Operando RC/SAE debe seguir inmediatamente operandos"
+msgstr "«%s»: operando RC/SAE debe seguir a operandos inmediatos"
-#: config/tc-i386.c:15171
-#, fuzzy, c-format
-#| msgid "`%s' is deprecated, use `%s'"
+#: config/tc-i386.c:15417
+#, c-format
msgid "`%s': misplaced `%s'"
-msgstr "«%s» es obsoleta, emplee «%s»"
+msgstr "«%s»: «%s» fuera de lugar"
-#: config/tc-i386.c:15222
+#: config/tc-i386.c:15468
msgid "unbalanced figure braces"
-msgstr ""
+msgstr "paréntesis de cifra descompensados"
-#: config/tc-i386.c:15306
+#: config/tc-i386.c:15552
#, c-format
msgid "expecting `,' or `)' after index register in `%s'"
msgstr "se esperaba `,' ó `)' tras registro índice en «%s»"
-#: config/tc-i386.c:15334
+#: config/tc-i386.c:15580
#, c-format
msgid "expecting `)' after scale factor in `%s'"
msgstr "se esperaba `)' tras factor de escala en «%s»"
-#: config/tc-i386.c:15342
+#: config/tc-i386.c:15588
#, c-format
msgid "expecting index register or scale factor after `,'; got '%c'"
msgstr "se esperaba un registro índice o un factor de escala tras `,'; se obtuvo '%c'"
-#: config/tc-i386.c:15350
+#: config/tc-i386.c:15596
#, c-format
msgid "expecting `,' or `)' after base register in `%s'"
msgstr "se esperaba `,' ó `)' tras registro base en «%s»"
#. It's not a memory operand; argh!
-#: config/tc-i386.c:15400
+#: config/tc-i386.c:15646
#, c-format
msgid "invalid char %s beginning operand %d `%s'"
msgstr "carácter inválido %s al inicio de operando %d «%s»"
-#: config/tc-i386.c:16059
+#: config/tc-i386.c:16305
#, c-format
msgid "%s:%u: add %d%s at 0x%llx to align %s within %d-byte boundary\n"
-msgstr ""
+msgstr "%s:%u: añade %d%s en 0x%llx para encuadrar %s a %d bytes\n"
-#: config/tc-i386.c:16062
+#: config/tc-i386.c:16308
#, c-format
msgid "%s:%u: add additional %d%s at 0x%llx to align %s within %d-byte boundary\n"
-msgstr ""
+msgstr "%s:%u: añade %d%s adicional en 0x%llx para encuadrar %s a %d bytes\n"
-#: config/tc-i386.c:16068
+#: config/tc-i386.c:16314
#, c-format
msgid "%s:%u: add %d%s-byte nop at 0x%llx to align %s within %d-byte boundary\n"
-msgstr ""
+msgstr "%s:%u: añade nop de %d%s bytes en 0x%llx para encuadrar %s a %d bytes\n"
-#: config/tc-i386.c:16135
+#: config/tc-i386.c:16381
msgid "long jump required"
msgstr "se requiere un salto largo"
-#: config/tc-i386.c:16190
+#: config/tc-i386.c:16436
msgid "jump target out of range"
-msgstr "omite objetivo fuera de rango"
+msgstr "objetivo del salto fuera de rango"
-#: config/tc-i386.c:16668
-#, fuzzy, c-format
-#| msgid "register r0 cannot be used here"
+#: config/tc-i386.c:16916
+#, c-format
msgid "register '%s%s' cannot be used here"
-msgstr "el registro r0 no se puede usar aquí"
+msgstr "el registro «%s%s» no se puede usar aquí"
-#: config/tc-i386.c:16934
-#, fuzzy, c-format
-#| msgid "invalid -mtune= option: `%s'"
+#: config/tc-i386.c:17182
+#, c-format
msgid "invalid -mx86-used-note= option: `%s'"
-msgstr "opción -mtune= no válida: «%s»"
+msgstr "opción -mx86-used-note= no válida: «%s»"
-#: config/tc-i386.c:16957
+#: config/tc-i386.c:17205
msgid "no compiled in support for x86_64"
-msgstr "no se compiló el soporte para x86_64"
+msgstr "no se compiló en soporte para x86_64"
-#: config/tc-i386.c:16976
+#: config/tc-i386.c:17224
msgid "no compiled in support for 32bit x86_64"
-msgstr "no se compiló el soporte para x86_64 de 32bit"
+msgstr "no se compiló en soporte para x86_64 de 32bit"
-#: config/tc-i386.c:16997
-#, fuzzy
-#| msgid "no compiled in support for x86_64"
+#: config/tc-i386.c:17245
msgid "no compiled in support for ix86"
-msgstr "no se compiló el soporte para x86_64"
+msgstr "no se compiló en soporte para ix86"
-#: config/tc-i386.c:17030 config/tc-i386.c:17116
+#: config/tc-i386.c:17278 config/tc-i386.c:17364
#, c-format
msgid "invalid -march= option: `%s'"
msgstr "opción -march= no válida: «%s»"
-#: config/tc-i386.c:17086
-#, fuzzy
-#| msgid "Unrecognized dependency specifier %d\n"
+#: config/tc-i386.c:17334
msgid "Unrecognized vector size specifier ignored"
-msgstr "No reconocido el especificador de dependencia %d\n"
+msgstr "Se descarta especificador de tamaño de vector no reconocido"
-#: config/tc-i386.c:17126 config/tc-i386.c:17138
+#: config/tc-i386.c:17374 config/tc-i386.c:17386
#, c-format
msgid "invalid -mtune= option: `%s'"
msgstr "opción -mtune= no válida: «%s»"
-#: config/tc-i386.c:17147
+#: config/tc-i386.c:17395
#, c-format
msgid "invalid -mmnemonic= option: `%s'"
msgstr "opción -mmnemonic= no válida: «%s»"
-#: config/tc-i386.c:17156
+#: config/tc-i386.c:17404
#, c-format
msgid "invalid -msyntax= option: `%s'"
msgstr "opción -msyntax= no válida: «%s»"
-#: config/tc-i386.c:17184
+#: config/tc-i386.c:17432
#, c-format
msgid "invalid -msse-check= option: `%s'"
msgstr "opción -msse-check= no válida: «%s»"
-#: config/tc-i386.c:17195
+#: config/tc-i386.c:17443
#, c-format
msgid "invalid -moperand-check= option: `%s'"
msgstr "opción -moperand-check= no válida: «%s»"
-#: config/tc-i386.c:17204
+#: config/tc-i386.c:17452
#, c-format
msgid "invalid -mavxscalar= option: `%s'"
msgstr "opción -mavxscalar= no válida: «%s»"
-#: config/tc-i386.c:17213
-#, fuzzy, c-format
-#| msgid "invalid -mevexwig= option: `%s'"
+#: config/tc-i386.c:17461
+#, c-format
msgid "invalid -mvexwig= option: `%s'"
-msgstr "opción -mevexwig= no válida: «%s»"
+msgstr "opción -mvexwig= no válida: «%s»"
-#: config/tc-i386.c:17228
+#: config/tc-i386.c:17476
#, c-format
msgid "invalid -mevexlig= option: `%s'"
msgstr "opción -mevexlig= inválido: «%s»"
-#: config/tc-i386.c:17241
+#: config/tc-i386.c:17489
#, c-format
msgid "invalid -mevexrcig= option: `%s'"
-msgstr "invalida opción -mevexrcig=: «%s»"
+msgstr "opción -mevexrcig= no válida: «%s»"
-#: config/tc-i386.c:17250
+#: config/tc-i386.c:17498
#, c-format
msgid "invalid -mevexwig= option: `%s'"
msgstr "opción -mevexwig= no válida: «%s»"
-#: config/tc-i386.c:17265
+#: config/tc-i386.c:17513
#, c-format
msgid "invalid -momit-lock-prefix= option: `%s'"
msgstr "opción -momit-lock-prefix= no válida: «%s»"
-#: config/tc-i386.c:17274
+#: config/tc-i386.c:17522
#, c-format
msgid "invalid -mfence-as-lock-add= option: `%s'"
msgstr "opción -mfence-as-lock-add= no válida: «%s»"
-#: config/tc-i386.c:17283
-#, fuzzy, c-format
-#| msgid "invalid -mfence-as-lock-add= option: `%s'"
+#: config/tc-i386.c:17531
+#, c-format
msgid "invalid -mlfence-after-load= option: `%s'"
-msgstr "opción -mfence-as-lock-add= no válida: «%s»"
+msgstr "opción -mlfence-after-load= no válida: «%s»"
-#: config/tc-i386.c:17300
-#, fuzzy, c-format
-#| msgid "invalid -mfence-as-lock-add= option: `%s'"
+#: config/tc-i386.c:17548
+#, c-format
msgid "invalid -mlfence-before-indirect-branch= option: `%s'"
-msgstr "opción -mfence-as-lock-add= no válida: «%s»"
+msgstr "opción -mlfence-before-indirect-branch= no válida: «%s»"
-#: config/tc-i386.c:17314
-#, fuzzy, c-format
-#| msgid "invalid -mfence-as-lock-add= option: `%s'"
+#: config/tc-i386.c:17562
+#, c-format
msgid "invalid -mlfence-before-ret= option: `%s'"
-msgstr "opción -mfence-as-lock-add= no válida: «%s»"
+msgstr "opción -mlfence-before-ret= no válida: «%s»"
-#: config/tc-i386.c:17324
+#: config/tc-i386.c:17572
#, c-format
msgid "invalid -mrelax-relocations= option: `%s'"
-msgstr "opción no válida -mrelax-relocations=: «%s»"
+msgstr "opción -mrelax-relocations= no válida: «%s»"
-#: config/tc-i386.c:17353
+#: config/tc-i386.c:17601
#, c-format
msgid "invalid -malign-branch-boundary= value: %s"
-msgstr ""
+msgstr "valor de -malign-branch-boundary= no válido: %s"
-#: config/tc-i386.c:17367
-#, fuzzy, c-format
-#| msgid "invalid -momit-lock-prefix= option: `%s'"
+#: config/tc-i386.c:17615
+#, c-format
msgid "invalid -malign-branch-prefix-size= value: %s"
-msgstr "opción -momit-lock-prefix= no válida: «%s»"
+msgstr "valor de -malign-branch-prefix-size= no válido: %s"
-#: config/tc-i386.c:17394
-#, fuzzy, c-format
-#| msgid "invalid -march= option: `%s'"
+#: config/tc-i386.c:17642
+#, c-format
msgid "invalid -malign-branch= option: `%s'"
-msgstr "opción -march= no válida: «%s»"
+msgstr "opción -malign-branch= no válida: «%s»"
-#: config/tc-i386.c:17443
-#, fuzzy, c-format
-#| msgid "invalid -msse-check= option: `%s'"
+#: config/tc-i386.c:17691
+#, c-format
msgid "invalid -mtls-check= option: `%s'"
-msgstr "opción -msse-check= no válida: «%s»"
+msgstr "opción -mtls-check= no válida: «%s»"
-#: config/tc-i386.c:17569
-#, fuzzy, c-format
-#| msgid ""
-#| " -Q ignored\n"
-#| " -V print assembler version number\n"
-#| " -k ignored\n"
+#: config/tc-i386.c:17817
+#, c-format
msgid ""
" -Qy, -Qn ignored\n"
" -V print assembler version number\n"
" -k ignored\n"
msgstr ""
-" -Q se descarta\n"
+" -Qy, -Qn se descarta\n"
" -V escribe el número de versión del ensamblador\n"
-" -k descartado\n"
+" -k se descarta\n"
-#: config/tc-i386.c:17574
-#, fuzzy, c-format
-#| msgid ""
-#| " -n Do not optimize code alignment\n"
-#| " -q quieten some warnings\n"
+#: config/tc-i386.c:17822
+#, c-format
msgid ""
" -n do not optimize code alignment\n"
" -O{012s} attempt some code optimizations\n"
" -q quieten some warnings\n"
msgstr ""
-" -n No optimiza la alineamiento de código\n"
-" -q omite algunos avisos\n"
+" -n no optimiza la alineación de código\n"
+" -O{012s} intenta algunas optimizaciones de código\n"
+" -q silencia algunos avisos\n"
-#: config/tc-i386.c:17579
+#: config/tc-i386.c:17827
#, c-format
msgid " -s ignored\n"
msgstr " -s se descarta\n"
-#: config/tc-i386.c:17584
-#, fuzzy, c-format
-#| msgid " --32/--64/--x32 generate 32bit/64bit/x32 code\n"
+#: config/tc-i386.c:17832
+#, c-format
msgid " --32/--64/--x32 generate 32bit/64bit/x32 object\n"
-msgstr " --32/--64/--x32 genera código 32bit/64bit/x32\n"
+msgstr " --32/--64/--x32 genera objeto de 32bits/64bits/x32\n"
-#: config/tc-i386.c:17587
-#, fuzzy, c-format
-#| msgid " --32/--64/--x32 generate 32bit/64bit/x32 code\n"
+#: config/tc-i386.c:17835
+#, c-format
msgid " --32/--64 generate 32bit/64bit object\n"
-msgstr " --32/--64/--x32 genera código 32bit/64bit/x32\n"
+msgstr " --32/--64 genera objeto de 32bits/64bits\n"
-#: config/tc-i386.c:17592
+#: config/tc-i386.c:17840
#, c-format
msgid " --divide do not treat `/' as a comment character\n"
msgstr " --divide no trata `/' como un carácter de comentario\n"
-#: config/tc-i386.c:17595
+#: config/tc-i386.c:17843
#, c-format
msgid " --divide ignored\n"
msgstr " --divide se descarta\n"
-#: config/tc-i386.c:17598
+#: config/tc-i386.c:17846
#, c-format
msgid ""
" -march=CPU[,+EXTENSION...]\n"
" generate code for CPU and EXTENSION, CPU is one of:\n"
msgstr ""
" -march=CPU[,+EXTENSIÓN...]\n"
-" genera código para el CPU y la EXTENSIÓN. CPU es uno de:\n"
+" genera código para CPU y EXTENSIÓN. CPU es una de:\n"
-#: config/tc-i386.c:17602
-#, fuzzy, c-format
-#| msgid " EXTENSION is combination of:\n"
+#: config/tc-i386.c:17850
+#, c-format
msgid " EXTENSION is combination of (possibly \"no\"-prefixed):\n"
-msgstr " EXTENSIÓN es una combinación de:\n"
+msgstr " EXTENSIÓN es una combinación de (posiblemente prefijado por «no»):\n"
-#: config/tc-i386.c:17605
+#: config/tc-i386.c:17853
#, c-format
msgid " -mtune=CPU optimize for CPU, CPU is one of:\n"
-msgstr " -mtune=CPU optimiza para el CPU, donde CPU es uno de:\n"
+msgstr " -mtune=CPU optimiza para la CPU, donde CPU es una de:\n"
-#: config/tc-i386.c:17608
+#: config/tc-i386.c:17856
#, c-format
msgid " -msse2avx encode SSE instructions with VEX prefix\n"
msgstr " -msse2avx codifica instrucciones SSE con prefijo VEX\n"
-#: config/tc-i386.c:17610
+#: config/tc-i386.c:17858
#, c-format
msgid ""
" -muse-unaligned-vector-move\n"
" encode aligned vector move as unaligned vector move\n"
msgstr ""
+" -muse-unaligned-vector-move\n"
+" codifica movimiento vectorial alineado como movimiento vectorial no alineado\n"
-#: config/tc-i386.c:17613
-#, fuzzy, c-format
-#| msgid ""
-#| " -msse-check=[none|error|warning]\n"
-#| " check SSE instructions\n"
+#: config/tc-i386.c:17861
+#, c-format
msgid ""
" -msse-check=[none|error|warning] (default: none)\n"
" check SSE instructions\n"
msgstr ""
-" -msse-check=[none|error|warning]\n"
-" revisa las instrucciones SSE\n"
+" -msse-check=[none|error|warning] (predefinido: none)\n"
+" comprueba las instrucciones SSE\n"
-#: config/tc-i386.c:17616
-#, fuzzy, c-format
-#| msgid ""
-#| " -moperand-check=[none|error|warning]\n"
-#| " check operand combinations for validity\n"
+#: config/tc-i386.c:17864
+#, c-format
msgid ""
" -moperand-check=[none|error|warning] (default: warning)\n"
" check operand combinations for validity\n"
msgstr ""
-" -moperand-check=[none|error|warning]\n"
-" marca combinaciones operantes para validación\n"
+" -moperand-check=[none|error|warning] (predefinido: warning)\n"
+" comprueba la validez de combinaciones de operandos\n"
-#: config/tc-i386.c:17619
-#, fuzzy, c-format
-#| msgid ""
-#| " -mavxscalar=[128|256] encode scalar AVX instructions with specific vector\n"
-#| " length\n"
+#: config/tc-i386.c:17867
+#, c-format
msgid ""
" -mavxscalar=[128|256] (default: 128)\n"
" encode scalar AVX instructions with specific vector\n"
" length\n"
msgstr ""
-" -mavxscalar=[128|256] codifica instrucciones AVX escalares con\n"
+" -mavxscalar=[128|256] (predefinido: 128)\n"
+" codifica instrucciones AVX escalares con\n"
" una longitud de vector específica\n"
-#: config/tc-i386.c:17623
-#, fuzzy, c-format
-#| msgid ""
-#| " -mevexwig=[0|1] encode EVEX instructions with specific EVEX.W value\n"
-#| " for EVEX.W bit ignored instructions\n"
+#: config/tc-i386.c:17871
+#, c-format
msgid ""
" -mvexwig=[0|1] (default: 0)\n"
" encode VEX instructions with specific VEX.W value\n"
" for VEX.W bit ignored instructions\n"
msgstr ""
-" -mevexwig=[0|1] codifica instrucciones EVEX con valor EVEX.W específico\n"
-" para instrucciones bit EVEX.W ignoradas\n"
+" -mvexwig=[0|1] (predefinido: 0)\n"
+" codifica instrucciones VEX con valor VEX.W específico\n"
+" para instrucciones de bit VEX.W ignoradas\n"
-#: config/tc-i386.c:17627
-#, fuzzy, c-format
-#| msgid ""
-#| " -mevexlig=[128|256|512] encode scalar EVEX instructions with specific vector\n"
-#| " length\n"
+#: config/tc-i386.c:17875
+#, c-format
msgid ""
" -mevexlig=[128|256|512] (default: 128)\n"
" encode scalar EVEX instructions with specific vector\n"
" length\n"
msgstr ""
-" -mevexlig=[128|256|512] codifica instrucciones EVEX escalares con\n"
+" -mevexlig=[128|256|512] (predefinido: 128)\n"
+" codifica instrucciones EVEX escalares con\n"
" longitud de vector específica\n"
-#: config/tc-i386.c:17631
-#, fuzzy, c-format
-#| msgid ""
-#| " -mevexwig=[0|1] encode EVEX instructions with specific EVEX.W value\n"
-#| " for EVEX.W bit ignored instructions\n"
+#: config/tc-i386.c:17879
+#, c-format
msgid ""
" -mevexwig=[0|1] (default: 0)\n"
" encode EVEX instructions with specific EVEX.W value\n"
" for EVEX.W bit ignored instructions\n"
msgstr ""
-" -mevexwig=[0|1] codifica instrucciones EVEX con valor EVEX.W específico\n"
-" para instrucciones bit EVEX.W ignoradas\n"
+" -mevexwig=[0|1] (predefinido: 0)\n"
+" codifica instrucciones EVEX con valor EVEX.W específico\n"
+" para instrucciones de bit EVEX.W ignoradas\n"
-#: config/tc-i386.c:17635
-#, fuzzy, c-format
-#| msgid ""
-#| " -mevexrcig=[rne|rd|ru|rz]\n"
-#| " encode EVEX instructions with specific EVEX.RC value\n"
-#| " for SAE-only ignored instructions\n"
+#: config/tc-i386.c:17883
+#, c-format
msgid ""
" -mevexrcig=[rne|rd|ru|rz] (default: rne)\n"
" encode EVEX instructions with specific EVEX.RC value\n"
" for SAE-only ignored instructions\n"
msgstr ""
-" -mevexrcig=[rne|rd|ru|rz]\n"
+" -mevexrcig=[rne|rd|ru|rz] (predefinido: rne)\n"
" codifica instrucciones EVEX con valor EVEX.RC específico\n"
-" para instrucciones ignoradas SAE-único\n"
+" para instrucciones solo SAE ignoradas\n"
-#: config/tc-i386.c:17639
-#, fuzzy, c-format
-#| msgid " -mmnemonic=[att|intel] use AT&T/Intel mnemonic\n"
+#: config/tc-i386.c:17887
+#, c-format
msgid " -mmnemonic=[att|intel] "
-msgstr " -mmnemonic=[att|intel] usa mnemónicos AT&T/Intel\n"
+msgstr " -mmnemonic=[att|intel] "
-#: config/tc-i386.c:17642
+#: config/tc-i386.c:17890
#, c-format
msgid "(default: att)\n"
-msgstr ""
+msgstr "(predefinido: att)\n"
-#: config/tc-i386.c:17644
+#: config/tc-i386.c:17892
#, c-format
msgid "(default: intel)\n"
-msgstr ""
+msgstr "(predefinido: intel)\n"
-#: config/tc-i386.c:17645
-#, fuzzy, c-format
-#| msgid " emulate output (default %s)\n"
+#: config/tc-i386.c:17893
+#, c-format
msgid " use AT&T/Intel mnemonic (AT&T syntax only)\n"
-msgstr " emula la salida (por defecto %s)\n"
+msgstr " utiliza mnemóminco AT&T/Intel (solo sintaxis AT&T)\n"
-#: config/tc-i386.c:17647
-#, fuzzy, c-format
-#| msgid " -msyntax=[att|intel] use AT&T/Intel syntax\n"
+#: config/tc-i386.c:17895
+#, c-format
msgid ""
" -msyntax=[att|intel] (default: att)\n"
" use AT&T/Intel syntax\n"
-msgstr " -msyntax=[att|intel] usa sintaxis AT&T/Intel\n"
+msgstr ""
+" -msyntax=[att|intel] (predefinido: att)\n"
+" utiliza sintaxis AT&T/Intel\n"
-#: config/tc-i386.c:17650
+#: config/tc-i386.c:17898
#, c-format
msgid " -mindex-reg support pseudo index registers\n"
msgstr " -mindex-reg admite registros de pseudo índice\n"
-#: config/tc-i386.c:17652
+#: config/tc-i386.c:17900
#, c-format
msgid " -mnaked-reg don't require `%%' prefix for registers\n"
msgstr " -mnaked-reg no requiere el prefijo `%%' para registros\n"
-#: config/tc-i386.c:17654
+#: config/tc-i386.c:17902
#, c-format
msgid " -madd-bnd-prefix add BND prefix for all valid branches\n"
-msgstr ""
+msgstr " -madd-bnd-prefix añade prefijo BND a todas las bifurcaciones válidas\n"
-#: config/tc-i386.c:17657
+#: config/tc-i386.c:17905
#, c-format
msgid " -mshared disable branch optimization for shared code\n"
-msgstr " -mshared desactiva rama optimizada para código compartido\n"
+msgstr " -mshared desactiva optimización de bifurcaciones para código compartido\n"
-#: config/tc-i386.c:17659
+#: config/tc-i386.c:17907
#, c-format
msgid " -mx86-used-note=[no|yes] "
-msgstr ""
+msgstr " -mx86-used-note=[no|yes] "
-#: config/tc-i386.c:17665
-#, fuzzy, c-format
-#| msgid " -Z generate object file even after errors\n"
+#: config/tc-i386.c:17913
+#, c-format
msgid " generate x86 used ISA and feature properties\n"
-msgstr " -Z generar fichero objeto par tras errores\n"
+msgstr " genera las propiedades de ISA y de características utilizadas x86\n"
-#: config/tc-i386.c:17669
+#: config/tc-i386.c:17917
#, c-format
msgid " -mbig-obj generate big object files\n"
-msgstr " -mbig-obj genera ficheros objetos grandes\n"
+msgstr " -mbig-obj genera ficheros objeto grandes\n"
-#: config/tc-i386.c:17672
-#, fuzzy, c-format
-#| msgid ""
-#| " -mrelax-relocations=[no|yes]\n"
-#| " generate relax relocations\n"
+#: config/tc-i386.c:17920
+#, c-format
msgid ""
" -momit-lock-prefix=[no|yes] (default: no)\n"
" strip all lock prefixes\n"
msgstr ""
-" -mrelax-relocations=[no|sí]\n"
-" genera reubicaciones relajadas\n"
+" -momit-lock-prefix=[no|yes] (predefinido: no)\n"
+" quita todos los prefijos de «lock»\n"
-#: config/tc-i386.c:17675
-#, fuzzy, c-format
-#| msgid ""
-#| " -mfence-as-lock-add=[no|yes]\n"
-#| " encode lfence, mfence and sfence as\n"
-#| " lock addl $0x0, (%%{re}sp)\n"
+#: config/tc-i386.c:17923
+#, c-format
msgid ""
" -mfence-as-lock-add=[no|yes] (default: no)\n"
" encode lfence, mfence and sfence as\n"
" lock addl $0x0, (%%{re}sp)\n"
msgstr ""
-" -mfence-as-lock-add=[no|sí]\n"
+" -mfence-as-lock-add=[no|yes] (predefinido: no)\n"
" codifica lfence, mfence y sfence como\n"
-" bloqueo addl $0x0, (%%{re}sp\n"
+" lock addl $0x0, (%%{re}sp)\n"
-#: config/tc-i386.c:17679
-#, fuzzy, c-format
-#| msgid "invalid -mrelax-relocations= option: `%s'"
+#: config/tc-i386.c:17927
+#, c-format
msgid " -mrelax-relocations=[no|yes] "
-msgstr "opción no válida -mrelax-relocations=: «%s»"
+msgstr " -mrelax-relocations=[no|yes] "
-#: config/tc-i386.c:17685
-#, fuzzy, c-format
-#| msgid ""
-#| " -mrelax-relocations=[no|yes]\n"
-#| " generate relax relocations\n"
+#: config/tc-i386.c:17933
+#, c-format
msgid " generate relax relocations\n"
-msgstr ""
-" -mrelax-relocations=[no|sí]\n"
-" genera reubicaciones relajadas\n"
+msgstr " genera reubicaciones relajadas\n"
-#: config/tc-i386.c:17688
+#: config/tc-i386.c:17936
#, c-format
msgid " -mtls-check=[no|yes] "
-msgstr ""
+msgstr " -mtls-check=[no|yes] "
-#: config/tc-i386.c:17694
-#, fuzzy, c-format
-#| msgid " EXTENSION is combination of:\n"
+#: config/tc-i386.c:17942
+#, c-format
msgid " check TLS relocation\n"
-msgstr " EXTENSIÓN es una combinación de:\n"
+msgstr " comprueba reubicación TLS\n"
-#: config/tc-i386.c:17697
+#: config/tc-i386.c:17945
#, c-format
msgid ""
" -malign-branch-boundary=NUM (default: 0)\n"
" align branches within NUM byte boundary\n"
msgstr ""
+" -malign-branch-boundary=NÚM (predefinido: 0)\n"
+" alinea las bifurcaciones en contornos de NÚM bytes\n"
-#: config/tc-i386.c:17700
+#: config/tc-i386.c:17948
#, c-format
msgid ""
" -malign-branch=TYPE[+TYPE...] (default: jcc+fused+jmp)\n"
@@ -10024,121 +9862,120 @@ msgid ""
" indirect\n"
" specify types of branches to align\n"
msgstr ""
+" -malign-branch=TIPO[+TIPO...] (predefinido: jcc+fused+jmp)\n"
+" TIPO es la combinación de jcc, fused, jmp, call,\n"
+" ret, indirect\n"
+" especifica los tipos de bifurcación que alinear\n"
-#: config/tc-i386.c:17705
+#: config/tc-i386.c:17953
#, c-format
msgid ""
" -malign-branch-prefix-size=NUM (default: 5)\n"
" align branches with NUM prefixes per instruction\n"
msgstr ""
+" -malign-branch-prefix-size=NÚM (predefinido: 5)\n"
+" alinea las bifurcaciones con NÚM prefijos por\n"
+" instrucción\n"
-#: config/tc-i386.c:17708
+#: config/tc-i386.c:17956
#, c-format
msgid ""
" -mbranches-within-32B-boundaries\n"
" align branches within 32 byte boundary\n"
msgstr ""
+" -mbranches-within-32B-boundaries\n"
+" alinea las bifurcaciones en contornos de 32 bytes\n"
-#: config/tc-i386.c:17711
-#, fuzzy, c-format
-#| msgid ""
-#| " -mrelax-relocations=[no|yes]\n"
-#| " generate relax relocations\n"
+#: config/tc-i386.c:17959
+#, c-format
msgid ""
" -mlfence-after-load=[no|yes] (default: no)\n"
" generate lfence after load\n"
msgstr ""
-" -mrelax-relocations=[no|sí]\n"
-" genera reubicaciones relajadas\n"
+" -mlfence-after-load=[no|yes] (predefinido: no)\n"
+" genera lfence después de load\n"
-#: config/tc-i386.c:17714
+#: config/tc-i386.c:17962
#, c-format
msgid ""
" -mlfence-before-indirect-branch=[none|all|register|memory] (default: none)\n"
" generate lfence before indirect near branch\n"
msgstr ""
+" -mlfence-before-indirect-branch=[none|all|register|memory] (predefinido: none)\n"
+" genera lfence antes de indirecto cerca de bifurcación\n"
-#: config/tc-i386.c:17717
-#, fuzzy, c-format
-#| msgid ""
-#| " -mrelax-relocations=[no|yes]\n"
-#| " generate relax relocations\n"
+#: config/tc-i386.c:17965
+#, c-format
msgid ""
" -mlfence-before-ret=[none|or|not|shl|yes] (default: none)\n"
" generate lfence before ret\n"
msgstr ""
-" -mrelax-relocations=[no|sí]\n"
-" genera reubicaciones relajadas\n"
+" -mlfence-before-ret=[none|or|not|shl|yes] (predefinido: none)\n"
+" genera lfence antes de ret\n"
-#: config/tc-i386.c:17720
-#, fuzzy, c-format
-#| msgid " -mamd64 accept only AMD64 ISA\n"
+#: config/tc-i386.c:17968
+#, c-format
msgid " -mamd64 accept only AMD64 ISA [default]\n"
-msgstr ""
-" -mamd64 acepta solo ISA AMD64\n"
-"\n"
+msgstr " -mamd64 acepta solo ISA AMD64 [predefinido]\n"
-#: config/tc-i386.c:17722
+#: config/tc-i386.c:17970
#, c-format
msgid " -mintel64 accept only Intel64 ISA\n"
-msgstr " -mintel64 acepta solo ISA Intel64\n"
+msgstr " -mintel64 acepta solo ISA Intel64\n"
-#: config/tc-i386.c:17761
+#: config/tc-i386.c:18009
#, c-format
msgid "Intel MCU doesn't support `%s' architecture"
-msgstr "Intel MCU no admite «%s» como arquitectura"
+msgstr "Intel MCU no admite arquitectura «%s»"
-#: config/tc-i386.c:17769
-#, fuzzy
-#| msgid "CFI is not supported for this target"
+#: config/tc-i386.c:18017
msgid "SCFI is not supported for this ABI"
-msgstr "CFI no admitido en este objetivo"
+msgstr "SCFI no admitido para esta ABI"
-#: config/tc-i386.c:17820
+#: config/tc-i386.c:18068
msgid "Intel MCU is 32bit only"
-msgstr "Intel MCU es solo 32bit"
+msgstr "Intel MCU es solo 32 bits"
-#: config/tc-i386.c:17932
-#, fuzzy, c-format
-#| msgid "invalid destination register"
+#: config/tc-i386.c:18182
+#, c-format
msgid "invalid %s relocation against register"
-msgstr "invalida registro destino"
+msgstr "reubicación %s no válida contra registro"
-#: config/tc-i386.c:18069
+#: config/tc-i386.c:18328
msgid "symbol size computation overflow"
-msgstr "desbordamiento de tamaño de símbolos computacional"
+msgstr "desbordamiento de cálculo de tamaño de símbolos"
-#: config/tc-i386.c:18148 config/tc-sparc.c:3856
+#: config/tc-i386.c:18412 config/tc-sparc.c:3862
#, c-format
msgid "can not do %d byte pc-relative relocation"
msgstr "no se puede hacer la reubicación relativa a pc de %d bytes"
-#: config/tc-i386.c:18166
+#: config/tc-i386.c:18430
#, c-format
msgid "can not do %d byte relocation"
msgstr "no se puede hacer la reubicación de %d bytes"
-#: config/tc-i386.c:18234
+#: config/tc-i386.c:18498
#, c-format
msgid "cannot represent relocation type %s in x32 mode"
-msgstr "no se puede representar el tipo reubicado %s en modo x32"
+msgstr "no se puede representar el tipo de reubicación %s en modo x32"
-#: config/tc-i386.c:18275 config/tc-s390.c:2835
+#: config/tc-i386.c:18544 config/tc-s390.c:2846
#, c-format
msgid "cannot represent relocation type %s"
-msgstr "no se puede representar el tipo reubicado %s"
+msgstr "no se puede representar el tipo de reubicación %s"
-#: config/tc-i386.c:18410
+#: config/tc-i386.c:18679
msgid "bad .section directive: want a,l,w,x,M,S,G,T in string"
msgstr "directiva .section incorrecta: se quiere a,l,w,x,M,S,G,T en la cadena"
-#: config/tc-i386.c:18413
+#: config/tc-i386.c:18682
msgid "bad .section directive: want a,w,x,M,S,G,T in string"
msgstr "directiva .section incorrecta: se quiere a,w,x,M,S,G,T en la cadena"
-#: config/tc-i386.c:18423
+#: config/tc-i386.c:18692
msgid ".largecomm supported only in 64bit mode, producing .comm"
-msgstr ".largecomm solo se admite en modo de 64bit, se produce .comm"
+msgstr ".largecomm solo se admite en modo de 64 bits; se produce .comm"
#: config/tc-ia64.c:869
msgid "bad .section directive: want a,o,s,w,x,M,S,G,T in string"
@@ -10162,7 +9999,7 @@ msgstr "el predicado calificador no está seguido por una instrucción"
#: config/tc-ia64.c:1070
msgid "expected ',' after section name"
-msgstr "esperaba ',' tras nombre de sección"
+msgstr "se esperaba ',' tras nombre de sección"
#: config/tc-ia64.c:1105
msgid "expected ',' after symbol name"
@@ -10172,312 +10009,312 @@ msgstr "se esperaba ',' tras nombre de símbolo"
msgid "expected ',' after symbol size"
msgstr "se esperaba ',' tras tamaño de símbolo"
-#: config/tc-ia64.c:1212 config/tc-ia64.c:1246
+#: config/tc-ia64.c:1210 config/tc-ia64.c:1244
msgid "record type is not valid"
msgstr "el tipo de registro no es válido"
-#: config/tc-ia64.c:1315
+#: config/tc-ia64.c:1313
msgid "Invalid record type for P3 format."
msgstr "Tipo de registro inválido para el formato P3."
-#: config/tc-ia64.c:1351
+#: config/tc-ia64.c:1349
msgid "Invalid record type for format P6"
msgstr "Tipo de registro inválido para el formato P6"
-#: config/tc-ia64.c:1531 config/tc-ia64.c:1583
+#: config/tc-ia64.c:1529 config/tc-ia64.c:1581
msgid "Invalid record type for format B1"
msgstr "Tipo de registro inválido para el formato B1"
-#: config/tc-ia64.c:1616
+#: config/tc-ia64.c:1614
msgid "Invalid record type for format X1"
msgstr "Tipo de registro inválido para el formato X1"
-#: config/tc-ia64.c:1658
+#: config/tc-ia64.c:1656
msgid "Invalid record type for format X3"
msgstr "Tipo de registro inválido para el formato X3"
-#: config/tc-ia64.c:1696
+#: config/tc-ia64.c:1694
msgid "Previous .save incomplete"
-msgstr ".save previo está incompleto"
+msgstr ".save previo incompleto"
-#: config/tc-ia64.c:2519
+#: config/tc-ia64.c:2517
msgid "spill_mask record unimplemented."
-msgstr "no se admite el registro spill_mask."
+msgstr "registro spill_mask no implementado."
-#: config/tc-ia64.c:2576
+#: config/tc-ia64.c:2574
msgid "record_type_not_valid"
msgstr "tipo_de_registro_no_valido"
-#: config/tc-ia64.c:2660
+#: config/tc-ia64.c:2658
msgid "Ignoring attempt to spill beyond end of region"
-msgstr "Se descarta el intento de derramar más allá del fin de la región"
+msgstr "Se descarta el intento de extenderse más allá del final de la región"
-#: config/tc-ia64.c:2719
+#: config/tc-ia64.c:2717
msgid "Only constant space allocation is supported"
-msgstr "Sólo se admite el alojamiento de espacio constante"
+msgstr "Sólo se admite la reserva de espacio constante"
-#: config/tc-ia64.c:2733
+#: config/tc-ia64.c:2731
msgid "Only constant offsets are supported"
msgstr "Sólo se admiten los desplazamientos constantes"
-#: config/tc-ia64.c:2757
+#: config/tc-ia64.c:2755
msgid "Section switching in code is not supported."
msgstr "No se admite el cambio de sección en código."
-#: config/tc-ia64.c:2799
+#: config/tc-ia64.c:2797
msgid "Insn slot not set in unwind record."
-msgstr "Ranura insn no especifica un registro desenredado."
+msgstr "Ranura insn no establecida en registro de desenredo."
-#: config/tc-ia64.c:2873
+#: config/tc-ia64.c:2871
msgid "frgr_mem record before region record!"
msgstr "¡Registro frgr_mem antes del registro de región!"
-#: config/tc-ia64.c:2884
+#: config/tc-ia64.c:2882
msgid "fr_mem record before region record!"
msgstr "¡Registro fr_mem antes del registro de región!"
-#: config/tc-ia64.c:2893
+#: config/tc-ia64.c:2891
msgid "gr_mem record before region record!"
msgstr "¡Registro gr_mem antes del registro de región!"
-#: config/tc-ia64.c:2902
+#: config/tc-ia64.c:2900
msgid "br_mem record before region record!"
msgstr "¡Registro br_mem antes del registro de región!"
-#: config/tc-ia64.c:2912
+#: config/tc-ia64.c:2910
msgid "gr_gr record before region record!"
msgstr "¡Registro gr_gr antes del registro de región!"
-#: config/tc-ia64.c:2920
+#: config/tc-ia64.c:2918
msgid "br_gr record before region record!"
msgstr "¡Registro br_gr antes del registro de región!"
-#: config/tc-ia64.c:3038
+#: config/tc-ia64.c:3036
#, c-format
msgid "First operand to .%s must be a predicate"
msgstr "El primer operando de .%s debe ser un predicado"
-#: config/tc-ia64.c:3042
+#: config/tc-ia64.c:3040
#, c-format
msgid "Pointless use of p0 as first operand to .%s"
-msgstr "Uso sin sentido de p0 como el primer operando de .%s"
+msgstr "Uso sin sentido de p0 como primer operando de .%s"
-#: config/tc-ia64.c:3098
+#: config/tc-ia64.c:3096
#, c-format
msgid "Operand %d to .%s must be a preserved register"
-msgstr "Operando %d de .%s debe ser un registro preservado"
+msgstr "El operando %d de .%s debe ser un registro preservado"
-#: config/tc-ia64.c:3134
+#: config/tc-ia64.c:3132
#, c-format
msgid "Operand %d to .%s must be a writable register"
-msgstr "Operandos %d de .%s debe ser un registro modificable"
+msgstr "El operando %d de .%s debe ser un registro modificable"
-#: config/tc-ia64.c:3158
+#: config/tc-ia64.c:3156
#, c-format
msgid "Radix `%s' unsupported or invalid"
msgstr "No se admite el radical «%s» o es inválido"
-#: config/tc-ia64.c:3188 config/tc-ia64.c:3193
+#: config/tc-ia64.c:3186 config/tc-ia64.c:3191
#, c-format
msgid ".%s outside of %s"
-msgstr ".%s externo de %s"
+msgstr ".%s fuera de %s"
-#: config/tc-ia64.c:3279
+#: config/tc-ia64.c:3277
msgid "Tags on unwind pseudo-ops aren't supported, yet"
-msgstr "Aún no se admiten etiquetas en los pseudo-operadores de desenredo"
+msgstr "Aún no se admiten todavía las etiquetas en los pseudo-ops de desenredo"
-#: config/tc-ia64.c:3301
+#: config/tc-ia64.c:3299
msgid "First operand to .fframe must be a constant"
msgstr "El primer operando de .fframe debe ser una constante"
-#: config/tc-ia64.c:3321
+#: config/tc-ia64.c:3319
msgid "First operand to .vframe must be a general register"
-msgstr "El primer operando de .vfram debe ser un registro general"
+msgstr "El primer operando de .vframe debe ser un registro general"
-#: config/tc-ia64.c:3329
+#: config/tc-ia64.c:3327
msgid "Operand of .vframe contradicts .prologue"
msgstr "Operando de .vframe contradice a .prologue"
-#: config/tc-ia64.c:3339
+#: config/tc-ia64.c:3337
msgid ".vframepsp is meaningless, assuming .vframesp was meant"
-msgstr ".vframepsp no tiene significado, se asume que se quería .vframesp"
+msgstr ".vframepsp no tiene significado; se asume que se quería .vframesp"
-#: config/tc-ia64.c:3347
+#: config/tc-ia64.c:3345
msgid "Operand to .vframesp must be a constant (sp-relative offset)"
-msgstr "Operando de .vframesp debe ser una constante (desplazamiento relativo al sp)"
+msgstr "El operando de .vframesp debe ser una constante (desplazamiento relativo al sp)"
-#: config/tc-ia64.c:3374
+#: config/tc-ia64.c:3372
msgid "First operand to .save not a register"
msgstr "El primer operando de .save no debe ser un registro"
-#: config/tc-ia64.c:3380
+#: config/tc-ia64.c:3378
msgid "Second operand to .save not a valid register"
msgstr "El segundo operando de .save no es un registro válido"
-#: config/tc-ia64.c:3411 config/tc-ia64.c:3422 config/tc-ia64.c:3430
+#: config/tc-ia64.c:3409 config/tc-ia64.c:3420 config/tc-ia64.c:3428
msgid "Second operand of .save contradicts .prologue"
msgstr "El segundo operando de .save contradice a .prologue"
-#: config/tc-ia64.c:3437
+#: config/tc-ia64.c:3435
msgid "First operand to .save not a valid register"
msgstr "El primer operando de .save no es un registro válido"
-#: config/tc-ia64.c:3455
+#: config/tc-ia64.c:3453
msgid "First operand to .restore must be stack pointer (sp)"
msgstr "El primer operando de .restore debe ser un puntero de pila (sp)"
-#: config/tc-ia64.c:3464
+#: config/tc-ia64.c:3462
msgid "Second operand to .restore must be a constant >= 0"
msgstr "El segundo operando de .restore debe ser una constante >= 0"
-#: config/tc-ia64.c:3474
+#: config/tc-ia64.c:3472
#, c-format
msgid "Epilogue count of %lu exceeds number of nested prologues (%u)"
-msgstr "La cuenta de epílogo de %lu excede el número de prólogos anidados (%u)"
+msgstr "El contador%lu del epílogo excede el número de prólogos anidados (%u)"
-#: config/tc-ia64.c:3560
+#: config/tc-ia64.c:3558
#, c-format
msgid "Illegal section name `%s' (causes unwind section name clash)"
msgstr "Nombre de sección «%s» ilegal (causa una colisión con el nombre de sección de desenredo)"
-#: config/tc-ia64.c:3735
+#: config/tc-ia64.c:3734
msgid "First operand to .altrp not a valid branch register"
-msgstr "El primer operando de .altrp no es un registro de ramificación válido"
+msgstr "El primer operando de .altrp no es un registro de bifurcación válido"
-#: config/tc-ia64.c:3764
+#: config/tc-ia64.c:3763
#, c-format
msgid "First operand to .%s not a register"
msgstr "El primer operando de .%s no es un registro"
-#: config/tc-ia64.c:3769
+#: config/tc-ia64.c:3768
#, c-format
msgid "Second operand to .%s not a constant"
msgstr "El segundo operando de .%s no es una constante"
-#: config/tc-ia64.c:3836
+#: config/tc-ia64.c:3835
#, c-format
msgid "First operand to .%s not a valid register"
msgstr "El primer operando de .%s no es un registro válido"
-#: config/tc-ia64.c:3859
+#: config/tc-ia64.c:3858
msgid "First operand to .save.g must be a positive 4-bit constant"
-msgstr "El primer operando de .save.g debe ser una constante positiva de 4-bits"
+msgstr "El primer operando de .save.g debe ser una constante positiva de 4 bits"
-#: config/tc-ia64.c:3872
+#: config/tc-ia64.c:3871
msgid "Second operand to .save.g must be a general register"
msgstr "El segundo operando de .save.g debe ser un registro general"
-#: config/tc-ia64.c:3877
+#: config/tc-ia64.c:3876
#, c-format
msgid "Second operand to .save.g must be the first of %d general registers"
msgstr "El segundo operando de .save.g debe ser el primero de %d registros generales"
-#: config/tc-ia64.c:3900
+#: config/tc-ia64.c:3899
msgid "Operand to .save.f must be a positive 20-bit constant"
-msgstr "Operando de .save.f debe ser una constante positiva de 20-bits"
+msgstr "El operando de .save.f debe ser una constante positiva de 20 bits"
-#: config/tc-ia64.c:3923
+#: config/tc-ia64.c:3922
msgid "First operand to .save.b must be a positive 5-bit constant"
-msgstr "El primer operando de .save.b debe ser una constante positiva de 5-bits"
+msgstr "El primer operando de .save.b debe ser una constante positiva de 5 bits"
-#: config/tc-ia64.c:3936
+#: config/tc-ia64.c:3935
msgid "Second operand to .save.b must be a general register"
msgstr "El segundo operando de .save.b debe ser un registro general"
-#: config/tc-ia64.c:3941
+#: config/tc-ia64.c:3940
#, c-format
msgid "Second operand to .save.b must be the first of %d general registers"
msgstr "El segundo operando de .save.b debe ser el primero de %d registros generales"
-#: config/tc-ia64.c:3967
+#: config/tc-ia64.c:3966
msgid "First operand to .save.gf must be a non-negative 4-bit constant"
-msgstr "El primer operando de .save.gf debe ser una constante de 4-bits que no sea negativa"
+msgstr "El primer operando de .save.gf debe ser una constante de 4 bits no negativa"
-#: config/tc-ia64.c:3975
+#: config/tc-ia64.c:3974
msgid "Second operand to .save.gf must be a non-negative 20-bit constant"
-msgstr "El segundo operando de .save.gf debe ser una constante de 20-bits que no sea negativa"
+msgstr "El segundo operando de .save.gf debe ser una constante de 20 bits no negativa"
-#: config/tc-ia64.c:3983
+#: config/tc-ia64.c:3982
msgid "Operands to .save.gf may not be both zero"
-msgstr "Ambos operandos de .save.gf no pueden ser cero al mismo tiempo"
+msgstr "Los operandos de .save.gf no pueden ser todos cero"
-#: config/tc-ia64.c:4000
+#: config/tc-ia64.c:3999
msgid "Operand to .spill must be a constant"
msgstr "Operando de .spill debe ser una constante"
-#: config/tc-ia64.c:4069
+#: config/tc-ia64.c:4068
#, c-format
msgid "Operand %d to .%s must be a constant"
msgstr "Operando %d de .%s debe ser una constante"
-#: config/tc-ia64.c:4090
+#: config/tc-ia64.c:4089
#, c-format
msgid "Missing .label_state %ld"
-msgstr "Ausente .label_state %ld"
+msgstr "Falta .label_state %ld"
-#: config/tc-ia64.c:4144
+#: config/tc-ia64.c:4143
msgid "Operand to .label_state must be a constant"
msgstr "Operando de .label_state debe ser una constante"
-#: config/tc-ia64.c:4163
+#: config/tc-ia64.c:4162
msgid "Operand to .copy_state must be a constant"
msgstr "Operando de .copy_state debe ser una constante"
-#: config/tc-ia64.c:4186
+#: config/tc-ia64.c:4185
msgid "First operand to .unwabi must be a constant"
msgstr "El primer operando de .unwabi debe ser una constante"
-#: config/tc-ia64.c:4192
+#: config/tc-ia64.c:4191
msgid "Second operand to .unwabi must be a constant"
msgstr "El segundo operando de .unwabi debe ser una constante"
-#: config/tc-ia64.c:4226
+#: config/tc-ia64.c:4225
msgid "Missing .endp after previous .proc"
-msgstr "Ausente .endp tras .proc previo"
+msgstr "Falta .endp tras .proc previo"
-#: config/tc-ia64.c:4243
+#: config/tc-ia64.c:4242
msgid "Empty argument of .proc"
msgstr "Argumento vacío de .proc"
-#: config/tc-ia64.c:4248
+#: config/tc-ia64.c:4247
#, c-format
msgid "`%s' was already defined"
msgstr "«%s» ya está definida"
-#: config/tc-ia64.c:4291
+#: config/tc-ia64.c:4290
msgid "Initial .body should precede any instructions"
msgstr "El .body inicial debe preceder a cualquier instrucción"
-#: config/tc-ia64.c:4310
+#: config/tc-ia64.c:4309
msgid ".prologue within prologue"
msgstr ".prologue dentro del prólogo"
-#: config/tc-ia64.c:4315
+#: config/tc-ia64.c:4314
msgid "Initial .prologue should precede any instructions"
msgstr "El .prologue inicial debe preceder a cualquier instrucción"
-#: config/tc-ia64.c:4325
+#: config/tc-ia64.c:4324
msgid "First operand to .prologue must be a positive 4-bit constant"
-msgstr "El primer operando de .prologue debe ser una constante positiva de 4-bits"
+msgstr "El primer operando de .prologue debe ser una constante positiva de 4 bits"
-#: config/tc-ia64.c:4327
+#: config/tc-ia64.c:4326
msgid "Pointless use of zero first operand to .prologue"
-msgstr "Uso sin sentido del primer operando en cero de .prologue"
+msgstr "Uso sin sentido del primer operando cero de .prologue"
-#: config/tc-ia64.c:4343
+#: config/tc-ia64.c:4342
msgid "Using a constant as second operand to .prologue is deprecated"
-msgstr "Utilizando una constante como el segundo operando de .prologue es obsoleto"
+msgstr "Utilizar una constante como segundo operando de .prologue es obsoleto"
-#: config/tc-ia64.c:4349
+#: config/tc-ia64.c:4348
msgid "Second operand to .prologue must be a general register"
msgstr "El segundo operando de .prologue debe ser un registro general"
-#: config/tc-ia64.c:4354
+#: config/tc-ia64.c:4353
#, c-format
msgid "Second operand to .prologue must be the first of %d general registers"
msgstr "El segundo operando de .prologue debe ser el primero de %d registros generales"
-#: config/tc-ia64.c:4467
+#: config/tc-ia64.c:4466
#, c-format
msgid "`%s' was not defined within procedure"
msgstr "«%s» no se definió dentro del procedimiento"
@@ -10510,7 +10347,7 @@ msgstr "Se esperaba ']'"
#: config/tc-ia64.c:4626
msgid "Number of elements must be positive"
-msgstr "El número de elementos debe ser positivos"
+msgstr "El número de elementos debe ser positivo"
#: config/tc-ia64.c:4637
#, c-format
@@ -10557,11 +10394,11 @@ msgstr "Directiva no válida dentro de una agrupación"
#: config/tc-ia64.c:5020
msgid "Missing predicate relation type"
-msgstr "Ausente el tipo de relación del predicado"
+msgstr "Falta el tipo de relación del predicado"
#: config/tc-ia64.c:5026
msgid "Unrecognized predicate relation type"
-msgstr "No reconocido el tipo de relación de predicado"
+msgstr "No se reconoce el tipo de relación de predicado"
#: config/tc-ia64.c:5072
msgid "Bad register range"
@@ -10592,26 +10429,25 @@ msgid "At least one PR argument expected"
msgstr "Se esperaba al menos un argumento PR"
#: config/tc-ia64.c:5157
-#, fuzzy, c-format
-#| msgid "duplicate instruction %s"
+#, c-format
msgid "duplicate entry hint %s"
-msgstr "la instrucción duplicada %s"
+msgstr "sugerencia de entrada duplicada %s"
#. FIXME -- need 62-bit relocation type
#: config/tc-ia64.c:5632
msgid "62-bit relocation not yet implemented"
-msgstr "la reubicación de 62-bits aún no está implementada"
+msgstr "la reubicación de 62 bits aún no está implementada"
#. XXX technically, this is wrong: we should not be issuing warning
#. messages until we're sure this instruction pattern is going to
#. be used!
#: config/tc-ia64.c:5718
msgid "lower 16 bits of mask ignored"
-msgstr "16 bit por debajo de máscara descartados"
+msgstr "descartados los 16 bits inferiores de la máscara"
#: config/tc-ia64.c:5947
msgid "stride must be a multiple of 64; lower 6 bits ignored"
-msgstr "zancada debe ser un múltiplo de 64, menor que 6 bits descartados"
+msgstr "el avance debe ser un múltiplo de 64; se descartan los 6 bits inferiores"
#: config/tc-ia64.c:6066
msgid "Expected separator `='"
@@ -10666,7 +10502,7 @@ msgstr "Uso simultáneo inválido de `f%d' y `f%d'"
#: config/tc-ia64.c:6354
#, c-format
msgid "Dangerous simultaneous use of `f%d' and `f%d'"
-msgstr "Uso simultáneo peligroso de `f%d' y `f%d'"
+msgstr "Uso simultáneo peligroso de `f%d' y `f%d'"
#: config/tc-ia64.c:6398
msgid "Value truncated to 62 bits"
@@ -10704,15 +10540,15 @@ msgstr "La etiqueta debe estar al inicio de un grupo"
#: config/tc-ia64.c:6761
msgid "hint in B unit may be treated as nop"
-msgstr "la pista en la unidad B se puede tratar como nop"
+msgstr "la sugerencia en la unidad B se puede tratar como nop"
#: config/tc-ia64.c:6772
msgid "hint in B unit can't be used"
-msgstr "no se puede usar la pista en la unidad B"
+msgstr "no se puede usar la sugerencia en la unidad B"
#: config/tc-ia64.c:6786
msgid "emit_one_bundle: unexpected dynamic op"
-msgstr "emit_one_bundle: operador dinámico inesperado"
+msgstr "emit_one_bundle: operando dinámico inesperado"
#: config/tc-ia64.c:6926
#, c-format
@@ -10731,12 +10567,12 @@ msgstr "«%s» no puede ir en %s de la plantilla %s"
#: config/tc-ia64.c:6959
msgid "Missing '}' at end of file"
-msgstr "Ausente '}' al final del fichero"
+msgstr "Falta '}' al final del fichero"
#: config/tc-ia64.c:7106
#, c-format
msgid "Unrecognized option '-x%s'"
-msgstr "No reconocida la opción '-x%s'"
+msgstr "No se reconoce la opción '-x%s'"
#: config/tc-ia64.c:7133
msgid ""
@@ -10841,12 +10677,12 @@ msgstr "Se esperaba un nombre de etiqueta"
#: config/tc-ia64.c:7826
msgid "Rotating register index must be a non-negative constant"
-msgstr "El índice de registros rotantes debe ser una constante que no sea negativa"
+msgstr "El índice de registros rotantes debe ser una constante no negativa"
#: config/tc-ia64.c:7831
#, c-format
msgid "Index out of range 0..%u"
-msgstr "Ãndice fuera de rango 0..%u"
+msgstr "Ãndice fuera del rango 0..%u"
#: config/tc-ia64.c:7843
msgid "Indirect register index must be a general register"
@@ -10861,10 +10697,10 @@ msgid "Expected '('"
msgstr "Se esperaba '('"
#: config/tc-ia64.c:7896 config/tc-pdp11.c:466 config/tc-pdp11.c:530
-#: config/tc-pdp11.c:564 config/tc-tilegx.c:1044 config/tc-tilepro.c:932
+#: config/tc-pdp11.c:564 config/tc-tilegx.c:1042 config/tc-tilepro.c:930
#: config/tc-xstormy16.c:154
msgid "Missing ')'"
-msgstr "Ausente ')'"
+msgstr "Falta ')'"
#: config/tc-ia64.c:7914 config/tc-xstormy16.c:161
msgid "Not a symbolic expression"
@@ -10881,7 +10717,7 @@ msgstr "Sin marco actual"
#: config/tc-ia64.c:8024
#, c-format
msgid "Register number out of range 0..%u"
-msgstr "Número de registro fuera de rango 0..%u"
+msgstr "Número de registro fuera del rango 0..%u"
#: config/tc-ia64.c:8063
msgid "Standalone `#' is illegal"
@@ -10894,12 +10730,12 @@ msgstr "Operadores de sufijo `#' redundantes"
#: config/tc-ia64.c:8224
#, c-format
msgid "Unhandled dependency %s for %s (%s), note %d"
-msgstr "Dependencia %s sin manipular para %s (%s), nota %d"
+msgstr "Dependencia %s no manejada para %s (%s), nota %d"
#: config/tc-ia64.c:9537
#, c-format
msgid "Unrecognized dependency specifier %d\n"
-msgstr "No reconocido el especificador de dependencia %d\n"
+msgstr "No se reconoce el especificador de dependencia %d\n"
#: config/tc-ia64.c:10398
msgid "Only the first path encountering the conflict is reported"
@@ -10912,7 +10748,7 @@ msgstr "Esta es la ubicación del uso conflictivo"
#: config/tc-ia64.c:10662
#, c-format
msgid "Unknown opcode `%s'"
-msgstr "Código operativo desconocido «%s»"
+msgstr "Código operación desconocido «%s»"
#: config/tc-ia64.c:10740
#, c-format
@@ -10921,7 +10757,7 @@ msgstr "AR %d solo se puede acceder por %c-unit"
#: config/tc-ia64.c:10752
msgid "hint.b may be treated as nop"
-msgstr "hint.b quizá es tratado como nop"
+msgstr "hint.b puede tratarse como nop"
#: config/tc-ia64.c:10755
msgid "hint.b shouldn't be used"
@@ -10934,7 +10770,7 @@ msgstr "«%s» no puede ser predicado"
#: config/tc-ia64.c:10867
msgid "Closing bracket missing"
-msgstr "Ausentea llave que cierra"
+msgstr "Falta el corchete de cierre"
#: config/tc-ia64.c:10876
msgid "Index must be a general register"
@@ -10943,7 +10779,7 @@ msgstr "El índice debe ser un registro general"
#: config/tc-ia64.c:11041
#, c-format
msgid "Unsupported fixup size %d"
-msgstr "No se admite el tamaño de compostura %d"
+msgstr "No se admite el tamaño de corrección %d"
#. This should be an error, but since previously there wasn't any
#. diagnostic here, don't make it fail because of this for now.
@@ -10954,7 +10790,7 @@ msgstr "No se puede expresar la reubicación %s%d%s"
#: config/tc-ia64.c:11332
msgid "No addend allowed in @fptr() relocation"
-msgstr "No se permite addend en la reubicación @fptr()"
+msgstr "No se permite adenda en la reubicación @fptr()"
#: config/tc-ia64.c:11371
msgid "integer operand out of range"
@@ -10982,27 +10818,27 @@ msgstr "No se puede representar la reubicación %s en el fichero objeto"
msgid "Can't add stop bit to mark end of instruction group"
msgstr "No se puede agregar el bit de parada para marcar el fin del grupo de instrucciones"
-#: config/tc-ia64.c:11744 read.c:2690 read.c:3349 read.c:3917 stabs.c:461
+#: config/tc-ia64.c:11743 read.c:2739 read.c:3398 read.c:3970 stabs.c:461
#, c-format
msgid "expected comma after \"%s\""
msgstr "se esperaba una coma tras «%s»"
-#: config/tc-ia64.c:11785
+#: config/tc-ia64.c:11784
#, c-format
msgid "`%s' is already the alias of %s `%s'"
msgstr "el símbolo «%s» ya es el alias de %s «%s»"
-#: config/tc-ia64.c:11796
+#: config/tc-ia64.c:11795
#, c-format
msgid "%s `%s' already has an alias `%s'"
msgstr "%s «%s» ya tiene un alias «%s»"
-#: config/tc-ia64.c:11829
+#: config/tc-ia64.c:11828
#, c-format
msgid "symbol `%s' aliased to `%s' is not used"
msgstr "el símbolo «%s» que tiene como alias a «%s» no se utiliza"
-#: config/tc-ia64.c:11855
+#: config/tc-ia64.c:11854
#, c-format
msgid "section `%s' aliased to `%s' is not used"
msgstr "la sección «%s» que tiene como alias a «%s» no se utiliza"
@@ -11034,43 +10870,43 @@ msgstr "la instrucción que produce %s no puede estar en una ranura de retardo."
#: config/tc-iq2000.c:364
#, c-format
msgid "Register number (R%ld) for double word access must be even."
-msgstr "El número de registro (R%ld) para el acceso de double word debe ser par."
+msgstr "El número de registro (R%ld) para el acceso de palabra doble debe ser par."
#: config/tc-iq2000.c:373 config/tc-iq2000.c:378 config/tc-iq2000.c:383
#: config/tc-iq2000.c:400 config/tc-mt.c:246 config/tc-mt.c:251
#, c-format
msgid "operand references R%ld of previous load."
-msgstr "operando se refiere a R%ld de la carga previa."
+msgstr "el operando se refiere a R%ld de la carga previa."
#: config/tc-iq2000.c:388
msgid "instruction implicitly accesses R31 of previous load."
-msgstr "la instrucción accede implícitamente a R31 de carga anterior."
+msgstr "la instrucción accede implícitamente a R31 de la carga anterior."
#: config/tc-iq2000.c:643 config/tc-mep.c:2008
msgid "Unmatched high relocation"
-msgstr "Reubicación high sin coincidencia"
+msgstr "Reubicación alta sin coincidencia"
-#: config/tc-iq2000.c:820 config/tc-mips.c:19791 config/tc-score.c:5784
+#: config/tc-iq2000.c:820 config/tc-mips.c:19808 config/tc-score.c:5783
msgid ".end not in text section"
msgstr ".end no está en la sección text"
-#: config/tc-iq2000.c:824 config/tc-score.c:5787
+#: config/tc-iq2000.c:824 config/tc-score.c:5786
msgid ".end directive without a preceding .ent directive."
msgstr "directiva .end sin una directiva .ent precedente."
-#: config/tc-iq2000.c:833 config/tc-score.c:5795
+#: config/tc-iq2000.c:833 config/tc-score.c:5794
msgid ".end symbol does not match .ent symbol."
-msgstr ".end simbólico no coincide con el símbolo .ent."
+msgstr "el símbolo .end no coincide con el símbolo .ent."
-#: config/tc-iq2000.c:836 config/tc-mips.c:19811 config/tc-score.c:5800
+#: config/tc-iq2000.c:836 config/tc-mips.c:19828 config/tc-score.c:5799
msgid ".end directive missing or unknown symbol"
-msgstr "ausente la directiva .end o hay un símbolo desconocido"
+msgstr "falta la directiva .end o hay un símbolo desconocido"
#: config/tc-iq2000.c:854
msgid "Expected simple number."
msgstr "Se esperaba un número simple."
-#: config/tc-iq2000.c:883 config/tc-mips.c:19716 config/tc-score.c:5650
+#: config/tc-iq2000.c:883 config/tc-mips.c:19733 config/tc-score.c:5649
#, c-format
msgid " *input_line_pointer == '%c' 0x%02x\n"
msgstr " *input_line_pointer == '%c' 0x%02x\n"
@@ -11079,196 +10915,181 @@ msgstr " *input_line_pointer == '%c' 0x%02x\n"
msgid "Invalid number"
msgstr "Número inválido"
-#: config/tc-iq2000.c:919 config/tc-score.c:5681
+#: config/tc-iq2000.c:919 config/tc-score.c:5680
msgid ".ent or .aent not in text section."
msgstr ".ent o .aent no están en la sección text."
#: config/tc-iq2000.c:922
msgid "missing `.end'"
-msgstr "ausente `.end'"
+msgstr "falta `.end'"
#: config/tc-kvx.c:1737
-#, fuzzy
-#| msgid "signed value out of range"
msgid "signed16 PCREL value out of range"
-msgstr "valor firmado fuera de rango"
+msgstr "valor PCREL signed16 fuera de rango"
#: config/tc-kvx.c:1745
-#, fuzzy
-#| msgid "signed value out of range"
msgid "signed43 PCREL value out of range"
-msgstr "valor firmado fuera de rango"
+msgstr "valor PCREL signed43 fuera de rango"
#: config/tc-kvx.c:1752
-#, fuzzy
-#| msgid "signed value out of range"
msgid "signed37 PCREL value out of range"
-msgstr "valor firmado fuera de rango"
+msgstr "valor PCREL signed37 fuera de rango"
-#: config/tc-loongarch.c:521
+#: config/tc-loongarch.c:501
#, c-format
msgid "insn name: %s\tformat: %s\tsyntax error"
-msgstr ""
+msgstr "nombre de insn: %s\tformato: %s\terror de sintaxis"
-#: config/tc-loongarch.c:524
+#: config/tc-loongarch.c:504
#, c-format
msgid ""
"insn name: %s\n"
"format: %s\n"
"we want macro but macro is NULL"
msgstr ""
+"nombre de insn: %s\n"
+"formato: %s\n"
+"queremos macro pero la macro es NULL"
-#: config/tc-loongarch.c:529
+#: config/tc-loongarch.c:509
#, c-format
msgid ""
"insn name: %s\n"
"format: %s\n"
"macro: %s\tsyntax error"
msgstr ""
+"nombre de insn: %s\n"
+"formato: %s\n"
+"macro: %s\terror de sintaxis"
-#: config/tc-loongarch.c:570
+#: config/tc-loongarch.c:550
#, c-format
msgid "Unsupported use of %s"
msgstr "No se admite el uso de %s"
-#: config/tc-loongarch.c:627 config/tc-riscv.c:4994
+#: config/tc-loongarch.c:607 config/tc-riscv.c:5124
msgid ".option pop with no .option push"
-msgstr "opción .option pop sin opción .option push"
+msgstr ".option pop sin .option push"
-#: config/tc-loongarch.c:637 config/tc-riscv.c:5007
-#, fuzzy, c-format
-#| msgid "Unrecognized .option directive: %s\n"
+#: config/tc-loongarch.c:617 config/tc-riscv.c:5138
+#, c-format
msgid "unrecognized .option directive: %s"
-msgstr "No reconoció directiva .option: %s\n"
+msgstr "no se reconoce la directiva .option: %s"
-#: config/tc-loongarch.c:700
-#, fuzzy
-#| msgid "Internal Error: bad instruction length"
+#: config/tc-loongarch.c:680
msgid "internal error: we have no internal label yet"
-msgstr "Error interno: longitud incorrecta de instrucción"
+msgstr "Error interno: todavía no tenemos etiqueta interna"
-#: config/tc-loongarch.c:805
-#, fuzzy
-#| msgid "hint.b shouldn't be used"
+#: config/tc-loongarch.c:785
msgid "This label shouldn't be with addend."
-msgstr "no se debe usar hint.b"
+msgstr "Esta etiqueta no debería estar con adenda."
-#: config/tc-loongarch.c:851
-#, fuzzy
-#| msgid "Number too large"
+#: config/tc-loongarch.c:831
msgid "expr too huge"
-msgstr "Número demasiado grande"
+msgstr "expr demasiado grande"
-#: config/tc-loongarch.c:878
+#: config/tc-loongarch.c:858
#, c-format
msgid ""
"not support reloc bit-field\n"
"fmt: %c%c %s\n"
"args: %s"
msgstr ""
+"no se admite reloc campo-de-btis\n"
+"fmt: %c%c %s\n"
+"args: %s"
-#: config/tc-loongarch.c:949 config/tc-loongarch.c:974
-#, fuzzy, c-format
-#| msgid ".begin literal is deprecated; use .literal instead"
+#: config/tc-loongarch.c:929 config/tc-loongarch.c:952
+#, c-format
msgid "register alias %s is deprecated, use %s instead"
-msgstr "El uso de .begin literal es obsoleto. Utilice en su lugar .literal"
+msgstr "el alias de registro %s está obsoleto; utilice %s en su lugar"
-#: config/tc-loongarch.c:1007
-#, fuzzy
-#| msgid "unknown opcode"
+#: config/tc-loongarch.c:985
msgid "unknown escape"
-msgstr "desconoce código de operación"
+msgstr "escape desconocido"
-#: config/tc-loongarch.c:1034
+#: config/tc-loongarch.c:1012
#, c-format
msgid "require imm low %d bit is 0."
-msgstr ""
+msgstr "los %d bits inferiores de imm deben ser 0."
#. How to do after we detect overflow.
-#: config/tc-loongarch.c:1046
+#: config/tc-loongarch.c:1024
#, c-format
msgid ""
"Immediate overflow.\n"
"format: %c%c%s\n"
"arg: %s"
msgstr ""
+"Desbordamiento de inmediato.\n"
+"formato: %c%c%s\n"
+"arg: %s"
-#: config/tc-loongarch.c:1129
+#: config/tc-loongarch.c:1106
msgid "atomic memory operations insns require rd != rj && rd != rk when rd isn't r0"
-msgstr ""
+msgstr "las insns de operaciones de memoria atómicas requieren rd != rj && rd != rk cuando rd no es r0"
-#: config/tc-loongarch.c:1143
+#: config/tc-loongarch.c:1120
msgid "bstr(ins|pick).[wd] require msbd >= lsbd"
-msgstr ""
+msgstr "bstr(ins|pick).[wd] requiere msbd >= lsbd"
-#: config/tc-loongarch.c:1153
+#: config/tc-loongarch.c:1130
msgid "g?csrxchg require rj != r0 && rj != r1"
-msgstr ""
+msgstr "g?csrxchg requiere rj != r0 && rj != r1"
-#: config/tc-loongarch.c:1259
-#, fuzzy, c-format
-#| msgid "Unsupported RISC-V relocation number %d"
+#: config/tc-loongarch.c:1236
+#, c-format
msgid "no HOWTO loong relocation number %d"
-msgstr "No admitido número de reubicación RISC-V %d"
+msgstr "no hay número de reubicación loong HOWTO %d"
-#: config/tc-loongarch.c:1272
-#, fuzzy
-#| msgid "Internal error: Can't hash %s: %s"
+#: config/tc-loongarch.c:1249
msgid "Internal error: not support relax now"
-msgstr "Error interno: No se puede dispersar %s: %s"
+msgstr "Error interno: no se admite relajación ahora"
-#: config/tc-loongarch.c:1334
+#: config/tc-loongarch.c:1311
#, c-format
msgid "li overflow: hi32:0x%x lo32:0x%x"
-msgstr ""
+msgstr "desbordamiento de li: hi32:0x%x lo32:0x%x"
-#: config/tc-loongarch.c:1339
+#: config/tc-loongarch.c:1316
msgid "we can't li.d on 32bit-arch"
-msgstr ""
+msgstr "no se puede hacer li.d en 32bit-arch"
-#: config/tc-loongarch.c:1438
-#, fuzzy, c-format
-#| msgid "no such instruction: `%s'"
+#: config/tc-loongarch.c:1416
+#, c-format
msgid "no match insn: %s\t%s"
-msgstr "no hay tal instrucción: «%s»"
+msgstr "no hay instrucción que coincida: %s\t%s"
-#: config/tc-loongarch.c:1586 config/tc-loongarch.c:1593
-#, fuzzy
-#| msgid "TLS relocation against a constant"
+#: config/tc-loongarch.c:1587 config/tc-loongarch.c:1594
msgid "Relocation against a constant"
-msgstr "TLS reubicado contra una constante"
+msgstr "Reubicación contra una constante"
-#: config/tc-loongarch.c:1801 config/tc-riscv.c:4723
-#, fuzzy, c-format
-#| msgid "internal error: bad CFA value #%d"
+#: config/tc-loongarch.c:1802 config/tc-riscv.c:4821
+#, c-format
msgid "internal: bad CFA value #%d"
-msgstr "error interno: valor CFA incorrecto nº%d"
+msgstr "interno: valor CFA incorrecto #%d"
-#: config/tc-loongarch.c:1813
-#, fuzzy
-#| msgid "TLS relocation against a constant"
+#: config/tc-loongarch.c:1814
msgid "Relocation against a constant."
-msgstr "TLS reubicado contra una constante"
+msgstr "Reubicación contra una constante"
-#: config/tc-loongarch.c:1894 config/tc-riscv.c:5228
+#: config/tc-loongarch.c:1895 config/tc-riscv.c:5359
#, c-format
msgid "cannot represent %s relocation in object file"
-msgstr "no puede representar reubicación %s en fichero objeto"
+msgstr "no se puede representar la reubicación %s en el fichero objeto"
-#: config/tc-loongarch.c:1923
-#, fuzzy, c-format
-#| msgid "unknown register `%s'"
+#: config/tc-loongarch.c:1924
+#, c-format
msgid "unknown register `%s`"
-msgstr "el registro desconocido «%s»"
+msgstr "registro desconocido «%s»"
-#: config/tc-loongarch.c:1997
-#, fuzzy, c-format
-#| msgid "SPARC options:\n"
+#: config/tc-loongarch.c:1998
+#, c-format
msgid "LARCH options:\n"
-msgstr "Opciones SPARC:\n"
+msgstr "Opciones LARCH:\n"
#. FIXME
-#: config/tc-loongarch.c:1999
+#: config/tc-loongarch.c:2000
#, c-format
msgid ""
" -mthin-add-sub\t Convert a pair of R_LARCH_ADD32/64 and R_LARCH_SUB32/64 to\n"
@@ -11278,12 +11099,16 @@ msgid ""
" -mignore-start-align\t Ignore .align if it is at the start of a section. This option\n"
"\t\t\t can't be used when partial linking (ld -r).\n"
msgstr ""
+" -mthin-add-sub\t Convierte un par de R_LARCH_ADD32/64 y R_LARCH_SUB32/64 en\n"
+"\t\t\t R_LARCH_32/64_PCREL tanto como sea posible\n"
+"\t\t\t La opción no afecta a la feneración de reubicaciones R_LARCH_32_PCREL\n"
+"\t\t\t en .eh_frame\n"
+" -mignore-start-align\t Ignora .align si está al comienzo de una sección. Esta opción\n"
+"\t\t\t no puede utilizarse con enlazamiento parcial (ld -r).\n"
-#: config/tc-loongarch.c:2052
-#, fuzzy
-#| msgid "internal error: invalid macro"
+#: config/tc-loongarch.c:2053
msgid "internal error: cannot get align symbol"
-msgstr "error interno: macro inválido"
+msgstr "error interno: no se puede conseguir símbolo de alineamiento"
#: config/tc-m32c.c:139
#, c-format
@@ -11293,11 +11118,11 @@ msgstr " Opciones de la línea de mandatos específicas de M32C:\n"
#. Pretend that we do not recognise this option.
#: config/tc-m32r.c:330
msgid "Unrecognised option: -hidden"
-msgstr "No reconocida la opción: -hidden"
+msgstr "No se reconoce la opción: -hidden"
#: config/tc-m32r.c:357 config/tc-sparc.c:602
msgid "Unrecognized option following -K"
-msgstr "No reconoce opción seguida de -K"
+msgstr "No se reconoce la opción que sigue a -K"
#: config/tc-m32r.c:372
#, c-format
@@ -11307,17 +11132,17 @@ msgstr " Opciones de la línea de mandatos específicas de M32R:\n"
#: config/tc-m32r.c:374
#, c-format
msgid " -m32r disable support for the m32rx instruction set\n"
-msgstr " -m32r desactivar apoyo para el conjunto de instrucciones m32rx\n"
+msgstr " -m32r desactiva soporte para el juego de instrucciones m32rx\n"
#: config/tc-m32r.c:376
#, c-format
msgid " -m32rx support the extended m32rx instruction set\n"
-msgstr " -m32rx admite el conjunto extendido de instrucciones m32rx\n"
+msgstr " -m32rx admite el juego extendido de instrucciones m32rx\n"
#: config/tc-m32r.c:378
#, c-format
msgid " -m32r2 support the extended m32r2 instruction set\n"
-msgstr " -m32r2 admite el conjunto extendido de instrucciones m32r2\n"
+msgstr " -m32r2 admite el juego extendido de instrucciones m32r2\n"
#: config/tc-m32r.c:380
#, c-format
@@ -11342,7 +11167,7 @@ msgstr " -no-parallel desactiva -parallel\n"
#: config/tc-m32r.c:388
#, c-format
msgid " -no-bitinst disallow the M32R2's extended bit-field instructions\n"
-msgstr " -no-bitinst desactiva las instrucciones extendidas de campos de bit de M32R2\n"
+msgstr " -no-bitinst no permite las instrucciones extendidas de campos de bit de M32R2\n"
#: config/tc-m32r.c:390
#, c-format
@@ -11352,12 +11177,12 @@ msgstr " -O intenta optimizar código. Implica -parallel\
#: config/tc-m32r.c:393
#, c-format
msgid " -warn-explicit-parallel-conflicts warn when parallel instructions\n"
-msgstr " -warn-explicit-parallel-conflicts avisa cuando hay instrucciones paralelas\n"
+msgstr " -warn-explicit-parallel-conflicts avisa cuando instrucciones paralelas\n"
#: config/tc-m32r.c:395
#, c-format
msgid " might violate constraints\n"
-msgstr " quizá viola restricciones\n"
+msgstr " podrían violar restricciones\n"
#: config/tc-m32r.c:397
#, c-format
@@ -11367,47 +11192,47 @@ msgstr " -no-warn-explicit-parallel-conflicts no avisa cuando las instruccione
#: config/tc-m32r.c:399
#, c-format
msgid " instructions might violate constraints\n"
-msgstr " instrucciones quizá violan restricciones\n"
+msgstr " paralelas podrían violar restricciones\n"
#: config/tc-m32r.c:401
#, c-format
msgid " -Wp synonym for -warn-explicit-parallel-conflicts\n"
-msgstr " -Wp sinónimo para -warn-explicit-parallel-conflicts\n"
+msgstr " -Wp sinónimo de -warn-explicit-parallel-conflicts\n"
#: config/tc-m32r.c:403
#, c-format
msgid " -Wnp synonym for -no-warn-explicit-parallel-conflicts\n"
-msgstr " -Wnp sinónimo para -no-warn-explicit-parallel-conflicts\n"
+msgstr " -Wnp sinónimo de -no-warn-explicit-parallel-conflicts\n"
#: config/tc-m32r.c:405
#, c-format
msgid " -ignore-parallel-conflicts do not check parallel instructions\n"
-msgstr " -ignore-parallel-conflicts no revisa cuando hay instrucciones paralelas\n"
+msgstr " -ignore-parallel-conflicts no comprueba instrucciones paralelas\n"
#: config/tc-m32r.c:407
#, c-format
msgid " for constraint violations\n"
-msgstr " que violan las restricciones\n"
+msgstr " que pueden violar restricciones\n"
#: config/tc-m32r.c:409
#, c-format
msgid " -no-ignore-parallel-conflicts check parallel instructions for\n"
-msgstr " -no-ignore-parallel-conflicts revisa cuando hay instrucciones paralelas\n"
+msgstr " -no-ignore-parallel-conflicts comprueba instrucciones paralelas\n"
#: config/tc-m32r.c:411
#, c-format
msgid " constraint violations\n"
-msgstr " que violan las restricciones\n"
+msgstr " que pueden violar restricciones\n"
#: config/tc-m32r.c:413
#, c-format
msgid " -Ip synonym for -ignore-parallel-conflicts\n"
-msgstr " -Ip sinónimo para -ignore-parallel-conflicts\n"
+msgstr " -Ip sinónimo de -ignore-parallel-conflicts\n"
#: config/tc-m32r.c:415
#, c-format
msgid " -nIp synonym for -no-ignore-parallel-conflicts\n"
-msgstr " -nIp sinónimo para -no-ignore-parallel-conflicts\n"
+msgstr " -nIp sinónimo de -no-ignore-parallel-conflicts\n"
#: config/tc-m32r.c:418
#, c-format
@@ -11417,17 +11242,17 @@ msgstr " -warn-unmatched-high avisa cundo una reubicación (s)high no tiene
#: config/tc-m32r.c:420
#, c-format
msgid " -no-warn-unmatched-high do not warn about missing low relocs\n"
-msgstr " -no-warn-unmatched-high no avisa cuando ausenten reubicaciones low\n"
+msgstr " -no-warn-unmatched-high no avisa reubicaciones low no presentes\n"
#: config/tc-m32r.c:422
#, c-format
msgid " -Wuh synonym for -warn-unmatched-high\n"
-msgstr " -Wuh sinónimo para -warn-unmatched-high\n"
+msgstr " -Wuh sinónimo de -warn-unmatched-high\n"
#: config/tc-m32r.c:424
#, c-format
msgid " -Wnuh synonym for -no-warn-unmatched-high\n"
-msgstr " -Wnuh sinónimo para -no-warn-unmatched-high\n"
+msgstr " -Wnuh sinónimo de -no-warn-unmatched-high\n"
#: config/tc-m32r.c:427
#, c-format
@@ -11449,7 +11274,7 @@ msgstr "Las instrucciones comparten la misma tubería de ejecución"
#: config/tc-m32r.c:928 config/tc-m32r.c:1042
#, c-format
msgid "not a 16 bit instruction '%s'"
-msgstr "no hay una instrucción 16 bit «%s»"
+msgstr "no es una instrucción de 16 bits «%s»"
#: config/tc-m32r.c:940 config/tc-m32r.c:1054 config/tc-m32r.c:1238
#, c-format
@@ -11459,7 +11284,7 @@ msgstr "la instrucción «%s» solo es para el M32R2"
#: config/tc-m32r.c:953 config/tc-m32r.c:1067 config/tc-m32r.c:1251
#, c-format
msgid "unknown instruction '%s'"
-msgstr "desconoce instrucción «%s»"
+msgstr "instrucción desconocida «%s»"
#: config/tc-m32r.c:962 config/tc-m32r.c:1074 config/tc-m32r.c:1258
#, c-format
@@ -11478,17 +11303,17 @@ msgstr "error interno: fallaron los operandos lookup/get"
#: config/tc-m32r.c:1093
#, c-format
msgid "'%s': only the NOP instruction can be issued in parallel on the m32r"
-msgstr "«%s»: solamente las instrucciones NOP se puede ejecutar en paralelo en el m32r"
+msgstr "«%s»: solamente las instrucciones NOP se puede lanzar en paralelo en el m32r"
#: config/tc-m32r.c:1122
#, c-format
msgid "%s: output of 1st instruction is the same as an input to 2nd instruction - is this intentional ?"
-msgstr "%s: la salida de la 1a instrucción es la misma que una entrada a la 2a instrucción - ¿Esto es intencional?"
+msgstr "%s: la salida de la 1ª instrucción es la misma que una entrada de la 2ª instrucción - ¿es intencionado?"
#: config/tc-m32r.c:1126
#, c-format
msgid "%s: output of 2nd instruction is the same as an input to 1st instruction - is this intentional ?"
-msgstr "%s: la salida de la 2a instrucción es la misma que una entrada a la 1a instrucción - ¿Esto es intencional?"
+msgstr "%s: la salida de la 2ª instrucción es la misma que una entrada de la 1ª instrucción - ¿es intencionado?"
#: config/tc-m32r.c:1489 config/tc-microblaze.c:175
msgid "Expected comma after symbol-name: rest of line ignored."
@@ -11497,16 +11322,16 @@ msgstr "Se esperaba coma tras nombre del símbolo: se descarta el resto de la lÃ
#: config/tc-m32r.c:1499
#, c-format
msgid ".SCOMMon length (%ld.) <0! Ignored."
-msgstr "¡Longitud SCOMMon (%ld.) <0! Se descarta."
+msgstr "¡Longitud de .SCOMMon (%ld.) <0! Se descarta."
#: config/tc-m32r.c:1513 config/tc-microblaze.c:197 config/tc-ppc.c:2421
-#: config/tc-ppc.c:4355 config/tc-ppc.c:4410
+#: config/tc-ppc.c:4354 config/tc-ppc.c:4409
msgid "ignoring bad alignment"
-msgstr "se descarta la alineamiento incorrecta"
+msgstr "se descarta el alineamiento incorrecto"
-#: config/tc-m32r.c:1525 config/tc-microblaze.c:232 config/tc-v850.c:380
+#: config/tc-m32r.c:1525 config/tc-microblaze.c:232 config/tc-v850.c:379
msgid "Common alignment not a power of 2"
-msgstr "La alineamiento común no es una potencia de 2"
+msgstr "El alineamiento común no es una potencia de 2"
#: config/tc-m32r.c:1540 config/tc-microblaze.c:208
#, c-format
@@ -11518,16 +11343,16 @@ msgstr "Se descarta el intento de redefinir el símbolo «%s»."
msgid "Length of .scomm \"%s\" is already %ld. Not changed to %ld."
msgstr "La longitud de .scomm «%s» ya es %ld. No se cambió a %ld."
-#: config/tc-m32r.c:1926 config/tc-m32r.c:1979 config/tc-nds32.c:4786
-#: config/tc-nds32.c:4830 config/tc-sh.c:391 config/tc-sh.c:2047
+#: config/tc-m32r.c:1925 config/tc-m32r.c:1978 config/tc-nds32.c:4781
+#: config/tc-nds32.c:4825 config/tc-sh.c:391 config/tc-sh.c:2048
msgid "Invalid PIC expression."
msgstr "Expresión PIC no válida."
-#: config/tc-m32r.c:2070
+#: config/tc-m32r.c:2069
msgid "Unmatched high/shigh reloc"
msgstr "Reubicación high/shigh sin coincidencia"
-#: config/tc-m68hc11.c:416
+#: config/tc-m68hc11.c:415
#, c-format
msgid ""
"Motorola 68HC11/68HC12/68HCS12 options:\n"
@@ -11549,41 +11374,42 @@ msgid ""
" --generate-example generate an example of each instruction\n"
" (used for testing)\n"
msgstr ""
-"Opciones para Motorola 68HC11/68HC12/68HCS12:\n"
+"Opciones del Motorola 68HC11/68HC12/68HCS12:\n"
" -m68hc11 | -m68hc12 |\n"
" -m68hcs12 | -mm9s12x |\n"
" -mm9s12xg especifica el procesador [por defecto %s]\n"
-" -mshort usa la ABI int de 16-bit (por defecto)\n"
-" -mlong usa la ABI int de 32-bit\n"
-" -mshort-double usa la ABI double de 32-bit\n"
-" -mlong-double usa la ABI double de 64-bit (por defecto)\n"
-" --force-long-branchs siempre convierte las ramificaciones relativas en\n"
+" -mshort usa la ABI int de 16 bits (por defecto)\n"
+" -mlong usa la ABI int de 32 bits\n"
+" -mshort-double usa la ABI double de 32 bits\n"
+" -mlong-double usa la ABI double de 64 bits (por defecto)\n"
+" --force-long-branches siempre convierte las bifurcaciones relativas en\n"
" absolutas\n"
-" -S,--short-branchs no convierte las ramificaciones relativas en\n"
+" -S,--short-branches no convierte las bifurcaciones relativas en\n"
" absolutas cuando el desplazamiento está fuera de rango\n"
" --strict-direct-mode no convierte el modo directo en modo extendido\n"
" cuando la instrucción no admite modo directo\n"
-" --print-insn-syntax escribe la sintaxis de la instrucción en caso de\n"
+" --print-insn-syntax imprime la sintaxis de la instrucción en caso de\n"
" error\n"
-" --print-opcodes escribe la lista de instrucciones con sintaxis\n"
+" --print-opcodes imprime la lista de instrucciones con sintaxis\n"
+" --xgate-ramoffset desplaza 0xc000 las direcciones de ram\n"
" --generate-example genera un ejemplo de cada instrucción\n"
" (se utiliza para pruebas)\n"
-#: config/tc-m68hc11.c:464 config/tc-xgate.c:284
+#: config/tc-m68hc11.c:463 config/tc-xgate.c:284
#, c-format
msgid "Default target `%s' is not supported."
msgstr "No se admite el objetivo por defecto «%s»."
#. Dump the opcode statistics table.
-#: config/tc-m68hc11.c:482
+#: config/tc-m68hc11.c:481
#, c-format
msgid "Name # Modes Min ops Max ops Modes mask # Used\n"
msgstr "Nombre # Modos Min ops Max ops Masc. modos # Usado\n"
-#: config/tc-m68hc11.c:561
+#: config/tc-m68hc11.c:560
#, c-format
msgid "Option `%s' is not recognized."
-msgstr "No reconocida la opción «%s»."
+msgstr "No se reconoce la opción «%s»."
#: config/tc-m68hc11.c:746
msgid "imm3"
@@ -11652,12 +11478,12 @@ msgstr ""
#: config/tc-m68hc11.c:1014
#, c-format
msgid "Instruction `%s' is not recognized."
-msgstr "No reconocida la instrucción «%s»."
+msgstr "No se reconoce la instrucción «%s»."
#: config/tc-m68hc11.c:1019
#, c-format
msgid "Instruction formats for `%s':"
-msgstr "Formatos de instrucción para «%s»:"
+msgstr "Formatos de la instrucción para «%s»:"
#: config/tc-m68hc11.c:1171
#, c-format
@@ -11670,31 +11496,31 @@ msgstr "El direccionamiento indexado indirecto no es válido para 68HC11."
#: config/tc-m68hc11.c:1235
msgid "Spurious `,' or bad indirect register addressing mode."
-msgstr "`,' sobrante o modo de direccionamiento de registro indirecto incorrecto."
+msgstr "`,' espurio o modo de direccionamiento de registro indirecto incorrecto."
#: config/tc-m68hc11.c:1257
msgid "Missing second register or offset for indexed-indirect mode."
-msgstr "Ausenten el segundo registro o el desplazamiento para el modo indexado indirecto."
+msgstr "Faltan el segundo registro o el desplazamiento para el modo indexado indirecto."
#: config/tc-m68hc11.c:1267
msgid "Missing second register for indexed-indirect mode."
-msgstr "Ausente el segundo registro para el modo indexado indirecto."
+msgstr "Falta el segundo registro para el modo indexado indirecto."
#: config/tc-m68hc11.c:1283
msgid "Missing `]' to close indexed-indirect mode."
-msgstr "Ausente `]' para cerrar el modo indexado directo."
+msgstr "Falta `]' para cerrar el modo indexado indirecto."
-#: config/tc-m68hc11.c:1328 config/tc-m68hc11.c:2961 config/tc-m68hc11.c:3073
-#: config/tc-m68hc11.c:3147 config/tc-m68hc11.c:3331 config/tc-m68hc11.c:3402
+#: config/tc-m68hc11.c:1328 config/tc-m68hc11.c:2960 config/tc-m68hc11.c:3072
+#: config/tc-m68hc11.c:3146 config/tc-m68hc11.c:3330 config/tc-m68hc11.c:3401
msgid "Illegal operand."
msgstr "Operando ilegal."
#. Looks like OP_R_R.
-#: config/tc-m68hc11.c:1333 config/tc-m68hc11.c:2966 config/tc-m68hc11.c:3078
-#: config/tc-m68hc11.c:3152 config/tc-m68hc11.c:3258 config/tc-m68hc11.c:3310
-#: config/tc-m68hc11.c:3318 config/tc-m68hc11.c:3336
+#: config/tc-m68hc11.c:1333 config/tc-m68hc11.c:2965 config/tc-m68hc11.c:3077
+#: config/tc-m68hc11.c:3151 config/tc-m68hc11.c:3257 config/tc-m68hc11.c:3309
+#: config/tc-m68hc11.c:3317 config/tc-m68hc11.c:3335
msgid "Missing operand."
-msgstr "Ausente operando."
+msgstr "Falta operando."
#: config/tc-m68hc11.c:1386
msgid "Pre-increment mode is not valid for 68HC11"
@@ -11706,7 +11532,7 @@ msgstr "Registro incorrecto en el modo indirecto de registro."
#: config/tc-m68hc11.c:1407
msgid "Missing `]' to close register indirect operand."
-msgstr "Ausente `]' para cerrar operando indirecto de registro."
+msgstr "Falta `]' para cerrar operando indirecto de registro."
#: config/tc-m68hc11.c:1427
msgid "Post-decrement mode is not valid for 68HC11."
@@ -11721,219 +11547,216 @@ msgid "Invalid indexed indirect mode."
msgstr "Modo indexado indirecto inválido."
#: config/tc-m68hc11.c:1577
-#, fuzzy, c-format
-#| msgid "Trap id `%ld' is out of range."
+#, c-format
msgid "Trap id `%<PRId64>' is out of range."
-msgstr "El id de captura `%ld' está fuera de rango."
+msgstr "El id de trap `%<PRId64>' está fuera de rango."
#: config/tc-m68hc11.c:1582
msgid "Trap id must be within [0x30..0x39] or [0x40..0xff]."
-msgstr "El id de captura debe estar dentro de [0x30..0x39] o [0x40..0xff]"
+msgstr "El id de trap debe estar dentro de [0x30..0x39] o [0x40..0xff]"
#: config/tc-m68hc11.c:1589 config/tc-m68hc11.c:1741
-#, fuzzy, c-format
-#| msgid "Operand out of 8-bit range: `%ld'."
+#, c-format
msgid "Operand out of 8-bit range: `%<PRId64>'."
-msgstr "Operando fuera del rango de 8-bit: `%ld'."
+msgstr "Operando fuera del rango de 8 bits: `%<PRId64>'."
#: config/tc-m68hc11.c:1597
msgid "The trap id must be a constant."
-msgstr "El id de captura debe ser una constante."
+msgstr "El id de trap debe ser una constante."
-#: config/tc-m68hc11.c:1629 config/tc-m68hc11.c:1784 config/tc-xgate.c:1347
+#: config/tc-m68hc11.c:1629 config/tc-m68hc11.c:1784 config/tc-xgate.c:1346
#, c-format
msgid "Operand `%x' not recognized in fixup8."
-msgstr "No reconoce operando `%x' en fixup8."
+msgstr "No se reconoce el operando `%x' en fixup8."
#: config/tc-m68hc11.c:1646 config/tc-m68hc11.c:1694
-#, fuzzy, c-format
-#| msgid "Operand out of 16-bit range: `%ld'."
+#, c-format
msgid "Operand out of 16-bit range: `%<PRId64>'."
-msgstr "Operando fuera del rango de 16-bit: `%ld'."
+msgstr "Operando fuera del rango de 16 bits: `%<PRId64>'."
#: config/tc-m68hc11.c:1677 config/tc-m68hc11.c:1708
#, c-format
msgid "Operand `%x' not recognized in fixup16."
-msgstr "No reconoce operando `%x' en fixup16."
+msgstr "No se reconoce el operando `%x' en fixup16."
#: config/tc-m68hc11.c:1801
#, c-format
msgid "Unexpected branch conversion with `%x'"
-msgstr "Conversión de ramificación inesperada con `%x'"
+msgstr "Conversión de bifurcación inesperada con `%x'"
-#: config/tc-m68hc11.c:1887 config/tc-m68hc11.c:2019
+#: config/tc-m68hc11.c:1887 config/tc-m68hc11.c:2018
#, c-format
msgid "Operand out of range for a relative branch: `%ld'"
-msgstr "Operando fuera de rango para una ramificación relativa: `%ld'"
+msgstr "Operando fuera de rango para una bifurcación relativa: `%ld'"
-#: config/tc-m68hc11.c:1987
+#: config/tc-m68hc11.c:1986
msgid "Invalid register for dbcc/tbcc instruction."
msgstr "Registro inválido para la instrucción dbcc/tbcc."
-#: config/tc-m68hc11.c:2075
+#: config/tc-m68hc11.c:2074
#, c-format
msgid "Increment/decrement value is out of range: `%ld'."
msgstr "El valor de incremento/decremento está fuera de rango: `%ld'."
-#: config/tc-m68hc11.c:2087
+#: config/tc-m68hc11.c:2086
msgid "Expecting a register."
msgstr "Se espera un registro."
-#: config/tc-m68hc11.c:2102
+#: config/tc-m68hc11.c:2101
msgid "Invalid register for post/pre increment."
msgstr "Registro inválido para post/pre incremento."
-#: config/tc-m68hc11.c:2132
+#: config/tc-m68hc11.c:2131
msgid "Invalid register."
msgstr "Registro inválido."
-#: config/tc-m68hc11.c:2139
+#: config/tc-m68hc11.c:2138
#, c-format
msgid "Offset out of 16-bit range: %ld."
-msgstr "Desplazamiento fuera del rango de 16-bit: %ld."
+msgstr "Desplazamiento fuera del rango de 16 bits: %ld."
-#: config/tc-m68hc11.c:2145
+#: config/tc-m68hc11.c:2144
#, c-format
msgid "Offset out of 5-bit range for movw/movb insn: %ld."
-msgstr "Desplazamiento fuera del rango de 5-bit para insn movw/movb: %ld."
+msgstr "Desplazamiento fuera del rango de 5 bits para insn movw/movb: %ld."
-#: config/tc-m68hc11.c:2270
+#: config/tc-m68hc11.c:2269
msgid "Expecting register D for indexed indirect mode."
msgstr "Se espera el registro D para el modo indexado indirecto."
-#: config/tc-m68hc11.c:2272
+#: config/tc-m68hc11.c:2271
msgid "Indexed indirect mode is not allowed for movb/movw."
-msgstr "No se permite el modo indexado directo para movb/movw."
+msgstr "No se permite el modo indexado indirecto para movb/movw."
-#: config/tc-m68hc11.c:2289
+#: config/tc-m68hc11.c:2288
msgid "Invalid accumulator register."
msgstr "Registro acumulador inválido."
-#: config/tc-m68hc11.c:2315
+#: config/tc-m68hc11.c:2314
msgid "Invalid indexed register."
msgstr "Registro indexado inválido."
-#: config/tc-m68hc11.c:2325
+#: config/tc-m68hc11.c:2324
msgid "Addressing mode not implemented yet."
msgstr "Modo de direccionamiento aún sin implementar."
-#: config/tc-m68hc11.c:2339
+#: config/tc-m68hc11.c:2338
msgid "Invalid source register for this instruction, use 'tfr'."
-msgstr "Registro fuente inválido para esta instrucción, utilice 'tfr'."
+msgstr "Registro fuente inválido para esta instrucción; utilice 'tfr'."
-#: config/tc-m68hc11.c:2341
+#: config/tc-m68hc11.c:2340
msgid "Invalid source register."
msgstr "Registro fuente inválido."
-#: config/tc-m68hc11.c:2346
+#: config/tc-m68hc11.c:2345
msgid "Invalid destination register for this instruction, use 'tfr'."
-msgstr "Registro destino inválido para esta instrucción, utilice 'tfr'."
+msgstr "Registro destino inválido para esta instrucción; utilice 'tfr'."
-#: config/tc-m68hc11.c:2348
+#: config/tc-m68hc11.c:2347
msgid "Invalid destination register."
msgstr "Registro destino inválido."
-#: config/tc-m68hc11.c:2523
+#: config/tc-m68hc11.c:2522
msgid "Invalid indexed register, expecting register X."
-msgstr "Registro indexado inválido, se esperaba el registro X."
+msgstr "Registro indexado inválido; se espera el registro X."
-#: config/tc-m68hc11.c:2525
+#: config/tc-m68hc11.c:2524
msgid "Invalid indexed register, expecting register Y."
-msgstr "Registro indexado inválido, se esperaba el registro Y."
+msgstr "Registro indexado inválido; se espera el registro Y."
-#: config/tc-m68hc11.c:2844 config/tc-s12z.c:3804
+#: config/tc-m68hc11.c:2843 config/tc-s12z.c:3802
msgid "No instruction or missing opcode."
-msgstr "No hay instrucción o ausente el código de operación."
+msgstr "No hay instrucción o falta el código de operación."
-#: config/tc-m68hc11.c:2854 config/tc-m68hc11.c:3533
+#: config/tc-m68hc11.c:2853 config/tc-m68hc11.c:3530
#, c-format
msgid "Opcode `%s' is not recognized."
-msgstr "No reconocido el código de operación «%s»."
+msgstr "No se reconoce el código de operación «%s»."
-#: config/tc-m68hc11.c:2903 config/tc-m68hc11.c:3452 config/tc-m68hc11.c:3555
+#: config/tc-m68hc11.c:2902 config/tc-m68hc11.c:3451 config/tc-m68hc11.c:3552
#, c-format
msgid "Garbage at end of instruction: `%s'."
msgstr "Basura al final de la instrucción: «%s»."
-#: config/tc-m68hc11.c:3440
+#: config/tc-m68hc11.c:3439
#, c-format
msgid "Failed to find a valid mode for `%s'."
-msgstr "Fallaba al encontrar un modo válido para «%s»."
+msgstr "Fallo al encontrar un modo válido para «%s»."
-#: config/tc-m68hc11.c:3464 config/tc-m68hc11.c:3683 config/tc-m68hc11.c:3689
+#: config/tc-m68hc11.c:3463 config/tc-m68hc11.c:3680 config/tc-m68hc11.c:3686
#, c-format
msgid "Invalid operand for `%s'"
msgstr "Operando inválido para «%s»"
-#: config/tc-m68hc11.c:3741
+#: config/tc-m68hc11.c:3738
#, c-format
msgid "Invalid mode: %s\n"
msgstr "Modo inválido: %s\n"
-#: config/tc-m68hc11.c:3800
+#: config/tc-m68hc11.c:3797
msgid "bad .relax format"
msgstr "formato de .relax incorrecto"
-#: config/tc-m68hc11.c:3844 config/tc-s12z.c:3897 config/tc-xgate.c:630
+#: config/tc-m68hc11.c:3841 config/tc-s12z.c:3895 config/tc-xgate.c:627
#, c-format
msgid "Relocation %d is not supported by object file format."
msgstr "El formato del fichero objeto no admite la reubicación %d."
-#: config/tc-m68hc11.c:4121
+#: config/tc-m68hc11.c:4118
msgid "bra or bsr with undefined symbol."
msgstr "bra o bsr con símbolo indefinido."
-#: config/tc-m68hc11.c:4222 config/tc-m68hc11.c:4279
+#: config/tc-m68hc11.c:4219 config/tc-m68hc11.c:4276
#, c-format
msgid "Subtype %d is not recognized."
-msgstr "No reconocido el subtipo %d."
+msgstr "No se reconoce el subtipo %d."
-#: config/tc-m68hc11.c:4368 config/tc-s12z.c:3978 config/tc-xgate.c:708
-#: config/tc-xgate.c:717
+#: config/tc-m68hc11.c:4365 config/tc-s12z.c:3976 config/tc-xgate.c:705
+#: config/tc-xgate.c:714
msgid "Value out of 16-bit range."
-msgstr "Valor fuera del rango de 16-bit."
+msgstr "Valor fuera del rango de 16 bits."
-#: config/tc-m68hc11.c:4390
+#: config/tc-m68hc11.c:4387
#, c-format
msgid "Value %ld too large for 8-bit PC-relative branch."
-msgstr "Valora %ld demasiado grande para la ramificación de 8-bit relativa al PC."
+msgstr "Valora %ld demasiado grande para la bifurcación de 8 bits relativa al PC."
-#: config/tc-m68hc11.c:4400 config/tc-xgate.c:674
+#: config/tc-m68hc11.c:4397 config/tc-xgate.c:671
#, c-format
msgid "Value %ld too large for 9-bit PC-relative branch."
-msgstr "Valor %ld demasiado largo para ramificación PC-relativa de 9-bit."
+msgstr "Valor %ld demasiado grande para la bifurcación de 9 bits relativa al PC."
-#: config/tc-m68hc11.c:4409 config/tc-xgate.c:691
+#: config/tc-m68hc11.c:4406 config/tc-xgate.c:688
#, c-format
msgid "Value %ld too large for 10-bit PC-relative branch."
-msgstr "Valor %ld demasiado largo para ramificación PC-relativa de 10-bit."
+msgstr "Valor %ld demasiado grande para bifurcación de 10 bits relativa a PC."
-#: config/tc-m68hc11.c:4417
+#: config/tc-m68hc11.c:4414
#, c-format
msgid "Auto increment/decrement offset '%ld' is out of range."
-msgstr "El auto incremento/decremento del desplazamiento '%ld' está fuera de rango."
+msgstr "El desplazamiento de incremento/decremento automático '%ld' está fuera de rango."
-#: config/tc-m68hc11.c:4430
+#: config/tc-m68hc11.c:4427
#, c-format
msgid "Offset out of 5-bit range for movw/movb insn: %ld"
-msgstr "Desplazamiento fuera del rango de 5-bit para insn movw/movb: %ld"
+msgstr "Desplazamiento fuera del rango de 5 bits para insn movw/movb: %ld"
-#: config/tc-m68hc11.c:4441
+#: config/tc-m68hc11.c:4438
#, c-format
msgid "Offset out of 9-bit range for movw/movb insn: %ld"
-msgstr "Desplazamiento fuera del rango de 5-bit para insn movw/movb: %ld"
+msgstr "Desplazamiento fuera del rango de 5 bits para insn movw/movb: %ld"
-#: config/tc-m68hc11.c:4453
+#: config/tc-m68hc11.c:4450
#, c-format
msgid "Offset out of 16-bit range for movw/movb insn: %ld"
-msgstr "Desplazamiento fuera del rango de 16-bit para insn movw/movb: %ld"
+msgstr "Desplazamiento fuera del rango de 16 bits para insn movw/movb: %ld"
-#: config/tc-m68hc11.c:4470 config/tc-s12z.c:3984 config/tc-xgate.c:752
+#: config/tc-m68hc11.c:4467 config/tc-s12z.c:3982 config/tc-xgate.c:749
#, c-format
msgid "Line %d: unknown relocation type: 0x%x."
-msgstr "Línea %d: tipo reubicado desconocido: 0x%x."
+msgstr "Línea %d: tipo de reubicación desconocido: 0x%x."
-#: config/tc-m68hc11.c:4495 config/tc-z80.c:3452 config/tc-z80.c:3472
+#: config/tc-m68hc11.c:4492 config/tc-z80.c:3452 config/tc-z80.c:3472
msgid "Invalid directive"
msgstr "Directiva no válida"
@@ -11960,28 +11783,28 @@ msgstr "No se puede hacer la reubicación pic de %d bytes"
#: config/tc-m68k.c:1202
#, c-format
msgid "Unable to produce reloc against symbol '%s'"
-msgstr "Incapaz producir reubicación contra símbolo «%s»"
+msgstr "No se puede producir la reubicación contra el símbolo «%s»"
-#: config/tc-m68k.c:1261 config/tc-vax.c:2324
+#: config/tc-m68k.c:1261 config/tc-vax.c:2322
#, c-format
msgid "Cannot make %s relocation PC relative"
msgstr "No se puede hacer la reubicación relativa a PC %s"
-#: config/tc-m68k.c:1343 config/tc-vax.c:1874
+#: config/tc-m68k.c:1343 config/tc-vax.c:1872
msgid "No operator"
msgstr "No hay operador"
-#: config/tc-m68k.c:1373 config/tc-vax.c:1890
+#: config/tc-m68k.c:1373 config/tc-vax.c:1888
msgid "Unknown operator"
msgstr "Operador desconocido"
#: config/tc-m68k.c:2276
msgid "invalid instruction for this architecture; needs "
-msgstr "la instrucción no válida para esta arquitectura; necesita "
+msgstr "instrucción no válida para esta arquitectura; necesita "
#: config/tc-m68k.c:2284
msgid "hardware divide"
-msgstr "divide por hardware"
+msgstr "división de hardware"
#: config/tc-m68k.c:2306 config/tc-m68k.c:2310 config/tc-m68k.c:2314
msgid "or higher"
@@ -11992,18 +11815,18 @@ msgid "operands mismatch"
msgstr "no coinciden los operandos"
#: config/tc-m68k.c:2431 config/tc-m68k.c:2437 config/tc-m68k.c:2443
-#: config/tc-mmix.c:2499 config/tc-mmix.c:2523
+#: config/tc-mmix.c:2498 config/tc-mmix.c:2522
msgid "operand out of range"
msgstr "operando fuera de rango"
#: config/tc-m68k.c:2500
#, c-format
msgid "Bignum too big for %c format; truncated"
-msgstr "Número grande demasiado grande para el formato %c; se trunca"
+msgstr "Número-grande demasiado grande para el formato %c; se trunca"
#: config/tc-m68k.c:2577
msgid "displacement too large for this architecture; needs 68020 or higher"
-msgstr "desubicación demasiado grande para esta arquitectura; necesita 68020 o superior"
+msgstr "desplazamiento demasiado grande para esta arquitectura; necesita 68020 o superior"
#: config/tc-m68k.c:2685
msgid "scale factor invalid on this architecture; needs cpu32 or 68020 or higher"
@@ -12011,15 +11834,15 @@ msgstr "factor de escala inválido en esta arquitectura; necesita cpu32 o 68020
#: config/tc-m68k.c:2690
msgid "invalid index size for coldfire"
-msgstr "tamaño de índice inválido para coldfire"
+msgstr "tamaño de índice inválido para «coldfire»"
#: config/tc-m68k.c:2743
msgid "Forcing byte displacement"
-msgstr "Se fuerza la desubicación de byte"
+msgstr "Se fuerza desplazamiento de byte"
#: config/tc-m68k.c:2745
msgid "byte displacement out of range"
-msgstr "desplazamiento byte fuera de rango"
+msgstr "desplazamiento de byte fuera de rango"
#: config/tc-m68k.c:2790 config/tc-m68k.c:2828
msgid "invalid operand mode for this architecture; needs 68020 or higher"
@@ -12027,7 +11850,7 @@ msgstr "modo de operando inválido para esta arquitectura; necesita 68020 o supe
#: config/tc-m68k.c:2814 config/tc-m68k.c:2848
msgid ":b not permitted; defaulting to :w"
-msgstr "no se permite :b; se cambia por defecto a :w"
+msgstr "no se permite :b; se cambia por el predefinido :w"
#: config/tc-m68k.c:2923
msgid "unsupported byte value; use a different suffix"
@@ -12044,11 +11867,11 @@ msgstr "fuera de rango"
#: config/tc-m68k.c:3074
msgid "Can't use long branches on this architecture"
-msgstr "No se pueden usar ramificaciones long en esta arquitectura"
+msgstr "No se pueden usar bifurcaciones long en esta arquitectura"
#: config/tc-m68k.c:3180
msgid "Expression out of range, using 0"
-msgstr "Expresión fuera de rango, utilizando 0"
+msgstr "Expresión fuera de rango; utilizando 0"
#: config/tc-m68k.c:3381 config/tc-m68k.c:3397
msgid "Floating point register in register list"
@@ -12060,68 +11883,67 @@ msgstr "Registro incorrecto en la lista de registros de coma flotante"
#: config/tc-m68k.c:3403
msgid "incorrect register in reglist"
-msgstr "el registro incorrecto en la lista de registros"
+msgstr "registro incorrecto en la lista de registros"
#: config/tc-m68k.c:3409
msgid "wrong register in floating-point reglist"
-msgstr "el registro incorrecto en la lista de registros de coma flotante"
+msgstr "registro incorrecto en la lista de registros de coma flotante"
-#: config/tc-m68k.c:3820 config/tc-m68k.c:3852 config/tc-sparc.c:3140
+#: config/tc-m68k.c:3820 config/tc-m68k.c:3852 config/tc-sparc.c:3146
msgid "failed sanity check."
msgstr "la inspección sanitaria ha fallado."
#. ERROR.
#: config/tc-m68k.c:3882
msgid "Extra )"
-msgstr "Adicional )"
+msgstr "Extra )"
#. ERROR.
#: config/tc-m68k.c:3893
msgid "Missing )"
-msgstr "Ausente )"
+msgstr "Falta )"
#: config/tc-m68k.c:3910
msgid "Missing operand"
-msgstr "Ausente operando"
+msgstr "Falta operando"
#: config/tc-m68k.c:4235
#, c-format
msgid "unrecognized default cpu `%s'"
-msgstr "no reconocido el cpu por defecto «%s»"
+msgstr "no se reconoce la cpu por defecto «%s»"
#: config/tc-m68k.c:4289
#, c-format
msgid "%s -- statement `%s' ignored"
-msgstr "%s -- declaración «%s» descartada"
+msgstr "%s -- sentencia «%s» descartada"
#: config/tc-m68k.c:4336
-#, fuzzy, c-format
-#| msgid "Don't know how to figure width of %c in md_assemble()"
+#, c-format
msgid "Don't know how to figure out width of %c in md_assemble()"
-msgstr "No se sabe comó reconocer la anchura de %c en md_assemble()"
+msgstr "No se sabe comó averiguar la anchura de %c en md_assemble()"
#: config/tc-m68k.c:4566 config/tc-m68k.c:4604
#, c-format
msgid "Internal Error: Can't find %s in hash table"
-msgstr "Error Interno: No se puede encontrar %s en la tabla de dispersión"
+msgstr "Error Interno: No se puede encontrar %s en la tabla de «hash»"
#: config/tc-m68k.c:4720
#, c-format
msgid "text label `%s' aligned to odd boundary"
-msgstr "la etiqueta de texto «%s» está alineada a un límite impar"
+msgstr "la etiqueta de texto «%s» está alineada a un contorno impar"
#: config/tc-m68k.c:4879
#, c-format
msgid "value %ld out of range"
-msgstr "valora %ld fuera de rango"
+msgstr "valor %ld fuera de rango"
#: config/tc-m68k.c:4893
msgid "invalid byte branch offset"
-msgstr "desplazamiento de ramificación byte inválido"
+msgstr "desplazamiento de byte de bifurcación inválido"
#: config/tc-m68k.c:4930
msgid "short branch with zero offset: use :w"
-msgstr "ramificación corta con desplazamiento cero: utilice :w"
+msgstr "bifurcación corta con desplazamiento cero: utilice :w"
#: config/tc-m68k.c:4974
msgid "Conversion of PC relative BSR to absolute JSR"
@@ -12129,11 +11951,11 @@ msgstr "Conversión de un BSR relativo a PC a un JSR absoluto"
#: config/tc-m68k.c:4985
msgid "Conversion of PC relative branch to absolute jump"
-msgstr "Conversión de una ramificación relativa a PC a un salto absoluto"
+msgstr "Conversión de una bifurcación relativa a PC a un salto absoluto"
#: config/tc-m68k.c:5002 config/tc-m68k.c:5059
msgid "Conversion of PC relative conditional branch to absolute jump"
-msgstr "Conversión de una ramificación condicional relativa a PC a un salto absoluto"
+msgstr "Conversión de una bifurcación condicional relativa a PC a un salto absoluto"
#: config/tc-m68k.c:5124
msgid "Conversion of PC relative displacement to absolute"
@@ -12141,7 +11963,7 @@ msgstr "Conversión de un desplazamiento relativo a PC a absoluto"
#: config/tc-m68k.c:5307
msgid "Tried to convert PC relative branch to absolute jump"
-msgstr "Se trató de convertir una ramificación relativa a PC a un salto absoluto"
+msgstr "Se trató de convertir una bifurcación relativa a PC a un salto absoluto"
#: config/tc-m68k.c:5352 config/tc-m68k.c:5363 config/tc-m68k.c:5407
msgid "expression out of range: defaulting to 1"
@@ -12158,16 +11980,16 @@ msgstr "No se puede lidiar con la expresión; se cambia por defecto a %ld"
#: config/tc-m68k.c:5466
msgid "expression doesn't fit in BYTE"
-msgstr "expresión no cabe en BYTE"
+msgstr "la expresión no cabe en BYTE"
#: config/tc-m68k.c:5470
msgid "expression doesn't fit in WORD"
-msgstr "expresión no cabe en WORD"
+msgstr "la expresión no cabe en WORD"
#: config/tc-m68k.c:5547
#, c-format
msgid "%s: unrecognized processor name"
-msgstr "%s: no reconocido el nombre de procesador"
+msgstr "%s: no se reconoce el nombre de procesador"
#: config/tc-m68k.c:5608
msgid "bad coprocessor id"
@@ -12180,7 +12002,7 @@ msgstr "no se reconoce la opción fopt"
#: config/tc-m68k.c:5746
#, c-format
msgid "option `%s' may not be negated"
-msgstr "la opción «%s» podría no estar negada"
+msgstr "la opción «%s» puede no estar negada"
#: config/tc-m68k.c:5757
#, c-format
@@ -12193,7 +12015,7 @@ msgstr "formato incorrecto de OPT NEST=profundidad"
#: config/tc-m68k.c:5842
msgid "missing label"
-msgstr "ausencia etiquetado"
+msgstr "falta etiqueta"
#: config/tc-m68k.c:5868
#, c-format
@@ -12204,123 +12026,123 @@ msgstr "lista de registros incorrecta: %s"
msgid "restore without save"
msgstr "restaurar sin guardar"
-#: config/tc-m68k.c:6119 config/tc-m68k.c:6489
+#: config/tc-m68k.c:6119 config/tc-m68k.c:6488
msgid "syntax error in structured control directive"
msgstr "error de sintaxis en directiva de control estructurada"
#: config/tc-m68k.c:6164
msgid "missing condition code in structured control directive"
-msgstr "ausente el código de condición en la directiva de control estructurada"
+msgstr "falta el código de condición en directiva de control estructurada"
-#: config/tc-m68k.c:6235
+#: config/tc-m68k.c:6234
#, c-format
msgid "Condition <%c%c> in structured control directive can not be encoded correctly"
msgstr "La condición <%c%c> en la directiva de control estructurada no se puede codificar correctamente"
-#: config/tc-m68k.c:6531
+#: config/tc-m68k.c:6529
msgid "missing then"
-msgstr "ausente then"
+msgstr "falta then"
-#: config/tc-m68k.c:6612
+#: config/tc-m68k.c:6610
msgid "else without matching if"
msgstr "else sin if coincidente"
-#: config/tc-m68k.c:6645
+#: config/tc-m68k.c:6643
msgid "endi without matching if"
msgstr "endi sin if coincidente"
-#: config/tc-m68k.c:6685
+#: config/tc-m68k.c:6683
msgid "break outside of structured loop"
-msgstr "break externo al bucle estructurado"
+msgstr "break fuera de bucle estructurado"
-#: config/tc-m68k.c:6723
+#: config/tc-m68k.c:6721
msgid "next outside of structured loop"
-msgstr "next externo al bucle estructurado"
+msgstr "next fuera de bucle estructurado"
-#: config/tc-m68k.c:6774
+#: config/tc-m68k.c:6771
msgid "missing ="
-msgstr "ausente ="
+msgstr "falta ="
-#: config/tc-m68k.c:6812
+#: config/tc-m68k.c:6809
msgid "missing to or downto"
-msgstr "ausente to o downto"
+msgstr "falta to o downto"
-#: config/tc-m68k.c:6848 config/tc-m68k.c:6882 config/tc-m68k.c:7096
+#: config/tc-m68k.c:6845 config/tc-m68k.c:6879 config/tc-m68k.c:7094
msgid "missing do"
-msgstr "ausente do"
+msgstr "falta do"
-#: config/tc-m68k.c:6983
+#: config/tc-m68k.c:6982
msgid "endf without for"
msgstr "endf sin for"
-#: config/tc-m68k.c:7037
+#: config/tc-m68k.c:7036
msgid "until without repeat"
msgstr "until sin repeat"
-#: config/tc-m68k.c:7131
+#: config/tc-m68k.c:7129
msgid "endw without while"
msgstr "endw sin while"
-#: config/tc-m68k.c:7164 config/tc-m68k.c:7192
+#: config/tc-m68k.c:7162 config/tc-m68k.c:7191
msgid "already assembled instructions"
msgstr "las instrucciones ya están ensambladas"
-#: config/tc-m68k.c:7269
+#: config/tc-m68k.c:7271
#, c-format
msgid "`%s' is deprecated, use `%s'"
msgstr "«%s» es obsoleta, emplee «%s»"
-#: config/tc-m68k.c:7288
+#: config/tc-m68k.c:7290
#, c-format
msgid "cpu `%s' unrecognized"
msgstr "cpu «%s» no reconocida"
-#: config/tc-m68k.c:7307
+#: config/tc-m68k.c:7309
#, c-format
msgid "architecture `%s' unrecognized"
msgstr "arquitectura «%s» no reconocida"
-#: config/tc-m68k.c:7328
+#: config/tc-m68k.c:7330
#, c-format
msgid "extension `%s' unrecognized"
msgstr "extensión «%s» no reconocida"
-#: config/tc-m68k.c:7443
+#: config/tc-m68k.c:7445
#, c-format
msgid "option `-A%s' is deprecated: use `-%s'"
msgstr "la opción `-A%s' es obsoleta: use `-%s'"
-#: config/tc-m68k.c:7476
+#: config/tc-m68k.c:7478
msgid "architecture features both enabled and disabled"
msgstr "las características de la arquitectura están activadas y desactivadas al mismo tiempo"
-#: config/tc-m68k.c:7503
+#: config/tc-m68k.c:7505
msgid "selected processor does not have all features of selected architecture"
msgstr "el procesador seleccionado no tiene todas las características de la arquitectura seleccionada"
-#: config/tc-m68k.c:7512
+#: config/tc-m68k.c:7514
msgid "m68k and cf features both selected"
msgstr "se seleccionaron características tanto de m68k como de cf"
-#: config/tc-m68k.c:7524
+#: config/tc-m68k.c:7526
msgid "68040 and 68851 specified; mmu instructions may assemble incorrectly"
msgstr "se especificaron 68040 y 68851; las instrucciones mmu podrían ensamblar incorrectamente"
-#: config/tc-m68k.c:7556
+#: config/tc-m68k.c:7558
#, c-format
msgid ""
"-march=<arch>\t\tset architecture\n"
"-mcpu=<cpu>\t\tset cpu [default %s]\n"
msgstr ""
-"-march=<arqu>\t\tdefine la arquitectura\n"
-"-mcpu=<cpu>\t\tdefine el cpu [por defecto %s]\n"
+"-march=<arqu>\t\testablece la arquitectura\n"
+"-mcpu=<cpu>\t\testablece la cpu [por defecto %s]\n"
-#: config/tc-m68k.c:7561
+#: config/tc-m68k.c:7563
#, c-format
msgid "-m[no-]%-16s enable/disable %s architecture extension\n"
-msgstr "-m[no-]%-16s activa/desactiva extensión arquitectural %s\n"
+msgstr "-m[no-]%-16s activa/desactiva la extensión de arquitectura %s\n"
-#: config/tc-m68k.c:7567
+#: config/tc-m68k.c:7569
#, c-format
msgid ""
"-l\t\t\tuse 1 word for refs to undefined symbols [default 2]\n"
@@ -12335,10 +12157,10 @@ msgid ""
"--disp-size-default-16\tdisplacement with unknown size is 16 bits\n"
"--disp-size-default-32\tdisplacement with unknown size is 32 bits (default)\n"
msgstr ""
-"-l\t\t\tusa 1 word para referencias a símbolos indefinidos [por defecto 2]\n"
+"-l\t\t\tusa 1 palabra para referencias a símbolos indefinidos [por defecto 2]\n"
"-pic, -k\t\tgenera código independiente de posición\n"
"-S\t\t\tconvierte jbsr en jsr\n"
-"--pcrel nunca convierte ramificaciones relativas al PC en saltos absolutos\n"
+"--pcrel nunca convierte bifurcaciones relativas al PC en saltos absolutos\n"
"--register-prefix-optional\n"
"\t\t\treconoce los nombres de registro sin carácter de prefijo\n"
"--bitwise-or\t\tno trata `|' como un carácter de comentario\n"
@@ -12347,54 +12169,53 @@ msgstr ""
"--disp-size-default-16\tdesplazamiento con tamaño desconocido es 16 bits\n"
"--disp-size-default-32\tdesplazamiento con tamaño desconocido es 32 bits (por defecto)\n"
-#: config/tc-m68k.c:7581
+#: config/tc-m68k.c:7583
#, c-format
msgid "Architecture variants are: "
msgstr "Las variantes de arquitectura son: "
-#: config/tc-m68k.c:7590
+#: config/tc-m68k.c:7592
#, c-format
msgid "Processor variants are: "
msgstr "Las variantes de procesador son: "
-#: config/tc-m68k.c:7597 config/tc-xtensa.c:6412
+#: config/tc-m68k.c:7599 config/tc-xtensa.c:6413
#, c-format
msgid "\n"
msgstr "\n"
-#: config/tc-m68k.c:7628
+#: config/tc-m68k.c:7630
#, c-format
msgid "Error %s in %s\n"
msgstr "Error %s en %s\n"
-#: config/tc-m68k.c:7632
+#: config/tc-m68k.c:7634
#, c-format
msgid "Opcode(%d.%s): "
-msgstr "Código operacional(%d.%s): "
+msgstr "Código de operación(%d.%s): "
-#: config/tc-m68k.c:7777
+#: config/tc-m68k.c:7779
msgid "Not a defined coldfire architecture"
msgstr "No es una arquitectura coldfire definida"
-#: config/tc-m68k.c:7886 read.c:4809
+#: config/tc-m68k.c:7888 read.c:4871
#, c-format
msgid "%s relocations do not fit in %u byte"
msgid_plural "%s relocations do not fit in %u bytes"
msgstr[0] "%s reubicaciones no caben en %u byte"
msgstr[1] "%s reubicaciones no caben en %u bytes"
-#: config/tc-m68k.c:7928 config/tc-ppc.c:2594
+#: config/tc-m68k.c:7930 config/tc-ppc.c:2593
msgid "unknown .gnu_attribute value"
-msgstr "desconoce valor .gnu_attribute"
+msgstr "valor .gnu_attribute desconocido"
-#: config/tc-m68k.c:7972
-#, fuzzy, c-format
-#| msgid "Adjusted signed .word (%ld) overflows: `switch'-statement too large."
+#: config/tc-m68k.c:7974
+#, c-format
msgid "Adjusted signed .word (%#lx) overflows: `switch'-statement too large."
-msgstr "Signo ajustado .word (%ld) desborda: sentencia `switch' demasiado grande."
+msgstr "Desbordamiento de .word (%#lx) con signo ajustado: sentencia `switch' demasiado grande."
-#: config/tc-mcore.c:521 config/tc-microblaze.c:487 config/tc-microblaze.c:515
-#: config/tc-microblaze.c:552 config/tc-microblaze.c:564
+#: config/tc-mcore.c:521 config/tc-microblaze.c:486 config/tc-microblaze.c:514
+#: config/tc-microblaze.c:551 config/tc-microblaze.c:563
#, c-format
msgid "register expected, but saw '%.6s'"
msgstr "se esperaba un registro, pero se vio '%.6s'"
@@ -12406,40 +12227,40 @@ msgstr "se esperaba un registro de control, pero se vio '%.6s'"
#: config/tc-mcore.c:639
msgid "bad/missing psr specifier"
-msgstr "especificador psr incorrecto/ausentente"
+msgstr "especificador psr incorrecto/ausente"
#: config/tc-mcore.c:784
#, c-format
msgid "operand must be absolute in range %u..%u, not %ld"
-msgstr "operando debe ser un absoluto en el rango %u..%u, no %ld"
+msgstr "el operando debe ser absoluto en el rango %u..%u, no %ld"
#: config/tc-mcore.c:819
msgid "operand must be a multiple of 4"
-msgstr "operando debe ser un múltiplo de 4"
+msgstr "el operando debe ser un múltiplo de 4"
#: config/tc-mcore.c:826
msgid "operand must be a multiple of 2"
-msgstr "operando debe ser un múltiplo de 2"
+msgstr "el operando debe ser un múltiplo de 2"
#: config/tc-mcore.c:840 config/tc-mcore.c:1356 config/tc-mcore.c:1410
msgid "base register expected"
msgstr "se esperaba un registro base"
-#: config/tc-mcore.c:888 config/tc-microblaze.c:920 config/tc-microblaze.c:1056
-#: config/tc-microblaze.c:1090 config/tc-microblaze.c:1626
-#: config/tc-microblaze.c:1694 config/tc-microblaze.c:1769
-#: config/tc-microblaze.c:2192 config/tc-microblaze.c:2241
+#: config/tc-mcore.c:888 config/tc-microblaze.c:919 config/tc-microblaze.c:1051
+#: config/tc-microblaze.c:1083 config/tc-microblaze.c:1617
+#: config/tc-microblaze.c:1683 config/tc-microblaze.c:1756
+#: config/tc-microblaze.c:2176 config/tc-microblaze.c:2224
#, c-format
msgid "unknown opcode \"%s\""
msgstr "código de operación desconocido «%s»"
#: config/tc-mcore.c:931
msgid "invalid register: r15 illegal"
-msgstr "el registro inválido: r15 ilegal"
+msgstr "registro inválido: r15 ilegal"
#: config/tc-mcore.c:980 config/tc-mcore.c:1561
msgid "M340 specific opcode used when assembling for M210"
-msgstr "M340 utilizado como código de operación específico cuando ensambla para M210"
+msgstr "código de operación específico de M340 utilizado al ensamblar para M210"
#: config/tc-mcore.c:998 config/tc-mcore.c:1038 config/tc-mcore.c:1057
#: config/tc-mcore.c:1076 config/tc-mcore.c:1104 config/tc-mcore.c:1133
@@ -12448,32 +12269,32 @@ msgstr "M340 utilizado como código de operación específico cuando ensambla pa
#: config/tc-mcore.c:1359 config/tc-mcore.c:1413 config/tc-mcore.c:1449
#: config/tc-mcore.c:1508 config/tc-mcore.c:1530 config/tc-mcore.c:1553
msgid "second operand missing"
-msgstr "ausente el segundo operando"
+msgstr "falta el segundo operando"
#: config/tc-mcore.c:1014
msgid "destination register must be r1"
-msgstr "destino debe ser registro r1"
+msgstr "el registro de destino debe ser r1"
#: config/tc-mcore.c:1035
msgid "source register must be r1"
-msgstr "origen debe ser registro r1"
+msgstr "el registro de origen debe ser r1"
#: config/tc-mcore.c:1099 config/tc-mcore.c:1156
msgid "immediate is not a power of two"
-msgstr "inmediato no es una potencia de dos"
+msgstr "el inmediato no es una potencia de dos"
#: config/tc-mcore.c:1127
msgid "translating bgeni to movi"
-msgstr "se traslada ‘bgeni’ a ‘movi’"
+msgstr "se traduce ‘bgeni’ a ‘movi’"
#: config/tc-mcore.c:1196
msgid "translating bmaski to movi"
-msgstr "se traslada ‘bmaski’ a ‘movi’"
+msgstr "se traduce ‘bmaski’ a ‘movi’"
#: config/tc-mcore.c:1272
#, c-format
msgid "displacement too large (%d)"
-msgstr "desubicación muy grande (%d)"
+msgstr "desplazamiento demasiado grande (%d)"
#: config/tc-mcore.c:1286
msgid "Invalid register: r0 and r15 illegal"
@@ -12481,7 +12302,7 @@ msgstr "Registro inválido: r0 y r15 ilegales"
#: config/tc-mcore.c:1317
msgid "bad starting register: r0 and r15 invalid"
-msgstr "el registro de inicio incorrecto: r0 y r15 inválidos"
+msgstr "registro de inicio incorrecto: r0 y r15 inválidos"
#: config/tc-mcore.c:1330
msgid "ending register must be r15"
@@ -12489,7 +12310,7 @@ msgstr "el registro final debe ser r15"
#: config/tc-mcore.c:1350
msgid "bad base register: must be r0"
-msgstr "el registro base incorrecto: debe ser r0"
+msgstr "registro base incorrecto: debe ser r0"
#: config/tc-mcore.c:1368
msgid "first register must be r4"
@@ -12515,12 +12336,12 @@ msgstr "especificador de bit psr duplicado"
msgid "`af' must appear alone"
msgstr "`af' debe aparecer solo"
-#: config/tc-mcore.c:1588 config/tc-microblaze.c:1807
+#: config/tc-mcore.c:1588 config/tc-microblaze.c:1794
#, c-format
msgid "unimplemented opcode \"%s\""
msgstr "código de operación «%s» no implementado"
-#: config/tc-mcore.c:1597 config/tc-microblaze.c:1816
+#: config/tc-mcore.c:1597 config/tc-microblaze.c:1803
#, c-format
msgid "ignoring operands: %s "
msgstr "se descartan los operandos: %s "
@@ -12528,7 +12349,7 @@ msgstr "se descartan los operandos: %s "
#: config/tc-mcore.c:1673
#, c-format
msgid "unrecognised cpu type '%s'"
-msgstr "no reconocido el tipo de cpu «%s»"
+msgstr "no se reconoce el tipo de cpu «%s»"
#: config/tc-mcore.c:1691
#, c-format
@@ -12542,16 +12363,16 @@ msgid ""
msgstr ""
"Opciones específicas de MCORE:\n"
" -{no-}jsri2bsr\t {des}activa la transformación de jsri a bsr (def: des)\n"
-" -{no-}sifilter\t {des}activa el comportamiento filtrado del silicio (def: des)\n"
+" -{no-}sifilter\t {des}activa el comportamiento del filtro de silicio (def: des)\n"
" -cpu=[210|340] selecciona el tipo de CPU\n"
" -EB ensambla para un sistema big endian (predet.)\n"
" -EL ensambla para un sistema little endian\n"
-#: config/tc-mcore.c:1709 config/tc-microblaze.c:1926
+#: config/tc-mcore.c:1709 config/tc-microblaze.c:1911
msgid "failed sanity check: short_jump"
msgstr "la inspección sanitaria ha fallado: short_jump"
-#: config/tc-mcore.c:1719 config/tc-microblaze.c:1936
+#: config/tc-mcore.c:1719 config/tc-microblaze.c:1921
msgid "failed sanity check: long_jump"
msgstr "la inspección sanitaria ha fallado: long_jump"
@@ -12564,30 +12385,30 @@ msgstr "desplazamiento impar en %x"
#, c-format
msgid "odd distance branch (0x%lx byte)"
msgid_plural "odd distance branch (0x%lx bytes)"
-msgstr[0] "distancia de ramificación impar (0x%lx bytes)"
-msgstr[1] "distancia de ramificación impar (0x%lx byte)"
+msgstr[0] "distancia de bifurcación impar (0x%lx byte)"
+msgstr[1] "distancia de bifurcación impar (0x%lx bytes)"
#: config/tc-mcore.c:1961
#, c-format
msgid "pcrel for branch to %s too far (0x%lx)"
-msgstr "el pcrel para ramificar a %s muy lejos (0x%lx)"
+msgstr "pcrel para bifurcación a %s demasiado lejos (0x%lx)"
#: config/tc-mcore.c:1981
#, c-format
msgid "pcrel for lrw/jmpi/jsri to %s too far (0x%lx)"
-msgstr "el pcrel para lrw/jmpi/jsri a %s está muy lejos (0x%lx)"
+msgstr "pcrel para lrw/jmpi/jsri a %s demasiado lejos (0x%lx)"
#: config/tc-mcore.c:1993
#, c-format
msgid "pcrel for loopt too far (0x%lx)"
-msgstr "el pcrel para bucle ‘loopt’ está muy lejos (0x%lx)"
+msgstr "pcrel para bucle ‘loopt’ demasiado lejos (0x%lx)"
-#: config/tc-mcore.c:2189 config/tc-microblaze.c:2529 config/tc-tic30.c:1364
+#: config/tc-mcore.c:2189 config/tc-microblaze.c:2512 config/tc-tic30.c:1364
#, c-format
msgid "Can not do %d byte %srelocation"
-msgstr "No se puede hacer %d byte reubicación %s"
+msgstr "No se puede hacer reubicación %2$s de %1$d bytes"
-#: config/tc-mcore.c:2191 config/tc-microblaze.c:2531 config/tc-tic30.c:1365
+#: config/tc-mcore.c:2191 config/tc-microblaze.c:2514 config/tc-tic30.c:1365
msgid "pc-relative "
msgstr "relativo a pc "
@@ -12615,12 +12436,12 @@ msgstr ""
" -maverage -mno-average -mmult -mno-mult -mdiv -mno-div\n"
" -mbitops -mno-bitops -mleadz -mno-leadz -mabsdiff -mno-absdiff\n"
" -mminmax -mno-minmax -mclip -mno-clip -msatur -mno-satur -mcop32\n"
-" activa/desactiva los códigos operacionales dados\n"
+" activa/desactiva los códigos de operación dados\n"
"\n"
-" Si se da -mconfig, las otras casillas -m lo modifican. De otra manera,\n"
-" si no se dan casillas -m, todos los códigos operacionales core se activan;\n"
-" si se da cualquier opción -m que activa, solo ésas se activan;\n"
-" si se da cualquier opción -m que desactiva, solo ésas se desactivan.\n"
+" Si se da -mconfig, las otras opciones -m lo modifican. De otra manera,\n"
+" si no se dan opciones -m, todos los códigos de operación core se activan;\n"
+" si se da alguna opción -m activadora, solo ésas se activan;\n"
+" si solo se da alguna opción -m desactivadora, solo ésas se desactivan.\n"
#: config/tc-mep.c:408
msgid "$hi and $lo are disabled when MUL and DIV are off"
@@ -12636,29 +12457,29 @@ msgstr "$dbg y $depc están desactivados cuando DEBUG está apagado"
#: config/tc-mep.c:611
msgid "core and copro insn lengths must total 32 bits."
-msgstr "las longitudes de las insns core y copro deben ser en total 32 bit."
+msgstr "las longitudes de las insns core y copro deben ser en total 32 bits."
#: config/tc-mep.c:614 config/tc-mep.c:751
msgid "vliw group must consist of 1 core and 1 copro insn."
-msgstr "el grupo vliw debe consistir de 1 insn core y 1 copro."
+msgstr "el grupo vliw debe constar de 1 insn core y 1 copro."
#: config/tc-mep.c:748
msgid "core and copro insn lengths must total 64 bits."
-msgstr "las longitudes de las insns core y copro deben ser en total 64 bit."
+msgstr "las longitudes de las insns core y copro deben ser en total 64 bits."
#: config/tc-mep.c:980
#, c-format
msgid "cannot pack %s with a 16-bit insn"
-msgstr "no se puede empaquetar %s con una insn de 16-bit"
+msgstr "no se puede empaquetar %s con una insn de 16 bits"
#: config/tc-mep.c:998
#, c-format
msgid "cannot pack %s and %s together with a 16-bit insn"
-msgstr "no se pueden empaquetar %s y %s juntos con una insn de 16-bit"
+msgstr "no se pueden empaquetar %s y %s juntos con una insn de 16 bits"
#: config/tc-mep.c:1004
msgid "too many IVC2 insns to pack with a 16-bit core insn"
-msgstr "excesivos insns IVC2 a empaquetar con un insn core de 16-bit"
+msgstr "excesivos insns IVC2 a empaquetar con una insn core de 16 bits"
#: config/tc-mep.c:1019
#, c-format
@@ -12667,7 +12488,7 @@ msgstr "no se puede empaquetar %s en la ranura P1"
#: config/tc-mep.c:1025
msgid "too many IVC2 insns to pack with a 32-bit core insn"
-msgstr "demasiadas insns IVC2 para empaquetar con una insn core de 32-bit"
+msgstr "demasiadas insns IVC2 para empaquetar con una insn core de 32 bits"
#: config/tc-mep.c:1043
#, c-format
@@ -12697,410 +12518,410 @@ msgstr "No se permite el signo más inicial en el modo core"
#: config/tc-mep.c:1892
#, c-format
msgid "Don't know how to relocate plain operands of type %s"
-msgstr "No se cómo reubicar operandos planos de tipo %s"
+msgstr "Se desconoce cómo reubicar operandos planos de tipo %s"
#: config/tc-mep.c:1902
#, c-format
msgid "Perhaps you are missing %%tpoff()?"
-msgstr "¿Tal vez le ausente %%tpoff()?"
+msgstr "¿Tal vez falte %%tpoff()?"
#: config/tc-mep.c:2089
msgid "bad .section directive: want a,v,w,x,M,S in string"
-msgstr "directiva .section incorrecta: se quiere a,v,w,x,M,S en la cadena"
+msgstr "directiva .section incorrecta: se desea a,v,w,x,M,S en la cadena"
#: config/tc-mep.c:2147
msgid ".vliw unavailable when VLIW is disabled."
msgstr ".vliw no está disponible cuando VLIW está desactivado."
-#: config/tc-metag.c:456
+#: config/tc-metag.c:455
msgid "no floating point unit specified"
-msgstr "unidad no especificada de coma flotante"
+msgstr "no se ha especificado unidad de coma flotante"
-#: config/tc-metag.c:721
+#: config/tc-metag.c:720
#, c-format
msgid "offset must be a multiple of %d"
-msgstr "desplazamiento debe ser un múltiplo de %d"
+msgstr "el desplazamiento debe ser un múltiplo de %d"
-#: config/tc-metag.c:737 config/tc-metag.c:4443
+#: config/tc-metag.c:736 config/tc-metag.c:4441
msgid "offset and base must be from the same unit"
-msgstr "destino y origen deben ser desde la misma unidad"
+msgstr "el desplazamiento y la base deben ser de la misma unidad"
-#: config/tc-metag.c:868 config/tc-metag.c:3167 config/tc-metag.c:3269
+#: config/tc-metag.c:867 config/tc-metag.c:3166 config/tc-metag.c:3268
msgid "invalid destination register"
-msgstr "invalida registro destino"
+msgstr "registro destino no válido"
-#: config/tc-metag.c:884 config/tc-metag.c:902 config/tc-metag.c:1293
-#: config/tc-metag.c:1311 config/tc-metag.c:1530 config/tc-metag.c:3099
-#: config/tc-metag.c:3184 config/tc-metag.c:3286
+#: config/tc-metag.c:883 config/tc-metag.c:901 config/tc-metag.c:1292
+#: config/tc-metag.c:1310 config/tc-metag.c:1529 config/tc-metag.c:3098
+#: config/tc-metag.c:3183 config/tc-metag.c:3285
msgid "invalid memory operand"
msgstr "operando de memoria no válido"
-#: config/tc-metag.c:939 config/tc-metag.c:3117
+#: config/tc-metag.c:938 config/tc-metag.c:3116
msgid "invalid source register"
-msgstr "invalida registro fuente"
+msgstr "registro origen no válido"
-#: config/tc-metag.c:1024
+#: config/tc-metag.c:1023
msgid "invalid destination unit"
-msgstr "invalida unidad destino"
+msgstr "unidad destino no válida"
-#: config/tc-metag.c:1032
+#: config/tc-metag.c:1031
msgid "mov cannot use RD port as destination"
msgstr "mov no puede utilizar puerto RD como destino"
-#: config/tc-metag.c:1057
+#: config/tc-metag.c:1056
msgid "invalid source unit"
-msgstr "invalida unidad origen"
+msgstr "unidad origen no válida"
-#: config/tc-metag.c:1065
+#: config/tc-metag.c:1064
msgid "source and address units must not be shared for this addressing mode"
-msgstr "unidades de origen y dirección deben no ser compartidas para este modo direccional"
+msgstr "unidades de origen y dirección no deben compartirse para este modo de direccionamiento"
-#: config/tc-metag.c:1073 config/tc-metag.c:1676
+#: config/tc-metag.c:1072 config/tc-metag.c:1675
msgid "set can only use RD port as source"
-msgstr ""
+msgstr "se solo puede utilizar el puerto RD como origen"
-#: config/tc-metag.c:1088 config/tc-metag.c:1189 config/tc-metag.c:1440
-#: config/tc-metag.c:1697 config/tc-metag.c:4053
+#: config/tc-metag.c:1087 config/tc-metag.c:1188 config/tc-metag.c:1439
+#: config/tc-metag.c:1696 config/tc-metag.c:4052
#, c-format
msgid "base unit must be one of %s"
-msgstr "unidad base debe ser una de %s"
+msgstr "la unidad base debe ser una de %s"
#. We already tried to encode as an extended GET/SET.
#. Parsing as a standard GET/SET provides a smaller offset.
-#: config/tc-metag.c:1109 config/tc-metag.c:1215 config/tc-metag.c:3130
-#: config/tc-metag.c:3197 config/tc-metag.c:3299 config/tc-metag.c:4580
+#: config/tc-metag.c:1108 config/tc-metag.c:1214 config/tc-metag.c:3129
+#: config/tc-metag.c:3196 config/tc-metag.c:3298 config/tc-metag.c:4578
msgid "offset value out of range"
-msgstr "valor desplazado fuera de rango"
+msgstr "valor de desplazamiento fuera de rango"
-#: config/tc-metag.c:1169
+#: config/tc-metag.c:1168
msgid "destination unit must be RD"
-msgstr "unidad destino debe ser RD"
+msgstr "la unidad destino debe ser RD"
-#: config/tc-metag.c:1279
+#: config/tc-metag.c:1278
msgid "invalid destination register list"
-msgstr "invalida destino del listado de registro"
+msgstr "listado de registros destino no válido"
-#: config/tc-metag.c:1326
+#: config/tc-metag.c:1325
msgid "invalid source register list"
-msgstr "invalida listado registrador origen"
+msgstr "listado de registros origen no válido"
-#: config/tc-metag.c:1351
+#: config/tc-metag.c:1350
msgid "register list must be even numbered"
-msgstr "el registro listado debe ser numerado pares"
+msgstr "el listado de registros debe ser numerado par"
-#: config/tc-metag.c:1357
+#: config/tc-metag.c:1356
msgid "register list must be from the same unit"
-msgstr "listado de registros debe ser de la misma unidad"
+msgstr "el listado de registros debe ser de la misma unidad"
-#: config/tc-metag.c:1380
+#: config/tc-metag.c:1379
msgid "register list must not contain duplicates"
-msgstr "registrador listado debe no contener duplicados"
+msgstr "el listado de registros no debe contener duplicados"
-#: config/tc-metag.c:1636
+#: config/tc-metag.c:1635
msgid "MDRD value must be between 1 and 8"
-msgstr "MDRD validado debe estar entre 1 y 9"
+msgstr "el valor de MDRD debe estar entre 1 y 8"
-#: config/tc-metag.c:1727
+#: config/tc-metag.c:1726
msgid "invalid destination memory operand"
-msgstr "operando de memoria destino no válida"
+msgstr "operando de memoria destino no válido"
-#: config/tc-metag.c:1742
+#: config/tc-metag.c:1741
msgid "invalid source memory operand"
-msgstr "operando de memoria origen inválido"
+msgstr "operando de memoria origen no válido"
-#: config/tc-metag.c:1749
+#: config/tc-metag.c:1748
#, c-format
msgid "address units must be one of %s"
-msgstr "unidades direccionales debe ser uno de %s"
+msgstr "unidades de direccionamiento deben ser una de %s"
-#: config/tc-metag.c:1756
+#: config/tc-metag.c:1755
msgid "base and offset must be from the same unit"
-msgstr "base y destino deben ser desde la misma unidad"
+msgstr "base y desplazamiento deben ser de la misma unidad"
-#: config/tc-metag.c:1764
+#: config/tc-metag.c:1763
msgid "source and destination increment mode must agree"
-msgstr "modo incrementa de origen y destino registros fuente y destino no deben ser iguales"
+msgstr "el modo de incremento de origen y destino deben ser compatibles"
-#: config/tc-metag.c:2039
+#: config/tc-metag.c:2038
msgid "PC, CT, TR and TT are treated as if they are a single unit but operands must be in different units"
-msgstr ""
+msgstr "PC, CT, TR y TT se tratan como si son una sola unidad pero los operandos deben estar en unidades diferentes"
-#: config/tc-metag.c:2048
+#: config/tc-metag.c:2047
msgid "source and destination register must be in different units"
-msgstr "el registro de origen y destino deben ser unidades diferentes"
+msgstr "el registro de origen y destino deben estar en unidades diferentes"
-#: config/tc-metag.c:2080
+#: config/tc-metag.c:2079
#, c-format
msgid "register unit must be one of %s"
-msgstr "unidad registro debe ser una de %s"
+msgstr "la unidad de registro debe ser una de %s"
-#: config/tc-metag.c:2167
+#: config/tc-metag.c:2166
#, c-format
msgid "link register unit must be one of %s"
-msgstr "el registro enlazado unitario debe ser uno de %s"
+msgstr "la unidad del registro de enlazamiento debe ser una de %s"
-#: config/tc-metag.c:2173
+#: config/tc-metag.c:2172
msgid "link register must be in a low numbered register"
-msgstr "el registro enlazado debe estar dentro de un registro numerado bajo"
+msgstr "el registro de enlazamiento debe estar dentro de un registro numerado bajo"
-#: config/tc-metag.c:2190 config/tc-metag.c:2715 config/tc-metag.c:2769
+#: config/tc-metag.c:2189 config/tc-metag.c:2714 config/tc-metag.c:2768
msgid "target out of range"
msgstr "objetivo fuera de rango"
-#: config/tc-metag.c:2671
+#: config/tc-metag.c:2670
msgid "invalid quickrot unit specified"
-msgstr "invalida unidad quickrot especificada"
+msgstr "unidad quickrot especificada no válida"
-#: config/tc-metag.c:2687
+#: config/tc-metag.c:2686
msgid "invalid quickrot register specified"
-msgstr "invalida registro quickrot especificado"
+msgstr "registro quickrot especificado no válido"
-#: config/tc-metag.c:2741
+#: config/tc-metag.c:2740
msgid "source register must be in the trigger unit"
msgstr "el registro origen debe estar en la unidad disparadora"
-#: config/tc-metag.c:2844
+#: config/tc-metag.c:2843
msgid "Source registers must be in the same unit"
-msgstr "Registros origen deben estar en la misma unidad"
+msgstr "Los registros origen deben estar en la misma unidad"
-#: config/tc-metag.c:3554 config/tc-metag.c:3718 config/tc-metag.c:3986
+#: config/tc-metag.c:3553 config/tc-metag.c:3717 config/tc-metag.c:3985
msgid "destination register should be even numbered"
-msgstr "el registro destino deberían ser numerados pares"
+msgstr "el registro destino debería ser numerado par"
-#: config/tc-metag.c:3626
+#: config/tc-metag.c:3625
msgid "comparison must be with register or #0"
-msgstr "comparaciones deben ser con registros o #0"
+msgstr "las comparaciones deben ser con registros o #0"
-#: config/tc-metag.c:3692 config/tc-metag.c:3757
+#: config/tc-metag.c:3691 config/tc-metag.c:3756
msgid "instruction cannot operate on pair values"
-msgstr "la instrucción no puede operar pares de valores"
+msgstr "la instrucción no puede operar con pares de valores"
-#: config/tc-metag.c:3703
+#: config/tc-metag.c:3702
msgid "zero flag is not valid for this instruction"
msgstr "marca cero no es válida para esta instrucción"
-#: config/tc-metag.c:3724
+#: config/tc-metag.c:3723
msgid "source register should be even numbered"
-msgstr "el registro origen deberían ser numerados pares"
+msgstr "el registro origen debería ser numerado par"
-#: config/tc-metag.c:3784 config/tc-metag.c:3793
+#: config/tc-metag.c:3783 config/tc-metag.c:3792
msgid "fraction bits value out of range"
-msgstr "valor de varios bit fraccional fuera de rango"
+msgstr "valor de bits de fracción fuera de rango"
-#: config/tc-metag.c:3975
+#: config/tc-metag.c:3974
msgid "simd instructions operate on pair values (L prefix)"
-msgstr ""
+msgstr "las instrucciones simd operan con pares de valroes (prefijo L)"
-#: config/tc-metag.c:3993
+#: config/tc-metag.c:3992
msgid "source registers should be even numbered"
-msgstr "el registros origen deberían ser numerados pares"
+msgstr "los registros origen deberían ser numerados pares"
-#: config/tc-metag.c:4271
+#: config/tc-metag.c:4270
#, c-format
msgid "expected ']', not %c in %s"
-msgstr "esperaba ']', no %c dentro de %s"
+msgstr "se esperaba ']', no %c, en %s"
-#: config/tc-metag.c:4390
+#: config/tc-metag.c:4388
msgid "invalid register for memory access"
-msgstr "el registro para acceso de memoria inválido"
+msgstr "registro para acceso de memoria inválido"
-#: config/tc-metag.c:4503 config/tc-metag.c:4631
+#: config/tc-metag.c:4501 config/tc-metag.c:4629
msgid "unexpected end of line"
-msgstr "fin de línea inesperada"
+msgstr "final de línea inesperado"
-#: config/tc-metag.c:4550
+#: config/tc-metag.c:4548
msgid "'H' modifier only valid for accumulator registers"
-msgstr "Registro acumulador inválido"
+msgstr "modificador 'H' solo válido para registros acumulador"
-#: config/tc-metag.c:4603
+#: config/tc-metag.c:4601
msgid "base unit must be either A0 or A1"
-msgstr "unidad base debe ser o A0 o A1"
+msgstr "la unidad base debe ser o A0 o A1"
-#: config/tc-metag.c:4676 config/tc-metag.c:5119
+#: config/tc-metag.c:4674 config/tc-metag.c:5117
msgid "invalid register"
-msgstr "invalida registro"
+msgstr "registro no válido"
-#: config/tc-metag.c:4787 config/tc-metag.c:5528 config/tc-metag.c:5550
+#: config/tc-metag.c:4785 config/tc-metag.c:5526 config/tc-metag.c:5548
msgid "invalid register operand"
-msgstr "invalida registro operando"
+msgstr "operando de registro no válido"
-#: config/tc-metag.c:4824
+#: config/tc-metag.c:4822
msgid "could not parse template definition"
-msgstr "no pudo interpretar definición de plantilla"
+msgstr "no se ha podido analizar la definición de plantilla"
-#: config/tc-metag.c:5011
+#: config/tc-metag.c:5009
msgid "QUICKRoT 64-bit extension not applicable to this instruction"
-msgstr "Extensión QUICKRoT 64-bit no aplicable a esta instrucción"
+msgstr "Extensión QUICKRoT de 64 bits no aplicable a esta instrucción"
-#: config/tc-metag.c:5067
+#: config/tc-metag.c:5065
msgid "invalid operands for cross-unit op"
-msgstr "operandos inválidos para op de unidades cruzadas"
+msgstr "operandos inválidos para op «cross-unit»"
-#: config/tc-metag.c:5109
+#: config/tc-metag.c:5107
msgid "missing flags: one of 'P', 'N' or 'Z' required"
-msgstr ""
+msgstr "faltan indicadores: se requiere uno de entre 'P', 'N' o 'Z'"
-#: config/tc-metag.c:5137
+#: config/tc-metag.c:5135
msgid "'P', 'N' or 'Z' flags may only be specified when accumulating"
-msgstr ""
+msgstr "los indicadores 'P', 'N' o 'Z' solo se pueden especificar al acumular"
-#: config/tc-metag.c:5158
+#: config/tc-metag.c:5156
msgid "accumulator not a valid destination"
-msgstr "acumulador no un destino válido"
+msgstr "el acumulador no es un destino válido"
-#: config/tc-metag.c:5168 config/tc-metag.c:5384 config/tc-metag.c:5568
+#: config/tc-metag.c:5166 config/tc-metag.c:5382 config/tc-metag.c:5566
msgid "invalid immediate value"
msgstr "valor inmediato inválido"
-#: config/tc-metag.c:5180
+#: config/tc-metag.c:5178
#, fuzzy
#| msgid "immediate value cannot be used to set this field"
msgid "immediate value not allowed when source & dest differ"
msgstr "no se puede usar un valor inmediato para establecer este campo"
-#: config/tc-metag.c:5212
+#: config/tc-metag.c:5210
#, c-format
msgid "invalid register operand: %s"
msgstr "operando registrado inválido: %s"
-#: config/tc-metag.c:5246
+#: config/tc-metag.c:5244
msgid "QUICKRoT extension requires 4 registers"
msgstr "Extensión QUICKRoT requiere 4 registros"
-#: config/tc-metag.c:5253
+#: config/tc-metag.c:5251
msgid "invalid fourth register"
msgstr "el registro cuarto inválido"
-#: config/tc-metag.c:5260
+#: config/tc-metag.c:5258
msgid "A0.2,A0.3,A1.2,A1.3 required for QUICKRoT register"
msgstr "A0.2,A0.3,A1.2,A1.3 requerido para registrador QUICKRoT"
-#: config/tc-metag.c:5288
+#: config/tc-metag.c:5286
msgid "DSP RAM pointer in incorrect unit"
msgstr ""
-#: config/tc-metag.c:5334
+#: config/tc-metag.c:5332
msgid "invalid register operand #1"
msgstr "operando registrado inválido Nº1"
-#: config/tc-metag.c:5348
+#: config/tc-metag.c:5346
msgid "invalid register operand #2"
msgstr "operando registrado inválido Nº2"
-#: config/tc-metag.c:5412
+#: config/tc-metag.c:5410
msgid "this instruction does not accept an immediate"
msgstr "esta instrucción no acepta un inmediato"
-#: config/tc-metag.c:5432
+#: config/tc-metag.c:5430
msgid "invalid register operand #3"
msgstr "operando registrado inválido Nº3"
-#: config/tc-metag.c:5444
+#: config/tc-metag.c:5442
msgid "this instruction does not accept an accumulator"
msgstr "esta instrucción no acepta un acumulador"
-#: config/tc-metag.c:5462
+#: config/tc-metag.c:5460
msgid "invalid register operand #4"
msgstr "operando registrado inválido Nº4"
-#: config/tc-metag.c:5539
+#: config/tc-metag.c:5537
msgid "invalid accumulator register"
msgstr "invalida registro acumulador"
-#: config/tc-metag.c:5595
+#: config/tc-metag.c:5593
msgid "conditional instruction cannot use G flag"
msgstr "la instrucción condicional no puede utilizar marca G"
-#: config/tc-metag.c:5606
+#: config/tc-metag.c:5604
msgid "conditional instruction cannot use B flag"
msgstr "la instrucción condicional no puede utilizar marca B"
-#: config/tc-metag.c:5617
+#: config/tc-metag.c:5615
msgid "conditional instruction cannot use R flag"
msgstr "la instrucción condicional no puede utilizar marca R"
-#: config/tc-metag.c:5726
+#: config/tc-metag.c:5724
msgid "'L' modifier not valid for this instruction"
msgstr "Modificador 'L' no válido para esta instrucción"
-#: config/tc-metag.c:5858
+#: config/tc-metag.c:5856
#, c-format
msgid "missing fpu name `%s'"
-msgstr "ausente el nombre fpu «%s»"
+msgstr "falta el nombre fpu «%s»"
-#: config/tc-metag.c:5869
+#: config/tc-metag.c:5867
#, c-format
msgid "unknown fpu `%s'"
msgstr "desconoce FPU «%s»"
-#: config/tc-metag.c:5884
+#: config/tc-metag.c:5882
#, c-format
msgid "missing DSP name `%s'"
msgstr "nombre DSP ausente «%s»"
-#: config/tc-metag.c:5895
+#: config/tc-metag.c:5893
#, c-format
msgid "unknown DSP `%s'"
msgstr "desconoce DSP `%s'"
-#: config/tc-metag.c:5913
+#: config/tc-metag.c:5911
msgid "<dsp name>\t assemble for DSP architecture <dsp name>"
msgstr "<nombre dsp>\t ensambla para la arquitectura DSP <nombre dsp>"
-#: config/tc-metag.c:5950
+#: config/tc-metag.c:5948
#, c-format
msgid " Meta specific command line options:\n"
msgstr " Opciones de la línea de mandatos específicas de Meta:\n"
-#: config/tc-metag.c:6039
+#: config/tc-metag.c:6037
msgid "premature end of floating point prefix"
msgstr "final prematuro de prefijo coma flotante"
-#: config/tc-metag.c:6099
+#: config/tc-metag.c:6097
msgid "unknown floating point prefix character"
msgstr "desconoce prefijo de caracteres de coma flotante"
-#: config/tc-metag.c:6248
+#: config/tc-metag.c:6246
#, c-format
msgid "unknown DSP prefix character %c %s"
msgstr "carácter prefijo DSP desconocido %c%s"
-#: config/tc-metag.c:6511
+#: config/tc-metag.c:6507
#, c-format
msgid "instruction mnemonic too long: %s"
msgstr "la instrucción mnemónica demasiado larga: %s"
-#: config/tc-metag.c:6566
+#: config/tc-metag.c:6562
#, c-format
msgid "junk at end of line: \"%s\""
msgstr "basura al final de la línea: «%s»"
-#: config/tc-metag.c:6573
+#: config/tc-metag.c:6569
#, c-format
msgid "failed to assemble instruction: \"%s\""
msgstr "fallaba al ensamblar la instrucción: «%s»"
-#: config/tc-metag.c:6578
+#: config/tc-metag.c:6574
#, c-format
msgid "unknown floating point mnemonic: \"%s\""
msgstr "desconoce mnemónico de coma flotante: «%s»"
-#: config/tc-metag.c:6580
+#: config/tc-metag.c:6576
#, c-format
msgid "unknown mnemonic: \"%s\""
msgstr "desconoce mnemónico: «%s»"
-#: config/tc-metag.c:6631
+#: config/tc-metag.c:6627
#, c-format
msgid "cannot assemble DSP instruction, DSP option not set: %s"
msgstr "no se puede ensamblar instrucción DSP, opción DSP no establecida: %s"
-#: config/tc-metag.c:6638
+#: config/tc-metag.c:6634
#, c-format
msgid "cannot assemble FPU instruction, FPU option not set: %s"
msgstr "no puede ensamblar la instrucción FPS, opción FPS no definida: %s"
-#: config/tc-metag.c:6733 config/tc-nds32.c:7347
+#: config/tc-metag.c:6729 config/tc-nds32.c:7341
msgid "Bad call to md_atof()"
msgstr "Equivocación de llamada a md_atof()"
@@ -13109,894 +12930,894 @@ msgstr "Equivocación de llamada a md_atof()"
msgid "Length of .lcomm \"%s\" is already %ld. Not changed to %ld."
msgstr "La longitud de .lcomm «%s» ya es %ld. No se cambió a %ld."
-#: config/tc-microblaze.c:492 config/tc-microblaze.c:521
-#: config/tc-microblaze.c:558
+#: config/tc-microblaze.c:491 config/tc-microblaze.c:520
+#: config/tc-microblaze.c:557
#, c-format
msgid "Invalid register number at '%.6s'"
msgstr "Invalida número de registro en '%.6s'"
-#: config/tc-microblaze.c:723
+#: config/tc-microblaze.c:722
msgid "operand must be a constant or a label"
msgstr "operando debe ser una constante o una etiqueta"
-#: config/tc-microblaze.c:732
+#: config/tc-microblaze.c:731
#, c-format
msgid "operand must be absolute in range %lx..%lx, not %lx"
msgstr "operando debe ser absoluto en rango %lx..%lx, no %lx"
-#: config/tc-microblaze.c:934 config/tc-microblaze.c:941
-#: config/tc-microblaze.c:948 config/tc-microblaze.c:981
-#: config/tc-microblaze.c:988 config/tc-microblaze.c:994
-#: config/tc-microblaze.c:1113 config/tc-microblaze.c:1120
-#: config/tc-microblaze.c:1126 config/tc-microblaze.c:1157
-#: config/tc-microblaze.c:1165 config/tc-microblaze.c:1179
-#: config/tc-microblaze.c:1197 config/tc-microblaze.c:1238
-#: config/tc-microblaze.c:1245 config/tc-microblaze.c:1265
-#: config/tc-microblaze.c:1272 config/tc-microblaze.c:1292
-#: config/tc-microblaze.c:1299 config/tc-microblaze.c:1317
-#: config/tc-microblaze.c:1324 config/tc-microblaze.c:1346
-#: config/tc-microblaze.c:1353 config/tc-microblaze.c:1371
-#: config/tc-microblaze.c:1383 config/tc-microblaze.c:1401
-#: config/tc-microblaze.c:1418 config/tc-microblaze.c:1425
-#: config/tc-microblaze.c:1471 config/tc-microblaze.c:1478
-#: config/tc-microblaze.c:1524 config/tc-microblaze.c:1531
-#: config/tc-microblaze.c:1553 config/tc-microblaze.c:1560
-#: config/tc-microblaze.c:1580 config/tc-microblaze.c:1586
-#: config/tc-microblaze.c:1648 config/tc-microblaze.c:1654
-#: config/tc-microblaze.c:1716 config/tc-microblaze.c:1792
+#: config/tc-microblaze.c:933 config/tc-microblaze.c:940
+#: config/tc-microblaze.c:947 config/tc-microblaze.c:980
+#: config/tc-microblaze.c:987 config/tc-microblaze.c:993
+#: config/tc-microblaze.c:1106 config/tc-microblaze.c:1113
+#: config/tc-microblaze.c:1119 config/tc-microblaze.c:1150
+#: config/tc-microblaze.c:1158 config/tc-microblaze.c:1172
+#: config/tc-microblaze.c:1190 config/tc-microblaze.c:1231
+#: config/tc-microblaze.c:1238 config/tc-microblaze.c:1258
+#: config/tc-microblaze.c:1265 config/tc-microblaze.c:1285
+#: config/tc-microblaze.c:1292 config/tc-microblaze.c:1310
+#: config/tc-microblaze.c:1317 config/tc-microblaze.c:1339
+#: config/tc-microblaze.c:1346 config/tc-microblaze.c:1364
+#: config/tc-microblaze.c:1376 config/tc-microblaze.c:1394
+#: config/tc-microblaze.c:1411 config/tc-microblaze.c:1418
+#: config/tc-microblaze.c:1464 config/tc-microblaze.c:1471
+#: config/tc-microblaze.c:1517 config/tc-microblaze.c:1524
+#: config/tc-microblaze.c:1546 config/tc-microblaze.c:1553
+#: config/tc-microblaze.c:1573 config/tc-microblaze.c:1579
+#: config/tc-microblaze.c:1639 config/tc-microblaze.c:1645
+#: config/tc-microblaze.c:1705 config/tc-microblaze.c:1779
msgid "Error in statement syntax"
msgstr "Error en la sintaxis de la declaración"
-#: config/tc-microblaze.c:954 config/tc-microblaze.c:956
-#: config/tc-microblaze.c:958 config/tc-microblaze.c:998
-#: config/tc-microblaze.c:1000 config/tc-microblaze.c:1130
-#: config/tc-microblaze.c:1132 config/tc-microblaze.c:1171
-#: config/tc-microblaze.c:1173 config/tc-microblaze.c:1251
-#: config/tc-microblaze.c:1253 config/tc-microblaze.c:1278
-#: config/tc-microblaze.c:1280 config/tc-microblaze.c:1305
-#: config/tc-microblaze.c:1328 config/tc-microblaze.c:1359
-#: config/tc-microblaze.c:1389 config/tc-microblaze.c:1407
-#: config/tc-microblaze.c:1537 config/tc-microblaze.c:1539
-#: config/tc-microblaze.c:1566 config/tc-microblaze.c:1568
-#: config/tc-microblaze.c:1590 config/tc-microblaze.c:1658
-#: config/tc-microblaze.c:1722
+#: config/tc-microblaze.c:953 config/tc-microblaze.c:955
+#: config/tc-microblaze.c:957 config/tc-microblaze.c:997
+#: config/tc-microblaze.c:999 config/tc-microblaze.c:1123
+#: config/tc-microblaze.c:1125 config/tc-microblaze.c:1164
+#: config/tc-microblaze.c:1166 config/tc-microblaze.c:1244
+#: config/tc-microblaze.c:1246 config/tc-microblaze.c:1271
+#: config/tc-microblaze.c:1273 config/tc-microblaze.c:1298
+#: config/tc-microblaze.c:1321 config/tc-microblaze.c:1352
+#: config/tc-microblaze.c:1382 config/tc-microblaze.c:1400
+#: config/tc-microblaze.c:1530 config/tc-microblaze.c:1532
+#: config/tc-microblaze.c:1559 config/tc-microblaze.c:1561
+#: config/tc-microblaze.c:1583 config/tc-microblaze.c:1649
+#: config/tc-microblaze.c:1711
msgid "Cannot use special register with this instruction"
msgstr "No se puede usar el registro especial con esta instrucción"
-#: config/tc-microblaze.c:1008
+#: config/tc-microblaze.c:1007
msgid "lmi pseudo instruction should not use a label in imm field"
msgstr "pseudo instrucción lmi no debería emplear una etiqueta en el campo imm"
-#: config/tc-microblaze.c:1010
+#: config/tc-microblaze.c:1009
msgid "smi pseudo instruction should not use a label in imm field"
msgstr "pseudo instrucción smi no debería emplear una etiqueta en el campo imm"
-#: config/tc-microblaze.c:1135
+#: config/tc-microblaze.c:1128
msgid "Symbol used as immediate for shift instruction"
msgstr "Se utiliza un símbolo como inmediato para la instrucción desplazamiento"
-#: config/tc-microblaze.c:1144
+#: config/tc-microblaze.c:1137
#, c-format
msgid "Shift value > 32. using <value %% 32>"
msgstr "Valor de desplazamiento > 32. se utiliza <value %% 32>"
-#: config/tc-microblaze.c:1184
+#: config/tc-microblaze.c:1177
#, fuzzy
#| msgid "Symbol used as immediate value for msrset/msrclr instructions"
msgid "Symbol used as immediate width value for bit field instruction"
msgstr "Se utiliza un símbolo como valor inmediato para instrucciones msrset/msrclr"
-#: config/tc-microblaze.c:1191
+#: config/tc-microblaze.c:1184
#, fuzzy
#| msgid "file number less than one"
msgid "Width value must be less than 32"
msgstr "número de fichero menor que uno"
-#: config/tc-microblaze.c:1202
+#: config/tc-microblaze.c:1195
#, fuzzy
#| msgid "Symbol used as immediate value for msrset/msrclr instructions"
msgid "Symbol used as immediate shift value for bit field instruction"
msgstr "Se utiliza un símbolo como valor inmediato para instrucciones msrset/msrclr"
-#: config/tc-microblaze.c:1213
+#: config/tc-microblaze.c:1206
#, fuzzy, c-format
#| msgid "Shift value > 32. using <value %% 32>"
msgid "Shift value greater than 32. using <value %% 32>"
msgstr "Valor de desplazamiento > 32. se utiliza <value %% 32>"
-#: config/tc-microblaze.c:1219
+#: config/tc-microblaze.c:1212
#, fuzzy
#| msgid "branch target frequency must be greater than 0"
msgid "Width value + shift value must not be greater than 32"
-msgstr "la frecuencia de ramificación de objetivo debe ser mayor a 0"
+msgstr "la frecuencia de bifurcación de objetivo debe ser mayor a 0"
-#: config/tc-microblaze.c:1331
+#: config/tc-microblaze.c:1324
msgid "Symbol used as immediate value for msrset/msrclr instructions"
msgstr "Se utiliza un símbolo como valor inmediato para instrucciones msrset/msrclr"
-#: config/tc-microblaze.c:1460 config/tc-microblaze.c:1513
+#: config/tc-microblaze.c:1453 config/tc-microblaze.c:1506
msgid "invalid value for special purpose register"
msgstr "valor inválido para el registro de propósito especial"
-#: config/tc-microblaze.c:1730
+#: config/tc-microblaze.c:1719
msgid "An IMM instruction should not be present in the .s file"
msgstr "Una instrucción IMM no debe estar presente en el fichero .s"
-#: config/tc-microblaze.c:1794
+#: config/tc-microblaze.c:1781
msgid "Symbol used as immediate for mbar instruction"
msgstr "Se utiliza un símbolo como inmediato para instrucción mbar"
-#: config/tc-microblaze.c:1800
+#: config/tc-microblaze.c:1787
#, c-format
msgid "Immediate value for mbar > 32. using <value %% 32>"
msgstr "Valor inmediato para mbar > 32. utilizando <valor %% 32>"
-#: config/tc-microblaze.c:1874
+#: config/tc-microblaze.c:1861
msgid "Bad call to MD_NTOF()"
msgstr "Llamada incorrecta a MD_NTOF()"
-#: config/tc-microblaze.c:2143
+#: config/tc-microblaze.c:2128
#, c-format
msgid "pcrel for branch to %s too far (0x%x)"
msgstr "el pcrel para ramificar a %s muy lejos (0x%x)"
#. We know the abs value: Should never happen.
-#: config/tc-microblaze.c:2304
+#: config/tc-microblaze.c:2287
msgid "Absolute PC-relative value in relaxation code. Assembler error....."
msgstr "Valor relativo a PC absoluto en código de relajación. Error de ensamblador....."
#. Cannot have a PC-relative branch to a diff segment.
-#: config/tc-microblaze.c:2318
+#: config/tc-microblaze.c:2301
#, c-format
msgid "PC relative branch to label %s which is not in the instruction space"
msgstr "Ramificación relativa a PC a la etiqueta %s, la cual no está en el espacio de instrucción"
-#: config/tc-microblaze.c:2361
+#: config/tc-microblaze.c:2344
msgid "Variable is accessed using small data read only anchor, but it is not in the small data read only section"
msgstr "Se accede a la variable usando un ancla de solo lectura de datos small, pero no está en la sección de solo lectura de datos small"
-#: config/tc-microblaze.c:2384
+#: config/tc-microblaze.c:2367
msgid "Variable is accessed using small data read write anchor, but it is not in the small data read write section"
msgstr "Se accede a la variable usando un ancla de lectura escritura de datos smaill, pero no está en la sección de lectura escritura de datos small"
-#: config/tc-microblaze.c:2393
+#: config/tc-microblaze.c:2376
msgid "Incorrect fr_opcode value in frag. Internal error....."
msgstr "Valor de fr_opcode incorrecto en frag. Error interno....."
#. We know the abs value: Should never happen.
-#: config/tc-microblaze.c:2400
+#: config/tc-microblaze.c:2383
msgid "Absolute value in relaxation code. Assembler error....."
msgstr "Valor absoluto en código de relajación. Error de ensamblador....."
#. fprintf(stream, _(" MicroBlaze options:\n -noSmall Data in the comm and data sections do not go into the small data section\n"));
-#: config/tc-microblaze.c:2585
+#: config/tc-microblaze.c:2568
#, fuzzy, c-format
#| msgid " Score-specific assembler options:\n"
msgid " MicroBlaze specific assembler options:\n"
msgstr " Opciones de ensamblador específicas de Score:\n"
-#: config/tc-microblaze.c:2586
+#: config/tc-microblaze.c:2569
#, fuzzy
#| msgid "assemble for big-endian"
msgid "assemble for a big endian cpu"
msgstr "ensamblar para big-endian"
-#: config/tc-microblaze.c:2587
+#: config/tc-microblaze.c:2570
#, fuzzy
#| msgid "assemble for little-endian"
msgid "assemble for a little endian cpu"
msgstr "ensamblar para little-endian"
-#: config/tc-mips.c:2184
+#: config/tc-mips.c:2183
#, c-format
msgid "the %d-bit %s architecture does not support the `%s' extension"
msgstr "el %d-bit %s arquitectural no admite «%s» como extensión"
-#: config/tc-mips.c:2187
+#: config/tc-mips.c:2186
#, c-format
msgid "the `%s' extension requires %s%d revision %d or greater"
msgstr "la extensión «%s» requiere %s%d revisión %d o superior"
-#: config/tc-mips.c:2196
+#: config/tc-mips.c:2195
#, c-format
msgid "the `%s' extension was removed in %s%d revision %d"
msgstr "la extensión «%s» fue quitada en %s%d revisión %d"
-#: config/tc-mips.c:2205
+#: config/tc-mips.c:2204
#, c-format
msgid "the `%s' extension requires 64-bit FPRs"
-msgstr "la extensión `%s' requiere varios FPR de 64-bit"
+msgstr "la extensión `%s' requiere varios FPR de 64 bits"
-#: config/tc-mips.c:3057 config/tc-mips.c:16644
+#: config/tc-mips.c:3056 config/tc-mips.c:16661
#, c-format
msgid "unrecognized register name `%s'"
msgstr "nombre de registro no reconocido «%s»"
-#: config/tc-mips.c:3284
+#: config/tc-mips.c:3283
msgid "invalid register range"
msgstr "rango inválido registro"
-#: config/tc-mips.c:3312
+#: config/tc-mips.c:3311
msgid "vector element must be constant"
msgstr "elemento vector debe ser constante"
-#: config/tc-mips.c:3322
+#: config/tc-mips.c:3321
msgid "missing `]'"
-msgstr "ausente `]'"
+msgstr "falta `]'"
-#: config/tc-mips.c:3545
+#: config/tc-mips.c:3544
#, c-format
msgid "internal: bad mips opcode (mask error): %s %s"
msgstr "interno: código de operación mips incorrecto (error de máscara): %s %s"
-#: config/tc-mips.c:3572
+#: config/tc-mips.c:3571
#, c-format
msgid "internal: unknown operand type: %s %s"
msgstr "interno: tipo operando desconocido: %s %s"
-#: config/tc-mips.c:3605
+#: config/tc-mips.c:3604
#, c-format
msgid "internal: bad mips opcode (bits 0x%08lx doubly defined): %s %s"
msgstr "interno: código de operación mips incorrecto (bits 0x%08lx definidos doble ): %s %s"
-#: config/tc-mips.c:3613
+#: config/tc-mips.c:3612
#, c-format
msgid "internal: bad mips opcode (bits 0x%08lx undefined): %s %s"
msgstr "interno: código de operación mips incorrecto (varios bit 0x%08lx definidos): %s %s"
-#: config/tc-mips.c:3620
+#: config/tc-mips.c:3619
#, c-format
msgid "internal: bad mips opcode (bits 0x%08lx defined): %s %s"
msgstr "interno: código de operación mips incorrecto (varios bit 0x%08lx definidos): %s %s"
-#: config/tc-mips.c:3655
+#: config/tc-mips.c:3654
#, c-format
msgid "internal error: bad microMIPS opcode (incorrect length: %u): %s %s"
msgstr "error interno: código op microMIPS incorrecto (longitud eincorrecta: %u): %s %s"
-#: config/tc-mips.c:3663
+#: config/tc-mips.c:3662
#, c-format
msgid "internal error: bad microMIPS opcode (opcode/length mismatch): %s %s"
msgstr "error interno: equivocación de código operativo microMIPS (código de operación/longitud incoherente): %s %s"
-#: config/tc-mips.c:3688
+#: config/tc-mips.c:3687
msgid "-G may not be used in position-independent code"
msgstr "-G no se puede usar en código independiente de posición"
-#: config/tc-mips.c:3694
+#: config/tc-mips.c:3693
msgid "-G may not be used with abicalls"
msgstr "-G quizá no está emplado con llamadas abi"
-#: config/tc-mips.c:3799
+#: config/tc-mips.c:3798
msgid "broken assembler, no assembly attempted"
msgstr "ensamblador descompuesto, no trata ensamblarlo"
-#: config/tc-mips.c:3947
+#: config/tc-mips.c:3946
#, c-format
msgid ".gnu_attribute %d,%d is incompatible with `%s'"
msgstr ".gnu_attribute %d,%d es incompatible con «%s»"
-#: config/tc-mips.c:3954
+#: config/tc-mips.c:3953
#, c-format
msgid ".gnu_attribute %d,%d requires `%s'"
msgstr ".gnu_attribute %d,%d requiere «%s»"
-#: config/tc-mips.c:4015
+#: config/tc-mips.c:4014
#, c-format
msgid ".gnu_attribute %d,%d is no longer supported"
msgstr ".gnu_attribute %d,%d no es compatible más"
-#: config/tc-mips.c:4024
+#: config/tc-mips.c:4023
#, c-format
msgid ".gnu_attribute %d,%d is not a recognized floating-point ABI"
msgstr ".gnu_attribute %d,%d no es un ABI coma-flotante reconocida"
-#: config/tc-mips.c:4037
+#: config/tc-mips.c:4036
msgid "`gp=64' used with a 32-bit processor"
-msgstr "se utilizó `gp=64' con un procesador de 32-bit"
+msgstr "se utilizó `gp=64' con un procesador de 32 bits"
-#: config/tc-mips.c:4040
+#: config/tc-mips.c:4039
msgid "`gp=32' used with a 64-bit ABI"
-msgstr "se utilizó `gp=32' con un ABI de 64-bit"
+msgstr "se utilizó `gp=32' con un ABI de 64 bits"
-#: config/tc-mips.c:4043
+#: config/tc-mips.c:4042
msgid "`gp=64' used with a 32-bit ABI"
-msgstr "se utilizó `gp=64' con un ABI de 32-bit"
+msgstr "se utilizó `gp=64' con un ABI de 32 bits"
-#: config/tc-mips.c:4050
+#: config/tc-mips.c:4049
msgid "`fp=xx' used with a cpu lacking ldc1/sdc1 instructions"
msgstr ""
-#: config/tc-mips.c:4052
+#: config/tc-mips.c:4051
msgid "`fp=xx' cannot be used with `singlefloat'"
msgstr "`fp=xx' no puede ser utilizado con `singlefloat'"
-#: config/tc-mips.c:4056
+#: config/tc-mips.c:4055
msgid "`fp=64' used with a 32-bit fpu"
-msgstr "utilizó `fp=64' con un fpu de 32-bit"
+msgstr "utilizó `fp=64' con un fpu de 32 bits"
-#: config/tc-mips.c:4060
+#: config/tc-mips.c:4059
msgid "`fp=64' used with a 32-bit ABI"
-msgstr "utilizó `fp=64' con un ABI de 32-bit"
+msgstr "utilizó `fp=64' con un ABI de 32 bits"
-#: config/tc-mips.c:4065
+#: config/tc-mips.c:4064
msgid "`fp=32' used with a 64-bit ABI"
-msgstr "utilizó`fp=32' con un ABI de 64-bit"
+msgstr "utilizó`fp=32' con un ABI de 64 bits"
-#: config/tc-mips.c:4067
+#: config/tc-mips.c:4066
msgid "`fp=32' used with a MIPS R6 cpu"
msgstr "utilizó `fp=32' con un MIPS R6 cpu"
-#: config/tc-mips.c:4070
+#: config/tc-mips.c:4069
msgid "Unknown size of floating point registers"
msgstr "Tamaño desconocido de registros de coma flotante"
-#: config/tc-mips.c:4075
+#: config/tc-mips.c:4074
msgid "`nooddspreg` cannot be used with a 64-bit ABI"
-msgstr "`nooddspreg` no puede ser empleado con un ABI de 64-bit"
+msgstr "`nooddspreg` no puede ser empleado con un ABI de 64 bits"
-#: config/tc-mips.c:4078 config/tc-mips.c:4082
+#: config/tc-mips.c:4077 config/tc-mips.c:4081
#, c-format
msgid "`%s' cannot be used with `%s'"
msgstr "«%s» no puede ser utilizado con «%s»"
-#: config/tc-mips.c:4087
+#: config/tc-mips.c:4086
#, c-format
msgid "branch relaxation is not supported in `%s'"
-msgstr "relajación de ramificación no está admitida en «%s»"
+msgstr "relajación de bifurcación no está admitida en «%s»"
-#: config/tc-mips.c:4173 config/tc-mips.c:17527
+#: config/tc-mips.c:4172 config/tc-mips.c:17544
#, c-format
msgid "`%s' does not support legacy NaN"
msgstr "«%s» no apoyado con herencia NaN"
-#: config/tc-mips.c:4220
+#: config/tc-mips.c:4219
#, c-format
msgid "returned from mips_ip(%s) insn_opcode = 0x%x\n"
msgstr "devuelto de mips_ip(%s) insn_opcode = 0x%x\n"
-#: config/tc-mips.c:4924
+#: config/tc-mips.c:4931
#, c-format
msgid "operand %d out of range"
msgstr "operando %d fuera de rango"
-#: config/tc-mips.c:4932
+#: config/tc-mips.c:4939
#, c-format
msgid "operand %d must be constant"
msgstr "operando %d debe ser constante"
-#: config/tc-mips.c:4976 read.c:4594 read.c:5364 read.c:5490 write.c:250
+#: config/tc-mips.c:4983 read.c:4657 read.c:5426 read.c:5554 write.c:250
#: write.c:1058
msgid "register value used as expression"
msgstr "valor registrado utilizado como expresión"
-#: config/tc-mips.c:4989
+#: config/tc-mips.c:4996
#, c-format
msgid "operand %d must be an immediate expression"
msgstr "operando %d debe ser una expresión inmediata"
-#: config/tc-mips.c:5111 config/tc-mips.c:5113
+#: config/tc-mips.c:5118 config/tc-mips.c:5120
#, c-format
msgid "float register should be even, was %d"
msgstr "el registro flotante debería ser par, era %d"
-#: config/tc-mips.c:5126
+#: config/tc-mips.c:5133
#, c-format
msgid "condition code register should be even for %s, was %d"
msgstr "código condicional registrado debería ser par para %s, era %d"
-#: config/tc-mips.c:5131
+#: config/tc-mips.c:5138
#, c-format
msgid "condition code register should be 0 or 4 for %s, was %d"
msgstr "código condicional registrado debería ser 0 o 4 para %s, era %d"
-#: config/tc-mips.c:5452
+#: config/tc-mips.c:5459
msgid "invalid performance register"
msgstr "rendimiento registrado inválido"
-#: config/tc-mips.c:5548 config/tc-mips.c:6019
+#: config/tc-mips.c:5555 config/tc-mips.c:6026
msgid "the source register must not be $0"
msgstr "el registro origen debe no ser $0"
-#: config/tc-mips.c:5824
+#: config/tc-mips.c:5831
msgid "missing frame size"
-msgstr "ausente el tamaño del marco"
+msgstr "falta el tamaño del marco"
-#: config/tc-mips.c:5829
+#: config/tc-mips.c:5836
msgid "frame size specified twice"
msgstr "tamaño del marco especificado dos veces"
-#: config/tc-mips.c:5834
+#: config/tc-mips.c:5841
msgid "invalid frame size"
msgstr "tamaño de marco inválido"
-#: config/tc-mips.c:5874
+#: config/tc-mips.c:5881
#, c-format
msgid "operand %d must be an immediate"
msgstr "operando %d debe ser un inmediato"
-#: config/tc-mips.c:5889
+#: config/tc-mips.c:5896
msgid "invalid element selector"
msgstr "selector de elemento inválido"
-#: config/tc-mips.c:5902
+#: config/tc-mips.c:5909
#, c-format
msgid "operand %d must be scalar"
msgstr "operando %d debe ser escalar"
-#: config/tc-mips.c:6082
+#: config/tc-mips.c:6089
msgid "floating-point expression required"
msgstr "requerida expresión de coma flotante"
-#: config/tc-mips.c:6182
+#: config/tc-mips.c:6189
#, c-format
msgid "cannot use `%s' in this section"
msgstr "no puede utilizar `%s' dentro de esta sección"
-#: config/tc-mips.c:6329
+#: config/tc-mips.c:6336
msgid "used $at without \".set noat\""
msgstr "se utilizó $at sin \".set noat\""
-#: config/tc-mips.c:6331
+#: config/tc-mips.c:6338
#, c-format
msgid "used $%u with \".set at=$%u\""
msgstr "se utilizó $%u sin \".set at=$%u\""
-#: config/tc-mips.c:7510
+#: config/tc-mips.c:7517
#, c-format
msgid "wrong size instruction in a %u-bit branch delay slot"
msgstr "tamaño de instrucción incorrecto en una ranura de retardo ramificado a %u-bit"
-#: config/tc-mips.c:7530 config/tc-mips.c:7540 config/tc-mips.c:15944
+#: config/tc-mips.c:7537 config/tc-mips.c:7547 config/tc-mips.c:15962
#, c-format
msgid "jump to misaligned address (0x%lx)"
msgstr "omisión a una dirección mal alineada (0x%lx)"
-#: config/tc-mips.c:7555 config/tc-mips.c:7575 config/tc-mips.c:7592
-#: config/tc-mips.c:9142 config/tc-mips.c:15798 config/tc-mips.c:15805
-#: config/tc-mips.c:16198 config/tc-mips.c:19046
+#: config/tc-mips.c:7562 config/tc-mips.c:7582 config/tc-mips.c:7599
+#: config/tc-mips.c:9148 config/tc-mips.c:15816 config/tc-mips.c:15823
+#: config/tc-mips.c:16216 config/tc-mips.c:19063
#, c-format
msgid "branch to misaligned address (0x%lx)"
-msgstr "ramificación a una dirección mal alineada (0x%lx)"
+msgstr "bifurcación a una dirección mal alineada (0x%lx)"
-#: config/tc-mips.c:7561 config/tc-mips.c:7579 config/tc-mips.c:7596
-#: config/tc-mips.c:9145
+#: config/tc-mips.c:7568 config/tc-mips.c:7586 config/tc-mips.c:7603
+#: config/tc-mips.c:9151
#, c-format
msgid "branch address range overflow (0x%lx)"
-msgstr "ramificación de rango direccional desborda (0x%lx)"
+msgstr "bifurcación de rango direccional desborda (0x%lx)"
-#: config/tc-mips.c:7841
+#: config/tc-mips.c:7847
msgid "extended instruction in delay slot"
msgstr "la instrucción extendida en ranura de retardo"
-#: config/tc-mips.c:8305
+#: config/tc-mips.c:8311
msgid "source and destination must be different"
msgstr "origen y destino deben ser diferentes"
-#: config/tc-mips.c:8308
+#: config/tc-mips.c:8314
msgid "a destination register must be supplied"
msgstr "un registro de destino debe ser proporcionado"
-#: config/tc-mips.c:8313
+#: config/tc-mips.c:8319
msgid "the source register must not be $31"
msgstr "el registro origen debe no ser $31"
-#: config/tc-mips.c:8561 config/tc-mips.c:14536 config/tc-mips.c:19193
+#: config/tc-mips.c:8567 config/tc-mips.c:14535 config/tc-mips.c:19210
msgid "invalid unextended operand value"
msgstr "valor de operando no extendido inválido"
-#: config/tc-mips.c:8679
+#: config/tc-mips.c:8685
#, c-format
msgid "opcode not supported on this processor: %s (%s)"
msgstr "código de operación no admitido en este procesador: %s (%s)"
-#: config/tc-mips.c:8758
+#: config/tc-mips.c:8764
msgid "opcode not supported in the `insn32' mode"
msgstr "código de operación no admitido dentro del modo `insn32' no admitido"
-#: config/tc-mips.c:8761
+#: config/tc-mips.c:8767
#, c-format
msgid "unrecognized %d-bit version of microMIPS opcode"
msgstr "versión no reconocida %d-bit de código de operación microMIPS"
-#: config/tc-mips.c:8817
+#: config/tc-mips.c:8823
msgid "unrecognized unextended version of MIPS16 opcode"
msgstr "no reconocida versión del código de operación de MIPS16"
-#: config/tc-mips.c:8820
+#: config/tc-mips.c:8826
msgid "unrecognized extended version of MIPS16 opcode"
msgstr "versión extendida de código de operación MIPS16 no reconocida"
-#: config/tc-mips.c:8870 config/tc-mips.c:19064
+#: config/tc-mips.c:8876 config/tc-mips.c:19081
msgid "macro instruction expanded into multiple instructions in a branch delay slot"
-msgstr "la instrucción macro expandida en instrucciones múltiples en una ranura de retraso de ramificación"
+msgstr "la instrucción macro expandida en instrucciones múltiples en una ranura de retraso de bifurcación"
-#: config/tc-mips.c:8873 config/tc-mips.c:19072
+#: config/tc-mips.c:8879 config/tc-mips.c:19089
msgid "macro instruction expanded into multiple instructions"
msgstr "la instrucción macro expandida en instrucciones múltiples"
-#: config/tc-mips.c:8877
+#: config/tc-mips.c:8883
msgid "macro instruction expanded into a wrong size instruction in a 16-bit branch delay slot"
-msgstr "la instrucción macro expandida en un tamaño de instrucción incorrecto dentro de una ranura de retraso de ramificación de 16-bit"
+msgstr "la instrucción macro expandida en un tamaño de instrucción incorrecto dentro de una ranura de retraso de bifurcación de 16 bits"
-#: config/tc-mips.c:8879
+#: config/tc-mips.c:8885
msgid "macro instruction expanded into a wrong size instruction in a 32-bit branch delay slot"
-msgstr "la instrucción macro expandida en un tamaño de instrucción incorrecto dentro de una ranura de retraso de ramificación de 32-bit"
+msgstr "la instrucción macro expandida en un tamaño de instrucción incorrecto dentro de una ranura de retraso de bifurcación de 32 bits"
-#: config/tc-mips.c:9342
+#: config/tc-mips.c:9348
msgid "operand overflow"
msgstr "desbordamiento de operando"
-#: config/tc-mips.c:9361 config/tc-mips.c:9946 config/tc-mips.c:14017
+#: config/tc-mips.c:9367 config/tc-mips.c:9952 config/tc-mips.c:14023
msgid "macro used $at after \".set noat\""
msgstr "macro $at empleada tras \".set noat\""
-#: config/tc-mips.c:9506 config/tc-mips.c:12329 config/tc-mips.c:13010
+#: config/tc-mips.c:9512 config/tc-mips.c:12335 config/tc-mips.c:13016
#, fuzzy, c-format
#| msgid "number (0x%s) larger than 32 bits"
msgid "number (0x%<PRIx64>) larger than 32 bits"
msgstr "número (0x%s) más largo que 32 bits"
-#: config/tc-mips.c:9527
+#: config/tc-mips.c:9533
msgid "number larger than 64 bits"
msgstr "número más largo que 64 bits"
-#: config/tc-mips.c:9824 config/tc-mips.c:9852 config/tc-mips.c:9890
-#: config/tc-mips.c:9935 config/tc-mips.c:12573 config/tc-mips.c:12612
-#: config/tc-mips.c:12651 config/tc-mips.c:13107 config/tc-mips.c:13159
+#: config/tc-mips.c:9830 config/tc-mips.c:9858 config/tc-mips.c:9896
+#: config/tc-mips.c:9941 config/tc-mips.c:12579 config/tc-mips.c:12618
+#: config/tc-mips.c:12657 config/tc-mips.c:13113 config/tc-mips.c:13165
msgid "PIC code offset overflow (max 16 signed bits)"
msgstr "Desbordamiento del desplazamiento del código PIC (máx 16 bits con signo)"
-#: config/tc-mips.c:10478
+#: config/tc-mips.c:10484
#, c-format
msgid "BALIGN immediate not 0, 1, 2 or 3 (%lu)"
msgstr "BALING inmediato no es 0, 1, 2 o 3 (%lu)"
#. Result is always true.
-#: config/tc-mips.c:10574
+#: config/tc-mips.c:10580
#, c-format
msgid "branch %s is always true"
msgstr "rama %s siempre es verdadero"
-#: config/tc-mips.c:10802 config/tc-mips.c:10910
+#: config/tc-mips.c:10808 config/tc-mips.c:10916
msgid "divide by zero"
msgstr "división entre cero"
-#: config/tc-mips.c:11000
+#: config/tc-mips.c:11006
msgid "dla used to load 32-bit register; recommend using la instead"
-msgstr "dla utilizado para cargar registros de 32-bit; recomienda usar la en su lugar"
+msgstr "dla utilizado para cargar registros de 32 bits; recomienda usar la en su lugar"
-#: config/tc-mips.c:11004
+#: config/tc-mips.c:11010
msgid "la used to load 64-bit address; recommend using dla instead"
-msgstr "la utilizada para cargar direcciones de 64-bit; recomienda usar en lugar dla"
+msgstr "la utilizada para cargar direcciones de 64 bits; recomienda usar en lugar dla"
-#: config/tc-mips.c:11113 config/tc-riscv.c:2364
+#: config/tc-mips.c:11119 config/tc-riscv.c:2375
msgid "offset too large"
msgstr "desplazamiento demasiado grande"
-#: config/tc-mips.c:11287 config/tc-mips.c:11565
+#: config/tc-mips.c:11293 config/tc-mips.c:11571
msgid "PIC code offset overflow (max 32 signed bits)"
msgstr "Desbordamiento del desplazamiento del código PIC (máx 32 bits con signo)"
-#: config/tc-mips.c:11635 config/tc-mips.c:11711
+#: config/tc-mips.c:11641 config/tc-mips.c:11717
#, c-format
msgid "opcode not supported in the `insn32' mode `%s'"
msgstr "código de operación no admitido dentro del modo `insn32' «%s»"
-#: config/tc-mips.c:11663
+#: config/tc-mips.c:11669
msgid "MIPS PIC call to register other than $25"
msgstr "Llamada PIC MIPS a un registro diferente de $25"
-#: config/tc-mips.c:11679 config/tc-mips.c:11690 config/tc-mips.c:11823
-#: config/tc-mips.c:11834
+#: config/tc-mips.c:11685 config/tc-mips.c:11696 config/tc-mips.c:11829
+#: config/tc-mips.c:11840
msgid "no .cprestore pseudo-op used in PIC code"
msgstr "no se utilizó pseudo-operador .cprestore en el código PIC"
-#: config/tc-mips.c:11684 config/tc-mips.c:11828
+#: config/tc-mips.c:11690 config/tc-mips.c:11834
msgid "no .frame pseudo-op used in PIC code"
msgstr "no se utilizó pseudo-operador .frame en el código PIC"
-#: config/tc-mips.c:11849
+#: config/tc-mips.c:11855
msgid "non-PIC jump used in PIC library"
msgstr "omisión no-PIC utilizada en biblioteca PIC"
-#: config/tc-mips.c:12830
+#: config/tc-mips.c:12836
#, c-format
msgid "Unable to generate `%s' compliant code without mthc1"
msgstr ""
-#: config/tc-mips.c:13571
+#: config/tc-mips.c:13577
#, c-format
msgid "instruction %s: result is always false"
msgstr "la instrucción %s: resultado es siempre falso"
-#: config/tc-mips.c:13724
+#: config/tc-mips.c:13730
#, c-format
msgid "instruction %s: result is always true"
msgstr "la instrucción %s: resultado es siempre verdadero"
#. FIXME: Check if this is one of the itbl macros, since they
#. are added dynamically.
-#: config/tc-mips.c:14013
+#: config/tc-mips.c:14019
#, c-format
msgid "macro %s not implemented yet"
msgstr "macro %s aún no implementada"
-#: config/tc-mips.c:14546
+#: config/tc-mips.c:14545
msgid "extended operand requested but not required"
msgstr "se solicitó un operando extendido pero se necesita"
-#: config/tc-mips.c:14555
+#: config/tc-mips.c:14554
msgid "operand value out of range for instruction"
msgstr "el valor de operando está fuera de rango para la instrucción"
-#: config/tc-mips.c:14654
+#: config/tc-mips.c:14655
#, c-format
msgid "relocation %s isn't supported by the current ABI"
msgstr "la ABI actual no admite la reubicación %s"
-#: config/tc-mips.c:14711
+#: config/tc-mips.c:14712
msgid "unclosed '('"
msgstr "no cerrado '('"
-#: config/tc-mips.c:14773
+#: config/tc-mips.c:14774
#, c-format
msgid "a different %s was already specified, is now %s"
msgstr "un %s diferente fue ya especificado, ahora es %s"
-#: config/tc-mips.c:14940
+#: config/tc-mips.c:14941
msgid "-mmicromips cannot be used with -mips16"
msgstr "-mmicromips no se puede usar con -mips16"
-#: config/tc-mips.c:14955
+#: config/tc-mips.c:14956
msgid "-mips16 cannot be used with -micromips"
msgstr "-mips16 no se puede usar con -micromips"
-#: config/tc-mips.c:15124 config/tc-mips.c:15182
+#: config/tc-mips.c:15125 config/tc-mips.c:15183
msgid "no compiled in support for 64 bit object file format"
msgstr "no compiló el soporte para el formato de fichero objeto de 64 bit"
-#: config/tc-mips.c:15189
+#: config/tc-mips.c:15190
#, c-format
msgid "invalid abi -mabi=%s"
msgstr "interruptor abi -mabi=%s inválido"
-#: config/tc-mips.c:15229
+#: config/tc-mips.c:15230
#, c-format
msgid "invalid NaN setting -mnan=%s"
msgstr "invalida opciones NaN -mnan=%s"
-#: config/tc-mips.c:15263
+#: config/tc-mips.c:15264
msgid "-G not supported in this configuration"
msgstr "-G no se admite en esta configuración"
-#: config/tc-mips.c:15289
+#: config/tc-mips.c:15290
#, c-format
msgid "-%s conflicts with the other architecture options, which imply -%s"
msgstr "-%s tiene conflictos con las otras casillas de arquitectura, las cuales implican -%s"
-#: config/tc-mips.c:15302
+#: config/tc-mips.c:15303
#, c-format
msgid "gas doesn't understand your configure target %s"
msgstr ""
-#: config/tc-mips.c:15307
+#: config/tc-mips.c:15308
#, c-format
msgid "-march=%s is not compatible with the selected ABI"
msgstr "-march=%s no es compatible con la ABI seleccionada"
-#: config/tc-mips.c:15802 config/tc-mips.c:16192 config/tc-mips.c:19043
+#: config/tc-mips.c:15820 config/tc-mips.c:16210 config/tc-mips.c:19060
msgid "branch to a symbol in another ISA mode"
-msgstr "ramificación a un símbolo dentro de otro modo ISA"
+msgstr "bifurcación a un símbolo dentro de otro modo ISA"
-#: config/tc-mips.c:15809 config/tc-mips.c:15949 config/tc-mips.c:16202
+#: config/tc-mips.c:15827 config/tc-mips.c:15967 config/tc-mips.c:16220
#, c-format
msgid "cannot encode misaligned addend in the relocatable field (0x%lx)"
msgstr ""
-#: config/tc-mips.c:15846
+#: config/tc-mips.c:15864
msgid "PC-relative reference to a different section"
msgstr "Referencia relativa al PC para una sección diferente"
-#: config/tc-mips.c:15918 config/tc-riscv.c:4627
+#: config/tc-mips.c:15936 config/tc-riscv.c:4725
msgid "TLS relocation against a constant"
msgstr "TLS reubicado contra una constante"
-#: config/tc-mips.c:15938
+#: config/tc-mips.c:15956
msgid "jump to a symbol in another ISA mode"
msgstr "omite a un símbolo dentro de otro modo ISA"
-#: config/tc-mips.c:15941
+#: config/tc-mips.c:15959
msgid "JALX to a symbol in the same ISA mode"
msgstr "JALX para un símbolo dentro del mismo modo ISA"
-#: config/tc-mips.c:16024
+#: config/tc-mips.c:16042
msgid "unsupported constant in relocation"
msgstr "constante no admitida en reubicación"
-#: config/tc-mips.c:16097
+#: config/tc-mips.c:16115
#, c-format
msgid "PC-relative access using misaligned symbol (%lx)"
msgstr ""
-#: config/tc-mips.c:16101
+#: config/tc-mips.c:16119
#, c-format
msgid "PC-relative access using misaligned offset (%lx)"
msgstr ""
-#: config/tc-mips.c:16114 config/tc-mips.c:16133
+#: config/tc-mips.c:16132 config/tc-mips.c:16151
msgid "PC-relative access out of range"
msgstr "PC-relativo de acceso fuera de rango"
-#: config/tc-mips.c:16120
+#: config/tc-mips.c:16138
#, c-format
msgid "PC-relative access to misaligned address (%lx)"
msgstr "Acceso PC-relativo para direcciones mal alineada (%lx)"
-#: config/tc-mips.c:16289
+#: config/tc-mips.c:16307
#, c-format
msgid "alignment too large, %d assumed"
msgstr "alineación demasiado grande, %d asumido"
-#: config/tc-mips.c:16292
+#: config/tc-mips.c:16310
msgid "alignment negative, 0 assumed"
msgstr "alineación negativa, 0 asimido"
-#: config/tc-mips.c:16524
+#: config/tc-mips.c:16541
#, c-format
msgid "%s: no such section"
msgstr "%s: no existe tal sección"
-#: config/tc-mips.c:16580
+#: config/tc-mips.c:16597
#, c-format
msgid ".option pic%d not supported"
msgstr "No se admite .option pic%d"
-#: config/tc-mips.c:16582
+#: config/tc-mips.c:16599
#, c-format
msgid ".option pic%d not supported in VxWorks PIC mode"
msgstr ".option pic%d no admitido dentro de modo PIC VxWorks"
-#: config/tc-mips.c:16594 config/tc-mips.c:16934
+#: config/tc-mips.c:16611 config/tc-mips.c:16951
msgid "-G may not be used with SVR4 PIC code"
msgstr "-G no se puede utilizar con código PIC de SVR4"
-#: config/tc-mips.c:16600
+#: config/tc-mips.c:16617
#, c-format
msgid "unrecognized option \"%s\""
msgstr "opción no reconocida «%s»"
-#: config/tc-mips.c:16706
+#: config/tc-mips.c:16723
#, c-format
msgid "unknown architecture %s"
msgstr "desconoce arquitectura %s"
-#: config/tc-mips.c:16721 config/tc-mips.c:16885
+#: config/tc-mips.c:16738 config/tc-mips.c:16902
#, c-format
msgid "unknown ISA level %s"
msgstr "desconoce nivel %s ISA"
-#: config/tc-mips.c:16731
+#: config/tc-mips.c:16748
#, c-format
msgid "unknown ISA or architecture %s"
msgstr "desconoce ISA o arquitectura %s"
-#: config/tc-mips.c:16790
+#: config/tc-mips.c:16807
msgid "`noreorder' must be set before `nomacro'"
msgstr "se debe establecer `noreorder' antes de `nomacro'"
-#: config/tc-mips.c:16820
+#: config/tc-mips.c:16837
msgid ".set pop with no .set push"
msgstr ".set pop sin .set push"
-#: config/tc-mips.c:16839
+#: config/tc-mips.c:16856
#, c-format
msgid "tried to set unrecognized symbol: %s\n"
msgstr "intentaba establecer un símbolo no reconocido: %s\n"
-#: config/tc-mips.c:16912
+#: config/tc-mips.c:16929
#, c-format
msgid ".module used with unrecognized symbol: %s\n"
msgstr ".module utilizado con símbolo no reconocido: %s\n"
-#: config/tc-mips.c:16918
+#: config/tc-mips.c:16935
msgid ".module is not permitted after generating code"
msgstr ".module no está permitido tras generar código"
-#: config/tc-mips.c:16978 config/tc-mips.c:17057 config/tc-mips.c:17161
-#: config/tc-mips.c:17191 config/tc-mips.c:17240
+#: config/tc-mips.c:16995 config/tc-mips.c:17074 config/tc-mips.c:17178
+#: config/tc-mips.c:17208 config/tc-mips.c:17257
#, c-format
msgid "%s not supported in MIPS16 mode"
msgstr "%s no admitido dentro del modo MIPS16"
-#: config/tc-mips.c:16985
+#: config/tc-mips.c:17002
msgid ".cpload not in noreorder section"
msgstr ".cpload no está en la sección noreorder"
-#: config/tc-mips.c:17066 config/tc-mips.c:17085
+#: config/tc-mips.c:17083 config/tc-mips.c:17102
msgid "missing argument separator ',' for .cpsetup"
-msgstr "ausente el separador de argumentos ',' para .cpsetup"
+msgstr "falta el separador de argumentos ',' para .cpsetup"
-#: config/tc-mips.c:17283 config/tc-riscv.c:5027
+#: config/tc-mips.c:17300 config/tc-riscv.c:5158
#, c-format
msgid "unsupported use of %s"
msgstr "no admitió utilización de %s"
-#: config/tc-mips.c:17374
+#: config/tc-mips.c:17391
msgid "unsupported use of .gpword"
msgstr "no admite utilización de .gpword"
-#: config/tc-mips.c:17412
+#: config/tc-mips.c:17429
msgid "unsupported use of .gpdword"
msgstr "no admite la utilización de .gpdword"
-#: config/tc-mips.c:17444
+#: config/tc-mips.c:17461
msgid "unsupported use of .ehword"
msgstr "no admitió utilización de .ehword"
-#: config/tc-mips.c:17531
+#: config/tc-mips.c:17548
msgid "bad .nan directive"
msgstr "directiva .nan incorrecta"
-#: config/tc-mips.c:17580
+#: config/tc-mips.c:17597
#, c-format
msgid "ignoring attempt to redefine symbol %s"
msgstr "se ignora el intento de redefinir el símbolo %s"
-#: config/tc-mips.c:17595 ecoff.c:3358
+#: config/tc-mips.c:17612 ecoff.c:3328
msgid "bad .weakext directive"
msgstr "directiva .weakext incorrecta"
-#: config/tc-mips.c:18568 config/tc-mips.c:18845
+#: config/tc-mips.c:18585 config/tc-mips.c:18862
msgid "relaxed out-of-range branch into a jump"
-msgstr "ramificación relajada fuera de rango dentro de omisión"
+msgstr "bifurcación relajada fuera de rango dentro de omisión"
-#: config/tc-mips.c:19068
+#: config/tc-mips.c:19085
msgid "extended instruction in a branch delay slot"
msgstr "la instrucción extendida en una rama de ranura de retardo"
-#: config/tc-mips.c:19182 config/tc-xtensa.c:1690 config/tc-xtensa.c:1968
+#: config/tc-mips.c:19199 config/tc-xtensa.c:1690 config/tc-xtensa.c:1969
msgid "unsupported relocation"
msgstr "no se admite la reubicación"
-#: config/tc-mips.c:19690 config/tc-score.c:5624
+#: config/tc-mips.c:19707 config/tc-score.c:5623
msgid "expected simple number"
msgstr "se esperaba un número simple"
-#: config/tc-mips.c:19718 config/tc-score.c:5651
+#: config/tc-mips.c:19735 config/tc-score.c:5650
msgid "invalid number"
msgstr "número inválido"
-#: config/tc-mips.c:19795 ecoff.c:2987
+#: config/tc-mips.c:19812 ecoff.c:2959
msgid ".end directive without a preceding .ent directive"
msgstr "directiva .end sin una directiva .ent precedente"
-#: config/tc-mips.c:19804
+#: config/tc-mips.c:19821
msgid ".end symbol does not match .ent symbol"
msgstr ".end simbólico no coincide con el símbolo .ent"
-#: config/tc-mips.c:19881
+#: config/tc-mips.c:19898
msgid ".ent or .aent not in text section"
msgstr ".ent o .aent no interno sección textual"
-#: config/tc-mips.c:19884 config/tc-score.c:5683
+#: config/tc-mips.c:19901 config/tc-score.c:5682
msgid "missing .end"
msgstr ".end ausente"
-#: config/tc-mips.c:19967
+#: config/tc-mips.c:19984
msgid ".mask/.fmask outside of .ent"
msgstr ".mask/.fmask fuera de .ent"
-#: config/tc-mips.c:19974
+#: config/tc-mips.c:19991
msgid "bad .mask/.fmask directive"
msgstr "directiva .mask/.fmask incorrecta"
-#: config/tc-mips.c:20278
+#: config/tc-mips.c:20295
#, c-format
msgid "bad value (%s) for %s"
msgstr "valor (%s) incorrecto para %s"
-#: config/tc-mips.c:20342
+#: config/tc-mips.c:20359
#, c-format
msgid ""
"MIPS options:\n"
@@ -14009,11 +13830,11 @@ msgstr ""
"Opciones MIPS:\n"
"-EB\t\t\tgenera salida big endian\n"
"-EL\t\t\tgenera salida little endian\n"
-"-g, -g2\t\t\tno borra NOPs innecesarios o intercambia ramificaciones\n"
+"-g, -g2\t\t\tno borra NOPs innecesarios o intercambia bifurcaciones\n"
"-G NUM\t\t\tpermite la referencia a objetos hasta NUM bytes\n"
"\t\t\timplícitamente con el registro gp [por defecto 8]\n"
-#: config/tc-mips.c:20349
+#: config/tc-mips.c:20366
#, c-format
msgid ""
"-mips1\t\t\tgenerate MIPS ISA I instructions\n"
@@ -14051,7 +13872,7 @@ msgstr ""
"\n"
"-march=CPU/-mtune=CPU\tgenera código/calendarización para el CPU, donde CPU es uno de:\n"
-#: config/tc-mips.c:20374
+#: config/tc-mips.c:20391
#, c-format
msgid ""
"-mCPU\t\t\tequivalent to -march=CPU -mtune=CPU. Deprecated.\n"
@@ -14062,7 +13883,7 @@ msgstr ""
"-no-mCPU\t\tno genera código específico para el CPU.\n"
"\t\t\tPara -mCPU y -no-mCPU, CPU debe ser uno de:\n"
-#: config/tc-mips.c:20387
+#: config/tc-mips.c:20404
#, c-format
msgid ""
"-mips16\t\t\tgenerate mips16 instructions\n"
@@ -14071,7 +13892,7 @@ msgstr ""
"-mips16\t\t\tgenera instrucciones mips16\n"
"-no-mips16\t\tno genera instrucciones mips16\n"
-#: config/tc-mips.c:20390
+#: config/tc-mips.c:20407
#, fuzzy, c-format
#| msgid ""
#| "-mips16\t\t\tgenerate mips16 instructions\n"
@@ -14083,7 +13904,7 @@ msgstr ""
"-mips16\t\t\tgenera instrucciones mips16\n"
"-no-mips16\t\tno genera instrucciones mips16\n"
-#: config/tc-mips.c:20393
+#: config/tc-mips.c:20410
#, c-format
msgid ""
"-mmicromips\t\tgenerate microMIPS instructions\n"
@@ -14092,7 +13913,7 @@ msgstr ""
"-mmicromips\t\tgenera instrucciones microMIPS\n"
"-mno-micromips\t\tno genera instrucciones microMIPS\n"
-#: config/tc-mips.c:20396
+#: config/tc-mips.c:20413
#, c-format
msgid ""
"-msmartmips\t\tgenerate smartmips instructions\n"
@@ -14101,7 +13922,7 @@ msgstr ""
"-msmartmips\t\tgenera instrucciones smartmips\n"
"-no-smartmips\t\tno genera instrucciones smartmips\n"
-#: config/tc-mips.c:20399
+#: config/tc-mips.c:20416
#, c-format
msgid ""
"-mdsp\t\t\tgenerate DSP instructions\n"
@@ -14110,7 +13931,7 @@ msgstr ""
"-mdsp\t\t\tgenera instrucciones DSP\n"
"-mno-dsp\t\tno genera instrucciones DSP\n"
-#: config/tc-mips.c:20402
+#: config/tc-mips.c:20419
#, c-format
msgid ""
"-mdspr2\t\t\tgenerate DSP R2 instructions\n"
@@ -14119,7 +13940,7 @@ msgstr ""
"-mdspr2\t\t\tgenera instrucciones DSP R2\n"
"-mno-dspr2\t\tno genera instrucciones DSP R2\n"
-#: config/tc-mips.c:20405
+#: config/tc-mips.c:20422
#, c-format
msgid ""
"-mdspr3\t\t\tgenerate DSP R3 instructions\n"
@@ -14128,7 +13949,7 @@ msgstr ""
"-mdspr3\t\t\t genera instrucciones DSP R3\n"
"-mno-dspr3\t\t no genera instrucciones DSP R3\n"
-#: config/tc-mips.c:20408
+#: config/tc-mips.c:20425
#, c-format
msgid ""
"-mmt\t\t\tgenerate MT instructions\n"
@@ -14137,7 +13958,7 @@ msgstr ""
"-mmt\t\t\tgenera instrucciones MT\n"
"-mno-mt\t\tno genera instrucciones MT\n"
-#: config/tc-mips.c:20411
+#: config/tc-mips.c:20428
#, c-format
msgid ""
"-mmcu\t\t\tgenerate MCU instructions\n"
@@ -14146,7 +13967,7 @@ msgstr ""
"-mmcu\t\t\tgenera instrucciones MCU\n"
"-mno-mcu\t\tno genera instrucciones MCU\n"
-#: config/tc-mips.c:20414
+#: config/tc-mips.c:20431
#, c-format
msgid ""
"-mmsa\t\t\tgenerate MSA instructions\n"
@@ -14155,7 +13976,7 @@ msgstr ""
"-mmsa\t\t\tgenera instrucciones MSA\n"
"-mno-msa\t\tno genera instrucciones MSA\n"
-#: config/tc-mips.c:20417
+#: config/tc-mips.c:20434
#, c-format
msgid ""
"-mxpa\t\t\tgenerate eXtended Physical Address (XPA) instructions\n"
@@ -14164,7 +13985,7 @@ msgstr ""
"-mdsp\t\t\tgenera eXtended Physical Address instrucciones (XPA)\n"
"-mno-xpa\t\tno genera instrucciones eXtended Physical Address\n"
-#: config/tc-mips.c:20420
+#: config/tc-mips.c:20437
#, c-format
msgid ""
"-mvirt\t\t\tgenerate Virtualization instructions\n"
@@ -14173,7 +13994,7 @@ msgstr ""
"-mvirt\t\t\tgenera instrucciones Virtualization\n"
"-mno-virt\t\tno genera instrucciones Virtualization\n"
-#: config/tc-mips.c:20423
+#: config/tc-mips.c:20440
#, fuzzy, c-format
#| msgid ""
#| "-mmcu\t\t\tgenerate MCU instructions\n"
@@ -14185,7 +14006,7 @@ msgstr ""
"-mmcu\t\t\tgenera instrucciones MCU\n"
"-mno-mcu\t\tno genera instrucciones MCU\n"
-#: config/tc-mips.c:20426
+#: config/tc-mips.c:20443
#, fuzzy, c-format
#| msgid ""
#| "-mvirt\t\t\tgenerate Virtualization instructions\n"
@@ -14197,7 +14018,7 @@ msgstr ""
"-mvirt\t\t\tgenera instrucciones Virtualization\n"
"-mno-virt\t\tno genera instrucciones Virtualization\n"
-#: config/tc-mips.c:20429
+#: config/tc-mips.c:20446
#, fuzzy, c-format
#| msgid ""
#| "-msmartmips\t\tgenerate smartmips instructions\n"
@@ -14209,7 +14030,7 @@ msgstr ""
"-msmartmips\t\tgenera instrucciones smartmips\n"
"-no-smartmips\t\tno genera instrucciones smartmips\n"
-#: config/tc-mips.c:20432
+#: config/tc-mips.c:20449
#, fuzzy, c-format
#| msgid ""
#| "-mxpa\t\t\tgenerate eXtended Physical Address (XPA) instructions\n"
@@ -14221,7 +14042,7 @@ msgstr ""
"-mdsp\t\t\tgenera eXtended Physical Address instrucciones (XPA)\n"
"-mno-xpa\t\tno genera instrucciones eXtended Physical Address\n"
-#: config/tc-mips.c:20435
+#: config/tc-mips.c:20452
#, fuzzy, c-format
#| msgid ""
#| "-mmt\t\t\tgenerate MT instructions\n"
@@ -14233,7 +14054,7 @@ msgstr ""
"-mmt\t\t\tgenera instrucciones MT\n"
"-mno-mt\t\tno genera instrucciones MT\n"
-#: config/tc-mips.c:20438
+#: config/tc-mips.c:20455
#, fuzzy, c-format
#| msgid ""
#| "-mdspr2\t\t\tgenerate DSP R2 instructions\n"
@@ -14245,7 +14066,7 @@ msgstr ""
"-mdspr2\t\t\tgenera instrucciones DSP R2\n"
"-mno-dspr2\t\tno genera instrucciones DSP R2\n"
-#: config/tc-mips.c:20441
+#: config/tc-mips.c:20458
#, c-format
msgid ""
"-minsn32\t\tonly generate 32-bit microMIPS instructions\n"
@@ -14254,21 +14075,21 @@ msgstr ""
"-minsn32\t\t solo genera instrucciones microMIPS de 32-bit\n"
"-mno-insn32\t\t genera todas las instrucciones microMIPS\n"
-#: config/tc-mips.c:20445
+#: config/tc-mips.c:20462
#, c-format
msgid ""
"-mfix-loongson3-llsc\twork around Loongson3 LL/SC errata, default\n"
"-mno-fix-loongson3-llsc\tdisable work around Loongson3 LL/SC errata\n"
msgstr ""
-#: config/tc-mips.c:20449
+#: config/tc-mips.c:20466
#, c-format
msgid ""
"-mfix-loongson3-llsc\twork around Loongson3 LL/SC errata\n"
"-mno-fix-loongson3-llsc\tdisable work around Loongson3 LL/SC errata, default\n"
msgstr ""
-#: config/tc-mips.c:20453
+#: config/tc-mips.c:20470
#, fuzzy, c-format
#| msgid ""
#| "-mfix-loongson2f-jump\twork around Loongson2F JUMP instructions\n"
@@ -14312,12 +14133,12 @@ msgstr ""
"-mgp32\t\t\tusa GPRs de 32-bit, sin importar el ISA escogido\n"
"-mfp32\t\t\tusa FPRS de 32-bit, sin importar el ISA escogido\n"
"-msym32\t\t\tasume que todos los símbolos tiene valores de 32-bit\n"
-"-O0\t\t\telimina NOPs innecesarios, no intercambia ramificaciones\n"
-"-O\t\t\telimina NOPs innecesarios e intercambia ramificaciones\n"
+"-O0\t\t\telimina NOPs innecesarios, no intercambia bifurcaciones\n"
+"-O\t\t\telimina NOPs innecesarios e intercambia bifurcaciones\n"
"--trap, --no-break\texcepción trap en div por 0 y desbordamiento de mult\n"
"--break, --no-trap\texcepción break en div por 0 y desbordamiento de mult\n"
-#: config/tc-mips.c:20471
+#: config/tc-mips.c:20488
#, c-format
msgid ""
"-mhard-float\t\tallow floating-point instructions\n"
@@ -14335,12 +14156,12 @@ msgstr ""
"-msingle-float\t\t solo permite operaciones de coma flotante de 32 bits\n"
"-mdouble-float\t\t permite operaciones de coma flotante de 32 y 64 bits\n"
"--[no-]construct-floats [des]activa valores de coma flotante a construir\n"
-"--[no-]relax-branch\t [no]permite ramificación fuera del rango para ser relajadas\n"
+"--[no-]relax-branch\t [no]permite bifurcación fuera del rango para ser relajadas\n"
"-mignore-branch-isa\t acepta ramas inválidas requeriendo un modo ISA\n"
"-mno-ignore-branch-isa\t rechaza ramas inválidas requiriendo un intercambio de modo ISA\n"
"-mnan=ENCODING\t\t selecciona un convenio de codificación IEEE 754 NaN, incluso de:\n"
-#: config/tc-mips.c:20489
+#: config/tc-mips.c:20506
#, c-format
msgid ""
"-KPIC, -call_shared\tgenerate SVR4 position independent code\n"
@@ -14363,29 +14184,29 @@ msgstr ""
" código que no es compartido\n"
"-mabi=ABI\t\tcrea un fichero objeto que cumple con el ABI para:\n"
-#: config/tc-mips.c:20510
+#: config/tc-mips.c:20527
#, fuzzy, c-format
#| msgid "--fdpic\t\t\tgenerate an FDPIC object file\n"
msgid "-32\t\t\tcreate o32 ABI object file%s\n"
msgstr "--fdpic\t\t\tgenera un fichero objeto FDPIC\n"
-#: config/tc-mips.c:20512 config/tc-mips.c:20515 config/tc-mips.c:20518
+#: config/tc-mips.c:20529 config/tc-mips.c:20532 config/tc-mips.c:20535
msgid " (default)"
msgstr ""
-#: config/tc-mips.c:20513
+#: config/tc-mips.c:20530
#, fuzzy, c-format
#| msgid "--fdpic\t\t\tgenerate an FDPIC object file\n"
msgid "-n32\t\t\tcreate n32 ABI object file%s\n"
msgstr "--fdpic\t\t\tgenera un fichero objeto FDPIC\n"
-#: config/tc-mips.c:20516
+#: config/tc-mips.c:20533
#, fuzzy, c-format
#| msgid "--fdpic\t\t\tgenerate an FDPIC object file\n"
msgid "-64\t\t\tcreate 64 ABI object file%s\n"
msgstr "--fdpic\t\t\tgenera un fichero objeto FDPIC\n"
-#: config/tc-mips.c:20598
+#: config/tc-mips.c:20615
msgid "missing .end at end of assembly"
msgstr ".end ausente al final del ensamblado"
@@ -14433,7 +14254,7 @@ msgid ""
" -no-expand Do not expand GETA, branches, PUSHJ or JUMP\n"
" into multiple instructions.\n"
msgstr ""
-" -no-expand No expande GETA, ramificaciones, PUSHJ ó JUMP\n"
+" -no-expand No expande GETA, bifurcaciones, PUSHJ ó JUMP\n"
" a instrucciones múltiples.\n"
#: config/tc-mmix.c:710
@@ -14455,7 +14276,7 @@ msgid ""
" -linker-allocated-gregs."
msgstr ""
" -x No avisa cuando no se sabe que un operando para\n"
-" GETA, una ramificación, PUSHJ ó JUMP esté dentro\n"
+" GETA, una bifurcación, PUSHJ ó JUMP esté dentro\n"
" del rango. El enlazador atrapará cualquier error.\n"
" Implica -linker-allocated-gregs."
@@ -14468,8 +14289,8 @@ msgstr "código de operación desconocido: «%s»"
msgid "specified location wasn't TETRA-aligned"
msgstr "la ubicación especificada no estaba TETRA alineada"
-#: config/tc-mmix.c:965 config/tc-mmix.c:980 config/tc-mmix.c:4215
-#: config/tc-mmix.c:4231
+#: config/tc-mmix.c:965 config/tc-mmix.c:980 config/tc-mmix.c:4201
+#: config/tc-mmix.c:4217
msgid "unaligned data at an absolute location is not supported"
msgstr "no se admiten los datos sin alinear en una ubicación absoluta"
@@ -14532,107 +14353,107 @@ msgstr "operando está fuera de rango, se expande la instrucción"
#. The BFD_RELOC_MMIX_LOCAL-specific message is supposed to be
#. user-friendly, though a little bit non-substantial.
-#: config/tc-mmix.c:2651
+#: config/tc-mmix.c:2650
msgid "directive LOCAL must be placed in code or data"
msgstr "la directiva LOCAL debe estar colocada en el código o en los datos"
-#: config/tc-mmix.c:2652
+#: config/tc-mmix.c:2651
msgid "internal confusion: relocation in a section without contents"
msgstr "confusión interna: reubicación en una sección sin contenido"
-#: config/tc-mmix.c:2766
+#: config/tc-mmix.c:2765
msgid "internal: BFD_RELOC_MMIX_BASE_PLUS_OFFSET not resolved to section"
msgstr "interno: BFD_RELOC_MMIX_BASE_PLUS_OFFSET no resuelve a la sección"
-#: config/tc-mmix.c:2814
+#: config/tc-mmix.c:2813
msgid "no suitable GREG definition for operands"
msgstr "no hay una definición GREG adecuada para los operandos"
-#: config/tc-mmix.c:2873
+#: config/tc-mmix.c:2872
msgid "operands were not reducible at assembly-time"
msgstr "los operandos no son reducibles en el momento del ensamblado"
-#: config/tc-mmix.c:2899
+#: config/tc-mmix.c:2898
#, c-format
msgid "cannot generate relocation type for symbol %s, code %s"
-msgstr "incapaz de generar el tipo reubicado para el símbolo %s, código %s"
+msgstr "incapaz de generar el tipo de reubicación para el símbolo %s, código %s"
-#: config/tc-mmix.c:2919
+#: config/tc-mmix.c:2918
#, c-format
msgid "internal: unhandled label %s"
msgstr "interno: etiqueta %s sin manipular"
-#: config/tc-mmix.c:2948
+#: config/tc-mmix.c:2951
msgid "[0-9]H labels may not appear alone on a line"
msgstr "las etiquetas [0-9]H no pueden aparecer solas en una línea"
-#: config/tc-mmix.c:2956
+#: config/tc-mmix.c:2959
msgid "[0-9]H labels do not mix with dot-pseudos"
msgstr "las etiquetas [0-9]H no se mezclan con pseudo-puntos"
-#: config/tc-mmix.c:3044
+#: config/tc-mmix.c:3045
msgid "invalid characters in input"
msgstr "caracteres inválidos en la entrada"
-#: config/tc-mmix.c:3150
+#: config/tc-mmix.c:3139
msgid "empty label field for IS"
msgstr "campo de etiqueta vacío para IS"
-#: config/tc-mmix.c:3476
+#: config/tc-mmix.c:3464
#, c-format
msgid "internal: unexpected relax type %d:%d"
msgstr "interno: tipo de relajación inesperado %d:%d"
-#: config/tc-mmix.c:3500
+#: config/tc-mmix.c:3488
msgid "BSPEC without ESPEC."
msgstr "BSPEC sin un ESPEC."
-#: config/tc-mmix.c:3565
+#: config/tc-mmix.c:3553
msgid "LOC to section unknown or indeterminable at first pass"
msgstr ""
-#: config/tc-mmix.c:3751
+#: config/tc-mmix.c:3737
msgid "internal: GREG expression not resolved to section"
msgstr "interno: la expresión GREG no resuelve a la sección"
-#: config/tc-mmix.c:3800
+#: config/tc-mmix.c:3786
msgid "register section has contents\n"
msgstr "la sección de registros tiene contenido\n"
-#: config/tc-mmix.c:3926
+#: config/tc-mmix.c:3912
msgid "section change from within a BSPEC/ESPEC pair is not supported"
msgstr "no se admite el cambio de sección desde dentro de una pareja BSPEC/ESPEC"
-#: config/tc-mmix.c:3947
+#: config/tc-mmix.c:3933
msgid "directive LOC from within a BSPEC/ESPEC pair is not supported"
msgstr "no se admite una directiva LOC desde dentro de una pareja BSPEC/ESPEC"
-#: config/tc-mmix.c:3957
+#: config/tc-mmix.c:3943
msgid "invalid LOC expression"
msgstr "expresión LOC no válida"
-#: config/tc-mmix.c:4002 config/tc-mmix.c:4029
+#: config/tc-mmix.c:3988 config/tc-mmix.c:4015
msgid "LOC expression stepping backwards is not supported"
msgstr "LOC como expresión volviendo pasos no está admitido"
#. We will only get here in rare cases involving #NO_APP,
#. where the unterminated string is not recognized by the
#. preformatting pass.
-#: config/tc-mmix.c:4138 config/tc-mmix.c:4296 config/tc-z80.c:3202
+#: config/tc-mmix.c:4124 config/tc-mmix.c:4282 config/tc-z80.c:3202
msgid "unterminated string"
msgstr "cadena sin terminar"
-#: config/tc-mmix.c:4155
+#: config/tc-mmix.c:4141
msgid "BYTE expression not a pure number"
msgstr "BYTE de expresión no un número puro"
#. Note that mmixal does not allow negative numbers in
#. BYTE sequences, so neither should we.
-#: config/tc-mmix.c:4164
+#: config/tc-mmix.c:4150
msgid "BYTE expression not in the range 0..255"
msgstr "BYTE de expresión no interno al rango 0..255"
-#: config/tc-mmix.c:4213 config/tc-mmix.c:4229
+#: config/tc-mmix.c:4199 config/tc-mmix.c:4215
msgid "data item with alignment larger than location"
msgstr "elemento de datos con una alineamiento más grande que la ubicación"
@@ -14651,15 +14472,15 @@ msgstr ""
"Opciones MN10200:\n"
"ninguna aún\n"
-#: config/tc-mn10200.c:890 config/tc-mn10300.c:1253 config/tc-s390.c:1928
-#: config/tc-v850.c:2320
+#: config/tc-mn10200.c:886 config/tc-mn10300.c:1253 config/tc-s390.c:1949
+#: config/tc-v850.c:2297
#, c-format
msgid "Unrecognized opcode: `%s'"
-msgstr "No reconocido el código de operación: «%s»"
+msgstr "No se reconoce el código de operación: «%s»"
#. xgettext:c-format.
-#: config/tc-mn10200.c:1134 config/tc-mn10300.c:1822 config/tc-ppc.c:4003
-#: config/tc-s390.c:1837 config/tc-v850.c:3036
+#: config/tc-mn10200.c:1130 config/tc-mn10300.c:1822 config/tc-ppc.c:4002
+#: config/tc-s390.c:1859 config/tc-v850.c:3013
#, c-format
msgid "junk at end of line: `%s'"
msgstr "basura al final de la línea: «%s»"
@@ -14675,7 +14496,7 @@ msgstr ""
#: config/tc-mn10300.c:1270
msgid "Invalid opcode/operands"
-msgstr "Código operacional/operandos inválidos"
+msgstr "Código de operación/operandos inválidos"
#: config/tc-mn10300.c:1793
msgid "Invalid register specification."
@@ -14703,17 +14524,17 @@ msgstr "se espera el registro indirecto `($rA)'"
#: config/tc-moxie.c:326 config/tc-moxie.c:354 config/tc-moxie.c:445
#: config/tc-moxie.c:487
msgid "missing closing parenthesis"
-msgstr "ausente paréntesis que cierra"
+msgstr "falta paréntesis que cierra"
#: config/tc-moxie.c:437 config/tc-moxie.c:479
msgid "expecting indirect register `($rX)'"
msgstr "se espera el registro indirecto `($rX)'"
-#: config/tc-moxie.c:557 config/tc-pj.c:313
+#: config/tc-moxie.c:554 config/tc-pj.c:313
msgid "Something forgot to clean up\n"
msgstr "Algo se olvidó de limpiar\n"
-#: config/tc-moxie.c:641
+#: config/tc-moxie.c:638
#, c-format
msgid ""
" -EB assemble for a big endian system (default)\n"
@@ -14722,7 +14543,7 @@ msgstr ""
" -EB ensambla para un sistema big endian (por defecto)\n"
" -EL ensambla para un sistema little endian\n"
-#: config/tc-moxie.c:701
+#: config/tc-moxie.c:698
msgid "pcrel too far BFD_RELOC_MOXIE_10"
msgstr "pcrel demasiado lejos de BFD_RELOC_MOXIE_10"
@@ -14759,7 +14580,7 @@ msgstr "Opción MCU requiereun nombre\n"
#: config/tc-msp430.c:1437
#, c-format
msgid "unrecognised argument to -mcpu option '%s'"
-msgstr "no reconocido argumento a opción -mcpu: '%s'"
+msgstr "no se reconoce argumento a opción -mcpu: '%s'"
#: config/tc-msp430.c:1634
#, fuzzy, c-format
@@ -14980,9 +14801,9 @@ msgstr "operador %s desconocido. ¿ Quiere decir X(Rn) ó #[hl][hl][oi](CONST) ?
msgid "r2 should not be used in indexed addressing mode"
msgstr "no se debe usar r2 en el modo de direccionamiento indexado"
-#: config/tc-msp430.c:2293 config/tc-msp430.c:2368 config/tc-msp430.c:3514
-#: config/tc-msp430.c:3582 config/tc-msp430.c:3699 config/tc-msp430.c:4121
-#: config/tc-msp430.c:4220 config/tc-msp430.c:4271
+#: config/tc-msp430.c:2293 config/tc-msp430.c:2368 config/tc-msp430.c:3512
+#: config/tc-msp430.c:3580 config/tc-msp430.c:3703 config/tc-msp430.c:4125
+#: config/tc-msp430.c:4224 config/tc-msp430.c:4275
#, c-format
msgid "extra characters '%s' at end of operand '%s'"
msgstr "caracteres adicionales «%s» al final de operando «%s»"
@@ -15006,8 +14827,8 @@ msgid "this addressing mode is not applicable for destination operand"
msgstr "este modo direccional no es aplicable para el operando destino"
#: config/tc-msp430.c:2444 config/tc-msp430.c:2579 config/tc-msp430.c:2616
-#: config/tc-msp430.c:2646 config/tc-msp430.c:3450 config/tc-msp430.c:3533
-#: config/tc-msp430.c:3621
+#: config/tc-msp430.c:2646 config/tc-msp430.c:3448 config/tc-msp430.c:3531
+#: config/tc-msp430.c:3625
#, c-format
msgid "expected register as second argument of %s"
msgstr "esperaba registro como segundo argumento de %s"
@@ -15032,188 +14853,188 @@ msgstr "encontrado generador de registro destino constante en %s"
msgid "constant generator source register found in %s"
msgstr "generador constante de registro destino encontrado en %s"
-#: config/tc-msp430.c:2840
+#: config/tc-msp430.c:2839
msgid "no size modifier after period, .w assumed"
msgstr ""
-#: config/tc-msp430.c:2844
+#: config/tc-msp430.c:2842
#, c-format
msgid "unrecognised instruction size modifier .%c"
-msgstr "no reconocido modificador de tamaño de instrucción .%c"
+msgstr "no se reconoce modificador de tamaño de instrucción .%c"
-#: config/tc-msp430.c:2858
+#: config/tc-msp430.c:2856
#, c-format
msgid "junk found after instruction: %s.%s"
msgstr "basura aparecida tras instrucción: %s.%s"
-#: config/tc-msp430.c:2878
+#: config/tc-msp430.c:2876
#, c-format
msgid "instruction %s.a does not exist"
msgstr "la instrucción %s.a no existe"
-#: config/tc-msp430.c:2892
+#: config/tc-msp430.c:2890
#, c-format
msgid "instruction %s requires %d operand"
msgid_plural "instruction %s requires %d operands"
msgstr[0] "la instrucción %s requiere de %d operando"
msgstr[1] "la instrucción %s requiere de %d operandos"
-#: config/tc-msp430.c:2910
+#: config/tc-msp430.c:2908
#, c-format
msgid "instruction %s requires MSP430X mcu"
msgstr "la instrucción %s requiere MSP430X mcu"
-#: config/tc-msp430.c:2930
+#: config/tc-msp430.c:2928
#, c-format
msgid "unable to repeat %s insn"
msgstr "incapaz para utilizar %s insn"
-#: config/tc-msp430.c:3002
+#: config/tc-msp430.c:3000
msgid "CPU12: CMP/BIT with PC destination ignores next instruction"
msgstr ""
-#: config/tc-msp430.c:3010
+#: config/tc-msp430.c:3008
msgid "CPU19: Instruction setting CPUOFF must be followed by a NOP"
msgstr ""
-#: config/tc-msp430.c:3017
+#: config/tc-msp430.c:3015
msgid "internal error: unknown nop check state"
msgstr "error interno: estado marcado ‘nop’ desconocido"
-#: config/tc-msp430.c:3071 config/tc-msp430.c:3073 config/tc-msp430.c:3782
-#: config/tc-msp430.c:3784
+#: config/tc-msp430.c:3069 config/tc-msp430.c:3071 config/tc-msp430.c:3786
+#: config/tc-msp430.c:3788
msgid "CPU11: PC is destination of SR altering instruction"
msgstr ""
-#: config/tc-msp430.c:3088 config/tc-msp430.c:3090 config/tc-msp430.c:3195
-#: config/tc-msp430.c:3197 config/tc-msp430.c:3799 config/tc-msp430.c:3801
-#: config/tc-msp430.c:4020 config/tc-msp430.c:4022
+#: config/tc-msp430.c:3086 config/tc-msp430.c:3088 config/tc-msp430.c:3193
+#: config/tc-msp430.c:3195 config/tc-msp430.c:3803 config/tc-msp430.c:3805
+#: config/tc-msp430.c:4024 config/tc-msp430.c:4026
msgid "CPU13: SR is destination of SR altering instruction"
msgstr ""
-#: config/tc-msp430.c:3106 config/tc-msp430.c:3207 config/tc-msp430.c:3885
-#: config/tc-msp430.c:4054
+#: config/tc-msp430.c:3104 config/tc-msp430.c:3205 config/tc-msp430.c:3889
+#: config/tc-msp430.c:4058
msgid "repeat instruction used with non-register mode instruction"
msgstr "repite instrucciones utilizadas con modo de instrucción no registrada"
-#: config/tc-msp430.c:3181 config/tc-msp430.c:3540 config/tc-msp430.c:4010
+#: config/tc-msp430.c:3179 config/tc-msp430.c:3538 config/tc-msp430.c:4014
#, c-format
msgid "%s: attempt to rotate the PC register"
msgstr "%s: trata rotar el registro PC"
-#: config/tc-msp430.c:3432 config/tc-msp430.c:3508
+#: config/tc-msp430.c:3430 config/tc-msp430.c:3506
#, c-format
msgid "expected #n as first argument of %s"
msgstr "esperaba #n como primer argumento de %s"
-#: config/tc-msp430.c:3438
+#: config/tc-msp430.c:3436
#, c-format
msgid "extra characters '%s' at end of constant expression '%s'"
msgstr "caracteres adicionales «%s» al final de expresión constante «%s»"
-#: config/tc-msp430.c:3443 config/tc-msp430.c:3519
+#: config/tc-msp430.c:3441 config/tc-msp430.c:3517
#, c-format
msgid "expected constant expression as first argument of %s"
msgstr "esperaba una expresión constante como primer argumento de %s"
-#: config/tc-msp430.c:3469
+#: config/tc-msp430.c:3467
msgid "Too many registers popped"
msgstr "Demasiados registros aparecidos"
-#: config/tc-msp430.c:3479
+#: config/tc-msp430.c:3477
msgid "Cannot use POPM to restore the SR register"
msgstr ""
-#: config/tc-msp430.c:3499 config/tc-msp430.c:3568
+#: config/tc-msp430.c:3497 config/tc-msp430.c:3566
#, c-format
msgid "repeat count cannot be used with %s"
msgstr "repetición de conteo no puede ser utilizado con %s"
-#: config/tc-msp430.c:3526
+#: config/tc-msp430.c:3524
#, c-format
msgid "expected first argument of %s to be in the range 1-4"
msgstr "esperaba primer argumento de %s para estar dentro del rango 1-4"
-#: config/tc-msp430.c:3591
+#: config/tc-msp430.c:3595
#, c-format
msgid "expected value of first argument of %s to fit into 20-bits"
msgstr ""
-#: config/tc-msp430.c:3610
+#: config/tc-msp430.c:3614
#, c-format
msgid "expected register name or constant as first argument of %s"
msgstr "nombre registrado esperada o constante como primer argumento de %s"
-#: config/tc-msp430.c:3704
+#: config/tc-msp430.c:3708
msgid "expected constant value as argument to RPT"
msgstr "esperaba un valor constante como argumento a RPT"
-#: config/tc-msp430.c:3710
+#: config/tc-msp430.c:3714
msgid "expected constant in the range 2..16"
msgstr "constante esperada dentro del rango 2..16"
-#: config/tc-msp430.c:3725
+#: config/tc-msp430.c:3729
msgid "PC used as an argument to RPT"
msgstr "PC utilizado como argumento a RPT"
-#: config/tc-msp430.c:3731
+#: config/tc-msp430.c:3735
msgid "expected constant or register name as argument to RPT insn"
msgstr ""
-#: config/tc-msp430.c:3738
+#: config/tc-msp430.c:3742
msgid "Illegal emulated instruction"
-msgstr "Instrucción emulada ilegítima"
+msgstr "Instrucción emulada ilegal"
-#: config/tc-msp430.c:4039
+#: config/tc-msp430.c:4043
#, c-format
msgid "%s instruction does not accept a .b suffix"
msgstr "la instrucción %s no acepta un sufijo .b"
-#: config/tc-msp430.c:4152
+#: config/tc-msp430.c:4156
#, c-format
msgid "Even number required. Rounded to %d"
msgstr "Se requiere un número par. Se redondea a %d"
-#: config/tc-msp430.c:4163
+#: config/tc-msp430.c:4167
#, c-format
msgid "Wrong displacement %d"
msgstr "Desplazamiento incorrecto %d"
-#: config/tc-msp430.c:4185
+#: config/tc-msp430.c:4189
msgid "instruction requires label sans '$'"
msgstr "la instrucción requiere una etiqueta sin '$'"
-#: config/tc-msp430.c:4189
+#: config/tc-msp430.c:4193
msgid "instruction requires label or value in range -511:512"
msgstr "la instrucción requiere una etiqueta o valor en el rango -511:512"
-#: config/tc-msp430.c:4195 config/tc-msp430.c:4249 config/tc-msp430.c:4297
+#: config/tc-msp430.c:4199 config/tc-msp430.c:4253 config/tc-msp430.c:4301
msgid "instruction requires label"
msgstr "la instrucción requiere etiqueta"
-#: config/tc-msp430.c:4203 config/tc-msp430.c:4255
+#: config/tc-msp430.c:4207 config/tc-msp430.c:4259
msgid "polymorphs are not enabled. Use -mP option to enable."
msgstr "los polimórficos no están activados. Use la opción -mP para activarlos."
-#: config/tc-msp430.c:4301
+#: config/tc-msp430.c:4305
msgid "Illegal instruction or not implemented opcode."
msgstr "Instrucción ilegal o código de operación sin implementar."
-#: config/tc-msp430.c:4355
+#: config/tc-msp430.c:4359
msgid "can't find opcode"
msgstr "no se puede encontrar el código de operación"
-#: config/tc-msp430.c:4868
+#: config/tc-msp430.c:4872
#, c-format
msgid "internal inconsistency problem in %s: insn %04lx"
msgstr "problema de inconsistencia interna en %s: insn %04lx"
-#: config/tc-msp430.c:4910 config/tc-msp430.c:4942
+#: config/tc-msp430.c:4914 config/tc-msp430.c:4946
#, c-format
msgid "internal inconsistency problem in %s: ext. insn %04lx"
msgstr "problema de inconsistencia interna en %s: ext. insn %04lx"
-#: config/tc-msp430.c:4954
+#: config/tc-msp430.c:4958
#, c-format
msgid "internal inconsistency problem in %s: %lx"
msgstr "problema de inconsistencia interna en %s: %lx"
@@ -15261,7 +15082,7 @@ msgstr "la instrucción %s no puede estar a continuación de otra instrucción E
#: config/tc-mt.c:238
#, c-format
msgid "%s may not occupy the delay slot of another branch insn."
-msgstr "%s no puede ocupar la ranura de retardo de otra insn de ramificación."
+msgstr "%s no puede ocupar la ranura de retardo de otra insn de bifurcación."
#: config/tc-mt.c:263
#, c-format
@@ -15276,7 +15097,7 @@ msgstr "operando se refiere a R%ld de la instrucción anterior a la previa."
#: config/tc-mt.c:283 config/tc-mt.c:288
#, c-format
msgid "conditional branch or jal insn's operand references R%ld of previous arithmetic or logic insn."
-msgstr "la ramificación condicional o operando de insn jal se refiere a R%ld de la insn aritmética o lógica previa."
+msgstr "la bifurcación condicional o operando de insn jal se refiere a R%ld de la insn aritmética o lógica previa."
#: config/tc-mt.c:351
msgid "md_estimate_size_before_relax\n"
@@ -15334,7 +15155,7 @@ msgstr "Soporta instrucciones dividir"
#: config/tc-nds32.c:2422
msgid "16-bit extension"
-msgstr "Extensión de 16-bit"
+msgstr "Extensión de 16 bits"
#: config/tc-nds32.c:2423
msgid "d0/d1 registers"
@@ -15477,181 +15298,181 @@ msgstr "desconoce configuración FPU «%s»\n"
msgid "unknown ABI version`%s'\n"
msgstr "desconoce versión «%s» de ABI\n"
-#: config/tc-nds32.c:4339
+#: config/tc-nds32.c:4337
#, c-format
msgid "Different arguments of .vec_size are found, previous %d, current %d"
msgstr ""
-#: config/tc-nds32.c:4344
+#: config/tc-nds32.c:4342
#, c-format
msgid "Argument of .vec_size is expected 4 or 16, actual: %d."
msgstr "Argumento de tamaño .vec_size está esperado 4 o 16, actual: %d."
-#: config/tc-nds32.c:4348
+#: config/tc-nds32.c:4346
msgid "Argument of .vec_size is not a constant."
msgstr "Argumento de .vec_size no es constante."
-#: config/tc-nds32.c:4934
+#: config/tc-nds32.c:4929
#, c-format
msgid "Don't know how to handle this field. %s"
msgstr "No se sabe cómo manipular este campo. %s"
-#: config/tc-nds32.c:5299
+#: config/tc-nds32.c:5294
#, c-format
msgid "instruction %s requires enabling performance extension"
msgstr "la instrucción %s requiere activando extensión rendimiento"
-#: config/tc-nds32.c:5311
+#: config/tc-nds32.c:5306
#, c-format
msgid "instruction %s requires enabling performance extension II"
msgstr "la instrucción %s requiere activar extensión rendimiento II"
-#: config/tc-nds32.c:5323
+#: config/tc-nds32.c:5318
#, c-format
msgid "instruction %s requires enabling AUDIO extension"
msgstr "la instrucción %s requiere activar extensión AUDIO"
-#: config/tc-nds32.c:5335
+#: config/tc-nds32.c:5330
#, c-format
msgid "instruction %s requires enabling STRING extension"
msgstr "la instrucción %s requiere activación de extensión STRING"
-#: config/tc-nds32.c:5349
+#: config/tc-nds32.c:5344
#, c-format
msgid "instruction %s requires enabling DIV & DX_REGS extension"
msgstr "la instrucción %s requiere activar extensiones DIV & DX_REGS"
-#: config/tc-nds32.c:5364
+#: config/tc-nds32.c:5359
#, c-format
msgid "instruction %s requires enabling FPU extension"
msgstr "la instrucción %s requiere una extensión FPU"
-#: config/tc-nds32.c:5376
+#: config/tc-nds32.c:5371
#, c-format
msgid "instruction %s requires enabling FPU_SP extension"
msgstr "la instrucción %s requiere activar extensión FPU_PS"
-#: config/tc-nds32.c:5388
+#: config/tc-nds32.c:5383
#, c-format
msgid "instruction %s requires enabling FPU_DP extension"
msgstr "la instrucción %s requiere activar extensión FPU_DP"
-#: config/tc-nds32.c:5399 config/tc-nds32.c:5407
+#: config/tc-nds32.c:5394 config/tc-nds32.c:5402
#, c-format
msgid "instruction %s requires enabling FPU_MAC extension"
msgstr "la instrucción %s requiere activación de extensión FPU_MAC"
-#: config/tc-nds32.c:5415
+#: config/tc-nds32.c:5410
#, c-format
msgid "instruction %s requires enabling DX_REGS extension"
msgstr "la instrucción %s requiere activación de extensión DX_REGS"
-#: config/tc-nds32.c:5431
+#: config/tc-nds32.c:5426
#, fuzzy, c-format
#| msgid "instruction %s requires enabling FPU extension"
msgid "instruction %s requires enabling dsp extension"
msgstr "la instrucción %s requiere una extensión FPU"
-#: config/tc-nds32.c:5443
+#: config/tc-nds32.c:5438
#, fuzzy, c-format
#| msgid "instruction %s requires enabling FPU extension"
msgid "instruction %s requires enabling zol extension"
msgstr "la instrucción %s requiere una extensión FPU"
-#: config/tc-nds32.c:5448
+#: config/tc-nds32.c:5443
#, fuzzy, c-format
#| msgid "internal error: unknown option name '%s'"
msgid "internal error: unknown instruction attribute: 0x%08x"
msgstr "error interno: nombre desconocido opcional '%s'"
-#: config/tc-nds32.c:5741
+#: config/tc-nds32.c:5736
#, c-format
msgid "relax hint unrecognized instruction: line %d."
msgstr "la instrucción relajada irreconocida: línea %d."
-#: config/tc-nds32.c:5796
+#: config/tc-nds32.c:5791
#, c-format
msgid "Can not find match relax hint. Line: %d"
msgstr "No puede encontrar coincidencia relajada insinuada. Línea: %d"
-#: config/tc-nds32.c:5994
+#: config/tc-nds32.c:5988
#, fuzzy
#| msgid "Internal error: Relax hint error. %s: %x"
msgid "Internal error: .relax_hint KEY is not a number!"
msgstr "Error interno: relajar error insinuoso. %s: %x"
-#: config/tc-nds32.c:6022
+#: config/tc-nds32.c:6016
#, fuzzy, c-format
#| msgid "Internal error: Relax hint error. %s: %x"
msgid "Internal error: Relax hint (%s) error. %s: %s (%x)"
msgstr "Error interno: relajar error insinuoso. %s: %x"
-#: config/tc-nds32.c:6099
+#: config/tc-nds32.c:6093
#, c-format
msgid "Internal error: Range error. %s"
msgstr "Error interno: rango erróneo. %s"
-#: config/tc-nds32.c:6160
+#: config/tc-nds32.c:6154
msgid "Multiple BFD_RELOC_NDS32_PTR_RESOLVED patterns are not supported yet!"
msgstr ""
-#: config/tc-nds32.c:6308
+#: config/tc-nds32.c:6302
#, fuzzy, c-format
#| msgid "unsupported instruction `%s'"
msgid "Not support instruction %s in verbatim."
msgstr "no admitió instrucción «%s»"
-#: config/tc-nds32.c:6315
+#: config/tc-nds32.c:6309
#, fuzzy, c-format
#| msgid "st/ld offset 23 instruction was disabled ."
msgid "16-bit instruction is disabled: %s."
msgstr "st/ld desplaza 23 instrucciones fue desactivado."
-#: config/tc-nds32.c:6342
+#: config/tc-nds32.c:6336
#, c-format
msgid "Instruction %s not supported in the baseline."
msgstr "Instrucción %s no admitida dentro de la línea base."
-#: config/tc-nds32.c:6409
+#: config/tc-nds32.c:6403
#, c-format
msgid "Unrecognized opcode, %s."
-msgstr "No reconocido el código de operación: %s."
+msgstr "No se reconoce el código de operación: %s."
-#: config/tc-nds32.c:6412
+#: config/tc-nds32.c:6406
#, c-format
msgid "Incorrect syntax, %s."
msgstr "Sintaxis incorrecta, %s."
-#: config/tc-nds32.c:6415
+#: config/tc-nds32.c:6409
#, c-format
msgid "Unrecognized operand/register, %s."
msgstr "Operando no reconocido %s."
-#: config/tc-nds32.c:6418
+#: config/tc-nds32.c:6412
#, c-format
msgid "Operand out of range, %s."
msgstr "Operando fuera de rango, %s."
-#: config/tc-nds32.c:6421
+#: config/tc-nds32.c:6415
#, c-format
msgid "Prohibited register used for reduced-register, %s."
msgstr "Registro utilizado prohibido para registro reducido, %s."
-#: config/tc-nds32.c:6424
+#: config/tc-nds32.c:6418
#, c-format
msgid "Junk at end of line, %s."
msgstr "Basura al final de la línea, %s."
-#: config/tc-nds32.c:7122
+#: config/tc-nds32.c:7116
msgid "Addend to unresolved symbol is not on word boundary."
msgstr "Añadido a símbolo no resuelto no está en un límite de word."
#. Should never here.
-#: config/tc-nds32.c:7617
+#: config/tc-nds32.c:7609
msgid "Used FPU instructions requires enabling FPU extension"
msgstr "Instrucción FPU utilizada requiere activación de extensión FPU"
-#: config/tc-nds32.c:7813
+#: config/tc-nds32.c:7805
#, c-format
msgid "Internal error: Unknown fixup type %d (`%s')"
msgstr "Error interno: Tipo desconocido de corrección: %d (`%s')"
@@ -15716,106 +15537,106 @@ msgstr "Operando de escritura inmediato inválido."
msgid "Bad opcode-table-option, check in file ns32k-opcode.h"
msgstr "Opción-de-tabla-de-códigos-de-operación incorrecta, revise en el fichero ns32k-opcode.h"
-#: config/tc-ns32k.c:1108
+#: config/tc-ns32k.c:1110
msgid "No such opcode"
msgstr "No existe ese código de operación"
-#: config/tc-ns32k.c:1183
+#: config/tc-ns32k.c:1185
msgid "Bad suffix, defaulting to d"
msgstr "Sufijo incorrecto, se cambia por defecto a d"
-#: config/tc-ns32k.c:1210
+#: config/tc-ns32k.c:1212
msgid "Too many operands passed to instruction"
msgstr "Se pasan demasiados operandos a la instrucción"
#. Check error in default.
-#: config/tc-ns32k.c:1222
+#: config/tc-ns32k.c:1224
msgid "Wrong numbers of operands in default, check ns32k-opcodes.h"
msgstr "Número incorrecto de operandos por defecto, revise ns32k-opcodes.h"
-#: config/tc-ns32k.c:1225
+#: config/tc-ns32k.c:1227
msgid "Wrong number of operands"
msgstr "Número incorrecto de operandos"
-#: config/tc-ns32k.c:1298
+#: config/tc-ns32k.c:1300
#, c-format
msgid "Can not do %d byte pc-relative relocation for storage type %d"
msgstr "No se puede hacer la reubicación relativa a pc de %d byte para el tipo de almacenamiento %d"
-#: config/tc-ns32k.c:1301
+#: config/tc-ns32k.c:1303
#, c-format
msgid "Can not do %d byte relocation for storage type %d"
msgstr "No se puede hacer la reubicación de %d byte para el tipo de almacenamiento %d"
-#: config/tc-ns32k.c:1393
+#: config/tc-ns32k.c:1395
#, c-format
msgid "value of %ld out of byte displacement range."
msgstr "valor de %ld fuera del rango de desubicación de byte."
-#: config/tc-ns32k.c:1403
+#: config/tc-ns32k.c:1405
#, c-format
msgid "value of %ld out of word displacement range."
msgstr "valor de %ld fuera del rango de desubicación de word."
-#: config/tc-ns32k.c:1418
+#: config/tc-ns32k.c:1420
#, c-format
msgid "value of %ld out of double word displacement range."
msgstr "valor de %ld fuera del rango de desubicación de double word."
-#: config/tc-ns32k.c:1439
+#: config/tc-ns32k.c:1441
#, c-format
msgid "Internal logic error. Line %d, file: \"%s\""
msgstr "Error lógico interno. Línea %d, fichero «%s»"
-#: config/tc-ns32k.c:1487
+#: config/tc-ns32k.c:1489
#, c-format
msgid "Internal logic error. line %d, file \"%s\""
msgstr "Error lógico interno. línea %d, fichero «%s»"
-#: config/tc-ns32k.c:1588
+#: config/tc-ns32k.c:1590
msgid "Bit field out of range"
msgstr "Campo de bits fuera de rango"
-#: config/tc-ns32k.c:1688
+#: config/tc-ns32k.c:1690
msgid "iif convert internal pcrel/binary"
msgstr "iif convierte a pcrel/binario interno"
-#: config/tc-ns32k.c:1705
+#: config/tc-ns32k.c:1707
msgid "Bignum too big for long"
msgstr "Número grande demasiado grande para long"
-#: config/tc-ns32k.c:1782
+#: config/tc-ns32k.c:1784
msgid "iif convert internal pcrel/pointer"
msgstr "iif convierte a pcrel/puntero interno"
-#: config/tc-ns32k.c:1787
+#: config/tc-ns32k.c:1789
msgid "Internal logic error in iif.iifP[n].type"
msgstr "Error interno de lógica en iif.iifP[n].tipo"
#. We can't relax this case.
-#: config/tc-ns32k.c:1823
+#: config/tc-ns32k.c:1825
msgid "Can't relax difference"
msgstr "No se puede relajar la diferencia"
-#: config/tc-ns32k.c:1864
+#: config/tc-ns32k.c:1866
msgid "Displacement too large for :d"
msgstr "Desubicación demasiado grande para :d"
-#: config/tc-ns32k.c:1877
+#: config/tc-ns32k.c:1879
msgid "Internal logic error in iif.iifP[].type"
msgstr "Error interno de lógica en iif.iifP[].tipo"
-#: config/tc-ns32k.c:2141
+#: config/tc-ns32k.c:2143
#, c-format
msgid "invalid architecture option -m%s, ignored"
msgstr "opción de arquitectura -m%s no válida, se descarta"
-#: config/tc-ns32k.c:2154
+#: config/tc-ns32k.c:2156
#, c-format
msgid "invalid default displacement size \"%s\". Defaulting to %d."
msgstr "tamaño de desubicación por defecto «%s» inválido. Se cambia a %d por defecto."
-#: config/tc-ns32k.c:2170
+#: config/tc-ns32k.c:2172
#, c-format
msgid ""
"NS32K options:\n"
@@ -15826,10 +15647,10 @@ msgstr ""
"-m32032 | -m32532\tselecciona la variante de la arquitectura NS32K\n"
"--disp-size-default=<1|2|4>\n"
-#: config/tc-ns32k.c:2246
+#: config/tc-ns32k.c:2248
#, c-format
msgid "Cannot find relocation type for symbol %s, code %d"
-msgstr "No se puede encontrar el tipo reubicado para el símbolo %s, código %d"
+msgstr "No se puede encontrar el tipo de reubicación para el símbolo %s, código %d"
#: config/tc-pdp11.c:351 config/tc-pdp11.c:369 config/tc-pdp11.c:375
#: config/tc-pdp11.c:400 config/tc-pdp11.c:406 config/tc-pdp11.c:419
@@ -15872,15 +15693,15 @@ msgstr "operando no es una constante absoluta"
#: config/tc-pdp11.c:765
msgid "3-bit immediate out of range"
-msgstr "inmediato de 3-bit fuera de rango"
+msgstr "inmediato de 3 bits fuera de rango"
#: config/tc-pdp11.c:772
msgid "6-bit immediate out of range"
-msgstr "inmediato de 6-bit fuera de rango"
+msgstr "inmediato de 6 bits fuera de rango"
#: config/tc-pdp11.c:779
msgid "8-bit immediate out of range"
-msgstr "inmediato de 8-bit fuera de rango"
+msgstr "inmediato de 8 bits fuera de rango"
#: config/tc-pdp11.c:796 config/tc-pdp11.c:989
msgid "Symbol expected"
@@ -15888,20 +15709,20 @@ msgstr "Se esperaba un símbolo"
#: config/tc-pdp11.c:801
msgid "8-bit displacement out of range"
-msgstr "Desubicación de 8-bit fuera de rango"
+msgstr "Desubicación de 8 bits fuera de rango"
#: config/tc-pdp11.c:843 config/tc-pdp11.c:864 config/tc-pdp11.c:881
#: config/tc-pdp11.c:902 config/tc-pdp11.c:919 config/tc-pdp11.c:940
#: config/tc-pdp11.c:959 config/tc-pdp11.c:980
msgid "Missing ','"
-msgstr "Ausentea ','"
+msgstr "Faltaa ','"
#: config/tc-pdp11.c:994
msgid "6-bit displacement out of range"
msgstr "6-bit desplazamiento fuera de rango"
-#: config/tc-pdp11.c:1015 config/tc-tilegx.c:1212 config/tc-tilepro.c:1095
-#: config/tc-vax.c:1945
+#: config/tc-pdp11.c:1015 config/tc-tilegx.c:1204 config/tc-tilepro.c:1091
+#: config/tc-vax.c:1943
msgid "Too many operands"
msgstr "Demasiados operandos"
@@ -15933,12 +15754,12 @@ msgstr ""
"-little\t\t\tgenera código little endian\n"
"-big\t\t\tgenera código big endian\n"
-#: config/tc-pj.c:380 config/tc-sh.c:3580 config/tc-sh.c:3587
-#: config/tc-sh.c:3594 config/tc-sh.c:3601
+#: config/tc-pj.c:380 config/tc-sh.c:3577 config/tc-sh.c:3584
+#: config/tc-sh.c:3591 config/tc-sh.c:3598
msgid "pcrel too far"
msgstr "pcrel demasiado lejos"
-#: config/tc-ppc.c:964 config/tc-ppc.c:972 config/tc-ppc.c:3497
+#: config/tc-ppc.c:964 config/tc-ppc.c:972 config/tc-ppc.c:3496
msgid "invalid register expression"
msgstr "expresión de registro inválido"
@@ -15955,7 +15776,7 @@ msgstr "la macro requiere $at mientras $at está en uso."
msgid "%s unsupported"
msgstr "no se admite %s"
-#: config/tc-ppc.c:1268 config/tc-s390.c:493 config/tc-s390.c:500
+#: config/tc-ppc.c:1268 config/tc-s390.c:506 config/tc-s390.c:513
#, c-format
msgid "invalid switch -m%s"
msgstr "interruptor -m%s inválido"
@@ -16301,7 +16122,7 @@ msgstr " -nocpp se descarta\n"
msgid "-nops=count when aligning, more than COUNT nops uses a branch\n"
msgstr ""
"-nops=contador cuando alineando, más que CONTADOR nops utiliza\n"
-" una ramificación\n"
+" una bifurcación\n"
"-ppc476-workarround avisa si emitiendo datos para secciones de código\n"
#: config/tc-ppc.c:1460
@@ -16312,7 +16133,7 @@ msgstr ""
msgid "-ppc476-workaround warn if emitting data to code sections\n"
msgstr ""
"-nops=contador cuando alineando, más que CONTADOR nops utiliza\n"
-" una ramificación\n"
+" una bifurcación\n"
"-ppc476-workarround avisa si emitiendo datos para secciones de código\n"
#: config/tc-ppc.c:1490
@@ -16383,7 +16204,7 @@ msgstr ""
msgid "symbol+offset@%s not supported"
msgstr "no se admite símbolo+desplazamiento para got tls"
-#: config/tc-ppc.c:2358 config/tc-ppc.c:4223 config/tc-ppc.c:7693
+#: config/tc-ppc.c:2358 config/tc-ppc.c:4222 config/tc-ppc.c:7669
msgid "data in executable section"
msgstr "datos en sección ejecutable"
@@ -16405,258 +16226,258 @@ msgstr "longitud de .lcomm «%s» ya es %ld. No modificado a %ld."
msgid "common alignment not a power of 2"
msgstr "la alineamiento común no es una potencia de 2"
-#: config/tc-ppc.c:2500
+#: config/tc-ppc.c:2499
#, c-format
msgid "expected comma after name `%s' in .localentry directive"
msgstr "coma esperada tras nombre «%s» en directiva .localentry"
-#: config/tc-ppc.c:2510
+#: config/tc-ppc.c:2509
msgid "missing expression in .localentry directive"
msgstr "expresión ausente en directiva localentry"
-#: config/tc-ppc.c:2531
+#: config/tc-ppc.c:2530
#, c-format
msgid ".localentry expression for `%s' is not a valid power of 2"
msgstr "la expresión .localentry para `%s' no es una potencia de 2 válida"
-#: config/tc-ppc.c:2548
+#: config/tc-ppc.c:2547
#, c-format
msgid ".localentry expression for `%s' does not evaluate to a constant"
msgstr "expresión .localentry para `%s' no evalúa a una constante"
-#: config/tc-ppc.c:2563
+#: config/tc-ppc.c:2562
#, fuzzy
#| msgid "missing expression in .size directive"
msgid "missing expression in .abiversion directive"
msgstr "expresión ausente en directiva localentry"
-#: config/tc-ppc.c:2572
+#: config/tc-ppc.c:2571
msgid ".abiversion expression does not evaluate to a constant"
msgstr "expresión .abiversion no evalúa a una constante"
-#: config/tc-ppc.c:2652
+#: config/tc-ppc.c:2651
msgid "relocation cannot be done when using -mrelocatable"
msgstr "relocation no puede ser hecho cuando utiliza -mrelocatable"
-#: config/tc-ppc.c:2698
+#: config/tc-ppc.c:2697
msgid "TOC section size exceeds 64k"
msgstr "TOC como sección excede 64k"
-#: config/tc-ppc.c:3258
+#: config/tc-ppc.c:3257
#, c-format
msgid "%s howto doesn't match size/pcrel in gas"
msgstr ""
-#: config/tc-ppc.c:3337
+#: config/tc-ppc.c:3336
#, c-format
msgid "unrecognized opcode: `%s'"
msgstr "código de operación no reconocido: «%s»"
#. lmw, stmw, lswi, lswx, stswi, stswx
-#: config/tc-ppc.c:3348
+#: config/tc-ppc.c:3347
#, c-format
msgid "`%s' invalid when little-endian"
msgstr ""
-#: config/tc-ppc.c:3690
+#: config/tc-ppc.c:3689
#, c-format
msgid "@tls may not be used with \"%s\" operands"
msgstr "@tls quizá no está utiliada con «%s» operandos"
-#: config/tc-ppc.c:3693
+#: config/tc-ppc.c:3692
msgid "@tls may only be used in last operand"
msgstr "@tls solo se puede utilizar en el último operando"
-#: config/tc-ppc.c:3731 config/tc-ppc.c:3741 config/tc-ppc.c:3751
-#: config/tc-ppc.c:3766
+#: config/tc-ppc.c:3730 config/tc-ppc.c:3740 config/tc-ppc.c:3750
+#: config/tc-ppc.c:3765
#, fuzzy, c-format
#| msgid "%s unsupported as instruction fixup"
msgid "%s unsupported on this instruction"
msgstr "%s no admitido como instrucción corregida"
-#: config/tc-ppc.c:3813
+#: config/tc-ppc.c:3812
#, c-format
msgid "assuming %s on symbol"
msgstr "asumiendo %s en símbolo"
-#: config/tc-ppc.c:3936
+#: config/tc-ppc.c:3935
msgid "unsupported relocation for DS offset field"
-msgstr "no se admite el tipo reubicado para el campo de desplazamiento DS"
+msgstr "no se admite el tipo de reubicación para el campo de desplazamiento DS"
-#: config/tc-ppc.c:3989
+#: config/tc-ppc.c:3988
#, c-format
msgid "syntax error; found `%c', expected `%c'"
msgstr "error de sintaxis; se encontró `%c', se esperaba `%c'"
-#: config/tc-ppc.c:3994
+#: config/tc-ppc.c:3993
#, c-format
msgid "syntax error; end of line, expected `%c'"
msgstr "error de sintaxis; fin de línea, se esperaba `%c'"
-#: config/tc-ppc.c:4059 config/tc-ppc.c:6863
+#: config/tc-ppc.c:4058 config/tc-ppc.c:6852
#, fuzzy, c-format
#| msgid "instruction address is not a multiple of 2"
msgid "instruction address is not a multiple of %d"
msgstr "la instrucción direccional no es un múltiplo de 2"
-#: config/tc-ppc.c:4180
+#: config/tc-ppc.c:4179
msgid "bad .section directive: want a,e,v,w,x,M,S,G,T in string"
msgstr "directiva .section incorrecta: se quiere en la cadena a,e,v,w,x,M,S,G,T"
-#: config/tc-ppc.c:4330
+#: config/tc-ppc.c:4329
msgid "missing size"
-msgstr "ausente el tamaño"
+msgstr "falta el tamaño"
-#: config/tc-ppc.c:4339
+#: config/tc-ppc.c:4338
msgid "negative size"
msgstr "tamaño negativo"
-#: config/tc-ppc.c:4366
+#: config/tc-ppc.c:4365
msgid "Unknown visibility field in .comm"
msgstr ""
-#: config/tc-ppc.c:4384
+#: config/tc-ppc.c:4383
msgid "missing real symbol name"
-msgstr "ausente el nombre del símbolo real"
+msgstr "falta el nombre del símbolo real"
-#: config/tc-ppc.c:4423
+#: config/tc-ppc.c:4422
msgid "attempt to redefine symbol"
msgstr "se intenta redefinir el símbolo"
-#: config/tc-ppc.c:4732
+#: config/tc-ppc.c:4730
#, c-format
msgid "no known dwarf XCOFF section for flag 0x%08x\n"
msgstr "no hay una sección XCOFF enana conocida para la opción 0x%08x\n"
-#: config/tc-ppc.c:4745
+#: config/tc-ppc.c:4743
#, c-format
msgid "label %s was not defined in this dwarf section"
msgstr "la etiqueta %s no se definió en esta sección enana"
-#: config/tc-ppc.c:4859
+#: config/tc-ppc.c:4857
msgid "the XCOFF file format does not support arbitrary sections"
msgstr "el formato del fichero XCOFF no admite secciones arbitrarias"
-#: config/tc-ppc.c:4897
+#: config/tc-ppc.c:4895
msgid "Unknown visibility field in .extern"
msgstr ""
-#: config/tc-ppc.c:4934
+#: config/tc-ppc.c:4932
msgid "Unknown visibility field in .globl"
msgstr ""
-#: config/tc-ppc.c:4971
+#: config/tc-ppc.c:4969
msgid "Unknown visibility field in .weak"
msgstr ""
-#: config/tc-ppc.c:5022
+#: config/tc-ppc.c:5020
msgid ".ref outside .csect"
msgstr ".ref fuera de .csect"
-#: config/tc-ppc.c:5043 config/tc-ppc.c:5303
+#: config/tc-ppc.c:5041 config/tc-ppc.c:5301
msgid "missing symbol name"
-msgstr "ausente el nombre del símbolo"
+msgstr "falta el nombre del símbolo"
-#: config/tc-ppc.c:5073
+#: config/tc-ppc.c:5071
msgid "missing rename string"
-msgstr "ausente la cadena para renombrar"
+msgstr "falta la cadena para renombrar"
-#: config/tc-ppc.c:5103 config/tc-ppc.c:5705
+#: config/tc-ppc.c:5101 config/tc-ppc.c:5702
msgid "missing value"
-msgstr "ausente el valor"
+msgstr "falta el valor"
-#: config/tc-ppc.c:5121
+#: config/tc-ppc.c:5119
msgid "illegal .stabx expression; zero assumed"
msgstr "expresión .stabx ilegal; se asume cero"
-#: config/tc-ppc.c:5153
+#: config/tc-ppc.c:5151
msgid "missing class"
-msgstr "ausente la clase"
+msgstr "falta la clase"
-#: config/tc-ppc.c:5162
+#: config/tc-ppc.c:5160
msgid "missing type"
-msgstr "ausente el tipo"
+msgstr "falta el tipo"
-#: config/tc-ppc.c:5189
+#: config/tc-ppc.c:5187
msgid ".stabx of storage class stsym must be within .bs/.es"
msgstr ".stabx de la clase de almacenamiento stsym debe estar entre .bs/.es"
-#: config/tc-ppc.c:5493
+#: config/tc-ppc.c:5490
msgid "nested .bs blocks"
msgstr "bloques .bs anidados"
-#: config/tc-ppc.c:5524
+#: config/tc-ppc.c:5521
msgid ".es without preceding .bs"
msgstr ".es sin un .bs precedente"
-#: config/tc-ppc.c:5697
+#: config/tc-ppc.c:5694
msgid "non-constant byte count"
msgstr "contador no constante de byte"
-#: config/tc-ppc.c:5772
+#: config/tc-ppc.c:5769
msgid ".tc not in .toc section"
msgstr ".tc no está en la sección .toc"
-#: config/tc-ppc.c:5790
+#: config/tc-ppc.c:5787
msgid ".tc with no label"
msgstr ".tc sin etiqueta"
-#: config/tc-ppc.c:5818
+#: config/tc-ppc.c:5815
#, fuzzy, c-format
#| msgid "this DS form not yet supported"
msgid ".tc with storage class %d not yet supported"
msgstr "aún no se admite esta forma DS"
-#: config/tc-ppc.c:5887 config/tc-s390.c:2187
+#: config/tc-ppc.c:5884 config/tc-s390.c:2196
msgid ".machine stack overflow"
msgstr "desbordamiento de pila en .machine"
-#: config/tc-ppc.c:5894 config/tc-s390.c:2198
+#: config/tc-ppc.c:5891 config/tc-s390.c:2207
msgid ".machine stack underflow"
msgstr "desbordamiento por debajo de la pila en .machine"
-#: config/tc-ppc.c:5936 config/tc-s390.c:2210
+#: config/tc-ppc.c:5933 config/tc-s390.c:2219
#, c-format
msgid "invalid machine `%s'"
msgstr "máquina no válida «%s»"
-#: config/tc-ppc.c:5981
+#: config/tc-ppc.c:5978
msgid "bad symbol suffix"
msgstr "sufijo de símbolo incorrecto"
-#: config/tc-ppc.c:6080
+#: config/tc-ppc.c:6077
msgid "unrecognized symbol suffix"
msgstr "símbolo sufijo no reconocido"
-#: config/tc-ppc.c:6168
+#: config/tc-ppc.c:6161
msgid ".ef with no preceding .function"
msgstr ".ef sin un .function precedente"
-#: config/tc-ppc.c:6307
+#: config/tc-ppc.c:6296
#, c-format
msgid "warning: symbol %s has no csect"
msgstr "aviso: el símbolo %s no tiene csect"
-#: config/tc-ppc.c:6639
+#: config/tc-ppc.c:6628
msgid "symbol in .toc does not match any .tc"
msgstr "el símbolo en .toc no coincide con ningún .tc"
-#: config/tc-ppc.c:7395
+#: config/tc-ppc.c:7371
#, c-format
msgid "%s unsupported as instruction fixup"
msgstr "%s no admitido como instrucción corregida"
-#: config/tc-ppc.c:7494
+#: config/tc-ppc.c:7470
#, c-format
msgid "unsupported relocation against %s"
msgstr "no se admite la reubicación contra %s"
-#: config/tc-ppc.c:7656
+#: config/tc-ppc.c:7632
#, c-format
msgid "R_TLSML relocation doesn't target a TOC entry named \"_$TLSML\": %s"
msgstr ""
-#: config/tc-ppc.c:7676
+#: config/tc-ppc.c:7652
#, c-format
msgid "Gas failure, reloc value %d\n"
msgstr "Fallo de gas, valor reubicado %d\n"
@@ -16683,7 +16504,7 @@ msgstr "llama dirección destino 0x%08x fuera del rango 0x%08x a 0x%08x"
#: config/tc-pru.c:603
#, c-format
msgid "quick branch offset %d out of range %d to %d"
-msgstr "ramificación rápida de desplazamiento%d fuera de rango %d a %d"
+msgstr "bifurcación rápida de desplazamiento%d fuera de rango %d a %d"
#: config/tc-pru.c:608
#, c-format
@@ -16711,7 +16532,7 @@ msgstr "sobredesbordamiento dentro de argumento inmediato"
#: config/tc-pru.c:668
msgid "cannot create 64-bit relocation"
-msgstr "no puede crear datos reubicantes de 64-bit"
+msgstr "no puede crear datos reubicantes de 64 bits"
#: config/tc-pru.c:697
msgid "unexpected PC relative expression"
@@ -16765,50 +16586,50 @@ msgstr "no se puede utilizar registro %s parcial para direccionamiento"
msgid "value %lu is too large for a byte operand"
msgstr "valor demasiado grande para un campo de 2 bytes"
-#: config/tc-pru.c:1115
+#: config/tc-pru.c:1114
#, c-format
msgid "loop count constant %ld is out of range [1..%d]"
msgstr "conteo constante de bucle %ld está fuera del rango [1..%d]"
-#: config/tc-pru.c:1215 config/tc-pru.c:1241
+#: config/tc-pru.c:1214 config/tc-pru.c:1240
#, c-format
msgid "byte count constant %ld is out of range [1..%d]"
msgstr "conteo byte constante %ld está fuera del rango [1..%d]"
-#: config/tc-pru.c:1222 config/tc-pru.c:1248
+#: config/tc-pru.c:1221 config/tc-pru.c:1247
msgid "only r0 can be used as byte count register"
msgstr "sóla r0 pueden ser utilizado como registro de conteo de byte"
-#: config/tc-pru.c:1224 config/tc-pru.c:1250
+#: config/tc-pru.c:1223 config/tc-pru.c:1249
msgid "only r0.bX byte fields of r0 can be used as byte count"
msgstr ""
-#: config/tc-pru.c:1263
+#: config/tc-pru.c:1262
#, c-format
msgid "invalid constant table offset %ld"
msgstr "desplazamiento distribuido contante inválido %ld"
-#: config/tc-pru.c:1274
+#: config/tc-pru.c:1273
#, c-format
msgid "invalid WakeOnStatus %ld"
msgstr "invalida WakeOnStatus %ld"
-#: config/tc-pru.c:1285
+#: config/tc-pru.c:1284
#, c-format
msgid "invalid XFR WideBus Address %ld"
msgstr "invalida Dirección XFR WideBus %ld"
-#: config/tc-pru.c:1318 config/tc-pru.c:1343 config/tc-pru.c:1363
+#: config/tc-pru.c:1317 config/tc-pru.c:1342 config/tc-pru.c:1362
#, c-format
msgid "badly formed expression near %s"
msgstr "expresión incorrectamente formada cercana a %s"
-#: config/tc-pru.c:1389
+#: config/tc-pru.c:1388
#, c-format
msgid "expecting %c near %s"
msgstr "esperando %c cerca de %s"
-#: config/tc-pru.c:1553
+#: config/tc-pru.c:1552
#, c-format
msgid ""
"PRU options:\n"
@@ -16817,353 +16638,419 @@ msgid ""
msgstr ""
#. Unrecognised instruction - error.
-#: config/tc-pru.c:1724
+#: config/tc-pru.c:1722
#, c-format
msgid "unrecognised instruction %s"
msgstr "la instrucción %s no reconocida"
-#: config/tc-pru.c:1781
+#: config/tc-pru.c:1779
#, c-format
msgid "can't represent relocation type %s"
msgstr "no puede representar tipo %s reubicable"
-#: config/tc-pru.c:1827
+#: config/tc-pru.c:1825
#, c-format
msgid "Label \"%s\" matches a CPU register name"
msgstr "Etiqueta «%s» coincide un nombre de registro de CPU"
-#: config/tc-riscv.c:237
+#: config/tc-riscv.c:239
#, c-format
msgid "unknown default privileged spec `%s' set by -mpriv-spec or --with-priv-spec"
msgstr ""
#. Still can not find the privileged spec class.
-#: config/tc-riscv.c:259
+#: config/tc-riscv.c:261
#, c-format
msgid "unknown default privileged spec `%d.%d.%d' set by privileged elf attributes"
msgstr ""
-#: config/tc-riscv.c:357
+#: config/tc-riscv.c:347
msgid "the architecture string of -march and elf architecture attributes cannot be empty"
msgstr ""
-#: config/tc-riscv.c:920 config/tc-riscv.c:981 config/tc-riscv.c:1807
+#: config/tc-riscv.c:913 config/tc-riscv.c:974 config/tc-riscv.c:1820
#, fuzzy, c-format
#| msgid "internal: unhandled label %s"
msgid "internal: duplicate %s"
msgstr "interno: etiqueta %s sin manipular"
-#: config/tc-riscv.c:1167
+#: config/tc-riscv.c:1166
#, fuzzy, c-format
#| msgid "internal: bad RISC-V opcode (mask error): %s %s"
msgid "internal: bad RISC-V CSR class (0x%x)"
msgstr "interno: código de operación RISC-V incorrecto (error de máscara): %s %s"
-#: config/tc-riscv.c:1173
+#: config/tc-riscv.c:1172
#, c-format
msgid "invalid CSR `%s', needs rv32i extension"
msgstr ""
-#: config/tc-riscv.c:1175
+#: config/tc-riscv.c:1174
#, c-format
msgid "invalid CSR `%s', needs `h' extension"
msgstr ""
-#: config/tc-riscv.c:1179
+#: config/tc-riscv.c:1178
#, c-format
msgid "invalid CSR `%s', needs `%s' extension"
msgstr ""
-#: config/tc-riscv.c:1202
+#: config/tc-riscv.c:1201
#, c-format
msgid "invalid CSR `%s' for the privileged spec `%s'"
msgstr ""
-#: config/tc-riscv.c:1452
+#: config/tc-riscv.c:1450
msgid "cannot find `}' for cm.push/cm.pop"
msgstr ""
-#: config/tc-riscv.c:1488
+#: config/tc-riscv.c:1486
#, c-format
msgid "internal: bad RISC-V opcode (mask error): %s %s"
msgstr "interno: código de operación RISC-V incorrecto (error de máscara): %s %s"
-#: config/tc-riscv.c:1767
+#: config/tc-riscv.c:1780
#, fuzzy, c-format
#| msgid "internal: bad RISC-V opcode (unknown operand type `%c'): %s %s"
msgid "internal: bad RISC-V opcode (unknown operand type `%s'): %s %s"
msgstr "interno: código de operación RISC-V incorrecto (tipo desconocido de operando `%c'): %s %s"
-#: config/tc-riscv.c:1776
+#: config/tc-riscv.c:1789
#, fuzzy, c-format
#| msgid "internal: bad RISC-V opcode (bits 0x%lx undefined): %s %s"
msgid "internal: bad RISC-V opcode (bits %#llx undefined or invalid): %s %s"
msgstr "interno: código de operación RISC-V incorrecto (varios bit 0x%lx indefinidos): %s %s"
-#: config/tc-riscv.c:1818
+#: config/tc-riscv.c:1831
#, fuzzy
#| msgid "Broken assembler. No assembly attempted."
msgid "internal: broken assembler. No assembly attempted"
msgstr "Ensamblador descompuesto. No se intentó ensamblar."
-#: config/tc-riscv.c:1993
+#: config/tc-riscv.c:2004
#, fuzzy, c-format
#| msgid "Unsupported RISC-V relocation number %d"
msgid "internal: unsupported RISC-V relocation number %d"
msgstr "No admitido número de reubicación RISC-V %d"
-#: config/tc-riscv.c:2109
+#: config/tc-riscv.c:2120
#, fuzzy, c-format
#| msgid "internal error: invalid macro"
msgid "internal: invalid macro argument `%s'"
msgstr "error interno: macro inválido"
-#: config/tc-riscv.c:2159 config/tc-riscv.c:2237
+#: config/tc-riscv.c:2170 config/tc-riscv.c:2248
msgid "unsupported large constant"
msgstr "no se admite la constante large"
-#: config/tc-riscv.c:2161
+#: config/tc-riscv.c:2172
#, fuzzy, c-format
#| msgid "unknown DSP `%s'"
msgid "unknown CSR `%s'"
msgstr "desconoce DSP `%s'"
-#: config/tc-riscv.c:2164
+#: config/tc-riscv.c:2175
#, fuzzy, c-format
#| msgid "Instruction %s requires absolute expression"
msgid "instruction %s requires absolute expression"
msgstr "La instrucción %s requiere una expresión absoluta"
-#: config/tc-riscv.c:2332
+#: config/tc-riscv.c:2343
msgid "must provide temp if destination overlaps mask"
msgstr ""
-#: config/tc-riscv.c:2425
+#: config/tc-riscv.c:2436
#, fuzzy, c-format
#| msgid "Macro %s not implemented"
msgid "internal: macro %s not implemented"
msgstr "Macro %s no implementada"
-#: config/tc-riscv.c:2627 config/tc-riscv.c:2687
+#: config/tc-riscv.c:2638 config/tc-riscv.c:2698
#, fuzzy
#| msgid "multiple movx specifications"
msgid "multiple vsew constants"
msgstr "especificaciones movx múltiples"
-#: config/tc-riscv.c:2635
+#: config/tc-riscv.c:2646
#, fuzzy
#| msgid "invalid constant"
msgid "multiple vlmul constants"
msgstr "constante no válida"
-#: config/tc-riscv.c:2643
+#: config/tc-riscv.c:2654
#, fuzzy
#| msgid "invalid constant"
msgid "multiple vta constants"
msgstr "constante no válida"
-#: config/tc-riscv.c:2651
+#: config/tc-riscv.c:2662
#, fuzzy
#| msgid "invalid constant"
msgid "multiple vma constants"
msgstr "constante no válida"
-#: config/tc-riscv.c:2697
+#: config/tc-riscv.c:2708
#, fuzzy
#| msgid "shift must be constant"
msgid "multiple vlen constants"
msgstr "el desplazamiento debe ser constante"
-#: config/tc-riscv.c:2706
+#: config/tc-riscv.c:2717
#, fuzzy
#| msgid "multiple predicates on same line"
msgid "multiple vediv constants"
msgstr "predicados múltiples en la misma línea"
#. Reset error message of the previous round.
-#: config/tc-riscv.c:2872
+#: config/tc-riscv.c:2883
msgid "illegal operands"
msgstr "operandos ilegales"
-#: config/tc-riscv.c:2923
+#: config/tc-riscv.c:2935
#, c-format
msgid "read-only CSR is written `%s'"
msgstr ""
-#: config/tc-riscv.c:2933
+#: config/tc-riscv.c:2945
#, fuzzy
#| msgid "illegal opcode %s for mcu %s"
msgid "illegal opcode for zve32x"
msgstr "código de operación %s ilegal para el mcu %s"
-#: config/tc-riscv.c:3185
+#: config/tc-riscv.c:3197
msgid "bad value for compressed funct6 field, value must be 0...63"
msgstr ""
-#: config/tc-riscv.c:3200
+#: config/tc-riscv.c:3212
msgid "bad value for compressed funct4 field, value must be 0...15"
msgstr ""
-#: config/tc-riscv.c:3215
+#: config/tc-riscv.c:3227
msgid "bad value for compressed funct3 field, value must be 0...7"
msgstr ""
-#: config/tc-riscv.c:3230
+#: config/tc-riscv.c:3242
msgid "bad value for compressed funct2 field, value must be 0...3"
msgstr ""
-#: config/tc-riscv.c:3323
+#: config/tc-riscv.c:3335
msgid "bad value for vsetivli immediate field, value must be 0..1023"
msgstr ""
-#: config/tc-riscv.c:3335
+#: config/tc-riscv.c:3347
msgid "bad value for vsetvli immediate field, value must be 0..2047"
msgstr ""
-#: config/tc-riscv.c:3348
+#: config/tc-riscv.c:3360
msgid "bad value for vector immediate field, value must be -16...15"
msgstr ""
-#: config/tc-riscv.c:3360
+#: config/tc-riscv.c:3372
msgid "bad value for vector immediate field, value must be 0...31"
msgstr ""
-#: config/tc-riscv.c:3372
+#: config/tc-riscv.c:3384
msgid "bad value for vector immediate field, value must be -15...16"
msgstr ""
-#: config/tc-riscv.c:3384
+#: config/tc-riscv.c:3396
msgid "bad value for vector immediate field, value must be 0...63"
msgstr ""
-#: config/tc-riscv.c:3447 config/tc-riscv.c:3458
+#: config/tc-riscv.c:3459 config/tc-riscv.c:3470
#, fuzzy, c-format
#| msgid "Improper shift amount (%lu)"
msgid "improper shift amount (%<PRIu64>)"
msgstr "Cantidad de desplazamiento impropia (%lu)"
-#: config/tc-riscv.c:3469
+#: config/tc-riscv.c:3481
#, fuzzy, c-format
#| msgid "Improper CSRxI immediate (%lu)"
msgid "improper CSRxI immediate (%<PRIu64>)"
msgstr "Inmediato CSRxI impropio (%lu)"
-#: config/tc-riscv.c:3486
+#: config/tc-riscv.c:3498
#, fuzzy, c-format
#| msgid "Improper CSR address (%lu)"
msgid "improper CSR address (%<PRIu64>)"
msgstr "Dirección CSR impropia (%lu)"
-#: config/tc-riscv.c:3666
+#: config/tc-riscv.c:3678
msgid "lui expression not in range 0..1048575"
msgstr "expresión lui no en el rango 0..1048575"
-#: config/tc-riscv.c:3699
+#: config/tc-riscv.c:3711
msgid "bad value for opcode field, value must be 0...127 and lower 2 bits must be 0x3"
msgstr ""
-#: config/tc-riscv.c:3715
+#: config/tc-riscv.c:3727
msgid "bad value for opcode field, value must be 0...2"
msgstr ""
-#: config/tc-riscv.c:3738
+#: config/tc-riscv.c:3750
msgid "bad value for funct7 field, value must be 0...127"
msgstr ""
-#: config/tc-riscv.c:3753
+#: config/tc-riscv.c:3765
msgid "bad value for funct3 field, value must be 0...7"
msgstr ""
-#: config/tc-riscv.c:3768
+#: config/tc-riscv.c:3780
msgid "bad value for funct2 field, value must be 0...3"
msgstr ""
-#: config/tc-riscv.c:3786
+#: config/tc-riscv.c:3798
#, fuzzy, c-format
#| msgid "Improper CSRxI immediate (%lu)"
msgid "Improper bs immediate (%lu)"
msgstr "Inmediato CSRxI impropio (%lu)"
-#: config/tc-riscv.c:3797
+#: config/tc-riscv.c:3809
#, fuzzy, c-format
#| msgid "Improper CSRxI immediate (%lu)"
msgid "Improper rnum immediate (%lu)"
msgstr "Inmediato CSRxI impropio (%lu)"
-#: config/tc-riscv.c:3829
+#: config/tc-riscv.c:3841
#, fuzzy, c-format
#| msgid "Improper position (%lu)"
msgid "improper prefetch offset (%ld)"
msgstr "Posición impropia (%lu)"
-#: config/tc-riscv.c:3857
+#: config/tc-riscv.c:3869
msgid "bad fli constant operand, supported constants must be in decimal or hexadecimal floating-point literal form"
msgstr ""
-#: config/tc-riscv.c:3988
+#: config/tc-riscv.c:4000
msgid "bad value for th.vsetvli immediate field, value must be 0..2047"
msgstr ""
-#: config/tc-riscv.c:3999
+#: config/tc-riscv.c:4011
#, fuzzy, c-format
#| msgid "Unexpected token `%s'"
msgid "unexpected literal (%s)"
msgstr "Elemento `%s' inesperado"
-#: config/tc-riscv.c:4021
+#: config/tc-riscv.c:4033
#, fuzzy, c-format
#| msgid "Improper CSRxI immediate (%lu)"
msgid "improper immediate value (%<PRIu64>)"
msgstr "Inmediato CSRxI impropio (%lu)"
-#: config/tc-riscv.c:4027
+#: config/tc-riscv.c:4039
#, fuzzy, c-format
#| msgid "Improper CSRxI immediate (%lu)"
msgid "improper immediate value (%<PRIi64>)"
msgstr "Inmediato CSRxI impropio (%lu)"
-#: config/tc-riscv.c:4142
+#: config/tc-riscv.c:4154
#, c-format
msgid "bad value for <bit-%s-%s> field, value must be 0...%d"
msgstr ""
-#: config/tc-riscv.c:4188
+#: config/tc-riscv.c:4200
+#, fuzzy, c-format
+#| msgid "Improper shift amount (%lu)"
+msgid "Improper hint amount (%lu)"
+msgstr "Cantidad de desplazamiento impropia (%lu)"
+
+#: config/tc-riscv.c:4211
+#, fuzzy, c-format
+#| msgid "Improper CSRxI immediate (%lu)"
+msgid "Improper immediate amount (%lu)"
+msgstr "Inmediato CSRxI impropio (%lu)"
+
+#: config/tc-riscv.c:4223
+#, fuzzy, c-format
+#| msgid "Improper shift amount (%lu)"
+msgid "Improper LDP offset amount (%lu)"
+msgstr "Cantidad de desplazamiento impropia (%lu)"
+
+#: config/tc-riscv.c:4236
+#, fuzzy, c-format
+#| msgid "Improper shift amount (%lu)"
+msgid "Improper LWP offset amount (%lu)"
+msgstr "Cantidad de desplazamiento impropia (%lu)"
+
+#: config/tc-riscv.c:4249
+#, fuzzy, c-format
+#| msgid "Improper shift amount (%lu)"
+msgid "Improper SDP offset amount (%lu)"
+msgstr "Cantidad de desplazamiento impropia (%lu)"
+
+#: config/tc-riscv.c:4264
+#, fuzzy, c-format
+#| msgid "Improper shift amount (%lu)"
+msgid "Improper SWP offset amount (%lu)"
+msgstr "Cantidad de desplazamiento impropia (%lu)"
+
+#: config/tc-riscv.c:4286
#, fuzzy, c-format
#| msgid "internal: unknown operand type: %s %s"
msgid "internal: unknown argument type `%s'"
msgstr "interno: tipo operando desconocido: %s %s"
-#: config/tc-riscv.c:4240
+#: config/tc-riscv.c:4338
#, fuzzy
#| msgid "alignment must be constant"
msgid "values must be constant"
msgstr "el alineamiento debe ser constante"
-#: config/tc-riscv.c:4247
+#: config/tc-riscv.c:4345
#, fuzzy
#| msgid "unrecognized flag"
msgid "unrecognized values"
msgstr "marca no reconocida"
-#: config/tc-riscv.c:4255 config/tc-riscv.c:4266 config/tc-riscv.c:4280
+#: config/tc-riscv.c:4353 config/tc-riscv.c:4364 config/tc-riscv.c:4378
#, fuzzy
#| msgid "Internal Error: bad instruction length"
msgid "value conflicts with instruction length"
msgstr "Error interno: longitud incorrecta de instrucción"
-#: config/tc-riscv.c:4820
+#: config/tc-riscv.c:4856
+#, fuzzy, c-format
+#| msgid "invalid constant table offset %ld"
+msgid "invalid J-type offset (%+lld)"
+msgstr "desplazamiento distribuido contante inválido %ld"
+
+#: config/tc-riscv.c:4874
+#, fuzzy, c-format
+#| msgid "invalid constant table offset %ld"
+msgid "invalid B-type offset (%+lld)"
+msgstr "desplazamiento distribuido contante inválido %ld"
+
+#: config/tc-riscv.c:4892
+#, fuzzy, c-format
+#| msgid "invalid constant table offset %ld"
+msgid "invalid CB-type offset (%+lld)"
+msgstr "desplazamiento distribuido contante inválido %ld"
+
+#: config/tc-riscv.c:4910
+#, fuzzy, c-format
+#| msgid "invalid constant table offset %ld"
+msgid "invalid CJ-type offset (%+lld)"
+msgstr "desplazamiento distribuido contante inválido %ld"
+
+#: config/tc-riscv.c:4942
#, fuzzy
#| msgid "too many operands"
msgid "too many pcrel_hi"
msgstr "demasiados operandos"
-#: config/tc-riscv.c:4866
+#: config/tc-riscv.c:4952
+#, fuzzy, c-format
+#| msgid "invalid constant table offset %ld"
+msgid "invalid pcrel_hi offset (%+lld)"
+msgstr "desplazamiento distribuido contante inválido %ld"
+
+#: config/tc-riscv.c:4995
#, fuzzy, c-format
#| msgid "internal error: bad relocation #%d"
msgid "internal: bad relocation #%d"
msgstr "error interno: reubicación incorrecta nº%d"
-#: config/tc-riscv.c:5369
+#: config/tc-riscv.c:5500
#, c-format
msgid ""
"RISC-V options:\n"
@@ -17171,7 +17058,7 @@ msgid ""
" -fno-pic don't generate position-independent code (default)\n"
" -march=ISA set the RISC-V architecture\n"
" -misa-spec=ISAspec set the RISC-V ISA spec (2.2, 20190608, 20191213)\n"
-" -mpriv-spec=PRIVspec set the RISC-V privilege spec (1.10, 1.11, 1.12)\n"
+" -mpriv-spec=PRIVspec set the RISC-V privilege spec (1.10, 1.11, 1.12, 1.13)\n"
" -mabi=ABI set the RISC-V ABI\n"
" -mrelax enable relax (default)\n"
" -mno-relax disable relax\n"
@@ -17183,59 +17070,59 @@ msgid ""
" -mlittle-endian assemble for little-endian\n"
msgstr ""
-#: config/tc-riscv.c:5414
+#: config/tc-riscv.c:5545
#, c-format
msgid "unknown register `%s'"
msgstr "el registro desconocido «%s»"
-#: config/tc-riscv.c:5449
+#: config/tc-riscv.c:5581
#, fuzzy
#| msgid "non-constant .%cleb128 is not supported"
msgid "non-constant .sleb128 is not supported"
msgstr "no constante. %cleb128 no está apoyado"
-#: config/tc-riscv.c:5451
+#: config/tc-riscv.c:5583
msgid ".uleb128 only supports constant or subtract expressions"
msgstr ""
-#: config/tc-riscv.c:5553
+#: config/tc-riscv.c:5687
#, fuzzy, c-format
#| msgid "internal: bad RISC-V opcode (mask error): %s %s"
msgid "internal: bad RISC-V privileged spec (%s)"
msgstr "interno: código de operación RISC-V incorrecto (error de máscara): %s %s"
-#: config/tc-riscv.c:5706
+#: config/tc-riscv.c:5840
#, fuzzy
#| msgid "\".option\" directive must appear before any instructions"
msgid "architecture elf attributes must set before any instructions"
msgstr "la directiva \".option\" debe aparecer antes de cualquier instrucción"
-#: config/tc-riscv.c:5724
+#: config/tc-riscv.c:5858
#, fuzzy
#| msgid "\".option\" directive must appear before any instructions"
msgid "privileged elf attributes must set before any instructions"
msgstr "la directiva \".option\" debe aparecer antes de cualquier instrucción"
-#: config/tc-riscv.c:5746
+#: config/tc-riscv.c:5880
#, fuzzy
#| msgid "Missing symbol name in directive"
msgid "missing symbol name for .variant_cc directive"
-msgstr "Ausente nombre de símbolo en la directiva"
+msgstr "Falta nombre de símbolo en la directiva"
#: config/tc-rl78.c:213
msgid "16-bit relocation used in 8-bit operand"
-msgstr "la reubicación de 16-bit utilizada en operando de 8-bit"
+msgstr "la reubicación de 16-bit utilizada en operando de 8 bits"
#: config/tc-rl78.c:217
msgid "8-bit relocation used in 16-bit operand"
-msgstr "utilizaba reubicación de 8-bit en operando 16-bit"
+msgstr "utilizaba reubicación de 8-bit en operando 16 bits"
-#: config/tc-rl78.c:243 config/tc-rx.c:875
+#: config/tc-rl78.c:243 config/tc-rx.c:876
#, c-format
msgid "Value %d doesn't fit in unsigned %d-bit field"
msgstr "El valor %d no cabe en el campo de %d bit sin signo"
-#: config/tc-rl78.c:249 config/tc-rx.c:881
+#: config/tc-rl78.c:249 config/tc-rx.c:882
#, c-format
msgid "Value %d doesn't fit in signed %d-bit field"
msgstr "El valor %d no cabe en el campo de %d bit con signo"
@@ -17278,48 +17165,48 @@ msgstr " --m32bit-doubles [predet.]\n"
#: config/tc-rl78.c:374
#, c-format
msgid " --m64bit-doubles Source code uses 64-bit doubles\n"
-msgstr " --m64bit-doubles Código fuente utiliza dobles de 64-bit\n"
+msgstr " --m64bit-doubles Código fuente utiliza dobles de 64 bits\n"
-#: config/tc-rl78.c:439
+#: config/tc-rl78.c:437
#, c-format
msgid "%%%s() must be outermost term in expression"
msgstr "%%%s() debe ser término como mucho en expresión"
-#: config/tc-rl78.c:667 config/tc-rx.c:2242
+#: config/tc-rl78.c:665 config/tc-rx.c:2243
#, c-format
msgid "unsupported constant size %d\n"
msgstr "no se admite el tamaño de constante %d\n"
-#: config/tc-rl78.c:683
+#: config/tc-rl78.c:681
#, c-format
msgid "%%hi16/%%lo16 only applies to .short or .hword"
msgstr ""
-#: config/tc-rl78.c:693
+#: config/tc-rl78.c:691
#, c-format
msgid "%%hi8 only applies to .byte"
msgstr "%%hi8 solo aplica a .byte"
-#: config/tc-rl78.c:705 config/tc-rx.c:2249
+#: config/tc-rl78.c:703 config/tc-rx.c:2250
msgid "difference of two symbols only supported with .long, .short, or .byte"
msgstr "solo se admite la diferencia de dos símbolos con .long .short o .byte"
-#: config/tc-rl78.c:1226 config/tc-rx.c:2176
+#: config/tc-rl78.c:1224 config/tc-rx.c:2177
#, c-format
msgid "bad frag at %p : fix %ld addr %ld %ld \n"
msgstr "fragmento incorrecto en %p: fix %ld dir %ld %ld \n"
-#: config/tc-rl78.c:1442
+#: config/tc-rl78.c:1440
#, c-format
msgid "value of %ld too large for 8-bit branch"
-msgstr "valor %ld es demasiado grande para la ramificación de 8-bit relativa al PC"
+msgstr "valor %ld es demasiado grande para la bifurcación de 8 bits relativa al PC"
-#: config/tc-rl78.c:1453
+#: config/tc-rl78.c:1451
#, c-format
msgid "value of %ld too large for 16-bit branch"
-msgstr "valor de %ld es muy grande para ramificar 16-bit"
+msgstr "valor de %ld es muy grande para ramificar 16 bits"
-#: config/tc-rl78.c:1502 config/tc-rx.c:2441
+#: config/tc-rl78.c:1500 config/tc-rx.c:2442
#, c-format
msgid "Unknown reloc in md_apply_fix: %s"
msgstr "Reubicación desconocida en md_apply_fix: %s"
@@ -17327,7 +17214,7 @@ msgstr "Reubicación desconocida en md_apply_fix: %s"
#: config/tc-rx.c:194
#, c-format
msgid "unrecognised RX CPU type %s"
-msgstr "no reconocido el tipo de CPU RX %s"
+msgstr "no se reconoce el tipo de CPU RX %s"
#: config/tc-rx.c:209
#, c-format
@@ -17395,66 +17282,66 @@ msgstr " --mcpu=<rx100|rx200|rx600|rx610|rxv2>\n"
msgid " --mno-allow-string-insns"
msgstr " --mno-allow-string-insns"
-#: config/tc-rx.c:291
+#: config/tc-rx.c:292
msgid "no filename following .INCLUDE pseudo-op"
msgstr "no hay un nombre de fichero a continuación del pseudo-operador .INCLUDE"
-#: config/tc-rx.c:392
+#: config/tc-rx.c:393
#, c-format
msgid "unable to locate include file: %s"
msgstr "no se puede localizar el fichero de inclusión: %s"
-#: config/tc-rx.c:443
+#: config/tc-rx.c:444
#, c-format
msgid "unrecognised alignment value in .SECTION directive: %s"
-msgstr "no reconocido el valor de alineamiento en la directiva .SECTION: %s"
+msgstr "no se reconoce el valor de alineamiento en la directiva .SECTION: %s"
-#: config/tc-rx.c:460
+#: config/tc-rx.c:461
#, c-format
msgid "unknown parameter following .SECTION directive: %s"
msgstr "parámetro desconocido a continuación de la directiva .SECTION: %s"
-#: config/tc-rx.c:546
+#: config/tc-rx.c:547
msgid "expecting either ON or OFF after .list"
msgstr "se espera ON u OFF tras .list"
-#: config/tc-rx.c:582
+#: config/tc-rx.c:583
#, c-format
msgid "The \".%s\" pseudo-op is not implemented\n"
msgstr "No se admite el pseudo-operador \".%s\"\n"
-#: config/tc-rx.c:954 config/tc-rx.c:956
+#: config/tc-rx.c:955 config/tc-rx.c:957
#, fuzzy, c-format
#| msgid "value %ld out of range"
msgid "Value %d and %d out of range"
msgstr "valora %ld fuera de rango"
-#: config/tc-rx.c:1111
+#: config/tc-rx.c:1112
msgid "The .DEFINE pseudo-op is not implemented"
msgstr "No se admite el pseudo-operador .DEFINE"
-#: config/tc-rx.c:1113
+#: config/tc-rx.c:1114
msgid "The .MACRO pseudo-op is not implemented"
msgstr "No se admite el pseudo-operador .MACRO"
-#: config/tc-rx.c:1115
+#: config/tc-rx.c:1116
msgid "The .BTEQU pseudo-op is not implemented."
msgstr "El pseudo-op .BTEQU no está implementado."
-#: config/tc-rx.c:2107
+#: config/tc-rx.c:2108
msgid "invalid immediate size"
msgstr "tamaño inmediato inválido"
-#: config/tc-rx.c:2126
+#: config/tc-rx.c:2127
msgid "invalid immediate field position"
msgstr "posición de campo inmediato no válida"
-#: config/tc-rx.c:2293
+#: config/tc-rx.c:2294
#, c-format
msgid "jump not 3..10 bytes away (is %d)"
msgstr "omisión no está a 3..10 bytes (es %d)"
-#: config/tc-rx.c:2684
+#: config/tc-rx.c:2685
msgid "Use of an RX string instruction detected in a file being assembled without string instruction support"
msgstr ""
@@ -17492,149 +17379,149 @@ msgstr "esperando {"
msgid "An immediate value in a source operand is inappropriate"
msgstr ": Valor inmediato dentro de ‘cbcond’ está fuera de rango."
-#: config/tc-s12z.c:504 config/tc-s12z.c:605
+#: config/tc-s12z.c:504 config/tc-s12z.c:603
#, fuzzy
#| msgid "invalid operands for cross-unit op"
msgid "Bad operand for constant offset"
msgstr "operandos inválidos para op de unidades cruzadas"
-#: config/tc-s12z.c:532 config/tc-s12z.c:623
+#: config/tc-s12z.c:532 config/tc-s12z.c:621
#, fuzzy
#| msgid "invalid base register for register offset"
msgid "Invalid operand for register offset"
msgstr "el registro base inválido para el desplazamiento del registro"
-#: config/tc-s12z.c:638
+#: config/tc-s12z.c:636
#, fuzzy
#| msgid "Invalid register for post/pre increment."
msgid "Invalid register for postdecrement operation"
msgstr "Registro inválido para post/pre incremento."
-#: config/tc-s12z.c:674
+#: config/tc-s12z.c:672
#, fuzzy
#| msgid "Invalid register for post/pre increment."
msgid "Invalid register for preincrement operation"
msgstr "Registro inválido para post/pre incremento."
-#: config/tc-s12z.c:692
+#: config/tc-s12z.c:690
#, fuzzy
#| msgid "Invalid register for post/pre increment."
msgid "Invalid register for predecrement operation"
msgstr "Registro inválido para post/pre incremento."
-#: config/tc-s12z.c:811
+#: config/tc-s12z.c:809
#, fuzzy
#| msgid "Garbage at end of instruction: `%s'."
msgid "Garbage at end of instruction"
msgstr "Basura al final de la instrucción: «%s»."
-#: config/tc-s12z.c:940
+#: config/tc-s12z.c:938
#, fuzzy
#| msgid "Offset out of 16-bit range: %ld."
msgid "Offset is outside of 15 bit range"
-msgstr "Desplazamiento fuera del rango de 16-bit: %ld."
+msgstr "Desplazamiento fuera del rango de 16 bits: %ld."
-#: config/tc-s12z.c:1056
+#: config/tc-s12z.c:1054
msgid "Bad size"
msgstr ""
-#: config/tc-s12z.c:1101 config/tc-s12z.c:1161 config/tc-s12z.c:1223
-#: config/tc-s12z.c:1288
+#: config/tc-s12z.c:1099 config/tc-s12z.c:1159 config/tc-s12z.c:1221
+#: config/tc-s12z.c:1286
msgid "BAD MUL"
msgstr ""
-#: config/tc-s12z.c:1428
+#: config/tc-s12z.c:1426
#, fuzzy, c-format
#| msgid "Use of r%u as a source register is deprecated when r%u is the destination register."
msgid "Source register for %s is no larger than the destination register"
msgstr "Utilización de r%u como registro origen es obsoleto cuando r%u es el registro destino."
-#: config/tc-s12z.c:1431
+#: config/tc-s12z.c:1429
#, fuzzy
#| msgid "invalid source register list"
msgid "The destination and source registers are identical"
msgstr "invalida listado registrador origen"
-#: config/tc-s12z.c:1455
+#: config/tc-s12z.c:1453
#, fuzzy, c-format
#| msgid "operand value out of range for instruction"
msgid "Immediate value %ld is out of range for instruction %s"
msgstr "el valor de operando está fuera de rango para la instrucción"
-#: config/tc-s12z.c:1526
+#: config/tc-s12z.c:1524
#, fuzzy, c-format
#| msgid "Direct value of %ld is not suitable"
msgid "trap value %ld is not valid"
msgstr "El valor directo de %ld no es adecuado"
-#: config/tc-s12z.c:1966
+#: config/tc-s12z.c:1964
#, fuzzy
#| msgid "immediate value out of range, expected range [0, 16]"
msgid "Shift value should be in the range [0,31]"
msgstr "valor inmediato fuera de rango, se esperaba el rango [0, 16]"
-#: config/tc-s12z.c:2013
+#: config/tc-s12z.c:2011
#, fuzzy
#| msgid "invalid shift operator"
msgid "Bad shift mode"
msgstr "invalida operador desplazado"
-#: config/tc-s12z.c:2026
+#: config/tc-s12z.c:2024
#, fuzzy
#| msgid "Bad .mask directive"
msgid "Bad shift *direction"
msgstr "Directiva .mask incorrecta"
-#: config/tc-s12z.c:2284
+#: config/tc-s12z.c:2282
#, fuzzy, c-format
#| msgid "Immediate operand is not allowed for operand %d."
msgid "Immediate operand %ld is inappropriate for size of instruction"
msgstr "No se permite un operando inmediato para el operando %d."
-#: config/tc-s12z.c:2375 config/tc-s12z.c:2444 config/tc-s12z.c:2512
+#: config/tc-s12z.c:2373 config/tc-s12z.c:2442 config/tc-s12z.c:2510
#, fuzzy, c-format
#| msgid "Invalid register value %s"
msgid "Invalid width value for %s"
msgstr "Valor de registro %s inválido"
-#: config/tc-s12z.c:2388 config/tc-s12z.c:2457 config/tc-s12z.c:2525
+#: config/tc-s12z.c:2386 config/tc-s12z.c:2455 config/tc-s12z.c:2523
#, fuzzy, c-format
#| msgid "Invalid register value %s"
msgid "Invalid offset value for %s"
msgstr "Valor de registro %s inválido"
-#: config/tc-s12z.c:3822
+#: config/tc-s12z.c:3820
#, fuzzy, c-format
#| msgid "Invalid instruction %s"
msgid "Invalid instruction: \"%s\""
msgstr "Instrucción %s no válida"
-#: config/tc-s12z.c:3823
+#: config/tc-s12z.c:3821
#, fuzzy, c-format
#| msgid "invalid segment \"%s\""
msgid "First invalid token: \"%s\""
msgstr "segmento no válido «%s»"
-#: config/tc-s390.c:280 config/tc-sparc.c:310
+#: config/tc-s390.c:293 config/tc-sparc.c:310
msgid "Invalid default architecture, broken assembler."
msgstr "Arquitectura por defecto no válida, ensamblador descompuesto."
-#: config/tc-s390.c:426
+#: config/tc-s390.c:439
#, c-format
msgid "no such machine extension `%s'"
msgstr "no como extensión de máquina «%s»"
-#: config/tc-s390.c:437
+#: config/tc-s390.c:450
#, c-format
msgid "junk at end of machine string, first unrecognized character is `%c'"
msgstr "basura al final de la línea de máquina; el primer carácter inreconocible es «%c»"
-#: config/tc-s390.c:512 config/tc-sparc.c:489
+#: config/tc-s390.c:525 config/tc-sparc.c:489
#, c-format
msgid "invalid architecture -A%s"
msgstr "arquitectura no válida -A%s"
-#: config/tc-s390.c:535
+#: config/tc-s390.c:548
#, c-format
msgid ""
"S390 options:\n"
@@ -17655,7 +17542,7 @@ msgid ""
" do not warn about register name type mismatches\n"
msgstr ""
-#: config/tc-s390.c:553
+#: config/tc-s390.c:566
#, fuzzy, c-format
#| msgid ""
#| " -V print assembler version number\n"
@@ -17667,7 +17554,7 @@ msgstr ""
" -V muestra el número de versión del ensamblador\n"
" -Qy, -Qn se descarta\n"
-#: config/tc-s390.c:556
+#: config/tc-s390.c:569
#, c-format
msgid ""
"Deprecated S390 options:\n"
@@ -17675,274 +17562,280 @@ msgid ""
" -Aesame assemble for processor IBM zSeries 900 (z900/arch5)\n"
msgstr ""
-#: config/tc-s390.c:635
+#: config/tc-s390.c:648
#, fuzzy
#| msgid "The 64 bit file format is used without esame instructions."
msgid "The 64-bit file format is used without z/Architecture instructions."
-msgstr "Se usa el formato de fichero de 64 bit sin instrucciones esame."
+msgstr "Se usa el formato de fichero de 64 bits sin instrucciones esame."
#. xgettext:c-format.
-#: config/tc-s390.c:681
+#: config/tc-s390.c:694
#, fuzzy, c-format
#| msgid "operand out of range (%d is not between %d and %d)"
msgid "operand %d: operand out of range (%<PRId64> is not between %<PRId64> and %<PRId64>)"
msgstr "operando fuera de rango (%d no está entre %d y %d)"
#. xgettext:c-format.
-#: config/tc-s390.c:693
+#: config/tc-s390.c:706
#, fuzzy, c-format
#| msgid "operand out of range (%d is not between %d and %d)"
msgid "operand out of range (%<PRId64> is not between %<PRId64> and %<PRId64>)"
msgstr "operando fuera de rango (%d no está entre %d y %d)"
-#: config/tc-s390.c:947
+#: config/tc-s390.c:960
#, c-format
msgid "identifier+constant@%s means identifier@%s+constant"
msgstr "identificador+constante@%s significa identificador@%s+constante"
-#: config/tc-s390.c:1028
+#: config/tc-s390.c:1041
msgid "Can't handle O_big in s390_exp_compare"
msgstr "No se puede manipular O_big en s390_exp_compare"
-#: config/tc-s390.c:1110
+#: config/tc-s390.c:1123
msgid "Invalid suffix for literal pool entry"
msgstr "Sufijo inválido para la entrada de conjunto de literales"
-#: config/tc-s390.c:1167
+#: config/tc-s390.c:1180
msgid "Big number is too big"
msgstr "El número grande es demasiado grande"
-#: config/tc-s390.c:1316
+#: config/tc-s390.c:1329
msgid "relocation not applicable"
msgstr "la reubicación no es aplicable"
-#: config/tc-s390.c:1331
+#: config/tc-s390.c:1344
#, fuzzy
#| msgid "# bars register"
msgid "base register"
msgstr "# prohibe el registro"
-#: config/tc-s390.c:1333
+#: config/tc-s390.c:1346
#, fuzzy
#| msgid "Wrong displacement %d"
msgid "displacement"
msgstr "Desplazamiento incorrecto %d"
-#: config/tc-s390.c:1337
+#: config/tc-s390.c:1350
#, fuzzy
#| msgid "unsupported vector index register"
msgid "vector index register"
msgstr "no se admite el registro de índice de vector"
-#: config/tc-s390.c:1339
+#: config/tc-s390.c:1352
#, fuzzy
#| msgid "invalid register"
msgid "index register"
msgstr "invalida registro"
-#: config/tc-s390.c:1342
+#: config/tc-s390.c:1355
msgid "length"
msgstr ""
-#: config/tc-s390.c:1344 config/tc-s390.c:1539
+#: config/tc-s390.c:1357 config/tc-s390.c:1558
#, fuzzy
#| msgid "# bars register"
msgid "access register"
msgstr "# prohibe el registro"
-#: config/tc-s390.c:1346 config/tc-s390.c:1542
+#: config/tc-s390.c:1359 config/tc-s390.c:1561
#, fuzzy
#| msgid "expecting control register"
msgid "control register"
msgstr "esperando registro de control"
-#: config/tc-s390.c:1348 config/tc-s390.c:1547
+#: config/tc-s390.c:1361 config/tc-s390.c:1566
#, fuzzy
#| msgid "floating-point expression required"
msgid "floating-point register"
msgstr "requerida expresión de coma flotante"
-#: config/tc-s390.c:1350
+#: config/tc-s390.c:1363
#, fuzzy
#| msgid "invalid source register"
msgid "general-purpose register"
msgstr "invalida registro fuente"
-#: config/tc-s390.c:1352 config/tc-s390.c:1555
+#: config/tc-s390.c:1365 config/tc-s390.c:1574
#, fuzzy
#| msgid "vector register expected"
msgid "vector register"
msgstr "vector registrador esperado"
-#: config/tc-s390.c:1356
+#: config/tc-s390.c:1369
#, fuzzy
#| msgid "invalid number"
msgid "signed number"
msgstr "número inválido"
-#: config/tc-s390.c:1358
+#: config/tc-s390.c:1371
#, fuzzy
#| msgid "unassigned file number %ld"
msgid "unsigned number"
msgstr "número de fichero %ld sin asignar"
-#: config/tc-s390.c:1479
+#: config/tc-s390.c:1470
+#, fuzzy, c-format
+#| msgid "missing operand"
+msgid "operand %d: missing vector index register operand"
+msgstr "ausente operando"
+
+#: config/tc-s390.c:1497
#, fuzzy, c-format
#| msgid "illegal operand"
msgid "operand %d: illegal operand"
msgstr "operando ilegal"
-#: config/tc-s390.c:1484
+#: config/tc-s390.c:1502
#, fuzzy, c-format
#| msgid "missing operand"
msgid "operand %d: missing %s operand"
msgstr "ausente operando"
-#: config/tc-s390.c:1496 config/tc-s390.c:1660
+#: config/tc-s390.c:1514 config/tc-s390.c:1679
#, fuzzy, c-format
#| msgid ":operand has too many bits"
msgid "operand %d: too many fixups"
msgstr ":operand tiene demasiadas bits"
-#: config/tc-s390.c:1506
+#: config/tc-s390.c:1524
#, fuzzy, c-format
#| msgid "invalid length field specified"
msgid "operand %d: invalid length field specified"
msgstr "longitud especificada de campo no válida"
-#: config/tc-s390.c:1511
+#: config/tc-s390.c:1530
#, fuzzy, c-format
#| msgid "index register specified but zero"
msgid "operand %d: index register specified but zero"
msgstr "se especificó el registro índice pero es cero"
-#: config/tc-s390.c:1516
+#: config/tc-s390.c:1535
#, fuzzy, c-format
#| msgid "base register specified but zero"
msgid "operand %d: base register specified but zero"
msgstr "se especificó el registro base pero es cero"
-#: config/tc-s390.c:1521
+#: config/tc-s390.c:1540
#, fuzzy, c-format
#| msgid "odd numbered general purpose register specified as register pair"
msgid "operand %d: odd numbered general purpose register specified as register pair"
msgstr "se especificaron registros de propósito general numerados impares como par de registro"
-#: config/tc-s390.c:1529
+#: config/tc-s390.c:1548
#, fuzzy, c-format
#| msgid "invalid floating point register pair. Valid fp register pair operands are 0, 1, 4, 5, 8, 9, 12 or 13."
msgid "operand %d: invalid floating-point register (FPR) pair (valid FPR pair operands are 0, 1, 4, 5, 8, 9, 12 or 13)"
msgstr "par de registro de coma flotante inválido. Los operandos de pares de registro fp válidos son 0, 1, 4, 5, 8, 9, 12 o 13."
-#: config/tc-s390.c:1550
+#: config/tc-s390.c:1569
#, fuzzy
#| msgid "invalid register"
msgid "general register"
msgstr "invalida registro"
-#: config/tc-s390.c:1560
+#: config/tc-s390.c:1579
#, fuzzy, c-format
#| msgid "Operand %d to .%s must be a writable register"
msgid "operand %d: expected %s name as base register"
msgstr "Operandos %d de .%s debe ser un registro modificable"
-#: config/tc-s390.c:1563
+#: config/tc-s390.c:1582
#, fuzzy, c-format
#| msgid "Operand %d to .%s must be a writable register"
msgid "operand %d: expected %s name as index register"
msgstr "Operandos %d de .%s debe ser un registro modificable"
-#: config/tc-s390.c:1566
+#: config/tc-s390.c:1585
#, fuzzy, c-format
#| msgid "operand %d out of range"
msgid "operand %d: expected %s name"
msgstr "operando %d fuera de rango"
-#: config/tc-s390.c:1656
+#: config/tc-s390.c:1675
#, fuzzy, c-format
#| msgid "invalid operand suffix"
msgid "operand %d: invalid operand suffix"
msgstr "sufijo de operando inválido"
-#: config/tc-s390.c:1680
+#: config/tc-s390.c:1702
#, fuzzy, c-format
#| msgid "syntax error; missing '(' after displacement"
msgid "operand %d: syntax error; missing '(' after displacement"
msgstr "error de sintaxis; ausente '(' tras desubicación"
-#: config/tc-s390.c:1701 config/tc-s390.c:1752 config/tc-s390.c:1797
+#: config/tc-s390.c:1723 config/tc-s390.c:1774 config/tc-s390.c:1819
#, fuzzy, c-format
#| msgid "syntax error; expected ','"
msgid "operand %d: syntax error; expected ','"
msgstr "error de sintaxis; esperado ','"
-#: config/tc-s390.c:1732
+#: config/tc-s390.c:1754
#, fuzzy, c-format
#| msgid "syntax error; missing ')' after base register"
msgid "operand %d: syntax error; missing ')' after base register"
msgstr "error de sintaxis; ausente ')' tras registro base"
-#: config/tc-s390.c:1776
+#: config/tc-s390.c:1798
#, fuzzy, c-format
#| msgid "syntax error; ')' not allowed here"
msgid "operand %d: syntax error; '%c' not allowed here"
msgstr "errór de sintaxis; ')' no se permite aquí"
-#: config/tc-s390.c:1933
+#: config/tc-s390.c:1954
#, c-format
msgid "Opcode %s not available in this mode"
msgstr "El código de operación %s no está disponible en este modo"
-#: config/tc-s390.c:1978 config/tc-s390.c:2001 config/tc-s390.c:2014
+#: config/tc-s390.c:1999 config/tc-s390.c:2021 config/tc-s390.c:2034
msgid "Invalid .insn format\n"
msgstr "Formato .insn inválido\n"
-#: config/tc-s390.c:1986
+#: config/tc-s390.c:2006
#, c-format
msgid "Unrecognized opcode format: `%s'"
-msgstr "No reconocido el formato de código de operación: «%s»"
+msgstr "No se reconoce el formato de código de operación: «%s»"
-#: config/tc-s390.c:2017
+#: config/tc-s390.c:2037
msgid "second operand of .insn not a constant\n"
msgstr "el segundo operando de .insn no es una constante\n"
-#: config/tc-s390.c:2020
+#: config/tc-s390.c:2040
msgid "missing comma after insn constant\n"
msgstr "falta coma tras la constante insn\n"
-#: config/tc-s390.c:2259
+#: config/tc-s390.c:2269
msgid ".machinemode stack overflow"
msgstr "desbordamiento superior .machinemode de pila"
-#: config/tc-s390.c:2266
+#: config/tc-s390.c:2276
msgid ".machinemode stack underflow"
msgstr "desbordamiento inferior .machinemode de pila"
-#: config/tc-s390.c:2283
+#: config/tc-s390.c:2293
#, c-format
msgid "invalid machine mode `%s'"
msgstr "modo no válido de máquina «%s»"
-#: config/tc-s390.c:2605
+#: config/tc-s390.c:2616
msgid "unsupported relocation type"
-msgstr "no se admite el tipo reubicado"
+msgstr "no se admite el tipo de reubicación"
# El mensaje no se puede traducir correctamente. El segundo parámetro
# se sustituye por " against " sin traducir. cfuga
-#: config/tc-s390.c:2660
+#: config/tc-s390.c:2671
#, c-format
msgid "cannot emit PC relative %s relocation%s%s"
msgstr "no se puede emitir la reubicación %s relativa al PC%s%s"
-#: config/tc-s390.c:2799
+#: config/tc-s390.c:2810
#, c-format
msgid "Gas failure, reloc type %s\n"
msgstr "Fallo de gas, valor reubicado %s\n"
-#: config/tc-s390.c:2801
+#: config/tc-s390.c:2812
#, c-format
msgid "Gas failure, reloc type #%i\n"
-msgstr "Fallo de gas, tipo reubicado #%i\n"
+msgstr "Fallo de gas, tipo de reubicación #%i\n"
#: config/tc-score.c:256
msgid "div / mul are reserved instructions"
@@ -17977,7 +17870,7 @@ msgstr "Utilizando registero (r1) temp"
msgid "register expected, not '%.100s'"
msgstr "se esperaba un registro, no '%.100s'"
-#: config/tc-score.c:1144 config/tc-score.c:5483
+#: config/tc-score.c:1144 config/tc-score.c:5482
msgid "rd must be even number."
msgstr "rd debe ser un número par."
@@ -17986,9 +17879,9 @@ msgstr "rd debe ser un número par."
msgid "invalid constant: %d bit expression not in range %u..%u"
msgstr "constante no válida: la expresión de %d bit no está en el rango %u..%u"
-#: config/tc-score.c:1521 config/tc-score.c:1528 config/tc-score.c:2893
-#: config/tc-score.c:2898 config/tc-score.c:3163 config/tc-score.c:3168
-#: config/tc-score.c:3460
+#: config/tc-score.c:1521 config/tc-score.c:1528 config/tc-score.c:2890
+#: config/tc-score.c:2895 config/tc-score.c:3160 config/tc-score.c:3165
+#: config/tc-score.c:3457
#, c-format
msgid "invalid constant: %d bit expression not in range %d..%d"
msgstr "constante no válida: la expresión de %d bit no está en el rango %d..%d"
@@ -18006,293 +17899,298 @@ msgstr "Se usa register(r1) temporal"
msgid "low register (r0-r15) expected, not '%.100s'"
msgstr "se esperaba registro bajo (r0-r15), no '%.100s'"
-#: config/tc-score.c:2139 config/tc-score.c:3480 config/tc-score.c:3648
-#: config/tc-score.c:3693
+#: config/tc-score.c:2139 config/tc-score.c:3477 config/tc-score.c:3645
+#: config/tc-score.c:3690
#, c-format
msgid "missing ["
-msgstr "ausente ["
+msgstr "falta ["
-#: config/tc-score.c:2153 config/tc-score.c:3101 config/tc-score.c:3303
-#: config/tc-score.c:3319 config/tc-score.c:3390 config/tc-score.c:3445
-#: config/tc-score.c:3669 config/tc-score.c:3714 config/tc-score.c:3863
-#: config/tc-score.c:3917 config/tc-score.c:3963
+#: config/tc-score.c:2153 config/tc-score.c:3098 config/tc-score.c:3300
+#: config/tc-score.c:3316 config/tc-score.c:3387 config/tc-score.c:3442
+#: config/tc-score.c:3666 config/tc-score.c:3711 config/tc-score.c:3860
+#: config/tc-score.c:3914 config/tc-score.c:3960
#, c-format
msgid "missing ]"
-msgstr "ausente ]"
+msgstr "falta ]"
-#: config/tc-score.c:2343
+#: config/tc-score.c:2342
#, c-format
msgid "Fix data dependency: %s %s -- %s %s (insert %d nop!/%d)"
msgstr "Dependencia de datos fija: %s %s -- %s %s (insertar %d nop!/%d’)"
-#: config/tc-score.c:2362
+#: config/tc-score.c:2361
#, c-format
msgid "Fix data dependency: %s %s -- %s %s (insert 1 pflush/%d)"
msgstr "Dependencia de datos fija: %s %s -- %s %s (insertar 1 `pflush/%d')"
-#: config/tc-score.c:2378 config/tc-score.c:2385
+#: config/tc-score.c:2377 config/tc-score.c:2384
#, c-format
msgid "data dependency: %s %s -- %s %s (%d/%d bubble)"
msgstr "dependencia de datos: %s %s -- %s %s (%d/%d burbujea)"
-#: config/tc-score.c:2836
+#: config/tc-score.c:2833
msgid "address offset must be half word alignment"
msgstr "el desplazamiento direccional se debe alinear con half word"
-#: config/tc-score.c:2844
+#: config/tc-score.c:2841
msgid "address offset must be word alignment"
msgstr "el desplazamiento direccional se debe alinear con word"
-#: config/tc-score.c:2984 config/tc-score.c:3121
+#: config/tc-score.c:2981 config/tc-score.c:3118
msgid "register same as write-back base"
msgstr "el registro es el mismo que la base de retroescritura"
-#: config/tc-score.c:3091
+#: config/tc-score.c:3088
msgid "pre-indexed expression expected"
msgstr "se esperaba una expresión pre-indexada"
-#: config/tc-score.c:3420
+#: config/tc-score.c:3417
#, c-format
msgid "invalid register number: %d is not in [r0--r7]"
msgstr "número de registro inválido: %d no está en [r0--r7]"
-#: config/tc-score.c:3437
+#: config/tc-score.c:3434
msgid "comma is expected"
msgstr "se esperaba una coma"
-#: config/tc-score.c:3468
+#: config/tc-score.c:3465
#, c-format
msgid "invalid constant: %d is not word align integer"
msgstr "constante no válida: %d no es un entero alineado a word"
-#: config/tc-score.c:3507 config/tc-score.c:3550
+#: config/tc-score.c:3504 config/tc-score.c:3547
msgid "invalid constant: 32 bit expression not word align"
-msgstr "constante no válida: la expresión de 32 bit no está alineada a word"
+msgstr "constante no válida: la expresión de 32 bits no está alineada a word"
-#: config/tc-score.c:3516 config/tc-score.c:3559
+#: config/tc-score.c:3513 config/tc-score.c:3556
msgid "invalid constant: 32 bit expression not in range [0, 0xffffffff]"
-msgstr "constante no válida: la expresión de 32 bit no está en el rango [0, 0xffffffff]"
+msgstr "constante no válida: la expresión de 32 bits no está en el rango [0, 0xffffffff]"
-#: config/tc-score.c:3592
+#: config/tc-score.c:3589
msgid "invalid constant: 32 bit expression not in range [-0x80000000, 0x7fffffff]"
-msgstr "constante no válida: la expresión de 32 bit no está en el rango [-0x80000000, 0x7fffffff]"
+msgstr "constante no válida: la expresión de 32 bits no está en el rango [-0x80000000, 0x7fffffff]"
-#: config/tc-score.c:3781 config/tc-score.c:3809
+#: config/tc-score.c:3778 config/tc-score.c:3806
msgid "imm5 should >= 2"
msgstr "imm5 debe ser >= 2"
-#: config/tc-score.c:3786 config/tc-score.c:3815
+#: config/tc-score.c:3783 config/tc-score.c:3812
msgid "reg should <= 31"
msgstr "reg debe ser ≤ 31"
-#: config/tc-score.c:3857 config/tc-score.c:3908
+#: config/tc-score.c:3854 config/tc-score.c:3905
msgid "missing +"
-msgstr "ausente +"
+msgstr "falta +"
-#: config/tc-score.c:3901
+#: config/tc-score.c:3898
#, c-format
msgid "%s register same as write-back base"
msgstr "el registro %s es el mismo que la base de retroescritura"
-#: config/tc-score.c:3903
+#: config/tc-score.c:3900
msgid "destination"
msgstr "destino"
-#: config/tc-score.c:3903
+#: config/tc-score.c:3900
msgid "source"
msgstr "fuente"
-#: config/tc-score.c:4234 config/tc-score.c:4310 config/tc-score.c:4945
+#: config/tc-score.c:4231 config/tc-score.c:4307 config/tc-score.c:4944
msgid "expression error"
msgstr "error de expresión"
-#: config/tc-score.c:4316
+#: config/tc-score.c:4313
msgid "value not in range [-0xffffffff, 0xffffffff]"
msgstr "el valor no está en el rango [-0xffffffff, 0xffffffff]"
-#: config/tc-score.c:4344
+#: config/tc-score.c:4341
msgid "li rd label isn't correct instruction form"
msgstr "etiqueta li rd no es relleno instruccional correcto"
-#: config/tc-score.c:4511 config/tc-score.c:4665 config/tc-score.c:5196
-#: config/tc-score.c:5224
+#: config/tc-score.c:4508 config/tc-score.c:4662 config/tc-score.c:5195
+#: config/tc-score.c:5223
msgid "lacking label "
-msgstr "ausente la etiqueta "
+msgstr "falta la etiqueta "
-#: config/tc-score.c:4895
+#: config/tc-score.c:4894
msgid "s3_PIC code offset overflow (max 16 signed bits)"
msgstr "s3_PIC como código de desbordamiento de desplazamiento (máx 16 bits con signo)"
-#: config/tc-score.c:4951
+#: config/tc-score.c:4950
msgid "value not in range [0, 0x7fffffff]"
msgstr "el valor no está en el rango [0, 0x7fffffff]"
-#: config/tc-score.c:4956
+#: config/tc-score.c:4955
msgid "end on line error"
msgstr "error de final de línea"
-#: config/tc-score.c:5203
+#: config/tc-score.c:5202
msgid "invalid constant: 25 bit expression not in range [-16777216, 16777215]"
-msgstr "constante no válida: la expresión de 25 bit no está en el rango [-16777216, 16777215]"
+msgstr "constante no válida: la expresión de 25 bits no está en el rango [-16777216, 16777215]"
-#: config/tc-score.c:5230
+#: config/tc-score.c:5229
msgid "invalid constant: 20 bit expression not in range -2^19..2^19-1"
-msgstr "invalida constante: expresión de 20 bit no dentro del rango -2^19..2^19-1"
+msgstr "invalida constante: expresión de 20 bits no dentro del rango -2^19..2^19-1"
-#: config/tc-score.c:5263
+#: config/tc-score.c:5262
msgid "lacking label"
-msgstr "ausente la etiqueta"
+msgstr "falta la etiqueta"
-#: config/tc-score.c:5268
+#: config/tc-score.c:5267
msgid "invalid constant: 10 bit expression not in range [-2^9, 2^9-1]"
-msgstr "constante no válida: la expresión de 10 bit no está en el rango [-2^9, 2^9-1]"
+msgstr "constante no válida: la expresión de 10 bits no está en el rango [-2^9, 2^9-1]"
-#: config/tc-score.c:5363
+#: config/tc-score.c:5362
msgid "pce instruction error (16 bit || 16 bit)."
msgstr "error de instrucción pce (16 bit || 16 bit)."
-#: config/tc-score.c:5381 config/tc-score.c:5405 config/tc-score.c:5432
-#: config/tc-score.c:5461 config/tc-score.c:5510
+#: config/tc-score.c:5380 config/tc-score.c:5404 config/tc-score.c:5431
+#: config/tc-score.c:5460 config/tc-score.c:5509
msgid "score3d instruction."
msgstr "la instrucción score3d."
-#: config/tc-score.c:6000
+#: config/tc-score.c:5999
msgid "Unsupported use of .gpword"
msgstr "No se admite el uso de .gpword"
-#: config/tc-score.c:6096
+#: config/tc-score.c:6095
#, c-format
msgid "BSS length (%d) < 0 ignored"
msgstr "Longitud BSS (%d) <0 se descarta"
-#: config/tc-score.c:6110 read.c:2558
+#: config/tc-score.c:6109 read.c:2607
#, c-format
msgid "error setting flags for \".sbss\": %s"
msgstr "error al establecer marcas para \".sbss\": %s"
-#: config/tc-score.c:6124 config/tc-sparc.c:4164
+#: config/tc-score.c:6123 config/tc-sparc.c:4170
msgid "missing alignment"
msgstr "ausente la alineamiento"
-#: config/tc-score.c:6161
+#: config/tc-score.c:6160
#, c-format
msgid "alignment too large; %d assumed"
msgstr "alineamiento demasiado grande; se asume %d"
-#: config/tc-score.c:6166 read.c:2619
+#: config/tc-score.c:6165 read.c:2668
msgid "alignment negative; 0 assumed"
msgstr "alineamiento negativo; asumido 0"
#. Error routine.
-#: config/tc-score.c:6526 config/tc-score.c:6550
+#: config/tc-score.c:6524 config/tc-score.c:6548
msgid "size is not 4 or 6"
msgstr "el tamaño no es 4 o 6"
-#: config/tc-score.c:6609
+#: config/tc-score.c:6607
msgid "bad call to MD_ATOF()"
msgstr "llamada incorrecta a MD_ATOF()"
-#: config/tc-score.c:7108 config/tc-score.c:7174
+#: config/tc-score.c:7106 config/tc-score.c:7172
#, c-format
msgid " branch relocation truncate (0x%x) [-2^9 ~ 2^9-1]"
-msgstr " la reubicación de ramificación trunca (0x%x) [-2^9 ~ 2^9-1]"
+msgstr " la reubicación de bifurcación trunca (0x%x) [-2^9 ~ 2^9-1]"
-#: config/tc-score.c:7123 config/tc-score.c:7152 config/tc-score.c:7204
+#: config/tc-score.c:7121 config/tc-score.c:7150 config/tc-score.c:7202
#, c-format
msgid " branch relocation truncate (0x%x) [-2^19 ~ 2^19-1]"
-msgstr " la reubicación de ramificación trunca (0x%x) [-2^19 ~ 2^19-1]"
+msgstr " la reubicación de bifurcación trunca (0x%x) [-2^19 ~ 2^19-1]"
-#: config/tc-score.c:7229
+#: config/tc-score.c:7227
#, c-format
msgid " branch relocation truncate (0x%x) [-2^9 ~ 2^9-1]"
-msgstr " la reubicación de ramificación trunca (0x%x) [-2^9 ~ 2^9-1]"
+msgstr " la reubicación de bifurcación trunca (0x%x) [-2^9 ~ 2^9-1]"
-#: config/tc-score.c:7399
+#: config/tc-score.c:7397
#, c-format
msgid "cannot represent %s relocation in this object file format1"
msgstr "no se puede representar la reubicación %s en este fichero objeto format1"
-#: config/tc-score.c:7690
+#: config/tc-score.c:7624
+#, c-format
+msgid "unknown architecture `%s'\n"
+msgstr "arquitectura desconocida «%s» \n"
+
+#: config/tc-score.c:7688
#, c-format
msgid "Sunplus-v2-0-0-20060510\n"
msgstr "Sunplus-v2-0-0-20060510\n"
-#: config/tc-score.c:7710
+#: config/tc-score.c:7708
#, c-format
msgid " Score-specific assembler options:\n"
msgstr " Opciones de ensamblador específicas de Score:\n"
-#: config/tc-score.c:7712
+#: config/tc-score.c:7710
#, c-format
msgid " -EB\t\tassemble code for a big-endian cpu\n"
msgstr " -EB\t\tensambla código para un cpu big-endian\n"
-#: config/tc-score.c:7717
+#: config/tc-score.c:7715
#, c-format
msgid " -EL\t\tassemble code for a little-endian cpu\n"
msgstr " -EL\t\tensambla código para un cpu little-endian\n"
-#: config/tc-score.c:7721
+#: config/tc-score.c:7719
#, c-format
msgid " -FIXDD\t\tfix data dependencies\n"
msgstr " -FIXDD\t\t ajusta datos dependientes\n"
-#: config/tc-score.c:7723
+#: config/tc-score.c:7721
#, c-format
msgid " -NWARN\t\tdo not print warning message when fixing data dependencies\n"
msgstr " -NWARN\t\t ensambla código para que no avise sobre dependencia de datos fijo\n"
-#: config/tc-score.c:7725
+#: config/tc-score.c:7723
#, c-format
msgid " -SCORE5\t\tassemble code for target SCORE5\n"
msgstr " -SCORE5\t\t ensambla código para el destino SCORE5\n"
-#: config/tc-score.c:7727
+#: config/tc-score.c:7725
#, c-format
msgid " -SCORE5U\tassemble code for target SCORE5U\n"
msgstr " -SCORE5U\tensambla código para el objetivo SCORE5U\n"
-#: config/tc-score.c:7729
+#: config/tc-score.c:7727
#, c-format
msgid " -SCORE7\t\tassemble code for target SCORE7 [default]\n"
msgstr " -SCORE5\t\tensambla código para el objetivo SCORE7 [predet.]\n"
-#: config/tc-score.c:7731
+#: config/tc-score.c:7729
#, c-format
msgid " -SCORE3\t\tassemble code for target SCORE3\n"
msgstr " -SCORE3\t\t ensambla código para el objetivo SCORE5U\n"
-#: config/tc-score.c:7733
+#: config/tc-score.c:7731
#, c-format
msgid " -march=score7\tassemble code for target SCORE7 [default]\n"
msgstr " -march=score7\t ensambla código para el objetivo SCORE7 [predet.]\n"
-#: config/tc-score.c:7735
+#: config/tc-score.c:7733
#, c-format
msgid " -march=score3\tassemble code for target SCORE3\n"
msgstr " -march=score3\tensambla código para el objetivo SCORE3\n"
-#: config/tc-score.c:7737
+#: config/tc-score.c:7735
#, c-format
msgid " -USE_R1\t\tassemble code for no warning message when using temp register r1\n"
msgstr " -USE_R1\t\tensambla código para que no avise cuando se usa el registro temporal r1\n"
-#: config/tc-score.c:7739
+#: config/tc-score.c:7737
#, c-format
msgid " -KPIC\t\tgenerate PIC\n"
msgstr " -KPIC\t\tgenera PIC\n"
-#: config/tc-score.c:7741
+#: config/tc-score.c:7739
#, c-format
msgid " -O0\t\tdo not perform any optimizations\n"
msgstr " -O0\t\tno realizar ninguna optimización\n"
-#: config/tc-score.c:7743
+#: config/tc-score.c:7741
#, c-format
msgid " -G gpnum\tassemble code for setting gpsize, default is 8 bytes\n"
msgstr " -G gpnum\tensambla código para definir gpsize y por defecto es 8 byte\n"
-#: config/tc-score.c:7745
+#: config/tc-score.c:7743
#, c-format
msgid " -V \t\tSunplus release version\n"
msgstr " -V \t\tVersión Sunplus publicada\n"
@@ -18305,62 +18203,62 @@ msgstr "se encontró una directiva .big cuando se requirió una opción -big"
msgid "directive .little encountered when option -little required"
msgstr "se encontró una directiva .little cuando se requirió una opción -little"
-#: config/tc-sh.c:1025
+#: config/tc-sh.c:1026
msgid "illegal double indirection"
msgstr "doble indirección ilegal"
-#: config/tc-sh.c:1034
+#: config/tc-sh.c:1035
msgid "illegal register after @-"
msgstr "el registro ilegal tras @-"
-#: config/tc-sh.c:1050
+#: config/tc-sh.c:1051
msgid "must be @(r0,...)"
msgstr "debe ser @(r0,...)"
-#: config/tc-sh.c:1074
+#: config/tc-sh.c:1075
msgid "syntax error in @(r0,...)"
msgstr "error de sintaxis en @(r0,...)"
-#: config/tc-sh.c:1079
+#: config/tc-sh.c:1080
msgid "syntax error in @(r0...)"
msgstr "error de sintaxis en @(r0...)"
-#: config/tc-sh.c:1124
+#: config/tc-sh.c:1125
msgid "Deprecated syntax."
msgstr "Sintaxis obsoleta."
-#: config/tc-sh.c:1136 config/tc-sh.c:1141
+#: config/tc-sh.c:1137 config/tc-sh.c:1142
msgid "syntax error in @(disp,[Rn, gbr, pc])"
msgstr "error de sintaxis en @(disp,[Rn, gbr, pc])"
-#: config/tc-sh.c:1146
+#: config/tc-sh.c:1147
msgid "expecting )"
msgstr "se esperaba )"
-#: config/tc-sh.c:1154
+#: config/tc-sh.c:1155
msgid "illegal register after @"
msgstr "el registro ilegal tras @"
-#: config/tc-sh.c:1780
+#: config/tc-sh.c:1781
#, c-format
msgid "unhandled %d\n"
msgstr "%d sin manipular\n"
-#: config/tc-sh.c:1993
+#: config/tc-sh.c:1994
#, c-format
msgid "Invalid register: 'r%d'"
msgstr "Registro inválido: 'r%d'"
-#: config/tc-sh.c:2106
+#: config/tc-sh.c:2107
#, c-format
msgid "failed for %d\n"
msgstr "falló para %d\n"
-#: config/tc-sh.c:2112
+#: config/tc-sh.c:2113
msgid "misplaced PIC operand"
msgstr "operando PIC mal ubicado"
-#: config/tc-sh.c:2223 config/tc-sh.c:2596
+#: config/tc-sh.c:2223 config/tc-sh.c:2597
msgid "invalid operands for opcode"
msgstr "operandos inválidos para el código de operación"
@@ -18440,33 +18338,33 @@ msgstr "la condición no está seguida por una insn condicionalizable"
msgid "unrecognized characters at end of parallel processing insn"
msgstr "no se reconocen los caracteres al final de la insn de procesamiento paralelo"
-#: config/tc-sh.c:2535
+#: config/tc-sh.c:2536
msgid "opcode not valid for this cpu variant"
msgstr "el código de operación no es válido para esta variante de cpu"
-#: config/tc-sh.c:2566
+#: config/tc-sh.c:2567
msgid "Delayed branches not available on SH1"
-msgstr "Las ramificaciones postergadas no están disponibles en SH1"
+msgstr "Las bifurcaciones postergadas no están disponibles en SH1"
-#: config/tc-sh.c:2601
+#: config/tc-sh.c:2602
#, c-format
msgid "excess operands: '%s'"
msgstr "exceso de operandos: «%s»"
-#: config/tc-sh.c:2678
+#: config/tc-sh.c:2679
msgid ".uses pseudo-op seen when not relaxing"
msgstr "se vio el pseudo-operador .uses cuando no se estaba relajando"
-#: config/tc-sh.c:2684
+#: config/tc-sh.c:2685
msgid "bad .uses format"
msgstr "formato de .uses incorrecto"
-#: config/tc-sh.c:2802
+#: config/tc-sh.c:2803
#, c-format
msgid "Invalid argument to --isa option: %s"
msgstr "Argumento inválido para la opción --isa: %s"
-#: config/tc-sh.c:2826
+#: config/tc-sh.c:2827
#, c-format
msgid ""
"SH options:\n"
@@ -18495,70 +18393,70 @@ msgstr ""
" | dsp igual que '-dsp'\n"
" | fp"
-#: config/tc-sh.c:2851
+#: config/tc-sh.c:2852
#, c-format
msgid "--fdpic\t\t\tgenerate an FDPIC object file\n"
msgstr "--fdpic\t\t\tgenera un fichero objeto FDPIC\n"
-#: config/tc-sh.c:2927
+#: config/tc-sh.c:2928
msgid ".uses does not refer to a local symbol in the same section"
msgstr ".uses no se refiere a un símbolo local en la misma sección"
-#: config/tc-sh.c:2946
+#: config/tc-sh.c:2947
msgid "can't find fixup pointed to by .uses"
msgstr "no se puede encontrar la compostura señalada por .uses"
-#: config/tc-sh.c:2966
+#: config/tc-sh.c:2967
msgid ".uses target does not refer to a local symbol in the same section"
msgstr "el objetivo .uses no se refiere a un símbolo local en la misma sección"
-#: config/tc-sh.c:3039
+#: config/tc-sh.c:3038
msgid "displacement overflows 12-bit field"
-msgstr "la desubicación desborda el campo de 12-bit"
+msgstr "la desubicación desborda el campo de 12 bits"
-#: config/tc-sh.c:3042
+#: config/tc-sh.c:3041
#, c-format
msgid "displacement to defined symbol %s overflows 12-bit field"
-msgstr "desplazamiento para símbolo %s definido sobredesborda el campo de 12-bit"
+msgstr "desplazamiento para símbolo %s definido sobredesborda el campo de 12 bits"
-#: config/tc-sh.c:3046
+#: config/tc-sh.c:3045
#, c-format
msgid "displacement to undefined symbol %s overflows 12-bit field"
-msgstr "la desubicación del símbolo indefinido %s desborda el campo de 12-bit"
+msgstr "la desubicación del símbolo indefinido %s desborda el campo de 12 bits"
-#: config/tc-sh.c:3119
+#: config/tc-sh.c:3117
msgid "displacement overflows 8-bit field"
-msgstr "la desubicación desborda el campo de 8-bit"
+msgstr "la desubicación desborda el campo de 8 bits"
-#: config/tc-sh.c:3122
+#: config/tc-sh.c:3120
#, c-format
msgid "displacement to defined symbol %s overflows 8-bit field"
-msgstr "la desubicación del símbolo definido %s desborda el campo de 8-bits"
+msgstr "la desubicación del símbolo definido %s desborda el campo de 8 bits"
-#: config/tc-sh.c:3126
+#: config/tc-sh.c:3124
#, c-format
msgid "displacement to undefined symbol %s overflows 8-bit field "
-msgstr "desplazamiento a símbolo %s indefinido sobredesborda campo de 8-bit "
+msgstr "desplazamiento a símbolo %s indefinido sobredesborda campo de 8 bits "
-#: config/tc-sh.c:3139
+#: config/tc-sh.c:3137
#, c-format
msgid "overflow in branch to %s; converted into longer instruction sequence"
-msgstr "desbordamiento en la ramificación a %s; se convirtió en una secuencia de instrucciones más larga"
+msgstr "desbordamiento en la bifurcación a %s; se convirtió en una secuencia de instrucciones más larga"
-#: config/tc-sh.c:3204 config/tc-sh.c:3251 config/tc-sparc.c:4628
-#: config/tc-sparc.c:4652
+#: config/tc-sh.c:3202 config/tc-sh.c:3248 config/tc-sparc.c:4632
+#: config/tc-sparc.c:4655
msgid "misaligned data"
msgstr "datos desalineados"
-#: config/tc-sh.c:3557
+#: config/tc-sh.c:3554
msgid "offset to unaligned destination"
msgstr "desplazamiento a destino desalineado"
-#: config/tc-sh.c:3562
+#: config/tc-sh.c:3559
msgid "negative offset"
msgstr "desplazamiento negativo"
-#: config/tc-sh.c:3702
+#: config/tc-sh.c:3699
msgid "misaligned offset"
msgstr "desplazamiento desalineado"
@@ -18597,8 +18495,8 @@ msgstr ""
"-bump\t\t\tavisa cuando el ensamblador cambia entre arquitecturas\n"
"-sparc\t\t\tse descarta\n"
"--enforce-aligned-data\tfuerza .long, etc., a ser alineados correctamente\n"
-"-relax\t\t\trelaja saltos y ramificaciones (por defecto)\n"
-"-no-relax\t\tevita modificar cualquier omisión y ramificación\n"
+"-relax\t\t\trelaja saltos y bifurcaciones (por defecto)\n"
+"-no-relax\t\tevita modificar cualquier omisión y bifurcación\n"
#: config/tc-sparc.c:681
#, c-format
@@ -18679,7 +18577,7 @@ msgstr "Error interno: no se puede encontrar el código de operación «%s» par
#: config/tc-sparc.c:1203
msgid "Support for 64-bit arithmetic not compiled in."
-msgstr "No se compiló el soporte para aritmética de 64-bit."
+msgstr "No se compiló el soporte para aritmética de 64 bits."
#: config/tc-sparc.c:1249
msgid "set: number not in 0..4294967295 range"
@@ -18719,283 +18617,283 @@ msgstr "FP ramificado precedió por instrucción FP; se insertó NOP"
msgid "failed special case insn sanity check"
msgstr "la inspección sanitaria de la insn case especial ha fallado"
-#: config/tc-sparc.c:1797
+#: config/tc-sparc.c:1799
msgid ": invalid membar mask name"
msgstr ": nombre inválido de máscara membar"
-#: config/tc-sparc.c:1813
+#: config/tc-sparc.c:1815
msgid ": invalid membar mask expression"
msgstr ": expresión no válida de máscara membar"
-#: config/tc-sparc.c:1818
+#: config/tc-sparc.c:1820
msgid ": invalid membar mask number"
msgstr ": número inválido de máscara membar"
-#: config/tc-sparc.c:1833
+#: config/tc-sparc.c:1835
msgid ": invalid siam mode expression"
msgstr ": modo expresiva siam no válida"
-#: config/tc-sparc.c:1838
+#: config/tc-sparc.c:1840
msgid ": invalid siam mode number"
msgstr ": modo numérico siam inválido"
-#: config/tc-sparc.c:1854
+#: config/tc-sparc.c:1856
msgid ": invalid prefetch function name"
msgstr ": nombre de función de precargado inválido"
-#: config/tc-sparc.c:1862
+#: config/tc-sparc.c:1864
msgid ": invalid prefetch function expression"
msgstr ": expresión de función de precargado no válida"
-#: config/tc-sparc.c:1867
+#: config/tc-sparc.c:1869
msgid ": invalid prefetch function number"
msgstr ": número de función de precargado inválido"
-#: config/tc-sparc.c:1894 config/tc-sparc.c:1900 config/tc-sparc.c:1909
+#: config/tc-sparc.c:1896 config/tc-sparc.c:1902 config/tc-sparc.c:1911
msgid ": unrecognizable privileged register"
msgstr ": registro privilegiado no reconocido"
-#: config/tc-sparc.c:1932 config/tc-sparc.c:1938 config/tc-sparc.c:1947
+#: config/tc-sparc.c:1934 config/tc-sparc.c:1940 config/tc-sparc.c:1949
msgid ": unrecognizable hyperprivileged register"
msgstr ": registro hiperprivilegiado no reconocido"
-#: config/tc-sparc.c:1970 config/tc-sparc.c:1976 config/tc-sparc.c:1985
+#: config/tc-sparc.c:1972 config/tc-sparc.c:1978 config/tc-sparc.c:1987
msgid ": unrecognizable ancillary state register"
msgstr ": registro estatal auxiliar no reconocible"
-#: config/tc-sparc.c:2018
+#: config/tc-sparc.c:2020
msgid ": asr number must be between 0 and 31"
msgstr ": el número asr debe estar entre 0 y 31"
-#: config/tc-sparc.c:2027
+#: config/tc-sparc.c:2029
#, c-format
msgid ": expecting %asrN"
msgstr ": suponiendo %asrN"
-#: config/tc-sparc.c:2069
+#: config/tc-sparc.c:2071
msgid ": crypto immediate must be between 0 and 31"
msgstr ": cripto inmediato debe estar entre 0 y 31"
-#: config/tc-sparc.c:2078
+#: config/tc-sparc.c:2080
msgid ": expecting crypto immediate"
msgstr ": suponiendo criptograma inmediato"
-#: config/tc-sparc.c:2239 config/tc-sparc.c:2278 config/tc-sparc.c:2706
-#: config/tc-sparc.c:2742
+#: config/tc-sparc.c:2241 config/tc-sparc.c:2280 config/tc-sparc.c:2712
+#: config/tc-sparc.c:2748
#, c-format
msgid "Illegal operands: %%%s requires arguments in ()"
msgstr "Operandos ilegales: %%%s requiere de argumentos en ()"
-#: config/tc-sparc.c:2246
+#: config/tc-sparc.c:2248
#, c-format
msgid "Illegal operands: %%%s cannot be used together with other relocs in the insn ()"
msgstr "Operandos ilegales: %%%s no se pueden usar junto con otras reubicaciones en la insn ()"
-#: config/tc-sparc.c:2257
+#: config/tc-sparc.c:2259
#, c-format
msgid "Illegal operands: %%%s can be only used with call __tls_get_addr"
msgstr "Operandos ilegales: %%%s solo se pueden usar con la llamada __tls_get_addr"
-#: config/tc-sparc.c:2464
+#: config/tc-sparc.c:2470
msgid "detected global register use not covered by .register pseudo-op"
msgstr "se detectó el uso de un registro global que no está cubierto por el pseudo-operador .register"
-#: config/tc-sparc.c:2566
+#: config/tc-sparc.c:2572
msgid ": There are only 64 f registers; [0-63]"
msgstr ": Solamente hay 64 registros f; [0-63]"
-#: config/tc-sparc.c:2568 config/tc-sparc.c:2586
+#: config/tc-sparc.c:2574 config/tc-sparc.c:2592
msgid ": There are only 32 f registers; [0-31]"
msgstr ": Solamente hay 32 registros f; [0-31]"
-#: config/tc-sparc.c:2578
+#: config/tc-sparc.c:2584
msgid ": There are only 32 single precision f registers; [0-31]"
msgstr ": Solamente hay 32 registros f de precisión sencilla; [0-31]"
-#: config/tc-sparc.c:2631
+#: config/tc-sparc.c:2637
msgid ": Instruction requires frs2 and frsd must be the same register"
msgstr ": Instrucción requiere frs2 y frsd deben estar el mismo registro"
-#: config/tc-sparc.c:2751
+#: config/tc-sparc.c:2757
#, c-format
msgid "Expression inside %%%s could not be parsed"
msgstr "Expresión interna %%%s no pudo ser interpretado"
-#: config/tc-sparc.c:2759
+#: config/tc-sparc.c:2765
#, c-format
msgid "Illegal operands: Can't do arithmetics other than + and - involving %%%s()"
msgstr "Operandos ilegales: No se puede hacer aritmética aparte de + y - que involucre %%%s()"
-#: config/tc-sparc.c:2876
+#: config/tc-sparc.c:2882
#, c-format
msgid "Illegal operands: Can't add non-constant expression to %%%s()"
msgstr "Operandos ilegales: No se puede añadir una expresión que no es constante a %%%s()"
-#: config/tc-sparc.c:2886
+#: config/tc-sparc.c:2892
#, c-format
msgid "Illegal operands: Can't do arithmetics involving %%%s() of a relocatable symbol"
msgstr "Operandos ilegales: No se puede hacer aritmética que involucre a %%%s() de un símbolo reubicable"
-#: config/tc-sparc.c:2904
+#: config/tc-sparc.c:2910
msgid ": PC-relative operand can't be a constant"
msgstr ": operando relativo a PC no puede ser una constante"
-#: config/tc-sparc.c:2911
+#: config/tc-sparc.c:2917
msgid ": TLS operand can't be a constant"
msgstr ": operando TLS no puede ser una constante"
-#: config/tc-sparc.c:2939
+#: config/tc-sparc.c:2945
msgid ": Immediate value in cbcond is out of range."
msgstr ": Valor inmediato dentro de ‘cbcond’ está fuera de rango."
-#: config/tc-sparc.c:2965
+#: config/tc-sparc.c:2971
msgid ": invalid ASI name"
msgstr ": nombre ASI inválido"
-#: config/tc-sparc.c:2974
+#: config/tc-sparc.c:2980
msgid ": invalid ASI expression"
msgstr ": expresión ASI no válida"
-#: config/tc-sparc.c:2979
+#: config/tc-sparc.c:2985
msgid ": invalid ASI number"
msgstr ": número ASI inválido"
-#: config/tc-sparc.c:3084
+#: config/tc-sparc.c:3090
msgid ": non-immdiate imm2 operand"
msgstr ": operando imm2 no inmediato"
-#: config/tc-sparc.c:3089
+#: config/tc-sparc.c:3095
msgid ": imm2 immediate operand out of range (0-3)"
msgstr ": operando inmediato imm2 fuera de rango (0-3)"
-#: config/tc-sparc.c:3108
+#: config/tc-sparc.c:3114
msgid "OPF immediate operand out of range (0-0x1ff)"
msgstr "Operando inmediato OPF fuera de rango (0-0x1ff)"
-#: config/tc-sparc.c:3113
+#: config/tc-sparc.c:3119
msgid "non-immediate OPF operand, ignored"
msgstr "operando OPF que no es inmediato, se descarta"
-#: config/tc-sparc.c:3132
+#: config/tc-sparc.c:3138
msgid ": invalid cpreg name"
msgstr ": nombre cpreg inválido"
-#: config/tc-sparc.c:3161
+#: config/tc-sparc.c:3167
#, c-format
msgid "Illegal operands%s"
msgstr "Operandos ilegales%s"
-#: config/tc-sparc.c:3210
+#: config/tc-sparc.c:3216
#, c-format
msgid "architecture bumped from \"%s\" to \"%s\" on \"%s\""
msgstr "la arquitectura saltó de «%s» a «%s» en «%s»"
-#: config/tc-sparc.c:3251
+#: config/tc-sparc.c:3257
#, c-format
msgid "Architecture mismatch on \"%s %s\"."
msgstr "Arquitectura incoherente en \"%s %s\"."
-#: config/tc-sparc.c:3252
+#: config/tc-sparc.c:3258
#, c-format
msgid "(Requires %s; requested architecture is %s.)"
msgstr "(Requiere %s; arquitectura solicitada es %s.)"
-#: config/tc-sparc.c:3264
+#: config/tc-sparc.c:3270
#, c-format
msgid "Hardware capability \"%s\" not enabled for \"%s\"."
msgstr "La capacidad de hardware «%s» no se activó para «%s»."
-#: config/tc-sparc.c:3650 config/tc-sparc.c:3657 config/tc-sparc.c:3664
-#: config/tc-sparc.c:3671 config/tc-sparc.c:3678 config/tc-sparc.c:3687
-#: config/tc-sparc.c:3699 config/tc-sparc.c:3710 config/tc-sparc.c:3732
-#: config/tc-sparc.c:3756 write.c:1211
+#: config/tc-sparc.c:3656 config/tc-sparc.c:3663 config/tc-sparc.c:3670
+#: config/tc-sparc.c:3677 config/tc-sparc.c:3684 config/tc-sparc.c:3693
+#: config/tc-sparc.c:3705 config/tc-sparc.c:3716 config/tc-sparc.c:3738
+#: config/tc-sparc.c:3762 write.c:1211
msgid "relocation overflow"
msgstr "desbordamiento de reubicación"
-#: config/tc-sparc.c:3811
+#: config/tc-sparc.c:3817
#, c-format
msgid "bad or unhandled relocation type: 0x%02x"
-msgstr "tipo reubicado incorrecta o sin manipular: 0x%02x"
+msgstr "tipo de reubicación incorrecta o sin manipular: 0x%02x"
-#: config/tc-sparc.c:4126
+#: config/tc-sparc.c:4132
msgid "Expected comma after name"
msgstr "Se esperaba una coma tras nombre"
-#: config/tc-sparc.c:4135
+#: config/tc-sparc.c:4141
#, c-format
msgid "BSS length (%d.) <0! Ignored."
msgstr "¡Longitud BSS (%d.) <0! Se descarta."
-#: config/tc-sparc.c:4147
+#: config/tc-sparc.c:4153
msgid "bad .reserve segment -- expected BSS segment"
msgstr "segmento .reserve incorrecto -- se esperaba el segmento BSS"
-#: config/tc-sparc.c:4173 config/tc-sparc.c:4300
+#: config/tc-sparc.c:4179 config/tc-sparc.c:4305
msgid "negative alignment"
msgstr "alineamiento negativa"
-#: config/tc-sparc.c:4183 config/tc-sparc.c:4321 read.c:1588 read.c:2631
+#: config/tc-sparc.c:4189 config/tc-sparc.c:4326 read.c:1577 read.c:2680
msgid "alignment not a power of 2"
msgstr "la alineamiento no es una potencia de 2"
-#: config/tc-sparc.c:4229
+#: config/tc-sparc.c:4234
#, c-format
msgid "Ignoring attempt to re-define symbol %s"
msgstr "Se ignora el intento de redefinir el símbolo %s"
-#: config/tc-sparc.c:4252 config/tc-v850.c:280
+#: config/tc-sparc.c:4257 config/tc-v850.c:279
msgid "Expected comma after symbol-name"
msgstr "Se esperaba una coma tras nombre del símbolo"
-#: config/tc-sparc.c:4262
+#: config/tc-sparc.c:4267
#, c-format
msgid ".COMMon length (%lu) out of range ignored"
msgstr "longitud .COMMún (%lu) fuera de rango descartado"
-#: config/tc-sparc.c:4288
+#: config/tc-sparc.c:4293
msgid "Expected comma after common length"
msgstr "Se esperaba una coma tras la longitud común"
-#: config/tc-sparc.c:4433
+#: config/tc-sparc.c:4437
msgid "Unknown segment type"
msgstr "Tipo de segmento desconocido"
-#: config/tc-sparc.c:4502 config/tc-sparc.c:4511
+#: config/tc-sparc.c:4506 config/tc-sparc.c:4515
#, c-format
msgid "register syntax is .register %%g[2367],{#scratch|symbolname|#ignore}"
msgstr "la sintaxis de registro es .register %%g[2367],{#scratch|nombresimbolo|#ignore}"
-#: config/tc-sparc.c:4529
+#: config/tc-sparc.c:4533
msgid "redefinition of global register"
msgstr "redefinición del registro global"
-#: config/tc-sparc.c:4540
+#: config/tc-sparc.c:4544
#, c-format
msgid "Register symbol %s already defined."
msgstr "El símbolo de registro %s ya estaba definido."
-#: config/tc-sparc.c:4742
+#: config/tc-sparc.c:4745
#, c-format
msgid "Illegal operands: %%r_plt in %d-byte data field"
msgstr "Operandos ilegales: %%r_plt en el campo de datos de %d-bytes"
-#: config/tc-sparc.c:4752
+#: config/tc-sparc.c:4755
#, c-format
msgid "Illegal operands: %%r_tls_dtpoff in %d-byte data field"
msgstr "Operandos ilegales: %%r_tls_dtpoff en el campo de datos de %d-bytes"
-#: config/tc-sparc.c:4789 config/tc-vax.c:3271
+#: config/tc-sparc.c:4792 config/tc-vax.c:3269
#, c-format
msgid "Illegal operands: Only %%r_%s%d allowed in %d-byte data fields"
msgstr "Operandos ilegales: solo se permite %%r_%s%d en campos de datos de %d-bytes"
-#: config/tc-sparc.c:4797 config/tc-sparc.c:4828 config/tc-sparc.c:4837
-#: config/tc-vax.c:3279 config/tc-vax.c:3310 config/tc-vax.c:3319
+#: config/tc-sparc.c:4800 config/tc-sparc.c:4831 config/tc-sparc.c:4840
+#: config/tc-vax.c:3277 config/tc-vax.c:3308 config/tc-vax.c:3317
#, c-format
msgid "Illegal operands: %%r_%s%d requires arguments in ()"
msgstr "Operandos ilegales: %%r_%s%d requiere argumentos en ()"
-#: config/tc-sparc.c:4846 config/tc-vax.c:3328
+#: config/tc-sparc.c:4849 config/tc-vax.c:3326
#, c-format
msgid "Illegal operands: garbage after %%r_%s%d()"
msgstr "Operandos ilegales: hay basura tras %%r_%s%d()"
@@ -19063,21 +18961,21 @@ msgstr "Utilizando estilo antiguo, %%hi(expr), por favor modifique al estilo PPC
msgid "Constant expression %d out of range, [%d, %d]."
msgstr "Expresión constante %d fuera de rango, [%d, %d]."
-#: config/tc-spu.c:779
+#: config/tc-spu.c:769
#, c-format
msgid "invalid priority '%lu'"
msgstr "prioridad no válida '%lu'"
-#: config/tc-spu.c:785
+#: config/tc-spu.c:775
#, c-format
msgid "invalid lrlive '%lu'"
msgstr "invalida ‘lrlive’ '%lu'"
-#: config/tc-spu.c:859
+#: config/tc-spu.c:849
msgid "Relaxation should never occur"
msgstr "La relajación nunca debe ocurrir"
-#: config/tc-spu.c:1004
+#: config/tc-spu.c:994
#, c-format
msgid "Relocation doesn't fit. (relocation value = 0x%lx)"
msgstr "La reubicación no cabe. (valor reubicado = 0x%lx)"
@@ -19137,7 +19035,7 @@ msgstr "referencia indirecta ilegal"
#: config/tc-tic30.c:545
msgid "displacement must be an unsigned 8-bit number"
-msgstr "el desplazamiento debe ser un número de 8-bit sin signo"
+msgstr "el desplazamiento debe ser un número de 8 bits sin signo"
#: config/tc-tic30.c:729 config/tc-tic30.c:1475
#, c-format
@@ -19241,7 +19139,7 @@ msgstr "se redondea hacia aboajo el primer operando de coma flotante a entero co
#: config/tc-tic30.c:1786 config/tc-tic30.c:1857
msgid "first operand is too large for 16-bit signed int"
-msgstr "el primer operando es demasiado grande para entero con signo de 16-bit"
+msgstr "el primer operando es demasiado grande para entero con signo de 16 bits"
#: config/tc-tic30.c:1851
msgid "first operand is floating point"
@@ -19254,11 +19152,11 @@ msgstr "el vector de interrupción para la instrucción trap está fuera de rang
#: config/tc-tic30.c:1927
msgid "LDP instruction needs a 24-bit operand"
-msgstr "La instrucción LDP requiere un operando de 24-bit"
+msgstr "La instrucción LDP requiere un operando de 24 bits"
#: config/tc-tic30.c:1951
msgid "first operand is too large for a 24-bit displacement"
-msgstr "el primer operando es demasiado grande para un desplazamiento de 24-bit"
+msgstr "el primer operando es demasiado grande para un desplazamiento de 24 bits"
#: config/tc-tic4x.c:390
msgid "Nan, using zero."
@@ -19273,220 +19171,220 @@ msgstr "No se puede representar el exponente en %d bits"
msgid "Invalid floating point number"
msgstr "Número de coma flotante inválido"
-#: config/tc-tic4x.c:722
+#: config/tc-tic4x.c:720
msgid "Comma expected\n"
msgstr "Se esperaba una coma\n"
-#: config/tc-tic4x.c:756 config/tc-tic54x.c:498
+#: config/tc-tic4x.c:754 config/tc-tic54x.c:498
msgid ".bss size argument missing\n"
-msgstr "Ausente el tamaño del argumento .bss\n"
+msgstr "Falta el tamaño del argumento .bss\n"
-#: config/tc-tic4x.c:764
+#: config/tc-tic4x.c:762
#, c-format
msgid ".bss size %ld < 0!"
msgstr "¡Tamaño de .bss %ld < 0!"
-#: config/tc-tic4x.c:897
+#: config/tc-tic4x.c:894
msgid "Non-constant symbols not allowed\n"
msgstr "No se permiten símbolos que no sean constantes\n"
-#: config/tc-tic4x.c:928
+#: config/tc-tic4x.c:925
msgid "Symbol missing\n"
-msgstr "Ausente símbolo\n"
+msgstr "Falta símbolo\n"
#. Skip null symbol terminator.
-#: config/tc-tic4x.c:976
+#: config/tc-tic4x.c:973
msgid ".sect: subsection name ignored"
msgstr ".sect: se ignora el nombre de la subsección"
-#: config/tc-tic4x.c:1004 config/tc-tic4x.c:1105 config/tc-tic54x.c:1482
+#: config/tc-tic4x.c:1001 config/tc-tic4x.c:1102 config/tc-tic54x.c:1476
#, c-format
msgid "Error setting flags for \"%s\": %s"
msgstr "Error al establecer las casillas para «%s»: %s"
-#: config/tc-tic4x.c:1036
+#: config/tc-tic4x.c:1033
msgid ".set syntax invalid\n"
msgstr "sintaxis de .set no válida\n"
-#: config/tc-tic4x.c:1094
+#: config/tc-tic4x.c:1091
msgid ".usect: non-zero alignment flag ignored"
msgstr ".usect: se descarta la opción de alineamiento que no es cero"
-#: config/tc-tic4x.c:1125
+#: config/tc-tic4x.c:1122
#, c-format
msgid "This assembler does not support processor generation %ld"
msgstr "Este ensamblador no admite la generación de procesador %ld"
-#: config/tc-tic4x.c:1129
+#: config/tc-tic4x.c:1126
msgid "Changing processor generation on fly not supported..."
msgstr "No se admite la generación de cambio del procesador al vuelo..."
-#: config/tc-tic4x.c:1416
+#: config/tc-tic4x.c:1413
msgid "Auxiliary register AR0--AR7 required for indirect"
msgstr "Se requiere un registro auxiliar AR0--AR7 para el indirecto"
-#: config/tc-tic4x.c:1430
+#: config/tc-tic4x.c:1427
#, c-format
msgid "Bad displacement %d (require 0--255)\n"
msgstr "Desplazamiento %d incorrecto (se requiere 0--255)\n"
-#: config/tc-tic4x.c:1448
+#: config/tc-tic4x.c:1445
msgid "Index register IR0,IR1 required for displacement"
msgstr "Se requiere un registro índice IR0,IR1 para el desplazamiento"
-#: config/tc-tic4x.c:1516
+#: config/tc-tic4x.c:1513
msgid "Expecting a register name"
msgstr "Se espera un nombre de registro"
-#: config/tc-tic4x.c:1528 config/tc-tic4x.c:1551 config/tc-tic4x.c:1617
+#: config/tc-tic4x.c:1525 config/tc-tic4x.c:1548 config/tc-tic4x.c:1614
msgid "Number too large"
msgstr "Número demasiado grande"
-#: config/tc-tic4x.c:1541 config/tc-tic4x.c:1564
+#: config/tc-tic4x.c:1538 config/tc-tic4x.c:1561
msgid "Expecting a constant value"
msgstr "Se espera un valor constante"
-#: config/tc-tic4x.c:1572
+#: config/tc-tic4x.c:1569
#, c-format
msgid "Bad direct addressing construct %s"
msgstr "Construcción de direccionamiento directo %s incorrecta"
-#: config/tc-tic4x.c:1576
+#: config/tc-tic4x.c:1573
#, c-format
msgid "Direct value of %ld is not suitable"
msgstr "El valor directo de %ld no es adecuado"
-#: config/tc-tic4x.c:1600
+#: config/tc-tic4x.c:1597
msgid "Unknown indirect addressing mode"
msgstr "Desconoce modo de direccionamiento indirecto %s"
-#: config/tc-tic4x.c:1697
+#: config/tc-tic4x.c:1694
#, c-format
msgid "Immediate value of %ld is too large for ldf"
msgstr "El valor inmediato de %ld es demasiado grande para ldf"
-#: config/tc-tic4x.c:1737
+#: config/tc-tic4x.c:1734
msgid "Destination register must be ARn"
msgstr "El registro destino debe ser ARn"
-#: config/tc-tic4x.c:1756 config/tc-tic4x.c:2129 config/tc-tic4x.c:2188
+#: config/tc-tic4x.c:1753 config/tc-tic4x.c:2126 config/tc-tic4x.c:2185
#, c-format
msgid "Immediate value of %ld is too large"
msgstr "El valor inmediato de %ld es demasiado grande"
-#: config/tc-tic4x.c:1785 config/tc-tic4x.c:1990
+#: config/tc-tic4x.c:1782 config/tc-tic4x.c:1987
msgid "Invalid indirect addressing mode"
msgstr "Modo de direccionamiento indirecto inválido"
-#: config/tc-tic4x.c:1809 config/tc-tic4x.c:1849 config/tc-tic4x.c:2040
-#: config/tc-tic4x.c:2062
+#: config/tc-tic4x.c:1806 config/tc-tic4x.c:1846 config/tc-tic4x.c:2037
+#: config/tc-tic4x.c:2059
msgid "Register must be Rn"
msgstr "El registro debe ser Rn"
-#: config/tc-tic4x.c:1863 config/tc-tic4x.c:1933 config/tc-tic4x.c:1947
+#: config/tc-tic4x.c:1860 config/tc-tic4x.c:1930 config/tc-tic4x.c:1944
msgid "Register must be R0--R7"
msgstr "El registro debe ser R0--R7"
-#: config/tc-tic4x.c:1887 config/tc-tic4x.c:1915
+#: config/tc-tic4x.c:1884 config/tc-tic4x.c:1912
#, c-format
msgid "Invalid indirect addressing mode displacement %d"
msgstr "Desplazamiento de modo de direccionamiento indirecto %d inválido"
-#: config/tc-tic4x.c:1961
+#: config/tc-tic4x.c:1958
msgid "Destination register must be R2 or R3"
msgstr "El registro destino debe ser R2 o R3"
-#: config/tc-tic4x.c:1975
+#: config/tc-tic4x.c:1972
msgid "Destination register must be R0 or R1"
msgstr "El registro destino debe ser R0 o R1"
-#: config/tc-tic4x.c:2012
+#: config/tc-tic4x.c:2009
#, c-format
msgid "Displacement value of %ld is too large"
msgstr "El valor de desplazamiento de %ld es demasiado grande"
-#: config/tc-tic4x.c:2073 config/tc-tic4x.c:2204
+#: config/tc-tic4x.c:2070 config/tc-tic4x.c:2201
msgid "Floating point number not valid in expression"
msgstr "El número de coma flotante no es válido en la expresión"
-#: config/tc-tic4x.c:2087
+#: config/tc-tic4x.c:2084
#, c-format
msgid "Signed immediate value %ld too large"
msgstr "El valor inmediato con signo %ld es demasiado grande"
-#: config/tc-tic4x.c:2150
+#: config/tc-tic4x.c:2147
#, c-format
msgid "Unsigned immediate value %ld too large"
msgstr "El valor inmediato sin signo %ld es demasiado grande"
-#: config/tc-tic4x.c:2218
+#: config/tc-tic4x.c:2215
#, c-format
msgid "Immediate value %ld too large"
msgstr "El valor inmediato de %ld es demasiado grande"
-#: config/tc-tic4x.c:2237 config/tc-tic4x.c:2265
+#: config/tc-tic4x.c:2234 config/tc-tic4x.c:2262
msgid "Register must be ivtp or tvtp"
msgstr "El registro debe ser ivtp o tvtp"
-#: config/tc-tic4x.c:2251
+#: config/tc-tic4x.c:2248
msgid "Register must be address register"
msgstr "El registro debe ser un registro direccional"
-#: config/tc-tic4x.c:2324
+#: config/tc-tic4x.c:2321
msgid "Source and destination register should not be equal"
msgstr "Los registros fuente y destino no deben ser iguales"
-#: config/tc-tic4x.c:2339
+#: config/tc-tic4x.c:2336
#, fuzzy
#| msgid "Equal parallell destination registers, one result will be discarded"
msgid "Equal parallel destination registers, one result will be discarded"
msgstr "Los registros de destino paralelo son iguales, un resultado se descartará"
-#: config/tc-tic4x.c:2380
+#: config/tc-tic4x.c:2377
msgid "Too many operands scanned"
msgstr "Se analizaron demasiados operandos"
-#: config/tc-tic4x.c:2411
+#: config/tc-tic4x.c:2408
msgid "Parallel opcode cannot contain more than two instructions"
msgstr "El código de operación paralelo no puede contener más de dos instrucciones"
-#: config/tc-tic4x.c:2485
+#: config/tc-tic4x.c:2481
#, c-format
msgid "Invalid operands for %s"
msgstr "Operandos inválidos para %s"
-#: config/tc-tic4x.c:2488
+#: config/tc-tic4x.c:2484
#, c-format
msgid "Invalid instruction %s"
msgstr "Instrucción %s no válida"
-#: config/tc-tic4x.c:2640
+#: config/tc-tic4x.c:2634
#, c-format
msgid "Bad relocation type: 0x%02x"
msgstr "Tipo de reubicación incorrecto: 0x%02x"
-#: config/tc-tic4x.c:2698
+#: config/tc-tic4x.c:2692
#, c-format
msgid "Unsupported processor generation %d"
msgstr "No se admite la generación de procesador %d"
-#: config/tc-tic4x.c:2706
+#: config/tc-tic4x.c:2700
msgid "Option -b is depreciated, please use -mbig"
msgstr "La opción -b es obsoleta, por favor utilice -mbig"
-#: config/tc-tic4x.c:2713
+#: config/tc-tic4x.c:2707
msgid "Option -p is depreciated, please use -mmemparm"
msgstr "La opción -p es obsoleta, por favor utilice -mmemparm"
-#: config/tc-tic4x.c:2720
+#: config/tc-tic4x.c:2714
msgid "Option -r is depreciated, please use -mregparm"
msgstr "La opción -r es obsoleta, por favor utilice -mregparm"
-#: config/tc-tic4x.c:2727
+#: config/tc-tic4x.c:2721
msgid "Option -s is depreciated, please use -msmall"
msgstr "La opción -s es obsoleta, por favor utilice -msmall"
-#: config/tc-tic4x.c:2756
+#: config/tc-tic4x.c:2750
#, c-format
msgid ""
"\n"
@@ -19531,12 +19429,12 @@ msgstr ""
" -mlowpower activa el soporte para LOPOWER y MAXSPEED\n"
" -menhanced activa el soporte para códigos operacionales mejorados\n"
-#: config/tc-tic4x.c:2801
+#: config/tc-tic4x.c:2795
#, c-format
msgid "Label \"$%d\" redefined"
msgstr "Etiqueta «$%d» redefinida"
-#: config/tc-tic4x.c:3010
+#: config/tc-tic4x.c:3004
#, c-format
msgid "Reloc %d not supported by object file format"
msgstr "El formato del fichero objeto no admite la reubicación %d"
@@ -19609,7 +19507,7 @@ msgstr ".end%s sin un .%s precedente"
#: config/tc-tic54x.c:809
#, c-format
msgid "Unrecognized struct/union tag '%s'"
-msgstr "No reconocida la marca de struct/union «%s»"
+msgstr "No se reconoce la marca de struct/union «%s»"
#: config/tc-tic54x.c:811
msgid ".tag requires a structure tag"
@@ -19632,7 +19530,7 @@ msgstr "la cuenta de .field '%d' está fuera de rango (1 ≤ X ≤ 32)"
#: config/tc-tic54x.c:928
#, c-format
msgid "Unrecognized field type '%c'"
-msgstr "No reconocido el tipo de campo '%c'"
+msgstr "No se reconoce el tipo de campo '%c'"
#: config/tc-tic54x.c:1052
msgid "Overflow in expression, truncated to 8 bits"
@@ -19652,318 +19550,318 @@ msgstr "Los valores reubicables requieren por lo menos almacenamiento WORD"
msgid "Use of .def/.ref is deprecated. Use .global instead"
msgstr "El uso de .def/.ref es obsoleto. Utilice en su lugar .global"
-#: config/tc-tic54x.c:1345
+#: config/tc-tic54x.c:1343
msgid ".space/.bes repeat count is negative, ignored"
msgstr "La cuenta de repetición .space/.bes es negativa, se descarta"
-#: config/tc-tic54x.c:1350
+#: config/tc-tic54x.c:1348
msgid ".space/.bes repeat count is zero, ignored"
msgstr "La cuenta de repetición .space/.bes es cero, se descarta"
-#: config/tc-tic54x.c:1423
+#: config/tc-tic54x.c:1419
msgid "Missing size argument"
-msgstr "Ausente el tamaño del argumento"
+msgstr "Falta el tamaño del argumento"
-#: config/tc-tic54x.c:1557
+#: config/tc-tic54x.c:1551
msgid "CPU version has already been set"
msgstr "La versión de CPU ya se había establecido"
-#: config/tc-tic54x.c:1561
+#: config/tc-tic54x.c:1555
#, c-format
msgid "Unrecognized version '%s'"
msgstr "Versión no reconocida «%s»"
-#: config/tc-tic54x.c:1567
+#: config/tc-tic54x.c:1561
msgid "Changing of CPU version on the fly not supported"
msgstr "No se admite mmodificar la versión del CPU al vuelo"
-#: config/tc-tic54x.c:1698
+#: config/tc-tic54x.c:1692
msgid "p2align not supported on this target"
msgstr "No se admite p2align en este destino"
-#: config/tc-tic54x.c:1710
+#: config/tc-tic54x.c:1704
msgid "Argument to .even ignored"
msgstr "Se descarta el argumento para .even"
-#: config/tc-tic54x.c:1756
+#: config/tc-tic54x.c:1750
msgid "Invalid field size, must be from 1 to 32"
msgstr "Tamaño de campo inválido, debe ser de 1 a 32"
-#: config/tc-tic54x.c:1769
+#: config/tc-tic54x.c:1763
msgid "field size must be 16 when value is relocatable"
msgstr "el tamaño del campo debe ser 16 cuando el valor es reubicable"
-#: config/tc-tic54x.c:1784
+#: config/tc-tic54x.c:1778
msgid "field value truncated"
msgstr "se trunca valor del campo"
-#: config/tc-tic54x.c:1890 config/tc-tic54x.c:2176
+#: config/tc-tic54x.c:1882 config/tc-tic54x.c:2168
#, c-format
msgid "Unrecognized section '%s'"
msgstr "No reconocida sección «%s»"
-#: config/tc-tic54x.c:1899
+#: config/tc-tic54x.c:1891
msgid "Current section is uninitialized, section name required for .clink"
msgstr "La sección actual está no inicializada, se requirió el nombre de sección para .clink"
-#: config/tc-tic54x.c:2087
+#: config/tc-tic54x.c:2079
msgid "ENDLOOP without corresponding LOOP"
msgstr "ENDLOOP sin un LOOP correspondiente"
-#: config/tc-tic54x.c:2128
+#: config/tc-tic54x.c:2120
msgid "Mixing of normal and extended addressing not supported"
msgstr "No se admite la mezcla de direccionamiento normal y extendido"
-#: config/tc-tic54x.c:2134
+#: config/tc-tic54x.c:2126
msgid "Extended addressing not supported on the specified CPU"
msgstr "No se admite el direccionamiento extendido en el CPU especificado"
-#: config/tc-tic54x.c:2182
+#: config/tc-tic54x.c:2174
msgid ".sblock may be used for initialized sections only"
msgstr ".sblock se puede utilizar únicamente para secciones inicializadas"
-#: config/tc-tic54x.c:2212
+#: config/tc-tic54x.c:2204
msgid "Symbol missing for .set/.equ"
-msgstr "Ausente el símbolo para .set/.equ"
+msgstr "Falta el símbolo para .set/.equ"
-#: config/tc-tic54x.c:2267
+#: config/tc-tic54x.c:2259
msgid ".var may only be used within a macro definition"
msgstr ".var solamente se puede usar dentro de una definición de macro"
-#: config/tc-tic54x.c:2275
+#: config/tc-tic54x.c:2267
msgid "Substitution symbols must begin with a letter"
msgstr "Los símbolos de sustitución deben empezar con una letra"
-#: config/tc-tic54x.c:2354
+#: config/tc-tic54x.c:2346
#, c-format
msgid "can't open macro library file '%s' for reading: %s"
msgstr "no se puede abrir el fichero de biblioteca de macro «%s» para lectura: %s"
-#: config/tc-tic54x.c:2361
+#: config/tc-tic54x.c:2353
#, c-format
msgid "File '%s' not in macro archive format"
msgstr "El fichero «%s» no está en el formato de archivo de macro"
-#: config/tc-tic54x.c:2491
+#: config/tc-tic54x.c:2483
#, c-format
msgid "Bad COFF version '%s'"
msgstr "Versión COFF incorrecta «%s»"
-#: config/tc-tic54x.c:2500
+#: config/tc-tic54x.c:2492
#, c-format
msgid "Bad CPU version '%s'"
msgstr "Versión CPU incorrecta '%s'"
-#: config/tc-tic54x.c:2513 config/tc-tic54x.c:2516
+#: config/tc-tic54x.c:2505 config/tc-tic54x.c:2508
#, c-format
msgid "Can't redirect stderr to the file '%s'"
msgstr "No se puede redirigir la salida de error estándar al fichero «%s»"
-#: config/tc-tic54x.c:2535
+#: config/tc-tic54x.c:2527
#, fuzzy
#| msgid "macros nested too deeply"
msgid "Macro nesting is too deep"
msgstr "macros anidadas con demasiada profundidad"
-#: config/tc-tic54x.c:2638
+#: config/tc-tic54x.c:2630
#, c-format
msgid "Undefined substitution symbol '%s'"
msgstr "Símbolo sustitucional sin definir «%s»"
-#: config/tc-tic54x.c:3121
+#: config/tc-tic54x.c:3113
#, c-format
msgid "Unbalanced parenthesis in operand %d"
msgstr "Paréntesis sin balancear en operando %d"
-#: config/tc-tic54x.c:3152 config/tc-tic54x.c:3160
+#: config/tc-tic54x.c:3144 config/tc-tic54x.c:3152
msgid "Expecting operand after ','"
msgstr "Se esperaba un operando tras ','"
-#: config/tc-tic54x.c:3171
+#: config/tc-tic54x.c:3163
msgid "Extra junk on line"
msgstr "Basura extra en la línea"
-#: config/tc-tic54x.c:3208
+#: config/tc-tic54x.c:3200
msgid "Badly formed address expression"
msgstr "Expresión direccional mal formada"
-#: config/tc-tic54x.c:3461
+#: config/tc-tic54x.c:3453
#, c-format
msgid "Invalid dmad syntax '%s'"
msgstr "Sintaxis de ‘dmad’ no válida «%s»"
-#: config/tc-tic54x.c:3525
+#: config/tc-tic54x.c:3517
#, c-format
msgid "Use the .mmregs directive to use memory-mapped register names such as '%s'"
msgstr "Use la directiva .mmregs para utilizar nombres de registro mapeados en memoria tales como «%s»"
-#: config/tc-tic54x.c:3576
+#: config/tc-tic54x.c:3568
msgid "Address mode *+ARx is write-only. Results of reading are undefined."
msgstr "El modo direccional *+ARx es de solo escritura. El resultado de la lectura está indefinido."
-#: config/tc-tic54x.c:3596
+#: config/tc-tic54x.c:3588
#, c-format
msgid "Unrecognized indirect address format \"%s\""
-msgstr "No reconocido el formato direccional indirecta «%s»"
+msgstr "No se reconoce el formato direccional indirecta «%s»"
-#: config/tc-tic54x.c:3634
+#: config/tc-tic54x.c:3626
#, c-format
msgid "Operand '%s' out of range (%d <= x <= %d)"
msgstr "Operando «%s» está fuera de rango (%d ≤ x ≤ %d)"
-#: config/tc-tic54x.c:3654
+#: config/tc-tic54x.c:3646
msgid "Error in relocation handling"
msgstr "Error en el manejo de la reubicación"
-#: config/tc-tic54x.c:3673 config/tc-tic54x.c:3735 config/tc-tic54x.c:3763
+#: config/tc-tic54x.c:3665 config/tc-tic54x.c:3727 config/tc-tic54x.c:3755
#, c-format
msgid "Unrecognized condition code \"%s\""
-msgstr "No reconocido el código de condición «%s»"
+msgstr "No se reconoce el código de condición «%s»"
-#: config/tc-tic54x.c:3690
+#: config/tc-tic54x.c:3682
#, c-format
msgid "Condition \"%s\" does not match preceding group"
msgstr "La condición «%s» no coincide con el grupo precedente"
-#: config/tc-tic54x.c:3698
+#: config/tc-tic54x.c:3690
#, c-format
msgid "Condition \"%s\" uses a different accumulator from a preceding condition"
msgstr "La condición «%s» utiliza un acumulador diferente al de una condición precedente"
-#: config/tc-tic54x.c:3705
+#: config/tc-tic54x.c:3697
msgid "Only one comparison conditional allowed"
msgstr "Sólo se permite una comparación condicional"
-#: config/tc-tic54x.c:3710
+#: config/tc-tic54x.c:3702
msgid "Only one overflow conditional allowed"
msgstr "Sólo se permite un desbordamiento condicional"
-#: config/tc-tic54x.c:3718
+#: config/tc-tic54x.c:3710
#, c-format
msgid "Duplicate %s conditional"
msgstr "Condicional %s duplicado"
-#: config/tc-tic54x.c:3749
+#: config/tc-tic54x.c:3741
msgid "Invalid auxiliary register (use AR0-AR7)"
msgstr "Registro auxiliar inválido (utilice AR0-AR7)"
-#: config/tc-tic54x.c:3780
+#: config/tc-tic54x.c:3772
msgid "lk addressing modes are invalid for memory-mapped register addressing"
msgstr "modos direccionados lk son inválidos para direccionamiento de distribuciones de registros en memoria"
-#: config/tc-tic54x.c:3788
+#: config/tc-tic54x.c:3780
msgid "Address mode *+ARx is not allowed in memory-mapped register addressing. Resulting behavior is undefined."
msgstr "El modo direccional *+ARx no se permite en el direccionamiento de registros mapeados en memoria. El comportamiento resultante no está definido."
-#: config/tc-tic54x.c:3814
+#: config/tc-tic54x.c:3806
msgid "Destination accumulator for each part of this parallel instruction must be different"
msgstr "El acumulador de destino para cada parte de esta instrucción paralela debe ser diferente"
-#: config/tc-tic54x.c:3863
+#: config/tc-tic54x.c:3855
#, c-format
msgid "Memory mapped register \"%s\" out of range"
msgstr "El registro mapeado en memoria «%s» está fuera de rango"
-#: config/tc-tic54x.c:3902
+#: config/tc-tic54x.c:3894
msgid "Invalid operand (use 1, 2, or 3)"
msgstr "Operando inválido (utilice 1, 2, ó 3)"
-#: config/tc-tic54x.c:3928
+#: config/tc-tic54x.c:3919
msgid "A status register or status bit name is required"
msgstr "Se requiere un registro estatal o un nombre de bit estatal"
-#: config/tc-tic54x.c:3938
+#: config/tc-tic54x.c:3929
#, c-format
msgid "Unrecognized status bit \"%s\""
-msgstr "No reconocido el bit estatal «%s»"
+msgstr "No se reconoce el bit estatal «%s»"
-#: config/tc-tic54x.c:3961
+#: config/tc-tic54x.c:3950
#, c-format
msgid "Invalid status register \"%s\""
msgstr "Invalida registro de posición «%s»"
-#: config/tc-tic54x.c:3973
+#: config/tc-tic54x.c:3962
#, c-format
msgid "Operand \"%s\" out of range (use 1 or 2)"
msgstr "Operando «%s» está fuera de rango (utilice 1 ó 2)"
-#: config/tc-tic54x.c:4176
+#: config/tc-tic54x.c:4165
#, c-format
msgid "Unrecognized instruction \"%s\""
-msgstr "No reconocida la instrucción «%s»"
+msgstr "No se reconoce la instrucción «%s»"
-#: config/tc-tic54x.c:4205
+#: config/tc-tic54x.c:4193
#, c-format
msgid "Unrecognized operand list '%s' for instruction '%s'"
-msgstr "No reconocida la lista de operandos «%s» para la instrucción «%s»"
+msgstr "No se reconoce la lista de operandos «%s» para la instrucción «%s»"
-#: config/tc-tic54x.c:4234
+#: config/tc-tic54x.c:4223
#, c-format
msgid "Unrecognized parallel instruction \"%s\""
-msgstr "No reconocida la instrucción paralela «%s»"
+msgstr "No se reconoce la instrucción paralela «%s»"
-#: config/tc-tic54x.c:4283
+#: config/tc-tic54x.c:4272
#, c-format
msgid "Invalid operand (s) for parallel instruction \"%s\""
msgstr "Operando(s) inválido(s) para la instrucción paralela «%s»"
-#: config/tc-tic54x.c:4286
+#: config/tc-tic54x.c:4275
#, c-format
msgid "Unrecognized parallel instruction combination \"%s || %s\""
-msgstr "No reconocida la combinación de instrucciones paralelas \"%s || %s\""
+msgstr "No se reconoce la combinación de instrucciones paralelas \"%s || %s\""
-#: config/tc-tic54x.c:4514
+#: config/tc-tic54x.c:4503
#, c-format
msgid "%s symbol recursion stopped at second appearance of '%s'"
msgstr "La recursión del símbolo %s se detuvo en la segunda aparición de «%s»"
-#: config/tc-tic54x.c:4554
+#: config/tc-tic54x.c:4543
msgid "Unrecognized substitution symbol function"
-msgstr "No reconocida la función simbólica de sustitución"
+msgstr "No se reconoce la función simbólica de sustitución"
-#: config/tc-tic54x.c:4559
+#: config/tc-tic54x.c:4548
msgid "Missing '(' after substitution symbol function"
-msgstr "Ausente '(' tras la función simbólica de sustitución"
+msgstr "Falta '(' tras la función simbólica de sustitución"
-#: config/tc-tic54x.c:4572
+#: config/tc-tic54x.c:4561
msgid "Expecting second argument"
msgstr "Se esperaba un segundo argumento"
-#: config/tc-tic54x.c:4590 config/tc-tic54x.c:4640
+#: config/tc-tic54x.c:4579 config/tc-tic54x.c:4629
msgid "Extra junk in function call, expecting ')'"
msgstr "Basura extra en la llamada a función, se esperaba ')'"
-#: config/tc-tic54x.c:4616
+#: config/tc-tic54x.c:4605
msgid "Function expects two arguments"
msgstr "La función espera dos argumentos"
-#: config/tc-tic54x.c:4629
+#: config/tc-tic54x.c:4618
msgid "Expecting character constant argument"
msgstr "Se espera una constante de carácter como argumento"
-#: config/tc-tic54x.c:4635
+#: config/tc-tic54x.c:4624
msgid "Both arguments must be substitution symbols"
msgstr "Ambos argumentos deben ser símbolos de sustitución"
-#: config/tc-tic54x.c:4687
+#: config/tc-tic54x.c:4676
#, c-format
msgid "Invalid subscript (use 1 to %d)"
msgstr "Subíndice inválido (utilice de 1 a %d)"
-#: config/tc-tic54x.c:4697
+#: config/tc-tic54x.c:4686
#, c-format
msgid "Invalid length (use 0 to %d)"
msgstr "Longitud no válida (utilice 0 a %d)"
-#: config/tc-tic54x.c:4707
+#: config/tc-tic54x.c:4696
msgid "Missing ')' in subscripted substitution symbol expression"
-msgstr "Ausente ')' en la expresión simbólico de sustitución suscrito"
+msgstr "Falta ')' en la expresión simbólico de sustitución suscrito"
-#: config/tc-tic54x.c:4727
+#: config/tc-tic54x.c:4716
msgid "Missing forced substitution terminator ':'"
-msgstr "Ausente el terminador de sustitución forzada ':'"
+msgstr "Falta el terminador de sustitución forzada ':'"
-#: config/tc-tic54x.c:4881
+#: config/tc-tic54x.c:4870
#, fuzzy, c-format
#| msgid "Instruction does not fit in available delay slots (%d-word insn, %d slots left)"
msgid "Instruction does not fit in available delay slots (%d-word insn, %d slot left)"
@@ -19971,22 +19869,22 @@ msgid_plural "Instruction does not fit in available delay slots (%d-word insn, %
msgstr[0] "La instrucción no cabe en las ranuras de retardo disponibles (%d insns word, %d ranuras restantes)"
msgstr[1] "La instrucción no cabe en las ranuras de retardo disponibles (%d insns word, %d ranuras restantes)"
-#: config/tc-tic54x.c:4925
+#: config/tc-tic54x.c:4914
#, c-format
msgid "Unrecognized parallel instruction '%s'"
-msgstr "No reconocida la instrucción paralela «%s»"
+msgstr "No se reconoce la instrucción paralela «%s»"
-#: config/tc-tic54x.c:4937
+#: config/tc-tic54x.c:4926
#, c-format
msgid "Instruction '%s' requires an LP cpu version"
msgstr "La instrucción «%s» requiere una versión de cpu LP"
-#: config/tc-tic54x.c:4944
+#: config/tc-tic54x.c:4933
#, c-format
msgid "Instruction '%s' requires far mode addressing"
msgstr "La instrucción «%s» requiere el modo de direccionamiento far"
-#: config/tc-tic54x.c:4956
+#: config/tc-tic54x.c:4945
#, fuzzy, c-format
#| msgid "Instruction does not fit in available delay slots (%d-word insn, %d slots left). Resulting behavior is undefined."
msgid "Instruction does not fit in available delay slots (%d-word insn, %d slot left). Resulting behavior is undefined."
@@ -19994,34 +19892,34 @@ msgid_plural "Instruction does not fit in available delay slots (%d-word insn, %
msgstr[0] "La instrucción no cabe en las ranuras de retardo disponibles (%d insns word, %d ranuras restantes). El comportamiento resultante no está definido."
msgstr[1] "La instrucción no cabe en las ranuras de retardo disponibles (%d insns word, %d ranuras restantes). El comportamiento resultante no está definido."
-#: config/tc-tic54x.c:4970
+#: config/tc-tic54x.c:4959
msgid "Instructions which cause PC discontinuity are not allowed in a delay slot. Resulting behavior is undefined."
msgstr "Las instrucciones que causan discontinuidad en el PC no se permiten en una ranura de retardo. El comportamiento resultante no está definido."
-#: config/tc-tic54x.c:4981
+#: config/tc-tic54x.c:4970
#, c-format
msgid "'%s' is not repeatable. Resulting behavior is undefined."
msgstr "«%s» no se puede repetir. El comportamiento resultante no está definido."
-#: config/tc-tic54x.c:4985
+#: config/tc-tic54x.c:4974
msgid "Instructions using long offset modifiers or absolute addresses are not repeatable. Resulting behavior is undefined."
msgstr "Las instrucciones utilizando modificadores de desplazamiento long o direcciones absolutas no se pueden repetir. El comportamiento resultante no está definido."
-#: config/tc-tic54x.c:5129
+#: config/tc-tic54x.c:5118
#, c-format
msgid "Unsupported relocation size %d"
msgstr "No se admite el tamaño de reubicación %d"
-#: config/tc-tic54x.c:5260
+#: config/tc-tic54x.c:5249
msgid "non-absolute value used with .space/.bes"
msgstr "se utilizó un valor no absoluto con .space/.bes"
-#: config/tc-tic54x.c:5264
+#: config/tc-tic54x.c:5253
#, c-format
msgid "negative value ignored in %s"
msgstr "se descarta el valor negativo en %s"
-#: config/tc-tic54x.c:5352
+#: config/tc-tic54x.c:5341
#, c-format
msgid "attempt to .space/.bes backwards? (%ld)"
msgstr "¿se intentó hacer .space/.bes hacia atrás? (%ld)"
@@ -20124,33 +20022,33 @@ msgstr "directiva inesperada .handlerdata"
msgid "personality routine required before .handlerdata directive"
msgstr "se requirió una rutina personality antes de la directiva .handlerdata"
-#: config/tc-tic6x.c:530
+#: config/tc-tic6x.c:531
msgid "expected symbol"
msgstr "se esperaba un símbolo"
-#: config/tc-tic6x.c:577
+#: config/tc-tic6x.c:578
msgid "expected comma after symbol name"
msgstr "se esperaba una coma tras nombre del símbolo"
-#: config/tc-tic6x.c:587
+#: config/tc-tic6x.c:588
#, c-format
msgid "invalid length for .scomm directive"
msgstr "longitud no válida para la directiva .scomm"
-#: config/tc-tic6x.c:601
+#: config/tc-tic6x.c:602
msgid "alignment is not a positive number"
msgstr "la alineamiento no es un número positivo"
-#: config/tc-tic6x.c:613
+#: config/tc-tic6x.c:614
msgid "alignment is not a power of 2"
msgstr "la alineamiento no es una potencia de 2"
-#: config/tc-tic6x.c:628
+#: config/tc-tic6x.c:629
#, c-format
msgid "attempt to re-define symbol `%s'"
msgstr "se intentó redefinir el símbolo «%s»"
-#: config/tc-tic6x.c:637
+#: config/tc-tic6x.c:638
#, c-format
msgid "attempt to redefine `%s' with a different length"
msgstr "se intentó redefinir «%s» con una longitud diferente"
@@ -20300,7 +20198,7 @@ msgstr "el desplazamiento en operando %u de '%.*s' está fuera de rango"
msgid "functional unit already masked for operand %u of '%.*s'"
msgstr "unidad funcional ya está enmascarada para el operando %u de '%.*s'"
-#: config/tc-tic6x.c:2961 config/tc-tic6x.c:3719
+#: config/tc-tic6x.c:2961 config/tc-tic6x.c:3718
#, c-format
msgid "'%.*s' instruction not in a software pipelined loop"
msgstr "la instrucción '%.*s' no está en un ciclo entubado por software"
@@ -20310,200 +20208,200 @@ msgstr "la instrucción '%.*s' no está en un ciclo entubado por software"
msgid "instruction '%.*s' cannot be predicated"
msgstr "la instrucción '%.*s' no puede ser predicado"
-#: config/tc-tic6x.c:3327
+#: config/tc-tic6x.c:3326
#, c-format
msgid "'%.*s' instruction not supported on this architecture"
msgstr "la instrucción '%.*s' no se admite en esta arquitectura"
-#: config/tc-tic6x.c:3335
+#: config/tc-tic6x.c:3334
#, c-format
msgid "'%.*s' instruction not supported on this functional unit"
msgstr "la instrucción '%.*s' no se admite en esta unidad funcional"
-#: config/tc-tic6x.c:3343
+#: config/tc-tic6x.c:3342
#, c-format
msgid "'%.*s' instruction not supported on this functional unit for this architecture"
msgstr "la instrucción '%.*s' no se admite en esta unidad funcional para esta arquitectura"
-#: config/tc-tic6x.c:3363
+#: config/tc-tic6x.c:3362
msgid "missing operand after comma"
-msgstr "ausente operando tras la coma"
+msgstr "falta operando tras la coma"
-#: config/tc-tic6x.c:3371 config/tc-tic6x.c:3389
+#: config/tc-tic6x.c:3370 config/tc-tic6x.c:3388
#, c-format
msgid "too many operands to '%.*s'"
msgstr "demasiados operandos para '%.*s'"
-#: config/tc-tic6x.c:3402
+#: config/tc-tic6x.c:3401
#, c-format
msgid "bad number of operands to '%.*s'"
msgstr "número incorrecto de operandos para '%.*s'"
-#: config/tc-tic6x.c:3474
+#: config/tc-tic6x.c:3473
#, c-format
msgid "operand %u of '%.*s' not constant"
msgstr "operando %u de '%.*s' no es una constante"
-#: config/tc-tic6x.c:3479
+#: config/tc-tic6x.c:3478
#, c-format
msgid "operand %u of '%.*s' on wrong side"
msgstr "operando %u de '%.*s' está en el lado incorrecto"
-#: config/tc-tic6x.c:3484
+#: config/tc-tic6x.c:3483
#, c-format
msgid "operand %u of '%.*s' not a valid return address register"
msgstr "operando %u de '%.*s' no es un registro direccional de devolución válido"
-#: config/tc-tic6x.c:3490
+#: config/tc-tic6x.c:3489
#, c-format
msgid "operand %u of '%.*s' is write-only"
msgstr "operando %u de '%.*s' es de solo escritura"
-#: config/tc-tic6x.c:3495
+#: config/tc-tic6x.c:3494
#, c-format
msgid "operand %u of '%.*s' is read-only"
msgstr "operando %u de '%.*s' es de solo lectura"
-#: config/tc-tic6x.c:3500
+#: config/tc-tic6x.c:3499
#, c-format
msgid "operand %u of '%.*s' not a valid memory reference"
msgstr "operando %u de '%.*s' no es una referencia de memoria válida"
-#: config/tc-tic6x.c:3506
+#: config/tc-tic6x.c:3505
#, c-format
msgid "operand %u of '%.*s' not a valid base address register"
msgstr "operando %u de '%.*s' no es un registro direccional base válido"
-#: config/tc-tic6x.c:3592
+#: config/tc-tic6x.c:3591
#, c-format
msgid "bad operand combination for '%.*s'"
msgstr "combinación de operandos incorrecta para '%.*s'"
-#: config/tc-tic6x.c:3638
+#: config/tc-tic6x.c:3637
msgid "parallel instruction not following another instruction"
msgstr "la instrucción paralela no está a continuación de otra instrucción"
-#: config/tc-tic6x.c:3644
+#: config/tc-tic6x.c:3643
msgid "too many instructions in execute packet"
msgstr "demasiadas instrucciones en el paquete de ejecución"
-#: config/tc-tic6x.c:3649
+#: config/tc-tic6x.c:3648
msgid "label not at start of execute packet"
msgstr "la etiqueta no está al inicio del paquete de ejecución"
-#: config/tc-tic6x.c:3652
+#: config/tc-tic6x.c:3651
#, c-format
msgid "'%.*s' instruction not at start of execute packet"
msgstr "la instrucción '%.*s' no está al inicio del paquete de ejecución"
-#: config/tc-tic6x.c:3700
+#: config/tc-tic6x.c:3699
msgid "functional unit already used in this execute packet"
msgstr "la unidad funcional ya está en uso en este paquete de ejecución"
-#: config/tc-tic6x.c:3708
+#: config/tc-tic6x.c:3707
msgid "nested software pipelined loop"
msgstr "ciclo entubado por software anidado"
-#: config/tc-tic6x.c:3727
+#: config/tc-tic6x.c:3726
msgid "'||^' without previous SPMASK"
msgstr "'||^' sin un SPMASK previo"
-#: config/tc-tic6x.c:3729
+#: config/tc-tic6x.c:3728
msgid "cannot mask instruction using no functional unit"
msgstr "no se puede enmascarar la instrucción sin una unidad funcional"
-#: config/tc-tic6x.c:3741
+#: config/tc-tic6x.c:3740
msgid "functional unit already masked"
msgstr "la unidad funcional ya está enmascarada"
-#: config/tc-tic6x.c:3806
+#: config/tc-tic6x.c:3805
msgid "value too large for 2-byte field"
msgstr "valor demasiado grande para un campo de 2 bytes"
-#: config/tc-tic6x.c:3816
+#: config/tc-tic6x.c:3815
msgid "value too large for 1-byte field"
msgstr "valor demasiado grande para un campo de 1 byte"
-#: config/tc-tic6x.c:3943
+#: config/tc-tic6x.c:3942
msgid "immediate offset not 2-byte-aligned"
msgstr "el desplazamiento inmediato no está alineado a 2 bytes"
-#: config/tc-tic6x.c:3971
+#: config/tc-tic6x.c:3970
msgid "immediate offset not 4-byte-aligned"
msgstr "el desplazamiento inmediato no está alineado a 4 bytes"
-#: config/tc-tic6x.c:3985
+#: config/tc-tic6x.c:3984
msgid "addend used with $DSBT_INDEX"
msgstr "se usó addend con $DSBT_INDEX"
-#: config/tc-tic6x.c:3999 config/tc-tic6x.c:4017 config/tc-tic6x.c:4035
-#: config/tc-tic6x.c:4053
+#: config/tc-tic6x.c:3998 config/tc-tic6x.c:4016 config/tc-tic6x.c:4034
+#: config/tc-tic6x.c:4052
msgid "PC-relative offset not 4-byte-aligned"
msgstr "Desplazamiento relativo al PC no alineado a 4-bytes"
-#: config/tc-tic6x.c:4002 config/tc-tic6x.c:4020 config/tc-tic6x.c:4038
-#: config/tc-tic6x.c:4056
+#: config/tc-tic6x.c:4001 config/tc-tic6x.c:4019 config/tc-tic6x.c:4037
+#: config/tc-tic6x.c:4055
msgid "PC-relative offset out of range"
msgstr "Desplazamiento relativo al PC está fuera de rango"
-#: config/tc-tic6x.c:4537
+#: config/tc-tic6x.c:4536
#, c-format
msgid "undefined symbol %s in PCR relocation"
msgstr "símbolo indefinido %s en reubicación PCR"
-#: config/tc-tic6x.c:4654
+#: config/tc-tic6x.c:4653
#, c-format
msgid "group section `%s' has no group signature"
msgstr "sección de grupo «%s» no tiene firma de grupo"
-#: config/tc-tic6x.c:4806
+#: config/tc-tic6x.c:4805
msgid "missing .endp before .cfi_startproc"
-msgstr "ausente .endp antes de .cfi_startproc"
+msgstr "falta .endp antes de .cfi_startproc"
-#: config/tc-tic6x.c:4911
+#: config/tc-tic6x.c:4910
msgid "stack pointer offset too large for personality routine"
msgstr "el desplazamiento del puntero de pila es demasiado grande para la rutina personality"
-#: config/tc-tic6x.c:4918
+#: config/tc-tic6x.c:4917
msgid "stack frame layout does not match personality routine"
msgstr "la disposición del marco de pila no coincide con la rutina personality"
-#: config/tc-tic6x.c:5052
+#: config/tc-tic6x.c:5051
msgid "too many unwinding instructions"
msgstr "demasiadas instrucciones de desenredo"
-#: config/tc-tic6x.c:5127 config/tc-tic6x.c:5140 config/tc-tic6x.c:5148
+#: config/tc-tic6x.c:5126 config/tc-tic6x.c:5139 config/tc-tic6x.c:5147
#, c-format
msgid "unable to generate unwinding opcode for reg %d"
msgstr "incapaz de generar códigos operacionales de desenredo para el registro %d"
-#: config/tc-tic6x.c:5157
+#: config/tc-tic6x.c:5156
msgid "unable to restore return address from previously restored reg"
msgstr "no se puede restaurar la dirección de devolución para el registro previamente restaurado"
-#: config/tc-tic6x.c:5169
+#: config/tc-tic6x.c:5168
#, c-format
msgid "unhandled CFA insn for unwinding (%d)"
msgstr "insn CFA sin manipular para el desenredo (%d)"
-#: config/tc-tic6x.c:5179
+#: config/tc-tic6x.c:5178
#, c-format
msgid "unable to generate unwinding opcode for frame pointer reg %d"
msgstr "incapaz de generar código de operación de desenredo para el registro de puntero a marco %d"
-#: config/tc-tic6x.c:5188
+#: config/tc-tic6x.c:5187
msgid "unable to generate unwinding opcode for frame pointer offset"
msgstr "incapaz de generar código de operación de desenredo para el desplazamiento de puntero a marco"
-#: config/tc-tic6x.c:5197
+#: config/tc-tic6x.c:5196
msgid "unwound stack pointer not doubleword aligned"
msgstr "el puntero de pila desenredado no está alineado a dobleword"
-#: config/tc-tic6x.c:5342
+#: config/tc-tic6x.c:5341
msgid "stack frame layout too complex for unwinder"
msgstr "la disposición del marco de pila es demasiado complejo para el desenredador"
-#: config/tc-tic6x.c:5359
+#: config/tc-tic6x.c:5358
msgid "unwound frame has negative size"
msgstr "el marco desenredado tiene tamaño negativo"
@@ -20547,66 +20445,66 @@ msgstr "'%s 'no se puede agrupar con otras instrucciones."
msgid "Invalid combination of instructions for bundle."
msgstr "Combinación no válida de instrucciones para el agrupado."
-#: config/tc-tilegx.c:976 config/tc-tilepro.c:863
+#: config/tc-tilegx.c:974 config/tc-tilepro.c:861
msgid "instruction address is not a multiple of 8"
msgstr "la instrucción direccional no es un múltiplo de 8"
-#: config/tc-tilegx.c:1053 config/tc-tilepro.c:941
+#: config/tc-tilegx.c:1051 config/tc-tilepro.c:939
msgid "Invalid expression."
msgstr "Expresión no válida."
-#: config/tc-tilegx.c:1099 config/tc-tilepro.c:983
+#: config/tc-tilegx.c:1092 config/tc-tilepro.c:980
#, c-format
msgid "Expected register, got '%s'."
msgstr "Se esperaba un registro, se obtuvo «%s»."
-#: config/tc-tilegx.c:1106 config/tc-tilepro.c:990
+#: config/tc-tilegx.c:1098 config/tc-tilepro.c:986
#, c-format
msgid "Found use of non-canonical register name %s; use %s instead."
msgstr "Se encontró el uso del nombre de registro %s que no es canónico; use %s en su lugar."
-#: config/tc-tilegx.c:1166 config/tc-tilepro.c:1049
+#: config/tc-tilegx.c:1158 config/tc-tilepro.c:1045
#, c-format
msgid "Too few operands to '%s'."
-msgstr "Ausenten operandos para «%s»."
+msgstr "Faltan operandos para «%s»."
-#: config/tc-tilegx.c:1171 config/tc-tilepro.c:1054
+#: config/tc-tilegx.c:1163 config/tc-tilepro.c:1050
#, c-format
msgid "Unexpected character '%c' after operand %d to %s."
msgstr "Carácter inesperado '%c' antes de operando %d para %s."
-#: config/tc-tilegx.c:1192 config/tc-tilepro.c:1075
+#: config/tc-tilegx.c:1184 config/tc-tilepro.c:1071
msgid "Expected immediate expression"
msgstr "Se esperaba una expresión inmediata"
-#: config/tc-tilegx.c:1205 config/tc-tilegx.c:1807 config/tc-tilepro.c:1088
-#: config/tc-tilepro.c:1584
+#: config/tc-tilegx.c:1197 config/tc-tilegx.c:1799 config/tc-tilepro.c:1084
+#: config/tc-tilepro.c:1580
msgid "Found '}' when not bundling."
msgstr "Se encontró '}' cuando no se está agrupando."
-#: config/tc-tilegx.c:1246 config/tc-tilepro.c:1128
+#: config/tc-tilegx.c:1238 config/tc-tilepro.c:1124
#, c-format
msgid "Unknown opcode `%.*s'."
msgstr "Desconoce código de operación `%.*s'."
-#: config/tc-tilegx.c:1257 config/tc-tilepro.c:1139
+#: config/tc-tilegx.c:1249 config/tc-tilepro.c:1135
msgid "Too many instructions for bundle."
msgstr "Demasiadas instrucciones para la agrupación."
-#: config/tc-tilegx.c:1349 config/tc-tilepro.c:1221
+#: config/tc-tilegx.c:1341 config/tc-tilepro.c:1217
msgid "Bad call to md_atof ()"
msgstr "Llamada incorrecta a md_atof ()"
-#: config/tc-tilegx.c:1425 config/tc-tilepro.c:1284
+#: config/tc-tilegx.c:1417 config/tc-tilepro.c:1280
msgid "This operator only produces two byte values."
msgstr "Este operador solo produce valores de dos bytes."
-#: config/tc-tilegx.c:1752 config/tc-tilepro.c:1529
+#: config/tc-tilegx.c:1744 config/tc-tilepro.c:1525
#, c-format
msgid "internal error? cannot generate `%s' relocation (%d, %d)"
msgstr "¿Error interno? incapaz de generar la reubicación «%s» (%d, %d)"
-#: config/tc-tilegx.c:1795 config/tc-tilepro.c:1572
+#: config/tc-tilegx.c:1787 config/tc-tilepro.c:1568
msgid "Found '{' when already bundling."
msgstr "Se encontró '{' cuando ya estaba agrupado."
@@ -20619,481 +20517,481 @@ msgstr ""
" -Q se descarta\n"
" -V escribe el número de versión del ensamblador\n"
-#: config/tc-v850.c:291
+#: config/tc-v850.c:290
#, c-format
msgid ".COMMon length (%d.) < 0! Ignored."
msgstr "¡Longitud .COMMún (%d.) < 0! Se descarta."
-#: config/tc-v850.c:312
+#: config/tc-v850.c:311
#, c-format
msgid "Length of .comm \"%s\" is already %ld. Not changed to %d."
msgstr "La longitud de .comm «%s» ya es %ld. No se cambia a %d."
-#: config/tc-v850.c:338
+#: config/tc-v850.c:337
msgid "Common alignment negative; 0 assumed"
msgstr "Alineación común negativa; se asume 0"
-#: config/tc-v850.c:542
+#: config/tc-v850.c:540
msgid ".longcall pseudo-op seen when not relaxing"
msgstr "se vio el pseudo-operador .longcall cuando no se estaba relajando"
-#: config/tc-v850.c:544
+#: config/tc-v850.c:542
msgid ".longjump pseudo-op seen when not relaxing"
msgstr "se vio el pseudo-operador .longjump cuando no se estaba relajando"
-#: config/tc-v850.c:551
+#: config/tc-v850.c:549
msgid "bad .longcall format"
msgstr "formato de .longcall incorrecto"
-#: config/tc-v850.c:1389
+#: config/tc-v850.c:1386
#, c-format
msgid "unknown operand shift: %x\n"
msgstr "operando de desplazamiento desconocido: %x\n"
-#: config/tc-v850.c:1390
+#: config/tc-v850.c:1387
msgid "internal failure in parse_register_list"
msgstr "falla interna en parse_register_list"
-#: config/tc-v850.c:1406
+#: config/tc-v850.c:1403
msgid "constant expression or register list expected"
msgstr "se esperaba una expresión constante o una lista de registros"
-#: config/tc-v850.c:1411
+#: config/tc-v850.c:1408
msgid "high bits set in register list expression"
msgstr "se establecieron los bits altos en la expresión de lista de registros"
-#: config/tc-v850.c:1449 config/tc-v850.c:1506
+#: config/tc-v850.c:1446 config/tc-v850.c:1503
msgid "illegal register included in list"
msgstr "se incluyó un registro alegal en la lista"
-#: config/tc-v850.c:1455
+#: config/tc-v850.c:1452
msgid "system registers cannot be included in list"
msgstr "los registros del sistema no se pueden incluir en la lista"
-#: config/tc-v850.c:1481
+#: config/tc-v850.c:1478
msgid "second register should follow dash in register list"
msgstr "el segundo registro debe estar a continuación de un guión en la lista de registros"
-#: config/tc-v850.c:1486
+#: config/tc-v850.c:1483
msgid "second register should be greater than first register"
msgstr "el segundo registro debe ser mayor que el primer registro"
-#: config/tc-v850.c:1536
+#: config/tc-v850.c:1533
#, c-format
msgid " V850 options:\n"
msgstr " Opciones de V850:\n"
-#: config/tc-v850.c:1537
+#: config/tc-v850.c:1534
#, c-format
msgid " -mwarn-signed-overflow Warn if signed immediate values overflow\n"
msgstr " -mwarn-signed-overflow Avisa si los valores inmediatos con signo desbordan\n"
-#: config/tc-v850.c:1538
+#: config/tc-v850.c:1535
#, c-format
msgid " -mwarn-unsigned-overflow Warn if unsigned immediate values overflow\n"
msgstr " -mwarn-unsigned-overflow Avisa si los valores inmediato sin signo desbordan\n"
-#: config/tc-v850.c:1539
+#: config/tc-v850.c:1536
#, c-format
msgid " -mv850 The code is targeted at the v850\n"
msgstr " -mv850 El código está destinado para el v850\n"
-#: config/tc-v850.c:1540
+#: config/tc-v850.c:1537
#, c-format
msgid " -mv850e The code is targeted at the v850e\n"
msgstr " -mv850e El código está destinado para el v850e\n"
-#: config/tc-v850.c:1541
+#: config/tc-v850.c:1538
#, c-format
msgid " -mv850e1 The code is targeted at the v850e1\n"
msgstr " -mv850e1 El código está destinado para el v850e1\n"
-#: config/tc-v850.c:1542
+#: config/tc-v850.c:1539
#, c-format
msgid " -mv850e2 The code is targeted at the v850e2\n"
msgstr " -mv850e2 El código está destinado para el v850e2\n"
-#: config/tc-v850.c:1543
+#: config/tc-v850.c:1540
#, c-format
msgid " -mv850e2v3 The code is targeted at the v850e2v3\n"
msgstr " -mv850e2v3 El código está destinado para el v850e2v3\n"
-#: config/tc-v850.c:1544
+#: config/tc-v850.c:1541
#, c-format
msgid " -mv850e2v4 Alias for -mv850e3v5\n"
msgstr " -mv850e2v4 Alias para -mv850e3v5\n"
-#: config/tc-v850.c:1545
+#: config/tc-v850.c:1542
#, c-format
msgid " -mv850e3v5 The code is targeted at the v850e3v5\n"
msgstr " -mv850e3v5 El código está destinado para el v850e3v5\n"
-#: config/tc-v850.c:1546
+#: config/tc-v850.c:1543
#, c-format
msgid " -mrelax Enable relaxation\n"
msgstr " -mrelax Activa la relajación\n"
-#: config/tc-v850.c:1547
+#: config/tc-v850.c:1544
#, c-format
msgid " --disp-size-default-22 branch displacement with unknown size is 22 bits (default)\n"
-msgstr " --disp-size-default-22 el desplazamiento de ramificación de tamaño desconocido es de 22 bits (por defecto)\n"
+msgstr " --disp-size-default-22 el desplazamiento de bifurcación de tamaño desconocido es de 22 bits (por defecto)\n"
-#: config/tc-v850.c:1548
+#: config/tc-v850.c:1545
#, c-format
msgid " --disp-size-default-32 branch displacement with unknown size is 32 bits\n"
-msgstr " --disp-size-default-32 el desplazamiento de ramificación de tamaño desconocido es de 32 bits\n"
+msgstr " --disp-size-default-32 el desplazamiento de bifurcación de tamaño desconocido es de 32 bits\n"
-#: config/tc-v850.c:1549
+#: config/tc-v850.c:1546
#, c-format
msgid " -mextension enable extension opcode support\n"
msgstr " -mextension activa el soporte de códigod operacional de extensión\n"
-#: config/tc-v850.c:1550
+#: config/tc-v850.c:1547
#, c-format
msgid " -mno-bcond17\t\t disable b<cond> disp17 instruction\n"
msgstr " -mno-bcond17\t\t desactiva la instrucción b<cond> disp17\n"
-#: config/tc-v850.c:1551
+#: config/tc-v850.c:1548
#, c-format
msgid " -mno-stld23\t\t disable st/ld offset23 instruction\n"
msgstr " -mno-stld23\t\t desactiva la instrucción desplazamiento st/ld offset23\n"
-#: config/tc-v850.c:1552
+#: config/tc-v850.c:1549
#, c-format
msgid " -mgcc-abi Mark the binary as using the old GCC ABI\n"
msgstr ""
" -mgcc-abi marca el binario como empleando el antiguo API GCC\n"
"\n"
-#: config/tc-v850.c:1553
+#: config/tc-v850.c:1550
#, c-format
msgid " -mrh850-abi Mark the binary as using the RH850 ABI (default)\n"
msgstr " -mrh850-abi Marca el binario como utilizando el ABI RH850 (predet.)\n"
-#: config/tc-v850.c:1554
+#: config/tc-v850.c:1551
#, c-format
msgid " -m8byte-align Mark the binary as using 64-bit alignment\n"
msgstr ""
" -m8byte-align Marca el binario como utilizando alineamiento de 64-bit\n"
"\n"
-#: config/tc-v850.c:1555
+#: config/tc-v850.c:1552
#, c-format
msgid " -m4byte-align Mark the binary as using 32-bit alignment (default)\n"
-msgstr " -m4byte-align Marca el binario como alineamiento de 32-bit utilizado (predet.)\n"
+msgstr " -m4byte-align Marca el binario como alineamiento de 32 bits utilizado (predet.)\n"
-#: config/tc-v850.c:1556
+#: config/tc-v850.c:1553
#, c-format
msgid " -msoft-float Mark the binary as not using FP insns (default for pre e2v3)\n"
msgstr ""
-#: config/tc-v850.c:1557
+#: config/tc-v850.c:1554
#, c-format
msgid " -mhard-float Mark the binary as using FP insns (default for e2v3 and up)\n"
msgstr ""
-#: config/tc-v850.c:1945
+#: config/tc-v850.c:1922
#, c-format
msgid "Unable to determine default target processor from string: %s"
msgstr "No se puede determinar el procesador objetivo por defecto de la cadena: %s"
-#: config/tc-v850.c:1988
+#: config/tc-v850.c:1965
msgid "hi0() relocation used on an instruction which does not support it"
msgstr "se utilizó una reubicación hi0() en una instrucción que no la admite"
-#: config/tc-v850.c:2008
+#: config/tc-v850.c:1985
msgid "hi() relocation used on an instruction which does not support it"
msgstr "se utilizó una reubicación hi() en una instrucción que no la admite"
-#: config/tc-v850.c:2027
+#: config/tc-v850.c:2004
msgid "lo() relocation used on an instruction which does not support it"
msgstr "se utilizó una reubicación lo() en una instrucción que no la admite"
-#: config/tc-v850.c:2038
+#: config/tc-v850.c:2015
msgid "ctoff() is not supported by the rh850 ABI. Use -mgcc-abi instead"
msgstr ""
-#: config/tc-v850.c:2054
+#: config/tc-v850.c:2031
msgid "ctoff() relocation used on an instruction which does not support it"
msgstr "se utilizó una reubicación ctoff() en una instrucción que no la admite"
-#: config/tc-v850.c:2073
+#: config/tc-v850.c:2050
msgid "sdaoff() relocation used on an instruction which does not support it"
msgstr "se utilizó una reubicación sdaoff() en una instrucción que no la admite"
-#: config/tc-v850.c:2092
+#: config/tc-v850.c:2069
msgid "zdaoff() relocation used on an instruction which does not support it"
msgstr "se utilizó una reubicación zdaoff() en una instrucción que no la admite"
-#: config/tc-v850.c:2124
+#: config/tc-v850.c:2101
msgid "tdaoff() relocation used on an instruction which does not support it"
msgstr "se utilizó una reubicación tdaoff() en una instrucción que no la admite"
-#: config/tc-v850.c:2265
+#: config/tc-v850.c:2242
#, c-format
msgid "operand out of range (%d is not between %d and %d)"
msgstr "operando fuera de rango (%d no está entre %d y %d)"
-#: config/tc-v850.c:2348
+#: config/tc-v850.c:2325
msgid "st/ld offset 23 instruction was disabled ."
msgstr "st/ld desplaza 23 instrucciones fue desactivado."
-#: config/tc-v850.c:2357
+#: config/tc-v850.c:2334
msgid "Target processor does not support this instruction."
msgstr "El procesador objetivo no admite esta instrucción."
-#: config/tc-v850.c:2469 config/tc-v850.c:2479 config/tc-v850.c:2500
-#: config/tc-v850.c:2514 config/tc-v850.c:2520 config/tc-v850.c:2544
-#: config/tc-v850.c:2550 config/tc-v850.c:2557 config/tc-v850.c:2571
-#: config/tc-v850.c:2585 config/tc-v850.c:2591 config/tc-v850.c:2929
+#: config/tc-v850.c:2446 config/tc-v850.c:2456 config/tc-v850.c:2477
+#: config/tc-v850.c:2491 config/tc-v850.c:2497 config/tc-v850.c:2521
+#: config/tc-v850.c:2527 config/tc-v850.c:2534 config/tc-v850.c:2548
+#: config/tc-v850.c:2562 config/tc-v850.c:2568 config/tc-v850.c:2906
msgid "immediate operand is too large"
msgstr "operando inmediato es demasiado grande"
-#: config/tc-v850.c:2486
+#: config/tc-v850.c:2463
#, c-format
msgid "AAARG -> unhandled constant reloc: %d"
msgstr "AAARG → reubicación constante no manipulado: %d"
-#: config/tc-v850.c:2621 config/tc-v850.c:2632
+#: config/tc-v850.c:2598 config/tc-v850.c:2609
msgid "constant too big to fit into instruction"
msgstr "la constante es demasiado grande para caber en la instrucción"
-#: config/tc-v850.c:2707
+#: config/tc-v850.c:2684
msgid "odd number cannot be used here"
msgstr "no se puede usar aquí un número impar"
-#: config/tc-v850.c:2752
+#: config/tc-v850.c:2729
msgid "invalid register name"
msgstr "nombre de registro inválido"
-#: config/tc-v850.c:2758
+#: config/tc-v850.c:2735
msgid "register r0 cannot be used here"
msgstr "el registro r0 no se puede usar aquí"
-#: config/tc-v850.c:2764
+#: config/tc-v850.c:2741
msgid "odd register cannot be used here"
msgstr "no se puede usar aquí un registro impar"
-#: config/tc-v850.c:2773
+#: config/tc-v850.c:2750
msgid "invalid system register name"
msgstr "nombre de registro de sistema inválido"
-#: config/tc-v850.c:2787
+#: config/tc-v850.c:2764
msgid "expected EP register"
msgstr "se esperaba el registro EP"
-#: config/tc-v850.c:2804 config/tc-v850.c:2817
+#: config/tc-v850.c:2781 config/tc-v850.c:2794
msgid "invalid condition code name"
msgstr "nombre de código de condición inválido"
-#: config/tc-v850.c:2810
+#: config/tc-v850.c:2787
msgid "condition sa cannot be used here"
msgstr "la condición sa no se puede usar aquí"
-#: config/tc-v850.c:2823
+#: config/tc-v850.c:2800
msgid "invalid cache operation name"
msgstr "nompre operacional caché inválido"
-#: config/tc-v850.c:2828
+#: config/tc-v850.c:2805
msgid "invalid pref operation name"
msgstr "nombre pre operacional inválido"
-#: config/tc-v850.c:2833
+#: config/tc-v850.c:2810
msgid "invalid vector register name"
msgstr "nombre de registro vectorial no válida"
-#: config/tc-v850.c:2871
+#: config/tc-v850.c:2848
msgid "syntax error: value is missing before the register name"
-msgstr "error de sintaxis: ausente el valor antes del nombre de registro"
+msgstr "error de sintaxis: falta el valor antes del nombre de registro"
-#: config/tc-v850.c:2873
+#: config/tc-v850.c:2850
msgid "syntax error: register not expected"
msgstr "error de sintaxis: no se esperaba un registro"
-#: config/tc-v850.c:2887
+#: config/tc-v850.c:2864
msgid "syntax error: system register not expected"
msgstr "error de sintaxis: no se esperaba un registro de sistema"
-#: config/tc-v850.c:2892 config/tc-v850.c:2897
+#: config/tc-v850.c:2869 config/tc-v850.c:2874
msgid "syntax error: condition code not expected"
msgstr "error de sintaxis: no es esperaba código de condición"
-#: config/tc-v850.c:2902
+#: config/tc-v850.c:2879
msgid "syntax error: vector register not expected"
msgstr "error de sintaxis: registro vectorial no esperado"
-#: config/tc-v850.c:2913
+#: config/tc-v850.c:2890
msgid "immediate 0 cannot be used here"
msgstr "el inmediato 0 no se puede usar aquí"
# FIXME: ver en el código si se puede cambiar "no es match" por "no coincide" - cfuga
-#: config/tc-v850.c:2937
+#: config/tc-v850.c:2914
msgid "immediate operand is not match"
msgstr "operando inmediato no coincide"
-#: config/tc-v850.c:2950
+#: config/tc-v850.c:2927
msgid "displacement is too large"
msgstr "desubicación demasiado grande"
-#: config/tc-v850.c:2968 config/tc-xtensa.c:13093
+#: config/tc-v850.c:2945 config/tc-xtensa.c:13099
msgid "invalid operand"
msgstr "operando inválido"
-#: config/tc-v850.c:3080
+#: config/tc-v850.c:3057
msgid "loop: 32-bit displacement not supported"
-msgstr "bucle: desplazamiento de 32-bit no compatible"
+msgstr "bucle: desplazamiento de 32 bits no compatible"
-#: config/tc-vax.c:1339
+#: config/tc-vax.c:1337
msgid "no '[' to match ']'"
msgstr "no hay '[' que coincida con ']'"
-#: config/tc-vax.c:1355
+#: config/tc-vax.c:1353
msgid "bad register in []"
msgstr "el registro incorrecto en []"
-#: config/tc-vax.c:1357
+#: config/tc-vax.c:1355
msgid "[PC] index banned"
msgstr "índice [PC] prohibido"
-#: config/tc-vax.c:1393
+#: config/tc-vax.c:1391
msgid "no '(' to match ')'"
msgstr "no hay '(' que coincida con ')'"
-#: config/tc-vax.c:1509
+#: config/tc-vax.c:1507
msgid "invalid branch operand"
-msgstr "operando de ramificación inválido"
+msgstr "operando de bifurcación inválido"
-#: config/tc-vax.c:1536
+#: config/tc-vax.c:1534
msgid "address prohibits @"
msgstr "la dirección prohibe @"
-#: config/tc-vax.c:1538
+#: config/tc-vax.c:1536
msgid "address prohibits #"
msgstr "la dirección prohibe #"
-#: config/tc-vax.c:1542
+#: config/tc-vax.c:1540
msgid "address prohibits -()"
msgstr "la dirección prohibe -()"
-#: config/tc-vax.c:1544
+#: config/tc-vax.c:1542
msgid "address prohibits ()+"
msgstr "la dirección prohibe ()+"
-#: config/tc-vax.c:1547
+#: config/tc-vax.c:1545
msgid "address prohibits ()"
msgstr "la dirección prohibe ()"
-#: config/tc-vax.c:1549
+#: config/tc-vax.c:1547
msgid "address prohibits []"
msgstr "la dirección prohibe []"
-#: config/tc-vax.c:1551
+#: config/tc-vax.c:1549
msgid "address prohibits register"
msgstr "la dirección prohibe un registro"
-#: config/tc-vax.c:1553
+#: config/tc-vax.c:1551
msgid "address prohibits displacement length specifier"
msgstr "la dirección prohibe un especificador de longitud de desubicación"
-#: config/tc-vax.c:1581
+#: config/tc-vax.c:1579
msgid "invalid operand of S^#"
msgstr "operando inválido de S^#"
-#: config/tc-vax.c:1594
+#: config/tc-vax.c:1592
msgid "S^# needs expression"
msgstr "S^# necesita una expresión"
-#: config/tc-vax.c:1601
+#: config/tc-vax.c:1599
msgid "S^# may only read-access"
msgstr "S^# tal vez sea solamente para acceso de lectura"
-#: config/tc-vax.c:1624
+#: config/tc-vax.c:1622
msgid "invalid operand of -()"
msgstr "operando inválido de -()"
-#: config/tc-vax.c:1630
+#: config/tc-vax.c:1628
msgid "-(PC) unpredictable"
msgstr "-(PC) impredecible"
-#: config/tc-vax.c:1632
+#: config/tc-vax.c:1630
msgid "[]index same as -()register: unpredictable"
msgstr "[]índice igual que -()registro: impredecible"
-#: config/tc-vax.c:1664
+#: config/tc-vax.c:1662
msgid "invalid operand of ()+"
msgstr "operando inválido de ()+"
-#: config/tc-vax.c:1670
+#: config/tc-vax.c:1668
msgid "(PC)+ unpredictable"
msgstr "(PC)+ impredecible"
-#: config/tc-vax.c:1672
+#: config/tc-vax.c:1670
msgid "[]index same as ()+register: unpredictable"
msgstr "[]índice igual que ()+registro: impredecible"
-#: config/tc-vax.c:1695
+#: config/tc-vax.c:1693
msgid "# conflicts length"
msgstr "# tiene conflictos con la longitud"
-#: config/tc-vax.c:1697
+#: config/tc-vax.c:1695
msgid "# bars register"
msgstr "# prohibe el registro"
-#: config/tc-vax.c:1717
+#: config/tc-vax.c:1715
msgid "writing or modifying # is unpredictable"
msgstr "escribir o modificar # es impredecible"
-#: config/tc-vax.c:1743
+#: config/tc-vax.c:1741
msgid "length not needed"
msgstr "no se necesita la longitud"
-#: config/tc-vax.c:1750
+#: config/tc-vax.c:1748
msgid "can't []index a register, because it has no address"
msgstr "no se puede []indexar un registro, porque no tiene dirección"
-#: config/tc-vax.c:1752
+#: config/tc-vax.c:1750
msgid "a register has no address"
msgstr "un registro no tiene dirección"
-#: config/tc-vax.c:1761
+#: config/tc-vax.c:1759
msgid "PC part of operand unpredictable"
msgstr "PC como parte operativa es impredecible"
-#: config/tc-vax.c:1919
+#: config/tc-vax.c:1917
msgid "odd number of bytes in operand description"
msgstr "número impar de bytes en la descripción de operando"
-#: config/tc-vax.c:1933
+#: config/tc-vax.c:1931
msgid "Bad operand"
msgstr "Operando incorrecto"
-#: config/tc-vax.c:1938
+#: config/tc-vax.c:1936
msgid "Not enough operands"
msgstr "No hay suficientes operandos"
-#: config/tc-vax.c:2212
+#: config/tc-vax.c:2210
msgid "SYMBOL TABLE not implemented"
msgstr "SYMBOL TABLE no está implementado"
-#: config/tc-vax.c:2216
+#: config/tc-vax.c:2214
msgid "TOKEN TRACE not implemented"
msgstr "TOKEN TRACE no está implementado"
-#: config/tc-vax.c:2220
+#: config/tc-vax.c:2218
#, c-format
msgid "Displacement length %s ignored!"
msgstr "¡Se descarta la longitud de desubicación %s!"
-#: config/tc-vax.c:2224
+#: config/tc-vax.c:2222
#, c-format
msgid "I don't need or use temp. file \"%s\"."
msgstr "No se necesita o se utiliza el fichero temp. «%s»."
-#: config/tc-vax.c:2228
+#: config/tc-vax.c:2226
msgid "I don't use an interpass file! -V ignored"
msgstr "¡No se usa un fichero entre pasos! Se descarta -V"
-#: config/tc-vax.c:2252
+#: config/tc-vax.c:2250
#, c-format
msgid ""
"VAX options:\n"
@@ -21112,7 +21010,7 @@ msgstr ""
"-T\t\t\tse descarta\n"
"-V\t\t\tse descarta\n"
-#: config/tc-vax.c:2261
+#: config/tc-vax.c:2259
#, c-format
msgid ""
"ELF options:\n"
@@ -21120,62 +21018,62 @@ msgid ""
"-Q[y|n]\t\t\tignored\n"
msgstr ""
-#: config/tc-vax.c:2422
+#: config/tc-vax.c:2420
#, c-format
msgid "Ignoring statement due to \"%s\""
msgstr "Se descarta la declaración debido a «%s»"
-#: config/tc-vax.c:2439
+#: config/tc-vax.c:2437
#, c-format
msgid "Aborting because statement has \"%s\""
msgstr "Se aborta porque la declaración tiene «%s»"
-#: config/tc-vax.c:2484
+#: config/tc-vax.c:2482
msgid "Can't relocate expression"
msgstr "No se puede reubicar la expresión"
-#: config/tc-vax.c:2587
+#: config/tc-vax.c:2585
msgid "Bignum not permitted in short literal. Immediate mode assumed."
msgstr "No se permite un número grande en una literal short. Se asume el modo inmediato."
-#: config/tc-vax.c:2596
+#: config/tc-vax.c:2594
msgid "Can't do flonum short literal: immediate mode used."
msgstr "No se puede hacer una literal short de un número de coma flotante: se usa el modo inmediato."
-#: config/tc-vax.c:2643
+#: config/tc-vax.c:2641
#, fuzzy, c-format
#| msgid "A bignum/flonum may not be a displacement: 0x%lx used"
msgid "A bignum/flonum may not be a displacement: 0x%<PRIx64> used"
msgstr "Un número grande/de coma flotante no puede ser una desubicación: se usa 0x%lx"
-#: config/tc-vax.c:2956
+#: config/tc-vax.c:2954
#, c-format
msgid "Short literal overflow(%ld.), immediate mode assumed."
msgstr "Desbordamiento de la literal short (%ld.), se asume el modo inmediato."
-#: config/tc-vax.c:2965
+#: config/tc-vax.c:2963
#, c-format
msgid "Forced short literal to immediate mode. now_seg=%s to_seg=%s"
msgstr "Se fuerza la literal short a modo inmediato. now_seg=%s to_seg=%s"
-#: config/tc-vax.c:3030
+#: config/tc-vax.c:3028
msgid "Length specification ignored. Address mode 9F used"
msgstr "Se descarta la especificación de longitud. Se usa el modo de direccionamiento 9F"
-#: config/tc-vax.c:3088
+#: config/tc-vax.c:3086
msgid "Invalid operand: immediate value used as base address."
msgstr "Operando inválido: valor inmediato empleado como dirección base."
-#: config/tc-vax.c:3090
+#: config/tc-vax.c:3088
msgid "Invalid operand: immediate value used as address."
msgstr "Operando inválido: valor inmediato empleado como dirección."
-#: config/tc-vax.c:3115
+#: config/tc-vax.c:3113
#, c-format
msgid "Symbol %s used as immediate operand in PIC mode."
msgstr "Se utilizó el símbolo %s como operando inmediato en modo PIC."
-#: config/tc-visium.c:836
+#: config/tc-visium.c:821
msgid "Bad call to MD_ATOF()"
msgstr "Equivocación de llamada a MD_ATOF()"
@@ -21227,7 +21125,7 @@ msgstr "indicio de alineamiento ausente"
#: config/tc-wasm32.c:669
msgid "missing offset"
-msgstr "ausente desplazamiento"
+msgstr "falta desplazamiento"
#: config/tc-wasm32.c:675
msgid "missing local index"
@@ -21235,7 +21133,7 @@ msgstr "indexado local ausente"
#: config/tc-wasm32.c:680
msgid "missing break count"
-msgstr "ausente contador de rupturas"
+msgstr "falta contador de rupturas"
#: config/tc-wasm32.c:685
msgid "missing reserved current_memory/grow_memory argument"
@@ -21253,7 +21151,7 @@ msgstr "llamada de firma ausente"
msgid "missing table index"
msgstr "tabla indexada ausente"
-#: config/tc-wasm32.c:726 config/tc-z80.c:3697 read.c:4019
+#: config/tc-wasm32.c:726 config/tc-z80.c:3697 read.c:4072
#, c-format
msgid "junk at end of line, first unrecognized character is `%c'"
msgstr "basura al final de la línea; el primer carácter descartado es `%c'"
@@ -21289,71 +21187,71 @@ msgstr ""
msgid "opcode missing or not found on input line"
msgstr ""
-#: config/tc-xgate.c:497
+#: config/tc-xgate.c:496
#, fuzzy, c-format
msgid "opcode %s not found in opcode hash table"
msgstr "error interno: no se puede dispersar el código de operación «%s»: %s"
-#: config/tc-xgate.c:509
+#: config/tc-xgate.c:508
msgid "matching operands to opcode"
msgstr "coincidiendo operandos para código de operación"
-#: config/tc-xgate.c:549
+#: config/tc-xgate.c:546
msgid ": processing macro, real opcode handle not found in hash"
msgstr ""
-#: config/tc-xgate.c:680
+#: config/tc-xgate.c:677
#, c-format
msgid "Value %ld not aligned by 2 for 9-bit PC-relative branch."
-msgstr "Valor %ld no alineado por 2 para ramificación de 9-bit PC-relativa."
+msgstr "Valor %ld no alineado por 2 para bifurcación de 9 bits PC-relativa."
-#: config/tc-xgate.c:697
+#: config/tc-xgate.c:694
#, c-format
msgid "Value %ld not aligned by 2 for 10-bit PC-relative branch."
-msgstr "Valor %ld no alineado por 2 para ramificación de 10-bit PC-relativa."
+msgstr "Valor %ld no alineado por 2 para bifurcación de 10 bits PC-relativa."
-#: config/tc-xgate.c:724
+#: config/tc-xgate.c:721
msgid "Value out of 3-bit range."
-msgstr "Valor externo de 3-bit de rango."
+msgstr "Valor externo de 3 bits de rango."
-#: config/tc-xgate.c:731
+#: config/tc-xgate.c:728
msgid "Value out of 4-bit range."
-msgstr "Valor fuera de rango de 4-bit."
+msgstr "Valor fuera de rango de 4 bits."
-#: config/tc-xgate.c:738
+#: config/tc-xgate.c:735
msgid "Value out of 5-bit range."
-msgstr "Valor externo de 5-bit de rango."
+msgstr "Valor externo de 5 bits de rango."
-#: config/tc-xgate.c:875
+#: config/tc-xgate.c:872
msgid ":operand has too many bits"
msgstr ":operand tiene demasiadas bits"
-#: config/tc-xgate.c:994
+#: config/tc-xgate.c:993
msgid "unknown operand count"
msgstr "contador operacional desconocido"
-#: config/tc-xgate.c:1238 config/tc-xgate.c:1250
+#: config/tc-xgate.c:1237 config/tc-xgate.c:1249
msgid ": expected register name r0-r7 "
msgstr ": se esperaba un nombre registrado r0-r7 "
-#: config/tc-xgate.c:1286
+#: config/tc-xgate.c:1285
#, c-format
msgid ":operand value(%d) too big for constraint"
msgstr ":operando valor%d) demasiado grande para instrucción"
-#: config/tc-xgate.c:1304
+#: config/tc-xgate.c:1303
msgid "you must use a hi/lo directive or 16-bit macro to load a 16-bit value."
msgstr ""
-#: config/tc-xgate.c:1317
+#: config/tc-xgate.c:1316
msgid ":unknown relocation constraint size"
msgstr ":unknown de reubicación de tamaño restringido"
-#: config/tc-xgate.c:1324
+#: config/tc-xgate.c:1323
msgid ": expected register name ccr "
msgstr ": esperado nombre de registro ccr "
-#: config/tc-xgate.c:1330
+#: config/tc-xgate.c:1329
msgid ": expected register name pc "
msgstr ": esperaba nombre de registrado pc "
@@ -21458,7 +21356,7 @@ msgid "unknown directive"
msgstr "desconoce directiva"
#: config/tc-xtensa.c:1344 config/tc-xtensa.c:1440 config/tc-xtensa.c:1670
-#: config/tc-xtensa.c:5931
+#: config/tc-xtensa.c:5932
msgid "directives are not valid inside bundles"
msgstr "las directivas no son válidas dentro de una agrupación"
@@ -21505,7 +21403,7 @@ msgstr "la frecuencia de caída debe ser mayor a 0"
#: config/tc-xtensa.c:1647
msgid "branch target frequency must be greater than 0"
-msgstr "la frecuencia de ramificación de objetivo debe ser mayor a 0"
+msgstr "la frecuencia de bifurcación de objetivo debe ser mayor a 0"
#: config/tc-xtensa.c:1695
#, c-format
@@ -21517,410 +21415,410 @@ msgstr "se usó la reubicación %s específica de código de operación fuera de
msgid "invalid use of %s relocation"
msgstr "uso inválid de la reubicación %s"
-#: config/tc-xtensa.c:1901 config/tc-xtensa.c:1918
+#: config/tc-xtensa.c:1902 config/tc-xtensa.c:1919
#, c-format
msgid "bad register name: %s"
msgstr "nombre de registro incorrecto: %s"
-#: config/tc-xtensa.c:1907
+#: config/tc-xtensa.c:1908
#, c-format
msgid "bad register number: %s"
msgstr "número de registro incorrecto: %s"
-#: config/tc-xtensa.c:1971
+#: config/tc-xtensa.c:1972
msgid "pcrel relocation not allowed in an instruction"
msgstr "no se permite la reubicación de pcrel en una instrucción"
-#: config/tc-xtensa.c:2074
+#: config/tc-xtensa.c:2075
msgid "extra colon"
msgstr "punto y coma extra"
-#: config/tc-xtensa.c:2135
+#: config/tc-xtensa.c:2136
msgid "incorrect register number, ignoring"
msgstr "número de registro incorrecto, se descarta"
-#: config/tc-xtensa.c:2216
+#: config/tc-xtensa.c:2217
#, c-format
msgid "cannot encode opcode \"%s\""
msgstr "no se puede codificar el código de operación «%s»"
-#: config/tc-xtensa.c:2308
+#: config/tc-xtensa.c:2309
#, c-format
msgid "not enough operands (%d) for '%s'; expected %d"
msgstr "no hay suficientes operandos (%d) para «%s»; se esperaban %d"
-#: config/tc-xtensa.c:2315
+#: config/tc-xtensa.c:2316
#, c-format
msgid "too many operands (%d) for '%s'; expected %d"
msgstr "demasiados operandos (%d) para «%s»; se esperaban %d"
-#: config/tc-xtensa.c:2366
+#: config/tc-xtensa.c:2367
#, c-format
msgid "invalid register '%s' for '%s' instruction"
msgstr "el registro «%s» inválido para «%s» como instrucción"
-#: config/tc-xtensa.c:2373
+#: config/tc-xtensa.c:2374
#, c-format
msgid "invalid register number (%ld) for '%s' instruction"
msgstr "número de registro (%ld) inválido para instrucción «%s»"
-#: config/tc-xtensa.c:2440
+#: config/tc-xtensa.c:2441
#, c-format
msgid "invalid register number (%ld) for '%s'"
msgstr "número de registro inválido (%ld) para «%s»"
-#: config/tc-xtensa.c:2839
+#: config/tc-xtensa.c:2840
#, c-format
msgid "operand %d of '%s' has out of range value '%u'"
msgstr "operando %d de «%s» tiene el valor fuera de rango '%u'"
-#: config/tc-xtensa.c:2845
+#: config/tc-xtensa.c:2846
#, c-format
msgid "operand %d of '%s' has invalid value '%u'"
msgstr "operando %d de «%s» tiene el valor inválido '%u'"
-#: config/tc-xtensa.c:2892
+#: config/tc-xtensa.c:2893
#, c-format
msgid "internal error: unknown option name '%s'"
msgstr "error interno: nombre desconocido opcional '%s'"
-#: config/tc-xtensa.c:4001
+#: config/tc-xtensa.c:4002
msgid "can't handle generation of literal/labels yet"
msgstr "no se puede manipular la generación de literales/etiquetas aún"
-#: config/tc-xtensa.c:4005
+#: config/tc-xtensa.c:4006
msgid "can't handle undefined OP TYPE"
msgstr "no se puede manipular un OP TYPE sin definir"
-#: config/tc-xtensa.c:4066 config/tc-xtensa.c:4075
+#: config/tc-xtensa.c:4067 config/tc-xtensa.c:4076
#, c-format
msgid "found %d operand for '%s': Expected %d"
msgid_plural "found %d operands for '%s': Expected %d"
msgstr[0] "se encontraron %d operando para «%s»: Se esperaban %d"
msgstr[1] "se encontraron %d operandos para «%s»: Se esperaban %d"
-#: config/tc-xtensa.c:4098
+#: config/tc-xtensa.c:4099
msgid "immediate operands sum to greater than 32"
msgstr "la suma de los operandos inmediatos es mayor a 32"
-#: config/tc-xtensa.c:4350
+#: config/tc-xtensa.c:4351
#, c-format
msgid "invalid relocation for operand %i of '%s'"
msgstr "reubicación no válida para el operando %i de «%s»"
-#: config/tc-xtensa.c:4360
+#: config/tc-xtensa.c:4361
#, c-format
msgid "invalid expression for operand %i of '%s'"
msgstr "expresión no válida para el operando %i en «%s»"
-#: config/tc-xtensa.c:4370
+#: config/tc-xtensa.c:4371
#, c-format
msgid "invalid relocation in instruction slot %i"
msgstr "reubicación no válida en la ranura de instrucción %i"
-#: config/tc-xtensa.c:4377
+#: config/tc-xtensa.c:4378
#, c-format
msgid "undefined symbol for opcode \"%s\""
msgstr "símbolo indefinido para el código de operación «%s»"
-#: config/tc-xtensa.c:4852
+#: config/tc-xtensa.c:4853
msgid "opcode 'NOP.N' unavailable in this configuration"
msgstr "cód op 'NOP.N' no está disponible en esta configuración"
-#: config/tc-xtensa.c:4912
+#: config/tc-xtensa.c:4913
msgid "get_expanded_loop_offset: invalid opcode"
msgstr "get_expanded_loop_offset: código de operación inválido"
-#: config/tc-xtensa.c:5073
+#: config/tc-xtensa.c:5074
#, c-format
msgid "assembly state not set for first frag in section %s"
msgstr "no se estableció el estado de ensamblado para el primer fragmento en la sección %s"
-#: config/tc-xtensa.c:5126
+#: config/tc-xtensa.c:5127
#, c-format
msgid "unaligned branch target: %d bytes at 0x%lx"
-msgstr "objetivo de ramificación sin alinear: %d bytes en 0x%lx"
+msgstr "objetivo de bifurcación sin alinear: %d bytes en 0x%lx"
-#: config/tc-xtensa.c:5170
+#: config/tc-xtensa.c:5171
#, c-format
msgid "unaligned loop: %d bytes at 0x%lx"
msgstr "ciclo sin alinear: %d bytes en 0x%lx"
-#: config/tc-xtensa.c:5195
+#: config/tc-xtensa.c:5196
msgid "unexpected fix"
msgstr "corrección inesperada"
-#: config/tc-xtensa.c:5206 config/tc-xtensa.c:5210
+#: config/tc-xtensa.c:5207 config/tc-xtensa.c:5211
msgid "undecodable fix"
msgstr "fix que no se puede decodificar"
-#: config/tc-xtensa.c:5371
+#: config/tc-xtensa.c:5372
msgid "labels are not valid inside bundles"
msgstr "las etiquetas no son válidas dentro de una agrupación"
-#: config/tc-xtensa.c:5391
+#: config/tc-xtensa.c:5392
msgid "invalid last instruction for a zero-overhead loop"
msgstr "la instrucción last no válida para un ciclo con adelanto cero"
-#: config/tc-xtensa.c:5458
+#: config/tc-xtensa.c:5459
msgid "extra opening brace"
msgstr "llave que abre extra"
-#: config/tc-xtensa.c:5468
+#: config/tc-xtensa.c:5469
msgid "extra closing brace"
msgstr "llave que cierra extra"
-#: config/tc-xtensa.c:5495
+#: config/tc-xtensa.c:5496
msgid "missing closing brace"
msgstr "falta llave que cierra"
-#: config/tc-xtensa.c:5593 config/tc-xtensa.c:5622
+#: config/tc-xtensa.c:5594 config/tc-xtensa.c:5623
#, c-format
msgid "wrong number of operands for '%s'"
msgstr "número incorrecto de operandos para «%s»"
-#: config/tc-xtensa.c:5609
+#: config/tc-xtensa.c:5610
#, c-format
msgid "bad relocation expression for '%s'"
msgstr "expresión de reubicación incorrecta para «%s»"
-#: config/tc-xtensa.c:5644
+#: config/tc-xtensa.c:5645
#, c-format
msgid "unknown opcode or format name '%s'"
msgstr "código de operación o nombre de formato desconocido «%s»"
-#: config/tc-xtensa.c:5650
+#: config/tc-xtensa.c:5651
msgid "format names only valid inside bundles"
msgstr "los nombres de formato solo son válidos dentro de agregados"
-#: config/tc-xtensa.c:5655
+#: config/tc-xtensa.c:5656
#, c-format
msgid "multiple formats specified for one bundle; using '%s'"
msgstr "se especificaron múltiples formatos para un agregado; se usa «%s»"
-#: config/tc-xtensa.c:5705
+#: config/tc-xtensa.c:5706
msgid "entry instruction with stack decrement < 16"
msgstr "la instrucción entry con decremento de pila < 16"
# entry → entrada o asiento
-#: config/tc-xtensa.c:5759
+#: config/tc-xtensa.c:5760
msgid "unaligned entry instruction"
msgstr "entrada de instrucción sin alinear"
-#: config/tc-xtensa.c:5824
+#: config/tc-xtensa.c:5825
msgid "bad instruction format"
msgstr "formato de instrucción incorrecto"
-#: config/tc-xtensa.c:5827
+#: config/tc-xtensa.c:5828
msgid "invalid relocation"
msgstr "reubicación no válida"
-#: config/tc-xtensa.c:5838
+#: config/tc-xtensa.c:5839
#, c-format
msgid "invalid relocation for '%s' instruction"
msgstr "reubicación para instrucción '%s' no válida"
-#: config/tc-xtensa.c:5850
+#: config/tc-xtensa.c:5851
#, c-format
msgid "invalid relocation for operand %d of '%s'"
msgstr "reubicación no válida para el operando %d de «%s»"
-#: config/tc-xtensa.c:6133
+#: config/tc-xtensa.c:6134
#, c-format
msgid "unhandled local relocation fix %s"
msgstr "compostura de reubicación local %s sin manipular"
-#: config/tc-xtensa.c:6182
+#: config/tc-xtensa.c:6183
#, c-format
msgid "internal error; cannot generate `%s' relocation"
msgstr "error interno; incapaz de generar «%s» reubicado"
-#: config/tc-xtensa.c:6399
+#: config/tc-xtensa.c:6400
msgid "The option \"--no-allow-flix\" prohibits multi-slot flix."
msgstr "La opción \"--no-allow-flix\" prohibe flix en ranuras múltiples."
-#: config/tc-xtensa.c:6406
+#: config/tc-xtensa.c:6407
msgid "couldn't find a valid instruction format"
msgstr "no se puede encontrar un formato de instrucción válido"
-#: config/tc-xtensa.c:6407
+#: config/tc-xtensa.c:6408
#, c-format
msgid " ops were: "
msgstr " ops fueron: "
-#: config/tc-xtensa.c:6409
+#: config/tc-xtensa.c:6410
#, c-format
msgid " %s;"
msgstr " %s;"
-#: config/tc-xtensa.c:6419
+#: config/tc-xtensa.c:6420
#, c-format
msgid "mismatch for format '%s': #slots = %d, #opcodes = %d"
msgstr ""
-#: config/tc-xtensa.c:6428 config/tc-xtensa.c:6525
+#: config/tc-xtensa.c:6429 config/tc-xtensa.c:6526
msgid "illegal resource usage in bundle"
msgstr "se incluyó un recurso ilegal en el agregado"
-#: config/tc-xtensa.c:6614
+#: config/tc-xtensa.c:6615
#, c-format
msgid "opcodes '%s' (slot %d) and '%s' (slot %d) write the same register"
msgstr "ambos códigos operacionales «%s» (ranura %d) y «%s» (ranura %d) escriben en el mismo registro"
-#: config/tc-xtensa.c:6619
+#: config/tc-xtensa.c:6620
#, c-format
msgid "opcodes '%s' (slot %d) and '%s' (slot %d) write the same state"
msgstr "ambos códigos operacionales «%s» (ranura %d) y «%s» (ranura %d) escriben en el mismo estado"
-#: config/tc-xtensa.c:6624
+#: config/tc-xtensa.c:6625
#, c-format
msgid "opcodes '%s' (slot %d) and '%s' (slot %d) write the same port"
msgstr "ambos códigos operacionales «%s» (ranura %d) y «%s» (ranura %d) escriben en el mismo puerto"
-#: config/tc-xtensa.c:6629
+#: config/tc-xtensa.c:6630
#, c-format
msgid "opcodes '%s' (slot %d) and '%s' (slot %d) both have volatile port accesses"
msgstr "ambos códigos operacionales «%s» (ranura %d) y «%s» (ranura %d) tienen acceso de puerto volatile"
-#: config/tc-xtensa.c:6645
+#: config/tc-xtensa.c:6646
msgid "multiple branches or jumps in the same bundle"
-msgstr "múltiples ramificaciones o saltos en el mismo agregado"
+msgstr "múltiples bifurcaciones o saltos en el mismo agregado"
-#: config/tc-xtensa.c:7097
+#: config/tc-xtensa.c:7098
msgid "cannot assemble into a literal fragment"
msgstr "no se puede ensamblar en un fragmento literal"
-#: config/tc-xtensa.c:7099
+#: config/tc-xtensa.c:7100
msgid "..."
msgstr "..."
-#: config/tc-xtensa.c:8318
+#: config/tc-xtensa.c:8325
msgid "instruction sequence (write a0, branch, retw) may trigger hardware errata"
msgstr "la secuencia de instrucción (write a0, branch, retw) puede activar errores de hardware"
-#: config/tc-xtensa.c:8430
+#: config/tc-xtensa.c:8437
msgid "branching or jumping to a loop end may trigger hardware errata"
-msgstr "la ramificación o salto al final de un ciclo puede activar errores de hardware"
+msgstr "la bifurcación o salto al final de un ciclo puede activar errores de hardware"
-#: config/tc-xtensa.c:8512
+#: config/tc-xtensa.c:8519
msgid "loop end too close to another loop end may trigger hardware errata"
msgstr "el final de un ciclo demasiado cerca a otro final de ciclo puede activar errores de hardware"
-#: config/tc-xtensa.c:8521
+#: config/tc-xtensa.c:8528
#, c-format
msgid "fr_var %lu < length %d"
msgstr "fr_var %lu < longitud %d"
-#: config/tc-xtensa.c:8679
+#: config/tc-xtensa.c:8686
msgid "loop containing less than three instructions may trigger hardware errata"
msgstr "un ciclo que contiene menos de tres instrucciones puede activar errores de hardware"
-#: config/tc-xtensa.c:8751
+#: config/tc-xtensa.c:8758
msgid "undecodable instruction in instruction frag"
msgstr "la instrucción no decodificable en la instrucción frag"
-#: config/tc-xtensa.c:8861
+#: config/tc-xtensa.c:8868
msgid "invalid empty loop"
msgstr "ciclo vacío inválido"
-#: config/tc-xtensa.c:8866
+#: config/tc-xtensa.c:8873
msgid "loop target does not follow loop instruction in section"
msgstr "el objetivo del ciclo no sigue la instrucción loop en la sección"
-#: config/tc-xtensa.c:9433
+#: config/tc-xtensa.c:9440
msgid "cannot find suitable trampoline"
msgstr "no puede encontrar lanzador útil"
-#: config/tc-xtensa.c:9688
+#: config/tc-xtensa.c:9695
msgid "bad relaxation state"
msgstr "estado de relajación incorrecto"
-#: config/tc-xtensa.c:9746
+#: config/tc-xtensa.c:9753
#, c-format
msgid "fr_var (%ld) < length (%d)"
msgstr "fr_var (%ld) < longitud (%d)"
-#: config/tc-xtensa.c:10446
+#: config/tc-xtensa.c:10452
msgid "jump target out of range; no usable trampoline found"
msgstr "omite objetivo fuera de rango; trampolín encontrado no utilizable"
-#: config/tc-xtensa.c:10570
+#: config/tc-xtensa.c:10576
msgid "invalid relaxation fragment result"
msgstr "resultado de fragmento de relajación inválido"
-#: config/tc-xtensa.c:10652
+#: config/tc-xtensa.c:10658
msgid "unable to widen instruction"
msgstr "incapaz de extender instrucción"
-#: config/tc-xtensa.c:10790
+#: config/tc-xtensa.c:10796
msgid "multiple literals in expansion"
msgstr "literales múltiples en la expansión"
-#: config/tc-xtensa.c:10794
+#: config/tc-xtensa.c:10800
msgid "no registered fragment for literal"
msgstr "no hay un fragmento registrado para la literal"
-#: config/tc-xtensa.c:10796
+#: config/tc-xtensa.c:10802
msgid "number of literal tokens != 1"
msgstr "número de elementos literales != 1"
-#: config/tc-xtensa.c:10925 config/tc-xtensa.c:10931
+#: config/tc-xtensa.c:10931 config/tc-xtensa.c:10937
#, c-format
msgid "unresolved loop target symbol: %s"
msgstr "símbolo objetivo del ciclo sin resolver: %s"
-#: config/tc-xtensa.c:11419
+#: config/tc-xtensa.c:11425
#, c-format
msgid "fixes not all moved from %s"
msgstr "no se ‘movi’eron todas las composturas de %s"
-#: config/tc-xtensa.c:11547
+#: config/tc-xtensa.c:11553
msgid "literal pool location required for text-section-literals; specify with .literal_position"
msgstr "se requiere la ubicación del conjunto de literales para text-section-literals; especifique con .literal_position"
-#: config/tc-xtensa.c:12407
+#: config/tc-xtensa.c:12413
msgid "too many operands in instruction"
msgstr "demasiados operandos en la instrucción"
-#: config/tc-xtensa.c:12617
+#: config/tc-xtensa.c:12623
msgid "invalid symbolic operand"
msgstr "operando de símbolo inválido"
-#: config/tc-xtensa.c:12678
+#: config/tc-xtensa.c:12684
msgid "operand number mismatch"
msgstr "no coincide el número de operandos"
-#: config/tc-xtensa.c:12682
+#: config/tc-xtensa.c:12688
#, c-format
msgid "cannot encode opcode \"%s\" in the given format \"%s\""
msgstr "no se puede codificar el código de operación «%s» en el formato dado «%s»"
-#: config/tc-xtensa.c:12707
+#: config/tc-xtensa.c:12713
#, c-format
msgid "xtensa-isa failure: %s"
msgstr "fallo xtensa-isa: %s"
-#: config/tc-xtensa.c:12784
+#: config/tc-xtensa.c:12790
msgid "invalid opcode"
msgstr "código de operación inválido"
-#: config/tc-xtensa.c:12790
+#: config/tc-xtensa.c:12796
msgid "too few operands"
msgstr "muy pocos operandos"
-#: config/tc-xtensa.c:12796
+#: config/tc-xtensa.c:12802
msgid "too many operands"
msgstr "demasiados operandos"
-#: config/tc-xtensa.c:12840
+#: config/tc-xtensa.c:12846
msgid "multiple writes to the same register"
msgstr "escrituras múltiples al mismo registro"
-#: config/tc-xtensa.c:12954 config/tc-xtensa.c:12960
+#: config/tc-xtensa.c:12960 config/tc-xtensa.c:12966
msgid "out of memory"
msgstr "memoria agotada"
-#: config/tc-xtensa.c:13049
+#: config/tc-xtensa.c:13055
msgid "TLS relocation not allowed in FLIX bundle"
msgstr "TLS reubicado no permitido dentro del haz FLIX"
@@ -21928,33 +21826,33 @@ msgstr "TLS reubicado no permitido dentro del haz FLIX"
#. relaxed in the front-end. If "record_fixup" is set, then this
#. function is being called during back-end relaxation, so flag
#. the unexpected behavior as an error.
-#: config/tc-xtensa.c:13055
+#: config/tc-xtensa.c:13061
msgid "unexpected TLS relocation"
msgstr "reubicación TLS inesperada"
-#: config/tc-xtensa.c:13099
+#: config/tc-xtensa.c:13105
msgid "symbolic operand not allowed"
msgstr "no se permite operando simbólico"
-#: config/tc-xtensa.c:13136
+#: config/tc-xtensa.c:13142
msgid "cannot decode instruction format"
msgstr "no se puede decodificar el formato de instrucción"
-#: config/tc-xtensa.c:13280
+#: config/tc-xtensa.c:13286
msgid "ignoring extra '-rename-section' delimiter ':'"
msgstr "se descarta el delimitador '-rename-section' adicional ':'"
-#: config/tc-xtensa.c:13285
+#: config/tc-xtensa.c:13291
#, c-format
msgid "ignoring invalid '-rename-section' specification: '%s'"
msgstr "se descarta la especificación '-rename-section' no válida: '%s'"
-#: config/tc-xtensa.c:13296
+#: config/tc-xtensa.c:13302
#, c-format
msgid "section %s renamed multiple times"
msgstr "la sección %s se renombró varias veces"
-#: config/tc-xtensa.c:13298
+#: config/tc-xtensa.c:13304
#, c-format
msgid "multiple sections remapped to output section %s"
msgstr "secciones múltiples remapeadas a la sección de salida %s"
@@ -22222,7 +22120,7 @@ msgstr "el código de operación no tiene efecto"
#: config/tc-z8k.c:672
msgid "Missing ) in ra(rb)"
-msgstr "Ausente ) en ra(rb)"
+msgstr "Falta ) en ra(rb)"
#: config/tc-z8k.c:752 config/tc-z8k.c:791
#, c-format
@@ -22387,164 +22285,162 @@ msgstr "no se puede abrir «%s» para escritura"
msgid "can't close `%s'"
msgstr "no se puede cerrar «%s»"
-#: dw2gencfi.c:313 read.c:2532
+#: dw2gencfi.c:308 read.c:2581
#, c-format
msgid "bfd_set_section_flags: %s"
msgstr "bfd_set_section_flags: %s"
-#: dw2gencfi.c:580 dw2gencfi.c:596
+#: dw2gencfi.c:583 dw2gencfi.c:599
#, c-format
msgid "register save offset not a multiple of %u"
msgstr "registrador guarda desplazamiento no un múltiplo de %u"
-#: dw2gencfi.c:678
+#: dw2gencfi.c:681
msgid "CFI state restore without previous remember"
msgstr "CFI como declaración restaurada se utilizó sin un recuerdo previo"
-#: dw2gencfi.c:737
+#: dw2gencfi.c:740
msgid "missing separator"
-msgstr "ausente el separador"
+msgstr "falta el separador"
-#: dw2gencfi.c:786
+#: dw2gencfi.c:789
msgid "bad register expression"
msgstr "expresión de registro no válida"
-#: dw2gencfi.c:807 dw2gencfi.c:941 dw2gencfi.c:979 dw2gencfi.c:1050
-#: dw2gencfi.c:1123 dw2gencfi.c:1188 dw2gencfi.c:1387 scfidw2gen.c:176
+#: dw2gencfi.c:810 dw2gencfi.c:959 dw2gencfi.c:1040 dw2gencfi.c:1111
+#: dw2gencfi.c:1184 dw2gencfi.c:1249 dw2gencfi.c:1448 scfidw2gen.c:176
msgid "CFI instruction used without previous .cfi_startproc"
msgstr "CFI como instrucción utilizada sin un precedente .cfi_startproc"
-#: dw2gencfi.c:1004
+#: dw2gencfi.c:1065
msgid "invalid or unsupported encoding in .cfi_personality"
msgstr "codificación no válida o no admitida en .cfi_personality"
-#: dw2gencfi.c:1011
+#: dw2gencfi.c:1072
msgid ".cfi_personality requires encoding and symbol arguments"
msgstr ".cfi_personality requiere argumentos de codificación y símbolo"
-#: dw2gencfi.c:1034
+#: dw2gencfi.c:1095
msgid "wrong second argument to .cfi_personality"
msgstr "segundo argumento incorrecto para .cfi_personality"
-#: dw2gencfi.c:1075 dw2gencfi.c:1151
+#: dw2gencfi.c:1136 dw2gencfi.c:1212
msgid "invalid or unsupported encoding in .cfi_lsda"
msgstr "codificación no válida o no admitida en .cfi_lsda"
-#: dw2gencfi.c:1082
+#: dw2gencfi.c:1143
msgid ".cfi_lsda requires encoding and symbol arguments"
msgstr ".cfi_lsda requiere argumentos de codificación y símbolo"
-#: dw2gencfi.c:1107
+#: dw2gencfi.c:1168
msgid "wrong second argument to .cfi_lsda"
msgstr "segundo argumento incorrecto para .cfi_lsda"
-#: dw2gencfi.c:1173
+#: dw2gencfi.c:1234
msgid "wrong third argument to .cfi_val_encoded_addr"
msgstr "tercer argumento incorrecto para .cfi_val_encoded_addr"
-#: dw2gencfi.c:1272
+#: dw2gencfi.c:1333
msgid "inconsistent uses of .cfi_sections"
msgstr "utilizaciones inconsistentes de .cfi_sections"
-#: dw2gencfi.c:1283
+#: dw2gencfi.c:1344
msgid "previous CFI entry not closed (missing .cfi_endproc)"
-msgstr "la entrada CFI previa no está cerrada (ausente .cfi_endproc)"
+msgstr "la entrada CFI previa no está cerrada (falta .cfi_endproc)"
-#: dw2gencfi.c:1323 scfidw2gen.c:157
+#: dw2gencfi.c:1384 scfidw2gen.c:157
msgid ".cfi_endproc without corresponding .cfi_startproc"
msgstr ".cfi_endproc sin un .cfi_startproc correspondiente"
-#: dw2gencfi.c:1398
+#: dw2gencfi.c:1459
msgid "wrong argument to .cfi_personality_id"
msgstr "equivocación del argumento para .cfi_personality_id"
-#: dw2gencfi.c:1408
+#: dw2gencfi.c:1469
msgid ".cfi_fde_data without corresponding .cfi_startproc"
msgstr ".cfi_fde_data sin correspondiente .cfi_startproc"
-#: dw2gencfi.c:1516
+#: dw2gencfi.c:1492
+msgid "only constants may be used with .cfi_fde_data"
+msgstr ""
+
+#: dw2gencfi.c:1580
msgid "unexpected .cfi_inline_lsda"
msgstr ".cfi_inline_lsda no esperado"
-#: dw2gencfi.c:1523
+#: dw2gencfi.c:1587
msgid ".cfi_inline_lsda not valid for this frame"
msgstr ".cfi_inline_lsda no válido para este marco"
-#: dw2gencfi.c:1531
+#: dw2gencfi.c:1595
msgid ".cfi_inline_lsda seen for frame without .cfi_lsda"
msgstr ""
-#: dw2gencfi.c:1544
+#: dw2gencfi.c:1608
#, c-format
msgid "Alignment too large: %d. assumed."
msgstr "Alineación muy grande: %d asumido."
-#: dw2gencfi.c:1548
+#: dw2gencfi.c:1612
msgid "Alignment negative: 0 assumed."
msgstr "Alineación negativa: se asume 0."
-#: dw2gencfi.c:1574
+#: dw2gencfi.c:1638
msgid ".cfi_inline_lsda is not supported for this target"
msgstr ".cfi_inline_lsda no está apoyado para este destino"
-#: dw2gencfi.c:1581
+#: dw2gencfi.c:1645
msgid ".cfi_fde_data is not supported for this target"
msgstr ".cfi_fde_data no es compatible para este objetivo"
-#: dw2gencfi.c:1588
+#: dw2gencfi.c:1652
msgid ".cfi_personality_id is not supported for this target"
msgstr "no se admite .cfi_personality_id para este objetivo"
-#: dw2gencfi.c:1906
+#: dw2gencfi.c:1975
#, c-format
msgid "return column number %d overflows in CIE version 1"
msgstr ""
-#: dw2gencfi.c:2388 dw2gencfi.c:2563
+#: dw2gencfi.c:2475 dw2gencfi.c:2663
msgid "open CFI at the end of file; missing .cfi_endproc directive"
msgstr "abre CFI al final del fichero; directiva .cfi_endproc ausente"
-#: dw2gencfi.c:2519
+#: dw2gencfi.c:2619
#, fuzzy
#| msgid "CFI is not supported for this target"
msgid ".sframe not supported for target"
msgstr "CFI no admitido en este objetivo"
-#: dw2gencfi.c:2608
+#: dw2gencfi.c:2713
msgid "CFI is not supported for this target"
msgstr "CFI no admitido en este objetivo"
-#: dwarf2dbg.c:377 dwarf2dbg.c:3311
+#: dwarf2dbg.c:385 dwarf2dbg.c:3314
msgid "view number mismatch"
msgstr "vista numérica no coincide"
-#: dwarf2dbg.c:692
+#: dwarf2dbg.c:699
#, fuzzy, c-format
#| msgid "Big number is too big"
-msgid "file number %u is too big"
+msgid "file number %<PRIu64> is too big"
msgstr "El número grande es demasiado grande"
-#: dwarf2dbg.c:924
+#: dwarf2dbg.c:931
#, c-format
msgid "file table slot %u is already occupied by a different file (%s%s%s vs %s%s%s)"
msgstr ""
-#: dwarf2dbg.c:1180 dwarf2dbg.c:1274
+#: dwarf2dbg.c:1188 dwarf2dbg.c:1274
msgid "file number less than one"
msgstr "número de fichero menor que uno"
-#: dwarf2dbg.c:1217
+#: dwarf2dbg.c:1225
#, fuzzy
#| msgid "Second operand to .%s not a constant"
msgid "md5 value too small or not a constant"
msgstr "El segundo operando de .%s no es una constante"
-#: dwarf2dbg.c:1234
-#, fuzzy, c-format
-#| msgid "Big number is too big"
-msgid "file number %lu is too big"
-msgstr "El número grande es demasiado grande"
-
#: dwarf2dbg.c:1281 dwarf2dbg.c:2304
#, c-format
msgid "unassigned file number %ld"
@@ -22575,187 +22471,187 @@ msgstr "deconoce sub-directorio .loc `%s'"
msgid "internal error: unknown dwarf2 format"
msgstr "error interno: formato enana2 desconocido"
-#: ecoff.c:1559
+#: ecoff.c:1560
#, c-format
msgid "string too big (%lu bytes)"
msgstr "cadena demasiado grande (%lu bytes)"
-#: ecoff.c:1612 ecoff.c:1805 ecoff.c:1828 ecoff.c:1858 ecoff.c:2010
-#: ecoff.c:2126
+#: ecoff.c:1613 ecoff.c:1806 ecoff.c:1829 ecoff.c:1859 ecoff.c:2011
+#: ecoff.c:2115
msgid "no current file pointer"
msgstr "no hay un puntero a fichero actualmente"
-#: ecoff.c:1699
+#: ecoff.c:1700
msgid "too many st_End's"
msgstr "demasiados st_End's"
-#: ecoff.c:2195
+#: ecoff.c:2182
msgid "fake .file after real one"
msgstr ".file falso tras real"
-#: ecoff.c:2283
+#: ecoff.c:2267
msgid "filename goes over one page boundary"
msgstr "el nombre de fichero sobrepasa el límite de una página"
-#: ecoff.c:2416
+#: ecoff.c:2398
msgid ".begin directive without a preceding .file directive"
msgstr "directiva .begin sin una directiva .file precedente"
-#: ecoff.c:2423
+#: ecoff.c:2405
msgid ".begin directive without a preceding .ent directive"
msgstr "directiva .begin sin una directiva .ent precedente"
-#: ecoff.c:2453
+#: ecoff.c:2434
msgid ".bend directive without a preceding .file directive"
msgstr "directiva .bend sin una directiva .file precedente"
-#: ecoff.c:2460
+#: ecoff.c:2441
msgid ".bend directive without a preceding .ent directive"
msgstr "directiva .bend sin una directiva .ent precedente"
-#: ecoff.c:2472
+#: ecoff.c:2453
msgid ".bend directive names unknown symbol"
msgstr "símbolo desconocido en los nombres de la directiva .bend"
-#: ecoff.c:2514
+#: ecoff.c:2494
msgid ".def pseudo-op used inside of .def/.endef; ignored"
msgstr "se utiliza el pseudo-operador .def dentro de .def/.endef; se descarta"
-#: ecoff.c:2516
+#: ecoff.c:2496
msgid "empty symbol name in .def; ignored"
msgstr "nombre de símbolo vacío en .def; se descarta"
-#: ecoff.c:2551
+#: ecoff.c:2531
msgid ".dim pseudo-op used outside of .def/.endef; ignored"
msgstr "se utiliza el pseudo-operador .dim fuera de .def/.endef; se descarta"
-#: ecoff.c:2566
+#: ecoff.c:2546
msgid "badly formed .dim directive"
msgstr "directiva .dim mal formada"
-#: ecoff.c:2579
+#: ecoff.c:2559
msgid "too many .dim entries"
msgstr "demasiadas entradas .dim"
-#: ecoff.c:2599
+#: ecoff.c:2579
msgid ".scl pseudo-op used outside of .def/.endef; ignored"
msgstr "se utiliza el pseudo-operador .scl fuera de .def/.endef; se descarta"
-#: ecoff.c:2624
+#: ecoff.c:2604
msgid ".size pseudo-op used outside of .def/.endef; ignored"
msgstr "se utiliza el pseudo-operador .size fuera de .def/.endef; se descarta"
-#: ecoff.c:2639
+#: ecoff.c:2619
msgid "badly formed .size directive"
msgstr "directiva .size mal formada"
-#: ecoff.c:2652
+#: ecoff.c:2632
msgid "too many .size entries"
msgstr "demasiadas entradas .size"
-#: ecoff.c:2674
+#: ecoff.c:2654
msgid ".type pseudo-op used outside of .def/.endef; ignored"
msgstr "se utiliza el pseudo-operador .type fuera de .def/.endef; se descarta"
#. FIXME: We could handle this by setting the continued bit.
#. There would still be a limit: the .type argument can not
#. be infinite.
-#: ecoff.c:2692
+#: ecoff.c:2672
#, c-format
msgid "the type of %s is too complex; it will be simplified"
msgstr "el tipo de %s es demasiado complejo; se simplificará"
-#: ecoff.c:2703
+#: ecoff.c:2683
msgid "Unrecognized .type argument"
msgstr "No reconocido argumento .type"
-#: ecoff.c:2741
+#: ecoff.c:2721
msgid ".tag pseudo-op used outside of .def/.endef; ignored"
msgstr "se utiliza el pseudo-operador .tag fuera de .def/.endef; se descarta"
-#: ecoff.c:2765
+#: ecoff.c:2745
msgid ".val pseudo-op used outside of .def/.endef; ignored"
msgstr "se utiliza el pseudo-operador .val fuera de .def/.endef; se descarta"
-#: ecoff.c:2773
+#: ecoff.c:2753
msgid ".val expression is too complex"
msgstr "la expresión .val es demasiado compleja"
-#: ecoff.c:2803
+#: ecoff.c:2783
msgid ".endef pseudo-op used before .def; ignored"
msgstr "se utiliza el pseudo-operador .endef antes de .def; se descarta"
-#: ecoff.c:2829 ecoff.c:2910
+#: ecoff.c:2809 ecoff.c:2889
msgid "bad COFF debugging information"
msgstr "información de depuración COFF incorrecta"
-#: ecoff.c:2878
+#: ecoff.c:2858
#, c-format
msgid "no tag specified for %s"
msgstr "no se especificó una marca para %s"
-#: ecoff.c:2980
+#: ecoff.c:2952
msgid ".end directive without a preceding .file directive"
msgstr "directiva .end sin una directiva .file precedente"
-#: ecoff.c:3008
+#: ecoff.c:2980
msgid ".end directive names unknown symbol"
msgstr "símbolo desconocido en los nombres de la directiva .end"
-#: ecoff.c:3038
+#: ecoff.c:3010
msgid "second .ent directive found before .end directive"
msgstr "se encontró una segunda directiva .ent antes de la directiva .end"
-#: ecoff.c:3047
+#: ecoff.c:3019
#, c-format
msgid "%s directive has no name"
msgstr "%s de directiva no tiene ningún nombre"
-#: ecoff.c:3108
+#: ecoff.c:3080
msgid "no way to handle .file within .ent/.end section"
msgstr "no es posible manipular un .file dentro de una sección .ent/.end"
-#: ecoff.c:3225
+#: ecoff.c:3197
msgid ".loc before .file"
msgstr ".loc antes de .file"
-#: ecoff.c:3425
+#: ecoff.c:3395
#, c-format
msgid ".stab%c is not supported"
msgstr "no se admite .stab%c"
-#: ecoff.c:3435
+#: ecoff.c:3405
#, c-format
msgid ".stab%c: ignoring non-zero other field"
msgstr ".stab%c: se descarta el otro campo que no es cero"
-#: ecoff.c:3469
+#: ecoff.c:3439
#, c-format
msgid "line number (%d) for .stab%c directive cannot fit in index field (20 bits)"
msgstr "el número de línea (%d) para la directiva .stab%c no cabe en el campo de índice (20 bits)"
-#: ecoff.c:3503
+#: ecoff.c:3473
#, c-format
msgid "illegal .stab%c directive, bad character"
msgstr "directiva .stab%c ilegal, carácter incorrecto"
-#: ecoff.c:3952 ecoff.c:4140 ecoff.c:4165
+#: ecoff.c:3914 ecoff.c:4102 ecoff.c:4127
msgid ".begin/.bend in different segments"
msgstr ".begin/.bend en segmentos diferentes"
-#: ecoff.c:4660
+#: ecoff.c:4621
msgid "missing .end or .bend at end of file"
msgstr ".end ausente o .bend al final del fichero"
-#: ecoff.c:5137
+#: ecoff.c:5093
msgid "GP prologue size exceeds field size, using 0 instead"
msgstr "GP como prólogo de tamaño del campo excedido, se utiliza 0 en su lugar"
-#: expr.c:74 read.c:4081
+#: expr.c:74 read.c:4134
msgid "bignum invalid"
msgstr "bignum inválido"
-#: expr.c:76 read.c:4083 read.c:4588 read.c:5358
+#: expr.c:76 read.c:4136 read.c:4651 read.c:5420
msgid "floating point number invalid"
msgstr "número de coma flotante inválido"
@@ -22784,75 +22680,75 @@ msgstr "un número grande con subrayados debe tener exactamente 4 words"
msgid "backward ref to unknown label \"%d:\""
msgstr "referencia hacia atrás a la etiqueta desconocida \"%d:\""
-#: expr.c:690
+#: expr.c:691
msgid "character constant too large"
msgstr "la constante de carácter es demasiado grande"
-#: expr.c:1021
+#: expr.c:1033
#, c-format
msgid "found '%c', expected: '%c'"
msgstr "encontrado `%c', se esperaba: `%c'"
-#: expr.c:1024
+#: expr.c:1036
#, c-format
msgid "missing '%c'"
-msgstr "ausente '%c'"
+msgstr "falta '%c'"
-#: expr.c:1036 read.c:4868
+#: expr.c:1048 read.c:4930
msgid "EBCDIC constants are not supported"
msgstr "EBCDIC como constante no son admitidos"
-#: expr.c:1188
+#: expr.c:1202
#, c-format
msgid "Unary operator %c ignored because bad operand follows"
msgstr "Se descarta el operador unario %c porque hay un operando incorrecto a continuación"
-#: expr.c:1252 expr.c:1274
+#: expr.c:1266 expr.c:1288
msgid "syntax error in .startof. or .sizeof."
msgstr "error de sintaxis en .startof. o .sizeof."
-#: expr.c:1354 expr.c:1690
+#: expr.c:1368 expr.c:1713
#, c-format
msgid "invalid use of operator \"%s\""
msgstr "uso inválido del operador «%s»"
-#: expr.c:1872
+#: expr.c:1895
msgid "missing operand; zero assumed"
-msgstr "ausente operando; se asume cero"
+msgstr "falta operando; se asume cero"
-#: expr.c:1911
+#: expr.c:1934
msgid "left operand is a bignum; integer 0 assumed"
msgstr "operando izquierdo es un número grande; se asume el entero 0"
-#: expr.c:1913
+#: expr.c:1936
msgid "left operand is a float; integer 0 assumed"
msgstr "operando izquierdo es un número de coma flotante; se asume el entero 0"
-#: expr.c:1922
+#: expr.c:1945
msgid "right operand is a bignum; integer 0 assumed"
msgstr "operando derecho es un número grande; se asume el entero 0"
-#: expr.c:1924
+#: expr.c:1947
msgid "right operand is a float; integer 0 assumed"
msgstr "operando derecho es un número de coma flotante; se asume el entero 0"
-#: expr.c:2003 symbols.c:1705
+#: expr.c:2026 symbols.c:1674
msgid "division by zero"
msgstr "división por cero"
-#: expr.c:2053 symbols.c:1716
+#: expr.c:2076 symbols.c:1685
msgid "shift count"
msgstr "cuenta de desplazamiento"
-#: expr.c:2179
+#: expr.c:2202
msgid "operation combines symbols in different segments"
msgstr "la operación combina símbolos en segmentos diferentes"
-#: expr.c:2552
+#: expr.c:2577
msgid "missing closing '\"'"
-msgstr "ausente cierre «\"»"
+msgstr "falta cierre «\"»"
-#: expr.c:2580
+#: expr.c:2605
#, c-format
msgid "'\\%c' in quoted symbol name; behavior may change in the future"
msgstr ""
@@ -22874,95 +22770,114 @@ msgstr[1] "no puede extender %lu caracteres fragmentados"
#. Offset of size 8 bytes is not supported in SFrame format
#. version 1.
-#: gen-sframe.c:410
+#: gen-sframe.c:417
#, fuzzy
#| msgid "unsupported syntax"
msgid "SFrame unsupported offset value\n"
msgstr "no se admite la sintaxis"
-#: gen-sframe.c:1009
+#: gen-sframe.c:1025
#, c-format
-msgid "skipping SFrame FDE; non-SP/FP register %u in .cfi_def_cfa"
+msgid "no SFrame FDE emitted; non-SP/FP register %u in .cfi_def_cfa"
msgstr ""
-#: gen-sframe.c:1038
+#: gen-sframe.c:1055
#, c-format
-msgid "skipping SFrame FDE; non-SP/FP register %u in .cfi_def_cfa_register"
+msgid "no SFrame FDE emitted; non-SP/FP register %u in .cfi_def_cfa_register"
msgstr ""
#. No CFA base register in effect. Non-SP/FP CFA base register should
#. not occur, as sframe_xlate_do_def_cfa[_register] would detect this.
-#: gen-sframe.c:1076
-msgid "skipping SFrame FDE; .cfi_def_cfa_offset without CFA base register in effect"
+#: gen-sframe.c:1095
+msgid "no SFrame FDE emitted; .cfi_def_cfa_offset without CFA base register in effect"
msgstr ""
-#: gen-sframe.c:1137
+#: gen-sframe.c:1160
#, c-format
-msgid "skipping SFrame FDE; %s register %u in .cfi_val_offset"
+msgid "no SFrame FDE emitted; %s with %s reg %u"
msgstr ""
-#: gen-sframe.c:1164
+#: gen-sframe.c:1220
#, c-format
-msgid "skipping SFrame FDE; %s register %u in .cfi_register"
+msgid "no SFrame FDE emitted; %s register %u in .cfi_register"
+msgstr ""
+
+#: gen-sframe.c:1242
+msgid "no SFrame FDE emitted; .cfi_remember_state without prior SFrame FRE state"
+msgstr ""
+
+#: gen-sframe.c:1336
+msgid "no SFrame FDE emitted; .cfi_negate_ra_state_with_pc"
msgstr ""
-#: gen-sframe.c:1186
-msgid "skipping SFrame FDE; .cfi_remember_state without prior SFrame FRE state"
+#: gen-sframe.c:1363
+msgid "no SFrame FDE emitted; .cfi_window_save"
msgstr ""
-#: gen-sframe.c:1282
-msgid "skipping SFrame FDE; .cfi_negate_ra_state_with_pc"
+#: gen-sframe.c:1421
+#, c-format
+msgid "no SFrame FDE emitted; .cfi_escape DW_CFA_expression with %s reg %u"
msgstr ""
-#: gen-sframe.c:1309
-msgid "skipping SFrame FDE; .cfi_window_save"
+#. In all other cases (e.g., DW_CFA_def_cfa_expression or other
+#. OS-specific CFI opcodes), skip inspecting the DWARF expression.
+#. This may impact the asynchronicity due to loss of coverage.
+#. Continue to warn the user and bail out.
+#: gen-sframe.c:1582
+#, c-format
+msgid "no SFrame FDE emitted; .cfi_escape with op (%#lx)"
msgstr ""
-#: gen-sframe.c:1422
+#: gen-sframe.c:1607
+#, c-format
+msgid "no SFrame FDE emitted; %s reg %u in .cfi_undefined"
+msgstr ""
+
+#: gen-sframe.c:1784
#, fuzzy
#| msgid "unknown"
msgid "(unknown)"
msgstr "desconocido"
-#: gen-sframe.c:1423
+#: gen-sframe.c:1785
#, c-format
-msgid "skipping SFrame FDE; CFI insn %s (%#x)"
+msgid "no SFrame FDE emitted; CFI insn %s (%#x)"
msgstr ""
-#: gen-sframe.c:1447
+#: gen-sframe.c:1809
#, c-format
-msgid "skipping SFrame FDE; non-default RA register %u"
+msgid "no SFrame FDE emitted; non-default RA register %u"
msgstr ""
-#: gen-sframe.c:1491
-msgid "skipping SFrame FDE; FP without RA on stack"
+#: gen-sframe.c:1854
+msgid "no SFrame FDE emitted; FP without RA on stack"
msgstr ""
-#: ginsn.c:878
+#: ginsn.c:877
#, c-format
msgid "missing label '%s' in func '%s' may result in imprecise cfg"
msgstr ""
-#: ginsn.c:987
+#: ginsn.c:986
#, c-format
msgid "GINSN: found unreachable code in func '%s'"
msgstr ""
-#: ginsn.c:1209
+#: ginsn.c:1208
msgid "GINSN process for prev func not done"
msgstr ""
-#: ginsn.c:1243
+#: ginsn.c:1242
#, c-format
msgid "untraceable control flow for func '%s'"
msgstr ""
-#: ginsn.c:1253
+#: ginsn.c:1252
#, c-format
msgid "Bad cfg of ginsn of func '%s'"
msgstr ""
-#: ginsn.c:1315 ginsn.c:1322
+#: ginsn.c:1314 ginsn.c:1321
#, fuzzy
#| msgid "CFI is not supported for this target"
msgid "ginsn unsupported for target"
@@ -22980,7 +22895,7 @@ msgstr "CFI no admitido en este objetivo"
#. line here (assuming of course that we actually have a line of
#. input to read), so that it can be displayed in the listing
#. that is produced at the end of the assembly.
-#: input-file.c:136 input-scrub.c:259 listing.c:356
+#: input-file.c:136 input-scrub.c:271 listing.c:345
msgid "{standard input}"
msgstr "{entrada estándar}"
@@ -22994,16 +22909,16 @@ msgstr "no se puede abrir %s para lectura: %s"
msgid "can't read from %s: %s"
msgstr "no se puede leer de %s: %s"
-#: input-file.c:267 listing.c:1456
+#: input-file.c:267 listing.c:1467
#, c-format
msgid "can't close %s: %s"
msgstr "no se puede cerrar %s: %s"
-#: input-scrub.c:289
+#: input-scrub.c:301
msgid "macros nested too deeply"
msgstr "macros anidadas con demasiada profundidad"
-#: input-scrub.c:537 input-scrub.c:540
+#: input-scrub.c:548 input-scrub.c:551
msgid "macro invoked from here"
msgstr ""
@@ -23012,20 +22927,20 @@ msgstr ""
msgid "Unable to allocate memory for new instructions\n"
msgstr "No se ha podido asignar memoria para las instrucciones nuevas\n"
-#: listing.c:255 messages.c:192 messages.c:194 messages.c:197
+#: listing.c:244 messages.c:192 messages.c:194 messages.c:197
msgid "Warning: "
msgstr "Aviso: "
-#: listing.c:261 messages.c:266 messages.c:268 messages.c:271
+#: listing.c:250 messages.c:266 messages.c:268 messages.c:271
msgid "Error: "
msgstr "Error: "
-#: listing.c:623
+#: listing.c:656
#, c-format
msgid "unable to rebuffer file: %s\n"
msgstr "incapaz de reservar fichero búfer: %s\n"
-#: listing.c:1342
+#: listing.c:1353
#, c-format
msgid ""
"\n"
@@ -23036,12 +22951,12 @@ msgstr ""
" marca tiempo \t: %s\n"
"\n"
-#: listing.c:1352
+#: listing.c:1363
#, c-format
msgid "%s "
msgstr "%s "
-#: listing.c:1357
+#: listing.c:1368
#, c-format
msgid ""
"\n"
@@ -23050,7 +22965,7 @@ msgstr ""
"\n"
"\t%s "
-#: listing.c:1367
+#: listing.c:1378
msgid ""
"\n"
" options passed\t: "
@@ -23058,7 +22973,7 @@ msgstr ""
"\n"
" opciones pasadas\t: "
-#: listing.c:1406
+#: listing.c:1417
#, c-format
msgid ""
" GNU assembler version %s (%s)\n"
@@ -23067,7 +22982,7 @@ msgstr ""
" Ensamblador de GNU versión %s (%s)\n"
"\t utilizando BFD versión %s."
-#: listing.c:1409
+#: listing.c:1420
#, c-format
msgid ""
"\n"
@@ -23076,7 +22991,7 @@ msgstr ""
"\n"
" fich entrante \t: %s"
-#: listing.c:1410
+#: listing.c:1421
#, c-format
msgid ""
"\n"
@@ -23085,7 +23000,7 @@ msgstr ""
"\n"
" fich saliente \t: %s"
-#: listing.c:1411
+#: listing.c:1422
#, c-format
msgid ""
"\n"
@@ -23094,138 +23009,138 @@ msgstr ""
"\n"
" destino \t: %s"
-#: listing.c:1435
+#: listing.c:1446
#, c-format
msgid "can't open %s: %s"
msgstr "no se puede abrir %s: %s"
-#: listing.c:1520
+#: listing.c:1531
msgid "strange paper height, set to no form"
msgstr "tamaño de papel extraño, se establece a sin forma"
-#: listing.c:1544
+#: listing.c:1555
msgid "new paper width is too small"
msgstr ""
-#: listing.c:1547
+#: listing.c:1558
#, fuzzy
#| msgid "bad or irreducible absolute expression; zero assumed"
msgid "bad or irreducible expression for paper width"
msgstr "expresión absoluta incorrecta o irreducible; se asume cero"
-#: listing.c:1549
+#: listing.c:1560
#, fuzzy
#| msgid "missing expression; zero assumed"
msgid "missing expression for paper width"
msgstr "falta una expresión; se asume cero"
-#: listing.c:1600
+#: listing.c:1611
msgid "new line in title"
msgstr "línea nueva en el título"
-#: macro.c:399
+#: macro.c:394
#, fuzzy, c-format
#| msgid "% operator needs absolute expression"
msgid "%% operator needs absolute expression"
msgstr "el operador % necesita una expresión absoluta"
-#: macro.c:551
+#: macro.c:544
#, c-format
msgid "Missing parameter qualifier for `%s' in macro `%s'"
-msgstr "Ausente el calificador de parámetro para «%s» en la macro «%s»"
+msgstr "Falta el calificador de parámetro para «%s» en la macro «%s»"
-#: macro.c:561
+#: macro.c:554
#, c-format
msgid "`%s' is not a valid parameter qualifier for `%s' in macro `%s'"
msgstr "«%s» no es un calificador de parámetro válido para «%s» en la macro «%s»"
-#: macro.c:578
+#: macro.c:571
#, c-format
msgid "Pointless default value for required parameter `%s' in macro `%s'"
msgstr "Valor por defecto sin sentido para el parámetro requerido «%s» en la macro «%s»"
-#: macro.c:588
+#: macro.c:581
#, c-format
msgid "A parameter named `%s' already exists for macro `%s'"
msgstr "Ya existe un parámetro llamado «%s» para la macro «%s»"
-#: macro.c:626
+#: macro.c:619
#, c-format
msgid "Reserved word `%s' used as parameter in macro `%s'"
msgstr "Se utilizó la palabra reservada «%s» como un parámetro en la macro «%s»"
-#: macro.c:680
+#: macro.c:673
#, c-format
msgid "unexpected end of file in macro `%s' definition"
msgstr "final de fichero no esperado en la definición de macro «%s»"
-#: macro.c:692
+#: macro.c:685
#, c-format
msgid "missing `)' after formals in macro definition `%s'"
-msgstr "ausente `)' tras los formales en la definición de macro «%s»"
+msgstr "falta `)' tras los formales en la definición de macro «%s»"
-#: macro.c:707
+#: macro.c:700
msgid "Missing macro name"
-msgstr "Ausente el nombre de macro"
+msgstr "Falta el nombre de macro"
-#: macro.c:716
+#: macro.c:709
#, c-format
msgid "Bad parameter list for macro `%s'"
msgstr "Lista de parámetros incorrecta para la macro «%s»"
-#: macro.c:724
+#: macro.c:717
#, c-format
msgid "Macro `%s' was already defined"
msgstr "La macro «%s» ya está definida"
-#: macro.c:850 macro.c:852
+#: macro.c:843 macro.c:845
msgid "missing `)'"
-msgstr "ausente `)'"
+msgstr "falta `)'"
-#: macro.c:941
+#: macro.c:934
#, c-format
msgid "`%s' was already used as parameter (or another local) name"
msgstr "Ya se usó «%s» como nombre de parámetro (o nombre local)"
-#: macro.c:1113
+#: macro.c:1104
msgid "confusion in formal parameters"
msgstr "confusión en los parámetros formales"
-#: macro.c:1121
+#: macro.c:1112
#, c-format
msgid "Parameter named `%s' does not exist for macro `%s'"
msgstr "El parámetro nombrado «%s» no existe para la macro «%s»"
-#: macro.c:1132
+#: macro.c:1123
#, c-format
msgid "Value for parameter `%s' of macro `%s' was already specified"
msgstr "El valor para parámetro «%s» de macro «%s» fue ya especificado"
-#: macro.c:1146
+#: macro.c:1137
msgid "can't mix positional and keyword arguments"
msgstr "no se pueden mezclar argumentos posicionales y palabras clave"
-#: macro.c:1157
+#: macro.c:1148
msgid "too many positional arguments"
msgstr "demasiados argumentos posicionales"
-#: macro.c:1205
+#: macro.c:1196
#, c-format
msgid "Missing value for required parameter `%s' of macro `%s'"
-msgstr "Ausente el valor para el parámetro requerido «%s» de la macro «%s»"
+msgstr "Falta el valor para el parámetro requerido «%s» de la macro «%s»"
-#: macro.c:1323
+#: macro.c:1314
#, c-format
msgid "Attempt to purge non-existing macro `%s'"
msgstr "Intentaba purgar macro inexistente «%s»"
-#: macro.c:1344
+#: macro.c:1335
msgid "unexpected end of file in irp or irpc"
msgstr "final de fichero inesperado en irp o irpc"
-#: macro.c:1355
+#: macro.c:1346
msgid "missing model parameter"
-msgstr "ausente el parámetro modelo"
+msgstr "falta el parámetro modelo"
#: messages.c:92
#, c-format
@@ -23292,78 +23207,86 @@ msgstr "formato de objetivo seleccionado «%s» desconocido"
msgid "can't create %s: %s"
msgstr "no se puede crear %s: %s"
-#: read.c:584
+#: read.c:565
#, fuzzy, c-format
#| msgid "error constructing %s pseudo-op table: %s"
msgid "error constructing %s pseudo-op table"
msgstr "error al construir la tabla de pseudo-operadores %s: %s"
-#: read.c:768
+#: read.c:752
msgid "cannot change section or subsection inside .bundle_lock"
msgstr ""
-#: read.c:784
-#, c-format
-msgid ".bundle_lock sequence at %u bytes, but .bundle_align_mode limit is %u bytes"
+#: read.c:768
+#, fuzzy, c-format
+#| msgid ".bundle_lock sequence at %u bytes, but .bundle_align_mode limit is %u bytes"
+msgid ".bundle_lock sequence at %<PRIu64> bytes, but .bundle_align_mode limit is %u bytes"
msgstr "secuencia .bundle_lock en %u bytes, pero límite .bundle_align_mode es %u bytes"
-#: read.c:793
-#, c-format
-msgid "single instruction is %u bytes long, but .bundle_align_mode limit is %u bytes"
+#: read.c:777
+#, fuzzy, c-format
+#| msgid "single instruction is %u bytes long, but .bundle_align_mode limit is %u bytes"
+msgid "single instruction is %<PRIu64> bytes long, but .bundle_align_mode limit is %u bytes"
msgstr "la instrucción simple es %u bytes largos, pero límite .bundle_align_mode es %u bytes"
-#: read.c:834 read.c:2898 read.c:3526
+#: read.c:818 read.c:2947 read.c:3575
msgid "ignoring fill value in absolute section"
msgstr "ignorando valor relleno dentro de sección absoluta"
-#: read.c:836 read.c:2913 read.c:3565
+#: read.c:820 read.c:2962 read.c:3612
#, c-format
msgid "ignoring fill value in section `%s'"
msgstr "ignorando valor rellenado dentro de sección «%s»"
-#: read.c:1276
+#: read.c:1260
#, c-format
msgid "unknown pseudo-op: `%s'"
msgstr "pseudo-operador desconocido: «%s»"
-#: read.c:1329
+#: read.c:1313
msgid "unable to continue with assembly."
msgstr "incapaz de continuar con ensamblador."
-#: read.c:1363
+#: read.c:1347
#, c-format
msgid "local label too large near %s"
msgstr ""
-#: read.c:1386
+#: read.c:1370
#, fuzzy, c-format
#| msgid "label \"%d$\" redefined"
msgid "label \"%ld$\" redefined"
msgstr "etiqueta \"%d$\" redefinida"
-#: read.c:1435
+#: read.c:1419
msgid ".bundle_lock with no matching .bundle_unlock"
msgstr "directiva .bundle_lock sin una coincidencia .bundle_unlock"
-#: read.c:1535
+#: read.c:1523
msgid ".abort detected. Abandoning ship."
msgstr "se detectó .abort. Se abandona la nave."
-#: read.c:1597
+#: read.c:1586
#, c-format
msgid "alignment too large: %u assumed"
msgstr "alineamiento es muy grande: %u asumido"
-#: read.c:1629
+#: read.c:1616
+#, fuzzy
+#| msgid "ignoring bad alignment"
+msgid "ignoring out of range alignment maximum"
+msgstr "se descarta la alineamiento incorrecta"
+
+#: read.c:1625
msgid "expected fill pattern missing"
msgstr "ausente el patrón de relleno esperado"
-#: read.c:1654
+#: read.c:1650
#, c-format
msgid "fill pattern too long, truncating to %u"
msgstr ""
-#: read.c:1755
+#: read.c:1751
msgid "symbol name not recognised in the current locale"
msgstr ""
@@ -23376,441 +23299,460 @@ msgstr ""
#. We do not want to barf on this, especially since such files are used
#. in the GCC and GDB testsuites. So we check for negative line numbers
#. rather than non-positive line numbers.
-#: read.c:2104
+#: read.c:2100
#, c-format
msgid "line numbers must be positive; line number %d rejected"
msgstr "los números de línea deben ser positivos; número de línea %d rechazada"
-#: read.c:2142
+#: read.c:2138
#, c-format
msgid "incompatible flag %i in line directive"
msgstr "opción incompatible %i en la directriz de línea"
-#: read.c:2154
+#: read.c:2150
#, c-format
msgid "unsupported flag %i in line directive"
msgstr "no se admite la opción %i en la directriz de línea"
-#: read.c:2197
+#: read.c:2193
msgid "start address not supported"
msgstr "no se admite la dirección de inicio"
-#: read.c:2206
+#: read.c:2202
msgid ".err encountered"
msgstr "se encontró .err"
-#: read.c:2222
+#: read.c:2218
msgid ".error directive invoked in source file"
msgstr "se invocó la directiva .error en el fichero fuente"
-#: read.c:2223
+#: read.c:2219
msgid ".warning directive invoked in source file"
msgstr "se invocó la directiva .warning en el fichero fuente"
-#: read.c:2229
+#: read.c:2225
#, c-format
msgid "%s argument must be a string"
msgstr "argumento %s debe ser una cadena textual"
-#: read.c:2261 read.c:2263
+#: read.c:2287
+#, fuzzy
+#| msgid ".abiversion expression does not evaluate to a constant"
+msgid "expression does not evaluate to a constant"
+msgstr "expresión .abiversion no evalúa a una constante"
+
+#: read.c:2292
+#, fuzzy
+#| msgid "shift expression is too large"
+msgid ".errif expression evaluates to true"
+msgstr "la expresión de desplazamiento es demasiado grande"
+
+#: read.c:2295
+#, fuzzy
+#| msgid "shift expression is too large"
+msgid ".warnif expression evaluates to true"
+msgstr "la expresión de desplazamiento es demasiado grande"
+
+#: read.c:2313 read.c:2315
#, c-format
msgid ".fail %ld encountered"
msgstr "encontrado .fail %ld"
-#: read.c:2303
+#: read.c:2355
#, c-format
msgid ".fill size clamped to %d"
msgstr "tamaño .fill restringido a %d"
-#: read.c:2308
+#: read.c:2360
msgid "size negative; .fill ignored"
msgstr "tamaño negativo; se descarta .fill"
-#: read.c:2314
+#: read.c:2366
msgid "repeat < 0; .fill ignored"
msgstr "repetición < 0; se descarta .fill"
-#: read.c:2321
+#: read.c:2373
msgid "non-constant fill count for absolute section"
msgstr "contador de relleno no constante para sección absoluta"
-#: read.c:2326
+#: read.c:2378
msgid "attempt to fill absolute section with non-zero value"
msgstr "trata rellenar sección absoluta con valor distinto de cero"
-#: read.c:2333
+#: read.c:2385
#, c-format
msgid "attempt to fill section `%s' with non-zero value"
msgstr "trata rellenar sección «%s» con valor distinto de cero"
-#: read.c:2498
+#: read.c:2547
#, c-format
msgid "unrecognized .linkonce type `%s'"
-msgstr "no reconocido tipo .linkonce «%s»"
+msgstr "no se reconoce tipo .linkonce «%s»"
-#: read.c:2510
+#: read.c:2559
msgid ".linkonce is not supported for this object file format"
msgstr ".linkonce no admitido en este formato de fichero objeto"
-#: read.c:2605
+#: read.c:2654
msgid "expected alignment after size"
msgstr "se esperaba alineamiento tras tamaño"
-#: read.c:2818
+#: read.c:2867
#, c-format
msgid "attempt to redefine pseudo-op `%s' ignored"
msgstr "intenta redefinir pseudo-operador «%s» descartado"
-#: read.c:2839
+#: read.c:2888
msgid "ignoring macro exit outside a macro definition."
msgstr "se descarta la salida de macro fuera de una definición de macro."
-#: read.c:2893
+#: read.c:2942
#, c-format
msgid "invalid segment \"%s\""
msgstr "segmento no válido «%s»"
-#: read.c:2901
+#: read.c:2950
msgid "only constant offsets supported in absolute section"
msgstr "solo se admiten los desplazamientos constantes en la sección absoluta"
-#: read.c:2944
+#: read.c:2993
msgid "MRI style ORG pseudo-op not supported"
msgstr "MRI de estilo ORG pseudo-operador no apoyado"
-#: read.c:3115
+#: read.c:3164
#, c-format
msgid ".end%c encountered without preceding %s"
msgstr "se encontró .end%c sin un %s precedente"
-#: read.c:3149
+#: read.c:3198
#, fuzzy, c-format
#| msgid "negative count for %s - ignored"
msgid "excessive count %zu for %s - ignored"
msgstr "contador negativo para %s - descartado"
-#: read.c:3156
+#: read.c:3205
#, c-format
msgid "%s without %s"
msgstr "%s sin %s"
-#: read.c:3190
+#: read.c:3239
msgid "`\\' at end of line/statement; ignored"
msgstr ""
-#: read.c:3469
+#: read.c:3518
msgid "unsupported variable size or fill value"
msgstr "no se admiten el tamaño de la variable o el valor de relleno"
-#: read.c:3477
+#: read.c:3526
#, c-format
msgid "size value for space directive too large: %lx"
msgstr ""
-#: read.c:3503
+#: read.c:3552
msgid ".space repeat count is negative, ignored"
msgstr "el contador de repetición .space es negativo, se descartó"
-#: read.c:3509
+#: read.c:3558
msgid ".space repeat count is zero, ignored"
msgstr "el contador de repetición .space es cero, se descartó"
-#: read.c:3517
+#: read.c:3566
#, fuzzy
#| msgid ".space repeat count is zero, ignored"
msgid ".space repeat count overflow, ignored"
msgstr "el contador de repetición .space es cero, se descartó"
-#: read.c:3549
+#: read.c:3597
msgid "space allocation too complex in absolute section"
msgstr "la asignación de espacio es demasiado compleja en la sección absoluta"
-#: read.c:3555
+#: read.c:3603
msgid "space allocation too complex in common section"
msgstr "la asignación de espacio es demasiado compleja en la sección común"
-#: read.c:3664
+#: read.c:3718
#, fuzzy
#| msgid "unsupported flag %i in line directive"
msgid "unsupported variable nop control in .nops directive"
msgstr "no se admite la opción %i en la directriz de línea"
-#: read.c:3670
+#: read.c:3724
#, fuzzy
#| msgid "negative count for %s - ignored"
msgid "negative nop control byte, ignored"
msgstr "contador negativo para %s - descartado"
-#: read.c:3739
+#: read.c:3792
#, fuzzy, c-format
#| msgid "unknown floating type type '%c'"
msgid "unknown floating type '%c'"
msgstr "desconoce tipo de coma flotante '%c'"
-#: read.c:3965
+#: read.c:4018
#, c-format
msgid "%s: would close weakref loop: %s"
msgstr "%s: cerraría el ciclo weakref: %s"
-#: read.c:4022
+#: read.c:4075
#, c-format
msgid "junk at end of line, first unrecognized character valued 0x%x"
msgstr "basura al final de la línea; el primer carácter descartado tiene valor 0x%x"
-#: read.c:4150 write.c:2426
+#: read.c:4205 write.c:2403
#, c-format
msgid "`%s' can't be equated to common symbol `%s'"
msgstr "«%s» no puede ser igualdad al símbolo común «%s»"
-#: read.c:4278
+#: read.c:4341
msgid "unexpected `\"' in expression"
msgstr "`«' o `»' inesperada dentro de expresión"
-#: read.c:4291
+#: read.c:4354
msgid "rva without symbol"
msgstr "rva sin símbolo"
-#: read.c:4366
+#: read.c:4429
msgid "missing or bad offset expression"
msgstr "expresión de desplazamiento ausentente o incorrecta"
-#: read.c:4390
+#: read.c:4453
msgid "missing reloc type"
-msgstr "ausente el tipo reubicado"
+msgstr "falta el tipo de reubicación"
-#: read.c:4414
+#: read.c:4477
msgid "unrecognized reloc type"
-msgstr "no reconocido el tipo reubicado"
+msgstr "no se reconoce el tipo de reubicación"
-#: read.c:4430
+#: read.c:4493
msgid "bad reloc expression"
msgstr "expresión de reubicación incorrecta"
-#: read.c:4582 read.c:5352 read.c:5478
+#: read.c:4645 read.c:5414 read.c:5542
msgid "zero assumed for missing expression"
msgstr "se asume cero para la expresión ausentente"
-#: read.c:4602 read.c:5381 read.c:5497
+#: read.c:4665 read.c:5445 read.c:5561
msgid "attempt to store value in absolute section"
msgstr "se intentó almacenar un valor en la sección absoluta"
-#: read.c:4609 read.c:5387 read.c:5503
+#: read.c:4672 read.c:5451 read.c:5567
#, c-format
msgid "attempt to store non-zero value in section `%s'"
msgstr "trata almacenar un valor distinto de cero en la sección «%s»"
#. Leading bits contain both 0s & 1s.
-#: read.c:4686
+#: read.c:4748
#, fuzzy, c-format
#| msgid "value 0x%I64x truncated to 0x%I64x"
msgid "value 0x%<PRIx64> truncated to 0x%<PRIx64>"
msgstr "valora 0x%I64x truncado a 0x%I64x"
-#: read.c:4730
+#: read.c:4792
#, c-format
msgid "bignum truncated to %d byte"
msgid_plural "bignum truncated to %d bytes"
msgstr[0] "número grande truncado a %d bytes"
msgstr[1] "número grande truncado a %d byte"
-#: read.c:4939 read.c:5090
+#: read.c:5001 read.c:5152
msgid "unresolvable or nonpositive repeat count; using 1"
msgstr "cuenta de repetición sin resolver o no positiva; se utiliza 1"
-#: read.c:4982
+#: read.c:5044
msgid "floating point constant too large"
msgstr "constante de coma flotante demasiado grande"
-#: read.c:5047
+#: read.c:5109
msgid "attempt to store float in absolute section"
msgstr "trata almacenar flotante en sección absoluta"
-#: read.c:5054
+#: read.c:5116
#, c-format
msgid "attempt to store float in section `%s'"
msgstr "trata almacenar un valor en la sección flotante «%s»"
-#: read.c:5484
+#: read.c:5548
#, fuzzy
#| msgid "bignum invalid"
msgid "number invalid"
msgstr "bignum inválido"
-#: read.c:5740
+#: read.c:5804
#, fuzzy
#| msgid "strings must be placed into a section"
msgid "base64 strings must be placed into a section"
msgstr "las cadenas se deben colocar en una sección"
-#: read.c:5747
+#: read.c:5811
msgid "a string must follow the .base64 pseudo-op"
msgstr ""
-#: read.c:5767
+#: read.c:5831
msgid "expected double quote enclosed string as argument to .base64 pseudo-op"
msgstr ""
-#: read.c:5784
+#: read.c:5848
msgid "end of line encountered inside .base64 string"
msgstr ""
-#: read.c:5795
+#: read.c:5859
msgid ".base64 string terminated early"
msgstr ""
-#: read.c:5800
+#: read.c:5864
#, fuzzy
#| msgid "base register expected"
msgid ".base64 string terminated unexpectedly"
msgstr "se esperaba un registro base"
-#: read.c:5807
+#: read.c:5871
msgid "equals character only allowed at end of .base64 string"
msgstr ""
-#: read.c:5816
+#: read.c:5880
msgid "the equals character cannot start a block of four base64 encoded bytes"
msgstr ""
-#: read.c:5822
+#: read.c:5886
msgid "the equals character cannot be the second character in a block of four base64 encoded bytes"
msgstr ""
-#: read.c:5832
+#: read.c:5896
#, fuzzy, c-format
#| msgid "invalid character %c in operand %d"
msgid "invalid character '%c' found inside .base64 string"
msgstr "carácter inválido %c en el operando %d"
-#: read.c:5834
+#: read.c:5898
#, fuzzy, c-format
#| msgid "invalid character %s in operand %d"
msgid "invalid character %#x found inside .base64 string"
msgstr "carácter inválido %s en operando %d"
-#: read.c:5860
+#: read.c:5924
msgid "no base64 characters expected after '=' padding characters"
msgstr ""
-#: read.c:5870
+#: read.c:5934
msgid ".base64 string must have a terminating double quote character"
msgstr ""
-#: read.c:5903
+#: read.c:5967
#, c-format
msgid "attempt to store non-empty string in section `%s'"
msgstr "trata almacenar cadena no vacía dentro de sección «%s»"
-#: read.c:5965
+#: read.c:6029
msgid "strings must be placed into a section"
msgstr "las cadenas se deben colocar en una sección"
-#: read.c:6032
+#: read.c:6096
msgid "expected <nn>"
msgstr "se esperaba <nn>"
#. To be compatible with BSD 4.2 as: give the luser a linefeed!!
-#: read.c:6073 read.c:6160
+#: read.c:6137 read.c:6224
msgid "unterminated string; newline inserted"
msgstr "cadena sin terminar; se insertó una línea nueva"
-#: read.c:6174
+#: read.c:6238
msgid "bad escaped character in string"
msgstr "carácter escapado incorrectamente en la cadena"
-#: read.c:6198
+#: read.c:6262
msgid "expected address expression"
msgstr "se esperaba una expresión direccional"
-#: read.c:6217
+#: read.c:6281
#, c-format
msgid "symbol \"%s\" undefined; zero assumed"
msgstr "símbolo indefinido «%s»; se asume cero"
-#: read.c:6220
+#: read.c:6284
msgid "some symbol undefined; zero assumed"
msgstr "algunos símbolos sin definir; se asumen cero"
-#: read.c:6254
+#: read.c:6318
msgid "this string may not contain '\\0'"
msgstr "esta cadena no puede contener '\\0'"
-#: read.c:6291
+#: read.c:6355
msgid "missing string"
msgstr "falta cadena"
-#: read.c:6406
+#: read.c:6470
#, c-format
msgid ".incbin count zero, ignoring `%s'"
msgstr "la cuenta .incbin es cero, se descarta «%s»"
-#: read.c:6418
+#: read.c:6482
#, c-format
msgid "file not found: %s"
msgstr "no se encontró el fichero: %s"
-#: read.c:6428
+#: read.c:6492
#, fuzzy, c-format
#| msgid "unable to locate include file: %s"
msgid "unable to include `%s'"
msgstr "no se puede localizar el fichero de inclusión: %s"
-#: read.c:6437
+#: read.c:6501
#, c-format
msgid "seek to end of .incbin file failed `%s'"
msgstr "falló la búsqueda del final del fichero .incbin «%s»"
-#: read.c:6448
+#: read.c:6512
#, c-format
msgid "skip (%ld) or count (%ld) invalid for file size (%ld)"
msgstr "salto (%ld) o cuenta (%ld) inválidos para el tamaño del fichero (%ld)"
-#: read.c:6455
+#: read.c:6519
#, c-format
msgid "could not skip to %ld in file `%s'"
msgstr "no se puede omiter a %ld en el fichero «%s»"
-#: read.c:6464
+#: read.c:6528
#, c-format
msgid "truncated file `%s', %ld of %ld bytes read"
msgstr "fichero «%s» truncado, leyeron %ld de %ld bytes"
-#: read.c:6601
+#: read.c:6664
msgid "missing .func"
-msgstr "ausente .func"
+msgstr "falta .func"
-#: read.c:6620
+#: read.c:6683
msgid ".endfunc missing for previous .func"
-msgstr "ausente .endfunc para el .func previo"
+msgstr "falta .endfunc para el .func previo"
-#: read.c:6673
+#: read.c:6736
#, c-format
msgid ".bundle_align_mode alignment too large (maximum %u)"
msgstr "alineamiento .bundle_align_mode demasiado grande (maximo %u)"
-#: read.c:6678
+#: read.c:6741
msgid "cannot change .bundle_align_mode inside .bundle_lock"
msgstr ""
-#: read.c:6692
+#: read.c:6755
msgid ".bundle_lock is meaningless without .bundle_align_mode"
msgstr ""
-#: read.c:6713
+#: read.c:6776
msgid ".bundle_unlock without preceding .bundle_lock"
msgstr "directiva .bundle_unlock sin precedente .bundle_lock"
-#: read.c:6726
-#, c-format
-msgid ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"
-msgstr ""
+#: read.c:6789
+#, fuzzy, c-format
+#| msgid ".bundle_lock sequence at %u bytes, but .bundle_align_mode limit is %u bytes"
+msgid ".bundle_lock sequence is %<PRIu64> bytes, but bundle size is only %u bytes"
+msgstr "secuencia .bundle_lock en %u bytes, pero límite .bundle_align_mode es %u bytes"
-#: read.c:6825
+#: read.c:6888
#, c-format
msgid "missing closing `%c'"
-msgstr "ausente de cierre `%c'"
+msgstr "falta de cierre `%c'"
-#: read.c:6827
+#: read.c:6890
msgid "stray `\\'"
msgstr "basura `\\'"
@@ -23892,7 +23834,7 @@ msgstr ".stab%c: la descripción del campo '%x' es demasiado grande, intente un
msgid "comma missing in .xstabs"
msgstr "falta coma en .xstabs"
-#: symbols.c:386 symbols.c:2550
+#: symbols.c:386 symbols.c:2519
#, fuzzy, c-format
#| msgid "Symbol '%s' could not be created."
msgid "symbol '%s' contains multibyte characters"
@@ -23903,90 +23845,90 @@ msgstr "No se puede crear el símbolo «%s»."
msgid "cannot define symbol `%s' in absolute section"
msgstr "no se puede definir el símbolo «%s» en la sección absoluta"
-#: symbols.c:659
+#: symbols.c:651
#, c-format
msgid "symbol `%s' is already defined as \"%s\"/%s%ld"
msgstr "el símbolo «%s» ya está definido como «%s»/%s%ld"
-#: symbols.c:1257
+#: symbols.c:1226
#, c-format
msgid "invalid operands (%s and %s sections) for `%s'"
msgstr "operandos inválidos (secciones %s y %s) para «%s»"
-#: symbols.c:1261
+#: symbols.c:1230
#, c-format
msgid "invalid operand (%s section) for `%s'"
msgstr "operando inválido (sección %s) para «%s»"
-#: symbols.c:1269
+#: symbols.c:1238
#, c-format
msgid "invalid operands (%s and %s sections) for `%s' when setting `%s'"
msgstr "operandos inválidos (secciones %s y %s) para «%s» al establecer «%s»"
-#: symbols.c:1272
+#: symbols.c:1241
#, c-format
msgid "invalid operand (%s section) for `%s' when setting `%s'"
msgstr "operando inválido (sección %s) para «%s» al establecer «%s»"
-#: symbols.c:1341
+#: symbols.c:1310
#, c-format
msgid "symbol definition loop encountered at `%s'"
msgstr "definición de símbolo encontrada en bucle en `%s'"
-#: symbols.c:1368
+#: symbols.c:1337
#, c-format
msgid "cannot convert expression symbol %s to complex relocation"
msgstr "no se puede convertir el símbolo de expresión %s a una reubicación compleja"
-#: symbols.c:1707
+#: symbols.c:1676
#, c-format
msgid "division by zero when setting `%s'"
msgstr "división por cero al establecer «%s»"
#. See PR 20895 for a reproducer.
-#: symbols.c:1777
+#: symbols.c:1746
msgid "Invalid operation on symbol"
msgstr "Operación no válida en símbolo"
-#: symbols.c:1827 write.c:2475
+#: symbols.c:1796 write.c:2452
#, c-format
msgid "can't resolve value for symbol `%s'"
msgstr "no se puede resolver el valor para el símbolo «%s»"
-#: symbols.c:2235
+#: symbols.c:2204
#, fuzzy, c-format
#| msgid "\"%d\" (instance number %d of a %s label)"
msgid "\"%u\" (instance number %u of a %s label)"
msgstr "\"%d\" (número de instancia %d de una etiqueta %s)"
-#: symbols.c:2266
+#: symbols.c:2235
msgid "expression is too complex to be resolved or converted into relocations"
msgstr ""
-#: symbols.c:2268 symbols.c:2271
+#: symbols.c:2237 symbols.c:2240
#, c-format
msgid "attempt to get value of unresolved symbol `%s'"
msgstr "se intentó obtener el valor del símbolo sin resolver «%s»"
#. Do not reassign section symbols.
-#: symbols.c:2571
+#: symbols.c:2540
#, fuzzy
#| msgid "can't create section %s"
msgid "can't make section symbol global"
msgstr "no se puede crear la sección %s"
-#: symbols.c:2577
+#: symbols.c:2546
#, fuzzy
#| msgid "can't make global register symbol `%s'"
msgid "can't make register symbol global"
msgstr "no se puede hacer global el símbolo de registro «%s»"
-#: symbols.c:2683
+#: symbols.c:2652
#, c-format
msgid "Accessing function `%s' as thread-local object"
msgstr "Se accede a la función «%s» como un objeto de hilo local"
-#: symbols.c:2687
+#: symbols.c:2656
#, c-format
msgid "Accessing `%s' as thread-local object"
msgstr "Se accede «%s» como un objeto de hilo local"
@@ -24071,78 +24013,103 @@ msgstr "no se pueden extender el fragmento"
msgid "unimplemented .nops directive"
msgstr "directiva .end no coincidida"
-#: write.c:1662
+#: write.c:1674
#, c-format
msgid "can't write %ld byte to section %s of %s: '%s'"
msgid_plural "can't write %ld bytes to section %s of %s: '%s'"
msgstr[0] "no se puede escribir %ld byte a sección %s de %s: «%s»"
msgstr[1] "no se puede escribir %ld bytes a sección %s de %s: «%s»"
-#: write.c:1688 write.c:1722 write.c:1759
+#: write.c:1699 write.c:1735
#, c-format
msgid "can't fill %ld byte in section %s of %s: '%s'"
msgid_plural "can't fill %ld bytes in section %s of %s: '%s'"
msgstr[0] "no se puede rellenar %ld byte en sección %s de %s: '%s'"
msgstr[1] "no se puede rellenar %ld bytes en sección %s de %s: '%s'"
-#: write.c:1976
+#: write.c:1951
#, fuzzy
#| msgid "Unable to use @plt relocation for insn %s"
msgid "unable to create reloc for build note"
msgstr "No se ha podido utilizar @plt para reubicación para insn %s"
-#: write.c:1980
+#: write.c:1955
msgid "<gnu build note>"
msgstr ""
-#: write.c:2391
+#: write.c:2368
#, c-format
msgid "%s: global symbols not supported in common sections"
msgstr "%s: no se admiten los símbolos globales en las secciones comunes"
-#: write.c:2405
+#: write.c:2382
#, c-format
msgid "local label `%s' is not defined"
msgstr "la etiqueta local «%s» no está definida"
-#: write.c:2433
+#: write.c:2410
#, c-format
msgid "can't make global register symbol `%s'"
msgstr "no se puede hacer global el símbolo de registro «%s»"
-#: write.c:2744
+#: write.c:2721
#, c-format
msgid "alignment padding (%lu byte) not a multiple of %ld"
msgid_plural "alignment padding (%lu bytes) not a multiple of %ld"
msgstr[0] "rellenando alineamiento (%lu byte) no un múltiplo de %ld"
msgstr[1] "rellenando alineamiento (%lu bytes) no un múltiplo de %ld"
-#: write.c:2921
+#: write.c:2897
#, c-format
msgid ".word %s-%s+%s didn't fit"
msgstr "no cabe .word %s-%s+%s"
-#: write.c:3013
+#: write.c:2989
msgid "padding added"
msgstr "se añadió relleno"
-#: write.c:3064
+#: write.c:3040
msgid "attempt to move .org backwards"
msgstr "se intentó mover .org hacia atrás"
-#: write.c:3089
+#: write.c:3065
#, fuzzy
#| msgid ".space specifies non-absolute value"
msgid ".space, .nops or .fill specifies non-absolute value"
msgstr ".space especifica un valor que no es absoluto"
-#: write.c:3104
+#: write.c:3080
#, fuzzy
#| msgid ".space or .fill with negative value, ignored"
msgid ".space, .nops or .fill with negative value, ignored"
msgstr ".space ó .fill con valor negativo, se descarta"
-#: write.c:3194
+#: write.c:3170
#, c-format
msgid "Infinite loop encountered whilst attempting to compute the addresses of symbols in section %s"
msgstr "Se encontró un ciclo infinito al intentar computar las direcciones de los símbolos en la sección %s"
+
+#, c-format
+#~ msgid "internal error: failed to allocate %d indirectsymbol pointers"
+#~ msgstr "error interno: no se ha podido asignar %d punteros de símbolo indirectos"
+
+#, c-format
+#~ msgid "unpredictable load pair transfer with register overlap -- `%s'"
+#~ msgstr "transferencia de par de carga impredecible con solapamiento de registros -- «%s»"
+
+#, c-format
+#~ msgid "unpredictable transfer with writeback (load) -- `%s'"
+#~ msgstr "transferencia impredecible con retroescritura (carga) -- «%s»"
+
+#, c-format
+#~ msgid "unpredictable transfer with writeback (store) -- `%s'"
+#~ msgstr "transferencia impredecible con retroescritura (almacenamiento) -- «%s»"
+
+#, c-format
+#~ msgid "alignments greater than %d bytes not supported in .text sections."
+#~ msgstr "no se admiten las alineaciones más grandes que %d bytes en las secciones .text."
+
+#, fuzzy, c-format
+#~| msgid "Big number is too big"
+#~ msgid "file number %lu is too big"
+#~ msgstr "El número grande es demasiado grande"
diff --git a/gas/po/gas.es.po b/gas/po/gas.es.po
deleted file mode 100644
index 114983c..0000000
--- a/gas/po/gas.es.po
+++ /dev/null
@@ -1,24208 +0,0 @@
-# Spanish localization for gas-2.30.0.
-# Copyright (C) 2018 2012 Free Software Foundation, Inc.
-# This file is distributed under the same license as the binutils package.
-# Cristian Othón Martínez Vera <cfuga@cfuga.mx>, 2002 - 2012.
-# Francisco Javier Serrador <fserrador@gmail.com>, 2018.
-# Antonio Ceballos <aceballos@gmail.com>, 2025
-msgid ""
-msgstr ""
-"Project-Id-Version: gas 2.43.90\n"
-"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2025-01-19 12:20+0000\n"
-"PO-Revision-Date: 2025-07-05 23:43+0200\n"
-"Last-Translator: Antonio Ceballos <aceballos@gmail.com>\n"
-"Language-Team: Spanish <es@tp.org.es>\n"
-"Language: es\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Bugs: Report translation errors to the Language-Team address.\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 2.0.4\n"
-
-#: app.c:446
-#, c-format
-msgid "multibyte character (%#x) encountered in input"
-msgstr "carácter multibyte (%#x) encontrado en la entrada"
-
-#: app.c:448
-#, c-format
-msgid "multibyte character (%#x) encountered in %s"
-msgstr "carácter multibyte (%#x) encontrado en %s"
-
-#: app.c:450
-#, c-format
-msgid "multibyte character (%#x) encountered in %s at or near line %u"
-msgstr "carácter multibyte (%#x) encontrado en %s hacia la línea %u"
-
-#: app.c:454
-msgid "further multibyte character warnings suppressed"
-msgstr "avisos de carácter multibyte adicionales suprimidos"
-
-#: app.c:665 app.c:710
-#, c-format
-msgid "end of file in string; '%c' inserted"
-msgstr "final de fichero en cadena; '%c' insertado"
-
-#: app.c:741
-#, c-format
-msgid "unknown escape '\\%c' in string; ignored"
-msgstr "escape '\\%c' desconocida en la cadena; se descarta"
-
-#: app.c:953 input-scrub.c:389
-msgid "end of file not at end of a line; newline inserted"
-msgstr "final de fichero no situado en final de línea: se inserta una nueva línea"
-
-#: app.c:1131
-msgid "end of file in multiline comment"
-msgstr "final de fichero en comentario multilínea"
-
-#: app.c:1207
-msgid "end of file after a one-character quote; \\0 inserted"
-msgstr "final de fichero tras una comilla de un carácter; se inserta \\0"
-
-#: app.c:1215
-msgid "end of file in escape character"
-msgstr "final de fichero en carácter de escape"
-
-#: app.c:1227
-msgid "missing close quote; (assumed)"
-msgstr "falta comilla de cierre; (se asume)"
-
-#: app.c:1295 app.c:1344 app.c:1356 app.c:1430
-msgid "end of file in comment; newline inserted"
-msgstr "final de fichero en comentario; nueva línea insertada"
-
-#: as.c:157
-msgid "missing emulation mode name"
-msgstr "falta el nombre del modo de emulación"
-
-#: as.c:172
-#, c-format
-msgid "unrecognized emulation name `%s'"
-msgstr "nombre de emulación no reconocido «%s»"
-
-#: as.c:212
-#, c-format
-msgid "GNU assembler version %s (%s) using BFD version %s\n"
-msgstr "versión de ensamblador GNU %s (%s) utilizando versión de BFD %s\n"
-
-#: as.c:228
-#, c-format
-msgid "Usage: %s [option...] [asmfile...]\n"
-msgstr "Modo de empleo: %s [opción...] [ficheroasm...]\n"
-
-#: as.c:230
-#, c-format
-msgid ""
-"Options:\n"
-" -a[sub-option...]\t turn on listings\n"
-" \t Sub-options [default hls]:\n"
-" \t c omit false conditionals\n"
-" \t d omit debugging directives\n"
-" \t g include general info\n"
-" \t h include high-level source\n"
-" \t i include ginsn and synthesized CFI info\n"
-" \t l include assembly\n"
-" \t m include macro expansions\n"
-" \t n omit forms processing\n"
-" \t s include symbols\n"
-" \t =FILE list to FILE (must be last sub-option)\n"
-msgstr ""
-"Opciones:\n"
-" -a[sub-opción...]\t activa listados\n"
-" \t Subopciones [por defecto hls]:\n"
-" \t c omite condicionales falsos\n"
-" \t d omite directivas de depuración\n"
-" \t g incluye información general\n"
-" \t h incluye fuente de alto nivel\n"
-" \t i incluye ginsn e información de CFI sintetizada\n"
-" \t l incluye ensamblador\n"
-" \t m incluye expansiones de macros\n"
-" \t n omite el procesamiento de formas\n"
-" \t s incluye símbolos\n"
-" \t =FICH lista a FICHero (ha de ser la última subopción)\n"
-
-#: as.c:245
-#, c-format
-msgid " --alternate initially turn on alternate macro syntax\n"
-msgstr " --alternate activa inicialmente la sintaxis de macros alternativa\n"
-
-#: as.c:247
-#, c-format
-msgid ""
-" --compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi|zstd}]\n"
-" compress DWARF debug sections\n"
-msgstr ""
-" --compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi|zstd}]\n"
-" comprime las secciones de depuración DWARF\n"
-
-#: as.c:250
-#, c-format
-msgid "\t\t Default: %s\n"
-msgstr "\t\t Por defecto: %s\n"
-
-#: as.c:255
-#, c-format
-msgid ""
-" --nocompress-debug-sections\n"
-" don't compress DWARF debug sections\n"
-msgstr ""
-" --nocompress-debug-sections\n"
-" no comprime las secciones de depuración DWARF\n"
-
-#: as.c:258
-#, c-format
-msgid " -D produce assembler debugging messages\n"
-msgstr " -D produce mensajes de depuración de ensamblador\n"
-
-#: as.c:260
-#, c-format
-msgid " --dump-config display how the assembler is configured and then exit\n"
-msgstr " --dump-config muestra cómo está configurado el ensamblador y termina\n"
-
-#: as.c:262
-#, c-format
-msgid ""
-" --debug-prefix-map OLD=NEW\n"
-" map OLD to NEW in debug information\n"
-msgstr ""
-" --debug-prefix-map ANT=NUEVO\n"
-" asocia ANT a NUEVO en la información de depuración\n"
-
-#: as.c:265
-#, c-format
-msgid " --defsym SYM=VAL define symbol SYM to given value\n"
-msgstr " --defsym SIM=VAL define el símbolo SIM al valor dado\n"
-
-#: as.c:281
-#, c-format
-msgid " emulate output (default %s)\n"
-msgstr " emula la salida (por defecto %s)\n"
-
-#: as.c:286
-#, c-format
-msgid " --execstack require executable stack for this object\n"
-msgstr " --execstack requiere pila ejecutable para este objeto\n"
-
-#: as.c:288
-#, c-format
-msgid " --noexecstack don't require executable stack for this object\n"
-msgstr " --noexecstack no requiere pila ejecutable para este objeto\n"
-
-#: as.c:290
-#, c-format
-msgid ""
-" --size-check=[error|warning]\n"
-"\t\t\t ELF .size directive check (default --size-check=error)\n"
-msgstr ""
-" --size-check=[error|warning]\n"
-"\t\t\t revisar directiva .size de ELF (--size-check=error por defecto)\n"
-
-#: as.c:293
-#, c-format
-msgid " --elf-stt-common=[no|yes] "
-msgstr " --elf-stt-common=[no|yes] "
-
-#: as.c:296 as.c:307 config/tc-i386.c:17662 config/tc-i386.c:17682
-#: config/tc-i386.c:17691
-#, c-format
-msgid "(default: yes)\n"
-msgstr "(por defecto: yes)\n"
-
-#: as.c:298 as.c:309 config/tc-i386.c:17664 config/tc-i386.c:17684
-#: config/tc-i386.c:17693
-#, c-format
-msgid "(default: no)\n"
-msgstr "(por defecto: no)\n"
-
-#: as.c:299
-#, c-format
-msgid " generate ELF common symbols with STT_COMMON type\n"
-msgstr " genera símbolos comunes ELF con tipo STT_COMMON\n"
-
-#: as.c:301
-#, c-format
-msgid " --sectname-subst enable section name substitution sequences\n"
-msgstr " --sectname-subst activa secuencias de sustitución de nombre de sección\n"
-
-#: as.c:304
-#, c-format
-msgid " --generate-missing-build-notes=[no|yes] "
-msgstr " --generate-missing-build-notes=[no|yes] "
-
-#: as.c:311
-#, c-format
-msgid " generate GNU Build notes if none are present in the input\n"
-msgstr " genera notas de GNU Build si no las hay en la entrada\n"
-
-#: as.c:313
-#, c-format
-msgid " --gsframe generate SFrame stack trace information\n"
-msgstr " --gsframe genera información de traza de pila SFrame\n"
-
-#: as.c:316
-#, c-format
-msgid ""
-" --scfi=experimental Synthesize DWARF CFI for hand-written asm\n"
-" (experimental support)\n"
-msgstr ""
-" --scfi=experimental Sintetiza CFI DWARF asm hecho a mano\n"
-" (soporte experimental)\n"
-
-#: as.c:322
-#, c-format
-msgid " -f skip whitespace and comment preprocessing\n"
-msgstr ""
-" -f se salta el procesamiento de espacios en blanco y\n"
-" comentarios\n"
-
-#: as.c:324
-#, c-format
-msgid " -g, --gen-debug generate debugging information\n"
-msgstr " -g, --gen-debug genera información de depuración\n"
-
-#: as.c:326
-#, c-format
-msgid " --gstabs generate STABS debugging information\n"
-msgstr " --gstabs genera información de depuración de STABS\n"
-
-#: as.c:328
-#, c-format
-msgid " --gstabs+ generate STABS debug info with GNU extensions\n"
-msgstr " --gstabs+ genera informe de depuración de STABS con extensiones GNU\n"
-
-#: as.c:330
-#, c-format
-msgid " --gdwarf-<N> generate DWARF<N> debugging information. 2 <= <N> <= 5\n"
-msgstr " --gdwarf-<N> genera información de depuración DWARF<N>. 2 <= <N> <= 5\n"
-
-#: as.c:332
-#, c-format
-msgid " --gdwarf-cie-version=<N> generate version 1, 3 or 4 DWARF CIEs\n"
-msgstr " --gdwarf-cie-version=<N> genera CIEs DWARF versión 1, 3 o 4\n"
-
-#: as.c:334
-#, c-format
-msgid " --gdwarf-sections generate per-function section names for DWARF line information\n"
-msgstr ""
-" --gdwarf-sections genera nombres de sección por función para la\n"
-" información de línea DWARF\n"
-
-#: as.c:337
-#, c-format
-msgid " --gcodeview generate CodeView debugging information\n"
-msgstr " --gcodeview genera información de depuración de CodeView\n"
-
-#: as.c:340
-#, c-format
-msgid " --hash-size=<N> ignored\n"
-msgstr " --hash-size=<N> se descarta\n"
-
-#: as.c:342
-#, c-format
-msgid " --help show all assembler options\n"
-msgstr " --help muestra todas las opciones del ensamblador\n"
-
-#: as.c:344
-#, c-format
-msgid " --target-help show target specific options\n"
-msgstr " --target-help muestra las opciones específicas del objetivo\n"
-
-#: as.c:346
-#, c-format
-msgid " -I DIR add DIR to search list for .include directives\n"
-msgstr " -I DIR añade DIR a la lista de búsqueda para directivas .include\n"
-
-#: as.c:348
-#, c-format
-msgid " -J don't warn about signed overflow\n"
-msgstr " -J no avisa sobre desbordamiento con signo\n"
-
-#: as.c:350
-#, c-format
-msgid " -K warn when differences altered for long displacements\n"
-msgstr " -K avisa cuando hay diferencias alteradas por desplazamientos largos\n"
-
-#: as.c:352
-#, c-format
-msgid " -L, --keep-locals keep local symbols (e.g. starting with `L')\n"
-msgstr " -L, --keep-locals conserva los símbolos locales (p.e. los que empeizan con `L')\n"
-
-#: as.c:354
-#, c-format
-msgid " -M, --mri assemble in MRI compatibility mode\n"
-msgstr " -M, --mri ensambla en modo de compatibilidad con MRI\n"
-
-#: as.c:356
-#, c-format
-msgid " --MD FILE write dependency information in FILE (default none)\n"
-msgstr " --MD FICHERO escribe la información de dependencias en FICHERO (por defecto ninguno)\n"
-
-#: as.c:358
-#, c-format
-msgid ""
-" --multibyte-handling=<method>\n"
-" what to do with multibyte characters encountered in the input\n"
-msgstr ""
-" --multibyte-handling=<método>\n"
-" qué hacer con los caracteres multibyte que aparezcan en la entrada\n"
-
-#: as.c:361
-#, c-format
-msgid " -nocpp ignored\n"
-msgstr " -nocpp se descarta\n"
-
-#: as.c:363
-#, c-format
-msgid " -no-pad-sections do not pad the end of sections to alignment boundaries\n"
-msgstr " -no-pad-sections no rellena los finales de sección hasta los bordes de alineamiento\n"
-
-#: as.c:365
-#, c-format
-msgid " -o OBJFILE name the object-file output OBJFILE (default a.out)\n"
-msgstr " -o FICHOBJ nombre del fichero objeto de salida FICHOBJ (por defecto a.out)\n"
-
-#: as.c:367
-#, c-format
-msgid " -R fold data section into text section\n"
-msgstr " -R junta la sección de datos con la de texto\n"
-
-#: as.c:369
-#, c-format
-msgid " --reduce-memory-overheads ignored\n"
-msgstr " --reduce-memory-overheads se descarta\n"
-
-#: as.c:371
-#, c-format
-msgid " --statistics print various measured statistics from execution\n"
-msgstr " --statistics imprime varias estadísticas medidas de la ejecución\n"
-
-#: as.c:373
-#, c-format
-msgid " --strip-local-absolute strip local absolute symbols\n"
-msgstr " --strip-local-absolute elimina símbolos locales absolutos\n"
-
-#: as.c:375
-#, c-format
-msgid " --traditional-format Use same format as native assembler when possible\n"
-msgstr " --traditional-format Usa el mismo formato que el ensamblador nativo en lo posible\n"
-
-#: as.c:377
-#, c-format
-msgid " --version print assembler version number and exit\n"
-msgstr " --version imprime el número de versión del ensamblador y termina\n"
-
-#: as.c:379
-#, c-format
-msgid " -W, --no-warn suppress warnings\n"
-msgstr " -W, --no-warn suprime avisos\n"
-
-#: as.c:381
-#, c-format
-msgid " --warn don't suppress warnings\n"
-msgstr " --warn no suprime avisos\n"
-
-#: as.c:383
-#, c-format
-msgid " --fatal-warnings treat warnings as errors\n"
-msgstr " --fatal-warnings trata los avisos como errores\n"
-
-#: as.c:385
-#, c-format
-msgid " --no-info suppress information messages\n"
-msgstr " --no-info suprime mensajes de información\n"
-
-#: as.c:387
-#, c-format
-msgid " --info don't suppress information messages\n"
-msgstr " --info no suprime mensajes de información\n"
-
-#: as.c:390
-#, c-format
-msgid ""
-" --itbl INSTTBL extend instruction set to include instructions\n"
-" matching the specifications defined in file INSTTBL\n"
-msgstr ""
-" --itbl INSTTBL extiende el conjunto de instrucciones para incluir\n"
-" instrucciones que coincidan con las especificaciones\n"
-" definidas en el fichero INSTTBL\n"
-
-#: as.c:394
-#, c-format
-msgid " -w ignored\n"
-msgstr " -w se descarta\n"
-
-#: as.c:396
-#, c-format
-msgid " -X ignored\n"
-msgstr " -X se descarta\n"
-
-#: as.c:398
-#, c-format
-msgid " -Z generate object file even after errors\n"
-msgstr " -Z genera fichero objeto incluso si hay errores\n"
-
-#: as.c:400
-#, c-format
-msgid ""
-" --listing-lhs-width set the width in words of the output data column of\n"
-" the listing\n"
-msgstr ""
-" --listing-lhs-width establece la anchura en palabras de la columna de\n"
-" datos de salida en el listado\n"
-
-#: as.c:403
-#, c-format
-msgid ""
-" --listing-lhs-width2 set the width in words of the continuation lines\n"
-" of the output data column; ignored if smaller than\n"
-" the width of the first line\n"
-msgstr ""
-" --listing-lhs-width2 establece el ancho en palabras de las líneas de\n"
-" continuación de la columna de datos de salida; se\n"
-" descarta si es más pequeño que la anchura de la\n"
-" primera línea\n"
-
-#: as.c:407
-#, c-format
-msgid ""
-" --listing-rhs-width set the max width in characters of the lines from\n"
-" the source file\n"
-msgstr ""
-" --listing-rhs-width establece la anchura máxima en caracteres de las\n"
-" líneas del fichero fuente\n"
-
-#: as.c:410
-#, c-format
-msgid ""
-" --listing-cont-lines set the maximum number of continuation lines used\n"
-" for the output data column of the listing\n"
-msgstr ""
-" --listing-cont-lines establece el número máximo de líneas de continuación\n"
-" utilizadas para la columna de datos de salida del\n"
-" listado\n"
-
-#: as.c:413
-#, c-format
-msgid " @FILE read options from FILE\n"
-msgstr " @FICHERO lee las opciones de FICHERO\n"
-
-#: as.c:421
-#, c-format
-msgid "Report bugs to %s\n"
-msgstr "Comunica defectos a %s\n"
-
-#: as.c:647
-#, c-format
-msgid "unrecognized option `-%c%s'"
-msgstr "opción no reconocida `-%c%s'"
-
-#: as.c:649
-#, c-format
-msgid "unrecognized option `--%s=%s'"
-msgstr "opción no reconocida `--%s=%s'"
-
-#: as.c:651
-#, c-format
-msgid "unrecognized option `--%s'"
-msgstr "opción no reconocida `--%s'"
-
-#: as.c:701
-#, c-format
-msgid "unexpected argument to --multibyte-input-option: '%s'"
-msgstr "argumento inesperado para --multibyte-input-option: '%s'"
-
-#. This output is intended to follow the GNU standards document.
-#: as.c:706
-#, c-format
-msgid "GNU assembler %s\n"
-msgstr "Ensamblador GNU %s\n"
-
-#: as.c:707
-#, c-format
-msgid "Copyright (C) 2025 Free Software Foundation, Inc.\n"
-msgstr "Copyright (C) 2025 Free Software Foundation, Inc.\n"
-
-#: as.c:708
-#, 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 later.\n"
-"This program has absolutely no warranty.\n"
-msgstr ""
-"Este programa es software libre; se puede redistribuir bajo los términos de\n"
-"la Licencia Pública General de GNU versión 3 o posterior.\n"
-"Este programa no tiene ninguna garantía.\n"
-
-#: as.c:713
-#, c-format
-msgid ""
-"This assembler was configured for a target of `%s' and default,\n"
-"cpu type `%s'.\n"
-msgstr ""
-"Este ensamblador fue configurado para un objetivo de «%s» y por omisión,\n"
-"tipo «%s» de cpu.\n"
-
-#: as.c:717
-#, c-format
-msgid "This assembler was configured for a target of `%s'.\n"
-msgstr "Este ensamblador se configuró para un objetivo «%s».\n"
-
-#: as.c:725
-msgid "multiple emulation names specified"
-msgstr "se especificaron múltiples nombres de emulación"
-
-#: as.c:727
-msgid "emulations not handled in this configuration"
-msgstr "las emulaciones no se manejan en esta configuración"
-
-#: as.c:732
-#, c-format
-msgid "alias = %s\n"
-msgstr "alias = %s\n"
-
-#: as.c:733
-#, c-format
-msgid "canonical = %s\n"
-msgstr "canónico = %s\n"
-
-#: as.c:734
-#, c-format
-msgid "cpu-type = %s\n"
-msgstr "tipo-cpu = %s\n"
-
-#: as.c:736
-#, c-format
-msgid "format = %s\n"
-msgstr "formato = %s\n"
-
-#: as.c:739
-#, c-format
-msgid "bfd-target = %s\n"
-msgstr "objetivo-bfd = %s\n"
-
-#: as.c:750
-msgid "--compress-debug-sections=zstd: gas is not built with zstd support"
-msgstr "--compress-debug-sections=zstd: gas no está construido con soporte zstd"
-
-#: as.c:754
-#, c-format
-msgid "Invalid --compress-debug-sections option: `%s'"
-msgstr "Opción no valida de --compress-debug-sections: «%s»"
-
-#: as.c:757
-#, c-format
-msgid "--compress-debug-sections=%s is unsupported"
-msgstr "--compress-debug-sections=%s no está disponible"
-
-#: as.c:782
-msgid "bad defsym; format is --defsym name=value"
-msgstr "defsym incorrecto; el formato es --defsym nombre=valor"
-
-#: as.c:800
-msgid "no file name following -t option"
-msgstr "no hay un nombre de fichero a continuación de la opción -t"
-
-#: as.c:809
-#, c-format
-msgid "failed to read instruction table %s\n"
-msgstr "fallo al leer la table de instrucciones %s\n"
-
-#: as.c:831
-#, c-format
-msgid "unknown DWARF option %s\n"
-msgstr "Opción DWARF desconocida %s\n"
-
-#: as.c:833
-#, c-format
-msgid "unknown option `%s'"
-msgstr "opción desconocida «%s»"
-
-#: as.c:890
-#, c-format
-msgid "Invalid --gdwarf-cie-version `%s'"
-msgstr "Opción no válida de --gdwarf-cie-version «%s»"
-
-#: as.c:990
-#, c-format
-msgid "Invalid --scfi= option: `%s'; suggested option: experimental"
-msgstr "Opción no válida de --scfi= : «%s»; se sugiere esta opción: xperimental"
-
-#: as.c:1001
-#, c-format
-msgid "Invalid --size-check= option: `%s'"
-msgstr "Opción no válida de --size-check=: «%s»"
-
-#: as.c:1010
-#, c-format
-msgid "Invalid --elf-stt-common= option: `%s'"
-msgstr "Opción no válida de --elf-stt-common=: «%s»"
-
-#: as.c:1024
-#, c-format
-msgid "Invalid --generate-missing-build-notes option: `%s'"
-msgstr "Opción no valida de --generate-missing-build-notes: «%s»"
-
-#: as.c:1102
-#, c-format
-msgid "invalid listing option `%c'"
-msgstr "opción de listado no válida `%c'"
-
-#: as.c:1165
-#, c-format
-msgid "%s: total time in assembly: %ld.%06ld\n"
-msgstr "%s: tiempo total en ensamblado: %ld.%06ld\n"
-
-#: as.c:1263
-msgid "libbfd ABI mismatch"
-msgstr "ABI de libbfd no coincidente"
-
-#: as.c:1427
-#, c-format
-msgid "The input '%s' and output '%s' files are the same"
-msgstr "Los ficheros de entrada «%s» y de salida «%s» son el mismo"
-
-#: as.c:1480
-#, c-format
-msgid "%d warning"
-msgid_plural "%d warnings"
-msgstr[0] "%d aviso"
-msgstr[1] "%d avisos"
-
-#: as.c:1482
-#, c-format
-msgid "%d error"
-msgid_plural "%d errors"
-msgstr[0] "%d error"
-msgstr[1] "%d errores"
-
-#: as.c:1486
-#, c-format
-msgid "%s, treating warnings as errors"
-msgstr "%s , se tratan los avisos como errores"
-
-#: as.c:1497
-#, c-format
-msgid "%s, %s, generating bad object file\n"
-msgstr "%s, %s, generando fichero objeto incorrecto\n"
-
-#: as.h:134
-#, c-format
-msgid "Case value %ld unexpected at line %d of file \"%s\"\n"
-msgstr "Valor de case %ld inesperado en la línea %d del fichero «%s»\n"
-
-#.
-#. * We have a GROSS internal error.
-#. * This should never happen.
-#.
-#: atof-generic.c:456 config/tc-m68k.c:3485
-msgid "failed sanity check"
-msgstr "la inspección sanitaria ha fallado"
-
-#: cgen.c:106 config/tc-alpha.c:2097 config/tc-alpha.c:2121
-#: config/tc-arc.c:4075 config/tc-arc.c:4148 config/tc-d10v.c:550
-#: config/tc-d30v.c:534 config/tc-mn10200.c:1093 config/tc-mn10300.c:1753
-#: config/tc-ppc.c:3954 config/tc-s390.c:1824 config/tc-v850.c:2530
-#: config/tc-v850.c:2601 config/tc-v850.c:2648 config/tc-v850.c:2685
-#: config/tc-v850.c:2722 config/tc-v850.c:2986
-msgid "too many fixups"
-msgstr "demasiadas reparaciones"
-
-#: cgen.c:371 cgen.c:393 config/tc-d10v.c:461 config/tc-d30v.c:450
-#: config/tc-mn10200.c:1035 config/tc-mn10300.c:1678 config/tc-ppc.c:3483
-#: config/tc-v850.c:2639 config/tc-v850.c:2673 config/tc-v850.c:2713
-#: config/tc-v850.c:2959 config/tc-z80.c:785
-msgid "illegal operand"
-msgstr "operando ilegal"
-
-#: cgen.c:397 config/tc-avr.c:910 config/tc-d10v.c:463 config/tc-d30v.c:452
-#: config/tc-h8300.c:495 config/tc-mcore.c:662 config/tc-microblaze.c:585
-#: config/tc-mmix.c:485 config/tc-mn10200.c:1038 config/tc-mn10300.c:1681
-#: config/tc-msp430.c:417 config/tc-ppc.c:3485 config/tc-sh.c:988
-#: config/tc-v850.c:2643 config/tc-v850.c:2677 config/tc-v850.c:2717
-#: config/tc-v850.c:2962 config/tc-xgate.c:895 config/tc-z80.c:933
-#: config/tc-z8k.c:349
-msgid "missing operand"
-msgstr "falta operando"
-
-#: cgen.c:774
-msgid "a reloc on this operand implies an overflow"
-msgstr "la reubicación de este operando implica desbordamiento"
-
-#: cgen.c:797
-msgid "operand mask overflow"
-msgstr "desbordamiento de máscara de operando"
-
-#: cgen.c:860 config/tc-arm.c:2042 config/tc-arm.c:11126 config/tc-arm.c:11178
-#: config/tc-arm.c:11466 config/tc-arm.c:12364 config/tc-arm.c:13513
-#: config/tc-arm.c:13553 config/tc-arm.c:13926 config/tc-arm.c:13968
-#: config/tc-arm.c:21213 config/tc-arm.c:21273 config/tc-mips.c:9707
-#: config/tc-mips.c:11025 config/tc-mips.c:12322 config/tc-mips.c:13003
-#: config/tc-spu.c:980 config/tc-xtensa.c:13107
-msgid "expression too complex"
-msgstr "expresión demasiado compleja"
-
-#: cgen.c:961 config/tc-ppc.c:7491 config/tc-s390.c:2602 config/tc-v850.c:3492
-#: config/tc-xstormy16.c:541
-msgid "unresolved expression that must be resolved"
-msgstr "expresión sin resolver que se debe resolver"
-
-#: cgen.c:986 config/tc-bpf.c:884 config/tc-xstormy16.c:566
-#, c-format
-msgid "internal error: can't install fix for reloc type %d (`%s')"
-msgstr "error interno: no se puede instalar la reparación para el tipo reubicado %d («%s»)"
-
-#: cgen.c:1039 config/tc-bpf.c:368 config/tc-pru.c:786
-msgid "relocation is not supported"
-msgstr "no se admite la reubicación"
-
-#: codeview.c:435
-#, c-format
-msgid "could not open %s for reading"
-msgstr "no se ha podido abrir %s para lectura"
-
-#: codeview.c:440
-msgid "md5_stream failed"
-msgstr "md5_stream ha fallado"
-
-#: codeview.c:548
-msgid "value cannot be expressed as a .cv_scomp"
-msgstr "el valor no puede expresarse como un .cv_scomp"
-
-#: codeview.c:556
-msgid "value cannot be expressed as a .cv_ucomp"
-msgstr "el valor no puede expresarse como un .cv_ucomp"
-
-#: cond.c:84
-msgid "invalid identifier for \".ifdef\""
-msgstr "identificador inválido para \".ifdef\""
-
-#: cond.c:151
-msgid "non-constant expression in \".if\" statement"
-msgstr "expresión no constante en sentencia \".if\""
-
-#: cond.c:279
-msgid "bad format for ifc or ifnc"
-msgstr "formato incorrecto para ifc ó ifnc"
-
-#: cond.c:310
-msgid "\".elseif\" without matching \".if\""
-msgstr "\".elseif\" sin su correspondiente \".if\""
-
-#: cond.c:314
-msgid "\".elseif\" after \".else\""
-msgstr "\".elseif\" después de \".else\""
-
-#: cond.c:317 cond.c:423
-msgid "here is the previous \".else\""
-msgstr "aquí está el anterior \".else\""
-
-#: cond.c:320 cond.c:426
-msgid "here is the previous \".if\""
-msgstr "aquí está el anterior \".if\""
-
-#: cond.c:349
-msgid "non-constant expression in \".elseif\" statement"
-msgstr "expresión no constante en sentencia \".elseif\""
-
-#: cond.c:387
-msgid "\".endif\" without \".if\""
-msgstr "\".endif\" sin \".if\""
-
-#: cond.c:416
-msgid "\".else\" without matching \".if\""
-msgstr "\".else\" sin su correspondiente \".if\""
-
-#: cond.c:420
-msgid "duplicate \".else\""
-msgstr "\".else\" duplicado"
-
-#: cond.c:471
-msgid ".ifeqs syntax error"
-msgstr "error de sintaxis en .ifeqs"
-
-#: cond.c:559
-msgid "end of macro inside conditional"
-msgstr "fin de macro dentro de un condicional"
-
-#: cond.c:561
-msgid "end of file inside conditional"
-msgstr "final de fichero dentro de un condicional"
-
-#: cond.c:565
-msgid "here is the start of the unterminated conditional"
-msgstr "aquí está el comienzo del condicional sin terminar"
-
-#: cond.c:569
-msgid "here is the \"else\" of the unterminated conditional"
-msgstr "aquí está el \"else\" del condicional sin terminar"
-
-#: config/atof-ieee.c:148
-msgid "cannot create floating-point number"
-msgstr "no se puede crear el número de coma flotante"
-
-#: config/atof-ieee.c:335
-msgid "NaNs are not supported by this target"
-msgstr "No se admiten NaNs en este objetivo"
-
-#: config/atof-ieee.c:354
-msgid "NaN flavors are not supported by this target"
-msgstr "No se admiten variantes de NaNs en este objetivo"
-
-#: config/atof-ieee.c:392
-msgid "Infinities are not supported by this target"
-msgstr "No se admiten infinitos en este objetivo"
-
-#: config/atof-ieee.c:825 config/atof-vax.c:449 config/tc-arm.c:1271
-#: config/tc-ia64.c:11573 config/tc-tic30.c:1241 config/tc-tic4x.c:2569
-msgid "Unrecognized or unsupported floating point constant"
-msgstr "No reconoce o no admite constante de coma flotante"
-
-#: config/obj-aout.c:81
-#, c-format
-msgid "Attempt to put a common symbol into set %s"
-msgstr "Intento de poner un símbolo común en el conjunto %s"
-
-#: config/obj-aout.c:85
-#, c-format
-msgid "Attempt to put an undefined symbol into set %s"
-msgstr "Intento de poner un símbolo indefinido en el conjunto %s"
-
-#: config/obj-aout.c:112 config/obj-coff.c:1378
-#, c-format
-msgid "Symbol `%s' can not be both weak and common"
-msgstr "El símbolo «%s» no puede ser débil y común al mismo tiempo"
-
-#: config/obj-coff.c:206 config/obj-coff.c:1693 config/tc-tic54x.c:4002
-#: read.c:3047
-#, c-format
-msgid "error setting flags for \"%s\": %s"
-msgstr "error al establecer las opciones para «%s»: %s"
-
-#. Zero is used as an end marker in the file.
-#: config/obj-coff.c:424
-msgid "Line numbers must be positive integers\n"
-msgstr "Los números de línea deben ser enteros positivos\n"
-
-#: config/obj-coff.c:456
-msgid ".ln pseudo-op inside .def/.endef: ignored."
-msgstr "pseudo-operador .ln dentro de .def/.endef: se descarta."
-
-#: config/obj-coff.c:497 ecoff.c:3232
-msgid ".loc outside of .text"
-msgstr ".loc fuera de .text"
-
-#: config/obj-coff.c:504
-msgid ".loc pseudo-op inside .def/.endef: ignored."
-msgstr "pseudo-operador .loc dentro de .def/.endef: se descarta."
-
-#: config/obj-coff.c:584
-msgid ".def pseudo-op used inside of .def/.endef: ignored."
-msgstr "se usó el pseudo-operador .def dentro de .def/.endef: se descarta."
-
-#: config/obj-coff.c:617
-msgid ".endef pseudo-op used outside of .def/.endef: ignored."
-msgstr "se usó el pseudo-operador .endef fuera de .def/.endef: se descarta."
-
-#: config/obj-coff.c:656
-#, c-format
-msgid "`%s' symbol without preceding function"
-msgstr "símbolo «%s» sin función que lo preceda"
-
-#: config/obj-coff.c:743
-#, c-format
-msgid "unexpected storage class %d"
-msgstr "clase de almacenamiento %d inesperada"
-
-#: config/obj-coff.c:850
-msgid ".dim pseudo-op used outside of .def/.endef: ignored."
-msgstr "se usó el pseudo-operador .dim fuera de .def/.endef: se descarta."
-
-#: config/obj-coff.c:870
-msgid "badly formed .dim directive ignored"
-msgstr "se descarta la directiva .dim formada incorrectamente"
-
-#: config/obj-coff.c:919
-msgid ".size pseudo-op used outside of .def/.endef: ignored."
-msgstr "pseudo-operador .size utilizado fuera de .def/.endef: descartado."
-
-#: config/obj-coff.c:934
-msgid ".scl pseudo-op used outside of .def/.endef: ignored."
-msgstr "pseudo-operador .scl utilizado fuera de .def/.endef: descartado."
-
-#: config/obj-coff.c:951
-msgid ".tag pseudo-op used outside of .def/.endef: ignored."
-msgstr "pseudo-operador .tag utilizado fuera de .def/.endef; descartado."
-
-#: config/obj-coff.c:968
-#, c-format
-msgid "tag not found for .tag %s"
-msgstr "no se encontró etiqueta para .tag %s"
-
-#: config/obj-coff.c:981
-msgid ".type pseudo-op used outside of .def/.endef: ignored."
-msgstr "pseudo-operador .type utilizado fuera de .def/.endef; descartado."
-
-#: config/obj-coff.c:1000
-msgid ".val pseudo-op used outside of .def/.endef: ignored."
-msgstr "pseudo-operador .val utilizado fuera de .def/.endef; descartado."
-
-#: config/obj-coff.c:1147
-msgid "badly formed .weak directive ignored"
-msgstr "se descarta la directiva .weak formada incorrectamente"
-
-#: config/obj-coff.c:1334
-msgid "mismatched .eb"
-msgstr ".eb sin coincidencia"
-
-#: config/obj-coff.c:1357
-#, c-format
-msgid "C_EFCN symbol for %s out of scope"
-msgstr "símbolo C_EFCN para %s fuera de ámbito"
-
-#: config/obj-coff.c:1412
-#, c-format
-msgid "Warning: internal error: forgetting to set endndx of %s"
-msgstr "Aviso: error interno: se olvida establecer el endndx de %s"
-
-#. STYP_INFO
-#. STYP_LIB
-#. STYP_OVER
-#: config/obj-coff.c:1655
-#, c-format
-msgid "unsupported section attribute '%c'"
-msgstr "no se admite el atributo de sección '%c'"
-
-#: config/obj-coff.c:1659
-#, c-format
-msgid "unknown section attribute '%c'"
-msgstr "atributo de sección desconocido '%c'"
-
-#: config/obj-coff.c:1705 config/obj-macho.c:269
-#, c-format
-msgid "Ignoring changed section attributes for %s"
-msgstr "Se descartan los atributos sección cambiados para %s"
-
-#: config/obj-coff.c:1849
-#, c-format
-msgid "0x%lx: \"%s\" type = %ld, class = %d, segment = %d\n"
-msgstr "0x%lx: «%s» tipo = %ld, clase = %d, segmento = %d\n"
-
-#: config/obj-ecoff.c:125
-msgid "Can't set GP value"
-msgstr "No se puede establecer el valor GP"
-
-#: config/obj-ecoff.c:132
-msgid "Can't set register masks"
-msgstr "No se pueden establecer las máscaras de registro"
-
-#: config/obj-elf.c:272 config/tc-sparc.c:4383 config/tc-v850.c:508
-#, c-format
-msgid "bad .common segment %s"
-msgstr "segmento .common %s incorrecto"
-
-#: config/obj-elf.c:348 config/tc-aarch64.c:2278 config/tc-kvx.c:2235
-msgid "Missing symbol name in directive"
-msgstr "Falta el nombre de símbolo en la directiva"
-
-#: config/obj-elf.c:678
-#, c-format
-msgid "setting incorrect section type for %s"
-msgstr "se establece un tipo de sección incorrecto para %s"
-
-#: config/obj-elf.c:683
-#, c-format
-msgid "ignoring incorrect section type for %s"
-msgstr "se descarta el tipo de sección incorrecto para %s"
-
-#: config/obj-elf.c:742
-#, c-format
-msgid "setting incorrect section attributes for %s"
-msgstr "se establecen atributos de sección incorrectos para %s"
-
-#. This is a special section with known type. User
-#. assembly might get the section type wrong; Even high
-#. profile projects like glibc have done so in the past.
-#. So don't error in this case.
-#: config/obj-elf.c:836
-#, c-format
-msgid "ignoring changed section type for %s"
-msgstr "se descarta el tipo de sección cambiado para %s"
-
-#. Do error when assembly isn't self-consistent.
-#: config/obj-elf.c:839
-#, c-format
-msgid "changed section type for %s"
-msgstr "tipo de sección cambiado para %s"
-
-#: config/obj-elf.c:854
-#, c-format
-msgid "ignoring changed section attributes for %s"
-msgstr "se descartan los atributos de sección cambiados para %s"
-
-#: config/obj-elf.c:856
-#, c-format
-msgid "changed section attributes for %s"
-msgstr "atributos de sección cambiados para %s"
-
-#: config/obj-elf.c:865
-#, c-format
-msgid "changed section entity size for %s"
-msgstr "tamaño de entidad de sección cambiado para %s"
-
-#: config/obj-elf.c:947
-msgid "unrecognized .section attribute: want a,e,o,w,x,M,S,G,T or number"
-msgstr "atributo de .section no reconocido: se desea a,e,o,w,x,M,S,G,T o número"
-
-#: config/obj-elf.c:1033
-msgid "extraneous characters at end of numeric section type"
-msgstr "caracteres extraños al final de tipo de sección numérico"
-
-#: config/obj-elf.c:1039 read.c:3031
-msgid "unrecognized section type"
-msgstr "tipo de sección no reconocido"
-
-#: config/obj-elf.c:1064
-msgid "unrecognized section attribute"
-msgstr "atributo de sección no reconocido"
-
-#: config/obj-elf.c:1096 config/tc-alpha.c:4208
-msgid "missing name"
-msgstr "falta el nombre"
-
-#: config/obj-elf.c:1166
-msgid "group name not parseable"
-msgstr "nombre de grupo no analizable"
-
-#: config/obj-elf.c:1173
-#, c-format
-msgid "section %s already has a group (%s)"
-msgstr "la sección %s ya tiene un grupo (%s)"
-
-#: config/obj-elf.c:1226
-#, c-format
-msgid "section name '%s' already defined as another symbol"
-msgstr "el nombre de sección «%s» ya está definido como otro símbolo"
-
-#: config/obj-elf.c:1331
-msgid "invalid merge / string entity size"
-msgstr "mezcla / tamaño de entidad de cadena no válido(s)"
-
-#: config/obj-elf.c:1345
-msgid "entity size for SHF_MERGE / SHF_STRINGS not specified"
-msgstr "no se especificó el tamaño de entidad para SHF_MERGE / SHF_STRINGS"
-
-#: config/obj-elf.c:1350
-msgid "bogus SHF_MERGE / SHF_STRINGS for SHT_NOBITS section"
-msgstr "SHF_MERGE / SHF_STRINGS falso para sección SHT_NOBITS"
-
-#: config/obj-elf.c:1391
-msgid "? section flag ignored with G present"
-msgstr "se descarta la opción de sección ? con G presente"
-
-#: config/obj-elf.c:1428
-msgid "group name for SHF_GROUP not specified"
-msgstr "no se especificó el nombre de grupo para SHF_GROUP"
-
-#: config/obj-elf.c:1454
-#, c-format
-msgid "unsupported mbind section info: %s"
-msgstr "información de sección mbind no admitida: %s"
-
-#: config/obj-elf.c:1507
-#, c-format
-msgid "unsupported section id: %s"
-msgstr "id de sección: %s"
-
-#: config/obj-elf.c:1533
-msgid "character following name is not '#'"
-msgstr "el carácter que sigue al nombre no es '#'"
-
-#: config/obj-elf.c:1561
-#, c-format
-msgid "SHF_ALLOC isn't set for GNU_MBIND section: %s"
-msgstr "SHF_ALLOC no está establecido para sección GNU_MBIND: %s"
-
-#: config/obj-elf.c:1568
-#, c-format
-msgid "%s section is supported only by GNU and FreeBSD targets"
-msgstr "la sección %s solo se admite en objetivos GNU y FreeBSD"
-
-#: config/obj-elf.c:1706
-msgid ".previous without corresponding .section; ignored"
-msgstr ".previous sin .section correspondiente; se descarta"
-
-#: config/obj-elf.c:1732
-msgid ".popsection without corresponding .pushsection; ignored"
-msgstr ".popsection sin .pushsection correspondiente; se descarta"
-
-#: config/obj-elf.c:1776 config/obj-elf.c:1870
-#, c-format
-msgid "missing version name in `%s' for symbol `%s'"
-msgstr "falta el nombre de versión en «%s» para el símbolo «%s»"
-
-#: config/obj-elf.c:1795
-#, c-format
-msgid "only one version name with `@@@' is allowed for symbol `%s'"
-msgstr "solo se permite un nombre de versión con «@@@» para el símbolo «%s»"
-
-#: config/obj-elf.c:1803
-#, c-format
-msgid "invalid version name '%s' for symbol `%s'"
-msgstr "nombre de versión «%s» no válido para el símbolo «%s»"
-
-#: config/obj-elf.c:1844
-msgid "expected comma after name in .symver"
-msgstr "se esperaba una coma tras el nombre en .symver"
-
-#: config/obj-elf.c:1861 config/obj-elf.c:2805
-#, c-format
-msgid "`%s' can't be versioned to common symbol '%s'"
-msgstr "«%s» no puede ser versionado al símbolo común «%s»"
-
-#: config/obj-elf.c:1938
-#, c-format
-msgid "expected `%s' to have already been set for .vtable_inherit"
-msgstr "se esperaba que «%s» ya estuviera definido para .vtable_inherit"
-
-#: config/obj-elf.c:1948
-msgid "expected comma after name in .vtable_inherit"
-msgstr "se esperaba una coma tras el nombre en .vtable_inherit"
-
-#: config/obj-elf.c:2009
-msgid "expected comma after name in .vtable_entry"
-msgstr "se esperaba una coma tras el nombre en .vtable_entry"
-
-#: config/obj-elf.c:2148
-#, c-format
-msgid "Attribute name not recognised: %s"
-msgstr "Nombre de atributo no reconocido: %s"
-
-#: config/obj-elf.c:2165
-msgid "expected numeric constant"
-msgstr "se esperaba una constante numérica"
-
-#: config/obj-elf.c:2174 config/tc-arm.c:6970
-msgid "expected comma"
-msgstr "se esperaba una coma"
-
-#: config/obj-elf.c:2205 config/tc-arc.c:4946 config/tc-arc.c:4957
-#: config/tc-arc.c:5029 config/tc-arc.c:5080 config/tc-arm.c:32197
-#: config/tc-arm.c:32208 config/tc-csky.c:1697 config/tc-csky.c:1709
-#: config/tc-csky.c:1880 config/tc-mips.c:20645 config/tc-msp430.c:5148
-#: config/tc-riscv.c:5523 config/tc-riscv.c:5566 config/tc-sparc.c:1134
-#: config/tc-tic6x.c:4384
-#, c-format
-msgid "error adding attribute: %s"
-msgstr "error al añadir atributo: %s"
-
-#: config/obj-elf.c:2211
-msgid "bad string constant"
-msgstr "constante de cadena incorrecta"
-
-#: config/obj-elf.c:2215
-msgid "expected <tag> , <value>"
-msgstr "se esperaba <etiqueta> , <valor>"
-
-#: config/obj-elf.c:2344
-msgid "expected quoted string"
-msgstr "se esperaba una cadena entre comillas"
-
-#: config/obj-elf.c:2364
-#, c-format
-msgid "expected comma after name `%s' in .size directive"
-msgstr "se esperaba una coma tras el nombre «%s» en la directiva .size"
-
-#: config/obj-elf.c:2373
-msgid "missing expression in .size directive"
-msgstr "falta expresión en la directiva .size"
-
-#: config/obj-elf.c:2500
-#, c-format
-msgid "symbol '%s' is already defined"
-msgstr "el símbolo «%s» ya está definido"
-
-#: config/obj-elf.c:2520
-#, c-format
-msgid "symbol type \"%s\" is supported only by GNU and FreeBSD targets"
-msgstr "el tipo de símbolo «%s» solo se admite en objetivos GNU y FreeBSD"
-
-#: config/obj-elf.c:2524
-#, c-format
-msgid "symbol type \"%s\" is not supported by MIPS targets"
-msgstr "el tipo de símbolo «%s» no está disponible en objetivos MIPS"
-
-#: config/obj-elf.c:2536
-#, c-format
-msgid "symbol type \"%s\" is supported only by GNU targets"
-msgstr "el tipo de símbolo «%s» solo se admite en objetivos GNU"
-
-#: config/obj-elf.c:2546 config/tc-kvx.c:2279
-#, c-format
-msgid "unrecognized symbol type \"%s\""
-msgstr "tipo de símbolo no reconocido «%s»"
-
-#: config/obj-elf.c:2567
-#, c-format
-msgid "cannot change type of common symbol '%s'"
-msgstr "no puede cambiersa el tipo del símbolo común «%s»"
-
-#: config/obj-elf.c:2579
-#, c-format
-msgid "symbol '%s' already has its type set"
-msgstr "el símbolo «%s» ya tiene su tipo establecido"
-
-#: config/obj-elf.c:2681
-#, c-format
-msgid "undefined linked-to symbol `%s' on section `%s'"
-msgstr "símbolo enlazado-a `%s' en la sección `%s'"
-
-#: config/obj-elf.c:2778 config/obj-elf.c:2781
-#, c-format
-msgid ".size expression for %s does not evaluate to a constant"
-msgstr "la expresión .size para %s no evalúa a una constante"
-
-#: config/obj-elf.c:2870
-#, c-format
-msgid "symbol '%s' with multiple versions cannot be used in relocation"
-msgstr "el símbolo «%s» con varias versiones no puede utilizarse en una reubicación"
-
-#: config/obj-elf.c:2888 ecoff.c:3576
-#, c-format
-msgid "symbol `%s' can not be both weak and common"
-msgstr "el símbolo «%s» no puede ser débil y común al mismo tiempo"
-
-#: config/obj-elf.c:2932
-#, c-format
-msgid "assuming all members of group `%s' are COMDAT"
-msgstr "se asume que todos los miembros del grupo «%s» son COMDAT"
-
-#: config/obj-elf.c:2944
-#, c-format
-msgid "can't create group: %s"
-msgstr "no se puede crear el grupo: %s"
-
-#: config/obj-elf.c:3021
-#, c-format
-msgid "invalid attempt to declare external version name as default in symbol `%s'"
-msgstr "intento no válido de declarar un nombre de versión externo como predeterminado en el símbolo «%s»"
-
-#: config/obj-elf.c:3031
-#, c-format
-msgid "multiple versions [`%s'|`%s'] for symbol `%s'"
-msgstr "varias versiones [«%s»|«%s»] para el símbolo «%s»"
-
-#: config/obj-elf.c:3120
-#, c-format
-msgid "failed to set up debugging information: %s"
-msgstr "falló al establecer la información de depuración: %s"
-
-#: config/obj-elf.c:3140
-#, c-format
-msgid "can't start writing .mdebug section: %s"
-msgstr "no se puede iniciar la escritura de la sección .mdebug: %s"
-
-#: config/obj-elf.c:3148
-#, c-format
-msgid "could not write .mdebug section: %s"
-msgstr "no se puede escribir la sección .mdebug: %s"
-
-#: config/obj-evax.c:122
-#, c-format
-msgid "no entry symbol for global function '%s'"
-msgstr "no hay símbolo de entrada para la función global «%s»"
-
-#. make a temp string.
-#: config/obj-macho.c:119
-#, c-format
-msgid "the %s name '%s' is too long (maximum 16 characters)"
-msgstr "el nombre %s «%s» es demasiado largo (máximo 16 caracteres)"
-
-#: config/obj-macho.c:130
-#, c-format
-msgid "expected a %s name followed by a `,'"
-msgstr "se esperaba un nombre de %s seguido por una `,'"
-
-#: config/obj-macho.c:144
-msgid "segment"
-msgstr "segmento"
-
-#: config/obj-macho.c:153
-msgid "section"
-msgstr "sección"
-
-#: config/obj-macho.c:195
-#, c-format
-msgid "cannot override zerofill section type for `%s,%s'"
-msgstr "no se puede invalidar tipo de sección rellenado a cero para `%s,%s'"
-
-#: config/obj-macho.c:249
-#, c-format
-msgid "failed to set flags for \"%s\": %s"
-msgstr "no se han podido establecer las opciones para «%s»: %s"
-
-#: config/obj-macho.c:342
-#, c-format
-msgid "unknown or invalid section type '%s'"
-msgstr "tipo de sección inválido o desconocido '%s'"
-
-#: config/obj-macho.c:381
-#, c-format
-msgid "unknown or invalid section attribute '%s'"
-msgstr "atributo de sección desconocido o no válido «%s»"
-
-#: config/obj-macho.c:402
-msgid "unexpected section size information"
-msgstr "información inesperada de tamaño de sección"
-
-#: config/obj-macho.c:414
-msgid "missing sizeof_stub expression"
-msgstr "falta expresión sizeof_stub"
-
-#: config/obj-macho.c:478 config/tc-ia64.c:1080 config/tc-ia64.c:11734
-#: config/tc-score.c:6073 expr.c:1260 read.c:1784
-msgid "expected symbol name"
-msgstr "se esperaba un nombre de símbolo"
-
-#: config/obj-macho.c:491 read.c:558
-msgid "bad or irreducible absolute expression"
-msgstr "expresión absoluta incorrecta o irreducible"
-
-#: config/obj-macho.c:497 config/tc-score.c:6090 read.c:1823
-msgid "missing size expression"
-msgstr "falta expresión de tamaño"
-
-#: config/obj-macho.c:506 config/tc-ia64.c:1115 read.c:1829
-#, c-format
-msgid "size (%ld) out of range, ignored"
-msgstr "tamaño (%ld) fuera de rango, se descarta"
-
-#: config/obj-macho.c:516 config/tc-score.c:6216 dwarf2dbg.c:1431 ecoff.c:3345
-#: read.c:1841 read.c:1944 read.c:2718 read.c:3311 read.c:3906 symbols.c:579
-#: symbols.c:674
-#, c-format
-msgid "symbol `%s' is already defined"
-msgstr "el símbolo «%s» ya está definido"
-
-#: config/obj-macho.c:526 read.c:1856
-#, c-format
-msgid "size of \"%s\" is already %ld; not changing to %ld"
-msgstr "El tamaño de «%s» ya es %ld; no se va a cambiar a %ld"
-
-#: config/obj-macho.c:537
-msgid "align value not recognized, using size"
-msgstr "valor de alineamiento no reconocido; se usará el tamaño"
-
-#: config/obj-macho.c:542 config/obj-macho.c:905
-#, c-format
-msgid "Alignment (%lu) too large: 15 assumed."
-msgstr "Alineación (%lu) demasiado grande: se asume 15."
-
-#: config/obj-macho.c:608
-#, c-format
-msgid "BFD is out of sync with GAS, unhandled well-known section type `%s'"
-msgstr "BFD está fuera de sincronización con GAS, tipo de sección conocido no manejado `%s'"
-
-#: config/obj-macho.c:810
-#, c-format
-msgid "%s is not used for the selected target"
-msgstr "%s no utilizado para el objetivo seleccionado"
-
-#: config/obj-macho.c:875
-msgid "internal error: base section index out of range"
-msgstr "error interno: índice de sección base fuera de rango"
-
-#: config/obj-macho.c:961
-#, c-format
-msgid "internal error: bad file property ID %d"
-msgstr "error interno: ID %d de propiedad de fichero incorrecto"
-
-#: config/obj-macho.c:969
-msgid "failed to set subsections by symbols"
-msgstr "no se han podido establecer subsecciones por símbolos"
-
-#: config/obj-macho.c:1032
-#, c-format
-msgid "'%s' previously declared as '%s'."
-msgstr "«%s» previamente declarado como «%s»."
-
-#: config/obj-macho.c:1084 config/obj-macho.c:1404 config/obj-macho.c:1488
-#, c-format
-msgid "'%s' can't be a weak_definition (currently only supported in sections of type coalesced)"
-msgstr "«%s» no puede ser una weak_definition (actualmente solo disponible en secciones de tipo fusionado)"
-
-#: config/obj-macho.c:1169
-msgid "use of .indirect_symbols requires `-dynamic'"
-msgstr "el empleo de .indirect_symbols requiere `-dinamic'"
-
-#: config/obj-macho.c:1186
-#, c-format
-msgid "attempt to add an indirect_symbol to a stub or reference section with a zero-sized element at %s"
-msgstr "intento de añadir un indirect_symbol a un «stub» o sección de referencia con un elemento de tamaño cero en %s"
-
-#: config/obj-macho.c:1216
-msgid "an .indirect_symbol must be in a symbol pointer or stub section."
-msgstr "los .indirect_symbol tienen que estar en punteros de símbolo o secciones «stub»."
-
-#: config/obj-macho.c:1485
-#, c-format
-msgid "'%s' can't be a weak_definition (since it is undefined)"
-msgstr "«%s» no puede ser una weak_definition (pues está indefinido)"
-
-#: config/obj-macho.c:1491
-#, c-format
-msgid "Non-global symbol: '%s' can't be a weak_definition."
-msgstr "Símbolo no global: «%s» no puede ser una weak_definition"
-
-#: config/obj-macho.c:1497
-#, c-format
-msgid "internal error: [%s] unexpected code [%lx] in frob symbol"
-msgstr "error interno: [%s] código inesperado [%lx] en símbolo «frob»"
-
-#: config/obj-macho.c:1538
-#, c-format
-msgid "unrecognized stab type '%c'"
-msgstr "tipo de «stab» no reconocido '%c'"
-
-#: config/obj-macho.c:1589
-#, c-format
-msgid "`%s' can't be undefined in `%s' - `%s' {%s section}"
-msgstr "«%s» no puede estar indefinido en «%s» - «%s» {sección %s}"
-
-#: config/obj-macho.c:1597
-#, c-format
-msgid "`%s' can't be undefined in `%s' {%s section} - `%s'"
-msgstr "«%s» no puede estar indefinido en «%s» {sección %s} - «%s»"
-
-#: config/obj-macho.c:1604
-#, c-format
-msgid "`%s' and `%s' can't be undefined in `%s' - `%s'"
-msgstr "«%s» y «%s» no pueden estar indefinidos en «%s» - «%s»"
-
-#: config/obj-macho.c:1806
-#, c-format
-msgid "the number of .indirect_symbols defined in section %s does not match the number expected (%d defined, %d expected)"
-msgstr "el número de .indirect_symbols definidos en la sección %s no coincide con el número esperado (%d definido, %d esperado)"
-
-#: config/obj-macho.c:1826
-#, c-format
-msgid "internal error: failed to allocate %d indirectsymbol pointers"
-msgstr "error interno: no se ha podido asignar %d punteros de símbolo indirectos"
-
-#: config/obj-macho.c:1840 config/obj-macho.c:1863
-msgid "internal error: more indirect mach-o symbols than expected"
-msgstr "error interno: más símbolos «mach-o» indirectos que los esperados"
-
-#: config/obj-som.c:56
-msgid "Only one .compiler pseudo-op per file!"
-msgstr "¡Sólo un pseudo-operador .compiler por fichero!"
-
-#: config/obj-som.c:73 config/obj-som.c:144 config/obj-som.c:186
-msgid "Expected quoted string"
-msgstr "Se esperaba una cadena entrecomillada"
-
-#: config/obj-som.c:86
-msgid ".compiler directive missing language and version"
-msgstr "faltan el lenguaje y la versión en la directiva .compiler"
-
-#: config/obj-som.c:96
-msgid ".compiler directive missing version"
-msgstr "falta la versión en la directiva .compiler"
-
-#: config/obj-som.c:112
-#, c-format
-msgid "FATAL: Attaching compiler header %s"
-msgstr "FATAL: Adjuntando el encabezado de compilador %s"
-
-#: config/obj-som.c:127
-msgid "Only one .version pseudo-op per file!"
-msgstr "¡Sólo un pseudo-operador .version por fichero!"
-
-#: config/obj-som.c:151
-#, c-format
-msgid "attaching version header %s: %s"
-msgstr "adjuntando el encabezado de versión %s: %s"
-
-#: config/obj-som.c:169
-msgid "Only one .copyright pseudo-op per file!"
-msgstr "¡Sólo un pseudo-operador .copyright por fichero!"
-
-#: config/obj-som.c:193
-#, c-format
-msgid "attaching copyright header %s: %s"
-msgstr "adjuntando encabezado de copyright %s: %s"
-
-#: config/tc-aarch64.c:427
-#, c-format
-msgid "expected an unsuffixed ZA tile at operand %d"
-msgstr "se esperaba una matriz ZA sin sufijo en el operando %d"
-
-#: config/tc-aarch64.c:431
-#, c-format
-msgid "missing horizontal or vertical suffix at operand %d"
-msgstr "falta el sufijo horizontal o vertical en el operando %d"
-
-#: config/tc-aarch64.c:436
-#, c-format
-msgid "expected 'za' rather than a ZA tile at operand %d"
-msgstr "se esperaba 'za' en lugar de una matriz ZA en el operando %d"
-
-#: config/tc-aarch64.c:440
-#, c-format
-msgid "expected a predicate-as-counter rather than predicate-as-mask register at operand %d"
-msgstr "se esperaba un registro de predicado-como-contador en vez de un predicado-como-máscara en el operando %d"
-
-#: config/tc-aarch64.c:445
-#, c-format
-msgid "expected a predicate-as-mask rather than predicate-as-counter register at operand %d"
-msgstr "se esperaba un registro de predicado-como-máscara en vez de un predicado-como-contador en el operando %d"
-
-#: config/tc-aarch64.c:450
-#, c-format
-msgid "expected a 64-bit integer register at operand %d"
-msgstr "se esperaba un registro entero de 64 bits para el operando %d"
-
-#: config/tc-aarch64.c:452
-#, c-format
-msgid "expected an integer or zero register at operand %d"
-msgstr "se esperaba un registro entero o cero para el operando %d"
-
-#: config/tc-aarch64.c:454
-#, c-format
-msgid "expected an integer or stack pointer register at operand %d"
-msgstr "se esperaba un registro entero o de puntero a pila para el operando %d"
-
-#: config/tc-aarch64.c:458
-#, c-format
-msgid "expected a scalar SIMD or floating-point register at operand %d"
-msgstr "se esperaba un registro de escalar SIMD o de coma flotante para el operando %d"
-
-#: config/tc-aarch64.c:461
-#, c-format
-msgid "expected an Advanced SIMD vector register at operand %d"
-msgstr "se esperaba un registro vectorial SIMD avanzado para el operando %d"
-
-#: config/tc-aarch64.c:463
-#, c-format
-msgid "expected an SVE vector register at operand %d"
-msgstr "se esperaba un registro vectorial SVE para el operando %d"
-
-#. Use this error for "predicate-as-mask only" and "either kind of
-#. predicate". We report a more specific error if P is used where
-#. PN is expected, and vice versa, so the issue at this point is
-#. "predicate-like" vs. "not predicate-like".
-#: config/tc-aarch64.c:470
-#, c-format
-msgid "expected an SVE predicate register at operand %d"
-msgstr "se esperaba un registro de predicado SVE para el operando %d"
-
-#: config/tc-aarch64.c:472
-#, c-format
-msgid "expected an SVE predicate-as-counter register at operand %d"
-msgstr "se esperaba un registro de predicado-como-contador SVE para el operando %d"
-
-#: config/tc-aarch64.c:474
-#, c-format
-msgid "expected a vector register at operand %d"
-msgstr "se esperaba un registro vectorial para el operando %d"
-
-#: config/tc-aarch64.c:476
-#, c-format
-msgid "expected an SVE vector or predicate register at operand %d"
-msgstr "se esperaba un registro vectorial SVE o de predicado para el operando %d"
-
-#: config/tc-aarch64.c:478
-#, c-format
-msgid "expected a vector or predicate register at operand %d"
-msgstr "se esperaba un registro vectorial o de predicado para el operando %d"
-
-#: config/tc-aarch64.c:482
-#, c-format
-msgid "expected a ZA array vector at operand %d"
-msgstr "se esperaba un registro de matriz ZA para el operando %d"
-
-#: config/tc-aarch64.c:484
-#, c-format
-msgid "expected ZT0 or a ZA mask at operand %d"
-msgstr "se esperaba una mścara ZT0 o ZA para el operando %d"
-
-#: config/tc-aarch64.c:486
-#, c-format
-msgid "expected a ZA tile at operand %d"
-msgstr "se esperaba una matriz ZA para el operando %d"
-
-#: config/tc-aarch64.c:488
-#, c-format
-msgid "expected a ZA tile slice at operand %d"
-msgstr "se esperaba una rodaja de registro de matriz ZA para el operando %d"
-
-#: config/tc-aarch64.c:492
-#, c-format
-msgid "expected an integer register or Advanced SIMD vector register at operand %d"
-msgstr "se esperaba un registro entero o un registro vectorial SIMD avanzado para el operando %d"
-
-#: config/tc-aarch64.c:495
-#, c-format
-msgid "expected an integer register or SVE vector register at operand %d"
-msgstr "se esperaba un registro entero o un registro vectorial SVE para el operando %d"
-
-#: config/tc-aarch64.c:498
-#, c-format
-msgid "expected an integer or vector register at operand %d"
-msgstr "se esperaba un registro entero o un registro vectorial para el operando %d"
-
-#: config/tc-aarch64.c:500
-#, c-format
-msgid "expected an integer or predicate register at operand %d"
-msgstr "se esperaba un registro entero o un registro de predicado para el operando %d"
-
-#: config/tc-aarch64.c:502
-#, c-format
-msgid "expected an integer, vector or predicate register at operand %d"
-msgstr "se esperaba un registro entero de vector o de predicado para el operando %d"
-
-#: config/tc-aarch64.c:507
-#, c-format
-msgid "expected an SVE vector register or ZA tile slice at operand %d"
-msgstr "se esperaba un registro vectorial SVE o una rodaja de matriz ZA para el operando %d"
-
-#: config/tc-aarch64.c:715 config/tc-aarch64.c:717 config/tc-arm.c:1188
-#: config/tc-score.c:6435 expr.c:1423 read.c:2700
-msgid "bad expression"
-msgstr "expresión incorrecta"
-
-#: config/tc-aarch64.c:728 config/tc-sparc.c:3380
-msgid "bad segment"
-msgstr "segmento incorrecto"
-
-#: config/tc-aarch64.c:876
-msgid "bad vector arrangement type"
-msgstr "tipo de disposición de vector incorrecto"
-
-#: config/tc-aarch64.c:1048
-#, c-format
-msgid "bad size %d in vector width specifier"
-msgstr "tamaño incorrecto %d en el especificador de anchura del vector"
-
-#: config/tc-aarch64.c:1081
-#, c-format
-msgid "unexpected character `%c' in element size"
-msgstr "carácter inesperado `%c' en el tamaño del elemento"
-
-#: config/tc-aarch64.c:1083
-msgid "missing element size"
-msgstr "falta el tamaño del elemento"
-
-#: config/tc-aarch64.c:1093
-#, c-format
-msgid "invalid element size %d and vector size combination %c"
-msgstr "combinación no válida del tamaño del elemento %d y del tamaño del vector %c"
-
-#: config/tc-aarch64.c:1129
-#, c-format
-msgid "unexpected character `%c' in predication type"
-msgstr "carácter inesperado `%c' en tipo de predicación"
-
-#: config/tc-aarch64.c:1132
-msgid "missing predication type"
-msgstr "falta el tipo de predicación"
-
-#: config/tc-aarch64.c:1176 config/tc-aarch64.c:2324 config/tc-aarch64.c:2585
-#: config/tc-arm.c:1765 config/tc-arm.c:3972 config/tc-arm.c:5205
-#: config/tc-arm.c:7251
-msgid "constant expression required"
-msgstr "se requiere una expresión constante"
-
-#: config/tc-aarch64.c:1230
-msgid "syntax error in register list"
-msgstr "error de sintaxis en la lista de registros"
-
-#: config/tc-aarch64.c:1260
-msgid "ZA tile number out of range"
-msgstr "número de matriz ZA fuera de rango"
-
-#: config/tc-aarch64.c:1304
-msgid "this type of register can't be indexed"
-msgstr "este tipo de registro no se puede indexar"
-
-#: config/tc-aarch64.c:1310
-msgid "index not allowed inside register list"
-msgstr "índice no permitido dentro del listado de registros"
-
-#. Indexed vector register expected.
-#: config/tc-aarch64.c:1325
-msgid "indexed vector register expected"
-msgstr "se esperaba un registro vectorial indexado"
-
-#: config/tc-aarch64.c:1332
-msgid "invalid use of vector register"
-msgstr "utilización no válida de registro vectorial"
-
-#: config/tc-aarch64.c:1454
-msgid "invalid vector register in list"
-msgstr "el registro vectorial inválido en listado"
-
-#: config/tc-aarch64.c:1462
-msgid "invalid scalar register in list"
-msgstr "el registro escalar inválido en listado"
-
-#: config/tc-aarch64.c:1475
-msgid "invalid range in vector register list"
-msgstr "rango no válido en listado de registros de vector"
-
-#: config/tc-aarch64.c:1488
-msgid "type mismatch in vector register list"
-msgstr "discordancia de tipos en listado de registros de vector"
-
-#: config/tc-aarch64.c:1509
-msgid "end of vector register list not found"
-msgstr "final del listado de registros de vector no encontrado"
-
-#: config/tc-aarch64.c:1527
-msgid "expected index"
-msgstr "se esperaba índice"
-
-#: config/tc-aarch64.c:1534
-msgid "too many registers in vector register list"
-msgstr "demasiados registros en el listado de registros de vector"
-
-#: config/tc-aarch64.c:1539
-msgid "empty vector register list"
-msgstr "listado de registros de vector vacío"
-
-#: config/tc-aarch64.c:1609 config/tc-arm.c:2534
-#, c-format
-msgid "ignoring attempt to redefine built-in register '%s'"
-msgstr "se descarta el intento de redefinir el registro interno «%s»"
-
-#: config/tc-aarch64.c:1615 config/tc-arm.c:2539
-#, c-format
-msgid "ignoring redefinition of register alias '%s'"
-msgstr "se descarta la redefinición del alias de registro «%s»"
-
-#: config/tc-aarch64.c:1660 config/tc-arm.c:2604
-#, c-format
-msgid "unknown register '%s' -- .req ignored"
-msgstr "el registro «%s» desconocido -- se descarta .req"
-
-#: config/tc-aarch64.c:1718 config/tc-arm.c:2812
-msgid "invalid syntax for .req directive"
-msgstr "sintaxis no válida para directiva .reg"
-
-#: config/tc-aarch64.c:1739 config/tc-arm.c:2845
-msgid "invalid syntax for .unreq directive"
-msgstr "sintaxis no válida para directiva .unreq"
-
-#: config/tc-aarch64.c:1745 config/tc-arm.c:2852
-#, c-format
-msgid "unknown register alias '%s'"
-msgstr "alias de registro desconocido «%s»"
-
-#: config/tc-aarch64.c:1747
-#, c-format
-msgid "ignoring attempt to undefine built-in register '%s'"
-msgstr "se descarta el intento de suprimir la definición del registro interno «%s»"
-
-#: config/tc-aarch64.c:2061 config/tc-arm.c:3583 config/tc-arm.c:3610
-#: config/tc-arm.c:3623
-msgid "literal pool overflow"
-msgstr "desbordamiento en el conjunto de literales"
-
-#: config/tc-aarch64.c:2242 config/tc-aarch64.c:7473 config/tc-arm.c:3845
-#: config/tc-arm.c:7677
-msgid "unrecognized relocation suffix"
-msgstr "sufijo de reubicación no reconocido"
-
-#: config/tc-aarch64.c:2244
-msgid "unimplemented relocation suffix"
-msgstr "sufijo de reubicación no implementado"
-
-#: config/tc-aarch64.c:2552 config/tc-aarch64.c:2743 config/tc-aarch64.c:2787
-#: config/tc-csky.c:2336
-msgid "immediate operand required"
-msgstr "operando inmediato requerido"
-
-#: config/tc-aarch64.c:2561
-msgid "missing immediate expression"
-msgstr "falta expresión inmediata"
-
-#: config/tc-aarch64.c:2767 config/tc-aarch64.c:7296 config/tc-aarch64.c:7316
-msgid "invalid floating-point constant"
-msgstr "constante de coma flotante no válida"
-
-#: config/tc-aarch64.c:3575 config/tc-arm.c:5452 config/tc-arm.c:5462
-msgid "shift expression expected"
-msgstr "se esperaba expresión de desplazamiento"
-
-#: config/tc-aarch64.c:3583
-msgid "shift operator expected"
-msgstr "se esperaba operador de desplazamiento"
-
-#: config/tc-aarch64.c:3591
-msgid "invalid use of 'MSL'"
-msgstr "utilización no válida de 'MSL'"
-
-#: config/tc-aarch64.c:3599
-msgid "invalid use of 'MUL'"
-msgstr "utilización no válida de 'MUL'"
-
-#: config/tc-aarch64.c:3608
-msgid "extending shift is not permitted"
-msgstr "no está permitido extender el desplazamiento"
-
-#: config/tc-aarch64.c:3616
-msgid "'ROR' shift is not permitted"
-msgstr "el desplazamiento 'ROR' no está permitido"
-
-#: config/tc-aarch64.c:3624
-msgid "only 'LSL' shift is permitted"
-msgstr "solo está permitido el desplazamiento 'LSL'"
-
-#: config/tc-aarch64.c:3632
-msgid "only 'MUL' is permitted"
-msgstr "solo 'MUL' está permitido"
-
-#: config/tc-aarch64.c:3650
-msgid "only 'MUL VL' is permitted"
-msgstr "solo 'MUL VL' está permitido"
-
-#: config/tc-aarch64.c:3658
-msgid "invalid shift for the register offset addressing mode"
-msgstr "desplazamiento inválido para el modo de direccionamiento de desplazamiento de registro"
-
-#: config/tc-aarch64.c:3666
-msgid "invalid shift operator"
-msgstr "operador de desplazamiento no válido"
-
-#: config/tc-aarch64.c:3700
-msgid "missing shift amount"
-msgstr "falta la cantidad de desplazamiento"
-
-#: config/tc-aarch64.c:3707
-msgid "constant shift amount required"
-msgstr "cantidad de desplazamiento constante requerida"
-
-#: config/tc-aarch64.c:3716
-msgid "shift amount out of range 0 to 63"
-msgstr "cantidad de desplazamiento fuera del rango 0 a 63"
-
-#: config/tc-aarch64.c:3766
-msgid "unexpected shift operator"
-msgstr "operador de desplazamiento inesperado"
-
-#: config/tc-aarch64.c:3802
-msgid "unexpected register in the immediate operand"
-msgstr "el registro no esperado en el operando inmediato"
-
-#: config/tc-aarch64.c:3827
-msgid "integer register expected in the extended/shifted operand register"
-msgstr "se esperaba registro entero en el registro de operando extendido/desplazado"
-
-#: config/tc-aarch64.c:3865
-msgid "integer register expected in the shifted operand register"
-msgstr "se esperaba registro entero en el registro de operando desplazado"
-
-#: config/tc-aarch64.c:3897 config/tc-aarch64.c:4084 config/tc-aarch64.c:4225
-#: config/tc-aarch64.c:4425 config/tc-aarch64.c:4467
-msgid "unknown relocation modifier"
-msgstr "modificador de reubicación desconocido"
-
-#: config/tc-aarch64.c:3904 config/tc-aarch64.c:4103 config/tc-aarch64.c:4232
-#: config/tc-aarch64.c:4432 config/tc-aarch64.c:4474
-msgid "this relocation modifier is not allowed on this instruction"
-msgstr "este modificador de reubicación no está permitido en esta instrucción"
-
-#: config/tc-aarch64.c:4112 config/tc-aarch64.c:4244
-msgid "invalid relocation expression"
-msgstr "expresión de reubicación no válida"
-
-#: config/tc-aarch64.c:4129
-msgid "invalid address"
-msgstr "dirección no válida"
-
-#: config/tc-aarch64.c:4147
-msgid "expected a 64-bit base register"
-msgstr "se esperaba un registro de base de 64 bits"
-
-#: config/tc-aarch64.c:4149
-msgid "invalid base register"
-msgstr "el registro de base no válido"
-
-#: config/tc-aarch64.c:4151
-msgid "expected a base register"
-msgstr "se esperaba un registro de base"
-
-#: config/tc-aarch64.c:4167 config/tc-aarch64.c:4305
-msgid "invalid offset register"
-msgstr "el registro de desplazamiento no válido"
-
-#: config/tc-aarch64.c:4194
-msgid "invalid use of 32-bit register offset"
-msgstr "utilización no válida de desplazamiento de registro de 32 bits"
-
-#: config/tc-aarch64.c:4203
-msgid "offset has different size from base"
-msgstr "el desplazamiento tiene distinto tamaño que la base"
-
-#: config/tc-aarch64.c:4209
-msgid "invalid use of 64-bit register offset"
-msgstr "utilización no válida de desplazamiento de registro de 64 bits"
-
-#. [Xn],#expr
-#: config/tc-aarch64.c:4258 config/tc-aarch64.c:4316
-msgid "invalid expression in the address"
-msgstr "expresión no válida en la dirección"
-
-#: config/tc-aarch64.c:4272 config/tc-arm.c:6051 config/tc-arm.c:6650
-msgid "']' expected"
-msgstr "se esperaba ']'"
-
-#: config/tc-aarch64.c:4280
-msgid "register offset not allowed in pre-indexed addressing mode"
-msgstr "desplazamiento de registro no permitido en modo direccionamiento pre-indexado"
-
-#: config/tc-aarch64.c:4295 config/tc-arm.c:6087
-msgid "cannot combine pre- and post-indexing"
-msgstr "no se puede combinar pre y post-indexación"
-
-#. Reject [Rn]!
-#: config/tc-aarch64.c:4340
-msgid "missing offset in the pre-indexed address"
-msgstr "falta el desplazamiento en dirección pre-indexada"
-
-#: config/tc-aarch64.c:4683
-msgid "expected '['"
-msgstr "se esperaba '['"
-
-#: config/tc-aarch64.c:4691
-msgid "expected a 32-bit selection register"
-msgstr "se esperaba un registro de selección de 32 bits"
-
-#: config/tc-aarch64.c:4698
-msgid "missing immediate offset"
-msgstr "falta desplazamiento inmediato"
-
-#: config/tc-aarch64.c:4704 config/tc-aarch64.c:4713
-msgid "expected a constant immediate offset"
-msgstr "se esperaba un desplazamiento inmediato constante"
-
-#: config/tc-aarch64.c:4718
-msgid "the last offset is less than the first offset"
-msgstr "el último desplazamiento es menor que el primer desplazamiento"
-
-#: config/tc-aarch64.c:4724
-msgid "the last offset is equal to the first offset"
-msgstr "el último desplazamiento es igual que el primer desplazamiento"
-
-#: config/tc-aarch64.c:4746
-msgid "invalid vector group size"
-msgstr "tamaño de grupo de vectores no válido"
-
-#: config/tc-aarch64.c:4753
-msgid "expected ']'"
-msgstr "se esperaba ']'"
-
-#: config/tc-aarch64.c:4813 config/tc-aarch64.c:4921
-msgid "expected '}'"
-msgstr "se esperaba '}'"
-
-#: config/tc-aarch64.c:4872
-msgid "ZA tile masks do not operate at .Q granularity"
-msgstr "las máscaras de matriz ZA no operan con granularidad .Q"
-
-#: config/tc-aarch64.c:4878
-msgid "missing ZA tile size"
-msgstr "falta el tamaño de la matriz ZA"
-
-#: config/tc-aarch64.c:4883
-msgid "invalid ZA tile"
-msgstr "matriz ZA no válida"
-
-#: config/tc-aarch64.c:4908
-msgid "expected '{'"
-msgstr "se esperaba '{'"
-
-#: config/tc-aarch64.c:4949
-msgid "expected SM or ZA operand"
-msgstr "se esperaba un operando SM o ZA"
-
-#: config/tc-aarch64.c:5012
-#, c-format
-msgid "selected processor does not support PSTATE field name '%s'"
-msgstr "el procesador seleccionado no admite el nombre de campo PSTATE '%s'"
-
-#: config/tc-aarch64.c:5017 config/tc-aarch64.c:5062
-#, c-format
-msgid "selected processor does not support system register name '%s'"
-msgstr "el procesador seleccionado no admite el nombre de registro del sistema «%s»"
-
-#: config/tc-aarch64.c:5020
-#, c-format
-msgid "128-bit-wide accsess not allowed on selected system register '%s'"
-msgstr "el acceso de ancho de 128 bits no está permitido en el registro del sistema seleccionado «%s»"
-
-#: config/tc-aarch64.c:5023 config/tc-aarch64.c:5065
-#, c-format
-msgid "system register name '%s' is deprecated and may be removed in a future release"
-msgstr "el nombre de registro del sistema «%s» está obsoleto y puede desaparecer en futuras versiones"
-
-#: config/tc-aarch64.c:5104
-msgid "immediate value out of range "
-msgstr "valor inmediato fuera de rango "
-
-#: config/tc-aarch64.c:5707 messages.c:151
-#, c-format
-msgid "Info: "
-msgstr "Info: "
-
-#: config/tc-aarch64.c:5725
-#, c-format
-msgid "missing braces at operand %d"
-msgstr "faltan las llaves para el operando %d"
-
-#: config/tc-aarch64.c:5736
-#, c-format
-msgid "unexpected register type at operand %d"
-msgstr "tipo de registro no esperado para el operando %d"
-
-#: config/tc-aarch64.c:5747
-#, c-format
-msgid "invalid register list at operand %d"
-msgstr "lista de registros no válida para el operando %d"
-
-#: config/tc-aarch64.c:5760
-#, c-format
-msgid "expected a register at operand %d"
-msgstr "se esperaba un registro para el operando %d"
-
-#: config/tc-aarch64.c:5767
-#, c-format
-msgid "expected '{' at operand %d"
-msgstr "se esperaba '{' para el operando %d"
-
-#: config/tc-aarch64.c:5769
-#, c-format
-msgid "expected a register or register list at operand %d"
-msgstr "se esperaba un registro o una lista de registros para el operando %d"
-
-#: config/tc-aarch64.c:5794
-#, c-format
-msgid "this `%s' should have an immediately preceding `%s' -- `%s'"
-msgstr "este «%s» debería ir inmediatamente precedido de «%s» -- «%s»"
-
-#: config/tc-aarch64.c:5800
-#, c-format
-msgid "the preceding `%s' should be followed by `%s` rather than `%s` -- `%s'"
-msgstr "el «%s» precedente debería ir seguido de «%s» en lugar de «%s» -- «%s»"
-
-#: config/tc-aarch64.c:5812 config/tc-aarch64.c:5827 config/tc-score.c:2748
-#: config/tc-score.c:6424
-#, c-format
-msgid "%s -- `%s'"
-msgstr "%s -- «%s»"
-
-#: config/tc-aarch64.c:5829
-#, c-format
-msgid "%s at operand %d -- `%s'"
-msgstr "%s en el operando %d -- «%s»"
-
-#: config/tc-aarch64.c:5835
-#, c-format
-msgid "operand %d must be %s -- `%s'"
-msgstr "el operando %d debe ser %s -- `%s'"
-
-#: config/tc-aarch64.c:5841
-#, c-format
-msgid "operand mismatch -- `%s'"
-msgstr "el operando no coincide -- «%s»"
-
-#. Print the hint.
-#: config/tc-aarch64.c:5901
-msgid " did you mean this?"
-msgstr " ¿quiso decir ésto?"
-
-#: config/tc-aarch64.c:5904 config/tc-aarch64.c:5931
-#, c-format
-msgid " %s"
-msgstr " %s"
-
-#: config/tc-aarch64.c:5909
-msgid " other valid variant(s):"
-msgstr " otra(s) variante(s) válida(s):"
-
-#: config/tc-aarch64.c:5938
-#, c-format
-msgid "operand %d must have the same immediate value as operand 1 -- `%s'"
-msgstr "el operando %d debe tener el mismo valor inmediato que el operando 1 -- «%s»"
-
-#: config/tc-aarch64.c:5944
-#, c-format
-msgid "operand %d must be the same register as operand 1 -- `%s'"
-msgstr "el operando %d debe ser el mismo registro que el operando 1 -- «%s»"
-
-#: config/tc-aarch64.c:5949
-#, c-format
-msgid "%s%d-%s%d expected at operand %d -- `%s'"
-msgstr "se esperaba %s%d-%s%d en el operando %d -- «%s»"
-
-#: config/tc-aarch64.c:5956
-#, c-format
-msgid "%s out of range %d to %d at operand %d -- `%s'"
-msgstr "%s fuera de rango %d a %d en el operando %d -- «%s»"
-
-#: config/tc-aarch64.c:5957 config/tc-aarch64.c:5961 config/tc-aarch64.c:8372
-msgid "immediate value"
-msgstr "valor inmediato"
-
-#: config/tc-aarch64.c:5960
-#, c-format
-msgid "%s must be %d at operand %d -- `%s'"
-msgstr "%s debe ser %d en el operando %d -- «%s»"
-
-#: config/tc-aarch64.c:5967
-#, c-format
-msgid "unexpected vector group size at operand %d -- `%s'"
-msgstr "tamaño de grupo de vectores inesperado en el operando %d -- «%s»"
-
-#: config/tc-aarch64.c:5970
-#, c-format
-msgid "operand %d must have a vector group size of %d -- `%s'"
-msgstr "el operando %d debe tener un tamaño de grupo de vectores de %d -- «%s»"
-
-#: config/tc-aarch64.c:5976
-#, c-format
-msgid "expected a single-register list at operand %d -- `%s'"
-msgstr "se esperaba una lista de registros sencillos en el operando %d -- «%s»"
-
-#: config/tc-aarch64.c:5979
-#, c-format
-msgid "expected a list of %d registers at operand %d -- `%s'"
-msgstr "se esperaba una lista de %d registros en el operando %d -- «%s»"
-
-#: config/tc-aarch64.c:5982
-#, c-format
-msgid "expected a list of %d or %d registers at operand %d -- `%s'"
-msgstr "se esperaba una lista de %d o %d registros en el operando %d -- «%s»"
-
-#: config/tc-aarch64.c:5986
-#, c-format
-msgid "invalid number of registers in the list at operand %d -- `%s'"
-msgstr "número no válido de registros en la lista en el operando %d -- `%s'"
-
-#: config/tc-aarch64.c:5992
-#, c-format
-msgid "the register list must have a stride of %d at operand %d -- `%s'"
-msgstr "la lista de registros debe tener un avance de %d en el operando %d -- «%s»"
-
-#: config/tc-aarch64.c:5995
-#, c-format
-msgid "the register list must have a stride of %d or %d at operand %d -- `%s`"
-msgstr "la lista de registros debe tener un avance de %d o %d en el operando %d -- «%s»"
-
-#: config/tc-aarch64.c:5999
-#, c-format
-msgid "invalid register stride at operand %d -- `%s'"
-msgstr "avance de registro inesperado en el operando %d -- «%s»"
-
-#: config/tc-aarch64.c:6004
-#, c-format
-msgid "immediate value must be a multiple of %d at operand %d -- `%s'"
-msgstr "el valor inmediato debe ser múltiplo de %d en el operando %d «%s»"
-
-#: config/tc-aarch64.c:6448
-msgid "the specified relocation type is not allowed for MOVK"
-msgstr "el tipo de reubicación especificado no está permitido para MOVK"
-
-#: config/tc-aarch64.c:6496 config/tc-aarch64.c:6507
-msgid "the specified relocation type is not allowed for 32-bit register"
-msgstr "el tipo de reubicación especificado no está permitido para registros de 32 bits"
-
-#: config/tc-aarch64.c:6602
-msgid "relocation qualifier does not match instruction size"
-msgstr "el cualificador de reubicación no coincide con el tamaño de la instrucción"
-
-#: config/tc-aarch64.c:6703
-msgid "comma expected between operands"
-msgstr "se esperaba coma entre los operandos"
-
-#: config/tc-aarch64.c:6739
-msgid "invalid Rt register number in 64-byte load/store"
-msgstr "número de registro Rt no válido en carga/almacenamiento de 64 bytes"
-
-#: config/tc-aarch64.c:6876
-msgid "the top half of a 128-bit FP/SIMD register is expected"
-msgstr "se espera la mitad superior de un registro FP/SIMD de 128 bits"
-
-#: config/tc-aarch64.c:6989 config/tc-aarch64.c:7039 config/tc-arm.c:2207
-#: config/tc-arm.c:2252 config/tc-h8300.c:1041
-msgid "invalid register list"
-msgstr "lista de registros no válida"
-
-#: config/tc-aarch64.c:7046
-msgid "expected element type rather than vector type"
-msgstr "se esperaba un tipo de elemento en vez de un tipo de vector"
-
-#: config/tc-aarch64.c:7064
-msgid "missing type suffix"
-msgstr "falta sufijo de tipo"
-
-#: config/tc-aarch64.c:7086
-msgid "C8 - C9 expected"
-msgstr "se esperaba C8 - C9"
-
-#: config/tc-aarch64.c:7092
-msgid "C0 - C7 expected"
-msgstr "se esperaba C0 - C7"
-
-#: config/tc-aarch64.c:7098
-msgid "C0 - C15 expected"
-msgstr "se esperaba C0 - C15"
-
-#: config/tc-aarch64.c:7210 config/tc-aarch64.c:7234
-msgid "immediate zero expected"
-msgstr "se esperaba cero inmediato"
-
-#: config/tc-aarch64.c:7331
-msgid "shift not allowed for bitmask immediate"
-msgstr "desplazamiento no permitido para inmediato de máscara de bits"
-
-#: config/tc-aarch64.c:7385
-msgid "can't mix relocation modifier with explicit shift"
-msgstr "no se puede entremezclar un modificador de reubicación con un desplazamiento explícito"
-
-#: config/tc-aarch64.c:7434 config/tc-arm.c:15723 config/tc-arm.c:15748
-#: config/tc-arm.c:15759 config/tc-arm.c:15766
-msgid "invalid condition"
-msgstr "condición no válida"
-
-#: config/tc-aarch64.c:7460
-msgid "invalid pc-relative address"
-msgstr "dirección relativa a pc no válida"
-
-#. Only permit "=value" in the literal load instructions.
-#. The literal will be generated by programmer_friendly_fixup.
-#: config/tc-aarch64.c:7468
-msgid "invalid use of \"=immediate\""
-msgstr "empleo no válido de \"=inmediato\""
-
-#: config/tc-aarch64.c:7531 config/tc-aarch64.c:7556 config/tc-aarch64.c:7578
-#: config/tc-aarch64.c:7610 config/tc-aarch64.c:7628 config/tc-aarch64.c:7652
-#: config/tc-aarch64.c:7672 config/tc-aarch64.c:7692 config/tc-aarch64.c:7711
-#: config/tc-aarch64.c:7734 config/tc-aarch64.c:7788 config/tc-aarch64.c:7795
-#: config/tc-aarch64.c:7823 config/tc-aarch64.c:7845 config/tc-aarch64.c:7870
-#: config/tc-aarch64.c:7888 config/tc-aarch64.c:7896 config/tc-aarch64.c:7913
-#: config/tc-aarch64.c:7937
-msgid "invalid addressing mode"
-msgstr "modo de direccionamiento no válido"
-
-#: config/tc-aarch64.c:7594
-msgid "the optional immediate offset can only be 0"
-msgstr "el desplazamiento de inmediato opcional solo puede ser 0"
-
-#: config/tc-aarch64.c:7633 config/tc-aarch64.c:7657 config/tc-aarch64.c:7677
-#: config/tc-aarch64.c:7697
-msgid "relocation not allowed"
-msgstr "reubicación no permitida"
-
-#: config/tc-aarch64.c:7744
-msgid "writeback value must be an immediate constant"
-msgstr "el valor retroescritura debe ser una constante inmediata"
-
-#: config/tc-aarch64.c:7755 config/tc-aarch64.c:7965
-msgid "unknown or missing PSTATE field name"
-msgstr "nombre de campo PSTATE desconocido o ausente"
-
-#. Make sure this has priority over
-#. "invalid addressing mode".
-#: config/tc-aarch64.c:7803
-msgid "constant offset required"
-msgstr "se requiere un desplazamiento constante"
-
-#: config/tc-aarch64.c:7951
-msgid "unknown or missing system register name"
-msgstr "nombre de registro del sistema desconocido o ausente"
-
-#: config/tc-aarch64.c:8004
-msgid "unknown or missing operation name"
-msgstr "nombre de operación desconocido o ausente"
-
-#: config/tc-aarch64.c:8017
-msgid "the specified option is not accepted in ISB"
-msgstr "la opción especificada no se acepta en ISB"
-
-#: config/tc-aarch64.c:8029 config/tc-aarch64.c:8046
-msgid "the specified option is not accepted in DSB"
-msgstr "la opción especificada no se acepta en DSB"
-
-#: config/tc-aarch64.c:8060
-msgid "immediate value must be 16, 20, 24, 28"
-msgstr "el valor inmediato debe ser 16, 20, 24, 28"
-
-#: config/tc-aarch64.c:8097 config/tc-aarch64.c:8132
-msgid "missing register index"
-msgstr "falta el índice de registros"
-
-#: config/tc-aarch64.c:8119
-msgid "expected '}' after ZT0"
-msgstr "se esperaba '}' tras ZT0"
-
-#: config/tc-aarch64.c:8246 config/tc-aarch64.c:9603 config/tc-arm.c:7945
-#, c-format
-msgid "unhandled operand code %d"
-msgstr "código de operando %d no manejado"
-
-#: config/tc-aarch64.c:8292
-msgid "unexpected comma before the omitted optional operand"
-msgstr "coma inesperada antes del operando opcional omitido"
-
-#: config/tc-aarch64.c:8320
-msgid "unexpected characters following instruction"
-msgstr "caracteres inesperados después de la instrucción"
-
-#: config/tc-aarch64.c:8398 config/tc-arm.c:5577 config/tc-arm.c:6195
-#: config/tc-arm.c:8757
-msgid "constant expression expected"
-msgstr "se esperaba una expresión constante"
-
-#: config/tc-aarch64.c:8405
-msgid "literal pool insertion failed"
-msgstr "falló la inserción en el conjunto de literales"
-
-#: config/tc-aarch64.c:8476 config/tc-aarch64.c:8529
-#, c-format
-msgid "unpredictable transfer with writeback -- `%s'"
-msgstr "transferencia impredecible con retroescritura -- «%s»"
-
-#. ldiapp, stilp
-#: config/tc-aarch64.c:8488
-#, c-format
-msgid "unpredictable load pair transfer with register overlap -- `%s'"
-msgstr "transferencia de par de carga impredecible con solapamiento de registros -- «%s»"
-
-#: config/tc-aarch64.c:8506
-#, c-format
-msgid "unpredictable transfer with writeback (load) -- `%s'"
-msgstr "transferencia impredecible con retroescritura (carga) -- «%s»"
-
-#: config/tc-aarch64.c:8510
-#, c-format
-msgid "unpredictable transfer with writeback (store) -- `%s'"
-msgstr "transferencia impredecible con retroescritura (almacenamiento) -- «%s»"
-
-#: config/tc-aarch64.c:8533 config/tc-aarch64.c:8547
-#, c-format
-msgid "unpredictable load of register pair -- `%s'"
-msgstr "carga impredicible de par de registros -- «%s»"
-
-#: config/tc-aarch64.c:8554 config/tc-aarch64.c:8567
-#, c-format
-msgid "unpredictable: identical transfer and status registers --`%s'"
-msgstr "impredecible: registros de transferencia y estado idénticos -- «%s»"
-
-#: config/tc-aarch64.c:8562 config/tc-aarch64.c:8576
-#, c-format
-msgid "unpredictable: identical base and status registers --`%s'"
-msgstr "impredecible: registros de base y estado idénticos -- «%s»"
-
-#: config/tc-aarch64.c:8596
-#, c-format
-msgid "previous `%s' sequence has not been closed"
-msgstr "la secuencia «%s» previa no se ha cerrado"
-
-#: config/tc-aarch64.c:8685
-#, c-format
-msgid "unknown mnemonic -- `%s'"
-msgstr "mnemónico desconocido -- `%s'"
-
-#: config/tc-aarch64.c:8695
-#, c-format
-msgid "unknown mnemonic `%s' -- `%s'"
-msgstr "mnemónico desconocido `%s' -- `%s'"
-
-#: config/tc-aarch64.c:8703
-#, c-format
-msgid "unexpected comma after the mnemonic name `%s' -- `%s'"
-msgstr "coma inesperada tras el nombre de nemónico «%s» -- «%s»"
-
-#: config/tc-aarch64.c:8760
-#, c-format
-msgid "selected processor does not support `%s'"
-msgstr "el procesador seleccionado no admite «%s»"
-
-#: config/tc-aarch64.c:9262 config/tc-arm.c:27396
-msgid "GOT already in the symbol table"
-msgstr "GOT ya está en la tabla de símbolos"
-
-#: config/tc-aarch64.c:9425
-msgid "immediate cannot be moved by a single instruction"
-msgstr "el inmediato no puede moverse mediante una instrucción sencilla"
-
-#: config/tc-aarch64.c:9469 config/tc-aarch64.c:9514 config/tc-aarch64.c:9540
-#: config/tc-arm.c:16267 config/tc-arm.c:17964 config/tc-arm.c:18544
-#: config/tc-arm.c:18571 config/tc-arm.c:19358 config/tc-arm.c:20193
-#: config/tc-arm.c:21216 config/tc-arm.c:21276 config/tc-metag.c:2443
-#: config/tc-metag.c:2452 config/tc-metag.c:2491 config/tc-metag.c:2500
-#: config/tc-metag.c:3019 config/tc-metag.c:3028
-msgid "immediate out of range"
-msgstr "inmediato fuera de rango"
-
-#: config/tc-aarch64.c:9533 config/tc-metag.c:4654 config/tc-xtensa.c:4229
-msgid "invalid immediate"
-msgstr "inmediato inválido"
-
-#: config/tc-aarch64.c:9598 config/tc-tic6x.c:3854 config/tc-tic6x.c:3919
-#: config/tc-tic6x.c:3946 config/tc-tic6x.c:3974
-msgid "immediate offset out of range"
-msgstr "el desplazamiento inmediato está fuera de rango"
-
-#: config/tc-aarch64.c:9672 config/tc-arm.c:27734 config/tc-arm.c:27802
-#: config/tc-arm.c:28084
-#, c-format
-msgid "undefined symbol %s used as an immediate value"
-msgstr "símbolo indefinido %s utilizado como un valor inmediato"
-
-#: config/tc-aarch64.c:9684
-msgid "pc-relative load offset not word aligned"
-msgstr "desplazamiento de carga relativo a pc no alineado con palabra"
-
-#: config/tc-aarch64.c:9687
-msgid "pc-relative load offset out of range"
-msgstr "desplazamiento de carga relativo a pc fuera de rango"
-
-#: config/tc-aarch64.c:9699
-msgid "pc-relative address offset out of range"
-msgstr "desplazamiento de dirección relativo a pc fuera de rango"
-
-#: config/tc-aarch64.c:9711 config/tc-aarch64.c:9726
-msgid "conditional branch target not word aligned"
-msgstr "objetivo de ramificación condicional no alineado con palabra"
-
-#: config/tc-aarch64.c:9714 config/tc-aarch64.c:9729 config/tc-arm.c:28379
-msgid "conditional branch out of range"
-msgstr "ramificación condicional fuera de rango"
-
-#: config/tc-aarch64.c:9742
-msgid "branch target not word aligned"
-msgstr "objetivo de ramificación no alineado con palabra"
-
-#: config/tc-aarch64.c:9745 config/tc-arm.c:916 config/tc-arm.c:29185
-#: config/tc-kvx.c:1725 config/tc-kvx.c:1731 config/tc-mips.c:16075
-#: config/tc-mips.c:16091 config/tc-mips.c:16181
-msgid "branch out of range"
-msgstr "ramificación fuera de rango"
-
-#: config/tc-aarch64.c:9804 config/tc-arm.c:27975 config/tc-arm.c:27990
-#: config/tc-arm.c:28005 config/tc-arm.c:28016 config/tc-arm.c:28039
-#: config/tc-arm.c:28889 config/tc-moxie.c:714 config/tc-pj.c:449
-#: config/tc-sh.c:3713
-msgid "offset out of range"
-msgstr "desplazamiento fuera de rango"
-
-#: config/tc-aarch64.c:9819
-msgid "unsigned value out of range"
-msgstr "valor sin signo fuera de rango"
-
-#: config/tc-aarch64.c:9830
-msgid "signed value out of range"
-msgstr "valor con signo fuera de rango"
-
-#: config/tc-aarch64.c:9985
-#, c-format
-msgid "unexpected %s fixup"
-msgstr "corrección inesperada %s"
-
-#: config/tc-aarch64.c:10049 config/tc-arm.c:29604 config/tc-arm.c:29625
-#: config/tc-mips.c:18444 config/tc-or1k.c:342 config/tc-score.c:7391
-#, c-format
-msgid "cannot represent %s relocation in this object file format"
-msgstr "no se puede representar la reubicación %s en este formato de fichero objeto"
-
-#: config/tc-aarch64.c:10096
-#, c-format
-msgid "cannot do %u-byte relocation"
-msgstr "no puede hacer reubicación de %u bytes"
-
-#: config/tc-aarch64.c:10524 config/tc-arm.c:30425
-msgid "assemble for big-endian"
-msgstr "ensamblar para big-endian"
-
-#: config/tc-aarch64.c:10525 config/tc-arm.c:30426
-msgid "assemble for little-endian"
-msgstr "ensamblar para little-endian"
-
-#: config/tc-aarch64.c:10528
-msgid "temporary switch for dumping"
-msgstr "intercambiado temporal para volcado"
-
-#: config/tc-aarch64.c:10530
-msgid "output verbose error messages"
-msgstr "sacar mensajes de error detallados"
-
-#: config/tc-aarch64.c:10532
-msgid "do not output verbose error messages"
-msgstr "no sacar mensajes de error detallados"
-
-#: config/tc-aarch64.c:10876 config/tc-arm.c:31614
-msgid "invalid architectural extension"
-msgstr "extensión de arquitectura no válida"
-
-#: config/tc-aarch64.c:10901 config/tc-arm.c:31646
-msgid "must specify extensions to add before specifying those to remove"
-msgstr "se deben especificar las extensiones que hay que añadir antes de especificar las que hay que borrar"
-
-#: config/tc-aarch64.c:10909 config/tc-arm.c:31654
-msgid "missing architectural extension"
-msgstr "falta la extensión de la arquitectura"
-
-#: config/tc-aarch64.c:10937 config/tc-arm.c:31740
-#, c-format
-msgid "unknown architectural extension `%s'"
-msgstr "extensión arquitectural desconocida «%s»"
-
-#: config/tc-aarch64.c:10962 config/tc-arm.c:31790 config/tc-metag.c:5832
-#, c-format
-msgid "missing cpu name `%s'"
-msgstr "falta el nombre de cpu «%s»"
-
-#: config/tc-aarch64.c:10973 config/tc-aarch64.c:11194 config/tc-arm.c:31825
-#: config/tc-arm.c:32645 config/tc-csky.c:1218 config/tc-metag.c:5843
-#, c-format
-msgid "unknown cpu `%s'"
-msgstr "cpu desconocida `%s'"
-
-#: config/tc-aarch64.c:10991 config/tc-arm.c:31843
-#, c-format
-msgid "missing architecture name `%s'"
-msgstr "falta el nombre de la arquitectura «%s»"
-
-#: config/tc-aarch64.c:11002 config/tc-aarch64.c:11239 config/tc-arm.c:31865
-#: config/tc-arm.c:32685 config/tc-arm.c:32721 config/tc-score.c:7626
-#, c-format
-msgid "unknown architecture `%s'\n"
-msgstr "arquitectura desconocida «%s» \n"
-
-#: config/tc-aarch64.c:11029
-#, c-format
-msgid "missing abi name `%s'"
-msgstr "falta el nombre de abi «%s»"
-
-#: config/tc-aarch64.c:11040
-#, c-format
-msgid "unknown abi `%s'\n"
-msgstr "abi desconocida «%s»\n"
-
-#: config/tc-aarch64.c:11053
-msgid "<abi name>\t specify for ABI <abi name>"
-msgstr "<nombre de abi>\t específica para ABI el <nombre de abi>"
-
-#: config/tc-aarch64.c:11055 config/tc-arm.c:31952 config/tc-metag.c:5909
-msgid "<cpu name>\t assemble for CPU <cpu name>"
-msgstr "<nombre de cpu>\t ensambla para la CPU <nombre de cpu>"
-
-#: config/tc-aarch64.c:11057 config/tc-arm.c:31954
-msgid "<arch name>\t assemble for architecture <arch name>"
-msgstr "<nombre de arq>\t ensambla para la arquitectura <nombre de arq>"
-
-#: config/tc-aarch64.c:11096 config/tc-aarch64.c:11115 config/tc-arm.c:32022
-#: config/tc-arm.c:32040 config/tc-arm.c:32060 config/tc-metag.c:5933
-#, c-format
-msgid "option `-%c%s' is deprecated: %s"
-msgstr "la opción `-%c%s' es obsoleta: %s"
-
-#: config/tc-aarch64.c:11135
-#, c-format
-msgid " AArch64-specific assembler options:\n"
-msgstr " Opciones de ensamblador específicas de AArch64:\n"
-
-#: config/tc-aarch64.c:11146 config/tc-arc.c:3598 config/tc-arm.c:32091
-#, c-format
-msgid " -EB assemble code for a big-endian cpu\n"
-msgstr " -EB ensambla código para una cpu big-endian\n"
-
-#: config/tc-aarch64.c:11151 config/tc-arc.c:3600 config/tc-arm.c:32096
-#, c-format
-msgid " -EL assemble code for a little-endian cpu\n"
-msgstr " -EL ensambla código para una cpu little-endian\n"
-
-#: config/tc-alpha.c:648
-#, c-format
-msgid "No !literal!%ld was found"
-msgstr "No se ha encontrado ningún !literal!%ld"
-
-#: config/tc-alpha.c:655
-#, c-format
-msgid "No !tlsgd!%ld was found"
-msgstr "No se ha encontrado ningún !tlsgd!%ld"
-
-#: config/tc-alpha.c:662
-#, c-format
-msgid "No !tlsldm!%ld was found"
-msgstr "No se ha encontrado ningún !tlsldm!%ld"
-
-#: config/tc-alpha.c:671
-#, c-format
-msgid "No ldah !gpdisp!%ld was found"
-msgstr "No se ha encontrado ningún !gpdisp!%ld ldah"
-
-#: config/tc-alpha.c:721
-#, c-format
-msgid "too many !literal!%ld for %s"
-msgstr "demasiados !literal!%ld para %s"
-
-#: config/tc-alpha.c:751
-#, c-format
-msgid "No lda !gpdisp!%ld was found"
-msgstr "No se ha encontrado ningún !gpdisp!%ld lda"
-
-#. Only support one relocation op per insn.
-#: config/tc-alpha.c:910
-msgid "More than one relocation op per insn"
-msgstr "Más de un operador de reubicación por insn"
-
-#: config/tc-alpha.c:925 config/tc-arc.c:1137
-msgid "No relocation operand"
-msgstr "No hay operando de reubicación"
-
-#: config/tc-alpha.c:935
-#, c-format
-msgid "Unknown relocation operand: !%s"
-msgstr "Operando de reubicación desconocido: !%s"
-
-#: config/tc-alpha.c:945
-#, c-format
-msgid "no sequence number after !%s"
-msgstr "no hay un número de secuencia tras !%s"
-
-#: config/tc-alpha.c:955
-#, c-format
-msgid "!%s does not use a sequence number"
-msgstr "!%s no utiliza un número de secuencia"
-
-#: config/tc-alpha.c:965
-#, c-format
-msgid "Bad sequence number: !%s!%s"
-msgstr "Número de secuencia incorrecto: !%s!%s"
-
-#: config/tc-alpha.c:1185 config/tc-alpha.c:3359
-#, c-format
-msgid "inappropriate arguments for opcode `%s'"
-msgstr "argumentos inapropiados para el código de operación «%s»"
-
-#: config/tc-alpha.c:1187 config/tc-alpha.c:3361
-#, c-format
-msgid "opcode `%s' not supported for target %s"
-msgstr "no se admite el código de operación «%s» para el objetivo %s"
-
-#: config/tc-alpha.c:1191 config/tc-alpha.c:3365 config/tc-avr.c:1914
-#: config/tc-msp430.c:4363 config/tc-wasm32.c:753
-#, c-format
-msgid "unknown opcode `%s'"
-msgstr "código de operación desconocido «%s»"
-
-#: config/tc-alpha.c:1271 config/tc-alpha.c:1530
-msgid "overflow in literal (.lita) table"
-msgstr "desbordamiento en la tabla (.lita) de literales"
-
-#: config/tc-alpha.c:1278 config/tc-alpha.c:1302 config/tc-alpha.c:1543
-#: config/tc-alpha.c:2230 config/tc-alpha.c:2275 config/tc-alpha.c:2344
-#: config/tc-alpha.c:2427 config/tc-alpha.c:2652 config/tc-alpha.c:2750
-msgid "macro requires $at register while noat in effect"
-msgstr "la macro requiere el registro $at mientras noat está en efecto"
-
-#: config/tc-alpha.c:1280 config/tc-alpha.c:1304 config/tc-alpha.c:1545
-msgid "macro requires $at while $at in use"
-msgstr "la macro requiere $at mientras $at está en uso"
-
-#: config/tc-alpha.c:1489
-msgid "bignum invalid; zero assumed"
-msgstr "bignum inválido; se asume cero"
-
-#: config/tc-alpha.c:1491
-msgid "floating point number invalid; zero assumed"
-msgstr "número de coma flotante inválido; se asume cero"
-
-#: config/tc-alpha.c:1496
-msgid "can't handle expression"
-msgstr "no se puede manejar la expresión"
-
-#: config/tc-alpha.c:1536
-msgid "overflow in literal (.lit8) table"
-msgstr "desbordamiento en la tabla (.lit8) de literales"
-
-#: config/tc-alpha.c:1833
-#, c-format
-msgid "too many ldah insns for !gpdisp!%ld"
-msgstr "demasiadas insns ldah para !gpdisp!%ld"
-
-#: config/tc-alpha.c:1835 config/tc-alpha.c:1847
-#, c-format
-msgid "both insns for !gpdisp!%ld must be in the same section"
-msgstr "ambas insns para !gpdisp!%ld deben estar en la misma sección"
-
-#: config/tc-alpha.c:1845
-#, c-format
-msgid "too many lda insns for !gpdisp!%ld"
-msgstr "demasiadas insns lda para !gpdisp!%ld"
-
-#: config/tc-alpha.c:1901
-#, c-format
-msgid "too many lituse insns for !lituse_tlsgd!%ld"
-msgstr "demasiadas insns lituse para !lituse_tlsgd!%ld"
-
-#: config/tc-alpha.c:1904
-#, c-format
-msgid "too many lituse insns for !lituse_tlsldm!%ld"
-msgstr "demasiadas insns lituse para !lituse_tlsldm!%ld"
-
-#: config/tc-alpha.c:1921
-#, c-format
-msgid "duplicate !tlsgd!%ld"
-msgstr "!tlsgd!%ld duplicado"
-
-#: config/tc-alpha.c:1923
-#, c-format
-msgid "sequence number in use for !tlsldm!%ld"
-msgstr "número de secuencia en uso para !tlsldm!%ld"
-
-#: config/tc-alpha.c:1937
-#, c-format
-msgid "duplicate !tlsldm!%ld"
-msgstr "!tlsldm!%ld duplicado"
-
-#: config/tc-alpha.c:1939
-#, c-format
-msgid "sequence number in use for !tlsgd!%ld"
-msgstr "número de secuencia en uso para !tlsgd!%ld"
-
-#: config/tc-alpha.c:1994 config/tc-arc.c:2870 config/tc-mn10200.c:848
-#: config/tc-mn10300.c:1150 config/tc-ppc.c:2065 config/tc-tilegx.c:422
-#: config/tc-tilegx.c:472 config/tc-tilepro.c:375
-msgid "operand"
-msgstr "operando"
-
-#: config/tc-alpha.c:2133
-msgid "invalid relocation for instruction"
-msgstr "reubicación no válida para la instrucción"
-
-#: config/tc-alpha.c:2147
-msgid "invalid relocation for field"
-msgstr "reubicación no válida para el campo"
-
-#: config/tc-alpha.c:2979
-msgid "can not resolve expression"
-msgstr "no se puede resolver la expresión"
-
-#: config/tc-alpha.c:3514 config/tc-microblaze.c:183 config/tc-ppc.c:2407
-#, c-format
-msgid ".COMMon length (%ld.) <0! Ignored."
-msgstr "¡Longitud de .COMMon (%ld.) <0! Se descarta."
-
-#: config/tc-alpha.c:3525 config/tc-ia64.c:1091 config/tc-sparc.c:4273
-#: config/tc-v850.c:303
-msgid "Ignoring attempt to re-define symbol"
-msgstr "Se descarta el intento de redefinir el símbolo"
-
-#: config/tc-alpha.c:3617 config/tc-sparc.c:4281
-#, c-format
-msgid "Length of .comm \"%s\" is already %ld. Not changed to %ld."
-msgstr "La longitud de .comm «%s» ya es %ld. No se cambia a %ld."
-
-#: config/tc-alpha.c:3724
-msgid ".ent directive has no name"
-msgstr "la directiva .ent no tiene nombre"
-
-#: config/tc-alpha.c:3732
-msgid "nested .ent directives"
-msgstr "directivas .ent anidadas"
-
-#: config/tc-alpha.c:3776 ecoff.c:2996
-msgid ".end directive has no name"
-msgstr "la directiva .end no tiene nombre"
-
-#: config/tc-alpha.c:3784
-msgid ".end directive without matching .ent"
-msgstr "directiva .end sin su correspondiente .ent"
-
-#: config/tc-alpha.c:3786
-msgid ".end directive names different symbol than .ent"
-msgstr "la directiva .end nombra un símbolo diferente que la .ent"
-
-#: config/tc-alpha.c:3829 ecoff.c:3132
-msgid ".fmask outside of .ent"
-msgstr ".fmask fuera de .ent"
-
-#: config/tc-alpha.c:3831 config/tc-score.c:5582 ecoff.c:3196
-msgid ".mask outside of .ent"
-msgstr ".mask fuera de .ent"
-
-#: config/tc-alpha.c:3839 ecoff.c:3139
-msgid "bad .fmask directive"
-msgstr "directiva .fmask incorrecta"
-
-#: config/tc-alpha.c:3841 ecoff.c:3203
-msgid "bad .mask directive"
-msgstr "directiva .mask incorrecta"
-
-#: config/tc-alpha.c:3874 config/tc-mips.c:19926 config/tc-score.c:5716
-#: ecoff.c:3160
-msgid ".frame outside of .ent"
-msgstr ".frame fuera de .ent"
-
-#: config/tc-alpha.c:3885 config/tc-mips.c:19937 ecoff.c:3171
-msgid "bad .frame directive"
-msgstr "directiva .frame incorrecta"
-
-#: config/tc-alpha.c:3919
-msgid ".prologue directive without a preceding .ent directive"
-msgstr "directiva .prologue sin una directiva .ent precedente"
-
-#: config/tc-alpha.c:3937
-#, c-format
-msgid "Invalid argument %d to .prologue."
-msgstr "Argumento inválido %d para .prologue."
-
-#: config/tc-alpha.c:4026
-msgid "ECOFF debugging is disabled."
-msgstr "La depuración ECOFF está desactivada."
-
-#: config/tc-alpha.c:4040
-msgid ".ent directive without matching .end"
-msgstr "directiva .ent sin su correspondiente .end"
-
-#: config/tc-alpha.c:4133
-msgid ".usepv directive has no name"
-msgstr "la directiva .usepv no tiene nombre"
-
-#: config/tc-alpha.c:4146
-msgid ".usepv directive has no type"
-msgstr "la directiva .usepv no tiene tipo"
-
-#: config/tc-alpha.c:4161
-msgid "unknown argument for .usepv"
-msgstr "argumento desconocido para .usepv"
-
-#: config/tc-alpha.c:4274
-#, c-format
-msgid "unknown section attribute %s"
-msgstr "atributo de sección %s desconocido"
-
-#: config/tc-alpha.c:4369
-msgid "previous .ent not closed by a .end"
-msgstr "el .ent previo no está cerrado por un .end"
-
-#: config/tc-alpha.c:4390
-msgid ".ent directive has no symbol"
-msgstr "la directiva .ent no tiene símbolo"
-
-#: config/tc-alpha.c:4415
-msgid ".handler directive has no name"
-msgstr "la directiva .handler no tiene nombre"
-
-#: config/tc-alpha.c:4446
-msgid "Bad .frame directive 1./2. param"
-msgstr "Parámetro 1./2. de directiva .frame incorrecto"
-
-#: config/tc-alpha.c:4456
-#, c-format
-msgid "Bad RA (%d) register for .frame"
-msgstr "Registro RA (%d) incorrecto para .frame"
-
-#: config/tc-alpha.c:4461
-msgid "Bad .frame directive 3./4. param"
-msgstr "Parámetro 3./4. de directiva .frame incorrecto"
-
-#: config/tc-alpha.c:4497
-msgid ".pdesc directive not in link (.link) section"
-msgstr "la directiva .pdesc no está en la sección de enlace (.link)"
-
-#: config/tc-alpha.c:4504
-msgid ".pdesc directive has no entry symbol"
-msgstr "la directiva .pdesc no tiene un símbolo de entrada"
-
-#: config/tc-alpha.c:4515
-msgid ".pdesc has a bad entry symbol"
-msgstr ".pdesc tiene un símbolo de entrada incorrecto"
-
-#: config/tc-alpha.c:4526
-msgid ".pdesc doesn't match with last .ent"
-msgstr ".pdesc no se corresponde con el último .ent"
-
-#: config/tc-alpha.c:4541
-msgid "No comma after .pdesc <entryname>"
-msgstr "No hay una coma tras .pdesc <nombredeentrada>"
-
-#: config/tc-alpha.c:4561
-msgid "unknown procedure kind"
-msgstr "clase de procedimiento desconocida"
-
-#: config/tc-alpha.c:4656
-msgid ".name directive not in link (.link) section"
-msgstr "la directiva .name no está en la sección de enlace (.link)"
-
-#: config/tc-alpha.c:4664
-msgid ".name directive has no symbol"
-msgstr "la directiva .name no tiene símbolo"
-
-#: config/tc-alpha.c:4698
-msgid "No symbol after .linkage"
-msgstr "No hay un símbolo tras .linkage"
-
-#: config/tc-alpha.c:4745
-msgid "No symbol after .code_address"
-msgstr "No hay un símbolo tras .code_address"
-
-#: config/tc-alpha.c:4771 config/tc-score.c:5588
-msgid "Bad .mask directive"
-msgstr "Directiva .mask incorrecta"
-
-#: config/tc-alpha.c:4789
-msgid "Bad .fmask directive"
-msgstr "Directiva .fmask incorrecta"
-
-#: config/tc-alpha.c:4946
-#, c-format
-msgid "Expected comma after name \"%s\""
-msgstr "Se esperaba una coma tras nombre «%s»"
-
-#: config/tc-alpha.c:4958
-#, c-format
-msgid "unhandled: .proc %s,%d"
-msgstr "sin manejar: .proc %s,%d"
-
-#: config/tc-alpha.c:4991
-#, c-format
-msgid "Tried to .set unrecognized mode `%s'"
-msgstr "Se ha intentado .set de un modo no reconocido «%s»"
-
-#: config/tc-alpha.c:5017
-#, c-format
-msgid "Bad base register, using $%d."
-msgstr "Registro base incorrecto; se usa $%d."
-
-#: config/tc-alpha.c:5038
-#, c-format
-msgid "Alignment too large: %d. assumed"
-msgstr "Alineación demasiado grande: se asume %d."
-
-#: config/tc-alpha.c:5042 config/tc-d30v.c:2034 config/tc-pru.c:220
-#: config/tc-pru.c:336
-msgid "Alignment negative: 0 assumed"
-msgstr "Alineación negativa: se asume 0"
-
-#: config/tc-alpha.c:5137 config/tc-alpha.c:5628
-#, c-format
-msgid "Unknown CPU identifier `%s'"
-msgstr "Identificador de CPU desconocido «%s»"
-
-#: config/tc-alpha.c:5328
-#, c-format
-msgid "Chose GP value of %lx\n"
-msgstr "Se ha escogido el valor GP de %lx\n"
-
-#: config/tc-alpha.c:5342
-msgid "bad .section directive: want a,s,w,x,M,S,G,T in string"
-msgstr "directiva .section incorrecta: se quiere a,s,w,x,M,S,G,T en la cadena"
-
-#: config/tc-alpha.c:5430 config/tc-alpha.c:5466 config/tc-arc.c:768
-#: config/tc-arc.c:2564 config/tc-arc.c:2596 config/tc-arc.c:2702
-#: config/tc-cr16.c:807 config/tc-cr16.c:826 config/tc-cris.c:1223
-#: config/tc-crx.c:510 config/tc-crx.c:532 config/tc-crx.c:543
-#: config/tc-dlx.c:289 config/tc-hppa.c:8252 config/tc-i386.c:3490
-#: config/tc-i386.c:3535 config/tc-ia64.c:5360 config/tc-ia64.c:7399
-#: config/tc-ia64.c:7458 config/tc-kvx.c:1478 config/tc-m68k.c:4556
-#: config/tc-m68k.c:4568 config/tc-mips.c:3709 config/tc-mips.c:3742
-#: config/tc-mips.c:3768 config/tc-nds32.c:3440 config/tc-ns32k.c:1906
-#: config/tc-ppc.c:1745 config/tc-ppc.c:1785 config/tc-pru.c:1576
-#: config/tc-pru.c:1580 config/tc-s390.c:611 config/tc-s390.c:649
-#: config/tc-sparc.c:961 config/tc-sparc.c:993 config/tc-tic30.c:121
-#: config/tc-tic30.c:131 config/tc-tic30.c:141 config/tc-tic30.c:151
-#: config/tc-tic4x.c:1219 config/tc-tilegx.c:316 config/tc-tilepro.c:252
-#: config/tc-vax.c:965 config/tc-vax.c:970 ecoff.c:1582
-#, c-format
-msgid "duplicate %s"
-msgstr "duplicado «%s»"
-
-#: config/tc-alpha.c:5549 config/tc-arc.c:2532 config/tc-arc.c:2546
-#: config/tc-arm.c:888 config/tc-xtensa.c:5473 config/tc-xtensa.c:5549
-#: config/tc-xtensa.c:5666 config/tc-z80.c:3677
-msgid "syntax error"
-msgstr "error de sintaxis"
-
-#: config/tc-alpha.c:5679
-msgid ""
-"Alpha options:\n"
-"-32addr\t\t\ttreat addresses as 32-bit values\n"
-"-F\t\t\tlack floating point instructions support\n"
-"-mev4 | -mev45 | -mev5 | -mev56 | -mpca56 | -mev6 | -mev67 | -mev68 | -mall\n"
-"\t\t\tspecify variant of Alpha architecture\n"
-"-m21064 | -m21066 | -m21164 | -m21164a | -m21164pc | -m21264 | -m21264a | -m21264b\n"
-"\t\t\tthese variants include PALcode opcodes\n"
-msgstr ""
-"Opciones Alpha:\n"
-"-32addr\t\t\ttrata direcciones como valores de 32 bits\n"
-"-F\t\t\tsin soporte de instrucciones de coma flotante\n"
-"-mev4 | -mev45 | -mev5 | -mev56 | -mpca56 | -mev6 | -mev67 | -mev68 | -mall\n"
-"\t\t\tespecifica variante de la arquitectura Alpha\n"
-"-m21064 | -m21066 | -m21164 | -m21164a | -m21164pc | -m21264 | -m21264a | -m21264b\n"
-"\t\t\testas variantes incluyen códigos de operación PALcode\n"
-
-#: config/tc-alpha.c:5689
-msgid ""
-"VMS options:\n"
-"-+\t\t\tencode (don't truncate) names longer than 64 characters\n"
-"-H\t\t\tshow new symbol after hash truncation\n"
-"-replace/-noreplace\tenable or disable the optimization of procedure calls\n"
-msgstr ""
-"Opciones VMS:\n"
-"-+\t\t\tcodifica (no trunca) los nombres más largos de 64 caracteres\n"
-"-H\t\t\tmuestra el símbolo nuevo después del truncado hash\n"
-"-replace/-noreplace\tactiva o desactiva la optimización de llamadas a procedimientos\n"
-
-#: config/tc-alpha.c:5946 config/tc-arc.c:3145
-#, c-format
-msgid "unhandled relocation type %s"
-msgstr "tipo de reubicación %s sin manejar"
-
-#: config/tc-alpha.c:5959 config/tc-arc.c:3153
-msgid "non-absolute expression in constant field"
-msgstr "expresión no absoluta en campo constante"
-
-#: config/tc-alpha.c:5973
-#, c-format
-msgid "type %d reloc done?\n"
-msgstr "¿tipo %d de reubicación hecha?\n"
-
-#: config/tc-alpha.c:6020 config/tc-alpha.c:6027
-msgid "Used $at without \".set noat\""
-msgstr "Se utilizó $at sin \".set noat\""
-
-#: config/tc-alpha.c:6196
-#, c-format
-msgid "!samegp reloc against symbol without .prologue: %s"
-msgstr "reubicación !samegp contra un símbolo sin .prologue: %s"
-
-#: config/tc-alpha.c:6240 config/tc-arc.c:3276 config/tc-csky.c:5668
-#: config/tc-tilegx.c:1745 config/tc-tilepro.c:1522 config/tc-wasm32.c:813
-#: config/tc-xtensa.c:6176
-#, c-format
-msgid "cannot represent `%s' relocation in object file"
-msgstr "no se puede representar la reubicación «%s» en el fichero objeto"
-
-#: config/tc-alpha.c:6246 config/tc-arc.c:3282
-#, c-format
-msgid "internal error? cannot generate `%s' relocation"
-msgstr "¿error interno? no se puede generar la reubicación «%s»"
-
-#: config/tc-alpha.c:6342
-#, c-format
-msgid "frame reg expected, using $%d."
-msgstr "se esperaba un registro de marco; se usa $%d."
-
-#: config/tc-arc.c:831
-#, c-format
-msgid "invalid %s option for %s cpu"
-msgstr "opción %s no válida para cpu %s"
-
-#: config/tc-arc.c:836
-msgid "conflicting ISA extension attributes."
-msgstr "atributos de extensión ISA en conflicto."
-
-#: config/tc-arc.c:856
-msgid "Multiple .cpu directives found"
-msgstr "Se han encontrado varias directivas .cpu"
-
-#: config/tc-arc.c:874
-msgid "Command-line value overrides \".cpu\" directive"
-msgstr "el Valor de línea de órdenes invalida la directiva «.cpu»"
-
-#: config/tc-arc.c:890
-#, c-format
-msgid "unknown architecture: %s\n"
-msgstr "arquitectura desconocida: %s\n"
-
-#: config/tc-arc.c:901 config/tc-ia64.c:7468 config/tc-tilegx.c:262
-msgid "Could not set architecture and machine"
-msgstr "No se ha podido establecer la arquitectura y la máquina"
-
-#: config/tc-arc.c:1126
-msgid "No valid label relocation operand"
-msgstr "Operando de reubicación de etiqueta no válido"
-
-#: config/tc-arc.c:1150
-#, c-format
-msgid "Unknown relocation operand: @%s"
-msgstr "Operando de reubicación desconocido: @%s"
-
-#: config/tc-arc.c:1163
-#, c-format
-msgid "Unable to parse TLS base: %s"
-msgstr "Imposible interpretar base TLS: %s"
-
-#: config/tc-arc.c:1186
-#, c-format
-msgid "@%s is not a complex relocation."
-msgstr "@%s no es una reubicación compleja."
-
-#: config/tc-arc.c:1193
-#, c-format
-msgid "Bad expression: @%s + %s."
-msgstr "Expresión incorrecta: @%s + %s."
-
-#: config/tc-arc.c:1343
-msgid "Brackets in operand field incorrect"
-msgstr "Corchetes en campo de operando incorrectos"
-
-#: config/tc-arc.c:1345 config/tc-xtensa.c:2072
-msgid "extra comma"
-msgstr "coma extra"
-
-#: config/tc-arc.c:1347 config/tc-pru.c:1457 config/tc-pru.c:1705
-#: config/tc-xtensa.c:2076
-msgid "missing argument"
-msgstr "falta un argumento"
-
-#: config/tc-arc.c:1349 config/tc-xtensa.c:2078
-msgid "missing comma or colon"
-msgstr "falta coma o dos puntos"
-
-#: config/tc-arc.c:1418
-msgid "extra dot"
-msgstr "punto extra"
-
-#: config/tc-arc.c:1420
-msgid "unrecognized flag"
-msgstr "marca no reconocida"
-
-#: config/tc-arc.c:1422
-msgid "failed to parse flags"
-msgstr "no se han podido interpretar las marcas"
-
-#: config/tc-arc.c:1448
-msgid "Unhandled reloc type"
-msgstr "Tipo de reubicación no manejado"
-
-#: config/tc-arc.c:1967
-msgid "immediate is out of bounds"
-msgstr "el inmediato está fuera de límites"
-
-#: config/tc-arc.c:1975
-msgid "immediate is not 32bit aligned"
-msgstr "el inmediato no está alineado a 32 bits"
-
-#: config/tc-arc.c:1982
-msgid "immediate is not 16bit aligned"
-msgstr "el inmediato no está alineado a 16 bits"
-
-#: config/tc-arc.c:2063
-msgid "operand is not duplicate of the previous one"
-msgstr "el operando no es un duplicado del anterior"
-
-#: config/tc-arc.c:2083
-msgid "flag mismatch"
-msgstr "marca discordante"
-
-#: config/tc-arc.c:2095 config/tc-pru.c:1413 config/tc-pru.c:1438
-#: config/tc-xtensa.c:2142
-msgid "too many arguments"
-msgstr "demasiados argumentos"
-
-#: config/tc-arc.c:2500
-#, c-format
-msgid "%s for instruction '%s'"
-msgstr "%s para la instrucción «%s»"
-
-#: config/tc-arc.c:2502
-#, c-format
-msgid "inappropriate arguments for opcode '%s'"
-msgstr "argumentos inapropiados para el código de operación «%s»"
-
-#: config/tc-arc.c:2504
-#, c-format
-msgid "opcode '%s' not supported for target %s"
-msgstr "no se admite el código de operación «%s» para el objetivo %s"
-
-#: config/tc-arc.c:2508 config/tc-tic6x.c:3188
-#, c-format
-msgid "unknown opcode '%s'"
-msgstr "código de operación desconocido «%s»"
-
-#: config/tc-arc.c:2614 config/tc-arc.c:5093 config/tc-h8300.c:78
-#: config/tc-h8300.c:87 config/tc-h8300.c:97 config/tc-h8300.c:107
-#: config/tc-h8300.c:117 config/tc-h8300.c:128 config/tc-h8300.c:243
-#: config/tc-hppa.c:6826 config/tc-hppa.c:6832 config/tc-hppa.c:6838
-#: config/tc-hppa.c:6844 config/tc-hppa.c:8231 config/tc-kvx.c:1438
-#: config/tc-lm32.c:197 config/tc-mips.c:3699 config/tc-mips.c:4193
-#: config/tc-mn10300.c:935 config/tc-mn10300.c:940 config/tc-mn10300.c:2438
-#: config/tc-riscv.c:1897 config/tc-riscv.c:5716
-msgid "could not set architecture and machine"
-msgstr "no se ha podido establecer la arquitectura y la máquina"
-
-#: config/tc-arc.c:2815
-#, c-format
-msgid "unhandled reloc %s in md_pcrel_from_section"
-msgstr "reubicación no manejada %s en md_pcrel_from_section"
-
-#: config/tc-arc.c:2880
-msgid "Unaligned operand. Needs to be 32bit aligned"
-msgstr "Operando no alineado. Requiere ser alineado a 32 bits"
-
-#: config/tc-arc.c:2885
-msgid "Unaligned operand. Needs to be 16bit aligned"
-msgstr "Operando no alineado. Requiere ser alineado a 16 bits"
-
-#: config/tc-arc.c:3016
-#, c-format
-msgid "PC relative relocation not allowed for (internal) type %d"
-msgstr "Reubicación relativa a PC no permitida para el tipo (interno) %d"
-
-#. FIXME! Check for the conditionality of
-#. the insn.
-#. FIXME! Check for the conditionality of
-#. the insn.
-#: config/tc-arc.c:3061 config/tc-arc.c:4042
-msgid "TLS_*_S9 relocs are not supported yet"
-msgstr "Las reubicaciones TLS_*_S9 todavía no están disponibles"
-
-#. I cannot fix an GOTPC relocation because I need to relax it
-#. from ld rx,[pcl,@sym@gotpc] to add rx,pcl,@sym@gotpc.
-#: config/tc-arc.c:3097
-msgid "Unsupported operation on reloc"
-msgstr "Operación no soportada en reubicación"
-
-#: config/tc-arc.c:3173 config/tc-arc.c:3189
-msgid "unknown fixup size"
-msgstr "tamaño de la corrección desconocido"
-
-#: config/tc-arc.c:3323
-msgid "no relaxation found for this instruction."
-msgstr "ninguna relajación encontrada para esta instrucción."
-
-#: config/tc-arc.c:3576
-#, c-format
-msgid "ARC-specific assembler options:\n"
-msgstr "Opciones de ensamblador específicas de ARC:\n"
-
-#: config/tc-arc.c:3602
-#, c-format
-msgid " -mrelax enable relaxation\n"
-msgstr " -mrelax activa la relajación\n"
-
-#: config/tc-arc.c:3605
-#, c-format
-msgid ""
-"The following ARC-specific assembler options are deprecated and are accepted\n"
-"for compatibility only:\n"
-msgstr ""
-"Las siguientes opciones de ensamblador específicas de ARC están obsoletas y\n"
-"se aceptan únicamente por compatibilidad:\n"
-
-#: config/tc-arc.c:3608
-#, c-format
-msgid ""
-" -mEA\n"
-" -mbarrel-shifter\n"
-" -mbarrel_shifter\n"
-" -mcrc\n"
-" -mdsp-packa\n"
-" -mdsp_packa\n"
-" -mdvbf\n"
-" -mld-extension-reg-mask\n"
-" -mlock\n"
-" -mmac-24\n"
-" -mmac-d16\n"
-" -mmac_24\n"
-" -mmac_d16\n"
-" -mmin-max\n"
-" -mmin_max\n"
-" -mmul64\n"
-" -mno-mpy\n"
-" -mnorm\n"
-" -mrtsc\n"
-" -msimd\n"
-" -mswap\n"
-" -mswape\n"
-" -mtelephony\n"
-" -muser-mode-only\n"
-" -mxy\n"
-msgstr ""
-" -mEA\n"
-" -mbarrel-shifter\n"
-" -mbarrel_shifter\n"
-" -mcrc\n"
-" -mdsp-packa\n"
-" -mdsp_packa\n"
-" -mdvbf\n"
-" -mld-extension-reg-mask\n"
-" -mlock\n"
-" -mmac-24\n"
-" -mmac-d16\n"
-" -mmac_24\n"
-" -mmac_d16\n"
-" -mmin-max\n"
-" -mmin_max\n"
-" -mmul64\n"
-" -mno-mpy\n"
-" -mnorm\n"
-" -mrtsc\n"
-" -msimd\n"
-" -mswap\n"
-" -mswape\n"
-" -mtelephony\n"
-" -muser-mode-only\n"
-" -mxy\n"
-
-#: config/tc-arc.c:3698
-#, c-format
-msgid "Unable to find %s relocation for instruction %s"
-msgstr "No se ha podido encontrar la reubicacion de %s para la instrucción %s"
-
-#: config/tc-arc.c:3993
-#, c-format
-msgid "Unable to use @plt relocation for insn %s"
-msgstr "No se ha podido utilizar la reubicación de @plt para la insn %s"
-
-#: config/tc-arc.c:4012
-#, c-format
-msgid "Unable to use @pcl relocation for insn %s"
-msgstr "No se ha podido emplear la reubicación de @pcl para la insn %s"
-
-#: config/tc-arc.c:4068
-#, c-format
-msgid "invalid relocation %s for field"
-msgstr "reubicación no válida %s para el campo"
-
-#: config/tc-arc.c:4178
-#, c-format
-msgid "Insn %s has a jump/branch instruction %s in its delay slot."
-msgstr "Insn %s tiene una instrucción de salto/bifurcación %s en su ranura de retardo."
-
-#: config/tc-arc.c:4183
-#, c-format
-msgid "Insn %s has an instruction %s with limm in its delay slot."
-msgstr "Insn %s tiene una instrucción %s con limm en su ranura de retardo."
-
-#: config/tc-arc.c:4293 config/tc-microblaze.c:2628 config/tc-mn10300.c:1069
-#: config/tc-sh.c:418 config/tc-z80.c:1120 read.c:4837
-#, c-format
-msgid "unsupported BFD relocation size %u"
-msgstr "no se admite el tamaño de reubicación BFD %u"
-
-#: config/tc-arc.c:4313
-#, c-format
-msgid "Jump/Branch instruction detected at the end of the ZOL label @%s"
-msgstr "Instrucción de Salto/Bifurcación detectada al final de la etiqueta ZOL @%s"
-
-#: config/tc-arc.c:4320
-#, c-format
-msgid "Kernel instruction detected at the end of the ZOL label @%s"
-msgstr "Instrucción del núcleo detectada al final de la etiqueta ZOL @%s"
-
-#: config/tc-arc.c:4325
-#, c-format
-msgid "A jump instruction with long immediate detected at the end of the ZOL label @%s"
-msgstr "Instrucción de salto con inmediato largo detectada al final de la etiqueta ZOL @%s"
-
-#: config/tc-arc.c:4331
-#, c-format
-msgid "An illegal use of delay slot detected at the end of the ZOL label @%s"
-msgstr "Uso ilegal de la ranura de retardo detectado al final del etiqueta ZOL @%s"
-
-#: config/tc-arc.c:4440
-msgid "expected comma after instruction name"
-msgstr "se esperaba coma después del nombre de la instrucción"
-
-#: config/tc-arc.c:4452
-msgid "expected comma after major opcode"
-msgstr "se esperaba coma después del código de operación mayor"
-
-#: config/tc-arc.c:4637
-#, c-format
-msgid "Pseudocode already used %s"
-msgstr "Pseudocódigo ya utilizado %s"
-
-#: config/tc-arc.c:4645
-#, c-format
-msgid "major opcode not in range [0x%02x - 0x%02x]"
-msgstr "código de operación mayor no dentro del rango [0x%02x - 0x%02x]"
-
-#: config/tc-arc.c:4649
-msgid "minor opcode not in range [0x00 - 0x3f]"
-msgstr "código de operación menor no dentro del rango [0x00 - 0x3f]"
-
-#: config/tc-arc.c:4655
-msgid "Improper use of OP1_IMM_IMPLIED"
-msgstr "Utilización impropia de OP1_IMM_IMPLIED"
-
-#: config/tc-arc.c:4661
-msgid "Improper use of OP1_MUST_BE_IMM"
-msgstr "Utilización impropia de OP1_MUST_BE_IMM"
-
-#: config/tc-arc.c:4673
-msgid "Couldn't generate extension instruction opcodes"
-msgstr "No se han podido generar códigos de operación de instrucciones de extensión"
-
-#: config/tc-arc.c:4708
-msgid "expected comma after name"
-msgstr "se esperaba una coma tras el nombre"
-
-#: config/tc-arc.c:4719
-#, c-format
-msgid "%s second argument cannot be a negative number %d"
-msgstr "el segundo argumento de %s no puede ser un número negativo %d"
-
-#: config/tc-arc.c:4734
-msgid "expected comma after register number"
-msgstr "se esperaba coma después del número de registro"
-
-#: config/tc-arc.c:4755
-msgid "invalid mode"
-msgstr "modo inválido"
-
-#: config/tc-arc.c:4773
-msgid "expected comma after register mode"
-msgstr "se esperaba coma después del modo de registro"
-
-#: config/tc-arc.c:4788
-msgid "shortcut designator invalid"
-msgstr "designador de atajo inválido"
-
-#: config/tc-arc.c:4886
-#, c-format
-msgid "core register %s value (%d) too large"
-msgstr "el registro %s core con un valor (%d) demasiado grande"
-
-#: config/tc-arc.c:4898
-#, c-format
-msgid "duplicate aux register %s"
-msgstr "el registro aux duplicado %s"
-
-#: config/tc-arc.c:4903
-#, c-format
-msgid "condition code %s value (%d) too large"
-msgstr "código %s de condición con un valor (%d) demasiado grande"
-
-#: config/tc-arc.c:4920
-msgid "Unknown extension"
-msgstr "Extensión desconocida"
-
-#: config/tc-arc.c:5027
-msgid "Overwrite explicitly set Tag_ARC_CPU_base"
-msgstr "La sobreescritura establece explícitamente Tag_ARC_CPU_base"
-
-#: config/tc-arc.c:5077
-msgid "Overwrite explicitly set Tag_ARC_ABI_rf16 to full register file"
-msgstr "La sobreescritura establece explícitamente Tag_ARC_ABI_rf16 al fichero de registros completo"
-
-#: config/tc-arm.c:702
-msgid "ARM register expected"
-msgstr "se esperaba registro ARM"
-
-#: config/tc-arm.c:703
-msgid "bad or missing co-processor number"
-msgstr "número de coprocesador incorrecto o ausente"
-
-#: config/tc-arm.c:704
-msgid "co-processor register expected"
-msgstr "se esperaba un registro de coprocesador"
-
-#: config/tc-arm.c:705
-msgid "VFP single precision register expected"
-msgstr "se esperaba un registro de precisión sencilla VFP"
-
-#: config/tc-arm.c:706
-msgid "VFP/Neon double precision register expected"
-msgstr "se esperaba un registro de precisión doble VFP/Neon"
-
-#: config/tc-arm.c:707
-msgid "Neon quad precision register expected"
-msgstr "se esperaba un registro de precisión cuádruple Neon"
-
-#: config/tc-arm.c:708
-msgid "VFP single or double precision register expected"
-msgstr "se esperaba un registro de precisión sencilla o doble VFP"
-
-#: config/tc-arm.c:709
-msgid "Neon double or quad precision register expected"
-msgstr "se esperaba un registro de precisión doble o cuádruple Neon"
-
-#: config/tc-arm.c:710
-msgid "Neon single or double precision register expected"
-msgstr "se esperaba un registro de precisión sencilla o doble Neon"
-
-#: config/tc-arm.c:711
-msgid "VFP single, double or Neon quad precision register expected"
-msgstr "se esperaba un registro de precisión sencilla o doble VFP, o cuádruple Neon"
-
-#: config/tc-arm.c:713
-msgid "VFP system register expected"
-msgstr "se esperaba un registro de sistema VFP"
-
-#: config/tc-arm.c:714
-msgid "iWMMXt data register expected"
-msgstr "se esperaba un registro de datos iWMMXt"
-
-#: config/tc-arm.c:715 config/tc-arm.c:7745
-msgid "iWMMXt control register expected"
-msgstr "se esperaba un registro de control iWMMXt"
-
-#: config/tc-arm.c:716
-msgid "iWMMXt scalar register expected"
-msgstr "se esperaba un registro escalar iWMMXt"
-
-#: config/tc-arm.c:717
-msgid "XScale accumulator register expected"
-msgstr "se esperaba un registro acumulador XScale"
-
-#: config/tc-arm.c:718
-msgid "MVE vector register expected"
-msgstr "se esperaba un registro vectorial MVE"
-
-#: config/tc-arm.c:720
-msgid "ZR register expected"
-msgstr "se esperaba un registro ZR"
-
-#: config/tc-arm.c:721
-msgid "Pseudo register expected"
-msgstr "Se esperaba un psuedoregistro"
-
-#. For score5u : div/mul will pop warning message, mmu/alw/asw will pop error message.
-#: config/tc-arm.c:889 config/tc-score.c:255
-msgid "bad arguments to instruction"
-msgstr "argumentos incorrectos para la instrucción"
-
-#: config/tc-arm.c:890
-msgid "r13 not allowed here"
-msgstr "no se permite r13 aquí"
-
-#: config/tc-arm.c:891
-msgid "r15 not allowed here"
-msgstr "no se permite r15 aquí"
-
-#: config/tc-arm.c:892
-msgid "Odd register not allowed here"
-msgstr "No se permite aquí un registro impar"
-
-#: config/tc-arm.c:893
-msgid "Even register not allowed here"
-msgstr "No se permite aquí un registro par"
-
-#: config/tc-arm.c:894
-msgid "instruction cannot be conditional"
-msgstr "la instrucción no puede ser condicional"
-
-#: config/tc-arm.c:895
-msgid "registers may not be the same"
-msgstr "los registros no pueden ser el mismo"
-
-#: config/tc-arm.c:896
-msgid "lo register required"
-msgstr "se requiere registro lo"
-
-#: config/tc-arm.c:897
-msgid "instruction not supported in Thumb16 mode"
-msgstr "la instrucción no se admite en modo Thumb16"
-
-#: config/tc-arm.c:898
-msgid "instruction does not accept this addressing mode"
-msgstr "la instrucción no acepta este modo de direccionamiento"
-
-#: config/tc-arm.c:899
-msgid "branch must be last instruction in IT block"
-msgstr "la bifurcación debe ser la última instrucción en el bloque IT"
-
-#: config/tc-arm.c:900
-msgid "branch out of range or not a multiple of 2"
-msgstr "ramificación fuera de rango o no es múltiplo de 2"
-
-#: config/tc-arm.c:901
-msgid "instruction not allowed in VPT block"
-msgstr "no se permite la instrucción en el bloque VPT"
-
-#: config/tc-arm.c:902
-msgid "instruction not allowed in IT block"
-msgstr "no se permite la instrucción en el bloque IT"
-
-#: config/tc-arm.c:903
-msgid "instruction missing MVE vector predication code"
-msgstr "a la instrucción le falta el código de predicación de vector MVE."
-
-#: config/tc-arm.c:904
-msgid "selected FPU does not support instruction"
-msgstr "la FPU seleccionada no admite la instrucción"
-
-#: config/tc-arm.c:905
-msgid "thumb conditional instruction should be in IT block"
-msgstr "la instrucción condicional «thumb» debería estar en un bloque IT"
-
-#: config/tc-arm.c:907
-msgid "vector predicated instruction should be in VPT/VPST block"
-msgstr "la strucción predicada de vector debería estar en un bloque VPT/VPST"
-
-#: config/tc-arm.c:908
-msgid "incorrect condition in IT block"
-msgstr "condición incorrecta en bloque IT"
-
-#: config/tc-arm.c:909
-msgid "incorrect condition in VPT/VPST block"
-msgstr "condición incorrecta en bloque VPT/VPST"
-
-#: config/tc-arm.c:910
-msgid "IT falling in the range of a previous IT block"
-msgstr "IT dentro del rango del bloque IT anterior"
-
-#: config/tc-arm.c:911
-msgid "missing .fnstart before unwinding directive"
-msgstr "falta .fnstart antes de directiva de desenrollado"
-
-#: config/tc-arm.c:913
-msgid "cannot use register index with PC-relative addressing"
-msgstr "no se puede usar el índice de registro con direccionamiento relativo al PC"
-
-#: config/tc-arm.c:915
-msgid "cannot use writeback with PC-relative addressing"
-msgstr "no se puede usar retroescritura con el direccionamiento relativo al PC"
-
-#: config/tc-arm.c:917
-msgid "selected processor does not support fp16 instruction"
-msgstr "el procesador seleccionado no admite instrucción fp16"
-
-#: config/tc-arm.c:918
-msgid "selected processor does not support bf16 instruction"
-msgstr "el procesador seleccionado no admite la instrucción bf16"
-
-#: config/tc-arm.c:919
-msgid "selected processor does not support cde instruction"
-msgstr "el procesador seleccionado no admite la instrucción cde"
-
-#: config/tc-arm.c:920
-msgid "coprocessor for insn is not enabled for cde"
-msgstr "el coprocesador para insn no está habilitado para cde"
-
-#: config/tc-arm.c:921
-msgid "using "
-msgstr "empleando "
-
-#: config/tc-arm.c:922
-msgid "relocation valid in thumb1 code only"
-msgstr "reubicación válida solamente en código thumb1"
-
-#: config/tc-arm.c:923
-msgid "Warning: instruction is UNPREDICTABLE in an IT block"
-msgstr "Aviso: la instrucción es IMPREDECIBLE en un bloque IT"
-
-#: config/tc-arm.c:925
-msgid "Warning: instruction is UNPREDICTABLE in a VPT block"
-msgstr "Aviso: la instrucción es IMPREDECIBLE en un bloque VPT"
-
-#: config/tc-arm.c:927
-msgid "Warning: instruction is UNPREDICTABLE with PC operand"
-msgstr "Aviso: la instrucción es IMPREDECIBLE en un operando de PC"
-
-#: config/tc-arm.c:929
-msgid "Warning: instruction is UNPREDICTABLE with SP operand"
-msgstr "Aviso: la instrucción es IMPREDECIBLE en un operando de SP"
-
-#: config/tc-arm.c:931
-msgid "bad type in SIMD instruction"
-msgstr "tipo incorrecto en instrucción SIMD"
-
-#: config/tc-arm.c:933
-msgid "GAS auto-detection mode and -march=all is deprecated for MVE, please use a valid -march or -mcpu option."
-msgstr "El modo de autodetección de GAS y -march=all está obsoleto para MVE; debe utilizar una opción -arch o -mcpu válida."
-
-#: config/tc-arm.c:935
-msgid "Warning: 32-bit element size and same destination and source operands makes instruction UNPREDICTABLE"
-msgstr "Aviso: el tamaño del elemento de 32 bits y los mismos operandos de destino y origen hacen la instrucción IMPREDECIBLE"
-
-#: config/tc-arm.c:937
-msgid "bad element type for instruction"
-msgstr "tipo elemental incorrecto para la instrucción"
-
-#: config/tc-arm.c:938
-msgid "MVE vector register Q[0..7] expected"
-msgstr "se esperaba un registro vectorial MVE Q[0..7]"
-
-#: config/tc-arm.c:939
-msgid "selected processor does not support PACBTI extention"
-msgstr "el procesador seleccionado no admite la extensión PACBTI"
-
-#: config/tc-arm.c:1159
-msgid "immediate expression requires a # prefix"
-msgstr "e xpresión inmediata requiere un prefijo #"
-
-#: config/tc-arm.c:1188 read.c:4077
-msgid "missing expression"
-msgstr "falta expresión"
-
-#: config/tc-arm.c:1202 config/tc-arm.c:5590 config/tc-score.c:1205
-msgid "invalid constant"
-msgstr "constante no válida"
-
-#: config/tc-arm.c:1337
-msgid "expected #constant"
-msgstr "se esperaba #constant"
-
-#: config/tc-arm.c:1509 config/tc-arm.c:1540
-#, c-format
-msgid "bad size %d in type specifier"
-msgstr "tamaño incorrecto %d en el especificador de tipo"
-
-#: config/tc-arm.c:1516
-msgid "unexpected type character `b' -- did you mean `bf'?"
-msgstr "carácter de tipo inesperado `b' -- ¿quiso decir `bf'?"
-
-#: config/tc-arm.c:1523
-#, c-format
-msgid "unexpected character `%c' in type specifier"
-msgstr "carácter inesperado `%c' en el especificador de tipo"
-
-#: config/tc-arm.c:1590
-msgid "only one type should be specified for operand"
-msgstr "solo se debe especificar un tipo para el operando"
-
-#: config/tc-arm.c:1596
-msgid "vector type expected"
-msgstr "se esperaba un tipo vector"
-
-#: config/tc-arm.c:1705
-msgid "expected MVE register [q0..q7]"
-msgstr "se esperaba un registro MVE [q0..q7]"
-
-#: config/tc-arm.c:1725
-msgid "can't redefine type for operand"
-msgstr "no se puede redefinir el tipo para el operando"
-
-#: config/tc-arm.c:1741
-msgid "only D and Q registers may be indexed"
-msgstr "solo se pueden indexar los registros D y Q"
-
-#: config/tc-arm.c:1743
-msgid "only D registers may be indexed"
-msgstr "solo se pueden indexar los registros D"
-
-#: config/tc-arm.c:1749
-msgid "can't change index for operand"
-msgstr "no se puede modificar el índice para el operando"
-
-#: config/tc-arm.c:1812
-msgid "register operand expected, but got scalar"
-msgstr "se esperaba un operando de registro, pero se recibió un escalar"
-
-#: config/tc-arm.c:1863
-msgid "scalar must have an index"
-msgstr "el escalar debe tener un índice"
-
-#: config/tc-arm.c:1868 config/tc-arm.c:20038 config/tc-arm.c:20121
-#: config/tc-arm.c:20794
-msgid "scalar index out of range"
-msgstr "índice escalar fuera de rango"
-
-#: config/tc-arm.c:1947
-msgid "r0-r12, lr or APSR expected"
-msgstr "se esperaba r0-r12, lr o APSR"
-
-#: config/tc-arm.c:1974 config/tc-arm.c:4376
-msgid "bad range in register list"
-msgstr "rango incorrecto en la lista de registros"
-
-#: config/tc-arm.c:1982 config/tc-arm.c:1991 config/tc-arm.c:2032
-#: config/tc-arm.c:4360 config/tc-arm.c:4380
-#, c-format
-msgid "Warning: duplicated register (r%d) in register list"
-msgstr "Aviso: registro duplicado (r%d) en la lista de registros"
-
-#: config/tc-arm.c:1994
-msgid "Warning: register range not in ascending order"
-msgstr "Aviso: el rango de registros no está en orden ascendente"
-
-#: config/tc-arm.c:2005
-msgid "missing `}'"
-msgstr "falta `}'"
-
-#: config/tc-arm.c:2021
-msgid "invalid register mask"
-msgstr "máscara de registro no válida"
-
-#: config/tc-arm.c:2098
-msgid "expecting {"
-msgstr "se esperaba {"
-
-#: config/tc-arm.c:2165 config/tc-arm.c:2273
-msgid "VPR expected last"
-msgstr "se esperaba VPR lo último"
-
-#: config/tc-arm.c:2171
-msgid "VFP single precision register or VPR expected"
-msgstr "Se esperaba un registro VFP de precisión simple o VPR"
-
-#. regtype == REG_TYPE_VFD.
-#: config/tc-arm.c:2174
-msgid "VFP/Neon double precision register or VPR expected"
-msgstr "Se esperaba un registro VFP/Neon de precisión doble o VPR"
-
-#: config/tc-arm.c:2191 config/tc-arm.c:2235
-msgid "register out of range in list"
-msgstr "el registro fuera de rango en la lista"
-
-#: config/tc-arm.c:2213 config/tc-arm.c:4526 config/tc-arm.c:4660
-msgid "register list not in ascending order"
-msgstr "la lista de registros no está en orden ascendente"
-
-#: config/tc-arm.c:2244
-msgid "register range not in ascending order"
-msgstr "el rango de registros no está en orden ascendente"
-
-#: config/tc-arm.c:2283
-msgid "non-contiguous register range"
-msgstr "el rango de registros no es contiguo"
-
-#: config/tc-arm.c:2343
-msgid "register stride must be 1"
-msgstr "el avance de registro debe ser 1"
-
-#: config/tc-arm.c:2344
-msgid "register stride must be 1 or 2"
-msgstr "el avance de registro debe ser 1 o 2"
-
-#: config/tc-arm.c:2345
-msgid "mismatched element/structure types in list"
-msgstr "los tipos de elementos/estructuras no coinciden en la lista"
-
-#: config/tc-arm.c:2415
-msgid "don't use Rn-Rm syntax with non-unit stride"
-msgstr "no utilice la sintaxis Rn-Rm con avance no unitario"
-
-#: config/tc-arm.c:2470
-msgid "error parsing element/structure list"
-msgstr "error al analizar la lista de elementos/estructuras"
-
-#: config/tc-arm.c:2476
-msgid "expected }"
-msgstr "se esperaba }"
-
-#: config/tc-arm.c:2566
-msgid "attempt to redefine typed alias"
-msgstr "se intentó redefinir el alias con tipo"
-
-#: config/tc-arm.c:2701
-msgid "bad type for register"
-msgstr "tipo incorrecto para el registro"
-
-#: config/tc-arm.c:2712
-msgid "expression must be constant"
-msgstr "la expresión debe ser constante"
-
-#: config/tc-arm.c:2729
-msgid "can't redefine the type of a register alias"
-msgstr "no se puede redefinir el tipo de un alias de registro"
-
-#: config/tc-arm.c:2736
-msgid "you must specify a single type only"
-msgstr "solo debe especificar un único tipo"
-
-#: config/tc-arm.c:2749
-msgid "can't redefine the index of a scalar alias"
-msgstr "no se puede redefinir el índice de un alias escalar"
-
-#: config/tc-arm.c:2757
-msgid "scalar index must be constant"
-msgstr "el índice escalar debe ser constante"
-
-#: config/tc-arm.c:2766
-msgid "expecting ]"
-msgstr "se esperaba ]"
-
-#: config/tc-arm.c:2818
-msgid "invalid syntax for .dn directive"
-msgstr "sintaxis no válida para la directiva .dn"
-
-#: config/tc-arm.c:2824
-msgid "invalid syntax for .qn directive"
-msgstr "sintaxis no válida para la directiva .qn"
-
-#: config/tc-arm.c:2854
-#, c-format
-msgid "ignoring attempt to use .unreq on fixed register name: '%s'"
-msgstr "se descarta el intento de usar .unreq en un nombre de registro fijo: «%s»"
-
-#: config/tc-arm.c:3116
-#, c-format
-msgid "Failed to find real start of function: %s\n"
-msgstr "No se ha podido encontrar el inicio real de la función: %s\n"
-
-#: config/tc-arm.c:3133
-msgid "selected processor does not support THUMB opcodes"
-msgstr "el procesador seleccionado no admite códigos operacionales THUMB"
-
-#: config/tc-arm.c:3146
-msgid "selected processor does not support ARM opcodes"
-msgstr "el procesador seleccionado no admite códigos operacionales ARM"
-
-#: config/tc-arm.c:3158
-#, c-format
-msgid "invalid instruction size selected (%d)"
-msgstr "se ha seleccionado un tamaño de instrucción no válido (%d)"
-
-#: config/tc-arm.c:3190
-#, c-format
-msgid "invalid operand to .code directive (%d) (expecting 16 or 32)"
-msgstr "operando inválido para la directiva .code (%d) (se esperaba 16 o 32)"
-
-#: config/tc-arm.c:3246
-#, c-format
-msgid "expected comma after name \"%s\""
-msgstr "se esperaba una coma después del nombre «%s»"
-
-#: config/tc-arm.c:3296 config/tc-m32r.c:584
-#, c-format
-msgid "symbol `%s' already defined"
-msgstr "el símbolo «%s» ya está definido"
-
-#: config/tc-arm.c:3329
-#, c-format
-msgid "unrecognized syntax mode \"%s\""
-msgstr "modo de sintaxis no reconocido «%s»"
-
-#: config/tc-arm.c:3359
-msgid ".ref pseudo-op only available with -mccs flag."
-msgstr "pseudo-op .ref solo disponible con el indicador -mccs."
-
-#: config/tc-arm.c:3400
-msgid ".asmfunc repeated."
-msgstr ".asmfunc repetido."
-
-#: config/tc-arm.c:3404
-msgid ".asmfunc without function."
-msgstr ".asmfunc sin función."
-
-#: config/tc-arm.c:3410
-msgid ".asmfunc pseudo-op only available with -mccs flag."
-msgstr "pseudo-op .asmfunc solo disponible con el indicador -mccs."
-
-#: config/tc-arm.c:3421
-msgid ".endasmfunc without a .asmfunc."
-msgstr ".endasmfunc sin un .asmfunc."
-
-#: config/tc-arm.c:3425
-msgid ".endasmfunc without function."
-msgstr ".endasmfunc sin función."
-
-#: config/tc-arm.c:3436
-msgid ".endasmfunc pseudo-op only available with -mccs flag."
-msgstr "pseudo-op .endasmfunc solo disponible con el indicador -mccs."
-
-#: config/tc-arm.c:3445
-msgid ".def pseudo-op only available with -mccs flag."
-msgstr "pseudo-op .def solo disponible con el indicador -mccs."
-
-#: config/tc-arm.c:3603
-msgid "invalid type for literal pool"
-msgstr "tipo no válido para conjunto de literales"
-
-#: config/tc-arm.c:3683 config/tc-tic54x.c:5379
-#, c-format
-msgid "Invalid label '%s'"
-msgstr "Etiqueta no válida «%s»"
-
-#: config/tc-arm.c:3860
-msgid "(plt) is only valid on branch targets"
-msgstr "(plt) solo es válido en objetivos de bifurcación"
-
-#: config/tc-arm.c:3866 config/tc-csky.c:7672 config/tc-s390.c:1304
-#: config/tc-s390.c:2099 config/tc-xtensa.c:1698
-#, c-format
-msgid "%s relocations do not fit in %d byte"
-msgid_plural "%s relocations do not fit in %d bytes"
-msgstr[0] "%s reubicaciones no caben en %d byte"
-msgstr[1] "%s reubicaciones no caben en %d bytes"
-
-#: config/tc-arm.c:3948
-msgid ".inst.n operand too big. Use .inst.w instead"
-msgstr "operando de .inst.n demasiado grande. Utilice .inst.w en su lugar"
-
-#: config/tc-arm.c:3968
-msgid "cannot determine Thumb instruction size. Use .inst.n/.inst.w instead"
-msgstr "no se puede determinar el tamaño de la instrucción Thumb. Utilice .inst.n/.inst.w en su lugar"
-
-#: config/tc-arm.c:3998
-msgid "width suffixes are invalid in ARM mode"
-msgstr "los sufijos de anchura son inválidos en modo ARM"
-
-#: config/tc-arm.c:4042 dwarf2dbg.c:1467
-msgid "expected 0 or 1"
-msgstr "se esperaba 0 ó 1"
-
-#: config/tc-arm.c:4046
-msgid "missing comma"
-msgstr "falta coma"
-
-#: config/tc-arm.c:4079
-msgid "duplicate .fnstart directive"
-msgstr "directiva .fnstart duplicada"
-
-#: config/tc-arm.c:4109 config/tc-tic6x.c:410
-msgid "duplicate .handlerdata directive"
-msgstr "directiva .handlerdata duplicada"
-
-#: config/tc-arm.c:4128
-msgid ".fnend directive without .fnstart"
-msgstr "directiva .fnend sin .fnstart"
-
-#: config/tc-arm.c:4195 config/tc-tic6x.c:391
-msgid "personality routine specified for cantunwind frame"
-msgstr "se especificó una rutina de personalidad para el marco cantunwind"
-
-#: config/tc-arm.c:4212 config/tc-tic6x.c:452
-msgid "duplicate .personalityindex directive"
-msgstr "directiva .personalityindex duplicada"
-
-#: config/tc-arm.c:4219 config/tc-tic6x.c:459
-msgid "bad personality routine number"
-msgstr "número de rutina de personalidad incorrecto"
-
-#: config/tc-arm.c:4241 config/tc-tic6x.c:476
-msgid "duplicate .personality directive"
-msgstr "directiva .personality duplicada"
-
-#: config/tc-arm.c:4267
-#, c-format
-msgid "Unknown register no. encountered: %d\n"
-msgstr "Nº del registro encontrado desconocido: %d\n"
-
-#: config/tc-arm.c:4363
-msgid "Warning: register list not in ascending order"
-msgstr "Aviso: la lista de registros no está en orden ascendente"
-
-#: config/tc-arm.c:4370 config/tc-epiphany.c:382 config/tc-m68k.c:5866
-#: config/tc-m68k.c:5895
-msgid "bad register list"
-msgstr "lista de registros incorrecta"
-
-#: config/tc-arm.c:4428 config/tc-arm.c:4478
-msgid "expected register list"
-msgstr "se esperaba una lista de registros"
-
-#: config/tc-arm.c:4540 config/tc-arm.c:4674
-msgid "bad register range"
-msgstr "rango de registro incorrecto"
-
-#: config/tc-arm.c:4729
-msgid "register expected"
-msgstr "se esperaba un registro"
-
-#: config/tc-arm.c:4762
-msgid ".unwind_save does not support this kind of register"
-msgstr ".unwind_save no admite este tipo de registro"
-
-#: config/tc-arm.c:4801
-msgid "SP and PC not permitted in .unwind_movsp directive"
-msgstr "PS y PC no se permiten en la directiva .unwind_movsp"
-
-#: config/tc-arm.c:4806
-msgid "unexpected .unwind_movsp directive"
-msgstr "directiva .unwind_movsp inesperada"
-
-#: config/tc-arm.c:4833
-msgid "stack increment must be multiple of 4"
-msgstr "el incremento de pila debe ser múltiplo de 4"
-
-#: config/tc-arm.c:4881
-msgid "expected <reg>, <reg>"
-msgstr "se esperaba <reg>, <reg>"
-
-#: config/tc-arm.c:4899
-msgid "register must be either sp or set by a previousunwind_movsp directive"
-msgstr "el registro debe ser sp o establecido por una directiva previousunwind_movsp"
-
-#: config/tc-arm.c:4938
-msgid "expected <offset>, <opcode>"
-msgstr "se esperaba <desplazamiento>, <códigoop>"
-
-#: config/tc-arm.c:4950
-msgid "unwind opcode too long"
-msgstr "código de operación de desenrollado demasiado largo"
-
-#: config/tc-arm.c:4955
-msgid "invalid unwind opcode"
-msgstr "código de operación de desenredo inválido"
-
-#: config/tc-arm.c:5070 config/tc-arm.c:31769
-#, c-format
-msgid "unrecognised float16 format \"%s\""
-msgstr "formato float16 no reconocido «%s»"
-
-#: config/tc-arm.c:5081
-msgid "float16 format cannot be set more than once, ignoring."
-msgstr "el formato float16 no puede establecerse más de una vez; se descarta."
-
-#: config/tc-arm.c:5094
-msgid "the floating-point format has not been set (or has been disabled)"
-msgstr "el formato de coma flotante no se ha establecido (o se ha deshabilitado)"
-
-#: config/tc-arm.c:5211 config/tc-arm.c:6201 config/tc-arm.c:11469
-#: config/tc-arm.c:12002 config/tc-arm.c:14133 config/tc-arm.c:16084
-#: config/tc-arm.c:16119 config/tc-arm.c:17047 config/tc-arm.c:18960
-#: config/tc-arm.c:18968 config/tc-arm.c:18975 config/tc-arm.c:20635
-#: config/tc-arm.c:28766 config/tc-arm.c:28830 config/tc-arm.c:28838
-#: config/tc-metag.c:5174 config/tc-z8k.c:1161 config/tc-z8k.c:1171
-msgid "immediate value out of range"
-msgstr "valor inmediato fuera de rango"
-
-#: config/tc-arm.c:5474
-msgid "'UXTW' not allowed here"
-msgstr "no se permite 'UXTW' aquí"
-
-#: config/tc-arm.c:5482
-msgid "'LSL' or 'ASR' required"
-msgstr "'LSL' o 'ASR' requerido"
-
-#: config/tc-arm.c:5490
-msgid "'LSL' required"
-msgstr "'LSL' requerido"
-
-#: config/tc-arm.c:5498
-msgid "'ASR' required"
-msgstr "'ASR' requerido"
-
-#: config/tc-arm.c:5505
-msgid "'UXTW' required"
-msgstr "'UXTW' requerido"
-
-#: config/tc-arm.c:5584
-msgid "invalid rotation"
-msgstr "rotación no válida"
-
-#: config/tc-arm.c:5766 config/tc-arm.c:5979
-msgid "unknown group relocation"
-msgstr "reubicación de grupo desconocida"
-
-#: config/tc-arm.c:5802
-msgid "alignment must be constant"
-msgstr "el alineamiento debe ser constante"
-
-#: config/tc-arm.c:6013
-msgid "this group relocation is not allowed on this instruction"
-msgstr "esta reubicación de grupo no se permite en esta instrucción"
-
-#: config/tc-arm.c:6069
-msgid "'}' expected at end of 'option' field"
-msgstr "se esperaba '}' al final del campo 'option'"
-
-#: config/tc-arm.c:6074
-msgid "cannot combine index with option"
-msgstr "no se puede combinar índice con opción"
-
-#: config/tc-arm.c:6339
-msgid "unexpected bit specified after APSR"
-msgstr "no se esperaba el bit especificado después de APSR"
-
-#: config/tc-arm.c:6351
-msgid "selected processor does not support DSP extension"
-msgstr "el procesador seleccionado no admite la extensión DSP"
-
-#: config/tc-arm.c:6363
-msgid "bad bitmask specified after APSR"
-msgstr "se especificó una máscara de bit incorrecta tras APSR"
-
-#: config/tc-arm.c:6387
-msgid "writing to APSR without specifying a bitmask is deprecated"
-msgstr "escribir en APSR sin especificar una máscara de bit está obsoleto"
-
-#: config/tc-arm.c:6399 config/tc-arm.c:13236 config/tc-arm.c:13281
-#: config/tc-arm.c:13285
-msgid "selected processor does not support requested special purpose register"
-msgstr "el procesador seleccionado no admite el registro de propósito especial solicitado"
-
-#: config/tc-arm.c:6404
-msgid "flag for {c}psr instruction expected"
-msgstr "se esperaba una opción para la instrucción {c}psr"
-
-#: config/tc-arm.c:6468
-msgid "unrecognized CPS flag"
-msgstr "no se reconoce la opción CPS"
-
-#: config/tc-arm.c:6475
-msgid "missing CPS flags"
-msgstr "faltan las opciones CPS"
-
-#: config/tc-arm.c:6498 config/tc-arm.c:6504
-msgid "valid endian specifiers are be or le"
-msgstr "los especificadores endian válidos son be o le"
-
-#: config/tc-arm.c:6526
-msgid "missing rotation field after comma"
-msgstr "falta el campo rotation tras la coma"
-
-#: config/tc-arm.c:6541
-msgid "rotation can only be 0, 8, 16, or 24"
-msgstr "la rotación solo puede ser 0, 8, 16 o 24"
-
-#: config/tc-arm.c:6570
-msgid "condition required"
-msgstr "se requiere una condición"
-
-#: config/tc-arm.c:6612 config/tc-arm.c:9731
-msgid "'[' expected"
-msgstr "se esperaba '['"
-
-#: config/tc-arm.c:6625
-msgid "',' expected"
-msgstr "se esperaba ','"
-
-#: config/tc-arm.c:6642
-msgid "invalid shift"
-msgstr "desplazamiento inválido"
-
-#: config/tc-arm.c:6722
-msgid "expected ARM or MVE vector register"
-msgstr "se esperaba un registro ARM o vectorial MVE"
-
-#: config/tc-arm.c:6771
-msgid "can't use Neon quad register here"
-msgstr "no se puede usar un registro Neon cuádruple aquí"
-
-#: config/tc-arm.c:6840
-msgid "expected <Rm> or <Dm> or <Qm> operand"
-msgstr "se esperaba un operando <Rm> o <Dm> o <Qm>"
-
-#: config/tc-arm.c:6940
-msgid "VFP single, double or MVE vector register expected"
-msgstr "Se esperaba un registro VFP de precisión simple o doble o un registro vectorial MVE"
-
-#: config/tc-arm.c:6960
-msgid "parse error"
-msgstr "error de análisis"
-
-#: config/tc-arm.c:7256
-msgid "immediate value 48 or 64 expected"
-msgstr "se esperaba valor inmediato 48 o 64"
-
-#. ISB can only take SY as an option.
-#: config/tc-arm.c:7305
-msgid "invalid barrier type"
-msgstr "tipo de barrera no válido"
-
-#: config/tc-arm.c:7474
-msgid "only floating point zero is allowed as immediate value"
-msgstr "solo se permite cero en punto flotante como valor inmediato"
-
-#: config/tc-arm.c:7569
-msgid "immediate value is out of range"
-msgstr "el valor inmediato está fuera de rango"
-
-#: config/tc-arm.c:7730
-msgid "iWMMXt data or control register expected"
-msgstr "se esperaba un registro de datos o de control iWMMXt"
-
-#: config/tc-arm.c:7771
-msgid "Banked registers are not available with this architecture."
-msgstr "Los registros en bancos no están disponibles para esta arquitectura."
-
-#: config/tc-arm.c:8019
-msgid "operand must be LR register"
-msgstr "el operando debe ser registro LR"
-
-#: config/tc-arm.c:8024
-msgid "operand must be SP register"
-msgstr "el operando debe ser registro SP"
-
-#: config/tc-arm.c:8029
-msgid "operand must be r12"
-msgstr "el operando debe ser r12"
-
-#: config/tc-arm.c:8100 config/tc-score.c:260
-msgid "garbage following instruction"
-msgstr "basura a continuación de la instrucción"
-
-#. If REG is R13 (the stack pointer), warn that its use is
-#. deprecated.
-#: config/tc-arm.c:8150
-msgid "use of r13 is deprecated"
-msgstr "el uso de r13 es obsoleto"
-
-#: config/tc-arm.c:8168 config/tc-arm.c:20335
-msgid "scalar fp16 instruction cannot be conditional, the behaviour is UNPREDICTABLE"
-msgstr "una instrucción fp16 escalar no puede ser condicional, el comportamiento es IMPREDECIBLE"
-
-#: config/tc-arm.c:8243
-msgid "D register out of range for selected VFP version"
-msgstr "el registro D fuera de rango para la versión VFP seleccionada"
-
-#: config/tc-arm.c:8340 config/tc-arm.c:11158
-msgid "Instruction does not support =N addresses"
-msgstr "La instrucción no admite las direcciones =N"
-
-#: config/tc-arm.c:8348
-msgid "instruction does not accept preindexed addressing"
-msgstr "la instrucción no acepta el direccionamiento preindexado"
-
-#. unindexed - only for coprocessor
-#: config/tc-arm.c:8364 config/tc-arm.c:11221
-msgid "instruction does not accept unindexed addressing"
-msgstr "la instrucción no acepta el direccionamiento sin indexar"
-
-#: config/tc-arm.c:8372
-msgid "destination register same as write-back base"
-msgstr "el registro de destino es el mismo que la base de retroescritura"
-
-#: config/tc-arm.c:8373
-msgid "source register same as write-back base"
-msgstr "el registro de origen es el mismo que la base de retroescritura"
-
-#: config/tc-arm.c:8423
-msgid "use of PC in this instruction is deprecated"
-msgstr "el uso de PC en esta instrucción está obsoleto"
-
-#: config/tc-arm.c:8446
-msgid "instruction does not accept scaled register index"
-msgstr "la instrucción no acepta el índice de registro escalado"
-
-#: config/tc-arm.c:8749
-msgid "invalid pseudo operation"
-msgstr "pseudo operación no válida"
-
-#. FIXME: The code that was here previously could not
-#. work. Firstly, it tried to convert a floating point
-#. number into an extended precision format, but only
-#. provided a buffer of 5 littlenums, which was too
-#. small. Secondly, it then didn't deal with the value
-#. converted correctly, just reading out the first 4
-#. littlenum fields and assuming that could be used
-#. directly.
-#.
-#. I think the code was intended to handle expressions
-#. such as:
-#.
-#. LDR r0, =1.0
-#. VLDR d0, =55.3
-#.
-#. but the parsers currently don't permit floating-point
-#. literal values to be written this way, so this code
-#. is probably unreachable. To be safe, we simply
-#. return an error here.
-#: config/tc-arm.c:8791
-msgid "constant expression not supported"
-msgstr "no se admiten las expresiones constantes"
-
-#: config/tc-arm.c:8995
-msgid "invalid co-processor operand"
-msgstr "operando de coprocesador no válido"
-
-#: config/tc-arm.c:9011
-msgid "instruction does not support unindexed addressing"
-msgstr "la instrucción no admite el direccionamiento sin indexar"
-
-#: config/tc-arm.c:9026
-msgid "pc may not be used with write-back"
-msgstr "pc no puede utilizarse con retroescritura"
-
-#: config/tc-arm.c:9031
-msgid "instruction does not support writeback"
-msgstr "la instrucción no admite retroescritura"
-
-#: config/tc-arm.c:9137
-msgid "Rn must not overlap other operands"
-msgstr "Rn no debe solaparse con otros operandos"
-
-#: config/tc-arm.c:9142
-msgid "swp{b} use is obsoleted for ARMv8 and later"
-msgstr "el uso de swp{b} es obsoleto para ARMv8 y posterior"
-
-#: config/tc-arm.c:9145
-msgid "swp{b} use is deprecated for ARMv6 and ARMv7"
-msgstr "el uso de swp{b} es obsoleto para ARMv6 y ARMv7"
-
-#: config/tc-arm.c:9257 config/tc-arm.c:9276 config/tc-arm.c:9289
-#: config/tc-arm.c:11839 config/tc-arm.c:11870 config/tc-arm.c:11892
-msgid "bit-field extends past end of register"
-msgstr "el campo de bits se extiende más allá del final del registro"
-
-#: config/tc-arm.c:9319
-msgid "the only valid suffixes here are '(plt)' and '(tlscall)'"
-msgstr "los únicos sufijos válidos aquí son '(plt)' y '(tlscall)'"
-
-#: config/tc-arm.c:9372
-msgid "use of r15 in blx in ARM mode is not really useful"
-msgstr "el uso de r15 en blx en modo ARM no es realmente útil"
-
-#: config/tc-arm.c:9394
-msgid "use of r15 in bx in ARM mode is not really useful"
-msgstr "el uso de r15 en bx en modo ARM no es realmente útil"
-
-#: config/tc-arm.c:9420
-msgid "use of r15 in bxj is not really useful"
-msgstr "el uso de r15 en bxj no es realmente útil"
-
-#: config/tc-arm.c:9468
-msgid "This coprocessor register access is deprecated in ARMv8"
-msgstr "Este acceso a registro del coprocesador es obsoleto en ARMv8"
-
-#: config/tc-arm.c:9676 config/tc-arm.c:9685
-msgid "writeback of base register is UNPREDICTABLE"
-msgstr "la retroescritura del registro base es IMPREDECIBLE"
-
-#: config/tc-arm.c:9679
-msgid "writeback of base register when in register list is UNPREDICTABLE"
-msgstr "la retroescritura del registro base cuando está en la lista de registros es IMPREDECIBLE"
-
-#: config/tc-arm.c:9689
-msgid "if writeback register is in list, it must be the lowest reg in the list"
-msgstr "si el registro de retroescritura está en la lista, debe ser el registro más bajo en la lista"
-
-#: config/tc-arm.c:9726
-msgid "first transfer register must be even"
-msgstr "el primer registro de transferencia debe ser par"
-
-#: config/tc-arm.c:9729
-msgid "can only transfer two consecutive registers"
-msgstr "solamente se pueden transferir dos registros consecutivos"
-
-#. If op 1 were present and equal to PC, this function wouldn't
-#. have been called in the first place.
-#. If op 2 were present and equal to PC, this function wouldn't
-#. have been called in the first place.
-#: config/tc-arm.c:9730 config/tc-arm.c:9800 config/tc-arm.c:10531
-#: config/tc-arm.c:12725
-msgid "r14 not allowed here"
-msgstr "no se permite r14 aquí"
-
-#: config/tc-arm.c:9742
-msgid "base register written back, and overlaps second transfer register"
-msgstr "el registro base se escribió hacia atrás, y se solapa con el segundo registro de transferencia"
-
-#: config/tc-arm.c:9752
-msgid "index register overlaps transfer register"
-msgstr "el registro de índice se solapa con el registro de transferencia"
-
-#: config/tc-arm.c:9781 config/tc-arm.c:10498
-msgid "offset must be zero in ARM encoding"
-msgstr "el desplazamiento debe ser cero en codificación ARM"
-
-#: config/tc-arm.c:9794 config/tc-arm.c:10525
-msgid "even register required"
-msgstr "se requiere un registro par"
-
-#: config/tc-arm.c:9797
-msgid "can only load two consecutive registers"
-msgstr "solamente se pueden cargar dos registros consecutivos"
-
-#: config/tc-arm.c:9815
-msgid "ldr to register 15 must be 4-byte aligned"
-msgstr "ldr al registro 15 debe estar alineado a 4-bytes"
-
-#: config/tc-arm.c:9838 config/tc-arm.c:9870
-msgid "this instruction requires a post-indexed address"
-msgstr "esta instrucción requiere una dirección post-indexada"
-
-#: config/tc-arm.c:9897
-msgid "Rd and Rm should be different in mla"
-msgstr "Rd y Rm deberían ser diferentes en mla"
-
-#: config/tc-arm.c:9924 config/tc-arm.c:13100
-msgid ":lower16: not allowed in this instruction"
-msgstr ":lower16: no permitido en esta instrucción"
-
-#: config/tc-arm.c:9926 config/tc-arm.c:13105
-msgid ":upper16: not allowed in this instruction"
-msgstr ":upper16: no permitido en esta instrucción"
-
-#: config/tc-arm.c:9943
-msgid "operand 1 must be FPSCR"
-msgstr "el operando 1 debe ser FPSCR"
-
-#: config/tc-arm.c:9996 config/tc-arm.c:10005 config/tc-arm.c:10059
-#: config/tc-arm.c:10068
-msgid "selected processor does not support instruction"
-msgstr "el procesador seleccionado no admite la instrucción"
-
-#: config/tc-arm.c:10008 config/tc-arm.c:10071
-msgid "accessing MVE system register without MVE is UNPREDICTABLE"
-msgstr "acceder al registro del sistema MVE sin MVE es IMPREDECIBLE"
-
-#: config/tc-arm.c:10099 config/tc-arm.c:13219
-msgid "bad register for mrs"
-msgstr "registro incorrecto para mrs"
-
-#: config/tc-arm.c:10106 config/tc-arm.c:13243
-msgid "'APSR', 'CPSR' or 'SPSR' expected"
-msgstr "se esperaba 'APSR', 'CPSR' o 'SPSR'"
-
-#: config/tc-arm.c:10147
-msgid "Rd and Rm should be different in mul"
-msgstr "Rd y Rm deberían ser diferentes en mul"
-
-#: config/tc-arm.c:10166 config/tc-arm.c:10443 config/tc-arm.c:13382
-msgid "rdhi and rdlo must be different"
-msgstr "rdhi y rdlo deben ser diferentes"
-
-#: config/tc-arm.c:10172
-msgid "rdhi, rdlo and rm must all be different"
-msgstr "rdhi, rdlo y rm deben ser todos diferentes"
-
-#: config/tc-arm.c:10238
-msgid "'[' expected after PLD mnemonic"
-msgstr "se esperaba '[' después del mnemónico PLD"
-
-#: config/tc-arm.c:10240 config/tc-arm.c:10255
-msgid "post-indexed expression used in preload instruction"
-msgstr "se utilizó una expresión post-indexada en la instrucción de precarga"
-
-#: config/tc-arm.c:10242 config/tc-arm.c:10257
-msgid "writeback used in preload instruction"
-msgstr "se utilicó retroescritura en la instrucción de precarga"
-
-#: config/tc-arm.c:10244 config/tc-arm.c:10259
-msgid "unindexed addressing used in preload instruction"
-msgstr "se utilizó un direccionamiento sin indexar en la instrucción de precarga"
-
-#: config/tc-arm.c:10253
-msgid "'[' expected after PLI mnemonic"
-msgstr "se esperaba '[' tras el mnemónico PLI"
-
-#: config/tc-arm.c:10268 config/tc-arm.c:13551
-msgid "push/pop do not support {reglist}^"
-msgstr "push/pop no admiten {reglist}^"
-
-#: config/tc-arm.c:10346 config/tc-arm.c:13728
-msgid "setend use is deprecated for ARMv8"
-msgstr "el uso de setend está obsoleto para ARMv8"
-
-#: config/tc-arm.c:10367 config/tc-arm.c:13789 config/tc-arm.c:13821
-#: config/tc-arm.c:13864
-msgid "extraneous shift as part of operand to shift insn"
-msgstr "desplazamiento extraño como parte del operando para la insn de desplazamiento"
-
-#: config/tc-arm.c:10377 config/tc-arm.c:13927
-msgid "immediate too large (bigger than 0xF)"
-msgstr "inmediato demasiado grande (mayor que 0xF)"
-
-#: config/tc-arm.c:10401 config/tc-arm.c:10410
-msgid "selected processor does not support SETPAN instruction"
-msgstr "el procesador seleccionado no admite instrucción SETPAN"
-
-#: config/tc-arm.c:10469
-msgid "SRS base register must be r13"
-msgstr "el registro base SRS debe ser r13"
-
-#: config/tc-arm.c:10528
-msgid "can only store two consecutive registers"
-msgstr "solamente se pueden almacenar dos registros consecutivos"
-
-#: config/tc-arm.c:10650 config/tc-arm.c:10671
-msgid "only two consecutive VFP SP registers allowed here"
-msgstr "solamente se permiten dos registros SP VFP consecutivos aquí"
-
-#: config/tc-arm.c:10699 config/tc-arm.c:10714
-msgid "this addressing mode requires base-register writeback"
-msgstr "este modo de direccionamiento requiere retroescritura del registro base"
-
-#. If srcsize is 16, inst.operands[1].imm must be in the range 0-16.
-#. i.e. immbits must be in range 0 - 16.
-#: config/tc-arm.c:10843
-msgid "immediate value out of range, expected range [0, 16]"
-msgstr "valor inmediato fuera de rango, se esperaba el rango [0, 16]"
-
-#. If srcsize is 32, inst.operands[1].imm must be in the range 1-32.
-#. i.e. immbits must be in range 0 - 31.
-#: config/tc-arm.c:10850
-msgid "immediate value out of range, expected range [1, 32]"
-msgstr "valor inmediato fuera de rango, se esperaba el rango [1, 32]"
-
-#: config/tc-arm.c:10891
-msgid "only r15 allowed here"
-msgstr "solo se permite r15 aquí"
-
-#: config/tc-arm.c:11026
-msgid "immediate operand requires iWMMXt2"
-msgstr "el operando inmediato requiere iWMMXt2"
-
-#: config/tc-arm.c:11119
-msgid "shift by register not allowed in thumb mode"
-msgstr "no se permite desplazar por registro en modo «thumb»"
-
-#: config/tc-arm.c:11131 config/tc-arm.c:13973 config/tc-arm.c:28057
-msgid "shift expression is too large"
-msgstr "la expresión de desplazamiento es demasiado grande"
-
-#: config/tc-arm.c:11164
-msgid "cannot use register index with this instruction"
-msgstr "no se puede utilizar índice de registro con esta instrucción"
-
-#: config/tc-arm.c:11166
-msgid "Thumb does not support negative register indexing"
-msgstr "Thumb no admite el indexado negativo de registro"
-
-#: config/tc-arm.c:11168
-msgid "Thumb does not support register post-indexing"
-msgstr "Thumb no admite el post-indexado de registro"
-
-#: config/tc-arm.c:11170
-msgid "Thumb does not support register indexing with writeback"
-msgstr "Thumb no admite el indexado de registro con retroescritura"
-
-#: config/tc-arm.c:11172
-msgid "Thumb supports only LSL in shifted register indexing"
-msgstr "Thumb solo admite LSL en el indexado desplazado de registro"
-
-#: config/tc-arm.c:11181 config/tc-arm.c:19703
-msgid "shift out of range"
-msgstr "desplazamiento fuera de rango"
-
-#: config/tc-arm.c:11190
-msgid "cannot use writeback with this instruction"
-msgstr "no se puede usar retroescritura con esta instrucción"
-
-#: config/tc-arm.c:11211
-msgid "cannot use post-indexing with PC-relative addressing"
-msgstr "no se puede usar post-indexado con el direccionamiento relativo al PC"
-
-#: config/tc-arm.c:11212
-msgid "cannot use post-indexing with this instruction"
-msgstr "no se puede usar post-indexado con esta instrucción"
-
-#: config/tc-arm.c:11450
-msgid "cannot honor width suffix"
-msgstr "no se puede honrar el sufijo de anchura"
-
-#: config/tc-arm.c:11464
-msgid "only SUBS PC, LR, #const allowed"
-msgstr "solo se permiten SUBS PC, LR, #const"
-
-#: config/tc-arm.c:11547 config/tc-arm.c:11707 config/tc-arm.c:11804
-#: config/tc-arm.c:13180 config/tc-arm.c:13488
-msgid "shift must be constant"
-msgstr "el desplazamiento debe ser constante"
-
-#: config/tc-arm.c:11552
-msgid "shift value over 3 not allowed in thumb mode"
-msgstr "no se permite el valor de desplazamiento superior a 3 en modo «thumb»"
-
-#: config/tc-arm.c:11554
-msgid "only LSL shift allowed in thumb mode"
-msgstr "solamente se permite el desplazamiento LSL en modo «thumb»"
-
-#: config/tc-arm.c:11578 config/tc-arm.c:11722 config/tc-arm.c:11819
-#: config/tc-arm.c:13193
-msgid "unshifted register required"
-msgstr "se requiere un registro sin desplazar"
-
-#: config/tc-arm.c:11593 config/tc-arm.c:11830 config/tc-arm.c:13343
-msgid "dest must overlap one source register"
-msgstr "dest debe solaparse con un registro fuente"
-
-#: config/tc-arm.c:11725 config/tc-csky.c:6026
-msgid "dest and source1 must be the same register"
-msgstr "dest y source1 deben ser el mismo registro"
-
-#: config/tc-arm.c:11965
-msgid "selected architecture does not support wide conditional branch instruction"
-msgstr "la arquitectura seleccionada no admite la instrucción de bifurcación condicional ancha"
-
-#: config/tc-arm.c:11998
-msgid "instruction is always unconditional"
-msgstr "la instrucción es siempre incondicional"
-
-#: config/tc-arm.c:12173
-msgid "selected processor does not support 'A' form of this instruction"
-msgstr "el procesador seleccionado no admite la forma 'A' de esta instrucción"
-
-#: config/tc-arm.c:12176
-msgid "Thumb does not support the 2-argument form of this instruction"
-msgstr "Thumb no admite la forma con 2 argumentos de esta instrucción"
-
-#: config/tc-arm.c:12301
-msgid "SP not allowed in register list"
-msgstr "SP no admitido en lista de registros"
-
-#: config/tc-arm.c:12305
-msgid "having the base register in the register list when using write back is UNPREDICTABLE"
-msgstr "tener el registro base en la lista de registros al usar retroescritura es IMPREDECIBLE"
-
-#: config/tc-arm.c:12313
-msgid "LR and PC should not both be in register list"
-msgstr "LR y PC no deberían estar ambos en la lista de registros"
-
-#: config/tc-arm.c:12321
-msgid "PC not allowed in register list"
-msgstr "PC no admitido en la lista de registros"
-
-#: config/tc-arm.c:12366
-msgid "Thumb load/store multiple does not support {reglist}^"
-msgstr "Thumb carga/almacenamiento múltiples no admite {reglist}^"
-
-#: config/tc-arm.c:12444 config/tc-arm.c:12478
-#, c-format
-msgid "value stored for r%d is UNKNOWN"
-msgstr "el valor almacenado para r%d es DESCONOCIDO"
-
-#: config/tc-arm.c:12471
-msgid "Thumb-2 instruction only valid in unified syntax"
-msgstr "Thumb-2 como instrucción solo válida en sintaxis unificada"
-
-#: config/tc-arm.c:12475 config/tc-arm.c:12485
-msgid "this instruction will write back the base register"
-msgstr "esta instrucción escribirá hacia atrás el registro base"
-
-#: config/tc-arm.c:12488
-msgid "this instruction will not write back the base register"
-msgstr "esta instrucción no escribirá hacia atrás el registro base"
-
-#: config/tc-arm.c:12519
-msgid "r14 not allowed as first register when second register is omitted"
-msgstr "no se permite r14 como primer registro cuando se omite el segundo registro"
-
-#: config/tc-arm.c:12619
-msgid "This instruction may be unpredictable if executed on M-profile cores with interrupts enabled."
-msgstr "Esta instrucción puede ser impredecible si se ejecuta en núcleos M-profile con interrupciones activadas."
-
-#: config/tc-arm.c:12648 config/tc-arm.c:12661 config/tc-arm.c:12697
-msgid "Thumb does not support this addressing mode"
-msgstr "Thumb no admite este modo de direccionamiento"
-
-#: config/tc-arm.c:12665
-msgid "byte or halfword not valid for base register"
-msgstr "byte o media palabra no válido para registro base"
-
-#: config/tc-arm.c:12668
-msgid "r15 based store not allowed"
-msgstr "no se permite el almacenamiento basado en r15"
-
-#: config/tc-arm.c:12670
-msgid "invalid base register for register offset"
-msgstr "registro base inválido para el desplazamiento del registro"
-
-#: config/tc-arm.c:12727
-msgid "r12 not allowed here"
-msgstr "r12 no permitido aquí"
-
-#: config/tc-arm.c:12733
-msgid "base register written back, and overlaps one of transfer registers"
-msgstr "registro base escrito atrás, y se solapa con uno de los registros de transferencia"
-
-#: config/tc-arm.c:12861
-#, c-format
-msgid "Use of r%u as a source register is deprecated when r%u is the destination register."
-msgstr "La utilización de r%u como registro origen está obsoleta cuando r%u es el registro destino."
-
-#: config/tc-arm.c:13056
-msgid "shifts in CMP/MOV instructions are only supported in unified syntax"
-msgstr "los desplazamientos en las instrucciones CMP/MOV solo se admiten en la sintaxis unificada"
-
-#: config/tc-arm.c:13084
-msgid "only lo regs allowed with immediate"
-msgstr "solo se permiten registros lo con inmediatos"
-
-#: config/tc-arm.c:13261
-msgid "Thumb encoding does not support an immediate here"
-msgstr "Thumb como codificación no admite un inmediato aquí"
-
-#: config/tc-arm.c:13348
-msgid "Thumb-2 MUL must not set flags"
-msgstr "MUL de Thumb-2 no debe establecer modificadores"
-
-#: config/tc-arm.c:13413
-msgid "Thumb does not support NOP with hints"
-msgstr "Thumb no admite NOP con pistas"
-
-#: config/tc-arm.c:13573 config/tc-arm.c:13585
-msgid "invalid register list to push/pop instruction"
-msgstr "lista de registros no válida para la instrucción push/pop"
-
-#: config/tc-arm.c:13848
-msgid "source1 and dest must be same register"
-msgstr "source1 y dest deben ser el mismo registro"
-
-#: config/tc-arm.c:13873
-msgid "ror #imm not supported"
-msgstr "no se admite ror #imm"
-
-#: config/tc-arm.c:13924
-msgid "SMC is not permitted on this architecture"
-msgstr "No se admite SMC en esta arquitectura"
-
-#: config/tc-arm.c:14090
-msgid "Thumb encoding does not support rotation"
-msgstr "Thumb como codificación no admite rotación"
-
-#: config/tc-arm.c:14110
-msgid "instruction requires register index"
-msgstr "la instrucción requiere un índice de registro"
-
-#: config/tc-arm.c:14120
-msgid "instruction does not allow shifted index"
-msgstr "la instrucción no permite un índice desplazado"
-
-#: config/tc-arm.c:14276 config/tc-arm.c:29201
-msgid "out of range label-relative fixup value"
-msgstr "valor de corrección relativo a etiqueta fuera de rango"
-
-#: config/tc-arm.c:14600
-msgid "invalid neon suffix for non neon instruction"
-msgstr "sufijo neon inválido para instrucción que no es neon"
-
-#: config/tc-arm.c:14995 config/tc-arm.c:15348 config/tc-arm.c:16833
-#: config/tc-arm.c:16913 config/tc-arm.c:16970 config/tc-arm.c:18851
-#: config/tc-arm.c:21039 config/tc-arm.c:21226
-msgid "invalid instruction shape"
-msgstr "aspecto de la instrucción no válido"
-
-#: config/tc-arm.c:15247
-msgid "types specified in both the mnemonic and operands"
-msgstr "tipos especificado tanto en mnemónico como en operandos"
-
-#: config/tc-arm.c:15284
-msgid "operand types can't be inferred"
-msgstr "no se pueden inferir los tipos de operando"
-
-#: config/tc-arm.c:15290
-msgid "type specifier has the wrong number of parts"
-msgstr "el especificador de tipo tiene un número incorrecto de partes"
-
-#: config/tc-arm.c:15376 config/tc-arm.c:19112 config/tc-arm.c:19119
-msgid "operand size must match register width"
-msgstr "el tamaño del operando debe coincidir con la anchura del registro"
-
-#: config/tc-arm.c:15398
-msgid "inconsistent types in Neon instruction"
-msgstr "tipos incoherente en la instrucción Neon"
-
-#: config/tc-arm.c:15819
-#, fuzzy
-#| msgid "zero flag is not valid for this instruction"
-msgid "Type is not allowed for this instruction"
-msgstr "marca cero no es válida para esta instrucción"
-
-#: config/tc-arm.c:15894
-#, fuzzy
-#| msgid "SVE vector register expected"
-msgid "MVE vector or ARM register expected"
-msgstr "SVE como vector esperaba registro"
-
-#: config/tc-arm.c:16011
-#, fuzzy
-#| msgid "immediate must be 1 or 2"
-msgid "immediate must be either 1, 2, 4 or 8"
-msgstr "el inmediato debe ser 1 o 2"
-
-#: config/tc-arm.c:16168
-#, fuzzy
-#| msgid "immediate value out of range, expected range [1, 32]"
-msgid "immediate operand expected in the range [1,8]"
-msgstr "valor inmediato fuera de rango, se esperaba el rango [1, 32]"
-
-#: config/tc-arm.c:16169
-#, fuzzy
-#| msgid "immediate value out of range, expected range [0, 16]"
-msgid "immediate operand expected in the range [1,16]"
-msgstr "valor inmediato fuera de rango, se esperaba el rango [0, 16]"
-
-#: config/tc-arm.c:16311
-#, fuzzy
-#| msgid "expected }"
-msgid "expected LR"
-msgstr "se esperaba }"
-
-#: config/tc-arm.c:16810 config/tc-arm.c:16890 config/tc-arm.c:18487
-#: config/tc-arm.c:20320
-msgid "immediate out of range for shift"
-msgstr "inmediato fuera de rango para desplazamiento"
-
-#: config/tc-arm.c:17104
-msgid "first and second operands shall be the same register"
-msgstr "el primer y segundo operandos deben ser el mismo registro"
-
-#: config/tc-arm.c:17218 config/tc-arm.c:17280
-#, fuzzy
-#| msgid "destination register same as write-back base"
-msgid "destination register and offset register may not be the same"
-msgstr "el registro destino es el mismo que la base de retroescritura"
-
-#: config/tc-arm.c:17230 config/tc-arm.c:17349
-#, fuzzy
-#| msgid "immediate value out of range, expected range [0, 16]"
-msgid "immediate must be a multiple of 4 in the range of +/-[0,508]"
-msgstr "valor inmediato fuera de rango, se esperaba el rango [0, 16]"
-
-#: config/tc-arm.c:17232
-#, fuzzy
-#| msgid "immediate value out of range, expected range [0, 16]"
-msgid "immediate must be a multiple of 8 in the range of +/-[0,1016]"
-msgstr "valor inmediato fuera de rango, se esperaba el rango [0, 16]"
-
-#: config/tc-arm.c:17253
-msgid "can not shift offsets when accessing less than half-word"
-msgstr ""
-
-#: config/tc-arm.c:17255
-msgid "shift immediate must be 1, 2 or 3 for half-word, word or double-word accesses respectively"
-msgstr ""
-
-#: config/tc-arm.c:17342
-#, fuzzy
-#| msgid "number of registers must be in the range [1:4]"
-msgid "immediate must be in the range of +/-[0,127]"
-msgstr "el número de registros debe estar en el rango [1:4]"
-
-#: config/tc-arm.c:17345
-#, fuzzy
-#| msgid "immediate value out of range, expected range [0, 16]"
-msgid "immediate must be a multiple of 2 in the range of +/-[0,254]"
-msgstr "valor inmediato fuera de rango, se esperaba el rango [0, 16]"
-
-#: config/tc-arm.c:17359 config/tc-arm.c:18185
-#, fuzzy
-#| msgid "SVE vector register expected"
-msgid "MVE vector register in the range [Q0..Q7] expected"
-msgstr "SVE como vector esperaba registro"
-
-#: config/tc-arm.c:17675 config/tc-arm.c:19542
-msgid "scalar out of range for multiply instruction"
-msgstr "escalar fuera de rango para la instrucción multiply"
-
-#: config/tc-arm.c:17763
-#, fuzzy
-#| msgid "scalar index must be constant"
-msgid "index must be in the range 0 to 3"
-msgstr "el índice escalar debe ser constante"
-
-#: config/tc-arm.c:17766
-#, fuzzy
-#| msgid "first transfer register must be even"
-msgid "indexed register must be less than 8"
-msgstr "primer registro de transferencia debe ser par"
-
-#: config/tc-arm.c:17967 config/tc-arm.c:21290
-msgid "Warning: 32-bit element size and same first and third operand makes instruction UNPREDICTABLE"
-msgstr ""
-
-#: config/tc-arm.c:18326
-msgid "instruction form not available on this architecture."
-msgstr "relleno de instrucción no disponible en esta arquitectura."
-
-#: config/tc-arm.c:18329
-msgid "this instruction implies use of ARMv8.1 AdvSIMD."
-msgstr ""
-
-#: config/tc-arm.c:18436 config/tc-arm.c:18461
-msgid "immediate out of range for insert"
-msgstr "inmediato fuera de rango para insert"
-
-#: config/tc-arm.c:18608
-msgid "immediate out of range for narrowing operation"
-msgstr "inmediato fuera de rango para la operación de estrechamiento"
-
-#: config/tc-arm.c:18755
-msgid "operands 0 and 1 must be the same register"
-msgstr "los operandos 0 y 1 debe ser el mismo registro"
-
-#: config/tc-arm.c:18861 config/tc-arm.c:21138
-msgid "invalid rounding mode"
-msgstr "modo entorno inválido"
-
-#: config/tc-arm.c:19332
-msgid "operand size must be specified for immediate VMOV"
-msgstr "el tamaño de operando se debe especificar para el inmediato VMOV"
-
-#: config/tc-arm.c:19342
-msgid "immediate has bits set outside the operand size"
-msgstr "el inmediato tiene bits definidos fuera del tamaño de operando"
-
-#: config/tc-arm.c:19577
-msgid "vfmal/vfmsl with FP16 type cannot be conditional, the behaviour is UNPREDICTABLE"
-msgstr ""
-
-#: config/tc-arm.c:19685
-msgid "Instruction form not available on this architecture."
-msgstr "Relleno de instrucción no disponible en esta arquitectura."
-
-#: config/tc-arm.c:19739
-msgid "Warning: 64-bit element size and same destination and source operands makes instruction UNPREDICTABLE"
-msgstr ""
-
-#: config/tc-arm.c:19744
-msgid "elements must be smaller than reversal region"
-msgstr "los elementos deben ser menores que la región de reversa"
-
-#: config/tc-arm.c:19836
-msgid "Index one must be [2,3] and index two must be two less than index one."
-msgstr ""
-
-#: config/tc-arm.c:19839
-#, fuzzy
-#| msgid "registers may not be the same"
-msgid "Destination registers may not be the same"
-msgstr "los registros quizá no son el mismo"
-
-#: config/tc-arm.c:20037 config/tc-arm.c:20120
-msgid "bad type for scalar"
-msgstr "tipo incorrecto para el escalar"
-
-#: config/tc-arm.c:20176
-msgid "immediate constant is valid both as a bit-pattern and a floating point value (using the fp value)"
-msgstr ""
-
-#: config/tc-arm.c:20228 config/tc-arm.c:20239
-msgid "VFP registers must be adjacent"
-msgstr "VFP como registros deben ser adyacentes"
-
-#: config/tc-arm.c:20329
-msgid "invalid suffix"
-msgstr "sufijo inválido"
-
-#: config/tc-arm.c:20483
-msgid "bad list length for table lookup"
-msgstr "longitud de lista incorrecta para la búsqueda de tabla"
-
-#: config/tc-arm.c:20516
-msgid "writeback (!) must be used for VLDMDB and VSTMDB"
-msgstr "se debe usar retroescritura (!) para VLDMDB y VSTMDB"
-
-#: config/tc-arm.c:20519 config/tc-arm.c:20545
-msgid "register list must contain at least 1 and at most 16 registers"
-msgstr "la lista de registros debe contener por lo menos 1 y cuando mucho 16 registros"
-
-#: config/tc-arm.c:20540
-#, fuzzy
-#| msgid "register list must contain at least 1 and at most 16 registers"
-msgid "register list must contain at least 1 and at most 32 registers"
-msgstr "la lista de registros debe contener por lo menos 1 y cuando mucho 16 registros"
-
-#: config/tc-arm.c:20593 config/tc-arm.c:20626
-msgid "Use of PC here is UNPREDICTABLE"
-msgstr "El uso de PC aquí es IMPREDECIBLE"
-
-#: config/tc-arm.c:20595
-msgid "Use of PC here is deprecated"
-msgstr "El uso de PC aquí es obsoleto"
-
-#: config/tc-arm.c:20629
-#, fuzzy
-#| msgid "instruction does not accept scaled register index"
-msgid "instruction does not accept register index"
-msgstr "la instrucción no acepta el índice de registro escalado"
-
-#: config/tc-arm.c:20632
-#, fuzzy
-#| msgid "instruction does not accept preindexed addressing"
-msgid "instruction does not accept PC-relative addressing"
-msgstr "la instrucción no acepta el direccionamiento preindexado"
-
-#: config/tc-arm.c:20654 config/tc-arm.c:20663
-#, fuzzy
-#| msgid "Instruction not supported by this architecture"
-msgid "Instruction not permitted on this architecture"
-msgstr "La instrucción no se admite en esta arquitectura"
-
-#: config/tc-arm.c:20712
-msgid "bad alignment"
-msgstr "alineamiento incorrecta"
-
-#: config/tc-arm.c:20729
-msgid "bad list type for instruction"
-msgstr "tipo de lista incorrecto para la instrucción"
-
-#: config/tc-arm.c:20773
-msgid "unsupported alignment for instruction"
-msgstr "no se admite la alineamiento para la instrucción"
-
-#: config/tc-arm.c:20792 config/tc-arm.c:20886 config/tc-arm.c:20898
-#: config/tc-arm.c:20908 config/tc-arm.c:20922
-msgid "bad list length"
-msgstr "longitud de lista incorrecta"
-
-#: config/tc-arm.c:20797
-msgid "stride of 2 unavailable when element size is 8"
-msgstr "no está disponible el estribo de 2 cuando el tamaño del elemento es 8"
-
-#: config/tc-arm.c:20830 config/tc-arm.c:20906
-msgid "can't use alignment with this instruction"
-msgstr "no se puede usar la alineamiento con esta instrucción"
-
-#: config/tc-arm.c:20978
-msgid "post-index must be a register"
-msgstr "el post-índice debe ser un registro"
-
-#: config/tc-arm.c:20980
-msgid "bad register for post-index"
-msgstr "el registro incorrecto para el post-índice"
-
-#: config/tc-arm.c:21202
-msgid "scalar out of range"
-msgstr "escalar fuera de rango"
-
-#: config/tc-arm.c:21335
-msgid "Dot Product instructions cannot be conditional, the behaviour is UNPREDICTABLE"
-msgstr "Instrucciones Dot Product no puede ser condicional, el comportamiento es IMPREDECIBLE"
-
-#: config/tc-arm.c:21410 config/tc-arm.c:21438 config/tc-arm.c:22120
-#, fuzzy
-#| msgid "immediate must be 1 or 2"
-msgid "index must be 0 or 1"
-msgstr "el inmediato debe ser 1 o 2"
-
-#: config/tc-arm.c:21413 config/tc-arm.c:21441 config/tc-arm.c:22123
-#, fuzzy
-#| msgid "ending register must be r15"
-msgid "indexed register must be less than 16"
-msgstr "el registro final debe ser r15"
-
-#: config/tc-arm.c:21479
-msgid "Register must be r0-r14 except r13, or APSR_nzcv."
-msgstr ""
-
-#: config/tc-arm.c:21482
-#, fuzzy
-#| msgid "Register must be address register"
-msgid "Register must be an even register between r0-r10."
-msgstr "El registro debe ser un registro direccional"
-
-#: config/tc-arm.c:21507
-#, fuzzy
-#| msgid "co-processor offset out of range"
-msgid "CDE Coprocessor must be in range 0-7"
-msgstr "desplazamiento de coprocesador fuera de rango"
-
-#: config/tc-arm.c:21541
-#, fuzzy
-#| msgid "invalid destination register"
-msgid "cx1d requires consecutive destination registers."
-msgstr "invalida registro destino"
-
-#: config/tc-arm.c:21571
-#, fuzzy
-#| msgid "invalid destination register"
-msgid "cx2d requires consecutive destination registers."
-msgstr "invalida registro destino"
-
-#: config/tc-arm.c:21610
-#, fuzzy
-#| msgid "invalid destination register"
-msgid "cx3d requires consecutive destination registers."
-msgstr "invalida registro destino"
-
-#: config/tc-arm.c:21802
-#, fuzzy
-#| msgid "last register must be r7"
-msgid "'q' register must be in range 0-7"
-msgstr "el último registro debe ser r7"
-
-#: config/tc-arm.c:21805
-#, fuzzy
-#| msgid "ending register must be r15"
-msgid "'d' register must be in range 0-15"
-msgstr "el registro final debe ser r15"
-
-#: config/tc-arm.c:21807
-#, fuzzy
-#| msgid "number of registers must be in the range [1:4]"
-msgid "'s' register must be in range 0-31"
-msgstr "el número de registros debe estar en el rango [1:4]"
-
-#: config/tc-arm.c:21862
-#, fuzzy
-#| msgid "instruction requires register index"
-msgid "vcx instructions with Q registers require MVE"
-msgstr "la instrucción requiere un índice de registro"
-
-#: config/tc-arm.c:21867
-msgid "vcx instructions with S or D registers require either MVE or Armv8-M floating point extension."
-msgstr ""
-
-#: config/tc-arm.c:21883
-msgid "vcx1 with S or D registers takes immediate within 0-2047"
-msgstr ""
-
-#: config/tc-arm.c:21899
-msgid "vcx2 with S or D registers takes immediate within 0-63"
-msgstr ""
-
-#: config/tc-arm.c:21914
-msgid "vcx2 with S or D registers takes immediate within 0-7"
-msgstr ""
-
-#: config/tc-arm.c:22504 config/tc-arm.c:22625
-msgid "conditional infixes are deprecated in unified syntax"
-msgstr "los infijos condicionales son obsoletos en la sintaxis unificada"
-
-#: config/tc-arm.c:22836
-msgid "Warning: conditional outside an IT block for Thumb."
-msgstr "Aviso: condicional fuera de un bloque IT para Thumb."
-
-#: config/tc-arm.c:23164
-msgid "Short branches, Undefined, SVC, LDM/STM"
-msgstr ""
-
-#: config/tc-arm.c:23165
-msgid "Miscellaneous 16-bit instructions"
-msgstr "Instrucciones 16-bit miscelánea"
-
-#: config/tc-arm.c:23166
-msgid "ADR"
-msgstr "DIR"
-
-#: config/tc-arm.c:23167
-msgid "Literal loads"
-msgstr "Cargas literales"
-
-#: config/tc-arm.c:23168
-msgid "Hi-register ADD, MOV, CMP, BX, BLX using pc"
-msgstr "Registro-Superior ADD, MOV, CMP, BX, BLX utilizando pc"
-
-#: config/tc-arm.c:23169
-msgid "Hi-register ADD, MOV, CMP using pc"
-msgstr "Registro-Superior ADD, MOV, CMP utilizando pc"
-
-#. NOTE: 0x00dd is not the real encoding, instead, it is the 'tvalue'
-#. field in asm_opcode. 'tvalue' is used at the stage this check happen.
-#: config/tc-arm.c:23172
-msgid "ADD/SUB sp, sp #imm"
-msgstr "ADD/SUB sp, sp #imm"
-
-#: config/tc-arm.c:23194
-msgid "IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R"
-msgstr ""
-
-#: config/tc-arm.c:23206
-#, c-format
-msgid "IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: %s"
-msgstr ""
-
-#: config/tc-arm.c:23220
-msgid "IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R"
-msgstr ""
-
-#: config/tc-arm.c:23338
-#, c-format
-msgid "bad instruction `%s'"
-msgstr "la instrucción incorrecta «%s»"
-
-#: config/tc-arm.c:23344
-msgid "s suffix on comparison instruction is deprecated"
-msgstr "sufijo s sobre comparación de instrucción es obsoleto"
-
-#: config/tc-arm.c:23364
-msgid "SVC is not permitted on this architecture"
-msgstr "No se admite SVC en esta arquitectura"
-
-#: config/tc-arm.c:23366
-#, c-format
-msgid "selected processor does not support `%s' in Thumb mode"
-msgstr "el procesador seleccionado no admite «%s» dentro de modo Thumb"
-
-#: config/tc-arm.c:23372
-msgid "Thumb does not support conditional execution"
-msgstr "Thumb no admite la ejecución condicional"
-
-#: config/tc-arm.c:23392
-#, c-format
-msgid "selected processor does not support 32bit wide variant of instruction `%s'"
-msgstr "el procesador seleccionado no admite variante de 32 bit de instrucción «%s»"
-
-#: config/tc-arm.c:23395
-#, c-format
-msgid "selected processor does not support `%s' in Thumb-2 mode"
-msgstr "el procesador seleccionado no admite «%s» modo Thumb-2"
-
-#: config/tc-arm.c:23420
-#, c-format
-msgid "cannot honor width suffix -- `%s'"
-msgstr "no se puede honrar el sufijo de anchura -- «%s»"
-
-#: config/tc-arm.c:23462
-#, c-format
-msgid "selected processor does not support `%s' in ARM mode"
-msgstr "el procesador seleccionado no admite «%s» en modo ARM"
-
-#: config/tc-arm.c:23467
-#, c-format
-msgid "width suffixes are invalid in ARM mode -- `%s'"
-msgstr "los sufijos de anchura son inválidos en modo ARM -- «%s»"
-
-#: config/tc-arm.c:23500
-#, c-format
-msgid "attempt to use an ARM instruction on a Thumb-only processor -- `%s'"
-msgstr "se intentó usar una instrucción ARM en un procesador que solo es Thumb -- «%s»"
-
-#: config/tc-arm.c:23518
-#, c-format
-msgid "section '%s' finished with an open IT block."
-msgstr "la sección «%s» terminó con un bloque IT abierto."
-
-#: config/tc-arm.c:23521
-#, fuzzy, c-format
-#| msgid "section '%s' finished with an open IT block."
-msgid "section '%s' finished with an open VPT/VPST block."
-msgstr "la sección «%s» terminó con un bloque IT abierto."
-
-#: config/tc-arm.c:23528
-msgid "file finished with an open IT block."
-msgstr "el fichero terminó con un bloque IT abierto."
-
-#: config/tc-arm.c:23530
-#, fuzzy
-#| msgid "file finished with an open IT block."
-msgid "file finished with an open VPT/VPST block."
-msgstr "el fichero terminó con un bloque IT abierto."
-
-#: config/tc-arm.c:26696
-#, c-format
-msgid "alignments greater than %d bytes not supported in .text sections."
-msgstr "no se admiten las alineaciones más grandes que %d bytes en las secciones .text."
-
-#: config/tc-arm.c:26962 config/tc-ia64.c:3588
-#, c-format
-msgid "Group section `%s' has no group signature"
-msgstr "Sección de grupo «%s» no tiene firma de grupo"
-
-#: config/tc-arm.c:27008
-msgid "handlerdata in cantunwind frame"
-msgstr "handlerdata en un marco cantunwind"
-
-#: config/tc-arm.c:27026
-msgid "too many unwind opcodes for personality routine 0"
-msgstr "demasiados códigos operacionales de desenredo para la rutina personality 0"
-
-#: config/tc-arm.c:27059
-msgid "attempt to recreate an unwind entry"
-msgstr "trata recrear una entrada relajada"
-
-#: config/tc-arm.c:27070
-msgid "too many unwind opcodes"
-msgstr "demasiados códigos operacionales de desenredo"
-
-#: config/tc-arm.c:27374
-#, c-format
-msgid "[-mwarn-syms]: Assignment makes a symbol match an ARM instruction: %s"
-msgstr ""
-
-#: config/tc-arm.c:27736 config/tc-arm.c:27804
-#, c-format
-msgid "symbol %s is in a different section"
-msgstr "el símbolo %s está en una sección diferente"
-
-#: config/tc-arm.c:27738 config/tc-arm.c:27806
-#, c-format
-msgid "symbol %s is weak and may be overridden later"
-msgstr "el símbolo %s es débil y se puede sobreescribir tras"
-
-#: config/tc-arm.c:27783 config/tc-arm.c:28155
-#, c-format
-msgid "invalid constant (%lx) after fixup"
-msgstr "constante no válida (%lx) tras la compostura"
-
-#: config/tc-arm.c:27839
-#, c-format
-msgid "unable to compute ADRL instructions for PC offset of 0x%lx"
-msgstr "incapaz de calcular las instrucciones ADRL para el desplazamiento de PC de 0x%lx"
-
-#: config/tc-arm.c:27875 config/tc-arm.c:27905
-msgid "invalid literal constant: pool needs to be closer"
-msgstr "constante literal no válida: el conjunto necesita estar más cerca"
-
-#: config/tc-arm.c:27878 config/tc-arm.c:27927
-#, c-format
-msgid "bad immediate value for offset (%ld)"
-msgstr "valor inmediato incorrecto para el desplazamiento (%ld)"
-
-#: config/tc-arm.c:27908
-#, c-format
-msgid "bad immediate value for 8-bit offset (%ld)"
-msgstr "valor inmediato incorrecto para el desplazamiento de 8-bit (%ld)"
-
-#: config/tc-arm.c:27968
-msgid "offset not a multiple of 4"
-msgstr "desplazamiento no un múltiplo de 4"
-
-#: config/tc-arm.c:28171
-msgid "invalid smc expression"
-msgstr "expresión smc no válida"
-
-#: config/tc-arm.c:28181
-msgid "invalid hvc expression"
-msgstr "expresión hvc no válida"
-
-#: config/tc-arm.c:28192 config/tc-arm.c:28201
-msgid "invalid swi expression"
-msgstr "expresión swi no válida"
-
-#: config/tc-arm.c:28211
-msgid "invalid expression in load/store multiple"
-msgstr "expresión no válida en load/store múltiples"
-
-#: config/tc-arm.c:28273
-#, c-format
-msgid "blx to '%s' an ARM ISA state function changed to bl"
-msgstr "blx a «%s» cambió una función estatal ISA de ARM a bl"
-
-#: config/tc-arm.c:28292
-msgid "misaligned branch destination"
-msgstr "destinaciones ramificadas desalineadas"
-
-#: config/tc-arm.c:28413
-#, c-format
-msgid "blx to Thumb func '%s' from Thumb ISA state changed to bl"
-msgstr "blx a la función Thumb «%s» cambió del estado ISA Thumb a bl"
-
-#: config/tc-arm.c:28462
-msgid "Thumb2 branch out of range"
-msgstr "Thumb2 ramificado fuera de rango"
-
-#: config/tc-arm.c:28514 config/tc-arm.c:28547
-#, fuzzy
-#| msgid "%s not supported in MIPS16 mode"
-msgid "Relocation supported only in FDPIC mode"
-msgstr "%s no admitido dentro del modo MIPS16"
-
-#: config/tc-arm.c:28577
-msgid "rel31 relocation overflow"
-msgstr "desbordamiento de reubicación rel31"
-
-#: config/tc-arm.c:28599 config/tc-arm.c:28605 config/tc-arm.c:28609
-#: config/tc-arm.c:28656
-msgid "co-processor offset out of range"
-msgstr "desplazamiento de coprocesador fuera de rango"
-
-#: config/tc-arm.c:28673
-#, c-format
-msgid "invalid offset, target not word aligned (0x%08lX)"
-msgstr "desplazamiento inválido, el objetivo no está alineado a word (0x%08lX)"
-
-#: config/tc-arm.c:28679
-msgid "section does not have enough alignment to ensure safe PC-relative loads"
-msgstr ""
-
-#: config/tc-arm.c:28683 config/tc-arm.c:28692 config/tc-arm.c:28700
-#: config/tc-arm.c:28708 config/tc-arm.c:28716
-#, c-format
-msgid "invalid offset, value too big (0x%08lX)"
-msgstr "desplazamiento inválido, valor demasiado grande (0x%08lX)"
-
-#: config/tc-arm.c:28757
-msgid "invalid Hi register with immediate"
-msgstr "el registro Hi inválido con el inmediato"
-
-#: config/tc-arm.c:28773
-msgid "invalid immediate for stack address calculation"
-msgstr "inmediato inválido para el cálculo de la dirección de la pila"
-
-#: config/tc-arm.c:28792
-msgid "address calculation needs a strongly defined nearby symbol"
-msgstr ""
-
-#: config/tc-arm.c:28808
-msgid "symbol too far away"
-msgstr "símbolo fuera muy lejos"
-
-#: config/tc-arm.c:28820
-#, c-format
-msgid "invalid immediate for address calculation (value = 0x%08lX)"
-msgstr "inmediato inválido para el cálculo de la dirección (valor = 0x%08lX)"
-
-#: config/tc-arm.c:28850
-#, c-format
-msgid "invalid immediate: %ld is out of range"
-msgstr "inmediato inválido: %ld está fuera de rango"
-
-#: config/tc-arm.c:28862
-#, c-format
-msgid "invalid shift value: %ld"
-msgstr "valor de desplazamiento inválido: %ld"
-
-#: config/tc-arm.c:28932 config/tc-arm.c:29003
-#, c-format
-msgid "the offset 0x%08lX is not representable"
-msgstr "el desplazamiento 0x%08lX no es representable"
-
-#: config/tc-arm.c:28964
-#, c-format
-msgid "Unable to process relocation for thumb opcode: %lx"
-msgstr "No se ha podido procesar reubicación para código de operación pulgar: %lx"
-
-#: config/tc-arm.c:29043
-#, c-format
-msgid "bad offset 0x%08lX (only 12 bits available for the magnitude)"
-msgstr "desplazamiento incorrecto 0x%08lX (solo hay 12 bits disponibles para esta magnitud)"
-
-#: config/tc-arm.c:29082
-#, c-format
-msgid "bad offset 0x%08lX (only 8 bits available for the magnitude)"
-msgstr "desplazamiento incorrecto 0x%08lX (solo hay 8 bits disponibles para esta magnitud)"
-
-#: config/tc-arm.c:29122
-#, c-format
-msgid "bad offset 0x%08lX (must be word-aligned)"
-msgstr "desplazamiento incorrecto 0x%08lX (debe ser alineado a word)"
-
-#: config/tc-arm.c:29127
-#, c-format
-msgid "bad offset 0x%08lX (must be an 8-bit number of words)"
-msgstr "desplazamiento incorrecto 0x%08lX (debe ser un número de 8-bit de words)"
-
-#: config/tc-arm.c:29348 config/tc-score.c:7302
-#, c-format
-msgid "bad relocation fixup type (%d)"
-msgstr "tipo de compostura de reubicación inválido (%d)"
-
-#: config/tc-arm.c:29465
-msgid "literal referenced across section boundary"
-msgstr "se referencía una literal a través de un límite de sección"
-
-#: config/tc-arm.c:29545
-msgid "internal relocation (type: IMMEDIATE) not fixed up"
-msgstr "reubicación interna (tipo: IMMEDIATE) no compuesta"
-
-#: config/tc-arm.c:29550
-msgid "ADRL used for a symbol not defined in the same file"
-msgstr "ADRL utilizado para un símbolo que no está definido en el mismo fichero"
-
-#: config/tc-arm.c:29557
-#, fuzzy, c-format
-#| msgid "ADRL used for a symbol not defined in the same file"
-msgid "%s used for a symbol not defined in the same file"
-msgstr "ADRL utilizado para un símbolo que no está definido en el mismo fichero"
-
-#: config/tc-arm.c:29573
-#, c-format
-msgid "undefined local label `%s'"
-msgstr "etiqueta local indefinida «%s»"
-
-#: config/tc-arm.c:29579
-msgid "internal_relocation (type: OFFSET_IMM) not fixed up"
-msgstr "reubicación_interna (tipo OFFSET_IMM) no compuesta"
-
-#: config/tc-arm.c:29601 config/tc-cris.c:3999 config/tc-csky.c:1152
-#: config/tc-ft32.c:707 config/tc-mcore.c:1932 config/tc-microblaze.c:2062
-#: config/tc-mmix.c:2898 config/tc-moxie.c:823 config/tc-ns32k.c:2245
-#: config/tc-score.c:7389
-msgid "<unknown>"
-msgstr "<desconocido>"
-
-#: config/tc-arm.c:30000
-#, c-format
-msgid "%s: unexpected function type: %d"
-msgstr "%s: tipo de función inesperado: %d"
-
-#: config/tc-arm.c:30140
-msgid "use of old and new-style options to set CPU type"
-msgstr "se utilizan casillas de estilo antiguo y nuevo para establecer el tipo de CPU"
-
-#: config/tc-arm.c:30159
-msgid "use of old and new-style options to set FPU type"
-msgstr "se utilizan casillas de estilo antiguo y nuevo para establecer el tipo de FPU"
-
-#: config/tc-arm.c:30232
-msgid "hard-float conflicts with specified fpu"
-msgstr "hard-float tiene conflictos con la unidad de coma flotante (fpu) especificada"
-
-#: config/tc-arm.c:30415
-msgid "generate PIC code"
-msgstr "genera código PIC"
-
-#: config/tc-arm.c:30416
-msgid "assemble Thumb code"
-msgstr "ensambla código Thumb"
-
-#: config/tc-arm.c:30417
-msgid "support ARM/Thumb interworking"
-msgstr "admite la interoperación ARM/Thumb"
-
-#: config/tc-arm.c:30419
-msgid "code uses 32-bit program counter"
-msgstr "el código utiliza un contador de programa de 32-bit"
-
-#: config/tc-arm.c:30420
-msgid "code uses 26-bit program counter"
-msgstr "el código utiliza un contador de programa de 26-bit"
-
-#: config/tc-arm.c:30421
-msgid "floating point args are in fp regs"
-msgstr "los argumentos de coma flotante están en los registros de coma flotante"
-
-#: config/tc-arm.c:30423
-msgid "re-entrant code"
-msgstr "código reentrante"
-
-#: config/tc-arm.c:30424
-msgid "code is ATPCS conformant"
-msgstr "el código es conforme a ATPCS"
-
-#. These are recognized by the assembler, but have no affect on code.
-#: config/tc-arm.c:30430
-msgid "use frame pointer"
-msgstr "usa puntero de marco"
-
-#: config/tc-arm.c:30431
-msgid "use stack size checking"
-msgstr "usa revisión del tamaño de la pila"
-
-#: config/tc-arm.c:30434
-msgid "do not warn on use of deprecated feature"
-msgstr "no avisa del uso de una opción obsoleta"
-
-#: config/tc-arm.c:30437
-msgid "warn about performance deprecated IT instructions in ARMv8-A and ARMv8-R"
-msgstr ""
-
-#: config/tc-arm.c:30441
-msgid "warn about symbols that match instruction names [default]"
-msgstr ""
-
-#: config/tc-arm.c:30442
-msgid "disable warnings about symobls that match instructions"
-msgstr ""
-
-#. DON'T add any new processors to this list -- we want the whole list
-#. to go away... Add them to the processors table instead.
-#: config/tc-arm.c:30458 config/tc-arm.c:30459
-msgid "use -mcpu=arm1"
-msgstr "emplea -mcpu=arm1"
-
-#: config/tc-arm.c:30460 config/tc-arm.c:30461
-msgid "use -mcpu=arm2"
-msgstr "emplea -mcpu=arm2"
-
-#: config/tc-arm.c:30462 config/tc-arm.c:30463
-msgid "use -mcpu=arm250"
-msgstr "emplea -mcpu=arm250"
-
-#: config/tc-arm.c:30464 config/tc-arm.c:30465
-msgid "use -mcpu=arm3"
-msgstr "emplea -mcpu=arm3"
-
-#: config/tc-arm.c:30466 config/tc-arm.c:30467
-msgid "use -mcpu=arm6"
-msgstr "emplea -mcpu=arm6"
-
-#: config/tc-arm.c:30468 config/tc-arm.c:30469
-msgid "use -mcpu=arm600"
-msgstr "emplea -mcpu=arm600"
-
-#: config/tc-arm.c:30470 config/tc-arm.c:30471
-msgid "use -mcpu=arm610"
-msgstr "emplea -mcpu=arm610"
-
-#: config/tc-arm.c:30472 config/tc-arm.c:30473
-msgid "use -mcpu=arm620"
-msgstr "emplea -mcpu=arm620"
-
-#: config/tc-arm.c:30474 config/tc-arm.c:30475
-msgid "use -mcpu=arm7"
-msgstr "emplea -mcpu=arm7"
-
-#: config/tc-arm.c:30476 config/tc-arm.c:30477
-msgid "use -mcpu=arm70"
-msgstr "emplea -mcpu=arm70"
-
-#: config/tc-arm.c:30478 config/tc-arm.c:30479
-msgid "use -mcpu=arm700"
-msgstr "emplea -mcpu=arm700"
-
-#: config/tc-arm.c:30480 config/tc-arm.c:30481
-msgid "use -mcpu=arm700i"
-msgstr "emplea -mcpu=arm700i"
-
-#: config/tc-arm.c:30482 config/tc-arm.c:30483
-msgid "use -mcpu=arm710"
-msgstr "emplea -mcpu=arm710"
-
-#: config/tc-arm.c:30484 config/tc-arm.c:30485
-msgid "use -mcpu=arm710c"
-msgstr "emplea -mcpu=arm710c"
-
-#: config/tc-arm.c:30486 config/tc-arm.c:30487
-msgid "use -mcpu=arm720"
-msgstr "emplea -mcpu=arm720"
-
-#: config/tc-arm.c:30488 config/tc-arm.c:30489
-msgid "use -mcpu=arm7d"
-msgstr "emplea -mcpu=arm7d"
-
-#: config/tc-arm.c:30490 config/tc-arm.c:30491
-msgid "use -mcpu=arm7di"
-msgstr "emplea -mcpu=arm7di"
-
-#: config/tc-arm.c:30492 config/tc-arm.c:30493
-msgid "use -mcpu=arm7m"
-msgstr "emplea -mcpu=arm7m"
-
-#: config/tc-arm.c:30494 config/tc-arm.c:30495
-msgid "use -mcpu=arm7dm"
-msgstr "emplea -mcpu=arm7dm"
-
-#: config/tc-arm.c:30496 config/tc-arm.c:30497
-msgid "use -mcpu=arm7dmi"
-msgstr "emplea -mcpu=arm7dmi"
-
-#: config/tc-arm.c:30498 config/tc-arm.c:30499
-msgid "use -mcpu=arm7100"
-msgstr "emplea -mcpu=arm7100"
-
-#: config/tc-arm.c:30500 config/tc-arm.c:30501
-msgid "use -mcpu=arm7500"
-msgstr "emplea -mcpu=arm7500"
-
-#: config/tc-arm.c:30502 config/tc-arm.c:30503
-msgid "use -mcpu=arm7500fe"
-msgstr "emplea -mcpu=arm7500fe"
-
-#: config/tc-arm.c:30504 config/tc-arm.c:30505 config/tc-arm.c:30506
-#: config/tc-arm.c:30507
-msgid "use -mcpu=arm7tdmi"
-msgstr "emplea -mcpu=arm7tdmi"
-
-#: config/tc-arm.c:30508 config/tc-arm.c:30509
-msgid "use -mcpu=arm710t"
-msgstr "emplea -mcpu=arm710t"
-
-#: config/tc-arm.c:30510 config/tc-arm.c:30511
-msgid "use -mcpu=arm720t"
-msgstr "emplea -mcpu=arm720t"
-
-#: config/tc-arm.c:30512 config/tc-arm.c:30513
-msgid "use -mcpu=arm740t"
-msgstr "emplea -mcpu=arm740t"
-
-#: config/tc-arm.c:30514 config/tc-arm.c:30515
-msgid "use -mcpu=arm8"
-msgstr "emplea -mcpu=arm8"
-
-#: config/tc-arm.c:30516 config/tc-arm.c:30517
-msgid "use -mcpu=arm810"
-msgstr "emplea -mcpu=arm810"
-
-#: config/tc-arm.c:30518 config/tc-arm.c:30519
-msgid "use -mcpu=arm9"
-msgstr "emplea -mcpu=arm9"
-
-#: config/tc-arm.c:30520 config/tc-arm.c:30521
-msgid "use -mcpu=arm9tdmi"
-msgstr "emplea -mcpu=arm9tdmi"
-
-#: config/tc-arm.c:30522 config/tc-arm.c:30523
-msgid "use -mcpu=arm920"
-msgstr "emplea -mcpu=arm920"
-
-#: config/tc-arm.c:30524 config/tc-arm.c:30525
-msgid "use -mcpu=arm940"
-msgstr "emplea -mcpu=arm940"
-
-#: config/tc-arm.c:30526
-msgid "use -mcpu=strongarm"
-msgstr "emplea -mcpu=strongarm"
-
-#: config/tc-arm.c:30528
-msgid "use -mcpu=strongarm110"
-msgstr "emplea -mcpu=strongarm110"
-
-#: config/tc-arm.c:30530
-msgid "use -mcpu=strongarm1100"
-msgstr "emplea -mcpu=strongarm1100"
-
-#: config/tc-arm.c:30532
-msgid "use -mcpu=strongarm1110"
-msgstr "emplea -mcpu=strongarm1110"
-
-#: config/tc-arm.c:30533
-msgid "use -mcpu=xscale"
-msgstr "emplea -mcpu=xscale"
-
-#: config/tc-arm.c:30534
-msgid "use -mcpu=iwmmxt"
-msgstr "emplea -mcpu=iwmmxt"
-
-#: config/tc-arm.c:30535
-msgid "use -mcpu=all"
-msgstr "emplea -mcpu=all"
-
-#. Architecture variants -- don't add any more to this list either.
-#: config/tc-arm.c:30538 config/tc-arm.c:30539
-msgid "use -march=armv2"
-msgstr "emplea -march=armv2"
-
-#: config/tc-arm.c:30540 config/tc-arm.c:30541
-msgid "use -march=armv2a"
-msgstr "emplea -march=armv2a"
-
-#: config/tc-arm.c:30542 config/tc-arm.c:30543
-msgid "use -march=armv3"
-msgstr "emplea -march=armv3"
-
-#: config/tc-arm.c:30544 config/tc-arm.c:30545
-msgid "use -march=armv3m"
-msgstr "emplea -march=armv3m"
-
-#: config/tc-arm.c:30546 config/tc-arm.c:30547
-msgid "use -march=armv4"
-msgstr "emplea -march=armv4"
-
-#: config/tc-arm.c:30548 config/tc-arm.c:30549
-msgid "use -march=armv4t"
-msgstr "emplea -march=armv4t"
-
-#: config/tc-arm.c:30550 config/tc-arm.c:30551
-msgid "use -march=armv5"
-msgstr "emplea -march=armv5"
-
-#: config/tc-arm.c:30552 config/tc-arm.c:30553
-msgid "use -march=armv5t"
-msgstr "emplea -march=armv5t"
-
-#: config/tc-arm.c:30554 config/tc-arm.c:30555
-msgid "use -march=armv5te"
-msgstr "emplea -march=armv5te"
-
-#: config/tc-arm.c:30556
-#, fuzzy
-#| msgid "use -mfpu=fpe"
-msgid "use -mfpu=softvfp"
-msgstr "emplea -mfpu=fpe"
-
-#: config/tc-arm.c:31713
-msgid "extension does not apply to the base architecture"
-msgstr "extensión no se aplica a la arquitectura base"
-
-#: config/tc-arm.c:31742
-msgid "architectural extensions must be specified in alphabetical order"
-msgstr "extensiones de arquitectura deben ser especificadas en orden alfabético"
-
-#: config/tc-arm.c:31881 config/tc-arm.c:32864
-#, c-format
-msgid "unknown floating point format `%s'\n"
-msgstr "desconoce formato de coma flotante «%s»\n"
-
-#: config/tc-arm.c:31897 config/tc-csky.c:1264
-#, c-format
-msgid "unknown floating point abi `%s'\n"
-msgstr "desconoce abi de coma flotante «%s» desconocida\n"
-
-#: config/tc-arm.c:31913
-#, c-format
-msgid "unknown EABI `%s'\n"
-msgstr "desconoce EABI «%s»\n"
-
-#: config/tc-arm.c:31933
-#, c-format
-msgid "unknown implicit IT mode `%s', should be arm, thumb, always, or never."
-msgstr "desconoce modo IT implícito «%s» , debe ser brazo, pulgar, siempre o nunca."
-
-#: config/tc-arm.c:31956 config/tc-metag.c:5911
-msgid "<fpu name>\t assemble for FPU architecture <fpu name>"
-msgstr "<nombre fpu>\t ensambla para la arquitectura de Unidad de Coma Flotante <nombre fpu>"
-
-#: config/tc-arm.c:31958
-msgid "<abi>\t assemble for floating point ABI <abi>"
-msgstr "<abi>\t ensambla para la ABI de coma flotante <abi>"
-
-#: config/tc-arm.c:31961
-msgid "<ver>\t\t assemble for eabi version <ver>"
-msgstr "<ver>\t\t ensambla para la eabi versión <ver>"
-
-#: config/tc-arm.c:31964
-msgid "<mode>\t controls implicit insertion of IT instructions"
-msgstr "<modo>\t controla la inserción implícita de instrucciones IT"
-
-#: config/tc-arm.c:31966
-msgid "\t\t\t TI CodeComposer Studio syntax compatibility mode"
-msgstr "\t\t\t modo compatible de sintaxis TI CodeComposer Studio"
-
-#: config/tc-arm.c:31969
-msgid ""
-"[ieee|alternative]\n"
-" set the encoding for half precision floating point numbers to IEEE\n"
-" or Arm alternative format."
-msgstr ""
-
-#: config/tc-arm.c:32080
-#, c-format
-msgid " ARM-specific assembler options:\n"
-msgstr " Opciones de ensamblador específicas de ARM:\n"
-
-#: config/tc-arm.c:32100
-#, c-format
-msgid " --fix-v4bx Allow BX in ARMv4 code\n"
-msgstr " --fix-v4bx Permite BX en código ARMv4\n"
-
-#: config/tc-arm.c:32104
-#, fuzzy, c-format
-#| msgid "--fdpic\t\t\tgenerate an FDPIC object file\n"
-msgid " --fdpic generate an FDPIC object file\n"
-msgstr "--fdpic\t\t\tgenera un fichero objeto FDPIC\n"
-
-#: config/tc-arm.c:32425
-msgid "no architecture contains all the instructions used\n"
-msgstr "ninguna arquitectura contiene todas las instrucciones utilizadas\n"
-
-#: config/tc-arm.c:32617
-#, fuzzy
-#| msgid "missing cpu name `%s'"
-msgid ".cpu: missing cpu name"
-msgstr "ausente el nombre de cpu «%s»"
-
-#: config/tc-arm.c:32665
-#, fuzzy
-#| msgid "missing architecture name `%s'"
-msgid ".arch: missing architecture name"
-msgstr "ausente el nombre de arquitectura «%s»"
-
-#: config/tc-arm.c:32706
-#, fuzzy
-#| msgid "missing architecture name `%s'"
-msgid ".object_arch: missing architecture name"
-msgstr "ausente el nombre de arquitectura «%s»"
-
-#: config/tc-arm.c:32743
-#, fuzzy
-#| msgid "missing architectural extension"
-msgid ".arch_extension: missing architecture extension"
-msgstr "ausente la extensión de la arquitectura"
-
-#: config/tc-arm.c:32800
-#, c-format
-msgid "architectural extension `%s' is not allowed for the current base architecture"
-msgstr "no se permite la extensión de arquitectura «%s» para la arquitectura base actual"
-
-#: config/tc-arm.c:32823
-#, c-format
-msgid "unknown architecture extension `%s'\n"
-msgstr "desconoce extensión de arquitectura «%s»\n"
-
-#: config/tc-arm.c:32844
-#, fuzzy
-#| msgid "missing fpu name `%s'"
-msgid ".fpu: missing fpu name"
-msgstr "ausente el nombre fpu «%s»"
-
-#: config/tc-avr.c:597
-#, c-format
-msgid "Known MCU names:"
-msgstr "Nombres MCU conocidos:"
-
-#: config/tc-avr.c:662
-#, c-format
-msgid ""
-"AVR Assembler options:\n"
-" -mmcu=[avr-name] select microcontroller variant\n"
-" [avr-name] can be:\n"
-" avr1 - classic AVR core without data RAM\n"
-" avr2 - classic AVR core with up to 8K program memory\n"
-" avr25 - classic AVR core with up to 8K program memory\n"
-" plus the MOVW instruction\n"
-" avr3 - classic AVR core with up to 64K program memory\n"
-" avr31 - classic AVR core with up to 128K program memory\n"
-" avr35 - classic AVR core with up to 64K program memory\n"
-" plus the MOVW instruction\n"
-" avr4 - enhanced AVR core with up to 8K program memory\n"
-" avr5 - enhanced AVR core with up to 64K program memory\n"
-" avr51 - enhanced AVR core with up to 128K program memory\n"
-" avr6 - enhanced AVR core with up to 256K program memory\n"
-" avrxmega2 - XMEGA, > 8K, < 64K FLASH, < 64K RAM\n"
-" avrxmega3 - XMEGA, RAM + FLASH < 64K, Flash visible in RAM\n"
-" avrxmega4 - XMEGA, > 64K, <= 128K FLASH, <= 64K RAM\n"
-" avrxmega5 - XMEGA, > 64K, <= 128K FLASH, > 64K RAM\n"
-" avrxmega6 - XMEGA, > 128K, <= 256K FLASH, <= 64K RAM\n"
-" avrxmega7 - XMEGA, > 128K, <= 256K FLASH, > 64K RAM\n"
-" avrtiny - AVR Tiny core with 16 gp registers\n"
-msgstr ""
-"Opciones de ensamblador AVR:\n"
-" -mmcu=[nombre-avr] selecciona la variante de microcontrolador\n"
-" [nombre-avr] puede ser:\n"
-" avr1 - núcleo AVR nuclear sin RAM de datos\n"
-" avr2 - núcleo AVR nuclear hasta con 8K de memoria de programa\n"
-" avr25 - núcleo AVR nuclear hasta con 8K de memoria de programa\n"
-" más la instrucción MOVW\n"
-" avr3 - núcleo AVR nuclear hasta con 64K de memoria de programa\n"
-" avr31 - núcleo AVR nuclear hasta con 128K de memoria de programa\n"
-" avr35 - núcleo AVR nuclear hasta con 64K de memoria de programa\n"
-" más la instrucción MOVW\n"
-" avr4 - núcleo AVR mejorado hasta con 8K de memoria de programa\n"
-" avr5 - núcleo AVR mejorado hasta con 64K de memoria de programa\n"
-" avr51 - núcleo AVR mejorado hasta con 128K de memoria de programa\n"
-" avr6 - núcleo AVR mejorado hasta con 256K de memoria de programa\n"
-" avrxmega3 - XMEGA, > 8K, ≤ 64K FLASH, > 64K RAM\n"
-" avrxmega4 - XMEGA, > 64K, ≤ 128K FLASH, ≤ 64K RAM\n"
-" avrxmega5 - XMEGA, > 64K, ≤ 128K FLASH, > 64K RAM\n"
-" avrxmega6 - XMEGA, > 128K, ≤ 256K FLASH, ≤ 64K RAM\n"
-" avrxmega7 - XMEGA, > 128K, ≤ 256K FLASH, > 64K RAM\n"
-" avrtinyo Núcleo -AVR Tiny con registros 16 gp\n"
-
-#: config/tc-avr.c:685
-#, fuzzy, c-format
-#| msgid ""
-#| " -mall-opcodes accept all AVR opcodes, even if not supported by MCU\n"
-#| " -mno-skip-bug disable warnings for skipping two-word instructions\n"
-#| " (default for avr4, avr5)\n"
-#| " -mno-wrap reject rjmp/rcall instructions with 8K wrap-around\n"
-#| " (default for avr3, avr5)\n"
-#| " -mrmw accept Read-Modify-Write instructions\n"
-#| " -mlink-relax generate relocations for linker relaxation (default)\n"
-#| " -mno-link-relax don't generate relocations for linker relaxation.\n"
-#| " -mgcc-isr accept the __gcc_isr pseudo-instruction.\n"
-msgid ""
-" -mall-opcodes accept all AVR opcodes, even if not supported by MCU\n"
-" -mno-skip-bug disable warnings for skipping two-word instructions\n"
-" (default for avr4, avr5)\n"
-" -mno-wrap reject rjmp/rcall instructions with 8K wrap-around\n"
-" (default for avr3, avr5)\n"
-" -mrmw accept Read-Modify-Write instructions\n"
-" -mlink-relax generate relocations for linker relaxation (default)\n"
-" -mno-link-relax don't generate relocations for linker relaxation.\n"
-" -mgcc-isr accept the __gcc_isr pseudo-instruction.\n"
-" -mno-dollar-line-separator\n"
-" do not treat the $ character as a line separator.\n"
-msgstr ""
-" -mall-opcodes acepta todos los códigos operacionales AVR, aún si\n"
-" no lo admite el MCU\n"
-" -mno-skip-bug desactiva los avisos para las instrucciones que omiten\n"
-" dos palabras (por defecto para avr4, avr5)\n"
-" -mno-wrap rechaza las instrucciones rjmp/rcall con envoltura de 8K\n"
-" (por defecto para avr3, avr5)\n"
-" -mrmw acepta instrucciones Leer-Modificar-Escribir\n"
-" -mlink-relax genera reubicación para relajación de enlazador (predef.)\n"
-" -mno-link-relax no genera reubicación para relajación de enlazador.\n"
-" -mgcc-isr acepta la __gcc_isr pseudo-instrucción.\n"
-
-#: config/tc-avr.c:726
-#, c-format
-msgid "unknown MCU: %s\n"
-msgstr "desconoce MCU: %s\n"
-
-#: config/tc-avr.c:740
-#, c-format
-msgid "redefinition of mcu type `%s' to `%s'"
-msgstr "redefinición del tipo de mcu «%s» a «%s»"
-
-#: config/tc-avr.c:869
-msgid "constant value required"
-msgstr "se requiere un valor constante"
-
-#: config/tc-avr.c:872
-#, c-format
-msgid "number must be positive and less than %d"
-msgstr "el número debe ser positivo y menor que %d"
-
-#: config/tc-avr.c:898 config/tc-avr.c:1035
-#, c-format
-msgid "constant out of 8-bit range: %d"
-msgstr "constante fuera del rango de 8-bit: %d"
-
-#: config/tc-avr.c:966 config/tc-score.c:1194 read.c:4075
-msgid "illegal expression"
-msgstr "expresión ilegal"
-
-#: config/tc-avr.c:995 config/tc-avr.c:2004 config/tc-pru.c:1870
-msgid "`)' required"
-msgstr "`)' requerido"
-
-#: config/tc-avr.c:1105
-msgid "register name or number from 16 to 31 required"
-msgstr "requerido nombre o número de registro desde 16 a 32"
-
-#: config/tc-avr.c:1111
-msgid "register name or number from 0 to 31 required"
-msgstr "requerido nombre o número de registro desde 0 a 31"
-
-#: config/tc-avr.c:1119
-msgid "register r16-r23 required"
-msgstr "se requiere los registros r16-r23"
-
-#: config/tc-avr.c:1125
-msgid "register number above 15 required"
-msgstr "se requiere un número de registro superior a 15"
-
-#: config/tc-avr.c:1131 config/tc-csky.c:6417 config/tc-csky.c:6446
-msgid "even register number required"
-msgstr "requerido número de registro par"
-
-#: config/tc-avr.c:1137
-msgid "register r24, r26, r28 or r30 required"
-msgstr "se requieren los registros r24, r26, r28 o r30"
-
-#: config/tc-avr.c:1158
-msgid "pointer register (X, Y or Z) required"
-msgstr "el registro puntero (X, Y o Z) requerido"
-
-#: config/tc-avr.c:1165
-msgid "cannot both predecrement and postincrement"
-msgstr "no se puede predecrementar y postincrementar"
-
-#: config/tc-avr.c:1173
-msgid "addressing mode not supported"
-msgstr "no se admite el modo de direccionamiento"
-
-#: config/tc-avr.c:1179
-msgid "can't predecrement"
-msgstr "no se puede predecrementar"
-
-#: config/tc-avr.c:1182
-msgid "pointer register Z required"
-msgstr "se requiere el registro puntero Z"
-
-#: config/tc-avr.c:1201
-msgid "postincrement not supported"
-msgstr "no se admite el postincremento"
-
-#: config/tc-avr.c:1211
-msgid "pointer register (Y or Z) required"
-msgstr "se requiere un registro puntero (Y o Z)"
-
-#: config/tc-avr.c:1333 config/tc-xgate.c:1354
-#, c-format
-msgid "unknown constraint `%c'"
-msgstr "desconoce constante `%c'"
-
-#: config/tc-avr.c:1396 config/tc-avr.c:2686
-msgid "`,' required"
-msgstr "`,' requerido"
-
-#: config/tc-avr.c:1417
-msgid "undefined combination of operands"
-msgstr "combinación indefinida de operandos"
-
-#: config/tc-avr.c:1426
-msgid "skipping two-word instruction"
-msgstr "se omite la instrucción de dos word"
-
-#: config/tc-avr.c:1614 config/tc-avr.c:1630 config/tc-avr.c:1761
-#: config/tc-msp430.c:4500 config/tc-msp430.c:4519
-#, c-format
-msgid "odd address operand: %ld"
-msgstr "operando de direccón impar: %ld"
-
-#: config/tc-avr.c:1622 config/tc-avr.c:1641 config/tc-avr.c:1659
-#: config/tc-avr.c:1670 config/tc-avr.c:1686 config/tc-avr.c:1694
-#: config/tc-avr.c:1789 config/tc-avr.c:1796 config/tc-d10v.c:503
-#: config/tc-d30v.c:550 config/tc-msp430.c:4508 config/tc-msp430.c:4526
-#, c-format
-msgid "operand out of range: %ld"
-msgstr "operando fuera de rango: %ld"
-
-#: config/tc-avr.c:1677
-#, c-format
-msgid "operand out of range: 0x%lx"
-msgstr "operando fuera de rango: 0x%lx"
-
-#: config/tc-avr.c:1782 config/tc-d10v.c:1592 config/tc-d30v.c:2011
-#: config/tc-msp430.c:4597
-#, c-format
-msgid "line %d: unknown relocation type: 0x%x"
-msgstr "línea %d: tipo reubicado desconocida: 0x%x"
-
-#: config/tc-avr.c:1810
-msgid "only constant expression allowed"
-msgstr "solo se permite una expresión constante"
-
-#. xgettext:c-format.
-#: config/tc-avr.c:1864 config/tc-bfin.c:813 config/tc-d10v.c:1461
-#: config/tc-d30v.c:1768 config/tc-metag.c:7016 config/tc-mn10200.c:775
-#: config/tc-mn10300.c:2178 config/tc-msp430.c:4645 config/tc-ppc.c:7770
-#: config/tc-spu.c:878 config/tc-spu.c:1089 config/tc-v850.c:3360
-#: config/tc-z80.c:3871
-#, c-format
-msgid "reloc %d not supported by object file format"
-msgstr "el formato del fichero objeto no admite la reubicación %d"
-
-#: config/tc-avr.c:1886 config/tc-ft32.c:232 config/tc-h8300.c:1928
-#: config/tc-mcore.c:881 config/tc-microblaze.c:913 config/tc-moxie.c:180
-#: config/tc-pj.c:253 config/tc-sh.c:2182 config/tc-wasm32.c:747
-#: config/tc-z8k.c:1233
-msgid "can't find opcode "
-msgstr "no se puede encontrar el código de operación "
-
-#: config/tc-avr.c:1905
-#, c-format
-msgid "illegal opcode %s for mcu %s"
-msgstr "código de operación %s ilegal para el mcu %s"
-
-#: config/tc-avr.c:1921
-#, c-format
-msgid "pseudo instruction `%s' not supported"
-msgstr "pseudo instrucción «%s» no admitida"
-
-#: config/tc-avr.c:1943
-msgid "garbage at end of line"
-msgstr "basura al final de la línea"
-
-#: config/tc-avr.c:2053 config/tc-pru.c:1902
-#, c-format
-msgid "illegal %s relocation size: %d"
-msgstr "reubicación de tamaño %s ilegal: %d"
-
-#: config/tc-avr.c:2166 config/tc-avr.c:2221
-#, c-format
-msgid "unknown record type %d (in %s)"
-msgstr "tipo de registro desconociodo %d (en %s)"
-
-#: config/tc-avr.c:2242
-#, c-format
-msgid "Failed to create property section `%s'\n"
-msgstr "Fallado para crear secciones propietarias `%s'\n"
-
-#: config/tc-avr.c:2678
-#, c-format
-msgid "%s requires value 0-2 as operand 1"
-msgstr ""
-
-#: config/tc-avr.c:2703
-#, c-format
-msgid "`%s %d' after `%s %d' from %s:%u"
-msgstr "`%s %d' tras `%s %d' desde %s:%u"
-
-#: config/tc-avr.c:2706
-#, c-format
-msgid "`%s %d' but no chunk open yet"
-msgstr "«%s %d» pero no recorta abierto aún"
-
-#: config/tc-avr.c:2794
-#, c-format
-msgid "dangling `__gcc_isr %d'"
-msgstr "`__gcc_isr colgado %d'"
-
-#: config/tc-avr.c:2796
-msgid "dangling `__gcc_isr'"
-msgstr "colgado `__gcc_isr'"
-
-#: config/tc-bfin.c:93 config/tc-frv.c:1603 config/tc-frv.c:1613
-msgid "missing ')'"
-msgstr "ausente ')'"
-
-#: config/tc-bfin.c:428
-#, c-format
-msgid " Blackfin specific assembler options:\n"
-msgstr " Opciones de ensamblador específicas de Blackfin:\n"
-
-#: config/tc-bfin.c:429
-#, c-format
-msgid " -mcpu=<cpu[-sirevision]> specify the name of the target CPU\n"
-msgstr " -mcpu=<cpu[-sirevision]> especifica el nombre del CPU objetivo\n"
-
-#: config/tc-bfin.c:430
-#, c-format
-msgid " -mfdpic assemble for the FDPIC ABI\n"
-msgstr " -mfdpic ensambla para la ABI de FDPIC\n"
-
-#: config/tc-bfin.c:431
-#, c-format
-msgid " -mno-fdpic/-mnopic disable -mfdpic\n"
-msgstr " -mno-fdpic/-mnopic desactiva -mfdpic\n"
-
-#: config/tc-bfin.c:444
-msgid "Could not set architecture and machine."
-msgstr "No se pueden establecer la arquitectura y la máquina."
-
-#: config/tc-bfin.c:591
-msgid "Parse failed."
-msgstr "Falló la decodificación."
-
-#: config/tc-bfin.c:666
-msgid "pcrel too far BFD_RELOC_BFIN_10"
-msgstr "pcrel demasiado lejos de BFD_RELOC_BFIN_10"
-
-#: config/tc-bfin.c:682
-msgid "pcrel too far BFD_RELOC_BFIN_12"
-msgstr "pcrel demasiado lejos de BFD_RELOC_BFIN_12"
-
-#: config/tc-bfin.c:702
-msgid "pcrel too far BFD_RELOC_BFIN_24"
-msgstr "pcrel demasiado lejos de BFD_RELOC_BFIN_24"
-
-#: config/tc-bfin.c:717
-msgid "pcrel too far BFD_RELOC_BFIN_5"
-msgstr "pcrel demasiado lejos de BFD_RELOC_BFIN_5"
-
-#: config/tc-bfin.c:729
-msgid "pcrel too far BFD_RELOC_BFIN_11_PCREL"
-msgstr "pcrel demasiado lejos de BFD_RELOC_BFIN_11_PCREL"
-
-#: config/tc-bfin.c:739
-msgid "rel too far BFD_RELOC_8"
-msgstr "rel demasiado lejos de BFD_RELOC_8"
-
-#: config/tc-bfin.c:746
-msgid "rel too far BFD_RELOC_16"
-msgstr "rel demasiado lejos de BFD_RELOC_16"
-
-#: config/tc-bpf.c:194
-#, c-format
-msgid "-mdialect=%s is not valid. Expected normal or pseudoc"
-msgstr ""
-
-#: config/tc-bpf.c:209
-#, c-format
-msgid "-misa-spec=%s is not valid. Expected v1, v2, v3, v4 o xbpf"
-msgstr ""
-
-#: config/tc-bpf.c:229
-#, fuzzy, c-format
-#| msgid "FT32 options:\n"
-msgid ""
-"\n"
-"BPF options:\n"
-msgstr "Opciones FT32:\n"
-
-#: config/tc-bpf.c:230
-#, c-format
-msgid ""
-"BPF options:\n"
-" -EL generate code for a little endian machine\n"
-" -EB generate code for a big endian machine\n"
-" -mdialect=DIALECT set the assembly dialect (normal, pseudoc)\n"
-" -misa-spec set the BPF ISA spec (v1, v2, v3, v4, xbpf)\n"
-" -mxbpf alias for -misa-spec=xbpf\n"
-msgstr ""
-
-#: config/tc-bpf.c:588
-msgid "signed instruction operand out of range, shall fit in 32 bits"
-msgstr ""
-
-#: config/tc-bpf.c:962
-#, fuzzy
-#| msgid "immediate out of range for insert"
-msgid "immediate out of range, shall fit in 32 bits"
-msgstr "inmediato fuera de rango para insert"
-
-#: config/tc-bpf.c:972
-#, fuzzy
-#| msgid "pc-relative load offset out of range"
-msgid "pc-relative offset out of range, shall fit in 32 bits"
-msgstr "el desplazamiento de carga pc-relativa fuera de rango"
-
-#: config/tc-bpf.c:982 config/tc-bpf.c:992
-#, fuzzy
-#| msgid "pc-relative load offset out of range"
-msgid "pc-relative offset out of range, shall fit in 16 bits"
-msgstr "el desplazamiento de carga pc-relativa fuera de rango"
-
-#: config/tc-bpf.c:1375
-#, fuzzy, c-format
-#| msgid "unexpected `\"' in expression"
-msgid "unexpected register name `%s' in expression"
-msgstr "`«' o `»' inesperada dentro de expresión"
-
-#: config/tc-bpf.c:1706
-#, fuzzy, c-format
-#| msgid "invalid condition code '%s'"
-msgid "invalid %%-tag in BPF opcode '%s'\n"
-msgstr "código condicional inválido «%s»"
-
-#: config/tc-bpf.c:1753
-#, fuzzy, c-format
-#| msgid "unrecognised instruction %s"
-msgid "unrecognized instruction `%s'"
-msgstr "la instrucción %s no reconocida"
-
-#: config/tc-cr16.c:168
-msgid "using a bit field width of zero"
-msgstr "empleando una anchura de campo de bit de cero"
-
-#: config/tc-cr16.c:176
-#, c-format
-msgid "field width \"%s\" too complex for a bitfield"
-msgstr "anchura de campo «%s» es demasiado compleja para un campo de bits"
-
-#: config/tc-cr16.c:186
-#, c-format
-msgid "field width %lu too big to fit in %d byte: truncated to %d bits"
-msgid_plural "field width %lu too big to fit in %d bytes: truncated to %d bits"
-msgstr[0] "anchura de campo %lu es muy grande para caber en %d byte: se truncó a %d bits"
-msgstr[1] "anchura de campo %lu es muy grande para caber en %d bytes: se truncó a %d bits"
-
-#: config/tc-cr16.c:212
-#, c-format
-msgid "field value \"%s\" too complex for a bitfield"
-msgstr "valor del campo «%s» es demasiado complejo para un campo de bits"
-
-#: config/tc-cr16.c:394
-#, c-format
-msgid "Unknown register pair - index relative mode: `%d'"
-msgstr "Registros modo relativo par - indexado desconocido: '%d'"
-
-#: config/tc-cr16.c:601 config/tc-crx.c:331
-#, c-format
-msgid "internal error: reloc %d (`%s') not supported by object file format"
-msgstr "error interno: reubicación %d («%s») no admitidó por formato del fichero objeto"
-
-#: config/tc-cr16.c:694 config/tc-i386.c:17857 config/tc-s390.c:2340
-msgid "GOT already in symbol table"
-msgstr "GOT ya está en la tabla de símbolos"
-
-#. Missing or bad expr becomes absolute 0.
-#: config/tc-cr16.c:878 config/tc-crx.c:568
-#, c-format
-msgid "missing or invalid displacement expression `%s' taken as 0"
-msgstr "la expresión de desubicación ausentente o no válida «%s» se toma como 0"
-
-#: config/tc-cr16.c:928
-#, c-format
-msgid "GOT bad expression with %s."
-msgstr "GOT como expresión incorrecta con %s."
-
-#: config/tc-cr16.c:1039
-#, c-format
-msgid "operand %d: illegal use expression: `%s`"
-msgstr "operando %d: expresión de uso ilegal: `%s`"
-
-#: config/tc-cr16.c:1104 config/tc-crx.c:1078
-#, c-format
-msgid "Unknown register: `%d'"
-msgstr "Registro desconocido: '%d'"
-
-#. Issue a error message when register is illegal.
-#: config/tc-cr16.c:1112
-#, c-format
-msgid "Illegal register (`%s') in Instruction: `%s'"
-msgstr "Registro ilegal («%s») en Instruction: «%s»"
-
-#: config/tc-cr16.c:1186 config/tc-cr16.c:1261
-#, c-format
-msgid "Illegal register `%s' in Instruction `%s'"
-msgstr "Registro ilegal «%s» en la Instruction «%s»"
-
-#: config/tc-cr16.c:1214 config/tc-cr16.c:1225
-#, c-format
-msgid "Illegal register pair `%s' in Instruction `%s'"
-msgstr "Par de registro ilegal «%s» en la Instrucción «%s»"
-
-#: config/tc-cr16.c:1250
-msgid "unmatched '['"
-msgstr "desemparejado '['"
-
-#: config/tc-cr16.c:1256
-msgid "garbage after index spec ignored"
-msgstr "se descarta la basura tras la especificación del índice"
-
-#: config/tc-cr16.c:1404 config/tc-crx.c:887
-#, c-format
-msgid "Illegal operands (whitespace): `%s'"
-msgstr "Operandos ilegales (espacios en blanco): «%s»"
-
-#: config/tc-cr16.c:1416 config/tc-cr16.c:1423 config/tc-cr16.c:1440
-#: config/tc-crx.c:899 config/tc-crx.c:906 config/tc-crx.c:923
-#: config/tc-crx.c:1714
-#, c-format
-msgid "Missing matching brackets : `%s'"
-msgstr "Ausenten las llaves coincidentes : «%s»"
-
-#: config/tc-cr16.c:1472 config/tc-crx.c:949
-#, c-format
-msgid "Unknown exception: `%s'"
-msgstr "Excepción desconocida: «%s»"
-
-#: config/tc-cr16.c:1554 config/tc-crx.c:1045
-#, c-format
-msgid "Illegal `cinv' parameter: `%c'"
-msgstr "Parámetro `cinv' ilegal: `%c'"
-
-#: config/tc-cr16.c:1575 config/tc-cr16.c:1614
-#, c-format
-msgid "Unknown register pair: `%d'"
-msgstr "Par de registro desconocido: '%d'"
-
-#. Issue a error message when register pair is illegal.
-#: config/tc-cr16.c:1583
-#, c-format
-msgid "Illegal register pair (`%s') in Instruction: `%s'"
-msgstr "Par de registro ilegal («%s») en la Instrucción: «%s»"
-
-#. Issue a error message when register pair is illegal.
-#: config/tc-cr16.c:1622
-#, c-format
-msgid "Illegal index register pair (`%s') in Instruction: `%s'"
-msgstr "Par de registro de índice ilegal («%s») en la Instrucción: «%s»"
-
-#: config/tc-cr16.c:1661
-#, c-format
-msgid "Unknown processor register : `%d'"
-msgstr "Registro de procesador desconocido: '%d'"
-
-#. Issue a error message when register pair is illegal.
-#: config/tc-cr16.c:1669
-#, c-format
-msgid "Illegal processor register (`%s') in Instruction: `%s'"
-msgstr "Registro de procesador ilegal («%s») en la Instrucción: «%s»"
-
-#: config/tc-cr16.c:1717
-#, c-format
-msgid "Unknown processor register (32 bit) : `%d'"
-msgstr "Registro de procesador desconocido (32 bit) : '%d'"
-
-#. Issue a error message when register pair is illegal.
-#: config/tc-cr16.c:1725
-#, c-format
-msgid "Illegal 32 bit - processor register (`%s') in Instruction: `%s'"
-msgstr "Registro de procesador de 32 bit ilegal («%s») en la Instruction: «%s»"
-
-#: config/tc-cr16.c:2070 config/tc-crx.c:1612 config/tc-crx.c:1629
-#, c-format
-msgid "Same src/dest register is used (`r%d'), result is undefined"
-msgstr "Se usa el mismo registro fuente/destino (`r%d'), el resultado es indefinido"
-
-#: config/tc-cr16.c:2092
-msgid "RA register is saved twice."
-msgstr "El registro RA se guarda dos veces."
-
-#: config/tc-cr16.c:2096
-#, c-format
-msgid "`%s' Illegal use of registers."
-msgstr "«%s» Uso inválido de registros."
-
-#: config/tc-cr16.c:2110
-#, c-format
-msgid "`%s' Illegal count-register combination."
-msgstr "«%s» Combinación de registros-cuenta ilegal."
-
-#: config/tc-cr16.c:2116
-#, c-format
-msgid "`%s' Illegal use of register."
-msgstr "«%s» Uso inválido de registro."
-
-#: config/tc-cr16.c:2125 config/tc-crx.c:1621
-#, c-format
-msgid "`%s' has undefined result"
-msgstr "«%s» tiene un resultado indefinido"
-
-#: config/tc-cr16.c:2133
-#, c-format
-msgid "Same src/dest register is used (`r%d'),result is undefined"
-msgstr "Se usa el mismo registro fuente/destino (`r%d'), el resultado es indefinido"
-
-#: config/tc-cr16.c:2304 config/tc-crx.c:1527
-msgid "Incorrect number of operands"
-msgstr "Número incorrecto de operandos"
-
-#: config/tc-cr16.c:2306 config/tc-crx.c:1529
-#, c-format
-msgid "Illegal type of operand (arg %d)"
-msgstr "Tipo de operando ilegal (arg %d)"
-
-#: config/tc-cr16.c:2312 config/tc-crx.c:1535
-#, c-format
-msgid "Operand out of range (arg %d)"
-msgstr "Operando fuera de rango (arg %d)"
-
-#: config/tc-cr16.c:2315 config/tc-crx.c:1538
-#, c-format
-msgid "Operand has odd displacement (arg %d)"
-msgstr "Operando tiene un desplazamiento impar (arg %d)"
-
-#: config/tc-cr16.c:2318 config/tc-cr16.c:2349 config/tc-crx.c:1553
-#: config/tc-crx.c:1581
-#, c-format
-msgid "Illegal operand (arg %d)"
-msgstr "Operando ilegal (arg %d)"
-
-#. Give an error if a frag containing code is not aligned to a 2-byte
-#. boundary.
-#: config/tc-cr16.c:2451 config/tc-cr16.h:74 config/tc-crx.c:1903
-#: config/tc-crx.h:77
-msgid "instruction address is not a multiple of 2"
-msgstr "la instrucción direccional no es un múltiplo de 2"
-
-#: config/tc-cr16.c:2474 config/tc-cris.c:1550 config/tc-cris.c:1558
-#: config/tc-crx.c:1939 config/tc-dlx.c:681 config/tc-hppa.c:3206
-#: config/tc-hppa.c:3213 config/tc-sparc.c:1753 config/tc-sparc.c:1761
-#, c-format
-msgid "Unknown opcode: `%s'"
-msgstr "Código operacional desconocido: «%s»"
-
-#: config/tc-cris.c:550 config/tc-m68hc11.c:3894
-#, c-format
-msgid "internal inconsistency problem in %s: fr_symbol %lx"
-msgstr "problema de inconsistencia interna en %s: fr_symbol %lx"
-
-#: config/tc-cris.c:554 config/tc-m68hc11.c:3898 config/tc-msp430.c:4991
-#, c-format
-msgid "internal inconsistency problem in %s: resolved symbol"
-msgstr "problema de inconsistencia interna en %s: símbolo resuelto"
-
-#: config/tc-cris.c:564 config/tc-m68hc11.c:3904
-#, c-format
-msgid "internal inconsistency problem in %s: fr_subtype %d"
-msgstr "problema de inconsistencia interna en %s: fr_subtype %d"
-
-#: config/tc-cris.c:904
-msgid "Relaxation to long branches for .arch common_v10_v32 not implemented"
-msgstr "La relajación a grandes ramificaciones para .arch common_v10_v32 no está implementada"
-
-#: config/tc-cris.c:934
-msgid "Complicated LAPC target operand is not a multiple of two. Use LAPC.D"
-msgstr "Operando de objetivo complicado LAPC no es un múltiplo de dos. Use LAPC.D"
-
-#: config/tc-cris.c:939
-#, c-format
-msgid "Internal error found in md_convert_frag: offset %ld. Please report this."
-msgstr "Se encontró un error interno en md_convert_frag: desplazamiento %ld. Por favor repórtelo."
-
-#: config/tc-cris.c:964
-#, c-format
-msgid "internal inconsistency in %s: bdapq no symbol"
-msgstr "inconsistencia interna en %s: bdapq no es un símbolo"
-
-#: config/tc-cris.c:977
-#, c-format
-msgid "internal inconsistency in %s: bdap.w with no symbol"
-msgstr "inconsistencia interna en %s: bdap.w sin algún símbolo"
-
-#: config/tc-cris.c:1001
-msgid "section alignment must be >= 4 bytes to check MULS/MULU safeness"
-msgstr "la alineamiento de la sección debe ser ≥ 4 bytes para marcar seguridad de MULS/MULU"
-
-#: config/tc-cris.c:1010
-msgid "dangerous MULS/MULU location; give it higher alignment"
-msgstr "ubicación de MULS/MULU peligrosa; déles una alineamiento superior"
-
-#. Bail out for compatibility mode. (It seems it can be implemented,
-#. perhaps with a 10-byte sequence: "move.d NNNN,$pc/$acr", "jump
-#. $acr", "nop"; but doesn't seem worth it at the moment.)
-#: config/tc-cris.c:1051
-msgid "Out-of-range .word offset handling is not implemented for .arch common_v10_v32"
-msgstr "El manejo del desplazamiento .word fuera de rango no está implementado para .arch common_v10_v32"
-
-#: config/tc-cris.c:1096
-msgid ".word case-table handling failed: table too large"
-msgstr "Falló el manejo de la tabla de case .word: la tabla es demasiado grande"
-
-#: config/tc-cris.c:1228
-#, c-format
-msgid "Buggy opcode: `%s' \"%s\"\n"
-msgstr "Código operacional defectuoso: «%s» «%s»\n"
-
-#: config/tc-cris.c:1656
-#, c-format
-msgid "Immediate value not in 5 bit unsigned range: %ld"
-msgstr "El valor inmediato no está en el rango de 5 bit sin signo: %ld"
-
-#: config/tc-cris.c:1672
-#, c-format
-msgid "Immediate value not in 4 bit unsigned range: %ld"
-msgstr "El valor inmediato no está en el rango de 4 bit sin signo: %ld"
-
-#: config/tc-cris.c:1724
-#, c-format
-msgid "Immediate value not in 6 bit range: %ld"
-msgstr "El valor inmediato no está en el rango de 6 bit: %ld"
-
-#: config/tc-cris.c:1740
-#, c-format
-msgid "Immediate value not in 6 bit unsigned range: %ld"
-msgstr "El valor inmediato no está en el rango de 6 bit sin signo: %ld"
-
-#. Others have a generic warning.
-#: config/tc-cris.c:1849
-#, c-format
-msgid "Unimplemented register `%s' specified"
-msgstr "Registro no implementado «%s» especificado"
-
-#. We've come to the end of instructions with this
-#. opcode, so it must be an error.
-#: config/tc-cris.c:2093
-msgid "Illegal operands"
-msgstr "Operandos ilegales"
-
-#: config/tc-cris.c:2134 config/tc-cris.c:2174
-#, c-format
-msgid "Immediate value not in 8 bit range: %ld"
-msgstr "El valor inmediato no está en el rango de 8 bit: %ld"
-
-#: config/tc-cris.c:2144 config/tc-cris.c:2195
-#, c-format
-msgid "Immediate value not in 16 bit range: %ld"
-msgstr "El valor inmediato no está en el rango de 16 bit: %ld"
-
-#: config/tc-cris.c:2179
-#, c-format
-msgid "Immediate value not in 8 bit signed range: %ld"
-msgstr "El valor inmediato no está en el rango de 8 bit con signo: %ld"
-
-#: config/tc-cris.c:2184
-#, c-format
-msgid "Immediate value not in 8 bit unsigned range: %ld"
-msgstr "El valor inmediato no está en el rango de 8 bit sin signo: %ld"
-
-#: config/tc-cris.c:2200
-#, c-format
-msgid "Immediate value not in 16 bit signed range: %ld"
-msgstr "El valor inmediato no está en el rango de 16 bit con signo: %ld"
-
-#: config/tc-cris.c:2205
-#, c-format
-msgid "Immediate value not in 16 bit unsigned range: %ld"
-msgstr "El valor inmediato no está en el rango de 16 bit sin signo: %ld"
-
-#: config/tc-cris.c:2231
-msgid "TLS relocation size does not match operand size"
-msgstr "TLS para tamaño de la reubicación no coincide con el tamaño de operando"
-
-#: config/tc-cris.c:2232
-msgid "PIC relocation size does not match operand size"
-msgstr "PIC como tamaño reubicado no coincide con el tamaño de operando"
-
-#: config/tc-cris.c:3379
-msgid "Calling gen_cond_branch_32 for .arch common_v10_v32\n"
-msgstr "Se llama a gen_cond_branch_32 para .arch common_v10_v32\n"
-
-#: config/tc-cris.c:3383
-msgid "32-bit conditional branch generated"
-msgstr "generada una ramificación condicional de 32-bit"
-
-#: config/tc-cris.c:3444
-msgid "Complex expression not supported"
-msgstr "No se admiten las expresiones complejas"
-
-#. FIXME: Is this function mentioned in the internals.texi manual? If
-#. not, add it.
-#: config/tc-cris.c:3594
-msgid "Bad call to md_atof () - floating point formats are not supported"
-msgstr "Llamada incorrecta a md_atof () - no se admiten los formatos de coma flotante"
-
-#: config/tc-cris.c:3635
-msgid "PC-relative relocation must be trivially resolved"
-msgstr "Reubicación relativa al PC se debe resolver trivialmente"
-
-#: config/tc-cris.c:3707
-#, c-format
-msgid "Value not in 16 bit range: %ld"
-msgstr "El valor no está en el rango de 16 bit: %ld"
-
-#: config/tc-cris.c:3715
-#, c-format
-msgid "Value not in 16 bit signed range: %ld"
-msgstr "El valor no está en el rango de 16 bit con signo: %ld"
-
-#: config/tc-cris.c:3723
-#, c-format
-msgid "Value not in 8 bit range: %ld"
-msgstr "El valor no está en el rango de 8 bit: %ld"
-
-#: config/tc-cris.c:3730
-#, c-format
-msgid "Value not in 8 bit signed range: %ld"
-msgstr "El valor no está en el rango de 8 bit con signo: %ld"
-
-#: config/tc-cris.c:3740
-#, c-format
-msgid "Value not in 4 bit unsigned range: %ld"
-msgstr "El valor no está en el rango de 4 bit sin signo: %ld"
-
-#: config/tc-cris.c:3747
-#, c-format
-msgid "Value not in 5 bit unsigned range: %ld"
-msgstr "El valor no está en el rango de 5 bit sin signo: %ld"
-
-#: config/tc-cris.c:3754
-#, c-format
-msgid "Value not in 6 bit range: %ld"
-msgstr "El valor no está en el rango de 6 bit: %ld"
-
-#: config/tc-cris.c:3761
-#, c-format
-msgid "Value not in 6 bit unsigned range: %ld"
-msgstr "El valor no está en el rango de 6 bit sin signo: %ld"
-
-#: config/tc-cris.c:3805
-#, c-format
-msgid "Please use --help to see usage and options for this assembler.\n"
-msgstr "Por favor utilice --help para ver el modo de empleo y casillas para este ensamblador.\n"
-
-#: config/tc-cris.c:3817
-msgid "--no-underscore is invalid with a.out format"
-msgstr "--no-underscore es inválido con el formato a.out"
-
-#: config/tc-cris.c:3829
-msgid "--pic is invalid for this object format"
-msgstr "--pic es inválido en este formato de objeto"
-
-#: config/tc-cris.c:3843
-#, c-format
-msgid "invalid <arch> in --march=<arch>: %s"
-msgstr "arquitectura <arq> en --march=<arq> no válida: %s"
-
-#: config/tc-cris.c:3952 config/tc-ft32.c:688 config/tc-moxie.c:776
-msgid "Semantics error. This type of operand can not be relocated, it must be an assembly-time constant"
-msgstr "Error semántico. Este tipo de operando no se puede reubicar, debe ser una constante en el momento de ensamblado"
-
-#: config/tc-cris.c:4000 config/tc-ft32.c:708 config/tc-moxie.c:824
-#, c-format
-msgid "Cannot generate relocation type for symbol %s, code %s"
-msgstr "No se puede generar el tipo reubicado para el símbolo %s, código %s"
-
-#. The messages are formatted to line up with the generic options.
-#: config/tc-cris.c:4013
-#, c-format
-msgid "CRIS-specific options:\n"
-msgstr "Opciones específicas de CRIS:\n"
-
-#: config/tc-cris.c:4015
-msgid " -h, -H Don't execute, print this help text. Deprecated.\n"
-msgstr " -h, -H No ejecutar, escribir este texto de ayuda. Obsoleto.\n"
-
-#: config/tc-cris.c:4017
-msgid " -N Warn when branches are expanded to jumps.\n"
-msgstr " -N Avisa cuando las ramificaciones se expanden a saltos.\n"
-
-#: config/tc-cris.c:4019
-msgid " --underscore User symbols are normally prepended with underscore.\n"
-msgstr " --underscore Los símbolos de usuario generalmente se preceden con subrayado.\n"
-
-#: config/tc-cris.c:4021
-msgid " Registers will not need any prefix.\n"
-msgstr " Los registros no necesitarán ningún prefijo.\n"
-
-#: config/tc-cris.c:4023
-msgid " --no-underscore User symbols do not have any prefix.\n"
-msgstr " --no-underscore Usuarios de símbolos no tienen ningún prefijo.\n"
-
-#: config/tc-cris.c:4025
-msgid " Registers will require a `$'-prefix.\n"
-msgstr " Los registros requerirán un prefijo `$'.\n"
-
-#: config/tc-cris.c:4028
-msgid " --pic\t\t\tEnable generation of position-independent code.\n"
-msgstr " --pic\t\t\tActiva la generación de código independiente de posición.\n"
-
-#: config/tc-cris.c:4031
-msgid ""
-" --march=<arch>\t\tGenerate code for <arch>. Valid choices for <arch>\n"
-"\t\t\t\tare v0_v10, v10, v32 and common_v10_v32.\n"
-msgstr ""
-" --march=<arq>\t\tGenera código para <arq>. Las casillas válidas para <arq>\n"
-"\t\t\t\tson v0_v10, v10, v32 y common_v10_v32.\n"
-
-#: config/tc-cris.c:4080
-msgid "Invalid pc-relative relocation"
-msgstr "Reubicación relativa a pc no válida"
-
-#: config/tc-cris.c:4125
-#, c-format
-msgid "Adjusted signed .word (%ld) overflows: `switch'-statement too large."
-msgstr "Signo ajustado .word (%ld) desborda: sentencia `switch' demasiado grande."
-
-#: config/tc-cris.c:4155
-#, c-format
-msgid ".syntax %s requires command-line option `--underscore'"
-msgstr ".syntax %s requiere de la opción de línea de mandatos `--underscore'"
-
-#: config/tc-cris.c:4164
-#, c-format
-msgid ".syntax %s requires command-line option `--no-underscore'"
-msgstr ".syntax %s requiere de la opción de línea de mandatos `--no-underscore'"
-
-#: config/tc-cris.c:4201
-msgid "Unknown .syntax operand"
-msgstr "Desconoce operando .syntax"
-
-#: config/tc-cris.c:4211
-msgid "Pseudodirective .file is only valid when generating ELF"
-msgstr "La pseudodirectiva .file es válida solamente cuando se genera ELF"
-
-#: config/tc-cris.c:4223
-msgid "Pseudodirective .loc is only valid when generating ELF"
-msgstr "La pseudodirectiva .loc es válida solamente cuando se genera ELF"
-
-#: config/tc-cris.c:4238
-#, c-format
-msgid "internal inconsistency problem: %s called for %d bytes"
-msgstr "problema de inconsistencia interna: se llamó %s por %d bytes"
-
-#: config/tc-cris.c:4390
-msgid "unknown operand to .arch"
-msgstr "operando desconocido para .arch"
-
-#: config/tc-cris.c:4399
-msgid ".arch <arch> requires a matching --march=... option"
-msgstr ".arch <arq> requiere una coincidencia --march=... opcional"
-
-#: config/tc-crx.c:708 config/tc-crx.c:728 config/tc-crx.c:743
-#, c-format
-msgid "Illegal register `%s' in instruction `%s'"
-msgstr "Registro ilegítimo «%s» en instrucción «%s»"
-
-#: config/tc-crx.c:771
-#, c-format
-msgid "Illegal Scale - `%d'"
-msgstr "Escala ilegal - '%d'"
-
-#. Issue a error message when register is illegal.
-#: config/tc-crx.c:1086
-#, c-format
-msgid "Illegal register (`%s') in instruction: `%s'"
-msgstr "Registro ilegítimo («%s») en instrucción: «%s»"
-
-#: config/tc-crx.c:1215
-#, c-format
-msgid "Illegal co-processor register in instruction `%s'"
-msgstr "Registro coprocesador ilegal en Instrucción `%s'"
-
-#: config/tc-crx.c:1222
-#, c-format
-msgid "Illegal co-processor special register in instruction `%s'"
-msgstr "Registro especial de coprocesador ilegal en la Instrucción «%s»"
-
-#: config/tc-crx.c:1542
-#, c-format
-msgid "Invalid DISPU4 operand value (arg %d)"
-msgstr "Valor de operando DISPU4 inválido (arg %d)"
-
-#: config/tc-crx.c:1546
-#, c-format
-msgid "Invalid CST4 operand value (arg %d)"
-msgstr "Valor de operando CST4 inválido (arg %d)"
-
-#: config/tc-crx.c:1549
-#, c-format
-msgid "Operand value is not within upper 64 KB (arg %d)"
-msgstr "El valor de operando no está en los 64 KB superiores (arg %d)"
-
-#: config/tc-crx.c:1683
-msgid "Invalid register in register list"
-msgstr "Registrador inválido en listado de registro"
-
-#: config/tc-crx.c:1737
-#, c-format
-msgid "Illegal register `%s' in cop-register list"
-msgstr "Registro ilegal «%s» en la lista de registros de coprocesador"
-
-#: config/tc-crx.c:1745
-#, c-format
-msgid "Illegal register `%s' in cop-special-register list"
-msgstr "Registro ilegal «%s» en la lista especial de registros de coprocesador"
-
-#: config/tc-crx.c:1764
-#, c-format
-msgid "Illegal register `%s' in user register list"
-msgstr "Registro ilegal «%s» en la lista de registros de usuario"
-
-#: config/tc-crx.c:1783
-#, c-format
-msgid "Illegal register `%s' in register list"
-msgstr "Registro ilegal «%s» en la lista de registros"
-
-#: config/tc-crx.c:1789
-#, c-format
-msgid "Maximum %d bits may be set in `mask16' operand"
-msgstr "Se pueden establecer %d bits `mask16' como máximo en operando"
-
-#: config/tc-crx.c:1798
-#, c-format
-msgid "rest of line ignored; first ignored character is `%c'"
-msgstr "se descarta el resto de la línea; el primer carácter descartado es `%c'"
-
-#: config/tc-crx.c:1806
-#, c-format
-msgid "Illegal `mask16' operand, operation is undefined - `%s'"
-msgstr "Operando `mask16' ilegal, la operación está indefinida - «%s»"
-
-#. HI can't be specified without LO (and vise-versa).
-#: config/tc-crx.c:1812
-msgid "HI/LO registers should be specified together"
-msgstr "Los registros HI/LO se deben especificar juntos"
-
-#: config/tc-crx.c:1818
-msgid "HI/LO registers should be specified without additional registers"
-msgstr "Los registros HI/LO se deben especificar sin registros adicionales"
-
-#. Variable not in small data read only segment accessed
-#. using small data read only anchor.
-#: config/tc-csky.c:1149 config/tc-mcore.c:1927 config/tc-microblaze.c:2054
-#: config/tc-microblaze.c:2358 config/tc-microblaze.c:2381
-msgid "unknown"
-msgstr "desconocido"
-
-#: config/tc-csky.c:1151
-#, fuzzy, c-format
-#| msgid "pcrel for branch to %s too far (0x%lx)"
-msgid "pcrel offset for branch to %s too far (0x%lx)"
-msgstr "el pcrel para ramificar a %s muy lejos (0x%lx)"
-
-#: config/tc-csky.c:1235
-#, fuzzy, c-format
-#| msgid "unknown architecture `%s'\n"
-msgid "unknown architecture `%s'"
-msgstr "desconoce arquitectura «%s» \n"
-
-#: config/tc-csky.c:1408
-#, fuzzy, c-format
-#| msgid "wasm32 assembler options:\n"
-msgid "C-SKY assembler options:\n"
-msgstr "opciones ensamblador wasm32:\n"
-
-#: config/tc-csky.c:1410
-#, fuzzy, c-format
-#| msgid " -march=ARCH enable instructions from architecture ARCH\n"
-msgid " -march=ARCH\t\t\tselect architecture ARCH:"
-msgstr " -march=ARQ permite instrucciones para la arquitectura ARQ\n"
-
-#: config/tc-csky.c:1429
-#, c-format
-msgid " -mcpu=CPU\t\t\tselect processor CPU:"
-msgstr ""
-
-#: config/tc-csky.c:1456
-#, c-format
-msgid " -mfloat-abi=ABI\t\tselect float ABI:"
-msgstr ""
-
-#: config/tc-csky.c:1475
-#, fuzzy, c-format
-#| msgid " -mlittle-endian generate little-endian code\n"
-msgid " -EL -mlittle-endian\t\tgenerate little-endian output\n"
-msgstr " -mlittle-endian genera código little-endian\n"
-
-#: config/tc-csky.c:1477
-#, fuzzy, c-format
-#| msgid " -mbig-endian generate big-endian code\n"
-msgid " -EB -mbig-endian\t\tgenerate big-endian output\n"
-msgstr " -mbig-endian genera código big-endian\n"
-
-#: config/tc-csky.c:1479
-#, fuzzy, c-format
-#| msgid " --pic\t\t\tEnable generation of position-independent code.\n"
-msgid " -fpic -pic\t\t\tgenerate position-independent code\n"
-msgstr " --pic\t\t\tActiva la generación de código independiente de posición.\n"
-
-#: config/tc-csky.c:1482
-#, c-format
-msgid " -mljump\t\t\ttransform jbf, jbt, jbr to jmpi (CK800 only)\n"
-msgstr ""
-
-#: config/tc-csky.c:1484
-#, c-format
-msgid " -mno-ljump\n"
-msgstr ""
-
-#: config/tc-csky.c:1488
-#, c-format
-msgid " -mbranch-stub\t\t\tenable branch stubs for PC-relative calls\n"
-msgstr ""
-
-#: config/tc-csky.c:1490
-#, c-format
-msgid " -mno-branch-stub\n"
-msgstr ""
-
-#: config/tc-csky.c:1494
-#, c-format
-msgid " -force2bsr -mforce2bsr\ttransform jbsr to bsr\n"
-msgstr ""
-
-#: config/tc-csky.c:1496
-#, c-format
-msgid " -no-force2bsr -mno-force2bsr\n"
-msgstr ""
-
-#: config/tc-csky.c:1498
-#, c-format
-msgid " -jsri2bsr -mjsri2bsr\t\ttransform jsri to bsr\n"
-msgstr ""
-
-#: config/tc-csky.c:1500
-#, c-format
-msgid " -no-jsri2bsr -mno-jsri2bsr\n"
-msgstr ""
-
-#: config/tc-csky.c:1503
-#, c-format
-msgid " -mnolrw -mno-lrw\t\timplement lrw as movih + ori\n"
-msgstr ""
-
-#: config/tc-csky.c:1505
-#, c-format
-msgid " -melrw\t\t\tenable extended lrw (CK800 only)\n"
-msgstr ""
-
-#: config/tc-csky.c:1507
-#, c-format
-msgid " -mno-elrw\n"
-msgstr ""
-
-#: config/tc-csky.c:1510
-#, c-format
-msgid " -mlaf -mliterals-after-func\temit literals after each function\n"
-msgstr ""
-
-#: config/tc-csky.c:1512
-#, c-format
-msgid " -mno-laf -mno-literals-after-func\n"
-msgstr ""
-
-#: config/tc-csky.c:1514
-#, c-format
-msgid " -mlabr -mliterals-after-br\temit literals after branch instructions\n"
-msgstr ""
-
-#: config/tc-csky.c:1516
-#, c-format
-msgid " -mno-labr -mnoliterals-after-br\n"
-msgstr ""
-
-#: config/tc-csky.c:1519
-#, c-format
-msgid " -mistack\t\t\tenable interrupt stack instructions\n"
-msgstr ""
-
-#: config/tc-csky.c:1521
-#, c-format
-msgid " -mno-istack\n"
-msgstr ""
-
-#: config/tc-csky.c:1524
-#, fuzzy, c-format
-#| msgid " -mno-stld23\t\t disable st/ld offset23 instruction\n"
-msgid " -mhard-float\t\t\tenable hard float instructions\n"
-msgstr " -mno-stld23\t\t desactiva la instrucción desplazamiento st/ld offset23\n"
-
-#: config/tc-csky.c:1526
-#, c-format
-msgid " -mmp\t\t\t\tenable multiprocessor instructions\n"
-msgstr ""
-
-#: config/tc-csky.c:1528
-#, fuzzy, c-format
-#| msgid "Illegal co-processor register in instruction `%s'"
-msgid " -mcp\t\t\t\tenable coprocessor instructions\n"
-msgstr "Registro coprocesador ilegal en Instrucción `%s'"
-
-#: config/tc-csky.c:1530
-#, c-format
-msgid " -mcache\t\t\tenable cache prefetch instruction\n"
-msgstr ""
-
-#: config/tc-csky.c:1532
-#, fuzzy, c-format
-#| msgid " -mno-stld23\t\t disable st/ld offset23 instruction\n"
-msgid " -msecurity\t\t\tenable security instructions\n"
-msgstr " -mno-stld23\t\t desactiva la instrucción desplazamiento st/ld offset23\n"
-
-#: config/tc-csky.c:1534
-#, fuzzy, c-format
-#| msgid " -mno-stld23\t\t disable st/ld offset23 instruction\n"
-msgid " -mtrust\t\t\tenable trust instructions\n"
-msgstr " -mno-stld23\t\t desactiva la instrucción desplazamiento st/ld offset23\n"
-
-#: config/tc-csky.c:1536
-#, c-format
-msgid " -mdsp\t\t\t\tenable DSP instructions\n"
-msgstr ""
-
-#: config/tc-csky.c:1538
-#, c-format
-msgid " -medsp\t\t\tenable enhanced DSP instructions\n"
-msgstr ""
-
-#: config/tc-csky.c:1540
-#, fuzzy, c-format
-#| msgid "unable to widen instruction"
-msgid " -mvdsp\t\t\tenable vector DSP instructions\n"
-msgstr "incapaz de extender instrucción"
-
-#: config/tc-csky.c:1773
-msgid "C-SKY ABI v1 (ck510/ck610) does not support -mbranch-stub"
-msgstr ""
-
-#: config/tc-csky.c:1778
-msgid "-mno-force2bsr is ignored with -mbranch-stub"
-msgstr ""
-
-#: config/tc-csky.c:1786
-msgid "-mno-force2bsr is ignored for ck801/ck802"
-msgstr ""
-
-#: config/tc-csky.c:1813
-msgid "-mljump is ignored for ck801/ck802"
-msgstr ""
-
-#: config/tc-csky.c:2095 config/tc-mcore.c:689
-msgid "more than 65K literal pools"
-msgstr "más de 65K de conjuntos literales"
-
-#: config/tc-csky.c:2342 read.c:3786
-#, c-format
-msgid "bad floating literal: %s"
-msgstr "literal de coma flotante incorrecta: %s"
-
-#: config/tc-csky.c:2490 config/tc-mcore.c:743
-msgid "missing ']'"
-msgstr "ausente ']'"
-
-#: config/tc-csky.c:2518 config/tc-mips.c:14358 config/tc-mips.c:14422
-#: config/tc-mips.c:14433 config/tc-score.c:2688 config/tc-score.c:2735
-msgid "unrecognized opcode"
-msgstr "no reconocido código de operación"
-
-#: config/tc-csky.c:3653 config/tc-mcore.c:1164
-msgid "translating mgeni to movi"
-msgstr "se traslada ‘mgeni’ a ‘movi’"
-
-#: config/tc-csky.c:5301 config/tc-tilegx.c:1451 config/tc-tilepro.c:1310
-#, c-format
-msgid "unsupported BFD relocation size %d"
-msgstr "no se admite el tamaño de reubicación BFD %d"
-
-#: config/tc-csky.c:5924
-#, fuzzy
-#| msgid "second operand must be 1"
-msgid "second operand must be 4"
-msgstr "el segundo operando debe ser 1"
-
-#: config/tc-csky.c:5948 config/tc-mcore.c:1527
-msgid "second operand must be 1"
-msgstr "el segundo operando debe ser 1"
-
-#: config/tc-csky.c:6021 config/tc-xtensa.c:1988
-msgid "register number out of range"
-msgstr "número de registro fuera de rango"
-
-#: config/tc-csky.c:6031
-#, fuzzy
-#| msgid "first transfer register must be even"
-msgid "64-bit operator src/dst register must be less than 15"
-msgstr "primer registro de transferencia debe ser par"
-
-#: config/tc-csky.c:7858
-#, fuzzy
-#| msgid "the first operand of `%s' must be `%s%s'"
-msgid "the first operand must be a symbol"
-msgstr "el primer operando de `%s' debe ser `%s%s'"
-
-#: config/tc-csky.c:7867
-#, fuzzy
-#| msgid "missing size"
-msgid "missing stack size"
-msgstr "ausente el tamaño"
-
-#: config/tc-csky.c:7880 config/tc-score.c:4240
-msgid "value not in range [0, 0xffffffff]"
-msgstr "el valor no está en el rango [0, 0xffffffff]"
-
-#: config/tc-csky.c:7890 config/tc-mcore.c:782
-msgid "operand must be a constant"
-msgstr "operando debe ser una constante"
-
-#: config/tc-d10v.c:216
-#, c-format
-msgid ""
-"D10V options:\n"
-"-O Optimize. Will do some operations in parallel.\n"
-"--gstabs-packing Pack adjacent short instructions together even\n"
-" when --gstabs is specified. On by default.\n"
-"--no-gstabs-packing If --gstabs is specified, do not pack adjacent\n"
-" instructions together.\n"
-msgstr ""
-"Opciones D10V:\n"
-"-O Optimiza. Hará algunas operaciones en paralelo.\n"
-"--gstabs-packing Empaqueta instrucciones pares adyacentes cortas juntas\n"
-" cuando se especifique --gstabs. Activado por defecto.\n"
-"--no-gstabs-packing Si se especifica --gstabs, no empaqueta juntas\n"
-" las instrucciones adjacentes.\n"
-
-#: config/tc-d10v.c:573
-msgid "operand is not an immediate"
-msgstr "operando no es un inmediato"
-
-#: config/tc-d10v.c:590
-#, c-format
-msgid "operand out of range: %lu"
-msgstr "operando fuera de rango: %lu"
-
-#: config/tc-d10v.c:650
-msgid "Instruction must be executed in parallel with another instruction."
-msgstr "La instrucción se debe ejecutar en paralelo con otra instrucción."
-
-#: config/tc-d10v.c:704 config/tc-d10v.c:712
-#, c-format
-msgid "packing conflict: %s must dispatch sequentially"
-msgstr "conflicto de empaquetado: %s debe despachar secuencialmente"
-
-#: config/tc-d10v.c:811
-#, c-format
-msgid "resource conflict (R%d)"
-msgstr "conflicto de recurso (R%d)"
-
-#: config/tc-d10v.c:814
-#, c-format
-msgid "resource conflict (A%d)"
-msgstr "conflicto de recurso (A%d)"
-
-#: config/tc-d10v.c:816
-msgid "resource conflict (PSW)"
-msgstr "conflicto de recurso (PSW)"
-
-#: config/tc-d10v.c:818
-msgid "resource conflict (C flag)"
-msgstr "conflicto de recurso (opción C)"
-
-#: config/tc-d10v.c:820
-msgid "resource conflict (F flag)"
-msgstr "conflicto de recurso (opción F)"
-
-#: config/tc-d10v.c:970
-msgid "Instruction must be executed in parallel"
-msgstr "La instrucción se debe ejecutar en paralelo"
-
-#: config/tc-d10v.c:973
-msgid "Long instructions may not be combined."
-msgstr "Las instrucciones long no se pueden combinar."
-
-#: config/tc-d10v.c:1006
-msgid "One of these instructions may not be executed in parallel."
-msgstr "Una de estas instrucciones no se puede ejecutar en paralelo."
-
-#: config/tc-d10v.c:1010 config/tc-d30v.c:1034
-msgid "Two IU instructions may not be executed in parallel"
-msgstr "Dos instrucciones IU no se pueden ejecutar en paralelo"
-
-#: config/tc-d10v.c:1012 config/tc-d10v.c:1020 config/tc-d10v.c:1034
-#: config/tc-d10v.c:1049 config/tc-d30v.c:1035 config/tc-d30v.c:1044
-msgid "Swapping instruction order"
-msgstr "Se intercambia el orden de la instrucción"
-
-#: config/tc-d10v.c:1018 config/tc-d30v.c:1041
-msgid "Two MU instructions may not be executed in parallel"
-msgstr "Dos instrucciones MU no se pueden ejecutar en paralelo"
-
-#: config/tc-d10v.c:1038 config/tc-d30v.c:1061
-msgid "IU instruction may not be in the left container"
-msgstr "Una instrucción IU no puede estar en el contenedor izquierdo"
-
-# Parece que R es 'right' y L es 'left'. Revisar el código para comprobar
-# y mejorar esta traducción. cfuga
-#: config/tc-d10v.c:1040 config/tc-d10v.c:1055
-msgid "Instruction in R container is squashed by flow control instruction in L container."
-msgstr "La instrucción en el contenedor R es aplastada por la instrucción de control de flujo en el contenedor L."
-
-#: config/tc-d10v.c:1053 config/tc-d30v.c:1072
-msgid "MU instruction may not be in the right container"
-msgstr "Una instrucción MU no puede estar en el contenedor derecho"
-
-#: config/tc-d10v.c:1059 config/tc-d30v.c:1084
-msgid "unknown execution type passed to write_2_short()"
-msgstr "se pasó un tipo de ejecución desconocido a write_2_short()"
-
-#: config/tc-d10v.c:1188 config/tc-d10v.c:1361
-msgid "bad opcode or operands"
-msgstr "código de operación u operandos incorrectos"
-
-#: config/tc-d10v.c:1263
-msgid "value out of range"
-msgstr "valor fuera de rango"
-
-#: config/tc-d10v.c:1337
-msgid "illegal operand - register name found where none expected"
-msgstr "operando ilegal - se encontró un nombre de registro donde no se esperaba ninguno"
-
-#: config/tc-d10v.c:1372
-msgid "Register number must be EVEN"
-msgstr "El número de registro debe ser PAR"
-
-#: config/tc-d10v.c:1375
-msgid "Unsupported use of sp"
-msgstr "No se admite el uso de sp"
-
-#: config/tc-d10v.c:1394
-#, fuzzy, c-format
-#| msgid "cr%ld is a reserved control register"
-msgid "cr%d is a reserved control register"
-msgstr "cr%ld es un registro de control reservado"
-
-#: config/tc-d10v.c:1569
-#, c-format
-msgid "line %d: rep or repi must include at least 4 instructions"
-msgstr "línea %d: rep o repi debe incluir por lo menos 4 instrucciones"
-
-#: config/tc-d10v.c:1761
-msgid "can't find previous opcode "
-msgstr "no se puede encontrar el código de operación previo "
-
-#: config/tc-d10v.c:1773
-#, c-format
-msgid "could not assemble: %s"
-msgstr "no se puede ensamblar: %s"
-
-#: config/tc-d10v.c:1788 config/tc-d10v.c:1810 config/tc-d30v.c:1741
-msgid "Unable to mix instructions as specified"
-msgstr "No se pueden mezclar las instrucciones como se especificó"
-
-#: config/tc-d30v.c:146
-#, c-format
-msgid "Register name %s conflicts with symbol of the same name"
-msgstr "El nombre de registro %s tiene conflictos con el símbolo del mismo nombre"
-
-#: config/tc-d30v.c:236
-#, c-format
-msgid ""
-"\n"
-"D30V options:\n"
-"-O Make adjacent short instructions parallel if possible.\n"
-"-n Warn about all NOPs inserted by the assembler.\n"
-"-N Warn about NOPs inserted after word multiplies.\n"
-"-c Warn about symbols whose names match register names.\n"
-"-C Opposite of -C. -c is the default.\n"
-msgstr ""
-"\n"
-"Opciones D30V:\n"
-"-O Crea instrucciones short adyacentes cortas paralelas si es posible.\n"
-"-n Avisa sobre todos los NOPs insertados por el ensamblador.\n"
-"-N Avisa sobre los NOPs insertados tras los múltiplos de palabra.\n"
-"-c Avisa sobre los símbolos cuyos nombres coincidan con nombres de registros.\n"
-"-C Lo opuesto de -C. -c es por defecto.\n"
-
-#: config/tc-d30v.c:364
-msgid "unexpected 12-bit reloc type"
-msgstr "tipo reubicado de 12-bit inesperado"
-
-#: config/tc-d30v.c:371
-msgid "unexpected 18-bit reloc type"
-msgstr "tipo reubicado de 18-bit inesperado"
-
-#: config/tc-d30v.c:622
-#, c-format
-msgid "%s NOP inserted"
-msgstr "%s NOP insertados"
-
-#: config/tc-d30v.c:623
-msgid "sequential"
-msgstr "secuencial"
-
-#: config/tc-d30v.c:623
-msgid "parallel"
-msgstr "paralelo"
-
-#: config/tc-d30v.c:1030
-msgid "Instructions may not be executed in parallel"
-msgstr "Las instrucciones no se pueden ejecutar en paralelo"
-
-#: config/tc-d30v.c:1043
-#, c-format
-msgid "Executing %s in IU may not work"
-msgstr "Ejecutar %s en IU podría no funcionar"
-
-#: config/tc-d30v.c:1050
-#, c-format
-msgid "Executing %s in IU may not work in parallel execution"
-msgstr "Ejecutar %s en IU podría no funcionar en ejecución paralela"
-
-#: config/tc-d30v.c:1063
-#, c-format
-msgid "special left instruction `%s' kills instruction `%s' in right container"
-msgstr "la instrucción especial izquierda «%s» mata a la instrucción «%s» en el contenedor derecho"
-
-#: config/tc-d30v.c:1074
-#, c-format
-msgid "Executing %s in reverse serial with %s may not work"
-msgstr "Ejecutar %s en serie reversa con %s podría no funcionar"
-
-#: config/tc-d30v.c:1077
-#, c-format
-msgid "Executing %s in IU in reverse serial may not work"
-msgstr "Ejecutar %s en IU en serie reversa podría no funcionar"
-
-#: config/tc-d30v.c:1265
-msgid "Odd numbered register used as target of multi-register instruction"
-msgstr "Se usan registros numerados impares como objetivo para una instrucción multi-registro"
-
-#: config/tc-d30v.c:1329 config/tc-d30v.c:1365
-#, c-format
-msgid "unknown condition code: %s"
-msgstr "desconoce código condicional: %s"
-
-#: config/tc-d30v.c:1358
-#, c-format
-msgid "cmpu doesn't support condition code %s"
-msgstr "cmpu no admite el código de condición %s"
-
-#: config/tc-d30v.c:1393
-#, c-format
-msgid "unknown opcode: %s"
-msgstr "desconoce código de operación: %s"
-
-#: config/tc-d30v.c:1404
-#, c-format
-msgid "operands for opcode `%s' do not match any valid format"
-msgstr "los operandos para el código de operación «%s» no coincide con ningún formato válido"
-
-#: config/tc-d30v.c:1619 config/tc-d30v.c:1636
-msgid "Cannot assemble instruction"
-msgstr "No se puede ensamblar la instrucción"
-
-#: config/tc-d30v.c:1621
-msgid "First opcode is long. Unable to mix instructions as specified."
-msgstr "El primer código de operación es long. No se pueden mezclar las instrucciones como se especificó."
-
-#: config/tc-d30v.c:1691
-msgid "word of NOPs added between word multiply and load"
-msgstr "word de NOPs agregados entre multiply de word y load"
-
-#: config/tc-d30v.c:1693
-msgid "word of NOPs added between word multiply and 16-bit multiply"
-msgstr "word de NOPs agregados entre multiply de word y multiply de 16-bit"
-
-#: config/tc-d30v.c:1725
-msgid "Instruction uses long version, so it cannot be mixed as specified"
-msgstr "La instrucción usa una versión long, así que no se puede mezclar como se especificó"
-
-#: config/tc-d30v.c:1852
-#, c-format
-msgid "value too large to fit in %d bits"
-msgstr "valor demasiado grande para caber en %d bits"
-
-#: config/tc-d30v.c:2030 config/tc-pru.c:216 config/tc-pru.c:332
-#, c-format
-msgid "Alignment too large: %d assumed"
-msgstr "Alineación demasiado grande: se asume %d"
-
-#: config/tc-dlx.c:213
-msgid "missing .proc"
-msgstr "ausente .proc"
-
-#: config/tc-dlx.c:230
-msgid ".endfunc missing for previous .proc"
-msgstr "ausente .endfunc para el .proc previo"
-
-#: config/tc-dlx.c:320
-#, c-format
-msgid "Bad operand for a load instruction: <%s>"
-msgstr "Operando incorrecto para una instrucción load <%s>"
-
-#: config/tc-dlx.c:434
-#, c-format
-msgid "Bad operand for a store instruction: <%s>"
-msgstr "Operando incorrecto para una instrucción store <%s>"
-
-#: config/tc-dlx.c:614
-#, c-format
-msgid "Expression Error for operand modifier %%hi/%%lo\n"
-msgstr "Error de Expresión para el modificador de operando %%hi/%%lo\n"
-
-#: config/tc-dlx.c:627
-#, c-format
-msgid "Invalid expression after %%%%\n"
-msgstr "Expresión no válida tras %%%%\n"
-
-#: config/tc-dlx.c:692 config/tc-tic4x.c:2456
-#, c-format
-msgid "Unknown opcode `%s'."
-msgstr "Desconoce código de operación «%s»."
-
-#: config/tc-dlx.c:701
-msgid "Can not set dlx_skip_hi16_flag"
-msgstr "No se puede establecer dlx_skip_hi16_flag"
-
-#: config/tc-dlx.c:715
-#, c-format
-msgid "Missing arguments for opcode <%s>."
-msgstr "Ausentes argumentos para el código de operación <%s>."
-
-#: config/tc-dlx.c:749
-#, c-format
-msgid "Too many operands: %s"
-msgstr "Demasiados operandos: %s"
-
-#: config/tc-dlx.c:787
-#, c-format
-msgid "Both the_insn.HI and the_insn.LO are set : %s"
-msgstr "Tanto the_insn.HI como the_insn.LO están activados: %s"
-
-#: config/tc-dlx.c:857
-msgid "failed regnum sanity check."
-msgstr "inspección sanitaria de regnum ha fallado."
-
-#: config/tc-dlx.c:870
-msgid "failed general register sanity check."
-msgstr "la inspección sanitara de registros generales ha fallado."
-
-#. Types or values of args don't match.
-#: config/tc-dlx.c:878
-msgid "Invalid operands"
-msgstr "Operandos inválidos"
-
-#: config/tc-dlx.c:1097
-#, c-format
-msgid "label \"$%d\" redefined"
-msgstr "etiqueta \"$%d\" redefinida"
-
-#: config/tc-dlx.c:1135
-msgid "Invalid expression after # number\n"
-msgstr "Expresión no válida tras # número\n"
-
-#: config/tc-dlx.c:1180 config/tc-m32r.c:2273 config/tc-nds32.c:7840
-#: config/tc-sparc.c:4015
-#, c-format
-msgid "internal error: can't export reloc type %d (`%s')"
-msgstr "error interno: no se puede exportar el tipo reubicado %d («%s»)"
-
-#: config/tc-epiphany.c:126
-#, c-format
-msgid "EPIPHANY specific command line options:\n"
-msgstr "Opciones de la línea de mandatos específicas de EPIPHANY:\n"
-
-#: config/tc-epiphany.c:367
-msgid "register number too large for push/pop"
-msgstr "número de registro demasiado grande para push/pop"
-
-#: config/tc-epiphany.c:371
-msgid "register is out of order"
-msgstr "el registro está fuera de orden"
-
-#: config/tc-epiphany.c:385
-msgid "malformed reglist in push/pop"
-msgstr "lista de registros malformada en push/pop"
-
-#. Checks for behavioral restrictions on LD/ST instructions.
-#: config/tc-epiphany.c:431
-msgid "destination register modified by displacement-post-modified address"
-msgstr "el registro de destino se modificó por la dirección de desplazamiento-post-modificada"
-
-#: config/tc-epiphany.c:432
-msgid "ldrd/strd requires even:odd register pair"
-msgstr "ldrd/strd requiere un par de registros par:impar"
-
-#: config/tc-epiphany.c:820 config/tc-m32r.c:1785
-msgid "Addend to unresolved symbol not on word boundary."
-msgstr "La adición para un símbolo sin resolver no está en un límite de word."
-
-#: config/tc-fr30.c:81
-#, c-format
-msgid " FR30 specific command line options:\n"
-msgstr " Opciones de línea de mandatos específicas de FR30:\n"
-
-#: config/tc-fr30.c:134
-#, c-format
-msgid "Instruction %s not allowed in a delay slot."
-msgstr "No se permite la instrucción %s en una ranura de retardo."
-
-#: config/tc-frv.c:403
-#, c-format
-msgid "Unknown cpu -mcpu=%s"
-msgstr "Desconoce cpu -mcpu=%s"
-
-#: config/tc-frv.c:456
-#, c-format
-msgid "FRV specific command line options:\n"
-msgstr "Opciones de línea de mandatos específicas de FVR:\n"
-
-#: config/tc-frv.c:457
-#, c-format
-msgid "-G n Put data <= n bytes in the small data area\n"
-msgstr "-G n Coloca datos ≤ n bytes en el área de datos small\n"
-
-#: config/tc-frv.c:458
-#, c-format
-msgid "-mgpr-32 Mark generated file as only using 32 GPRs\n"
-msgstr "-mgpr-32 Marca el fichero generado para solo usar 32 GPRs\n"
-
-#: config/tc-frv.c:459
-#, c-format
-msgid "-mgpr-64 Mark generated file as using all 64 GPRs\n"
-msgstr "-mgpr-64 Marca el fichero generado para usar todos los 64 GPRs\n"
-
-#: config/tc-frv.c:460
-#, c-format
-msgid "-mfpr-32 Mark generated file as only using 32 FPRs\n"
-msgstr "-mfpr-32 Marca el fichero generado para solo usar 32 FPRs\n"
-
-#: config/tc-frv.c:461
-#, c-format
-msgid "-mfpr-64 Mark generated file as using all 64 FPRs\n"
-msgstr "-mfpr-64 Marca el fichero generado para usar todos los 64 FPRs\n"
-
-#: config/tc-frv.c:462
-#, c-format
-msgid "-msoft-float Mark generated file as using software FP\n"
-msgstr "-msoft-float Marca el fichero generado para usar FP de software\n"
-
-#: config/tc-frv.c:463
-#, c-format
-msgid "-mdword Mark generated file as using a 8-byte stack alignment\n"
-msgstr "-mdword Marca el fichero generado para usar alineamiento de pila de 8-bytes\n"
-
-#: config/tc-frv.c:464
-#, c-format
-msgid "-mno-dword Mark generated file as using a 4-byte stack alignment\n"
-msgstr "-mno-dword Marca el fichero generado para usar una alineamiento de pila de 4-bytes\n"
-
-#: config/tc-frv.c:465
-#, c-format
-msgid "-mdouble Mark generated file as using double precision FP insns\n"
-msgstr "-mdouble Marca el fichero generado para usar insns FP de doble precisión\n"
-
-#: config/tc-frv.c:466
-#, c-format
-msgid "-mmedia Mark generated file as using media insns\n"
-msgstr "-mmedia Marca el fichero generado para usar insns media\n"
-
-#: config/tc-frv.c:467
-#, c-format
-msgid "-mmuladd Mark generated file as using multiply add/subtract insns\n"
-msgstr "-mmuladd Marca el fichero generado para usar insns adición/sustracción múltiples\n"
-
-#: config/tc-frv.c:468
-#, c-format
-msgid "-mpack Allow instructions to be packed\n"
-msgstr "-mpack Permite que se empaqueten las instrucciones\n"
-
-#: config/tc-frv.c:469
-#, c-format
-msgid "-mno-pack Do not allow instructions to be packed\n"
-msgstr "-mno-pack No permite que se empaqueten las instrucciones\n"
-
-#: config/tc-frv.c:470
-#, c-format
-msgid "-mpic Mark generated file as using small position independent code\n"
-msgstr "-mpic Marca el fichero generado para usar código independiente de posición small\n"
-
-#: config/tc-frv.c:471
-#, c-format
-msgid "-mPIC Mark generated file as using large position independent code\n"
-msgstr "-mPIC Marca el fichero generado para usar código independiente de posición large\n"
-
-#: config/tc-frv.c:472
-#, c-format
-msgid "-mlibrary-pic Mark generated file as using position independent code for libraries\n"
-msgstr "-mlibrary-pic Marca el fichero generado como usando posición de código independiente para bibliotecas\n"
-
-#: config/tc-frv.c:473
-#, c-format
-msgid "-mfdpic Assemble for the FDPIC ABI\n"
-msgstr "-mfdpic Ensambla para la ABI de FDPIC\n"
-
-#: config/tc-frv.c:474
-#, c-format
-msgid "-mnopic Disable -mpic, -mPIC, -mlibrary-pic and -mfdpic\n"
-msgstr "-mnopic Desactiva -mpic, -mPIC, -mlibrary-pic y -mfdpic\n"
-
-#: config/tc-frv.c:475
-#, c-format
-msgid "-mcpu={fr500|fr550|fr400|fr405|fr450|fr300|frv|simple|tomcat}\n"
-msgstr "-mcpu={fr500|fr550|fr400|fr405|fr450|fr300|frv|simple|tomcat}\n"
-
-#: config/tc-frv.c:476
-#, c-format
-msgid " Record the cpu type\n"
-msgstr " Graba el tipo de cpu\n"
-
-#: config/tc-frv.c:477
-#, c-format
-msgid "-mtomcat-stats Print out stats for tomcat workarounds\n"
-msgstr "-mtomcat-stats Muestra estadísticas para las alternativas de tomcat\n"
-
-#: config/tc-frv.c:478
-#, c-format
-msgid "-mtomcat-debug Debug tomcat workarounds\n"
-msgstr "-mtomcat-debug Depura las alternativas de tomcat\n"
-
-#: config/tc-frv.c:1160
-msgid "VLIW packing used for -mno-pack"
-msgstr "Se utilizó empaquetado VLIW para -mno-pack"
-
-#: config/tc-frv.c:1170
-msgid "Instruction not supported by this architecture"
-msgstr "La instrucción no se admite en esta arquitectura"
-
-#: config/tc-frv.c:1180
-msgid "VLIW packing constraint violation"
-msgstr "Violación de restricción de empaquetado VLIW"
-
-#: config/tc-frv.c:1771
-#, c-format
-msgid "Relocation %s is not safe for %s"
-msgstr "La reubicación %s no es segura para %s"
-
-#: config/tc-ft32.c:146 config/tc-moxie.c:102
-msgid "expecting register"
-msgstr "se espera un registro"
-
-#: config/tc-ft32.c:167 config/tc-ft32.c:183 config/tc-moxie.c:121
-#: config/tc-moxie.c:137
-msgid "illegal register number"
-msgstr "número de registro ilegal"
-
-#: config/tc-ft32.c:239 config/tc-moxie.c:186 config/tc-pj.c:260
-#, c-format
-msgid "unknown opcode %s"
-msgstr "desconoce código de operación %s"
-
-#: config/tc-ft32.c:264
-#, c-format
-msgid "unknown width specifier '.%c'"
-msgstr "especificador desconocida de anchura `%c'"
-
-#: config/tc-ft32.c:387
-msgid "internal error in argument parsing"
-msgstr "error interno en interpretación argumental"
-
-#: config/tc-ft32.c:400
-msgid "expected comma separator"
-msgstr "esperaba separador de coma"
-
-#: config/tc-ft32.c:412 config/tc-moxie.c:230 config/tc-moxie.c:290
-#: config/tc-moxie.c:302 config/tc-moxie.c:335 config/tc-moxie.c:367
-#: config/tc-moxie.c:400 config/tc-moxie.c:454 config/tc-moxie.c:508
-#: config/tc-moxie.c:518 config/tc-moxie.c:541 config/tc-moxie.c:554
-#: config/tc-pj.c:308
-msgid "extra stuff on line ignored"
-msgstr "se descarta los elementos extra en la línea"
-
-#: config/tc-ft32.c:472 config/tc-lm32.c:236 config/tc-moxie.c:585
-msgid "bad call to md_atof"
-msgstr "llamada incorrecta a md_atof"
-
-#: config/tc-ft32.c:522
-#, c-format
-msgid "FT32 options:\n"
-msgstr "Opciones FT32:\n"
-
-#: config/tc-ft32.c:523
-#, c-format
-msgid ""
-"\n"
-"-no-relax\t\tdon't relax relocations\n"
-"\t\t\t\n"
-msgstr ""
-"\n"
-"-no-relax\t\tno relajar reubicaciones\n"
-"\t\t\t\n"
-
-#. These macros must be defined, but is will be a fatal assembler
-#. error if we ever hit them.
-#: config/tc-ft32.h:35 config/tc-pj.h:40
-msgid "estimate size\n"
-msgstr "tamaño estimado\n"
-
-#: config/tc-ft32.h:36 config/tc-pj.h:39
-msgid "convert_frag\n"
-msgstr "convert_frag\n"
-
-#: config/tc-h8300.c:176
-#, c-format
-msgid "new section '%s' defined without attributes - this might cause problems"
-msgstr "se definió la sección nueva «%s» sin atributos - esto podría causar problemas"
-
-#: config/tc-h8300.c:441 config/tc-h8300.c:449
-msgid "Reg not valid for H8/300"
-msgstr "El registro no es válido para H8/300"
-
-#: config/tc-h8300.c:530
-msgid "invalid operand size requested"
-msgstr "se solicitó un tamaño de operando inválido"
-
-#: config/tc-h8300.c:635
-msgid "Invalid register list for ldm/stm\n"
-msgstr "Lista de registros no válida para ldm/stm\n"
-
-#: config/tc-h8300.c:661 config/tc-h8300.c:666 config/tc-h8300.c:673
-msgid "mismatch between register and suffix"
-msgstr "no hay coincidencia entre el registro y el sufijo"
-
-#: config/tc-h8300.c:678
-msgid "invalid suffix after register."
-msgstr "sufijo inválido tras registro."
-
-#: config/tc-h8300.c:700
-msgid "address too high for vector table jmp/jsr"
-msgstr "dirección demasiado alta para distribuciones de vectores jmp/jsr"
-
-#: config/tc-h8300.c:727 config/tc-h8300.c:839 config/tc-h8300.c:849
-msgid "Wrong size pointer register for architecture."
-msgstr "Tamaño de registro puntero incorrecto para la arquitectura."
-
-#: config/tc-h8300.c:786 config/tc-h8300.c:794 config/tc-h8300.c:823
-msgid "expected @(exp, reg16)"
-msgstr "se esperaba @(exp, reg16)"
-
-#: config/tc-h8300.c:812
-msgid "expected .L, .W or .B for register in indexed addressing mode"
-msgstr "se esperaba .L, .W ó .B para el registro en modo de direccionamiento indexado"
-
-#: config/tc-h8300.c:1006
-msgid "expected valid addressing mode for mova: \"@(disp, ea.sz),ERn\""
-msgstr "se esperaba un modo de direccionamiento válido para mova: \"@(disp, ea.sz),ERn\""
-
-#: config/tc-h8300.c:1024 config/tc-h8300.c:1033
-msgid "expected register"
-msgstr "se esperaba un registro"
-
-#: config/tc-h8300.c:1049
-msgid "expected closing paren"
-msgstr "se esperaba un paréntesis que cierra"
-
-#: config/tc-h8300.c:1108
-#, c-format
-msgid "can't use high part of register in operand %d"
-msgstr "no se puede usar la parte alta del registro en operando %d"
-
-#: config/tc-h8300.c:1265
-#, c-format
-msgid "Opcode `%s' with these operand types not available in %s mode"
-msgstr "El código de operación «%s» con esos tipos de operando no está disponible en el modo %s"
-
-#: config/tc-h8300.c:1274
-msgid "mismatch between opcode size and operand size"
-msgstr "no hay coincidencia entre el tamaño del código de operación y el tamaño de operando"
-
-#: config/tc-h8300.c:1310
-#, c-format
-msgid "operand %s0x%lx out of range."
-msgstr "operando %s0x%lx fuera de rango."
-
-#: config/tc-h8300.c:1420
-msgid "Can't work out size of operand.\n"
-msgstr "No se puede obtener el tamaño de operando.\n"
-
-#: config/tc-h8300.c:1470
-#, c-format
-msgid "Opcode `%s' with these operand types not available in H8/300 mode"
-msgstr "El código de operación «%s» con esos tipos de operando no están disponibles en el modo H8/300"
-
-#: config/tc-h8300.c:1475
-#, c-format
-msgid "Opcode `%s' with these operand types not available in H8/300H mode"
-msgstr "El código de operación «%s» con esos tipos de operando no está disponible en el modo H8/300H"
-
-#: config/tc-h8300.c:1481
-#, c-format
-msgid "Opcode `%s' with these operand types not available in H8/300S mode"
-msgstr "El código de operación «%s» con esos tipos de operando no está disponible en el modo H8/300S"
-
-#: config/tc-h8300.c:1542 config/tc-h8300.c:1562
-msgid "Need #1 or #2 here"
-msgstr "Necesita Nº1 o Nº2 aquí"
-
-#: config/tc-h8300.c:1557
-msgid "#4 not valid on H8/300."
-msgstr "Nº4 no valida en H8/300."
-
-#: config/tc-h8300.c:1664 config/tc-h8300.c:1736
-#, c-format
-msgid "branch operand has odd offset (%lx)\n"
-msgstr "operando de ramificación tiene un desplazamiento impar (%lx)\n"
-
-#: config/tc-h8300.c:1774
-msgid "destination operand must be 16 bit register"
-msgstr "operando de destino debe ser un registro de 16 bit"
-
-#: config/tc-h8300.c:1783
-msgid "source operand must be 8 bit register"
-msgstr "operando de origen debe ser un registro de 8 bit"
-
-#: config/tc-h8300.c:1791
-msgid "destination operand must be 16bit absolute address"
-msgstr "operando de destino debe ser una dirección absoluta de 16bit"
-
-#: config/tc-h8300.c:1798
-msgid "destination operand must be 8 bit register"
-msgstr "operando de destino debe ser un registro de 8 bit"
-
-#: config/tc-h8300.c:1806
-msgid "source operand must be 16bit absolute address"
-msgstr "operando de origen debe ser una dirección absoluta de 16bit"
-
-#. This seems more sane than saying "too many operands". We'll
-#. get here only if the trailing trash starts with a comma.
-#: config/tc-h8300.c:1814 config/tc-mips.c:14374 config/tc-mips.c:14442
-#: config/tc-mmix.c:469 config/tc-mmix.c:481 config/tc-mmix.c:2537
-#: config/tc-mmix.c:2561 config/tc-mmix.c:2834
-msgid "invalid operands"
-msgstr "operandos inválidos"
-
-#: config/tc-h8300.c:1845
-msgid "operand/size mis-match"
-msgstr "no coinciden los operandos/tamaños"
-
-#: config/tc-h8300.c:1945 config/tc-sh.c:2537 config/tc-z8k.c:1243
-msgid "unknown opcode"
-msgstr "desconoce código de operación"
-
-#: config/tc-h8300.c:1978
-msgid "invalid operand in ldm"
-msgstr "operando inválido en ldm"
-
-#: config/tc-h8300.c:1987
-msgid "invalid operand in stm"
-msgstr "operando inválido en stm"
-
-#: config/tc-h8300.c:2186
-#, c-format
-msgid "Invalid argument to --mach option: %s"
-msgstr "Argumento inválido para opción --mach: %s"
-
-#: config/tc-h8300.c:2197
-#, c-format
-msgid " H8300-specific assembler options:\n"
-msgstr " Opciones de ensamblador específicas de H8300:\n"
-
-#: config/tc-h8300.c:2198
-#, c-format
-msgid ""
-" -mach=<name> Set the H8300 machine type to one of:\n"
-" h8300h, h8300hn, h8300s, h8300sn, h8300sx, h8300sxn\n"
-msgstr ""
-" -mach=<name> Establece el tipo de máquina H8300 a una de:\n"
-" h8300h, h8300hn, h8300s, h8300sn, h8300sx, h8300sxn\n"
-
-#: config/tc-h8300.c:2201
-#, c-format
-msgid " -h-tick-hex Support H'00 style hex constants\n"
-msgstr " -h-tick-hex admite contantes hex estilo H'00\n"
-
-#: config/tc-h8300.c:2210
-#, c-format
-msgid "call to tc_aout_fix_to_chars \n"
-msgstr "llamada a tc_aout_fix_to_chars \n"
-
-#: config/tc-h8300.c:2219
-#, c-format
-msgid "call to md_convert_frag \n"
-msgstr "llamada a md_convert_frag \n"
-
-#: config/tc-h8300.c:2270
-#, c-format
-msgid "call to md_estimate_size_before_relax \n"
-msgstr "llamada a md_estimate_size_before_relax \n"
-
-#: config/tc-h8300.c:2285
-msgid "Unexpected reference to a symbol in a non-code section"
-msgstr "Referencia inesperada a un símbolo en una sección que no es de código"
-
-#: config/tc-h8300.c:2322 config/tc-mcore.c:2208 config/tc-microblaze.c:2552
-#: config/tc-pj.c:488 config/tc-sh.c:3886 config/tc-tic6x.c:4515
-#, c-format
-msgid "Cannot represent relocation type %s"
-msgstr "No se puede representar el tipo reubicado %s"
-
-#. Simple range checking for FIELD against HIGH and LOW bounds.
-#. IGNORE is used to suppress the error message.
-#. Variant of CHECK_FIELD for use in md_apply_fix and other places where
-#. the current file and line number are not valid.
-#: config/tc-hppa.c:1027 config/tc-hppa.c:1041
-#, c-format
-msgid "Field out of range [%d..%d] (%d)."
-msgstr "Campo fuera de rango [%d..%d] (%d)."
-
-#. Simple alignment checking for FIELD against ALIGN (a power of two).
-#. IGNORE is used to suppress the error message.
-#: config/tc-hppa.c:1055
-#, c-format
-msgid "Field not properly aligned [%d] (%d)."
-msgstr "El campo no está alineado adecuadamente [%d] (%d)."
-
-#: config/tc-hppa.c:1108
-msgid "Missing .exit\n"
-msgstr "Ausente .exit\n"
-
-#: config/tc-hppa.c:1111
-msgid "Missing .procend\n"
-msgstr "Ausente .procend\n"
-
-#: config/tc-hppa.c:1264
-#, c-format
-msgid "Invalid field selector. Assuming F%%."
-msgstr "Selector de campo inválido. Asumiendo F%%."
-
-#: config/tc-hppa.c:1288
-msgid "Bad segment in expression."
-msgstr "Segmento incorrecto dentro de expresión."
-
-#: config/tc-hppa.c:1313
-#, c-format
-msgid "Invalid Nullification: (%c)"
-msgstr "Nulificación Inválida: (%c)"
-
-#: config/tc-hppa.c:1379
-msgid "Cannot handle fixup"
-msgstr "No se puede manipular la compostura"
-
-#: config/tc-hppa.c:1663
-#, c-format
-msgid " -Q ignored\n"
-msgstr " -Q se descarta\n"
-
-#: config/tc-hppa.c:1667
-#, c-format
-msgid " -c print a warning if a comment is found\n"
-msgstr " -c escribe un aviso si se encuentra un comentario\n"
-
-#: config/tc-hppa.c:1733
-#, c-format
-msgid "no hppa_fixup entry for fixup type 0x%x"
-msgstr "no hay una entrada hppa_fixup para el tipo de compostura 0x%x"
-
-#: config/tc-hppa.c:1912
-msgid "Unknown relocation encountered in md_apply_fix."
-msgstr "Se encontró una reubicación desconocida en md_apply_fix."
-
-#: config/tc-hppa.c:2100 config/tc-hppa.c:2125
-#, c-format
-msgid "Undefined register: '%s'."
-msgstr "Registro indefinido: «%s»."
-
-#: config/tc-hppa.c:2159
-#, c-format
-msgid "Non-absolute symbol: '%s'."
-msgstr "Símbolo no absoluto: «%s»."
-
-#: config/tc-hppa.c:2174
-#, c-format
-msgid "Undefined absolute constant: '%s'."
-msgstr "Constante absoluta sin definir: «%s»."
-
-#: config/tc-hppa.c:2205 config/tc-hppa.c:5686
-msgid "could not update architecture and machine"
-msgstr "no se pueden actualizar la arquitectura y la máquina"
-
-#: config/tc-hppa.c:2243
-#, c-format
-msgid "Invalid FP Compare Condition: %s"
-msgstr "Condición de Comparación de FP Inválida: %s"
-
-#: config/tc-hppa.c:2298
-#, c-format
-msgid "Invalid FTEST completer: %s"
-msgstr "Completador FTEST inválido: %s"
-
-#: config/tc-hppa.c:2364 config/tc-hppa.c:2401
-#, c-format
-msgid "Invalid FP Operand Format: %3s"
-msgstr "Formato de Operando FP Inválido: %3s"
-
-#: config/tc-hppa.c:2519
-msgid "Bad segment (should be absolute)."
-msgstr "Segmento incorrecto (debe ser absoluto)."
-
-#: config/tc-hppa.c:2579
-#, c-format
-msgid "Invalid argument location: %s\n"
-msgstr "Ubicación de argumento no válida: %s\n"
-
-#: config/tc-hppa.c:2608
-#, c-format
-msgid "Invalid argument description: %d"
-msgstr "Descripción de argumento no válida: %d"
-
-#: config/tc-hppa.c:3437
-msgid "Invalid Indexed Load Completer."
-msgstr "Completador de Carga Indizado Inválido."
-
-#: config/tc-hppa.c:3442
-msgid "Invalid Indexed Load Completer Syntax."
-msgstr "Sintaxis de Completador de Carga Indizado Inválido."
-
-#: config/tc-hppa.c:3476
-msgid "Invalid Short Load/Store Completer."
-msgstr "Completador Short de Load/Store Inválido."
-
-#: config/tc-hppa.c:3537 config/tc-hppa.c:3542
-msgid "Invalid Store Bytes Short Completer"
-msgstr "Completador Almacenaje de Bytes Cortos Inválido"
-
-#: config/tc-hppa.c:3857 config/tc-hppa.c:3863
-msgid "Invalid left/right combination completer"
-msgstr "Completador de combinación derecha/izquierda inválido"
-
-#: config/tc-hppa.c:3912 config/tc-hppa.c:3919
-msgid "Invalid permutation completer"
-msgstr "Completador de permutación inválido"
-
-#: config/tc-hppa.c:4019
-#, c-format
-msgid "Invalid Add Condition: %s"
-msgstr "Condición de Adición Inválida: %s"
-
-#: config/tc-hppa.c:4035 config/tc-hppa.c:4045
-msgid "Invalid Add and Branch Condition"
-msgstr "Condición de Adición y Ramificación Inválida"
-
-#: config/tc-hppa.c:4066 config/tc-hppa.c:4211
-msgid "Invalid Compare/Subtract Condition"
-msgstr "Condición de Comparación/Sustracción Inválida"
-
-#: config/tc-hppa.c:4106
-#, c-format
-msgid "Invalid Branch On Bit Condition: %c"
-msgstr "Condición de Ramificación en Bit Inválida: %c"
-
-#: config/tc-hppa.c:4109
-msgid "Missing Branch On Bit Condition"
-msgstr "Ausentea Condición de Ramificación de Bit"
-
-#: config/tc-hppa.c:4194
-#, c-format
-msgid "Invalid Compare/Subtract Condition: %s"
-msgstr "Condición de Comparación/Sustracción Inválida: %s"
-
-#: config/tc-hppa.c:4226
-msgid "Invalid Compare and Branch Condition"
-msgstr "Condición de Comparación y Ramificación Inválida"
-
-#: config/tc-hppa.c:4322
-msgid "Invalid Logical Instruction Condition."
-msgstr "Condición de Instrucción Lógica Inválida."
-
-#: config/tc-hppa.c:4384
-msgid "Invalid Shift/Extract/Deposit Condition."
-msgstr "Condición Desplazar/Extraer/Depositar Inválida."
-
-#: config/tc-hppa.c:4501
-msgid "Invalid Unit Instruction Condition."
-msgstr "Condición de Instrucción Unit Inválida."
-
-#: config/tc-hppa.c:4980 config/tc-hppa.c:5012 config/tc-hppa.c:5043
-#: config/tc-hppa.c:5073
-msgid "Branch to unaligned address"
-msgstr "Ramificación a dirección sin alinear"
-
-#: config/tc-hppa.c:5255
-msgid "Invalid SFU identifier"
-msgstr "Identificador SFU inválido"
-
-#: config/tc-hppa.c:5305
-msgid "Invalid COPR identifier"
-msgstr "Identificador COPR inválido"
-
-#: config/tc-hppa.c:5435
-msgid "Invalid Floating Point Operand Format."
-msgstr "Formato de Operando de Coma Flotante Inválido."
-
-#: config/tc-hppa.c:5555 config/tc-hppa.c:5575 config/tc-hppa.c:5595
-#: config/tc-hppa.c:5615 config/tc-hppa.c:5635
-msgid "Invalid register for single precision fmpyadd or fmpysub"
-msgstr "Registro inválido para fmpyadd ó fmpysub de precisión simple"
-
-#: config/tc-hppa.c:5703
-#, c-format
-msgid "Invalid operands %s"
-msgstr "Operandos inválidos %s"
-
-#: config/tc-hppa.c:5713
-#, c-format
-msgid "Immediates %d and %d will give undefined behavior."
-msgstr "Los inmediatos %d y %d darán una conducta sin definir."
-
-#: config/tc-hppa.c:5765 config/tc-hppa.c:6959 config/tc-hppa.c:7014
-msgid "Missing function name for .PROC (corrupted label chain)"
-msgstr "Ausente el nombre de función para .PROC (cadena de etiquetas corrupta)"
-
-#: config/tc-hppa.c:5768 config/tc-hppa.c:7017
-msgid "Missing function name for .PROC"
-msgstr "Ausente el nombre de función para .PROC"
-
-#: config/tc-hppa.c:5827
-msgid "Argument to .BLOCK/.BLOCKZ must be between 0 and 0x3fffffff"
-msgstr "El argumento para .BLOCK/.BLOCKZ debe estar entre 0 y 0x3fffffff"
-
-#: config/tc-hppa.c:5918
-#, c-format
-msgid "Invalid .CALL argument: %s"
-msgstr "Argumento de .CALL inválido: %s"
-
-#: config/tc-hppa.c:6063
-msgid ".callinfo is not within a procedure definition"
-msgstr "directiva .callinfo no está dentro de una definición de procedimiento"
-
-#: config/tc-hppa.c:6081
-#, c-format
-msgid "FRAME parameter must be a multiple of 8: %d\n"
-msgstr "El parámetro FRAM debe ser un múltiplo de 8: %d\n"
-
-#: config/tc-hppa.c:6098
-msgid "Value for ENTRY_GR must be in the range 3..18\n"
-msgstr "Valorar para ENTRY_GR debe estar en el rango 3..18\n"
-
-#: config/tc-hppa.c:6109
-msgid "Value for ENTRY_FR must be in the range 12..21\n"
-msgstr "Valorar para ENTRY_FR debe estar en el rango 12..21\n"
-
-#: config/tc-hppa.c:6118
-msgid "Value for ENTRY_SR must be 3\n"
-msgstr "Valorar para ENTRY_SR debe ser 3\n"
-
-#: config/tc-hppa.c:6167
-#, c-format
-msgid "Invalid .CALLINFO argument: %s"
-msgstr "Argumento de .CALLINFO inválido: %s"
-
-#: config/tc-hppa.c:6289
-msgid "The .ENTER pseudo-op is not supported"
-msgstr "No se admite el pseudo-operador .ENTER"
-
-#: config/tc-hppa.c:6305
-msgid "Misplaced .entry. Ignored."
-msgstr ".entry mal ubicado. Se descarta."
-
-#: config/tc-hppa.c:6309
-msgid "Missing .callinfo."
-msgstr "Ausente .callinfo."
-
-#: config/tc-hppa.c:6374
-msgid ".REG expression must be a register"
-msgstr "la expresión .REG debe ser un registro"
-
-#: config/tc-hppa.c:6390
-msgid "bad or irreducible absolute expression; zero assumed"
-msgstr "expresión absoluta incorrecta o irreducible; se asume cero"
-
-#: config/tc-hppa.c:6401
-msgid ".REG must use a label"
-msgstr ".REG debe usar una etiqueta"
-
-#: config/tc-hppa.c:6403
-msgid ".EQU must use a label"
-msgstr ".EQU debe usar una etiqueta"
-
-#: config/tc-hppa.c:6458
-#, c-format
-msgid "Symbol '%s' could not be created."
-msgstr "No se puede crear el símbolo «%s»."
-
-#: config/tc-hppa.c:6508
-msgid ".EXIT must appear within a procedure"
-msgstr ".EXIT debe aparecer dentro de un procedimiento"
-
-#: config/tc-hppa.c:6512
-msgid "Missing .callinfo"
-msgstr "Ausente .callinfo"
-
-#: config/tc-hppa.c:6516
-msgid "No .ENTRY for this .EXIT"
-msgstr "No hay .ENTRY para este .EXIT"
-
-#: config/tc-hppa.c:6556
-#, c-format
-msgid "Using ENTRY rather than CODE in export directive for %s"
-msgstr "Utilizando ENTRY en lugar de CODE en la directiva export para %s"
-
-#: config/tc-hppa.c:6675
-#, c-format
-msgid "Undefined .EXPORT/.IMPORT argument (ignored): %s"
-msgstr "Argumento indefinido .EXPORT/.IMPORT (descartado): %s"
-
-#: config/tc-hppa.c:6698
-#, c-format
-msgid "Cannot define export symbol: %s\n"
-msgstr "No se puede definir el símbolo de exportación: %s\n"
-
-#: config/tc-hppa.c:6789
-msgid "Missing label name on .LABEL"
-msgstr "Ausente el nombre de etiqueta en .LABEL"
-
-#: config/tc-hppa.c:6794
-msgid "extra .LABEL arguments ignored."
-msgstr "se descartan los argumentos extra de .LABEL."
-
-#: config/tc-hppa.c:6810
-msgid "The .LEAVE pseudo-op is not supported"
-msgstr "No se admite el pseudo-operador .LEAVE"
-
-#: config/tc-hppa.c:6848
-msgid "Unrecognized .LEVEL argument\n"
-msgstr "No reconocido el argumento de .LEVEL\n"
-
-#: config/tc-hppa.c:6881
-#, c-format
-msgid "Cannot define static symbol: %s\n"
-msgstr "No se puede definir el símbolo estático: %s\n"
-
-#: config/tc-hppa.c:6913
-msgid "Nested procedures"
-msgstr "Procedimientos anidados"
-
-#: config/tc-hppa.c:6923
-msgid "Cannot allocate unwind descriptor\n"
-msgstr "No se puede asignar un descriptor de desenredo\n"
-
-#: config/tc-hppa.c:7021
-msgid "misplaced .procend"
-msgstr ".procend mal ubicado"
-
-#: config/tc-hppa.c:7024
-msgid "Missing .callinfo for this procedure"
-msgstr "Ausente .callinfo para este procedimiento"
-
-#: config/tc-hppa.c:7027
-msgid "Missing .EXIT for a .ENTRY"
-msgstr "Ausente .EXIT para un .ENTRY"
-
-#: config/tc-hppa.c:7064
-msgid "Not in a space.\n"
-msgstr "No está en un espacio.\n"
-
-#: config/tc-hppa.c:7067
-msgid "Not in a subspace.\n"
-msgstr "No está en un subespacio.\n"
-
-#: config/tc-hppa.c:7155
-msgid "Invalid .SPACE argument"
-msgstr "Argumento de .SPACE inválido"
-
-#: config/tc-hppa.c:7201
-msgid "Can't change spaces within a procedure definition. Ignored"
-msgstr "No se pueden modificar espacios dentro de una definición de procedimiento. Se descarta"
-
-#: config/tc-hppa.c:7326
-#, c-format
-msgid "Undefined space: '%s' Assuming space number = 0."
-msgstr "Espacio indefinido: «%s» Se asume que el número de espacio = 0."
-
-#: config/tc-hppa.c:7349
-msgid "Must be in a space before changing or declaring subspaces.\n"
-msgstr "Debe estar en un espacio antes de modificar o declarar subespacios.\n"
-
-#: config/tc-hppa.c:7353
-msgid "Can't change subspaces within a procedure definition. Ignored"
-msgstr "No se pueden modificar subespacios dentro de una definición de procedimiento. Se descarta"
-
-#: config/tc-hppa.c:7387
-msgid "Parameters of an existing subspace can't be modified"
-msgstr "No se pueden modificar los parámetros de un subespacio existente"
-
-#: config/tc-hppa.c:7438
-msgid "Alignment must be a power of 2"
-msgstr "Alineación debe ser una potencia de 2"
-
-#: config/tc-hppa.c:7485
-msgid "FIRST not supported as a .SUBSPACE argument"
-msgstr "No se admite FIRST como un argumento de .SUBSPACE"
-
-#: config/tc-hppa.c:7487
-msgid "Invalid .SUBSPACE argument"
-msgstr "Argumento de .SUBSPACE inválido"
-
-#: config/tc-hppa.c:7676
-#, c-format
-msgid "Internal error: Unable to find containing space for %s."
-msgstr "Error interno: No se puede encontrar el espacio contenedor para %s."
-
-#: config/tc-hppa.c:8237
-msgid "-R option not supported on this target."
-msgstr "No se admite la opción -R en este objetivo."
-
-#: config/tc-hppa.c:8259
-#, c-format
-msgid "internal error: losing opcode: `%s' \"%s\"\n"
-msgstr "error interno: se pierde el código de operación: «%s» «%s»\n"
-
-#: config/tc-hppa.c:8269 config/tc-sparc.c:999
-msgid "Broken assembler. No assembly attempted."
-msgstr "Ensamblador descompuesto. No se intentó ensamblar."
-
-#: config/tc-i386.c:1558
-#, c-format
-msgid "i386_output_nops called to generate nops of at most %d bytes!"
-msgstr ""
-
-#: config/tc-i386.c:1738
-#, c-format
-msgid "invalid single nop size: %d (expect within [0, %d])"
-msgstr ""
-
-#: config/tc-i386.c:1787
-#, fuzzy
-#| msgid "jump target out of range"
-msgid "jump over nop padding out of range"
-msgstr "omite objetivo fuera de rango"
-
-#: config/tc-i386.c:2103
-#, fuzzy
-#| msgid "same type of prefix used twice"
-msgid "same oszc flag used twice"
-msgstr "se utilizó dos veces el mismo tipo de prefijo"
-
-#: config/tc-i386.c:2135 config/tc-i386.c:2146
-#, fuzzy
-#| msgid "unrecognized symbol suffix"
-msgid "unrecognized pseudo-suffix"
-msgstr "símbolo sufijo no reconocido"
-
-#: config/tc-i386.c:2182
-msgid "unrecognized oszc flags or illegal `,' in pseudo-suffix"
-msgstr ""
-
-#: config/tc-i386.c:2199
-msgid "missing `}' or `,' in pseudo-suffix"
-msgstr ""
-
-#: config/tc-i386.c:2867
-#, fuzzy, c-format
-#| msgid "value 0x%I64x truncated to 0x%I64x"
-msgid "0x%<PRIx64> shortened to 0x%<PRIx64>"
-msgstr "valora 0x%I64x truncado a 0x%I64x"
-
-#: config/tc-i386.c:2964 config/tc-i386.c:4580 config/tc-i386.c:4591
-#: config/tc-i386.c:10628
-msgid "same type of prefix used twice"
-msgstr "se utilizó dos veces el mismo tipo de prefijo"
-
-#: config/tc-i386.c:2976 config/tc-i386.c:3304
-#, c-format
-msgid "64bit mode not supported on `%s'."
-msgstr "no se admite el modo de 64bit en «%s»."
-
-#: config/tc-i386.c:2983 config/tc-i386.c:3311
-#, c-format
-msgid "32bit mode not supported on `%s'."
-msgstr "no se admite el modo de 32bit en «%s»."
-
-#: config/tc-i386.c:3035
-msgid "bad argument to syntax directive."
-msgstr "argumento incorrecto para la directiva syntax."
-
-#: config/tc-i386.c:3092
-#, c-format
-msgid "bad argument to %s_check directive."
-msgstr "argumento incorrecto para `%s_check' de directiva."
-
-#: config/tc-i386.c:3096
-#, c-format
-msgid "missing argument for %s_check directive"
-msgstr "argumento ausente para %s_check de directiva"
-
-#: config/tc-i386.c:3123
-#, c-format
-msgid "`%s' is not supported on `%s'"
-msgstr "«%s» no se admite en «%s»"
-
-#: config/tc-i386.c:3191
-msgid "missing cpu architecture"
-msgstr "ausente la arquitectura de cpu"
-
-#: config/tc-i386.c:3230
-msgid ".arch stack is empty"
-msgstr ""
-
-#: config/tc-i386.c:3246
-#, c-format
-msgid "this `.arch pop' requires `.code%u%s' to be in effect"
-msgstr ""
-
-#: config/tc-i386.c:3357
-#, fuzzy
-#| msgid "Unrecognized dependency specifier %d\n"
-msgid "Unrecognized vector size specifier"
-msgstr "No reconocido el especificador de dependencia %d\n"
-
-#: config/tc-i386.c:3394
-#, c-format
-msgid "no such architecture: `%s'"
-msgstr "no hay tal arquitectura: «%s»"
-
-#: config/tc-i386.c:3410
-#, c-format
-msgid "no such architecture modifier: `%s'"
-msgstr "no hay tal modificador de arquitectura: «%s»"
-
-#: config/tc-i386.c:3426 config/tc-i386.c:3449
-msgid "Intel MCU is 32bit ELF only"
-msgstr "Intel MCU es solo 32bit ELF"
-
-#: config/tc-i386.c:3456 config/tc-i386.c:17765
-msgid "unknown architecture"
-msgstr "desconoce arquitectura"
-
-#: config/tc-i386.c:3831
-msgid "there are no pc-relative size relocations"
-msgstr "no hay reubicaciones de tamaño pc-relativo"
-
-#: config/tc-i386.c:3843
-#, c-format
-msgid "unknown relocation (%u)"
-msgstr "reubicación desconocida (%u)"
-
-#: config/tc-i386.c:3845
-#, c-format
-msgid "%u-byte relocation cannot be applied to %u-byte field"
-msgstr "la reubicación de %u-bytes no se puede aplicar al campo %u-bytes"
-
-#: config/tc-i386.c:3849
-msgid "non-pc-relative relocation for pc-relative field"
-msgstr "reubicación no relativa a pc para el campo relativo a pc"
-
-#: config/tc-i386.c:3854
-msgid "relocated field and relocation type differ in signedness"
-msgstr "el campo reubicado y el tipo reubicado difieren en signo"
-
-#: config/tc-i386.c:3863
-msgid "there are no unsigned pc-relative relocations"
-msgstr "no hay reubicaciones relativas a pc sin signo"
-
-#: config/tc-i386.c:3871
-#, c-format
-msgid "cannot do %u byte pc-relative relocation"
-msgstr "no se puede hacer la reubicación relativa a pc de %u bytes"
-
-#: config/tc-i386.c:3888
-#, c-format
-msgid "cannot do %s %u byte relocation"
-msgstr "no se puede hacer la reubicación %s de %u bytes"
-
-#: config/tc-i386.c:4352
-#, c-format
-msgid "ambiguous broadcast for `%s', using %u-bit form"
-msgstr ""
-
-#: config/tc-i386.c:4581
-msgid "conflicting use of `data16' prefix"
-msgstr ""
-
-#: config/tc-i386.c:4668
-#, fuzzy, c-format
-#| msgid "can't encode register '%s%s' in an instruction requiring REX prefix."
-msgid "can't encode register '%s%s' in an instruction requiring %s prefix"
-msgstr "no se puede codificar el registro '%s%s' en una instrucción que requiere el prefijo REX."
-
-#: config/tc-i386.c:4710
-#, fuzzy, c-format
-#| msgid "`%s%s' not allowed with `%s%c'"
-msgid "size override not allowed with `%s'"
-msgstr "no se permite `%s%s' con `%s%c'"
-
-#: config/tc-i386.c:4717
-#, fuzzy, c-format
-#| msgid "`%s%s' not allowed with `%s%c'"
-msgid "address override not allowed with `%s'"
-msgstr "no se permite `%s%s' con `%s%c'"
-
-#: config/tc-i386.c:4771 config/tc-i386.c:7240
-#, c-format
-msgid "invalid instruction `%s' after `%s'"
-msgstr "la instrucción «%s» no válida tras «%s»"
-
-#: config/tc-i386.c:4777
-#, c-format
-msgid "missing `lock' with `%s'"
-msgstr "ausente `lock' con «%s»"
-
-#: config/tc-i386.c:4784
-#, c-format
-msgid "instruction `%s' after `xacquire' not allowed"
-msgstr "la instrucción «%s» tras «xacquire» no permitido"
-
-#: config/tc-i386.c:4790
-#, c-format
-msgid "memory destination needed for instruction `%s' after `xrelease'"
-msgstr "destino de memoria requerido para instrucción `%s' tras `xrelease'"
-
-#: config/tc-i386.c:6224
-#, fuzzy
-#| msgid "extra .LABEL arguments ignored."
-msgid "`.noopt' arguments ignored"
-msgstr "se descartan los argumentos extra de .LABEL."
-
-#: config/tc-i386.c:6410
-#, c-format
-msgid "`%s` changes flags which would affect control flow behavior"
-msgstr ""
-
-#: config/tc-i386.c:6452
-#, c-format
-msgid "indirect `%s` with memory operand should be avoided"
-msgstr ""
-
-#: config/tc-i386.c:6462
-#, c-format
-msgid "`%s` skips -mlfence-before-indirect-branch on `%s`"
-msgstr ""
-
-#: config/tc-i386.c:6481
-#, c-format
-msgid "`%s` skips -mlfence-before-ret on `%s`"
-msgstr ""
-
-#: config/tc-i386.c:6831
-#, fuzzy, c-format
-#| msgid "`%s' cannot be used with `%s'"
-msgid "@%s operator cannot be used with `%s'"
-msgstr "«%s» no puede ser utilizado con «%s»"
-
-#: config/tc-i386.c:6836
-#, c-format
-msgid "@%s operator can be used with `%s', but format is wrong"
-msgstr ""
-
-#: config/tc-i386.c:6841
-#, c-format
-msgid "@%s operator requires no SIB"
-msgstr ""
-
-#: config/tc-i386.c:6845
-#, fuzzy, c-format
-#| msgid "instruction requires register index"
-msgid "@%s operator requires base register"
-msgstr "la instrucción requiere un índice de registro"
-
-#: config/tc-i386.c:6849
-#, fuzzy, c-format
-#| msgid "First operand to .%s not a valid register"
-msgid "@%s operator requires no base/index register"
-msgstr "El primer operando de .%s no es un registro válido"
-
-#: config/tc-i386.c:6854
-#, fuzzy, c-format
-#| msgid "First operand to .%s not a register"
-msgid "@%s operator requires no base register"
-msgstr "El primer operando de .%s no es un registro"
-
-#: config/tc-i386.c:6858
-#, fuzzy, c-format
-#| msgid "First operand to .vframe must be a general register"
-msgid "@%s operator requires `%sebx' as index register"
-msgstr "El primer operando de .vfram debe ser un registro general"
-
-#: config/tc-i386.c:6863
-#, c-format
-msgid "@%s operator requires `%seax' as base register"
-msgstr ""
-
-#: config/tc-i386.c:6868
-#, c-format
-msgid "@%s operator requires `%seax/%srax' as base register"
-msgstr ""
-
-#: config/tc-i386.c:6873
-#, c-format
-msgid "@%s operator requires `%sebx' as base register"
-msgstr ""
-
-#: config/tc-i386.c:6878
-#, fuzzy, c-format
-#| msgid "syntax error; missing ')' after base register"
-msgid "@%s operator requires `%srip' as base register"
-msgstr "error de sintaxis; ausente ')' tras registro base"
-
-#: config/tc-i386.c:6883
-#, fuzzy, c-format
-#| msgid "setx: temporary register same as destination register"
-msgid "@%s operator requires `%seax' as dest register"
-msgstr "setx: el registro temporal es el mismo que el registro destino"
-
-#: config/tc-i386.c:6888
-#, fuzzy, c-format
-#| msgid "setx: temporary register same as destination register"
-msgid "@%s operator requires `%srdi' as dest register"
-msgstr "setx: el registro temporal es el mismo que el registro destino"
-
-#: config/tc-i386.c:6893
-#, c-format
-msgid "@%s operator requires scale factor of 1"
-msgstr ""
-
-#: config/tc-i386.c:6898
-#, fuzzy, c-format
-#| msgid "First operand to .%s not a register"
-msgid "@%s operator requires 32-bit base register"
-msgstr "El primer operando de .%s no es un registro"
-
-#: config/tc-i386.c:6903
-#, c-format
-msgid "@%s operator requires 32-bit dest register"
-msgstr ""
-
-#: config/tc-i386.c:6908
-#, fuzzy, c-format
-#| msgid "%s isa does not support 64-bit registers"
-msgid "@%s operator requires 64-bit dest register"
-msgstr "isa %s no admite registros de 64-bit"
-
-#: config/tc-i386.c:6913
-#, fuzzy, c-format
-#| msgid "%s isa does not support 64-bit registers"
-msgid "@%s operator requires 32-bit or 64-bit dest register"
-msgstr "isa %s no admite registros de 64-bit"
-
-#: config/tc-i386.c:7081
-msgid "operand size mismatch"
-msgstr "no coincide tamaño de operando"
-
-#: config/tc-i386.c:7084
-msgid "operand type mismatch"
-msgstr "no coincide el tipo de operando"
-
-#: config/tc-i386.c:7087
-msgid "register type mismatch"
-msgstr "no coincide el tipo de registro"
-
-#: config/tc-i386.c:7090
-msgid "number of operands mismatch"
-msgstr "no coincide el número de operandos"
-
-#: config/tc-i386.c:7093
-msgid "invalid instruction suffix"
-msgstr "invalida sufijo de instrucción"
-
-#: config/tc-i386.c:7096
-msgid "constant doesn't fit in 4 bits"
-msgstr "constante no cabe en 4 bits"
-
-#: config/tc-i386.c:7099
-msgid "unsupported with Intel mnemonic"
-msgstr "no se admite con mnemónico Intel"
-
-#: config/tc-i386.c:7102
-msgid "unsupported syntax"
-msgstr "no se admite la sintaxis"
-
-#: config/tc-i386.c:7105
-#, fuzzy
-#| msgid "register r0 cannot be used here"
-msgid "extended GPR cannot be used as base/index"
-msgstr "el registro r0 no se puede usar aquí"
-
-#: config/tc-i386.c:7108
-#, fuzzy
-#| msgid "unsupported"
-msgid "{nf} unsupported"
-msgstr "no se admite"
-
-#: config/tc-i386.c:7111
-#, c-format
-msgid "unsupported instruction `%s'"
-msgstr "no admitió instrucción «%s»"
-
-#: config/tc-i386.c:7115 config/tc-i386.c:7633
-#, c-format
-msgid "`%s' is not supported on `%s%s'"
-msgstr "«%s» no se admite en `%s%s'"
-
-#: config/tc-i386.c:7124
-#, fuzzy, c-format
-#| msgid "`%s' is not supported in 64-bit mode"
-msgid "`%s%c' is not supported in 64-bit mode"
-msgstr "«%s» no se admite en modo de 64-bit"
-
-#: config/tc-i386.c:7128
-#, fuzzy, c-format
-#| msgid "`%s' is only supported in 64-bit mode"
-msgid "`%s%c' is only supported in 64-bit mode"
-msgstr "«%s» solo se admite en modo de 64-bit"
-
-#: config/tc-i386.c:7135 config/tc-i386.c:7627
-#, c-format
-msgid "`%s' is not supported in 64-bit mode"
-msgstr "«%s» no se admite en modo de 64-bit"
-
-#: config/tc-i386.c:7138 config/tc-i386.c:7626
-#, c-format
-msgid "`%s' is only supported in 64-bit mode"
-msgstr "«%s» solo se admite en modo de 64-bit"
-
-#: config/tc-i386.c:7143
-msgid "no VEX/XOP encoding"
-msgstr ""
-
-#: config/tc-i386.c:7146
-msgid "no EVEX encoding"
-msgstr ""
-
-#: config/tc-i386.c:7149
-#, fuzzy
-#| msgid "invalid VSIB address"
-msgid "invalid SIB address"
-msgstr "dirección VSIB no válida"
-
-#: config/tc-i386.c:7152
-msgid "invalid VSIB address"
-msgstr "dirección VSIB no válida"
-
-#: config/tc-i386.c:7155
-msgid "mask, index, and destination registers must be distinct"
-msgstr "máscara, índice, y registro de destino debe ser distinto"
-
-#: config/tc-i386.c:7158
-#, fuzzy
-#| msgid "last register must be r7"
-msgid "all tmm registers must be distinct"
-msgstr "el último registro debe ser r7"
-
-#: config/tc-i386.c:7161
-#, fuzzy
-#| msgid "mask, index, and destination registers must be distinct"
-msgid "destination and source registers must be distinct"
-msgstr "máscara, índice, y registro de destino debe ser distinto"
-
-#: config/tc-i386.c:7164
-#, fuzzy
-#| msgid "mask, index, and destination registers must be distinct"
-msgid "two dest registers must be distinct"
-msgstr "máscara, índice, y registro de destino debe ser distinto"
-
-#: config/tc-i386.c:7167
-#, fuzzy
-#| msgid "register r0 cannot be used here"
-msgid "rex2 pseudo prefix cannot be used"
-msgstr "el registro r0 no se puede usar aquí"
-
-#: config/tc-i386.c:7170
-msgid "unsupported vector index register"
-msgstr "no se admite el registro de índice de vector"
-
-#: config/tc-i386.c:7173
-msgid "unsupported broadcast"
-msgstr "emisión no admitida"
-
-#: config/tc-i386.c:7176
-msgid "broadcast is needed for operand of such type"
-msgstr "emisión es necesaria para operando de tal tipo"
-
-#: config/tc-i386.c:7179
-msgid "unsupported masking"
-msgstr "máscara no soportada"
-
-#: config/tc-i386.c:7182
-msgid "mask not on destination operand"
-msgstr "máscara no sobre operando destino"
-
-#: config/tc-i386.c:7185
-msgid "default mask isn't allowed"
-msgstr ""
-
-#: config/tc-i386.c:7188
-msgid "unsupported static rounding/sae"
-msgstr "no admitida reubicación/sae estática"
-
-#: config/tc-i386.c:7191
-#, c-format
-msgid "vector size above %u required for `%s'"
-msgstr ""
-
-#: config/tc-i386.c:7195
-#, fuzzy
-#| msgid "odd register cannot be used here"
-msgid "'rsp' register cannot be used"
-msgstr "no se puede usar aquí un registro impar"
-
-#: config/tc-i386.c:7198
-#, fuzzy
-#| msgid "MIPS internal Error"
-msgid "internal error"
-msgstr "Error interno de MIPS"
-
-#: config/tc-i386.c:7201
-#, c-format
-msgid "%s for `%s'"
-msgstr "%s para «%s»"
-
-#: config/tc-i386.c:7230
-#, c-format
-msgid "SSE instruction `%s' is used"
-msgstr "SSE como instrucción «%s» está utilizada"
-
-#: config/tc-i386.c:7254
-msgid "expecting lockable instruction after `lock'"
-msgstr "se espera una instrucción bloqueable tras `lock'"
-
-#: config/tc-i386.c:7287
-#, fuzzy, c-format
-#| msgid "width suffixes are invalid in ARM mode -- `%s'"
-msgid "data size prefix invalid with `%s'"
-msgstr "los sufijos de anchura son inválidos en modo ARM -- «%s»"
-
-#: config/tc-i386.c:7298
-msgid "expecting valid branch instruction after `bnd'"
-msgstr "esperando rama instruccional válida tras «bnd»"
-
-#: config/tc-i386.c:7302
-msgid "expecting indirect branch instruction after `notrack'"
-msgstr "esperando rama instruccional indirecta tras «notrack»"
-
-#: config/tc-i386.c:7307
-msgid "32-bit address isn't allowed in 64-bit MPX instructions."
-msgstr "dirección 32-bit no está permitido en instrucciones MPX de 64-bit."
-
-#: config/tc-i386.c:7311
-msgid "16-bit address isn't allowed in MPX instructions"
-msgstr "dirección de 16-bit no está permitida dentro de instrucciones MPX"
-
-#: config/tc-i386.c:7321
-msgid "replacing `rep'/`repe' prefix by `bnd'"
-msgstr ""
-
-#: config/tc-i386.c:7341
-#, c-format
-msgid "input/output port address isn't allowed with `%s'"
-msgstr ""
-
-#: config/tc-i386.c:7374
-#, fuzzy, c-format
-#| msgid "invalid pc-relative address"
-msgid "'%s' only supports RIP-relative address"
-msgstr "dirección relativa a pc no válida"
-
-#. UnixWare fsub no args is alias for fsubp, fadd -> faddp, etc.
-#: config/tc-i386.c:7423
-#, c-format
-msgid "translating to `%sp'"
-msgstr "se traslada a `%sp'"
-
-#: config/tc-i386.c:7430
-#, fuzzy, c-format
-#| msgid "instruction `%s' isn't supported in 16-bit mode."
-msgid "instruction `%s' isn't supported outside of protected mode."
-msgstr "la instrucción «%s» no admitido en modo 16-bit."
-
-#: config/tc-i386.c:7443
-#, fuzzy, c-format
-#| msgid "invalid switch -m%s"
-msgid "REX prefix invalid with `%s'"
-msgstr "interruptor -m%s inválido"
-
-#: config/tc-i386.c:7450
-#, fuzzy, c-format
-#| msgid "invalid switch -m%s"
-msgid "{rex2} prefix invalid with `%s'"
-msgstr "interruptor -m%s inválido"
-
-#: config/tc-i386.c:7576 config/tc-i386.c:7890
-#, c-format
-msgid "no such instruction: `%s'"
-msgstr "no hay tal instrucción: «%s»"
-
-#: config/tc-i386.c:7602 config/tc-i386.c:7941
-#, c-format
-msgid "invalid character %s in mnemonic"
-msgstr "carácter inválido %s en el mnemónico"
-
-#: config/tc-i386.c:7609
-msgid "expecting prefix; got nothing"
-msgstr "se esperaba un prefijo; se obtuvo nada"
-
-#: config/tc-i386.c:7611
-msgid "expecting mnemonic; got nothing"
-msgstr "se esperaba un mnemónico; se obtuvo nada"
-
-#: config/tc-i386.c:7647
-#, c-format
-msgid "redundant %s prefix"
-msgstr "prefijo %s redundante"
-
-#: config/tc-i386.c:7712
-#, fuzzy
-#| msgid "insn cannot be combined with pmuls"
-msgid "{nf} cannot be combined with {vex}/{vex3}"
-msgstr "la insn no se pueden combinar con pmuls"
-
-#: config/tc-i386.c:7762
-#, c-format
-msgid "ignoring `.s' suffix due to earlier `{%s}'"
-msgstr ""
-
-#: config/tc-i386.c:7772
-msgid "ignoring `.d8' suffix due to earlier `{disp<N>}'"
-msgstr ""
-
-#: config/tc-i386.c:7782
-msgid "ignoring `.d32' suffix due to earlier `{disp<N>}'"
-msgstr ""
-
-#: config/tc-i386.c:7873
-#, c-format
-msgid "found `%sd'; assuming `%sl' was meant"
-msgstr ""
-
-#: config/tc-i386.c:7990
-#, c-format
-msgid "invalid character %s before operand %d"
-msgstr "caracter inválido %s antes de operando %d"
-
-#: config/tc-i386.c:8002
-#, fuzzy, c-format
-#| msgid "unbalanced brackets in operand %d."
-msgid "unbalanced double quotes in operand %d."
-msgstr "llaves sin balancear en operando %d."
-
-#: config/tc-i386.c:8009
-#, c-format
-msgid "unbalanced parenthesis in operand %d."
-msgstr "paréntesis sin balancear en operando %d."
-
-#: config/tc-i386.c:8022
-#, c-format
-msgid "invalid character %s in operand %d"
-msgstr "carácter inválido %s en operando %d"
-
-#: config/tc-i386.c:8042
-#, c-format
-msgid "spurious operands; (%d operands/instruction max)"
-msgstr "operandos espurios; (%d operandos/instrucción máximo)"
-
-#: config/tc-i386.c:8052 config/tc-i386.c:13607
-#, c-format
-msgid "too many memory references for `%s'"
-msgstr "demasiadas referencias a memoria para «%s»"
-
-#: config/tc-i386.c:8073 config/tc-i386.c:13601
-msgid "expecting operand after ','; got nothing"
-msgstr "se esperaba un operando tras ','; se obtuvo nada"
-
-#: config/tc-i386.c:8078
-msgid "expecting operand before ','; got nothing"
-msgstr "se esperaba un operando antes de ','; se obtuvo nada"
-
-#: config/tc-i386.c:8368
-#, fuzzy, c-format
-#| msgid "0x%lx out range of signed 32bit displacement"
-msgid "0x%<PRIx64> out of range of signed 32bit displacement"
-msgstr "0x%lx fuera de rango del desplazamiento de 32 bit con signo"
-
-#: config/tc-i386.c:8572
-msgid "mask, index, and destination registers should be distinct"
-msgstr "el registros de máscaras, indexado, destino deberían ser distintos"
-
-#: config/tc-i386.c:8589
-msgid "index and destination registers should be distinct"
-msgstr "el registros indexados y destino deberían ser distintos"
-
-#: config/tc-i386.c:9718
-#, c-format
-msgid "indirect %s without `*'"
-msgstr "%s indirecto sin `*'"
-
-#. Warn them that a data or address size prefix doesn't
-#. affect assembly of the next line of code.
-#: config/tc-i386.c:9725
-#, c-format
-msgid "stand-alone `%s' prefix"
-msgstr "prefijo «%s» por sí solo"
-
-#: config/tc-i386.c:9732
-#, fuzzy, c-format
-#| msgid "`%s' cannot be used with `%s'"
-msgid "mnemonic suffix used with `%s'"
-msgstr "«%s» no puede ser utilizado con «%s»"
-
-#: config/tc-i386.c:9737
-msgid "NOTE: Such forms are deprecated and will be rejected by a future version of the assembler"
-msgstr ""
-
-#: config/tc-i386.c:9822
-#, fuzzy, c-format
-#| msgid "`%s' operand %d must use `%ses' segment"
-msgid "`%s' operand %u must use `%ses' segment"
-msgstr "«%s» operando %d debe utilizar `%ses' como segmento"
-
-#: config/tc-i386.c:9952
-msgid "generating 16-bit `iret' for .code16gcc directive"
-msgstr ""
-
-#: config/tc-i386.c:9956
-#, c-format
-msgid "generating 32-bit `%s', unlike earlier gas versions"
-msgstr ""
-
-#: config/tc-i386.c:10120
-#, c-format
-msgid "ambiguous operand size for `%s'"
-msgstr "tamaño de operando ambiguo para «%s»"
-
-#: config/tc-i386.c:10125
-#, fuzzy, c-format
-#| msgid "no instruction mnemonic suffix given and no register operands; can't size instruction"
-msgid "no instruction mnemonic suffix given and no register operands; can't size `%s'"
-msgstr "no se dio un sufijo mnemónico de instrucción y ningún operando de registro; no se puede determinar el tamaño de la instrucción"
-
-#: config/tc-i386.c:10130
-#, fuzzy, c-format
-#| msgid "unrecognized default cpu `%s'"
-msgid "%s; using default for `%s'"
-msgstr "no reconocido el cpu por defecto «%s»"
-
-#: config/tc-i386.c:10132
-#, fuzzy
-#| msgid "ambiguous operand size for `%s'"
-msgid "ambiguous operand size"
-msgstr "tamaño de operando ambiguo para «%s»"
-
-#: config/tc-i386.c:10133
-#, fuzzy
-#| msgid "no instruction mnemonic suffix given and no register operands; can't size instruction"
-msgid "no instruction mnemonic suffix given and no register operands"
-msgstr "no se dio un sufijo mnemónico de instrucción y ningún operando de registro; no se puede determinar el tamaño de la instrucción"
-
-#: config/tc-i386.c:10282
-#, c-format
-msgid "16-bit addressing unavailable for `%s'"
-msgstr ""
-
-#: config/tc-i386.c:10350
-#, fuzzy, c-format
-#| msgid "invalid register operand: %s"
-msgid "invalid register operand size for `%s'"
-msgstr "operando registrado inválido: %s"
-
-#. Any other register is bad.
-#: config/tc-i386.c:10389 config/tc-i386.c:10413 config/tc-i386.c:10453
-#: config/tc-i386.c:10490
-#, c-format
-msgid "`%s%s' not allowed with `%s%c'"
-msgstr "no se permite `%s%s' con `%s%c'"
-
-#: config/tc-i386.c:10426 config/tc-i386.c:10465 config/tc-i386.c:10502
-#, c-format
-msgid "incorrect register `%s%s' used with `%c' suffix"
-msgstr "el registro incorrecto `%s%s' utilizado con `%c' como sufijo"
-
-#: config/tc-i386.c:10592
-msgid "no instruction mnemonic suffix given; can't determine immediate size"
-msgstr "no se dio un sufijo mnemónico de instrucción; no se puede determinar el tamaño inmediato"
-
-#: config/tc-i386.c:10799
-#, c-format
-msgid "operand %u `%s%s' implicitly denotes `%s%s' to `%s%s' group in `%s'"
-msgstr ""
-
-#. Reversed arguments on faddp or fmulp.
-#: config/tc-i386.c:10846
-#, c-format
-msgid "translating to `%s %s%s,%s%s'"
-msgstr "se traslada a `%s %s%s,%s%s'"
-
-#. Extraneous `l' suffix on fp insn.
-#: config/tc-i386.c:10853
-#, c-format
-msgid "translating to `%s %s%s'"
-msgstr "se traslada a `%s %s%s'"
-
-#: config/tc-i386.c:10866
-#, fuzzy, c-format
-#| msgid "you can't `pop %scs'"
-msgid "you can't `%s %s%s'"
-msgstr "no se puede hacer `pop %scs'"
-
-#: config/tc-i386.c:10923
-#, c-format
-msgid "segment override on `%s' is ineffectual"
-msgstr "segmento invalidado en «%s» no tiene efecto"
-
-#: config/tc-i386.c:11381 config/tc-loongarch.c:1245 config/tc-riscv.c:1979
-#, fuzzy
-#| msgid "only constant offsets supported in absolute section"
-msgid "relaxable branches not supported in absolute section"
-msgstr "solo se admiten los desplazamientos constantes en la sección absoluta"
-
-#: config/tc-i386.c:11416 config/tc-i386.c:11559 config/tc-i386.c:11641
-#, fuzzy, c-format
-#| msgid "skipping prefixes on this instruction"
-msgid "skipping prefixes on `%s'"
-msgstr "omitiendo prefijos sobre esta instrucción"
-
-#: config/tc-i386.c:11667
-msgid "16-bit jump out of range"
-msgstr "16-bit omitido fuera de rango"
-
-#: config/tc-i386.c:11694 config/tc-i386.c:12436
-msgid "pseudo prefix without instruction"
-msgstr "pseudo prefijo sin instrucción"
-
-#: config/tc-i386.c:11706
-#, fuzzy
-#| msgid "pseudo prefix without instruction"
-msgid "pseudo prefix ahead of label; ignoring"
-msgstr "pseudo prefijo sin instrucción"
-
-#: config/tc-i386.c:12025 config/tc-i386.c:12058 config/tc-i386.c:12147
-#, c-format
-msgid "`%s` skips -malign-branch-boundary on `%s`"
-msgstr ""
-
-#: config/tc-i386.c:12316
-msgid "use .code16 to ensure correct addressing mode"
-msgstr "use .code16 para asegurar el modo de direccionamiento correcto"
-
-#: config/tc-i386.c:12344
-#, fuzzy, c-format
-#| msgid "instruction `%s' isn't supported in 16-bit mode."
-msgid "Cannot convert `%s' in 16-bit mode"
-msgstr "la instrucción «%s» no admitido en modo 16-bit."
-
-#: config/tc-i386.c:12346
-#, c-format
-msgid "Cannot convert `%s' with `-momit-lock-prefix=yes' in effect"
-msgstr ""
-
-#: config/tc-i386.c:12591 config/tc-i386.c:12594
-#, c-format
-msgid "instruction length of %u bytes exceeds the limit of 15"
-msgstr ""
-
-#: config/tc-i386.c:13145
-#, c-format
-msgid "@%s reloc is not supported with %d-bit output format"
-msgstr "no se admiten las reubicaciones @%s con el formato de salida de %d bits"
-
-#: config/tc-i386.c:13203
-#, c-format
-msgid "missing or invalid expression `%s'"
-msgstr "expresión ausentente o no válida «%s»"
-
-#: config/tc-i386.c:13212
-#, fuzzy, c-format
-#| msgid "invalid LOC expression"
-msgid "invalid PLT expression `%s'"
-msgstr "expresión LOC no válida"
-
-#: config/tc-i386.c:13311
-#, fuzzy
-#| msgid "hard-float conflicts with specified fpu"
-msgid "pseudo-prefix conflicts with encoding specifier"
-msgstr "hard-float tiene conflictos con la unidad de coma flotante (fpu) especificada"
-
-#: config/tc-i386.c:13335
-msgid "illegal prefix used with VEX/XOP/EVEX"
-msgstr ""
-
-#: config/tc-i386.c:13646
-#, c-format
-msgid "opcode residual (%#<PRIx64>) too wide"
-msgstr ""
-
-#: config/tc-i386.c:13662
-msgid "eGPR use conflicts with encoding specifier"
-msgstr ""
-
-#: config/tc-i386.c:13683 config/tc-i386.c:13727
-#, fuzzy
-#| msgid "Too many registers popped"
-msgid "too many register/memory operands"
-msgstr "Demasiados registros aparecidos"
-
-#: config/tc-i386.c:13694 config/tc-i386.c:13701
-#, fuzzy
-#| msgid "too few operands"
-msgid "too few register/memory operands"
-msgstr "muy pocos operandos"
-
-#: config/tc-i386.c:13714
-#, fuzzy, c-format
-#| msgid "constant doesn't fit in 4 bits"
-msgid "constant doesn't fit in %d bits"
-msgstr "constante no cabe en 4 bits"
-
-#: config/tc-i386.c:13778
-msgid "VSIB unavailable with legacy encoding"
-msgstr ""
-
-#. We could allow two register operands, encoding the 2nd one in
-#. an 8-bit immediate like for 4-register-operand insns, but that
-#. would require ugly fiddling with process_operands() and/or
-#. build_modrm_byte().
-#: config/tc-i386.c:13789
-#, fuzzy
-#| msgid "Too many registers popped"
-msgid "too many register operands with VSIB"
-msgstr "Demasiados registros aparecidos"
-
-#: config/tc-i386.c:13808
-#, c-format
-msgid "can't encode register '%s%s' with VEX/XOP/EVEX"
-msgstr ""
-
-#: config/tc-i386.c:14013
-#, fuzzy
-#| msgid "Conflicting operand modifiers"
-msgid "conflicting .insn operands"
-msgstr "Modificadores de operando en conflicto"
-
-#: config/tc-i386.c:14046 read.c:4318
-#, fuzzy
-#| msgid "pseudo instruction `%s' not supported"
-msgid "SCFI: hand-crafting instructions not supported"
-msgstr "pseudo instrucción «%s» no admitida"
-
-#: config/tc-i386.c:14115
-#, fuzzy, c-format
-#| msgid "duplicated `%s'"
-msgid "duplicated `{%s}'"
-msgstr "duplicado «%s»"
-
-#: config/tc-i386.c:14188
-#, c-format
-msgid "Unsupported broadcast: `%s'"
-msgstr "No admitió emisión: «%s»"
-
-#: config/tc-i386.c:14263
-#, c-format
-msgid "`%s%s' can't be used for write mask"
-msgstr "`%s%s' no se puede ser empleado para máscara de escritura"
-
-#: config/tc-i386.c:14283
-#, c-format
-msgid "invalid write mask `%s'"
-msgstr "marca de escritura no válida «%s»"
-
-#: config/tc-i386.c:14304
-#, c-format
-msgid "duplicated `%s'"
-msgstr "duplicado «%s»"
-
-#: config/tc-i386.c:14314
-#, c-format
-msgid "invalid zeroing-masking `%s'"
-msgstr "invalida mascarada a cero `%s'"
-
-#: config/tc-i386.c:14332
-#, c-format
-msgid "missing `}' in `%s'"
-msgstr "ausente `}' en «%s»"
-
-#. We don't know this one.
-#: config/tc-i386.c:14344
-#, c-format
-msgid "unknown vector operation: `%s'"
-msgstr "operación de vector desconocida: «%s»"
-
-#: config/tc-i386.c:14350
-msgid "zeroing-masking only allowed with write mask"
-msgstr ""
-
-#: config/tc-i386.c:14370
-#, c-format
-msgid "at most %d immediate operands are allowed"
-msgstr "solo se permiten cuando mucho %d operandos inmediatos"
-
-#: config/tc-i386.c:14409 config/tc-i386.c:14668
-#, c-format
-msgid "junk `%s' after expression"
-msgstr "«%s» basura tras la expresión"
-
-#: config/tc-i386.c:14422
-#, c-format
-msgid "illegal immediate register operand %s"
-msgstr "operando de registro inmediato ilegal %s"
-
-#: config/tc-i386.c:14436
-#, c-format
-msgid "missing or invalid immediate expression `%s'"
-msgstr "expresión inmediata ausentente o no válida «%s»"
-
-#: config/tc-i386.c:14459 config/tc-i386.c:14747
-#, c-format
-msgid "unimplemented segment %s in operand"
-msgstr "segmento %s sin implementar en operando"
-
-#: config/tc-i386.c:14508
-#, c-format
-msgid "expecting scale factor of 1, 2, 4, or 8: got `%s'"
-msgstr "se esperaba un factor de escala de 1, 2, 4, u 8: se obtuvo «%s»"
-
-#: config/tc-i386.c:14517
-#, c-format
-msgid "scale factor of %d without an index register"
-msgstr "factor de escala de %d sin un registro índice"
-
-#: config/tc-i386.c:14539
-#, c-format
-msgid "at most %d displacement operands are allowed"
-msgstr "solo se permiten hasta %d operandos de desubicación"
-
-#: config/tc-i386.c:14723
-#, c-format
-msgid "missing or invalid displacement expression `%s'"
-msgstr "expresión de desubicación ausentente o no válida «%s»"
-
-#: config/tc-i386.c:14898
-#, c-format
-msgid "`%s' is not valid here (expected `%c%s%s%c')"
-msgstr "«%s» no es válido aquí (se esperaba `%c%s%s%c')"
-
-#: config/tc-i386.c:14910
-#, c-format
-msgid "`%s' is not a valid %s expression"
-msgstr "«%s» no es una expresión %s válida"
-
-#: config/tc-i386.c:14924
-#, fuzzy, c-format
-#| msgid "invalid suffix"
-msgid "invalid `%s' prefix"
-msgstr "sufijo inválido"
-
-#: config/tc-i386.c:14954
-#, c-format
-msgid "`%s' cannot be used here"
-msgstr "`%s' no puede ser empleado aquí"
-
-#: config/tc-i386.c:14961
-msgid "register scaling is being ignored here"
-msgstr "el registro escalado está siendo descartado aquí"
-
-#: config/tc-i386.c:15009
-#, c-format
-msgid "Missing '}': '%s'"
-msgstr "Ausente '}': «%s»"
-
-#: config/tc-i386.c:15015
-#, c-format
-msgid "Junk after '}': '%s'"
-msgstr "Basura tras '}': «%s»"
-
-#: config/tc-i386.c:15090
-#, c-format
-msgid "bad memory operand `%s'"
-msgstr "operando de memoria incorrecto «%s»"
-
-#: config/tc-i386.c:15106
-#, c-format
-msgid "junk `%s' after register"
-msgstr "«%s» basura tras registro"
-
-#: config/tc-i386.c:15113
-#, fuzzy, c-format
-#| msgid "`%s' cannot be used here"
-msgid "`%s%s' cannot be used here"
-msgstr "`%s' no puede ser empleado aquí"
-
-#: config/tc-i386.c:15136
-#, fuzzy, c-format
-#| msgid "`%s' is deprecated, use `%s'"
-msgid "`%s': misplaced `{%s}'"
-msgstr "«%s» es obsoleta, emplee «%s»"
-
-#: config/tc-i386.c:15143 config/tc-i386.c:15317 config/tc-i386.c:15361
-#, c-format
-msgid "bad register name `%s'"
-msgstr "nombre de registro incorrecto «%s»"
-
-#: config/tc-i386.c:15151
-msgid "immediate operand illegal with absolute jump"
-msgstr "operando inmediato ilegal con salto absoluto"
-
-#: config/tc-i386.c:15158
-#, fuzzy, c-format
-#| msgid "RC/SAE operand must follow immediate operands"
-msgid "`%s': RC/SAE operand must follow immediate operands"
-msgstr "Operando RC/SAE debe seguir inmediatamente operandos"
-
-#: config/tc-i386.c:15171
-#, fuzzy, c-format
-#| msgid "`%s' is deprecated, use `%s'"
-msgid "`%s': misplaced `%s'"
-msgstr "«%s» es obsoleta, emplee «%s»"
-
-#: config/tc-i386.c:15222
-msgid "unbalanced figure braces"
-msgstr ""
-
-#: config/tc-i386.c:15306
-#, c-format
-msgid "expecting `,' or `)' after index register in `%s'"
-msgstr "se esperaba `,' ó `)' tras registro índice en «%s»"
-
-#: config/tc-i386.c:15334
-#, c-format
-msgid "expecting `)' after scale factor in `%s'"
-msgstr "se esperaba `)' tras factor de escala en «%s»"
-
-#: config/tc-i386.c:15342
-#, c-format
-msgid "expecting index register or scale factor after `,'; got '%c'"
-msgstr "se esperaba un registro índice o un factor de escala tras `,'; se obtuvo '%c'"
-
-#: config/tc-i386.c:15350
-#, c-format
-msgid "expecting `,' or `)' after base register in `%s'"
-msgstr "se esperaba `,' ó `)' tras registro base en «%s»"
-
-#. It's not a memory operand; argh!
-#: config/tc-i386.c:15400
-#, c-format
-msgid "invalid char %s beginning operand %d `%s'"
-msgstr "carácter inválido %s al inicio de operando %d «%s»"
-
-#: config/tc-i386.c:16059
-#, c-format
-msgid "%s:%u: add %d%s at 0x%llx to align %s within %d-byte boundary\n"
-msgstr ""
-
-#: config/tc-i386.c:16062
-#, c-format
-msgid "%s:%u: add additional %d%s at 0x%llx to align %s within %d-byte boundary\n"
-msgstr ""
-
-#: config/tc-i386.c:16068
-#, c-format
-msgid "%s:%u: add %d%s-byte nop at 0x%llx to align %s within %d-byte boundary\n"
-msgstr ""
-
-#: config/tc-i386.c:16135
-msgid "long jump required"
-msgstr "se requiere un salto largo"
-
-#: config/tc-i386.c:16190
-msgid "jump target out of range"
-msgstr "omite objetivo fuera de rango"
-
-#: config/tc-i386.c:16668
-#, fuzzy, c-format
-#| msgid "register r0 cannot be used here"
-msgid "register '%s%s' cannot be used here"
-msgstr "el registro r0 no se puede usar aquí"
-
-#: config/tc-i386.c:16934
-#, fuzzy, c-format
-#| msgid "invalid -mtune= option: `%s'"
-msgid "invalid -mx86-used-note= option: `%s'"
-msgstr "opción -mtune= no válida: «%s»"
-
-#: config/tc-i386.c:16957
-msgid "no compiled in support for x86_64"
-msgstr "no se compiló el soporte para x86_64"
-
-#: config/tc-i386.c:16976
-msgid "no compiled in support for 32bit x86_64"
-msgstr "no se compiló el soporte para x86_64 de 32bit"
-
-#: config/tc-i386.c:16997
-#, fuzzy
-#| msgid "no compiled in support for x86_64"
-msgid "no compiled in support for ix86"
-msgstr "no se compiló el soporte para x86_64"
-
-#: config/tc-i386.c:17030 config/tc-i386.c:17116
-#, c-format
-msgid "invalid -march= option: `%s'"
-msgstr "opción -march= no válida: «%s»"
-
-#: config/tc-i386.c:17086
-#, fuzzy
-#| msgid "Unrecognized dependency specifier %d\n"
-msgid "Unrecognized vector size specifier ignored"
-msgstr "No reconocido el especificador de dependencia %d\n"
-
-#: config/tc-i386.c:17126 config/tc-i386.c:17138
-#, c-format
-msgid "invalid -mtune= option: `%s'"
-msgstr "opción -mtune= no válida: «%s»"
-
-#: config/tc-i386.c:17147
-#, c-format
-msgid "invalid -mmnemonic= option: `%s'"
-msgstr "opción -mmnemonic= no válida: «%s»"
-
-#: config/tc-i386.c:17156
-#, c-format
-msgid "invalid -msyntax= option: `%s'"
-msgstr "opción -msyntax= no válida: «%s»"
-
-#: config/tc-i386.c:17184
-#, c-format
-msgid "invalid -msse-check= option: `%s'"
-msgstr "opción -msse-check= no válida: «%s»"
-
-#: config/tc-i386.c:17195
-#, c-format
-msgid "invalid -moperand-check= option: `%s'"
-msgstr "opción -moperand-check= no válida: «%s»"
-
-#: config/tc-i386.c:17204
-#, c-format
-msgid "invalid -mavxscalar= option: `%s'"
-msgstr "opción -mavxscalar= no válida: «%s»"
-
-#: config/tc-i386.c:17213
-#, fuzzy, c-format
-#| msgid "invalid -mevexwig= option: `%s'"
-msgid "invalid -mvexwig= option: `%s'"
-msgstr "opción -mevexwig= no válida: «%s»"
-
-#: config/tc-i386.c:17228
-#, c-format
-msgid "invalid -mevexlig= option: `%s'"
-msgstr "opción -mevexlig= inválido: «%s»"
-
-#: config/tc-i386.c:17241
-#, c-format
-msgid "invalid -mevexrcig= option: `%s'"
-msgstr "invalida opción -mevexrcig=: «%s»"
-
-#: config/tc-i386.c:17250
-#, c-format
-msgid "invalid -mevexwig= option: `%s'"
-msgstr "opción -mevexwig= no válida: «%s»"
-
-#: config/tc-i386.c:17265
-#, c-format
-msgid "invalid -momit-lock-prefix= option: `%s'"
-msgstr "opción -momit-lock-prefix= no válida: «%s»"
-
-#: config/tc-i386.c:17274
-#, c-format
-msgid "invalid -mfence-as-lock-add= option: `%s'"
-msgstr "opción -mfence-as-lock-add= no válida: «%s»"
-
-#: config/tc-i386.c:17283
-#, fuzzy, c-format
-#| msgid "invalid -mfence-as-lock-add= option: `%s'"
-msgid "invalid -mlfence-after-load= option: `%s'"
-msgstr "opción -mfence-as-lock-add= no válida: «%s»"
-
-#: config/tc-i386.c:17300
-#, fuzzy, c-format
-#| msgid "invalid -mfence-as-lock-add= option: `%s'"
-msgid "invalid -mlfence-before-indirect-branch= option: `%s'"
-msgstr "opción -mfence-as-lock-add= no válida: «%s»"
-
-#: config/tc-i386.c:17314
-#, fuzzy, c-format
-#| msgid "invalid -mfence-as-lock-add= option: `%s'"
-msgid "invalid -mlfence-before-ret= option: `%s'"
-msgstr "opción -mfence-as-lock-add= no válida: «%s»"
-
-#: config/tc-i386.c:17324
-#, c-format
-msgid "invalid -mrelax-relocations= option: `%s'"
-msgstr "opción no válida -mrelax-relocations=: «%s»"
-
-#: config/tc-i386.c:17353
-#, c-format
-msgid "invalid -malign-branch-boundary= value: %s"
-msgstr ""
-
-#: config/tc-i386.c:17367
-#, fuzzy, c-format
-#| msgid "invalid -momit-lock-prefix= option: `%s'"
-msgid "invalid -malign-branch-prefix-size= value: %s"
-msgstr "opción -momit-lock-prefix= no válida: «%s»"
-
-#: config/tc-i386.c:17394
-#, fuzzy, c-format
-#| msgid "invalid -march= option: `%s'"
-msgid "invalid -malign-branch= option: `%s'"
-msgstr "opción -march= no válida: «%s»"
-
-#: config/tc-i386.c:17443
-#, fuzzy, c-format
-#| msgid "invalid -msse-check= option: `%s'"
-msgid "invalid -mtls-check= option: `%s'"
-msgstr "opción -msse-check= no válida: «%s»"
-
-#: config/tc-i386.c:17569
-#, fuzzy, c-format
-#| msgid ""
-#| " -Q ignored\n"
-#| " -V print assembler version number\n"
-#| " -k ignored\n"
-msgid ""
-" -Qy, -Qn ignored\n"
-" -V print assembler version number\n"
-" -k ignored\n"
-msgstr ""
-" -Q se descarta\n"
-" -V escribe el número de versión del ensamblador\n"
-" -k descartado\n"
-
-#: config/tc-i386.c:17574
-#, fuzzy, c-format
-#| msgid ""
-#| " -n Do not optimize code alignment\n"
-#| " -q quieten some warnings\n"
-msgid ""
-" -n do not optimize code alignment\n"
-" -O{012s} attempt some code optimizations\n"
-" -q quieten some warnings\n"
-msgstr ""
-" -n No optimiza la alineamiento de código\n"
-" -q omite algunos avisos\n"
-
-#: config/tc-i386.c:17579
-#, c-format
-msgid " -s ignored\n"
-msgstr " -s se descarta\n"
-
-#: config/tc-i386.c:17584
-#, fuzzy, c-format
-#| msgid " --32/--64/--x32 generate 32bit/64bit/x32 code\n"
-msgid " --32/--64/--x32 generate 32bit/64bit/x32 object\n"
-msgstr " --32/--64/--x32 genera código 32bit/64bit/x32\n"
-
-#: config/tc-i386.c:17587
-#, fuzzy, c-format
-#| msgid " --32/--64/--x32 generate 32bit/64bit/x32 code\n"
-msgid " --32/--64 generate 32bit/64bit object\n"
-msgstr " --32/--64/--x32 genera código 32bit/64bit/x32\n"
-
-#: config/tc-i386.c:17592
-#, c-format
-msgid " --divide do not treat `/' as a comment character\n"
-msgstr " --divide no trata `/' como un carácter de comentario\n"
-
-#: config/tc-i386.c:17595
-#, c-format
-msgid " --divide ignored\n"
-msgstr " --divide se descarta\n"
-
-#: config/tc-i386.c:17598
-#, c-format
-msgid ""
-" -march=CPU[,+EXTENSION...]\n"
-" generate code for CPU and EXTENSION, CPU is one of:\n"
-msgstr ""
-" -march=CPU[,+EXTENSIÓN...]\n"
-" genera código para el CPU y la EXTENSIÓN. CPU es uno de:\n"
-
-#: config/tc-i386.c:17602
-#, fuzzy, c-format
-#| msgid " EXTENSION is combination of:\n"
-msgid " EXTENSION is combination of (possibly \"no\"-prefixed):\n"
-msgstr " EXTENSIÓN es una combinación de:\n"
-
-#: config/tc-i386.c:17605
-#, c-format
-msgid " -mtune=CPU optimize for CPU, CPU is one of:\n"
-msgstr " -mtune=CPU optimiza para el CPU, donde CPU es uno de:\n"
-
-#: config/tc-i386.c:17608
-#, c-format
-msgid " -msse2avx encode SSE instructions with VEX prefix\n"
-msgstr " -msse2avx codifica instrucciones SSE con prefijo VEX\n"
-
-#: config/tc-i386.c:17610
-#, c-format
-msgid ""
-" -muse-unaligned-vector-move\n"
-" encode aligned vector move as unaligned vector move\n"
-msgstr ""
-
-#: config/tc-i386.c:17613
-#, fuzzy, c-format
-#| msgid ""
-#| " -msse-check=[none|error|warning]\n"
-#| " check SSE instructions\n"
-msgid ""
-" -msse-check=[none|error|warning] (default: none)\n"
-" check SSE instructions\n"
-msgstr ""
-" -msse-check=[none|error|warning]\n"
-" revisa las instrucciones SSE\n"
-
-#: config/tc-i386.c:17616
-#, fuzzy, c-format
-#| msgid ""
-#| " -moperand-check=[none|error|warning]\n"
-#| " check operand combinations for validity\n"
-msgid ""
-" -moperand-check=[none|error|warning] (default: warning)\n"
-" check operand combinations for validity\n"
-msgstr ""
-" -moperand-check=[none|error|warning]\n"
-" marca combinaciones operantes para validación\n"
-
-#: config/tc-i386.c:17619
-#, fuzzy, c-format
-#| msgid ""
-#| " -mavxscalar=[128|256] encode scalar AVX instructions with specific vector\n"
-#| " length\n"
-msgid ""
-" -mavxscalar=[128|256] (default: 128)\n"
-" encode scalar AVX instructions with specific vector\n"
-" length\n"
-msgstr ""
-" -mavxscalar=[128|256] codifica instrucciones AVX escalares con\n"
-" una longitud de vector específica\n"
-
-#: config/tc-i386.c:17623
-#, fuzzy, c-format
-#| msgid ""
-#| " -mevexwig=[0|1] encode EVEX instructions with specific EVEX.W value\n"
-#| " for EVEX.W bit ignored instructions\n"
-msgid ""
-" -mvexwig=[0|1] (default: 0)\n"
-" encode VEX instructions with specific VEX.W value\n"
-" for VEX.W bit ignored instructions\n"
-msgstr ""
-" -mevexwig=[0|1] codifica instrucciones EVEX con valor EVEX.W específico\n"
-" para instrucciones bit EVEX.W ignoradas\n"
-
-#: config/tc-i386.c:17627
-#, fuzzy, c-format
-#| msgid ""
-#| " -mevexlig=[128|256|512] encode scalar EVEX instructions with specific vector\n"
-#| " length\n"
-msgid ""
-" -mevexlig=[128|256|512] (default: 128)\n"
-" encode scalar EVEX instructions with specific vector\n"
-" length\n"
-msgstr ""
-" -mevexlig=[128|256|512] codifica instrucciones EVEX escalares con\n"
-" longitud de vector específica\n"
-
-#: config/tc-i386.c:17631
-#, fuzzy, c-format
-#| msgid ""
-#| " -mevexwig=[0|1] encode EVEX instructions with specific EVEX.W value\n"
-#| " for EVEX.W bit ignored instructions\n"
-msgid ""
-" -mevexwig=[0|1] (default: 0)\n"
-" encode EVEX instructions with specific EVEX.W value\n"
-" for EVEX.W bit ignored instructions\n"
-msgstr ""
-" -mevexwig=[0|1] codifica instrucciones EVEX con valor EVEX.W específico\n"
-" para instrucciones bit EVEX.W ignoradas\n"
-
-#: config/tc-i386.c:17635
-#, fuzzy, c-format
-#| msgid ""
-#| " -mevexrcig=[rne|rd|ru|rz]\n"
-#| " encode EVEX instructions with specific EVEX.RC value\n"
-#| " for SAE-only ignored instructions\n"
-msgid ""
-" -mevexrcig=[rne|rd|ru|rz] (default: rne)\n"
-" encode EVEX instructions with specific EVEX.RC value\n"
-" for SAE-only ignored instructions\n"
-msgstr ""
-" -mevexrcig=[rne|rd|ru|rz]\n"
-" codifica instrucciones EVEX con valor EVEX.RC específico\n"
-" para instrucciones ignoradas SAE-único\n"
-
-#: config/tc-i386.c:17639
-#, fuzzy, c-format
-#| msgid " -mmnemonic=[att|intel] use AT&T/Intel mnemonic\n"
-msgid " -mmnemonic=[att|intel] "
-msgstr " -mmnemonic=[att|intel] usa mnemónicos AT&T/Intel\n"
-
-#: config/tc-i386.c:17642
-#, c-format
-msgid "(default: att)\n"
-msgstr ""
-
-#: config/tc-i386.c:17644
-#, c-format
-msgid "(default: intel)\n"
-msgstr ""
-
-#: config/tc-i386.c:17645
-#, fuzzy, c-format
-#| msgid " emulate output (default %s)\n"
-msgid " use AT&T/Intel mnemonic (AT&T syntax only)\n"
-msgstr " emula la salida (por defecto %s)\n"
-
-#: config/tc-i386.c:17647
-#, fuzzy, c-format
-#| msgid " -msyntax=[att|intel] use AT&T/Intel syntax\n"
-msgid ""
-" -msyntax=[att|intel] (default: att)\n"
-" use AT&T/Intel syntax\n"
-msgstr " -msyntax=[att|intel] usa sintaxis AT&T/Intel\n"
-
-#: config/tc-i386.c:17650
-#, c-format
-msgid " -mindex-reg support pseudo index registers\n"
-msgstr " -mindex-reg admite registros de pseudo índice\n"
-
-#: config/tc-i386.c:17652
-#, c-format
-msgid " -mnaked-reg don't require `%%' prefix for registers\n"
-msgstr " -mnaked-reg no requiere el prefijo `%%' para registros\n"
-
-#: config/tc-i386.c:17654
-#, c-format
-msgid " -madd-bnd-prefix add BND prefix for all valid branches\n"
-msgstr ""
-
-#: config/tc-i386.c:17657
-#, c-format
-msgid " -mshared disable branch optimization for shared code\n"
-msgstr " -mshared desactiva rama optimizada para código compartido\n"
-
-#: config/tc-i386.c:17659
-#, c-format
-msgid " -mx86-used-note=[no|yes] "
-msgstr ""
-
-#: config/tc-i386.c:17665
-#, fuzzy, c-format
-#| msgid " -Z generate object file even after errors\n"
-msgid " generate x86 used ISA and feature properties\n"
-msgstr " -Z generar fichero objeto par tras errores\n"
-
-#: config/tc-i386.c:17669
-#, c-format
-msgid " -mbig-obj generate big object files\n"
-msgstr " -mbig-obj genera ficheros objetos grandes\n"
-
-#: config/tc-i386.c:17672
-#, fuzzy, c-format
-#| msgid ""
-#| " -mrelax-relocations=[no|yes]\n"
-#| " generate relax relocations\n"
-msgid ""
-" -momit-lock-prefix=[no|yes] (default: no)\n"
-" strip all lock prefixes\n"
-msgstr ""
-" -mrelax-relocations=[no|sí]\n"
-" genera reubicaciones relajadas\n"
-
-#: config/tc-i386.c:17675
-#, fuzzy, c-format
-#| msgid ""
-#| " -mfence-as-lock-add=[no|yes]\n"
-#| " encode lfence, mfence and sfence as\n"
-#| " lock addl $0x0, (%%{re}sp)\n"
-msgid ""
-" -mfence-as-lock-add=[no|yes] (default: no)\n"
-" encode lfence, mfence and sfence as\n"
-" lock addl $0x0, (%%{re}sp)\n"
-msgstr ""
-" -mfence-as-lock-add=[no|sí]\n"
-" codifica lfence, mfence y sfence como\n"
-" bloqueo addl $0x0, (%%{re}sp\n"
-
-#: config/tc-i386.c:17679
-#, fuzzy, c-format
-#| msgid "invalid -mrelax-relocations= option: `%s'"
-msgid " -mrelax-relocations=[no|yes] "
-msgstr "opción no válida -mrelax-relocations=: «%s»"
-
-#: config/tc-i386.c:17685
-#, fuzzy, c-format
-#| msgid ""
-#| " -mrelax-relocations=[no|yes]\n"
-#| " generate relax relocations\n"
-msgid " generate relax relocations\n"
-msgstr ""
-" -mrelax-relocations=[no|sí]\n"
-" genera reubicaciones relajadas\n"
-
-#: config/tc-i386.c:17688
-#, c-format
-msgid " -mtls-check=[no|yes] "
-msgstr ""
-
-#: config/tc-i386.c:17694
-#, fuzzy, c-format
-#| msgid " EXTENSION is combination of:\n"
-msgid " check TLS relocation\n"
-msgstr " EXTENSIÓN es una combinación de:\n"
-
-#: config/tc-i386.c:17697
-#, c-format
-msgid ""
-" -malign-branch-boundary=NUM (default: 0)\n"
-" align branches within NUM byte boundary\n"
-msgstr ""
-
-#: config/tc-i386.c:17700
-#, c-format
-msgid ""
-" -malign-branch=TYPE[+TYPE...] (default: jcc+fused+jmp)\n"
-" TYPE is combination of jcc, fused, jmp, call, ret,\n"
-" indirect\n"
-" specify types of branches to align\n"
-msgstr ""
-
-#: config/tc-i386.c:17705
-#, c-format
-msgid ""
-" -malign-branch-prefix-size=NUM (default: 5)\n"
-" align branches with NUM prefixes per instruction\n"
-msgstr ""
-
-#: config/tc-i386.c:17708
-#, c-format
-msgid ""
-" -mbranches-within-32B-boundaries\n"
-" align branches within 32 byte boundary\n"
-msgstr ""
-
-#: config/tc-i386.c:17711
-#, fuzzy, c-format
-#| msgid ""
-#| " -mrelax-relocations=[no|yes]\n"
-#| " generate relax relocations\n"
-msgid ""
-" -mlfence-after-load=[no|yes] (default: no)\n"
-" generate lfence after load\n"
-msgstr ""
-" -mrelax-relocations=[no|sí]\n"
-" genera reubicaciones relajadas\n"
-
-#: config/tc-i386.c:17714
-#, c-format
-msgid ""
-" -mlfence-before-indirect-branch=[none|all|register|memory] (default: none)\n"
-" generate lfence before indirect near branch\n"
-msgstr ""
-
-#: config/tc-i386.c:17717
-#, fuzzy, c-format
-#| msgid ""
-#| " -mrelax-relocations=[no|yes]\n"
-#| " generate relax relocations\n"
-msgid ""
-" -mlfence-before-ret=[none|or|not|shl|yes] (default: none)\n"
-" generate lfence before ret\n"
-msgstr ""
-" -mrelax-relocations=[no|sí]\n"
-" genera reubicaciones relajadas\n"
-
-#: config/tc-i386.c:17720
-#, fuzzy, c-format
-#| msgid " -mamd64 accept only AMD64 ISA\n"
-msgid " -mamd64 accept only AMD64 ISA [default]\n"
-msgstr ""
-" -mamd64 acepta solo ISA AMD64\n"
-"\n"
-
-#: config/tc-i386.c:17722
-#, c-format
-msgid " -mintel64 accept only Intel64 ISA\n"
-msgstr " -mintel64 acepta solo ISA Intel64\n"
-
-#: config/tc-i386.c:17761
-#, c-format
-msgid "Intel MCU doesn't support `%s' architecture"
-msgstr "Intel MCU no admite «%s» como arquitectura"
-
-#: config/tc-i386.c:17769
-#, fuzzy
-#| msgid "CFI is not supported for this target"
-msgid "SCFI is not supported for this ABI"
-msgstr "CFI no admitido en este objetivo"
-
-#: config/tc-i386.c:17820
-msgid "Intel MCU is 32bit only"
-msgstr "Intel MCU es solo 32bit"
-
-#: config/tc-i386.c:17932
-#, fuzzy, c-format
-#| msgid "invalid destination register"
-msgid "invalid %s relocation against register"
-msgstr "invalida registro destino"
-
-#: config/tc-i386.c:18069
-msgid "symbol size computation overflow"
-msgstr "desbordamiento de tamaño de símbolos computacional"
-
-#: config/tc-i386.c:18148 config/tc-sparc.c:3856
-#, c-format
-msgid "can not do %d byte pc-relative relocation"
-msgstr "no se puede hacer la reubicación relativa a pc de %d bytes"
-
-#: config/tc-i386.c:18166
-#, c-format
-msgid "can not do %d byte relocation"
-msgstr "no se puede hacer la reubicación de %d bytes"
-
-#: config/tc-i386.c:18234
-#, c-format
-msgid "cannot represent relocation type %s in x32 mode"
-msgstr "no se puede representar el tipo reubicado %s en modo x32"
-
-#: config/tc-i386.c:18275 config/tc-s390.c:2835
-#, c-format
-msgid "cannot represent relocation type %s"
-msgstr "no se puede representar el tipo reubicado %s"
-
-#: config/tc-i386.c:18410
-msgid "bad .section directive: want a,l,w,x,M,S,G,T in string"
-msgstr "directiva .section incorrecta: se quiere a,l,w,x,M,S,G,T en la cadena"
-
-#: config/tc-i386.c:18413
-msgid "bad .section directive: want a,w,x,M,S,G,T in string"
-msgstr "directiva .section incorrecta: se quiere a,w,x,M,S,G,T en la cadena"
-
-#: config/tc-i386.c:18423
-msgid ".largecomm supported only in 64bit mode, producing .comm"
-msgstr ".largecomm solo se admite en modo de 64bit, se produce .comm"
-
-#: config/tc-ia64.c:869
-msgid "bad .section directive: want a,o,s,w,x,M,S,G,T in string"
-msgstr "directiva .section incorrecta: se quiere a,o,s,w,x,M,S,G,T en la cadena"
-
-#: config/tc-ia64.c:921
-msgid "Size of frame exceeds maximum of 96 registers"
-msgstr "El tamaño del marco excede el máximo de 96 registros"
-
-#: config/tc-ia64.c:926
-msgid "Size of rotating registers exceeds frame size"
-msgstr "El tamaño de los registros rotantes excede el tamaño del marco"
-
-#: config/tc-ia64.c:1013
-msgid "Unwind directive not followed by an instruction."
-msgstr "La directiva de desenredo no está seguida por una instrucción."
-
-#: config/tc-ia64.c:1022 config/tc-ia64.c:7585
-msgid "qualifying predicate not followed by instruction"
-msgstr "el predicado calificador no está seguido por una instrucción"
-
-#: config/tc-ia64.c:1070
-msgid "expected ',' after section name"
-msgstr "esperaba ',' tras nombre de sección"
-
-#: config/tc-ia64.c:1105
-msgid "expected ',' after symbol name"
-msgstr "se esperaba ',' tras nombre de símbolo"
-
-#: config/tc-ia64.c:1129
-msgid "expected ',' after symbol size"
-msgstr "se esperaba ',' tras tamaño de símbolo"
-
-#: config/tc-ia64.c:1212 config/tc-ia64.c:1246
-msgid "record type is not valid"
-msgstr "el tipo de registro no es válido"
-
-#: config/tc-ia64.c:1315
-msgid "Invalid record type for P3 format."
-msgstr "Tipo de registro inválido para el formato P3."
-
-#: config/tc-ia64.c:1351
-msgid "Invalid record type for format P6"
-msgstr "Tipo de registro inválido para el formato P6"
-
-#: config/tc-ia64.c:1531 config/tc-ia64.c:1583
-msgid "Invalid record type for format B1"
-msgstr "Tipo de registro inválido para el formato B1"
-
-#: config/tc-ia64.c:1616
-msgid "Invalid record type for format X1"
-msgstr "Tipo de registro inválido para el formato X1"
-
-#: config/tc-ia64.c:1658
-msgid "Invalid record type for format X3"
-msgstr "Tipo de registro inválido para el formato X3"
-
-#: config/tc-ia64.c:1696
-msgid "Previous .save incomplete"
-msgstr ".save previo está incompleto"
-
-#: config/tc-ia64.c:2519
-msgid "spill_mask record unimplemented."
-msgstr "no se admite el registro spill_mask."
-
-#: config/tc-ia64.c:2576
-msgid "record_type_not_valid"
-msgstr "tipo_de_registro_no_valido"
-
-#: config/tc-ia64.c:2660
-msgid "Ignoring attempt to spill beyond end of region"
-msgstr "Se descarta el intento de derramar más allá del fin de la región"
-
-#: config/tc-ia64.c:2719
-msgid "Only constant space allocation is supported"
-msgstr "Sólo se admite el alojamiento de espacio constante"
-
-#: config/tc-ia64.c:2733
-msgid "Only constant offsets are supported"
-msgstr "Sólo se admiten los desplazamientos constantes"
-
-#: config/tc-ia64.c:2757
-msgid "Section switching in code is not supported."
-msgstr "No se admite el cambio de sección en código."
-
-#: config/tc-ia64.c:2799
-msgid "Insn slot not set in unwind record."
-msgstr "Ranura insn no especifica un registro desenredado."
-
-#: config/tc-ia64.c:2873
-msgid "frgr_mem record before region record!"
-msgstr "¡Registro frgr_mem antes del registro de región!"
-
-#: config/tc-ia64.c:2884
-msgid "fr_mem record before region record!"
-msgstr "¡Registro fr_mem antes del registro de región!"
-
-#: config/tc-ia64.c:2893
-msgid "gr_mem record before region record!"
-msgstr "¡Registro gr_mem antes del registro de región!"
-
-#: config/tc-ia64.c:2902
-msgid "br_mem record before region record!"
-msgstr "¡Registro br_mem antes del registro de región!"
-
-#: config/tc-ia64.c:2912
-msgid "gr_gr record before region record!"
-msgstr "¡Registro gr_gr antes del registro de región!"
-
-#: config/tc-ia64.c:2920
-msgid "br_gr record before region record!"
-msgstr "¡Registro br_gr antes del registro de región!"
-
-#: config/tc-ia64.c:3038
-#, c-format
-msgid "First operand to .%s must be a predicate"
-msgstr "El primer operando de .%s debe ser un predicado"
-
-#: config/tc-ia64.c:3042
-#, c-format
-msgid "Pointless use of p0 as first operand to .%s"
-msgstr "Uso sin sentido de p0 como el primer operando de .%s"
-
-#: config/tc-ia64.c:3098
-#, c-format
-msgid "Operand %d to .%s must be a preserved register"
-msgstr "Operando %d de .%s debe ser un registro preservado"
-
-#: config/tc-ia64.c:3134
-#, c-format
-msgid "Operand %d to .%s must be a writable register"
-msgstr "Operandos %d de .%s debe ser un registro modificable"
-
-#: config/tc-ia64.c:3158
-#, c-format
-msgid "Radix `%s' unsupported or invalid"
-msgstr "No se admite el radical «%s» o es inválido"
-
-#: config/tc-ia64.c:3188 config/tc-ia64.c:3193
-#, c-format
-msgid ".%s outside of %s"
-msgstr ".%s externo de %s"
-
-#: config/tc-ia64.c:3279
-msgid "Tags on unwind pseudo-ops aren't supported, yet"
-msgstr "Aún no se admiten etiquetas en los pseudo-operadores de desenredo"
-
-#: config/tc-ia64.c:3301
-msgid "First operand to .fframe must be a constant"
-msgstr "El primer operando de .fframe debe ser una constante"
-
-#: config/tc-ia64.c:3321
-msgid "First operand to .vframe must be a general register"
-msgstr "El primer operando de .vfram debe ser un registro general"
-
-#: config/tc-ia64.c:3329
-msgid "Operand of .vframe contradicts .prologue"
-msgstr "Operando de .vframe contradice a .prologue"
-
-#: config/tc-ia64.c:3339
-msgid ".vframepsp is meaningless, assuming .vframesp was meant"
-msgstr ".vframepsp no tiene significado, se asume que se quería .vframesp"
-
-#: config/tc-ia64.c:3347
-msgid "Operand to .vframesp must be a constant (sp-relative offset)"
-msgstr "Operando de .vframesp debe ser una constante (desplazamiento relativo al sp)"
-
-#: config/tc-ia64.c:3374
-msgid "First operand to .save not a register"
-msgstr "El primer operando de .save no debe ser un registro"
-
-#: config/tc-ia64.c:3380
-msgid "Second operand to .save not a valid register"
-msgstr "El segundo operando de .save no es un registro válido"
-
-#: config/tc-ia64.c:3411 config/tc-ia64.c:3422 config/tc-ia64.c:3430
-msgid "Second operand of .save contradicts .prologue"
-msgstr "El segundo operando de .save contradice a .prologue"
-
-#: config/tc-ia64.c:3437
-msgid "First operand to .save not a valid register"
-msgstr "El primer operando de .save no es un registro válido"
-
-#: config/tc-ia64.c:3455
-msgid "First operand to .restore must be stack pointer (sp)"
-msgstr "El primer operando de .restore debe ser un puntero de pila (sp)"
-
-#: config/tc-ia64.c:3464
-msgid "Second operand to .restore must be a constant >= 0"
-msgstr "El segundo operando de .restore debe ser una constante >= 0"
-
-#: config/tc-ia64.c:3474
-#, c-format
-msgid "Epilogue count of %lu exceeds number of nested prologues (%u)"
-msgstr "La cuenta de epílogo de %lu excede el número de prólogos anidados (%u)"
-
-#: config/tc-ia64.c:3560
-#, c-format
-msgid "Illegal section name `%s' (causes unwind section name clash)"
-msgstr "Nombre de sección «%s» ilegal (causa una colisión con el nombre de sección de desenredo)"
-
-#: config/tc-ia64.c:3735
-msgid "First operand to .altrp not a valid branch register"
-msgstr "El primer operando de .altrp no es un registro de ramificación válido"
-
-#: config/tc-ia64.c:3764
-#, c-format
-msgid "First operand to .%s not a register"
-msgstr "El primer operando de .%s no es un registro"
-
-#: config/tc-ia64.c:3769
-#, c-format
-msgid "Second operand to .%s not a constant"
-msgstr "El segundo operando de .%s no es una constante"
-
-#: config/tc-ia64.c:3836
-#, c-format
-msgid "First operand to .%s not a valid register"
-msgstr "El primer operando de .%s no es un registro válido"
-
-#: config/tc-ia64.c:3859
-msgid "First operand to .save.g must be a positive 4-bit constant"
-msgstr "El primer operando de .save.g debe ser una constante positiva de 4-bits"
-
-#: config/tc-ia64.c:3872
-msgid "Second operand to .save.g must be a general register"
-msgstr "El segundo operando de .save.g debe ser un registro general"
-
-#: config/tc-ia64.c:3877
-#, c-format
-msgid "Second operand to .save.g must be the first of %d general registers"
-msgstr "El segundo operando de .save.g debe ser el primero de %d registros generales"
-
-#: config/tc-ia64.c:3900
-msgid "Operand to .save.f must be a positive 20-bit constant"
-msgstr "Operando de .save.f debe ser una constante positiva de 20-bits"
-
-#: config/tc-ia64.c:3923
-msgid "First operand to .save.b must be a positive 5-bit constant"
-msgstr "El primer operando de .save.b debe ser una constante positiva de 5-bits"
-
-#: config/tc-ia64.c:3936
-msgid "Second operand to .save.b must be a general register"
-msgstr "El segundo operando de .save.b debe ser un registro general"
-
-#: config/tc-ia64.c:3941
-#, c-format
-msgid "Second operand to .save.b must be the first of %d general registers"
-msgstr "El segundo operando de .save.b debe ser el primero de %d registros generales"
-
-#: config/tc-ia64.c:3967
-msgid "First operand to .save.gf must be a non-negative 4-bit constant"
-msgstr "El primer operando de .save.gf debe ser una constante de 4-bits que no sea negativa"
-
-#: config/tc-ia64.c:3975
-msgid "Second operand to .save.gf must be a non-negative 20-bit constant"
-msgstr "El segundo operando de .save.gf debe ser una constante de 20-bits que no sea negativa"
-
-#: config/tc-ia64.c:3983
-msgid "Operands to .save.gf may not be both zero"
-msgstr "Ambos operandos de .save.gf no pueden ser cero al mismo tiempo"
-
-#: config/tc-ia64.c:4000
-msgid "Operand to .spill must be a constant"
-msgstr "Operando de .spill debe ser una constante"
-
-#: config/tc-ia64.c:4069
-#, c-format
-msgid "Operand %d to .%s must be a constant"
-msgstr "Operando %d de .%s debe ser una constante"
-
-#: config/tc-ia64.c:4090
-#, c-format
-msgid "Missing .label_state %ld"
-msgstr "Ausente .label_state %ld"
-
-#: config/tc-ia64.c:4144
-msgid "Operand to .label_state must be a constant"
-msgstr "Operando de .label_state debe ser una constante"
-
-#: config/tc-ia64.c:4163
-msgid "Operand to .copy_state must be a constant"
-msgstr "Operando de .copy_state debe ser una constante"
-
-#: config/tc-ia64.c:4186
-msgid "First operand to .unwabi must be a constant"
-msgstr "El primer operando de .unwabi debe ser una constante"
-
-#: config/tc-ia64.c:4192
-msgid "Second operand to .unwabi must be a constant"
-msgstr "El segundo operando de .unwabi debe ser una constante"
-
-#: config/tc-ia64.c:4226
-msgid "Missing .endp after previous .proc"
-msgstr "Ausente .endp tras .proc previo"
-
-#: config/tc-ia64.c:4243
-msgid "Empty argument of .proc"
-msgstr "Argumento vacío de .proc"
-
-#: config/tc-ia64.c:4248
-#, c-format
-msgid "`%s' was already defined"
-msgstr "«%s» ya está definida"
-
-#: config/tc-ia64.c:4291
-msgid "Initial .body should precede any instructions"
-msgstr "El .body inicial debe preceder a cualquier instrucción"
-
-#: config/tc-ia64.c:4310
-msgid ".prologue within prologue"
-msgstr ".prologue dentro del prólogo"
-
-#: config/tc-ia64.c:4315
-msgid "Initial .prologue should precede any instructions"
-msgstr "El .prologue inicial debe preceder a cualquier instrucción"
-
-#: config/tc-ia64.c:4325
-msgid "First operand to .prologue must be a positive 4-bit constant"
-msgstr "El primer operando de .prologue debe ser una constante positiva de 4-bits"
-
-#: config/tc-ia64.c:4327
-msgid "Pointless use of zero first operand to .prologue"
-msgstr "Uso sin sentido del primer operando en cero de .prologue"
-
-#: config/tc-ia64.c:4343
-msgid "Using a constant as second operand to .prologue is deprecated"
-msgstr "Utilizando una constante como el segundo operando de .prologue es obsoleto"
-
-#: config/tc-ia64.c:4349
-msgid "Second operand to .prologue must be a general register"
-msgstr "El segundo operando de .prologue debe ser un registro general"
-
-#: config/tc-ia64.c:4354
-#, c-format
-msgid "Second operand to .prologue must be the first of %d general registers"
-msgstr "El segundo operando de .prologue debe ser el primero de %d registros generales"
-
-#: config/tc-ia64.c:4467
-#, c-format
-msgid "`%s' was not defined within procedure"
-msgstr "«%s» no se definió dentro del procedimiento"
-
-#: config/tc-ia64.c:4502
-msgid "Empty argument of .endp"
-msgstr "Argumento vacío para .endp"
-
-#: config/tc-ia64.c:4516
-#, c-format
-msgid "`%s' was not specified with previous .proc"
-msgstr "«%s» no se especificó con el .proc previo"
-
-#: config/tc-ia64.c:4531
-#, c-format
-msgid "`%s' should be an operand to this .endp"
-msgstr "«%s» debe ser un operando para este .endp"
-
-#: config/tc-ia64.c:4572 config/tc-ia64.c:4879 config/tc-ia64.c:5185
-msgid "Comma expected"
-msgstr "Se esperaba una coma"
-
-#: config/tc-ia64.c:4612
-msgid "Expected '['"
-msgstr "Se esperaba '['"
-
-#: config/tc-ia64.c:4621 config/tc-ia64.c:7719
-msgid "Expected ']'"
-msgstr "Se esperaba ']'"
-
-#: config/tc-ia64.c:4626
-msgid "Number of elements must be positive"
-msgstr "El número de elementos debe ser positivos"
-
-#: config/tc-ia64.c:4637
-#, c-format
-msgid "Used more than the declared %d rotating registers"
-msgstr "Se usaron más registros rotantes que los %d declarados"
-
-#: config/tc-ia64.c:4645
-msgid "Used more than the available 96 rotating registers"
-msgstr "Se usaron más registros rotantes que los 96 disponibles"
-
-#: config/tc-ia64.c:4652
-msgid "Used more than the available 48 rotating registers"
-msgstr "Se usaron más registros rotantes que los 48 disponibles"
-
-#: config/tc-ia64.c:4675
-#, c-format
-msgid "Attempt to redefine register set `%s'"
-msgstr "Se intenta redefinir el conjunto de registros «%s»"
-
-#: config/tc-ia64.c:4739
-#, c-format
-msgid "Unknown psr option `%s'"
-msgstr "Opción ‘psr’ desconocida «%s»"
-
-#: config/tc-ia64.c:4774
-msgid "Comma expected after section name"
-msgstr "Se esperaba una coma tras nombre de sección"
-
-#: config/tc-ia64.c:4785
-msgid "Creating sections with .xdataN/.xrealN/.xstringZ is deprecated."
-msgstr "Crear secciones con .xdataN/.xrealN/.xstringZ es obsoleto."
-
-#: config/tc-ia64.c:4874
-msgid "Register name expected"
-msgstr "Se esperaba un nombre de registro"
-
-#: config/tc-ia64.c:4887
-msgid "Register value annotation ignored"
-msgstr "Se descarta la anotación del valor del registro"
-
-#: config/tc-ia64.c:4926
-msgid "Directive invalid within a bundle"
-msgstr "Directiva no válida dentro de una agrupación"
-
-#: config/tc-ia64.c:5020
-msgid "Missing predicate relation type"
-msgstr "Ausente el tipo de relación del predicado"
-
-#: config/tc-ia64.c:5026
-msgid "Unrecognized predicate relation type"
-msgstr "No reconocido el tipo de relación de predicado"
-
-#: config/tc-ia64.c:5072
-msgid "Bad register range"
-msgstr "Rango de registro incorrecto"
-
-#: config/tc-ia64.c:5081 config/tc-ia64.c:7665
-msgid "Predicate register expected"
-msgstr "Se esperaba un registro de predicado"
-
-#: config/tc-ia64.c:5086
-msgid "Duplicate predicate register ignored"
-msgstr "Se descarta el registro de predicado duplicado"
-
-#: config/tc-ia64.c:5102
-msgid "Predicate source and target required"
-msgstr "Se requieren el predicado fuente y destino"
-
-#: config/tc-ia64.c:5104 config/tc-ia64.c:5116
-msgid "Use of p0 is not valid in this context"
-msgstr "El uso de p0 no es válido en este contexto"
-
-#: config/tc-ia64.c:5111
-msgid "At least two PR arguments expected"
-msgstr "Se esperaban al menos dos argumentos PR"
-
-#: config/tc-ia64.c:5125
-msgid "At least one PR argument expected"
-msgstr "Se esperaba al menos un argumento PR"
-
-#: config/tc-ia64.c:5157
-#, fuzzy, c-format
-#| msgid "duplicate instruction %s"
-msgid "duplicate entry hint %s"
-msgstr "la instrucción duplicada %s"
-
-#. FIXME -- need 62-bit relocation type
-#: config/tc-ia64.c:5632
-msgid "62-bit relocation not yet implemented"
-msgstr "la reubicación de 62-bits aún no está implementada"
-
-#. XXX technically, this is wrong: we should not be issuing warning
-#. messages until we're sure this instruction pattern is going to
-#. be used!
-#: config/tc-ia64.c:5718
-msgid "lower 16 bits of mask ignored"
-msgstr "16 bit por debajo de máscara descartados"
-
-#: config/tc-ia64.c:5947
-msgid "stride must be a multiple of 64; lower 6 bits ignored"
-msgstr "zancada debe ser un múltiplo de 64, menor que 6 bits descartados"
-
-#: config/tc-ia64.c:6066
-msgid "Expected separator `='"
-msgstr "Se esperaba el separador `='"
-
-#: config/tc-ia64.c:6102
-msgid "Duplicate equal sign (=) in instruction"
-msgstr "Signo igual (=) duplicado en la instrucción"
-
-#: config/tc-ia64.c:6109
-#, c-format
-msgid "Illegal operand separator `%c'"
-msgstr "Separador ilegal de operando `%c'"
-
-#: config/tc-ia64.c:6224
-#, c-format
-msgid "Operand %u of `%s' should be %s"
-msgstr "Operando %u de «%s» debería ser %s"
-
-#: config/tc-ia64.c:6228
-msgid "Wrong number of output operands"
-msgstr "Número incorrecto de operandos de salida"
-
-#: config/tc-ia64.c:6230
-msgid "Wrong number of input operands"
-msgstr "Número incorrecto de operandos de entrada"
-
-#: config/tc-ia64.c:6232
-msgid "Operand mismatch"
-msgstr "No coinciden los operandos"
-
-#: config/tc-ia64.c:6314
-#, c-format
-msgid "Invalid use of `%c%d' as output operand"
-msgstr "Uso inválido de `%c%d' como operando de salida"
-
-#: config/tc-ia64.c:6317
-#, c-format
-msgid "Invalid use of `r%d' as base update address operand"
-msgstr "Uso inválido de `r%d' como operando direccional de actualización base"
-
-#: config/tc-ia64.c:6341
-#, c-format
-msgid "Invalid duplicate use of `%c%d'"
-msgstr "Uso duplicado inválido de `%c%d'"
-
-#: config/tc-ia64.c:6348
-#, c-format
-msgid "Invalid simultaneous use of `f%d' and `f%d'"
-msgstr "Uso simultáneo inválido de `f%d' y `f%d'"
-
-#: config/tc-ia64.c:6354
-#, c-format
-msgid "Dangerous simultaneous use of `f%d' and `f%d'"
-msgstr "Uso simultáneo peligroso de `f%d' y `f%d'"
-
-#: config/tc-ia64.c:6398
-msgid "Value truncated to 62 bits"
-msgstr "Valor truncado a 62 bits"
-
-#: config/tc-ia64.c:6466
-#, c-format
-msgid "Bad operand value: %s"
-msgstr "Valor de operando incorrecto: %s"
-
-#. Give an error if a frag containing code is not aligned to a 16 byte
-#. boundary.
-#: config/tc-ia64.c:6541 config/tc-ia64.h:177
-msgid "instruction address is not a multiple of 16"
-msgstr "la instrucción direccional no es un múltiplo de 16"
-
-#: config/tc-ia64.c:6609
-#, c-format
-msgid "`%s' must be last in bundle"
-msgstr "«%s» debe ser el último en el grupo"
-
-#: config/tc-ia64.c:6641
-#, c-format
-msgid "Internal error: don't know how to force %s to end of instruction group"
-msgstr "Error interno: no se sabe como forzar a %s al fin del grupo de instrucciones"
-
-#: config/tc-ia64.c:6654
-#, c-format
-msgid "`%s' must be last in instruction group"
-msgstr "«%s» debe ser el último en el grupo de instrucciones"
-
-#: config/tc-ia64.c:6684
-msgid "Label must be first in a bundle"
-msgstr "La etiqueta debe estar al inicio de un grupo"
-
-#: config/tc-ia64.c:6761
-msgid "hint in B unit may be treated as nop"
-msgstr "la pista en la unidad B se puede tratar como nop"
-
-#: config/tc-ia64.c:6772
-msgid "hint in B unit can't be used"
-msgstr "no se puede usar la pista en la unidad B"
-
-#: config/tc-ia64.c:6786
-msgid "emit_one_bundle: unexpected dynamic op"
-msgstr "emit_one_bundle: operador dinámico inesperado"
-
-#: config/tc-ia64.c:6926
-#, c-format
-msgid "`%s' does not fit into %s template"
-msgstr "«%s» no cabe en la plantilla %s"
-
-#: config/tc-ia64.c:6941
-#, c-format
-msgid "`%s' does not fit into bundle"
-msgstr "«%s» no cabe en el grupo"
-
-#: config/tc-ia64.c:6953
-#, c-format
-msgid "`%s' can't go in %s of %s template"
-msgstr "«%s» no puede ir en %s de la plantilla %s"
-
-#: config/tc-ia64.c:6959
-msgid "Missing '}' at end of file"
-msgstr "Ausente '}' al final del fichero"
-
-#: config/tc-ia64.c:7106
-#, c-format
-msgid "Unrecognized option '-x%s'"
-msgstr "No reconocida la opción '-x%s'"
-
-#: config/tc-ia64.c:7133
-msgid ""
-"IA-64 options:\n"
-" --mconstant-gp\t mark output file as using the constant-GP model\n"
-"\t\t\t (sets ELF header flag EF_IA_64_CONS_GP)\n"
-" --mauto-pic\t\t mark output file as using the constant-GP model\n"
-"\t\t\t without function descriptors (sets ELF header flag\n"
-"\t\t\t EF_IA_64_NOFUNCDESC_CONS_GP)\n"
-" -milp32|-milp64|-mlp64|-mp64\tselect data model (default -mlp64)\n"
-" -mle | -mbe\t\t select little- or big-endian byte order (default -mle)\n"
-" -mtune=[itanium1|itanium2]\n"
-"\t\t\t tune for a specific CPU (default -mtune=itanium2)\n"
-" -munwind-check=[warning|error]\n"
-"\t\t\t unwind directive check (default -munwind-check=warning)\n"
-" -mhint.b=[ok|warning|error]\n"
-"\t\t\t hint.b check (default -mhint.b=error)\n"
-" -x | -xexplicit\t turn on dependency violation checking\n"
-msgstr ""
-"Opciones de IA-64:\n"
-" --mconstant-gp\t marca el fichero de salida como que usa el modelo\n"
-"\t\t\t GP-constante (establece la opción EF_IA_64_CONS_GP\n"
-"\t\t\t del encabezado ELF)\n"
-" --mauto-pic\t\t marca el fichero de salida como que usa el modelo\n"
-"\t\t\t GP-constante sin los descriptores de función\n"
-"\t\t\t (establece la opción EF_IA_64_NOFUNCDESC_CONS_GP\n"
-"\t\t\t del encabezado ELF)\n"
-" -milp32|-milp64|-mlp64|-mp64\tselecciona el modelo de datos\n"
-" \t(-mlp64 por defecto)\n"
-" -mle | -mbe\t\t selecciona el orden de bytes little- o big-endian\n"
-" \t\t (-mle por defecto)\n"
-" -mtune=[itanium1|itanium2]\n"
-"\t\t\t optimiza para un CPU específico\n"
-"\t\t\t (por defecto -mtune=itanium2)\n"
-" -munwind-check=[warning|error]\n"
-"\t\t\t revisión de directiva de desenredo\n"
-"\t\t\t (-munwind-check=warning por defecto)\n"
-" -mhint.b=[ok|warning|error]\n"
-"\t\t\t revisión de hint.b (-mhint.b=error por defecto)\n"
-" -x | -xexplicit\t activa la revisión de violaciones de dependencias\n"
-" \t (por defecto)\n"
-
-#. Note for translators: "automagically" can be translated as "automatically" here.
-#: config/tc-ia64.c:7150
-msgid ""
-" -xauto\t\t automagically remove dependency violations (default)\n"
-" -xnone\t\t turn off dependency violation checking\n"
-" -xdebug\t\t debug dependency violation checker\n"
-" -xdebugn\t\t debug dependency violation checker but turn off\n"
-"\t\t\t dependency violation checking\n"
-" -xdebugx\t\t debug dependency violation checker and turn on\n"
-"\t\t\t dependency violation checking\n"
-msgstr ""
-" -xauto\t\t borra las violaciones de dependencias automágicamente\n"
-"\t\t\t (por defecto)\n"
-" -xnone\t\t desactiva la revisión de violación de dependencias\n"
-" -xdebug\t\t depura el revisor de violación de dependencias\n"
-" -xdebugn\t\t depura el revisor de violación de dependencias pero\n"
-"\t\t\t desactiva la revisión de violación de dependencias\n"
-" -xdebugx\t\t depura el revisor de violación de dependencias y\n"
-"\t\t\t activa la revisión de violación de dependencias\n"
-
-#: config/tc-ia64.c:7165
-msgid "--gstabs is not supported for ia64"
-msgstr "no se admite --gstabs para ia64"
-
-#: config/tc-ia64.c:7600
-msgid "Explicit stops are ignored in auto mode"
-msgstr "Se descartan las paradas explícitas en modo automático"
-
-#: config/tc-ia64.c:7609
-msgid "Found '{' when manual bundling is already turned on"
-msgstr "Se encontró '{' cuando la agrupación manual ya está activada"
-
-#: config/tc-ia64.c:7622
-msgid "Found '{' after explicit switch to automatic mode"
-msgstr "Se encontró '{' tras cambio explícito al modo automático"
-
-#: config/tc-ia64.c:7628
-msgid "Found '}' when manual bundling is off"
-msgstr "Se encontró '}' cuando la agrupación manual está desactivada"
-
-#: config/tc-ia64.c:7655
-msgid "Expected ')'"
-msgstr "Se esperaba ')'"
-
-#: config/tc-ia64.c:7660
-msgid "Qualifying predicate expected"
-msgstr "Se esperaba un predicado calificador"
-
-#: config/tc-ia64.c:7679
-msgid "Tag must come before qualifying predicate."
-msgstr "La etiqueta debe venir antes del predicado calificador."
-
-#: config/tc-ia64.c:7708
-msgid "Expected ':'"
-msgstr "Se esperaba ':'"
-
-#: config/tc-ia64.c:7724
-msgid "Tag name expected"
-msgstr "Se esperaba un nombre de etiqueta"
-
-#: config/tc-ia64.c:7826
-msgid "Rotating register index must be a non-negative constant"
-msgstr "El índice de registros rotantes debe ser una constante que no sea negativa"
-
-#: config/tc-ia64.c:7831
-#, c-format
-msgid "Index out of range 0..%u"
-msgstr "Ãndice fuera de rango 0..%u"
-
-#: config/tc-ia64.c:7843
-msgid "Indirect register index must be a general register"
-msgstr "El índice de registros indirectos debe ser un registro general"
-
-#: config/tc-ia64.c:7852
-msgid "Index can only be applied to rotating or indirect registers"
-msgstr "El índice solo se puede aplicar a registros rotantes o indirectos"
-
-#: config/tc-ia64.c:7888 config/tc-xstormy16.c:145
-msgid "Expected '('"
-msgstr "Se esperaba '('"
-
-#: config/tc-ia64.c:7896 config/tc-pdp11.c:466 config/tc-pdp11.c:530
-#: config/tc-pdp11.c:564 config/tc-tilegx.c:1044 config/tc-tilepro.c:932
-#: config/tc-xstormy16.c:154
-msgid "Missing ')'"
-msgstr "Ausente ')'"
-
-#: config/tc-ia64.c:7914 config/tc-xstormy16.c:161
-msgid "Not a symbolic expression"
-msgstr "No es una expresión simbólica"
-
-#: config/tc-ia64.c:7919 config/tc-ia64.c:7933
-msgid "Illegal combination of relocation functions"
-msgstr "Combinación ilegal de funciones de reubicación"
-
-#: config/tc-ia64.c:8022
-msgid "No current frame"
-msgstr "Sin marco actual"
-
-#: config/tc-ia64.c:8024
-#, c-format
-msgid "Register number out of range 0..%u"
-msgstr "Número de registro fuera de rango 0..%u"
-
-#: config/tc-ia64.c:8063
-msgid "Standalone `#' is illegal"
-msgstr "Un `#' solo es ilegal"
-
-#: config/tc-ia64.c:8066
-msgid "Redundant `#' suffix operators"
-msgstr "Operadores de sufijo `#' redundantes"
-
-#: config/tc-ia64.c:8224
-#, c-format
-msgid "Unhandled dependency %s for %s (%s), note %d"
-msgstr "Dependencia %s sin manipular para %s (%s), nota %d"
-
-#: config/tc-ia64.c:9537
-#, c-format
-msgid "Unrecognized dependency specifier %d\n"
-msgstr "No reconocido el especificador de dependencia %d\n"
-
-#: config/tc-ia64.c:10398
-msgid "Only the first path encountering the conflict is reported"
-msgstr "Solamente se reporta la primera ruta donde se encuentra el conflicto"
-
-#: config/tc-ia64.c:10400
-msgid "This is the location of the conflicting usage"
-msgstr "Esta es la ubicación del uso conflictivo"
-
-#: config/tc-ia64.c:10662
-#, c-format
-msgid "Unknown opcode `%s'"
-msgstr "Código operativo desconocido «%s»"
-
-#: config/tc-ia64.c:10740
-#, c-format
-msgid "AR %d can only be accessed by %c-unit"
-msgstr "AR %d solo se puede acceder por %c-unit"
-
-#: config/tc-ia64.c:10752
-msgid "hint.b may be treated as nop"
-msgstr "hint.b quizá es tratado como nop"
-
-#: config/tc-ia64.c:10755
-msgid "hint.b shouldn't be used"
-msgstr "no se debe usar hint.b"
-
-#: config/tc-ia64.c:10794
-#, c-format
-msgid "`%s' cannot be predicated"
-msgstr "«%s» no puede ser predicado"
-
-#: config/tc-ia64.c:10867
-msgid "Closing bracket missing"
-msgstr "Ausentea llave que cierra"
-
-#: config/tc-ia64.c:10876
-msgid "Index must be a general register"
-msgstr "El índice debe ser un registro general"
-
-#: config/tc-ia64.c:11041
-#, c-format
-msgid "Unsupported fixup size %d"
-msgstr "No se admite el tamaño de compostura %d"
-
-#. This should be an error, but since previously there wasn't any
-#. diagnostic here, don't make it fail because of this for now.
-#: config/tc-ia64.c:11313
-#, c-format
-msgid "Cannot express %s%d%s relocation"
-msgstr "No se puede expresar la reubicación %s%d%s"
-
-#: config/tc-ia64.c:11332
-msgid "No addend allowed in @fptr() relocation"
-msgstr "No se permite addend en la reubicación @fptr()"
-
-#: config/tc-ia64.c:11371
-msgid "integer operand out of range"
-msgstr "operando entero fuera de rango"
-
-#: config/tc-ia64.c:11438
-#, c-format
-msgid "%s must have a constant value"
-msgstr "%s debe tener un valor constante"
-
-#: config/tc-ia64.c:11458
-msgid "cannot resolve @slotcount parameter"
-msgstr "no se puede resolver el parámetro @slotcount"
-
-#: config/tc-ia64.c:11491
-msgid "invalid @slotcount value"
-msgstr "valor de @slotcount inválido"
-
-#: config/tc-ia64.c:11528 config/tc-z8k.c:1388
-#, c-format
-msgid "Cannot represent %s relocation in object file"
-msgstr "No se puede representar la reubicación %s en el fichero objeto"
-
-#: config/tc-ia64.c:11636
-msgid "Can't add stop bit to mark end of instruction group"
-msgstr "No se puede agregar el bit de parada para marcar el fin del grupo de instrucciones"
-
-#: config/tc-ia64.c:11744 read.c:2690 read.c:3349 read.c:3917 stabs.c:461
-#, c-format
-msgid "expected comma after \"%s\""
-msgstr "se esperaba una coma tras «%s»"
-
-#: config/tc-ia64.c:11785
-#, c-format
-msgid "`%s' is already the alias of %s `%s'"
-msgstr "el símbolo «%s» ya es el alias de %s «%s»"
-
-#: config/tc-ia64.c:11796
-#, c-format
-msgid "%s `%s' already has an alias `%s'"
-msgstr "%s «%s» ya tiene un alias «%s»"
-
-#: config/tc-ia64.c:11829
-#, c-format
-msgid "symbol `%s' aliased to `%s' is not used"
-msgstr "el símbolo «%s» que tiene como alias a «%s» no se utiliza"
-
-#: config/tc-ia64.c:11855
-#, c-format
-msgid "section `%s' aliased to `%s' is not used"
-msgstr "la sección «%s» que tiene como alias a «%s» no se utiliza"
-
-#: config/tc-ip2k.c:139
-#, c-format
-msgid "IP2K specific command line options:\n"
-msgstr "Opciones de la línea de mandatos específicas de IP2K:\n"
-
-#: config/tc-ip2k.c:140
-#, c-format
-msgid " -mip2022 restrict to IP2022 insns \n"
-msgstr " -mip2022 restringe a insns de IP2022 \n"
-
-#: config/tc-ip2k.c:141
-#, c-format
-msgid " -mip2022ext permit extended IP2022 insn\n"
-msgstr " -mip2022ext permite insns extendidas de IP2022\n"
-
-#: config/tc-ip2k.c:232
-msgid "relaxation not supported\n"
-msgstr "no se admite la relajación\n"
-
-#: config/tc-iq2000.c:356
-#, c-format
-msgid "the yielding instruction %s may not be in a delay slot."
-msgstr "la instrucción que produce %s no puede estar en una ranura de retardo."
-
-#: config/tc-iq2000.c:364
-#, c-format
-msgid "Register number (R%ld) for double word access must be even."
-msgstr "El número de registro (R%ld) para el acceso de double word debe ser par."
-
-#: config/tc-iq2000.c:373 config/tc-iq2000.c:378 config/tc-iq2000.c:383
-#: config/tc-iq2000.c:400 config/tc-mt.c:246 config/tc-mt.c:251
-#, c-format
-msgid "operand references R%ld of previous load."
-msgstr "operando se refiere a R%ld de la carga previa."
-
-#: config/tc-iq2000.c:388
-msgid "instruction implicitly accesses R31 of previous load."
-msgstr "la instrucción accede implícitamente a R31 de carga anterior."
-
-#: config/tc-iq2000.c:643 config/tc-mep.c:2008
-msgid "Unmatched high relocation"
-msgstr "Reubicación high sin coincidencia"
-
-#: config/tc-iq2000.c:820 config/tc-mips.c:19791 config/tc-score.c:5784
-msgid ".end not in text section"
-msgstr ".end no está en la sección text"
-
-#: config/tc-iq2000.c:824 config/tc-score.c:5787
-msgid ".end directive without a preceding .ent directive."
-msgstr "directiva .end sin una directiva .ent precedente."
-
-#: config/tc-iq2000.c:833 config/tc-score.c:5795
-msgid ".end symbol does not match .ent symbol."
-msgstr ".end simbólico no coincide con el símbolo .ent."
-
-#: config/tc-iq2000.c:836 config/tc-mips.c:19811 config/tc-score.c:5800
-msgid ".end directive missing or unknown symbol"
-msgstr "ausente la directiva .end o hay un símbolo desconocido"
-
-#: config/tc-iq2000.c:854
-msgid "Expected simple number."
-msgstr "Se esperaba un número simple."
-
-#: config/tc-iq2000.c:883 config/tc-mips.c:19716 config/tc-score.c:5650
-#, c-format
-msgid " *input_line_pointer == '%c' 0x%02x\n"
-msgstr " *input_line_pointer == '%c' 0x%02x\n"
-
-#: config/tc-iq2000.c:885
-msgid "Invalid number"
-msgstr "Número inválido"
-
-#: config/tc-iq2000.c:919 config/tc-score.c:5681
-msgid ".ent or .aent not in text section."
-msgstr ".ent o .aent no están en la sección text."
-
-#: config/tc-iq2000.c:922
-msgid "missing `.end'"
-msgstr "ausente `.end'"
-
-#: config/tc-kvx.c:1737
-#, fuzzy
-#| msgid "signed value out of range"
-msgid "signed16 PCREL value out of range"
-msgstr "valor firmado fuera de rango"
-
-#: config/tc-kvx.c:1745
-#, fuzzy
-#| msgid "signed value out of range"
-msgid "signed43 PCREL value out of range"
-msgstr "valor firmado fuera de rango"
-
-#: config/tc-kvx.c:1752
-#, fuzzy
-#| msgid "signed value out of range"
-msgid "signed37 PCREL value out of range"
-msgstr "valor firmado fuera de rango"
-
-#: config/tc-loongarch.c:521
-#, c-format
-msgid "insn name: %s\tformat: %s\tsyntax error"
-msgstr ""
-
-#: config/tc-loongarch.c:524
-#, c-format
-msgid ""
-"insn name: %s\n"
-"format: %s\n"
-"we want macro but macro is NULL"
-msgstr ""
-
-#: config/tc-loongarch.c:529
-#, c-format
-msgid ""
-"insn name: %s\n"
-"format: %s\n"
-"macro: %s\tsyntax error"
-msgstr ""
-
-#: config/tc-loongarch.c:570
-#, c-format
-msgid "Unsupported use of %s"
-msgstr "No se admite el uso de %s"
-
-#: config/tc-loongarch.c:627 config/tc-riscv.c:4994
-msgid ".option pop with no .option push"
-msgstr "opción .option pop sin opción .option push"
-
-#: config/tc-loongarch.c:637 config/tc-riscv.c:5007
-#, fuzzy, c-format
-#| msgid "Unrecognized .option directive: %s\n"
-msgid "unrecognized .option directive: %s"
-msgstr "No reconoció directiva .option: %s\n"
-
-#: config/tc-loongarch.c:700
-#, fuzzy
-#| msgid "Internal Error: bad instruction length"
-msgid "internal error: we have no internal label yet"
-msgstr "Error interno: longitud incorrecta de instrucción"
-
-#: config/tc-loongarch.c:805
-#, fuzzy
-#| msgid "hint.b shouldn't be used"
-msgid "This label shouldn't be with addend."
-msgstr "no se debe usar hint.b"
-
-#: config/tc-loongarch.c:851
-#, fuzzy
-#| msgid "Number too large"
-msgid "expr too huge"
-msgstr "Número demasiado grande"
-
-#: config/tc-loongarch.c:878
-#, c-format
-msgid ""
-"not support reloc bit-field\n"
-"fmt: %c%c %s\n"
-"args: %s"
-msgstr ""
-
-#: config/tc-loongarch.c:949 config/tc-loongarch.c:974
-#, fuzzy, c-format
-#| msgid ".begin literal is deprecated; use .literal instead"
-msgid "register alias %s is deprecated, use %s instead"
-msgstr "El uso de .begin literal es obsoleto. Utilice en su lugar .literal"
-
-#: config/tc-loongarch.c:1007
-#, fuzzy
-#| msgid "unknown opcode"
-msgid "unknown escape"
-msgstr "desconoce código de operación"
-
-#: config/tc-loongarch.c:1034
-#, c-format
-msgid "require imm low %d bit is 0."
-msgstr ""
-
-#. How to do after we detect overflow.
-#: config/tc-loongarch.c:1046
-#, c-format
-msgid ""
-"Immediate overflow.\n"
-"format: %c%c%s\n"
-"arg: %s"
-msgstr ""
-
-#: config/tc-loongarch.c:1129
-msgid "atomic memory operations insns require rd != rj && rd != rk when rd isn't r0"
-msgstr ""
-
-#: config/tc-loongarch.c:1143
-msgid "bstr(ins|pick).[wd] require msbd >= lsbd"
-msgstr ""
-
-#: config/tc-loongarch.c:1153
-msgid "g?csrxchg require rj != r0 && rj != r1"
-msgstr ""
-
-#: config/tc-loongarch.c:1259
-#, fuzzy, c-format
-#| msgid "Unsupported RISC-V relocation number %d"
-msgid "no HOWTO loong relocation number %d"
-msgstr "No admitido número de reubicación RISC-V %d"
-
-#: config/tc-loongarch.c:1272
-#, fuzzy
-#| msgid "Internal error: Can't hash %s: %s"
-msgid "Internal error: not support relax now"
-msgstr "Error interno: No se puede dispersar %s: %s"
-
-#: config/tc-loongarch.c:1334
-#, c-format
-msgid "li overflow: hi32:0x%x lo32:0x%x"
-msgstr ""
-
-#: config/tc-loongarch.c:1339
-msgid "we can't li.d on 32bit-arch"
-msgstr ""
-
-#: config/tc-loongarch.c:1438
-#, fuzzy, c-format
-#| msgid "no such instruction: `%s'"
-msgid "no match insn: %s\t%s"
-msgstr "no hay tal instrucción: «%s»"
-
-#: config/tc-loongarch.c:1586 config/tc-loongarch.c:1593
-#, fuzzy
-#| msgid "TLS relocation against a constant"
-msgid "Relocation against a constant"
-msgstr "TLS reubicado contra una constante"
-
-#: config/tc-loongarch.c:1801 config/tc-riscv.c:4723
-#, fuzzy, c-format
-#| msgid "internal error: bad CFA value #%d"
-msgid "internal: bad CFA value #%d"
-msgstr "error interno: valor CFA incorrecto nº%d"
-
-#: config/tc-loongarch.c:1813
-#, fuzzy
-#| msgid "TLS relocation against a constant"
-msgid "Relocation against a constant."
-msgstr "TLS reubicado contra una constante"
-
-#: config/tc-loongarch.c:1894 config/tc-riscv.c:5228
-#, c-format
-msgid "cannot represent %s relocation in object file"
-msgstr "no puede representar reubicación %s en fichero objeto"
-
-#: config/tc-loongarch.c:1923
-#, fuzzy, c-format
-#| msgid "unknown register `%s'"
-msgid "unknown register `%s`"
-msgstr "el registro desconocido «%s»"
-
-#: config/tc-loongarch.c:1997
-#, fuzzy, c-format
-#| msgid "SPARC options:\n"
-msgid "LARCH options:\n"
-msgstr "Opciones SPARC:\n"
-
-#. FIXME
-#: config/tc-loongarch.c:1999
-#, c-format
-msgid ""
-" -mthin-add-sub\t Convert a pair of R_LARCH_ADD32/64 and R_LARCH_SUB32/64 to\n"
-"\t\t\t R_LARCH_32/64_PCREL as much as possible\n"
-"\t\t\t The option does not affect the generation of R_LARCH_32_PCREL\n"
-"\t\t\t relocations in .eh_frame\n"
-" -mignore-start-align\t Ignore .align if it is at the start of a section. This option\n"
-"\t\t\t can't be used when partial linking (ld -r).\n"
-msgstr ""
-
-#: config/tc-loongarch.c:2052
-#, fuzzy
-#| msgid "internal error: invalid macro"
-msgid "internal error: cannot get align symbol"
-msgstr "error interno: macro inválido"
-
-#: config/tc-m32c.c:139
-#, c-format
-msgid " M32C specific command line options:\n"
-msgstr " Opciones de la línea de mandatos específicas de M32C:\n"
-
-#. Pretend that we do not recognise this option.
-#: config/tc-m32r.c:330
-msgid "Unrecognised option: -hidden"
-msgstr "No reconocida la opción: -hidden"
-
-#: config/tc-m32r.c:357 config/tc-sparc.c:602
-msgid "Unrecognized option following -K"
-msgstr "No reconoce opción seguida de -K"
-
-#: config/tc-m32r.c:372
-#, c-format
-msgid " M32R specific command line options:\n"
-msgstr " Opciones de la línea de mandatos específicas de M32R:\n"
-
-#: config/tc-m32r.c:374
-#, c-format
-msgid " -m32r disable support for the m32rx instruction set\n"
-msgstr " -m32r desactivar apoyo para el conjunto de instrucciones m32rx\n"
-
-#: config/tc-m32r.c:376
-#, c-format
-msgid " -m32rx support the extended m32rx instruction set\n"
-msgstr " -m32rx admite el conjunto extendido de instrucciones m32rx\n"
-
-#: config/tc-m32r.c:378
-#, c-format
-msgid " -m32r2 support the extended m32r2 instruction set\n"
-msgstr " -m32r2 admite el conjunto extendido de instrucciones m32r2\n"
-
-#: config/tc-m32r.c:380
-#, c-format
-msgid " -EL,-little produce little endian code and data\n"
-msgstr " -EL,-little produce código y datos little endian\n"
-
-#: config/tc-m32r.c:382
-#, c-format
-msgid " -EB,-big produce big endian code and data\n"
-msgstr " -EB,-big produce código y datos big endian\n"
-
-#: config/tc-m32r.c:384
-#, c-format
-msgid " -parallel try to combine instructions in parallel\n"
-msgstr " -parallel intenta combinar instrucciones en paralelo\n"
-
-#: config/tc-m32r.c:386
-#, c-format
-msgid " -no-parallel disable -parallel\n"
-msgstr " -no-parallel desactiva -parallel\n"
-
-#: config/tc-m32r.c:388
-#, c-format
-msgid " -no-bitinst disallow the M32R2's extended bit-field instructions\n"
-msgstr " -no-bitinst desactiva las instrucciones extendidas de campos de bit de M32R2\n"
-
-#: config/tc-m32r.c:390
-#, c-format
-msgid " -O try to optimize code. Implies -parallel\n"
-msgstr " -O intenta optimizar código. Implica -parallel\n"
-
-#: config/tc-m32r.c:393
-#, c-format
-msgid " -warn-explicit-parallel-conflicts warn when parallel instructions\n"
-msgstr " -warn-explicit-parallel-conflicts avisa cuando hay instrucciones paralelas\n"
-
-#: config/tc-m32r.c:395
-#, c-format
-msgid " might violate constraints\n"
-msgstr " quizá viola restricciones\n"
-
-#: config/tc-m32r.c:397
-#, c-format
-msgid " -no-warn-explicit-parallel-conflicts do not warn when parallel\n"
-msgstr " -no-warn-explicit-parallel-conflicts no avisa cuando las instrucciones\n"
-
-#: config/tc-m32r.c:399
-#, c-format
-msgid " instructions might violate constraints\n"
-msgstr " instrucciones quizá violan restricciones\n"
-
-#: config/tc-m32r.c:401
-#, c-format
-msgid " -Wp synonym for -warn-explicit-parallel-conflicts\n"
-msgstr " -Wp sinónimo para -warn-explicit-parallel-conflicts\n"
-
-#: config/tc-m32r.c:403
-#, c-format
-msgid " -Wnp synonym for -no-warn-explicit-parallel-conflicts\n"
-msgstr " -Wnp sinónimo para -no-warn-explicit-parallel-conflicts\n"
-
-#: config/tc-m32r.c:405
-#, c-format
-msgid " -ignore-parallel-conflicts do not check parallel instructions\n"
-msgstr " -ignore-parallel-conflicts no revisa cuando hay instrucciones paralelas\n"
-
-#: config/tc-m32r.c:407
-#, c-format
-msgid " for constraint violations\n"
-msgstr " que violan las restricciones\n"
-
-#: config/tc-m32r.c:409
-#, c-format
-msgid " -no-ignore-parallel-conflicts check parallel instructions for\n"
-msgstr " -no-ignore-parallel-conflicts revisa cuando hay instrucciones paralelas\n"
-
-#: config/tc-m32r.c:411
-#, c-format
-msgid " constraint violations\n"
-msgstr " que violan las restricciones\n"
-
-#: config/tc-m32r.c:413
-#, c-format
-msgid " -Ip synonym for -ignore-parallel-conflicts\n"
-msgstr " -Ip sinónimo para -ignore-parallel-conflicts\n"
-
-#: config/tc-m32r.c:415
-#, c-format
-msgid " -nIp synonym for -no-ignore-parallel-conflicts\n"
-msgstr " -nIp sinónimo para -no-ignore-parallel-conflicts\n"
-
-#: config/tc-m32r.c:418
-#, c-format
-msgid " -warn-unmatched-high warn when an (s)high reloc has no matching low reloc\n"
-msgstr " -warn-unmatched-high avisa cundo una reubicación (s)high no tiene una reubicación low correspondiente\n"
-
-#: config/tc-m32r.c:420
-#, c-format
-msgid " -no-warn-unmatched-high do not warn about missing low relocs\n"
-msgstr " -no-warn-unmatched-high no avisa cuando ausenten reubicaciones low\n"
-
-#: config/tc-m32r.c:422
-#, c-format
-msgid " -Wuh synonym for -warn-unmatched-high\n"
-msgstr " -Wuh sinónimo para -warn-unmatched-high\n"
-
-#: config/tc-m32r.c:424
-#, c-format
-msgid " -Wnuh synonym for -no-warn-unmatched-high\n"
-msgstr " -Wnuh sinónimo para -no-warn-unmatched-high\n"
-
-#: config/tc-m32r.c:427
-#, c-format
-msgid " -KPIC generate PIC\n"
-msgstr " -KPIC genera PIC\n"
-
-#: config/tc-m32r.c:847
-msgid "instructions write to the same destination register."
-msgstr "las instrucciones escriben al mismo registro de destino."
-
-#: config/tc-m32r.c:855
-msgid "Instructions do not use parallel execution pipelines."
-msgstr "Las instrucciones no usan tuberías de ejecución paralela."
-
-#: config/tc-m32r.c:863
-msgid "Instructions share the same execution pipeline"
-msgstr "Las instrucciones comparten la misma tubería de ejecución"
-
-#: config/tc-m32r.c:928 config/tc-m32r.c:1042
-#, c-format
-msgid "not a 16 bit instruction '%s'"
-msgstr "no hay una instrucción 16 bit «%s»"
-
-#: config/tc-m32r.c:940 config/tc-m32r.c:1054 config/tc-m32r.c:1238
-#, c-format
-msgid "instruction '%s' is for the M32R2 only"
-msgstr "la instrucción «%s» solo es para el M32R2"
-
-#: config/tc-m32r.c:953 config/tc-m32r.c:1067 config/tc-m32r.c:1251
-#, c-format
-msgid "unknown instruction '%s'"
-msgstr "desconoce instrucción «%s»"
-
-#: config/tc-m32r.c:962 config/tc-m32r.c:1074 config/tc-m32r.c:1258
-#, c-format
-msgid "instruction '%s' is for the M32RX only"
-msgstr "la instrucción «%s» solo es para el M32RX"
-
-#: config/tc-m32r.c:971 config/tc-m32r.c:1083
-#, c-format
-msgid "instruction '%s' cannot be executed in parallel."
-msgstr "la instrucción «%s» no se puede ejecutar en paralelo."
-
-#: config/tc-m32r.c:1026 config/tc-m32r.c:1108 config/tc-m32r.c:1315
-msgid "internal error: lookup/get operands failed"
-msgstr "error interno: fallaron los operandos lookup/get"
-
-#: config/tc-m32r.c:1093
-#, c-format
-msgid "'%s': only the NOP instruction can be issued in parallel on the m32r"
-msgstr "«%s»: solamente las instrucciones NOP se puede ejecutar en paralelo en el m32r"
-
-#: config/tc-m32r.c:1122
-#, c-format
-msgid "%s: output of 1st instruction is the same as an input to 2nd instruction - is this intentional ?"
-msgstr "%s: la salida de la 1a instrucción es la misma que una entrada a la 2a instrucción - ¿Esto es intencional?"
-
-#: config/tc-m32r.c:1126
-#, c-format
-msgid "%s: output of 2nd instruction is the same as an input to 1st instruction - is this intentional ?"
-msgstr "%s: la salida de la 2a instrucción es la misma que una entrada a la 1a instrucción - ¿Esto es intencional?"
-
-#: config/tc-m32r.c:1489 config/tc-microblaze.c:175
-msgid "Expected comma after symbol-name: rest of line ignored."
-msgstr "Se esperaba coma tras nombre del símbolo: se descarta el resto de la línea."
-
-#: config/tc-m32r.c:1499
-#, c-format
-msgid ".SCOMMon length (%ld.) <0! Ignored."
-msgstr "¡Longitud SCOMMon (%ld.) <0! Se descarta."
-
-#: config/tc-m32r.c:1513 config/tc-microblaze.c:197 config/tc-ppc.c:2421
-#: config/tc-ppc.c:4355 config/tc-ppc.c:4410
-msgid "ignoring bad alignment"
-msgstr "se descarta la alineamiento incorrecta"
-
-#: config/tc-m32r.c:1525 config/tc-microblaze.c:232 config/tc-v850.c:380
-msgid "Common alignment not a power of 2"
-msgstr "La alineamiento común no es una potencia de 2"
-
-#: config/tc-m32r.c:1540 config/tc-microblaze.c:208
-#, c-format
-msgid "Ignoring attempt to re-define symbol `%s'."
-msgstr "Se descarta el intento de redefinir el símbolo «%s»."
-
-#: config/tc-m32r.c:1549
-#, c-format
-msgid "Length of .scomm \"%s\" is already %ld. Not changed to %ld."
-msgstr "La longitud de .scomm «%s» ya es %ld. No se cambió a %ld."
-
-#: config/tc-m32r.c:1926 config/tc-m32r.c:1979 config/tc-nds32.c:4786
-#: config/tc-nds32.c:4830 config/tc-sh.c:391 config/tc-sh.c:2047
-msgid "Invalid PIC expression."
-msgstr "Expresión PIC no válida."
-
-#: config/tc-m32r.c:2070
-msgid "Unmatched high/shigh reloc"
-msgstr "Reubicación high/shigh sin coincidencia"
-
-#: config/tc-m68hc11.c:416
-#, c-format
-msgid ""
-"Motorola 68HC11/68HC12/68HCS12 options:\n"
-" -m68hc11 | -m68hc12 |\n"
-" -m68hcs12 | -mm9s12x |\n"
-" -mm9s12xg specify the processor [default %s]\n"
-" -mshort use 16-bit int ABI (default)\n"
-" -mlong use 32-bit int ABI\n"
-" -mshort-double use 32-bit double ABI\n"
-" -mlong-double use 64-bit double ABI (default)\n"
-" --force-long-branches always turn relative branches into absolute ones\n"
-" -S,--short-branches do not turn relative branches into absolute ones\n"
-" when the offset is out of range\n"
-" --strict-direct-mode do not turn the direct mode into extended mode\n"
-" when the instruction does not support direct mode\n"
-" --print-insn-syntax print the syntax of instruction in case of error\n"
-" --print-opcodes print the list of instructions with syntax\n"
-" --xgate-ramoffset offset ram addresses by 0xc000\n"
-" --generate-example generate an example of each instruction\n"
-" (used for testing)\n"
-msgstr ""
-"Opciones para Motorola 68HC11/68HC12/68HCS12:\n"
-" -m68hc11 | -m68hc12 |\n"
-" -m68hcs12 | -mm9s12x |\n"
-" -mm9s12xg especifica el procesador [por defecto %s]\n"
-" -mshort usa la ABI int de 16-bit (por defecto)\n"
-" -mlong usa la ABI int de 32-bit\n"
-" -mshort-double usa la ABI double de 32-bit\n"
-" -mlong-double usa la ABI double de 64-bit (por defecto)\n"
-" --force-long-branchs siempre convierte las ramificaciones relativas en\n"
-" absolutas\n"
-" -S,--short-branchs no convierte las ramificaciones relativas en\n"
-" absolutas cuando el desplazamiento está fuera de rango\n"
-" --strict-direct-mode no convierte el modo directo en modo extendido\n"
-" cuando la instrucción no admite modo directo\n"
-" --print-insn-syntax escribe la sintaxis de la instrucción en caso de\n"
-" error\n"
-" --print-opcodes escribe la lista de instrucciones con sintaxis\n"
-" --generate-example genera un ejemplo de cada instrucción\n"
-" (se utiliza para pruebas)\n"
-
-#: config/tc-m68hc11.c:464 config/tc-xgate.c:284
-#, c-format
-msgid "Default target `%s' is not supported."
-msgstr "No se admite el objetivo por defecto «%s»."
-
-#. Dump the opcode statistics table.
-#: config/tc-m68hc11.c:482
-#, c-format
-msgid "Name # Modes Min ops Max ops Modes mask # Used\n"
-msgstr "Nombre # Modos Min ops Max ops Masc. modos # Usado\n"
-
-#: config/tc-m68hc11.c:561
-#, c-format
-msgid "Option `%s' is not recognized."
-msgstr "No reconocida la opción «%s»."
-
-#: config/tc-m68hc11.c:746
-msgid "imm3"
-msgstr "imm3"
-
-#: config/tc-m68hc11.c:754
-msgid "RD"
-msgstr "RD"
-
-#: config/tc-m68hc11.c:762
-msgid "RD,RS"
-msgstr "RD,RS"
-
-#: config/tc-m68hc11.c:770
-msgid "RI, #imm4"
-msgstr "RI, #imm4"
-
-#: config/tc-m68hc11.c:802
-msgid "RD, (RI,#offs5)"
-msgstr "RD, (RI,#offs5)"
-
-#: config/tc-m68hc11.c:854
-msgid "#<imm8>"
-msgstr "#<imm8>"
-
-#: config/tc-m68hc11.c:863
-msgid "#<imm16>"
-msgstr "#<imm16>"
-
-#: config/tc-m68hc11.c:872 config/tc-m68hc11.c:881
-msgid "<imm8>,X"
-msgstr "<imm8>,X"
-
-#: config/tc-m68hc11.c:908
-msgid "*<abs8>"
-msgstr "*<abs8>"
-
-#: config/tc-m68hc11.c:920
-msgid "#<mask>"
-msgstr "#<máscara>"
-
-#: config/tc-m68hc11.c:930
-#, c-format
-msgid "symbol%d"
-msgstr "símbolo%d"
-
-#: config/tc-m68hc11.c:932
-msgid "<abs>"
-msgstr "<abs>"
-
-#: config/tc-m68hc11.c:951
-msgid "<label>"
-msgstr "<etiqueta>"
-
-#: config/tc-m68hc11.c:967
-#, c-format
-msgid ""
-"# Example of `%s' instructions\n"
-"\t.sect .text\n"
-"_start:\n"
-msgstr ""
-"# Ejemplo de las instrucciones «%s»\n"
-"\t.sect .text\n"
-"_start:\n"
-
-#: config/tc-m68hc11.c:1014
-#, c-format
-msgid "Instruction `%s' is not recognized."
-msgstr "No reconocida la instrucción «%s»."
-
-#: config/tc-m68hc11.c:1019
-#, c-format
-msgid "Instruction formats for `%s':"
-msgstr "Formatos de instrucción para «%s»:"
-
-#: config/tc-m68hc11.c:1171
-#, c-format
-msgid "Immediate operand is not allowed for operand %d."
-msgstr "No se permite un operando inmediato para el operando %d."
-
-#: config/tc-m68hc11.c:1215
-msgid "Indirect indexed addressing is not valid for 68HC11."
-msgstr "El direccionamiento indexado indirecto no es válido para 68HC11."
-
-#: config/tc-m68hc11.c:1235
-msgid "Spurious `,' or bad indirect register addressing mode."
-msgstr "`,' sobrante o modo de direccionamiento de registro indirecto incorrecto."
-
-#: config/tc-m68hc11.c:1257
-msgid "Missing second register or offset for indexed-indirect mode."
-msgstr "Ausenten el segundo registro o el desplazamiento para el modo indexado indirecto."
-
-#: config/tc-m68hc11.c:1267
-msgid "Missing second register for indexed-indirect mode."
-msgstr "Ausente el segundo registro para el modo indexado indirecto."
-
-#: config/tc-m68hc11.c:1283
-msgid "Missing `]' to close indexed-indirect mode."
-msgstr "Ausente `]' para cerrar el modo indexado directo."
-
-#: config/tc-m68hc11.c:1328 config/tc-m68hc11.c:2961 config/tc-m68hc11.c:3073
-#: config/tc-m68hc11.c:3147 config/tc-m68hc11.c:3331 config/tc-m68hc11.c:3402
-msgid "Illegal operand."
-msgstr "Operando ilegal."
-
-#. Looks like OP_R_R.
-#: config/tc-m68hc11.c:1333 config/tc-m68hc11.c:2966 config/tc-m68hc11.c:3078
-#: config/tc-m68hc11.c:3152 config/tc-m68hc11.c:3258 config/tc-m68hc11.c:3310
-#: config/tc-m68hc11.c:3318 config/tc-m68hc11.c:3336
-msgid "Missing operand."
-msgstr "Ausente operando."
-
-#: config/tc-m68hc11.c:1386
-msgid "Pre-increment mode is not valid for 68HC11"
-msgstr "El modo de pre-incremento no es válido para 68HC11"
-
-#: config/tc-m68hc11.c:1399
-msgid "Wrong register in register indirect mode."
-msgstr "Registro incorrecto en el modo indirecto de registro."
-
-#: config/tc-m68hc11.c:1407
-msgid "Missing `]' to close register indirect operand."
-msgstr "Ausente `]' para cerrar operando indirecto de registro."
-
-#: config/tc-m68hc11.c:1427
-msgid "Post-decrement mode is not valid for 68HC11."
-msgstr "El modo de post-decremento no es válido para 68HC11."
-
-#: config/tc-m68hc11.c:1435
-msgid "Post-increment mode is not valid for 68HC11."
-msgstr "El modo de post-incremento no es válido para 68HC11."
-
-#: config/tc-m68hc11.c:1453
-msgid "Invalid indexed indirect mode."
-msgstr "Modo indexado indirecto inválido."
-
-#: config/tc-m68hc11.c:1577
-#, fuzzy, c-format
-#| msgid "Trap id `%ld' is out of range."
-msgid "Trap id `%<PRId64>' is out of range."
-msgstr "El id de captura `%ld' está fuera de rango."
-
-#: config/tc-m68hc11.c:1582
-msgid "Trap id must be within [0x30..0x39] or [0x40..0xff]."
-msgstr "El id de captura debe estar dentro de [0x30..0x39] o [0x40..0xff]"
-
-#: config/tc-m68hc11.c:1589 config/tc-m68hc11.c:1741
-#, fuzzy, c-format
-#| msgid "Operand out of 8-bit range: `%ld'."
-msgid "Operand out of 8-bit range: `%<PRId64>'."
-msgstr "Operando fuera del rango de 8-bit: `%ld'."
-
-#: config/tc-m68hc11.c:1597
-msgid "The trap id must be a constant."
-msgstr "El id de captura debe ser una constante."
-
-#: config/tc-m68hc11.c:1629 config/tc-m68hc11.c:1784 config/tc-xgate.c:1347
-#, c-format
-msgid "Operand `%x' not recognized in fixup8."
-msgstr "No reconoce operando `%x' en fixup8."
-
-#: config/tc-m68hc11.c:1646 config/tc-m68hc11.c:1694
-#, fuzzy, c-format
-#| msgid "Operand out of 16-bit range: `%ld'."
-msgid "Operand out of 16-bit range: `%<PRId64>'."
-msgstr "Operando fuera del rango de 16-bit: `%ld'."
-
-#: config/tc-m68hc11.c:1677 config/tc-m68hc11.c:1708
-#, c-format
-msgid "Operand `%x' not recognized in fixup16."
-msgstr "No reconoce operando `%x' en fixup16."
-
-#: config/tc-m68hc11.c:1801
-#, c-format
-msgid "Unexpected branch conversion with `%x'"
-msgstr "Conversión de ramificación inesperada con `%x'"
-
-#: config/tc-m68hc11.c:1887 config/tc-m68hc11.c:2019
-#, c-format
-msgid "Operand out of range for a relative branch: `%ld'"
-msgstr "Operando fuera de rango para una ramificación relativa: `%ld'"
-
-#: config/tc-m68hc11.c:1987
-msgid "Invalid register for dbcc/tbcc instruction."
-msgstr "Registro inválido para la instrucción dbcc/tbcc."
-
-#: config/tc-m68hc11.c:2075
-#, c-format
-msgid "Increment/decrement value is out of range: `%ld'."
-msgstr "El valor de incremento/decremento está fuera de rango: `%ld'."
-
-#: config/tc-m68hc11.c:2087
-msgid "Expecting a register."
-msgstr "Se espera un registro."
-
-#: config/tc-m68hc11.c:2102
-msgid "Invalid register for post/pre increment."
-msgstr "Registro inválido para post/pre incremento."
-
-#: config/tc-m68hc11.c:2132
-msgid "Invalid register."
-msgstr "Registro inválido."
-
-#: config/tc-m68hc11.c:2139
-#, c-format
-msgid "Offset out of 16-bit range: %ld."
-msgstr "Desplazamiento fuera del rango de 16-bit: %ld."
-
-#: config/tc-m68hc11.c:2145
-#, c-format
-msgid "Offset out of 5-bit range for movw/movb insn: %ld."
-msgstr "Desplazamiento fuera del rango de 5-bit para insn movw/movb: %ld."
-
-#: config/tc-m68hc11.c:2270
-msgid "Expecting register D for indexed indirect mode."
-msgstr "Se espera el registro D para el modo indexado indirecto."
-
-#: config/tc-m68hc11.c:2272
-msgid "Indexed indirect mode is not allowed for movb/movw."
-msgstr "No se permite el modo indexado directo para movb/movw."
-
-#: config/tc-m68hc11.c:2289
-msgid "Invalid accumulator register."
-msgstr "Registro acumulador inválido."
-
-#: config/tc-m68hc11.c:2315
-msgid "Invalid indexed register."
-msgstr "Registro indexado inválido."
-
-#: config/tc-m68hc11.c:2325
-msgid "Addressing mode not implemented yet."
-msgstr "Modo de direccionamiento aún sin implementar."
-
-#: config/tc-m68hc11.c:2339
-msgid "Invalid source register for this instruction, use 'tfr'."
-msgstr "Registro fuente inválido para esta instrucción, utilice 'tfr'."
-
-#: config/tc-m68hc11.c:2341
-msgid "Invalid source register."
-msgstr "Registro fuente inválido."
-
-#: config/tc-m68hc11.c:2346
-msgid "Invalid destination register for this instruction, use 'tfr'."
-msgstr "Registro destino inválido para esta instrucción, utilice 'tfr'."
-
-#: config/tc-m68hc11.c:2348
-msgid "Invalid destination register."
-msgstr "Registro destino inválido."
-
-#: config/tc-m68hc11.c:2523
-msgid "Invalid indexed register, expecting register X."
-msgstr "Registro indexado inválido, se esperaba el registro X."
-
-#: config/tc-m68hc11.c:2525
-msgid "Invalid indexed register, expecting register Y."
-msgstr "Registro indexado inválido, se esperaba el registro Y."
-
-#: config/tc-m68hc11.c:2844 config/tc-s12z.c:3804
-msgid "No instruction or missing opcode."
-msgstr "No hay instrucción o ausente el código de operación."
-
-#: config/tc-m68hc11.c:2854 config/tc-m68hc11.c:3533
-#, c-format
-msgid "Opcode `%s' is not recognized."
-msgstr "No reconocido el código de operación «%s»."
-
-#: config/tc-m68hc11.c:2903 config/tc-m68hc11.c:3452 config/tc-m68hc11.c:3555
-#, c-format
-msgid "Garbage at end of instruction: `%s'."
-msgstr "Basura al final de la instrucción: «%s»."
-
-#: config/tc-m68hc11.c:3440
-#, c-format
-msgid "Failed to find a valid mode for `%s'."
-msgstr "Fallaba al encontrar un modo válido para «%s»."
-
-#: config/tc-m68hc11.c:3464 config/tc-m68hc11.c:3683 config/tc-m68hc11.c:3689
-#, c-format
-msgid "Invalid operand for `%s'"
-msgstr "Operando inválido para «%s»"
-
-#: config/tc-m68hc11.c:3741
-#, c-format
-msgid "Invalid mode: %s\n"
-msgstr "Modo inválido: %s\n"
-
-#: config/tc-m68hc11.c:3800
-msgid "bad .relax format"
-msgstr "formato de .relax incorrecto"
-
-#: config/tc-m68hc11.c:3844 config/tc-s12z.c:3897 config/tc-xgate.c:630
-#, c-format
-msgid "Relocation %d is not supported by object file format."
-msgstr "El formato del fichero objeto no admite la reubicación %d."
-
-#: config/tc-m68hc11.c:4121
-msgid "bra or bsr with undefined symbol."
-msgstr "bra o bsr con símbolo indefinido."
-
-#: config/tc-m68hc11.c:4222 config/tc-m68hc11.c:4279
-#, c-format
-msgid "Subtype %d is not recognized."
-msgstr "No reconocido el subtipo %d."
-
-#: config/tc-m68hc11.c:4368 config/tc-s12z.c:3978 config/tc-xgate.c:708
-#: config/tc-xgate.c:717
-msgid "Value out of 16-bit range."
-msgstr "Valor fuera del rango de 16-bit."
-
-#: config/tc-m68hc11.c:4390
-#, c-format
-msgid "Value %ld too large for 8-bit PC-relative branch."
-msgstr "Valora %ld demasiado grande para la ramificación de 8-bit relativa al PC."
-
-#: config/tc-m68hc11.c:4400 config/tc-xgate.c:674
-#, c-format
-msgid "Value %ld too large for 9-bit PC-relative branch."
-msgstr "Valor %ld demasiado largo para ramificación PC-relativa de 9-bit."
-
-#: config/tc-m68hc11.c:4409 config/tc-xgate.c:691
-#, c-format
-msgid "Value %ld too large for 10-bit PC-relative branch."
-msgstr "Valor %ld demasiado largo para ramificación PC-relativa de 10-bit."
-
-#: config/tc-m68hc11.c:4417
-#, c-format
-msgid "Auto increment/decrement offset '%ld' is out of range."
-msgstr "El auto incremento/decremento del desplazamiento '%ld' está fuera de rango."
-
-#: config/tc-m68hc11.c:4430
-#, c-format
-msgid "Offset out of 5-bit range for movw/movb insn: %ld"
-msgstr "Desplazamiento fuera del rango de 5-bit para insn movw/movb: %ld"
-
-#: config/tc-m68hc11.c:4441
-#, c-format
-msgid "Offset out of 9-bit range for movw/movb insn: %ld"
-msgstr "Desplazamiento fuera del rango de 5-bit para insn movw/movb: %ld"
-
-#: config/tc-m68hc11.c:4453
-#, c-format
-msgid "Offset out of 16-bit range for movw/movb insn: %ld"
-msgstr "Desplazamiento fuera del rango de 16-bit para insn movw/movb: %ld"
-
-#: config/tc-m68hc11.c:4470 config/tc-s12z.c:3984 config/tc-xgate.c:752
-#, c-format
-msgid "Line %d: unknown relocation type: 0x%x."
-msgstr "Línea %d: tipo reubicado desconocido: 0x%x."
-
-#: config/tc-m68hc11.c:4495 config/tc-z80.c:3452 config/tc-z80.c:3472
-msgid "Invalid directive"
-msgstr "Directiva no válida"
-
-#: config/tc-m68k.c:1123
-#, c-format
-msgid "Can not do %d byte pc-relative relocation"
-msgstr "No se puede hacer la reubicación relativa a pc de %d bytes"
-
-#: config/tc-m68k.c:1125
-#, c-format
-msgid "Can not do %d byte pc-relative pic relocation"
-msgstr "No se puede hacer la reubicación pic relativa a pc de %d bytes"
-
-#: config/tc-m68k.c:1130
-#, c-format
-msgid "Can not do %d byte relocation"
-msgstr "No se puede hacer la reubicación de %d bytes"
-
-#: config/tc-m68k.c:1132
-#, c-format
-msgid "Can not do %d byte pic relocation"
-msgstr "No se puede hacer la reubicación pic de %d bytes"
-
-#: config/tc-m68k.c:1202
-#, c-format
-msgid "Unable to produce reloc against symbol '%s'"
-msgstr "Incapaz producir reubicación contra símbolo «%s»"
-
-#: config/tc-m68k.c:1261 config/tc-vax.c:2324
-#, c-format
-msgid "Cannot make %s relocation PC relative"
-msgstr "No se puede hacer la reubicación relativa a PC %s"
-
-#: config/tc-m68k.c:1343 config/tc-vax.c:1874
-msgid "No operator"
-msgstr "No hay operador"
-
-#: config/tc-m68k.c:1373 config/tc-vax.c:1890
-msgid "Unknown operator"
-msgstr "Operador desconocido"
-
-#: config/tc-m68k.c:2276
-msgid "invalid instruction for this architecture; needs "
-msgstr "la instrucción no válida para esta arquitectura; necesita "
-
-#: config/tc-m68k.c:2284
-msgid "hardware divide"
-msgstr "divide por hardware"
-
-#: config/tc-m68k.c:2306 config/tc-m68k.c:2310 config/tc-m68k.c:2314
-msgid "or higher"
-msgstr "o superior"
-
-#: config/tc-m68k.c:2367
-msgid "operands mismatch"
-msgstr "no coinciden los operandos"
-
-#: config/tc-m68k.c:2431 config/tc-m68k.c:2437 config/tc-m68k.c:2443
-#: config/tc-mmix.c:2499 config/tc-mmix.c:2523
-msgid "operand out of range"
-msgstr "operando fuera de rango"
-
-#: config/tc-m68k.c:2500
-#, c-format
-msgid "Bignum too big for %c format; truncated"
-msgstr "Número grande demasiado grande para el formato %c; se trunca"
-
-#: config/tc-m68k.c:2577
-msgid "displacement too large for this architecture; needs 68020 or higher"
-msgstr "desubicación demasiado grande para esta arquitectura; necesita 68020 o superior"
-
-#: config/tc-m68k.c:2685
-msgid "scale factor invalid on this architecture; needs cpu32 or 68020 or higher"
-msgstr "factor de escala inválido en esta arquitectura; necesita cpu32 o 68020 o superior"
-
-#: config/tc-m68k.c:2690
-msgid "invalid index size for coldfire"
-msgstr "tamaño de índice inválido para coldfire"
-
-#: config/tc-m68k.c:2743
-msgid "Forcing byte displacement"
-msgstr "Se fuerza la desubicación de byte"
-
-#: config/tc-m68k.c:2745
-msgid "byte displacement out of range"
-msgstr "desplazamiento byte fuera de rango"
-
-#: config/tc-m68k.c:2790 config/tc-m68k.c:2828
-msgid "invalid operand mode for this architecture; needs 68020 or higher"
-msgstr "modo de operando inválido para esta arquitectura; necesita 68020 o superior"
-
-#: config/tc-m68k.c:2814 config/tc-m68k.c:2848
-msgid ":b not permitted; defaulting to :w"
-msgstr "no se permite :b; se cambia por defecto a :w"
-
-#: config/tc-m68k.c:2923
-msgid "unsupported byte value; use a different suffix"
-msgstr "no se admite el valor de byte; utilice un sufijo diferente"
-
-#: config/tc-m68k.c:2938
-msgid "unknown/incorrect operand"
-msgstr "operando desconocido/incorrecto"
-
-#: config/tc-m68k.c:2981 config/tc-m68k.c:2989 config/tc-m68k.c:2996
-#: config/tc-m68k.c:3003
-msgid "out of range"
-msgstr "fuera de rango"
-
-#: config/tc-m68k.c:3074
-msgid "Can't use long branches on this architecture"
-msgstr "No se pueden usar ramificaciones long en esta arquitectura"
-
-#: config/tc-m68k.c:3180
-msgid "Expression out of range, using 0"
-msgstr "Expresión fuera de rango, utilizando 0"
-
-#: config/tc-m68k.c:3381 config/tc-m68k.c:3397
-msgid "Floating point register in register list"
-msgstr "Registro de coma flotante en la lista de registros"
-
-#: config/tc-m68k.c:3387
-msgid "Wrong register in floating-point reglist"
-msgstr "Registro incorrecto en la lista de registros de coma flotante"
-
-#: config/tc-m68k.c:3403
-msgid "incorrect register in reglist"
-msgstr "el registro incorrecto en la lista de registros"
-
-#: config/tc-m68k.c:3409
-msgid "wrong register in floating-point reglist"
-msgstr "el registro incorrecto en la lista de registros de coma flotante"
-
-#: config/tc-m68k.c:3820 config/tc-m68k.c:3852 config/tc-sparc.c:3140
-msgid "failed sanity check."
-msgstr "la inspección sanitaria ha fallado."
-
-#. ERROR.
-#: config/tc-m68k.c:3882
-msgid "Extra )"
-msgstr "Adicional )"
-
-#. ERROR.
-#: config/tc-m68k.c:3893
-msgid "Missing )"
-msgstr "Ausente )"
-
-#: config/tc-m68k.c:3910
-msgid "Missing operand"
-msgstr "Ausente operando"
-
-#: config/tc-m68k.c:4235
-#, c-format
-msgid "unrecognized default cpu `%s'"
-msgstr "no reconocido el cpu por defecto «%s»"
-
-#: config/tc-m68k.c:4289
-#, c-format
-msgid "%s -- statement `%s' ignored"
-msgstr "%s -- declaración «%s» descartada"
-
-#: config/tc-m68k.c:4336
-#, fuzzy, c-format
-#| msgid "Don't know how to figure width of %c in md_assemble()"
-msgid "Don't know how to figure out width of %c in md_assemble()"
-msgstr "No se sabe comó reconocer la anchura de %c en md_assemble()"
-
-#: config/tc-m68k.c:4566 config/tc-m68k.c:4604
-#, c-format
-msgid "Internal Error: Can't find %s in hash table"
-msgstr "Error Interno: No se puede encontrar %s en la tabla de dispersión"
-
-#: config/tc-m68k.c:4720
-#, c-format
-msgid "text label `%s' aligned to odd boundary"
-msgstr "la etiqueta de texto «%s» está alineada a un límite impar"
-
-#: config/tc-m68k.c:4879
-#, c-format
-msgid "value %ld out of range"
-msgstr "valora %ld fuera de rango"
-
-#: config/tc-m68k.c:4893
-msgid "invalid byte branch offset"
-msgstr "desplazamiento de ramificación byte inválido"
-
-#: config/tc-m68k.c:4930
-msgid "short branch with zero offset: use :w"
-msgstr "ramificación corta con desplazamiento cero: utilice :w"
-
-#: config/tc-m68k.c:4974
-msgid "Conversion of PC relative BSR to absolute JSR"
-msgstr "Conversión de un BSR relativo a PC a un JSR absoluto"
-
-#: config/tc-m68k.c:4985
-msgid "Conversion of PC relative branch to absolute jump"
-msgstr "Conversión de una ramificación relativa a PC a un salto absoluto"
-
-#: config/tc-m68k.c:5002 config/tc-m68k.c:5059
-msgid "Conversion of PC relative conditional branch to absolute jump"
-msgstr "Conversión de una ramificación condicional relativa a PC a un salto absoluto"
-
-#: config/tc-m68k.c:5124
-msgid "Conversion of PC relative displacement to absolute"
-msgstr "Conversión de un desplazamiento relativo a PC a absoluto"
-
-#: config/tc-m68k.c:5307
-msgid "Tried to convert PC relative branch to absolute jump"
-msgstr "Se trató de convertir una ramificación relativa a PC a un salto absoluto"
-
-#: config/tc-m68k.c:5352 config/tc-m68k.c:5363 config/tc-m68k.c:5407
-msgid "expression out of range: defaulting to 1"
-msgstr "expresión fuera de rango: se cambia por defecto a 1"
-
-#: config/tc-m68k.c:5399
-msgid "expression out of range: defaulting to 0"
-msgstr "expresión fuera de rango: se cambia por defecto a 0"
-
-#: config/tc-m68k.c:5440 config/tc-m68k.c:5452
-#, c-format
-msgid "Can't deal with expression; defaulting to %ld"
-msgstr "No se puede lidiar con la expresión; se cambia por defecto a %ld"
-
-#: config/tc-m68k.c:5466
-msgid "expression doesn't fit in BYTE"
-msgstr "expresión no cabe en BYTE"
-
-#: config/tc-m68k.c:5470
-msgid "expression doesn't fit in WORD"
-msgstr "expresión no cabe en WORD"
-
-#: config/tc-m68k.c:5547
-#, c-format
-msgid "%s: unrecognized processor name"
-msgstr "%s: no reconocido el nombre de procesador"
-
-#: config/tc-m68k.c:5608
-msgid "bad coprocessor id"
-msgstr "id de coprocesador incorrecto"
-
-#: config/tc-m68k.c:5614
-msgid "unrecognized fopt option"
-msgstr "no se reconoce la opción fopt"
-
-#: config/tc-m68k.c:5746
-#, c-format
-msgid "option `%s' may not be negated"
-msgstr "la opción «%s» podría no estar negada"
-
-#: config/tc-m68k.c:5757
-#, c-format
-msgid "option `%s' not recognized"
-msgstr "opción «%s» no reconocida"
-
-#: config/tc-m68k.c:5786
-msgid "bad format of OPT NEST=depth"
-msgstr "formato incorrecto de OPT NEST=profundidad"
-
-#: config/tc-m68k.c:5842
-msgid "missing label"
-msgstr "ausencia etiquetado"
-
-#: config/tc-m68k.c:5868
-#, c-format
-msgid "bad register list: %s"
-msgstr "lista de registros incorrecta: %s"
-
-#: config/tc-m68k.c:5966
-msgid "restore without save"
-msgstr "restaurar sin guardar"
-
-#: config/tc-m68k.c:6119 config/tc-m68k.c:6489
-msgid "syntax error in structured control directive"
-msgstr "error de sintaxis en directiva de control estructurada"
-
-#: config/tc-m68k.c:6164
-msgid "missing condition code in structured control directive"
-msgstr "ausente el código de condición en la directiva de control estructurada"
-
-#: config/tc-m68k.c:6235
-#, c-format
-msgid "Condition <%c%c> in structured control directive can not be encoded correctly"
-msgstr "La condición <%c%c> en la directiva de control estructurada no se puede codificar correctamente"
-
-#: config/tc-m68k.c:6531
-msgid "missing then"
-msgstr "ausente then"
-
-#: config/tc-m68k.c:6612
-msgid "else without matching if"
-msgstr "else sin if coincidente"
-
-#: config/tc-m68k.c:6645
-msgid "endi without matching if"
-msgstr "endi sin if coincidente"
-
-#: config/tc-m68k.c:6685
-msgid "break outside of structured loop"
-msgstr "break externo al bucle estructurado"
-
-#: config/tc-m68k.c:6723
-msgid "next outside of structured loop"
-msgstr "next externo al bucle estructurado"
-
-#: config/tc-m68k.c:6774
-msgid "missing ="
-msgstr "ausente ="
-
-#: config/tc-m68k.c:6812
-msgid "missing to or downto"
-msgstr "ausente to o downto"
-
-#: config/tc-m68k.c:6848 config/tc-m68k.c:6882 config/tc-m68k.c:7096
-msgid "missing do"
-msgstr "ausente do"
-
-#: config/tc-m68k.c:6983
-msgid "endf without for"
-msgstr "endf sin for"
-
-#: config/tc-m68k.c:7037
-msgid "until without repeat"
-msgstr "until sin repeat"
-
-#: config/tc-m68k.c:7131
-msgid "endw without while"
-msgstr "endw sin while"
-
-#: config/tc-m68k.c:7164 config/tc-m68k.c:7192
-msgid "already assembled instructions"
-msgstr "las instrucciones ya están ensambladas"
-
-#: config/tc-m68k.c:7269
-#, c-format
-msgid "`%s' is deprecated, use `%s'"
-msgstr "«%s» es obsoleta, emplee «%s»"
-
-#: config/tc-m68k.c:7288
-#, c-format
-msgid "cpu `%s' unrecognized"
-msgstr "cpu «%s» no reconocida"
-
-#: config/tc-m68k.c:7307
-#, c-format
-msgid "architecture `%s' unrecognized"
-msgstr "arquitectura «%s» no reconocida"
-
-#: config/tc-m68k.c:7328
-#, c-format
-msgid "extension `%s' unrecognized"
-msgstr "extensión «%s» no reconocida"
-
-#: config/tc-m68k.c:7443
-#, c-format
-msgid "option `-A%s' is deprecated: use `-%s'"
-msgstr "la opción `-A%s' es obsoleta: use `-%s'"
-
-#: config/tc-m68k.c:7476
-msgid "architecture features both enabled and disabled"
-msgstr "las características de la arquitectura están activadas y desactivadas al mismo tiempo"
-
-#: config/tc-m68k.c:7503
-msgid "selected processor does not have all features of selected architecture"
-msgstr "el procesador seleccionado no tiene todas las características de la arquitectura seleccionada"
-
-#: config/tc-m68k.c:7512
-msgid "m68k and cf features both selected"
-msgstr "se seleccionaron características tanto de m68k como de cf"
-
-#: config/tc-m68k.c:7524
-msgid "68040 and 68851 specified; mmu instructions may assemble incorrectly"
-msgstr "se especificaron 68040 y 68851; las instrucciones mmu podrían ensamblar incorrectamente"
-
-#: config/tc-m68k.c:7556
-#, c-format
-msgid ""
-"-march=<arch>\t\tset architecture\n"
-"-mcpu=<cpu>\t\tset cpu [default %s]\n"
-msgstr ""
-"-march=<arqu>\t\tdefine la arquitectura\n"
-"-mcpu=<cpu>\t\tdefine el cpu [por defecto %s]\n"
-
-#: config/tc-m68k.c:7561
-#, c-format
-msgid "-m[no-]%-16s enable/disable %s architecture extension\n"
-msgstr "-m[no-]%-16s activa/desactiva extensión arquitectural %s\n"
-
-#: config/tc-m68k.c:7567
-#, c-format
-msgid ""
-"-l\t\t\tuse 1 word for refs to undefined symbols [default 2]\n"
-"-pic, -k\t\tgenerate position independent code\n"
-"-S\t\t\tturn jbsr into jsr\n"
-"--pcrel never turn PC-relative branches into absolute jumps\n"
-"--register-prefix-optional\n"
-"\t\t\trecognize register names without prefix character\n"
-"--bitwise-or\t\tdo not treat `|' as a comment character\n"
-"--base-size-default-16\tbase reg without size is 16 bits\n"
-"--base-size-default-32\tbase reg without size is 32 bits (default)\n"
-"--disp-size-default-16\tdisplacement with unknown size is 16 bits\n"
-"--disp-size-default-32\tdisplacement with unknown size is 32 bits (default)\n"
-msgstr ""
-"-l\t\t\tusa 1 word para referencias a símbolos indefinidos [por defecto 2]\n"
-"-pic, -k\t\tgenera código independiente de posición\n"
-"-S\t\t\tconvierte jbsr en jsr\n"
-"--pcrel nunca convierte ramificaciones relativas al PC en saltos absolutos\n"
-"--register-prefix-optional\n"
-"\t\t\treconoce los nombres de registro sin carácter de prefijo\n"
-"--bitwise-or\t\tno trata `|' como un carácter de comentario\n"
-"--base-size-default-16\tregistro base sin tamaño es 16 bits\n"
-"--base-size-default-32\tregistro base sin tamaño es 32 bits (por defecto)\n"
-"--disp-size-default-16\tdesplazamiento con tamaño desconocido es 16 bits\n"
-"--disp-size-default-32\tdesplazamiento con tamaño desconocido es 32 bits (por defecto)\n"
-
-#: config/tc-m68k.c:7581
-#, c-format
-msgid "Architecture variants are: "
-msgstr "Las variantes de arquitectura son: "
-
-#: config/tc-m68k.c:7590
-#, c-format
-msgid "Processor variants are: "
-msgstr "Las variantes de procesador son: "
-
-#: config/tc-m68k.c:7597 config/tc-xtensa.c:6412
-#, c-format
-msgid "\n"
-msgstr "\n"
-
-#: config/tc-m68k.c:7628
-#, c-format
-msgid "Error %s in %s\n"
-msgstr "Error %s en %s\n"
-
-#: config/tc-m68k.c:7632
-#, c-format
-msgid "Opcode(%d.%s): "
-msgstr "Código operacional(%d.%s): "
-
-#: config/tc-m68k.c:7777
-msgid "Not a defined coldfire architecture"
-msgstr "No es una arquitectura coldfire definida"
-
-#: config/tc-m68k.c:7886 read.c:4809
-#, c-format
-msgid "%s relocations do not fit in %u byte"
-msgid_plural "%s relocations do not fit in %u bytes"
-msgstr[0] "%s reubicaciones no caben en %u byte"
-msgstr[1] "%s reubicaciones no caben en %u bytes"
-
-#: config/tc-m68k.c:7928 config/tc-ppc.c:2594
-msgid "unknown .gnu_attribute value"
-msgstr "desconoce valor .gnu_attribute"
-
-#: config/tc-m68k.c:7972
-#, fuzzy, c-format
-#| msgid "Adjusted signed .word (%ld) overflows: `switch'-statement too large."
-msgid "Adjusted signed .word (%#lx) overflows: `switch'-statement too large."
-msgstr "Signo ajustado .word (%ld) desborda: sentencia `switch' demasiado grande."
-
-#: config/tc-mcore.c:521 config/tc-microblaze.c:487 config/tc-microblaze.c:515
-#: config/tc-microblaze.c:552 config/tc-microblaze.c:564
-#, c-format
-msgid "register expected, but saw '%.6s'"
-msgstr "se esperaba un registro, pero se vio '%.6s'"
-
-#: config/tc-mcore.c:603
-#, c-format
-msgid "control register expected, but saw '%.6s'"
-msgstr "se esperaba un registro de control, pero se vio '%.6s'"
-
-#: config/tc-mcore.c:639
-msgid "bad/missing psr specifier"
-msgstr "especificador psr incorrecto/ausentente"
-
-#: config/tc-mcore.c:784
-#, c-format
-msgid "operand must be absolute in range %u..%u, not %ld"
-msgstr "operando debe ser un absoluto en el rango %u..%u, no %ld"
-
-#: config/tc-mcore.c:819
-msgid "operand must be a multiple of 4"
-msgstr "operando debe ser un múltiplo de 4"
-
-#: config/tc-mcore.c:826
-msgid "operand must be a multiple of 2"
-msgstr "operando debe ser un múltiplo de 2"
-
-#: config/tc-mcore.c:840 config/tc-mcore.c:1356 config/tc-mcore.c:1410
-msgid "base register expected"
-msgstr "se esperaba un registro base"
-
-#: config/tc-mcore.c:888 config/tc-microblaze.c:920 config/tc-microblaze.c:1056
-#: config/tc-microblaze.c:1090 config/tc-microblaze.c:1626
-#: config/tc-microblaze.c:1694 config/tc-microblaze.c:1769
-#: config/tc-microblaze.c:2192 config/tc-microblaze.c:2241
-#, c-format
-msgid "unknown opcode \"%s\""
-msgstr "código de operación desconocido «%s»"
-
-#: config/tc-mcore.c:931
-msgid "invalid register: r15 illegal"
-msgstr "el registro inválido: r15 ilegal"
-
-#: config/tc-mcore.c:980 config/tc-mcore.c:1561
-msgid "M340 specific opcode used when assembling for M210"
-msgstr "M340 utilizado como código de operación específico cuando ensambla para M210"
-
-#: config/tc-mcore.c:998 config/tc-mcore.c:1038 config/tc-mcore.c:1057
-#: config/tc-mcore.c:1076 config/tc-mcore.c:1104 config/tc-mcore.c:1133
-#: config/tc-mcore.c:1170 config/tc-mcore.c:1205 config/tc-mcore.c:1224
-#: config/tc-mcore.c:1243 config/tc-mcore.c:1277 config/tc-mcore.c:1302
-#: config/tc-mcore.c:1359 config/tc-mcore.c:1413 config/tc-mcore.c:1449
-#: config/tc-mcore.c:1508 config/tc-mcore.c:1530 config/tc-mcore.c:1553
-msgid "second operand missing"
-msgstr "ausente el segundo operando"
-
-#: config/tc-mcore.c:1014
-msgid "destination register must be r1"
-msgstr "destino debe ser registro r1"
-
-#: config/tc-mcore.c:1035
-msgid "source register must be r1"
-msgstr "origen debe ser registro r1"
-
-#: config/tc-mcore.c:1099 config/tc-mcore.c:1156
-msgid "immediate is not a power of two"
-msgstr "inmediato no es una potencia de dos"
-
-#: config/tc-mcore.c:1127
-msgid "translating bgeni to movi"
-msgstr "se traslada ‘bgeni’ a ‘movi’"
-
-#: config/tc-mcore.c:1196
-msgid "translating bmaski to movi"
-msgstr "se traslada ‘bmaski’ a ‘movi’"
-
-#: config/tc-mcore.c:1272
-#, c-format
-msgid "displacement too large (%d)"
-msgstr "desubicación muy grande (%d)"
-
-#: config/tc-mcore.c:1286
-msgid "Invalid register: r0 and r15 illegal"
-msgstr "Registro inválido: r0 y r15 ilegales"
-
-#: config/tc-mcore.c:1317
-msgid "bad starting register: r0 and r15 invalid"
-msgstr "el registro de inicio incorrecto: r0 y r15 inválidos"
-
-#: config/tc-mcore.c:1330
-msgid "ending register must be r15"
-msgstr "el registro final debe ser r15"
-
-#: config/tc-mcore.c:1350
-msgid "bad base register: must be r0"
-msgstr "el registro base incorrecto: debe ser r0"
-
-#: config/tc-mcore.c:1368
-msgid "first register must be r4"
-msgstr "el primer registro debe ser r4"
-
-#: config/tc-mcore.c:1379
-msgid "last register must be r7"
-msgstr "el último registro debe ser r7"
-
-#: config/tc-mcore.c:1416
-msgid "reg-reg expected"
-msgstr "se esperaba registro-registro"
-
-#: config/tc-mcore.c:1548
-msgid "zero used as immediate value"
-msgstr "se utiliza cero como valor inmediato"
-
-#: config/tc-mcore.c:1575
-msgid "duplicated psr bit specifier"
-msgstr "especificador de bit psr duplicado"
-
-#: config/tc-mcore.c:1581
-msgid "`af' must appear alone"
-msgstr "`af' debe aparecer solo"
-
-#: config/tc-mcore.c:1588 config/tc-microblaze.c:1807
-#, c-format
-msgid "unimplemented opcode \"%s\""
-msgstr "código de operación «%s» no implementado"
-
-#: config/tc-mcore.c:1597 config/tc-microblaze.c:1816
-#, c-format
-msgid "ignoring operands: %s "
-msgstr "se descartan los operandos: %s "
-
-#: config/tc-mcore.c:1673
-#, c-format
-msgid "unrecognised cpu type '%s'"
-msgstr "no reconocido el tipo de cpu «%s»"
-
-#: config/tc-mcore.c:1691
-#, c-format
-msgid ""
-"MCORE specific options:\n"
-" -{no-}jsri2bsr\t {dis}able jsri to bsr transformation (def: dis)\n"
-" -{no-}sifilter\t {dis}able silicon filter behavior (def: dis)\n"
-" -cpu=[210|340] select CPU type\n"
-" -EB assemble for a big endian system (default)\n"
-" -EL assemble for a little endian system\n"
-msgstr ""
-"Opciones específicas de MCORE:\n"
-" -{no-}jsri2bsr\t {des}activa la transformación de jsri a bsr (def: des)\n"
-" -{no-}sifilter\t {des}activa el comportamiento filtrado del silicio (def: des)\n"
-" -cpu=[210|340] selecciona el tipo de CPU\n"
-" -EB ensambla para un sistema big endian (predet.)\n"
-" -EL ensambla para un sistema little endian\n"
-
-#: config/tc-mcore.c:1709 config/tc-microblaze.c:1926
-msgid "failed sanity check: short_jump"
-msgstr "la inspección sanitaria ha fallado: short_jump"
-
-#: config/tc-mcore.c:1719 config/tc-microblaze.c:1936
-msgid "failed sanity check: long_jump"
-msgstr "la inspección sanitaria ha fallado: long_jump"
-
-#: config/tc-mcore.c:1745
-#, c-format
-msgid "odd displacement at %x"
-msgstr "desplazamiento impar en %x"
-
-#: config/tc-mcore.c:1954
-#, c-format
-msgid "odd distance branch (0x%lx byte)"
-msgid_plural "odd distance branch (0x%lx bytes)"
-msgstr[0] "distancia de ramificación impar (0x%lx bytes)"
-msgstr[1] "distancia de ramificación impar (0x%lx byte)"
-
-#: config/tc-mcore.c:1961
-#, c-format
-msgid "pcrel for branch to %s too far (0x%lx)"
-msgstr "el pcrel para ramificar a %s muy lejos (0x%lx)"
-
-#: config/tc-mcore.c:1981
-#, c-format
-msgid "pcrel for lrw/jmpi/jsri to %s too far (0x%lx)"
-msgstr "el pcrel para lrw/jmpi/jsri a %s está muy lejos (0x%lx)"
-
-#: config/tc-mcore.c:1993
-#, c-format
-msgid "pcrel for loopt too far (0x%lx)"
-msgstr "el pcrel para bucle ‘loopt’ está muy lejos (0x%lx)"
-
-#: config/tc-mcore.c:2189 config/tc-microblaze.c:2529 config/tc-tic30.c:1364
-#, c-format
-msgid "Can not do %d byte %srelocation"
-msgstr "No se puede hacer %d byte reubicación %s"
-
-#: config/tc-mcore.c:2191 config/tc-microblaze.c:2531 config/tc-tic30.c:1365
-msgid "pc-relative "
-msgstr "relativo a pc "
-
-#: config/tc-mep.c:339
-#, c-format
-msgid ""
-"MeP specific command line options:\n"
-" -EB assemble for a big endian system\n"
-" -EL assemble for a little endian system (default)\n"
-" -mconfig=<name> specify a chip configuration to use\n"
-" -maverage -mno-average -mmult -mno-mult -mdiv -mno-div\n"
-" -mbitops -mno-bitops -mleadz -mno-leadz -mabsdiff -mno-absdiff\n"
-" -mminmax -mno-minmax -mclip -mno-clip -msatur -mno-satur -mcop32\n"
-" enable/disable the given opcodes\n"
-"\n"
-" If -mconfig is given, the other -m options modify it. Otherwise,\n"
-" if no -m options are given, all core opcodes are enabled;\n"
-" if any enabling -m options are given, only those are enabled;\n"
-" if only disabling -m options are given, only those are disabled.\n"
-msgstr ""
-"Opciones de línea de mandatos específicas para MeP:\n"
-" -EB ensambla para un sistema big endian\n"
-" -EL ensambla para un sistema little endian (por defecto)\n"
-" -mconfig=<nombre> especifica una configuración de chip a usar\n"
-" -maverage -mno-average -mmult -mno-mult -mdiv -mno-div\n"
-" -mbitops -mno-bitops -mleadz -mno-leadz -mabsdiff -mno-absdiff\n"
-" -mminmax -mno-minmax -mclip -mno-clip -msatur -mno-satur -mcop32\n"
-" activa/desactiva los códigos operacionales dados\n"
-"\n"
-" Si se da -mconfig, las otras casillas -m lo modifican. De otra manera,\n"
-" si no se dan casillas -m, todos los códigos operacionales core se activan;\n"
-" si se da cualquier opción -m que activa, solo ésas se activan;\n"
-" si se da cualquier opción -m que desactiva, solo ésas se desactivan.\n"
-
-#: config/tc-mep.c:408
-msgid "$hi and $lo are disabled when MUL and DIV are off"
-msgstr "$hi y $lo están desactivados cuando MUL y DIV están apagados"
-
-#: config/tc-mep.c:415
-msgid "$mb0, $me0, $mb1, and $me1 are disabled when COP is off"
-msgstr "$mb0, $me0, $mb1 y $me1 están desactivados cuando COP está apagado"
-
-#: config/tc-mep.c:420
-msgid "$dbg and $depc are disabled when DEBUG is off"
-msgstr "$dbg y $depc están desactivados cuando DEBUG está apagado"
-
-#: config/tc-mep.c:611
-msgid "core and copro insn lengths must total 32 bits."
-msgstr "las longitudes de las insns core y copro deben ser en total 32 bit."
-
-#: config/tc-mep.c:614 config/tc-mep.c:751
-msgid "vliw group must consist of 1 core and 1 copro insn."
-msgstr "el grupo vliw debe consistir de 1 insn core y 1 copro."
-
-#: config/tc-mep.c:748
-msgid "core and copro insn lengths must total 64 bits."
-msgstr "las longitudes de las insns core y copro deben ser en total 64 bit."
-
-#: config/tc-mep.c:980
-#, c-format
-msgid "cannot pack %s with a 16-bit insn"
-msgstr "no se puede empaquetar %s con una insn de 16-bit"
-
-#: config/tc-mep.c:998
-#, c-format
-msgid "cannot pack %s and %s together with a 16-bit insn"
-msgstr "no se pueden empaquetar %s y %s juntos con una insn de 16-bit"
-
-#: config/tc-mep.c:1004
-msgid "too many IVC2 insns to pack with a 16-bit core insn"
-msgstr "excesivos insns IVC2 a empaquetar con un insn core de 16-bit"
-
-#: config/tc-mep.c:1019
-#, c-format
-msgid "cannot pack %s into slot P1"
-msgstr "no se puede empaquetar %s en la ranura P1"
-
-#: config/tc-mep.c:1025
-msgid "too many IVC2 insns to pack with a 32-bit core insn"
-msgstr "demasiadas insns IVC2 para empaquetar con una insn core de 32-bit"
-
-#: config/tc-mep.c:1043
-#, c-format
-msgid "unable to pack %s by itself?"
-msgstr "¿incapaz de empaquetar %s por sí mismo?"
-
-#: config/tc-mep.c:1073
-#, c-format
-msgid "cannot pack %s and %s together"
-msgstr "no se pueden empaquetar %s y %s juntos"
-
-#: config/tc-mep.c:1079
-msgid "too many IVC2 insns to pack together"
-msgstr "demasiadas insns IVC2 para empaquetar juntas"
-
-#. There are no insns in the queue and a plus is present.
-#. This is a syntax error. Let's not tolerate this.
-#. We can relax this later if necessary.
-#: config/tc-mep.c:1316
-msgid "Invalid use of parallelization operator."
-msgstr "Uso inválido del operador de paralelizador."
-
-#: config/tc-mep.c:1362
-msgid "Leading plus sign not allowed in core mode"
-msgstr "No se permite el signo más inicial en el modo core"
-
-#: config/tc-mep.c:1892
-#, c-format
-msgid "Don't know how to relocate plain operands of type %s"
-msgstr "No se cómo reubicar operandos planos de tipo %s"
-
-#: config/tc-mep.c:1902
-#, c-format
-msgid "Perhaps you are missing %%tpoff()?"
-msgstr "¿Tal vez le ausente %%tpoff()?"
-
-#: config/tc-mep.c:2089
-msgid "bad .section directive: want a,v,w,x,M,S in string"
-msgstr "directiva .section incorrecta: se quiere a,v,w,x,M,S en la cadena"
-
-#: config/tc-mep.c:2147
-msgid ".vliw unavailable when VLIW is disabled."
-msgstr ".vliw no está disponible cuando VLIW está desactivado."
-
-#: config/tc-metag.c:456
-msgid "no floating point unit specified"
-msgstr "unidad no especificada de coma flotante"
-
-#: config/tc-metag.c:721
-#, c-format
-msgid "offset must be a multiple of %d"
-msgstr "desplazamiento debe ser un múltiplo de %d"
-
-#: config/tc-metag.c:737 config/tc-metag.c:4443
-msgid "offset and base must be from the same unit"
-msgstr "destino y origen deben ser desde la misma unidad"
-
-#: config/tc-metag.c:868 config/tc-metag.c:3167 config/tc-metag.c:3269
-msgid "invalid destination register"
-msgstr "invalida registro destino"
-
-#: config/tc-metag.c:884 config/tc-metag.c:902 config/tc-metag.c:1293
-#: config/tc-metag.c:1311 config/tc-metag.c:1530 config/tc-metag.c:3099
-#: config/tc-metag.c:3184 config/tc-metag.c:3286
-msgid "invalid memory operand"
-msgstr "operando de memoria no válido"
-
-#: config/tc-metag.c:939 config/tc-metag.c:3117
-msgid "invalid source register"
-msgstr "invalida registro fuente"
-
-#: config/tc-metag.c:1024
-msgid "invalid destination unit"
-msgstr "invalida unidad destino"
-
-#: config/tc-metag.c:1032
-msgid "mov cannot use RD port as destination"
-msgstr "mov no puede utilizar puerto RD como destino"
-
-#: config/tc-metag.c:1057
-msgid "invalid source unit"
-msgstr "invalida unidad origen"
-
-#: config/tc-metag.c:1065
-msgid "source and address units must not be shared for this addressing mode"
-msgstr "unidades de origen y dirección deben no ser compartidas para este modo direccional"
-
-#: config/tc-metag.c:1073 config/tc-metag.c:1676
-msgid "set can only use RD port as source"
-msgstr ""
-
-#: config/tc-metag.c:1088 config/tc-metag.c:1189 config/tc-metag.c:1440
-#: config/tc-metag.c:1697 config/tc-metag.c:4053
-#, c-format
-msgid "base unit must be one of %s"
-msgstr "unidad base debe ser una de %s"
-
-#. We already tried to encode as an extended GET/SET.
-#. Parsing as a standard GET/SET provides a smaller offset.
-#: config/tc-metag.c:1109 config/tc-metag.c:1215 config/tc-metag.c:3130
-#: config/tc-metag.c:3197 config/tc-metag.c:3299 config/tc-metag.c:4580
-msgid "offset value out of range"
-msgstr "valor desplazado fuera de rango"
-
-#: config/tc-metag.c:1169
-msgid "destination unit must be RD"
-msgstr "unidad destino debe ser RD"
-
-#: config/tc-metag.c:1279
-msgid "invalid destination register list"
-msgstr "invalida destino del listado de registro"
-
-#: config/tc-metag.c:1326
-msgid "invalid source register list"
-msgstr "invalida listado registrador origen"
-
-#: config/tc-metag.c:1351
-msgid "register list must be even numbered"
-msgstr "el registro listado debe ser numerado pares"
-
-#: config/tc-metag.c:1357
-msgid "register list must be from the same unit"
-msgstr "listado de registros debe ser de la misma unidad"
-
-#: config/tc-metag.c:1380
-msgid "register list must not contain duplicates"
-msgstr "registrador listado debe no contener duplicados"
-
-#: config/tc-metag.c:1636
-msgid "MDRD value must be between 1 and 8"
-msgstr "MDRD validado debe estar entre 1 y 9"
-
-#: config/tc-metag.c:1727
-msgid "invalid destination memory operand"
-msgstr "operando de memoria destino no válida"
-
-#: config/tc-metag.c:1742
-msgid "invalid source memory operand"
-msgstr "operando de memoria origen inválido"
-
-#: config/tc-metag.c:1749
-#, c-format
-msgid "address units must be one of %s"
-msgstr "unidades direccionales debe ser uno de %s"
-
-#: config/tc-metag.c:1756
-msgid "base and offset must be from the same unit"
-msgstr "base y destino deben ser desde la misma unidad"
-
-#: config/tc-metag.c:1764
-msgid "source and destination increment mode must agree"
-msgstr "modo incrementa de origen y destino registros fuente y destino no deben ser iguales"
-
-#: config/tc-metag.c:2039
-msgid "PC, CT, TR and TT are treated as if they are a single unit but operands must be in different units"
-msgstr ""
-
-#: config/tc-metag.c:2048
-msgid "source and destination register must be in different units"
-msgstr "el registro de origen y destino deben ser unidades diferentes"
-
-#: config/tc-metag.c:2080
-#, c-format
-msgid "register unit must be one of %s"
-msgstr "unidad registro debe ser una de %s"
-
-#: config/tc-metag.c:2167
-#, c-format
-msgid "link register unit must be one of %s"
-msgstr "el registro enlazado unitario debe ser uno de %s"
-
-#: config/tc-metag.c:2173
-msgid "link register must be in a low numbered register"
-msgstr "el registro enlazado debe estar dentro de un registro numerado bajo"
-
-#: config/tc-metag.c:2190 config/tc-metag.c:2715 config/tc-metag.c:2769
-msgid "target out of range"
-msgstr "objetivo fuera de rango"
-
-#: config/tc-metag.c:2671
-msgid "invalid quickrot unit specified"
-msgstr "invalida unidad quickrot especificada"
-
-#: config/tc-metag.c:2687
-msgid "invalid quickrot register specified"
-msgstr "invalida registro quickrot especificado"
-
-#: config/tc-metag.c:2741
-msgid "source register must be in the trigger unit"
-msgstr "el registro origen debe estar en la unidad disparadora"
-
-#: config/tc-metag.c:2844
-msgid "Source registers must be in the same unit"
-msgstr "Registros origen deben estar en la misma unidad"
-
-#: config/tc-metag.c:3554 config/tc-metag.c:3718 config/tc-metag.c:3986
-msgid "destination register should be even numbered"
-msgstr "el registro destino deberían ser numerados pares"
-
-#: config/tc-metag.c:3626
-msgid "comparison must be with register or #0"
-msgstr "comparaciones deben ser con registros o #0"
-
-#: config/tc-metag.c:3692 config/tc-metag.c:3757
-msgid "instruction cannot operate on pair values"
-msgstr "la instrucción no puede operar pares de valores"
-
-#: config/tc-metag.c:3703
-msgid "zero flag is not valid for this instruction"
-msgstr "marca cero no es válida para esta instrucción"
-
-#: config/tc-metag.c:3724
-msgid "source register should be even numbered"
-msgstr "el registro origen deberían ser numerados pares"
-
-#: config/tc-metag.c:3784 config/tc-metag.c:3793
-msgid "fraction bits value out of range"
-msgstr "valor de varios bit fraccional fuera de rango"
-
-#: config/tc-metag.c:3975
-msgid "simd instructions operate on pair values (L prefix)"
-msgstr ""
-
-#: config/tc-metag.c:3993
-msgid "source registers should be even numbered"
-msgstr "el registros origen deberían ser numerados pares"
-
-#: config/tc-metag.c:4271
-#, c-format
-msgid "expected ']', not %c in %s"
-msgstr "esperaba ']', no %c dentro de %s"
-
-#: config/tc-metag.c:4390
-msgid "invalid register for memory access"
-msgstr "el registro para acceso de memoria inválido"
-
-#: config/tc-metag.c:4503 config/tc-metag.c:4631
-msgid "unexpected end of line"
-msgstr "fin de línea inesperada"
-
-#: config/tc-metag.c:4550
-msgid "'H' modifier only valid for accumulator registers"
-msgstr "Registro acumulador inválido"
-
-#: config/tc-metag.c:4603
-msgid "base unit must be either A0 or A1"
-msgstr "unidad base debe ser o A0 o A1"
-
-#: config/tc-metag.c:4676 config/tc-metag.c:5119
-msgid "invalid register"
-msgstr "invalida registro"
-
-#: config/tc-metag.c:4787 config/tc-metag.c:5528 config/tc-metag.c:5550
-msgid "invalid register operand"
-msgstr "invalida registro operando"
-
-#: config/tc-metag.c:4824
-msgid "could not parse template definition"
-msgstr "no pudo interpretar definición de plantilla"
-
-#: config/tc-metag.c:5011
-msgid "QUICKRoT 64-bit extension not applicable to this instruction"
-msgstr "Extensión QUICKRoT 64-bit no aplicable a esta instrucción"
-
-#: config/tc-metag.c:5067
-msgid "invalid operands for cross-unit op"
-msgstr "operandos inválidos para op de unidades cruzadas"
-
-#: config/tc-metag.c:5109
-msgid "missing flags: one of 'P', 'N' or 'Z' required"
-msgstr ""
-
-#: config/tc-metag.c:5137
-msgid "'P', 'N' or 'Z' flags may only be specified when accumulating"
-msgstr ""
-
-#: config/tc-metag.c:5158
-msgid "accumulator not a valid destination"
-msgstr "acumulador no un destino válido"
-
-#: config/tc-metag.c:5168 config/tc-metag.c:5384 config/tc-metag.c:5568
-msgid "invalid immediate value"
-msgstr "valor inmediato inválido"
-
-#: config/tc-metag.c:5180
-#, fuzzy
-#| msgid "immediate value cannot be used to set this field"
-msgid "immediate value not allowed when source & dest differ"
-msgstr "no se puede usar un valor inmediato para establecer este campo"
-
-#: config/tc-metag.c:5212
-#, c-format
-msgid "invalid register operand: %s"
-msgstr "operando registrado inválido: %s"
-
-#: config/tc-metag.c:5246
-msgid "QUICKRoT extension requires 4 registers"
-msgstr "Extensión QUICKRoT requiere 4 registros"
-
-#: config/tc-metag.c:5253
-msgid "invalid fourth register"
-msgstr "el registro cuarto inválido"
-
-#: config/tc-metag.c:5260
-msgid "A0.2,A0.3,A1.2,A1.3 required for QUICKRoT register"
-msgstr "A0.2,A0.3,A1.2,A1.3 requerido para registrador QUICKRoT"
-
-#: config/tc-metag.c:5288
-msgid "DSP RAM pointer in incorrect unit"
-msgstr ""
-
-#: config/tc-metag.c:5334
-msgid "invalid register operand #1"
-msgstr "operando registrado inválido Nº1"
-
-#: config/tc-metag.c:5348
-msgid "invalid register operand #2"
-msgstr "operando registrado inválido Nº2"
-
-#: config/tc-metag.c:5412
-msgid "this instruction does not accept an immediate"
-msgstr "esta instrucción no acepta un inmediato"
-
-#: config/tc-metag.c:5432
-msgid "invalid register operand #3"
-msgstr "operando registrado inválido Nº3"
-
-#: config/tc-metag.c:5444
-msgid "this instruction does not accept an accumulator"
-msgstr "esta instrucción no acepta un acumulador"
-
-#: config/tc-metag.c:5462
-msgid "invalid register operand #4"
-msgstr "operando registrado inválido Nº4"
-
-#: config/tc-metag.c:5539
-msgid "invalid accumulator register"
-msgstr "invalida registro acumulador"
-
-#: config/tc-metag.c:5595
-msgid "conditional instruction cannot use G flag"
-msgstr "la instrucción condicional no puede utilizar marca G"
-
-#: config/tc-metag.c:5606
-msgid "conditional instruction cannot use B flag"
-msgstr "la instrucción condicional no puede utilizar marca B"
-
-#: config/tc-metag.c:5617
-msgid "conditional instruction cannot use R flag"
-msgstr "la instrucción condicional no puede utilizar marca R"
-
-#: config/tc-metag.c:5726
-msgid "'L' modifier not valid for this instruction"
-msgstr "Modificador 'L' no válido para esta instrucción"
-
-#: config/tc-metag.c:5858
-#, c-format
-msgid "missing fpu name `%s'"
-msgstr "ausente el nombre fpu «%s»"
-
-#: config/tc-metag.c:5869
-#, c-format
-msgid "unknown fpu `%s'"
-msgstr "desconoce FPU «%s»"
-
-#: config/tc-metag.c:5884
-#, c-format
-msgid "missing DSP name `%s'"
-msgstr "nombre DSP ausente «%s»"
-
-#: config/tc-metag.c:5895
-#, c-format
-msgid "unknown DSP `%s'"
-msgstr "desconoce DSP `%s'"
-
-#: config/tc-metag.c:5913
-msgid "<dsp name>\t assemble for DSP architecture <dsp name>"
-msgstr "<nombre dsp>\t ensambla para la arquitectura DSP <nombre dsp>"
-
-#: config/tc-metag.c:5950
-#, c-format
-msgid " Meta specific command line options:\n"
-msgstr " Opciones de la línea de mandatos específicas de Meta:\n"
-
-#: config/tc-metag.c:6039
-msgid "premature end of floating point prefix"
-msgstr "final prematuro de prefijo coma flotante"
-
-#: config/tc-metag.c:6099
-msgid "unknown floating point prefix character"
-msgstr "desconoce prefijo de caracteres de coma flotante"
-
-#: config/tc-metag.c:6248
-#, c-format
-msgid "unknown DSP prefix character %c %s"
-msgstr "carácter prefijo DSP desconocido %c%s"
-
-#: config/tc-metag.c:6511
-#, c-format
-msgid "instruction mnemonic too long: %s"
-msgstr "la instrucción mnemónica demasiado larga: %s"
-
-#: config/tc-metag.c:6566
-#, c-format
-msgid "junk at end of line: \"%s\""
-msgstr "basura al final de la línea: «%s»"
-
-#: config/tc-metag.c:6573
-#, c-format
-msgid "failed to assemble instruction: \"%s\""
-msgstr "fallaba al ensamblar la instrucción: «%s»"
-
-#: config/tc-metag.c:6578
-#, c-format
-msgid "unknown floating point mnemonic: \"%s\""
-msgstr "desconoce mnemónico de coma flotante: «%s»"
-
-#: config/tc-metag.c:6580
-#, c-format
-msgid "unknown mnemonic: \"%s\""
-msgstr "desconoce mnemónico: «%s»"
-
-#: config/tc-metag.c:6631
-#, c-format
-msgid "cannot assemble DSP instruction, DSP option not set: %s"
-msgstr "no se puede ensamblar instrucción DSP, opción DSP no establecida: %s"
-
-#: config/tc-metag.c:6638
-#, c-format
-msgid "cannot assemble FPU instruction, FPU option not set: %s"
-msgstr "no puede ensamblar la instrucción FPS, opción FPS no definida: %s"
-
-#: config/tc-metag.c:6733 config/tc-nds32.c:7347
-msgid "Bad call to md_atof()"
-msgstr "Equivocación de llamada a md_atof()"
-
-#: config/tc-microblaze.c:216
-#, c-format
-msgid "Length of .lcomm \"%s\" is already %ld. Not changed to %ld."
-msgstr "La longitud de .lcomm «%s» ya es %ld. No se cambió a %ld."
-
-#: config/tc-microblaze.c:492 config/tc-microblaze.c:521
-#: config/tc-microblaze.c:558
-#, c-format
-msgid "Invalid register number at '%.6s'"
-msgstr "Invalida número de registro en '%.6s'"
-
-#: config/tc-microblaze.c:723
-msgid "operand must be a constant or a label"
-msgstr "operando debe ser una constante o una etiqueta"
-
-#: config/tc-microblaze.c:732
-#, c-format
-msgid "operand must be absolute in range %lx..%lx, not %lx"
-msgstr "operando debe ser absoluto en rango %lx..%lx, no %lx"
-
-#: config/tc-microblaze.c:934 config/tc-microblaze.c:941
-#: config/tc-microblaze.c:948 config/tc-microblaze.c:981
-#: config/tc-microblaze.c:988 config/tc-microblaze.c:994
-#: config/tc-microblaze.c:1113 config/tc-microblaze.c:1120
-#: config/tc-microblaze.c:1126 config/tc-microblaze.c:1157
-#: config/tc-microblaze.c:1165 config/tc-microblaze.c:1179
-#: config/tc-microblaze.c:1197 config/tc-microblaze.c:1238
-#: config/tc-microblaze.c:1245 config/tc-microblaze.c:1265
-#: config/tc-microblaze.c:1272 config/tc-microblaze.c:1292
-#: config/tc-microblaze.c:1299 config/tc-microblaze.c:1317
-#: config/tc-microblaze.c:1324 config/tc-microblaze.c:1346
-#: config/tc-microblaze.c:1353 config/tc-microblaze.c:1371
-#: config/tc-microblaze.c:1383 config/tc-microblaze.c:1401
-#: config/tc-microblaze.c:1418 config/tc-microblaze.c:1425
-#: config/tc-microblaze.c:1471 config/tc-microblaze.c:1478
-#: config/tc-microblaze.c:1524 config/tc-microblaze.c:1531
-#: config/tc-microblaze.c:1553 config/tc-microblaze.c:1560
-#: config/tc-microblaze.c:1580 config/tc-microblaze.c:1586
-#: config/tc-microblaze.c:1648 config/tc-microblaze.c:1654
-#: config/tc-microblaze.c:1716 config/tc-microblaze.c:1792
-msgid "Error in statement syntax"
-msgstr "Error en la sintaxis de la declaración"
-
-#: config/tc-microblaze.c:954 config/tc-microblaze.c:956
-#: config/tc-microblaze.c:958 config/tc-microblaze.c:998
-#: config/tc-microblaze.c:1000 config/tc-microblaze.c:1130
-#: config/tc-microblaze.c:1132 config/tc-microblaze.c:1171
-#: config/tc-microblaze.c:1173 config/tc-microblaze.c:1251
-#: config/tc-microblaze.c:1253 config/tc-microblaze.c:1278
-#: config/tc-microblaze.c:1280 config/tc-microblaze.c:1305
-#: config/tc-microblaze.c:1328 config/tc-microblaze.c:1359
-#: config/tc-microblaze.c:1389 config/tc-microblaze.c:1407
-#: config/tc-microblaze.c:1537 config/tc-microblaze.c:1539
-#: config/tc-microblaze.c:1566 config/tc-microblaze.c:1568
-#: config/tc-microblaze.c:1590 config/tc-microblaze.c:1658
-#: config/tc-microblaze.c:1722
-msgid "Cannot use special register with this instruction"
-msgstr "No se puede usar el registro especial con esta instrucción"
-
-#: config/tc-microblaze.c:1008
-msgid "lmi pseudo instruction should not use a label in imm field"
-msgstr "pseudo instrucción lmi no debería emplear una etiqueta en el campo imm"
-
-#: config/tc-microblaze.c:1010
-msgid "smi pseudo instruction should not use a label in imm field"
-msgstr "pseudo instrucción smi no debería emplear una etiqueta en el campo imm"
-
-#: config/tc-microblaze.c:1135
-msgid "Symbol used as immediate for shift instruction"
-msgstr "Se utiliza un símbolo como inmediato para la instrucción desplazamiento"
-
-#: config/tc-microblaze.c:1144
-#, c-format
-msgid "Shift value > 32. using <value %% 32>"
-msgstr "Valor de desplazamiento > 32. se utiliza <value %% 32>"
-
-#: config/tc-microblaze.c:1184
-#, fuzzy
-#| msgid "Symbol used as immediate value for msrset/msrclr instructions"
-msgid "Symbol used as immediate width value for bit field instruction"
-msgstr "Se utiliza un símbolo como valor inmediato para instrucciones msrset/msrclr"
-
-#: config/tc-microblaze.c:1191
-#, fuzzy
-#| msgid "file number less than one"
-msgid "Width value must be less than 32"
-msgstr "número de fichero menor que uno"
-
-#: config/tc-microblaze.c:1202
-#, fuzzy
-#| msgid "Symbol used as immediate value for msrset/msrclr instructions"
-msgid "Symbol used as immediate shift value for bit field instruction"
-msgstr "Se utiliza un símbolo como valor inmediato para instrucciones msrset/msrclr"
-
-#: config/tc-microblaze.c:1213
-#, fuzzy, c-format
-#| msgid "Shift value > 32. using <value %% 32>"
-msgid "Shift value greater than 32. using <value %% 32>"
-msgstr "Valor de desplazamiento > 32. se utiliza <value %% 32>"
-
-#: config/tc-microblaze.c:1219
-#, fuzzy
-#| msgid "branch target frequency must be greater than 0"
-msgid "Width value + shift value must not be greater than 32"
-msgstr "la frecuencia de ramificación de objetivo debe ser mayor a 0"
-
-#: config/tc-microblaze.c:1331
-msgid "Symbol used as immediate value for msrset/msrclr instructions"
-msgstr "Se utiliza un símbolo como valor inmediato para instrucciones msrset/msrclr"
-
-#: config/tc-microblaze.c:1460 config/tc-microblaze.c:1513
-msgid "invalid value for special purpose register"
-msgstr "valor inválido para el registro de propósito especial"
-
-#: config/tc-microblaze.c:1730
-msgid "An IMM instruction should not be present in the .s file"
-msgstr "Una instrucción IMM no debe estar presente en el fichero .s"
-
-#: config/tc-microblaze.c:1794
-msgid "Symbol used as immediate for mbar instruction"
-msgstr "Se utiliza un símbolo como inmediato para instrucción mbar"
-
-#: config/tc-microblaze.c:1800
-#, c-format
-msgid "Immediate value for mbar > 32. using <value %% 32>"
-msgstr "Valor inmediato para mbar > 32. utilizando <valor %% 32>"
-
-#: config/tc-microblaze.c:1874
-msgid "Bad call to MD_NTOF()"
-msgstr "Llamada incorrecta a MD_NTOF()"
-
-#: config/tc-microblaze.c:2143
-#, c-format
-msgid "pcrel for branch to %s too far (0x%x)"
-msgstr "el pcrel para ramificar a %s muy lejos (0x%x)"
-
-#. We know the abs value: Should never happen.
-#: config/tc-microblaze.c:2304
-msgid "Absolute PC-relative value in relaxation code. Assembler error....."
-msgstr "Valor relativo a PC absoluto en código de relajación. Error de ensamblador....."
-
-#. Cannot have a PC-relative branch to a diff segment.
-#: config/tc-microblaze.c:2318
-#, c-format
-msgid "PC relative branch to label %s which is not in the instruction space"
-msgstr "Ramificación relativa a PC a la etiqueta %s, la cual no está en el espacio de instrucción"
-
-#: config/tc-microblaze.c:2361
-msgid "Variable is accessed using small data read only anchor, but it is not in the small data read only section"
-msgstr "Se accede a la variable usando un ancla de solo lectura de datos small, pero no está en la sección de solo lectura de datos small"
-
-#: config/tc-microblaze.c:2384
-msgid "Variable is accessed using small data read write anchor, but it is not in the small data read write section"
-msgstr "Se accede a la variable usando un ancla de lectura escritura de datos smaill, pero no está en la sección de lectura escritura de datos small"
-
-#: config/tc-microblaze.c:2393
-msgid "Incorrect fr_opcode value in frag. Internal error....."
-msgstr "Valor de fr_opcode incorrecto en frag. Error interno....."
-
-#. We know the abs value: Should never happen.
-#: config/tc-microblaze.c:2400
-msgid "Absolute value in relaxation code. Assembler error....."
-msgstr "Valor absoluto en código de relajación. Error de ensamblador....."
-
-#. fprintf(stream, _(" MicroBlaze options:\n -noSmall Data in the comm and data sections do not go into the small data section\n"));
-#: config/tc-microblaze.c:2585
-#, fuzzy, c-format
-#| msgid " Score-specific assembler options:\n"
-msgid " MicroBlaze specific assembler options:\n"
-msgstr " Opciones de ensamblador específicas de Score:\n"
-
-#: config/tc-microblaze.c:2586
-#, fuzzy
-#| msgid "assemble for big-endian"
-msgid "assemble for a big endian cpu"
-msgstr "ensamblar para big-endian"
-
-#: config/tc-microblaze.c:2587
-#, fuzzy
-#| msgid "assemble for little-endian"
-msgid "assemble for a little endian cpu"
-msgstr "ensamblar para little-endian"
-
-#: config/tc-mips.c:2184
-#, c-format
-msgid "the %d-bit %s architecture does not support the `%s' extension"
-msgstr "el %d-bit %s arquitectural no admite «%s» como extensión"
-
-#: config/tc-mips.c:2187
-#, c-format
-msgid "the `%s' extension requires %s%d revision %d or greater"
-msgstr "la extensión «%s» requiere %s%d revisión %d o superior"
-
-#: config/tc-mips.c:2196
-#, c-format
-msgid "the `%s' extension was removed in %s%d revision %d"
-msgstr "la extensión «%s» fue quitada en %s%d revisión %d"
-
-#: config/tc-mips.c:2205
-#, c-format
-msgid "the `%s' extension requires 64-bit FPRs"
-msgstr "la extensión `%s' requiere varios FPR de 64-bit"
-
-#: config/tc-mips.c:3057 config/tc-mips.c:16644
-#, c-format
-msgid "unrecognized register name `%s'"
-msgstr "nombre de registro no reconocido «%s»"
-
-#: config/tc-mips.c:3284
-msgid "invalid register range"
-msgstr "rango inválido registro"
-
-#: config/tc-mips.c:3312
-msgid "vector element must be constant"
-msgstr "elemento vector debe ser constante"
-
-#: config/tc-mips.c:3322
-msgid "missing `]'"
-msgstr "ausente `]'"
-
-#: config/tc-mips.c:3545
-#, c-format
-msgid "internal: bad mips opcode (mask error): %s %s"
-msgstr "interno: código de operación mips incorrecto (error de máscara): %s %s"
-
-#: config/tc-mips.c:3572
-#, c-format
-msgid "internal: unknown operand type: %s %s"
-msgstr "interno: tipo operando desconocido: %s %s"
-
-#: config/tc-mips.c:3605
-#, c-format
-msgid "internal: bad mips opcode (bits 0x%08lx doubly defined): %s %s"
-msgstr "interno: código de operación mips incorrecto (bits 0x%08lx definidos doble ): %s %s"
-
-#: config/tc-mips.c:3613
-#, c-format
-msgid "internal: bad mips opcode (bits 0x%08lx undefined): %s %s"
-msgstr "interno: código de operación mips incorrecto (varios bit 0x%08lx definidos): %s %s"
-
-#: config/tc-mips.c:3620
-#, c-format
-msgid "internal: bad mips opcode (bits 0x%08lx defined): %s %s"
-msgstr "interno: código de operación mips incorrecto (varios bit 0x%08lx definidos): %s %s"
-
-#: config/tc-mips.c:3655
-#, c-format
-msgid "internal error: bad microMIPS opcode (incorrect length: %u): %s %s"
-msgstr "error interno: código op microMIPS incorrecto (longitud eincorrecta: %u): %s %s"
-
-#: config/tc-mips.c:3663
-#, c-format
-msgid "internal error: bad microMIPS opcode (opcode/length mismatch): %s %s"
-msgstr "error interno: equivocación de código operativo microMIPS (código de operación/longitud incoherente): %s %s"
-
-#: config/tc-mips.c:3688
-msgid "-G may not be used in position-independent code"
-msgstr "-G no se puede usar en código independiente de posición"
-
-#: config/tc-mips.c:3694
-msgid "-G may not be used with abicalls"
-msgstr "-G quizá no está emplado con llamadas abi"
-
-#: config/tc-mips.c:3799
-msgid "broken assembler, no assembly attempted"
-msgstr "ensamblador descompuesto, no trata ensamblarlo"
-
-#: config/tc-mips.c:3947
-#, c-format
-msgid ".gnu_attribute %d,%d is incompatible with `%s'"
-msgstr ".gnu_attribute %d,%d es incompatible con «%s»"
-
-#: config/tc-mips.c:3954
-#, c-format
-msgid ".gnu_attribute %d,%d requires `%s'"
-msgstr ".gnu_attribute %d,%d requiere «%s»"
-
-#: config/tc-mips.c:4015
-#, c-format
-msgid ".gnu_attribute %d,%d is no longer supported"
-msgstr ".gnu_attribute %d,%d no es compatible más"
-
-#: config/tc-mips.c:4024
-#, c-format
-msgid ".gnu_attribute %d,%d is not a recognized floating-point ABI"
-msgstr ".gnu_attribute %d,%d no es un ABI coma-flotante reconocida"
-
-#: config/tc-mips.c:4037
-msgid "`gp=64' used with a 32-bit processor"
-msgstr "se utilizó `gp=64' con un procesador de 32-bit"
-
-#: config/tc-mips.c:4040
-msgid "`gp=32' used with a 64-bit ABI"
-msgstr "se utilizó `gp=32' con un ABI de 64-bit"
-
-#: config/tc-mips.c:4043
-msgid "`gp=64' used with a 32-bit ABI"
-msgstr "se utilizó `gp=64' con un ABI de 32-bit"
-
-#: config/tc-mips.c:4050
-msgid "`fp=xx' used with a cpu lacking ldc1/sdc1 instructions"
-msgstr ""
-
-#: config/tc-mips.c:4052
-msgid "`fp=xx' cannot be used with `singlefloat'"
-msgstr "`fp=xx' no puede ser utilizado con `singlefloat'"
-
-#: config/tc-mips.c:4056
-msgid "`fp=64' used with a 32-bit fpu"
-msgstr "utilizó `fp=64' con un fpu de 32-bit"
-
-#: config/tc-mips.c:4060
-msgid "`fp=64' used with a 32-bit ABI"
-msgstr "utilizó `fp=64' con un ABI de 32-bit"
-
-#: config/tc-mips.c:4065
-msgid "`fp=32' used with a 64-bit ABI"
-msgstr "utilizó`fp=32' con un ABI de 64-bit"
-
-#: config/tc-mips.c:4067
-msgid "`fp=32' used with a MIPS R6 cpu"
-msgstr "utilizó `fp=32' con un MIPS R6 cpu"
-
-#: config/tc-mips.c:4070
-msgid "Unknown size of floating point registers"
-msgstr "Tamaño desconocido de registros de coma flotante"
-
-#: config/tc-mips.c:4075
-msgid "`nooddspreg` cannot be used with a 64-bit ABI"
-msgstr "`nooddspreg` no puede ser empleado con un ABI de 64-bit"
-
-#: config/tc-mips.c:4078 config/tc-mips.c:4082
-#, c-format
-msgid "`%s' cannot be used with `%s'"
-msgstr "«%s» no puede ser utilizado con «%s»"
-
-#: config/tc-mips.c:4087
-#, c-format
-msgid "branch relaxation is not supported in `%s'"
-msgstr "relajación de ramificación no está admitida en «%s»"
-
-#: config/tc-mips.c:4173 config/tc-mips.c:17527
-#, c-format
-msgid "`%s' does not support legacy NaN"
-msgstr "«%s» no apoyado con herencia NaN"
-
-#: config/tc-mips.c:4220
-#, c-format
-msgid "returned from mips_ip(%s) insn_opcode = 0x%x\n"
-msgstr "devuelto de mips_ip(%s) insn_opcode = 0x%x\n"
-
-#: config/tc-mips.c:4924
-#, c-format
-msgid "operand %d out of range"
-msgstr "operando %d fuera de rango"
-
-#: config/tc-mips.c:4932
-#, c-format
-msgid "operand %d must be constant"
-msgstr "operando %d debe ser constante"
-
-#: config/tc-mips.c:4976 read.c:4594 read.c:5364 read.c:5490 write.c:250
-#: write.c:1058
-msgid "register value used as expression"
-msgstr "valor registrado utilizado como expresión"
-
-#: config/tc-mips.c:4989
-#, c-format
-msgid "operand %d must be an immediate expression"
-msgstr "operando %d debe ser una expresión inmediata"
-
-#: config/tc-mips.c:5111 config/tc-mips.c:5113
-#, c-format
-msgid "float register should be even, was %d"
-msgstr "el registro flotante debería ser par, era %d"
-
-#: config/tc-mips.c:5126
-#, c-format
-msgid "condition code register should be even for %s, was %d"
-msgstr "código condicional registrado debería ser par para %s, era %d"
-
-#: config/tc-mips.c:5131
-#, c-format
-msgid "condition code register should be 0 or 4 for %s, was %d"
-msgstr "código condicional registrado debería ser 0 o 4 para %s, era %d"
-
-#: config/tc-mips.c:5452
-msgid "invalid performance register"
-msgstr "rendimiento registrado inválido"
-
-#: config/tc-mips.c:5548 config/tc-mips.c:6019
-msgid "the source register must not be $0"
-msgstr "el registro origen debe no ser $0"
-
-#: config/tc-mips.c:5824
-msgid "missing frame size"
-msgstr "ausente el tamaño del marco"
-
-#: config/tc-mips.c:5829
-msgid "frame size specified twice"
-msgstr "tamaño del marco especificado dos veces"
-
-#: config/tc-mips.c:5834
-msgid "invalid frame size"
-msgstr "tamaño de marco inválido"
-
-#: config/tc-mips.c:5874
-#, c-format
-msgid "operand %d must be an immediate"
-msgstr "operando %d debe ser un inmediato"
-
-#: config/tc-mips.c:5889
-msgid "invalid element selector"
-msgstr "selector de elemento inválido"
-
-#: config/tc-mips.c:5902
-#, c-format
-msgid "operand %d must be scalar"
-msgstr "operando %d debe ser escalar"
-
-#: config/tc-mips.c:6082
-msgid "floating-point expression required"
-msgstr "requerida expresión de coma flotante"
-
-#: config/tc-mips.c:6182
-#, c-format
-msgid "cannot use `%s' in this section"
-msgstr "no puede utilizar `%s' dentro de esta sección"
-
-#: config/tc-mips.c:6329
-msgid "used $at without \".set noat\""
-msgstr "se utilizó $at sin \".set noat\""
-
-#: config/tc-mips.c:6331
-#, c-format
-msgid "used $%u with \".set at=$%u\""
-msgstr "se utilizó $%u sin \".set at=$%u\""
-
-#: config/tc-mips.c:7510
-#, c-format
-msgid "wrong size instruction in a %u-bit branch delay slot"
-msgstr "tamaño de instrucción incorrecto en una ranura de retardo ramificado a %u-bit"
-
-#: config/tc-mips.c:7530 config/tc-mips.c:7540 config/tc-mips.c:15944
-#, c-format
-msgid "jump to misaligned address (0x%lx)"
-msgstr "omisión a una dirección mal alineada (0x%lx)"
-
-#: config/tc-mips.c:7555 config/tc-mips.c:7575 config/tc-mips.c:7592
-#: config/tc-mips.c:9142 config/tc-mips.c:15798 config/tc-mips.c:15805
-#: config/tc-mips.c:16198 config/tc-mips.c:19046
-#, c-format
-msgid "branch to misaligned address (0x%lx)"
-msgstr "ramificación a una dirección mal alineada (0x%lx)"
-
-#: config/tc-mips.c:7561 config/tc-mips.c:7579 config/tc-mips.c:7596
-#: config/tc-mips.c:9145
-#, c-format
-msgid "branch address range overflow (0x%lx)"
-msgstr "ramificación de rango direccional desborda (0x%lx)"
-
-#: config/tc-mips.c:7841
-msgid "extended instruction in delay slot"
-msgstr "la instrucción extendida en ranura de retardo"
-
-#: config/tc-mips.c:8305
-msgid "source and destination must be different"
-msgstr "origen y destino deben ser diferentes"
-
-#: config/tc-mips.c:8308
-msgid "a destination register must be supplied"
-msgstr "un registro de destino debe ser proporcionado"
-
-#: config/tc-mips.c:8313
-msgid "the source register must not be $31"
-msgstr "el registro origen debe no ser $31"
-
-#: config/tc-mips.c:8561 config/tc-mips.c:14536 config/tc-mips.c:19193
-msgid "invalid unextended operand value"
-msgstr "valor de operando no extendido inválido"
-
-#: config/tc-mips.c:8679
-#, c-format
-msgid "opcode not supported on this processor: %s (%s)"
-msgstr "código de operación no admitido en este procesador: %s (%s)"
-
-#: config/tc-mips.c:8758
-msgid "opcode not supported in the `insn32' mode"
-msgstr "código de operación no admitido dentro del modo `insn32' no admitido"
-
-#: config/tc-mips.c:8761
-#, c-format
-msgid "unrecognized %d-bit version of microMIPS opcode"
-msgstr "versión no reconocida %d-bit de código de operación microMIPS"
-
-#: config/tc-mips.c:8817
-msgid "unrecognized unextended version of MIPS16 opcode"
-msgstr "no reconocida versión del código de operación de MIPS16"
-
-#: config/tc-mips.c:8820
-msgid "unrecognized extended version of MIPS16 opcode"
-msgstr "versión extendida de código de operación MIPS16 no reconocida"
-
-#: config/tc-mips.c:8870 config/tc-mips.c:19064
-msgid "macro instruction expanded into multiple instructions in a branch delay slot"
-msgstr "la instrucción macro expandida en instrucciones múltiples en una ranura de retraso de ramificación"
-
-#: config/tc-mips.c:8873 config/tc-mips.c:19072
-msgid "macro instruction expanded into multiple instructions"
-msgstr "la instrucción macro expandida en instrucciones múltiples"
-
-#: config/tc-mips.c:8877
-msgid "macro instruction expanded into a wrong size instruction in a 16-bit branch delay slot"
-msgstr "la instrucción macro expandida en un tamaño de instrucción incorrecto dentro de una ranura de retraso de ramificación de 16-bit"
-
-#: config/tc-mips.c:8879
-msgid "macro instruction expanded into a wrong size instruction in a 32-bit branch delay slot"
-msgstr "la instrucción macro expandida en un tamaño de instrucción incorrecto dentro de una ranura de retraso de ramificación de 32-bit"
-
-#: config/tc-mips.c:9342
-msgid "operand overflow"
-msgstr "desbordamiento de operando"
-
-#: config/tc-mips.c:9361 config/tc-mips.c:9946 config/tc-mips.c:14017
-msgid "macro used $at after \".set noat\""
-msgstr "macro $at empleada tras \".set noat\""
-
-#: config/tc-mips.c:9506 config/tc-mips.c:12329 config/tc-mips.c:13010
-#, fuzzy, c-format
-#| msgid "number (0x%s) larger than 32 bits"
-msgid "number (0x%<PRIx64>) larger than 32 bits"
-msgstr "número (0x%s) más largo que 32 bits"
-
-#: config/tc-mips.c:9527
-msgid "number larger than 64 bits"
-msgstr "número más largo que 64 bits"
-
-#: config/tc-mips.c:9824 config/tc-mips.c:9852 config/tc-mips.c:9890
-#: config/tc-mips.c:9935 config/tc-mips.c:12573 config/tc-mips.c:12612
-#: config/tc-mips.c:12651 config/tc-mips.c:13107 config/tc-mips.c:13159
-msgid "PIC code offset overflow (max 16 signed bits)"
-msgstr "Desbordamiento del desplazamiento del código PIC (máx 16 bits con signo)"
-
-#: config/tc-mips.c:10478
-#, c-format
-msgid "BALIGN immediate not 0, 1, 2 or 3 (%lu)"
-msgstr "BALING inmediato no es 0, 1, 2 o 3 (%lu)"
-
-#. Result is always true.
-#: config/tc-mips.c:10574
-#, c-format
-msgid "branch %s is always true"
-msgstr "rama %s siempre es verdadero"
-
-#: config/tc-mips.c:10802 config/tc-mips.c:10910
-msgid "divide by zero"
-msgstr "división entre cero"
-
-#: config/tc-mips.c:11000
-msgid "dla used to load 32-bit register; recommend using la instead"
-msgstr "dla utilizado para cargar registros de 32-bit; recomienda usar la en su lugar"
-
-#: config/tc-mips.c:11004
-msgid "la used to load 64-bit address; recommend using dla instead"
-msgstr "la utilizada para cargar direcciones de 64-bit; recomienda usar en lugar dla"
-
-#: config/tc-mips.c:11113 config/tc-riscv.c:2364
-msgid "offset too large"
-msgstr "desplazamiento demasiado grande"
-
-#: config/tc-mips.c:11287 config/tc-mips.c:11565
-msgid "PIC code offset overflow (max 32 signed bits)"
-msgstr "Desbordamiento del desplazamiento del código PIC (máx 32 bits con signo)"
-
-#: config/tc-mips.c:11635 config/tc-mips.c:11711
-#, c-format
-msgid "opcode not supported in the `insn32' mode `%s'"
-msgstr "código de operación no admitido dentro del modo `insn32' «%s»"
-
-#: config/tc-mips.c:11663
-msgid "MIPS PIC call to register other than $25"
-msgstr "Llamada PIC MIPS a un registro diferente de $25"
-
-#: config/tc-mips.c:11679 config/tc-mips.c:11690 config/tc-mips.c:11823
-#: config/tc-mips.c:11834
-msgid "no .cprestore pseudo-op used in PIC code"
-msgstr "no se utilizó pseudo-operador .cprestore en el código PIC"
-
-#: config/tc-mips.c:11684 config/tc-mips.c:11828
-msgid "no .frame pseudo-op used in PIC code"
-msgstr "no se utilizó pseudo-operador .frame en el código PIC"
-
-#: config/tc-mips.c:11849
-msgid "non-PIC jump used in PIC library"
-msgstr "omisión no-PIC utilizada en biblioteca PIC"
-
-#: config/tc-mips.c:12830
-#, c-format
-msgid "Unable to generate `%s' compliant code without mthc1"
-msgstr ""
-
-#: config/tc-mips.c:13571
-#, c-format
-msgid "instruction %s: result is always false"
-msgstr "la instrucción %s: resultado es siempre falso"
-
-#: config/tc-mips.c:13724
-#, c-format
-msgid "instruction %s: result is always true"
-msgstr "la instrucción %s: resultado es siempre verdadero"
-
-#. FIXME: Check if this is one of the itbl macros, since they
-#. are added dynamically.
-#: config/tc-mips.c:14013
-#, c-format
-msgid "macro %s not implemented yet"
-msgstr "macro %s aún no implementada"
-
-#: config/tc-mips.c:14546
-msgid "extended operand requested but not required"
-msgstr "se solicitó un operando extendido pero se necesita"
-
-#: config/tc-mips.c:14555
-msgid "operand value out of range for instruction"
-msgstr "el valor de operando está fuera de rango para la instrucción"
-
-#: config/tc-mips.c:14654
-#, c-format
-msgid "relocation %s isn't supported by the current ABI"
-msgstr "la ABI actual no admite la reubicación %s"
-
-#: config/tc-mips.c:14711
-msgid "unclosed '('"
-msgstr "no cerrado '('"
-
-#: config/tc-mips.c:14773
-#, c-format
-msgid "a different %s was already specified, is now %s"
-msgstr "un %s diferente fue ya especificado, ahora es %s"
-
-#: config/tc-mips.c:14940
-msgid "-mmicromips cannot be used with -mips16"
-msgstr "-mmicromips no se puede usar con -mips16"
-
-#: config/tc-mips.c:14955
-msgid "-mips16 cannot be used with -micromips"
-msgstr "-mips16 no se puede usar con -micromips"
-
-#: config/tc-mips.c:15124 config/tc-mips.c:15182
-msgid "no compiled in support for 64 bit object file format"
-msgstr "no compiló el soporte para el formato de fichero objeto de 64 bit"
-
-#: config/tc-mips.c:15189
-#, c-format
-msgid "invalid abi -mabi=%s"
-msgstr "interruptor abi -mabi=%s inválido"
-
-#: config/tc-mips.c:15229
-#, c-format
-msgid "invalid NaN setting -mnan=%s"
-msgstr "invalida opciones NaN -mnan=%s"
-
-#: config/tc-mips.c:15263
-msgid "-G not supported in this configuration"
-msgstr "-G no se admite en esta configuración"
-
-#: config/tc-mips.c:15289
-#, c-format
-msgid "-%s conflicts with the other architecture options, which imply -%s"
-msgstr "-%s tiene conflictos con las otras casillas de arquitectura, las cuales implican -%s"
-
-#: config/tc-mips.c:15302
-#, c-format
-msgid "gas doesn't understand your configure target %s"
-msgstr ""
-
-#: config/tc-mips.c:15307
-#, c-format
-msgid "-march=%s is not compatible with the selected ABI"
-msgstr "-march=%s no es compatible con la ABI seleccionada"
-
-#: config/tc-mips.c:15802 config/tc-mips.c:16192 config/tc-mips.c:19043
-msgid "branch to a symbol in another ISA mode"
-msgstr "ramificación a un símbolo dentro de otro modo ISA"
-
-#: config/tc-mips.c:15809 config/tc-mips.c:15949 config/tc-mips.c:16202
-#, c-format
-msgid "cannot encode misaligned addend in the relocatable field (0x%lx)"
-msgstr ""
-
-#: config/tc-mips.c:15846
-msgid "PC-relative reference to a different section"
-msgstr "Referencia relativa al PC para una sección diferente"
-
-#: config/tc-mips.c:15918 config/tc-riscv.c:4627
-msgid "TLS relocation against a constant"
-msgstr "TLS reubicado contra una constante"
-
-#: config/tc-mips.c:15938
-msgid "jump to a symbol in another ISA mode"
-msgstr "omite a un símbolo dentro de otro modo ISA"
-
-#: config/tc-mips.c:15941
-msgid "JALX to a symbol in the same ISA mode"
-msgstr "JALX para un símbolo dentro del mismo modo ISA"
-
-#: config/tc-mips.c:16024
-msgid "unsupported constant in relocation"
-msgstr "constante no admitida en reubicación"
-
-#: config/tc-mips.c:16097
-#, c-format
-msgid "PC-relative access using misaligned symbol (%lx)"
-msgstr ""
-
-#: config/tc-mips.c:16101
-#, c-format
-msgid "PC-relative access using misaligned offset (%lx)"
-msgstr ""
-
-#: config/tc-mips.c:16114 config/tc-mips.c:16133
-msgid "PC-relative access out of range"
-msgstr "PC-relativo de acceso fuera de rango"
-
-#: config/tc-mips.c:16120
-#, c-format
-msgid "PC-relative access to misaligned address (%lx)"
-msgstr "Acceso PC-relativo para direcciones mal alineada (%lx)"
-
-#: config/tc-mips.c:16289
-#, c-format
-msgid "alignment too large, %d assumed"
-msgstr "alineación demasiado grande, %d asumido"
-
-#: config/tc-mips.c:16292
-msgid "alignment negative, 0 assumed"
-msgstr "alineación negativa, 0 asimido"
-
-#: config/tc-mips.c:16524
-#, c-format
-msgid "%s: no such section"
-msgstr "%s: no existe tal sección"
-
-#: config/tc-mips.c:16580
-#, c-format
-msgid ".option pic%d not supported"
-msgstr "No se admite .option pic%d"
-
-#: config/tc-mips.c:16582
-#, c-format
-msgid ".option pic%d not supported in VxWorks PIC mode"
-msgstr ".option pic%d no admitido dentro de modo PIC VxWorks"
-
-#: config/tc-mips.c:16594 config/tc-mips.c:16934
-msgid "-G may not be used with SVR4 PIC code"
-msgstr "-G no se puede utilizar con código PIC de SVR4"
-
-#: config/tc-mips.c:16600
-#, c-format
-msgid "unrecognized option \"%s\""
-msgstr "opción no reconocida «%s»"
-
-#: config/tc-mips.c:16706
-#, c-format
-msgid "unknown architecture %s"
-msgstr "desconoce arquitectura %s"
-
-#: config/tc-mips.c:16721 config/tc-mips.c:16885
-#, c-format
-msgid "unknown ISA level %s"
-msgstr "desconoce nivel %s ISA"
-
-#: config/tc-mips.c:16731
-#, c-format
-msgid "unknown ISA or architecture %s"
-msgstr "desconoce ISA o arquitectura %s"
-
-#: config/tc-mips.c:16790
-msgid "`noreorder' must be set before `nomacro'"
-msgstr "se debe establecer `noreorder' antes de `nomacro'"
-
-#: config/tc-mips.c:16820
-msgid ".set pop with no .set push"
-msgstr ".set pop sin .set push"
-
-#: config/tc-mips.c:16839
-#, c-format
-msgid "tried to set unrecognized symbol: %s\n"
-msgstr "intentaba establecer un símbolo no reconocido: %s\n"
-
-#: config/tc-mips.c:16912
-#, c-format
-msgid ".module used with unrecognized symbol: %s\n"
-msgstr ".module utilizado con símbolo no reconocido: %s\n"
-
-#: config/tc-mips.c:16918
-msgid ".module is not permitted after generating code"
-msgstr ".module no está permitido tras generar código"
-
-#: config/tc-mips.c:16978 config/tc-mips.c:17057 config/tc-mips.c:17161
-#: config/tc-mips.c:17191 config/tc-mips.c:17240
-#, c-format
-msgid "%s not supported in MIPS16 mode"
-msgstr "%s no admitido dentro del modo MIPS16"
-
-#: config/tc-mips.c:16985
-msgid ".cpload not in noreorder section"
-msgstr ".cpload no está en la sección noreorder"
-
-#: config/tc-mips.c:17066 config/tc-mips.c:17085
-msgid "missing argument separator ',' for .cpsetup"
-msgstr "ausente el separador de argumentos ',' para .cpsetup"
-
-#: config/tc-mips.c:17283 config/tc-riscv.c:5027
-#, c-format
-msgid "unsupported use of %s"
-msgstr "no admitió utilización de %s"
-
-#: config/tc-mips.c:17374
-msgid "unsupported use of .gpword"
-msgstr "no admite utilización de .gpword"
-
-#: config/tc-mips.c:17412
-msgid "unsupported use of .gpdword"
-msgstr "no admite la utilización de .gpdword"
-
-#: config/tc-mips.c:17444
-msgid "unsupported use of .ehword"
-msgstr "no admitió utilización de .ehword"
-
-#: config/tc-mips.c:17531
-msgid "bad .nan directive"
-msgstr "directiva .nan incorrecta"
-
-#: config/tc-mips.c:17580
-#, c-format
-msgid "ignoring attempt to redefine symbol %s"
-msgstr "se ignora el intento de redefinir el símbolo %s"
-
-#: config/tc-mips.c:17595 ecoff.c:3358
-msgid "bad .weakext directive"
-msgstr "directiva .weakext incorrecta"
-
-#: config/tc-mips.c:18568 config/tc-mips.c:18845
-msgid "relaxed out-of-range branch into a jump"
-msgstr "ramificación relajada fuera de rango dentro de omisión"
-
-#: config/tc-mips.c:19068
-msgid "extended instruction in a branch delay slot"
-msgstr "la instrucción extendida en una rama de ranura de retardo"
-
-#: config/tc-mips.c:19182 config/tc-xtensa.c:1690 config/tc-xtensa.c:1968
-msgid "unsupported relocation"
-msgstr "no se admite la reubicación"
-
-#: config/tc-mips.c:19690 config/tc-score.c:5624
-msgid "expected simple number"
-msgstr "se esperaba un número simple"
-
-#: config/tc-mips.c:19718 config/tc-score.c:5651
-msgid "invalid number"
-msgstr "número inválido"
-
-#: config/tc-mips.c:19795 ecoff.c:2987
-msgid ".end directive without a preceding .ent directive"
-msgstr "directiva .end sin una directiva .ent precedente"
-
-#: config/tc-mips.c:19804
-msgid ".end symbol does not match .ent symbol"
-msgstr ".end simbólico no coincide con el símbolo .ent"
-
-#: config/tc-mips.c:19881
-msgid ".ent or .aent not in text section"
-msgstr ".ent o .aent no interno sección textual"
-
-#: config/tc-mips.c:19884 config/tc-score.c:5683
-msgid "missing .end"
-msgstr ".end ausente"
-
-#: config/tc-mips.c:19967
-msgid ".mask/.fmask outside of .ent"
-msgstr ".mask/.fmask fuera de .ent"
-
-#: config/tc-mips.c:19974
-msgid "bad .mask/.fmask directive"
-msgstr "directiva .mask/.fmask incorrecta"
-
-#: config/tc-mips.c:20278
-#, c-format
-msgid "bad value (%s) for %s"
-msgstr "valor (%s) incorrecto para %s"
-
-#: config/tc-mips.c:20342
-#, c-format
-msgid ""
-"MIPS options:\n"
-"-EB\t\t\tgenerate big endian output\n"
-"-EL\t\t\tgenerate little endian output\n"
-"-g, -g2\t\t\tdo not remove unneeded NOPs or swap branches\n"
-"-G NUM\t\t\tallow referencing objects up to NUM bytes\n"
-"\t\t\timplicitly with the gp register [default 8]\n"
-msgstr ""
-"Opciones MIPS:\n"
-"-EB\t\t\tgenera salida big endian\n"
-"-EL\t\t\tgenera salida little endian\n"
-"-g, -g2\t\t\tno borra NOPs innecesarios o intercambia ramificaciones\n"
-"-G NUM\t\t\tpermite la referencia a objetos hasta NUM bytes\n"
-"\t\t\timplícitamente con el registro gp [por defecto 8]\n"
-
-#: config/tc-mips.c:20349
-#, c-format
-msgid ""
-"-mips1\t\t\tgenerate MIPS ISA I instructions\n"
-"-mips2\t\t\tgenerate MIPS ISA II instructions\n"
-"-mips3\t\t\tgenerate MIPS ISA III instructions\n"
-"-mips4\t\t\tgenerate MIPS ISA IV instructions\n"
-"-mips5 generate MIPS ISA V instructions\n"
-"-mips32 generate MIPS32 ISA instructions\n"
-"-mips32r2 generate MIPS32 release 2 ISA instructions\n"
-"-mips32r3 generate MIPS32 release 3 ISA instructions\n"
-"-mips32r5 generate MIPS32 release 5 ISA instructions\n"
-"-mips32r6 generate MIPS32 release 6 ISA instructions\n"
-"-mips64 generate MIPS64 ISA instructions\n"
-"-mips64r2 generate MIPS64 release 2 ISA instructions\n"
-"-mips64r3 generate MIPS64 release 3 ISA instructions\n"
-"-mips64r5 generate MIPS64 release 5 ISA instructions\n"
-"-mips64r6 generate MIPS64 release 6 ISA instructions\n"
-"-march=CPU/-mtune=CPU\tgenerate code/schedule for CPU, where CPU is one of:\n"
-msgstr ""
-"-mips1\t\t\tgenera instrucciones MIPS ISA I\n"
-"-mips2\t\t\tgenera instrucciones MIPS ISA II\n"
-"-mips3\t\t\tgenera instrucciones MIPS ISA III\n"
-"-mips4\t\t\tgenera instrucciones MIPS ISA IV\n"
-"-mips5 genera instrucciones MIPS ISA V\n"
-"-mips32 genera instrucciones MIPS32 ISA\n"
-"-mips32r2 genera instrucciones MIPS32 versión 2 ISA\n"
-"-mips32r3 genera instrucciones MIPS32 versión 3 ISA\n"
-"-mips32r5 genera instrucciones MIPS32 versión 5 ISA\n"
-"-mips32r6 genera instrucciones MIPS32 versión 6 ISA\n"
-"-mips64 genera instrucciones MIPS64 ISA\n"
-"-mips64r2 genera instrucciones MIPS64 versión 2 ISA\n"
-"-mips64r3 genera instrucciones MIPS64 versión 3 ISA\n"
-"-mips64r5 genera instrucciones MIPS64 versión 5 ISA\n"
-"-mips64r6 genera instrucciones MIPS64 versión 6 ISA\n"
-"\n"
-"-march=CPU/-mtune=CPU\tgenera código/calendarización para el CPU, donde CPU es uno de:\n"
-
-#: config/tc-mips.c:20374
-#, c-format
-msgid ""
-"-mCPU\t\t\tequivalent to -march=CPU -mtune=CPU. Deprecated.\n"
-"-no-mCPU\t\tdon't generate code specific to CPU.\n"
-"\t\t\tFor -mCPU and -no-mCPU, CPU must be one of:\n"
-msgstr ""
-"-mCPU\t\t\tequivalente a -march=CPU -mtune=CPU. Obsoleto.\n"
-"-no-mCPU\t\tno genera código específico para el CPU.\n"
-"\t\t\tPara -mCPU y -no-mCPU, CPU debe ser uno de:\n"
-
-#: config/tc-mips.c:20387
-#, c-format
-msgid ""
-"-mips16\t\t\tgenerate mips16 instructions\n"
-"-no-mips16\t\tdo not generate mips16 instructions\n"
-msgstr ""
-"-mips16\t\t\tgenera instrucciones mips16\n"
-"-no-mips16\t\tno genera instrucciones mips16\n"
-
-#: config/tc-mips.c:20390
-#, fuzzy, c-format
-#| msgid ""
-#| "-mips16\t\t\tgenerate mips16 instructions\n"
-#| "-no-mips16\t\tdo not generate mips16 instructions\n"
-msgid ""
-"-mmips16e2\t\tgenerate MIPS16e2 instructions\n"
-"-mno-mips16e2\t\tdo not generate MIPS16e2 instructions\n"
-msgstr ""
-"-mips16\t\t\tgenera instrucciones mips16\n"
-"-no-mips16\t\tno genera instrucciones mips16\n"
-
-#: config/tc-mips.c:20393
-#, c-format
-msgid ""
-"-mmicromips\t\tgenerate microMIPS instructions\n"
-"-mno-micromips\t\tdo not generate microMIPS instructions\n"
-msgstr ""
-"-mmicromips\t\tgenera instrucciones microMIPS\n"
-"-mno-micromips\t\tno genera instrucciones microMIPS\n"
-
-#: config/tc-mips.c:20396
-#, c-format
-msgid ""
-"-msmartmips\t\tgenerate smartmips instructions\n"
-"-mno-smartmips\t\tdo not generate smartmips instructions\n"
-msgstr ""
-"-msmartmips\t\tgenera instrucciones smartmips\n"
-"-no-smartmips\t\tno genera instrucciones smartmips\n"
-
-#: config/tc-mips.c:20399
-#, c-format
-msgid ""
-"-mdsp\t\t\tgenerate DSP instructions\n"
-"-mno-dsp\t\tdo not generate DSP instructions\n"
-msgstr ""
-"-mdsp\t\t\tgenera instrucciones DSP\n"
-"-mno-dsp\t\tno genera instrucciones DSP\n"
-
-#: config/tc-mips.c:20402
-#, c-format
-msgid ""
-"-mdspr2\t\t\tgenerate DSP R2 instructions\n"
-"-mno-dspr2\t\tdo not generate DSP R2 instructions\n"
-msgstr ""
-"-mdspr2\t\t\tgenera instrucciones DSP R2\n"
-"-mno-dspr2\t\tno genera instrucciones DSP R2\n"
-
-#: config/tc-mips.c:20405
-#, c-format
-msgid ""
-"-mdspr3\t\t\tgenerate DSP R3 instructions\n"
-"-mno-dspr3\t\tdo not generate DSP R3 instructions\n"
-msgstr ""
-"-mdspr3\t\t\t genera instrucciones DSP R3\n"
-"-mno-dspr3\t\t no genera instrucciones DSP R3\n"
-
-#: config/tc-mips.c:20408
-#, c-format
-msgid ""
-"-mmt\t\t\tgenerate MT instructions\n"
-"-mno-mt\t\t\tdo not generate MT instructions\n"
-msgstr ""
-"-mmt\t\t\tgenera instrucciones MT\n"
-"-mno-mt\t\tno genera instrucciones MT\n"
-
-#: config/tc-mips.c:20411
-#, c-format
-msgid ""
-"-mmcu\t\t\tgenerate MCU instructions\n"
-"-mno-mcu\t\tdo not generate MCU instructions\n"
-msgstr ""
-"-mmcu\t\t\tgenera instrucciones MCU\n"
-"-mno-mcu\t\tno genera instrucciones MCU\n"
-
-#: config/tc-mips.c:20414
-#, c-format
-msgid ""
-"-mmsa\t\t\tgenerate MSA instructions\n"
-"-mno-msa\t\tdo not generate MSA instructions\n"
-msgstr ""
-"-mmsa\t\t\tgenera instrucciones MSA\n"
-"-mno-msa\t\tno genera instrucciones MSA\n"
-
-#: config/tc-mips.c:20417
-#, c-format
-msgid ""
-"-mxpa\t\t\tgenerate eXtended Physical Address (XPA) instructions\n"
-"-mno-xpa\t\tdo not generate eXtended Physical Address (XPA) instructions\n"
-msgstr ""
-"-mdsp\t\t\tgenera eXtended Physical Address instrucciones (XPA)\n"
-"-mno-xpa\t\tno genera instrucciones eXtended Physical Address\n"
-
-#: config/tc-mips.c:20420
-#, c-format
-msgid ""
-"-mvirt\t\t\tgenerate Virtualization instructions\n"
-"-mno-virt\t\tdo not generate Virtualization instructions\n"
-msgstr ""
-"-mvirt\t\t\tgenera instrucciones Virtualization\n"
-"-mno-virt\t\tno genera instrucciones Virtualization\n"
-
-#: config/tc-mips.c:20423
-#, fuzzy, c-format
-#| msgid ""
-#| "-mmcu\t\t\tgenerate MCU instructions\n"
-#| "-mno-mcu\t\tdo not generate MCU instructions\n"
-msgid ""
-"-mcrc\t\t\tgenerate CRC instructions\n"
-"-mno-crc\t\tdo not generate CRC instructions\n"
-msgstr ""
-"-mmcu\t\t\tgenera instrucciones MCU\n"
-"-mno-mcu\t\tno genera instrucciones MCU\n"
-
-#: config/tc-mips.c:20426
-#, fuzzy, c-format
-#| msgid ""
-#| "-mvirt\t\t\tgenerate Virtualization instructions\n"
-#| "-mno-virt\t\tdo not generate Virtualization instructions\n"
-msgid ""
-"-mginv\t\t\tgenerate Global INValidate (GINV) instructions\n"
-"-mno-ginv\t\tdo not generate Global INValidate instructions\n"
-msgstr ""
-"-mvirt\t\t\tgenera instrucciones Virtualization\n"
-"-mno-virt\t\tno genera instrucciones Virtualization\n"
-
-#: config/tc-mips.c:20429
-#, fuzzy, c-format
-#| msgid ""
-#| "-msmartmips\t\tgenerate smartmips instructions\n"
-#| "-mno-smartmips\t\tdo not generate smartmips instructions\n"
-msgid ""
-"-mloongson-mmi\t\tgenerate Loongson MultiMedia extensions Instructions (MMI) instructions\n"
-"-mno-loongson-mmi\tdo not generate Loongson MultiMedia extensions Instructions\n"
-msgstr ""
-"-msmartmips\t\tgenera instrucciones smartmips\n"
-"-no-smartmips\t\tno genera instrucciones smartmips\n"
-
-#: config/tc-mips.c:20432
-#, fuzzy, c-format
-#| msgid ""
-#| "-mxpa\t\t\tgenerate eXtended Physical Address (XPA) instructions\n"
-#| "-mno-xpa\t\tdo not generate eXtended Physical Address (XPA) instructions\n"
-msgid ""
-"-mloongson-cam\t\tgenerate Loongson Content Address Memory (CAM) instructions\n"
-"-mno-loongson-cam\tdo not generate Loongson Content Address Memory Instructions\n"
-msgstr ""
-"-mdsp\t\t\tgenera eXtended Physical Address instrucciones (XPA)\n"
-"-mno-xpa\t\tno genera instrucciones eXtended Physical Address\n"
-
-#: config/tc-mips.c:20435
-#, fuzzy, c-format
-#| msgid ""
-#| "-mmt\t\t\tgenerate MT instructions\n"
-#| "-mno-mt\t\t\tdo not generate MT instructions\n"
-msgid ""
-"-mloongson-ext\t\tgenerate Loongson EXTensions (EXT) instructions\n"
-"-mno-loongson-ext\tdo not generate Loongson EXTensions Instructions\n"
-msgstr ""
-"-mmt\t\t\tgenera instrucciones MT\n"
-"-mno-mt\t\tno genera instrucciones MT\n"
-
-#: config/tc-mips.c:20438
-#, fuzzy, c-format
-#| msgid ""
-#| "-mdspr2\t\t\tgenerate DSP R2 instructions\n"
-#| "-mno-dspr2\t\tdo not generate DSP R2 instructions\n"
-msgid ""
-"-mloongson-ext2\t\tgenerate Loongson EXTensions R2 (EXT2) instructions\n"
-"-mno-loongson-ext2\tdo not generate Loongson EXTensions R2 Instructions\n"
-msgstr ""
-"-mdspr2\t\t\tgenera instrucciones DSP R2\n"
-"-mno-dspr2\t\tno genera instrucciones DSP R2\n"
-
-#: config/tc-mips.c:20441
-#, c-format
-msgid ""
-"-minsn32\t\tonly generate 32-bit microMIPS instructions\n"
-"-mno-insn32\t\tgenerate all microMIPS instructions\n"
-msgstr ""
-"-minsn32\t\t solo genera instrucciones microMIPS de 32-bit\n"
-"-mno-insn32\t\t genera todas las instrucciones microMIPS\n"
-
-#: config/tc-mips.c:20445
-#, c-format
-msgid ""
-"-mfix-loongson3-llsc\twork around Loongson3 LL/SC errata, default\n"
-"-mno-fix-loongson3-llsc\tdisable work around Loongson3 LL/SC errata\n"
-msgstr ""
-
-#: config/tc-mips.c:20449
-#, c-format
-msgid ""
-"-mfix-loongson3-llsc\twork around Loongson3 LL/SC errata\n"
-"-mno-fix-loongson3-llsc\tdisable work around Loongson3 LL/SC errata, default\n"
-msgstr ""
-
-#: config/tc-mips.c:20453
-#, fuzzy, c-format
-#| msgid ""
-#| "-mfix-loongson2f-jump\twork around Loongson2F JUMP instructions\n"
-#| "-mfix-loongson2f-nop\twork around Loongson2F NOP errata\n"
-#| "-mfix-vr4120\t\twork around certain VR4120 errata\n"
-#| "-mfix-vr4130\t\twork around VR4130 mflo/mfhi errata\n"
-#| "-mfix-24k\t\tinsert a nop after ERET and DERET instructions\n"
-#| "-mfix-cn63xxp1\t\twork around CN63XXP1 PREF errata\n"
-#| "-mgp32\t\t\tuse 32-bit GPRs, regardless of the chosen ISA\n"
-#| "-mfp32\t\t\tuse 32-bit FPRs, regardless of the chosen ISA\n"
-#| "-msym32\t\t\tassume all symbols have 32-bit values\n"
-#| "-O0\t\t\tremove unneeded NOPs, do not swap branches\n"
-#| "-O\t\t\tremove unneeded NOPs and swap branches\n"
-#| "--trap, --no-break\ttrap exception on div by 0 and mult overflow\n"
-#| "--break, --no-trap\tbreak exception on div by 0 and mult overflow\n"
-msgid ""
-"-mfix-loongson2f-jump\twork around Loongson2F JUMP instructions\n"
-"-mfix-loongson2f-nop\twork around Loongson2F NOP errata\n"
-"-mfix-loongson3-llsc\twork around Loongson3 LL/SC errata\n"
-"-mno-fix-loongson3-llsc\tdisable work around Loongson3 LL/SC errata\n"
-"-mfix-vr4120\t\twork around certain VR4120 errata\n"
-"-mfix-vr4130\t\twork around VR4130 mflo/mfhi errata\n"
-"-mfix-24k\t\tinsert a nop after ERET and DERET instructions\n"
-"-mfix-cn63xxp1\t\twork around CN63XXP1 PREF errata\n"
-"-mfix-r5900\t\twork around R5900 short loop errata\n"
-"-mgp32\t\t\tuse 32-bit GPRs, regardless of the chosen ISA\n"
-"-mfp32\t\t\tuse 32-bit FPRs, regardless of the chosen ISA\n"
-"-msym32\t\t\tassume all symbols have 32-bit values\n"
-"-O0\t\t\tdo not remove unneeded NOPs, do not swap branches\n"
-"-O, -O1\t\t\tremove unneeded NOPs, do not swap branches\n"
-"-O2\t\t\tremove unneeded NOPs and swap branches\n"
-"--trap, --no-break\ttrap exception on div by 0 and mult overflow\n"
-"--break, --no-trap\tbreak exception on div by 0 and mult overflow\n"
-msgstr ""
-"-mfix-loongson2f-jump\tevita las instrucciones JUMP de Loongson2F\n"
-"-mfix-loongson2f-nop\tevita los errores NOP de Loongson2F\n"
-"-mfix-vr4120\t\tevita ciertos errores de VR4120\n"
-"-mfix-vr4130\t\tevita los errores mflo/mfhi de VR4130\n"
-"-mfix-24k\t\tinserta un nop tras las instrucciones ERET y DERET\n"
-"-mfix-cn63xxp1\t\tevita los errores PREF de CN53XXP1\n"
-"-mgp32\t\t\tusa GPRs de 32-bit, sin importar el ISA escogido\n"
-"-mfp32\t\t\tusa FPRS de 32-bit, sin importar el ISA escogido\n"
-"-msym32\t\t\tasume que todos los símbolos tiene valores de 32-bit\n"
-"-O0\t\t\telimina NOPs innecesarios, no intercambia ramificaciones\n"
-"-O\t\t\telimina NOPs innecesarios e intercambia ramificaciones\n"
-"--trap, --no-break\texcepción trap en div por 0 y desbordamiento de mult\n"
-"--break, --no-trap\texcepción break en div por 0 y desbordamiento de mult\n"
-
-#: config/tc-mips.c:20471
-#, c-format
-msgid ""
-"-mhard-float\t\tallow floating-point instructions\n"
-"-msoft-float\t\tdo not allow floating-point instructions\n"
-"-msingle-float\t\tonly allow 32-bit floating-point operations\n"
-"-mdouble-float\t\tallow 32-bit and 64-bit floating-point operations\n"
-"--[no-]construct-floats\t[dis]allow floating point values to be constructed\n"
-"--[no-]relax-branch\t[dis]allow out-of-range branches to be relaxed\n"
-"-mignore-branch-isa\taccept invalid branches requiring an ISA mode switch\n"
-"-mno-ignore-branch-isa\treject invalid branches requiring an ISA mode switch\n"
-"-mnan=ENCODING\t\tselect an IEEE 754 NaN encoding convention, either of:\n"
-msgstr ""
-"-mhard-float\t\t permite instrucciones de coma flotante\n"
-"-msoft-float\t\t no permite instrucciones de coma flotante\n"
-"-msingle-float\t\t solo permite operaciones de coma flotante de 32 bits\n"
-"-mdouble-float\t\t permite operaciones de coma flotante de 32 y 64 bits\n"
-"--[no-]construct-floats [des]activa valores de coma flotante a construir\n"
-"--[no-]relax-branch\t [no]permite ramificación fuera del rango para ser relajadas\n"
-"-mignore-branch-isa\t acepta ramas inválidas requeriendo un modo ISA\n"
-"-mno-ignore-branch-isa\t rechaza ramas inválidas requiriendo un intercambio de modo ISA\n"
-"-mnan=ENCODING\t\t selecciona un convenio de codificación IEEE 754 NaN, incluso de:\n"
-
-#: config/tc-mips.c:20489
-#, c-format
-msgid ""
-"-KPIC, -call_shared\tgenerate SVR4 position independent code\n"
-"-call_nonpic\t\tgenerate non-PIC code that can operate with DSOs\n"
-"-mvxworks-pic\t\tgenerate VxWorks position independent code\n"
-"-non_shared\t\tdo not generate code that can operate with DSOs\n"
-"-xgot\t\t\tassume a 32 bit GOT\n"
-"-mpdr, -mno-pdr\t\tenable/disable creation of .pdr sections\n"
-"-mshared, -mno-shared disable/enable .cpload optimization for\n"
-" position dependent (non shared) code\n"
-"-mabi=ABI\t\tcreate ABI conformant object file for:\n"
-msgstr ""
-"-KPIC, -call_shared\tgenera código SVR4 independiente de posición\n"
-"-call_nonpic\t\tgenera código que no es PIC interoperable con DSOs\n"
-"-mvxworks-pic\t\tgenera código VxWorks independiente de posición\n"
-"-non_shared\t\tno genera código independiente de posición\n"
-"-xgot\t\t\tasume un GOT de 32 bit\n"
-"-mpdr, -mno-pdr\t\tactiva/desactiva la creación de secciones .pdr\n"
-"-mshared, -mno-shared desactiva/activa la optimización .cpload para\n"
-" código que no es compartido\n"
-"-mabi=ABI\t\tcrea un fichero objeto que cumple con el ABI para:\n"
-
-#: config/tc-mips.c:20510
-#, fuzzy, c-format
-#| msgid "--fdpic\t\t\tgenerate an FDPIC object file\n"
-msgid "-32\t\t\tcreate o32 ABI object file%s\n"
-msgstr "--fdpic\t\t\tgenera un fichero objeto FDPIC\n"
-
-#: config/tc-mips.c:20512 config/tc-mips.c:20515 config/tc-mips.c:20518
-msgid " (default)"
-msgstr ""
-
-#: config/tc-mips.c:20513
-#, fuzzy, c-format
-#| msgid "--fdpic\t\t\tgenerate an FDPIC object file\n"
-msgid "-n32\t\t\tcreate n32 ABI object file%s\n"
-msgstr "--fdpic\t\t\tgenera un fichero objeto FDPIC\n"
-
-#: config/tc-mips.c:20516
-#, fuzzy, c-format
-#| msgid "--fdpic\t\t\tgenerate an FDPIC object file\n"
-msgid "-64\t\t\tcreate 64 ABI object file%s\n"
-msgstr "--fdpic\t\t\tgenera un fichero objeto FDPIC\n"
-
-#: config/tc-mips.c:20598
-msgid "missing .end at end of assembly"
-msgstr ".end ausente al final del ensamblado"
-
-#: config/tc-mmix.c:694
-#, c-format
-msgid " MMIX-specific command line options:\n"
-msgstr " Opciones de la línea de mandatos específicas de MMIX:\n"
-
-#: config/tc-mmix.c:695
-#, c-format
-msgid ""
-" -fixed-special-register-names\n"
-" Allow only the original special register names.\n"
-msgstr ""
-" -fixed-special-register-names\n"
-" Sólo permite los nombres de registros especiales originales.\n"
-
-#: config/tc-mmix.c:698
-#, c-format
-msgid " -globalize-symbols Make all symbols global.\n"
-msgstr " -globalize-symbols Crea todos los símbolos globales.\n"
-
-#: config/tc-mmix.c:700
-#, c-format
-msgid " -gnu-syntax Turn off mmixal syntax compatibility.\n"
-msgstr " -gnu-syntax Desactiva la compatibilidad sintáctica mmixal.\n"
-
-#: config/tc-mmix.c:702
-#, c-format
-msgid " -relax Create linker relaxable code.\n"
-msgstr " -relax Crea código relajable para el enlazador.\n"
-
-#: config/tc-mmix.c:704
-#, c-format
-msgid ""
-" -no-predefined-syms Do not provide mmixal built-in constants.\n"
-" Implies -fixed-special-register-names.\n"
-msgstr ""
-" -no-predefined-syms No provee las constantes internas de mmixal.\n"
-" Implica -fixed-special-register-names.\n"
-
-#: config/tc-mmix.c:707
-#, c-format
-msgid ""
-" -no-expand Do not expand GETA, branches, PUSHJ or JUMP\n"
-" into multiple instructions.\n"
-msgstr ""
-" -no-expand No expande GETA, ramificaciones, PUSHJ ó JUMP\n"
-" a instrucciones múltiples.\n"
-
-#: config/tc-mmix.c:710
-#, c-format
-msgid " -no-merge-gregs Do not merge GREG definitions with nearby values.\n"
-msgstr " -no-merge-gregs No mezcla las definiciones GREG con los valores cercanos.\n"
-
-#: config/tc-mmix.c:712
-#, c-format
-msgid " -linker-allocated-gregs If there's no suitable GREG definition for the operands of an instruction, let the linker resolve.\n"
-msgstr " -linker-allocated-gregs Si no hay una definición GREG adecuada para los operandos de una instrucción, dejar resolver al enlazador.\n"
-
-#: config/tc-mmix.c:715
-#, c-format
-msgid ""
-" -x Do not warn when an operand to GETA, a branch,\n"
-" PUSHJ or JUMP is not known to be within range.\n"
-" The linker will catch any errors. Implies\n"
-" -linker-allocated-gregs."
-msgstr ""
-" -x No avisa cuando no se sabe que un operando para\n"
-" GETA, una ramificación, PUSHJ ó JUMP esté dentro\n"
-" del rango. El enlazador atrapará cualquier error.\n"
-" Implica -linker-allocated-gregs."
-
-#: config/tc-mmix.c:841
-#, c-format
-msgid "unknown opcode: `%s'"
-msgstr "código de operación desconocido: «%s»"
-
-#: config/tc-mmix.c:963 config/tc-mmix.c:978
-msgid "specified location wasn't TETRA-aligned"
-msgstr "la ubicación especificada no estaba TETRA alineada"
-
-#: config/tc-mmix.c:965 config/tc-mmix.c:980 config/tc-mmix.c:4215
-#: config/tc-mmix.c:4231
-msgid "unaligned data at an absolute location is not supported"
-msgstr "no se admiten los datos sin alinear en una ubicación absoluta"
-
-#: config/tc-mmix.c:1090
-#, c-format
-msgid "invalid operand to opcode %s: `%s'"
-msgstr "operando inválido para el código de operación %s: «%s»"
-
-#: config/tc-mmix.c:1112 config/tc-mmix.c:1139 config/tc-mmix.c:1172
-#: config/tc-mmix.c:1180 config/tc-mmix.c:1197 config/tc-mmix.c:1225
-#: config/tc-mmix.c:1246 config/tc-mmix.c:1271 config/tc-mmix.c:1319
-#: config/tc-mmix.c:1426 config/tc-mmix.c:1451 config/tc-mmix.c:1483
-#: config/tc-mmix.c:1515 config/tc-mmix.c:1545 config/tc-mmix.c:1598
-#: config/tc-mmix.c:1615 config/tc-mmix.c:1642 config/tc-mmix.c:1670
-#: config/tc-mmix.c:1700 config/tc-mmix.c:1726 config/tc-mmix.c:1742
-#: config/tc-mmix.c:1768 config/tc-mmix.c:1784 config/tc-mmix.c:1800
-#: config/tc-mmix.c:1881
-#, c-format
-msgid "invalid operands to opcode %s: `%s'"
-msgstr "operandos inválidos para el código de operación %s: «%s»"
-
-#: config/tc-mmix.c:1981
-msgid "internal: mmix_prefix_name but empty prefix"
-msgstr "interno: hay un mmix_prefix_name pero es un prefijo vacío"
-
-#: config/tc-mmix.c:2044
-#, c-format
-msgid "too many GREG registers allocated (max %d)"
-msgstr "se asignaron demasiados registros GREG (máximo %d)"
-
-#: config/tc-mmix.c:2104
-msgid "BSPEC already active. Nesting is not supported."
-msgstr "BSPEC ya está activo. No se admite el anidamiento."
-
-#: config/tc-mmix.c:2113
-msgid "invalid BSPEC expression"
-msgstr "expresión BSPEC no válida"
-
-#: config/tc-mmix.c:2129
-#, c-format
-msgid "can't create section %s"
-msgstr "no se puede crear la sección %s"
-
-#: config/tc-mmix.c:2133
-#, c-format
-msgid "can't set section flags for section %s"
-msgstr "no se pueden establecer las casillas para la sección %s"
-
-#: config/tc-mmix.c:2154
-msgid "ESPEC without preceding BSPEC"
-msgstr "ESPEC sin un BSPEC precedente"
-
-#: config/tc-mmix.c:2183
-msgid "missing local expression"
-msgstr "falta expresión local"
-
-#: config/tc-mmix.c:2400
-msgid "operand out of range, instruction expanded"
-msgstr "operando está fuera de rango, se expande la instrucción"
-
-#. The BFD_RELOC_MMIX_LOCAL-specific message is supposed to be
-#. user-friendly, though a little bit non-substantial.
-#: config/tc-mmix.c:2651
-msgid "directive LOCAL must be placed in code or data"
-msgstr "la directiva LOCAL debe estar colocada en el código o en los datos"
-
-#: config/tc-mmix.c:2652
-msgid "internal confusion: relocation in a section without contents"
-msgstr "confusión interna: reubicación en una sección sin contenido"
-
-#: config/tc-mmix.c:2766
-msgid "internal: BFD_RELOC_MMIX_BASE_PLUS_OFFSET not resolved to section"
-msgstr "interno: BFD_RELOC_MMIX_BASE_PLUS_OFFSET no resuelve a la sección"
-
-#: config/tc-mmix.c:2814
-msgid "no suitable GREG definition for operands"
-msgstr "no hay una definición GREG adecuada para los operandos"
-
-#: config/tc-mmix.c:2873
-msgid "operands were not reducible at assembly-time"
-msgstr "los operandos no son reducibles en el momento del ensamblado"
-
-#: config/tc-mmix.c:2899
-#, c-format
-msgid "cannot generate relocation type for symbol %s, code %s"
-msgstr "incapaz de generar el tipo reubicado para el símbolo %s, código %s"
-
-#: config/tc-mmix.c:2919
-#, c-format
-msgid "internal: unhandled label %s"
-msgstr "interno: etiqueta %s sin manipular"
-
-#: config/tc-mmix.c:2948
-msgid "[0-9]H labels may not appear alone on a line"
-msgstr "las etiquetas [0-9]H no pueden aparecer solas en una línea"
-
-#: config/tc-mmix.c:2956
-msgid "[0-9]H labels do not mix with dot-pseudos"
-msgstr "las etiquetas [0-9]H no se mezclan con pseudo-puntos"
-
-#: config/tc-mmix.c:3044
-msgid "invalid characters in input"
-msgstr "caracteres inválidos en la entrada"
-
-#: config/tc-mmix.c:3150
-msgid "empty label field for IS"
-msgstr "campo de etiqueta vacío para IS"
-
-#: config/tc-mmix.c:3476
-#, c-format
-msgid "internal: unexpected relax type %d:%d"
-msgstr "interno: tipo de relajación inesperado %d:%d"
-
-#: config/tc-mmix.c:3500
-msgid "BSPEC without ESPEC."
-msgstr "BSPEC sin un ESPEC."
-
-#: config/tc-mmix.c:3565
-msgid "LOC to section unknown or indeterminable at first pass"
-msgstr ""
-
-#: config/tc-mmix.c:3751
-msgid "internal: GREG expression not resolved to section"
-msgstr "interno: la expresión GREG no resuelve a la sección"
-
-#: config/tc-mmix.c:3800
-msgid "register section has contents\n"
-msgstr "la sección de registros tiene contenido\n"
-
-#: config/tc-mmix.c:3926
-msgid "section change from within a BSPEC/ESPEC pair is not supported"
-msgstr "no se admite el cambio de sección desde dentro de una pareja BSPEC/ESPEC"
-
-#: config/tc-mmix.c:3947
-msgid "directive LOC from within a BSPEC/ESPEC pair is not supported"
-msgstr "no se admite una directiva LOC desde dentro de una pareja BSPEC/ESPEC"
-
-#: config/tc-mmix.c:3957
-msgid "invalid LOC expression"
-msgstr "expresión LOC no válida"
-
-#: config/tc-mmix.c:4002 config/tc-mmix.c:4029
-msgid "LOC expression stepping backwards is not supported"
-msgstr "LOC como expresión volviendo pasos no está admitido"
-
-#. We will only get here in rare cases involving #NO_APP,
-#. where the unterminated string is not recognized by the
-#. preformatting pass.
-#: config/tc-mmix.c:4138 config/tc-mmix.c:4296 config/tc-z80.c:3202
-msgid "unterminated string"
-msgstr "cadena sin terminar"
-
-#: config/tc-mmix.c:4155
-msgid "BYTE expression not a pure number"
-msgstr "BYTE de expresión no un número puro"
-
-#. Note that mmixal does not allow negative numbers in
-#. BYTE sequences, so neither should we.
-#: config/tc-mmix.c:4164
-msgid "BYTE expression not in the range 0..255"
-msgstr "BYTE de expresión no interno al rango 0..255"
-
-#: config/tc-mmix.c:4213 config/tc-mmix.c:4229
-msgid "data item with alignment larger than location"
-msgstr "elemento de datos con una alineamiento más grande que la ubicación"
-
-#. Since integer_constant is local to expr.c, we have to make this a
-#. macro. FIXME: Do it cleaner.
-#: config/tc-mmix.h:92
-msgid "`&' serial number operator is not supported"
-msgstr "número serial `&' operador no está admitido"
-
-#: config/tc-mn10200.c:300
-#, c-format
-msgid ""
-"MN10200 options:\n"
-"none yet\n"
-msgstr ""
-"Opciones MN10200:\n"
-"ninguna aún\n"
-
-#: config/tc-mn10200.c:890 config/tc-mn10300.c:1253 config/tc-s390.c:1928
-#: config/tc-v850.c:2320
-#, c-format
-msgid "Unrecognized opcode: `%s'"
-msgstr "No reconocido el código de operación: «%s»"
-
-#. xgettext:c-format.
-#: config/tc-mn10200.c:1134 config/tc-mn10300.c:1822 config/tc-ppc.c:4003
-#: config/tc-s390.c:1837 config/tc-v850.c:3036
-#, c-format
-msgid "junk at end of line: `%s'"
-msgstr "basura al final de la línea: «%s»"
-
-#: config/tc-mn10300.c:439
-#, c-format
-msgid ""
-"MN10300 assembler options:\n"
-"none yet\n"
-msgstr ""
-"Opciones de ensamblador para MN10300:\n"
-"ninguna aún\n"
-
-#: config/tc-mn10300.c:1270
-msgid "Invalid opcode/operands"
-msgstr "Código operacional/operandos inválidos"
-
-#: config/tc-mn10300.c:1793
-msgid "Invalid register specification."
-msgstr "Especificación de registro no válida."
-
-#: config/tc-mn10300.c:2388
-#, c-format
-msgid "Bad relocation fixup type (%d)"
-msgstr "Tipo de compostura de reubicación inválido (%d)"
-
-#: config/tc-moxie.c:204 config/tc-moxie.c:223 config/tc-moxie.c:314
-#: config/tc-moxie.c:360
-msgid "expecting comma delimited register operands"
-msgstr "se esperan operandos de registro delimitados por comas"
-
-#: config/tc-moxie.c:250 config/tc-moxie.c:390 config/tc-moxie.c:420
-#: config/tc-moxie.c:495
-msgid "expecting comma delimited operands"
-msgstr "se esperan operandos delimitados por comas"
-
-#: config/tc-moxie.c:318 config/tc-moxie.c:346
-msgid "expecting indirect register `($rA)'"
-msgstr "se espera el registro indirecto `($rA)'"
-
-#: config/tc-moxie.c:326 config/tc-moxie.c:354 config/tc-moxie.c:445
-#: config/tc-moxie.c:487
-msgid "missing closing parenthesis"
-msgstr "ausente paréntesis que cierra"
-
-#: config/tc-moxie.c:437 config/tc-moxie.c:479
-msgid "expecting indirect register `($rX)'"
-msgstr "se espera el registro indirecto `($rX)'"
-
-#: config/tc-moxie.c:557 config/tc-pj.c:313
-msgid "Something forgot to clean up\n"
-msgstr "Algo se olvidó de limpiar\n"
-
-#: config/tc-moxie.c:641
-#, c-format
-msgid ""
-" -EB assemble for a big endian system (default)\n"
-" -EL assemble for a little endian system\n"
-msgstr ""
-" -EB ensambla para un sistema big endian (por defecto)\n"
-" -EL ensambla para un sistema little endian\n"
-
-#: config/tc-moxie.c:701
-msgid "pcrel too far BFD_RELOC_MOXIE_10"
-msgstr "pcrel demasiado lejos de BFD_RELOC_MOXIE_10"
-
-#: config/tc-msp430.c:522
-msgid ".profiler pseudo requires at least two operands."
-msgstr "el pseudo .profiler requiere por lo menos dos operandos."
-
-#: config/tc-msp430.c:581
-msgid "unknown profiling flag - ignored."
-msgstr "opción de análisis de perfil desconocida - se descarta."
-
-#: config/tc-msp430.c:597
-msgid "ambiguous flags combination - '.profiler' directive ignored."
-msgstr "combinación de casillas ambigua - se descarta la directiva '.profiler'."
-
-#: config/tc-msp430.c:607
-msgid "profiling in absolute section?"
-msgstr "¿análisis de perfil en la sección absoluta?"
-
-#: config/tc-msp430.c:1383
-#, c-format
-msgid "Unrecognised CPU errata name starting here: %s"
-msgstr ""
-
-#: config/tc-msp430.c:1389
-#, c-format
-msgid "Expecting comma after CPU errata name, not: %s"
-msgstr "Se esperaba una coma después del nombre errata CPU, no: %s"
-
-#: config/tc-msp430.c:1399
-msgid "MCU option requires a name\n"
-msgstr "Opción MCU requiereun nombre\n"
-
-#: config/tc-msp430.c:1437
-#, c-format
-msgid "unrecognised argument to -mcpu option '%s'"
-msgstr "no reconocido argumento a opción -mcpu: '%s'"
-
-#: config/tc-msp430.c:1634
-#, fuzzy, c-format
-#| msgid "bad argument to syntax directive."
-msgid "bad arguments \"%s\" and/or \"%s\" in %s directive"
-msgstr "argumento incorrecto para la directiva syntax."
-
-#: config/tc-msp430.c:1646
-#, c-format
-msgid "file was compiled for the 430 ISA but the %s ISA is selected"
-msgstr ""
-
-#: config/tc-msp430.c:1651
-msgid "file was compiled for the 430X ISA but the 430 ISA is selected"
-msgstr ""
-
-#: config/tc-msp430.c:1655
-#, c-format
-msgid "unknown MSPABI build attribute value '%d' for OFBA_MSPABI_Tag_ISA(%d) in .mspabi_attribute directive"
-msgstr ""
-
-#: config/tc-msp430.c:1670
-msgid "file was compiled for the small memory model, but the large memory model is selected"
-msgstr ""
-
-#: config/tc-msp430.c:1675
-msgid "file was compiled for the large memory model, but the small memory model is selected"
-msgstr ""
-
-#: config/tc-msp430.c:1679
-#, c-format
-msgid "unknown MSPABI build attribute value '%d' for %s(%d) in .mspabi_attribute directive"
-msgstr ""
-
-#: config/tc-msp430.c:1691
-#, c-format
-msgid "unknown MSPABI build attribute tag '%d' in .mspabi_attribute directive"
-msgstr ""
-
-#: config/tc-msp430.c:1707
-msgid "file was compiled assuming all data will be in the lower memory region, but the upper region is in use"
-msgstr ""
-
-#: config/tc-msp430.c:1712
-msgid "file was compiled assuming data could be in the upper memory region, but the lower data region is exclusively in use"
-msgstr ""
-
-#: config/tc-msp430.c:1717
-#, c-format
-msgid "unknown GNU build attribute value '%d' for Tag_GNU_MSP430_Data_Region(%d) in .gnu_attribute directive"
-msgstr ""
-
-#: config/tc-msp430.c:1723
-#, c-format
-msgid "internal: unexpected argument '%d' to msp430_object_attribute"
-msgstr ""
-
-#: config/tc-msp430.c:1773
-#, c-format
-msgid ""
-"MSP430 options:\n"
-" -mmcu=<msp430-name> - select microcontroller type\n"
-" -mcpu={430|430x|430xv2} - select microcontroller architecture\n"
-msgstr ""
-
-#: config/tc-msp430.c:1777
-#, c-format
-msgid ""
-" -msilicon-errata=<name>[,<name>...] - enable fixups for silicon errata\n"
-" -msilicon-errata-warn=<name>[,<name>...] - warn when a fixup might be needed\n"
-" supported errata names: cpu4, cpu8, cpu11, cpu12, cpu13, cpu19\n"
-msgstr ""
-
-#: config/tc-msp430.c:1781
-#, c-format
-msgid ""
-" -mQ - enable relaxation at assembly time. DANGEROUS!\n"
-" -mP - enable polymorph instructions\n"
-msgstr ""
-" -mQ - permite la relajación en tiempo de ensamblado. ¡PELIGROSO!\n"
-" -mP - permite las instrucciones polimórficas\n"
-
-#: config/tc-msp430.c:1784
-#, c-format
-msgid " -ml - enable large code model\n"
-msgstr " -ml - activa modelo de código grande\n"
-
-#: config/tc-msp430.c:1786
-#, c-format
-msgid " -mN - do not insert NOPs after changing interrupts (default)\n"
-msgstr ""
-" -mN - no inserta varias NOP tras interrupciones (predet.)\n"
-"\n"
-
-#: config/tc-msp430.c:1788
-#, c-format
-msgid " -mn - insert a NOP after changing interrupts\n"
-msgstr " -mn - inserta un NOP tras modificar interrupciones\n"
-
-#: config/tc-msp430.c:1790
-#, c-format
-msgid " -mY - do not warn about missing NOPs after changing interrupts\n"
-msgstr " -mY - no advierte acerca de ausencias NOP tras modificar interrupciones\n"
-
-#: config/tc-msp430.c:1792
-#, c-format
-msgid " -my - warn about missing NOPs after changing interrupts (default)\n"
-msgstr ""
-
-#: config/tc-msp430.c:1794
-#, c-format
-msgid ""
-" -mU - for an instruction which changes interrupt state, but where it is not\n"
-" known how the state is changed, do not warn/insert NOPs\n"
-msgstr ""
-
-#: config/tc-msp430.c:1797
-#, c-format
-msgid ""
-" -mu - for an instruction which changes interrupt state, but where it is not\n"
-" known how the state is changed, warn/insert NOPs (default)\n"
-" -mn and/or -my are required for this to have any effect\n"
-msgstr ""
-
-#: config/tc-msp430.c:1801
-#, c-format
-msgid ""
-" -mdata-region={none|lower|upper|either} - select region data will be\n"
-" placed in.\n"
-msgstr ""
-
-#: config/tc-msp430.c:1973
-#, c-format
-msgid "extra characters '%s' at end of immediate expression '%s'"
-msgstr "caracteres adicionales «%s» al final de expresión inmediata «%s»"
-
-#: config/tc-msp430.c:2005 config/tc-msp430.c:2189 config/tc-msp430.c:2304
-#, c-format
-msgid "value 0x%x out of extended range."
-msgstr "valor 0x%x fuera de rango extendido."
-
-#: config/tc-msp430.c:2011
-#, c-format
-msgid "value %d out of range. Use #lo() or #hi()"
-msgstr "valora %d está fuera de rango. Utilice #lo() o #hi()"
-
-#: config/tc-msp430.c:2057
-msgid "cpu4: not converting PUSH #4 to shorter form"
-msgstr ""
-
-#: config/tc-msp430.c:2074
-msgid "cpu4: not converting PUSH #8 to shorter form"
-msgstr ""
-
-#: config/tc-msp430.c:2088
-msgid "error: unsupported #foo() directive used on symbol"
-msgstr "error: directiva #foo() sin apoyo para directiva utilizada en símbolo"
-
-#: config/tc-msp430.c:2105
-#, c-format
-msgid "unknown expression in operand %s. Use #llo(), #lhi(), #hlo() or #hhi()"
-msgstr "desconoce expresión en operando %s. Utilice #llo() #lhi() #hlo() o #hhi()"
-
-#: config/tc-msp430.c:2156
-#, c-format
-msgid "Registers cannot be used within immediate expression [%s]"
-msgstr "Los registros no se pueden usar en la expresión inmediata [%s]"
-
-#: config/tc-msp430.c:2158
-#, c-format
-msgid "unknown operand %s"
-msgstr "operando %s desconocido"
-
-#: config/tc-msp430.c:2175
-#, c-format
-msgid "extra characters '%s' at the end of absolute operand '%s'"
-msgstr "caracteres adicionales «%s» al final de operando absoluto «%s»"
-
-#: config/tc-msp430.c:2195 config/tc-msp430.c:2310
-#, c-format
-msgid "value out of range: 0x%x"
-msgstr "valor fuera de rango: 0x%x"
-
-#: config/tc-msp430.c:2206
-#, c-format
-msgid "Registers cannot be used within absolute expression [%s]"
-msgstr "Los registros no se pueden usar en la expresión absoluta [%s]"
-
-#: config/tc-msp430.c:2208 config/tc-msp430.c:2339
-#, c-format
-msgid "unknown expression in operand %s"
-msgstr "expresión desconocida en operando %s"
-
-#: config/tc-msp430.c:2222
-#, c-format
-msgid "unknown addressing mode %s"
-msgstr "desconoce modo de direccionamiento %s"
-
-#: config/tc-msp430.c:2230
-#, c-format
-msgid "Bad register name %s"
-msgstr "Nombre registrado incorrecto %s"
-
-#: config/tc-msp430.c:2241
-msgid "cannot use indirect addressing with the PC"
-msgstr "no se puede utilizar una dirección indirecta con el PC"
-
-#: config/tc-msp430.c:2261
-msgid "')' required"
-msgstr "')' requerido"
-
-#: config/tc-msp430.c:2273
-#, c-format
-msgid "unknown operator %s. Did you mean X(Rn) or #[hl][hl][oi](CONST) ?"
-msgstr "operador %s desconocido. ¿ Quiere decir X(Rn) ó #[hl][hl][oi](CONST) ?"
-
-#: config/tc-msp430.c:2280
-msgid "r2 should not be used in indexed addressing mode"
-msgstr "no se debe usar r2 en el modo de direccionamiento indexado"
-
-#: config/tc-msp430.c:2293 config/tc-msp430.c:2368 config/tc-msp430.c:3514
-#: config/tc-msp430.c:3582 config/tc-msp430.c:3699 config/tc-msp430.c:4121
-#: config/tc-msp430.c:4220 config/tc-msp430.c:4271
-#, c-format
-msgid "extra characters '%s' at end of operand '%s'"
-msgstr "caracteres adicionales «%s» al final de operando «%s»"
-
-#: config/tc-msp430.c:2325 config/tc-msp430.c:2327
-msgid "CPU8: Stack pointer accessed with an odd offset"
-msgstr "CPU8: puntero de pila accedido con un desplazamiento impar"
-
-#: config/tc-msp430.c:2337
-#, c-format
-msgid "Registers cannot be used as a prefix of indexed expression [%s]"
-msgstr "Los registros no se pueden usar como un prefijo en la expresión indexada [%s]"
-
-#: config/tc-msp430.c:2403
-#, c-format
-msgid "Internal bug. Try to use 0(r%d) instead of @r%d"
-msgstr "Defecto interno. Intente utilizar 0(r%d) en lugar de @r%d"
-
-#: config/tc-msp430.c:2413
-msgid "this addressing mode is not applicable for destination operand"
-msgstr "este modo direccional no es aplicable para el operando destino"
-
-#: config/tc-msp430.c:2444 config/tc-msp430.c:2579 config/tc-msp430.c:2616
-#: config/tc-msp430.c:2646 config/tc-msp430.c:3450 config/tc-msp430.c:3533
-#: config/tc-msp430.c:3621
-#, c-format
-msgid "expected register as second argument of %s"
-msgstr "esperaba registro como segundo argumento de %s"
-
-#: config/tc-msp430.c:2483 config/tc-msp430.c:2549
-#, c-format
-msgid "index value too big for %s"
-msgstr "valor indexado demasiado grande para %s"
-
-#: config/tc-msp430.c:2500 config/tc-msp430.c:2566 config/tc-msp430.c:2673
-#, c-format
-msgid "unexpected addressing mode for %s"
-msgstr "modo direccional inesperado para %s"
-
-#: config/tc-msp430.c:2586 config/tc-msp430.c:2623 config/tc-msp430.c:2653
-#, c-format
-msgid "constant generator destination register found in %s"
-msgstr "encontrado generador de registro destino constante en %s"
-
-#: config/tc-msp430.c:2630 config/tc-msp430.c:2660
-#, c-format
-msgid "constant generator source register found in %s"
-msgstr "generador constante de registro destino encontrado en %s"
-
-#: config/tc-msp430.c:2840
-msgid "no size modifier after period, .w assumed"
-msgstr ""
-
-#: config/tc-msp430.c:2844
-#, c-format
-msgid "unrecognised instruction size modifier .%c"
-msgstr "no reconocido modificador de tamaño de instrucción .%c"
-
-#: config/tc-msp430.c:2858
-#, c-format
-msgid "junk found after instruction: %s.%s"
-msgstr "basura aparecida tras instrucción: %s.%s"
-
-#: config/tc-msp430.c:2878
-#, c-format
-msgid "instruction %s.a does not exist"
-msgstr "la instrucción %s.a no existe"
-
-#: config/tc-msp430.c:2892
-#, c-format
-msgid "instruction %s requires %d operand"
-msgid_plural "instruction %s requires %d operands"
-msgstr[0] "la instrucción %s requiere de %d operando"
-msgstr[1] "la instrucción %s requiere de %d operandos"
-
-#: config/tc-msp430.c:2910
-#, c-format
-msgid "instruction %s requires MSP430X mcu"
-msgstr "la instrucción %s requiere MSP430X mcu"
-
-#: config/tc-msp430.c:2930
-#, c-format
-msgid "unable to repeat %s insn"
-msgstr "incapaz para utilizar %s insn"
-
-#: config/tc-msp430.c:3002
-msgid "CPU12: CMP/BIT with PC destination ignores next instruction"
-msgstr ""
-
-#: config/tc-msp430.c:3010
-msgid "CPU19: Instruction setting CPUOFF must be followed by a NOP"
-msgstr ""
-
-#: config/tc-msp430.c:3017
-msgid "internal error: unknown nop check state"
-msgstr "error interno: estado marcado ‘nop’ desconocido"
-
-#: config/tc-msp430.c:3071 config/tc-msp430.c:3073 config/tc-msp430.c:3782
-#: config/tc-msp430.c:3784
-msgid "CPU11: PC is destination of SR altering instruction"
-msgstr ""
-
-#: config/tc-msp430.c:3088 config/tc-msp430.c:3090 config/tc-msp430.c:3195
-#: config/tc-msp430.c:3197 config/tc-msp430.c:3799 config/tc-msp430.c:3801
-#: config/tc-msp430.c:4020 config/tc-msp430.c:4022
-msgid "CPU13: SR is destination of SR altering instruction"
-msgstr ""
-
-#: config/tc-msp430.c:3106 config/tc-msp430.c:3207 config/tc-msp430.c:3885
-#: config/tc-msp430.c:4054
-msgid "repeat instruction used with non-register mode instruction"
-msgstr "repite instrucciones utilizadas con modo de instrucción no registrada"
-
-#: config/tc-msp430.c:3181 config/tc-msp430.c:3540 config/tc-msp430.c:4010
-#, c-format
-msgid "%s: attempt to rotate the PC register"
-msgstr "%s: trata rotar el registro PC"
-
-#: config/tc-msp430.c:3432 config/tc-msp430.c:3508
-#, c-format
-msgid "expected #n as first argument of %s"
-msgstr "esperaba #n como primer argumento de %s"
-
-#: config/tc-msp430.c:3438
-#, c-format
-msgid "extra characters '%s' at end of constant expression '%s'"
-msgstr "caracteres adicionales «%s» al final de expresión constante «%s»"
-
-#: config/tc-msp430.c:3443 config/tc-msp430.c:3519
-#, c-format
-msgid "expected constant expression as first argument of %s"
-msgstr "esperaba una expresión constante como primer argumento de %s"
-
-#: config/tc-msp430.c:3469
-msgid "Too many registers popped"
-msgstr "Demasiados registros aparecidos"
-
-#: config/tc-msp430.c:3479
-msgid "Cannot use POPM to restore the SR register"
-msgstr ""
-
-#: config/tc-msp430.c:3499 config/tc-msp430.c:3568
-#, c-format
-msgid "repeat count cannot be used with %s"
-msgstr "repetición de conteo no puede ser utilizado con %s"
-
-#: config/tc-msp430.c:3526
-#, c-format
-msgid "expected first argument of %s to be in the range 1-4"
-msgstr "esperaba primer argumento de %s para estar dentro del rango 1-4"
-
-#: config/tc-msp430.c:3591
-#, c-format
-msgid "expected value of first argument of %s to fit into 20-bits"
-msgstr ""
-
-#: config/tc-msp430.c:3610
-#, c-format
-msgid "expected register name or constant as first argument of %s"
-msgstr "nombre registrado esperada o constante como primer argumento de %s"
-
-#: config/tc-msp430.c:3704
-msgid "expected constant value as argument to RPT"
-msgstr "esperaba un valor constante como argumento a RPT"
-
-#: config/tc-msp430.c:3710
-msgid "expected constant in the range 2..16"
-msgstr "constante esperada dentro del rango 2..16"
-
-#: config/tc-msp430.c:3725
-msgid "PC used as an argument to RPT"
-msgstr "PC utilizado como argumento a RPT"
-
-#: config/tc-msp430.c:3731
-msgid "expected constant or register name as argument to RPT insn"
-msgstr ""
-
-#: config/tc-msp430.c:3738
-msgid "Illegal emulated instruction"
-msgstr "Instrucción emulada ilegítima"
-
-#: config/tc-msp430.c:4039
-#, c-format
-msgid "%s instruction does not accept a .b suffix"
-msgstr "la instrucción %s no acepta un sufijo .b"
-
-#: config/tc-msp430.c:4152
-#, c-format
-msgid "Even number required. Rounded to %d"
-msgstr "Se requiere un número par. Se redondea a %d"
-
-#: config/tc-msp430.c:4163
-#, c-format
-msgid "Wrong displacement %d"
-msgstr "Desplazamiento incorrecto %d"
-
-#: config/tc-msp430.c:4185
-msgid "instruction requires label sans '$'"
-msgstr "la instrucción requiere una etiqueta sin '$'"
-
-#: config/tc-msp430.c:4189
-msgid "instruction requires label or value in range -511:512"
-msgstr "la instrucción requiere una etiqueta o valor en el rango -511:512"
-
-#: config/tc-msp430.c:4195 config/tc-msp430.c:4249 config/tc-msp430.c:4297
-msgid "instruction requires label"
-msgstr "la instrucción requiere etiqueta"
-
-#: config/tc-msp430.c:4203 config/tc-msp430.c:4255
-msgid "polymorphs are not enabled. Use -mP option to enable."
-msgstr "los polimórficos no están activados. Use la opción -mP para activarlos."
-
-#: config/tc-msp430.c:4301
-msgid "Illegal instruction or not implemented opcode."
-msgstr "Instrucción ilegal o código de operación sin implementar."
-
-#: config/tc-msp430.c:4355
-msgid "can't find opcode"
-msgstr "no se puede encontrar el código de operación"
-
-#: config/tc-msp430.c:4868
-#, c-format
-msgid "internal inconsistency problem in %s: insn %04lx"
-msgstr "problema de inconsistencia interna en %s: insn %04lx"
-
-#: config/tc-msp430.c:4910 config/tc-msp430.c:4942
-#, c-format
-msgid "internal inconsistency problem in %s: ext. insn %04lx"
-msgstr "problema de inconsistencia interna en %s: ext. insn %04lx"
-
-#: config/tc-msp430.c:4954
-#, c-format
-msgid "internal inconsistency problem in %s: %lx"
-msgstr "problema de inconsistencia interna en %s: %lx"
-
-#: config/tc-mt.c:151
-#, c-format
-msgid "MT specific command line options:\n"
-msgstr "Opciones de la línea de mandatos específicas de MT:\n"
-
-#: config/tc-mt.c:152
-#, c-format
-msgid " -march=ms1-64-001 allow ms1-64-001 instructions\n"
-msgstr " -march=ms1-64-001 permite instrucciones ms1-64-001\n"
-
-#: config/tc-mt.c:153
-#, c-format
-msgid " -march=ms1-16-002 allow ms1-16-002 instructions (default)\n"
-msgstr " -march=ms1-16-002 permite instrucciones ms1-16-002 (por defecto)\n"
-
-#: config/tc-mt.c:154
-#, c-format
-msgid " -march=ms1-16-003 allow ms1-16-003 instructions\n"
-msgstr " -march=ms1-16-003 permite instrucciones ms1-16-003\n"
-
-#: config/tc-mt.c:155
-#, c-format
-msgid " -march=ms2 allow ms2 instructions \n"
-msgstr " -march=ms2 permite instrucciones ms2 \n"
-
-#: config/tc-mt.c:156
-#, c-format
-msgid " -nosched disable scheduling restrictions\n"
-msgstr " -nosched desactiva las restricciones de calendarización\n"
-
-#: config/tc-mt.c:226
-#, c-format
-msgid "instruction %s may not follow another memory access instruction."
-msgstr "la instrucción %s no puede estar a continuación de otra instrucción de acceso a memoria."
-
-#: config/tc-mt.c:232
-#, c-format
-msgid "instruction %s may not follow another I/O instruction."
-msgstr "la instrucción %s no puede estar a continuación de otra instrucción E/S."
-
-#: config/tc-mt.c:238
-#, c-format
-msgid "%s may not occupy the delay slot of another branch insn."
-msgstr "%s no puede ocupar la ranura de retardo de otra insn de ramificación."
-
-#: config/tc-mt.c:263
-#, c-format
-msgid "operand references R%ld of previous instruction."
-msgstr "operando se refiere a R%ld de la instrucción previa."
-
-#: config/tc-mt.c:269
-#, c-format
-msgid "operand references R%ld of instruction before previous."
-msgstr "operando se refiere a R%ld de la instrucción anterior a la previa."
-
-#: config/tc-mt.c:283 config/tc-mt.c:288
-#, c-format
-msgid "conditional branch or jal insn's operand references R%ld of previous arithmetic or logic insn."
-msgstr "la ramificación condicional o operando de insn jal se refiere a R%ld de la insn aritmética o lógica previa."
-
-#: config/tc-mt.c:351
-msgid "md_estimate_size_before_relax\n"
-msgstr "md_estimate_size_before_relax\n"
-
-#: config/tc-nds32.c:2374
-msgid ""
-"<arch name>\t Assemble for architecture <arch name>\n"
-"\t\t\t <arch name> could be\n"
-"\t\t\t v3, v3j, v3m, v3f, v3s, v2, v2j, v2f, v2s"
-msgstr ""
-"<arch name>\t Ensambla para arquitectura <arqu nombre>\n"
-"\t\t\t <arqu nombre> podría ser\n"
-"\t\t\t v3, v3j, v3m, v3f, v3s, v2, v2j, v2f, v2s"
-
-#: config/tc-nds32.c:2378
-msgid ""
-"<baseline>\t Assemble for baseline <baseline>\n"
-"\t\t\t <baseline> could be v2, v3, v3m"
-msgstr ""
-"<baseline>\t Ensambla para línea básica <baseline>\n"
-"\t\t\t <baseline> podría ser v2, v3, v3m"
-
-#: config/tc-nds32.c:2381
-msgid ""
-"<freg>\t Specify a FPU configuration\n"
-"\t\t\t <freg>\n"
-"\t\t\t 0: 8 SP / 4 DP registers\n"
-"\t\t\t 1: 16 SP / 8 DP registers\n"
-"\t\t\t 2: 32 SP / 16 DP registers\n"
-"\t\t\t 3: 32 SP / 32 DP registers"
-msgstr ""
-"<freg>\t Específicamente una configuración FPU\n"
-"\t\t\t <freg>\n"
-"\t\t\t 0: 8 SP / 4 DP registros\n"
-"\t\t\t 1: 16 SP / 8 DP registros\n"
-"\t\t\t 2: 32 SP / 16 DP registros\n"
-"\t\t\t 3: 32 SP / 32 DP registros"
-
-#: config/tc-nds32.c:2387
-msgid ""
-"<abi>\t Specify a abi version\n"
-"\t\t\t <abi> could be v1, v2, v2fp, v2fpp"
-msgstr ""
-"<abi>\t Especificar una versión abi\n"
-"\t\t\t <abi> podría ser v1, v2, v2fp, v2fpp"
-
-#: config/tc-nds32.c:2420
-msgid "Multiply instructions support"
-msgstr "Apoya instrucciones múltiples"
-
-#: config/tc-nds32.c:2421
-msgid "Divide instructions support"
-msgstr "Soporta instrucciones dividir"
-
-#: config/tc-nds32.c:2422
-msgid "16-bit extension"
-msgstr "Extensión de 16-bit"
-
-#: config/tc-nds32.c:2423
-msgid "d0/d1 registers"
-msgstr "el registros d0/d1"
-
-#: config/tc-nds32.c:2424
-msgid "Performance extension"
-msgstr "Rendimiento extensión"
-
-#: config/tc-nds32.c:2425
-msgid "Performance extension 2"
-msgstr "Rendimiento extensión"
-
-#: config/tc-nds32.c:2426
-msgid "String extension"
-msgstr "Cadena extendida"
-
-#: config/tc-nds32.c:2427
-msgid "Reduced Register configuration (GPR16) option"
-msgstr ""
-
-#: config/tc-nds32.c:2428
-msgid "AUDIO ISA extension"
-msgstr "Extensión de sonido ISA"
-
-#: config/tc-nds32.c:2429
-msgid "FPU SP extension"
-msgstr "Extensión FPU PS"
-
-#: config/tc-nds32.c:2430
-msgid "FPU DP extension"
-msgstr "FPU como extensión DP"
-
-#: config/tc-nds32.c:2431
-msgid "FPU fused-multiply-add instructions"
-msgstr "FPU fused-multiply-add como instrucciones"
-
-#: config/tc-nds32.c:2432
-#, fuzzy
-#| msgid "FPU SP extension"
-msgid "DSP extension"
-msgstr "Extensión FPU PS"
-
-#: config/tc-nds32.c:2433
-#, fuzzy
-#| msgid "bad reloc expression"
-msgid "hardware loop extension"
-msgstr "expresión de reubicación incorrecta"
-
-#: config/tc-nds32.c:2470
-#, c-format
-msgid ""
-"\n"
-" NDS32-specific assembler options:\n"
-msgstr ""
-"\n"
-"Opciones ensambladoras específicas de NDS32:\n"
-
-#: config/tc-nds32.c:2471
-#, c-format
-msgid ""
-" -O1,\t\t\t Optimize for performance\n"
-" -Os\t\t\t Optimize for space\n"
-msgstr ""
-" -O1,\t\t\t Optimiza para rendimiento\n"
-" -Os\t\t\t Optimiza para espacio\n"
-
-#: config/tc-nds32.c:2474
-#, c-format
-msgid ""
-" -EL, -mel or -little Produce little endian output\n"
-" -EB, -meb or -big Produce big endian output\n"
-" -mpic\t\t\t Generate PIC\n"
-" -mno-fp-as-gp-relax\t Suppress fp-as-gp relaxation for this file\n"
-" -mb2bb-relax\t\t Back-to-back branch optimization\n"
-" -mno-all-relax\t Suppress all relaxation for this file\n"
-msgstr ""
-
-#: config/tc-nds32.c:2485
-#, c-format
-msgid " -m%s%s\n"
-msgstr " -m%s%s\n"
-
-#: config/tc-nds32.c:2492
-#, c-format
-msgid " -m[no-]%-17sEnable/Disable %s\n"
-msgstr " -m[no-]%-17s activa/desactiva %s\n"
-
-#: config/tc-nds32.c:2496
-#, c-format
-msgid " -mall-ext\t\t Turn on all extensions and instructions support\n"
-msgstr ""
-
-#: config/tc-nds32.c:2770
-#, c-format
-msgid "la must use with symbol. '%s'"
-msgstr "la debe utilizar con símbolo . «%s»"
-
-#: config/tc-nds32.c:2823
-#, c-format
-msgid "need PIC qualifier with symbol. '%s'"
-msgstr "requiere PIC cualificador con símbolo. «%s»"
-
-#: config/tc-nds32.c:2860
-#, c-format
-msgid "Operand is not a constant. `%s'"
-msgstr "Operando no es una constante. «%s»"
-
-#: config/tc-nds32.c:2949
-#, c-format
-msgid "needs @GOT or @GOTOFF. %s"
-msgstr "requiere @GOT en @GOTOFF. %s"
-
-#: config/tc-nds32.c:3487
-#, c-format
-msgid "Too many argument. `%s'"
-msgstr "Demasiados argumentos. «%s»"
-
-#. Logic here rejects the input arch name.
-#: config/tc-nds32.c:3548
-#, c-format
-msgid "unknown arch name `%s'\n"
-msgstr "desconoce nombre arq «%s»\n"
-
-#. Logic here rejects the input baseline.
-#: config/tc-nds32.c:3567
-#, c-format
-msgid "unknown baseline `%s'\n"
-msgstr "desconoce base lineal «%s»\n"
-
-#. Logic here rejects the input FPU configuration.
-#: config/tc-nds32.c:3590
-#, c-format
-msgid "unknown FPU configuration `%s'\n"
-msgstr "desconoce configuración FPU «%s»\n"
-
-#. Logic here rejects the input abi version.
-#: config/tc-nds32.c:3614
-#, c-format
-msgid "unknown ABI version`%s'\n"
-msgstr "desconoce versión «%s» de ABI\n"
-
-#: config/tc-nds32.c:4339
-#, c-format
-msgid "Different arguments of .vec_size are found, previous %d, current %d"
-msgstr ""
-
-#: config/tc-nds32.c:4344
-#, c-format
-msgid "Argument of .vec_size is expected 4 or 16, actual: %d."
-msgstr "Argumento de tamaño .vec_size está esperado 4 o 16, actual: %d."
-
-#: config/tc-nds32.c:4348
-msgid "Argument of .vec_size is not a constant."
-msgstr "Argumento de .vec_size no es constante."
-
-#: config/tc-nds32.c:4934
-#, c-format
-msgid "Don't know how to handle this field. %s"
-msgstr "No se sabe cómo manipular este campo. %s"
-
-#: config/tc-nds32.c:5299
-#, c-format
-msgid "instruction %s requires enabling performance extension"
-msgstr "la instrucción %s requiere activando extensión rendimiento"
-
-#: config/tc-nds32.c:5311
-#, c-format
-msgid "instruction %s requires enabling performance extension II"
-msgstr "la instrucción %s requiere activar extensión rendimiento II"
-
-#: config/tc-nds32.c:5323
-#, c-format
-msgid "instruction %s requires enabling AUDIO extension"
-msgstr "la instrucción %s requiere activar extensión AUDIO"
-
-#: config/tc-nds32.c:5335
-#, c-format
-msgid "instruction %s requires enabling STRING extension"
-msgstr "la instrucción %s requiere activación de extensión STRING"
-
-#: config/tc-nds32.c:5349
-#, c-format
-msgid "instruction %s requires enabling DIV & DX_REGS extension"
-msgstr "la instrucción %s requiere activar extensiones DIV & DX_REGS"
-
-#: config/tc-nds32.c:5364
-#, c-format
-msgid "instruction %s requires enabling FPU extension"
-msgstr "la instrucción %s requiere una extensión FPU"
-
-#: config/tc-nds32.c:5376
-#, c-format
-msgid "instruction %s requires enabling FPU_SP extension"
-msgstr "la instrucción %s requiere activar extensión FPU_PS"
-
-#: config/tc-nds32.c:5388
-#, c-format
-msgid "instruction %s requires enabling FPU_DP extension"
-msgstr "la instrucción %s requiere activar extensión FPU_DP"
-
-#: config/tc-nds32.c:5399 config/tc-nds32.c:5407
-#, c-format
-msgid "instruction %s requires enabling FPU_MAC extension"
-msgstr "la instrucción %s requiere activación de extensión FPU_MAC"
-
-#: config/tc-nds32.c:5415
-#, c-format
-msgid "instruction %s requires enabling DX_REGS extension"
-msgstr "la instrucción %s requiere activación de extensión DX_REGS"
-
-#: config/tc-nds32.c:5431
-#, fuzzy, c-format
-#| msgid "instruction %s requires enabling FPU extension"
-msgid "instruction %s requires enabling dsp extension"
-msgstr "la instrucción %s requiere una extensión FPU"
-
-#: config/tc-nds32.c:5443
-#, fuzzy, c-format
-#| msgid "instruction %s requires enabling FPU extension"
-msgid "instruction %s requires enabling zol extension"
-msgstr "la instrucción %s requiere una extensión FPU"
-
-#: config/tc-nds32.c:5448
-#, fuzzy, c-format
-#| msgid "internal error: unknown option name '%s'"
-msgid "internal error: unknown instruction attribute: 0x%08x"
-msgstr "error interno: nombre desconocido opcional '%s'"
-
-#: config/tc-nds32.c:5741
-#, c-format
-msgid "relax hint unrecognized instruction: line %d."
-msgstr "la instrucción relajada irreconocida: línea %d."
-
-#: config/tc-nds32.c:5796
-#, c-format
-msgid "Can not find match relax hint. Line: %d"
-msgstr "No puede encontrar coincidencia relajada insinuada. Línea: %d"
-
-#: config/tc-nds32.c:5994
-#, fuzzy
-#| msgid "Internal error: Relax hint error. %s: %x"
-msgid "Internal error: .relax_hint KEY is not a number!"
-msgstr "Error interno: relajar error insinuoso. %s: %x"
-
-#: config/tc-nds32.c:6022
-#, fuzzy, c-format
-#| msgid "Internal error: Relax hint error. %s: %x"
-msgid "Internal error: Relax hint (%s) error. %s: %s (%x)"
-msgstr "Error interno: relajar error insinuoso. %s: %x"
-
-#: config/tc-nds32.c:6099
-#, c-format
-msgid "Internal error: Range error. %s"
-msgstr "Error interno: rango erróneo. %s"
-
-#: config/tc-nds32.c:6160
-msgid "Multiple BFD_RELOC_NDS32_PTR_RESOLVED patterns are not supported yet!"
-msgstr ""
-
-#: config/tc-nds32.c:6308
-#, fuzzy, c-format
-#| msgid "unsupported instruction `%s'"
-msgid "Not support instruction %s in verbatim."
-msgstr "no admitió instrucción «%s»"
-
-#: config/tc-nds32.c:6315
-#, fuzzy, c-format
-#| msgid "st/ld offset 23 instruction was disabled ."
-msgid "16-bit instruction is disabled: %s."
-msgstr "st/ld desplaza 23 instrucciones fue desactivado."
-
-#: config/tc-nds32.c:6342
-#, c-format
-msgid "Instruction %s not supported in the baseline."
-msgstr "Instrucción %s no admitida dentro de la línea base."
-
-#: config/tc-nds32.c:6409
-#, c-format
-msgid "Unrecognized opcode, %s."
-msgstr "No reconocido el código de operación: %s."
-
-#: config/tc-nds32.c:6412
-#, c-format
-msgid "Incorrect syntax, %s."
-msgstr "Sintaxis incorrecta, %s."
-
-#: config/tc-nds32.c:6415
-#, c-format
-msgid "Unrecognized operand/register, %s."
-msgstr "Operando no reconocido %s."
-
-#: config/tc-nds32.c:6418
-#, c-format
-msgid "Operand out of range, %s."
-msgstr "Operando fuera de rango, %s."
-
-#: config/tc-nds32.c:6421
-#, c-format
-msgid "Prohibited register used for reduced-register, %s."
-msgstr "Registro utilizado prohibido para registro reducido, %s."
-
-#: config/tc-nds32.c:6424
-#, c-format
-msgid "Junk at end of line, %s."
-msgstr "Basura al final de la línea, %s."
-
-#: config/tc-nds32.c:7122
-msgid "Addend to unresolved symbol is not on word boundary."
-msgstr "Añadido a símbolo no resuelto no está en un límite de word."
-
-#. Should never here.
-#: config/tc-nds32.c:7617
-msgid "Used FPU instructions requires enabling FPU extension"
-msgstr "Instrucción FPU utilizada requiere activación de extensión FPU"
-
-#: config/tc-nds32.c:7813
-#, c-format
-msgid "Internal error: Unknown fixup type %d (`%s')"
-msgstr "Error interno: Tipo desconocido de corrección: %d (`%s')"
-
-#: config/tc-ns32k.c:437
-msgid "Invalid syntax in PC-relative addressing mode"
-msgstr "Sintaxis no válida en el modo de direccionamiento relativo al PC"
-
-#: config/tc-ns32k.c:461
-msgid "Invalid syntax in External addressing mode"
-msgstr "Sintaxis no válida en el modo de direccionamiento Externo"
-
-#: config/tc-ns32k.c:542
-msgid "Invalid syntax in Memory Relative addressing mode"
-msgstr "Sintaxis no válida en el modo de direccionamiento Relativo a Memoria"
-
-#: config/tc-ns32k.c:609
-msgid "Invalid scaled-indexed mode, use (b,w,d,q)"
-msgstr "Modo escalado-indexado inválido, utilice (b,w,d,q)"
-
-#: config/tc-ns32k.c:614
-msgid "Syntax in scaled-indexed mode, use [Rn:m] where n=[0..7] m={b,w,d,q}"
-msgstr "Sintaxis en el modo escalado-indexado, utilice [Rn:m] donde n=[0..7] m={b,w,d,q}"
-
-#: config/tc-ns32k.c:619
-msgid "Scaled-indexed addressing mode combined with scaled-index"
-msgstr "Modo de direccionamiento escalado-indexado combinado con índice-escalado"
-
-#: config/tc-ns32k.c:630
-msgid "Invalid or illegal addressing mode combined with scaled-index"
-msgstr "Modo de direccionamiento inválido o ilegal combinado con índice-escalado"
-
-#: config/tc-ns32k.c:753
-msgid "Premature end of suffix -- Defaulting to d"
-msgstr "Fin de sufijo prematuro -- Se cambia por defecto a d"
-
-#: config/tc-ns32k.c:766
-msgid "Bad suffix after ':' use {b|w|d} Defaulting to d"
-msgstr "Sufijo incorrecto tras ':' utilice {b|w|d} Se cambia por defecto a d"
-
-#: config/tc-ns32k.c:811
-msgid "Very short instr to option, ie you can't do it on a NULLstr"
-msgstr "Instrucción muy corta para la opción, p.e. no lo puede hacer en un NULLstr"
-
-#: config/tc-ns32k.c:861
-msgid "No such entry in list. (cpu/mmu register)"
-msgstr "No existe esa entrada en la lista. (registros cpu/mmu)"
-
-#: config/tc-ns32k.c:918
-msgid "Internal consistency error. check ns32k-opcode.h"
-msgstr "Error de consistencia interno. revise ns32k-opcode.h"
-
-#: config/tc-ns32k.c:943
-msgid "Address of immediate operand"
-msgstr "Dirección de operando inmediato"
-
-#: config/tc-ns32k.c:944
-msgid "Invalid immediate write operand."
-msgstr "Operando de escritura inmediato inválido."
-
-#: config/tc-ns32k.c:1074
-msgid "Bad opcode-table-option, check in file ns32k-opcode.h"
-msgstr "Opción-de-tabla-de-códigos-de-operación incorrecta, revise en el fichero ns32k-opcode.h"
-
-#: config/tc-ns32k.c:1108
-msgid "No such opcode"
-msgstr "No existe ese código de operación"
-
-#: config/tc-ns32k.c:1183
-msgid "Bad suffix, defaulting to d"
-msgstr "Sufijo incorrecto, se cambia por defecto a d"
-
-#: config/tc-ns32k.c:1210
-msgid "Too many operands passed to instruction"
-msgstr "Se pasan demasiados operandos a la instrucción"
-
-#. Check error in default.
-#: config/tc-ns32k.c:1222
-msgid "Wrong numbers of operands in default, check ns32k-opcodes.h"
-msgstr "Número incorrecto de operandos por defecto, revise ns32k-opcodes.h"
-
-#: config/tc-ns32k.c:1225
-msgid "Wrong number of operands"
-msgstr "Número incorrecto de operandos"
-
-#: config/tc-ns32k.c:1298
-#, c-format
-msgid "Can not do %d byte pc-relative relocation for storage type %d"
-msgstr "No se puede hacer la reubicación relativa a pc de %d byte para el tipo de almacenamiento %d"
-
-#: config/tc-ns32k.c:1301
-#, c-format
-msgid "Can not do %d byte relocation for storage type %d"
-msgstr "No se puede hacer la reubicación de %d byte para el tipo de almacenamiento %d"
-
-#: config/tc-ns32k.c:1393
-#, c-format
-msgid "value of %ld out of byte displacement range."
-msgstr "valor de %ld fuera del rango de desubicación de byte."
-
-#: config/tc-ns32k.c:1403
-#, c-format
-msgid "value of %ld out of word displacement range."
-msgstr "valor de %ld fuera del rango de desubicación de word."
-
-#: config/tc-ns32k.c:1418
-#, c-format
-msgid "value of %ld out of double word displacement range."
-msgstr "valor de %ld fuera del rango de desubicación de double word."
-
-#: config/tc-ns32k.c:1439
-#, c-format
-msgid "Internal logic error. Line %d, file: \"%s\""
-msgstr "Error lógico interno. Línea %d, fichero «%s»"
-
-#: config/tc-ns32k.c:1487
-#, c-format
-msgid "Internal logic error. line %d, file \"%s\""
-msgstr "Error lógico interno. línea %d, fichero «%s»"
-
-#: config/tc-ns32k.c:1588
-msgid "Bit field out of range"
-msgstr "Campo de bits fuera de rango"
-
-#: config/tc-ns32k.c:1688
-msgid "iif convert internal pcrel/binary"
-msgstr "iif convierte a pcrel/binario interno"
-
-#: config/tc-ns32k.c:1705
-msgid "Bignum too big for long"
-msgstr "Número grande demasiado grande para long"
-
-#: config/tc-ns32k.c:1782
-msgid "iif convert internal pcrel/pointer"
-msgstr "iif convierte a pcrel/puntero interno"
-
-#: config/tc-ns32k.c:1787
-msgid "Internal logic error in iif.iifP[n].type"
-msgstr "Error interno de lógica en iif.iifP[n].tipo"
-
-#. We can't relax this case.
-#: config/tc-ns32k.c:1823
-msgid "Can't relax difference"
-msgstr "No se puede relajar la diferencia"
-
-#: config/tc-ns32k.c:1864
-msgid "Displacement too large for :d"
-msgstr "Desubicación demasiado grande para :d"
-
-#: config/tc-ns32k.c:1877
-msgid "Internal logic error in iif.iifP[].type"
-msgstr "Error interno de lógica en iif.iifP[].tipo"
-
-#: config/tc-ns32k.c:2141
-#, c-format
-msgid "invalid architecture option -m%s, ignored"
-msgstr "opción de arquitectura -m%s no válida, se descarta"
-
-#: config/tc-ns32k.c:2154
-#, c-format
-msgid "invalid default displacement size \"%s\". Defaulting to %d."
-msgstr "tamaño de desubicación por defecto «%s» inválido. Se cambia a %d por defecto."
-
-#: config/tc-ns32k.c:2170
-#, c-format
-msgid ""
-"NS32K options:\n"
-"-m32032 | -m32532\tselect variant of NS32K architecture\n"
-"--disp-size-default=<1|2|4>\n"
-msgstr ""
-"Opciones de NS32K:\n"
-"-m32032 | -m32532\tselecciona la variante de la arquitectura NS32K\n"
-"--disp-size-default=<1|2|4>\n"
-
-#: config/tc-ns32k.c:2246
-#, c-format
-msgid "Cannot find relocation type for symbol %s, code %d"
-msgstr "No se puede encontrar el tipo reubicado para el símbolo %s, código %d"
-
-#: config/tc-pdp11.c:351 config/tc-pdp11.c:369 config/tc-pdp11.c:375
-#: config/tc-pdp11.c:400 config/tc-pdp11.c:406 config/tc-pdp11.c:419
-msgid "Bad register name"
-msgstr "Nombre de registro incorrecto"
-
-#: config/tc-pdp11.c:438 config/tc-pdp11.c:502 config/tc-pdp11.c:513
-msgid "Error in expression"
-msgstr "Error en la expresión"
-
-#: config/tc-pdp11.c:510
-msgid "Low order bits truncated in immediate float operand"
-msgstr "Se truncaron los bits de orden inferior en operando de coma flotante inmediato"
-
-#: config/tc-pdp11.c:654
-msgid "Float AC not legal as integer operand"
-msgstr "AC de coma flotante no es legal como operando entero"
-
-#: config/tc-pdp11.c:674
-msgid "General register not legal as float operand"
-msgstr "El registro general no es legal como operando de coma flotante"
-
-#: config/tc-pdp11.c:707
-msgid "No instruction found"
-msgstr "No se encontró una instrucción"
-
-#: config/tc-pdp11.c:717 config/tc-z80.c:3668
-#, c-format
-msgid "Unknown instruction '%s'"
-msgstr "Instrucción desconocida «%s»"
-
-#: config/tc-pdp11.c:723
-#, c-format
-msgid "Unsupported instruction set extension: %s"
-msgstr "No se admite la extensión de conjunto de instrucciones: %s"
-
-#: config/tc-pdp11.c:757
-msgid "operand is not an absolute constant"
-msgstr "operando no es una constante absoluta"
-
-#: config/tc-pdp11.c:765
-msgid "3-bit immediate out of range"
-msgstr "inmediato de 3-bit fuera de rango"
-
-#: config/tc-pdp11.c:772
-msgid "6-bit immediate out of range"
-msgstr "inmediato de 6-bit fuera de rango"
-
-#: config/tc-pdp11.c:779
-msgid "8-bit immediate out of range"
-msgstr "inmediato de 8-bit fuera de rango"
-
-#: config/tc-pdp11.c:796 config/tc-pdp11.c:989
-msgid "Symbol expected"
-msgstr "Se esperaba un símbolo"
-
-#: config/tc-pdp11.c:801
-msgid "8-bit displacement out of range"
-msgstr "Desubicación de 8-bit fuera de rango"
-
-#: config/tc-pdp11.c:843 config/tc-pdp11.c:864 config/tc-pdp11.c:881
-#: config/tc-pdp11.c:902 config/tc-pdp11.c:919 config/tc-pdp11.c:940
-#: config/tc-pdp11.c:959 config/tc-pdp11.c:980
-msgid "Missing ','"
-msgstr "Ausentea ','"
-
-#: config/tc-pdp11.c:994
-msgid "6-bit displacement out of range"
-msgstr "6-bit desplazamiento fuera de rango"
-
-#: config/tc-pdp11.c:1015 config/tc-tilegx.c:1212 config/tc-tilepro.c:1095
-#: config/tc-vax.c:1945
-msgid "Too many operands"
-msgstr "Demasiados operandos"
-
-#: config/tc-pdp11.c:1464
-#, c-format
-msgid "Can not represent %s relocation in this object file format"
-msgstr "No se puede representar la reubicación %s en este formato de fichero objeto"
-
-#: config/tc-pj.c:64 config/tc-pj.c:73
-msgid "confusing relocation expressions"
-msgstr "expresiones de reubicación confusas"
-
-#: config/tc-pj.c:157
-msgid "can't have relocation for ipush"
-msgstr "no se puede tener una reubicación para ipush"
-
-#: config/tc-pj.c:289
-msgid "expected expression"
-msgstr "se esperaba una expresión"
-
-#: config/tc-pj.c:355
-#, c-format
-msgid ""
-"PJ options:\n"
-"-little\t\t\tgenerate little endian code\n"
-"-big\t\t\tgenerate big endian code\n"
-msgstr ""
-"Opciones de PJ:\n"
-"-little\t\t\tgenera código little endian\n"
-"-big\t\t\tgenera código big endian\n"
-
-#: config/tc-pj.c:380 config/tc-sh.c:3580 config/tc-sh.c:3587
-#: config/tc-sh.c:3594 config/tc-sh.c:3601
-msgid "pcrel too far"
-msgstr "pcrel demasiado lejos"
-
-#: config/tc-ppc.c:964 config/tc-ppc.c:972 config/tc-ppc.c:3497
-msgid "invalid register expression"
-msgstr "expresión de registro inválido"
-
-#: config/tc-ppc.c:1135 config/tc-ppc.c:1193 config/tc-ppc.c:1241
-msgid "the use of -mvle requires big endian."
-msgstr "la utilización de -mvle requiere big endian."
-
-#: config/tc-ppc.c:1173 config/tc-ppc.c:1195
-msgid "the use of -mvle requires -a32."
-msgstr "la macro requiere $at mientras $at está en uso."
-
-#: config/tc-ppc.c:1175
-#, c-format
-msgid "%s unsupported"
-msgstr "no se admite %s"
-
-#: config/tc-ppc.c:1268 config/tc-s390.c:493 config/tc-s390.c:500
-#, c-format
-msgid "invalid switch -m%s"
-msgstr "interruptor -m%s inválido"
-
-#: config/tc-ppc.c:1299
-msgid "--nops needs a numeric argument"
-msgstr "--nops necesita un argumento numérico"
-
-#: config/tc-ppc.c:1335
-#, fuzzy, c-format
-#| msgid "SPARC options:\n"
-msgid "PowerPC options:\n"
-msgstr "Opciones SPARC:\n"
-
-#: config/tc-ppc.c:1337
-#, fuzzy, c-format
-#| msgid " -KPIC generate PIC\n"
-msgid "-a32 generate ELF32/XCOFF32\n"
-msgstr " -KPIC genera PIC\n"
-
-#: config/tc-ppc.c:1340
-#, fuzzy, c-format
-#| msgid " -KPIC generate PIC\n"
-msgid "-a64 generate ELF64/XCOFF64\n"
-msgstr " -KPIC genera PIC\n"
-
-#: config/tc-ppc.c:1342
-#, fuzzy, c-format
-#| msgid " -w ignored\n"
-msgid "-u ignored\n"
-msgstr " -w se descarta\n"
-
-#: config/tc-ppc.c:1344
-#, c-format
-msgid "-mpwrx, -mpwr2 generate code for POWER/2 (RIOS2)\n"
-msgstr ""
-
-#: config/tc-ppc.c:1346
-#, fuzzy, c-format
-#| msgid " -KPIC generate PIC\n"
-msgid "-mpwr generate code for POWER (RIOS1)\n"
-msgstr " -KPIC genera PIC\n"
-
-#: config/tc-ppc.c:1348
-#, fuzzy, c-format
-#| msgid " -KPIC generate PIC\n"
-msgid "-m601 generate code for PowerPC 601\n"
-msgstr " -KPIC genera PIC\n"
-
-#: config/tc-ppc.c:1350
-#, c-format
-msgid ""
-"-mppc, -mppc32, -m603, -m604\n"
-" generate code for PowerPC 603/604\n"
-msgstr ""
-
-#: config/tc-ppc.c:1353
-#, fuzzy, c-format
-#| msgid " -KPIC generate PIC\n"
-msgid "-m403 generate code for PowerPC 403\n"
-msgstr " -KPIC genera PIC\n"
-
-#: config/tc-ppc.c:1355
-#, fuzzy, c-format
-#| msgid " -KPIC generate PIC\n"
-msgid "-m405 generate code for PowerPC 405\n"
-msgstr " -KPIC genera PIC\n"
-
-#: config/tc-ppc.c:1357
-#, fuzzy, c-format
-#| msgid " -KPIC generate PIC\n"
-msgid "-m440 generate code for PowerPC 440\n"
-msgstr " -KPIC genera PIC\n"
-
-#: config/tc-ppc.c:1359
-#, fuzzy, c-format
-#| msgid " -KPIC generate PIC\n"
-msgid "-m464 generate code for PowerPC 464\n"
-msgstr " -KPIC genera PIC\n"
-
-#: config/tc-ppc.c:1361
-#, fuzzy, c-format
-#| msgid " -KPIC generate PIC\n"
-msgid "-m476 generate code for PowerPC 476\n"
-msgstr " -KPIC genera PIC\n"
-
-#: config/tc-ppc.c:1363
-#, c-format
-msgid ""
-"-m7400, -m7410, -m7450, -m7455\n"
-" generate code for PowerPC 7400/7410/7450/7455\n"
-msgstr ""
-
-#: config/tc-ppc.c:1366
-#, c-format
-msgid ""
-"-m750cl, -mgekko, -mbroadway\n"
-" generate code for PowerPC 750cl/Gekko/Broadway\n"
-msgstr ""
-
-#: config/tc-ppc.c:1369
-#, c-format
-msgid "-m821, -m850, -m860 generate code for PowerPC 821/850/860\n"
-msgstr ""
-
-#: config/tc-ppc.c:1371
-#, c-format
-msgid "-mppc64, -m620 generate code for PowerPC 620/625/630\n"
-msgstr ""
-
-#: config/tc-ppc.c:1373
-#, c-format
-msgid "-mppc64bridge generate code for PowerPC 64, including bridge insns\n"
-msgstr ""
-
-#: config/tc-ppc.c:1375
-#, fuzzy, c-format
-#| msgid " -mbig-obj generate big object files\n"
-msgid "-mbooke generate code for 32-bit PowerPC BookE\n"
-msgstr " -mbig-obj genera ficheros objetos grandes\n"
-
-#: config/tc-ppc.c:1377
-#, fuzzy, c-format
-#| msgid " -Z generate object file even after errors\n"
-msgid "-ma2 generate code for A2 architecture\n"
-msgstr " -Z generar fichero objeto par tras errores\n"
-
-#: config/tc-ppc.c:1379
-#, c-format
-msgid "-mpower4, -mpwr4 generate code for Power4 architecture\n"
-msgstr ""
-
-#: config/tc-ppc.c:1381
-#, fuzzy, c-format
-#| msgid " -Z generate object file even after errors\n"
-msgid ""
-"-mpower5, -mpwr5, -mpwr5x\n"
-" generate code for Power5 architecture\n"
-msgstr " -Z generar fichero objeto par tras errores\n"
-
-#: config/tc-ppc.c:1384
-#, c-format
-msgid "-mpower6, -mpwr6 generate code for Power6 architecture\n"
-msgstr ""
-
-#: config/tc-ppc.c:1386
-#, c-format
-msgid "-mpower7, -mpwr7 generate code for Power7 architecture\n"
-msgstr ""
-
-#: config/tc-ppc.c:1388
-#, c-format
-msgid "-mpower8, -mpwr8 generate code for Power8 architecture\n"
-msgstr ""
-
-#: config/tc-ppc.c:1390
-#, c-format
-msgid "-mpower9, -mpwr9 generate code for Power9 architecture\n"
-msgstr ""
-
-#: config/tc-ppc.c:1392
-#, c-format
-msgid "-mpower10, -mpwr10 generate code for Power10 architecture\n"
-msgstr ""
-
-#: config/tc-ppc.c:1394
-#, c-format
-msgid "-mpower11, -mpwr11 generate code for Power11 architecture\n"
-msgstr ""
-
-#: config/tc-ppc.c:1396
-#, fuzzy, c-format
-#| msgid " -march=ARCH enable instructions from architecture ARCH\n"
-msgid "-mlibresoc generate code for Libre-SOC architecture\n"
-msgstr " -march=ARQ permite instrucciones para la arquitectura ARQ\n"
-
-#: config/tc-ppc.c:1398
-#, fuzzy, c-format
-#| msgid " -Z generate object file even after errors\n"
-msgid "-mfuture generate code for 'future' architecture\n"
-msgstr " -Z generar fichero objeto par tras errores\n"
-
-#: config/tc-ppc.c:1400
-#, c-format
-msgid "-mcell generate code for Cell Broadband Engine architecture\n"
-msgstr ""
-
-#: config/tc-ppc.c:1402
-#, fuzzy, c-format
-#| msgid " -matomic enable atomic operation instructions\n"
-msgid "-mcom generate code for Power/PowerPC common instructions\n"
-msgstr " -matomic permite instrucciones de operación atómica\n"
-
-#: config/tc-ppc.c:1404
-#, fuzzy, c-format
-#| msgid " -Z generate object file even after errors\n"
-msgid "-many generate code for any architecture (PWR/PWRX/PPC)\n"
-msgstr " -Z generar fichero objeto par tras errores\n"
-
-#: config/tc-ppc.c:1406
-#, fuzzy, c-format
-#| msgid " -mbig-obj generate big object files\n"
-msgid "-maltivec generate code for AltiVec\n"
-msgstr " -mbig-obj genera ficheros objetos grandes\n"
-
-#: config/tc-ppc.c:1408
-#, fuzzy, c-format
-#| msgid " -m32r disable support for the m32rx instruction set\n"
-msgid "-mvsx generate code for Vector-Scalar (VSX) instructions\n"
-msgstr " -m32r desactivar apoyo para el conjunto de instrucciones m32rx\n"
-
-#: config/tc-ppc.c:1410
-#, fuzzy, c-format
-#| msgid " -KPIC generate PIC\n"
-msgid "-me300 generate code for PowerPC e300 family\n"
-msgstr " -KPIC genera PIC\n"
-
-#: config/tc-ppc.c:1412
-#, c-format
-msgid "-me500, -me500x2 generate code for Motorola e500 core complex\n"
-msgstr ""
-
-#: config/tc-ppc.c:1414
-#, c-format
-msgid "-me500mc, generate code for Freescale e500mc core complex\n"
-msgstr ""
-
-#: config/tc-ppc.c:1416
-#, c-format
-msgid "-me500mc64, generate code for Freescale e500mc64 core complex\n"
-msgstr ""
-
-#: config/tc-ppc.c:1418
-#, c-format
-msgid "-me5500, generate code for Freescale e5500 core complex\n"
-msgstr ""
-
-#: config/tc-ppc.c:1420
-#, c-format
-msgid "-me6500, generate code for Freescale e6500 core complex\n"
-msgstr ""
-
-#: config/tc-ppc.c:1422
-#, fuzzy, c-format
-#| msgid " -m32r disable support for the m32rx instruction set\n"
-msgid "-mspe generate code for Motorola SPE instructions\n"
-msgstr " -m32r desactivar apoyo para el conjunto de instrucciones m32rx\n"
-
-#: config/tc-ppc.c:1424
-#, fuzzy, c-format
-#| msgid " -m32r disable support for the m32rx instruction set\n"
-msgid "-mspe2 generate code for Freescale SPE2 instructions\n"
-msgstr " -m32r desactivar apoyo para el conjunto de instrucciones m32rx\n"
-
-#: config/tc-ppc.c:1426
-#, fuzzy, c-format
-#| msgid " -m32r disable support for the m32rx instruction set\n"
-msgid "-mvle generate code for Freescale VLE instructions\n"
-msgstr " -m32r desactivar apoyo para el conjunto de instrucciones m32rx\n"
-
-#: config/tc-ppc.c:1428
-#, c-format
-msgid "-mtitan generate code for AppliedMicro Titan core complex\n"
-msgstr ""
-
-#: config/tc-ppc.c:1430
-#, fuzzy, c-format
-#| msgid " -mindex-reg support pseudo index registers\n"
-msgid "-mregnames Allow symbolic names for registers\n"
-msgstr " -mindex-reg admite registros de pseudo índice\n"
-
-#: config/tc-ppc.c:1432
-#, fuzzy, c-format
-#| msgid " -mindex-reg support pseudo index registers\n"
-msgid "-mno-regnames Do not allow symbolic names for registers\n"
-msgstr " -mindex-reg admite registros de pseudo índice\n"
-
-#: config/tc-ppc.c:1435
-#, c-format
-msgid "-mrelocatable support for GCC's -mrelocatble option\n"
-msgstr ""
-
-#: config/tc-ppc.c:1437
-#, c-format
-msgid "-mrelocatable-lib support for GCC's -mrelocatble-lib option\n"
-msgstr ""
-
-#: config/tc-ppc.c:1439
-#, c-format
-msgid "-memb set PPC_EMB bit in ELF flags\n"
-msgstr ""
-
-#: config/tc-ppc.c:1441
-#, fuzzy, c-format
-#| msgid " -mlittle-endian generate little-endian code\n"
-msgid ""
-"-mlittle, -mlittle-endian, -le\n"
-" generate code for a little endian machine\n"
-msgstr " -mlittle-endian genera código little-endian\n"
-
-#: config/tc-ppc.c:1444
-#, fuzzy, c-format
-#| msgid " -mbig-endian generate big-endian code\n"
-msgid ""
-"-mbig, -mbig-endian, -be\n"
-" generate code for a big endian machine\n"
-msgstr " -mbig-endian genera código big-endian\n"
-
-#: config/tc-ppc.c:1447
-#, fuzzy, c-format
-#| msgid " -mbig-obj generate big object files\n"
-msgid "-msolaris generate code for Solaris\n"
-msgstr " -mbig-obj genera ficheros objetos grandes\n"
-
-#: config/tc-ppc.c:1449
-#, fuzzy, c-format
-#| msgid " -mbig-obj generate big object files\n"
-msgid "-mno-solaris do not generate code for Solaris\n"
-msgstr " -mbig-obj genera ficheros objetos grandes\n"
-
-#: config/tc-ppc.c:1451
-#, c-format
-msgid "-K PIC set EF_PPC_RELOCATABLE_LIB in ELF flags\n"
-msgstr ""
-
-#: config/tc-ppc.c:1453
-#, fuzzy, c-format
-#| msgid " --version print assembler version number and exit\n"
-msgid "-V print assembler version number\n"
-msgstr " --version escribe el número de versión del ensamblador y termina\n"
-
-#: config/tc-ppc.c:1455
-#, fuzzy, c-format
-#| msgid " -nocpp ignored\n"
-msgid "-Qy, -Qn ignored\n"
-msgstr " -nocpp se descarta\n"
-
-#: config/tc-ppc.c:1458
-#, fuzzy, c-format
-#| msgid ""
-#| "-nops=count when aligning, more than COUNT nops uses a branch\n"
-#| "-ppc476-workaround warn if emitting data to code sections\n"
-msgid "-nops=count when aligning, more than COUNT nops uses a branch\n"
-msgstr ""
-"-nops=contador cuando alineando, más que CONTADOR nops utiliza\n"
-" una ramificación\n"
-"-ppc476-workarround avisa si emitiendo datos para secciones de código\n"
-
-#: config/tc-ppc.c:1460
-#, fuzzy, c-format
-#| msgid ""
-#| "-nops=count when aligning, more than COUNT nops uses a branch\n"
-#| "-ppc476-workaround warn if emitting data to code sections\n"
-msgid "-ppc476-workaround warn if emitting data to code sections\n"
-msgstr ""
-"-nops=contador cuando alineando, más que CONTADOR nops utiliza\n"
-" una ramificación\n"
-"-ppc476-workarround avisa si emitiendo datos para secciones de código\n"
-
-#: config/tc-ppc.c:1490
-#, c-format
-msgid "unknown default cpu = %s, os = %s"
-msgstr "desconoce cpu = %s predeterminada, os = %s"
-
-#: config/tc-ppc.c:1576
-#, c-format
-msgid "mask trims opcode bits for %s"
-msgstr "mascarada recorta bits del código de operación para %s"
-
-#: config/tc-ppc.c:1586
-#, c-format
-msgid "operand index error for %s"
-msgstr "error de índice de operando para %s"
-
-#: config/tc-ppc.c:1612
-#, c-format
-msgid "operand %d overlap in %s"
-msgstr "operando %d sobreescribe en %s"
-
-#: config/tc-ppc.c:1621
-#, c-format
-msgid "non-optional operand %d follows optional operand in %s"
-msgstr ""
-
-#: config/tc-ppc.c:1687
-#, c-format
-msgid "powerpc_operands[%d].bitm invalid"
-msgstr "powerpc_operands[%d].bitm inválido"
-
-#: config/tc-ppc.c:1694
-#, c-format
-msgid "powerpc_operands[%d] duplicates powerpc_operands[%d]"
-msgstr "powerpc_operands[%d] duplica a powerpc_operands[%d]"
-
-#: config/tc-ppc.c:1722 config/tc-ppc.c:1775 config/tc-ppc.c:1817
-#: config/tc-ppc.c:1865
-#, c-format
-msgid "major opcode is not sorted for %s"
-msgstr "el código de operación major no está ordenado para %s"
-
-#: config/tc-ppc.c:1728
-#, c-format
-msgid "%s is enabled by vle flag"
-msgstr "%s está activada por marca vle"
-
-#: config/tc-ppc.c:1735
-#, c-format
-msgid "%s not disabled by vle flag"
-msgstr "%s no desactivada por marca vle"
-
-#: config/tc-ppc.c:1841
-#, fuzzy, c-format
-#| msgid "major opcode is not sorted for %s"
-msgid "opcode is not sorted for %s"
-msgstr "el código de operación major no está ordenado para %s"
-
-#: config/tc-ppc.c:2259
-#, c-format
-msgid "symbol+offset@%s means symbol@%s+offset"
-msgstr ""
-
-#: config/tc-ppc.c:2279
-#, fuzzy, c-format
-#| msgid "symbol+offset not supported for got tls"
-msgid "symbol+offset@%s not supported"
-msgstr "no se admite símbolo+desplazamiento para got tls"
-
-#: config/tc-ppc.c:2358 config/tc-ppc.c:4223 config/tc-ppc.c:7693
-msgid "data in executable section"
-msgstr "datos en sección ejecutable"
-
-#: config/tc-ppc.c:2399
-msgid "expected comma after symbol-name: rest of line ignored."
-msgstr "esperaba una coma tras el nombre-símbolo: el resto de la línea descartado."
-
-#: config/tc-ppc.c:2432
-#, c-format
-msgid "ignoring attempt to re-define symbol `%s'."
-msgstr "ignorando intento de redefinir símbolo «%s»."
-
-#: config/tc-ppc.c:2440
-#, c-format
-msgid "length of .lcomm \"%s\" is already %ld. Not changed to %ld."
-msgstr "longitud de .lcomm «%s» ya es %ld. No modificado a %ld."
-
-#: config/tc-ppc.c:2458
-msgid "common alignment not a power of 2"
-msgstr "la alineamiento común no es una potencia de 2"
-
-#: config/tc-ppc.c:2500
-#, c-format
-msgid "expected comma after name `%s' in .localentry directive"
-msgstr "coma esperada tras nombre «%s» en directiva .localentry"
-
-#: config/tc-ppc.c:2510
-msgid "missing expression in .localentry directive"
-msgstr "expresión ausente en directiva localentry"
-
-#: config/tc-ppc.c:2531
-#, c-format
-msgid ".localentry expression for `%s' is not a valid power of 2"
-msgstr "la expresión .localentry para `%s' no es una potencia de 2 válida"
-
-#: config/tc-ppc.c:2548
-#, c-format
-msgid ".localentry expression for `%s' does not evaluate to a constant"
-msgstr "expresión .localentry para `%s' no evalúa a una constante"
-
-#: config/tc-ppc.c:2563
-#, fuzzy
-#| msgid "missing expression in .size directive"
-msgid "missing expression in .abiversion directive"
-msgstr "expresión ausente en directiva localentry"
-
-#: config/tc-ppc.c:2572
-msgid ".abiversion expression does not evaluate to a constant"
-msgstr "expresión .abiversion no evalúa a una constante"
-
-#: config/tc-ppc.c:2652
-msgid "relocation cannot be done when using -mrelocatable"
-msgstr "relocation no puede ser hecho cuando utiliza -mrelocatable"
-
-#: config/tc-ppc.c:2698
-msgid "TOC section size exceeds 64k"
-msgstr "TOC como sección excede 64k"
-
-#: config/tc-ppc.c:3258
-#, c-format
-msgid "%s howto doesn't match size/pcrel in gas"
-msgstr ""
-
-#: config/tc-ppc.c:3337
-#, c-format
-msgid "unrecognized opcode: `%s'"
-msgstr "código de operación no reconocido: «%s»"
-
-#. lmw, stmw, lswi, lswx, stswi, stswx
-#: config/tc-ppc.c:3348
-#, c-format
-msgid "`%s' invalid when little-endian"
-msgstr ""
-
-#: config/tc-ppc.c:3690
-#, c-format
-msgid "@tls may not be used with \"%s\" operands"
-msgstr "@tls quizá no está utiliada con «%s» operandos"
-
-#: config/tc-ppc.c:3693
-msgid "@tls may only be used in last operand"
-msgstr "@tls solo se puede utilizar en el último operando"
-
-#: config/tc-ppc.c:3731 config/tc-ppc.c:3741 config/tc-ppc.c:3751
-#: config/tc-ppc.c:3766
-#, fuzzy, c-format
-#| msgid "%s unsupported as instruction fixup"
-msgid "%s unsupported on this instruction"
-msgstr "%s no admitido como instrucción corregida"
-
-#: config/tc-ppc.c:3813
-#, c-format
-msgid "assuming %s on symbol"
-msgstr "asumiendo %s en símbolo"
-
-#: config/tc-ppc.c:3936
-msgid "unsupported relocation for DS offset field"
-msgstr "no se admite el tipo reubicado para el campo de desplazamiento DS"
-
-#: config/tc-ppc.c:3989
-#, c-format
-msgid "syntax error; found `%c', expected `%c'"
-msgstr "error de sintaxis; se encontró `%c', se esperaba `%c'"
-
-#: config/tc-ppc.c:3994
-#, c-format
-msgid "syntax error; end of line, expected `%c'"
-msgstr "error de sintaxis; fin de línea, se esperaba `%c'"
-
-#: config/tc-ppc.c:4059 config/tc-ppc.c:6863
-#, fuzzy, c-format
-#| msgid "instruction address is not a multiple of 2"
-msgid "instruction address is not a multiple of %d"
-msgstr "la instrucción direccional no es un múltiplo de 2"
-
-#: config/tc-ppc.c:4180
-msgid "bad .section directive: want a,e,v,w,x,M,S,G,T in string"
-msgstr "directiva .section incorrecta: se quiere en la cadena a,e,v,w,x,M,S,G,T"
-
-#: config/tc-ppc.c:4330
-msgid "missing size"
-msgstr "ausente el tamaño"
-
-#: config/tc-ppc.c:4339
-msgid "negative size"
-msgstr "tamaño negativo"
-
-#: config/tc-ppc.c:4366
-msgid "Unknown visibility field in .comm"
-msgstr ""
-
-#: config/tc-ppc.c:4384
-msgid "missing real symbol name"
-msgstr "ausente el nombre del símbolo real"
-
-#: config/tc-ppc.c:4423
-msgid "attempt to redefine symbol"
-msgstr "se intenta redefinir el símbolo"
-
-#: config/tc-ppc.c:4732
-#, c-format
-msgid "no known dwarf XCOFF section for flag 0x%08x\n"
-msgstr "no hay una sección XCOFF enana conocida para la opción 0x%08x\n"
-
-#: config/tc-ppc.c:4745
-#, c-format
-msgid "label %s was not defined in this dwarf section"
-msgstr "la etiqueta %s no se definió en esta sección enana"
-
-#: config/tc-ppc.c:4859
-msgid "the XCOFF file format does not support arbitrary sections"
-msgstr "el formato del fichero XCOFF no admite secciones arbitrarias"
-
-#: config/tc-ppc.c:4897
-msgid "Unknown visibility field in .extern"
-msgstr ""
-
-#: config/tc-ppc.c:4934
-msgid "Unknown visibility field in .globl"
-msgstr ""
-
-#: config/tc-ppc.c:4971
-msgid "Unknown visibility field in .weak"
-msgstr ""
-
-#: config/tc-ppc.c:5022
-msgid ".ref outside .csect"
-msgstr ".ref fuera de .csect"
-
-#: config/tc-ppc.c:5043 config/tc-ppc.c:5303
-msgid "missing symbol name"
-msgstr "ausente el nombre del símbolo"
-
-#: config/tc-ppc.c:5073
-msgid "missing rename string"
-msgstr "ausente la cadena para renombrar"
-
-#: config/tc-ppc.c:5103 config/tc-ppc.c:5705
-msgid "missing value"
-msgstr "ausente el valor"
-
-#: config/tc-ppc.c:5121
-msgid "illegal .stabx expression; zero assumed"
-msgstr "expresión .stabx ilegal; se asume cero"
-
-#: config/tc-ppc.c:5153
-msgid "missing class"
-msgstr "ausente la clase"
-
-#: config/tc-ppc.c:5162
-msgid "missing type"
-msgstr "ausente el tipo"
-
-#: config/tc-ppc.c:5189
-msgid ".stabx of storage class stsym must be within .bs/.es"
-msgstr ".stabx de la clase de almacenamiento stsym debe estar entre .bs/.es"
-
-#: config/tc-ppc.c:5493
-msgid "nested .bs blocks"
-msgstr "bloques .bs anidados"
-
-#: config/tc-ppc.c:5524
-msgid ".es without preceding .bs"
-msgstr ".es sin un .bs precedente"
-
-#: config/tc-ppc.c:5697
-msgid "non-constant byte count"
-msgstr "contador no constante de byte"
-
-#: config/tc-ppc.c:5772
-msgid ".tc not in .toc section"
-msgstr ".tc no está en la sección .toc"
-
-#: config/tc-ppc.c:5790
-msgid ".tc with no label"
-msgstr ".tc sin etiqueta"
-
-#: config/tc-ppc.c:5818
-#, fuzzy, c-format
-#| msgid "this DS form not yet supported"
-msgid ".tc with storage class %d not yet supported"
-msgstr "aún no se admite esta forma DS"
-
-#: config/tc-ppc.c:5887 config/tc-s390.c:2187
-msgid ".machine stack overflow"
-msgstr "desbordamiento de pila en .machine"
-
-#: config/tc-ppc.c:5894 config/tc-s390.c:2198
-msgid ".machine stack underflow"
-msgstr "desbordamiento por debajo de la pila en .machine"
-
-#: config/tc-ppc.c:5936 config/tc-s390.c:2210
-#, c-format
-msgid "invalid machine `%s'"
-msgstr "máquina no válida «%s»"
-
-#: config/tc-ppc.c:5981
-msgid "bad symbol suffix"
-msgstr "sufijo de símbolo incorrecto"
-
-#: config/tc-ppc.c:6080
-msgid "unrecognized symbol suffix"
-msgstr "símbolo sufijo no reconocido"
-
-#: config/tc-ppc.c:6168
-msgid ".ef with no preceding .function"
-msgstr ".ef sin un .function precedente"
-
-#: config/tc-ppc.c:6307
-#, c-format
-msgid "warning: symbol %s has no csect"
-msgstr "aviso: el símbolo %s no tiene csect"
-
-#: config/tc-ppc.c:6639
-msgid "symbol in .toc does not match any .tc"
-msgstr "el símbolo en .toc no coincide con ningún .tc"
-
-#: config/tc-ppc.c:7395
-#, c-format
-msgid "%s unsupported as instruction fixup"
-msgstr "%s no admitido como instrucción corregida"
-
-#: config/tc-ppc.c:7494
-#, c-format
-msgid "unsupported relocation against %s"
-msgstr "no se admite la reubicación contra %s"
-
-#: config/tc-ppc.c:7656
-#, c-format
-msgid "R_TLSML relocation doesn't target a TOC entry named \"_$TLSML\": %s"
-msgstr ""
-
-#: config/tc-ppc.c:7676
-#, c-format
-msgid "Gas failure, reloc value %d\n"
-msgstr "Fallo de gas, valor reubicado %d\n"
-
-#: config/tc-pru.c:309
-msgid "expecting opcode string in self test mode"
-msgstr "esperando cadena operacional de código en modo de prueba"
-
-#: config/tc-pru.c:311
-#, c-format
-msgid "assembly 0x%08x, expected %s"
-msgstr "ensambla 0x%08x, esperado %s"
-
-#: config/tc-pru.c:572
-#, c-format
-msgid "immediate value 0x%x truncated to 0x%x"
-msgstr "valor inmediato 0x%x truncado a 0x%x"
-
-#: config/tc-pru.c:598
-#, c-format
-msgid "call target address 0x%08x out of range 0x%08x to 0x%08x"
-msgstr "llama dirección destino 0x%08x fuera del rango 0x%08x a 0x%08x"
-
-#: config/tc-pru.c:603
-#, c-format
-msgid "quick branch offset %d out of range %d to %d"
-msgstr "ramificación rápida de desplazamiento%d fuera de rango %d a %d"
-
-#: config/tc-pru.c:608
-#, c-format
-msgid "%s offset %d out of range %d to %d"
-msgstr "%s desplazamiento %d fuera de rango %d a %d"
-
-#: config/tc-pru.c:613
-#, c-format
-msgid "immediate value %d out of range %d to %d"
-msgstr "valor %d inmediato fuera de rango %d a %d"
-
-#: config/tc-pru.c:618
-#, c-format
-msgid "immediate value %llu out of range %u to %lu"
-msgstr "valor inmediato %llu fuera de rango desde %u hasta %lu"
-
-#: config/tc-pru.c:623 config/tc-pru.c:628
-#, c-format
-msgid "immediate value %u out of range %u to %u"
-msgstr "valor inmediato %u fuera de rango desde %u hasta %u"
-
-#: config/tc-pru.c:633
-msgid "overflow in immediate argument"
-msgstr "sobredesbordamiento dentro de argumento inmediato"
-
-#: config/tc-pru.c:668
-msgid "cannot create 64-bit relocation"
-msgstr "no puede crear datos reubicantes de 64-bit"
-
-#: config/tc-pru.c:697
-msgid "unexpected PC relative expression"
-msgstr "expresión relativa PC inesperada"
-
-#: config/tc-pru.c:734 config/tc-pru.c:741
-msgid "residual low bits in pmem diff relocation"
-msgstr ""
-
-#: config/tc-pru.c:862
-msgid "can't create relocation"
-msgstr "no puede crear reubicación"
-
-#: config/tc-pru.c:938 config/tc-pru.c:971
-#, c-format
-msgid "trailing garbage after expression: %s"
-msgstr "arrastrando basura tras expresión: %s"
-
-#: config/tc-pru.c:943
-#, c-format
-msgid "expected expression, got %s"
-msgstr "expresión esperada, obtuvo %s"
-
-#: config/tc-pru.c:976
-#, c-format
-msgid "expected constant expression, got %s"
-msgstr "expresión constante esperada, obtuvo %s"
-
-#: config/tc-pru.c:996 config/tc-pru.c:1016 config/tc-pru.c:1043
-#: config/tc-pru.c:1062 config/tc-pru.c:1076
-#, c-format
-msgid "unknown register %s"
-msgstr "el registro desconocido %s"
-
-#: config/tc-pru.c:1029
-msgid "data transfer register cannot be halfword"
-msgstr "el registro de transferencia de datos no puede ser mitad de palabra"
-
-#: config/tc-pru.c:1048
-msgid "destination register must be full-word"
-msgstr "el registro destino debe ser palabra completa"
-
-#: config/tc-pru.c:1080
-#, c-format
-msgid "cannot use partial register %s for addressing"
-msgstr "no se puede utilizar registro %s parcial para direccionamiento"
-
-#: config/tc-pru.c:1093
-#, fuzzy, c-format
-#| msgid "value too large for 2-byte field"
-msgid "value %lu is too large for a byte operand"
-msgstr "valor demasiado grande para un campo de 2 bytes"
-
-#: config/tc-pru.c:1115
-#, c-format
-msgid "loop count constant %ld is out of range [1..%d]"
-msgstr "conteo constante de bucle %ld está fuera del rango [1..%d]"
-
-#: config/tc-pru.c:1215 config/tc-pru.c:1241
-#, c-format
-msgid "byte count constant %ld is out of range [1..%d]"
-msgstr "conteo byte constante %ld está fuera del rango [1..%d]"
-
-#: config/tc-pru.c:1222 config/tc-pru.c:1248
-msgid "only r0 can be used as byte count register"
-msgstr "sóla r0 pueden ser utilizado como registro de conteo de byte"
-
-#: config/tc-pru.c:1224 config/tc-pru.c:1250
-msgid "only r0.bX byte fields of r0 can be used as byte count"
-msgstr ""
-
-#: config/tc-pru.c:1263
-#, c-format
-msgid "invalid constant table offset %ld"
-msgstr "desplazamiento distribuido contante inválido %ld"
-
-#: config/tc-pru.c:1274
-#, c-format
-msgid "invalid WakeOnStatus %ld"
-msgstr "invalida WakeOnStatus %ld"
-
-#: config/tc-pru.c:1285
-#, c-format
-msgid "invalid XFR WideBus Address %ld"
-msgstr "invalida Dirección XFR WideBus %ld"
-
-#: config/tc-pru.c:1318 config/tc-pru.c:1343 config/tc-pru.c:1363
-#, c-format
-msgid "badly formed expression near %s"
-msgstr "expresión incorrectamente formada cercana a %s"
-
-#: config/tc-pru.c:1389
-#, c-format
-msgid "expecting %c near %s"
-msgstr "esperando %c cerca de %s"
-
-#: config/tc-pru.c:1553
-#, c-format
-msgid ""
-"PRU options:\n"
-" -mlink-relax generate relocations for linker relaxation (default).\n"
-" -mno-link-relax don't generate relocations for linker relaxation.\n"
-msgstr ""
-
-#. Unrecognised instruction - error.
-#: config/tc-pru.c:1724
-#, c-format
-msgid "unrecognised instruction %s"
-msgstr "la instrucción %s no reconocida"
-
-#: config/tc-pru.c:1781
-#, c-format
-msgid "can't represent relocation type %s"
-msgstr "no puede representar tipo %s reubicable"
-
-#: config/tc-pru.c:1827
-#, c-format
-msgid "Label \"%s\" matches a CPU register name"
-msgstr "Etiqueta «%s» coincide un nombre de registro de CPU"
-
-#: config/tc-riscv.c:237
-#, c-format
-msgid "unknown default privileged spec `%s' set by -mpriv-spec or --with-priv-spec"
-msgstr ""
-
-#. Still can not find the privileged spec class.
-#: config/tc-riscv.c:259
-#, c-format
-msgid "unknown default privileged spec `%d.%d.%d' set by privileged elf attributes"
-msgstr ""
-
-#: config/tc-riscv.c:357
-msgid "the architecture string of -march and elf architecture attributes cannot be empty"
-msgstr ""
-
-#: config/tc-riscv.c:920 config/tc-riscv.c:981 config/tc-riscv.c:1807
-#, fuzzy, c-format
-#| msgid "internal: unhandled label %s"
-msgid "internal: duplicate %s"
-msgstr "interno: etiqueta %s sin manipular"
-
-#: config/tc-riscv.c:1167
-#, fuzzy, c-format
-#| msgid "internal: bad RISC-V opcode (mask error): %s %s"
-msgid "internal: bad RISC-V CSR class (0x%x)"
-msgstr "interno: código de operación RISC-V incorrecto (error de máscara): %s %s"
-
-#: config/tc-riscv.c:1173
-#, c-format
-msgid "invalid CSR `%s', needs rv32i extension"
-msgstr ""
-
-#: config/tc-riscv.c:1175
-#, c-format
-msgid "invalid CSR `%s', needs `h' extension"
-msgstr ""
-
-#: config/tc-riscv.c:1179
-#, c-format
-msgid "invalid CSR `%s', needs `%s' extension"
-msgstr ""
-
-#: config/tc-riscv.c:1202
-#, c-format
-msgid "invalid CSR `%s' for the privileged spec `%s'"
-msgstr ""
-
-#: config/tc-riscv.c:1452
-msgid "cannot find `}' for cm.push/cm.pop"
-msgstr ""
-
-#: config/tc-riscv.c:1488
-#, c-format
-msgid "internal: bad RISC-V opcode (mask error): %s %s"
-msgstr "interno: código de operación RISC-V incorrecto (error de máscara): %s %s"
-
-#: config/tc-riscv.c:1767
-#, fuzzy, c-format
-#| msgid "internal: bad RISC-V opcode (unknown operand type `%c'): %s %s"
-msgid "internal: bad RISC-V opcode (unknown operand type `%s'): %s %s"
-msgstr "interno: código de operación RISC-V incorrecto (tipo desconocido de operando `%c'): %s %s"
-
-#: config/tc-riscv.c:1776
-#, fuzzy, c-format
-#| msgid "internal: bad RISC-V opcode (bits 0x%lx undefined): %s %s"
-msgid "internal: bad RISC-V opcode (bits %#llx undefined or invalid): %s %s"
-msgstr "interno: código de operación RISC-V incorrecto (varios bit 0x%lx indefinidos): %s %s"
-
-#: config/tc-riscv.c:1818
-#, fuzzy
-#| msgid "Broken assembler. No assembly attempted."
-msgid "internal: broken assembler. No assembly attempted"
-msgstr "Ensamblador descompuesto. No se intentó ensamblar."
-
-#: config/tc-riscv.c:1993
-#, fuzzy, c-format
-#| msgid "Unsupported RISC-V relocation number %d"
-msgid "internal: unsupported RISC-V relocation number %d"
-msgstr "No admitido número de reubicación RISC-V %d"
-
-#: config/tc-riscv.c:2109
-#, fuzzy, c-format
-#| msgid "internal error: invalid macro"
-msgid "internal: invalid macro argument `%s'"
-msgstr "error interno: macro inválido"
-
-#: config/tc-riscv.c:2159 config/tc-riscv.c:2237
-msgid "unsupported large constant"
-msgstr "no se admite la constante large"
-
-#: config/tc-riscv.c:2161
-#, fuzzy, c-format
-#| msgid "unknown DSP `%s'"
-msgid "unknown CSR `%s'"
-msgstr "desconoce DSP `%s'"
-
-#: config/tc-riscv.c:2164
-#, fuzzy, c-format
-#| msgid "Instruction %s requires absolute expression"
-msgid "instruction %s requires absolute expression"
-msgstr "La instrucción %s requiere una expresión absoluta"
-
-#: config/tc-riscv.c:2332
-msgid "must provide temp if destination overlaps mask"
-msgstr ""
-
-#: config/tc-riscv.c:2425
-#, fuzzy, c-format
-#| msgid "Macro %s not implemented"
-msgid "internal: macro %s not implemented"
-msgstr "Macro %s no implementada"
-
-#: config/tc-riscv.c:2627 config/tc-riscv.c:2687
-#, fuzzy
-#| msgid "multiple movx specifications"
-msgid "multiple vsew constants"
-msgstr "especificaciones movx múltiples"
-
-#: config/tc-riscv.c:2635
-#, fuzzy
-#| msgid "invalid constant"
-msgid "multiple vlmul constants"
-msgstr "constante no válida"
-
-#: config/tc-riscv.c:2643
-#, fuzzy
-#| msgid "invalid constant"
-msgid "multiple vta constants"
-msgstr "constante no válida"
-
-#: config/tc-riscv.c:2651
-#, fuzzy
-#| msgid "invalid constant"
-msgid "multiple vma constants"
-msgstr "constante no válida"
-
-#: config/tc-riscv.c:2697
-#, fuzzy
-#| msgid "shift must be constant"
-msgid "multiple vlen constants"
-msgstr "el desplazamiento debe ser constante"
-
-#: config/tc-riscv.c:2706
-#, fuzzy
-#| msgid "multiple predicates on same line"
-msgid "multiple vediv constants"
-msgstr "predicados múltiples en la misma línea"
-
-#. Reset error message of the previous round.
-#: config/tc-riscv.c:2872
-msgid "illegal operands"
-msgstr "operandos ilegales"
-
-#: config/tc-riscv.c:2923
-#, c-format
-msgid "read-only CSR is written `%s'"
-msgstr ""
-
-#: config/tc-riscv.c:2933
-#, fuzzy
-#| msgid "illegal opcode %s for mcu %s"
-msgid "illegal opcode for zve32x"
-msgstr "código de operación %s ilegal para el mcu %s"
-
-#: config/tc-riscv.c:3185
-msgid "bad value for compressed funct6 field, value must be 0...63"
-msgstr ""
-
-#: config/tc-riscv.c:3200
-msgid "bad value for compressed funct4 field, value must be 0...15"
-msgstr ""
-
-#: config/tc-riscv.c:3215
-msgid "bad value for compressed funct3 field, value must be 0...7"
-msgstr ""
-
-#: config/tc-riscv.c:3230
-msgid "bad value for compressed funct2 field, value must be 0...3"
-msgstr ""
-
-#: config/tc-riscv.c:3323
-msgid "bad value for vsetivli immediate field, value must be 0..1023"
-msgstr ""
-
-#: config/tc-riscv.c:3335
-msgid "bad value for vsetvli immediate field, value must be 0..2047"
-msgstr ""
-
-#: config/tc-riscv.c:3348
-msgid "bad value for vector immediate field, value must be -16...15"
-msgstr ""
-
-#: config/tc-riscv.c:3360
-msgid "bad value for vector immediate field, value must be 0...31"
-msgstr ""
-
-#: config/tc-riscv.c:3372
-msgid "bad value for vector immediate field, value must be -15...16"
-msgstr ""
-
-#: config/tc-riscv.c:3384
-msgid "bad value for vector immediate field, value must be 0...63"
-msgstr ""
-
-#: config/tc-riscv.c:3447 config/tc-riscv.c:3458
-#, fuzzy, c-format
-#| msgid "Improper shift amount (%lu)"
-msgid "improper shift amount (%<PRIu64>)"
-msgstr "Cantidad de desplazamiento impropia (%lu)"
-
-#: config/tc-riscv.c:3469
-#, fuzzy, c-format
-#| msgid "Improper CSRxI immediate (%lu)"
-msgid "improper CSRxI immediate (%<PRIu64>)"
-msgstr "Inmediato CSRxI impropio (%lu)"
-
-#: config/tc-riscv.c:3486
-#, fuzzy, c-format
-#| msgid "Improper CSR address (%lu)"
-msgid "improper CSR address (%<PRIu64>)"
-msgstr "Dirección CSR impropia (%lu)"
-
-#: config/tc-riscv.c:3666
-msgid "lui expression not in range 0..1048575"
-msgstr "expresión lui no en el rango 0..1048575"
-
-#: config/tc-riscv.c:3699
-msgid "bad value for opcode field, value must be 0...127 and lower 2 bits must be 0x3"
-msgstr ""
-
-#: config/tc-riscv.c:3715
-msgid "bad value for opcode field, value must be 0...2"
-msgstr ""
-
-#: config/tc-riscv.c:3738
-msgid "bad value for funct7 field, value must be 0...127"
-msgstr ""
-
-#: config/tc-riscv.c:3753
-msgid "bad value for funct3 field, value must be 0...7"
-msgstr ""
-
-#: config/tc-riscv.c:3768
-msgid "bad value for funct2 field, value must be 0...3"
-msgstr ""
-
-#: config/tc-riscv.c:3786
-#, fuzzy, c-format
-#| msgid "Improper CSRxI immediate (%lu)"
-msgid "Improper bs immediate (%lu)"
-msgstr "Inmediato CSRxI impropio (%lu)"
-
-#: config/tc-riscv.c:3797
-#, fuzzy, c-format
-#| msgid "Improper CSRxI immediate (%lu)"
-msgid "Improper rnum immediate (%lu)"
-msgstr "Inmediato CSRxI impropio (%lu)"
-
-#: config/tc-riscv.c:3829
-#, fuzzy, c-format
-#| msgid "Improper position (%lu)"
-msgid "improper prefetch offset (%ld)"
-msgstr "Posición impropia (%lu)"
-
-#: config/tc-riscv.c:3857
-msgid "bad fli constant operand, supported constants must be in decimal or hexadecimal floating-point literal form"
-msgstr ""
-
-#: config/tc-riscv.c:3988
-msgid "bad value for th.vsetvli immediate field, value must be 0..2047"
-msgstr ""
-
-#: config/tc-riscv.c:3999
-#, fuzzy, c-format
-#| msgid "Unexpected token `%s'"
-msgid "unexpected literal (%s)"
-msgstr "Elemento `%s' inesperado"
-
-#: config/tc-riscv.c:4021
-#, fuzzy, c-format
-#| msgid "Improper CSRxI immediate (%lu)"
-msgid "improper immediate value (%<PRIu64>)"
-msgstr "Inmediato CSRxI impropio (%lu)"
-
-#: config/tc-riscv.c:4027
-#, fuzzy, c-format
-#| msgid "Improper CSRxI immediate (%lu)"
-msgid "improper immediate value (%<PRIi64>)"
-msgstr "Inmediato CSRxI impropio (%lu)"
-
-#: config/tc-riscv.c:4142
-#, c-format
-msgid "bad value for <bit-%s-%s> field, value must be 0...%d"
-msgstr ""
-
-#: config/tc-riscv.c:4188
-#, fuzzy, c-format
-#| msgid "internal: unknown operand type: %s %s"
-msgid "internal: unknown argument type `%s'"
-msgstr "interno: tipo operando desconocido: %s %s"
-
-#: config/tc-riscv.c:4240
-#, fuzzy
-#| msgid "alignment must be constant"
-msgid "values must be constant"
-msgstr "el alineamiento debe ser constante"
-
-#: config/tc-riscv.c:4247
-#, fuzzy
-#| msgid "unrecognized flag"
-msgid "unrecognized values"
-msgstr "marca no reconocida"
-
-#: config/tc-riscv.c:4255 config/tc-riscv.c:4266 config/tc-riscv.c:4280
-#, fuzzy
-#| msgid "Internal Error: bad instruction length"
-msgid "value conflicts with instruction length"
-msgstr "Error interno: longitud incorrecta de instrucción"
-
-#: config/tc-riscv.c:4820
-#, fuzzy
-#| msgid "too many operands"
-msgid "too many pcrel_hi"
-msgstr "demasiados operandos"
-
-#: config/tc-riscv.c:4866
-#, fuzzy, c-format
-#| msgid "internal error: bad relocation #%d"
-msgid "internal: bad relocation #%d"
-msgstr "error interno: reubicación incorrecta nº%d"
-
-#: config/tc-riscv.c:5369
-#, c-format
-msgid ""
-"RISC-V options:\n"
-" -fpic or -fPIC generate position-independent code\n"
-" -fno-pic don't generate position-independent code (default)\n"
-" -march=ISA set the RISC-V architecture\n"
-" -misa-spec=ISAspec set the RISC-V ISA spec (2.2, 20190608, 20191213)\n"
-" -mpriv-spec=PRIVspec set the RISC-V privilege spec (1.10, 1.11, 1.12)\n"
-" -mabi=ABI set the RISC-V ABI\n"
-" -mrelax enable relax (default)\n"
-" -mno-relax disable relax\n"
-" -march-attr generate RISC-V arch attribute\n"
-" -mno-arch-attr don't generate RISC-V arch attribute\n"
-" -mcsr-check enable the csr ISA and privilege spec version checks\n"
-" -mno-csr-check disable the csr ISA and privilege spec version checks (default)\n"
-" -mbig-endian assemble for big-endian\n"
-" -mlittle-endian assemble for little-endian\n"
-msgstr ""
-
-#: config/tc-riscv.c:5414
-#, c-format
-msgid "unknown register `%s'"
-msgstr "el registro desconocido «%s»"
-
-#: config/tc-riscv.c:5449
-#, fuzzy
-#| msgid "non-constant .%cleb128 is not supported"
-msgid "non-constant .sleb128 is not supported"
-msgstr "no constante. %cleb128 no está apoyado"
-
-#: config/tc-riscv.c:5451
-msgid ".uleb128 only supports constant or subtract expressions"
-msgstr ""
-
-#: config/tc-riscv.c:5553
-#, fuzzy, c-format
-#| msgid "internal: bad RISC-V opcode (mask error): %s %s"
-msgid "internal: bad RISC-V privileged spec (%s)"
-msgstr "interno: código de operación RISC-V incorrecto (error de máscara): %s %s"
-
-#: config/tc-riscv.c:5706
-#, fuzzy
-#| msgid "\".option\" directive must appear before any instructions"
-msgid "architecture elf attributes must set before any instructions"
-msgstr "la directiva \".option\" debe aparecer antes de cualquier instrucción"
-
-#: config/tc-riscv.c:5724
-#, fuzzy
-#| msgid "\".option\" directive must appear before any instructions"
-msgid "privileged elf attributes must set before any instructions"
-msgstr "la directiva \".option\" debe aparecer antes de cualquier instrucción"
-
-#: config/tc-riscv.c:5746
-#, fuzzy
-#| msgid "Missing symbol name in directive"
-msgid "missing symbol name for .variant_cc directive"
-msgstr "Ausente nombre de símbolo en la directiva"
-
-#: config/tc-rl78.c:213
-msgid "16-bit relocation used in 8-bit operand"
-msgstr "la reubicación de 16-bit utilizada en operando de 8-bit"
-
-#: config/tc-rl78.c:217
-msgid "8-bit relocation used in 16-bit operand"
-msgstr "utilizaba reubicación de 8-bit en operando 16-bit"
-
-#: config/tc-rl78.c:243 config/tc-rx.c:875
-#, c-format
-msgid "Value %d doesn't fit in unsigned %d-bit field"
-msgstr "El valor %d no cabe en el campo de %d bit sin signo"
-
-#: config/tc-rl78.c:249 config/tc-rx.c:881
-#, c-format
-msgid "Value %d doesn't fit in signed %d-bit field"
-msgstr "El valor %d no cabe en el campo de %d bit con signo"
-
-#: config/tc-rl78.c:367
-#, c-format
-msgid " RL78 specific command line options:\n"
-msgstr " Opciones de línea de mandatos específicas de RL78:\n"
-
-#: config/tc-rl78.c:368
-#, c-format
-msgid " --mrelax Enable link time relaxation\n"
-msgstr " -mrelax Activa relajación temporal enlazada\n"
-
-#: config/tc-rl78.c:369
-#, c-format
-msgid " --mg10 Enable support for G10 variant\n"
-msgstr " --mg10 Activa compatibilidad para variante G10\n"
-
-#: config/tc-rl78.c:370
-#, c-format
-msgid " --mg13 Selects the G13 core.\n"
-msgstr " --mg13 Selecciona el core G13.\n"
-
-#: config/tc-rl78.c:371
-#, c-format
-msgid " --mg14 Selects the G14 core [default]\n"
-msgstr " --mg14 Selecciona el núcleo G14 [predet.]\n"
-
-#: config/tc-rl78.c:372
-#, c-format
-msgid " --mrl78 Alias for --mg14\n"
-msgstr " --mrl78 Alias para --mg14\n"
-
-#: config/tc-rl78.c:373
-#, c-format
-msgid " --m32bit-doubles [default]\n"
-msgstr " --m32bit-doubles [predet.]\n"
-
-#: config/tc-rl78.c:374
-#, c-format
-msgid " --m64bit-doubles Source code uses 64-bit doubles\n"
-msgstr " --m64bit-doubles Código fuente utiliza dobles de 64-bit\n"
-
-#: config/tc-rl78.c:439
-#, c-format
-msgid "%%%s() must be outermost term in expression"
-msgstr "%%%s() debe ser término como mucho en expresión"
-
-#: config/tc-rl78.c:667 config/tc-rx.c:2242
-#, c-format
-msgid "unsupported constant size %d\n"
-msgstr "no se admite el tamaño de constante %d\n"
-
-#: config/tc-rl78.c:683
-#, c-format
-msgid "%%hi16/%%lo16 only applies to .short or .hword"
-msgstr ""
-
-#: config/tc-rl78.c:693
-#, c-format
-msgid "%%hi8 only applies to .byte"
-msgstr "%%hi8 solo aplica a .byte"
-
-#: config/tc-rl78.c:705 config/tc-rx.c:2249
-msgid "difference of two symbols only supported with .long, .short, or .byte"
-msgstr "solo se admite la diferencia de dos símbolos con .long .short o .byte"
-
-#: config/tc-rl78.c:1226 config/tc-rx.c:2176
-#, c-format
-msgid "bad frag at %p : fix %ld addr %ld %ld \n"
-msgstr "fragmento incorrecto en %p: fix %ld dir %ld %ld \n"
-
-#: config/tc-rl78.c:1442
-#, c-format
-msgid "value of %ld too large for 8-bit branch"
-msgstr "valor %ld es demasiado grande para la ramificación de 8-bit relativa al PC"
-
-#: config/tc-rl78.c:1453
-#, c-format
-msgid "value of %ld too large for 16-bit branch"
-msgstr "valor de %ld es muy grande para ramificar 16-bit"
-
-#: config/tc-rl78.c:1502 config/tc-rx.c:2441
-#, c-format
-msgid "Unknown reloc in md_apply_fix: %s"
-msgstr "Reubicación desconocida en md_apply_fix: %s"
-
-#: config/tc-rx.c:194
-#, c-format
-msgid "unrecognised RX CPU type %s"
-msgstr "no reconocido el tipo de CPU RX %s"
-
-#: config/tc-rx.c:209
-#, c-format
-msgid " RX specific command line options:\n"
-msgstr " Opciones de línea de mandatos específicas de RX:\n"
-
-#: config/tc-rx.c:210
-#, c-format
-msgid " --mbig-endian-data\n"
-msgstr " --mbig-endian-data\n"
-
-#: config/tc-rx.c:211
-#, c-format
-msgid " --mlittle-endian-data [default]\n"
-msgstr " --mlittle-endian-data [por defecto]\n"
-
-#: config/tc-rx.c:212
-#, c-format
-msgid " --m32bit-doubles [default]\n"
-msgstr " --m32bit-doubles [por defecto]\n"
-
-#: config/tc-rx.c:213
-#, c-format
-msgid " --m64bit-doubles\n"
-msgstr " --m64bit-doubles\n"
-
-#: config/tc-rx.c:214
-#, c-format
-msgid " --muse-conventional-section-names\n"
-msgstr " --muse-conventional-section-names\n"
-
-#: config/tc-rx.c:215
-#, c-format
-msgid " --muse-renesas-section-names [default]\n"
-msgstr " --muse-renesas-section-names [por defecto]\n"
-
-#: config/tc-rx.c:216
-#, c-format
-msgid " --msmall-data-limit\n"
-msgstr " --msmall-data-limit\n"
-
-#: config/tc-rx.c:217
-#, c-format
-msgid " --mrelax\n"
-msgstr " --mrelax\n"
-
-#: config/tc-rx.c:218
-#, c-format
-msgid " --mpid\n"
-msgstr " --mpid\n"
-
-#: config/tc-rx.c:219
-#, c-format
-msgid " --mint-register=<value>\n"
-msgstr " --mint-register=<valor>\n"
-
-#: config/tc-rx.c:220
-#, fuzzy, c-format
-#| msgid " --mcpu=<rx100|rx200|rx600|rx610|rxv2>\n"
-msgid " --mcpu=<rx100|rx200|rx600|rx610|rxv2|rxv3|rxv3-dfpu>\n"
-msgstr " --mcpu=<rx100|rx200|rx600|rx610|rxv2>\n"
-
-#: config/tc-rx.c:221
-#, c-format
-msgid " --mno-allow-string-insns"
-msgstr " --mno-allow-string-insns"
-
-#: config/tc-rx.c:291
-msgid "no filename following .INCLUDE pseudo-op"
-msgstr "no hay un nombre de fichero a continuación del pseudo-operador .INCLUDE"
-
-#: config/tc-rx.c:392
-#, c-format
-msgid "unable to locate include file: %s"
-msgstr "no se puede localizar el fichero de inclusión: %s"
-
-#: config/tc-rx.c:443
-#, c-format
-msgid "unrecognised alignment value in .SECTION directive: %s"
-msgstr "no reconocido el valor de alineamiento en la directiva .SECTION: %s"
-
-#: config/tc-rx.c:460
-#, c-format
-msgid "unknown parameter following .SECTION directive: %s"
-msgstr "parámetro desconocido a continuación de la directiva .SECTION: %s"
-
-#: config/tc-rx.c:546
-msgid "expecting either ON or OFF after .list"
-msgstr "se espera ON u OFF tras .list"
-
-#: config/tc-rx.c:582
-#, c-format
-msgid "The \".%s\" pseudo-op is not implemented\n"
-msgstr "No se admite el pseudo-operador \".%s\"\n"
-
-#: config/tc-rx.c:954 config/tc-rx.c:956
-#, fuzzy, c-format
-#| msgid "value %ld out of range"
-msgid "Value %d and %d out of range"
-msgstr "valora %ld fuera de rango"
-
-#: config/tc-rx.c:1111
-msgid "The .DEFINE pseudo-op is not implemented"
-msgstr "No se admite el pseudo-operador .DEFINE"
-
-#: config/tc-rx.c:1113
-msgid "The .MACRO pseudo-op is not implemented"
-msgstr "No se admite el pseudo-operador .MACRO"
-
-#: config/tc-rx.c:1115
-msgid "The .BTEQU pseudo-op is not implemented."
-msgstr "El pseudo-op .BTEQU no está implementado."
-
-#: config/tc-rx.c:2107
-msgid "invalid immediate size"
-msgstr "tamaño inmediato inválido"
-
-#: config/tc-rx.c:2126
-msgid "invalid immediate field position"
-msgstr "posición de campo inmediato no válida"
-
-#: config/tc-rx.c:2293
-#, c-format
-msgid "jump not 3..10 bytes away (is %d)"
-msgstr "omisión no está a 3..10 bytes (es %d)"
-
-#: config/tc-rx.c:2684
-msgid "Use of an RX string instruction detected in a file being assembled without string instruction support"
-msgstr ""
-
-#: config/tc-s12z.c:146
-#, fuzzy
-#| msgid "FT32 options:\n"
-msgid ""
-"\n"
-"s12z options:\n"
-msgstr "Opciones FT32:\n"
-
-#: config/tc-s12z.c:147
-msgid " -mreg-prefix=PREFIX set a prefix used to indicate register names (default none)\n"
-msgstr ""
-
-#: config/tc-s12z.c:148
-msgid " -mdollar-hex the prefix '$' instead of '0x' is used to indicate literal hexadecimal constants\n"
-msgstr ""
-
-#: config/tc-s12z.c:315
-#, fuzzy
-#| msgid "non-constant expression in \".if\" statement"
-msgid "A non-constant expression is not permitted here"
-msgstr "expresión en declaración \".if\" no constante"
-
-#: config/tc-s12z.c:432
-#, fuzzy, c-format
-#| msgid "expecting {"
-msgid "Expecting '%c'"
-msgstr "esperando {"
-
-#: config/tc-s12z.c:455
-#, fuzzy
-#| msgid ": Immediate value in cbcond is out of range."
-msgid "An immediate value in a source operand is inappropriate"
-msgstr ": Valor inmediato dentro de ‘cbcond’ está fuera de rango."
-
-#: config/tc-s12z.c:504 config/tc-s12z.c:605
-#, fuzzy
-#| msgid "invalid operands for cross-unit op"
-msgid "Bad operand for constant offset"
-msgstr "operandos inválidos para op de unidades cruzadas"
-
-#: config/tc-s12z.c:532 config/tc-s12z.c:623
-#, fuzzy
-#| msgid "invalid base register for register offset"
-msgid "Invalid operand for register offset"
-msgstr "el registro base inválido para el desplazamiento del registro"
-
-#: config/tc-s12z.c:638
-#, fuzzy
-#| msgid "Invalid register for post/pre increment."
-msgid "Invalid register for postdecrement operation"
-msgstr "Registro inválido para post/pre incremento."
-
-#: config/tc-s12z.c:674
-#, fuzzy
-#| msgid "Invalid register for post/pre increment."
-msgid "Invalid register for preincrement operation"
-msgstr "Registro inválido para post/pre incremento."
-
-#: config/tc-s12z.c:692
-#, fuzzy
-#| msgid "Invalid register for post/pre increment."
-msgid "Invalid register for predecrement operation"
-msgstr "Registro inválido para post/pre incremento."
-
-#: config/tc-s12z.c:811
-#, fuzzy
-#| msgid "Garbage at end of instruction: `%s'."
-msgid "Garbage at end of instruction"
-msgstr "Basura al final de la instrucción: «%s»."
-
-#: config/tc-s12z.c:940
-#, fuzzy
-#| msgid "Offset out of 16-bit range: %ld."
-msgid "Offset is outside of 15 bit range"
-msgstr "Desplazamiento fuera del rango de 16-bit: %ld."
-
-#: config/tc-s12z.c:1056
-msgid "Bad size"
-msgstr ""
-
-#: config/tc-s12z.c:1101 config/tc-s12z.c:1161 config/tc-s12z.c:1223
-#: config/tc-s12z.c:1288
-msgid "BAD MUL"
-msgstr ""
-
-#: config/tc-s12z.c:1428
-#, fuzzy, c-format
-#| msgid "Use of r%u as a source register is deprecated when r%u is the destination register."
-msgid "Source register for %s is no larger than the destination register"
-msgstr "Utilización de r%u como registro origen es obsoleto cuando r%u es el registro destino."
-
-#: config/tc-s12z.c:1431
-#, fuzzy
-#| msgid "invalid source register list"
-msgid "The destination and source registers are identical"
-msgstr "invalida listado registrador origen"
-
-#: config/tc-s12z.c:1455
-#, fuzzy, c-format
-#| msgid "operand value out of range for instruction"
-msgid "Immediate value %ld is out of range for instruction %s"
-msgstr "el valor de operando está fuera de rango para la instrucción"
-
-#: config/tc-s12z.c:1526
-#, fuzzy, c-format
-#| msgid "Direct value of %ld is not suitable"
-msgid "trap value %ld is not valid"
-msgstr "El valor directo de %ld no es adecuado"
-
-#: config/tc-s12z.c:1966
-#, fuzzy
-#| msgid "immediate value out of range, expected range [0, 16]"
-msgid "Shift value should be in the range [0,31]"
-msgstr "valor inmediato fuera de rango, se esperaba el rango [0, 16]"
-
-#: config/tc-s12z.c:2013
-#, fuzzy
-#| msgid "invalid shift operator"
-msgid "Bad shift mode"
-msgstr "invalida operador desplazado"
-
-#: config/tc-s12z.c:2026
-#, fuzzy
-#| msgid "Bad .mask directive"
-msgid "Bad shift *direction"
-msgstr "Directiva .mask incorrecta"
-
-#: config/tc-s12z.c:2284
-#, fuzzy, c-format
-#| msgid "Immediate operand is not allowed for operand %d."
-msgid "Immediate operand %ld is inappropriate for size of instruction"
-msgstr "No se permite un operando inmediato para el operando %d."
-
-#: config/tc-s12z.c:2375 config/tc-s12z.c:2444 config/tc-s12z.c:2512
-#, fuzzy, c-format
-#| msgid "Invalid register value %s"
-msgid "Invalid width value for %s"
-msgstr "Valor de registro %s inválido"
-
-#: config/tc-s12z.c:2388 config/tc-s12z.c:2457 config/tc-s12z.c:2525
-#, fuzzy, c-format
-#| msgid "Invalid register value %s"
-msgid "Invalid offset value for %s"
-msgstr "Valor de registro %s inválido"
-
-#: config/tc-s12z.c:3822
-#, fuzzy, c-format
-#| msgid "Invalid instruction %s"
-msgid "Invalid instruction: \"%s\""
-msgstr "Instrucción %s no válida"
-
-#: config/tc-s12z.c:3823
-#, fuzzy, c-format
-#| msgid "invalid segment \"%s\""
-msgid "First invalid token: \"%s\""
-msgstr "segmento no válido «%s»"
-
-#: config/tc-s390.c:280 config/tc-sparc.c:310
-msgid "Invalid default architecture, broken assembler."
-msgstr "Arquitectura por defecto no válida, ensamblador descompuesto."
-
-#: config/tc-s390.c:426
-#, c-format
-msgid "no such machine extension `%s'"
-msgstr "no como extensión de máquina «%s»"
-
-#: config/tc-s390.c:437
-#, c-format
-msgid "junk at end of machine string, first unrecognized character is `%c'"
-msgstr "basura al final de la línea de máquina; el primer carácter inreconocible es «%c»"
-
-#: config/tc-s390.c:512 config/tc-sparc.c:489
-#, c-format
-msgid "invalid architecture -A%s"
-msgstr "arquitectura no válida -A%s"
-
-#: config/tc-s390.c:535
-#, c-format
-msgid ""
-"S390 options:\n"
-" -m31 generate 31-bit file format (31/32 bit word size)\n"
-" -m64 generate 64-bit file format (64 bit word size)\n"
-" -mesa assemble for Enterprise System Architecture/390\n"
-" -mzarch assemble for z/Architecture\n"
-" -march=<processor> assemble for processor <processor>\n"
-" -mregnames allow symbolic names for registers\n"
-" -mno-regnames do not allow symbolic names for registers\n"
-" -mwarn-areg-zero warn about base/index register zero\n"
-" -mwarn-regtype-mismatch=strict\n"
-" warn about register name type mismatches\n"
-" -mwarn-regtype-mismatch=relaxed\n"
-" warn about register name type mismatches,\n"
-" but allow FPR and VR to be used interchangeably\n"
-" -mno-warn-regtype-mismatch\n"
-" do not warn about register name type mismatches\n"
-msgstr ""
-
-#: config/tc-s390.c:553
-#, fuzzy, c-format
-#| msgid ""
-#| " -V print assembler version number\n"
-#| " -Qy, -Qn ignored\n"
-msgid ""
-" -V print assembler version number\n"
-" -Qy, -Qn ignored\n"
-msgstr ""
-" -V muestra el número de versión del ensamblador\n"
-" -Qy, -Qn se descarta\n"
-
-#: config/tc-s390.c:556
-#, c-format
-msgid ""
-"Deprecated S390 options:\n"
-" -Aesa assemble for processor IBM S/390 G5 (g5/arch3)\n"
-" -Aesame assemble for processor IBM zSeries 900 (z900/arch5)\n"
-msgstr ""
-
-#: config/tc-s390.c:635
-#, fuzzy
-#| msgid "The 64 bit file format is used without esame instructions."
-msgid "The 64-bit file format is used without z/Architecture instructions."
-msgstr "Se usa el formato de fichero de 64 bit sin instrucciones esame."
-
-#. xgettext:c-format.
-#: config/tc-s390.c:681
-#, fuzzy, c-format
-#| msgid "operand out of range (%d is not between %d and %d)"
-msgid "operand %d: operand out of range (%<PRId64> is not between %<PRId64> and %<PRId64>)"
-msgstr "operando fuera de rango (%d no está entre %d y %d)"
-
-#. xgettext:c-format.
-#: config/tc-s390.c:693
-#, fuzzy, c-format
-#| msgid "operand out of range (%d is not between %d and %d)"
-msgid "operand out of range (%<PRId64> is not between %<PRId64> and %<PRId64>)"
-msgstr "operando fuera de rango (%d no está entre %d y %d)"
-
-#: config/tc-s390.c:947
-#, c-format
-msgid "identifier+constant@%s means identifier@%s+constant"
-msgstr "identificador+constante@%s significa identificador@%s+constante"
-
-#: config/tc-s390.c:1028
-msgid "Can't handle O_big in s390_exp_compare"
-msgstr "No se puede manipular O_big en s390_exp_compare"
-
-#: config/tc-s390.c:1110
-msgid "Invalid suffix for literal pool entry"
-msgstr "Sufijo inválido para la entrada de conjunto de literales"
-
-#: config/tc-s390.c:1167
-msgid "Big number is too big"
-msgstr "El número grande es demasiado grande"
-
-#: config/tc-s390.c:1316
-msgid "relocation not applicable"
-msgstr "la reubicación no es aplicable"
-
-#: config/tc-s390.c:1331
-#, fuzzy
-#| msgid "# bars register"
-msgid "base register"
-msgstr "# prohibe el registro"
-
-#: config/tc-s390.c:1333
-#, fuzzy
-#| msgid "Wrong displacement %d"
-msgid "displacement"
-msgstr "Desplazamiento incorrecto %d"
-
-#: config/tc-s390.c:1337
-#, fuzzy
-#| msgid "unsupported vector index register"
-msgid "vector index register"
-msgstr "no se admite el registro de índice de vector"
-
-#: config/tc-s390.c:1339
-#, fuzzy
-#| msgid "invalid register"
-msgid "index register"
-msgstr "invalida registro"
-
-#: config/tc-s390.c:1342
-msgid "length"
-msgstr ""
-
-#: config/tc-s390.c:1344 config/tc-s390.c:1539
-#, fuzzy
-#| msgid "# bars register"
-msgid "access register"
-msgstr "# prohibe el registro"
-
-#: config/tc-s390.c:1346 config/tc-s390.c:1542
-#, fuzzy
-#| msgid "expecting control register"
-msgid "control register"
-msgstr "esperando registro de control"
-
-#: config/tc-s390.c:1348 config/tc-s390.c:1547
-#, fuzzy
-#| msgid "floating-point expression required"
-msgid "floating-point register"
-msgstr "requerida expresión de coma flotante"
-
-#: config/tc-s390.c:1350
-#, fuzzy
-#| msgid "invalid source register"
-msgid "general-purpose register"
-msgstr "invalida registro fuente"
-
-#: config/tc-s390.c:1352 config/tc-s390.c:1555
-#, fuzzy
-#| msgid "vector register expected"
-msgid "vector register"
-msgstr "vector registrador esperado"
-
-#: config/tc-s390.c:1356
-#, fuzzy
-#| msgid "invalid number"
-msgid "signed number"
-msgstr "número inválido"
-
-#: config/tc-s390.c:1358
-#, fuzzy
-#| msgid "unassigned file number %ld"
-msgid "unsigned number"
-msgstr "número de fichero %ld sin asignar"
-
-#: config/tc-s390.c:1479
-#, fuzzy, c-format
-#| msgid "illegal operand"
-msgid "operand %d: illegal operand"
-msgstr "operando ilegal"
-
-#: config/tc-s390.c:1484
-#, fuzzy, c-format
-#| msgid "missing operand"
-msgid "operand %d: missing %s operand"
-msgstr "ausente operando"
-
-#: config/tc-s390.c:1496 config/tc-s390.c:1660
-#, fuzzy, c-format
-#| msgid ":operand has too many bits"
-msgid "operand %d: too many fixups"
-msgstr ":operand tiene demasiadas bits"
-
-#: config/tc-s390.c:1506
-#, fuzzy, c-format
-#| msgid "invalid length field specified"
-msgid "operand %d: invalid length field specified"
-msgstr "longitud especificada de campo no válida"
-
-#: config/tc-s390.c:1511
-#, fuzzy, c-format
-#| msgid "index register specified but zero"
-msgid "operand %d: index register specified but zero"
-msgstr "se especificó el registro índice pero es cero"
-
-#: config/tc-s390.c:1516
-#, fuzzy, c-format
-#| msgid "base register specified but zero"
-msgid "operand %d: base register specified but zero"
-msgstr "se especificó el registro base pero es cero"
-
-#: config/tc-s390.c:1521
-#, fuzzy, c-format
-#| msgid "odd numbered general purpose register specified as register pair"
-msgid "operand %d: odd numbered general purpose register specified as register pair"
-msgstr "se especificaron registros de propósito general numerados impares como par de registro"
-
-#: config/tc-s390.c:1529
-#, fuzzy, c-format
-#| msgid "invalid floating point register pair. Valid fp register pair operands are 0, 1, 4, 5, 8, 9, 12 or 13."
-msgid "operand %d: invalid floating-point register (FPR) pair (valid FPR pair operands are 0, 1, 4, 5, 8, 9, 12 or 13)"
-msgstr "par de registro de coma flotante inválido. Los operandos de pares de registro fp válidos son 0, 1, 4, 5, 8, 9, 12 o 13."
-
-#: config/tc-s390.c:1550
-#, fuzzy
-#| msgid "invalid register"
-msgid "general register"
-msgstr "invalida registro"
-
-#: config/tc-s390.c:1560
-#, fuzzy, c-format
-#| msgid "Operand %d to .%s must be a writable register"
-msgid "operand %d: expected %s name as base register"
-msgstr "Operandos %d de .%s debe ser un registro modificable"
-
-#: config/tc-s390.c:1563
-#, fuzzy, c-format
-#| msgid "Operand %d to .%s must be a writable register"
-msgid "operand %d: expected %s name as index register"
-msgstr "Operandos %d de .%s debe ser un registro modificable"
-
-#: config/tc-s390.c:1566
-#, fuzzy, c-format
-#| msgid "operand %d out of range"
-msgid "operand %d: expected %s name"
-msgstr "operando %d fuera de rango"
-
-#: config/tc-s390.c:1656
-#, fuzzy, c-format
-#| msgid "invalid operand suffix"
-msgid "operand %d: invalid operand suffix"
-msgstr "sufijo de operando inválido"
-
-#: config/tc-s390.c:1680
-#, fuzzy, c-format
-#| msgid "syntax error; missing '(' after displacement"
-msgid "operand %d: syntax error; missing '(' after displacement"
-msgstr "error de sintaxis; ausente '(' tras desubicación"
-
-#: config/tc-s390.c:1701 config/tc-s390.c:1752 config/tc-s390.c:1797
-#, fuzzy, c-format
-#| msgid "syntax error; expected ','"
-msgid "operand %d: syntax error; expected ','"
-msgstr "error de sintaxis; esperado ','"
-
-#: config/tc-s390.c:1732
-#, fuzzy, c-format
-#| msgid "syntax error; missing ')' after base register"
-msgid "operand %d: syntax error; missing ')' after base register"
-msgstr "error de sintaxis; ausente ')' tras registro base"
-
-#: config/tc-s390.c:1776
-#, fuzzy, c-format
-#| msgid "syntax error; ')' not allowed here"
-msgid "operand %d: syntax error; '%c' not allowed here"
-msgstr "errór de sintaxis; ')' no se permite aquí"
-
-#: config/tc-s390.c:1933
-#, c-format
-msgid "Opcode %s not available in this mode"
-msgstr "El código de operación %s no está disponible en este modo"
-
-#: config/tc-s390.c:1978 config/tc-s390.c:2001 config/tc-s390.c:2014
-msgid "Invalid .insn format\n"
-msgstr "Formato .insn inválido\n"
-
-#: config/tc-s390.c:1986
-#, c-format
-msgid "Unrecognized opcode format: `%s'"
-msgstr "No reconocido el formato de código de operación: «%s»"
-
-#: config/tc-s390.c:2017
-msgid "second operand of .insn not a constant\n"
-msgstr "el segundo operando de .insn no es una constante\n"
-
-#: config/tc-s390.c:2020
-msgid "missing comma after insn constant\n"
-msgstr "falta coma tras la constante insn\n"
-
-#: config/tc-s390.c:2259
-msgid ".machinemode stack overflow"
-msgstr "desbordamiento superior .machinemode de pila"
-
-#: config/tc-s390.c:2266
-msgid ".machinemode stack underflow"
-msgstr "desbordamiento inferior .machinemode de pila"
-
-#: config/tc-s390.c:2283
-#, c-format
-msgid "invalid machine mode `%s'"
-msgstr "modo no válido de máquina «%s»"
-
-#: config/tc-s390.c:2605
-msgid "unsupported relocation type"
-msgstr "no se admite el tipo reubicado"
-
-# El mensaje no se puede traducir correctamente. El segundo parámetro
-# se sustituye por " against " sin traducir. cfuga
-#: config/tc-s390.c:2660
-#, c-format
-msgid "cannot emit PC relative %s relocation%s%s"
-msgstr "no se puede emitir la reubicación %s relativa al PC%s%s"
-
-#: config/tc-s390.c:2799
-#, c-format
-msgid "Gas failure, reloc type %s\n"
-msgstr "Fallo de gas, valor reubicado %s\n"
-
-#: config/tc-s390.c:2801
-#, c-format
-msgid "Gas failure, reloc type #%i\n"
-msgstr "Fallo de gas, tipo reubicado #%i\n"
-
-#: config/tc-score.c:256
-msgid "div / mul are reserved instructions"
-msgstr "div / mul son instrucciones reservadas"
-
-#: config/tc-score.c:257
-msgid "This architecture doesn't support mmu"
-msgstr "Esta arquitectura no admite mmu"
-
-#: config/tc-score.c:258
-msgid "This architecture doesn't support atomic instruction"
-msgstr "Esta arquitectura no admite la instrucción atomic"
-
-#: config/tc-score.c:464
-msgid "S+core register expected"
-msgstr "se esperaba un registro S+core"
-
-#: config/tc-score.c:465
-msgid "S+core special-register expected"
-msgstr "Se esperaba un registro especial S+core"
-
-#: config/tc-score.c:466
-msgid "S+core co-processor register expected"
-msgstr "Se esperaba un registro de coprocesador S+core"
-
-#: config/tc-score.c:1069
-msgid "Using temp register (r1)"
-msgstr "Utilizando registero (r1) temp"
-
-#: config/tc-score.c:1088
-#, c-format
-msgid "register expected, not '%.100s'"
-msgstr "se esperaba un registro, no '%.100s'"
-
-#: config/tc-score.c:1144 config/tc-score.c:5483
-msgid "rd must be even number."
-msgstr "rd debe ser un número par."
-
-#: config/tc-score.c:1508 config/tc-score.c:1515
-#, c-format
-msgid "invalid constant: %d bit expression not in range %u..%u"
-msgstr "constante no válida: la expresión de %d bit no está en el rango %u..%u"
-
-#: config/tc-score.c:1521 config/tc-score.c:1528 config/tc-score.c:2893
-#: config/tc-score.c:2898 config/tc-score.c:3163 config/tc-score.c:3168
-#: config/tc-score.c:3460
-#, c-format
-msgid "invalid constant: %d bit expression not in range %d..%d"
-msgstr "constante no válida: la expresión de %d bit no está en el rango %d..%d"
-
-#: config/tc-score.c:1553
-msgid "invalid constant: bit expression not defined"
-msgstr "constante no válida: la expresión de bit no está definida"
-
-#: config/tc-score.c:2063
-msgid "Using temp register(r1)"
-msgstr "Se usa register(r1) temporal"
-
-#: config/tc-score.c:2077
-#, c-format
-msgid "low register (r0-r15) expected, not '%.100s'"
-msgstr "se esperaba registro bajo (r0-r15), no '%.100s'"
-
-#: config/tc-score.c:2139 config/tc-score.c:3480 config/tc-score.c:3648
-#: config/tc-score.c:3693
-#, c-format
-msgid "missing ["
-msgstr "ausente ["
-
-#: config/tc-score.c:2153 config/tc-score.c:3101 config/tc-score.c:3303
-#: config/tc-score.c:3319 config/tc-score.c:3390 config/tc-score.c:3445
-#: config/tc-score.c:3669 config/tc-score.c:3714 config/tc-score.c:3863
-#: config/tc-score.c:3917 config/tc-score.c:3963
-#, c-format
-msgid "missing ]"
-msgstr "ausente ]"
-
-#: config/tc-score.c:2343
-#, c-format
-msgid "Fix data dependency: %s %s -- %s %s (insert %d nop!/%d)"
-msgstr "Dependencia de datos fija: %s %s -- %s %s (insertar %d nop!/%d’)"
-
-#: config/tc-score.c:2362
-#, c-format
-msgid "Fix data dependency: %s %s -- %s %s (insert 1 pflush/%d)"
-msgstr "Dependencia de datos fija: %s %s -- %s %s (insertar 1 `pflush/%d')"
-
-#: config/tc-score.c:2378 config/tc-score.c:2385
-#, c-format
-msgid "data dependency: %s %s -- %s %s (%d/%d bubble)"
-msgstr "dependencia de datos: %s %s -- %s %s (%d/%d burbujea)"
-
-#: config/tc-score.c:2836
-msgid "address offset must be half word alignment"
-msgstr "el desplazamiento direccional se debe alinear con half word"
-
-#: config/tc-score.c:2844
-msgid "address offset must be word alignment"
-msgstr "el desplazamiento direccional se debe alinear con word"
-
-#: config/tc-score.c:2984 config/tc-score.c:3121
-msgid "register same as write-back base"
-msgstr "el registro es el mismo que la base de retroescritura"
-
-#: config/tc-score.c:3091
-msgid "pre-indexed expression expected"
-msgstr "se esperaba una expresión pre-indexada"
-
-#: config/tc-score.c:3420
-#, c-format
-msgid "invalid register number: %d is not in [r0--r7]"
-msgstr "número de registro inválido: %d no está en [r0--r7]"
-
-#: config/tc-score.c:3437
-msgid "comma is expected"
-msgstr "se esperaba una coma"
-
-#: config/tc-score.c:3468
-#, c-format
-msgid "invalid constant: %d is not word align integer"
-msgstr "constante no válida: %d no es un entero alineado a word"
-
-#: config/tc-score.c:3507 config/tc-score.c:3550
-msgid "invalid constant: 32 bit expression not word align"
-msgstr "constante no válida: la expresión de 32 bit no está alineada a word"
-
-#: config/tc-score.c:3516 config/tc-score.c:3559
-msgid "invalid constant: 32 bit expression not in range [0, 0xffffffff]"
-msgstr "constante no válida: la expresión de 32 bit no está en el rango [0, 0xffffffff]"
-
-#: config/tc-score.c:3592
-msgid "invalid constant: 32 bit expression not in range [-0x80000000, 0x7fffffff]"
-msgstr "constante no válida: la expresión de 32 bit no está en el rango [-0x80000000, 0x7fffffff]"
-
-#: config/tc-score.c:3781 config/tc-score.c:3809
-msgid "imm5 should >= 2"
-msgstr "imm5 debe ser >= 2"
-
-#: config/tc-score.c:3786 config/tc-score.c:3815
-msgid "reg should <= 31"
-msgstr "reg debe ser ≤ 31"
-
-#: config/tc-score.c:3857 config/tc-score.c:3908
-msgid "missing +"
-msgstr "ausente +"
-
-#: config/tc-score.c:3901
-#, c-format
-msgid "%s register same as write-back base"
-msgstr "el registro %s es el mismo que la base de retroescritura"
-
-#: config/tc-score.c:3903
-msgid "destination"
-msgstr "destino"
-
-#: config/tc-score.c:3903
-msgid "source"
-msgstr "fuente"
-
-#: config/tc-score.c:4234 config/tc-score.c:4310 config/tc-score.c:4945
-msgid "expression error"
-msgstr "error de expresión"
-
-#: config/tc-score.c:4316
-msgid "value not in range [-0xffffffff, 0xffffffff]"
-msgstr "el valor no está en el rango [-0xffffffff, 0xffffffff]"
-
-#: config/tc-score.c:4344
-msgid "li rd label isn't correct instruction form"
-msgstr "etiqueta li rd no es relleno instruccional correcto"
-
-#: config/tc-score.c:4511 config/tc-score.c:4665 config/tc-score.c:5196
-#: config/tc-score.c:5224
-msgid "lacking label "
-msgstr "ausente la etiqueta "
-
-#: config/tc-score.c:4895
-msgid "s3_PIC code offset overflow (max 16 signed bits)"
-msgstr "s3_PIC como código de desbordamiento de desplazamiento (máx 16 bits con signo)"
-
-#: config/tc-score.c:4951
-msgid "value not in range [0, 0x7fffffff]"
-msgstr "el valor no está en el rango [0, 0x7fffffff]"
-
-#: config/tc-score.c:4956
-msgid "end on line error"
-msgstr "error de final de línea"
-
-#: config/tc-score.c:5203
-msgid "invalid constant: 25 bit expression not in range [-16777216, 16777215]"
-msgstr "constante no válida: la expresión de 25 bit no está en el rango [-16777216, 16777215]"
-
-#: config/tc-score.c:5230
-msgid "invalid constant: 20 bit expression not in range -2^19..2^19-1"
-msgstr "invalida constante: expresión de 20 bit no dentro del rango -2^19..2^19-1"
-
-#: config/tc-score.c:5263
-msgid "lacking label"
-msgstr "ausente la etiqueta"
-
-#: config/tc-score.c:5268
-msgid "invalid constant: 10 bit expression not in range [-2^9, 2^9-1]"
-msgstr "constante no válida: la expresión de 10 bit no está en el rango [-2^9, 2^9-1]"
-
-#: config/tc-score.c:5363
-msgid "pce instruction error (16 bit || 16 bit)."
-msgstr "error de instrucción pce (16 bit || 16 bit)."
-
-#: config/tc-score.c:5381 config/tc-score.c:5405 config/tc-score.c:5432
-#: config/tc-score.c:5461 config/tc-score.c:5510
-msgid "score3d instruction."
-msgstr "la instrucción score3d."
-
-#: config/tc-score.c:6000
-msgid "Unsupported use of .gpword"
-msgstr "No se admite el uso de .gpword"
-
-#: config/tc-score.c:6096
-#, c-format
-msgid "BSS length (%d) < 0 ignored"
-msgstr "Longitud BSS (%d) <0 se descarta"
-
-#: config/tc-score.c:6110 read.c:2558
-#, c-format
-msgid "error setting flags for \".sbss\": %s"
-msgstr "error al establecer marcas para \".sbss\": %s"
-
-#: config/tc-score.c:6124 config/tc-sparc.c:4164
-msgid "missing alignment"
-msgstr "ausente la alineamiento"
-
-#: config/tc-score.c:6161
-#, c-format
-msgid "alignment too large; %d assumed"
-msgstr "alineamiento demasiado grande; se asume %d"
-
-#: config/tc-score.c:6166 read.c:2619
-msgid "alignment negative; 0 assumed"
-msgstr "alineamiento negativo; asumido 0"
-
-#. Error routine.
-#: config/tc-score.c:6526 config/tc-score.c:6550
-msgid "size is not 4 or 6"
-msgstr "el tamaño no es 4 o 6"
-
-#: config/tc-score.c:6609
-msgid "bad call to MD_ATOF()"
-msgstr "llamada incorrecta a MD_ATOF()"
-
-#: config/tc-score.c:7108 config/tc-score.c:7174
-#, c-format
-msgid " branch relocation truncate (0x%x) [-2^9 ~ 2^9-1]"
-msgstr " la reubicación de ramificación trunca (0x%x) [-2^9 ~ 2^9-1]"
-
-#: config/tc-score.c:7123 config/tc-score.c:7152 config/tc-score.c:7204
-#, c-format
-msgid " branch relocation truncate (0x%x) [-2^19 ~ 2^19-1]"
-msgstr " la reubicación de ramificación trunca (0x%x) [-2^19 ~ 2^19-1]"
-
-#: config/tc-score.c:7229
-#, c-format
-msgid " branch relocation truncate (0x%x) [-2^9 ~ 2^9-1]"
-msgstr " la reubicación de ramificación trunca (0x%x) [-2^9 ~ 2^9-1]"
-
-#: config/tc-score.c:7399
-#, c-format
-msgid "cannot represent %s relocation in this object file format1"
-msgstr "no se puede representar la reubicación %s en este fichero objeto format1"
-
-#: config/tc-score.c:7690
-#, c-format
-msgid "Sunplus-v2-0-0-20060510\n"
-msgstr "Sunplus-v2-0-0-20060510\n"
-
-#: config/tc-score.c:7710
-#, c-format
-msgid " Score-specific assembler options:\n"
-msgstr " Opciones de ensamblador específicas de Score:\n"
-
-#: config/tc-score.c:7712
-#, c-format
-msgid " -EB\t\tassemble code for a big-endian cpu\n"
-msgstr " -EB\t\tensambla código para un cpu big-endian\n"
-
-#: config/tc-score.c:7717
-#, c-format
-msgid " -EL\t\tassemble code for a little-endian cpu\n"
-msgstr " -EL\t\tensambla código para un cpu little-endian\n"
-
-#: config/tc-score.c:7721
-#, c-format
-msgid " -FIXDD\t\tfix data dependencies\n"
-msgstr " -FIXDD\t\t ajusta datos dependientes\n"
-
-#: config/tc-score.c:7723
-#, c-format
-msgid " -NWARN\t\tdo not print warning message when fixing data dependencies\n"
-msgstr " -NWARN\t\t ensambla código para que no avise sobre dependencia de datos fijo\n"
-
-#: config/tc-score.c:7725
-#, c-format
-msgid " -SCORE5\t\tassemble code for target SCORE5\n"
-msgstr " -SCORE5\t\t ensambla código para el destino SCORE5\n"
-
-#: config/tc-score.c:7727
-#, c-format
-msgid " -SCORE5U\tassemble code for target SCORE5U\n"
-msgstr " -SCORE5U\tensambla código para el objetivo SCORE5U\n"
-
-#: config/tc-score.c:7729
-#, c-format
-msgid " -SCORE7\t\tassemble code for target SCORE7 [default]\n"
-msgstr " -SCORE5\t\tensambla código para el objetivo SCORE7 [predet.]\n"
-
-#: config/tc-score.c:7731
-#, c-format
-msgid " -SCORE3\t\tassemble code for target SCORE3\n"
-msgstr " -SCORE3\t\t ensambla código para el objetivo SCORE5U\n"
-
-#: config/tc-score.c:7733
-#, c-format
-msgid " -march=score7\tassemble code for target SCORE7 [default]\n"
-msgstr " -march=score7\t ensambla código para el objetivo SCORE7 [predet.]\n"
-
-#: config/tc-score.c:7735
-#, c-format
-msgid " -march=score3\tassemble code for target SCORE3\n"
-msgstr " -march=score3\tensambla código para el objetivo SCORE3\n"
-
-#: config/tc-score.c:7737
-#, c-format
-msgid " -USE_R1\t\tassemble code for no warning message when using temp register r1\n"
-msgstr " -USE_R1\t\tensambla código para que no avise cuando se usa el registro temporal r1\n"
-
-#: config/tc-score.c:7739
-#, c-format
-msgid " -KPIC\t\tgenerate PIC\n"
-msgstr " -KPIC\t\tgenera PIC\n"
-
-#: config/tc-score.c:7741
-#, c-format
-msgid " -O0\t\tdo not perform any optimizations\n"
-msgstr " -O0\t\tno realizar ninguna optimización\n"
-
-#: config/tc-score.c:7743
-#, c-format
-msgid " -G gpnum\tassemble code for setting gpsize, default is 8 bytes\n"
-msgstr " -G gpnum\tensambla código para definir gpsize y por defecto es 8 byte\n"
-
-#: config/tc-score.c:7745
-#, c-format
-msgid " -V \t\tSunplus release version\n"
-msgstr " -V \t\tVersión Sunplus publicada\n"
-
-#: config/tc-sh.c:61
-msgid "directive .big encountered when option -big required"
-msgstr "se encontró una directiva .big cuando se requirió una opción -big"
-
-#: config/tc-sh.c:71
-msgid "directive .little encountered when option -little required"
-msgstr "se encontró una directiva .little cuando se requirió una opción -little"
-
-#: config/tc-sh.c:1025
-msgid "illegal double indirection"
-msgstr "doble indirección ilegal"
-
-#: config/tc-sh.c:1034
-msgid "illegal register after @-"
-msgstr "el registro ilegal tras @-"
-
-#: config/tc-sh.c:1050
-msgid "must be @(r0,...)"
-msgstr "debe ser @(r0,...)"
-
-#: config/tc-sh.c:1074
-msgid "syntax error in @(r0,...)"
-msgstr "error de sintaxis en @(r0,...)"
-
-#: config/tc-sh.c:1079
-msgid "syntax error in @(r0...)"
-msgstr "error de sintaxis en @(r0...)"
-
-#: config/tc-sh.c:1124
-msgid "Deprecated syntax."
-msgstr "Sintaxis obsoleta."
-
-#: config/tc-sh.c:1136 config/tc-sh.c:1141
-msgid "syntax error in @(disp,[Rn, gbr, pc])"
-msgstr "error de sintaxis en @(disp,[Rn, gbr, pc])"
-
-#: config/tc-sh.c:1146
-msgid "expecting )"
-msgstr "se esperaba )"
-
-#: config/tc-sh.c:1154
-msgid "illegal register after @"
-msgstr "el registro ilegal tras @"
-
-#: config/tc-sh.c:1780
-#, c-format
-msgid "unhandled %d\n"
-msgstr "%d sin manipular\n"
-
-#: config/tc-sh.c:1993
-#, c-format
-msgid "Invalid register: 'r%d'"
-msgstr "Registro inválido: 'r%d'"
-
-#: config/tc-sh.c:2106
-#, c-format
-msgid "failed for %d\n"
-msgstr "falló para %d\n"
-
-#: config/tc-sh.c:2112
-msgid "misplaced PIC operand"
-msgstr "operando PIC mal ubicado"
-
-#: config/tc-sh.c:2223 config/tc-sh.c:2596
-msgid "invalid operands for opcode"
-msgstr "operandos inválidos para el código de operación"
-
-#: config/tc-sh.c:2228
-msgid "insn can't be combined with parallel processing insn"
-msgstr "las insns no se pueden combinar con insns de procesamiento paralelo"
-
-#: config/tc-sh.c:2235 config/tc-sh.c:2246 config/tc-sh.c:2278
-msgid "multiple movx specifications"
-msgstr "especificaciones movx múltiples"
-
-#: config/tc-sh.c:2240 config/tc-sh.c:2262 config/tc-sh.c:2301
-msgid "multiple movy specifications"
-msgstr "especificaciones movy múltiples"
-
-#: config/tc-sh.c:2249 config/tc-sh.c:2282
-msgid "invalid movx address register"
-msgstr "el registro direccional movx inválido"
-
-#: config/tc-sh.c:2251
-msgid "insn cannot be combined with non-nopy"
-msgstr "las insns no se pueden combinar con las que no son nopy"
-
-#: config/tc-sh.c:2265 config/tc-sh.c:2321
-msgid "invalid movy address register"
-msgstr "el registro direccional movy inválido"
-
-#: config/tc-sh.c:2267
-msgid "insn cannot be combined with non-nopx"
-msgstr "las insns no se pueden combinar con las que no son nopx"
-
-#: config/tc-sh.c:2280
-msgid "previous movy requires nopx"
-msgstr "el movy previo requiere nopx"
-
-#: config/tc-sh.c:2288 config/tc-sh.c:2293
-msgid "invalid movx dsp register"
-msgstr "el registro dsp movx inválido"
-
-#: config/tc-sh.c:2303
-msgid "previous movx requires nopy"
-msgstr "el movx previo requiere nopy"
-
-#: config/tc-sh.c:2312 config/tc-sh.c:2317
-msgid "invalid movy dsp register"
-msgstr "el registro dsp movy inválido"
-
-#: config/tc-sh.c:2327
-msgid "dsp immediate shift value not constant"
-msgstr "el valor de desplazamiento inmediato dsp no es constante"
-
-#: config/tc-sh.c:2341 config/tc-sh.c:2367
-msgid "multiple parallel processing specifications"
-msgstr "especificaciones múltiples de procesamiento paralelo"
-
-#: config/tc-sh.c:2360
-msgid "multiple condition specifications"
-msgstr "especificaciones múltiples de condición"
-
-#: config/tc-sh.c:2398
-msgid "insn cannot be combined with pmuls"
-msgstr "la insn no se pueden combinar con pmuls"
-
-#: config/tc-sh.c:2414
-msgid "bad combined pmuls output operand"
-msgstr "operando de salida pmuls mal combinado"
-
-#: config/tc-sh.c:2424
-msgid "destination register is same for parallel insns"
-msgstr "el registro de destino es el mismo para insns paralelas"
-
-#: config/tc-sh.c:2433
-msgid "condition not followed by conditionalizable insn"
-msgstr "la condición no está seguida por una insn condicionalizable"
-
-#: config/tc-sh.c:2443
-msgid "unrecognized characters at end of parallel processing insn"
-msgstr "no se reconocen los caracteres al final de la insn de procesamiento paralelo"
-
-#: config/tc-sh.c:2535
-msgid "opcode not valid for this cpu variant"
-msgstr "el código de operación no es válido para esta variante de cpu"
-
-#: config/tc-sh.c:2566
-msgid "Delayed branches not available on SH1"
-msgstr "Las ramificaciones postergadas no están disponibles en SH1"
-
-#: config/tc-sh.c:2601
-#, c-format
-msgid "excess operands: '%s'"
-msgstr "exceso de operandos: «%s»"
-
-#: config/tc-sh.c:2678
-msgid ".uses pseudo-op seen when not relaxing"
-msgstr "se vio el pseudo-operador .uses cuando no se estaba relajando"
-
-#: config/tc-sh.c:2684
-msgid "bad .uses format"
-msgstr "formato de .uses incorrecto"
-
-#: config/tc-sh.c:2802
-#, c-format
-msgid "Invalid argument to --isa option: %s"
-msgstr "Argumento inválido para la opción --isa: %s"
-
-#: config/tc-sh.c:2826
-#, c-format
-msgid ""
-"SH options:\n"
-"--little\t\tgenerate little endian code\n"
-"--big\t\t\tgenerate big endian code\n"
-"--relax\t\t\talter jump instructions for long displacements\n"
-"--renesas\t\tdisable optimization with section symbol for\n"
-"\t\t\tcompatibility with Renesas assembler.\n"
-"--small\t\t\talign sections to 4 byte boundaries, not 16\n"
-"--dsp\t\t\tenable sh-dsp insns, and disable floating-point ISAs.\n"
-"--allow-reg-prefix\tallow '$' as a register name prefix.\n"
-"--isa=[any\t\tuse most appropriate isa\n"
-" | dsp same as '-dsp'\n"
-" | fp"
-msgstr ""
-"Opciones de SH:\n"
-"--little\t\t\tgenera código little endian\n"
-"--big\t\t\tgenera código big endian\n"
-"--relax\t\t\taltera las instrucciones de salto para\n"
-"\t\t\tdesubicaciones long\n"
-"--renesas\t\tdesactiva la optimización con símbolos de\n"
-"\t\t\tsección por compatibilidad con el ensamblador Renesas.\n"
-"--small\t\t\talinea las secciones a límites de 4 bytes, no 16\n"
-"--dsp\t\t\tactiva insns sh-dsp, y desactiva ISAs de coma flotante.\n"
-"--isa=[any\t\tusa la isa más apropiada\n"
-" | dsp igual que '-dsp'\n"
-" | fp"
-
-#: config/tc-sh.c:2851
-#, c-format
-msgid "--fdpic\t\t\tgenerate an FDPIC object file\n"
-msgstr "--fdpic\t\t\tgenera un fichero objeto FDPIC\n"
-
-#: config/tc-sh.c:2927
-msgid ".uses does not refer to a local symbol in the same section"
-msgstr ".uses no se refiere a un símbolo local en la misma sección"
-
-#: config/tc-sh.c:2946
-msgid "can't find fixup pointed to by .uses"
-msgstr "no se puede encontrar la compostura señalada por .uses"
-
-#: config/tc-sh.c:2966
-msgid ".uses target does not refer to a local symbol in the same section"
-msgstr "el objetivo .uses no se refiere a un símbolo local en la misma sección"
-
-#: config/tc-sh.c:3039
-msgid "displacement overflows 12-bit field"
-msgstr "la desubicación desborda el campo de 12-bit"
-
-#: config/tc-sh.c:3042
-#, c-format
-msgid "displacement to defined symbol %s overflows 12-bit field"
-msgstr "desplazamiento para símbolo %s definido sobredesborda el campo de 12-bit"
-
-#: config/tc-sh.c:3046
-#, c-format
-msgid "displacement to undefined symbol %s overflows 12-bit field"
-msgstr "la desubicación del símbolo indefinido %s desborda el campo de 12-bit"
-
-#: config/tc-sh.c:3119
-msgid "displacement overflows 8-bit field"
-msgstr "la desubicación desborda el campo de 8-bit"
-
-#: config/tc-sh.c:3122
-#, c-format
-msgid "displacement to defined symbol %s overflows 8-bit field"
-msgstr "la desubicación del símbolo definido %s desborda el campo de 8-bits"
-
-#: config/tc-sh.c:3126
-#, c-format
-msgid "displacement to undefined symbol %s overflows 8-bit field "
-msgstr "desplazamiento a símbolo %s indefinido sobredesborda campo de 8-bit "
-
-#: config/tc-sh.c:3139
-#, c-format
-msgid "overflow in branch to %s; converted into longer instruction sequence"
-msgstr "desbordamiento en la ramificación a %s; se convirtió en una secuencia de instrucciones más larga"
-
-#: config/tc-sh.c:3204 config/tc-sh.c:3251 config/tc-sparc.c:4628
-#: config/tc-sparc.c:4652
-msgid "misaligned data"
-msgstr "datos desalineados"
-
-#: config/tc-sh.c:3557
-msgid "offset to unaligned destination"
-msgstr "desplazamiento a destino desalineado"
-
-#: config/tc-sh.c:3562
-msgid "negative offset"
-msgstr "desplazamiento negativo"
-
-#: config/tc-sh.c:3702
-msgid "misaligned offset"
-msgstr "desplazamiento desalineado"
-
-#: config/tc-sparc.c:314 config/tc-sparc.c:495
-msgid "Bad opcode table, broken assembler."
-msgstr "Tabla de códigos operacionales incorrecta, ensamblador descompuesto."
-
-#: config/tc-sparc.c:487
-#, c-format
-msgid "invalid architecture -xarch=%s"
-msgstr "arquitectura -xarch=%s no válida"
-
-#: config/tc-sparc.c:561
-#, c-format
-msgid "No compiled in support for %d bit object file format"
-msgstr "No se compiló el soporte para el formato de fichero objeto de %d bit"
-
-#: config/tc-sparc.c:645
-#, c-format
-msgid "SPARC options:\n"
-msgstr "Opciones SPARC:\n"
-
-#: config/tc-sparc.c:674
-#, c-format
-msgid ""
-"\n"
-"\t\t\tspecify variant of SPARC architecture\n"
-"-bump\t\t\twarn when assembler switches architectures\n"
-"-sparc\t\t\tignored\n"
-"--enforce-aligned-data\tforce .long, etc., to be aligned correctly\n"
-"-relax\t\t\trelax jumps and branches (default)\n"
-"-no-relax\t\tavoid changing any jumps and branches\n"
-msgstr ""
-"\n"
-"\t\t\tespecifica la variante de la arquitectura SPARC\n"
-"-bump\t\t\tavisa cuando el ensamblador cambia entre arquitecturas\n"
-"-sparc\t\t\tse descarta\n"
-"--enforce-aligned-data\tfuerza .long, etc., a ser alineados correctamente\n"
-"-relax\t\t\trelaja saltos y ramificaciones (por defecto)\n"
-"-no-relax\t\tevita modificar cualquier omisión y ramificación\n"
-
-#: config/tc-sparc.c:681
-#, c-format
-msgid ""
-"-32\t\t\tcreate 32 bit object file\n"
-"-64\t\t\tcreate 64 bit object file\n"
-msgstr ""
-"-32\t\t\tcrea ficheros objeto de 32 bits\n"
-"-64\t\t\tcrea ficheros objeto de 64 bits\n"
-
-#: config/tc-sparc.c:684
-#, c-format
-msgid "\t\t\t[default is %d]\n"
-msgstr "\t\t\t[por defecto es %d]\n"
-
-#: config/tc-sparc.c:686
-#, c-format
-msgid ""
-"-TSO\t\t\tuse Total Store Ordering\n"
-"-PSO\t\t\tuse Partial Store Ordering\n"
-"-RMO\t\t\tuse Relaxed Memory Ordering\n"
-msgstr ""
-"-TSO\t\t\tusa el Ordenamiento de Almacenamiento Total\n"
-"-PSO\t\t\tusa el Ordenamiento de Almacenamiento Parcial\n"
-"-RMO\t\t\tusa el Ordenamiento de Memoria Relajado\n"
-
-#: config/tc-sparc.c:690
-#, c-format
-msgid "\t\t\t[default is %s]\n"
-msgstr "\t\t\t[por defecto es %s]\n"
-
-#: config/tc-sparc.c:692
-#, c-format
-msgid ""
-"-KPIC\t\t\tgenerate PIC\n"
-"-V\t\t\tprint assembler version number\n"
-"-undeclared-regs\tignore application global register usage without\n"
-"\t\t\tappropriate .register directive (default)\n"
-"-no-undeclared-regs\tforce error on application global register usage\n"
-"\t\t\twithout appropriate .register directive\n"
-"--dcti-couples-detect\twarn when an unpredictable DCTI couple is found\n"
-"-q\t\t\tignored\n"
-"-Qy, -Qn\t\tignored\n"
-"-s\t\t\tignored\n"
-msgstr ""
-"-KPIC\t\t\t genera PIC\n"
-"-V\t\t\t escribe el número de versión del ensamblador\n"
-"-undeclared-regs\t descarta el uso del registro global de aplicaciones sin\n"
-"\t\t\t directiva .register apropiada (por defecto)\n"
-"-no-undeclared-regs\t fuerza un error en el uso del registro global de\n"
-"\t\t\t aplicaciones sin una directiva .register apropiada\n"
-"-q\t\t\t se descarta\n"
-"-Qy, -Qn\t\t se descarta\n"
-"-s\t\t\t se descarta\n"
-
-#: config/tc-sparc.c:704
-#, c-format
-msgid ""
-"-EL\t\t\tgenerate code for a little endian machine\n"
-"-EB\t\t\tgenerate code for a big endian machine\n"
-"--little-endian-data\tgenerate code for a machine having big endian\n"
-" instructions and little endian data.\n"
-msgstr ""
-"-EL\t\t\tgenera código para una máquina little endian\n"
-"-EB\t\t\tgenera código para una máquina big endian\n"
-"--little-endian-data\tgenera código para una máquina que tenga\n"
-" instrucciones big endian y datos little endian.\n"
-
-#: config/tc-sparc.c:968
-#, c-format
-msgid "Internal error: losing opcode: `%s' \"%s\"\n"
-msgstr "Error interno: se pierde el código de operación: «%s» «%s»\n"
-
-#: config/tc-sparc.c:987
-#, c-format
-msgid "Internal error: can't find opcode `%s' for `%s'\n"
-msgstr "Error interno: no se puede encontrar el código de operación «%s» para «%s»\n"
-
-#: config/tc-sparc.c:1203
-msgid "Support for 64-bit arithmetic not compiled in."
-msgstr "No se compiló el soporte para aritmética de 64-bit."
-
-#: config/tc-sparc.c:1249
-msgid "set: number not in 0..4294967295 range"
-msgstr "conjunto: el número no está en el rango 0..4294967295"
-
-#: config/tc-sparc.c:1256
-msgid "set: number not in -2147483648..4294967295 range"
-msgstr "conjunto: el número no está en el rango -2147483648..4294967295"
-
-#: config/tc-sparc.c:1315
-msgid "setsw: number not in -2147483648..4294967295 range"
-msgstr "conjunto sw: el número no está en el rango -2147483648..4294967295"
-
-#: config/tc-sparc.c:1363
-msgid "setx: temporary register same as destination register"
-msgstr "setx: el registro temporal es el mismo que el registro destino"
-
-#: config/tc-sparc.c:1434
-msgid "setx: illegal temporary register g0"
-msgstr "setx: registro temporal ilegal g0"
-
-#: config/tc-sparc.c:1542
-msgid "unpredictable DCTI couple"
-msgstr "pareja DCTI impredecible"
-
-#: config/tc-sparc.c:1552
-msgid "FP branch in delay slot"
-msgstr "FP ramificado en ranura retrasada"
-
-#: config/tc-sparc.c:1569
-#, fuzzy
-#| msgid "FP branch preceded by FP instruction; NOP inserted"
-msgid "FP branch preceded by FP compare; NOP inserted"
-msgstr "FP ramificado precedió por instrucción FP; se insertó NOP"
-
-#: config/tc-sparc.c:1609
-msgid "failed special case insn sanity check"
-msgstr "la inspección sanitaria de la insn case especial ha fallado"
-
-#: config/tc-sparc.c:1797
-msgid ": invalid membar mask name"
-msgstr ": nombre inválido de máscara membar"
-
-#: config/tc-sparc.c:1813
-msgid ": invalid membar mask expression"
-msgstr ": expresión no válida de máscara membar"
-
-#: config/tc-sparc.c:1818
-msgid ": invalid membar mask number"
-msgstr ": número inválido de máscara membar"
-
-#: config/tc-sparc.c:1833
-msgid ": invalid siam mode expression"
-msgstr ": modo expresiva siam no válida"
-
-#: config/tc-sparc.c:1838
-msgid ": invalid siam mode number"
-msgstr ": modo numérico siam inválido"
-
-#: config/tc-sparc.c:1854
-msgid ": invalid prefetch function name"
-msgstr ": nombre de función de precargado inválido"
-
-#: config/tc-sparc.c:1862
-msgid ": invalid prefetch function expression"
-msgstr ": expresión de función de precargado no válida"
-
-#: config/tc-sparc.c:1867
-msgid ": invalid prefetch function number"
-msgstr ": número de función de precargado inválido"
-
-#: config/tc-sparc.c:1894 config/tc-sparc.c:1900 config/tc-sparc.c:1909
-msgid ": unrecognizable privileged register"
-msgstr ": registro privilegiado no reconocido"
-
-#: config/tc-sparc.c:1932 config/tc-sparc.c:1938 config/tc-sparc.c:1947
-msgid ": unrecognizable hyperprivileged register"
-msgstr ": registro hiperprivilegiado no reconocido"
-
-#: config/tc-sparc.c:1970 config/tc-sparc.c:1976 config/tc-sparc.c:1985
-msgid ": unrecognizable ancillary state register"
-msgstr ": registro estatal auxiliar no reconocible"
-
-#: config/tc-sparc.c:2018
-msgid ": asr number must be between 0 and 31"
-msgstr ": el número asr debe estar entre 0 y 31"
-
-#: config/tc-sparc.c:2027
-#, c-format
-msgid ": expecting %asrN"
-msgstr ": suponiendo %asrN"
-
-#: config/tc-sparc.c:2069
-msgid ": crypto immediate must be between 0 and 31"
-msgstr ": cripto inmediato debe estar entre 0 y 31"
-
-#: config/tc-sparc.c:2078
-msgid ": expecting crypto immediate"
-msgstr ": suponiendo criptograma inmediato"
-
-#: config/tc-sparc.c:2239 config/tc-sparc.c:2278 config/tc-sparc.c:2706
-#: config/tc-sparc.c:2742
-#, c-format
-msgid "Illegal operands: %%%s requires arguments in ()"
-msgstr "Operandos ilegales: %%%s requiere de argumentos en ()"
-
-#: config/tc-sparc.c:2246
-#, c-format
-msgid "Illegal operands: %%%s cannot be used together with other relocs in the insn ()"
-msgstr "Operandos ilegales: %%%s no se pueden usar junto con otras reubicaciones en la insn ()"
-
-#: config/tc-sparc.c:2257
-#, c-format
-msgid "Illegal operands: %%%s can be only used with call __tls_get_addr"
-msgstr "Operandos ilegales: %%%s solo se pueden usar con la llamada __tls_get_addr"
-
-#: config/tc-sparc.c:2464
-msgid "detected global register use not covered by .register pseudo-op"
-msgstr "se detectó el uso de un registro global que no está cubierto por el pseudo-operador .register"
-
-#: config/tc-sparc.c:2566
-msgid ": There are only 64 f registers; [0-63]"
-msgstr ": Solamente hay 64 registros f; [0-63]"
-
-#: config/tc-sparc.c:2568 config/tc-sparc.c:2586
-msgid ": There are only 32 f registers; [0-31]"
-msgstr ": Solamente hay 32 registros f; [0-31]"
-
-#: config/tc-sparc.c:2578
-msgid ": There are only 32 single precision f registers; [0-31]"
-msgstr ": Solamente hay 32 registros f de precisión sencilla; [0-31]"
-
-#: config/tc-sparc.c:2631
-msgid ": Instruction requires frs2 and frsd must be the same register"
-msgstr ": Instrucción requiere frs2 y frsd deben estar el mismo registro"
-
-#: config/tc-sparc.c:2751
-#, c-format
-msgid "Expression inside %%%s could not be parsed"
-msgstr "Expresión interna %%%s no pudo ser interpretado"
-
-#: config/tc-sparc.c:2759
-#, c-format
-msgid "Illegal operands: Can't do arithmetics other than + and - involving %%%s()"
-msgstr "Operandos ilegales: No se puede hacer aritmética aparte de + y - que involucre %%%s()"
-
-#: config/tc-sparc.c:2876
-#, c-format
-msgid "Illegal operands: Can't add non-constant expression to %%%s()"
-msgstr "Operandos ilegales: No se puede añadir una expresión que no es constante a %%%s()"
-
-#: config/tc-sparc.c:2886
-#, c-format
-msgid "Illegal operands: Can't do arithmetics involving %%%s() of a relocatable symbol"
-msgstr "Operandos ilegales: No se puede hacer aritmética que involucre a %%%s() de un símbolo reubicable"
-
-#: config/tc-sparc.c:2904
-msgid ": PC-relative operand can't be a constant"
-msgstr ": operando relativo a PC no puede ser una constante"
-
-#: config/tc-sparc.c:2911
-msgid ": TLS operand can't be a constant"
-msgstr ": operando TLS no puede ser una constante"
-
-#: config/tc-sparc.c:2939
-msgid ": Immediate value in cbcond is out of range."
-msgstr ": Valor inmediato dentro de ‘cbcond’ está fuera de rango."
-
-#: config/tc-sparc.c:2965
-msgid ": invalid ASI name"
-msgstr ": nombre ASI inválido"
-
-#: config/tc-sparc.c:2974
-msgid ": invalid ASI expression"
-msgstr ": expresión ASI no válida"
-
-#: config/tc-sparc.c:2979
-msgid ": invalid ASI number"
-msgstr ": número ASI inválido"
-
-#: config/tc-sparc.c:3084
-msgid ": non-immdiate imm2 operand"
-msgstr ": operando imm2 no inmediato"
-
-#: config/tc-sparc.c:3089
-msgid ": imm2 immediate operand out of range (0-3)"
-msgstr ": operando inmediato imm2 fuera de rango (0-3)"
-
-#: config/tc-sparc.c:3108
-msgid "OPF immediate operand out of range (0-0x1ff)"
-msgstr "Operando inmediato OPF fuera de rango (0-0x1ff)"
-
-#: config/tc-sparc.c:3113
-msgid "non-immediate OPF operand, ignored"
-msgstr "operando OPF que no es inmediato, se descarta"
-
-#: config/tc-sparc.c:3132
-msgid ": invalid cpreg name"
-msgstr ": nombre cpreg inválido"
-
-#: config/tc-sparc.c:3161
-#, c-format
-msgid "Illegal operands%s"
-msgstr "Operandos ilegales%s"
-
-#: config/tc-sparc.c:3210
-#, c-format
-msgid "architecture bumped from \"%s\" to \"%s\" on \"%s\""
-msgstr "la arquitectura saltó de «%s» a «%s» en «%s»"
-
-#: config/tc-sparc.c:3251
-#, c-format
-msgid "Architecture mismatch on \"%s %s\"."
-msgstr "Arquitectura incoherente en \"%s %s\"."
-
-#: config/tc-sparc.c:3252
-#, c-format
-msgid "(Requires %s; requested architecture is %s.)"
-msgstr "(Requiere %s; arquitectura solicitada es %s.)"
-
-#: config/tc-sparc.c:3264
-#, c-format
-msgid "Hardware capability \"%s\" not enabled for \"%s\"."
-msgstr "La capacidad de hardware «%s» no se activó para «%s»."
-
-#: config/tc-sparc.c:3650 config/tc-sparc.c:3657 config/tc-sparc.c:3664
-#: config/tc-sparc.c:3671 config/tc-sparc.c:3678 config/tc-sparc.c:3687
-#: config/tc-sparc.c:3699 config/tc-sparc.c:3710 config/tc-sparc.c:3732
-#: config/tc-sparc.c:3756 write.c:1211
-msgid "relocation overflow"
-msgstr "desbordamiento de reubicación"
-
-#: config/tc-sparc.c:3811
-#, c-format
-msgid "bad or unhandled relocation type: 0x%02x"
-msgstr "tipo reubicado incorrecta o sin manipular: 0x%02x"
-
-#: config/tc-sparc.c:4126
-msgid "Expected comma after name"
-msgstr "Se esperaba una coma tras nombre"
-
-#: config/tc-sparc.c:4135
-#, c-format
-msgid "BSS length (%d.) <0! Ignored."
-msgstr "¡Longitud BSS (%d.) <0! Se descarta."
-
-#: config/tc-sparc.c:4147
-msgid "bad .reserve segment -- expected BSS segment"
-msgstr "segmento .reserve incorrecto -- se esperaba el segmento BSS"
-
-#: config/tc-sparc.c:4173 config/tc-sparc.c:4300
-msgid "negative alignment"
-msgstr "alineamiento negativa"
-
-#: config/tc-sparc.c:4183 config/tc-sparc.c:4321 read.c:1588 read.c:2631
-msgid "alignment not a power of 2"
-msgstr "la alineamiento no es una potencia de 2"
-
-#: config/tc-sparc.c:4229
-#, c-format
-msgid "Ignoring attempt to re-define symbol %s"
-msgstr "Se ignora el intento de redefinir el símbolo %s"
-
-#: config/tc-sparc.c:4252 config/tc-v850.c:280
-msgid "Expected comma after symbol-name"
-msgstr "Se esperaba una coma tras nombre del símbolo"
-
-#: config/tc-sparc.c:4262
-#, c-format
-msgid ".COMMon length (%lu) out of range ignored"
-msgstr "longitud .COMMún (%lu) fuera de rango descartado"
-
-#: config/tc-sparc.c:4288
-msgid "Expected comma after common length"
-msgstr "Se esperaba una coma tras la longitud común"
-
-#: config/tc-sparc.c:4433
-msgid "Unknown segment type"
-msgstr "Tipo de segmento desconocido"
-
-#: config/tc-sparc.c:4502 config/tc-sparc.c:4511
-#, c-format
-msgid "register syntax is .register %%g[2367],{#scratch|symbolname|#ignore}"
-msgstr "la sintaxis de registro es .register %%g[2367],{#scratch|nombresimbolo|#ignore}"
-
-#: config/tc-sparc.c:4529
-msgid "redefinition of global register"
-msgstr "redefinición del registro global"
-
-#: config/tc-sparc.c:4540
-#, c-format
-msgid "Register symbol %s already defined."
-msgstr "El símbolo de registro %s ya estaba definido."
-
-#: config/tc-sparc.c:4742
-#, c-format
-msgid "Illegal operands: %%r_plt in %d-byte data field"
-msgstr "Operandos ilegales: %%r_plt en el campo de datos de %d-bytes"
-
-#: config/tc-sparc.c:4752
-#, c-format
-msgid "Illegal operands: %%r_tls_dtpoff in %d-byte data field"
-msgstr "Operandos ilegales: %%r_tls_dtpoff en el campo de datos de %d-bytes"
-
-#: config/tc-sparc.c:4789 config/tc-vax.c:3271
-#, c-format
-msgid "Illegal operands: Only %%r_%s%d allowed in %d-byte data fields"
-msgstr "Operandos ilegales: solo se permite %%r_%s%d en campos de datos de %d-bytes"
-
-#: config/tc-sparc.c:4797 config/tc-sparc.c:4828 config/tc-sparc.c:4837
-#: config/tc-vax.c:3279 config/tc-vax.c:3310 config/tc-vax.c:3319
-#, c-format
-msgid "Illegal operands: %%r_%s%d requires arguments in ()"
-msgstr "Operandos ilegales: %%r_%s%d requiere argumentos en ()"
-
-#: config/tc-sparc.c:4846 config/tc-vax.c:3328
-#, c-format
-msgid "Illegal operands: garbage after %%r_%s%d()"
-msgstr "Operandos ilegales: hay basura tras %%r_%s%d()"
-
-#: config/tc-sparc.h:66
-msgid "sparc convert_frag\n"
-msgstr "convert_frag de sparc\n"
-
-#: config/tc-sparc.h:68 config/tc-z80.h:54
-msgid "estimate_size_before_relax called"
-msgstr "se llamó a estimate_size_before_relax"
-
-#: config/tc-spu.c:172
-msgid ""
-"SPU options:\n"
-" --apuasm\t\t emulate behaviour of apuasm\n"
-msgstr ""
-"Opciones de SPU:\n"
-" --apuasm\t\t emula el comportamiento de apuasm\n"
-
-#: config/tc-spu.c:278
-#, c-format
-msgid "Invalid mnemonic '%s'"
-msgstr "Mnemónico inválido «%s»"
-
-#: config/tc-spu.c:284
-#, c-format
-msgid "'%s' is only available in DD2.0 or higher."
-msgstr "«%s» solo es disponible en DD2.0 o superior."
-
-#: config/tc-spu.c:316
-#, c-format
-msgid "Error in argument %d. Expecting: \"%s\""
-msgstr "Error en el argumento %d. Se esperaba: «%s»"
-
-#: config/tc-spu.c:327
-msgid "Mixing register syntax, with and without '$'."
-msgstr "Se mezcla la sintaxis del registro, con y sin '$'."
-
-#: config/tc-spu.c:333
-#, c-format
-msgid "Treating '%-*s' as a symbol."
-msgstr "Tratando '%-*s' como un símbolo."
-
-#: config/tc-spu.c:552
-msgid "'SPU_RdEventMask' (channel 11) is only available in DD2.0 or higher."
-msgstr "'SPU_RdEventMask' (canal 11) solo es disponible en DD2.0 o superior."
-
-#: config/tc-spu.c:554
-msgid "'MFC_RdTagMask' (channel 12) is only available in DD2.0 or higher."
-msgstr "'MFC_RdTagMask' (canal 12) solo es disponible en DD2.0 o superior."
-
-#: config/tc-spu.c:598
-#, c-format
-msgid "Using old style, %%lo(expr), please change to PPC style, expr@l."
-msgstr "Utilizando estilo antiguo, %%lo(expr), por favor modifique al estilo PPC, expr@l."
-
-#: config/tc-spu.c:604
-#, c-format
-msgid "Using old style, %%hi(expr), please change to PPC style, expr@h."
-msgstr "Utilizando estilo antiguo, %%hi(expr), por favor modifique al estilo PPC, expr@h."
-
-#: config/tc-spu.c:674 config/tc-spu.c:677
-#, c-format
-msgid "Constant expression %d out of range, [%d, %d]."
-msgstr "Expresión constante %d fuera de rango, [%d, %d]."
-
-#: config/tc-spu.c:779
-#, c-format
-msgid "invalid priority '%lu'"
-msgstr "prioridad no válida '%lu'"
-
-#: config/tc-spu.c:785
-#, c-format
-msgid "invalid lrlive '%lu'"
-msgstr "invalida ‘lrlive’ '%lu'"
-
-#: config/tc-spu.c:859
-msgid "Relaxation should never occur"
-msgstr "La relajación nunca debe ocurrir"
-
-#: config/tc-spu.c:1004
-#, c-format
-msgid "Relocation doesn't fit. (relocation value = 0x%lx)"
-msgstr "La reubicación no cabe. (valor reubicado = 0x%lx)"
-
-#: config/tc-spu.h:85
-msgid "spu convert_frag\n"
-msgstr "convert_frag de spu\n"
-
-#: config/tc-tic30.c:36
-msgid "first"
-msgstr "primero"
-
-#: config/tc-tic30.c:36
-msgid "second"
-msgstr "segundo"
-
-#: config/tc-tic30.c:36
-msgid "third"
-msgstr "tercero"
-
-#: config/tc-tic30.c:36
-msgid "fourth"
-msgstr "cuarto"
-
-#: config/tc-tic30.c:36
-msgid "fifth"
-msgstr "quinto"
-
-#: config/tc-tic30.c:460
-msgid "More than one AR register found in indirect reference"
-msgstr "Se encontró más un registro AR en la referencia indirecta"
-
-#: config/tc-tic30.c:466
-msgid "Illegal AR register in indirect reference"
-msgstr "Registro AR ilegal en la referencia indirecta"
-
-#: config/tc-tic30.c:487
-msgid "More than one displacement found in indirect reference"
-msgstr "Se encontró más de un desplazamiento en la referencia indirecta"
-
-#: config/tc-tic30.c:496
-msgid "Invalid displacement in indirect reference"
-msgstr "Desplazamiento inválido en la referencia indirecta"
-
-#: config/tc-tic30.c:514
-msgid "AR register not found in indirect reference"
-msgstr "No se encontró el registro AR en la referencia indirecta"
-
-#. Maybe an implied displacement of 1 again.
-#: config/tc-tic30.c:531
-msgid "required displacement wasn't given in indirect reference"
-msgstr "no se dio el desplazamiento requerido en la referencia indirecta"
-
-#: config/tc-tic30.c:538
-msgid "illegal indirect reference"
-msgstr "referencia indirecta ilegal"
-
-#: config/tc-tic30.c:545
-msgid "displacement must be an unsigned 8-bit number"
-msgstr "el desplazamiento debe ser un número de 8-bit sin signo"
-
-#: config/tc-tic30.c:729 config/tc-tic30.c:1475
-#, c-format
-msgid "Invalid character %s before %s operand"
-msgstr "Carácter inválido %s antes de operando %s"
-
-#: config/tc-tic30.c:748 config/tc-tic30.c:1490
-#, c-format
-msgid "Unbalanced parenthesis in %s operand."
-msgstr "Paréntesis sin balancear en operando %s."
-
-#: config/tc-tic30.c:764 config/tc-tic30.c:1500
-#, c-format
-msgid "Invalid character %s in %s operand"
-msgstr "Carácter inválido %s en operando %s"
-
-#: config/tc-tic30.c:783 config/tc-tic30.c:1517
-#, c-format
-msgid "Spurious operands; (%d operands/instruction max)"
-msgstr "Operandos espurios; (%d operandos/instrucción máximo)"
-
-#. Just skip it, if it's \n complain.
-#: config/tc-tic30.c:801 config/tc-tic30.c:817 config/tc-tic30.c:1534
-#: config/tc-tic30.c:1550
-msgid "Expecting operand after ','; got nothing"
-msgstr "Se esperaba un operando tras ','; se obtuvo nada"
-
-#: config/tc-tic30.c:806 config/tc-tic30.c:1539
-msgid "Expecting operand before ','; got nothing"
-msgstr "Se esperaba un operando antes de ','; se obtuvo nada"
-
-#: config/tc-tic30.c:844
-msgid "incorrect number of operands given in the first instruction"
-msgstr "número de operandos dados incorrecto en la primera instrucción"
-
-#: config/tc-tic30.c:850
-msgid "incorrect number of operands given in the second instruction"
-msgstr "número de operandos dados incorrecto en la segunda instrucción"
-
-#: config/tc-tic30.c:871
-#, c-format
-msgid "%s instruction, operand %d doesn't match"
-msgstr "la instrucción %s, operando %d no coincide"
-
-#. Shouldn't get here.
-#: config/tc-tic30.c:895 config/tc-tic30.c:902
-msgid "incorrect format for multiply parallel instruction"
-msgstr "formato incorrecto para la instrucción paralela multiply"
-
-#: config/tc-tic30.c:909
-msgid "destination for multiply can only be R0 or R1"
-msgstr "el destino para multiply solo puede ser R0 o R1"
-
-#: config/tc-tic30.c:916
-msgid "destination for add/subtract can only be R2 or R3"
-msgstr "el destino para add/substract solo puede ser R2 o R3"
-
-#: config/tc-tic30.c:983
-msgid "loading the same register in parallel operation"
-msgstr "se carga el mismo registro en la operación paralela"
-
-#: config/tc-tic30.c:1425
-#, c-format
-msgid "Invalid character %s in opcode"
-msgstr "Carácter inválido %s en el código de operación"
-
-#: config/tc-tic30.c:1455
-#, c-format
-msgid "Unknown TMS320C30 instruction: %s"
-msgstr "Instrucción TMS320C30 desconocida: %s"
-
-#: config/tc-tic30.c:1575
-msgid "Incorrect number of operands given"
-msgstr "Número incorrecto de operandos dados"
-
-#: config/tc-tic30.c:1608
-#, c-format
-msgid "The %s operand doesn't match"
-msgstr "Operando %s no coincide"
-
-#. Shouldn't make it to this stage.
-#: config/tc-tic30.c:1633 config/tc-tic30.c:1645
-msgid "Incompatible first and second operands in instruction"
-msgstr "Primer y segundo operandos incompatibles en la instrucción"
-
-#: config/tc-tic30.c:1759
-msgid "invalid short form floating point immediate operand"
-msgstr "forma short no válida de operando inmediato de coma flotante"
-
-#: config/tc-tic30.c:1769
-msgid "rounding down first operand float to unsigned int"
-msgstr "se redondea hacia abajo el primer operando de coma flotante a entero sin signo"
-
-#: config/tc-tic30.c:1771
-msgid "only lower 16-bits of first operand are used"
-msgstr "solo se usan los 16 bits inferiores del primer operando"
-
-#: config/tc-tic30.c:1781
-msgid "rounding down first operand float to signed int"
-msgstr "se redondea hacia aboajo el primer operando de coma flotante a entero con signo"
-
-#: config/tc-tic30.c:1786 config/tc-tic30.c:1857
-msgid "first operand is too large for 16-bit signed int"
-msgstr "el primer operando es demasiado grande para entero con signo de 16-bit"
-
-#: config/tc-tic30.c:1851
-msgid "first operand is floating point"
-msgstr "el primer operando es número de coma flotante"
-
-#. Shouldn't get here.
-#: config/tc-tic30.c:1882
-msgid "interrupt vector for trap instruction out of range"
-msgstr "el vector de interrupción para la instrucción trap está fuera de rango"
-
-#: config/tc-tic30.c:1927
-msgid "LDP instruction needs a 24-bit operand"
-msgstr "La instrucción LDP requiere un operando de 24-bit"
-
-#: config/tc-tic30.c:1951
-msgid "first operand is too large for a 24-bit displacement"
-msgstr "el primer operando es demasiado grande para un desplazamiento de 24-bit"
-
-#: config/tc-tic4x.c:390
-msgid "Nan, using zero."
-msgstr "Nan, se usa cero."
-
-#: config/tc-tic4x.c:508
-#, c-format
-msgid "Cannot represent exponent in %d bits"
-msgstr "No se puede representar el exponente en %d bits"
-
-#: config/tc-tic4x.c:591 config/tc-tic4x.c:601
-msgid "Invalid floating point number"
-msgstr "Número de coma flotante inválido"
-
-#: config/tc-tic4x.c:722
-msgid "Comma expected\n"
-msgstr "Se esperaba una coma\n"
-
-#: config/tc-tic4x.c:756 config/tc-tic54x.c:498
-msgid ".bss size argument missing\n"
-msgstr "Ausente el tamaño del argumento .bss\n"
-
-#: config/tc-tic4x.c:764
-#, c-format
-msgid ".bss size %ld < 0!"
-msgstr "¡Tamaño de .bss %ld < 0!"
-
-#: config/tc-tic4x.c:897
-msgid "Non-constant symbols not allowed\n"
-msgstr "No se permiten símbolos que no sean constantes\n"
-
-#: config/tc-tic4x.c:928
-msgid "Symbol missing\n"
-msgstr "Ausente símbolo\n"
-
-#. Skip null symbol terminator.
-#: config/tc-tic4x.c:976
-msgid ".sect: subsection name ignored"
-msgstr ".sect: se ignora el nombre de la subsección"
-
-#: config/tc-tic4x.c:1004 config/tc-tic4x.c:1105 config/tc-tic54x.c:1482
-#, c-format
-msgid "Error setting flags for \"%s\": %s"
-msgstr "Error al establecer las casillas para «%s»: %s"
-
-#: config/tc-tic4x.c:1036
-msgid ".set syntax invalid\n"
-msgstr "sintaxis de .set no válida\n"
-
-#: config/tc-tic4x.c:1094
-msgid ".usect: non-zero alignment flag ignored"
-msgstr ".usect: se descarta la opción de alineamiento que no es cero"
-
-#: config/tc-tic4x.c:1125
-#, c-format
-msgid "This assembler does not support processor generation %ld"
-msgstr "Este ensamblador no admite la generación de procesador %ld"
-
-#: config/tc-tic4x.c:1129
-msgid "Changing processor generation on fly not supported..."
-msgstr "No se admite la generación de cambio del procesador al vuelo..."
-
-#: config/tc-tic4x.c:1416
-msgid "Auxiliary register AR0--AR7 required for indirect"
-msgstr "Se requiere un registro auxiliar AR0--AR7 para el indirecto"
-
-#: config/tc-tic4x.c:1430
-#, c-format
-msgid "Bad displacement %d (require 0--255)\n"
-msgstr "Desplazamiento %d incorrecto (se requiere 0--255)\n"
-
-#: config/tc-tic4x.c:1448
-msgid "Index register IR0,IR1 required for displacement"
-msgstr "Se requiere un registro índice IR0,IR1 para el desplazamiento"
-
-#: config/tc-tic4x.c:1516
-msgid "Expecting a register name"
-msgstr "Se espera un nombre de registro"
-
-#: config/tc-tic4x.c:1528 config/tc-tic4x.c:1551 config/tc-tic4x.c:1617
-msgid "Number too large"
-msgstr "Número demasiado grande"
-
-#: config/tc-tic4x.c:1541 config/tc-tic4x.c:1564
-msgid "Expecting a constant value"
-msgstr "Se espera un valor constante"
-
-#: config/tc-tic4x.c:1572
-#, c-format
-msgid "Bad direct addressing construct %s"
-msgstr "Construcción de direccionamiento directo %s incorrecta"
-
-#: config/tc-tic4x.c:1576
-#, c-format
-msgid "Direct value of %ld is not suitable"
-msgstr "El valor directo de %ld no es adecuado"
-
-#: config/tc-tic4x.c:1600
-msgid "Unknown indirect addressing mode"
-msgstr "Desconoce modo de direccionamiento indirecto %s"
-
-#: config/tc-tic4x.c:1697
-#, c-format
-msgid "Immediate value of %ld is too large for ldf"
-msgstr "El valor inmediato de %ld es demasiado grande para ldf"
-
-#: config/tc-tic4x.c:1737
-msgid "Destination register must be ARn"
-msgstr "El registro destino debe ser ARn"
-
-#: config/tc-tic4x.c:1756 config/tc-tic4x.c:2129 config/tc-tic4x.c:2188
-#, c-format
-msgid "Immediate value of %ld is too large"
-msgstr "El valor inmediato de %ld es demasiado grande"
-
-#: config/tc-tic4x.c:1785 config/tc-tic4x.c:1990
-msgid "Invalid indirect addressing mode"
-msgstr "Modo de direccionamiento indirecto inválido"
-
-#: config/tc-tic4x.c:1809 config/tc-tic4x.c:1849 config/tc-tic4x.c:2040
-#: config/tc-tic4x.c:2062
-msgid "Register must be Rn"
-msgstr "El registro debe ser Rn"
-
-#: config/tc-tic4x.c:1863 config/tc-tic4x.c:1933 config/tc-tic4x.c:1947
-msgid "Register must be R0--R7"
-msgstr "El registro debe ser R0--R7"
-
-#: config/tc-tic4x.c:1887 config/tc-tic4x.c:1915
-#, c-format
-msgid "Invalid indirect addressing mode displacement %d"
-msgstr "Desplazamiento de modo de direccionamiento indirecto %d inválido"
-
-#: config/tc-tic4x.c:1961
-msgid "Destination register must be R2 or R3"
-msgstr "El registro destino debe ser R2 o R3"
-
-#: config/tc-tic4x.c:1975
-msgid "Destination register must be R0 or R1"
-msgstr "El registro destino debe ser R0 o R1"
-
-#: config/tc-tic4x.c:2012
-#, c-format
-msgid "Displacement value of %ld is too large"
-msgstr "El valor de desplazamiento de %ld es demasiado grande"
-
-#: config/tc-tic4x.c:2073 config/tc-tic4x.c:2204
-msgid "Floating point number not valid in expression"
-msgstr "El número de coma flotante no es válido en la expresión"
-
-#: config/tc-tic4x.c:2087
-#, c-format
-msgid "Signed immediate value %ld too large"
-msgstr "El valor inmediato con signo %ld es demasiado grande"
-
-#: config/tc-tic4x.c:2150
-#, c-format
-msgid "Unsigned immediate value %ld too large"
-msgstr "El valor inmediato sin signo %ld es demasiado grande"
-
-#: config/tc-tic4x.c:2218
-#, c-format
-msgid "Immediate value %ld too large"
-msgstr "El valor inmediato de %ld es demasiado grande"
-
-#: config/tc-tic4x.c:2237 config/tc-tic4x.c:2265
-msgid "Register must be ivtp or tvtp"
-msgstr "El registro debe ser ivtp o tvtp"
-
-#: config/tc-tic4x.c:2251
-msgid "Register must be address register"
-msgstr "El registro debe ser un registro direccional"
-
-#: config/tc-tic4x.c:2324
-msgid "Source and destination register should not be equal"
-msgstr "Los registros fuente y destino no deben ser iguales"
-
-#: config/tc-tic4x.c:2339
-#, fuzzy
-#| msgid "Equal parallell destination registers, one result will be discarded"
-msgid "Equal parallel destination registers, one result will be discarded"
-msgstr "Los registros de destino paralelo son iguales, un resultado se descartará"
-
-#: config/tc-tic4x.c:2380
-msgid "Too many operands scanned"
-msgstr "Se analizaron demasiados operandos"
-
-#: config/tc-tic4x.c:2411
-msgid "Parallel opcode cannot contain more than two instructions"
-msgstr "El código de operación paralelo no puede contener más de dos instrucciones"
-
-#: config/tc-tic4x.c:2485
-#, c-format
-msgid "Invalid operands for %s"
-msgstr "Operandos inválidos para %s"
-
-#: config/tc-tic4x.c:2488
-#, c-format
-msgid "Invalid instruction %s"
-msgstr "Instrucción %s no válida"
-
-#: config/tc-tic4x.c:2640
-#, c-format
-msgid "Bad relocation type: 0x%02x"
-msgstr "Tipo de reubicación incorrecto: 0x%02x"
-
-#: config/tc-tic4x.c:2698
-#, c-format
-msgid "Unsupported processor generation %d"
-msgstr "No se admite la generación de procesador %d"
-
-#: config/tc-tic4x.c:2706
-msgid "Option -b is depreciated, please use -mbig"
-msgstr "La opción -b es obsoleta, por favor utilice -mbig"
-
-#: config/tc-tic4x.c:2713
-msgid "Option -p is depreciated, please use -mmemparm"
-msgstr "La opción -p es obsoleta, por favor utilice -mmemparm"
-
-#: config/tc-tic4x.c:2720
-msgid "Option -r is depreciated, please use -mregparm"
-msgstr "La opción -r es obsoleta, por favor utilice -mregparm"
-
-#: config/tc-tic4x.c:2727
-msgid "Option -s is depreciated, please use -msmall"
-msgstr "La opción -s es obsoleta, por favor utilice -msmall"
-
-#: config/tc-tic4x.c:2756
-#, c-format
-msgid ""
-"\n"
-"TIC4X options:\n"
-" -mcpu=CPU -mCPU select architecture variant. CPU can be:\n"
-" 30 - TMS320C30\n"
-" 31 - TMS320C31, TMS320LC31\n"
-" 32 - TMS320C32\n"
-" 33 - TMS320VC33\n"
-" 40 - TMS320C40\n"
-" 44 - TMS320C44\n"
-" -mrev=REV set cpu hardware revision (integer numbers).\n"
-" Combinations of -mcpu and -mrev will enable/disable\n"
-" the appropriate options (-midle2, -mlowpower and\n"
-" -menhanced) according to the selected type\n"
-" -mbig select big memory model\n"
-" -msmall select small memory model (default)\n"
-" -mregparm select register parameters (default)\n"
-" -mmemparm select memory parameters\n"
-" -midle2 enable IDLE2 support\n"
-" -mlowpower enable LOPOWER and MAXSPEED support\n"
-" -menhanced enable enhanced opcode support\n"
-msgstr ""
-"\n"
-"Opciones de TIC4X:\n"
-" -mcpu=CPU -mCPU selecciona variante de arquitectura. CPU puede ser:\n"
-" 30 - TMS320C30\n"
-" 31 - TMS320C31, TMS320LC31\n"
-" 32 - TMS320C32\n"
-" 33 - TMS320VC33\n"
-" 40 - TMS320C40\n"
-" 44 - TMS320C44\n"
-" -mrev=REV define la revisión de hardware de cpu (num enteros).\n"
-" Las combinaciones de -mcpu y -mrev will activarán\n"
-" o desctivarán las casillas apropiadas (-midle2,\n"
-" -mlowpower y -menhanced) de acuerdo al tipo escogido\n"
-" -mbig selecciona el modelo de memoria big\n"
-" -msmall selecciona el modelo de memoria small (por defecto)\n"
-" -mregparm selecciona parámetros de registro (por defecto)\n"
-" -mmemparm selecciona parámetros de memoria\n"
-" -midle2 activa el soporte para IDLE2\n"
-" -mlowpower activa el soporte para LOPOWER y MAXSPEED\n"
-" -menhanced activa el soporte para códigos operacionales mejorados\n"
-
-#: config/tc-tic4x.c:2801
-#, c-format
-msgid "Label \"$%d\" redefined"
-msgstr "Etiqueta «$%d» redefinida"
-
-#: config/tc-tic4x.c:3010
-#, c-format
-msgid "Reloc %d not supported by object file format"
-msgstr "El formato del fichero objeto no admite la reubicación %d"
-
-#. Only word (et al.), align, or conditionals are allowed within
-#. .struct/.union.
-#: config/tc-tic54x.c:242
-msgid "pseudo-op illegal within .struct/.union"
-msgstr "pseudo-operación ilegal dentro de .struct/.union"
-
-#: config/tc-tic54x.c:256
-#, c-format
-msgid "C54x-specific command line options:\n"
-msgstr "Opciones de línea de mandatos específicas de C54x:\n"
-
-#: config/tc-tic54x.c:257
-#, c-format
-msgid "-mfar-mode | -mf Use extended addressing\n"
-msgstr "-mfar-mode | -mf Utiliza direccionamiento extendido\n"
-
-#: config/tc-tic54x.c:258
-#, c-format
-msgid "-mcpu=<CPU version> Specify the CPU version\n"
-msgstr "-mcpu=<versión CPU> Especifica la versión del CPU\n"
-
-#: config/tc-tic54x.c:259
-#, c-format
-msgid "-merrors-to-file <filename>\n"
-msgstr "-merrors-to-file <nombre fichero>\n"
-
-#: config/tc-tic54x.c:260
-#, c-format
-msgid "-me <filename> Redirect errors to a file\n"
-msgstr "-me <nombre fichero> Redirige los errores a un fichero\n"
-
-#: config/tc-tic54x.c:373
-msgid "Comma and symbol expected for '.asg STRING, SYMBOL'"
-msgstr "Se esperaban una coma y un símbolo para '.asg CADENA, SÃMBOLO'"
-
-#: config/tc-tic54x.c:385
-msgid "symbols assigned with .asg must begin with a letter"
-msgstr "los símbolos asignados con .asg deben comenzar con una letra"
-
-#: config/tc-tic54x.c:423
-msgid "Unterminated string after absolute expression"
-msgstr "Cadena sin terminar tras una expresión absoluta"
-
-#: config/tc-tic54x.c:431
-msgid "Comma and symbol expected for '.eval EXPR, SYMBOL'"
-msgstr "Se esperaban una coma y un símbolo para '.eval EXPR, SÃMBOLO'"
-
-#: config/tc-tic54x.c:439
-msgid "symbols assigned with .eval must begin with a letter"
-msgstr "los símbolos asignados con .eval deben comenzar con una letra"
-
-#: config/tc-tic54x.c:507
-#, c-format
-msgid ".bss size %d < 0!"
-msgstr "¡Tamaño de .bss %d < 0!"
-
-#: config/tc-tic54x.c:693
-msgid "Offset on nested structures is ignored"
-msgstr "Se descarta el desplazamiento en estructuras anidadas"
-
-#: config/tc-tic54x.c:743
-#, c-format
-msgid ".end%s without preceding .%s"
-msgstr ".end%s sin un .%s precedente"
-
-#: config/tc-tic54x.c:809
-#, c-format
-msgid "Unrecognized struct/union tag '%s'"
-msgstr "No reconocida la marca de struct/union «%s»"
-
-#: config/tc-tic54x.c:811
-msgid ".tag requires a structure tag"
-msgstr ".tag requiere una estructura tag"
-
-#: config/tc-tic54x.c:817
-msgid "Label required for .tag"
-msgstr "Se requiere una etiqueta para .tag"
-
-#: config/tc-tic54x.c:836
-#, c-format
-msgid ".tag target '%s' undefined"
-msgstr "el objetivo .tag «%s» no está definido"
-
-#: config/tc-tic54x.c:900
-#, c-format
-msgid ".field count '%d' out of range (1 <= X <= 32)"
-msgstr "la cuenta de .field '%d' está fuera de rango (1 ≤ X ≤ 32)"
-
-#: config/tc-tic54x.c:928
-#, c-format
-msgid "Unrecognized field type '%c'"
-msgstr "No reconocido el tipo de campo '%c'"
-
-#: config/tc-tic54x.c:1052
-msgid "Overflow in expression, truncated to 8 bits"
-msgstr "Desbordamiento en la expresión, se trunca a 8 bit"
-
-#: config/tc-tic54x.c:1057
-msgid "Overflow in expression, truncated to 16 bits"
-msgstr "Desbordamiento en la expresión, se trunca a 16 bit"
-
-#. Disallow .byte with a non constant expression that will
-#. require relocation.
-#: config/tc-tic54x.c:1065
-msgid "Relocatable values require at least WORD storage"
-msgstr "Los valores reubicables requieren por lo menos almacenamiento WORD"
-
-#: config/tc-tic54x.c:1126
-msgid "Use of .def/.ref is deprecated. Use .global instead"
-msgstr "El uso de .def/.ref es obsoleto. Utilice en su lugar .global"
-
-#: config/tc-tic54x.c:1345
-msgid ".space/.bes repeat count is negative, ignored"
-msgstr "La cuenta de repetición .space/.bes es negativa, se descarta"
-
-#: config/tc-tic54x.c:1350
-msgid ".space/.bes repeat count is zero, ignored"
-msgstr "La cuenta de repetición .space/.bes es cero, se descarta"
-
-#: config/tc-tic54x.c:1423
-msgid "Missing size argument"
-msgstr "Ausente el tamaño del argumento"
-
-#: config/tc-tic54x.c:1557
-msgid "CPU version has already been set"
-msgstr "La versión de CPU ya se había establecido"
-
-#: config/tc-tic54x.c:1561
-#, c-format
-msgid "Unrecognized version '%s'"
-msgstr "Versión no reconocida «%s»"
-
-#: config/tc-tic54x.c:1567
-msgid "Changing of CPU version on the fly not supported"
-msgstr "No se admite mmodificar la versión del CPU al vuelo"
-
-#: config/tc-tic54x.c:1698
-msgid "p2align not supported on this target"
-msgstr "No se admite p2align en este destino"
-
-#: config/tc-tic54x.c:1710
-msgid "Argument to .even ignored"
-msgstr "Se descarta el argumento para .even"
-
-#: config/tc-tic54x.c:1756
-msgid "Invalid field size, must be from 1 to 32"
-msgstr "Tamaño de campo inválido, debe ser de 1 a 32"
-
-#: config/tc-tic54x.c:1769
-msgid "field size must be 16 when value is relocatable"
-msgstr "el tamaño del campo debe ser 16 cuando el valor es reubicable"
-
-#: config/tc-tic54x.c:1784
-msgid "field value truncated"
-msgstr "se trunca valor del campo"
-
-#: config/tc-tic54x.c:1890 config/tc-tic54x.c:2176
-#, c-format
-msgid "Unrecognized section '%s'"
-msgstr "No reconocida sección «%s»"
-
-#: config/tc-tic54x.c:1899
-msgid "Current section is uninitialized, section name required for .clink"
-msgstr "La sección actual está no inicializada, se requirió el nombre de sección para .clink"
-
-#: config/tc-tic54x.c:2087
-msgid "ENDLOOP without corresponding LOOP"
-msgstr "ENDLOOP sin un LOOP correspondiente"
-
-#: config/tc-tic54x.c:2128
-msgid "Mixing of normal and extended addressing not supported"
-msgstr "No se admite la mezcla de direccionamiento normal y extendido"
-
-#: config/tc-tic54x.c:2134
-msgid "Extended addressing not supported on the specified CPU"
-msgstr "No se admite el direccionamiento extendido en el CPU especificado"
-
-#: config/tc-tic54x.c:2182
-msgid ".sblock may be used for initialized sections only"
-msgstr ".sblock se puede utilizar únicamente para secciones inicializadas"
-
-#: config/tc-tic54x.c:2212
-msgid "Symbol missing for .set/.equ"
-msgstr "Ausente el símbolo para .set/.equ"
-
-#: config/tc-tic54x.c:2267
-msgid ".var may only be used within a macro definition"
-msgstr ".var solamente se puede usar dentro de una definición de macro"
-
-#: config/tc-tic54x.c:2275
-msgid "Substitution symbols must begin with a letter"
-msgstr "Los símbolos de sustitución deben empezar con una letra"
-
-#: config/tc-tic54x.c:2354
-#, c-format
-msgid "can't open macro library file '%s' for reading: %s"
-msgstr "no se puede abrir el fichero de biblioteca de macro «%s» para lectura: %s"
-
-#: config/tc-tic54x.c:2361
-#, c-format
-msgid "File '%s' not in macro archive format"
-msgstr "El fichero «%s» no está en el formato de archivo de macro"
-
-#: config/tc-tic54x.c:2491
-#, c-format
-msgid "Bad COFF version '%s'"
-msgstr "Versión COFF incorrecta «%s»"
-
-#: config/tc-tic54x.c:2500
-#, c-format
-msgid "Bad CPU version '%s'"
-msgstr "Versión CPU incorrecta '%s'"
-
-#: config/tc-tic54x.c:2513 config/tc-tic54x.c:2516
-#, c-format
-msgid "Can't redirect stderr to the file '%s'"
-msgstr "No se puede redirigir la salida de error estándar al fichero «%s»"
-
-#: config/tc-tic54x.c:2535
-#, fuzzy
-#| msgid "macros nested too deeply"
-msgid "Macro nesting is too deep"
-msgstr "macros anidadas con demasiada profundidad"
-
-#: config/tc-tic54x.c:2638
-#, c-format
-msgid "Undefined substitution symbol '%s'"
-msgstr "Símbolo sustitucional sin definir «%s»"
-
-#: config/tc-tic54x.c:3121
-#, c-format
-msgid "Unbalanced parenthesis in operand %d"
-msgstr "Paréntesis sin balancear en operando %d"
-
-#: config/tc-tic54x.c:3152 config/tc-tic54x.c:3160
-msgid "Expecting operand after ','"
-msgstr "Se esperaba un operando tras ','"
-
-#: config/tc-tic54x.c:3171
-msgid "Extra junk on line"
-msgstr "Basura extra en la línea"
-
-#: config/tc-tic54x.c:3208
-msgid "Badly formed address expression"
-msgstr "Expresión direccional mal formada"
-
-#: config/tc-tic54x.c:3461
-#, c-format
-msgid "Invalid dmad syntax '%s'"
-msgstr "Sintaxis de ‘dmad’ no válida «%s»"
-
-#: config/tc-tic54x.c:3525
-#, c-format
-msgid "Use the .mmregs directive to use memory-mapped register names such as '%s'"
-msgstr "Use la directiva .mmregs para utilizar nombres de registro mapeados en memoria tales como «%s»"
-
-#: config/tc-tic54x.c:3576
-msgid "Address mode *+ARx is write-only. Results of reading are undefined."
-msgstr "El modo direccional *+ARx es de solo escritura. El resultado de la lectura está indefinido."
-
-#: config/tc-tic54x.c:3596
-#, c-format
-msgid "Unrecognized indirect address format \"%s\""
-msgstr "No reconocido el formato direccional indirecta «%s»"
-
-#: config/tc-tic54x.c:3634
-#, c-format
-msgid "Operand '%s' out of range (%d <= x <= %d)"
-msgstr "Operando «%s» está fuera de rango (%d ≤ x ≤ %d)"
-
-#: config/tc-tic54x.c:3654
-msgid "Error in relocation handling"
-msgstr "Error en el manejo de la reubicación"
-
-#: config/tc-tic54x.c:3673 config/tc-tic54x.c:3735 config/tc-tic54x.c:3763
-#, c-format
-msgid "Unrecognized condition code \"%s\""
-msgstr "No reconocido el código de condición «%s»"
-
-#: config/tc-tic54x.c:3690
-#, c-format
-msgid "Condition \"%s\" does not match preceding group"
-msgstr "La condición «%s» no coincide con el grupo precedente"
-
-#: config/tc-tic54x.c:3698
-#, c-format
-msgid "Condition \"%s\" uses a different accumulator from a preceding condition"
-msgstr "La condición «%s» utiliza un acumulador diferente al de una condición precedente"
-
-#: config/tc-tic54x.c:3705
-msgid "Only one comparison conditional allowed"
-msgstr "Sólo se permite una comparación condicional"
-
-#: config/tc-tic54x.c:3710
-msgid "Only one overflow conditional allowed"
-msgstr "Sólo se permite un desbordamiento condicional"
-
-#: config/tc-tic54x.c:3718
-#, c-format
-msgid "Duplicate %s conditional"
-msgstr "Condicional %s duplicado"
-
-#: config/tc-tic54x.c:3749
-msgid "Invalid auxiliary register (use AR0-AR7)"
-msgstr "Registro auxiliar inválido (utilice AR0-AR7)"
-
-#: config/tc-tic54x.c:3780
-msgid "lk addressing modes are invalid for memory-mapped register addressing"
-msgstr "modos direccionados lk son inválidos para direccionamiento de distribuciones de registros en memoria"
-
-#: config/tc-tic54x.c:3788
-msgid "Address mode *+ARx is not allowed in memory-mapped register addressing. Resulting behavior is undefined."
-msgstr "El modo direccional *+ARx no se permite en el direccionamiento de registros mapeados en memoria. El comportamiento resultante no está definido."
-
-#: config/tc-tic54x.c:3814
-msgid "Destination accumulator for each part of this parallel instruction must be different"
-msgstr "El acumulador de destino para cada parte de esta instrucción paralela debe ser diferente"
-
-#: config/tc-tic54x.c:3863
-#, c-format
-msgid "Memory mapped register \"%s\" out of range"
-msgstr "El registro mapeado en memoria «%s» está fuera de rango"
-
-#: config/tc-tic54x.c:3902
-msgid "Invalid operand (use 1, 2, or 3)"
-msgstr "Operando inválido (utilice 1, 2, ó 3)"
-
-#: config/tc-tic54x.c:3928
-msgid "A status register or status bit name is required"
-msgstr "Se requiere un registro estatal o un nombre de bit estatal"
-
-#: config/tc-tic54x.c:3938
-#, c-format
-msgid "Unrecognized status bit \"%s\""
-msgstr "No reconocido el bit estatal «%s»"
-
-#: config/tc-tic54x.c:3961
-#, c-format
-msgid "Invalid status register \"%s\""
-msgstr "Invalida registro de posición «%s»"
-
-#: config/tc-tic54x.c:3973
-#, c-format
-msgid "Operand \"%s\" out of range (use 1 or 2)"
-msgstr "Operando «%s» está fuera de rango (utilice 1 ó 2)"
-
-#: config/tc-tic54x.c:4176
-#, c-format
-msgid "Unrecognized instruction \"%s\""
-msgstr "No reconocida la instrucción «%s»"
-
-#: config/tc-tic54x.c:4205
-#, c-format
-msgid "Unrecognized operand list '%s' for instruction '%s'"
-msgstr "No reconocida la lista de operandos «%s» para la instrucción «%s»"
-
-#: config/tc-tic54x.c:4234
-#, c-format
-msgid "Unrecognized parallel instruction \"%s\""
-msgstr "No reconocida la instrucción paralela «%s»"
-
-#: config/tc-tic54x.c:4283
-#, c-format
-msgid "Invalid operand (s) for parallel instruction \"%s\""
-msgstr "Operando(s) inválido(s) para la instrucción paralela «%s»"
-
-#: config/tc-tic54x.c:4286
-#, c-format
-msgid "Unrecognized parallel instruction combination \"%s || %s\""
-msgstr "No reconocida la combinación de instrucciones paralelas \"%s || %s\""
-
-#: config/tc-tic54x.c:4514
-#, c-format
-msgid "%s symbol recursion stopped at second appearance of '%s'"
-msgstr "La recursión del símbolo %s se detuvo en la segunda aparición de «%s»"
-
-#: config/tc-tic54x.c:4554
-msgid "Unrecognized substitution symbol function"
-msgstr "No reconocida la función simbólica de sustitución"
-
-#: config/tc-tic54x.c:4559
-msgid "Missing '(' after substitution symbol function"
-msgstr "Ausente '(' tras la función simbólica de sustitución"
-
-#: config/tc-tic54x.c:4572
-msgid "Expecting second argument"
-msgstr "Se esperaba un segundo argumento"
-
-#: config/tc-tic54x.c:4590 config/tc-tic54x.c:4640
-msgid "Extra junk in function call, expecting ')'"
-msgstr "Basura extra en la llamada a función, se esperaba ')'"
-
-#: config/tc-tic54x.c:4616
-msgid "Function expects two arguments"
-msgstr "La función espera dos argumentos"
-
-#: config/tc-tic54x.c:4629
-msgid "Expecting character constant argument"
-msgstr "Se espera una constante de carácter como argumento"
-
-#: config/tc-tic54x.c:4635
-msgid "Both arguments must be substitution symbols"
-msgstr "Ambos argumentos deben ser símbolos de sustitución"
-
-#: config/tc-tic54x.c:4687
-#, c-format
-msgid "Invalid subscript (use 1 to %d)"
-msgstr "Subíndice inválido (utilice de 1 a %d)"
-
-#: config/tc-tic54x.c:4697
-#, c-format
-msgid "Invalid length (use 0 to %d)"
-msgstr "Longitud no válida (utilice 0 a %d)"
-
-#: config/tc-tic54x.c:4707
-msgid "Missing ')' in subscripted substitution symbol expression"
-msgstr "Ausente ')' en la expresión simbólico de sustitución suscrito"
-
-#: config/tc-tic54x.c:4727
-msgid "Missing forced substitution terminator ':'"
-msgstr "Ausente el terminador de sustitución forzada ':'"
-
-#: config/tc-tic54x.c:4881
-#, fuzzy, c-format
-#| msgid "Instruction does not fit in available delay slots (%d-word insn, %d slots left)"
-msgid "Instruction does not fit in available delay slots (%d-word insn, %d slot left)"
-msgid_plural "Instruction does not fit in available delay slots (%d-word insn, %d slots left)"
-msgstr[0] "La instrucción no cabe en las ranuras de retardo disponibles (%d insns word, %d ranuras restantes)"
-msgstr[1] "La instrucción no cabe en las ranuras de retardo disponibles (%d insns word, %d ranuras restantes)"
-
-#: config/tc-tic54x.c:4925
-#, c-format
-msgid "Unrecognized parallel instruction '%s'"
-msgstr "No reconocida la instrucción paralela «%s»"
-
-#: config/tc-tic54x.c:4937
-#, c-format
-msgid "Instruction '%s' requires an LP cpu version"
-msgstr "La instrucción «%s» requiere una versión de cpu LP"
-
-#: config/tc-tic54x.c:4944
-#, c-format
-msgid "Instruction '%s' requires far mode addressing"
-msgstr "La instrucción «%s» requiere el modo de direccionamiento far"
-
-#: config/tc-tic54x.c:4956
-#, fuzzy, c-format
-#| msgid "Instruction does not fit in available delay slots (%d-word insn, %d slots left). Resulting behavior is undefined."
-msgid "Instruction does not fit in available delay slots (%d-word insn, %d slot left). Resulting behavior is undefined."
-msgid_plural "Instruction does not fit in available delay slots (%d-word insn, %d slots left). Resulting behavior is undefined."
-msgstr[0] "La instrucción no cabe en las ranuras de retardo disponibles (%d insns word, %d ranuras restantes). El comportamiento resultante no está definido."
-msgstr[1] "La instrucción no cabe en las ranuras de retardo disponibles (%d insns word, %d ranuras restantes). El comportamiento resultante no está definido."
-
-#: config/tc-tic54x.c:4970
-msgid "Instructions which cause PC discontinuity are not allowed in a delay slot. Resulting behavior is undefined."
-msgstr "Las instrucciones que causan discontinuidad en el PC no se permiten en una ranura de retardo. El comportamiento resultante no está definido."
-
-#: config/tc-tic54x.c:4981
-#, c-format
-msgid "'%s' is not repeatable. Resulting behavior is undefined."
-msgstr "«%s» no se puede repetir. El comportamiento resultante no está definido."
-
-#: config/tc-tic54x.c:4985
-msgid "Instructions using long offset modifiers or absolute addresses are not repeatable. Resulting behavior is undefined."
-msgstr "Las instrucciones utilizando modificadores de desplazamiento long o direcciones absolutas no se pueden repetir. El comportamiento resultante no está definido."
-
-#: config/tc-tic54x.c:5129
-#, c-format
-msgid "Unsupported relocation size %d"
-msgstr "No se admite el tamaño de reubicación %d"
-
-#: config/tc-tic54x.c:5260
-msgid "non-absolute value used with .space/.bes"
-msgstr "se utilizó un valor no absoluto con .space/.bes"
-
-#: config/tc-tic54x.c:5264
-#, c-format
-msgid "negative value ignored in %s"
-msgstr "se descarta el valor negativo en %s"
-
-#: config/tc-tic54x.c:5352
-#, c-format
-msgid "attempt to .space/.bes backwards? (%ld)"
-msgstr "¿se intentó hacer .space/.bes hacia atrás? (%ld)"
-
-#: config/tc-tic6x.c:232
-#, c-format
-msgid "unknown architecture '%s'"
-msgstr "arquitectura desconocida '%s'"
-
-#: config/tc-tic6x.c:262
-#, c-format
-msgid "unknown -mpid= argument '%s'"
-msgstr "argumento desconocido -mpid= '%s'"
-
-#: config/tc-tic6x.c:320
-#, c-format
-msgid "TMS320C6000 options:\n"
-msgstr "Opciones TMS320C6000:\n"
-
-#: config/tc-tic6x.c:321
-#, c-format
-msgid " -march=ARCH enable instructions from architecture ARCH\n"
-msgstr " -march=ARQ permite instrucciones para la arquitectura ARQ\n"
-
-#: config/tc-tic6x.c:322
-#, c-format
-msgid " -mbig-endian generate big-endian code\n"
-msgstr " -mbig-endian genera código big-endian\n"
-
-#: config/tc-tic6x.c:323
-#, c-format
-msgid " -mlittle-endian generate little-endian code\n"
-msgstr " -mlittle-endian genera código little-endian\n"
-
-#: config/tc-tic6x.c:324
-#, c-format
-msgid " -mdsbt code uses DSBT addressing\n"
-msgstr " -mdsbt el código usa direccionamiento DSBT\n"
-
-#: config/tc-tic6x.c:325
-#, c-format
-msgid " -mno-dsbt code does not use DSBT addressing\n"
-msgstr " -mno-dsbt el código no usa direccionamiento DSBT\n"
-
-#: config/tc-tic6x.c:326
-#, c-format
-msgid " -mpid=no code uses position-dependent data addressing\n"
-msgstr ""
-" -mpid=no el código usa direccionamiento de datos\n"
-" dependiente de la posición\n"
-
-#: config/tc-tic6x.c:327
-#, c-format
-msgid ""
-" -mpid=near code uses position-independent data addressing,\n"
-" GOT accesses use near DP addressing\n"
-msgstr ""
-" -mpid=near el código usa direccionamiento de datos\n"
-" independiente de la posición, los accesos GOT\n"
-" emplean el direccionamiento DP cercano\n"
-
-#: config/tc-tic6x.c:329
-#, c-format
-msgid ""
-" -mpid=far code uses position-independent data addressing,\n"
-" GOT accesses use far DP addressing\n"
-msgstr ""
-" -mpid=far el código usa direccionamiento de datos\n"
-" independiente de la posición, los accesos GOT\n"
-" emplean el direccionamiento DP lejano\n"
-
-#: config/tc-tic6x.c:331
-#, c-format
-msgid " -mpic code addressing is position-independent\n"
-msgstr ""
-" -mpic el direccionamiento de código es\n"
-" independiente de posición\n"
-
-#: config/tc-tic6x.c:332
-#, c-format
-msgid " -mno-pic code addressing is position-dependent\n"
-msgstr ""
-" -mno-pic direccionamiento de código es\n"
-" dependiente de posición\n"
-
-#: config/tc-tic6x.c:337
-#, c-format
-msgid "Supported ARCH values are:"
-msgstr "Se admiten los siguentes valores de ARQ:"
-
-#: config/tc-tic6x.c:384
-msgid "unexpected .cantunwind directive"
-msgstr "directiva inesperada .cantunwind"
-
-#: config/tc-tic6x.c:404
-msgid "unexpected .handlerdata directive"
-msgstr "directiva inesperada .handlerdata"
-
-#: config/tc-tic6x.c:416
-msgid "personality routine required before .handlerdata directive"
-msgstr "se requirió una rutina personality antes de la directiva .handlerdata"
-
-#: config/tc-tic6x.c:530
-msgid "expected symbol"
-msgstr "se esperaba un símbolo"
-
-#: config/tc-tic6x.c:577
-msgid "expected comma after symbol name"
-msgstr "se esperaba una coma tras nombre del símbolo"
-
-#: config/tc-tic6x.c:587
-#, c-format
-msgid "invalid length for .scomm directive"
-msgstr "longitud no válida para la directiva .scomm"
-
-#: config/tc-tic6x.c:601
-msgid "alignment is not a positive number"
-msgstr "la alineamiento no es un número positivo"
-
-#: config/tc-tic6x.c:613
-msgid "alignment is not a power of 2"
-msgstr "la alineamiento no es una potencia de 2"
-
-#: config/tc-tic6x.c:628
-#, c-format
-msgid "attempt to re-define symbol `%s'"
-msgstr "se intentó redefinir el símbolo «%s»"
-
-#: config/tc-tic6x.c:637
-#, c-format
-msgid "attempt to redefine `%s' with a different length"
-msgstr "se intentó redefinir «%s» con una longitud diferente"
-
-#: config/tc-tic6x.c:835
-msgid "multiple '||' on same line"
-msgstr "'||' múltiples en la misma línea"
-
-#: config/tc-tic6x.c:838
-msgid "'||' after predicate"
-msgstr "'||' tras predicado"
-
-#: config/tc-tic6x.c:882
-msgid "multiple predicates on same line"
-msgstr "predicados múltiples en la misma línea"
-
-#: config/tc-tic6x.c:888
-#, c-format
-msgid "bad predicate '%s'"
-msgstr "equivocación de predicado «%s»"
-
-#: config/tc-tic6x.c:899
-msgid "predication on A0 not supported on this architecture"
-msgstr "la predicación en A0 no se admite en esta arquitectura"
-
-#: config/tc-tic6x.c:932
-msgid "label after '||'"
-msgstr "etiqueta tras '||'"
-
-#: config/tc-tic6x.c:938
-msgid "label after predicate"
-msgstr "etiqueta tras predicado"
-
-#: config/tc-tic6x.c:962
-msgid "'||' not followed by instruction"
-msgstr "'||' no está seguido por una instrucción"
-
-#: config/tc-tic6x.c:968
-msgid "predicate not followed by instruction"
-msgstr "el predicado no está seguido por una instrucción"
-
-#: config/tc-tic6x.c:1401
-#, c-format
-msgid "control register '%s' not supported on this architecture"
-msgstr "el registro de control «%s» no se admite en esta arquitectura"
-
-#: config/tc-tic6x.c:1580 config/tc-tic6x.c:1583 config/tc-tic6x.c:1636
-#: config/tc-tic6x.c:1640
-#, c-format
-msgid "register number %u not supported on this architecture"
-msgstr "el número de registro %u no se admite en esta arquitectura"
-
-#: config/tc-tic6x.c:1611
-#, c-format
-msgid "register pair for operand %u of '%.*s' not a valid even/odd pair"
-msgstr "la pareja de registros para el operando %u de '%.*s' no es una pareja par/impar válida"
-
-#: config/tc-tic6x.c:1667
-#, c-format
-msgid "junk after operand %u of '%.*s'"
-msgstr "basura tras operando %u de '%.*s'"
-
-#: config/tc-tic6x.c:1680
-#, c-format
-msgid "bad register or register pair for operand %u of '%.*s'"
-msgstr "el registro o pareja de registros incorrectos para el operando %u de '%.*s'"
-
-#: config/tc-tic6x.c:1686
-#, c-format
-msgid "bad register for operand %u of '%.*s'"
-msgstr "el registro incorrecto para el operando %u de '%.*s'"
-
-#: config/tc-tic6x.c:1691
-#, c-format
-msgid "bad register pair for operand %u of '%.*s'"
-msgstr "pareja de registros incorrecta para el operando %u de '%.*s'"
-
-#: config/tc-tic6x.c:1696
-#, c-format
-msgid "bad functional unit for operand %u of '%.*s'"
-msgstr "unidad funcional incorrecta para el operando %u de '%.*s'"
-
-#: config/tc-tic6x.c:1701
-#, c-format
-msgid "bad operand %u of '%.*s'"
-msgstr "operando %u incorrecto de '%.*s'"
-
-#: config/tc-tic6x.c:1833
-msgid "$DSBT_INDEX must be used with __c6xabi_DSBT_BASE"
-msgstr "$DSBT_INDEX se debe usar con __c6xabi_DSBT_BASE"
-
-#: config/tc-tic6x.c:1873
-msgid "$DSBT_INDEX not supported in this context"
-msgstr "no se admite $DSBT_INDEX en este contexto"
-
-#: config/tc-tic6x.c:1886
-msgid "$GOT not supported in this context"
-msgstr "no se admite $GOT en este contexto"
-
-#: config/tc-tic6x.c:1903
-msgid "$DPR_GOT not supported in this context"
-msgstr "no se admite $DPR_GOT en este contexto"
-
-#: config/tc-tic6x.c:1924
-msgid "$DPR_BYTE not supported in this context"
-msgstr "no se admite $DPR_BYTE en este contexto"
-
-#: config/tc-tic6x.c:1941
-msgid "$DPR_HWORD not supported in this context"
-msgstr "no se admite $DPR_HWORD en este contexto"
-
-#: config/tc-tic6x.c:1958
-msgid "$DPR_WORD not supported in this context"
-msgstr "no se admite $DPR_WORD en este contexto"
-
-#: config/tc-tic6x.c:1977
-msgid "$PCR_OFFSET not supported in this context"
-msgstr "no se admite $PCR_OFFSET en este contexto"
-
-#: config/tc-tic6x.c:1988
-msgid "invalid PC-relative operand"
-msgstr "operando relativo al PC inválido"
-
-#: config/tc-tic6x.c:2025
-#, c-format
-msgid "no %d-byte relocations available"
-msgstr "no hay reubicaciones de %d bytes disponibles"
-
-#: config/tc-tic6x.c:2512 config/tc-tic6x.c:2543 config/tc-tic6x.c:2561
-#: config/tc-tic6x.c:2991 config/tc-tic6x.c:3010 config/tc-tic6x.c:3042
-#, c-format
-msgid "operand %u of '%.*s' out of range"
-msgstr "operando %u de '%.*s' está fuera de rango"
-
-#: config/tc-tic6x.c:2605 config/tc-tic6x.c:2830
-#, c-format
-msgid "offset in operand %u of '%.*s' not divisible by %u"
-msgstr "el desplazamiento en operando %u de '%.*s' no es divisible por %u"
-
-#: config/tc-tic6x.c:2822 config/tc-tic6x.c:2855
-#, c-format
-msgid "offset in operand %u of '%.*s' out of range"
-msgstr "el desplazamiento en operando %u de '%.*s' está fuera de rango"
-
-#: config/tc-tic6x.c:2937
-#, c-format
-msgid "functional unit already masked for operand %u of '%.*s'"
-msgstr "unidad funcional ya está enmascarada para el operando %u de '%.*s'"
-
-#: config/tc-tic6x.c:2961 config/tc-tic6x.c:3719
-#, c-format
-msgid "'%.*s' instruction not in a software pipelined loop"
-msgstr "la instrucción '%.*s' no está en un ciclo entubado por software"
-
-#: config/tc-tic6x.c:3060
-#, c-format
-msgid "instruction '%.*s' cannot be predicated"
-msgstr "la instrucción '%.*s' no puede ser predicado"
-
-#: config/tc-tic6x.c:3327
-#, c-format
-msgid "'%.*s' instruction not supported on this architecture"
-msgstr "la instrucción '%.*s' no se admite en esta arquitectura"
-
-#: config/tc-tic6x.c:3335
-#, c-format
-msgid "'%.*s' instruction not supported on this functional unit"
-msgstr "la instrucción '%.*s' no se admite en esta unidad funcional"
-
-#: config/tc-tic6x.c:3343
-#, c-format
-msgid "'%.*s' instruction not supported on this functional unit for this architecture"
-msgstr "la instrucción '%.*s' no se admite en esta unidad funcional para esta arquitectura"
-
-#: config/tc-tic6x.c:3363
-msgid "missing operand after comma"
-msgstr "ausente operando tras la coma"
-
-#: config/tc-tic6x.c:3371 config/tc-tic6x.c:3389
-#, c-format
-msgid "too many operands to '%.*s'"
-msgstr "demasiados operandos para '%.*s'"
-
-#: config/tc-tic6x.c:3402
-#, c-format
-msgid "bad number of operands to '%.*s'"
-msgstr "número incorrecto de operandos para '%.*s'"
-
-#: config/tc-tic6x.c:3474
-#, c-format
-msgid "operand %u of '%.*s' not constant"
-msgstr "operando %u de '%.*s' no es una constante"
-
-#: config/tc-tic6x.c:3479
-#, c-format
-msgid "operand %u of '%.*s' on wrong side"
-msgstr "operando %u de '%.*s' está en el lado incorrecto"
-
-#: config/tc-tic6x.c:3484
-#, c-format
-msgid "operand %u of '%.*s' not a valid return address register"
-msgstr "operando %u de '%.*s' no es un registro direccional de devolución válido"
-
-#: config/tc-tic6x.c:3490
-#, c-format
-msgid "operand %u of '%.*s' is write-only"
-msgstr "operando %u de '%.*s' es de solo escritura"
-
-#: config/tc-tic6x.c:3495
-#, c-format
-msgid "operand %u of '%.*s' is read-only"
-msgstr "operando %u de '%.*s' es de solo lectura"
-
-#: config/tc-tic6x.c:3500
-#, c-format
-msgid "operand %u of '%.*s' not a valid memory reference"
-msgstr "operando %u de '%.*s' no es una referencia de memoria válida"
-
-#: config/tc-tic6x.c:3506
-#, c-format
-msgid "operand %u of '%.*s' not a valid base address register"
-msgstr "operando %u de '%.*s' no es un registro direccional base válido"
-
-#: config/tc-tic6x.c:3592
-#, c-format
-msgid "bad operand combination for '%.*s'"
-msgstr "combinación de operandos incorrecta para '%.*s'"
-
-#: config/tc-tic6x.c:3638
-msgid "parallel instruction not following another instruction"
-msgstr "la instrucción paralela no está a continuación de otra instrucción"
-
-#: config/tc-tic6x.c:3644
-msgid "too many instructions in execute packet"
-msgstr "demasiadas instrucciones en el paquete de ejecución"
-
-#: config/tc-tic6x.c:3649
-msgid "label not at start of execute packet"
-msgstr "la etiqueta no está al inicio del paquete de ejecución"
-
-#: config/tc-tic6x.c:3652
-#, c-format
-msgid "'%.*s' instruction not at start of execute packet"
-msgstr "la instrucción '%.*s' no está al inicio del paquete de ejecución"
-
-#: config/tc-tic6x.c:3700
-msgid "functional unit already used in this execute packet"
-msgstr "la unidad funcional ya está en uso en este paquete de ejecución"
-
-#: config/tc-tic6x.c:3708
-msgid "nested software pipelined loop"
-msgstr "ciclo entubado por software anidado"
-
-#: config/tc-tic6x.c:3727
-msgid "'||^' without previous SPMASK"
-msgstr "'||^' sin un SPMASK previo"
-
-#: config/tc-tic6x.c:3729
-msgid "cannot mask instruction using no functional unit"
-msgstr "no se puede enmascarar la instrucción sin una unidad funcional"
-
-#: config/tc-tic6x.c:3741
-msgid "functional unit already masked"
-msgstr "la unidad funcional ya está enmascarada"
-
-#: config/tc-tic6x.c:3806
-msgid "value too large for 2-byte field"
-msgstr "valor demasiado grande para un campo de 2 bytes"
-
-#: config/tc-tic6x.c:3816
-msgid "value too large for 1-byte field"
-msgstr "valor demasiado grande para un campo de 1 byte"
-
-#: config/tc-tic6x.c:3943
-msgid "immediate offset not 2-byte-aligned"
-msgstr "el desplazamiento inmediato no está alineado a 2 bytes"
-
-#: config/tc-tic6x.c:3971
-msgid "immediate offset not 4-byte-aligned"
-msgstr "el desplazamiento inmediato no está alineado a 4 bytes"
-
-#: config/tc-tic6x.c:3985
-msgid "addend used with $DSBT_INDEX"
-msgstr "se usó addend con $DSBT_INDEX"
-
-#: config/tc-tic6x.c:3999 config/tc-tic6x.c:4017 config/tc-tic6x.c:4035
-#: config/tc-tic6x.c:4053
-msgid "PC-relative offset not 4-byte-aligned"
-msgstr "Desplazamiento relativo al PC no alineado a 4-bytes"
-
-#: config/tc-tic6x.c:4002 config/tc-tic6x.c:4020 config/tc-tic6x.c:4038
-#: config/tc-tic6x.c:4056
-msgid "PC-relative offset out of range"
-msgstr "Desplazamiento relativo al PC está fuera de rango"
-
-#: config/tc-tic6x.c:4537
-#, c-format
-msgid "undefined symbol %s in PCR relocation"
-msgstr "símbolo indefinido %s en reubicación PCR"
-
-#: config/tc-tic6x.c:4654
-#, c-format
-msgid "group section `%s' has no group signature"
-msgstr "sección de grupo «%s» no tiene firma de grupo"
-
-#: config/tc-tic6x.c:4806
-msgid "missing .endp before .cfi_startproc"
-msgstr "ausente .endp antes de .cfi_startproc"
-
-#: config/tc-tic6x.c:4911
-msgid "stack pointer offset too large for personality routine"
-msgstr "el desplazamiento del puntero de pila es demasiado grande para la rutina personality"
-
-#: config/tc-tic6x.c:4918
-msgid "stack frame layout does not match personality routine"
-msgstr "la disposición del marco de pila no coincide con la rutina personality"
-
-#: config/tc-tic6x.c:5052
-msgid "too many unwinding instructions"
-msgstr "demasiadas instrucciones de desenredo"
-
-#: config/tc-tic6x.c:5127 config/tc-tic6x.c:5140 config/tc-tic6x.c:5148
-#, c-format
-msgid "unable to generate unwinding opcode for reg %d"
-msgstr "incapaz de generar códigos operacionales de desenredo para el registro %d"
-
-#: config/tc-tic6x.c:5157
-msgid "unable to restore return address from previously restored reg"
-msgstr "no se puede restaurar la dirección de devolución para el registro previamente restaurado"
-
-#: config/tc-tic6x.c:5169
-#, c-format
-msgid "unhandled CFA insn for unwinding (%d)"
-msgstr "insn CFA sin manipular para el desenredo (%d)"
-
-#: config/tc-tic6x.c:5179
-#, c-format
-msgid "unable to generate unwinding opcode for frame pointer reg %d"
-msgstr "incapaz de generar código de operación de desenredo para el registro de puntero a marco %d"
-
-#: config/tc-tic6x.c:5188
-msgid "unable to generate unwinding opcode for frame pointer offset"
-msgstr "incapaz de generar código de operación de desenredo para el desplazamiento de puntero a marco"
-
-#: config/tc-tic6x.c:5197
-msgid "unwound stack pointer not doubleword aligned"
-msgstr "el puntero de pila desenredado no está alineado a dobleword"
-
-#: config/tc-tic6x.c:5342
-msgid "stack frame layout too complex for unwinder"
-msgstr "la disposición del marco de pila es demasiado complejo para el desenredador"
-
-#: config/tc-tic6x.c:5359
-msgid "unwound frame has negative size"
-msgstr "el marco desenredado tiene tamaño negativo"
-
-#: config/tc-tilegx.c:141
-#, c-format
-msgid ""
-" -Q ignored\n"
-" -V print assembler version number\n"
-" -EB/-EL generate big-endian/little-endian code\n"
-" --32/--64 generate 32bit/64bit code\n"
-msgstr ""
-" -Q descartado\n"
-" -V escribe el número de versión del ensamblador\n"
-" -EB/-EL genera código big-endian/little-endian\n"
-" --32/--64 genera código 32bit/64bit\n"
-
-#: config/tc-tilegx.c:731 config/tc-tilepro.c:619
-msgid "Invalid operator for operand."
-msgstr "Operador inválido para el operando."
-
-#: config/tc-tilegx.c:754 config/tc-tilepro.c:642
-msgid "Operator may only be applied to symbols."
-msgstr "El operador solo se puede aplicar a símbolos."
-
-#: config/tc-tilegx.c:819 config/tc-tilepro.c:707
-#, c-format
-msgid "Writes to register '%s' are not allowed."
-msgstr "No se permiten las escrituras al registro «%s»."
-
-#: config/tc-tilegx.c:846 config/tc-tilepro.c:734
-#, c-format
-msgid "Two instructions in the same bundle both write to register %s, which is not allowed."
-msgstr "Dos instrucciones en el mismo haz ambos escriben al registro %s, lo no está permitido."
-
-#: config/tc-tilegx.c:911 config/tc-tilepro.c:798
-#, c-format
-msgid "'%s' may not be bundled with other instructions."
-msgstr "'%s 'no se puede agrupar con otras instrucciones."
-
-#: config/tc-tilegx.c:941 config/tc-tilepro.c:828
-msgid "Invalid combination of instructions for bundle."
-msgstr "Combinación no válida de instrucciones para el agrupado."
-
-#: config/tc-tilegx.c:976 config/tc-tilepro.c:863
-msgid "instruction address is not a multiple of 8"
-msgstr "la instrucción direccional no es un múltiplo de 8"
-
-#: config/tc-tilegx.c:1053 config/tc-tilepro.c:941
-msgid "Invalid expression."
-msgstr "Expresión no válida."
-
-#: config/tc-tilegx.c:1099 config/tc-tilepro.c:983
-#, c-format
-msgid "Expected register, got '%s'."
-msgstr "Se esperaba un registro, se obtuvo «%s»."
-
-#: config/tc-tilegx.c:1106 config/tc-tilepro.c:990
-#, c-format
-msgid "Found use of non-canonical register name %s; use %s instead."
-msgstr "Se encontró el uso del nombre de registro %s que no es canónico; use %s en su lugar."
-
-#: config/tc-tilegx.c:1166 config/tc-tilepro.c:1049
-#, c-format
-msgid "Too few operands to '%s'."
-msgstr "Ausenten operandos para «%s»."
-
-#: config/tc-tilegx.c:1171 config/tc-tilepro.c:1054
-#, c-format
-msgid "Unexpected character '%c' after operand %d to %s."
-msgstr "Carácter inesperado '%c' antes de operando %d para %s."
-
-#: config/tc-tilegx.c:1192 config/tc-tilepro.c:1075
-msgid "Expected immediate expression"
-msgstr "Se esperaba una expresión inmediata"
-
-#: config/tc-tilegx.c:1205 config/tc-tilegx.c:1807 config/tc-tilepro.c:1088
-#: config/tc-tilepro.c:1584
-msgid "Found '}' when not bundling."
-msgstr "Se encontró '}' cuando no se está agrupando."
-
-#: config/tc-tilegx.c:1246 config/tc-tilepro.c:1128
-#, c-format
-msgid "Unknown opcode `%.*s'."
-msgstr "Desconoce código de operación `%.*s'."
-
-#: config/tc-tilegx.c:1257 config/tc-tilepro.c:1139
-msgid "Too many instructions for bundle."
-msgstr "Demasiadas instrucciones para la agrupación."
-
-#: config/tc-tilegx.c:1349 config/tc-tilepro.c:1221
-msgid "Bad call to md_atof ()"
-msgstr "Llamada incorrecta a md_atof ()"
-
-#: config/tc-tilegx.c:1425 config/tc-tilepro.c:1284
-msgid "This operator only produces two byte values."
-msgstr "Este operador solo produce valores de dos bytes."
-
-#: config/tc-tilegx.c:1752 config/tc-tilepro.c:1529
-#, c-format
-msgid "internal error? cannot generate `%s' relocation (%d, %d)"
-msgstr "¿Error interno? incapaz de generar la reubicación «%s» (%d, %d)"
-
-#: config/tc-tilegx.c:1795 config/tc-tilepro.c:1572
-msgid "Found '{' when already bundling."
-msgstr "Se encontró '{' cuando ya estaba agrupado."
-
-#: config/tc-tilepro.c:98
-#, c-format
-msgid ""
-" -Q ignored\n"
-" -V print assembler version number\n"
-msgstr ""
-" -Q se descarta\n"
-" -V escribe el número de versión del ensamblador\n"
-
-#: config/tc-v850.c:291
-#, c-format
-msgid ".COMMon length (%d.) < 0! Ignored."
-msgstr "¡Longitud .COMMún (%d.) < 0! Se descarta."
-
-#: config/tc-v850.c:312
-#, c-format
-msgid "Length of .comm \"%s\" is already %ld. Not changed to %d."
-msgstr "La longitud de .comm «%s» ya es %ld. No se cambia a %d."
-
-#: config/tc-v850.c:338
-msgid "Common alignment negative; 0 assumed"
-msgstr "Alineación común negativa; se asume 0"
-
-#: config/tc-v850.c:542
-msgid ".longcall pseudo-op seen when not relaxing"
-msgstr "se vio el pseudo-operador .longcall cuando no se estaba relajando"
-
-#: config/tc-v850.c:544
-msgid ".longjump pseudo-op seen when not relaxing"
-msgstr "se vio el pseudo-operador .longjump cuando no se estaba relajando"
-
-#: config/tc-v850.c:551
-msgid "bad .longcall format"
-msgstr "formato de .longcall incorrecto"
-
-#: config/tc-v850.c:1389
-#, c-format
-msgid "unknown operand shift: %x\n"
-msgstr "operando de desplazamiento desconocido: %x\n"
-
-#: config/tc-v850.c:1390
-msgid "internal failure in parse_register_list"
-msgstr "falla interna en parse_register_list"
-
-#: config/tc-v850.c:1406
-msgid "constant expression or register list expected"
-msgstr "se esperaba una expresión constante o una lista de registros"
-
-#: config/tc-v850.c:1411
-msgid "high bits set in register list expression"
-msgstr "se establecieron los bits altos en la expresión de lista de registros"
-
-#: config/tc-v850.c:1449 config/tc-v850.c:1506
-msgid "illegal register included in list"
-msgstr "se incluyó un registro alegal en la lista"
-
-#: config/tc-v850.c:1455
-msgid "system registers cannot be included in list"
-msgstr "los registros del sistema no se pueden incluir en la lista"
-
-#: config/tc-v850.c:1481
-msgid "second register should follow dash in register list"
-msgstr "el segundo registro debe estar a continuación de un guión en la lista de registros"
-
-#: config/tc-v850.c:1486
-msgid "second register should be greater than first register"
-msgstr "el segundo registro debe ser mayor que el primer registro"
-
-#: config/tc-v850.c:1536
-#, c-format
-msgid " V850 options:\n"
-msgstr " Opciones de V850:\n"
-
-#: config/tc-v850.c:1537
-#, c-format
-msgid " -mwarn-signed-overflow Warn if signed immediate values overflow\n"
-msgstr " -mwarn-signed-overflow Avisa si los valores inmediatos con signo desbordan\n"
-
-#: config/tc-v850.c:1538
-#, c-format
-msgid " -mwarn-unsigned-overflow Warn if unsigned immediate values overflow\n"
-msgstr " -mwarn-unsigned-overflow Avisa si los valores inmediato sin signo desbordan\n"
-
-#: config/tc-v850.c:1539
-#, c-format
-msgid " -mv850 The code is targeted at the v850\n"
-msgstr " -mv850 El código está destinado para el v850\n"
-
-#: config/tc-v850.c:1540
-#, c-format
-msgid " -mv850e The code is targeted at the v850e\n"
-msgstr " -mv850e El código está destinado para el v850e\n"
-
-#: config/tc-v850.c:1541
-#, c-format
-msgid " -mv850e1 The code is targeted at the v850e1\n"
-msgstr " -mv850e1 El código está destinado para el v850e1\n"
-
-#: config/tc-v850.c:1542
-#, c-format
-msgid " -mv850e2 The code is targeted at the v850e2\n"
-msgstr " -mv850e2 El código está destinado para el v850e2\n"
-
-#: config/tc-v850.c:1543
-#, c-format
-msgid " -mv850e2v3 The code is targeted at the v850e2v3\n"
-msgstr " -mv850e2v3 El código está destinado para el v850e2v3\n"
-
-#: config/tc-v850.c:1544
-#, c-format
-msgid " -mv850e2v4 Alias for -mv850e3v5\n"
-msgstr " -mv850e2v4 Alias para -mv850e3v5\n"
-
-#: config/tc-v850.c:1545
-#, c-format
-msgid " -mv850e3v5 The code is targeted at the v850e3v5\n"
-msgstr " -mv850e3v5 El código está destinado para el v850e3v5\n"
-
-#: config/tc-v850.c:1546
-#, c-format
-msgid " -mrelax Enable relaxation\n"
-msgstr " -mrelax Activa la relajación\n"
-
-#: config/tc-v850.c:1547
-#, c-format
-msgid " --disp-size-default-22 branch displacement with unknown size is 22 bits (default)\n"
-msgstr " --disp-size-default-22 el desplazamiento de ramificación de tamaño desconocido es de 22 bits (por defecto)\n"
-
-#: config/tc-v850.c:1548
-#, c-format
-msgid " --disp-size-default-32 branch displacement with unknown size is 32 bits\n"
-msgstr " --disp-size-default-32 el desplazamiento de ramificación de tamaño desconocido es de 32 bits\n"
-
-#: config/tc-v850.c:1549
-#, c-format
-msgid " -mextension enable extension opcode support\n"
-msgstr " -mextension activa el soporte de códigod operacional de extensión\n"
-
-#: config/tc-v850.c:1550
-#, c-format
-msgid " -mno-bcond17\t\t disable b<cond> disp17 instruction\n"
-msgstr " -mno-bcond17\t\t desactiva la instrucción b<cond> disp17\n"
-
-#: config/tc-v850.c:1551
-#, c-format
-msgid " -mno-stld23\t\t disable st/ld offset23 instruction\n"
-msgstr " -mno-stld23\t\t desactiva la instrucción desplazamiento st/ld offset23\n"
-
-#: config/tc-v850.c:1552
-#, c-format
-msgid " -mgcc-abi Mark the binary as using the old GCC ABI\n"
-msgstr ""
-" -mgcc-abi marca el binario como empleando el antiguo API GCC\n"
-"\n"
-
-#: config/tc-v850.c:1553
-#, c-format
-msgid " -mrh850-abi Mark the binary as using the RH850 ABI (default)\n"
-msgstr " -mrh850-abi Marca el binario como utilizando el ABI RH850 (predet.)\n"
-
-#: config/tc-v850.c:1554
-#, c-format
-msgid " -m8byte-align Mark the binary as using 64-bit alignment\n"
-msgstr ""
-" -m8byte-align Marca el binario como utilizando alineamiento de 64-bit\n"
-"\n"
-
-#: config/tc-v850.c:1555
-#, c-format
-msgid " -m4byte-align Mark the binary as using 32-bit alignment (default)\n"
-msgstr " -m4byte-align Marca el binario como alineamiento de 32-bit utilizado (predet.)\n"
-
-#: config/tc-v850.c:1556
-#, c-format
-msgid " -msoft-float Mark the binary as not using FP insns (default for pre e2v3)\n"
-msgstr ""
-
-#: config/tc-v850.c:1557
-#, c-format
-msgid " -mhard-float Mark the binary as using FP insns (default for e2v3 and up)\n"
-msgstr ""
-
-#: config/tc-v850.c:1945
-#, c-format
-msgid "Unable to determine default target processor from string: %s"
-msgstr "No se puede determinar el procesador objetivo por defecto de la cadena: %s"
-
-#: config/tc-v850.c:1988
-msgid "hi0() relocation used on an instruction which does not support it"
-msgstr "se utilizó una reubicación hi0() en una instrucción que no la admite"
-
-#: config/tc-v850.c:2008
-msgid "hi() relocation used on an instruction which does not support it"
-msgstr "se utilizó una reubicación hi() en una instrucción que no la admite"
-
-#: config/tc-v850.c:2027
-msgid "lo() relocation used on an instruction which does not support it"
-msgstr "se utilizó una reubicación lo() en una instrucción que no la admite"
-
-#: config/tc-v850.c:2038
-msgid "ctoff() is not supported by the rh850 ABI. Use -mgcc-abi instead"
-msgstr ""
-
-#: config/tc-v850.c:2054
-msgid "ctoff() relocation used on an instruction which does not support it"
-msgstr "se utilizó una reubicación ctoff() en una instrucción que no la admite"
-
-#: config/tc-v850.c:2073
-msgid "sdaoff() relocation used on an instruction which does not support it"
-msgstr "se utilizó una reubicación sdaoff() en una instrucción que no la admite"
-
-#: config/tc-v850.c:2092
-msgid "zdaoff() relocation used on an instruction which does not support it"
-msgstr "se utilizó una reubicación zdaoff() en una instrucción que no la admite"
-
-#: config/tc-v850.c:2124
-msgid "tdaoff() relocation used on an instruction which does not support it"
-msgstr "se utilizó una reubicación tdaoff() en una instrucción que no la admite"
-
-#: config/tc-v850.c:2265
-#, c-format
-msgid "operand out of range (%d is not between %d and %d)"
-msgstr "operando fuera de rango (%d no está entre %d y %d)"
-
-#: config/tc-v850.c:2348
-msgid "st/ld offset 23 instruction was disabled ."
-msgstr "st/ld desplaza 23 instrucciones fue desactivado."
-
-#: config/tc-v850.c:2357
-msgid "Target processor does not support this instruction."
-msgstr "El procesador objetivo no admite esta instrucción."
-
-#: config/tc-v850.c:2469 config/tc-v850.c:2479 config/tc-v850.c:2500
-#: config/tc-v850.c:2514 config/tc-v850.c:2520 config/tc-v850.c:2544
-#: config/tc-v850.c:2550 config/tc-v850.c:2557 config/tc-v850.c:2571
-#: config/tc-v850.c:2585 config/tc-v850.c:2591 config/tc-v850.c:2929
-msgid "immediate operand is too large"
-msgstr "operando inmediato es demasiado grande"
-
-#: config/tc-v850.c:2486
-#, c-format
-msgid "AAARG -> unhandled constant reloc: %d"
-msgstr "AAARG → reubicación constante no manipulado: %d"
-
-#: config/tc-v850.c:2621 config/tc-v850.c:2632
-msgid "constant too big to fit into instruction"
-msgstr "la constante es demasiado grande para caber en la instrucción"
-
-#: config/tc-v850.c:2707
-msgid "odd number cannot be used here"
-msgstr "no se puede usar aquí un número impar"
-
-#: config/tc-v850.c:2752
-msgid "invalid register name"
-msgstr "nombre de registro inválido"
-
-#: config/tc-v850.c:2758
-msgid "register r0 cannot be used here"
-msgstr "el registro r0 no se puede usar aquí"
-
-#: config/tc-v850.c:2764
-msgid "odd register cannot be used here"
-msgstr "no se puede usar aquí un registro impar"
-
-#: config/tc-v850.c:2773
-msgid "invalid system register name"
-msgstr "nombre de registro de sistema inválido"
-
-#: config/tc-v850.c:2787
-msgid "expected EP register"
-msgstr "se esperaba el registro EP"
-
-#: config/tc-v850.c:2804 config/tc-v850.c:2817
-msgid "invalid condition code name"
-msgstr "nombre de código de condición inválido"
-
-#: config/tc-v850.c:2810
-msgid "condition sa cannot be used here"
-msgstr "la condición sa no se puede usar aquí"
-
-#: config/tc-v850.c:2823
-msgid "invalid cache operation name"
-msgstr "nompre operacional caché inválido"
-
-#: config/tc-v850.c:2828
-msgid "invalid pref operation name"
-msgstr "nombre pre operacional inválido"
-
-#: config/tc-v850.c:2833
-msgid "invalid vector register name"
-msgstr "nombre de registro vectorial no válida"
-
-#: config/tc-v850.c:2871
-msgid "syntax error: value is missing before the register name"
-msgstr "error de sintaxis: ausente el valor antes del nombre de registro"
-
-#: config/tc-v850.c:2873
-msgid "syntax error: register not expected"
-msgstr "error de sintaxis: no se esperaba un registro"
-
-#: config/tc-v850.c:2887
-msgid "syntax error: system register not expected"
-msgstr "error de sintaxis: no se esperaba un registro de sistema"
-
-#: config/tc-v850.c:2892 config/tc-v850.c:2897
-msgid "syntax error: condition code not expected"
-msgstr "error de sintaxis: no es esperaba código de condición"
-
-#: config/tc-v850.c:2902
-msgid "syntax error: vector register not expected"
-msgstr "error de sintaxis: registro vectorial no esperado"
-
-#: config/tc-v850.c:2913
-msgid "immediate 0 cannot be used here"
-msgstr "el inmediato 0 no se puede usar aquí"
-
-# FIXME: ver en el código si se puede cambiar "no es match" por "no coincide" - cfuga
-#: config/tc-v850.c:2937
-msgid "immediate operand is not match"
-msgstr "operando inmediato no coincide"
-
-#: config/tc-v850.c:2950
-msgid "displacement is too large"
-msgstr "desubicación demasiado grande"
-
-#: config/tc-v850.c:2968 config/tc-xtensa.c:13093
-msgid "invalid operand"
-msgstr "operando inválido"
-
-#: config/tc-v850.c:3080
-msgid "loop: 32-bit displacement not supported"
-msgstr "bucle: desplazamiento de 32-bit no compatible"
-
-#: config/tc-vax.c:1339
-msgid "no '[' to match ']'"
-msgstr "no hay '[' que coincida con ']'"
-
-#: config/tc-vax.c:1355
-msgid "bad register in []"
-msgstr "el registro incorrecto en []"
-
-#: config/tc-vax.c:1357
-msgid "[PC] index banned"
-msgstr "índice [PC] prohibido"
-
-#: config/tc-vax.c:1393
-msgid "no '(' to match ')'"
-msgstr "no hay '(' que coincida con ')'"
-
-#: config/tc-vax.c:1509
-msgid "invalid branch operand"
-msgstr "operando de ramificación inválido"
-
-#: config/tc-vax.c:1536
-msgid "address prohibits @"
-msgstr "la dirección prohibe @"
-
-#: config/tc-vax.c:1538
-msgid "address prohibits #"
-msgstr "la dirección prohibe #"
-
-#: config/tc-vax.c:1542
-msgid "address prohibits -()"
-msgstr "la dirección prohibe -()"
-
-#: config/tc-vax.c:1544
-msgid "address prohibits ()+"
-msgstr "la dirección prohibe ()+"
-
-#: config/tc-vax.c:1547
-msgid "address prohibits ()"
-msgstr "la dirección prohibe ()"
-
-#: config/tc-vax.c:1549
-msgid "address prohibits []"
-msgstr "la dirección prohibe []"
-
-#: config/tc-vax.c:1551
-msgid "address prohibits register"
-msgstr "la dirección prohibe un registro"
-
-#: config/tc-vax.c:1553
-msgid "address prohibits displacement length specifier"
-msgstr "la dirección prohibe un especificador de longitud de desubicación"
-
-#: config/tc-vax.c:1581
-msgid "invalid operand of S^#"
-msgstr "operando inválido de S^#"
-
-#: config/tc-vax.c:1594
-msgid "S^# needs expression"
-msgstr "S^# necesita una expresión"
-
-#: config/tc-vax.c:1601
-msgid "S^# may only read-access"
-msgstr "S^# tal vez sea solamente para acceso de lectura"
-
-#: config/tc-vax.c:1624
-msgid "invalid operand of -()"
-msgstr "operando inválido de -()"
-
-#: config/tc-vax.c:1630
-msgid "-(PC) unpredictable"
-msgstr "-(PC) impredecible"
-
-#: config/tc-vax.c:1632
-msgid "[]index same as -()register: unpredictable"
-msgstr "[]índice igual que -()registro: impredecible"
-
-#: config/tc-vax.c:1664
-msgid "invalid operand of ()+"
-msgstr "operando inválido de ()+"
-
-#: config/tc-vax.c:1670
-msgid "(PC)+ unpredictable"
-msgstr "(PC)+ impredecible"
-
-#: config/tc-vax.c:1672
-msgid "[]index same as ()+register: unpredictable"
-msgstr "[]índice igual que ()+registro: impredecible"
-
-#: config/tc-vax.c:1695
-msgid "# conflicts length"
-msgstr "# tiene conflictos con la longitud"
-
-#: config/tc-vax.c:1697
-msgid "# bars register"
-msgstr "# prohibe el registro"
-
-#: config/tc-vax.c:1717
-msgid "writing or modifying # is unpredictable"
-msgstr "escribir o modificar # es impredecible"
-
-#: config/tc-vax.c:1743
-msgid "length not needed"
-msgstr "no se necesita la longitud"
-
-#: config/tc-vax.c:1750
-msgid "can't []index a register, because it has no address"
-msgstr "no se puede []indexar un registro, porque no tiene dirección"
-
-#: config/tc-vax.c:1752
-msgid "a register has no address"
-msgstr "un registro no tiene dirección"
-
-#: config/tc-vax.c:1761
-msgid "PC part of operand unpredictable"
-msgstr "PC como parte operativa es impredecible"
-
-#: config/tc-vax.c:1919
-msgid "odd number of bytes in operand description"
-msgstr "número impar de bytes en la descripción de operando"
-
-#: config/tc-vax.c:1933
-msgid "Bad operand"
-msgstr "Operando incorrecto"
-
-#: config/tc-vax.c:1938
-msgid "Not enough operands"
-msgstr "No hay suficientes operandos"
-
-#: config/tc-vax.c:2212
-msgid "SYMBOL TABLE not implemented"
-msgstr "SYMBOL TABLE no está implementado"
-
-#: config/tc-vax.c:2216
-msgid "TOKEN TRACE not implemented"
-msgstr "TOKEN TRACE no está implementado"
-
-#: config/tc-vax.c:2220
-#, c-format
-msgid "Displacement length %s ignored!"
-msgstr "¡Se descarta la longitud de desubicación %s!"
-
-#: config/tc-vax.c:2224
-#, c-format
-msgid "I don't need or use temp. file \"%s\"."
-msgstr "No se necesita o se utiliza el fichero temp. «%s»."
-
-#: config/tc-vax.c:2228
-msgid "I don't use an interpass file! -V ignored"
-msgstr "¡No se usa un fichero entre pasos! Se descarta -V"
-
-#: config/tc-vax.c:2252
-#, c-format
-msgid ""
-"VAX options:\n"
-"-d LENGTH\t\tignored\n"
-"-J\t\t\tignored\n"
-"-S\t\t\tignored\n"
-"-t FILE\t\t\tignored\n"
-"-T\t\t\tignored\n"
-"-V\t\t\tignored\n"
-msgstr ""
-"Opciones de VAX:\n"
-"-d LONGITUD\t\tse descarta\n"
-"-J\t\t\tse descarta\n"
-"-S\t\t\tse descarta\n"
-"-t FILE\t\t\tse descarta\n"
-"-T\t\t\tse descarta\n"
-"-V\t\t\tse descarta\n"
-
-#: config/tc-vax.c:2261
-#, c-format
-msgid ""
-"ELF options:\n"
-"-k -pic\t\t\tenable PIC mode\n"
-"-Q[y|n]\t\t\tignored\n"
-msgstr ""
-
-#: config/tc-vax.c:2422
-#, c-format
-msgid "Ignoring statement due to \"%s\""
-msgstr "Se descarta la declaración debido a «%s»"
-
-#: config/tc-vax.c:2439
-#, c-format
-msgid "Aborting because statement has \"%s\""
-msgstr "Se aborta porque la declaración tiene «%s»"
-
-#: config/tc-vax.c:2484
-msgid "Can't relocate expression"
-msgstr "No se puede reubicar la expresión"
-
-#: config/tc-vax.c:2587
-msgid "Bignum not permitted in short literal. Immediate mode assumed."
-msgstr "No se permite un número grande en una literal short. Se asume el modo inmediato."
-
-#: config/tc-vax.c:2596
-msgid "Can't do flonum short literal: immediate mode used."
-msgstr "No se puede hacer una literal short de un número de coma flotante: se usa el modo inmediato."
-
-#: config/tc-vax.c:2643
-#, fuzzy, c-format
-#| msgid "A bignum/flonum may not be a displacement: 0x%lx used"
-msgid "A bignum/flonum may not be a displacement: 0x%<PRIx64> used"
-msgstr "Un número grande/de coma flotante no puede ser una desubicación: se usa 0x%lx"
-
-#: config/tc-vax.c:2956
-#, c-format
-msgid "Short literal overflow(%ld.), immediate mode assumed."
-msgstr "Desbordamiento de la literal short (%ld.), se asume el modo inmediato."
-
-#: config/tc-vax.c:2965
-#, c-format
-msgid "Forced short literal to immediate mode. now_seg=%s to_seg=%s"
-msgstr "Se fuerza la literal short a modo inmediato. now_seg=%s to_seg=%s"
-
-#: config/tc-vax.c:3030
-msgid "Length specification ignored. Address mode 9F used"
-msgstr "Se descarta la especificación de longitud. Se usa el modo de direccionamiento 9F"
-
-#: config/tc-vax.c:3088
-msgid "Invalid operand: immediate value used as base address."
-msgstr "Operando inválido: valor inmediato empleado como dirección base."
-
-#: config/tc-vax.c:3090
-msgid "Invalid operand: immediate value used as address."
-msgstr "Operando inválido: valor inmediato empleado como dirección."
-
-#: config/tc-vax.c:3115
-#, c-format
-msgid "Symbol %s used as immediate operand in PIC mode."
-msgstr "Se utilizó el símbolo %s como operando inmediato en modo PIC."
-
-#: config/tc-visium.c:836
-msgid "Bad call to MD_ATOF()"
-msgstr "Equivocación de llamada a MD_ATOF()"
-
-#: config/tc-wasm32.c:117
-#, c-format
-msgid "wasm32 assembler options:\n"
-msgstr "opciones ensamblador wasm32:\n"
-
-#: config/tc-wasm32.c:364
-msgid "unexpected negative constant"
-msgstr "constante negativo inesperado"
-
-#: config/tc-wasm32.c:426
-msgid "no function type on PLT reloc"
-msgstr "ninguna función tipo en reubicación PLT"
-
-#: config/tc-wasm32.c:441
-msgid "couldn't find relocation to use"
-msgstr "no pudo encontrar reubicación a usar"
-
-#: config/tc-wasm32.c:513
-msgid "Not a function type"
-msgstr "No un tipo funcional"
-
-#: config/tc-wasm32.c:529
-#, c-format
-msgid "Unknown type %c\n"
-msgstr "Tipo de desconocido %c\n"
-
-#: config/tc-wasm32.c:551 config/tc-wasm32.c:577
-msgid "Unknown type"
-msgstr "Tipo desconocido"
-
-#: config/tc-wasm32.c:625
-msgid "only single block types allowed"
-msgstr "solo tipos de bloque simple permitido"
-
-#: config/tc-wasm32.c:635
-msgid "instruction does not take a block type"
-msgstr "la instrucción no toma un tipo de bloque"
-
-#: config/tc-wasm32.c:652
-msgid "missing block type"
-msgstr "tipo de bloque ausente"
-
-#: config/tc-wasm32.c:661 config/tc-wasm32.c:665
-msgid "missing alignment hint"
-msgstr "indicio de alineamiento ausente"
-
-#: config/tc-wasm32.c:669
-msgid "missing offset"
-msgstr "ausente desplazamiento"
-
-#: config/tc-wasm32.c:675
-msgid "missing local index"
-msgstr "indexado local ausente"
-
-#: config/tc-wasm32.c:680
-msgid "missing break count"
-msgstr "ausente contador de rupturas"
-
-#: config/tc-wasm32.c:685
-msgid "missing reserved current_memory/grow_memory argument"
-msgstr ""
-
-#: config/tc-wasm32.c:689
-msgid "missing call argument"
-msgstr "llamada argumental ausente"
-
-#: config/tc-wasm32.c:693
-msgid "missing call signature"
-msgstr "llamada de firma ausente"
-
-#: config/tc-wasm32.c:695
-msgid "missing table index"
-msgstr "tabla indexada ausente"
-
-#: config/tc-wasm32.c:726 config/tc-z80.c:3697 read.c:4019
-#, c-format
-msgid "junk at end of line, first unrecognized character is `%c'"
-msgstr "basura al final de la línea; el primer carácter descartado es `%c'"
-
-#: config/tc-xgate.c:215
-msgid "architecture variant invalid"
-msgstr "arquitectura variante no válida"
-
-#: config/tc-xgate.c:369
-#, c-format
-msgid ""
-"Freescale XGATE co-processor options:\n"
-" -mshort use 16-bit int ABI (default)\n"
-" -mlong use 32-bit int ABI\n"
-" -mshort-double use 32-bit double ABI\n"
-" -mlong-double use 64-bit double ABI (default)\n"
-" --mxgate specify the processor variant [default %s]\n"
-" --print-insn-syntax print the syntax of instruction in case of error\n"
-" --print-opcodes print the list of instructions with syntax\n"
-" --generate-example generate an example of each instruction"
-msgstr ""
-"Opciones paracoprocesador XGATE:\n"
-" -mshort emplea ABI int de 16-bit (por defecto)\n"
-" -mlong emplea ABI int de 32-bit\n"
-" -mshort-double emplear ABI double de 32-bit\n"
-" -mlong-double emplear ABI double de 64-bit (por defecto)\n"
-" --mxgate\t\t\tespecificar la variante del procesador [predet. %s]\n"
-" --print-insn-syntax escribe la sintaxis de la instrucción en caso de error\n"
-" --print-opcodes escribe la lista de instrucciones con sintaxis\n"
-" --generate-example genera un ejemplo de cada instrucción"
-
-#: config/tc-xgate.c:492
-msgid "opcode missing or not found on input line"
-msgstr ""
-
-#: config/tc-xgate.c:497
-#, fuzzy, c-format
-msgid "opcode %s not found in opcode hash table"
-msgstr "error interno: no se puede dispersar el código de operación «%s»: %s"
-
-#: config/tc-xgate.c:509
-msgid "matching operands to opcode"
-msgstr "coincidiendo operandos para código de operación"
-
-#: config/tc-xgate.c:549
-msgid ": processing macro, real opcode handle not found in hash"
-msgstr ""
-
-#: config/tc-xgate.c:680
-#, c-format
-msgid "Value %ld not aligned by 2 for 9-bit PC-relative branch."
-msgstr "Valor %ld no alineado por 2 para ramificación de 9-bit PC-relativa."
-
-#: config/tc-xgate.c:697
-#, c-format
-msgid "Value %ld not aligned by 2 for 10-bit PC-relative branch."
-msgstr "Valor %ld no alineado por 2 para ramificación de 10-bit PC-relativa."
-
-#: config/tc-xgate.c:724
-msgid "Value out of 3-bit range."
-msgstr "Valor externo de 3-bit de rango."
-
-#: config/tc-xgate.c:731
-msgid "Value out of 4-bit range."
-msgstr "Valor fuera de rango de 4-bit."
-
-#: config/tc-xgate.c:738
-msgid "Value out of 5-bit range."
-msgstr "Valor externo de 5-bit de rango."
-
-#: config/tc-xgate.c:875
-msgid ":operand has too many bits"
-msgstr ":operand tiene demasiadas bits"
-
-#: config/tc-xgate.c:994
-msgid "unknown operand count"
-msgstr "contador operacional desconocido"
-
-#: config/tc-xgate.c:1238 config/tc-xgate.c:1250
-msgid ": expected register name r0-r7 "
-msgstr ": se esperaba un nombre registrado r0-r7 "
-
-#: config/tc-xgate.c:1286
-#, c-format
-msgid ":operand value(%d) too big for constraint"
-msgstr ":operando valor%d) demasiado grande para instrucción"
-
-#: config/tc-xgate.c:1304
-msgid "you must use a hi/lo directive or 16-bit macro to load a 16-bit value."
-msgstr ""
-
-#: config/tc-xgate.c:1317
-msgid ":unknown relocation constraint size"
-msgstr ":unknown de reubicación de tamaño restringido"
-
-#: config/tc-xgate.c:1324
-msgid ": expected register name ccr "
-msgstr ": esperado nombre de registro ccr "
-
-#: config/tc-xgate.c:1330
-msgid ": expected register name pc "
-msgstr ": esperaba nombre de registrado pc "
-
-#: config/tc-xstormy16.c:77
-#, c-format
-msgid " XSTORMY16 specific command line options:\n"
-msgstr " Opciones de línea de mandatos específicas de XSTROMY16:\n"
-
-#: config/tc-xstormy16.c:223
-#, c-format
-msgid "unsupported fptr fixup size %d"
-msgstr "no se admite el tamaño de compostura fptr %d"
-
-#: config/tc-xstormy16.c:235
-#, c-format
-msgid "unsupported fixup size %d"
-msgstr "no se admite el tamaño de compostura %d"
-
-#: config/tc-xstormy16.c:266
-msgid "unsupported fptr fixup"
-msgstr "no se admite la compostura fptr"
-
-#: config/tc-xtensa.c:650
-msgid "illegal range of target hardware versions"
-msgstr "rango ilegal de versiones de hardware objetivo"
-
-#: config/tc-xtensa.c:831
-msgid "--density option is ignored"
-msgstr "se descarta la opción --density"
-
-#: config/tc-xtensa.c:834
-msgid "--no-density option is ignored"
-msgstr "se descarta la opción --no-density"
-
-#: config/tc-xtensa.c:852
-msgid "--generics is deprecated; use --transform instead"
-msgstr "--generics es obsoleto; utilice en su lugar --transform"
-
-#: config/tc-xtensa.c:855
-msgid "--no-generics is deprecated; use --no-transform instead"
-msgstr "--no-generics es obsoleto; utilice en su lugar --no-transform"
-
-#: config/tc-xtensa.c:858
-msgid "--relax is deprecated; use --transform instead"
-msgstr "--relax es obsoleto; utilice en su lugar --transform"
-
-#: config/tc-xtensa.c:861
-msgid "--no-relax is deprecated; use --no-transform instead"
-msgstr "--no-relax es obsoleto; utilice en su lugar --no-transform"
-
-#: config/tc-xtensa.c:878
-msgid "--absolute-literals option not supported in this Xtensa configuration"
-msgstr "la opción --absolute-literals no se admite en esta configuración Xtensa"
-
-#: config/tc-xtensa.c:951
-msgid "prefer-l32r conflicts with prefer-const16"
-msgstr "prefer-l32r tiene conflictos con prefer-const16"
-
-#: config/tc-xtensa.c:957
-msgid "prefer-const16 conflicts with prefer-l32r"
-msgstr "prefer-const16 tiene conflictos con prefer-l32r"
-
-#: config/tc-xtensa.c:966 config/tc-xtensa.c:975 config/tc-xtensa.c:979
-msgid "invalid target hardware version"
-msgstr "versión de hardware objetivo inválido"
-
-#: config/tc-xtensa.c:1025
-msgid "no-auto-litpools is incompatible with auto-litpool-limit"
-msgstr "no-auto-litpools es incompatible con auto-litpool-limit"
-
-#: config/tc-xtensa.c:1027 config/tc-xtensa.c:1030
-msgid "invalid auto-litpool-limit argument"
-msgstr "argumento inválido auto-litpool-limit"
-
-#: config/tc-xtensa.c:1032
-msgid "invalid auto-litpool-limit argument (range is 100-10000)"
-msgstr "argumento inválido auto-litpool-limit (rango es 100-10000)"
-
-#: config/tc-xtensa.c:1229
-msgid "unmatched .end directive"
-msgstr "directiva .end no coincidida"
-
-#: config/tc-xtensa.c:1258
-msgid ".begin directive with no matching .end directive"
-msgstr "directiva .begin sin una directiva .end coincidente"
-
-#: config/tc-xtensa.c:1299
-msgid "[no-]generics is deprecated; use [no-]transform instead"
-msgstr "[no-]generics es obsoleto; utilice en su lugar [no-]transform"
-
-#: config/tc-xtensa.c:1304
-msgid "[no-]relax is deprecated; use [no-]transform instead"
-msgstr "[no-]relax es obsoleto; utilice en su lugar [no-]transform"
-
-#: config/tc-xtensa.c:1317
-#, c-format
-msgid "directive %s cannot be negated"
-msgstr "la directiva %s no se puede negar"
-
-#: config/tc-xtensa.c:1323
-msgid "unknown directive"
-msgstr "desconoce directiva"
-
-#: config/tc-xtensa.c:1344 config/tc-xtensa.c:1440 config/tc-xtensa.c:1670
-#: config/tc-xtensa.c:5931
-msgid "directives are not valid inside bundles"
-msgstr "las directivas no son válidas dentro de una agrupación"
-
-#: config/tc-xtensa.c:1356
-msgid ".begin literal is deprecated; use .literal instead"
-msgstr "El uso de .begin literal es obsoleto. Utilice en su lugar .literal"
-
-#: config/tc-xtensa.c:1370
-msgid "cannot set literal_prefix inside literal fragment"
-msgstr "no se puede establecer literal_prefix dentro de un fragmento literal"
-
-#: config/tc-xtensa.c:1403
-msgid ".begin [no-]density is ignored"
-msgstr "se descarta .begin [no-]density"
-
-#: config/tc-xtensa.c:1410 config/tc-xtensa.c:1460
-msgid "Xtensa absolute literals option not supported; ignored"
-msgstr "Xtensa como opción absoluta literal no se admite; se descarta"
-
-#: config/tc-xtensa.c:1453
-msgid ".end [no-]density is ignored"
-msgstr "se descarta .end [no-]density"
-
-#: config/tc-xtensa.c:1478
-#, c-format
-msgid "does not match begin %s%s at %s:%d"
-msgstr "no coincide begin %s%s en %s:%d"
-
-#: config/tc-xtensa.c:1533
-msgid ".literal_position inside literal directive; ignoring"
-msgstr ".literal_position dentro de una directiva literal; se descarta"
-
-#: config/tc-xtensa.c:1552
-msgid ".literal not allowed inside .begin literal region"
-msgstr ".literal no se permite dentro de una región .begin literal"
-
-#: config/tc-xtensa.c:1580
-msgid "expected comma or colon after symbol name; rest of line ignored"
-msgstr "se esperaba coma o punto y coma tras nombre del símbolo: se descarta el resto de la línea"
-
-#: config/tc-xtensa.c:1639
-msgid "fall through frequency must be greater than 0"
-msgstr "la frecuencia de caída debe ser mayor a 0"
-
-#: config/tc-xtensa.c:1647
-msgid "branch target frequency must be greater than 0"
-msgstr "la frecuencia de ramificación de objetivo debe ser mayor a 0"
-
-#: config/tc-xtensa.c:1695
-#, c-format
-msgid "opcode-specific %s relocation used outside an instruction"
-msgstr "se usó la reubicación %s específica de código de operación fuera de una instrucción"
-
-#: config/tc-xtensa.c:1705
-#, c-format
-msgid "invalid use of %s relocation"
-msgstr "uso inválid de la reubicación %s"
-
-#: config/tc-xtensa.c:1901 config/tc-xtensa.c:1918
-#, c-format
-msgid "bad register name: %s"
-msgstr "nombre de registro incorrecto: %s"
-
-#: config/tc-xtensa.c:1907
-#, c-format
-msgid "bad register number: %s"
-msgstr "número de registro incorrecto: %s"
-
-#: config/tc-xtensa.c:1971
-msgid "pcrel relocation not allowed in an instruction"
-msgstr "no se permite la reubicación de pcrel en una instrucción"
-
-#: config/tc-xtensa.c:2074
-msgid "extra colon"
-msgstr "punto y coma extra"
-
-#: config/tc-xtensa.c:2135
-msgid "incorrect register number, ignoring"
-msgstr "número de registro incorrecto, se descarta"
-
-#: config/tc-xtensa.c:2216
-#, c-format
-msgid "cannot encode opcode \"%s\""
-msgstr "no se puede codificar el código de operación «%s»"
-
-#: config/tc-xtensa.c:2308
-#, c-format
-msgid "not enough operands (%d) for '%s'; expected %d"
-msgstr "no hay suficientes operandos (%d) para «%s»; se esperaban %d"
-
-#: config/tc-xtensa.c:2315
-#, c-format
-msgid "too many operands (%d) for '%s'; expected %d"
-msgstr "demasiados operandos (%d) para «%s»; se esperaban %d"
-
-#: config/tc-xtensa.c:2366
-#, c-format
-msgid "invalid register '%s' for '%s' instruction"
-msgstr "el registro «%s» inválido para «%s» como instrucción"
-
-#: config/tc-xtensa.c:2373
-#, c-format
-msgid "invalid register number (%ld) for '%s' instruction"
-msgstr "número de registro (%ld) inválido para instrucción «%s»"
-
-#: config/tc-xtensa.c:2440
-#, c-format
-msgid "invalid register number (%ld) for '%s'"
-msgstr "número de registro inválido (%ld) para «%s»"
-
-#: config/tc-xtensa.c:2839
-#, c-format
-msgid "operand %d of '%s' has out of range value '%u'"
-msgstr "operando %d de «%s» tiene el valor fuera de rango '%u'"
-
-#: config/tc-xtensa.c:2845
-#, c-format
-msgid "operand %d of '%s' has invalid value '%u'"
-msgstr "operando %d de «%s» tiene el valor inválido '%u'"
-
-#: config/tc-xtensa.c:2892
-#, c-format
-msgid "internal error: unknown option name '%s'"
-msgstr "error interno: nombre desconocido opcional '%s'"
-
-#: config/tc-xtensa.c:4001
-msgid "can't handle generation of literal/labels yet"
-msgstr "no se puede manipular la generación de literales/etiquetas aún"
-
-#: config/tc-xtensa.c:4005
-msgid "can't handle undefined OP TYPE"
-msgstr "no se puede manipular un OP TYPE sin definir"
-
-#: config/tc-xtensa.c:4066 config/tc-xtensa.c:4075
-#, c-format
-msgid "found %d operand for '%s': Expected %d"
-msgid_plural "found %d operands for '%s': Expected %d"
-msgstr[0] "se encontraron %d operando para «%s»: Se esperaban %d"
-msgstr[1] "se encontraron %d operandos para «%s»: Se esperaban %d"
-
-#: config/tc-xtensa.c:4098
-msgid "immediate operands sum to greater than 32"
-msgstr "la suma de los operandos inmediatos es mayor a 32"
-
-#: config/tc-xtensa.c:4350
-#, c-format
-msgid "invalid relocation for operand %i of '%s'"
-msgstr "reubicación no válida para el operando %i de «%s»"
-
-#: config/tc-xtensa.c:4360
-#, c-format
-msgid "invalid expression for operand %i of '%s'"
-msgstr "expresión no válida para el operando %i en «%s»"
-
-#: config/tc-xtensa.c:4370
-#, c-format
-msgid "invalid relocation in instruction slot %i"
-msgstr "reubicación no válida en la ranura de instrucción %i"
-
-#: config/tc-xtensa.c:4377
-#, c-format
-msgid "undefined symbol for opcode \"%s\""
-msgstr "símbolo indefinido para el código de operación «%s»"
-
-#: config/tc-xtensa.c:4852
-msgid "opcode 'NOP.N' unavailable in this configuration"
-msgstr "cód op 'NOP.N' no está disponible en esta configuración"
-
-#: config/tc-xtensa.c:4912
-msgid "get_expanded_loop_offset: invalid opcode"
-msgstr "get_expanded_loop_offset: código de operación inválido"
-
-#: config/tc-xtensa.c:5073
-#, c-format
-msgid "assembly state not set for first frag in section %s"
-msgstr "no se estableció el estado de ensamblado para el primer fragmento en la sección %s"
-
-#: config/tc-xtensa.c:5126
-#, c-format
-msgid "unaligned branch target: %d bytes at 0x%lx"
-msgstr "objetivo de ramificación sin alinear: %d bytes en 0x%lx"
-
-#: config/tc-xtensa.c:5170
-#, c-format
-msgid "unaligned loop: %d bytes at 0x%lx"
-msgstr "ciclo sin alinear: %d bytes en 0x%lx"
-
-#: config/tc-xtensa.c:5195
-msgid "unexpected fix"
-msgstr "corrección inesperada"
-
-#: config/tc-xtensa.c:5206 config/tc-xtensa.c:5210
-msgid "undecodable fix"
-msgstr "fix que no se puede decodificar"
-
-#: config/tc-xtensa.c:5371
-msgid "labels are not valid inside bundles"
-msgstr "las etiquetas no son válidas dentro de una agrupación"
-
-#: config/tc-xtensa.c:5391
-msgid "invalid last instruction for a zero-overhead loop"
-msgstr "la instrucción last no válida para un ciclo con adelanto cero"
-
-#: config/tc-xtensa.c:5458
-msgid "extra opening brace"
-msgstr "llave que abre extra"
-
-#: config/tc-xtensa.c:5468
-msgid "extra closing brace"
-msgstr "llave que cierra extra"
-
-#: config/tc-xtensa.c:5495
-msgid "missing closing brace"
-msgstr "falta llave que cierra"
-
-#: config/tc-xtensa.c:5593 config/tc-xtensa.c:5622
-#, c-format
-msgid "wrong number of operands for '%s'"
-msgstr "número incorrecto de operandos para «%s»"
-
-#: config/tc-xtensa.c:5609
-#, c-format
-msgid "bad relocation expression for '%s'"
-msgstr "expresión de reubicación incorrecta para «%s»"
-
-#: config/tc-xtensa.c:5644
-#, c-format
-msgid "unknown opcode or format name '%s'"
-msgstr "código de operación o nombre de formato desconocido «%s»"
-
-#: config/tc-xtensa.c:5650
-msgid "format names only valid inside bundles"
-msgstr "los nombres de formato solo son válidos dentro de agregados"
-
-#: config/tc-xtensa.c:5655
-#, c-format
-msgid "multiple formats specified for one bundle; using '%s'"
-msgstr "se especificaron múltiples formatos para un agregado; se usa «%s»"
-
-#: config/tc-xtensa.c:5705
-msgid "entry instruction with stack decrement < 16"
-msgstr "la instrucción entry con decremento de pila < 16"
-
-# entry → entrada o asiento
-#: config/tc-xtensa.c:5759
-msgid "unaligned entry instruction"
-msgstr "entrada de instrucción sin alinear"
-
-#: config/tc-xtensa.c:5824
-msgid "bad instruction format"
-msgstr "formato de instrucción incorrecto"
-
-#: config/tc-xtensa.c:5827
-msgid "invalid relocation"
-msgstr "reubicación no válida"
-
-#: config/tc-xtensa.c:5838
-#, c-format
-msgid "invalid relocation for '%s' instruction"
-msgstr "reubicación para instrucción '%s' no válida"
-
-#: config/tc-xtensa.c:5850
-#, c-format
-msgid "invalid relocation for operand %d of '%s'"
-msgstr "reubicación no válida para el operando %d de «%s»"
-
-#: config/tc-xtensa.c:6133
-#, c-format
-msgid "unhandled local relocation fix %s"
-msgstr "compostura de reubicación local %s sin manipular"
-
-#: config/tc-xtensa.c:6182
-#, c-format
-msgid "internal error; cannot generate `%s' relocation"
-msgstr "error interno; incapaz de generar «%s» reubicado"
-
-#: config/tc-xtensa.c:6399
-msgid "The option \"--no-allow-flix\" prohibits multi-slot flix."
-msgstr "La opción \"--no-allow-flix\" prohibe flix en ranuras múltiples."
-
-#: config/tc-xtensa.c:6406
-msgid "couldn't find a valid instruction format"
-msgstr "no se puede encontrar un formato de instrucción válido"
-
-#: config/tc-xtensa.c:6407
-#, c-format
-msgid " ops were: "
-msgstr " ops fueron: "
-
-#: config/tc-xtensa.c:6409
-#, c-format
-msgid " %s;"
-msgstr " %s;"
-
-#: config/tc-xtensa.c:6419
-#, c-format
-msgid "mismatch for format '%s': #slots = %d, #opcodes = %d"
-msgstr ""
-
-#: config/tc-xtensa.c:6428 config/tc-xtensa.c:6525
-msgid "illegal resource usage in bundle"
-msgstr "se incluyó un recurso ilegal en el agregado"
-
-#: config/tc-xtensa.c:6614
-#, c-format
-msgid "opcodes '%s' (slot %d) and '%s' (slot %d) write the same register"
-msgstr "ambos códigos operacionales «%s» (ranura %d) y «%s» (ranura %d) escriben en el mismo registro"
-
-#: config/tc-xtensa.c:6619
-#, c-format
-msgid "opcodes '%s' (slot %d) and '%s' (slot %d) write the same state"
-msgstr "ambos códigos operacionales «%s» (ranura %d) y «%s» (ranura %d) escriben en el mismo estado"
-
-#: config/tc-xtensa.c:6624
-#, c-format
-msgid "opcodes '%s' (slot %d) and '%s' (slot %d) write the same port"
-msgstr "ambos códigos operacionales «%s» (ranura %d) y «%s» (ranura %d) escriben en el mismo puerto"
-
-#: config/tc-xtensa.c:6629
-#, c-format
-msgid "opcodes '%s' (slot %d) and '%s' (slot %d) both have volatile port accesses"
-msgstr "ambos códigos operacionales «%s» (ranura %d) y «%s» (ranura %d) tienen acceso de puerto volatile"
-
-#: config/tc-xtensa.c:6645
-msgid "multiple branches or jumps in the same bundle"
-msgstr "múltiples ramificaciones o saltos en el mismo agregado"
-
-#: config/tc-xtensa.c:7097
-msgid "cannot assemble into a literal fragment"
-msgstr "no se puede ensamblar en un fragmento literal"
-
-#: config/tc-xtensa.c:7099
-msgid "..."
-msgstr "..."
-
-#: config/tc-xtensa.c:8318
-msgid "instruction sequence (write a0, branch, retw) may trigger hardware errata"
-msgstr "la secuencia de instrucción (write a0, branch, retw) puede activar errores de hardware"
-
-#: config/tc-xtensa.c:8430
-msgid "branching or jumping to a loop end may trigger hardware errata"
-msgstr "la ramificación o salto al final de un ciclo puede activar errores de hardware"
-
-#: config/tc-xtensa.c:8512
-msgid "loop end too close to another loop end may trigger hardware errata"
-msgstr "el final de un ciclo demasiado cerca a otro final de ciclo puede activar errores de hardware"
-
-#: config/tc-xtensa.c:8521
-#, c-format
-msgid "fr_var %lu < length %d"
-msgstr "fr_var %lu < longitud %d"
-
-#: config/tc-xtensa.c:8679
-msgid "loop containing less than three instructions may trigger hardware errata"
-msgstr "un ciclo que contiene menos de tres instrucciones puede activar errores de hardware"
-
-#: config/tc-xtensa.c:8751
-msgid "undecodable instruction in instruction frag"
-msgstr "la instrucción no decodificable en la instrucción frag"
-
-#: config/tc-xtensa.c:8861
-msgid "invalid empty loop"
-msgstr "ciclo vacío inválido"
-
-#: config/tc-xtensa.c:8866
-msgid "loop target does not follow loop instruction in section"
-msgstr "el objetivo del ciclo no sigue la instrucción loop en la sección"
-
-#: config/tc-xtensa.c:9433
-msgid "cannot find suitable trampoline"
-msgstr "no puede encontrar lanzador útil"
-
-#: config/tc-xtensa.c:9688
-msgid "bad relaxation state"
-msgstr "estado de relajación incorrecto"
-
-#: config/tc-xtensa.c:9746
-#, c-format
-msgid "fr_var (%ld) < length (%d)"
-msgstr "fr_var (%ld) < longitud (%d)"
-
-#: config/tc-xtensa.c:10446
-msgid "jump target out of range; no usable trampoline found"
-msgstr "omite objetivo fuera de rango; trampolín encontrado no utilizable"
-
-#: config/tc-xtensa.c:10570
-msgid "invalid relaxation fragment result"
-msgstr "resultado de fragmento de relajación inválido"
-
-#: config/tc-xtensa.c:10652
-msgid "unable to widen instruction"
-msgstr "incapaz de extender instrucción"
-
-#: config/tc-xtensa.c:10790
-msgid "multiple literals in expansion"
-msgstr "literales múltiples en la expansión"
-
-#: config/tc-xtensa.c:10794
-msgid "no registered fragment for literal"
-msgstr "no hay un fragmento registrado para la literal"
-
-#: config/tc-xtensa.c:10796
-msgid "number of literal tokens != 1"
-msgstr "número de elementos literales != 1"
-
-#: config/tc-xtensa.c:10925 config/tc-xtensa.c:10931
-#, c-format
-msgid "unresolved loop target symbol: %s"
-msgstr "símbolo objetivo del ciclo sin resolver: %s"
-
-#: config/tc-xtensa.c:11419
-#, c-format
-msgid "fixes not all moved from %s"
-msgstr "no se ‘movi’eron todas las composturas de %s"
-
-#: config/tc-xtensa.c:11547
-msgid "literal pool location required for text-section-literals; specify with .literal_position"
-msgstr "se requiere la ubicación del conjunto de literales para text-section-literals; especifique con .literal_position"
-
-#: config/tc-xtensa.c:12407
-msgid "too many operands in instruction"
-msgstr "demasiados operandos en la instrucción"
-
-#: config/tc-xtensa.c:12617
-msgid "invalid symbolic operand"
-msgstr "operando de símbolo inválido"
-
-#: config/tc-xtensa.c:12678
-msgid "operand number mismatch"
-msgstr "no coincide el número de operandos"
-
-#: config/tc-xtensa.c:12682
-#, c-format
-msgid "cannot encode opcode \"%s\" in the given format \"%s\""
-msgstr "no se puede codificar el código de operación «%s» en el formato dado «%s»"
-
-#: config/tc-xtensa.c:12707
-#, c-format
-msgid "xtensa-isa failure: %s"
-msgstr "fallo xtensa-isa: %s"
-
-#: config/tc-xtensa.c:12784
-msgid "invalid opcode"
-msgstr "código de operación inválido"
-
-#: config/tc-xtensa.c:12790
-msgid "too few operands"
-msgstr "muy pocos operandos"
-
-#: config/tc-xtensa.c:12796
-msgid "too many operands"
-msgstr "demasiados operandos"
-
-#: config/tc-xtensa.c:12840
-msgid "multiple writes to the same register"
-msgstr "escrituras múltiples al mismo registro"
-
-#: config/tc-xtensa.c:12954 config/tc-xtensa.c:12960
-msgid "out of memory"
-msgstr "memoria agotada"
-
-#: config/tc-xtensa.c:13049
-msgid "TLS relocation not allowed in FLIX bundle"
-msgstr "TLS reubicado no permitido dentro del haz FLIX"
-
-#. Instructions that generate TLS relocations should always be
-#. relaxed in the front-end. If "record_fixup" is set, then this
-#. function is being called during back-end relaxation, so flag
-#. the unexpected behavior as an error.
-#: config/tc-xtensa.c:13055
-msgid "unexpected TLS relocation"
-msgstr "reubicación TLS inesperada"
-
-#: config/tc-xtensa.c:13099
-msgid "symbolic operand not allowed"
-msgstr "no se permite operando simbólico"
-
-#: config/tc-xtensa.c:13136
-msgid "cannot decode instruction format"
-msgstr "no se puede decodificar el formato de instrucción"
-
-#: config/tc-xtensa.c:13280
-msgid "ignoring extra '-rename-section' delimiter ':'"
-msgstr "se descarta el delimitador '-rename-section' adicional ':'"
-
-#: config/tc-xtensa.c:13285
-#, c-format
-msgid "ignoring invalid '-rename-section' specification: '%s'"
-msgstr "se descarta la especificación '-rename-section' no válida: '%s'"
-
-#: config/tc-xtensa.c:13296
-#, c-format
-msgid "section %s renamed multiple times"
-msgstr "la sección %s se renombró varias veces"
-
-#: config/tc-xtensa.c:13298
-#, c-format
-msgid "multiple sections remapped to output section %s"
-msgstr "secciones múltiples remapeadas a la sección de salida %s"
-
-#: config/tc-z80.c:199
-#, fuzzy, c-format
-#| msgid "Invalid COPR identifier"
-msgid "Invalid CPU is specified: %s"
-msgstr "Identificador COPR inválido"
-
-#: config/tc-z80.c:224
-#, fuzzy, c-format
-#| msgid "Invalid FTEST completer: %s"
-msgid "Invalid EXTENSION is specified: %s"
-msgstr "Completador FTEST inválido: %s"
-
-#: config/tc-z80.c:279
-#, fuzzy, c-format
-#| msgid "Invalid floating point number"
-msgid "invalid floating point numbers type `%s'"
-msgstr "Número de coma flotante inválido"
-
-#: config/tc-z80.c:300 config/tc-z80.c:309
-#, fuzzy, c-format
-#| msgid "Invalid expression on command line.\n"
-msgid "invalid INST in command line: %s"
-msgstr "Expresión inválida en la línea de órdenes.\n"
-
-#: config/tc-z80.c:403
-#, fuzzy, c-format
-#| msgid ""
-#| " -march=CPU[,+EXTENSION...]\n"
-#| " generate code for CPU and EXTENSION, CPU is one of:\n"
-msgid ""
-"\n"
-"CPU model options:\n"
-" -march=CPU[+EXT...][-EXT...]\n"
-"\t\t\t generate code for CPU, where CPU is one of:\n"
-msgstr ""
-" -march=CPU[,+EXTENSIÓN...]\n"
-" genera código para el CPU y la EXTENSIÓN. CPU es uno de:\n"
-
-#: config/tc-z80.c:409
-#, c-format
-msgid "And EXT is combination (+EXT - add, -EXT - remove) of:\n"
-msgstr ""
-
-#: config/tc-z80.c:412
-#, c-format
-msgid ""
-"\n"
-"Compatibility options:\n"
-" -local-prefix=TEXT\t treat labels prefixed by TEXT as local\n"
-" -colonless\t\t permit colonless labels\n"
-" -sdcc\t\t\t accept SDCC specific instruction syntax\n"
-" -fp-s=FORMAT\t\t set single precision FP numbers format\n"
-" -fp-d=FORMAT\t\t set double precision FP numbers format\n"
-"Where FORMAT one of:\n"
-" ieee754\t\t IEEE754 compatible (depends on directive)\n"
-" half\t\t\t IEEE754 half precision (16 bit)\n"
-" single\t\t IEEE754 single precision (32 bit)\n"
-" double\t\t IEEE754 double precision (64 bit)\n"
-" zeda32\t\t Zeda z80float library 32 bit format\n"
-" math48\t\t 48 bit format from Math48 library\n"
-"\n"
-"Default: -march=z80+xyhl+infc\n"
-msgstr ""
-
-#: config/tc-z80.c:618
-msgid "-- unterminated string"
-msgstr "-- cadena sin terminar"
-
-#: config/tc-z80.c:794
-#, fuzzy
-#| msgid "unrecognised instruction %s"
-msgid "undocumented instruction"
-msgstr "la instrucción %s no reconocida"
-
-#: config/tc-z80.c:838 config/tc-z80.c:844
-msgid "mismatched parentheses"
-msgstr "paréntesis sin coincidencia"
-
-#: config/tc-z80.c:936
-msgid "bad expression syntax"
-msgstr "sintaxis de expresión incorrecta"
-
-#: config/tc-z80.c:1147
-#, c-format
-msgid "%d-bit overflow (%+<PRId64>)"
-msgstr ""
-
-#: config/tc-z80.c:1162
-#, fuzzy, c-format
-#| msgid "invalid immediate size"
-msgid "invalid data size %d"
-msgstr "tamaño inmediato inválido"
-
-#: config/tc-z80.c:1247
-msgid "cannot make a relative jump to an absolute location"
-msgstr "no se puede hacer un salto relativo a una ubicación absoluta"
-
-#: config/tc-z80.c:1254
-#, c-format
-msgid "index overflow (%+<PRId64>)"
-msgstr ""
-
-#: config/tc-z80.c:1257
-#, c-format
-msgid "offset overflow (%+<PRId64>)"
-msgstr ""
-
-#: config/tc-z80.c:1460 config/tc-z80.c:1707 config/tc-z80.c:1750
-#: config/tc-z80.c:1831 config/tc-z80.c:1861 config/tc-z80.c:1920
-#: config/tc-z80.c:1980 config/tc-z80.c:2033 config/tc-z80.c:2066
-#: config/tc-z80.c:2123 config/tc-z80.c:2741 config/tc-z80.c:2790
-#: config/tc-z80.c:2828 config/tc-z80.c:2888 config/tc-z80.c:2948
-#: config/tc-z80.c:3024 config/tc-z80.c:3047
-msgid "bad instruction syntax"
-msgstr "equivocación de instrucción sintáctica"
-
-#: config/tc-z80.c:1898
-msgid "condition code invalid for jr"
-msgstr "código de condición inválido para jr"
-
-#: config/tc-z80.c:2487 config/tc-z80.c:2498 config/tc-z80.c:2514
-#: config/tc-z80.c:2547
-#, fuzzy
-#| msgid "score3d instruction."
-msgid "ADL mode instruction"
-msgstr "la instrucción score3d."
-
-#. SIS prefix, in Z80 it is LD B,B
-#. LIS prefix, in Z80 it is LD C,C
-#. SIL prefix, in Z80 it is LD D,D
-#. LIL prefix, in Z80 it is LD E,E
-#: config/tc-z80.c:2622
-#, fuzzy
-#| msgid "unsupported instruction `%s'"
-msgid "unsupported instruction, assembled as NOP"
-msgstr "no admitió instrucción «%s»"
-
-#: config/tc-z80.c:3215 config/tc-z80.c:3246
-msgid "parentheses ignored"
-msgstr "se descartan los paréntesis"
-
-#: config/tc-z80.c:3263
-#, fuzzy
-#| msgid "opcode `%s' not supported for target %s"
-msgid "CPU mode is unsupported by target"
-msgstr "no se admite el código de operación «%s» para el objetivo %s"
-
-#: config/tc-z80.c:3285
-#, fuzzy
-#| msgid "Tag name expected"
-msgid "assignment expected"
-msgstr "Se esperaba un nombre de etiqueta"
-
-#: config/tc-z80.c:3690
-#, fuzzy, c-format
-#| msgid "Unknown instruction '%s'"
-msgid "Unknown instruction `%s'"
-msgstr "Instrucción desconocida «%s»"
-
-#: config/tc-z80.c:3766
-#, fuzzy, c-format
-#| msgid "index offset out of range"
-msgid "8-bit signed offset out of range (%+ld)"
-msgstr "desplazamiento indexado fuera de rango"
-
-#: config/tc-z80.c:3789
-#, c-format
-msgid "8-bit overflow (%+ld)"
-msgstr ""
-
-#: config/tc-z80.c:3806
-#, c-format
-msgid "16-bit overflow (%+ld)"
-msgstr ""
-
-#: config/tc-z80.c:3814
-#, c-format
-msgid "24-bit overflow (%+ld)"
-msgstr ""
-
-#: config/tc-z80.c:3823
-#, c-format
-msgid "32-bit overflow (%+ld)"
-msgstr ""
-
-#: config/tc-z80.c:3836
-#, fuzzy, c-format
-#| msgid "md_apply_fix: unknown r_type 0x%x\n"
-msgid "md_apply_fix: unknown reloc type 0x%x\n"
-msgstr "md_apply_fix: r_type 0x%x desconocido\n"
-
-#: config/tc-z80.c:4033 config/tc-z80.c:4092
-#, fuzzy
-#| msgid "invalid syntax class"
-msgid "invalid syntax"
-msgstr "clase de sintaxis inválida"
-
-#: config/tc-z80.c:4111
-msgid "overflow"
-msgstr "desbordamiento"
-
-#: config/tc-z8k.c:281
-#, c-format
-msgid "register rr%d out of range"
-msgstr "el registro rr%d fuera de rango"
-
-#: config/tc-z8k.c:283
-#, c-format
-msgid "register rr%d does not exist"
-msgstr "el registro rr%d no existe"
-
-#: config/tc-z8k.c:295
-#, c-format
-msgid "register rh%d out of range"
-msgstr "el registro rh%d fuera de rango"
-
-#: config/tc-z8k.c:307
-#, c-format
-msgid "register rl%d out of range"
-msgstr "el registro rl%d fuera de rango"
-
-#: config/tc-z8k.c:320
-#, c-format
-msgid "register rq%d out of range"
-msgstr "el registro rq%d fuera de rango"
-
-#: config/tc-z8k.c:322
-#, c-format
-msgid "register rq%d does not exist"
-msgstr "el registro rq%d no existe"
-
-#: config/tc-z8k.c:334
-#, c-format
-msgid "register r%d out of range"
-msgstr "el registro r%d fuera de rango"
-
-#: config/tc-z8k.c:375
-#, c-format
-msgid "expected %c"
-msgstr "se esperaba %c"
-
-#: config/tc-z8k.c:390
-#, c-format
-msgid "register is wrong size for a word %s"
-msgstr "el registro tiene el tamaño incorrecto para un word %s"
-
-#: config/tc-z8k.c:404
-#, c-format
-msgid "register is wrong size for address %s"
-msgstr "el registro tiene el tamaño incorrecto para la dirección %s"
-
-#: config/tc-z8k.c:538
-#, c-format
-msgid "unknown interrupt %s"
-msgstr "desconoce interrupción %s"
-
-#. No interrupt type specified, opcode won't do anything.
-#: config/tc-z8k.c:561
-msgid "opcode has no effect"
-msgstr "el código de operación no tiene efecto"
-
-#: config/tc-z8k.c:672
-msgid "Missing ) in ra(rb)"
-msgstr "Ausente ) en ra(rb)"
-
-#: config/tc-z8k.c:752 config/tc-z8k.c:791
-#, c-format
-msgid "invalid condition code '%s'"
-msgstr "código condicional inválido «%s»"
-
-#: config/tc-z8k.c:764
-#, c-format
-msgid "invalid flag '%s'"
-msgstr "opción no válida «%s»"
-
-#: config/tc-z8k.c:918 config/tc-z8k.c:924
-msgid "invalid indirect register size"
-msgstr "tamaño de registro indirecto inválido"
-
-#: config/tc-z8k.c:941 config/tc-z8k.c:1107 config/tc-z8k.c:1112
-msgid "invalid control register name"
-msgstr "nombre de registro de control inválido"
-
-#: config/tc-z8k.c:1096
-msgid "immediate must be 1 or 2"
-msgstr "el inmediato debe ser 1 o 2"
-
-#: config/tc-z8k.c:1099
-msgid "immediate 1 or 2 expected"
-msgstr "se esperaba un inmediato 1 o 2"
-
-#: config/tc-z8k.c:1130
-msgid "can't use R0 here"
-msgstr "no se puede usar R0 aquí"
-
-#: config/tc-z8k.c:1288
-msgid "Can't find opcode to match operands"
-msgstr "No se puede encontrar el código de operación que coincida con los operandos"
-
-#: config/tc-z8k.c:1335
-#, c-format
-msgid "invalid architecture -z%s"
-msgstr "arquitectura -z%s no válida"
-
-#: config/tc-z8k.c:1354
-#, c-format
-msgid ""
-" Z8K options:\n"
-" -z8001 generate segmented code\n"
-" -z8002 generate unsegmented code\n"
-" -linkrelax create linker relaxable code\n"
-msgstr ""
-" Opciones de Z8K:\n"
-" -z8001 genera código segmentado\n"
-" -z8002 genera código sin segmentar\n"
-" -linkrelax crea código relajable por el enlazador\n"
-
-#: config/tc-z8k.c:1366
-#, c-format
-msgid "call to md_convert_frag\n"
-msgstr "se llama a md_convert_frag\n"
-
-#: config/tc-z8k.c:1473 config/tc-z8k.c:1513 config/tc-z8k.c:1536
-msgid "cannot branch to odd address"
-msgstr "no se puede ramificar a una dirección impar"
-
-#: config/tc-z8k.c:1477 config/tc-z8k.c:1540
-msgid "relative jump out of range"
-msgstr "salto relativo fuera de rango"
-
-#: config/tc-z8k.c:1495
-msgid "relative address out of range"
-msgstr "dirección relativa fuera de rango"
-
-#: config/tc-z8k.c:1516
-msgid "relative call out of range"
-msgstr "llamada relativa fuera de rango"
-
-#: config/tc-z8k.c:1548
-#, c-format
-msgid "md_apply_fix: unknown r_type 0x%x\n"
-msgstr "md_apply_fix: r_type 0x%x desconocido\n"
-
-#: config/tc-z8k.c:1560
-#, c-format
-msgid "call to md_estimate_size_before_relax\n"
-msgstr "se llama a md_estimate_size_before_relax\n"
-
-#: config/xtensa-relax.c:1579
-#, c-format
-msgid "invalid configuration option '%s' in transition rule '%s'"
-msgstr "la opción de configuración «%s» es no válida en la regla de transición «%s»"
-
-#: config/xtensa-relax.c:1704 config/xtensa-relax.c:1714
-#, c-format
-msgid "opcode '%s': no bound opname '%s' for precondition in '%s'"
-msgstr "código de operación «%s»: no hay un nombre operacional «%s» enlazado para la precondición en «%s»"
-
-#: config/xtensa-relax.c:1721
-#, c-format
-msgid "opcode '%s': precondition only contains constants in '%s'"
-msgstr "código de operación «%s»: la precondición solo contiene constantes en «%s»"
-
-#: config/xtensa-relax.c:1768
-msgid "expected one operand for generated literal"
-msgstr "se esperaba un operando para la literal generada"
-
-#: config/xtensa-relax.c:1775
-msgid "expected 0 operands for generated label"
-msgstr "se esperaban 0 operandos para la etiqueta generada"
-
-#: config/xtensa-relax.c:1788
-#, c-format
-msgid "invalid opcode '%s' in transition rule '%s'"
-msgstr "código de operación «%s» inválido en la regla de transición «%s»"
-
-#: config/xtensa-relax.c:1796
-#, c-format
-msgid "opcode '%s': replacement does not have %d op"
-msgid_plural "opcode '%s': replacement does not have %d ops"
-msgstr[0] "cód op «%s»: reemplazo no tiene %d operador"
-msgstr[1] "cód op «%s»: reemplazo no tiene %d operadores"
-
-#: config/xtensa-relax.c:1812
-#, c-format
-msgid "opcode '%s': cannot find literal definition"
-msgstr "código de operación «%s»: no se puede encontrar la definición literal"
-
-#: config/xtensa-relax.c:1828 config/xtensa-relax.c:1858
-#, c-format
-msgid "opcode '%s': unidentified operand '%s' in '%s'"
-msgstr "cód op «%s»: operando no identificado «%s» en «%s»"
-
-#: config/xtensa-relax.c:1853
-#, c-format
-msgid "unknown user-defined function %s"
-msgstr "función definida por el usuario %s desconocida"
-
-#: config/xtensa-relax.c:1864
-#, c-format
-msgid "opcode '%s': could not parse operand '%s' in '%s'"
-msgstr "código de operación «%s»: no pudo interpretar operando «%s» en «%s»"
-
-#: config/xtensa-relax.c:1904
-#, c-format
-msgid "could not parse INSN_PATTERN '%s'"
-msgstr "no se puede decodificar INSN_PATTERN «%s»"
-
-#: config/xtensa-relax.c:1908
-#, c-format
-msgid "could not parse INSN_REPL '%s'"
-msgstr "no se puede decodificar INSN_REPL «%s»"
-
-#: config/xtensa-relax.c:1919
-#, c-format
-msgid "could not build transition for %s => %s"
-msgstr "no se puede construir la transición para %s => %s"
-
-#: depend.c:194
-#, c-format
-msgid "can't open `%s' for writing"
-msgstr "no se puede abrir «%s» para escritura"
-
-#: depend.c:206
-#, c-format
-msgid "can't close `%s'"
-msgstr "no se puede cerrar «%s»"
-
-#: dw2gencfi.c:313 read.c:2532
-#, c-format
-msgid "bfd_set_section_flags: %s"
-msgstr "bfd_set_section_flags: %s"
-
-#: dw2gencfi.c:580 dw2gencfi.c:596
-#, c-format
-msgid "register save offset not a multiple of %u"
-msgstr "registrador guarda desplazamiento no un múltiplo de %u"
-
-#: dw2gencfi.c:678
-msgid "CFI state restore without previous remember"
-msgstr "CFI como declaración restaurada se utilizó sin un recuerdo previo"
-
-#: dw2gencfi.c:737
-msgid "missing separator"
-msgstr "ausente el separador"
-
-#: dw2gencfi.c:786
-msgid "bad register expression"
-msgstr "expresión de registro no válida"
-
-#: dw2gencfi.c:807 dw2gencfi.c:941 dw2gencfi.c:979 dw2gencfi.c:1050
-#: dw2gencfi.c:1123 dw2gencfi.c:1188 dw2gencfi.c:1387 scfidw2gen.c:176
-msgid "CFI instruction used without previous .cfi_startproc"
-msgstr "CFI como instrucción utilizada sin un precedente .cfi_startproc"
-
-#: dw2gencfi.c:1004
-msgid "invalid or unsupported encoding in .cfi_personality"
-msgstr "codificación no válida o no admitida en .cfi_personality"
-
-#: dw2gencfi.c:1011
-msgid ".cfi_personality requires encoding and symbol arguments"
-msgstr ".cfi_personality requiere argumentos de codificación y símbolo"
-
-#: dw2gencfi.c:1034
-msgid "wrong second argument to .cfi_personality"
-msgstr "segundo argumento incorrecto para .cfi_personality"
-
-#: dw2gencfi.c:1075 dw2gencfi.c:1151
-msgid "invalid or unsupported encoding in .cfi_lsda"
-msgstr "codificación no válida o no admitida en .cfi_lsda"
-
-#: dw2gencfi.c:1082
-msgid ".cfi_lsda requires encoding and symbol arguments"
-msgstr ".cfi_lsda requiere argumentos de codificación y símbolo"
-
-#: dw2gencfi.c:1107
-msgid "wrong second argument to .cfi_lsda"
-msgstr "segundo argumento incorrecto para .cfi_lsda"
-
-#: dw2gencfi.c:1173
-msgid "wrong third argument to .cfi_val_encoded_addr"
-msgstr "tercer argumento incorrecto para .cfi_val_encoded_addr"
-
-#: dw2gencfi.c:1272
-msgid "inconsistent uses of .cfi_sections"
-msgstr "utilizaciones inconsistentes de .cfi_sections"
-
-#: dw2gencfi.c:1283
-msgid "previous CFI entry not closed (missing .cfi_endproc)"
-msgstr "la entrada CFI previa no está cerrada (ausente .cfi_endproc)"
-
-#: dw2gencfi.c:1323 scfidw2gen.c:157
-msgid ".cfi_endproc without corresponding .cfi_startproc"
-msgstr ".cfi_endproc sin un .cfi_startproc correspondiente"
-
-#: dw2gencfi.c:1398
-msgid "wrong argument to .cfi_personality_id"
-msgstr "equivocación del argumento para .cfi_personality_id"
-
-#: dw2gencfi.c:1408
-msgid ".cfi_fde_data without corresponding .cfi_startproc"
-msgstr ".cfi_fde_data sin correspondiente .cfi_startproc"
-
-#: dw2gencfi.c:1516
-msgid "unexpected .cfi_inline_lsda"
-msgstr ".cfi_inline_lsda no esperado"
-
-#: dw2gencfi.c:1523
-msgid ".cfi_inline_lsda not valid for this frame"
-msgstr ".cfi_inline_lsda no válido para este marco"
-
-#: dw2gencfi.c:1531
-msgid ".cfi_inline_lsda seen for frame without .cfi_lsda"
-msgstr ""
-
-#: dw2gencfi.c:1544
-#, c-format
-msgid "Alignment too large: %d. assumed."
-msgstr "Alineación muy grande: %d asumido."
-
-#: dw2gencfi.c:1548
-msgid "Alignment negative: 0 assumed."
-msgstr "Alineación negativa: se asume 0."
-
-#: dw2gencfi.c:1574
-msgid ".cfi_inline_lsda is not supported for this target"
-msgstr ".cfi_inline_lsda no está apoyado para este destino"
-
-#: dw2gencfi.c:1581
-msgid ".cfi_fde_data is not supported for this target"
-msgstr ".cfi_fde_data no es compatible para este objetivo"
-
-#: dw2gencfi.c:1588
-msgid ".cfi_personality_id is not supported for this target"
-msgstr "no se admite .cfi_personality_id para este objetivo"
-
-#: dw2gencfi.c:1906
-#, c-format
-msgid "return column number %d overflows in CIE version 1"
-msgstr ""
-
-#: dw2gencfi.c:2388 dw2gencfi.c:2563
-msgid "open CFI at the end of file; missing .cfi_endproc directive"
-msgstr "abre CFI al final del fichero; directiva .cfi_endproc ausente"
-
-#: dw2gencfi.c:2519
-#, fuzzy
-#| msgid "CFI is not supported for this target"
-msgid ".sframe not supported for target"
-msgstr "CFI no admitido en este objetivo"
-
-#: dw2gencfi.c:2608
-msgid "CFI is not supported for this target"
-msgstr "CFI no admitido en este objetivo"
-
-#: dwarf2dbg.c:377 dwarf2dbg.c:3311
-msgid "view number mismatch"
-msgstr "vista numérica no coincide"
-
-#: dwarf2dbg.c:692
-#, fuzzy, c-format
-#| msgid "Big number is too big"
-msgid "file number %u is too big"
-msgstr "El número grande es demasiado grande"
-
-#: dwarf2dbg.c:924
-#, c-format
-msgid "file table slot %u is already occupied by a different file (%s%s%s vs %s%s%s)"
-msgstr ""
-
-#: dwarf2dbg.c:1180 dwarf2dbg.c:1274
-msgid "file number less than one"
-msgstr "número de fichero menor que uno"
-
-#: dwarf2dbg.c:1217
-#, fuzzy
-#| msgid "Second operand to .%s not a constant"
-msgid "md5 value too small or not a constant"
-msgstr "El segundo operando de .%s no es una constante"
-
-#: dwarf2dbg.c:1234
-#, fuzzy, c-format
-#| msgid "Big number is too big"
-msgid "file number %lu is too big"
-msgstr "El número grande es demasiado grande"
-
-#: dwarf2dbg.c:1281 dwarf2dbg.c:2304
-#, c-format
-msgid "unassigned file number %ld"
-msgstr "número de fichero %ld sin asignar"
-
-#: dwarf2dbg.c:1359
-msgid "is_stmt value not 0 or 1"
-msgstr "is_stmt valorado distinto de 0 o 1"
-
-#: dwarf2dbg.c:1373
-msgid "isa number less than zero"
-msgstr "número isa menor que uno"
-
-#: dwarf2dbg.c:1385
-msgid "discriminator less than zero"
-msgstr "discriminador menor que cero"
-
-#: dwarf2dbg.c:1404
-msgid "numeric view can only be asserted to zero"
-msgstr ""
-
-#: dwarf2dbg.c:1444
-#, c-format
-msgid "unknown .loc sub-directive `%s'"
-msgstr "deconoce sub-directorio .loc `%s'"
-
-#: dwarf2dbg.c:2438
-msgid "internal error: unknown dwarf2 format"
-msgstr "error interno: formato enana2 desconocido"
-
-#: ecoff.c:1559
-#, c-format
-msgid "string too big (%lu bytes)"
-msgstr "cadena demasiado grande (%lu bytes)"
-
-#: ecoff.c:1612 ecoff.c:1805 ecoff.c:1828 ecoff.c:1858 ecoff.c:2010
-#: ecoff.c:2126
-msgid "no current file pointer"
-msgstr "no hay un puntero a fichero actualmente"
-
-#: ecoff.c:1699
-msgid "too many st_End's"
-msgstr "demasiados st_End's"
-
-#: ecoff.c:2195
-msgid "fake .file after real one"
-msgstr ".file falso tras real"
-
-#: ecoff.c:2283
-msgid "filename goes over one page boundary"
-msgstr "el nombre de fichero sobrepasa el límite de una página"
-
-#: ecoff.c:2416
-msgid ".begin directive without a preceding .file directive"
-msgstr "directiva .begin sin una directiva .file precedente"
-
-#: ecoff.c:2423
-msgid ".begin directive without a preceding .ent directive"
-msgstr "directiva .begin sin una directiva .ent precedente"
-
-#: ecoff.c:2453
-msgid ".bend directive without a preceding .file directive"
-msgstr "directiva .bend sin una directiva .file precedente"
-
-#: ecoff.c:2460
-msgid ".bend directive without a preceding .ent directive"
-msgstr "directiva .bend sin una directiva .ent precedente"
-
-#: ecoff.c:2472
-msgid ".bend directive names unknown symbol"
-msgstr "símbolo desconocido en los nombres de la directiva .bend"
-
-#: ecoff.c:2514
-msgid ".def pseudo-op used inside of .def/.endef; ignored"
-msgstr "se utiliza el pseudo-operador .def dentro de .def/.endef; se descarta"
-
-#: ecoff.c:2516
-msgid "empty symbol name in .def; ignored"
-msgstr "nombre de símbolo vacío en .def; se descarta"
-
-#: ecoff.c:2551
-msgid ".dim pseudo-op used outside of .def/.endef; ignored"
-msgstr "se utiliza el pseudo-operador .dim fuera de .def/.endef; se descarta"
-
-#: ecoff.c:2566
-msgid "badly formed .dim directive"
-msgstr "directiva .dim mal formada"
-
-#: ecoff.c:2579
-msgid "too many .dim entries"
-msgstr "demasiadas entradas .dim"
-
-#: ecoff.c:2599
-msgid ".scl pseudo-op used outside of .def/.endef; ignored"
-msgstr "se utiliza el pseudo-operador .scl fuera de .def/.endef; se descarta"
-
-#: ecoff.c:2624
-msgid ".size pseudo-op used outside of .def/.endef; ignored"
-msgstr "se utiliza el pseudo-operador .size fuera de .def/.endef; se descarta"
-
-#: ecoff.c:2639
-msgid "badly formed .size directive"
-msgstr "directiva .size mal formada"
-
-#: ecoff.c:2652
-msgid "too many .size entries"
-msgstr "demasiadas entradas .size"
-
-#: ecoff.c:2674
-msgid ".type pseudo-op used outside of .def/.endef; ignored"
-msgstr "se utiliza el pseudo-operador .type fuera de .def/.endef; se descarta"
-
-#. FIXME: We could handle this by setting the continued bit.
-#. There would still be a limit: the .type argument can not
-#. be infinite.
-#: ecoff.c:2692
-#, c-format
-msgid "the type of %s is too complex; it will be simplified"
-msgstr "el tipo de %s es demasiado complejo; se simplificará"
-
-#: ecoff.c:2703
-msgid "Unrecognized .type argument"
-msgstr "No reconocido argumento .type"
-
-#: ecoff.c:2741
-msgid ".tag pseudo-op used outside of .def/.endef; ignored"
-msgstr "se utiliza el pseudo-operador .tag fuera de .def/.endef; se descarta"
-
-#: ecoff.c:2765
-msgid ".val pseudo-op used outside of .def/.endef; ignored"
-msgstr "se utiliza el pseudo-operador .val fuera de .def/.endef; se descarta"
-
-#: ecoff.c:2773
-msgid ".val expression is too complex"
-msgstr "la expresión .val es demasiado compleja"
-
-#: ecoff.c:2803
-msgid ".endef pseudo-op used before .def; ignored"
-msgstr "se utiliza el pseudo-operador .endef antes de .def; se descarta"
-
-#: ecoff.c:2829 ecoff.c:2910
-msgid "bad COFF debugging information"
-msgstr "información de depuración COFF incorrecta"
-
-#: ecoff.c:2878
-#, c-format
-msgid "no tag specified for %s"
-msgstr "no se especificó una marca para %s"
-
-#: ecoff.c:2980
-msgid ".end directive without a preceding .file directive"
-msgstr "directiva .end sin una directiva .file precedente"
-
-#: ecoff.c:3008
-msgid ".end directive names unknown symbol"
-msgstr "símbolo desconocido en los nombres de la directiva .end"
-
-#: ecoff.c:3038
-msgid "second .ent directive found before .end directive"
-msgstr "se encontró una segunda directiva .ent antes de la directiva .end"
-
-#: ecoff.c:3047
-#, c-format
-msgid "%s directive has no name"
-msgstr "%s de directiva no tiene ningún nombre"
-
-#: ecoff.c:3108
-msgid "no way to handle .file within .ent/.end section"
-msgstr "no es posible manipular un .file dentro de una sección .ent/.end"
-
-#: ecoff.c:3225
-msgid ".loc before .file"
-msgstr ".loc antes de .file"
-
-#: ecoff.c:3425
-#, c-format
-msgid ".stab%c is not supported"
-msgstr "no se admite .stab%c"
-
-#: ecoff.c:3435
-#, c-format
-msgid ".stab%c: ignoring non-zero other field"
-msgstr ".stab%c: se descarta el otro campo que no es cero"
-
-#: ecoff.c:3469
-#, c-format
-msgid "line number (%d) for .stab%c directive cannot fit in index field (20 bits)"
-msgstr "el número de línea (%d) para la directiva .stab%c no cabe en el campo de índice (20 bits)"
-
-#: ecoff.c:3503
-#, c-format
-msgid "illegal .stab%c directive, bad character"
-msgstr "directiva .stab%c ilegal, carácter incorrecto"
-
-#: ecoff.c:3952 ecoff.c:4140 ecoff.c:4165
-msgid ".begin/.bend in different segments"
-msgstr ".begin/.bend en segmentos diferentes"
-
-#: ecoff.c:4660
-msgid "missing .end or .bend at end of file"
-msgstr ".end ausente o .bend al final del fichero"
-
-#: ecoff.c:5137
-msgid "GP prologue size exceeds field size, using 0 instead"
-msgstr "GP como prólogo de tamaño del campo excedido, se utiliza 0 en su lugar"
-
-#: expr.c:74 read.c:4081
-msgid "bignum invalid"
-msgstr "bignum inválido"
-
-#: expr.c:76 read.c:4083 read.c:4588 read.c:5358
-msgid "floating point number invalid"
-msgstr "número de coma flotante inválido"
-
-#: expr.c:229
-msgid "bad floating-point constant: exponent overflow"
-msgstr "constante de coma flotante incorrecta: desbordamiento del exponente"
-
-#: expr.c:233
-#, c-format
-msgid "bad floating-point constant: unknown error code=%d"
-msgstr "constante de coma flotante incorrecta: código de error desconocido=%d"
-
-#: expr.c:408
-msgid "a bignum with underscores may not have more than 8 hex digits in any word"
-msgstr "un número grande con subrayados no puede tener más de 8 dígitos hexadecimales en cualquier palabra"
-
-#: expr.c:431
-msgid "a bignum with underscores must have exactly 4 words"
-msgstr "un número grande con subrayados debe tener exactamente 4 words"
-
-#. Either not seen or not defined.
-#. @@ Should print out the original string instead of
-#. the parsed number.
-#: expr.c:577
-#, c-format
-msgid "backward ref to unknown label \"%d:\""
-msgstr "referencia hacia atrás a la etiqueta desconocida \"%d:\""
-
-#: expr.c:690
-msgid "character constant too large"
-msgstr "la constante de carácter es demasiado grande"
-
-#: expr.c:1021
-#, c-format
-msgid "found '%c', expected: '%c'"
-msgstr "encontrado `%c', se esperaba: `%c'"
-
-#: expr.c:1024
-#, c-format
-msgid "missing '%c'"
-msgstr "ausente '%c'"
-
-#: expr.c:1036 read.c:4868
-msgid "EBCDIC constants are not supported"
-msgstr "EBCDIC como constante no son admitidos"
-
-#: expr.c:1188
-#, c-format
-msgid "Unary operator %c ignored because bad operand follows"
-msgstr "Se descarta el operador unario %c porque hay un operando incorrecto a continuación"
-
-#: expr.c:1252 expr.c:1274
-msgid "syntax error in .startof. or .sizeof."
-msgstr "error de sintaxis en .startof. o .sizeof."
-
-#: expr.c:1354 expr.c:1690
-#, c-format
-msgid "invalid use of operator \"%s\""
-msgstr "uso inválido del operador «%s»"
-
-#: expr.c:1872
-msgid "missing operand; zero assumed"
-msgstr "ausente operando; se asume cero"
-
-#: expr.c:1911
-msgid "left operand is a bignum; integer 0 assumed"
-msgstr "operando izquierdo es un número grande; se asume el entero 0"
-
-#: expr.c:1913
-msgid "left operand is a float; integer 0 assumed"
-msgstr "operando izquierdo es un número de coma flotante; se asume el entero 0"
-
-#: expr.c:1922
-msgid "right operand is a bignum; integer 0 assumed"
-msgstr "operando derecho es un número grande; se asume el entero 0"
-
-#: expr.c:1924
-msgid "right operand is a float; integer 0 assumed"
-msgstr "operando derecho es un número de coma flotante; se asume el entero 0"
-
-#: expr.c:2003 symbols.c:1705
-msgid "division by zero"
-msgstr "división por cero"
-
-#: expr.c:2053 symbols.c:1716
-msgid "shift count"
-msgstr "cuenta de desplazamiento"
-
-#: expr.c:2179
-msgid "operation combines symbols in different segments"
-msgstr "la operación combina símbolos en segmentos diferentes"
-
-#: expr.c:2552
-msgid "missing closing '\"'"
-msgstr "ausente cierre «\"»"
-
-#: expr.c:2580
-#, c-format
-msgid "'\\%c' in quoted symbol name; behavior may change in the future"
-msgstr ""
-
-#: frags.c:60
-msgid "attempt to allocate data in absolute section"
-msgstr "intentó asignar datos en la sección absoluta"
-
-#: frags.c:66
-msgid "attempt to allocate data in common section"
-msgstr "se intentó asignar datos en la sección común"
-
-#: frags.c:115
-#, c-format
-msgid "can't extend frag %lu char"
-msgid_plural "can't extend frag %lu chars"
-msgstr[0] "no puede extender %lu carácter fragmentado"
-msgstr[1] "no puede extender %lu caracteres fragmentados"
-
-#. Offset of size 8 bytes is not supported in SFrame format
-#. version 1.
-#: gen-sframe.c:410
-#, fuzzy
-#| msgid "unsupported syntax"
-msgid "SFrame unsupported offset value\n"
-msgstr "no se admite la sintaxis"
-
-#: gen-sframe.c:1009
-#, c-format
-msgid "skipping SFrame FDE; non-SP/FP register %u in .cfi_def_cfa"
-msgstr ""
-
-#: gen-sframe.c:1038
-#, c-format
-msgid "skipping SFrame FDE; non-SP/FP register %u in .cfi_def_cfa_register"
-msgstr ""
-
-#. No CFA base register in effect. Non-SP/FP CFA base register should
-#. not occur, as sframe_xlate_do_def_cfa[_register] would detect this.
-#: gen-sframe.c:1076
-msgid "skipping SFrame FDE; .cfi_def_cfa_offset without CFA base register in effect"
-msgstr ""
-
-#: gen-sframe.c:1137
-#, c-format
-msgid "skipping SFrame FDE; %s register %u in .cfi_val_offset"
-msgstr ""
-
-#: gen-sframe.c:1164
-#, c-format
-msgid "skipping SFrame FDE; %s register %u in .cfi_register"
-msgstr ""
-
-#: gen-sframe.c:1186
-msgid "skipping SFrame FDE; .cfi_remember_state without prior SFrame FRE state"
-msgstr ""
-
-#: gen-sframe.c:1282
-msgid "skipping SFrame FDE; .cfi_negate_ra_state_with_pc"
-msgstr ""
-
-#: gen-sframe.c:1309
-msgid "skipping SFrame FDE; .cfi_window_save"
-msgstr ""
-
-#: gen-sframe.c:1422
-#, fuzzy
-#| msgid "unknown"
-msgid "(unknown)"
-msgstr "desconocido"
-
-#: gen-sframe.c:1423
-#, c-format
-msgid "skipping SFrame FDE; CFI insn %s (%#x)"
-msgstr ""
-
-#: gen-sframe.c:1447
-#, c-format
-msgid "skipping SFrame FDE; non-default RA register %u"
-msgstr ""
-
-#: gen-sframe.c:1491
-msgid "skipping SFrame FDE; FP without RA on stack"
-msgstr ""
-
-#: ginsn.c:878
-#, c-format
-msgid "missing label '%s' in func '%s' may result in imprecise cfg"
-msgstr ""
-
-#: ginsn.c:987
-#, c-format
-msgid "GINSN: found unreachable code in func '%s'"
-msgstr ""
-
-#: ginsn.c:1209
-msgid "GINSN process for prev func not done"
-msgstr ""
-
-#: ginsn.c:1243
-#, c-format
-msgid "untraceable control flow for func '%s'"
-msgstr ""
-
-#: ginsn.c:1253
-#, c-format
-msgid "Bad cfg of ginsn of func '%s'"
-msgstr ""
-
-#: ginsn.c:1315 ginsn.c:1322
-#, fuzzy
-#| msgid "CFI is not supported for this target"
-msgid "ginsn unsupported for target"
-msgstr "CFI no admitido en este objetivo"
-
-#. For error messages.
-#. Detect if we are reading from stdin by examining the file
-#. name returned by as_where().
-#.
-#. [FIXME: We rely upon the name in the strcmp below being the
-#. same as the one used by input_scrub_new_file(), if that is
-#. not true, then this code will fail].
-#.
-#. If we are reading from stdin, then we need to save each input
-#. line here (assuming of course that we actually have a line of
-#. input to read), so that it can be displayed in the listing
-#. that is produced at the end of the assembly.
-#: input-file.c:136 input-scrub.c:259 listing.c:356
-msgid "{standard input}"
-msgstr "{entrada estándar}"
-
-#: input-file.c:141
-#, c-format
-msgid "can't open %s for reading: %s"
-msgstr "no se puede abrir %s para lectura: %s"
-
-#: input-file.c:150 input-file.c:228
-#, c-format
-msgid "can't read from %s: %s"
-msgstr "no se puede leer de %s: %s"
-
-#: input-file.c:267 listing.c:1456
-#, c-format
-msgid "can't close %s: %s"
-msgstr "no se puede cerrar %s: %s"
-
-#: input-scrub.c:289
-msgid "macros nested too deeply"
-msgstr "macros anidadas con demasiada profundidad"
-
-#: input-scrub.c:537 input-scrub.c:540
-msgid "macro invoked from here"
-msgstr ""
-
-#: itbl-ops.c:328
-#, c-format
-msgid "Unable to allocate memory for new instructions\n"
-msgstr "No se ha podido asignar memoria para las instrucciones nuevas\n"
-
-#: listing.c:255 messages.c:192 messages.c:194 messages.c:197
-msgid "Warning: "
-msgstr "Aviso: "
-
-#: listing.c:261 messages.c:266 messages.c:268 messages.c:271
-msgid "Error: "
-msgstr "Error: "
-
-#: listing.c:623
-#, c-format
-msgid "unable to rebuffer file: %s\n"
-msgstr "incapaz de reservar fichero búfer: %s\n"
-
-#: listing.c:1342
-#, c-format
-msgid ""
-"\n"
-" time stamp \t: %s\n"
-"\n"
-msgstr ""
-"\n"
-" marca tiempo \t: %s\n"
-"\n"
-
-#: listing.c:1352
-#, c-format
-msgid "%s "
-msgstr "%s "
-
-#: listing.c:1357
-#, c-format
-msgid ""
-"\n"
-"\t%s "
-msgstr ""
-"\n"
-"\t%s "
-
-#: listing.c:1367
-msgid ""
-"\n"
-" options passed\t: "
-msgstr ""
-"\n"
-" opciones pasadas\t: "
-
-#: listing.c:1406
-#, c-format
-msgid ""
-" GNU assembler version %s (%s)\n"
-"\t using BFD version %s."
-msgstr ""
-" Ensamblador de GNU versión %s (%s)\n"
-"\t utilizando BFD versión %s."
-
-#: listing.c:1409
-#, c-format
-msgid ""
-"\n"
-" input file \t: %s"
-msgstr ""
-"\n"
-" fich entrante \t: %s"
-
-#: listing.c:1410
-#, c-format
-msgid ""
-"\n"
-" output file \t: %s"
-msgstr ""
-"\n"
-" fich saliente \t: %s"
-
-#: listing.c:1411
-#, c-format
-msgid ""
-"\n"
-" target \t: %s"
-msgstr ""
-"\n"
-" destino \t: %s"
-
-#: listing.c:1435
-#, c-format
-msgid "can't open %s: %s"
-msgstr "no se puede abrir %s: %s"
-
-#: listing.c:1520
-msgid "strange paper height, set to no form"
-msgstr "tamaño de papel extraño, se establece a sin forma"
-
-#: listing.c:1544
-msgid "new paper width is too small"
-msgstr ""
-
-#: listing.c:1547
-#, fuzzy
-#| msgid "bad or irreducible absolute expression; zero assumed"
-msgid "bad or irreducible expression for paper width"
-msgstr "expresión absoluta incorrecta o irreducible; se asume cero"
-
-#: listing.c:1549
-#, fuzzy
-#| msgid "missing expression; zero assumed"
-msgid "missing expression for paper width"
-msgstr "falta una expresión; se asume cero"
-
-#: listing.c:1600
-msgid "new line in title"
-msgstr "línea nueva en el título"
-
-#: macro.c:399
-#, fuzzy, c-format
-#| msgid "% operator needs absolute expression"
-msgid "%% operator needs absolute expression"
-msgstr "el operador % necesita una expresión absoluta"
-
-#: macro.c:551
-#, c-format
-msgid "Missing parameter qualifier for `%s' in macro `%s'"
-msgstr "Ausente el calificador de parámetro para «%s» en la macro «%s»"
-
-#: macro.c:561
-#, c-format
-msgid "`%s' is not a valid parameter qualifier for `%s' in macro `%s'"
-msgstr "«%s» no es un calificador de parámetro válido para «%s» en la macro «%s»"
-
-#: macro.c:578
-#, c-format
-msgid "Pointless default value for required parameter `%s' in macro `%s'"
-msgstr "Valor por defecto sin sentido para el parámetro requerido «%s» en la macro «%s»"
-
-#: macro.c:588
-#, c-format
-msgid "A parameter named `%s' already exists for macro `%s'"
-msgstr "Ya existe un parámetro llamado «%s» para la macro «%s»"
-
-#: macro.c:626
-#, c-format
-msgid "Reserved word `%s' used as parameter in macro `%s'"
-msgstr "Se utilizó la palabra reservada «%s» como un parámetro en la macro «%s»"
-
-#: macro.c:680
-#, c-format
-msgid "unexpected end of file in macro `%s' definition"
-msgstr "final de fichero no esperado en la definición de macro «%s»"
-
-#: macro.c:692
-#, c-format
-msgid "missing `)' after formals in macro definition `%s'"
-msgstr "ausente `)' tras los formales en la definición de macro «%s»"
-
-#: macro.c:707
-msgid "Missing macro name"
-msgstr "Ausente el nombre de macro"
-
-#: macro.c:716
-#, c-format
-msgid "Bad parameter list for macro `%s'"
-msgstr "Lista de parámetros incorrecta para la macro «%s»"
-
-#: macro.c:724
-#, c-format
-msgid "Macro `%s' was already defined"
-msgstr "La macro «%s» ya está definida"
-
-#: macro.c:850 macro.c:852
-msgid "missing `)'"
-msgstr "ausente `)'"
-
-#: macro.c:941
-#, c-format
-msgid "`%s' was already used as parameter (or another local) name"
-msgstr "Ya se usó «%s» como nombre de parámetro (o nombre local)"
-
-#: macro.c:1113
-msgid "confusion in formal parameters"
-msgstr "confusión en los parámetros formales"
-
-#: macro.c:1121
-#, c-format
-msgid "Parameter named `%s' does not exist for macro `%s'"
-msgstr "El parámetro nombrado «%s» no existe para la macro «%s»"
-
-#: macro.c:1132
-#, c-format
-msgid "Value for parameter `%s' of macro `%s' was already specified"
-msgstr "El valor para parámetro «%s» de macro «%s» fue ya especificado"
-
-#: macro.c:1146
-msgid "can't mix positional and keyword arguments"
-msgstr "no se pueden mezclar argumentos posicionales y palabras clave"
-
-#: macro.c:1157
-msgid "too many positional arguments"
-msgstr "demasiados argumentos posicionales"
-
-#: macro.c:1205
-#, c-format
-msgid "Missing value for required parameter `%s' of macro `%s'"
-msgstr "Ausente el valor para el parámetro requerido «%s» de la macro «%s»"
-
-#: macro.c:1323
-#, c-format
-msgid "Attempt to purge non-existing macro `%s'"
-msgstr "Intentaba purgar macro inexistente «%s»"
-
-#: macro.c:1344
-msgid "unexpected end of file in irp or irpc"
-msgstr "final de fichero inesperado en irp o irpc"
-
-#: macro.c:1355
-msgid "missing model parameter"
-msgstr "ausente el parámetro modelo"
-
-#: messages.c:92
-#, c-format
-msgid "Assembler messages:\n"
-msgstr "Mensajes del ensamblador:\n"
-
-#: messages.c:329
-#, c-format
-msgid "Fatal error: "
-msgstr "Error fatal: "
-
-#: messages.c:351
-#, c-format
-msgid "Internal error (%s).\n"
-msgstr "Error interno (%s).\n"
-
-#: messages.c:353
-#, c-format
-msgid "Internal error in %s at %s:%d.\n"
-msgstr "Error interno en %s en %s:%d.\n"
-
-#: messages.c:355
-#, c-format
-msgid "Internal error at %s:%d.\n"
-msgstr "Error interno en %s:%d.\n"
-
-#: messages.c:358
-#, c-format
-msgid "Please report this bug.\n"
-msgstr "Por favor reporte este bicho.\n"
-
-#: messages.c:426
-#, fuzzy, c-format
-#| msgid "%s out of domain (%d is not a multiple of %d)"
-msgid "%s out of domain (%<PRId64> is not a multiple of %<PRId64>)"
-msgstr "%s fuera de dominio (%d no es un múltiplo de %d)"
-
-#. xgettext:c-format.
-#: messages.c:442
-#, fuzzy, c-format
-#| msgid "%s out of range (%d is not between %d and %d)"
-msgid "%s out of range (%<PRId64> is not between %<PRId64> and %<PRId64>)"
-msgstr "%s fuera de rango (%d no está entre %d y %d)"
-
-#. xgettext:c-format.
-#: messages.c:455
-#, fuzzy, c-format
-#| msgid "%s out of range (0x%s is not between 0x%s and 0x%s)"
-msgid "%s out of range (0x%<PRIx64> is not between 0x%<PRIx64> and 0x%<PRIx64>)"
-msgstr "%s fuera de rango (0x%s no está entre 0x%s y 0x%s)"
-
-#: output-file.c:37
-#, c-format
-msgid "can't open a bfd on stdout %s"
-msgstr "no se puede abrir un bfd en la salida estándar %s"
-
-#: output-file.c:44
-#, c-format
-msgid "selected target format '%s' unknown"
-msgstr "formato de objetivo seleccionado «%s» desconocido"
-
-#: output-file.c:46
-#, c-format
-msgid "can't create %s: %s"
-msgstr "no se puede crear %s: %s"
-
-#: read.c:584
-#, fuzzy, c-format
-#| msgid "error constructing %s pseudo-op table: %s"
-msgid "error constructing %s pseudo-op table"
-msgstr "error al construir la tabla de pseudo-operadores %s: %s"
-
-#: read.c:768
-msgid "cannot change section or subsection inside .bundle_lock"
-msgstr ""
-
-#: read.c:784
-#, c-format
-msgid ".bundle_lock sequence at %u bytes, but .bundle_align_mode limit is %u bytes"
-msgstr "secuencia .bundle_lock en %u bytes, pero límite .bundle_align_mode es %u bytes"
-
-#: read.c:793
-#, c-format
-msgid "single instruction is %u bytes long, but .bundle_align_mode limit is %u bytes"
-msgstr "la instrucción simple es %u bytes largos, pero límite .bundle_align_mode es %u bytes"
-
-#: read.c:834 read.c:2898 read.c:3526
-msgid "ignoring fill value in absolute section"
-msgstr "ignorando valor relleno dentro de sección absoluta"
-
-#: read.c:836 read.c:2913 read.c:3565
-#, c-format
-msgid "ignoring fill value in section `%s'"
-msgstr "ignorando valor rellenado dentro de sección «%s»"
-
-#: read.c:1276
-#, c-format
-msgid "unknown pseudo-op: `%s'"
-msgstr "pseudo-operador desconocido: «%s»"
-
-#: read.c:1329
-msgid "unable to continue with assembly."
-msgstr "incapaz de continuar con ensamblador."
-
-#: read.c:1363
-#, c-format
-msgid "local label too large near %s"
-msgstr ""
-
-#: read.c:1386
-#, fuzzy, c-format
-#| msgid "label \"%d$\" redefined"
-msgid "label \"%ld$\" redefined"
-msgstr "etiqueta \"%d$\" redefinida"
-
-#: read.c:1435
-msgid ".bundle_lock with no matching .bundle_unlock"
-msgstr "directiva .bundle_lock sin una coincidencia .bundle_unlock"
-
-#: read.c:1535
-msgid ".abort detected. Abandoning ship."
-msgstr "se detectó .abort. Se abandona la nave."
-
-#: read.c:1597
-#, c-format
-msgid "alignment too large: %u assumed"
-msgstr "alineamiento es muy grande: %u asumido"
-
-#: read.c:1629
-msgid "expected fill pattern missing"
-msgstr "ausente el patrón de relleno esperado"
-
-#: read.c:1654
-#, c-format
-msgid "fill pattern too long, truncating to %u"
-msgstr ""
-
-#: read.c:1755
-msgid "symbol name not recognised in the current locale"
-msgstr ""
-
-#. Some of the back ends can't deal with non-positive line numbers.
-#. Besides, it's silly. GCC however will generate a line number of
-#. zero when it is pre-processing builtins for assembler-with-cpp files:
-#.
-#. # 0 "<built-in>"
-#.
-#. We do not want to barf on this, especially since such files are used
-#. in the GCC and GDB testsuites. So we check for negative line numbers
-#. rather than non-positive line numbers.
-#: read.c:2104
-#, c-format
-msgid "line numbers must be positive; line number %d rejected"
-msgstr "los números de línea deben ser positivos; número de línea %d rechazada"
-
-#: read.c:2142
-#, c-format
-msgid "incompatible flag %i in line directive"
-msgstr "opción incompatible %i en la directriz de línea"
-
-#: read.c:2154
-#, c-format
-msgid "unsupported flag %i in line directive"
-msgstr "no se admite la opción %i en la directriz de línea"
-
-#: read.c:2197
-msgid "start address not supported"
-msgstr "no se admite la dirección de inicio"
-
-#: read.c:2206
-msgid ".err encountered"
-msgstr "se encontró .err"
-
-#: read.c:2222
-msgid ".error directive invoked in source file"
-msgstr "se invocó la directiva .error en el fichero fuente"
-
-#: read.c:2223
-msgid ".warning directive invoked in source file"
-msgstr "se invocó la directiva .warning en el fichero fuente"
-
-#: read.c:2229
-#, c-format
-msgid "%s argument must be a string"
-msgstr "argumento %s debe ser una cadena textual"
-
-#: read.c:2261 read.c:2263
-#, c-format
-msgid ".fail %ld encountered"
-msgstr "encontrado .fail %ld"
-
-#: read.c:2303
-#, c-format
-msgid ".fill size clamped to %d"
-msgstr "tamaño .fill restringido a %d"
-
-#: read.c:2308
-msgid "size negative; .fill ignored"
-msgstr "tamaño negativo; se descarta .fill"
-
-#: read.c:2314
-msgid "repeat < 0; .fill ignored"
-msgstr "repetición < 0; se descarta .fill"
-
-#: read.c:2321
-msgid "non-constant fill count for absolute section"
-msgstr "contador de relleno no constante para sección absoluta"
-
-#: read.c:2326
-msgid "attempt to fill absolute section with non-zero value"
-msgstr "trata rellenar sección absoluta con valor distinto de cero"
-
-#: read.c:2333
-#, c-format
-msgid "attempt to fill section `%s' with non-zero value"
-msgstr "trata rellenar sección «%s» con valor distinto de cero"
-
-#: read.c:2498
-#, c-format
-msgid "unrecognized .linkonce type `%s'"
-msgstr "no reconocido tipo .linkonce «%s»"
-
-#: read.c:2510
-msgid ".linkonce is not supported for this object file format"
-msgstr ".linkonce no admitido en este formato de fichero objeto"
-
-#: read.c:2605
-msgid "expected alignment after size"
-msgstr "se esperaba alineamiento tras tamaño"
-
-#: read.c:2818
-#, c-format
-msgid "attempt to redefine pseudo-op `%s' ignored"
-msgstr "intenta redefinir pseudo-operador «%s» descartado"
-
-#: read.c:2839
-msgid "ignoring macro exit outside a macro definition."
-msgstr "se descarta la salida de macro fuera de una definición de macro."
-
-#: read.c:2893
-#, c-format
-msgid "invalid segment \"%s\""
-msgstr "segmento no válido «%s»"
-
-#: read.c:2901
-msgid "only constant offsets supported in absolute section"
-msgstr "solo se admiten los desplazamientos constantes en la sección absoluta"
-
-#: read.c:2944
-msgid "MRI style ORG pseudo-op not supported"
-msgstr "MRI de estilo ORG pseudo-operador no apoyado"
-
-#: read.c:3115
-#, c-format
-msgid ".end%c encountered without preceding %s"
-msgstr "se encontró .end%c sin un %s precedente"
-
-#: read.c:3149
-#, fuzzy, c-format
-#| msgid "negative count for %s - ignored"
-msgid "excessive count %zu for %s - ignored"
-msgstr "contador negativo para %s - descartado"
-
-#: read.c:3156
-#, c-format
-msgid "%s without %s"
-msgstr "%s sin %s"
-
-#: read.c:3190
-msgid "`\\' at end of line/statement; ignored"
-msgstr ""
-
-#: read.c:3469
-msgid "unsupported variable size or fill value"
-msgstr "no se admiten el tamaño de la variable o el valor de relleno"
-
-#: read.c:3477
-#, c-format
-msgid "size value for space directive too large: %lx"
-msgstr ""
-
-#: read.c:3503
-msgid ".space repeat count is negative, ignored"
-msgstr "el contador de repetición .space es negativo, se descartó"
-
-#: read.c:3509
-msgid ".space repeat count is zero, ignored"
-msgstr "el contador de repetición .space es cero, se descartó"
-
-#: read.c:3517
-#, fuzzy
-#| msgid ".space repeat count is zero, ignored"
-msgid ".space repeat count overflow, ignored"
-msgstr "el contador de repetición .space es cero, se descartó"
-
-#: read.c:3549
-msgid "space allocation too complex in absolute section"
-msgstr "la asignación de espacio es demasiado compleja en la sección absoluta"
-
-#: read.c:3555
-msgid "space allocation too complex in common section"
-msgstr "la asignación de espacio es demasiado compleja en la sección común"
-
-#: read.c:3664
-#, fuzzy
-#| msgid "unsupported flag %i in line directive"
-msgid "unsupported variable nop control in .nops directive"
-msgstr "no se admite la opción %i en la directriz de línea"
-
-#: read.c:3670
-#, fuzzy
-#| msgid "negative count for %s - ignored"
-msgid "negative nop control byte, ignored"
-msgstr "contador negativo para %s - descartado"
-
-#: read.c:3739
-#, fuzzy, c-format
-#| msgid "unknown floating type type '%c'"
-msgid "unknown floating type '%c'"
-msgstr "desconoce tipo de coma flotante '%c'"
-
-#: read.c:3965
-#, c-format
-msgid "%s: would close weakref loop: %s"
-msgstr "%s: cerraría el ciclo weakref: %s"
-
-#: read.c:4022
-#, c-format
-msgid "junk at end of line, first unrecognized character valued 0x%x"
-msgstr "basura al final de la línea; el primer carácter descartado tiene valor 0x%x"
-
-#: read.c:4150 write.c:2426
-#, c-format
-msgid "`%s' can't be equated to common symbol `%s'"
-msgstr "«%s» no puede ser igualdad al símbolo común «%s»"
-
-#: read.c:4278
-msgid "unexpected `\"' in expression"
-msgstr "`«' o `»' inesperada dentro de expresión"
-
-#: read.c:4291
-msgid "rva without symbol"
-msgstr "rva sin símbolo"
-
-#: read.c:4366
-msgid "missing or bad offset expression"
-msgstr "expresión de desplazamiento ausentente o incorrecta"
-
-#: read.c:4390
-msgid "missing reloc type"
-msgstr "ausente el tipo reubicado"
-
-#: read.c:4414
-msgid "unrecognized reloc type"
-msgstr "no reconocido el tipo reubicado"
-
-#: read.c:4430
-msgid "bad reloc expression"
-msgstr "expresión de reubicación incorrecta"
-
-#: read.c:4582 read.c:5352 read.c:5478
-msgid "zero assumed for missing expression"
-msgstr "se asume cero para la expresión ausentente"
-
-#: read.c:4602 read.c:5381 read.c:5497
-msgid "attempt to store value in absolute section"
-msgstr "se intentó almacenar un valor en la sección absoluta"
-
-#: read.c:4609 read.c:5387 read.c:5503
-#, c-format
-msgid "attempt to store non-zero value in section `%s'"
-msgstr "trata almacenar un valor distinto de cero en la sección «%s»"
-
-#. Leading bits contain both 0s & 1s.
-#: read.c:4686
-#, fuzzy, c-format
-#| msgid "value 0x%I64x truncated to 0x%I64x"
-msgid "value 0x%<PRIx64> truncated to 0x%<PRIx64>"
-msgstr "valora 0x%I64x truncado a 0x%I64x"
-
-#: read.c:4730
-#, c-format
-msgid "bignum truncated to %d byte"
-msgid_plural "bignum truncated to %d bytes"
-msgstr[0] "número grande truncado a %d bytes"
-msgstr[1] "número grande truncado a %d byte"
-
-#: read.c:4939 read.c:5090
-msgid "unresolvable or nonpositive repeat count; using 1"
-msgstr "cuenta de repetición sin resolver o no positiva; se utiliza 1"
-
-#: read.c:4982
-msgid "floating point constant too large"
-msgstr "constante de coma flotante demasiado grande"
-
-#: read.c:5047
-msgid "attempt to store float in absolute section"
-msgstr "trata almacenar flotante en sección absoluta"
-
-#: read.c:5054
-#, c-format
-msgid "attempt to store float in section `%s'"
-msgstr "trata almacenar un valor en la sección flotante «%s»"
-
-#: read.c:5484
-#, fuzzy
-#| msgid "bignum invalid"
-msgid "number invalid"
-msgstr "bignum inválido"
-
-#: read.c:5740
-#, fuzzy
-#| msgid "strings must be placed into a section"
-msgid "base64 strings must be placed into a section"
-msgstr "las cadenas se deben colocar en una sección"
-
-#: read.c:5747
-msgid "a string must follow the .base64 pseudo-op"
-msgstr ""
-
-#: read.c:5767
-msgid "expected double quote enclosed string as argument to .base64 pseudo-op"
-msgstr ""
-
-#: read.c:5784
-msgid "end of line encountered inside .base64 string"
-msgstr ""
-
-#: read.c:5795
-msgid ".base64 string terminated early"
-msgstr ""
-
-#: read.c:5800
-#, fuzzy
-#| msgid "base register expected"
-msgid ".base64 string terminated unexpectedly"
-msgstr "se esperaba un registro base"
-
-#: read.c:5807
-msgid "equals character only allowed at end of .base64 string"
-msgstr ""
-
-#: read.c:5816
-msgid "the equals character cannot start a block of four base64 encoded bytes"
-msgstr ""
-
-#: read.c:5822
-msgid "the equals character cannot be the second character in a block of four base64 encoded bytes"
-msgstr ""
-
-#: read.c:5832
-#, fuzzy, c-format
-#| msgid "invalid character %c in operand %d"
-msgid "invalid character '%c' found inside .base64 string"
-msgstr "carácter inválido %c en el operando %d"
-
-#: read.c:5834
-#, fuzzy, c-format
-#| msgid "invalid character %s in operand %d"
-msgid "invalid character %#x found inside .base64 string"
-msgstr "carácter inválido %s en operando %d"
-
-#: read.c:5860
-msgid "no base64 characters expected after '=' padding characters"
-msgstr ""
-
-#: read.c:5870
-msgid ".base64 string must have a terminating double quote character"
-msgstr ""
-
-#: read.c:5903
-#, c-format
-msgid "attempt to store non-empty string in section `%s'"
-msgstr "trata almacenar cadena no vacía dentro de sección «%s»"
-
-#: read.c:5965
-msgid "strings must be placed into a section"
-msgstr "las cadenas se deben colocar en una sección"
-
-#: read.c:6032
-msgid "expected <nn>"
-msgstr "se esperaba <nn>"
-
-#. To be compatible with BSD 4.2 as: give the luser a linefeed!!
-#: read.c:6073 read.c:6160
-msgid "unterminated string; newline inserted"
-msgstr "cadena sin terminar; se insertó una línea nueva"
-
-#: read.c:6174
-msgid "bad escaped character in string"
-msgstr "carácter escapado incorrectamente en la cadena"
-
-#: read.c:6198
-msgid "expected address expression"
-msgstr "se esperaba una expresión direccional"
-
-#: read.c:6217
-#, c-format
-msgid "symbol \"%s\" undefined; zero assumed"
-msgstr "símbolo indefinido «%s»; se asume cero"
-
-#: read.c:6220
-msgid "some symbol undefined; zero assumed"
-msgstr "algunos símbolos sin definir; se asumen cero"
-
-#: read.c:6254
-msgid "this string may not contain '\\0'"
-msgstr "esta cadena no puede contener '\\0'"
-
-#: read.c:6291
-msgid "missing string"
-msgstr "falta cadena"
-
-#: read.c:6406
-#, c-format
-msgid ".incbin count zero, ignoring `%s'"
-msgstr "la cuenta .incbin es cero, se descarta «%s»"
-
-#: read.c:6418
-#, c-format
-msgid "file not found: %s"
-msgstr "no se encontró el fichero: %s"
-
-#: read.c:6428
-#, fuzzy, c-format
-#| msgid "unable to locate include file: %s"
-msgid "unable to include `%s'"
-msgstr "no se puede localizar el fichero de inclusión: %s"
-
-#: read.c:6437
-#, c-format
-msgid "seek to end of .incbin file failed `%s'"
-msgstr "falló la búsqueda del final del fichero .incbin «%s»"
-
-#: read.c:6448
-#, c-format
-msgid "skip (%ld) or count (%ld) invalid for file size (%ld)"
-msgstr "salto (%ld) o cuenta (%ld) inválidos para el tamaño del fichero (%ld)"
-
-#: read.c:6455
-#, c-format
-msgid "could not skip to %ld in file `%s'"
-msgstr "no se puede omiter a %ld en el fichero «%s»"
-
-#: read.c:6464
-#, c-format
-msgid "truncated file `%s', %ld of %ld bytes read"
-msgstr "fichero «%s» truncado, leyeron %ld de %ld bytes"
-
-#: read.c:6601
-msgid "missing .func"
-msgstr "ausente .func"
-
-#: read.c:6620
-msgid ".endfunc missing for previous .func"
-msgstr "ausente .endfunc para el .func previo"
-
-#: read.c:6673
-#, c-format
-msgid ".bundle_align_mode alignment too large (maximum %u)"
-msgstr "alineamiento .bundle_align_mode demasiado grande (maximo %u)"
-
-#: read.c:6678
-msgid "cannot change .bundle_align_mode inside .bundle_lock"
-msgstr ""
-
-#: read.c:6692
-msgid ".bundle_lock is meaningless without .bundle_align_mode"
-msgstr ""
-
-#: read.c:6713
-msgid ".bundle_unlock without preceding .bundle_lock"
-msgstr "directiva .bundle_unlock sin precedente .bundle_lock"
-
-#: read.c:6726
-#, c-format
-msgid ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"
-msgstr ""
-
-#: read.c:6825
-#, c-format
-msgid "missing closing `%c'"
-msgstr "ausente de cierre `%c'"
-
-#: read.c:6827
-msgid "stray `\\'"
-msgstr "basura `\\'"
-
-#: remap.c:53
-#, c-format
-msgid "invalid argument '%s' to -fdebug-prefix-map"
-msgstr "argumento «%s» inválido para -fdebug-prefix-map"
-
-#: scfi.c:545
-msgid "SCFI: usage of REG_FP as scratch not supported"
-msgstr ""
-
-#: scfi.c:655
-msgid "SCFI: unsupported stack manipulation pattern"
-msgstr ""
-
-#: scfi.c:802 scfi.c:896
-msgid "SCFI: asymetrical register restore"
-msgstr ""
-
-#: scfi.c:969
-msgid "SCFI: Bad CFI propagation perhaps"
-msgstr ""
-
-#: scfi.c:1116
-#, c-format
-msgid "SCFI: forward pass failed for func '%s'"
-msgstr ""
-
-#: scfi.c:1123
-#, c-format
-msgid "SCFI: backward pass failed for func '%s'"
-msgstr ""
-
-#: scfi.c:1190
-msgid "SCFI: Invalid DWARF CFI opcode data"
-msgstr ""
-
-#. No other GINSN_TYPE_* expected.
-#: scfi.c:1242
-#, c-format
-msgid "SCFI: bad ginsn for func '%s'"
-msgstr ""
-
-#: scfi.c:1256 scfi.c:1265
-#, fuzzy
-#| msgid "CFI is not supported for this target"
-msgid "SCFI: unsupported for target"
-msgstr "CFI no admitido en este objetivo"
-
-#: scfidw2gen.c:39
-msgid "SCFI ignores most user-specified CFI directives"
-msgstr ""
-
-#: scfidw2gen.c:132
-msgid "SCFI: missing previous SCFI endproc marker"
-msgstr ""
-
-#: stabs.c:187
-#, c-format
-msgid ".stab%c: missing comma"
-msgstr ".stab%c: falta coma"
-
-#: stabs.c:263
-#, fuzzy, c-format
-#| msgid "missing string"
-msgid ".stab%c: missing string"
-msgstr "falta cadena"
-
-#. This could happen for example with a source file with a huge
-#. number of lines. The only cure is to use a different debug
-#. format, probably DWARF.
-#: stabs.c:290
-#, c-format
-msgid ".stab%c: description field '%x' too big, try a different debug format"
-msgstr ".stab%c: la descripción del campo '%x' es demasiado grande, intente un formato de depuración diferente"
-
-#: stabs.c:436
-msgid "comma missing in .xstabs"
-msgstr "falta coma en .xstabs"
-
-#: symbols.c:386 symbols.c:2550
-#, fuzzy, c-format
-#| msgid "Symbol '%s' could not be created."
-msgid "symbol '%s' contains multibyte characters"
-msgstr "No se puede crear el símbolo «%s»."
-
-#: symbols.c:526
-#, c-format
-msgid "cannot define symbol `%s' in absolute section"
-msgstr "no se puede definir el símbolo «%s» en la sección absoluta"
-
-#: symbols.c:659
-#, c-format
-msgid "symbol `%s' is already defined as \"%s\"/%s%ld"
-msgstr "el símbolo «%s» ya está definido como «%s»/%s%ld"
-
-#: symbols.c:1257
-#, c-format
-msgid "invalid operands (%s and %s sections) for `%s'"
-msgstr "operandos inválidos (secciones %s y %s) para «%s»"
-
-#: symbols.c:1261
-#, c-format
-msgid "invalid operand (%s section) for `%s'"
-msgstr "operando inválido (sección %s) para «%s»"
-
-#: symbols.c:1269
-#, c-format
-msgid "invalid operands (%s and %s sections) for `%s' when setting `%s'"
-msgstr "operandos inválidos (secciones %s y %s) para «%s» al establecer «%s»"
-
-#: symbols.c:1272
-#, c-format
-msgid "invalid operand (%s section) for `%s' when setting `%s'"
-msgstr "operando inválido (sección %s) para «%s» al establecer «%s»"
-
-#: symbols.c:1341
-#, c-format
-msgid "symbol definition loop encountered at `%s'"
-msgstr "definición de símbolo encontrada en bucle en `%s'"
-
-#: symbols.c:1368
-#, c-format
-msgid "cannot convert expression symbol %s to complex relocation"
-msgstr "no se puede convertir el símbolo de expresión %s a una reubicación compleja"
-
-#: symbols.c:1707
-#, c-format
-msgid "division by zero when setting `%s'"
-msgstr "división por cero al establecer «%s»"
-
-#. See PR 20895 for a reproducer.
-#: symbols.c:1777
-msgid "Invalid operation on symbol"
-msgstr "Operación no válida en símbolo"
-
-#: symbols.c:1827 write.c:2475
-#, c-format
-msgid "can't resolve value for symbol `%s'"
-msgstr "no se puede resolver el valor para el símbolo «%s»"
-
-#: symbols.c:2235
-#, fuzzy, c-format
-#| msgid "\"%d\" (instance number %d of a %s label)"
-msgid "\"%u\" (instance number %u of a %s label)"
-msgstr "\"%d\" (número de instancia %d de una etiqueta %s)"
-
-#: symbols.c:2266
-msgid "expression is too complex to be resolved or converted into relocations"
-msgstr ""
-
-#: symbols.c:2268 symbols.c:2271
-#, c-format
-msgid "attempt to get value of unresolved symbol `%s'"
-msgstr "se intentó obtener el valor del símbolo sin resolver «%s»"
-
-#. Do not reassign section symbols.
-#: symbols.c:2571
-#, fuzzy
-#| msgid "can't create section %s"
-msgid "can't make section symbol global"
-msgstr "no se puede crear la sección %s"
-
-#: symbols.c:2577
-#, fuzzy
-#| msgid "can't make global register symbol `%s'"
-msgid "can't make register symbol global"
-msgstr "no se puede hacer global el símbolo de registro «%s»"
-
-#: symbols.c:2683
-#, c-format
-msgid "Accessing function `%s' as thread-local object"
-msgstr "Se accede a la función «%s» como un objeto de hilo local"
-
-#: symbols.c:2687
-#, c-format
-msgid "Accessing `%s' as thread-local object"
-msgstr "Se accede «%s» como un objeto de hilo local"
-
-#: write.c:153
-#, fuzzy, c-format
-#| msgid "field fx_size too small to hold %d"
-msgid "field fx_size too small to hold %lu"
-msgstr "el campo fx_size es demasiado pequeño para contener %d"
-
-#: write.c:430
-#, fuzzy, c-format
-#| msgid "attempt to .org/.space backwards? (%ld)"
-msgid "attempt to .org/.space/.nops backwards? (%ld)"
-msgstr "¿se intentó hacer .org/.space hacia atrás? (%ld)"
-
-#: write.c:452
-#, c-format
-msgid "leb128 operand is an undefined symbol: %s"
-msgstr "operando lib128 es un símbolo indefinido: %s"
-
-#: write.c:520
-#, fuzzy, c-format
-#| msgid "leb128 operand is an undefined symbol: %s"
-msgid ".cv_%ccomp operand is an undefined symbol: %s"
-msgstr "operando lib128 es un símbolo indefinido: %s"
-
-#: write.c:712
-msgid "invalid offset expression"
-msgstr "expresión de desplazamiento no válida"
-
-#: write.c:734
-msgid "invalid reloc expression"
-msgstr "expresión de reubicación no válida"
-
-#: write.c:931
-#, fuzzy, c-format
-#| msgid "can't create %s: %s"
-msgid "can't resolve %s - %s"
-msgstr "no se puede crear %s: %s"
-
-#: write.c:1144
-#, c-format
-msgid "value of %s too large for field of %d byte at %s"
-msgid_plural "value of %s too large for field of %d bytes at %s"
-msgstr[0] "valor de %s es demasiado grande para el campo de %d byte en %s"
-msgstr[1] "valor de %s es demasiado grande para el campo de %d bytes en %s"
-
-#: write.c:1160
-#, c-format
-msgid "signed .word overflow; switch may be too large; %ld at 0x%lx"
-msgstr "desbordamiento de .word con signo; el interruptor puede ser demasiado grande; %ld en 0x%lx"
-
-#: write.c:1201
-msgid "redefined symbol cannot be used on reloc"
-msgstr "un símbolo redefinido no se puede usar en la reubicación"
-
-#: write.c:1214
-msgid "relocation out of range"
-msgstr "reubicación fuera de rango"
-
-#: write.c:1217
-#, c-format
-msgid "%s:%u: bad return from bfd_install_relocation: %x"
-msgstr "%s:%u: devolución incorrecta de bfd_install_relocation: %x"
-
-#: write.c:1245
-msgid "reloc not within (fixed part of) section"
-msgstr "la reubicación no está dentro (de la parte fija de) la sección"
-
-#: write.c:1317
-msgid "internal error: fixup not contained within frag"
-msgstr "error interno: la compostura no está contenida en un fragmento"
-
-#: write.c:1463 write.c:1579
-msgid "can't extend frag"
-msgstr "no se pueden extender el fragmento"
-
-#: write.c:1628
-#, fuzzy
-#| msgid "unmatched .end directive"
-msgid "unimplemented .nops directive"
-msgstr "directiva .end no coincidida"
-
-#: write.c:1662
-#, c-format
-msgid "can't write %ld byte to section %s of %s: '%s'"
-msgid_plural "can't write %ld bytes to section %s of %s: '%s'"
-msgstr[0] "no se puede escribir %ld byte a sección %s de %s: «%s»"
-msgstr[1] "no se puede escribir %ld bytes a sección %s de %s: «%s»"
-
-#: write.c:1688 write.c:1722 write.c:1759
-#, c-format
-msgid "can't fill %ld byte in section %s of %s: '%s'"
-msgid_plural "can't fill %ld bytes in section %s of %s: '%s'"
-msgstr[0] "no se puede rellenar %ld byte en sección %s de %s: '%s'"
-msgstr[1] "no se puede rellenar %ld bytes en sección %s de %s: '%s'"
-
-#: write.c:1976
-#, fuzzy
-#| msgid "Unable to use @plt relocation for insn %s"
-msgid "unable to create reloc for build note"
-msgstr "No se ha podido utilizar @plt para reubicación para insn %s"
-
-#: write.c:1980
-msgid "<gnu build note>"
-msgstr ""
-
-#: write.c:2391
-#, c-format
-msgid "%s: global symbols not supported in common sections"
-msgstr "%s: no se admiten los símbolos globales en las secciones comunes"
-
-#: write.c:2405
-#, c-format
-msgid "local label `%s' is not defined"
-msgstr "la etiqueta local «%s» no está definida"
-
-#: write.c:2433
-#, c-format
-msgid "can't make global register symbol `%s'"
-msgstr "no se puede hacer global el símbolo de registro «%s»"
-
-#: write.c:2744
-#, c-format
-msgid "alignment padding (%lu byte) not a multiple of %ld"
-msgid_plural "alignment padding (%lu bytes) not a multiple of %ld"
-msgstr[0] "rellenando alineamiento (%lu byte) no un múltiplo de %ld"
-msgstr[1] "rellenando alineamiento (%lu bytes) no un múltiplo de %ld"
-
-#: write.c:2921
-#, c-format
-msgid ".word %s-%s+%s didn't fit"
-msgstr "no cabe .word %s-%s+%s"
-
-#: write.c:3013
-msgid "padding added"
-msgstr "se añadió relleno"
-
-#: write.c:3064
-msgid "attempt to move .org backwards"
-msgstr "se intentó mover .org hacia atrás"
-
-#: write.c:3089
-#, fuzzy
-#| msgid ".space specifies non-absolute value"
-msgid ".space, .nops or .fill specifies non-absolute value"
-msgstr ".space especifica un valor que no es absoluto"
-
-#: write.c:3104
-#, fuzzy
-#| msgid ".space or .fill with negative value, ignored"
-msgid ".space, .nops or .fill with negative value, ignored"
-msgstr ".space ó .fill con valor negativo, se descarta"
-
-#: write.c:3194
-#, c-format
-msgid "Infinite loop encountered whilst attempting to compute the addresses of symbols in section %s"
-msgstr "Se encontró un ciclo infinito al intentar computar las direcciones de los símbolos en la sección %s"
diff --git a/gas/read.c b/gas/read.c
index ca76af7..2e7a4ac 100644
--- a/gas/read.c
+++ b/gas/read.c
@@ -895,6 +895,8 @@ read_a_source_file (const char *name)
found_comment = 0;
#endif
+ set_identify_name (name);
+
buffer = input_scrub_new_file (name);
listing_file (name);
diff --git a/gas/stabs.c b/gas/stabs.c
index 12b1267..14cf1f2 100644
--- a/gas/stabs.c
+++ b/gas/stabs.c
@@ -229,14 +229,14 @@ s_stab_generic (int what,
obstack_free (&notes, stab_secname);
subseg_set (stab, 0);
- if (!seg_info (stab)->hadone)
+ if (!seg_info (stab)->stab_seen)
{
bfd_set_section_flags (stab,
SEC_READONLY | SEC_RELOC | SEC_DEBUGGING);
#ifdef INIT_STAB_SECTION
INIT_STAB_SECTION (stab, stabstr);
#endif
- seg_info (stab)->hadone = 1;
+ seg_info (stab)->stab_seen = 1;
}
}
else if (freenames)
@@ -297,26 +297,6 @@ s_stab_generic (int what,
SKIP_WHITESPACE ();
}
-#ifdef TC_PPC
-#ifdef OBJ_ELF
- /* Solaris on PowerPC has decided that .stabd can take 4 arguments, so if we were
- given 4 arguments, make it a .stabn */
- else if (what == 'd')
- {
- char *save_location = input_line_pointer;
-
- SKIP_WHITESPACE ();
- if (*input_line_pointer == ',')
- {
- input_line_pointer++;
- what = 'n';
- }
- else
- input_line_pointer = save_location;
- }
-#endif /* OBJ_ELF */
-#endif /* TC_PPC */
-
#ifndef NO_LISTING
if (listing)
{
diff --git a/gas/subsegs.h b/gas/subsegs.h
index 7d960d3..473bd0f 100644
--- a/gas/subsegs.h
+++ b/gas/subsegs.h
@@ -62,16 +62,9 @@ typedef struct frchain frchainS;
frag chain, even if it contains no (complete) frags. */
extern frchainS *frchain_now;
-typedef struct segment_info_struct {
+typedef struct segment_info_struct
+{
frchainS *frchainP;
- unsigned int hadone : 1;
-
- /* This field is set if this is a .bss section which does not really
- have any contents. Once upon a time a .bss section did not have
- any frags, but that is no longer true. This field prevent the
- SEC_HAS_CONTENTS flag from being set for the section even if
- there are frags. */
- unsigned int bss : 1;
/* Fixups for this segment. This is only valid after the frchains
are run together. */
@@ -85,13 +78,28 @@ typedef struct segment_info_struct {
/* Used by dwarf2dbg.c for this section's line table entries. */
void *dwarf2_line_seg;
- union {
+ /* This field is set if this is a .bss section which does not really
+ have any contents. Once upon a time a .bss section did not have
+ any frags, but that is no longer true. This field prevent the
+ SEC_HAS_CONTENTS flag from being set for the section even if
+ there are frags. */
+ unsigned int bss : 1;
+
+ /* Set whenever dwarf2_emit_insn is called, and used to disable
+ .eh_frame and .debug_frame optimisation. This is an anti-fuzzer
+ measure. */
+ unsigned int insn_seen : 1;
+
+ /* Used by the stabs code. */
+ unsigned int stab_seen : 1;
+
+ union
+ {
/* Current size of section holding stabs strings. */
unsigned long stab_string_size;
/* Initial frag for ELF. */
char *p;
- }
- stabu;
+ } stabu;
#ifdef NEED_LITERAL_POOL
unsigned long literal_pool_size;
diff --git a/gas/testsuite/gas/aarch64/csre-invalid.l b/gas/testsuite/gas/aarch64/csre-invalid.l
deleted file mode 100644
index be3d4c4..0000000
--- a/gas/testsuite/gas/aarch64/csre-invalid.l
+++ /dev/null
@@ -1,5 +0,0 @@
-.*: Assembler messages:
-.*: Warning: specified register cannot be written to at operand 1 -- `msr csridr_el0,x0'
-.*: Warning: specified register cannot be written to at operand 1 -- `msr csrptridx_el0,x0'
-.*: Warning: specified register cannot be written to at operand 1 -- `msr csrptridx_el1,x0'
-.*: Warning: specified register cannot be written to at operand 1 -- `msr csrptridx_el2,x0'
diff --git a/gas/testsuite/gas/aarch64/csre.s b/gas/testsuite/gas/aarch64/csre.s
deleted file mode 100644
index bede41c..0000000
--- a/gas/testsuite/gas/aarch64/csre.s
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Call Stack Recorder Extension system registers. */
-
-/* Read from system registers. */
-mrs x0, csrcr_el0
-mrs x0, csrptr_el0
-mrs x0, csridr_el0
-mrs x0, csrptridx_el0
-mrs x0, csrcr_el1
-mrs x0, csrcr_el12
-mrs x0, csrptr_el1
-mrs x0, csrptr_el12
-mrs x0, csrptridx_el1
-mrs x0, csrcr_el2
-mrs x0, csrptr_el2
-mrs x0, csrptridx_el2
-
-/* Write to system registers. */
-msr csrcr_el0, x0
-msr csrptr_el0, x0
-msr csrcr_el1, x0
-msr csrcr_el12, x0
-msr csrptr_el1, x0
-msr csrptr_el12, x0
-msr csrcr_el2, x0
-msr csrptr_el2, x0
diff --git a/gas/testsuite/gas/aarch64/sme-f64f64.d b/gas/testsuite/gas/aarch64/sme-f64f64.d
index b452415..73556aa 100644
--- a/gas/testsuite/gas/aarch64/sme-f64f64.d
+++ b/gas/testsuite/gas/aarch64/sme-f64f64.d
@@ -1,4 +1,4 @@
-#name: SME F64 extension
+#name: SME F64F64 extension
#as: -march=armv8-a+sme-f64f64
#source: sme-f64.s
#objdump: -dr
diff --git a/gas/testsuite/gas/aarch64/sme-i16i64.d b/gas/testsuite/gas/aarch64/sme-i16i64.d
index 1fa1fb6..1940e41 100644
--- a/gas/testsuite/gas/aarch64/sme-i16i64.d
+++ b/gas/testsuite/gas/aarch64/sme-i16i64.d
@@ -1,4 +1,4 @@
-#name: SME I64 extension
+#name: SME I16I64 extension
#as: -march=armv8-a+sme-i16i64
#source: sme-i64.s
#objdump: -dr
diff --git a/gas/testsuite/gas/aarch64/sve2p1-5.d b/gas/testsuite/gas/aarch64/sve2p1-5.d
index 1c23eb0..850f021 100644
--- a/gas/testsuite/gas/aarch64/sve2p1-5.d
+++ b/gas/testsuite/gas/aarch64/sve2p1-5.d
@@ -2,7 +2,6 @@
#as: -march=armv9.4-a
#as: -march=armv8-a+sve2p1
#as: -march=armv8-a+sme2p1
-#as: -march=armv9.4-a
#objdump: -dr
[^:]+: file format .*
diff --git a/gas/testsuite/gas/aarch64/sve2p1-9.d b/gas/testsuite/gas/aarch64/sve2p1-9.d
index 9a5c0d2..26d958c 100644
--- a/gas/testsuite/gas/aarch64/sve2p1-9.d
+++ b/gas/testsuite/gas/aarch64/sve2p1-9.d
@@ -1,4 +1,4 @@
-#name: Test of SVE2.1 ld1q/st1q instructions.
+#name: Test of SVE2.1 ld1[dw]/st1[dw] instructions.
#as: -march=armv9.4-a
#as: -march=armv8-a+sve2p1
#objdump: -dr
diff --git a/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.d b/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.d
index 862d474..3091288 100644
--- a/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.d
+++ b/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.d
@@ -1,3 +1,3 @@
#source: armv8_9-a-sysregs.s
-#as: -menable-sysreg-checking -march=armv8.8-a -I$srcdir/$subdir --no-info
+#as: -menable-sysreg-checking -march=armv8.7-a -I$srcdir/$subdir --no-info
#error_output: armv8_9-a-sysregs-bad.l
diff --git a/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.l b/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.l
index 5df4f46..0ba6819 100644
--- a/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.l
+++ b/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs-bad.l
@@ -2,14 +2,6 @@
.*: Error: selected processor does not support system register name 'pmsdsfr_el1'
.*: Error: selected processor does not support system register name 'pmsdsfr_el1'
.*: Error: selected processor does not support system register name 'erxgsr_el1'
-.*: Error: selected processor does not support system register name 'sctlr2_el1'
-.*: Error: selected processor does not support system register name 'sctlr2_el1'
-.*: Error: selected processor does not support system register name 'sctlr2_el12'
-.*: Error: selected processor does not support system register name 'sctlr2_el12'
-.*: Error: selected processor does not support system register name 'sctlr2_el2'
-.*: Error: selected processor does not support system register name 'sctlr2_el2'
-.*: Error: selected processor does not support system register name 'sctlr2_el3'
-.*: Error: selected processor does not support system register name 'sctlr2_el3'
.*: Error: selected processor does not support system register name 'hdfgrtr2_el2'
.*: Error: selected processor does not support system register name 'hdfgrtr2_el2'
.*: Error: selected processor does not support system register name 'hdfgwtr2_el2'
@@ -71,12 +63,6 @@
.*: Error: selected processor does not support system register name 'por_el3'
.*: Error: selected processor does not support system register name 's2por_el1'
.*: Error: selected processor does not support system register name 's2por_el1'
-.*: Error: selected processor does not support system register name 'tcr2_el1'
-.*: Error: selected processor does not support system register name 'tcr2_el1'
-.*: Error: selected processor does not support system register name 'tcr2_el12'
-.*: Error: selected processor does not support system register name 'tcr2_el12'
-.*: Error: selected processor does not support system register name 'tcr2_el2'
-.*: Error: selected processor does not support system register name 'tcr2_el2'
.*: Error: selected processor does not support system register name 'mdselr_el1'
.*: Error: selected processor does not support system register name 'mdselr_el1'
.*: Error: selected processor does not support system register name 'pmuacr_el1'
@@ -283,4 +269,4 @@
.*: Error: selected processor does not support system register name 'pmecr_el1'
.*: Error: selected processor does not support system register name 'pmecr_el1'
.*: Error: selected processor does not support system register name 'pmiar_el1'
-.*: Error: selected processor does not support system register name 'pmiar_el1' \ No newline at end of file
+.*: Error: selected processor does not support system register name 'pmiar_el1'
diff --git a/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.d b/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.d
index 91e77bc..3e69aad 100644
--- a/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.d
+++ b/gas/testsuite/gas/aarch64/sysreg/armv8_9-a-sysregs.d
@@ -1,5 +1,5 @@
#source: armv8_9-a-sysregs.s
-#as: -menable-sysreg-checking -march=armv8.9-a -I$srcdir/$subdir
+#as: -menable-sysreg-checking -march=armv9.4-a+profile -I$srcdir/$subdir
#objdump: -dr
.*: file format .*
diff --git a/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.d b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.d
index 61054ae..30180db 100644
--- a/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.d
+++ b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.d
@@ -1,3 +1,3 @@
#source: armv9_5-a-sysregs.s
-#as: -menable-sysreg-checking -march=armv9.4-a -I$srcdir/$subdir
+#as: -menable-sysreg-checking -march=armv9.3-a -I$srcdir/$subdir
#error_output: armv9_5-a-sysregs-archv9_4-unsupported.l
diff --git a/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.l b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.l
index 58e7f9b..41d89ac 100644
--- a/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.l
+++ b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.l
@@ -9,9 +9,7 @@
[^ :]+:[0-9]+: Info: macro invoked from here
[^ :]+:[0-9]+: Error: selected processor does not support system register name 'spmzr_el0'
[^ :]+:[0-9]+: Info: macro invoked from here
-[^ :]+:[0-9]+: Error: selected processor does not support system register name 'spmzr_el0'
-[^ :]+:[0-9]+: Info: macro invoked from here
[^ :]+:[0-9]+: Error: selected processor does not support system register name 'mdstepop_el1'
[^ :]+:[0-9]+: Info: macro invoked from here
[^ :]+:[0-9]+: Error: selected processor does not support system register name 'mdstepop_el1'
-[^ :]+:[0-9]+: Info: macro invoked from here \ No newline at end of file
+[^ :]+:[0-9]+: Info: macro invoked from here
diff --git a/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.d b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.d
index 55a534e..8c9f498 100644
--- a/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.d
+++ b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.d
@@ -12,6 +12,5 @@ Disassembly of section \.text:
.*: d51e5260 msr vsesr_el3, x0
.*: d53e5260 mrs x0, vsesr_el3
.*: d5139c80 msr spmzr_el0, x0
-.*: d5339c80 mrs x0, spmzr_el0
.*: d5100540 msr mdstepop_el1, x0
.*: d5300540 mrs x0, mdstepop_el1
diff --git a/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.s b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.s
index e3ba989..96e4fde 100644
--- a/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.s
+++ b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.s
@@ -3,11 +3,11 @@
.text
/* Delegated SError exceptions for EL3. */
-rw_sys_reg sys_reg=vdisr_el3 xreg=x0 r=1 w=1
-rw_sys_reg sys_reg=vsesr_el3 xreg=x0 r=1 w=1
+rw_sys_reg vdisr_el3
+rw_sys_reg vsesr_el3
/* System Performance Monitors Extension version 2. */
-rw_sys_reg sys_reg=spmzr_el0 xreg=x0 r=1 w=1
+rw_sys_reg spmzr_el0 r=0
/* Enhanced Software Step Extension. */
-rw_sys_reg sys_reg=mdstepop_el1 xreg=x0 r=1 w=1
+rw_sys_reg mdstepop_el1
diff --git a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4.l b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4.l
index 590f20e..9ac8746 100644
--- a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4.l
+++ b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-4.l
@@ -8,12 +8,6 @@
[^:]*:[0-9]+: Error: selected processor does not support system register name 'cvadp'
[^:]*:[0-9]+: Error: selected processor does not support system register name 'rndr'
[^:]*:[0-9]+: Error: selected processor does not support system register name 'rndrrs'
-[^:]*:[0-9]+: Error: selected processor does not support system register name 'scxtnum_el0'
-[^:]*:[0-9]+: Error: selected processor does not support system register name 'scxtnum_el1'
-[^:]*:[0-9]+: Error: selected processor does not support system register name 'scxtnum_el2'
-[^:]*:[0-9]+: Error: selected processor does not support system register name 'scxtnum_el3'
-[^:]*:[0-9]+: Error: selected processor does not support system register name 'scxtnum_el12'
-[^:]*:[0-9]+: Error: selected processor does not support system register name 'id_pfr2_el1'
[^:]*:[0-9]+: Error: selected processor does not support system register name 'tco'
[^:]*:[0-9]+: Error: selected processor does not support system register name 'tco'
[^:]*:[0-9]+: Error: selected processor does not support system register name 'tfsre0_el1'
diff --git a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8.s b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8.s
index 0ce61dd..1a526a2 100644
--- a/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8.s
+++ b/gas/testsuite/gas/aarch64/sysreg/illegal-sysreg-8.s
@@ -13,20 +13,19 @@
roreg lorid_el1
- .arch armv8.2-a
+ .arch armv8.1-a
roreg ccsidr2_el1
+
+ .arch armv8.2-a
+
rwreg rcwmask_el1
rwreg rcwsmask_el1
- .arch armv8.3-a
-
rwreg trfcr_el1
roreg pmmir_el1
rwreg trfcr_el2
-
rwreg trfcr_el12
-
rwreg amcr_el0
roreg amcfgr_el0
roreg amcgcr_el0
@@ -76,7 +75,7 @@
rwreg amevtyper114_el0
rwreg amevtyper115_el0
- .arch armv8.5-a
+ .arch armv8.4-a
roreg amcg1idr_el0
roreg cntpctss_el0
@@ -121,7 +120,7 @@
rwreg amevcntvoff115_el2
rwreg cntpoff_el2
- .arch armv8.6-a
+ .arch armv8.5-a+profile
rwreg pmsnevfr_el1
rwreg hcrx_el2
diff --git a/gas/testsuite/gas/aarch64/sysreg/sme-sysreg.d b/gas/testsuite/gas/aarch64/sysreg/sme-sysreg.d
index f51c56e..daa273e 100644
--- a/gas/testsuite/gas/aarch64/sysreg/sme-sysreg.d
+++ b/gas/testsuite/gas/aarch64/sysreg/sme-sysreg.d
@@ -1,5 +1,5 @@
#name: SME extension (system registers)
-#as: -menable-sysreg-checking -march=armv8-a+sme
+#as: -menable-sysreg-checking -march=armv8.2-a+sme
#objdump: -dr
.*: file format .*
diff --git a/gas/testsuite/gas/aarch64/sysreg/srmask.d b/gas/testsuite/gas/aarch64/sysreg/srmask.d
new file mode 100644
index 0000000..c974d7b
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/srmask.d
@@ -0,0 +1,57 @@
+#as: -march=armv9.5-a -I$srcdir/$subdir
+#objdump: -dr
+
+.*: file format .*
+
+Disassembly of section \.text:
+
+0+ <.*>:
+.*: d5181400 msr sctlrmask_el1, x0
+.*: d5381400 mrs x0, sctlrmask_el1
+.*: d51c1400 msr sctlrmask_el2, x0
+.*: d53c1400 mrs x0, sctlrmask_el2
+.*: d51d1400 msr sctlrmask_el12, x0
+.*: d53d1400 mrs x0, sctlrmask_el12
+.*: d5181440 msr cpacrmask_el1, x0
+.*: d5381440 mrs x0, cpacrmask_el1
+.*: d51c1440 msr cptrmask_el2, x0
+.*: d53c1440 mrs x0, cptrmask_el2
+.*: d51d1440 msr cpacrmask_el12, x0
+.*: d53d1440 mrs x0, cpacrmask_el12
+.*: d5181460 msr sctlr2mask_el1, x0
+.*: d5381460 mrs x0, sctlr2mask_el1
+.*: d51c1460 msr sctlr2mask_el2, x0
+.*: d53c1460 mrs x0, sctlr2mask_el2
+.*: d51d1460 msr sctlr2mask_el12, x0
+.*: d53d1460 mrs x0, sctlr2mask_el12
+.*: d5181480 msr cpacralias_el1, x0
+.*: d5381480 mrs x0, cpacralias_el1
+.*: d51814c0 msr sctlralias_el1, x0
+.*: d53814c0 mrs x0, sctlralias_el1
+.*: d51814e0 msr sctlr2alias_el1, x0
+.*: d53814e0 mrs x0, sctlr2alias_el1
+.*: d5182740 msr tcrmask_el1, x0
+.*: d5382740 mrs x0, tcrmask_el1
+.*: d51c2740 msr tcrmask_el2, x0
+.*: d53c2740 mrs x0, tcrmask_el2
+.*: d51d2740 msr tcrmask_el12, x0
+.*: d53d2740 mrs x0, tcrmask_el12
+.*: d5182760 msr tcr2mask_el1, x0
+.*: d5382760 mrs x0, tcr2mask_el1
+.*: d51c2760 msr tcr2mask_el2, x0
+.*: d53c2760 mrs x0, tcr2mask_el2
+.*: d51d2760 msr tcr2mask_el12, x0
+.*: d53d2760 mrs x0, tcr2mask_el12
+.*: d51827c0 msr tcralias_el1, x0
+.*: d53827c0 mrs x0, tcralias_el1
+.*: d51827e0 msr tcr2alias_el1, x0
+.*: d53827e0 mrs x0, tcr2alias_el1
+.*: d5181420 msr actlrmask_el1, x0
+.*: d5381420 mrs x0, actlrmask_el1
+.*: d51c1420 msr actlrmask_el2, x0
+.*: d53c1420 mrs x0, actlrmask_el2
+.*: d51d1420 msr actlrmask_el12, x0
+.*: d53d1420 mrs x0, actlrmask_el12
+.*: d51814a0 msr actlralias_el1, x0
+.*: d53814a0 mrs x0, actlralias_el1
+
diff --git a/gas/testsuite/gas/aarch64/sysreg/srmask.s b/gas/testsuite/gas/aarch64/sysreg/srmask.s
new file mode 100644
index 0000000..a15ae41
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/srmask.s
@@ -0,0 +1,26 @@
+.include "sysreg-test-utils.inc"
+
+ rw_sys_reg sctlrmask_el1
+ rw_sys_reg sctlrmask_el2
+ rw_sys_reg sctlrmask_el12
+ rw_sys_reg cpacrmask_el1
+ rw_sys_reg cptrmask_el2
+ rw_sys_reg cpacrmask_el12
+ rw_sys_reg sctlr2mask_el1
+ rw_sys_reg sctlr2mask_el2
+ rw_sys_reg sctlr2mask_el12
+ rw_sys_reg cpacralias_el1
+ rw_sys_reg sctlralias_el1
+ rw_sys_reg sctlr2alias_el1
+ rw_sys_reg tcrmask_el1
+ rw_sys_reg tcrmask_el2
+ rw_sys_reg tcrmask_el12
+ rw_sys_reg tcr2mask_el1
+ rw_sys_reg tcr2mask_el2
+ rw_sys_reg tcr2mask_el12
+ rw_sys_reg tcralias_el1
+ rw_sys_reg tcr2alias_el1
+ rw_sys_reg actlrmask_el1
+ rw_sys_reg actlrmask_el2
+ rw_sys_reg actlrmask_el12
+ rw_sys_reg actlralias_el1
diff --git a/gas/testsuite/gas/aarch64/sysreg/sve-sysreg-invalid.l b/gas/testsuite/gas/aarch64/sysreg/sve-sysreg-invalid.l
index 0eaefe1..1e553d7 100644
--- a/gas/testsuite/gas/aarch64/sysreg/sve-sysreg-invalid.l
+++ b/gas/testsuite/gas/aarch64/sysreg/sve-sysreg-invalid.l
@@ -1,6 +1,4 @@
.*: Assembler messages:
-.*:1: Error: selected processor does not support system register name 'id_aa64zfr0_el1'
-.*:2: Error: selected processor does not support system register name 'id_aa64zfr0_el1'
.*:4: Error: selected processor does not support system register name 'zcr_el1'
.*:5: Error: selected processor does not support system register name 'zcr_el1'
.*:6: Error: selected processor does not support system register name 'zcr_el1'
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-1.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-1.d
index d770133..b991390 100644
--- a/gas/testsuite/gas/aarch64/sysreg/sysreg-1.d
+++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-1.d
@@ -7,4291 +7,4287 @@
Disassembly of section \.text:
0+ <.*>:
- 0: d5380587 mrs x7, id_aa64afr0_el1
- 4: d53805a7 mrs x7, id_aa64afr1_el1
- 8: d5380347 mrs x7, mvfr2_el1
- c: d51b4527 msr dlr_el0, x7
- 10: d53b4527 mrs x7, dlr_el0
- 14: d51b4507 msr dspsr_el0, x7
- 18: d53b4507 mrs x7, dspsr_el0
- 1c: d51e1127 msr sder32_el3, x7
- 20: d53e1127 mrs x7, sder32_el3
- 24: d51e1327 msr mdcr_el3, x7
- 28: d53e1327 mrs x7, mdcr_el3
- 2c: d5100207 msr mdccint_el1, x7
- 30: d5300207 mrs x7, mdccint_el1
- 34: d5140707 msr dbgvcr32_el2, x7
- 38: d5340707 mrs x7, dbgvcr32_el2
- 3c: d51c5307 msr fpexc32_el2, x7
- 40: d53c5307 mrs x7, fpexc32_el2
- 44: d5120007 msr teecr32_el1, x7
- 48: d5320007 mrs x7, teecr32_el1
- 4c: d5121007 msr teehbr32_el1, x7
- 50: d5321007 mrs x7, teehbr32_el1
- 54: d51be207 msr cntp_tval_el0, x7
- 58: d53be207 mrs x7, cntp_tval_el0
- 5c: d51be227 msr cntp_ctl_el0, x7
- 60: d53be227 mrs x7, cntp_ctl_el0
- 64: d51be247 msr cntp_cval_el0, x7
- 68: d53be247 mrs x7, cntp_cval_el0
- 6c: d51fe207 msr cntps_tval_el1, x7
- 70: d53fe207 mrs x7, cntps_tval_el1
- 74: d51fe227 msr cntps_ctl_el1, x7
- 78: d53fe227 mrs x7, cntps_ctl_el1
- 7c: d51fe247 msr cntps_cval_el1, x7
- 80: d53fe247 mrs x7, cntps_cval_el1
- 84: d51b9d07 msr pmccntr_el0, x7
- 88: d53b9d07 mrs x7, pmccntr_el0
- 8c: d51be807 msr pmevcntr0_el0, x7
- 90: d53be807 mrs x7, pmevcntr0_el0
- 94: d51be827 msr pmevcntr1_el0, x7
- 98: d53be827 mrs x7, pmevcntr1_el0
- 9c: d51be847 msr pmevcntr2_el0, x7
- a0: d53be847 mrs x7, pmevcntr2_el0
- a4: d51be867 msr pmevcntr3_el0, x7
- a8: d53be867 mrs x7, pmevcntr3_el0
- ac: d51be887 msr pmevcntr4_el0, x7
- b0: d53be887 mrs x7, pmevcntr4_el0
- b4: d51be8a7 msr pmevcntr5_el0, x7
- b8: d53be8a7 mrs x7, pmevcntr5_el0
- bc: d51be8c7 msr pmevcntr6_el0, x7
- c0: d53be8c7 mrs x7, pmevcntr6_el0
- c4: d51be8e7 msr pmevcntr7_el0, x7
- c8: d53be8e7 mrs x7, pmevcntr7_el0
- cc: d51be907 msr pmevcntr8_el0, x7
- d0: d53be907 mrs x7, pmevcntr8_el0
- d4: d51be927 msr pmevcntr9_el0, x7
- d8: d53be927 mrs x7, pmevcntr9_el0
- dc: d51be947 msr pmevcntr10_el0, x7
- e0: d53be947 mrs x7, pmevcntr10_el0
- e4: d51be967 msr pmevcntr11_el0, x7
- e8: d53be967 mrs x7, pmevcntr11_el0
- ec: d51be987 msr pmevcntr12_el0, x7
- f0: d53be987 mrs x7, pmevcntr12_el0
- f4: d51be9a7 msr pmevcntr13_el0, x7
- f8: d53be9a7 mrs x7, pmevcntr13_el0
- fc: d51be9c7 msr pmevcntr14_el0, x7
- 100: d53be9c7 mrs x7, pmevcntr14_el0
- 104: d51be9e7 msr pmevcntr15_el0, x7
- 108: d53be9e7 mrs x7, pmevcntr15_el0
- 10c: d51bea07 msr pmevcntr16_el0, x7
- 110: d53bea07 mrs x7, pmevcntr16_el0
- 114: d51bea27 msr pmevcntr17_el0, x7
- 118: d53bea27 mrs x7, pmevcntr17_el0
- 11c: d51bea47 msr pmevcntr18_el0, x7
- 120: d53bea47 mrs x7, pmevcntr18_el0
- 124: d51bea67 msr pmevcntr19_el0, x7
- 128: d53bea67 mrs x7, pmevcntr19_el0
- 12c: d51bea87 msr pmevcntr20_el0, x7
- 130: d53bea87 mrs x7, pmevcntr20_el0
- 134: d51beaa7 msr pmevcntr21_el0, x7
- 138: d53beaa7 mrs x7, pmevcntr21_el0
- 13c: d51beac7 msr pmevcntr22_el0, x7
- 140: d53beac7 mrs x7, pmevcntr22_el0
- 144: d51beae7 msr pmevcntr23_el0, x7
- 148: d53beae7 mrs x7, pmevcntr23_el0
- 14c: d51beb07 msr pmevcntr24_el0, x7
- 150: d53beb07 mrs x7, pmevcntr24_el0
- 154: d51beb27 msr pmevcntr25_el0, x7
- 158: d53beb27 mrs x7, pmevcntr25_el0
- 15c: d51beb47 msr pmevcntr26_el0, x7
- 160: d53beb47 mrs x7, pmevcntr26_el0
- 164: d51beb67 msr pmevcntr27_el0, x7
- 168: d53beb67 mrs x7, pmevcntr27_el0
- 16c: d51beb87 msr pmevcntr28_el0, x7
- 170: d53beb87 mrs x7, pmevcntr28_el0
- 174: d51beba7 msr pmevcntr29_el0, x7
- 178: d53beba7 mrs x7, pmevcntr29_el0
- 17c: d51bebc7 msr pmevcntr30_el0, x7
- 180: d53bebc7 mrs x7, pmevcntr30_el0
- 184: d51bec07 msr pmevtyper0_el0, x7
- 188: d53bec07 mrs x7, pmevtyper0_el0
- 18c: d51bec27 msr pmevtyper1_el0, x7
- 190: d53bec27 mrs x7, pmevtyper1_el0
- 194: d51bec47 msr pmevtyper2_el0, x7
- 198: d53bec47 mrs x7, pmevtyper2_el0
- 19c: d51bec67 msr pmevtyper3_el0, x7
- 1a0: d53bec67 mrs x7, pmevtyper3_el0
- 1a4: d51bec87 msr pmevtyper4_el0, x7
- 1a8: d53bec87 mrs x7, pmevtyper4_el0
- 1ac: d51beca7 msr pmevtyper5_el0, x7
- 1b0: d53beca7 mrs x7, pmevtyper5_el0
- 1b4: d51becc7 msr pmevtyper6_el0, x7
- 1b8: d53becc7 mrs x7, pmevtyper6_el0
- 1bc: d51bece7 msr pmevtyper7_el0, x7
- 1c0: d53bece7 mrs x7, pmevtyper7_el0
- 1c4: d51bed07 msr pmevtyper8_el0, x7
- 1c8: d53bed07 mrs x7, pmevtyper8_el0
- 1cc: d51bed27 msr pmevtyper9_el0, x7
- 1d0: d53bed27 mrs x7, pmevtyper9_el0
- 1d4: d51bed47 msr pmevtyper10_el0, x7
- 1d8: d53bed47 mrs x7, pmevtyper10_el0
- 1dc: d51bed67 msr pmevtyper11_el0, x7
- 1e0: d53bed67 mrs x7, pmevtyper11_el0
- 1e4: d51bed87 msr pmevtyper12_el0, x7
- 1e8: d53bed87 mrs x7, pmevtyper12_el0
- 1ec: d51beda7 msr pmevtyper13_el0, x7
- 1f0: d53beda7 mrs x7, pmevtyper13_el0
- 1f4: d51bedc7 msr pmevtyper14_el0, x7
- 1f8: d53bedc7 mrs x7, pmevtyper14_el0
- 1fc: d51bede7 msr pmevtyper15_el0, x7
- 200: d53bede7 mrs x7, pmevtyper15_el0
- 204: d51bee07 msr pmevtyper16_el0, x7
- 208: d53bee07 mrs x7, pmevtyper16_el0
- 20c: d51bee27 msr pmevtyper17_el0, x7
- 210: d53bee27 mrs x7, pmevtyper17_el0
- 214: d51bee47 msr pmevtyper18_el0, x7
- 218: d53bee47 mrs x7, pmevtyper18_el0
- 21c: d51bee67 msr pmevtyper19_el0, x7
- 220: d53bee67 mrs x7, pmevtyper19_el0
- 224: d51bee87 msr pmevtyper20_el0, x7
- 228: d53bee87 mrs x7, pmevtyper20_el0
- 22c: d51beea7 msr pmevtyper21_el0, x7
- 230: d53beea7 mrs x7, pmevtyper21_el0
- 234: d51beec7 msr pmevtyper22_el0, x7
- 238: d53beec7 mrs x7, pmevtyper22_el0
- 23c: d51beee7 msr pmevtyper23_el0, x7
- 240: d53beee7 mrs x7, pmevtyper23_el0
- 244: d51bef07 msr pmevtyper24_el0, x7
- 248: d53bef07 mrs x7, pmevtyper24_el0
- 24c: d51bef27 msr pmevtyper25_el0, x7
- 250: d53bef27 mrs x7, pmevtyper25_el0
- 254: d51bef47 msr pmevtyper26_el0, x7
- 258: d53bef47 mrs x7, pmevtyper26_el0
- 25c: d51bef67 msr pmevtyper27_el0, x7
- 260: d53bef67 mrs x7, pmevtyper27_el0
- 264: d51bef87 msr pmevtyper28_el0, x7
- 268: d53bef87 mrs x7, pmevtyper28_el0
- 26c: d51befa7 msr pmevtyper29_el0, x7
- 270: d53befa7 mrs x7, pmevtyper29_el0
- 274: d51befc7 msr pmevtyper30_el0, x7
- 278: d53befc7 mrs x7, pmevtyper30_el0
- 27c: d51befe7 msr pmccfiltr_el0, x7
- 280: d53befe7 mrs x7, pmccfiltr_el0
- 284: d51bd067 msr tpidrro_el0, x7
- 288: d53bd067 mrs x7, tpidrro_el0
- 28c: d51bd047 msr tpidr_el0, x7
- 290: d53bd047 mrs x7, tpidr_el0
- 294: d51be007 msr cntfrq_el0, x7
- 298: d53be007 mrs x7, cntfrq_el0
- 29c: d518b00f msr s3_0_c11_c0_0, x15
- 2a0: d538b00f mrs x15, s3_0_c11_c0_0
- 2a4: d518b02f msr s3_0_c11_c0_1, x15
- 2a8: d538b02f mrs x15, s3_0_c11_c0_1
- 2ac: d518b04f msr s3_0_c11_c0_2, x15
- 2b0: d538b04f mrs x15, s3_0_c11_c0_2
- 2b4: d518b06f msr s3_0_c11_c0_3, x15
- 2b8: d538b06f mrs x15, s3_0_c11_c0_3
- 2bc: d518b08f msr s3_0_c11_c0_4, x15
- 2c0: d538b08f mrs x15, s3_0_c11_c0_4
- 2c4: d518b0af msr s3_0_c11_c0_5, x15
- 2c8: d538b0af mrs x15, s3_0_c11_c0_5
- 2cc: d518b0cf msr s3_0_c11_c0_6, x15
- 2d0: d538b0cf mrs x15, s3_0_c11_c0_6
- 2d4: d518b0ef msr s3_0_c11_c0_7, x15
- 2d8: d538b0ef mrs x15, s3_0_c11_c0_7
- 2dc: d518b10f msr s3_0_c11_c1_0, x15
- 2e0: d538b10f mrs x15, s3_0_c11_c1_0
- 2e4: d518b12f msr s3_0_c11_c1_1, x15
- 2e8: d538b12f mrs x15, s3_0_c11_c1_1
- 2ec: d518b14f msr s3_0_c11_c1_2, x15
- 2f0: d538b14f mrs x15, s3_0_c11_c1_2
- 2f4: d518b16f msr s3_0_c11_c1_3, x15
- 2f8: d538b16f mrs x15, s3_0_c11_c1_3
- 2fc: d518b18f msr s3_0_c11_c1_4, x15
- 300: d538b18f mrs x15, s3_0_c11_c1_4
- 304: d518b1af msr s3_0_c11_c1_5, x15
- 308: d538b1af mrs x15, s3_0_c11_c1_5
- 30c: d518b1cf msr s3_0_c11_c1_6, x15
- 310: d538b1cf mrs x15, s3_0_c11_c1_6
- 314: d518b1ef msr s3_0_c11_c1_7, x15
- 318: d538b1ef mrs x15, s3_0_c11_c1_7
- 31c: d518b20f msr s3_0_c11_c2_0, x15
- 320: d538b20f mrs x15, s3_0_c11_c2_0
- 324: d518b22f msr s3_0_c11_c2_1, x15
- 328: d538b22f mrs x15, s3_0_c11_c2_1
- 32c: d518b24f msr s3_0_c11_c2_2, x15
- 330: d538b24f mrs x15, s3_0_c11_c2_2
- 334: d518b26f msr s3_0_c11_c2_3, x15
- 338: d538b26f mrs x15, s3_0_c11_c2_3
- 33c: d518b28f msr s3_0_c11_c2_4, x15
- 340: d538b28f mrs x15, s3_0_c11_c2_4
- 344: d518b2af msr s3_0_c11_c2_5, x15
- 348: d538b2af mrs x15, s3_0_c11_c2_5
- 34c: d518b2cf msr s3_0_c11_c2_6, x15
- 350: d538b2cf mrs x15, s3_0_c11_c2_6
- 354: d518b2ef msr s3_0_c11_c2_7, x15
- 358: d538b2ef mrs x15, s3_0_c11_c2_7
- 35c: d518b30f msr s3_0_c11_c3_0, x15
- 360: d538b30f mrs x15, s3_0_c11_c3_0
- 364: d518b32f msr s3_0_c11_c3_1, x15
- 368: d538b32f mrs x15, s3_0_c11_c3_1
- 36c: d518b34f msr s3_0_c11_c3_2, x15
- 370: d538b34f mrs x15, s3_0_c11_c3_2
- 374: d518b36f msr s3_0_c11_c3_3, x15
- 378: d538b36f mrs x15, s3_0_c11_c3_3
- 37c: d518b38f msr s3_0_c11_c3_4, x15
- 380: d538b38f mrs x15, s3_0_c11_c3_4
- 384: d518b3af msr s3_0_c11_c3_5, x15
- 388: d538b3af mrs x15, s3_0_c11_c3_5
- 38c: d518b3cf msr s3_0_c11_c3_6, x15
- 390: d538b3cf mrs x15, s3_0_c11_c3_6
- 394: d518b3ef msr s3_0_c11_c3_7, x15
- 398: d538b3ef mrs x15, s3_0_c11_c3_7
- 39c: d518b40f msr s3_0_c11_c4_0, x15
- 3a0: d538b40f mrs x15, s3_0_c11_c4_0
- 3a4: d518b42f msr s3_0_c11_c4_1, x15
- 3a8: d538b42f mrs x15, s3_0_c11_c4_1
- 3ac: d518b44f msr s3_0_c11_c4_2, x15
- 3b0: d538b44f mrs x15, s3_0_c11_c4_2
- 3b4: d518b46f msr s3_0_c11_c4_3, x15
- 3b8: d538b46f mrs x15, s3_0_c11_c4_3
- 3bc: d518b48f msr s3_0_c11_c4_4, x15
- 3c0: d538b48f mrs x15, s3_0_c11_c4_4
- 3c4: d518b4af msr s3_0_c11_c4_5, x15
- 3c8: d538b4af mrs x15, s3_0_c11_c4_5
- 3cc: d518b4cf msr s3_0_c11_c4_6, x15
- 3d0: d538b4cf mrs x15, s3_0_c11_c4_6
- 3d4: d518b4ef msr s3_0_c11_c4_7, x15
- 3d8: d538b4ef mrs x15, s3_0_c11_c4_7
- 3dc: d518b50f msr s3_0_c11_c5_0, x15
- 3e0: d538b50f mrs x15, s3_0_c11_c5_0
- 3e4: d518b52f msr s3_0_c11_c5_1, x15
- 3e8: d538b52f mrs x15, s3_0_c11_c5_1
- 3ec: d518b54f msr s3_0_c11_c5_2, x15
- 3f0: d538b54f mrs x15, s3_0_c11_c5_2
- 3f4: d518b56f msr s3_0_c11_c5_3, x15
- 3f8: d538b56f mrs x15, s3_0_c11_c5_3
- 3fc: d518b58f msr s3_0_c11_c5_4, x15
- 400: d538b58f mrs x15, s3_0_c11_c5_4
- 404: d518b5af msr s3_0_c11_c5_5, x15
- 408: d538b5af mrs x15, s3_0_c11_c5_5
- 40c: d518b5cf msr s3_0_c11_c5_6, x15
- 410: d538b5cf mrs x15, s3_0_c11_c5_6
- 414: d518b5ef msr s3_0_c11_c5_7, x15
- 418: d538b5ef mrs x15, s3_0_c11_c5_7
- 41c: d518b60f msr s3_0_c11_c6_0, x15
- 420: d538b60f mrs x15, s3_0_c11_c6_0
- 424: d518b62f msr s3_0_c11_c6_1, x15
- 428: d538b62f mrs x15, s3_0_c11_c6_1
- 42c: d518b64f msr s3_0_c11_c6_2, x15
- 430: d538b64f mrs x15, s3_0_c11_c6_2
- 434: d518b66f msr s3_0_c11_c6_3, x15
- 438: d538b66f mrs x15, s3_0_c11_c6_3
- 43c: d518b68f msr s3_0_c11_c6_4, x15
- 440: d538b68f mrs x15, s3_0_c11_c6_4
- 444: d518b6af msr s3_0_c11_c6_5, x15
- 448: d538b6af mrs x15, s3_0_c11_c6_5
- 44c: d518b6cf msr s3_0_c11_c6_6, x15
- 450: d538b6cf mrs x15, s3_0_c11_c6_6
- 454: d518b6ef msr s3_0_c11_c6_7, x15
- 458: d538b6ef mrs x15, s3_0_c11_c6_7
- 45c: d518b70f msr s3_0_c11_c7_0, x15
- 460: d538b70f mrs x15, s3_0_c11_c7_0
- 464: d518b72f msr s3_0_c11_c7_1, x15
- 468: d538b72f mrs x15, s3_0_c11_c7_1
- 46c: d518b74f msr s3_0_c11_c7_2, x15
- 470: d538b74f mrs x15, s3_0_c11_c7_2
- 474: d518b76f msr s3_0_c11_c7_3, x15
- 478: d538b76f mrs x15, s3_0_c11_c7_3
- 47c: d518b78f msr s3_0_c11_c7_4, x15
- 480: d538b78f mrs x15, s3_0_c11_c7_4
- 484: d518b7af msr s3_0_c11_c7_5, x15
- 488: d538b7af mrs x15, s3_0_c11_c7_5
- 48c: d518b7cf msr s3_0_c11_c7_6, x15
- 490: d538b7cf mrs x15, s3_0_c11_c7_6
- 494: d518b7ef msr s3_0_c11_c7_7, x15
- 498: d538b7ef mrs x15, s3_0_c11_c7_7
- 49c: d518b80f msr s3_0_c11_c8_0, x15
- 4a0: d538b80f mrs x15, s3_0_c11_c8_0
- 4a4: d518b82f msr s3_0_c11_c8_1, x15
- 4a8: d538b82f mrs x15, s3_0_c11_c8_1
- 4ac: d518b84f msr s3_0_c11_c8_2, x15
- 4b0: d538b84f mrs x15, s3_0_c11_c8_2
- 4b4: d518b86f msr s3_0_c11_c8_3, x15
- 4b8: d538b86f mrs x15, s3_0_c11_c8_3
- 4bc: d518b88f msr s3_0_c11_c8_4, x15
- 4c0: d538b88f mrs x15, s3_0_c11_c8_4
- 4c4: d518b8af msr s3_0_c11_c8_5, x15
- 4c8: d538b8af mrs x15, s3_0_c11_c8_5
- 4cc: d518b8cf msr s3_0_c11_c8_6, x15
- 4d0: d538b8cf mrs x15, s3_0_c11_c8_6
- 4d4: d518b8ef msr s3_0_c11_c8_7, x15
- 4d8: d538b8ef mrs x15, s3_0_c11_c8_7
- 4dc: d518b90f msr s3_0_c11_c9_0, x15
- 4e0: d538b90f mrs x15, s3_0_c11_c9_0
- 4e4: d518b92f msr s3_0_c11_c9_1, x15
- 4e8: d538b92f mrs x15, s3_0_c11_c9_1
- 4ec: d518b94f msr s3_0_c11_c9_2, x15
- 4f0: d538b94f mrs x15, s3_0_c11_c9_2
- 4f4: d518b96f msr s3_0_c11_c9_3, x15
- 4f8: d538b96f mrs x15, s3_0_c11_c9_3
- 4fc: d518b98f msr s3_0_c11_c9_4, x15
- 500: d538b98f mrs x15, s3_0_c11_c9_4
- 504: d518b9af msr s3_0_c11_c9_5, x15
- 508: d538b9af mrs x15, s3_0_c11_c9_5
- 50c: d518b9cf msr s3_0_c11_c9_6, x15
- 510: d538b9cf mrs x15, s3_0_c11_c9_6
- 514: d518b9ef msr s3_0_c11_c9_7, x15
- 518: d538b9ef mrs x15, s3_0_c11_c9_7
- 51c: d518ba0f msr s3_0_c11_c10_0, x15
- 520: d538ba0f mrs x15, s3_0_c11_c10_0
- 524: d518ba2f msr s3_0_c11_c10_1, x15
- 528: d538ba2f mrs x15, s3_0_c11_c10_1
- 52c: d518ba4f msr s3_0_c11_c10_2, x15
- 530: d538ba4f mrs x15, s3_0_c11_c10_2
- 534: d518ba6f msr s3_0_c11_c10_3, x15
- 538: d538ba6f mrs x15, s3_0_c11_c10_3
- 53c: d518ba8f msr s3_0_c11_c10_4, x15
- 540: d538ba8f mrs x15, s3_0_c11_c10_4
- 544: d518baaf msr s3_0_c11_c10_5, x15
- 548: d538baaf mrs x15, s3_0_c11_c10_5
- 54c: d518bacf msr s3_0_c11_c10_6, x15
- 550: d538bacf mrs x15, s3_0_c11_c10_6
- 554: d518baef msr s3_0_c11_c10_7, x15
- 558: d538baef mrs x15, s3_0_c11_c10_7
- 55c: d518bb0f msr s3_0_c11_c11_0, x15
- 560: d538bb0f mrs x15, s3_0_c11_c11_0
- 564: d518bb2f msr s3_0_c11_c11_1, x15
- 568: d538bb2f mrs x15, s3_0_c11_c11_1
- 56c: d518bb4f msr s3_0_c11_c11_2, x15
- 570: d538bb4f mrs x15, s3_0_c11_c11_2
- 574: d518bb6f msr s3_0_c11_c11_3, x15
- 578: d538bb6f mrs x15, s3_0_c11_c11_3
- 57c: d518bb8f msr s3_0_c11_c11_4, x15
- 580: d538bb8f mrs x15, s3_0_c11_c11_4
- 584: d518bbaf msr s3_0_c11_c11_5, x15
- 588: d538bbaf mrs x15, s3_0_c11_c11_5
- 58c: d518bbcf msr s3_0_c11_c11_6, x15
- 590: d538bbcf mrs x15, s3_0_c11_c11_6
- 594: d518bbef msr s3_0_c11_c11_7, x15
- 598: d538bbef mrs x15, s3_0_c11_c11_7
- 59c: d518bc0f msr s3_0_c11_c12_0, x15
- 5a0: d538bc0f mrs x15, s3_0_c11_c12_0
- 5a4: d518bc2f msr s3_0_c11_c12_1, x15
- 5a8: d538bc2f mrs x15, s3_0_c11_c12_1
- 5ac: d518bc4f msr s3_0_c11_c12_2, x15
- 5b0: d538bc4f mrs x15, s3_0_c11_c12_2
- 5b4: d518bc6f msr s3_0_c11_c12_3, x15
- 5b8: d538bc6f mrs x15, s3_0_c11_c12_3
- 5bc: d518bc8f msr s3_0_c11_c12_4, x15
- 5c0: d538bc8f mrs x15, s3_0_c11_c12_4
- 5c4: d518bcaf msr s3_0_c11_c12_5, x15
- 5c8: d538bcaf mrs x15, s3_0_c11_c12_5
- 5cc: d518bccf msr s3_0_c11_c12_6, x15
- 5d0: d538bccf mrs x15, s3_0_c11_c12_6
- 5d4: d518bcef msr s3_0_c11_c12_7, x15
- 5d8: d538bcef mrs x15, s3_0_c11_c12_7
- 5dc: d518bd0f msr s3_0_c11_c13_0, x15
- 5e0: d538bd0f mrs x15, s3_0_c11_c13_0
- 5e4: d518bd2f msr s3_0_c11_c13_1, x15
- 5e8: d538bd2f mrs x15, s3_0_c11_c13_1
- 5ec: d518bd4f msr s3_0_c11_c13_2, x15
- 5f0: d538bd4f mrs x15, s3_0_c11_c13_2
- 5f4: d518bd6f msr s3_0_c11_c13_3, x15
- 5f8: d538bd6f mrs x15, s3_0_c11_c13_3
- 5fc: d518bd8f msr s3_0_c11_c13_4, x15
- 600: d538bd8f mrs x15, s3_0_c11_c13_4
- 604: d518bdaf msr s3_0_c11_c13_5, x15
- 608: d538bdaf mrs x15, s3_0_c11_c13_5
- 60c: d518bdcf msr s3_0_c11_c13_6, x15
- 610: d538bdcf mrs x15, s3_0_c11_c13_6
- 614: d518bdef msr s3_0_c11_c13_7, x15
- 618: d538bdef mrs x15, s3_0_c11_c13_7
- 61c: d518be0f msr s3_0_c11_c14_0, x15
- 620: d538be0f mrs x15, s3_0_c11_c14_0
- 624: d518be2f msr s3_0_c11_c14_1, x15
- 628: d538be2f mrs x15, s3_0_c11_c14_1
- 62c: d518be4f msr s3_0_c11_c14_2, x15
- 630: d538be4f mrs x15, s3_0_c11_c14_2
- 634: d518be6f msr s3_0_c11_c14_3, x15
- 638: d538be6f mrs x15, s3_0_c11_c14_3
- 63c: d518be8f msr s3_0_c11_c14_4, x15
- 640: d538be8f mrs x15, s3_0_c11_c14_4
- 644: d518beaf msr s3_0_c11_c14_5, x15
- 648: d538beaf mrs x15, s3_0_c11_c14_5
- 64c: d518becf msr s3_0_c11_c14_6, x15
- 650: d538becf mrs x15, s3_0_c11_c14_6
- 654: d518beef msr s3_0_c11_c14_7, x15
- 658: d538beef mrs x15, s3_0_c11_c14_7
- 65c: d518bf0f msr s3_0_c11_c15_0, x15
- 660: d538bf0f mrs x15, s3_0_c11_c15_0
- 664: d518bf2f msr s3_0_c11_c15_1, x15
- 668: d538bf2f mrs x15, s3_0_c11_c15_1
- 66c: d518bf4f msr s3_0_c11_c15_2, x15
- 670: d538bf4f mrs x15, s3_0_c11_c15_2
- 674: d518bf6f msr s3_0_c11_c15_3, x15
- 678: d538bf6f mrs x15, s3_0_c11_c15_3
- 67c: d518bf8f msr s3_0_c11_c15_4, x15
- 680: d538bf8f mrs x15, s3_0_c11_c15_4
- 684: d518bfaf msr s3_0_c11_c15_5, x15
- 688: d538bfaf mrs x15, s3_0_c11_c15_5
- 68c: d518bfcf msr s3_0_c11_c15_6, x15
- 690: d538bfcf mrs x15, s3_0_c11_c15_6
- 694: d518bfef msr s3_0_c11_c15_7, x15
- 698: d538bfef mrs x15, s3_0_c11_c15_7
- 69c: d518f00f msr s3_0_c15_c0_0, x15
- 6a0: d538f00f mrs x15, s3_0_c15_c0_0
- 6a4: d518f02f msr s3_0_c15_c0_1, x15
- 6a8: d538f02f mrs x15, s3_0_c15_c0_1
- 6ac: d518f04f msr s3_0_c15_c0_2, x15
- 6b0: d538f04f mrs x15, s3_0_c15_c0_2
- 6b4: d518f06f msr s3_0_c15_c0_3, x15
- 6b8: d538f06f mrs x15, s3_0_c15_c0_3
- 6bc: d518f08f msr s3_0_c15_c0_4, x15
- 6c0: d538f08f mrs x15, s3_0_c15_c0_4
- 6c4: d518f0af msr s3_0_c15_c0_5, x15
- 6c8: d538f0af mrs x15, s3_0_c15_c0_5
- 6cc: d518f0cf msr s3_0_c15_c0_6, x15
- 6d0: d538f0cf mrs x15, s3_0_c15_c0_6
- 6d4: d518f0ef msr s3_0_c15_c0_7, x15
- 6d8: d538f0ef mrs x15, s3_0_c15_c0_7
- 6dc: d518f10f msr s3_0_c15_c1_0, x15
- 6e0: d538f10f mrs x15, s3_0_c15_c1_0
- 6e4: d518f12f msr s3_0_c15_c1_1, x15
- 6e8: d538f12f mrs x15, s3_0_c15_c1_1
- 6ec: d518f14f msr s3_0_c15_c1_2, x15
- 6f0: d538f14f mrs x15, s3_0_c15_c1_2
- 6f4: d518f16f msr s3_0_c15_c1_3, x15
- 6f8: d538f16f mrs x15, s3_0_c15_c1_3
- 6fc: d518f18f msr s3_0_c15_c1_4, x15
- 700: d538f18f mrs x15, s3_0_c15_c1_4
- 704: d518f1af msr s3_0_c15_c1_5, x15
- 708: d538f1af mrs x15, s3_0_c15_c1_5
- 70c: d518f1cf msr s3_0_c15_c1_6, x15
- 710: d538f1cf mrs x15, s3_0_c15_c1_6
- 714: d518f1ef msr s3_0_c15_c1_7, x15
- 718: d538f1ef mrs x15, s3_0_c15_c1_7
- 71c: d518f20f msr s3_0_c15_c2_0, x15
- 720: d538f20f mrs x15, s3_0_c15_c2_0
- 724: d518f22f msr s3_0_c15_c2_1, x15
- 728: d538f22f mrs x15, s3_0_c15_c2_1
- 72c: d518f24f msr s3_0_c15_c2_2, x15
- 730: d538f24f mrs x15, s3_0_c15_c2_2
- 734: d518f26f msr s3_0_c15_c2_3, x15
- 738: d538f26f mrs x15, s3_0_c15_c2_3
- 73c: d518f28f msr s3_0_c15_c2_4, x15
- 740: d538f28f mrs x15, s3_0_c15_c2_4
- 744: d518f2af msr s3_0_c15_c2_5, x15
- 748: d538f2af mrs x15, s3_0_c15_c2_5
- 74c: d518f2cf msr s3_0_c15_c2_6, x15
- 750: d538f2cf mrs x15, s3_0_c15_c2_6
- 754: d518f2ef msr s3_0_c15_c2_7, x15
- 758: d538f2ef mrs x15, s3_0_c15_c2_7
- 75c: d518f30f msr s3_0_c15_c3_0, x15
- 760: d538f30f mrs x15, s3_0_c15_c3_0
- 764: d518f32f msr s3_0_c15_c3_1, x15
- 768: d538f32f mrs x15, s3_0_c15_c3_1
- 76c: d518f34f msr s3_0_c15_c3_2, x15
- 770: d538f34f mrs x15, s3_0_c15_c3_2
- 774: d518f36f msr s3_0_c15_c3_3, x15
- 778: d538f36f mrs x15, s3_0_c15_c3_3
- 77c: d518f38f msr s3_0_c15_c3_4, x15
- 780: d538f38f mrs x15, s3_0_c15_c3_4
- 784: d518f3af msr s3_0_c15_c3_5, x15
- 788: d538f3af mrs x15, s3_0_c15_c3_5
- 78c: d518f3cf msr s3_0_c15_c3_6, x15
- 790: d538f3cf mrs x15, s3_0_c15_c3_6
- 794: d518f3ef msr s3_0_c15_c3_7, x15
- 798: d538f3ef mrs x15, s3_0_c15_c3_7
- 79c: d518f40f msr s3_0_c15_c4_0, x15
- 7a0: d538f40f mrs x15, s3_0_c15_c4_0
- 7a4: d518f42f msr s3_0_c15_c4_1, x15
- 7a8: d538f42f mrs x15, s3_0_c15_c4_1
- 7ac: d518f44f msr s3_0_c15_c4_2, x15
- 7b0: d538f44f mrs x15, s3_0_c15_c4_2
- 7b4: d518f46f msr s3_0_c15_c4_3, x15
- 7b8: d538f46f mrs x15, s3_0_c15_c4_3
- 7bc: d518f48f msr s3_0_c15_c4_4, x15
- 7c0: d538f48f mrs x15, s3_0_c15_c4_4
- 7c4: d518f4af msr s3_0_c15_c4_5, x15
- 7c8: d538f4af mrs x15, s3_0_c15_c4_5
- 7cc: d518f4cf msr s3_0_c15_c4_6, x15
- 7d0: d538f4cf mrs x15, s3_0_c15_c4_6
- 7d4: d518f4ef msr s3_0_c15_c4_7, x15
- 7d8: d538f4ef mrs x15, s3_0_c15_c4_7
- 7dc: d518f50f msr s3_0_c15_c5_0, x15
- 7e0: d538f50f mrs x15, s3_0_c15_c5_0
- 7e4: d518f52f msr s3_0_c15_c5_1, x15
- 7e8: d538f52f mrs x15, s3_0_c15_c5_1
- 7ec: d518f54f msr s3_0_c15_c5_2, x15
- 7f0: d538f54f mrs x15, s3_0_c15_c5_2
- 7f4: d518f56f msr s3_0_c15_c5_3, x15
- 7f8: d538f56f mrs x15, s3_0_c15_c5_3
- 7fc: d518f58f msr s3_0_c15_c5_4, x15
- 800: d538f58f mrs x15, s3_0_c15_c5_4
- 804: d518f5af msr s3_0_c15_c5_5, x15
- 808: d538f5af mrs x15, s3_0_c15_c5_5
- 80c: d518f5cf msr s3_0_c15_c5_6, x15
- 810: d538f5cf mrs x15, s3_0_c15_c5_6
- 814: d518f5ef msr s3_0_c15_c5_7, x15
- 818: d538f5ef mrs x15, s3_0_c15_c5_7
- 81c: d518f60f msr s3_0_c15_c6_0, x15
- 820: d538f60f mrs x15, s3_0_c15_c6_0
- 824: d518f62f msr s3_0_c15_c6_1, x15
- 828: d538f62f mrs x15, s3_0_c15_c6_1
- 82c: d518f64f msr s3_0_c15_c6_2, x15
- 830: d538f64f mrs x15, s3_0_c15_c6_2
- 834: d518f66f msr s3_0_c15_c6_3, x15
- 838: d538f66f mrs x15, s3_0_c15_c6_3
- 83c: d518f68f msr s3_0_c15_c6_4, x15
- 840: d538f68f mrs x15, s3_0_c15_c6_4
- 844: d518f6af msr s3_0_c15_c6_5, x15
- 848: d538f6af mrs x15, s3_0_c15_c6_5
- 84c: d518f6cf msr s3_0_c15_c6_6, x15
- 850: d538f6cf mrs x15, s3_0_c15_c6_6
- 854: d518f6ef msr s3_0_c15_c6_7, x15
- 858: d538f6ef mrs x15, s3_0_c15_c6_7
- 85c: d518f70f msr s3_0_c15_c7_0, x15
- 860: d538f70f mrs x15, s3_0_c15_c7_0
- 864: d518f72f msr s3_0_c15_c7_1, x15
- 868: d538f72f mrs x15, s3_0_c15_c7_1
- 86c: d518f74f msr s3_0_c15_c7_2, x15
- 870: d538f74f mrs x15, s3_0_c15_c7_2
- 874: d518f76f msr s3_0_c15_c7_3, x15
- 878: d538f76f mrs x15, s3_0_c15_c7_3
- 87c: d518f78f msr s3_0_c15_c7_4, x15
- 880: d538f78f mrs x15, s3_0_c15_c7_4
- 884: d518f7af msr s3_0_c15_c7_5, x15
- 888: d538f7af mrs x15, s3_0_c15_c7_5
- 88c: d518f7cf msr s3_0_c15_c7_6, x15
- 890: d538f7cf mrs x15, s3_0_c15_c7_6
- 894: d518f7ef msr s3_0_c15_c7_7, x15
- 898: d538f7ef mrs x15, s3_0_c15_c7_7
- 89c: d518f80f msr s3_0_c15_c8_0, x15
- 8a0: d538f80f mrs x15, s3_0_c15_c8_0
- 8a4: d518f82f msr s3_0_c15_c8_1, x15
- 8a8: d538f82f mrs x15, s3_0_c15_c8_1
- 8ac: d518f84f msr s3_0_c15_c8_2, x15
- 8b0: d538f84f mrs x15, s3_0_c15_c8_2
- 8b4: d518f86f msr s3_0_c15_c8_3, x15
- 8b8: d538f86f mrs x15, s3_0_c15_c8_3
- 8bc: d518f88f msr s3_0_c15_c8_4, x15
- 8c0: d538f88f mrs x15, s3_0_c15_c8_4
- 8c4: d518f8af msr s3_0_c15_c8_5, x15
- 8c8: d538f8af mrs x15, s3_0_c15_c8_5
- 8cc: d518f8cf msr s3_0_c15_c8_6, x15
- 8d0: d538f8cf mrs x15, s3_0_c15_c8_6
- 8d4: d518f8ef msr s3_0_c15_c8_7, x15
- 8d8: d538f8ef mrs x15, s3_0_c15_c8_7
- 8dc: d518f90f msr s3_0_c15_c9_0, x15
- 8e0: d538f90f mrs x15, s3_0_c15_c9_0
- 8e4: d518f92f msr s3_0_c15_c9_1, x15
- 8e8: d538f92f mrs x15, s3_0_c15_c9_1
- 8ec: d518f94f msr s3_0_c15_c9_2, x15
- 8f0: d538f94f mrs x15, s3_0_c15_c9_2
- 8f4: d518f96f msr s3_0_c15_c9_3, x15
- 8f8: d538f96f mrs x15, s3_0_c15_c9_3
- 8fc: d518f98f msr s3_0_c15_c9_4, x15
- 900: d538f98f mrs x15, s3_0_c15_c9_4
- 904: d518f9af msr s3_0_c15_c9_5, x15
- 908: d538f9af mrs x15, s3_0_c15_c9_5
- 90c: d518f9cf msr s3_0_c15_c9_6, x15
- 910: d538f9cf mrs x15, s3_0_c15_c9_6
- 914: d518f9ef msr s3_0_c15_c9_7, x15
- 918: d538f9ef mrs x15, s3_0_c15_c9_7
- 91c: d518fa0f msr s3_0_c15_c10_0, x15
- 920: d538fa0f mrs x15, s3_0_c15_c10_0
- 924: d518fa2f msr s3_0_c15_c10_1, x15
- 928: d538fa2f mrs x15, s3_0_c15_c10_1
- 92c: d518fa4f msr s3_0_c15_c10_2, x15
- 930: d538fa4f mrs x15, s3_0_c15_c10_2
- 934: d518fa6f msr s3_0_c15_c10_3, x15
- 938: d538fa6f mrs x15, s3_0_c15_c10_3
- 93c: d518fa8f msr s3_0_c15_c10_4, x15
- 940: d538fa8f mrs x15, s3_0_c15_c10_4
- 944: d518faaf msr s3_0_c15_c10_5, x15
- 948: d538faaf mrs x15, s3_0_c15_c10_5
- 94c: d518facf msr s3_0_c15_c10_6, x15
- 950: d538facf mrs x15, s3_0_c15_c10_6
- 954: d518faef msr s3_0_c15_c10_7, x15
- 958: d538faef mrs x15, s3_0_c15_c10_7
- 95c: d518fb0f msr s3_0_c15_c11_0, x15
- 960: d538fb0f mrs x15, s3_0_c15_c11_0
- 964: d518fb2f msr s3_0_c15_c11_1, x15
- 968: d538fb2f mrs x15, s3_0_c15_c11_1
- 96c: d518fb4f msr s3_0_c15_c11_2, x15
- 970: d538fb4f mrs x15, s3_0_c15_c11_2
- 974: d518fb6f msr s3_0_c15_c11_3, x15
- 978: d538fb6f mrs x15, s3_0_c15_c11_3
- 97c: d518fb8f msr s3_0_c15_c11_4, x15
- 980: d538fb8f mrs x15, s3_0_c15_c11_4
- 984: d518fbaf msr s3_0_c15_c11_5, x15
- 988: d538fbaf mrs x15, s3_0_c15_c11_5
- 98c: d518fbcf msr s3_0_c15_c11_6, x15
- 990: d538fbcf mrs x15, s3_0_c15_c11_6
- 994: d518fbef msr s3_0_c15_c11_7, x15
- 998: d538fbef mrs x15, s3_0_c15_c11_7
- 99c: d518fc0f msr s3_0_c15_c12_0, x15
- 9a0: d538fc0f mrs x15, s3_0_c15_c12_0
- 9a4: d518fc2f msr s3_0_c15_c12_1, x15
- 9a8: d538fc2f mrs x15, s3_0_c15_c12_1
- 9ac: d518fc4f msr s3_0_c15_c12_2, x15
- 9b0: d538fc4f mrs x15, s3_0_c15_c12_2
- 9b4: d518fc6f msr s3_0_c15_c12_3, x15
- 9b8: d538fc6f mrs x15, s3_0_c15_c12_3
- 9bc: d518fc8f msr s3_0_c15_c12_4, x15
- 9c0: d538fc8f mrs x15, s3_0_c15_c12_4
- 9c4: d518fcaf msr s3_0_c15_c12_5, x15
- 9c8: d538fcaf mrs x15, s3_0_c15_c12_5
- 9cc: d518fccf msr s3_0_c15_c12_6, x15
- 9d0: d538fccf mrs x15, s3_0_c15_c12_6
- 9d4: d518fcef msr s3_0_c15_c12_7, x15
- 9d8: d538fcef mrs x15, s3_0_c15_c12_7
- 9dc: d518fd0f msr s3_0_c15_c13_0, x15
- 9e0: d538fd0f mrs x15, s3_0_c15_c13_0
- 9e4: d518fd2f msr s3_0_c15_c13_1, x15
- 9e8: d538fd2f mrs x15, s3_0_c15_c13_1
- 9ec: d518fd4f msr s3_0_c15_c13_2, x15
- 9f0: d538fd4f mrs x15, s3_0_c15_c13_2
- 9f4: d518fd6f msr s3_0_c15_c13_3, x15
- 9f8: d538fd6f mrs x15, s3_0_c15_c13_3
- 9fc: d518fd8f msr s3_0_c15_c13_4, x15
- a00: d538fd8f mrs x15, s3_0_c15_c13_4
- a04: d518fdaf msr s3_0_c15_c13_5, x15
- a08: d538fdaf mrs x15, s3_0_c15_c13_5
- a0c: d518fdcf msr s3_0_c15_c13_6, x15
- a10: d538fdcf mrs x15, s3_0_c15_c13_6
- a14: d518fdef msr s3_0_c15_c13_7, x15
- a18: d538fdef mrs x15, s3_0_c15_c13_7
- a1c: d518fe0f msr s3_0_c15_c14_0, x15
- a20: d538fe0f mrs x15, s3_0_c15_c14_0
- a24: d518fe2f msr s3_0_c15_c14_1, x15
- a28: d538fe2f mrs x15, s3_0_c15_c14_1
- a2c: d518fe4f msr s3_0_c15_c14_2, x15
- a30: d538fe4f mrs x15, s3_0_c15_c14_2
- a34: d518fe6f msr s3_0_c15_c14_3, x15
- a38: d538fe6f mrs x15, s3_0_c15_c14_3
- a3c: d518fe8f msr s3_0_c15_c14_4, x15
- a40: d538fe8f mrs x15, s3_0_c15_c14_4
- a44: d518feaf msr s3_0_c15_c14_5, x15
- a48: d538feaf mrs x15, s3_0_c15_c14_5
- a4c: d518fecf msr s3_0_c15_c14_6, x15
- a50: d538fecf mrs x15, s3_0_c15_c14_6
- a54: d518feef msr s3_0_c15_c14_7, x15
- a58: d538feef mrs x15, s3_0_c15_c14_7
- a5c: d518ff0f msr s3_0_c15_c15_0, x15
- a60: d538ff0f mrs x15, s3_0_c15_c15_0
- a64: d518ff2f msr s3_0_c15_c15_1, x15
- a68: d538ff2f mrs x15, s3_0_c15_c15_1
- a6c: d518ff4f msr s3_0_c15_c15_2, x15
- a70: d538ff4f mrs x15, s3_0_c15_c15_2
- a74: d518ff6f msr s3_0_c15_c15_3, x15
- a78: d538ff6f mrs x15, s3_0_c15_c15_3
- a7c: d518ff8f msr s3_0_c15_c15_4, x15
- a80: d538ff8f mrs x15, s3_0_c15_c15_4
- a84: d518ffaf msr s3_0_c15_c15_5, x15
- a88: d538ffaf mrs x15, s3_0_c15_c15_5
- a8c: d518ffcf msr s3_0_c15_c15_6, x15
- a90: d538ffcf mrs x15, s3_0_c15_c15_6
- a94: d518ffef msr s3_0_c15_c15_7, x15
- a98: d538ffef mrs x15, s3_0_c15_c15_7
- a9c: d519b00f msr s3_1_c11_c0_0, x15
- aa0: d539b00f mrs x15, s3_1_c11_c0_0
- aa4: d519b02f msr s3_1_c11_c0_1, x15
- aa8: d539b02f mrs x15, s3_1_c11_c0_1
- aac: d519b04f msr s3_1_c11_c0_2, x15
- ab0: d539b04f mrs x15, s3_1_c11_c0_2
- ab4: d519b06f msr s3_1_c11_c0_3, x15
- ab8: d539b06f mrs x15, s3_1_c11_c0_3
- abc: d519b08f msr s3_1_c11_c0_4, x15
- ac0: d539b08f mrs x15, s3_1_c11_c0_4
- ac4: d519b0af msr s3_1_c11_c0_5, x15
- ac8: d539b0af mrs x15, s3_1_c11_c0_5
- acc: d519b0cf msr s3_1_c11_c0_6, x15
- ad0: d539b0cf mrs x15, s3_1_c11_c0_6
- ad4: d519b0ef msr s3_1_c11_c0_7, x15
- ad8: d539b0ef mrs x15, s3_1_c11_c0_7
- adc: d519b10f msr s3_1_c11_c1_0, x15
- ae0: d539b10f mrs x15, s3_1_c11_c1_0
- ae4: d519b12f msr s3_1_c11_c1_1, x15
- ae8: d539b12f mrs x15, s3_1_c11_c1_1
- aec: d519b14f msr s3_1_c11_c1_2, x15
- af0: d539b14f mrs x15, s3_1_c11_c1_2
- af4: d519b16f msr s3_1_c11_c1_3, x15
- af8: d539b16f mrs x15, s3_1_c11_c1_3
- afc: d519b18f msr s3_1_c11_c1_4, x15
- b00: d539b18f mrs x15, s3_1_c11_c1_4
- b04: d519b1af msr s3_1_c11_c1_5, x15
- b08: d539b1af mrs x15, s3_1_c11_c1_5
- b0c: d519b1cf msr s3_1_c11_c1_6, x15
- b10: d539b1cf mrs x15, s3_1_c11_c1_6
- b14: d519b1ef msr s3_1_c11_c1_7, x15
- b18: d539b1ef mrs x15, s3_1_c11_c1_7
- b1c: d519b20f msr s3_1_c11_c2_0, x15
- b20: d539b20f mrs x15, s3_1_c11_c2_0
- b24: d519b22f msr s3_1_c11_c2_1, x15
- b28: d539b22f mrs x15, s3_1_c11_c2_1
- b2c: d519b24f msr s3_1_c11_c2_2, x15
- b30: d539b24f mrs x15, s3_1_c11_c2_2
- b34: d519b26f msr s3_1_c11_c2_3, x15
- b38: d539b26f mrs x15, s3_1_c11_c2_3
- b3c: d519b28f msr s3_1_c11_c2_4, x15
- b40: d539b28f mrs x15, s3_1_c11_c2_4
- b44: d519b2af msr s3_1_c11_c2_5, x15
- b48: d539b2af mrs x15, s3_1_c11_c2_5
- b4c: d519b2cf msr s3_1_c11_c2_6, x15
- b50: d539b2cf mrs x15, s3_1_c11_c2_6
- b54: d519b2ef msr s3_1_c11_c2_7, x15
- b58: d539b2ef mrs x15, s3_1_c11_c2_7
- b5c: d519b30f msr s3_1_c11_c3_0, x15
- b60: d539b30f mrs x15, s3_1_c11_c3_0
- b64: d519b32f msr s3_1_c11_c3_1, x15
- b68: d539b32f mrs x15, s3_1_c11_c3_1
- b6c: d519b34f msr s3_1_c11_c3_2, x15
- b70: d539b34f mrs x15, s3_1_c11_c3_2
- b74: d519b36f msr s3_1_c11_c3_3, x15
- b78: d539b36f mrs x15, s3_1_c11_c3_3
- b7c: d519b38f msr s3_1_c11_c3_4, x15
- b80: d539b38f mrs x15, s3_1_c11_c3_4
- b84: d519b3af msr s3_1_c11_c3_5, x15
- b88: d539b3af mrs x15, s3_1_c11_c3_5
- b8c: d519b3cf msr s3_1_c11_c3_6, x15
- b90: d539b3cf mrs x15, s3_1_c11_c3_6
- b94: d519b3ef msr s3_1_c11_c3_7, x15
- b98: d539b3ef mrs x15, s3_1_c11_c3_7
- b9c: d519b40f msr s3_1_c11_c4_0, x15
- ba0: d539b40f mrs x15, s3_1_c11_c4_0
- ba4: d519b42f msr s3_1_c11_c4_1, x15
- ba8: d539b42f mrs x15, s3_1_c11_c4_1
- bac: d519b44f msr s3_1_c11_c4_2, x15
- bb0: d539b44f mrs x15, s3_1_c11_c4_2
- bb4: d519b46f msr s3_1_c11_c4_3, x15
- bb8: d539b46f mrs x15, s3_1_c11_c4_3
- bbc: d519b48f msr s3_1_c11_c4_4, x15
- bc0: d539b48f mrs x15, s3_1_c11_c4_4
- bc4: d519b4af msr s3_1_c11_c4_5, x15
- bc8: d539b4af mrs x15, s3_1_c11_c4_5
- bcc: d519b4cf msr s3_1_c11_c4_6, x15
- bd0: d539b4cf mrs x15, s3_1_c11_c4_6
- bd4: d519b4ef msr s3_1_c11_c4_7, x15
- bd8: d539b4ef mrs x15, s3_1_c11_c4_7
- bdc: d519b50f msr s3_1_c11_c5_0, x15
- be0: d539b50f mrs x15, s3_1_c11_c5_0
- be4: d519b52f msr s3_1_c11_c5_1, x15
- be8: d539b52f mrs x15, s3_1_c11_c5_1
- bec: d519b54f msr s3_1_c11_c5_2, x15
- bf0: d539b54f mrs x15, s3_1_c11_c5_2
- bf4: d519b56f msr s3_1_c11_c5_3, x15
- bf8: d539b56f mrs x15, s3_1_c11_c5_3
- bfc: d519b58f msr s3_1_c11_c5_4, x15
- c00: d539b58f mrs x15, s3_1_c11_c5_4
- c04: d519b5af msr s3_1_c11_c5_5, x15
- c08: d539b5af mrs x15, s3_1_c11_c5_5
- c0c: d519b5cf msr s3_1_c11_c5_6, x15
- c10: d539b5cf mrs x15, s3_1_c11_c5_6
- c14: d519b5ef msr s3_1_c11_c5_7, x15
- c18: d539b5ef mrs x15, s3_1_c11_c5_7
- c1c: d519b60f msr s3_1_c11_c6_0, x15
- c20: d539b60f mrs x15, s3_1_c11_c6_0
- c24: d519b62f msr s3_1_c11_c6_1, x15
- c28: d539b62f mrs x15, s3_1_c11_c6_1
- c2c: d519b64f msr s3_1_c11_c6_2, x15
- c30: d539b64f mrs x15, s3_1_c11_c6_2
- c34: d519b66f msr s3_1_c11_c6_3, x15
- c38: d539b66f mrs x15, s3_1_c11_c6_3
- c3c: d519b68f msr s3_1_c11_c6_4, x15
- c40: d539b68f mrs x15, s3_1_c11_c6_4
- c44: d519b6af msr s3_1_c11_c6_5, x15
- c48: d539b6af mrs x15, s3_1_c11_c6_5
- c4c: d519b6cf msr s3_1_c11_c6_6, x15
- c50: d539b6cf mrs x15, s3_1_c11_c6_6
- c54: d519b6ef msr s3_1_c11_c6_7, x15
- c58: d539b6ef mrs x15, s3_1_c11_c6_7
- c5c: d519b70f msr s3_1_c11_c7_0, x15
- c60: d539b70f mrs x15, s3_1_c11_c7_0
- c64: d519b72f msr s3_1_c11_c7_1, x15
- c68: d539b72f mrs x15, s3_1_c11_c7_1
- c6c: d519b74f msr s3_1_c11_c7_2, x15
- c70: d539b74f mrs x15, s3_1_c11_c7_2
- c74: d519b76f msr s3_1_c11_c7_3, x15
- c78: d539b76f mrs x15, s3_1_c11_c7_3
- c7c: d519b78f msr s3_1_c11_c7_4, x15
- c80: d539b78f mrs x15, s3_1_c11_c7_4
- c84: d519b7af msr s3_1_c11_c7_5, x15
- c88: d539b7af mrs x15, s3_1_c11_c7_5
- c8c: d519b7cf msr s3_1_c11_c7_6, x15
- c90: d539b7cf mrs x15, s3_1_c11_c7_6
- c94: d519b7ef msr s3_1_c11_c7_7, x15
- c98: d539b7ef mrs x15, s3_1_c11_c7_7
- c9c: d519b80f msr s3_1_c11_c8_0, x15
- ca0: d539b80f mrs x15, s3_1_c11_c8_0
- ca4: d519b82f msr s3_1_c11_c8_1, x15
- ca8: d539b82f mrs x15, s3_1_c11_c8_1
- cac: d519b84f msr s3_1_c11_c8_2, x15
- cb0: d539b84f mrs x15, s3_1_c11_c8_2
- cb4: d519b86f msr s3_1_c11_c8_3, x15
- cb8: d539b86f mrs x15, s3_1_c11_c8_3
- cbc: d519b88f msr s3_1_c11_c8_4, x15
- cc0: d539b88f mrs x15, s3_1_c11_c8_4
- cc4: d519b8af msr s3_1_c11_c8_5, x15
- cc8: d539b8af mrs x15, s3_1_c11_c8_5
- ccc: d519b8cf msr s3_1_c11_c8_6, x15
- cd0: d539b8cf mrs x15, s3_1_c11_c8_6
- cd4: d519b8ef msr s3_1_c11_c8_7, x15
- cd8: d539b8ef mrs x15, s3_1_c11_c8_7
- cdc: d519b90f msr s3_1_c11_c9_0, x15
- ce0: d539b90f mrs x15, s3_1_c11_c9_0
- ce4: d519b92f msr s3_1_c11_c9_1, x15
- ce8: d539b92f mrs x15, s3_1_c11_c9_1
- cec: d519b94f msr s3_1_c11_c9_2, x15
- cf0: d539b94f mrs x15, s3_1_c11_c9_2
- cf4: d519b96f msr s3_1_c11_c9_3, x15
- cf8: d539b96f mrs x15, s3_1_c11_c9_3
- cfc: d519b98f msr s3_1_c11_c9_4, x15
- d00: d539b98f mrs x15, s3_1_c11_c9_4
- d04: d519b9af msr s3_1_c11_c9_5, x15
- d08: d539b9af mrs x15, s3_1_c11_c9_5
- d0c: d519b9cf msr s3_1_c11_c9_6, x15
- d10: d539b9cf mrs x15, s3_1_c11_c9_6
- d14: d519b9ef msr s3_1_c11_c9_7, x15
- d18: d539b9ef mrs x15, s3_1_c11_c9_7
- d1c: d519ba0f msr s3_1_c11_c10_0, x15
- d20: d539ba0f mrs x15, s3_1_c11_c10_0
- d24: d519ba2f msr s3_1_c11_c10_1, x15
- d28: d539ba2f mrs x15, s3_1_c11_c10_1
- d2c: d519ba4f msr s3_1_c11_c10_2, x15
- d30: d539ba4f mrs x15, s3_1_c11_c10_2
- d34: d519ba6f msr s3_1_c11_c10_3, x15
- d38: d539ba6f mrs x15, s3_1_c11_c10_3
- d3c: d519ba8f msr s3_1_c11_c10_4, x15
- d40: d539ba8f mrs x15, s3_1_c11_c10_4
- d44: d519baaf msr s3_1_c11_c10_5, x15
- d48: d539baaf mrs x15, s3_1_c11_c10_5
- d4c: d519bacf msr s3_1_c11_c10_6, x15
- d50: d539bacf mrs x15, s3_1_c11_c10_6
- d54: d519baef msr s3_1_c11_c10_7, x15
- d58: d539baef mrs x15, s3_1_c11_c10_7
- d5c: d519bb0f msr s3_1_c11_c11_0, x15
- d60: d539bb0f mrs x15, s3_1_c11_c11_0
- d64: d519bb2f msr s3_1_c11_c11_1, x15
- d68: d539bb2f mrs x15, s3_1_c11_c11_1
- d6c: d519bb4f msr s3_1_c11_c11_2, x15
- d70: d539bb4f mrs x15, s3_1_c11_c11_2
- d74: d519bb6f msr s3_1_c11_c11_3, x15
- d78: d539bb6f mrs x15, s3_1_c11_c11_3
- d7c: d519bb8f msr s3_1_c11_c11_4, x15
- d80: d539bb8f mrs x15, s3_1_c11_c11_4
- d84: d519bbaf msr s3_1_c11_c11_5, x15
- d88: d539bbaf mrs x15, s3_1_c11_c11_5
- d8c: d519bbcf msr s3_1_c11_c11_6, x15
- d90: d539bbcf mrs x15, s3_1_c11_c11_6
- d94: d519bbef msr s3_1_c11_c11_7, x15
- d98: d539bbef mrs x15, s3_1_c11_c11_7
- d9c: d519bc0f msr s3_1_c11_c12_0, x15
- da0: d539bc0f mrs x15, s3_1_c11_c12_0
- da4: d519bc2f msr s3_1_c11_c12_1, x15
- da8: d539bc2f mrs x15, s3_1_c11_c12_1
- dac: d519bc4f msr s3_1_c11_c12_2, x15
- db0: d539bc4f mrs x15, s3_1_c11_c12_2
- db4: d519bc6f msr s3_1_c11_c12_3, x15
- db8: d539bc6f mrs x15, s3_1_c11_c12_3
- dbc: d519bc8f msr s3_1_c11_c12_4, x15
- dc0: d539bc8f mrs x15, s3_1_c11_c12_4
- dc4: d519bcaf msr s3_1_c11_c12_5, x15
- dc8: d539bcaf mrs x15, s3_1_c11_c12_5
- dcc: d519bccf msr s3_1_c11_c12_6, x15
- dd0: d539bccf mrs x15, s3_1_c11_c12_6
- dd4: d519bcef msr s3_1_c11_c12_7, x15
- dd8: d539bcef mrs x15, s3_1_c11_c12_7
- ddc: d519bd0f msr s3_1_c11_c13_0, x15
- de0: d539bd0f mrs x15, s3_1_c11_c13_0
- de4: d519bd2f msr s3_1_c11_c13_1, x15
- de8: d539bd2f mrs x15, s3_1_c11_c13_1
- dec: d519bd4f msr s3_1_c11_c13_2, x15
- df0: d539bd4f mrs x15, s3_1_c11_c13_2
- df4: d519bd6f msr s3_1_c11_c13_3, x15
- df8: d539bd6f mrs x15, s3_1_c11_c13_3
- dfc: d519bd8f msr s3_1_c11_c13_4, x15
- e00: d539bd8f mrs x15, s3_1_c11_c13_4
- e04: d519bdaf msr s3_1_c11_c13_5, x15
- e08: d539bdaf mrs x15, s3_1_c11_c13_5
- e0c: d519bdcf msr s3_1_c11_c13_6, x15
- e10: d539bdcf mrs x15, s3_1_c11_c13_6
- e14: d519bdef msr s3_1_c11_c13_7, x15
- e18: d539bdef mrs x15, s3_1_c11_c13_7
- e1c: d519be0f msr s3_1_c11_c14_0, x15
- e20: d539be0f mrs x15, s3_1_c11_c14_0
- e24: d519be2f msr s3_1_c11_c14_1, x15
- e28: d539be2f mrs x15, s3_1_c11_c14_1
- e2c: d519be4f msr s3_1_c11_c14_2, x15
- e30: d539be4f mrs x15, s3_1_c11_c14_2
- e34: d519be6f msr s3_1_c11_c14_3, x15
- e38: d539be6f mrs x15, s3_1_c11_c14_3
- e3c: d519be8f msr s3_1_c11_c14_4, x15
- e40: d539be8f mrs x15, s3_1_c11_c14_4
- e44: d519beaf msr s3_1_c11_c14_5, x15
- e48: d539beaf mrs x15, s3_1_c11_c14_5
- e4c: d519becf msr s3_1_c11_c14_6, x15
- e50: d539becf mrs x15, s3_1_c11_c14_6
- e54: d519beef msr s3_1_c11_c14_7, x15
- e58: d539beef mrs x15, s3_1_c11_c14_7
- e5c: d519bf0f msr s3_1_c11_c15_0, x15
- e60: d539bf0f mrs x15, s3_1_c11_c15_0
- e64: d519bf2f msr s3_1_c11_c15_1, x15
- e68: d539bf2f mrs x15, s3_1_c11_c15_1
- e6c: d519bf4f msr s3_1_c11_c15_2, x15
- e70: d539bf4f mrs x15, s3_1_c11_c15_2
- e74: d519bf6f msr s3_1_c11_c15_3, x15
- e78: d539bf6f mrs x15, s3_1_c11_c15_3
- e7c: d519bf8f msr s3_1_c11_c15_4, x15
- e80: d539bf8f mrs x15, s3_1_c11_c15_4
- e84: d519bfaf msr s3_1_c11_c15_5, x15
- e88: d539bfaf mrs x15, s3_1_c11_c15_5
- e8c: d519bfcf msr s3_1_c11_c15_6, x15
- e90: d539bfcf mrs x15, s3_1_c11_c15_6
- e94: d519bfef msr s3_1_c11_c15_7, x15
- e98: d539bfef mrs x15, s3_1_c11_c15_7
- e9c: d519f00f msr s3_1_c15_c0_0, x15
- ea0: d539f00f mrs x15, s3_1_c15_c0_0
- ea4: d519f02f msr s3_1_c15_c0_1, x15
- ea8: d539f02f mrs x15, s3_1_c15_c0_1
- eac: d519f04f msr s3_1_c15_c0_2, x15
- eb0: d539f04f mrs x15, s3_1_c15_c0_2
- eb4: d519f06f msr s3_1_c15_c0_3, x15
- eb8: d539f06f mrs x15, s3_1_c15_c0_3
- ebc: d519f08f msr s3_1_c15_c0_4, x15
- ec0: d539f08f mrs x15, s3_1_c15_c0_4
- ec4: d519f0af msr s3_1_c15_c0_5, x15
- ec8: d539f0af mrs x15, s3_1_c15_c0_5
- ecc: d519f0cf msr s3_1_c15_c0_6, x15
- ed0: d539f0cf mrs x15, s3_1_c15_c0_6
- ed4: d519f0ef msr s3_1_c15_c0_7, x15
- ed8: d539f0ef mrs x15, s3_1_c15_c0_7
- edc: d519f10f msr s3_1_c15_c1_0, x15
- ee0: d539f10f mrs x15, s3_1_c15_c1_0
- ee4: d519f12f msr s3_1_c15_c1_1, x15
- ee8: d539f12f mrs x15, s3_1_c15_c1_1
- eec: d519f14f msr s3_1_c15_c1_2, x15
- ef0: d539f14f mrs x15, s3_1_c15_c1_2
- ef4: d519f16f msr s3_1_c15_c1_3, x15
- ef8: d539f16f mrs x15, s3_1_c15_c1_3
- efc: d519f18f msr s3_1_c15_c1_4, x15
- f00: d539f18f mrs x15, s3_1_c15_c1_4
- f04: d519f1af msr s3_1_c15_c1_5, x15
- f08: d539f1af mrs x15, s3_1_c15_c1_5
- f0c: d519f1cf msr s3_1_c15_c1_6, x15
- f10: d539f1cf mrs x15, s3_1_c15_c1_6
- f14: d519f1ef msr s3_1_c15_c1_7, x15
- f18: d539f1ef mrs x15, s3_1_c15_c1_7
- f1c: d519f20f msr s3_1_c15_c2_0, x15
- f20: d539f20f mrs x15, s3_1_c15_c2_0
- f24: d519f22f msr s3_1_c15_c2_1, x15
- f28: d539f22f mrs x15, s3_1_c15_c2_1
- f2c: d519f24f msr s3_1_c15_c2_2, x15
- f30: d539f24f mrs x15, s3_1_c15_c2_2
- f34: d519f26f msr s3_1_c15_c2_3, x15
- f38: d539f26f mrs x15, s3_1_c15_c2_3
- f3c: d519f28f msr s3_1_c15_c2_4, x15
- f40: d539f28f mrs x15, s3_1_c15_c2_4
- f44: d519f2af msr s3_1_c15_c2_5, x15
- f48: d539f2af mrs x15, s3_1_c15_c2_5
- f4c: d519f2cf msr s3_1_c15_c2_6, x15
- f50: d539f2cf mrs x15, s3_1_c15_c2_6
- f54: d519f2ef msr s3_1_c15_c2_7, x15
- f58: d539f2ef mrs x15, s3_1_c15_c2_7
- f5c: d519f30f msr s3_1_c15_c3_0, x15
- f60: d539f30f mrs x15, s3_1_c15_c3_0
- f64: d519f32f msr s3_1_c15_c3_1, x15
- f68: d539f32f mrs x15, s3_1_c15_c3_1
- f6c: d519f34f msr s3_1_c15_c3_2, x15
- f70: d539f34f mrs x15, s3_1_c15_c3_2
- f74: d519f36f msr s3_1_c15_c3_3, x15
- f78: d539f36f mrs x15, s3_1_c15_c3_3
- f7c: d519f38f msr s3_1_c15_c3_4, x15
- f80: d539f38f mrs x15, s3_1_c15_c3_4
- f84: d519f3af msr s3_1_c15_c3_5, x15
- f88: d539f3af mrs x15, s3_1_c15_c3_5
- f8c: d519f3cf msr s3_1_c15_c3_6, x15
- f90: d539f3cf mrs x15, s3_1_c15_c3_6
- f94: d519f3ef msr s3_1_c15_c3_7, x15
- f98: d539f3ef mrs x15, s3_1_c15_c3_7
- f9c: d519f40f msr s3_1_c15_c4_0, x15
- fa0: d539f40f mrs x15, s3_1_c15_c4_0
- fa4: d519f42f msr s3_1_c15_c4_1, x15
- fa8: d539f42f mrs x15, s3_1_c15_c4_1
- fac: d519f44f msr s3_1_c15_c4_2, x15
- fb0: d539f44f mrs x15, s3_1_c15_c4_2
- fb4: d519f46f msr s3_1_c15_c4_3, x15
- fb8: d539f46f mrs x15, s3_1_c15_c4_3
- fbc: d519f48f msr s3_1_c15_c4_4, x15
- fc0: d539f48f mrs x15, s3_1_c15_c4_4
- fc4: d519f4af msr s3_1_c15_c4_5, x15
- fc8: d539f4af mrs x15, s3_1_c15_c4_5
- fcc: d519f4cf msr s3_1_c15_c4_6, x15
- fd0: d539f4cf mrs x15, s3_1_c15_c4_6
- fd4: d519f4ef msr s3_1_c15_c4_7, x15
- fd8: d539f4ef mrs x15, s3_1_c15_c4_7
- fdc: d519f50f msr s3_1_c15_c5_0, x15
- fe0: d539f50f mrs x15, s3_1_c15_c5_0
- fe4: d519f52f msr s3_1_c15_c5_1, x15
- fe8: d539f52f mrs x15, s3_1_c15_c5_1
- fec: d519f54f msr s3_1_c15_c5_2, x15
- ff0: d539f54f mrs x15, s3_1_c15_c5_2
- ff4: d519f56f msr s3_1_c15_c5_3, x15
- ff8: d539f56f mrs x15, s3_1_c15_c5_3
- ffc: d519f58f msr s3_1_c15_c5_4, x15
- 1000: d539f58f mrs x15, s3_1_c15_c5_4
- 1004: d519f5af msr s3_1_c15_c5_5, x15
- 1008: d539f5af mrs x15, s3_1_c15_c5_5
- 100c: d519f5cf msr s3_1_c15_c5_6, x15
- 1010: d539f5cf mrs x15, s3_1_c15_c5_6
- 1014: d519f5ef msr s3_1_c15_c5_7, x15
- 1018: d539f5ef mrs x15, s3_1_c15_c5_7
- 101c: d519f60f msr s3_1_c15_c6_0, x15
- 1020: d539f60f mrs x15, s3_1_c15_c6_0
- 1024: d519f62f msr s3_1_c15_c6_1, x15
- 1028: d539f62f mrs x15, s3_1_c15_c6_1
- 102c: d519f64f msr s3_1_c15_c6_2, x15
- 1030: d539f64f mrs x15, s3_1_c15_c6_2
- 1034: d519f66f msr s3_1_c15_c6_3, x15
- 1038: d539f66f mrs x15, s3_1_c15_c6_3
- 103c: d519f68f msr s3_1_c15_c6_4, x15
- 1040: d539f68f mrs x15, s3_1_c15_c6_4
- 1044: d519f6af msr s3_1_c15_c6_5, x15
- 1048: d539f6af mrs x15, s3_1_c15_c6_5
- 104c: d519f6cf msr s3_1_c15_c6_6, x15
- 1050: d539f6cf mrs x15, s3_1_c15_c6_6
- 1054: d519f6ef msr s3_1_c15_c6_7, x15
- 1058: d539f6ef mrs x15, s3_1_c15_c6_7
- 105c: d519f70f msr s3_1_c15_c7_0, x15
- 1060: d539f70f mrs x15, s3_1_c15_c7_0
- 1064: d519f72f msr s3_1_c15_c7_1, x15
- 1068: d539f72f mrs x15, s3_1_c15_c7_1
- 106c: d519f74f msr s3_1_c15_c7_2, x15
- 1070: d539f74f mrs x15, s3_1_c15_c7_2
- 1074: d519f76f msr s3_1_c15_c7_3, x15
- 1078: d539f76f mrs x15, s3_1_c15_c7_3
- 107c: d519f78f msr s3_1_c15_c7_4, x15
- 1080: d539f78f mrs x15, s3_1_c15_c7_4
- 1084: d519f7af msr s3_1_c15_c7_5, x15
- 1088: d539f7af mrs x15, s3_1_c15_c7_5
- 108c: d519f7cf msr s3_1_c15_c7_6, x15
- 1090: d539f7cf mrs x15, s3_1_c15_c7_6
- 1094: d519f7ef msr s3_1_c15_c7_7, x15
- 1098: d539f7ef mrs x15, s3_1_c15_c7_7
- 109c: d519f80f msr s3_1_c15_c8_0, x15
- 10a0: d539f80f mrs x15, s3_1_c15_c8_0
- 10a4: d519f82f msr s3_1_c15_c8_1, x15
- 10a8: d539f82f mrs x15, s3_1_c15_c8_1
- 10ac: d519f84f msr s3_1_c15_c8_2, x15
- 10b0: d539f84f mrs x15, s3_1_c15_c8_2
- 10b4: d519f86f msr s3_1_c15_c8_3, x15
- 10b8: d539f86f mrs x15, s3_1_c15_c8_3
- 10bc: d519f88f msr s3_1_c15_c8_4, x15
- 10c0: d539f88f mrs x15, s3_1_c15_c8_4
- 10c4: d519f8af msr s3_1_c15_c8_5, x15
- 10c8: d539f8af mrs x15, s3_1_c15_c8_5
- 10cc: d519f8cf msr s3_1_c15_c8_6, x15
- 10d0: d539f8cf mrs x15, s3_1_c15_c8_6
- 10d4: d519f8ef msr s3_1_c15_c8_7, x15
- 10d8: d539f8ef mrs x15, s3_1_c15_c8_7
- 10dc: d519f90f msr s3_1_c15_c9_0, x15
- 10e0: d539f90f mrs x15, s3_1_c15_c9_0
- 10e4: d519f92f msr s3_1_c15_c9_1, x15
- 10e8: d539f92f mrs x15, s3_1_c15_c9_1
- 10ec: d519f94f msr s3_1_c15_c9_2, x15
- 10f0: d539f94f mrs x15, s3_1_c15_c9_2
- 10f4: d519f96f msr s3_1_c15_c9_3, x15
- 10f8: d539f96f mrs x15, s3_1_c15_c9_3
- 10fc: d519f98f msr s3_1_c15_c9_4, x15
- 1100: d539f98f mrs x15, s3_1_c15_c9_4
- 1104: d519f9af msr s3_1_c15_c9_5, x15
- 1108: d539f9af mrs x15, s3_1_c15_c9_5
- 110c: d519f9cf msr s3_1_c15_c9_6, x15
- 1110: d539f9cf mrs x15, s3_1_c15_c9_6
- 1114: d519f9ef msr s3_1_c15_c9_7, x15
- 1118: d539f9ef mrs x15, s3_1_c15_c9_7
- 111c: d519fa0f msr s3_1_c15_c10_0, x15
- 1120: d539fa0f mrs x15, s3_1_c15_c10_0
- 1124: d519fa2f msr s3_1_c15_c10_1, x15
- 1128: d539fa2f mrs x15, s3_1_c15_c10_1
- 112c: d519fa4f msr s3_1_c15_c10_2, x15
- 1130: d539fa4f mrs x15, s3_1_c15_c10_2
- 1134: d519fa6f msr s3_1_c15_c10_3, x15
- 1138: d539fa6f mrs x15, s3_1_c15_c10_3
- 113c: d519fa8f msr s3_1_c15_c10_4, x15
- 1140: d539fa8f mrs x15, s3_1_c15_c10_4
- 1144: d519faaf msr s3_1_c15_c10_5, x15
- 1148: d539faaf mrs x15, s3_1_c15_c10_5
- 114c: d519facf msr s3_1_c15_c10_6, x15
- 1150: d539facf mrs x15, s3_1_c15_c10_6
- 1154: d519faef msr s3_1_c15_c10_7, x15
- 1158: d539faef mrs x15, s3_1_c15_c10_7
- 115c: d519fb0f msr s3_1_c15_c11_0, x15
- 1160: d539fb0f mrs x15, s3_1_c15_c11_0
- 1164: d519fb2f msr s3_1_c15_c11_1, x15
- 1168: d539fb2f mrs x15, s3_1_c15_c11_1
- 116c: d519fb4f msr s3_1_c15_c11_2, x15
- 1170: d539fb4f mrs x15, s3_1_c15_c11_2
- 1174: d519fb6f msr s3_1_c15_c11_3, x15
- 1178: d539fb6f mrs x15, s3_1_c15_c11_3
- 117c: d519fb8f msr s3_1_c15_c11_4, x15
- 1180: d539fb8f mrs x15, s3_1_c15_c11_4
- 1184: d519fbaf msr s3_1_c15_c11_5, x15
- 1188: d539fbaf mrs x15, s3_1_c15_c11_5
- 118c: d519fbcf msr s3_1_c15_c11_6, x15
- 1190: d539fbcf mrs x15, s3_1_c15_c11_6
- 1194: d519fbef msr s3_1_c15_c11_7, x15
- 1198: d539fbef mrs x15, s3_1_c15_c11_7
- 119c: d519fc0f msr s3_1_c15_c12_0, x15
- 11a0: d539fc0f mrs x15, s3_1_c15_c12_0
- 11a4: d519fc2f msr s3_1_c15_c12_1, x15
- 11a8: d539fc2f mrs x15, s3_1_c15_c12_1
- 11ac: d519fc4f msr s3_1_c15_c12_2, x15
- 11b0: d539fc4f mrs x15, s3_1_c15_c12_2
- 11b4: d519fc6f msr s3_1_c15_c12_3, x15
- 11b8: d539fc6f mrs x15, s3_1_c15_c12_3
- 11bc: d519fc8f msr s3_1_c15_c12_4, x15
- 11c0: d539fc8f mrs x15, s3_1_c15_c12_4
- 11c4: d519fcaf msr s3_1_c15_c12_5, x15
- 11c8: d539fcaf mrs x15, s3_1_c15_c12_5
- 11cc: d519fccf msr s3_1_c15_c12_6, x15
- 11d0: d539fccf mrs x15, s3_1_c15_c12_6
- 11d4: d519fcef msr s3_1_c15_c12_7, x15
- 11d8: d539fcef mrs x15, s3_1_c15_c12_7
- 11dc: d519fd0f msr s3_1_c15_c13_0, x15
- 11e0: d539fd0f mrs x15, s3_1_c15_c13_0
- 11e4: d519fd2f msr s3_1_c15_c13_1, x15
- 11e8: d539fd2f mrs x15, s3_1_c15_c13_1
- 11ec: d519fd4f msr s3_1_c15_c13_2, x15
- 11f0: d539fd4f mrs x15, s3_1_c15_c13_2
- 11f4: d519fd6f msr s3_1_c15_c13_3, x15
- 11f8: d539fd6f mrs x15, s3_1_c15_c13_3
- 11fc: d519fd8f msr s3_1_c15_c13_4, x15
- 1200: d539fd8f mrs x15, s3_1_c15_c13_4
- 1204: d519fdaf msr s3_1_c15_c13_5, x15
- 1208: d539fdaf mrs x15, s3_1_c15_c13_5
- 120c: d519fdcf msr s3_1_c15_c13_6, x15
- 1210: d539fdcf mrs x15, s3_1_c15_c13_6
- 1214: d519fdef msr s3_1_c15_c13_7, x15
- 1218: d539fdef mrs x15, s3_1_c15_c13_7
- 121c: d519fe0f msr s3_1_c15_c14_0, x15
- 1220: d539fe0f mrs x15, s3_1_c15_c14_0
- 1224: d519fe2f msr s3_1_c15_c14_1, x15
- 1228: d539fe2f mrs x15, s3_1_c15_c14_1
- 122c: d519fe4f msr s3_1_c15_c14_2, x15
- 1230: d539fe4f mrs x15, s3_1_c15_c14_2
- 1234: d519fe6f msr s3_1_c15_c14_3, x15
- 1238: d539fe6f mrs x15, s3_1_c15_c14_3
- 123c: d519fe8f msr s3_1_c15_c14_4, x15
- 1240: d539fe8f mrs x15, s3_1_c15_c14_4
- 1244: d519feaf msr s3_1_c15_c14_5, x15
- 1248: d539feaf mrs x15, s3_1_c15_c14_5
- 124c: d519fecf msr s3_1_c15_c14_6, x15
- 1250: d539fecf mrs x15, s3_1_c15_c14_6
- 1254: d519feef msr s3_1_c15_c14_7, x15
- 1258: d539feef mrs x15, s3_1_c15_c14_7
- 125c: d519ff0f msr s3_1_c15_c15_0, x15
- 1260: d539ff0f mrs x15, s3_1_c15_c15_0
- 1264: d519ff2f msr s3_1_c15_c15_1, x15
- 1268: d539ff2f mrs x15, s3_1_c15_c15_1
- 126c: d519ff4f msr s3_1_c15_c15_2, x15
- 1270: d539ff4f mrs x15, s3_1_c15_c15_2
- 1274: d519ff6f msr s3_1_c15_c15_3, x15
- 1278: d539ff6f mrs x15, s3_1_c15_c15_3
- 127c: d519ff8f msr s3_1_c15_c15_4, x15
- 1280: d539ff8f mrs x15, s3_1_c15_c15_4
- 1284: d519ffaf msr s3_1_c15_c15_5, x15
- 1288: d539ffaf mrs x15, s3_1_c15_c15_5
- 128c: d519ffcf msr s3_1_c15_c15_6, x15
- 1290: d539ffcf mrs x15, s3_1_c15_c15_6
- 1294: d519ffef msr s3_1_c15_c15_7, x15
- 1298: d539ffef mrs x15, s3_1_c15_c15_7
- 129c: d51ab00f msr s3_2_c11_c0_0, x15
- 12a0: d53ab00f mrs x15, s3_2_c11_c0_0
- 12a4: d51ab02f msr s3_2_c11_c0_1, x15
- 12a8: d53ab02f mrs x15, s3_2_c11_c0_1
- 12ac: d51ab04f msr s3_2_c11_c0_2, x15
- 12b0: d53ab04f mrs x15, s3_2_c11_c0_2
- 12b4: d51ab06f msr s3_2_c11_c0_3, x15
- 12b8: d53ab06f mrs x15, s3_2_c11_c0_3
- 12bc: d51ab08f msr s3_2_c11_c0_4, x15
- 12c0: d53ab08f mrs x15, s3_2_c11_c0_4
- 12c4: d51ab0af msr s3_2_c11_c0_5, x15
- 12c8: d53ab0af mrs x15, s3_2_c11_c0_5
- 12cc: d51ab0cf msr s3_2_c11_c0_6, x15
- 12d0: d53ab0cf mrs x15, s3_2_c11_c0_6
- 12d4: d51ab0ef msr s3_2_c11_c0_7, x15
- 12d8: d53ab0ef mrs x15, s3_2_c11_c0_7
- 12dc: d51ab10f msr s3_2_c11_c1_0, x15
- 12e0: d53ab10f mrs x15, s3_2_c11_c1_0
- 12e4: d51ab12f msr s3_2_c11_c1_1, x15
- 12e8: d53ab12f mrs x15, s3_2_c11_c1_1
- 12ec: d51ab14f msr s3_2_c11_c1_2, x15
- 12f0: d53ab14f mrs x15, s3_2_c11_c1_2
- 12f4: d51ab16f msr s3_2_c11_c1_3, x15
- 12f8: d53ab16f mrs x15, s3_2_c11_c1_3
- 12fc: d51ab18f msr s3_2_c11_c1_4, x15
- 1300: d53ab18f mrs x15, s3_2_c11_c1_4
- 1304: d51ab1af msr s3_2_c11_c1_5, x15
- 1308: d53ab1af mrs x15, s3_2_c11_c1_5
- 130c: d51ab1cf msr s3_2_c11_c1_6, x15
- 1310: d53ab1cf mrs x15, s3_2_c11_c1_6
- 1314: d51ab1ef msr s3_2_c11_c1_7, x15
- 1318: d53ab1ef mrs x15, s3_2_c11_c1_7
- 131c: d51ab20f msr s3_2_c11_c2_0, x15
- 1320: d53ab20f mrs x15, s3_2_c11_c2_0
- 1324: d51ab22f msr s3_2_c11_c2_1, x15
- 1328: d53ab22f mrs x15, s3_2_c11_c2_1
- 132c: d51ab24f msr s3_2_c11_c2_2, x15
- 1330: d53ab24f mrs x15, s3_2_c11_c2_2
- 1334: d51ab26f msr s3_2_c11_c2_3, x15
- 1338: d53ab26f mrs x15, s3_2_c11_c2_3
- 133c: d51ab28f msr s3_2_c11_c2_4, x15
- 1340: d53ab28f mrs x15, s3_2_c11_c2_4
- 1344: d51ab2af msr s3_2_c11_c2_5, x15
- 1348: d53ab2af mrs x15, s3_2_c11_c2_5
- 134c: d51ab2cf msr s3_2_c11_c2_6, x15
- 1350: d53ab2cf mrs x15, s3_2_c11_c2_6
- 1354: d51ab2ef msr s3_2_c11_c2_7, x15
- 1358: d53ab2ef mrs x15, s3_2_c11_c2_7
- 135c: d51ab30f msr s3_2_c11_c3_0, x15
- 1360: d53ab30f mrs x15, s3_2_c11_c3_0
- 1364: d51ab32f msr s3_2_c11_c3_1, x15
- 1368: d53ab32f mrs x15, s3_2_c11_c3_1
- 136c: d51ab34f msr s3_2_c11_c3_2, x15
- 1370: d53ab34f mrs x15, s3_2_c11_c3_2
- 1374: d51ab36f msr s3_2_c11_c3_3, x15
- 1378: d53ab36f mrs x15, s3_2_c11_c3_3
- 137c: d51ab38f msr s3_2_c11_c3_4, x15
- 1380: d53ab38f mrs x15, s3_2_c11_c3_4
- 1384: d51ab3af msr s3_2_c11_c3_5, x15
- 1388: d53ab3af mrs x15, s3_2_c11_c3_5
- 138c: d51ab3cf msr s3_2_c11_c3_6, x15
- 1390: d53ab3cf mrs x15, s3_2_c11_c3_6
- 1394: d51ab3ef msr s3_2_c11_c3_7, x15
- 1398: d53ab3ef mrs x15, s3_2_c11_c3_7
- 139c: d51ab40f msr s3_2_c11_c4_0, x15
- 13a0: d53ab40f mrs x15, s3_2_c11_c4_0
- 13a4: d51ab42f msr s3_2_c11_c4_1, x15
- 13a8: d53ab42f mrs x15, s3_2_c11_c4_1
- 13ac: d51ab44f msr s3_2_c11_c4_2, x15
- 13b0: d53ab44f mrs x15, s3_2_c11_c4_2
- 13b4: d51ab46f msr s3_2_c11_c4_3, x15
- 13b8: d53ab46f mrs x15, s3_2_c11_c4_3
- 13bc: d51ab48f msr s3_2_c11_c4_4, x15
- 13c0: d53ab48f mrs x15, s3_2_c11_c4_4
- 13c4: d51ab4af msr s3_2_c11_c4_5, x15
- 13c8: d53ab4af mrs x15, s3_2_c11_c4_5
- 13cc: d51ab4cf msr s3_2_c11_c4_6, x15
- 13d0: d53ab4cf mrs x15, s3_2_c11_c4_6
- 13d4: d51ab4ef msr s3_2_c11_c4_7, x15
- 13d8: d53ab4ef mrs x15, s3_2_c11_c4_7
- 13dc: d51ab50f msr s3_2_c11_c5_0, x15
- 13e0: d53ab50f mrs x15, s3_2_c11_c5_0
- 13e4: d51ab52f msr s3_2_c11_c5_1, x15
- 13e8: d53ab52f mrs x15, s3_2_c11_c5_1
- 13ec: d51ab54f msr s3_2_c11_c5_2, x15
- 13f0: d53ab54f mrs x15, s3_2_c11_c5_2
- 13f4: d51ab56f msr s3_2_c11_c5_3, x15
- 13f8: d53ab56f mrs x15, s3_2_c11_c5_3
- 13fc: d51ab58f msr s3_2_c11_c5_4, x15
- 1400: d53ab58f mrs x15, s3_2_c11_c5_4
- 1404: d51ab5af msr s3_2_c11_c5_5, x15
- 1408: d53ab5af mrs x15, s3_2_c11_c5_5
- 140c: d51ab5cf msr s3_2_c11_c5_6, x15
- 1410: d53ab5cf mrs x15, s3_2_c11_c5_6
- 1414: d51ab5ef msr s3_2_c11_c5_7, x15
- 1418: d53ab5ef mrs x15, s3_2_c11_c5_7
- 141c: d51ab60f msr s3_2_c11_c6_0, x15
- 1420: d53ab60f mrs x15, s3_2_c11_c6_0
- 1424: d51ab62f msr s3_2_c11_c6_1, x15
- 1428: d53ab62f mrs x15, s3_2_c11_c6_1
- 142c: d51ab64f msr s3_2_c11_c6_2, x15
- 1430: d53ab64f mrs x15, s3_2_c11_c6_2
- 1434: d51ab66f msr s3_2_c11_c6_3, x15
- 1438: d53ab66f mrs x15, s3_2_c11_c6_3
- 143c: d51ab68f msr s3_2_c11_c6_4, x15
- 1440: d53ab68f mrs x15, s3_2_c11_c6_4
- 1444: d51ab6af msr s3_2_c11_c6_5, x15
- 1448: d53ab6af mrs x15, s3_2_c11_c6_5
- 144c: d51ab6cf msr s3_2_c11_c6_6, x15
- 1450: d53ab6cf mrs x15, s3_2_c11_c6_6
- 1454: d51ab6ef msr s3_2_c11_c6_7, x15
- 1458: d53ab6ef mrs x15, s3_2_c11_c6_7
- 145c: d51ab70f msr s3_2_c11_c7_0, x15
- 1460: d53ab70f mrs x15, s3_2_c11_c7_0
- 1464: d51ab72f msr s3_2_c11_c7_1, x15
- 1468: d53ab72f mrs x15, s3_2_c11_c7_1
- 146c: d51ab74f msr s3_2_c11_c7_2, x15
- 1470: d53ab74f mrs x15, s3_2_c11_c7_2
- 1474: d51ab76f msr s3_2_c11_c7_3, x15
- 1478: d53ab76f mrs x15, s3_2_c11_c7_3
- 147c: d51ab78f msr s3_2_c11_c7_4, x15
- 1480: d53ab78f mrs x15, s3_2_c11_c7_4
- 1484: d51ab7af msr s3_2_c11_c7_5, x15
- 1488: d53ab7af mrs x15, s3_2_c11_c7_5
- 148c: d51ab7cf msr s3_2_c11_c7_6, x15
- 1490: d53ab7cf mrs x15, s3_2_c11_c7_6
- 1494: d51ab7ef msr s3_2_c11_c7_7, x15
- 1498: d53ab7ef mrs x15, s3_2_c11_c7_7
- 149c: d51ab80f msr s3_2_c11_c8_0, x15
- 14a0: d53ab80f mrs x15, s3_2_c11_c8_0
- 14a4: d51ab82f msr s3_2_c11_c8_1, x15
- 14a8: d53ab82f mrs x15, s3_2_c11_c8_1
- 14ac: d51ab84f msr s3_2_c11_c8_2, x15
- 14b0: d53ab84f mrs x15, s3_2_c11_c8_2
- 14b4: d51ab86f msr s3_2_c11_c8_3, x15
- 14b8: d53ab86f mrs x15, s3_2_c11_c8_3
- 14bc: d51ab88f msr s3_2_c11_c8_4, x15
- 14c0: d53ab88f mrs x15, s3_2_c11_c8_4
- 14c4: d51ab8af msr s3_2_c11_c8_5, x15
- 14c8: d53ab8af mrs x15, s3_2_c11_c8_5
- 14cc: d51ab8cf msr s3_2_c11_c8_6, x15
- 14d0: d53ab8cf mrs x15, s3_2_c11_c8_6
- 14d4: d51ab8ef msr s3_2_c11_c8_7, x15
- 14d8: d53ab8ef mrs x15, s3_2_c11_c8_7
- 14dc: d51ab90f msr s3_2_c11_c9_0, x15
- 14e0: d53ab90f mrs x15, s3_2_c11_c9_0
- 14e4: d51ab92f msr s3_2_c11_c9_1, x15
- 14e8: d53ab92f mrs x15, s3_2_c11_c9_1
- 14ec: d51ab94f msr s3_2_c11_c9_2, x15
- 14f0: d53ab94f mrs x15, s3_2_c11_c9_2
- 14f4: d51ab96f msr s3_2_c11_c9_3, x15
- 14f8: d53ab96f mrs x15, s3_2_c11_c9_3
- 14fc: d51ab98f msr s3_2_c11_c9_4, x15
- 1500: d53ab98f mrs x15, s3_2_c11_c9_4
- 1504: d51ab9af msr s3_2_c11_c9_5, x15
- 1508: d53ab9af mrs x15, s3_2_c11_c9_5
- 150c: d51ab9cf msr s3_2_c11_c9_6, x15
- 1510: d53ab9cf mrs x15, s3_2_c11_c9_6
- 1514: d51ab9ef msr s3_2_c11_c9_7, x15
- 1518: d53ab9ef mrs x15, s3_2_c11_c9_7
- 151c: d51aba0f msr s3_2_c11_c10_0, x15
- 1520: d53aba0f mrs x15, s3_2_c11_c10_0
- 1524: d51aba2f msr s3_2_c11_c10_1, x15
- 1528: d53aba2f mrs x15, s3_2_c11_c10_1
- 152c: d51aba4f msr s3_2_c11_c10_2, x15
- 1530: d53aba4f mrs x15, s3_2_c11_c10_2
- 1534: d51aba6f msr s3_2_c11_c10_3, x15
- 1538: d53aba6f mrs x15, s3_2_c11_c10_3
- 153c: d51aba8f msr s3_2_c11_c10_4, x15
- 1540: d53aba8f mrs x15, s3_2_c11_c10_4
- 1544: d51abaaf msr s3_2_c11_c10_5, x15
- 1548: d53abaaf mrs x15, s3_2_c11_c10_5
- 154c: d51abacf msr s3_2_c11_c10_6, x15
- 1550: d53abacf mrs x15, s3_2_c11_c10_6
- 1554: d51abaef msr s3_2_c11_c10_7, x15
- 1558: d53abaef mrs x15, s3_2_c11_c10_7
- 155c: d51abb0f msr s3_2_c11_c11_0, x15
- 1560: d53abb0f mrs x15, s3_2_c11_c11_0
- 1564: d51abb2f msr s3_2_c11_c11_1, x15
- 1568: d53abb2f mrs x15, s3_2_c11_c11_1
- 156c: d51abb4f msr s3_2_c11_c11_2, x15
- 1570: d53abb4f mrs x15, s3_2_c11_c11_2
- 1574: d51abb6f msr s3_2_c11_c11_3, x15
- 1578: d53abb6f mrs x15, s3_2_c11_c11_3
- 157c: d51abb8f msr s3_2_c11_c11_4, x15
- 1580: d53abb8f mrs x15, s3_2_c11_c11_4
- 1584: d51abbaf msr s3_2_c11_c11_5, x15
- 1588: d53abbaf mrs x15, s3_2_c11_c11_5
- 158c: d51abbcf msr s3_2_c11_c11_6, x15
- 1590: d53abbcf mrs x15, s3_2_c11_c11_6
- 1594: d51abbef msr s3_2_c11_c11_7, x15
- 1598: d53abbef mrs x15, s3_2_c11_c11_7
- 159c: d51abc0f msr s3_2_c11_c12_0, x15
- 15a0: d53abc0f mrs x15, s3_2_c11_c12_0
- 15a4: d51abc2f msr s3_2_c11_c12_1, x15
- 15a8: d53abc2f mrs x15, s3_2_c11_c12_1
- 15ac: d51abc4f msr s3_2_c11_c12_2, x15
- 15b0: d53abc4f mrs x15, s3_2_c11_c12_2
- 15b4: d51abc6f msr s3_2_c11_c12_3, x15
- 15b8: d53abc6f mrs x15, s3_2_c11_c12_3
- 15bc: d51abc8f msr s3_2_c11_c12_4, x15
- 15c0: d53abc8f mrs x15, s3_2_c11_c12_4
- 15c4: d51abcaf msr s3_2_c11_c12_5, x15
- 15c8: d53abcaf mrs x15, s3_2_c11_c12_5
- 15cc: d51abccf msr s3_2_c11_c12_6, x15
- 15d0: d53abccf mrs x15, s3_2_c11_c12_6
- 15d4: d51abcef msr s3_2_c11_c12_7, x15
- 15d8: d53abcef mrs x15, s3_2_c11_c12_7
- 15dc: d51abd0f msr s3_2_c11_c13_0, x15
- 15e0: d53abd0f mrs x15, s3_2_c11_c13_0
- 15e4: d51abd2f msr s3_2_c11_c13_1, x15
- 15e8: d53abd2f mrs x15, s3_2_c11_c13_1
- 15ec: d51abd4f msr s3_2_c11_c13_2, x15
- 15f0: d53abd4f mrs x15, s3_2_c11_c13_2
- 15f4: d51abd6f msr s3_2_c11_c13_3, x15
- 15f8: d53abd6f mrs x15, s3_2_c11_c13_3
- 15fc: d51abd8f msr s3_2_c11_c13_4, x15
- 1600: d53abd8f mrs x15, s3_2_c11_c13_4
- 1604: d51abdaf msr s3_2_c11_c13_5, x15
- 1608: d53abdaf mrs x15, s3_2_c11_c13_5
- 160c: d51abdcf msr s3_2_c11_c13_6, x15
- 1610: d53abdcf mrs x15, s3_2_c11_c13_6
- 1614: d51abdef msr s3_2_c11_c13_7, x15
- 1618: d53abdef mrs x15, s3_2_c11_c13_7
- 161c: d51abe0f msr s3_2_c11_c14_0, x15
- 1620: d53abe0f mrs x15, s3_2_c11_c14_0
- 1624: d51abe2f msr s3_2_c11_c14_1, x15
- 1628: d53abe2f mrs x15, s3_2_c11_c14_1
- 162c: d51abe4f msr s3_2_c11_c14_2, x15
- 1630: d53abe4f mrs x15, s3_2_c11_c14_2
- 1634: d51abe6f msr s3_2_c11_c14_3, x15
- 1638: d53abe6f mrs x15, s3_2_c11_c14_3
- 163c: d51abe8f msr s3_2_c11_c14_4, x15
- 1640: d53abe8f mrs x15, s3_2_c11_c14_4
- 1644: d51abeaf msr s3_2_c11_c14_5, x15
- 1648: d53abeaf mrs x15, s3_2_c11_c14_5
- 164c: d51abecf msr s3_2_c11_c14_6, x15
- 1650: d53abecf mrs x15, s3_2_c11_c14_6
- 1654: d51abeef msr s3_2_c11_c14_7, x15
- 1658: d53abeef mrs x15, s3_2_c11_c14_7
- 165c: d51abf0f msr s3_2_c11_c15_0, x15
- 1660: d53abf0f mrs x15, s3_2_c11_c15_0
- 1664: d51abf2f msr s3_2_c11_c15_1, x15
- 1668: d53abf2f mrs x15, s3_2_c11_c15_1
- 166c: d51abf4f msr s3_2_c11_c15_2, x15
- 1670: d53abf4f mrs x15, s3_2_c11_c15_2
- 1674: d51abf6f msr s3_2_c11_c15_3, x15
- 1678: d53abf6f mrs x15, s3_2_c11_c15_3
- 167c: d51abf8f msr s3_2_c11_c15_4, x15
- 1680: d53abf8f mrs x15, s3_2_c11_c15_4
- 1684: d51abfaf msr s3_2_c11_c15_5, x15
- 1688: d53abfaf mrs x15, s3_2_c11_c15_5
- 168c: d51abfcf msr s3_2_c11_c15_6, x15
- 1690: d53abfcf mrs x15, s3_2_c11_c15_6
- 1694: d51abfef msr s3_2_c11_c15_7, x15
- 1698: d53abfef mrs x15, s3_2_c11_c15_7
- 169c: d51af00f msr s3_2_c15_c0_0, x15
- 16a0: d53af00f mrs x15, s3_2_c15_c0_0
- 16a4: d51af02f msr s3_2_c15_c0_1, x15
- 16a8: d53af02f mrs x15, s3_2_c15_c0_1
- 16ac: d51af04f msr s3_2_c15_c0_2, x15
- 16b0: d53af04f mrs x15, s3_2_c15_c0_2
- 16b4: d51af06f msr s3_2_c15_c0_3, x15
- 16b8: d53af06f mrs x15, s3_2_c15_c0_3
- 16bc: d51af08f msr s3_2_c15_c0_4, x15
- 16c0: d53af08f mrs x15, s3_2_c15_c0_4
- 16c4: d51af0af msr s3_2_c15_c0_5, x15
- 16c8: d53af0af mrs x15, s3_2_c15_c0_5
- 16cc: d51af0cf msr s3_2_c15_c0_6, x15
- 16d0: d53af0cf mrs x15, s3_2_c15_c0_6
- 16d4: d51af0ef msr s3_2_c15_c0_7, x15
- 16d8: d53af0ef mrs x15, s3_2_c15_c0_7
- 16dc: d51af10f msr s3_2_c15_c1_0, x15
- 16e0: d53af10f mrs x15, s3_2_c15_c1_0
- 16e4: d51af12f msr s3_2_c15_c1_1, x15
- 16e8: d53af12f mrs x15, s3_2_c15_c1_1
- 16ec: d51af14f msr s3_2_c15_c1_2, x15
- 16f0: d53af14f mrs x15, s3_2_c15_c1_2
- 16f4: d51af16f msr s3_2_c15_c1_3, x15
- 16f8: d53af16f mrs x15, s3_2_c15_c1_3
- 16fc: d51af18f msr s3_2_c15_c1_4, x15
- 1700: d53af18f mrs x15, s3_2_c15_c1_4
- 1704: d51af1af msr s3_2_c15_c1_5, x15
- 1708: d53af1af mrs x15, s3_2_c15_c1_5
- 170c: d51af1cf msr s3_2_c15_c1_6, x15
- 1710: d53af1cf mrs x15, s3_2_c15_c1_6
- 1714: d51af1ef msr s3_2_c15_c1_7, x15
- 1718: d53af1ef mrs x15, s3_2_c15_c1_7
- 171c: d51af20f msr s3_2_c15_c2_0, x15
- 1720: d53af20f mrs x15, s3_2_c15_c2_0
- 1724: d51af22f msr s3_2_c15_c2_1, x15
- 1728: d53af22f mrs x15, s3_2_c15_c2_1
- 172c: d51af24f msr s3_2_c15_c2_2, x15
- 1730: d53af24f mrs x15, s3_2_c15_c2_2
- 1734: d51af26f msr s3_2_c15_c2_3, x15
- 1738: d53af26f mrs x15, s3_2_c15_c2_3
- 173c: d51af28f msr s3_2_c15_c2_4, x15
- 1740: d53af28f mrs x15, s3_2_c15_c2_4
- 1744: d51af2af msr s3_2_c15_c2_5, x15
- 1748: d53af2af mrs x15, s3_2_c15_c2_5
- 174c: d51af2cf msr s3_2_c15_c2_6, x15
- 1750: d53af2cf mrs x15, s3_2_c15_c2_6
- 1754: d51af2ef msr s3_2_c15_c2_7, x15
- 1758: d53af2ef mrs x15, s3_2_c15_c2_7
- 175c: d51af30f msr s3_2_c15_c3_0, x15
- 1760: d53af30f mrs x15, s3_2_c15_c3_0
- 1764: d51af32f msr s3_2_c15_c3_1, x15
- 1768: d53af32f mrs x15, s3_2_c15_c3_1
- 176c: d51af34f msr s3_2_c15_c3_2, x15
- 1770: d53af34f mrs x15, s3_2_c15_c3_2
- 1774: d51af36f msr s3_2_c15_c3_3, x15
- 1778: d53af36f mrs x15, s3_2_c15_c3_3
- 177c: d51af38f msr s3_2_c15_c3_4, x15
- 1780: d53af38f mrs x15, s3_2_c15_c3_4
- 1784: d51af3af msr s3_2_c15_c3_5, x15
- 1788: d53af3af mrs x15, s3_2_c15_c3_5
- 178c: d51af3cf msr s3_2_c15_c3_6, x15
- 1790: d53af3cf mrs x15, s3_2_c15_c3_6
- 1794: d51af3ef msr s3_2_c15_c3_7, x15
- 1798: d53af3ef mrs x15, s3_2_c15_c3_7
- 179c: d51af40f msr s3_2_c15_c4_0, x15
- 17a0: d53af40f mrs x15, s3_2_c15_c4_0
- 17a4: d51af42f msr s3_2_c15_c4_1, x15
- 17a8: d53af42f mrs x15, s3_2_c15_c4_1
- 17ac: d51af44f msr s3_2_c15_c4_2, x15
- 17b0: d53af44f mrs x15, s3_2_c15_c4_2
- 17b4: d51af46f msr s3_2_c15_c4_3, x15
- 17b8: d53af46f mrs x15, s3_2_c15_c4_3
- 17bc: d51af48f msr s3_2_c15_c4_4, x15
- 17c0: d53af48f mrs x15, s3_2_c15_c4_4
- 17c4: d51af4af msr s3_2_c15_c4_5, x15
- 17c8: d53af4af mrs x15, s3_2_c15_c4_5
- 17cc: d51af4cf msr s3_2_c15_c4_6, x15
- 17d0: d53af4cf mrs x15, s3_2_c15_c4_6
- 17d4: d51af4ef msr s3_2_c15_c4_7, x15
- 17d8: d53af4ef mrs x15, s3_2_c15_c4_7
- 17dc: d51af50f msr s3_2_c15_c5_0, x15
- 17e0: d53af50f mrs x15, s3_2_c15_c5_0
- 17e4: d51af52f msr s3_2_c15_c5_1, x15
- 17e8: d53af52f mrs x15, s3_2_c15_c5_1
- 17ec: d51af54f msr s3_2_c15_c5_2, x15
- 17f0: d53af54f mrs x15, s3_2_c15_c5_2
- 17f4: d51af56f msr s3_2_c15_c5_3, x15
- 17f8: d53af56f mrs x15, s3_2_c15_c5_3
- 17fc: d51af58f msr s3_2_c15_c5_4, x15
- 1800: d53af58f mrs x15, s3_2_c15_c5_4
- 1804: d51af5af msr s3_2_c15_c5_5, x15
- 1808: d53af5af mrs x15, s3_2_c15_c5_5
- 180c: d51af5cf msr s3_2_c15_c5_6, x15
- 1810: d53af5cf mrs x15, s3_2_c15_c5_6
- 1814: d51af5ef msr s3_2_c15_c5_7, x15
- 1818: d53af5ef mrs x15, s3_2_c15_c5_7
- 181c: d51af60f msr s3_2_c15_c6_0, x15
- 1820: d53af60f mrs x15, s3_2_c15_c6_0
- 1824: d51af62f msr s3_2_c15_c6_1, x15
- 1828: d53af62f mrs x15, s3_2_c15_c6_1
- 182c: d51af64f msr s3_2_c15_c6_2, x15
- 1830: d53af64f mrs x15, s3_2_c15_c6_2
- 1834: d51af66f msr s3_2_c15_c6_3, x15
- 1838: d53af66f mrs x15, s3_2_c15_c6_3
- 183c: d51af68f msr s3_2_c15_c6_4, x15
- 1840: d53af68f mrs x15, s3_2_c15_c6_4
- 1844: d51af6af msr s3_2_c15_c6_5, x15
- 1848: d53af6af mrs x15, s3_2_c15_c6_5
- 184c: d51af6cf msr s3_2_c15_c6_6, x15
- 1850: d53af6cf mrs x15, s3_2_c15_c6_6
- 1854: d51af6ef msr s3_2_c15_c6_7, x15
- 1858: d53af6ef mrs x15, s3_2_c15_c6_7
- 185c: d51af70f msr s3_2_c15_c7_0, x15
- 1860: d53af70f mrs x15, s3_2_c15_c7_0
- 1864: d51af72f msr s3_2_c15_c7_1, x15
- 1868: d53af72f mrs x15, s3_2_c15_c7_1
- 186c: d51af74f msr s3_2_c15_c7_2, x15
- 1870: d53af74f mrs x15, s3_2_c15_c7_2
- 1874: d51af76f msr s3_2_c15_c7_3, x15
- 1878: d53af76f mrs x15, s3_2_c15_c7_3
- 187c: d51af78f msr s3_2_c15_c7_4, x15
- 1880: d53af78f mrs x15, s3_2_c15_c7_4
- 1884: d51af7af msr s3_2_c15_c7_5, x15
- 1888: d53af7af mrs x15, s3_2_c15_c7_5
- 188c: d51af7cf msr s3_2_c15_c7_6, x15
- 1890: d53af7cf mrs x15, s3_2_c15_c7_6
- 1894: d51af7ef msr s3_2_c15_c7_7, x15
- 1898: d53af7ef mrs x15, s3_2_c15_c7_7
- 189c: d51af80f msr s3_2_c15_c8_0, x15
- 18a0: d53af80f mrs x15, s3_2_c15_c8_0
- 18a4: d51af82f msr s3_2_c15_c8_1, x15
- 18a8: d53af82f mrs x15, s3_2_c15_c8_1
- 18ac: d51af84f msr s3_2_c15_c8_2, x15
- 18b0: d53af84f mrs x15, s3_2_c15_c8_2
- 18b4: d51af86f msr s3_2_c15_c8_3, x15
- 18b8: d53af86f mrs x15, s3_2_c15_c8_3
- 18bc: d51af88f msr s3_2_c15_c8_4, x15
- 18c0: d53af88f mrs x15, s3_2_c15_c8_4
- 18c4: d51af8af msr s3_2_c15_c8_5, x15
- 18c8: d53af8af mrs x15, s3_2_c15_c8_5
- 18cc: d51af8cf msr s3_2_c15_c8_6, x15
- 18d0: d53af8cf mrs x15, s3_2_c15_c8_6
- 18d4: d51af8ef msr s3_2_c15_c8_7, x15
- 18d8: d53af8ef mrs x15, s3_2_c15_c8_7
- 18dc: d51af90f msr s3_2_c15_c9_0, x15
- 18e0: d53af90f mrs x15, s3_2_c15_c9_0
- 18e4: d51af92f msr s3_2_c15_c9_1, x15
- 18e8: d53af92f mrs x15, s3_2_c15_c9_1
- 18ec: d51af94f msr s3_2_c15_c9_2, x15
- 18f0: d53af94f mrs x15, s3_2_c15_c9_2
- 18f4: d51af96f msr s3_2_c15_c9_3, x15
- 18f8: d53af96f mrs x15, s3_2_c15_c9_3
- 18fc: d51af98f msr s3_2_c15_c9_4, x15
- 1900: d53af98f mrs x15, s3_2_c15_c9_4
- 1904: d51af9af msr s3_2_c15_c9_5, x15
- 1908: d53af9af mrs x15, s3_2_c15_c9_5
- 190c: d51af9cf msr s3_2_c15_c9_6, x15
- 1910: d53af9cf mrs x15, s3_2_c15_c9_6
- 1914: d51af9ef msr s3_2_c15_c9_7, x15
- 1918: d53af9ef mrs x15, s3_2_c15_c9_7
- 191c: d51afa0f msr s3_2_c15_c10_0, x15
- 1920: d53afa0f mrs x15, s3_2_c15_c10_0
- 1924: d51afa2f msr s3_2_c15_c10_1, x15
- 1928: d53afa2f mrs x15, s3_2_c15_c10_1
- 192c: d51afa4f msr s3_2_c15_c10_2, x15
- 1930: d53afa4f mrs x15, s3_2_c15_c10_2
- 1934: d51afa6f msr s3_2_c15_c10_3, x15
- 1938: d53afa6f mrs x15, s3_2_c15_c10_3
- 193c: d51afa8f msr s3_2_c15_c10_4, x15
- 1940: d53afa8f mrs x15, s3_2_c15_c10_4
- 1944: d51afaaf msr s3_2_c15_c10_5, x15
- 1948: d53afaaf mrs x15, s3_2_c15_c10_5
- 194c: d51afacf msr s3_2_c15_c10_6, x15
- 1950: d53afacf mrs x15, s3_2_c15_c10_6
- 1954: d51afaef msr s3_2_c15_c10_7, x15
- 1958: d53afaef mrs x15, s3_2_c15_c10_7
- 195c: d51afb0f msr s3_2_c15_c11_0, x15
- 1960: d53afb0f mrs x15, s3_2_c15_c11_0
- 1964: d51afb2f msr s3_2_c15_c11_1, x15
- 1968: d53afb2f mrs x15, s3_2_c15_c11_1
- 196c: d51afb4f msr s3_2_c15_c11_2, x15
- 1970: d53afb4f mrs x15, s3_2_c15_c11_2
- 1974: d51afb6f msr s3_2_c15_c11_3, x15
- 1978: d53afb6f mrs x15, s3_2_c15_c11_3
- 197c: d51afb8f msr s3_2_c15_c11_4, x15
- 1980: d53afb8f mrs x15, s3_2_c15_c11_4
- 1984: d51afbaf msr s3_2_c15_c11_5, x15
- 1988: d53afbaf mrs x15, s3_2_c15_c11_5
- 198c: d51afbcf msr s3_2_c15_c11_6, x15
- 1990: d53afbcf mrs x15, s3_2_c15_c11_6
- 1994: d51afbef msr s3_2_c15_c11_7, x15
- 1998: d53afbef mrs x15, s3_2_c15_c11_7
- 199c: d51afc0f msr s3_2_c15_c12_0, x15
- 19a0: d53afc0f mrs x15, s3_2_c15_c12_0
- 19a4: d51afc2f msr s3_2_c15_c12_1, x15
- 19a8: d53afc2f mrs x15, s3_2_c15_c12_1
- 19ac: d51afc4f msr s3_2_c15_c12_2, x15
- 19b0: d53afc4f mrs x15, s3_2_c15_c12_2
- 19b4: d51afc6f msr s3_2_c15_c12_3, x15
- 19b8: d53afc6f mrs x15, s3_2_c15_c12_3
- 19bc: d51afc8f msr s3_2_c15_c12_4, x15
- 19c0: d53afc8f mrs x15, s3_2_c15_c12_4
- 19c4: d51afcaf msr s3_2_c15_c12_5, x15
- 19c8: d53afcaf mrs x15, s3_2_c15_c12_5
- 19cc: d51afccf msr s3_2_c15_c12_6, x15
- 19d0: d53afccf mrs x15, s3_2_c15_c12_6
- 19d4: d51afcef msr s3_2_c15_c12_7, x15
- 19d8: d53afcef mrs x15, s3_2_c15_c12_7
- 19dc: d51afd0f msr s3_2_c15_c13_0, x15
- 19e0: d53afd0f mrs x15, s3_2_c15_c13_0
- 19e4: d51afd2f msr s3_2_c15_c13_1, x15
- 19e8: d53afd2f mrs x15, s3_2_c15_c13_1
- 19ec: d51afd4f msr s3_2_c15_c13_2, x15
- 19f0: d53afd4f mrs x15, s3_2_c15_c13_2
- 19f4: d51afd6f msr s3_2_c15_c13_3, x15
- 19f8: d53afd6f mrs x15, s3_2_c15_c13_3
- 19fc: d51afd8f msr s3_2_c15_c13_4, x15
- 1a00: d53afd8f mrs x15, s3_2_c15_c13_4
- 1a04: d51afdaf msr s3_2_c15_c13_5, x15
- 1a08: d53afdaf mrs x15, s3_2_c15_c13_5
- 1a0c: d51afdcf msr s3_2_c15_c13_6, x15
- 1a10: d53afdcf mrs x15, s3_2_c15_c13_6
- 1a14: d51afdef msr s3_2_c15_c13_7, x15
- 1a18: d53afdef mrs x15, s3_2_c15_c13_7
- 1a1c: d51afe0f msr s3_2_c15_c14_0, x15
- 1a20: d53afe0f mrs x15, s3_2_c15_c14_0
- 1a24: d51afe2f msr s3_2_c15_c14_1, x15
- 1a28: d53afe2f mrs x15, s3_2_c15_c14_1
- 1a2c: d51afe4f msr s3_2_c15_c14_2, x15
- 1a30: d53afe4f mrs x15, s3_2_c15_c14_2
- 1a34: d51afe6f msr s3_2_c15_c14_3, x15
- 1a38: d53afe6f mrs x15, s3_2_c15_c14_3
- 1a3c: d51afe8f msr s3_2_c15_c14_4, x15
- 1a40: d53afe8f mrs x15, s3_2_c15_c14_4
- 1a44: d51afeaf msr s3_2_c15_c14_5, x15
- 1a48: d53afeaf mrs x15, s3_2_c15_c14_5
- 1a4c: d51afecf msr s3_2_c15_c14_6, x15
- 1a50: d53afecf mrs x15, s3_2_c15_c14_6
- 1a54: d51afeef msr s3_2_c15_c14_7, x15
- 1a58: d53afeef mrs x15, s3_2_c15_c14_7
- 1a5c: d51aff0f msr s3_2_c15_c15_0, x15
- 1a60: d53aff0f mrs x15, s3_2_c15_c15_0
- 1a64: d51aff2f msr s3_2_c15_c15_1, x15
- 1a68: d53aff2f mrs x15, s3_2_c15_c15_1
- 1a6c: d51aff4f msr s3_2_c15_c15_2, x15
- 1a70: d53aff4f mrs x15, s3_2_c15_c15_2
- 1a74: d51aff6f msr s3_2_c15_c15_3, x15
- 1a78: d53aff6f mrs x15, s3_2_c15_c15_3
- 1a7c: d51aff8f msr s3_2_c15_c15_4, x15
- 1a80: d53aff8f mrs x15, s3_2_c15_c15_4
- 1a84: d51affaf msr s3_2_c15_c15_5, x15
- 1a88: d53affaf mrs x15, s3_2_c15_c15_5
- 1a8c: d51affcf msr s3_2_c15_c15_6, x15
- 1a90: d53affcf mrs x15, s3_2_c15_c15_6
- 1a94: d51affef msr s3_2_c15_c15_7, x15
- 1a98: d53affef mrs x15, s3_2_c15_c15_7
- 1a9c: d51bb00f msr s3_3_c11_c0_0, x15
- 1aa0: d53bb00f mrs x15, s3_3_c11_c0_0
- 1aa4: d51bb02f msr s3_3_c11_c0_1, x15
- 1aa8: d53bb02f mrs x15, s3_3_c11_c0_1
- 1aac: d51bb04f msr s3_3_c11_c0_2, x15
- 1ab0: d53bb04f mrs x15, s3_3_c11_c0_2
- 1ab4: d51bb06f msr s3_3_c11_c0_3, x15
- 1ab8: d53bb06f mrs x15, s3_3_c11_c0_3
- 1abc: d51bb08f msr s3_3_c11_c0_4, x15
- 1ac0: d53bb08f mrs x15, s3_3_c11_c0_4
- 1ac4: d51bb0af msr s3_3_c11_c0_5, x15
- 1ac8: d53bb0af mrs x15, s3_3_c11_c0_5
- 1acc: d51bb0cf msr s3_3_c11_c0_6, x15
- 1ad0: d53bb0cf mrs x15, s3_3_c11_c0_6
- 1ad4: d51bb0ef msr s3_3_c11_c0_7, x15
- 1ad8: d53bb0ef mrs x15, s3_3_c11_c0_7
- 1adc: d51bb10f msr s3_3_c11_c1_0, x15
- 1ae0: d53bb10f mrs x15, s3_3_c11_c1_0
- 1ae4: d51bb12f msr s3_3_c11_c1_1, x15
- 1ae8: d53bb12f mrs x15, s3_3_c11_c1_1
- 1aec: d51bb14f msr s3_3_c11_c1_2, x15
- 1af0: d53bb14f mrs x15, s3_3_c11_c1_2
- 1af4: d51bb16f msr s3_3_c11_c1_3, x15
- 1af8: d53bb16f mrs x15, s3_3_c11_c1_3
- 1afc: d51bb18f msr s3_3_c11_c1_4, x15
- 1b00: d53bb18f mrs x15, s3_3_c11_c1_4
- 1b04: d51bb1af msr s3_3_c11_c1_5, x15
- 1b08: d53bb1af mrs x15, s3_3_c11_c1_5
- 1b0c: d51bb1cf msr s3_3_c11_c1_6, x15
- 1b10: d53bb1cf mrs x15, s3_3_c11_c1_6
- 1b14: d51bb1ef msr s3_3_c11_c1_7, x15
- 1b18: d53bb1ef mrs x15, s3_3_c11_c1_7
- 1b1c: d51bb20f msr s3_3_c11_c2_0, x15
- 1b20: d53bb20f mrs x15, s3_3_c11_c2_0
- 1b24: d51bb22f msr s3_3_c11_c2_1, x15
- 1b28: d53bb22f mrs x15, s3_3_c11_c2_1
- 1b2c: d51bb24f msr s3_3_c11_c2_2, x15
- 1b30: d53bb24f mrs x15, s3_3_c11_c2_2
- 1b34: d51bb26f msr s3_3_c11_c2_3, x15
- 1b38: d53bb26f mrs x15, s3_3_c11_c2_3
- 1b3c: d51bb28f msr s3_3_c11_c2_4, x15
- 1b40: d53bb28f mrs x15, s3_3_c11_c2_4
- 1b44: d51bb2af msr s3_3_c11_c2_5, x15
- 1b48: d53bb2af mrs x15, s3_3_c11_c2_5
- 1b4c: d51bb2cf msr s3_3_c11_c2_6, x15
- 1b50: d53bb2cf mrs x15, s3_3_c11_c2_6
- 1b54: d51bb2ef msr s3_3_c11_c2_7, x15
- 1b58: d53bb2ef mrs x15, s3_3_c11_c2_7
- 1b5c: d51bb30f msr s3_3_c11_c3_0, x15
- 1b60: d53bb30f mrs x15, s3_3_c11_c3_0
- 1b64: d51bb32f msr s3_3_c11_c3_1, x15
- 1b68: d53bb32f mrs x15, s3_3_c11_c3_1
- 1b6c: d51bb34f msr s3_3_c11_c3_2, x15
- 1b70: d53bb34f mrs x15, s3_3_c11_c3_2
- 1b74: d51bb36f msr s3_3_c11_c3_3, x15
- 1b78: d53bb36f mrs x15, s3_3_c11_c3_3
- 1b7c: d51bb38f msr s3_3_c11_c3_4, x15
- 1b80: d53bb38f mrs x15, s3_3_c11_c3_4
- 1b84: d51bb3af msr s3_3_c11_c3_5, x15
- 1b88: d53bb3af mrs x15, s3_3_c11_c3_5
- 1b8c: d51bb3cf msr s3_3_c11_c3_6, x15
- 1b90: d53bb3cf mrs x15, s3_3_c11_c3_6
- 1b94: d51bb3ef msr s3_3_c11_c3_7, x15
- 1b98: d53bb3ef mrs x15, s3_3_c11_c3_7
- 1b9c: d51bb40f msr s3_3_c11_c4_0, x15
- 1ba0: d53bb40f mrs x15, s3_3_c11_c4_0
- 1ba4: d51bb42f msr s3_3_c11_c4_1, x15
- 1ba8: d53bb42f mrs x15, s3_3_c11_c4_1
- 1bac: d51bb44f msr s3_3_c11_c4_2, x15
- 1bb0: d53bb44f mrs x15, s3_3_c11_c4_2
- 1bb4: d51bb46f msr s3_3_c11_c4_3, x15
- 1bb8: d53bb46f mrs x15, s3_3_c11_c4_3
- 1bbc: d51bb48f msr s3_3_c11_c4_4, x15
- 1bc0: d53bb48f mrs x15, s3_3_c11_c4_4
- 1bc4: d51bb4af msr s3_3_c11_c4_5, x15
- 1bc8: d53bb4af mrs x15, s3_3_c11_c4_5
- 1bcc: d51bb4cf msr s3_3_c11_c4_6, x15
- 1bd0: d53bb4cf mrs x15, s3_3_c11_c4_6
- 1bd4: d51bb4ef msr s3_3_c11_c4_7, x15
- 1bd8: d53bb4ef mrs x15, s3_3_c11_c4_7
- 1bdc: d51bb50f msr s3_3_c11_c5_0, x15
- 1be0: d53bb50f mrs x15, s3_3_c11_c5_0
- 1be4: d51bb52f msr s3_3_c11_c5_1, x15
- 1be8: d53bb52f mrs x15, s3_3_c11_c5_1
- 1bec: d51bb54f msr s3_3_c11_c5_2, x15
- 1bf0: d53bb54f mrs x15, s3_3_c11_c5_2
- 1bf4: d51bb56f msr s3_3_c11_c5_3, x15
- 1bf8: d53bb56f mrs x15, s3_3_c11_c5_3
- 1bfc: d51bb58f msr s3_3_c11_c5_4, x15
- 1c00: d53bb58f mrs x15, s3_3_c11_c5_4
- 1c04: d51bb5af msr s3_3_c11_c5_5, x15
- 1c08: d53bb5af mrs x15, s3_3_c11_c5_5
- 1c0c: d51bb5cf msr s3_3_c11_c5_6, x15
- 1c10: d53bb5cf mrs x15, s3_3_c11_c5_6
- 1c14: d51bb5ef msr s3_3_c11_c5_7, x15
- 1c18: d53bb5ef mrs x15, s3_3_c11_c5_7
- 1c1c: d51bb60f msr s3_3_c11_c6_0, x15
- 1c20: d53bb60f mrs x15, s3_3_c11_c6_0
- 1c24: d51bb62f msr s3_3_c11_c6_1, x15
- 1c28: d53bb62f mrs x15, s3_3_c11_c6_1
- 1c2c: d51bb64f msr s3_3_c11_c6_2, x15
- 1c30: d53bb64f mrs x15, s3_3_c11_c6_2
- 1c34: d51bb66f msr s3_3_c11_c6_3, x15
- 1c38: d53bb66f mrs x15, s3_3_c11_c6_3
- 1c3c: d51bb68f msr s3_3_c11_c6_4, x15
- 1c40: d53bb68f mrs x15, s3_3_c11_c6_4
- 1c44: d51bb6af msr s3_3_c11_c6_5, x15
- 1c48: d53bb6af mrs x15, s3_3_c11_c6_5
- 1c4c: d51bb6cf msr s3_3_c11_c6_6, x15
- 1c50: d53bb6cf mrs x15, s3_3_c11_c6_6
- 1c54: d51bb6ef msr s3_3_c11_c6_7, x15
- 1c58: d53bb6ef mrs x15, s3_3_c11_c6_7
- 1c5c: d51bb70f msr s3_3_c11_c7_0, x15
- 1c60: d53bb70f mrs x15, s3_3_c11_c7_0
- 1c64: d51bb72f msr s3_3_c11_c7_1, x15
- 1c68: d53bb72f mrs x15, s3_3_c11_c7_1
- 1c6c: d51bb74f msr s3_3_c11_c7_2, x15
- 1c70: d53bb74f mrs x15, s3_3_c11_c7_2
- 1c74: d51bb76f msr s3_3_c11_c7_3, x15
- 1c78: d53bb76f mrs x15, s3_3_c11_c7_3
- 1c7c: d51bb78f msr s3_3_c11_c7_4, x15
- 1c80: d53bb78f mrs x15, s3_3_c11_c7_4
- 1c84: d51bb7af msr s3_3_c11_c7_5, x15
- 1c88: d53bb7af mrs x15, s3_3_c11_c7_5
- 1c8c: d51bb7cf msr s3_3_c11_c7_6, x15
- 1c90: d53bb7cf mrs x15, s3_3_c11_c7_6
- 1c94: d51bb7ef msr s3_3_c11_c7_7, x15
- 1c98: d53bb7ef mrs x15, s3_3_c11_c7_7
- 1c9c: d51bb80f msr s3_3_c11_c8_0, x15
- 1ca0: d53bb80f mrs x15, s3_3_c11_c8_0
- 1ca4: d51bb82f msr s3_3_c11_c8_1, x15
- 1ca8: d53bb82f mrs x15, s3_3_c11_c8_1
- 1cac: d51bb84f msr s3_3_c11_c8_2, x15
- 1cb0: d53bb84f mrs x15, s3_3_c11_c8_2
- 1cb4: d51bb86f msr s3_3_c11_c8_3, x15
- 1cb8: d53bb86f mrs x15, s3_3_c11_c8_3
- 1cbc: d51bb88f msr s3_3_c11_c8_4, x15
- 1cc0: d53bb88f mrs x15, s3_3_c11_c8_4
- 1cc4: d51bb8af msr s3_3_c11_c8_5, x15
- 1cc8: d53bb8af mrs x15, s3_3_c11_c8_5
- 1ccc: d51bb8cf msr s3_3_c11_c8_6, x15
- 1cd0: d53bb8cf mrs x15, s3_3_c11_c8_6
- 1cd4: d51bb8ef msr s3_3_c11_c8_7, x15
- 1cd8: d53bb8ef mrs x15, s3_3_c11_c8_7
- 1cdc: d51bb90f msr s3_3_c11_c9_0, x15
- 1ce0: d53bb90f mrs x15, s3_3_c11_c9_0
- 1ce4: d51bb92f msr s3_3_c11_c9_1, x15
- 1ce8: d53bb92f mrs x15, s3_3_c11_c9_1
- 1cec: d51bb94f msr s3_3_c11_c9_2, x15
- 1cf0: d53bb94f mrs x15, s3_3_c11_c9_2
- 1cf4: d51bb96f msr s3_3_c11_c9_3, x15
- 1cf8: d53bb96f mrs x15, s3_3_c11_c9_3
- 1cfc: d51bb98f msr s3_3_c11_c9_4, x15
- 1d00: d53bb98f mrs x15, s3_3_c11_c9_4
- 1d04: d51bb9af msr s3_3_c11_c9_5, x15
- 1d08: d53bb9af mrs x15, s3_3_c11_c9_5
- 1d0c: d51bb9cf msr s3_3_c11_c9_6, x15
- 1d10: d53bb9cf mrs x15, s3_3_c11_c9_6
- 1d14: d51bb9ef msr s3_3_c11_c9_7, x15
- 1d18: d53bb9ef mrs x15, s3_3_c11_c9_7
- 1d1c: d51bba0f msr s3_3_c11_c10_0, x15
- 1d20: d53bba0f mrs x15, s3_3_c11_c10_0
- 1d24: d51bba2f msr s3_3_c11_c10_1, x15
- 1d28: d53bba2f mrs x15, s3_3_c11_c10_1
- 1d2c: d51bba4f msr s3_3_c11_c10_2, x15
- 1d30: d53bba4f mrs x15, s3_3_c11_c10_2
- 1d34: d51bba6f msr s3_3_c11_c10_3, x15
- 1d38: d53bba6f mrs x15, s3_3_c11_c10_3
- 1d3c: d51bba8f msr s3_3_c11_c10_4, x15
- 1d40: d53bba8f mrs x15, s3_3_c11_c10_4
- 1d44: d51bbaaf msr s3_3_c11_c10_5, x15
- 1d48: d53bbaaf mrs x15, s3_3_c11_c10_5
- 1d4c: d51bbacf msr s3_3_c11_c10_6, x15
- 1d50: d53bbacf mrs x15, s3_3_c11_c10_6
- 1d54: d51bbaef msr s3_3_c11_c10_7, x15
- 1d58: d53bbaef mrs x15, s3_3_c11_c10_7
- 1d5c: d51bbb0f msr s3_3_c11_c11_0, x15
- 1d60: d53bbb0f mrs x15, s3_3_c11_c11_0
- 1d64: d51bbb2f msr s3_3_c11_c11_1, x15
- 1d68: d53bbb2f mrs x15, s3_3_c11_c11_1
- 1d6c: d51bbb4f msr s3_3_c11_c11_2, x15
- 1d70: d53bbb4f mrs x15, s3_3_c11_c11_2
- 1d74: d51bbb6f msr s3_3_c11_c11_3, x15
- 1d78: d53bbb6f mrs x15, s3_3_c11_c11_3
- 1d7c: d51bbb8f msr s3_3_c11_c11_4, x15
- 1d80: d53bbb8f mrs x15, s3_3_c11_c11_4
- 1d84: d51bbbaf msr s3_3_c11_c11_5, x15
- 1d88: d53bbbaf mrs x15, s3_3_c11_c11_5
- 1d8c: d51bbbcf msr s3_3_c11_c11_6, x15
- 1d90: d53bbbcf mrs x15, s3_3_c11_c11_6
- 1d94: d51bbbef msr s3_3_c11_c11_7, x15
- 1d98: d53bbbef mrs x15, s3_3_c11_c11_7
- 1d9c: d51bbc0f msr s3_3_c11_c12_0, x15
- 1da0: d53bbc0f mrs x15, s3_3_c11_c12_0
- 1da4: d51bbc2f msr s3_3_c11_c12_1, x15
- 1da8: d53bbc2f mrs x15, s3_3_c11_c12_1
- 1dac: d51bbc4f msr s3_3_c11_c12_2, x15
- 1db0: d53bbc4f mrs x15, s3_3_c11_c12_2
- 1db4: d51bbc6f msr s3_3_c11_c12_3, x15
- 1db8: d53bbc6f mrs x15, s3_3_c11_c12_3
- 1dbc: d51bbc8f msr s3_3_c11_c12_4, x15
- 1dc0: d53bbc8f mrs x15, s3_3_c11_c12_4
- 1dc4: d51bbcaf msr s3_3_c11_c12_5, x15
- 1dc8: d53bbcaf mrs x15, s3_3_c11_c12_5
- 1dcc: d51bbccf msr s3_3_c11_c12_6, x15
- 1dd0: d53bbccf mrs x15, s3_3_c11_c12_6
- 1dd4: d51bbcef msr s3_3_c11_c12_7, x15
- 1dd8: d53bbcef mrs x15, s3_3_c11_c12_7
- 1ddc: d51bbd0f msr s3_3_c11_c13_0, x15
- 1de0: d53bbd0f mrs x15, s3_3_c11_c13_0
- 1de4: d51bbd2f msr s3_3_c11_c13_1, x15
- 1de8: d53bbd2f mrs x15, s3_3_c11_c13_1
- 1dec: d51bbd4f msr s3_3_c11_c13_2, x15
- 1df0: d53bbd4f mrs x15, s3_3_c11_c13_2
- 1df4: d51bbd6f msr s3_3_c11_c13_3, x15
- 1df8: d53bbd6f mrs x15, s3_3_c11_c13_3
- 1dfc: d51bbd8f msr s3_3_c11_c13_4, x15
- 1e00: d53bbd8f mrs x15, s3_3_c11_c13_4
- 1e04: d51bbdaf msr s3_3_c11_c13_5, x15
- 1e08: d53bbdaf mrs x15, s3_3_c11_c13_5
- 1e0c: d51bbdcf msr s3_3_c11_c13_6, x15
- 1e10: d53bbdcf mrs x15, s3_3_c11_c13_6
- 1e14: d51bbdef msr s3_3_c11_c13_7, x15
- 1e18: d53bbdef mrs x15, s3_3_c11_c13_7
- 1e1c: d51bbe0f msr s3_3_c11_c14_0, x15
- 1e20: d53bbe0f mrs x15, s3_3_c11_c14_0
- 1e24: d51bbe2f msr s3_3_c11_c14_1, x15
- 1e28: d53bbe2f mrs x15, s3_3_c11_c14_1
- 1e2c: d51bbe4f msr s3_3_c11_c14_2, x15
- 1e30: d53bbe4f mrs x15, s3_3_c11_c14_2
- 1e34: d51bbe6f msr s3_3_c11_c14_3, x15
- 1e38: d53bbe6f mrs x15, s3_3_c11_c14_3
- 1e3c: d51bbe8f msr s3_3_c11_c14_4, x15
- 1e40: d53bbe8f mrs x15, s3_3_c11_c14_4
- 1e44: d51bbeaf msr s3_3_c11_c14_5, x15
- 1e48: d53bbeaf mrs x15, s3_3_c11_c14_5
- 1e4c: d51bbecf msr s3_3_c11_c14_6, x15
- 1e50: d53bbecf mrs x15, s3_3_c11_c14_6
- 1e54: d51bbeef msr s3_3_c11_c14_7, x15
- 1e58: d53bbeef mrs x15, s3_3_c11_c14_7
- 1e5c: d51bbf0f msr s3_3_c11_c15_0, x15
- 1e60: d53bbf0f mrs x15, s3_3_c11_c15_0
- 1e64: d51bbf2f msr s3_3_c11_c15_1, x15
- 1e68: d53bbf2f mrs x15, s3_3_c11_c15_1
- 1e6c: d51bbf4f msr s3_3_c11_c15_2, x15
- 1e70: d53bbf4f mrs x15, s3_3_c11_c15_2
- 1e74: d51bbf6f msr s3_3_c11_c15_3, x15
- 1e78: d53bbf6f mrs x15, s3_3_c11_c15_3
- 1e7c: d51bbf8f msr s3_3_c11_c15_4, x15
- 1e80: d53bbf8f mrs x15, s3_3_c11_c15_4
- 1e84: d51bbfaf msr s3_3_c11_c15_5, x15
- 1e88: d53bbfaf mrs x15, s3_3_c11_c15_5
- 1e8c: d51bbfcf msr s3_3_c11_c15_6, x15
- 1e90: d53bbfcf mrs x15, s3_3_c11_c15_6
- 1e94: d51bbfef msr s3_3_c11_c15_7, x15
- 1e98: d53bbfef mrs x15, s3_3_c11_c15_7
- 1e9c: d51bf00f msr s3_3_c15_c0_0, x15
- 1ea0: d53bf00f mrs x15, s3_3_c15_c0_0
- 1ea4: d51bf02f msr s3_3_c15_c0_1, x15
- 1ea8: d53bf02f mrs x15, s3_3_c15_c0_1
- 1eac: d51bf04f msr s3_3_c15_c0_2, x15
- 1eb0: d53bf04f mrs x15, s3_3_c15_c0_2
- 1eb4: d51bf06f msr s3_3_c15_c0_3, x15
- 1eb8: d53bf06f mrs x15, s3_3_c15_c0_3
- 1ebc: d51bf08f msr s3_3_c15_c0_4, x15
- 1ec0: d53bf08f mrs x15, s3_3_c15_c0_4
- 1ec4: d51bf0af msr s3_3_c15_c0_5, x15
- 1ec8: d53bf0af mrs x15, s3_3_c15_c0_5
- 1ecc: d51bf0cf msr s3_3_c15_c0_6, x15
- 1ed0: d53bf0cf mrs x15, s3_3_c15_c0_6
- 1ed4: d51bf0ef msr s3_3_c15_c0_7, x15
- 1ed8: d53bf0ef mrs x15, s3_3_c15_c0_7
- 1edc: d51bf10f msr s3_3_c15_c1_0, x15
- 1ee0: d53bf10f mrs x15, s3_3_c15_c1_0
- 1ee4: d51bf12f msr s3_3_c15_c1_1, x15
- 1ee8: d53bf12f mrs x15, s3_3_c15_c1_1
- 1eec: d51bf14f msr s3_3_c15_c1_2, x15
- 1ef0: d53bf14f mrs x15, s3_3_c15_c1_2
- 1ef4: d51bf16f msr s3_3_c15_c1_3, x15
- 1ef8: d53bf16f mrs x15, s3_3_c15_c1_3
- 1efc: d51bf18f msr s3_3_c15_c1_4, x15
- 1f00: d53bf18f mrs x15, s3_3_c15_c1_4
- 1f04: d51bf1af msr s3_3_c15_c1_5, x15
- 1f08: d53bf1af mrs x15, s3_3_c15_c1_5
- 1f0c: d51bf1cf msr s3_3_c15_c1_6, x15
- 1f10: d53bf1cf mrs x15, s3_3_c15_c1_6
- 1f14: d51bf1ef msr s3_3_c15_c1_7, x15
- 1f18: d53bf1ef mrs x15, s3_3_c15_c1_7
- 1f1c: d51bf20f msr s3_3_c15_c2_0, x15
- 1f20: d53bf20f mrs x15, s3_3_c15_c2_0
- 1f24: d51bf22f msr s3_3_c15_c2_1, x15
- 1f28: d53bf22f mrs x15, s3_3_c15_c2_1
- 1f2c: d51bf24f msr s3_3_c15_c2_2, x15
- 1f30: d53bf24f mrs x15, s3_3_c15_c2_2
- 1f34: d51bf26f msr s3_3_c15_c2_3, x15
- 1f38: d53bf26f mrs x15, s3_3_c15_c2_3
- 1f3c: d51bf28f msr s3_3_c15_c2_4, x15
- 1f40: d53bf28f mrs x15, s3_3_c15_c2_4
- 1f44: d51bf2af msr s3_3_c15_c2_5, x15
- 1f48: d53bf2af mrs x15, s3_3_c15_c2_5
- 1f4c: d51bf2cf msr s3_3_c15_c2_6, x15
- 1f50: d53bf2cf mrs x15, s3_3_c15_c2_6
- 1f54: d51bf2ef msr s3_3_c15_c2_7, x15
- 1f58: d53bf2ef mrs x15, s3_3_c15_c2_7
- 1f5c: d51bf30f msr s3_3_c15_c3_0, x15
- 1f60: d53bf30f mrs x15, s3_3_c15_c3_0
- 1f64: d51bf32f msr s3_3_c15_c3_1, x15
- 1f68: d53bf32f mrs x15, s3_3_c15_c3_1
- 1f6c: d51bf34f msr s3_3_c15_c3_2, x15
- 1f70: d53bf34f mrs x15, s3_3_c15_c3_2
- 1f74: d51bf36f msr s3_3_c15_c3_3, x15
- 1f78: d53bf36f mrs x15, s3_3_c15_c3_3
- 1f7c: d51bf38f msr s3_3_c15_c3_4, x15
- 1f80: d53bf38f mrs x15, s3_3_c15_c3_4
- 1f84: d51bf3af msr s3_3_c15_c3_5, x15
- 1f88: d53bf3af mrs x15, s3_3_c15_c3_5
- 1f8c: d51bf3cf msr s3_3_c15_c3_6, x15
- 1f90: d53bf3cf mrs x15, s3_3_c15_c3_6
- 1f94: d51bf3ef msr s3_3_c15_c3_7, x15
- 1f98: d53bf3ef mrs x15, s3_3_c15_c3_7
- 1f9c: d51bf40f msr s3_3_c15_c4_0, x15
- 1fa0: d53bf40f mrs x15, s3_3_c15_c4_0
- 1fa4: d51bf42f msr s3_3_c15_c4_1, x15
- 1fa8: d53bf42f mrs x15, s3_3_c15_c4_1
- 1fac: d51bf44f msr s3_3_c15_c4_2, x15
- 1fb0: d53bf44f mrs x15, s3_3_c15_c4_2
- 1fb4: d51bf46f msr s3_3_c15_c4_3, x15
- 1fb8: d53bf46f mrs x15, s3_3_c15_c4_3
- 1fbc: d51bf48f msr s3_3_c15_c4_4, x15
- 1fc0: d53bf48f mrs x15, s3_3_c15_c4_4
- 1fc4: d51bf4af msr s3_3_c15_c4_5, x15
- 1fc8: d53bf4af mrs x15, s3_3_c15_c4_5
- 1fcc: d51bf4cf msr s3_3_c15_c4_6, x15
- 1fd0: d53bf4cf mrs x15, s3_3_c15_c4_6
- 1fd4: d51bf4ef msr s3_3_c15_c4_7, x15
- 1fd8: d53bf4ef mrs x15, s3_3_c15_c4_7
- 1fdc: d51bf50f msr s3_3_c15_c5_0, x15
- 1fe0: d53bf50f mrs x15, s3_3_c15_c5_0
- 1fe4: d51bf52f msr s3_3_c15_c5_1, x15
- 1fe8: d53bf52f mrs x15, s3_3_c15_c5_1
- 1fec: d51bf54f msr s3_3_c15_c5_2, x15
- 1ff0: d53bf54f mrs x15, s3_3_c15_c5_2
- 1ff4: d51bf56f msr s3_3_c15_c5_3, x15
- 1ff8: d53bf56f mrs x15, s3_3_c15_c5_3
- 1ffc: d51bf58f msr s3_3_c15_c5_4, x15
- 2000: d53bf58f mrs x15, s3_3_c15_c5_4
- 2004: d51bf5af msr s3_3_c15_c5_5, x15
- 2008: d53bf5af mrs x15, s3_3_c15_c5_5
- 200c: d51bf5cf msr s3_3_c15_c5_6, x15
- 2010: d53bf5cf mrs x15, s3_3_c15_c5_6
- 2014: d51bf5ef msr s3_3_c15_c5_7, x15
- 2018: d53bf5ef mrs x15, s3_3_c15_c5_7
- 201c: d51bf60f msr s3_3_c15_c6_0, x15
- 2020: d53bf60f mrs x15, s3_3_c15_c6_0
- 2024: d51bf62f msr s3_3_c15_c6_1, x15
- 2028: d53bf62f mrs x15, s3_3_c15_c6_1
- 202c: d51bf64f msr s3_3_c15_c6_2, x15
- 2030: d53bf64f mrs x15, s3_3_c15_c6_2
- 2034: d51bf66f msr s3_3_c15_c6_3, x15
- 2038: d53bf66f mrs x15, s3_3_c15_c6_3
- 203c: d51bf68f msr s3_3_c15_c6_4, x15
- 2040: d53bf68f mrs x15, s3_3_c15_c6_4
- 2044: d51bf6af msr s3_3_c15_c6_5, x15
- 2048: d53bf6af mrs x15, s3_3_c15_c6_5
- 204c: d51bf6cf msr s3_3_c15_c6_6, x15
- 2050: d53bf6cf mrs x15, s3_3_c15_c6_6
- 2054: d51bf6ef msr s3_3_c15_c6_7, x15
- 2058: d53bf6ef mrs x15, s3_3_c15_c6_7
- 205c: d51bf70f msr s3_3_c15_c7_0, x15
- 2060: d53bf70f mrs x15, s3_3_c15_c7_0
- 2064: d51bf72f msr s3_3_c15_c7_1, x15
- 2068: d53bf72f mrs x15, s3_3_c15_c7_1
- 206c: d51bf74f msr s3_3_c15_c7_2, x15
- 2070: d53bf74f mrs x15, s3_3_c15_c7_2
- 2074: d51bf76f msr s3_3_c15_c7_3, x15
- 2078: d53bf76f mrs x15, s3_3_c15_c7_3
- 207c: d51bf78f msr s3_3_c15_c7_4, x15
- 2080: d53bf78f mrs x15, s3_3_c15_c7_4
- 2084: d51bf7af msr s3_3_c15_c7_5, x15
- 2088: d53bf7af mrs x15, s3_3_c15_c7_5
- 208c: d51bf7cf msr s3_3_c15_c7_6, x15
- 2090: d53bf7cf mrs x15, s3_3_c15_c7_6
- 2094: d51bf7ef msr s3_3_c15_c7_7, x15
- 2098: d53bf7ef mrs x15, s3_3_c15_c7_7
- 209c: d51bf80f msr s3_3_c15_c8_0, x15
- 20a0: d53bf80f mrs x15, s3_3_c15_c8_0
- 20a4: d51bf82f msr s3_3_c15_c8_1, x15
- 20a8: d53bf82f mrs x15, s3_3_c15_c8_1
- 20ac: d51bf84f msr s3_3_c15_c8_2, x15
- 20b0: d53bf84f mrs x15, s3_3_c15_c8_2
- 20b4: d51bf86f msr s3_3_c15_c8_3, x15
- 20b8: d53bf86f mrs x15, s3_3_c15_c8_3
- 20bc: d51bf88f msr s3_3_c15_c8_4, x15
- 20c0: d53bf88f mrs x15, s3_3_c15_c8_4
- 20c4: d51bf8af msr s3_3_c15_c8_5, x15
- 20c8: d53bf8af mrs x15, s3_3_c15_c8_5
- 20cc: d51bf8cf msr s3_3_c15_c8_6, x15
- 20d0: d53bf8cf mrs x15, s3_3_c15_c8_6
- 20d4: d51bf8ef msr s3_3_c15_c8_7, x15
- 20d8: d53bf8ef mrs x15, s3_3_c15_c8_7
- 20dc: d51bf90f msr s3_3_c15_c9_0, x15
- 20e0: d53bf90f mrs x15, s3_3_c15_c9_0
- 20e4: d51bf92f msr s3_3_c15_c9_1, x15
- 20e8: d53bf92f mrs x15, s3_3_c15_c9_1
- 20ec: d51bf94f msr s3_3_c15_c9_2, x15
- 20f0: d53bf94f mrs x15, s3_3_c15_c9_2
- 20f4: d51bf96f msr s3_3_c15_c9_3, x15
- 20f8: d53bf96f mrs x15, s3_3_c15_c9_3
- 20fc: d51bf98f msr s3_3_c15_c9_4, x15
- 2100: d53bf98f mrs x15, s3_3_c15_c9_4
- 2104: d51bf9af msr s3_3_c15_c9_5, x15
- 2108: d53bf9af mrs x15, s3_3_c15_c9_5
- 210c: d51bf9cf msr s3_3_c15_c9_6, x15
- 2110: d53bf9cf mrs x15, s3_3_c15_c9_6
- 2114: d51bf9ef msr s3_3_c15_c9_7, x15
- 2118: d53bf9ef mrs x15, s3_3_c15_c9_7
- 211c: d51bfa0f msr s3_3_c15_c10_0, x15
- 2120: d53bfa0f mrs x15, s3_3_c15_c10_0
- 2124: d51bfa2f msr s3_3_c15_c10_1, x15
- 2128: d53bfa2f mrs x15, s3_3_c15_c10_1
- 212c: d51bfa4f msr s3_3_c15_c10_2, x15
- 2130: d53bfa4f mrs x15, s3_3_c15_c10_2
- 2134: d51bfa6f msr s3_3_c15_c10_3, x15
- 2138: d53bfa6f mrs x15, s3_3_c15_c10_3
- 213c: d51bfa8f msr s3_3_c15_c10_4, x15
- 2140: d53bfa8f mrs x15, s3_3_c15_c10_4
- 2144: d51bfaaf msr s3_3_c15_c10_5, x15
- 2148: d53bfaaf mrs x15, s3_3_c15_c10_5
- 214c: d51bfacf msr s3_3_c15_c10_6, x15
- 2150: d53bfacf mrs x15, s3_3_c15_c10_6
- 2154: d51bfaef msr s3_3_c15_c10_7, x15
- 2158: d53bfaef mrs x15, s3_3_c15_c10_7
- 215c: d51bfb0f msr s3_3_c15_c11_0, x15
- 2160: d53bfb0f mrs x15, s3_3_c15_c11_0
- 2164: d51bfb2f msr s3_3_c15_c11_1, x15
- 2168: d53bfb2f mrs x15, s3_3_c15_c11_1
- 216c: d51bfb4f msr s3_3_c15_c11_2, x15
- 2170: d53bfb4f mrs x15, s3_3_c15_c11_2
- 2174: d51bfb6f msr s3_3_c15_c11_3, x15
- 2178: d53bfb6f mrs x15, s3_3_c15_c11_3
- 217c: d51bfb8f msr s3_3_c15_c11_4, x15
- 2180: d53bfb8f mrs x15, s3_3_c15_c11_4
- 2184: d51bfbaf msr s3_3_c15_c11_5, x15
- 2188: d53bfbaf mrs x15, s3_3_c15_c11_5
- 218c: d51bfbcf msr s3_3_c15_c11_6, x15
- 2190: d53bfbcf mrs x15, s3_3_c15_c11_6
- 2194: d51bfbef msr s3_3_c15_c11_7, x15
- 2198: d53bfbef mrs x15, s3_3_c15_c11_7
- 219c: d51bfc0f msr s3_3_c15_c12_0, x15
- 21a0: d53bfc0f mrs x15, s3_3_c15_c12_0
- 21a4: d51bfc2f msr s3_3_c15_c12_1, x15
- 21a8: d53bfc2f mrs x15, s3_3_c15_c12_1
- 21ac: d51bfc4f msr s3_3_c15_c12_2, x15
- 21b0: d53bfc4f mrs x15, s3_3_c15_c12_2
- 21b4: d51bfc6f msr s3_3_c15_c12_3, x15
- 21b8: d53bfc6f mrs x15, s3_3_c15_c12_3
- 21bc: d51bfc8f msr s3_3_c15_c12_4, x15
- 21c0: d53bfc8f mrs x15, s3_3_c15_c12_4
- 21c4: d51bfcaf msr s3_3_c15_c12_5, x15
- 21c8: d53bfcaf mrs x15, s3_3_c15_c12_5
- 21cc: d51bfccf msr s3_3_c15_c12_6, x15
- 21d0: d53bfccf mrs x15, s3_3_c15_c12_6
- 21d4: d51bfcef msr s3_3_c15_c12_7, x15
- 21d8: d53bfcef mrs x15, s3_3_c15_c12_7
- 21dc: d51bfd0f msr s3_3_c15_c13_0, x15
- 21e0: d53bfd0f mrs x15, s3_3_c15_c13_0
- 21e4: d51bfd2f msr s3_3_c15_c13_1, x15
- 21e8: d53bfd2f mrs x15, s3_3_c15_c13_1
- 21ec: d51bfd4f msr s3_3_c15_c13_2, x15
- 21f0: d53bfd4f mrs x15, s3_3_c15_c13_2
- 21f4: d51bfd6f msr s3_3_c15_c13_3, x15
- 21f8: d53bfd6f mrs x15, s3_3_c15_c13_3
- 21fc: d51bfd8f msr s3_3_c15_c13_4, x15
- 2200: d53bfd8f mrs x15, s3_3_c15_c13_4
- 2204: d51bfdaf msr s3_3_c15_c13_5, x15
- 2208: d53bfdaf mrs x15, s3_3_c15_c13_5
- 220c: d51bfdcf msr s3_3_c15_c13_6, x15
- 2210: d53bfdcf mrs x15, s3_3_c15_c13_6
- 2214: d51bfdef msr s3_3_c15_c13_7, x15
- 2218: d53bfdef mrs x15, s3_3_c15_c13_7
- 221c: d51bfe0f msr s3_3_c15_c14_0, x15
- 2220: d53bfe0f mrs x15, s3_3_c15_c14_0
- 2224: d51bfe2f msr s3_3_c15_c14_1, x15
- 2228: d53bfe2f mrs x15, s3_3_c15_c14_1
- 222c: d51bfe4f msr s3_3_c15_c14_2, x15
- 2230: d53bfe4f mrs x15, s3_3_c15_c14_2
- 2234: d51bfe6f msr s3_3_c15_c14_3, x15
- 2238: d53bfe6f mrs x15, s3_3_c15_c14_3
- 223c: d51bfe8f msr s3_3_c15_c14_4, x15
- 2240: d53bfe8f mrs x15, s3_3_c15_c14_4
- 2244: d51bfeaf msr s3_3_c15_c14_5, x15
- 2248: d53bfeaf mrs x15, s3_3_c15_c14_5
- 224c: d51bfecf msr s3_3_c15_c14_6, x15
- 2250: d53bfecf mrs x15, s3_3_c15_c14_6
- 2254: d51bfeef msr s3_3_c15_c14_7, x15
- 2258: d53bfeef mrs x15, s3_3_c15_c14_7
- 225c: d51bff0f msr s3_3_c15_c15_0, x15
- 2260: d53bff0f mrs x15, s3_3_c15_c15_0
- 2264: d51bff2f msr s3_3_c15_c15_1, x15
- 2268: d53bff2f mrs x15, s3_3_c15_c15_1
- 226c: d51bff4f msr s3_3_c15_c15_2, x15
- 2270: d53bff4f mrs x15, s3_3_c15_c15_2
- 2274: d51bff6f msr s3_3_c15_c15_3, x15
- 2278: d53bff6f mrs x15, s3_3_c15_c15_3
- 227c: d51bff8f msr s3_3_c15_c15_4, x15
- 2280: d53bff8f mrs x15, s3_3_c15_c15_4
- 2284: d51bffaf msr s3_3_c15_c15_5, x15
- 2288: d53bffaf mrs x15, s3_3_c15_c15_5
- 228c: d51bffcf msr s3_3_c15_c15_6, x15
- 2290: d53bffcf mrs x15, s3_3_c15_c15_6
- 2294: d51bffef msr s3_3_c15_c15_7, x15
- 2298: d53bffef mrs x15, s3_3_c15_c15_7
- 229c: d51cb00f msr s3_4_c11_c0_0, x15
- 22a0: d53cb00f mrs x15, s3_4_c11_c0_0
- 22a4: d51cb02f msr s3_4_c11_c0_1, x15
- 22a8: d53cb02f mrs x15, s3_4_c11_c0_1
- 22ac: d51cb04f msr s3_4_c11_c0_2, x15
- 22b0: d53cb04f mrs x15, s3_4_c11_c0_2
- 22b4: d51cb06f msr s3_4_c11_c0_3, x15
- 22b8: d53cb06f mrs x15, s3_4_c11_c0_3
- 22bc: d51cb08f msr s3_4_c11_c0_4, x15
- 22c0: d53cb08f mrs x15, s3_4_c11_c0_4
- 22c4: d51cb0af msr s3_4_c11_c0_5, x15
- 22c8: d53cb0af mrs x15, s3_4_c11_c0_5
- 22cc: d51cb0cf msr s3_4_c11_c0_6, x15
- 22d0: d53cb0cf mrs x15, s3_4_c11_c0_6
- 22d4: d51cb0ef msr s3_4_c11_c0_7, x15
- 22d8: d53cb0ef mrs x15, s3_4_c11_c0_7
- 22dc: d51cb10f msr s3_4_c11_c1_0, x15
- 22e0: d53cb10f mrs x15, s3_4_c11_c1_0
- 22e4: d51cb12f msr s3_4_c11_c1_1, x15
- 22e8: d53cb12f mrs x15, s3_4_c11_c1_1
- 22ec: d51cb14f msr s3_4_c11_c1_2, x15
- 22f0: d53cb14f mrs x15, s3_4_c11_c1_2
- 22f4: d51cb16f msr s3_4_c11_c1_3, x15
- 22f8: d53cb16f mrs x15, s3_4_c11_c1_3
- 22fc: d51cb18f msr s3_4_c11_c1_4, x15
- 2300: d53cb18f mrs x15, s3_4_c11_c1_4
- 2304: d51cb1af msr s3_4_c11_c1_5, x15
- 2308: d53cb1af mrs x15, s3_4_c11_c1_5
- 230c: d51cb1cf msr s3_4_c11_c1_6, x15
- 2310: d53cb1cf mrs x15, s3_4_c11_c1_6
- 2314: d51cb1ef msr s3_4_c11_c1_7, x15
- 2318: d53cb1ef mrs x15, s3_4_c11_c1_7
- 231c: d51cb20f msr s3_4_c11_c2_0, x15
- 2320: d53cb20f mrs x15, s3_4_c11_c2_0
- 2324: d51cb22f msr s3_4_c11_c2_1, x15
- 2328: d53cb22f mrs x15, s3_4_c11_c2_1
- 232c: d51cb24f msr s3_4_c11_c2_2, x15
- 2330: d53cb24f mrs x15, s3_4_c11_c2_2
- 2334: d51cb26f msr s3_4_c11_c2_3, x15
- 2338: d53cb26f mrs x15, s3_4_c11_c2_3
- 233c: d51cb28f msr s3_4_c11_c2_4, x15
- 2340: d53cb28f mrs x15, s3_4_c11_c2_4
- 2344: d51cb2af msr s3_4_c11_c2_5, x15
- 2348: d53cb2af mrs x15, s3_4_c11_c2_5
- 234c: d51cb2cf msr s3_4_c11_c2_6, x15
- 2350: d53cb2cf mrs x15, s3_4_c11_c2_6
- 2354: d51cb2ef msr s3_4_c11_c2_7, x15
- 2358: d53cb2ef mrs x15, s3_4_c11_c2_7
- 235c: d51cb30f msr s3_4_c11_c3_0, x15
- 2360: d53cb30f mrs x15, s3_4_c11_c3_0
- 2364: d51cb32f msr s3_4_c11_c3_1, x15
- 2368: d53cb32f mrs x15, s3_4_c11_c3_1
- 236c: d51cb34f msr s3_4_c11_c3_2, x15
- 2370: d53cb34f mrs x15, s3_4_c11_c3_2
- 2374: d51cb36f msr s3_4_c11_c3_3, x15
- 2378: d53cb36f mrs x15, s3_4_c11_c3_3
- 237c: d51cb38f msr s3_4_c11_c3_4, x15
- 2380: d53cb38f mrs x15, s3_4_c11_c3_4
- 2384: d51cb3af msr s3_4_c11_c3_5, x15
- 2388: d53cb3af mrs x15, s3_4_c11_c3_5
- 238c: d51cb3cf msr s3_4_c11_c3_6, x15
- 2390: d53cb3cf mrs x15, s3_4_c11_c3_6
- 2394: d51cb3ef msr s3_4_c11_c3_7, x15
- 2398: d53cb3ef mrs x15, s3_4_c11_c3_7
- 239c: d51cb40f msr s3_4_c11_c4_0, x15
- 23a0: d53cb40f mrs x15, s3_4_c11_c4_0
- 23a4: d51cb42f msr s3_4_c11_c4_1, x15
- 23a8: d53cb42f mrs x15, s3_4_c11_c4_1
- 23ac: d51cb44f msr s3_4_c11_c4_2, x15
- 23b0: d53cb44f mrs x15, s3_4_c11_c4_2
- 23b4: d51cb46f msr s3_4_c11_c4_3, x15
- 23b8: d53cb46f mrs x15, s3_4_c11_c4_3
- 23bc: d51cb48f msr s3_4_c11_c4_4, x15
- 23c0: d53cb48f mrs x15, s3_4_c11_c4_4
- 23c4: d51cb4af msr s3_4_c11_c4_5, x15
- 23c8: d53cb4af mrs x15, s3_4_c11_c4_5
- 23cc: d51cb4cf msr s3_4_c11_c4_6, x15
- 23d0: d53cb4cf mrs x15, s3_4_c11_c4_6
- 23d4: d51cb4ef msr s3_4_c11_c4_7, x15
- 23d8: d53cb4ef mrs x15, s3_4_c11_c4_7
- 23dc: d51cb50f msr s3_4_c11_c5_0, x15
- 23e0: d53cb50f mrs x15, s3_4_c11_c5_0
- 23e4: d51cb52f msr s3_4_c11_c5_1, x15
- 23e8: d53cb52f mrs x15, s3_4_c11_c5_1
- 23ec: d51cb54f msr s3_4_c11_c5_2, x15
- 23f0: d53cb54f mrs x15, s3_4_c11_c5_2
- 23f4: d51cb56f msr s3_4_c11_c5_3, x15
- 23f8: d53cb56f mrs x15, s3_4_c11_c5_3
- 23fc: d51cb58f msr s3_4_c11_c5_4, x15
- 2400: d53cb58f mrs x15, s3_4_c11_c5_4
- 2404: d51cb5af msr s3_4_c11_c5_5, x15
- 2408: d53cb5af mrs x15, s3_4_c11_c5_5
- 240c: d51cb5cf msr s3_4_c11_c5_6, x15
- 2410: d53cb5cf mrs x15, s3_4_c11_c5_6
- 2414: d51cb5ef msr s3_4_c11_c5_7, x15
- 2418: d53cb5ef mrs x15, s3_4_c11_c5_7
- 241c: d51cb60f msr s3_4_c11_c6_0, x15
- 2420: d53cb60f mrs x15, s3_4_c11_c6_0
- 2424: d51cb62f msr s3_4_c11_c6_1, x15
- 2428: d53cb62f mrs x15, s3_4_c11_c6_1
- 242c: d51cb64f msr s3_4_c11_c6_2, x15
- 2430: d53cb64f mrs x15, s3_4_c11_c6_2
- 2434: d51cb66f msr s3_4_c11_c6_3, x15
- 2438: d53cb66f mrs x15, s3_4_c11_c6_3
- 243c: d51cb68f msr s3_4_c11_c6_4, x15
- 2440: d53cb68f mrs x15, s3_4_c11_c6_4
- 2444: d51cb6af msr s3_4_c11_c6_5, x15
- 2448: d53cb6af mrs x15, s3_4_c11_c6_5
- 244c: d51cb6cf msr s3_4_c11_c6_6, x15
- 2450: d53cb6cf mrs x15, s3_4_c11_c6_6
- 2454: d51cb6ef msr s3_4_c11_c6_7, x15
- 2458: d53cb6ef mrs x15, s3_4_c11_c6_7
- 245c: d51cb70f msr s3_4_c11_c7_0, x15
- 2460: d53cb70f mrs x15, s3_4_c11_c7_0
- 2464: d51cb72f msr s3_4_c11_c7_1, x15
- 2468: d53cb72f mrs x15, s3_4_c11_c7_1
- 246c: d51cb74f msr s3_4_c11_c7_2, x15
- 2470: d53cb74f mrs x15, s3_4_c11_c7_2
- 2474: d51cb76f msr s3_4_c11_c7_3, x15
- 2478: d53cb76f mrs x15, s3_4_c11_c7_3
- 247c: d51cb78f msr s3_4_c11_c7_4, x15
- 2480: d53cb78f mrs x15, s3_4_c11_c7_4
- 2484: d51cb7af msr s3_4_c11_c7_5, x15
- 2488: d53cb7af mrs x15, s3_4_c11_c7_5
- 248c: d51cb7cf msr s3_4_c11_c7_6, x15
- 2490: d53cb7cf mrs x15, s3_4_c11_c7_6
- 2494: d51cb7ef msr s3_4_c11_c7_7, x15
- 2498: d53cb7ef mrs x15, s3_4_c11_c7_7
- 249c: d51cb80f msr s3_4_c11_c8_0, x15
- 24a0: d53cb80f mrs x15, s3_4_c11_c8_0
- 24a4: d51cb82f msr s3_4_c11_c8_1, x15
- 24a8: d53cb82f mrs x15, s3_4_c11_c8_1
- 24ac: d51cb84f msr s3_4_c11_c8_2, x15
- 24b0: d53cb84f mrs x15, s3_4_c11_c8_2
- 24b4: d51cb86f msr s3_4_c11_c8_3, x15
- 24b8: d53cb86f mrs x15, s3_4_c11_c8_3
- 24bc: d51cb88f msr s3_4_c11_c8_4, x15
- 24c0: d53cb88f mrs x15, s3_4_c11_c8_4
- 24c4: d51cb8af msr s3_4_c11_c8_5, x15
- 24c8: d53cb8af mrs x15, s3_4_c11_c8_5
- 24cc: d51cb8cf msr s3_4_c11_c8_6, x15
- 24d0: d53cb8cf mrs x15, s3_4_c11_c8_6
- 24d4: d51cb8ef msr s3_4_c11_c8_7, x15
- 24d8: d53cb8ef mrs x15, s3_4_c11_c8_7
- 24dc: d51cb90f msr s3_4_c11_c9_0, x15
- 24e0: d53cb90f mrs x15, s3_4_c11_c9_0
- 24e4: d51cb92f msr s3_4_c11_c9_1, x15
- 24e8: d53cb92f mrs x15, s3_4_c11_c9_1
- 24ec: d51cb94f msr s3_4_c11_c9_2, x15
- 24f0: d53cb94f mrs x15, s3_4_c11_c9_2
- 24f4: d51cb96f msr s3_4_c11_c9_3, x15
- 24f8: d53cb96f mrs x15, s3_4_c11_c9_3
- 24fc: d51cb98f msr s3_4_c11_c9_4, x15
- 2500: d53cb98f mrs x15, s3_4_c11_c9_4
- 2504: d51cb9af msr s3_4_c11_c9_5, x15
- 2508: d53cb9af mrs x15, s3_4_c11_c9_5
- 250c: d51cb9cf msr s3_4_c11_c9_6, x15
- 2510: d53cb9cf mrs x15, s3_4_c11_c9_6
- 2514: d51cb9ef msr s3_4_c11_c9_7, x15
- 2518: d53cb9ef mrs x15, s3_4_c11_c9_7
- 251c: d51cba0f msr s3_4_c11_c10_0, x15
- 2520: d53cba0f mrs x15, s3_4_c11_c10_0
- 2524: d51cba2f msr s3_4_c11_c10_1, x15
- 2528: d53cba2f mrs x15, s3_4_c11_c10_1
- 252c: d51cba4f msr s3_4_c11_c10_2, x15
- 2530: d53cba4f mrs x15, s3_4_c11_c10_2
- 2534: d51cba6f msr s3_4_c11_c10_3, x15
- 2538: d53cba6f mrs x15, s3_4_c11_c10_3
- 253c: d51cba8f msr s3_4_c11_c10_4, x15
- 2540: d53cba8f mrs x15, s3_4_c11_c10_4
- 2544: d51cbaaf msr s3_4_c11_c10_5, x15
- 2548: d53cbaaf mrs x15, s3_4_c11_c10_5
- 254c: d51cbacf msr s3_4_c11_c10_6, x15
- 2550: d53cbacf mrs x15, s3_4_c11_c10_6
- 2554: d51cbaef msr s3_4_c11_c10_7, x15
- 2558: d53cbaef mrs x15, s3_4_c11_c10_7
- 255c: d51cbb0f msr s3_4_c11_c11_0, x15
- 2560: d53cbb0f mrs x15, s3_4_c11_c11_0
- 2564: d51cbb2f msr s3_4_c11_c11_1, x15
- 2568: d53cbb2f mrs x15, s3_4_c11_c11_1
- 256c: d51cbb4f msr s3_4_c11_c11_2, x15
- 2570: d53cbb4f mrs x15, s3_4_c11_c11_2
- 2574: d51cbb6f msr s3_4_c11_c11_3, x15
- 2578: d53cbb6f mrs x15, s3_4_c11_c11_3
- 257c: d51cbb8f msr s3_4_c11_c11_4, x15
- 2580: d53cbb8f mrs x15, s3_4_c11_c11_4
- 2584: d51cbbaf msr s3_4_c11_c11_5, x15
- 2588: d53cbbaf mrs x15, s3_4_c11_c11_5
- 258c: d51cbbcf msr s3_4_c11_c11_6, x15
- 2590: d53cbbcf mrs x15, s3_4_c11_c11_6
- 2594: d51cbbef msr s3_4_c11_c11_7, x15
- 2598: d53cbbef mrs x15, s3_4_c11_c11_7
- 259c: d51cbc0f msr s3_4_c11_c12_0, x15
- 25a0: d53cbc0f mrs x15, s3_4_c11_c12_0
- 25a4: d51cbc2f msr s3_4_c11_c12_1, x15
- 25a8: d53cbc2f mrs x15, s3_4_c11_c12_1
- 25ac: d51cbc4f msr s3_4_c11_c12_2, x15
- 25b0: d53cbc4f mrs x15, s3_4_c11_c12_2
- 25b4: d51cbc6f msr s3_4_c11_c12_3, x15
- 25b8: d53cbc6f mrs x15, s3_4_c11_c12_3
- 25bc: d51cbc8f msr s3_4_c11_c12_4, x15
- 25c0: d53cbc8f mrs x15, s3_4_c11_c12_4
- 25c4: d51cbcaf msr s3_4_c11_c12_5, x15
- 25c8: d53cbcaf mrs x15, s3_4_c11_c12_5
- 25cc: d51cbccf msr s3_4_c11_c12_6, x15
- 25d0: d53cbccf mrs x15, s3_4_c11_c12_6
- 25d4: d51cbcef msr s3_4_c11_c12_7, x15
- 25d8: d53cbcef mrs x15, s3_4_c11_c12_7
- 25dc: d51cbd0f msr s3_4_c11_c13_0, x15
- 25e0: d53cbd0f mrs x15, s3_4_c11_c13_0
- 25e4: d51cbd2f msr s3_4_c11_c13_1, x15
- 25e8: d53cbd2f mrs x15, s3_4_c11_c13_1
- 25ec: d51cbd4f msr s3_4_c11_c13_2, x15
- 25f0: d53cbd4f mrs x15, s3_4_c11_c13_2
- 25f4: d51cbd6f msr s3_4_c11_c13_3, x15
- 25f8: d53cbd6f mrs x15, s3_4_c11_c13_3
- 25fc: d51cbd8f msr s3_4_c11_c13_4, x15
- 2600: d53cbd8f mrs x15, s3_4_c11_c13_4
- 2604: d51cbdaf msr s3_4_c11_c13_5, x15
- 2608: d53cbdaf mrs x15, s3_4_c11_c13_5
- 260c: d51cbdcf msr s3_4_c11_c13_6, x15
- 2610: d53cbdcf mrs x15, s3_4_c11_c13_6
- 2614: d51cbdef msr s3_4_c11_c13_7, x15
- 2618: d53cbdef mrs x15, s3_4_c11_c13_7
- 261c: d51cbe0f msr s3_4_c11_c14_0, x15
- 2620: d53cbe0f mrs x15, s3_4_c11_c14_0
- 2624: d51cbe2f msr s3_4_c11_c14_1, x15
- 2628: d53cbe2f mrs x15, s3_4_c11_c14_1
- 262c: d51cbe4f msr s3_4_c11_c14_2, x15
- 2630: d53cbe4f mrs x15, s3_4_c11_c14_2
- 2634: d51cbe6f msr s3_4_c11_c14_3, x15
- 2638: d53cbe6f mrs x15, s3_4_c11_c14_3
- 263c: d51cbe8f msr s3_4_c11_c14_4, x15
- 2640: d53cbe8f mrs x15, s3_4_c11_c14_4
- 2644: d51cbeaf msr s3_4_c11_c14_5, x15
- 2648: d53cbeaf mrs x15, s3_4_c11_c14_5
- 264c: d51cbecf msr s3_4_c11_c14_6, x15
- 2650: d53cbecf mrs x15, s3_4_c11_c14_6
- 2654: d51cbeef msr s3_4_c11_c14_7, x15
- 2658: d53cbeef mrs x15, s3_4_c11_c14_7
- 265c: d51cbf0f msr s3_4_c11_c15_0, x15
- 2660: d53cbf0f mrs x15, s3_4_c11_c15_0
- 2664: d51cbf2f msr s3_4_c11_c15_1, x15
- 2668: d53cbf2f mrs x15, s3_4_c11_c15_1
- 266c: d51cbf4f msr s3_4_c11_c15_2, x15
- 2670: d53cbf4f mrs x15, s3_4_c11_c15_2
- 2674: d51cbf6f msr s3_4_c11_c15_3, x15
- 2678: d53cbf6f mrs x15, s3_4_c11_c15_3
- 267c: d51cbf8f msr s3_4_c11_c15_4, x15
- 2680: d53cbf8f mrs x15, s3_4_c11_c15_4
- 2684: d51cbfaf msr s3_4_c11_c15_5, x15
- 2688: d53cbfaf mrs x15, s3_4_c11_c15_5
- 268c: d51cbfcf msr s3_4_c11_c15_6, x15
- 2690: d53cbfcf mrs x15, s3_4_c11_c15_6
- 2694: d51cbfef msr s3_4_c11_c15_7, x15
- 2698: d53cbfef mrs x15, s3_4_c11_c15_7
- 269c: d51cf00f msr s3_4_c15_c0_0, x15
- 26a0: d53cf00f mrs x15, s3_4_c15_c0_0
- 26a4: d51cf02f msr s3_4_c15_c0_1, x15
- 26a8: d53cf02f mrs x15, s3_4_c15_c0_1
- 26ac: d51cf04f msr s3_4_c15_c0_2, x15
- 26b0: d53cf04f mrs x15, s3_4_c15_c0_2
- 26b4: d51cf06f msr s3_4_c15_c0_3, x15
- 26b8: d53cf06f mrs x15, s3_4_c15_c0_3
- 26bc: d51cf08f msr s3_4_c15_c0_4, x15
- 26c0: d53cf08f mrs x15, s3_4_c15_c0_4
- 26c4: d51cf0af msr s3_4_c15_c0_5, x15
- 26c8: d53cf0af mrs x15, s3_4_c15_c0_5
- 26cc: d51cf0cf msr s3_4_c15_c0_6, x15
- 26d0: d53cf0cf mrs x15, s3_4_c15_c0_6
- 26d4: d51cf0ef msr s3_4_c15_c0_7, x15
- 26d8: d53cf0ef mrs x15, s3_4_c15_c0_7
- 26dc: d51cf10f msr s3_4_c15_c1_0, x15
- 26e0: d53cf10f mrs x15, s3_4_c15_c1_0
- 26e4: d51cf12f msr s3_4_c15_c1_1, x15
- 26e8: d53cf12f mrs x15, s3_4_c15_c1_1
- 26ec: d51cf14f msr s3_4_c15_c1_2, x15
- 26f0: d53cf14f mrs x15, s3_4_c15_c1_2
- 26f4: d51cf16f msr s3_4_c15_c1_3, x15
- 26f8: d53cf16f mrs x15, s3_4_c15_c1_3
- 26fc: d51cf18f msr s3_4_c15_c1_4, x15
- 2700: d53cf18f mrs x15, s3_4_c15_c1_4
- 2704: d51cf1af msr s3_4_c15_c1_5, x15
- 2708: d53cf1af mrs x15, s3_4_c15_c1_5
- 270c: d51cf1cf msr s3_4_c15_c1_6, x15
- 2710: d53cf1cf mrs x15, s3_4_c15_c1_6
- 2714: d51cf1ef msr s3_4_c15_c1_7, x15
- 2718: d53cf1ef mrs x15, s3_4_c15_c1_7
- 271c: d51cf20f msr s3_4_c15_c2_0, x15
- 2720: d53cf20f mrs x15, s3_4_c15_c2_0
- 2724: d51cf22f msr s3_4_c15_c2_1, x15
- 2728: d53cf22f mrs x15, s3_4_c15_c2_1
- 272c: d51cf24f msr s3_4_c15_c2_2, x15
- 2730: d53cf24f mrs x15, s3_4_c15_c2_2
- 2734: d51cf26f msr s3_4_c15_c2_3, x15
- 2738: d53cf26f mrs x15, s3_4_c15_c2_3
- 273c: d51cf28f msr s3_4_c15_c2_4, x15
- 2740: d53cf28f mrs x15, s3_4_c15_c2_4
- 2744: d51cf2af msr s3_4_c15_c2_5, x15
- 2748: d53cf2af mrs x15, s3_4_c15_c2_5
- 274c: d51cf2cf msr s3_4_c15_c2_6, x15
- 2750: d53cf2cf mrs x15, s3_4_c15_c2_6
- 2754: d51cf2ef msr s3_4_c15_c2_7, x15
- 2758: d53cf2ef mrs x15, s3_4_c15_c2_7
- 275c: d51cf30f msr s3_4_c15_c3_0, x15
- 2760: d53cf30f mrs x15, s3_4_c15_c3_0
- 2764: d51cf32f msr s3_4_c15_c3_1, x15
- 2768: d53cf32f mrs x15, s3_4_c15_c3_1
- 276c: d51cf34f msr s3_4_c15_c3_2, x15
- 2770: d53cf34f mrs x15, s3_4_c15_c3_2
- 2774: d51cf36f msr s3_4_c15_c3_3, x15
- 2778: d53cf36f mrs x15, s3_4_c15_c3_3
- 277c: d51cf38f msr s3_4_c15_c3_4, x15
- 2780: d53cf38f mrs x15, s3_4_c15_c3_4
- 2784: d51cf3af msr s3_4_c15_c3_5, x15
- 2788: d53cf3af mrs x15, s3_4_c15_c3_5
- 278c: d51cf3cf msr s3_4_c15_c3_6, x15
- 2790: d53cf3cf mrs x15, s3_4_c15_c3_6
- 2794: d51cf3ef msr s3_4_c15_c3_7, x15
- 2798: d53cf3ef mrs x15, s3_4_c15_c3_7
- 279c: d51cf40f msr s3_4_c15_c4_0, x15
- 27a0: d53cf40f mrs x15, s3_4_c15_c4_0
- 27a4: d51cf42f msr s3_4_c15_c4_1, x15
- 27a8: d53cf42f mrs x15, s3_4_c15_c4_1
- 27ac: d51cf44f msr s3_4_c15_c4_2, x15
- 27b0: d53cf44f mrs x15, s3_4_c15_c4_2
- 27b4: d51cf46f msr s3_4_c15_c4_3, x15
- 27b8: d53cf46f mrs x15, s3_4_c15_c4_3
- 27bc: d51cf48f msr s3_4_c15_c4_4, x15
- 27c0: d53cf48f mrs x15, s3_4_c15_c4_4
- 27c4: d51cf4af msr s3_4_c15_c4_5, x15
- 27c8: d53cf4af mrs x15, s3_4_c15_c4_5
- 27cc: d51cf4cf msr s3_4_c15_c4_6, x15
- 27d0: d53cf4cf mrs x15, s3_4_c15_c4_6
- 27d4: d51cf4ef msr s3_4_c15_c4_7, x15
- 27d8: d53cf4ef mrs x15, s3_4_c15_c4_7
- 27dc: d51cf50f msr s3_4_c15_c5_0, x15
- 27e0: d53cf50f mrs x15, s3_4_c15_c5_0
- 27e4: d51cf52f msr s3_4_c15_c5_1, x15
- 27e8: d53cf52f mrs x15, s3_4_c15_c5_1
- 27ec: d51cf54f msr s3_4_c15_c5_2, x15
- 27f0: d53cf54f mrs x15, s3_4_c15_c5_2
- 27f4: d51cf56f msr s3_4_c15_c5_3, x15
- 27f8: d53cf56f mrs x15, s3_4_c15_c5_3
- 27fc: d51cf58f msr s3_4_c15_c5_4, x15
- 2800: d53cf58f mrs x15, s3_4_c15_c5_4
- 2804: d51cf5af msr s3_4_c15_c5_5, x15
- 2808: d53cf5af mrs x15, s3_4_c15_c5_5
- 280c: d51cf5cf msr s3_4_c15_c5_6, x15
- 2810: d53cf5cf mrs x15, s3_4_c15_c5_6
- 2814: d51cf5ef msr s3_4_c15_c5_7, x15
- 2818: d53cf5ef mrs x15, s3_4_c15_c5_7
- 281c: d51cf60f msr s3_4_c15_c6_0, x15
- 2820: d53cf60f mrs x15, s3_4_c15_c6_0
- 2824: d51cf62f msr s3_4_c15_c6_1, x15
- 2828: d53cf62f mrs x15, s3_4_c15_c6_1
- 282c: d51cf64f msr s3_4_c15_c6_2, x15
- 2830: d53cf64f mrs x15, s3_4_c15_c6_2
- 2834: d51cf66f msr s3_4_c15_c6_3, x15
- 2838: d53cf66f mrs x15, s3_4_c15_c6_3
- 283c: d51cf68f msr s3_4_c15_c6_4, x15
- 2840: d53cf68f mrs x15, s3_4_c15_c6_4
- 2844: d51cf6af msr s3_4_c15_c6_5, x15
- 2848: d53cf6af mrs x15, s3_4_c15_c6_5
- 284c: d51cf6cf msr s3_4_c15_c6_6, x15
- 2850: d53cf6cf mrs x15, s3_4_c15_c6_6
- 2854: d51cf6ef msr s3_4_c15_c6_7, x15
- 2858: d53cf6ef mrs x15, s3_4_c15_c6_7
- 285c: d51cf70f msr s3_4_c15_c7_0, x15
- 2860: d53cf70f mrs x15, s3_4_c15_c7_0
- 2864: d51cf72f msr s3_4_c15_c7_1, x15
- 2868: d53cf72f mrs x15, s3_4_c15_c7_1
- 286c: d51cf74f msr s3_4_c15_c7_2, x15
- 2870: d53cf74f mrs x15, s3_4_c15_c7_2
- 2874: d51cf76f msr s3_4_c15_c7_3, x15
- 2878: d53cf76f mrs x15, s3_4_c15_c7_3
- 287c: d51cf78f msr s3_4_c15_c7_4, x15
- 2880: d53cf78f mrs x15, s3_4_c15_c7_4
- 2884: d51cf7af msr s3_4_c15_c7_5, x15
- 2888: d53cf7af mrs x15, s3_4_c15_c7_5
- 288c: d51cf7cf msr s3_4_c15_c7_6, x15
- 2890: d53cf7cf mrs x15, s3_4_c15_c7_6
- 2894: d51cf7ef msr s3_4_c15_c7_7, x15
- 2898: d53cf7ef mrs x15, s3_4_c15_c7_7
- 289c: d51cf80f msr s3_4_c15_c8_0, x15
- 28a0: d53cf80f mrs x15, s3_4_c15_c8_0
- 28a4: d51cf82f msr s3_4_c15_c8_1, x15
- 28a8: d53cf82f mrs x15, s3_4_c15_c8_1
- 28ac: d51cf84f msr s3_4_c15_c8_2, x15
- 28b0: d53cf84f mrs x15, s3_4_c15_c8_2
- 28b4: d51cf86f msr s3_4_c15_c8_3, x15
- 28b8: d53cf86f mrs x15, s3_4_c15_c8_3
- 28bc: d51cf88f msr s3_4_c15_c8_4, x15
- 28c0: d53cf88f mrs x15, s3_4_c15_c8_4
- 28c4: d51cf8af msr s3_4_c15_c8_5, x15
- 28c8: d53cf8af mrs x15, s3_4_c15_c8_5
- 28cc: d51cf8cf msr s3_4_c15_c8_6, x15
- 28d0: d53cf8cf mrs x15, s3_4_c15_c8_6
- 28d4: d51cf8ef msr s3_4_c15_c8_7, x15
- 28d8: d53cf8ef mrs x15, s3_4_c15_c8_7
- 28dc: d51cf90f msr s3_4_c15_c9_0, x15
- 28e0: d53cf90f mrs x15, s3_4_c15_c9_0
- 28e4: d51cf92f msr s3_4_c15_c9_1, x15
- 28e8: d53cf92f mrs x15, s3_4_c15_c9_1
- 28ec: d51cf94f msr s3_4_c15_c9_2, x15
- 28f0: d53cf94f mrs x15, s3_4_c15_c9_2
- 28f4: d51cf96f msr s3_4_c15_c9_3, x15
- 28f8: d53cf96f mrs x15, s3_4_c15_c9_3
- 28fc: d51cf98f msr s3_4_c15_c9_4, x15
- 2900: d53cf98f mrs x15, s3_4_c15_c9_4
- 2904: d51cf9af msr s3_4_c15_c9_5, x15
- 2908: d53cf9af mrs x15, s3_4_c15_c9_5
- 290c: d51cf9cf msr s3_4_c15_c9_6, x15
- 2910: d53cf9cf mrs x15, s3_4_c15_c9_6
- 2914: d51cf9ef msr s3_4_c15_c9_7, x15
- 2918: d53cf9ef mrs x15, s3_4_c15_c9_7
- 291c: d51cfa0f msr s3_4_c15_c10_0, x15
- 2920: d53cfa0f mrs x15, s3_4_c15_c10_0
- 2924: d51cfa2f msr s3_4_c15_c10_1, x15
- 2928: d53cfa2f mrs x15, s3_4_c15_c10_1
- 292c: d51cfa4f msr s3_4_c15_c10_2, x15
- 2930: d53cfa4f mrs x15, s3_4_c15_c10_2
- 2934: d51cfa6f msr s3_4_c15_c10_3, x15
- 2938: d53cfa6f mrs x15, s3_4_c15_c10_3
- 293c: d51cfa8f msr s3_4_c15_c10_4, x15
- 2940: d53cfa8f mrs x15, s3_4_c15_c10_4
- 2944: d51cfaaf msr s3_4_c15_c10_5, x15
- 2948: d53cfaaf mrs x15, s3_4_c15_c10_5
- 294c: d51cfacf msr s3_4_c15_c10_6, x15
- 2950: d53cfacf mrs x15, s3_4_c15_c10_6
- 2954: d51cfaef msr s3_4_c15_c10_7, x15
- 2958: d53cfaef mrs x15, s3_4_c15_c10_7
- 295c: d51cfb0f msr s3_4_c15_c11_0, x15
- 2960: d53cfb0f mrs x15, s3_4_c15_c11_0
- 2964: d51cfb2f msr s3_4_c15_c11_1, x15
- 2968: d53cfb2f mrs x15, s3_4_c15_c11_1
- 296c: d51cfb4f msr s3_4_c15_c11_2, x15
- 2970: d53cfb4f mrs x15, s3_4_c15_c11_2
- 2974: d51cfb6f msr s3_4_c15_c11_3, x15
- 2978: d53cfb6f mrs x15, s3_4_c15_c11_3
- 297c: d51cfb8f msr s3_4_c15_c11_4, x15
- 2980: d53cfb8f mrs x15, s3_4_c15_c11_4
- 2984: d51cfbaf msr s3_4_c15_c11_5, x15
- 2988: d53cfbaf mrs x15, s3_4_c15_c11_5
- 298c: d51cfbcf msr s3_4_c15_c11_6, x15
- 2990: d53cfbcf mrs x15, s3_4_c15_c11_6
- 2994: d51cfbef msr s3_4_c15_c11_7, x15
- 2998: d53cfbef mrs x15, s3_4_c15_c11_7
- 299c: d51cfc0f msr s3_4_c15_c12_0, x15
- 29a0: d53cfc0f mrs x15, s3_4_c15_c12_0
- 29a4: d51cfc2f msr s3_4_c15_c12_1, x15
- 29a8: d53cfc2f mrs x15, s3_4_c15_c12_1
- 29ac: d51cfc4f msr s3_4_c15_c12_2, x15
- 29b0: d53cfc4f mrs x15, s3_4_c15_c12_2
- 29b4: d51cfc6f msr s3_4_c15_c12_3, x15
- 29b8: d53cfc6f mrs x15, s3_4_c15_c12_3
- 29bc: d51cfc8f msr s3_4_c15_c12_4, x15
- 29c0: d53cfc8f mrs x15, s3_4_c15_c12_4
- 29c4: d51cfcaf msr s3_4_c15_c12_5, x15
- 29c8: d53cfcaf mrs x15, s3_4_c15_c12_5
- 29cc: d51cfccf msr s3_4_c15_c12_6, x15
- 29d0: d53cfccf mrs x15, s3_4_c15_c12_6
- 29d4: d51cfcef msr s3_4_c15_c12_7, x15
- 29d8: d53cfcef mrs x15, s3_4_c15_c12_7
- 29dc: d51cfd0f msr s3_4_c15_c13_0, x15
- 29e0: d53cfd0f mrs x15, s3_4_c15_c13_0
- 29e4: d51cfd2f msr s3_4_c15_c13_1, x15
- 29e8: d53cfd2f mrs x15, s3_4_c15_c13_1
- 29ec: d51cfd4f msr s3_4_c15_c13_2, x15
- 29f0: d53cfd4f mrs x15, s3_4_c15_c13_2
- 29f4: d51cfd6f msr s3_4_c15_c13_3, x15
- 29f8: d53cfd6f mrs x15, s3_4_c15_c13_3
- 29fc: d51cfd8f msr s3_4_c15_c13_4, x15
- 2a00: d53cfd8f mrs x15, s3_4_c15_c13_4
- 2a04: d51cfdaf msr s3_4_c15_c13_5, x15
- 2a08: d53cfdaf mrs x15, s3_4_c15_c13_5
- 2a0c: d51cfdcf msr s3_4_c15_c13_6, x15
- 2a10: d53cfdcf mrs x15, s3_4_c15_c13_6
- 2a14: d51cfdef msr s3_4_c15_c13_7, x15
- 2a18: d53cfdef mrs x15, s3_4_c15_c13_7
- 2a1c: d51cfe0f msr s3_4_c15_c14_0, x15
- 2a20: d53cfe0f mrs x15, s3_4_c15_c14_0
- 2a24: d51cfe2f msr s3_4_c15_c14_1, x15
- 2a28: d53cfe2f mrs x15, s3_4_c15_c14_1
- 2a2c: d51cfe4f msr s3_4_c15_c14_2, x15
- 2a30: d53cfe4f mrs x15, s3_4_c15_c14_2
- 2a34: d51cfe6f msr s3_4_c15_c14_3, x15
- 2a38: d53cfe6f mrs x15, s3_4_c15_c14_3
- 2a3c: d51cfe8f msr s3_4_c15_c14_4, x15
- 2a40: d53cfe8f mrs x15, s3_4_c15_c14_4
- 2a44: d51cfeaf msr s3_4_c15_c14_5, x15
- 2a48: d53cfeaf mrs x15, s3_4_c15_c14_5
- 2a4c: d51cfecf msr s3_4_c15_c14_6, x15
- 2a50: d53cfecf mrs x15, s3_4_c15_c14_6
- 2a54: d51cfeef msr s3_4_c15_c14_7, x15
- 2a58: d53cfeef mrs x15, s3_4_c15_c14_7
- 2a5c: d51cff0f msr s3_4_c15_c15_0, x15
- 2a60: d53cff0f mrs x15, s3_4_c15_c15_0
- 2a64: d51cff2f msr s3_4_c15_c15_1, x15
- 2a68: d53cff2f mrs x15, s3_4_c15_c15_1
- 2a6c: d51cff4f msr s3_4_c15_c15_2, x15
- 2a70: d53cff4f mrs x15, s3_4_c15_c15_2
- 2a74: d51cff6f msr s3_4_c15_c15_3, x15
- 2a78: d53cff6f mrs x15, s3_4_c15_c15_3
- 2a7c: d51cff8f msr s3_4_c15_c15_4, x15
- 2a80: d53cff8f mrs x15, s3_4_c15_c15_4
- 2a84: d51cffaf msr s3_4_c15_c15_5, x15
- 2a88: d53cffaf mrs x15, s3_4_c15_c15_5
- 2a8c: d51cffcf msr s3_4_c15_c15_6, x15
- 2a90: d53cffcf mrs x15, s3_4_c15_c15_6
- 2a94: d51cffef msr s3_4_c15_c15_7, x15
- 2a98: d53cffef mrs x15, s3_4_c15_c15_7
- 2a9c: d51db00f msr s3_5_c11_c0_0, x15
- 2aa0: d53db00f mrs x15, s3_5_c11_c0_0
- 2aa4: d51db02f msr s3_5_c11_c0_1, x15
- 2aa8: d53db02f mrs x15, s3_5_c11_c0_1
- 2aac: d51db04f msr s3_5_c11_c0_2, x15
- 2ab0: d53db04f mrs x15, s3_5_c11_c0_2
- 2ab4: d51db06f msr s3_5_c11_c0_3, x15
- 2ab8: d53db06f mrs x15, s3_5_c11_c0_3
- 2abc: d51db08f msr s3_5_c11_c0_4, x15
- 2ac0: d53db08f mrs x15, s3_5_c11_c0_4
- 2ac4: d51db0af msr s3_5_c11_c0_5, x15
- 2ac8: d53db0af mrs x15, s3_5_c11_c0_5
- 2acc: d51db0cf msr s3_5_c11_c0_6, x15
- 2ad0: d53db0cf mrs x15, s3_5_c11_c0_6
- 2ad4: d51db0ef msr s3_5_c11_c0_7, x15
- 2ad8: d53db0ef mrs x15, s3_5_c11_c0_7
- 2adc: d51db10f msr s3_5_c11_c1_0, x15
- 2ae0: d53db10f mrs x15, s3_5_c11_c1_0
- 2ae4: d51db12f msr s3_5_c11_c1_1, x15
- 2ae8: d53db12f mrs x15, s3_5_c11_c1_1
- 2aec: d51db14f msr s3_5_c11_c1_2, x15
- 2af0: d53db14f mrs x15, s3_5_c11_c1_2
- 2af4: d51db16f msr s3_5_c11_c1_3, x15
- 2af8: d53db16f mrs x15, s3_5_c11_c1_3
- 2afc: d51db18f msr s3_5_c11_c1_4, x15
- 2b00: d53db18f mrs x15, s3_5_c11_c1_4
- 2b04: d51db1af msr s3_5_c11_c1_5, x15
- 2b08: d53db1af mrs x15, s3_5_c11_c1_5
- 2b0c: d51db1cf msr s3_5_c11_c1_6, x15
- 2b10: d53db1cf mrs x15, s3_5_c11_c1_6
- 2b14: d51db1ef msr s3_5_c11_c1_7, x15
- 2b18: d53db1ef mrs x15, s3_5_c11_c1_7
- 2b1c: d51db20f msr s3_5_c11_c2_0, x15
- 2b20: d53db20f mrs x15, s3_5_c11_c2_0
- 2b24: d51db22f msr s3_5_c11_c2_1, x15
- 2b28: d53db22f mrs x15, s3_5_c11_c2_1
- 2b2c: d51db24f msr s3_5_c11_c2_2, x15
- 2b30: d53db24f mrs x15, s3_5_c11_c2_2
- 2b34: d51db26f msr s3_5_c11_c2_3, x15
- 2b38: d53db26f mrs x15, s3_5_c11_c2_3
- 2b3c: d51db28f msr s3_5_c11_c2_4, x15
- 2b40: d53db28f mrs x15, s3_5_c11_c2_4
- 2b44: d51db2af msr s3_5_c11_c2_5, x15
- 2b48: d53db2af mrs x15, s3_5_c11_c2_5
- 2b4c: d51db2cf msr s3_5_c11_c2_6, x15
- 2b50: d53db2cf mrs x15, s3_5_c11_c2_6
- 2b54: d51db2ef msr s3_5_c11_c2_7, x15
- 2b58: d53db2ef mrs x15, s3_5_c11_c2_7
- 2b5c: d51db30f msr s3_5_c11_c3_0, x15
- 2b60: d53db30f mrs x15, s3_5_c11_c3_0
- 2b64: d51db32f msr s3_5_c11_c3_1, x15
- 2b68: d53db32f mrs x15, s3_5_c11_c3_1
- 2b6c: d51db34f msr s3_5_c11_c3_2, x15
- 2b70: d53db34f mrs x15, s3_5_c11_c3_2
- 2b74: d51db36f msr s3_5_c11_c3_3, x15
- 2b78: d53db36f mrs x15, s3_5_c11_c3_3
- 2b7c: d51db38f msr s3_5_c11_c3_4, x15
- 2b80: d53db38f mrs x15, s3_5_c11_c3_4
- 2b84: d51db3af msr s3_5_c11_c3_5, x15
- 2b88: d53db3af mrs x15, s3_5_c11_c3_5
- 2b8c: d51db3cf msr s3_5_c11_c3_6, x15
- 2b90: d53db3cf mrs x15, s3_5_c11_c3_6
- 2b94: d51db3ef msr s3_5_c11_c3_7, x15
- 2b98: d53db3ef mrs x15, s3_5_c11_c3_7
- 2b9c: d51db40f msr s3_5_c11_c4_0, x15
- 2ba0: d53db40f mrs x15, s3_5_c11_c4_0
- 2ba4: d51db42f msr s3_5_c11_c4_1, x15
- 2ba8: d53db42f mrs x15, s3_5_c11_c4_1
- 2bac: d51db44f msr s3_5_c11_c4_2, x15
- 2bb0: d53db44f mrs x15, s3_5_c11_c4_2
- 2bb4: d51db46f msr s3_5_c11_c4_3, x15
- 2bb8: d53db46f mrs x15, s3_5_c11_c4_3
- 2bbc: d51db48f msr s3_5_c11_c4_4, x15
- 2bc0: d53db48f mrs x15, s3_5_c11_c4_4
- 2bc4: d51db4af msr s3_5_c11_c4_5, x15
- 2bc8: d53db4af mrs x15, s3_5_c11_c4_5
- 2bcc: d51db4cf msr s3_5_c11_c4_6, x15
- 2bd0: d53db4cf mrs x15, s3_5_c11_c4_6
- 2bd4: d51db4ef msr s3_5_c11_c4_7, x15
- 2bd8: d53db4ef mrs x15, s3_5_c11_c4_7
- 2bdc: d51db50f msr s3_5_c11_c5_0, x15
- 2be0: d53db50f mrs x15, s3_5_c11_c5_0
- 2be4: d51db52f msr s3_5_c11_c5_1, x15
- 2be8: d53db52f mrs x15, s3_5_c11_c5_1
- 2bec: d51db54f msr s3_5_c11_c5_2, x15
- 2bf0: d53db54f mrs x15, s3_5_c11_c5_2
- 2bf4: d51db56f msr s3_5_c11_c5_3, x15
- 2bf8: d53db56f mrs x15, s3_5_c11_c5_3
- 2bfc: d51db58f msr s3_5_c11_c5_4, x15
- 2c00: d53db58f mrs x15, s3_5_c11_c5_4
- 2c04: d51db5af msr s3_5_c11_c5_5, x15
- 2c08: d53db5af mrs x15, s3_5_c11_c5_5
- 2c0c: d51db5cf msr s3_5_c11_c5_6, x15
- 2c10: d53db5cf mrs x15, s3_5_c11_c5_6
- 2c14: d51db5ef msr s3_5_c11_c5_7, x15
- 2c18: d53db5ef mrs x15, s3_5_c11_c5_7
- 2c1c: d51db60f msr s3_5_c11_c6_0, x15
- 2c20: d53db60f mrs x15, s3_5_c11_c6_0
- 2c24: d51db62f msr s3_5_c11_c6_1, x15
- 2c28: d53db62f mrs x15, s3_5_c11_c6_1
- 2c2c: d51db64f msr s3_5_c11_c6_2, x15
- 2c30: d53db64f mrs x15, s3_5_c11_c6_2
- 2c34: d51db66f msr s3_5_c11_c6_3, x15
- 2c38: d53db66f mrs x15, s3_5_c11_c6_3
- 2c3c: d51db68f msr s3_5_c11_c6_4, x15
- 2c40: d53db68f mrs x15, s3_5_c11_c6_4
- 2c44: d51db6af msr s3_5_c11_c6_5, x15
- 2c48: d53db6af mrs x15, s3_5_c11_c6_5
- 2c4c: d51db6cf msr s3_5_c11_c6_6, x15
- 2c50: d53db6cf mrs x15, s3_5_c11_c6_6
- 2c54: d51db6ef msr s3_5_c11_c6_7, x15
- 2c58: d53db6ef mrs x15, s3_5_c11_c6_7
- 2c5c: d51db70f msr s3_5_c11_c7_0, x15
- 2c60: d53db70f mrs x15, s3_5_c11_c7_0
- 2c64: d51db72f msr s3_5_c11_c7_1, x15
- 2c68: d53db72f mrs x15, s3_5_c11_c7_1
- 2c6c: d51db74f msr s3_5_c11_c7_2, x15
- 2c70: d53db74f mrs x15, s3_5_c11_c7_2
- 2c74: d51db76f msr s3_5_c11_c7_3, x15
- 2c78: d53db76f mrs x15, s3_5_c11_c7_3
- 2c7c: d51db78f msr s3_5_c11_c7_4, x15
- 2c80: d53db78f mrs x15, s3_5_c11_c7_4
- 2c84: d51db7af msr s3_5_c11_c7_5, x15
- 2c88: d53db7af mrs x15, s3_5_c11_c7_5
- 2c8c: d51db7cf msr s3_5_c11_c7_6, x15
- 2c90: d53db7cf mrs x15, s3_5_c11_c7_6
- 2c94: d51db7ef msr s3_5_c11_c7_7, x15
- 2c98: d53db7ef mrs x15, s3_5_c11_c7_7
- 2c9c: d51db80f msr s3_5_c11_c8_0, x15
- 2ca0: d53db80f mrs x15, s3_5_c11_c8_0
- 2ca4: d51db82f msr s3_5_c11_c8_1, x15
- 2ca8: d53db82f mrs x15, s3_5_c11_c8_1
- 2cac: d51db84f msr s3_5_c11_c8_2, x15
- 2cb0: d53db84f mrs x15, s3_5_c11_c8_2
- 2cb4: d51db86f msr s3_5_c11_c8_3, x15
- 2cb8: d53db86f mrs x15, s3_5_c11_c8_3
- 2cbc: d51db88f msr s3_5_c11_c8_4, x15
- 2cc0: d53db88f mrs x15, s3_5_c11_c8_4
- 2cc4: d51db8af msr s3_5_c11_c8_5, x15
- 2cc8: d53db8af mrs x15, s3_5_c11_c8_5
- 2ccc: d51db8cf msr s3_5_c11_c8_6, x15
- 2cd0: d53db8cf mrs x15, s3_5_c11_c8_6
- 2cd4: d51db8ef msr s3_5_c11_c8_7, x15
- 2cd8: d53db8ef mrs x15, s3_5_c11_c8_7
- 2cdc: d51db90f msr s3_5_c11_c9_0, x15
- 2ce0: d53db90f mrs x15, s3_5_c11_c9_0
- 2ce4: d51db92f msr s3_5_c11_c9_1, x15
- 2ce8: d53db92f mrs x15, s3_5_c11_c9_1
- 2cec: d51db94f msr s3_5_c11_c9_2, x15
- 2cf0: d53db94f mrs x15, s3_5_c11_c9_2
- 2cf4: d51db96f msr s3_5_c11_c9_3, x15
- 2cf8: d53db96f mrs x15, s3_5_c11_c9_3
- 2cfc: d51db98f msr s3_5_c11_c9_4, x15
- 2d00: d53db98f mrs x15, s3_5_c11_c9_4
- 2d04: d51db9af msr s3_5_c11_c9_5, x15
- 2d08: d53db9af mrs x15, s3_5_c11_c9_5
- 2d0c: d51db9cf msr s3_5_c11_c9_6, x15
- 2d10: d53db9cf mrs x15, s3_5_c11_c9_6
- 2d14: d51db9ef msr s3_5_c11_c9_7, x15
- 2d18: d53db9ef mrs x15, s3_5_c11_c9_7
- 2d1c: d51dba0f msr s3_5_c11_c10_0, x15
- 2d20: d53dba0f mrs x15, s3_5_c11_c10_0
- 2d24: d51dba2f msr s3_5_c11_c10_1, x15
- 2d28: d53dba2f mrs x15, s3_5_c11_c10_1
- 2d2c: d51dba4f msr s3_5_c11_c10_2, x15
- 2d30: d53dba4f mrs x15, s3_5_c11_c10_2
- 2d34: d51dba6f msr s3_5_c11_c10_3, x15
- 2d38: d53dba6f mrs x15, s3_5_c11_c10_3
- 2d3c: d51dba8f msr s3_5_c11_c10_4, x15
- 2d40: d53dba8f mrs x15, s3_5_c11_c10_4
- 2d44: d51dbaaf msr s3_5_c11_c10_5, x15
- 2d48: d53dbaaf mrs x15, s3_5_c11_c10_5
- 2d4c: d51dbacf msr s3_5_c11_c10_6, x15
- 2d50: d53dbacf mrs x15, s3_5_c11_c10_6
- 2d54: d51dbaef msr s3_5_c11_c10_7, x15
- 2d58: d53dbaef mrs x15, s3_5_c11_c10_7
- 2d5c: d51dbb0f msr s3_5_c11_c11_0, x15
- 2d60: d53dbb0f mrs x15, s3_5_c11_c11_0
- 2d64: d51dbb2f msr s3_5_c11_c11_1, x15
- 2d68: d53dbb2f mrs x15, s3_5_c11_c11_1
- 2d6c: d51dbb4f msr s3_5_c11_c11_2, x15
- 2d70: d53dbb4f mrs x15, s3_5_c11_c11_2
- 2d74: d51dbb6f msr s3_5_c11_c11_3, x15
- 2d78: d53dbb6f mrs x15, s3_5_c11_c11_3
- 2d7c: d51dbb8f msr s3_5_c11_c11_4, x15
- 2d80: d53dbb8f mrs x15, s3_5_c11_c11_4
- 2d84: d51dbbaf msr s3_5_c11_c11_5, x15
- 2d88: d53dbbaf mrs x15, s3_5_c11_c11_5
- 2d8c: d51dbbcf msr s3_5_c11_c11_6, x15
- 2d90: d53dbbcf mrs x15, s3_5_c11_c11_6
- 2d94: d51dbbef msr s3_5_c11_c11_7, x15
- 2d98: d53dbbef mrs x15, s3_5_c11_c11_7
- 2d9c: d51dbc0f msr s3_5_c11_c12_0, x15
- 2da0: d53dbc0f mrs x15, s3_5_c11_c12_0
- 2da4: d51dbc2f msr s3_5_c11_c12_1, x15
- 2da8: d53dbc2f mrs x15, s3_5_c11_c12_1
- 2dac: d51dbc4f msr s3_5_c11_c12_2, x15
- 2db0: d53dbc4f mrs x15, s3_5_c11_c12_2
- 2db4: d51dbc6f msr s3_5_c11_c12_3, x15
- 2db8: d53dbc6f mrs x15, s3_5_c11_c12_3
- 2dbc: d51dbc8f msr s3_5_c11_c12_4, x15
- 2dc0: d53dbc8f mrs x15, s3_5_c11_c12_4
- 2dc4: d51dbcaf msr s3_5_c11_c12_5, x15
- 2dc8: d53dbcaf mrs x15, s3_5_c11_c12_5
- 2dcc: d51dbccf msr s3_5_c11_c12_6, x15
- 2dd0: d53dbccf mrs x15, s3_5_c11_c12_6
- 2dd4: d51dbcef msr s3_5_c11_c12_7, x15
- 2dd8: d53dbcef mrs x15, s3_5_c11_c12_7
- 2ddc: d51dbd0f msr s3_5_c11_c13_0, x15
- 2de0: d53dbd0f mrs x15, s3_5_c11_c13_0
- 2de4: d51dbd2f msr s3_5_c11_c13_1, x15
- 2de8: d53dbd2f mrs x15, s3_5_c11_c13_1
- 2dec: d51dbd4f msr s3_5_c11_c13_2, x15
- 2df0: d53dbd4f mrs x15, s3_5_c11_c13_2
- 2df4: d51dbd6f msr s3_5_c11_c13_3, x15
- 2df8: d53dbd6f mrs x15, s3_5_c11_c13_3
- 2dfc: d51dbd8f msr s3_5_c11_c13_4, x15
- 2e00: d53dbd8f mrs x15, s3_5_c11_c13_4
- 2e04: d51dbdaf msr s3_5_c11_c13_5, x15
- 2e08: d53dbdaf mrs x15, s3_5_c11_c13_5
- 2e0c: d51dbdcf msr s3_5_c11_c13_6, x15
- 2e10: d53dbdcf mrs x15, s3_5_c11_c13_6
- 2e14: d51dbdef msr s3_5_c11_c13_7, x15
- 2e18: d53dbdef mrs x15, s3_5_c11_c13_7
- 2e1c: d51dbe0f msr s3_5_c11_c14_0, x15
- 2e20: d53dbe0f mrs x15, s3_5_c11_c14_0
- 2e24: d51dbe2f msr s3_5_c11_c14_1, x15
- 2e28: d53dbe2f mrs x15, s3_5_c11_c14_1
- 2e2c: d51dbe4f msr s3_5_c11_c14_2, x15
- 2e30: d53dbe4f mrs x15, s3_5_c11_c14_2
- 2e34: d51dbe6f msr s3_5_c11_c14_3, x15
- 2e38: d53dbe6f mrs x15, s3_5_c11_c14_3
- 2e3c: d51dbe8f msr s3_5_c11_c14_4, x15
- 2e40: d53dbe8f mrs x15, s3_5_c11_c14_4
- 2e44: d51dbeaf msr s3_5_c11_c14_5, x15
- 2e48: d53dbeaf mrs x15, s3_5_c11_c14_5
- 2e4c: d51dbecf msr s3_5_c11_c14_6, x15
- 2e50: d53dbecf mrs x15, s3_5_c11_c14_6
- 2e54: d51dbeef msr s3_5_c11_c14_7, x15
- 2e58: d53dbeef mrs x15, s3_5_c11_c14_7
- 2e5c: d51dbf0f msr s3_5_c11_c15_0, x15
- 2e60: d53dbf0f mrs x15, s3_5_c11_c15_0
- 2e64: d51dbf2f msr s3_5_c11_c15_1, x15
- 2e68: d53dbf2f mrs x15, s3_5_c11_c15_1
- 2e6c: d51dbf4f msr s3_5_c11_c15_2, x15
- 2e70: d53dbf4f mrs x15, s3_5_c11_c15_2
- 2e74: d51dbf6f msr s3_5_c11_c15_3, x15
- 2e78: d53dbf6f mrs x15, s3_5_c11_c15_3
- 2e7c: d51dbf8f msr s3_5_c11_c15_4, x15
- 2e80: d53dbf8f mrs x15, s3_5_c11_c15_4
- 2e84: d51dbfaf msr s3_5_c11_c15_5, x15
- 2e88: d53dbfaf mrs x15, s3_5_c11_c15_5
- 2e8c: d51dbfcf msr s3_5_c11_c15_6, x15
- 2e90: d53dbfcf mrs x15, s3_5_c11_c15_6
- 2e94: d51dbfef msr s3_5_c11_c15_7, x15
- 2e98: d53dbfef mrs x15, s3_5_c11_c15_7
- 2e9c: d51df00f msr s3_5_c15_c0_0, x15
- 2ea0: d53df00f mrs x15, s3_5_c15_c0_0
- 2ea4: d51df02f msr s3_5_c15_c0_1, x15
- 2ea8: d53df02f mrs x15, s3_5_c15_c0_1
- 2eac: d51df04f msr s3_5_c15_c0_2, x15
- 2eb0: d53df04f mrs x15, s3_5_c15_c0_2
- 2eb4: d51df06f msr s3_5_c15_c0_3, x15
- 2eb8: d53df06f mrs x15, s3_5_c15_c0_3
- 2ebc: d51df08f msr s3_5_c15_c0_4, x15
- 2ec0: d53df08f mrs x15, s3_5_c15_c0_4
- 2ec4: d51df0af msr s3_5_c15_c0_5, x15
- 2ec8: d53df0af mrs x15, s3_5_c15_c0_5
- 2ecc: d51df0cf msr s3_5_c15_c0_6, x15
- 2ed0: d53df0cf mrs x15, s3_5_c15_c0_6
- 2ed4: d51df0ef msr s3_5_c15_c0_7, x15
- 2ed8: d53df0ef mrs x15, s3_5_c15_c0_7
- 2edc: d51df10f msr s3_5_c15_c1_0, x15
- 2ee0: d53df10f mrs x15, s3_5_c15_c1_0
- 2ee4: d51df12f msr s3_5_c15_c1_1, x15
- 2ee8: d53df12f mrs x15, s3_5_c15_c1_1
- 2eec: d51df14f msr s3_5_c15_c1_2, x15
- 2ef0: d53df14f mrs x15, s3_5_c15_c1_2
- 2ef4: d51df16f msr s3_5_c15_c1_3, x15
- 2ef8: d53df16f mrs x15, s3_5_c15_c1_3
- 2efc: d51df18f msr s3_5_c15_c1_4, x15
- 2f00: d53df18f mrs x15, s3_5_c15_c1_4
- 2f04: d51df1af msr s3_5_c15_c1_5, x15
- 2f08: d53df1af mrs x15, s3_5_c15_c1_5
- 2f0c: d51df1cf msr s3_5_c15_c1_6, x15
- 2f10: d53df1cf mrs x15, s3_5_c15_c1_6
- 2f14: d51df1ef msr s3_5_c15_c1_7, x15
- 2f18: d53df1ef mrs x15, s3_5_c15_c1_7
- 2f1c: d51df20f msr s3_5_c15_c2_0, x15
- 2f20: d53df20f mrs x15, s3_5_c15_c2_0
- 2f24: d51df22f msr s3_5_c15_c2_1, x15
- 2f28: d53df22f mrs x15, s3_5_c15_c2_1
- 2f2c: d51df24f msr s3_5_c15_c2_2, x15
- 2f30: d53df24f mrs x15, s3_5_c15_c2_2
- 2f34: d51df26f msr s3_5_c15_c2_3, x15
- 2f38: d53df26f mrs x15, s3_5_c15_c2_3
- 2f3c: d51df28f msr s3_5_c15_c2_4, x15
- 2f40: d53df28f mrs x15, s3_5_c15_c2_4
- 2f44: d51df2af msr s3_5_c15_c2_5, x15
- 2f48: d53df2af mrs x15, s3_5_c15_c2_5
- 2f4c: d51df2cf msr s3_5_c15_c2_6, x15
- 2f50: d53df2cf mrs x15, s3_5_c15_c2_6
- 2f54: d51df2ef msr s3_5_c15_c2_7, x15
- 2f58: d53df2ef mrs x15, s3_5_c15_c2_7
- 2f5c: d51df30f msr s3_5_c15_c3_0, x15
- 2f60: d53df30f mrs x15, s3_5_c15_c3_0
- 2f64: d51df32f msr s3_5_c15_c3_1, x15
- 2f68: d53df32f mrs x15, s3_5_c15_c3_1
- 2f6c: d51df34f msr s3_5_c15_c3_2, x15
- 2f70: d53df34f mrs x15, s3_5_c15_c3_2
- 2f74: d51df36f msr s3_5_c15_c3_3, x15
- 2f78: d53df36f mrs x15, s3_5_c15_c3_3
- 2f7c: d51df38f msr s3_5_c15_c3_4, x15
- 2f80: d53df38f mrs x15, s3_5_c15_c3_4
- 2f84: d51df3af msr s3_5_c15_c3_5, x15
- 2f88: d53df3af mrs x15, s3_5_c15_c3_5
- 2f8c: d51df3cf msr s3_5_c15_c3_6, x15
- 2f90: d53df3cf mrs x15, s3_5_c15_c3_6
- 2f94: d51df3ef msr s3_5_c15_c3_7, x15
- 2f98: d53df3ef mrs x15, s3_5_c15_c3_7
- 2f9c: d51df40f msr s3_5_c15_c4_0, x15
- 2fa0: d53df40f mrs x15, s3_5_c15_c4_0
- 2fa4: d51df42f msr s3_5_c15_c4_1, x15
- 2fa8: d53df42f mrs x15, s3_5_c15_c4_1
- 2fac: d51df44f msr s3_5_c15_c4_2, x15
- 2fb0: d53df44f mrs x15, s3_5_c15_c4_2
- 2fb4: d51df46f msr s3_5_c15_c4_3, x15
- 2fb8: d53df46f mrs x15, s3_5_c15_c4_3
- 2fbc: d51df48f msr s3_5_c15_c4_4, x15
- 2fc0: d53df48f mrs x15, s3_5_c15_c4_4
- 2fc4: d51df4af msr s3_5_c15_c4_5, x15
- 2fc8: d53df4af mrs x15, s3_5_c15_c4_5
- 2fcc: d51df4cf msr s3_5_c15_c4_6, x15
- 2fd0: d53df4cf mrs x15, s3_5_c15_c4_6
- 2fd4: d51df4ef msr s3_5_c15_c4_7, x15
- 2fd8: d53df4ef mrs x15, s3_5_c15_c4_7
- 2fdc: d51df50f msr s3_5_c15_c5_0, x15
- 2fe0: d53df50f mrs x15, s3_5_c15_c5_0
- 2fe4: d51df52f msr s3_5_c15_c5_1, x15
- 2fe8: d53df52f mrs x15, s3_5_c15_c5_1
- 2fec: d51df54f msr s3_5_c15_c5_2, x15
- 2ff0: d53df54f mrs x15, s3_5_c15_c5_2
- 2ff4: d51df56f msr s3_5_c15_c5_3, x15
- 2ff8: d53df56f mrs x15, s3_5_c15_c5_3
- 2ffc: d51df58f msr s3_5_c15_c5_4, x15
- 3000: d53df58f mrs x15, s3_5_c15_c5_4
- 3004: d51df5af msr s3_5_c15_c5_5, x15
- 3008: d53df5af mrs x15, s3_5_c15_c5_5
- 300c: d51df5cf msr s3_5_c15_c5_6, x15
- 3010: d53df5cf mrs x15, s3_5_c15_c5_6
- 3014: d51df5ef msr s3_5_c15_c5_7, x15
- 3018: d53df5ef mrs x15, s3_5_c15_c5_7
- 301c: d51df60f msr s3_5_c15_c6_0, x15
- 3020: d53df60f mrs x15, s3_5_c15_c6_0
- 3024: d51df62f msr s3_5_c15_c6_1, x15
- 3028: d53df62f mrs x15, s3_5_c15_c6_1
- 302c: d51df64f msr s3_5_c15_c6_2, x15
- 3030: d53df64f mrs x15, s3_5_c15_c6_2
- 3034: d51df66f msr s3_5_c15_c6_3, x15
- 3038: d53df66f mrs x15, s3_5_c15_c6_3
- 303c: d51df68f msr s3_5_c15_c6_4, x15
- 3040: d53df68f mrs x15, s3_5_c15_c6_4
- 3044: d51df6af msr s3_5_c15_c6_5, x15
- 3048: d53df6af mrs x15, s3_5_c15_c6_5
- 304c: d51df6cf msr s3_5_c15_c6_6, x15
- 3050: d53df6cf mrs x15, s3_5_c15_c6_6
- 3054: d51df6ef msr s3_5_c15_c6_7, x15
- 3058: d53df6ef mrs x15, s3_5_c15_c6_7
- 305c: d51df70f msr s3_5_c15_c7_0, x15
- 3060: d53df70f mrs x15, s3_5_c15_c7_0
- 3064: d51df72f msr s3_5_c15_c7_1, x15
- 3068: d53df72f mrs x15, s3_5_c15_c7_1
- 306c: d51df74f msr s3_5_c15_c7_2, x15
- 3070: d53df74f mrs x15, s3_5_c15_c7_2
- 3074: d51df76f msr s3_5_c15_c7_3, x15
- 3078: d53df76f mrs x15, s3_5_c15_c7_3
- 307c: d51df78f msr s3_5_c15_c7_4, x15
- 3080: d53df78f mrs x15, s3_5_c15_c7_4
- 3084: d51df7af msr s3_5_c15_c7_5, x15
- 3088: d53df7af mrs x15, s3_5_c15_c7_5
- 308c: d51df7cf msr s3_5_c15_c7_6, x15
- 3090: d53df7cf mrs x15, s3_5_c15_c7_6
- 3094: d51df7ef msr s3_5_c15_c7_7, x15
- 3098: d53df7ef mrs x15, s3_5_c15_c7_7
- 309c: d51df80f msr s3_5_c15_c8_0, x15
- 30a0: d53df80f mrs x15, s3_5_c15_c8_0
- 30a4: d51df82f msr s3_5_c15_c8_1, x15
- 30a8: d53df82f mrs x15, s3_5_c15_c8_1
- 30ac: d51df84f msr s3_5_c15_c8_2, x15
- 30b0: d53df84f mrs x15, s3_5_c15_c8_2
- 30b4: d51df86f msr s3_5_c15_c8_3, x15
- 30b8: d53df86f mrs x15, s3_5_c15_c8_3
- 30bc: d51df88f msr s3_5_c15_c8_4, x15
- 30c0: d53df88f mrs x15, s3_5_c15_c8_4
- 30c4: d51df8af msr s3_5_c15_c8_5, x15
- 30c8: d53df8af mrs x15, s3_5_c15_c8_5
- 30cc: d51df8cf msr s3_5_c15_c8_6, x15
- 30d0: d53df8cf mrs x15, s3_5_c15_c8_6
- 30d4: d51df8ef msr s3_5_c15_c8_7, x15
- 30d8: d53df8ef mrs x15, s3_5_c15_c8_7
- 30dc: d51df90f msr s3_5_c15_c9_0, x15
- 30e0: d53df90f mrs x15, s3_5_c15_c9_0
- 30e4: d51df92f msr s3_5_c15_c9_1, x15
- 30e8: d53df92f mrs x15, s3_5_c15_c9_1
- 30ec: d51df94f msr s3_5_c15_c9_2, x15
- 30f0: d53df94f mrs x15, s3_5_c15_c9_2
- 30f4: d51df96f msr s3_5_c15_c9_3, x15
- 30f8: d53df96f mrs x15, s3_5_c15_c9_3
- 30fc: d51df98f msr s3_5_c15_c9_4, x15
- 3100: d53df98f mrs x15, s3_5_c15_c9_4
- 3104: d51df9af msr s3_5_c15_c9_5, x15
- 3108: d53df9af mrs x15, s3_5_c15_c9_5
- 310c: d51df9cf msr s3_5_c15_c9_6, x15
- 3110: d53df9cf mrs x15, s3_5_c15_c9_6
- 3114: d51df9ef msr s3_5_c15_c9_7, x15
- 3118: d53df9ef mrs x15, s3_5_c15_c9_7
- 311c: d51dfa0f msr s3_5_c15_c10_0, x15
- 3120: d53dfa0f mrs x15, s3_5_c15_c10_0
- 3124: d51dfa2f msr s3_5_c15_c10_1, x15
- 3128: d53dfa2f mrs x15, s3_5_c15_c10_1
- 312c: d51dfa4f msr s3_5_c15_c10_2, x15
- 3130: d53dfa4f mrs x15, s3_5_c15_c10_2
- 3134: d51dfa6f msr s3_5_c15_c10_3, x15
- 3138: d53dfa6f mrs x15, s3_5_c15_c10_3
- 313c: d51dfa8f msr s3_5_c15_c10_4, x15
- 3140: d53dfa8f mrs x15, s3_5_c15_c10_4
- 3144: d51dfaaf msr s3_5_c15_c10_5, x15
- 3148: d53dfaaf mrs x15, s3_5_c15_c10_5
- 314c: d51dfacf msr s3_5_c15_c10_6, x15
- 3150: d53dfacf mrs x15, s3_5_c15_c10_6
- 3154: d51dfaef msr s3_5_c15_c10_7, x15
- 3158: d53dfaef mrs x15, s3_5_c15_c10_7
- 315c: d51dfb0f msr s3_5_c15_c11_0, x15
- 3160: d53dfb0f mrs x15, s3_5_c15_c11_0
- 3164: d51dfb2f msr s3_5_c15_c11_1, x15
- 3168: d53dfb2f mrs x15, s3_5_c15_c11_1
- 316c: d51dfb4f msr s3_5_c15_c11_2, x15
- 3170: d53dfb4f mrs x15, s3_5_c15_c11_2
- 3174: d51dfb6f msr s3_5_c15_c11_3, x15
- 3178: d53dfb6f mrs x15, s3_5_c15_c11_3
- 317c: d51dfb8f msr s3_5_c15_c11_4, x15
- 3180: d53dfb8f mrs x15, s3_5_c15_c11_4
- 3184: d51dfbaf msr s3_5_c15_c11_5, x15
- 3188: d53dfbaf mrs x15, s3_5_c15_c11_5
- 318c: d51dfbcf msr s3_5_c15_c11_6, x15
- 3190: d53dfbcf mrs x15, s3_5_c15_c11_6
- 3194: d51dfbef msr s3_5_c15_c11_7, x15
- 3198: d53dfbef mrs x15, s3_5_c15_c11_7
- 319c: d51dfc0f msr s3_5_c15_c12_0, x15
- 31a0: d53dfc0f mrs x15, s3_5_c15_c12_0
- 31a4: d51dfc2f msr s3_5_c15_c12_1, x15
- 31a8: d53dfc2f mrs x15, s3_5_c15_c12_1
- 31ac: d51dfc4f msr s3_5_c15_c12_2, x15
- 31b0: d53dfc4f mrs x15, s3_5_c15_c12_2
- 31b4: d51dfc6f msr s3_5_c15_c12_3, x15
- 31b8: d53dfc6f mrs x15, s3_5_c15_c12_3
- 31bc: d51dfc8f msr s3_5_c15_c12_4, x15
- 31c0: d53dfc8f mrs x15, s3_5_c15_c12_4
- 31c4: d51dfcaf msr s3_5_c15_c12_5, x15
- 31c8: d53dfcaf mrs x15, s3_5_c15_c12_5
- 31cc: d51dfccf msr s3_5_c15_c12_6, x15
- 31d0: d53dfccf mrs x15, s3_5_c15_c12_6
- 31d4: d51dfcef msr s3_5_c15_c12_7, x15
- 31d8: d53dfcef mrs x15, s3_5_c15_c12_7
- 31dc: d51dfd0f msr s3_5_c15_c13_0, x15
- 31e0: d53dfd0f mrs x15, s3_5_c15_c13_0
- 31e4: d51dfd2f msr s3_5_c15_c13_1, x15
- 31e8: d53dfd2f mrs x15, s3_5_c15_c13_1
- 31ec: d51dfd4f msr s3_5_c15_c13_2, x15
- 31f0: d53dfd4f mrs x15, s3_5_c15_c13_2
- 31f4: d51dfd6f msr s3_5_c15_c13_3, x15
- 31f8: d53dfd6f mrs x15, s3_5_c15_c13_3
- 31fc: d51dfd8f msr s3_5_c15_c13_4, x15
- 3200: d53dfd8f mrs x15, s3_5_c15_c13_4
- 3204: d51dfdaf msr s3_5_c15_c13_5, x15
- 3208: d53dfdaf mrs x15, s3_5_c15_c13_5
- 320c: d51dfdcf msr s3_5_c15_c13_6, x15
- 3210: d53dfdcf mrs x15, s3_5_c15_c13_6
- 3214: d51dfdef msr s3_5_c15_c13_7, x15
- 3218: d53dfdef mrs x15, s3_5_c15_c13_7
- 321c: d51dfe0f msr s3_5_c15_c14_0, x15
- 3220: d53dfe0f mrs x15, s3_5_c15_c14_0
- 3224: d51dfe2f msr s3_5_c15_c14_1, x15
- 3228: d53dfe2f mrs x15, s3_5_c15_c14_1
- 322c: d51dfe4f msr s3_5_c15_c14_2, x15
- 3230: d53dfe4f mrs x15, s3_5_c15_c14_2
- 3234: d51dfe6f msr s3_5_c15_c14_3, x15
- 3238: d53dfe6f mrs x15, s3_5_c15_c14_3
- 323c: d51dfe8f msr s3_5_c15_c14_4, x15
- 3240: d53dfe8f mrs x15, s3_5_c15_c14_4
- 3244: d51dfeaf msr s3_5_c15_c14_5, x15
- 3248: d53dfeaf mrs x15, s3_5_c15_c14_5
- 324c: d51dfecf msr s3_5_c15_c14_6, x15
- 3250: d53dfecf mrs x15, s3_5_c15_c14_6
- 3254: d51dfeef msr s3_5_c15_c14_7, x15
- 3258: d53dfeef mrs x15, s3_5_c15_c14_7
- 325c: d51dff0f msr s3_5_c15_c15_0, x15
- 3260: d53dff0f mrs x15, s3_5_c15_c15_0
- 3264: d51dff2f msr s3_5_c15_c15_1, x15
- 3268: d53dff2f mrs x15, s3_5_c15_c15_1
- 326c: d51dff4f msr s3_5_c15_c15_2, x15
- 3270: d53dff4f mrs x15, s3_5_c15_c15_2
- 3274: d51dff6f msr s3_5_c15_c15_3, x15
- 3278: d53dff6f mrs x15, s3_5_c15_c15_3
- 327c: d51dff8f msr s3_5_c15_c15_4, x15
- 3280: d53dff8f mrs x15, s3_5_c15_c15_4
- 3284: d51dffaf msr s3_5_c15_c15_5, x15
- 3288: d53dffaf mrs x15, s3_5_c15_c15_5
- 328c: d51dffcf msr s3_5_c15_c15_6, x15
- 3290: d53dffcf mrs x15, s3_5_c15_c15_6
- 3294: d51dffef msr s3_5_c15_c15_7, x15
- 3298: d53dffef mrs x15, s3_5_c15_c15_7
- 329c: d51eb00f msr s3_6_c11_c0_0, x15
- 32a0: d53eb00f mrs x15, s3_6_c11_c0_0
- 32a4: d51eb02f msr s3_6_c11_c0_1, x15
- 32a8: d53eb02f mrs x15, s3_6_c11_c0_1
- 32ac: d51eb04f msr s3_6_c11_c0_2, x15
- 32b0: d53eb04f mrs x15, s3_6_c11_c0_2
- 32b4: d51eb06f msr s3_6_c11_c0_3, x15
- 32b8: d53eb06f mrs x15, s3_6_c11_c0_3
- 32bc: d51eb08f msr s3_6_c11_c0_4, x15
- 32c0: d53eb08f mrs x15, s3_6_c11_c0_4
- 32c4: d51eb0af msr s3_6_c11_c0_5, x15
- 32c8: d53eb0af mrs x15, s3_6_c11_c0_5
- 32cc: d51eb0cf msr s3_6_c11_c0_6, x15
- 32d0: d53eb0cf mrs x15, s3_6_c11_c0_6
- 32d4: d51eb0ef msr s3_6_c11_c0_7, x15
- 32d8: d53eb0ef mrs x15, s3_6_c11_c0_7
- 32dc: d51eb10f msr s3_6_c11_c1_0, x15
- 32e0: d53eb10f mrs x15, s3_6_c11_c1_0
- 32e4: d51eb12f msr s3_6_c11_c1_1, x15
- 32e8: d53eb12f mrs x15, s3_6_c11_c1_1
- 32ec: d51eb14f msr s3_6_c11_c1_2, x15
- 32f0: d53eb14f mrs x15, s3_6_c11_c1_2
- 32f4: d51eb16f msr s3_6_c11_c1_3, x15
- 32f8: d53eb16f mrs x15, s3_6_c11_c1_3
- 32fc: d51eb18f msr s3_6_c11_c1_4, x15
- 3300: d53eb18f mrs x15, s3_6_c11_c1_4
- 3304: d51eb1af msr s3_6_c11_c1_5, x15
- 3308: d53eb1af mrs x15, s3_6_c11_c1_5
- 330c: d51eb1cf msr s3_6_c11_c1_6, x15
- 3310: d53eb1cf mrs x15, s3_6_c11_c1_6
- 3314: d51eb1ef msr s3_6_c11_c1_7, x15
- 3318: d53eb1ef mrs x15, s3_6_c11_c1_7
- 331c: d51eb20f msr s3_6_c11_c2_0, x15
- 3320: d53eb20f mrs x15, s3_6_c11_c2_0
- 3324: d51eb22f msr s3_6_c11_c2_1, x15
- 3328: d53eb22f mrs x15, s3_6_c11_c2_1
- 332c: d51eb24f msr s3_6_c11_c2_2, x15
- 3330: d53eb24f mrs x15, s3_6_c11_c2_2
- 3334: d51eb26f msr s3_6_c11_c2_3, x15
- 3338: d53eb26f mrs x15, s3_6_c11_c2_3
- 333c: d51eb28f msr s3_6_c11_c2_4, x15
- 3340: d53eb28f mrs x15, s3_6_c11_c2_4
- 3344: d51eb2af msr s3_6_c11_c2_5, x15
- 3348: d53eb2af mrs x15, s3_6_c11_c2_5
- 334c: d51eb2cf msr s3_6_c11_c2_6, x15
- 3350: d53eb2cf mrs x15, s3_6_c11_c2_6
- 3354: d51eb2ef msr s3_6_c11_c2_7, x15
- 3358: d53eb2ef mrs x15, s3_6_c11_c2_7
- 335c: d51eb30f msr s3_6_c11_c3_0, x15
- 3360: d53eb30f mrs x15, s3_6_c11_c3_0
- 3364: d51eb32f msr s3_6_c11_c3_1, x15
- 3368: d53eb32f mrs x15, s3_6_c11_c3_1
- 336c: d51eb34f msr s3_6_c11_c3_2, x15
- 3370: d53eb34f mrs x15, s3_6_c11_c3_2
- 3374: d51eb36f msr s3_6_c11_c3_3, x15
- 3378: d53eb36f mrs x15, s3_6_c11_c3_3
- 337c: d51eb38f msr s3_6_c11_c3_4, x15
- 3380: d53eb38f mrs x15, s3_6_c11_c3_4
- 3384: d51eb3af msr s3_6_c11_c3_5, x15
- 3388: d53eb3af mrs x15, s3_6_c11_c3_5
- 338c: d51eb3cf msr s3_6_c11_c3_6, x15
- 3390: d53eb3cf mrs x15, s3_6_c11_c3_6
- 3394: d51eb3ef msr s3_6_c11_c3_7, x15
- 3398: d53eb3ef mrs x15, s3_6_c11_c3_7
- 339c: d51eb40f msr s3_6_c11_c4_0, x15
- 33a0: d53eb40f mrs x15, s3_6_c11_c4_0
- 33a4: d51eb42f msr s3_6_c11_c4_1, x15
- 33a8: d53eb42f mrs x15, s3_6_c11_c4_1
- 33ac: d51eb44f msr s3_6_c11_c4_2, x15
- 33b0: d53eb44f mrs x15, s3_6_c11_c4_2
- 33b4: d51eb46f msr s3_6_c11_c4_3, x15
- 33b8: d53eb46f mrs x15, s3_6_c11_c4_3
- 33bc: d51eb48f msr s3_6_c11_c4_4, x15
- 33c0: d53eb48f mrs x15, s3_6_c11_c4_4
- 33c4: d51eb4af msr s3_6_c11_c4_5, x15
- 33c8: d53eb4af mrs x15, s3_6_c11_c4_5
- 33cc: d51eb4cf msr s3_6_c11_c4_6, x15
- 33d0: d53eb4cf mrs x15, s3_6_c11_c4_6
- 33d4: d51eb4ef msr s3_6_c11_c4_7, x15
- 33d8: d53eb4ef mrs x15, s3_6_c11_c4_7
- 33dc: d51eb50f msr s3_6_c11_c5_0, x15
- 33e0: d53eb50f mrs x15, s3_6_c11_c5_0
- 33e4: d51eb52f msr s3_6_c11_c5_1, x15
- 33e8: d53eb52f mrs x15, s3_6_c11_c5_1
- 33ec: d51eb54f msr s3_6_c11_c5_2, x15
- 33f0: d53eb54f mrs x15, s3_6_c11_c5_2
- 33f4: d51eb56f msr s3_6_c11_c5_3, x15
- 33f8: d53eb56f mrs x15, s3_6_c11_c5_3
- 33fc: d51eb58f msr s3_6_c11_c5_4, x15
- 3400: d53eb58f mrs x15, s3_6_c11_c5_4
- 3404: d51eb5af msr s3_6_c11_c5_5, x15
- 3408: d53eb5af mrs x15, s3_6_c11_c5_5
- 340c: d51eb5cf msr s3_6_c11_c5_6, x15
- 3410: d53eb5cf mrs x15, s3_6_c11_c5_6
- 3414: d51eb5ef msr s3_6_c11_c5_7, x15
- 3418: d53eb5ef mrs x15, s3_6_c11_c5_7
- 341c: d51eb60f msr s3_6_c11_c6_0, x15
- 3420: d53eb60f mrs x15, s3_6_c11_c6_0
- 3424: d51eb62f msr s3_6_c11_c6_1, x15
- 3428: d53eb62f mrs x15, s3_6_c11_c6_1
- 342c: d51eb64f msr s3_6_c11_c6_2, x15
- 3430: d53eb64f mrs x15, s3_6_c11_c6_2
- 3434: d51eb66f msr s3_6_c11_c6_3, x15
- 3438: d53eb66f mrs x15, s3_6_c11_c6_3
- 343c: d51eb68f msr s3_6_c11_c6_4, x15
- 3440: d53eb68f mrs x15, s3_6_c11_c6_4
- 3444: d51eb6af msr s3_6_c11_c6_5, x15
- 3448: d53eb6af mrs x15, s3_6_c11_c6_5
- 344c: d51eb6cf msr s3_6_c11_c6_6, x15
- 3450: d53eb6cf mrs x15, s3_6_c11_c6_6
- 3454: d51eb6ef msr s3_6_c11_c6_7, x15
- 3458: d53eb6ef mrs x15, s3_6_c11_c6_7
- 345c: d51eb70f msr s3_6_c11_c7_0, x15
- 3460: d53eb70f mrs x15, s3_6_c11_c7_0
- 3464: d51eb72f msr s3_6_c11_c7_1, x15
- 3468: d53eb72f mrs x15, s3_6_c11_c7_1
- 346c: d51eb74f msr s3_6_c11_c7_2, x15
- 3470: d53eb74f mrs x15, s3_6_c11_c7_2
- 3474: d51eb76f msr s3_6_c11_c7_3, x15
- 3478: d53eb76f mrs x15, s3_6_c11_c7_3
- 347c: d51eb78f msr s3_6_c11_c7_4, x15
- 3480: d53eb78f mrs x15, s3_6_c11_c7_4
- 3484: d51eb7af msr s3_6_c11_c7_5, x15
- 3488: d53eb7af mrs x15, s3_6_c11_c7_5
- 348c: d51eb7cf msr s3_6_c11_c7_6, x15
- 3490: d53eb7cf mrs x15, s3_6_c11_c7_6
- 3494: d51eb7ef msr s3_6_c11_c7_7, x15
- 3498: d53eb7ef mrs x15, s3_6_c11_c7_7
- 349c: d51eb80f msr s3_6_c11_c8_0, x15
- 34a0: d53eb80f mrs x15, s3_6_c11_c8_0
- 34a4: d51eb82f msr s3_6_c11_c8_1, x15
- 34a8: d53eb82f mrs x15, s3_6_c11_c8_1
- 34ac: d51eb84f msr s3_6_c11_c8_2, x15
- 34b0: d53eb84f mrs x15, s3_6_c11_c8_2
- 34b4: d51eb86f msr s3_6_c11_c8_3, x15
- 34b8: d53eb86f mrs x15, s3_6_c11_c8_3
- 34bc: d51eb88f msr s3_6_c11_c8_4, x15
- 34c0: d53eb88f mrs x15, s3_6_c11_c8_4
- 34c4: d51eb8af msr s3_6_c11_c8_5, x15
- 34c8: d53eb8af mrs x15, s3_6_c11_c8_5
- 34cc: d51eb8cf msr s3_6_c11_c8_6, x15
- 34d0: d53eb8cf mrs x15, s3_6_c11_c8_6
- 34d4: d51eb8ef msr s3_6_c11_c8_7, x15
- 34d8: d53eb8ef mrs x15, s3_6_c11_c8_7
- 34dc: d51eb90f msr s3_6_c11_c9_0, x15
- 34e0: d53eb90f mrs x15, s3_6_c11_c9_0
- 34e4: d51eb92f msr s3_6_c11_c9_1, x15
- 34e8: d53eb92f mrs x15, s3_6_c11_c9_1
- 34ec: d51eb94f msr s3_6_c11_c9_2, x15
- 34f0: d53eb94f mrs x15, s3_6_c11_c9_2
- 34f4: d51eb96f msr s3_6_c11_c9_3, x15
- 34f8: d53eb96f mrs x15, s3_6_c11_c9_3
- 34fc: d51eb98f msr s3_6_c11_c9_4, x15
- 3500: d53eb98f mrs x15, s3_6_c11_c9_4
- 3504: d51eb9af msr s3_6_c11_c9_5, x15
- 3508: d53eb9af mrs x15, s3_6_c11_c9_5
- 350c: d51eb9cf msr s3_6_c11_c9_6, x15
- 3510: d53eb9cf mrs x15, s3_6_c11_c9_6
- 3514: d51eb9ef msr s3_6_c11_c9_7, x15
- 3518: d53eb9ef mrs x15, s3_6_c11_c9_7
- 351c: d51eba0f msr s3_6_c11_c10_0, x15
- 3520: d53eba0f mrs x15, s3_6_c11_c10_0
- 3524: d51eba2f msr s3_6_c11_c10_1, x15
- 3528: d53eba2f mrs x15, s3_6_c11_c10_1
- 352c: d51eba4f msr s3_6_c11_c10_2, x15
- 3530: d53eba4f mrs x15, s3_6_c11_c10_2
- 3534: d51eba6f msr s3_6_c11_c10_3, x15
- 3538: d53eba6f mrs x15, s3_6_c11_c10_3
- 353c: d51eba8f msr s3_6_c11_c10_4, x15
- 3540: d53eba8f mrs x15, s3_6_c11_c10_4
- 3544: d51ebaaf msr s3_6_c11_c10_5, x15
- 3548: d53ebaaf mrs x15, s3_6_c11_c10_5
- 354c: d51ebacf msr s3_6_c11_c10_6, x15
- 3550: d53ebacf mrs x15, s3_6_c11_c10_6
- 3554: d51ebaef msr s3_6_c11_c10_7, x15
- 3558: d53ebaef mrs x15, s3_6_c11_c10_7
- 355c: d51ebb0f msr s3_6_c11_c11_0, x15
- 3560: d53ebb0f mrs x15, s3_6_c11_c11_0
- 3564: d51ebb2f msr s3_6_c11_c11_1, x15
- 3568: d53ebb2f mrs x15, s3_6_c11_c11_1
- 356c: d51ebb4f msr s3_6_c11_c11_2, x15
- 3570: d53ebb4f mrs x15, s3_6_c11_c11_2
- 3574: d51ebb6f msr s3_6_c11_c11_3, x15
- 3578: d53ebb6f mrs x15, s3_6_c11_c11_3
- 357c: d51ebb8f msr s3_6_c11_c11_4, x15
- 3580: d53ebb8f mrs x15, s3_6_c11_c11_4
- 3584: d51ebbaf msr s3_6_c11_c11_5, x15
- 3588: d53ebbaf mrs x15, s3_6_c11_c11_5
- 358c: d51ebbcf msr s3_6_c11_c11_6, x15
- 3590: d53ebbcf mrs x15, s3_6_c11_c11_6
- 3594: d51ebbef msr s3_6_c11_c11_7, x15
- 3598: d53ebbef mrs x15, s3_6_c11_c11_7
- 359c: d51ebc0f msr s3_6_c11_c12_0, x15
- 35a0: d53ebc0f mrs x15, s3_6_c11_c12_0
- 35a4: d51ebc2f msr s3_6_c11_c12_1, x15
- 35a8: d53ebc2f mrs x15, s3_6_c11_c12_1
- 35ac: d51ebc4f msr s3_6_c11_c12_2, x15
- 35b0: d53ebc4f mrs x15, s3_6_c11_c12_2
- 35b4: d51ebc6f msr s3_6_c11_c12_3, x15
- 35b8: d53ebc6f mrs x15, s3_6_c11_c12_3
- 35bc: d51ebc8f msr s3_6_c11_c12_4, x15
- 35c0: d53ebc8f mrs x15, s3_6_c11_c12_4
- 35c4: d51ebcaf msr s3_6_c11_c12_5, x15
- 35c8: d53ebcaf mrs x15, s3_6_c11_c12_5
- 35cc: d51ebccf msr s3_6_c11_c12_6, x15
- 35d0: d53ebccf mrs x15, s3_6_c11_c12_6
- 35d4: d51ebcef msr s3_6_c11_c12_7, x15
- 35d8: d53ebcef mrs x15, s3_6_c11_c12_7
- 35dc: d51ebd0f msr s3_6_c11_c13_0, x15
- 35e0: d53ebd0f mrs x15, s3_6_c11_c13_0
- 35e4: d51ebd2f msr s3_6_c11_c13_1, x15
- 35e8: d53ebd2f mrs x15, s3_6_c11_c13_1
- 35ec: d51ebd4f msr s3_6_c11_c13_2, x15
- 35f0: d53ebd4f mrs x15, s3_6_c11_c13_2
- 35f4: d51ebd6f msr s3_6_c11_c13_3, x15
- 35f8: d53ebd6f mrs x15, s3_6_c11_c13_3
- 35fc: d51ebd8f msr s3_6_c11_c13_4, x15
- 3600: d53ebd8f mrs x15, s3_6_c11_c13_4
- 3604: d51ebdaf msr s3_6_c11_c13_5, x15
- 3608: d53ebdaf mrs x15, s3_6_c11_c13_5
- 360c: d51ebdcf msr s3_6_c11_c13_6, x15
- 3610: d53ebdcf mrs x15, s3_6_c11_c13_6
- 3614: d51ebdef msr s3_6_c11_c13_7, x15
- 3618: d53ebdef mrs x15, s3_6_c11_c13_7
- 361c: d51ebe0f msr s3_6_c11_c14_0, x15
- 3620: d53ebe0f mrs x15, s3_6_c11_c14_0
- 3624: d51ebe2f msr s3_6_c11_c14_1, x15
- 3628: d53ebe2f mrs x15, s3_6_c11_c14_1
- 362c: d51ebe4f msr s3_6_c11_c14_2, x15
- 3630: d53ebe4f mrs x15, s3_6_c11_c14_2
- 3634: d51ebe6f msr s3_6_c11_c14_3, x15
- 3638: d53ebe6f mrs x15, s3_6_c11_c14_3
- 363c: d51ebe8f msr s3_6_c11_c14_4, x15
- 3640: d53ebe8f mrs x15, s3_6_c11_c14_4
- 3644: d51ebeaf msr s3_6_c11_c14_5, x15
- 3648: d53ebeaf mrs x15, s3_6_c11_c14_5
- 364c: d51ebecf msr s3_6_c11_c14_6, x15
- 3650: d53ebecf mrs x15, s3_6_c11_c14_6
- 3654: d51ebeef msr s3_6_c11_c14_7, x15
- 3658: d53ebeef mrs x15, s3_6_c11_c14_7
- 365c: d51ebf0f msr s3_6_c11_c15_0, x15
- 3660: d53ebf0f mrs x15, s3_6_c11_c15_0
- 3664: d51ebf2f msr s3_6_c11_c15_1, x15
- 3668: d53ebf2f mrs x15, s3_6_c11_c15_1
- 366c: d51ebf4f msr s3_6_c11_c15_2, x15
- 3670: d53ebf4f mrs x15, s3_6_c11_c15_2
- 3674: d51ebf6f msr s3_6_c11_c15_3, x15
- 3678: d53ebf6f mrs x15, s3_6_c11_c15_3
- 367c: d51ebf8f msr s3_6_c11_c15_4, x15
- 3680: d53ebf8f mrs x15, s3_6_c11_c15_4
- 3684: d51ebfaf msr s3_6_c11_c15_5, x15
- 3688: d53ebfaf mrs x15, s3_6_c11_c15_5
- 368c: d51ebfcf msr s3_6_c11_c15_6, x15
- 3690: d53ebfcf mrs x15, s3_6_c11_c15_6
- 3694: d51ebfef msr s3_6_c11_c15_7, x15
- 3698: d53ebfef mrs x15, s3_6_c11_c15_7
- 369c: d51ef00f msr s3_6_c15_c0_0, x15
- 36a0: d53ef00f mrs x15, s3_6_c15_c0_0
- 36a4: d51ef02f msr s3_6_c15_c0_1, x15
- 36a8: d53ef02f mrs x15, s3_6_c15_c0_1
- 36ac: d51ef04f msr s3_6_c15_c0_2, x15
- 36b0: d53ef04f mrs x15, s3_6_c15_c0_2
- 36b4: d51ef06f msr s3_6_c15_c0_3, x15
- 36b8: d53ef06f mrs x15, s3_6_c15_c0_3
- 36bc: d51ef08f msr s3_6_c15_c0_4, x15
- 36c0: d53ef08f mrs x15, s3_6_c15_c0_4
- 36c4: d51ef0af msr s3_6_c15_c0_5, x15
- 36c8: d53ef0af mrs x15, s3_6_c15_c0_5
- 36cc: d51ef0cf msr s3_6_c15_c0_6, x15
- 36d0: d53ef0cf mrs x15, s3_6_c15_c0_6
- 36d4: d51ef0ef msr s3_6_c15_c0_7, x15
- 36d8: d53ef0ef mrs x15, s3_6_c15_c0_7
- 36dc: d51ef10f msr s3_6_c15_c1_0, x15
- 36e0: d53ef10f mrs x15, s3_6_c15_c1_0
- 36e4: d51ef12f msr s3_6_c15_c1_1, x15
- 36e8: d53ef12f mrs x15, s3_6_c15_c1_1
- 36ec: d51ef14f msr s3_6_c15_c1_2, x15
- 36f0: d53ef14f mrs x15, s3_6_c15_c1_2
- 36f4: d51ef16f msr s3_6_c15_c1_3, x15
- 36f8: d53ef16f mrs x15, s3_6_c15_c1_3
- 36fc: d51ef18f msr s3_6_c15_c1_4, x15
- 3700: d53ef18f mrs x15, s3_6_c15_c1_4
- 3704: d51ef1af msr s3_6_c15_c1_5, x15
- 3708: d53ef1af mrs x15, s3_6_c15_c1_5
- 370c: d51ef1cf msr s3_6_c15_c1_6, x15
- 3710: d53ef1cf mrs x15, s3_6_c15_c1_6
- 3714: d51ef1ef msr s3_6_c15_c1_7, x15
- 3718: d53ef1ef mrs x15, s3_6_c15_c1_7
- 371c: d51ef20f msr s3_6_c15_c2_0, x15
- 3720: d53ef20f mrs x15, s3_6_c15_c2_0
- 3724: d51ef22f msr s3_6_c15_c2_1, x15
- 3728: d53ef22f mrs x15, s3_6_c15_c2_1
- 372c: d51ef24f msr s3_6_c15_c2_2, x15
- 3730: d53ef24f mrs x15, s3_6_c15_c2_2
- 3734: d51ef26f msr s3_6_c15_c2_3, x15
- 3738: d53ef26f mrs x15, s3_6_c15_c2_3
- 373c: d51ef28f msr s3_6_c15_c2_4, x15
- 3740: d53ef28f mrs x15, s3_6_c15_c2_4
- 3744: d51ef2af msr s3_6_c15_c2_5, x15
- 3748: d53ef2af mrs x15, s3_6_c15_c2_5
- 374c: d51ef2cf msr s3_6_c15_c2_6, x15
- 3750: d53ef2cf mrs x15, s3_6_c15_c2_6
- 3754: d51ef2ef msr s3_6_c15_c2_7, x15
- 3758: d53ef2ef mrs x15, s3_6_c15_c2_7
- 375c: d51ef30f msr s3_6_c15_c3_0, x15
- 3760: d53ef30f mrs x15, s3_6_c15_c3_0
- 3764: d51ef32f msr s3_6_c15_c3_1, x15
- 3768: d53ef32f mrs x15, s3_6_c15_c3_1
- 376c: d51ef34f msr s3_6_c15_c3_2, x15
- 3770: d53ef34f mrs x15, s3_6_c15_c3_2
- 3774: d51ef36f msr s3_6_c15_c3_3, x15
- 3778: d53ef36f mrs x15, s3_6_c15_c3_3
- 377c: d51ef38f msr s3_6_c15_c3_4, x15
- 3780: d53ef38f mrs x15, s3_6_c15_c3_4
- 3784: d51ef3af msr s3_6_c15_c3_5, x15
- 3788: d53ef3af mrs x15, s3_6_c15_c3_5
- 378c: d51ef3cf msr s3_6_c15_c3_6, x15
- 3790: d53ef3cf mrs x15, s3_6_c15_c3_6
- 3794: d51ef3ef msr s3_6_c15_c3_7, x15
- 3798: d53ef3ef mrs x15, s3_6_c15_c3_7
- 379c: d51ef40f msr s3_6_c15_c4_0, x15
- 37a0: d53ef40f mrs x15, s3_6_c15_c4_0
- 37a4: d51ef42f msr s3_6_c15_c4_1, x15
- 37a8: d53ef42f mrs x15, s3_6_c15_c4_1
- 37ac: d51ef44f msr s3_6_c15_c4_2, x15
- 37b0: d53ef44f mrs x15, s3_6_c15_c4_2
- 37b4: d51ef46f msr s3_6_c15_c4_3, x15
- 37b8: d53ef46f mrs x15, s3_6_c15_c4_3
- 37bc: d51ef48f msr s3_6_c15_c4_4, x15
- 37c0: d53ef48f mrs x15, s3_6_c15_c4_4
- 37c4: d51ef4af msr s3_6_c15_c4_5, x15
- 37c8: d53ef4af mrs x15, s3_6_c15_c4_5
- 37cc: d51ef4cf msr s3_6_c15_c4_6, x15
- 37d0: d53ef4cf mrs x15, s3_6_c15_c4_6
- 37d4: d51ef4ef msr s3_6_c15_c4_7, x15
- 37d8: d53ef4ef mrs x15, s3_6_c15_c4_7
- 37dc: d51ef50f msr s3_6_c15_c5_0, x15
- 37e0: d53ef50f mrs x15, s3_6_c15_c5_0
- 37e4: d51ef52f msr s3_6_c15_c5_1, x15
- 37e8: d53ef52f mrs x15, s3_6_c15_c5_1
- 37ec: d51ef54f msr s3_6_c15_c5_2, x15
- 37f0: d53ef54f mrs x15, s3_6_c15_c5_2
- 37f4: d51ef56f msr s3_6_c15_c5_3, x15
- 37f8: d53ef56f mrs x15, s3_6_c15_c5_3
- 37fc: d51ef58f msr s3_6_c15_c5_4, x15
- 3800: d53ef58f mrs x15, s3_6_c15_c5_4
- 3804: d51ef5af msr s3_6_c15_c5_5, x15
- 3808: d53ef5af mrs x15, s3_6_c15_c5_5
- 380c: d51ef5cf msr s3_6_c15_c5_6, x15
- 3810: d53ef5cf mrs x15, s3_6_c15_c5_6
- 3814: d51ef5ef msr s3_6_c15_c5_7, x15
- 3818: d53ef5ef mrs x15, s3_6_c15_c5_7
- 381c: d51ef60f msr s3_6_c15_c6_0, x15
- 3820: d53ef60f mrs x15, s3_6_c15_c6_0
- 3824: d51ef62f msr s3_6_c15_c6_1, x15
- 3828: d53ef62f mrs x15, s3_6_c15_c6_1
- 382c: d51ef64f msr s3_6_c15_c6_2, x15
- 3830: d53ef64f mrs x15, s3_6_c15_c6_2
- 3834: d51ef66f msr s3_6_c15_c6_3, x15
- 3838: d53ef66f mrs x15, s3_6_c15_c6_3
- 383c: d51ef68f msr s3_6_c15_c6_4, x15
- 3840: d53ef68f mrs x15, s3_6_c15_c6_4
- 3844: d51ef6af msr s3_6_c15_c6_5, x15
- 3848: d53ef6af mrs x15, s3_6_c15_c6_5
- 384c: d51ef6cf msr s3_6_c15_c6_6, x15
- 3850: d53ef6cf mrs x15, s3_6_c15_c6_6
- 3854: d51ef6ef msr s3_6_c15_c6_7, x15
- 3858: d53ef6ef mrs x15, s3_6_c15_c6_7
- 385c: d51ef70f msr s3_6_c15_c7_0, x15
- 3860: d53ef70f mrs x15, s3_6_c15_c7_0
- 3864: d51ef72f msr s3_6_c15_c7_1, x15
- 3868: d53ef72f mrs x15, s3_6_c15_c7_1
- 386c: d51ef74f msr s3_6_c15_c7_2, x15
- 3870: d53ef74f mrs x15, s3_6_c15_c7_2
- 3874: d51ef76f msr s3_6_c15_c7_3, x15
- 3878: d53ef76f mrs x15, s3_6_c15_c7_3
- 387c: d51ef78f msr s3_6_c15_c7_4, x15
- 3880: d53ef78f mrs x15, s3_6_c15_c7_4
- 3884: d51ef7af msr s3_6_c15_c7_5, x15
- 3888: d53ef7af mrs x15, s3_6_c15_c7_5
- 388c: d51ef7cf msr s3_6_c15_c7_6, x15
- 3890: d53ef7cf mrs x15, s3_6_c15_c7_6
- 3894: d51ef7ef msr s3_6_c15_c7_7, x15
- 3898: d53ef7ef mrs x15, s3_6_c15_c7_7
- 389c: d51ef80f msr s3_6_c15_c8_0, x15
- 38a0: d53ef80f mrs x15, s3_6_c15_c8_0
- 38a4: d51ef82f msr s3_6_c15_c8_1, x15
- 38a8: d53ef82f mrs x15, s3_6_c15_c8_1
- 38ac: d51ef84f msr s3_6_c15_c8_2, x15
- 38b0: d53ef84f mrs x15, s3_6_c15_c8_2
- 38b4: d51ef86f msr s3_6_c15_c8_3, x15
- 38b8: d53ef86f mrs x15, s3_6_c15_c8_3
- 38bc: d51ef88f msr s3_6_c15_c8_4, x15
- 38c0: d53ef88f mrs x15, s3_6_c15_c8_4
- 38c4: d51ef8af msr s3_6_c15_c8_5, x15
- 38c8: d53ef8af mrs x15, s3_6_c15_c8_5
- 38cc: d51ef8cf msr s3_6_c15_c8_6, x15
- 38d0: d53ef8cf mrs x15, s3_6_c15_c8_6
- 38d4: d51ef8ef msr s3_6_c15_c8_7, x15
- 38d8: d53ef8ef mrs x15, s3_6_c15_c8_7
- 38dc: d51ef90f msr s3_6_c15_c9_0, x15
- 38e0: d53ef90f mrs x15, s3_6_c15_c9_0
- 38e4: d51ef92f msr s3_6_c15_c9_1, x15
- 38e8: d53ef92f mrs x15, s3_6_c15_c9_1
- 38ec: d51ef94f msr s3_6_c15_c9_2, x15
- 38f0: d53ef94f mrs x15, s3_6_c15_c9_2
- 38f4: d51ef96f msr s3_6_c15_c9_3, x15
- 38f8: d53ef96f mrs x15, s3_6_c15_c9_3
- 38fc: d51ef98f msr s3_6_c15_c9_4, x15
- 3900: d53ef98f mrs x15, s3_6_c15_c9_4
- 3904: d51ef9af msr s3_6_c15_c9_5, x15
- 3908: d53ef9af mrs x15, s3_6_c15_c9_5
- 390c: d51ef9cf msr s3_6_c15_c9_6, x15
- 3910: d53ef9cf mrs x15, s3_6_c15_c9_6
- 3914: d51ef9ef msr s3_6_c15_c9_7, x15
- 3918: d53ef9ef mrs x15, s3_6_c15_c9_7
- 391c: d51efa0f msr s3_6_c15_c10_0, x15
- 3920: d53efa0f mrs x15, s3_6_c15_c10_0
- 3924: d51efa2f msr s3_6_c15_c10_1, x15
- 3928: d53efa2f mrs x15, s3_6_c15_c10_1
- 392c: d51efa4f msr s3_6_c15_c10_2, x15
- 3930: d53efa4f mrs x15, s3_6_c15_c10_2
- 3934: d51efa6f msr s3_6_c15_c10_3, x15
- 3938: d53efa6f mrs x15, s3_6_c15_c10_3
- 393c: d51efa8f msr s3_6_c15_c10_4, x15
- 3940: d53efa8f mrs x15, s3_6_c15_c10_4
- 3944: d51efaaf msr s3_6_c15_c10_5, x15
- 3948: d53efaaf mrs x15, s3_6_c15_c10_5
- 394c: d51efacf msr s3_6_c15_c10_6, x15
- 3950: d53efacf mrs x15, s3_6_c15_c10_6
- 3954: d51efaef msr s3_6_c15_c10_7, x15
- 3958: d53efaef mrs x15, s3_6_c15_c10_7
- 395c: d51efb0f msr s3_6_c15_c11_0, x15
- 3960: d53efb0f mrs x15, s3_6_c15_c11_0
- 3964: d51efb2f msr s3_6_c15_c11_1, x15
- 3968: d53efb2f mrs x15, s3_6_c15_c11_1
- 396c: d51efb4f msr s3_6_c15_c11_2, x15
- 3970: d53efb4f mrs x15, s3_6_c15_c11_2
- 3974: d51efb6f msr s3_6_c15_c11_3, x15
- 3978: d53efb6f mrs x15, s3_6_c15_c11_3
- 397c: d51efb8f msr s3_6_c15_c11_4, x15
- 3980: d53efb8f mrs x15, s3_6_c15_c11_4
- 3984: d51efbaf msr s3_6_c15_c11_5, x15
- 3988: d53efbaf mrs x15, s3_6_c15_c11_5
- 398c: d51efbcf msr s3_6_c15_c11_6, x15
- 3990: d53efbcf mrs x15, s3_6_c15_c11_6
- 3994: d51efbef msr s3_6_c15_c11_7, x15
- 3998: d53efbef mrs x15, s3_6_c15_c11_7
- 399c: d51efc0f msr s3_6_c15_c12_0, x15
- 39a0: d53efc0f mrs x15, s3_6_c15_c12_0
- 39a4: d51efc2f msr s3_6_c15_c12_1, x15
- 39a8: d53efc2f mrs x15, s3_6_c15_c12_1
- 39ac: d51efc4f msr s3_6_c15_c12_2, x15
- 39b0: d53efc4f mrs x15, s3_6_c15_c12_2
- 39b4: d51efc6f msr s3_6_c15_c12_3, x15
- 39b8: d53efc6f mrs x15, s3_6_c15_c12_3
- 39bc: d51efc8f msr s3_6_c15_c12_4, x15
- 39c0: d53efc8f mrs x15, s3_6_c15_c12_4
- 39c4: d51efcaf msr s3_6_c15_c12_5, x15
- 39c8: d53efcaf mrs x15, s3_6_c15_c12_5
- 39cc: d51efccf msr s3_6_c15_c12_6, x15
- 39d0: d53efccf mrs x15, s3_6_c15_c12_6
- 39d4: d51efcef msr s3_6_c15_c12_7, x15
- 39d8: d53efcef mrs x15, s3_6_c15_c12_7
- 39dc: d51efd0f msr s3_6_c15_c13_0, x15
- 39e0: d53efd0f mrs x15, s3_6_c15_c13_0
- 39e4: d51efd2f msr s3_6_c15_c13_1, x15
- 39e8: d53efd2f mrs x15, s3_6_c15_c13_1
- 39ec: d51efd4f msr s3_6_c15_c13_2, x15
- 39f0: d53efd4f mrs x15, s3_6_c15_c13_2
- 39f4: d51efd6f msr s3_6_c15_c13_3, x15
- 39f8: d53efd6f mrs x15, s3_6_c15_c13_3
- 39fc: d51efd8f msr s3_6_c15_c13_4, x15
- 3a00: d53efd8f mrs x15, s3_6_c15_c13_4
- 3a04: d51efdaf msr s3_6_c15_c13_5, x15
- 3a08: d53efdaf mrs x15, s3_6_c15_c13_5
- 3a0c: d51efdcf msr s3_6_c15_c13_6, x15
- 3a10: d53efdcf mrs x15, s3_6_c15_c13_6
- 3a14: d51efdef msr s3_6_c15_c13_7, x15
- 3a18: d53efdef mrs x15, s3_6_c15_c13_7
- 3a1c: d51efe0f msr s3_6_c15_c14_0, x15
- 3a20: d53efe0f mrs x15, s3_6_c15_c14_0
- 3a24: d51efe2f msr s3_6_c15_c14_1, x15
- 3a28: d53efe2f mrs x15, s3_6_c15_c14_1
- 3a2c: d51efe4f msr s3_6_c15_c14_2, x15
- 3a30: d53efe4f mrs x15, s3_6_c15_c14_2
- 3a34: d51efe6f msr s3_6_c15_c14_3, x15
- 3a38: d53efe6f mrs x15, s3_6_c15_c14_3
- 3a3c: d51efe8f msr s3_6_c15_c14_4, x15
- 3a40: d53efe8f mrs x15, s3_6_c15_c14_4
- 3a44: d51efeaf msr s3_6_c15_c14_5, x15
- 3a48: d53efeaf mrs x15, s3_6_c15_c14_5
- 3a4c: d51efecf msr s3_6_c15_c14_6, x15
- 3a50: d53efecf mrs x15, s3_6_c15_c14_6
- 3a54: d51efeef msr s3_6_c15_c14_7, x15
- 3a58: d53efeef mrs x15, s3_6_c15_c14_7
- 3a5c: d51eff0f msr s3_6_c15_c15_0, x15
- 3a60: d53eff0f mrs x15, s3_6_c15_c15_0
- 3a64: d51eff2f msr s3_6_c15_c15_1, x15
- 3a68: d53eff2f mrs x15, s3_6_c15_c15_1
- 3a6c: d51eff4f msr s3_6_c15_c15_2, x15
- 3a70: d53eff4f mrs x15, s3_6_c15_c15_2
- 3a74: d51eff6f msr s3_6_c15_c15_3, x15
- 3a78: d53eff6f mrs x15, s3_6_c15_c15_3
- 3a7c: d51eff8f msr s3_6_c15_c15_4, x15
- 3a80: d53eff8f mrs x15, s3_6_c15_c15_4
- 3a84: d51effaf msr s3_6_c15_c15_5, x15
- 3a88: d53effaf mrs x15, s3_6_c15_c15_5
- 3a8c: d51effcf msr s3_6_c15_c15_6, x15
- 3a90: d53effcf mrs x15, s3_6_c15_c15_6
- 3a94: d51effef msr s3_6_c15_c15_7, x15
- 3a98: d53effef mrs x15, s3_6_c15_c15_7
- 3a9c: d51fb00f msr s3_7_c11_c0_0, x15
- 3aa0: d53fb00f mrs x15, s3_7_c11_c0_0
- 3aa4: d51fb02f msr s3_7_c11_c0_1, x15
- 3aa8: d53fb02f mrs x15, s3_7_c11_c0_1
- 3aac: d51fb04f msr s3_7_c11_c0_2, x15
- 3ab0: d53fb04f mrs x15, s3_7_c11_c0_2
- 3ab4: d51fb06f msr s3_7_c11_c0_3, x15
- 3ab8: d53fb06f mrs x15, s3_7_c11_c0_3
- 3abc: d51fb08f msr s3_7_c11_c0_4, x15
- 3ac0: d53fb08f mrs x15, s3_7_c11_c0_4
- 3ac4: d51fb0af msr s3_7_c11_c0_5, x15
- 3ac8: d53fb0af mrs x15, s3_7_c11_c0_5
- 3acc: d51fb0cf msr s3_7_c11_c0_6, x15
- 3ad0: d53fb0cf mrs x15, s3_7_c11_c0_6
- 3ad4: d51fb0ef msr s3_7_c11_c0_7, x15
- 3ad8: d53fb0ef mrs x15, s3_7_c11_c0_7
- 3adc: d51fb10f msr s3_7_c11_c1_0, x15
- 3ae0: d53fb10f mrs x15, s3_7_c11_c1_0
- 3ae4: d51fb12f msr s3_7_c11_c1_1, x15
- 3ae8: d53fb12f mrs x15, s3_7_c11_c1_1
- 3aec: d51fb14f msr s3_7_c11_c1_2, x15
- 3af0: d53fb14f mrs x15, s3_7_c11_c1_2
- 3af4: d51fb16f msr s3_7_c11_c1_3, x15
- 3af8: d53fb16f mrs x15, s3_7_c11_c1_3
- 3afc: d51fb18f msr s3_7_c11_c1_4, x15
- 3b00: d53fb18f mrs x15, s3_7_c11_c1_4
- 3b04: d51fb1af msr s3_7_c11_c1_5, x15
- 3b08: d53fb1af mrs x15, s3_7_c11_c1_5
- 3b0c: d51fb1cf msr s3_7_c11_c1_6, x15
- 3b10: d53fb1cf mrs x15, s3_7_c11_c1_6
- 3b14: d51fb1ef msr s3_7_c11_c1_7, x15
- 3b18: d53fb1ef mrs x15, s3_7_c11_c1_7
- 3b1c: d51fb20f msr s3_7_c11_c2_0, x15
- 3b20: d53fb20f mrs x15, s3_7_c11_c2_0
- 3b24: d51fb22f msr s3_7_c11_c2_1, x15
- 3b28: d53fb22f mrs x15, s3_7_c11_c2_1
- 3b2c: d51fb24f msr s3_7_c11_c2_2, x15
- 3b30: d53fb24f mrs x15, s3_7_c11_c2_2
- 3b34: d51fb26f msr s3_7_c11_c2_3, x15
- 3b38: d53fb26f mrs x15, s3_7_c11_c2_3
- 3b3c: d51fb28f msr s3_7_c11_c2_4, x15
- 3b40: d53fb28f mrs x15, s3_7_c11_c2_4
- 3b44: d51fb2af msr s3_7_c11_c2_5, x15
- 3b48: d53fb2af mrs x15, s3_7_c11_c2_5
- 3b4c: d51fb2cf msr s3_7_c11_c2_6, x15
- 3b50: d53fb2cf mrs x15, s3_7_c11_c2_6
- 3b54: d51fb2ef msr s3_7_c11_c2_7, x15
- 3b58: d53fb2ef mrs x15, s3_7_c11_c2_7
- 3b5c: d51fb30f msr s3_7_c11_c3_0, x15
- 3b60: d53fb30f mrs x15, s3_7_c11_c3_0
- 3b64: d51fb32f msr s3_7_c11_c3_1, x15
- 3b68: d53fb32f mrs x15, s3_7_c11_c3_1
- 3b6c: d51fb34f msr s3_7_c11_c3_2, x15
- 3b70: d53fb34f mrs x15, s3_7_c11_c3_2
- 3b74: d51fb36f msr s3_7_c11_c3_3, x15
- 3b78: d53fb36f mrs x15, s3_7_c11_c3_3
- 3b7c: d51fb38f msr s3_7_c11_c3_4, x15
- 3b80: d53fb38f mrs x15, s3_7_c11_c3_4
- 3b84: d51fb3af msr s3_7_c11_c3_5, x15
- 3b88: d53fb3af mrs x15, s3_7_c11_c3_5
- 3b8c: d51fb3cf msr s3_7_c11_c3_6, x15
- 3b90: d53fb3cf mrs x15, s3_7_c11_c3_6
- 3b94: d51fb3ef msr s3_7_c11_c3_7, x15
- 3b98: d53fb3ef mrs x15, s3_7_c11_c3_7
- 3b9c: d51fb40f msr s3_7_c11_c4_0, x15
- 3ba0: d53fb40f mrs x15, s3_7_c11_c4_0
- 3ba4: d51fb42f msr s3_7_c11_c4_1, x15
- 3ba8: d53fb42f mrs x15, s3_7_c11_c4_1
- 3bac: d51fb44f msr s3_7_c11_c4_2, x15
- 3bb0: d53fb44f mrs x15, s3_7_c11_c4_2
- 3bb4: d51fb46f msr s3_7_c11_c4_3, x15
- 3bb8: d53fb46f mrs x15, s3_7_c11_c4_3
- 3bbc: d51fb48f msr s3_7_c11_c4_4, x15
- 3bc0: d53fb48f mrs x15, s3_7_c11_c4_4
- 3bc4: d51fb4af msr s3_7_c11_c4_5, x15
- 3bc8: d53fb4af mrs x15, s3_7_c11_c4_5
- 3bcc: d51fb4cf msr s3_7_c11_c4_6, x15
- 3bd0: d53fb4cf mrs x15, s3_7_c11_c4_6
- 3bd4: d51fb4ef msr s3_7_c11_c4_7, x15
- 3bd8: d53fb4ef mrs x15, s3_7_c11_c4_7
- 3bdc: d51fb50f msr s3_7_c11_c5_0, x15
- 3be0: d53fb50f mrs x15, s3_7_c11_c5_0
- 3be4: d51fb52f msr s3_7_c11_c5_1, x15
- 3be8: d53fb52f mrs x15, s3_7_c11_c5_1
- 3bec: d51fb54f msr s3_7_c11_c5_2, x15
- 3bf0: d53fb54f mrs x15, s3_7_c11_c5_2
- 3bf4: d51fb56f msr s3_7_c11_c5_3, x15
- 3bf8: d53fb56f mrs x15, s3_7_c11_c5_3
- 3bfc: d51fb58f msr s3_7_c11_c5_4, x15
- 3c00: d53fb58f mrs x15, s3_7_c11_c5_4
- 3c04: d51fb5af msr s3_7_c11_c5_5, x15
- 3c08: d53fb5af mrs x15, s3_7_c11_c5_5
- 3c0c: d51fb5cf msr s3_7_c11_c5_6, x15
- 3c10: d53fb5cf mrs x15, s3_7_c11_c5_6
- 3c14: d51fb5ef msr s3_7_c11_c5_7, x15
- 3c18: d53fb5ef mrs x15, s3_7_c11_c5_7
- 3c1c: d51fb60f msr s3_7_c11_c6_0, x15
- 3c20: d53fb60f mrs x15, s3_7_c11_c6_0
- 3c24: d51fb62f msr s3_7_c11_c6_1, x15
- 3c28: d53fb62f mrs x15, s3_7_c11_c6_1
- 3c2c: d51fb64f msr s3_7_c11_c6_2, x15
- 3c30: d53fb64f mrs x15, s3_7_c11_c6_2
- 3c34: d51fb66f msr s3_7_c11_c6_3, x15
- 3c38: d53fb66f mrs x15, s3_7_c11_c6_3
- 3c3c: d51fb68f msr s3_7_c11_c6_4, x15
- 3c40: d53fb68f mrs x15, s3_7_c11_c6_4
- 3c44: d51fb6af msr s3_7_c11_c6_5, x15
- 3c48: d53fb6af mrs x15, s3_7_c11_c6_5
- 3c4c: d51fb6cf msr s3_7_c11_c6_6, x15
- 3c50: d53fb6cf mrs x15, s3_7_c11_c6_6
- 3c54: d51fb6ef msr s3_7_c11_c6_7, x15
- 3c58: d53fb6ef mrs x15, s3_7_c11_c6_7
- 3c5c: d51fb70f msr s3_7_c11_c7_0, x15
- 3c60: d53fb70f mrs x15, s3_7_c11_c7_0
- 3c64: d51fb72f msr s3_7_c11_c7_1, x15
- 3c68: d53fb72f mrs x15, s3_7_c11_c7_1
- 3c6c: d51fb74f msr s3_7_c11_c7_2, x15
- 3c70: d53fb74f mrs x15, s3_7_c11_c7_2
- 3c74: d51fb76f msr s3_7_c11_c7_3, x15
- 3c78: d53fb76f mrs x15, s3_7_c11_c7_3
- 3c7c: d51fb78f msr s3_7_c11_c7_4, x15
- 3c80: d53fb78f mrs x15, s3_7_c11_c7_4
- 3c84: d51fb7af msr s3_7_c11_c7_5, x15
- 3c88: d53fb7af mrs x15, s3_7_c11_c7_5
- 3c8c: d51fb7cf msr s3_7_c11_c7_6, x15
- 3c90: d53fb7cf mrs x15, s3_7_c11_c7_6
- 3c94: d51fb7ef msr s3_7_c11_c7_7, x15
- 3c98: d53fb7ef mrs x15, s3_7_c11_c7_7
- 3c9c: d51fb80f msr s3_7_c11_c8_0, x15
- 3ca0: d53fb80f mrs x15, s3_7_c11_c8_0
- 3ca4: d51fb82f msr s3_7_c11_c8_1, x15
- 3ca8: d53fb82f mrs x15, s3_7_c11_c8_1
- 3cac: d51fb84f msr s3_7_c11_c8_2, x15
- 3cb0: d53fb84f mrs x15, s3_7_c11_c8_2
- 3cb4: d51fb86f msr s3_7_c11_c8_3, x15
- 3cb8: d53fb86f mrs x15, s3_7_c11_c8_3
- 3cbc: d51fb88f msr s3_7_c11_c8_4, x15
- 3cc0: d53fb88f mrs x15, s3_7_c11_c8_4
- 3cc4: d51fb8af msr s3_7_c11_c8_5, x15
- 3cc8: d53fb8af mrs x15, s3_7_c11_c8_5
- 3ccc: d51fb8cf msr s3_7_c11_c8_6, x15
- 3cd0: d53fb8cf mrs x15, s3_7_c11_c8_6
- 3cd4: d51fb8ef msr s3_7_c11_c8_7, x15
- 3cd8: d53fb8ef mrs x15, s3_7_c11_c8_7
- 3cdc: d51fb90f msr s3_7_c11_c9_0, x15
- 3ce0: d53fb90f mrs x15, s3_7_c11_c9_0
- 3ce4: d51fb92f msr s3_7_c11_c9_1, x15
- 3ce8: d53fb92f mrs x15, s3_7_c11_c9_1
- 3cec: d51fb94f msr s3_7_c11_c9_2, x15
- 3cf0: d53fb94f mrs x15, s3_7_c11_c9_2
- 3cf4: d51fb96f msr s3_7_c11_c9_3, x15
- 3cf8: d53fb96f mrs x15, s3_7_c11_c9_3
- 3cfc: d51fb98f msr s3_7_c11_c9_4, x15
- 3d00: d53fb98f mrs x15, s3_7_c11_c9_4
- 3d04: d51fb9af msr s3_7_c11_c9_5, x15
- 3d08: d53fb9af mrs x15, s3_7_c11_c9_5
- 3d0c: d51fb9cf msr s3_7_c11_c9_6, x15
- 3d10: d53fb9cf mrs x15, s3_7_c11_c9_6
- 3d14: d51fb9ef msr s3_7_c11_c9_7, x15
- 3d18: d53fb9ef mrs x15, s3_7_c11_c9_7
- 3d1c: d51fba0f msr s3_7_c11_c10_0, x15
- 3d20: d53fba0f mrs x15, s3_7_c11_c10_0
- 3d24: d51fba2f msr s3_7_c11_c10_1, x15
- 3d28: d53fba2f mrs x15, s3_7_c11_c10_1
- 3d2c: d51fba4f msr s3_7_c11_c10_2, x15
- 3d30: d53fba4f mrs x15, s3_7_c11_c10_2
- 3d34: d51fba6f msr s3_7_c11_c10_3, x15
- 3d38: d53fba6f mrs x15, s3_7_c11_c10_3
- 3d3c: d51fba8f msr s3_7_c11_c10_4, x15
- 3d40: d53fba8f mrs x15, s3_7_c11_c10_4
- 3d44: d51fbaaf msr s3_7_c11_c10_5, x15
- 3d48: d53fbaaf mrs x15, s3_7_c11_c10_5
- 3d4c: d51fbacf msr s3_7_c11_c10_6, x15
- 3d50: d53fbacf mrs x15, s3_7_c11_c10_6
- 3d54: d51fbaef msr s3_7_c11_c10_7, x15
- 3d58: d53fbaef mrs x15, s3_7_c11_c10_7
- 3d5c: d51fbb0f msr s3_7_c11_c11_0, x15
- 3d60: d53fbb0f mrs x15, s3_7_c11_c11_0
- 3d64: d51fbb2f msr s3_7_c11_c11_1, x15
- 3d68: d53fbb2f mrs x15, s3_7_c11_c11_1
- 3d6c: d51fbb4f msr s3_7_c11_c11_2, x15
- 3d70: d53fbb4f mrs x15, s3_7_c11_c11_2
- 3d74: d51fbb6f msr s3_7_c11_c11_3, x15
- 3d78: d53fbb6f mrs x15, s3_7_c11_c11_3
- 3d7c: d51fbb8f msr s3_7_c11_c11_4, x15
- 3d80: d53fbb8f mrs x15, s3_7_c11_c11_4
- 3d84: d51fbbaf msr s3_7_c11_c11_5, x15
- 3d88: d53fbbaf mrs x15, s3_7_c11_c11_5
- 3d8c: d51fbbcf msr s3_7_c11_c11_6, x15
- 3d90: d53fbbcf mrs x15, s3_7_c11_c11_6
- 3d94: d51fbbef msr s3_7_c11_c11_7, x15
- 3d98: d53fbbef mrs x15, s3_7_c11_c11_7
- 3d9c: d51fbc0f msr s3_7_c11_c12_0, x15
- 3da0: d53fbc0f mrs x15, s3_7_c11_c12_0
- 3da4: d51fbc2f msr s3_7_c11_c12_1, x15
- 3da8: d53fbc2f mrs x15, s3_7_c11_c12_1
- 3dac: d51fbc4f msr s3_7_c11_c12_2, x15
- 3db0: d53fbc4f mrs x15, s3_7_c11_c12_2
- 3db4: d51fbc6f msr s3_7_c11_c12_3, x15
- 3db8: d53fbc6f mrs x15, s3_7_c11_c12_3
- 3dbc: d51fbc8f msr s3_7_c11_c12_4, x15
- 3dc0: d53fbc8f mrs x15, s3_7_c11_c12_4
- 3dc4: d51fbcaf msr s3_7_c11_c12_5, x15
- 3dc8: d53fbcaf mrs x15, s3_7_c11_c12_5
- 3dcc: d51fbccf msr s3_7_c11_c12_6, x15
- 3dd0: d53fbccf mrs x15, s3_7_c11_c12_6
- 3dd4: d51fbcef msr s3_7_c11_c12_7, x15
- 3dd8: d53fbcef mrs x15, s3_7_c11_c12_7
- 3ddc: d51fbd0f msr s3_7_c11_c13_0, x15
- 3de0: d53fbd0f mrs x15, s3_7_c11_c13_0
- 3de4: d51fbd2f msr s3_7_c11_c13_1, x15
- 3de8: d53fbd2f mrs x15, s3_7_c11_c13_1
- 3dec: d51fbd4f msr s3_7_c11_c13_2, x15
- 3df0: d53fbd4f mrs x15, s3_7_c11_c13_2
- 3df4: d51fbd6f msr s3_7_c11_c13_3, x15
- 3df8: d53fbd6f mrs x15, s3_7_c11_c13_3
- 3dfc: d51fbd8f msr s3_7_c11_c13_4, x15
- 3e00: d53fbd8f mrs x15, s3_7_c11_c13_4
- 3e04: d51fbdaf msr s3_7_c11_c13_5, x15
- 3e08: d53fbdaf mrs x15, s3_7_c11_c13_5
- 3e0c: d51fbdcf msr s3_7_c11_c13_6, x15
- 3e10: d53fbdcf mrs x15, s3_7_c11_c13_6
- 3e14: d51fbdef msr s3_7_c11_c13_7, x15
- 3e18: d53fbdef mrs x15, s3_7_c11_c13_7
- 3e1c: d51fbe0f msr s3_7_c11_c14_0, x15
- 3e20: d53fbe0f mrs x15, s3_7_c11_c14_0
- 3e24: d51fbe2f msr s3_7_c11_c14_1, x15
- 3e28: d53fbe2f mrs x15, s3_7_c11_c14_1
- 3e2c: d51fbe4f msr s3_7_c11_c14_2, x15
- 3e30: d53fbe4f mrs x15, s3_7_c11_c14_2
- 3e34: d51fbe6f msr s3_7_c11_c14_3, x15
- 3e38: d53fbe6f mrs x15, s3_7_c11_c14_3
- 3e3c: d51fbe8f msr s3_7_c11_c14_4, x15
- 3e40: d53fbe8f mrs x15, s3_7_c11_c14_4
- 3e44: d51fbeaf msr s3_7_c11_c14_5, x15
- 3e48: d53fbeaf mrs x15, s3_7_c11_c14_5
- 3e4c: d51fbecf msr s3_7_c11_c14_6, x15
- 3e50: d53fbecf mrs x15, s3_7_c11_c14_6
- 3e54: d51fbeef msr s3_7_c11_c14_7, x15
- 3e58: d53fbeef mrs x15, s3_7_c11_c14_7
- 3e5c: d51fbf0f msr s3_7_c11_c15_0, x15
- 3e60: d53fbf0f mrs x15, s3_7_c11_c15_0
- 3e64: d51fbf2f msr s3_7_c11_c15_1, x15
- 3e68: d53fbf2f mrs x15, s3_7_c11_c15_1
- 3e6c: d51fbf4f msr s3_7_c11_c15_2, x15
- 3e70: d53fbf4f mrs x15, s3_7_c11_c15_2
- 3e74: d51fbf6f msr s3_7_c11_c15_3, x15
- 3e78: d53fbf6f mrs x15, s3_7_c11_c15_3
- 3e7c: d51fbf8f msr s3_7_c11_c15_4, x15
- 3e80: d53fbf8f mrs x15, s3_7_c11_c15_4
- 3e84: d51fbfaf msr s3_7_c11_c15_5, x15
- 3e88: d53fbfaf mrs x15, s3_7_c11_c15_5
- 3e8c: d51fbfcf msr s3_7_c11_c15_6, x15
- 3e90: d53fbfcf mrs x15, s3_7_c11_c15_6
- 3e94: d51fbfef msr s3_7_c11_c15_7, x15
- 3e98: d53fbfef mrs x15, s3_7_c11_c15_7
- 3e9c: d51ff00f msr s3_7_c15_c0_0, x15
- 3ea0: d53ff00f mrs x15, s3_7_c15_c0_0
- 3ea4: d51ff02f msr s3_7_c15_c0_1, x15
- 3ea8: d53ff02f mrs x15, s3_7_c15_c0_1
- 3eac: d51ff04f msr s3_7_c15_c0_2, x15
- 3eb0: d53ff04f mrs x15, s3_7_c15_c0_2
- 3eb4: d51ff06f msr s3_7_c15_c0_3, x15
- 3eb8: d53ff06f mrs x15, s3_7_c15_c0_3
- 3ebc: d51ff08f msr s3_7_c15_c0_4, x15
- 3ec0: d53ff08f mrs x15, s3_7_c15_c0_4
- 3ec4: d51ff0af msr s3_7_c15_c0_5, x15
- 3ec8: d53ff0af mrs x15, s3_7_c15_c0_5
- 3ecc: d51ff0cf msr s3_7_c15_c0_6, x15
- 3ed0: d53ff0cf mrs x15, s3_7_c15_c0_6
- 3ed4: d51ff0ef msr s3_7_c15_c0_7, x15
- 3ed8: d53ff0ef mrs x15, s3_7_c15_c0_7
- 3edc: d51ff10f msr s3_7_c15_c1_0, x15
- 3ee0: d53ff10f mrs x15, s3_7_c15_c1_0
- 3ee4: d51ff12f msr s3_7_c15_c1_1, x15
- 3ee8: d53ff12f mrs x15, s3_7_c15_c1_1
- 3eec: d51ff14f msr s3_7_c15_c1_2, x15
- 3ef0: d53ff14f mrs x15, s3_7_c15_c1_2
- 3ef4: d51ff16f msr s3_7_c15_c1_3, x15
- 3ef8: d53ff16f mrs x15, s3_7_c15_c1_3
- 3efc: d51ff18f msr s3_7_c15_c1_4, x15
- 3f00: d53ff18f mrs x15, s3_7_c15_c1_4
- 3f04: d51ff1af msr s3_7_c15_c1_5, x15
- 3f08: d53ff1af mrs x15, s3_7_c15_c1_5
- 3f0c: d51ff1cf msr s3_7_c15_c1_6, x15
- 3f10: d53ff1cf mrs x15, s3_7_c15_c1_6
- 3f14: d51ff1ef msr s3_7_c15_c1_7, x15
- 3f18: d53ff1ef mrs x15, s3_7_c15_c1_7
- 3f1c: d51ff20f msr s3_7_c15_c2_0, x15
- 3f20: d53ff20f mrs x15, s3_7_c15_c2_0
- 3f24: d51ff22f msr s3_7_c15_c2_1, x15
- 3f28: d53ff22f mrs x15, s3_7_c15_c2_1
- 3f2c: d51ff24f msr s3_7_c15_c2_2, x15
- 3f30: d53ff24f mrs x15, s3_7_c15_c2_2
- 3f34: d51ff26f msr s3_7_c15_c2_3, x15
- 3f38: d53ff26f mrs x15, s3_7_c15_c2_3
- 3f3c: d51ff28f msr s3_7_c15_c2_4, x15
- 3f40: d53ff28f mrs x15, s3_7_c15_c2_4
- 3f44: d51ff2af msr s3_7_c15_c2_5, x15
- 3f48: d53ff2af mrs x15, s3_7_c15_c2_5
- 3f4c: d51ff2cf msr s3_7_c15_c2_6, x15
- 3f50: d53ff2cf mrs x15, s3_7_c15_c2_6
- 3f54: d51ff2ef msr s3_7_c15_c2_7, x15
- 3f58: d53ff2ef mrs x15, s3_7_c15_c2_7
- 3f5c: d51ff30f msr s3_7_c15_c3_0, x15
- 3f60: d53ff30f mrs x15, s3_7_c15_c3_0
- 3f64: d51ff32f msr s3_7_c15_c3_1, x15
- 3f68: d53ff32f mrs x15, s3_7_c15_c3_1
- 3f6c: d51ff34f msr s3_7_c15_c3_2, x15
- 3f70: d53ff34f mrs x15, s3_7_c15_c3_2
- 3f74: d51ff36f msr s3_7_c15_c3_3, x15
- 3f78: d53ff36f mrs x15, s3_7_c15_c3_3
- 3f7c: d51ff38f msr s3_7_c15_c3_4, x15
- 3f80: d53ff38f mrs x15, s3_7_c15_c3_4
- 3f84: d51ff3af msr s3_7_c15_c3_5, x15
- 3f88: d53ff3af mrs x15, s3_7_c15_c3_5
- 3f8c: d51ff3cf msr s3_7_c15_c3_6, x15
- 3f90: d53ff3cf mrs x15, s3_7_c15_c3_6
- 3f94: d51ff3ef msr s3_7_c15_c3_7, x15
- 3f98: d53ff3ef mrs x15, s3_7_c15_c3_7
- 3f9c: d51ff40f msr s3_7_c15_c4_0, x15
- 3fa0: d53ff40f mrs x15, s3_7_c15_c4_0
- 3fa4: d51ff42f msr s3_7_c15_c4_1, x15
- 3fa8: d53ff42f mrs x15, s3_7_c15_c4_1
- 3fac: d51ff44f msr s3_7_c15_c4_2, x15
- 3fb0: d53ff44f mrs x15, s3_7_c15_c4_2
- 3fb4: d51ff46f msr s3_7_c15_c4_3, x15
- 3fb8: d53ff46f mrs x15, s3_7_c15_c4_3
- 3fbc: d51ff48f msr s3_7_c15_c4_4, x15
- 3fc0: d53ff48f mrs x15, s3_7_c15_c4_4
- 3fc4: d51ff4af msr s3_7_c15_c4_5, x15
- 3fc8: d53ff4af mrs x15, s3_7_c15_c4_5
- 3fcc: d51ff4cf msr s3_7_c15_c4_6, x15
- 3fd0: d53ff4cf mrs x15, s3_7_c15_c4_6
- 3fd4: d51ff4ef msr s3_7_c15_c4_7, x15
- 3fd8: d53ff4ef mrs x15, s3_7_c15_c4_7
- 3fdc: d51ff50f msr s3_7_c15_c5_0, x15
- 3fe0: d53ff50f mrs x15, s3_7_c15_c5_0
- 3fe4: d51ff52f msr s3_7_c15_c5_1, x15
- 3fe8: d53ff52f mrs x15, s3_7_c15_c5_1
- 3fec: d51ff54f msr s3_7_c15_c5_2, x15
- 3ff0: d53ff54f mrs x15, s3_7_c15_c5_2
- 3ff4: d51ff56f msr s3_7_c15_c5_3, x15
- 3ff8: d53ff56f mrs x15, s3_7_c15_c5_3
- 3ffc: d51ff58f msr s3_7_c15_c5_4, x15
- 4000: d53ff58f mrs x15, s3_7_c15_c5_4
- 4004: d51ff5af msr s3_7_c15_c5_5, x15
- 4008: d53ff5af mrs x15, s3_7_c15_c5_5
- 400c: d51ff5cf msr s3_7_c15_c5_6, x15
- 4010: d53ff5cf mrs x15, s3_7_c15_c5_6
- 4014: d51ff5ef msr s3_7_c15_c5_7, x15
- 4018: d53ff5ef mrs x15, s3_7_c15_c5_7
- 401c: d51ff60f msr s3_7_c15_c6_0, x15
- 4020: d53ff60f mrs x15, s3_7_c15_c6_0
- 4024: d51ff62f msr s3_7_c15_c6_1, x15
- 4028: d53ff62f mrs x15, s3_7_c15_c6_1
- 402c: d51ff64f msr s3_7_c15_c6_2, x15
- 4030: d53ff64f mrs x15, s3_7_c15_c6_2
- 4034: d51ff66f msr s3_7_c15_c6_3, x15
- 4038: d53ff66f mrs x15, s3_7_c15_c6_3
- 403c: d51ff68f msr s3_7_c15_c6_4, x15
- 4040: d53ff68f mrs x15, s3_7_c15_c6_4
- 4044: d51ff6af msr s3_7_c15_c6_5, x15
- 4048: d53ff6af mrs x15, s3_7_c15_c6_5
- 404c: d51ff6cf msr s3_7_c15_c6_6, x15
- 4050: d53ff6cf mrs x15, s3_7_c15_c6_6
- 4054: d51ff6ef msr s3_7_c15_c6_7, x15
- 4058: d53ff6ef mrs x15, s3_7_c15_c6_7
- 405c: d51ff70f msr s3_7_c15_c7_0, x15
- 4060: d53ff70f mrs x15, s3_7_c15_c7_0
- 4064: d51ff72f msr s3_7_c15_c7_1, x15
- 4068: d53ff72f mrs x15, s3_7_c15_c7_1
- 406c: d51ff74f msr s3_7_c15_c7_2, x15
- 4070: d53ff74f mrs x15, s3_7_c15_c7_2
- 4074: d51ff76f msr s3_7_c15_c7_3, x15
- 4078: d53ff76f mrs x15, s3_7_c15_c7_3
- 407c: d51ff78f msr s3_7_c15_c7_4, x15
- 4080: d53ff78f mrs x15, s3_7_c15_c7_4
- 4084: d51ff7af msr s3_7_c15_c7_5, x15
- 4088: d53ff7af mrs x15, s3_7_c15_c7_5
- 408c: d51ff7cf msr s3_7_c15_c7_6, x15
- 4090: d53ff7cf mrs x15, s3_7_c15_c7_6
- 4094: d51ff7ef msr s3_7_c15_c7_7, x15
- 4098: d53ff7ef mrs x15, s3_7_c15_c7_7
- 409c: d51ff80f msr s3_7_c15_c8_0, x15
- 40a0: d53ff80f mrs x15, s3_7_c15_c8_0
- 40a4: d51ff82f msr s3_7_c15_c8_1, x15
- 40a8: d53ff82f mrs x15, s3_7_c15_c8_1
- 40ac: d51ff84f msr s3_7_c15_c8_2, x15
- 40b0: d53ff84f mrs x15, s3_7_c15_c8_2
- 40b4: d51ff86f msr s3_7_c15_c8_3, x15
- 40b8: d53ff86f mrs x15, s3_7_c15_c8_3
- 40bc: d51ff88f msr s3_7_c15_c8_4, x15
- 40c0: d53ff88f mrs x15, s3_7_c15_c8_4
- 40c4: d51ff8af msr s3_7_c15_c8_5, x15
- 40c8: d53ff8af mrs x15, s3_7_c15_c8_5
- 40cc: d51ff8cf msr s3_7_c15_c8_6, x15
- 40d0: d53ff8cf mrs x15, s3_7_c15_c8_6
- 40d4: d51ff8ef msr s3_7_c15_c8_7, x15
- 40d8: d53ff8ef mrs x15, s3_7_c15_c8_7
- 40dc: d51ff90f msr s3_7_c15_c9_0, x15
- 40e0: d53ff90f mrs x15, s3_7_c15_c9_0
- 40e4: d51ff92f msr s3_7_c15_c9_1, x15
- 40e8: d53ff92f mrs x15, s3_7_c15_c9_1
- 40ec: d51ff94f msr s3_7_c15_c9_2, x15
- 40f0: d53ff94f mrs x15, s3_7_c15_c9_2
- 40f4: d51ff96f msr s3_7_c15_c9_3, x15
- 40f8: d53ff96f mrs x15, s3_7_c15_c9_3
- 40fc: d51ff98f msr s3_7_c15_c9_4, x15
- 4100: d53ff98f mrs x15, s3_7_c15_c9_4
- 4104: d51ff9af msr s3_7_c15_c9_5, x15
- 4108: d53ff9af mrs x15, s3_7_c15_c9_5
- 410c: d51ff9cf msr s3_7_c15_c9_6, x15
- 4110: d53ff9cf mrs x15, s3_7_c15_c9_6
- 4114: d51ff9ef msr s3_7_c15_c9_7, x15
- 4118: d53ff9ef mrs x15, s3_7_c15_c9_7
- 411c: d51ffa0f msr s3_7_c15_c10_0, x15
- 4120: d53ffa0f mrs x15, s3_7_c15_c10_0
- 4124: d51ffa2f msr s3_7_c15_c10_1, x15
- 4128: d53ffa2f mrs x15, s3_7_c15_c10_1
- 412c: d51ffa4f msr s3_7_c15_c10_2, x15
- 4130: d53ffa4f mrs x15, s3_7_c15_c10_2
- 4134: d51ffa6f msr s3_7_c15_c10_3, x15
- 4138: d53ffa6f mrs x15, s3_7_c15_c10_3
- 413c: d51ffa8f msr s3_7_c15_c10_4, x15
- 4140: d53ffa8f mrs x15, s3_7_c15_c10_4
- 4144: d51ffaaf msr s3_7_c15_c10_5, x15
- 4148: d53ffaaf mrs x15, s3_7_c15_c10_5
- 414c: d51ffacf msr s3_7_c15_c10_6, x15
- 4150: d53ffacf mrs x15, s3_7_c15_c10_6
- 4154: d51ffaef msr s3_7_c15_c10_7, x15
- 4158: d53ffaef mrs x15, s3_7_c15_c10_7
- 415c: d51ffb0f msr s3_7_c15_c11_0, x15
- 4160: d53ffb0f mrs x15, s3_7_c15_c11_0
- 4164: d51ffb2f msr s3_7_c15_c11_1, x15
- 4168: d53ffb2f mrs x15, s3_7_c15_c11_1
- 416c: d51ffb4f msr s3_7_c15_c11_2, x15
- 4170: d53ffb4f mrs x15, s3_7_c15_c11_2
- 4174: d51ffb6f msr s3_7_c15_c11_3, x15
- 4178: d53ffb6f mrs x15, s3_7_c15_c11_3
- 417c: d51ffb8f msr s3_7_c15_c11_4, x15
- 4180: d53ffb8f mrs x15, s3_7_c15_c11_4
- 4184: d51ffbaf msr s3_7_c15_c11_5, x15
- 4188: d53ffbaf mrs x15, s3_7_c15_c11_5
- 418c: d51ffbcf msr s3_7_c15_c11_6, x15
- 4190: d53ffbcf mrs x15, s3_7_c15_c11_6
- 4194: d51ffbef msr s3_7_c15_c11_7, x15
- 4198: d53ffbef mrs x15, s3_7_c15_c11_7
- 419c: d51ffc0f msr s3_7_c15_c12_0, x15
- 41a0: d53ffc0f mrs x15, s3_7_c15_c12_0
- 41a4: d51ffc2f msr s3_7_c15_c12_1, x15
- 41a8: d53ffc2f mrs x15, s3_7_c15_c12_1
- 41ac: d51ffc4f msr s3_7_c15_c12_2, x15
- 41b0: d53ffc4f mrs x15, s3_7_c15_c12_2
- 41b4: d51ffc6f msr s3_7_c15_c12_3, x15
- 41b8: d53ffc6f mrs x15, s3_7_c15_c12_3
- 41bc: d51ffc8f msr s3_7_c15_c12_4, x15
- 41c0: d53ffc8f mrs x15, s3_7_c15_c12_4
- 41c4: d51ffcaf msr s3_7_c15_c12_5, x15
- 41c8: d53ffcaf mrs x15, s3_7_c15_c12_5
- 41cc: d51ffccf msr s3_7_c15_c12_6, x15
- 41d0: d53ffccf mrs x15, s3_7_c15_c12_6
- 41d4: d51ffcef msr s3_7_c15_c12_7, x15
- 41d8: d53ffcef mrs x15, s3_7_c15_c12_7
- 41dc: d51ffd0f msr s3_7_c15_c13_0, x15
- 41e0: d53ffd0f mrs x15, s3_7_c15_c13_0
- 41e4: d51ffd2f msr s3_7_c15_c13_1, x15
- 41e8: d53ffd2f mrs x15, s3_7_c15_c13_1
- 41ec: d51ffd4f msr s3_7_c15_c13_2, x15
- 41f0: d53ffd4f mrs x15, s3_7_c15_c13_2
- 41f4: d51ffd6f msr s3_7_c15_c13_3, x15
- 41f8: d53ffd6f mrs x15, s3_7_c15_c13_3
- 41fc: d51ffd8f msr s3_7_c15_c13_4, x15
- 4200: d53ffd8f mrs x15, s3_7_c15_c13_4
- 4204: d51ffdaf msr s3_7_c15_c13_5, x15
- 4208: d53ffdaf mrs x15, s3_7_c15_c13_5
- 420c: d51ffdcf msr s3_7_c15_c13_6, x15
- 4210: d53ffdcf mrs x15, s3_7_c15_c13_6
- 4214: d51ffdef msr s3_7_c15_c13_7, x15
- 4218: d53ffdef mrs x15, s3_7_c15_c13_7
- 421c: d51ffe0f msr s3_7_c15_c14_0, x15
- 4220: d53ffe0f mrs x15, s3_7_c15_c14_0
- 4224: d51ffe2f msr s3_7_c15_c14_1, x15
- 4228: d53ffe2f mrs x15, s3_7_c15_c14_1
- 422c: d51ffe4f msr s3_7_c15_c14_2, x15
- 4230: d53ffe4f mrs x15, s3_7_c15_c14_2
- 4234: d51ffe6f msr s3_7_c15_c14_3, x15
- 4238: d53ffe6f mrs x15, s3_7_c15_c14_3
- 423c: d51ffe8f msr s3_7_c15_c14_4, x15
- 4240: d53ffe8f mrs x15, s3_7_c15_c14_4
- 4244: d51ffeaf msr s3_7_c15_c14_5, x15
- 4248: d53ffeaf mrs x15, s3_7_c15_c14_5
- 424c: d51ffecf msr s3_7_c15_c14_6, x15
- 4250: d53ffecf mrs x15, s3_7_c15_c14_6
- 4254: d51ffeef msr s3_7_c15_c14_7, x15
- 4258: d53ffeef mrs x15, s3_7_c15_c14_7
- 425c: d51fff0f msr s3_7_c15_c15_0, x15
- 4260: d53fff0f mrs x15, s3_7_c15_c15_0
- 4264: d51fff2f msr s3_7_c15_c15_1, x15
- 4268: d53fff2f mrs x15, s3_7_c15_c15_1
- 426c: d51fff4f msr s3_7_c15_c15_2, x15
- 4270: d53fff4f mrs x15, s3_7_c15_c15_2
- 4274: d51fff6f msr s3_7_c15_c15_3, x15
- 4278: d53fff6f mrs x15, s3_7_c15_c15_3
- 427c: d51fff8f msr s3_7_c15_c15_4, x15
- 4280: d53fff8f mrs x15, s3_7_c15_c15_4
- 4284: d51fffaf msr s3_7_c15_c15_5, x15
- 4288: d53fffaf mrs x15, s3_7_c15_c15_5
- 428c: d51fffcf msr s3_7_c15_c15_6, x15
- 4290: d53fffcf mrs x15, s3_7_c15_c15_6
- 4294: d51fffef msr s3_7_c15_c15_7, x15
- 4298: d53fffef mrs x15, s3_7_c15_c15_7
- 429c: d513040f msr dbgdtr_el0, x15
- 42a0: d533040f mrs x15, dbgdtr_el0
- 42a4: d533050f mrs x15, dbgdtrrx_el0
- 42a8: d518c04f msr rmr_el1, x15
- 42ac: d538c04f mrs x15, rmr_el1
- 42b0: d51cc04f msr rmr_el2, x15
- 42b4: d53cc04f mrs x15, rmr_el2
- 42b8: d51ec04f msr rmr_el3, x15
- 42bc: d53ec04f mrs x15, rmr_el3
- 42c0: d518400f msr spsr_el1, x15
- 42c4: d538400f mrs x15, spsr_el1
- 42c8: d51c400f msr spsr_el2, x15
- 42cc: d53c400f mrs x15, spsr_el2
- 42d0: d51e400f msr spsr_el3, x15
- 42d4: d53e400f mrs x15, spsr_el3
- 42d8: d500000f msr s0_0_c0_c0_0, x15
- 42dc: d520000f mrs x15, s0_0_c0_c0_0
- 42e0: d50ffffb sys #7, C15, C15, #7, x27
- 42e4: d52ffffb sysl x27, #7, C15, C15, #7
- 42e8: d514680e msr s2_4_c6_c8_0, x14
- 42ec: d534680e mrs x14, s2_4_c6_c8_0
- 42f0: d50ae444 sys #2, C14, C4, #2, x4
- 42f4: d52ae444 sysl x4, #2, C14, C4, #2
- 42f8: d501d167 msr s0_1_c13_c1_3, x7
- 42fc: d521d167 mrs x7, s0_1_c13_c1_3
+ *[0-9a-f]+: d5380587 mrs x7, id_aa64afr0_el1
+ *[0-9a-f]+: d53805a7 mrs x7, id_aa64afr1_el1
+ *[0-9a-f]+: d5380347 mrs x7, mvfr2_el1
+ *[0-9a-f]+: d51b4527 msr dlr_el0, x7
+ *[0-9a-f]+: d53b4527 mrs x7, dlr_el0
+ *[0-9a-f]+: d51b4507 msr dspsr_el0, x7
+ *[0-9a-f]+: d53b4507 mrs x7, dspsr_el0
+ *[0-9a-f]+: d51e1127 msr sder32_el3, x7
+ *[0-9a-f]+: d53e1127 mrs x7, sder32_el3
+ *[0-9a-f]+: d51e1327 msr mdcr_el3, x7
+ *[0-9a-f]+: d53e1327 mrs x7, mdcr_el3
+ *[0-9a-f]+: d5100207 msr mdccint_el1, x7
+ *[0-9a-f]+: d5300207 mrs x7, mdccint_el1
+ *[0-9a-f]+: d5140707 msr dbgvcr32_el2, x7
+ *[0-9a-f]+: d5340707 mrs x7, dbgvcr32_el2
+ *[0-9a-f]+: d51c5307 msr fpexc32_el2, x7
+ *[0-9a-f]+: d53c5307 mrs x7, fpexc32_el2
+ *[0-9a-f]+: d51be207 msr cntp_tval_el0, x7
+ *[0-9a-f]+: d53be207 mrs x7, cntp_tval_el0
+ *[0-9a-f]+: d51be227 msr cntp_ctl_el0, x7
+ *[0-9a-f]+: d53be227 mrs x7, cntp_ctl_el0
+ *[0-9a-f]+: d51be247 msr cntp_cval_el0, x7
+ *[0-9a-f]+: d53be247 mrs x7, cntp_cval_el0
+ *[0-9a-f]+: d51fe207 msr cntps_tval_el1, x7
+ *[0-9a-f]+: d53fe207 mrs x7, cntps_tval_el1
+ *[0-9a-f]+: d51fe227 msr cntps_ctl_el1, x7
+ *[0-9a-f]+: d53fe227 mrs x7, cntps_ctl_el1
+ *[0-9a-f]+: d51fe247 msr cntps_cval_el1, x7
+ *[0-9a-f]+: d53fe247 mrs x7, cntps_cval_el1
+ *[0-9a-f]+: d51b9d07 msr pmccntr_el0, x7
+ *[0-9a-f]+: d53b9d07 mrs x7, pmccntr_el0
+ *[0-9a-f]+: d51be807 msr pmevcntr0_el0, x7
+ *[0-9a-f]+: d53be807 mrs x7, pmevcntr0_el0
+ *[0-9a-f]+: d51be827 msr pmevcntr1_el0, x7
+ *[0-9a-f]+: d53be827 mrs x7, pmevcntr1_el0
+ *[0-9a-f]+: d51be847 msr pmevcntr2_el0, x7
+ *[0-9a-f]+: d53be847 mrs x7, pmevcntr2_el0
+ *[0-9a-f]+: d51be867 msr pmevcntr3_el0, x7
+ *[0-9a-f]+: d53be867 mrs x7, pmevcntr3_el0
+ *[0-9a-f]+: d51be887 msr pmevcntr4_el0, x7
+ *[0-9a-f]+: d53be887 mrs x7, pmevcntr4_el0
+ *[0-9a-f]+: d51be8a7 msr pmevcntr5_el0, x7
+ *[0-9a-f]+: d53be8a7 mrs x7, pmevcntr5_el0
+ *[0-9a-f]+: d51be8c7 msr pmevcntr6_el0, x7
+ *[0-9a-f]+: d53be8c7 mrs x7, pmevcntr6_el0
+ *[0-9a-f]+: d51be8e7 msr pmevcntr7_el0, x7
+ *[0-9a-f]+: d53be8e7 mrs x7, pmevcntr7_el0
+ *[0-9a-f]+: d51be907 msr pmevcntr8_el0, x7
+ *[0-9a-f]+: d53be907 mrs x7, pmevcntr8_el0
+ *[0-9a-f]+: d51be927 msr pmevcntr9_el0, x7
+ *[0-9a-f]+: d53be927 mrs x7, pmevcntr9_el0
+ *[0-9a-f]+: d51be947 msr pmevcntr10_el0, x7
+ *[0-9a-f]+: d53be947 mrs x7, pmevcntr10_el0
+ *[0-9a-f]+: d51be967 msr pmevcntr11_el0, x7
+ *[0-9a-f]+: d53be967 mrs x7, pmevcntr11_el0
+ *[0-9a-f]+: d51be987 msr pmevcntr12_el0, x7
+ *[0-9a-f]+: d53be987 mrs x7, pmevcntr12_el0
+ *[0-9a-f]+: d51be9a7 msr pmevcntr13_el0, x7
+ *[0-9a-f]+: d53be9a7 mrs x7, pmevcntr13_el0
+ *[0-9a-f]+: d51be9c7 msr pmevcntr14_el0, x7
+ *[0-9a-f]+: d53be9c7 mrs x7, pmevcntr14_el0
+ *[0-9a-f]+: d51be9e7 msr pmevcntr15_el0, x7
+ *[0-9a-f]+: d53be9e7 mrs x7, pmevcntr15_el0
+ *[0-9a-f]+: d51bea07 msr pmevcntr16_el0, x7
+ *[0-9a-f]+: d53bea07 mrs x7, pmevcntr16_el0
+ *[0-9a-f]+: d51bea27 msr pmevcntr17_el0, x7
+ *[0-9a-f]+: d53bea27 mrs x7, pmevcntr17_el0
+ *[0-9a-f]+: d51bea47 msr pmevcntr18_el0, x7
+ *[0-9a-f]+: d53bea47 mrs x7, pmevcntr18_el0
+ *[0-9a-f]+: d51bea67 msr pmevcntr19_el0, x7
+ *[0-9a-f]+: d53bea67 mrs x7, pmevcntr19_el0
+ *[0-9a-f]+: d51bea87 msr pmevcntr20_el0, x7
+ *[0-9a-f]+: d53bea87 mrs x7, pmevcntr20_el0
+ *[0-9a-f]+: d51beaa7 msr pmevcntr21_el0, x7
+ *[0-9a-f]+: d53beaa7 mrs x7, pmevcntr21_el0
+ *[0-9a-f]+: d51beac7 msr pmevcntr22_el0, x7
+ *[0-9a-f]+: d53beac7 mrs x7, pmevcntr22_el0
+ *[0-9a-f]+: d51beae7 msr pmevcntr23_el0, x7
+ *[0-9a-f]+: d53beae7 mrs x7, pmevcntr23_el0
+ *[0-9a-f]+: d51beb07 msr pmevcntr24_el0, x7
+ *[0-9a-f]+: d53beb07 mrs x7, pmevcntr24_el0
+ *[0-9a-f]+: d51beb27 msr pmevcntr25_el0, x7
+ *[0-9a-f]+: d53beb27 mrs x7, pmevcntr25_el0
+ *[0-9a-f]+: d51beb47 msr pmevcntr26_el0, x7
+ *[0-9a-f]+: d53beb47 mrs x7, pmevcntr26_el0
+ *[0-9a-f]+: d51beb67 msr pmevcntr27_el0, x7
+ *[0-9a-f]+: d53beb67 mrs x7, pmevcntr27_el0
+ *[0-9a-f]+: d51beb87 msr pmevcntr28_el0, x7
+ *[0-9a-f]+: d53beb87 mrs x7, pmevcntr28_el0
+ *[0-9a-f]+: d51beba7 msr pmevcntr29_el0, x7
+ *[0-9a-f]+: d53beba7 mrs x7, pmevcntr29_el0
+ *[0-9a-f]+: d51bebc7 msr pmevcntr30_el0, x7
+ *[0-9a-f]+: d53bebc7 mrs x7, pmevcntr30_el0
+ *[0-9a-f]+: d51bec07 msr pmevtyper0_el0, x7
+ *[0-9a-f]+: d53bec07 mrs x7, pmevtyper0_el0
+ *[0-9a-f]+: d51bec27 msr pmevtyper1_el0, x7
+ *[0-9a-f]+: d53bec27 mrs x7, pmevtyper1_el0
+ *[0-9a-f]+: d51bec47 msr pmevtyper2_el0, x7
+ *[0-9a-f]+: d53bec47 mrs x7, pmevtyper2_el0
+ *[0-9a-f]+: d51bec67 msr pmevtyper3_el0, x7
+ *[0-9a-f]+: d53bec67 mrs x7, pmevtyper3_el0
+ *[0-9a-f]+: d51bec87 msr pmevtyper4_el0, x7
+ *[0-9a-f]+: d53bec87 mrs x7, pmevtyper4_el0
+ *[0-9a-f]+: d51beca7 msr pmevtyper5_el0, x7
+ *[0-9a-f]+: d53beca7 mrs x7, pmevtyper5_el0
+ *[0-9a-f]+: d51becc7 msr pmevtyper6_el0, x7
+ *[0-9a-f]+: d53becc7 mrs x7, pmevtyper6_el0
+ *[0-9a-f]+: d51bece7 msr pmevtyper7_el0, x7
+ *[0-9a-f]+: d53bece7 mrs x7, pmevtyper7_el0
+ *[0-9a-f]+: d51bed07 msr pmevtyper8_el0, x7
+ *[0-9a-f]+: d53bed07 mrs x7, pmevtyper8_el0
+ *[0-9a-f]+: d51bed27 msr pmevtyper9_el0, x7
+ *[0-9a-f]+: d53bed27 mrs x7, pmevtyper9_el0
+ *[0-9a-f]+: d51bed47 msr pmevtyper10_el0, x7
+ *[0-9a-f]+: d53bed47 mrs x7, pmevtyper10_el0
+ *[0-9a-f]+: d51bed67 msr pmevtyper11_el0, x7
+ *[0-9a-f]+: d53bed67 mrs x7, pmevtyper11_el0
+ *[0-9a-f]+: d51bed87 msr pmevtyper12_el0, x7
+ *[0-9a-f]+: d53bed87 mrs x7, pmevtyper12_el0
+ *[0-9a-f]+: d51beda7 msr pmevtyper13_el0, x7
+ *[0-9a-f]+: d53beda7 mrs x7, pmevtyper13_el0
+ *[0-9a-f]+: d51bedc7 msr pmevtyper14_el0, x7
+ *[0-9a-f]+: d53bedc7 mrs x7, pmevtyper14_el0
+ *[0-9a-f]+: d51bede7 msr pmevtyper15_el0, x7
+ *[0-9a-f]+: d53bede7 mrs x7, pmevtyper15_el0
+ *[0-9a-f]+: d51bee07 msr pmevtyper16_el0, x7
+ *[0-9a-f]+: d53bee07 mrs x7, pmevtyper16_el0
+ *[0-9a-f]+: d51bee27 msr pmevtyper17_el0, x7
+ *[0-9a-f]+: d53bee27 mrs x7, pmevtyper17_el0
+ *[0-9a-f]+: d51bee47 msr pmevtyper18_el0, x7
+ *[0-9a-f]+: d53bee47 mrs x7, pmevtyper18_el0
+ *[0-9a-f]+: d51bee67 msr pmevtyper19_el0, x7
+ *[0-9a-f]+: d53bee67 mrs x7, pmevtyper19_el0
+ *[0-9a-f]+: d51bee87 msr pmevtyper20_el0, x7
+ *[0-9a-f]+: d53bee87 mrs x7, pmevtyper20_el0
+ *[0-9a-f]+: d51beea7 msr pmevtyper21_el0, x7
+ *[0-9a-f]+: d53beea7 mrs x7, pmevtyper21_el0
+ *[0-9a-f]+: d51beec7 msr pmevtyper22_el0, x7
+ *[0-9a-f]+: d53beec7 mrs x7, pmevtyper22_el0
+ *[0-9a-f]+: d51beee7 msr pmevtyper23_el0, x7
+ *[0-9a-f]+: d53beee7 mrs x7, pmevtyper23_el0
+ *[0-9a-f]+: d51bef07 msr pmevtyper24_el0, x7
+ *[0-9a-f]+: d53bef07 mrs x7, pmevtyper24_el0
+ *[0-9a-f]+: d51bef27 msr pmevtyper25_el0, x7
+ *[0-9a-f]+: d53bef27 mrs x7, pmevtyper25_el0
+ *[0-9a-f]+: d51bef47 msr pmevtyper26_el0, x7
+ *[0-9a-f]+: d53bef47 mrs x7, pmevtyper26_el0
+ *[0-9a-f]+: d51bef67 msr pmevtyper27_el0, x7
+ *[0-9a-f]+: d53bef67 mrs x7, pmevtyper27_el0
+ *[0-9a-f]+: d51bef87 msr pmevtyper28_el0, x7
+ *[0-9a-f]+: d53bef87 mrs x7, pmevtyper28_el0
+ *[0-9a-f]+: d51befa7 msr pmevtyper29_el0, x7
+ *[0-9a-f]+: d53befa7 mrs x7, pmevtyper29_el0
+ *[0-9a-f]+: d51befc7 msr pmevtyper30_el0, x7
+ *[0-9a-f]+: d53befc7 mrs x7, pmevtyper30_el0
+ *[0-9a-f]+: d51befe7 msr pmccfiltr_el0, x7
+ *[0-9a-f]+: d53befe7 mrs x7, pmccfiltr_el0
+ *[0-9a-f]+: d51bd067 msr tpidrro_el0, x7
+ *[0-9a-f]+: d53bd067 mrs x7, tpidrro_el0
+ *[0-9a-f]+: d51bd047 msr tpidr_el0, x7
+ *[0-9a-f]+: d53bd047 mrs x7, tpidr_el0
+ *[0-9a-f]+: d51be007 msr cntfrq_el0, x7
+ *[0-9a-f]+: d53be007 mrs x7, cntfrq_el0
+ *[0-9a-f]+: d518b00f msr s3_0_c11_c0_0, x15
+ *[0-9a-f]+: d538b00f mrs x15, s3_0_c11_c0_0
+ *[0-9a-f]+: d518b02f msr s3_0_c11_c0_1, x15
+ *[0-9a-f]+: d538b02f mrs x15, s3_0_c11_c0_1
+ *[0-9a-f]+: d518b04f msr s3_0_c11_c0_2, x15
+ *[0-9a-f]+: d538b04f mrs x15, s3_0_c11_c0_2
+ *[0-9a-f]+: d518b06f msr s3_0_c11_c0_3, x15
+ *[0-9a-f]+: d538b06f mrs x15, s3_0_c11_c0_3
+ *[0-9a-f]+: d518b08f msr s3_0_c11_c0_4, x15
+ *[0-9a-f]+: d538b08f mrs x15, s3_0_c11_c0_4
+ *[0-9a-f]+: d518b0af msr s3_0_c11_c0_5, x15
+ *[0-9a-f]+: d538b0af mrs x15, s3_0_c11_c0_5
+ *[0-9a-f]+: d518b0cf msr s3_0_c11_c0_6, x15
+ *[0-9a-f]+: d538b0cf mrs x15, s3_0_c11_c0_6
+ *[0-9a-f]+: d518b0ef msr s3_0_c11_c0_7, x15
+ *[0-9a-f]+: d538b0ef mrs x15, s3_0_c11_c0_7
+ *[0-9a-f]+: d518b10f msr s3_0_c11_c1_0, x15
+ *[0-9a-f]+: d538b10f mrs x15, s3_0_c11_c1_0
+ *[0-9a-f]+: d518b12f msr s3_0_c11_c1_1, x15
+ *[0-9a-f]+: d538b12f mrs x15, s3_0_c11_c1_1
+ *[0-9a-f]+: d518b14f msr s3_0_c11_c1_2, x15
+ *[0-9a-f]+: d538b14f mrs x15, s3_0_c11_c1_2
+ *[0-9a-f]+: d518b16f msr s3_0_c11_c1_3, x15
+ *[0-9a-f]+: d538b16f mrs x15, s3_0_c11_c1_3
+ *[0-9a-f]+: d518b18f msr s3_0_c11_c1_4, x15
+ *[0-9a-f]+: d538b18f mrs x15, s3_0_c11_c1_4
+ *[0-9a-f]+: d518b1af msr s3_0_c11_c1_5, x15
+ *[0-9a-f]+: d538b1af mrs x15, s3_0_c11_c1_5
+ *[0-9a-f]+: d518b1cf msr s3_0_c11_c1_6, x15
+ *[0-9a-f]+: d538b1cf mrs x15, s3_0_c11_c1_6
+ *[0-9a-f]+: d518b1ef msr s3_0_c11_c1_7, x15
+ *[0-9a-f]+: d538b1ef mrs x15, s3_0_c11_c1_7
+ *[0-9a-f]+: d518b20f msr s3_0_c11_c2_0, x15
+ *[0-9a-f]+: d538b20f mrs x15, s3_0_c11_c2_0
+ *[0-9a-f]+: d518b22f msr s3_0_c11_c2_1, x15
+ *[0-9a-f]+: d538b22f mrs x15, s3_0_c11_c2_1
+ *[0-9a-f]+: d518b24f msr s3_0_c11_c2_2, x15
+ *[0-9a-f]+: d538b24f mrs x15, s3_0_c11_c2_2
+ *[0-9a-f]+: d518b26f msr s3_0_c11_c2_3, x15
+ *[0-9a-f]+: d538b26f mrs x15, s3_0_c11_c2_3
+ *[0-9a-f]+: d518b28f msr s3_0_c11_c2_4, x15
+ *[0-9a-f]+: d538b28f mrs x15, s3_0_c11_c2_4
+ *[0-9a-f]+: d518b2af msr s3_0_c11_c2_5, x15
+ *[0-9a-f]+: d538b2af mrs x15, s3_0_c11_c2_5
+ *[0-9a-f]+: d518b2cf msr s3_0_c11_c2_6, x15
+ *[0-9a-f]+: d538b2cf mrs x15, s3_0_c11_c2_6
+ *[0-9a-f]+: d518b2ef msr s3_0_c11_c2_7, x15
+ *[0-9a-f]+: d538b2ef mrs x15, s3_0_c11_c2_7
+ *[0-9a-f]+: d518b30f msr s3_0_c11_c3_0, x15
+ *[0-9a-f]+: d538b30f mrs x15, s3_0_c11_c3_0
+ *[0-9a-f]+: d518b32f msr s3_0_c11_c3_1, x15
+ *[0-9a-f]+: d538b32f mrs x15, s3_0_c11_c3_1
+ *[0-9a-f]+: d518b34f msr s3_0_c11_c3_2, x15
+ *[0-9a-f]+: d538b34f mrs x15, s3_0_c11_c3_2
+ *[0-9a-f]+: d518b36f msr s3_0_c11_c3_3, x15
+ *[0-9a-f]+: d538b36f mrs x15, s3_0_c11_c3_3
+ *[0-9a-f]+: d518b38f msr s3_0_c11_c3_4, x15
+ *[0-9a-f]+: d538b38f mrs x15, s3_0_c11_c3_4
+ *[0-9a-f]+: d518b3af msr s3_0_c11_c3_5, x15
+ *[0-9a-f]+: d538b3af mrs x15, s3_0_c11_c3_5
+ *[0-9a-f]+: d518b3cf msr s3_0_c11_c3_6, x15
+ *[0-9a-f]+: d538b3cf mrs x15, s3_0_c11_c3_6
+ *[0-9a-f]+: d518b3ef msr s3_0_c11_c3_7, x15
+ *[0-9a-f]+: d538b3ef mrs x15, s3_0_c11_c3_7
+ *[0-9a-f]+: d518b40f msr s3_0_c11_c4_0, x15
+ *[0-9a-f]+: d538b40f mrs x15, s3_0_c11_c4_0
+ *[0-9a-f]+: d518b42f msr s3_0_c11_c4_1, x15
+ *[0-9a-f]+: d538b42f mrs x15, s3_0_c11_c4_1
+ *[0-9a-f]+: d518b44f msr s3_0_c11_c4_2, x15
+ *[0-9a-f]+: d538b44f mrs x15, s3_0_c11_c4_2
+ *[0-9a-f]+: d518b46f msr s3_0_c11_c4_3, x15
+ *[0-9a-f]+: d538b46f mrs x15, s3_0_c11_c4_3
+ *[0-9a-f]+: d518b48f msr s3_0_c11_c4_4, x15
+ *[0-9a-f]+: d538b48f mrs x15, s3_0_c11_c4_4
+ *[0-9a-f]+: d518b4af msr s3_0_c11_c4_5, x15
+ *[0-9a-f]+: d538b4af mrs x15, s3_0_c11_c4_5
+ *[0-9a-f]+: d518b4cf msr s3_0_c11_c4_6, x15
+ *[0-9a-f]+: d538b4cf mrs x15, s3_0_c11_c4_6
+ *[0-9a-f]+: d518b4ef msr s3_0_c11_c4_7, x15
+ *[0-9a-f]+: d538b4ef mrs x15, s3_0_c11_c4_7
+ *[0-9a-f]+: d518b50f msr s3_0_c11_c5_0, x15
+ *[0-9a-f]+: d538b50f mrs x15, s3_0_c11_c5_0
+ *[0-9a-f]+: d518b52f msr s3_0_c11_c5_1, x15
+ *[0-9a-f]+: d538b52f mrs x15, s3_0_c11_c5_1
+ *[0-9a-f]+: d518b54f msr s3_0_c11_c5_2, x15
+ *[0-9a-f]+: d538b54f mrs x15, s3_0_c11_c5_2
+ *[0-9a-f]+: d518b56f msr s3_0_c11_c5_3, x15
+ *[0-9a-f]+: d538b56f mrs x15, s3_0_c11_c5_3
+ *[0-9a-f]+: d518b58f msr s3_0_c11_c5_4, x15
+ *[0-9a-f]+: d538b58f mrs x15, s3_0_c11_c5_4
+ *[0-9a-f]+: d518b5af msr s3_0_c11_c5_5, x15
+ *[0-9a-f]+: d538b5af mrs x15, s3_0_c11_c5_5
+ *[0-9a-f]+: d518b5cf msr s3_0_c11_c5_6, x15
+ *[0-9a-f]+: d538b5cf mrs x15, s3_0_c11_c5_6
+ *[0-9a-f]+: d518b5ef msr s3_0_c11_c5_7, x15
+ *[0-9a-f]+: d538b5ef mrs x15, s3_0_c11_c5_7
+ *[0-9a-f]+: d518b60f msr s3_0_c11_c6_0, x15
+ *[0-9a-f]+: d538b60f mrs x15, s3_0_c11_c6_0
+ *[0-9a-f]+: d518b62f msr s3_0_c11_c6_1, x15
+ *[0-9a-f]+: d538b62f mrs x15, s3_0_c11_c6_1
+ *[0-9a-f]+: d518b64f msr s3_0_c11_c6_2, x15
+ *[0-9a-f]+: d538b64f mrs x15, s3_0_c11_c6_2
+ *[0-9a-f]+: d518b66f msr s3_0_c11_c6_3, x15
+ *[0-9a-f]+: d538b66f mrs x15, s3_0_c11_c6_3
+ *[0-9a-f]+: d518b68f msr s3_0_c11_c6_4, x15
+ *[0-9a-f]+: d538b68f mrs x15, s3_0_c11_c6_4
+ *[0-9a-f]+: d518b6af msr s3_0_c11_c6_5, x15
+ *[0-9a-f]+: d538b6af mrs x15, s3_0_c11_c6_5
+ *[0-9a-f]+: d518b6cf msr s3_0_c11_c6_6, x15
+ *[0-9a-f]+: d538b6cf mrs x15, s3_0_c11_c6_6
+ *[0-9a-f]+: d518b6ef msr s3_0_c11_c6_7, x15
+ *[0-9a-f]+: d538b6ef mrs x15, s3_0_c11_c6_7
+ *[0-9a-f]+: d518b70f msr s3_0_c11_c7_0, x15
+ *[0-9a-f]+: d538b70f mrs x15, s3_0_c11_c7_0
+ *[0-9a-f]+: d518b72f msr s3_0_c11_c7_1, x15
+ *[0-9a-f]+: d538b72f mrs x15, s3_0_c11_c7_1
+ *[0-9a-f]+: d518b74f msr s3_0_c11_c7_2, x15
+ *[0-9a-f]+: d538b74f mrs x15, s3_0_c11_c7_2
+ *[0-9a-f]+: d518b76f msr s3_0_c11_c7_3, x15
+ *[0-9a-f]+: d538b76f mrs x15, s3_0_c11_c7_3
+ *[0-9a-f]+: d518b78f msr s3_0_c11_c7_4, x15
+ *[0-9a-f]+: d538b78f mrs x15, s3_0_c11_c7_4
+ *[0-9a-f]+: d518b7af msr s3_0_c11_c7_5, x15
+ *[0-9a-f]+: d538b7af mrs x15, s3_0_c11_c7_5
+ *[0-9a-f]+: d518b7cf msr s3_0_c11_c7_6, x15
+ *[0-9a-f]+: d538b7cf mrs x15, s3_0_c11_c7_6
+ *[0-9a-f]+: d518b7ef msr s3_0_c11_c7_7, x15
+ *[0-9a-f]+: d538b7ef mrs x15, s3_0_c11_c7_7
+ *[0-9a-f]+: d518b80f msr s3_0_c11_c8_0, x15
+ *[0-9a-f]+: d538b80f mrs x15, s3_0_c11_c8_0
+ *[0-9a-f]+: d518b82f msr s3_0_c11_c8_1, x15
+ *[0-9a-f]+: d538b82f mrs x15, s3_0_c11_c8_1
+ *[0-9a-f]+: d518b84f msr s3_0_c11_c8_2, x15
+ *[0-9a-f]+: d538b84f mrs x15, s3_0_c11_c8_2
+ *[0-9a-f]+: d518b86f msr s3_0_c11_c8_3, x15
+ *[0-9a-f]+: d538b86f mrs x15, s3_0_c11_c8_3
+ *[0-9a-f]+: d518b88f msr s3_0_c11_c8_4, x15
+ *[0-9a-f]+: d538b88f mrs x15, s3_0_c11_c8_4
+ *[0-9a-f]+: d518b8af msr s3_0_c11_c8_5, x15
+ *[0-9a-f]+: d538b8af mrs x15, s3_0_c11_c8_5
+ *[0-9a-f]+: d518b8cf msr s3_0_c11_c8_6, x15
+ *[0-9a-f]+: d538b8cf mrs x15, s3_0_c11_c8_6
+ *[0-9a-f]+: d518b8ef msr s3_0_c11_c8_7, x15
+ *[0-9a-f]+: d538b8ef mrs x15, s3_0_c11_c8_7
+ *[0-9a-f]+: d518b90f msr s3_0_c11_c9_0, x15
+ *[0-9a-f]+: d538b90f mrs x15, s3_0_c11_c9_0
+ *[0-9a-f]+: d518b92f msr s3_0_c11_c9_1, x15
+ *[0-9a-f]+: d538b92f mrs x15, s3_0_c11_c9_1
+ *[0-9a-f]+: d518b94f msr s3_0_c11_c9_2, x15
+ *[0-9a-f]+: d538b94f mrs x15, s3_0_c11_c9_2
+ *[0-9a-f]+: d518b96f msr s3_0_c11_c9_3, x15
+ *[0-9a-f]+: d538b96f mrs x15, s3_0_c11_c9_3
+ *[0-9a-f]+: d518b98f msr s3_0_c11_c9_4, x15
+ *[0-9a-f]+: d538b98f mrs x15, s3_0_c11_c9_4
+ *[0-9a-f]+: d518b9af msr s3_0_c11_c9_5, x15
+ *[0-9a-f]+: d538b9af mrs x15, s3_0_c11_c9_5
+ *[0-9a-f]+: d518b9cf msr s3_0_c11_c9_6, x15
+ *[0-9a-f]+: d538b9cf mrs x15, s3_0_c11_c9_6
+ *[0-9a-f]+: d518b9ef msr s3_0_c11_c9_7, x15
+ *[0-9a-f]+: d538b9ef mrs x15, s3_0_c11_c9_7
+ *[0-9a-f]+: d518ba0f msr s3_0_c11_c10_0, x15
+ *[0-9a-f]+: d538ba0f mrs x15, s3_0_c11_c10_0
+ *[0-9a-f]+: d518ba2f msr s3_0_c11_c10_1, x15
+ *[0-9a-f]+: d538ba2f mrs x15, s3_0_c11_c10_1
+ *[0-9a-f]+: d518ba4f msr s3_0_c11_c10_2, x15
+ *[0-9a-f]+: d538ba4f mrs x15, s3_0_c11_c10_2
+ *[0-9a-f]+: d518ba6f msr s3_0_c11_c10_3, x15
+ *[0-9a-f]+: d538ba6f mrs x15, s3_0_c11_c10_3
+ *[0-9a-f]+: d518ba8f msr s3_0_c11_c10_4, x15
+ *[0-9a-f]+: d538ba8f mrs x15, s3_0_c11_c10_4
+ *[0-9a-f]+: d518baaf msr s3_0_c11_c10_5, x15
+ *[0-9a-f]+: d538baaf mrs x15, s3_0_c11_c10_5
+ *[0-9a-f]+: d518bacf msr s3_0_c11_c10_6, x15
+ *[0-9a-f]+: d538bacf mrs x15, s3_0_c11_c10_6
+ *[0-9a-f]+: d518baef msr s3_0_c11_c10_7, x15
+ *[0-9a-f]+: d538baef mrs x15, s3_0_c11_c10_7
+ *[0-9a-f]+: d518bb0f msr s3_0_c11_c11_0, x15
+ *[0-9a-f]+: d538bb0f mrs x15, s3_0_c11_c11_0
+ *[0-9a-f]+: d518bb2f msr s3_0_c11_c11_1, x15
+ *[0-9a-f]+: d538bb2f mrs x15, s3_0_c11_c11_1
+ *[0-9a-f]+: d518bb4f msr s3_0_c11_c11_2, x15
+ *[0-9a-f]+: d538bb4f mrs x15, s3_0_c11_c11_2
+ *[0-9a-f]+: d518bb6f msr s3_0_c11_c11_3, x15
+ *[0-9a-f]+: d538bb6f mrs x15, s3_0_c11_c11_3
+ *[0-9a-f]+: d518bb8f msr s3_0_c11_c11_4, x15
+ *[0-9a-f]+: d538bb8f mrs x15, s3_0_c11_c11_4
+ *[0-9a-f]+: d518bbaf msr s3_0_c11_c11_5, x15
+ *[0-9a-f]+: d538bbaf mrs x15, s3_0_c11_c11_5
+ *[0-9a-f]+: d518bbcf msr s3_0_c11_c11_6, x15
+ *[0-9a-f]+: d538bbcf mrs x15, s3_0_c11_c11_6
+ *[0-9a-f]+: d518bbef msr s3_0_c11_c11_7, x15
+ *[0-9a-f]+: d538bbef mrs x15, s3_0_c11_c11_7
+ *[0-9a-f]+: d518bc0f msr s3_0_c11_c12_0, x15
+ *[0-9a-f]+: d538bc0f mrs x15, s3_0_c11_c12_0
+ *[0-9a-f]+: d518bc2f msr s3_0_c11_c12_1, x15
+ *[0-9a-f]+: d538bc2f mrs x15, s3_0_c11_c12_1
+ *[0-9a-f]+: d518bc4f msr s3_0_c11_c12_2, x15
+ *[0-9a-f]+: d538bc4f mrs x15, s3_0_c11_c12_2
+ *[0-9a-f]+: d518bc6f msr s3_0_c11_c12_3, x15
+ *[0-9a-f]+: d538bc6f mrs x15, s3_0_c11_c12_3
+ *[0-9a-f]+: d518bc8f msr s3_0_c11_c12_4, x15
+ *[0-9a-f]+: d538bc8f mrs x15, s3_0_c11_c12_4
+ *[0-9a-f]+: d518bcaf msr s3_0_c11_c12_5, x15
+ *[0-9a-f]+: d538bcaf mrs x15, s3_0_c11_c12_5
+ *[0-9a-f]+: d518bccf msr s3_0_c11_c12_6, x15
+ *[0-9a-f]+: d538bccf mrs x15, s3_0_c11_c12_6
+ *[0-9a-f]+: d518bcef msr s3_0_c11_c12_7, x15
+ *[0-9a-f]+: d538bcef mrs x15, s3_0_c11_c12_7
+ *[0-9a-f]+: d518bd0f msr s3_0_c11_c13_0, x15
+ *[0-9a-f]+: d538bd0f mrs x15, s3_0_c11_c13_0
+ *[0-9a-f]+: d518bd2f msr s3_0_c11_c13_1, x15
+ *[0-9a-f]+: d538bd2f mrs x15, s3_0_c11_c13_1
+ *[0-9a-f]+: d518bd4f msr s3_0_c11_c13_2, x15
+ *[0-9a-f]+: d538bd4f mrs x15, s3_0_c11_c13_2
+ *[0-9a-f]+: d518bd6f msr s3_0_c11_c13_3, x15
+ *[0-9a-f]+: d538bd6f mrs x15, s3_0_c11_c13_3
+ *[0-9a-f]+: d518bd8f msr s3_0_c11_c13_4, x15
+ *[0-9a-f]+: d538bd8f mrs x15, s3_0_c11_c13_4
+ *[0-9a-f]+: d518bdaf msr s3_0_c11_c13_5, x15
+ *[0-9a-f]+: d538bdaf mrs x15, s3_0_c11_c13_5
+ *[0-9a-f]+: d518bdcf msr s3_0_c11_c13_6, x15
+ *[0-9a-f]+: d538bdcf mrs x15, s3_0_c11_c13_6
+ *[0-9a-f]+: d518bdef msr s3_0_c11_c13_7, x15
+ *[0-9a-f]+: d538bdef mrs x15, s3_0_c11_c13_7
+ *[0-9a-f]+: d518be0f msr s3_0_c11_c14_0, x15
+ *[0-9a-f]+: d538be0f mrs x15, s3_0_c11_c14_0
+ *[0-9a-f]+: d518be2f msr s3_0_c11_c14_1, x15
+ *[0-9a-f]+: d538be2f mrs x15, s3_0_c11_c14_1
+ *[0-9a-f]+: d518be4f msr s3_0_c11_c14_2, x15
+ *[0-9a-f]+: d538be4f mrs x15, s3_0_c11_c14_2
+ *[0-9a-f]+: d518be6f msr s3_0_c11_c14_3, x15
+ *[0-9a-f]+: d538be6f mrs x15, s3_0_c11_c14_3
+ *[0-9a-f]+: d518be8f msr s3_0_c11_c14_4, x15
+ *[0-9a-f]+: d538be8f mrs x15, s3_0_c11_c14_4
+ *[0-9a-f]+: d518beaf msr s3_0_c11_c14_5, x15
+ *[0-9a-f]+: d538beaf mrs x15, s3_0_c11_c14_5
+ *[0-9a-f]+: d518becf msr s3_0_c11_c14_6, x15
+ *[0-9a-f]+: d538becf mrs x15, s3_0_c11_c14_6
+ *[0-9a-f]+: d518beef msr s3_0_c11_c14_7, x15
+ *[0-9a-f]+: d538beef mrs x15, s3_0_c11_c14_7
+ *[0-9a-f]+: d518bf0f msr s3_0_c11_c15_0, x15
+ *[0-9a-f]+: d538bf0f mrs x15, s3_0_c11_c15_0
+ *[0-9a-f]+: d518bf2f msr s3_0_c11_c15_1, x15
+ *[0-9a-f]+: d538bf2f mrs x15, s3_0_c11_c15_1
+ *[0-9a-f]+: d518bf4f msr s3_0_c11_c15_2, x15
+ *[0-9a-f]+: d538bf4f mrs x15, s3_0_c11_c15_2
+ *[0-9a-f]+: d518bf6f msr s3_0_c11_c15_3, x15
+ *[0-9a-f]+: d538bf6f mrs x15, s3_0_c11_c15_3
+ *[0-9a-f]+: d518bf8f msr s3_0_c11_c15_4, x15
+ *[0-9a-f]+: d538bf8f mrs x15, s3_0_c11_c15_4
+ *[0-9a-f]+: d518bfaf msr s3_0_c11_c15_5, x15
+ *[0-9a-f]+: d538bfaf mrs x15, s3_0_c11_c15_5
+ *[0-9a-f]+: d518bfcf msr s3_0_c11_c15_6, x15
+ *[0-9a-f]+: d538bfcf mrs x15, s3_0_c11_c15_6
+ *[0-9a-f]+: d518bfef msr s3_0_c11_c15_7, x15
+ *[0-9a-f]+: d538bfef mrs x15, s3_0_c11_c15_7
+ *[0-9a-f]+: d518f00f msr s3_0_c15_c0_0, x15
+ *[0-9a-f]+: d538f00f mrs x15, s3_0_c15_c0_0
+ *[0-9a-f]+: d518f02f msr s3_0_c15_c0_1, x15
+ *[0-9a-f]+: d538f02f mrs x15, s3_0_c15_c0_1
+ *[0-9a-f]+: d518f04f msr s3_0_c15_c0_2, x15
+ *[0-9a-f]+: d538f04f mrs x15, s3_0_c15_c0_2
+ *[0-9a-f]+: d518f06f msr s3_0_c15_c0_3, x15
+ *[0-9a-f]+: d538f06f mrs x15, s3_0_c15_c0_3
+ *[0-9a-f]+: d518f08f msr s3_0_c15_c0_4, x15
+ *[0-9a-f]+: d538f08f mrs x15, s3_0_c15_c0_4
+ *[0-9a-f]+: d518f0af msr s3_0_c15_c0_5, x15
+ *[0-9a-f]+: d538f0af mrs x15, s3_0_c15_c0_5
+ *[0-9a-f]+: d518f0cf msr s3_0_c15_c0_6, x15
+ *[0-9a-f]+: d538f0cf mrs x15, s3_0_c15_c0_6
+ *[0-9a-f]+: d518f0ef msr s3_0_c15_c0_7, x15
+ *[0-9a-f]+: d538f0ef mrs x15, s3_0_c15_c0_7
+ *[0-9a-f]+: d518f10f msr s3_0_c15_c1_0, x15
+ *[0-9a-f]+: d538f10f mrs x15, s3_0_c15_c1_0
+ *[0-9a-f]+: d518f12f msr s3_0_c15_c1_1, x15
+ *[0-9a-f]+: d538f12f mrs x15, s3_0_c15_c1_1
+ *[0-9a-f]+: d518f14f msr s3_0_c15_c1_2, x15
+ *[0-9a-f]+: d538f14f mrs x15, s3_0_c15_c1_2
+ *[0-9a-f]+: d518f16f msr s3_0_c15_c1_3, x15
+ *[0-9a-f]+: d538f16f mrs x15, s3_0_c15_c1_3
+ *[0-9a-f]+: d518f18f msr s3_0_c15_c1_4, x15
+ *[0-9a-f]+: d538f18f mrs x15, s3_0_c15_c1_4
+ *[0-9a-f]+: d518f1af msr s3_0_c15_c1_5, x15
+ *[0-9a-f]+: d538f1af mrs x15, s3_0_c15_c1_5
+ *[0-9a-f]+: d518f1cf msr s3_0_c15_c1_6, x15
+ *[0-9a-f]+: d538f1cf mrs x15, s3_0_c15_c1_6
+ *[0-9a-f]+: d518f1ef msr s3_0_c15_c1_7, x15
+ *[0-9a-f]+: d538f1ef mrs x15, s3_0_c15_c1_7
+ *[0-9a-f]+: d518f20f msr s3_0_c15_c2_0, x15
+ *[0-9a-f]+: d538f20f mrs x15, s3_0_c15_c2_0
+ *[0-9a-f]+: d518f22f msr s3_0_c15_c2_1, x15
+ *[0-9a-f]+: d538f22f mrs x15, s3_0_c15_c2_1
+ *[0-9a-f]+: d518f24f msr s3_0_c15_c2_2, x15
+ *[0-9a-f]+: d538f24f mrs x15, s3_0_c15_c2_2
+ *[0-9a-f]+: d518f26f msr s3_0_c15_c2_3, x15
+ *[0-9a-f]+: d538f26f mrs x15, s3_0_c15_c2_3
+ *[0-9a-f]+: d518f28f msr s3_0_c15_c2_4, x15
+ *[0-9a-f]+: d538f28f mrs x15, s3_0_c15_c2_4
+ *[0-9a-f]+: d518f2af msr s3_0_c15_c2_5, x15
+ *[0-9a-f]+: d538f2af mrs x15, s3_0_c15_c2_5
+ *[0-9a-f]+: d518f2cf msr s3_0_c15_c2_6, x15
+ *[0-9a-f]+: d538f2cf mrs x15, s3_0_c15_c2_6
+ *[0-9a-f]+: d518f2ef msr s3_0_c15_c2_7, x15
+ *[0-9a-f]+: d538f2ef mrs x15, s3_0_c15_c2_7
+ *[0-9a-f]+: d518f30f msr s3_0_c15_c3_0, x15
+ *[0-9a-f]+: d538f30f mrs x15, s3_0_c15_c3_0
+ *[0-9a-f]+: d518f32f msr s3_0_c15_c3_1, x15
+ *[0-9a-f]+: d538f32f mrs x15, s3_0_c15_c3_1
+ *[0-9a-f]+: d518f34f msr s3_0_c15_c3_2, x15
+ *[0-9a-f]+: d538f34f mrs x15, s3_0_c15_c3_2
+ *[0-9a-f]+: d518f36f msr s3_0_c15_c3_3, x15
+ *[0-9a-f]+: d538f36f mrs x15, s3_0_c15_c3_3
+ *[0-9a-f]+: d518f38f msr s3_0_c15_c3_4, x15
+ *[0-9a-f]+: d538f38f mrs x15, s3_0_c15_c3_4
+ *[0-9a-f]+: d518f3af msr s3_0_c15_c3_5, x15
+ *[0-9a-f]+: d538f3af mrs x15, s3_0_c15_c3_5
+ *[0-9a-f]+: d518f3cf msr s3_0_c15_c3_6, x15
+ *[0-9a-f]+: d538f3cf mrs x15, s3_0_c15_c3_6
+ *[0-9a-f]+: d518f3ef msr s3_0_c15_c3_7, x15
+ *[0-9a-f]+: d538f3ef mrs x15, s3_0_c15_c3_7
+ *[0-9a-f]+: d518f40f msr s3_0_c15_c4_0, x15
+ *[0-9a-f]+: d538f40f mrs x15, s3_0_c15_c4_0
+ *[0-9a-f]+: d518f42f msr s3_0_c15_c4_1, x15
+ *[0-9a-f]+: d538f42f mrs x15, s3_0_c15_c4_1
+ *[0-9a-f]+: d518f44f msr s3_0_c15_c4_2, x15
+ *[0-9a-f]+: d538f44f mrs x15, s3_0_c15_c4_2
+ *[0-9a-f]+: d518f46f msr s3_0_c15_c4_3, x15
+ *[0-9a-f]+: d538f46f mrs x15, s3_0_c15_c4_3
+ *[0-9a-f]+: d518f48f msr s3_0_c15_c4_4, x15
+ *[0-9a-f]+: d538f48f mrs x15, s3_0_c15_c4_4
+ *[0-9a-f]+: d518f4af msr s3_0_c15_c4_5, x15
+ *[0-9a-f]+: d538f4af mrs x15, s3_0_c15_c4_5
+ *[0-9a-f]+: d518f4cf msr s3_0_c15_c4_6, x15
+ *[0-9a-f]+: d538f4cf mrs x15, s3_0_c15_c4_6
+ *[0-9a-f]+: d518f4ef msr s3_0_c15_c4_7, x15
+ *[0-9a-f]+: d538f4ef mrs x15, s3_0_c15_c4_7
+ *[0-9a-f]+: d518f50f msr s3_0_c15_c5_0, x15
+ *[0-9a-f]+: d538f50f mrs x15, s3_0_c15_c5_0
+ *[0-9a-f]+: d518f52f msr s3_0_c15_c5_1, x15
+ *[0-9a-f]+: d538f52f mrs x15, s3_0_c15_c5_1
+ *[0-9a-f]+: d518f54f msr s3_0_c15_c5_2, x15
+ *[0-9a-f]+: d538f54f mrs x15, s3_0_c15_c5_2
+ *[0-9a-f]+: d518f56f msr s3_0_c15_c5_3, x15
+ *[0-9a-f]+: d538f56f mrs x15, s3_0_c15_c5_3
+ *[0-9a-f]+: d518f58f msr s3_0_c15_c5_4, x15
+ *[0-9a-f]+: d538f58f mrs x15, s3_0_c15_c5_4
+ *[0-9a-f]+: d518f5af msr s3_0_c15_c5_5, x15
+ *[0-9a-f]+: d538f5af mrs x15, s3_0_c15_c5_5
+ *[0-9a-f]+: d518f5cf msr s3_0_c15_c5_6, x15
+ *[0-9a-f]+: d538f5cf mrs x15, s3_0_c15_c5_6
+ *[0-9a-f]+: d518f5ef msr s3_0_c15_c5_7, x15
+ *[0-9a-f]+: d538f5ef mrs x15, s3_0_c15_c5_7
+ *[0-9a-f]+: d518f60f msr s3_0_c15_c6_0, x15
+ *[0-9a-f]+: d538f60f mrs x15, s3_0_c15_c6_0
+ *[0-9a-f]+: d518f62f msr s3_0_c15_c6_1, x15
+ *[0-9a-f]+: d538f62f mrs x15, s3_0_c15_c6_1
+ *[0-9a-f]+: d518f64f msr s3_0_c15_c6_2, x15
+ *[0-9a-f]+: d538f64f mrs x15, s3_0_c15_c6_2
+ *[0-9a-f]+: d518f66f msr s3_0_c15_c6_3, x15
+ *[0-9a-f]+: d538f66f mrs x15, s3_0_c15_c6_3
+ *[0-9a-f]+: d518f68f msr s3_0_c15_c6_4, x15
+ *[0-9a-f]+: d538f68f mrs x15, s3_0_c15_c6_4
+ *[0-9a-f]+: d518f6af msr s3_0_c15_c6_5, x15
+ *[0-9a-f]+: d538f6af mrs x15, s3_0_c15_c6_5
+ *[0-9a-f]+: d518f6cf msr s3_0_c15_c6_6, x15
+ *[0-9a-f]+: d538f6cf mrs x15, s3_0_c15_c6_6
+ *[0-9a-f]+: d518f6ef msr s3_0_c15_c6_7, x15
+ *[0-9a-f]+: d538f6ef mrs x15, s3_0_c15_c6_7
+ *[0-9a-f]+: d518f70f msr s3_0_c15_c7_0, x15
+ *[0-9a-f]+: d538f70f mrs x15, s3_0_c15_c7_0
+ *[0-9a-f]+: d518f72f msr s3_0_c15_c7_1, x15
+ *[0-9a-f]+: d538f72f mrs x15, s3_0_c15_c7_1
+ *[0-9a-f]+: d518f74f msr s3_0_c15_c7_2, x15
+ *[0-9a-f]+: d538f74f mrs x15, s3_0_c15_c7_2
+ *[0-9a-f]+: d518f76f msr s3_0_c15_c7_3, x15
+ *[0-9a-f]+: d538f76f mrs x15, s3_0_c15_c7_3
+ *[0-9a-f]+: d518f78f msr s3_0_c15_c7_4, x15
+ *[0-9a-f]+: d538f78f mrs x15, s3_0_c15_c7_4
+ *[0-9a-f]+: d518f7af msr s3_0_c15_c7_5, x15
+ *[0-9a-f]+: d538f7af mrs x15, s3_0_c15_c7_5
+ *[0-9a-f]+: d518f7cf msr s3_0_c15_c7_6, x15
+ *[0-9a-f]+: d538f7cf mrs x15, s3_0_c15_c7_6
+ *[0-9a-f]+: d518f7ef msr s3_0_c15_c7_7, x15
+ *[0-9a-f]+: d538f7ef mrs x15, s3_0_c15_c7_7
+ *[0-9a-f]+: d518f80f msr s3_0_c15_c8_0, x15
+ *[0-9a-f]+: d538f80f mrs x15, s3_0_c15_c8_0
+ *[0-9a-f]+: d518f82f msr s3_0_c15_c8_1, x15
+ *[0-9a-f]+: d538f82f mrs x15, s3_0_c15_c8_1
+ *[0-9a-f]+: d518f84f msr s3_0_c15_c8_2, x15
+ *[0-9a-f]+: d538f84f mrs x15, s3_0_c15_c8_2
+ *[0-9a-f]+: d518f86f msr s3_0_c15_c8_3, x15
+ *[0-9a-f]+: d538f86f mrs x15, s3_0_c15_c8_3
+ *[0-9a-f]+: d518f88f msr s3_0_c15_c8_4, x15
+ *[0-9a-f]+: d538f88f mrs x15, s3_0_c15_c8_4
+ *[0-9a-f]+: d518f8af msr s3_0_c15_c8_5, x15
+ *[0-9a-f]+: d538f8af mrs x15, s3_0_c15_c8_5
+ *[0-9a-f]+: d518f8cf msr s3_0_c15_c8_6, x15
+ *[0-9a-f]+: d538f8cf mrs x15, s3_0_c15_c8_6
+ *[0-9a-f]+: d518f8ef msr s3_0_c15_c8_7, x15
+ *[0-9a-f]+: d538f8ef mrs x15, s3_0_c15_c8_7
+ *[0-9a-f]+: d518f90f msr s3_0_c15_c9_0, x15
+ *[0-9a-f]+: d538f90f mrs x15, s3_0_c15_c9_0
+ *[0-9a-f]+: d518f92f msr s3_0_c15_c9_1, x15
+ *[0-9a-f]+: d538f92f mrs x15, s3_0_c15_c9_1
+ *[0-9a-f]+: d518f94f msr s3_0_c15_c9_2, x15
+ *[0-9a-f]+: d538f94f mrs x15, s3_0_c15_c9_2
+ *[0-9a-f]+: d518f96f msr s3_0_c15_c9_3, x15
+ *[0-9a-f]+: d538f96f mrs x15, s3_0_c15_c9_3
+ *[0-9a-f]+: d518f98f msr s3_0_c15_c9_4, x15
+ *[0-9a-f]+: d538f98f mrs x15, s3_0_c15_c9_4
+ *[0-9a-f]+: d518f9af msr s3_0_c15_c9_5, x15
+ *[0-9a-f]+: d538f9af mrs x15, s3_0_c15_c9_5
+ *[0-9a-f]+: d518f9cf msr s3_0_c15_c9_6, x15
+ *[0-9a-f]+: d538f9cf mrs x15, s3_0_c15_c9_6
+ *[0-9a-f]+: d518f9ef msr s3_0_c15_c9_7, x15
+ *[0-9a-f]+: d538f9ef mrs x15, s3_0_c15_c9_7
+ *[0-9a-f]+: d518fa0f msr s3_0_c15_c10_0, x15
+ *[0-9a-f]+: d538fa0f mrs x15, s3_0_c15_c10_0
+ *[0-9a-f]+: d518fa2f msr s3_0_c15_c10_1, x15
+ *[0-9a-f]+: d538fa2f mrs x15, s3_0_c15_c10_1
+ *[0-9a-f]+: d518fa4f msr s3_0_c15_c10_2, x15
+ *[0-9a-f]+: d538fa4f mrs x15, s3_0_c15_c10_2
+ *[0-9a-f]+: d518fa6f msr s3_0_c15_c10_3, x15
+ *[0-9a-f]+: d538fa6f mrs x15, s3_0_c15_c10_3
+ *[0-9a-f]+: d518fa8f msr s3_0_c15_c10_4, x15
+ *[0-9a-f]+: d538fa8f mrs x15, s3_0_c15_c10_4
+ *[0-9a-f]+: d518faaf msr s3_0_c15_c10_5, x15
+ *[0-9a-f]+: d538faaf mrs x15, s3_0_c15_c10_5
+ *[0-9a-f]+: d518facf msr s3_0_c15_c10_6, x15
+ *[0-9a-f]+: d538facf mrs x15, s3_0_c15_c10_6
+ *[0-9a-f]+: d518faef msr s3_0_c15_c10_7, x15
+ *[0-9a-f]+: d538faef mrs x15, s3_0_c15_c10_7
+ *[0-9a-f]+: d518fb0f msr s3_0_c15_c11_0, x15
+ *[0-9a-f]+: d538fb0f mrs x15, s3_0_c15_c11_0
+ *[0-9a-f]+: d518fb2f msr s3_0_c15_c11_1, x15
+ *[0-9a-f]+: d538fb2f mrs x15, s3_0_c15_c11_1
+ *[0-9a-f]+: d518fb4f msr s3_0_c15_c11_2, x15
+ *[0-9a-f]+: d538fb4f mrs x15, s3_0_c15_c11_2
+ *[0-9a-f]+: d518fb6f msr s3_0_c15_c11_3, x15
+ *[0-9a-f]+: d538fb6f mrs x15, s3_0_c15_c11_3
+ *[0-9a-f]+: d518fb8f msr s3_0_c15_c11_4, x15
+ *[0-9a-f]+: d538fb8f mrs x15, s3_0_c15_c11_4
+ *[0-9a-f]+: d518fbaf msr s3_0_c15_c11_5, x15
+ *[0-9a-f]+: d538fbaf mrs x15, s3_0_c15_c11_5
+ *[0-9a-f]+: d518fbcf msr s3_0_c15_c11_6, x15
+ *[0-9a-f]+: d538fbcf mrs x15, s3_0_c15_c11_6
+ *[0-9a-f]+: d518fbef msr s3_0_c15_c11_7, x15
+ *[0-9a-f]+: d538fbef mrs x15, s3_0_c15_c11_7
+ *[0-9a-f]+: d518fc0f msr s3_0_c15_c12_0, x15
+ *[0-9a-f]+: d538fc0f mrs x15, s3_0_c15_c12_0
+ *[0-9a-f]+: d518fc2f msr s3_0_c15_c12_1, x15
+ *[0-9a-f]+: d538fc2f mrs x15, s3_0_c15_c12_1
+ *[0-9a-f]+: d518fc4f msr s3_0_c15_c12_2, x15
+ *[0-9a-f]+: d538fc4f mrs x15, s3_0_c15_c12_2
+ *[0-9a-f]+: d518fc6f msr s3_0_c15_c12_3, x15
+ *[0-9a-f]+: d538fc6f mrs x15, s3_0_c15_c12_3
+ *[0-9a-f]+: d518fc8f msr s3_0_c15_c12_4, x15
+ *[0-9a-f]+: d538fc8f mrs x15, s3_0_c15_c12_4
+ *[0-9a-f]+: d518fcaf msr s3_0_c15_c12_5, x15
+ *[0-9a-f]+: d538fcaf mrs x15, s3_0_c15_c12_5
+ *[0-9a-f]+: d518fccf msr s3_0_c15_c12_6, x15
+ *[0-9a-f]+: d538fccf mrs x15, s3_0_c15_c12_6
+ *[0-9a-f]+: d518fcef msr s3_0_c15_c12_7, x15
+ *[0-9a-f]+: d538fcef mrs x15, s3_0_c15_c12_7
+ *[0-9a-f]+: d518fd0f msr s3_0_c15_c13_0, x15
+ *[0-9a-f]+: d538fd0f mrs x15, s3_0_c15_c13_0
+ *[0-9a-f]+: d518fd2f msr s3_0_c15_c13_1, x15
+ *[0-9a-f]+: d538fd2f mrs x15, s3_0_c15_c13_1
+ *[0-9a-f]+: d518fd4f msr s3_0_c15_c13_2, x15
+ *[0-9a-f]+: d538fd4f mrs x15, s3_0_c15_c13_2
+ *[0-9a-f]+: d518fd6f msr s3_0_c15_c13_3, x15
+ *[0-9a-f]+: d538fd6f mrs x15, s3_0_c15_c13_3
+ *[0-9a-f]+: d518fd8f msr s3_0_c15_c13_4, x15
+ *[0-9a-f]+: d538fd8f mrs x15, s3_0_c15_c13_4
+ *[0-9a-f]+: d518fdaf msr s3_0_c15_c13_5, x15
+ *[0-9a-f]+: d538fdaf mrs x15, s3_0_c15_c13_5
+ *[0-9a-f]+: d518fdcf msr s3_0_c15_c13_6, x15
+ *[0-9a-f]+: d538fdcf mrs x15, s3_0_c15_c13_6
+ *[0-9a-f]+: d518fdef msr s3_0_c15_c13_7, x15
+ *[0-9a-f]+: d538fdef mrs x15, s3_0_c15_c13_7
+ *[0-9a-f]+: d518fe0f msr s3_0_c15_c14_0, x15
+ *[0-9a-f]+: d538fe0f mrs x15, s3_0_c15_c14_0
+ *[0-9a-f]+: d518fe2f msr s3_0_c15_c14_1, x15
+ *[0-9a-f]+: d538fe2f mrs x15, s3_0_c15_c14_1
+ *[0-9a-f]+: d518fe4f msr s3_0_c15_c14_2, x15
+ *[0-9a-f]+: d538fe4f mrs x15, s3_0_c15_c14_2
+ *[0-9a-f]+: d518fe6f msr s3_0_c15_c14_3, x15
+ *[0-9a-f]+: d538fe6f mrs x15, s3_0_c15_c14_3
+ *[0-9a-f]+: d518fe8f msr s3_0_c15_c14_4, x15
+ *[0-9a-f]+: d538fe8f mrs x15, s3_0_c15_c14_4
+ *[0-9a-f]+: d518feaf msr s3_0_c15_c14_5, x15
+ *[0-9a-f]+: d538feaf mrs x15, s3_0_c15_c14_5
+ *[0-9a-f]+: d518fecf msr s3_0_c15_c14_6, x15
+ *[0-9a-f]+: d538fecf mrs x15, s3_0_c15_c14_6
+ *[0-9a-f]+: d518feef msr s3_0_c15_c14_7, x15
+ *[0-9a-f]+: d538feef mrs x15, s3_0_c15_c14_7
+ *[0-9a-f]+: d518ff0f msr s3_0_c15_c15_0, x15
+ *[0-9a-f]+: d538ff0f mrs x15, s3_0_c15_c15_0
+ *[0-9a-f]+: d518ff2f msr s3_0_c15_c15_1, x15
+ *[0-9a-f]+: d538ff2f mrs x15, s3_0_c15_c15_1
+ *[0-9a-f]+: d518ff4f msr s3_0_c15_c15_2, x15
+ *[0-9a-f]+: d538ff4f mrs x15, s3_0_c15_c15_2
+ *[0-9a-f]+: d518ff6f msr s3_0_c15_c15_3, x15
+ *[0-9a-f]+: d538ff6f mrs x15, s3_0_c15_c15_3
+ *[0-9a-f]+: d518ff8f msr s3_0_c15_c15_4, x15
+ *[0-9a-f]+: d538ff8f mrs x15, s3_0_c15_c15_4
+ *[0-9a-f]+: d518ffaf msr s3_0_c15_c15_5, x15
+ *[0-9a-f]+: d538ffaf mrs x15, s3_0_c15_c15_5
+ *[0-9a-f]+: d518ffcf msr s3_0_c15_c15_6, x15
+ *[0-9a-f]+: d538ffcf mrs x15, s3_0_c15_c15_6
+ *[0-9a-f]+: d518ffef msr s3_0_c15_c15_7, x15
+ *[0-9a-f]+: d538ffef mrs x15, s3_0_c15_c15_7
+ *[0-9a-f]+: d519b00f msr s3_1_c11_c0_0, x15
+ *[0-9a-f]+: d539b00f mrs x15, s3_1_c11_c0_0
+ *[0-9a-f]+: d519b02f msr s3_1_c11_c0_1, x15
+ *[0-9a-f]+: d539b02f mrs x15, s3_1_c11_c0_1
+ *[0-9a-f]+: d519b04f msr s3_1_c11_c0_2, x15
+ *[0-9a-f]+: d539b04f mrs x15, s3_1_c11_c0_2
+ *[0-9a-f]+: d519b06f msr s3_1_c11_c0_3, x15
+ *[0-9a-f]+: d539b06f mrs x15, s3_1_c11_c0_3
+ *[0-9a-f]+: d519b08f msr s3_1_c11_c0_4, x15
+ *[0-9a-f]+: d539b08f mrs x15, s3_1_c11_c0_4
+ *[0-9a-f]+: d519b0af msr s3_1_c11_c0_5, x15
+ *[0-9a-f]+: d539b0af mrs x15, s3_1_c11_c0_5
+ *[0-9a-f]+: d519b0cf msr s3_1_c11_c0_6, x15
+ *[0-9a-f]+: d539b0cf mrs x15, s3_1_c11_c0_6
+ *[0-9a-f]+: d519b0ef msr s3_1_c11_c0_7, x15
+ *[0-9a-f]+: d539b0ef mrs x15, s3_1_c11_c0_7
+ *[0-9a-f]+: d519b10f msr s3_1_c11_c1_0, x15
+ *[0-9a-f]+: d539b10f mrs x15, s3_1_c11_c1_0
+ *[0-9a-f]+: d519b12f msr s3_1_c11_c1_1, x15
+ *[0-9a-f]+: d539b12f mrs x15, s3_1_c11_c1_1
+ *[0-9a-f]+: d519b14f msr s3_1_c11_c1_2, x15
+ *[0-9a-f]+: d539b14f mrs x15, s3_1_c11_c1_2
+ *[0-9a-f]+: d519b16f msr s3_1_c11_c1_3, x15
+ *[0-9a-f]+: d539b16f mrs x15, s3_1_c11_c1_3
+ *[0-9a-f]+: d519b18f msr s3_1_c11_c1_4, x15
+ *[0-9a-f]+: d539b18f mrs x15, s3_1_c11_c1_4
+ *[0-9a-f]+: d519b1af msr s3_1_c11_c1_5, x15
+ *[0-9a-f]+: d539b1af mrs x15, s3_1_c11_c1_5
+ *[0-9a-f]+: d519b1cf msr s3_1_c11_c1_6, x15
+ *[0-9a-f]+: d539b1cf mrs x15, s3_1_c11_c1_6
+ *[0-9a-f]+: d519b1ef msr s3_1_c11_c1_7, x15
+ *[0-9a-f]+: d539b1ef mrs x15, s3_1_c11_c1_7
+ *[0-9a-f]+: d519b20f msr s3_1_c11_c2_0, x15
+ *[0-9a-f]+: d539b20f mrs x15, s3_1_c11_c2_0
+ *[0-9a-f]+: d519b22f msr s3_1_c11_c2_1, x15
+ *[0-9a-f]+: d539b22f mrs x15, s3_1_c11_c2_1
+ *[0-9a-f]+: d519b24f msr s3_1_c11_c2_2, x15
+ *[0-9a-f]+: d539b24f mrs x15, s3_1_c11_c2_2
+ *[0-9a-f]+: d519b26f msr s3_1_c11_c2_3, x15
+ *[0-9a-f]+: d539b26f mrs x15, s3_1_c11_c2_3
+ *[0-9a-f]+: d519b28f msr s3_1_c11_c2_4, x15
+ *[0-9a-f]+: d539b28f mrs x15, s3_1_c11_c2_4
+ *[0-9a-f]+: d519b2af msr s3_1_c11_c2_5, x15
+ *[0-9a-f]+: d539b2af mrs x15, s3_1_c11_c2_5
+ *[0-9a-f]+: d519b2cf msr s3_1_c11_c2_6, x15
+ *[0-9a-f]+: d539b2cf mrs x15, s3_1_c11_c2_6
+ *[0-9a-f]+: d519b2ef msr s3_1_c11_c2_7, x15
+ *[0-9a-f]+: d539b2ef mrs x15, s3_1_c11_c2_7
+ *[0-9a-f]+: d519b30f msr s3_1_c11_c3_0, x15
+ *[0-9a-f]+: d539b30f mrs x15, s3_1_c11_c3_0
+ *[0-9a-f]+: d519b32f msr s3_1_c11_c3_1, x15
+ *[0-9a-f]+: d539b32f mrs x15, s3_1_c11_c3_1
+ *[0-9a-f]+: d519b34f msr s3_1_c11_c3_2, x15
+ *[0-9a-f]+: d539b34f mrs x15, s3_1_c11_c3_2
+ *[0-9a-f]+: d519b36f msr s3_1_c11_c3_3, x15
+ *[0-9a-f]+: d539b36f mrs x15, s3_1_c11_c3_3
+ *[0-9a-f]+: d519b38f msr s3_1_c11_c3_4, x15
+ *[0-9a-f]+: d539b38f mrs x15, s3_1_c11_c3_4
+ *[0-9a-f]+: d519b3af msr s3_1_c11_c3_5, x15
+ *[0-9a-f]+: d539b3af mrs x15, s3_1_c11_c3_5
+ *[0-9a-f]+: d519b3cf msr s3_1_c11_c3_6, x15
+ *[0-9a-f]+: d539b3cf mrs x15, s3_1_c11_c3_6
+ *[0-9a-f]+: d519b3ef msr s3_1_c11_c3_7, x15
+ *[0-9a-f]+: d539b3ef mrs x15, s3_1_c11_c3_7
+ *[0-9a-f]+: d519b40f msr s3_1_c11_c4_0, x15
+ *[0-9a-f]+: d539b40f mrs x15, s3_1_c11_c4_0
+ *[0-9a-f]+: d519b42f msr s3_1_c11_c4_1, x15
+ *[0-9a-f]+: d539b42f mrs x15, s3_1_c11_c4_1
+ *[0-9a-f]+: d519b44f msr s3_1_c11_c4_2, x15
+ *[0-9a-f]+: d539b44f mrs x15, s3_1_c11_c4_2
+ *[0-9a-f]+: d519b46f msr s3_1_c11_c4_3, x15
+ *[0-9a-f]+: d539b46f mrs x15, s3_1_c11_c4_3
+ *[0-9a-f]+: d519b48f msr s3_1_c11_c4_4, x15
+ *[0-9a-f]+: d539b48f mrs x15, s3_1_c11_c4_4
+ *[0-9a-f]+: d519b4af msr s3_1_c11_c4_5, x15
+ *[0-9a-f]+: d539b4af mrs x15, s3_1_c11_c4_5
+ *[0-9a-f]+: d519b4cf msr s3_1_c11_c4_6, x15
+ *[0-9a-f]+: d539b4cf mrs x15, s3_1_c11_c4_6
+ *[0-9a-f]+: d519b4ef msr s3_1_c11_c4_7, x15
+ *[0-9a-f]+: d539b4ef mrs x15, s3_1_c11_c4_7
+ *[0-9a-f]+: d519b50f msr s3_1_c11_c5_0, x15
+ *[0-9a-f]+: d539b50f mrs x15, s3_1_c11_c5_0
+ *[0-9a-f]+: d519b52f msr s3_1_c11_c5_1, x15
+ *[0-9a-f]+: d539b52f mrs x15, s3_1_c11_c5_1
+ *[0-9a-f]+: d519b54f msr s3_1_c11_c5_2, x15
+ *[0-9a-f]+: d539b54f mrs x15, s3_1_c11_c5_2
+ *[0-9a-f]+: d519b56f msr s3_1_c11_c5_3, x15
+ *[0-9a-f]+: d539b56f mrs x15, s3_1_c11_c5_3
+ *[0-9a-f]+: d519b58f msr s3_1_c11_c5_4, x15
+ *[0-9a-f]+: d539b58f mrs x15, s3_1_c11_c5_4
+ *[0-9a-f]+: d519b5af msr s3_1_c11_c5_5, x15
+ *[0-9a-f]+: d539b5af mrs x15, s3_1_c11_c5_5
+ *[0-9a-f]+: d519b5cf msr s3_1_c11_c5_6, x15
+ *[0-9a-f]+: d539b5cf mrs x15, s3_1_c11_c5_6
+ *[0-9a-f]+: d519b5ef msr s3_1_c11_c5_7, x15
+ *[0-9a-f]+: d539b5ef mrs x15, s3_1_c11_c5_7
+ *[0-9a-f]+: d519b60f msr s3_1_c11_c6_0, x15
+ *[0-9a-f]+: d539b60f mrs x15, s3_1_c11_c6_0
+ *[0-9a-f]+: d519b62f msr s3_1_c11_c6_1, x15
+ *[0-9a-f]+: d539b62f mrs x15, s3_1_c11_c6_1
+ *[0-9a-f]+: d519b64f msr s3_1_c11_c6_2, x15
+ *[0-9a-f]+: d539b64f mrs x15, s3_1_c11_c6_2
+ *[0-9a-f]+: d519b66f msr s3_1_c11_c6_3, x15
+ *[0-9a-f]+: d539b66f mrs x15, s3_1_c11_c6_3
+ *[0-9a-f]+: d519b68f msr s3_1_c11_c6_4, x15
+ *[0-9a-f]+: d539b68f mrs x15, s3_1_c11_c6_4
+ *[0-9a-f]+: d519b6af msr s3_1_c11_c6_5, x15
+ *[0-9a-f]+: d539b6af mrs x15, s3_1_c11_c6_5
+ *[0-9a-f]+: d519b6cf msr s3_1_c11_c6_6, x15
+ *[0-9a-f]+: d539b6cf mrs x15, s3_1_c11_c6_6
+ *[0-9a-f]+: d519b6ef msr s3_1_c11_c6_7, x15
+ *[0-9a-f]+: d539b6ef mrs x15, s3_1_c11_c6_7
+ *[0-9a-f]+: d519b70f msr s3_1_c11_c7_0, x15
+ *[0-9a-f]+: d539b70f mrs x15, s3_1_c11_c7_0
+ *[0-9a-f]+: d519b72f msr s3_1_c11_c7_1, x15
+ *[0-9a-f]+: d539b72f mrs x15, s3_1_c11_c7_1
+ *[0-9a-f]+: d519b74f msr s3_1_c11_c7_2, x15
+ *[0-9a-f]+: d539b74f mrs x15, s3_1_c11_c7_2
+ *[0-9a-f]+: d519b76f msr s3_1_c11_c7_3, x15
+ *[0-9a-f]+: d539b76f mrs x15, s3_1_c11_c7_3
+ *[0-9a-f]+: d519b78f msr s3_1_c11_c7_4, x15
+ *[0-9a-f]+: d539b78f mrs x15, s3_1_c11_c7_4
+ *[0-9a-f]+: d519b7af msr s3_1_c11_c7_5, x15
+ *[0-9a-f]+: d539b7af mrs x15, s3_1_c11_c7_5
+ *[0-9a-f]+: d519b7cf msr s3_1_c11_c7_6, x15
+ *[0-9a-f]+: d539b7cf mrs x15, s3_1_c11_c7_6
+ *[0-9a-f]+: d519b7ef msr s3_1_c11_c7_7, x15
+ *[0-9a-f]+: d539b7ef mrs x15, s3_1_c11_c7_7
+ *[0-9a-f]+: d519b80f msr s3_1_c11_c8_0, x15
+ *[0-9a-f]+: d539b80f mrs x15, s3_1_c11_c8_0
+ *[0-9a-f]+: d519b82f msr s3_1_c11_c8_1, x15
+ *[0-9a-f]+: d539b82f mrs x15, s3_1_c11_c8_1
+ *[0-9a-f]+: d519b84f msr s3_1_c11_c8_2, x15
+ *[0-9a-f]+: d539b84f mrs x15, s3_1_c11_c8_2
+ *[0-9a-f]+: d519b86f msr s3_1_c11_c8_3, x15
+ *[0-9a-f]+: d539b86f mrs x15, s3_1_c11_c8_3
+ *[0-9a-f]+: d519b88f msr s3_1_c11_c8_4, x15
+ *[0-9a-f]+: d539b88f mrs x15, s3_1_c11_c8_4
+ *[0-9a-f]+: d519b8af msr s3_1_c11_c8_5, x15
+ *[0-9a-f]+: d539b8af mrs x15, s3_1_c11_c8_5
+ *[0-9a-f]+: d519b8cf msr s3_1_c11_c8_6, x15
+ *[0-9a-f]+: d539b8cf mrs x15, s3_1_c11_c8_6
+ *[0-9a-f]+: d519b8ef msr s3_1_c11_c8_7, x15
+ *[0-9a-f]+: d539b8ef mrs x15, s3_1_c11_c8_7
+ *[0-9a-f]+: d519b90f msr s3_1_c11_c9_0, x15
+ *[0-9a-f]+: d539b90f mrs x15, s3_1_c11_c9_0
+ *[0-9a-f]+: d519b92f msr s3_1_c11_c9_1, x15
+ *[0-9a-f]+: d539b92f mrs x15, s3_1_c11_c9_1
+ *[0-9a-f]+: d519b94f msr s3_1_c11_c9_2, x15
+ *[0-9a-f]+: d539b94f mrs x15, s3_1_c11_c9_2
+ *[0-9a-f]+: d519b96f msr s3_1_c11_c9_3, x15
+ *[0-9a-f]+: d539b96f mrs x15, s3_1_c11_c9_3
+ *[0-9a-f]+: d519b98f msr s3_1_c11_c9_4, x15
+ *[0-9a-f]+: d539b98f mrs x15, s3_1_c11_c9_4
+ *[0-9a-f]+: d519b9af msr s3_1_c11_c9_5, x15
+ *[0-9a-f]+: d539b9af mrs x15, s3_1_c11_c9_5
+ *[0-9a-f]+: d519b9cf msr s3_1_c11_c9_6, x15
+ *[0-9a-f]+: d539b9cf mrs x15, s3_1_c11_c9_6
+ *[0-9a-f]+: d519b9ef msr s3_1_c11_c9_7, x15
+ *[0-9a-f]+: d539b9ef mrs x15, s3_1_c11_c9_7
+ *[0-9a-f]+: d519ba0f msr s3_1_c11_c10_0, x15
+ *[0-9a-f]+: d539ba0f mrs x15, s3_1_c11_c10_0
+ *[0-9a-f]+: d519ba2f msr s3_1_c11_c10_1, x15
+ *[0-9a-f]+: d539ba2f mrs x15, s3_1_c11_c10_1
+ *[0-9a-f]+: d519ba4f msr s3_1_c11_c10_2, x15
+ *[0-9a-f]+: d539ba4f mrs x15, s3_1_c11_c10_2
+ *[0-9a-f]+: d519ba6f msr s3_1_c11_c10_3, x15
+ *[0-9a-f]+: d539ba6f mrs x15, s3_1_c11_c10_3
+ *[0-9a-f]+: d519ba8f msr s3_1_c11_c10_4, x15
+ *[0-9a-f]+: d539ba8f mrs x15, s3_1_c11_c10_4
+ *[0-9a-f]+: d519baaf msr s3_1_c11_c10_5, x15
+ *[0-9a-f]+: d539baaf mrs x15, s3_1_c11_c10_5
+ *[0-9a-f]+: d519bacf msr s3_1_c11_c10_6, x15
+ *[0-9a-f]+: d539bacf mrs x15, s3_1_c11_c10_6
+ *[0-9a-f]+: d519baef msr s3_1_c11_c10_7, x15
+ *[0-9a-f]+: d539baef mrs x15, s3_1_c11_c10_7
+ *[0-9a-f]+: d519bb0f msr s3_1_c11_c11_0, x15
+ *[0-9a-f]+: d539bb0f mrs x15, s3_1_c11_c11_0
+ *[0-9a-f]+: d519bb2f msr s3_1_c11_c11_1, x15
+ *[0-9a-f]+: d539bb2f mrs x15, s3_1_c11_c11_1
+ *[0-9a-f]+: d519bb4f msr s3_1_c11_c11_2, x15
+ *[0-9a-f]+: d539bb4f mrs x15, s3_1_c11_c11_2
+ *[0-9a-f]+: d519bb6f msr s3_1_c11_c11_3, x15
+ *[0-9a-f]+: d539bb6f mrs x15, s3_1_c11_c11_3
+ *[0-9a-f]+: d519bb8f msr s3_1_c11_c11_4, x15
+ *[0-9a-f]+: d539bb8f mrs x15, s3_1_c11_c11_4
+ *[0-9a-f]+: d519bbaf msr s3_1_c11_c11_5, x15
+ *[0-9a-f]+: d539bbaf mrs x15, s3_1_c11_c11_5
+ *[0-9a-f]+: d519bbcf msr s3_1_c11_c11_6, x15
+ *[0-9a-f]+: d539bbcf mrs x15, s3_1_c11_c11_6
+ *[0-9a-f]+: d519bbef msr s3_1_c11_c11_7, x15
+ *[0-9a-f]+: d539bbef mrs x15, s3_1_c11_c11_7
+ *[0-9a-f]+: d519bc0f msr s3_1_c11_c12_0, x15
+ *[0-9a-f]+: d539bc0f mrs x15, s3_1_c11_c12_0
+ *[0-9a-f]+: d519bc2f msr s3_1_c11_c12_1, x15
+ *[0-9a-f]+: d539bc2f mrs x15, s3_1_c11_c12_1
+ *[0-9a-f]+: d519bc4f msr s3_1_c11_c12_2, x15
+ *[0-9a-f]+: d539bc4f mrs x15, s3_1_c11_c12_2
+ *[0-9a-f]+: d519bc6f msr s3_1_c11_c12_3, x15
+ *[0-9a-f]+: d539bc6f mrs x15, s3_1_c11_c12_3
+ *[0-9a-f]+: d519bc8f msr s3_1_c11_c12_4, x15
+ *[0-9a-f]+: d539bc8f mrs x15, s3_1_c11_c12_4
+ *[0-9a-f]+: d519bcaf msr s3_1_c11_c12_5, x15
+ *[0-9a-f]+: d539bcaf mrs x15, s3_1_c11_c12_5
+ *[0-9a-f]+: d519bccf msr s3_1_c11_c12_6, x15
+ *[0-9a-f]+: d539bccf mrs x15, s3_1_c11_c12_6
+ *[0-9a-f]+: d519bcef msr s3_1_c11_c12_7, x15
+ *[0-9a-f]+: d539bcef mrs x15, s3_1_c11_c12_7
+ *[0-9a-f]+: d519bd0f msr s3_1_c11_c13_0, x15
+ *[0-9a-f]+: d539bd0f mrs x15, s3_1_c11_c13_0
+ *[0-9a-f]+: d519bd2f msr s3_1_c11_c13_1, x15
+ *[0-9a-f]+: d539bd2f mrs x15, s3_1_c11_c13_1
+ *[0-9a-f]+: d519bd4f msr s3_1_c11_c13_2, x15
+ *[0-9a-f]+: d539bd4f mrs x15, s3_1_c11_c13_2
+ *[0-9a-f]+: d519bd6f msr s3_1_c11_c13_3, x15
+ *[0-9a-f]+: d539bd6f mrs x15, s3_1_c11_c13_3
+ *[0-9a-f]+: d519bd8f msr s3_1_c11_c13_4, x15
+ *[0-9a-f]+: d539bd8f mrs x15, s3_1_c11_c13_4
+ *[0-9a-f]+: d519bdaf msr s3_1_c11_c13_5, x15
+ *[0-9a-f]+: d539bdaf mrs x15, s3_1_c11_c13_5
+ *[0-9a-f]+: d519bdcf msr s3_1_c11_c13_6, x15
+ *[0-9a-f]+: d539bdcf mrs x15, s3_1_c11_c13_6
+ *[0-9a-f]+: d519bdef msr s3_1_c11_c13_7, x15
+ *[0-9a-f]+: d539bdef mrs x15, s3_1_c11_c13_7
+ *[0-9a-f]+: d519be0f msr s3_1_c11_c14_0, x15
+ *[0-9a-f]+: d539be0f mrs x15, s3_1_c11_c14_0
+ *[0-9a-f]+: d519be2f msr s3_1_c11_c14_1, x15
+ *[0-9a-f]+: d539be2f mrs x15, s3_1_c11_c14_1
+ *[0-9a-f]+: d519be4f msr s3_1_c11_c14_2, x15
+ *[0-9a-f]+: d539be4f mrs x15, s3_1_c11_c14_2
+ *[0-9a-f]+: d519be6f msr s3_1_c11_c14_3, x15
+ *[0-9a-f]+: d539be6f mrs x15, s3_1_c11_c14_3
+ *[0-9a-f]+: d519be8f msr s3_1_c11_c14_4, x15
+ *[0-9a-f]+: d539be8f mrs x15, s3_1_c11_c14_4
+ *[0-9a-f]+: d519beaf msr s3_1_c11_c14_5, x15
+ *[0-9a-f]+: d539beaf mrs x15, s3_1_c11_c14_5
+ *[0-9a-f]+: d519becf msr s3_1_c11_c14_6, x15
+ *[0-9a-f]+: d539becf mrs x15, s3_1_c11_c14_6
+ *[0-9a-f]+: d519beef msr s3_1_c11_c14_7, x15
+ *[0-9a-f]+: d539beef mrs x15, s3_1_c11_c14_7
+ *[0-9a-f]+: d519bf0f msr s3_1_c11_c15_0, x15
+ *[0-9a-f]+: d539bf0f mrs x15, s3_1_c11_c15_0
+ *[0-9a-f]+: d519bf2f msr s3_1_c11_c15_1, x15
+ *[0-9a-f]+: d539bf2f mrs x15, s3_1_c11_c15_1
+ *[0-9a-f]+: d519bf4f msr s3_1_c11_c15_2, x15
+ *[0-9a-f]+: d539bf4f mrs x15, s3_1_c11_c15_2
+ *[0-9a-f]+: d519bf6f msr s3_1_c11_c15_3, x15
+ *[0-9a-f]+: d539bf6f mrs x15, s3_1_c11_c15_3
+ *[0-9a-f]+: d519bf8f msr s3_1_c11_c15_4, x15
+ *[0-9a-f]+: d539bf8f mrs x15, s3_1_c11_c15_4
+ *[0-9a-f]+: d519bfaf msr s3_1_c11_c15_5, x15
+ *[0-9a-f]+: d539bfaf mrs x15, s3_1_c11_c15_5
+ *[0-9a-f]+: d519bfcf msr s3_1_c11_c15_6, x15
+ *[0-9a-f]+: d539bfcf mrs x15, s3_1_c11_c15_6
+ *[0-9a-f]+: d519bfef msr s3_1_c11_c15_7, x15
+ *[0-9a-f]+: d539bfef mrs x15, s3_1_c11_c15_7
+ *[0-9a-f]+: d519f00f msr s3_1_c15_c0_0, x15
+ *[0-9a-f]+: d539f00f mrs x15, s3_1_c15_c0_0
+ *[0-9a-f]+: d519f02f msr s3_1_c15_c0_1, x15
+ *[0-9a-f]+: d539f02f mrs x15, s3_1_c15_c0_1
+ *[0-9a-f]+: d519f04f msr s3_1_c15_c0_2, x15
+ *[0-9a-f]+: d539f04f mrs x15, s3_1_c15_c0_2
+ *[0-9a-f]+: d519f06f msr s3_1_c15_c0_3, x15
+ *[0-9a-f]+: d539f06f mrs x15, s3_1_c15_c0_3
+ *[0-9a-f]+: d519f08f msr s3_1_c15_c0_4, x15
+ *[0-9a-f]+: d539f08f mrs x15, s3_1_c15_c0_4
+ *[0-9a-f]+: d519f0af msr s3_1_c15_c0_5, x15
+ *[0-9a-f]+: d539f0af mrs x15, s3_1_c15_c0_5
+ *[0-9a-f]+: d519f0cf msr s3_1_c15_c0_6, x15
+ *[0-9a-f]+: d539f0cf mrs x15, s3_1_c15_c0_6
+ *[0-9a-f]+: d519f0ef msr s3_1_c15_c0_7, x15
+ *[0-9a-f]+: d539f0ef mrs x15, s3_1_c15_c0_7
+ *[0-9a-f]+: d519f10f msr s3_1_c15_c1_0, x15
+ *[0-9a-f]+: d539f10f mrs x15, s3_1_c15_c1_0
+ *[0-9a-f]+: d519f12f msr s3_1_c15_c1_1, x15
+ *[0-9a-f]+: d539f12f mrs x15, s3_1_c15_c1_1
+ *[0-9a-f]+: d519f14f msr s3_1_c15_c1_2, x15
+ *[0-9a-f]+: d539f14f mrs x15, s3_1_c15_c1_2
+ *[0-9a-f]+: d519f16f msr s3_1_c15_c1_3, x15
+ *[0-9a-f]+: d539f16f mrs x15, s3_1_c15_c1_3
+ *[0-9a-f]+: d519f18f msr s3_1_c15_c1_4, x15
+ *[0-9a-f]+: d539f18f mrs x15, s3_1_c15_c1_4
+ *[0-9a-f]+: d519f1af msr s3_1_c15_c1_5, x15
+ *[0-9a-f]+: d539f1af mrs x15, s3_1_c15_c1_5
+ *[0-9a-f]+: d519f1cf msr s3_1_c15_c1_6, x15
+ *[0-9a-f]+: d539f1cf mrs x15, s3_1_c15_c1_6
+ *[0-9a-f]+: d519f1ef msr s3_1_c15_c1_7, x15
+ *[0-9a-f]+: d539f1ef mrs x15, s3_1_c15_c1_7
+ *[0-9a-f]+: d519f20f msr s3_1_c15_c2_0, x15
+ *[0-9a-f]+: d539f20f mrs x15, s3_1_c15_c2_0
+ *[0-9a-f]+: d519f22f msr s3_1_c15_c2_1, x15
+ *[0-9a-f]+: d539f22f mrs x15, s3_1_c15_c2_1
+ *[0-9a-f]+: d519f24f msr s3_1_c15_c2_2, x15
+ *[0-9a-f]+: d539f24f mrs x15, s3_1_c15_c2_2
+ *[0-9a-f]+: d519f26f msr s3_1_c15_c2_3, x15
+ *[0-9a-f]+: d539f26f mrs x15, s3_1_c15_c2_3
+ *[0-9a-f]+: d519f28f msr s3_1_c15_c2_4, x15
+ *[0-9a-f]+: d539f28f mrs x15, s3_1_c15_c2_4
+ *[0-9a-f]+: d519f2af msr s3_1_c15_c2_5, x15
+ *[0-9a-f]+: d539f2af mrs x15, s3_1_c15_c2_5
+ *[0-9a-f]+: d519f2cf msr s3_1_c15_c2_6, x15
+ *[0-9a-f]+: d539f2cf mrs x15, s3_1_c15_c2_6
+ *[0-9a-f]+: d519f2ef msr s3_1_c15_c2_7, x15
+ *[0-9a-f]+: d539f2ef mrs x15, s3_1_c15_c2_7
+ *[0-9a-f]+: d519f30f msr s3_1_c15_c3_0, x15
+ *[0-9a-f]+: d539f30f mrs x15, s3_1_c15_c3_0
+ *[0-9a-f]+: d519f32f msr s3_1_c15_c3_1, x15
+ *[0-9a-f]+: d539f32f mrs x15, s3_1_c15_c3_1
+ *[0-9a-f]+: d519f34f msr s3_1_c15_c3_2, x15
+ *[0-9a-f]+: d539f34f mrs x15, s3_1_c15_c3_2
+ *[0-9a-f]+: d519f36f msr s3_1_c15_c3_3, x15
+ *[0-9a-f]+: d539f36f mrs x15, s3_1_c15_c3_3
+ *[0-9a-f]+: d519f38f msr s3_1_c15_c3_4, x15
+ *[0-9a-f]+: d539f38f mrs x15, s3_1_c15_c3_4
+ *[0-9a-f]+: d519f3af msr s3_1_c15_c3_5, x15
+ *[0-9a-f]+: d539f3af mrs x15, s3_1_c15_c3_5
+ *[0-9a-f]+: d519f3cf msr s3_1_c15_c3_6, x15
+ *[0-9a-f]+: d539f3cf mrs x15, s3_1_c15_c3_6
+ *[0-9a-f]+: d519f3ef msr s3_1_c15_c3_7, x15
+ *[0-9a-f]+: d539f3ef mrs x15, s3_1_c15_c3_7
+ *[0-9a-f]+: d519f40f msr s3_1_c15_c4_0, x15
+ *[0-9a-f]+: d539f40f mrs x15, s3_1_c15_c4_0
+ *[0-9a-f]+: d519f42f msr s3_1_c15_c4_1, x15
+ *[0-9a-f]+: d539f42f mrs x15, s3_1_c15_c4_1
+ *[0-9a-f]+: d519f44f msr s3_1_c15_c4_2, x15
+ *[0-9a-f]+: d539f44f mrs x15, s3_1_c15_c4_2
+ *[0-9a-f]+: d519f46f msr s3_1_c15_c4_3, x15
+ *[0-9a-f]+: d539f46f mrs x15, s3_1_c15_c4_3
+ *[0-9a-f]+: d519f48f msr s3_1_c15_c4_4, x15
+ *[0-9a-f]+: d539f48f mrs x15, s3_1_c15_c4_4
+ *[0-9a-f]+: d519f4af msr s3_1_c15_c4_5, x15
+ *[0-9a-f]+: d539f4af mrs x15, s3_1_c15_c4_5
+ *[0-9a-f]+: d519f4cf msr s3_1_c15_c4_6, x15
+ *[0-9a-f]+: d539f4cf mrs x15, s3_1_c15_c4_6
+ *[0-9a-f]+: d519f4ef msr s3_1_c15_c4_7, x15
+ *[0-9a-f]+: d539f4ef mrs x15, s3_1_c15_c4_7
+ *[0-9a-f]+: d519f50f msr s3_1_c15_c5_0, x15
+ *[0-9a-f]+: d539f50f mrs x15, s3_1_c15_c5_0
+ *[0-9a-f]+: d519f52f msr s3_1_c15_c5_1, x15
+ *[0-9a-f]+: d539f52f mrs x15, s3_1_c15_c5_1
+ *[0-9a-f]+: d519f54f msr s3_1_c15_c5_2, x15
+ *[0-9a-f]+: d539f54f mrs x15, s3_1_c15_c5_2
+ *[0-9a-f]+: d519f56f msr s3_1_c15_c5_3, x15
+ *[0-9a-f]+: d539f56f mrs x15, s3_1_c15_c5_3
+ *[0-9a-f]+: d519f58f msr s3_1_c15_c5_4, x15
+ *[0-9a-f]+: d539f58f mrs x15, s3_1_c15_c5_4
+ *[0-9a-f]+: d519f5af msr s3_1_c15_c5_5, x15
+ *[0-9a-f]+: d539f5af mrs x15, s3_1_c15_c5_5
+ *[0-9a-f]+: d519f5cf msr s3_1_c15_c5_6, x15
+ *[0-9a-f]+: d539f5cf mrs x15, s3_1_c15_c5_6
+ *[0-9a-f]+: d519f5ef msr s3_1_c15_c5_7, x15
+ *[0-9a-f]+: d539f5ef mrs x15, s3_1_c15_c5_7
+ *[0-9a-f]+: d519f60f msr s3_1_c15_c6_0, x15
+ *[0-9a-f]+: d539f60f mrs x15, s3_1_c15_c6_0
+ *[0-9a-f]+: d519f62f msr s3_1_c15_c6_1, x15
+ *[0-9a-f]+: d539f62f mrs x15, s3_1_c15_c6_1
+ *[0-9a-f]+: d519f64f msr s3_1_c15_c6_2, x15
+ *[0-9a-f]+: d539f64f mrs x15, s3_1_c15_c6_2
+ *[0-9a-f]+: d519f66f msr s3_1_c15_c6_3, x15
+ *[0-9a-f]+: d539f66f mrs x15, s3_1_c15_c6_3
+ *[0-9a-f]+: d519f68f msr s3_1_c15_c6_4, x15
+ *[0-9a-f]+: d539f68f mrs x15, s3_1_c15_c6_4
+ *[0-9a-f]+: d519f6af msr s3_1_c15_c6_5, x15
+ *[0-9a-f]+: d539f6af mrs x15, s3_1_c15_c6_5
+ *[0-9a-f]+: d519f6cf msr s3_1_c15_c6_6, x15
+ *[0-9a-f]+: d539f6cf mrs x15, s3_1_c15_c6_6
+ *[0-9a-f]+: d519f6ef msr s3_1_c15_c6_7, x15
+ *[0-9a-f]+: d539f6ef mrs x15, s3_1_c15_c6_7
+ *[0-9a-f]+: d519f70f msr s3_1_c15_c7_0, x15
+ *[0-9a-f]+: d539f70f mrs x15, s3_1_c15_c7_0
+ *[0-9a-f]+: d519f72f msr s3_1_c15_c7_1, x15
+ *[0-9a-f]+: d539f72f mrs x15, s3_1_c15_c7_1
+ *[0-9a-f]+: d519f74f msr s3_1_c15_c7_2, x15
+ *[0-9a-f]+: d539f74f mrs x15, s3_1_c15_c7_2
+ *[0-9a-f]+: d519f76f msr s3_1_c15_c7_3, x15
+ *[0-9a-f]+: d539f76f mrs x15, s3_1_c15_c7_3
+ *[0-9a-f]+: d519f78f msr s3_1_c15_c7_4, x15
+ *[0-9a-f]+: d539f78f mrs x15, s3_1_c15_c7_4
+ *[0-9a-f]+: d519f7af msr s3_1_c15_c7_5, x15
+ *[0-9a-f]+: d539f7af mrs x15, s3_1_c15_c7_5
+ *[0-9a-f]+: d519f7cf msr s3_1_c15_c7_6, x15
+ *[0-9a-f]+: d539f7cf mrs x15, s3_1_c15_c7_6
+ *[0-9a-f]+: d519f7ef msr s3_1_c15_c7_7, x15
+ *[0-9a-f]+: d539f7ef mrs x15, s3_1_c15_c7_7
+ *[0-9a-f]+: d519f80f msr s3_1_c15_c8_0, x15
+ *[0-9a-f]+: d539f80f mrs x15, s3_1_c15_c8_0
+ *[0-9a-f]+: d519f82f msr s3_1_c15_c8_1, x15
+ *[0-9a-f]+: d539f82f mrs x15, s3_1_c15_c8_1
+ *[0-9a-f]+: d519f84f msr s3_1_c15_c8_2, x15
+ *[0-9a-f]+: d539f84f mrs x15, s3_1_c15_c8_2
+ *[0-9a-f]+: d519f86f msr s3_1_c15_c8_3, x15
+ *[0-9a-f]+: d539f86f mrs x15, s3_1_c15_c8_3
+ *[0-9a-f]+: d519f88f msr s3_1_c15_c8_4, x15
+ *[0-9a-f]+: d539f88f mrs x15, s3_1_c15_c8_4
+ *[0-9a-f]+: d519f8af msr s3_1_c15_c8_5, x15
+ *[0-9a-f]+: d539f8af mrs x15, s3_1_c15_c8_5
+ *[0-9a-f]+: d519f8cf msr s3_1_c15_c8_6, x15
+ *[0-9a-f]+: d539f8cf mrs x15, s3_1_c15_c8_6
+ *[0-9a-f]+: d519f8ef msr s3_1_c15_c8_7, x15
+ *[0-9a-f]+: d539f8ef mrs x15, s3_1_c15_c8_7
+ *[0-9a-f]+: d519f90f msr s3_1_c15_c9_0, x15
+ *[0-9a-f]+: d539f90f mrs x15, s3_1_c15_c9_0
+ *[0-9a-f]+: d519f92f msr s3_1_c15_c9_1, x15
+ *[0-9a-f]+: d539f92f mrs x15, s3_1_c15_c9_1
+ *[0-9a-f]+: d519f94f msr s3_1_c15_c9_2, x15
+ *[0-9a-f]+: d539f94f mrs x15, s3_1_c15_c9_2
+ *[0-9a-f]+: d519f96f msr s3_1_c15_c9_3, x15
+ *[0-9a-f]+: d539f96f mrs x15, s3_1_c15_c9_3
+ *[0-9a-f]+: d519f98f msr s3_1_c15_c9_4, x15
+ *[0-9a-f]+: d539f98f mrs x15, s3_1_c15_c9_4
+ *[0-9a-f]+: d519f9af msr s3_1_c15_c9_5, x15
+ *[0-9a-f]+: d539f9af mrs x15, s3_1_c15_c9_5
+ *[0-9a-f]+: d519f9cf msr s3_1_c15_c9_6, x15
+ *[0-9a-f]+: d539f9cf mrs x15, s3_1_c15_c9_6
+ *[0-9a-f]+: d519f9ef msr s3_1_c15_c9_7, x15
+ *[0-9a-f]+: d539f9ef mrs x15, s3_1_c15_c9_7
+ *[0-9a-f]+: d519fa0f msr s3_1_c15_c10_0, x15
+ *[0-9a-f]+: d539fa0f mrs x15, s3_1_c15_c10_0
+ *[0-9a-f]+: d519fa2f msr s3_1_c15_c10_1, x15
+ *[0-9a-f]+: d539fa2f mrs x15, s3_1_c15_c10_1
+ *[0-9a-f]+: d519fa4f msr s3_1_c15_c10_2, x15
+ *[0-9a-f]+: d539fa4f mrs x15, s3_1_c15_c10_2
+ *[0-9a-f]+: d519fa6f msr s3_1_c15_c10_3, x15
+ *[0-9a-f]+: d539fa6f mrs x15, s3_1_c15_c10_3
+ *[0-9a-f]+: d519fa8f msr s3_1_c15_c10_4, x15
+ *[0-9a-f]+: d539fa8f mrs x15, s3_1_c15_c10_4
+ *[0-9a-f]+: d519faaf msr s3_1_c15_c10_5, x15
+ *[0-9a-f]+: d539faaf mrs x15, s3_1_c15_c10_5
+ *[0-9a-f]+: d519facf msr s3_1_c15_c10_6, x15
+ *[0-9a-f]+: d539facf mrs x15, s3_1_c15_c10_6
+ *[0-9a-f]+: d519faef msr s3_1_c15_c10_7, x15
+ *[0-9a-f]+: d539faef mrs x15, s3_1_c15_c10_7
+ *[0-9a-f]+: d519fb0f msr s3_1_c15_c11_0, x15
+ *[0-9a-f]+: d539fb0f mrs x15, s3_1_c15_c11_0
+ *[0-9a-f]+: d519fb2f msr s3_1_c15_c11_1, x15
+ *[0-9a-f]+: d539fb2f mrs x15, s3_1_c15_c11_1
+ *[0-9a-f]+: d519fb4f msr s3_1_c15_c11_2, x15
+ *[0-9a-f]+: d539fb4f mrs x15, s3_1_c15_c11_2
+ *[0-9a-f]+: d519fb6f msr s3_1_c15_c11_3, x15
+ *[0-9a-f]+: d539fb6f mrs x15, s3_1_c15_c11_3
+ *[0-9a-f]+: d519fb8f msr s3_1_c15_c11_4, x15
+ *[0-9a-f]+: d539fb8f mrs x15, s3_1_c15_c11_4
+ *[0-9a-f]+: d519fbaf msr s3_1_c15_c11_5, x15
+ *[0-9a-f]+: d539fbaf mrs x15, s3_1_c15_c11_5
+ *[0-9a-f]+: d519fbcf msr s3_1_c15_c11_6, x15
+ *[0-9a-f]+: d539fbcf mrs x15, s3_1_c15_c11_6
+ *[0-9a-f]+: d519fbef msr s3_1_c15_c11_7, x15
+ *[0-9a-f]+: d539fbef mrs x15, s3_1_c15_c11_7
+ *[0-9a-f]+: d519fc0f msr s3_1_c15_c12_0, x15
+ *[0-9a-f]+: d539fc0f mrs x15, s3_1_c15_c12_0
+ *[0-9a-f]+: d519fc2f msr s3_1_c15_c12_1, x15
+ *[0-9a-f]+: d539fc2f mrs x15, s3_1_c15_c12_1
+ *[0-9a-f]+: d519fc4f msr s3_1_c15_c12_2, x15
+ *[0-9a-f]+: d539fc4f mrs x15, s3_1_c15_c12_2
+ *[0-9a-f]+: d519fc6f msr s3_1_c15_c12_3, x15
+ *[0-9a-f]+: d539fc6f mrs x15, s3_1_c15_c12_3
+ *[0-9a-f]+: d519fc8f msr s3_1_c15_c12_4, x15
+ *[0-9a-f]+: d539fc8f mrs x15, s3_1_c15_c12_4
+ *[0-9a-f]+: d519fcaf msr s3_1_c15_c12_5, x15
+ *[0-9a-f]+: d539fcaf mrs x15, s3_1_c15_c12_5
+ *[0-9a-f]+: d519fccf msr s3_1_c15_c12_6, x15
+ *[0-9a-f]+: d539fccf mrs x15, s3_1_c15_c12_6
+ *[0-9a-f]+: d519fcef msr s3_1_c15_c12_7, x15
+ *[0-9a-f]+: d539fcef mrs x15, s3_1_c15_c12_7
+ *[0-9a-f]+: d519fd0f msr s3_1_c15_c13_0, x15
+ *[0-9a-f]+: d539fd0f mrs x15, s3_1_c15_c13_0
+ *[0-9a-f]+: d519fd2f msr s3_1_c15_c13_1, x15
+ *[0-9a-f]+: d539fd2f mrs x15, s3_1_c15_c13_1
+ *[0-9a-f]+: d519fd4f msr s3_1_c15_c13_2, x15
+ *[0-9a-f]+: d539fd4f mrs x15, s3_1_c15_c13_2
+ *[0-9a-f]+: d519fd6f msr s3_1_c15_c13_3, x15
+ *[0-9a-f]+: d539fd6f mrs x15, s3_1_c15_c13_3
+ *[0-9a-f]+: d519fd8f msr s3_1_c15_c13_4, x15
+ *[0-9a-f]+: d539fd8f mrs x15, s3_1_c15_c13_4
+ *[0-9a-f]+: d519fdaf msr s3_1_c15_c13_5, x15
+ *[0-9a-f]+: d539fdaf mrs x15, s3_1_c15_c13_5
+ *[0-9a-f]+: d519fdcf msr s3_1_c15_c13_6, x15
+ *[0-9a-f]+: d539fdcf mrs x15, s3_1_c15_c13_6
+ *[0-9a-f]+: d519fdef msr s3_1_c15_c13_7, x15
+ *[0-9a-f]+: d539fdef mrs x15, s3_1_c15_c13_7
+ *[0-9a-f]+: d519fe0f msr s3_1_c15_c14_0, x15
+ *[0-9a-f]+: d539fe0f mrs x15, s3_1_c15_c14_0
+ *[0-9a-f]+: d519fe2f msr s3_1_c15_c14_1, x15
+ *[0-9a-f]+: d539fe2f mrs x15, s3_1_c15_c14_1
+ *[0-9a-f]+: d519fe4f msr s3_1_c15_c14_2, x15
+ *[0-9a-f]+: d539fe4f mrs x15, s3_1_c15_c14_2
+ *[0-9a-f]+: d519fe6f msr s3_1_c15_c14_3, x15
+ *[0-9a-f]+: d539fe6f mrs x15, s3_1_c15_c14_3
+ *[0-9a-f]+: d519fe8f msr s3_1_c15_c14_4, x15
+ *[0-9a-f]+: d539fe8f mrs x15, s3_1_c15_c14_4
+ *[0-9a-f]+: d519feaf msr s3_1_c15_c14_5, x15
+ *[0-9a-f]+: d539feaf mrs x15, s3_1_c15_c14_5
+ *[0-9a-f]+: d519fecf msr s3_1_c15_c14_6, x15
+ *[0-9a-f]+: d539fecf mrs x15, s3_1_c15_c14_6
+ *[0-9a-f]+: d519feef msr s3_1_c15_c14_7, x15
+ *[0-9a-f]+: d539feef mrs x15, s3_1_c15_c14_7
+ *[0-9a-f]+: d519ff0f msr s3_1_c15_c15_0, x15
+ *[0-9a-f]+: d539ff0f mrs x15, s3_1_c15_c15_0
+ *[0-9a-f]+: d519ff2f msr s3_1_c15_c15_1, x15
+ *[0-9a-f]+: d539ff2f mrs x15, s3_1_c15_c15_1
+ *[0-9a-f]+: d519ff4f msr s3_1_c15_c15_2, x15
+ *[0-9a-f]+: d539ff4f mrs x15, s3_1_c15_c15_2
+ *[0-9a-f]+: d519ff6f msr s3_1_c15_c15_3, x15
+ *[0-9a-f]+: d539ff6f mrs x15, s3_1_c15_c15_3
+ *[0-9a-f]+: d519ff8f msr s3_1_c15_c15_4, x15
+ *[0-9a-f]+: d539ff8f mrs x15, s3_1_c15_c15_4
+ *[0-9a-f]+: d519ffaf msr s3_1_c15_c15_5, x15
+ *[0-9a-f]+: d539ffaf mrs x15, s3_1_c15_c15_5
+ *[0-9a-f]+: d519ffcf msr s3_1_c15_c15_6, x15
+ *[0-9a-f]+: d539ffcf mrs x15, s3_1_c15_c15_6
+ *[0-9a-f]+: d519ffef msr s3_1_c15_c15_7, x15
+ *[0-9a-f]+: d539ffef mrs x15, s3_1_c15_c15_7
+ *[0-9a-f]+: d51ab00f msr s3_2_c11_c0_0, x15
+ *[0-9a-f]+: d53ab00f mrs x15, s3_2_c11_c0_0
+ *[0-9a-f]+: d51ab02f msr s3_2_c11_c0_1, x15
+ *[0-9a-f]+: d53ab02f mrs x15, s3_2_c11_c0_1
+ *[0-9a-f]+: d51ab04f msr s3_2_c11_c0_2, x15
+ *[0-9a-f]+: d53ab04f mrs x15, s3_2_c11_c0_2
+ *[0-9a-f]+: d51ab06f msr s3_2_c11_c0_3, x15
+ *[0-9a-f]+: d53ab06f mrs x15, s3_2_c11_c0_3
+ *[0-9a-f]+: d51ab08f msr s3_2_c11_c0_4, x15
+ *[0-9a-f]+: d53ab08f mrs x15, s3_2_c11_c0_4
+ *[0-9a-f]+: d51ab0af msr s3_2_c11_c0_5, x15
+ *[0-9a-f]+: d53ab0af mrs x15, s3_2_c11_c0_5
+ *[0-9a-f]+: d51ab0cf msr s3_2_c11_c0_6, x15
+ *[0-9a-f]+: d53ab0cf mrs x15, s3_2_c11_c0_6
+ *[0-9a-f]+: d51ab0ef msr s3_2_c11_c0_7, x15
+ *[0-9a-f]+: d53ab0ef mrs x15, s3_2_c11_c0_7
+ *[0-9a-f]+: d51ab10f msr s3_2_c11_c1_0, x15
+ *[0-9a-f]+: d53ab10f mrs x15, s3_2_c11_c1_0
+ *[0-9a-f]+: d51ab12f msr s3_2_c11_c1_1, x15
+ *[0-9a-f]+: d53ab12f mrs x15, s3_2_c11_c1_1
+ *[0-9a-f]+: d51ab14f msr s3_2_c11_c1_2, x15
+ *[0-9a-f]+: d53ab14f mrs x15, s3_2_c11_c1_2
+ *[0-9a-f]+: d51ab16f msr s3_2_c11_c1_3, x15
+ *[0-9a-f]+: d53ab16f mrs x15, s3_2_c11_c1_3
+ *[0-9a-f]+: d51ab18f msr s3_2_c11_c1_4, x15
+ *[0-9a-f]+: d53ab18f mrs x15, s3_2_c11_c1_4
+ *[0-9a-f]+: d51ab1af msr s3_2_c11_c1_5, x15
+ *[0-9a-f]+: d53ab1af mrs x15, s3_2_c11_c1_5
+ *[0-9a-f]+: d51ab1cf msr s3_2_c11_c1_6, x15
+ *[0-9a-f]+: d53ab1cf mrs x15, s3_2_c11_c1_6
+ *[0-9a-f]+: d51ab1ef msr s3_2_c11_c1_7, x15
+ *[0-9a-f]+: d53ab1ef mrs x15, s3_2_c11_c1_7
+ *[0-9a-f]+: d51ab20f msr s3_2_c11_c2_0, x15
+ *[0-9a-f]+: d53ab20f mrs x15, s3_2_c11_c2_0
+ *[0-9a-f]+: d51ab22f msr s3_2_c11_c2_1, x15
+ *[0-9a-f]+: d53ab22f mrs x15, s3_2_c11_c2_1
+ *[0-9a-f]+: d51ab24f msr s3_2_c11_c2_2, x15
+ *[0-9a-f]+: d53ab24f mrs x15, s3_2_c11_c2_2
+ *[0-9a-f]+: d51ab26f msr s3_2_c11_c2_3, x15
+ *[0-9a-f]+: d53ab26f mrs x15, s3_2_c11_c2_3
+ *[0-9a-f]+: d51ab28f msr s3_2_c11_c2_4, x15
+ *[0-9a-f]+: d53ab28f mrs x15, s3_2_c11_c2_4
+ *[0-9a-f]+: d51ab2af msr s3_2_c11_c2_5, x15
+ *[0-9a-f]+: d53ab2af mrs x15, s3_2_c11_c2_5
+ *[0-9a-f]+: d51ab2cf msr s3_2_c11_c2_6, x15
+ *[0-9a-f]+: d53ab2cf mrs x15, s3_2_c11_c2_6
+ *[0-9a-f]+: d51ab2ef msr s3_2_c11_c2_7, x15
+ *[0-9a-f]+: d53ab2ef mrs x15, s3_2_c11_c2_7
+ *[0-9a-f]+: d51ab30f msr s3_2_c11_c3_0, x15
+ *[0-9a-f]+: d53ab30f mrs x15, s3_2_c11_c3_0
+ *[0-9a-f]+: d51ab32f msr s3_2_c11_c3_1, x15
+ *[0-9a-f]+: d53ab32f mrs x15, s3_2_c11_c3_1
+ *[0-9a-f]+: d51ab34f msr s3_2_c11_c3_2, x15
+ *[0-9a-f]+: d53ab34f mrs x15, s3_2_c11_c3_2
+ *[0-9a-f]+: d51ab36f msr s3_2_c11_c3_3, x15
+ *[0-9a-f]+: d53ab36f mrs x15, s3_2_c11_c3_3
+ *[0-9a-f]+: d51ab38f msr s3_2_c11_c3_4, x15
+ *[0-9a-f]+: d53ab38f mrs x15, s3_2_c11_c3_4
+ *[0-9a-f]+: d51ab3af msr s3_2_c11_c3_5, x15
+ *[0-9a-f]+: d53ab3af mrs x15, s3_2_c11_c3_5
+ *[0-9a-f]+: d51ab3cf msr s3_2_c11_c3_6, x15
+ *[0-9a-f]+: d53ab3cf mrs x15, s3_2_c11_c3_6
+ *[0-9a-f]+: d51ab3ef msr s3_2_c11_c3_7, x15
+ *[0-9a-f]+: d53ab3ef mrs x15, s3_2_c11_c3_7
+ *[0-9a-f]+: d51ab40f msr s3_2_c11_c4_0, x15
+ *[0-9a-f]+: d53ab40f mrs x15, s3_2_c11_c4_0
+ *[0-9a-f]+: d51ab42f msr s3_2_c11_c4_1, x15
+ *[0-9a-f]+: d53ab42f mrs x15, s3_2_c11_c4_1
+ *[0-9a-f]+: d51ab44f msr s3_2_c11_c4_2, x15
+ *[0-9a-f]+: d53ab44f mrs x15, s3_2_c11_c4_2
+ *[0-9a-f]+: d51ab46f msr s3_2_c11_c4_3, x15
+ *[0-9a-f]+: d53ab46f mrs x15, s3_2_c11_c4_3
+ *[0-9a-f]+: d51ab48f msr s3_2_c11_c4_4, x15
+ *[0-9a-f]+: d53ab48f mrs x15, s3_2_c11_c4_4
+ *[0-9a-f]+: d51ab4af msr s3_2_c11_c4_5, x15
+ *[0-9a-f]+: d53ab4af mrs x15, s3_2_c11_c4_5
+ *[0-9a-f]+: d51ab4cf msr s3_2_c11_c4_6, x15
+ *[0-9a-f]+: d53ab4cf mrs x15, s3_2_c11_c4_6
+ *[0-9a-f]+: d51ab4ef msr s3_2_c11_c4_7, x15
+ *[0-9a-f]+: d53ab4ef mrs x15, s3_2_c11_c4_7
+ *[0-9a-f]+: d51ab50f msr s3_2_c11_c5_0, x15
+ *[0-9a-f]+: d53ab50f mrs x15, s3_2_c11_c5_0
+ *[0-9a-f]+: d51ab52f msr s3_2_c11_c5_1, x15
+ *[0-9a-f]+: d53ab52f mrs x15, s3_2_c11_c5_1
+ *[0-9a-f]+: d51ab54f msr s3_2_c11_c5_2, x15
+ *[0-9a-f]+: d53ab54f mrs x15, s3_2_c11_c5_2
+ *[0-9a-f]+: d51ab56f msr s3_2_c11_c5_3, x15
+ *[0-9a-f]+: d53ab56f mrs x15, s3_2_c11_c5_3
+ *[0-9a-f]+: d51ab58f msr s3_2_c11_c5_4, x15
+ *[0-9a-f]+: d53ab58f mrs x15, s3_2_c11_c5_4
+ *[0-9a-f]+: d51ab5af msr s3_2_c11_c5_5, x15
+ *[0-9a-f]+: d53ab5af mrs x15, s3_2_c11_c5_5
+ *[0-9a-f]+: d51ab5cf msr s3_2_c11_c5_6, x15
+ *[0-9a-f]+: d53ab5cf mrs x15, s3_2_c11_c5_6
+ *[0-9a-f]+: d51ab5ef msr s3_2_c11_c5_7, x15
+ *[0-9a-f]+: d53ab5ef mrs x15, s3_2_c11_c5_7
+ *[0-9a-f]+: d51ab60f msr s3_2_c11_c6_0, x15
+ *[0-9a-f]+: d53ab60f mrs x15, s3_2_c11_c6_0
+ *[0-9a-f]+: d51ab62f msr s3_2_c11_c6_1, x15
+ *[0-9a-f]+: d53ab62f mrs x15, s3_2_c11_c6_1
+ *[0-9a-f]+: d51ab64f msr s3_2_c11_c6_2, x15
+ *[0-9a-f]+: d53ab64f mrs x15, s3_2_c11_c6_2
+ *[0-9a-f]+: d51ab66f msr s3_2_c11_c6_3, x15
+ *[0-9a-f]+: d53ab66f mrs x15, s3_2_c11_c6_3
+ *[0-9a-f]+: d51ab68f msr s3_2_c11_c6_4, x15
+ *[0-9a-f]+: d53ab68f mrs x15, s3_2_c11_c6_4
+ *[0-9a-f]+: d51ab6af msr s3_2_c11_c6_5, x15
+ *[0-9a-f]+: d53ab6af mrs x15, s3_2_c11_c6_5
+ *[0-9a-f]+: d51ab6cf msr s3_2_c11_c6_6, x15
+ *[0-9a-f]+: d53ab6cf mrs x15, s3_2_c11_c6_6
+ *[0-9a-f]+: d51ab6ef msr s3_2_c11_c6_7, x15
+ *[0-9a-f]+: d53ab6ef mrs x15, s3_2_c11_c6_7
+ *[0-9a-f]+: d51ab70f msr s3_2_c11_c7_0, x15
+ *[0-9a-f]+: d53ab70f mrs x15, s3_2_c11_c7_0
+ *[0-9a-f]+: d51ab72f msr s3_2_c11_c7_1, x15
+ *[0-9a-f]+: d53ab72f mrs x15, s3_2_c11_c7_1
+ *[0-9a-f]+: d51ab74f msr s3_2_c11_c7_2, x15
+ *[0-9a-f]+: d53ab74f mrs x15, s3_2_c11_c7_2
+ *[0-9a-f]+: d51ab76f msr s3_2_c11_c7_3, x15
+ *[0-9a-f]+: d53ab76f mrs x15, s3_2_c11_c7_3
+ *[0-9a-f]+: d51ab78f msr s3_2_c11_c7_4, x15
+ *[0-9a-f]+: d53ab78f mrs x15, s3_2_c11_c7_4
+ *[0-9a-f]+: d51ab7af msr s3_2_c11_c7_5, x15
+ *[0-9a-f]+: d53ab7af mrs x15, s3_2_c11_c7_5
+ *[0-9a-f]+: d51ab7cf msr s3_2_c11_c7_6, x15
+ *[0-9a-f]+: d53ab7cf mrs x15, s3_2_c11_c7_6
+ *[0-9a-f]+: d51ab7ef msr s3_2_c11_c7_7, x15
+ *[0-9a-f]+: d53ab7ef mrs x15, s3_2_c11_c7_7
+ *[0-9a-f]+: d51ab80f msr s3_2_c11_c8_0, x15
+ *[0-9a-f]+: d53ab80f mrs x15, s3_2_c11_c8_0
+ *[0-9a-f]+: d51ab82f msr s3_2_c11_c8_1, x15
+ *[0-9a-f]+: d53ab82f mrs x15, s3_2_c11_c8_1
+ *[0-9a-f]+: d51ab84f msr s3_2_c11_c8_2, x15
+ *[0-9a-f]+: d53ab84f mrs x15, s3_2_c11_c8_2
+ *[0-9a-f]+: d51ab86f msr s3_2_c11_c8_3, x15
+ *[0-9a-f]+: d53ab86f mrs x15, s3_2_c11_c8_3
+ *[0-9a-f]+: d51ab88f msr s3_2_c11_c8_4, x15
+ *[0-9a-f]+: d53ab88f mrs x15, s3_2_c11_c8_4
+ *[0-9a-f]+: d51ab8af msr s3_2_c11_c8_5, x15
+ *[0-9a-f]+: d53ab8af mrs x15, s3_2_c11_c8_5
+ *[0-9a-f]+: d51ab8cf msr s3_2_c11_c8_6, x15
+ *[0-9a-f]+: d53ab8cf mrs x15, s3_2_c11_c8_6
+ *[0-9a-f]+: d51ab8ef msr s3_2_c11_c8_7, x15
+ *[0-9a-f]+: d53ab8ef mrs x15, s3_2_c11_c8_7
+ *[0-9a-f]+: d51ab90f msr s3_2_c11_c9_0, x15
+ *[0-9a-f]+: d53ab90f mrs x15, s3_2_c11_c9_0
+ *[0-9a-f]+: d51ab92f msr s3_2_c11_c9_1, x15
+ *[0-9a-f]+: d53ab92f mrs x15, s3_2_c11_c9_1
+ *[0-9a-f]+: d51ab94f msr s3_2_c11_c9_2, x15
+ *[0-9a-f]+: d53ab94f mrs x15, s3_2_c11_c9_2
+ *[0-9a-f]+: d51ab96f msr s3_2_c11_c9_3, x15
+ *[0-9a-f]+: d53ab96f mrs x15, s3_2_c11_c9_3
+ *[0-9a-f]+: d51ab98f msr s3_2_c11_c9_4, x15
+ *[0-9a-f]+: d53ab98f mrs x15, s3_2_c11_c9_4
+ *[0-9a-f]+: d51ab9af msr s3_2_c11_c9_5, x15
+ *[0-9a-f]+: d53ab9af mrs x15, s3_2_c11_c9_5
+ *[0-9a-f]+: d51ab9cf msr s3_2_c11_c9_6, x15
+ *[0-9a-f]+: d53ab9cf mrs x15, s3_2_c11_c9_6
+ *[0-9a-f]+: d51ab9ef msr s3_2_c11_c9_7, x15
+ *[0-9a-f]+: d53ab9ef mrs x15, s3_2_c11_c9_7
+ *[0-9a-f]+: d51aba0f msr s3_2_c11_c10_0, x15
+ *[0-9a-f]+: d53aba0f mrs x15, s3_2_c11_c10_0
+ *[0-9a-f]+: d51aba2f msr s3_2_c11_c10_1, x15
+ *[0-9a-f]+: d53aba2f mrs x15, s3_2_c11_c10_1
+ *[0-9a-f]+: d51aba4f msr s3_2_c11_c10_2, x15
+ *[0-9a-f]+: d53aba4f mrs x15, s3_2_c11_c10_2
+ *[0-9a-f]+: d51aba6f msr s3_2_c11_c10_3, x15
+ *[0-9a-f]+: d53aba6f mrs x15, s3_2_c11_c10_3
+ *[0-9a-f]+: d51aba8f msr s3_2_c11_c10_4, x15
+ *[0-9a-f]+: d53aba8f mrs x15, s3_2_c11_c10_4
+ *[0-9a-f]+: d51abaaf msr s3_2_c11_c10_5, x15
+ *[0-9a-f]+: d53abaaf mrs x15, s3_2_c11_c10_5
+ *[0-9a-f]+: d51abacf msr s3_2_c11_c10_6, x15
+ *[0-9a-f]+: d53abacf mrs x15, s3_2_c11_c10_6
+ *[0-9a-f]+: d51abaef msr s3_2_c11_c10_7, x15
+ *[0-9a-f]+: d53abaef mrs x15, s3_2_c11_c10_7
+ *[0-9a-f]+: d51abb0f msr s3_2_c11_c11_0, x15
+ *[0-9a-f]+: d53abb0f mrs x15, s3_2_c11_c11_0
+ *[0-9a-f]+: d51abb2f msr s3_2_c11_c11_1, x15
+ *[0-9a-f]+: d53abb2f mrs x15, s3_2_c11_c11_1
+ *[0-9a-f]+: d51abb4f msr s3_2_c11_c11_2, x15
+ *[0-9a-f]+: d53abb4f mrs x15, s3_2_c11_c11_2
+ *[0-9a-f]+: d51abb6f msr s3_2_c11_c11_3, x15
+ *[0-9a-f]+: d53abb6f mrs x15, s3_2_c11_c11_3
+ *[0-9a-f]+: d51abb8f msr s3_2_c11_c11_4, x15
+ *[0-9a-f]+: d53abb8f mrs x15, s3_2_c11_c11_4
+ *[0-9a-f]+: d51abbaf msr s3_2_c11_c11_5, x15
+ *[0-9a-f]+: d53abbaf mrs x15, s3_2_c11_c11_5
+ *[0-9a-f]+: d51abbcf msr s3_2_c11_c11_6, x15
+ *[0-9a-f]+: d53abbcf mrs x15, s3_2_c11_c11_6
+ *[0-9a-f]+: d51abbef msr s3_2_c11_c11_7, x15
+ *[0-9a-f]+: d53abbef mrs x15, s3_2_c11_c11_7
+ *[0-9a-f]+: d51abc0f msr s3_2_c11_c12_0, x15
+ *[0-9a-f]+: d53abc0f mrs x15, s3_2_c11_c12_0
+ *[0-9a-f]+: d51abc2f msr s3_2_c11_c12_1, x15
+ *[0-9a-f]+: d53abc2f mrs x15, s3_2_c11_c12_1
+ *[0-9a-f]+: d51abc4f msr s3_2_c11_c12_2, x15
+ *[0-9a-f]+: d53abc4f mrs x15, s3_2_c11_c12_2
+ *[0-9a-f]+: d51abc6f msr s3_2_c11_c12_3, x15
+ *[0-9a-f]+: d53abc6f mrs x15, s3_2_c11_c12_3
+ *[0-9a-f]+: d51abc8f msr s3_2_c11_c12_4, x15
+ *[0-9a-f]+: d53abc8f mrs x15, s3_2_c11_c12_4
+ *[0-9a-f]+: d51abcaf msr s3_2_c11_c12_5, x15
+ *[0-9a-f]+: d53abcaf mrs x15, s3_2_c11_c12_5
+ *[0-9a-f]+: d51abccf msr s3_2_c11_c12_6, x15
+ *[0-9a-f]+: d53abccf mrs x15, s3_2_c11_c12_6
+ *[0-9a-f]+: d51abcef msr s3_2_c11_c12_7, x15
+ *[0-9a-f]+: d53abcef mrs x15, s3_2_c11_c12_7
+ *[0-9a-f]+: d51abd0f msr s3_2_c11_c13_0, x15
+ *[0-9a-f]+: d53abd0f mrs x15, s3_2_c11_c13_0
+ *[0-9a-f]+: d51abd2f msr s3_2_c11_c13_1, x15
+ *[0-9a-f]+: d53abd2f mrs x15, s3_2_c11_c13_1
+ *[0-9a-f]+: d51abd4f msr s3_2_c11_c13_2, x15
+ *[0-9a-f]+: d53abd4f mrs x15, s3_2_c11_c13_2
+ *[0-9a-f]+: d51abd6f msr s3_2_c11_c13_3, x15
+ *[0-9a-f]+: d53abd6f mrs x15, s3_2_c11_c13_3
+ *[0-9a-f]+: d51abd8f msr s3_2_c11_c13_4, x15
+ *[0-9a-f]+: d53abd8f mrs x15, s3_2_c11_c13_4
+ *[0-9a-f]+: d51abdaf msr s3_2_c11_c13_5, x15
+ *[0-9a-f]+: d53abdaf mrs x15, s3_2_c11_c13_5
+ *[0-9a-f]+: d51abdcf msr s3_2_c11_c13_6, x15
+ *[0-9a-f]+: d53abdcf mrs x15, s3_2_c11_c13_6
+ *[0-9a-f]+: d51abdef msr s3_2_c11_c13_7, x15
+ *[0-9a-f]+: d53abdef mrs x15, s3_2_c11_c13_7
+ *[0-9a-f]+: d51abe0f msr s3_2_c11_c14_0, x15
+ *[0-9a-f]+: d53abe0f mrs x15, s3_2_c11_c14_0
+ *[0-9a-f]+: d51abe2f msr s3_2_c11_c14_1, x15
+ *[0-9a-f]+: d53abe2f mrs x15, s3_2_c11_c14_1
+ *[0-9a-f]+: d51abe4f msr s3_2_c11_c14_2, x15
+ *[0-9a-f]+: d53abe4f mrs x15, s3_2_c11_c14_2
+ *[0-9a-f]+: d51abe6f msr s3_2_c11_c14_3, x15
+ *[0-9a-f]+: d53abe6f mrs x15, s3_2_c11_c14_3
+ *[0-9a-f]+: d51abe8f msr s3_2_c11_c14_4, x15
+ *[0-9a-f]+: d53abe8f mrs x15, s3_2_c11_c14_4
+ *[0-9a-f]+: d51abeaf msr s3_2_c11_c14_5, x15
+ *[0-9a-f]+: d53abeaf mrs x15, s3_2_c11_c14_5
+ *[0-9a-f]+: d51abecf msr s3_2_c11_c14_6, x15
+ *[0-9a-f]+: d53abecf mrs x15, s3_2_c11_c14_6
+ *[0-9a-f]+: d51abeef msr s3_2_c11_c14_7, x15
+ *[0-9a-f]+: d53abeef mrs x15, s3_2_c11_c14_7
+ *[0-9a-f]+: d51abf0f msr s3_2_c11_c15_0, x15
+ *[0-9a-f]+: d53abf0f mrs x15, s3_2_c11_c15_0
+ *[0-9a-f]+: d51abf2f msr s3_2_c11_c15_1, x15
+ *[0-9a-f]+: d53abf2f mrs x15, s3_2_c11_c15_1
+ *[0-9a-f]+: d51abf4f msr s3_2_c11_c15_2, x15
+ *[0-9a-f]+: d53abf4f mrs x15, s3_2_c11_c15_2
+ *[0-9a-f]+: d51abf6f msr s3_2_c11_c15_3, x15
+ *[0-9a-f]+: d53abf6f mrs x15, s3_2_c11_c15_3
+ *[0-9a-f]+: d51abf8f msr s3_2_c11_c15_4, x15
+ *[0-9a-f]+: d53abf8f mrs x15, s3_2_c11_c15_4
+ *[0-9a-f]+: d51abfaf msr s3_2_c11_c15_5, x15
+ *[0-9a-f]+: d53abfaf mrs x15, s3_2_c11_c15_5
+ *[0-9a-f]+: d51abfcf msr s3_2_c11_c15_6, x15
+ *[0-9a-f]+: d53abfcf mrs x15, s3_2_c11_c15_6
+ *[0-9a-f]+: d51abfef msr s3_2_c11_c15_7, x15
+ *[0-9a-f]+: d53abfef mrs x15, s3_2_c11_c15_7
+ *[0-9a-f]+: d51af00f msr s3_2_c15_c0_0, x15
+ *[0-9a-f]+: d53af00f mrs x15, s3_2_c15_c0_0
+ *[0-9a-f]+: d51af02f msr s3_2_c15_c0_1, x15
+ *[0-9a-f]+: d53af02f mrs x15, s3_2_c15_c0_1
+ *[0-9a-f]+: d51af04f msr s3_2_c15_c0_2, x15
+ *[0-9a-f]+: d53af04f mrs x15, s3_2_c15_c0_2
+ *[0-9a-f]+: d51af06f msr s3_2_c15_c0_3, x15
+ *[0-9a-f]+: d53af06f mrs x15, s3_2_c15_c0_3
+ *[0-9a-f]+: d51af08f msr s3_2_c15_c0_4, x15
+ *[0-9a-f]+: d53af08f mrs x15, s3_2_c15_c0_4
+ *[0-9a-f]+: d51af0af msr s3_2_c15_c0_5, x15
+ *[0-9a-f]+: d53af0af mrs x15, s3_2_c15_c0_5
+ *[0-9a-f]+: d51af0cf msr s3_2_c15_c0_6, x15
+ *[0-9a-f]+: d53af0cf mrs x15, s3_2_c15_c0_6
+ *[0-9a-f]+: d51af0ef msr s3_2_c15_c0_7, x15
+ *[0-9a-f]+: d53af0ef mrs x15, s3_2_c15_c0_7
+ *[0-9a-f]+: d51af10f msr s3_2_c15_c1_0, x15
+ *[0-9a-f]+: d53af10f mrs x15, s3_2_c15_c1_0
+ *[0-9a-f]+: d51af12f msr s3_2_c15_c1_1, x15
+ *[0-9a-f]+: d53af12f mrs x15, s3_2_c15_c1_1
+ *[0-9a-f]+: d51af14f msr s3_2_c15_c1_2, x15
+ *[0-9a-f]+: d53af14f mrs x15, s3_2_c15_c1_2
+ *[0-9a-f]+: d51af16f msr s3_2_c15_c1_3, x15
+ *[0-9a-f]+: d53af16f mrs x15, s3_2_c15_c1_3
+ *[0-9a-f]+: d51af18f msr s3_2_c15_c1_4, x15
+ *[0-9a-f]+: d53af18f mrs x15, s3_2_c15_c1_4
+ *[0-9a-f]+: d51af1af msr s3_2_c15_c1_5, x15
+ *[0-9a-f]+: d53af1af mrs x15, s3_2_c15_c1_5
+ *[0-9a-f]+: d51af1cf msr s3_2_c15_c1_6, x15
+ *[0-9a-f]+: d53af1cf mrs x15, s3_2_c15_c1_6
+ *[0-9a-f]+: d51af1ef msr s3_2_c15_c1_7, x15
+ *[0-9a-f]+: d53af1ef mrs x15, s3_2_c15_c1_7
+ *[0-9a-f]+: d51af20f msr s3_2_c15_c2_0, x15
+ *[0-9a-f]+: d53af20f mrs x15, s3_2_c15_c2_0
+ *[0-9a-f]+: d51af22f msr s3_2_c15_c2_1, x15
+ *[0-9a-f]+: d53af22f mrs x15, s3_2_c15_c2_1
+ *[0-9a-f]+: d51af24f msr s3_2_c15_c2_2, x15
+ *[0-9a-f]+: d53af24f mrs x15, s3_2_c15_c2_2
+ *[0-9a-f]+: d51af26f msr s3_2_c15_c2_3, x15
+ *[0-9a-f]+: d53af26f mrs x15, s3_2_c15_c2_3
+ *[0-9a-f]+: d51af28f msr s3_2_c15_c2_4, x15
+ *[0-9a-f]+: d53af28f mrs x15, s3_2_c15_c2_4
+ *[0-9a-f]+: d51af2af msr s3_2_c15_c2_5, x15
+ *[0-9a-f]+: d53af2af mrs x15, s3_2_c15_c2_5
+ *[0-9a-f]+: d51af2cf msr s3_2_c15_c2_6, x15
+ *[0-9a-f]+: d53af2cf mrs x15, s3_2_c15_c2_6
+ *[0-9a-f]+: d51af2ef msr s3_2_c15_c2_7, x15
+ *[0-9a-f]+: d53af2ef mrs x15, s3_2_c15_c2_7
+ *[0-9a-f]+: d51af30f msr s3_2_c15_c3_0, x15
+ *[0-9a-f]+: d53af30f mrs x15, s3_2_c15_c3_0
+ *[0-9a-f]+: d51af32f msr s3_2_c15_c3_1, x15
+ *[0-9a-f]+: d53af32f mrs x15, s3_2_c15_c3_1
+ *[0-9a-f]+: d51af34f msr s3_2_c15_c3_2, x15
+ *[0-9a-f]+: d53af34f mrs x15, s3_2_c15_c3_2
+ *[0-9a-f]+: d51af36f msr s3_2_c15_c3_3, x15
+ *[0-9a-f]+: d53af36f mrs x15, s3_2_c15_c3_3
+ *[0-9a-f]+: d51af38f msr s3_2_c15_c3_4, x15
+ *[0-9a-f]+: d53af38f mrs x15, s3_2_c15_c3_4
+ *[0-9a-f]+: d51af3af msr s3_2_c15_c3_5, x15
+ *[0-9a-f]+: d53af3af mrs x15, s3_2_c15_c3_5
+ *[0-9a-f]+: d51af3cf msr s3_2_c15_c3_6, x15
+ *[0-9a-f]+: d53af3cf mrs x15, s3_2_c15_c3_6
+ *[0-9a-f]+: d51af3ef msr s3_2_c15_c3_7, x15
+ *[0-9a-f]+: d53af3ef mrs x15, s3_2_c15_c3_7
+ *[0-9a-f]+: d51af40f msr s3_2_c15_c4_0, x15
+ *[0-9a-f]+: d53af40f mrs x15, s3_2_c15_c4_0
+ *[0-9a-f]+: d51af42f msr s3_2_c15_c4_1, x15
+ *[0-9a-f]+: d53af42f mrs x15, s3_2_c15_c4_1
+ *[0-9a-f]+: d51af44f msr s3_2_c15_c4_2, x15
+ *[0-9a-f]+: d53af44f mrs x15, s3_2_c15_c4_2
+ *[0-9a-f]+: d51af46f msr s3_2_c15_c4_3, x15
+ *[0-9a-f]+: d53af46f mrs x15, s3_2_c15_c4_3
+ *[0-9a-f]+: d51af48f msr s3_2_c15_c4_4, x15
+ *[0-9a-f]+: d53af48f mrs x15, s3_2_c15_c4_4
+ *[0-9a-f]+: d51af4af msr s3_2_c15_c4_5, x15
+ *[0-9a-f]+: d53af4af mrs x15, s3_2_c15_c4_5
+ *[0-9a-f]+: d51af4cf msr s3_2_c15_c4_6, x15
+ *[0-9a-f]+: d53af4cf mrs x15, s3_2_c15_c4_6
+ *[0-9a-f]+: d51af4ef msr s3_2_c15_c4_7, x15
+ *[0-9a-f]+: d53af4ef mrs x15, s3_2_c15_c4_7
+ *[0-9a-f]+: d51af50f msr s3_2_c15_c5_0, x15
+ *[0-9a-f]+: d53af50f mrs x15, s3_2_c15_c5_0
+ *[0-9a-f]+: d51af52f msr s3_2_c15_c5_1, x15
+ *[0-9a-f]+: d53af52f mrs x15, s3_2_c15_c5_1
+ *[0-9a-f]+: d51af54f msr s3_2_c15_c5_2, x15
+ *[0-9a-f]+: d53af54f mrs x15, s3_2_c15_c5_2
+ *[0-9a-f]+: d51af56f msr s3_2_c15_c5_3, x15
+ *[0-9a-f]+: d53af56f mrs x15, s3_2_c15_c5_3
+ *[0-9a-f]+: d51af58f msr s3_2_c15_c5_4, x15
+ *[0-9a-f]+: d53af58f mrs x15, s3_2_c15_c5_4
+ *[0-9a-f]+: d51af5af msr s3_2_c15_c5_5, x15
+ *[0-9a-f]+: d53af5af mrs x15, s3_2_c15_c5_5
+ *[0-9a-f]+: d51af5cf msr s3_2_c15_c5_6, x15
+ *[0-9a-f]+: d53af5cf mrs x15, s3_2_c15_c5_6
+ *[0-9a-f]+: d51af5ef msr s3_2_c15_c5_7, x15
+ *[0-9a-f]+: d53af5ef mrs x15, s3_2_c15_c5_7
+ *[0-9a-f]+: d51af60f msr s3_2_c15_c6_0, x15
+ *[0-9a-f]+: d53af60f mrs x15, s3_2_c15_c6_0
+ *[0-9a-f]+: d51af62f msr s3_2_c15_c6_1, x15
+ *[0-9a-f]+: d53af62f mrs x15, s3_2_c15_c6_1
+ *[0-9a-f]+: d51af64f msr s3_2_c15_c6_2, x15
+ *[0-9a-f]+: d53af64f mrs x15, s3_2_c15_c6_2
+ *[0-9a-f]+: d51af66f msr s3_2_c15_c6_3, x15
+ *[0-9a-f]+: d53af66f mrs x15, s3_2_c15_c6_3
+ *[0-9a-f]+: d51af68f msr s3_2_c15_c6_4, x15
+ *[0-9a-f]+: d53af68f mrs x15, s3_2_c15_c6_4
+ *[0-9a-f]+: d51af6af msr s3_2_c15_c6_5, x15
+ *[0-9a-f]+: d53af6af mrs x15, s3_2_c15_c6_5
+ *[0-9a-f]+: d51af6cf msr s3_2_c15_c6_6, x15
+ *[0-9a-f]+: d53af6cf mrs x15, s3_2_c15_c6_6
+ *[0-9a-f]+: d51af6ef msr s3_2_c15_c6_7, x15
+ *[0-9a-f]+: d53af6ef mrs x15, s3_2_c15_c6_7
+ *[0-9a-f]+: d51af70f msr s3_2_c15_c7_0, x15
+ *[0-9a-f]+: d53af70f mrs x15, s3_2_c15_c7_0
+ *[0-9a-f]+: d51af72f msr s3_2_c15_c7_1, x15
+ *[0-9a-f]+: d53af72f mrs x15, s3_2_c15_c7_1
+ *[0-9a-f]+: d51af74f msr s3_2_c15_c7_2, x15
+ *[0-9a-f]+: d53af74f mrs x15, s3_2_c15_c7_2
+ *[0-9a-f]+: d51af76f msr s3_2_c15_c7_3, x15
+ *[0-9a-f]+: d53af76f mrs x15, s3_2_c15_c7_3
+ *[0-9a-f]+: d51af78f msr s3_2_c15_c7_4, x15
+ *[0-9a-f]+: d53af78f mrs x15, s3_2_c15_c7_4
+ *[0-9a-f]+: d51af7af msr s3_2_c15_c7_5, x15
+ *[0-9a-f]+: d53af7af mrs x15, s3_2_c15_c7_5
+ *[0-9a-f]+: d51af7cf msr s3_2_c15_c7_6, x15
+ *[0-9a-f]+: d53af7cf mrs x15, s3_2_c15_c7_6
+ *[0-9a-f]+: d51af7ef msr s3_2_c15_c7_7, x15
+ *[0-9a-f]+: d53af7ef mrs x15, s3_2_c15_c7_7
+ *[0-9a-f]+: d51af80f msr s3_2_c15_c8_0, x15
+ *[0-9a-f]+: d53af80f mrs x15, s3_2_c15_c8_0
+ *[0-9a-f]+: d51af82f msr s3_2_c15_c8_1, x15
+ *[0-9a-f]+: d53af82f mrs x15, s3_2_c15_c8_1
+ *[0-9a-f]+: d51af84f msr s3_2_c15_c8_2, x15
+ *[0-9a-f]+: d53af84f mrs x15, s3_2_c15_c8_2
+ *[0-9a-f]+: d51af86f msr s3_2_c15_c8_3, x15
+ *[0-9a-f]+: d53af86f mrs x15, s3_2_c15_c8_3
+ *[0-9a-f]+: d51af88f msr s3_2_c15_c8_4, x15
+ *[0-9a-f]+: d53af88f mrs x15, s3_2_c15_c8_4
+ *[0-9a-f]+: d51af8af msr s3_2_c15_c8_5, x15
+ *[0-9a-f]+: d53af8af mrs x15, s3_2_c15_c8_5
+ *[0-9a-f]+: d51af8cf msr s3_2_c15_c8_6, x15
+ *[0-9a-f]+: d53af8cf mrs x15, s3_2_c15_c8_6
+ *[0-9a-f]+: d51af8ef msr s3_2_c15_c8_7, x15
+ *[0-9a-f]+: d53af8ef mrs x15, s3_2_c15_c8_7
+ *[0-9a-f]+: d51af90f msr s3_2_c15_c9_0, x15
+ *[0-9a-f]+: d53af90f mrs x15, s3_2_c15_c9_0
+ *[0-9a-f]+: d51af92f msr s3_2_c15_c9_1, x15
+ *[0-9a-f]+: d53af92f mrs x15, s3_2_c15_c9_1
+ *[0-9a-f]+: d51af94f msr s3_2_c15_c9_2, x15
+ *[0-9a-f]+: d53af94f mrs x15, s3_2_c15_c9_2
+ *[0-9a-f]+: d51af96f msr s3_2_c15_c9_3, x15
+ *[0-9a-f]+: d53af96f mrs x15, s3_2_c15_c9_3
+ *[0-9a-f]+: d51af98f msr s3_2_c15_c9_4, x15
+ *[0-9a-f]+: d53af98f mrs x15, s3_2_c15_c9_4
+ *[0-9a-f]+: d51af9af msr s3_2_c15_c9_5, x15
+ *[0-9a-f]+: d53af9af mrs x15, s3_2_c15_c9_5
+ *[0-9a-f]+: d51af9cf msr s3_2_c15_c9_6, x15
+ *[0-9a-f]+: d53af9cf mrs x15, s3_2_c15_c9_6
+ *[0-9a-f]+: d51af9ef msr s3_2_c15_c9_7, x15
+ *[0-9a-f]+: d53af9ef mrs x15, s3_2_c15_c9_7
+ *[0-9a-f]+: d51afa0f msr s3_2_c15_c10_0, x15
+ *[0-9a-f]+: d53afa0f mrs x15, s3_2_c15_c10_0
+ *[0-9a-f]+: d51afa2f msr s3_2_c15_c10_1, x15
+ *[0-9a-f]+: d53afa2f mrs x15, s3_2_c15_c10_1
+ *[0-9a-f]+: d51afa4f msr s3_2_c15_c10_2, x15
+ *[0-9a-f]+: d53afa4f mrs x15, s3_2_c15_c10_2
+ *[0-9a-f]+: d51afa6f msr s3_2_c15_c10_3, x15
+ *[0-9a-f]+: d53afa6f mrs x15, s3_2_c15_c10_3
+ *[0-9a-f]+: d51afa8f msr s3_2_c15_c10_4, x15
+ *[0-9a-f]+: d53afa8f mrs x15, s3_2_c15_c10_4
+ *[0-9a-f]+: d51afaaf msr s3_2_c15_c10_5, x15
+ *[0-9a-f]+: d53afaaf mrs x15, s3_2_c15_c10_5
+ *[0-9a-f]+: d51afacf msr s3_2_c15_c10_6, x15
+ *[0-9a-f]+: d53afacf mrs x15, s3_2_c15_c10_6
+ *[0-9a-f]+: d51afaef msr s3_2_c15_c10_7, x15
+ *[0-9a-f]+: d53afaef mrs x15, s3_2_c15_c10_7
+ *[0-9a-f]+: d51afb0f msr s3_2_c15_c11_0, x15
+ *[0-9a-f]+: d53afb0f mrs x15, s3_2_c15_c11_0
+ *[0-9a-f]+: d51afb2f msr s3_2_c15_c11_1, x15
+ *[0-9a-f]+: d53afb2f mrs x15, s3_2_c15_c11_1
+ *[0-9a-f]+: d51afb4f msr s3_2_c15_c11_2, x15
+ *[0-9a-f]+: d53afb4f mrs x15, s3_2_c15_c11_2
+ *[0-9a-f]+: d51afb6f msr s3_2_c15_c11_3, x15
+ *[0-9a-f]+: d53afb6f mrs x15, s3_2_c15_c11_3
+ *[0-9a-f]+: d51afb8f msr s3_2_c15_c11_4, x15
+ *[0-9a-f]+: d53afb8f mrs x15, s3_2_c15_c11_4
+ *[0-9a-f]+: d51afbaf msr s3_2_c15_c11_5, x15
+ *[0-9a-f]+: d53afbaf mrs x15, s3_2_c15_c11_5
+ *[0-9a-f]+: d51afbcf msr s3_2_c15_c11_6, x15
+ *[0-9a-f]+: d53afbcf mrs x15, s3_2_c15_c11_6
+ *[0-9a-f]+: d51afbef msr s3_2_c15_c11_7, x15
+ *[0-9a-f]+: d53afbef mrs x15, s3_2_c15_c11_7
+ *[0-9a-f]+: d51afc0f msr s3_2_c15_c12_0, x15
+ *[0-9a-f]+: d53afc0f mrs x15, s3_2_c15_c12_0
+ *[0-9a-f]+: d51afc2f msr s3_2_c15_c12_1, x15
+ *[0-9a-f]+: d53afc2f mrs x15, s3_2_c15_c12_1
+ *[0-9a-f]+: d51afc4f msr s3_2_c15_c12_2, x15
+ *[0-9a-f]+: d53afc4f mrs x15, s3_2_c15_c12_2
+ *[0-9a-f]+: d51afc6f msr s3_2_c15_c12_3, x15
+ *[0-9a-f]+: d53afc6f mrs x15, s3_2_c15_c12_3
+ *[0-9a-f]+: d51afc8f msr s3_2_c15_c12_4, x15
+ *[0-9a-f]+: d53afc8f mrs x15, s3_2_c15_c12_4
+ *[0-9a-f]+: d51afcaf msr s3_2_c15_c12_5, x15
+ *[0-9a-f]+: d53afcaf mrs x15, s3_2_c15_c12_5
+ *[0-9a-f]+: d51afccf msr s3_2_c15_c12_6, x15
+ *[0-9a-f]+: d53afccf mrs x15, s3_2_c15_c12_6
+ *[0-9a-f]+: d51afcef msr s3_2_c15_c12_7, x15
+ *[0-9a-f]+: d53afcef mrs x15, s3_2_c15_c12_7
+ *[0-9a-f]+: d51afd0f msr s3_2_c15_c13_0, x15
+ *[0-9a-f]+: d53afd0f mrs x15, s3_2_c15_c13_0
+ *[0-9a-f]+: d51afd2f msr s3_2_c15_c13_1, x15
+ *[0-9a-f]+: d53afd2f mrs x15, s3_2_c15_c13_1
+ *[0-9a-f]+: d51afd4f msr s3_2_c15_c13_2, x15
+ *[0-9a-f]+: d53afd4f mrs x15, s3_2_c15_c13_2
+ *[0-9a-f]+: d51afd6f msr s3_2_c15_c13_3, x15
+ *[0-9a-f]+: d53afd6f mrs x15, s3_2_c15_c13_3
+ *[0-9a-f]+: d51afd8f msr s3_2_c15_c13_4, x15
+ *[0-9a-f]+: d53afd8f mrs x15, s3_2_c15_c13_4
+ *[0-9a-f]+: d51afdaf msr s3_2_c15_c13_5, x15
+ *[0-9a-f]+: d53afdaf mrs x15, s3_2_c15_c13_5
+ *[0-9a-f]+: d51afdcf msr s3_2_c15_c13_6, x15
+ *[0-9a-f]+: d53afdcf mrs x15, s3_2_c15_c13_6
+ *[0-9a-f]+: d51afdef msr s3_2_c15_c13_7, x15
+ *[0-9a-f]+: d53afdef mrs x15, s3_2_c15_c13_7
+ *[0-9a-f]+: d51afe0f msr s3_2_c15_c14_0, x15
+ *[0-9a-f]+: d53afe0f mrs x15, s3_2_c15_c14_0
+ *[0-9a-f]+: d51afe2f msr s3_2_c15_c14_1, x15
+ *[0-9a-f]+: d53afe2f mrs x15, s3_2_c15_c14_1
+ *[0-9a-f]+: d51afe4f msr s3_2_c15_c14_2, x15
+ *[0-9a-f]+: d53afe4f mrs x15, s3_2_c15_c14_2
+ *[0-9a-f]+: d51afe6f msr s3_2_c15_c14_3, x15
+ *[0-9a-f]+: d53afe6f mrs x15, s3_2_c15_c14_3
+ *[0-9a-f]+: d51afe8f msr s3_2_c15_c14_4, x15
+ *[0-9a-f]+: d53afe8f mrs x15, s3_2_c15_c14_4
+ *[0-9a-f]+: d51afeaf msr s3_2_c15_c14_5, x15
+ *[0-9a-f]+: d53afeaf mrs x15, s3_2_c15_c14_5
+ *[0-9a-f]+: d51afecf msr s3_2_c15_c14_6, x15
+ *[0-9a-f]+: d53afecf mrs x15, s3_2_c15_c14_6
+ *[0-9a-f]+: d51afeef msr s3_2_c15_c14_7, x15
+ *[0-9a-f]+: d53afeef mrs x15, s3_2_c15_c14_7
+ *[0-9a-f]+: d51aff0f msr s3_2_c15_c15_0, x15
+ *[0-9a-f]+: d53aff0f mrs x15, s3_2_c15_c15_0
+ *[0-9a-f]+: d51aff2f msr s3_2_c15_c15_1, x15
+ *[0-9a-f]+: d53aff2f mrs x15, s3_2_c15_c15_1
+ *[0-9a-f]+: d51aff4f msr s3_2_c15_c15_2, x15
+ *[0-9a-f]+: d53aff4f mrs x15, s3_2_c15_c15_2
+ *[0-9a-f]+: d51aff6f msr s3_2_c15_c15_3, x15
+ *[0-9a-f]+: d53aff6f mrs x15, s3_2_c15_c15_3
+ *[0-9a-f]+: d51aff8f msr s3_2_c15_c15_4, x15
+ *[0-9a-f]+: d53aff8f mrs x15, s3_2_c15_c15_4
+ *[0-9a-f]+: d51affaf msr s3_2_c15_c15_5, x15
+ *[0-9a-f]+: d53affaf mrs x15, s3_2_c15_c15_5
+ *[0-9a-f]+: d51affcf msr s3_2_c15_c15_6, x15
+ *[0-9a-f]+: d53affcf mrs x15, s3_2_c15_c15_6
+ *[0-9a-f]+: d51affef msr s3_2_c15_c15_7, x15
+ *[0-9a-f]+: d53affef mrs x15, s3_2_c15_c15_7
+ *[0-9a-f]+: d51bb00f msr s3_3_c11_c0_0, x15
+ *[0-9a-f]+: d53bb00f mrs x15, s3_3_c11_c0_0
+ *[0-9a-f]+: d51bb02f msr s3_3_c11_c0_1, x15
+ *[0-9a-f]+: d53bb02f mrs x15, s3_3_c11_c0_1
+ *[0-9a-f]+: d51bb04f msr s3_3_c11_c0_2, x15
+ *[0-9a-f]+: d53bb04f mrs x15, s3_3_c11_c0_2
+ *[0-9a-f]+: d51bb06f msr s3_3_c11_c0_3, x15
+ *[0-9a-f]+: d53bb06f mrs x15, s3_3_c11_c0_3
+ *[0-9a-f]+: d51bb08f msr s3_3_c11_c0_4, x15
+ *[0-9a-f]+: d53bb08f mrs x15, s3_3_c11_c0_4
+ *[0-9a-f]+: d51bb0af msr s3_3_c11_c0_5, x15
+ *[0-9a-f]+: d53bb0af mrs x15, s3_3_c11_c0_5
+ *[0-9a-f]+: d51bb0cf msr s3_3_c11_c0_6, x15
+ *[0-9a-f]+: d53bb0cf mrs x15, s3_3_c11_c0_6
+ *[0-9a-f]+: d51bb0ef msr s3_3_c11_c0_7, x15
+ *[0-9a-f]+: d53bb0ef mrs x15, s3_3_c11_c0_7
+ *[0-9a-f]+: d51bb10f msr s3_3_c11_c1_0, x15
+ *[0-9a-f]+: d53bb10f mrs x15, s3_3_c11_c1_0
+ *[0-9a-f]+: d51bb12f msr s3_3_c11_c1_1, x15
+ *[0-9a-f]+: d53bb12f mrs x15, s3_3_c11_c1_1
+ *[0-9a-f]+: d51bb14f msr s3_3_c11_c1_2, x15
+ *[0-9a-f]+: d53bb14f mrs x15, s3_3_c11_c1_2
+ *[0-9a-f]+: d51bb16f msr s3_3_c11_c1_3, x15
+ *[0-9a-f]+: d53bb16f mrs x15, s3_3_c11_c1_3
+ *[0-9a-f]+: d51bb18f msr s3_3_c11_c1_4, x15
+ *[0-9a-f]+: d53bb18f mrs x15, s3_3_c11_c1_4
+ *[0-9a-f]+: d51bb1af msr s3_3_c11_c1_5, x15
+ *[0-9a-f]+: d53bb1af mrs x15, s3_3_c11_c1_5
+ *[0-9a-f]+: d51bb1cf msr s3_3_c11_c1_6, x15
+ *[0-9a-f]+: d53bb1cf mrs x15, s3_3_c11_c1_6
+ *[0-9a-f]+: d51bb1ef msr s3_3_c11_c1_7, x15
+ *[0-9a-f]+: d53bb1ef mrs x15, s3_3_c11_c1_7
+ *[0-9a-f]+: d51bb20f msr s3_3_c11_c2_0, x15
+ *[0-9a-f]+: d53bb20f mrs x15, s3_3_c11_c2_0
+ *[0-9a-f]+: d51bb22f msr s3_3_c11_c2_1, x15
+ *[0-9a-f]+: d53bb22f mrs x15, s3_3_c11_c2_1
+ *[0-9a-f]+: d51bb24f msr s3_3_c11_c2_2, x15
+ *[0-9a-f]+: d53bb24f mrs x15, s3_3_c11_c2_2
+ *[0-9a-f]+: d51bb26f msr s3_3_c11_c2_3, x15
+ *[0-9a-f]+: d53bb26f mrs x15, s3_3_c11_c2_3
+ *[0-9a-f]+: d51bb28f msr s3_3_c11_c2_4, x15
+ *[0-9a-f]+: d53bb28f mrs x15, s3_3_c11_c2_4
+ *[0-9a-f]+: d51bb2af msr s3_3_c11_c2_5, x15
+ *[0-9a-f]+: d53bb2af mrs x15, s3_3_c11_c2_5
+ *[0-9a-f]+: d51bb2cf msr s3_3_c11_c2_6, x15
+ *[0-9a-f]+: d53bb2cf mrs x15, s3_3_c11_c2_6
+ *[0-9a-f]+: d51bb2ef msr s3_3_c11_c2_7, x15
+ *[0-9a-f]+: d53bb2ef mrs x15, s3_3_c11_c2_7
+ *[0-9a-f]+: d51bb30f msr s3_3_c11_c3_0, x15
+ *[0-9a-f]+: d53bb30f mrs x15, s3_3_c11_c3_0
+ *[0-9a-f]+: d51bb32f msr s3_3_c11_c3_1, x15
+ *[0-9a-f]+: d53bb32f mrs x15, s3_3_c11_c3_1
+ *[0-9a-f]+: d51bb34f msr s3_3_c11_c3_2, x15
+ *[0-9a-f]+: d53bb34f mrs x15, s3_3_c11_c3_2
+ *[0-9a-f]+: d51bb36f msr s3_3_c11_c3_3, x15
+ *[0-9a-f]+: d53bb36f mrs x15, s3_3_c11_c3_3
+ *[0-9a-f]+: d51bb38f msr s3_3_c11_c3_4, x15
+ *[0-9a-f]+: d53bb38f mrs x15, s3_3_c11_c3_4
+ *[0-9a-f]+: d51bb3af msr s3_3_c11_c3_5, x15
+ *[0-9a-f]+: d53bb3af mrs x15, s3_3_c11_c3_5
+ *[0-9a-f]+: d51bb3cf msr s3_3_c11_c3_6, x15
+ *[0-9a-f]+: d53bb3cf mrs x15, s3_3_c11_c3_6
+ *[0-9a-f]+: d51bb3ef msr s3_3_c11_c3_7, x15
+ *[0-9a-f]+: d53bb3ef mrs x15, s3_3_c11_c3_7
+ *[0-9a-f]+: d51bb40f msr s3_3_c11_c4_0, x15
+ *[0-9a-f]+: d53bb40f mrs x15, s3_3_c11_c4_0
+ *[0-9a-f]+: d51bb42f msr s3_3_c11_c4_1, x15
+ *[0-9a-f]+: d53bb42f mrs x15, s3_3_c11_c4_1
+ *[0-9a-f]+: d51bb44f msr s3_3_c11_c4_2, x15
+ *[0-9a-f]+: d53bb44f mrs x15, s3_3_c11_c4_2
+ *[0-9a-f]+: d51bb46f msr s3_3_c11_c4_3, x15
+ *[0-9a-f]+: d53bb46f mrs x15, s3_3_c11_c4_3
+ *[0-9a-f]+: d51bb48f msr s3_3_c11_c4_4, x15
+ *[0-9a-f]+: d53bb48f mrs x15, s3_3_c11_c4_4
+ *[0-9a-f]+: d51bb4af msr s3_3_c11_c4_5, x15
+ *[0-9a-f]+: d53bb4af mrs x15, s3_3_c11_c4_5
+ *[0-9a-f]+: d51bb4cf msr s3_3_c11_c4_6, x15
+ *[0-9a-f]+: d53bb4cf mrs x15, s3_3_c11_c4_6
+ *[0-9a-f]+: d51bb4ef msr s3_3_c11_c4_7, x15
+ *[0-9a-f]+: d53bb4ef mrs x15, s3_3_c11_c4_7
+ *[0-9a-f]+: d51bb50f msr s3_3_c11_c5_0, x15
+ *[0-9a-f]+: d53bb50f mrs x15, s3_3_c11_c5_0
+ *[0-9a-f]+: d51bb52f msr s3_3_c11_c5_1, x15
+ *[0-9a-f]+: d53bb52f mrs x15, s3_3_c11_c5_1
+ *[0-9a-f]+: d51bb54f msr s3_3_c11_c5_2, x15
+ *[0-9a-f]+: d53bb54f mrs x15, s3_3_c11_c5_2
+ *[0-9a-f]+: d51bb56f msr s3_3_c11_c5_3, x15
+ *[0-9a-f]+: d53bb56f mrs x15, s3_3_c11_c5_3
+ *[0-9a-f]+: d51bb58f msr s3_3_c11_c5_4, x15
+ *[0-9a-f]+: d53bb58f mrs x15, s3_3_c11_c5_4
+ *[0-9a-f]+: d51bb5af msr s3_3_c11_c5_5, x15
+ *[0-9a-f]+: d53bb5af mrs x15, s3_3_c11_c5_5
+ *[0-9a-f]+: d51bb5cf msr s3_3_c11_c5_6, x15
+ *[0-9a-f]+: d53bb5cf mrs x15, s3_3_c11_c5_6
+ *[0-9a-f]+: d51bb5ef msr s3_3_c11_c5_7, x15
+ *[0-9a-f]+: d53bb5ef mrs x15, s3_3_c11_c5_7
+ *[0-9a-f]+: d51bb60f msr s3_3_c11_c6_0, x15
+ *[0-9a-f]+: d53bb60f mrs x15, s3_3_c11_c6_0
+ *[0-9a-f]+: d51bb62f msr s3_3_c11_c6_1, x15
+ *[0-9a-f]+: d53bb62f mrs x15, s3_3_c11_c6_1
+ *[0-9a-f]+: d51bb64f msr s3_3_c11_c6_2, x15
+ *[0-9a-f]+: d53bb64f mrs x15, s3_3_c11_c6_2
+ *[0-9a-f]+: d51bb66f msr s3_3_c11_c6_3, x15
+ *[0-9a-f]+: d53bb66f mrs x15, s3_3_c11_c6_3
+ *[0-9a-f]+: d51bb68f msr s3_3_c11_c6_4, x15
+ *[0-9a-f]+: d53bb68f mrs x15, s3_3_c11_c6_4
+ *[0-9a-f]+: d51bb6af msr s3_3_c11_c6_5, x15
+ *[0-9a-f]+: d53bb6af mrs x15, s3_3_c11_c6_5
+ *[0-9a-f]+: d51bb6cf msr s3_3_c11_c6_6, x15
+ *[0-9a-f]+: d53bb6cf mrs x15, s3_3_c11_c6_6
+ *[0-9a-f]+: d51bb6ef msr s3_3_c11_c6_7, x15
+ *[0-9a-f]+: d53bb6ef mrs x15, s3_3_c11_c6_7
+ *[0-9a-f]+: d51bb70f msr s3_3_c11_c7_0, x15
+ *[0-9a-f]+: d53bb70f mrs x15, s3_3_c11_c7_0
+ *[0-9a-f]+: d51bb72f msr s3_3_c11_c7_1, x15
+ *[0-9a-f]+: d53bb72f mrs x15, s3_3_c11_c7_1
+ *[0-9a-f]+: d51bb74f msr s3_3_c11_c7_2, x15
+ *[0-9a-f]+: d53bb74f mrs x15, s3_3_c11_c7_2
+ *[0-9a-f]+: d51bb76f msr s3_3_c11_c7_3, x15
+ *[0-9a-f]+: d53bb76f mrs x15, s3_3_c11_c7_3
+ *[0-9a-f]+: d51bb78f msr s3_3_c11_c7_4, x15
+ *[0-9a-f]+: d53bb78f mrs x15, s3_3_c11_c7_4
+ *[0-9a-f]+: d51bb7af msr s3_3_c11_c7_5, x15
+ *[0-9a-f]+: d53bb7af mrs x15, s3_3_c11_c7_5
+ *[0-9a-f]+: d51bb7cf msr s3_3_c11_c7_6, x15
+ *[0-9a-f]+: d53bb7cf mrs x15, s3_3_c11_c7_6
+ *[0-9a-f]+: d51bb7ef msr s3_3_c11_c7_7, x15
+ *[0-9a-f]+: d53bb7ef mrs x15, s3_3_c11_c7_7
+ *[0-9a-f]+: d51bb80f msr s3_3_c11_c8_0, x15
+ *[0-9a-f]+: d53bb80f mrs x15, s3_3_c11_c8_0
+ *[0-9a-f]+: d51bb82f msr s3_3_c11_c8_1, x15
+ *[0-9a-f]+: d53bb82f mrs x15, s3_3_c11_c8_1
+ *[0-9a-f]+: d51bb84f msr s3_3_c11_c8_2, x15
+ *[0-9a-f]+: d53bb84f mrs x15, s3_3_c11_c8_2
+ *[0-9a-f]+: d51bb86f msr s3_3_c11_c8_3, x15
+ *[0-9a-f]+: d53bb86f mrs x15, s3_3_c11_c8_3
+ *[0-9a-f]+: d51bb88f msr s3_3_c11_c8_4, x15
+ *[0-9a-f]+: d53bb88f mrs x15, s3_3_c11_c8_4
+ *[0-9a-f]+: d51bb8af msr s3_3_c11_c8_5, x15
+ *[0-9a-f]+: d53bb8af mrs x15, s3_3_c11_c8_5
+ *[0-9a-f]+: d51bb8cf msr s3_3_c11_c8_6, x15
+ *[0-9a-f]+: d53bb8cf mrs x15, s3_3_c11_c8_6
+ *[0-9a-f]+: d51bb8ef msr s3_3_c11_c8_7, x15
+ *[0-9a-f]+: d53bb8ef mrs x15, s3_3_c11_c8_7
+ *[0-9a-f]+: d51bb90f msr s3_3_c11_c9_0, x15
+ *[0-9a-f]+: d53bb90f mrs x15, s3_3_c11_c9_0
+ *[0-9a-f]+: d51bb92f msr s3_3_c11_c9_1, x15
+ *[0-9a-f]+: d53bb92f mrs x15, s3_3_c11_c9_1
+ *[0-9a-f]+: d51bb94f msr s3_3_c11_c9_2, x15
+ *[0-9a-f]+: d53bb94f mrs x15, s3_3_c11_c9_2
+ *[0-9a-f]+: d51bb96f msr s3_3_c11_c9_3, x15
+ *[0-9a-f]+: d53bb96f mrs x15, s3_3_c11_c9_3
+ *[0-9a-f]+: d51bb98f msr s3_3_c11_c9_4, x15
+ *[0-9a-f]+: d53bb98f mrs x15, s3_3_c11_c9_4
+ *[0-9a-f]+: d51bb9af msr s3_3_c11_c9_5, x15
+ *[0-9a-f]+: d53bb9af mrs x15, s3_3_c11_c9_5
+ *[0-9a-f]+: d51bb9cf msr s3_3_c11_c9_6, x15
+ *[0-9a-f]+: d53bb9cf mrs x15, s3_3_c11_c9_6
+ *[0-9a-f]+: d51bb9ef msr s3_3_c11_c9_7, x15
+ *[0-9a-f]+: d53bb9ef mrs x15, s3_3_c11_c9_7
+ *[0-9a-f]+: d51bba0f msr s3_3_c11_c10_0, x15
+ *[0-9a-f]+: d53bba0f mrs x15, s3_3_c11_c10_0
+ *[0-9a-f]+: d51bba2f msr s3_3_c11_c10_1, x15
+ *[0-9a-f]+: d53bba2f mrs x15, s3_3_c11_c10_1
+ *[0-9a-f]+: d51bba4f msr s3_3_c11_c10_2, x15
+ *[0-9a-f]+: d53bba4f mrs x15, s3_3_c11_c10_2
+ *[0-9a-f]+: d51bba6f msr s3_3_c11_c10_3, x15
+ *[0-9a-f]+: d53bba6f mrs x15, s3_3_c11_c10_3
+ *[0-9a-f]+: d51bba8f msr s3_3_c11_c10_4, x15
+ *[0-9a-f]+: d53bba8f mrs x15, s3_3_c11_c10_4
+ *[0-9a-f]+: d51bbaaf msr s3_3_c11_c10_5, x15
+ *[0-9a-f]+: d53bbaaf mrs x15, s3_3_c11_c10_5
+ *[0-9a-f]+: d51bbacf msr s3_3_c11_c10_6, x15
+ *[0-9a-f]+: d53bbacf mrs x15, s3_3_c11_c10_6
+ *[0-9a-f]+: d51bbaef msr s3_3_c11_c10_7, x15
+ *[0-9a-f]+: d53bbaef mrs x15, s3_3_c11_c10_7
+ *[0-9a-f]+: d51bbb0f msr s3_3_c11_c11_0, x15
+ *[0-9a-f]+: d53bbb0f mrs x15, s3_3_c11_c11_0
+ *[0-9a-f]+: d51bbb2f msr s3_3_c11_c11_1, x15
+ *[0-9a-f]+: d53bbb2f mrs x15, s3_3_c11_c11_1
+ *[0-9a-f]+: d51bbb4f msr s3_3_c11_c11_2, x15
+ *[0-9a-f]+: d53bbb4f mrs x15, s3_3_c11_c11_2
+ *[0-9a-f]+: d51bbb6f msr s3_3_c11_c11_3, x15
+ *[0-9a-f]+: d53bbb6f mrs x15, s3_3_c11_c11_3
+ *[0-9a-f]+: d51bbb8f msr s3_3_c11_c11_4, x15
+ *[0-9a-f]+: d53bbb8f mrs x15, s3_3_c11_c11_4
+ *[0-9a-f]+: d51bbbaf msr s3_3_c11_c11_5, x15
+ *[0-9a-f]+: d53bbbaf mrs x15, s3_3_c11_c11_5
+ *[0-9a-f]+: d51bbbcf msr s3_3_c11_c11_6, x15
+ *[0-9a-f]+: d53bbbcf mrs x15, s3_3_c11_c11_6
+ *[0-9a-f]+: d51bbbef msr s3_3_c11_c11_7, x15
+ *[0-9a-f]+: d53bbbef mrs x15, s3_3_c11_c11_7
+ *[0-9a-f]+: d51bbc0f msr s3_3_c11_c12_0, x15
+ *[0-9a-f]+: d53bbc0f mrs x15, s3_3_c11_c12_0
+ *[0-9a-f]+: d51bbc2f msr s3_3_c11_c12_1, x15
+ *[0-9a-f]+: d53bbc2f mrs x15, s3_3_c11_c12_1
+ *[0-9a-f]+: d51bbc4f msr s3_3_c11_c12_2, x15
+ *[0-9a-f]+: d53bbc4f mrs x15, s3_3_c11_c12_2
+ *[0-9a-f]+: d51bbc6f msr s3_3_c11_c12_3, x15
+ *[0-9a-f]+: d53bbc6f mrs x15, s3_3_c11_c12_3
+ *[0-9a-f]+: d51bbc8f msr s3_3_c11_c12_4, x15
+ *[0-9a-f]+: d53bbc8f mrs x15, s3_3_c11_c12_4
+ *[0-9a-f]+: d51bbcaf msr s3_3_c11_c12_5, x15
+ *[0-9a-f]+: d53bbcaf mrs x15, s3_3_c11_c12_5
+ *[0-9a-f]+: d51bbccf msr s3_3_c11_c12_6, x15
+ *[0-9a-f]+: d53bbccf mrs x15, s3_3_c11_c12_6
+ *[0-9a-f]+: d51bbcef msr s3_3_c11_c12_7, x15
+ *[0-9a-f]+: d53bbcef mrs x15, s3_3_c11_c12_7
+ *[0-9a-f]+: d51bbd0f msr s3_3_c11_c13_0, x15
+ *[0-9a-f]+: d53bbd0f mrs x15, s3_3_c11_c13_0
+ *[0-9a-f]+: d51bbd2f msr s3_3_c11_c13_1, x15
+ *[0-9a-f]+: d53bbd2f mrs x15, s3_3_c11_c13_1
+ *[0-9a-f]+: d51bbd4f msr s3_3_c11_c13_2, x15
+ *[0-9a-f]+: d53bbd4f mrs x15, s3_3_c11_c13_2
+ *[0-9a-f]+: d51bbd6f msr s3_3_c11_c13_3, x15
+ *[0-9a-f]+: d53bbd6f mrs x15, s3_3_c11_c13_3
+ *[0-9a-f]+: d51bbd8f msr s3_3_c11_c13_4, x15
+ *[0-9a-f]+: d53bbd8f mrs x15, s3_3_c11_c13_4
+ *[0-9a-f]+: d51bbdaf msr s3_3_c11_c13_5, x15
+ *[0-9a-f]+: d53bbdaf mrs x15, s3_3_c11_c13_5
+ *[0-9a-f]+: d51bbdcf msr s3_3_c11_c13_6, x15
+ *[0-9a-f]+: d53bbdcf mrs x15, s3_3_c11_c13_6
+ *[0-9a-f]+: d51bbdef msr s3_3_c11_c13_7, x15
+ *[0-9a-f]+: d53bbdef mrs x15, s3_3_c11_c13_7
+ *[0-9a-f]+: d51bbe0f msr s3_3_c11_c14_0, x15
+ *[0-9a-f]+: d53bbe0f mrs x15, s3_3_c11_c14_0
+ *[0-9a-f]+: d51bbe2f msr s3_3_c11_c14_1, x15
+ *[0-9a-f]+: d53bbe2f mrs x15, s3_3_c11_c14_1
+ *[0-9a-f]+: d51bbe4f msr s3_3_c11_c14_2, x15
+ *[0-9a-f]+: d53bbe4f mrs x15, s3_3_c11_c14_2
+ *[0-9a-f]+: d51bbe6f msr s3_3_c11_c14_3, x15
+ *[0-9a-f]+: d53bbe6f mrs x15, s3_3_c11_c14_3
+ *[0-9a-f]+: d51bbe8f msr s3_3_c11_c14_4, x15
+ *[0-9a-f]+: d53bbe8f mrs x15, s3_3_c11_c14_4
+ *[0-9a-f]+: d51bbeaf msr s3_3_c11_c14_5, x15
+ *[0-9a-f]+: d53bbeaf mrs x15, s3_3_c11_c14_5
+ *[0-9a-f]+: d51bbecf msr s3_3_c11_c14_6, x15
+ *[0-9a-f]+: d53bbecf mrs x15, s3_3_c11_c14_6
+ *[0-9a-f]+: d51bbeef msr s3_3_c11_c14_7, x15
+ *[0-9a-f]+: d53bbeef mrs x15, s3_3_c11_c14_7
+ *[0-9a-f]+: d51bbf0f msr s3_3_c11_c15_0, x15
+ *[0-9a-f]+: d53bbf0f mrs x15, s3_3_c11_c15_0
+ *[0-9a-f]+: d51bbf2f msr s3_3_c11_c15_1, x15
+ *[0-9a-f]+: d53bbf2f mrs x15, s3_3_c11_c15_1
+ *[0-9a-f]+: d51bbf4f msr s3_3_c11_c15_2, x15
+ *[0-9a-f]+: d53bbf4f mrs x15, s3_3_c11_c15_2
+ *[0-9a-f]+: d51bbf6f msr s3_3_c11_c15_3, x15
+ *[0-9a-f]+: d53bbf6f mrs x15, s3_3_c11_c15_3
+ *[0-9a-f]+: d51bbf8f msr s3_3_c11_c15_4, x15
+ *[0-9a-f]+: d53bbf8f mrs x15, s3_3_c11_c15_4
+ *[0-9a-f]+: d51bbfaf msr s3_3_c11_c15_5, x15
+ *[0-9a-f]+: d53bbfaf mrs x15, s3_3_c11_c15_5
+ *[0-9a-f]+: d51bbfcf msr s3_3_c11_c15_6, x15
+ *[0-9a-f]+: d53bbfcf mrs x15, s3_3_c11_c15_6
+ *[0-9a-f]+: d51bbfef msr s3_3_c11_c15_7, x15
+ *[0-9a-f]+: d53bbfef mrs x15, s3_3_c11_c15_7
+ *[0-9a-f]+: d51bf00f msr s3_3_c15_c0_0, x15
+ *[0-9a-f]+: d53bf00f mrs x15, s3_3_c15_c0_0
+ *[0-9a-f]+: d51bf02f msr s3_3_c15_c0_1, x15
+ *[0-9a-f]+: d53bf02f mrs x15, s3_3_c15_c0_1
+ *[0-9a-f]+: d51bf04f msr s3_3_c15_c0_2, x15
+ *[0-9a-f]+: d53bf04f mrs x15, s3_3_c15_c0_2
+ *[0-9a-f]+: d51bf06f msr s3_3_c15_c0_3, x15
+ *[0-9a-f]+: d53bf06f mrs x15, s3_3_c15_c0_3
+ *[0-9a-f]+: d51bf08f msr s3_3_c15_c0_4, x15
+ *[0-9a-f]+: d53bf08f mrs x15, s3_3_c15_c0_4
+ *[0-9a-f]+: d51bf0af msr s3_3_c15_c0_5, x15
+ *[0-9a-f]+: d53bf0af mrs x15, s3_3_c15_c0_5
+ *[0-9a-f]+: d51bf0cf msr s3_3_c15_c0_6, x15
+ *[0-9a-f]+: d53bf0cf mrs x15, s3_3_c15_c0_6
+ *[0-9a-f]+: d51bf0ef msr s3_3_c15_c0_7, x15
+ *[0-9a-f]+: d53bf0ef mrs x15, s3_3_c15_c0_7
+ *[0-9a-f]+: d51bf10f msr s3_3_c15_c1_0, x15
+ *[0-9a-f]+: d53bf10f mrs x15, s3_3_c15_c1_0
+ *[0-9a-f]+: d51bf12f msr s3_3_c15_c1_1, x15
+ *[0-9a-f]+: d53bf12f mrs x15, s3_3_c15_c1_1
+ *[0-9a-f]+: d51bf14f msr s3_3_c15_c1_2, x15
+ *[0-9a-f]+: d53bf14f mrs x15, s3_3_c15_c1_2
+ *[0-9a-f]+: d51bf16f msr s3_3_c15_c1_3, x15
+ *[0-9a-f]+: d53bf16f mrs x15, s3_3_c15_c1_3
+ *[0-9a-f]+: d51bf18f msr s3_3_c15_c1_4, x15
+ *[0-9a-f]+: d53bf18f mrs x15, s3_3_c15_c1_4
+ *[0-9a-f]+: d51bf1af msr s3_3_c15_c1_5, x15
+ *[0-9a-f]+: d53bf1af mrs x15, s3_3_c15_c1_5
+ *[0-9a-f]+: d51bf1cf msr s3_3_c15_c1_6, x15
+ *[0-9a-f]+: d53bf1cf mrs x15, s3_3_c15_c1_6
+ *[0-9a-f]+: d51bf1ef msr s3_3_c15_c1_7, x15
+ *[0-9a-f]+: d53bf1ef mrs x15, s3_3_c15_c1_7
+ *[0-9a-f]+: d51bf20f msr s3_3_c15_c2_0, x15
+ *[0-9a-f]+: d53bf20f mrs x15, s3_3_c15_c2_0
+ *[0-9a-f]+: d51bf22f msr s3_3_c15_c2_1, x15
+ *[0-9a-f]+: d53bf22f mrs x15, s3_3_c15_c2_1
+ *[0-9a-f]+: d51bf24f msr s3_3_c15_c2_2, x15
+ *[0-9a-f]+: d53bf24f mrs x15, s3_3_c15_c2_2
+ *[0-9a-f]+: d51bf26f msr s3_3_c15_c2_3, x15
+ *[0-9a-f]+: d53bf26f mrs x15, s3_3_c15_c2_3
+ *[0-9a-f]+: d51bf28f msr s3_3_c15_c2_4, x15
+ *[0-9a-f]+: d53bf28f mrs x15, s3_3_c15_c2_4
+ *[0-9a-f]+: d51bf2af msr s3_3_c15_c2_5, x15
+ *[0-9a-f]+: d53bf2af mrs x15, s3_3_c15_c2_5
+ *[0-9a-f]+: d51bf2cf msr s3_3_c15_c2_6, x15
+ *[0-9a-f]+: d53bf2cf mrs x15, s3_3_c15_c2_6
+ *[0-9a-f]+: d51bf2ef msr s3_3_c15_c2_7, x15
+ *[0-9a-f]+: d53bf2ef mrs x15, s3_3_c15_c2_7
+ *[0-9a-f]+: d51bf30f msr s3_3_c15_c3_0, x15
+ *[0-9a-f]+: d53bf30f mrs x15, s3_3_c15_c3_0
+ *[0-9a-f]+: d51bf32f msr s3_3_c15_c3_1, x15
+ *[0-9a-f]+: d53bf32f mrs x15, s3_3_c15_c3_1
+ *[0-9a-f]+: d51bf34f msr s3_3_c15_c3_2, x15
+ *[0-9a-f]+: d53bf34f mrs x15, s3_3_c15_c3_2
+ *[0-9a-f]+: d51bf36f msr s3_3_c15_c3_3, x15
+ *[0-9a-f]+: d53bf36f mrs x15, s3_3_c15_c3_3
+ *[0-9a-f]+: d51bf38f msr s3_3_c15_c3_4, x15
+ *[0-9a-f]+: d53bf38f mrs x15, s3_3_c15_c3_4
+ *[0-9a-f]+: d51bf3af msr s3_3_c15_c3_5, x15
+ *[0-9a-f]+: d53bf3af mrs x15, s3_3_c15_c3_5
+ *[0-9a-f]+: d51bf3cf msr s3_3_c15_c3_6, x15
+ *[0-9a-f]+: d53bf3cf mrs x15, s3_3_c15_c3_6
+ *[0-9a-f]+: d51bf3ef msr s3_3_c15_c3_7, x15
+ *[0-9a-f]+: d53bf3ef mrs x15, s3_3_c15_c3_7
+ *[0-9a-f]+: d51bf40f msr s3_3_c15_c4_0, x15
+ *[0-9a-f]+: d53bf40f mrs x15, s3_3_c15_c4_0
+ *[0-9a-f]+: d51bf42f msr s3_3_c15_c4_1, x15
+ *[0-9a-f]+: d53bf42f mrs x15, s3_3_c15_c4_1
+ *[0-9a-f]+: d51bf44f msr s3_3_c15_c4_2, x15
+ *[0-9a-f]+: d53bf44f mrs x15, s3_3_c15_c4_2
+ *[0-9a-f]+: d51bf46f msr s3_3_c15_c4_3, x15
+ *[0-9a-f]+: d53bf46f mrs x15, s3_3_c15_c4_3
+ *[0-9a-f]+: d51bf48f msr s3_3_c15_c4_4, x15
+ *[0-9a-f]+: d53bf48f mrs x15, s3_3_c15_c4_4
+ *[0-9a-f]+: d51bf4af msr s3_3_c15_c4_5, x15
+ *[0-9a-f]+: d53bf4af mrs x15, s3_3_c15_c4_5
+ *[0-9a-f]+: d51bf4cf msr s3_3_c15_c4_6, x15
+ *[0-9a-f]+: d53bf4cf mrs x15, s3_3_c15_c4_6
+ *[0-9a-f]+: d51bf4ef msr s3_3_c15_c4_7, x15
+ *[0-9a-f]+: d53bf4ef mrs x15, s3_3_c15_c4_7
+ *[0-9a-f]+: d51bf50f msr s3_3_c15_c5_0, x15
+ *[0-9a-f]+: d53bf50f mrs x15, s3_3_c15_c5_0
+ *[0-9a-f]+: d51bf52f msr s3_3_c15_c5_1, x15
+ *[0-9a-f]+: d53bf52f mrs x15, s3_3_c15_c5_1
+ *[0-9a-f]+: d51bf54f msr s3_3_c15_c5_2, x15
+ *[0-9a-f]+: d53bf54f mrs x15, s3_3_c15_c5_2
+ *[0-9a-f]+: d51bf56f msr s3_3_c15_c5_3, x15
+ *[0-9a-f]+: d53bf56f mrs x15, s3_3_c15_c5_3
+ *[0-9a-f]+: d51bf58f msr s3_3_c15_c5_4, x15
+ *[0-9a-f]+: d53bf58f mrs x15, s3_3_c15_c5_4
+ *[0-9a-f]+: d51bf5af msr s3_3_c15_c5_5, x15
+ *[0-9a-f]+: d53bf5af mrs x15, s3_3_c15_c5_5
+ *[0-9a-f]+: d51bf5cf msr s3_3_c15_c5_6, x15
+ *[0-9a-f]+: d53bf5cf mrs x15, s3_3_c15_c5_6
+ *[0-9a-f]+: d51bf5ef msr s3_3_c15_c5_7, x15
+ *[0-9a-f]+: d53bf5ef mrs x15, s3_3_c15_c5_7
+ *[0-9a-f]+: d51bf60f msr s3_3_c15_c6_0, x15
+ *[0-9a-f]+: d53bf60f mrs x15, s3_3_c15_c6_0
+ *[0-9a-f]+: d51bf62f msr s3_3_c15_c6_1, x15
+ *[0-9a-f]+: d53bf62f mrs x15, s3_3_c15_c6_1
+ *[0-9a-f]+: d51bf64f msr s3_3_c15_c6_2, x15
+ *[0-9a-f]+: d53bf64f mrs x15, s3_3_c15_c6_2
+ *[0-9a-f]+: d51bf66f msr s3_3_c15_c6_3, x15
+ *[0-9a-f]+: d53bf66f mrs x15, s3_3_c15_c6_3
+ *[0-9a-f]+: d51bf68f msr s3_3_c15_c6_4, x15
+ *[0-9a-f]+: d53bf68f mrs x15, s3_3_c15_c6_4
+ *[0-9a-f]+: d51bf6af msr s3_3_c15_c6_5, x15
+ *[0-9a-f]+: d53bf6af mrs x15, s3_3_c15_c6_5
+ *[0-9a-f]+: d51bf6cf msr s3_3_c15_c6_6, x15
+ *[0-9a-f]+: d53bf6cf mrs x15, s3_3_c15_c6_6
+ *[0-9a-f]+: d51bf6ef msr s3_3_c15_c6_7, x15
+ *[0-9a-f]+: d53bf6ef mrs x15, s3_3_c15_c6_7
+ *[0-9a-f]+: d51bf70f msr s3_3_c15_c7_0, x15
+ *[0-9a-f]+: d53bf70f mrs x15, s3_3_c15_c7_0
+ *[0-9a-f]+: d51bf72f msr s3_3_c15_c7_1, x15
+ *[0-9a-f]+: d53bf72f mrs x15, s3_3_c15_c7_1
+ *[0-9a-f]+: d51bf74f msr s3_3_c15_c7_2, x15
+ *[0-9a-f]+: d53bf74f mrs x15, s3_3_c15_c7_2
+ *[0-9a-f]+: d51bf76f msr s3_3_c15_c7_3, x15
+ *[0-9a-f]+: d53bf76f mrs x15, s3_3_c15_c7_3
+ *[0-9a-f]+: d51bf78f msr s3_3_c15_c7_4, x15
+ *[0-9a-f]+: d53bf78f mrs x15, s3_3_c15_c7_4
+ *[0-9a-f]+: d51bf7af msr s3_3_c15_c7_5, x15
+ *[0-9a-f]+: d53bf7af mrs x15, s3_3_c15_c7_5
+ *[0-9a-f]+: d51bf7cf msr s3_3_c15_c7_6, x15
+ *[0-9a-f]+: d53bf7cf mrs x15, s3_3_c15_c7_6
+ *[0-9a-f]+: d51bf7ef msr s3_3_c15_c7_7, x15
+ *[0-9a-f]+: d53bf7ef mrs x15, s3_3_c15_c7_7
+ *[0-9a-f]+: d51bf80f msr s3_3_c15_c8_0, x15
+ *[0-9a-f]+: d53bf80f mrs x15, s3_3_c15_c8_0
+ *[0-9a-f]+: d51bf82f msr s3_3_c15_c8_1, x15
+ *[0-9a-f]+: d53bf82f mrs x15, s3_3_c15_c8_1
+ *[0-9a-f]+: d51bf84f msr s3_3_c15_c8_2, x15
+ *[0-9a-f]+: d53bf84f mrs x15, s3_3_c15_c8_2
+ *[0-9a-f]+: d51bf86f msr s3_3_c15_c8_3, x15
+ *[0-9a-f]+: d53bf86f mrs x15, s3_3_c15_c8_3
+ *[0-9a-f]+: d51bf88f msr s3_3_c15_c8_4, x15
+ *[0-9a-f]+: d53bf88f mrs x15, s3_3_c15_c8_4
+ *[0-9a-f]+: d51bf8af msr s3_3_c15_c8_5, x15
+ *[0-9a-f]+: d53bf8af mrs x15, s3_3_c15_c8_5
+ *[0-9a-f]+: d51bf8cf msr s3_3_c15_c8_6, x15
+ *[0-9a-f]+: d53bf8cf mrs x15, s3_3_c15_c8_6
+ *[0-9a-f]+: d51bf8ef msr s3_3_c15_c8_7, x15
+ *[0-9a-f]+: d53bf8ef mrs x15, s3_3_c15_c8_7
+ *[0-9a-f]+: d51bf90f msr s3_3_c15_c9_0, x15
+ *[0-9a-f]+: d53bf90f mrs x15, s3_3_c15_c9_0
+ *[0-9a-f]+: d51bf92f msr s3_3_c15_c9_1, x15
+ *[0-9a-f]+: d53bf92f mrs x15, s3_3_c15_c9_1
+ *[0-9a-f]+: d51bf94f msr s3_3_c15_c9_2, x15
+ *[0-9a-f]+: d53bf94f mrs x15, s3_3_c15_c9_2
+ *[0-9a-f]+: d51bf96f msr s3_3_c15_c9_3, x15
+ *[0-9a-f]+: d53bf96f mrs x15, s3_3_c15_c9_3
+ *[0-9a-f]+: d51bf98f msr s3_3_c15_c9_4, x15
+ *[0-9a-f]+: d53bf98f mrs x15, s3_3_c15_c9_4
+ *[0-9a-f]+: d51bf9af msr s3_3_c15_c9_5, x15
+ *[0-9a-f]+: d53bf9af mrs x15, s3_3_c15_c9_5
+ *[0-9a-f]+: d51bf9cf msr s3_3_c15_c9_6, x15
+ *[0-9a-f]+: d53bf9cf mrs x15, s3_3_c15_c9_6
+ *[0-9a-f]+: d51bf9ef msr s3_3_c15_c9_7, x15
+ *[0-9a-f]+: d53bf9ef mrs x15, s3_3_c15_c9_7
+ *[0-9a-f]+: d51bfa0f msr s3_3_c15_c10_0, x15
+ *[0-9a-f]+: d53bfa0f mrs x15, s3_3_c15_c10_0
+ *[0-9a-f]+: d51bfa2f msr s3_3_c15_c10_1, x15
+ *[0-9a-f]+: d53bfa2f mrs x15, s3_3_c15_c10_1
+ *[0-9a-f]+: d51bfa4f msr s3_3_c15_c10_2, x15
+ *[0-9a-f]+: d53bfa4f mrs x15, s3_3_c15_c10_2
+ *[0-9a-f]+: d51bfa6f msr s3_3_c15_c10_3, x15
+ *[0-9a-f]+: d53bfa6f mrs x15, s3_3_c15_c10_3
+ *[0-9a-f]+: d51bfa8f msr s3_3_c15_c10_4, x15
+ *[0-9a-f]+: d53bfa8f mrs x15, s3_3_c15_c10_4
+ *[0-9a-f]+: d51bfaaf msr s3_3_c15_c10_5, x15
+ *[0-9a-f]+: d53bfaaf mrs x15, s3_3_c15_c10_5
+ *[0-9a-f]+: d51bfacf msr s3_3_c15_c10_6, x15
+ *[0-9a-f]+: d53bfacf mrs x15, s3_3_c15_c10_6
+ *[0-9a-f]+: d51bfaef msr s3_3_c15_c10_7, x15
+ *[0-9a-f]+: d53bfaef mrs x15, s3_3_c15_c10_7
+ *[0-9a-f]+: d51bfb0f msr s3_3_c15_c11_0, x15
+ *[0-9a-f]+: d53bfb0f mrs x15, s3_3_c15_c11_0
+ *[0-9a-f]+: d51bfb2f msr s3_3_c15_c11_1, x15
+ *[0-9a-f]+: d53bfb2f mrs x15, s3_3_c15_c11_1
+ *[0-9a-f]+: d51bfb4f msr s3_3_c15_c11_2, x15
+ *[0-9a-f]+: d53bfb4f mrs x15, s3_3_c15_c11_2
+ *[0-9a-f]+: d51bfb6f msr s3_3_c15_c11_3, x15
+ *[0-9a-f]+: d53bfb6f mrs x15, s3_3_c15_c11_3
+ *[0-9a-f]+: d51bfb8f msr s3_3_c15_c11_4, x15
+ *[0-9a-f]+: d53bfb8f mrs x15, s3_3_c15_c11_4
+ *[0-9a-f]+: d51bfbaf msr s3_3_c15_c11_5, x15
+ *[0-9a-f]+: d53bfbaf mrs x15, s3_3_c15_c11_5
+ *[0-9a-f]+: d51bfbcf msr s3_3_c15_c11_6, x15
+ *[0-9a-f]+: d53bfbcf mrs x15, s3_3_c15_c11_6
+ *[0-9a-f]+: d51bfbef msr s3_3_c15_c11_7, x15
+ *[0-9a-f]+: d53bfbef mrs x15, s3_3_c15_c11_7
+ *[0-9a-f]+: d51bfc0f msr s3_3_c15_c12_0, x15
+ *[0-9a-f]+: d53bfc0f mrs x15, s3_3_c15_c12_0
+ *[0-9a-f]+: d51bfc2f msr s3_3_c15_c12_1, x15
+ *[0-9a-f]+: d53bfc2f mrs x15, s3_3_c15_c12_1
+ *[0-9a-f]+: d51bfc4f msr s3_3_c15_c12_2, x15
+ *[0-9a-f]+: d53bfc4f mrs x15, s3_3_c15_c12_2
+ *[0-9a-f]+: d51bfc6f msr s3_3_c15_c12_3, x15
+ *[0-9a-f]+: d53bfc6f mrs x15, s3_3_c15_c12_3
+ *[0-9a-f]+: d51bfc8f msr s3_3_c15_c12_4, x15
+ *[0-9a-f]+: d53bfc8f mrs x15, s3_3_c15_c12_4
+ *[0-9a-f]+: d51bfcaf msr s3_3_c15_c12_5, x15
+ *[0-9a-f]+: d53bfcaf mrs x15, s3_3_c15_c12_5
+ *[0-9a-f]+: d51bfccf msr s3_3_c15_c12_6, x15
+ *[0-9a-f]+: d53bfccf mrs x15, s3_3_c15_c12_6
+ *[0-9a-f]+: d51bfcef msr s3_3_c15_c12_7, x15
+ *[0-9a-f]+: d53bfcef mrs x15, s3_3_c15_c12_7
+ *[0-9a-f]+: d51bfd0f msr s3_3_c15_c13_0, x15
+ *[0-9a-f]+: d53bfd0f mrs x15, s3_3_c15_c13_0
+ *[0-9a-f]+: d51bfd2f msr s3_3_c15_c13_1, x15
+ *[0-9a-f]+: d53bfd2f mrs x15, s3_3_c15_c13_1
+ *[0-9a-f]+: d51bfd4f msr s3_3_c15_c13_2, x15
+ *[0-9a-f]+: d53bfd4f mrs x15, s3_3_c15_c13_2
+ *[0-9a-f]+: d51bfd6f msr s3_3_c15_c13_3, x15
+ *[0-9a-f]+: d53bfd6f mrs x15, s3_3_c15_c13_3
+ *[0-9a-f]+: d51bfd8f msr s3_3_c15_c13_4, x15
+ *[0-9a-f]+: d53bfd8f mrs x15, s3_3_c15_c13_4
+ *[0-9a-f]+: d51bfdaf msr s3_3_c15_c13_5, x15
+ *[0-9a-f]+: d53bfdaf mrs x15, s3_3_c15_c13_5
+ *[0-9a-f]+: d51bfdcf msr s3_3_c15_c13_6, x15
+ *[0-9a-f]+: d53bfdcf mrs x15, s3_3_c15_c13_6
+ *[0-9a-f]+: d51bfdef msr s3_3_c15_c13_7, x15
+ *[0-9a-f]+: d53bfdef mrs x15, s3_3_c15_c13_7
+ *[0-9a-f]+: d51bfe0f msr s3_3_c15_c14_0, x15
+ *[0-9a-f]+: d53bfe0f mrs x15, s3_3_c15_c14_0
+ *[0-9a-f]+: d51bfe2f msr s3_3_c15_c14_1, x15
+ *[0-9a-f]+: d53bfe2f mrs x15, s3_3_c15_c14_1
+ *[0-9a-f]+: d51bfe4f msr s3_3_c15_c14_2, x15
+ *[0-9a-f]+: d53bfe4f mrs x15, s3_3_c15_c14_2
+ *[0-9a-f]+: d51bfe6f msr s3_3_c15_c14_3, x15
+ *[0-9a-f]+: d53bfe6f mrs x15, s3_3_c15_c14_3
+ *[0-9a-f]+: d51bfe8f msr s3_3_c15_c14_4, x15
+ *[0-9a-f]+: d53bfe8f mrs x15, s3_3_c15_c14_4
+ *[0-9a-f]+: d51bfeaf msr s3_3_c15_c14_5, x15
+ *[0-9a-f]+: d53bfeaf mrs x15, s3_3_c15_c14_5
+ *[0-9a-f]+: d51bfecf msr s3_3_c15_c14_6, x15
+ *[0-9a-f]+: d53bfecf mrs x15, s3_3_c15_c14_6
+ *[0-9a-f]+: d51bfeef msr s3_3_c15_c14_7, x15
+ *[0-9a-f]+: d53bfeef mrs x15, s3_3_c15_c14_7
+ *[0-9a-f]+: d51bff0f msr s3_3_c15_c15_0, x15
+ *[0-9a-f]+: d53bff0f mrs x15, s3_3_c15_c15_0
+ *[0-9a-f]+: d51bff2f msr s3_3_c15_c15_1, x15
+ *[0-9a-f]+: d53bff2f mrs x15, s3_3_c15_c15_1
+ *[0-9a-f]+: d51bff4f msr s3_3_c15_c15_2, x15
+ *[0-9a-f]+: d53bff4f mrs x15, s3_3_c15_c15_2
+ *[0-9a-f]+: d51bff6f msr s3_3_c15_c15_3, x15
+ *[0-9a-f]+: d53bff6f mrs x15, s3_3_c15_c15_3
+ *[0-9a-f]+: d51bff8f msr s3_3_c15_c15_4, x15
+ *[0-9a-f]+: d53bff8f mrs x15, s3_3_c15_c15_4
+ *[0-9a-f]+: d51bffaf msr s3_3_c15_c15_5, x15
+ *[0-9a-f]+: d53bffaf mrs x15, s3_3_c15_c15_5
+ *[0-9a-f]+: d51bffcf msr s3_3_c15_c15_6, x15
+ *[0-9a-f]+: d53bffcf mrs x15, s3_3_c15_c15_6
+ *[0-9a-f]+: d51bffef msr s3_3_c15_c15_7, x15
+ *[0-9a-f]+: d53bffef mrs x15, s3_3_c15_c15_7
+ *[0-9a-f]+: d51cb00f msr s3_4_c11_c0_0, x15
+ *[0-9a-f]+: d53cb00f mrs x15, s3_4_c11_c0_0
+ *[0-9a-f]+: d51cb02f msr s3_4_c11_c0_1, x15
+ *[0-9a-f]+: d53cb02f mrs x15, s3_4_c11_c0_1
+ *[0-9a-f]+: d51cb04f msr s3_4_c11_c0_2, x15
+ *[0-9a-f]+: d53cb04f mrs x15, s3_4_c11_c0_2
+ *[0-9a-f]+: d51cb06f msr s3_4_c11_c0_3, x15
+ *[0-9a-f]+: d53cb06f mrs x15, s3_4_c11_c0_3
+ *[0-9a-f]+: d51cb08f msr s3_4_c11_c0_4, x15
+ *[0-9a-f]+: d53cb08f mrs x15, s3_4_c11_c0_4
+ *[0-9a-f]+: d51cb0af msr s3_4_c11_c0_5, x15
+ *[0-9a-f]+: d53cb0af mrs x15, s3_4_c11_c0_5
+ *[0-9a-f]+: d51cb0cf msr s3_4_c11_c0_6, x15
+ *[0-9a-f]+: d53cb0cf mrs x15, s3_4_c11_c0_6
+ *[0-9a-f]+: d51cb0ef msr s3_4_c11_c0_7, x15
+ *[0-9a-f]+: d53cb0ef mrs x15, s3_4_c11_c0_7
+ *[0-9a-f]+: d51cb10f msr s3_4_c11_c1_0, x15
+ *[0-9a-f]+: d53cb10f mrs x15, s3_4_c11_c1_0
+ *[0-9a-f]+: d51cb12f msr s3_4_c11_c1_1, x15
+ *[0-9a-f]+: d53cb12f mrs x15, s3_4_c11_c1_1
+ *[0-9a-f]+: d51cb14f msr s3_4_c11_c1_2, x15
+ *[0-9a-f]+: d53cb14f mrs x15, s3_4_c11_c1_2
+ *[0-9a-f]+: d51cb16f msr s3_4_c11_c1_3, x15
+ *[0-9a-f]+: d53cb16f mrs x15, s3_4_c11_c1_3
+ *[0-9a-f]+: d51cb18f msr s3_4_c11_c1_4, x15
+ *[0-9a-f]+: d53cb18f mrs x15, s3_4_c11_c1_4
+ *[0-9a-f]+: d51cb1af msr s3_4_c11_c1_5, x15
+ *[0-9a-f]+: d53cb1af mrs x15, s3_4_c11_c1_5
+ *[0-9a-f]+: d51cb1cf msr s3_4_c11_c1_6, x15
+ *[0-9a-f]+: d53cb1cf mrs x15, s3_4_c11_c1_6
+ *[0-9a-f]+: d51cb1ef msr s3_4_c11_c1_7, x15
+ *[0-9a-f]+: d53cb1ef mrs x15, s3_4_c11_c1_7
+ *[0-9a-f]+: d51cb20f msr s3_4_c11_c2_0, x15
+ *[0-9a-f]+: d53cb20f mrs x15, s3_4_c11_c2_0
+ *[0-9a-f]+: d51cb22f msr s3_4_c11_c2_1, x15
+ *[0-9a-f]+: d53cb22f mrs x15, s3_4_c11_c2_1
+ *[0-9a-f]+: d51cb24f msr s3_4_c11_c2_2, x15
+ *[0-9a-f]+: d53cb24f mrs x15, s3_4_c11_c2_2
+ *[0-9a-f]+: d51cb26f msr s3_4_c11_c2_3, x15
+ *[0-9a-f]+: d53cb26f mrs x15, s3_4_c11_c2_3
+ *[0-9a-f]+: d51cb28f msr s3_4_c11_c2_4, x15
+ *[0-9a-f]+: d53cb28f mrs x15, s3_4_c11_c2_4
+ *[0-9a-f]+: d51cb2af msr s3_4_c11_c2_5, x15
+ *[0-9a-f]+: d53cb2af mrs x15, s3_4_c11_c2_5
+ *[0-9a-f]+: d51cb2cf msr s3_4_c11_c2_6, x15
+ *[0-9a-f]+: d53cb2cf mrs x15, s3_4_c11_c2_6
+ *[0-9a-f]+: d51cb2ef msr s3_4_c11_c2_7, x15
+ *[0-9a-f]+: d53cb2ef mrs x15, s3_4_c11_c2_7
+ *[0-9a-f]+: d51cb30f msr s3_4_c11_c3_0, x15
+ *[0-9a-f]+: d53cb30f mrs x15, s3_4_c11_c3_0
+ *[0-9a-f]+: d51cb32f msr s3_4_c11_c3_1, x15
+ *[0-9a-f]+: d53cb32f mrs x15, s3_4_c11_c3_1
+ *[0-9a-f]+: d51cb34f msr s3_4_c11_c3_2, x15
+ *[0-9a-f]+: d53cb34f mrs x15, s3_4_c11_c3_2
+ *[0-9a-f]+: d51cb36f msr s3_4_c11_c3_3, x15
+ *[0-9a-f]+: d53cb36f mrs x15, s3_4_c11_c3_3
+ *[0-9a-f]+: d51cb38f msr s3_4_c11_c3_4, x15
+ *[0-9a-f]+: d53cb38f mrs x15, s3_4_c11_c3_4
+ *[0-9a-f]+: d51cb3af msr s3_4_c11_c3_5, x15
+ *[0-9a-f]+: d53cb3af mrs x15, s3_4_c11_c3_5
+ *[0-9a-f]+: d51cb3cf msr s3_4_c11_c3_6, x15
+ *[0-9a-f]+: d53cb3cf mrs x15, s3_4_c11_c3_6
+ *[0-9a-f]+: d51cb3ef msr s3_4_c11_c3_7, x15
+ *[0-9a-f]+: d53cb3ef mrs x15, s3_4_c11_c3_7
+ *[0-9a-f]+: d51cb40f msr s3_4_c11_c4_0, x15
+ *[0-9a-f]+: d53cb40f mrs x15, s3_4_c11_c4_0
+ *[0-9a-f]+: d51cb42f msr s3_4_c11_c4_1, x15
+ *[0-9a-f]+: d53cb42f mrs x15, s3_4_c11_c4_1
+ *[0-9a-f]+: d51cb44f msr s3_4_c11_c4_2, x15
+ *[0-9a-f]+: d53cb44f mrs x15, s3_4_c11_c4_2
+ *[0-9a-f]+: d51cb46f msr s3_4_c11_c4_3, x15
+ *[0-9a-f]+: d53cb46f mrs x15, s3_4_c11_c4_3
+ *[0-9a-f]+: d51cb48f msr s3_4_c11_c4_4, x15
+ *[0-9a-f]+: d53cb48f mrs x15, s3_4_c11_c4_4
+ *[0-9a-f]+: d51cb4af msr s3_4_c11_c4_5, x15
+ *[0-9a-f]+: d53cb4af mrs x15, s3_4_c11_c4_5
+ *[0-9a-f]+: d51cb4cf msr s3_4_c11_c4_6, x15
+ *[0-9a-f]+: d53cb4cf mrs x15, s3_4_c11_c4_6
+ *[0-9a-f]+: d51cb4ef msr s3_4_c11_c4_7, x15
+ *[0-9a-f]+: d53cb4ef mrs x15, s3_4_c11_c4_7
+ *[0-9a-f]+: d51cb50f msr s3_4_c11_c5_0, x15
+ *[0-9a-f]+: d53cb50f mrs x15, s3_4_c11_c5_0
+ *[0-9a-f]+: d51cb52f msr s3_4_c11_c5_1, x15
+ *[0-9a-f]+: d53cb52f mrs x15, s3_4_c11_c5_1
+ *[0-9a-f]+: d51cb54f msr s3_4_c11_c5_2, x15
+ *[0-9a-f]+: d53cb54f mrs x15, s3_4_c11_c5_2
+ *[0-9a-f]+: d51cb56f msr s3_4_c11_c5_3, x15
+ *[0-9a-f]+: d53cb56f mrs x15, s3_4_c11_c5_3
+ *[0-9a-f]+: d51cb58f msr s3_4_c11_c5_4, x15
+ *[0-9a-f]+: d53cb58f mrs x15, s3_4_c11_c5_4
+ *[0-9a-f]+: d51cb5af msr s3_4_c11_c5_5, x15
+ *[0-9a-f]+: d53cb5af mrs x15, s3_4_c11_c5_5
+ *[0-9a-f]+: d51cb5cf msr s3_4_c11_c5_6, x15
+ *[0-9a-f]+: d53cb5cf mrs x15, s3_4_c11_c5_6
+ *[0-9a-f]+: d51cb5ef msr s3_4_c11_c5_7, x15
+ *[0-9a-f]+: d53cb5ef mrs x15, s3_4_c11_c5_7
+ *[0-9a-f]+: d51cb60f msr s3_4_c11_c6_0, x15
+ *[0-9a-f]+: d53cb60f mrs x15, s3_4_c11_c6_0
+ *[0-9a-f]+: d51cb62f msr s3_4_c11_c6_1, x15
+ *[0-9a-f]+: d53cb62f mrs x15, s3_4_c11_c6_1
+ *[0-9a-f]+: d51cb64f msr s3_4_c11_c6_2, x15
+ *[0-9a-f]+: d53cb64f mrs x15, s3_4_c11_c6_2
+ *[0-9a-f]+: d51cb66f msr s3_4_c11_c6_3, x15
+ *[0-9a-f]+: d53cb66f mrs x15, s3_4_c11_c6_3
+ *[0-9a-f]+: d51cb68f msr s3_4_c11_c6_4, x15
+ *[0-9a-f]+: d53cb68f mrs x15, s3_4_c11_c6_4
+ *[0-9a-f]+: d51cb6af msr s3_4_c11_c6_5, x15
+ *[0-9a-f]+: d53cb6af mrs x15, s3_4_c11_c6_5
+ *[0-9a-f]+: d51cb6cf msr s3_4_c11_c6_6, x15
+ *[0-9a-f]+: d53cb6cf mrs x15, s3_4_c11_c6_6
+ *[0-9a-f]+: d51cb6ef msr s3_4_c11_c6_7, x15
+ *[0-9a-f]+: d53cb6ef mrs x15, s3_4_c11_c6_7
+ *[0-9a-f]+: d51cb70f msr s3_4_c11_c7_0, x15
+ *[0-9a-f]+: d53cb70f mrs x15, s3_4_c11_c7_0
+ *[0-9a-f]+: d51cb72f msr s3_4_c11_c7_1, x15
+ *[0-9a-f]+: d53cb72f mrs x15, s3_4_c11_c7_1
+ *[0-9a-f]+: d51cb74f msr s3_4_c11_c7_2, x15
+ *[0-9a-f]+: d53cb74f mrs x15, s3_4_c11_c7_2
+ *[0-9a-f]+: d51cb76f msr s3_4_c11_c7_3, x15
+ *[0-9a-f]+: d53cb76f mrs x15, s3_4_c11_c7_3
+ *[0-9a-f]+: d51cb78f msr s3_4_c11_c7_4, x15
+ *[0-9a-f]+: d53cb78f mrs x15, s3_4_c11_c7_4
+ *[0-9a-f]+: d51cb7af msr s3_4_c11_c7_5, x15
+ *[0-9a-f]+: d53cb7af mrs x15, s3_4_c11_c7_5
+ *[0-9a-f]+: d51cb7cf msr s3_4_c11_c7_6, x15
+ *[0-9a-f]+: d53cb7cf mrs x15, s3_4_c11_c7_6
+ *[0-9a-f]+: d51cb7ef msr s3_4_c11_c7_7, x15
+ *[0-9a-f]+: d53cb7ef mrs x15, s3_4_c11_c7_7
+ *[0-9a-f]+: d51cb80f msr s3_4_c11_c8_0, x15
+ *[0-9a-f]+: d53cb80f mrs x15, s3_4_c11_c8_0
+ *[0-9a-f]+: d51cb82f msr s3_4_c11_c8_1, x15
+ *[0-9a-f]+: d53cb82f mrs x15, s3_4_c11_c8_1
+ *[0-9a-f]+: d51cb84f msr s3_4_c11_c8_2, x15
+ *[0-9a-f]+: d53cb84f mrs x15, s3_4_c11_c8_2
+ *[0-9a-f]+: d51cb86f msr s3_4_c11_c8_3, x15
+ *[0-9a-f]+: d53cb86f mrs x15, s3_4_c11_c8_3
+ *[0-9a-f]+: d51cb88f msr s3_4_c11_c8_4, x15
+ *[0-9a-f]+: d53cb88f mrs x15, s3_4_c11_c8_4
+ *[0-9a-f]+: d51cb8af msr s3_4_c11_c8_5, x15
+ *[0-9a-f]+: d53cb8af mrs x15, s3_4_c11_c8_5
+ *[0-9a-f]+: d51cb8cf msr s3_4_c11_c8_6, x15
+ *[0-9a-f]+: d53cb8cf mrs x15, s3_4_c11_c8_6
+ *[0-9a-f]+: d51cb8ef msr s3_4_c11_c8_7, x15
+ *[0-9a-f]+: d53cb8ef mrs x15, s3_4_c11_c8_7
+ *[0-9a-f]+: d51cb90f msr s3_4_c11_c9_0, x15
+ *[0-9a-f]+: d53cb90f mrs x15, s3_4_c11_c9_0
+ *[0-9a-f]+: d51cb92f msr s3_4_c11_c9_1, x15
+ *[0-9a-f]+: d53cb92f mrs x15, s3_4_c11_c9_1
+ *[0-9a-f]+: d51cb94f msr s3_4_c11_c9_2, x15
+ *[0-9a-f]+: d53cb94f mrs x15, s3_4_c11_c9_2
+ *[0-9a-f]+: d51cb96f msr s3_4_c11_c9_3, x15
+ *[0-9a-f]+: d53cb96f mrs x15, s3_4_c11_c9_3
+ *[0-9a-f]+: d51cb98f msr s3_4_c11_c9_4, x15
+ *[0-9a-f]+: d53cb98f mrs x15, s3_4_c11_c9_4
+ *[0-9a-f]+: d51cb9af msr s3_4_c11_c9_5, x15
+ *[0-9a-f]+: d53cb9af mrs x15, s3_4_c11_c9_5
+ *[0-9a-f]+: d51cb9cf msr s3_4_c11_c9_6, x15
+ *[0-9a-f]+: d53cb9cf mrs x15, s3_4_c11_c9_6
+ *[0-9a-f]+: d51cb9ef msr s3_4_c11_c9_7, x15
+ *[0-9a-f]+: d53cb9ef mrs x15, s3_4_c11_c9_7
+ *[0-9a-f]+: d51cba0f msr s3_4_c11_c10_0, x15
+ *[0-9a-f]+: d53cba0f mrs x15, s3_4_c11_c10_0
+ *[0-9a-f]+: d51cba2f msr s3_4_c11_c10_1, x15
+ *[0-9a-f]+: d53cba2f mrs x15, s3_4_c11_c10_1
+ *[0-9a-f]+: d51cba4f msr s3_4_c11_c10_2, x15
+ *[0-9a-f]+: d53cba4f mrs x15, s3_4_c11_c10_2
+ *[0-9a-f]+: d51cba6f msr s3_4_c11_c10_3, x15
+ *[0-9a-f]+: d53cba6f mrs x15, s3_4_c11_c10_3
+ *[0-9a-f]+: d51cba8f msr s3_4_c11_c10_4, x15
+ *[0-9a-f]+: d53cba8f mrs x15, s3_4_c11_c10_4
+ *[0-9a-f]+: d51cbaaf msr s3_4_c11_c10_5, x15
+ *[0-9a-f]+: d53cbaaf mrs x15, s3_4_c11_c10_5
+ *[0-9a-f]+: d51cbacf msr s3_4_c11_c10_6, x15
+ *[0-9a-f]+: d53cbacf mrs x15, s3_4_c11_c10_6
+ *[0-9a-f]+: d51cbaef msr s3_4_c11_c10_7, x15
+ *[0-9a-f]+: d53cbaef mrs x15, s3_4_c11_c10_7
+ *[0-9a-f]+: d51cbb0f msr s3_4_c11_c11_0, x15
+ *[0-9a-f]+: d53cbb0f mrs x15, s3_4_c11_c11_0
+ *[0-9a-f]+: d51cbb2f msr s3_4_c11_c11_1, x15
+ *[0-9a-f]+: d53cbb2f mrs x15, s3_4_c11_c11_1
+ *[0-9a-f]+: d51cbb4f msr s3_4_c11_c11_2, x15
+ *[0-9a-f]+: d53cbb4f mrs x15, s3_4_c11_c11_2
+ *[0-9a-f]+: d51cbb6f msr s3_4_c11_c11_3, x15
+ *[0-9a-f]+: d53cbb6f mrs x15, s3_4_c11_c11_3
+ *[0-9a-f]+: d51cbb8f msr s3_4_c11_c11_4, x15
+ *[0-9a-f]+: d53cbb8f mrs x15, s3_4_c11_c11_4
+ *[0-9a-f]+: d51cbbaf msr s3_4_c11_c11_5, x15
+ *[0-9a-f]+: d53cbbaf mrs x15, s3_4_c11_c11_5
+ *[0-9a-f]+: d51cbbcf msr s3_4_c11_c11_6, x15
+ *[0-9a-f]+: d53cbbcf mrs x15, s3_4_c11_c11_6
+ *[0-9a-f]+: d51cbbef msr s3_4_c11_c11_7, x15
+ *[0-9a-f]+: d53cbbef mrs x15, s3_4_c11_c11_7
+ *[0-9a-f]+: d51cbc0f msr s3_4_c11_c12_0, x15
+ *[0-9a-f]+: d53cbc0f mrs x15, s3_4_c11_c12_0
+ *[0-9a-f]+: d51cbc2f msr s3_4_c11_c12_1, x15
+ *[0-9a-f]+: d53cbc2f mrs x15, s3_4_c11_c12_1
+ *[0-9a-f]+: d51cbc4f msr s3_4_c11_c12_2, x15
+ *[0-9a-f]+: d53cbc4f mrs x15, s3_4_c11_c12_2
+ *[0-9a-f]+: d51cbc6f msr s3_4_c11_c12_3, x15
+ *[0-9a-f]+: d53cbc6f mrs x15, s3_4_c11_c12_3
+ *[0-9a-f]+: d51cbc8f msr s3_4_c11_c12_4, x15
+ *[0-9a-f]+: d53cbc8f mrs x15, s3_4_c11_c12_4
+ *[0-9a-f]+: d51cbcaf msr s3_4_c11_c12_5, x15
+ *[0-9a-f]+: d53cbcaf mrs x15, s3_4_c11_c12_5
+ *[0-9a-f]+: d51cbccf msr s3_4_c11_c12_6, x15
+ *[0-9a-f]+: d53cbccf mrs x15, s3_4_c11_c12_6
+ *[0-9a-f]+: d51cbcef msr s3_4_c11_c12_7, x15
+ *[0-9a-f]+: d53cbcef mrs x15, s3_4_c11_c12_7
+ *[0-9a-f]+: d51cbd0f msr s3_4_c11_c13_0, x15
+ *[0-9a-f]+: d53cbd0f mrs x15, s3_4_c11_c13_0
+ *[0-9a-f]+: d51cbd2f msr s3_4_c11_c13_1, x15
+ *[0-9a-f]+: d53cbd2f mrs x15, s3_4_c11_c13_1
+ *[0-9a-f]+: d51cbd4f msr s3_4_c11_c13_2, x15
+ *[0-9a-f]+: d53cbd4f mrs x15, s3_4_c11_c13_2
+ *[0-9a-f]+: d51cbd6f msr s3_4_c11_c13_3, x15
+ *[0-9a-f]+: d53cbd6f mrs x15, s3_4_c11_c13_3
+ *[0-9a-f]+: d51cbd8f msr s3_4_c11_c13_4, x15
+ *[0-9a-f]+: d53cbd8f mrs x15, s3_4_c11_c13_4
+ *[0-9a-f]+: d51cbdaf msr s3_4_c11_c13_5, x15
+ *[0-9a-f]+: d53cbdaf mrs x15, s3_4_c11_c13_5
+ *[0-9a-f]+: d51cbdcf msr s3_4_c11_c13_6, x15
+ *[0-9a-f]+: d53cbdcf mrs x15, s3_4_c11_c13_6
+ *[0-9a-f]+: d51cbdef msr s3_4_c11_c13_7, x15
+ *[0-9a-f]+: d53cbdef mrs x15, s3_4_c11_c13_7
+ *[0-9a-f]+: d51cbe0f msr s3_4_c11_c14_0, x15
+ *[0-9a-f]+: d53cbe0f mrs x15, s3_4_c11_c14_0
+ *[0-9a-f]+: d51cbe2f msr s3_4_c11_c14_1, x15
+ *[0-9a-f]+: d53cbe2f mrs x15, s3_4_c11_c14_1
+ *[0-9a-f]+: d51cbe4f msr s3_4_c11_c14_2, x15
+ *[0-9a-f]+: d53cbe4f mrs x15, s3_4_c11_c14_2
+ *[0-9a-f]+: d51cbe6f msr s3_4_c11_c14_3, x15
+ *[0-9a-f]+: d53cbe6f mrs x15, s3_4_c11_c14_3
+ *[0-9a-f]+: d51cbe8f msr s3_4_c11_c14_4, x15
+ *[0-9a-f]+: d53cbe8f mrs x15, s3_4_c11_c14_4
+ *[0-9a-f]+: d51cbeaf msr s3_4_c11_c14_5, x15
+ *[0-9a-f]+: d53cbeaf mrs x15, s3_4_c11_c14_5
+ *[0-9a-f]+: d51cbecf msr s3_4_c11_c14_6, x15
+ *[0-9a-f]+: d53cbecf mrs x15, s3_4_c11_c14_6
+ *[0-9a-f]+: d51cbeef msr s3_4_c11_c14_7, x15
+ *[0-9a-f]+: d53cbeef mrs x15, s3_4_c11_c14_7
+ *[0-9a-f]+: d51cbf0f msr s3_4_c11_c15_0, x15
+ *[0-9a-f]+: d53cbf0f mrs x15, s3_4_c11_c15_0
+ *[0-9a-f]+: d51cbf2f msr s3_4_c11_c15_1, x15
+ *[0-9a-f]+: d53cbf2f mrs x15, s3_4_c11_c15_1
+ *[0-9a-f]+: d51cbf4f msr s3_4_c11_c15_2, x15
+ *[0-9a-f]+: d53cbf4f mrs x15, s3_4_c11_c15_2
+ *[0-9a-f]+: d51cbf6f msr s3_4_c11_c15_3, x15
+ *[0-9a-f]+: d53cbf6f mrs x15, s3_4_c11_c15_3
+ *[0-9a-f]+: d51cbf8f msr s3_4_c11_c15_4, x15
+ *[0-9a-f]+: d53cbf8f mrs x15, s3_4_c11_c15_4
+ *[0-9a-f]+: d51cbfaf msr s3_4_c11_c15_5, x15
+ *[0-9a-f]+: d53cbfaf mrs x15, s3_4_c11_c15_5
+ *[0-9a-f]+: d51cbfcf msr s3_4_c11_c15_6, x15
+ *[0-9a-f]+: d53cbfcf mrs x15, s3_4_c11_c15_6
+ *[0-9a-f]+: d51cbfef msr s3_4_c11_c15_7, x15
+ *[0-9a-f]+: d53cbfef mrs x15, s3_4_c11_c15_7
+ *[0-9a-f]+: d51cf00f msr s3_4_c15_c0_0, x15
+ *[0-9a-f]+: d53cf00f mrs x15, s3_4_c15_c0_0
+ *[0-9a-f]+: d51cf02f msr s3_4_c15_c0_1, x15
+ *[0-9a-f]+: d53cf02f mrs x15, s3_4_c15_c0_1
+ *[0-9a-f]+: d51cf04f msr s3_4_c15_c0_2, x15
+ *[0-9a-f]+: d53cf04f mrs x15, s3_4_c15_c0_2
+ *[0-9a-f]+: d51cf06f msr s3_4_c15_c0_3, x15
+ *[0-9a-f]+: d53cf06f mrs x15, s3_4_c15_c0_3
+ *[0-9a-f]+: d51cf08f msr s3_4_c15_c0_4, x15
+ *[0-9a-f]+: d53cf08f mrs x15, s3_4_c15_c0_4
+ *[0-9a-f]+: d51cf0af msr s3_4_c15_c0_5, x15
+ *[0-9a-f]+: d53cf0af mrs x15, s3_4_c15_c0_5
+ *[0-9a-f]+: d51cf0cf msr s3_4_c15_c0_6, x15
+ *[0-9a-f]+: d53cf0cf mrs x15, s3_4_c15_c0_6
+ *[0-9a-f]+: d51cf0ef msr s3_4_c15_c0_7, x15
+ *[0-9a-f]+: d53cf0ef mrs x15, s3_4_c15_c0_7
+ *[0-9a-f]+: d51cf10f msr s3_4_c15_c1_0, x15
+ *[0-9a-f]+: d53cf10f mrs x15, s3_4_c15_c1_0
+ *[0-9a-f]+: d51cf12f msr s3_4_c15_c1_1, x15
+ *[0-9a-f]+: d53cf12f mrs x15, s3_4_c15_c1_1
+ *[0-9a-f]+: d51cf14f msr s3_4_c15_c1_2, x15
+ *[0-9a-f]+: d53cf14f mrs x15, s3_4_c15_c1_2
+ *[0-9a-f]+: d51cf16f msr s3_4_c15_c1_3, x15
+ *[0-9a-f]+: d53cf16f mrs x15, s3_4_c15_c1_3
+ *[0-9a-f]+: d51cf18f msr s3_4_c15_c1_4, x15
+ *[0-9a-f]+: d53cf18f mrs x15, s3_4_c15_c1_4
+ *[0-9a-f]+: d51cf1af msr s3_4_c15_c1_5, x15
+ *[0-9a-f]+: d53cf1af mrs x15, s3_4_c15_c1_5
+ *[0-9a-f]+: d51cf1cf msr s3_4_c15_c1_6, x15
+ *[0-9a-f]+: d53cf1cf mrs x15, s3_4_c15_c1_6
+ *[0-9a-f]+: d51cf1ef msr s3_4_c15_c1_7, x15
+ *[0-9a-f]+: d53cf1ef mrs x15, s3_4_c15_c1_7
+ *[0-9a-f]+: d51cf20f msr s3_4_c15_c2_0, x15
+ *[0-9a-f]+: d53cf20f mrs x15, s3_4_c15_c2_0
+ *[0-9a-f]+: d51cf22f msr s3_4_c15_c2_1, x15
+ *[0-9a-f]+: d53cf22f mrs x15, s3_4_c15_c2_1
+ *[0-9a-f]+: d51cf24f msr s3_4_c15_c2_2, x15
+ *[0-9a-f]+: d53cf24f mrs x15, s3_4_c15_c2_2
+ *[0-9a-f]+: d51cf26f msr s3_4_c15_c2_3, x15
+ *[0-9a-f]+: d53cf26f mrs x15, s3_4_c15_c2_3
+ *[0-9a-f]+: d51cf28f msr s3_4_c15_c2_4, x15
+ *[0-9a-f]+: d53cf28f mrs x15, s3_4_c15_c2_4
+ *[0-9a-f]+: d51cf2af msr s3_4_c15_c2_5, x15
+ *[0-9a-f]+: d53cf2af mrs x15, s3_4_c15_c2_5
+ *[0-9a-f]+: d51cf2cf msr s3_4_c15_c2_6, x15
+ *[0-9a-f]+: d53cf2cf mrs x15, s3_4_c15_c2_6
+ *[0-9a-f]+: d51cf2ef msr s3_4_c15_c2_7, x15
+ *[0-9a-f]+: d53cf2ef mrs x15, s3_4_c15_c2_7
+ *[0-9a-f]+: d51cf30f msr s3_4_c15_c3_0, x15
+ *[0-9a-f]+: d53cf30f mrs x15, s3_4_c15_c3_0
+ *[0-9a-f]+: d51cf32f msr s3_4_c15_c3_1, x15
+ *[0-9a-f]+: d53cf32f mrs x15, s3_4_c15_c3_1
+ *[0-9a-f]+: d51cf34f msr s3_4_c15_c3_2, x15
+ *[0-9a-f]+: d53cf34f mrs x15, s3_4_c15_c3_2
+ *[0-9a-f]+: d51cf36f msr s3_4_c15_c3_3, x15
+ *[0-9a-f]+: d53cf36f mrs x15, s3_4_c15_c3_3
+ *[0-9a-f]+: d51cf38f msr s3_4_c15_c3_4, x15
+ *[0-9a-f]+: d53cf38f mrs x15, s3_4_c15_c3_4
+ *[0-9a-f]+: d51cf3af msr s3_4_c15_c3_5, x15
+ *[0-9a-f]+: d53cf3af mrs x15, s3_4_c15_c3_5
+ *[0-9a-f]+: d51cf3cf msr s3_4_c15_c3_6, x15
+ *[0-9a-f]+: d53cf3cf mrs x15, s3_4_c15_c3_6
+ *[0-9a-f]+: d51cf3ef msr s3_4_c15_c3_7, x15
+ *[0-9a-f]+: d53cf3ef mrs x15, s3_4_c15_c3_7
+ *[0-9a-f]+: d51cf40f msr s3_4_c15_c4_0, x15
+ *[0-9a-f]+: d53cf40f mrs x15, s3_4_c15_c4_0
+ *[0-9a-f]+: d51cf42f msr s3_4_c15_c4_1, x15
+ *[0-9a-f]+: d53cf42f mrs x15, s3_4_c15_c4_1
+ *[0-9a-f]+: d51cf44f msr s3_4_c15_c4_2, x15
+ *[0-9a-f]+: d53cf44f mrs x15, s3_4_c15_c4_2
+ *[0-9a-f]+: d51cf46f msr s3_4_c15_c4_3, x15
+ *[0-9a-f]+: d53cf46f mrs x15, s3_4_c15_c4_3
+ *[0-9a-f]+: d51cf48f msr s3_4_c15_c4_4, x15
+ *[0-9a-f]+: d53cf48f mrs x15, s3_4_c15_c4_4
+ *[0-9a-f]+: d51cf4af msr s3_4_c15_c4_5, x15
+ *[0-9a-f]+: d53cf4af mrs x15, s3_4_c15_c4_5
+ *[0-9a-f]+: d51cf4cf msr s3_4_c15_c4_6, x15
+ *[0-9a-f]+: d53cf4cf mrs x15, s3_4_c15_c4_6
+ *[0-9a-f]+: d51cf4ef msr s3_4_c15_c4_7, x15
+ *[0-9a-f]+: d53cf4ef mrs x15, s3_4_c15_c4_7
+ *[0-9a-f]+: d51cf50f msr s3_4_c15_c5_0, x15
+ *[0-9a-f]+: d53cf50f mrs x15, s3_4_c15_c5_0
+ *[0-9a-f]+: d51cf52f msr s3_4_c15_c5_1, x15
+ *[0-9a-f]+: d53cf52f mrs x15, s3_4_c15_c5_1
+ *[0-9a-f]+: d51cf54f msr s3_4_c15_c5_2, x15
+ *[0-9a-f]+: d53cf54f mrs x15, s3_4_c15_c5_2
+ *[0-9a-f]+: d51cf56f msr s3_4_c15_c5_3, x15
+ *[0-9a-f]+: d53cf56f mrs x15, s3_4_c15_c5_3
+ *[0-9a-f]+: d51cf58f msr s3_4_c15_c5_4, x15
+ *[0-9a-f]+: d53cf58f mrs x15, s3_4_c15_c5_4
+ *[0-9a-f]+: d51cf5af msr s3_4_c15_c5_5, x15
+ *[0-9a-f]+: d53cf5af mrs x15, s3_4_c15_c5_5
+ *[0-9a-f]+: d51cf5cf msr s3_4_c15_c5_6, x15
+ *[0-9a-f]+: d53cf5cf mrs x15, s3_4_c15_c5_6
+ *[0-9a-f]+: d51cf5ef msr s3_4_c15_c5_7, x15
+ *[0-9a-f]+: d53cf5ef mrs x15, s3_4_c15_c5_7
+ *[0-9a-f]+: d51cf60f msr s3_4_c15_c6_0, x15
+ *[0-9a-f]+: d53cf60f mrs x15, s3_4_c15_c6_0
+ *[0-9a-f]+: d51cf62f msr s3_4_c15_c6_1, x15
+ *[0-9a-f]+: d53cf62f mrs x15, s3_4_c15_c6_1
+ *[0-9a-f]+: d51cf64f msr s3_4_c15_c6_2, x15
+ *[0-9a-f]+: d53cf64f mrs x15, s3_4_c15_c6_2
+ *[0-9a-f]+: d51cf66f msr s3_4_c15_c6_3, x15
+ *[0-9a-f]+: d53cf66f mrs x15, s3_4_c15_c6_3
+ *[0-9a-f]+: d51cf68f msr s3_4_c15_c6_4, x15
+ *[0-9a-f]+: d53cf68f mrs x15, s3_4_c15_c6_4
+ *[0-9a-f]+: d51cf6af msr s3_4_c15_c6_5, x15
+ *[0-9a-f]+: d53cf6af mrs x15, s3_4_c15_c6_5
+ *[0-9a-f]+: d51cf6cf msr s3_4_c15_c6_6, x15
+ *[0-9a-f]+: d53cf6cf mrs x15, s3_4_c15_c6_6
+ *[0-9a-f]+: d51cf6ef msr s3_4_c15_c6_7, x15
+ *[0-9a-f]+: d53cf6ef mrs x15, s3_4_c15_c6_7
+ *[0-9a-f]+: d51cf70f msr s3_4_c15_c7_0, x15
+ *[0-9a-f]+: d53cf70f mrs x15, s3_4_c15_c7_0
+ *[0-9a-f]+: d51cf72f msr s3_4_c15_c7_1, x15
+ *[0-9a-f]+: d53cf72f mrs x15, s3_4_c15_c7_1
+ *[0-9a-f]+: d51cf74f msr s3_4_c15_c7_2, x15
+ *[0-9a-f]+: d53cf74f mrs x15, s3_4_c15_c7_2
+ *[0-9a-f]+: d51cf76f msr s3_4_c15_c7_3, x15
+ *[0-9a-f]+: d53cf76f mrs x15, s3_4_c15_c7_3
+ *[0-9a-f]+: d51cf78f msr s3_4_c15_c7_4, x15
+ *[0-9a-f]+: d53cf78f mrs x15, s3_4_c15_c7_4
+ *[0-9a-f]+: d51cf7af msr s3_4_c15_c7_5, x15
+ *[0-9a-f]+: d53cf7af mrs x15, s3_4_c15_c7_5
+ *[0-9a-f]+: d51cf7cf msr s3_4_c15_c7_6, x15
+ *[0-9a-f]+: d53cf7cf mrs x15, s3_4_c15_c7_6
+ *[0-9a-f]+: d51cf7ef msr s3_4_c15_c7_7, x15
+ *[0-9a-f]+: d53cf7ef mrs x15, s3_4_c15_c7_7
+ *[0-9a-f]+: d51cf80f msr s3_4_c15_c8_0, x15
+ *[0-9a-f]+: d53cf80f mrs x15, s3_4_c15_c8_0
+ *[0-9a-f]+: d51cf82f msr s3_4_c15_c8_1, x15
+ *[0-9a-f]+: d53cf82f mrs x15, s3_4_c15_c8_1
+ *[0-9a-f]+: d51cf84f msr s3_4_c15_c8_2, x15
+ *[0-9a-f]+: d53cf84f mrs x15, s3_4_c15_c8_2
+ *[0-9a-f]+: d51cf86f msr s3_4_c15_c8_3, x15
+ *[0-9a-f]+: d53cf86f mrs x15, s3_4_c15_c8_3
+ *[0-9a-f]+: d51cf88f msr s3_4_c15_c8_4, x15
+ *[0-9a-f]+: d53cf88f mrs x15, s3_4_c15_c8_4
+ *[0-9a-f]+: d51cf8af msr s3_4_c15_c8_5, x15
+ *[0-9a-f]+: d53cf8af mrs x15, s3_4_c15_c8_5
+ *[0-9a-f]+: d51cf8cf msr s3_4_c15_c8_6, x15
+ *[0-9a-f]+: d53cf8cf mrs x15, s3_4_c15_c8_6
+ *[0-9a-f]+: d51cf8ef msr s3_4_c15_c8_7, x15
+ *[0-9a-f]+: d53cf8ef mrs x15, s3_4_c15_c8_7
+ *[0-9a-f]+: d51cf90f msr s3_4_c15_c9_0, x15
+ *[0-9a-f]+: d53cf90f mrs x15, s3_4_c15_c9_0
+ *[0-9a-f]+: d51cf92f msr s3_4_c15_c9_1, x15
+ *[0-9a-f]+: d53cf92f mrs x15, s3_4_c15_c9_1
+ *[0-9a-f]+: d51cf94f msr s3_4_c15_c9_2, x15
+ *[0-9a-f]+: d53cf94f mrs x15, s3_4_c15_c9_2
+ *[0-9a-f]+: d51cf96f msr s3_4_c15_c9_3, x15
+ *[0-9a-f]+: d53cf96f mrs x15, s3_4_c15_c9_3
+ *[0-9a-f]+: d51cf98f msr s3_4_c15_c9_4, x15
+ *[0-9a-f]+: d53cf98f mrs x15, s3_4_c15_c9_4
+ *[0-9a-f]+: d51cf9af msr s3_4_c15_c9_5, x15
+ *[0-9a-f]+: d53cf9af mrs x15, s3_4_c15_c9_5
+ *[0-9a-f]+: d51cf9cf msr s3_4_c15_c9_6, x15
+ *[0-9a-f]+: d53cf9cf mrs x15, s3_4_c15_c9_6
+ *[0-9a-f]+: d51cf9ef msr s3_4_c15_c9_7, x15
+ *[0-9a-f]+: d53cf9ef mrs x15, s3_4_c15_c9_7
+ *[0-9a-f]+: d51cfa0f msr s3_4_c15_c10_0, x15
+ *[0-9a-f]+: d53cfa0f mrs x15, s3_4_c15_c10_0
+ *[0-9a-f]+: d51cfa2f msr s3_4_c15_c10_1, x15
+ *[0-9a-f]+: d53cfa2f mrs x15, s3_4_c15_c10_1
+ *[0-9a-f]+: d51cfa4f msr s3_4_c15_c10_2, x15
+ *[0-9a-f]+: d53cfa4f mrs x15, s3_4_c15_c10_2
+ *[0-9a-f]+: d51cfa6f msr s3_4_c15_c10_3, x15
+ *[0-9a-f]+: d53cfa6f mrs x15, s3_4_c15_c10_3
+ *[0-9a-f]+: d51cfa8f msr s3_4_c15_c10_4, x15
+ *[0-9a-f]+: d53cfa8f mrs x15, s3_4_c15_c10_4
+ *[0-9a-f]+: d51cfaaf msr s3_4_c15_c10_5, x15
+ *[0-9a-f]+: d53cfaaf mrs x15, s3_4_c15_c10_5
+ *[0-9a-f]+: d51cfacf msr s3_4_c15_c10_6, x15
+ *[0-9a-f]+: d53cfacf mrs x15, s3_4_c15_c10_6
+ *[0-9a-f]+: d51cfaef msr s3_4_c15_c10_7, x15
+ *[0-9a-f]+: d53cfaef mrs x15, s3_4_c15_c10_7
+ *[0-9a-f]+: d51cfb0f msr s3_4_c15_c11_0, x15
+ *[0-9a-f]+: d53cfb0f mrs x15, s3_4_c15_c11_0
+ *[0-9a-f]+: d51cfb2f msr s3_4_c15_c11_1, x15
+ *[0-9a-f]+: d53cfb2f mrs x15, s3_4_c15_c11_1
+ *[0-9a-f]+: d51cfb4f msr s3_4_c15_c11_2, x15
+ *[0-9a-f]+: d53cfb4f mrs x15, s3_4_c15_c11_2
+ *[0-9a-f]+: d51cfb6f msr s3_4_c15_c11_3, x15
+ *[0-9a-f]+: d53cfb6f mrs x15, s3_4_c15_c11_3
+ *[0-9a-f]+: d51cfb8f msr s3_4_c15_c11_4, x15
+ *[0-9a-f]+: d53cfb8f mrs x15, s3_4_c15_c11_4
+ *[0-9a-f]+: d51cfbaf msr s3_4_c15_c11_5, x15
+ *[0-9a-f]+: d53cfbaf mrs x15, s3_4_c15_c11_5
+ *[0-9a-f]+: d51cfbcf msr s3_4_c15_c11_6, x15
+ *[0-9a-f]+: d53cfbcf mrs x15, s3_4_c15_c11_6
+ *[0-9a-f]+: d51cfbef msr s3_4_c15_c11_7, x15
+ *[0-9a-f]+: d53cfbef mrs x15, s3_4_c15_c11_7
+ *[0-9a-f]+: d51cfc0f msr s3_4_c15_c12_0, x15
+ *[0-9a-f]+: d53cfc0f mrs x15, s3_4_c15_c12_0
+ *[0-9a-f]+: d51cfc2f msr s3_4_c15_c12_1, x15
+ *[0-9a-f]+: d53cfc2f mrs x15, s3_4_c15_c12_1
+ *[0-9a-f]+: d51cfc4f msr s3_4_c15_c12_2, x15
+ *[0-9a-f]+: d53cfc4f mrs x15, s3_4_c15_c12_2
+ *[0-9a-f]+: d51cfc6f msr s3_4_c15_c12_3, x15
+ *[0-9a-f]+: d53cfc6f mrs x15, s3_4_c15_c12_3
+ *[0-9a-f]+: d51cfc8f msr s3_4_c15_c12_4, x15
+ *[0-9a-f]+: d53cfc8f mrs x15, s3_4_c15_c12_4
+ *[0-9a-f]+: d51cfcaf msr s3_4_c15_c12_5, x15
+ *[0-9a-f]+: d53cfcaf mrs x15, s3_4_c15_c12_5
+ *[0-9a-f]+: d51cfccf msr s3_4_c15_c12_6, x15
+ *[0-9a-f]+: d53cfccf mrs x15, s3_4_c15_c12_6
+ *[0-9a-f]+: d51cfcef msr s3_4_c15_c12_7, x15
+ *[0-9a-f]+: d53cfcef mrs x15, s3_4_c15_c12_7
+ *[0-9a-f]+: d51cfd0f msr s3_4_c15_c13_0, x15
+ *[0-9a-f]+: d53cfd0f mrs x15, s3_4_c15_c13_0
+ *[0-9a-f]+: d51cfd2f msr s3_4_c15_c13_1, x15
+ *[0-9a-f]+: d53cfd2f mrs x15, s3_4_c15_c13_1
+ *[0-9a-f]+: d51cfd4f msr s3_4_c15_c13_2, x15
+ *[0-9a-f]+: d53cfd4f mrs x15, s3_4_c15_c13_2
+ *[0-9a-f]+: d51cfd6f msr s3_4_c15_c13_3, x15
+ *[0-9a-f]+: d53cfd6f mrs x15, s3_4_c15_c13_3
+ *[0-9a-f]+: d51cfd8f msr s3_4_c15_c13_4, x15
+ *[0-9a-f]+: d53cfd8f mrs x15, s3_4_c15_c13_4
+ *[0-9a-f]+: d51cfdaf msr s3_4_c15_c13_5, x15
+ *[0-9a-f]+: d53cfdaf mrs x15, s3_4_c15_c13_5
+ *[0-9a-f]+: d51cfdcf msr s3_4_c15_c13_6, x15
+ *[0-9a-f]+: d53cfdcf mrs x15, s3_4_c15_c13_6
+ *[0-9a-f]+: d51cfdef msr s3_4_c15_c13_7, x15
+ *[0-9a-f]+: d53cfdef mrs x15, s3_4_c15_c13_7
+ *[0-9a-f]+: d51cfe0f msr s3_4_c15_c14_0, x15
+ *[0-9a-f]+: d53cfe0f mrs x15, s3_4_c15_c14_0
+ *[0-9a-f]+: d51cfe2f msr s3_4_c15_c14_1, x15
+ *[0-9a-f]+: d53cfe2f mrs x15, s3_4_c15_c14_1
+ *[0-9a-f]+: d51cfe4f msr s3_4_c15_c14_2, x15
+ *[0-9a-f]+: d53cfe4f mrs x15, s3_4_c15_c14_2
+ *[0-9a-f]+: d51cfe6f msr s3_4_c15_c14_3, x15
+ *[0-9a-f]+: d53cfe6f mrs x15, s3_4_c15_c14_3
+ *[0-9a-f]+: d51cfe8f msr s3_4_c15_c14_4, x15
+ *[0-9a-f]+: d53cfe8f mrs x15, s3_4_c15_c14_4
+ *[0-9a-f]+: d51cfeaf msr s3_4_c15_c14_5, x15
+ *[0-9a-f]+: d53cfeaf mrs x15, s3_4_c15_c14_5
+ *[0-9a-f]+: d51cfecf msr s3_4_c15_c14_6, x15
+ *[0-9a-f]+: d53cfecf mrs x15, s3_4_c15_c14_6
+ *[0-9a-f]+: d51cfeef msr s3_4_c15_c14_7, x15
+ *[0-9a-f]+: d53cfeef mrs x15, s3_4_c15_c14_7
+ *[0-9a-f]+: d51cff0f msr s3_4_c15_c15_0, x15
+ *[0-9a-f]+: d53cff0f mrs x15, s3_4_c15_c15_0
+ *[0-9a-f]+: d51cff2f msr s3_4_c15_c15_1, x15
+ *[0-9a-f]+: d53cff2f mrs x15, s3_4_c15_c15_1
+ *[0-9a-f]+: d51cff4f msr s3_4_c15_c15_2, x15
+ *[0-9a-f]+: d53cff4f mrs x15, s3_4_c15_c15_2
+ *[0-9a-f]+: d51cff6f msr s3_4_c15_c15_3, x15
+ *[0-9a-f]+: d53cff6f mrs x15, s3_4_c15_c15_3
+ *[0-9a-f]+: d51cff8f msr s3_4_c15_c15_4, x15
+ *[0-9a-f]+: d53cff8f mrs x15, s3_4_c15_c15_4
+ *[0-9a-f]+: d51cffaf msr s3_4_c15_c15_5, x15
+ *[0-9a-f]+: d53cffaf mrs x15, s3_4_c15_c15_5
+ *[0-9a-f]+: d51cffcf msr s3_4_c15_c15_6, x15
+ *[0-9a-f]+: d53cffcf mrs x15, s3_4_c15_c15_6
+ *[0-9a-f]+: d51cffef msr s3_4_c15_c15_7, x15
+ *[0-9a-f]+: d53cffef mrs x15, s3_4_c15_c15_7
+ *[0-9a-f]+: d51db00f msr s3_5_c11_c0_0, x15
+ *[0-9a-f]+: d53db00f mrs x15, s3_5_c11_c0_0
+ *[0-9a-f]+: d51db02f msr s3_5_c11_c0_1, x15
+ *[0-9a-f]+: d53db02f mrs x15, s3_5_c11_c0_1
+ *[0-9a-f]+: d51db04f msr s3_5_c11_c0_2, x15
+ *[0-9a-f]+: d53db04f mrs x15, s3_5_c11_c0_2
+ *[0-9a-f]+: d51db06f msr s3_5_c11_c0_3, x15
+ *[0-9a-f]+: d53db06f mrs x15, s3_5_c11_c0_3
+ *[0-9a-f]+: d51db08f msr s3_5_c11_c0_4, x15
+ *[0-9a-f]+: d53db08f mrs x15, s3_5_c11_c0_4
+ *[0-9a-f]+: d51db0af msr s3_5_c11_c0_5, x15
+ *[0-9a-f]+: d53db0af mrs x15, s3_5_c11_c0_5
+ *[0-9a-f]+: d51db0cf msr s3_5_c11_c0_6, x15
+ *[0-9a-f]+: d53db0cf mrs x15, s3_5_c11_c0_6
+ *[0-9a-f]+: d51db0ef msr s3_5_c11_c0_7, x15
+ *[0-9a-f]+: d53db0ef mrs x15, s3_5_c11_c0_7
+ *[0-9a-f]+: d51db10f msr s3_5_c11_c1_0, x15
+ *[0-9a-f]+: d53db10f mrs x15, s3_5_c11_c1_0
+ *[0-9a-f]+: d51db12f msr s3_5_c11_c1_1, x15
+ *[0-9a-f]+: d53db12f mrs x15, s3_5_c11_c1_1
+ *[0-9a-f]+: d51db14f msr s3_5_c11_c1_2, x15
+ *[0-9a-f]+: d53db14f mrs x15, s3_5_c11_c1_2
+ *[0-9a-f]+: d51db16f msr s3_5_c11_c1_3, x15
+ *[0-9a-f]+: d53db16f mrs x15, s3_5_c11_c1_3
+ *[0-9a-f]+: d51db18f msr s3_5_c11_c1_4, x15
+ *[0-9a-f]+: d53db18f mrs x15, s3_5_c11_c1_4
+ *[0-9a-f]+: d51db1af msr s3_5_c11_c1_5, x15
+ *[0-9a-f]+: d53db1af mrs x15, s3_5_c11_c1_5
+ *[0-9a-f]+: d51db1cf msr s3_5_c11_c1_6, x15
+ *[0-9a-f]+: d53db1cf mrs x15, s3_5_c11_c1_6
+ *[0-9a-f]+: d51db1ef msr s3_5_c11_c1_7, x15
+ *[0-9a-f]+: d53db1ef mrs x15, s3_5_c11_c1_7
+ *[0-9a-f]+: d51db20f msr s3_5_c11_c2_0, x15
+ *[0-9a-f]+: d53db20f mrs x15, s3_5_c11_c2_0
+ *[0-9a-f]+: d51db22f msr s3_5_c11_c2_1, x15
+ *[0-9a-f]+: d53db22f mrs x15, s3_5_c11_c2_1
+ *[0-9a-f]+: d51db24f msr s3_5_c11_c2_2, x15
+ *[0-9a-f]+: d53db24f mrs x15, s3_5_c11_c2_2
+ *[0-9a-f]+: d51db26f msr s3_5_c11_c2_3, x15
+ *[0-9a-f]+: d53db26f mrs x15, s3_5_c11_c2_3
+ *[0-9a-f]+: d51db28f msr s3_5_c11_c2_4, x15
+ *[0-9a-f]+: d53db28f mrs x15, s3_5_c11_c2_4
+ *[0-9a-f]+: d51db2af msr s3_5_c11_c2_5, x15
+ *[0-9a-f]+: d53db2af mrs x15, s3_5_c11_c2_5
+ *[0-9a-f]+: d51db2cf msr s3_5_c11_c2_6, x15
+ *[0-9a-f]+: d53db2cf mrs x15, s3_5_c11_c2_6
+ *[0-9a-f]+: d51db2ef msr s3_5_c11_c2_7, x15
+ *[0-9a-f]+: d53db2ef mrs x15, s3_5_c11_c2_7
+ *[0-9a-f]+: d51db30f msr s3_5_c11_c3_0, x15
+ *[0-9a-f]+: d53db30f mrs x15, s3_5_c11_c3_0
+ *[0-9a-f]+: d51db32f msr s3_5_c11_c3_1, x15
+ *[0-9a-f]+: d53db32f mrs x15, s3_5_c11_c3_1
+ *[0-9a-f]+: d51db34f msr s3_5_c11_c3_2, x15
+ *[0-9a-f]+: d53db34f mrs x15, s3_5_c11_c3_2
+ *[0-9a-f]+: d51db36f msr s3_5_c11_c3_3, x15
+ *[0-9a-f]+: d53db36f mrs x15, s3_5_c11_c3_3
+ *[0-9a-f]+: d51db38f msr s3_5_c11_c3_4, x15
+ *[0-9a-f]+: d53db38f mrs x15, s3_5_c11_c3_4
+ *[0-9a-f]+: d51db3af msr s3_5_c11_c3_5, x15
+ *[0-9a-f]+: d53db3af mrs x15, s3_5_c11_c3_5
+ *[0-9a-f]+: d51db3cf msr s3_5_c11_c3_6, x15
+ *[0-9a-f]+: d53db3cf mrs x15, s3_5_c11_c3_6
+ *[0-9a-f]+: d51db3ef msr s3_5_c11_c3_7, x15
+ *[0-9a-f]+: d53db3ef mrs x15, s3_5_c11_c3_7
+ *[0-9a-f]+: d51db40f msr s3_5_c11_c4_0, x15
+ *[0-9a-f]+: d53db40f mrs x15, s3_5_c11_c4_0
+ *[0-9a-f]+: d51db42f msr s3_5_c11_c4_1, x15
+ *[0-9a-f]+: d53db42f mrs x15, s3_5_c11_c4_1
+ *[0-9a-f]+: d51db44f msr s3_5_c11_c4_2, x15
+ *[0-9a-f]+: d53db44f mrs x15, s3_5_c11_c4_2
+ *[0-9a-f]+: d51db46f msr s3_5_c11_c4_3, x15
+ *[0-9a-f]+: d53db46f mrs x15, s3_5_c11_c4_3
+ *[0-9a-f]+: d51db48f msr s3_5_c11_c4_4, x15
+ *[0-9a-f]+: d53db48f mrs x15, s3_5_c11_c4_4
+ *[0-9a-f]+: d51db4af msr s3_5_c11_c4_5, x15
+ *[0-9a-f]+: d53db4af mrs x15, s3_5_c11_c4_5
+ *[0-9a-f]+: d51db4cf msr s3_5_c11_c4_6, x15
+ *[0-9a-f]+: d53db4cf mrs x15, s3_5_c11_c4_6
+ *[0-9a-f]+: d51db4ef msr s3_5_c11_c4_7, x15
+ *[0-9a-f]+: d53db4ef mrs x15, s3_5_c11_c4_7
+ *[0-9a-f]+: d51db50f msr s3_5_c11_c5_0, x15
+ *[0-9a-f]+: d53db50f mrs x15, s3_5_c11_c5_0
+ *[0-9a-f]+: d51db52f msr s3_5_c11_c5_1, x15
+ *[0-9a-f]+: d53db52f mrs x15, s3_5_c11_c5_1
+ *[0-9a-f]+: d51db54f msr s3_5_c11_c5_2, x15
+ *[0-9a-f]+: d53db54f mrs x15, s3_5_c11_c5_2
+ *[0-9a-f]+: d51db56f msr s3_5_c11_c5_3, x15
+ *[0-9a-f]+: d53db56f mrs x15, s3_5_c11_c5_3
+ *[0-9a-f]+: d51db58f msr s3_5_c11_c5_4, x15
+ *[0-9a-f]+: d53db58f mrs x15, s3_5_c11_c5_4
+ *[0-9a-f]+: d51db5af msr s3_5_c11_c5_5, x15
+ *[0-9a-f]+: d53db5af mrs x15, s3_5_c11_c5_5
+ *[0-9a-f]+: d51db5cf msr s3_5_c11_c5_6, x15
+ *[0-9a-f]+: d53db5cf mrs x15, s3_5_c11_c5_6
+ *[0-9a-f]+: d51db5ef msr s3_5_c11_c5_7, x15
+ *[0-9a-f]+: d53db5ef mrs x15, s3_5_c11_c5_7
+ *[0-9a-f]+: d51db60f msr s3_5_c11_c6_0, x15
+ *[0-9a-f]+: d53db60f mrs x15, s3_5_c11_c6_0
+ *[0-9a-f]+: d51db62f msr s3_5_c11_c6_1, x15
+ *[0-9a-f]+: d53db62f mrs x15, s3_5_c11_c6_1
+ *[0-9a-f]+: d51db64f msr s3_5_c11_c6_2, x15
+ *[0-9a-f]+: d53db64f mrs x15, s3_5_c11_c6_2
+ *[0-9a-f]+: d51db66f msr s3_5_c11_c6_3, x15
+ *[0-9a-f]+: d53db66f mrs x15, s3_5_c11_c6_3
+ *[0-9a-f]+: d51db68f msr s3_5_c11_c6_4, x15
+ *[0-9a-f]+: d53db68f mrs x15, s3_5_c11_c6_4
+ *[0-9a-f]+: d51db6af msr s3_5_c11_c6_5, x15
+ *[0-9a-f]+: d53db6af mrs x15, s3_5_c11_c6_5
+ *[0-9a-f]+: d51db6cf msr s3_5_c11_c6_6, x15
+ *[0-9a-f]+: d53db6cf mrs x15, s3_5_c11_c6_6
+ *[0-9a-f]+: d51db6ef msr s3_5_c11_c6_7, x15
+ *[0-9a-f]+: d53db6ef mrs x15, s3_5_c11_c6_7
+ *[0-9a-f]+: d51db70f msr s3_5_c11_c7_0, x15
+ *[0-9a-f]+: d53db70f mrs x15, s3_5_c11_c7_0
+ *[0-9a-f]+: d51db72f msr s3_5_c11_c7_1, x15
+ *[0-9a-f]+: d53db72f mrs x15, s3_5_c11_c7_1
+ *[0-9a-f]+: d51db74f msr s3_5_c11_c7_2, x15
+ *[0-9a-f]+: d53db74f mrs x15, s3_5_c11_c7_2
+ *[0-9a-f]+: d51db76f msr s3_5_c11_c7_3, x15
+ *[0-9a-f]+: d53db76f mrs x15, s3_5_c11_c7_3
+ *[0-9a-f]+: d51db78f msr s3_5_c11_c7_4, x15
+ *[0-9a-f]+: d53db78f mrs x15, s3_5_c11_c7_4
+ *[0-9a-f]+: d51db7af msr s3_5_c11_c7_5, x15
+ *[0-9a-f]+: d53db7af mrs x15, s3_5_c11_c7_5
+ *[0-9a-f]+: d51db7cf msr s3_5_c11_c7_6, x15
+ *[0-9a-f]+: d53db7cf mrs x15, s3_5_c11_c7_6
+ *[0-9a-f]+: d51db7ef msr s3_5_c11_c7_7, x15
+ *[0-9a-f]+: d53db7ef mrs x15, s3_5_c11_c7_7
+ *[0-9a-f]+: d51db80f msr s3_5_c11_c8_0, x15
+ *[0-9a-f]+: d53db80f mrs x15, s3_5_c11_c8_0
+ *[0-9a-f]+: d51db82f msr s3_5_c11_c8_1, x15
+ *[0-9a-f]+: d53db82f mrs x15, s3_5_c11_c8_1
+ *[0-9a-f]+: d51db84f msr s3_5_c11_c8_2, x15
+ *[0-9a-f]+: d53db84f mrs x15, s3_5_c11_c8_2
+ *[0-9a-f]+: d51db86f msr s3_5_c11_c8_3, x15
+ *[0-9a-f]+: d53db86f mrs x15, s3_5_c11_c8_3
+ *[0-9a-f]+: d51db88f msr s3_5_c11_c8_4, x15
+ *[0-9a-f]+: d53db88f mrs x15, s3_5_c11_c8_4
+ *[0-9a-f]+: d51db8af msr s3_5_c11_c8_5, x15
+ *[0-9a-f]+: d53db8af mrs x15, s3_5_c11_c8_5
+ *[0-9a-f]+: d51db8cf msr s3_5_c11_c8_6, x15
+ *[0-9a-f]+: d53db8cf mrs x15, s3_5_c11_c8_6
+ *[0-9a-f]+: d51db8ef msr s3_5_c11_c8_7, x15
+ *[0-9a-f]+: d53db8ef mrs x15, s3_5_c11_c8_7
+ *[0-9a-f]+: d51db90f msr s3_5_c11_c9_0, x15
+ *[0-9a-f]+: d53db90f mrs x15, s3_5_c11_c9_0
+ *[0-9a-f]+: d51db92f msr s3_5_c11_c9_1, x15
+ *[0-9a-f]+: d53db92f mrs x15, s3_5_c11_c9_1
+ *[0-9a-f]+: d51db94f msr s3_5_c11_c9_2, x15
+ *[0-9a-f]+: d53db94f mrs x15, s3_5_c11_c9_2
+ *[0-9a-f]+: d51db96f msr s3_5_c11_c9_3, x15
+ *[0-9a-f]+: d53db96f mrs x15, s3_5_c11_c9_3
+ *[0-9a-f]+: d51db98f msr s3_5_c11_c9_4, x15
+ *[0-9a-f]+: d53db98f mrs x15, s3_5_c11_c9_4
+ *[0-9a-f]+: d51db9af msr s3_5_c11_c9_5, x15
+ *[0-9a-f]+: d53db9af mrs x15, s3_5_c11_c9_5
+ *[0-9a-f]+: d51db9cf msr s3_5_c11_c9_6, x15
+ *[0-9a-f]+: d53db9cf mrs x15, s3_5_c11_c9_6
+ *[0-9a-f]+: d51db9ef msr s3_5_c11_c9_7, x15
+ *[0-9a-f]+: d53db9ef mrs x15, s3_5_c11_c9_7
+ *[0-9a-f]+: d51dba0f msr s3_5_c11_c10_0, x15
+ *[0-9a-f]+: d53dba0f mrs x15, s3_5_c11_c10_0
+ *[0-9a-f]+: d51dba2f msr s3_5_c11_c10_1, x15
+ *[0-9a-f]+: d53dba2f mrs x15, s3_5_c11_c10_1
+ *[0-9a-f]+: d51dba4f msr s3_5_c11_c10_2, x15
+ *[0-9a-f]+: d53dba4f mrs x15, s3_5_c11_c10_2
+ *[0-9a-f]+: d51dba6f msr s3_5_c11_c10_3, x15
+ *[0-9a-f]+: d53dba6f mrs x15, s3_5_c11_c10_3
+ *[0-9a-f]+: d51dba8f msr s3_5_c11_c10_4, x15
+ *[0-9a-f]+: d53dba8f mrs x15, s3_5_c11_c10_4
+ *[0-9a-f]+: d51dbaaf msr s3_5_c11_c10_5, x15
+ *[0-9a-f]+: d53dbaaf mrs x15, s3_5_c11_c10_5
+ *[0-9a-f]+: d51dbacf msr s3_5_c11_c10_6, x15
+ *[0-9a-f]+: d53dbacf mrs x15, s3_5_c11_c10_6
+ *[0-9a-f]+: d51dbaef msr s3_5_c11_c10_7, x15
+ *[0-9a-f]+: d53dbaef mrs x15, s3_5_c11_c10_7
+ *[0-9a-f]+: d51dbb0f msr s3_5_c11_c11_0, x15
+ *[0-9a-f]+: d53dbb0f mrs x15, s3_5_c11_c11_0
+ *[0-9a-f]+: d51dbb2f msr s3_5_c11_c11_1, x15
+ *[0-9a-f]+: d53dbb2f mrs x15, s3_5_c11_c11_1
+ *[0-9a-f]+: d51dbb4f msr s3_5_c11_c11_2, x15
+ *[0-9a-f]+: d53dbb4f mrs x15, s3_5_c11_c11_2
+ *[0-9a-f]+: d51dbb6f msr s3_5_c11_c11_3, x15
+ *[0-9a-f]+: d53dbb6f mrs x15, s3_5_c11_c11_3
+ *[0-9a-f]+: d51dbb8f msr s3_5_c11_c11_4, x15
+ *[0-9a-f]+: d53dbb8f mrs x15, s3_5_c11_c11_4
+ *[0-9a-f]+: d51dbbaf msr s3_5_c11_c11_5, x15
+ *[0-9a-f]+: d53dbbaf mrs x15, s3_5_c11_c11_5
+ *[0-9a-f]+: d51dbbcf msr s3_5_c11_c11_6, x15
+ *[0-9a-f]+: d53dbbcf mrs x15, s3_5_c11_c11_6
+ *[0-9a-f]+: d51dbbef msr s3_5_c11_c11_7, x15
+ *[0-9a-f]+: d53dbbef mrs x15, s3_5_c11_c11_7
+ *[0-9a-f]+: d51dbc0f msr s3_5_c11_c12_0, x15
+ *[0-9a-f]+: d53dbc0f mrs x15, s3_5_c11_c12_0
+ *[0-9a-f]+: d51dbc2f msr s3_5_c11_c12_1, x15
+ *[0-9a-f]+: d53dbc2f mrs x15, s3_5_c11_c12_1
+ *[0-9a-f]+: d51dbc4f msr s3_5_c11_c12_2, x15
+ *[0-9a-f]+: d53dbc4f mrs x15, s3_5_c11_c12_2
+ *[0-9a-f]+: d51dbc6f msr s3_5_c11_c12_3, x15
+ *[0-9a-f]+: d53dbc6f mrs x15, s3_5_c11_c12_3
+ *[0-9a-f]+: d51dbc8f msr s3_5_c11_c12_4, x15
+ *[0-9a-f]+: d53dbc8f mrs x15, s3_5_c11_c12_4
+ *[0-9a-f]+: d51dbcaf msr s3_5_c11_c12_5, x15
+ *[0-9a-f]+: d53dbcaf mrs x15, s3_5_c11_c12_5
+ *[0-9a-f]+: d51dbccf msr s3_5_c11_c12_6, x15
+ *[0-9a-f]+: d53dbccf mrs x15, s3_5_c11_c12_6
+ *[0-9a-f]+: d51dbcef msr s3_5_c11_c12_7, x15
+ *[0-9a-f]+: d53dbcef mrs x15, s3_5_c11_c12_7
+ *[0-9a-f]+: d51dbd0f msr s3_5_c11_c13_0, x15
+ *[0-9a-f]+: d53dbd0f mrs x15, s3_5_c11_c13_0
+ *[0-9a-f]+: d51dbd2f msr s3_5_c11_c13_1, x15
+ *[0-9a-f]+: d53dbd2f mrs x15, s3_5_c11_c13_1
+ *[0-9a-f]+: d51dbd4f msr s3_5_c11_c13_2, x15
+ *[0-9a-f]+: d53dbd4f mrs x15, s3_5_c11_c13_2
+ *[0-9a-f]+: d51dbd6f msr s3_5_c11_c13_3, x15
+ *[0-9a-f]+: d53dbd6f mrs x15, s3_5_c11_c13_3
+ *[0-9a-f]+: d51dbd8f msr s3_5_c11_c13_4, x15
+ *[0-9a-f]+: d53dbd8f mrs x15, s3_5_c11_c13_4
+ *[0-9a-f]+: d51dbdaf msr s3_5_c11_c13_5, x15
+ *[0-9a-f]+: d53dbdaf mrs x15, s3_5_c11_c13_5
+ *[0-9a-f]+: d51dbdcf msr s3_5_c11_c13_6, x15
+ *[0-9a-f]+: d53dbdcf mrs x15, s3_5_c11_c13_6
+ *[0-9a-f]+: d51dbdef msr s3_5_c11_c13_7, x15
+ *[0-9a-f]+: d53dbdef mrs x15, s3_5_c11_c13_7
+ *[0-9a-f]+: d51dbe0f msr s3_5_c11_c14_0, x15
+ *[0-9a-f]+: d53dbe0f mrs x15, s3_5_c11_c14_0
+ *[0-9a-f]+: d51dbe2f msr s3_5_c11_c14_1, x15
+ *[0-9a-f]+: d53dbe2f mrs x15, s3_5_c11_c14_1
+ *[0-9a-f]+: d51dbe4f msr s3_5_c11_c14_2, x15
+ *[0-9a-f]+: d53dbe4f mrs x15, s3_5_c11_c14_2
+ *[0-9a-f]+: d51dbe6f msr s3_5_c11_c14_3, x15
+ *[0-9a-f]+: d53dbe6f mrs x15, s3_5_c11_c14_3
+ *[0-9a-f]+: d51dbe8f msr s3_5_c11_c14_4, x15
+ *[0-9a-f]+: d53dbe8f mrs x15, s3_5_c11_c14_4
+ *[0-9a-f]+: d51dbeaf msr s3_5_c11_c14_5, x15
+ *[0-9a-f]+: d53dbeaf mrs x15, s3_5_c11_c14_5
+ *[0-9a-f]+: d51dbecf msr s3_5_c11_c14_6, x15
+ *[0-9a-f]+: d53dbecf mrs x15, s3_5_c11_c14_6
+ *[0-9a-f]+: d51dbeef msr s3_5_c11_c14_7, x15
+ *[0-9a-f]+: d53dbeef mrs x15, s3_5_c11_c14_7
+ *[0-9a-f]+: d51dbf0f msr s3_5_c11_c15_0, x15
+ *[0-9a-f]+: d53dbf0f mrs x15, s3_5_c11_c15_0
+ *[0-9a-f]+: d51dbf2f msr s3_5_c11_c15_1, x15
+ *[0-9a-f]+: d53dbf2f mrs x15, s3_5_c11_c15_1
+ *[0-9a-f]+: d51dbf4f msr s3_5_c11_c15_2, x15
+ *[0-9a-f]+: d53dbf4f mrs x15, s3_5_c11_c15_2
+ *[0-9a-f]+: d51dbf6f msr s3_5_c11_c15_3, x15
+ *[0-9a-f]+: d53dbf6f mrs x15, s3_5_c11_c15_3
+ *[0-9a-f]+: d51dbf8f msr s3_5_c11_c15_4, x15
+ *[0-9a-f]+: d53dbf8f mrs x15, s3_5_c11_c15_4
+ *[0-9a-f]+: d51dbfaf msr s3_5_c11_c15_5, x15
+ *[0-9a-f]+: d53dbfaf mrs x15, s3_5_c11_c15_5
+ *[0-9a-f]+: d51dbfcf msr s3_5_c11_c15_6, x15
+ *[0-9a-f]+: d53dbfcf mrs x15, s3_5_c11_c15_6
+ *[0-9a-f]+: d51dbfef msr s3_5_c11_c15_7, x15
+ *[0-9a-f]+: d53dbfef mrs x15, s3_5_c11_c15_7
+ *[0-9a-f]+: d51df00f msr s3_5_c15_c0_0, x15
+ *[0-9a-f]+: d53df00f mrs x15, s3_5_c15_c0_0
+ *[0-9a-f]+: d51df02f msr s3_5_c15_c0_1, x15
+ *[0-9a-f]+: d53df02f mrs x15, s3_5_c15_c0_1
+ *[0-9a-f]+: d51df04f msr s3_5_c15_c0_2, x15
+ *[0-9a-f]+: d53df04f mrs x15, s3_5_c15_c0_2
+ *[0-9a-f]+: d51df06f msr s3_5_c15_c0_3, x15
+ *[0-9a-f]+: d53df06f mrs x15, s3_5_c15_c0_3
+ *[0-9a-f]+: d51df08f msr s3_5_c15_c0_4, x15
+ *[0-9a-f]+: d53df08f mrs x15, s3_5_c15_c0_4
+ *[0-9a-f]+: d51df0af msr s3_5_c15_c0_5, x15
+ *[0-9a-f]+: d53df0af mrs x15, s3_5_c15_c0_5
+ *[0-9a-f]+: d51df0cf msr s3_5_c15_c0_6, x15
+ *[0-9a-f]+: d53df0cf mrs x15, s3_5_c15_c0_6
+ *[0-9a-f]+: d51df0ef msr s3_5_c15_c0_7, x15
+ *[0-9a-f]+: d53df0ef mrs x15, s3_5_c15_c0_7
+ *[0-9a-f]+: d51df10f msr s3_5_c15_c1_0, x15
+ *[0-9a-f]+: d53df10f mrs x15, s3_5_c15_c1_0
+ *[0-9a-f]+: d51df12f msr s3_5_c15_c1_1, x15
+ *[0-9a-f]+: d53df12f mrs x15, s3_5_c15_c1_1
+ *[0-9a-f]+: d51df14f msr s3_5_c15_c1_2, x15
+ *[0-9a-f]+: d53df14f mrs x15, s3_5_c15_c1_2
+ *[0-9a-f]+: d51df16f msr s3_5_c15_c1_3, x15
+ *[0-9a-f]+: d53df16f mrs x15, s3_5_c15_c1_3
+ *[0-9a-f]+: d51df18f msr s3_5_c15_c1_4, x15
+ *[0-9a-f]+: d53df18f mrs x15, s3_5_c15_c1_4
+ *[0-9a-f]+: d51df1af msr s3_5_c15_c1_5, x15
+ *[0-9a-f]+: d53df1af mrs x15, s3_5_c15_c1_5
+ *[0-9a-f]+: d51df1cf msr s3_5_c15_c1_6, x15
+ *[0-9a-f]+: d53df1cf mrs x15, s3_5_c15_c1_6
+ *[0-9a-f]+: d51df1ef msr s3_5_c15_c1_7, x15
+ *[0-9a-f]+: d53df1ef mrs x15, s3_5_c15_c1_7
+ *[0-9a-f]+: d51df20f msr s3_5_c15_c2_0, x15
+ *[0-9a-f]+: d53df20f mrs x15, s3_5_c15_c2_0
+ *[0-9a-f]+: d51df22f msr s3_5_c15_c2_1, x15
+ *[0-9a-f]+: d53df22f mrs x15, s3_5_c15_c2_1
+ *[0-9a-f]+: d51df24f msr s3_5_c15_c2_2, x15
+ *[0-9a-f]+: d53df24f mrs x15, s3_5_c15_c2_2
+ *[0-9a-f]+: d51df26f msr s3_5_c15_c2_3, x15
+ *[0-9a-f]+: d53df26f mrs x15, s3_5_c15_c2_3
+ *[0-9a-f]+: d51df28f msr s3_5_c15_c2_4, x15
+ *[0-9a-f]+: d53df28f mrs x15, s3_5_c15_c2_4
+ *[0-9a-f]+: d51df2af msr s3_5_c15_c2_5, x15
+ *[0-9a-f]+: d53df2af mrs x15, s3_5_c15_c2_5
+ *[0-9a-f]+: d51df2cf msr s3_5_c15_c2_6, x15
+ *[0-9a-f]+: d53df2cf mrs x15, s3_5_c15_c2_6
+ *[0-9a-f]+: d51df2ef msr s3_5_c15_c2_7, x15
+ *[0-9a-f]+: d53df2ef mrs x15, s3_5_c15_c2_7
+ *[0-9a-f]+: d51df30f msr s3_5_c15_c3_0, x15
+ *[0-9a-f]+: d53df30f mrs x15, s3_5_c15_c3_0
+ *[0-9a-f]+: d51df32f msr s3_5_c15_c3_1, x15
+ *[0-9a-f]+: d53df32f mrs x15, s3_5_c15_c3_1
+ *[0-9a-f]+: d51df34f msr s3_5_c15_c3_2, x15
+ *[0-9a-f]+: d53df34f mrs x15, s3_5_c15_c3_2
+ *[0-9a-f]+: d51df36f msr s3_5_c15_c3_3, x15
+ *[0-9a-f]+: d53df36f mrs x15, s3_5_c15_c3_3
+ *[0-9a-f]+: d51df38f msr s3_5_c15_c3_4, x15
+ *[0-9a-f]+: d53df38f mrs x15, s3_5_c15_c3_4
+ *[0-9a-f]+: d51df3af msr s3_5_c15_c3_5, x15
+ *[0-9a-f]+: d53df3af mrs x15, s3_5_c15_c3_5
+ *[0-9a-f]+: d51df3cf msr s3_5_c15_c3_6, x15
+ *[0-9a-f]+: d53df3cf mrs x15, s3_5_c15_c3_6
+ *[0-9a-f]+: d51df3ef msr s3_5_c15_c3_7, x15
+ *[0-9a-f]+: d53df3ef mrs x15, s3_5_c15_c3_7
+ *[0-9a-f]+: d51df40f msr s3_5_c15_c4_0, x15
+ *[0-9a-f]+: d53df40f mrs x15, s3_5_c15_c4_0
+ *[0-9a-f]+: d51df42f msr s3_5_c15_c4_1, x15
+ *[0-9a-f]+: d53df42f mrs x15, s3_5_c15_c4_1
+ *[0-9a-f]+: d51df44f msr s3_5_c15_c4_2, x15
+ *[0-9a-f]+: d53df44f mrs x15, s3_5_c15_c4_2
+ *[0-9a-f]+: d51df46f msr s3_5_c15_c4_3, x15
+ *[0-9a-f]+: d53df46f mrs x15, s3_5_c15_c4_3
+ *[0-9a-f]+: d51df48f msr s3_5_c15_c4_4, x15
+ *[0-9a-f]+: d53df48f mrs x15, s3_5_c15_c4_4
+ *[0-9a-f]+: d51df4af msr s3_5_c15_c4_5, x15
+ *[0-9a-f]+: d53df4af mrs x15, s3_5_c15_c4_5
+ *[0-9a-f]+: d51df4cf msr s3_5_c15_c4_6, x15
+ *[0-9a-f]+: d53df4cf mrs x15, s3_5_c15_c4_6
+ *[0-9a-f]+: d51df4ef msr s3_5_c15_c4_7, x15
+ *[0-9a-f]+: d53df4ef mrs x15, s3_5_c15_c4_7
+ *[0-9a-f]+: d51df50f msr s3_5_c15_c5_0, x15
+ *[0-9a-f]+: d53df50f mrs x15, s3_5_c15_c5_0
+ *[0-9a-f]+: d51df52f msr s3_5_c15_c5_1, x15
+ *[0-9a-f]+: d53df52f mrs x15, s3_5_c15_c5_1
+ *[0-9a-f]+: d51df54f msr s3_5_c15_c5_2, x15
+ *[0-9a-f]+: d53df54f mrs x15, s3_5_c15_c5_2
+ *[0-9a-f]+: d51df56f msr s3_5_c15_c5_3, x15
+ *[0-9a-f]+: d53df56f mrs x15, s3_5_c15_c5_3
+ *[0-9a-f]+: d51df58f msr s3_5_c15_c5_4, x15
+ *[0-9a-f]+: d53df58f mrs x15, s3_5_c15_c5_4
+ *[0-9a-f]+: d51df5af msr s3_5_c15_c5_5, x15
+ *[0-9a-f]+: d53df5af mrs x15, s3_5_c15_c5_5
+ *[0-9a-f]+: d51df5cf msr s3_5_c15_c5_6, x15
+ *[0-9a-f]+: d53df5cf mrs x15, s3_5_c15_c5_6
+ *[0-9a-f]+: d51df5ef msr s3_5_c15_c5_7, x15
+ *[0-9a-f]+: d53df5ef mrs x15, s3_5_c15_c5_7
+ *[0-9a-f]+: d51df60f msr s3_5_c15_c6_0, x15
+ *[0-9a-f]+: d53df60f mrs x15, s3_5_c15_c6_0
+ *[0-9a-f]+: d51df62f msr s3_5_c15_c6_1, x15
+ *[0-9a-f]+: d53df62f mrs x15, s3_5_c15_c6_1
+ *[0-9a-f]+: d51df64f msr s3_5_c15_c6_2, x15
+ *[0-9a-f]+: d53df64f mrs x15, s3_5_c15_c6_2
+ *[0-9a-f]+: d51df66f msr s3_5_c15_c6_3, x15
+ *[0-9a-f]+: d53df66f mrs x15, s3_5_c15_c6_3
+ *[0-9a-f]+: d51df68f msr s3_5_c15_c6_4, x15
+ *[0-9a-f]+: d53df68f mrs x15, s3_5_c15_c6_4
+ *[0-9a-f]+: d51df6af msr s3_5_c15_c6_5, x15
+ *[0-9a-f]+: d53df6af mrs x15, s3_5_c15_c6_5
+ *[0-9a-f]+: d51df6cf msr s3_5_c15_c6_6, x15
+ *[0-9a-f]+: d53df6cf mrs x15, s3_5_c15_c6_6
+ *[0-9a-f]+: d51df6ef msr s3_5_c15_c6_7, x15
+ *[0-9a-f]+: d53df6ef mrs x15, s3_5_c15_c6_7
+ *[0-9a-f]+: d51df70f msr s3_5_c15_c7_0, x15
+ *[0-9a-f]+: d53df70f mrs x15, s3_5_c15_c7_0
+ *[0-9a-f]+: d51df72f msr s3_5_c15_c7_1, x15
+ *[0-9a-f]+: d53df72f mrs x15, s3_5_c15_c7_1
+ *[0-9a-f]+: d51df74f msr s3_5_c15_c7_2, x15
+ *[0-9a-f]+: d53df74f mrs x15, s3_5_c15_c7_2
+ *[0-9a-f]+: d51df76f msr s3_5_c15_c7_3, x15
+ *[0-9a-f]+: d53df76f mrs x15, s3_5_c15_c7_3
+ *[0-9a-f]+: d51df78f msr s3_5_c15_c7_4, x15
+ *[0-9a-f]+: d53df78f mrs x15, s3_5_c15_c7_4
+ *[0-9a-f]+: d51df7af msr s3_5_c15_c7_5, x15
+ *[0-9a-f]+: d53df7af mrs x15, s3_5_c15_c7_5
+ *[0-9a-f]+: d51df7cf msr s3_5_c15_c7_6, x15
+ *[0-9a-f]+: d53df7cf mrs x15, s3_5_c15_c7_6
+ *[0-9a-f]+: d51df7ef msr s3_5_c15_c7_7, x15
+ *[0-9a-f]+: d53df7ef mrs x15, s3_5_c15_c7_7
+ *[0-9a-f]+: d51df80f msr s3_5_c15_c8_0, x15
+ *[0-9a-f]+: d53df80f mrs x15, s3_5_c15_c8_0
+ *[0-9a-f]+: d51df82f msr s3_5_c15_c8_1, x15
+ *[0-9a-f]+: d53df82f mrs x15, s3_5_c15_c8_1
+ *[0-9a-f]+: d51df84f msr s3_5_c15_c8_2, x15
+ *[0-9a-f]+: d53df84f mrs x15, s3_5_c15_c8_2
+ *[0-9a-f]+: d51df86f msr s3_5_c15_c8_3, x15
+ *[0-9a-f]+: d53df86f mrs x15, s3_5_c15_c8_3
+ *[0-9a-f]+: d51df88f msr s3_5_c15_c8_4, x15
+ *[0-9a-f]+: d53df88f mrs x15, s3_5_c15_c8_4
+ *[0-9a-f]+: d51df8af msr s3_5_c15_c8_5, x15
+ *[0-9a-f]+: d53df8af mrs x15, s3_5_c15_c8_5
+ *[0-9a-f]+: d51df8cf msr s3_5_c15_c8_6, x15
+ *[0-9a-f]+: d53df8cf mrs x15, s3_5_c15_c8_6
+ *[0-9a-f]+: d51df8ef msr s3_5_c15_c8_7, x15
+ *[0-9a-f]+: d53df8ef mrs x15, s3_5_c15_c8_7
+ *[0-9a-f]+: d51df90f msr s3_5_c15_c9_0, x15
+ *[0-9a-f]+: d53df90f mrs x15, s3_5_c15_c9_0
+ *[0-9a-f]+: d51df92f msr s3_5_c15_c9_1, x15
+ *[0-9a-f]+: d53df92f mrs x15, s3_5_c15_c9_1
+ *[0-9a-f]+: d51df94f msr s3_5_c15_c9_2, x15
+ *[0-9a-f]+: d53df94f mrs x15, s3_5_c15_c9_2
+ *[0-9a-f]+: d51df96f msr s3_5_c15_c9_3, x15
+ *[0-9a-f]+: d53df96f mrs x15, s3_5_c15_c9_3
+ *[0-9a-f]+: d51df98f msr s3_5_c15_c9_4, x15
+ *[0-9a-f]+: d53df98f mrs x15, s3_5_c15_c9_4
+ *[0-9a-f]+: d51df9af msr s3_5_c15_c9_5, x15
+ *[0-9a-f]+: d53df9af mrs x15, s3_5_c15_c9_5
+ *[0-9a-f]+: d51df9cf msr s3_5_c15_c9_6, x15
+ *[0-9a-f]+: d53df9cf mrs x15, s3_5_c15_c9_6
+ *[0-9a-f]+: d51df9ef msr s3_5_c15_c9_7, x15
+ *[0-9a-f]+: d53df9ef mrs x15, s3_5_c15_c9_7
+ *[0-9a-f]+: d51dfa0f msr s3_5_c15_c10_0, x15
+ *[0-9a-f]+: d53dfa0f mrs x15, s3_5_c15_c10_0
+ *[0-9a-f]+: d51dfa2f msr s3_5_c15_c10_1, x15
+ *[0-9a-f]+: d53dfa2f mrs x15, s3_5_c15_c10_1
+ *[0-9a-f]+: d51dfa4f msr s3_5_c15_c10_2, x15
+ *[0-9a-f]+: d53dfa4f mrs x15, s3_5_c15_c10_2
+ *[0-9a-f]+: d51dfa6f msr s3_5_c15_c10_3, x15
+ *[0-9a-f]+: d53dfa6f mrs x15, s3_5_c15_c10_3
+ *[0-9a-f]+: d51dfa8f msr s3_5_c15_c10_4, x15
+ *[0-9a-f]+: d53dfa8f mrs x15, s3_5_c15_c10_4
+ *[0-9a-f]+: d51dfaaf msr s3_5_c15_c10_5, x15
+ *[0-9a-f]+: d53dfaaf mrs x15, s3_5_c15_c10_5
+ *[0-9a-f]+: d51dfacf msr s3_5_c15_c10_6, x15
+ *[0-9a-f]+: d53dfacf mrs x15, s3_5_c15_c10_6
+ *[0-9a-f]+: d51dfaef msr s3_5_c15_c10_7, x15
+ *[0-9a-f]+: d53dfaef mrs x15, s3_5_c15_c10_7
+ *[0-9a-f]+: d51dfb0f msr s3_5_c15_c11_0, x15
+ *[0-9a-f]+: d53dfb0f mrs x15, s3_5_c15_c11_0
+ *[0-9a-f]+: d51dfb2f msr s3_5_c15_c11_1, x15
+ *[0-9a-f]+: d53dfb2f mrs x15, s3_5_c15_c11_1
+ *[0-9a-f]+: d51dfb4f msr s3_5_c15_c11_2, x15
+ *[0-9a-f]+: d53dfb4f mrs x15, s3_5_c15_c11_2
+ *[0-9a-f]+: d51dfb6f msr s3_5_c15_c11_3, x15
+ *[0-9a-f]+: d53dfb6f mrs x15, s3_5_c15_c11_3
+ *[0-9a-f]+: d51dfb8f msr s3_5_c15_c11_4, x15
+ *[0-9a-f]+: d53dfb8f mrs x15, s3_5_c15_c11_4
+ *[0-9a-f]+: d51dfbaf msr s3_5_c15_c11_5, x15
+ *[0-9a-f]+: d53dfbaf mrs x15, s3_5_c15_c11_5
+ *[0-9a-f]+: d51dfbcf msr s3_5_c15_c11_6, x15
+ *[0-9a-f]+: d53dfbcf mrs x15, s3_5_c15_c11_6
+ *[0-9a-f]+: d51dfbef msr s3_5_c15_c11_7, x15
+ *[0-9a-f]+: d53dfbef mrs x15, s3_5_c15_c11_7
+ *[0-9a-f]+: d51dfc0f msr s3_5_c15_c12_0, x15
+ *[0-9a-f]+: d53dfc0f mrs x15, s3_5_c15_c12_0
+ *[0-9a-f]+: d51dfc2f msr s3_5_c15_c12_1, x15
+ *[0-9a-f]+: d53dfc2f mrs x15, s3_5_c15_c12_1
+ *[0-9a-f]+: d51dfc4f msr s3_5_c15_c12_2, x15
+ *[0-9a-f]+: d53dfc4f mrs x15, s3_5_c15_c12_2
+ *[0-9a-f]+: d51dfc6f msr s3_5_c15_c12_3, x15
+ *[0-9a-f]+: d53dfc6f mrs x15, s3_5_c15_c12_3
+ *[0-9a-f]+: d51dfc8f msr s3_5_c15_c12_4, x15
+ *[0-9a-f]+: d53dfc8f mrs x15, s3_5_c15_c12_4
+ *[0-9a-f]+: d51dfcaf msr s3_5_c15_c12_5, x15
+ *[0-9a-f]+: d53dfcaf mrs x15, s3_5_c15_c12_5
+ *[0-9a-f]+: d51dfccf msr s3_5_c15_c12_6, x15
+ *[0-9a-f]+: d53dfccf mrs x15, s3_5_c15_c12_6
+ *[0-9a-f]+: d51dfcef msr s3_5_c15_c12_7, x15
+ *[0-9a-f]+: d53dfcef mrs x15, s3_5_c15_c12_7
+ *[0-9a-f]+: d51dfd0f msr s3_5_c15_c13_0, x15
+ *[0-9a-f]+: d53dfd0f mrs x15, s3_5_c15_c13_0
+ *[0-9a-f]+: d51dfd2f msr s3_5_c15_c13_1, x15
+ *[0-9a-f]+: d53dfd2f mrs x15, s3_5_c15_c13_1
+ *[0-9a-f]+: d51dfd4f msr s3_5_c15_c13_2, x15
+ *[0-9a-f]+: d53dfd4f mrs x15, s3_5_c15_c13_2
+ *[0-9a-f]+: d51dfd6f msr s3_5_c15_c13_3, x15
+ *[0-9a-f]+: d53dfd6f mrs x15, s3_5_c15_c13_3
+ *[0-9a-f]+: d51dfd8f msr s3_5_c15_c13_4, x15
+ *[0-9a-f]+: d53dfd8f mrs x15, s3_5_c15_c13_4
+ *[0-9a-f]+: d51dfdaf msr s3_5_c15_c13_5, x15
+ *[0-9a-f]+: d53dfdaf mrs x15, s3_5_c15_c13_5
+ *[0-9a-f]+: d51dfdcf msr s3_5_c15_c13_6, x15
+ *[0-9a-f]+: d53dfdcf mrs x15, s3_5_c15_c13_6
+ *[0-9a-f]+: d51dfdef msr s3_5_c15_c13_7, x15
+ *[0-9a-f]+: d53dfdef mrs x15, s3_5_c15_c13_7
+ *[0-9a-f]+: d51dfe0f msr s3_5_c15_c14_0, x15
+ *[0-9a-f]+: d53dfe0f mrs x15, s3_5_c15_c14_0
+ *[0-9a-f]+: d51dfe2f msr s3_5_c15_c14_1, x15
+ *[0-9a-f]+: d53dfe2f mrs x15, s3_5_c15_c14_1
+ *[0-9a-f]+: d51dfe4f msr s3_5_c15_c14_2, x15
+ *[0-9a-f]+: d53dfe4f mrs x15, s3_5_c15_c14_2
+ *[0-9a-f]+: d51dfe6f msr s3_5_c15_c14_3, x15
+ *[0-9a-f]+: d53dfe6f mrs x15, s3_5_c15_c14_3
+ *[0-9a-f]+: d51dfe8f msr s3_5_c15_c14_4, x15
+ *[0-9a-f]+: d53dfe8f mrs x15, s3_5_c15_c14_4
+ *[0-9a-f]+: d51dfeaf msr s3_5_c15_c14_5, x15
+ *[0-9a-f]+: d53dfeaf mrs x15, s3_5_c15_c14_5
+ *[0-9a-f]+: d51dfecf msr s3_5_c15_c14_6, x15
+ *[0-9a-f]+: d53dfecf mrs x15, s3_5_c15_c14_6
+ *[0-9a-f]+: d51dfeef msr s3_5_c15_c14_7, x15
+ *[0-9a-f]+: d53dfeef mrs x15, s3_5_c15_c14_7
+ *[0-9a-f]+: d51dff0f msr s3_5_c15_c15_0, x15
+ *[0-9a-f]+: d53dff0f mrs x15, s3_5_c15_c15_0
+ *[0-9a-f]+: d51dff2f msr s3_5_c15_c15_1, x15
+ *[0-9a-f]+: d53dff2f mrs x15, s3_5_c15_c15_1
+ *[0-9a-f]+: d51dff4f msr s3_5_c15_c15_2, x15
+ *[0-9a-f]+: d53dff4f mrs x15, s3_5_c15_c15_2
+ *[0-9a-f]+: d51dff6f msr s3_5_c15_c15_3, x15
+ *[0-9a-f]+: d53dff6f mrs x15, s3_5_c15_c15_3
+ *[0-9a-f]+: d51dff8f msr s3_5_c15_c15_4, x15
+ *[0-9a-f]+: d53dff8f mrs x15, s3_5_c15_c15_4
+ *[0-9a-f]+: d51dffaf msr s3_5_c15_c15_5, x15
+ *[0-9a-f]+: d53dffaf mrs x15, s3_5_c15_c15_5
+ *[0-9a-f]+: d51dffcf msr s3_5_c15_c15_6, x15
+ *[0-9a-f]+: d53dffcf mrs x15, s3_5_c15_c15_6
+ *[0-9a-f]+: d51dffef msr s3_5_c15_c15_7, x15
+ *[0-9a-f]+: d53dffef mrs x15, s3_5_c15_c15_7
+ *[0-9a-f]+: d51eb00f msr s3_6_c11_c0_0, x15
+ *[0-9a-f]+: d53eb00f mrs x15, s3_6_c11_c0_0
+ *[0-9a-f]+: d51eb02f msr s3_6_c11_c0_1, x15
+ *[0-9a-f]+: d53eb02f mrs x15, s3_6_c11_c0_1
+ *[0-9a-f]+: d51eb04f msr s3_6_c11_c0_2, x15
+ *[0-9a-f]+: d53eb04f mrs x15, s3_6_c11_c0_2
+ *[0-9a-f]+: d51eb06f msr s3_6_c11_c0_3, x15
+ *[0-9a-f]+: d53eb06f mrs x15, s3_6_c11_c0_3
+ *[0-9a-f]+: d51eb08f msr s3_6_c11_c0_4, x15
+ *[0-9a-f]+: d53eb08f mrs x15, s3_6_c11_c0_4
+ *[0-9a-f]+: d51eb0af msr s3_6_c11_c0_5, x15
+ *[0-9a-f]+: d53eb0af mrs x15, s3_6_c11_c0_5
+ *[0-9a-f]+: d51eb0cf msr s3_6_c11_c0_6, x15
+ *[0-9a-f]+: d53eb0cf mrs x15, s3_6_c11_c0_6
+ *[0-9a-f]+: d51eb0ef msr s3_6_c11_c0_7, x15
+ *[0-9a-f]+: d53eb0ef mrs x15, s3_6_c11_c0_7
+ *[0-9a-f]+: d51eb10f msr s3_6_c11_c1_0, x15
+ *[0-9a-f]+: d53eb10f mrs x15, s3_6_c11_c1_0
+ *[0-9a-f]+: d51eb12f msr s3_6_c11_c1_1, x15
+ *[0-9a-f]+: d53eb12f mrs x15, s3_6_c11_c1_1
+ *[0-9a-f]+: d51eb14f msr s3_6_c11_c1_2, x15
+ *[0-9a-f]+: d53eb14f mrs x15, s3_6_c11_c1_2
+ *[0-9a-f]+: d51eb16f msr s3_6_c11_c1_3, x15
+ *[0-9a-f]+: d53eb16f mrs x15, s3_6_c11_c1_3
+ *[0-9a-f]+: d51eb18f msr s3_6_c11_c1_4, x15
+ *[0-9a-f]+: d53eb18f mrs x15, s3_6_c11_c1_4
+ *[0-9a-f]+: d51eb1af msr s3_6_c11_c1_5, x15
+ *[0-9a-f]+: d53eb1af mrs x15, s3_6_c11_c1_5
+ *[0-9a-f]+: d51eb1cf msr s3_6_c11_c1_6, x15
+ *[0-9a-f]+: d53eb1cf mrs x15, s3_6_c11_c1_6
+ *[0-9a-f]+: d51eb1ef msr s3_6_c11_c1_7, x15
+ *[0-9a-f]+: d53eb1ef mrs x15, s3_6_c11_c1_7
+ *[0-9a-f]+: d51eb20f msr s3_6_c11_c2_0, x15
+ *[0-9a-f]+: d53eb20f mrs x15, s3_6_c11_c2_0
+ *[0-9a-f]+: d51eb22f msr s3_6_c11_c2_1, x15
+ *[0-9a-f]+: d53eb22f mrs x15, s3_6_c11_c2_1
+ *[0-9a-f]+: d51eb24f msr s3_6_c11_c2_2, x15
+ *[0-9a-f]+: d53eb24f mrs x15, s3_6_c11_c2_2
+ *[0-9a-f]+: d51eb26f msr s3_6_c11_c2_3, x15
+ *[0-9a-f]+: d53eb26f mrs x15, s3_6_c11_c2_3
+ *[0-9a-f]+: d51eb28f msr s3_6_c11_c2_4, x15
+ *[0-9a-f]+: d53eb28f mrs x15, s3_6_c11_c2_4
+ *[0-9a-f]+: d51eb2af msr s3_6_c11_c2_5, x15
+ *[0-9a-f]+: d53eb2af mrs x15, s3_6_c11_c2_5
+ *[0-9a-f]+: d51eb2cf msr s3_6_c11_c2_6, x15
+ *[0-9a-f]+: d53eb2cf mrs x15, s3_6_c11_c2_6
+ *[0-9a-f]+: d51eb2ef msr s3_6_c11_c2_7, x15
+ *[0-9a-f]+: d53eb2ef mrs x15, s3_6_c11_c2_7
+ *[0-9a-f]+: d51eb30f msr s3_6_c11_c3_0, x15
+ *[0-9a-f]+: d53eb30f mrs x15, s3_6_c11_c3_0
+ *[0-9a-f]+: d51eb32f msr s3_6_c11_c3_1, x15
+ *[0-9a-f]+: d53eb32f mrs x15, s3_6_c11_c3_1
+ *[0-9a-f]+: d51eb34f msr s3_6_c11_c3_2, x15
+ *[0-9a-f]+: d53eb34f mrs x15, s3_6_c11_c3_2
+ *[0-9a-f]+: d51eb36f msr s3_6_c11_c3_3, x15
+ *[0-9a-f]+: d53eb36f mrs x15, s3_6_c11_c3_3
+ *[0-9a-f]+: d51eb38f msr s3_6_c11_c3_4, x15
+ *[0-9a-f]+: d53eb38f mrs x15, s3_6_c11_c3_4
+ *[0-9a-f]+: d51eb3af msr s3_6_c11_c3_5, x15
+ *[0-9a-f]+: d53eb3af mrs x15, s3_6_c11_c3_5
+ *[0-9a-f]+: d51eb3cf msr s3_6_c11_c3_6, x15
+ *[0-9a-f]+: d53eb3cf mrs x15, s3_6_c11_c3_6
+ *[0-9a-f]+: d51eb3ef msr s3_6_c11_c3_7, x15
+ *[0-9a-f]+: d53eb3ef mrs x15, s3_6_c11_c3_7
+ *[0-9a-f]+: d51eb40f msr s3_6_c11_c4_0, x15
+ *[0-9a-f]+: d53eb40f mrs x15, s3_6_c11_c4_0
+ *[0-9a-f]+: d51eb42f msr s3_6_c11_c4_1, x15
+ *[0-9a-f]+: d53eb42f mrs x15, s3_6_c11_c4_1
+ *[0-9a-f]+: d51eb44f msr s3_6_c11_c4_2, x15
+ *[0-9a-f]+: d53eb44f mrs x15, s3_6_c11_c4_2
+ *[0-9a-f]+: d51eb46f msr s3_6_c11_c4_3, x15
+ *[0-9a-f]+: d53eb46f mrs x15, s3_6_c11_c4_3
+ *[0-9a-f]+: d51eb48f msr s3_6_c11_c4_4, x15
+ *[0-9a-f]+: d53eb48f mrs x15, s3_6_c11_c4_4
+ *[0-9a-f]+: d51eb4af msr s3_6_c11_c4_5, x15
+ *[0-9a-f]+: d53eb4af mrs x15, s3_6_c11_c4_5
+ *[0-9a-f]+: d51eb4cf msr s3_6_c11_c4_6, x15
+ *[0-9a-f]+: d53eb4cf mrs x15, s3_6_c11_c4_6
+ *[0-9a-f]+: d51eb4ef msr s3_6_c11_c4_7, x15
+ *[0-9a-f]+: d53eb4ef mrs x15, s3_6_c11_c4_7
+ *[0-9a-f]+: d51eb50f msr s3_6_c11_c5_0, x15
+ *[0-9a-f]+: d53eb50f mrs x15, s3_6_c11_c5_0
+ *[0-9a-f]+: d51eb52f msr s3_6_c11_c5_1, x15
+ *[0-9a-f]+: d53eb52f mrs x15, s3_6_c11_c5_1
+ *[0-9a-f]+: d51eb54f msr s3_6_c11_c5_2, x15
+ *[0-9a-f]+: d53eb54f mrs x15, s3_6_c11_c5_2
+ *[0-9a-f]+: d51eb56f msr s3_6_c11_c5_3, x15
+ *[0-9a-f]+: d53eb56f mrs x15, s3_6_c11_c5_3
+ *[0-9a-f]+: d51eb58f msr s3_6_c11_c5_4, x15
+ *[0-9a-f]+: d53eb58f mrs x15, s3_6_c11_c5_4
+ *[0-9a-f]+: d51eb5af msr s3_6_c11_c5_5, x15
+ *[0-9a-f]+: d53eb5af mrs x15, s3_6_c11_c5_5
+ *[0-9a-f]+: d51eb5cf msr s3_6_c11_c5_6, x15
+ *[0-9a-f]+: d53eb5cf mrs x15, s3_6_c11_c5_6
+ *[0-9a-f]+: d51eb5ef msr s3_6_c11_c5_7, x15
+ *[0-9a-f]+: d53eb5ef mrs x15, s3_6_c11_c5_7
+ *[0-9a-f]+: d51eb60f msr s3_6_c11_c6_0, x15
+ *[0-9a-f]+: d53eb60f mrs x15, s3_6_c11_c6_0
+ *[0-9a-f]+: d51eb62f msr s3_6_c11_c6_1, x15
+ *[0-9a-f]+: d53eb62f mrs x15, s3_6_c11_c6_1
+ *[0-9a-f]+: d51eb64f msr s3_6_c11_c6_2, x15
+ *[0-9a-f]+: d53eb64f mrs x15, s3_6_c11_c6_2
+ *[0-9a-f]+: d51eb66f msr s3_6_c11_c6_3, x15
+ *[0-9a-f]+: d53eb66f mrs x15, s3_6_c11_c6_3
+ *[0-9a-f]+: d51eb68f msr s3_6_c11_c6_4, x15
+ *[0-9a-f]+: d53eb68f mrs x15, s3_6_c11_c6_4
+ *[0-9a-f]+: d51eb6af msr s3_6_c11_c6_5, x15
+ *[0-9a-f]+: d53eb6af mrs x15, s3_6_c11_c6_5
+ *[0-9a-f]+: d51eb6cf msr s3_6_c11_c6_6, x15
+ *[0-9a-f]+: d53eb6cf mrs x15, s3_6_c11_c6_6
+ *[0-9a-f]+: d51eb6ef msr s3_6_c11_c6_7, x15
+ *[0-9a-f]+: d53eb6ef mrs x15, s3_6_c11_c6_7
+ *[0-9a-f]+: d51eb70f msr s3_6_c11_c7_0, x15
+ *[0-9a-f]+: d53eb70f mrs x15, s3_6_c11_c7_0
+ *[0-9a-f]+: d51eb72f msr s3_6_c11_c7_1, x15
+ *[0-9a-f]+: d53eb72f mrs x15, s3_6_c11_c7_1
+ *[0-9a-f]+: d51eb74f msr s3_6_c11_c7_2, x15
+ *[0-9a-f]+: d53eb74f mrs x15, s3_6_c11_c7_2
+ *[0-9a-f]+: d51eb76f msr s3_6_c11_c7_3, x15
+ *[0-9a-f]+: d53eb76f mrs x15, s3_6_c11_c7_3
+ *[0-9a-f]+: d51eb78f msr s3_6_c11_c7_4, x15
+ *[0-9a-f]+: d53eb78f mrs x15, s3_6_c11_c7_4
+ *[0-9a-f]+: d51eb7af msr s3_6_c11_c7_5, x15
+ *[0-9a-f]+: d53eb7af mrs x15, s3_6_c11_c7_5
+ *[0-9a-f]+: d51eb7cf msr s3_6_c11_c7_6, x15
+ *[0-9a-f]+: d53eb7cf mrs x15, s3_6_c11_c7_6
+ *[0-9a-f]+: d51eb7ef msr s3_6_c11_c7_7, x15
+ *[0-9a-f]+: d53eb7ef mrs x15, s3_6_c11_c7_7
+ *[0-9a-f]+: d51eb80f msr s3_6_c11_c8_0, x15
+ *[0-9a-f]+: d53eb80f mrs x15, s3_6_c11_c8_0
+ *[0-9a-f]+: d51eb82f msr s3_6_c11_c8_1, x15
+ *[0-9a-f]+: d53eb82f mrs x15, s3_6_c11_c8_1
+ *[0-9a-f]+: d51eb84f msr s3_6_c11_c8_2, x15
+ *[0-9a-f]+: d53eb84f mrs x15, s3_6_c11_c8_2
+ *[0-9a-f]+: d51eb86f msr s3_6_c11_c8_3, x15
+ *[0-9a-f]+: d53eb86f mrs x15, s3_6_c11_c8_3
+ *[0-9a-f]+: d51eb88f msr s3_6_c11_c8_4, x15
+ *[0-9a-f]+: d53eb88f mrs x15, s3_6_c11_c8_4
+ *[0-9a-f]+: d51eb8af msr s3_6_c11_c8_5, x15
+ *[0-9a-f]+: d53eb8af mrs x15, s3_6_c11_c8_5
+ *[0-9a-f]+: d51eb8cf msr s3_6_c11_c8_6, x15
+ *[0-9a-f]+: d53eb8cf mrs x15, s3_6_c11_c8_6
+ *[0-9a-f]+: d51eb8ef msr s3_6_c11_c8_7, x15
+ *[0-9a-f]+: d53eb8ef mrs x15, s3_6_c11_c8_7
+ *[0-9a-f]+: d51eb90f msr s3_6_c11_c9_0, x15
+ *[0-9a-f]+: d53eb90f mrs x15, s3_6_c11_c9_0
+ *[0-9a-f]+: d51eb92f msr s3_6_c11_c9_1, x15
+ *[0-9a-f]+: d53eb92f mrs x15, s3_6_c11_c9_1
+ *[0-9a-f]+: d51eb94f msr s3_6_c11_c9_2, x15
+ *[0-9a-f]+: d53eb94f mrs x15, s3_6_c11_c9_2
+ *[0-9a-f]+: d51eb96f msr s3_6_c11_c9_3, x15
+ *[0-9a-f]+: d53eb96f mrs x15, s3_6_c11_c9_3
+ *[0-9a-f]+: d51eb98f msr s3_6_c11_c9_4, x15
+ *[0-9a-f]+: d53eb98f mrs x15, s3_6_c11_c9_4
+ *[0-9a-f]+: d51eb9af msr s3_6_c11_c9_5, x15
+ *[0-9a-f]+: d53eb9af mrs x15, s3_6_c11_c9_5
+ *[0-9a-f]+: d51eb9cf msr s3_6_c11_c9_6, x15
+ *[0-9a-f]+: d53eb9cf mrs x15, s3_6_c11_c9_6
+ *[0-9a-f]+: d51eb9ef msr s3_6_c11_c9_7, x15
+ *[0-9a-f]+: d53eb9ef mrs x15, s3_6_c11_c9_7
+ *[0-9a-f]+: d51eba0f msr s3_6_c11_c10_0, x15
+ *[0-9a-f]+: d53eba0f mrs x15, s3_6_c11_c10_0
+ *[0-9a-f]+: d51eba2f msr s3_6_c11_c10_1, x15
+ *[0-9a-f]+: d53eba2f mrs x15, s3_6_c11_c10_1
+ *[0-9a-f]+: d51eba4f msr s3_6_c11_c10_2, x15
+ *[0-9a-f]+: d53eba4f mrs x15, s3_6_c11_c10_2
+ *[0-9a-f]+: d51eba6f msr s3_6_c11_c10_3, x15
+ *[0-9a-f]+: d53eba6f mrs x15, s3_6_c11_c10_3
+ *[0-9a-f]+: d51eba8f msr s3_6_c11_c10_4, x15
+ *[0-9a-f]+: d53eba8f mrs x15, s3_6_c11_c10_4
+ *[0-9a-f]+: d51ebaaf msr s3_6_c11_c10_5, x15
+ *[0-9a-f]+: d53ebaaf mrs x15, s3_6_c11_c10_5
+ *[0-9a-f]+: d51ebacf msr s3_6_c11_c10_6, x15
+ *[0-9a-f]+: d53ebacf mrs x15, s3_6_c11_c10_6
+ *[0-9a-f]+: d51ebaef msr s3_6_c11_c10_7, x15
+ *[0-9a-f]+: d53ebaef mrs x15, s3_6_c11_c10_7
+ *[0-9a-f]+: d51ebb0f msr s3_6_c11_c11_0, x15
+ *[0-9a-f]+: d53ebb0f mrs x15, s3_6_c11_c11_0
+ *[0-9a-f]+: d51ebb2f msr s3_6_c11_c11_1, x15
+ *[0-9a-f]+: d53ebb2f mrs x15, s3_6_c11_c11_1
+ *[0-9a-f]+: d51ebb4f msr s3_6_c11_c11_2, x15
+ *[0-9a-f]+: d53ebb4f mrs x15, s3_6_c11_c11_2
+ *[0-9a-f]+: d51ebb6f msr s3_6_c11_c11_3, x15
+ *[0-9a-f]+: d53ebb6f mrs x15, s3_6_c11_c11_3
+ *[0-9a-f]+: d51ebb8f msr s3_6_c11_c11_4, x15
+ *[0-9a-f]+: d53ebb8f mrs x15, s3_6_c11_c11_4
+ *[0-9a-f]+: d51ebbaf msr s3_6_c11_c11_5, x15
+ *[0-9a-f]+: d53ebbaf mrs x15, s3_6_c11_c11_5
+ *[0-9a-f]+: d51ebbcf msr s3_6_c11_c11_6, x15
+ *[0-9a-f]+: d53ebbcf mrs x15, s3_6_c11_c11_6
+ *[0-9a-f]+: d51ebbef msr s3_6_c11_c11_7, x15
+ *[0-9a-f]+: d53ebbef mrs x15, s3_6_c11_c11_7
+ *[0-9a-f]+: d51ebc0f msr s3_6_c11_c12_0, x15
+ *[0-9a-f]+: d53ebc0f mrs x15, s3_6_c11_c12_0
+ *[0-9a-f]+: d51ebc2f msr s3_6_c11_c12_1, x15
+ *[0-9a-f]+: d53ebc2f mrs x15, s3_6_c11_c12_1
+ *[0-9a-f]+: d51ebc4f msr s3_6_c11_c12_2, x15
+ *[0-9a-f]+: d53ebc4f mrs x15, s3_6_c11_c12_2
+ *[0-9a-f]+: d51ebc6f msr s3_6_c11_c12_3, x15
+ *[0-9a-f]+: d53ebc6f mrs x15, s3_6_c11_c12_3
+ *[0-9a-f]+: d51ebc8f msr s3_6_c11_c12_4, x15
+ *[0-9a-f]+: d53ebc8f mrs x15, s3_6_c11_c12_4
+ *[0-9a-f]+: d51ebcaf msr s3_6_c11_c12_5, x15
+ *[0-9a-f]+: d53ebcaf mrs x15, s3_6_c11_c12_5
+ *[0-9a-f]+: d51ebccf msr s3_6_c11_c12_6, x15
+ *[0-9a-f]+: d53ebccf mrs x15, s3_6_c11_c12_6
+ *[0-9a-f]+: d51ebcef msr s3_6_c11_c12_7, x15
+ *[0-9a-f]+: d53ebcef mrs x15, s3_6_c11_c12_7
+ *[0-9a-f]+: d51ebd0f msr s3_6_c11_c13_0, x15
+ *[0-9a-f]+: d53ebd0f mrs x15, s3_6_c11_c13_0
+ *[0-9a-f]+: d51ebd2f msr s3_6_c11_c13_1, x15
+ *[0-9a-f]+: d53ebd2f mrs x15, s3_6_c11_c13_1
+ *[0-9a-f]+: d51ebd4f msr s3_6_c11_c13_2, x15
+ *[0-9a-f]+: d53ebd4f mrs x15, s3_6_c11_c13_2
+ *[0-9a-f]+: d51ebd6f msr s3_6_c11_c13_3, x15
+ *[0-9a-f]+: d53ebd6f mrs x15, s3_6_c11_c13_3
+ *[0-9a-f]+: d51ebd8f msr s3_6_c11_c13_4, x15
+ *[0-9a-f]+: d53ebd8f mrs x15, s3_6_c11_c13_4
+ *[0-9a-f]+: d51ebdaf msr s3_6_c11_c13_5, x15
+ *[0-9a-f]+: d53ebdaf mrs x15, s3_6_c11_c13_5
+ *[0-9a-f]+: d51ebdcf msr s3_6_c11_c13_6, x15
+ *[0-9a-f]+: d53ebdcf mrs x15, s3_6_c11_c13_6
+ *[0-9a-f]+: d51ebdef msr s3_6_c11_c13_7, x15
+ *[0-9a-f]+: d53ebdef mrs x15, s3_6_c11_c13_7
+ *[0-9a-f]+: d51ebe0f msr s3_6_c11_c14_0, x15
+ *[0-9a-f]+: d53ebe0f mrs x15, s3_6_c11_c14_0
+ *[0-9a-f]+: d51ebe2f msr s3_6_c11_c14_1, x15
+ *[0-9a-f]+: d53ebe2f mrs x15, s3_6_c11_c14_1
+ *[0-9a-f]+: d51ebe4f msr s3_6_c11_c14_2, x15
+ *[0-9a-f]+: d53ebe4f mrs x15, s3_6_c11_c14_2
+ *[0-9a-f]+: d51ebe6f msr s3_6_c11_c14_3, x15
+ *[0-9a-f]+: d53ebe6f mrs x15, s3_6_c11_c14_3
+ *[0-9a-f]+: d51ebe8f msr s3_6_c11_c14_4, x15
+ *[0-9a-f]+: d53ebe8f mrs x15, s3_6_c11_c14_4
+ *[0-9a-f]+: d51ebeaf msr s3_6_c11_c14_5, x15
+ *[0-9a-f]+: d53ebeaf mrs x15, s3_6_c11_c14_5
+ *[0-9a-f]+: d51ebecf msr s3_6_c11_c14_6, x15
+ *[0-9a-f]+: d53ebecf mrs x15, s3_6_c11_c14_6
+ *[0-9a-f]+: d51ebeef msr s3_6_c11_c14_7, x15
+ *[0-9a-f]+: d53ebeef mrs x15, s3_6_c11_c14_7
+ *[0-9a-f]+: d51ebf0f msr s3_6_c11_c15_0, x15
+ *[0-9a-f]+: d53ebf0f mrs x15, s3_6_c11_c15_0
+ *[0-9a-f]+: d51ebf2f msr s3_6_c11_c15_1, x15
+ *[0-9a-f]+: d53ebf2f mrs x15, s3_6_c11_c15_1
+ *[0-9a-f]+: d51ebf4f msr s3_6_c11_c15_2, x15
+ *[0-9a-f]+: d53ebf4f mrs x15, s3_6_c11_c15_2
+ *[0-9a-f]+: d51ebf6f msr s3_6_c11_c15_3, x15
+ *[0-9a-f]+: d53ebf6f mrs x15, s3_6_c11_c15_3
+ *[0-9a-f]+: d51ebf8f msr s3_6_c11_c15_4, x15
+ *[0-9a-f]+: d53ebf8f mrs x15, s3_6_c11_c15_4
+ *[0-9a-f]+: d51ebfaf msr s3_6_c11_c15_5, x15
+ *[0-9a-f]+: d53ebfaf mrs x15, s3_6_c11_c15_5
+ *[0-9a-f]+: d51ebfcf msr s3_6_c11_c15_6, x15
+ *[0-9a-f]+: d53ebfcf mrs x15, s3_6_c11_c15_6
+ *[0-9a-f]+: d51ebfef msr s3_6_c11_c15_7, x15
+ *[0-9a-f]+: d53ebfef mrs x15, s3_6_c11_c15_7
+ *[0-9a-f]+: d51ef00f msr s3_6_c15_c0_0, x15
+ *[0-9a-f]+: d53ef00f mrs x15, s3_6_c15_c0_0
+ *[0-9a-f]+: d51ef02f msr s3_6_c15_c0_1, x15
+ *[0-9a-f]+: d53ef02f mrs x15, s3_6_c15_c0_1
+ *[0-9a-f]+: d51ef04f msr s3_6_c15_c0_2, x15
+ *[0-9a-f]+: d53ef04f mrs x15, s3_6_c15_c0_2
+ *[0-9a-f]+: d51ef06f msr s3_6_c15_c0_3, x15
+ *[0-9a-f]+: d53ef06f mrs x15, s3_6_c15_c0_3
+ *[0-9a-f]+: d51ef08f msr s3_6_c15_c0_4, x15
+ *[0-9a-f]+: d53ef08f mrs x15, s3_6_c15_c0_4
+ *[0-9a-f]+: d51ef0af msr s3_6_c15_c0_5, x15
+ *[0-9a-f]+: d53ef0af mrs x15, s3_6_c15_c0_5
+ *[0-9a-f]+: d51ef0cf msr s3_6_c15_c0_6, x15
+ *[0-9a-f]+: d53ef0cf mrs x15, s3_6_c15_c0_6
+ *[0-9a-f]+: d51ef0ef msr s3_6_c15_c0_7, x15
+ *[0-9a-f]+: d53ef0ef mrs x15, s3_6_c15_c0_7
+ *[0-9a-f]+: d51ef10f msr s3_6_c15_c1_0, x15
+ *[0-9a-f]+: d53ef10f mrs x15, s3_6_c15_c1_0
+ *[0-9a-f]+: d51ef12f msr s3_6_c15_c1_1, x15
+ *[0-9a-f]+: d53ef12f mrs x15, s3_6_c15_c1_1
+ *[0-9a-f]+: d51ef14f msr s3_6_c15_c1_2, x15
+ *[0-9a-f]+: d53ef14f mrs x15, s3_6_c15_c1_2
+ *[0-9a-f]+: d51ef16f msr s3_6_c15_c1_3, x15
+ *[0-9a-f]+: d53ef16f mrs x15, s3_6_c15_c1_3
+ *[0-9a-f]+: d51ef18f msr s3_6_c15_c1_4, x15
+ *[0-9a-f]+: d53ef18f mrs x15, s3_6_c15_c1_4
+ *[0-9a-f]+: d51ef1af msr s3_6_c15_c1_5, x15
+ *[0-9a-f]+: d53ef1af mrs x15, s3_6_c15_c1_5
+ *[0-9a-f]+: d51ef1cf msr s3_6_c15_c1_6, x15
+ *[0-9a-f]+: d53ef1cf mrs x15, s3_6_c15_c1_6
+ *[0-9a-f]+: d51ef1ef msr s3_6_c15_c1_7, x15
+ *[0-9a-f]+: d53ef1ef mrs x15, s3_6_c15_c1_7
+ *[0-9a-f]+: d51ef20f msr s3_6_c15_c2_0, x15
+ *[0-9a-f]+: d53ef20f mrs x15, s3_6_c15_c2_0
+ *[0-9a-f]+: d51ef22f msr s3_6_c15_c2_1, x15
+ *[0-9a-f]+: d53ef22f mrs x15, s3_6_c15_c2_1
+ *[0-9a-f]+: d51ef24f msr s3_6_c15_c2_2, x15
+ *[0-9a-f]+: d53ef24f mrs x15, s3_6_c15_c2_2
+ *[0-9a-f]+: d51ef26f msr s3_6_c15_c2_3, x15
+ *[0-9a-f]+: d53ef26f mrs x15, s3_6_c15_c2_3
+ *[0-9a-f]+: d51ef28f msr s3_6_c15_c2_4, x15
+ *[0-9a-f]+: d53ef28f mrs x15, s3_6_c15_c2_4
+ *[0-9a-f]+: d51ef2af msr s3_6_c15_c2_5, x15
+ *[0-9a-f]+: d53ef2af mrs x15, s3_6_c15_c2_5
+ *[0-9a-f]+: d51ef2cf msr s3_6_c15_c2_6, x15
+ *[0-9a-f]+: d53ef2cf mrs x15, s3_6_c15_c2_6
+ *[0-9a-f]+: d51ef2ef msr s3_6_c15_c2_7, x15
+ *[0-9a-f]+: d53ef2ef mrs x15, s3_6_c15_c2_7
+ *[0-9a-f]+: d51ef30f msr s3_6_c15_c3_0, x15
+ *[0-9a-f]+: d53ef30f mrs x15, s3_6_c15_c3_0
+ *[0-9a-f]+: d51ef32f msr s3_6_c15_c3_1, x15
+ *[0-9a-f]+: d53ef32f mrs x15, s3_6_c15_c3_1
+ *[0-9a-f]+: d51ef34f msr s3_6_c15_c3_2, x15
+ *[0-9a-f]+: d53ef34f mrs x15, s3_6_c15_c3_2
+ *[0-9a-f]+: d51ef36f msr s3_6_c15_c3_3, x15
+ *[0-9a-f]+: d53ef36f mrs x15, s3_6_c15_c3_3
+ *[0-9a-f]+: d51ef38f msr s3_6_c15_c3_4, x15
+ *[0-9a-f]+: d53ef38f mrs x15, s3_6_c15_c3_4
+ *[0-9a-f]+: d51ef3af msr s3_6_c15_c3_5, x15
+ *[0-9a-f]+: d53ef3af mrs x15, s3_6_c15_c3_5
+ *[0-9a-f]+: d51ef3cf msr s3_6_c15_c3_6, x15
+ *[0-9a-f]+: d53ef3cf mrs x15, s3_6_c15_c3_6
+ *[0-9a-f]+: d51ef3ef msr s3_6_c15_c3_7, x15
+ *[0-9a-f]+: d53ef3ef mrs x15, s3_6_c15_c3_7
+ *[0-9a-f]+: d51ef40f msr s3_6_c15_c4_0, x15
+ *[0-9a-f]+: d53ef40f mrs x15, s3_6_c15_c4_0
+ *[0-9a-f]+: d51ef42f msr s3_6_c15_c4_1, x15
+ *[0-9a-f]+: d53ef42f mrs x15, s3_6_c15_c4_1
+ *[0-9a-f]+: d51ef44f msr s3_6_c15_c4_2, x15
+ *[0-9a-f]+: d53ef44f mrs x15, s3_6_c15_c4_2
+ *[0-9a-f]+: d51ef46f msr s3_6_c15_c4_3, x15
+ *[0-9a-f]+: d53ef46f mrs x15, s3_6_c15_c4_3
+ *[0-9a-f]+: d51ef48f msr s3_6_c15_c4_4, x15
+ *[0-9a-f]+: d53ef48f mrs x15, s3_6_c15_c4_4
+ *[0-9a-f]+: d51ef4af msr s3_6_c15_c4_5, x15
+ *[0-9a-f]+: d53ef4af mrs x15, s3_6_c15_c4_5
+ *[0-9a-f]+: d51ef4cf msr s3_6_c15_c4_6, x15
+ *[0-9a-f]+: d53ef4cf mrs x15, s3_6_c15_c4_6
+ *[0-9a-f]+: d51ef4ef msr s3_6_c15_c4_7, x15
+ *[0-9a-f]+: d53ef4ef mrs x15, s3_6_c15_c4_7
+ *[0-9a-f]+: d51ef50f msr s3_6_c15_c5_0, x15
+ *[0-9a-f]+: d53ef50f mrs x15, s3_6_c15_c5_0
+ *[0-9a-f]+: d51ef52f msr s3_6_c15_c5_1, x15
+ *[0-9a-f]+: d53ef52f mrs x15, s3_6_c15_c5_1
+ *[0-9a-f]+: d51ef54f msr s3_6_c15_c5_2, x15
+ *[0-9a-f]+: d53ef54f mrs x15, s3_6_c15_c5_2
+ *[0-9a-f]+: d51ef56f msr s3_6_c15_c5_3, x15
+ *[0-9a-f]+: d53ef56f mrs x15, s3_6_c15_c5_3
+ *[0-9a-f]+: d51ef58f msr s3_6_c15_c5_4, x15
+ *[0-9a-f]+: d53ef58f mrs x15, s3_6_c15_c5_4
+ *[0-9a-f]+: d51ef5af msr s3_6_c15_c5_5, x15
+ *[0-9a-f]+: d53ef5af mrs x15, s3_6_c15_c5_5
+ *[0-9a-f]+: d51ef5cf msr s3_6_c15_c5_6, x15
+ *[0-9a-f]+: d53ef5cf mrs x15, s3_6_c15_c5_6
+ *[0-9a-f]+: d51ef5ef msr s3_6_c15_c5_7, x15
+ *[0-9a-f]+: d53ef5ef mrs x15, s3_6_c15_c5_7
+ *[0-9a-f]+: d51ef60f msr s3_6_c15_c6_0, x15
+ *[0-9a-f]+: d53ef60f mrs x15, s3_6_c15_c6_0
+ *[0-9a-f]+: d51ef62f msr s3_6_c15_c6_1, x15
+ *[0-9a-f]+: d53ef62f mrs x15, s3_6_c15_c6_1
+ *[0-9a-f]+: d51ef64f msr s3_6_c15_c6_2, x15
+ *[0-9a-f]+: d53ef64f mrs x15, s3_6_c15_c6_2
+ *[0-9a-f]+: d51ef66f msr s3_6_c15_c6_3, x15
+ *[0-9a-f]+: d53ef66f mrs x15, s3_6_c15_c6_3
+ *[0-9a-f]+: d51ef68f msr s3_6_c15_c6_4, x15
+ *[0-9a-f]+: d53ef68f mrs x15, s3_6_c15_c6_4
+ *[0-9a-f]+: d51ef6af msr s3_6_c15_c6_5, x15
+ *[0-9a-f]+: d53ef6af mrs x15, s3_6_c15_c6_5
+ *[0-9a-f]+: d51ef6cf msr s3_6_c15_c6_6, x15
+ *[0-9a-f]+: d53ef6cf mrs x15, s3_6_c15_c6_6
+ *[0-9a-f]+: d51ef6ef msr s3_6_c15_c6_7, x15
+ *[0-9a-f]+: d53ef6ef mrs x15, s3_6_c15_c6_7
+ *[0-9a-f]+: d51ef70f msr s3_6_c15_c7_0, x15
+ *[0-9a-f]+: d53ef70f mrs x15, s3_6_c15_c7_0
+ *[0-9a-f]+: d51ef72f msr s3_6_c15_c7_1, x15
+ *[0-9a-f]+: d53ef72f mrs x15, s3_6_c15_c7_1
+ *[0-9a-f]+: d51ef74f msr s3_6_c15_c7_2, x15
+ *[0-9a-f]+: d53ef74f mrs x15, s3_6_c15_c7_2
+ *[0-9a-f]+: d51ef76f msr s3_6_c15_c7_3, x15
+ *[0-9a-f]+: d53ef76f mrs x15, s3_6_c15_c7_3
+ *[0-9a-f]+: d51ef78f msr s3_6_c15_c7_4, x15
+ *[0-9a-f]+: d53ef78f mrs x15, s3_6_c15_c7_4
+ *[0-9a-f]+: d51ef7af msr s3_6_c15_c7_5, x15
+ *[0-9a-f]+: d53ef7af mrs x15, s3_6_c15_c7_5
+ *[0-9a-f]+: d51ef7cf msr s3_6_c15_c7_6, x15
+ *[0-9a-f]+: d53ef7cf mrs x15, s3_6_c15_c7_6
+ *[0-9a-f]+: d51ef7ef msr s3_6_c15_c7_7, x15
+ *[0-9a-f]+: d53ef7ef mrs x15, s3_6_c15_c7_7
+ *[0-9a-f]+: d51ef80f msr s3_6_c15_c8_0, x15
+ *[0-9a-f]+: d53ef80f mrs x15, s3_6_c15_c8_0
+ *[0-9a-f]+: d51ef82f msr s3_6_c15_c8_1, x15
+ *[0-9a-f]+: d53ef82f mrs x15, s3_6_c15_c8_1
+ *[0-9a-f]+: d51ef84f msr s3_6_c15_c8_2, x15
+ *[0-9a-f]+: d53ef84f mrs x15, s3_6_c15_c8_2
+ *[0-9a-f]+: d51ef86f msr s3_6_c15_c8_3, x15
+ *[0-9a-f]+: d53ef86f mrs x15, s3_6_c15_c8_3
+ *[0-9a-f]+: d51ef88f msr s3_6_c15_c8_4, x15
+ *[0-9a-f]+: d53ef88f mrs x15, s3_6_c15_c8_4
+ *[0-9a-f]+: d51ef8af msr s3_6_c15_c8_5, x15
+ *[0-9a-f]+: d53ef8af mrs x15, s3_6_c15_c8_5
+ *[0-9a-f]+: d51ef8cf msr s3_6_c15_c8_6, x15
+ *[0-9a-f]+: d53ef8cf mrs x15, s3_6_c15_c8_6
+ *[0-9a-f]+: d51ef8ef msr s3_6_c15_c8_7, x15
+ *[0-9a-f]+: d53ef8ef mrs x15, s3_6_c15_c8_7
+ *[0-9a-f]+: d51ef90f msr s3_6_c15_c9_0, x15
+ *[0-9a-f]+: d53ef90f mrs x15, s3_6_c15_c9_0
+ *[0-9a-f]+: d51ef92f msr s3_6_c15_c9_1, x15
+ *[0-9a-f]+: d53ef92f mrs x15, s3_6_c15_c9_1
+ *[0-9a-f]+: d51ef94f msr s3_6_c15_c9_2, x15
+ *[0-9a-f]+: d53ef94f mrs x15, s3_6_c15_c9_2
+ *[0-9a-f]+: d51ef96f msr s3_6_c15_c9_3, x15
+ *[0-9a-f]+: d53ef96f mrs x15, s3_6_c15_c9_3
+ *[0-9a-f]+: d51ef98f msr s3_6_c15_c9_4, x15
+ *[0-9a-f]+: d53ef98f mrs x15, s3_6_c15_c9_4
+ *[0-9a-f]+: d51ef9af msr s3_6_c15_c9_5, x15
+ *[0-9a-f]+: d53ef9af mrs x15, s3_6_c15_c9_5
+ *[0-9a-f]+: d51ef9cf msr s3_6_c15_c9_6, x15
+ *[0-9a-f]+: d53ef9cf mrs x15, s3_6_c15_c9_6
+ *[0-9a-f]+: d51ef9ef msr s3_6_c15_c9_7, x15
+ *[0-9a-f]+: d53ef9ef mrs x15, s3_6_c15_c9_7
+ *[0-9a-f]+: d51efa0f msr s3_6_c15_c10_0, x15
+ *[0-9a-f]+: d53efa0f mrs x15, s3_6_c15_c10_0
+ *[0-9a-f]+: d51efa2f msr s3_6_c15_c10_1, x15
+ *[0-9a-f]+: d53efa2f mrs x15, s3_6_c15_c10_1
+ *[0-9a-f]+: d51efa4f msr s3_6_c15_c10_2, x15
+ *[0-9a-f]+: d53efa4f mrs x15, s3_6_c15_c10_2
+ *[0-9a-f]+: d51efa6f msr s3_6_c15_c10_3, x15
+ *[0-9a-f]+: d53efa6f mrs x15, s3_6_c15_c10_3
+ *[0-9a-f]+: d51efa8f msr s3_6_c15_c10_4, x15
+ *[0-9a-f]+: d53efa8f mrs x15, s3_6_c15_c10_4
+ *[0-9a-f]+: d51efaaf msr s3_6_c15_c10_5, x15
+ *[0-9a-f]+: d53efaaf mrs x15, s3_6_c15_c10_5
+ *[0-9a-f]+: d51efacf msr s3_6_c15_c10_6, x15
+ *[0-9a-f]+: d53efacf mrs x15, s3_6_c15_c10_6
+ *[0-9a-f]+: d51efaef msr s3_6_c15_c10_7, x15
+ *[0-9a-f]+: d53efaef mrs x15, s3_6_c15_c10_7
+ *[0-9a-f]+: d51efb0f msr s3_6_c15_c11_0, x15
+ *[0-9a-f]+: d53efb0f mrs x15, s3_6_c15_c11_0
+ *[0-9a-f]+: d51efb2f msr s3_6_c15_c11_1, x15
+ *[0-9a-f]+: d53efb2f mrs x15, s3_6_c15_c11_1
+ *[0-9a-f]+: d51efb4f msr s3_6_c15_c11_2, x15
+ *[0-9a-f]+: d53efb4f mrs x15, s3_6_c15_c11_2
+ *[0-9a-f]+: d51efb6f msr s3_6_c15_c11_3, x15
+ *[0-9a-f]+: d53efb6f mrs x15, s3_6_c15_c11_3
+ *[0-9a-f]+: d51efb8f msr s3_6_c15_c11_4, x15
+ *[0-9a-f]+: d53efb8f mrs x15, s3_6_c15_c11_4
+ *[0-9a-f]+: d51efbaf msr s3_6_c15_c11_5, x15
+ *[0-9a-f]+: d53efbaf mrs x15, s3_6_c15_c11_5
+ *[0-9a-f]+: d51efbcf msr s3_6_c15_c11_6, x15
+ *[0-9a-f]+: d53efbcf mrs x15, s3_6_c15_c11_6
+ *[0-9a-f]+: d51efbef msr s3_6_c15_c11_7, x15
+ *[0-9a-f]+: d53efbef mrs x15, s3_6_c15_c11_7
+ *[0-9a-f]+: d51efc0f msr s3_6_c15_c12_0, x15
+ *[0-9a-f]+: d53efc0f mrs x15, s3_6_c15_c12_0
+ *[0-9a-f]+: d51efc2f msr s3_6_c15_c12_1, x15
+ *[0-9a-f]+: d53efc2f mrs x15, s3_6_c15_c12_1
+ *[0-9a-f]+: d51efc4f msr s3_6_c15_c12_2, x15
+ *[0-9a-f]+: d53efc4f mrs x15, s3_6_c15_c12_2
+ *[0-9a-f]+: d51efc6f msr s3_6_c15_c12_3, x15
+ *[0-9a-f]+: d53efc6f mrs x15, s3_6_c15_c12_3
+ *[0-9a-f]+: d51efc8f msr s3_6_c15_c12_4, x15
+ *[0-9a-f]+: d53efc8f mrs x15, s3_6_c15_c12_4
+ *[0-9a-f]+: d51efcaf msr s3_6_c15_c12_5, x15
+ *[0-9a-f]+: d53efcaf mrs x15, s3_6_c15_c12_5
+ *[0-9a-f]+: d51efccf msr s3_6_c15_c12_6, x15
+ *[0-9a-f]+: d53efccf mrs x15, s3_6_c15_c12_6
+ *[0-9a-f]+: d51efcef msr s3_6_c15_c12_7, x15
+ *[0-9a-f]+: d53efcef mrs x15, s3_6_c15_c12_7
+ *[0-9a-f]+: d51efd0f msr s3_6_c15_c13_0, x15
+ *[0-9a-f]+: d53efd0f mrs x15, s3_6_c15_c13_0
+ *[0-9a-f]+: d51efd2f msr s3_6_c15_c13_1, x15
+ *[0-9a-f]+: d53efd2f mrs x15, s3_6_c15_c13_1
+ *[0-9a-f]+: d51efd4f msr s3_6_c15_c13_2, x15
+ *[0-9a-f]+: d53efd4f mrs x15, s3_6_c15_c13_2
+ *[0-9a-f]+: d51efd6f msr s3_6_c15_c13_3, x15
+ *[0-9a-f]+: d53efd6f mrs x15, s3_6_c15_c13_3
+ *[0-9a-f]+: d51efd8f msr s3_6_c15_c13_4, x15
+ *[0-9a-f]+: d53efd8f mrs x15, s3_6_c15_c13_4
+ *[0-9a-f]+: d51efdaf msr s3_6_c15_c13_5, x15
+ *[0-9a-f]+: d53efdaf mrs x15, s3_6_c15_c13_5
+ *[0-9a-f]+: d51efdcf msr s3_6_c15_c13_6, x15
+ *[0-9a-f]+: d53efdcf mrs x15, s3_6_c15_c13_6
+ *[0-9a-f]+: d51efdef msr s3_6_c15_c13_7, x15
+ *[0-9a-f]+: d53efdef mrs x15, s3_6_c15_c13_7
+ *[0-9a-f]+: d51efe0f msr s3_6_c15_c14_0, x15
+ *[0-9a-f]+: d53efe0f mrs x15, s3_6_c15_c14_0
+ *[0-9a-f]+: d51efe2f msr s3_6_c15_c14_1, x15
+ *[0-9a-f]+: d53efe2f mrs x15, s3_6_c15_c14_1
+ *[0-9a-f]+: d51efe4f msr s3_6_c15_c14_2, x15
+ *[0-9a-f]+: d53efe4f mrs x15, s3_6_c15_c14_2
+ *[0-9a-f]+: d51efe6f msr s3_6_c15_c14_3, x15
+ *[0-9a-f]+: d53efe6f mrs x15, s3_6_c15_c14_3
+ *[0-9a-f]+: d51efe8f msr s3_6_c15_c14_4, x15
+ *[0-9a-f]+: d53efe8f mrs x15, s3_6_c15_c14_4
+ *[0-9a-f]+: d51efeaf msr s3_6_c15_c14_5, x15
+ *[0-9a-f]+: d53efeaf mrs x15, s3_6_c15_c14_5
+ *[0-9a-f]+: d51efecf msr s3_6_c15_c14_6, x15
+ *[0-9a-f]+: d53efecf mrs x15, s3_6_c15_c14_6
+ *[0-9a-f]+: d51efeef msr s3_6_c15_c14_7, x15
+ *[0-9a-f]+: d53efeef mrs x15, s3_6_c15_c14_7
+ *[0-9a-f]+: d51eff0f msr s3_6_c15_c15_0, x15
+ *[0-9a-f]+: d53eff0f mrs x15, s3_6_c15_c15_0
+ *[0-9a-f]+: d51eff2f msr s3_6_c15_c15_1, x15
+ *[0-9a-f]+: d53eff2f mrs x15, s3_6_c15_c15_1
+ *[0-9a-f]+: d51eff4f msr s3_6_c15_c15_2, x15
+ *[0-9a-f]+: d53eff4f mrs x15, s3_6_c15_c15_2
+ *[0-9a-f]+: d51eff6f msr s3_6_c15_c15_3, x15
+ *[0-9a-f]+: d53eff6f mrs x15, s3_6_c15_c15_3
+ *[0-9a-f]+: d51eff8f msr s3_6_c15_c15_4, x15
+ *[0-9a-f]+: d53eff8f mrs x15, s3_6_c15_c15_4
+ *[0-9a-f]+: d51effaf msr s3_6_c15_c15_5, x15
+ *[0-9a-f]+: d53effaf mrs x15, s3_6_c15_c15_5
+ *[0-9a-f]+: d51effcf msr s3_6_c15_c15_6, x15
+ *[0-9a-f]+: d53effcf mrs x15, s3_6_c15_c15_6
+ *[0-9a-f]+: d51effef msr s3_6_c15_c15_7, x15
+ *[0-9a-f]+: d53effef mrs x15, s3_6_c15_c15_7
+ *[0-9a-f]+: d51fb00f msr s3_7_c11_c0_0, x15
+ *[0-9a-f]+: d53fb00f mrs x15, s3_7_c11_c0_0
+ *[0-9a-f]+: d51fb02f msr s3_7_c11_c0_1, x15
+ *[0-9a-f]+: d53fb02f mrs x15, s3_7_c11_c0_1
+ *[0-9a-f]+: d51fb04f msr s3_7_c11_c0_2, x15
+ *[0-9a-f]+: d53fb04f mrs x15, s3_7_c11_c0_2
+ *[0-9a-f]+: d51fb06f msr s3_7_c11_c0_3, x15
+ *[0-9a-f]+: d53fb06f mrs x15, s3_7_c11_c0_3
+ *[0-9a-f]+: d51fb08f msr s3_7_c11_c0_4, x15
+ *[0-9a-f]+: d53fb08f mrs x15, s3_7_c11_c0_4
+ *[0-9a-f]+: d51fb0af msr s3_7_c11_c0_5, x15
+ *[0-9a-f]+: d53fb0af mrs x15, s3_7_c11_c0_5
+ *[0-9a-f]+: d51fb0cf msr s3_7_c11_c0_6, x15
+ *[0-9a-f]+: d53fb0cf mrs x15, s3_7_c11_c0_6
+ *[0-9a-f]+: d51fb0ef msr s3_7_c11_c0_7, x15
+ *[0-9a-f]+: d53fb0ef mrs x15, s3_7_c11_c0_7
+ *[0-9a-f]+: d51fb10f msr s3_7_c11_c1_0, x15
+ *[0-9a-f]+: d53fb10f mrs x15, s3_7_c11_c1_0
+ *[0-9a-f]+: d51fb12f msr s3_7_c11_c1_1, x15
+ *[0-9a-f]+: d53fb12f mrs x15, s3_7_c11_c1_1
+ *[0-9a-f]+: d51fb14f msr s3_7_c11_c1_2, x15
+ *[0-9a-f]+: d53fb14f mrs x15, s3_7_c11_c1_2
+ *[0-9a-f]+: d51fb16f msr s3_7_c11_c1_3, x15
+ *[0-9a-f]+: d53fb16f mrs x15, s3_7_c11_c1_3
+ *[0-9a-f]+: d51fb18f msr s3_7_c11_c1_4, x15
+ *[0-9a-f]+: d53fb18f mrs x15, s3_7_c11_c1_4
+ *[0-9a-f]+: d51fb1af msr s3_7_c11_c1_5, x15
+ *[0-9a-f]+: d53fb1af mrs x15, s3_7_c11_c1_5
+ *[0-9a-f]+: d51fb1cf msr s3_7_c11_c1_6, x15
+ *[0-9a-f]+: d53fb1cf mrs x15, s3_7_c11_c1_6
+ *[0-9a-f]+: d51fb1ef msr s3_7_c11_c1_7, x15
+ *[0-9a-f]+: d53fb1ef mrs x15, s3_7_c11_c1_7
+ *[0-9a-f]+: d51fb20f msr s3_7_c11_c2_0, x15
+ *[0-9a-f]+: d53fb20f mrs x15, s3_7_c11_c2_0
+ *[0-9a-f]+: d51fb22f msr s3_7_c11_c2_1, x15
+ *[0-9a-f]+: d53fb22f mrs x15, s3_7_c11_c2_1
+ *[0-9a-f]+: d51fb24f msr s3_7_c11_c2_2, x15
+ *[0-9a-f]+: d53fb24f mrs x15, s3_7_c11_c2_2
+ *[0-9a-f]+: d51fb26f msr s3_7_c11_c2_3, x15
+ *[0-9a-f]+: d53fb26f mrs x15, s3_7_c11_c2_3
+ *[0-9a-f]+: d51fb28f msr s3_7_c11_c2_4, x15
+ *[0-9a-f]+: d53fb28f mrs x15, s3_7_c11_c2_4
+ *[0-9a-f]+: d51fb2af msr s3_7_c11_c2_5, x15
+ *[0-9a-f]+: d53fb2af mrs x15, s3_7_c11_c2_5
+ *[0-9a-f]+: d51fb2cf msr s3_7_c11_c2_6, x15
+ *[0-9a-f]+: d53fb2cf mrs x15, s3_7_c11_c2_6
+ *[0-9a-f]+: d51fb2ef msr s3_7_c11_c2_7, x15
+ *[0-9a-f]+: d53fb2ef mrs x15, s3_7_c11_c2_7
+ *[0-9a-f]+: d51fb30f msr s3_7_c11_c3_0, x15
+ *[0-9a-f]+: d53fb30f mrs x15, s3_7_c11_c3_0
+ *[0-9a-f]+: d51fb32f msr s3_7_c11_c3_1, x15
+ *[0-9a-f]+: d53fb32f mrs x15, s3_7_c11_c3_1
+ *[0-9a-f]+: d51fb34f msr s3_7_c11_c3_2, x15
+ *[0-9a-f]+: d53fb34f mrs x15, s3_7_c11_c3_2
+ *[0-9a-f]+: d51fb36f msr s3_7_c11_c3_3, x15
+ *[0-9a-f]+: d53fb36f mrs x15, s3_7_c11_c3_3
+ *[0-9a-f]+: d51fb38f msr s3_7_c11_c3_4, x15
+ *[0-9a-f]+: d53fb38f mrs x15, s3_7_c11_c3_4
+ *[0-9a-f]+: d51fb3af msr s3_7_c11_c3_5, x15
+ *[0-9a-f]+: d53fb3af mrs x15, s3_7_c11_c3_5
+ *[0-9a-f]+: d51fb3cf msr s3_7_c11_c3_6, x15
+ *[0-9a-f]+: d53fb3cf mrs x15, s3_7_c11_c3_6
+ *[0-9a-f]+: d51fb3ef msr s3_7_c11_c3_7, x15
+ *[0-9a-f]+: d53fb3ef mrs x15, s3_7_c11_c3_7
+ *[0-9a-f]+: d51fb40f msr s3_7_c11_c4_0, x15
+ *[0-9a-f]+: d53fb40f mrs x15, s3_7_c11_c4_0
+ *[0-9a-f]+: d51fb42f msr s3_7_c11_c4_1, x15
+ *[0-9a-f]+: d53fb42f mrs x15, s3_7_c11_c4_1
+ *[0-9a-f]+: d51fb44f msr s3_7_c11_c4_2, x15
+ *[0-9a-f]+: d53fb44f mrs x15, s3_7_c11_c4_2
+ *[0-9a-f]+: d51fb46f msr s3_7_c11_c4_3, x15
+ *[0-9a-f]+: d53fb46f mrs x15, s3_7_c11_c4_3
+ *[0-9a-f]+: d51fb48f msr s3_7_c11_c4_4, x15
+ *[0-9a-f]+: d53fb48f mrs x15, s3_7_c11_c4_4
+ *[0-9a-f]+: d51fb4af msr s3_7_c11_c4_5, x15
+ *[0-9a-f]+: d53fb4af mrs x15, s3_7_c11_c4_5
+ *[0-9a-f]+: d51fb4cf msr s3_7_c11_c4_6, x15
+ *[0-9a-f]+: d53fb4cf mrs x15, s3_7_c11_c4_6
+ *[0-9a-f]+: d51fb4ef msr s3_7_c11_c4_7, x15
+ *[0-9a-f]+: d53fb4ef mrs x15, s3_7_c11_c4_7
+ *[0-9a-f]+: d51fb50f msr s3_7_c11_c5_0, x15
+ *[0-9a-f]+: d53fb50f mrs x15, s3_7_c11_c5_0
+ *[0-9a-f]+: d51fb52f msr s3_7_c11_c5_1, x15
+ *[0-9a-f]+: d53fb52f mrs x15, s3_7_c11_c5_1
+ *[0-9a-f]+: d51fb54f msr s3_7_c11_c5_2, x15
+ *[0-9a-f]+: d53fb54f mrs x15, s3_7_c11_c5_2
+ *[0-9a-f]+: d51fb56f msr s3_7_c11_c5_3, x15
+ *[0-9a-f]+: d53fb56f mrs x15, s3_7_c11_c5_3
+ *[0-9a-f]+: d51fb58f msr s3_7_c11_c5_4, x15
+ *[0-9a-f]+: d53fb58f mrs x15, s3_7_c11_c5_4
+ *[0-9a-f]+: d51fb5af msr s3_7_c11_c5_5, x15
+ *[0-9a-f]+: d53fb5af mrs x15, s3_7_c11_c5_5
+ *[0-9a-f]+: d51fb5cf msr s3_7_c11_c5_6, x15
+ *[0-9a-f]+: d53fb5cf mrs x15, s3_7_c11_c5_6
+ *[0-9a-f]+: d51fb5ef msr s3_7_c11_c5_7, x15
+ *[0-9a-f]+: d53fb5ef mrs x15, s3_7_c11_c5_7
+ *[0-9a-f]+: d51fb60f msr s3_7_c11_c6_0, x15
+ *[0-9a-f]+: d53fb60f mrs x15, s3_7_c11_c6_0
+ *[0-9a-f]+: d51fb62f msr s3_7_c11_c6_1, x15
+ *[0-9a-f]+: d53fb62f mrs x15, s3_7_c11_c6_1
+ *[0-9a-f]+: d51fb64f msr s3_7_c11_c6_2, x15
+ *[0-9a-f]+: d53fb64f mrs x15, s3_7_c11_c6_2
+ *[0-9a-f]+: d51fb66f msr s3_7_c11_c6_3, x15
+ *[0-9a-f]+: d53fb66f mrs x15, s3_7_c11_c6_3
+ *[0-9a-f]+: d51fb68f msr s3_7_c11_c6_4, x15
+ *[0-9a-f]+: d53fb68f mrs x15, s3_7_c11_c6_4
+ *[0-9a-f]+: d51fb6af msr s3_7_c11_c6_5, x15
+ *[0-9a-f]+: d53fb6af mrs x15, s3_7_c11_c6_5
+ *[0-9a-f]+: d51fb6cf msr s3_7_c11_c6_6, x15
+ *[0-9a-f]+: d53fb6cf mrs x15, s3_7_c11_c6_6
+ *[0-9a-f]+: d51fb6ef msr s3_7_c11_c6_7, x15
+ *[0-9a-f]+: d53fb6ef mrs x15, s3_7_c11_c6_7
+ *[0-9a-f]+: d51fb70f msr s3_7_c11_c7_0, x15
+ *[0-9a-f]+: d53fb70f mrs x15, s3_7_c11_c7_0
+ *[0-9a-f]+: d51fb72f msr s3_7_c11_c7_1, x15
+ *[0-9a-f]+: d53fb72f mrs x15, s3_7_c11_c7_1
+ *[0-9a-f]+: d51fb74f msr s3_7_c11_c7_2, x15
+ *[0-9a-f]+: d53fb74f mrs x15, s3_7_c11_c7_2
+ *[0-9a-f]+: d51fb76f msr s3_7_c11_c7_3, x15
+ *[0-9a-f]+: d53fb76f mrs x15, s3_7_c11_c7_3
+ *[0-9a-f]+: d51fb78f msr s3_7_c11_c7_4, x15
+ *[0-9a-f]+: d53fb78f mrs x15, s3_7_c11_c7_4
+ *[0-9a-f]+: d51fb7af msr s3_7_c11_c7_5, x15
+ *[0-9a-f]+: d53fb7af mrs x15, s3_7_c11_c7_5
+ *[0-9a-f]+: d51fb7cf msr s3_7_c11_c7_6, x15
+ *[0-9a-f]+: d53fb7cf mrs x15, s3_7_c11_c7_6
+ *[0-9a-f]+: d51fb7ef msr s3_7_c11_c7_7, x15
+ *[0-9a-f]+: d53fb7ef mrs x15, s3_7_c11_c7_7
+ *[0-9a-f]+: d51fb80f msr s3_7_c11_c8_0, x15
+ *[0-9a-f]+: d53fb80f mrs x15, s3_7_c11_c8_0
+ *[0-9a-f]+: d51fb82f msr s3_7_c11_c8_1, x15
+ *[0-9a-f]+: d53fb82f mrs x15, s3_7_c11_c8_1
+ *[0-9a-f]+: d51fb84f msr s3_7_c11_c8_2, x15
+ *[0-9a-f]+: d53fb84f mrs x15, s3_7_c11_c8_2
+ *[0-9a-f]+: d51fb86f msr s3_7_c11_c8_3, x15
+ *[0-9a-f]+: d53fb86f mrs x15, s3_7_c11_c8_3
+ *[0-9a-f]+: d51fb88f msr s3_7_c11_c8_4, x15
+ *[0-9a-f]+: d53fb88f mrs x15, s3_7_c11_c8_4
+ *[0-9a-f]+: d51fb8af msr s3_7_c11_c8_5, x15
+ *[0-9a-f]+: d53fb8af mrs x15, s3_7_c11_c8_5
+ *[0-9a-f]+: d51fb8cf msr s3_7_c11_c8_6, x15
+ *[0-9a-f]+: d53fb8cf mrs x15, s3_7_c11_c8_6
+ *[0-9a-f]+: d51fb8ef msr s3_7_c11_c8_7, x15
+ *[0-9a-f]+: d53fb8ef mrs x15, s3_7_c11_c8_7
+ *[0-9a-f]+: d51fb90f msr s3_7_c11_c9_0, x15
+ *[0-9a-f]+: d53fb90f mrs x15, s3_7_c11_c9_0
+ *[0-9a-f]+: d51fb92f msr s3_7_c11_c9_1, x15
+ *[0-9a-f]+: d53fb92f mrs x15, s3_7_c11_c9_1
+ *[0-9a-f]+: d51fb94f msr s3_7_c11_c9_2, x15
+ *[0-9a-f]+: d53fb94f mrs x15, s3_7_c11_c9_2
+ *[0-9a-f]+: d51fb96f msr s3_7_c11_c9_3, x15
+ *[0-9a-f]+: d53fb96f mrs x15, s3_7_c11_c9_3
+ *[0-9a-f]+: d51fb98f msr s3_7_c11_c9_4, x15
+ *[0-9a-f]+: d53fb98f mrs x15, s3_7_c11_c9_4
+ *[0-9a-f]+: d51fb9af msr s3_7_c11_c9_5, x15
+ *[0-9a-f]+: d53fb9af mrs x15, s3_7_c11_c9_5
+ *[0-9a-f]+: d51fb9cf msr s3_7_c11_c9_6, x15
+ *[0-9a-f]+: d53fb9cf mrs x15, s3_7_c11_c9_6
+ *[0-9a-f]+: d51fb9ef msr s3_7_c11_c9_7, x15
+ *[0-9a-f]+: d53fb9ef mrs x15, s3_7_c11_c9_7
+ *[0-9a-f]+: d51fba0f msr s3_7_c11_c10_0, x15
+ *[0-9a-f]+: d53fba0f mrs x15, s3_7_c11_c10_0
+ *[0-9a-f]+: d51fba2f msr s3_7_c11_c10_1, x15
+ *[0-9a-f]+: d53fba2f mrs x15, s3_7_c11_c10_1
+ *[0-9a-f]+: d51fba4f msr s3_7_c11_c10_2, x15
+ *[0-9a-f]+: d53fba4f mrs x15, s3_7_c11_c10_2
+ *[0-9a-f]+: d51fba6f msr s3_7_c11_c10_3, x15
+ *[0-9a-f]+: d53fba6f mrs x15, s3_7_c11_c10_3
+ *[0-9a-f]+: d51fba8f msr s3_7_c11_c10_4, x15
+ *[0-9a-f]+: d53fba8f mrs x15, s3_7_c11_c10_4
+ *[0-9a-f]+: d51fbaaf msr s3_7_c11_c10_5, x15
+ *[0-9a-f]+: d53fbaaf mrs x15, s3_7_c11_c10_5
+ *[0-9a-f]+: d51fbacf msr s3_7_c11_c10_6, x15
+ *[0-9a-f]+: d53fbacf mrs x15, s3_7_c11_c10_6
+ *[0-9a-f]+: d51fbaef msr s3_7_c11_c10_7, x15
+ *[0-9a-f]+: d53fbaef mrs x15, s3_7_c11_c10_7
+ *[0-9a-f]+: d51fbb0f msr s3_7_c11_c11_0, x15
+ *[0-9a-f]+: d53fbb0f mrs x15, s3_7_c11_c11_0
+ *[0-9a-f]+: d51fbb2f msr s3_7_c11_c11_1, x15
+ *[0-9a-f]+: d53fbb2f mrs x15, s3_7_c11_c11_1
+ *[0-9a-f]+: d51fbb4f msr s3_7_c11_c11_2, x15
+ *[0-9a-f]+: d53fbb4f mrs x15, s3_7_c11_c11_2
+ *[0-9a-f]+: d51fbb6f msr s3_7_c11_c11_3, x15
+ *[0-9a-f]+: d53fbb6f mrs x15, s3_7_c11_c11_3
+ *[0-9a-f]+: d51fbb8f msr s3_7_c11_c11_4, x15
+ *[0-9a-f]+: d53fbb8f mrs x15, s3_7_c11_c11_4
+ *[0-9a-f]+: d51fbbaf msr s3_7_c11_c11_5, x15
+ *[0-9a-f]+: d53fbbaf mrs x15, s3_7_c11_c11_5
+ *[0-9a-f]+: d51fbbcf msr s3_7_c11_c11_6, x15
+ *[0-9a-f]+: d53fbbcf mrs x15, s3_7_c11_c11_6
+ *[0-9a-f]+: d51fbbef msr s3_7_c11_c11_7, x15
+ *[0-9a-f]+: d53fbbef mrs x15, s3_7_c11_c11_7
+ *[0-9a-f]+: d51fbc0f msr s3_7_c11_c12_0, x15
+ *[0-9a-f]+: d53fbc0f mrs x15, s3_7_c11_c12_0
+ *[0-9a-f]+: d51fbc2f msr s3_7_c11_c12_1, x15
+ *[0-9a-f]+: d53fbc2f mrs x15, s3_7_c11_c12_1
+ *[0-9a-f]+: d51fbc4f msr s3_7_c11_c12_2, x15
+ *[0-9a-f]+: d53fbc4f mrs x15, s3_7_c11_c12_2
+ *[0-9a-f]+: d51fbc6f msr s3_7_c11_c12_3, x15
+ *[0-9a-f]+: d53fbc6f mrs x15, s3_7_c11_c12_3
+ *[0-9a-f]+: d51fbc8f msr s3_7_c11_c12_4, x15
+ *[0-9a-f]+: d53fbc8f mrs x15, s3_7_c11_c12_4
+ *[0-9a-f]+: d51fbcaf msr s3_7_c11_c12_5, x15
+ *[0-9a-f]+: d53fbcaf mrs x15, s3_7_c11_c12_5
+ *[0-9a-f]+: d51fbccf msr s3_7_c11_c12_6, x15
+ *[0-9a-f]+: d53fbccf mrs x15, s3_7_c11_c12_6
+ *[0-9a-f]+: d51fbcef msr s3_7_c11_c12_7, x15
+ *[0-9a-f]+: d53fbcef mrs x15, s3_7_c11_c12_7
+ *[0-9a-f]+: d51fbd0f msr s3_7_c11_c13_0, x15
+ *[0-9a-f]+: d53fbd0f mrs x15, s3_7_c11_c13_0
+ *[0-9a-f]+: d51fbd2f msr s3_7_c11_c13_1, x15
+ *[0-9a-f]+: d53fbd2f mrs x15, s3_7_c11_c13_1
+ *[0-9a-f]+: d51fbd4f msr s3_7_c11_c13_2, x15
+ *[0-9a-f]+: d53fbd4f mrs x15, s3_7_c11_c13_2
+ *[0-9a-f]+: d51fbd6f msr s3_7_c11_c13_3, x15
+ *[0-9a-f]+: d53fbd6f mrs x15, s3_7_c11_c13_3
+ *[0-9a-f]+: d51fbd8f msr s3_7_c11_c13_4, x15
+ *[0-9a-f]+: d53fbd8f mrs x15, s3_7_c11_c13_4
+ *[0-9a-f]+: d51fbdaf msr s3_7_c11_c13_5, x15
+ *[0-9a-f]+: d53fbdaf mrs x15, s3_7_c11_c13_5
+ *[0-9a-f]+: d51fbdcf msr s3_7_c11_c13_6, x15
+ *[0-9a-f]+: d53fbdcf mrs x15, s3_7_c11_c13_6
+ *[0-9a-f]+: d51fbdef msr s3_7_c11_c13_7, x15
+ *[0-9a-f]+: d53fbdef mrs x15, s3_7_c11_c13_7
+ *[0-9a-f]+: d51fbe0f msr s3_7_c11_c14_0, x15
+ *[0-9a-f]+: d53fbe0f mrs x15, s3_7_c11_c14_0
+ *[0-9a-f]+: d51fbe2f msr s3_7_c11_c14_1, x15
+ *[0-9a-f]+: d53fbe2f mrs x15, s3_7_c11_c14_1
+ *[0-9a-f]+: d51fbe4f msr s3_7_c11_c14_2, x15
+ *[0-9a-f]+: d53fbe4f mrs x15, s3_7_c11_c14_2
+ *[0-9a-f]+: d51fbe6f msr s3_7_c11_c14_3, x15
+ *[0-9a-f]+: d53fbe6f mrs x15, s3_7_c11_c14_3
+ *[0-9a-f]+: d51fbe8f msr s3_7_c11_c14_4, x15
+ *[0-9a-f]+: d53fbe8f mrs x15, s3_7_c11_c14_4
+ *[0-9a-f]+: d51fbeaf msr s3_7_c11_c14_5, x15
+ *[0-9a-f]+: d53fbeaf mrs x15, s3_7_c11_c14_5
+ *[0-9a-f]+: d51fbecf msr s3_7_c11_c14_6, x15
+ *[0-9a-f]+: d53fbecf mrs x15, s3_7_c11_c14_6
+ *[0-9a-f]+: d51fbeef msr s3_7_c11_c14_7, x15
+ *[0-9a-f]+: d53fbeef mrs x15, s3_7_c11_c14_7
+ *[0-9a-f]+: d51fbf0f msr s3_7_c11_c15_0, x15
+ *[0-9a-f]+: d53fbf0f mrs x15, s3_7_c11_c15_0
+ *[0-9a-f]+: d51fbf2f msr s3_7_c11_c15_1, x15
+ *[0-9a-f]+: d53fbf2f mrs x15, s3_7_c11_c15_1
+ *[0-9a-f]+: d51fbf4f msr s3_7_c11_c15_2, x15
+ *[0-9a-f]+: d53fbf4f mrs x15, s3_7_c11_c15_2
+ *[0-9a-f]+: d51fbf6f msr s3_7_c11_c15_3, x15
+ *[0-9a-f]+: d53fbf6f mrs x15, s3_7_c11_c15_3
+ *[0-9a-f]+: d51fbf8f msr s3_7_c11_c15_4, x15
+ *[0-9a-f]+: d53fbf8f mrs x15, s3_7_c11_c15_4
+ *[0-9a-f]+: d51fbfaf msr s3_7_c11_c15_5, x15
+ *[0-9a-f]+: d53fbfaf mrs x15, s3_7_c11_c15_5
+ *[0-9a-f]+: d51fbfcf msr s3_7_c11_c15_6, x15
+ *[0-9a-f]+: d53fbfcf mrs x15, s3_7_c11_c15_6
+ *[0-9a-f]+: d51fbfef msr s3_7_c11_c15_7, x15
+ *[0-9a-f]+: d53fbfef mrs x15, s3_7_c11_c15_7
+ *[0-9a-f]+: d51ff00f msr s3_7_c15_c0_0, x15
+ *[0-9a-f]+: d53ff00f mrs x15, s3_7_c15_c0_0
+ *[0-9a-f]+: d51ff02f msr s3_7_c15_c0_1, x15
+ *[0-9a-f]+: d53ff02f mrs x15, s3_7_c15_c0_1
+ *[0-9a-f]+: d51ff04f msr s3_7_c15_c0_2, x15
+ *[0-9a-f]+: d53ff04f mrs x15, s3_7_c15_c0_2
+ *[0-9a-f]+: d51ff06f msr s3_7_c15_c0_3, x15
+ *[0-9a-f]+: d53ff06f mrs x15, s3_7_c15_c0_3
+ *[0-9a-f]+: d51ff08f msr s3_7_c15_c0_4, x15
+ *[0-9a-f]+: d53ff08f mrs x15, s3_7_c15_c0_4
+ *[0-9a-f]+: d51ff0af msr s3_7_c15_c0_5, x15
+ *[0-9a-f]+: d53ff0af mrs x15, s3_7_c15_c0_5
+ *[0-9a-f]+: d51ff0cf msr s3_7_c15_c0_6, x15
+ *[0-9a-f]+: d53ff0cf mrs x15, s3_7_c15_c0_6
+ *[0-9a-f]+: d51ff0ef msr s3_7_c15_c0_7, x15
+ *[0-9a-f]+: d53ff0ef mrs x15, s3_7_c15_c0_7
+ *[0-9a-f]+: d51ff10f msr s3_7_c15_c1_0, x15
+ *[0-9a-f]+: d53ff10f mrs x15, s3_7_c15_c1_0
+ *[0-9a-f]+: d51ff12f msr s3_7_c15_c1_1, x15
+ *[0-9a-f]+: d53ff12f mrs x15, s3_7_c15_c1_1
+ *[0-9a-f]+: d51ff14f msr s3_7_c15_c1_2, x15
+ *[0-9a-f]+: d53ff14f mrs x15, s3_7_c15_c1_2
+ *[0-9a-f]+: d51ff16f msr s3_7_c15_c1_3, x15
+ *[0-9a-f]+: d53ff16f mrs x15, s3_7_c15_c1_3
+ *[0-9a-f]+: d51ff18f msr s3_7_c15_c1_4, x15
+ *[0-9a-f]+: d53ff18f mrs x15, s3_7_c15_c1_4
+ *[0-9a-f]+: d51ff1af msr s3_7_c15_c1_5, x15
+ *[0-9a-f]+: d53ff1af mrs x15, s3_7_c15_c1_5
+ *[0-9a-f]+: d51ff1cf msr s3_7_c15_c1_6, x15
+ *[0-9a-f]+: d53ff1cf mrs x15, s3_7_c15_c1_6
+ *[0-9a-f]+: d51ff1ef msr s3_7_c15_c1_7, x15
+ *[0-9a-f]+: d53ff1ef mrs x15, s3_7_c15_c1_7
+ *[0-9a-f]+: d51ff20f msr s3_7_c15_c2_0, x15
+ *[0-9a-f]+: d53ff20f mrs x15, s3_7_c15_c2_0
+ *[0-9a-f]+: d51ff22f msr s3_7_c15_c2_1, x15
+ *[0-9a-f]+: d53ff22f mrs x15, s3_7_c15_c2_1
+ *[0-9a-f]+: d51ff24f msr s3_7_c15_c2_2, x15
+ *[0-9a-f]+: d53ff24f mrs x15, s3_7_c15_c2_2
+ *[0-9a-f]+: d51ff26f msr s3_7_c15_c2_3, x15
+ *[0-9a-f]+: d53ff26f mrs x15, s3_7_c15_c2_3
+ *[0-9a-f]+: d51ff28f msr s3_7_c15_c2_4, x15
+ *[0-9a-f]+: d53ff28f mrs x15, s3_7_c15_c2_4
+ *[0-9a-f]+: d51ff2af msr s3_7_c15_c2_5, x15
+ *[0-9a-f]+: d53ff2af mrs x15, s3_7_c15_c2_5
+ *[0-9a-f]+: d51ff2cf msr s3_7_c15_c2_6, x15
+ *[0-9a-f]+: d53ff2cf mrs x15, s3_7_c15_c2_6
+ *[0-9a-f]+: d51ff2ef msr s3_7_c15_c2_7, x15
+ *[0-9a-f]+: d53ff2ef mrs x15, s3_7_c15_c2_7
+ *[0-9a-f]+: d51ff30f msr s3_7_c15_c3_0, x15
+ *[0-9a-f]+: d53ff30f mrs x15, s3_7_c15_c3_0
+ *[0-9a-f]+: d51ff32f msr s3_7_c15_c3_1, x15
+ *[0-9a-f]+: d53ff32f mrs x15, s3_7_c15_c3_1
+ *[0-9a-f]+: d51ff34f msr s3_7_c15_c3_2, x15
+ *[0-9a-f]+: d53ff34f mrs x15, s3_7_c15_c3_2
+ *[0-9a-f]+: d51ff36f msr s3_7_c15_c3_3, x15
+ *[0-9a-f]+: d53ff36f mrs x15, s3_7_c15_c3_3
+ *[0-9a-f]+: d51ff38f msr s3_7_c15_c3_4, x15
+ *[0-9a-f]+: d53ff38f mrs x15, s3_7_c15_c3_4
+ *[0-9a-f]+: d51ff3af msr s3_7_c15_c3_5, x15
+ *[0-9a-f]+: d53ff3af mrs x15, s3_7_c15_c3_5
+ *[0-9a-f]+: d51ff3cf msr s3_7_c15_c3_6, x15
+ *[0-9a-f]+: d53ff3cf mrs x15, s3_7_c15_c3_6
+ *[0-9a-f]+: d51ff3ef msr s3_7_c15_c3_7, x15
+ *[0-9a-f]+: d53ff3ef mrs x15, s3_7_c15_c3_7
+ *[0-9a-f]+: d51ff40f msr s3_7_c15_c4_0, x15
+ *[0-9a-f]+: d53ff40f mrs x15, s3_7_c15_c4_0
+ *[0-9a-f]+: d51ff42f msr s3_7_c15_c4_1, x15
+ *[0-9a-f]+: d53ff42f mrs x15, s3_7_c15_c4_1
+ *[0-9a-f]+: d51ff44f msr s3_7_c15_c4_2, x15
+ *[0-9a-f]+: d53ff44f mrs x15, s3_7_c15_c4_2
+ *[0-9a-f]+: d51ff46f msr s3_7_c15_c4_3, x15
+ *[0-9a-f]+: d53ff46f mrs x15, s3_7_c15_c4_3
+ *[0-9a-f]+: d51ff48f msr s3_7_c15_c4_4, x15
+ *[0-9a-f]+: d53ff48f mrs x15, s3_7_c15_c4_4
+ *[0-9a-f]+: d51ff4af msr s3_7_c15_c4_5, x15
+ *[0-9a-f]+: d53ff4af mrs x15, s3_7_c15_c4_5
+ *[0-9a-f]+: d51ff4cf msr s3_7_c15_c4_6, x15
+ *[0-9a-f]+: d53ff4cf mrs x15, s3_7_c15_c4_6
+ *[0-9a-f]+: d51ff4ef msr s3_7_c15_c4_7, x15
+ *[0-9a-f]+: d53ff4ef mrs x15, s3_7_c15_c4_7
+ *[0-9a-f]+: d51ff50f msr s3_7_c15_c5_0, x15
+ *[0-9a-f]+: d53ff50f mrs x15, s3_7_c15_c5_0
+ *[0-9a-f]+: d51ff52f msr s3_7_c15_c5_1, x15
+ *[0-9a-f]+: d53ff52f mrs x15, s3_7_c15_c5_1
+ *[0-9a-f]+: d51ff54f msr s3_7_c15_c5_2, x15
+ *[0-9a-f]+: d53ff54f mrs x15, s3_7_c15_c5_2
+ *[0-9a-f]+: d51ff56f msr s3_7_c15_c5_3, x15
+ *[0-9a-f]+: d53ff56f mrs x15, s3_7_c15_c5_3
+ *[0-9a-f]+: d51ff58f msr s3_7_c15_c5_4, x15
+ *[0-9a-f]+: d53ff58f mrs x15, s3_7_c15_c5_4
+ *[0-9a-f]+: d51ff5af msr s3_7_c15_c5_5, x15
+ *[0-9a-f]+: d53ff5af mrs x15, s3_7_c15_c5_5
+ *[0-9a-f]+: d51ff5cf msr s3_7_c15_c5_6, x15
+ *[0-9a-f]+: d53ff5cf mrs x15, s3_7_c15_c5_6
+ *[0-9a-f]+: d51ff5ef msr s3_7_c15_c5_7, x15
+ *[0-9a-f]+: d53ff5ef mrs x15, s3_7_c15_c5_7
+ *[0-9a-f]+: d51ff60f msr s3_7_c15_c6_0, x15
+ *[0-9a-f]+: d53ff60f mrs x15, s3_7_c15_c6_0
+ *[0-9a-f]+: d51ff62f msr s3_7_c15_c6_1, x15
+ *[0-9a-f]+: d53ff62f mrs x15, s3_7_c15_c6_1
+ *[0-9a-f]+: d51ff64f msr s3_7_c15_c6_2, x15
+ *[0-9a-f]+: d53ff64f mrs x15, s3_7_c15_c6_2
+ *[0-9a-f]+: d51ff66f msr s3_7_c15_c6_3, x15
+ *[0-9a-f]+: d53ff66f mrs x15, s3_7_c15_c6_3
+ *[0-9a-f]+: d51ff68f msr s3_7_c15_c6_4, x15
+ *[0-9a-f]+: d53ff68f mrs x15, s3_7_c15_c6_4
+ *[0-9a-f]+: d51ff6af msr s3_7_c15_c6_5, x15
+ *[0-9a-f]+: d53ff6af mrs x15, s3_7_c15_c6_5
+ *[0-9a-f]+: d51ff6cf msr s3_7_c15_c6_6, x15
+ *[0-9a-f]+: d53ff6cf mrs x15, s3_7_c15_c6_6
+ *[0-9a-f]+: d51ff6ef msr s3_7_c15_c6_7, x15
+ *[0-9a-f]+: d53ff6ef mrs x15, s3_7_c15_c6_7
+ *[0-9a-f]+: d51ff70f msr s3_7_c15_c7_0, x15
+ *[0-9a-f]+: d53ff70f mrs x15, s3_7_c15_c7_0
+ *[0-9a-f]+: d51ff72f msr s3_7_c15_c7_1, x15
+ *[0-9a-f]+: d53ff72f mrs x15, s3_7_c15_c7_1
+ *[0-9a-f]+: d51ff74f msr s3_7_c15_c7_2, x15
+ *[0-9a-f]+: d53ff74f mrs x15, s3_7_c15_c7_2
+ *[0-9a-f]+: d51ff76f msr s3_7_c15_c7_3, x15
+ *[0-9a-f]+: d53ff76f mrs x15, s3_7_c15_c7_3
+ *[0-9a-f]+: d51ff78f msr s3_7_c15_c7_4, x15
+ *[0-9a-f]+: d53ff78f mrs x15, s3_7_c15_c7_4
+ *[0-9a-f]+: d51ff7af msr s3_7_c15_c7_5, x15
+ *[0-9a-f]+: d53ff7af mrs x15, s3_7_c15_c7_5
+ *[0-9a-f]+: d51ff7cf msr s3_7_c15_c7_6, x15
+ *[0-9a-f]+: d53ff7cf mrs x15, s3_7_c15_c7_6
+ *[0-9a-f]+: d51ff7ef msr s3_7_c15_c7_7, x15
+ *[0-9a-f]+: d53ff7ef mrs x15, s3_7_c15_c7_7
+ *[0-9a-f]+: d51ff80f msr s3_7_c15_c8_0, x15
+ *[0-9a-f]+: d53ff80f mrs x15, s3_7_c15_c8_0
+ *[0-9a-f]+: d51ff82f msr s3_7_c15_c8_1, x15
+ *[0-9a-f]+: d53ff82f mrs x15, s3_7_c15_c8_1
+ *[0-9a-f]+: d51ff84f msr s3_7_c15_c8_2, x15
+ *[0-9a-f]+: d53ff84f mrs x15, s3_7_c15_c8_2
+ *[0-9a-f]+: d51ff86f msr s3_7_c15_c8_3, x15
+ *[0-9a-f]+: d53ff86f mrs x15, s3_7_c15_c8_3
+ *[0-9a-f]+: d51ff88f msr s3_7_c15_c8_4, x15
+ *[0-9a-f]+: d53ff88f mrs x15, s3_7_c15_c8_4
+ *[0-9a-f]+: d51ff8af msr s3_7_c15_c8_5, x15
+ *[0-9a-f]+: d53ff8af mrs x15, s3_7_c15_c8_5
+ *[0-9a-f]+: d51ff8cf msr s3_7_c15_c8_6, x15
+ *[0-9a-f]+: d53ff8cf mrs x15, s3_7_c15_c8_6
+ *[0-9a-f]+: d51ff8ef msr s3_7_c15_c8_7, x15
+ *[0-9a-f]+: d53ff8ef mrs x15, s3_7_c15_c8_7
+ *[0-9a-f]+: d51ff90f msr s3_7_c15_c9_0, x15
+ *[0-9a-f]+: d53ff90f mrs x15, s3_7_c15_c9_0
+ *[0-9a-f]+: d51ff92f msr s3_7_c15_c9_1, x15
+ *[0-9a-f]+: d53ff92f mrs x15, s3_7_c15_c9_1
+ *[0-9a-f]+: d51ff94f msr s3_7_c15_c9_2, x15
+ *[0-9a-f]+: d53ff94f mrs x15, s3_7_c15_c9_2
+ *[0-9a-f]+: d51ff96f msr s3_7_c15_c9_3, x15
+ *[0-9a-f]+: d53ff96f mrs x15, s3_7_c15_c9_3
+ *[0-9a-f]+: d51ff98f msr s3_7_c15_c9_4, x15
+ *[0-9a-f]+: d53ff98f mrs x15, s3_7_c15_c9_4
+ *[0-9a-f]+: d51ff9af msr s3_7_c15_c9_5, x15
+ *[0-9a-f]+: d53ff9af mrs x15, s3_7_c15_c9_5
+ *[0-9a-f]+: d51ff9cf msr s3_7_c15_c9_6, x15
+ *[0-9a-f]+: d53ff9cf mrs x15, s3_7_c15_c9_6
+ *[0-9a-f]+: d51ff9ef msr s3_7_c15_c9_7, x15
+ *[0-9a-f]+: d53ff9ef mrs x15, s3_7_c15_c9_7
+ *[0-9a-f]+: d51ffa0f msr s3_7_c15_c10_0, x15
+ *[0-9a-f]+: d53ffa0f mrs x15, s3_7_c15_c10_0
+ *[0-9a-f]+: d51ffa2f msr s3_7_c15_c10_1, x15
+ *[0-9a-f]+: d53ffa2f mrs x15, s3_7_c15_c10_1
+ *[0-9a-f]+: d51ffa4f msr s3_7_c15_c10_2, x15
+ *[0-9a-f]+: d53ffa4f mrs x15, s3_7_c15_c10_2
+ *[0-9a-f]+: d51ffa6f msr s3_7_c15_c10_3, x15
+ *[0-9a-f]+: d53ffa6f mrs x15, s3_7_c15_c10_3
+ *[0-9a-f]+: d51ffa8f msr s3_7_c15_c10_4, x15
+ *[0-9a-f]+: d53ffa8f mrs x15, s3_7_c15_c10_4
+ *[0-9a-f]+: d51ffaaf msr s3_7_c15_c10_5, x15
+ *[0-9a-f]+: d53ffaaf mrs x15, s3_7_c15_c10_5
+ *[0-9a-f]+: d51ffacf msr s3_7_c15_c10_6, x15
+ *[0-9a-f]+: d53ffacf mrs x15, s3_7_c15_c10_6
+ *[0-9a-f]+: d51ffaef msr s3_7_c15_c10_7, x15
+ *[0-9a-f]+: d53ffaef mrs x15, s3_7_c15_c10_7
+ *[0-9a-f]+: d51ffb0f msr s3_7_c15_c11_0, x15
+ *[0-9a-f]+: d53ffb0f mrs x15, s3_7_c15_c11_0
+ *[0-9a-f]+: d51ffb2f msr s3_7_c15_c11_1, x15
+ *[0-9a-f]+: d53ffb2f mrs x15, s3_7_c15_c11_1
+ *[0-9a-f]+: d51ffb4f msr s3_7_c15_c11_2, x15
+ *[0-9a-f]+: d53ffb4f mrs x15, s3_7_c15_c11_2
+ *[0-9a-f]+: d51ffb6f msr s3_7_c15_c11_3, x15
+ *[0-9a-f]+: d53ffb6f mrs x15, s3_7_c15_c11_3
+ *[0-9a-f]+: d51ffb8f msr s3_7_c15_c11_4, x15
+ *[0-9a-f]+: d53ffb8f mrs x15, s3_7_c15_c11_4
+ *[0-9a-f]+: d51ffbaf msr s3_7_c15_c11_5, x15
+ *[0-9a-f]+: d53ffbaf mrs x15, s3_7_c15_c11_5
+ *[0-9a-f]+: d51ffbcf msr s3_7_c15_c11_6, x15
+ *[0-9a-f]+: d53ffbcf mrs x15, s3_7_c15_c11_6
+ *[0-9a-f]+: d51ffbef msr s3_7_c15_c11_7, x15
+ *[0-9a-f]+: d53ffbef mrs x15, s3_7_c15_c11_7
+ *[0-9a-f]+: d51ffc0f msr s3_7_c15_c12_0, x15
+ *[0-9a-f]+: d53ffc0f mrs x15, s3_7_c15_c12_0
+ *[0-9a-f]+: d51ffc2f msr s3_7_c15_c12_1, x15
+ *[0-9a-f]+: d53ffc2f mrs x15, s3_7_c15_c12_1
+ *[0-9a-f]+: d51ffc4f msr s3_7_c15_c12_2, x15
+ *[0-9a-f]+: d53ffc4f mrs x15, s3_7_c15_c12_2
+ *[0-9a-f]+: d51ffc6f msr s3_7_c15_c12_3, x15
+ *[0-9a-f]+: d53ffc6f mrs x15, s3_7_c15_c12_3
+ *[0-9a-f]+: d51ffc8f msr s3_7_c15_c12_4, x15
+ *[0-9a-f]+: d53ffc8f mrs x15, s3_7_c15_c12_4
+ *[0-9a-f]+: d51ffcaf msr s3_7_c15_c12_5, x15
+ *[0-9a-f]+: d53ffcaf mrs x15, s3_7_c15_c12_5
+ *[0-9a-f]+: d51ffccf msr s3_7_c15_c12_6, x15
+ *[0-9a-f]+: d53ffccf mrs x15, s3_7_c15_c12_6
+ *[0-9a-f]+: d51ffcef msr s3_7_c15_c12_7, x15
+ *[0-9a-f]+: d53ffcef mrs x15, s3_7_c15_c12_7
+ *[0-9a-f]+: d51ffd0f msr s3_7_c15_c13_0, x15
+ *[0-9a-f]+: d53ffd0f mrs x15, s3_7_c15_c13_0
+ *[0-9a-f]+: d51ffd2f msr s3_7_c15_c13_1, x15
+ *[0-9a-f]+: d53ffd2f mrs x15, s3_7_c15_c13_1
+ *[0-9a-f]+: d51ffd4f msr s3_7_c15_c13_2, x15
+ *[0-9a-f]+: d53ffd4f mrs x15, s3_7_c15_c13_2
+ *[0-9a-f]+: d51ffd6f msr s3_7_c15_c13_3, x15
+ *[0-9a-f]+: d53ffd6f mrs x15, s3_7_c15_c13_3
+ *[0-9a-f]+: d51ffd8f msr s3_7_c15_c13_4, x15
+ *[0-9a-f]+: d53ffd8f mrs x15, s3_7_c15_c13_4
+ *[0-9a-f]+: d51ffdaf msr s3_7_c15_c13_5, x15
+ *[0-9a-f]+: d53ffdaf mrs x15, s3_7_c15_c13_5
+ *[0-9a-f]+: d51ffdcf msr s3_7_c15_c13_6, x15
+ *[0-9a-f]+: d53ffdcf mrs x15, s3_7_c15_c13_6
+ *[0-9a-f]+: d51ffdef msr s3_7_c15_c13_7, x15
+ *[0-9a-f]+: d53ffdef mrs x15, s3_7_c15_c13_7
+ *[0-9a-f]+: d51ffe0f msr s3_7_c15_c14_0, x15
+ *[0-9a-f]+: d53ffe0f mrs x15, s3_7_c15_c14_0
+ *[0-9a-f]+: d51ffe2f msr s3_7_c15_c14_1, x15
+ *[0-9a-f]+: d53ffe2f mrs x15, s3_7_c15_c14_1
+ *[0-9a-f]+: d51ffe4f msr s3_7_c15_c14_2, x15
+ *[0-9a-f]+: d53ffe4f mrs x15, s3_7_c15_c14_2
+ *[0-9a-f]+: d51ffe6f msr s3_7_c15_c14_3, x15
+ *[0-9a-f]+: d53ffe6f mrs x15, s3_7_c15_c14_3
+ *[0-9a-f]+: d51ffe8f msr s3_7_c15_c14_4, x15
+ *[0-9a-f]+: d53ffe8f mrs x15, s3_7_c15_c14_4
+ *[0-9a-f]+: d51ffeaf msr s3_7_c15_c14_5, x15
+ *[0-9a-f]+: d53ffeaf mrs x15, s3_7_c15_c14_5
+ *[0-9a-f]+: d51ffecf msr s3_7_c15_c14_6, x15
+ *[0-9a-f]+: d53ffecf mrs x15, s3_7_c15_c14_6
+ *[0-9a-f]+: d51ffeef msr s3_7_c15_c14_7, x15
+ *[0-9a-f]+: d53ffeef mrs x15, s3_7_c15_c14_7
+ *[0-9a-f]+: d51fff0f msr s3_7_c15_c15_0, x15
+ *[0-9a-f]+: d53fff0f mrs x15, s3_7_c15_c15_0
+ *[0-9a-f]+: d51fff2f msr s3_7_c15_c15_1, x15
+ *[0-9a-f]+: d53fff2f mrs x15, s3_7_c15_c15_1
+ *[0-9a-f]+: d51fff4f msr s3_7_c15_c15_2, x15
+ *[0-9a-f]+: d53fff4f mrs x15, s3_7_c15_c15_2
+ *[0-9a-f]+: d51fff6f msr s3_7_c15_c15_3, x15
+ *[0-9a-f]+: d53fff6f mrs x15, s3_7_c15_c15_3
+ *[0-9a-f]+: d51fff8f msr s3_7_c15_c15_4, x15
+ *[0-9a-f]+: d53fff8f mrs x15, s3_7_c15_c15_4
+ *[0-9a-f]+: d51fffaf msr s3_7_c15_c15_5, x15
+ *[0-9a-f]+: d53fffaf mrs x15, s3_7_c15_c15_5
+ *[0-9a-f]+: d51fffcf msr s3_7_c15_c15_6, x15
+ *[0-9a-f]+: d53fffcf mrs x15, s3_7_c15_c15_6
+ *[0-9a-f]+: d51fffef msr s3_7_c15_c15_7, x15
+ *[0-9a-f]+: d53fffef mrs x15, s3_7_c15_c15_7
+ *[0-9a-f]+: d513040f msr dbgdtr_el0, x15
+ *[0-9a-f]+: d533040f mrs x15, dbgdtr_el0
+ *[0-9a-f]+: d533050f mrs x15, dbgdtrrx_el0
+ *[0-9a-f]+: d518c04f msr rmr_el1, x15
+ *[0-9a-f]+: d538c04f mrs x15, rmr_el1
+ *[0-9a-f]+: d51cc04f msr rmr_el2, x15
+ *[0-9a-f]+: d53cc04f mrs x15, rmr_el2
+ *[0-9a-f]+: d51ec04f msr rmr_el3, x15
+ *[0-9a-f]+: d53ec04f mrs x15, rmr_el3
+ *[0-9a-f]+: d518400f msr spsr_el1, x15
+ *[0-9a-f]+: d538400f mrs x15, spsr_el1
+ *[0-9a-f]+: d51c400f msr spsr_el2, x15
+ *[0-9a-f]+: d53c400f mrs x15, spsr_el2
+ *[0-9a-f]+: d51e400f msr spsr_el3, x15
+ *[0-9a-f]+: d53e400f mrs x15, spsr_el3
+ *[0-9a-f]+: d500000f msr s0_0_c0_c0_0, x15
+ *[0-9a-f]+: d520000f mrs x15, s0_0_c0_c0_0
+ *[0-9a-f]+: d50ffffb sys #7, C15, C15, #7, x27
+ *[0-9a-f]+: d52ffffb sysl x27, #7, C15, C15, #7
+ *[0-9a-f]+: d514680e msr s2_4_c6_c8_0, x14
+ *[0-9a-f]+: d534680e mrs x14, s2_4_c6_c8_0
+ *[0-9a-f]+: d50ae444 sys #2, C14, C4, #2, x4
+ *[0-9a-f]+: d52ae444 sysl x4, #2, C14, C4, #2
+ *[0-9a-f]+: d501d167 msr s0_1_c13_c1_3, x7
+ *[0-9a-f]+: d521d167 mrs x7, s0_1_c13_c1_3
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-1.s b/gas/testsuite/gas/aarch64/sysreg/sysreg-1.s
index b906036..d28efa5 100644
--- a/gas/testsuite/gas/aarch64/sysreg/sysreg-1.s
+++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-1.s
@@ -38,9 +38,6 @@
rw_sys_reg sys_reg=fpexc32_el2 xreg=x7
- rw_sys_reg sys_reg=teecr32_el1 xreg=x7
- rw_sys_reg sys_reg=teehbr32_el1 xreg=x7
-
rw_sys_reg sys_reg=cntp_tval_el0 xreg=x7
rw_sys_reg sys_reg=cntp_ctl_el0 xreg=x7
rw_sys_reg sys_reg=cntp_cval_el0 xreg=x7
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-11.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-11.d
new file mode 100644
index 0000000..8bfccf8
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-11.d
@@ -0,0 +1,27 @@
+#as: -march=armv9.5-a -I$srcdir/$subdir
+#objdump: -dr
+
+.*: file format .*
+
+Disassembly of section \.text:
+
+0+ <.*>:
+.*: d51d1020 msr actlr_el12, x0
+.*: d53d1020 mrs x0, actlr_el12
+.*: d51e11a0 msr fgwte3_el3, x0
+.*: d53e11a0 mrs x0, fgwte3_el3
+.*: d51c2380 msr hacdbsbr_el2, x0
+.*: d53c2380 mrs x0, hacdbsbr_el2
+.*: d51c23a0 msr hacdbscons_el2, x0
+.*: d53c23a0 mrs x0, hacdbscons_el2
+.*: d51c2340 msr hdbssbr_el2, x0
+.*: d53c2340 mrs x0, hdbssbr_el2
+.*: d51c2360 msr hdbssprod_el2, x0
+.*: d53c2360 mrs x0, hdbssprod_el2
+.*: d5184320 msr pm, x0
+.*: d5384320 mrs x0, pm
+.*: d5159d60 msr spmaccessr_el12, x0
+.*: d5359d60 mrs x0, spmaccessr_el12
+.*: d5189ba0 msr trbmpam_el1, x0
+.*: d5389ba0 mrs x0, trbmpam_el1
+
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-11.s b/gas/testsuite/gas/aarch64/sysreg/sysreg-11.s
new file mode 100644
index 0000000..5213b6b
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-11.s
@@ -0,0 +1,12 @@
+.include "sysreg-test-utils.inc"
+
+ rw_sys_reg actlr_el12
+ rw_sys_reg fgwte3_el3
+ rw_sys_reg hacdbsbr_el2
+ rw_sys_reg hacdbscons_el2
+ rw_sys_reg hdbssbr_el2
+ rw_sys_reg hdbssprod_el2
+ rw_sys_reg pm
+ rw_sys_reg spmaccessr_el12
+ rw_sys_reg trbmpam_el1
+
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-8.s b/gas/testsuite/gas/aarch64/sysreg/sysreg-8.s
index 0cf1178..8dfb2dc 100644
--- a/gas/testsuite/gas/aarch64/sysreg/sysreg-8.s
+++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-8.s
@@ -172,7 +172,7 @@
rw_sys_reg amevcntvoff115_el2
rw_sys_reg cntpoff_el2
- .arch armv8.7-a
+ .arch armv8.7-a+profile
rw_sys_reg pmsnevfr_el1
rw_sys_reg hcrx_el2
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.d
index 35267f5..e88d74e 100644
--- a/gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.d
+++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.d
@@ -1,5 +1,5 @@
#objdump: -dr -M notes
-#as: -menable-sysreg-checking -march=armv8-a
+#as: -march=armv8-a
#warning_output: sysreg-diagnostic.l
.*: file format .*
@@ -14,3 +14,4 @@ Disassembly of section \.text:
.*: d5180003 msr midr_el1, x3 // note: writing to a read-only register
.*: d5180640 msr id_aa64isar2_el1, x0 // note: writing to a read-only register
.*: d5180660 msr id_aa64isar3_el1, x0 // note: writing to a read-only register
+.*: d5339c80 mrs x0, spmzr_el0 // note: reading from a write-only register
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.l b/gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.l
index df3d3e5..384f073 100644
--- a/gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.l
+++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.l
@@ -4,3 +4,4 @@
.*:6: Warning: specified register cannot be written to at operand 1 -- `msr midr_el1,x3'
.*:7: Warning: specified register cannot be written to at operand 1 -- `msr id_aa64isar2_el1,x0'
.*:8: Warning: specified register cannot be written to at operand 1 -- `msr id_aa64isar3_el1,x0'
+.*: Warning: specified register cannot be read from at operand 2 -- `mrs x0,spmzr_el0'
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.s b/gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.s
index d8e48c6..6073095 100644
--- a/gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.s
+++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-diagnostic.s
@@ -6,3 +6,4 @@
msr midr_el1, x3
msr id_aa64isar2_el1, x0
msr id_aa64isar3_el1, x0
+ mrs x0, spmzr_el0
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions-bad.l b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions-bad.l
index f70dba9..fce2307 100644
--- a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions-bad.l
+++ b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions-bad.l
@@ -1,10 +1,6 @@
.*: Assembler messages:
.*: Error: selected processor does not support system register name 'mpuir_el1'
.*: Info: macro invoked from here
-.*: Error: selected processor does not support system register name 'afsr0_el12'
-.*: Info: macro invoked from here
-.*: Error: selected processor does not support system register name 'afsr0_el12'
-.*: Info: macro invoked from here
.*: Error: selected processor does not support PSTATE field name 'uao'
.*: Info: macro invoked from here
.*: Error: selected processor does not support system register name 'uao'
@@ -21,12 +17,6 @@
.*: Info: macro invoked from here
.*: Error: selected processor does not support system register name 'vsttbr_el2'
.*: Info: macro invoked from here
-.*: Error: selected processor does not support system register name 'scxtnum_el0'
-.*: Info: macro invoked from here
-.*: Error: selected processor does not support system register name 'scxtnum_el0'
-.*: Info: macro invoked from here
-.*: Error: selected processor does not support system register name 'id_pfr2_el1'
-.*: Info: macro invoked from here
.*: Error: selected processor does not support system register name 'amcg1idr_el0'
.*: Info: macro invoked from here
.*: Error: selected processor does not support system register name 'hcrx_el2'
@@ -83,18 +73,10 @@
.*: Info: macro invoked from here
.*: Error: selected processor does not support system register name 's2por_el1'
.*: Info: macro invoked from here
-.*: Error: selected processor does not support system register name 'sctlr2_el1'
-.*: Info: macro invoked from here
-.*: Error: selected processor does not support system register name 'sctlr2_el1'
-.*: Info: macro invoked from here
.*: Error: selected processor does not support system register name 'spmaccessr_el1'
.*: Info: macro invoked from here
.*: Error: selected processor does not support system register name 'spmaccessr_el1'
.*: Info: macro invoked from here
-.*: Error: selected processor does not support system register name 'tcr2_el1'
-.*: Info: macro invoked from here
-.*: Error: selected processor does not support system register name 'tcr2_el1'
-.*: Info: macro invoked from here
.*: Error: selected processor does not support system register name 'amair2_el1'
.*: Info: macro invoked from here
.*: Error: selected processor does not support system register name 'amair2_el1'
@@ -107,8 +89,6 @@
.*: Info: macro invoked from here
.*: Error: selected processor does not support system register name 'spmzr_el0'
.*: Info: macro invoked from here
-.*: Error: selected processor does not support system register name 'spmzr_el0'
-.*: Info: macro invoked from here
.*: Error: selected processor does not support system register name 'mdstepop_el1'
.*: Info: macro invoked from here
.*: Error: selected processor does not support system register name 'mdstepop_el1'
@@ -127,8 +107,6 @@
.*: Info: macro invoked from here
.*: Error: selected processor does not support system register name 'fpmr'
.*: Info: macro invoked from here
-.*: Error: selected processor does not support system register name 'id_aa64zfr0_el1'
-.*: Info: macro invoked from here
.*: Error: selected processor does not support system register name 'lorc_el1'
.*: Info: macro invoked from here
.*: Error: selected processor does not support system register name 'lorc_el1'
@@ -139,8 +117,6 @@
.*: Info: macro invoked from here
.*: Error: selected processor does not support system register name 'gcspr_el0'
.*: Info: macro invoked from here
-.*: Error: selected processor does not support system register name 'id_aa64smfr0_el1'
-.*: Info: macro invoked from here
.*: Error: selected processor does not support system register name 'trcitecr_el1'
.*: Info: macro invoked from here
.*: Error: selected processor does not support system register name 'trcitecr_el1'
@@ -167,7 +143,3 @@
.*: Info: macro invoked from here
.*: Error: selected processor does not support system register name 'rcwmask_el1'
.*: Info: macro invoked from here
-.*: Error: selected processor does not support system register name 'ttbr1_el2'
-.*: Info: macro invoked from here
-.*: Error: selected processor does not support system register name 'ttbr1_el2'
-.*: Info: macro invoked from here
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.d b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.d
index f311c23..ac5d172 100644
--- a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.d
+++ b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.d
@@ -59,7 +59,6 @@
.*: d51ec120 msr vdisr_el3, x0
.*: d53ec120 mrs x0, vdisr_el3
.*: d5139c80 msr spmzr_el0, x0
-.*: d5339c80 mrs x0, spmzr_el0
.*: d5100540 msr mdstepop_el1, x0
.*: d5300540 mrs x0, mdstepop_el1
.*: d51e21a0 msr gpcbw_el3, x0
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.s b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.s
index f5c1138..89e7388 100644
--- a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.s
+++ b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_no_restrictions.s
@@ -30,7 +30,7 @@
rw_sys_reg pmccntsvr_el1 w=0 // PMUv3_SS
rw_sys_reg vdisr_el3 // E3DES
- rw_sys_reg spmzr_el0 // SPMU2
+ rw_sys_reg spmzr_el0 r=0 // SPMU2
rw_sys_reg mdstepop_el1 // STEP2
rw_sys_reg gpcbw_el3 // V9_5A
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.d b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.d
index bca119d..38cc6dd 100644
--- a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.d
+++ b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.d
@@ -59,7 +59,6 @@
.*: d51ec120 msr vdisr_el3, x0
.*: d53ec120 mrs x0, vdisr_el3
.*: d5139c80 msr spmzr_el0, x0
-.*: d5339c80 mrs x0, spmzr_el0
.*: d5100540 msr mdstepop_el1, x0
.*: d5300540 mrs x0, mdstepop_el1
.*: d51e21a0 msr gpcbw_el3, x0
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.s b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.s
index 0cdb822..3ad53e9 100644
--- a/gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.s
+++ b/gas/testsuite/gas/aarch64/sysreg/sysregs_with_restrictions.s
@@ -29,7 +29,7 @@
.arch armv8.8-a
rw_sys_reg allint // V8_8A
- .arch armv8.9-a
+ .arch armv8.9-a+profile
rw_sys_reg pfar_el1 // PFAR
rw_sys_reg pir_el1 // S1PIE
rw_sys_reg pmecr_el1 // SEBEP
@@ -49,7 +49,7 @@
.arch armv9.5-a
rw_sys_reg vdisr_el3 // E3DES
- rw_sys_reg spmzr_el0 // SPMU2
+ rw_sys_reg spmzr_el0 r=0 // SPMU2
rw_sys_reg mdstepop_el1 // STEP2
rw_sys_reg gpcbw_el3 // V9_5A
diff --git a/gas/testsuite/gas/all/err-sizeof.s b/gas/testsuite/gas/all/err-sizeof.s
index a70cd19..066142b 100644
--- a/gas/testsuite/gas/all/err-sizeof.s
+++ b/gas/testsuite/gas/all/err-sizeof.s
@@ -10,7 +10,7 @@
.long .startof.() ;# { dg-error "Error: expected symbol name" }
;# We don't really care about these, but I didn't find a way to discard
;# them, and I also don't want to use dg-excess-errors here.
-;# { dg-error "junk at end" "" { target *-*-* } 3 }
+;# { dg-error "junk at end" "junk" { target *-*-* } 3 }
;# { dg-error "junk at end" "junk" { target *-*-* } 4 }
;# { dg-error "junk at end" "junk" { target *-*-* } 5 }
;# { dg-error "junk at end" "junk" { target *-*-* } 6 }
diff --git a/gas/testsuite/gas/all/gas.exp b/gas/testsuite/gas/all/gas.exp
index 81f4db2..af41083 100644
--- a/gas/testsuite/gas/all/gas.exp
+++ b/gas/testsuite/gas/all/gas.exp
@@ -578,7 +578,7 @@ run_dump_test "pr27381"
run_dump_test "multibyte1"
run_dump_test "multibyte2"
run_list_test "multibyte3" "--multibyte-handling=warn"
-run_list_test "multibyte3" "-f --multibyte-handling=warn"
+run_list_test "multibyte3" "-f --multibyte-handling=warn" "all multibyte3 -f"
# EVAX has an extra line printed by objdump when there are no relocations,
# and doesn't appear to enter absolute symbols into the symbol table.
diff --git a/gas/testsuite/gas/arm/arch6zk.d b/gas/testsuite/gas/arm/arch6zk.d
index f9ae025..282f137 100644
--- a/gas/testsuite/gas/arm/arch6zk.d
+++ b/gas/testsuite/gas/arm/arch6zk.d
@@ -1,4 +1,4 @@
-#name: ARM V6 instructions
+#name: ARM V6zk instructions
#as: -march=armv6zk
#objdump: -dr --prefix-addresses --show-raw-insn
diff --git a/gas/testsuite/gas/arm/archv6t2-1-pe.d b/gas/testsuite/gas/arm/archv6t2-1-pe.d
index 5f98e61..5d37f1a 100644
--- a/gas/testsuite/gas/arm/archv6t2-1-pe.d
+++ b/gas/testsuite/gas/arm/archv6t2-1-pe.d
@@ -1,4 +1,4 @@
-# name: ARMv6T2 THUMB mode
+# name: ARMv6T2 THUMB mode (pe)
# as: -march=armv6t2 -mthumb
# source: archv6t2-1.s
# objdump: -dr --prefix-addresses --show-raw-insn -M force-thumb
diff --git a/gas/testsuite/gas/arm/arm-it-bad.l b/gas/testsuite/gas/arm/arm-it-bad.l
index 2ba5253..c3a2a29 100644
--- a/gas/testsuite/gas/arm/arm-it-bad.l
+++ b/gas/testsuite/gas/arm/arm-it-bad.l
@@ -1,3 +1,3 @@
[^:]*: Assembler messages:
[^:]*:8: Error: incorrect condition in IT block -- `moveq r0,r1'
-[^:]*:10: Warning: conditional outside an IT block for Thumb.
+[^:]*:10: Warning: conditional outside an IT block for Thumb
diff --git a/gas/testsuite/gas/arm/armv1.l b/gas/testsuite/gas/arm/armv1.l
index 5d2840a..369f9d4 100644
--- a/gas/testsuite/gas/arm/armv1.l
+++ b/gas/testsuite/gas/arm/armv1.l
@@ -1,5 +1,5 @@
[^:]*: Assembler messages:
-[^:]*:26: s suffix on comparison instruction is deprecated
-[^:]*:29: s suffix on comparison instruction is deprecated
-[^:]*:32: s suffix on comparison instruction is deprecated
-[^:]*:35: s suffix on comparison instruction is deprecated
+[^:]*:26: Warning: s suffix on comparison instruction is deprecated
+[^:]*:29: Warning: s suffix on comparison instruction is deprecated
+[^:]*:32: Warning: s suffix on comparison instruction is deprecated
+[^:]*:35: Warning: s suffix on comparison instruction is deprecated
diff --git a/gas/testsuite/gas/arm/armv8-2-fp16-scalar-bad-ext.d b/gas/testsuite/gas/arm/armv8-2-fp16-scalar-bad-ext.d
index d904944..d59cc0a 100644
--- a/gas/testsuite/gas/arm/armv8-2-fp16-scalar-bad-ext.d
+++ b/gas/testsuite/gas/arm/armv8-2-fp16-scalar-bad-ext.d
@@ -1,4 +1,4 @@
-#name: Invalid armv8.2-a scalar fp16
+#name: Invalid armv8.2-a scalar fp16 (ext)
#source: armv8-2-fp16-scalar-bad.s
#as: -march=armv8.2-a+fp16 -mwarn-restrict-it
#error_output: armv8-2-fp16-scalar-bad.l
diff --git a/gas/testsuite/gas/arm/armv8-2-fp16-scalar-bad.l b/gas/testsuite/gas/arm/armv8-2-fp16-scalar-bad.l
index 3f5a2b8..7b79581 100644
--- a/gas/testsuite/gas/arm/armv8-2-fp16-scalar-bad.l
+++ b/gas/testsuite/gas/arm/armv8-2-fp16-scalar-bad.l
@@ -425,51 +425,51 @@
.*:106: *Info: macro .*
.*:78: Warning: scalar fp16 instruction cannot be conditional, the behaviour is UNPREDICTABLE
.*:110: *Info: macro .*
-.*:78: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
+.*:78: Warning: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
.*:110: *Info: macro .*
.*:78: Warning: scalar fp16 instruction cannot be conditional, the behaviour is UNPREDICTABLE
.*:110: *Info: macro .*
-.*:78: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
+.*:78: Warning: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
.*:110: *Info: macro .*
.*:78: Warning: scalar fp16 instruction cannot be conditional, the behaviour is UNPREDICTABLE
.*:110: *Info: macro .*
-.*:78: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
+.*:78: Warning: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
.*:110: *Info: macro .*
.*:78: Warning: scalar fp16 instruction cannot be conditional, the behaviour is UNPREDICTABLE
.*:110: *Info: macro .*
-.*:78: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
+.*:78: Warning: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
.*:110: *Info: macro .*
.*:78: Warning: scalar fp16 instruction cannot be conditional, the behaviour is UNPREDICTABLE
.*:110: *Info: macro .*
-.*:78: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
+.*:78: Warning: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
.*:110: *Info: macro .*
.*:78: Warning: scalar fp16 instruction cannot be conditional, the behaviour is UNPREDICTABLE
.*:110: *Info: macro .*
-.*:78: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
+.*:78: Warning: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
.*:110: *Info: macro .*
.*:78: Warning: scalar fp16 instruction cannot be conditional, the behaviour is UNPREDICTABLE
.*:110: *Info: macro .*
-.*:78: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
+.*:78: Warning: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
.*:110: *Info: macro .*
.*:78: Warning: scalar fp16 instruction cannot be conditional, the behaviour is UNPREDICTABLE
.*:110: *Info: macro .*
-.*:78: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
+.*:78: Warning: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
.*:110: *Info: macro .*
.*:78: Warning: scalar fp16 instruction cannot be conditional, the behaviour is UNPREDICTABLE
.*:110: *Info: macro .*
-.*:78: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
+.*:78: Warning: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
.*:110: *Info: macro .*
.*:78: Warning: scalar fp16 instruction cannot be conditional, the behaviour is UNPREDICTABLE
.*:110: *Info: macro .*
-.*:78: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
+.*:78: Warning: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
.*:110: *Info: macro .*
.*:78: Warning: scalar fp16 instruction cannot be conditional, the behaviour is UNPREDICTABLE
.*:110: *Info: macro .*
-.*:78: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
+.*:78: Warning: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
.*:110: *Info: macro .*
.*:78: Warning: scalar fp16 instruction cannot be conditional, the behaviour is UNPREDICTABLE
.*:110: *Info: macro .*
-.*:78: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
+.*:78: Warning: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
.*:110: *Info: macro .*
.*:87: Error: co-processor offset out of range
.*:88: Error: co-processor offset out of range
diff --git a/gas/testsuite/gas/arm/armv8-2-fp16-scalar-ext.d b/gas/testsuite/gas/arm/armv8-2-fp16-scalar-ext.d
index 7934fdb..df506eb 100644
--- a/gas/testsuite/gas/arm/armv8-2-fp16-scalar-ext.d
+++ b/gas/testsuite/gas/arm/armv8-2-fp16-scalar-ext.d
@@ -1,4 +1,4 @@
-#name: ARM v8.2 FP16 support on scalar
+#name: ARM v8.2 FP16 support on scalar (ext)
#source: armv8-2-fp16-scalar.s
#objdump: -d
#as: -march=armv8.2-a+fp16
diff --git a/gas/testsuite/gas/arm/armv8-2-fp16-scalar-thumb-ext.d b/gas/testsuite/gas/arm/armv8-2-fp16-scalar-thumb-ext.d
index cfe40d3..665dc4c 100644
--- a/gas/testsuite/gas/arm/armv8-2-fp16-scalar-thumb-ext.d
+++ b/gas/testsuite/gas/arm/armv8-2-fp16-scalar-thumb-ext.d
@@ -1,4 +1,4 @@
-#name: ARM v8.2 FP16 support on scalar (Thumb)
+#name: ARM v8.2 FP16 support on scalar (ext, Thumb)
#source: armv8-2-fp16-scalar.s
#objdump: -d
#as: -march=armv8.2-a+fp16 -mthumb
diff --git a/gas/testsuite/gas/arm/armv8-2-fp16-simd-ext.d b/gas/testsuite/gas/arm/armv8-2-fp16-simd-ext.d
index d551234..4bdc4f0 100644
--- a/gas/testsuite/gas/arm/armv8-2-fp16-simd-ext.d
+++ b/gas/testsuite/gas/arm/armv8-2-fp16-simd-ext.d
@@ -1,4 +1,4 @@
-#name: ARM v8.2 FP16 support on SIMD
+#name: ARM v8.2 FP16 support on SIMD (ext)
#source: armv8-2-fp16-simd.s
#objdump: -d
#as: -march=armv8.2-a+fp16
diff --git a/gas/testsuite/gas/arm/armv8-2-fp16-simd-thumb-ext.d b/gas/testsuite/gas/arm/armv8-2-fp16-simd-thumb-ext.d
index 5385fe3..dd566af 100644
--- a/gas/testsuite/gas/arm/armv8-2-fp16-simd-thumb-ext.d
+++ b/gas/testsuite/gas/arm/armv8-2-fp16-simd-thumb-ext.d
@@ -1,4 +1,4 @@
-#name: ARM v8.2 FP16 support on SIMD (Thumb)
+#name: ARM v8.2 FP16 support on SIMD (ext, Thumb)
#source: armv8-2-fp16-simd.s
#objdump: -d
#as: -march=armv8.2-a+fp16 -mthumb
diff --git a/gas/testsuite/gas/arm/armv8-2-fp16-simd-warning-ext.d b/gas/testsuite/gas/arm/armv8-2-fp16-simd-warning-ext.d
index abaeb43..08ac679 100644
--- a/gas/testsuite/gas/arm/armv8-2-fp16-simd-warning-ext.d
+++ b/gas/testsuite/gas/arm/armv8-2-fp16-simd-warning-ext.d
@@ -1,4 +1,4 @@
-#name: Reject ARM v8.2 FP16 SIMD instruction for early arch
+#name: Reject ARM v8.2 FP16 SIMD instruction for early arch (ext)
#source: armv8-2-fp16-simd.s
#as: -march=armv8.2-a+simd
#error_output: armv8-2-fp16-simd-warning.l
diff --git a/gas/testsuite/gas/arm/armv8-2-fp16-simd-warning-thumb-ext.d b/gas/testsuite/gas/arm/armv8-2-fp16-simd-warning-thumb-ext.d
index 8f92525..23e3e56 100644
--- a/gas/testsuite/gas/arm/armv8-2-fp16-simd-warning-thumb-ext.d
+++ b/gas/testsuite/gas/arm/armv8-2-fp16-simd-warning-thumb-ext.d
@@ -1,4 +1,4 @@
-#name: Reject ARM v8.2 FP16 SIMD instruction for early arch (Thumb)
+#name: Reject ARM v8.2 FP16 SIMD instruction for early arch (ext, Thumb)
#source: armv8-2-fp16-simd.s
#as: -march=armv8.2-a+simd -mthumb
#error_output: armv8-2-fp16-simd-warning.l
diff --git a/gas/testsuite/gas/arm/armv8-a-it-bad.d b/gas/testsuite/gas/arm/armv8-a-it-bad.d
index 02788e0..af7cdce 100644
--- a/gas/testsuite/gas/arm/armv8-a-it-bad.d
+++ b/gas/testsuite/gas/arm/armv8-a-it-bad.d
@@ -1,4 +1,4 @@
-#name: Deprecated IT blocks (ARM v8)
+#name: Deprecated IT blocks (ARM v8-a)
#source: armv8-ar-it-bad.s
#error_output: armv8-ar-it-bad.l
#as: -march=armv8-a -mimplicit-it=always -mwarn-restrict-it
diff --git a/gas/testsuite/gas/arm/armv8-ar-bad.l b/gas/testsuite/gas/arm/armv8-ar-bad.l
index f70de35..57e375c 100644
--- a/gas/testsuite/gas/arm/armv8-ar-bad.l
+++ b/gas/testsuite/gas/arm/armv8-ar-bad.l
@@ -1,16 +1,16 @@
.*: Assembler messages:
.*:6: Error: swp{b} use is obsoleted for ARMv8 and later
-.*:9: This coprocessor register access is deprecated in ARMv8
-.*:10: This coprocessor register access is deprecated in ARMv8
-.*:11: This coprocessor register access is deprecated in ARMv8
-.*:12: This coprocessor register access is deprecated in ARMv8
-.*:13: This coprocessor register access is deprecated in ARMv8
-.*:16: setend use is deprecated for ARMv8
-.*:19: setend use is deprecated for ARMv8
+.*:9: Warning: this coprocessor register access is deprecated in ARMv8
+.*:10: Warning: this coprocessor register access is deprecated in ARMv8
+.*:11: Warning: this coprocessor register access is deprecated in ARMv8
+.*:12: Warning: this coprocessor register access is deprecated in ARMv8
+.*:13: Warning: this coprocessor register access is deprecated in ARMv8
+.*:16: Warning: setend use is deprecated for ARMv8
+.*:19: Warning: setend use is deprecated for ARMv8
.*:23: Error: immediate value out of range -- `hlt 0x10000'
.*:24: Error: instruction cannot be conditional -- `hltne 0x1'
.*:28: Error: immediate value out of range -- `hlt 64'
-.*:30: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Miscellaneous 16-bit instructions
+.*:30: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Miscellaneous 16-bit instructions
.*:30: Error: instruction is always unconditional -- `hltne 0'
.*:34: Error: r15 not allowed here -- `stlb pc,\[r0\]'
.*:35: Error: r15 not allowed here -- `stlb r0,\[pc\]'
diff --git a/gas/testsuite/gas/arm/armv8-ar-it-bad.l b/gas/testsuite/gas/arm/armv8-ar-it-bad.l
index de3ed97..0732d5f 100644
--- a/gas/testsuite/gas/arm/armv8-ar-it-bad.l
+++ b/gas/testsuite/gas/arm/armv8-ar-it-bad.l
@@ -1,18 +1,18 @@
.*: Assembler messages:
-.*:6: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
-.*:14: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
-.*:19: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
-.*:29: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
-.*:35: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
-.*:39: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
-.*:42: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Miscellaneous 16-bit instructions
-.*:48: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Literal loads
-.*:51: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Hi-register ADD, MOV, CMP, BX, BLX using pc
-.*:54: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
+.*:6: Warning: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
+.*:14: Warning: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
+.*:19: Warning: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
+.*:29: Warning: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
+.*:35: Warning: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
+.*:39: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
+.*:42: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Miscellaneous 16-bit instructions
+.*:48: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Literal loads
+.*:51: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Hi-register ADD, MOV, CMP, BX, BLX using pc
+.*:54: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
.*:54: Error: r15 not allowed here -- `addeq r0,pc,pc'
-.*:57: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
+.*:57: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
.*:57: Error: r15 not allowed here -- `addeq pc,r0,r0'
-.*:60: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: ADD/SUB sp, sp #imm
-.*:64: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: ADD/SUB sp, sp #imm
-.*:67: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: ADD/SUB sp, sp #imm
-.*:71: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: ADD/SUB sp, sp #imm
+.*:60: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: ADD/SUB sp, sp #imm
+.*:64: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: ADD/SUB sp, sp #imm
+.*:67: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: ADD/SUB sp, sp #imm
+.*:71: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: ADD/SUB sp, sp #imm
diff --git a/gas/testsuite/gas/arm/armv8-r-it-bad.d b/gas/testsuite/gas/arm/armv8-r-it-bad.d
index c6f0c5b..a4b16f8 100644
--- a/gas/testsuite/gas/arm/armv8-r-it-bad.d
+++ b/gas/testsuite/gas/arm/armv8-r-it-bad.d
@@ -1,4 +1,4 @@
-#name: Deprecated IT blocks (ARM v8)
+#name: Deprecated IT blocks (ARM v8-r)
#source: armv8-ar-it-bad.s
#error_output: armv8-ar-it-bad.l
#as: -march=armv8-r -mimplicit-it=always -mwarn-restrict-it
diff --git a/gas/testsuite/gas/arm/armv8_2+rdma-ext.d b/gas/testsuite/gas/arm/armv8_2+rdma-ext.d
index 159a530..5da7971 100644
--- a/gas/testsuite/gas/arm/armv8_2+rdma-ext.d
+++ b/gas/testsuite/gas/arm/armv8_2+rdma-ext.d
@@ -1,4 +1,4 @@
-#name: Valid ARMv8.2-A with ARMv8.1-A NEON instructions.
+#name: Valid ARMv8.2-A with ARMv8.1-A NEON instructions (ext).
#as: -march=armv8.2-a+simd
#objdump: -dr
#skip: *-*-pe *-*-wince
diff --git a/gas/testsuite/gas/arm/attr-march-armv6s-m.d b/gas/testsuite/gas/arm/attr-march-armv6s-m.d
index 204a184..b030e3b 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6s-m.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6s-m.d
@@ -1,4 +1,4 @@
-# name: attributes for -march=armv6-m
+# name: attributes for -march=armv6s-m
# source: blank.s
# as: -march=armv6-m
# readelf: -A
diff --git a/gas/testsuite/gas/arm/attr-march-armv9_1-a.d b/gas/testsuite/gas/arm/attr-march-armv9_1-a.d
index cea559d..cc3c36b 100644
--- a/gas/testsuite/gas/arm/attr-march-armv9_1-a.d
+++ b/gas/testsuite/gas/arm/attr-march-armv9_1-a.d
@@ -1,4 +1,4 @@
-# name: check for armv9-a command line option settings
+# name: check for armv9.1-a command line option settings
# source: blank.s
# as: -march=armv9.1-a
# readelf: -A
diff --git a/gas/testsuite/gas/arm/attr-march-armv9_2-a.d b/gas/testsuite/gas/arm/attr-march-armv9_2-a.d
index 2048c4d..f06fcbe 100644
--- a/gas/testsuite/gas/arm/attr-march-armv9_2-a.d
+++ b/gas/testsuite/gas/arm/attr-march-armv9_2-a.d
@@ -1,4 +1,4 @@
-# name: check for armv9-a command line option settings
+# name: check for armv9.2-a command line option settings
# source: blank.s
# as: -march=armv9.2-a
# readelf: -A
diff --git a/gas/testsuite/gas/arm/attr-march-armv9_3-a.d b/gas/testsuite/gas/arm/attr-march-armv9_3-a.d
index 1360a23..486d2ad 100644
--- a/gas/testsuite/gas/arm/attr-march-armv9_3-a.d
+++ b/gas/testsuite/gas/arm/attr-march-armv9_3-a.d
@@ -1,4 +1,4 @@
-# name: check for armv9-a command line option settings
+# name: check for armv9.3-a command line option settings
# source: blank.s
# as: -march=armv9.3-a
# readelf: -A
diff --git a/gas/testsuite/gas/arm/cde-mve-or-neon.d b/gas/testsuite/gas/arm/cde-mve-or-neon.d
index 7d0a1b8..4c6fabf 100644
--- a/gas/testsuite/gas/arm/cde-mve-or-neon.d
+++ b/gas/testsuite/gas/arm/cde-mve-or-neon.d
@@ -1,4 +1,4 @@
-#name: Custom Datapath Extension (CDE)
+#name: Custom Datapath Extension (CDE) - MVE/Neon
#source: cde-mve-or-neon.s
#as: -mno-warn-deprecated -march=armv8-m.main+cdecp0+cdecp7+fp -I$srcdir/$subdir
#as: -mno-warn-deprecated -march=armv8-m.main+cdecp0+cdecp1+cdecp2+cdecp3+cdecp4+cdecp5+cdecp6+cdecp7+fp -I$srcdir/$subdir
diff --git a/gas/testsuite/gas/arm/cpu-arm_any.d b/gas/testsuite/gas/arm/cpu-arm_any.d
index 8dd3d2e..97f46d6 100644
--- a/gas/testsuite/gas/arm/cpu-arm_any.d
+++ b/gas/testsuite/gas/arm/cpu-arm_any.d
@@ -1,4 +1,4 @@
-# name: Assemble and dump for arm2 CPU
+# name: Assemble and dump for arm any CPU
# source: nop-asm.s
# as: -mcpu=all
# objdump: -d -marm_any
diff --git a/gas/testsuite/gas/arm/depr-swp.l b/gas/testsuite/gas/arm/depr-swp.l
index 34a547a..830f13b 100644
--- a/gas/testsuite/gas/arm/depr-swp.l
+++ b/gas/testsuite/gas/arm/depr-swp.l
@@ -1,4 +1,4 @@
[^:]*: Assembler messages:
-[^:]*:2: swp{b} use is obsoleted for ARMv8 and later
-[^:]*:6: swp{b} use is deprecated for ARMv6 and ARMv7
-[^:]*:8: swp{b} use is deprecated for ARMv6 and ARMv7
+[^:]*:2: Warning: swp{b} use is obsoleted for ARMv8 and later
+[^:]*:6: Warning: swp{b} use is deprecated for ARMv6 and ARMv7
+[^:]*:8: Warning: swp{b} use is deprecated for ARMv6 and ARMv7
diff --git a/gas/testsuite/gas/arm/mrs-msr-arm-v7-a-bad.l b/gas/testsuite/gas/arm/mrs-msr-arm-v7-a-bad.l
index 222198f..67f66b7 100644
--- a/gas/testsuite/gas/arm/mrs-msr-arm-v7-a-bad.l
+++ b/gas/testsuite/gas/arm/mrs-msr-arm-v7-a-bad.l
@@ -2,4 +2,4 @@
[^:]*:5: Error: 'APSR', 'CPSR' or 'SPSR' expected -- `mrs r4,apsr_nzcvq'
[^:]*:6: Error: selected processor does not support requested special purpose register -- `mrs r5,iapsr'
[^:]*:7: Error: selected processor does not support requested special purpose register -- `msr iapsr,r4'
-[^:]*:8: writing to APSR without specifying a bitmask is deprecated
+[^:]*:8: Warning: writing to APSR without specifying a bitmask is deprecated
diff --git a/gas/testsuite/gas/arm/msr-reg-bad.l b/gas/testsuite/gas/arm/msr-reg-bad.l
index 585d418..32b3fbf 100644
--- a/gas/testsuite/gas/arm/msr-reg-bad.l
+++ b/gas/testsuite/gas/arm/msr-reg-bad.l
@@ -1,5 +1,5 @@
[^:]*: Assembler messages:
-[^:]*:8: writing to APSR without specifying a bitmask is deprecated
+[^:]*:8: Warning: writing to APSR without specifying a bitmask is deprecated
[^:]*:9: Error: selected processor does not support DSP extension -- `msr APSR_g,r9'
[^:]*:11: Error: selected processor does not support DSP extension -- `msr APSR_nzcvqg,r9'
[^:]*:14: Error: selected processor does not support requested special purpose register -- `msr CPSR,r9'
diff --git a/gas/testsuite/gas/arm/mul-overlap.l b/gas/testsuite/gas/arm/mul-overlap.l
index cd0ae67..9b9544c 100644
--- a/gas/testsuite/gas/arm/mul-overlap.l
+++ b/gas/testsuite/gas/arm/mul-overlap.l
@@ -1,4 +1,4 @@
[^:]*: Assembler messages:
-[^:]*:5: Rd and Rm should be different in mul
-[^:]*:6: Rd and Rm should be different in mla
-[^:]*:8: rdhi, rdlo and rm must all be different
+[^:]*:5: Warning: Rd and Rm should be different in mul
+[^:]*:6: Warning: Rd and Rm should be different in mla
+[^:]*:8: Warning: rdhi, rdlo and rm must all be different
diff --git a/gas/testsuite/gas/arm/mve-vabav.d b/gas/testsuite/gas/arm/mve-vabav.d
index 086240b..e9a1550 100644
--- a/gas/testsuite/gas/arm/mve-vabav.d
+++ b/gas/testsuite/gas/arm/mve-vabav.d
@@ -1,4 +1,4 @@
-# name: MVE vabs and vneg instructions
+# name: MVE vabav instructions
# as: -march=armv8.1-m.main+mve.fp
# objdump: -dr --prefix-addresses --show-raw-insn -marmv8.1-m.main
diff --git a/gas/testsuite/gas/arm/mve-vmlsldav.d b/gas/testsuite/gas/arm/mve-vmlsldav.d
index 7a17a1c..9cb265b 100644
--- a/gas/testsuite/gas/arm/mve-vmlsldav.d
+++ b/gas/testsuite/gas/arm/mve-vmlsldav.d
@@ -1,4 +1,4 @@
-# name: MVE vmlsdav instructions
+# name: MVE vmlsldav instructions
# as: -march=armv8.1-m.main+mve.fp
# objdump: -dr --prefix-addresses --show-raw-insn -marmv8.1-m.main
diff --git a/gas/testsuite/gas/arm/mve-vorn.d b/gas/testsuite/gas/arm/mve-vorn.d
index 083de03..00caf13 100644
--- a/gas/testsuite/gas/arm/mve-vorn.d
+++ b/gas/testsuite/gas/arm/mve-vorn.d
@@ -1,4 +1,4 @@
-# name: MVE vorr instructions
+# name: MVE vorn instructions
# as: -march=armv8.1-m.main+mve
# objdump: -dr --prefix-addresses --show-raw-insn -marmv8.1-m.main
diff --git a/gas/testsuite/gas/arm/mve-vqdmulh.d b/gas/testsuite/gas/arm/mve-vqdmulh.d
index dbe2c33..6062588 100644
--- a/gas/testsuite/gas/arm/mve-vqdmulh.d
+++ b/gas/testsuite/gas/arm/mve-vqdmulh.d
@@ -1,4 +1,4 @@
-# name: MVE vqdmlash and vqrdmlash instructions
+# name: MVE vqdmulh instructions
# as: -march=armv8.1-m.main+mve.fp
# objdump: -dr --prefix-addresses --show-raw-insn -marmv8.1-m.main
diff --git a/gas/testsuite/gas/arm/mve-vrshl.d b/gas/testsuite/gas/arm/mve-vrshl.d
index 472e2ce..e75152c 100644
--- a/gas/testsuite/gas/arm/mve-vrshl.d
+++ b/gas/testsuite/gas/arm/mve-vrshl.d
@@ -1,4 +1,4 @@
-# name: MVE vrmlaldavh(a)(x), vrmlalvh(a), vrmlsldavh(a)(x) instructions
+# name: MVE vrshl instructions
# as: -march=armv8.1-m.main+mve.fp
# objdump: -dr --prefix-addresses --show-raw-insn -marmv8.1-m.main
diff --git a/gas/testsuite/gas/arm/mve-vshrn.d b/gas/testsuite/gas/arm/mve-vshrn.d
index 2aeb5a7..b532bb1 100644
--- a/gas/testsuite/gas/arm/mve-vshrn.d
+++ b/gas/testsuite/gas/arm/mve-vshrn.d
@@ -1,4 +1,4 @@
-# name: MVE vshr and vrshr instructions
+# name: MVE vshrn and vrshrn instructions
# as: -march=armv8.1-m.main+mve.fp
# objdump: -dr --prefix-addresses --show-raw-insn -marmv8.1-m.main
diff --git a/gas/testsuite/gas/arm/neon-suffix-bad.d b/gas/testsuite/gas/arm/neon-suffix-bad.d
index 7e3bdfe..3ffa493 100644
--- a/gas/testsuite/gas/arm/neon-suffix-bad.d
+++ b/gas/testsuite/gas/arm/neon-suffix-bad.d
@@ -1,3 +1,3 @@
-# name: Bad suffix for non-Neon mnemonic
+# name: Bad suffix for (non-)Neon mnemonic
# as: -mfpu=neon
# error_output: neon-suffix-bad.l
diff --git a/gas/testsuite/gas/arm/neon-suffix-bad.l b/gas/testsuite/gas/arm/neon-suffix-bad.l
index 091429d..234d95f 100644
--- a/gas/testsuite/gas/arm/neon-suffix-bad.l
+++ b/gas/testsuite/gas/arm/neon-suffix-bad.l
@@ -7,3 +7,24 @@
[^:]*:10: Error: invalid neon suffix for non neon instruction
[^:]*:11: Error: invalid neon suffix for non neon instruction
[^:]*:12: Error: invalid instruction shape -- `vcvt.f64.s32 d0,s0,#11'
+[^:]*:19: Error: unexpected character `0' .*
+#?[^:]*:19: Error: .*
+[^:]*:20: Error: unexpected character `0' .*
+#?[^:]*:20: Error: .*
+[^:]*:22: Error: unexpected character `-' .*
+#?[^:]*:22: Error: .*
+[^:]*:23: Error: bad instruction .*
+[^:]*:25: Error: bad size .*
+#?[^:]*:25: Error: .*
+[^:]*:26: Error: bad size .*
+#?[^:]*:26: Error: .*
+[^:]*:28: Error: unexpected type character `b' .*
+#?[^:]*:28: Error: .*
+[^:]*:29: Error: unexpected character ` ' .*
+#?[^:]*:29: Error: .*
+[^:]*:30: Error: .* register expected .*
+[^:]*:31: Error: unexpected character ` ' .*
+#?[^:]*:31: Error: .*
+[^:]*:32: Error: .* register expected .*
+[^:]*:34: Error: bad instruction .*
+[^:]*:35: Error: bad instruction .*
diff --git a/gas/testsuite/gas/arm/neon-suffix-bad.s b/gas/testsuite/gas/arm/neon-suffix-bad.s
index 20c60fe..50360f9 100644
--- a/gas/testsuite/gas/arm/neon-suffix-bad.s
+++ b/gas/testsuite/gas/arm/neon-suffix-bad.s
@@ -11,3 +11,25 @@ faddd.f32 d0, d0, d0
faddd.f64 d0, d0, d0
vcvt.f64.s32 d0, s0, #11
+ .arm
+ .arch armv8.6-a
+ .arch_extension simd
+ vcvt.bf16.f32 d0, q0 @ good, for reference
+
+ vcvt.bf016.f32 d0, q0
+ vcvt.bf16.f032 d0, q0
+
+ vcvt.bf-4294967280.f32 d0, q0
+ vcvt.bf16.f-4294967264 d0, q0
+
+ vcvt.bf4294967312.f32 d0, q0
+ vcvt.bf16.f4294967328 d0, q0
+
+ vcvt.b f16.f32 d0, q0
+ vcvt.bf 16.f32 d0, q0
+ vcvt.bf16 .f32 d0, q0
+ vcvt.bf16. f32 d0, q0
+ vcvt.bf16.f 32 d0, q0
+
+ vcvt.bf16.f32d0, q0
+ vcvt.bf16.fd0, q0
diff --git a/gas/testsuite/gas/arm/sb-thumb1-pe.d b/gas/testsuite/gas/arm/sb-thumb1-pe.d
index 850c93f..9bc6125 100644
--- a/gas/testsuite/gas/arm/sb-thumb1-pe.d
+++ b/gas/testsuite/gas/arm/sb-thumb1-pe.d
@@ -1,5 +1,5 @@
#objdump: -dr --prefix-addresses --show-raw-insn -M force-thumb
-#name: SB instruction (Thumb)
+#name: SB instruction (pe, Thumb)
#source: sb.s
#as: -march=armv8.5-a -mthumb
diff --git a/gas/testsuite/gas/arm/sb-thumb2-pe.d b/gas/testsuite/gas/arm/sb-thumb2-pe.d
index 681d985..addd88f 100644
--- a/gas/testsuite/gas/arm/sb-thumb2-pe.d
+++ b/gas/testsuite/gas/arm/sb-thumb2-pe.d
@@ -1,5 +1,5 @@
#objdump: -dr --prefix-addresses --show-raw-insn -M force-thumb
-#name: SB instruction (Thumb) with +sb
+#name: SB instruction (Thumb) with +sb (pe)
#source: sb.s
#as: -march=armv8-a+sb -mthumb
diff --git a/gas/testsuite/gas/arm/sp-pc-validations-bad-t-v8a.l b/gas/testsuite/gas/arm/sp-pc-validations-bad-t-v8a.l
index 7969ce5..f11f21f 100644
--- a/gas/testsuite/gas/arm/sp-pc-validations-bad-t-v8a.l
+++ b/gas/testsuite/gas/arm/sp-pc-validations-bad-t-v8a.l
@@ -1,134 +1,134 @@
[^:]*: Assembler messages:
-[^:]*:6: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
+[^:]*:6: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
[^:]*:17: *Info: macro .*
[^:]*:27: *Info: macro .*
-[^:]*:6: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
+[^:]*:6: Warning: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
[^:]*:17: *Info: macro .*
[^:]*:27: *Info: macro .*
[^:]*:6: Error: branch must be last instruction in IT block -- `ldreq r15,\[r0\]'
[^:]*:17: *Info: macro .*
[^:]*:27: *Info: macro .*
-[^:]*:6: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
+[^:]*:6: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
[^:]*:17: *Info: macro .*
[^:]*:28: *Info: macro .*
-[^:]*:6: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
+[^:]*:6: Warning: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
[^:]*:17: *Info: macro .*
[^:]*:28: *Info: macro .*
[^:]*:6: Error: branch must be last instruction in IT block -- `ldreq r15,\[r0,#0\]'
[^:]*:17: *Info: macro .*
[^:]*:28: *Info: macro .*
-[^:]*:6: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
+[^:]*:6: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
[^:]*:17: *Info: macro .*
[^:]*:29: *Info: macro .*
-[^:]*:6: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
+[^:]*:6: Warning: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
[^:]*:17: *Info: macro .*
[^:]*:29: *Info: macro .*
[^:]*:6: Error: branch must be last instruction in IT block -- `ldreq r15,\[sp\]'
[^:]*:17: *Info: macro .*
[^:]*:29: *Info: macro .*
-[^:]*:6: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
+[^:]*:6: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
[^:]*:17: *Info: macro .*
[^:]*:30: *Info: macro .*
-[^:]*:6: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
+[^:]*:6: Warning: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
[^:]*:17: *Info: macro .*
[^:]*:30: *Info: macro .*
[^:]*:6: Error: branch must be last instruction in IT block -- `ldreq r15,\[sp,#0\]'
[^:]*:17: *Info: macro .*
[^:]*:30: *Info: macro .*
-[^:]*:12: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
+[^:]*:12: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
[^:]*:21: *Info: macro .*
[^:]*:31: *Info: macro .*
-[^:]*:12: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
+[^:]*:12: Warning: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
[^:]*:21: *Info: macro .*
[^:]*:31: *Info: macro .*
[^:]*:12: Error: branch must be last instruction in IT block -- `ldreq.w r15,\[r0\]'
[^:]*:21: *Info: macro .*
[^:]*:31: *Info: macro .*
-[^:]*:12: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
+[^:]*:12: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
[^:]*:21: *Info: macro .*
[^:]*:32: *Info: macro .*
-[^:]*:12: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
+[^:]*:12: Warning: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
[^:]*:21: *Info: macro .*
[^:]*:32: *Info: macro .*
[^:]*:12: Error: branch must be last instruction in IT block -- `ldreq.w r15,\[r0,#0\]'
[^:]*:21: *Info: macro .*
[^:]*:32: *Info: macro .*
-[^:]*:6: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
+[^:]*:6: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
[^:]*:17: *Info: macro .*
[^:]*:33: *Info: macro .*
-[^:]*:6: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
+[^:]*:6: Warning: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
[^:]*:17: *Info: macro .*
[^:]*:33: *Info: macro .*
[^:]*:6: Error: branch must be last instruction in IT block -- `ldreq r15,\[r0,#-4\]'
[^:]*:17: *Info: macro .*
[^:]*:33: *Info: macro .*
-[^:]*:6: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
+[^:]*:6: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
[^:]*:17: *Info: macro .*
[^:]*:34: *Info: macro .*
-[^:]*:6: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
+[^:]*:6: Warning: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
[^:]*:17: *Info: macro .*
[^:]*:34: *Info: macro .*
[^:]*:6: Error: branch must be last instruction in IT block -- `ldreq r15,\[r0\],#4'
[^:]*:17: *Info: macro .*
[^:]*:34: *Info: macro .*
-[^:]*:6: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
+[^:]*:6: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
[^:]*:17: *Info: macro .*
[^:]*:35: *Info: macro .*
-[^:]*:6: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
+[^:]*:6: Warning: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
[^:]*:17: *Info: macro .*
[^:]*:35: *Info: macro .*
[^:]*:6: Error: branch must be last instruction in IT block -- `ldreq r15,\[r0,#0\]!'
[^:]*:17: *Info: macro .*
[^:]*:35: *Info: macro .*
-[^:]*:6: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
+[^:]*:6: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
[^:]*:17: *Info: macro .*
[^:]*:38: *Info: macro .*
-[^:]*:6: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
+[^:]*:6: Warning: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
[^:]*:17: *Info: macro .*
[^:]*:38: *Info: macro .*
[^:]*:6: Error: branch must be last instruction in IT block -- `ldreq r15,label'
[^:]*:17: *Info: macro .*
[^:]*:38: *Info: macro .*
-[^:]*:12: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
+[^:]*:12: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
[^:]*:21: *Info: macro .*
[^:]*:39: *Info: macro .*
-[^:]*:12: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
+[^:]*:12: Warning: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
[^:]*:21: *Info: macro .*
[^:]*:39: *Info: macro .*
[^:]*:12: Error: branch must be last instruction in IT block -- `ldreq.w r15,label'
[^:]*:21: *Info: macro .*
[^:]*:39: *Info: macro .*
-[^:]*:12: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
+[^:]*:12: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
[^:]*:21: *Info: macro .*
[^:]*:40: *Info: macro .*
-[^:]*:12: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
+[^:]*:12: Warning: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
[^:]*:21: *Info: macro .*
[^:]*:40: *Info: macro .*
[^:]*:12: Error: branch must be last instruction in IT block -- `ldreq.w r15,\[pc,#-0\]'
[^:]*:21: *Info: macro .*
[^:]*:40: *Info: macro .*
-[^:]*:6: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
+[^:]*:6: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
[^:]*:17: *Info: macro .*
[^:]*:43: *Info: macro .*
-[^:]*:6: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
+[^:]*:6: Warning: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
[^:]*:17: *Info: macro .*
[^:]*:43: *Info: macro .*
[^:]*:6: Error: branch must be last instruction in IT block -- `ldreq r15,\[r0,r1\]'
[^:]*:17: *Info: macro .*
[^:]*:43: *Info: macro .*
-[^:]*:12: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
+[^:]*:12: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
[^:]*:21: *Info: macro .*
[^:]*:44: *Info: macro .*
-[^:]*:12: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
+[^:]*:12: Warning: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
[^:]*:21: *Info: macro .*
[^:]*:44: *Info: macro .*
[^:]*:12: Error: branch must be last instruction in IT block -- `ldreq.w r15,\[r0,r1\]'
[^:]*:21: *Info: macro .*
[^:]*:44: *Info: macro .*
-[^:]*:12: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
+[^:]*:12: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
[^:]*:21: *Info: macro .*
[^:]*:45: *Info: macro .*
-[^:]*:12: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
+[^:]*:12: Warning: IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R
[^:]*:21: *Info: macro .*
[^:]*:45: *Info: macro .*
[^:]*:12: Error: branch must be last instruction in IT block -- `ldreq.w r15,\[r0,r1,LSL ?#2\]'
diff --git a/gas/testsuite/gas/arm/thumb2_bad_reg.l b/gas/testsuite/gas/arm/thumb2_bad_reg.l
index d47cd4f..89702a3 100644
--- a/gas/testsuite/gas/arm/thumb2_bad_reg.l
+++ b/gas/testsuite/gas/arm/thumb2_bad_reg.l
@@ -76,9 +76,9 @@
[^:]*:[0-9]+: Error: r15 not allowed here -- `cmn.w r0,r15'
[^:]*:[0-9]+: Error: r15 not allowed here -- `cmp.w r15,#1'
[^:]*:[0-9]+: Error: r15 not allowed here -- `cmp r15,r0'
-[^:]*:[0-9]+: use of r13 is deprecated
+[^:]*:[0-9]+: Warning: use of r13 is deprecated
[^:]*:[0-9]+: Error: r15 not allowed here -- `cmp r0,r15'
-[^:]*:[0-9]+: use of r13 is deprecated
+[^:]*:[0-9]+: Warning: use of r13 is deprecated
[^:]*:[0-9]+: Error: r15 not allowed here -- `cmp.n r0,r15'
[^:]*:[0-9]+: Error: r15 not allowed here -- `cmp.w r15,r0'
[^:]*:[0-9]+: Error: r13 not allowed here -- `cmp.w r0,r13'
@@ -147,10 +147,10 @@
[^:]*:[0-9]+: Error: r15 not allowed here -- `mov.w r15,r13'
[^:]*:[0-9]+: Error: r15 not allowed here -- `mov.w r13,r15'
[^:]*:[0-9]+: Error: r15 not allowed here -- `mov.w r15,r15'
-[^:]*:[0-9]+: Use of r13 as a source register is deprecated when r13 is the destination register.
-[^:]*:[0-9]+: Use of r13 as a source register is deprecated when r15 is the destination register.
-[^:]*:[0-9]+: Use of r15 as a source register is deprecated when r13 is the destination register.
-[^:]*:[0-9]+: Use of r15 as a source register is deprecated when r15 is the destination register.
+[^:]*:[0-9]+: Warning: Use of r13 as a source register is deprecated when r13 is the destination register.
+[^:]*:[0-9]+: Warning: Use of r13 as a source register is deprecated when r15 is the destination register.
+[^:]*:[0-9]+: Warning: Use of r15 as a source register is deprecated when r13 is the destination register.
+[^:]*:[0-9]+: Warning: Use of r15 as a source register is deprecated when r15 is the destination register.
[^:]*:[0-9]+: Error: r13 not allowed here -- `movs r13,r13'
[^:]*:[0-9]+: Error: r15 not allowed here -- `movs r15,r13'
[^:]*:[0-9]+: Error: r13 not allowed here -- `movs r13,r15'
diff --git a/gas/testsuite/gas/arm/thumb2_it_auto.d b/gas/testsuite/gas/arm/thumb2_it_auto.d
index fa480f8..5b519aa 100644
--- a/gas/testsuite/gas/arm/thumb2_it_auto.d
+++ b/gas/testsuite/gas/arm/thumb2_it_auto.d
@@ -1,4 +1,4 @@
-# name: Mixed 16 and 32-bit Thumb conditional instructions
+# name: Mixed 16 and 32-bit Thumb conditional instructions (auto)
# as: -march=armv6kt2 -mimplicit-it=always
# source: thumb2_it.s
# objdump: -dr --prefix-addresses --show-raw-insn
diff --git a/gas/testsuite/gas/arm/thumb2_it_bad_auto.d b/gas/testsuite/gas/arm/thumb2_it_bad_auto.d
index 0b43a62..1cdfc09 100644
--- a/gas/testsuite/gas/arm/thumb2_it_bad_auto.d
+++ b/gas/testsuite/gas/arm/thumb2_it_bad_auto.d
@@ -1,4 +1,4 @@
-#name: Invalid IT instructions
+#name: Invalid IT instructions (auto)
#as: -mimplicit-it=always
#source: thumb2_it_bad.s
#error_output: thumb2_it_bad.l
diff --git a/gas/testsuite/gas/arm/thumb2_vpool_be.d b/gas/testsuite/gas/arm/thumb2_vpool_be.d
index df6ce2f..370a6a0 100644
--- a/gas/testsuite/gas/arm/thumb2_vpool_be.d
+++ b/gas/testsuite/gas/arm/thumb2_vpool_be.d
@@ -2,7 +2,7 @@
# objdump: -dr --prefix-addresses --show-raw-insn
# This test is only valid on ELF based ports.
#notarget: *-*-pe *-*-wince
-#name: Thumb2 vldr with immediate constant
+#name: Thumb2 vldr with immediate constant (BE)
#source: thumb2_vpool.s
.*: +file format .*arm.*
diff --git a/gas/testsuite/gas/arm/thumb32.l b/gas/testsuite/gas/arm/thumb32.l
index 55eeaf6..4f953f6 100644
--- a/gas/testsuite/gas/arm/thumb32.l
+++ b/gas/testsuite/gas/arm/thumb32.l
@@ -1,33 +1,33 @@
[^:]*: Assembler messages:
-[^:]*:438: s suffix on comparison instruction is deprecated
+[^:]*:438: Warning: s suffix on comparison instruction is deprecated
[^:]*:450: *Info: macro .*
-[^:]*:440: s suffix on comparison instruction is deprecated
+[^:]*:440: Warning: s suffix on comparison instruction is deprecated
[^:]*:450: *Info: macro .*
-[^:]*:444: s suffix on comparison instruction is deprecated
+[^:]*:444: Warning: s suffix on comparison instruction is deprecated
[^:]*:450: *Info: macro .*
-[^:]*:445: s suffix on comparison instruction is deprecated
+[^:]*:445: Warning: s suffix on comparison instruction is deprecated
[^:]*:450: *Info: macro .*
-[^:]*:438: s suffix on comparison instruction is deprecated
+[^:]*:438: Warning: s suffix on comparison instruction is deprecated
[^:]*:451: *Info: macro .*
-[^:]*:440: s suffix on comparison instruction is deprecated
+[^:]*:440: Warning: s suffix on comparison instruction is deprecated
[^:]*:451: *Info: macro .*
-[^:]*:444: s suffix on comparison instruction is deprecated
+[^:]*:444: Warning: s suffix on comparison instruction is deprecated
[^:]*:451: *Info: macro .*
-[^:]*:445: s suffix on comparison instruction is deprecated
+[^:]*:445: Warning: s suffix on comparison instruction is deprecated
[^:]*:451: *Info: macro .*
-[^:]*:438: s suffix on comparison instruction is deprecated
+[^:]*:438: Warning: s suffix on comparison instruction is deprecated
[^:]*:452: *Info: macro .*
-[^:]*:440: s suffix on comparison instruction is deprecated
+[^:]*:440: Warning: s suffix on comparison instruction is deprecated
[^:]*:452: *Info: macro .*
-[^:]*:444: s suffix on comparison instruction is deprecated
+[^:]*:444: Warning: s suffix on comparison instruction is deprecated
[^:]*:452: *Info: macro .*
-[^:]*:445: s suffix on comparison instruction is deprecated
+[^:]*:445: Warning: s suffix on comparison instruction is deprecated
[^:]*:452: *Info: macro .*
-[^:]*:438: s suffix on comparison instruction is deprecated
+[^:]*:438: Warning: s suffix on comparison instruction is deprecated
[^:]*:453: *Info: macro .*
-[^:]*:440: s suffix on comparison instruction is deprecated
+[^:]*:440: Warning: s suffix on comparison instruction is deprecated
[^:]*:453: *Info: macro .*
-[^:]*:444: s suffix on comparison instruction is deprecated
+[^:]*:444: Warning: s suffix on comparison instruction is deprecated
[^:]*:453: *Info: macro .*
-[^:]*:445: s suffix on comparison instruction is deprecated
+[^:]*:445: Warning: s suffix on comparison instruction is deprecated
[^:]*:453: *Info: macro .*
diff --git a/gas/testsuite/gas/arm/udf.l b/gas/testsuite/gas/arm/udf.l
index 21aff94..48f4c6c 100644
--- a/gas/testsuite/gas/arm/udf.l
+++ b/gas/testsuite/gas/arm/udf.l
@@ -1,3 +1,3 @@
^[^:]*: Assembler messages:
-^[^:]*:16: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
-^[^:]*:21: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
+^[^:]*:16: Warning: IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: Short branches, Undefined, SVC, LDM/STM
+^[^:]*:21: Warning: IT blocks containing 32-bit Thumb instructions are performance deprecated in ARMv8-A and ARMv8-R
diff --git a/gas/testsuite/gas/arm/vstr-arm-bad.l b/gas/testsuite/gas/arm/vstr-arm-bad.l
index 9ad162a..0d48327 100644
--- a/gas/testsuite/gas/arm/vstr-arm-bad.l
+++ b/gas/testsuite/gas/arm/vstr-arm-bad.l
@@ -1,3 +1,3 @@
[^:]*: Assembler messages:
-[^:]*:6: Use of PC here is deprecated
-[^:]*:7: Use of PC here is deprecated
+[^:]*:6: Warning: Use of PC here is deprecated
+[^:]*:7: Warning: Use of PC here is deprecated
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-12.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-12.d
new file mode 100644
index 0000000..c91ce7b
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-12.d
@@ -0,0 +1,22 @@
+#as: --gsframe
+#objdump: --sframe=.sframe
+#name: SFrame DW_CFA_GNU_args_size test
+#...
+Contents of the SFrame section .sframe:
+
+ Header :
+
+ Version: SFRAME_VERSION_2
+ Flags: SFRAME_F_FDE_FUNC_START_PCREL
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
+ Num FDEs: 1
+ Num FREs: 2
+
+ Function Index :
+ func idx \[0\]: pc = 0x0, size = 8 bytes
+ STARTPC + CFA + FP + RA +
+#...
+ 0+0004 +sp\+16 +u +[uf] +
+
+#pass
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-12.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-12.s
new file mode 100644
index 0000000..41af4e1
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-12.s
@@ -0,0 +1,8 @@
+## DW_CFA_GNU_args_size 0 can be ignored
+ .cfi_startproc
+ .long 0
+ .cfi_def_cfa_offset 16
+ .long
+ .cfi_escape 0x2e, 0x0
+ .long 0
+ .cfi_endproc
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-3.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-3.d
new file mode 100644
index 0000000..0e49515
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-3.d
@@ -0,0 +1,21 @@
+#as: --gsframe
+#objdump: --sframe=.sframe
+#name: CFI_escape DW_CFA_GNU_args_size with FP-based CFA
+#...
+Contents of the SFrame section .sframe:
+
+ Header :
+
+ Version: SFRAME_VERSION_2
+ Flags: SFRAME_F_FDE_FUNC_START_PCREL
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
+ Num FDEs: 1
+ Num FREs: 1
+
+ Function Index :
+
+ func idx \[0\]: pc = 0x0, size = 0 bytes
+ STARTPC +CFA +FP +RA +
+ 0+0000 +fp\+8 +u +f +
+#pass
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-3.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-3.s
new file mode 100644
index 0000000..e28efef
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-3.s
@@ -0,0 +1,5 @@
+# DW_CFA_GNU_args_size is safe to skip, if CFA is FP based.
+ .cfi_startproc
+ .cfi_def_cfa_register 6
+ .cfi_escape 0x2e, 0x20
+ .cfi_endproc
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe.exp b/gas/testsuite/gas/cfi-sframe/cfi-sframe.exp
index 9380c98..7c93164 100644
--- a/gas/testsuite/gas/cfi-sframe/cfi-sframe.exp
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe.exp
@@ -47,6 +47,7 @@ if { ([istarget "x86_64-*-*"] || [istarget "aarch64*-*-*"]
run_dump_test "cfi-sframe-common-9"
run_dump_test "cfi-sframe-common-10"
run_dump_test "cfi-sframe-common-11"
+ run_dump_test "cfi-sframe-common-12"
run_dump_test "common-empty-1"
run_dump_test "common-empty-2"
@@ -59,6 +60,7 @@ if { [istarget "x86_64-*-*"] && [gas_sframe_check] } then {
set ASFLAGS "$ASFLAGS --64"
run_dump_test "cfi-sframe-x86_64-1"
run_dump_test "cfi-sframe-x86_64-2"
+ run_dump_test "cfi-sframe-x86_64-3"
run_dump_test "cfi-sframe-x86_64-pr33170"
run_dump_test "cfi-sframe-x86_64-empty-1"
run_dump_test "cfi-sframe-x86_64-empty-2"
diff --git a/gas/testsuite/gas/cfi/cfi-common-10.d b/gas/testsuite/gas/cfi/cfi-common-10.d
new file mode 100644
index 0000000..80900d9
--- /dev/null
+++ b/gas/testsuite/gas/cfi/cfi-common-10.d
@@ -0,0 +1,8 @@
+#objdump: -Wf
+#name: CFI common 10
+
+#...
+Contents of the \.eh_frame section:
+#...
+ DW_CFA_def_cfa_offset: 1099511627808
+#pass
diff --git a/gas/testsuite/gas/cfi/cfi-common-10.s b/gas/testsuite/gas/cfi/cfi-common-10.s
new file mode 100644
index 0000000..166f1fc
--- /dev/null
+++ b/gas/testsuite/gas/cfi/cfi-common-10.s
@@ -0,0 +1,5 @@
+ .cfi_sections .eh_frame
+ .cfi_startproc
+ .long 0
+ .cfi_def_cfa_offset 1099511627808
+ .cfi_endproc
diff --git a/gas/testsuite/gas/cfi/cfi-x86_64-2.d b/gas/testsuite/gas/cfi/cfi-x86_64-2.d
new file mode 100644
index 0000000..b1f21dc
--- /dev/null
+++ b/gas/testsuite/gas/cfi/cfi-x86_64-2.d
@@ -0,0 +1,14 @@
+#objdump: -WF
+#name: CFI on x86-64 DW_CFA_def_cfa_offset_sf
+#...
+Contents of the .eh_frame section:
+
+
+0+0000 0+0014 0+000 CIE "zR" cf=1 df=-8 ra=(16|32)
+ +LOC +CFA +ra +
+0+0000 rsp\+8 +c-8 +
+
+0+0018 0+0014 0+001c FDE cie=0+0000 pc=0+0000..0+0004
+ +LOC +CFA +ra +
+0+0000 rsp\+8 +c-8 +
+0+0004 rsp-32 +c-8 +
diff --git a/gas/testsuite/gas/cfi/cfi-x86_64-2.s b/gas/testsuite/gas/cfi/cfi-x86_64-2.s
new file mode 100644
index 0000000..95c5237
--- /dev/null
+++ b/gas/testsuite/gas/cfi/cfi-x86_64-2.s
@@ -0,0 +1,5 @@
+ .cfi_sections .eh_frame
+ .cfi_startproc
+ .long 0
+ .cfi_def_cfa_offset -32
+ .cfi_endproc
diff --git a/gas/testsuite/gas/cfi/cfi.exp b/gas/testsuite/gas/cfi/cfi.exp
index 83d393c..60094fe 100644
--- a/gas/testsuite/gas/cfi/cfi.exp
+++ b/gas/testsuite/gas/cfi/cfi.exp
@@ -42,6 +42,7 @@ if { [istarget "i*86-*-*"] || [istarget "x86_64-*-*"] } then {
if { [gas_x86_64_check] } then {
set ASFLAGS "$ASFLAGS --64"
run_dump_test "cfi-x86_64"
+ run_dump_test "cfi-x86_64-2"
set ASFLAGS "$old_ASFLAGS"
}
@@ -139,6 +140,9 @@ if { ![istarget "hppa64*-*"] } then {
run_dump_test "cfi-common-7"
run_dump_test "cfi-common-8"
run_dump_test "cfi-common-9"
+ if { [is_elf64 tmpdir/cfi-common-9.o] } {
+ run_dump_test "cfi-common-10"
+ }
run_dump_test "cie-version-0"
run_dump_test "cie-version-1"
diff --git a/gas/testsuite/gas/elf/bad-section-flag.err b/gas/testsuite/gas/elf/bad-section-flag.err
index 6099c4f..b3af9c1 100644
--- a/gas/testsuite/gas/elf/bad-section-flag.err
+++ b/gas/testsuite/gas/elf/bad-section-flag.err
@@ -1,2 +1,3 @@
.*: Assembler messages:
-.*:1: Fatal error: .*
+.*:1: Error: unrecognized [.]section attribute: .*
+.*:2: Error: unrecognized [.]pushsection attribute: .*
diff --git a/gas/testsuite/gas/elf/bad-section-flag.s b/gas/testsuite/gas/elf/bad-section-flag.s
index 35496bd..7eaebae 100644
--- a/gas/testsuite/gas/elf/bad-section-flag.s
+++ b/gas/testsuite/gas/elf/bad-section-flag.s
@@ -1 +1,2 @@
.section ".rodata", "z~&q"
+ .pushsection ".rodata", "a!"
diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp
index 1f42c3f..8a9357f 100644
--- a/gas/testsuite/gas/elf/elf.exp
+++ b/gas/testsuite/gas/elf/elf.exp
@@ -281,8 +281,7 @@ if { [is_elf_format] } then {
run_dump_test "section20"
run_dump_test "section21"
run_dump_test "section22"
- run_dump_test "section23a"
- run_dump_test "section23b"
+ run_dump_test "section23"
run_dump_test "section24a"
run_dump_test "section24b"
run_dump_test "section25"
@@ -294,6 +293,7 @@ if { [is_elf_format] } then {
run_dump_test "sh-link-zero"
run_dump_test "string"
run_dump_test "size"
+ run_dump_test "entsize"
run_dump_test "dwarf2-1" $dump_opts
run_dump_test "dwarf2-2" $dump_opts
run_dump_test "dwarf2-3" $dump_opts
@@ -340,6 +340,8 @@ if { [is_elf_format] } then {
run_list_test line
}
+ run_list_test "line2" -I${srcdir}/$subdir
+
run_dump_test "pr25917"
run_dump_test "bss"
# Some targets treat .bss similar to .lcomm.
diff --git a/gas/testsuite/gas/elf/entsize.d b/gas/testsuite/gas/elf/entsize.d
new file mode 100644
index 0000000..77835cb
--- /dev/null
+++ b/gas/testsuite/gas/elf/entsize.d
@@ -0,0 +1,9 @@
+#readelf: -SW
+#name: sections with entity size
+
+#...
+[ ]*\[.*\][ ]+\.merge[ ]+PROGBITS[ ]+0+[ ]+[0-9a-f]+[ ]+0+18[ ]+0c[ ]+AM[ ].*
+[ ]*\[.*\][ ]+\.string[ ]+PROGBITS[ ]+0+[ ]+[0-9a-f]+[ ]+0+6[ ]+02[ ]+AS[ ].*
+[ ]*\[.*\][ ]+\.custom[ ]+PROGBITS[ ]+0+[ ]+[0-9a-f]+[ ]+0+c[ ]+06[ ]+A[ ].*
+[ ]*\[.*\][ ]+\.bss\.custom[ ]+NOBITS[ ]+0+[ ]+[0-9a-f]+[ ]+0+1e[ ]+06[ ]+WA[ ].*
+#pass
diff --git a/gas/testsuite/gas/elf/entsize.s b/gas/testsuite/gas/elf/entsize.s
new file mode 100644
index 0000000..490de34
--- /dev/null
+++ b/gas/testsuite/gas/elf/entsize.s
@@ -0,0 +1,8 @@
+ .section .merge, "aM", 12
+ .dc.l 1, 2, 3, 4, 5, 6
+ .section .string, "aS", %progbits, 2
+ .dc.w 0x0020, 0x0021, 0x0022
+ .section .custom, "aE", 6
+ .dc.w 5, 6, 7, 8, 9, 0
+ .section .bss.custom, "awE", %nobits, 6
+ .skip 30
diff --git a/gas/testsuite/gas/elf/line.l b/gas/testsuite/gas/elf/line.l
index 37384d7..f2bc9ef 100644
--- a/gas/testsuite/gas/elf/line.l
+++ b/gas/testsuite/gas/elf/line.l
@@ -2,17 +2,17 @@
.*: Assembler messages:
line\.s:[0-9]*18: Warning: \.warning .*
-line\.s:2: Warning: m1/1: 123
+.*line\.s:2: Warning: m1/1: 123
line\.s:[0-9]*21: Info: .*
-line\.s:4: Warning: m1/2: 123
+.*line\.s:4: Warning: m1/2: 123
line\.s:[0-9]*21: Info: .*
-line\.s:2: Warning: m1/1: abc
+.*line\.s:2: Warning: m1/1: abc
line\.s:[0-9]*22: Info: .*
-line\.s:4: Warning: m1/2: abc
+.*line\.s:4: Warning: m1/2: abc
line\.s:[0-9]*22: Info: .*
-line\.s:2: Warning: m1/1: XYZ
+.*line\.s:2: Warning: m1/1: XYZ
line\.s:[0-9]*23: Info: .*
-line\.s:4: Warning: m1/2: XYZ
+.*line\.s:4: Warning: m1/2: XYZ
line\.s:[0-9]*23: Info: .*
line\.s:[0-9]*24: Warning: \.warning .*
Line2\.s:10: Warning: m2/1: 987
diff --git a/gas/testsuite/gas/elf/line2.inc b/gas/testsuite/gas/elf/line2.inc
new file mode 100644
index 0000000..89bf417
--- /dev/null
+++ b/gas/testsuite/gas/elf/line2.inc
@@ -0,0 +1,6 @@
+ .macro mac
+ .warning "inside macro"
+ .nop
+ .endm
+
+ mac
diff --git a/gas/testsuite/gas/elf/line2.l b/gas/testsuite/gas/elf/line2.l
new file mode 100644
index 0000000..92627fe
--- /dev/null
+++ b/gas/testsuite/gas/elf/line2.l
@@ -0,0 +1,5 @@
+.*line2\.s: Assembler messages:
+.*line2\.inc:2: Warning: inside macro
+.*line2\.inc:6: Info: macro invoked from here
+.*line2\.inc:2: Warning: inside macro
+.*line2\.s:3: Info: macro invoked from here
diff --git a/gas/testsuite/gas/elf/line2.s b/gas/testsuite/gas/elf/line2.s
new file mode 100644
index 0000000..40867c1
--- /dev/null
+++ b/gas/testsuite/gas/elf/line2.s
@@ -0,0 +1,3 @@
+ .include "line2.inc"
+
+ mac
diff --git a/gas/testsuite/gas/elf/section12b.d b/gas/testsuite/gas/elf/section12b.d
index 92dd3f7..582891e 100644
--- a/gas/testsuite/gas/elf/section12b.d
+++ b/gas/testsuite/gas/elf/section12b.d
@@ -1,7 +1,7 @@
#source: section12.s
#as: --no-pad-sections
#objdump: -s
-#name: mbind section contents 16
+#name: mbind section contents 12
# RX annoyingly reorders the sections so that they do not match the sequence
# expected below.
#xfail: rx-*-*
diff --git a/gas/testsuite/gas/elf/section13.d b/gas/testsuite/gas/elf/section13.d
index 39bc2a3..06d9ddf 100644
--- a/gas/testsuite/gas/elf/section13.d
+++ b/gas/testsuite/gas/elf/section13.d
@@ -1,4 +1,4 @@
#name: mbind sections without SHF_ALLOC
#error_output: section13.l
#xfail: msp430-*-* visium-*-*
-#xfail: *-*-hpux* *-*-cloudabi
+#xfail: *-*-hpux*
diff --git a/gas/testsuite/gas/elf/section23a.d b/gas/testsuite/gas/elf/section23.d
index 10a5344c..10a5344c 100644
--- a/gas/testsuite/gas/elf/section23a.d
+++ b/gas/testsuite/gas/elf/section23.d
diff --git a/gas/testsuite/gas/elf/section23b.d b/gas/testsuite/gas/elf/section23b.d
deleted file mode 100644
index c85200e..0000000
--- a/gas/testsuite/gas/elf/section23b.d
+++ /dev/null
@@ -1,6 +0,0 @@
-#name: SHF_GNU_RETAIN set with numeric flag value in .section for non-GNU OSABI target
-#source: section23.s
-#error_output: section23b.err
-#target: msp430-*-elf visium-*-elf
-
-# This test only runs for targets which set ELFOSABI_STANDALONE.
diff --git a/gas/testsuite/gas/elf/section23b.err b/gas/testsuite/gas/elf/section23b.err
deleted file mode 100644
index 83de60c..0000000
--- a/gas/testsuite/gas/elf/section23b.err
+++ /dev/null
@@ -1,2 +0,0 @@
-.*: Assembler messages:
-.*:1: Error: GNU_RETAIN section is supported only by GNU and FreeBSD targets
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index b068b32..564ca82 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -861,6 +861,7 @@ if {[is_elf_format] || [istarget "*-*-vxworks*"]} then {
run_dump_test "dw2-compressed-3b"
if {![istarget "i*86-*-elfiamcu"]} then {
+ run_dump_test nojumps
run_dump_test "property-2"
run_dump_test "property-3"
run_dump_test "property-4"
@@ -881,6 +882,7 @@ if {[is_elf_format] || [istarget "*-*-vxworks*"]} then {
}
run_dump_test "code16-2"
+ run_list_test "reloc16"
if {![istarget "*-*-dragonfly*"]
&& ![istarget "*-*-gnu*"]
diff --git a/gas/testsuite/gas/i386/nojumps.d b/gas/testsuite/gas/i386/nojumps.d
new file mode 100644
index 0000000..7b2f1c1
--- /dev/null
+++ b/gas/testsuite/gas/i386/nojumps.d
@@ -0,0 +1,31 @@
+#name: ix86 nojumps
+#objdump: -drw -Mi8086
+#warning_output: nojumps.e
+
+.*: +file format .*86.*
+
+Disassembly of section \.text:
+
+0+ <early>:
+[ ]*[a-f0-9]+: 73 03 jae 5 <early\+0x5>
+[ ]*[a-f0-9]+: e9 81 00 jmp 86 <late>
+[ ]*[a-f0-9]+: 70 (00|ff) jo [76] <.*> 6: R_(386|X86_64)_PC8 undef.*
+[ ]*[a-f0-9]+: 7a (00|ff) jp [98] <.*> 8: R_(386|X86_64)_PC8 .*
+[ ]*[a-f0-9]+: eb 7b jmp 86 <late>
+#...
+0+86 <late>:
+[ ]*[a-f0-9]+: 75 03 jne 8b <late\+0x5>
+[ ]*[a-f0-9]+: e9 75 ff jmp 0 <early>
+[ ]*[a-f0-9]+: 74 03 je 90 <late\+0xa>
+[ ]*[a-f0-9]+: e9 (00|fe) (00|ff) jmp (90|8e) <.*> 8e: R_(386|X86_64)_PC16 .*
+[ ]*[a-f0-9]+: 75 03 jne 95 <late\+0xf>
+[ ]*[a-f0-9]+: e9 (00|fe) (00|ff) jmp 9[53] <.*> 93: R_(386|X86_64)_PC16 undef.*
+[ ]*[a-f0-9]+: 79 03 jns 9a <late\+0x14>
+[ ]*[a-f0-9]+: e9 66 ff jmp 0 <early>
+[ ]*[a-f0-9]+: c3 ret
+#...
+Disassembly of section \.text\.other:
+
+0+ <other>:
+[ ]*[a-f0-9]+: 78 (00|ff) js [21] <.*> 1: R_(386|X86_64)_PC8 .*
+#pass
diff --git a/gas/testsuite/gas/i386/nojumps.e b/gas/testsuite/gas/i386/nojumps.e
new file mode 100644
index 0000000..b5614c1
--- /dev/null
+++ b/gas/testsuite/gas/i386/nojumps.e
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*:11: Warning: long jump required
+.*:16: Warning: long jump required
diff --git a/gas/testsuite/gas/i386/nojumps.s b/gas/testsuite/gas/i386/nojumps.s
new file mode 100644
index 0000000..faf088b
--- /dev/null
+++ b/gas/testsuite/gas/i386/nojumps.s
@@ -0,0 +1,21 @@
+ .code16
+ .arch i8086,nojumps
+
+ .section .text.other, "ax", @progbits
+other:
+ js early
+ ret
+
+ .text
+early:
+ jc late
+ jo undef
+ jp other
+ .nops 125
+late:
+ jz early
+ .arch i8086,jumps
+ jnz other
+ jz undef
+ js early
+ ret
diff --git a/gas/testsuite/gas/i386/reloc16.l b/gas/testsuite/gas/i386/reloc16.l
new file mode 100644
index 0000000..9abe379
--- /dev/null
+++ b/gas/testsuite/gas/i386/reloc16.l
@@ -0,0 +1,4 @@
+.*: Assembler messages:
+.*:4: Error: .*4-byte reloc.*2-byte field.*
+.*:5: Error: .*4-byte reloc.*2-byte field.*
+.*:6: Error: .*4-byte reloc.*2-byte field.*
diff --git a/gas/testsuite/gas/i386/reloc16.s b/gas/testsuite/gas/i386/reloc16.s
new file mode 100644
index 0000000..c5da920
--- /dev/null
+++ b/gas/testsuite/gas/i386/reloc16.s
@@ -0,0 +1,6 @@
+ .code16
+ .text
+plt:
+ call func@plt
+ jz func@plt
+ jmp func@plt
diff --git a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d
index d5476d3..68c73e9 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d
+++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-intel.d
@@ -139,14 +139,6 @@ Disassembly of section \.text:
[ ]*[a-f0-9]+:[ ]*62 52 87 00 f7 df[ ]+shrx[ ]+r11,r15,r31
[ ]*[a-f0-9]+:[ ]*62 5a 87 00 f7 bc 87 23 01 00 00[ ]+shrx[ ]+r15,QWORD PTR \[r31\+rax\*4\+0x123\],r31
[ ]*[a-f0-9]+:[ ]*62 da 7d 08 49 84 87 23 01 00 00[ ]+sttilecfg[ ]+\[r31\+rax\*4\+0x123\]
-[ ]*[a-f0-9]+:[ ]*62 da 7c 08 6e b4 c7 23 01 00 00[ ]+t2rpntlvwz0 tmm6,\[r31\+rax\*8\+0x123\]
-[ ]*[a-f0-9]+:[ ]*62 dd 7c 08 f8 b4 c7 23 01 00 00[ ]+t2rpntlvwz0rs tmm6,\[r31\+rax\*8\+0x123\]
-[ ]*[a-f0-9]+:[ ]*62 dd 7c 08 f9 b4 c7 23 01 00 00[ ]+t2rpntlvwz0rst1 tmm6,\[r31\+rax\*8\+0x123\]
-[ ]*[a-f0-9]+:[ ]*62 da 7c 08 6f b4 c7 23 01 00 00[ ]+t2rpntlvwz0t1 tmm6,\[r31\+rax\*8\+0x123\]
-[ ]*[a-f0-9]+:[ ]*62 da 7d 08 6e b4 c7 23 01 00 00[ ]+t2rpntlvwz1 tmm6,\[r31\+rax\*8\+0x123\]
-[ ]*[a-f0-9]+:[ ]*62 dd 7d 08 f8 b4 c7 23 01 00 00[ ]+t2rpntlvwz1rs tmm6,\[r31\+rax\*8\+0x123\]
-[ ]*[a-f0-9]+:[ ]*62 dd 7d 08 f9 b4 c7 23 01 00 00[ ]+t2rpntlvwz1rst1 tmm6,\[r31\+rax\*8\+0x123\]
-[ ]*[a-f0-9]+:[ ]*62 da 7d 08 6f b4 c7 23 01 00 00[ ]+t2rpntlvwz1t1 tmm6,\[r31\+rax\*8\+0x123\]
[ ]*[a-f0-9]+:[ ]*62 da 7f 08 4b b4 87 23 01 00 00[ ]+tileloadd tmm6,\[r31\+rax\*4\+0x123\]
[ ]*[a-f0-9]+:[ ]*62 b2 7b 08 4a b4 fd 00 00 00 10[ ]+tileloaddrs[ ]+tmm6,\[rbp\+r31\*8\+0x10000000\]
[ ]*[a-f0-9]+:[ ]*62 fa 7f 08 4a 1c 20[ ]+tileloaddrs[ ]+tmm3,\[r16\+riz\*1\]
@@ -286,14 +278,6 @@ Disassembly of section \.text:
[ ]*[a-f0-9]+:[ ]*62 52 87 00 f7 df[ ]+shrx[ ]+r11,r15,r31
[ ]*[a-f0-9]+:[ ]*62 5a 87 00 f7 bc 87 23 01 00 00[ ]+shrx[ ]+r15,QWORD PTR \[r31\+rax\*4\+0x123\],r31
[ ]*[a-f0-9]+:[ ]*62 da 7d 08 49 84 87 23 01 00 00[ ]+sttilecfg[ ]+\[r31\+rax\*4\+0x123\]
-[ ]*[a-f0-9]+:[ ]*62 da 7c 08 6e b4 c7 23 01 00 00[ ]+t2rpntlvwz0 tmm6,\[r31\+rax\*8\+0x123\]
-[ ]*[a-f0-9]+:[ ]*62 dd 7c 08 f8 b4 c7 23 01 00 00[ ]+t2rpntlvwz0rs tmm6,\[r31\+rax\*8\+0x123\]
-[ ]*[a-f0-9]+:[ ]*62 dd 7c 08 f9 b4 c7 23 01 00 00[ ]+t2rpntlvwz0rst1 tmm6,\[r31\+rax\*8\+0x123\]
-[ ]*[a-f0-9]+:[ ]*62 da 7c 08 6f b4 c7 23 01 00 00[ ]+t2rpntlvwz0t1 tmm6,\[r31\+rax\*8\+0x123\]
-[ ]*[a-f0-9]+:[ ]*62 da 7d 08 6e b4 c7 23 01 00 00[ ]+t2rpntlvwz1 tmm6,\[r31\+rax\*8\+0x123\]
-[ ]*[a-f0-9]+:[ ]*62 dd 7d 08 f8 b4 c7 23 01 00 00[ ]+t2rpntlvwz1rs tmm6,\[r31\+rax\*8\+0x123\]
-[ ]*[a-f0-9]+:[ ]*62 dd 7d 08 f9 b4 c7 23 01 00 00[ ]+t2rpntlvwz1rst1 tmm6,\[r31\+rax\*8\+0x123\]
-[ ]*[a-f0-9]+:[ ]*62 da 7d 08 6f b4 c7 23 01 00 00[ ]+t2rpntlvwz1t1 tmm6,\[r31\+rax\*8\+0x123\]
[ ]*[a-f0-9]+:[ ]*62 da 7f 08 4b b4 87 23 01 00 00[ ]+tileloadd tmm6,\[r31\+rax\*4\+0x123\]
[ ]*[a-f0-9]+:[ ]*62 b2 7b 08 4a b4 fd 00 00 00 10[ ]+tileloaddrs[ ]+tmm6,\[rbp\+r31\*8\+0x10000000\]
[ ]*[a-f0-9]+:[ ]*62 fa 7f 08 4a 1c 20[ ]+tileloaddrs[ ]+tmm3,\[r16\+riz\*1\]
diff --git a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d
index c445a44..3ced6d5 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d
+++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-wig.d
@@ -139,14 +139,6 @@ Disassembly of section \.text:
[ ]*[a-f0-9]+:[ ]*62 52 87 00 f7 df[ ]+shrx[ ]+%r31,%r15,%r11
[ ]*[a-f0-9]+:[ ]*62 5a 87 00 f7 bc 87 23 01 00 00[ ]+shrx[ ]+%r31,0x123\(%r31,%rax,4\),%r15
[ ]*[a-f0-9]+:[ ]*62 da 7d 08 49 84 87 23 01 00 00[ ]+sttilecfg[ ]+0x123\(%r31,%rax,4\)
-[ ]*[a-f0-9]+:[ ]*62 da 7c 08 6e b4 c7 23 01 00 00[ ]+t2rpntlvwz0[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 dd 7c 08 f8 b4 c7 23 01 00 00[ ]+t2rpntlvwz0rs[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 dd 7c 08 f9 b4 c7 23 01 00 00[ ]+t2rpntlvwz0rst1[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 da 7c 08 6f b4 c7 23 01 00 00[ ]+t2rpntlvwz0t1[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 da 7d 08 6e b4 c7 23 01 00 00[ ]+t2rpntlvwz1[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 dd 7d 08 f8 b4 c7 23 01 00 00[ ]+t2rpntlvwz1rs[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 dd 7d 08 f9 b4 c7 23 01 00 00[ ]+t2rpntlvwz1rst1[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 da 7d 08 6f b4 c7 23 01 00 00[ ]+t2rpntlvwz1t1[ ]+0x123\(%r31,%rax,8\),%tmm6
[ ]*[a-f0-9]+:[ ]*62 da 7f 08 4b b4 87 23 01 00 00[ ]+tileloadd[ ]+0x123\(%r31,%rax,4\),%tmm6
[ ]*[a-f0-9]+:[ ]*62 b2 7b 08 4a b4 fd 00 00 00 10[ ]+tileloaddrs[ ]+0x10000000\(%rbp,%r31,8\),%tmm6
[ ]*[a-f0-9]+:[ ]*62 fa 7f 08 4a 1c 20[ ]+tileloaddrs[ ]+\(%r16,%riz,1\),%tmm3
@@ -286,14 +278,6 @@ Disassembly of section \.text:
[ ]*[a-f0-9]+:[ ]*62 52 87 00 f7 df[ ]+shrx[ ]+%r31,%r15,%r11
[ ]*[a-f0-9]+:[ ]*62 5a 87 00 f7 bc 87 23 01 00 00[ ]+shrx[ ]+%r31,0x123\(%r31,%rax,4\),%r15
[ ]*[a-f0-9]+:[ ]*62 da 7d 08 49 84 87 23 01 00 00[ ]+sttilecfg[ ]+0x123\(%r31,%rax,4\)
-[ ]*[a-f0-9]+:[ ]*62 da 7c 08 6e b4 c7 23 01 00 00[ ]+t2rpntlvwz0[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 dd 7c 08 f8 b4 c7 23 01 00 00[ ]+t2rpntlvwz0rs[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 dd 7c 08 f9 b4 c7 23 01 00 00[ ]+t2rpntlvwz0rst1[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 da 7c 08 6f b4 c7 23 01 00 00[ ]+t2rpntlvwz0t1[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 da 7d 08 6e b4 c7 23 01 00 00[ ]+t2rpntlvwz1[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 dd 7d 08 f8 b4 c7 23 01 00 00[ ]+t2rpntlvwz1rs[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 dd 7d 08 f9 b4 c7 23 01 00 00[ ]+t2rpntlvwz1rst1[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 da 7d 08 6f b4 c7 23 01 00 00[ ]+t2rpntlvwz1t1[ ]+0x123\(%r31,%rax,8\),%tmm6
[ ]*[a-f0-9]+:[ ]*62 da 7f 08 4b b4 87 23 01 00 00[ ]+tileloadd[ ]+0x123\(%r31,%rax,4\),%tmm6
[ ]*[a-f0-9]+:[ ]*62 b2 7b 08 4a b4 fd 00 00 00 10[ ]+tileloaddrs[ ]+0x10000000\(%rbp,%r31,8\),%tmm6
[ ]*[a-f0-9]+:[ ]*62 fa 7f 08 4a 1c 20[ ]+tileloaddrs[ ]+\(%r16,%riz,1\),%tmm3
diff --git a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d
index d9ebf3b..64498ff 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d
+++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.d
@@ -139,14 +139,6 @@ Disassembly of section \.text:
[ ]*[a-f0-9]+:[ ]*62 52 87 00 f7 df[ ]+shrx[ ]+%r31,%r15,%r11
[ ]*[a-f0-9]+:[ ]*62 5a 87 00 f7 bc 87 23 01 00 00[ ]+shrx[ ]+%r31,0x123\(%r31,%rax,4\),%r15
[ ]*[a-f0-9]+:[ ]*62 da 7d 08 49 84 87 23 01 00 00[ ]+sttilecfg[ ]+0x123\(%r31,%rax,4\)
-[ ]*[a-f0-9]+:[ ]*62 da 7c 08 6e b4 c7 23 01 00 00[ ]+t2rpntlvwz0[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 dd 7c 08 f8 b4 c7 23 01 00 00[ ]+t2rpntlvwz0rs[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 dd 7c 08 f9 b4 c7 23 01 00 00[ ]+t2rpntlvwz0rst1[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 da 7c 08 6f b4 c7 23 01 00 00[ ]+t2rpntlvwz0t1[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 da 7d 08 6e b4 c7 23 01 00 00[ ]+t2rpntlvwz1[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 dd 7d 08 f8 b4 c7 23 01 00 00[ ]+t2rpntlvwz1rs[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 dd 7d 08 f9 b4 c7 23 01 00 00[ ]+t2rpntlvwz1rst1[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 da 7d 08 6f b4 c7 23 01 00 00[ ]+t2rpntlvwz1t1[ ]+0x123\(%r31,%rax,8\),%tmm6
[ ]*[a-f0-9]+:[ ]*62 da 7f 08 4b b4 87 23 01 00 00[ ]+tileloadd[ ]+0x123\(%r31,%rax,4\),%tmm6
[ ]*[a-f0-9]+:[ ]*62 b2 7b 08 4a b4 fd 00 00 00 10[ ]+tileloaddrs[ ]+0x10000000\(%rbp,%r31,8\),%tmm6
[ ]*[a-f0-9]+:[ ]*62 fa 7f 08 4a 1c 20[ ]+tileloaddrs[ ]+\(%r16,%riz,1\),%tmm3
@@ -286,14 +278,6 @@ Disassembly of section \.text:
[ ]*[a-f0-9]+:[ ]*62 52 87 00 f7 df[ ]+shrx[ ]+%r31,%r15,%r11
[ ]*[a-f0-9]+:[ ]*62 5a 87 00 f7 bc 87 23 01 00 00[ ]+shrx[ ]+%r31,0x123\(%r31,%rax,4\),%r15
[ ]*[a-f0-9]+:[ ]*62 da 7d 08 49 84 87 23 01 00 00[ ]+sttilecfg[ ]+0x123\(%r31,%rax,4\)
-[ ]*[a-f0-9]+:[ ]*62 da 7c 08 6e b4 c7 23 01 00 00[ ]+t2rpntlvwz0[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 dd 7c 08 f8 b4 c7 23 01 00 00[ ]+t2rpntlvwz0rs[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 dd 7c 08 f9 b4 c7 23 01 00 00[ ]+t2rpntlvwz0rst1[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 da 7c 08 6f b4 c7 23 01 00 00[ ]+t2rpntlvwz0t1[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 da 7d 08 6e b4 c7 23 01 00 00[ ]+t2rpntlvwz1[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 dd 7d 08 f8 b4 c7 23 01 00 00[ ]+t2rpntlvwz1rs[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 dd 7d 08 f9 b4 c7 23 01 00 00[ ]+t2rpntlvwz1rst1[ ]+0x123\(%r31,%rax,8\),%tmm6
-[ ]*[a-f0-9]+:[ ]*62 da 7d 08 6f b4 c7 23 01 00 00[ ]+t2rpntlvwz1t1[ ]+0x123\(%r31,%rax,8\),%tmm6
[ ]*[a-f0-9]+:[ ]*62 da 7f 08 4b b4 87 23 01 00 00[ ]+tileloadd[ ]+0x123\(%r31,%rax,4\),%tmm6
[ ]*[a-f0-9]+:[ ]*62 b2 7b 08 4a b4 fd 00 00 00 10[ ]+tileloaddrs[ ]+0x10000000\(%rbp,%r31,8\),%tmm6
[ ]*[a-f0-9]+:[ ]*62 fa 7f 08 4a 1c 20[ ]+tileloaddrs[ ]+\(%r16,%riz,1\),%tmm3
diff --git a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s
index f0bcb3a..f95ff50 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s
+++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted.s
@@ -133,14 +133,6 @@ _start:
shrx %r31,%r15,%r11
shrx %r31,0x123(%r31,%rax,4),%r15
sttilecfg 0x123(%r31,%rax,4)
- t2rpntlvwz0 0x123(%r31,%rax,8),%tmm6
- t2rpntlvwz0rs 0x123(%r31,%rax,8),%tmm6
- t2rpntlvwz0rst1 0x123(%r31,%rax,8),%tmm6
- t2rpntlvwz0t1 0x123(%r31,%rax,8),%tmm6
- t2rpntlvwz1 0x123(%r31,%rax,8),%tmm6
- t2rpntlvwz1rs 0x123(%r31,%rax,8),%tmm6
- t2rpntlvwz1rst1 0x123(%r31,%rax,8),%tmm6
- t2rpntlvwz1t1 0x123(%r31,%rax,8),%tmm6
tileloadd 0x123(%r31,%rax,4),%tmm6
tileloaddrs 0x10000000(%rbp, %r31, 8), %tmm6
tileloaddrs (%r16), %tmm3
@@ -282,14 +274,6 @@ _start:
shrx r11,r15,r31
shrx r15,QWORD PTR [r31+rax*4+0x123],r31
sttilecfg [r31+rax*4+0x123]
- t2rpntlvwz0 tmm6,[r31+rax*8+0x123]
- t2rpntlvwz0rs tmm6,[r31+rax*8+0x123]
- t2rpntlvwz0rst1 tmm6,[r31+rax*8+0x123]
- t2rpntlvwz0t1 tmm6,[r31+rax*8+0x123]
- t2rpntlvwz1 tmm6,[r31+rax*8+0x123]
- t2rpntlvwz1rs tmm6,[r31+rax*8+0x123]
- t2rpntlvwz1rst1 tmm6,[r31+rax*8+0x123]
- t2rpntlvwz1t1 tmm6,[r31+rax*8+0x123]
tileloadd tmm6,[r31+rax*4+0x123]
tileloaddrs tmm6, [rbp+r31*8+0x10000000]
tileloaddrs tmm3, [r16]
diff --git a/gas/testsuite/gas/i386/x86-64-fred-intel.d b/gas/testsuite/gas/i386/x86-64-fred-intel.d
deleted file mode 100644
index 0d8183e..0000000
--- a/gas/testsuite/gas/i386/x86-64-fred-intel.d
+++ /dev/null
@@ -1,14 +0,0 @@
-#objdump: -dw -Mintel
-#name: x86_64 FRED insns (Intel disassembly)
-#source: x86-64-fred.s
-
-.*: +file format .*
-
-Disassembly of section \.text:
-
-0+ <_start>:
-\s*[a-f0-9]+:\s*f2 0f 01 ca\s+erets
-\s*[a-f0-9]+:\s*f3 0f 01 ca\s+eretu
-\s*[a-f0-9]+:\s*f2 0f 01 ca\s+erets
-\s*[a-f0-9]+:\s*f3 0f 01 ca\s+eretu
-#pass
diff --git a/gas/testsuite/gas/i386/x86-64-movrs-suffix-intel.d b/gas/testsuite/gas/i386/x86-64-movrs-suffix-intel.d
deleted file mode 100644
index b1dcb2d..0000000
--- a/gas/testsuite/gas/i386/x86-64-movrs-suffix-intel.d
+++ /dev/null
@@ -1,15 +0,0 @@
-#objdump: -dwMsuffix -Mintel
-#name: x86_64 MOVRS insns
-#source: x86-64-movrs-suffix.s
-
-.*: +file format .*
-
-Disassembly of section \.text:
-
-#...
-[a-f0-9]+ <_intel>:
-\s*[a-f0-9]+:\s*66 0f 38 8b 92 00 ff ff ff\s+movrsw -0x100\(%rdx\),%dx
-\s*[a-f0-9]+:\s*0f 38 8b 92 00 fe ff ff\s+movrsl -0x200\(%rdx\),%edx
-\s*[a-f0-9]+:\s*4c 0f 38 8b a2 00 fc ff ff\s+movrsq -0x400\(%rdx\),%r12
-\s*[a-f0-9]+:\s*0f 38 8a 5a 80\s+movrsb -0x80\(%rdx\),%bl
-#pass
diff --git a/gas/testsuite/gas/i386/x86-64-movrs-suffix.d b/gas/testsuite/gas/i386/x86-64-movrs-suffix.d
index 7f71b1d..d43a368 100644
--- a/gas/testsuite/gas/i386/x86-64-movrs-suffix.d
+++ b/gas/testsuite/gas/i386/x86-64-movrs-suffix.d
@@ -1,5 +1,5 @@
#objdump: -dwMsuffix
-#name: x86_64 MOVRS insns
+#name: x86_64 MOVRS insns (w/ suffix)
.*: +file format .*
diff --git a/gas/testsuite/gas/i386/x86-64-movrs-suffix.s b/gas/testsuite/gas/i386/x86-64-movrs-suffix.s
index 6120b76..d4f03ea 100644
--- a/gas/testsuite/gas/i386/x86-64-movrs-suffix.s
+++ b/gas/testsuite/gas/i386/x86-64-movrs-suffix.s
@@ -6,10 +6,3 @@ _start:
movrsl -512(%rdx), %edx
movrsq -1024(%rdx), %r12
movrsb -128(%rdx), %bl
-
-_intel:
- .intel_syntax noprefix
- movrsw dx, WORD PTR [rdx-256]
- movrsl edx, DWORD PTR [rdx-512]
- movrsq r12, QWORD PTR [rdx-1024]
- movrsb bl, BYTE PTR [rdx-128]
diff --git a/gas/testsuite/gas/i386/x86-64-opcode.d b/gas/testsuite/gas/i386/x86-64-opcode.d
index 1b8a9fa..0d7cbd2 100644
--- a/gas/testsuite/gas/i386/x86-64-opcode.d
+++ b/gas/testsuite/gas/i386/x86-64-opcode.d
@@ -328,6 +328,7 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: f1 int1
[ ]*[a-f0-9]+: cc int3
[ ]*[a-f0-9]+: cd 90 int \$0x90
+[ ]*[a-f0-9]+: d6 udb
[ ]*[a-f0-9]+: f6 c9 01 test \$(0x)?0*1,%cl
[ ]*[a-f0-9]+: 66 f7 c9 02 00 test \$(0x)?0*2,%cx
[ ]*[a-f0-9]+: f7 c9 04 00 00 00 test \$(0x)?0*4,%ecx
diff --git a/gas/testsuite/gas/i386/x86-64-opcode.s b/gas/testsuite/gas/i386/x86-64-opcode.s
index 220998c..95559d7 100644
--- a/gas/testsuite/gas/i386/x86-64-opcode.s
+++ b/gas/testsuite/gas/i386/x86-64-opcode.s
@@ -457,6 +457,7 @@
int1
int3
int $0x90
+ udb
.insn 0xf6/1, $1, %cl
.insn 0xf7/1, $2{:u16}, %cx
diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp
index d24e910..fd42263 100644
--- a/gas/testsuite/gas/i386/x86-64.exp
+++ b/gas/testsuite/gas/i386/x86-64.exp
@@ -539,6 +539,7 @@ run_dump_test "x86-64-amx-avx512"
run_dump_test "x86-64-amx-avx512-intel"
run_dump_test "x86-64-movrs"
run_dump_test "x86-64-movrs-intel"
+run_dump_test "x86-64-movrs-suffix"
run_dump_test "x86-64-movrs-avx10_2-512"
run_dump_test "x86-64-movrs-avx10_2-512-intel"
run_dump_test "x86-64-movrs-avx10_2-256"
diff --git a/gas/testsuite/gas/loongarch/dwarf-regnum.d b/gas/testsuite/gas/loongarch/dwarf-regnum.d
index 41956b1..bb8bacc 100644
--- a/gas/testsuite/gas/loongarch/dwarf-regnum.d
+++ b/gas/testsuite/gas/loongarch/dwarf-regnum.d
@@ -14,7 +14,7 @@ Contents of the .*:
Augmentation data: .*
#...
[a-zA-Z0-9]+ [a-zA-Z0-9]+ [a-zA-Z0-9]+ FDE cie=0+ pc=[a-zA-Z0-9]+\.\.[a-zA-Z0-9]+
- DW_CFA_advance_loc: 4 to 0+20
+ DW_CFA_advance_loc: 4 to 0+4
DW_CFA_offset_extended_sf: r0 \(\$zero\) at cfa\+8
DW_CFA_offset_extended_sf: r1 \(\$ra\) at cfa\+16
DW_CFA_offset_extended_sf: r2 \(\$tp\) at cfa\+24
diff --git a/gas/testsuite/gas/loongarch/frame_pc.d b/gas/testsuite/gas/loongarch/frame_pc.d
new file mode 100644
index 0000000..7bd862b
--- /dev/null
+++ b/gas/testsuite/gas/loongarch/frame_pc.d
@@ -0,0 +1,22 @@
+#objdump: -Wf -d -M no-aliases
+#skip: loongarch32-*-*
+
+.*: file format .*
+
+Contents of the .eh_frame section:
+#...
+00000014 0000000000000020 00000018 FDE cie=00000000 pc=0000000000000000..0000000000000020
+ DW_CFA_advance_loc: 4 to 0000000000000004
+#...
+
+Disassembly of section .text:
+
+0+0 <_start>:
+ 0: 02ffc063 addi.d \$sp, \$sp, -16
+ 4: 29c02076 st.d \$fp, \$sp, 8
+ 8: 02c04076 addi.d \$fp, \$sp, 16
+ c: 0015000c or \$t0, \$zero, \$zero
+ 10: 00150184 or \$a0, \$t0, \$zero
+ 14: 28c02076 ld.d \$fp, \$sp, 8
+ 18: 02c04063 addi.d \$sp, \$sp, 16
+ 1c: 4c000020 jirl \$zero, \$ra, 0
diff --git a/gas/testsuite/gas/loongarch/frame_pc.s b/gas/testsuite/gas/loongarch/frame_pc.s
new file mode 100644
index 0000000..8344d73
--- /dev/null
+++ b/gas/testsuite/gas/loongarch/frame_pc.s
@@ -0,0 +1,20 @@
+ .align 2
+ .globl _start
+ .type _start, @function
+_start:
+ .cfi_startproc
+ addi.d $sp,$sp,-16
+ .cfi_def_cfa_offset 16
+ st.d $fp,$sp,8
+ .cfi_offset 22, -8
+ addi.d $fp,$sp,16
+ .cfi_def_cfa 22, 0
+ or $t0,$zero,$zero
+ or $a0,$t0,$zero
+ ld.d $fp,$sp,8
+ .cfi_restore 22
+ addi.d $sp,$sp,16
+ .cfi_def_cfa_register 3
+ jr $ra
+ .cfi_endproc
+ .size _start, .-_start
diff --git a/gas/testsuite/gas/pe/long_file_symbol.d b/gas/testsuite/gas/pe/long_file_symbol.d
new file mode 100644
index 0000000..43510b9
--- /dev/null
+++ b/gas/testsuite/gas/pe/long_file_symbol.d
@@ -0,0 +1,5 @@
+#nm: -a
+
+#...
+.* long_file_symbol.s
+#pass
diff --git a/gas/testsuite/gas/pe/long_file_symbol.s b/gas/testsuite/gas/pe/long_file_symbol.s
new file mode 100644
index 0000000..066499f
--- /dev/null
+++ b/gas/testsuite/gas/pe/long_file_symbol.s
@@ -0,0 +1 @@
+ .file "long_file_symbol.s"
diff --git a/gas/testsuite/gas/pe/pe.exp b/gas/testsuite/gas/pe/pe.exp
index 00a6d14..8682789 100644
--- a/gas/testsuite/gas/pe/pe.exp
+++ b/gas/testsuite/gas/pe/pe.exp
@@ -31,7 +31,7 @@ run_dump_test "aligncomm-a"
run_dump_test "aligncomm-b"
run_dump_test "aligncomm-c"
run_dump_test "aligncomm-d"
-
+run_dump_test "long_file_symbol"
run_dump_test "section-align-1"
run_dump_test "section-align-3"
run_dump_test "section-exclude"
diff --git a/gas/testsuite/gas/ppc/future.d b/gas/testsuite/gas/ppc/future.d
index 5c008b5..645efd2 100644
--- a/gas/testsuite/gas/ppc/future.d
+++ b/gas/testsuite/gas/ppc/future.d
@@ -92,4 +92,16 @@ Disassembly of section \.text:
.* (3d e0 ff ff|ff ff e0 3d)
.*: (06 10 7f ff|ff 7f 10 06) paddis r15,0,2147483647,1 # 148
.* (3d e0 ff ff|ff ff e0 3d)
+.*: (03 a8 b8 11|11 b8 a8 03) vucmprhn v13,v24,v21
+.*: (43 b0 b8 11|11 b8 b0 43) vucmprln v13,v24,v22
+.*: (83 b0 d8 11|11 d8 b0 83) vucmprhb v14,v24,v22
+.*: (c3 a8 d8 11|11 d8 a8 c3) vucmprlb v14,v24,v21
+.*: (03 b1 f8 11|11 f8 b1 03) vucmprhh v15,v24,v22
+.*: (43 a9 f8 11|11 f8 a9 43) vucmprlh v15,v24,v21
+.*: (83 b1 a0 12|12 a0 b1 83) vupkhsntob v21,v22
+.*: (83 a9 81 12|12 81 a9 83) vupklsntob v20,v21
+.*: (83 91 2b 12|12 2b 91 83) vupkint4tobf16 v17,v18,3
+.*: (83 c9 e3 11|11 e3 c9 83) vupkint8tobf16 v15,v25,1
+.*: (83 c1 17 12|12 17 c1 83) vupkint4tofp32 v16,v24,7
+.*: (83 b9 2f 12|12 2f b9 83) vupkint8tofp32 v17,v23,3
#pass
diff --git a/gas/testsuite/gas/ppc/future.s b/gas/testsuite/gas/ppc/future.s
index 55867de..0f00299 100644
--- a/gas/testsuite/gas/ppc/future.s
+++ b/gas/testsuite/gas/ppc/future.s
@@ -66,4 +66,16 @@ _start:
psubis 30, 10, -2147483647, 0
paddis 15, 0, 2147483647, 1
psubis 15, 0, -2147483647, 1
+ vucmprhn 13, 24, 21
+ vucmprln 13, 24, 22
+ vucmprhb 14, 24, 22
+ vucmprlb 14, 24, 21
+ vucmprhh 15, 24, 22
+ vucmprlh 15, 24, 21
+ vupkhsntob 21, 22
+ vupklsntob 20, 21
+ vupkint4tobf16 17, 18, 3
+ vupkint8tobf16 15, 25, 1
+ vupkint4tofp32 16, 24, 7
+ vupkint8tofp32 17, 23, 3
diff --git a/gas/testsuite/gas/riscv/attribute-11.s b/gas/testsuite/gas/riscv/attribute-11.s
index 81367da..ef4e7ff 100644
--- a/gas/testsuite/gas/riscv/attribute-11.s
+++ b/gas/testsuite/gas/riscv/attribute-11.s
@@ -1,3 +1,4 @@
# The csr is explicit used, so we need to generate the priv spec
# attributes even if the attributes are not set.
+ .option arch, +zicsr
csrr a0, 0x0
diff --git a/gas/testsuite/gas/riscv/c-zero-imm.d b/gas/testsuite/gas/riscv/c-zero-imm.d
index 1f3e485..c3bab3a 100644
--- a/gas/testsuite/gas/riscv/c-zero-imm.d
+++ b/gas/testsuite/gas/riscv/c-zero-imm.d
@@ -17,7 +17,10 @@ Disassembly of section .text:
[ ]+e:[ ]+00051513[ ]+slli[ ]+a0,a0,0x0
[ ]+12:[ ]+0005d593[ ]+srli[ ]+a1,a1,0x0
[ ]+16:[ ]+40065613[ ]+srai[ ]+a2,a2,0x0
-[ ]+1a:[ ]+0682[ ]+c.slli64[ ]+a3
-[ ]+1c:[ ]+8301[ ]+c.srli64[ ]+a4
-[ ]+1e:[ ]+8781[ ]+c.srai64[ ]+a5
+[ ]+1a:[ ]+0502[ ]+c.slli[ ]+a0,0x0
+[ ]+1c:[ ]+8181[ ]+c.srli[ ]+a1,0x0
+[ ]+1e:[ ]+8601[ ]+c.srai[ ]+a2,0x0
+[ ]+20:[ ]+0682[ ]+c.slli[ ]+a3,0x0
+[ ]+22:[ ]+8301[ ]+c.srli[ ]+a4,0x0
+[ ]+24:[ ]+8781[ ]+c.srai[ ]+a5,0x0
#...
diff --git a/gas/testsuite/gas/riscv/c-zero-imm.s b/gas/testsuite/gas/riscv/c-zero-imm.s
index 4c5a5c2..54269cf 100644
--- a/gas/testsuite/gas/riscv/c-zero-imm.s
+++ b/gas/testsuite/gas/riscv/c-zero-imm.s
@@ -9,11 +9,15 @@
addi a4,a4,0
# These are hints.
c.addi a5,0
- # Don't let these compress to hints.
+ # Don't let these compress to hints
slli a0, a0, 0
srli a1, a1, 0
srai a2, a2, 0
# These are hints.
+ c.slli a0, 0
+ c.srli a1, 0
+ c.srai a2, 0
+ # These are also hints.
c.slli64 a3
c.srli64 a4
c.srai64 a5
diff --git a/gas/testsuite/gas/riscv/csr-fail-nonexistent.s b/gas/testsuite/gas/riscv/csr-fail-nonexistent.s
index 6e6d27e..523cbd3 100644
--- a/gas/testsuite/gas/riscv/csr-fail-nonexistent.s
+++ b/gas/testsuite/gas/riscv/csr-fail-nonexistent.s
@@ -1 +1,2 @@
+ .option arch, +zicsr
csrr a0, nonexistent
diff --git a/gas/testsuite/gas/riscv/dis-partial-insn.s b/gas/testsuite/gas/riscv/dis-partial-insn.s
index 9945688..77453af 100644
--- a/gas/testsuite/gas/riscv/dis-partial-insn.s
+++ b/gas/testsuite/gas/riscv/dis-partial-insn.s
@@ -1,2 +1,3 @@
target:
+ .option norvc
nop
diff --git a/gas/testsuite/gas/riscv/fmv.x.s b/gas/testsuite/gas/riscv/fmv.x.s
index a16feda..83f9825 100644
--- a/gas/testsuite/gas/riscv/fmv.x.s
+++ b/gas/testsuite/gas/riscv/fmv.x.s
@@ -1,3 +1,4 @@
+.option arch, +f
fmv.x.w a2, fs7
fmv.x.s a2, fs7
fmv.w.x ft1, a6
diff --git a/gas/testsuite/gas/riscv/force_reloc.d b/gas/testsuite/gas/riscv/force_reloc.d
new file mode 100644
index 0000000..df37a60
--- /dev/null
+++ b/gas/testsuite/gas/riscv/force_reloc.d
@@ -0,0 +1,47 @@
+#as:
+#objdump: -dr -Mnumeric,no-aliases
+
+.*:[ ]+file format .*
+
+
+Disassembly of section .text:
+
+0+ <_start>:
+[ ]+0:[ ]+[0-9a-f]+[ ]+auipc[ ]+x1,0x0
+[ ]+0:[ ]+R_RISCV_GOT_HI20[ ]+sym_abs_before
+[ ]+0:[ ]+R_RISCV_RELAX.*
+[ ]+4:[ ]+[0-9a-f]+[ ]+(lw|ld)[ ]+x1,0\(x1\) # 0 .*
+[ ]+4:[ ]+R_RISCV_PCREL_LO12_I[ ]+.L0.*
+[ ]+4:[ ]+R_RISCV_RELAX.*
+[ ]+8:[ ]+[0-9a-f]+[ ]+auipc[ ]+x2,0x0
+[ ]+8:[ ]+R_RISCV_GOT_HI20[ ]+sym_abs_before
+[ ]+8:[ ]+R_RISCV_RELAX.*
+[ ]+c:[ ]+[0-9a-f]+[ ]+(lw|ld)[ ]+x2,0\(x2\) # 8 .*
+[ ]+c:[ ]+R_RISCV_PCREL_LO12_I[ ]+.L0.*
+[ ]+c:[ ]+R_RISCV_RELAX.*
+
+0+10 <.L1>:
+[ ]+10:[ ]+[0-9a-f]+[ ]+auipc[ ]+x3,0x0
+[ ]+10:[ ]+R_RISCV_GOT_HI20[ ]+sym_abs_before
+[ ]+14:[ ]+[0-9a-f]+[ ]+addi[ ]+x3,x3,0 # 10 .*
+[ ]+14:[ ]+R_RISCV_PCREL_LO12_I[ ]+.L1.*
+[ ]+14:[ ]+R_RISCV_RELAX.*
+[ ]+18:[ ]+[0-9a-f]+[ ]+auipc[ ]+x4,0x0
+[ ]+18:[ ]+R_RISCV_GOT_HI20[ ]+sym_abs_after
+[ ]+18:[ ]+R_RISCV_RELAX.*
+[ ]+1c:[ ]+[0-9a-f]+[ ]+(lw|ld)[ ]+x4,0\(x4\) # 18 .*
+[ ]+1c:[ ]+R_RISCV_PCREL_LO12_I[ ]+.L0.*
+[ ]+1c:[ ]+R_RISCV_RELAX.*
+[ ]+20:[ ]+[0-9a-f]+[ ]+auipc[ ]+x5,0x0
+[ ]+20:[ ]+R_RISCV_GOT_HI20[ ]+sym_abs_after
+[ ]+20:[ ]+R_RISCV_RELAX.*
+[ ]+24:[ ]+[0-9a-f]+[ ]+(lw|ld)[ ]+x5,0\(x5\) # 20 .*
+[ ]+24:[ ]+R_RISCV_PCREL_LO12_I[ ]+.L0.*
+[ ]+24:[ ]+R_RISCV_RELAX.*
+
+0+28 <.L2>:
+[ ]+28:[ ]+[0-9a-f]+[ ]+auipc[ ]+x6,0x0
+[ ]+28:[ ]+R_RISCV_GOT_HI20[ ]+sym_abs_after
+[ ]+2c:[ ]+[0-9a-f]+[ ]+addi[ ]+x6,x6,0 # 28 .*
+[ ]+2c:[ ]+R_RISCV_PCREL_LO12_I[ ]+.L2.*
+[ ]+2c:[ ]+R_RISCV_RELAX.*
diff --git a/gas/testsuite/gas/riscv/force_reloc.s b/gas/testsuite/gas/riscv/force_reloc.s
new file mode 100644
index 0000000..787c419
--- /dev/null
+++ b/gas/testsuite/gas/riscv/force_reloc.s
@@ -0,0 +1,22 @@
+.option pic
+.option norvc
+
+.global sym_abs_before
+.set sym_abs_before, 42
+
+.text
+.global _start
+_start:
+# Need defer expression
+la x1, sym_abs_before
+lga x2, sym_abs_before
+.L1: auipc x3, %got_pcrel_hi (sym_abs_before)
+ addi x3, x3, %pcrel_lo (.L1)
+# This is fine
+la x4, sym_abs_after
+lga x5, sym_abs_after
+.L2: auipc x6, %got_pcrel_hi (sym_abs_after)
+ addi x6, x6, %pcrel_lo (.L2)
+
+.global sym_abs_after
+.set sym_abs_after, 42
diff --git a/gas/testsuite/gas/riscv/fsxxi.s b/gas/testsuite/gas/riscv/fsxxi.s
index e42d786..67ba98b 100644
--- a/gas/testsuite/gas/riscv/fsxxi.s
+++ b/gas/testsuite/gas/riscv/fsxxi.s
@@ -1,3 +1,4 @@
+ .option arch, +f
fsrmi x10, 0x1f
fsrmi 0x1e
fsflagsi x14, 0x1d
diff --git a/gas/testsuite/gas/riscv/imply.d b/gas/testsuite/gas/riscv/imply.d
index c60711c..9fd6102 100644
--- a/gas/testsuite/gas/riscv/imply.d
+++ b/gas/testsuite/gas/riscv/imply.d
@@ -94,6 +94,7 @@ SYMBOL TABLE:
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zvkb1p0_zvkg1p0_zvks1p0_zvksed1p0_zvksg1p0_zvksh1p0_zvkt1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zvbc1p0_zvkb1p0_zvks1p0_zvksc1p0_zvksed1p0_zvksh1p0_zvkt1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zvkb1p0_zvks1p0_zvksed1p0_zvksh1p0_zvkt1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_sdtrig1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_smaia1p0_ssaia1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_smcdeleg1p0_ssccfg1p0_sscsrind1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_smcsrind1p0_sscsrind1p0
@@ -108,6 +109,7 @@ SYMBOL TABLE:
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_sscofpmf1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_sscounterenw1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_ssstateen1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_ssstrict1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_sstc1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_sstvala1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_sstvecd1p0
diff --git a/gas/testsuite/gas/riscv/imply.s b/gas/testsuite/gas/riscv/imply.s
index 74f2892..6d3a7e0 100644
--- a/gas/testsuite/gas/riscv/imply.s
+++ b/gas/testsuite/gas/riscv/imply.s
@@ -109,6 +109,8 @@ imply zvksg
imply zvksc
imply zvks
+imply sdtrig
+
imply smaia
imply smcdeleg
imply smcsrind
@@ -124,6 +126,7 @@ imply sscsrind
imply sscofpmf
imply sscounterenw
imply ssstateen
+imply ssstrict
imply sstc
imply sstvala
imply sstvecd
diff --git a/gas/testsuite/gas/riscv/march-help.l b/gas/testsuite/gas/riscv/march-help.l
index 709ccff..0ce2f89 100644
--- a/gas/testsuite/gas/riscv/march-help.l
+++ b/gas/testsuite/gas/riscv/march-help.l
@@ -110,6 +110,7 @@ All available -march extensions for RISC-V:
zcmp 1.0
zcmt 1.0
zclsd 1.0
+ sdtrig 1.0
sha 1.0
shcounterenw 1.0
shgatpa 1.0
@@ -134,6 +135,7 @@ All available -march extensions for RISC-V:
sscounterenw 1.0
ssctr 1.0
ssstateen 1.0
+ ssstrict 1.0
sstc 1.0
sstvala 1.0
sstvecd 1.0
diff --git a/gas/testsuite/gas/riscv/no-relax-align.s b/gas/testsuite/gas/riscv/no-relax-align.s
index 23b43e0..a625d64 100644
--- a/gas/testsuite/gas/riscv/no-relax-align.s
+++ b/gas/testsuite/gas/riscv/no-relax-align.s
@@ -1,4 +1,5 @@
.option norelax
+ .option norvc
.align 4
nop
nop
diff --git a/gas/testsuite/gas/riscv/odd-padding.s b/gas/testsuite/gas/riscv/odd-padding.s
index 9e434ea..a0120d2 100644
--- a/gas/testsuite/gas/riscv/odd-padding.s
+++ b/gas/testsuite/gas/riscv/odd-padding.s
@@ -1,8 +1,9 @@
- .text
-byte:
- nop
- .byte 0
- nop
- .p2align 2
- nop
- ret
+ .option norvc
+ .text
+byte:
+ nop
+ .byte 0
+ nop
+ .p2align 2
+ nop
+ ret
diff --git a/gas/testsuite/gas/riscv/t_insns.s b/gas/testsuite/gas/riscv/t_insns.s
index 9945688..77453af 100644
--- a/gas/testsuite/gas/riscv/t_insns.s
+++ b/gas/testsuite/gas/riscv/t_insns.s
@@ -1,2 +1,3 @@
target:
+ .option norvc
nop
diff --git a/gas/testsuite/gas/riscv/tlsdesc.s b/gas/testsuite/gas/riscv/tlsdesc.s
index 15468d5..2d0aec0 100644
--- a/gas/testsuite/gas/riscv/tlsdesc.s
+++ b/gas/testsuite/gas/riscv/tlsdesc.s
@@ -1,3 +1,4 @@
+ .option norvc
.section .tbss,"awT",@nobits
.global sg1
sg1:
diff --git a/gas/testsuite/gas/riscv/zca.d b/gas/testsuite/gas/riscv/zca.d
index 8649398..2b34b34 100644
--- a/gas/testsuite/gas/riscv/zca.d
+++ b/gas/testsuite/gas/riscv/zca.d
@@ -45,7 +45,7 @@ Disassembly of section .text:
[ ]+[0-9a-f]+:[ ]+8c25[ ]+c.xor[ ]+s0,s1
[ ]+[0-9a-f]+:[ ]+8006[ ]+c.mv[ ]+zero,ra
[ ]+[0-9a-f]+:[ ]+0006[ ]+c.slli[ ]+zero,0x1
-[ ]+[0-9a-f]+:[ ]+0002[ ]+c.slli64[ ]+zero
+[ ]+[0-9a-f]+:[ ]+0002[ ]+c.slli[ ]+zero,0x0
[ ]+[0-9a-f]+:[ ]+d845[ ]+c.beqz[ ]+s0,0[ ]+\<target\>
[ ]+[0-9a-f]+:[ ]+f45d[ ]+c.bnez[ ]+s0,0[ ]+\<target\>
[ ]+[0-9a-f]+:[ ]+b775[ ]+c.j[ ]+0[ ]+\<target\>
diff --git a/gas/testsuite/gas/sparc/asi-arch-error.l b/gas/testsuite/gas/sparc/asi-arch-error.l
index 406a2c6..89c35ce 100644
--- a/gas/testsuite/gas/sparc/asi-arch-error.l
+++ b/gas/testsuite/gas/sparc/asi-arch-error.l
@@ -1,3 +1,3 @@
.*asi-arch-error.s: Assembler messages:
.*asi-arch-error.s:3: Error: Architecture mismatch on "ldda \[%g0] ?#ASI_FL16_P,%f0".
-.*asi-arch-error.s:3: \(Requires v9b\|v9c\|v9d\|v9e\|v9v\|v9m.*; requested architecture is v9.\)
+.*asi-arch-error.s:3: Warning: \(Requires v9b\|v9c\|v9d\|v9e\|v9v\|v9m.*; requested architecture is v9.\)
diff --git a/gas/write.c b/gas/write.c
index 9d30445..33d821b 100644
--- a/gas/write.c
+++ b/gas/write.c
@@ -1456,7 +1456,6 @@ compress_frag (bool use_zstd, void *ctx, const char *contents, int in_size,
avail_out = obstack_room (ob);
if (avail_out <= 0)
{
- obstack_finish (ob);
f = frag_alloc (ob, 0);
f->fr_type = rs_fill;
(*last_newf)->fr_next = f;
@@ -1570,10 +1569,7 @@ compress_debug (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
avail_out = obstack_room (ob);
if (avail_out <= 0)
{
- fragS *newf;
-
- obstack_finish (ob);
- newf = frag_alloc (ob, 0);
+ fragS *newf = frag_alloc (ob, 0);
newf->fr_type = rs_fill;
last_newf->fr_next = newf;
last_newf = newf;
diff --git a/gdb/MAINTAINERS b/gdb/MAINTAINERS
index 37e1b4c..375068a 100644
--- a/gdb/MAINTAINERS
+++ b/gdb/MAINTAINERS
@@ -554,6 +554,7 @@ Paul Brook paul@codesourcery.com
Julian Brown julian@codesourcery.com
Iain Buclaw ibuclaw@gdcproject.org
Kevin Buettner kevinb@redhat.com
+Gopi Kumar Bulusu gopi@sankhya.com
Richard Bunt richard.bunt@linaro.org
Andrew Burgess aburgess@redhat.com
David Carlton carlton@bactrian.org
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index fc0c565..beacefc 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -907,13 +907,22 @@ ALL_TARGET_OBS = \
vax-tdep.o \
windows-tdep.o \
x86-tdep.o \
- xcoffread.o \
xstormy16-tdep.o \
xtensa-config.o \
xtensa-linux-tdep.o \
xtensa-tdep.o \
z80-tdep.o
+# Object files for reading specific types of debug information.
+coff_SRCS = coffread.c coff-pe-read.c
+dbx_SRCS = dbxread.c
+elf_SRCS = elfread.c stap-probe.c dtrace-probe.c
+macho_SRCS = machoread.c
+mips_SRCS = mipsread.c
+xcoff_SRCS = xcoffread.c
+FORMAT_SRCS = @FORMAT_SRCS@
+FORMAT_OBS = $(patsubst %.c,%.o,$(FORMAT_SRCS))
+
# The following native-target dependent variables are defined on
# configure.nat.
NAT_FILE = @NAT_FILE@
@@ -1070,8 +1079,6 @@ COMMON_SFILES = \
c-varobj.c \
charset.c \
cli-out.c \
- coff-pe-read.c \
- coffread.c \
complaints.c \
completer.c \
copying.c \
@@ -1085,7 +1092,6 @@ COMMON_SFILES = \
d-lang.c \
d-namespace.c \
d-valprint.c \
- dbxread.c \
dcache.c \
debug.c \
debuginfod-support.c \
@@ -1150,7 +1156,6 @@ COMMON_SFILES = \
memtag.c \
minidebug.c \
minsyms.c \
- mipsread.c \
namespace.c \
objc-lang.c \
objfiles.c \
@@ -1243,7 +1248,6 @@ SFILES = \
d-exp.y \
dtrace-probe.c \
elf-none-tdep.c \
- elfread.c \
f-exp.y \
gcore-elf.c \
gdb.c \
@@ -1271,31 +1275,67 @@ SFILES = \
# right, it is probably easiest just to list .h files here directly.
HFILES_NO_SRCDIR = \
+ aarch32-linux-nat.h \
aarch32-tdep.h \
+ aarch64-fbsd-tdep.h \
+ aarch64-linux-tdep.h \
+ aarch64-nat.h \
aarch64-ravenscar-thread.h \
aarch64-tdep.h \
+ ada-casefold.h \
+ ada-exp.h \
ada-lang.h \
addrmap.h \
alpha-bsd-tdep.h \
alpha-tdep.h \
- amd-dbgapi-target.h \
+ amd64-bsd-nat.h \
amd64-darwin-tdep.h \
+ amd64-fbsd-tdep.h \
amd64-linux-tdep.h \
amd64-nat.h \
amd64-ravenscar-thread.h \
amd64-tdep.h \
+ amd-dbgapi-target.h \
amdgpu-tdep.h \
annotate.h \
- arc-tdep.h \
+ arch/aarch32.h \
+ arch/aarch64-gcs-linux.h \
+ arch/aarch64.h \
+ arch/aarch64-insn.h \
+ arch/aarch64-mte.h \
+ arch/aarch64-mte-linux.h \
+ arch/aarch64-scalable-linux.h \
+ arch/amd64.h \
+ arch/amd64-linux-tdesc.h \
+ arch/arc.h \
+ arch/arm-get-next-pcs.h \
+ arch/arm.h \
+ arch/arm-linux.h \
+ arch/csky.h \
+ arch/i386.h \
+ arch/i386-linux-tdesc.h \
+ arch/loongarch.h \
+ arch/loongarch-insn.h \
+ arch/loongarch-syscall.h \
+ arch/ppc-linux-common.h \
+ arch/ppc-linux-tdesc.h \
+ arch/riscv.h \
+ arch/tic6x.h \
arch-utils.h \
+ arch/x86-linux-tdesc-features.h \
+ arch/x86-linux-tdesc.h \
+ arch/xtensa.h \
+ arc-linux-tdep.h \
+ arc-tdep.h \
+ arm-fbsd-tdep.h \
arm-linux-tdep.h \
arm-netbsd-tdep.h \
arm-tdep.h \
async-event.h \
auto-load.h \
auxv.h \
- ax.h \
ax-gdb.h \
+ ax.h \
bcache.h \
bfd-target.h \
bfin-tdep.h \
@@ -1304,96 +1344,161 @@ HFILES_NO_SRCDIR = \
breakpoint.h \
bsd-kvm.h \
bsd-uthread.h \
+ btrace.h \
bt-utils.h \
build-id.h \
- buildsym-legacy.h \
buildsym.h \
- c-lang.h \
+ buildsym-legacy.h \
+ c-exp.h \
+ cgen-remap.h \
charset.h \
charset-list.h \
+ c-lang.h \
+ cli/cli-cmds.h \
+ cli/cli-decode.h \
+ cli/cli-interp.h \
+ cli/cli-option.h \
+ cli/cli-script.h \
+ cli/cli-setshow.h \
+ cli/cli-style.h \
+ cli/cli-utils.h \
cli-out.h \
coff-pe-read.h \
command.h \
+ compile/compile-c.h \
+ compile/compile-cplus.h \
+ compile/compile.h \
+ compile/compile-internal.h \
+ compile/compile-object-load.h \
+ compile/compile-object-run.h \
+ compile/gcc-c-plugin.h \
+ compile/gcc-cp-plugin.h \
complaints.h \
completer.h \
+ config/djgpp/langinfo.h \
+ config/djgpp/nl_types.h \
+ config/i386/nm-x86-gnu.h \
+ config/nm-linux.h \
+ config/sparc/nm-sol2.h \
cp-abi.h \
cp-support.h \
+ cris-tdep.h \
csky-tdep.h \
- d-lang.h \
+ c-support.h \
+ ctfread.h \
darwin-nat.h \
dcache.h \
+ debuginfod-support.h \
defs.h \
dicos-tdep.h \
dictionary.h \
disasm-flags.h \
disasm.h \
+ disasm-selftests.h \
+ displaced-stepping.h \
+ d-lang.h \
dummy-frame.h \
+ dwarf2/abbrev.h \
+ dwarf2/abbrev-table-cache.h \
dwarf2/aranges.h \
- dwarf2/cooked-index.h \
+ dwarf2/attribute.h \
+ dwarf2/call-site.h \
dwarf2/cooked-index-entry.h \
+ dwarf2/cooked-indexer.h \
+ dwarf2/cooked-index.h \
dwarf2/cooked-index-shard.h \
dwarf2/cooked-index-worker.h \
- dwarf2/cooked-indexer.h \
dwarf2/cu.h \
- dwarf2/frame-tailcall.h \
- dwarf2/frame.h \
+ dwarf2/die.h \
+ dwarf2/dwz.h \
+ dwarf2/error.h \
dwarf2/expr.h \
+ dwarf2/file-and-dir.h \
+ dwarf2/frame.h \
+ dwarf2/frame-tailcall.h \
dwarf2/index-cache.h \
dwarf2/index-common.h \
+ dwarf2/index-write.h \
+ dwarf2/leb.h \
+ dwarf2/line-header.h \
+ dwarf2/line-program.h \
dwarf2/loc.h \
- dwarf2/read.h \
+ dwarf2/macro.h \
+ dwarf2/mapped-index.h \
+ dwarf2/parent-map.h \
+ dwarf2/public.h \
dwarf2/read-debug-names.h \
dwarf2/read-gdb-index.h \
+ dwarf2/read.h \
+ dwarf2/section.h \
+ dwarf2/sect-names.h \
+ dwarf2/stringify.h \
+ dwarf2/tag.h \
+ dwarf2/types.h \
+ dwarf2/unit-head.h \
+ elf-none-tdep.h \
event-top.h \
exceptions.h \
exec.h \
+ expop.h \
expression.h \
extension.h \
extension-priv.h \
extract-store-integer.h \
f-array-walker.h \
- f-lang.h \
fbsd-nat.h \
fbsd-tdep.h \
+ f-exp.h \
+ filename-seen-cache.h \
filesystem.h \
- frame.h \
+ f-lang.h \
frame-base.h \
+ frame.h \
+ frame-id.h \
frame-unwind.h \
frv-tdep.h \
ft32-tdep.h \
gcore-elf.h \
gcore.h \
+ gdbarch-gen.h \
+ gdbarch.h \
gdb_bfd.h \
+ gdbcore.h \
gdb_curses.h \
+ gdb-demangle.h \
gdb_expat.h \
gdb_proc_service.h \
gdb-stabs.h \
- gdb_vfork.h \
- gdb_wchar.h \
- gdbarch.h \
- gdbcore.h \
gdbthread.h \
gdbtypes.h \
+ gdb_vfork.h \
+ gdb_wchar.h \
glibc-tdep.h \
gmp-utils.h \
gnu-nat.h \
+ gnu-nat-mig.h \
go-lang.h \
gregset.h \
+ guile/guile.h \
+ guile/guile-internal.h \
hppa-bsd-tdep.h \
hppa-linux-offsets.h \
hppa-tdep.h \
i386-bsd-nat.h \
i386-darwin-tdep.h \
+ i386-fbsd-tdep.h \
i386-linux-tdep.h \
i386-tdep.h \
i387-tdep.h \
ia64-libunwind-tdep.h \
ia64-tdep.h \
+ infcall.h \
inf-child.h \
+ inferior.h \
+ inferior-iter.h \
inf-loop.h \
inf-ptrace.h \
- infcall.h \
- inferior.h \
+ infrun.h \
inline-frame.h \
interps.h \
jit.h \
@@ -1401,10 +1506,12 @@ HFILES_NO_SRCDIR = \
linespec.h \
linux-fork.h \
linux-nat.h \
+ linux-nat-trad.h \
linux-record.h \
linux-tdep.h \
location.h \
loongarch-tdep.h \
+ m2-exp.h \
m2-lang.h \
m32r-tdep.h \
m68k-tdep.h \
@@ -1412,106 +1519,209 @@ HFILES_NO_SRCDIR = \
macroscope.h \
macrotab.h \
main.h \
+ maint.h \
mdebugread.h \
memattr.h \
memory-map.h \
memrange.h \
+ memtag.h \
microblaze-tdep.h \
+ mi/mi-cmd-break.h \
+ mi/mi-cmds.h \
+ mi/mi-common.h \
+ mi/mi-console.h \
+ mi/mi-getopt.h \
+ mi/mi-interp.h \
+ mi/mi-main.h \
+ mi/mi-out.h \
+ mi/mi-parse.h \
+ minsyms.h \
+ mips-fbsd-tdep.h \
mips-linux-tdep.h \
mips-netbsd-tdep.h \
mips-tdep.h \
mn10300-tdep.h \
moxie-tdep.h \
+ namespace.h \
+ nat/aarch64-hw-point.h \
+ nat/aarch64-linux.h \
+ nat/aarch64-linux-hw-point.h \
+ nat/aarch64-mte-linux-ptrace.h \
+ nat/aarch64-scalable-linux-ptrace.h \
+ nat/aarch64-scalable-linux-sigcontext.h \
+ nat/amd64-linux-siginfo.h \
+ nat/fork-inferior.h \
+ nat/gdb_ptrace.h \
+ nat/gdb_thread_db.h \
+ nat/glibc_thread_db.h \
+ nat/i386-linux.h \
+ nat/linux-btrace.h \
+ nat/linux-namespaces.h \
+ nat/linux-nat.h \
+ nat/linux-osdata.h \
+ nat/linux-personality.h \
+ nat/linux-procfs.h \
+ nat/linux-ptrace.h \
+ nat/linux-waitpid.h \
+ nat/loongarch-hw-point.h \
+ nat/loongarch-linux.h \
+ nat/loongarch-linux-hw-point.h \
+ nat/mips-linux-watch.h \
+ nat/netbsd-nat.h \
+ nat/ppc-linux.h \
+ nat/riscv-linux-tdesc.h \
+ nat/windows-nat.h \
+ nat/x86-cpuid.h \
+ nat/x86-dregs.h \
+ nat/x86-gcc-cpuid.h \
+ nat/x86-linux-dregs.h \
+ nat/x86-linux.h \
+ nat/x86-linux-tdesc.h \
+ nat/x86-xstate.h \
+ nds32-tdep.h \
netbsd-nat.h \
netbsd-tdep.h \
- nds32-tdep.h \
- elf-none-tdep.h \
objc-lang.h \
+ objfile-flags.h \
objfiles.h \
obsd-nat.h \
obsd-tdep.h \
+ observable.h \
or1k-linux-tdep.h \
+ or1k-tdep.h \
osabi.h \
osdata.h \
- p-lang.h \
+ pager.h \
parser-defs.h \
+ p-lang.h \
+ ppc64-tdep.h \
ppc-fbsd-tdep.h \
ppc-linux-tdep.h \
ppc-netbsd-tdep.h \
ppc-obsd-tdep.h \
ppc-ravenscar-thread.h \
ppc-tdep.h \
- ppc64-tdep.h \
probe.h \
- proc-utils.h \
+ process-stratum-target.h \
procfs.h \
- progspace.h \
+ proc-utils.h \
+ producer.h \
progspace-and-thread.h \
+ progspace.h \
prologue-value.h \
psymtab.h \
+ python/py-color.h \
+ python/py-event.h \
+ python/py-events.h \
+ python/py-instruction.h \
+ python/py-record-btrace.h \
+ python/py-record-full.h \
+ python/py-record.h \
+ python/py-ref.h \
+ python/py-stopevent.h \
+ python/python.h \
+ python/python-internal.h \
+ python/py-uiout.h \
+ quick-symbol.h \
ravenscar-thread.h \
- record.h \
+ record-btrace.h \
record-full.h \
+ record.h \
regcache.h \
+ regformats/regdef.h \
reggroups.h \
+ registry.h \
regset.h \
- remote.h \
remote-fileio.h \
+ remote.h \
remote-notif.h \
riscv-fbsd-tdep.h \
+ riscv-linux-tdep.h \
riscv-ravenscar-thread.h \
riscv-tdep.h \
rs6000-aix-tdep.h \
run-on-main-thread.h \
+ rust-exp.h \
+ rust-lang.h \
s390-linux-tdep.h \
s390-tdep.h \
+ scoped-mock-context.h \
selftest-arch.h \
sentinel-frame.h \
ser-base.h \
ser-event.h \
+ serial.h \
ser-tcp.h \
ser-unix.h \
- serial.h \
sh-tdep.h \
sim-regno.h \
skip.h \
sol2-tdep.h \
- solib.h \
solib-aix.h \
solib-darwin.h \
+ solib-dsbt.h \
solib-frv.h \
+ solib.h \
solib-svr4.h \
solib-svr4-linux.h \
solib-target.h \
- source.h \
source-cache.h \
+ source.h \
+ sparc64-tdep.h \
sparc-nat.h \
sparc-ravenscar-thread.h \
sparc-tdep.h \
- sparc64-tdep.h \
split-name.h \
stabsread.h \
stack.h \
stap-probe.h \
svr4-tls-tdep.h \
+ symfile-add-flags.h \
symfile.h \
symtab.h \
- target.h \
+ target-connection.h \
target-dcache.h \
+ target-debug.h \
target-descriptions.h \
+ target-float.h \
+ target.h \
+ target/resume.h \
+ target-section.h \
+ target/target.h \
+ target/wait.h \
+ target/waitstatus.h \
terminal.h \
+ test-target.h \
+ thread-fsm.h \
+ thread-iter.h \
+ tic6x-tdep.h \
tid-parse.h \
+ tilegx-tdep.h \
top.h \
tracectf.h \
tracefile.h \
tracepoint.h \
trad-frame.h \
- target-float.h \
tramp-frame.h \
- type-stack.h \
+ tui/tui-command.h \
+ tui/tui-data.h \
+ tui/tui-disasm.h \
+ tui/tui-file.h \
+ tui/tui.h \
+ tui/tui-hooks.h \
+ tui/tui-io.h \
+ tui/tui-layout.h \
+ tui/tui-location.h \
+ tui/tui-regs.h \
+ tui/tui-source.h \
+ tui/tui-status.h \
+ tui/tui-wingeneral.h \
+ tui/tui-win.h \
+ tui/tui-winsource.h \
typeprint.h \
- ui.h \
+ type-stack.h \
ui-file.h \
+ ui.h \
ui-out.h \
ui-style.h \
user-regs.h \
@@ -1524,111 +1734,18 @@ HFILES_NO_SRCDIR = \
windows-nat.h \
windows-tdep.h \
x86-bsd-nat.h \
+ x86-fbsd-nat.h \
x86-linux-nat.h \
x86-nat.h \
+ x86-tdep.h \
xcoffread.h \
xml-builtin.h \
xml-support.h \
xml-syscall.h \
xml-tdesc.h \
xtensa-tdep.h \
- arch/aarch32.h \
- arch/aarch64.h \
- arch/aarch64-insn.h \
- arch/aarch64-mte.h \
- arch/aarch64-mte-linux.h \
- arch/aarch64-scalable-linux.h \
- arch/amd64-linux-tdesc.h \
- arch/arc.h \
- arch/arm.h \
- arch/i386-linux-tdesc.h \
- arch/i386.h \
- arch/loongarch.h \
- arch/ppc-linux-common.h \
- arch/ppc-linux-tdesc.h \
- arch/riscv.h \
- arch/x86-linux-tdesc-features.h \
- arch/x86-linux-tdesc.h \
- cli/cli-cmds.h \
- cli/cli-decode.h \
- cli/cli-script.h \
- cli/cli-setshow.h \
- cli/cli-style.h \
- cli/cli-utils.h \
- compile/compile.h \
- compile/compile-c.h \
- compile/compile-cplus.h \
- compile/compile-internal.h \
- compile/compile-object-load.h \
- compile/compile-object-run.h \
- compile/gcc-c-plugin.h \
- compile/gcc-cp-plugin.h \
- config/nm-linux.h \
- config/djgpp/langinfo.h \
- config/djgpp/nl_types.h \
- config/i386/nm-i386gnu.h \
- config/sparc/nm-sol2.h \
- mi/mi-cmds.h \
- mi/mi-common.h \
- mi/mi-console.h \
- mi/mi-getopt.h \
- mi/mi-main.h \
- mi/mi-out.h \
- mi/mi-parse.h \
- nat/aarch64-linux.h \
- nat/aarch64-linux-hw-point.h \
- nat/aarch64-mte-linux-ptrace.h \
- nat/aarch64-scalable-linux-ptrace.h \
- nat/aarch64-scalable-linux-sigcontext.h \
- nat/amd64-linux-siginfo.h \
- nat/gdb_ptrace.h \
- nat/gdb_thread_db.h \
- nat/fork-inferior.h \
- nat/i386-linux.h \
- nat/linux-btrace.h \
- nat/linux-namespaces.h \
- nat/linux-nat.h \
- nat/linux-osdata.h \
- nat/linux-personality.h \
- nat/linux-ptrace.h \
- nat/linux-waitpid.h \
- nat/loongarch-hw-point.h \
- nat/loongarch-linux.h \
- nat/loongarch-linux-hw-point.h \
- nat/mips-linux-watch.h \
- nat/ppc-linux.h \
- nat/x86-cpuid.h \
- nat/x86-dregs.h \
- nat/x86-gcc-cpuid.h \
- nat/x86-linux.h \
- nat/x86-linux-dregs.h \
- nat/x86-linux-tdesc.h \
- python/py-event.h \
- python/py-events.h \
- python/py-stopevent.h \
- python/python.h \
- python/python-internal.h \
- regformats/regdef.h \
- target/resume.h \
- target/target.h \
- target/wait.h \
- target/waitstatus.h \
- tui/tui.h \
- tui/tui-command.h \
- tui/tui-data.h \
- tui/tui-disasm.h \
- tui/tui-file.h \
- tui/tui-hooks.h \
- tui/tui-io.h \
- tui/tui-layout.h \
- tui/tui-location.h \
- tui/tui-regs.h \
- tui/tui-source.h \
- tui/tui-status.h \
- tui/tui-win.h \
- tui/tui-wingeneral.h \
- tui/tui-winsource.h \
- x86-tdep.h
+ yy-remap.h \
+ z80-tdep.h
# Header files that already have srcdir in them, or which are in objdir.
@@ -1870,7 +1987,6 @@ ALLDEPFILES = \
x86-gnu-nat.c \
x86-nat.c \
x86-tdep.c \
- xcoffread.c \
xstormy16-tdep.c \
xtensa-config.c \
xtensa-linux-nat.c \
@@ -1907,6 +2023,7 @@ DWARF2_SRCS = \
dwarf2/index-write.c \
dwarf2/leb.c \
dwarf2/line-header.c \
+ dwarf2/line-program.c \
dwarf2/loc.c \
dwarf2/macro.c \
dwarf2/parent-map.c \
@@ -1925,7 +2042,8 @@ COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \
$(patsubst %.c,%.o,$(COMMON_SFILES)) \
$(SUBDIR_CLI_OBS) \
$(SUBDIR_MI_OBS) \
- $(SUBDIR_TARGET_OBS)
+ $(SUBDIR_TARGET_OBS) \
+ $(FORMAT_OBS)
SUBDIRS = doc @subdirs@ data-directory
CLEANDIRS = $(SUBDIRS)
@@ -2282,8 +2400,7 @@ TAGS: $(TAGFILES_NO_SRCDIR) $(TAGFILES_WITH_SRCDIR)
echo $(srcdir)/$$i ; \
done ; for i in $(TAGFILES_WITH_SRCDIR); do \
echo $$i ; \
- done) | sed -e 's/\.o$$/\.c/'` \
- `find $(srcdir)/config -name '*.h' -print`
+ done) | sed -e 's/\.o$$/\.c/'`
tags: TAGS
diff --git a/gdb/NEWS b/gdb/NEWS
index 4c9aed4..b632cde 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -1,7 +1,45 @@
What has changed in GDB?
(Organized release by release)
-*** Changes since GDB 16
+*** Changes since GDB 17
+
+* Support for .gdb_index sections with version less than 7 has been
+ removed.
+
+* GDB now accepts --no-escape-args as an alternative to --args on the
+ command line. GDB will not escape special shell characters within
+ arguments after --no-escape-args.
+
+* gdbserver now accepts --no-escape-args as a command line flag. When
+ this flag is used gdbserver will not escape special shell characters
+ within the inferior arguments.
+
+* New targets
+
+GNU/Linux/MicroBlaze (gdbserver) microblazeel-*linux*
+
+* New commands
+
+maintenance test-remote-args ARGS
+ Test splitting and joining of inferior arguments ARGS as they would
+ be split and joined when being passed to a remote target.
+
+* Changed remote packets
+
+single-inf-arg in qSupported
+ The new single-inf-arg feature within the qSupported packet allows
+ GDB to inform the stub that it would like to send the inferior
+ arguments as a single string within the vRun packet. The stub can
+ reply with the single-inf-arg feature to indicate that it is able to
+ accept arguments as a single string.
+
+*** Changes in GDB 17
+
+* Debugging Linux programs that use x86-64 or x86-64 with 32-bit pointer
+ size (X32) Shadow Stacks are now supported.
+
+* Support for the shadow stack pointer register on x86-64 or x86-64 with
+ 32-bit pointer size (X32) GNU/Linux.
* Debugger Adapter Protocol changes
@@ -35,19 +73,31 @@
a -h or --help option, which prints each options and a brief
description.
+* The gcore script now has a -g option that lets you specify the GDB
+ binary invoked by gcore.
+
* On systems that support linker namespaces, the output of the command
"info sharedlibraries" may add one more column, NS, which identifies the
namespace into which the library was loaded, if more than one namespace
is active.
-* New built-in convenience variables $_active_linker_namespaces and
+* New built-in convenience variables $linker_namespace_count and
$_linker_namespace. These show the number of active linker
namespaces, and the namespace to which the current location belongs to.
- In systems that don't support linker namespaces, these always return
- the integers 1 and 0 respectively.
+ In systems that don't support linker namespaces, or if the inferior hasn't
+ started yet, these always return the integer 0.
* Add record full support for rv64gc architectures
+* Debugging Linux programs that use AArch64 Guarded Control Stacks is now
+ supported.
+
+* New "--binary-output" command line option instructs GDB to set the
+ translation mode of its stdout/stderr to binary mode. This disables
+ Line Feed translation. MS-Windows only.
+
+* The "catch syscall" command now works on riscv*-linux* targets.
+
* New commands
maintenance check psymtabs
@@ -59,12 +109,6 @@ maintenance check symtabs
maintenance canonicalize
Show the canonical form of a C++ name.
-maintenance set console-translation-mode <binary|text>
-maintenance show console-translation-mode
- Controls the translation mode of GDB stdout/stderr. MS-Windows only. In
- binary mode, no translation is done. In text mode, a Line Feed is
- translated into a Carriage Return-Line Feed combination.
-
set riscv numeric-register-names on|off
show riscv numeric-register-names
Controls whether GDB refers to risc-v registers by their numeric names
@@ -165,6 +209,10 @@ info threads [-gid] [-stopped] [-running] [ID]...
** New gdb.warning() function that takes a string and prints it as a
warning, with GDB's standard 'warning' prefix.
+ ** New attribute gdb.Value.is_unavailable, this checks for
+ unavailability like gdb.Value.is_optimized_out checks for
+ optimized out values.
+
* Guile API
** New type <gdb:color> for dealing with colors.
@@ -224,6 +272,17 @@ vFile:stat
* Support for stabs debugging format and the a.out/dbx object format is
deprecated, and will be removed in GDB 18.
+* Configure changes
+
+--enable-binary-file-formats=[FORMAT,...]
+--enable-binary-file-formats=all
+ A user can now decide to only compile support for certain file formats.
+ The available formats at this point are: dbx, coff, xcoff, elf, mach-o
+ and mips. Some targets require specific file formats to be available,
+ and in such cases, the configure script will warn the user and add
+ support anyway. By default, all formats will be compiled in, to
+ continue the behavior from before adding the switch.
+
* A new configure option was added, allowing support for the compile
subsystem to be disabled at configure time, in the form of
--disable-gdb-compile.
diff --git a/gdb/README b/gdb/README
index eca4181c..5dc2e7e 100644
--- a/gdb/README
+++ b/gdb/README
@@ -417,6 +417,30 @@ more obscure GDB `configure' options are not listed here.
There is no convenient way to generate a list of all available
targets.
+`--enable-binary-file-formats=FORMAT,FORMAT,...'
+`--enable-binary-file-formats=all'
+ Configure GDB to only be be able to read selected file formats.
+ The special value "all" causes all file formats to be compiled
+ in, and is the the default behavior of the option. This option
+ is meant for advanced users who are sure of what they expect,
+ if you are unsure which options you will need on your debugging
+ sessions, we recommend that you not use this feature. The
+ accepted options are:
+ * coff: Main format on Windows systems, this is required to
+ compile with windows target support;
+ * dbx (also known as a.out): Legacy file format, this is
+ recommended if you know you will be dealing with this
+ file format;
+ * elf: Main format on Linux systems, this is heavily
+ recommended when compiling with linux support;
+ * macho: Main format on MacOS systems, this is heavily
+ recommended when compiling for those targets;
+ * mips (also known as ecoff): Main file format for targets
+ running on MIPS CPUs, this is heavily recommended when
+ supporting those targets;
+ * xcoff: Main format on AIX systems, this is required to
+ compile for AIX targets and rs6000 CPUs.
+
`--with-gdb-datadir=PATH'
Set the GDB-specific data directory. GDB will look here for
certain supporting files or scripts. This defaults to the `gdb'
diff --git a/gdb/aarch64-linux-nat.c b/gdb/aarch64-linux-nat.c
index 725c632..89ecedd 100644
--- a/gdb/aarch64-linux-nat.c
+++ b/gdb/aarch64-linux-nat.c
@@ -51,6 +51,7 @@
#include "gdb_proc_service.h"
#include "arch-utils.h"
+#include "arch/aarch64-gcs-linux.h"
#include "arch/aarch64-mte-linux.h"
#include "nat/aarch64-mte-linux-ptrace.h"
@@ -542,6 +543,67 @@ store_tlsregs_to_thread (struct regcache *regcache)
perror_with_name (_("unable to store TLS register"));
}
+/* Fill GDB's register array with the GCS register values from
+ the current thread. */
+
+static void
+fetch_gcsregs_from_thread (regcache *regcache)
+{
+ aarch64_gdbarch_tdep *tdep
+ = gdbarch_tdep<aarch64_gdbarch_tdep> (regcache->arch ());
+
+ gdb_assert (tdep->gcs_reg_base != -1);
+ gdb_assert (tdep->gcs_linux_reg_base != -1);
+
+ user_gcs user_gcs;
+ iovec iovec;
+
+ iovec.iov_base = &user_gcs;
+ iovec.iov_len = sizeof (user_gcs);
+
+ int tid = get_ptrace_pid (regcache->ptid ());
+ if (ptrace (PTRACE_GETREGSET, tid, NT_ARM_GCS, &iovec) != 0)
+ perror_with_name (_("Unable to fetch GCS registers"));
+
+ regcache->raw_supply (tdep->gcs_reg_base, &user_gcs.gcspr_el0);
+ regcache->raw_supply (tdep->gcs_linux_reg_base, &user_gcs.features_enabled);
+ regcache->raw_supply (tdep->gcs_linux_reg_base + 1,
+ &user_gcs.features_locked);
+}
+
+/* Store to the current thread the valid GCS register set in the GDB's
+ register array. */
+
+static void
+store_gcsregs_to_thread (regcache *regcache)
+{
+ aarch64_gdbarch_tdep *tdep
+ = gdbarch_tdep<aarch64_gdbarch_tdep> (regcache->arch ());
+
+ gdb_assert (tdep->gcs_reg_base != -1);
+ gdb_assert (tdep->gcs_linux_reg_base != -1);
+
+ if (REG_VALID != regcache->get_register_status (tdep->gcs_reg_base)
+ || REG_VALID != regcache->get_register_status (tdep->gcs_linux_reg_base)
+ || REG_VALID
+ != regcache->get_register_status (tdep->gcs_linux_reg_base + 1))
+ return;
+
+ user_gcs user_gcs;
+ regcache->raw_collect (tdep->gcs_reg_base, &user_gcs.gcspr_el0);
+ regcache->raw_collect (tdep->gcs_linux_reg_base, &user_gcs.features_enabled);
+ regcache->raw_collect (tdep->gcs_linux_reg_base + 1,
+ &user_gcs.features_locked);
+
+ iovec iovec;
+ iovec.iov_base = &user_gcs;
+ iovec.iov_len = sizeof (user_gcs);
+
+ int tid = get_ptrace_pid (regcache->ptid ());
+ if (ptrace (PTRACE_SETREGSET, tid, NT_ARM_GCS, &iovec) != 0)
+ perror_with_name (_("Unable to store GCS registers"));
+}
+
/* The AArch64 version of the "fetch_registers" target_ops method. Fetch
REGNO from the target and place the result into REGCACHE. */
@@ -577,6 +639,9 @@ aarch64_fetch_registers (struct regcache *regcache, int regno)
if (tdep->has_sme2 ())
fetch_zt_from_thread (regcache);
+
+ if (tdep->has_gcs_linux ())
+ fetch_gcsregs_from_thread (regcache);
}
/* General purpose register? */
else if (regno < AARCH64_V0_REGNUM)
@@ -609,6 +674,11 @@ aarch64_fetch_registers (struct regcache *regcache, int regno)
&& regno >= tdep->tls_regnum_base
&& regno < tdep->tls_regnum_base + tdep->tls_register_count)
fetch_tlsregs_from_thread (regcache);
+ /* GCS register? */
+ else if (tdep->has_gcs_linux ()
+ && (regno == tdep->gcs_reg_base || regno == tdep->gcs_linux_reg_base
+ || regno == tdep->gcs_linux_reg_base + 1))
+ fetch_gcsregs_from_thread (regcache);
}
/* A version of the "fetch_registers" target_ops method used when running
@@ -680,6 +750,9 @@ aarch64_store_registers (struct regcache *regcache, int regno)
if (tdep->has_sme2 ())
store_zt_to_thread (regcache);
+
+ if (tdep->has_gcs_linux ())
+ store_gcsregs_to_thread (regcache);
}
/* General purpose register? */
else if (regno < AARCH64_V0_REGNUM)
@@ -706,6 +779,11 @@ aarch64_store_registers (struct regcache *regcache, int regno)
&& regno >= tdep->tls_regnum_base
&& regno < tdep->tls_regnum_base + tdep->tls_register_count)
store_tlsregs_to_thread (regcache);
+ /* GCS register? */
+ else if (tdep->has_gcs_linux ()
+ && (regno == tdep->gcs_reg_base || regno == tdep->gcs_linux_reg_base
+ || regno == tdep->gcs_linux_reg_base + 1))
+ store_gcsregs_to_thread (regcache);
/* PAuth registers are read-only. */
}
@@ -881,6 +959,7 @@ aarch64_linux_nat_target::read_description ()
active or not. */
features.vq = aarch64_sve_get_vq (tid);
features.pauth = hwcap & AARCH64_HWCAP_PACA;
+ features.gcs = features.gcs_linux = hwcap & HWCAP_GCS;
features.mte = hwcap2 & HWCAP2_MTE;
features.tls = aarch64_tls_register_count (tid);
/* SME feature check. */
diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c
index dd35eaf..048be4f 100644
--- a/gdb/aarch64-linux-tdep.c
+++ b/gdb/aarch64-linux-tdep.c
@@ -33,6 +33,7 @@
#include "symtab.h"
#include "tramp-frame.h"
#include "trad-frame.h"
+#include "dwarf2/frame.h"
#include "target.h"
#include "target/target.h"
#include "expop.h"
@@ -46,11 +47,11 @@
#include "parser-defs.h"
#include "user-regs.h"
#include "xml-syscall.h"
-#include <ctype.h>
#include "record-full.h"
#include "linux-record.h"
+#include "arch/aarch64-gcs-linux.h"
#include "arch/aarch64-mte.h"
#include "arch/aarch64-mte-linux.h"
#include "arch/aarch64-scalable-linux.h"
@@ -165,6 +166,7 @@
#define AARCH64_ZA_MAGIC 0x54366345
#define AARCH64_TPIDR2_MAGIC 0x54504902
#define AARCH64_ZT_MAGIC 0x5a544e01
+#define AARCH64_GCS_MAGIC 0x47435300
/* Defines for the extra_context that follows an AARCH64_EXTRA_MAGIC. */
#define AARCH64_EXTRA_DATAP_OFFSET 8
@@ -206,6 +208,11 @@
the signal context state. */
#define AARCH64_SME2_CONTEXT_REGS_OFFSET 16
+/* GCSPR register value offset in the GCS signal frame context. */
+#define AARCH64_GCS_CONTEXT_GCSPR_OFFSET 8
+/* features_enabled value offset in the GCS signal frame context. */
+#define AARCH64_GCS_CONTEXT_FEATURES_ENABLED_OFFSET 16
+
/* Holds information about the signal frame. */
struct aarch64_linux_sigframe
{
@@ -246,6 +253,13 @@ struct aarch64_linux_sigframe
bool za_payload = false;
/* True if we have a ZT entry in the signal context, false otherwise. */
bool zt_available = false;
+
+ /* True if we have a GCS entry in the signal context, false otherwise. */
+ bool gcs_availabe = false;
+ /* The Guarded Control Stack Pointer Register. */
+ uint64_t gcspr;
+ /* Flags indicating which GCS features are enabled for the thread. */
+ uint64_t gcs_features_enabled;
};
/* Read an aarch64_ctx, returning the magic value, and setting *SIZE to the
@@ -529,6 +543,39 @@ aarch64_linux_read_signal_frame_info (const frame_info_ptr &this_frame,
section += size;
break;
}
+ case AARCH64_GCS_MAGIC:
+ {
+ gdb_byte buf[8];
+
+ /* Extract the GCSPR. */
+ if (target_read_memory (section + AARCH64_GCS_CONTEXT_GCSPR_OFFSET,
+ buf, 8) != 0)
+ {
+ warning (_("Failed to read the GCS pointer from the GCS signal"
+ " frame context."));
+ section += size;
+ break;
+ }
+
+ signal_frame.gcspr = extract_unsigned_integer (buf, byte_order);
+
+ /* Extract the features_enabled field. */
+ if (target_read_memory (section
+ + AARCH64_GCS_CONTEXT_FEATURES_ENABLED_OFFSET,
+ buf, sizeof (buf)) != 0)
+ {
+ warning (_("Failed to read the enabled features from the GCS"
+ " signal frame context."));
+ section += size;
+ break;
+ }
+
+ signal_frame.gcs_features_enabled
+ = extract_unsigned_integer (buf, byte_order);
+ signal_frame.gcs_availabe = true;
+ section += size;
+ break;
+ }
case AARCH64_EXTRA_MAGIC:
{
/* Extra is always the last valid section in reserved and points to
@@ -703,6 +750,19 @@ aarch64_linux_sigframe_init (const struct tramp_frame *self,
+ AARCH64_TPIDR2_CONTEXT_TPIDR2_OFFSET);
}
+ /* Restore the GCS registers, if the target supports it and if there is
+ an entry for them. */
+ if (signal_frame.gcs_availabe && tdep->has_gcs_linux ())
+ {
+ /* Restore GCSPR. */
+ trad_frame_set_reg_value (this_cache, tdep->gcs_reg_base,
+ signal_frame.gcspr);
+ /* Restore gcs_features_enabled. */
+ trad_frame_set_reg_value (this_cache, tdep->gcs_linux_reg_base,
+ signal_frame.gcs_features_enabled);
+ /* gcs_features_locked isn't present in the GCS signal context. */
+ }
+
trad_frame_set_id (this_cache, frame_id_build (signal_frame.sp, func));
}
@@ -1605,6 +1665,27 @@ aarch64_linux_iterate_over_regset_sections (struct gdbarch *gdbarch,
cb (".reg-aarch-tls", sizeof_tls_regset, sizeof_tls_regset,
&aarch64_linux_tls_regset, "TLS register", cb_data);
}
+
+ /* Handle GCS registers. */
+ if (tdep->has_gcs_linux ())
+ {
+ /* Create this on the fly in order to handle the variable regnums. */
+ const regcache_map_entry gcs_regmap[] =
+ {
+ { 1, tdep->gcs_linux_reg_base, 8 }, /* features_enabled */
+ { 1, tdep->gcs_linux_reg_base + 1, 8 }, /* features_locked */
+ { 1, tdep->gcs_reg_base, 8 }, /* GCSPR */
+ { 0 }
+ };
+
+ const regset aarch64_linux_gcs_regset =
+ {
+ gcs_regmap, regcache_supply_regset, regcache_collect_regset
+ };
+
+ cb (".reg-aarch-gcs", sizeof (user_gcs), sizeof (user_gcs),
+ &aarch64_linux_gcs_regset, "GCS registers", cb_data);
+ }
}
/* Implement the "core_read_description" gdbarch method. */
@@ -1629,6 +1710,7 @@ aarch64_linux_core_read_description (struct gdbarch *gdbarch,
length. */
features.vq = aarch64_linux_core_read_vq_from_sections (gdbarch, abfd);
features.pauth = hwcap & AARCH64_HWCAP_PACA;
+ features.gcs = features.gcs_linux = hwcap & HWCAP_GCS;
features.mte = hwcap2 & HWCAP2_MTE;
/* Handle the TLS section. */
@@ -1666,9 +1748,9 @@ aarch64_linux_core_read_description (struct gdbarch *gdbarch,
static int
aarch64_stap_is_single_operand (struct gdbarch *gdbarch, const char *s)
{
- return (*s == '#' || isdigit (*s) /* Literal number. */
+ return (*s == '#' || c_isdigit (*s) /* Literal number. */
|| *s == '[' /* Register indirection. */
- || isalpha (*s)); /* Register value. */
+ || c_isalpha (*s)); /* Register value. */
}
/* This routine is used to parse a special token in AArch64's assembly.
@@ -1699,7 +1781,7 @@ aarch64_stap_parse_special_token (struct gdbarch *gdbarch,
start = tmp;
/* Register name. */
- while (isalnum (*tmp))
+ while (c_isalnum (*tmp))
++tmp;
if (*tmp != ',')
@@ -1727,7 +1809,7 @@ aarch64_stap_parse_special_token (struct gdbarch *gdbarch,
else if (*tmp == '+')
++tmp;
- if (!isdigit (*tmp))
+ if (!c_isdigit (*tmp))
return {};
displacement = strtol (tmp, &endp, 10);
@@ -2453,6 +2535,80 @@ aarch64_linux_tagged_address_p (struct gdbarch *gdbarch, CORE_ADDR address)
return true;
}
+/* Implement the "get_shadow_stack_pointer" gdbarch method. */
+
+static std::optional<CORE_ADDR>
+aarch64_linux_get_shadow_stack_pointer (gdbarch *gdbarch, regcache *regcache,
+ bool &shadow_stack_enabled)
+{
+ aarch64_gdbarch_tdep *tdep = gdbarch_tdep<aarch64_gdbarch_tdep> (gdbarch);
+ shadow_stack_enabled = false;
+
+ if (!tdep->has_gcs_linux ())
+ return {};
+
+ uint64_t features_enabled;
+ register_status status = regcache->cooked_read (tdep->gcs_linux_reg_base,
+ &features_enabled);
+ if (status != REG_VALID)
+ error (_("Can't read $gcs_features_enabled."));
+
+ CORE_ADDR gcspr;
+ status = regcache->cooked_read (tdep->gcs_reg_base, &gcspr);
+ if (status != REG_VALID)
+ error (_("Can't read $gcspr."));
+
+ shadow_stack_enabled = features_enabled & PR_SHADOW_STACK_ENABLE;
+ return gcspr;
+}
+
+/* Implement Guarded Control Stack Pointer Register unwinding. For each
+ previous GCS pointer check if its address is still in the GCS memory
+ range. If it's outside the range set the returned value to unavailable,
+ otherwise return a value containing the new GCS pointer. */
+
+static value *
+aarch64_linux_dwarf2_prev_gcspr (const frame_info_ptr &this_frame,
+ void **this_cache, int regnum)
+{
+ value *v = frame_unwind_got_register (this_frame, regnum, regnum);
+ gdb_assert (v != nullptr);
+
+ gdbarch *gdbarch = get_frame_arch (this_frame);
+
+ if (v->entirely_available () && !v->optimized_out ())
+ {
+ int size = register_size (gdbarch, regnum);
+ bfd_endian byte_order = gdbarch_byte_order (gdbarch);
+ CORE_ADDR gcspr = extract_unsigned_integer (v->contents_all ().data (),
+ size, byte_order);
+
+ /* Starting with v6.13, the Linux kernel supports Guarded Control
+ Stack. Using /proc/PID/smaps we can only check if the current
+ GCSPR points to GCS memory. Only if this is the case a valid
+ previous GCS pointer can be calculated. */
+ std::pair<CORE_ADDR, CORE_ADDR> range;
+ if (linux_address_in_shadow_stack_mem_range (gcspr, &range))
+ {
+ /* The GCS grows downwards. To compute the previous GCS pointer,
+ we need to increment the GCSPR. */
+ CORE_ADDR new_gcspr = gcspr + 8;
+
+ /* If NEW_GCSPR still points within the current GCS memory range
+ we consider it to be valid. */
+ if (new_gcspr < range.second)
+ return frame_unwind_got_address (this_frame, regnum, new_gcspr);
+ }
+ }
+
+ /* Return a value which is marked as unavailable in case we could not
+ calculate a valid previous GCS pointer. */
+ value *retval
+ = value::allocate_register (get_next_frame_sentinel_okay (this_frame),
+ regnum, register_type (gdbarch, regnum));
+ retval->mark_bytes_unavailable (0, retval->type ()->length ());
+ return retval;
+}
/* AArch64 Linux implementation of the report_signal_info gdbarch
hook. Displays information about possible memory tag violations. */
@@ -2464,17 +2620,18 @@ aarch64_linux_report_signal_info (struct gdbarch *gdbarch,
{
aarch64_gdbarch_tdep *tdep = gdbarch_tdep<aarch64_gdbarch_tdep> (gdbarch);
- if (!tdep->has_mte () || siggnal != GDB_SIGNAL_SEGV)
+ if (!(tdep->has_mte () || tdep->has_gcs ()) || siggnal != GDB_SIGNAL_SEGV)
return;
CORE_ADDR fault_addr = 0;
- long si_code = 0;
+ long si_code = 0, si_errno = 0;
try
{
/* Sigcode tells us if the segfault is actually a memory tag
violation. */
si_code = parse_and_eval_long ("$_siginfo.si_code");
+ si_errno = parse_and_eval_long ("$_siginfo.si_errno");
fault_addr
= parse_and_eval_long ("$_siginfo._sifields._sigfault.si_addr");
@@ -2485,13 +2642,18 @@ aarch64_linux_report_signal_info (struct gdbarch *gdbarch,
return;
}
- /* If this is not a memory tag violation, just return. */
- if (si_code != SEGV_MTEAERR && si_code != SEGV_MTESERR)
+ const char *meaning;
+
+ if (si_code == SEGV_MTEAERR || si_code == SEGV_MTESERR)
+ meaning = _("Memory tag violation");
+ else if (si_code == SEGV_CPERR && si_errno == 0)
+ meaning = _("Guarded Control Stack error");
+ else
return;
uiout->text ("\n");
- uiout->field_string ("sigcode-meaning", _("Memory tag violation"));
+ uiout->field_string ("sigcode-meaning", meaning);
/* For synchronous faults, show additional information. */
if (si_code == SEGV_MTESERR)
@@ -2517,7 +2679,7 @@ aarch64_linux_report_signal_info (struct gdbarch *gdbarch,
uiout->field_string ("logical-tag", hex_string (ltag));
}
}
- else
+ else if (si_code != SEGV_CPERR)
{
uiout->text ("\n");
uiout->text (_("Fault address unavailable"));
@@ -2766,6 +2928,13 @@ aarch64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
NULL };
aarch64_gdbarch_tdep *tdep = gdbarch_tdep<aarch64_gdbarch_tdep> (gdbarch);
+ if (tdep->has_gcs () && !tdep->has_gcs_linux ())
+ {
+ warning (_("Incomplete GCS support in the target: missing Linux part."
+ " GCS feature disabled."));
+ tdep->gcs_reg_base = -1;
+ }
+
tdep->lowest_pc = 0x8000;
linux_init_abi (info, gdbarch, 1);
@@ -2814,9 +2983,6 @@ aarch64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
/* Register a hook for checking if an address is tagged or not. */
set_gdbarch_tagged_address_p (gdbarch, aarch64_linux_tagged_address_p);
- set_gdbarch_report_signal_info (gdbarch,
- aarch64_linux_report_signal_info);
-
/* Core file helpers. */
/* Core file helper to create a memory tag section for a particular
@@ -2833,6 +2999,9 @@ aarch64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
aarch64_linux_decode_memtag_section);
}
+ if (tdep->has_mte () || tdep->has_gcs ())
+ set_gdbarch_report_signal_info (gdbarch, aarch64_linux_report_signal_info);
+
/* Initialize the aarch64_linux_record_tdep. */
/* These values are the size of the type that will be used in a system
call. They are obtained from Linux Kernel source. */
@@ -3014,6 +3183,13 @@ aarch64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
sections. */
set_gdbarch_use_target_description_from_corefile_notes (gdbarch,
aarch64_use_target_description_from_corefile_notes);
+
+ if (tdep->has_gcs_linux ())
+ {
+ set_gdbarch_get_shadow_stack_pointer (gdbarch,
+ aarch64_linux_get_shadow_stack_pointer);
+ tdep->fn_prev_gcspr = aarch64_linux_dwarf2_prev_gcspr;
+ }
}
#if GDB_SELF_TEST
diff --git a/gdb/aarch64-nat.h b/gdb/aarch64-nat.h
index 3120bca..ec7c564 100644
--- a/gdb/aarch64-nat.h
+++ b/gdb/aarch64-nat.h
@@ -92,10 +92,6 @@ struct aarch64_nat_target : public BaseTarget
int remove_hw_breakpoint (struct gdbarch *gdbarch,
struct bp_target_info *bp_tgt) override
{ return aarch64_remove_hw_breakpoint (gdbarch, bp_tgt); }
-
- bool watchpoint_addr_within_range (CORE_ADDR addr, CORE_ADDR start,
- int length) override
- { return start <= addr && start + length - 1 >= addr; }
};
#endif /* GDB_AARCH64_NAT_H */
diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c
index f2e3ce2..500ac77d 100644
--- a/gdb/aarch64-tdep.c
+++ b/gdb/aarch64-tdep.c
@@ -159,6 +159,18 @@ static const char *const aarch64_mte_register_names[] =
"tag_ctl"
};
+static const char *const aarch64_gcs_register_names[] = {
+ /* Guarded Control Stack Pointer Register. */
+ "gcspr"
+};
+
+static const char *const aarch64_gcs_linux_register_names[] = {
+ /* Field in struct user_gcs. */
+ "gcs_features_enabled",
+ /* Field in struct user_gcs. */
+ "gcs_features_locked",
+};
+
static int aarch64_stack_frame_destroyed_p (struct gdbarch *, CORE_ADDR);
/* AArch64 prologue cache structure. */
@@ -1396,6 +1408,12 @@ aarch64_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
return;
}
}
+ if (tdep->has_gcs () && tdep->fn_prev_gcspr != nullptr
+ && regnum == tdep->gcs_reg_base)
+ {
+ reg->how = DWARF2_FRAME_REG_FN;
+ reg->loc.fn = tdep->fn_prev_gcspr;
+ }
}
/* Implement the execute_dwarf_cfa_vendor_op method. */
@@ -1875,6 +1893,55 @@ pass_in_v_vfp_candidate (struct gdbarch *gdbarch, struct regcache *regcache,
}
}
+/* Push LR_VALUE to the Guarded Control Stack. */
+
+static void
+aarch64_push_gcs_entry (regcache *regs, CORE_ADDR lr_value)
+{
+ gdbarch *arch = regs->arch ();
+ aarch64_gdbarch_tdep *tdep = gdbarch_tdep<aarch64_gdbarch_tdep> (arch);
+ CORE_ADDR gcs_addr;
+
+ register_status status = regs->cooked_read (tdep->gcs_reg_base, &gcs_addr);
+ if (status != REG_VALID)
+ error (_("Can't read $gcspr."));
+
+ gcs_addr -= 8;
+ gdb_byte buf[8];
+ store_integer (buf, gdbarch_byte_order (arch), lr_value);
+ if (target_write_memory (gcs_addr, buf, sizeof (buf)) != 0)
+ error (_("Can't write to Guarded Control Stack."));
+
+ /* Update GCSPR. */
+ regcache_cooked_write_unsigned (regs, tdep->gcs_reg_base, gcs_addr);
+}
+
+/* Remove the newest entry from the Guarded Control Stack. */
+
+static void
+aarch64_pop_gcs_entry (regcache *regs)
+{
+ gdbarch *arch = regs->arch ();
+ aarch64_gdbarch_tdep *tdep = gdbarch_tdep<aarch64_gdbarch_tdep> (arch);
+ CORE_ADDR gcs_addr;
+
+ register_status status = regs->cooked_read (tdep->gcs_reg_base, &gcs_addr);
+ if (status != REG_VALID)
+ error (_("Can't read $gcspr."));
+
+ /* Update GCSPR. */
+ regcache_cooked_write_unsigned (regs, tdep->gcs_reg_base, gcs_addr + 8);
+}
+
+/* Implement the "shadow_stack_push" gdbarch method. */
+
+static void
+aarch64_shadow_stack_push (gdbarch *gdbarch, CORE_ADDR new_addr,
+ regcache *regcache)
+{
+ aarch64_push_gcs_entry (regcache, new_addr);
+}
+
/* Implement the "push_dummy_call" gdbarch method. */
static CORE_ADDR
@@ -3557,6 +3624,9 @@ struct aarch64_displaced_step_copy_insn_closure
/* PC adjustment offset after displaced stepping. If 0, then we don't
write the PC back, assuming the PC is already the right address. */
int32_t pc_adjust = 0;
+
+ /* True if it's a branch instruction that saves the link register. */
+ bool linked_branch = false;
};
/* Data when visiting instructions for displaced stepping. */
@@ -3608,6 +3678,12 @@ aarch64_displaced_step_b (const int is_bl, const int32_t offset,
/* Update LR. */
regcache_cooked_write_unsigned (dsd->regs, AARCH64_LR_REGNUM,
data->insn_addr + 4);
+ dsd->dsc->linked_branch = true;
+ bool gcs_is_enabled;
+ gdbarch_get_shadow_stack_pointer (dsd->regs->arch (), dsd->regs,
+ gcs_is_enabled);
+ if (gcs_is_enabled)
+ aarch64_push_gcs_entry (dsd->regs, data->insn_addr + 4);
}
}
@@ -3766,6 +3842,12 @@ aarch64_displaced_step_others (const uint32_t insn,
aarch64_emit_insn (dsd->insn_buf, insn & 0xffdfffff);
regcache_cooked_write_unsigned (dsd->regs, AARCH64_LR_REGNUM,
data->insn_addr + 4);
+ dsd->dsc->linked_branch = true;
+ bool gcs_is_enabled;
+ gdbarch_get_shadow_stack_pointer (dsd->regs->arch (), dsd->regs,
+ gcs_is_enabled);
+ if (gcs_is_enabled)
+ aarch64_push_gcs_entry (dsd->regs, data->insn_addr + 4);
}
else
aarch64_emit_insn (dsd->insn_buf, insn);
@@ -3862,20 +3944,24 @@ aarch64_displaced_step_fixup (struct gdbarch *gdbarch,
CORE_ADDR from, CORE_ADDR to,
struct regcache *regs, bool completed_p)
{
+ aarch64_displaced_step_copy_insn_closure *dsc
+ = (aarch64_displaced_step_copy_insn_closure *) dsc_;
CORE_ADDR pc = regcache_read_pc (regs);
- /* If the displaced instruction didn't complete successfully then all we
- need to do is restore the program counter. */
+ /* If the displaced instruction didn't complete successfully then we need
+ to restore the program counter, and perhaps the Guarded Control Stack. */
if (!completed_p)
{
+ bool gcs_is_enabled;
+ gdbarch_get_shadow_stack_pointer (gdbarch, regs, gcs_is_enabled);
+ if (dsc->linked_branch && gcs_is_enabled)
+ aarch64_pop_gcs_entry (regs);
+
pc = from + (pc - to);
regcache_write_pc (regs, pc);
return;
}
- aarch64_displaced_step_copy_insn_closure *dsc
- = (aarch64_displaced_step_copy_insn_closure *) dsc_;
-
displaced_debug_printf ("PC after stepping: %s (was %s).",
paddress (gdbarch, pc), paddress (gdbarch, to));
@@ -4046,6 +4132,14 @@ aarch64_features_from_target_desc (const struct target_desc *tdesc)
features.sme2 = (tdesc_find_feature (tdesc, "org.gnu.gdb.aarch64.sme2")
!= nullptr);
+ /* Check for the GCS feature. */
+ features.gcs = (tdesc_find_feature (tdesc, "org.gnu.gdb.aarch64.gcs")
+ != nullptr);
+
+ /* Check for the GCS Linux feature. */
+ features.gcs_linux = (tdesc_find_feature (tdesc, "org.gnu.gdb.aarch64.gcs.linux")
+ != nullptr);
+
return features;
}
@@ -4590,6 +4684,48 @@ aarch64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
int first_w_regnum = num_pseudo_regs;
num_pseudo_regs += 31;
+ const tdesc_feature *feature_gcs
+ = tdesc_find_feature (tdesc, "org.gnu.gdb.aarch64.gcs");
+ int first_gcs_regnum = -1;
+ /* Add the GCS registers. */
+ if (feature_gcs != nullptr)
+ {
+ first_gcs_regnum = num_regs;
+ /* Validate the descriptor provides the mandatory GCS registers and
+ allocate their numbers. */
+ for (i = 0; i < ARRAY_SIZE (aarch64_gcs_register_names); i++)
+ valid_p &= tdesc_numbered_register (feature_gcs, tdesc_data.get (),
+ first_gcs_regnum + i,
+ aarch64_gcs_register_names[i]);
+
+ num_regs += i;
+ }
+
+ if (!valid_p)
+ return nullptr;
+
+ const tdesc_feature *feature_gcs_linux
+ = tdesc_find_feature (tdesc, "org.gnu.gdb.aarch64.gcs.linux");
+ int first_gcs_linux_regnum = -1;
+ /* Add the GCS Linux registers. */
+ if (feature_gcs_linux != nullptr && feature_gcs == nullptr)
+ {
+ /* This feature depends on the GCS feature. */
+ return nullptr;
+ }
+ else if (feature_gcs_linux != nullptr)
+ {
+ first_gcs_linux_regnum = num_regs;
+ /* Validate the descriptor provides the mandatory GCS Linux registers
+ and allocate their numbers. */
+ for (i = 0; i < ARRAY_SIZE (aarch64_gcs_linux_register_names); i++)
+ valid_p &= tdesc_numbered_register (feature_gcs_linux, tdesc_data.get (),
+ first_gcs_linux_regnum + i,
+ aarch64_gcs_linux_register_names[i]);
+
+ num_regs += i;
+ }
+
if (!valid_p)
return nullptr;
@@ -4611,6 +4747,8 @@ aarch64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
tdep->mte_reg_base = first_mte_regnum;
tdep->tls_regnum_base = first_tls_regnum;
tdep->tls_register_count = tls_register_count;
+ tdep->gcs_reg_base = first_gcs_regnum;
+ tdep->gcs_linux_reg_base = first_gcs_linux_regnum;
/* Set the SME register set details. The pseudo-registers will be adjusted
later. */
@@ -4638,7 +4776,7 @@ aarch64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_sw_breakpoint_from_kind (gdbarch,
aarch64_breakpoint::bp_from_kind);
set_gdbarch_have_nonsteppable_watchpoint (gdbarch, 1);
- set_gdbarch_software_single_step (gdbarch, aarch64_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, aarch64_software_single_step);
/* Information about registers, etc. */
set_gdbarch_sp_regnum (gdbarch, AARCH64_SP_REGNUM);
@@ -4733,6 +4871,9 @@ aarch64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_get_pc_address_flags (gdbarch, aarch64_get_pc_address_flags);
+ if (tdep->has_gcs ())
+ set_gdbarch_shadow_stack_push (gdbarch, aarch64_shadow_stack_push);
+
tdesc_use_registers (gdbarch, tdesc, std::move (tdesc_data));
/* Fetch the updated number of registers after we're done adding all
@@ -4905,6 +5046,11 @@ aarch64_dump_tdep (struct gdbarch *gdbarch, struct ui_file *file)
pulongest (tdep->sme_tile_pseudo_base));
gdb_printf (file, _("aarch64_dump_tdep: sme_svq = %s\n"),
pulongest (tdep->sme_svq));
+
+ gdb_printf (file, _("aarch64_dump_tdep: gcs_reg_base = %d\n"),
+ tdep->gcs_reg_base);
+ gdb_printf (file, _("aarch64_dump_tdep: gcs_linux_reg_base = %d\n"),
+ tdep->gcs_linux_reg_base);
}
#if GDB_SELF_TEST
diff --git a/gdb/aarch64-tdep.h b/gdb/aarch64-tdep.h
index 3b8dcc2..99e7d26 100644
--- a/gdb/aarch64-tdep.h
+++ b/gdb/aarch64-tdep.h
@@ -23,6 +23,7 @@
#define GDB_AARCH64_TDEP_H
#include "arch/aarch64.h"
+#include "dwarf2/frame.h"
#include "displaced-stepping.h"
#include "infrun.h"
#include "gdbarch.h"
@@ -182,6 +183,30 @@ struct aarch64_gdbarch_tdep : gdbarch_tdep_base
{
return sme2_zt0_regnum > 0;
}
+
+ /* First GCS register. This is -1 if no GCS registers are available. */
+ int gcs_reg_base = -1;
+
+ /* First GCS Linux-specific register. This is -1 if no GCS Linux feature is
+ available. */
+ int gcs_linux_reg_base = -1;
+
+ /* Function to unwind the GCSPR from the given frame. */
+ fn_prev_register fn_prev_gcspr = nullptr;
+
+ /* Returns true if the target supports GCS. */
+ bool
+ has_gcs () const
+ {
+ return gcs_reg_base != -1;
+ }
+
+ /* Returns true if the target supports the Linux GCS feature. */
+ bool
+ has_gcs_linux () const
+ {
+ return gcs_linux_reg_base != -1;
+ }
};
const target_desc *aarch64_read_description (const aarch64_features &features);
diff --git a/gdb/aclocal.m4 b/gdb/aclocal.m4
index 9971423..cae0970 100644
--- a/gdb/aclocal.m4
+++ b/gdb/aclocal.m4
@@ -202,9 +202,11 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
m4_include([../config/acx.m4])
m4_include([../config/ax_pthread.m4])
m4_include([../config/bfd64.m4])
+m4_include([../config/clang-plugin.m4])
m4_include([../config/debuginfod.m4])
m4_include([../config/depstand.m4])
m4_include([../config/enable.m4])
+m4_include([../config/gcc-plugin.m4])
m4_include([../config/gettext-sister.m4])
m4_include([../config/gettext.m4])
m4_include([../config/intlmacosx.m4])
diff --git a/gdb/ada-exp.h b/gdb/ada-exp.h
index 8c9bfe8..7354d65 100644
--- a/gdb/ada-exp.h
+++ b/gdb/ada-exp.h
@@ -34,28 +34,10 @@ extern struct value *ada_abs (struct type *expect_type,
struct expression *exp,
enum noside noside, enum exp_opcode op,
struct value *arg1);
-extern struct value *ada_unop_in_range (struct type *expect_type,
- struct expression *exp,
- enum noside noside, enum exp_opcode op,
- struct value *arg1, struct type *type);
extern struct value *ada_mult_binop (struct type *expect_type,
struct expression *exp,
enum noside noside, enum exp_opcode op,
struct value *arg1, struct value *arg2);
-extern struct value *ada_equal_binop (struct type *expect_type,
- struct expression *exp,
- enum noside noside, enum exp_opcode op,
- struct value *arg1, struct value *arg2);
-extern struct value *ada_ternop_slice (struct expression *exp,
- enum noside noside,
- struct value *array,
- struct value *low_bound_val,
- struct value *high_bound_val);
-extern struct value *ada_binop_in_bounds (struct expression *exp,
- enum noside noside,
- struct value *arg1,
- struct value *arg2,
- int n);
extern struct value *ada_binop_minmax (struct type *expect_type,
struct expression *exp,
enum noside noside, enum exp_opcode op,
@@ -224,12 +206,7 @@ public:
value *evaluate (struct type *expect_type,
struct expression *exp,
- enum noside noside) override
- {
- value *val = std::get<0> (m_storage)->evaluate (nullptr, exp, noside);
- return ada_unop_in_range (expect_type, exp, noside, UNOP_IN_RANGE,
- val, std::get<1> (m_storage));
- }
+ enum noside noside) override;
enum exp_opcode opcode () const override
{ return UNOP_IN_RANGE; }
@@ -271,14 +248,7 @@ public:
value *evaluate (struct type *expect_type,
struct expression *exp,
- enum noside noside) override
- {
- value *arg1 = std::get<1> (m_storage)->evaluate (nullptr, exp, noside);
- value *arg2 = std::get<2> (m_storage)->evaluate (arg1->type (),
- exp, noside);
- return ada_equal_binop (expect_type, exp, noside, std::get<0> (m_storage),
- arg1, arg2);
- }
+ enum noside noside) override;
void do_generate_ax (struct expression *exp,
struct agent_expr *ax,
@@ -307,13 +277,7 @@ public:
value *evaluate (struct type *expect_type,
struct expression *exp,
- enum noside noside) override
- {
- value *array = std::get<0> (m_storage)->evaluate (nullptr, exp, noside);
- value *low = std::get<1> (m_storage)->evaluate (nullptr, exp, noside);
- value *high = std::get<2> (m_storage)->evaluate (nullptr, exp, noside);
- return ada_ternop_slice (exp, noside, array, low, high);
- }
+ enum noside noside) override;
enum exp_opcode opcode () const override
{ return TERNOP_SLICE; }
@@ -335,13 +299,7 @@ public:
value *evaluate (struct type *expect_type,
struct expression *exp,
- enum noside noside) override
- {
- value *arg1 = std::get<0> (m_storage)->evaluate (nullptr, exp, noside);
- value *arg2 = std::get<1> (m_storage)->evaluate (nullptr, exp, noside);
- return ada_binop_in_bounds (exp, noside, arg1, arg2,
- std::get<2> (m_storage));
- }
+ enum noside noside) override;
enum exp_opcode opcode () const override
{ return BINOP_IN_BOUNDS; }
diff --git a/gdb/ada-exp.y b/gdb/ada-exp.y
index 1546ae9..ed5694e 100644
--- a/gdb/ada-exp.y
+++ b/gdb/ada-exp.y
@@ -35,7 +35,6 @@
%{
-#include <ctype.h>
#include "gdbsupport/unordered_map.h"
#include "expression.h"
#include "value.h"
@@ -1338,7 +1337,7 @@ write_object_renaming (struct parser_state *par_state,
SEARCH_VFT);
if (sym_info.symbol == NULL)
error (_("Could not find renamed variable: %s"), ada_decode (name).c_str ());
- else if (sym_info.symbol->aclass () == LOC_TYPEDEF)
+ else if (sym_info.symbol->loc_class () == LOC_TYPEDEF)
/* We have a renaming of an old-style renaming symbol. Don't
trust the block information. */
sym_info.block = orig_left_context;
@@ -1380,7 +1379,7 @@ write_object_renaming (struct parser_state *par_state,
[[fallthrough]];
case 'S':
renaming_expr += 1;
- if (isdigit (*renaming_expr))
+ if (c_isdigit (*renaming_expr))
{
char *next;
long val = strtol (renaming_expr, &next, 10);
@@ -1408,7 +1407,7 @@ write_object_renaming (struct parser_state *par_state,
SEARCH_VFT);
if (index_sym_info.symbol == NULL)
error (_("Could not find %s"), index_name);
- else if (index_sym_info.symbol->aclass () == LOC_TYPEDEF)
+ else if (index_sym_info.symbol->loc_class () == LOC_TYPEDEF)
/* Index is an old-style renaming symbol. */
index_sym_info.block = orig_left_context;
write_var_from_sym (par_state, index_sym_info);
@@ -1478,14 +1477,14 @@ block_lookup (const struct block *context, const char *raw_name)
= ada_lookup_symbol_list (name, context, SEARCH_FUNCTION_DOMAIN);
if (context == NULL
- && (syms.empty () || syms[0].symbol->aclass () != LOC_BLOCK))
+ && (syms.empty () || syms[0].symbol->loc_class () != LOC_BLOCK))
symtab = lookup_symtab (current_program_space, name);
else
symtab = NULL;
if (symtab != NULL)
result = symtab->compunit ()->blockvector ()->static_block ();
- else if (syms.empty () || syms[0].symbol->aclass () != LOC_BLOCK)
+ else if (syms.empty () || syms[0].symbol->loc_class () != LOC_BLOCK)
{
if (context == NULL)
error (_("No file or function \"%s\"."), raw_name);
@@ -1511,7 +1510,7 @@ select_possible_type_sym (const std::vector<struct block_symbol> &syms)
preferred_index = -1; preferred_type = NULL;
for (i = 0; i < syms.size (); i += 1)
- switch (syms[i].symbol->aclass ())
+ switch (syms[i].symbol->loc_class ())
{
case LOC_TYPEDEF:
if (ada_prefer_type (syms[i].symbol->type (), preferred_type))
@@ -1555,7 +1554,7 @@ find_primitive_type (struct parser_state *par_state, const char *name)
strcpy (expanded_name, "standard__");
strcat (expanded_name, name);
sym = ada_lookup_symbol (expanded_name, NULL, SEARCH_TYPE_DOMAIN).symbol;
- if (sym != NULL && sym->aclass () == LOC_TYPEDEF)
+ if (sym != NULL && sym->loc_class () == LOC_TYPEDEF)
type = sym->type ();
}
@@ -1888,7 +1887,7 @@ ada_parse_state::find_completion_bounds ()
const char *end = pstate->lexptr;
/* First the end of the prefix. Here we stop at the token start or
at '.' or space. */
- for (; end > m_original_expr && end[-1] != '.' && !isspace (end[-1]); --end)
+ for (; end > m_original_expr && end[-1] != '.' && !c_isspace (end[-1]); --end)
{
/* Nothing. */
}
@@ -1966,7 +1965,7 @@ write_name_assoc (struct parser_state *par_state, struct stoken name)
par_state->expression_context_block,
SEARCH_VFT);
- if (syms.size () != 1 || syms[0].symbol->aclass () == LOC_TYPEDEF)
+ if (syms.size () != 1 || syms[0].symbol->loc_class () == LOC_TYPEDEF)
pstate->push_new<ada_string_operation> (copy_name (name));
else
write_var_from_sym (par_state, syms[0]);
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 329d114..0dfcc10 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -18,7 +18,6 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include <ctype.h>
#include "event-top.h"
#include "exceptions.h"
#include "extract-store-integer.h"
@@ -183,7 +182,7 @@ static struct value *ada_search_struct_field (const char *, struct value *, int,
struct type *);
static int find_struct_field (const char *, struct type *, int,
- struct type **, int *, int *, int *, int *);
+ struct type **, int *, int *, int *, LONGEST *);
static int ada_resolve_function (std::vector<struct block_symbol> &,
struct value **, int, const char *,
@@ -875,7 +874,7 @@ is_compiler_suffix (const char *str)
{
gdb_assert (*str == '[');
++str;
- while (*str != '\0' && isalpha (*str))
+ while (*str != '\0' && c_isalpha (*str))
++str;
/* We accept a missing "]" in order to support completion. */
return *str == '\0' || (str[0] == ']' && str[1] == '\0');
@@ -1167,7 +1166,7 @@ ada_encode (const char *decoded, bool fold)
static int
is_lower_alphanum (const char c)
{
- return (isdigit (c) || (isalpha (c) && islower (c)));
+ return (c_isdigit (c) || (c_isalpha (c) && c_islower (c)));
}
/* ENCODED is the linkage name of a symbol and LEN contains its length.
@@ -1185,11 +1184,11 @@ is_lower_alphanum (const char c)
static void
ada_remove_trailing_digits (const char *encoded, int *len)
{
- if (*len > 1 && isdigit (encoded[*len - 1]))
+ if (*len > 1 && c_isdigit (encoded[*len - 1]))
{
int i = *len - 2;
- while (i > 0 && isdigit (encoded[i]))
+ while (i > 0 && c_isdigit (encoded[i]))
i--;
if (i >= 0 && encoded[i] == '.')
*len = i;
@@ -1220,7 +1219,7 @@ ada_remove_po_subprogram_suffix (const char *encoded, int *len)
if (*len > 1
&& encoded[*len - 1] == 'N'
- && (isdigit (encoded[*len - 2]) || islower (encoded[*len - 2])))
+ && (c_isdigit (encoded[*len - 2]) || c_islower (encoded[*len - 2])))
*len = *len - 1;
}
@@ -1232,7 +1231,7 @@ static int
remove_compiler_suffix (const char *encoded, int *len)
{
int offset = *len - 1;
- while (offset > 0 && isalpha (encoded[offset]))
+ while (offset > 0 && c_isalpha (encoded[offset]))
--offset;
if (offset > 0 && encoded[offset] == '.')
{
@@ -1252,7 +1251,7 @@ convert_hex (const char *str, int n, uint32_t *out)
for (int i = 0; i < n; ++i)
{
- if (!isxdigit (str[i]))
+ if (!c_isxdigit (str[i]))
return false;
result <<= 4;
result |= fromhex (str[i]);
@@ -1311,7 +1310,7 @@ convert_from_hex_encoded (std::string &out, const char *str, int n)
/* See ada-lang.h. */
std::string
-ada_decode (const char *encoded, bool wrap, bool operators, bool wide)
+ada_decode (const char *encoded, bool wrap, bool translate)
{
int i;
int len0;
@@ -1384,11 +1383,11 @@ ada_decode (const char *encoded, bool wrap, bool operators, bool wide)
/* Remove trailing __{digit}+ or trailing ${digit}+. */
- if (len0 > 1 && isdigit (encoded[len0 - 1]))
+ if (len0 > 1 && c_isdigit (encoded[len0 - 1]))
{
i = len0 - 2;
- while ((i >= 0 && isdigit (encoded[i]))
- || (i >= 1 && encoded[i] == '_' && isdigit (encoded[i - 1])))
+ while ((i >= 0 && c_isdigit (encoded[i]))
+ || (i >= 1 && encoded[i] == '_' && c_isdigit (encoded[i - 1])))
i -= 1;
if (i > 1 && encoded[i] == '_' && encoded[i - 1] == '_')
len0 = i - 1;
@@ -1399,14 +1398,14 @@ ada_decode (const char *encoded, bool wrap, bool operators, bool wide)
/* The first few characters that are not alphabetic are not part
of any encoding we use, so we can copy them over verbatim. */
- for (i = 0; i < len0 && !isalpha (encoded[i]); i += 1)
+ for (i = 0; i < len0 && !c_isalpha (encoded[i]); i += 1)
decoded.push_back (encoded[i]);
at_start_name = 1;
while (i < len0)
{
/* Is this a symbol function? */
- if (operators && at_start_name && encoded[i] == 'O')
+ if (at_start_name && encoded[i] == 'O')
{
int k;
@@ -1415,9 +1414,12 @@ ada_decode (const char *encoded, bool wrap, bool operators, bool wide)
int op_len = strlen (ada_opname_table[k].encoded);
if ((strncmp (ada_opname_table[k].encoded + 1, encoded + i + 1,
op_len - 1) == 0)
- && !isalnum (encoded[i + op_len]))
+ && !c_isalnum (encoded[i + op_len]))
{
- decoded.append (ada_opname_table[k].decoded);
+ if (translate)
+ decoded.append (ada_opname_table[k].decoded);
+ else
+ decoded.append (ada_opname_table[k].encoded);
at_start_name = 0;
i += op_len;
break;
@@ -1440,11 +1442,11 @@ ada_decode (const char *encoded, bool wrap, bool operators, bool wide)
if (len0 - i > 5 && encoded [i] == '_' && encoded [i+1] == '_'
&& encoded [i+2] == 'B' && encoded [i+3] == '_'
- && isdigit (encoded [i+4]))
+ && c_isdigit (encoded [i+4]))
{
int k = i + 5;
- while (k < len0 && isdigit (encoded[k]))
+ while (k < len0 && c_isdigit (encoded[k]))
k++; /* Skip any extra digit. */
/* Double-check that the "__B_{DIGITS}+" sequence we found
@@ -1467,11 +1469,11 @@ ada_decode (const char *encoded, bool wrap, bool operators, bool wide)
internally generated. */
if (len0 - i > 3 && encoded [i] == '_' && encoded[i+1] == 'E'
- && isdigit (encoded[i+2]))
+ && c_isdigit (encoded[i+2]))
{
int k = i + 3;
- while (k < len0 && isdigit (encoded[k]))
+ while (k < len0 && c_isdigit (encoded[k]))
k++;
if (k < len0
@@ -1505,33 +1507,65 @@ ada_decode (const char *encoded, bool wrap, bool operators, bool wide)
i++;
}
- if (wide && i < len0 + 3 && encoded[i] == 'U' && isxdigit (encoded[i + 1]))
+ /* Handle wide characters while respecting the arguments to the
+ function: we may want to copy them verbatim, but in this case
+ we do not want to register that we've copied an upper-case
+ character. */
+ if (i < len0 + 3 && encoded[i] == 'U' && c_isxdigit (encoded[i + 1]))
{
- if (convert_from_hex_encoded (decoded, &encoded[i + 1], 2))
+ if (translate)
{
- i += 3;
+ if (convert_from_hex_encoded (decoded, &encoded[i + 1], 2))
+ {
+ i += 3;
+ continue;
+ }
+ }
+ else
+ {
+ decoded.push_back (encoded[i]);
+ ++i;
continue;
}
}
- else if (wide && i < len0 + 5 && encoded[i] == 'W' && isxdigit (encoded[i + 1]))
+ else if (i < len0 + 5 && encoded[i] == 'W'
+ && c_isxdigit (encoded[i + 1]))
{
- if (convert_from_hex_encoded (decoded, &encoded[i + 1], 4))
+ if (translate)
{
- i += 5;
+ if (convert_from_hex_encoded (decoded, &encoded[i + 1], 4))
+ {
+ i += 5;
+ continue;
+ }
+ }
+ else
+ {
+ decoded.push_back (encoded[i]);
+ ++i;
continue;
}
}
- else if (wide && i < len0 + 10 && encoded[i] == 'W' && encoded[i + 1] == 'W'
- && isxdigit (encoded[i + 2]))
+ else if (i < len0 + 10 && encoded[i] == 'W' && encoded[i + 1] == 'W'
+ && c_isxdigit (encoded[i + 2]))
{
- if (convert_from_hex_encoded (decoded, &encoded[i + 2], 8))
+ if (translate)
{
- i += 10;
+ if (convert_from_hex_encoded (decoded, &encoded[i + 2], 8))
+ {
+ i += 10;
+ continue;
+ }
+ }
+ else
+ {
+ decoded.push_back (encoded[i]);
+ ++i;
continue;
}
}
- if (encoded[i] == 'X' && i != 0 && isalnum (encoded[i - 1]))
+ if (encoded[i] == 'X' && i != 0 && c_isalnum (encoded[i - 1]))
{
/* This is a X[bn]* sequence not separated from the previous
part of the name with a non-alpha-numeric character (in other
@@ -1553,6 +1587,12 @@ ada_decode (const char *encoded, bool wrap, bool operators, bool wide)
at_start_name = 1;
i += 2;
}
+ else if (isupper (encoded[i]) || encoded[i] == ' ')
+ {
+ /* Decoded names should never contain any uppercase
+ character. */
+ goto Suppress;
+ }
else
{
/* It's a character part of the decoded name, so just copy it
@@ -1562,16 +1602,6 @@ ada_decode (const char *encoded, bool wrap, bool operators, bool wide)
}
}
- /* Decoded names should never contain any uppercase character.
- Double-check this, and abort the decoding if we find one. */
-
- if (operators)
- {
- for (i = 0; i < decoded.length(); ++i)
- if (isupper (decoded[i]) || decoded[i] == ' ')
- goto Suppress;
- }
-
/* If the compiler added a suffix, append it now. */
if (suffix >= 0)
decoded = decoded + "[" + &encoded[suffix] + "]";
@@ -1597,6 +1627,13 @@ ada_decode_tests ()
/* This isn't valid, but used to cause a crash. PR gdb/30639. The
result does not really matter very much. */
SELF_CHECK (ada_decode ("44") == "44");
+
+ /* Check that the settings used by the DWARF reader have the desired
+ effect. */
+ SELF_CHECK (ada_decode ("symada__cS", false, false) == "");
+ SELF_CHECK (ada_decode ("pkg__Oxor", false, false) == "pkg.Oxor");
+ SELF_CHECK (ada_decode ("pack__func_W017b", false, false)
+ == "pack.func_W017b");
}
#endif
@@ -1677,8 +1714,6 @@ ada_decode_symbol (const struct general_symbol_info *arg)
void
ada_fixup_array_indexes_type (struct type *index_desc_type)
{
- int i;
-
if (index_desc_type == NULL)
return;
gdb_assert (index_desc_type->num_fields () > 0);
@@ -1696,13 +1731,13 @@ ada_fixup_array_indexes_type (struct type *index_desc_type)
return;
/* Fixup each field of INDEX_DESC_TYPE. */
- for (i = 0; i < index_desc_type->num_fields (); i++)
+ for (auto &field : index_desc_type->fields ())
{
- const char *name = index_desc_type->field (i).name ();
+ const char *name = field.name ();
struct type *raw_type = ada_check_typedef (ada_find_any_type (name));
if (raw_type)
- index_desc_type->field (i).set_type (raw_type);
+ field.set_type (raw_type);
}
}
@@ -1729,16 +1764,6 @@ desc_base_type (struct type *type)
return type;
}
-/* True iff TYPE indicates a "thin" array pointer type. */
-
-static int
-is_thin_pntr (struct type *type)
-{
- return
- is_suffix (ada_type_name (desc_base_type (type)), "___XUT")
- || is_suffix (ada_type_name (desc_base_type (type)), "___XUT___XVE");
-}
-
/* The descriptor type for thin pointer type TYPE. */
static struct type *
@@ -1777,14 +1802,45 @@ thin_data_pntr (struct value *val)
return value_from_longest (data_type, val->address ());
}
-/* True iff TYPE indicates a "thick" array pointer type. */
+/* Different kinds of Ada-specific pointers. */
+enum class pointer_kind
+{
+ /* Not a thin or thick pointer. */
+ NOT_SPECIAL,
+ /* A thin pointer. */
+ THIN,
+ /* Thick pointer where the bounds are accessed via the P_BOUNDS
+ member, a pointer to the bounds. */
+ P_BOUNDS,
+ /* Thick pointer where the bounds are accessed via the BOUNDS
+ member, which directly holds the bounds. */
+ EXTENDED_ACCESS,
+};
+
+/* Return a pointer_kind indicating whether TYPE is a special category
+ of pointer. Note that TYPE may be NULL, in which case NOT_SPECIAL
+ is returned. */
-static int
-is_thick_pntr (struct type *type)
+static pointer_kind
+categorize_pointer (struct type *type)
{
type = desc_base_type (type);
- return (type != NULL && type->code () == TYPE_CODE_STRUCT
- && lookup_struct_elt_type (type, "P_BOUNDS", 1) != NULL);
+ if (type == nullptr)
+ return pointer_kind::NOT_SPECIAL;
+
+ if (is_suffix (ada_type_name (type), "___XUT")
+ || is_suffix (ada_type_name (type), "___XUT___XVE"))
+ return pointer_kind::THIN;
+
+ if (type->code () == TYPE_CODE_STRUCT)
+ {
+ if (lookup_struct_elt_type (type, "P_BOUNDS", 1) != nullptr)
+ return pointer_kind::P_BOUNDS;
+ if (lookup_struct_elt_type (type, "BOUNDS", 1) != nullptr)
+ return pointer_kind::EXTENDED_ACCESS;
+ }
+
+ return pointer_kind::NOT_SPECIAL;
}
/* If TYPE is the type of an array descriptor (fat or thin pointer) or a
@@ -1795,11 +1851,9 @@ desc_bounds_type (struct type *type)
{
struct type *r;
+ pointer_kind kind = categorize_pointer (type);
type = desc_base_type (type);
-
- if (type == NULL)
- return NULL;
- else if (is_thin_pntr (type))
+ if (kind == pointer_kind::THIN)
{
type = thin_descriptor_type (type);
if (type == NULL)
@@ -1808,25 +1862,36 @@ desc_bounds_type (struct type *type)
if (r != NULL)
return ada_check_typedef (r);
}
- else if (type->code () == TYPE_CODE_STRUCT)
+ else if (kind == pointer_kind::P_BOUNDS
+ || kind == pointer_kind::EXTENDED_ACCESS)
{
- r = lookup_struct_elt_type (type, "P_BOUNDS", 1);
+ const char *field_name = (kind == pointer_kind::EXTENDED_ACCESS
+ ? "BOUNDS"
+ : "P_BOUNDS");
+ r = lookup_struct_elt_type (type, field_name, 1);
if (r != NULL)
- return ada_check_typedef (ada_check_typedef (r)->target_type ());
+ {
+ struct type *bounds_type = ada_check_typedef (r);
+ if (bounds_type->code () == TYPE_CODE_PTR)
+ bounds_type = ada_check_typedef (bounds_type->target_type ());
+ return bounds_type;
+ }
}
return NULL;
}
/* If ARR is an array descriptor (fat or thin pointer), or pointer to
- one, a pointer to its bounds data. Otherwise, throw an
- exception. */
+ one, return a pointer to its bounds data. For a fat pointer, this
+ means the structure holding the bounds -- so for extended access
+ pointers in particular, it will just return the descriptor itself.
+ Otherwise, throw an exception. */
static struct value *
desc_bounds (struct value *arr)
{
struct type *type = ada_check_typedef (arr->type ());
-
- if (is_thin_pntr (type))
+ pointer_kind kind = categorize_pointer (type);
+ if (kind == pointer_kind::THIN)
{
struct type *bounds_type =
desc_bounds_type (thin_descriptor_type (type));
@@ -1847,14 +1912,18 @@ desc_bounds (struct value *arr)
value_from_longest (lookup_pointer_type (bounds_type),
addr - bounds_type->length ());
}
-
- else if (is_thick_pntr (type))
+ else if (kind == pointer_kind::P_BOUNDS
+ || kind == pointer_kind::EXTENDED_ACCESS)
{
- struct value *p_bounds = value_struct_elt (&arr, {}, "P_BOUNDS", NULL,
- _("Bad GNAT array descriptor"));
+ const char *field_name = (kind == pointer_kind::EXTENDED_ACCESS
+ ? "BOUNDS"
+ : "P_BOUNDS");
+ struct value *p_bounds
+ = value_struct_elt (&arr, {}, field_name, nullptr,
+ _("Bad GNAT array descriptor"));
struct type *p_bounds_type = p_bounds->type ();
- if (p_bounds_type
+ if (p_bounds_type != nullptr
&& p_bounds_type->code () == TYPE_CODE_PTR)
{
struct type *target_type = p_bounds_type->target_type ();
@@ -1864,7 +1933,8 @@ desc_bounds (struct value *arr)
(ada_check_typedef (target_type)),
p_bounds);
}
- else
+ else if (p_bounds_type == nullptr
+ || kind != pointer_kind::EXTENDED_ACCESS)
error (_("Bad GNAT array descriptor"));
return p_bounds;
@@ -1904,12 +1974,13 @@ fat_pntr_bounds_bitsize (struct type *type)
static struct type *
desc_data_target_type (struct type *type)
{
+ pointer_kind kind = categorize_pointer (type);
type = desc_base_type (type);
-
/* NOTE: The following is bogus; see comment in desc_bounds. */
- if (is_thin_pntr (type))
+ if (kind == pointer_kind::THIN)
return desc_base_type (thin_descriptor_type (type)->field (1).type ());
- else if (is_thick_pntr (type))
+ else if (kind == pointer_kind::P_BOUNDS
+ || kind == pointer_kind::EXTENDED_ACCESS)
{
struct type *data_type = lookup_struct_elt_type (type, "P_ARRAY", 1);
@@ -1928,10 +1999,11 @@ static struct value *
desc_data (struct value *arr)
{
struct type *type = arr->type ();
-
- if (is_thin_pntr (type))
+ pointer_kind kind = categorize_pointer (type);
+ if (kind == pointer_kind::THIN)
return thin_data_pntr (arr);
- else if (is_thick_pntr (type))
+ else if (kind == pointer_kind::P_BOUNDS
+ || kind == pointer_kind::EXTENDED_ACCESS)
return value_struct_elt (&arr, {}, "P_ARRAY", NULL,
_("Bad GNAT array descriptor"));
else
@@ -2129,7 +2201,10 @@ ada_type_of_array (struct value *arr, int bounds)
return ada_check_typedef (arr->type ());
descriptor = desc_bounds (arr);
- if (value_as_long (descriptor) == 0)
+ /* In the extended access case, the bounds struct is "inline" so
+ the pointer cannot be NULL. */
+ if (ada_check_typedef (descriptor->type ())->code () == TYPE_CODE_PTR
+ && value_as_long (descriptor) == 0)
return NULL;
while (arity > 0)
{
@@ -2140,8 +2215,8 @@ ada_type_of_array (struct value *arr, int bounds)
arity -= 1;
struct type *range_type
= create_static_range_type (alloc, low->type (),
- longest_to_int (value_as_long (low)),
- longest_to_int (value_as_long (high)));
+ value_as_long (low),
+ value_as_long (high));
elt_type = create_array_type (alloc, elt_type, range_type);
INIT_GNAT_SPECIFIC (elt_type);
@@ -2270,7 +2345,8 @@ ada_is_unconstrained_packed_array_type (struct type *type)
/* If we saw GNAT encodings, then the above code is sufficient.
However, with minimal encodings, we will just have a thick
pointer instead. */
- if (is_thick_pntr (type))
+ pointer_kind kind = categorize_pointer (type);
+ if (kind == pointer_kind::P_BOUNDS || kind == pointer_kind::EXTENDED_ACCESS)
{
type = desc_base_type (type);
/* The structure's first field is a pointer to an array, so this
@@ -2322,7 +2398,9 @@ decode_packed_array_bitsize (struct type *type)
tail = strstr (raw_name, "___XP");
if (tail == nullptr)
{
- gdb_assert (is_thick_pntr (type));
+ pointer_kind kind = categorize_pointer (type);
+ gdb_assert (kind == pointer_kind::P_BOUNDS
+ || kind == pointer_kind::EXTENDED_ACCESS);
/* The structure's first field is a pointer to an array, so this
fetches the array type. */
type = type->field (0).type ()->target_type ();
@@ -2983,8 +3061,11 @@ value_assign_to_component (struct value *container, struct value *component,
bool
ada_is_access_to_unconstrained_array (struct type *type)
{
- return (type->code () == TYPE_CODE_TYPEDEF
- && is_thick_pntr (ada_typedef_target_type (type)));
+ if (type->code () != TYPE_CODE_TYPEDEF)
+ return false;
+ pointer_kind kind = categorize_pointer (ada_typedef_target_type (type));
+ return (kind == pointer_kind::P_BOUNDS
+ || kind == pointer_kind::EXTENDED_ACCESS);
}
/* The value of the element of array ARR at the ARITY indices given in IND.
@@ -3084,7 +3165,7 @@ ada_value_ptr_subscript (struct value *arr, int arity, struct value **ind)
this array is LOW, as per Ada rules. */
static struct value *
ada_value_slice_from_ptr (struct value *array_ptr, struct type *type,
- int low, int high)
+ LONGEST low, LONGEST high)
{
struct type *type0 = ada_check_typedef (type);
struct type *base_index_type = type0->index_type ()->target_type ();
@@ -3095,7 +3176,7 @@ ada_value_slice_from_ptr (struct value *array_ptr, struct type *type,
(alloc, type0->target_type (), index_type,
type0->dyn_prop (DYN_PROP_BYTE_STRIDE),
type0->field (0).bitsize ());
- int base_low = ada_discrete_type_low_bound (type0->index_type ());
+ LONGEST base_low = ada_discrete_type_low_bound (type0->index_type ());
std::optional<LONGEST> base_low_pos, low_pos;
CORE_ADDR base;
@@ -3119,7 +3200,7 @@ ada_value_slice_from_ptr (struct value *array_ptr, struct type *type,
static struct value *
-ada_value_slice (struct value *array, int low, int high)
+ada_value_slice (struct value *array, LONGEST low, LONGEST high)
{
struct type *type = ada_check_typedef (array->type ());
struct type *base_index_type = type->index_type ()->target_type ();
@@ -3392,7 +3473,7 @@ ada_array_length (struct value *arr, int n)
less than LOW, then LOW-1 is used. */
static struct value *
-empty_array (struct type *arr_type, int low, int high)
+empty_array (struct type *arr_type, LONGEST low, LONGEST high)
{
struct type *arr_type0 = ada_check_typedef (arr_type);
type_allocator alloc (arr_type0->index_type ()->target_type ());
@@ -3639,7 +3720,7 @@ See set/show multiple-symbol."));
if (syms[i].symbol == NULL)
continue;
- if (syms[i].symbol->aclass () == LOC_BLOCK)
+ if (syms[i].symbol->loc_class () == LOC_BLOCK)
{
struct symtab_and_line sal =
find_function_start_sal (syms[i].symbol, 1);
@@ -3661,7 +3742,7 @@ See set/show multiple-symbol."));
else
{
int is_enumeral =
- (syms[i].symbol->aclass () == LOC_CONST
+ (syms[i].symbol->loc_class () == LOC_CONST
&& syms[i].symbol->type () != NULL
&& syms[i].symbol->type ()->code () == TYPE_CODE_ENUM);
struct symtab *symtab = NULL;
@@ -3824,7 +3905,7 @@ ada_resolve_variable (struct symbol *sym, const struct block *block,
candidates.end (),
[] (block_symbol &bsym)
{
- switch (bsym.symbol->aclass ())
+ switch (bsym.symbol->loc_class ())
{
case LOC_REGISTER:
case LOC_ARG:
@@ -3847,7 +3928,7 @@ ada_resolve_variable (struct symbol *sym, const struct block *block,
candidates.end (),
[] (block_symbol &bsym)
{
- return bsym.symbol->aclass () == LOC_TYPEDEF;
+ return bsym.symbol->loc_class () == LOC_TYPEDEF;
}),
candidates.end ());
}
@@ -4002,7 +4083,7 @@ ada_args_match (struct symbol *func, struct value **actuals, int n_actuals)
int i;
struct type *func_type = func->type ();
- if (func->aclass () == LOC_CONST
+ if (func->loc_class () == LOC_CONST
&& func_type->code () == TYPE_CODE_ENUM)
return (n_actuals == 0);
else if (func_type == NULL || func_type->code () != TYPE_CODE_FUNC)
@@ -4312,7 +4393,7 @@ ada_parse_renaming (struct symbol *sym,
if (sym == NULL)
return ADA_NOT_RENAMING;
- switch (sym->aclass ())
+ switch (sym->loc_class ())
{
default:
return ADA_NOT_RENAMING;
@@ -4778,7 +4859,7 @@ is_nonfunction (const std::vector<struct block_symbol> &syms)
for (const block_symbol &sym : syms)
if (sym.symbol->type ()->code () != TYPE_CODE_FUNC
&& (sym.symbol->type ()->code () != TYPE_CODE_ENUM
- || sym.symbol->aclass () != LOC_CONST))
+ || sym.symbol->loc_class () != LOC_CONST))
return 1;
return 0;
@@ -4813,10 +4894,10 @@ lesseq_defined_than (struct symbol *sym0, struct symbol *sym1)
if (sym0 == sym1)
return 1;
if (sym0->domain () != sym1->domain ()
- || sym0->aclass () != sym1->aclass ())
+ || sym0->loc_class () != sym1->loc_class ())
return 0;
- switch (sym0->aclass ())
+ switch (sym0->loc_class ())
{
case LOC_UNDEF:
return 1;
@@ -4903,9 +4984,8 @@ ada_lookup_simple_minsym (const char *name, struct objfile *objfile)
symbol_name_matcher_ftype *match_name
= ada_get_symbol_name_matcher (lookup_name);
- gdbarch_iterate_over_objfiles_in_search_order
- (objfile != NULL ? objfile->arch () : current_inferior ()->arch (),
- [&result, lookup_name, match_name] (struct objfile *obj)
+ current_program_space->iterate_over_objfiles_in_search_order
+ ([&result, lookup_name, match_name] (struct objfile *obj)
{
for (minimal_symbol *msymbol : obj->msymbols ())
{
@@ -5071,7 +5151,7 @@ remove_extra_symbols (std::vector<struct block_symbol> &syms)
should be identical. */
else if (syms[i].symbol->linkage_name () != NULL
- && syms[i].symbol->aclass () == LOC_STATIC
+ && syms[i].symbol->loc_class () == LOC_STATIC
&& is_nondebugging_type (syms[i].symbol->type ()))
{
for (j = 0; !remove_p && j < syms.size (); j += 1)
@@ -5080,8 +5160,8 @@ remove_extra_symbols (std::vector<struct block_symbol> &syms)
&& syms[j].symbol->linkage_name () != NULL
&& strcmp (syms[i].symbol->linkage_name (),
syms[j].symbol->linkage_name ()) == 0
- && (syms[i].symbol->aclass ()
- == syms[j].symbol->aclass ())
+ && (syms[i].symbol->loc_class ()
+ == syms[j].symbol->loc_class ())
&& syms[i].symbol->value_address ()
== syms[j].symbol->value_address ())
remove_p = true;
@@ -5090,12 +5170,12 @@ remove_extra_symbols (std::vector<struct block_symbol> &syms)
/* Two functions with the same block are identical. */
- else if (syms[i].symbol->aclass () == LOC_BLOCK)
+ else if (syms[i].symbol->loc_class () == LOC_BLOCK)
{
for (j = 0; !remove_p && j < syms.size (); j += 1)
{
if (i != j
- && syms[j].symbol->aclass () == LOC_BLOCK
+ && syms[j].symbol->loc_class () == LOC_BLOCK
&& (syms[i].symbol->value_block ()
== syms[j].symbol->value_block ()))
remove_p = true;
@@ -5172,7 +5252,7 @@ is_package_name (const char *name)
static int
old_renaming_is_invisible (const struct symbol *sym, const char *function_name)
{
- if (sym->aclass () != LOC_TYPEDEF)
+ if (sym->loc_class () != LOC_TYPEDEF)
return 0;
std::string scope = xget_renaming_scope (sym->type ());
@@ -5251,7 +5331,7 @@ remove_irrelevant_renamings (std::vector<struct block_symbol> *syms,
const char *name;
const char *suffix;
- if (sym == NULL || sym->aclass () == LOC_TYPEDEF)
+ if (sym == NULL || sym->loc_class () == LOC_TYPEDEF)
continue;
name = sym->linkage_name ();
suffix = strstr (name, "___XR");
@@ -5376,7 +5456,7 @@ match_data::operator() (struct block_symbol *bsym)
}
else
{
- if (sym->aclass () == LOC_UNRESOLVED)
+ if (sym->loc_class () == LOC_UNRESOLVED)
return true;
else if (sym->is_argument ())
arg_sym = sym;
@@ -5475,22 +5555,19 @@ map_matching_symbols (struct objfile *objfile,
match_data &data)
{
data.objfile = objfile;
- objfile->expand_symtabs_matching (nullptr, &lookup_name,
- nullptr, nullptr,
- global
- ? SEARCH_GLOBAL_BLOCK
- : SEARCH_STATIC_BLOCK,
- domain);
const int block_kind = global ? GLOBAL_BLOCK : STATIC_BLOCK;
- for (compunit_symtab *symtab : objfile->compunits ())
+ auto callback = [&] (compunit_symtab *symtab)
{
const struct block *block
= symtab->blockvector ()->block (block_kind);
- if (!iterate_over_symbols_terminated (block, lookup_name,
- domain, data))
- break;
- }
+ return iterate_over_symbols_terminated (block, lookup_name,
+ domain, data);
+ };
+
+ objfile->search (nullptr, &lookup_name, nullptr, callback,
+ global ? SEARCH_GLOBAL_BLOCK : SEARCH_STATIC_BLOCK,
+ domain);
}
/* Add to RESULT all non-local symbols whose name and domain match
@@ -5732,10 +5809,10 @@ is_name_suffix (const char *str)
/* Skip optional leading __[0-9]+. */
- if (len > 3 && str[0] == '_' && str[1] == '_' && isdigit (str[2]))
+ if (len > 3 && str[0] == '_' && str[1] == '_' && c_isdigit (str[2]))
{
str += 3;
- while (isdigit (str[0]))
+ while (c_isdigit (str[0]))
str += 1;
}
@@ -5744,7 +5821,7 @@ is_name_suffix (const char *str)
if (str[0] == '.' || str[0] == '$')
{
matching = str + 1;
- while (isdigit (matching[0]))
+ while (c_isdigit (matching[0]))
matching += 1;
if (matching[0] == '\0')
return 1;
@@ -5755,7 +5832,7 @@ is_name_suffix (const char *str)
if (len > 3 && str[0] == '_' && str[1] == '_' && str[2] == '_')
{
matching = str + 3;
- while (isdigit (matching[0]))
+ while (c_isdigit (matching[0]))
matching += 1;
if (matching[0] == '\0')
return 1;
@@ -5784,10 +5861,10 @@ is_name_suffix (const char *str)
#endif
/* _E[0-9]+[bs]$ */
- if (len > 3 && str[0] == '_' && str [1] == 'E' && isdigit (str[2]))
+ if (len > 3 && str[0] == '_' && str [1] == 'E' && c_isdigit (str[2]))
{
matching = str + 3;
- while (isdigit (matching[0]))
+ while (c_isdigit (matching[0]))
matching += 1;
if ((matching[0] == 'b' || matching[0] == 's')
&& matching [1] == '\0')
@@ -5837,17 +5914,17 @@ is_name_suffix (const char *str)
return 1;
return 0;
}
- if (!isdigit (str[2]))
+ if (!c_isdigit (str[2]))
return 0;
for (k = 3; str[k] != '\0'; k += 1)
- if (!isdigit (str[k]) && str[k] != '_')
+ if (!c_isdigit (str[k]) && str[k] != '_')
return 0;
return 1;
}
- if (str[0] == '$' && isdigit (str[1]))
+ if (str[0] == '$' && c_isdigit (str[1]))
{
for (k = 2; str[k] != '\0'; k += 1)
- if (!isdigit (str[k]) && str[k] != '_')
+ if (!c_isdigit (str[k]) && str[k] != '_')
return 0;
return 1;
}
@@ -5870,7 +5947,7 @@ is_valid_name_for_wild_match (const char *name0)
return 0;
for (i=0; decoded_name[i] != '\0'; i++)
- if (isalpha (decoded_name[i]) && !islower (decoded_name[i]))
+ if (c_isalpha (decoded_name[i]) && !c_islower (decoded_name[i]))
return 0;
return 1;
@@ -5981,7 +6058,7 @@ ada_add_block_symbols (std::vector<struct block_symbol> &result,
{
if (sym->matches (domain))
{
- if (sym->aclass () != LOC_UNRESOLVED)
+ if (sym->loc_class () != LOC_UNRESOLVED)
{
if (sym->is_argument ())
arg_sym = sym;
@@ -6030,7 +6107,7 @@ ada_add_block_symbols (std::vector<struct block_symbol> &result,
if (cmp == 0
&& is_name_suffix (sym->linkage_name () + name_len + 5))
{
- if (sym->aclass () != LOC_UNRESOLVED)
+ if (sym->loc_class () != LOC_UNRESOLVED)
{
if (sym->is_argument ())
arg_sym = sym;
@@ -6094,7 +6171,7 @@ ada_lookup_name_info::matches
angle bracket notation. */
const char *tmp;
- for (tmp = sym_name; *tmp != '\0' && !isupper (*tmp); tmp++);
+ for (tmp = sym_name; *tmp != '\0' && !c_isupper (*tmp); tmp++);
if (*tmp != '\0')
match = false;
}
@@ -6209,7 +6286,7 @@ ada_is_ignored_field (struct type *type, int field_num)
{
/* Wrapper field. */
}
- else if (isupper (name[0]))
+ else if (c_isupper (name[0]))
return 1;
}
@@ -6433,7 +6510,7 @@ ada_get_tsd_type (struct inferior *inf)
if (data->tsd_type == 0)
data->tsd_type
- = lookup_transparent_type ("<ada__tags__type_specific_data>",
+ = lookup_transparent_type ("ada.tags.type_specific_data",
SEARCH_TYPE_DOMAIN);
return data->tsd_type;
}
@@ -6720,14 +6797,14 @@ ada_scan_number (const char str[], int k, LONGEST * R, int *new_k)
{
ULONGEST RU;
- if (!isdigit (str[k]))
+ if (!c_isdigit (str[k]))
return 0;
/* Do it the hard way so as not to make any assumption about
the relationship of unsigned long (%lu scan format code) and
LONGEST. */
RU = 0;
- while (isdigit (str[k]))
+ while (c_isdigit (str[k]))
{
RU = RU * 10 + (str[k] - '0');
k += 1;
@@ -6901,7 +6978,7 @@ static int
find_struct_field (const char *name, struct type *type, int offset,
struct type **field_type_p,
int *byte_offset_p, int *bit_offset_p, int *bit_size_p,
- int *index_p)
+ LONGEST *index_p)
{
int i;
int parent_offset = -1;
@@ -7015,12 +7092,10 @@ find_struct_field (const char *name, struct type *type, int offset,
/* Number of user-visible fields in record type TYPE. */
-static int
+static LONGEST
num_visible_fields (struct type *type)
{
- int n;
-
- n = 0;
+ LONGEST n = 0;
find_struct_field (NULL, type, 0, NULL, NULL, NULL, NULL, &n);
return n;
}
@@ -7080,17 +7155,16 @@ ada_search_struct_field (const char *name, struct value *arg, int offset,
else if (ada_is_variant_part (type, i))
{
/* PNH: Do we ever get here? See find_struct_field. */
- int j;
struct type *field_type = ada_check_typedef (type->field (i).type ());
int var_offset = offset + type->field (i).loc_bitpos () / 8;
- for (j = 0; j < field_type->num_fields (); j += 1)
+ for (const auto &field : field_type->fields ())
{
- struct value *v = ada_search_struct_field /* Force line
- break. */
- (name, arg,
- var_offset + field_type->field (j).loc_bitpos () / 8,
- field_type->field (j).type ());
+ struct value *v
+ = (ada_search_struct_field
+ (name, arg,
+ var_offset + field.loc_bitpos () / 8,
+ field.type ()));
if (v != NULL)
return v;
@@ -7384,10 +7458,10 @@ field_alignment (struct type *type, int f)
len = strlen (name);
- if (!isdigit (name[len - 1]))
+ if (!c_isdigit (name[len - 1]))
return 1;
- if (isdigit (name[len - 2]))
+ if (c_isdigit (name[len - 2]))
align_offset = len - 2;
else
align_offset = len - 1;
@@ -8182,12 +8256,11 @@ ada_is_redundant_index_type_desc (struct type *array_type,
struct type *desc_type)
{
struct type *this_layer = check_typedef (array_type);
- int i;
- for (i = 0; i < desc_type->num_fields (); i++)
+ for (const auto &field : desc_type->fields ())
{
if (!ada_is_redundant_range_encoding (this_layer->index_type (),
- desc_type->field (i).type ()))
+ field.type ()))
return 0;
this_layer = check_typedef (this_layer->target_type ());
}
@@ -8784,9 +8857,9 @@ ada_atr_enum_val (struct expression *exp, enum noside noside, struct type *type,
error (_("'Enum_Val requires integral argument"));
LONGEST value = value_as_long (arg);
- for (int i = 0; i < type->num_fields (); ++i)
+ for (const auto &field : type->fields ())
{
- if (type->field (i).loc_enumval () == value)
+ if (field.loc_enumval () == value)
return value_from_longest (original_type, value);
}
@@ -8969,7 +9042,7 @@ ada_unqualify_enum_name (const char *name)
{
while ((tmp = strstr (name, "__")) != NULL)
{
- if (isdigit (tmp[2]))
+ if (c_isdigit (tmp[2]))
break;
else
name = tmp + 2;
@@ -9012,7 +9085,7 @@ ada_enum_name (const char *name)
else
return name;
- if (isascii (v) && isprint (v))
+ if (c_isascii (v) && c_isprint (v))
storage = string_printf ("'%c'", v);
else if (name[1] == 'U')
storage = string_printf ("'[\"%02x\"]'", v);
@@ -9540,12 +9613,12 @@ void
ada_name_association::assign (aggregate_assigner &assigner,
operation_up &op)
{
- int index;
+ LONGEST index;
if (ada_is_direct_array_type (assigner.lhs->type ()))
{
value *tem = m_val->evaluate (nullptr, assigner.exp, EVAL_NORMAL);
- index = longest_to_int (value_as_long (tem));
+ index = value_as_long (tem);
}
else
{
@@ -10046,14 +10119,19 @@ ada_unop_neg (struct type *expect_type,
return value_neg (arg1);
}
-/* A helper function for UNOP_IN_RANGE. */
+namespace expr
+{
+
+/* Implement UNOP_IN_RANGE. */
value *
-ada_unop_in_range (struct type *expect_type,
- struct expression *exp,
- enum noside noside, enum exp_opcode op,
- struct value *arg1, struct type *type)
+ada_unop_range_operation::evaluate (struct type *expect_type,
+ struct expression *exp,
+ enum noside noside)
{
+ value *arg1 = std::get<0> (m_storage)->evaluate (nullptr, exp, noside);
+ struct type *type = std::get<1> (m_storage);
+
struct value *arg2, *arg3;
switch (type->code ())
{
@@ -10080,6 +10158,8 @@ ada_unop_in_range (struct type *expect_type,
}
}
+} /* namespace expr */
+
/* A helper function for OP_ATR_TAG. */
value *
@@ -10167,14 +10247,21 @@ ada_mult_binop (struct type *expect_type,
}
}
-/* A helper function for BINOP_EQUAL and BINOP_NOTEQUAL. */
+namespace expr
+{
+
+/* Implement BINOP_EQUAL and BINOP_NOTEQUAL. */
value *
-ada_equal_binop (struct type *expect_type,
- struct expression *exp,
- enum noside noside, enum exp_opcode op,
- struct value *arg1, struct value *arg2)
+ada_binop_equal_operation::evaluate (struct type *expect_type,
+ struct expression *exp,
+ enum noside noside)
{
+ enum exp_opcode op = std::get<0> (m_storage);
+ value *arg1 = std::get<1> (m_storage)->evaluate (nullptr, exp, noside);
+ value *arg2 = std::get<2> (m_storage)->evaluate (arg1->type (),
+ exp, noside);
+
int tem;
if (noside == EVAL_AVOID_SIDE_EFFECTS)
tem = 0;
@@ -10189,14 +10276,19 @@ ada_equal_binop (struct type *expect_type,
return value_from_longest (type, tem);
}
-/* A helper function for TERNOP_SLICE. */
+/* Implement TERNOP_SLICE. */
value *
-ada_ternop_slice (struct expression *exp,
- enum noside noside,
- struct value *array, struct value *low_bound_val,
- struct value *high_bound_val)
+ada_ternop_slice_operation::evaluate (struct type *expect_type,
+ struct expression *exp,
+ enum noside noside)
{
+ value *array = std::get<0> (m_storage)->evaluate (nullptr, exp, noside);
+ value *low_bound_val
+ = std::get<1> (m_storage)->evaluate (nullptr, exp, noside);
+ value *high_bound_val
+ = std::get<2> (m_storage)->evaluate (nullptr, exp, noside);
+
LONGEST low_bound;
LONGEST high_bound;
@@ -10257,8 +10349,7 @@ ada_ternop_slice (struct expression *exp,
to_fixed_array_type (type0->target_type (), NULL, 1);
return ada_value_slice_from_ptr (array, arr_type0,
- longest_to_int (low_bound),
- longest_to_int (high_bound));
+ low_bound, high_bound);
}
}
else if (noside == EVAL_AVOID_SIDE_EFFECTS)
@@ -10266,16 +10357,20 @@ ada_ternop_slice (struct expression *exp,
else if (high_bound < low_bound)
return empty_array (array->type (), low_bound, high_bound);
else
- return ada_value_slice (array, longest_to_int (low_bound),
- longest_to_int (high_bound));
+ return ada_value_slice (array, low_bound, high_bound);
}
-/* A helper function for BINOP_IN_BOUNDS. */
+/* Implement BINOP_IN_BOUNDS. */
value *
-ada_binop_in_bounds (struct expression *exp, enum noside noside,
- struct value *arg1, struct value *arg2, int n)
+ada_binop_in_bounds_operation::evaluate (struct type *expect_type,
+ struct expression *exp,
+ enum noside noside)
{
+ value *arg1 = std::get<0> (m_storage)->evaluate (nullptr, exp, noside);
+ value *arg2 = std::get<1> (m_storage)->evaluate (nullptr, exp, noside);
+ int n = std::get<2> (m_storage);
+
if (noside == EVAL_AVOID_SIDE_EFFECTS)
{
struct type *type = language_bool_type (exp->language_defn,
@@ -10300,6 +10395,8 @@ ada_binop_in_bounds (struct expression *exp, enum noside noside,
|| value_equal (arg2, arg1)));
}
+} /* namespace expr */
+
/* A helper function for some attribute operations. */
static value *
@@ -10502,7 +10599,6 @@ static LONGEST
convert_char_literal (struct type *type, LONGEST val)
{
char name[12];
- int f;
if (type == NULL)
return val;
@@ -10519,17 +10615,17 @@ convert_char_literal (struct type *type, LONGEST val)
else
xsnprintf (name, sizeof (name), "QWW%08lx", (unsigned long) val);
size_t len = strlen (name);
- for (f = 0; f < type->num_fields (); f += 1)
+ for (const auto &field : type->fields ())
{
/* Check the suffix because an enum constant in a package will
have a name like "pkg__QUxx". This is safe enough because we
already have the correct type, and because mangling means
there can't be clashes. */
- const char *ename = type->field (f).name ();
+ const char *ename = field.name ();
size_t elen = strlen (ename);
if (elen >= len && strcmp (name, ename + elen - len) == 0)
- return type->field (f).loc_enumval ();
+ return field.loc_enumval ();
}
return val;
}
@@ -11004,7 +11100,9 @@ ada_unop_ind_operation::evaluate (struct type *expect_type,
if (arrType == NULL)
error (_("Attempt to dereference null array pointer."));
- if (is_thick_pntr (type))
+ pointer_kind kind = categorize_pointer (type);
+ if (kind == pointer_kind::P_BOUNDS
+ || kind == pointer_kind::EXTENDED_ACCESS)
return arg1;
return value_at_lazy (arrType, 0);
}
@@ -11712,9 +11810,9 @@ ada_has_this_exception_support (const struct exception_support_info *einfo)
/* Make sure that the symbol we found corresponds to a function. */
- if (sym->aclass () != LOC_BLOCK)
+ if (sym->loc_class () != LOC_BLOCK)
error (_("Symbol \"%s\" is not a function (class = %d)"),
- sym->linkage_name (), sym->aclass ());
+ sym->linkage_name (), sym->loc_class ());
sym = standard_lookup (einfo->catch_handlers_sym, NULL,
SEARCH_FUNCTION_DOMAIN);
@@ -11734,9 +11832,9 @@ ada_has_this_exception_support (const struct exception_support_info *einfo)
/* Make sure that the symbol we found corresponds to a function. */
- if (sym->aclass () != LOC_BLOCK)
+ if (sym->loc_class () != LOC_BLOCK)
error (_("Symbol \"%s\" is not a function (class = %d)"),
- sym->linkage_name (), sym->aclass ());
+ sym->linkage_name (), sym->loc_class ());
return 1;
}
@@ -12536,7 +12634,7 @@ catch_ada_exception_command_split (const char *args,
args = skip_spaces (args);
if (startswith (args, "if")
- && (isspace (args[2]) || args[2] == '\0'))
+ && (c_isspace (args[2]) || args[2] == '\0'))
{
args += 2;
args = skip_spaces (args);
@@ -12691,7 +12789,7 @@ ada_exception_sal (enum ada_exception_catchpoint_kind ex)
throw_error (NOT_FOUND_ERROR, _("Catchpoint symbol not found: %s"),
sym_name);
- if (sym->aclass () != LOC_BLOCK)
+ if (sym->loc_class () != LOC_BLOCK)
error (_("Unable to insert catchpoint. %s is not a function."), sym_name);
return find_function_start_sal (sym, 1);
@@ -12813,7 +12911,7 @@ catch_ada_assert_command_split (const char *args, std::string &cond_string)
/* Check whether a condition was provided. */
if (startswith (args, "if")
- && (isspace (args[2]) || args[2] == '\0'))
+ && (c_isspace (args[2]) || args[2] == '\0'))
{
args += 2;
args = skip_spaces (args);
@@ -12857,10 +12955,10 @@ ada_is_exception_sym (struct symbol *sym)
{
const char *type_name = sym->type ()->name ();
- return (sym->aclass () != LOC_TYPEDEF
- && sym->aclass () != LOC_BLOCK
- && sym->aclass () != LOC_CONST
- && sym->aclass () != LOC_UNRESOLVED
+ return (sym->loc_class () != LOC_TYPEDEF
+ && sym->loc_class () != LOC_BLOCK
+ && sym->loc_class () != LOC_CONST
+ && sym->loc_class () != LOC_UNRESOLVED
&& type_name != NULL && strcmp (type_name, "exception") == 0);
}
@@ -12993,7 +13091,7 @@ ada_add_exceptions_from_frame (compiled_regex *preg,
{
for (struct symbol *sym : block_iterator_range (block))
{
- switch (sym->aclass ())
+ switch (sym->loc_class ())
{
case LOC_TYPEDEF:
case LOC_BLOCK:
@@ -13044,31 +13142,11 @@ ada_add_global_exceptions (compiled_regex *preg,
return preg == nullptr || preg->exec (name, 0, NULL, 0) == 0;
};
-
- /* In Ada, the symbol "search name" is a linkage name, whereas the
- regular expression used to do the matching refers to the natural
- name. So match against the decoded name. */
- expand_symtabs_matching (NULL,
- lookup_name_info::match_any (),
- [&] (const char *search_name)
- {
- std::string decoded = ada_decode (search_name);
- return name_matches_regex (decoded.c_str ());
- },
- NULL,
- SEARCH_GLOBAL_BLOCK | SEARCH_STATIC_BLOCK,
- SEARCH_VAR_DOMAIN,
- [&] (enum language lang)
- {
- /* Try to skip non-Ada CUs. */
- return lang == language_ada;
- });
-
/* Iterate over all objfiles irrespective of scope or linker namespaces
so we get all exceptions anywhere in the progspace. */
for (objfile *objfile : current_program_space->objfiles ())
{
- for (compunit_symtab *s : objfile->compunits ())
+ auto callback = [&] (compunit_symtab *s)
{
const struct blockvector *bv = s->blockvector ();
int i;
@@ -13087,7 +13165,30 @@ ada_add_global_exceptions (compiled_regex *preg,
exceptions->push_back (info);
}
}
- }
+
+ return true;
+ };
+
+ /* In Ada, the symbol "search name" is a linkage name, whereas
+ the regular expression used to do the matching refers to the
+ natural name. So match against the decoded name. */
+ auto any = lookup_name_info::match_any ();
+ objfile->search
+ (nullptr,
+ &any,
+ [&] (const char *search_name)
+ {
+ std::string decoded = ada_decode (search_name);
+ return name_matches_regex (decoded.c_str ());
+ },
+ callback,
+ SEARCH_GLOBAL_BLOCK | SEARCH_STATIC_BLOCK,
+ SEARCH_VAR_DOMAIN,
+ [&] (enum language lang)
+ {
+ /* Try to skip non-Ada CUs. */
+ return lang == language_ada;
+ });
}
}
@@ -13217,7 +13318,7 @@ do_full_match (const char *symbol_search_name,
&& symbol_search_name[1] == '_')
{
symbol_search_name += 2;
- while (isdigit (*symbol_search_name))
+ while (c_isdigit (*symbol_search_name))
++symbol_search_name;
if (symbol_search_name[0] == '_'
&& symbol_search_name[1] == '_')
@@ -13294,7 +13395,7 @@ ada_lookup_name_info::ada_lookup_name_info (const lookup_name_info &lookup_name)
else
m_standard_p = false;
- m_decoded_name = ada_decode (m_encoded_name.c_str (), true, false, false);
+ m_decoded_name = ada_decode (m_encoded_name.c_str (), true, false);
/* If the name contains a ".", then the user is entering a fully
qualified entity name, and the match must not be done in wild
@@ -13595,20 +13696,12 @@ public:
const char *text, const char *word,
enum type_code code) const override
{
- const struct block *b, *surrounding_static_block = 0;
+ const struct block *surrounding_static_block = 0;
gdb_assert (code == TYPE_CODE_UNDEF);
lookup_name_info lookup_name (text, name_match_type, true);
- /* First, look at the partial symtab symbols. */
- expand_symtabs_matching (NULL,
- lookup_name,
- NULL,
- NULL,
- SEARCH_GLOBAL_BLOCK | SEARCH_STATIC_BLOCK,
- SEARCH_ALL_DOMAINS);
-
/* At this point scan through the misc symbol vectors and add each
symbol you find to the list. Eventually we want to ignore
anything that isn't a text symbol (everything else will be
@@ -13650,7 +13743,9 @@ public:
/* Search upwards from currently selected frame (so that we can
complete on local vars. */
- for (b = get_selected_block (0); b != NULL; b = b->superblock ())
+ for (const block *b = get_selected_block (0);
+ b != nullptr;
+ b = b->superblock ())
{
if (b->is_static_block ())
surrounding_static_block = b; /* For elmin of dups */
@@ -13672,43 +13767,36 @@ public:
for (objfile *objfile : current_program_space->objfiles ())
{
- for (compunit_symtab *s : objfile->compunits ())
+ auto callback = [&] (compunit_symtab *s)
{
QUIT;
- b = s->blockvector ()->global_block ();
- for (struct symbol *sym : block_iterator_range (b))
+ for (const block *b = s->blockvector ()->static_block ();
+ b != nullptr;
+ b = b->superblock ())
{
- if (completion_skip_symbol (mode, sym))
- continue;
+ /* Don't do this block twice. */
+ if (b == surrounding_static_block)
+ break;
- completion_list_add_name (tracker,
- sym->language (),
- sym->linkage_name (),
- lookup_name, text, word);
+ for (struct symbol *sym : block_iterator_range (b))
+ {
+ if (completion_skip_symbol (mode, sym))
+ continue;
+
+ completion_list_add_name (tracker,
+ sym->language (),
+ sym->linkage_name (),
+ lookup_name, text, word);
+ }
}
- }
- }
- for (objfile *objfile : current_program_space->objfiles ())
- {
- for (compunit_symtab *s : objfile->compunits ())
- {
- QUIT;
- b = s->blockvector ()->static_block ();
- /* Don't do this block twice. */
- if (b == surrounding_static_block)
- continue;
- for (struct symbol *sym : block_iterator_range (b))
- {
- if (completion_skip_symbol (mode, sym))
- continue;
+ return true;
+ };
- completion_list_add_name (tracker,
- sym->language (),
- sym->linkage_name (),
- lookup_name, text, word);
- }
- }
+ objfile->search
+ (nullptr, &lookup_name, nullptr, callback,
+ SEARCH_GLOBAL_BLOCK | SEARCH_STATIC_BLOCK,
+ SEARCH_ALL_DOMAINS);
}
}
diff --git a/gdb/ada-lang.h b/gdb/ada-lang.h
index c125fbc..5e08c3b 100644
--- a/gdb/ada-lang.h
+++ b/gdb/ada-lang.h
@@ -218,16 +218,13 @@ extern const char *ada_decode_symbol (const struct general_symbol_info *);
simply wrapped in <...>. If WRAP is false, then the empty string
will be returned.
- When OPERATORS is false, operator names will not be decoded. By
- default, they are decoded, e.g., 'Oadd' will be transformed to
- '"+"'.
-
- When WIDE is false, wide characters will be left as-is. By
- default, they converted from their hex encoding to the host
- charset. */
+ TRANSLATE has two effects. When true (the default), operator names
+ and wide characters will be decoded. E.g., 'Oadd' will be
+ transformed to '"+"', and wide characters converted from their hex
+ encoding to the host charset. When false, these will be left
+ alone. */
extern std::string ada_decode (const char *name, bool wrap = true,
- bool operators = true,
- bool wide = true);
+ bool translate = true);
extern std::vector<struct block_symbol> ada_lookup_symbol_list
(const char *, const struct block *, domain_search_flags);
diff --git a/gdb/ada-lex.l b/gdb/ada-lex.l
index 0cfa0c8..eec80cf 100644
--- a/gdb/ada-lex.l
+++ b/gdb/ada-lex.l
@@ -335,7 +335,6 @@ false { return FALSEKEYWORD; }
. { error (_("Invalid character '%s' in expression."), yytext); }
%%
-#include <ctype.h>
/* Initialize the lexer for processing new expression. */
static void
@@ -355,7 +354,7 @@ canonicalizeNumeral (char *s1, const char *s2)
{
if (*s2 != '_')
{
- *s1 = tolower(*s2);
+ *s1 = c_tolower(*s2);
s1 += 1;
}
}
@@ -411,7 +410,7 @@ processInt (struct parser_state *par_state, const char *base0,
exp = strtol(exp0, (char **) NULL, 10);
gdb_mpz result;
- while (isxdigit (*num0))
+ while (c_isxdigit (*num0))
{
int dig = fromhex (*num0);
if (dig >= base)
@@ -527,7 +526,7 @@ processId (const char *name0, int len)
struct stoken result;
result.ptr = name;
- while (len > 0 && isspace (name0[len-1]))
+ while (len > 0 && c_isspace (name0[len-1]))
len -= 1;
if (name0[0] == '<' || strstr (name0, "___") != NULL)
@@ -549,12 +548,12 @@ processId (const char *name0, int len)
}
else if (in_quotes)
name[i++] = name0[i0++];
- else if (isalnum (name0[i0]))
+ else if (c_isalnum (name0[i0]))
{
- name[i] = tolower (name0[i0]);
+ name[i] = c_tolower (name0[i0]);
i += 1; i0 += 1;
}
- else if (isspace (name0[i0]))
+ else if (c_isspace (name0[i0]))
i0 += 1;
else if (name0[i0] == '\'')
{
@@ -634,10 +633,10 @@ find_dot_all (const char *str)
do
i += 1;
- while (isspace (str[i]));
+ while (c_isspace (str[i]));
if (strncasecmp (str + i, "all", 3) == 0
- && !isalnum (str[i + 3]) && str[i + 3] != '_')
+ && !c_isalnum (str[i + 3]) && str[i + 3] != '_')
return i0;
}
return -1;
@@ -653,7 +652,7 @@ subseqMatch (const char *subseq, const char *str)
return 1;
else if (str[0] == '\0')
return 0;
- else if (tolower (subseq[0]) == tolower (str[0]))
+ else if (c_tolower (subseq[0]) == c_tolower (str[0]))
return subseqMatch (subseq+1, str+1) || subseqMatch (subseq, str+1);
else
return subseqMatch (subseq, str+1);
@@ -690,7 +689,7 @@ processAttribute (const char *str)
{
gdb_assert (*str == '\'');
++str;
- while (isspace (*str))
+ while (c_isspace (*str))
++str;
int len = strlen (str);
@@ -749,7 +748,7 @@ static void
rewind_to_char (int ch)
{
pstate->lexptr -= yyleng;
- while (toupper (*pstate->lexptr) != toupper (ch))
+ while (c_toupper (*pstate->lexptr) != c_toupper (ch))
pstate->lexptr -= 1;
yyrestart (NULL);
}
diff --git a/gdb/ada-typeprint.c b/gdb/ada-typeprint.c
index defd828..5829a9b 100644
--- a/gdb/ada-typeprint.c
+++ b/gdb/ada-typeprint.c
@@ -23,7 +23,6 @@
#include "cli/cli-style.h"
#include "typeprint.h"
#include "ada-lang.h"
-#include <ctype.h>
static int print_selected_record_field_types (struct type *, struct type *,
int, int,
@@ -70,7 +69,7 @@ decoded_type_name (struct type *type)
if (s == name_buffer)
return name_buffer;
- if (!islower (s[1]))
+ if (!c_islower (s[1]))
return NULL;
for (s = q = name_buffer; *s != '\0'; q += 1)
diff --git a/gdb/ada-valprint.c b/gdb/ada-valprint.c
index 7c6826e..c198fa5 100644
--- a/gdb/ada-valprint.c
+++ b/gdb/ada-valprint.c
@@ -17,7 +17,6 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include <ctype.h>
#include "event-top.h"
#include "extract-store-integer.h"
#include "gdbtypes.h"
@@ -265,10 +264,10 @@ ada_emit_char (int c, struct type *type, struct ui_file *stream,
/* If this character fits in the normal ASCII range, and is
a printable character, then print the character as if it was
an ASCII character, even if this is a wide character.
- The UCHAR_MAX check is necessary because the isascii function
+ The UCHAR_MAX check is necessary because the c_isascii function
requires that its argument have a value of an unsigned char,
or EOF (EOF is obviously not printable). */
- if (c <= UCHAR_MAX && isascii (c) && isprint (c))
+ if (c <= UCHAR_MAX && c_isascii (c) && c_isprint (c))
{
if (c == quoter && c == '"')
gdb_printf (stream, "\"\"");
diff --git a/gdb/addrmap.c b/gdb/addrmap.c
index 4549350..2b333a1 100644
--- a/gdb/addrmap.c
+++ b/gdb/addrmap.c
@@ -201,10 +201,11 @@ xfree_wrapper (splay_tree_key key)
xfree ((void *) key);
}
-void
+bool
addrmap_mutable::set_empty (CORE_ADDR start, CORE_ADDR end_inclusive,
void *obj)
{
+ bool full_range = true;
splay_tree_node n, next;
void *prior_value;
@@ -234,7 +235,12 @@ addrmap_mutable::set_empty (CORE_ADDR start, CORE_ADDR end_inclusive,
n && addrmap_node_key (n) <= end_inclusive;
n = splay_tree_successor (addrmap_node_key (n)))
{
- if (! addrmap_node_value (n))
+ if (addrmap_node_value (n))
+ {
+ /* Already mapped. */
+ full_range = false;
+ }
+ else
addrmap_node_set_value (n, obj);
}
@@ -254,6 +260,8 @@ addrmap_mutable::set_empty (CORE_ADDR start, CORE_ADDR end_inclusive,
else
prior_value = addrmap_node_value (n);
}
+
+ return full_range;
}
@@ -433,7 +441,9 @@ test_addrmap ()
check_addrmap_find (map, array, 0, 19, nullptr);
/* Insert address range into mutable addrmap. */
- map.set_empty (core_addr (&array[10]), core_addr (&array[12]), val1);
+ bool full_range_p
+ = map.set_empty (core_addr (&array[10]), core_addr (&array[12]), val1);
+ SELF_CHECK (full_range_p);
check_addrmap_find (map, array, 0, 9, nullptr);
check_addrmap_find (map, array, 10, 12, val1);
check_addrmap_find (map, array, 13, 19, nullptr);
@@ -469,7 +479,9 @@ test_addrmap ()
check_addrmap_find (*map2, array, 14, 19, nullptr);
/* Insert partially overlapping address range into mutable addrmap. */
- map.set_empty (core_addr (&array[11]), core_addr (&array[13]), val2);
+ full_range_p
+ = map.set_empty (core_addr (&array[11]), core_addr (&array[13]), val2);
+ SELF_CHECK (!full_range_p);
check_addrmap_find (map, array, 0, 9, nullptr);
check_addrmap_find (map, array, 10, 12, val1);
check_addrmap_find (map, array, 13, 13, val2);
diff --git a/gdb/addrmap.h b/gdb/addrmap.h
index 179e1f8..398bdd8 100644
--- a/gdb/addrmap.h
+++ b/gdb/addrmap.h
@@ -152,7 +152,7 @@ public:
/* In the mutable address map MAP, associate the addresses from START
to END_INCLUSIVE that are currently associated with NULL with OBJ
instead. Addresses mapped to an object other than NULL are left
- unchanged.
+ unchanged. Return true if the full range is mapped to OBJ.
As the name suggests, END_INCLUSIVE is also mapped to OBJ. This
convention is unusual, but it allows callers to accurately specify
@@ -186,7 +186,7 @@ public:
semantics than to provide an interface which allows it to be
implemented efficiently, but doesn't reveal too much of the
representation. */
- void set_empty (CORE_ADDR start, CORE_ADDR end_inclusive,
+ bool set_empty (CORE_ADDR start, CORE_ADDR end_inclusive,
void *obj);
/* Clear this addrmap. */
diff --git a/gdb/alpha-netbsd-tdep.c b/gdb/alpha-netbsd-tdep.c
index 0f5e305..56143ee 100644
--- a/gdb/alpha-netbsd-tdep.c
+++ b/gdb/alpha-netbsd-tdep.c
@@ -261,7 +261,7 @@ alphanbsd_init_abi (struct gdbarch_info info,
/* NetBSD/alpha does not provide single step support via ptrace(2); we
must use software single-stepping. */
- set_gdbarch_software_single_step (gdbarch, alpha_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, alpha_software_single_step);
/* NetBSD/alpha has SVR4-style shared libraries. */
set_solib_svr4_ops (gdbarch, make_svr4_lp64_solib_ops);
diff --git a/gdb/alpha-obsd-tdep.c b/gdb/alpha-obsd-tdep.c
index 63f9050..a84dfa8 100644
--- a/gdb/alpha-obsd-tdep.c
+++ b/gdb/alpha-obsd-tdep.c
@@ -106,7 +106,7 @@ alphaobsd_init_abi(struct gdbarch_info info, struct gdbarch *gdbarch)
/* OpenBSD/alpha 3.0 and earlier does not provide single step
support via ptrace(2); use software single-stepping for now. */
- set_gdbarch_software_single_step (gdbarch, alpha_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, alpha_software_single_step);
/* OpenBSD/alpha has SVR4-style shared libraries. */
set_solib_svr4_ops (gdbarch, make_svr4_lp64_solib_ops);
diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c
index d655c13..59e0162 100644
--- a/gdb/alpha-tdep.c
+++ b/gdb/alpha-tdep.c
@@ -1797,7 +1797,7 @@ alpha_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_cannot_step_breakpoint (gdbarch, 1);
/* Handles single stepping of atomic sequences. */
- set_gdbarch_software_single_step (gdbarch, alpha_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, alpha_software_single_step);
/* Hook in ABI-specific overrides, if they have been registered. */
gdbarch_init_osabi (info, gdbarch);
diff --git a/gdb/amd-dbgapi-target.c b/gdb/amd-dbgapi-target.c
index a0210f4..666e404 100644
--- a/gdb/amd-dbgapi-target.c
+++ b/gdb/amd-dbgapi-target.c
@@ -345,15 +345,15 @@ static const registry<inferior>::key<amd_dbgapi_inferior_info>
/* Fetch the amd_dbgapi_inferior_info data for the given inferior. */
-static struct amd_dbgapi_inferior_info *
-get_amd_dbgapi_inferior_info (struct inferior *inferior)
+static amd_dbgapi_inferior_info &
+get_amd_dbgapi_inferior_info (inferior *inferior)
{
amd_dbgapi_inferior_info *info = amd_dbgapi_inferior_data.get (inferior);
if (info == nullptr)
info = amd_dbgapi_inferior_data.emplace (inferior, inferior);
- return info;
+ return *info;
}
/* The async event handler registered with the event loop, indicating that we
@@ -430,11 +430,11 @@ wave_coordinates::fetch ()
static wave_info &
get_thread_wave_info (thread_info *tp)
{
- amd_dbgapi_inferior_info *info = get_amd_dbgapi_inferior_info (tp->inf);
+ amd_dbgapi_inferior_info &info = get_amd_dbgapi_inferior_info (tp->inf);
amd_dbgapi_wave_id_t wave_id = get_amd_dbgapi_wave_id (tp->ptid);
- auto it = info->wave_info_map.find (wave_id.handle);
- gdb_assert (it != info->wave_info_map.end ());
+ auto it = info.wave_info_map.find (wave_id.handle);
+ gdb_assert (it != info.wave_info_map.end ());
return it->second;
}
@@ -495,10 +495,10 @@ require_forward_progress (ptid_t ptid, process_stratum_target *proc_target,
if (ptid != minus_one_ptid && inf->pid != ptid.pid ())
continue;
- amd_dbgapi_inferior_info *info = get_amd_dbgapi_inferior_info (inf);
+ amd_dbgapi_inferior_info &info = get_amd_dbgapi_inferior_info (inf);
- if (info->process_id != AMD_DBGAPI_PROCESS_NONE)
- require_forward_progress (*info, require);
+ if (info.process_id != AMD_DBGAPI_PROCESS_NONE)
+ require_forward_progress (info, require);
/* If ptid targets a single inferior and we have found it, no need to
continue. */
@@ -512,7 +512,7 @@ require_forward_progress (ptid_t ptid, process_stratum_target *proc_target,
amd_dbgapi_process_id_t
get_amd_dbgapi_process_id (inferior *inf)
{
- return get_amd_dbgapi_inferior_info (inf)->process_id;
+ return get_amd_dbgapi_inferior_info (inf).process_id;
}
/* A breakpoint dbgapi wants us to insert, to handle shared library
@@ -547,7 +547,7 @@ void
amd_dbgapi_target_breakpoint::check_status (struct bpstat *bs)
{
struct inferior *inf = current_inferior ();
- amd_dbgapi_inferior_info *info = get_amd_dbgapi_inferior_info (inf);
+ amd_dbgapi_inferior_info &info = get_amd_dbgapi_inferior_info (inf);
amd_dbgapi_status_t status;
bs->stop = 0;
@@ -555,13 +555,13 @@ amd_dbgapi_target_breakpoint::check_status (struct bpstat *bs)
/* Find the address the breakpoint is set at. */
auto match_breakpoint
- = [bs] (const decltype (info->breakpoint_map)::value_type &value)
+ = [bs] (const decltype (info.breakpoint_map)::value_type &value)
{ return value.second == bs->breakpoint_at; };
auto it
- = std::find_if (info->breakpoint_map.begin (), info->breakpoint_map.end (),
+ = std::find_if (info.breakpoint_map.begin (), info.breakpoint_map.end (),
match_breakpoint);
- if (it == info->breakpoint_map.end ())
+ if (it == info.breakpoint_map.end ())
error (_("Could not find breakpoint_id for breakpoint at %s"),
paddress (inf->arch (), bs->bp_location_at->address));
@@ -582,12 +582,12 @@ amd_dbgapi_target_breakpoint::check_status (struct bpstat *bs)
if (action == AMD_DBGAPI_BREAKPOINT_ACTION_RESUME)
return;
- require_forward_progress (*info, false);
+ require_forward_progress (info, false);
/* If the action is AMD_DBGAPI_BREAKPOINT_ACTION_HALT, we need to wait until
a breakpoint resume event for this breakpoint_id is seen. */
amd_dbgapi_event_id_t resume_event_id
- = process_event_queue (*info, AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME);
+ = process_event_queue (info, AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME);
/* We should always get a breakpoint_resume event after processing all
events generated by reporting the breakpoint hit. */
@@ -647,12 +647,12 @@ amd_dbgapi_target::pid_to_str (ptid_t ptid)
process_stratum_target *proc_target = current_inferior ()->process_target ();
inferior *inf = find_inferior_pid (proc_target, ptid.pid ());
gdb_assert (inf != nullptr);
- amd_dbgapi_inferior_info *info = get_amd_dbgapi_inferior_info (inf);
+ const amd_dbgapi_inferior_info &info = get_amd_dbgapi_inferior_info (inf);
auto wave_id = get_amd_dbgapi_wave_id (ptid);
- auto it = info->wave_info_map.find (wave_id.handle);
- if (it != info->wave_info_map.end ())
+ auto it = info.wave_info_map.find (wave_id.handle);
+ if (it != info.wave_info_map.end ())
return it->second.coords.to_string ();
/* A wave we don't know about. Shouldn't usually happen, but
@@ -908,7 +908,7 @@ amd_dbgapi_target::stop (ptid_t ptid)
if (m_report_thread_events)
{
- get_amd_dbgapi_inferior_info (thread->inf)->wave_events.emplace_back
+ get_amd_dbgapi_inferior_info (thread->inf).wave_events.emplace_back
(thread->ptid, target_waitstatus ().set_thread_exited (0));
if (target_is_async_p ())
@@ -976,18 +976,19 @@ private:
static void
dbgapi_notifier_handler (int err, gdb_client_data client_data)
{
- amd_dbgapi_inferior_info *info = (amd_dbgapi_inferior_info *) client_data;
+ amd_dbgapi_inferior_info &info
+ = *static_cast<amd_dbgapi_inferior_info *> (client_data);
int ret;
/* Drain the notifier pipe. */
do
{
char buf;
- ret = read (info->notifier, &buf, 1);
+ ret = read (info.notifier, &buf, 1);
}
while (ret >= 0 || (ret == -1 && errno == EINTR));
- if (info->inf->target_is_pushed (&the_amd_dbgapi_target))
+ if (info.inf->target_is_pushed (&the_amd_dbgapi_target))
{
/* The amd-dbgapi target is pushed: signal our async handler, the event
will be consumed through our wait method. */
@@ -1004,7 +1005,7 @@ dbgapi_notifier_handler (int err, gdb_client_data client_data)
amd_dbgapi_event_id_t event_id;
amd_dbgapi_event_kind_t event_kind;
amd_dbgapi_status_t status
- = amd_dbgapi_process_next_pending_event (info->process_id, &event_id,
+ = amd_dbgapi_process_next_pending_event (info.process_id, &event_id,
&event_kind);
if (status != AMD_DBGAPI_STATUS_SUCCESS)
error (_("next_pending_event failed (%s)"), get_status_string (status));
@@ -1028,17 +1029,17 @@ dbgapi_notifier_handler (int err, gdb_client_data client_data)
switch (runtime_state)
{
case AMD_DBGAPI_RUNTIME_STATE_LOADED_SUCCESS:
- gdb_assert (info->runtime_state == AMD_DBGAPI_RUNTIME_STATE_UNLOADED);
- info->runtime_state = runtime_state;
+ gdb_assert (info.runtime_state == AMD_DBGAPI_RUNTIME_STATE_UNLOADED);
+ info.runtime_state = runtime_state;
amd_dbgapi_debug_printf ("pushing amd-dbgapi target");
- info->inf->push_target (&the_amd_dbgapi_target);
+ info.inf->push_target (&the_amd_dbgapi_target);
/* The underlying target will already be async if we are running, but not if
we are attaching. */
- if (info->inf->process_target ()->is_async_p ())
+ if (info.inf->process_target ()->is_async_p ())
{
scoped_restore_current_thread restore_thread;
- switch_to_inferior_no_thread (info->inf);
+ switch_to_inferior_no_thread (info.inf);
/* Make sure our async event handler is created. */
target_async (true);
@@ -1046,14 +1047,14 @@ dbgapi_notifier_handler (int err, gdb_client_data client_data)
break;
case AMD_DBGAPI_RUNTIME_STATE_UNLOADED:
- gdb_assert (info->runtime_state
+ gdb_assert (info.runtime_state
== AMD_DBGAPI_RUNTIME_STATE_LOADED_ERROR_RESTRICTION);
- info->runtime_state = runtime_state;
+ info.runtime_state = runtime_state;
break;
case AMD_DBGAPI_RUNTIME_STATE_LOADED_ERROR_RESTRICTION:
- gdb_assert (info->runtime_state == AMD_DBGAPI_RUNTIME_STATE_UNLOADED);
- info->runtime_state = runtime_state;
+ gdb_assert (info.runtime_state == AMD_DBGAPI_RUNTIME_STATE_UNLOADED);
+ info.runtime_state = runtime_state;
warning (_("amd-dbgapi: unable to enable GPU debugging "
"due to a restriction error"));
break;
@@ -1082,10 +1083,10 @@ amd_dbgapi_target::async (bool enable)
for (inferior *inf : all_non_exited_inferiors (proc_target))
{
- amd_dbgapi_inferior_info *info = get_amd_dbgapi_inferior_info (inf);
+ amd_dbgapi_inferior_info &info = get_amd_dbgapi_inferior_info (inf);
- if (info->notifier != -1)
- add_file_handler (info->notifier, dbgapi_notifier_handler, info,
+ if (info.notifier != -1)
+ add_file_handler (info.notifier, dbgapi_notifier_handler, &info,
string_printf ("amd-dbgapi notifier for pid %d",
inf->pid));
}
@@ -1105,10 +1106,11 @@ amd_dbgapi_target::async (bool enable)
for (inferior *inf : all_inferiors ())
{
- amd_dbgapi_inferior_info *info = get_amd_dbgapi_inferior_info (inf);
+ const amd_dbgapi_inferior_info &info
+ = get_amd_dbgapi_inferior_info (inf);
- if (info->notifier != -1)
- delete_file_handler (info->notifier);
+ if (info.notifier != -1)
+ delete_file_handler (info.notifier);
}
delete_async_event_handler (&amd_dbgapi_async_event_handler);
@@ -1132,11 +1134,11 @@ amd_dbgapi_thread_deleted (thread_info *tp)
if (tp->inf->target_at (arch_stratum) == &the_amd_dbgapi_target
&& ptid_is_gpu (tp->ptid))
{
- amd_dbgapi_inferior_info *info = amd_dbgapi_inferior_data.get (tp->inf);
+ amd_dbgapi_inferior_info &info = get_amd_dbgapi_inferior_info (tp->inf);
auto wave_id = get_amd_dbgapi_wave_id (tp->ptid);
- auto it = info->wave_info_map.find (wave_id.handle);
- gdb_assert (it != info->wave_info_map.end ());
- info->wave_info_map.erase (it);
+ auto it = info.wave_info_map.find (wave_id.handle);
+ gdb_assert (it != info.wave_info_map.end ());
+ info.wave_info_map.erase (it);
}
}
@@ -1147,11 +1149,11 @@ static thread_info *
add_gpu_thread (inferior *inf, ptid_t wave_ptid)
{
process_stratum_target *proc_target = inf->process_target ();
- amd_dbgapi_inferior_info *info = get_amd_dbgapi_inferior_info (inf);
+ amd_dbgapi_inferior_info &info = get_amd_dbgapi_inferior_info (inf);
auto wave_id = get_amd_dbgapi_wave_id (wave_ptid);
- if (!info->wave_info_map.try_emplace (wave_id.handle,
+ if (!info.wave_info_map.try_emplace (wave_id.handle,
wave_info (wave_id)).second)
internal_error ("wave ID %ld already in map", wave_id.handle);
@@ -1399,13 +1401,13 @@ static std::pair<ptid_t, target_waitstatus>
consume_one_event (int pid)
{
auto *target = current_inferior ()->process_target ();
- struct amd_dbgapi_inferior_info *info = nullptr;
+ amd_dbgapi_inferior_info *info = nullptr;
if (pid == -1)
{
for (inferior *inf : all_inferiors (target))
{
- info = get_amd_dbgapi_inferior_info (inf);
+ info = &get_amd_dbgapi_inferior_info (inf);
if (!info->wave_events.empty ())
break;
}
@@ -1417,7 +1419,7 @@ consume_one_event (int pid)
inferior *inf = find_inferior_pid (target, pid);
gdb_assert (inf != nullptr);
- info = get_amd_dbgapi_inferior_info (inf);
+ info = &get_amd_dbgapi_inferior_info (inf);
}
if (info->wave_events.empty ())
@@ -1481,8 +1483,9 @@ amd_dbgapi_target::wait (ptid_t ptid, struct target_waitstatus *ws,
{
/* Drain the events for the current inferior from the amd_dbgapi and
preserve the ordering. */
- auto info = get_amd_dbgapi_inferior_info (current_inferior ());
- process_event_queue (*info);
+ amd_dbgapi_inferior_info &info
+ = get_amd_dbgapi_inferior_info (current_inferior ());
+ process_event_queue (info);
std::tie (event_ptid, gpu_waitstatus) = consume_one_event (ptid.pid ());
if (event_ptid == minus_one_ptid)
@@ -1504,7 +1507,7 @@ amd_dbgapi_target::wait (ptid_t ptid, struct target_waitstatus *ws,
for (inferior *inf : all_inferiors ())
if (inf->target_at (arch_stratum) == &the_amd_dbgapi_target
- && get_amd_dbgapi_inferior_info (inf)->runtime_state
+ && get_amd_dbgapi_inferior_info (inf).runtime_state
== AMD_DBGAPI_RUNTIME_STATE_LOADED_SUCCESS)
{
ws->set_ignore ();
@@ -1605,20 +1608,20 @@ attach_amd_dbgapi (inferior *inf)
if (inf->vfork_parent != nullptr)
return;
- auto *info = get_amd_dbgapi_inferior_info (inf);
+ amd_dbgapi_inferior_info &info = get_amd_dbgapi_inferior_info (inf);
/* Are we already attached? */
- if (info->process_id != AMD_DBGAPI_PROCESS_NONE)
+ if (info.process_id != AMD_DBGAPI_PROCESS_NONE)
{
amd_dbgapi_debug_printf
- ("already attached: process_id = %" PRIu64, info->process_id.handle);
+ ("already attached: process_id = %" PRIu64, info.process_id.handle);
return;
}
amd_dbgapi_status_t status
= amd_dbgapi_process_attach
(reinterpret_cast<amd_dbgapi_client_process_id_t> (inf),
- &info->process_id);
+ &info.process_id);
if (status == AMD_DBGAPI_STATUS_ERROR_RESTRICTION)
{
warning (_("amd-dbgapi: unable to enable GPU debugging due to a "
@@ -1633,29 +1636,29 @@ attach_amd_dbgapi (inferior *inf)
return;
}
- if (amd_dbgapi_process_get_info (info->process_id,
+ if (amd_dbgapi_process_get_info (info.process_id,
AMD_DBGAPI_PROCESS_INFO_NOTIFIER,
- sizeof (info->notifier), &info->notifier)
+ sizeof (info.notifier), &info.notifier)
!= AMD_DBGAPI_STATUS_SUCCESS)
{
- amd_dbgapi_process_detach (info->process_id);
- info->process_id = AMD_DBGAPI_PROCESS_NONE;
+ amd_dbgapi_process_detach (info.process_id);
+ info.process_id = AMD_DBGAPI_PROCESS_NONE;
warning (_("amd-dbgapi: could not retrieve process %d's notifier, GPU "
"debugging will not be available."), inf->pid);
return;
}
amd_dbgapi_debug_printf ("process_id = %" PRIu64 ", notifier fd = %d",
- info->process_id.handle, info->notifier);
+ info.process_id.handle, info.notifier);
- set_process_memory_precision (*info);
+ set_process_memory_precision (info);
/* If GDB is attaching to a process that has the runtime loaded, there will
already be a "runtime loaded" event available. Consume it and push the
target. */
- dbgapi_notifier_handler (0, info);
+ dbgapi_notifier_handler (0, &info);
- add_file_handler (info->notifier, dbgapi_notifier_handler, info,
+ add_file_handler (info.notifier, dbgapi_notifier_handler, &info,
"amd-dbgapi notifier");
}
@@ -1672,30 +1675,30 @@ detach_amd_dbgapi (inferior *inf)
{
AMD_DBGAPI_SCOPED_DEBUG_START_END ("inf num = %d", inf->num);
- auto *info = get_amd_dbgapi_inferior_info (inf);
+ amd_dbgapi_inferior_info &info = get_amd_dbgapi_inferior_info (inf);
- if (info->process_id == AMD_DBGAPI_PROCESS_NONE)
+ if (info.process_id == AMD_DBGAPI_PROCESS_NONE)
return;
- info->runtime_state = AMD_DBGAPI_RUNTIME_STATE_UNLOADED;
+ info.runtime_state = AMD_DBGAPI_RUNTIME_STATE_UNLOADED;
- amd_dbgapi_status_t status = amd_dbgapi_process_detach (info->process_id);
+ amd_dbgapi_status_t status = amd_dbgapi_process_detach (info.process_id);
if (status != AMD_DBGAPI_STATUS_SUCCESS)
warning (_("amd-dbgapi: could not detach from process %d (%s)"),
inf->pid, get_status_string (status));
- gdb_assert (info->notifier != -1);
- delete_file_handler (info->notifier);
+ gdb_assert (info.notifier != -1);
+ delete_file_handler (info.notifier);
/* This is a noop if the target is not pushed. */
inf->unpush_target (&the_amd_dbgapi_target);
/* Delete the breakpoints that are still active. */
- for (auto &&value : info->breakpoint_map)
+ for (auto &&value : info.breakpoint_map)
delete_breakpoint (value.second);
/* Reset the amd_dbgapi_inferior_info, except for precise_memory_mode. */
- *info = amd_dbgapi_inferior_info (inf, info->precise_memory.requested);
+ info = amd_dbgapi_inferior_info (inf, info.precise_memory.requested);
maybe_reset_amd_dbgapi ();
}
@@ -1971,10 +1974,10 @@ amd_dbgapi_target::displaced_step_prepare (thread_info *thread,
}
/* Save the displaced stepping id in the per-inferior info. */
- amd_dbgapi_inferior_info *info = get_amd_dbgapi_inferior_info (thread->inf);
+ amd_dbgapi_inferior_info &info = get_amd_dbgapi_inferior_info (thread->inf);
bool inserted
- = info->stepping_id_map.emplace (thread, stepping_id.handle).second;
+ = info.stepping_id_map.emplace (thread, stepping_id.handle).second;
gdb_assert (inserted);
/* Get the new (displaced) PC. */
@@ -2006,8 +2009,8 @@ amd_dbgapi_target::displaced_step_finish (thread_info *thread,
gdb_assert (thread->displaced_step_state.in_progress ());
/* Find the displaced stepping id for this thread. */
- amd_dbgapi_inferior_info *info = get_amd_dbgapi_inferior_info (thread->inf);
- auto entry = info->stepping_id_map.extract (thread);
+ amd_dbgapi_inferior_info &info = get_amd_dbgapi_inferior_info (thread->inf);
+ auto entry = info.stepping_id_map.extract (thread);
gdb_assert (entry.has_value ());
amd_dbgapi_displaced_stepping_id_t stepping_id {entry->second};
@@ -2064,14 +2067,16 @@ static void
amd_dbgapi_target_inferior_cloned (inferior *original_inferior,
inferior *new_inferior)
{
- auto *orig_info = get_amd_dbgapi_inferior_info (original_inferior);
- auto *new_info = get_amd_dbgapi_inferior_info (new_inferior);
+ const amd_dbgapi_inferior_info &orig_info
+ = get_amd_dbgapi_inferior_info (original_inferior);
+ amd_dbgapi_inferior_info &new_info
+ = get_amd_dbgapi_inferior_info (new_inferior);
/* At this point, the process is not started. Therefore it is sufficient to
copy the precise memory request, it will be applied when the process
starts. */
- gdb_assert (new_info->process_id == AMD_DBGAPI_PROCESS_NONE);
- new_info->precise_memory.requested = orig_info->precise_memory.requested;
+ gdb_assert (new_info.process_id == AMD_DBGAPI_PROCESS_NONE);
+ new_info.precise_memory.requested = orig_info.precise_memory.requested;
}
/* inferior_execd observer. */
@@ -2087,8 +2092,8 @@ amd_dbgapi_inferior_execd (inferior *exec_inf, inferior *follow_inf)
/* If using "follow-exec-mode new", carry over the precise-memory setting
to the new inferior (otherwise, FOLLOW_INF and ORIG_INF point to the same
inferior, so this is a no-op). */
- get_amd_dbgapi_inferior_info (follow_inf)->precise_memory.requested
- = get_amd_dbgapi_inferior_info (exec_inf)->precise_memory.requested;
+ get_amd_dbgapi_inferior_info (follow_inf).precise_memory.requested
+ = get_amd_dbgapi_inferior_info (exec_inf).precise_memory.requested;
attach_amd_dbgapi (follow_inf);
}
@@ -2102,12 +2107,12 @@ amd_dbgapi_inferior_forked (inferior *parent_inf, inferior *child_inf,
if (child_inf != nullptr)
{
/* Copy precise-memory requested value from parent to child. */
- amd_dbgapi_inferior_info *parent_info
+ const amd_dbgapi_inferior_info &parent_info
= get_amd_dbgapi_inferior_info (parent_inf);
- amd_dbgapi_inferior_info *child_info
+ amd_dbgapi_inferior_info &child_info
= get_amd_dbgapi_inferior_info (child_inf);
- child_info->precise_memory.requested
- = parent_info->precise_memory.requested;
+ child_info.precise_memory.requested
+ = parent_info.precise_memory.requested;
if (fork_kind != TARGET_WAITKIND_VFORKED)
{
@@ -2181,10 +2186,10 @@ amd_dbgapi_insert_breakpoint_callback
amd_dbgapi_breakpoint_id_t breakpoint_id)
{
inferior *inf = reinterpret_cast<inferior *> (client_process_id);
- struct amd_dbgapi_inferior_info *info = get_amd_dbgapi_inferior_info (inf);
+ amd_dbgapi_inferior_info &info = get_amd_dbgapi_inferior_info (inf);
- auto it = info->breakpoint_map.find (breakpoint_id.handle);
- if (it != info->breakpoint_map.end ())
+ auto it = info.breakpoint_map.find (breakpoint_id.handle);
+ if (it != info.breakpoint_map.end ())
return AMD_DBGAPI_STATUS_ERROR_INVALID_BREAKPOINT_ID;
/* We need to find the address in the given inferior's program space. */
@@ -2201,7 +2206,7 @@ amd_dbgapi_insert_breakpoint_callback
breakpoint *bp = install_breakpoint (true, std::move (bp_up), 1);
- info->breakpoint_map.emplace (breakpoint_id.handle, bp);
+ info.breakpoint_map.emplace (breakpoint_id.handle, bp);
return AMD_DBGAPI_STATUS_SUCCESS;
}
@@ -2213,14 +2218,14 @@ amd_dbgapi_remove_breakpoint_callback
amd_dbgapi_breakpoint_id_t breakpoint_id)
{
inferior *inf = reinterpret_cast<inferior *> (client_process_id);
- struct amd_dbgapi_inferior_info *info = get_amd_dbgapi_inferior_info (inf);
+ amd_dbgapi_inferior_info &info = get_amd_dbgapi_inferior_info (inf);
- auto it = info->breakpoint_map.find (breakpoint_id.handle);
- if (it == info->breakpoint_map.end ())
+ auto it = info.breakpoint_map.find (breakpoint_id.handle);
+ if (it == info.breakpoint_map.end ())
return AMD_DBGAPI_STATUS_ERROR_INVALID_BREAKPOINT_ID;
delete_breakpoint (it->second);
- info->breakpoint_map.erase (it);
+ info.breakpoint_map.erase (it);
return AMD_DBGAPI_STATUS_SUCCESS;
}
@@ -2274,10 +2279,10 @@ amd_dbgapi_xfer_global_memory_callback
static void
amd_dbgapi_target_signal_received (gdb_signal sig)
{
- amd_dbgapi_inferior_info *info
+ const amd_dbgapi_inferior_info &info
= get_amd_dbgapi_inferior_info (current_inferior ());
- if (info->process_id == AMD_DBGAPI_PROCESS_NONE)
+ if (info.process_id == AMD_DBGAPI_PROCESS_NONE)
return;
if (!ptid_is_gpu (inferior_thread ()->ptid))
@@ -2286,7 +2291,7 @@ amd_dbgapi_target_signal_received (gdb_signal sig)
if (sig != GDB_SIGNAL_SEGV && sig != GDB_SIGNAL_BUS)
return;
- if (!info->precise_memory.enabled)
+ if (!info.precise_memory.enabled)
gdb_printf (_("\
Warning: precise memory violation signal reporting is not enabled, reported\n\
location may not be accurate. See \"show amdgpu precise-memory\".\n"));
@@ -2367,14 +2372,14 @@ static void
show_precise_memory_mode (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
{
- amd_dbgapi_inferior_info *info
+ const amd_dbgapi_inferior_info &info
= get_amd_dbgapi_inferior_info (current_inferior ());
gdb_printf (file,
_("AMDGPU precise memory access reporting is %s "
"(currently %s).\n"),
- info->precise_memory.requested ? "on" : "off",
- info->precise_memory.enabled ? "enabled" : "disabled");
+ info.precise_memory.requested ? "on" : "off",
+ info.precise_memory.enabled ? "enabled" : "disabled");
}
/* Callback for "set amdgpu precise-memory". */
@@ -2382,13 +2387,13 @@ show_precise_memory_mode (struct ui_file *file, int from_tty,
static void
set_precise_memory_mode (bool value)
{
- amd_dbgapi_inferior_info *info
+ amd_dbgapi_inferior_info &info
= get_amd_dbgapi_inferior_info (current_inferior ());
- info->precise_memory.requested = value;
+ info.precise_memory.requested = value;
- if (info->process_id != AMD_DBGAPI_PROCESS_NONE)
- set_process_memory_precision (*info);
+ if (info.process_id != AMD_DBGAPI_PROCESS_NONE)
+ set_process_memory_precision (info);
}
/* Return whether precise-memory is requested for the current inferior. */
@@ -2396,10 +2401,10 @@ set_precise_memory_mode (bool value)
static bool
get_precise_memory_mode ()
{
- amd_dbgapi_inferior_info *info
+ const amd_dbgapi_inferior_info &info
= get_amd_dbgapi_inferior_info (current_inferior ());
- return info->precise_memory.requested;
+ return info.precise_memory.requested;
}
/* List of set/show amdgpu commands. */
@@ -2472,9 +2477,9 @@ maybe_reset_amd_dbgapi ()
{
for (inferior *inf : all_non_exited_inferiors ())
{
- amd_dbgapi_inferior_info *info = get_amd_dbgapi_inferior_info (inf);
+ const amd_dbgapi_inferior_info &info = get_amd_dbgapi_inferior_info (inf);
- if (info->process_id != AMD_DBGAPI_PROCESS_NONE)
+ if (info.process_id != AMD_DBGAPI_PROCESS_NONE)
return;
}
diff --git a/gdb/amd64-linux-nat.c b/gdb/amd64-linux-nat.c
index dbb9b32..4b23fd9 100644
--- a/gdb/amd64-linux-nat.c
+++ b/gdb/amd64-linux-nat.c
@@ -32,6 +32,7 @@
#include "amd64-tdep.h"
#include "amd64-linux-tdep.h"
#include "i386-linux-tdep.h"
+#include "x86-tdep.h"
#include "gdbsupport/x86-xstate.h"
#include "x86-linux-nat.h"
@@ -86,6 +87,8 @@ static int amd64_linux_gregset32_reg_offset[] =
-1, -1, -1, -1, -1, -1, -1, -1, /* k0 ... k7 (AVX512) */
-1, -1, -1, -1, -1, -1, -1, -1, /* zmm0 ... zmm7 (AVX512) */
-1, /* PKEYS register PKRU */
+ -1, /* SSP register. */
+ -1, -1, /* fs/gs base registers. */
ORIG_RAX * 8 /* "orig_eax" */
};
@@ -237,6 +240,14 @@ amd64_linux_nat_target::fetch_registers (struct regcache *regcache, int regnum)
if (have_ptrace_getregset == TRIBOOL_TRUE)
{
+ if ((regnum == -1 && tdep->ssp_regnum != -1)
+ || (regnum != -1 && regnum == tdep->ssp_regnum))
+ {
+ x86_linux_fetch_ssp (regcache, tid);
+ if (regnum != -1)
+ return;
+ }
+
/* Pre-4.14 kernels have a bug (fixed by commit 0852b374173b
"x86/fpu: Add FPU state copying quirk to handle XRSTOR failure on
Intel Skylake CPUs") that sometimes causes the mxcsr location in
@@ -302,6 +313,14 @@ amd64_linux_nat_target::store_registers (struct regcache *regcache, int regnum)
if (have_ptrace_getregset == TRIBOOL_TRUE)
{
gdb::byte_vector xstateregs (tdep->xsave_layout.sizeof_xsave);
+ if ((regnum == -1 && tdep->ssp_regnum != -1)
+ || (regnum != -1 && regnum == tdep->ssp_regnum))
+ {
+ x86_linux_store_ssp (regcache, tid);
+ if (regnum != -1)
+ return;
+ }
+
struct iovec iov;
iov.iov_base = xstateregs.data ();
diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c
index ce62a42..a21f8a9 100644
--- a/gdb/amd64-linux-tdep.c
+++ b/gdb/amd64-linux-tdep.c
@@ -47,6 +47,9 @@
#include "expop.h"
#include "arch/amd64-linux-tdesc.h"
#include "inferior.h"
+#include "x86-tdep.h"
+#include "dwarf2/frame.h"
+#include "frame-unwind.h"
/* The syscall's XML filename for i386. */
#define XML_SYSCALL_FILENAME_AMD64 "syscalls/amd64-linux.xml"
@@ -108,6 +111,7 @@ int amd64_linux_gregset_reg_offset[] =
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, /* PKEYS register pkru */
+ -1, /* CET user mode register PL3_SSP. */
/* End of hardware registers */
21 * 8, 22 * 8, /* fs_base and gs_base. */
@@ -1592,6 +1596,15 @@ amd64_linux_record_signal (struct gdbarch *gdbarch,
return 0;
}
+/* Return true if the core file ABFD contains shadow stack pointer state.
+ Otherwise, return false. */
+
+static bool
+amd64_linux_core_read_ssp_state_p (bfd *abfd)
+{
+ return bfd_get_section_by_name (abfd, ".reg-ssp") != nullptr;
+}
+
/* Get Linux/x86 target description from core dump. */
static const struct target_desc *
@@ -1601,11 +1614,14 @@ amd64_linux_core_read_description (struct gdbarch *gdbarch,
{
/* Linux/x86-64. */
x86_xsave_layout layout;
- uint64_t xcr0 = i386_linux_core_read_xsave_info (abfd, layout);
- if (xcr0 == 0)
- xcr0 = X86_XSTATE_SSE_MASK;
+ uint64_t xstate_bv = i386_linux_core_read_xsave_info (abfd, layout);
+ if (xstate_bv == 0)
+ xstate_bv = X86_XSTATE_SSE_MASK;
- return amd64_linux_read_description (xcr0 & X86_XSTATE_ALL_MASK,
+ if (amd64_linux_core_read_ssp_state_p (abfd))
+ xstate_bv |= X86_XSTATE_CET_U;
+
+ return amd64_linux_read_description (xstate_bv & X86_XSTATE_ALL_MASK,
gdbarch_ptr_bit (gdbarch) == 32);
}
@@ -1636,6 +1652,37 @@ static const struct regset amd64_linux_xstateregset =
amd64_linux_collect_xstateregset
};
+/* Supply shadow stack pointer register from SSP to the register cache
+ REGCACHE. */
+
+static void
+amd64_linux_supply_ssp (const regset *regset,
+ regcache *regcache, int regnum,
+ const void *ssp, size_t len)
+{
+ gdb_assert (len == sizeof (uint64_t));
+ x86_supply_ssp (regcache, *static_cast<const uint64_t *> (ssp));
+}
+
+/* Collect the shadow stack pointer register from the register cache
+ REGCACHE and store it in SSP. */
+
+static void
+amd64_linux_collect_ssp (const regset *regset,
+ const regcache *regcache, int regnum,
+ void *ssp, size_t len)
+{
+ gdb_assert (len == sizeof (uint64_t));
+ x86_collect_ssp (regcache, *static_cast<uint64_t *> (ssp));
+}
+
+/* Shadow stack pointer register. */
+
+static const struct regset amd64_linux_ssp_register
+ {
+ NULL, amd64_linux_supply_ssp, amd64_linux_collect_ssp
+ };
+
/* Iterate over core file register note sections. */
static void
@@ -1652,6 +1699,14 @@ amd64_linux_iterate_over_regset_sections (struct gdbarch *gdbarch,
cb (".reg-xstate", tdep->xsave_layout.sizeof_xsave,
tdep->xsave_layout.sizeof_xsave, &amd64_linux_xstateregset,
"XSAVE extended state", cb_data);
+
+ /* SSP can be unavailable. Thus, we need to check the register status
+ in case we write a core file (regcache != nullptr). */
+ if (tdep->ssp_regnum != -1
+ && (regcache == nullptr
+ || REG_VALID == regcache->get_register_status (tdep->ssp_regnum)))
+ cb (".reg-ssp", 8, 8, &amd64_linux_ssp_register,
+ "shadow stack pointer", cb_data);
}
/* The instruction sequences used in x86_64 machines for a
@@ -1868,6 +1923,162 @@ amd64_linux_get_tls_dtv_addr (struct gdbarch *gdbarch, ptid_t ptid,
return dtv_addr;
}
+/* Return the number of bytes required to update the shadow stack pointer
+ by one element. For x32 the shadow stack elements are still 64-bit
+ aligned. Thus, gdbarch_addr_bit cannot be used to compute the new
+ stack pointer. */
+
+static inline int
+amd64_linux_shadow_stack_element_size_aligned (gdbarch *gdbarch)
+{
+ const bfd_arch_info *binfo = gdbarch_bfd_arch_info (gdbarch);
+ return (binfo->bits_per_word / binfo->bits_per_byte);
+}
+
+/* Read the shadow stack pointer register and return its value, if
+ possible. */
+
+static std::optional<CORE_ADDR>
+amd64_linux_get_shadow_stack_pointer (gdbarch *gdbarch, regcache *regcache,
+ bool &shadow_stack_enabled)
+{
+ shadow_stack_enabled = false;
+ const i386_gdbarch_tdep *tdep = gdbarch_tdep<i386_gdbarch_tdep> (gdbarch);
+
+ if (tdep->ssp_regnum < 0)
+ return {};
+
+ CORE_ADDR ssp;
+ if (regcache_raw_read_unsigned (regcache, tdep->ssp_regnum, &ssp)
+ != REG_VALID)
+ return {};
+
+ /* Dependent on the target in case the shadow stack pointer is
+ unavailable, the ssp register can be invalid or 0x0 when shadow stack
+ is supported by HW and the linux kernel but not enabled for the
+ current thread. */
+ if (ssp == 0x0)
+ return {};
+
+ /* In case there is a shadow stack pointer available which is non-null,
+ the shadow stack feature is enabled. */
+ shadow_stack_enabled = true;
+ return ssp;
+}
+
+/* If shadow stack is enabled, push the address NEW_ADDR to the shadow
+ stack and increment the shadow stack pointer accordingly. */
+
+static void
+amd64_linux_shadow_stack_push (gdbarch *gdbarch, CORE_ADDR new_addr,
+ regcache *regcache)
+{
+ bool shadow_stack_enabled;
+ std::optional<CORE_ADDR> ssp
+ = amd64_linux_get_shadow_stack_pointer (gdbarch, regcache,
+ shadow_stack_enabled);
+
+ /* For amd64/Linux, if SSP has a value that means shadow stack is
+ enabled. */
+ if (!ssp.has_value ())
+ return;
+ else
+ gdb_assert (shadow_stack_enabled);
+
+ /* The shadow stack grows downwards. To push addresses to the stack,
+ we need to decrement SSP. */
+ const int element_size
+ = amd64_linux_shadow_stack_element_size_aligned (gdbarch);
+ const CORE_ADDR new_ssp = *ssp - element_size;
+
+ /* Using /proc/PID/smaps we can only check if NEW_SSP points to shadow
+ stack memory. If it doesn't, we assume the stack is full. */
+ std::pair<CORE_ADDR, CORE_ADDR> memrange;
+ if (!linux_address_in_shadow_stack_mem_range (new_ssp, &memrange))
+ error (_("No space left on the shadow stack."));
+
+ /* On x86 there can be a shadow stack token at bit 63. For x32, the
+ address size is only 32 bit. Always write back the full 8 bytes to
+ include the shadow stack token. */
+ const bfd_endian byte_order = gdbarch_byte_order (gdbarch);
+ write_memory_unsigned_integer (new_ssp, element_size, byte_order,
+ (ULONGEST) new_addr);
+
+ i386_gdbarch_tdep *tdep = gdbarch_tdep<i386_gdbarch_tdep> (gdbarch);
+ gdb_assert (tdep->ssp_regnum > -1);
+
+ regcache_raw_write_unsigned (regcache, tdep->ssp_regnum, new_ssp);
+}
+
+/* Implement shadow stack pointer unwinding. For each new shadow stack
+ pointer check if its address is still in the shadow stack memory range.
+ If it's outside the range set the returned value to unavailable,
+ otherwise return a value containing the new shadow stack pointer. */
+
+static value *
+amd64_linux_dwarf2_prev_ssp (const frame_info_ptr &this_frame,
+ void **this_cache, int regnum)
+{
+ value *v = frame_unwind_got_register (this_frame, regnum, regnum);
+ gdb_assert (v != nullptr);
+
+ gdbarch *gdbarch = get_frame_arch (this_frame);
+
+ if (v->entirely_available () && !v->optimized_out ())
+ {
+ int size = register_size (gdbarch, regnum);
+ bfd_endian byte_order = gdbarch_byte_order (gdbarch);
+ CORE_ADDR ssp = extract_unsigned_integer (v->contents_all ().data (),
+ size, byte_order);
+
+ /* Using /proc/PID/smaps we can only check if the current shadow
+ stack pointer SSP points to shadow stack memory. Only if this is
+ the case a valid previous shadow stack pointer can be
+ calculated. */
+ std::pair<CORE_ADDR, CORE_ADDR> range;
+ if (linux_address_in_shadow_stack_mem_range (ssp, &range))
+ {
+ /* The shadow stack grows downwards. To compute the previous
+ shadow stack pointer, we need to increment SSP. */
+ CORE_ADDR new_ssp
+ = ssp + amd64_linux_shadow_stack_element_size_aligned (gdbarch);
+
+ /* There can be scenarios where we have a shadow stack pointer
+ but the shadow stack is empty, as no call instruction has
+ been executed yet. If NEW_SSP points to the end of or before
+ (<=) the current shadow stack memory range we consider
+ NEW_SSP as valid (but empty). */
+ if (new_ssp <= range.second)
+ return frame_unwind_got_address (this_frame, regnum, new_ssp);
+ }
+ }
+
+ /* Return a value which is marked as unavailable in case we could not
+ calculate a valid previous shadow stack pointer. */
+ value *retval
+ = value::allocate_register (get_next_frame_sentinel_okay (this_frame),
+ regnum, register_type (gdbarch, regnum));
+ retval->mark_bytes_unavailable (0, retval->type ()->length ());
+ return retval;
+}
+
+/* Implement the "init_reg" dwarf2_frame_ops method. */
+
+static void
+amd64_init_reg (gdbarch *gdbarch, int regnum, dwarf2_frame_state_reg *reg,
+ const frame_info_ptr &this_frame)
+{
+ if (regnum == gdbarch_pc_regnum (gdbarch))
+ reg->how = DWARF2_FRAME_REG_RA;
+ else if (regnum == gdbarch_sp_regnum (gdbarch))
+ reg->how = DWARF2_FRAME_REG_CFA;
+ else if (regnum == AMD64_PL3_SSP_REGNUM)
+ {
+ reg->how = DWARF2_FRAME_REG_FN;
+ reg->loc.fn = amd64_linux_dwarf2_prev_ssp;
+ }
+}
+
static void
amd64_linux_init_abi_common (struct gdbarch_info info, struct gdbarch *gdbarch,
int num_disp_step_buffers)
@@ -1925,6 +2136,11 @@ amd64_linux_init_abi_common (struct gdbarch_info info, struct gdbarch *gdbarch,
set_gdbarch_remove_non_address_bits_watchpoint
(gdbarch, amd64_linux_remove_non_address_bits_watchpoint);
+
+ set_gdbarch_shadow_stack_push (gdbarch, amd64_linux_shadow_stack_push);
+ set_gdbarch_get_shadow_stack_pointer (gdbarch,
+ amd64_linux_get_shadow_stack_pointer);
+ dwarf2_frame_set_init_reg (gdbarch, amd64_init_reg);
}
static void
diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c
index 82dd1e0..9245889 100644..100755
--- a/gdb/amd64-tdep.c
+++ b/gdb/amd64-tdep.c
@@ -513,20 +513,19 @@ amd64_has_unaligned_fields (struct type *type)
if (type->code () == TYPE_CODE_STRUCT
|| type->code () == TYPE_CODE_UNION)
{
- for (int i = 0; i < type->num_fields (); i++)
+ for (const auto &field : type->fields ())
{
- struct type *subtype = check_typedef (type->field (i).type ());
+ struct type *subtype = check_typedef (field.type ());
/* Ignore static fields, empty fields (for example nested
empty structures), and bitfields (these are handled by
the caller). */
- if (type->field (i).is_static ()
- || (type->field (i).bitsize () == 0
- && subtype->length () == 0)
- || type->field (i).is_packed ())
+ if (field.is_static ()
+ || (field.bitsize () == 0 && subtype->length () == 0)
+ || field.is_packed ())
continue;
- int bitpos = type->field (i).loc_bitpos ();
+ int bitpos = field.loc_bitpos ();
if (bitpos % 8 != 0)
return true;
@@ -1182,6 +1181,15 @@ vex3_prefix_p (gdb_byte pfx)
return pfx == 0xc4;
}
+/* True if PFX is the start of an XOP prefix. */
+
+static bool
+xop_prefix_p (const gdb_byte *pfx)
+{
+ gdb_byte m = pfx[1] & 0x1f;
+ return pfx[0] == 0x8f && m >= 8;
+}
+
/* Return true if PFX is the start of the 4-byte EVEX prefix. */
static bool
@@ -1352,7 +1360,7 @@ amd64_get_insn_details (gdb_byte *insn, struct amd64_insn *details)
details->enc_prefix_offset = insn - start;
insn += 2;
}
- else if (vex3_prefix_p (*insn))
+ else if (vex3_prefix_p (*insn) || xop_prefix_p (insn))
{
details->enc_prefix_offset = insn - start;
insn += 3;
@@ -1384,13 +1392,12 @@ amd64_get_insn_details (gdb_byte *insn, struct amd64_insn *details)
}
else if (prefix != nullptr && vex2_prefix_p (*prefix))
{
- need_modrm = twobyte_has_modrm[*insn];
+ /* All VEX2 instructions need ModR/M, except vzeroupper/vzeroall. */
+ need_modrm = *insn != 0x77 ? 1 : 0;
details->opcode_len = 2;
}
else if (prefix != nullptr && vex3_prefix_p (*prefix))
{
- need_modrm = twobyte_has_modrm[*insn];
-
gdb_byte m = prefix[1] & 0x1f;
if (m == 0)
{
@@ -1399,12 +1406,16 @@ amd64_get_insn_details (gdb_byte *insn, struct amd64_insn *details)
}
else if (m == 1)
{
- /* Escape 0x0f. */
+ /* Escape 0x0f. All VEX3 instructions in this map need ModR/M,
+ except vzeroupper/vzeroall. */
+ need_modrm = *insn != 0x77 ? 1 : 0;
details->opcode_len = 2;
}
else if (m == 2 || m == 3)
{
- /* Escape 0x0f 0x38 or 0x0f 0x3a. */
+ /* Escape 0x0f 0x38 or 0x0f 0x3a. All VEX3 instructions in
+ this map need ModR/M. */
+ need_modrm = 1;
details->opcode_len = 3;
}
else if (m == 7)
@@ -1420,7 +1431,8 @@ amd64_get_insn_details (gdb_byte *insn, struct amd64_insn *details)
}
else if (prefix != nullptr && evex_prefix_p (*prefix))
{
- need_modrm = twobyte_has_modrm[*insn];
+ /* All EVEX instructions need ModR/M. */
+ need_modrm = 1;
gdb_byte m = prefix[1] & 0x7;
if (m == 1)
@@ -1439,6 +1451,11 @@ amd64_get_insn_details (gdb_byte *insn, struct amd64_insn *details)
return;
}
}
+ else if (prefix != nullptr && xop_prefix_p (prefix))
+ {
+ details->opcode_len = 1;
+ need_modrm = 1;
+ }
else if (*insn == TWO_BYTE_OPCODE_ESCAPE)
{
/* Two or three-byte opcode. */
@@ -1509,7 +1526,7 @@ fixup_riprel (const struct amd64_insn &details, gdb_byte *insn,
{
/* VEX.!B is set implicitly. */
}
- else if (vex3_prefix_p (pfx[0]))
+ else if (vex3_prefix_p (pfx[0]) || xop_prefix_p (pfx))
pfx[1] |= VEX3_NOT_B;
else if (evex_prefix_p (pfx[0]))
{
@@ -1917,6 +1934,22 @@ amd64_displaced_step_fixup (struct gdbarch *gdbarch,
displaced_debug_printf ("relocated return addr at %s to %s",
paddress (gdbarch, rsp),
paddress (gdbarch, retaddr));
+
+ /* If shadow stack is enabled, we need to correct the return address
+ on the shadow stack too. */
+ bool shadow_stack_enabled;
+ std::optional<CORE_ADDR> ssp
+ = gdbarch_get_shadow_stack_pointer (gdbarch, regs,
+ shadow_stack_enabled);
+ if (shadow_stack_enabled)
+ {
+ gdb_assert (ssp.has_value ());
+ write_memory_unsigned_integer (*ssp, retaddr_len, byte_order,
+ retaddr);
+ displaced_debug_printf ("relocated shadow stack return addr at %s "
+ "to %s", paddress (gdbarch, *ssp),
+ paddress (gdbarch, retaddr));
+ }
}
}
@@ -2553,6 +2586,124 @@ amd64_analyze_frame_setup (gdbarch *gdbarch, CORE_ADDR pc,
return pc;
}
+/* Check whether PC points at code pushing registers onto the stack. If so,
+ update CACHE and return pc after those pushes or CURRENT_PC, whichever is
+ smaller. Otherwise, return PC passed to this function.
+
+ In AMD64 prologue, we only expect GPRs being pushed onto the stack. */
+
+static CORE_ADDR
+amd64_analyze_register_saves (CORE_ADDR pc, CORE_ADDR current_pc,
+ amd64_frame_cache *cache)
+{
+ gdb_byte op;
+
+ /* Limit iterating to 16 GPRs available. */
+ for (int i = 0; i < 16 && pc < current_pc; i++)
+ {
+ int reg = 0;
+ int pc_offset = 0;
+
+ if (target_read_code (pc, &op, 1) == -1)
+ return pc;
+
+ /* push %r8 - %r15 REX prefix. We expect only REX.B to be set, but
+ because, for example, REX.R would be "unused" if it were there,
+ we mask opcode with 0xF1 in case compilers don't get rid of it
+ "because it doesn't matter anyway". */
+ if ((op & 0xF1) == 0x41)
+ {
+ reg += 8;
+ pc_offset = 1;
+
+ if (target_read_code (pc + 1, &op, 1) == -1)
+ return pc;
+ }
+
+ /* push %rax|%rcx|%rdx|%rbx|%rsp|%rbp|%rsi|%rdi
+
+ or with 0x41 prefix:
+ push %r8|%r9|%r10|%r11|%r12|%r13|%r14|%r15. */
+ if (op < 0x50 || op > 0x57)
+ break;
+
+ reg += op - 0x50;
+
+ int regnum = amd64_arch_reg_to_regnum (reg);
+ cache->sp_offset += 8;
+ cache->saved_regs[regnum] = -cache->sp_offset;
+
+ pc += 1 + pc_offset;
+ }
+
+ return pc;
+}
+
+/* Check whether PC points at code allocating space on the stack.
+ If so, update CACHE and return pc past it or CURRENT_PC, whichever is
+ smaller. Otherwise, return PC passed to this function. */
+
+static CORE_ADDR
+amd64_analyze_stack_alloc (gdbarch *arch, CORE_ADDR pc, CORE_ADDR current_pc,
+ amd64_frame_cache *cache)
+{
+ static const gdb_byte sub_imm8_rsp[] = { 0x83, 0xec };
+ static const gdb_byte sub_imm32_rsp[] = { 0x81, 0xec };
+ static const gdb_byte lea_disp_rsp[] = { 0x8D, 0x64 };
+
+ bfd_endian byte_order = gdbarch_byte_order (arch);
+ const CORE_ADDR start_pc = pc;
+
+ gdb_byte op;
+ if (target_read_code (pc, &op, 1) == -1)
+ return pc;
+
+ /* Check for REX.W, indicating 64-bit operand size (in this case, for
+ %rsp). */
+ if (op == 0x48)
+ pc++;
+
+ if (current_pc <= pc)
+ return current_pc;
+
+ gdb_byte buf[2];
+ read_code (pc, buf, 2);
+
+ /* Check for instruction allocating space on the stack, which looks like
+ sub imm8/32, %rsp
+ or
+ lea -imm (%rsp), %rsp
+
+ and forward pc past it + update cache. */
+
+ /* sub imm8, %rsp. */
+ if (memcmp (buf, sub_imm8_rsp, 2) == 0)
+ {
+ /* Instruction is 3 bytes long. The imm8 arg is the 3rd, single
+ byte. */
+ cache->sp_offset += read_code_integer (pc + 2, 1, byte_order);
+ return pc + 3;
+ }
+ /* sub imm32, %rsp. */
+ else if (memcmp (buf, sub_imm32_rsp, 2) == 0)
+ {
+ /* Instruction is 6 bytes long. The imm32 arg is stored in 4 bytes,
+ starting from 3rd one. */
+ cache->sp_offset += read_code_integer (pc + 2, 4, byte_order);
+ return pc + 6;
+ }
+ /* lea -imm (%rsp), %rsp. */
+ else if (memcmp (buf, lea_disp_rsp, 2) == 0)
+ {
+ /* Instruction is 4 bytes long. The imm arg is the 4th, single
+ byte. */
+ cache->sp_offset += -1 * read_code_integer (pc + 3, 1, byte_order);
+ return pc + 4;
+ }
+
+ return start_pc;
+}
+
/* Do a limited analysis of the prologue at PC and update CACHE
accordingly. Bail out early if CURRENT_PC is reached. Return the
address where the analysis stopped.
@@ -2594,7 +2745,15 @@ amd64_analyze_prologue (gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR current_pc,
if (current_pc <= pc)
return current_pc;
- return amd64_analyze_frame_setup (gdbarch, pc, current_pc, cache);
+ pc = amd64_analyze_frame_setup (gdbarch, pc, current_pc, cache);
+ if (current_pc <= pc)
+ return current_pc;
+
+ pc = amd64_analyze_register_saves (pc, current_pc, cache);
+ if (current_pc <= pc)
+ return current_pc;
+
+ return amd64_analyze_stack_alloc (gdbarch, pc, current_pc, cache);
}
/* Work around false termination of prologue - GCC PR debug/48827.
@@ -3395,6 +3554,9 @@ amd64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch,
tdep->num_pkeys_regs = 1;
}
+ if (tdesc_find_feature (tdesc, "org.gnu.gdb.i386.pl3_ssp") != nullptr)
+ tdep->ssp_regnum = AMD64_PL3_SSP_REGNUM;
+
tdep->num_byte_regs = 20;
tdep->num_word_regs = 16;
tdep->num_dword_regs = 16;
@@ -3551,23 +3713,24 @@ amd64_x32_none_init_abi (gdbarch_info info, gdbarch *arch)
amd64_target_description (X86_XSTATE_SSE_MASK, true));
}
-/* Return the target description for a specified XSAVE feature mask. */
+/* See amd64-tdep.h. */
const struct target_desc *
-amd64_target_description (uint64_t xcr0, bool segments)
+amd64_target_description (uint64_t xstate_bv, bool segments)
{
static target_desc *amd64_tdescs \
- [2/*AVX*/][2/*AVX512*/][2/*PKRU*/][2/*segments*/] = {};
+ [2/*AVX*/][2/*AVX512*/][2/*PKRU*/][2/*CET_U*/][2/*segments*/] = {};
target_desc **tdesc;
- tdesc = &amd64_tdescs[(xcr0 & X86_XSTATE_AVX) ? 1 : 0]
- [(xcr0 & X86_XSTATE_AVX512) ? 1 : 0]
- [(xcr0 & X86_XSTATE_PKRU) ? 1 : 0]
+ tdesc = &amd64_tdescs[(xstate_bv & X86_XSTATE_AVX) ? 1 : 0]
+ [(xstate_bv & X86_XSTATE_AVX512) ? 1 : 0]
+ [(xstate_bv & X86_XSTATE_PKRU) ? 1 : 0]
+ [(xstate_bv & X86_XSTATE_CET_U) ? 1 : 0]
[segments ? 1 : 0];
if (*tdesc == NULL)
- *tdesc = amd64_create_target_description (xcr0, false, false,
- segments);
+ *tdesc = amd64_create_target_description (xstate_bv, false,
+ false, segments);
return *tdesc;
}
@@ -3756,6 +3919,42 @@ test_amd64_get_insn_details (void)
= { 0x62, 0xf1, 0x7c, 0x48, 0x28, 0x81, 0x00, 0xfc, 0xff, 0xff };
fixup_riprel (details, insn.data (), ECX_REG_NUM);
SELF_CHECK (insn == updated_insn);
+
+ /* INSN: vpblendw $0x7,%xmm4,%xmm6,%xmm2, vex3 prefix. */
+ insn = { 0xc4, 0xe3, 0x49, 0x0e, 0xd4, 0x07 };
+ amd64_get_insn_details (insn.data (), &details);
+ SELF_CHECK (details.opcode_len == 3);
+ SELF_CHECK (details.enc_prefix_offset == 0);
+ SELF_CHECK (details.opcode_offset == 3);
+ SELF_CHECK (details.modrm_offset == 4);
+
+ /* INSN: vpblendw $0x7,0xff(%rip),%ymm6,%ymm2, vex3 prefix. */
+ insn = { 0xc4, 0xe3, 0x4d, 0x0e, 0x15, 0xff, 0x00, 0x00, 0x00, 0x07 };
+ amd64_get_insn_details (insn.data (), &details);
+ SELF_CHECK (details.opcode_len == 3);
+ SELF_CHECK (details.enc_prefix_offset == 0);
+ SELF_CHECK (details.opcode_offset == 3);
+ SELF_CHECK (details.modrm_offset == 4);
+
+ /* INSN: vpblendw $0x7,0xff(%ecx),%ymm6,%ymm2, vex3 prefix. */
+ fixup_riprel (details, insn.data (), ECX_REG_NUM);
+ updated_insn
+ = { 0xc4, 0xe3, 0x4d, 0x0e, 0x91, 0xff, 0x00, 0x00, 0x00, 0x07 };
+ SELF_CHECK (insn == updated_insn);
+
+ /* INSN: vpcomtrueuq 0x0(%rip),%xmm7,%xmm0, xop prefix. */
+ insn = { 0x8f, 0xe8, 0x40, 0xef, 0x05, 0x00, 0x00, 0x00, 0x00, 0x07 };
+ amd64_get_insn_details (insn.data (), &details);
+ SELF_CHECK (details.opcode_len == 1);
+ SELF_CHECK (details.enc_prefix_offset == 0);
+ SELF_CHECK (details.opcode_offset == 3);
+ SELF_CHECK (details.modrm_offset == 4);
+
+ /* INSN: vpcomtrueuq 0x0(%ecx),%xmm7,%xmm0, xop prefix. */
+ fixup_riprel (details, insn.data (), ECX_REG_NUM);
+ updated_insn
+ = { 0x8f, 0xe8, 0x40, 0xef, 0x81, 0x00, 0x00, 0x00, 0x00, 0x07 };
+ SELF_CHECK (insn == updated_insn);
}
static void
diff --git a/gdb/amd64-tdep.h b/gdb/amd64-tdep.h
index cbf8a97..e663288 100644
--- a/gdb/amd64-tdep.h
+++ b/gdb/amd64-tdep.h
@@ -81,6 +81,7 @@ enum amd64_regnum
AMD64_ZMM0H_REGNUM,
AMD64_ZMM31H_REGNUM = AMD64_ZMM0H_REGNUM + 31,
AMD64_PKRU_REGNUM,
+ AMD64_PL3_SSP_REGNUM,
AMD64_FSBASE_REGNUM,
AMD64_GSBASE_REGNUM
};
@@ -108,8 +109,12 @@ extern void amd64_init_abi (struct gdbarch_info info,
extern void amd64_x32_init_abi (struct gdbarch_info info,
struct gdbarch *gdbarch,
const target_desc *default_tdesc);
-extern const struct target_desc *amd64_target_description (uint64_t xcr0,
- bool segments);
+
+/* Return the target description for the specified xsave features as
+ defined in XSTATE_BV and SEGMENTS. */
+
+extern const struct target_desc *amd64_target_description
+ (uint64_t xstate_bv, bool segments);
/* Fill register REGNUM in REGCACHE with the appropriate
floating-point or SSE register value from *FXSAVE. If REGNUM is
diff --git a/gdb/arc-linux-tdep.c b/gdb/arc-linux-tdep.c
index edbb3f8..6a4f4b1 100644
--- a/gdb/arc-linux-tdep.c
+++ b/gdb/arc-linux-tdep.c
@@ -728,7 +728,7 @@ arc_linux_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch)
arc_linux_sw_breakpoint_from_kind);
set_gdbarch_fetch_tls_load_module_address (gdbarch,
svr4_fetch_objfile_link_map);
- set_gdbarch_software_single_step (gdbarch, arc_linux_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, arc_linux_software_single_step);
set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
set_gdbarch_skip_solib_resolver (gdbarch, arc_linux_skip_solib_resolver);
set_gdbarch_iterate_over_regset_sections
diff --git a/gdb/arch-utils.c b/gdb/arch-utils.c
index f320d3d..f2af80e 100644
--- a/gdb/arch-utils.c
+++ b/gdb/arch-utils.c
@@ -48,7 +48,7 @@
bool
default_displaced_step_hw_singlestep (struct gdbarch *gdbarch)
{
- return !gdbarch_software_single_step_p (gdbarch);
+ return !gdbarch_get_next_pcs_p (gdbarch);
}
CORE_ADDR
@@ -1218,6 +1218,16 @@ default_gdbarch_return_value
readbuf, writebuf);
}
+/* See arch-utils.h. */
+
+std::optional<CORE_ADDR>
+default_get_shadow_stack_pointer (gdbarch *gdbarch, regcache *regcache,
+ bool &shadow_stack_enabled)
+{
+ shadow_stack_enabled = false;
+ return {};
+}
+
obstack *gdbarch_obstack (gdbarch *arch)
{
return &arch->obstack;
diff --git a/gdb/arch-utils.h b/gdb/arch-utils.h
index 1509cb7..14a84b7 100644
--- a/gdb/arch-utils.h
+++ b/gdb/arch-utils.h
@@ -414,4 +414,9 @@ extern enum return_value_convention default_gdbarch_return_value
struct regcache *regcache, struct value **read_value,
const gdb_byte *writebuf);
+/* Default implementation of gdbarch default_get_shadow_stack_pointer
+ method. */
+extern std::optional<CORE_ADDR> default_get_shadow_stack_pointer
+ (gdbarch *gdbarch, regcache *regcache, bool &shadow_stack_enabled);
+
#endif /* GDB_ARCH_UTILS_H */
diff --git a/gdb/arch/aarch64-gcs-linux.h b/gdb/arch/aarch64-gcs-linux.h
new file mode 100644
index 0000000..018ca37
--- /dev/null
+++ b/gdb/arch/aarch64-gcs-linux.h
@@ -0,0 +1,44 @@
+/* Common Linux target-dependent definitions for AArch64 GCS
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#ifndef GDB_ARCH_AARCH64_GCS_LINUX_H
+#define GDB_ARCH_AARCH64_GCS_LINUX_H
+
+#include <stdint.h>
+
+/* Feature check for Guarded Control Stack. */
+#ifndef HWCAP_GCS
+#define HWCAP_GCS (1ULL << 32)
+#endif
+
+/* Make sure we only define these if the kernel header doesn't. */
+#ifndef GCS_MAGIC
+
+/* GCS state (NT_ARM_GCS). */
+
+struct user_gcs
+{
+ uint64_t features_enabled;
+ uint64_t features_locked;
+ uint64_t gcspr_el0;
+};
+
+#endif /* GCS_MAGIC */
+
+#endif /* GDB_ARCH_AARCH64_GCS_LINUX_H */
diff --git a/gdb/arch/aarch64.c b/gdb/arch/aarch64.c
index 3e1ca05..dff2bc1 100644
--- a/gdb/arch/aarch64.c
+++ b/gdb/arch/aarch64.c
@@ -26,6 +26,8 @@
#include "../features/aarch64-sme.c"
#include "../features/aarch64-sme2.c"
#include "../features/aarch64-tls.c"
+#include "../features/aarch64-gcs.c"
+#include "../features/aarch64-gcs-linux.c"
/* See arch/aarch64.h. */
@@ -65,6 +67,12 @@ aarch64_create_target_description (const aarch64_features &features)
if (features.sme2)
regnum = create_feature_aarch64_sme2 (tdesc.get (), regnum);
+ if (features.gcs)
+ regnum = create_feature_aarch64_gcs (tdesc.get (), regnum);
+
+ if (features.gcs_linux)
+ regnum = create_feature_aarch64_gcs_linux (tdesc.get (), regnum);
+
return tdesc.release ();
}
diff --git a/gdb/arch/aarch64.h b/gdb/arch/aarch64.h
index ee18b74..0fcdba7 100644
--- a/gdb/arch/aarch64.h
+++ b/gdb/arch/aarch64.h
@@ -51,6 +51,12 @@ struct aarch64_features
/* Whether SME2 is supported. */
bool sme2 = false;
+
+ /* Whether Guarded Control Stack is supported. */
+ bool gcs = false;
+
+ /* Whether Guarded Control Stack Linux features are supported. */
+ bool gcs_linux = false;
};
inline bool operator==(const aarch64_features &lhs, const aarch64_features &rhs)
@@ -60,7 +66,9 @@ inline bool operator==(const aarch64_features &lhs, const aarch64_features &rhs)
&& lhs.mte == rhs.mte
&& lhs.tls == rhs.tls
&& lhs.svq == rhs.svq
- && lhs.sme2 == rhs.sme2;
+ && lhs.sme2 == rhs.sme2
+ && lhs.gcs == rhs.gcs
+ && lhs.gcs_linux == rhs.gcs_linux;
}
namespace std
@@ -86,6 +94,10 @@ namespace std
/* SME2 feature. */
h = h << 1 | features.sme2;
+
+ h = h << 1 | features.gcs;
+ h = h << 1 | features.gcs_linux;
+
return h;
}
};
diff --git a/gdb/arch/amd64-linux-tdesc.c b/gdb/arch/amd64-linux-tdesc.c
index 91de758..8796662 100644
--- a/gdb/arch/amd64-linux-tdesc.c
+++ b/gdb/arch/amd64-linux-tdesc.c
@@ -26,34 +26,35 @@
/* See arch/amd64-linux-tdesc.h. */
const struct target_desc *
-amd64_linux_read_description (uint64_t xcr0, bool is_x32)
+amd64_linux_read_description (uint64_t xstate_bv, bool is_x32)
{
/* The type used for the amd64 and x32 target description caches. */
using tdesc_cache_type = std::unordered_map<uint64_t, const target_desc_up>;
/* Caches for the previously seen amd64 and x32 target descriptions,
- indexed by the xcr0 value that created the target description. These
- need to be static within this function to ensure they are initialised
- before first use. */
+ indexed by the xstate_bv value that created the target
+ description. These need to be static within this function to ensure
+ they are initialised before first use. */
static tdesc_cache_type amd64_tdesc_cache, x32_tdesc_cache;
tdesc_cache_type &tdesc_cache = is_x32 ? x32_tdesc_cache : amd64_tdesc_cache;
- /* Only some bits are checked when creating a tdesc, but the XCR0 value
- contains other feature bits that are not relevant for tdesc creation.
- When indexing into the TDESC_CACHE we need to use a consistent xcr0
- value otherwise we might fail to find an existing tdesc which has the
- same set of relevant bits set. */
- xcr0 &= is_x32
- ? x86_linux_x32_xcr0_feature_mask ()
- : x86_linux_amd64_xcr0_feature_mask ();
+ /* Only some bits are checked when creating a tdesc, but the
+ xstate_bv value contains other feature bits that are not
+ relevant for tdesc creation.
+ When indexing into the TDESC_CACHE we need to use a consistent
+ xstate_bv value otherwise we might fail to find an existing
+ tdesc which has the same set of relevant bits set. */
+ xstate_bv &= is_x32
+ ? x86_linux_x32_xstate_bv_feature_mask ()
+ : x86_linux_amd64_xstate_bv_feature_mask ();
- const auto it = tdesc_cache.find (xcr0);
+ const auto it = tdesc_cache.find (xstate_bv);
if (it != tdesc_cache.end ())
return it->second.get ();
/* Create the previously unseen target description. */
- target_desc_up tdesc (amd64_create_target_description (xcr0, is_x32,
+ target_desc_up tdesc (amd64_create_target_description (xstate_bv, is_x32,
true, true));
x86_linux_post_init_tdesc (tdesc.get (), true);
@@ -61,6 +62,6 @@ amd64_linux_read_description (uint64_t xcr0, bool is_x32)
target_desc_up. This is safe as the cache (and the pointers contained
within it) are not deleted until GDB exits. */
target_desc *ptr = tdesc.get ();
- tdesc_cache.emplace (xcr0, std::move (tdesc));
+ tdesc_cache.emplace (xstate_bv, std::move (tdesc));
return ptr;
}
diff --git a/gdb/arch/amd64-linux-tdesc.h b/gdb/arch/amd64-linux-tdesc.h
index 8806a13..4c0c591 100644
--- a/gdb/arch/amd64-linux-tdesc.h
+++ b/gdb/arch/amd64-linux-tdesc.h
@@ -22,9 +22,10 @@
struct target_desc;
-/* Return the AMD64 target descriptions corresponding to XCR0 and IS_X32. */
+/* Return the AMD64 target descriptions corresponding to XSTATE_BV and
+ IS_X32. */
-extern const target_desc *amd64_linux_read_description (uint64_t xcr0,
- bool is_x32);
+extern const target_desc *amd64_linux_read_description
+ (uint64_t xstate_bv, bool is_x32);
#endif /* GDB_ARCH_AMD64_LINUX_TDESC_H */
diff --git a/gdb/arch/amd64.c b/gdb/arch/amd64.c
index 252650b..9fbe802 100644
--- a/gdb/arch/amd64.c
+++ b/gdb/arch/amd64.c
@@ -28,16 +28,15 @@
#include "../features/i386/64bit-sse.c"
#include "../features/i386/pkeys.c"
+#include "../features/i386/64bit-ssp.c"
+#include "../features/i386/32bit-ssp.c"
#include "../features/i386/x32-core.c"
-/* Create amd64 target descriptions according to XCR0. If IS_X32 is
- true, create the x32 ones. If IS_LINUX is true, create target
- descriptions for Linux. If SEGMENTS is true, then include
- the "org.gnu.gdb.i386.segments" feature registers. */
+/* See arch/amd64.h. */
target_desc *
-amd64_create_target_description (uint64_t xcr0, bool is_x32, bool is_linux,
- bool segments)
+amd64_create_target_description (uint64_t xstate_bv, bool is_x32,
+ bool is_linux, bool segments)
{
target_desc_up tdesc = allocate_target_description ();
@@ -62,14 +61,22 @@ amd64_create_target_description (uint64_t xcr0, bool is_x32, bool is_linux,
if (segments)
regnum = create_feature_i386_64bit_segments (tdesc.get (), regnum);
- if (xcr0 & X86_XSTATE_AVX)
+ if (xstate_bv & X86_XSTATE_AVX)
regnum = create_feature_i386_64bit_avx (tdesc.get (), regnum);
- if (xcr0 & X86_XSTATE_AVX512)
+ if (xstate_bv & X86_XSTATE_AVX512)
regnum = create_feature_i386_64bit_avx512 (tdesc.get (), regnum);
- if (xcr0 & X86_XSTATE_PKRU)
+ if (xstate_bv & X86_XSTATE_PKRU)
regnum = create_feature_i386_pkeys (tdesc.get (), regnum);
+ if (xstate_bv & X86_XSTATE_CET_U)
+ {
+ if (!is_x32)
+ regnum = create_feature_i386_64bit_ssp (tdesc.get (), regnum);
+ else
+ regnum = create_feature_i386_32bit_ssp (tdesc.get (), regnum);
+ }
+
return tdesc.release ();
}
diff --git a/gdb/arch/amd64.h b/gdb/arch/amd64.h
index 695660c..60c17eb 100644
--- a/gdb/arch/amd64.h
+++ b/gdb/arch/amd64.h
@@ -21,7 +21,13 @@
#include "gdbsupport/tdesc.h"
#include <stdint.h>
-target_desc *amd64_create_target_description (uint64_t xcr0, bool is_x32,
- bool is_linux, bool segments);
+/* Create amd64 target descriptions according to XSTATE_BV. If
+ IS_X32 is true, create the x32 ones. If IS_LINUX is true, create
+ target descriptions for Linux. If SEGMENTS is true, then include
+ the "org.gnu.gdb.i386.segments" feature registers. */
+
+target_desc *amd64_create_target_description (uint64_t xstate_bv,
+ bool is_x32, bool is_linux,
+ bool segments);
#endif /* GDB_ARCH_AMD64_H */
diff --git a/gdb/arch/i386-linux-tdesc.c b/gdb/arch/i386-linux-tdesc.c
index 5151317..bd736eb 100644
--- a/gdb/arch/i386-linux-tdesc.c
+++ b/gdb/arch/i386-linux-tdesc.c
@@ -25,32 +25,35 @@
/* See arch/i386-linux-tdesc.h. */
const target_desc *
-i386_linux_read_description (uint64_t xcr0)
+i386_linux_read_description (uint64_t xstate_bv)
{
- /* Cache of previously seen i386 target descriptions, indexed by the xcr0
- value that created the target description. This needs to be static
- within this function to ensure it is initialised before first use. */
+ /* Cache of previously seen i386 target descriptions, indexed by the
+ xstate_bv value that created the target description. This
+ needs to be static within this function to ensure it is initialised
+ before first use. */
static std::unordered_map<uint64_t, const target_desc_up> i386_tdesc_cache;
- /* Only some bits are checked when creating a tdesc, but the XCR0 value
- contains other feature bits that are not relevant for tdesc creation.
- When indexing into the I386_TDESC_CACHE we need to use a consistent
- xcr0 value otherwise we might fail to find an existing tdesc which has
- the same set of relevant bits set. */
- xcr0 &= x86_linux_i386_xcr0_feature_mask ();
+ /* Only some bits are checked when creating a tdesc, but the
+ XSTATE_BV value contains other feature bits that are not relevant
+ for tdesc creation. When indexing into the I386_TDESC_CACHE
+ we need to use a consistent XSTATE_BV value otherwise we might fail
+ to find an existing tdesc which has the same set of relevant bits
+ set. */
+ xstate_bv &= x86_linux_i386_xstate_bv_feature_mask ();
- const auto it = i386_tdesc_cache.find (xcr0);
+ const auto it = i386_tdesc_cache.find (xstate_bv);
if (it != i386_tdesc_cache.end ())
return it->second.get ();
/* Create the previously unseen target description. */
- target_desc_up tdesc (i386_create_target_description (xcr0, true, false));
+ target_desc_up tdesc
+ (i386_create_target_description (xstate_bv, true, false));
x86_linux_post_init_tdesc (tdesc.get (), false);
/* Add to the cache, and return a pointer borrowed from the
target_desc_up. This is safe as the cache (and the pointers contained
within it) are not deleted until GDB exits. */
target_desc *ptr = tdesc.get ();
- i386_tdesc_cache.emplace (xcr0, std::move (tdesc));
+ i386_tdesc_cache.emplace (xstate_bv, std::move (tdesc));
return ptr;
}
diff --git a/gdb/arch/i386-linux-tdesc.h b/gdb/arch/i386-linux-tdesc.h
index 2c3c174..1cf2931 100644
--- a/gdb/arch/i386-linux-tdesc.h
+++ b/gdb/arch/i386-linux-tdesc.h
@@ -22,8 +22,9 @@
struct target_desc;
-/* Return the i386 target description corresponding to XCR0. */
+/* Return the i386 target description corresponding to XSTATE_BV. */
-extern const struct target_desc *i386_linux_read_description (uint64_t xcr0);
+extern const struct target_desc *i386_linux_read_description
+ (uint64_t xstate_bv);
#endif /* GDB_ARCH_I386_LINUX_TDESC_H */
diff --git a/gdb/arch/i386.c b/gdb/arch/i386.c
index 835df53..4ec4f10 100644
--- a/gdb/arch/i386.c
+++ b/gdb/arch/i386.c
@@ -28,11 +28,13 @@
#include "../features/i386/32bit-avx512.c"
#include "../features/i386/32bit-segments.c"
#include "../features/i386/pkeys.c"
+#include "../features/i386/32bit-ssp.c"
-/* Create i386 target descriptions according to XCR0. */
+/* See arch/i386.h. */
target_desc *
-i386_create_target_description (uint64_t xcr0, bool is_linux, bool segments)
+i386_create_target_description (uint64_t xstate_bv, bool is_linux,
+ bool segments)
{
target_desc_up tdesc = allocate_target_description ();
@@ -44,10 +46,10 @@ i386_create_target_description (uint64_t xcr0, bool is_linux, bool segments)
long regnum = 0;
- if (xcr0 & X86_XSTATE_X87)
+ if (xstate_bv & X86_XSTATE_X87)
regnum = create_feature_i386_32bit_core (tdesc.get (), regnum);
- if (xcr0 & X86_XSTATE_SSE)
+ if (xstate_bv & X86_XSTATE_SSE)
regnum = create_feature_i386_32bit_sse (tdesc.get (), regnum);
if (is_linux)
@@ -56,14 +58,17 @@ i386_create_target_description (uint64_t xcr0, bool is_linux, bool segments)
if (segments)
regnum = create_feature_i386_32bit_segments (tdesc.get (), regnum);
- if (xcr0 & X86_XSTATE_AVX)
+ if (xstate_bv & X86_XSTATE_AVX)
regnum = create_feature_i386_32bit_avx (tdesc.get (), regnum);
- if (xcr0 & X86_XSTATE_AVX512)
+ if (xstate_bv & X86_XSTATE_AVX512)
regnum = create_feature_i386_32bit_avx512 (tdesc.get (), regnum);
- if (xcr0 & X86_XSTATE_PKRU)
+ if (xstate_bv & X86_XSTATE_PKRU)
regnum = create_feature_i386_pkeys (tdesc.get (), regnum);
+ if (xstate_bv & X86_XSTATE_CET_U)
+ regnum = create_feature_i386_32bit_ssp (tdesc.get (), regnum);
+
return tdesc.release ();
}
diff --git a/gdb/arch/i386.h b/gdb/arch/i386.h
index 1fc4101..91a581f 100644
--- a/gdb/arch/i386.h
+++ b/gdb/arch/i386.h
@@ -21,7 +21,12 @@
#include "gdbsupport/tdesc.h"
#include <stdint.h>
-target_desc *i386_create_target_description (uint64_t xcr0, bool is_linux,
+/* Create i386 target descriptions according to XSTATE_BV. If IS_LINUX is
+ true, create target descriptions for Linux. If SEGMENTS is true, then
+ include the "org.gnu.gdb.i386.segments" feature registers. */
+
+target_desc *i386_create_target_description (uint64_t xstate_bv,
+ bool is_linux,
bool segments);
#endif /* GDB_ARCH_I386_H */
diff --git a/gdb/arch/x86-linux-tdesc-features.c b/gdb/arch/x86-linux-tdesc-features.c
index f65920c..bc34378 100644
--- a/gdb/arch/x86-linux-tdesc-features.c
+++ b/gdb/arch/x86-linux-tdesc-features.c
@@ -28,18 +28,21 @@
We want to cache target descriptions, and this is currently done in
three separate caches, one each for i386, amd64, and x32. Additionally,
- the caching we're discussing here is Linux only, and for Linux, the only
- thing that has an impact on target description creation is the xcr0
- value.
-
- In order to ensure the cache functions correctly we need to filter out
- only those xcr0 feature bits that are relevant, we can then cache target
- descriptions based on the relevant feature bits. Two xcr0 values might
- be different, but have the same relevant feature bits. In this case we
- would expect the two xcr0 values to map to the same cache entry. */
+ the caching we're discussing here is Linux only. Currently for Linux,
+ the only thing that has an impact on target description creation are
+ the supported features in xsave which are modelled by a xstate_bv
+ value, which has the same format than the state component bitmap.
+
+ In order to ensure the cache functions correctly we need to filter only
+ those xstate_bv feature bits that are relevant, we can then cache
+ target descriptions based on the relevant feature bits. Two xstate_bv
+ values might be different, but have the same relevant feature bits. In
+ this case we would expect the two xstate_bv values to map to the same
+ cache entry. */
struct x86_xstate_feature {
- /* The xstate feature mask. This is a mask against an xcr0 value. */
+ /* The xstate feature mask. This is a mask against the state component
+ bitmap. */
uint64_t feature;
/* Is this feature checked when creating an i386 target description. */
@@ -56,12 +59,13 @@ struct x86_xstate_feature {
checked when building a target description for i386, amd64, or x32.
If in the future, due to simplifications or refactoring, this table ever
- ends up with 'true' for every xcr0 feature on every target type, then this
- is an indication that this table should probably be removed, and that the
- rest of the code in this file can be simplified. */
+ ends up with 'true' for every xsave feature on every target type, then
+ this is an indication that this table should probably be removed, and
+ that the rest of the code in this file can be simplified. */
static constexpr x86_xstate_feature x86_linux_all_xstate_features[] = {
/* Feature, i386, amd64, x32. */
+ { X86_XSTATE_CET_U, false, true, true },
{ X86_XSTATE_PKRU, true, true, true },
{ X86_XSTATE_AVX512, true, true, true },
{ X86_XSTATE_AVX, true, true, true },
@@ -73,7 +77,7 @@ static constexpr x86_xstate_feature x86_linux_all_xstate_features[] = {
that are checked for when building an i386 target description. */
static constexpr uint64_t
-x86_linux_i386_xcr0_feature_mask_1 ()
+x86_linux_i386_xstate_bv_feature_mask_1 ()
{
uint64_t mask = 0;
@@ -88,7 +92,7 @@ x86_linux_i386_xcr0_feature_mask_1 ()
that are checked for when building an amd64 target description. */
static constexpr uint64_t
-x86_linux_amd64_xcr0_feature_mask_1 ()
+x86_linux_amd64_xstate_bv_feature_mask_1 ()
{
uint64_t mask = 0;
@@ -103,7 +107,7 @@ x86_linux_amd64_xcr0_feature_mask_1 ()
that are checked for when building an x32 target description. */
static constexpr uint64_t
-x86_linux_x32_xcr0_feature_mask_1 ()
+x86_linux_x32_xstate_bv_feature_mask_1 ()
{
uint64_t mask = 0;
@@ -117,25 +121,25 @@ x86_linux_x32_xcr0_feature_mask_1 ()
/* See arch/x86-linux-tdesc-features.h. */
uint64_t
-x86_linux_i386_xcr0_feature_mask ()
+x86_linux_i386_xstate_bv_feature_mask ()
{
- return x86_linux_i386_xcr0_feature_mask_1 ();
+ return x86_linux_i386_xstate_bv_feature_mask_1 ();
}
/* See arch/x86-linux-tdesc-features.h. */
uint64_t
-x86_linux_amd64_xcr0_feature_mask ()
+x86_linux_amd64_xstate_bv_feature_mask ()
{
- return x86_linux_amd64_xcr0_feature_mask_1 ();
+ return x86_linux_amd64_xstate_bv_feature_mask_1 ();
}
/* See arch/x86-linux-tdesc-features.h. */
uint64_t
-x86_linux_x32_xcr0_feature_mask ()
+x86_linux_x32_xstate_bv_feature_mask ()
{
- return x86_linux_x32_xcr0_feature_mask_1 ();
+ return x86_linux_x32_xstate_bv_feature_mask_1 ();
}
#ifdef GDBSERVER
@@ -143,7 +147,7 @@ x86_linux_x32_xcr0_feature_mask ()
/* See arch/x86-linux-tdesc-features.h. */
int
-x86_linux_xcr0_to_tdesc_idx (uint64_t xcr0)
+x86_linux_xstate_bv_to_tdesc_idx (uint64_t xstate_bv)
{
/* The following table shows which features are checked for when creating
the target descriptions (see nat/x86-linux-tdesc.c), the feature order
@@ -160,7 +164,7 @@ x86_linux_xcr0_to_tdesc_idx (uint64_t xcr0)
for (int i = 0; i < ARRAY_SIZE (x86_linux_all_xstate_features); ++i)
{
- if ((xcr0 & x86_linux_all_xstate_features[i].feature)
+ if ((xstate_bv & x86_linux_all_xstate_features[i].feature)
== x86_linux_all_xstate_features[i].feature)
idx |= (1 << i);
}
@@ -250,17 +254,17 @@ x86_linux_i386_tdesc_count ()
/* See arch/x86-linux-tdesc-features.h. */
uint64_t
-x86_linux_tdesc_idx_to_xcr0 (int idx)
+x86_linux_tdesc_idx_to_xstate_bv (int idx)
{
- uint64_t xcr0 = 0;
+ uint64_t xstate_bv = 0;
for (int i = 0; i < ARRAY_SIZE (x86_linux_all_xstate_features); ++i)
{
if ((idx & (1 << i)) != 0)
- xcr0 |= x86_linux_all_xstate_features[i].feature;
+ xstate_bv |= x86_linux_all_xstate_features[i].feature;
}
- return xcr0;
+ return xstate_bv;
}
#endif /* IN_PROCESS_AGENT */
diff --git a/gdb/arch/x86-linux-tdesc-features.h b/gdb/arch/x86-linux-tdesc-features.h
index 89fe7ce..bc72727 100644
--- a/gdb/arch/x86-linux-tdesc-features.h
+++ b/gdb/arch/x86-linux-tdesc-features.h
@@ -27,17 +27,20 @@
the set of features which are checked for when creating the target
description for each of amd64, x32, and i386. */
-extern uint64_t x86_linux_amd64_xcr0_feature_mask ();
-extern uint64_t x86_linux_x32_xcr0_feature_mask ();
-extern uint64_t x86_linux_i386_xcr0_feature_mask ();
+extern uint64_t x86_linux_amd64_xstate_bv_feature_mask ();
+extern uint64_t x86_linux_x32_xstate_bv_feature_mask ();
+extern uint64_t x86_linux_i386_xstate_bv_feature_mask ();
#ifdef GDBSERVER
-/* Convert an xcr0 value into an integer. The integer will be passed from
- gdbserver to the in-process-agent where it will then be passed through
- x86_linux_tdesc_idx_to_xcr0 to get back the original xcr0 value. */
+/* Convert an XSTATE_BV value into an integer. XSTATE_BV has the same
+ format than the state component bitmap and does include user and
+ supervisor state components. The integer will be passed from gdbserver
+ to the in-process-agent where it will then be passed through
+ x86_linux_tdesc_idx_to_xstate_bv to get back the original value. */
-extern int x86_linux_xcr0_to_tdesc_idx (uint64_t xcr0);
+
+extern int x86_linux_xstate_bv_to_tdesc_idx (uint64_t xstate_bv);
#endif /* GDBSERVER */
@@ -51,11 +54,13 @@ extern int x86_linux_amd64_tdesc_count ();
extern int x86_linux_x32_tdesc_count ();
extern int x86_linux_i386_tdesc_count ();
-/* Convert an index number (as returned from x86_linux_xcr0_to_tdesc_idx)
- into an xcr0 value which can then be used to create a target
- description. */
+/* Convert an index number (as returned from
+ x86_linux_xstate_bv_to_tdesc_idx) into an xstate_bv value which can
+ then be used to create a target description.
+ The return mask has the same format than the state component bitmap
+ and does include user and supervisor state components. */
-extern uint64_t x86_linux_tdesc_idx_to_xcr0 (int idx);
+extern uint64_t x86_linux_tdesc_idx_to_xstate_bv (int idx);
#endif /* IN_PROCESS_AGENT */
diff --git a/gdb/arm-fbsd-tdep.c b/gdb/arm-fbsd-tdep.c
index a37d8b7..fc81818 100644
--- a/gdb/arm-fbsd-tdep.c
+++ b/gdb/arm-fbsd-tdep.c
@@ -318,7 +318,7 @@ arm_fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
}
/* Single stepping. */
- set_gdbarch_software_single_step (gdbarch, arm_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, arm_software_single_step);
}
INIT_GDB_FILE (arm_fbsd_tdep)
diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c
index 813da8c..dc5165e 100644
--- a/gdb/arm-linux-nat.c
+++ b/gdb/arm-linux-nat.c
@@ -90,8 +90,6 @@ public:
bool stopped_data_address (CORE_ADDR *) override;
- bool watchpoint_addr_within_range (CORE_ADDR, CORE_ADDR, int) override;
-
const struct target_desc *read_description () override;
/* Override linux_nat_target low methods. */
@@ -1206,14 +1204,6 @@ arm_linux_nat_target::stopped_by_watchpoint ()
return stopped_data_address (&addr);
}
-bool
-arm_linux_nat_target::watchpoint_addr_within_range (CORE_ADDR addr,
- CORE_ADDR start,
- int length)
-{
- return start <= addr && start + length - 1 >= addr;
-}
-
/* Handle thread creation. We need to copy the breakpoints and watchpoints
in the parent thread to the child thread. */
void
diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c
index 08526d8..ff20ed8 100644
--- a/gdb/arm-linux-tdep.c
+++ b/gdb/arm-linux-tdep.c
@@ -56,7 +56,6 @@
#include "stap-probe.h"
#include "parser-defs.h"
#include "user-regs.h"
-#include <ctype.h>
#include "elf/common.h"
/* Under ARM GNU/Linux the traditional way of performing a breakpoint
@@ -1167,10 +1166,10 @@ arm_linux_displaced_step_copy_insn (struct gdbarch *gdbarch,
static int
arm_stap_is_single_operand (struct gdbarch *gdbarch, const char *s)
{
- return (*s == '#' || *s == '$' || isdigit (*s) /* Literal number. */
+ return (*s == '#' || *s == '$' || c_isdigit (*s) /* Literal number. */
|| *s == '[' /* Register indirection or
displacement. */
- || isalpha (*s)); /* Register value. */
+ || c_isalpha (*s)); /* Register value. */
}
/* This routine is used to parse a special token in ARM's assembly.
@@ -1202,7 +1201,7 @@ arm_stap_parse_special_token (struct gdbarch *gdbarch,
start = tmp;
/* Register name. */
- while (isalnum (*tmp))
+ while (c_isalnum (*tmp))
++tmp;
if (*tmp != ',')
@@ -1212,7 +1211,7 @@ arm_stap_parse_special_token (struct gdbarch *gdbarch,
regname = (char *) alloca (len + 2);
offset = 0;
- if (isdigit (*start))
+ if (c_isdigit (*start))
{
/* If we are dealing with a register whose name begins with a
digit, it means we should prefix the name with the letter
@@ -1805,7 +1804,7 @@ arm_linux_init_abi (struct gdbarch_info info,
set_solib_svr4_ops (gdbarch, make_linux_ilp32_svr4_solib_ops);
/* Single stepping. */
- set_gdbarch_software_single_step (gdbarch, arm_linux_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, arm_linux_software_single_step);
/* Shared library handling. */
set_gdbarch_skip_trampoline_code (gdbarch, arm_linux_skip_trampoline_code);
diff --git a/gdb/arm-netbsd-tdep.c b/gdb/arm-netbsd-tdep.c
index 82ba0c6..571d6f2 100644
--- a/gdb/arm-netbsd-tdep.c
+++ b/gdb/arm-netbsd-tdep.c
@@ -139,7 +139,7 @@ arm_netbsd_init_abi_common (struct gdbarch_info info,
set_gdbarch_iterate_over_regset_sections
(gdbarch, arm_nbsd_iterate_over_regset_sections);
/* Single stepping. */
- set_gdbarch_software_single_step (gdbarch, arm_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, arm_software_single_step);
}
static void
diff --git a/gdb/arm-obsd-tdep.c b/gdb/arm-obsd-tdep.c
index 00e4bfd..8a48b95 100644
--- a/gdb/arm-obsd-tdep.c
+++ b/gdb/arm-obsd-tdep.c
@@ -96,7 +96,7 @@ armobsd_init_abi (struct gdbarch_info info,
tdep->struct_return = pcc_struct_return;
/* Single stepping. */
- set_gdbarch_software_single_step (gdbarch, arm_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, arm_software_single_step);
/* Breakpoints. */
switch (info.byte_order)
diff --git a/gdb/arm-pikeos-tdep.c b/gdb/arm-pikeos-tdep.c
index 12fd9c3..8d24342 100644
--- a/gdb/arm-pikeos-tdep.c
+++ b/gdb/arm-pikeos-tdep.c
@@ -26,7 +26,7 @@ static void
arm_pikeos_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
{
/* Single stepping. */
- set_gdbarch_software_single_step (gdbarch, arm_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, arm_software_single_step);
}
/* The ARM PikeOS OSABI sniffer (see gdbarch_register_osabi_sniffer).
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index a764825..940d05f 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -18,7 +18,6 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include <ctype.h>
#include "extract-store-integer.h"
#include "frame.h"
@@ -2504,15 +2503,15 @@ static const registry<bfd>::key<arm_exidx_data> arm_exidx_data_key;
static struct obj_section *
arm_obj_section_from_vma (struct objfile *objfile, bfd_vma vma)
{
- for (obj_section *osect : objfile->sections ())
- if (bfd_section_flags (osect->the_bfd_section) & SEC_ALLOC)
+ for (obj_section &osect : objfile->sections ())
+ if (bfd_section_flags (osect.the_bfd_section) & SEC_ALLOC)
{
bfd_vma start, size;
- start = bfd_section_vma (osect->the_bfd_section);
- size = bfd_section_size (osect->the_bfd_section);
+ start = bfd_section_vma (osect.the_bfd_section);
+ size = bfd_section_size (osect.the_bfd_section);
if (start <= vma && vma < start + size)
- return osect;
+ return &osect;
}
return NULL;
diff --git a/gdb/arm-wince-tdep.c b/gdb/arm-wince-tdep.c
index b9ea59c..f14c8e8 100644
--- a/gdb/arm-wince-tdep.c
+++ b/gdb/arm-wince-tdep.c
@@ -135,7 +135,7 @@ arm_wince_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
set_gdbarch_skip_trampoline_code (gdbarch, arm_pe_skip_trampoline_code);
/* Single stepping. */
- set_gdbarch_software_single_step (gdbarch, arm_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, arm_software_single_step);
/* Skip call to __gccmain that gcc places in main. */
set_gdbarch_skip_main_prologue (gdbarch, arm_wince_skip_main_prologue);
diff --git a/gdb/auto-load.c b/gdb/auto-load.c
index 114a7d5..8817bd1 100644
--- a/gdb/auto-load.c
+++ b/gdb/auto-load.c
@@ -17,7 +17,6 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include <ctype.h>
#include "auto-load.h"
#include "gdbsupport/gdb_vecs.h"
#include "progspace.h"
@@ -1045,7 +1044,7 @@ execute_script_contents (struct auto_load_pspace_info *pspace_info,
buf = name_holder.c_str ();
for (p = buf; *p != '\0'; ++p)
{
- if (isspace (*p))
+ if (c_isspace (*p))
break;
}
/* We don't allow nameless scripts, they're not helpful to the user. */
diff --git a/gdb/ax-gdb.c b/gdb/ax-gdb.c
index 08f542c..54717bf 100644
--- a/gdb/ax-gdb.c
+++ b/gdb/ax-gdb.c
@@ -525,7 +525,7 @@ gen_var_ref (struct agent_expr *ax, struct axs_value *value, struct symbol *var)
return computed_ops->tracepoint_var_ref (var, ax, value);
/* I'm imitating the code in read_var_value. */
- switch (var->aclass ())
+ switch (var->loc_class ())
{
case LOC_CONST: /* A constant, like an enum value. */
ax_const_l (ax, (LONGEST) var->value_longest ());
@@ -538,8 +538,7 @@ gen_var_ref (struct agent_expr *ax, struct axs_value *value, struct symbol *var)
break;
case LOC_CONST_BYTES:
- internal_error (_("gen_var_ref: LOC_CONST_BYTES "
- "symbols are not supported"));
+ error (_("gen_var_ref: LOC_CONST_BYTES symbols are not supported"));
/* Variable at a fixed location in memory. Easy. */
case LOC_STATIC:
diff --git a/gdb/block.c b/gdb/block.c
index 1866c0f..2450ebd 100644
--- a/gdb/block.c
+++ b/gdb/block.c
@@ -618,7 +618,7 @@ block_iterator_next (struct block_iterator *iterator)
bool
best_symbol (struct symbol *a, const domain_search_flags domain)
{
- if (a->aclass () == LOC_UNRESOLVED)
+ if (a->loc_class () == LOC_UNRESOLVED)
return false;
if ((domain & SEARCH_VAR_DOMAIN) != 0)
@@ -644,10 +644,10 @@ better_symbol (struct symbol *a, struct symbol *b,
if (b->matches (domain) && !a->matches (domain))
return b;
- if (a->aclass () != LOC_UNRESOLVED && b->aclass () == LOC_UNRESOLVED)
+ if (a->loc_class () != LOC_UNRESOLVED && b->loc_class () == LOC_UNRESOLVED)
return a;
- if (b->aclass () != LOC_UNRESOLVED && a->aclass () == LOC_UNRESOLVED)
+ if (b->loc_class () != LOC_UNRESOLVED && a->loc_class () == LOC_UNRESOLVED)
return b;
return a;
@@ -670,22 +670,9 @@ block_lookup_symbol (const struct block *block, const lookup_name_info &name,
{
if (!block->function ())
{
- struct symbol *other = NULL;
-
- for (struct symbol *sym : block_iterator_range (block, &name))
- {
- /* See comment related to PR gcc/debug/91507 in
- block_lookup_symbol_primary. */
- if (best_symbol (sym, domain))
- return sym;
- /* This is a bit of a hack, but symbol_matches_domain might ignore
- STRUCT vs VAR domain symbols. So if a matching symbol is found,
- make sure there is no "better" matching symbol, i.e., one with
- exactly the same domain. PR 16253. */
- if (sym->matches (domain))
- other = better_symbol (other, sym, domain);
- }
- return other;
+ best_symbol_tracker tracker;
+ tracker.search (nullptr, block, name, domain);
+ return tracker.currently_best.symbol;
}
else
{
@@ -717,24 +704,13 @@ block_lookup_symbol (const struct block *block, const lookup_name_info &name,
/* See block.h. */
-struct symbol *
-block_lookup_symbol_primary (const struct block *block, const char *name,
+bool
+best_symbol_tracker::search (compunit_symtab *symtab,
+ const struct block *block,
+ const lookup_name_info &name,
const domain_search_flags domain)
{
- struct symbol *sym, *other;
- struct mdict_iterator mdict_iter;
-
- lookup_name_info lookup_name (name, symbol_name_match_type::FULL);
-
- /* Verify BLOCK is STATIC_BLOCK or GLOBAL_BLOCK. */
- gdb_assert (block->superblock () == NULL
- || block->superblock ()->superblock () == NULL);
-
- other = NULL;
- for (sym = mdict_iter_match_first (block->multidict (), lookup_name,
- &mdict_iter);
- sym != NULL;
- sym = mdict_iter_match_next (lookup_name, &mdict_iter))
+ for (symbol *sym : block_iterator_range (block, &name))
{
/* With the fix for PR gcc/debug/91507, we get for:
...
@@ -764,17 +740,28 @@ block_lookup_symbol_primary (const struct block *block, const char *name,
the only option to make this work is improve the fallback to use the
size of the minimal symbol. Filed as PR exp/24989. */
if (best_symbol (sym, domain))
- return sym;
+ {
+ best_symtab = symtab;
+ currently_best = { sym, block };
+ return true;
+ }
/* This is a bit of a hack, but 'matches' might ignore
STRUCT vs VAR domain symbols. So if a matching symbol is found,
make sure there is no "better" matching symbol, i.e., one with
exactly the same domain. PR 16253. */
if (sym->matches (domain))
- other = better_symbol (other, sym, domain);
+ {
+ symbol *better = better_symbol (sym, currently_best.symbol, domain);
+ if (better != currently_best.symbol)
+ {
+ best_symtab = symtab;
+ currently_best = { better, block };
+ }
+ }
}
- return other;
+ return false;
}
/* See block.h. */
diff --git a/gdb/block.h b/gdb/block.h
index 76fa203..4ea5294 100644
--- a/gdb/block.h
+++ b/gdb/block.h
@@ -630,14 +630,27 @@ extern struct symbol *block_lookup_symbol (const struct block *block,
const lookup_name_info &name,
const domain_search_flags domain);
-/* Search BLOCK for symbol NAME in DOMAIN but only in primary symbol table of
- BLOCK. BLOCK must be STATIC_BLOCK or GLOBAL_BLOCK. Function is useful if
- one iterates all global/static blocks of an objfile. */
+/* When searching for a symbol, the "best" symbol is preferred over
+ one that is merely acceptable. See 'best_symbol'. This class
+ keeps track of this distinction while searching. */
-extern struct symbol *block_lookup_symbol_primary
- (const struct block *block,
- const char *name,
- const domain_search_flags domain);
+struct best_symbol_tracker
+{
+ /* The symtab in which the currently best symbol appears. */
+ compunit_symtab *best_symtab = nullptr;
+
+ /* The currently best (really "better") symbol. */
+ block_symbol currently_best {};
+
+ /* Search BLOCK (which must have come from SYMTAB) for a symbol
+ matching NAME and DOMAIN. When a symbol is found, update
+ 'currently_best'. If a best symbol is found, return true.
+ Otherwise, return false. SYMTAB can be nullptr if the caller
+ does not care about this tracking. */
+ bool search (compunit_symtab *symtab,
+ const block *block, const lookup_name_info &name,
+ domain_search_flags domain);
+};
/* Find symbol NAME in BLOCK and in DOMAIN. This will return a
matching symbol whose type is not a "opaque", see TYPE_IS_OPAQUE.
diff --git a/gdb/break-catch-exec.c b/gdb/break-catch-exec.c
index 570018c..9bfdb44 100644
--- a/gdb/break-catch-exec.c
+++ b/gdb/break-catch-exec.c
@@ -164,7 +164,7 @@ ep_parse_optional_if_clause (const char **arg)
{
const char *cond_string;
- if (((*arg)[0] != 'i') || ((*arg)[1] != 'f') || !isspace ((*arg)[2]))
+ if (((*arg)[0] != 'i') || ((*arg)[1] != 'f') || !c_isspace ((*arg)[2]))
return NULL;
/* Skip the "if" keyword. */
@@ -204,7 +204,7 @@ catch_exec_command_1 (const char *arg, int from_tty,
First, check if there's an if clause. */
cond_string = ep_parse_optional_if_clause (&arg);
- if ((*arg != '\0') && !isspace (*arg))
+ if ((*arg != '\0') && !c_isspace (*arg))
error (_("Junk at end of arguments."));
std::unique_ptr<exec_catchpoint> c
diff --git a/gdb/break-catch-fork.c b/gdb/break-catch-fork.c
index c8a6330..535040c9 100644
--- a/gdb/break-catch-fork.c
+++ b/gdb/break-catch-fork.c
@@ -221,7 +221,7 @@ catch_fork_command_1 (const char *arg, int from_tty,
First, check if there's an if clause. */
cond_string = ep_parse_optional_if_clause (&arg);
- if ((*arg != '\0') && !isspace (*arg))
+ if ((*arg != '\0') && !c_isspace (*arg))
error (_("Junk at end of arguments."));
/* If this target supports it, create a fork or vfork catchpoint
diff --git a/gdb/break-catch-syscall.c b/gdb/break-catch-syscall.c
index 96f22a1..fad76e7 100644
--- a/gdb/break-catch-syscall.c
+++ b/gdb/break-catch-syscall.c
@@ -17,7 +17,6 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include <ctype.h>
#include "breakpoint.h"
#include "inferior.h"
#include "cli/cli-utils.h"
@@ -369,7 +368,7 @@ catch_syscall_split_args (const char *arg)
/* Skip whitespace. */
arg = skip_spaces (arg);
- for (i = 0; i < 127 && arg[i] && !isspace (arg[i]); ++i)
+ for (i = 0; i < 127 && arg[i] && !c_isspace (arg[i]); ++i)
cur_name[i] = arg[i];
cur_name[i] = '\0';
arg += i;
diff --git a/gdb/break-catch-throw.c b/gdb/break-catch-throw.c
index 6da38eb..1a45d7c 100644
--- a/gdb/break-catch-throw.c
+++ b/gdb/break-catch-throw.c
@@ -18,7 +18,6 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "arch-utils.h"
-#include <ctype.h>
#include "breakpoint.h"
#include "exceptions.h"
#include "inferior.h"
@@ -420,7 +419,7 @@ catch_exception_event (enum exception_event_kind ex_event,
cond_string = ep_parse_optional_if_clause (&arg);
- if ((*arg != '\0') && !isspace (*arg))
+ if ((*arg != '\0') && !c_isspace (*arg))
error (_("Junk at end of arguments."));
if (ex_event != EX_EVENT_THROW
diff --git a/gdb/break-cond-parse.c b/gdb/break-cond-parse.c
index 31b5343..b771344 100644
--- a/gdb/break-cond-parse.c
+++ b/gdb/break-cond-parse.c
@@ -66,12 +66,12 @@ find_next_token (const char **curr, parse_direction direction)
{
gdb_assert (direction == parse_direction::backward);
- while (isspace (**curr))
+ while (c_isspace (**curr))
--(*curr);
tok_end = *curr;
- while (!isspace (**curr))
+ while (!c_isspace (**curr))
--(*curr);
tok_start = (*curr) + 1;
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index d704ad1..5d87fb9 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -18,7 +18,6 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "arch-utils.h"
-#include <ctype.h>
#include "event-top.h"
#include "exceptions.h"
#include "gdbsupport/gdb_vecs.h"
@@ -1288,7 +1287,7 @@ condition_completer (struct cmd_list_element *cmd,
{
tracker.advance_custom_word_point_by (1);
/* We don't support completion of history indices. */
- if (!isdigit (text[1]))
+ if (!c_isdigit (text[1]))
complete_internalvar (tracker, &text[1]);
return;
}
@@ -10465,7 +10464,7 @@ watch_command_1 (const char *arg, int accessflag, int from_tty,
int len;
len = exp_end - exp_start;
- while (len > 0 && isspace (exp_start[len - 1]))
+ while (len > 0 && c_isspace (exp_start[len - 1]))
len--;
error (_("Cannot watch constant value `%.*s'."), len, exp_start);
}
@@ -14004,9 +14003,7 @@ int
insert_single_step_breakpoints (struct gdbarch *gdbarch)
{
regcache *regcache = get_thread_regcache (inferior_thread ());
- std::vector<CORE_ADDR> next_pcs;
-
- next_pcs = gdbarch_software_single_step (gdbarch, regcache);
+ std::vector<CORE_ADDR> next_pcs = gdbarch_get_next_pcs (gdbarch, regcache);
if (!next_pcs.empty ())
{
@@ -14113,7 +14110,7 @@ strace_command (const char *arg, int from_tty)
/* Decide if we are dealing with a static tracepoint marker (`-m'),
or with a normal static tracepoint. */
- if (arg && startswith (arg, "-m") && isspace (arg[2]))
+ if (arg && startswith (arg, "-m") && c_isspace (arg[2]))
{
ops = &strace_marker_breakpoint_ops;
locspec = new_linespec_location_spec (&arg,
diff --git a/gdb/btrace.c b/gdb/btrace.c
index b23de88..3d43261 100644
--- a/gdb/btrace.c
+++ b/gdb/btrace.c
@@ -39,7 +39,6 @@
#include "record-btrace.h"
#include <inttypes.h>
-#include <ctype.h>
#include <algorithm>
#include <string>
@@ -3258,7 +3257,7 @@ get_uint (const char **arg)
begin = *arg;
pos = skip_spaces (begin);
- if (!isdigit (*pos))
+ if (!c_isdigit (*pos))
error (_("Expected positive number, got: %s."), pos);
number = strtoul (pos, &end, 10);
@@ -3277,7 +3276,7 @@ get_context_size (const char **arg)
{
const char *pos = skip_spaces (*arg);
- if (!isdigit (*pos))
+ if (!c_isdigit (*pos))
error (_("Expected positive number, got: %s."), pos);
char *end;
diff --git a/gdb/c-exp.y b/gdb/c-exp.y
index 14d4b70..11f0d88 100644
--- a/gdb/c-exp.y
+++ b/gdb/c-exp.y
@@ -35,7 +35,6 @@
%{
-#include <ctype.h>
#include "expression.h"
#include "value.h"
#include "parser-defs.h"
@@ -106,8 +105,35 @@ struct c_parse_state
/* The type stack. */
struct type_stack type_stack;
+
+ /* When set, a name token is not looked up. This can be useful when
+ the search domain is known by context. TYPE_CODE_UNDEF is used
+ to mean "unset" here -- typically only types with tags (enum,
+ struct, class, union) use this feature, but TYPE_CODE_VOID is
+ also used to avoid the lookup for field names. */
+ type_code assume_classification = TYPE_CODE_UNDEF;
+};
+
+/* Used for field names, which skip name lookup. */
+struct qualified_name_token
+{
+ /* The prefix, if any. This can be nullptr. */
+ const char *prefix;
+ /* The field name itself. */
+ const char *name;
+ /* True if the COMPLETE token was seen. */
+ bool complete;
};
+/* A convenient overload of copy_name. */
+static std::string
+copy_name (qualified_name_token token)
+{
+ if (token.prefix == nullptr)
+ return token.name;
+ return std::string (token.prefix) + "::" + token.name;
+}
+
/* This is set and cleared in c_parse. */
static struct c_parse_state *cpstate;
@@ -120,6 +146,8 @@ static void yyerror (const char *);
static int type_aggregate_p (struct type *);
+static void handle_qualified_field_name (qualified_name_token token);
+
using namespace expr;
%}
@@ -140,6 +168,7 @@ using namespace expr;
} typed_val_float;
struct type *tval;
struct stoken sval;
+ qualified_name_token qval;
struct typed_stoken tsval;
struct ttype tsym;
struct symtoken ssym;
@@ -160,7 +189,7 @@ using namespace expr;
static int parse_number (struct parser_state *par_state,
const char *, int, int, YYSTYPE *);
static struct stoken operator_stoken (const char *);
-static struct stoken typename_stoken (const char *);
+static qualified_name_token typename_stoken (const char *);
static void check_parameter_typelist (std::vector<struct type *> *);
#if defined(YYBISON) && YYBISON < 30800
@@ -171,7 +200,7 @@ static void c_print_token (FILE *file, int type, YYSTYPE value);
%type <voidval> exp exp1 type_exp start variable qualified_name lcurly function_method
%type <lval> rcurly
-%type <tval> type typebase scalar_type
+%type <tval> type typebase scalar_type tag_name_or_complete
%type <tvec> nonempty_typelist func_mod parameter_typelist
/* %type <bval> block */
@@ -202,7 +231,9 @@ static void c_print_token (FILE *file, int type, YYSTYPE value);
%token <voidval> COMPLETE
%token <tsym> TYPENAME
%token <theclass> CLASSNAME /* ObjC Class name */
-%type <sval> name field_name
+%type <sval> name
+%type <qval> qual_field_name field_name field_name_or_complete
+%type <qval> field_or_destructor
%type <svec> string_exp
%type <ssym> name_not_typename
%type <tsym> type_name
@@ -364,117 +395,73 @@ exp : ALIGNOF '(' type_exp ')' %prec UNARY
{ pstate->wrap<unop_alignof_operation> (); }
;
-exp : exp ARROW field_name
- {
- pstate->push_new<structop_ptr_operation>
- (pstate->pop (), copy_name ($3));
- }
- ;
-
-exp : exp ARROW field_name COMPLETE
+exp : exp ARROW
{
- structop_base_operation *op
- = new structop_ptr_operation (pstate->pop (),
- copy_name ($3));
- pstate->mark_struct_expression (op);
- pstate->push (operation_up (op));
+ cpstate->assume_classification = TYPE_CODE_VOID;
}
- ;
-
-exp : exp ARROW COMPLETE
+ field_name_or_complete
{
- structop_base_operation *op
- = new structop_ptr_operation (pstate->pop (), "");
- pstate->mark_struct_expression (op);
- pstate->push (operation_up (op));
- }
- ;
+ cpstate->assume_classification = TYPE_CODE_UNDEF;
-exp : exp ARROW '~' name
- {
- pstate->push_new<structop_ptr_operation>
- (pstate->pop (), "~" + copy_name ($4));
- }
- ;
-
-exp : exp ARROW '~' name COMPLETE
- {
- structop_base_operation *op
- = new structop_ptr_operation (pstate->pop (),
- "~" + copy_name ($4));
- pstate->mark_struct_expression (op);
- pstate->push (operation_up (op));
+ if ($4.prefix != nullptr)
+ {
+ handle_qualified_field_name ($4);
+ /* exp->type::name becomes exp->*(&type::name) */
+ /* Note: this doesn't work if name is a
+ static member! FIXME */
+ pstate->wrap<unop_addr_operation> ();
+ pstate->wrap2<structop_mptr_operation> ();
+ }
+ else
+ {
+ structop_base_operation *op
+ = new structop_ptr_operation (pstate->pop (),
+ copy_name ($4));
+ if ($4.complete)
+ pstate->mark_struct_expression (op);
+ pstate->push (operation_up (op));
+ }
}
;
-exp : exp ARROW qualified_name
- { /* exp->type::name becomes exp->*(&type::name) */
- /* Note: this doesn't work if name is a
- static member! FIXME */
- pstate->wrap<unop_addr_operation> ();
- pstate->wrap2<structop_mptr_operation> (); }
- ;
-
exp : exp ARROW_STAR exp
{ pstate->wrap2<structop_mptr_operation> (); }
;
-exp : exp '.' field_name
- {
- if (pstate->language ()->la_language
- == language_opencl)
- pstate->push_new<opencl_structop_operation>
- (pstate->pop (), copy_name ($3));
- else
- pstate->push_new<structop_operation>
- (pstate->pop (), copy_name ($3));
- }
- ;
-
-exp : exp '.' field_name COMPLETE
- {
- structop_base_operation *op
- = new structop_operation (pstate->pop (),
- copy_name ($3));
- pstate->mark_struct_expression (op);
- pstate->push (operation_up (op));
- }
- ;
-
-exp : exp '.' COMPLETE
+exp : exp '.'
{
- structop_base_operation *op
- = new structop_operation (pstate->pop (), "");
- pstate->mark_struct_expression (op);
- pstate->push (operation_up (op));
+ cpstate->assume_classification = TYPE_CODE_VOID;
}
- ;
-
-exp : exp '.' '~' name
+ field_name_or_complete
{
- pstate->push_new<structop_operation>
- (pstate->pop (), "~" + copy_name ($4));
- }
- ;
+ cpstate->assume_classification = TYPE_CODE_UNDEF;
-exp : exp '.' '~' name COMPLETE
- {
- structop_base_operation *op
- = new structop_operation (pstate->pop (),
- "~" + copy_name ($4));
- pstate->mark_struct_expression (op);
- pstate->push (operation_up (op));
+ if ($4.prefix != nullptr)
+ {
+ handle_qualified_field_name ($4);
+ /* exp.type::name becomes exp.*(&type::name) */
+ /* Note: this doesn't work if name is a
+ static member! FIXME */
+ pstate->wrap<unop_addr_operation> ();
+ pstate->wrap2<structop_member_operation> ();
+ }
+ else if (pstate->language ()->la_language
+ == language_opencl
+ && !$4.complete)
+ pstate->push_new<opencl_structop_operation>
+ (pstate->pop (), copy_name ($4));
+ else
+ {
+ structop_base_operation *op
+ = new structop_operation (pstate->pop (),
+ copy_name ($4));
+ if ($4.complete)
+ pstate->mark_struct_expression (op);
+ pstate->push (operation_up (op));
+ }
}
;
-exp : exp '.' qualified_name
- { /* exp.type::name becomes exp.*(&type::name) */
- /* Note: this doesn't work if name is a
- static member! FIXME */
- pstate->wrap<unop_addr_operation> ();
- pstate->wrap2<structop_member_operation> (); }
- ;
-
exp : exp DOT_STAR exp
{ pstate->wrap2<structop_member_operation> (); }
;
@@ -1261,12 +1248,12 @@ single_qualifier:
{ cpstate->type_stack.insert (tp_restrict); }
| '@' NAME
{
- cpstate->type_stack.insert (pstate,
+ cpstate->type_stack.insert (pstate->gdbarch (),
copy_name ($2.stoken).c_str ());
}
| '@' UNKNOWN_CPP_NAME
{
- cpstate->type_stack.insert (pstate,
+ cpstate->type_stack.insert (pstate->gdbarch (),
copy_name ($2.stoken).c_str ());
}
;
@@ -1316,15 +1303,13 @@ direct_abs_decl: '(' abs_decl ')'
| direct_abs_decl array_mod
{
cpstate->type_stack.push ($1);
- cpstate->type_stack.push ($2);
- cpstate->type_stack.push (tp_array);
+ cpstate->type_stack.push (tp_array, $2);
$$ = cpstate->type_stack.create ();
cpstate->type_stacks.emplace_back ($$);
}
| array_mod
{
- cpstate->type_stack.push ($1);
- cpstate->type_stack.push (tp_array);
+ cpstate->type_stack.push (tp_array, $1);
$$ = cpstate->type_stack.create ();
cpstate->type_stacks.emplace_back ($$);
}
@@ -1504,71 +1489,37 @@ typebase
{
$$ = init_complex_type (nullptr, $2);
}
- | STRUCT name
- { $$
- = lookup_struct (copy_name ($2).c_str (),
- pstate->expression_context_block);
- }
- | STRUCT COMPLETE
+ | STRUCT
{
- pstate->mark_completion_tag (TYPE_CODE_STRUCT,
- "", 0);
- $$ = NULL;
+ cpstate->assume_classification = TYPE_CODE_STRUCT;
}
- | STRUCT name COMPLETE
+ tag_name_or_complete
{
- pstate->mark_completion_tag (TYPE_CODE_STRUCT,
- $2.ptr, $2.length);
- $$ = NULL;
- }
- | CLASS name
- { $$ = lookup_struct
- (copy_name ($2).c_str (),
- pstate->expression_context_block);
+ $$ = $3;
}
- | CLASS COMPLETE
+ | CLASS
{
- pstate->mark_completion_tag (TYPE_CODE_STRUCT,
- "", 0);
- $$ = NULL;
+ cpstate->assume_classification = TYPE_CODE_STRUCT;
}
- | CLASS name COMPLETE
+ tag_name_or_complete
{
- pstate->mark_completion_tag (TYPE_CODE_STRUCT,
- $2.ptr, $2.length);
- $$ = NULL;
+ $$ = $3;
}
- | UNION name
- { $$
- = lookup_union (copy_name ($2).c_str (),
- pstate->expression_context_block);
- }
- | UNION COMPLETE
+ | ENUM
{
- pstate->mark_completion_tag (TYPE_CODE_UNION,
- "", 0);
- $$ = NULL;
+ cpstate->assume_classification = TYPE_CODE_ENUM;
}
- | UNION name COMPLETE
+ tag_name_or_complete
{
- pstate->mark_completion_tag (TYPE_CODE_UNION,
- $2.ptr, $2.length);
- $$ = NULL;
- }
- | ENUM name
- { $$ = lookup_enum (copy_name ($2).c_str (),
- pstate->expression_context_block);
+ $$ = $3;
}
- | ENUM COMPLETE
+ | UNION
{
- pstate->mark_completion_tag (TYPE_CODE_ENUM, "", 0);
- $$ = NULL;
+ cpstate->assume_classification = TYPE_CODE_UNION;
}
- | ENUM name COMPLETE
+ tag_name_or_complete
{
- pstate->mark_completion_tag (TYPE_CODE_ENUM, $2.ptr,
- $2.length);
- $$ = NULL;
+ $$ = $3;
}
/* It appears that this rule for templates is never
reduced; template recognition happens by lookahead
@@ -1793,13 +1744,66 @@ oper: OPERATOR NEW
}
;
+qual_field_name:
+ qual_field_name COLONCOLON name
+ {
+ $$.complete = false;
+ if ($1.prefix == nullptr)
+ $$.prefix = $1.name;
+ else
+ $$.prefix = obconcat (&cpstate->expansion_obstack,
+ $1.prefix, "::", $1.name, nullptr);
+ $$.name = obstack_strndup (&cpstate->expansion_obstack,
+ $3.ptr, $3.length);
+ }
+ | name
+ {
+ $$.complete = false;
+ $$.prefix = nullptr;
+ $$.name = obstack_strndup (&cpstate->expansion_obstack,
+ $1.ptr, $1.length);
+ }
+ ;
+
+field_or_destructor:
+ qual_field_name
+ | qual_field_name COLONCOLON '~' name
+ {
+ $$.complete = false;
+ if ($1.prefix == nullptr)
+ $$.prefix = $1.name;
+ else
+ $$.prefix = obconcat (&cpstate->expansion_obstack,
+ $1.prefix, "::", $1.name, nullptr);
+ char *name
+ = (char *) obstack_alloc (&cpstate->expansion_obstack,
+ $4.length + 2);
+ name[0] = '~';
+ memcpy (&name[1], $4.ptr, $4.length);
+ name[$4.length + 1] = '\0';
+ $$.name = name;
+ }
+ | '~' name
+ {
+ $$.complete = false;
+ $$.prefix = nullptr;
+ char *name
+ = (char *) obstack_alloc (&cpstate->expansion_obstack,
+ $2.length + 2);
+ name[0] = '~';
+ memcpy (&name[1], $2.ptr, $2.length);
+ name[$2.length + 1] = '\0';
+ $$.name = name;
+ }
+ ;
+
/* This rule exists in order to allow some tokens that would not normally
match the 'name' rule to appear as fields within a struct. The example
that initially motivated this was the RISC-V target which models the
floating point registers as a union with fields called 'float' and
'double'. */
field_name
- : name
+ : field_or_destructor
| DOUBLE_KEYWORD { $$ = typename_stoken ("double"); }
| FLOAT_KEYWORD { $$ = typename_stoken ("float"); }
| INT_KEYWORD { $$ = typename_stoken ("int"); }
@@ -1809,6 +1813,61 @@ field_name
| UNSIGNED { $$ = typename_stoken ("unsigned"); }
;
+field_name_or_complete
+ : field_name
+ | field_name COMPLETE
+ {
+ $$ = $1;
+ $$.complete = true;
+ }
+ | COMPLETE
+ {
+ $$ = typename_stoken ("");
+ $$.complete = true;
+ }
+ ;
+
+/* This rule is used when the preceding token is a keyword that takes
+ a tag name (e.g., "struct"). The "caller" should disable name
+ lookup, see c_parse_state::assume_classification. */
+tag_name_or_complete
+ : NAME
+ {
+ switch (cpstate->assume_classification)
+ {
+ case TYPE_CODE_STRUCT:
+ $$ = lookup_struct (copy_name ($1.stoken).c_str (),
+ pstate->expression_context_block);
+ break;
+ case TYPE_CODE_ENUM:
+ $$ = lookup_enum (copy_name ($1.stoken).c_str (),
+ pstate->expression_context_block);
+ break;
+ case TYPE_CODE_UNION:
+ $$ = lookup_union (copy_name ($1.stoken).c_str (),
+ pstate->expression_context_block);
+ break;
+ default:
+ gdb_assert_not_reached ();
+ }
+ cpstate->assume_classification = TYPE_CODE_UNDEF;
+ }
+ | COMPLETE
+ {
+ pstate->mark_completion_tag (cpstate->assume_classification,
+ "", 0);
+ cpstate->assume_classification = TYPE_CODE_UNDEF;
+ $$ = nullptr;
+ }
+ | NAME COMPLETE
+ {
+ pstate->mark_completion_tag (cpstate->assume_classification,
+ $1.stoken.ptr, $1.stoken.length);
+ cpstate->assume_classification = TYPE_CODE_UNDEF;
+ $$ = nullptr;
+ }
+ ;
+
name : NAME { $$ = $1.stoken; }
| BLOCKNAME { $$ = $1.stoken; }
| TYPENAME { $$ = $1.stoken; }
@@ -1866,12 +1925,10 @@ operator_stoken (const char *op)
/* Returns a stoken of the type named TYPE. */
-static struct stoken
+static qualified_name_token
typename_stoken (const char *type)
{
- struct stoken st = { type, 0 };
- st.length = strlen (type);
- return st;
+ return qualified_name_token { nullptr, type, false };
};
/* Return true if the type is aggregate-like. */
@@ -1969,13 +2026,13 @@ parse_number (struct parser_state *par_state,
len -= 2;
}
/* Handle suffixes: 'f' for float, 'l' for long double. */
- else if (len >= 1 && TOLOWER (buf[len - 1]) == 'f')
+ else if (len >= 1 && c_tolower (buf[len - 1]) == 'f')
{
putithere->typed_val_float.type
= parse_type (par_state)->builtin_float;
len -= 1;
}
- else if (len >= 1 && TOLOWER (buf[len - 1]) == 'l')
+ else if (len >= 1 && c_tolower (buf[len - 1]) == 'l')
{
putithere->typed_val_float.type
= parse_type (par_state)->builtin_long_double;
@@ -2181,9 +2238,9 @@ c_parse_escape (const char **ptr, struct obstack *output)
if (output)
obstack_grow_str (output, "\\x");
++tokptr;
- if (!ISXDIGIT (*tokptr))
+ if (!c_isxdigit (*tokptr))
error (_("\\x escape without a following hex digit"));
- while (ISXDIGIT (*tokptr))
+ while (c_isxdigit (*tokptr))
{
if (output)
obstack_1grow (output, *tokptr);
@@ -2206,7 +2263,7 @@ c_parse_escape (const char **ptr, struct obstack *output)
if (output)
obstack_grow_str (output, "\\");
for (i = 0;
- i < 3 && ISDIGIT (*tokptr) && *tokptr != '8' && *tokptr != '9';
+ i < 3 && c_isdigit (*tokptr) && *tokptr != '8' && *tokptr != '9';
++i)
{
if (output)
@@ -2231,9 +2288,9 @@ c_parse_escape (const char **ptr, struct obstack *output)
obstack_1grow (output, *tokptr);
}
++tokptr;
- if (!ISXDIGIT (*tokptr))
+ if (!c_isxdigit (*tokptr))
error (_("\\%c escape without a following hex digit"), c);
- for (i = 0; i < len && ISXDIGIT (*tokptr); ++i)
+ for (i = 0; i < len && c_isxdigit (*tokptr); ++i)
{
if (output)
obstack_1grow (output, *tokptr);
@@ -2818,7 +2875,7 @@ lex_one_token (struct parser_state *par_state, bool *is_quoted_name)
size_t len = strlen ("selector");
if (strncmp (p, "selector", len) == 0
- && (p[len] == '\0' || ISSPACE (p[len])))
+ && (p[len] == '\0' || c_isspace (p[len])))
{
pstate->lexptr = p + len;
return SELECTOR;
@@ -2827,7 +2884,7 @@ lex_one_token (struct parser_state *par_state, bool *is_quoted_name)
goto parse_string;
}
- while (ISSPACE (*p))
+ while (c_isspace (*p))
p++;
size_t len = strlen ("entry");
if (strncmp (p, "entry", len) == 0 && !c_ident_is_alnum (p[len])
@@ -3046,7 +3103,7 @@ classify_name (struct parser_state *par_state, const struct block *block,
par_state->language ()->name_of_this ()
? &is_a_field_of_this : NULL);
- if (bsym.symbol && bsym.symbol->aclass () == LOC_BLOCK)
+ if (bsym.symbol && bsym.symbol->loc_class () == LOC_BLOCK)
{
yylval.ssym.sym = bsym;
yylval.ssym.is_a_field_of_this = is_a_field_of_this.type != NULL;
@@ -3094,7 +3151,7 @@ classify_name (struct parser_state *par_state, const struct block *block,
}
}
- if (bsym.symbol && bsym.symbol->aclass () == LOC_TYPEDEF)
+ if (bsym.symbol && bsym.symbol->loc_class () == LOC_TYPEDEF)
{
yylval.tsym.type = bsym.symbol->type ();
return TYPENAME;
@@ -3189,7 +3246,7 @@ classify_inner_name (struct parser_state *par_state,
return ERROR;
}
- switch (yylval.ssym.sym.symbol->aclass ())
+ switch (yylval.ssym.sym.symbol->loc_class ())
{
case LOC_BLOCK:
case LOC_LABEL:
@@ -3218,6 +3275,48 @@ classify_inner_name (struct parser_state *par_state,
internal_error (_("not reached"));
}
+/* A helper function for the specific case of a qualified field name,
+ like "obj->type1::type2::field". This takes the type prefix
+ ("type1::type2" in the example) and finds the corresponding type.
+ It will either throw an exception, or push a scope_operation on the
+ operation stack. */
+static void
+handle_qualified_field_name (qualified_name_token token)
+{
+ struct type *type = nullptr;
+ std::string accum;
+ for (const auto name : split_name (token.prefix, split_style::CXX))
+ {
+ std::string current (name);
+
+ if (accum.empty ())
+ accum = name;
+ else
+ accum = accum + "::" + current;
+
+ yylval.ssym.stoken.ptr = current.c_str ();
+ yylval.ssym.stoken.length = current.size ();
+ yylval.ssym.sym = {};
+ yylval.ssym.is_a_field_of_this = 0;
+
+ int kind = classify_inner_name (pstate,
+ pstate->expression_context_block,
+ type);
+ if (kind != TYPENAME)
+ error (_("could not find type '%s'"), accum.c_str ());
+
+ type = yylval.tsym.type;
+ }
+
+ type = check_typedef (type);
+ if (!type_aggregate_p (type))
+ error (_("`%s' is not defined as an aggregate type."),
+ TYPE_SAFE_NAME (type));
+ if (token.name[0] == '~')
+ destructor_name_p (token.name, type);
+ pstate->push_new<scope_operation> (type, token.name);
+}
+
/* The outer level of a two-level lexer. This calls the inner lexer
to return tokens. It then either returns these tokens, or
aggregates them into a larger token. This lets us work around a
@@ -3250,12 +3349,16 @@ yylex (void)
subsequent code is C++-only; but also depends on seeing a "::" or
name-like token. */
current.token = lex_one_token (pstate, &is_quoted_name);
- if (current.token == NAME)
+ if (cpstate->assume_classification == TYPE_CODE_UNDEF
+ && current.token == NAME)
current.token = classify_name (pstate, pstate->expression_context_block,
is_quoted_name, last_lex_was_structop);
if (pstate->language ()->la_language != language_cplus
|| (current.token != TYPENAME && current.token != COLONCOLON
- && current.token != FILENAME))
+ && current.token != FILENAME
+ && (cpstate->assume_classification == TYPE_CODE_UNDEF
+ || current.token != NAME))
+ || cpstate->assume_classification == TYPE_CODE_VOID)
return current.token;
/* Read any sequence of alternating "::" and name-like tokens into
@@ -3296,7 +3399,8 @@ yylex (void)
search_block = NULL;
else
{
- gdb_assert (current.token == TYPENAME);
+ gdb_assert (current.token == TYPENAME
+ || cpstate->assume_classification != TYPE_CODE_UNDEF);
search_block = pstate->expression_context_block;
obstack_grow (&name_obstack, current.value.sval.ptr,
current.value.sval.length);
@@ -3319,8 +3423,11 @@ yylex (void)
int classification;
yylval = next.value;
- classification = classify_inner_name (pstate, search_block,
- context_type);
+ if (cpstate->assume_classification != TYPE_CODE_UNDEF)
+ classification = NAME;
+ else
+ classification = classify_inner_name (pstate, search_block,
+ context_type);
/* We keep going until we either run out of names, or until
we have a qualified name which is not a type. */
if (classification != TYPENAME && classification != NAME)
@@ -3330,7 +3437,7 @@ yylex (void)
checkpoint = next_to_examine;
/* Update the partial name we are constructing. */
- if (context_type != NULL)
+ if (next_to_examine > 1)
{
/* We don't want to put a leading "::" into the name. */
obstack_grow_str (&name_obstack, "::");
@@ -3345,7 +3452,8 @@ yylex (void)
last_was_coloncolon = 0;
- if (classification == NAME)
+ if (cpstate->assume_classification == TYPE_CODE_UNDEF
+ && classification == NAME)
break;
context_type = yylval.tsym.type;
diff --git a/gdb/c-lang.c b/gdb/c-lang.c
index 9fccc1f..e8e66a6 100644
--- a/gdb/c-lang.c
+++ b/gdb/c-lang.c
@@ -33,7 +33,6 @@
#include "cp-abi.h"
#include "cp-support.h"
#include "gdbsupport/gdb_obstack.h"
-#include <ctype.h>
#include "gdbcore.h"
#include "gdbarch.h"
#include "c-exp.h"
@@ -408,7 +407,7 @@ convert_ucn (const char *p, const char *limit, const char *dest_charset,
gdb_byte data[4];
int i;
- for (i = 0; i < length && p < limit && ISXDIGIT (*p); ++i, ++p)
+ for (i = 0; i < length && p < limit && c_isxdigit (*p); ++i, ++p)
result = (result << 4) + fromhex (*p);
for (i = 3; i >= 0; --i)
@@ -450,7 +449,7 @@ convert_octal (struct type *type, const char *p,
unsigned long value = 0;
for (i = 0;
- i < 3 && p < limit && ISDIGIT (*p) && *p != '8' && *p != '9';
+ i < 3 && p < limit && c_isdigit (*p) && *p != '8' && *p != '9';
++i)
{
value = 8 * value + fromhex (*p);
@@ -473,7 +472,7 @@ convert_hex (struct type *type, const char *p,
{
unsigned long value = 0;
- while (p < limit && ISXDIGIT (*p))
+ while (p < limit && c_isxdigit (*p))
{
value = 16 * value + fromhex (*p);
++p;
@@ -518,7 +517,7 @@ convert_escape (struct type *type, const char *dest_charset,
case 'x':
advance ();
- if (!ISXDIGIT (*p))
+ if (!c_isxdigit (*p))
error (_("\\x used with no following hex digits."));
p = convert_hex (type, p, limit, output);
break;
@@ -540,7 +539,7 @@ convert_escape (struct type *type, const char *dest_charset,
int length = *p == 'u' ? 4 : 8;
advance ();
- if (!ISXDIGIT (*p))
+ if (!c_isxdigit (*p))
error (_("\\u used with no following hex digits"));
p = convert_ucn (p, limit, dest_charset, output, length);
}
diff --git a/gdb/c-support.h b/gdb/c-support.h
index 47f4066..5fd1118 100644
--- a/gdb/c-support.h
+++ b/gdb/c-support.h
@@ -19,9 +19,7 @@
#ifndef GDB_C_SUPPORT_H
#define GDB_C_SUPPORT_H
-#include "safe-ctype.h"
-
-/* Like ISALPHA, but also returns true for the union of all UTF-8
+/* Like isalpha, but also returns true for the union of all UTF-8
multi-byte sequence bytes and non-ASCII characters in
extended-ASCII charsets (e.g., Latin1). I.e., returns true if the
high bit is set. Note that not all UTF-8 ranges are allowed in C++
@@ -32,15 +30,15 @@
static inline bool
c_ident_is_alpha (unsigned char ch)
{
- return ISALPHA (ch) || ch >= 0x80;
+ return c_isalpha (ch) || ch >= 0x80;
}
-/* Similarly, but Like ISALNUM. */
+/* Similarly, but Like isalnum. */
static inline bool
c_ident_is_alnum (unsigned char ch)
{
- return ISALNUM (ch) || ch >= 0x80;
+ return c_isalnum (ch) || ch >= 0x80;
}
#endif /* GDB_C_SUPPORT_H */
diff --git a/gdb/c-typeprint.c b/gdb/c-typeprint.c
index df7bdbe..be19987 100644
--- a/gdb/c-typeprint.c
+++ b/gdb/c-typeprint.c
@@ -251,8 +251,8 @@ cp_type_print_method_args (struct type *mtype, const char *prefix,
enum language language,
const struct type_print_options *flags)
{
- struct field *args = mtype->fields ();
- int nargs = mtype->num_fields ();
+ auto args = mtype->fields ();
+ int nargs = args.size ();
int varargs = mtype->has_varargs ();
int i;
@@ -515,16 +515,15 @@ c_type_print_args (struct type *type, struct ui_file *stream,
int linkage_name, enum language language,
const struct type_print_options *flags)
{
- int i;
int printed_any = 0;
gdb_printf (stream, "(");
- for (i = 0; i < type->num_fields (); i++)
+ for (const auto &field : type->fields ())
{
struct type *param_type;
- if (type->field (i).is_artificial () && linkage_name)
+ if (field.is_artificial () && linkage_name)
continue;
if (printed_any)
@@ -533,7 +532,7 @@ c_type_print_args (struct type *type, struct ui_file *stream,
stream->wrap_here (4);
}
- param_type = type->field (i).type ();
+ param_type = field.type ();
if (language == language_cplus && linkage_name)
{
@@ -815,7 +814,7 @@ c_type_print_template_args (const struct type_print_options *flags,
{
struct symbol *sym = TYPE_TEMPLATE_ARGUMENT (type, i);
- if (sym->aclass () != LOC_TYPEDEF)
+ if (sym->loc_class () != LOC_TYPEDEF)
continue;
if (first)
diff --git a/gdb/charset.c b/gdb/charset.c
index 2593625..fe725ef 100644
--- a/gdb/charset.c
+++ b/gdb/charset.c
@@ -24,7 +24,6 @@
#include "charset-list.h"
#include "gdbsupport/environ.h"
#include "arch-utils.h"
-#include <ctype.h>
#ifdef USE_WIN32API
#include <windows.h>
diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c
index a15a04a..d353654 100644
--- a/gdb/cli/cli-cmds.c
+++ b/gdb/cli/cli-cmds.c
@@ -301,8 +301,8 @@ with_command_completer_1 (const char *set_cmd_prefix,
command as if it was a "set" command. */
if (delim == text
|| delim == nullptr
- || !isspace (delim[-1])
- || !(isspace (delim[2]) || delim[2] == '\0'))
+ || !c_isspace (delim[-1])
+ || !(c_isspace (delim[2]) || delim[2] == '\0'))
{
std::string new_text = std::string (set_cmd_prefix) + text;
tracker.advance_custom_word_point_by (-(int) strlen (set_cmd_prefix));
@@ -785,14 +785,14 @@ source_command (const char *args, int from_tty)
if (args[0] != '-')
break;
- if (args[1] == 'v' && isspace (args[2]))
+ if (args[1] == 'v' && c_isspace (args[2]))
{
source_verbose = 1;
/* Skip passed -v. */
args = &args[3];
}
- else if (args[1] == 's' && isspace (args[2]))
+ else if (args[1] == 's' && c_isspace (args[2]))
{
search_path = 1;
@@ -1184,7 +1184,7 @@ pipe_command_completer (struct cmd_list_element *ignore,
delimiter = opts.delimiter.c_str ();
/* Check if we're past option values already. */
- if (text > org_text && !isspace (text[-1]))
+ if (text > org_text && !c_isspace (text[-1]))
return;
const char *delim = strstr (text, delimiter);
@@ -1669,7 +1669,7 @@ disassemble_command (const char *arg, int from_tty)
if (*p == '\0')
error (_("Missing modifier."));
- while (*p && ! isspace (*p))
+ while (*p && ! c_isspace (*p))
{
switch (*p++)
{
@@ -1938,8 +1938,8 @@ alias_command_completer (struct cmd_list_element *ignore,
typing COMMAND DEFAULT-ARGS... */
if (delim != text
&& delim != nullptr
- && isspace (delim[-1])
- && (isspace (delim[1]) || delim[1] == '\0'))
+ && c_isspace (delim[-1])
+ && (c_isspace (delim[1]) || delim[1] == '\0'))
{
std::string new_text = std::string (delim + 1);
diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c
index 48a3466..2b30a6e 100644
--- a/gdb/cli/cli-decode.c
+++ b/gdb/cli/cli-decode.c
@@ -16,7 +16,6 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "symtab.h"
-#include <ctype.h>
#include "gdbsupport/gdb_regex.h"
#include "completer.h"
#include "ui-out.h"
@@ -2053,8 +2052,8 @@ print_doc_line (struct ui_file *stream, const char *str,
if (for_value_prefix)
{
char &c = (*line_buffer)[0];
- if (islower (c))
- c = toupper (c);
+ if (c_islower (c))
+ c = c_toupper (c);
if (line_buffer->back () == '.')
line_buffer->pop_back ();
}
@@ -2227,7 +2226,7 @@ valid_cmd_char_p (int c)
/* Alas "42" is a legitimate user-defined command.
In the interests of not breaking anything we preserve that. */
- return isalnum (c) || c == '-' || c == '_' || c == '.';
+ return c_isalnum (c) || c == '-' || c == '_' || c == '.';
}
/* See command.h. */
@@ -2491,7 +2490,7 @@ lookup_cmd (const char **line, struct cmd_list_element *list,
}
else
{
- if (c->type == set_cmd && **line != '\0' && !isspace (**line))
+ if (c->type == set_cmd && **line != '\0' && !c_isspace (**line))
error (_("Argument must be preceded by space."));
/* We've got something. It may still not be what the caller
diff --git a/gdb/cli/cli-dump.c b/gdb/cli/cli-dump.c
index afbbea6..3cdd9a3 100644
--- a/gdb/cli/cli-dump.c
+++ b/gdb/cli/cli-dump.c
@@ -23,7 +23,6 @@
#include "cli/cli-cmds.h"
#include "value.h"
#include "completer.h"
-#include <ctype.h>
#include "target.h"
#include "readline/tilde.h"
#include "gdbcore.h"
diff --git a/gdb/cli/cli-option.c b/gdb/cli/cli-option.c
index a30261e..5da8c73 100644
--- a/gdb/cli/cli-option.c
+++ b/gdb/cli/cli-option.c
@@ -227,7 +227,7 @@ parse_option (gdb::array_view<const option_def_group> options_group,
match = &o;
match_ctx = grp.ctx;
- if ((isspace (arg[len]) || arg[len] == '\0')
+ if ((c_isspace (arg[len]) || arg[len] == '\0')
&& strlen (o.name) == len)
break; /* Exact match. */
}
@@ -635,7 +635,7 @@ complete_options (completion_tracker &tracker,
if (ov
&& !tracker.have_completions ()
&& **args == '\0'
- && *args > text && !isspace ((*args)[-1]))
+ && *args > text && !c_isspace ((*args)[-1]))
{
tracker.advance_custom_word_point_by
(*args - text);
diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c
index 3ea80a5..048d391 100644
--- a/gdb/cli/cli-script.c
+++ b/gdb/cli/cli-script.c
@@ -19,7 +19,6 @@
#include "event-top.h"
#include "value.h"
-#include <ctype.h>
#include "ui-out.h"
#include "top.h"
@@ -829,7 +828,7 @@ locate_arg (const char *p)
while ((p = strchr (p, '$')))
{
if (startswith (p, "$arg")
- && (isdigit (p[4]) || p[4] == 'c'))
+ && (c_isdigit (p[4]) || p[4] == 'c'))
return p;
p++;
}
@@ -1324,9 +1323,9 @@ validate_comname (const char **comname)
/* Find the last word of the argument. */
p = *comname + strlen (*comname);
- while (p > *comname && isspace (p[-1]))
+ while (p > *comname && c_isspace (p[-1]))
p--;
- while (p > *comname && !isspace (p[-1]))
+ while (p > *comname && !c_isspace (p[-1]))
p--;
last_word = p;
diff --git a/gdb/cli/cli-setshow.c b/gdb/cli/cli-setshow.c
index 4d4695f..8528ac5 100644
--- a/gdb/cli/cli-setshow.c
+++ b/gdb/cli/cli-setshow.c
@@ -17,7 +17,6 @@
#include "readline/tilde.h"
#include "value.h"
-#include <ctype.h>
#include "arch-utils.h"
#include "observable.h"
#include "interps.h"
@@ -49,7 +48,7 @@ parse_auto_binary_operation (const char *arg)
{
int length = strlen (arg);
- while (isspace (arg[length - 1]) && length > 0)
+ while (c_isspace (arg[length - 1]) && length > 0)
length--;
/* Note that "o" is ambiguous. */
diff --git a/gdb/cli/cli-utils.c b/gdb/cli/cli-utils.c
index 23706e0..d0ca594 100644
--- a/gdb/cli/cli-utils.c
+++ b/gdb/cli/cli-utils.c
@@ -20,7 +20,6 @@
#include "cli/cli-utils.h"
#include "value.h"
-#include <ctype.h>
/* See documentation in cli-utils.h. */
@@ -46,7 +45,7 @@ get_ulongest (const char **pp, int trailer)
/* Internal variable. Make a copy of the name, so we can
null-terminate it to pass to lookup_internalvar(). */
const char *start = ++p;
- while (isalnum (*p) || *p == '_')
+ while (c_isalnum (*p) || *p == '_')
p++;
std::string varname (start, p - start);
if (!get_internalvar_integer (lookup_internalvar (varname.c_str ()),
@@ -67,7 +66,7 @@ get_ulongest (const char **pp, int trailer)
p = end;
}
- if (!(isspace (*p) || *p == '\0' || *p == trailer))
+ if (!(c_isspace (*p) || *p == '\0' || *p == trailer))
error (_("Trailing junk at: %s"), p);
p = skip_spaces (p);
*pp = p;
@@ -111,7 +110,7 @@ get_number_trailer (const char **pp, int trailer)
const char *start = ++p;
LONGEST longest_val;
- while (isalnum (*p) || *p == '_')
+ while (c_isalnum (*p) || *p == '_')
p++;
varname = (char *) alloca (p - start + 1);
strncpy (varname, start, p - start);
@@ -136,7 +135,7 @@ get_number_trailer (const char **pp, int trailer)
/* There is no number here. (e.g. "cond a == b"). */
{
/* Skip non-numeric token. */
- while (*p && !isspace((int) *p))
+ while (*p && !c_isspace((int) *p))
++p;
/* Return zero, which caller must interpret as error. */
retval = 0;
@@ -144,10 +143,10 @@ get_number_trailer (const char **pp, int trailer)
else
retval = atoi (p1);
}
- if (!(isspace (*p) || *p == '\0' || *p == trailer))
+ if (!(c_isspace (*p) || *p == '\0' || *p == trailer))
{
/* Trailing junk: return 0 and let caller print error msg. */
- while (!(isspace (*p) || *p == '\0' || *p == trailer))
+ while (!(c_isspace (*p) || *p == '\0' || *p == trailer))
++p;
retval = 0;
}
@@ -262,8 +261,8 @@ number_or_range_parser::get_number ()
option rather than an incomplete range, so check for end of
string as well. */
if (m_cur_tok[0] == '-'
- && !(isspace (m_cur_tok[-1])
- && (isalpha (m_cur_tok[1])
+ && !(c_isspace (m_cur_tok[-1])
+ && (c_isalpha (m_cur_tok[1])
|| m_cur_tok[1] == '-'
|| m_cur_tok[1] == '\0')))
{
@@ -293,7 +292,7 @@ number_or_range_parser::get_number ()
}
else
{
- if (isdigit (*(m_cur_tok + 1)))
+ if (c_isdigit (*(m_cur_tok + 1)))
error (_("negative value"));
if (*(m_cur_tok + 1) == '$')
{
@@ -330,9 +329,9 @@ number_or_range_parser::finished () const
integer, convenience var or negative convenience var. */
return (m_cur_tok == NULL || *m_cur_tok == '\0'
|| (!m_in_range
- && !(isdigit (*m_cur_tok) || *m_cur_tok == '$')
+ && !(c_isdigit (*m_cur_tok) || *m_cur_tok == '$')
&& !(*m_cur_tok == '-'
- && (isdigit (m_cur_tok[1]) || m_cur_tok[1] == '$'))));
+ && (c_isdigit (m_cur_tok[1]) || m_cur_tok[1] == '$'))));
}
/* Accept a number and a string-form list of numbers such as is
@@ -370,7 +369,7 @@ number_is_in_list (const char *list, int number)
const char *
remove_trailing_whitespace (const char *start, const char *s)
{
- while (s > start && isspace (*(s - 1)))
+ while (s > start && c_isspace (*(s - 1)))
--s;
return s;
@@ -420,7 +419,7 @@ int
check_for_argument (const char **str, const char *arg, int arg_len)
{
if (strncmp (*str, arg, arg_len) == 0
- && ((*str)[arg_len] == '\0' || isspace ((*str)[arg_len])))
+ && ((*str)[arg_len] == '\0' || c_isspace ((*str)[arg_len])))
{
*str += arg_len;
*str = skip_spaces (*str);
diff --git a/gdb/coff-pe-read.c b/gdb/coff-pe-read.c
index 0061007..9255555 100644
--- a/gdb/coff-pe-read.c
+++ b/gdb/coff-pe-read.c
@@ -35,7 +35,6 @@
#include "gdbsupport/common-utils.h"
#include "coff/internal.h"
-#include <ctype.h>
/* Internal section information */
@@ -189,7 +188,7 @@ add_pe_forwarded_sym (minimal_symbol_reader &reader,
int i;
for (i = 0; i < forward_dll_name_len; i++)
- forward_qualified_name[i] = tolower (forward_qualified_name[i]);
+ forward_qualified_name[i] = c_tolower (forward_qualified_name[i]);
msymbol = lookup_minimal_symbol (current_program_space,
forward_qualified_name.c_str ());
}
diff --git a/gdb/coffread.c b/gdb/coffread.c
index db18c43..44e761a 100644
--- a/gdb/coffread.c
+++ b/gdb/coffread.c
@@ -25,7 +25,6 @@
#include "bfd.h"
#include "gdbsupport/gdb_obstack.h"
-#include <ctype.h>
#include "coff/internal.h"
#include "libcoff.h"
@@ -336,7 +335,7 @@ coff_locate_sections (bfd *abfd, asection *sectp, void *csip)
/* We can have multiple .stab sections if linked with
--split-by-reloc. */
for (s = name + sizeof ".stab" - 1; *s != '\0'; s++)
- if (!isdigit (*s))
+ if (!c_isdigit (*s))
break;
if (*s == '\0')
csi->stabsects->push_back (sectp);
@@ -525,9 +524,9 @@ is_import_fixup_symbol (struct coff_symbol *cs,
/* The name must start with "__fu<digits>__". */
if (!startswith (cs->c_name, "__fu"))
return 0;
- if (! isdigit (cs->c_name[4]))
+ if (! c_isdigit (cs->c_name[4]))
return 0;
- for (i = 5; cs->c_name[i] != '\0' && isdigit (cs->c_name[i]); i++)
+ for (i = 5; cs->c_name[i] != '\0' && c_isdigit (cs->c_name[i]); i++)
/* Nothing, just incrementing index past all digits. */;
if (cs->c_name[i] != '_' || cs->c_name[i + 1] != '_')
return 0;
@@ -1567,7 +1566,7 @@ patch_opaque_types (struct symtab *s)
Remove syms from the chain when their types are stored,
but search the whole chain, as there may be several syms
from different files with the same name. */
- if (real_sym->aclass () == LOC_TYPEDEF
+ if (real_sym->loc_class () == LOC_TYPEDEF
&& real_sym->domain () == TYPE_DOMAIN
&& real_sym->type ()->code () == TYPE_CODE_PTR
&& real_sym->type ()->target_type ()->length () != 0)
@@ -1614,7 +1613,7 @@ static const struct symbol_register_ops coff_register_funcs = {
coff_reg_to_regnum
};
-/* The "aclass" index for computed COFF symbols. */
+/* The "loc_class" index for computed COFF symbols. */
static int coff_register_index;
@@ -1646,7 +1645,7 @@ process_coff_symbol (struct coff_symbol *cs,
(lookup_function_type (decode_function_type (cs, cs->c_type,
aux, objfile)));
- sym->set_aclass_index (LOC_BLOCK);
+ sym->set_loc_class_index (LOC_BLOCK);
if (cs->c_sclass == C_STAT || cs->c_sclass == C_THUMBSTAT
|| cs->c_sclass == C_THUMBSTATFUNC)
add_symbol_to_list (sym, get_file_symbols ());
@@ -1663,14 +1662,14 @@ process_coff_symbol (struct coff_symbol *cs,
break;
case C_AUTO:
- sym->set_aclass_index (LOC_LOCAL);
+ sym->set_loc_class_index (LOC_LOCAL);
add_symbol_to_list (sym, get_local_symbols ());
break;
case C_THUMBEXT:
case C_THUMBEXTFUNC:
case C_EXT:
- sym->set_aclass_index (LOC_STATIC);
+ sym->set_loc_class_index (LOC_STATIC);
sym->set_value_address ((CORE_ADDR) cs->c_value
+ objfile->section_offsets[SECT_OFF_TEXT (objfile)]);
add_symbol_to_list (sym, get_global_symbols ());
@@ -1679,7 +1678,7 @@ process_coff_symbol (struct coff_symbol *cs,
case C_THUMBSTAT:
case C_THUMBSTATFUNC:
case C_STAT:
- sym->set_aclass_index (LOC_STATIC);
+ sym->set_loc_class_index (LOC_STATIC);
sym->set_value_address ((CORE_ADDR) cs->c_value
+ objfile->section_offsets[SECT_OFF_TEXT (objfile)]);
if (within_function)
@@ -1698,7 +1697,7 @@ process_coff_symbol (struct coff_symbol *cs,
case C_GLBLREG:
#endif
case C_REG:
- sym->set_aclass_index (coff_register_index);
+ sym->set_loc_class_index (coff_register_index);
sym->set_value_longest (cs->c_value);
add_symbol_to_list (sym, get_local_symbols ());
break;
@@ -1708,20 +1707,20 @@ process_coff_symbol (struct coff_symbol *cs,
break;
case C_ARG:
- sym->set_aclass_index (LOC_ARG);
+ sym->set_loc_class_index (LOC_ARG);
sym->set_is_argument (1);
add_symbol_to_list (sym, get_local_symbols ());
break;
case C_REGPARM:
- sym->set_aclass_index (coff_register_index);
+ sym->set_loc_class_index (coff_register_index);
sym->set_is_argument (1);
sym->set_value_longest (cs->c_value);
add_symbol_to_list (sym, get_local_symbols ());
break;
case C_TPDEF:
- sym->set_aclass_index (LOC_TYPEDEF);
+ sym->set_loc_class_index (LOC_TYPEDEF);
sym->set_domain (TYPE_DOMAIN);
/* If type has no name, give it one. */
@@ -1776,7 +1775,7 @@ process_coff_symbol (struct coff_symbol *cs,
case C_STRTAG:
case C_UNTAG:
case C_ENTAG:
- sym->set_aclass_index (LOC_TYPEDEF);
+ sym->set_loc_class_index (LOC_TYPEDEF);
sym->set_domain (STRUCT_DOMAIN);
/* Some compilers try to be helpful by inventing "fake"
@@ -2165,7 +2164,7 @@ coff_read_enum_type (int index, int length, int lastsym,
name = obstack_strdup (&objfile->objfile_obstack, name);
sym->set_linkage_name (name);
- sym->set_aclass_index (LOC_CONST);
+ sym->set_loc_class_index (LOC_CONST);
sym->set_domain (VAR_DOMAIN);
sym->set_value_longest (ms->c_value);
add_symbol_to_list (sym, symlist);
diff --git a/gdb/compile/compile-c-symbols.c b/gdb/compile/compile-c-symbols.c
index b31592f..6578977 100644
--- a/gdb/compile/compile-c-symbols.c
+++ b/gdb/compile/compile-c-symbols.c
@@ -61,7 +61,7 @@ convert_one_symbol (compile_c_instance *context,
context->error_symbol_once (sym.symbol);
- if (sym.symbol->aclass () == LOC_LABEL)
+ if (sym.symbol->loc_class () == LOC_LABEL)
sym_type = 0;
else
sym_type = context->convert_type (sym.symbol->type ());
@@ -79,7 +79,7 @@ convert_one_symbol (compile_c_instance *context,
CORE_ADDR addr = 0;
gdb::unique_xmalloc_ptr<char> symbol_name;
- switch (sym.symbol->aclass ())
+ switch (sym.symbol->loc_class ())
{
case LOC_TYPEDEF:
kind = GCC_C_SYMBOL_TYPEDEF;
@@ -536,7 +536,7 @@ generate_c_for_for_one_variable (compile_instance *compiler,
}
else
{
- switch (sym->aclass ())
+ switch (sym->loc_class ())
{
case LOC_REGISTER:
case LOC_ARG:
diff --git a/gdb/compile/compile-cplus-symbols.c b/gdb/compile/compile-cplus-symbols.c
index b03c4b9..96ebd84 100644
--- a/gdb/compile/compile-cplus-symbols.c
+++ b/gdb/compile/compile-cplus-symbols.c
@@ -53,7 +53,7 @@ convert_one_symbol (compile_cplus_instance *instance,
instance->error_symbol_once (sym.symbol);
- if (sym.symbol->aclass () == LOC_LABEL)
+ if (sym.symbol->loc_class () == LOC_LABEL)
sym_type = 0;
else
sym_type = instance->convert_type (sym.symbol->type ());
@@ -70,7 +70,7 @@ convert_one_symbol (compile_cplus_instance *instance,
std::string name;
gdb::unique_xmalloc_ptr<char> symbol_name;
- switch (sym.symbol->aclass ())
+ switch (sym.symbol->loc_class ())
{
case LOC_TYPEDEF:
if (sym.symbol->type ()->code () == TYPE_CODE_TYPEDEF)
diff --git a/gdb/completer.c b/gdb/completer.c
index deecbc2..b919b4c 100644
--- a/gdb/completer.c
+++ b/gdb/completer.c
@@ -3006,7 +3006,7 @@ gdb_printable_part (char *pathname)
temp = strrchr (pathname, '/');
#if defined (__MSDOS__)
- if (temp == 0 && ISALPHA ((unsigned char)pathname[0]) && pathname[1] == ':')
+ if (temp == 0 && c_isalpha (pathname[0]) && pathname[1] == ':')
temp = pathname + 1;
#endif
diff --git a/gdb/config.in b/gdb/config.in
index 149aeaf..efc3100 100644
--- a/gdb/config.in
+++ b/gdb/config.in
@@ -745,6 +745,9 @@
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
+/* Which binary file formats were requested at configure time. */
+#undef SUPPORTED_BINARY_FILE_FORMATS
+
/* automatically load a system-wide gdbinit file */
#undef SYSTEM_GDBINIT
diff --git a/gdb/configure b/gdb/configure
index 8fc3b04..db63481 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -706,6 +706,7 @@ LIBGUI
LTLIBLZMA
LIBLZMA
HAVE_LIBLZMA
+FORMAT_SRCS
SER_HARDWIRE
WERROR_CFLAGS
WARN_CFLAGS
@@ -820,6 +821,7 @@ DSYMUTIL
AWK
RANLIB
AR
+LLVM_CONFIG
OBJDUMP
LN_S
NM
@@ -932,6 +934,7 @@ with_relocated_sources
with_auto_load_dir
with_auto_load_safe_path
enable_targets
+enable_binary_file_formats
enable_gdb_mdebug_support
enable_gdb_dwarf_support
with_amd_dbgapi
@@ -1645,6 +1648,10 @@ Optional Features:
--disable-nls do not use Native Language Support
--enable-targets=TARGETS
alternative target configurations
+ --enable-binary-file-formats=FORMATS
+ enable support for selected file formats (default
+ 'all') available formats: coff, dbx, elf, macho,
+ mips, xcoff, all
--enable-gdb-mdebug-support
Enable support for the mdebug debuginfo format
(default 'yes')
@@ -6481,8 +6488,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
-plugin_option=
+
+# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
+# wrong plugin_option with clang.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
+$as_echo_n "checking for clang... " >&6; }
+if ${clang_cv_is_clang+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __clang__
+ yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ clang_cv_is_clang=yes
+else
+ clang_cv_is_clang=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
+$as_echo "$clang_cv_is_clang" >&6; }
+ plugin_file=
+ if test $clang_cv_is_clang = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
+$as_echo_n "checking for clang plugin file... " >&6; }
+ plugin_names="LLVMgold.so"
+ for plugin in $plugin_names; do
+ plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
+ if test x$plugin_file = x$plugin; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LLVM_CONFIG"; then
+ ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
+if test -n "$LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
+$as_echo "$LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LLVM_CONFIG"; then
+ ac_ct_LLVM_CONFIG=$LLVM_CONFIG
+ # Extract the first word of "llvm-config", so it can be a program name with args.
+set dummy llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LLVM_CONFIG"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
+if test -n "$ac_ct_LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
+$as_echo "$ac_ct_LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LLVM_CONFIG" = x; then
+ LLVM_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LLVM_CONFIG=$ac_ct_LLVM_CONFIG
+ fi
+else
+ LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
+fi
+
+ if test "$?" != 0; then
+ as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
+ fi
+ clang_lib_dir=`$LLVM_CONFIG --libdir`
+ if test -f $clang_lib_dir/$plugin; then
+ plugin_file=$clang_lib_dir/$plugin
+ fi
+ if test x$plugin_file != x$plugin; then
+ break;
+ fi
+ fi
+ done
+ if test -z $plugin_file; then
+ as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
+ fi
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+ if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ plugin_option="--plugin $plugin_file"
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_file=
+ fi
+ rm -f conftest.*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
+$as_echo "$plugin_file" >&6; }
+ fi
+ plugin_file="$plugin_file"
+
+if test -n "$plugin_file"; then
+ plugin_option="--plugin $plugin_file"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
+$as_echo_n "checking for -plugin option... " >&6; }
+
plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+plugin_option=
for plugin in $plugin_names; do
plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
if test x$plugin_so = x$plugin; then
@@ -6493,7 +6758,119 @@ for plugin in $plugin_names; do
break
fi
done
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+fi
+touch conftest.c
+${AR} $plugin_option rc conftest.a conftest.c
+if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_option=
+fi
+rm -f conftest.*
+if test -n "$plugin_option"; then
+ plugin_option="$plugin_option"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+$as_echo "$plugin_option" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
@@ -6588,17 +6965,15 @@ fi
test -z "$AR" && AR=ar
if test -n "$plugin_option"; then
- if $AR --help 2>&1 | grep -q "\--plugin"; then
- touch conftest.c
- $AR $plugin_option rc conftest.a conftest.c
- if test "$?" != 0; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
-$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
- else
+ case "$AR" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $AR --help 2>&1 | grep -q "\--plugin"; then
AR="$AR $plugin_option"
fi
- rm -f conftest.*
- fi
+ ;;
+ esac
fi
test -z "$AR_FLAGS" && AR_FLAGS=cru
@@ -6805,9 +7180,15 @@ fi
test -z "$RANLIB" && RANLIB=:
if test -n "$plugin_option" && test "$RANLIB" != ":"; then
- if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
- RANLIB="$RANLIB $plugin_option"
- fi
+ case "$RANLIB" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
+ RANLIB="$RANLIB $plugin_option"
+ fi
+ ;;
+ esac
fi
@@ -11507,7 +11888,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11510 "configure"
+#line 11891 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11613,7 +11994,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11616 "configure"
+#line 11997 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -19231,118 +19612,6 @@ fi
# Set the 'development' global.
. $srcdir/../bfd/development.sh
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
@@ -24882,6 +25151,18 @@ esac
fi
+# Check whether --enable-binary_file_formats was given.
+if test "${enable_binary_file_formats+set}" = set; then :
+ enableval=$enable_binary_file_formats; case "${enableval}" in
+ yes | "") as_fn_error $? "enable-binary-file-formats option must specify file formats or 'all'" "$LINENO" 5
+ ;;
+ no) enable_binary_file_formats= ;;
+ *) enable_binary_file_formats=$enableval ;;
+esac
+else
+ enable_binary_file_formats=all
+fi
+
# Check whether to support mdebug/ecoff debug information.
# Check whether --enable-gdb-mdebug-support was given.
@@ -24986,10 +25267,21 @@ TARGET_OBS=
all_targets=
HAVE_NATIVE_GCORE_TARGET=
+# File formats that will be enabled based on the selected
+# target(s). These are chosen because they are required to
+# compile one or more of the selected targets.
+target_formats=
+
+# If all targets were requested, this is all formats that should
+# accompany them. These are just the ones required for compilation
+# to succeed, not the formats suggested based on targets.
+all_target_formats="coff xcoff"
+
for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
do
if test "$targ_alias" = "all"; then
all_targets=true
+ target_formats=$all_target_formats
else
# Canonicalize the secondary target names.
result=`$ac_config_sub $targ_alias 2>/dev/null`
@@ -29150,118 +29442,6 @@ fi
# Checks for header files. #
# ------------------------- #
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
for ac_header in \
IOKit/serial/ioss.h \
asm/termios.h \
@@ -31628,6 +31808,12 @@ fi
# Note that WIN32APILIBS is set by GDB_AC_COMMON.
WIN32LIBS="$WIN32LIBS $WIN32APILIBS"
+# Object files to be used when building with support for all file formats.
+# This should not have elf or macho, as support for those formats depends
+# on BFD enabling them as well.
+all_binary_file_srcs="\$(dbx_SRCS) \$(mips_SRCS) \$(coff_SRCS) \$(xcoff_SRCS)"
+
+bfd_supports_elf=no
# Add ELF support to GDB, but only if BFD includes ELF support.
OLD_CFLAGS=$CFLAGS
@@ -31645,7 +31831,7 @@ WIN32LIBS="$WIN32LIBS $WIN32APILIBS"
CC="./libtool --quiet --mode=link $CC"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ELF support in BFD" >&5
$as_echo_n "checking for ELF support in BFD... " >&6; }
-if ${gdb_cv_var_elf+:} false; then :
+if ${gdb_cv_var_bfd_elf+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -31664,24 +31850,23 @@ return bfd_get_elf_phdr_upper_bound (NULL);
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
- gdb_cv_var_elf=yes
+ gdb_cv_var_bfd_elf=yes
else
- gdb_cv_var_elf=no
+ gdb_cv_var_bfd_elf=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_var_elf" >&5
-$as_echo "$gdb_cv_var_elf" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_var_bfd_elf" >&5
+$as_echo "$gdb_cv_var_bfd_elf" >&6; }
CC=$OLD_CC
CFLAGS=$OLD_CFLAGS
LDFLAGS=$OLD_LDFLAGS
LIBS=$OLD_LIBS
-if test "$gdb_cv_var_elf" = yes; then
- CONFIG_OBS="$CONFIG_OBS elfread.o stap-probe.o dtrace-probe.o \
- gcore-elf.o elf-none-tdep.o"
+if test "$gdb_cv_var_bfd_elf" = yes; then
+ CONFIG_OBS="$CONFIG_OBS gcore-elf.o elf-none-tdep.o"
$as_echo "#define HAVE_ELF 1" >>confdefs.h
@@ -31744,9 +31929,12 @@ if test "$ac_res" != no; then :
fi
fi
+ bfd_supports_elf=yes
+ all_binary_file_srcs="$all_binary_file_srcs \$(elf_SRCS)"
fi
# Add macho support to GDB, but only if BFD includes it.
+bfd_supports_macho=no
OLD_CFLAGS=$CFLAGS
OLD_LDFLAGS=$LDFLAGS
@@ -31763,7 +31951,7 @@ fi
CC="./libtool --quiet --mode=link $CC"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Mach-O support in BFD" >&5
$as_echo_n "checking for Mach-O support in BFD... " >&6; }
-if ${gdb_cv_var_macho+:} false; then :
+if ${gdb_cv_var_bfd_macho+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -31782,30 +31970,81 @@ return bfd_mach_o_lookup_command (NULL, 0, NULL);
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
- gdb_cv_var_macho=yes
+ gdb_cv_var_bfd_macho=yes
else
- gdb_cv_var_macho=no
+ gdb_cv_var_bfd_macho=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_var_macho" >&5
-$as_echo "$gdb_cv_var_macho" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gdb_cv_var_bfd_macho" >&5
+$as_echo "$gdb_cv_var_bfd_macho" >&6; }
CC=$OLD_CC
CFLAGS=$OLD_CFLAGS
LDFLAGS=$OLD_LDFLAGS
LIBS=$OLD_LIBS
-if test "$gdb_cv_var_macho" = yes; then
- CONFIG_OBS="$CONFIG_OBS machoread.o"
+if test "$gdb_cv_var_bfd_macho" = yes; then
+ bfd_supports_macho=yes
+ all_binary_file_srcs="$all_binary_file_srcs \$(macho_SRCS)"
fi
+FORMAT_SRCS=
+
+if test "$enable_binary_file_formats" != "all"; then
+ # Formats that are required by some requested target(s).
+ # Warn users that they are added, so no one is surprised.
+ for req in $target_formats; do
+ case ,$enable_binary_file_formats, in
+ *,$req,*)
+ # Do nothing.
+ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"$req is required to support one or more requested targets. Adding it\"" >&5
+$as_echo "$as_me: WARNING: \"$req is required to support one or more requested targets. Adding it\"" >&2;}
+ enable_binary_file_formats="${enable_binary_file_formats},$req"
+ ;;
+ esac
+ done
+
+
+cat >>confdefs.h <<_ACEOF
+#define SUPPORTED_BINARY_FILE_FORMATS "$enable_binary_file_formats"
+_ACEOF
+
+fi
+
+enable_binary_file_formats=$(echo $enable_binary_file_formats | sed 's/,/ /g')
+
+# Go through all requested and required binary file formats to compile
+# GDB, and double check that we can compile them.
+for format in $enable_binary_file_formats
+do
+ if test "$format" = "elf" && test "$bfd_supports_elf" != "yes"; then
+ as_fn_error but BFD does not support it." "\"elf support was requested" "$LINENO" 5;
+ elif test "$format" = "macho" && test "$bfd_supports_macho" != "yes"; then
+ as_fn_error but BFD does not support it." "\"Mach-O support was requested" "$LINENO" 5;
+ fi
+
+ if test "$format" = "all"; then
+ FORMAT_SRCS="$all_binary_file_srcs"
+ # We don't break here in case the user requested Mach-O or ELF, but
+ # BFD is not configured to support it. If we were to break, we would
+ # silently drop the requested support instead of erroring out.
+ else
+ fmt=$(echo "$format _SRCS" | sed 's/ //')
+ FORMAT_SRCS="$FORMAT_SRCS \$($fmt)"
+ fi
+done
+
+
+
# Add any host-specific objects to GDB.
CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
# If building on ELF, look for lzma support for embedded compressed debug info.
-if test "$gdb_cv_var_elf" = yes; then
+if test "$gdb_cv_var_bfd_elf" = yes; then
# Check whether --with-lzma was given.
if test "${with_lzma+set}" = set; then :
diff --git a/gdb/configure.ac b/gdb/configure.ac
index 226e27e..5292410 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -191,6 +191,16 @@ AS_HELP_STRING([--enable-targets=TARGETS], [alternative target configurations]),
;;
esac])
+AC_ARG_ENABLE(binary_file_formats,
+ AS_HELP_STRING([--enable-binary-file-formats=FORMATS],
+ [enable support for selected file formats (default 'all')
+ available formats: coff, dbx, elf, macho, mips, xcoff, all]),
+[case "${enableval}" in
+ yes | "") AC_MSG_ERROR(enable-binary-file-formats option must specify file formats or 'all')
+ ;;
+ no) enable_binary_file_formats= ;;
+ *) enable_binary_file_formats=$enableval ;;
+esac], [enable_binary_file_formats=all])
# Check whether to support mdebug/ecoff debug information.
AC_ARG_ENABLE(gdb-mdebug-support,
@@ -240,10 +250,21 @@ TARGET_OBS=
all_targets=
HAVE_NATIVE_GCORE_TARGET=
+# File formats that will be enabled based on the selected
+# target(s). These are chosen because they are required to
+# compile one or more of the selected targets.
+target_formats=
+
+# If all targets were requested, this is all formats that should
+# accompany them. These are just the ones required for compilation
+# to succeed, not the formats suggested based on targets.
+all_target_formats="coff xcoff"
+
for targ_alias in `echo $target_alias $enable_targets | sed 's/,/ /g'`
do
if test "$targ_alias" = "all"; then
all_targets=true
+ target_formats=$all_target_formats
else
# Canonicalize the secondary target names.
result=`$ac_config_sub $targ_alias 2>/dev/null`
@@ -1355,7 +1376,6 @@ AC_SUBST(SRCHIGH_CFLAGS)
# Checks for header files. #
# ------------------------- #
-AC_HEADER_STDC
AC_CHECK_HEADERS([ \
IOKit/serial/ioss.h \
asm/termios.h \
@@ -1952,32 +1972,87 @@ fi
# Note that WIN32APILIBS is set by GDB_AC_COMMON.
WIN32LIBS="$WIN32LIBS $WIN32APILIBS"
+# Object files to be used when building with support for all file formats.
+# This should not have elf or macho, as support for those formats depends
+# on BFD enabling them as well.
+all_binary_file_srcs="\$(dbx_SRCS) \$(mips_SRCS) \$(coff_SRCS) \$(xcoff_SRCS)"
+
+bfd_supports_elf=no
# Add ELF support to GDB, but only if BFD includes ELF support.
-GDB_AC_CHECK_BFD([for ELF support in BFD], gdb_cv_var_elf,
+GDB_AC_CHECK_BFD([for ELF support in BFD], gdb_cv_var_bfd_elf,
[bfd_get_elf_phdr_upper_bound (NULL)], elf-bfd.h)
-if test "$gdb_cv_var_elf" = yes; then
- CONFIG_OBS="$CONFIG_OBS elfread.o stap-probe.o dtrace-probe.o \
- gcore-elf.o elf-none-tdep.o"
+if test "$gdb_cv_var_bfd_elf" = yes; then
+ CONFIG_OBS="$CONFIG_OBS gcore-elf.o elf-none-tdep.o"
AC_DEFINE(HAVE_ELF, 1,
[Define if ELF support should be included.])
# -ldl is provided by bfd/Makefile.am (LIBDL) <PLUGINS>.
if test "$plugins" = "yes"; then
AC_SEARCH_LIBS(dlopen, dl)
fi
+ bfd_supports_elf=yes
+ all_binary_file_srcs="$all_binary_file_srcs \$(elf_SRCS)"
fi
# Add macho support to GDB, but only if BFD includes it.
-GDB_AC_CHECK_BFD([for Mach-O support in BFD], gdb_cv_var_macho,
+bfd_supports_macho=no
+GDB_AC_CHECK_BFD([for Mach-O support in BFD], gdb_cv_var_bfd_macho,
[bfd_mach_o_lookup_command (NULL, 0, NULL)], mach-o.h)
-if test "$gdb_cv_var_macho" = yes; then
- CONFIG_OBS="$CONFIG_OBS machoread.o"
+if test "$gdb_cv_var_bfd_macho" = yes; then
+ bfd_supports_macho=yes
+ all_binary_file_srcs="$all_binary_file_srcs \$(macho_SRCS)"
+fi
+
+FORMAT_SRCS=
+
+if test "$enable_binary_file_formats" != "all"; then
+ # Formats that are required by some requested target(s).
+ # Warn users that they are added, so no one is surprised.
+ for req in $target_formats; do
+ case ,$enable_binary_file_formats, in
+ *,$req,*)
+ # Do nothing.
+ ;;
+ *)
+ AC_MSG_WARN("$req is required to support one or more requested targets. Adding it")
+ enable_binary_file_formats="${enable_binary_file_formats},$req"
+ ;;
+ esac
+ done
+
+ AC_DEFINE_UNQUOTED(SUPPORTED_BINARY_FILE_FORMATS, "$enable_binary_file_formats",
+ Which binary file formats were requested at configure time. )
fi
+enable_binary_file_formats=$(echo $enable_binary_file_formats | sed 's/,/ /g')
+
+# Go through all requested and required binary file formats to compile
+# GDB, and double check that we can compile them.
+for format in $enable_binary_file_formats
+do
+ if test "$format" = "elf" && test "$bfd_supports_elf" != "yes"; then
+ AC_MSG_ERROR("elf support was requested, but BFD does not support it.");
+ elif test "$format" = "macho" && test "$bfd_supports_macho" != "yes"; then
+ AC_MSG_ERROR("Mach-O support was requested, but BFD does not support it.");
+ fi
+
+ if test "$format" = "all"; then
+ FORMAT_SRCS="$all_binary_file_srcs"
+ # We don't break here in case the user requested Mach-O or ELF, but
+ # BFD is not configured to support it. If we were to break, we would
+ # silently drop the requested support instead of erroring out.
+ else
+ fmt=$(echo "$format _SRCS" | sed 's/ //')
+ FORMAT_SRCS="$FORMAT_SRCS \$($fmt)"
+ fi
+done
+
+AC_SUBST(FORMAT_SRCS)
+
# Add any host-specific objects to GDB.
CONFIG_OBS="${CONFIG_OBS} ${gdb_host_obs}"
# If building on ELF, look for lzma support for embedded compressed debug info.
-if test "$gdb_cv_var_elf" = yes; then
+if test "$gdb_cv_var_bfd_elf" = yes; then
AC_ARG_WITH(lzma,
AS_HELP_STRING([--with-lzma], [support lzma compression (auto/yes/no)]),
[], [with_lzma=auto])
diff --git a/gdb/configure.tgt b/gdb/configure.tgt
index 255c77e..34ae503 100644
--- a/gdb/configure.tgt
+++ b/gdb/configure.tgt
@@ -326,7 +326,7 @@ i[34567]86-*-linux*)
arch/x86-linux-tdesc-features.o"
if test "x$have_64_bit_bfd" = "xyes"; then
# Target: GNU/Linux x86-64
- gdb_target_obs="amd64-linux-tdep.o \
+ gdb_target_obs="amd64-linux-tdep.o svr4-tls-tdep.o \
arch/amd64-linux-tdesc.o ${gdb_target_obs}"
fi
;;
@@ -505,7 +505,7 @@ powerpc-*-openbsd*)
;;
powerpc-*-aix* | rs6000-*-* | powerpc64-*-aix*)
# Target: PowerPC running AIX
- gdb_target_obs="rs6000-tdep.o rs6000-aix-tdep.o xcoffread.o \
+ gdb_target_obs="rs6000-tdep.o rs6000-aix-tdep.o \
ppc-sysv-tdep.o solib-aix.o \
ravenscar-thread.o ppc-ravenscar-thread.o"
;;
@@ -522,8 +522,8 @@ powerpc*-*-linux*)
powerpc-*-lynx*178)
# Target: PowerPC running Lynx178.
gdb_target_obs="rs6000-tdep.o rs6000-lynx178-tdep.o \
- xcoffread.o ppc-sysv-tdep.o \
- ravenscar-thread.o ppc-ravenscar-thread.o"
+ ppc-sysv-tdep.o ravenscar-thread.o \
+ ppc-ravenscar-thread.o"
;;
powerpc*-*-*)
# Target: PowerPC running eabi
@@ -754,7 +754,7 @@ x86_64-*-rtems*)
;;
x86_64-*-gnu*)
# Target: x86_64 running the GNU Hurd
- gdb_target_obs="amd64-gnu-tdep.o glibc-tdep.o solib-svr4.o"
+ gdb_target_obs="amd64-gnu-tdep.o i386-gnu-tdep.o glibc-tdep.o solib-svr4.o"
;;
xtensa*-*-*linux*)
# Target: GNU/Linux Xtensa
@@ -835,3 +835,17 @@ for t in x ${gdb_target_obs}; do
gdb_have_gcore=true
fi
done
+
+# Decide which file formats are absolutely required based on
+# the requested targets. Warn later that they are added, in
+# case the user didn't manually request them, or all readers.
+# It's fine to add the same format multiple times since the
+# loop that reads the options to FORMAT_OBS will ensure that
+# they are only added once.
+for i in $gdb_target_obs; do
+ case "${i}" in
+ *"windows-tdep.o" ) target_formats="${target_formats} coff";;
+ "rs6000-aix-tdep.o" ) target_formats="${target_formats} xcoff";;
+ "rs6000-lynx178-tdep.o" ) target_formats="${target_formats} xcoff";;
+ esac
+done
diff --git a/gdb/copyright.py b/gdb/copyright.py
index bd854dc..425b7d2 100755
--- a/gdb/copyright.py
+++ b/gdb/copyright.py
@@ -191,11 +191,20 @@ def main(argv: list[str]) -> int | None:
if BY_HAND:
print()
print(
- "\033[31mREMINDER: The following files must be updated by hand." "\033[0m"
+ "\033[31mREMINDER: The following files must be updated by hand:" "\033[0m"
)
for filename in BY_HAND:
print(" ", filename)
+ print()
+ print(
+ "\033[31mREMINDER: The following files contain code to print a copyright "
+ "notice at runtime, they must be updated by hand:\033[0m"
+ )
+ print(" gdb/top.c")
+ print(" gdbserver/gdbreplay.cc")
+ print(" gdbserver/server.cc")
+
############################################################################
#
diff --git a/gdb/corelow.c b/gdb/corelow.c
index a74cb05..29eafe8 100644
--- a/gdb/corelow.c
+++ b/gdb/corelow.c
@@ -790,10 +790,13 @@ core_file_command (const char *filename, int from_tty)
.reg/1, .reg2/1, .reg/2, .reg2/2
After calling this function the rest of the core file handling code can
- treat this core file just like any other core file. */
+ treat this core file just like any other core file.
+
+ CBFD is the core file being loaded, and INF is the inferior through
+ which the core file will be examined. */
static void
-rename_vmcore_idle_reg_sections (bfd *abfd, inferior *inf)
+rename_vmcore_idle_reg_sections (bfd *cbfd, inferior *inf)
{
/* Map from the bfd section to its lwpid (the /NN number). */
std::vector<std::pair<asection *, int>> sections_and_lwpids;
@@ -808,7 +811,7 @@ rename_vmcore_idle_reg_sections (bfd *abfd, inferior *inf)
/* Look for all the .reg sections. Record the section object and the
lwpid which is extracted from the section name. Spot if any have an
lwpid of zero. */
- for (asection *sect : gdb_bfd_sections (current_program_space->core_bfd ()))
+ for (asection *sect : gdb_bfd_sections (cbfd))
{
if (startswith (bfd_section_name (sect), ".reg/"))
{
@@ -841,7 +844,7 @@ rename_vmcore_idle_reg_sections (bfd *abfd, inferior *inf)
std::string replacement_lwpid_str;
auto iter = sections_and_lwpids.begin ();
int replacement_lwpid = 0;
- for (asection *sect : gdb_bfd_sections (current_program_space->core_bfd ()))
+ for (asection *sect : gdb_bfd_sections (cbfd))
{
if (iter != sections_and_lwpids.end () && sect == iter->first)
{
@@ -879,7 +882,7 @@ rename_vmcore_idle_reg_sections (bfd *abfd, inferior *inf)
static_cast<int> (len - 2),
name, replacement_lwpid);
char *name_buf
- = static_cast<char *> (bfd_alloc (abfd, name_str.size () + 1));
+ = static_cast<char *> (bfd_alloc (cbfd, name_str.size () + 1));
if (name_buf == nullptr)
error (_("failed to allocate space for section name '%s'"),
name_str.c_str ());
@@ -1049,16 +1052,17 @@ core_target_open (const char *arg, int from_tty)
target_preopen (from_tty);
+ /* The target_preopen call will remove any existing process stratum
+ target, which includes any existing core_target. */
+ gdb_assert (current_inferior ()->process_target () == nullptr);
+
+ /* Which will clear up any existing core file BFD. */
+ gdb_assert (current_program_space->core_bfd () == nullptr);
+
std::string filename = extract_single_filename_arg (arg);
if (filename.empty ())
- {
- if (current_program_space->core_bfd ())
- error (_("No core file specified. (Use `detach' "
- "to stop debugging a core file.)"));
- else
- error (_("No core file specified."));
- }
+ error (_("No core file specified."));
if (!IS_ABSOLUTE_PATH (filename.c_str ()))
filename = gdb_abspath (filename);
@@ -1628,9 +1632,9 @@ core_target::xfer_partial (enum target_object object, const char *annex,
return TARGET_XFER_E_IO;
else
{
- *xfered_len = gdbarch_core_xfer_shared_libraries (m_core_gdbarch,
- readbuf,
- offset, len);
+ *xfered_len = gdbarch_core_xfer_shared_libraries
+ (m_core_gdbarch, *current_program_space->core_bfd (),
+ readbuf, offset, len);
if (*xfered_len == 0)
return TARGET_XFER_EOF;
@@ -1649,9 +1653,9 @@ core_target::xfer_partial (enum target_object object, const char *annex,
else
{
*xfered_len
- = gdbarch_core_xfer_shared_libraries_aix (m_core_gdbarch,
- readbuf, offset,
- len);
+ = gdbarch_core_xfer_shared_libraries_aix
+ (m_core_gdbarch, *current_program_space->core_bfd (),
+ readbuf, offset, len);
if (*xfered_len == 0)
return TARGET_XFER_EOF;
@@ -1667,8 +1671,10 @@ core_target::xfer_partial (enum target_object object, const char *annex,
if (m_core_gdbarch != nullptr
&& gdbarch_core_xfer_siginfo_p (m_core_gdbarch))
{
- LONGEST l = gdbarch_core_xfer_siginfo (m_core_gdbarch, readbuf,
- offset, len);
+ struct bfd *cbfd = current_program_space->core_bfd ();
+ gdb_assert (cbfd != nullptr);
+ LONGEST l = gdbarch_core_xfer_siginfo (m_core_gdbarch, *cbfd,
+ readbuf, offset, len);
if (l >= 0)
{
@@ -1794,7 +1800,11 @@ core_target::thread_name (struct thread_info *thr)
{
if (m_core_gdbarch != nullptr
&& gdbarch_core_thread_name_p (m_core_gdbarch))
- return gdbarch_core_thread_name (m_core_gdbarch, thr);
+ {
+ bfd *cbfd = current_program_space->core_bfd ();
+ gdb_assert (cbfd != nullptr);
+ return gdbarch_core_thread_name (m_core_gdbarch, *cbfd, thr);
+ }
return NULL;
}
@@ -1826,7 +1836,8 @@ core_target::info_proc (const char *args, enum info_proc_what request)
/* Since this is the core file target, call the 'core_info_proc'
method on gdbarch, not 'info_proc'. */
if (gdbarch_core_info_proc_p (gdbarch))
- gdbarch_core_info_proc (gdbarch, args, request);
+ gdbarch_core_info_proc (gdbarch, current_program_space->core_bfd (),
+ args, request);
return true;
}
@@ -1901,7 +1912,9 @@ core_target::fetch_x86_xsave_layout ()
gdbarch_core_read_x86_xsave_layout_p (m_core_gdbarch))
{
x86_xsave_layout layout;
- if (!gdbarch_core_read_x86_xsave_layout (m_core_gdbarch, layout))
+ bfd *cbfd = current_program_space->core_bfd ();
+ gdb_assert (cbfd != nullptr);
+ if (!gdbarch_core_read_x86_xsave_layout (m_core_gdbarch, *cbfd, layout))
return {};
return layout;
diff --git a/gdb/cp-name-parser.y b/gdb/cp-name-parser.y
index cafd6b2..7221b78 100644
--- a/gdb/cp-name-parser.y
+++ b/gdb/cp-name-parser.y
@@ -39,7 +39,6 @@
#include <unistd.h>
-#include "gdbsupport/gdb-safe-ctype.h"
#include "demangle.h"
#include "cp-support.h"
#include "c-support.h"
@@ -1362,7 +1361,7 @@ cpname_state::parse_number (const char *p, int len, int parsed_float,
/* See if it has `f' or `l' suffix (float or long double). */
- c = TOLOWER (p[len - 1]);
+ c = c_tolower (p[len - 1]);
if (c == 'f')
{
@@ -1374,7 +1373,7 @@ cpname_state::parse_number (const char *p, int len, int parsed_float,
len--;
type = make_builtin_type ("long double");
}
- else if (ISDIGIT (c) || c == '.')
+ else if (c_isdigit (c) || c == '.')
type = make_builtin_type ("double");
else
return ERROR;
@@ -1439,10 +1438,10 @@ cpname_state::parse_number (const char *p, int len, int parsed_float,
for (int off = 0; off < len; ++off)
{
int dig;
- if (ISDIGIT (p[off]))
+ if (c_isdigit (p[off]))
dig = p[off] - '0';
else
- dig = TOLOWER (p[off]) - 'a' + 10;
+ dig = c_tolower (p[off]) - 'a' + 10;
if (dig >= base)
return ERROR;
value *= base;
@@ -1769,7 +1768,7 @@ yylex (YYSTYPE *lvalp, cpname_state *state)
}
/* We will take any letters or digits. parse_number will
complain if past the radix, or if L or U are not final. */
- else if (! ISALNUM (*p))
+ else if (! c_isalnum (*p))
break;
if (no_tick.has_value ())
no_tick->push_back (*p);
diff --git a/gdb/cp-support.c b/gdb/cp-support.c
index cab7110..7cfb545 100644
--- a/gdb/cp-support.c
+++ b/gdb/cp-support.c
@@ -35,7 +35,6 @@
#include "namespace.h"
#include <signal.h>
#include "gdbsupport/gdb_setjmp.h"
-#include "gdbsupport/gdb-safe-ctype.h"
#include "gdbsupport/selftest.h"
#include "gdbsupport/gdb-sigmask.h"
#include <atomic>
@@ -105,7 +104,7 @@ static int
cp_already_canonical (const char *string)
{
/* Identifier start character [a-zA-Z_]. */
- if (!ISIDST (string[0]))
+ if (!c_isalpha (string[0]) || string[0] == '_')
return 0;
/* These are the only two identifiers which canonicalize to other
@@ -117,7 +116,7 @@ cp_already_canonical (const char *string)
return 0;
/* Identifier character [a-zA-Z0-9_]. */
- while (ISIDNUM (string[1]))
+ while (c_isalpha (string[1]) || c_isdigit (string[1]) || string[1] == '_')
string++;
if (string[1] == '\0')
@@ -150,7 +149,8 @@ inspect_type (struct demangle_parse_info *info,
try
{
- sym = lookup_symbol (name, 0, SEARCH_VFT, 0).symbol;
+ sym = lookup_symbol (name, 0, (SEARCH_TYPE_DOMAIN
+ | SEARCH_STRUCT_DOMAIN), 0).symbol;
}
catch (const gdb_exception &except)
{
@@ -504,7 +504,8 @@ replace_typedefs (struct demangle_parse_info *info,
try
{
sym = lookup_symbol (local_name.get (), 0,
- SEARCH_VFT, 0).symbol;
+ (SEARCH_TYPE_DOMAIN
+ | SEARCH_STRUCT_DOMAIN), 0).symbol;
}
catch (const gdb_exception &except)
{
@@ -1135,7 +1136,7 @@ cp_find_first_component_aux (const char *name, int permissive)
&& startswith (name + index, CP_OPERATOR_STR))
{
index += CP_OPERATOR_LEN;
- while (ISSPACE(name[index]))
+ while (c_isspace(name[index]))
++index;
switch (name[index])
{
@@ -1472,17 +1473,14 @@ add_symbol_overload_list_qualified (const char *func_name,
? selected_block->objfile ()
: nullptr);
- gdbarch_iterate_over_objfiles_in_search_order
- (current_objfile ? current_objfile->arch () : current_inferior ()->arch (),
- [func_name, surrounding_static_block, &overload_list]
+ lookup_name_info base_lookup (func_name, symbol_name_match_type::FULL);
+ lookup_name_info lookup_name = base_lookup.make_ignore_params ();
+
+ current_program_space->iterate_over_objfiles_in_search_order
+ ([func_name, surrounding_static_block, &overload_list, lookup_name]
(struct objfile *obj)
{
- /* Look through the partial symtabs for all symbols which
- begin by matching FUNC_NAME. Make sure we read that
- symbol table in. */
- obj->expand_symtabs_for_function (func_name);
-
- for (compunit_symtab *cust : obj->compunits ())
+ auto callback = [&] (compunit_symtab *cust)
{
QUIT;
const struct block *b = cust->blockvector ()->global_block ();
@@ -1490,11 +1488,17 @@ add_symbol_overload_list_qualified (const char *func_name,
b = cust->blockvector ()->static_block ();
/* Don't do this block twice. */
- if (b == surrounding_static_block)
- continue;
+ if (b != surrounding_static_block)
+ add_symbol_overload_list_block (func_name, b, overload_list);
+ return true;
+ };
- add_symbol_overload_list_block (func_name, b, overload_list);
- }
+ /* Look through the partial symtabs for all symbols which
+ begin by matching FUNC_NAME. Make sure we read that
+ symbol table in. */
+ obj->search (nullptr, &lookup_name, nullptr, callback,
+ SEARCH_GLOBAL_BLOCK | SEARCH_STATIC_BLOCK,
+ SEARCH_FUNCTION_DOMAIN);
return 0;
}, current_objfile);
@@ -1518,7 +1522,7 @@ cp_lookup_rtti_type (const char *name, const struct block *block)
return NULL;
}
- if (rtti_sym->aclass () != LOC_TYPEDEF)
+ if (rtti_sym->loc_class () != LOC_TYPEDEF)
{
warning (_("RTTI symbol for class '%s' is not a type"), name);
return NULL;
@@ -2349,7 +2353,7 @@ find_toplevel_char (const char *s, char c)
scan += CP_OPERATOR_LEN;
if (*scan == c)
return scan;
- while (ISSPACE (*scan))
+ while (c_isspace (*scan))
{
++scan;
if (*scan == c)
diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c
index b49e641..9cfc1eb 100644
--- a/gdb/cris-tdep.c
+++ b/gdb/cris-tdep.c
@@ -3993,7 +3993,7 @@ cris_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_cannot_store_register (gdbarch, cris_cannot_store_register);
set_gdbarch_cannot_fetch_register (gdbarch, cris_cannot_fetch_register);
- set_gdbarch_software_single_step (gdbarch, cris_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, cris_software_single_step);
break;
case 32:
diff --git a/gdb/ctfread.c b/gdb/ctfread.c
index e568f15..4761b36 100644
--- a/gdb/ctfread.c
+++ b/gdb/ctfread.c
@@ -328,7 +328,7 @@ set_symbol_address (struct objfile *of, struct symbol *sym, const char *name)
if (msym.minsym != NULL)
{
sym->set_value_address (msym.value_address ());
- sym->set_aclass_index (LOC_STATIC);
+ sym->set_loc_class_index (LOC_STATIC);
sym->set_section_index (msym.minsym->section_index ());
}
}
@@ -447,7 +447,7 @@ ctf_add_enum_member_cb (const char *name, int enum_value, void *arg)
sym->set_language (language_c, &ccp->of->objfile_obstack);
sym->compute_and_set_names (name, false, ccp->of->per_bfd);
- sym->set_aclass_index (LOC_CONST);
+ sym->set_loc_class_index (LOC_CONST);
sym->set_domain (VAR_DOMAIN);
sym->set_type (fip->ptype);
add_symbol_to_list (sym, ccp->builder->get_global_symbols ());
@@ -477,7 +477,7 @@ new_symbol (struct ctf_context *ccp, struct type *type, ctf_id_t tid)
sym->set_language (language_c, &objfile->objfile_obstack);
sym->compute_and_set_names (name, false, objfile->per_bfd);
sym->set_domain (VAR_DOMAIN);
- sym->set_aclass_index (LOC_OPTIMIZED_OUT);
+ sym->set_loc_class_index (LOC_OPTIMIZED_OUT);
if (type != nullptr)
sym->set_type (type);
@@ -488,11 +488,11 @@ new_symbol (struct ctf_context *ccp, struct type *type, ctf_id_t tid)
case CTF_K_STRUCT:
case CTF_K_UNION:
case CTF_K_ENUM:
- sym->set_aclass_index (LOC_TYPEDEF);
+ sym->set_loc_class_index (LOC_TYPEDEF);
sym->set_domain (STRUCT_DOMAIN);
break;
case CTF_K_FUNCTION:
- sym->set_aclass_index (LOC_STATIC);
+ sym->set_loc_class_index (LOC_STATIC);
set_symbol_address (objfile, sym, sym->linkage_name ());
break;
case CTF_K_CONST:
@@ -502,7 +502,7 @@ new_symbol (struct ctf_context *ccp, struct type *type, ctf_id_t tid)
case CTF_K_TYPEDEF:
case CTF_K_INTEGER:
case CTF_K_FLOAT:
- sym->set_aclass_index (LOC_TYPEDEF);
+ sym->set_loc_class_index (LOC_TYPEDEF);
sym->set_domain (TYPE_DOMAIN);
break;
case CTF_K_POINTER:
@@ -516,7 +516,7 @@ new_symbol (struct ctf_context *ccp, struct type *type, ctf_id_t tid)
break;
}
- add_symbol_to_list (sym, ccp->builder->get_file_symbols ());
+ add_symbol_to_list (sym, ccp->builder->get_global_symbols ());
}
return sym;
@@ -1169,9 +1169,9 @@ ctf_add_var_cb (const char *name, ctf_id_t id, void *arg)
OBJSTAT (ccp->of, n_syms++);
sym->set_type (type);
sym->set_domain (VAR_DOMAIN);
- sym->set_aclass_index (LOC_OPTIMIZED_OUT);
+ sym->set_loc_class_index (LOC_OPTIMIZED_OUT);
sym->compute_and_set_names (name, false, ccp->of->per_bfd);
- add_symbol_to_list (sym, ccp->builder->get_file_symbols ());
+ add_symbol_to_list (sym, ccp->builder->get_global_symbols ());
break;
default:
complaint (_("ctf_add_var_cb: kind unsupported (%d)"), kind);
@@ -1205,7 +1205,7 @@ add_stt_entries (struct ctf_context *ccp, int functions)
OBJSTAT (ccp->of, n_syms++);
sym->set_type (type);
sym->set_domain (VAR_DOMAIN);
- sym->set_aclass_index (LOC_STATIC);
+ sym->set_loc_class_index (LOC_STATIC);
sym->compute_and_set_names (tname, false, ccp->of->per_bfd);
add_symbol_to_list (sym, ccp->builder->get_global_symbols ());
set_symbol_address (ccp->of, sym, tname);
@@ -1309,7 +1309,7 @@ ctf_psymtab_add_stt_entries (ctf_dict_t *cfp, ctf_psymtab *pst,
while ((tid = ctf_symbol_next (cfp, &i, &tname, functions)) != CTF_ERR)
{
uint32_t kind = ctf_type_kind (cfp, tid);
- address_class aclass;
+ location_class loc_class;
domain_enum tdomain;
switch (kind)
{
@@ -1324,14 +1324,14 @@ ctf_psymtab_add_stt_entries (ctf_dict_t *cfp, ctf_psymtab *pst,
}
if (kind == CTF_K_FUNCTION)
- aclass = LOC_STATIC;
+ loc_class = LOC_STATIC;
else if (kind == CTF_K_CONST)
- aclass = LOC_CONST;
+ loc_class = LOC_CONST;
else
- aclass = LOC_TYPEDEF;
+ loc_class = LOC_TYPEDEF;
pst->add_psymbol (tname, true,
- tdomain, aclass, -1,
+ tdomain, loc_class, -1,
psymbol_placement::GLOBAL,
unrelocated_addr (0),
language_c, pst->context.partial_symtabs, of);
@@ -1465,7 +1465,7 @@ ctf_psymtab_type_cb (ctf_id_t tid, void *arg)
ccp = (struct ctf_context *) arg;
domain_enum domain = UNDEF_DOMAIN;
- enum address_class aclass = LOC_UNDEF;
+ location_class loc_class = LOC_UNDEF;
kind = ctf_type_kind (ccp->fp, tid);
switch (kind)
{
@@ -1475,29 +1475,29 @@ ctf_psymtab_type_cb (ctf_id_t tid, void *arg)
case CTF_K_STRUCT:
case CTF_K_UNION:
domain = STRUCT_DOMAIN;
- aclass = LOC_TYPEDEF;
+ loc_class = LOC_TYPEDEF;
break;
case CTF_K_FUNCTION:
case CTF_K_FORWARD:
domain = VAR_DOMAIN;
- aclass = LOC_STATIC;
+ loc_class = LOC_STATIC;
section = SECT_OFF_TEXT (ccp->of);
break;
case CTF_K_CONST:
domain = VAR_DOMAIN;
- aclass = LOC_STATIC;
+ loc_class = LOC_STATIC;
break;
case CTF_K_TYPEDEF:
case CTF_K_POINTER:
case CTF_K_VOLATILE:
case CTF_K_RESTRICT:
domain = VAR_DOMAIN;
- aclass = LOC_TYPEDEF;
+ loc_class = LOC_TYPEDEF;
break;
case CTF_K_INTEGER:
case CTF_K_FLOAT:
domain = VAR_DOMAIN;
- aclass = LOC_TYPEDEF;
+ loc_class = LOC_TYPEDEF;
break;
case CTF_K_ARRAY:
case CTF_K_UNKNOWN:
@@ -1509,8 +1509,8 @@ ctf_psymtab_type_cb (ctf_id_t tid, void *arg)
return 0;
ccp->pst->add_psymbol (name, false,
- domain, aclass, section,
- psymbol_placement::STATIC,
+ domain, loc_class, section,
+ psymbol_placement::GLOBAL,
unrelocated_addr (0),
language_c, ccp->partial_symtabs, ccp->of);
diff --git a/gdb/d-exp.y b/gdb/d-exp.y
index e0ee758..e774dee 100644
--- a/gdb/d-exp.y
+++ b/gdb/d-exp.y
@@ -38,7 +38,6 @@
%{
-#include <ctype.h>
#include "expression.h"
#include "value.h"
#include "parser-defs.h"
@@ -444,7 +443,7 @@ PrimaryExpression:
sym = lookup_symbol (copy.c_str (),
pstate->expression_context_block,
SEARCH_VFT, &is_a_field_of_this);
- if (sym.symbol && sym.symbol->aclass () != LOC_TYPEDEF)
+ if (sym.symbol && sym.symbol->loc_class () != LOC_TYPEDEF)
{
if (symbol_read_needs_frame (sym.symbol))
pstate->block_tracker->update (sym);
@@ -614,11 +613,9 @@ BasicType2:
| '*' BasicType2
{ type_stack->push (tp_pointer); }
| '[' INTEGER_LITERAL ']'
- { type_stack->push ($2.val);
- type_stack->push (tp_array); }
+ { type_stack->push (tp_array, $2.val); }
| '[' INTEGER_LITERAL ']' BasicType2
- { type_stack->push ($2.val);
- type_stack->push (tp_array); }
+ { type_stack->push (tp_array, $2.val); }
;
BasicType:
@@ -684,15 +681,15 @@ parse_number (struct parser_state *ps, const char *p,
len = strlen (s);
/* Check suffix for `i' , `fi' or `li' (idouble, ifloat or ireal). */
- if (len >= 1 && tolower (s[len - 1]) == 'i')
+ if (len >= 1 && c_tolower (s[len - 1]) == 'i')
{
- if (len >= 2 && tolower (s[len - 2]) == 'f')
+ if (len >= 2 && c_tolower (s[len - 2]) == 'f')
{
putithere->typed_val_float.type
= parse_d_type (ps)->builtin_ifloat;
len -= 2;
}
- else if (len >= 2 && tolower (s[len - 2]) == 'l')
+ else if (len >= 2 && c_tolower (s[len - 2]) == 'l')
{
putithere->typed_val_float.type
= parse_d_type (ps)->builtin_ireal;
@@ -706,13 +703,13 @@ parse_number (struct parser_state *ps, const char *p,
}
}
/* Check suffix for `f' or `l'' (float or real). */
- else if (len >= 1 && tolower (s[len - 1]) == 'f')
+ else if (len >= 1 && c_tolower (s[len - 1]) == 'f')
{
putithere->typed_val_float.type
= parse_d_type (ps)->builtin_float;
len -= 1;
}
- else if (len >= 1 && tolower (s[len - 1]) == 'l')
+ else if (len >= 1 && c_tolower (s[len - 1]) == 'l')
{
putithere->typed_val_float.type
= parse_d_type (ps)->builtin_real;
@@ -1133,8 +1130,8 @@ lex_one_token (struct parser_state *par_state)
/* Hex exponents start with 'p', because 'e' is a valid hex
digit and thus does not indicate a floating point number
when the radix is hex. */
- if ((!hex && !got_e && tolower (p[0]) == 'e')
- || (hex && !got_e && tolower (p[0] == 'p')))
+ if ((!hex && !got_e && c_tolower (p[0]) == 'e')
+ || (hex && !got_e && c_tolower (p[0] == 'p')))
got_dot = got_e = 1;
/* A '.' always indicates a decimal floating point number
regardless of the radix. If we have a '..' then its the
@@ -1142,7 +1139,8 @@ lex_one_token (struct parser_state *par_state)
else if (!got_dot && (p[0] == '.' && p[1] != '.'))
got_dot = 1;
/* This is the sign of the exponent, not the end of the number. */
- else if (got_e && (tolower (p[-1]) == 'e' || tolower (p[-1]) == 'p')
+ else if (got_e && (c_tolower (p[-1]) == 'e'
+ || c_tolower (p[-1]) == 'p')
&& (*p == '-' || *p == '+'))
continue;
/* We will take any letters or digits, ignoring any embedded '_'.
@@ -1167,9 +1165,9 @@ lex_one_token (struct parser_state *par_state)
const char *p = &tokstart[1];
size_t len = strlen ("entry");
- while (isspace (*p))
+ while (c_isspace (*p))
p++;
- if (strncmp (p, "entry", len) == 0 && !isalnum (p[len])
+ if (strncmp (p, "entry", len) == 0 && !c_isalnum (p[len])
&& p[len] != '_')
{
pstate->lexptr = &p[len];
@@ -1334,7 +1332,7 @@ classify_name (struct parser_state *par_state, const struct block *block)
std::string copy = copy_name (yylval.sval);
sym = lookup_symbol (copy.c_str (), block, SEARCH_VFT, &is_a_field_of_this);
- if (sym.symbol && sym.symbol->aclass () == LOC_TYPEDEF)
+ if (sym.symbol && sym.symbol->loc_class () == LOC_TYPEDEF)
{
yylval.tsym.type = sym.symbol->type ();
return TYPENAME;
@@ -1383,7 +1381,7 @@ classify_inner_name (struct parser_state *par_state,
if (yylval.ssym.sym.symbol == NULL)
return ERROR;
- if (yylval.ssym.sym.symbol->aclass () == LOC_TYPEDEF)
+ if (yylval.ssym.sym.symbol->loc_class () == LOC_TYPEDEF)
{
yylval.tsym.type = yylval.ssym.sym.symbol->type ();
return TYPENAME;
diff --git a/gdb/darwin-nat.c b/gdb/darwin-nat.c
index 7acf639..e73b5a1 100644
--- a/gdb/darwin-nat.c
+++ b/gdb/darwin-nat.c
@@ -47,7 +47,6 @@
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>
-#include <ctype.h>
#include <sys/sysctl.h>
#include <sys/proc.h>
#include <libproc.h>
diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in
index 2ca2b8e..d7f4c98 100644
--- a/gdb/data-directory/Makefile.in
+++ b/gdb/data-directory/Makefile.in
@@ -61,6 +61,7 @@ GEN_SYSCALLS_FILES = \
mips-o32-linux.xml \
ppc-linux.xml \
ppc64-linux.xml \
+ riscv-linux.xml \
s390-linux.xml \
s390x-linux.xml \
sparc-linux.xml \
diff --git a/gdb/dictionary.c b/gdb/dictionary.c
index 28e900d..e53331b 100644
--- a/gdb/dictionary.c
+++ b/gdb/dictionary.c
@@ -20,12 +20,10 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include <ctype.h>
#include "gdbsupport/gdb_obstack.h"
#include "symtab.h"
#include "buildsym.h"
#include "dictionary.h"
-#include "gdbsupport/gdb-safe-ctype.h"
#include "gdbsupport/unordered_map.h"
#include "language.h"
@@ -772,7 +770,7 @@ language_defn::search_name_hash (const char *string0) const
if (c == 'B' && string[3] == '_')
{
- for (string += 4; ISDIGIT (*string); ++string)
+ for (string += 4; c_isdigit (*string); ++string)
;
continue;
}
diff --git a/gdb/disasm.c b/gdb/disasm.c
index b731192..c8e830e 100644
--- a/gdb/disasm.c
+++ b/gdb/disasm.c
@@ -28,7 +28,6 @@
#include "cli/cli-cmds.h"
#include "dis-asm.h"
#include "source.h"
-#include "gdbsupport/gdb-safe-ctype.h"
#include <algorithm>
#include <optional>
#include "valprint.h"
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 2bbaf14..a13d5c0 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -898,14 +898,17 @@ debugger attached to a bare board, there may not be any notion of
``process'', and there is often no way to get a core dump. @value{GDBN}
will warn you if it is unable to attach or to read core dumps.
-You can optionally have @code{@value{GDBP}} pass any arguments after the
-executable file to the inferior using @code{--args}. This option stops
-option processing.
+You can optionally have @code{@value{GDBP}} pass any arguments after
+the executable file to the inferior using @code{--args} or
+@code{--no-escape-args}. These options stop option processing.
@smallexample
@value{GDBP} --args gcc -O2 -c foo.c
@end smallexample
This will cause @code{@value{GDBP}} to debug @code{gcc}, and to set
-@code{gcc}'s command-line arguments (@pxref{Arguments}) to @samp{-O2 -c foo.c}.
+@code{gcc}'s command-line arguments (@pxref{Arguments}) to @samp{-O2
+-c foo.c}. For the differences between @code{--args} and
+@code{--no-escape-args}, see @ref{--args and --no-escape-args options,
+,@code{--args} and @code{--no-escape-args}}.
You can run @code{@value{GDBP}} without printing the front material, which describes
@value{GDBN}'s non-warranty, by specifying @code{--silent}
@@ -1212,6 +1215,17 @@ Run @value{GDBN} using @var{directory} as its data directory.
The data directory is where @value{GDBN} searches for its
auxiliary files. @xref{Data Files}.
+@item -binary-output
+@cindex @code{--binary-output}
+
+Instructs @value{GDBN} to set the translation mode of its
+@code{stdout}/@code{stderr} to binary. MS-Windows only. Useful for
+running the @value{GDBN} testsuite. By default, @value{GDBN} opens
+@code{stdout}/@code{stderr} in text mode, and translates @samp{\n}
+(LF, a single Line Feed) into @samp{\r\n} (CR-LF, a Carriage
+Return-Line Feed combination). If this option is set, no translation
+is done.
+
@item -fullname
@itemx -f
@cindex @code{--fullname}
@@ -1240,12 +1254,67 @@ that control @value{GDBN}, and level 2 has been deprecated.
The annotation mechanism has largely been superseded by @sc{gdb/mi}
(@pxref{GDB/MI}).
+@anchor{--args and --no-escape-args options}
@item --args
@cindex @code{--args}
Change interpretation of command line so that arguments following the
executable file are passed as command line arguments to the inferior.
This option stops option processing.
+Arguments supplied using @code{--args} will have backslashes applied
+to escape any special shell characters. This ensures that when the
+inferior starts it is passed arguments exactly as @value{GDBN}
+receives them.
+
+For example, consider the following command run under a shell:
+
+@smallexample
+$ @value{GDBP} --args ls *.c
+@end smallexample
+
+@noindent
+In this case the shell will expand @kbd{*.c} at the time @value{GDBN}
+is invoked, not at the time that the inferior is invoked. As a
+result, if an additional @kbd{.c} file is created after @value{GDBN}
+is started, but before the inferior is started, then the inferior will
+not show the file in its output; the list of matching files was
+resolved at the time @value{GDBN} was started.
+
+If you quote the @kbd{*} character used on the @value{GDBN} command
+line argument then this will prevent the shell that starts
+@value{GDBN} from expanding the @kbd{*.c} pattern, however, this
+quoting will also be passed to the shell that @value{GDBN} invokes in
+order to start the inferior (@pxref{set startup-with-shell}), and this
+will prevent the @kbd{*.c} pattern being expanded at this point either:
+
+@smallexample
+$ @value{GDBP} --args ls '*.c'
+(@value{GDBP}) show args
+Argument list to give program being debugged when it is started is "\*.log".
+@end smallexample
+
+@noindent
+If this quoting behaviour does not meet your needs, then you could use
+@code{--no-escape-args} instead, which is described below.
+
+@item --no-escape-args
+@cindex @code{--no-escape-args}
+Change interpretation of command line so that arguments following the
+executable file are passed as command line arguments to the inferior.
+This option stops option processing.
+
+Unlike @code{--args}, arguments after the executable name will not
+have any escaping applied to them. As a result, any special shell
+characters that are not expanded by the shell that invokes
+@value{GDBN} will be expanded by the shell that @value{GDBN} uses to
+start the inferior.
+
+@smallexample
+$ @value{GDBP} --no-escape-args ls '*.c'
+(@value{GDBP}) show args
+Argument list to give program being debugged when it is started is "*.log".
+@end smallexample
+
@item -baud @var{bps}
@itemx -b @var{bps}
@cindex @code{--baud}
@@ -13104,11 +13173,11 @@ variable which may be @samp{truecolor} or @samp{24bit}. Other color spaces are
determined by the "Co" termcap which in turn depends on the @env{TERM}
environment variable.
-@vindex $_active_linker_namespaces@r{, convenience variable}
-@item $_active_linker_namespaces
+@vindex $_linker_namespace_count@r{, convenience variable}
+@item $_linker_namespace_count
Number of active linker namespaces in the inferior (@pxref{Files}). In systems
-with no support for linker namespaces, this variable will always be set to
-@samp{1}.
+with no support for linker namespaces or if the inferior hasn't started, this
+variable will always be set to @samp{0}.
@vindex $_linker_namespace@r{, convenience variable}
@item $_linker_namespace
@@ -26996,6 +27065,32 @@ information automatically from the core file, and will show one of the above
messages depending on whether the synchronous or asynchronous mode is selected.
@xref{Memory Tagging}. @xref{Memory}.
+@subsubsection AArch64 Guarded Control Stack
+@cindex Guarded Control Stack, AArch64
+@cindex GCS, AArch64
+
+When @value{GDBN} is debugging the AArch64 architecture, the program is
+using the feature Guarded Control Stack (GCS), the operating system kernel
+is Linux and it supports GCS, @value{GDBN} will make a couple of special
+registers --- @code{gcs_features_enabled} and @code{gcs_features_locked}
+--- available through the @code{org.gnu.gdb.aarch64.gcs.linux} feature.
+These registers expose some options that can be controlled at runtime and
+emulate the @code{prctl} option @code{PR_SET_SHADOW_STACK_STATUS}. For
+further information, see the
+@uref{https://www.kernel.org/doc/html/latest/arch/arm64/gcs.html,ignored,
+documentation} in the Linux kernel.
+
+Naturally the Guarded Control Stack pointer at @code{EL0} is also
+available, as the @code{gcspr} register.
+
+To aid debugging, @value{GDBN} will note when SIGSEGV signals are generated
+as a result of a Guarded Control Stack error:
+
+@smallexample
+Program received signal SIGSEGV, Segmentation fault
+Guarded Control Stack error.
+@end smallexample
+
@node x86
@subsection x86
@@ -27037,6 +27132,46 @@ registers
@end itemize
+@subsubsection Intel Control-Flow Enforcement Technology.
+@cindex Intel Control-Flow Enforcement Technology.
+
+The @dfn{Intel Control-Flow Enforcement Technology} (@acronym{Intel CET})
+provides two capabilities to defend against ``Return-oriented Programming''
+and ``call/jmp-oriented programming'' style control-flow attacks:
+
+@itemize @bullet
+@item Shadow Stack:
+A shadow stack is a second stack for a program. It holds the return
+addresses pushed by the call instruction. The @code{RET} instruction pops the
+return addresses from both call and shadow stack. If the return addresses from
+the two stacks do not match, the processor signals a control protection
+exception.
+@item Indirect Branch Tracking (IBT):
+When IBT is enabled, the CPU implements a state machine that tracks
+indirect @code{JMP} and @code{CALL} instructions. The state machine can
+be either IDLE or WAIT_FOR_ENDBRANCH. When a @code{JMP} or @code{CALL} is
+executed the state machine chages to the WAIT_FOR_ENDBRANCH state. In
+WAIT_FOR_ENDBRANCH state the next instruction in the program stream
+must be an @code{ENDBR} instruction, otherwise the processor signals a
+control protection exception. After executing a @code{ENDBR} instruction
+the state machine returns to the IDLE state.
+@end itemize
+
+Impact on @value{GDBN} commands:
+@itemize @bullet
+@item Call/Print:
+Inferior calls in @value{GDBN} reset the current PC to the beginning of the
+function that is called. No call instruction is executed, but the @code{RET}
+instruction actually is. To avoid a control protection exception due to the
+missing return address on the shadow stack, @value{GDBN} pushes the new return
+address to the shadow stack and updates the shadow stack pointer.
+@item Step:
+With displaced stepping, @value{GDBN} may run an out of line copy of a call
+instruction. In this case, the wrong return address is pushed to the shadow
+stack. @value{GDBN} corrects this value to avoid a control protection
+exception. For more details on displaced stepping, see @ref{displaced-stepping}.
+@end itemize
+
@node Alpha
@subsection Alpha
@@ -38880,7 +39015,7 @@ Example output:
@smallexample
(gdb) -list-features
-^done,result=["feature1","feature2"]
+^done,features=["feature1","feature2"]
@end smallexample
The current list of features is:
@@ -38945,7 +39080,7 @@ Example output:
@smallexample
(gdb) -list-target-features
-^done,result=["async"]
+^done,features=["async"]
@end smallexample
The current list of features is:
@@ -41277,6 +41412,14 @@ Configure @value{GDBN} for cross-debugging programs running on the
specified list of targets. The special value @samp{all} configures
@value{GDBN} for debugging programs running on any target it supports.
+@item --enable-binary-file-formats=@r{[}@var{format}@r{]}@dots{}
+@itemx --enable-binary-file-formats=all
+Configure @value{GDBN} to support certain binary file formats. If a
+format is the main (or only) file format for a given target, the
+configure script may add support to it anyway, and warn the user.
+If not given, all file formats that @value{GDBN} supports are compiled
+in.
+
@item --with-gdb-datadir=@var{path}
Set the @value{GDBN}-specific data directory. @value{GDBN} will look
here for certain supporting files or scripts. This defaults to the
@@ -41722,6 +41865,7 @@ GLOBAL Disassembler_2 (Matches current architecture)
@cindex out-of-line single-stepping
@item set displaced-stepping
@itemx show displaced-stepping
+@anchor{displaced-stepping}
Control whether or not @value{GDBN} will do @dfn{displaced stepping}
if the target supports it. Displaced stepping is a way to single-step
over breakpoints without removing them from the inferior, by executing
@@ -42698,6 +42842,26 @@ These are representative commands for each @var{kind} of setting type
@value{GDBN} supports. They are used by the testsuite for exercising
the settings infrastructure.
+@kindex maint test-remote-args
+@item maint test-remote-args @var{args}
+For targets that don't support passing inferior arguments as a single
+string (@pxref{single-inf-arg}), @value{GDBN} will attempt to split
+the inferior arguments before passing them to the remote target, and
+the remote target might choose to join the inferior arguments upon
+receipt. Historically gdbserver did join inferior arguments, but now
+it will request inferior arguments be passed as a single string if
+@value{GDBN} supports this feature.
+
+This maintenance command splits @var{args} as @value{GDBN} would
+normally split such an argument string before passing the arguments to
+a remote target, the split arguments are then printed.
+
+The split arguments are then joined together as gdbserver would join
+them, and the result is printed.
+
+This command is intended to help diagnose issues passing inferior
+arguments to remote targets.
+
@kindex maint set backtrace-on-fatal-signal
@kindex maint show backtrace-on-fatal-signal
@item maint set backtrace-on-fatal-signal [on|off]
@@ -42766,22 +42930,6 @@ reports and error and the command is aborted.
@item show watchdog
Show the current setting of the target wait timeout.
-@kindex maint set console-translation-mode
-@kindex maint show console-translation-mode
-@item maint set console-translation-mode @r{[}binary|text@r{]}
-@itemx maint show console-translation-mode
-Controls the translation mode of @value{GDBN} stdout/stderr. MS-Windows
-only. Useful for running the @value{GDBN} testsuite.
-
-The translation mode values are as follows:
-@table @code
-@item binary
-No translation.
-@item text
-Translate @samp{\n} (LF, a single Line Feed) into @samp{\r\n} (CR-LF, a
-Carriage Return-Line Feed combination).
-@end table
-
@end table
@node Remote Protocol
@@ -43638,6 +43786,12 @@ command line. The file and arguments are hex-encoded strings. If
(e.g.@: the last program run). The program is created in the stopped
state.
+If @value{GDBN} sent the @samp{single-inf-arg} feature in the
+@samp{qSupported} packet (@pxref{single-inf-arg}), and the stub replied
+with @samp{single-inf-arg+}, then there will only be a single
+@var{argument} string, which includes all inferior arguments,
+separated with whitespace.
+
@c FIXME: What about non-stop mode?
This packet is only available in extended mode (@pxref{extended mode}).
@@ -44879,7 +45033,8 @@ packets.)
@anchor{qSearch memory}
Search @var{length} bytes at @var{address} for @var{search-pattern}.
Both @var{address} and @var{length} are encoded in hex;
-@var{search-pattern} is a sequence of bytes, also hex encoded.
+@var{search-pattern} is a sequence of binary-encoded bytes
+(@pxref{Binary Data}).
Reply:
@table @samp
@@ -45021,6 +45176,14 @@ didn't support @samp{E.@var{errtext}}, and older versions of
New packets should be written to support @samp{E.@var{errtext}}
regardless of this feature being true or not.
+
+@anchor{single-inf-arg}
+@item single-inf-arg
+This feature indicates that @value{GDBN} would like to send the
+inferior arguments as a single string within the @samp{vRun} packet.
+@value{GDBN} will not send the arguments as a single string unless the
+stub also reports that it supports this behaviour by including
+@samp{single-inf-arg+} in its @samp{qSupported} reply.
@end table
Stubs should ignore any unknown values for
@@ -45324,6 +45487,11 @@ These are the currently defined stub features and their properties:
@tab @samp{-}
@tab No
+@item @samp{single-inf-arg}
+@tab No
+@tab @samp{-}
+@tab No
+
@end multitable
These are the currently defined stub features, in more detail:
@@ -45573,6 +45741,12 @@ if it sent the @samp{error-message} feature.
@item binary-upload
The remote stub supports the @samp{x} packet (@pxref{x packet}).
+
+@item single-inf-arg
+The remote stub would like to receive the inferior arguments as a
+single string within the @samp{vRun} packet. The stub should only
+send this feature if @value{GDBN} sent @samp{single-inf-arg+} in the
+@samp{qSupported} packet.
@end table
@item qSymbol::
@@ -49554,6 +49728,63 @@ of bytes.
Extra registers are allowed in this feature, but they will not affect
@value{GDBN}.
+@subsubsection AArch64 GCS registers feature
+
+The @samp{org.gnu.gdb.aarch64.gcs} feature is optional. If present, it
+means the target supports Guarded Control Stacks and must contain the
+following register:
+
+@itemize @minus
+
+@item
+@code{gcspr}, which points to the thread's Guarded Control Stack. It is 64
+bits in size and has a type of @samp{data_ptr}.
+
+@end itemize
+
+The @samp{org.gnu.gdb.aarch64.gcs.linux} feature is optional. If present,
+then the @samp{org.gnu.gdb.aarch64.gcs} feature must also be present. The
+@samp{org.gnu.gdb.aarch64.gcs.linux} feature represents facilities provided
+by the Linux kernel for GCS support and should contain the following:
+
+@itemize @minus
+
+@item
+@code{gcs_features_enabled} shows the features currently enabled via the
+prctl or ptrace system calls. It is represented as if it were a 64-bit
+register with a custom flags type.
+
+@item
+@code{gcs_features_locked} shows the features currently locked via the
+prctl or ptrace system calls. It is represented as if it were a 64-bit
+register with a custom flags type.
+
+@end itemize
+
+The custom flags type allows @value{GDBN} to print a human-friendly
+representation of the contents of @code{gcs_features_enabled} and
+@code{gcs_features_locked} and should contain:
+
+@itemize @minus
+
+@item
+@code{PR_SHADOW_STACK_ENABLE}
+
+@item
+@code{PR_SHADOW_STACK_WRITE}
+
+@item
+@code{PR_SHADOW_STACK_PUSH}
+
+@end itemize
+
+For further information, see the
+@uref{https://www.kernel.org/doc/html/latest/arch/arm64/gcs.html,ignored,
+documentation} in the Linux kernel.
+
+Extra registers are allowed in these features, but they will not affect
+@value{GDBN}.
+
@node Alpha Features
@subsection Alpha Features
@cindex target descriptions, Alpha Features
@@ -50028,6 +50259,12 @@ The @samp{org.gnu.gdb.i386.pkeys} feature is optional. It should
describe a single register, @samp{pkru}. It is a 32-bit register
valid for i386 and amd64.
+The @samp{org.gnu.gdb.i386.pl3_ssp} feature is optional. It should
+describe the user mode register @samp{pl3_ssp} which has 64 bits on
+amd64, 32 bits on amd64 with 32-bit pointer size (X32) and 32 bits on i386.
+Following the restriction of the Linux kernel, only @value{GDBN} for amd64
+targets makes use of this feature for now.
+
@node LoongArch Features
@subsection LoongArch Features
@cindex target descriptions, LoongArch Features
@@ -50547,17 +50784,13 @@ unless otherwise noted:
@enumerate
@item
-The version number, currently 9. Versions 1, 2 and 3 are obsolete.
-Version 4 uses a different hashing function from versions 5 and 6.
-Version 6 includes symbols for inlined functions, whereas versions 4
-and 5 do not. Version 7 adds attributes to the CU indices in the
-symbol table. Version 8 specifies that symbols from DWARF type units
+The version number, currently 9. Versions 1 through 6 are obsolete.
+Version 7 adds attributes to the CU indices in the symbol table.
+Version 8 specifies that symbols from DWARF type units
(@samp{DW_TAG_type_unit}) refer to the type unit's symbol table and not the
compilation unit (@samp{DW_TAG_comp_unit}) using the type. Version 9 adds
the name and the language of the main function to the index.
-@value{GDBN} will only read version 4, 5, or 6 indices
-by specifying @code{set use-deprecated-index-sections on}.
GDB has a workaround for potentially broken version 7 indices so it is
currently not flagged as deprecated.
@@ -50576,7 +50809,8 @@ The offset, from the start of the file, of the address area.
The offset, from the start of the file, of the symbol table.
@item
-The offset, from the start of the file, of the shortcut table.
+The offset, from the start of the file, of the shortcut table. This
+field was introduced with index version 9.
@item
The offset, from the start of the file, of the constant pool.
@@ -50669,6 +50903,8 @@ in the constant pool. This value must be ignored if the value for the language
of main is zero.
@end table
+This data structure was introduced in index version 9.
+
@item
The constant pool. This is simply a bunch of bytes. It is organized
so that alignment is correct: CU vectors are stored first, followed by
@@ -51101,9 +51337,10 @@ Note that targets that give their output via @value{GDBN}, as opposed to writing
directly to @code{stdout}, will also be made silent.
@item --args @var{prog} [@var{arglist}]
-Change interpretation of command line so that arguments following this
-option are passed as arguments to the inferior. As an example, take
-the following command:
+@itemx --no-escape-args @var{prog} [@var{arglist}]
+Change interpretation of command line so that arguments following
+either of these options are passed as arguments to the inferior. As
+an example, take the following command:
@smallexample
gdb ./a.out -q
@@ -51118,7 +51355,44 @@ gdb --args ./a.out -q
@end smallexample
@noindent
-starts @value{GDBN} with the introductory message, and passes the option to the inferior.
+starts @value{GDBN} with the introductory message, and passes the
+option @code{-q} to the inferior.
+
+The difference between @option{--args} and @option{--no-escape-args}
+is whether @value{GDBN} applies escapes to the arguments it sees:
+
+@smallexample
+gdb --args ./a.out *.c
+@end smallexample
+
+@noindent
+in this case the @code{*.c} is expanded by the shell that invokes
+@value{GDBN}, the list of matching files will be fixed in the inferior
+argument list. If instead this is used:
+
+@smallexample
+gdb --args ./a.out '*.c'
+@end smallexample
+
+@noindent
+then the shell that invokes @value{GDBN} will not expand @code{*.c},
+instead @value{GDBN} will escape the @code{*} character, so when a.out
+is invoked it will be passed a literal @code{*.c}. If instead this is
+used:
+
+@smallexample
+gdb --no-escape-args ./a.out '*.c'
+@end smallexample
+
+@noindent
+now @value{GDBN} will not escape the @code{*} character. When the
+inferior is invoked the @code{*.c} will be expanded, and the inferior
+will be passed the list of files as present at the time the inferior
+is invoked.
+
+This change of behaviour can be important if the list of matching
+files could change between the time that @value{GDBN} is started, and
+the time the inferior is started.
@item --pid=@var{pid}
Attach @value{GDBN} to an already running program, with the PID @var{pid}.
@@ -51460,6 +51734,18 @@ additional connections are possible. However, if you start @code{gdbserver}
with the @option{--once} option, it will stop listening for any further
connection attempts after connecting to the first @value{GDBN} session.
+@item --no-escape-args
+By default, inferior arguments passed on the @command{gdbserver}
+command line will have any special shell characters escaped by
+@command{gdbserver}. This ensures that when @command{gdbserver}
+invokes the inferior, the arguments passed to the inferior are
+identical to the arguments passed to @command{gdbserver}.
+
+To disable this escaping, use @option{--no-escape-args}. With this
+option special shell characters will not be escaped. When
+@command{gdbserver} starts a new shell in order to invoke the
+inferior, this new shell will expand any special shell characters.
+
@c --disable-packet is not documented for users.
@c --disable-randomization and --no-disable-randomization are superseded by
@@ -51522,6 +51808,12 @@ composed as @file{@var{prefix}.@var{pid}}, where @var{pid} is the
process ID of the running program being analyzed by @command{gcore}.
If not specified, @var{prefix} defaults to @var{core}.
+@item -g @var{gdb}
+Use @var{gdb} as the executable binary to invoke @value{GDBN} for
+running the gcore command. This argument is optional, and defaults to
+invoking the @value{GDBN} binary that is installed alongside
+@command{gcore}.
+
@item -d @var{directory}
Use @var{directory} as the data directory when invoking @value{GDBN} for running
the gcore command. This argument is optional.
diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi
index 6fa2285..3763eee 100644
--- a/gdb/doc/python.texi
+++ b/gdb/doc/python.texi
@@ -910,7 +910,26 @@ this attribute holds @code{None}.
@cindex optimized out value in Python
@defvar Value.is_optimized_out
This read-only boolean attribute is true if the compiler optimized out
-this value, thus it is not available for fetching from the inferior.
+this value, or any part of this value, and thus it is not available
+for fetching from the inferior.
+@end defvar
+
+@cindex unavailable values in Python
+@defvar Value.is_unavailable
+This read-only boolean attribute is true if this value, or any part of
+this value, is not available to @value{GDBN}. Where an optimized out
+value has been removed from the program by the compiler, an
+unavailable value does exist in the program, but @value{GDBN} is
+unable to fetch it.
+
+Some reasons why this might occur include, but are not limited to: a
+core file format that @value{GDBN} doesn't fully understand; during
+live debugging if the debug API has no mechanism to access the
+required state, e.g.@: the kernel gives an error when trying to read a
+particular register set; or reading a value from @value{GDBN}'s
+history, when only a partial value was stored, e.g.@: due to the
+@kbd{max-value-size} setting (@pxref{set
+max-value-size,,max-value-size}).
@end defvar
@defvar Value.type
diff --git a/gdb/dwarf2/abbrev.c b/gdb/dwarf2/abbrev.c
index 5cfff69..e3c268e 100644
--- a/gdb/dwarf2/abbrev.c
+++ b/gdb/dwarf2/abbrev.c
@@ -108,6 +108,8 @@ abbrev_table::read (struct dwarf2_section_info *section,
cur_abbrev->has_children = read_1_byte (abfd, abbrev_ptr);
abbrev_ptr += 1;
+ cur_abbrev->maybe_ada_import = false;
+
unsigned int size = 0;
unsigned int sibling_offset = -1;
bool is_csize = true;
@@ -242,7 +244,12 @@ abbrev_table::read (struct dwarf2_section_info *section,
}
else if (has_hardcoded_declaration
&& (cur_abbrev->tag != DW_TAG_variable || !has_external))
- cur_abbrev->interesting = false;
+ {
+ cur_abbrev->interesting = false;
+ if (cur_abbrev->tag == DW_TAG_subprogram && has_name
+ && has_linkage_name)
+ cur_abbrev->maybe_ada_import = true;
+ }
else if (!tag_interesting_for_index (cur_abbrev->tag))
cur_abbrev->interesting = false;
else
diff --git a/gdb/dwarf2/abbrev.h b/gdb/dwarf2/abbrev.h
index 6fc61b1..a36bb8c 100644
--- a/gdb/dwarf2/abbrev.h
+++ b/gdb/dwarf2/abbrev.h
@@ -51,6 +51,14 @@ struct abbrev_info
/* True if the DIE has children. */
bool has_children;
bool interesting;
+ /* In Ada, an imported subprogram DIE will be marked as a
+ declaration, but will have both a name and a linkage name. This
+ declaration may be the only spot where that name is associated
+ with an object, so it has to show up in the index. But, because
+ abbrevs are CU-independent, we can't check the language when
+ computing them and instead we keep a separate flag to indicate
+ that the scanner should check this DIE. */
+ bool maybe_ada_import;
unsigned short size_if_constant;
unsigned short sibling_offset;
/* Number of attributes. */
diff --git a/gdb/dwarf2/ada-imported.c b/gdb/dwarf2/ada-imported.c
index 1e25966..48e6fcc 100644
--- a/gdb/dwarf2/ada-imported.c
+++ b/gdb/dwarf2/ada-imported.c
@@ -109,7 +109,7 @@ ada_alias_get_block_value (const struct symbol *sym)
if (real_symbol.symbol == nullptr)
error (_("could not find alias '%s' for function '%s'"),
name, sym->print_name ());
- if (real_symbol.symbol->aclass () != LOC_BLOCK)
+ if (real_symbol.symbol->loc_class () != LOC_BLOCK)
error (_("alias '%s' for function '%s' is not a function"),
name, sym->print_name ());
diff --git a/gdb/dwarf2/cooked-index-entry.c b/gdb/dwarf2/cooked-index-entry.c
index 863ddd6..0482b64 100644
--- a/gdb/dwarf2/cooked-index-entry.c
+++ b/gdb/dwarf2/cooked-index-entry.c
@@ -19,7 +19,6 @@
#include "dwarf2/cooked-index-entry.h"
#include "dwarf2/tag.h"
-#include "gdbsupport/gdb-safe-ctype.h"
#include "gdbsupport/selftest.h"
/* See cooked-index-entry.h. */
@@ -57,7 +56,7 @@ cooked_index_entry::compare (const char *stra, const char *strb,
template functions" section in the manual. */
if (c == '<')
return '\0';
- return TOLOWER ((unsigned char) c);
+ return c_tolower (c);
};
unsigned char a = munge (*stra);
@@ -189,8 +188,15 @@ cooked_index_entry::full_name (struct obstack *storage,
break;
case language_ada:
+ /* If GNAT emits hierarchical names (patches not in at the time
+ of writing), then we need to compute the linkage name here.
+ However for traditional GNAT, the linkage name will be in
+ 'name'. Detect this by looking for "__"; see also
+ cooked_index_shard::finalize. */
if ((name_flags & FOR_ADA_LINKAGE_NAME) != 0)
{
+ if (strstr (name, "__") != nullptr)
+ return name;
sep = "__";
break;
}
diff --git a/gdb/dwarf2/cooked-index-shard.c b/gdb/dwarf2/cooked-index-shard.c
index c717bbb..e440d85 100644
--- a/gdb/dwarf2/cooked-index-shard.c
+++ b/gdb/dwarf2/cooked-index-shard.c
@@ -86,7 +86,21 @@ cooked_index_shard::add (sect_offset die_offset, enum dwarf_tag tag,
implicit "main" discovery. */
if ((flags & IS_MAIN) != 0)
m_main = result;
- else if ((flags & IS_PARENT_DEFERRED) == 0
+ /* The language check here is subtle: it exists solely to work
+ around a bug in .gdb_index. That index does not record
+ languages, but it might emit an entry for "main". However,
+ recognizing this "main" as being the main program would be wrong
+ -- for example, an Ada program has a C "main" but this is not the
+ desired target of the "start" command. Requiring the language to
+ be set here avoids over-eagerly setting the "main" when using
+ .gdb_index. Should .gdb_index ever be removed (PR symtab/31363),
+ the language_unknown check here could also be removed.
+
+ Note that this explicit check isn't truly needed (it is covered
+ by language_may_use_plain_main as well), but it's handy as a spot
+ to document. */
+ else if (lang != language_unknown
+ && (flags & IS_PARENT_DEFERRED) == 0
&& parent_entry.resolved == nullptr
&& m_main == nullptr
&& language_may_use_plain_main (lang)
@@ -108,7 +122,7 @@ cooked_index_shard::handle_gnat_encoded_entry
characters are left as-is. This is done to make name matching a
bit simpler; and for wide characters, it means the choice of Ada
source charset does not affect the indexer directly. */
- std::string canonical = ada_decode (entry->name, false, false, false);
+ std::string canonical = ada_decode (entry->name, false, false);
if (canonical.empty ())
{
entry->canonical = entry->name;
diff --git a/gdb/dwarf2/cooked-index-shard.h b/gdb/dwarf2/cooked-index-shard.h
index 925960b..3a8e34d 100644
--- a/gdb/dwarf2/cooked-index-shard.h
+++ b/gdb/dwarf2/cooked-index-shard.h
@@ -48,6 +48,13 @@ public:
cooked_index_entry_ref parent_entry,
dwarf2_per_cu *per_cu);
+ /* Add a copy of NAME to the index. Return a pointer to the
+ copy. */
+ const char *add (std::string_view name)
+ {
+ return m_names.insert (name);
+ }
+
/* Install a new fixed addrmap from the given mutable addrmap. */
void install_addrmap (addrmap_mutable *map)
{
diff --git a/gdb/dwarf2/cooked-index-worker.h b/gdb/dwarf2/cooked-index-worker.h
index 8b9766c..433515b 100644
--- a/gdb/dwarf2/cooked-index-worker.h
+++ b/gdb/dwarf2/cooked-index-worker.h
@@ -87,6 +87,13 @@ public:
name, parent_entry, per_cu);
}
+ /* Add a copy of NAME to the index. Return a pointer to the
+ copy. */
+ const char *add (std::string_view name)
+ {
+ return m_shard->add (name);
+ }
+
/* Install the current addrmap into the shard being constructed,
then transfer ownership of the index to the caller. */
cooked_index_shard_up release_shard ()
@@ -103,6 +110,12 @@ public:
return &m_addrmap;
}
+ /* Set the mutable addrmap. */
+ void set_addrmap (addrmap_mutable new_map)
+ {
+ m_addrmap = std::move (new_map);
+ }
+
/* Return the parent_map that is currently being created. */
parent_map *get_parent_map ()
{
@@ -210,7 +223,7 @@ enum class cooked_state
This is an abstract base class that defines the basic behavior of
scanners. Separate concrete implementations exist for scanning
- .debug_names and .debug_info. */
+ .debug_names, .gdb_index, and .debug_info. */
class cooked_index_worker
{
diff --git a/gdb/dwarf2/cooked-index.h b/gdb/dwarf2/cooked-index.h
index 43b2723..42d7ec3 100644
--- a/gdb/dwarf2/cooked-index.h
+++ b/gdb/dwarf2/cooked-index.h
@@ -237,15 +237,15 @@ struct cooked_index_functions : public dwarf2_base_index_functions
dwarf2_base_index_functions::expand_all_symtabs (objfile);
}
- bool expand_symtabs_matching
+ bool search
(struct objfile *objfile,
- expand_symtabs_file_matcher file_matcher,
+ search_symtabs_file_matcher file_matcher,
const lookup_name_info *lookup_name,
- expand_symtabs_symbol_matcher symbol_matcher,
- expand_symtabs_expansion_listener expansion_notify,
+ search_symtabs_symbol_matcher symbol_matcher,
+ search_symtabs_expansion_listener listener,
block_search_flags search_flags,
domain_search_flags domain,
- expand_symtabs_lang_matcher lang_matcher) override;
+ search_symtabs_lang_matcher lang_matcher) override;
struct compunit_symtab *find_pc_sect_compunit_symtab
(struct objfile *objfile, bound_minimal_symbol msymbol,
diff --git a/gdb/dwarf2/cooked-indexer.c b/gdb/dwarf2/cooked-indexer.c
index d4557c45..913ff77 100644
--- a/gdb/dwarf2/cooked-indexer.c
+++ b/gdb/dwarf2/cooked-indexer.c
@@ -20,6 +20,9 @@
#include "dwarf2/cooked-indexer.h"
#include "dwarf2/cooked-index-worker.h"
#include "dwarf2/error.h"
+#include "dwarf2/read.h"
+#include "cp-support.h"
+#include "demangle.h"
/* See cooked-indexer.h. */
@@ -297,7 +300,7 @@ cooked_indexer::scan_attributes (dwarf2_per_cu *scanning_per_cu,
|| abbrev->tag == DW_TAG_namespace)
&& abbrev->has_children)
*flags |= IS_TYPE_DECLARATION;
- else
+ else if (!is_ada_import_or_export (reader->cu (), *name, *linkage_name))
{
*linkage_name = nullptr;
*name = nullptr;
@@ -506,7 +509,8 @@ cooked_indexer::index_dies (cutu_reader *reader,
/* If a DIE parent is a DW_TAG_subprogram, then the DIE is only
interesting if it's a DW_TAG_subprogram or a DW_TAG_entry_point. */
bool die_interesting
- = (abbrev->interesting
+ = ((abbrev->interesting
+ || (m_language == language_ada && abbrev->maybe_ada_import))
&& (parent_entry == nullptr
|| parent_entry->tag != DW_TAG_subprogram
|| abbrev->tag == DW_TAG_subprogram
@@ -542,6 +546,11 @@ cooked_indexer::index_dies (cutu_reader *reader,
flags &= ~IS_STATIC;
flags |= parent_entry->flags & IS_STATIC;
}
+ else if (abbrev->tag == DW_TAG_imported_declaration)
+ {
+ /* Match the full reader. */
+ flags &= ~IS_STATIC;
+ }
if (abbrev->tag == DW_TAG_namespace
&& m_language == language_cplus
@@ -554,6 +563,30 @@ cooked_indexer::index_dies (cutu_reader *reader,
name = nullptr;
}
+ /* An otherwise anonymous type might be given a name (via
+ typedef) for linkage purposes, and gdb tries to handle this
+ case. See anon-struct.exp. In this case, GCC will emit a
+ funny thing: a linkage name for the type, but in "type" form.
+ That is, it will not start with _Z. */
+ if ((abbrev->tag == DW_TAG_class_type
+ || abbrev->tag == DW_TAG_structure_type
+ || abbrev->tag == DW_TAG_union_type)
+ && m_language == language_cplus
+ && name == nullptr
+ && linkage_name != nullptr)
+ {
+ gdb::unique_xmalloc_ptr<char> dem
+ = gdb_demangle (linkage_name, DMGL_GNU_V3 | DMGL_TYPES);
+ if (dem != nullptr)
+ {
+ /* We're only interested in the last component. */
+ std::vector<std::string_view> split
+ = split_name (dem.get (), split_style::CXX);
+ name = m_index_storage->add (split.back ());
+ linkage_name = nullptr;
+ }
+ }
+
cooked_index_entry *this_entry = nullptr;
if (name != nullptr)
{
diff --git a/gdb/dwarf2/index-common.c b/gdb/dwarf2/index-common.c
index c24c8fc..a314ce7 100644
--- a/gdb/dwarf2/index-common.c
+++ b/gdb/dwarf2/index-common.c
@@ -31,7 +31,7 @@ mapped_index_string_hash (int index_version, const void *p)
while ((c = *str++) != 0)
{
if (index_version >= 5)
- c = tolower (c);
+ c = c_tolower (c);
r = r * 67 + c - 113;
}
@@ -45,12 +45,12 @@ dwarf5_djb_hash (const char *str_)
{
const unsigned char *str = (const unsigned char *) str_;
- /* Note: tolower here ignores UTF-8, which isn't fully compliant.
+ /* Note: c_tolower here ignores UTF-8, which isn't fully compliant.
See http://dwarfstd.org/ShowIssue.php?issue=161027.1. */
uint32_t hash = 5381;
while (int c = *str++)
- hash = hash * 33 + tolower (c);
+ hash = hash * 33 + c_tolower (c);
return hash;
}
@@ -59,11 +59,11 @@ dwarf5_djb_hash (const char *str_)
uint32_t
dwarf5_djb_hash (std::string_view str)
{
- /* Note: tolower here ignores UTF-8, which isn't fully compliant.
+ /* Note: c_tolower here ignores UTF-8, which isn't fully compliant.
See http://dwarfstd.org/ShowIssue.php?issue=161027.1. */
uint32_t hash = 5381;
for (char c : str)
- hash = hash * 33 + tolower (c & 0xff);
+ hash = hash * 33 + c_tolower (c & 0xff);
return hash;
}
diff --git a/gdb/dwarf2/index-write.c b/gdb/dwarf2/index-write.c
index d5b198b..37e66a5 100644
--- a/gdb/dwarf2/index-write.c
+++ b/gdb/dwarf2/index-write.c
@@ -55,7 +55,7 @@
#define DW2_GDB_INDEX_SYMBOL_KIND_SET_VALUE(cu_index, value) \
do { \
gdb_assert ((value) >= GDB_INDEX_SYMBOL_KIND_TYPE \
- && (value) <= GDB_INDEX_SYMBOL_KIND_OTHER); \
+ && (value) <= GDB_INDEX_SYMBOL_KIND_UNUSED5); \
GDB_INDEX_SYMBOL_KIND_SET_VALUE((cu_index), (value)); \
} while (0)
@@ -422,10 +422,47 @@ symtab_index_entry::minimize ()
if (name == nullptr || cu_indices.empty ())
return;
- std::sort (cu_indices.begin (), cu_indices.end ());
+ /* We sort the indexes in a funny way: GDB_INDEX_SYMBOL_KIND_UNUSED5
+ is always sorted last; then otherwise we sort by numeric value.
+ This ensures that we prefer the definition when both a definition
+ and a declaration (stub type) are seen. */
+ std::sort (cu_indices.begin (), cu_indices.end (),
+ [] (offset_type vala, offset_type valb)
+ {
+ auto kinda = GDB_INDEX_SYMBOL_KIND_VALUE (vala);
+ auto kindb = GDB_INDEX_SYMBOL_KIND_VALUE (valb);
+ if (kinda != kindb)
+ {
+ /* Declaration sorts last. */
+ if (kinda == GDB_INDEX_SYMBOL_KIND_UNUSED5)
+ return false;
+ if (kindb == GDB_INDEX_SYMBOL_KIND_UNUSED5)
+ return true;
+ }
+ return vala < valb;
+ });
auto from = std::unique (cu_indices.begin (), cu_indices.end ());
cu_indices.erase (from, cu_indices.end ());
+ /* Rewrite GDB_INDEX_SYMBOL_KIND_UNUSED5. This ensures that a type
+ declaration will be deleted by the subsequent squashing step, if
+ warranted. */
+ for (auto &val : cu_indices)
+ {
+ gdb_index_symbol_kind kind = GDB_INDEX_SYMBOL_KIND_VALUE (val);
+ if (kind != GDB_INDEX_SYMBOL_KIND_UNUSED5)
+ continue;
+
+ offset_type newval = 0;
+ DW2_GDB_INDEX_CU_SET_VALUE (newval, GDB_INDEX_CU_VALUE (val));
+ DW2_GDB_INDEX_SYMBOL_STATIC_SET_VALUE
+ (newval, GDB_INDEX_SYMBOL_STATIC_VALUE (val));
+ DW2_GDB_INDEX_SYMBOL_KIND_SET_VALUE (newval,
+ GDB_INDEX_SYMBOL_KIND_TYPE);
+
+ val = newval;
+ }
+
/* We don't want to enter a type more than once, so
remove any such duplicates from the list as well. When doing
this, we want to keep the entry from the first CU -- but this is
@@ -720,7 +757,7 @@ public:
});
m_name_table_string_offs.push_back_reorder
- (m_debugstrlookup.lookup (name.c_str ())); /* ??? */
+ (m_debugstrlookup.lookup (name.c_str ()));
m_name_table_entry_offs.push_back_reorder (m_entry_pool.size ());
for (const cooked_index_entry *entry : these_entries)
@@ -885,10 +922,21 @@ private:
{
public:
- /* Object constructor to be called for current DWARF2_PER_BFD. */
- debug_str_lookup (dwarf2_per_bfd *per_bfd)
+ /* Object constructor to be called for current DWARF2_PER_BFD.
+ All .debug_str section strings are automatically stored. */
+ explicit debug_str_lookup (dwarf2_per_bfd *per_bfd)
: m_per_bfd (per_bfd)
{
+ gdb_assert (per_bfd->str.readin);
+ const gdb_byte *data = per_bfd->str.buffer;
+ if (data == nullptr)
+ return;
+ while (data < per_bfd->str.buffer + per_bfd->str.size)
+ {
+ const char *const s = reinterpret_cast<const char *> (data);
+ m_str_table.emplace (c_str_view (s), data - per_bfd->str.buffer);
+ data += strlen (s) + 1;
+ }
}
/* Return offset of symbol name S in the .debug_str section. Add
@@ -896,13 +944,6 @@ private:
yet. */
size_t lookup (const char *s)
{
- /* Most strings will have come from the string table
- already. */
- const gdb_byte *b = (const gdb_byte *) s;
- if (b >= m_per_bfd->str.buffer
- && b < m_per_bfd->str.buffer + m_per_bfd->str.size)
- return b - m_per_bfd->str.buffer;
-
const auto it = m_str_table.find (c_str_view (s));
if (it != m_str_table.end ())
return it->second;
@@ -1212,6 +1253,21 @@ write_cooked_index (cooked_index *table,
const cu_index_map &cu_index_htab,
struct mapped_symtab *symtab)
{
+ gdb::unordered_set<const cooked_index_entry *> required_decl_entries;
+ for (const cooked_index_entry *entry : table->all_entries ())
+ {
+ /* Any type declaration that is used as a (non-trivial) parent
+ entry must be written out. */
+ if ((entry->flags & IS_TYPE_DECLARATION) == 0)
+ {
+ for (const cooked_index_entry *parent = entry->get_parent ();
+ parent != nullptr;
+ parent = parent->get_parent ())
+ if ((parent->flags & IS_TYPE_DECLARATION) != 0)
+ required_decl_entries.insert (parent);
+ }
+ }
+
for (const cooked_index_entry *entry : table->all_entries ())
{
const auto it = cu_index_htab.find (entry->per_cu);
@@ -1237,11 +1293,10 @@ write_cooked_index (cooked_index *table,
be redundant are rare and not worth supporting. */
continue;
}
- else if ((entry->flags & IS_TYPE_DECLARATION) != 0)
- {
- /* Don't add type declarations to the index. */
- continue;
- }
+ /* Don't add most type declarations to the index. */
+ else if ((entry->flags & IS_TYPE_DECLARATION) != 0
+ && !required_decl_entries.contains (entry))
+ continue;
gdb_index_symbol_kind kind;
if (entry->tag == DW_TAG_subprogram
@@ -1252,7 +1307,16 @@ write_cooked_index (cooked_index *table,
|| entry->tag == DW_TAG_enumerator)
kind = GDB_INDEX_SYMBOL_KIND_VARIABLE;
else if (tag_is_type (entry->tag))
- kind = GDB_INDEX_SYMBOL_KIND_TYPE;
+ {
+ /* If we added a type declaration, we want to note this
+ fact for later, because we don't want a type declaration
+ to cause the real definition to be omitted from the
+ index. GDB_INDEX_SYMBOL_KIND_UNUSED5 is used here, but
+ rewritten later before the index is written. */
+ kind = ((entry->flags & IS_TYPE_DECLARATION) == 0
+ ? GDB_INDEX_SYMBOL_KIND_TYPE
+ : GDB_INDEX_SYMBOL_KIND_UNUSED5);
+ }
else
kind = GDB_INDEX_SYMBOL_KIND_OTHER;
diff --git a/gdb/dwarf2/line-program.c b/gdb/dwarf2/line-program.c
new file mode 100644
index 0000000..c30f70d
--- /dev/null
+++ b/gdb/dwarf2/line-program.c
@@ -0,0 +1,720 @@
+/* DWARF 2 debugging format support for GDB.
+
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include "dwarf2/line-program.h"
+#include "dwarf2/cu.h"
+#include "dwarf2/line-header.h"
+#include "dwarf2/read.h"
+#include "buildsym.h"
+#include "complaints.h"
+#include "filenames.h"
+#include "gdbarch.h"
+
+static void
+dwarf2_debug_line_missing_file_complaint ()
+{
+ complaint (_(".debug_line section has line data without a file"));
+}
+
+static void
+dwarf2_debug_line_missing_end_sequence_complaint ()
+{
+ complaint (_(".debug_line section has line "
+ "program sequence without an end"));
+}
+
+/* State machine to track the state of the line number program. */
+
+class lnp_state_machine
+{
+public:
+ /* Initialize a machine state for the start of a line number
+ program. */
+ lnp_state_machine (struct dwarf2_cu *cu, gdbarch *arch, line_header *lh);
+
+ file_entry *current_file ()
+ {
+ /* lh->file_names is 0-based, but the file name numbers in the
+ statement program are 1-based. */
+ return m_line_header->file_name_at (m_file);
+ }
+
+ /* Record the line in the state machine. END_SEQUENCE is true if
+ we're processing the end of a sequence. */
+ void record_line (bool end_sequence);
+
+ /* Check ADDRESS is -1, -2, or zero and less than UNRELOCATED_LOWPC, and if
+ true nop-out rest of the lines in this sequence. */
+ void check_line_address (struct dwarf2_cu *cu,
+ const gdb_byte *line_ptr,
+ unrelocated_addr unrelocated_lowpc,
+ unrelocated_addr address);
+
+ void handle_set_discriminator (unsigned int discriminator)
+ {
+ m_discriminator = discriminator;
+ m_line_has_non_zero_discriminator |= discriminator != 0;
+ }
+
+ /* Handle DW_LNE_set_address. */
+ void handle_set_address (unrelocated_addr address)
+ {
+ m_op_index = 0;
+ m_address
+ = (unrelocated_addr) gdbarch_adjust_dwarf2_line (m_gdbarch,
+ (CORE_ADDR) address,
+ false);
+ }
+
+ /* Handle DW_LNS_advance_pc. */
+ void handle_advance_pc (CORE_ADDR adjust);
+
+ /* Handle a special opcode. */
+ void handle_special_opcode (unsigned char op_code);
+
+ /* Handle DW_LNS_advance_line. */
+ void handle_advance_line (int line_delta)
+ {
+ advance_line (line_delta);
+ }
+
+ /* Handle DW_LNS_set_file. */
+ void handle_set_file (file_name_index file);
+
+ /* Handle DW_LNS_negate_stmt. */
+ void handle_negate_stmt ()
+ {
+ m_flags ^= LEF_IS_STMT;
+ }
+
+ /* Handle DW_LNS_const_add_pc. */
+ void handle_const_add_pc ();
+
+ /* Handle DW_LNS_fixed_advance_pc. */
+ void handle_fixed_advance_pc (CORE_ADDR addr_adj)
+ {
+ addr_adj = gdbarch_adjust_dwarf2_line (m_gdbarch, addr_adj, true);
+ m_address = (unrelocated_addr) ((CORE_ADDR) m_address + addr_adj);
+ m_op_index = 0;
+ }
+
+ /* Handle DW_LNS_copy. */
+ void handle_copy ()
+ {
+ record_line (false);
+ m_discriminator = 0;
+ m_flags &= ~LEF_PROLOGUE_END;
+ m_flags &= ~LEF_EPILOGUE_BEGIN;
+ }
+
+ /* Handle DW_LNE_end_sequence. */
+ void handle_end_sequence ()
+ {
+ m_currently_recording_lines = true;
+ }
+
+ /* Handle DW_LNS_set_prologue_end. */
+ void handle_set_prologue_end ()
+ {
+ m_flags |= LEF_PROLOGUE_END;
+ }
+
+ void handle_set_epilogue_begin ()
+ {
+ m_flags |= LEF_EPILOGUE_BEGIN;
+ }
+
+private:
+ /* Advance the line by LINE_DELTA. */
+ void advance_line (int line_delta)
+ {
+ m_line += line_delta;
+
+ if (line_delta != 0)
+ m_line_has_non_zero_discriminator = m_discriminator != 0;
+ }
+
+ bool record_line_p ();
+ void finish_line ();
+ void record_line_1 (unsigned int line, linetable_entry_flags flags);
+
+ struct dwarf2_cu *m_cu;
+
+ /* The builder associated with the CU. */
+ buildsym_compunit *m_builder;
+
+ gdbarch *m_gdbarch;
+
+ /* The line number header. */
+ line_header *m_line_header;
+
+ /* These are part of the standard DWARF line number state machine,
+ and initialized according to the DWARF spec. */
+
+ unsigned char m_op_index = 0;
+ /* The line table index of the current file. */
+ file_name_index m_file = 1;
+ unsigned int m_line = 1;
+
+ /* These are initialized in the constructor. */
+
+ unrelocated_addr m_address;
+ linetable_entry_flags m_flags;
+ unsigned int m_discriminator = 0;
+
+ /* Additional bits of state we need to track. */
+
+ /* The last file a line number was recorded for. */
+ struct subfile *m_last_subfile = NULL;
+
+ /* The address of the last line entry. */
+ unrelocated_addr m_last_address;
+
+ /* Set to true when a previous line at the same address (using
+ m_last_address) had LEF_IS_STMT set in m_flags. This is reset to false
+ when a line entry at a new address (m_address different to
+ m_last_address) is processed. */
+ bool m_stmt_at_address = false;
+
+ /* When true, record the lines we decode. */
+ bool m_currently_recording_lines = true;
+
+ /* The last line number that was recorded, used to coalesce
+ consecutive entries for the same line. This can happen, for
+ example, when discriminators are present. PR 17276. */
+ unsigned int m_last_line = 0;
+ bool m_line_has_non_zero_discriminator = false;
+};
+
+void
+lnp_state_machine::handle_advance_pc (CORE_ADDR adjust)
+{
+ CORE_ADDR addr_adj = (((m_op_index + adjust)
+ / m_line_header->maximum_ops_per_instruction)
+ * m_line_header->minimum_instruction_length);
+ addr_adj = gdbarch_adjust_dwarf2_line (m_gdbarch, addr_adj, true);
+ m_address = (unrelocated_addr) ((CORE_ADDR) m_address + addr_adj);
+ m_op_index = ((m_op_index + adjust)
+ % m_line_header->maximum_ops_per_instruction);
+}
+
+void
+lnp_state_machine::handle_special_opcode (unsigned char op_code)
+{
+ unsigned char adj_opcode = op_code - m_line_header->opcode_base;
+ unsigned char adj_opcode_d = adj_opcode / m_line_header->line_range;
+ unsigned char adj_opcode_r = adj_opcode % m_line_header->line_range;
+ CORE_ADDR addr_adj = (((m_op_index + adj_opcode_d)
+ / m_line_header->maximum_ops_per_instruction)
+ * m_line_header->minimum_instruction_length);
+ addr_adj = gdbarch_adjust_dwarf2_line (m_gdbarch, addr_adj, true);
+ m_address = (unrelocated_addr) ((CORE_ADDR) m_address + addr_adj);
+ m_op_index = ((m_op_index + adj_opcode_d)
+ % m_line_header->maximum_ops_per_instruction);
+
+ int line_delta = m_line_header->line_base + adj_opcode_r;
+ advance_line (line_delta);
+ record_line (false);
+ m_discriminator = 0;
+ m_flags &= ~LEF_PROLOGUE_END;
+ m_flags &= ~LEF_EPILOGUE_BEGIN;
+}
+
+void
+lnp_state_machine::handle_set_file (file_name_index file)
+{
+ m_file = file;
+
+ const file_entry *fe = current_file ();
+ if (fe == NULL)
+ dwarf2_debug_line_missing_file_complaint ();
+ else
+ {
+ m_line_has_non_zero_discriminator = m_discriminator != 0;
+ dwarf2_start_subfile (m_cu, *fe, *m_line_header);
+ }
+}
+
+void
+lnp_state_machine::handle_const_add_pc ()
+{
+ CORE_ADDR adjust
+ = (255 - m_line_header->opcode_base) / m_line_header->line_range;
+
+ CORE_ADDR addr_adj
+ = (((m_op_index + adjust)
+ / m_line_header->maximum_ops_per_instruction)
+ * m_line_header->minimum_instruction_length);
+
+ addr_adj = gdbarch_adjust_dwarf2_line (m_gdbarch, addr_adj, true);
+ m_address = (unrelocated_addr) ((CORE_ADDR) m_address + addr_adj);
+ m_op_index = ((m_op_index + adjust)
+ % m_line_header->maximum_ops_per_instruction);
+}
+
+/* Return true if we should add LINE to the line number table.
+ LINE is the line to add, LAST_LINE is the last line that was added,
+ LAST_SUBFILE is the subfile for LAST_LINE.
+ LINE_HAS_NON_ZERO_DISCRIMINATOR is non-zero if LINE has ever
+ had a non-zero discriminator.
+
+ We have to be careful in the presence of discriminators.
+ E.g., for this line:
+
+ for (i = 0; i < 100000; i++);
+
+ clang can emit four line number entries for that one line,
+ each with a different discriminator.
+ See gdb.dwarf2/dw2-single-line-discriminators.exp for an example.
+
+ However, we want gdb to coalesce all four entries into one.
+ Otherwise the user could stepi into the middle of the line and
+ gdb would get confused about whether the pc really was in the
+ middle of the line.
+
+ Things are further complicated by the fact that two consecutive
+ line number entries for the same line is a heuristic used by gcc
+ to denote the end of the prologue. So we can't just discard duplicate
+ entries, we have to be selective about it. The heuristic we use is
+ that we only collapse consecutive entries for the same line if at least
+ one of those entries has a non-zero discriminator. PR 17276.
+
+ Note: Addresses in the line number state machine can never go backwards
+ within one sequence, thus this coalescing is ok. */
+
+bool
+lnp_state_machine::record_line_p ()
+{
+ if (m_builder->get_current_subfile () != m_last_subfile)
+ return true;
+ if (m_line != m_last_line)
+ return true;
+ /* Same line for the same file that we've seen already.
+ As a last check, for pr 17276, only record the line if the line
+ has never had a non-zero discriminator. */
+ if (!m_line_has_non_zero_discriminator)
+ return true;
+ return false;
+}
+
+/* Use the CU's builder to record line number LINE with the given
+ flags. */
+
+void
+lnp_state_machine::record_line_1 (unsigned int line,
+ linetable_entry_flags flags)
+{
+ if (m_currently_recording_lines)
+ {
+ unrelocated_addr addr
+ = unrelocated_addr (gdbarch_addr_bits_remove (m_gdbarch,
+ (CORE_ADDR) m_address));
+
+ if (dwarf_line_debug)
+ gdb_printf (gdb_stdlog, "Recording line %u, file %s, address %s\n",
+ m_line, lbasename (m_last_subfile->name.c_str ()),
+ paddress (m_gdbarch, (CORE_ADDR) addr));
+
+ m_builder->record_line (m_last_subfile, line, addr, flags);
+ }
+}
+
+/* Subroutine of dwarf_decode_lines_1 to simplify it.
+ Mark the end of a set of line number records. */
+
+void
+lnp_state_machine::finish_line ()
+{
+ if (m_last_subfile == nullptr)
+ return;
+
+ if (dwarf_line_debug)
+ {
+ gdb_printf (gdb_stdlog,
+ "Finishing current line, file %s, address %s\n",
+ lbasename (m_last_subfile->name.c_str ()),
+ paddress (m_gdbarch, (CORE_ADDR) m_address));
+ }
+
+ record_line_1 (0, LEF_IS_STMT);
+}
+
+void
+lnp_state_machine::record_line (bool end_sequence)
+{
+ if (dwarf_line_debug)
+ {
+ gdb_printf (gdb_stdlog,
+ "Processing actual line %u: file %u,"
+ " address %s, is_stmt %u, prologue_end %u,"
+ " epilogue_begin %u, discrim %u%s\n",
+ m_line, m_file,
+ paddress (m_gdbarch, (CORE_ADDR) m_address),
+ (m_flags & LEF_IS_STMT) != 0,
+ (m_flags & LEF_PROLOGUE_END) != 0,
+ (m_flags & LEF_EPILOGUE_BEGIN) != 0,
+ m_discriminator,
+ (end_sequence ? "\t(end sequence)" : ""));
+ }
+
+ file_entry *fe = current_file ();
+
+ if (fe == NULL)
+ dwarf2_debug_line_missing_file_complaint ();
+ /* For now we ignore lines not starting on an instruction boundary.
+ But not when processing end_sequence for compatibility with the
+ previous version of the code. */
+ else if (m_op_index == 0 || end_sequence)
+ {
+ /* When we switch files we insert an end maker in the first file,
+ switch to the second file and add a new line entry. The
+ problem is that the end marker inserted in the first file will
+ discard any previous line entries at the same address. If the
+ line entries in the first file are marked as is-stmt, while
+ the new line in the second file is non-stmt, then this means
+ the end marker will discard is-stmt lines so we can have a
+ non-stmt line. This means that there are less addresses at
+ which the user can insert a breakpoint.
+
+ To improve this we track the last address in m_last_address,
+ and whether we have seen an is-stmt at this address. Then
+ when switching files, if we have seen a stmt at the current
+ address, and we are switching to create a non-stmt line, then
+ discard the new line. */
+ bool file_changed = m_last_subfile != m_builder->get_current_subfile ();
+ bool ignore_this_line
+ = ((file_changed && !end_sequence && m_last_address == m_address
+ && ((m_flags & LEF_IS_STMT) == 0)
+ && m_stmt_at_address)
+ || (!end_sequence && m_line == 0));
+
+ if ((file_changed && !ignore_this_line) || end_sequence)
+ finish_line ();
+
+ if (!end_sequence && !ignore_this_line)
+ {
+ linetable_entry_flags lte_flags = m_flags;
+ if (m_cu->producer_is_codewarrior ())
+ lte_flags |= LEF_IS_STMT;
+
+ if (record_line_p ())
+ {
+ m_last_subfile = m_builder->get_current_subfile ();
+ record_line_1 (m_line, lte_flags);
+ m_last_line = m_line;
+ }
+ }
+ }
+
+ /* Track whether we have seen any IS_STMT true at m_address in case we
+ have multiple line table entries all at m_address. */
+ if (m_last_address != m_address)
+ {
+ m_stmt_at_address = false;
+ m_last_address = m_address;
+ }
+ m_stmt_at_address |= (m_flags & LEF_IS_STMT) != 0;
+}
+
+lnp_state_machine::lnp_state_machine (struct dwarf2_cu *cu, gdbarch *arch,
+ line_header *lh)
+ : m_cu (cu),
+ m_builder (cu->get_builder ()),
+ m_gdbarch (arch),
+ m_line_header (lh),
+ /* Call `gdbarch_adjust_dwarf2_line' on the initial 0 address as
+ if there was a line entry for it so that the backend has a
+ chance to adjust it and also record it in case it needs it.
+ This is currently used by MIPS code,
+ cf. `mips_adjust_dwarf2_line'. */
+ m_address ((unrelocated_addr) gdbarch_adjust_dwarf2_line (arch, 0, 0)),
+ m_flags (lh->default_is_stmt ? LEF_IS_STMT : (linetable_entry_flags) 0),
+ m_last_address (m_address)
+{
+}
+
+void
+lnp_state_machine::check_line_address (struct dwarf2_cu *cu,
+ const gdb_byte *line_ptr,
+ unrelocated_addr unrelocated_lowpc,
+ unrelocated_addr address)
+{
+ /* Linkers resolve a symbolic relocation referencing a GC'd function to 0,
+ -1 or -2 (-2 is used by certain lld versions, see
+ https://github.com/llvm/llvm-project/commit/e618ccbf431f6730edb6d1467a127c3a52fd57f7).
+ If ADDRESS is 0, ignoring the opcode will err if the text section is
+ located at 0x0. In this case, additionally check that if
+ ADDRESS < UNRELOCATED_LOWPC. */
+
+ if ((address == (unrelocated_addr) 0 && address < unrelocated_lowpc)
+ || address == (unrelocated_addr) -1
+ || address == (unrelocated_addr) -2)
+ {
+ /* This line table is for a function which has been
+ GCd by the linker. Ignore it. PR gdb/12528 */
+
+ struct objfile *objfile = cu->per_objfile->objfile;
+ long line_offset = line_ptr - get_debug_line_section (cu)->buffer;
+
+ complaint (_(".debug_line address at offset 0x%lx is 0 [in module %s]"),
+ line_offset, objfile_name (objfile));
+ m_currently_recording_lines = false;
+ /* Note: m_currently_recording_lines is left as false until we see
+ DW_LNE_end_sequence. */
+ }
+}
+
+/* Subroutine of dwarf_decode_lines to simplify it.
+ Process the line number information in LH. */
+
+static void
+dwarf_decode_lines_1 (struct line_header *lh, struct dwarf2_cu *cu,
+ unrelocated_addr lowpc)
+{
+ const gdb_byte *line_ptr, *extended_end;
+ const gdb_byte *line_end;
+ unsigned int bytes_read, extended_len;
+ unsigned char op_code, extended_op;
+ struct objfile *objfile = cu->per_objfile->objfile;
+ bfd *abfd = objfile->obfd.get ();
+ struct gdbarch *gdbarch = objfile->arch ();
+
+ line_ptr = lh->statement_program_start;
+ line_end = lh->statement_program_end;
+
+ /* Read the statement sequences until there's nothing left. */
+ while (line_ptr < line_end)
+ {
+ /* The DWARF line number program state machine. Reset the state
+ machine at the start of each sequence. */
+ lnp_state_machine state_machine (cu, gdbarch, lh);
+ bool end_sequence = false;
+
+ /* Start a subfile for the current file of the state
+ machine. */
+ const file_entry *fe = state_machine.current_file ();
+
+ if (fe != NULL)
+ dwarf2_start_subfile (cu, *fe, *lh);
+
+ /* Decode the table. */
+ while (line_ptr < line_end && !end_sequence)
+ {
+ op_code = read_1_byte (abfd, line_ptr);
+ line_ptr += 1;
+
+ if (op_code >= lh->opcode_base)
+ {
+ /* Special opcode. */
+ state_machine.handle_special_opcode (op_code);
+ }
+ else switch (op_code)
+ {
+ case DW_LNS_extended_op:
+ extended_len = read_unsigned_leb128 (abfd, line_ptr,
+ &bytes_read);
+ line_ptr += bytes_read;
+ extended_end = line_ptr + extended_len;
+ extended_op = read_1_byte (abfd, line_ptr);
+ line_ptr += 1;
+ if (DW_LNE_lo_user <= extended_op
+ && extended_op <= DW_LNE_hi_user)
+ {
+ /* Vendor extension, ignore. */
+ line_ptr = extended_end;
+ break;
+ }
+ switch (extended_op)
+ {
+ case DW_LNE_end_sequence:
+ state_machine.handle_end_sequence ();
+ end_sequence = true;
+ break;
+ case DW_LNE_set_address:
+ {
+ unrelocated_addr address
+ = cu->header.read_address (abfd, line_ptr, &bytes_read);
+ line_ptr += bytes_read;
+
+ state_machine.check_line_address (cu, line_ptr, lowpc,
+ address);
+ state_machine.handle_set_address (address);
+ }
+ break;
+ case DW_LNE_define_file:
+ {
+ const char *cur_file;
+ unsigned int mod_time, length;
+ dir_index dindex;
+
+ cur_file = read_direct_string (abfd, line_ptr,
+ &bytes_read);
+ line_ptr += bytes_read;
+ dindex = (dir_index)
+ read_unsigned_leb128 (abfd, line_ptr, &bytes_read);
+ line_ptr += bytes_read;
+ mod_time =
+ read_unsigned_leb128 (abfd, line_ptr, &bytes_read);
+ line_ptr += bytes_read;
+ length =
+ read_unsigned_leb128 (abfd, line_ptr, &bytes_read);
+ line_ptr += bytes_read;
+ lh->add_file_name (cur_file, dindex, mod_time, length);
+ }
+ break;
+ case DW_LNE_set_discriminator:
+ {
+ /* The discriminator is not interesting to the
+ debugger; just ignore it. We still need to
+ check its value though:
+ if there are consecutive entries for the same
+ (non-prologue) line we want to coalesce them.
+ PR 17276. */
+ unsigned int discr
+ = read_unsigned_leb128 (abfd, line_ptr, &bytes_read);
+ line_ptr += bytes_read;
+
+ state_machine.handle_set_discriminator (discr);
+ }
+ break;
+ default:
+ complaint (_("mangled .debug_line section"));
+ return;
+ }
+ /* Make sure that we parsed the extended op correctly. If e.g.
+ we expected a different address size than the producer used,
+ we may have read the wrong number of bytes. */
+ if (line_ptr != extended_end)
+ {
+ complaint (_("mangled .debug_line section"));
+ return;
+ }
+ break;
+ case DW_LNS_copy:
+ state_machine.handle_copy ();
+ break;
+ case DW_LNS_advance_pc:
+ {
+ CORE_ADDR adjust
+ = read_unsigned_leb128 (abfd, line_ptr, &bytes_read);
+ line_ptr += bytes_read;
+
+ state_machine.handle_advance_pc (adjust);
+ }
+ break;
+ case DW_LNS_advance_line:
+ {
+ int line_delta
+ = read_signed_leb128 (abfd, line_ptr, &bytes_read);
+ line_ptr += bytes_read;
+
+ state_machine.handle_advance_line (line_delta);
+ }
+ break;
+ case DW_LNS_set_file:
+ {
+ file_name_index file
+ = (file_name_index) read_unsigned_leb128 (abfd, line_ptr,
+ &bytes_read);
+ line_ptr += bytes_read;
+
+ state_machine.handle_set_file (file);
+ }
+ break;
+ case DW_LNS_set_column:
+ (void) read_unsigned_leb128 (abfd, line_ptr, &bytes_read);
+ line_ptr += bytes_read;
+ break;
+ case DW_LNS_negate_stmt:
+ state_machine.handle_negate_stmt ();
+ break;
+ case DW_LNS_set_basic_block:
+ break;
+ /* Add to the address register of the state machine the
+ address increment value corresponding to special opcode
+ 255. I.e., this value is scaled by the minimum
+ instruction length since special opcode 255 would have
+ scaled the increment. */
+ case DW_LNS_const_add_pc:
+ state_machine.handle_const_add_pc ();
+ break;
+ case DW_LNS_fixed_advance_pc:
+ {
+ CORE_ADDR addr_adj = read_2_bytes (abfd, line_ptr);
+ line_ptr += 2;
+
+ state_machine.handle_fixed_advance_pc (addr_adj);
+ }
+ break;
+ case DW_LNS_set_prologue_end:
+ state_machine.handle_set_prologue_end ();
+ break;
+ case DW_LNS_set_epilogue_begin:
+ state_machine.handle_set_epilogue_begin ();
+ break;
+ default:
+ {
+ /* Unknown standard opcode, ignore it. */
+ int i;
+
+ for (i = 0; i < lh->standard_opcode_lengths[op_code]; i++)
+ {
+ (void) read_unsigned_leb128 (abfd, line_ptr, &bytes_read);
+ line_ptr += bytes_read;
+ }
+ }
+ }
+ }
+
+ if (!end_sequence)
+ dwarf2_debug_line_missing_end_sequence_complaint ();
+
+ /* We got a DW_LNE_end_sequence (or we ran off the end of the buffer,
+ in which case we still finish recording the last line). */
+ state_machine.record_line (true);
+ }
+}
+
+/* See dwarf2/line-program.h. */
+
+void
+dwarf_decode_lines (struct line_header *lh, struct dwarf2_cu *cu,
+ unrelocated_addr lowpc, bool decode_mapping)
+{
+ if (decode_mapping)
+ dwarf_decode_lines_1 (lh, cu, lowpc);
+
+ /* Make sure a symtab is created for every file, even files
+ which contain only variables (i.e. no code with associated
+ line numbers). */
+ buildsym_compunit *builder = cu->get_builder ();
+ struct compunit_symtab *cust = builder->get_compunit_symtab ();
+
+ for (auto &fe : lh->file_names ())
+ {
+ dwarf2_start_subfile (cu, fe, *lh);
+ subfile *sf = builder->get_current_subfile ();
+
+ if (sf->symtab == nullptr)
+ sf->symtab = allocate_symtab (cust, sf->name.c_str (),
+ sf->name_for_id.c_str ());
+
+ fe.symtab = sf->symtab;
+ }
+}
diff --git a/gdb/dwarf2/line-program.h b/gdb/dwarf2/line-program.h
new file mode 100644
index 0000000..824f18f
--- /dev/null
+++ b/gdb/dwarf2/line-program.h
@@ -0,0 +1,47 @@
+/* DWARF 2 debugging format support for GDB.
+
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#ifndef GDB_DWARF2_LINE_PROGRAM_H
+#define GDB_DWARF2_LINE_PROGRAM_H
+
+/* Decode the Line Number Program (LNP) for the given line_header
+ structure and CU. The actual information extracted and the type
+ of structures created from the LNP depends on the value of PST.
+
+ FND holds the CU file name and directory, if known.
+ It is used for relative paths in the line table.
+
+ NOTE: It is important that psymtabs have the same file name (via
+ strcmp) as the corresponding symtab. Since the directory is not
+ used in the name of the symtab we don't use it in the name of the
+ psymtabs we create. E.g. expand_line_sal requires this when
+ finding psymtabs to expand. A good testcase for this is
+ mb-inline.exp.
+
+ LOWPC is the lowest address in CU (or 0 if not known).
+
+ Boolean DECODE_MAPPING specifies we need to fully decode .debug_line
+ for its PC<->lines mapping information. Otherwise only the filename
+ table is read in. */
+
+extern void dwarf_decode_lines (struct line_header *lh,
+ struct dwarf2_cu *cu,
+ unrelocated_addr lowpc, bool decode_mapping);
+
+#endif /* GDB_DWARF2_LINE_PROGRAM_H */
diff --git a/gdb/dwarf2/read-debug-names.c b/gdb/dwarf2/read-debug-names.c
index 97677c0..ddf4935 100644
--- a/gdb/dwarf2/read-debug-names.c
+++ b/gdb/dwarf2/read-debug-names.c
@@ -768,12 +768,12 @@ build_and_check_cu_lists_from_debug_names (dwarf2_per_bfd *per_bfd,
return build_and_check_cu_list_from_debug_names (per_bfd, dwz_map, dwz->info);
}
-/* This does all the work for dwarf2_read_debug_names, but putting it
- into a separate function makes some cleanup a bit simpler. */
+/* See read-debug-names.h. */
-static bool
-do_dwarf2_read_debug_names (dwarf2_per_objfile *per_objfile)
+bool
+dwarf2_read_debug_names (dwarf2_per_objfile *per_objfile)
{
+ scoped_remove_all_units remove_all_units (*per_objfile->per_bfd);
mapped_debug_names_reader map;
mapped_debug_names_reader dwz_map;
struct objfile *objfile = per_objfile->objfile;
@@ -850,17 +850,7 @@ do_dwarf2_read_debug_names (dwarf2_per_objfile *per_objfile)
(per_objfile, std::move (map)));
auto idx = std::make_unique<debug_names_index> (std::move (cidn));
per_bfd->start_reading (std::move (idx));
+ remove_all_units.disable ();
return true;
}
-
-/* See read-debug-names.h. */
-
-bool
-dwarf2_read_debug_names (dwarf2_per_objfile *per_objfile)
-{
- bool result = do_dwarf2_read_debug_names (per_objfile);
- if (!result)
- per_objfile->per_bfd->all_units.clear ();
- return result;
-}
diff --git a/gdb/dwarf2/read-gdb-index.c b/gdb/dwarf2/read-gdb-index.c
index 76317fe..5354263 100644
--- a/gdb/dwarf2/read-gdb-index.c
+++ b/gdb/dwarf2/read-gdb-index.c
@@ -27,16 +27,67 @@
#include "event-top.h"
#include "gdb/gdb-index.h"
#include "gdbsupport/gdb-checked-static-cast.h"
-#include "mapped-index.h"
+#include "cooked-index.h"
#include "read.h"
#include "extract-store-integer.h"
#include "cp-support.h"
#include "symtab.h"
#include "gdbsupport/selftest.h"
+#include "tag.h"
/* When true, do not reject deprecated .gdb_index sections. */
static bool use_deprecated_index_sections = false;
+struct dwarf2_gdb_index : public cooked_index_functions
+{
+ /* This dumps minimal information about the index.
+ It is called via "mt print objfiles".
+ One use is to verify .gdb_index has been loaded by the
+ gdb.dwarf2/gdb-index.exp testcase. */
+ void dump (struct objfile *objfile) override;
+};
+
+/* This is a cooked index as ingested from .gdb_index. */
+
+class cooked_gdb_index : public cooked_index
+{
+public:
+
+ cooked_gdb_index (cooked_index_worker_up worker,
+ int version)
+ : cooked_index (std::move (worker)),
+ version (version)
+ { }
+
+ /* This can't be used to write an index. */
+ cooked_index *index_for_writing () override
+ { return nullptr; }
+
+ quick_symbol_functions_up make_quick_functions () const override
+ { return quick_symbol_functions_up (new dwarf2_gdb_index); }
+
+ bool version_check () const override
+ {
+ return version >= 8;
+ }
+
+ /* Index data format version. */
+ int version;
+};
+
+/* See above. */
+
+void
+dwarf2_gdb_index::dump (struct objfile *objfile)
+{
+ dwarf2_per_objfile *per_objfile = get_dwarf2_per_objfile (objfile);
+
+ cooked_gdb_index *index = (gdb::checked_static_cast<cooked_gdb_index *>
+ (per_objfile->per_bfd->index_table.get ()));
+ gdb_printf (".gdb_index: version %d\n", index->version);
+ cooked_index_functions::dump (objfile);
+}
+
/* This is a view into the index that converts from bytes to an
offset_type, and allows indexing. Unaligned bytes are specifically
allowed here, and handled via unpacking. */
@@ -77,43 +128,11 @@ private:
gdb::array_view<const gdb_byte> m_bytes;
};
-/* An index into a (C++) symbol name component in a symbol name as
- recorded in the mapped_index's symbol table. For each C++ symbol
- in the symbol table, we record one entry for the start of each
- component in the symbol in a table of name components, and then
- sort the table, in order to be able to binary search symbol names,
- ignoring leading namespaces, both completion and regular look up.
- For example, for symbol "A::B::C", we'll have an entry that points
- to "A::B::C", another that points to "B::C", and another for "C".
- Note that function symbols in GDB index have no parameter
- information, just the function/method names. You can convert a
- name_component to a "const char *" using the
- 'mapped_index::symbol_name_at(offset_type)' method. */
-
-struct name_component
-{
- /* Offset in the symbol name where the component starts. Stored as
- a (32-bit) offset instead of a pointer to save memory and improve
- locality on 64-bit architectures. */
- offset_type name_offset;
-
- /* The symbol's index in the symbol and constant pool tables of a
- mapped_index. */
- offset_type idx;
-};
-
-/* A description of .gdb_index index. The file format is described in
- a comment by the code that writes the index. */
+/* A worker for reading .gdb_index. The file format is described in
+ the manual. */
-struct mapped_gdb_index : public dwarf_scanner_base
+struct mapped_gdb_index
{
- /* The name_component table (a sorted vector). See name_component's
- description above. */
- std::vector<name_component> name_components;
-
- /* How NAME_COMPONENTS is sorted. */
- enum case_sensitivity name_components_casing;
-
/* Index data format version. */
int version = 0;
@@ -136,6 +155,15 @@ struct mapped_gdb_index : public dwarf_scanner_base
/* An address map that maps from PC to dwarf2_per_cu. */
addrmap_fixed *index_addrmap = nullptr;
+ /* The name of 'main', or nullptr if not known. */
+ const char *main_name = nullptr;
+
+ /* The language of 'main', if known. */
+ enum language main_lang = language_minimal;
+
+ /* The result we're constructing. */
+ cooked_index_worker_result result;
+
/* Return the index into the constant pool of the name of the IDXth
symbol in the symbol table. */
offset_type symbol_name_index (offset_type idx) const
@@ -152,221 +180,41 @@ struct mapped_gdb_index : public dwarf_scanner_base
/* Return whether the name at IDX in the symbol table should be
ignored. */
- virtual bool symbol_name_slot_invalid (offset_type idx) const
+ bool symbol_name_slot_invalid (offset_type idx) const
{
- return (symbol_name_index (idx) == 0
- && symbol_vec_index (idx) == 0);
+ return symbol_name_index (idx) == 0 && symbol_vec_index (idx) == 0;
}
/* Convenience method to get at the name of the symbol at IDX in the
symbol table. */
- virtual const char *symbol_name_at
- (offset_type idx, dwarf2_per_objfile *per_objfile) const
+ const char *symbol_name_at (offset_type idx,
+ dwarf2_per_objfile *per_objfile) const
{
return (const char *) (this->constant_pool.data ()
+ symbol_name_index (idx));
}
- virtual size_t symbol_name_count () const
+ size_t symbol_name_count () const
{ return this->symbol_table.size () / 2; }
+ /* Set the name and language of the main function from the shortcut
+ table. */
+ void set_main_name (dwarf2_per_objfile *per_objfile);
+
/* Build the symbol name component sorted vector, if we haven't
yet. */
void build_name_components (dwarf2_per_objfile *per_objfile);
-
- /* Returns the lower (inclusive) and upper (exclusive) bounds of the
- possible matches for LN_NO_PARAMS in the name component
- vector. */
- std::pair<std::vector<name_component>::const_iterator,
- std::vector<name_component>::const_iterator>
- find_name_components_bounds (const lookup_name_info &ln_no_params,
- enum language lang,
- dwarf2_per_objfile *per_objfile) const;
-
- quick_symbol_functions_up make_quick_functions () const override;
-
- bool version_check () const override
- {
- return version >= 8;
- }
-
- dwarf2_per_cu *lookup (unrelocated_addr addr) override
- {
- if (index_addrmap == nullptr)
- return nullptr;
-
- void *obj = index_addrmap->find (static_cast<CORE_ADDR> (addr));
- return static_cast<dwarf2_per_cu *> (obj);
- }
-
- cooked_index *index_for_writing () override
- { return nullptr; }
};
-
-/* Starting from a search name, return the string that finds the upper
- bound of all strings that start with SEARCH_NAME in a sorted name
- list. Returns the empty string to indicate that the upper bound is
- the end of the list. */
-
-static std::string
-make_sort_after_prefix_name (const char *search_name)
-{
- /* When looking to complete "func", we find the upper bound of all
- symbols that start with "func" by looking for where we'd insert
- the closest string that would follow "func" in lexicographical
- order. Usually, that's "func"-with-last-character-incremented,
- i.e. "fund". Mind non-ASCII characters, though. Usually those
- will be UTF-8 multi-byte sequences, but we can't be certain.
- Especially mind the 0xff character, which is a valid character in
- non-UTF-8 source character sets (e.g. Latin1 'ÿ'), and we can't
- rule out compilers allowing it in identifiers. Note that
- conveniently, strcmp/strcasecmp are specified to compare
- characters interpreted as unsigned char. So what we do is treat
- the whole string as a base 256 number composed of a sequence of
- base 256 "digits" and add 1 to it. I.e., adding 1 to 0xff wraps
- to 0, and carries 1 to the following more-significant position.
- If the very first character in SEARCH_NAME ends up incremented
- and carries/overflows, then the upper bound is the end of the
- list. The string after the empty string is also the empty
- string.
-
- Some examples of this operation:
-
- SEARCH_NAME => "+1" RESULT
-
- "abc" => "abd"
- "ab\xff" => "ac"
- "\xff" "a" "\xff" => "\xff" "b"
- "\xff" => ""
- "\xff\xff" => ""
- "" => ""
-
- Then, with these symbols for example:
-
- func
- func1
- fund
-
- completing "func" looks for symbols between "func" and
- "func"-with-last-character-incremented, i.e. "fund" (exclusive),
- which finds "func" and "func1", but not "fund".
-
- And with:
-
- funcÿ (Latin1 'ÿ' [0xff])
- funcÿ1
- fund
-
- completing "funcÿ" looks for symbols between "funcÿ" and "fund"
- (exclusive), which finds "funcÿ" and "funcÿ1", but not "fund".
-
- And with:
-
- ÿÿ (Latin1 'ÿ' [0xff])
- ÿÿ1
-
- completing "ÿ" or "ÿÿ" looks for symbols between between "ÿÿ" and
- the end of the list.
- */
- std::string after = search_name;
- while (!after.empty () && (unsigned char) after.back () == 0xff)
- after.pop_back ();
- if (!after.empty ())
- after.back () = (unsigned char) after.back () + 1;
- return after;
-}
-
-/* See declaration. */
-
-std::pair<std::vector<name_component>::const_iterator,
- std::vector<name_component>::const_iterator>
-mapped_gdb_index::find_name_components_bounds
- (const lookup_name_info &lookup_name_without_params, language lang,
- dwarf2_per_objfile *per_objfile) const
-{
- auto *name_cmp
- = this->name_components_casing == case_sensitive_on ? strcmp : strcasecmp;
-
- const char *lang_name
- = lookup_name_without_params.language_lookup_name (lang);
-
- /* Comparison function object for lower_bound that matches against a
- given symbol name. */
- auto lookup_compare_lower = [&] (const name_component &elem,
- const char *name)
- {
- const char *elem_qualified = this->symbol_name_at (elem.idx, per_objfile);
- const char *elem_name = elem_qualified + elem.name_offset;
- return name_cmp (elem_name, name) < 0;
- };
-
- /* Comparison function object for upper_bound that matches against a
- given symbol name. */
- auto lookup_compare_upper = [&] (const char *name,
- const name_component &elem)
- {
- const char *elem_qualified = this->symbol_name_at (elem.idx, per_objfile);
- const char *elem_name = elem_qualified + elem.name_offset;
- return name_cmp (name, elem_name) < 0;
- };
-
- auto begin = this->name_components.begin ();
- auto end = this->name_components.end ();
-
- /* Find the lower bound. */
- auto lower = [&] ()
- {
- if (lookup_name_without_params.completion_mode () && lang_name[0] == '\0')
- return begin;
- else
- return std::lower_bound (begin, end, lang_name, lookup_compare_lower);
- } ();
-
- /* Find the upper bound. */
- auto upper = [&] ()
- {
- if (lookup_name_without_params.completion_mode ())
- {
- /* In completion mode, we want UPPER to point past all
- symbols names that have the same prefix. I.e., with
- these symbols, and completing "func":
-
- function << lower bound
- function1
- other_function << upper bound
-
- We find the upper bound by looking for the insertion
- point of "func"-with-last-character-incremented,
- i.e. "fund". */
- std::string after = make_sort_after_prefix_name (lang_name);
- if (after.empty ())
- return end;
- return std::lower_bound (lower, end, after.c_str (),
- lookup_compare_lower);
- }
- else
- return std::upper_bound (lower, end, lang_name, lookup_compare_upper);
- } ();
-
- return {lower, upper};
-}
-
/* See declaration. */
void
mapped_gdb_index::build_name_components (dwarf2_per_objfile *per_objfile)
{
- if (!this->name_components.empty ())
- return;
+ std::vector<std::pair<std::string_view, std::vector<cooked_index_entry *>>>
+ need_parents;
+ gdb::unordered_map<std::string_view, cooked_index_entry *> by_name;
- this->name_components_casing = case_sensitivity;
- auto *name_cmp
- = this->name_components_casing == case_sensitive_on ? strcmp : strcasecmp;
-
- /* The code below only knows how to break apart components of C++
- symbol names (and other languages that use '::' as
- namespace/module separator) and Ada symbol names. */
auto count = this->symbol_name_count ();
for (offset_type idx = 0; idx < count; idx++)
{
@@ -375,813 +223,186 @@ mapped_gdb_index::build_name_components (dwarf2_per_objfile *per_objfile)
const char *name = this->symbol_name_at (idx, per_objfile);
- /* Add each name component to the name component table. */
- unsigned int previous_len = 0;
+ /* This code only knows how to break apart components of C++
+ symbol names (and other languages that use '::' as
+ namespace/module separator) and Ada symbol names.
+ It's unfortunate that we need the language, but since it is
+ really only used to rebuild full names, pairing it with the
+ split method is fine. */
+ enum language lang;
+ std::vector<std::string_view> components;
if (strstr (name, "::") != nullptr)
{
- for (unsigned int current_len = cp_find_first_component (name);
- name[current_len] != '\0';
- current_len += cp_find_first_component (name + current_len))
- {
- gdb_assert (name[current_len] == ':');
- this->name_components.push_back ({previous_len, idx});
- /* Skip the '::'. */
- current_len += 2;
- previous_len = current_len;
- }
+ components = split_name (name, split_style::CXX);
+ lang = language_cplus;
}
- else
+ else if (strchr (name, '<') != nullptr)
{
- /* Handle the Ada encoded (aka mangled) form here. */
- for (const char *iter = strstr (name, "__");
- iter != nullptr;
- iter = strstr (iter, "__"))
- {
- this->name_components.push_back ({previous_len, idx});
- iter += 2;
- previous_len = iter - name;
- }
+ /* Guess that this is a template and so a C++ name. */
+ components.emplace_back (name);
+ lang = language_cplus;
}
-
- this->name_components.push_back ({previous_len, idx});
- }
-
- /* Sort name_components elements by name. */
- auto name_comp_compare = [&] (const name_component &left,
- const name_component &right)
- {
- const char *left_qualified
- = this->symbol_name_at (left.idx, per_objfile);
- const char *right_qualified
- = this->symbol_name_at (right.idx, per_objfile);
-
- const char *left_name = left_qualified + left.name_offset;
- const char *right_name = right_qualified + right.name_offset;
-
- return name_cmp (left_name, right_name) < 0;
- };
-
- std::sort (this->name_components.begin (),
- this->name_components.end (),
- name_comp_compare);
-}
-
-/* Helper for dw2_expand_symtabs_matching that works with a
- mapped_index_base instead of the containing objfile. This is split
- to a separate function in order to be able to unit test the
- name_components matching using a mock mapped_index_base. For each
- symbol name that matches, calls MATCH_CALLBACK, passing it the
- symbol's index in the mapped_index_base symbol table. */
-
-static bool
-dw2_expand_symtabs_matching_symbol
- (mapped_gdb_index &index,
- const lookup_name_info &lookup_name_in,
- expand_symtabs_symbol_matcher symbol_matcher,
- gdb::function_view<bool (offset_type)> match_callback,
- dwarf2_per_objfile *per_objfile,
- expand_symtabs_lang_matcher lang_matcher)
-{
- lookup_name_info lookup_name_without_params
- = lookup_name_in.make_ignore_params ();
-
- /* Build the symbol name component sorted vector, if we haven't
- yet. */
- index.build_name_components (per_objfile);
-
- /* The same symbol may appear more than once in the range though.
- E.g., if we're looking for symbols that complete "w", and we have
- a symbol named "w1::w2", we'll find the two name components for
- that same symbol in the range. To be sure we only call the
- callback once per symbol, we first collect the symbol name
- indexes that matched in a temporary vector and ignore
- duplicates. */
- std::vector<offset_type> matches;
-
- struct name_and_matcher
- {
- symbol_name_matcher_ftype *matcher;
- const char *name;
-
- bool operator== (const name_and_matcher &other) const
- {
- return matcher == other.matcher && strcmp (name, other.name) == 0;
- }
- };
-
- /* A vector holding all the different symbol name matchers, for all
- languages. */
- std::vector<name_and_matcher> matchers;
-
- for (int i = 0; i < nr_languages; i++)
- {
- enum language lang_e = (enum language) i;
- if (lang_matcher != nullptr && !lang_matcher (lang_e))
- continue;
-
- const language_defn *lang = language_def (lang_e);
- symbol_name_matcher_ftype *name_matcher
- = lang->get_symbol_name_matcher (lookup_name_without_params);
-
- name_and_matcher key {
- name_matcher,
- lookup_name_without_params.language_lookup_name (lang_e)
- };
-
- /* Don't insert the same comparison routine more than once.
- Note that we do this linear walk. This is not a problem in
- practice because the number of supported languages is
- low. */
- if (std::find (matchers.begin (), matchers.end (), key)
- != matchers.end ())
- continue;
- matchers.push_back (std::move (key));
-
- auto bounds
- = index.find_name_components_bounds (lookup_name_without_params,
- lang_e, per_objfile);
-
- /* Now for each symbol name in range, check to see if we have a name
- match, and if so, call the MATCH_CALLBACK callback. */
-
- for (; bounds.first != bounds.second; ++bounds.first)
+ else if (strstr (name, "__") != nullptr)
{
- const char *qualified
- = index.symbol_name_at (bounds.first->idx, per_objfile);
-
- if (!name_matcher (qualified, lookup_name_without_params, NULL)
- || (symbol_matcher != NULL && !symbol_matcher (qualified)))
- continue;
-
- matches.push_back (bounds.first->idx);
+ /* The Ada case is handled during finalization, because gdb
+ does not write the synthesized package names into the
+ index. */
+ components.emplace_back (name);
+ lang = language_ada;
}
- }
-
- std::sort (matches.begin (), matches.end ());
-
- /* Finally call the callback, once per match. */
- ULONGEST prev = -1;
- bool result = true;
- for (offset_type idx : matches)
- {
- if (prev != idx)
+ else
{
- if (!match_callback (idx))
- {
- result = false;
- break;
- }
- prev = idx;
+ components = split_name (name, split_style::DOT_STYLE);
+ /* Mark ordinary names as having an unknown language. This
+ is a hack to avoid problems with some Ada names. */
+ lang = (components.size () == 1) ? language_unknown : language_go;
}
- }
-
- /* Above we use a type wider than idx's for 'prev', since 0 and
- (offset_type)-1 are both possible values. */
- static_assert (sizeof (prev) > sizeof (offset_type), "");
-
- return result;
-}
-
-#if GDB_SELF_TEST
-
-namespace selftests { namespace dw2_expand_symtabs_matching {
-
-/* A mock .gdb_index/.debug_names-like name index table, enough to
- exercise dw2_expand_symtabs_matching_symbol, which works with the
- mapped_index_base interface. Builds an index from the symbol list
- passed as parameter to the constructor. */
-class mock_mapped_index : public mapped_gdb_index
-{
-public:
- mock_mapped_index (gdb::array_view<const char *> symbols)
- : m_symbol_table (symbols)
- {}
-
- DISABLE_COPY_AND_ASSIGN (mock_mapped_index);
-
- bool symbol_name_slot_invalid (offset_type idx) const override
- { return false; }
-
- /* Return the number of names in the symbol table. */
- size_t symbol_name_count () const override
- {
- return m_symbol_table.size ();
- }
-
- /* Get the name of the symbol at IDX in the symbol table. */
- const char *symbol_name_at
- (offset_type idx, dwarf2_per_objfile *per_objfile) const override
- {
- return m_symbol_table[idx];
- }
-
- quick_symbol_functions_up make_quick_functions () const override
- {
- return nullptr;
- }
-
-private:
- gdb::array_view<const char *> m_symbol_table;
-};
-
-/* Convenience function that converts a NULL pointer to a "<null>"
- string, to pass to print routines. */
-
-static const char *
-string_or_null (const char *str)
-{
- return str != NULL ? str : "<null>";
-}
-
-/* Check if a lookup_name_info built from
- NAME/MATCH_TYPE/COMPLETION_MODE matches the symbols in the mock
- index. EXPECTED_LIST is the list of expected matches, in expected
- matching order. If no match expected, then an empty list is
- specified. Returns true on success. On failure prints a warning
- indicating the file:line that failed, and returns false. */
-
-static bool
-check_match (const char *file, int line,
- mock_mapped_index &mock_index,
- const char *name, symbol_name_match_type match_type,
- bool completion_mode,
- std::initializer_list<const char *> expected_list,
- dwarf2_per_objfile *per_objfile)
-{
- lookup_name_info lookup_name (name, match_type, completion_mode);
-
- bool matched = true;
-
- auto mismatch = [&] (const char *expected_str,
- const char *got)
- {
- warning (_("%s:%d: match_type=%s, looking-for=\"%s\", "
- "expected=\"%s\", got=\"%s\"\n"),
- file, line,
- (match_type == symbol_name_match_type::FULL
- ? "FULL" : "WILD"),
- name, string_or_null (expected_str), string_or_null (got));
- matched = false;
- };
-
- auto expected_it = expected_list.begin ();
- auto expected_end = expected_list.end ();
-
- dw2_expand_symtabs_matching_symbol (mock_index, lookup_name,
- nullptr,
- [&] (offset_type idx)
- {
- const char *matched_name = mock_index.symbol_name_at (idx, per_objfile);
- const char *expected_str
- = expected_it == expected_end ? NULL : *expected_it++;
-
- if (expected_str == NULL || strcmp (expected_str, matched_name) != 0)
- mismatch (expected_str, matched_name);
- return true;
- }, per_objfile, nullptr);
-
- const char *expected_str
- = expected_it == expected_end ? NULL : *expected_it++;
- if (expected_str != NULL)
- mismatch (expected_str, NULL);
-
- return matched;
-}
-
-/* The symbols added to the mock mapped_index for testing (in
- canonical form). */
-static const char *test_symbols[] = {
- "function",
- "std::bar",
- "std::zfunction",
- "std::zfunction2",
- "w1::w2",
- "ns::foo<char*>",
- "ns::foo<int>",
- "ns::foo<long>",
- "ns2::tmpl<int>::foo2",
- "(anonymous namespace)::A::B::C",
-
- /* These are used to check that the increment-last-char in the
- matching algorithm for completion doesn't match "t1_fund" when
- completing "t1_func". */
- "t1_func",
- "t1_func1",
- "t1_fund",
- "t1_fund1",
-
- /* A UTF-8 name with multi-byte sequences to make sure that
- cp-name-parser understands this as a single identifier ("função"
- is "function" in PT). */
- (const char *)u8"u8função",
-
- /* Test a symbol name that ends with a 0xff character, which is a
- valid character in non-UTF-8 source character sets (e.g. Latin1
- 'ÿ'), and we can't rule out compilers allowing it in identifiers.
- We test this because the completion algorithm finds the upper
- bound of symbols by looking for the insertion point of
- "func"-with-last-character-incremented, i.e. "fund", and adding 1
- to 0xff should wraparound and carry to the previous character.
- See comments in make_sort_after_prefix_name. */
- "yfunc\377",
-
- /* Some more symbols with \377 (0xff). See above. */
- "\377",
- "\377\377123",
-
- /* A name with all sorts of complications. Starts with "z" to make
- it easier for the completion tests below. */
-#define Z_SYM_NAME \
- "z::std::tuple<(anonymous namespace)::ui*, std::bar<(anonymous namespace)::ui> >" \
- "::tuple<(anonymous namespace)::ui*, " \
- "std::default_delete<(anonymous namespace)::ui>, void>"
-
- Z_SYM_NAME
-};
-/* Returns true if the mapped_index_base::find_name_component_bounds
- method finds EXPECTED_SYMS in INDEX when looking for SEARCH_NAME,
- in completion mode. */
-
-static bool
-check_find_bounds_finds (mapped_gdb_index &index,
- const char *search_name,
- gdb::array_view<const char *> expected_syms,
- dwarf2_per_objfile *per_objfile)
-{
- lookup_name_info lookup_name (search_name,
- symbol_name_match_type::FULL, true);
-
- auto bounds = index.find_name_components_bounds (lookup_name,
- language_cplus,
- per_objfile);
-
- size_t distance = std::distance (bounds.first, bounds.second);
- if (distance != expected_syms.size ())
- return false;
-
- for (size_t exp_elem = 0; exp_elem < distance; exp_elem++)
- {
- auto nc_elem = bounds.first + exp_elem;
- const char *qualified = index.symbol_name_at (nc_elem->idx, per_objfile);
- if (strcmp (qualified, expected_syms[exp_elem]) != 0)
- return false;
- }
-
- return true;
-}
-
-/* Test the lower-level mapped_index::find_name_component_bounds
- method. */
-
-static void
-test_mapped_index_find_name_component_bounds ()
-{
- mock_mapped_index mock_index (test_symbols);
-
- mock_index.build_name_components (NULL /* per_objfile */);
-
- /* Test the lower-level mapped_index::find_name_component_bounds
- method in completion mode. */
- {
- static const char *expected_syms[] = {
- "t1_func",
- "t1_func1",
- };
-
- SELF_CHECK (check_find_bounds_finds
- (mock_index, "t1_func", expected_syms,
- NULL /* per_objfile */));
- }
-
- /* Check that the increment-last-char in the name matching algorithm
- for completion doesn't get confused with Ansi1 'ÿ' / 0xff. See
- make_sort_after_prefix_name. */
- {
- static const char *expected_syms1[] = {
- "\377",
- "\377\377123",
- };
- SELF_CHECK (check_find_bounds_finds
- (mock_index, "\377", expected_syms1, NULL /* per_objfile */));
-
- static const char *expected_syms2[] = {
- "\377\377123",
- };
- SELF_CHECK (check_find_bounds_finds
- (mock_index, "\377\377", expected_syms2,
- NULL /* per_objfile */));
- }
-}
-
-/* Test dw2_expand_symtabs_matching_symbol. */
-
-static void
-test_dw2_expand_symtabs_matching_symbol ()
-{
- mock_mapped_index mock_index (test_symbols);
-
- /* We let all tests run until the end even if some fails, for debug
- convenience. */
- bool any_mismatch = false;
-
- /* Create the expected symbols list (an initializer_list). Needed
- because lists have commas, and we need to pass them to CHECK,
- which is a macro. */
-#define EXPECT(...) { __VA_ARGS__ }
-
- /* Wrapper for check_match that passes down the current
- __FILE__/__LINE__. */
-#define CHECK_MATCH(NAME, MATCH_TYPE, COMPLETION_MODE, EXPECTED_LIST) \
- any_mismatch |= !check_match (__FILE__, __LINE__, \
- mock_index, \
- NAME, MATCH_TYPE, COMPLETION_MODE, \
- EXPECTED_LIST, NULL)
-
- /* Identity checks. */
- for (const char *sym : test_symbols)
- {
- /* Should be able to match all existing symbols. */
- CHECK_MATCH (sym, symbol_name_match_type::FULL, false,
- EXPECT (sym));
-
- /* Should be able to match all existing symbols with
- parameters. */
- std::string with_params = std::string (sym) + "(int)";
- CHECK_MATCH (with_params.c_str (), symbol_name_match_type::FULL, false,
- EXPECT (sym));
-
- /* Should be able to match all existing symbols with
- parameters and qualifiers. */
- with_params = std::string (sym) + " ( int ) const";
- CHECK_MATCH (with_params.c_str (), symbol_name_match_type::FULL, false,
- EXPECT (sym));
-
- /* This should really find sym, but cp-name-parser.y doesn't
- know about lvalue/rvalue qualifiers yet. */
- with_params = std::string (sym) + " ( int ) &&";
- CHECK_MATCH (with_params.c_str (), symbol_name_match_type::FULL, false,
- {});
- }
-
- /* Check that the name matching algorithm for completion doesn't get
- confused with Latin1 'ÿ' / 0xff. See
- make_sort_after_prefix_name. */
- {
- static const char str[] = "\377";
- CHECK_MATCH (str, symbol_name_match_type::FULL, true,
- EXPECT ("\377", "\377\377123"));
- }
-
- /* Check that the increment-last-char in the matching algorithm for
- completion doesn't match "t1_fund" when completing "t1_func". */
- {
- static const char str[] = "t1_func";
- CHECK_MATCH (str, symbol_name_match_type::FULL, true,
- EXPECT ("t1_func", "t1_func1"));
- }
-
- /* Check that completion mode works at each prefix of the expected
- symbol name. */
- {
- static const char str[] = "function(int)";
- size_t len = strlen (str);
- std::string lookup;
-
- for (size_t i = 1; i < len; i++)
- {
- lookup.assign (str, i);
- CHECK_MATCH (lookup.c_str (), symbol_name_match_type::FULL, true,
- EXPECT ("function"));
- }
- }
-
- /* While "w" is a prefix of both components, the match function
- should still only be called once. */
- {
- CHECK_MATCH ("w", symbol_name_match_type::FULL, true,
- EXPECT ("w1::w2"));
- CHECK_MATCH ("w", symbol_name_match_type::WILD, true,
- EXPECT ("w1::w2"));
- }
-
- /* Same, with a "complicated" symbol. */
- {
- static const char str[] = Z_SYM_NAME;
- size_t len = strlen (str);
- std::string lookup;
-
- for (size_t i = 1; i < len; i++)
- {
- lookup.assign (str, i);
- CHECK_MATCH (lookup.c_str (), symbol_name_match_type::FULL, true,
- EXPECT (Z_SYM_NAME));
- }
- }
-
- /* In FULL mode, an incomplete symbol doesn't match. */
- {
- CHECK_MATCH ("std::zfunction(int", symbol_name_match_type::FULL, false,
- {});
- }
-
- /* A complete symbol with parameters matches any overload, since the
- index has no overload info. */
- {
- CHECK_MATCH ("std::zfunction(int)", symbol_name_match_type::FULL, true,
- EXPECT ("std::zfunction", "std::zfunction2"));
- CHECK_MATCH ("zfunction(int)", symbol_name_match_type::WILD, true,
- EXPECT ("std::zfunction", "std::zfunction2"));
- CHECK_MATCH ("zfunc", symbol_name_match_type::WILD, true,
- EXPECT ("std::zfunction", "std::zfunction2"));
- }
-
- /* Check that whitespace is ignored appropriately. A symbol with a
- template argument list. */
- {
- static const char expected[] = "ns::foo<int>";
- CHECK_MATCH ("ns :: foo < int > ", symbol_name_match_type::FULL, false,
- EXPECT (expected));
- CHECK_MATCH ("foo < int > ", symbol_name_match_type::WILD, false,
- EXPECT (expected));
- }
-
- /* Check that whitespace is ignored appropriately. A symbol with a
- template argument list that includes a pointer. */
- {
- static const char expected[] = "ns::foo<char*>";
- /* Try both completion and non-completion modes. */
- static const bool completion_mode[2] = {false, true};
- for (size_t i = 0; i < 2; i++)
- {
- CHECK_MATCH ("ns :: foo < char * >", symbol_name_match_type::FULL,
- completion_mode[i], EXPECT (expected));
- CHECK_MATCH ("foo < char * >", symbol_name_match_type::WILD,
- completion_mode[i], EXPECT (expected));
-
- CHECK_MATCH ("ns :: foo < char * > (int)", symbol_name_match_type::FULL,
- completion_mode[i], EXPECT (expected));
- CHECK_MATCH ("foo < char * > (int)", symbol_name_match_type::WILD,
- completion_mode[i], EXPECT (expected));
- }
- }
-
- {
- /* Check method qualifiers are ignored. */
- static const char expected[] = "ns::foo<char*>";
- CHECK_MATCH ("ns :: foo < char * > ( int ) const",
- symbol_name_match_type::FULL, true, EXPECT (expected));
- CHECK_MATCH ("ns :: foo < char * > ( int ) &&",
- symbol_name_match_type::FULL, true, EXPECT (expected));
- CHECK_MATCH ("foo < char * > ( int ) const",
- symbol_name_match_type::WILD, true, EXPECT (expected));
- CHECK_MATCH ("foo < char * > ( int ) &&",
- symbol_name_match_type::WILD, true, EXPECT (expected));
- }
-
- /* Test lookup names that don't match anything. */
- {
- CHECK_MATCH ("bar2", symbol_name_match_type::WILD, false,
- {});
-
- CHECK_MATCH ("doesntexist", symbol_name_match_type::FULL, false,
- {});
- }
-
- /* Some wild matching tests, exercising "(anonymous namespace)",
- which should not be confused with a parameter list. */
- {
- static const char *syms[] = {
- "A::B::C",
- "B::C",
- "C",
- "A :: B :: C ( int )",
- "B :: C ( int )",
- "C ( int )",
- };
-
- for (const char *s : syms)
- {
- CHECK_MATCH (s, symbol_name_match_type::WILD, false,
- EXPECT ("(anonymous namespace)::A::B::C"));
- }
- }
-
- {
- static const char expected[] = "ns2::tmpl<int>::foo2";
- CHECK_MATCH ("tmp", symbol_name_match_type::WILD, true,
- EXPECT (expected));
- CHECK_MATCH ("tmpl<", symbol_name_match_type::WILD, true,
- EXPECT (expected));
- }
-
- SELF_CHECK (!any_mismatch);
-
-#undef EXPECT
-#undef CHECK_MATCH
-}
-
-static void
-run_test ()
-{
- test_mapped_index_find_name_component_bounds ();
- test_dw2_expand_symtabs_matching_symbol ();
-}
-
-}} /* namespace selftests::dw2_expand_symtabs_matching */
-
-#endif /* GDB_SELF_TEST */
-
-struct dwarf2_gdb_index : public dwarf2_base_index_functions
-{
- /* This dumps minimal information about the index.
- It is called via "mt print objfiles".
- One use is to verify .gdb_index has been loaded by the
- gdb.dwarf2/gdb-index.exp testcase. */
- void dump (struct objfile *objfile) override;
-
- bool expand_symtabs_matching
- (struct objfile *objfile,
- expand_symtabs_file_matcher file_matcher,
- const lookup_name_info *lookup_name,
- expand_symtabs_symbol_matcher symbol_matcher,
- expand_symtabs_expansion_listener expansion_notify,
- block_search_flags search_flags,
- domain_search_flags domain,
- expand_symtabs_lang_matcher lang_matcher) override;
-};
-
-/* This dumps minimal information about the index.
- It is called via "mt print objfiles".
- One use is to verify .gdb_index has been loaded by the
- gdb.dwarf2/gdb-index.exp testcase. */
-
-void
-dwarf2_gdb_index::dump (struct objfile *objfile)
-{
- dwarf2_per_objfile *per_objfile = get_dwarf2_per_objfile (objfile);
-
- mapped_gdb_index *index = (gdb::checked_static_cast<mapped_gdb_index *>
- (per_objfile->per_bfd->index_table.get ()));
- gdb_printf (".gdb_index: version %d\n", index->version);
- gdb_printf ("\n");
-}
-
-/* Helper for dw2_expand_matching symtabs. Called on each symbol
- matched, to expand corresponding CUs that were marked. IDX is the
- index of the symbol name that matched. */
-
-static bool
-dw2_expand_marked_cus (dwarf2_per_objfile *per_objfile, offset_type idx,
- expand_symtabs_file_matcher file_matcher,
- expand_symtabs_expansion_listener expansion_notify,
- block_search_flags search_flags,
- domain_search_flags kind,
- expand_symtabs_lang_matcher lang_matcher)
-{
- offset_type vec_len, vec_idx;
- bool global_seen = false;
- mapped_gdb_index &index
- = *(gdb::checked_static_cast<mapped_gdb_index *>
- (per_objfile->per_bfd->index_table.get ()));
-
- offset_view vec (index.constant_pool.slice (index.symbol_vec_index (idx)));
- vec_len = vec[0];
- for (vec_idx = 0; vec_idx < vec_len; ++vec_idx)
- {
- offset_type cu_index_and_attrs = vec[vec_idx + 1];
- /* This value is only valid for index versions >= 7. */
- int is_static = GDB_INDEX_SYMBOL_STATIC_VALUE (cu_index_and_attrs);
- gdb_index_symbol_kind symbol_kind =
- GDB_INDEX_SYMBOL_KIND_VALUE (cu_index_and_attrs);
- int cu_index = GDB_INDEX_CU_VALUE (cu_index_and_attrs);
- /* Only check the symbol attributes if they're present.
- Indices prior to version 7 don't record them,
- and indices >= 7 may elide them for certain symbols
- (gold does this). */
- int attrs_valid =
- (index.version >= 7
- && symbol_kind != GDB_INDEX_SYMBOL_KIND_NONE);
-
- /* Work around gold/15646. */
- if (attrs_valid
- && !is_static
- && symbol_kind == GDB_INDEX_SYMBOL_KIND_TYPE)
+ std::vector<cooked_index_entry *> these_entries;
+ offset_view vec (constant_pool.slice (symbol_vec_index (idx)));
+ offset_type vec_len = vec[0];
+ bool global_seen = false;
+ for (offset_type vec_idx = 0; vec_idx < vec_len; ++vec_idx)
{
- if (global_seen)
+ offset_type cu_index_and_attrs = vec[vec_idx + 1];
+ gdb_index_symbol_kind symbol_kind
+ = GDB_INDEX_SYMBOL_KIND_VALUE (cu_index_and_attrs);
+ /* Only use a symbol if the attributes are present. Indices
+ prior to version 7 don't record them, and indices >= 7
+ may elide them for certain symbols (gold does this). */
+ if (symbol_kind == GDB_INDEX_SYMBOL_KIND_NONE)
continue;
- global_seen = true;
- }
+ int is_static = GDB_INDEX_SYMBOL_STATIC_VALUE (cu_index_and_attrs);
- /* Only check the symbol's kind if it has one. */
- if (attrs_valid)
- {
- if (is_static)
+ int cu_index = GDB_INDEX_CU_VALUE (cu_index_and_attrs);
+ /* Don't crash on bad data. */
+ if (cu_index >= units.size ())
{
- if ((search_flags & SEARCH_STATIC_BLOCK) == 0)
- continue;
- }
- else
- {
- if ((search_flags & SEARCH_GLOBAL_BLOCK) == 0)
- continue;
+ complaint (_(".gdb_index entry has bad CU index"
+ " [in module %s]"),
+ objfile_name (per_objfile->objfile));
+ continue;
}
+ dwarf2_per_cu *per_cu = units[cu_index];
- domain_search_flags mask = 0;
+ enum language this_lang = lang;
+ dwarf_tag tag;
switch (symbol_kind)
{
case GDB_INDEX_SYMBOL_KIND_VARIABLE:
- mask = SEARCH_VAR_DOMAIN;
+ tag = DW_TAG_variable;
break;
case GDB_INDEX_SYMBOL_KIND_FUNCTION:
- mask = SEARCH_FUNCTION_DOMAIN;
+ tag = DW_TAG_subprogram;
break;
case GDB_INDEX_SYMBOL_KIND_TYPE:
- mask = SEARCH_TYPE_DOMAIN | SEARCH_STRUCT_DOMAIN;
+ if (is_static)
+ tag = (dwarf_tag) DW_TAG_GDB_INDEX_TYPE;
+ else
+ {
+ /* Work around gold/15646. */
+ if (global_seen)
+ continue;
+ global_seen = true;
+
+ tag = DW_TAG_structure_type;
+ this_lang = language_cplus;
+ }
break;
+ /* The "default" should not happen, but we mention it to
+ avoid an uninitialized warning. */
+ default:
case GDB_INDEX_SYMBOL_KIND_OTHER:
- mask = SEARCH_MODULE_DOMAIN;
+ tag = (dwarf_tag) DW_TAG_GDB_INDEX_OTHER;
break;
}
- if ((kind & mask) == 0)
- continue;
- }
- /* Don't crash on bad data. */
- if (cu_index >= index.units.size ())
- {
- complaint (_(".gdb_index entry has bad CU index"
- " [in module %s]"), objfile_name (per_objfile->objfile));
- continue;
+ cooked_index_flag flags = 0;
+ if (is_static)
+ flags |= IS_STATIC;
+ if (main_name != nullptr
+ && tag == DW_TAG_subprogram
+ && strcmp (name, main_name) == 0)
+ {
+ flags |= IS_MAIN;
+ this_lang = main_lang;
+ /* Don't bother looking for another. */
+ main_name = nullptr;
+ }
+
+ /* Note that this assumes the final component ends in \0. */
+ cooked_index_entry *entry = result.add (per_cu->sect_off, tag,
+ flags, this_lang,
+ components.back ().data (),
+ nullptr, per_cu);
+ /* Don't bother pushing if we do not need a parent. */
+ if (components.size () > 1)
+ these_entries.push_back (entry);
+
+ /* We don't care exactly which entry ends up in this
+ map. */
+ by_name[std::string_view (name)] = entry;
}
- dwarf2_per_cu *per_cu = index.units[cu_index];
+ if (components.size () > 1)
+ {
+ std::string_view penultimate = components[components.size () - 2];
+ std::string_view prefix (name, &penultimate.back () + 1 - name);
- if (!dw2_expand_symtabs_matching_one (per_cu, per_objfile, file_matcher,
- expansion_notify, lang_matcher))
- return false;
+ need_parents.emplace_back (prefix, std::move (these_entries));
+ }
}
- return true;
+ for (const auto &[prefix, entries] : need_parents)
+ {
+ auto iter = by_name.find (prefix);
+ /* If we can't find the parent entry, just lose. It should
+ always be there. We could synthesize it from the components,
+ if we kept those, but that seems like overkill. */
+ if (iter != by_name.end ())
+ {
+ for (cooked_index_entry *entry : entries)
+ entry->set_parent (iter->second);
+ }
+ }
}
-bool
-dwarf2_gdb_index::expand_symtabs_matching
- (objfile *objfile,
- expand_symtabs_file_matcher file_matcher,
- const lookup_name_info *lookup_name,
- expand_symtabs_symbol_matcher symbol_matcher,
- expand_symtabs_expansion_listener expansion_notify,
- block_search_flags search_flags,
- domain_search_flags domain,
- expand_symtabs_lang_matcher lang_matcher)
+/* The worker that reads a mapped index and fills in a
+ cooked_index_worker_result. */
+
+class gdb_index_worker : public cooked_index_worker
{
- dwarf2_per_objfile *per_objfile = get_dwarf2_per_objfile (objfile);
+public:
- dw_expand_symtabs_matching_file_matcher (per_objfile, file_matcher);
+ gdb_index_worker (dwarf2_per_objfile *per_objfile,
+ std::unique_ptr<mapped_gdb_index> map)
+ : cooked_index_worker (per_objfile),
+ map (std::move (map))
+ { }
- /* This invariant is documented in quick-functions.h. */
- gdb_assert (lookup_name != nullptr || symbol_matcher == nullptr);
- if (lookup_name == nullptr)
- {
- for (dwarf2_per_cu *per_cu : all_units_range (per_objfile->per_bfd))
- {
- QUIT;
+ void do_reading () override;
- if (!dw2_expand_symtabs_matching_one (per_cu, per_objfile,
- file_matcher,
- expansion_notify,
- lang_matcher))
- return false;
- }
- return true;
- }
+ /* The map we're reading. */
+ std::unique_ptr<mapped_gdb_index> map;
+};
- mapped_gdb_index &index
- = *(gdb::checked_static_cast<mapped_gdb_index *>
- (per_objfile->per_bfd->index_table.get ()));
+void
+gdb_index_worker::do_reading ()
+{
+ complaint_interceptor complaint_handler;
+ map->build_name_components (m_per_objfile);
- bool result
- = dw2_expand_symtabs_matching_symbol (index, *lookup_name,
- symbol_matcher,
- [&] (offset_type idx)
- {
- if (!dw2_expand_marked_cus (per_objfile, idx, file_matcher,
- expansion_notify, search_flags, domain,
- lang_matcher))
- return false;
- return true;
- }, per_objfile, lang_matcher);
+ m_results.push_back (std::move (map->result));
+ m_results[0].done_reading (complaint_handler.release ());
- return result;
-}
+ /* No longer needed. */
+ map.reset ();
-quick_symbol_functions_up
-mapped_gdb_index::make_quick_functions () const
-{
- return quick_symbol_functions_up (new dwarf2_gdb_index);
+ done_reading ();
+
+ bfd_thread_cleanup ();
}
/* A helper function that reads the .gdb_index from BUFFER and fills
@@ -1210,11 +431,9 @@ read_gdb_index_from_buffer (const char *filename,
/* Version check. */
offset_type version = metadata[0];
- /* Versions earlier than 3 emitted every copy of a psymbol. This
- causes the index to behave very poorly for certain requests. Version 3
- contained incomplete addrmap. So, it seems better to just ignore such
- indices. */
- if (version < 4)
+ /* GDB now requires the symbol attributes, which were added in
+ version 7. */
+ if (version < 7)
{
static int warning_printed = 0;
if (!warning_printed)
@@ -1225,30 +444,6 @@ read_gdb_index_from_buffer (const char *filename,
}
return 0;
}
- /* Index version 4 uses a different hash function than index version
- 5 and later.
-
- Versions earlier than 6 did not emit psymbols for inlined
- functions. Using these files will cause GDB not to be able to
- set breakpoints on inlined functions by name, so we ignore these
- indices unless the user has done
- "set use-deprecated-index-sections on". */
- if (version < 6 && !deprecated_ok)
- {
- static int warning_printed = 0;
- if (!warning_printed)
- {
- warning (_("\
-Skipping deprecated .gdb_index section in %s.\n\
-Do \"%ps\" before the file is read\n\
-to use the section anyway."),
- filename,
- styled_string (command_style.style (),
- "set use-deprecated-index-sections on"));
- warning_printed = 1;
- }
- return 0;
- }
/* Version 7 indices generated by gold refer to the CU for a symbol instead
of the TU (for symbols coming from TUs),
http://sourceware.org/bugzilla/show_bug.cgi?id=15021.
@@ -1395,13 +590,13 @@ create_signatured_type_table_from_gdb_index
per_bfd->signatured_types = std::move (sig_types_hash);
}
-/* Read the address map data from the mapped GDB index. */
+/* Read the address map data from the mapped GDB index. Return true if no
+ errors were found, otherwise return false. */
-static void
+static bool
create_addrmap_from_gdb_index (dwarf2_per_objfile *per_objfile,
mapped_gdb_index *index)
{
- dwarf2_per_bfd *per_bfd = per_objfile->per_bfd;
const gdb_byte *iter, *end;
addrmap_mutable mutable_map;
@@ -1419,40 +614,48 @@ create_addrmap_from_gdb_index (dwarf2_per_objfile *per_objfile,
cu_index = extract_unsigned_integer (iter, 4, BFD_ENDIAN_LITTLE);
iter += 4;
- if (lo > hi)
+ if (lo >= hi)
{
- complaint (_(".gdb_index address table has invalid range (%s - %s)"),
- hex_string (lo), hex_string (hi));
- continue;
+ warning (_(".gdb_index address table has invalid range (%s - %s),"
+ " ignoring .gdb_index"),
+ hex_string (lo), hex_string (hi));
+ return false;
}
if (cu_index >= index->units.size ())
{
- complaint (_(".gdb_index address table has invalid CU number %u"),
- (unsigned) cu_index);
- continue;
+ warning (_(".gdb_index address table has invalid CU number %u,"
+ " ignoring .gdb_index"),
+ (unsigned) cu_index);
+ return false;
}
- mutable_map.set_empty (lo, hi - 1, index->units[cu_index]);
+ bool full_range_p
+ = mutable_map.set_empty (lo, hi - 1, index->units[cu_index]);
+ if (!full_range_p)
+ {
+ warning (_(".gdb_index address table has a range (%s - %s) that"
+ " overlaps with an earlier range, ignoring .gdb_index"),
+ hex_string (lo), hex_string (hi));
+ return false;
+ }
}
- index->index_addrmap
- = new (&per_bfd->obstack) addrmap_fixed (&per_bfd->obstack, &mutable_map);
-}
+ index->result.set_addrmap (std::move (mutable_map));
-/* Sets the name and language of the main function from the shortcut table. */
+ return true;
+}
-static void
-set_main_name_from_gdb_index (dwarf2_per_objfile *per_objfile,
- mapped_gdb_index *index)
+void
+mapped_gdb_index::set_main_name (dwarf2_per_objfile *per_objfile)
{
const auto expected_size = 2 * sizeof (offset_type);
- if (index->shortcut_table.size () < expected_size)
+ if (this->shortcut_table.size () < expected_size)
/* The data in the section is not present, is corrupted or is in a version
we don't know about. Regardless, we can't make use of it. */
return;
- auto ptr = index->shortcut_table.data ();
+ auto ptr = this->shortcut_table.data ();
const auto dw_lang = extract_unsigned_integer (ptr, 4, BFD_ENDIAN_LITTLE);
if (dw_lang >= DW_LANG_hi_user)
{
@@ -1468,13 +671,11 @@ set_main_name_from_gdb_index (dwarf2_per_objfile *per_objfile,
}
ptr += 4;
- const auto lang = dwarf_lang_to_enum_language (dw_lang);
+ main_lang = dwarf_lang_to_enum_language (dw_lang);
const auto name_offset = extract_unsigned_integer (ptr,
sizeof (offset_type),
BFD_ENDIAN_LITTLE);
- const auto name = (const char *) (index->constant_pool.data () + name_offset);
-
- set_objfile_main_name (per_objfile->objfile, name, (enum language) lang);
+ main_name = (const char *) (this->constant_pool.data () + name_offset);
}
/* See read-gdb-index.h. */
@@ -1489,6 +690,7 @@ dwarf2_read_gdb_index
offset_type cu_list_elements, types_list_elements, dwz_list_elements = 0;
struct objfile *objfile = per_objfile->objfile;
dwarf2_per_bfd *per_bfd = per_objfile->per_bfd;
+ scoped_remove_all_units remove_all_units (*per_bfd);
gdb::array_view<const gdb_byte> main_index_contents
= get_gdb_index_contents (objfile, per_bfd);
@@ -1544,10 +746,7 @@ dwarf2_read_gdb_index
an index. */
if (per_bfd->infos.size () > 1
|| per_bfd->types.size () > 1)
- {
- per_bfd->all_units.clear ();
- return false;
- }
+ return false;
dwarf2_section_info *section
= (per_bfd->types.size () == 1
@@ -1561,11 +760,19 @@ dwarf2_read_gdb_index
finalize_all_units (per_bfd);
- create_addrmap_from_gdb_index (per_objfile, map.get ());
+ if (!create_addrmap_from_gdb_index (per_objfile, map.get ()))
+ return false;
- set_main_name_from_gdb_index (per_objfile, map.get ());
+ map->set_main_name (per_objfile);
- per_bfd->index_table = std::move (map);
+ int version = map->version;
+ auto worker = std::make_unique<gdb_index_worker> (per_objfile,
+ std::move (map));
+ auto idx = std::make_unique<cooked_gdb_index> (std::move (worker),
+ version);
+
+ per_bfd->start_reading (std::move (idx));
+ remove_all_units.disable ();
return true;
}
@@ -1583,9 +790,4 @@ Warning: This option must be enabled before gdb reads the file."),
NULL,
NULL,
&setlist, &showlist);
-
-#if GDB_SELF_TEST
- selftests::register_test ("dw2_expand_symtabs_matching",
- selftests::dw2_expand_symtabs_matching::run_test);
-#endif
}
diff --git a/gdb/dwarf2/read-gdb-index.h b/gdb/dwarf2/read-gdb-index.h
index 5107d63..c8f1fd0 100644
--- a/gdb/dwarf2/read-gdb-index.h
+++ b/gdb/dwarf2/read-gdb-index.h
@@ -27,6 +27,20 @@ struct dwarf2_per_objfile;
struct dwz_file;
struct objfile;
+/* .gdb_index doesn't distinguish between the various "other" symbols
+ -- but the symbol search machinery really wants to. For example,
+ an imported decl is "other" but is really a namespace and thus in
+ TYPE_DOMAIN; whereas a Fortran module is also "other" but is in the
+ MODULE_DOMAIN. We use this value internally to represent the
+ "other" case so that matching can work. The exact value does not
+ matter, all that matters here is that it won't overlap with any
+ symbol that gdb might create. */
+#define DW_TAG_GDB_INDEX_OTHER 0xffff
+
+/* Similarly, .gdb_index can't distinguish between the type and struct
+ domains. This is a special tag that inhabits both. */
+#define DW_TAG_GDB_INDEX_TYPE 0xfffe
+
/* Callback types for dwarf2_read_gdb_index. */
typedef gdb::function_view
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index ec8d376..8019179 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -38,6 +38,7 @@
#include "dwarf2/index-cache.h"
#include "dwarf2/leb.h"
#include "dwarf2/line-header.h"
+#include "dwarf2/line-program.h"
#include "dwarf2/dwz.h"
#include "dwarf2/macro.h"
#include "dwarf2/die.h"
@@ -147,7 +148,7 @@ static const registry<bfd>::key<dwarf2_per_bfd> dwarf2_per_bfd_bfd_data_key;
static const registry<objfile>::key<dwarf2_per_bfd>
dwarf2_per_bfd_objfile_data_key;
-/* The "aclass" indices for various kinds of computed DWARF symbols. */
+/* The "loc_class" indices for various kinds of computed DWARF symbols. */
static int dwarf2_locexpr_index;
static int dwarf2_loclist_index;
@@ -787,13 +788,6 @@ static line_header_up dwarf_decode_line_header (sect_offset sect_off,
struct dwarf2_cu *cu,
const char *comp_dir);
-static void dwarf_decode_lines (struct line_header *,
- struct dwarf2_cu *,
- unrelocated_addr, int decode_mapping);
-
-static void dwarf2_start_subfile (dwarf2_cu *cu, const file_entry &fe,
- const line_header &lh);
-
static struct symbol *new_symbol (struct die_info *, struct type *,
struct dwarf2_cu *, struct symbol * = NULL);
@@ -857,6 +851,11 @@ static struct dwarf2_section_info *cu_debug_loc_section (struct dwarf2_cu *cu);
static struct dwarf2_section_info *cu_debug_rnglists_section
(struct dwarf2_cu *cu, dwarf_tag tag);
+static void dw_search_file_matcher
+ (dwarf2_per_objfile *per_objfile,
+ auto_bool_vector &cus_to_skip,
+ search_symtabs_file_matcher file_matcher);
+
static void get_scope_pc_bounds (struct die_info *,
unrelocated_addr *, unrelocated_addr *,
struct dwarf2_cu *);
@@ -987,9 +986,6 @@ static void queue_comp_unit (dwarf2_per_cu *per_cu,
static void process_queue (dwarf2_per_objfile *per_objfile);
-static bool is_ada_import_or_export (dwarf2_cu *cu, const char *name,
- const char *linkagename);
-
/* Class, the destructor of which frees all allocated queue entries. This
will only have work to do if an error was thrown while processing the
dwarf. If no error was thrown then the queue entries should have all
@@ -1043,12 +1039,6 @@ dwarf2_per_cu_deleter::operator() (dwarf2_per_cu *data)
delete data;
}
-static const char *compute_include_file_name
- (const struct line_header *lh,
- const file_entry &fe,
- const file_and_directory &cu_info,
- std::string &name_holder);
-
static struct dwo_unit *lookup_dwo_unit_in_dwp
(dwarf2_per_bfd *per_bfd, struct dwp_file *dwp_file,
const char *comp_dir, ULONGEST signature, int is_debug_types);
@@ -1063,19 +1053,6 @@ static void process_cu_includes (dwarf2_per_objfile *per_objfile);
/* Various complaints about symbol reading that don't abort the process. */
static void
-dwarf2_debug_line_missing_file_complaint (void)
-{
- complaint (_(".debug_line section has line data without a file"));
-}
-
-static void
-dwarf2_debug_line_missing_end_sequence_complaint (void)
-{
- complaint (_(".debug_line section has line "
- "program sequence without an end"));
-}
-
-static void
dwarf2_complex_location_expr_complaint (void)
{
complaint (_("location expression too complex"));
@@ -1553,16 +1530,37 @@ struct readnow_functions : public dwarf2_base_index_functions
{
}
- bool expand_symtabs_matching
- (struct objfile *objfile,
- expand_symtabs_file_matcher file_matcher,
- const lookup_name_info *lookup_name,
- expand_symtabs_symbol_matcher symbol_matcher,
- expand_symtabs_expansion_listener expansion_notify,
- block_search_flags search_flags,
- domain_search_flags domain,
- expand_symtabs_lang_matcher lang_matcher) override
+ bool search (struct objfile *objfile,
+ search_symtabs_file_matcher file_matcher,
+ const lookup_name_info *lookup_name,
+ search_symtabs_symbol_matcher symbol_matcher,
+ search_symtabs_expansion_listener listener,
+ block_search_flags search_flags,
+ domain_search_flags domain,
+ search_symtabs_lang_matcher lang_matcher) override
{
+ dwarf2_per_objfile *per_objfile = get_dwarf2_per_objfile (objfile);
+ auto_bool_vector cus_to_skip;
+ dw_search_file_matcher (per_objfile, cus_to_skip, file_matcher);
+
+ for (const auto &per_cu : per_objfile->per_bfd->all_units)
+ {
+ QUIT;
+
+ /* Skip various types of unit that should not be searched
+ directly: partial units and dummy units. */
+ if (/* Note that we request the non-strict unit type here. If
+ there was an error while reading, like in
+ dw-form-strx-out-of-bounds.exp, then the unit type may
+ not be set. */
+ per_cu->unit_type (false) == DW_UT_partial
+ || per_cu->unit_type (false) == 0
+ || per_objfile->get_symtab (per_cu.get ()) == nullptr)
+ continue;
+ if (!dw2_search_one (per_cu.get (), per_objfile, cus_to_skip,
+ file_matcher, listener, lang_matcher))
+ return false;
+ }
return true;
}
};
@@ -1711,6 +1709,75 @@ dwarf2_per_bfd::allocate_signatured_type (dwarf2_section_info *section,
return result;
}
+/* Subroutine of dw2_get_file_names_reader to simplify it.
+ Return the file name for the given file_entry.
+ CU_INFO describes the CU's DW_AT_name and DW_AT_comp_dir.
+ If space for the result is malloc'd, *NAME_HOLDER will be set.
+ Returns NULL if FILE_INDEX should be ignored, i.e., it is
+ equivalent to CU_INFO. */
+
+static const char *
+compute_include_file_name (const struct line_header *lh, const file_entry &fe,
+ const file_and_directory &cu_info,
+ std::string &name_holder)
+{
+ const char *include_name = fe.name;
+ const char *include_name_to_compare = include_name;
+
+ const char *dir_name = fe.include_dir (lh);
+
+ std::string hold_compare;
+ if (!IS_ABSOLUTE_PATH (include_name)
+ && (dir_name != nullptr || cu_info.get_comp_dir () != nullptr))
+ {
+ /* Avoid creating a duplicate name for CU_INFO.
+ We do this by comparing INCLUDE_NAME and CU_INFO.
+ Before we do the comparison, however, we need to account
+ for DIR_NAME and COMP_DIR.
+ First prepend dir_name (if non-NULL). If we still don't
+ have an absolute path prepend comp_dir (if non-NULL).
+ However, the directory we record in the include-file's
+ psymtab does not contain COMP_DIR (to match the
+ corresponding symtab(s)).
+
+ Example:
+
+ bash$ cd /tmp
+ bash$ gcc -g ./hello.c
+ include_name = "hello.c"
+ dir_name = "."
+ DW_AT_comp_dir = comp_dir = "/tmp"
+ DW_AT_name = "./hello.c"
+
+ */
+
+ if (dir_name != NULL)
+ {
+ name_holder = path_join (dir_name, include_name);
+ include_name = name_holder.c_str ();
+ include_name_to_compare = include_name;
+ }
+ if (!IS_ABSOLUTE_PATH (include_name)
+ && cu_info.get_comp_dir () != nullptr)
+ {
+ hold_compare = path_join (cu_info.get_comp_dir (), include_name);
+ include_name_to_compare = hold_compare.c_str ();
+ }
+ }
+
+ std::string copied_name;
+ const char *cu_filename = cu_info.get_name ();
+ if (!IS_ABSOLUTE_PATH (cu_filename) && cu_info.get_comp_dir () != nullptr)
+ {
+ copied_name = path_join (cu_info.get_comp_dir (), cu_filename);
+ cu_filename = copied_name.c_str ();
+ }
+
+ if (FILENAME_CMP (include_name_to_compare, cu_filename) == 0)
+ return nullptr;
+ return include_name;
+}
+
/* die_reader_func for dw2_get_file_names. */
static void
@@ -1930,14 +1997,16 @@ dwarf2_base_index_functions::expand_all_symtabs (struct objfile *objfile)
/* See read.h. */
bool
-dw2_expand_symtabs_matching_one
+dw2_search_one
(dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile,
- expand_symtabs_file_matcher file_matcher,
- expand_symtabs_expansion_listener expansion_notify,
- expand_symtabs_lang_matcher lang_matcher)
+ auto_bool_vector &cus_to_skip,
+ search_symtabs_file_matcher file_matcher,
+ search_symtabs_expansion_listener listener,
+ search_symtabs_lang_matcher lang_matcher)
{
- if (file_matcher != nullptr && !per_cu->mark)
+ /* Already visited, or intentionally skipped. */
+ if (cus_to_skip.is_set (per_cu->index))
return true;
if (lang_matcher != nullptr)
@@ -1949,22 +2018,27 @@ dw2_expand_symtabs_matching_one
return true;
}
- bool symtab_was_null = !per_objfile->symtab_set_p (per_cu);
compunit_symtab *symtab
= dw2_instantiate_symtab (per_cu, per_objfile, false);
gdb_assert (symtab != nullptr);
- if (expansion_notify != NULL && symtab_was_null)
- return expansion_notify (symtab);
+ if (listener != nullptr)
+ {
+ cus_to_skip.set (per_cu->index, true);
+ return listener (symtab);
+ }
return true;
}
-/* See read.h. */
+/* If FILE_MATCHER is non-NULL, update CUS_TO_SKIP as appropriate
+ based on FILE_MATCHER. */
-void
-dw_expand_symtabs_matching_file_matcher
- (dwarf2_per_objfile *per_objfile, expand_symtabs_file_matcher file_matcher)
+static void
+dw_search_file_matcher
+ (dwarf2_per_objfile *per_objfile,
+ auto_bool_vector &cus_to_skip,
+ search_symtabs_file_matcher file_matcher)
{
if (file_matcher == NULL)
return;
@@ -1980,54 +2054,50 @@ dw_expand_symtabs_matching_file_matcher
QUIT;
if (per_cu->is_debug_types)
- continue;
- per_cu->mark = 0;
-
- /* We only need to look at symtabs not already expanded. */
- if (per_objfile->symtab_set_p (per_cu.get ()))
- continue;
+ {
+ cus_to_skip.set (per_cu->index, true);
+ continue;
+ }
if (per_cu->fnd != nullptr)
{
file_and_directory *fnd = per_cu->fnd.get ();
if (file_matcher (fnd->get_name (), false))
- {
- per_cu->mark = 1;
- continue;
- }
+ continue;
/* Before we invoke realpath, which can get expensive when many
files are involved, do a quick comparison of the basenames. */
if ((basenames_may_differ
|| file_matcher (lbasename (fnd->get_name ()), true))
&& file_matcher (fnd->get_fullname (), false))
- {
- per_cu->mark = 1;
- continue;
- }
+ continue;
}
quick_file_names *file_data = dw2_get_file_names (per_cu.get (),
per_objfile);
if (file_data == NULL)
- continue;
+ {
+ cus_to_skip.set (per_cu->index, true);
+ continue;
+ }
if (visited_not_found.contains (file_data))
- continue;
- else if (visited_found.contains (file_data))
{
- per_cu->mark = 1;
+ cus_to_skip.set (per_cu->index, true);
continue;
}
+ else if (visited_found.contains (file_data))
+ continue;
+ bool matched = false;
for (int j = 0; j < file_data->num_file_names; ++j)
{
const char *this_real_name;
if (file_matcher (file_data->file_names[j], false))
{
- per_cu->mark = 1;
+ matched = true;
break;
}
@@ -2041,15 +2111,18 @@ dw_expand_symtabs_matching_file_matcher
this_real_name = dw2_get_real_path (per_objfile, file_data, j);
if (file_matcher (this_real_name, false))
{
- per_cu->mark = 1;
+ matched = true;
break;
}
}
- if (per_cu->mark)
+ if (matched)
visited_found.insert (file_data);
else
- visited_not_found.insert (file_data);
+ {
+ cus_to_skip.set (per_cu->index, true);
+ visited_not_found.insert (file_data);
+ }
}
}
@@ -3679,6 +3752,10 @@ read_comp_units_from_section (dwarf2_per_objfile *per_objfile,
void
finalize_all_units (dwarf2_per_bfd *per_bfd)
{
+ /* Sanity check. */
+ gdb_assert (per_bfd->all_units.size ()
+ == per_bfd->num_comp_units + per_bfd->num_type_units);
+
/* Ensure that the all_units vector is in the expected order for
dwarf2_find_containing_unit to be able to perform a binary search. */
std::sort (per_bfd->all_units.begin (), per_bfd->all_units.end (),
@@ -3694,6 +3771,7 @@ void
create_all_units (dwarf2_per_objfile *per_objfile)
{
gdb_assert (per_objfile->per_bfd->all_units.empty ());
+ scoped_remove_all_units remove_all_units (*per_objfile->per_bfd);
signatured_type_set sig_types;
@@ -3714,8 +3792,6 @@ create_all_units (dwarf2_per_objfile *per_objfile)
if (!dwz->types.empty ())
{
- per_objfile->per_bfd->all_units.clear ();
-
/* See enhancement PR symtab/30838. */
error (_(DWARF_ERROR_PREFIX
".debug_types section not supported in dwz file"));
@@ -3725,6 +3801,7 @@ create_all_units (dwarf2_per_objfile *per_objfile)
per_objfile->per_bfd->signatured_types = std::move (sig_types);
finalize_all_units (per_objfile->per_bfd);
+ remove_all_units.disable ();
}
/* Return the initial uleb128 in the die at INFO_PTR. */
@@ -4257,7 +4334,7 @@ fixup_go_packaging (struct dwarf2_cu *cu)
struct symbol *sym = list->symbol[i];
if (sym->language () == language_go
- && sym->aclass () == LOC_BLOCK)
+ && sym->loc_class () == LOC_BLOCK)
{
gdb::unique_xmalloc_ptr<char> this_package_name
= go_symbol_package_name (sym);
@@ -4294,7 +4371,7 @@ fixup_go_packaging (struct dwarf2_cu *cu)
sym->set_language (language_go, &objfile->objfile_obstack);
sym->compute_and_set_names (saved_package_name, false, objfile->per_bfd);
sym->set_domain (TYPE_DOMAIN);
- sym->set_aclass_index (LOC_TYPEDEF);
+ sym->set_loc_class_index (LOC_TYPEDEF);
sym->set_type (type);
add_symbol_to_list (sym, cu->get_builder ()->get_global_symbols ());
@@ -4504,9 +4581,9 @@ quirk_rust_enum (struct type *type, struct objfile *objfile)
else
{
struct type *disr_type = nullptr;
- for (int i = 0; i < type->num_fields (); ++i)
+ for (const auto &field : type->fields ())
{
- disr_type = type->field (i).type ();
+ disr_type = field.type ();
if (disr_type->code () != TYPE_CODE_STRUCT)
{
@@ -4545,7 +4622,7 @@ quirk_rust_enum (struct type *type, struct objfile *objfile)
field *new_fields
= (struct field *) TYPE_ZALLOC (type, ((type->num_fields () + 1)
* sizeof (struct field)));
- memcpy (new_fields + 1, type->fields (),
+ memcpy (new_fields + 1, type->fields ().data (),
type->num_fields () * sizeof (struct field));
type->set_fields (new_fields);
type->set_num_fields (type->num_fields () + 1);
@@ -4559,13 +4636,12 @@ quirk_rust_enum (struct type *type, struct objfile *objfile)
variant name. For convenience we build a map here. */
struct type *enum_type = disr_field->type ();
gdb::unordered_map<std::string_view, ULONGEST> discriminant_map;
- for (int i = 0; i < enum_type->num_fields (); ++i)
+ for (const auto &field : enum_type->fields ())
{
- if (enum_type->field (i).loc_kind () == FIELD_LOC_KIND_ENUMVAL)
+ if (field.loc_kind () == FIELD_LOC_KIND_ENUMVAL)
{
- const char *name
- = rust_last_path_segment (enum_type->field (i).name ());
- discriminant_map[name] = enum_type->field (i).loc_enumval ();
+ const char *name = rust_last_path_segment (field.name ());
+ discriminant_map[name] = field.loc_enumval ();
}
}
@@ -4601,7 +4677,7 @@ quirk_rust_enum (struct type *type, struct objfile *objfile)
if (sub_type->num_fields () > 0)
{
sub_type->set_num_fields (sub_type->num_fields () - 1);
- sub_type->set_fields (sub_type->fields () + 1);
+ sub_type->set_fields (sub_type->fields ().data () + 1);
}
type->field (i).set_name (variant_name);
sub_type->set_name
@@ -5681,7 +5757,7 @@ read_alias (struct die_info *die, struct dwarf2_cu *cu)
type = die_type (d, imported_cu);
struct symbol *sym = new_symbol (die, type, cu);
attr = dwarf2_attr (d, DW_AT_location, imported_cu);
- sym->set_aclass_index (LOC_UNRESOLVED);
+ sym->set_loc_class_index (LOC_UNRESOLVED);
if (attr != nullptr)
var_decode_location (attr, sym, cu);
return true;
@@ -6048,7 +6124,7 @@ read_file_scope (struct die_info *die, struct dwarf2_cu *cu)
sect_offset line_offset = (sect_offset) attr->as_unsigned ();
line_header_up lh = dwarf_decode_line_header (line_offset, cu,
fnd.get_comp_dir ());
- if (lh->version == 5 && lh->is_valid_file_index (1))
+ if (lh->version == 5 && lh->include_dir_at (1) != nullptr)
{
std::string dir = lh->include_dir_at (1);
fnd.set_comp_dir (std::move (dir));
@@ -10629,7 +10705,6 @@ dwarf2_add_member_fn (struct field_info *fip, struct die_info *die,
smash_to_method_type (fnp->type, type,
this_type->target_type (),
this_type->fields (),
- this_type->num_fields (),
this_type->has_varargs ());
/* Handle static member functions.
@@ -10851,8 +10926,7 @@ quirk_gcc_member_function_pointer (struct type *type, struct objfile *objfile)
self_type = pfn_type->field (0).type ()->target_type ();
new_type = type_allocator (type).new_type ();
smash_to_method_type (new_type, self_type, pfn_type->target_type (),
- pfn_type->fields (), pfn_type->num_fields (),
- pfn_type->has_varargs ());
+ pfn_type->fields (), pfn_type->has_varargs ());
smash_to_methodptr_type (type, new_type);
}
@@ -12411,7 +12485,7 @@ mark_common_block_symbol_computed (struct symbol *sym,
gdb_assert (ptr - baton->data == baton->size);
SYMBOL_LOCATION_BATON (sym) = baton;
- sym->set_aclass_index (dwarf2_locexpr_index);
+ sym->set_loc_class_index (dwarf2_locexpr_index);
}
/* Create appropriate locally-scoped variables for all the
@@ -12773,8 +12847,7 @@ read_tag_ptr_to_member_type (struct die_info *die, struct dwarf2_cu *cu)
= type_allocator (cu->per_objfile->objfile, cu->lang ()).new_type ();
smash_to_method_type (new_type, domain, to_type->target_type (),
- to_type->fields (), to_type->num_fields (),
- to_type->has_varargs ());
+ to_type->fields (), to_type->has_varargs ());
type = lookup_methodptr_type (new_type);
}
else
@@ -13396,7 +13469,7 @@ ada_get_gnat_encoded_number (const char *encoding, int &k, gdb_mpz *result)
{
/* The next character should be an underscore ('_') followed
by a digit. */
- if (encoding[k] != '_' || !isdigit (encoding[k + 1]))
+ if (encoding[k] != '_' || !c_isdigit (encoding[k + 1]))
return false;
/* Skip the underscore. */
@@ -13404,7 +13477,7 @@ ada_get_gnat_encoded_number (const char *encoding, int &k, gdb_mpz *result)
int start = k;
/* Determine the number of digits for our number. */
- while (isdigit (encoding[k]))
+ while (c_isdigit (encoding[k]))
k++;
if (k == start)
return false;
@@ -14520,21 +14593,22 @@ cooked_index_functions::find_compunit_symtab_by_address
}
bool
-cooked_index_functions::expand_symtabs_matching
+cooked_index_functions::search
(objfile *objfile,
- expand_symtabs_file_matcher file_matcher,
+ search_symtabs_file_matcher file_matcher,
const lookup_name_info *lookup_name,
- expand_symtabs_symbol_matcher symbol_matcher,
- expand_symtabs_expansion_listener expansion_notify,
+ search_symtabs_symbol_matcher symbol_matcher,
+ search_symtabs_expansion_listener listener,
block_search_flags search_flags,
domain_search_flags domain,
- expand_symtabs_lang_matcher lang_matcher)
+ search_symtabs_lang_matcher lang_matcher)
{
dwarf2_per_objfile *per_objfile = get_dwarf2_per_objfile (objfile);
cooked_index *table = wait (objfile, true);
- dw_expand_symtabs_matching_file_matcher (per_objfile, file_matcher);
+ auto_bool_vector cus_to_skip;
+ dw_search_file_matcher (per_objfile, cus_to_skip, file_matcher);
/* This invariant is documented in quick-functions.h. */
gdb_assert (lookup_name != nullptr || symbol_matcher == nullptr);
@@ -14544,10 +14618,8 @@ cooked_index_functions::expand_symtabs_matching
{
QUIT;
- if (!dw2_expand_symtabs_matching_one (per_cu, per_objfile,
- file_matcher,
- expansion_notify,
- lang_matcher))
+ if (!dw2_search_one (per_cu, per_objfile, cus_to_skip, file_matcher,
+ listener, lang_matcher))
return false;
}
return true;
@@ -14622,13 +14694,8 @@ cooked_index_functions::expand_symtabs_matching
{
QUIT;
- /* No need to consider symbols from expanded CUs. */
- if (per_objfile->symtab_set_p (entry->per_cu))
- continue;
-
- /* If file-matching was done, we don't need to consider
- symbols from unmarked CUs. */
- if (file_matcher != nullptr && !entry->per_cu->mark)
+ /* We don't need to consider symbols from some CUs. */
+ if (cus_to_skip.is_set (entry->per_cu->index))
continue;
/* See if the symbol matches the type filter. */
@@ -14645,13 +14712,26 @@ cooked_index_functions::expand_symtabs_matching
continue;
}
+ /* This is a bit of a hack to support .gdb_index. Since
+ .gdb_index does not record languages, and since we want
+ to know the language to avoid excessive CU expansion due
+ to false matches, if we see a symbol with an unknown
+ language we find the CU's language. Only the .gdb_index
+ reader creates such symbols. */
+ enum language entry_lang = entry->lang;
+ if (entry_lang == language_unknown)
+ {
+ entry->per_cu->ensure_lang (per_objfile);
+ entry_lang = entry->per_cu->lang ();
+ }
+
/* We've found the base name of the symbol; now walk its
parentage chain, ensuring that each component
matches. */
bool found = true;
const cooked_index_entry *parent = entry->get_parent ();
- const language_defn *lang_def = language_def (entry->lang);
+ const language_defn *lang_def = language_def (entry_lang);
for (int i = name_vec.size () - 1; i > 0; --i)
{
/* If we ran out of entries, or if this segment doesn't
@@ -14661,17 +14741,15 @@ cooked_index_functions::expand_symtabs_matching
found = false;
break;
}
- if (parent->lang != language_unknown)
+
+ symbol_name_matcher_ftype *name_matcher
+ = (lang_def->get_symbol_name_matcher
+ (segment_lookup_names[i-1]));
+ if (!name_matcher (parent->canonical,
+ segment_lookup_names[i-1], nullptr))
{
- symbol_name_matcher_ftype *name_matcher
- = lang_def->get_symbol_name_matcher
- (segment_lookup_names[i-1]);
- if (!name_matcher (parent->canonical,
- segment_lookup_names[i-1], nullptr))
- {
- found = false;
- break;
- }
+ found = false;
+ break;
}
parent = parent->get_parent ();
@@ -14694,27 +14772,23 @@ cooked_index_functions::expand_symtabs_matching
seems like the loop above could just examine every
element of the name, avoiding the need to check here; but
this is hard. See PR symtab/32733. */
- if (symbol_matcher != nullptr || entry->lang != language_unknown)
+ auto_obstack temp_storage;
+ const char *full_name = entry->full_name (&temp_storage,
+ FOR_ADA_LINKAGE_NAME);
+ if (symbol_matcher == nullptr)
{
- auto_obstack temp_storage;
- const char *full_name = entry->full_name (&temp_storage,
- FOR_ADA_LINKAGE_NAME);
- if (symbol_matcher == nullptr)
- {
- symbol_name_matcher_ftype *name_matcher
- = (lang_def->get_symbol_name_matcher
- (lookup_name_without_params));
- if (!name_matcher (full_name, lookup_name_without_params,
- nullptr))
- continue;
- }
- else if (!symbol_matcher (full_name))
+ symbol_name_matcher_ftype *name_matcher
+ = (lang_def->get_symbol_name_matcher
+ (lookup_name_without_params));
+ if (!name_matcher (full_name, lookup_name_without_params,
+ nullptr))
continue;
}
+ else if (!symbol_matcher (full_name))
+ continue;
- if (!dw2_expand_symtabs_matching_one (entry->per_cu, per_objfile,
- file_matcher,
- expansion_notify, nullptr))
+ if (!dw2_search_one (entry->per_cu, per_objfile, cus_to_skip,
+ file_matcher, listener, nullptr))
return false;
}
}
@@ -15759,9 +15833,9 @@ die_specification (struct die_info *die, struct dwarf2_cu **spec_cu)
return follow_die_ref (die, spec_attr, spec_cu);
}
-/* A convenience function to find the proper .debug_line section for a CU. */
+/* See dwarf2/read.h. */
-static struct dwarf2_section_info *
+struct dwarf2_section_info *
get_debug_line_section (struct dwarf2_cu *cu)
{
struct dwarf2_section_info *section;
@@ -15812,808 +15886,9 @@ dwarf_decode_line_header (sect_offset sect_off, struct dwarf2_cu *cu,
comp_dir);
}
-/* Subroutine of dwarf_decode_lines to simplify it.
- Return the file name for the given file_entry.
- CU_INFO describes the CU's DW_AT_name and DW_AT_comp_dir.
- If space for the result is malloc'd, *NAME_HOLDER will be set.
- Returns NULL if FILE_INDEX should be ignored, i.e., it is
- equivalent to CU_INFO. */
-
-static const char *
-compute_include_file_name (const struct line_header *lh, const file_entry &fe,
- const file_and_directory &cu_info,
- std::string &name_holder)
-{
- const char *include_name = fe.name;
- const char *include_name_to_compare = include_name;
-
- const char *dir_name = fe.include_dir (lh);
-
- std::string hold_compare;
- if (!IS_ABSOLUTE_PATH (include_name)
- && (dir_name != nullptr || cu_info.get_comp_dir () != nullptr))
- {
- /* Avoid creating a duplicate name for CU_INFO.
- We do this by comparing INCLUDE_NAME and CU_INFO.
- Before we do the comparison, however, we need to account
- for DIR_NAME and COMP_DIR.
- First prepend dir_name (if non-NULL). If we still don't
- have an absolute path prepend comp_dir (if non-NULL).
- However, the directory we record in the include-file's
- psymtab does not contain COMP_DIR (to match the
- corresponding symtab(s)).
-
- Example:
-
- bash$ cd /tmp
- bash$ gcc -g ./hello.c
- include_name = "hello.c"
- dir_name = "."
- DW_AT_comp_dir = comp_dir = "/tmp"
- DW_AT_name = "./hello.c"
-
- */
-
- if (dir_name != NULL)
- {
- name_holder = path_join (dir_name, include_name);
- include_name = name_holder.c_str ();
- include_name_to_compare = include_name;
- }
- if (!IS_ABSOLUTE_PATH (include_name)
- && cu_info.get_comp_dir () != nullptr)
- {
- hold_compare = path_join (cu_info.get_comp_dir (), include_name);
- include_name_to_compare = hold_compare.c_str ();
- }
- }
-
- std::string copied_name;
- const char *cu_filename = cu_info.get_name ();
- if (!IS_ABSOLUTE_PATH (cu_filename) && cu_info.get_comp_dir () != nullptr)
- {
- copied_name = path_join (cu_info.get_comp_dir (), cu_filename);
- cu_filename = copied_name.c_str ();
- }
-
- if (FILENAME_CMP (include_name_to_compare, cu_filename) == 0)
- return nullptr;
- return include_name;
-}
-
-/* State machine to track the state of the line number program. */
-
-class lnp_state_machine
-{
-public:
- /* Initialize a machine state for the start of a line number
- program. */
- lnp_state_machine (struct dwarf2_cu *cu, gdbarch *arch, line_header *lh);
-
- file_entry *current_file ()
- {
- /* lh->file_names is 0-based, but the file name numbers in the
- statement program are 1-based. */
- return m_line_header->file_name_at (m_file);
- }
-
- /* Record the line in the state machine. END_SEQUENCE is true if
- we're processing the end of a sequence. */
- void record_line (bool end_sequence);
-
- /* Check ADDRESS is -1, -2, or zero and less than UNRELOCATED_LOWPC, and if
- true nop-out rest of the lines in this sequence. */
- void check_line_address (struct dwarf2_cu *cu,
- const gdb_byte *line_ptr,
- unrelocated_addr unrelocated_lowpc,
- unrelocated_addr address);
-
- void handle_set_discriminator (unsigned int discriminator)
- {
- m_discriminator = discriminator;
- m_line_has_non_zero_discriminator |= discriminator != 0;
- }
-
- /* Handle DW_LNE_set_address. */
- void handle_set_address (unrelocated_addr address)
- {
- m_op_index = 0;
- m_address
- = (unrelocated_addr) gdbarch_adjust_dwarf2_line (m_gdbarch,
- (CORE_ADDR) address,
- false);
- }
-
- /* Handle DW_LNS_advance_pc. */
- void handle_advance_pc (CORE_ADDR adjust);
-
- /* Handle a special opcode. */
- void handle_special_opcode (unsigned char op_code);
-
- /* Handle DW_LNS_advance_line. */
- void handle_advance_line (int line_delta)
- {
- advance_line (line_delta);
- }
-
- /* Handle DW_LNS_set_file. */
- void handle_set_file (file_name_index file);
-
- /* Handle DW_LNS_negate_stmt. */
- void handle_negate_stmt ()
- {
- m_flags ^= LEF_IS_STMT;
- }
-
- /* Handle DW_LNS_const_add_pc. */
- void handle_const_add_pc ();
-
- /* Handle DW_LNS_fixed_advance_pc. */
- void handle_fixed_advance_pc (CORE_ADDR addr_adj)
- {
- addr_adj = gdbarch_adjust_dwarf2_line (m_gdbarch, addr_adj, true);
- m_address = (unrelocated_addr) ((CORE_ADDR) m_address + addr_adj);
- m_op_index = 0;
- }
-
- /* Handle DW_LNS_copy. */
- void handle_copy ()
- {
- record_line (false);
- m_discriminator = 0;
- m_flags &= ~LEF_PROLOGUE_END;
- m_flags &= ~LEF_EPILOGUE_BEGIN;
- }
-
- /* Handle DW_LNE_end_sequence. */
- void handle_end_sequence ()
- {
- m_currently_recording_lines = true;
- }
-
- /* Handle DW_LNS_set_prologue_end. */
- void handle_set_prologue_end ()
- {
- m_flags |= LEF_PROLOGUE_END;
- }
-
- void handle_set_epilogue_begin ()
- {
- m_flags |= LEF_EPILOGUE_BEGIN;
- }
-
-private:
- /* Advance the line by LINE_DELTA. */
- void advance_line (int line_delta)
- {
- m_line += line_delta;
-
- if (line_delta != 0)
- m_line_has_non_zero_discriminator = m_discriminator != 0;
- }
-
- struct dwarf2_cu *m_cu;
-
- gdbarch *m_gdbarch;
-
- /* The line number header. */
- line_header *m_line_header;
-
- /* These are part of the standard DWARF line number state machine,
- and initialized according to the DWARF spec. */
-
- unsigned char m_op_index = 0;
- /* The line table index of the current file. */
- file_name_index m_file = 1;
- unsigned int m_line = 1;
-
- /* These are initialized in the constructor. */
-
- unrelocated_addr m_address;
- linetable_entry_flags m_flags;
- unsigned int m_discriminator = 0;
-
- /* Additional bits of state we need to track. */
-
- /* The last file a line number was recorded for. */
- struct subfile *m_last_subfile = NULL;
-
- /* The address of the last line entry. */
- unrelocated_addr m_last_address;
-
- /* Set to true when a previous line at the same address (using
- m_last_address) had LEF_IS_STMT set in m_flags. This is reset to false
- when a line entry at a new address (m_address different to
- m_last_address) is processed. */
- bool m_stmt_at_address = false;
-
- /* When true, record the lines we decode. */
- bool m_currently_recording_lines = true;
-
- /* The last line number that was recorded, used to coalesce
- consecutive entries for the same line. This can happen, for
- example, when discriminators are present. PR 17276. */
- unsigned int m_last_line = 0;
- bool m_line_has_non_zero_discriminator = false;
-};
-
-void
-lnp_state_machine::handle_advance_pc (CORE_ADDR adjust)
-{
- CORE_ADDR addr_adj = (((m_op_index + adjust)
- / m_line_header->maximum_ops_per_instruction)
- * m_line_header->minimum_instruction_length);
- addr_adj = gdbarch_adjust_dwarf2_line (m_gdbarch, addr_adj, true);
- m_address = (unrelocated_addr) ((CORE_ADDR) m_address + addr_adj);
- m_op_index = ((m_op_index + adjust)
- % m_line_header->maximum_ops_per_instruction);
-}
-
-void
-lnp_state_machine::handle_special_opcode (unsigned char op_code)
-{
- unsigned char adj_opcode = op_code - m_line_header->opcode_base;
- unsigned char adj_opcode_d = adj_opcode / m_line_header->line_range;
- unsigned char adj_opcode_r = adj_opcode % m_line_header->line_range;
- CORE_ADDR addr_adj = (((m_op_index + adj_opcode_d)
- / m_line_header->maximum_ops_per_instruction)
- * m_line_header->minimum_instruction_length);
- addr_adj = gdbarch_adjust_dwarf2_line (m_gdbarch, addr_adj, true);
- m_address = (unrelocated_addr) ((CORE_ADDR) m_address + addr_adj);
- m_op_index = ((m_op_index + adj_opcode_d)
- % m_line_header->maximum_ops_per_instruction);
-
- int line_delta = m_line_header->line_base + adj_opcode_r;
- advance_line (line_delta);
- record_line (false);
- m_discriminator = 0;
- m_flags &= ~LEF_PROLOGUE_END;
- m_flags &= ~LEF_EPILOGUE_BEGIN;
-}
-
-void
-lnp_state_machine::handle_set_file (file_name_index file)
-{
- m_file = file;
-
- const file_entry *fe = current_file ();
- if (fe == NULL)
- dwarf2_debug_line_missing_file_complaint ();
- else
- {
- m_line_has_non_zero_discriminator = m_discriminator != 0;
- dwarf2_start_subfile (m_cu, *fe, *m_line_header);
- }
-}
-
-void
-lnp_state_machine::handle_const_add_pc ()
-{
- CORE_ADDR adjust
- = (255 - m_line_header->opcode_base) / m_line_header->line_range;
-
- CORE_ADDR addr_adj
- = (((m_op_index + adjust)
- / m_line_header->maximum_ops_per_instruction)
- * m_line_header->minimum_instruction_length);
-
- addr_adj = gdbarch_adjust_dwarf2_line (m_gdbarch, addr_adj, true);
- m_address = (unrelocated_addr) ((CORE_ADDR) m_address + addr_adj);
- m_op_index = ((m_op_index + adjust)
- % m_line_header->maximum_ops_per_instruction);
-}
-
-/* Return non-zero if we should add LINE to the line number table.
- LINE is the line to add, LAST_LINE is the last line that was added,
- LAST_SUBFILE is the subfile for LAST_LINE.
- LINE_HAS_NON_ZERO_DISCRIMINATOR is non-zero if LINE has ever
- had a non-zero discriminator.
-
- We have to be careful in the presence of discriminators.
- E.g., for this line:
-
- for (i = 0; i < 100000; i++);
-
- clang can emit four line number entries for that one line,
- each with a different discriminator.
- See gdb.dwarf2/dw2-single-line-discriminators.exp for an example.
-
- However, we want gdb to coalesce all four entries into one.
- Otherwise the user could stepi into the middle of the line and
- gdb would get confused about whether the pc really was in the
- middle of the line.
-
- Things are further complicated by the fact that two consecutive
- line number entries for the same line is a heuristic used by gcc
- to denote the end of the prologue. So we can't just discard duplicate
- entries, we have to be selective about it. The heuristic we use is
- that we only collapse consecutive entries for the same line if at least
- one of those entries has a non-zero discriminator. PR 17276.
-
- Note: Addresses in the line number state machine can never go backwards
- within one sequence, thus this coalescing is ok. */
-
-static int
-dwarf_record_line_p (struct dwarf2_cu *cu,
- unsigned int line, unsigned int last_line,
- int line_has_non_zero_discriminator,
- struct subfile *last_subfile)
-{
- if (cu->get_builder ()->get_current_subfile () != last_subfile)
- return 1;
- if (line != last_line)
- return 1;
- /* Same line for the same file that we've seen already.
- As a last check, for pr 17276, only record the line if the line
- has never had a non-zero discriminator. */
- if (!line_has_non_zero_discriminator)
- return 1;
- return 0;
-}
-
-/* Use the CU's builder to record line number LINE beginning at
- address ADDRESS in the line table of subfile SUBFILE. */
-
-static void
-dwarf_record_line_1 (struct gdbarch *gdbarch, struct subfile *subfile,
- unsigned int line, unrelocated_addr address,
- linetable_entry_flags flags,
- struct dwarf2_cu *cu)
-{
- unrelocated_addr addr
- = unrelocated_addr (gdbarch_addr_bits_remove (gdbarch,
- (CORE_ADDR) address));
-
- if (cu != nullptr)
- {
- if (dwarf_line_debug)
- gdb_printf (gdb_stdlog, "Recording line %u, file %s, address %s\n",
- line, lbasename (subfile->name.c_str ()),
- paddress (gdbarch, (CORE_ADDR) address));
-
- cu->get_builder ()->record_line (subfile, line, addr, flags);
- }
-}
-
-/* Subroutine of dwarf_decode_lines_1 to simplify it.
- Mark the end of a set of line number records.
- The arguments are the same as for dwarf_record_line_1.
- If SUBFILE is NULL the request is ignored. */
-
-static void
-dwarf_finish_line (struct gdbarch *gdbarch, struct subfile *subfile,
- unrelocated_addr address, struct dwarf2_cu *cu)
-{
- if (subfile == NULL)
- return;
-
- if (dwarf_line_debug)
- {
- gdb_printf (gdb_stdlog,
- "Finishing current line, file %s, address %s\n",
- lbasename (subfile->name.c_str ()),
- paddress (gdbarch, (CORE_ADDR) address));
- }
-
- dwarf_record_line_1 (gdbarch, subfile, 0, address, LEF_IS_STMT, cu);
-}
-
-void
-lnp_state_machine::record_line (bool end_sequence)
-{
- if (dwarf_line_debug)
- {
- gdb_printf (gdb_stdlog,
- "Processing actual line %u: file %u,"
- " address %s, is_stmt %u, prologue_end %u,"
- " epilogue_begin %u, discrim %u%s\n",
- m_line, m_file,
- paddress (m_gdbarch, (CORE_ADDR) m_address),
- (m_flags & LEF_IS_STMT) != 0,
- (m_flags & LEF_PROLOGUE_END) != 0,
- (m_flags & LEF_EPILOGUE_BEGIN) != 0,
- m_discriminator,
- (end_sequence ? "\t(end sequence)" : ""));
- }
-
- file_entry *fe = current_file ();
-
- if (fe == NULL)
- dwarf2_debug_line_missing_file_complaint ();
- /* For now we ignore lines not starting on an instruction boundary.
- But not when processing end_sequence for compatibility with the
- previous version of the code. */
- else if (m_op_index == 0 || end_sequence)
- {
- /* When we switch files we insert an end maker in the first file,
- switch to the second file and add a new line entry. The
- problem is that the end marker inserted in the first file will
- discard any previous line entries at the same address. If the
- line entries in the first file are marked as is-stmt, while
- the new line in the second file is non-stmt, then this means
- the end marker will discard is-stmt lines so we can have a
- non-stmt line. This means that there are less addresses at
- which the user can insert a breakpoint.
-
- To improve this we track the last address in m_last_address,
- and whether we have seen an is-stmt at this address. Then
- when switching files, if we have seen a stmt at the current
- address, and we are switching to create a non-stmt line, then
- discard the new line. */
- bool file_changed
- = m_last_subfile != m_cu->get_builder ()->get_current_subfile ();
- bool ignore_this_line
- = ((file_changed && !end_sequence && m_last_address == m_address
- && ((m_flags & LEF_IS_STMT) == 0)
- && m_stmt_at_address)
- || (!end_sequence && m_line == 0));
-
- if ((file_changed && !ignore_this_line) || end_sequence)
- {
- dwarf_finish_line (m_gdbarch, m_last_subfile, m_address,
- m_currently_recording_lines ? m_cu : nullptr);
- }
-
- if (!end_sequence && !ignore_this_line)
- {
- linetable_entry_flags lte_flags = m_flags;
- if (m_cu->producer_is_codewarrior ())
- lte_flags |= LEF_IS_STMT;
-
- if (dwarf_record_line_p (m_cu, m_line, m_last_line,
- m_line_has_non_zero_discriminator,
- m_last_subfile))
- {
- buildsym_compunit *builder = m_cu->get_builder ();
- dwarf_record_line_1 (m_gdbarch,
- builder->get_current_subfile (),
- m_line, m_address, lte_flags,
- m_currently_recording_lines ? m_cu : nullptr);
-
- m_last_subfile = m_cu->get_builder ()->get_current_subfile ();
- m_last_line = m_line;
- }
- }
- }
-
- /* Track whether we have seen any IS_STMT true at m_address in case we
- have multiple line table entries all at m_address. */
- if (m_last_address != m_address)
- {
- m_stmt_at_address = false;
- m_last_address = m_address;
- }
- m_stmt_at_address |= (m_flags & LEF_IS_STMT) != 0;
-}
-
-lnp_state_machine::lnp_state_machine (struct dwarf2_cu *cu, gdbarch *arch,
- line_header *lh)
- : m_cu (cu),
- m_gdbarch (arch),
- m_line_header (lh),
- /* Call `gdbarch_adjust_dwarf2_line' on the initial 0 address as
- if there was a line entry for it so that the backend has a
- chance to adjust it and also record it in case it needs it.
- This is currently used by MIPS code,
- cf. `mips_adjust_dwarf2_line'. */
- m_address ((unrelocated_addr) gdbarch_adjust_dwarf2_line (arch, 0, 0)),
- m_flags (lh->default_is_stmt ? LEF_IS_STMT : (linetable_entry_flags) 0),
- m_last_address (m_address)
-{
-}
+/* See dwarf2/read.h. */
void
-lnp_state_machine::check_line_address (struct dwarf2_cu *cu,
- const gdb_byte *line_ptr,
- unrelocated_addr unrelocated_lowpc,
- unrelocated_addr address)
-{
- /* Linkers resolve a symbolic relocation referencing a GC'd function to 0,
- -1 or -2 (-2 is used by certain lld versions, see
- https://github.com/llvm/llvm-project/commit/e618ccbf431f6730edb6d1467a127c3a52fd57f7).
- If ADDRESS is 0, ignoring the opcode will err if the text section is
- located at 0x0. In this case, additionally check that if
- ADDRESS < UNRELOCATED_LOWPC. */
-
- if ((address == (unrelocated_addr) 0 && address < unrelocated_lowpc)
- || address == (unrelocated_addr) -1
- || address == (unrelocated_addr) -2)
- {
- /* This line table is for a function which has been
- GCd by the linker. Ignore it. PR gdb/12528 */
-
- struct objfile *objfile = cu->per_objfile->objfile;
- long line_offset = line_ptr - get_debug_line_section (cu)->buffer;
-
- complaint (_(".debug_line address at offset 0x%lx is 0 [in module %s]"),
- line_offset, objfile_name (objfile));
- m_currently_recording_lines = false;
- /* Note: m_currently_recording_lines is left as false until we see
- DW_LNE_end_sequence. */
- }
-}
-
-/* Subroutine of dwarf_decode_lines to simplify it.
- Process the line number information in LH. */
-
-static void
-dwarf_decode_lines_1 (struct line_header *lh, struct dwarf2_cu *cu,
- unrelocated_addr lowpc)
-{
- const gdb_byte *line_ptr, *extended_end;
- const gdb_byte *line_end;
- unsigned int bytes_read, extended_len;
- unsigned char op_code, extended_op;
- struct objfile *objfile = cu->per_objfile->objfile;
- bfd *abfd = objfile->obfd.get ();
- struct gdbarch *gdbarch = objfile->arch ();
-
- line_ptr = lh->statement_program_start;
- line_end = lh->statement_program_end;
-
- /* Read the statement sequences until there's nothing left. */
- while (line_ptr < line_end)
- {
- /* The DWARF line number program state machine. Reset the state
- machine at the start of each sequence. */
- lnp_state_machine state_machine (cu, gdbarch, lh);
- bool end_sequence = false;
-
- /* Start a subfile for the current file of the state
- machine. */
- const file_entry *fe = state_machine.current_file ();
-
- if (fe != NULL)
- dwarf2_start_subfile (cu, *fe, *lh);
-
- /* Decode the table. */
- while (line_ptr < line_end && !end_sequence)
- {
- op_code = read_1_byte (abfd, line_ptr);
- line_ptr += 1;
-
- if (op_code >= lh->opcode_base)
- {
- /* Special opcode. */
- state_machine.handle_special_opcode (op_code);
- }
- else switch (op_code)
- {
- case DW_LNS_extended_op:
- extended_len = read_unsigned_leb128 (abfd, line_ptr,
- &bytes_read);
- line_ptr += bytes_read;
- extended_end = line_ptr + extended_len;
- extended_op = read_1_byte (abfd, line_ptr);
- line_ptr += 1;
- if (DW_LNE_lo_user <= extended_op
- && extended_op <= DW_LNE_hi_user)
- {
- /* Vendor extension, ignore. */
- line_ptr = extended_end;
- break;
- }
- switch (extended_op)
- {
- case DW_LNE_end_sequence:
- state_machine.handle_end_sequence ();
- end_sequence = true;
- break;
- case DW_LNE_set_address:
- {
- unrelocated_addr address
- = cu->header.read_address (abfd, line_ptr, &bytes_read);
- line_ptr += bytes_read;
-
- state_machine.check_line_address (cu, line_ptr, lowpc,
- address);
- state_machine.handle_set_address (address);
- }
- break;
- case DW_LNE_define_file:
- {
- const char *cur_file;
- unsigned int mod_time, length;
- dir_index dindex;
-
- cur_file = read_direct_string (abfd, line_ptr,
- &bytes_read);
- line_ptr += bytes_read;
- dindex = (dir_index)
- read_unsigned_leb128 (abfd, line_ptr, &bytes_read);
- line_ptr += bytes_read;
- mod_time =
- read_unsigned_leb128 (abfd, line_ptr, &bytes_read);
- line_ptr += bytes_read;
- length =
- read_unsigned_leb128 (abfd, line_ptr, &bytes_read);
- line_ptr += bytes_read;
- lh->add_file_name (cur_file, dindex, mod_time, length);
- }
- break;
- case DW_LNE_set_discriminator:
- {
- /* The discriminator is not interesting to the
- debugger; just ignore it. We still need to
- check its value though:
- if there are consecutive entries for the same
- (non-prologue) line we want to coalesce them.
- PR 17276. */
- unsigned int discr
- = read_unsigned_leb128 (abfd, line_ptr, &bytes_read);
- line_ptr += bytes_read;
-
- state_machine.handle_set_discriminator (discr);
- }
- break;
- default:
- complaint (_("mangled .debug_line section"));
- return;
- }
- /* Make sure that we parsed the extended op correctly. If e.g.
- we expected a different address size than the producer used,
- we may have read the wrong number of bytes. */
- if (line_ptr != extended_end)
- {
- complaint (_("mangled .debug_line section"));
- return;
- }
- break;
- case DW_LNS_copy:
- state_machine.handle_copy ();
- break;
- case DW_LNS_advance_pc:
- {
- CORE_ADDR adjust
- = read_unsigned_leb128 (abfd, line_ptr, &bytes_read);
- line_ptr += bytes_read;
-
- state_machine.handle_advance_pc (adjust);
- }
- break;
- case DW_LNS_advance_line:
- {
- int line_delta
- = read_signed_leb128 (abfd, line_ptr, &bytes_read);
- line_ptr += bytes_read;
-
- state_machine.handle_advance_line (line_delta);
- }
- break;
- case DW_LNS_set_file:
- {
- file_name_index file
- = (file_name_index) read_unsigned_leb128 (abfd, line_ptr,
- &bytes_read);
- line_ptr += bytes_read;
-
- state_machine.handle_set_file (file);
- }
- break;
- case DW_LNS_set_column:
- (void) read_unsigned_leb128 (abfd, line_ptr, &bytes_read);
- line_ptr += bytes_read;
- break;
- case DW_LNS_negate_stmt:
- state_machine.handle_negate_stmt ();
- break;
- case DW_LNS_set_basic_block:
- break;
- /* Add to the address register of the state machine the
- address increment value corresponding to special opcode
- 255. I.e., this value is scaled by the minimum
- instruction length since special opcode 255 would have
- scaled the increment. */
- case DW_LNS_const_add_pc:
- state_machine.handle_const_add_pc ();
- break;
- case DW_LNS_fixed_advance_pc:
- {
- CORE_ADDR addr_adj = read_2_bytes (abfd, line_ptr);
- line_ptr += 2;
-
- state_machine.handle_fixed_advance_pc (addr_adj);
- }
- break;
- case DW_LNS_set_prologue_end:
- state_machine.handle_set_prologue_end ();
- break;
- case DW_LNS_set_epilogue_begin:
- state_machine.handle_set_epilogue_begin ();
- break;
- default:
- {
- /* Unknown standard opcode, ignore it. */
- int i;
-
- for (i = 0; i < lh->standard_opcode_lengths[op_code]; i++)
- {
- (void) read_unsigned_leb128 (abfd, line_ptr, &bytes_read);
- line_ptr += bytes_read;
- }
- }
- }
- }
-
- if (!end_sequence)
- dwarf2_debug_line_missing_end_sequence_complaint ();
-
- /* We got a DW_LNE_end_sequence (or we ran off the end of the buffer,
- in which case we still finish recording the last line). */
- state_machine.record_line (true);
- }
-}
-
-/* Decode the Line Number Program (LNP) for the given line_header
- structure and CU. The actual information extracted and the type
- of structures created from the LNP depends on the value of PST.
-
- FND holds the CU file name and directory, if known.
- It is used for relative paths in the line table.
-
- NOTE: It is important that psymtabs have the same file name (via
- strcmp) as the corresponding symtab. Since the directory is not
- used in the name of the symtab we don't use it in the name of the
- psymtabs we create. E.g. expand_line_sal requires this when
- finding psymtabs to expand. A good testcase for this is
- mb-inline.exp.
-
- LOWPC is the lowest address in CU (or 0 if not known).
-
- Boolean DECODE_MAPPING specifies we need to fully decode .debug_line
- for its PC<->lines mapping information. Otherwise only the filename
- table is read in. */
-
-static void
-dwarf_decode_lines (struct line_header *lh, struct dwarf2_cu *cu,
- unrelocated_addr lowpc, int decode_mapping)
-{
- if (decode_mapping)
- dwarf_decode_lines_1 (lh, cu, lowpc);
-
- /* Make sure a symtab is created for every file, even files
- which contain only variables (i.e. no code with associated
- line numbers). */
- buildsym_compunit *builder = cu->get_builder ();
- struct compunit_symtab *cust = builder->get_compunit_symtab ();
-
- for (auto &fe : lh->file_names ())
- {
- dwarf2_start_subfile (cu, fe, *lh);
- subfile *sf = builder->get_current_subfile ();
-
- if (sf->symtab == nullptr)
- sf->symtab = allocate_symtab (cust, sf->name.c_str (),
- sf->name_for_id.c_str ());
-
- fe.symtab = sf->symtab;
- }
-}
-
-/* Start a subfile for DWARF. FILENAME is the name of the file and
- DIRNAME the name of the source directory which contains FILENAME
- or NULL if not known.
- This routine tries to keep line numbers from identical absolute and
- relative file names in a common subfile.
-
- Using the `list' example from the GDB testsuite, which resides in
- /srcdir and compiling it with Irix6.2 cc in /compdir using a filename
- of /srcdir/list0.c yields the following debugging information for list0.c:
-
- DW_AT_name: /srcdir/list0.c
- DW_AT_comp_dir: /compdir
- files.files[0].name: list0.h
- files.files[0].dir: /srcdir
- files.files[1].name: list0.c
- files.files[1].dir: /srcdir
-
- The line number information for list0.c has to end up in a single
- subfile, so that `break /srcdir/list0.c:1' works as expected.
- start_subfile will ensure that this happens provided that we pass the
- concatenation of files.files[1].dir and files.files[1].name as the
- subfile's name. */
-
-static void
dwarf2_start_subfile (dwarf2_cu *cu, const file_entry &fe,
const line_header &lh)
{
@@ -16659,7 +15934,7 @@ var_decode_location (struct attribute *attr, struct symbol *sym,
variable has been optimized away. */
if (attr->form_is_block () && attr->as_block ()->size == 0)
{
- sym->set_aclass_index (LOC_OPTIMIZED_OUT);
+ sym->set_loc_class_index (LOC_OPTIMIZED_OUT);
return;
}
@@ -16689,7 +15964,7 @@ var_decode_location (struct attribute *attr, struct symbol *sym,
else
tem = read_addr_index_from_leb128 (cu, block->data + 1, &dummy);
sym->set_value_address ((CORE_ADDR) tem);
- sym->set_aclass_index (LOC_STATIC);
+ sym->set_loc_class_index (LOC_STATIC);
fixup_symbol_section (sym, objfile);
sym->set_value_address
(sym->value_address ()
@@ -16726,20 +16001,20 @@ add_ada_export_symbol (struct symbol *orig, const char *new_name,
= new (&cu->per_objfile->objfile->objfile_obstack) symbol (*orig);
copy->set_linkage_name (new_name);
SYMBOL_LOCATION_BATON (copy) = (void *) orig_name;
- copy->set_aclass_index (copy->aclass () == LOC_BLOCK
+ copy->set_loc_class_index (copy->loc_class () == LOC_BLOCK
? ada_block_index
: ada_imported_index);
add_symbol_to_list (copy, list_to_add);
}
-/* A helper function that decides if a given symbol is an Ada Pragma
- Import or Pragma Export. */
+/* See read.h. */
-static bool
+bool
is_ada_import_or_export (dwarf2_cu *cu, const char *name,
const char *linkagename)
{
return (cu->lang () == language_ada
+ && name != nullptr
&& linkagename != nullptr
&& !streq (name, linkagename)
/* The following exclusions are necessary because symbols
@@ -16826,7 +16101,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
/* Default assumptions.
Use the passed type or decode it from the die. */
sym->set_domain (UNDEF_DOMAIN);
- sym->set_aclass_index (LOC_OPTIMIZED_OUT);
+ sym->set_loc_class_index (LOC_OPTIMIZED_OUT);
if (type != NULL)
sym->set_type (type);
else
@@ -16876,10 +16151,10 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
CORE_ADDR addr = per_objfile->relocate (attr->as_address ());
sym->set_section_index (SECT_OFF_TEXT (objfile));
sym->set_value_address (addr);
- sym->set_aclass_index (LOC_LABEL);
+ sym->set_loc_class_index (LOC_LABEL);
}
else
- sym->set_aclass_index (LOC_OPTIMIZED_OUT);
+ sym->set_loc_class_index (LOC_OPTIMIZED_OUT);
sym->set_type (builtin_type (objfile)->builtin_core_addr);
sym->set_domain (LABEL_DOMAIN);
list_to_add = cu->list_in_scope;
@@ -16888,7 +16163,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
/* SYMBOL_BLOCK_VALUE (sym) will be filled in later by
finish_block. */
sym->set_domain (FUNCTION_DOMAIN);
- sym->set_aclass_index (LOC_BLOCK);
+ sym->set_loc_class_index (LOC_BLOCK);
/* DW_TAG_entry_point provides an additional entry_point to an
existing sub_program. Therefore, we inherit the "external"
attribute from the sub_program to which the entry_point
@@ -16903,7 +16178,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
/* SYMBOL_BLOCK_VALUE (sym) will be filled in later by
finish_block. */
sym->set_domain (FUNCTION_DOMAIN);
- sym->set_aclass_index (LOC_BLOCK);
+ sym->set_loc_class_index (LOC_BLOCK);
attr2 = dwarf2_attr (die, DW_AT_external, cu);
if ((attr2 != nullptr && attr2->as_boolean ())
|| cu->lang () == language_ada
@@ -16932,7 +16207,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
/* For Import, create a symbol using the source
name, and have it refer to the linkage name. */
SYMBOL_LOCATION_BATON (sym) = (void *) linkagename;
- sym->set_aclass_index (ada_block_index);
+ sym->set_loc_class_index (ada_block_index);
}
else
{
@@ -16948,7 +16223,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
/* SYMBOL_BLOCK_VALUE (sym) will be filled in later by
finish_block. */
sym->set_domain (FUNCTION_DOMAIN);
- sym->set_aclass_index (LOC_BLOCK);
+ sym->set_loc_class_index (LOC_BLOCK);
sym->set_is_inlined (1);
list_to_add = cu->list_in_scope;
break;
@@ -17000,7 +16275,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
&& die->parent->tag == DW_TAG_common_block)
attr2 = NULL;
- if (sym->aclass () == LOC_STATIC
+ if (sym->loc_class () == LOC_STATIC
&& sym->value_address () == 0
&& !per_objfile->per_bfd->has_section_at_zero)
{
@@ -17011,7 +16286,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
}
else if (attr2 != nullptr && attr2->as_boolean ())
{
- if (sym->aclass () == LOC_STATIC
+ if (sym->loc_class () == LOC_STATIC
&& (objfile->flags & OBJF_MAINLINE) == 0
&& per_objfile->per_bfd->can_copy)
{
@@ -17080,7 +16355,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
? cu->get_builder ()->get_global_symbols ()
: cu->list_in_scope);
SYMBOL_LOCATION_BATON (sym) = (void *) linkagename;
- sym->set_aclass_index (ada_imported_index);
+ sym->set_loc_class_index (ada_imported_index);
}
else if (attr2 != nullptr && attr2->as_boolean ()
&& dwarf2_attr (die, DW_AT_type, cu) != NULL)
@@ -17093,12 +16368,12 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
? cu->get_builder ()->get_global_symbols ()
: cu->list_in_scope);
- sym->set_aclass_index (LOC_UNRESOLVED);
+ sym->set_loc_class_index (LOC_UNRESOLVED);
}
else if (!die_is_declaration (die, cu))
{
/* Use the default LOC_OPTIMIZED_OUT class. */
- gdb_assert (sym->aclass () == LOC_OPTIMIZED_OUT);
+ gdb_assert (sym->loc_class () == LOC_OPTIMIZED_OUT);
if (!suppress_add)
list_to_add = cu->list_in_scope;
}
@@ -17154,13 +16429,13 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
there's a special hack for C++ in the matching code,
so we don't need to enter a separate typedef for the
tag. */
- sym->set_aclass_index (LOC_TYPEDEF);
+ sym->set_loc_class_index (LOC_TYPEDEF);
sym->set_domain (STRUCT_DOMAIN);
}
else
{
/* Other languages don't have a tag namespace. */
- sym->set_aclass_index (LOC_TYPEDEF);
+ sym->set_loc_class_index (LOC_TYPEDEF);
sym->set_domain (TYPE_DOMAIN);
}
@@ -17205,7 +16480,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
case DW_TAG_base_type:
case DW_TAG_subrange_type:
case DW_TAG_generic_subrange:
- sym->set_aclass_index (LOC_TYPEDEF);
+ sym->set_loc_class_index (LOC_TYPEDEF);
sym->set_domain (TYPE_DOMAIN);
list_to_add = cu->list_in_scope;
break;
@@ -17229,21 +16504,21 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
case DW_TAG_imported_declaration:
case DW_TAG_namespace:
sym->set_domain (TYPE_DOMAIN);
- sym->set_aclass_index (LOC_TYPEDEF);
+ sym->set_loc_class_index (LOC_TYPEDEF);
list_to_add = cu->get_builder ()->get_global_symbols ();
break;
case DW_TAG_module:
- sym->set_aclass_index (LOC_TYPEDEF);
+ sym->set_loc_class_index (LOC_TYPEDEF);
sym->set_domain (MODULE_DOMAIN);
list_to_add = cu->get_builder ()->get_global_symbols ();
break;
case DW_TAG_common_block:
- sym->set_aclass_index (LOC_COMMON_BLOCK);
+ sym->set_loc_class_index (LOC_COMMON_BLOCK);
sym->set_domain (COMMON_BLOCK_DOMAIN);
list_to_add = cu->list_in_scope;
break;
case DW_TAG_namelist:
- sym->set_aclass_index (LOC_STATIC);
+ sym->set_loc_class_index (LOC_STATIC);
sym->set_domain (VAR_DOMAIN);
list_to_add = cu->list_in_scope;
break;
@@ -17396,17 +16671,17 @@ dwarf2_const_value (const struct attribute *attr, struct symbol *sym,
if (baton != NULL)
{
SYMBOL_LOCATION_BATON (sym) = baton;
- sym->set_aclass_index (dwarf2_locexpr_index);
+ sym->set_loc_class_index (dwarf2_locexpr_index);
}
else if (bytes != NULL)
{
sym->set_value_bytes (bytes);
- sym->set_aclass_index (LOC_CONST_BYTES);
+ sym->set_loc_class_index (LOC_CONST_BYTES);
}
else
{
sym->set_value_longest (value);
- sym->set_aclass_index (LOC_CONST);
+ sym->set_loc_class_index (LOC_CONST);
}
}
@@ -17773,9 +17048,11 @@ anonymous_struct_prefix (struct die_info *die, struct dwarf2_cu *cu)
return NULL;
attr = dw2_linkage_name_attr (die, cu);
+ if (attr == nullptr)
+ return nullptr;
const char *attr_name = attr->as_string ();
- if (attr == NULL || attr_name == NULL)
- return NULL;
+ if (attr_name == nullptr)
+ return nullptr;
/* dwarf2_name had to be already called. */
gdb_assert (attr->canonical_string_p ());
@@ -18977,7 +18254,7 @@ decode_locdesc (struct dwarf_block *blk, struct dwarf2_cu *cu,
case DW_OP_deref:
/* If we're not the last op, then we definitely can't encode
- this using GDB's address_class enum. This is valid for partial
+ this using GDB's location_class enum. This is valid for partial
global symbols, although the variable's address will be bogus
in the psymtab. */
if (i < size)
@@ -19219,7 +18496,7 @@ dwarf2_symbol_mark_computed (const struct attribute *attr, struct symbol *sym,
complaint (_("Location list used without "
"specifying the CU base address."));
- sym->set_aclass_index ((is_block
+ sym->set_loc_class_index ((is_block
? dwarf2_loclist_block_index
: dwarf2_loclist_index));
SYMBOL_LOCATION_BATON (sym) = baton;
@@ -19252,7 +18529,7 @@ dwarf2_symbol_mark_computed (const struct attribute *attr, struct symbol *sym,
baton->size = 0;
}
- sym->set_aclass_index ((is_block
+ sym->set_loc_class_index ((is_block
? dwarf2_locexpr_block_index
: dwarf2_locexpr_index));
SYMBOL_LOCATION_BATON (sym) = baton;
diff --git a/gdb/dwarf2/read.h b/gdb/dwarf2/read.h
index 4e3f8d7..2f9ad05 100644
--- a/gdb/dwarf2/read.h
+++ b/gdb/dwarf2/read.h
@@ -54,6 +54,7 @@ struct dwarf2_cu;
struct dwarf2_debug_sections;
struct dwarf2_per_bfd;
struct dwarf2_per_cu;
+struct file_entry;
struct mapped_index;
struct mapped_debug_names;
struct signatured_type;
@@ -127,7 +128,6 @@ struct dwarf2_per_cu
lto_artificial (false),
queued (false),
m_header_read_in (false),
- mark (false),
files_read (false),
scanned (false),
section (section),
@@ -195,10 +195,6 @@ public:
it private at the moment. */
mutable packed<bool, 1> m_header_read_in;
- /* A temporary mark bit used when iterating over all CUs in
- expand_symtabs_matching. */
- packed<unsigned int, 1> mark;
-
/* True if we've tried to read the file table. There will be no
point in trying to read it again next time. */
packed<bool, 1> files_read;
@@ -673,6 +669,36 @@ public:
std::string captured_debug_dir;
};
+/* Scoped object to remove all units from PER_BFD and clear other associated
+ fields in case of failure. */
+
+struct scoped_remove_all_units
+{
+ explicit scoped_remove_all_units (dwarf2_per_bfd &per_bfd)
+ : m_per_bfd (&per_bfd)
+ {}
+
+ DISABLE_COPY_AND_ASSIGN (scoped_remove_all_units);
+
+ ~scoped_remove_all_units ()
+ {
+ if (m_per_bfd == nullptr)
+ return;
+
+ m_per_bfd->all_units.clear ();
+ m_per_bfd->num_comp_units = 0;
+ m_per_bfd->num_type_units = 0;
+ }
+
+ /* Disable this object. Call this to keep the units of M_PER_BFD on the
+ success path. */
+ void disable () { m_per_bfd = nullptr; }
+
+private:
+ /* This is nullptr if the object is disabled. */
+ dwarf2_per_bfd *m_per_bfd;
+};
+
/* An iterator for all_units that is based on index. This
approach makes it possible to iterate over all_units safely,
when some caller in the loop may add new units. */
@@ -1192,25 +1218,44 @@ struct dwarf2_base_index_functions : public quick_symbol_functions
bool need_fullname) override;
};
-/* If FILE_MATCHER is NULL or if PER_CU has
- dwarf2_per_cu_quick_data::MARK set (see
- dw_expand_symtabs_matching_file_matcher), expand the CU and call
- EXPANSION_NOTIFY on it. */
+/* This is used to track whether a CU has already been visited during
+ symbol expansion. It is an auto-resizing bool vector. */
+class auto_bool_vector
+{
+public:
-extern bool dw2_expand_symtabs_matching_one
- (dwarf2_per_cu *per_cu,
- dwarf2_per_objfile *per_objfile,
- expand_symtabs_file_matcher file_matcher,
- expand_symtabs_expansion_listener expansion_notify,
- expand_symtabs_lang_matcher lang_matcher);
+ auto_bool_vector () = default;
+
+ /* Return true if element I is set. */
+ bool is_set (size_t i) const
+ {
+ if (i < m_vec.size ())
+ return m_vec[i];
+ return false;
+ }
+
+ /* Set a value in this vector, growing it automatically. */
+ void set (size_t i, bool value)
+ {
+ if (m_vec.size () < i + 1)
+ m_vec.resize (i + 1);
+ m_vec[i] = value;
+ }
+
+private:
+ std::vector<bool> m_vec;
+};
-/* If FILE_MATCHER is non-NULL, set all the
- dwarf2_per_cu_quick_data::MARK of the current DWARF2_PER_OBJFILE
- that match FILE_MATCHER. */
+/* If FILE_MATCHER is NULL and if CUS_TO_SKIP does not include the
+ CU's index, expand the CU and call LISTENER on it. */
-extern void dw_expand_symtabs_matching_file_matcher
- (dwarf2_per_objfile *per_objfile,
- expand_symtabs_file_matcher file_matcher);
+extern bool dw2_search_one
+ (dwarf2_per_cu *per_cu,
+ dwarf2_per_objfile *per_objfile,
+ auto_bool_vector &cus_to_skip,
+ search_symtabs_file_matcher file_matcher,
+ search_symtabs_expansion_listener listener,
+ search_symtabs_lang_matcher lang_matcher);
/* Return pointer to string at .debug_str offset STR_OFFSET. */
@@ -1321,4 +1366,40 @@ extern file_and_directory &find_file_and_directory (die_info *die,
extern const dwarf2_section_info &get_section_for_ref
(const attribute &attr, dwarf2_cu *cu);
+/* A convenience function to find the proper .debug_line section for a CU. */
+
+extern struct dwarf2_section_info *get_debug_line_section
+ (struct dwarf2_cu *cu);
+
+/* Start a subfile for DWARF. FILENAME is the name of the file and
+ DIRNAME the name of the source directory which contains FILENAME
+ or NULL if not known.
+ This routine tries to keep line numbers from identical absolute and
+ relative file names in a common subfile.
+
+ Using the `list' example from the GDB testsuite, which resides in
+ /srcdir and compiling it with Irix6.2 cc in /compdir using a filename
+ of /srcdir/list0.c yields the following debugging information for list0.c:
+
+ DW_AT_name: /srcdir/list0.c
+ DW_AT_comp_dir: /compdir
+ files.files[0].name: list0.h
+ files.files[0].dir: /srcdir
+ files.files[1].name: list0.c
+ files.files[1].dir: /srcdir
+
+ The line number information for list0.c has to end up in a single
+ subfile, so that `break /srcdir/list0.c:1' works as expected.
+ start_subfile will ensure that this happens provided that we pass the
+ concatenation of files.files[1].dir and files.files[1].name as the
+ subfile's name. */
+extern void dwarf2_start_subfile (dwarf2_cu *cu, const file_entry &fe,
+ const line_header &lh);
+
+/* A helper function that decides if a given symbol is an Ada Pragma
+ Import or Pragma Export. */
+
+extern bool is_ada_import_or_export (dwarf2_cu *cu, const char *name,
+ const char *linkagename);
+
#endif /* GDB_DWARF2_READ_H */
diff --git a/gdb/dwarf2/stringify.c b/gdb/dwarf2/stringify.c
index c9625e8..bdb5125 100644
--- a/gdb/dwarf2/stringify.c
+++ b/gdb/dwarf2/stringify.c
@@ -25,6 +25,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "dwarf2.h"
+#include "dwarf2/read-gdb-index.h"
#include "dwarf2/stringify.h"
/* A convenience function that returns an "unknown" DWARF name,
@@ -44,6 +45,11 @@ dwarf_unknown (const char *str, unsigned v)
const char *
dwarf_tag_name (unsigned tag)
{
+ if (tag == DW_TAG_GDB_INDEX_OTHER)
+ return "DW_TAG_GDB_INDEX_OTHER";
+ else if (tag == DW_TAG_GDB_INDEX_TYPE)
+ return "DW_TAG_GDB_INDEX_TYPE";
+
const char *name = get_DW_TAG_name (tag);
if (name == NULL)
diff --git a/gdb/dwarf2/tag.h b/gdb/dwarf2/tag.h
index ed730c0..9b5c775 100644
--- a/gdb/dwarf2/tag.h
+++ b/gdb/dwarf2/tag.h
@@ -22,6 +22,7 @@
#include "dwarf2.h"
#include "symtab.h"
+#include "read-gdb-index.h"
/* Return true if TAG represents a type, false otherwise. */
@@ -102,6 +103,10 @@ tag_matches_domain (dwarf_tag tag, domain_search_flags search, language lang)
}
break;
+ case DW_TAG_imported_declaration:
+ /* DW_TAG_imported_declaration isn't necessarily a type, but the
+ scanner doesn't track the referent, and the full reader
+ also currently puts it in TYPE_DOMAIN. */
case DW_TAG_padding:
case DW_TAG_array_type:
case DW_TAG_pointer_type:
@@ -140,6 +145,13 @@ tag_matches_domain (dwarf_tag tag, domain_search_flags search, language lang)
else
flags = SEARCH_MODULE_DOMAIN;
break;
+
+ case DW_TAG_GDB_INDEX_OTHER:
+ flags = SEARCH_MODULE_DOMAIN | SEARCH_TYPE_DOMAIN;
+ break;
+ case DW_TAG_GDB_INDEX_TYPE:
+ flags = SEARCH_STRUCT_DOMAIN | SEARCH_TYPE_DOMAIN;
+ break;
}
return (flags & search) != 0;
diff --git a/gdb/elfread.c b/gdb/elfread.c
index ae74978..c8e976a 100644
--- a/gdb/elfread.c
+++ b/gdb/elfread.c
@@ -776,9 +776,8 @@ elf_gnu_ifunc_resolve_by_cache (const char *name, CORE_ADDR *addr_p)
To search other namespaces, we would need to provide context, e.g. in
form of an objfile in that namespace. */
- gdbarch_iterate_over_objfiles_in_search_order
- (current_inferior ()->arch (),
- [name, &addr_p, &found] (struct objfile *objfile)
+ current_program_space->iterate_over_objfiles_in_search_order
+ ([name, &addr_p, &found] (struct objfile *objfile)
{
htab_t htab;
elf_gnu_ifunc_cache *entry_p;
@@ -830,9 +829,8 @@ elf_gnu_ifunc_resolve_by_got (const char *name, CORE_ADDR *addr_p)
To search other namespaces, we would need to provide context, e.g. in
form of an objfile in that namespace. */
- gdbarch_iterate_over_objfiles_in_search_order
- (current_inferior ()->arch (),
- [name, name_got_plt, &addr_p, &found] (struct objfile *objfile)
+ current_program_space->iterate_over_objfiles_in_search_order
+ ([name, name_got_plt, &addr_p, &found] (struct objfile *objfile)
{
bfd *obfd = objfile->obfd.get ();
struct gdbarch *gdbarch = objfile->arch ();
diff --git a/gdb/eval.c b/gdb/eval.c
index 539b700..07fa0af 100644
--- a/gdb/eval.c
+++ b/gdb/eval.c
@@ -38,7 +38,6 @@
#include "gdbsupport/gdb_obstack.h"
#include "objfiles.h"
#include "typeprint.h"
-#include <ctype.h>
#include "expop.h"
#include "c-exp.h"
#include "inferior.h"
@@ -492,7 +491,7 @@ fake_method::fake_method (type_instance_flags flags,
fake_method::~fake_method ()
{
- xfree (m_type.fields ());
+ xfree (m_type.fields ().data ());
}
namespace expr
@@ -1181,8 +1180,8 @@ ternop_slice_operation::evaluate (struct type *expect_type,
struct value *upper
= std::get<2> (m_storage)->evaluate (nullptr, exp, noside);
- int lowbound = value_as_long (low);
- int upperbound = value_as_long (upper);
+ LONGEST lowbound = value_as_long (low);
+ LONGEST upperbound = value_as_long (upper);
return value_slice (array, lowbound, upperbound - lowbound + 1);
}
@@ -2285,14 +2284,18 @@ logical_and_operation::evaluate (struct type *expect_type,
}
else
{
+ type *type = language_bool_type (exp->language_defn,
+ exp->gdbarch);
+ if (noside == EVAL_AVOID_SIDE_EFFECTS)
+ return value::zero (type, not_lval);
+
bool tem = value_logical_not (arg1);
if (!tem)
{
arg2 = std::get<1> (m_storage)->evaluate (nullptr, exp, noside);
tem = value_logical_not (arg2);
}
- struct type *type = language_bool_type (exp->language_defn,
- exp->gdbarch);
+
return value_from_longest (type, !tem);
}
}
@@ -2314,6 +2317,11 @@ logical_or_operation::evaluate (struct type *expect_type,
}
else
{
+ type *type = language_bool_type (exp->language_defn,
+ exp->gdbarch);
+ if (noside == EVAL_AVOID_SIDE_EFFECTS)
+ return value::zero (type, not_lval);
+
bool tem = value_logical_not (arg1);
if (tem)
{
@@ -2321,8 +2329,6 @@ logical_or_operation::evaluate (struct type *expect_type,
tem = value_logical_not (arg2);
}
- struct type *type = language_bool_type (exp->language_defn,
- exp->gdbarch);
return value_from_longest (type, !tem);
}
}
@@ -2678,11 +2684,11 @@ var_value_operation::evaluate_for_address (struct expression *exp,
if (noside == EVAL_AVOID_SIDE_EFFECTS)
{
struct type *type = lookup_pointer_type (var->type ());
- enum address_class sym_class = var->aclass ();
+ location_class loc_class = var->loc_class ();
- if (sym_class == LOC_CONST
- || sym_class == LOC_CONST_BYTES
- || sym_class == LOC_REGISTER)
+ if (loc_class == LOC_CONST
+ || loc_class == LOC_CONST_BYTES
+ || loc_class == LOC_REGISTER)
error (_("Attempt to take address of register or constant."));
return value::zero (type, not_lval);
diff --git a/gdb/event-top.c b/gdb/event-top.c
index f96982a..3138e8c 100644
--- a/gdb/event-top.c
+++ b/gdb/event-top.c
@@ -1180,6 +1180,9 @@ quit (void)
throw_forced_quit ("SIGTERM");
}
+ /* Pressing ^C cancels i-search. Tell readline that a ^C happened. */
+ rl_callback_sigcleanup ();
+
#ifdef __MSDOS__
/* No steenking SIGINT will ever be coming our way when the
program is resumed. Don't lie. */
diff --git a/gdb/exec.c b/gdb/exec.c
index c2a1f8a..a904f5c 100644
--- a/gdb/exec.c
+++ b/gdb/exec.c
@@ -42,7 +42,6 @@
#include "readline/tilde.h"
#include "gdbcore.h"
-#include <ctype.h>
#include <sys/stat.h>
#include "solib.h"
#include <algorithm>
@@ -653,13 +652,13 @@ program_space::add_target_sections (struct objfile *objfile)
gdb_assert (objfile != nullptr);
/* Compute the number of sections to add. */
- for (obj_section *osect : objfile->sections ())
+ for (obj_section &osect : objfile->sections ())
{
- if (bfd_section_size (osect->the_bfd_section) == 0)
+ if (bfd_section_size (osect.the_bfd_section) == 0)
continue;
- m_target_sections.emplace_back (osect->addr (), osect->endaddr (),
- osect->the_bfd_section, objfile);
+ m_target_sections.emplace_back (osect.addr (), osect.endaddr (),
+ osect.the_bfd_section, objfile);
}
}
@@ -1015,7 +1014,7 @@ set_section_command (const char *args, int from_tty)
error (_("Must specify section name and its virtual address"));
/* Parse out section name. */
- for (secname = args; !isspace (*args); args++);
+ for (secname = args; !c_isspace (*args); args++);
unsigned seclen = args - secname;
/* Parse out new virtual address. */
diff --git a/gdb/expop.h b/gdb/expop.h
index a3541d4..e755df5 100644
--- a/gdb/expop.h
+++ b/gdb/expop.h
@@ -308,6 +308,25 @@ dump_for_expression (struct ui_file *stream, int depth,
op->dump (stream, depth);
}
+/* If evaluating with noside == EVAL_AVOID_SIDE_EFFECTS, we are essentially
+ interested in the type of ARG. However, if ARG is of reference type,
+ this would give us a memory value that would cause a failure if GDB
+ attempts to access the contents. Convert to the target type to avoid
+ such problems. */
+
+static value *
+convert_reference_to_target_type (value *arg, enum noside noside)
+{
+ struct type *type = check_typedef (arg->type ());
+ if (noside == EVAL_AVOID_SIDE_EFFECTS && TYPE_IS_REFERENCE (type))
+ {
+ struct type *target_type = check_typedef (type->target_type ());
+ return value::zero (target_type, not_lval);
+ }
+
+ return arg;
+}
+
extern void dump_for_expression (struct ui_file *stream, int depth,
enum exp_opcode op);
extern void dump_for_expression (struct ui_file *stream, int depth,
@@ -476,11 +495,11 @@ check_constant (const gdb_mpz &cst)
static inline bool
check_constant (struct symbol *sym)
{
- enum address_class sc = sym->aclass ();
- return (sc == LOC_BLOCK
- || sc == LOC_CONST
- || sc == LOC_CONST_BYTES
- || sc == LOC_LABEL);
+ location_class lc = sym->loc_class ();
+ return (lc == LOC_BLOCK
+ || lc == LOC_CONST
+ || lc == LOC_CONST_BYTES
+ || lc == LOC_LABEL);
}
static inline bool
@@ -953,7 +972,7 @@ public:
struct value *val
= std::get<0> (m_storage)->evaluate (nullptr, exp, noside);
- if (value_logical_not (val))
+ if (noside != EVAL_AVOID_SIDE_EFFECTS && value_logical_not (val))
return std::get<2> (m_storage)->evaluate (nullptr, exp, noside);
return std::get<1> (m_storage)->evaluate (nullptr, exp, noside);
}
@@ -1187,6 +1206,10 @@ public:
= std::get<0> (m_storage)->evaluate_with_coercion (exp, noside);
value *rhs
= std::get<1> (m_storage)->evaluate_with_coercion (exp, noside);
+
+ lhs = convert_reference_to_target_type (lhs, noside);
+ rhs = convert_reference_to_target_type (rhs, noside);
+
return eval_op_add (expect_type, exp, noside, lhs, rhs);
}
@@ -1223,6 +1246,10 @@ public:
= std::get<0> (m_storage)->evaluate_with_coercion (exp, noside);
value *rhs
= std::get<1> (m_storage)->evaluate_with_coercion (exp, noside);
+
+ lhs = convert_reference_to_target_type (lhs, noside);
+ rhs = convert_reference_to_target_type (rhs, noside);
+
return eval_op_sub (expect_type, exp, noside, lhs, rhs);
}
@@ -1265,6 +1292,10 @@ public:
= std::get<0> (m_storage)->evaluate (nullptr, exp, noside);
value *rhs
= std::get<1> (m_storage)->evaluate (nullptr, exp, noside);
+
+ lhs = convert_reference_to_target_type (lhs, noside);
+ rhs = convert_reference_to_target_type (rhs, noside);
+
return FUNC (expect_type, exp, noside, OP, lhs, rhs);
}
@@ -1340,6 +1371,10 @@ public:
value *rhs
= std::get<1> (this->m_storage)->evaluate (lhs->type (), exp,
noside);
+
+ lhs = convert_reference_to_target_type (lhs, noside);
+ rhs = convert_reference_to_target_type (rhs, noside);
+
return FUNC (expect_type, exp, noside, OP, lhs, rhs);
}
};
@@ -1434,6 +1469,7 @@ public:
enum noside noside) override
{
value *val = std::get<0> (m_storage)->evaluate (nullptr, exp, noside);
+ val = convert_reference_to_target_type (val, noside);
return FUNC (expect_type, exp, noside, OP, val);
}
diff --git a/gdb/expprint.c b/gdb/expprint.c
index c87be74..a32b7ac 100644
--- a/gdb/expprint.c
+++ b/gdb/expprint.c
@@ -33,7 +33,6 @@
#include "expop.h"
#include "ada-exp.h"
-#include <ctype.h>
/* Meant to be used in debug sessions, so don't export it in a header file. */
extern void ATTRIBUTE_USED debug_exp (struct expression *exp);
diff --git a/gdb/extension.c b/gdb/extension.c
index d34dbcd..1e967c5 100644
--- a/gdb/extension.c
+++ b/gdb/extension.c
@@ -34,6 +34,8 @@
#include <array>
#include "inferior.h"
#include "gdbsupport/scoped_signal_handler.h"
+#include "gdbsupport/scoped_ignore_signal.h"
+#include "run-on-main-thread.h"
static script_sourcer_func source_gdb_script;
static objfile_script_sourcer_func source_gdb_objfile_script;
@@ -638,7 +640,7 @@ breakpoint_ext_lang_cond_says_stop (struct breakpoint *b)
This requires cooperation with the extension languages so the support
is defined here. */
-#if CXX_STD_THREAD
+#if CXX_STD_THREAD && defined __MINGW32__
#include <mutex>
@@ -648,10 +650,19 @@ breakpoint_ext_lang_cond_says_stop (struct breakpoint *b)
available, DAP will not start.
This lock is held for accesses to quit_flag, active_ext_lang, and
- cooperative_sigint_handling_disabled. */
+ cooperative_sigint_handling_disabled.
+
+ This lock is only required for targets that don't support kill(), and,
+ it is assumed, handle SIGINT not as a signal, but as a new thread. For
+ these targets this mutex prevents multiple threads adjusting the above
+ state at the same time.
+
+ For targets that support kill() gdb.interrupt is implemented by just
+ sending SIGINT to the process, which is then handled in the "normal"
+ way. */
static std::recursive_mutex ext_lang_mutex;
-#endif /* CXX_STD_THREAD */
+#endif /* CXX_STD_THREAD && defined (__MINGW32__)*/
/* This flag tracks quit requests when we haven't called out to an
extension language. it also holds quit requests when we transition to
@@ -700,6 +711,44 @@ void (*hook_set_active_ext_lang) () = nullptr;
}
#endif
+namespace gdb
+{
+/* Wrapper that acquires the global EXT_LANG_MUTEX, but only for hosts
+ that might call quit related functions from a separate thread.
+ Specifically, this is hosts that don't support Unix like signals
+ (currently only Mingw).
+
+ For hosts with signal support, we don't try to use a mutex as a signal
+ might interrupt the lock acquisition, in which case deadlock will
+ occur. However, for these hosts, all the quit related functions are
+ called on the main thread (there's an assert for this), so the lack of
+ locking shouldn't be an issue.
+
+ For Mingw, without signals, the implementation of the Python
+ gdb.interrupt function can call set_quit_flag() from a second thread,
+ and additionally, the emulation of SIGINT involves the creation of a
+ temporary thread which calls the sigint handler. So for Mingw, we do
+ need the mutex, but that's OK, as no signal can interrupt the lock
+ acquisition. */
+struct ext_lang_guard
+{
+ ext_lang_guard ()
+ {
+#if CXX_STD_THREAD && !defined __MINGW32__
+ gdb_assert (is_main_thread ());
+#endif /* CXX_STD_THREAD && ! defined __MINGW32__ */
+ }
+
+ ~ext_lang_guard () { /* Nothing. */ }
+
+private:
+#if CXX_STD_THREAD && defined __MINGW32__
+ std::lock_guard<typeof (ext_lang_mutex)> m_guard { ext_lang_mutex };
+#endif
+};
+
+}
+
/* True if cooperative SIGINT handling is disabled. This is needed so
that calls to set_active_ext_lang do not re-enable cooperative
handling, which if enabled would make set_quit_flag store the
@@ -708,9 +757,7 @@ static bool cooperative_sigint_handling_disabled = false;
scoped_disable_cooperative_sigint_handling::scoped_disable_cooperative_sigint_handling ()
{
-#if CXX_STD_THREAD
- std::lock_guard guard (ext_lang_mutex);
-#endif /* CXX_STD_THREAD */
+ gdb::ext_lang_guard guard;
/* Force the active extension language to the GDB scripting
language. This ensures that a previously saved SIGINT is moved
@@ -729,9 +776,7 @@ scoped_disable_cooperative_sigint_handling::scoped_disable_cooperative_sigint_ha
scoped_disable_cooperative_sigint_handling::~scoped_disable_cooperative_sigint_handling ()
{
-#if CXX_STD_THREAD
- std::lock_guard guard (ext_lang_mutex);
-#endif /* CXX_STD_THREAD */
+ gdb::ext_lang_guard guard;
cooperative_sigint_handling_disabled = m_prev_cooperative_sigint_handling_disabled;
restore_active_ext_lang (m_prev_active_ext_lang_state);
@@ -771,9 +816,7 @@ scoped_disable_cooperative_sigint_handling::~scoped_disable_cooperative_sigint_h
struct active_ext_lang_state *
set_active_ext_lang (const struct extension_language_defn *now_active)
{
-#if CXX_STD_THREAD
- std::lock_guard guard (ext_lang_mutex);
-#endif /* CXX_STD_THREAD */
+ gdb::ext_lang_guard guard;
#if GDB_SELF_TEST
if (selftests::hook_set_active_ext_lang)
@@ -827,9 +870,7 @@ set_active_ext_lang (const struct extension_language_defn *now_active)
void
restore_active_ext_lang (struct active_ext_lang_state *previous)
{
-#if CXX_STD_THREAD
- std::lock_guard guard (ext_lang_mutex);
-#endif /* CXX_STD_THREAD */
+ gdb::ext_lang_guard guard;
if (cooperative_sigint_handling_disabled)
{
@@ -861,9 +902,7 @@ restore_active_ext_lang (struct active_ext_lang_state *previous)
void
set_quit_flag ()
{
-#if CXX_STD_THREAD
- std::lock_guard guard (ext_lang_mutex);
-#endif /* CXX_STD_THREAD */
+ gdb::ext_lang_guard guard;
if (active_ext_lang->ops != NULL
&& active_ext_lang->ops->set_quit_flag != NULL)
@@ -886,9 +925,7 @@ set_quit_flag ()
bool
check_quit_flag ()
{
-#if CXX_STD_THREAD
- std::lock_guard guard (ext_lang_mutex);
-#endif /* CXX_STD_THREAD */
+ gdb::ext_lang_guard guard;
bool result = false;
diff --git a/gdb/f-exp.y b/gdb/f-exp.y
index 44ea11b..a8ee9a3 100644
--- a/gdb/f-exp.y
+++ b/gdb/f-exp.y
@@ -48,7 +48,6 @@
#include "language.h"
#include "f-lang.h"
#include "block.h"
-#include <ctype.h>
#include <algorithm>
#include "type-stack.h"
#include "f-exp.h"
@@ -1061,8 +1060,8 @@ parse_number (struct parser_state *par_state,
while (len-- > 0)
{
c = *p++;
- if (isupper (c))
- c = tolower (c);
+ if (c_isupper (c))
+ c = c_tolower (c);
if (len == 0 && c == 'l')
long_p = 1;
else if (len == 0 && c == 'u')
@@ -1160,8 +1159,7 @@ push_kind_type (LONGEST val, struct type *type)
ival = static_cast <int> (val);
}
- type_stack->push (ival);
- type_stack->push (tp_kind);
+ type_stack->push (tp_kind, ival);
}
/* Helper function for convert_to_kind_type. */
@@ -1663,7 +1661,7 @@ yylex (void)
{
result = lookup_symbol (tmp.c_str (), pstate->expression_context_block,
domain, NULL);
- if (result.symbol && result.symbol->aclass () == LOC_TYPEDEF)
+ if (result.symbol && result.symbol->loc_class () == LOC_TYPEDEF)
{
yylval.tsym.type = result.symbol->type ();
return TYPENAME;
diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c
index 7d0cdc0..04eca74 100644
--- a/gdb/f-typeprint.c
+++ b/gdb/f-typeprint.c
@@ -299,8 +299,6 @@ void
f_language::f_type_print_base (struct type *type, struct ui_file *stream,
int show, int level) const
{
- int index;
-
QUIT;
stream->wrap_here (4);
@@ -414,28 +412,30 @@ f_language::f_type_print_base (struct type *type, struct ui_file *stream,
if (show > 0)
f_type_print_derivation_info (type, stream);
- gdb_puts (" ", stream);
-
- gdb_puts (type->name (), stream);
+ if (type->name () != nullptr)
+ {
+ gdb_puts (" ", stream);
+ gdb_puts (type->name (), stream);
+ }
/* According to the definition,
we only print structure elements in case show > 0. */
if (show > 0)
{
gdb_puts ("\n", stream);
- for (index = 0; index < type->num_fields (); index++)
+ for (const auto &field : type->fields ())
{
- f_type_print_base (type->field (index).type (), stream,
- show - 1, level + 4);
+ f_type_print_base (field.type (), stream, show - 1, level + 4);
gdb_puts (" :: ", stream);
- fputs_styled (type->field (index).name (),
+ fputs_styled (field.name (),
variable_name_style.style (), stream);
- f_type_print_varspec_suffix (type->field (index).type (),
+ f_type_print_varspec_suffix (field.type (),
stream, show - 1, 0, 0, 0, false);
gdb_puts ("\n", stream);
}
gdb_printf (stream, "%*sEnd Type ", level, "");
- gdb_puts (type->name (), stream);
+ if (type->name () != nullptr)
+ gdb_puts (type->name (), stream);
}
break;
diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c
index a0812b3..935bf02 100644
--- a/gdb/f-valprint.c
+++ b/gdb/f-valprint.c
@@ -631,7 +631,7 @@ info_common_command_for_block (const struct block *block, const char *comname,
const struct common_block *common = sym->value_common_block ();
size_t index;
- gdb_assert (sym->aclass () == LOC_COMMON_BLOCK);
+ gdb_assert (sym->loc_class () == LOC_COMMON_BLOCK);
if (comname && (!sym->linkage_name ()
|| strcmp (comname, sym->linkage_name ()) != 0))
diff --git a/gdb/fbsd-nat.c b/gdb/fbsd-nat.c
index 935b947..81bd6d9 100644
--- a/gdb/fbsd-nat.c
+++ b/gdb/fbsd-nat.c
@@ -304,7 +304,7 @@ fbsd_nat_target::info_proc (const char *args, enum info_proc_what what)
if (pid == 0)
error (_("No current process: you must name one."));
}
- else if (built_argv.count () == 1 && isdigit (built_argv[0][0]))
+ else if (built_argv.count () == 1 && c_isdigit (built_argv[0][0]))
pid = strtol (built_argv[0], NULL, 10);
else
error (_("Invalid arguments."));
diff --git a/gdb/fbsd-tdep.c b/gdb/fbsd-tdep.c
index 39e1e86..32571b8 100644
--- a/gdb/fbsd-tdep.c
+++ b/gdb/fbsd-tdep.c
@@ -548,7 +548,8 @@ fbsd_core_pid_to_str (struct gdbarch *gdbarch, ptid_t ptid)
string in a static buffer. */
static const char *
-fbsd_core_thread_name (struct gdbarch *gdbarch, struct thread_info *thr)
+fbsd_core_thread_name (struct gdbarch *gdbarch, bfd &cbfd,
+ struct thread_info *thr)
{
static char buf[80];
struct bfd_section *section;
@@ -564,16 +565,15 @@ fbsd_core_thread_name (struct gdbarch *gdbarch, struct thread_info *thr)
extract the null-terminated name from the start of the
note. */
thread_section_name section_name (".thrmisc", thr->ptid);
- bfd *cbfd = current_program_space->core_bfd ();
- section = bfd_get_section_by_name (cbfd, section_name.c_str ());
+ section = bfd_get_section_by_name (&cbfd, section_name.c_str ());
if (section != NULL && bfd_section_size (section) > 0)
{
/* Truncate the name if it is longer than "buf". */
size = bfd_section_size (section);
if (size > sizeof buf - 1)
size = sizeof buf - 1;
- if (bfd_get_section_contents (cbfd, section, buf, (file_ptr) 0, size)
+ if (bfd_get_section_contents (&cbfd, section, buf, (file_ptr) 0, size)
&& buf[0] != '\0')
{
buf[size] = '\0';
@@ -582,7 +582,7 @@ fbsd_core_thread_name (struct gdbarch *gdbarch, struct thread_info *thr)
as its thread name instead of an empty name if a name
has not been set explicitly. Return a NULL name in
that case. */
- if (strcmp (buf, elf_tdata (cbfd)->core->program) != 0)
+ if (strcmp (buf, elf_tdata (&cbfd)->core->program) != 0)
return buf;
}
}
@@ -594,8 +594,8 @@ fbsd_core_thread_name (struct gdbarch *gdbarch, struct thread_info *thr)
/* Implement the "core_xfer_siginfo" gdbarch method. */
static LONGEST
-fbsd_core_xfer_siginfo (struct gdbarch *gdbarch, gdb_byte *readbuf,
- ULONGEST offset, ULONGEST len)
+fbsd_core_xfer_siginfo (struct gdbarch *gdbarch, struct bfd &cbfd,
+ gdb_byte *readbuf, ULONGEST offset, ULONGEST len)
{
size_t siginfo_size;
@@ -607,13 +607,12 @@ fbsd_core_xfer_siginfo (struct gdbarch *gdbarch, gdb_byte *readbuf,
return -1;
thread_section_name section_name (".note.freebsdcore.lwpinfo", inferior_ptid);
- bfd *cbfd = current_program_space->core_bfd ();
- asection *section = bfd_get_section_by_name (cbfd, section_name.c_str ());
+ asection *section = bfd_get_section_by_name (&cbfd, section_name.c_str ());
if (section == NULL)
return -1;
gdb_byte buf[4];
- if (!bfd_get_section_contents (cbfd, section, buf,
+ if (!bfd_get_section_contents (&cbfd, section, buf,
LWPINFO_OFFSET + LWPINFO_PL_FLAGS, 4))
return -1;
@@ -630,7 +629,7 @@ fbsd_core_xfer_siginfo (struct gdbarch *gdbarch, gdb_byte *readbuf,
else
siginfo_offset = LWPINFO_OFFSET + LWPINFO64_PL_SIGINFO;
- if (!bfd_get_section_contents (cbfd, section, readbuf,
+ if (!bfd_get_section_contents (&cbfd, section, readbuf,
siginfo_offset + offset, len))
return -1;
@@ -1015,12 +1014,11 @@ fbsd_info_proc_files_entry (int kf_type, int kf_fd, int kf_flags,
gdb_printf ("\n");
}
-/* Implement "info proc files" for a corefile. */
+/* Implement "info proc files" for corefile CBFD. */
static void
-fbsd_core_info_proc_files (struct gdbarch *gdbarch)
+fbsd_core_info_proc_files (struct gdbarch *gdbarch, bfd *cbfd)
{
- bfd *cbfd = current_program_space->core_bfd ();
asection *section = bfd_get_section_by_name (cbfd, ".note.freebsdcore.files");
if (section == NULL)
{
@@ -1143,15 +1141,14 @@ fbsd_info_proc_mappings_entry (int addr_bit, ULONGEST kve_start,
}
}
-/* Implement "info proc mappings" for a corefile. */
+/* Implement "info proc mappings" for corefile CBFD. */
static void
-fbsd_core_info_proc_mappings (struct gdbarch *gdbarch)
+fbsd_core_info_proc_mappings (struct gdbarch *gdbarch, bfd *cbfd)
{
asection *section;
unsigned char *descdata, *descend;
size_t note_size;
- bfd *cbfd = current_program_space->core_bfd ();
section = bfd_get_section_by_name (cbfd, ".note.freebsdcore.vmmap");
if (section == NULL)
@@ -1194,15 +1191,14 @@ fbsd_core_info_proc_mappings (struct gdbarch *gdbarch)
}
/* Fetch the pathname of a vnode for a single file descriptor from the
- file table core note. */
+ file table core note in CBFD. */
static gdb::unique_xmalloc_ptr<char>
-fbsd_core_vnode_path (struct gdbarch *gdbarch, int fd)
+fbsd_core_vnode_path (struct gdbarch *gdbarch, bfd *cbfd, int fd)
{
asection *section;
unsigned char *descdata, *descend;
size_t note_size;
- bfd *cbfd = current_program_space->core_bfd ();
section = bfd_get_section_by_name (cbfd, ".note.freebsdcore.files");
if (section == NULL)
@@ -1242,14 +1238,12 @@ fbsd_core_vnode_path (struct gdbarch *gdbarch, int fd)
return nullptr;
}
-/* Helper function to read a struct timeval. */
+/* Helper function to read a struct timeval from core file CBFD. */
static void
-fbsd_core_fetch_timeval (struct gdbarch *gdbarch, unsigned char *data,
- LONGEST &sec, ULONGEST &usec)
+fbsd_core_fetch_timeval (struct gdbarch *gdbarch, bfd *cbfd,
+ unsigned char *data, LONGEST &sec, ULONGEST &usec)
{
- bfd *cbfd = current_program_space->core_bfd ();
-
if (gdbarch_addr_bit (gdbarch) == 64)
{
sec = bfd_get_signed_64 (cbfd, data);
@@ -1267,12 +1261,11 @@ fbsd_core_fetch_timeval (struct gdbarch *gdbarch, unsigned char *data,
}
}
-/* Print out the contents of a signal set. */
+/* Print out the contents of a signal set SIGSET in core file CBFD. */
static void
-fbsd_print_sigset (const char *descr, unsigned char *sigset)
+fbsd_print_sigset (bfd *cbfd, const char *descr, unsigned char *sigset)
{
- bfd *cbfd = current_program_space->core_bfd ();
gdb_printf ("%s: ", descr);
for (int i = 0; i < SIG_WORDS; i++)
gdb_printf ("%08x ",
@@ -1280,10 +1273,10 @@ fbsd_print_sigset (const char *descr, unsigned char *sigset)
gdb_printf ("\n");
}
-/* Implement "info proc status" for a corefile. */
+/* Implement "info proc status" for corefile CBFD. */
static void
-fbsd_core_info_proc_status (struct gdbarch *gdbarch)
+fbsd_core_info_proc_status (struct gdbarch *gdbarch, bfd *cbfd)
{
const struct kinfo_proc_layout *kp;
asection *section;
@@ -1292,7 +1285,6 @@ fbsd_core_info_proc_status (struct gdbarch *gdbarch)
size_t note_size;
ULONGEST value;
LONGEST sec;
- bfd *cbfd = current_program_space->core_bfd ();
section = bfd_get_section_by_name (cbfd, ".note.freebsdcore.proc");
if (section == NULL)
@@ -1387,25 +1379,25 @@ fbsd_core_info_proc_status (struct gdbarch *gdbarch)
value = bfd_get (long_bit, cbfd,
descdata + kp->ki_rusage_ch + kp->ru_majflt);
gdb_printf ("Major faults, children: %s\n", pulongest (value));
- fbsd_core_fetch_timeval (gdbarch,
+ fbsd_core_fetch_timeval (gdbarch, cbfd,
descdata + kp->ki_rusage + kp->ru_utime,
sec, value);
gdb_printf ("utime: %s.%06d\n", plongest (sec), (int) value);
- fbsd_core_fetch_timeval (gdbarch,
+ fbsd_core_fetch_timeval (gdbarch, cbfd,
descdata + kp->ki_rusage + kp->ru_stime,
sec, value);
gdb_printf ("stime: %s.%06d\n", plongest (sec), (int) value);
- fbsd_core_fetch_timeval (gdbarch,
+ fbsd_core_fetch_timeval (gdbarch, cbfd,
descdata + kp->ki_rusage_ch + kp->ru_utime,
sec, value);
gdb_printf ("utime, children: %s.%06d\n", plongest (sec), (int) value);
- fbsd_core_fetch_timeval (gdbarch,
+ fbsd_core_fetch_timeval (gdbarch, cbfd,
descdata + kp->ki_rusage_ch + kp->ru_stime,
sec, value);
gdb_printf ("stime, children: %s.%06d\n", plongest (sec), (int) value);
gdb_printf ("'nice' value: %d\n",
(int) bfd_get_signed_8 (core_bfd, descdata + kp->ki_nice));
- fbsd_core_fetch_timeval (gdbarch, descdata + kp->ki_start, sec, value);
+ fbsd_core_fetch_timeval (gdbarch, cbfd, descdata + kp->ki_start, sec, value);
gdb_printf ("Start time: %s.%06d\n", plongest (sec), (int) value);
gdb_printf ("Virtual memory size: %s kB\n",
pulongest (bfd_get (addr_bit, cbfd,
@@ -1426,15 +1418,15 @@ fbsd_core_info_proc_status (struct gdbarch *gdbarch)
pulongest (bfd_get (long_bit, cbfd,
descdata + kp->ki_rusage
+ kp->ru_maxrss)));
- fbsd_print_sigset ("Ignored Signals", descdata + kp->ki_sigignore);
- fbsd_print_sigset ("Caught Signals", descdata + kp->ki_sigcatch);
+ fbsd_print_sigset (cbfd, "Ignored Signals", descdata + kp->ki_sigignore);
+ fbsd_print_sigset (cbfd, "Caught Signals", descdata + kp->ki_sigcatch);
}
/* Implement the "core_info_proc" gdbarch method. */
static void
-fbsd_core_info_proc (struct gdbarch *gdbarch, const char *args,
- enum info_proc_what what)
+fbsd_core_info_proc (struct gdbarch *gdbarch, struct bfd *cbfd,
+ const char *args, enum info_proc_what what)
{
bool do_cmdline = false;
bool do_cwd = false;
@@ -1482,7 +1474,6 @@ fbsd_core_info_proc (struct gdbarch *gdbarch, const char *args,
return;
}
- bfd *cbfd = current_program_space->core_bfd ();
pid = bfd_core_file_pid (cbfd);
if (pid != 0)
gdb_printf (_("process %d\n"), pid);
@@ -1500,7 +1491,7 @@ fbsd_core_info_proc (struct gdbarch *gdbarch, const char *args,
if (do_cwd)
{
gdb::unique_xmalloc_ptr<char> cwd =
- fbsd_core_vnode_path (gdbarch, KINFO_FILE_FD_TYPE_CWD);
+ fbsd_core_vnode_path (gdbarch, cbfd, KINFO_FILE_FD_TYPE_CWD);
if (cwd)
gdb_printf ("cwd = '%s'\n", cwd.get ());
else
@@ -1509,18 +1500,18 @@ fbsd_core_info_proc (struct gdbarch *gdbarch, const char *args,
if (do_exe)
{
gdb::unique_xmalloc_ptr<char> exe =
- fbsd_core_vnode_path (gdbarch, KINFO_FILE_FD_TYPE_TEXT);
+ fbsd_core_vnode_path (gdbarch, cbfd, KINFO_FILE_FD_TYPE_TEXT);
if (exe)
gdb_printf ("exe = '%s'\n", exe.get ());
else
warning (_("unable to read executable path name"));
}
if (do_files)
- fbsd_core_info_proc_files (gdbarch);
+ fbsd_core_info_proc_files (gdbarch, cbfd);
if (do_mappings)
- fbsd_core_info_proc_mappings (gdbarch);
+ fbsd_core_info_proc_mappings (gdbarch, cbfd);
if (do_status)
- fbsd_core_info_proc_status (gdbarch);
+ fbsd_core_info_proc_status (gdbarch, cbfd);
}
/* Print descriptions of FreeBSD-specific AUXV entries to FILE. */
diff --git a/gdb/features/Makefile b/gdb/features/Makefile
index 750508a..d17c349 100644
--- a/gdb/features/Makefile
+++ b/gdb/features/Makefile
@@ -204,6 +204,8 @@ FEATURE_XMLFILES = aarch64-core.xml \
aarch64-fpu.xml \
aarch64-pauth.xml \
aarch64-mte.xml \
+ aarch64-gcs.xml \
+ aarch64-gcs-linux.xml \
arc/v1-core.xml \
arc/v1-aux.xml \
arc/v2-core.xml \
@@ -226,6 +228,7 @@ FEATURE_XMLFILES = aarch64-core.xml \
i386/32bit-avx.xml \
i386/32bit-avx512.xml \
i386/32bit-segments.xml \
+ i386/32bit-ssp.xml \
i386/64bit-avx512.xml \
i386/64bit-core.xml \
i386/64bit-segments.xml \
@@ -233,6 +236,7 @@ FEATURE_XMLFILES = aarch64-core.xml \
i386/64bit-linux.xml \
i386/64bit-sse.xml \
i386/pkeys.xml \
+ i386/64bit-ssp.xml \
i386/x32-core.xml \
loongarch/base32.xml \
loongarch/base64.xml \
diff --git a/gdb/features/aarch64-gcs-linux.c b/gdb/features/aarch64-gcs-linux.c
new file mode 100644
index 0000000..6b0d25b
--- /dev/null
+++ b/gdb/features/aarch64-gcs-linux.c
@@ -0,0 +1,21 @@
+/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
+ Original: aarch64-gcs-linux.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_aarch64_gcs_linux (struct target_desc *result, long regnum)
+{
+ struct tdesc_feature *feature;
+
+ feature = tdesc_create_feature (result, "org.gnu.gdb.aarch64.gcs.linux");
+ tdesc_type_with_fields *type_with_fields;
+ type_with_fields = tdesc_create_flags (feature, "features_flags", 8);
+ tdesc_add_flag (type_with_fields, 0, "PR_SHADOW_STACK_ENABLE");
+ tdesc_add_flag (type_with_fields, 1, "PR_SHADOW_STACK_WRITE");
+ tdesc_add_flag (type_with_fields, 2, "PR_SHADOW_STACK_PUSH");
+
+ tdesc_create_reg (feature, "gcs_features_enabled", regnum++, 1, "system", 64, "features_flags");
+ tdesc_create_reg (feature, "gcs_features_locked", regnum++, 1, "system", 64, "features_flags");
+ return regnum;
+}
diff --git a/gdb/features/aarch64-gcs-linux.xml b/gdb/features/aarch64-gcs-linux.xml
new file mode 100644
index 0000000..8d9d2ce
--- /dev/null
+++ b/gdb/features/aarch64-gcs-linux.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2025 Free Software Foundation, Inc.
+
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. -->
+
+<!DOCTYPE feature SYSTEM "gdb-target.dtd">
+<feature name="org.gnu.gdb.aarch64.gcs.linux">
+ <flags id="features_flags" size="8">
+ <field name="PR_SHADOW_STACK_ENABLE" start="0" end="0"/>
+ <field name="PR_SHADOW_STACK_WRITE" start="1" end="1"/>
+ <field name="PR_SHADOW_STACK_PUSH" start="2" end="2"/>
+ </flags>
+
+ <reg name="gcs_features_enabled" bitsize="64" type="features_flags" group="system"/>
+ <reg name="gcs_features_locked" bitsize="64" type="features_flags" group="system"/>
+</feature>
diff --git a/gdb/features/aarch64-gcs.c b/gdb/features/aarch64-gcs.c
new file mode 100644
index 0000000..2b2caf2
--- /dev/null
+++ b/gdb/features/aarch64-gcs.c
@@ -0,0 +1,14 @@
+/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
+ Original: aarch64-gcs.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_aarch64_gcs (struct target_desc *result, long regnum)
+{
+ struct tdesc_feature *feature;
+
+ feature = tdesc_create_feature (result, "org.gnu.gdb.aarch64.gcs");
+ tdesc_create_reg (feature, "gcspr", regnum++, 1, "system", 64, "data_ptr");
+ return regnum;
+}
diff --git a/gdb/features/aarch64-gcs.xml b/gdb/features/aarch64-gcs.xml
new file mode 100644
index 0000000..bbee5e0
--- /dev/null
+++ b/gdb/features/aarch64-gcs.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2025 Free Software Foundation, Inc.
+
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. -->
+
+<!DOCTYPE feature SYSTEM "gdb-target.dtd">
+<feature name="org.gnu.gdb.aarch64.gcs">
+ <reg name="gcspr" bitsize="64" type="data_ptr" group="system"/>
+</feature>
diff --git a/gdb/features/i386/32bit-ssp.c b/gdb/features/i386/32bit-ssp.c
new file mode 100644
index 0000000..991bae3
--- /dev/null
+++ b/gdb/features/i386/32bit-ssp.c
@@ -0,0 +1,14 @@
+/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
+ Original: 32bit-ssp.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_i386_32bit_ssp (struct target_desc *result, long regnum)
+{
+ struct tdesc_feature *feature;
+
+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.pl3_ssp");
+ tdesc_create_reg (feature, "pl3_ssp", regnum++, 1, NULL, 32, "data_ptr");
+ return regnum;
+}
diff --git a/gdb/features/i386/32bit-ssp.xml b/gdb/features/i386/32bit-ssp.xml
new file mode 100644
index 0000000..d17e700
--- /dev/null
+++ b/gdb/features/i386/32bit-ssp.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. -->
+
+<!DOCTYPE feature SYSTEM "gdb-target.dtd">
+<feature name="org.gnu.gdb.i386.pl3_ssp">
+ <reg name="pl3_ssp" bitsize="32" type="data_ptr"/>
+</feature>
diff --git a/gdb/features/i386/64bit-ssp.c b/gdb/features/i386/64bit-ssp.c
new file mode 100644
index 0000000..5468099
--- /dev/null
+++ b/gdb/features/i386/64bit-ssp.c
@@ -0,0 +1,14 @@
+/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
+ Original: 64bit-ssp.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_i386_64bit_ssp (struct target_desc *result, long regnum)
+{
+ struct tdesc_feature *feature;
+
+ feature = tdesc_create_feature (result, "org.gnu.gdb.i386.pl3_ssp");
+ tdesc_create_reg (feature, "pl3_ssp", regnum++, 1, NULL, 64, "data_ptr");
+ return regnum;
+}
diff --git a/gdb/features/i386/64bit-ssp.xml b/gdb/features/i386/64bit-ssp.xml
new file mode 100644
index 0000000..a0688d0
--- /dev/null
+++ b/gdb/features/i386/64bit-ssp.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. -->
+
+<!DOCTYPE feature SYSTEM "gdb-target.dtd">
+<feature name="org.gnu.gdb.i386.pl3_ssp">
+ <reg name="pl3_ssp" bitsize="64" type="data_ptr"/>
+</feature>
diff --git a/gdb/findcmd.c b/gdb/findcmd.c
index 4e47877..03c3fcc 100644
--- a/gdb/findcmd.c
+++ b/gdb/findcmd.c
@@ -18,7 +18,6 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "arch-utils.h"
-#include <ctype.h>
#include "cli/cli-cmds.h"
#include "value.h"
#include "target.h"
@@ -76,12 +75,12 @@ parse_find_args (const char *args, ULONGEST *max_countp,
{
++s;
- while (*s != '\0' && *s != '/' && !isspace (*s))
+ while (*s != '\0' && *s != '/' && !c_isspace (*s))
{
- if (isdigit (*s))
+ if (c_isdigit (*s))
{
max_count = atoi (s);
- while (isdigit (*s))
+ while (c_isdigit (*s))
++s;
continue;
}
diff --git a/gdb/findvar.c b/gdb/findvar.c
index 9da5c48..41efc8d 100644
--- a/gdb/findvar.c
+++ b/gdb/findvar.c
@@ -65,14 +65,15 @@ value_of_register (int regnum, const frame_info_ptr &next_frame)
/* See value.h. */
value *
-value_of_register_lazy (const frame_info_ptr &next_frame, int regnum)
+value_of_register_lazy (const frame_info_ptr &next_frame, int regnum,
+ struct type *type)
{
gdbarch *gdbarch = frame_unwind_arch (next_frame);
gdb_assert (regnum < gdbarch_num_cooked_regs (gdbarch));
gdb_assert (next_frame != nullptr);
- return value::allocate_register_lazy (next_frame, regnum);
+ return value::allocate_register_lazy (next_frame, regnum, type);
}
/* Given a pointer of type TYPE in target form in BUF, return the
@@ -124,7 +125,7 @@ symbol_read_needs (struct symbol *sym)
computed_ops != nullptr)
return computed_ops->get_symbol_read_needs (sym);
- switch (sym->aclass ())
+ switch (sym->loc_class ())
{
/* All cases listed explicitly so that gcc -Wall will detect it if
we failed to consider one. */
@@ -306,7 +307,7 @@ language_defn::read_var_value (struct symbol *var,
if (const symbol_computed_ops *computed_ops = var->computed_ops ())
return computed_ops->read_variable (var, frame);
- switch (var->aclass ())
+ switch (var->loc_class ())
{
case LOC_CONST:
if (is_dynamic_type (type))
@@ -429,7 +430,7 @@ language_defn::read_var_value (struct symbol *var,
const symbol_register_ops *reg_ops = var->register_ops ();
int regno = reg_ops->register_number (var, get_frame_arch (frame));
- if (var->aclass () == LOC_REGPARM_ADDR)
+ if (var->loc_class () == LOC_REGPARM_ADDR)
addr = value_as_address
(value_from_register (lookup_pointer_type (type), regno, frame));
else
@@ -445,9 +446,8 @@ language_defn::read_var_value (struct symbol *var,
struct obj_section *obj_section;
bound_minimal_symbol bmsym;
- gdbarch_iterate_over_objfiles_in_search_order
- (var->arch (),
- [var, &bmsym] (objfile *objfile)
+ current_program_space->iterate_over_objfiles_in_search_order
+ ([var, &bmsym] (objfile *objfile)
{
bmsym = lookup_minimal_symbol (current_program_space,
var->linkage_name (), objfile);
diff --git a/gdb/frame-unwind.c b/gdb/frame-unwind.c
index 95768fa..3709215 100644
--- a/gdb/frame-unwind.c
+++ b/gdb/frame-unwind.c
@@ -297,8 +297,16 @@ struct value *
frame_unwind_got_register (const frame_info_ptr &frame,
int regnum, int new_regnum)
{
+ struct gdbarch *gdbarch = frame_unwind_arch (frame);
+ struct type *regnum_type = register_type (gdbarch, regnum);
+ struct type *new_regnum_type = register_type (gdbarch, new_regnum);
+
+ /* REGNUM has been copied into NEW_REGNUM, therefore, the former
+ must be smaller or equal in size to the latter. */
+ gdb_assert (regnum_type->length () <= new_regnum_type->length ());
+
return value_of_register_lazy (get_next_frame_sentinel_okay (frame),
- new_regnum);
+ new_regnum, regnum_type);
}
/* Return a value which indicates that FRAME saved REGNUM in memory at
diff --git a/gdb/frame.c b/gdb/frame.c
index fc4cbca..5c41dcd 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -2617,7 +2617,7 @@ inside_main_func (const frame_info_ptr &this_frame)
SEARCH_FUNCTION_DOMAIN, nullptr);
/* This lookup should always yield a block-valued symbol. */
- if (bs.symbol != nullptr && bs.symbol->aclass () == LOC_BLOCK)
+ if (bs.symbol != nullptr && bs.symbol->loc_class () == LOC_BLOCK)
{
const struct block *block = bs.symbol->value_block ();
gdb_assert (block != nullptr);
@@ -2663,15 +2663,14 @@ get_prev_frame (const frame_info_ptr &this_frame)
{
FRAME_SCOPED_DEBUG_ENTER_EXIT;
- CORE_ADDR frame_pc;
- int frame_pc_p;
+ std::optional<CORE_ADDR> frame_pc;
/* There is always a frame. If this assertion fails, suspect that
something should be calling get_selected_frame() or
get_current_frame(). */
gdb_assert (this_frame != NULL);
- frame_pc_p = get_frame_pc_if_available (this_frame, &frame_pc);
+ frame_pc = get_frame_pc_if_available (this_frame);
/* tausq/2004-12-07: Dummy frames are skipped because it doesn't make much
sense to stop unwinding at a dummy frame. One place where a dummy
@@ -2686,7 +2685,7 @@ get_prev_frame (const frame_info_ptr &this_frame)
if (this_frame->level >= 0
&& get_frame_type (this_frame) == NORMAL_FRAME
&& !user_set_backtrace_options.backtrace_past_main
- && frame_pc_p
+ && frame_pc.has_value ()
&& inside_main_func (this_frame))
/* Don't unwind past main(). Note, this is done _before_ the
frame has been marked as previously unwound. That way if the
@@ -2733,7 +2732,7 @@ get_prev_frame (const frame_info_ptr &this_frame)
if (this_frame->level >= 0
&& get_frame_type (this_frame) == NORMAL_FRAME
&& !user_set_backtrace_options.backtrace_past_entry
- && frame_pc_p
+ && frame_pc.has_value ()
&& inside_entry_func (this_frame))
{
frame_debug_got_null_frame (this_frame, "inside entry func");
@@ -2747,7 +2746,7 @@ get_prev_frame (const frame_info_ptr &this_frame)
&& (get_frame_type (this_frame) == NORMAL_FRAME
|| get_frame_type (this_frame) == INLINE_FRAME)
&& get_frame_type (get_next_frame (this_frame)) == NORMAL_FRAME
- && frame_pc_p && frame_pc == 0)
+ && frame_pc.has_value () && *frame_pc == 0)
{
frame_debug_got_null_frame (this_frame, "zero PC");
return NULL;
@@ -2763,25 +2762,24 @@ get_frame_pc (const frame_info_ptr &frame)
return frame_unwind_pc (frame_info_ptr (frame->next));
}
-bool
-get_frame_pc_if_available (const frame_info_ptr &frame, CORE_ADDR *pc)
+std::optional<CORE_ADDR>
+get_frame_pc_if_available (const frame_info_ptr &frame)
{
+ std::optional<CORE_ADDR> pc;
gdb_assert (frame->next != NULL);
try
{
- *pc = frame_unwind_pc (frame_info_ptr (frame->next));
+ pc = frame_unwind_pc (frame_info_ptr (frame->next));
}
catch (const gdb_exception_error &ex)
{
- if (ex.error == NOT_AVAILABLE_ERROR)
- return false;
- else
+ if (ex.error != NOT_AVAILABLE_ERROR)
throw;
}
- return true;
+ return pc;
}
/* Return an address that falls within THIS_FRAME's code block. */
@@ -2870,7 +2868,7 @@ find_frame_sal (const frame_info_ptr &frame)
{
frame_info_ptr next_frame;
int notcurrent;
- CORE_ADDR pc;
+ std::optional<CORE_ADDR> pc;
if (frame_inlined_callees (frame) > 0)
{
@@ -2914,11 +2912,11 @@ find_frame_sal (const frame_info_ptr &frame)
PC and such a PC indicates the current (rather than next)
instruction/line, consequently, for such cases, want to get the
line containing fi->pc. */
- if (!get_frame_pc_if_available (frame, &pc))
+ if (!(pc = get_frame_pc_if_available (frame)))
return {};
- notcurrent = (pc != get_frame_address_in_block (frame));
- return find_pc_line (pc, notcurrent);
+ notcurrent = (*pc != get_frame_address_in_block (frame));
+ return find_pc_line (*pc, notcurrent);
}
/* Per "frame.h", return the ``address'' of the frame. Code should
diff --git a/gdb/frame.h b/gdb/frame.h
index b240662..99a7983 100644
--- a/gdb/frame.h
+++ b/gdb/frame.h
@@ -504,7 +504,8 @@ extern CORE_ADDR get_frame_pc (const frame_info_ptr &);
/* Same as get_frame_pc, but return a boolean indication of whether
the PC is actually available, instead of throwing an error. */
-extern bool get_frame_pc_if_available (const frame_info_ptr &frame, CORE_ADDR *pc);
+extern std::optional<CORE_ADDR> get_frame_pc_if_available
+ (const frame_info_ptr &frame);
/* An address (not necessarily aligned to an instruction boundary)
that falls within THIS frame's code block.
diff --git a/gdb/gcore-1.in b/gdb/gcore-1.in
index 2f6eb02..fe2bb3d 100644..100755
--- a/gdb/gcore-1.in
+++ b/gdb/gcore-1.in
@@ -32,12 +32,15 @@ dump_all_cmds=()
data_directory_opt=()
+# The GDB binary to run.
+gdb_binary=
+
function print_usage() {
prefix="Usage: $0"
padding=$(printf '%*s' ${#prefix})
echo "$prefix [-h|--help] [-v|--version]"
- echo "$padding [-a] [-o prefix] [-d data-directory]"
+ echo "$padding [-a] [-o prefix] [-g gdb] [-d data-directory]"
echo "$padding pid1 [pid2...pidN]"
}
@@ -55,6 +58,8 @@ function print_help() {
echo " -a Dump all memory mappings."
echo " -o prefix Use 'prefix.pid' as the core file name."
echo " The default prefix is 'core'."
+ echo " -g gdb The GDB binary to run."
+ echo " Defaults to GDB installed alongside gcore."
echo " -d dir Pass '--data-directory dir' as an argument"
echo " to GDB."
}
@@ -63,10 +68,10 @@ function print_version() {
echo "GNU gcore (${PKGVERSION}) ${VERSION}"
}
-while getopts vhao:d:-: OPT; do
+while getopts vhao:g:d:-: OPT; do
if [ "$OPT" = "-" ]; then
OPT="${OPTARG%%=*}"
- OPTARG="${OPTARG#'$OPT'}"
+ OPTARG="${OPTARG#"$OPT"}"
OPTARG="${OPTARG#=}"
fi
@@ -82,6 +87,9 @@ while getopts vhao:d:-: OPT; do
o)
prefix=$OPTARG
;;
+ g)
+ gdb_binary="$OPTARG"
+ ;;
d)
data_directory_opt=("--data-directory" "$OPTARG")
;;
@@ -119,13 +127,13 @@ fi
# Attempt to fetch the absolute path to the gcore script that was
# called.
-binary_path=`dirname "$0"`
+binary_path=$(dirname "$0")
-if test "x$binary_path" = x. ; then
+if test "$binary_path" = . ; then
# We got "." back as a path. This means the user executed
# the gcore script locally (i.e. ./gcore) or called the
# script via a shell interpreter (i.e. sh gcore).
- binary_basename=`basename "$0"`
+ binary_basename=$(basename "$0")
# If the gcore script was called like "sh gcore" and the script
# lives in the current directory, "which" will not give us "gcore".
@@ -139,15 +147,21 @@ if test "x$binary_path" = x. ; then
# The gcore script was not found in ".", which means the script
# was called from somewhere else in $PATH by "sh gcore".
# Extract the correct path now.
- binary_path_from_env=`which "$0"`
- binary_path=`dirname "$binary_path_from_env"`
+ binary_path_from_env=$(which "$0")
+ binary_path=$(dirname "$binary_path_from_env")
fi
fi
+if [ -z "$gdb_binary" ]; then
+ gdb_binary="$binary_path/@GDB_TRANSFORM_NAME@"
+fi
+
+gdb_binary_basename=$(basename "$gdb_binary")
+
# Check if the GDB binary is in the expected path. If not, just
# quit with a message.
-if [ ! -f "$binary_path/@GDB_TRANSFORM_NAME@" ]; then
- echo "gcore: GDB binary (${binary_path}/@GDB_TRANSFORM_NAME@) not found"
+if [ ! -f "$gdb_binary" ]; then
+ echo "gcore: GDB binary ($gdb_binary) not found"
exit 1
fi
@@ -159,7 +173,7 @@ for pid in "$@"
do
# `</dev/null' to avoid touching interactive terminal if it is
# available but not accessible as GDB would get stopped on SIGTTIN.
- "$binary_path/@GDB_TRANSFORM_NAME@" </dev/null \
+ "$gdb_binary" </dev/null \
"${data_directory_opt[@]}" \
--nx --batch --readnever -iex 'set debuginfod enabled off' \
-ex "set pagination off" -ex "set height 0" -ex "set width 0" \
@@ -169,7 +183,7 @@ do
if [ -r "$prefix.$pid" ] ; then
rc=0
else
- echo "@GCORE_TRANSFORM_NAME@: failed to create $prefix.$pid"
+ echo "$gdb_binary_basename: failed to create $prefix.$pid"
rc=1
break
fi
diff --git a/gdb/gcore.c b/gdb/gcore.c
index d532652..ce5f570 100644
--- a/gdb/gcore.c
+++ b/gdb/gcore.c
@@ -425,13 +425,13 @@ gcore_create_callback (CORE_ADDR vaddr, unsigned long size, int read,
If so, we can avoid copying its contents by clearing SEC_LOAD. */
for (objfile *objfile : current_program_space->objfiles ())
- for (obj_section *objsec : objfile->sections ())
+ for (obj_section &objsec : objfile->sections ())
{
bfd *abfd = objfile->obfd.get ();
- asection *asec = objsec->the_bfd_section;
+ asection *asec = objsec.the_bfd_section;
bfd_vma align = (bfd_vma) 1 << bfd_section_alignment (asec);
- bfd_vma start = objsec->addr () & -align;
- bfd_vma end = (objsec->endaddr () + align - 1) & -align;
+ bfd_vma start = objsec.addr () & -align;
+ bfd_vma end = (objsec.endaddr () + align - 1) & -align;
/* Match if either the entire memory region lies inside the
section (i.e. a mapping covering some pages of a large
@@ -533,9 +533,9 @@ objfile_find_memory_regions (struct target_ops *self,
/* Call callback function for each objfile section. */
for (objfile *objfile : current_program_space->objfiles ())
- for (obj_section *objsec : objfile->sections ())
+ for (obj_section &objsec : objfile->sections ())
{
- asection *isec = objsec->the_bfd_section;
+ asection *isec = objsec.the_bfd_section;
flagword flags = bfd_section_flags (isec);
/* Separate debug info files are irrelevant for gcore. */
@@ -547,7 +547,7 @@ objfile_find_memory_regions (struct target_ops *self,
int size = bfd_section_size (isec);
int ret;
- ret = (*func) (objsec->addr (), size,
+ ret = (*func) (objsec.addr (), size,
1, /* All sections will be readable. */
(flags & SEC_READONLY) == 0, /* Writable. */
(flags & SEC_CODE) != 0, /* Executable. */
diff --git a/gdb/gdb-gdb.gdb.in b/gdb/gdb-gdb.gdb.in
index d5d533a..34ce5f0 100644
--- a/gdb/gdb-gdb.gdb.in
+++ b/gdb/gdb-gdb.gdb.in
@@ -37,3 +37,6 @@ document pdie
Pretty print a DWARF DIE.
Syntax: pdie die [depth]
end
+
+# Trivial and uninteresting functions to skip.
+skip -rfu "^gdb::ref_ptr<.*>::get"
diff --git a/gdb/gdb_wchar.h b/gdb/gdb_wchar.h
index 417d5ba..9db0d5e 100644
--- a/gdb/gdb_wchar.h
+++ b/gdb/gdb_wchar.h
@@ -113,8 +113,8 @@ typedef char gdb_wchar_t;
typedef int gdb_wint_t;
#define gdb_wcslen strlen
-#define gdb_iswprint isprint
-#define gdb_iswxdigit isxdigit
+#define gdb_iswprint c_isprint
+#define gdb_iswxdigit c_isxdigit
#define gdb_btowc /* empty */
#define gdb_WEOF EOF
diff --git a/gdb/gdbarch-gen.c b/gdb/gdbarch-gen.c
index fc570d3..7887b13 100644
--- a/gdb/gdbarch-gen.c
+++ b/gdb/gdbarch-gen.c
@@ -153,7 +153,7 @@ struct gdbarch
gdbarch_set_memtags_ftype *set_memtags = default_set_memtags;
gdbarch_get_memtag_ftype *get_memtag = default_get_memtag;
CORE_ADDR memtag_granule_size = 0;
- gdbarch_software_single_step_ftype *software_single_step = nullptr;
+ gdbarch_get_next_pcs_ftype *get_next_pcs = nullptr;
gdbarch_single_step_through_delay_ftype *single_step_through_delay = nullptr;
gdbarch_print_insn_ftype *print_insn = default_print_insn;
gdbarch_skip_trampoline_code_ftype *skip_trampoline_code = generic_skip_trampoline_code;
@@ -240,7 +240,6 @@ struct gdbarch
gdbarch_gen_return_address_ftype *gen_return_address = default_gen_return_address;
gdbarch_info_proc_ftype *info_proc = nullptr;
gdbarch_core_info_proc_ftype *core_info_proc = nullptr;
- gdbarch_iterate_over_objfiles_in_search_order_ftype *iterate_over_objfiles_in_search_order = default_iterate_over_objfiles_in_search_order;
struct ravenscar_arch_ops * ravenscar_ops = NULL;
gdbarch_insn_is_call_ftype *insn_is_call = default_insn_is_call;
gdbarch_insn_is_ret_ftype *insn_is_ret = default_insn_is_ret;
@@ -262,6 +261,8 @@ struct gdbarch
gdbarch_read_core_file_mappings_ftype *read_core_file_mappings = default_read_core_file_mappings;
gdbarch_use_target_description_from_corefile_notes_ftype *use_target_description_from_corefile_notes = default_use_target_description_from_corefile_notes;
gdbarch_core_parse_exec_context_ftype *core_parse_exec_context = default_core_parse_exec_context;
+ gdbarch_shadow_stack_push_ftype *shadow_stack_push = nullptr;
+ gdbarch_get_shadow_stack_pointer_ftype *get_shadow_stack_pointer = default_get_shadow_stack_pointer;
};
/* Create a new ``struct gdbarch'' based on information provided by
@@ -421,7 +422,7 @@ verify_gdbarch (struct gdbarch *gdbarch)
/* Skip verify of set_memtags, invalid_p == 0. */
/* Skip verify of get_memtag, invalid_p == 0. */
/* Skip verify of memtag_granule_size, invalid_p == 0. */
- /* Skip verify of software_single_step, has predicate. */
+ /* Skip verify of get_next_pcs, has predicate. */
/* Skip verify of single_step_through_delay, has predicate. */
/* Skip verify of print_insn, invalid_p == 0. */
/* Skip verify of skip_trampoline_code, invalid_p == 0. */
@@ -513,7 +514,6 @@ verify_gdbarch (struct gdbarch *gdbarch)
/* Skip verify of gen_return_address, invalid_p == 0. */
/* Skip verify of info_proc, has predicate. */
/* Skip verify of core_info_proc, has predicate. */
- /* Skip verify of iterate_over_objfiles_in_search_order, invalid_p == 0. */
/* Skip verify of ravenscar_ops, invalid_p == 0. */
/* Skip verify of insn_is_call, invalid_p == 0. */
/* Skip verify of insn_is_ret, invalid_p == 0. */
@@ -535,6 +535,8 @@ verify_gdbarch (struct gdbarch *gdbarch)
/* Skip verify of read_core_file_mappings, invalid_p == 0. */
/* Skip verify of use_target_description_from_corefile_notes, invalid_p == 0. */
/* Skip verify of core_parse_exec_context, invalid_p == 0. */
+ /* Skip verify of shadow_stack_push, has predicate. */
+ /* Skip verify of get_shadow_stack_pointer, invalid_p == 0. */
if (!log.empty ())
internal_error (_("verify_gdbarch: the following are invalid ...%s"),
log.c_str ());
@@ -948,11 +950,11 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: memtag_granule_size = %s\n",
core_addr_to_string_nz (gdbarch->memtag_granule_size));
gdb_printf (file,
- "gdbarch_dump: gdbarch_software_single_step_p() = %d\n",
- gdbarch_software_single_step_p (gdbarch));
+ "gdbarch_dump: gdbarch_get_next_pcs_p() = %d\n",
+ gdbarch_get_next_pcs_p (gdbarch));
gdb_printf (file,
- "gdbarch_dump: software_single_step = <%s>\n",
- host_address_to_string (gdbarch->software_single_step));
+ "gdbarch_dump: get_next_pcs = <%s>\n",
+ host_address_to_string (gdbarch->get_next_pcs));
gdb_printf (file,
"gdbarch_dump: gdbarch_single_step_through_delay_p() = %d\n",
gdbarch_single_step_through_delay_p (gdbarch));
@@ -1338,9 +1340,6 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
"gdbarch_dump: core_info_proc = <%s>\n",
host_address_to_string (gdbarch->core_info_proc));
gdb_printf (file,
- "gdbarch_dump: iterate_over_objfiles_in_search_order = <%s>\n",
- host_address_to_string (gdbarch->iterate_over_objfiles_in_search_order));
- gdb_printf (file,
"gdbarch_dump: ravenscar_ops = %s\n",
host_address_to_string (gdbarch->ravenscar_ops));
gdb_printf (file,
@@ -1406,6 +1405,15 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file)
gdb_printf (file,
"gdbarch_dump: core_parse_exec_context = <%s>\n",
host_address_to_string (gdbarch->core_parse_exec_context));
+ gdb_printf (file,
+ "gdbarch_dump: gdbarch_shadow_stack_push_p() = %d\n",
+ gdbarch_shadow_stack_push_p (gdbarch));
+ gdb_printf (file,
+ "gdbarch_dump: shadow_stack_push = <%s>\n",
+ host_address_to_string (gdbarch->shadow_stack_push));
+ gdb_printf (file,
+ "gdbarch_dump: get_shadow_stack_pointer = <%s>\n",
+ host_address_to_string (gdbarch->get_shadow_stack_pointer));
if (gdbarch->dump_tdep != NULL)
gdbarch->dump_tdep (gdbarch, file);
}
@@ -3388,27 +3396,27 @@ set_gdbarch_memtag_granule_size (struct gdbarch *gdbarch,
}
bool
-gdbarch_software_single_step_p (struct gdbarch *gdbarch)
+gdbarch_get_next_pcs_p (struct gdbarch *gdbarch)
{
gdb_assert (gdbarch != NULL);
- return gdbarch->software_single_step != NULL;
+ return gdbarch->get_next_pcs != NULL;
}
std::vector<CORE_ADDR>
-gdbarch_software_single_step (struct gdbarch *gdbarch, struct regcache *regcache)
+gdbarch_get_next_pcs (struct gdbarch *gdbarch, struct regcache *regcache)
{
gdb_assert (gdbarch != NULL);
- gdb_assert (gdbarch->software_single_step != NULL);
+ gdb_assert (gdbarch->get_next_pcs != NULL);
if (gdbarch_debug >= 2)
- gdb_printf (gdb_stdlog, "gdbarch_software_single_step called\n");
- return gdbarch->software_single_step (regcache);
+ gdb_printf (gdb_stdlog, "gdbarch_get_next_pcs called\n");
+ return gdbarch->get_next_pcs (regcache);
}
void
-set_gdbarch_software_single_step (struct gdbarch *gdbarch,
- gdbarch_software_single_step_ftype software_single_step)
+set_gdbarch_get_next_pcs (struct gdbarch *gdbarch,
+ gdbarch_get_next_pcs_ftype get_next_pcs)
{
- gdbarch->software_single_step = software_single_step;
+ gdbarch->get_next_pcs = get_next_pcs;
}
bool
@@ -3470,13 +3478,13 @@ set_gdbarch_skip_trampoline_code (struct gdbarch *gdbarch,
}
solib_ops_up
-gdbarch_make_solib_ops (struct gdbarch *gdbarch)
+gdbarch_make_solib_ops (struct gdbarch *gdbarch, program_space *pspace)
{
gdb_assert (gdbarch != NULL);
gdb_assert (gdbarch->make_solib_ops != NULL);
if (gdbarch_debug >= 2)
gdb_printf (gdb_stdlog, "gdbarch_make_solib_ops called\n");
- return gdbarch->make_solib_ops ();
+ return gdbarch->make_solib_ops (pspace);
}
void
@@ -3962,13 +3970,13 @@ gdbarch_core_xfer_shared_libraries_p (struct gdbarch *gdbarch)
}
ULONGEST
-gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len)
+gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, struct bfd &cbfd, gdb_byte *readbuf, ULONGEST offset, ULONGEST len)
{
gdb_assert (gdbarch != NULL);
gdb_assert (gdbarch->core_xfer_shared_libraries != NULL);
if (gdbarch_debug >= 2)
gdb_printf (gdb_stdlog, "gdbarch_core_xfer_shared_libraries called\n");
- return gdbarch->core_xfer_shared_libraries (gdbarch, readbuf, offset, len);
+ return gdbarch->core_xfer_shared_libraries (gdbarch, cbfd, readbuf, offset, len);
}
void
@@ -3986,13 +3994,13 @@ gdbarch_core_xfer_shared_libraries_aix_p (struct gdbarch *gdbarch)
}
ULONGEST
-gdbarch_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len)
+gdbarch_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch, struct bfd &cbfd, gdb_byte *readbuf, ULONGEST offset, ULONGEST len)
{
gdb_assert (gdbarch != NULL);
gdb_assert (gdbarch->core_xfer_shared_libraries_aix != NULL);
if (gdbarch_debug >= 2)
gdb_printf (gdb_stdlog, "gdbarch_core_xfer_shared_libraries_aix called\n");
- return gdbarch->core_xfer_shared_libraries_aix (gdbarch, readbuf, offset, len);
+ return gdbarch->core_xfer_shared_libraries_aix (gdbarch, cbfd, readbuf, offset, len);
}
void
@@ -4034,13 +4042,13 @@ gdbarch_core_thread_name_p (struct gdbarch *gdbarch)
}
const char *
-gdbarch_core_thread_name (struct gdbarch *gdbarch, struct thread_info *thr)
+gdbarch_core_thread_name (struct gdbarch *gdbarch, struct bfd &cbfd, struct thread_info *thr)
{
gdb_assert (gdbarch != NULL);
gdb_assert (gdbarch->core_thread_name != NULL);
if (gdbarch_debug >= 2)
gdb_printf (gdb_stdlog, "gdbarch_core_thread_name called\n");
- return gdbarch->core_thread_name (gdbarch, thr);
+ return gdbarch->core_thread_name (gdbarch, cbfd, thr);
}
void
@@ -4058,13 +4066,13 @@ gdbarch_core_xfer_siginfo_p (struct gdbarch *gdbarch)
}
LONGEST
-gdbarch_core_xfer_siginfo (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len)
+gdbarch_core_xfer_siginfo (struct gdbarch *gdbarch, struct bfd &cbfd, gdb_byte *readbuf, ULONGEST offset, ULONGEST len)
{
gdb_assert (gdbarch != NULL);
gdb_assert (gdbarch->core_xfer_siginfo != NULL);
if (gdbarch_debug >= 2)
gdb_printf (gdb_stdlog, "gdbarch_core_xfer_siginfo called\n");
- return gdbarch->core_xfer_siginfo (gdbarch, readbuf, offset, len);
+ return gdbarch->core_xfer_siginfo (gdbarch, cbfd, readbuf, offset, len);
}
void
@@ -4082,13 +4090,13 @@ gdbarch_core_read_x86_xsave_layout_p (struct gdbarch *gdbarch)
}
bool
-gdbarch_core_read_x86_xsave_layout (struct gdbarch *gdbarch, x86_xsave_layout &xsave_layout)
+gdbarch_core_read_x86_xsave_layout (struct gdbarch *gdbarch, struct bfd &cbfd, x86_xsave_layout &xsave_layout)
{
gdb_assert (gdbarch != NULL);
gdb_assert (gdbarch->core_read_x86_xsave_layout != NULL);
if (gdbarch_debug >= 2)
gdb_printf (gdb_stdlog, "gdbarch_core_read_x86_xsave_layout called\n");
- return gdbarch->core_read_x86_xsave_layout (gdbarch, xsave_layout);
+ return gdbarch->core_read_x86_xsave_layout (gdbarch, cbfd, xsave_layout);
}
void
@@ -5155,13 +5163,13 @@ gdbarch_core_info_proc_p (struct gdbarch *gdbarch)
}
void
-gdbarch_core_info_proc (struct gdbarch *gdbarch, const char *args, enum info_proc_what what)
+gdbarch_core_info_proc (struct gdbarch *gdbarch, struct bfd *cbfd, const char *args, enum info_proc_what what)
{
gdb_assert (gdbarch != NULL);
gdb_assert (gdbarch->core_info_proc != NULL);
if (gdbarch_debug >= 2)
gdb_printf (gdb_stdlog, "gdbarch_core_info_proc called\n");
- gdbarch->core_info_proc (gdbarch, args, what);
+ gdbarch->core_info_proc (gdbarch, cbfd, args, what);
}
void
@@ -5171,23 +5179,6 @@ set_gdbarch_core_info_proc (struct gdbarch *gdbarch,
gdbarch->core_info_proc = core_info_proc;
}
-void
-gdbarch_iterate_over_objfiles_in_search_order (struct gdbarch *gdbarch, iterate_over_objfiles_in_search_order_cb_ftype cb, struct objfile *current_objfile)
-{
- gdb_assert (gdbarch != NULL);
- gdb_assert (gdbarch->iterate_over_objfiles_in_search_order != NULL);
- if (gdbarch_debug >= 2)
- gdb_printf (gdb_stdlog, "gdbarch_iterate_over_objfiles_in_search_order called\n");
- gdbarch->iterate_over_objfiles_in_search_order (gdbarch, cb, current_objfile);
-}
-
-void
-set_gdbarch_iterate_over_objfiles_in_search_order (struct gdbarch *gdbarch,
- gdbarch_iterate_over_objfiles_in_search_order_ftype iterate_over_objfiles_in_search_order)
-{
- gdbarch->iterate_over_objfiles_in_search_order = iterate_over_objfiles_in_search_order;
-}
-
struct ravenscar_arch_ops *
gdbarch_ravenscar_ops (struct gdbarch *gdbarch)
{
@@ -5551,3 +5542,44 @@ set_gdbarch_core_parse_exec_context (struct gdbarch *gdbarch,
{
gdbarch->core_parse_exec_context = core_parse_exec_context;
}
+
+bool
+gdbarch_shadow_stack_push_p (struct gdbarch *gdbarch)
+{
+ gdb_assert (gdbarch != NULL);
+ return gdbarch->shadow_stack_push != NULL;
+}
+
+void
+gdbarch_shadow_stack_push (struct gdbarch *gdbarch, CORE_ADDR new_addr, regcache *regcache)
+{
+ gdb_assert (gdbarch != NULL);
+ gdb_assert (gdbarch->shadow_stack_push != NULL);
+ if (gdbarch_debug >= 2)
+ gdb_printf (gdb_stdlog, "gdbarch_shadow_stack_push called\n");
+ gdbarch->shadow_stack_push (gdbarch, new_addr, regcache);
+}
+
+void
+set_gdbarch_shadow_stack_push (struct gdbarch *gdbarch,
+ gdbarch_shadow_stack_push_ftype shadow_stack_push)
+{
+ gdbarch->shadow_stack_push = shadow_stack_push;
+}
+
+std::optional<CORE_ADDR>
+gdbarch_get_shadow_stack_pointer (struct gdbarch *gdbarch, regcache *regcache, bool &shadow_stack_enabled)
+{
+ gdb_assert (gdbarch != NULL);
+ gdb_assert (gdbarch->get_shadow_stack_pointer != NULL);
+ if (gdbarch_debug >= 2)
+ gdb_printf (gdb_stdlog, "gdbarch_get_shadow_stack_pointer called\n");
+ return gdbarch->get_shadow_stack_pointer (gdbarch, regcache, shadow_stack_enabled);
+}
+
+void
+set_gdbarch_get_shadow_stack_pointer (struct gdbarch *gdbarch,
+ gdbarch_get_shadow_stack_pointer_ftype get_shadow_stack_pointer)
+{
+ gdbarch->get_shadow_stack_pointer = get_shadow_stack_pointer;
+}
diff --git a/gdb/gdbarch-gen.h b/gdb/gdbarch-gen.h
index 281b97b..24fa8ba 100644
--- a/gdb/gdbarch-gen.h
+++ b/gdb/gdbarch-gen.h
@@ -792,11 +792,11 @@ extern void set_gdbarch_memtag_granule_size (struct gdbarch *gdbarch, CORE_ADDR
the condition is true, so that we ensure forward progress when stepping
past a conditional branch to self. */
-extern bool gdbarch_software_single_step_p (struct gdbarch *gdbarch);
+extern bool gdbarch_get_next_pcs_p (struct gdbarch *gdbarch);
-typedef std::vector<CORE_ADDR> (gdbarch_software_single_step_ftype) (struct regcache *regcache);
-extern std::vector<CORE_ADDR> gdbarch_software_single_step (struct gdbarch *gdbarch, struct regcache *regcache);
-extern void set_gdbarch_software_single_step (struct gdbarch *gdbarch, gdbarch_software_single_step_ftype *software_single_step);
+typedef std::vector<CORE_ADDR> (gdbarch_get_next_pcs_ftype) (struct regcache *regcache);
+extern std::vector<CORE_ADDR> gdbarch_get_next_pcs (struct gdbarch *gdbarch, struct regcache *regcache);
+extern void set_gdbarch_get_next_pcs (struct gdbarch *gdbarch, gdbarch_get_next_pcs_ftype *get_next_pcs);
/* Return non-zero if the processor is executing a delay slot and a
further single-step is needed before the instruction finishes. */
@@ -820,8 +820,8 @@ extern void set_gdbarch_skip_trampoline_code (struct gdbarch *gdbarch, gdbarch_s
/* Return a newly-allocated solib_ops object capable of providing the solibs for this architecture. */
-typedef solib_ops_up (gdbarch_make_solib_ops_ftype) ();
-extern solib_ops_up gdbarch_make_solib_ops (struct gdbarch *gdbarch);
+typedef solib_ops_up (gdbarch_make_solib_ops_ftype) (program_space *pspace);
+extern solib_ops_up gdbarch_make_solib_ops (struct gdbarch *gdbarch, program_space *pspace);
extern void set_gdbarch_make_solib_ops (struct gdbarch *gdbarch, gdbarch_make_solib_ops_ftype *make_solib_ops);
/* If in_solib_dynsym_resolve_code() returns true, and SKIP_SOLIB_RESOLVER
@@ -1029,8 +1029,8 @@ extern void set_gdbarch_decode_memtag_section (struct gdbarch *gdbarch, gdbarch_
extern bool gdbarch_core_xfer_shared_libraries_p (struct gdbarch *gdbarch);
-typedef ULONGEST (gdbarch_core_xfer_shared_libraries_ftype) (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len);
-extern ULONGEST gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len);
+typedef ULONGEST (gdbarch_core_xfer_shared_libraries_ftype) (struct gdbarch *gdbarch, struct bfd &cbfd, gdb_byte *readbuf, ULONGEST offset, ULONGEST len);
+extern ULONGEST gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, struct bfd &cbfd, gdb_byte *readbuf, ULONGEST offset, ULONGEST len);
extern void set_gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdbarch_core_xfer_shared_libraries_ftype *core_xfer_shared_libraries);
/* Read offset OFFSET of TARGET_OBJECT_LIBRARIES_AIX formatted shared
@@ -1039,8 +1039,8 @@ extern void set_gdbarch_core_xfer_shared_libraries (struct gdbarch *gdbarch, gdb
extern bool gdbarch_core_xfer_shared_libraries_aix_p (struct gdbarch *gdbarch);
-typedef ULONGEST (gdbarch_core_xfer_shared_libraries_aix_ftype) (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len);
-extern ULONGEST gdbarch_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len);
+typedef ULONGEST (gdbarch_core_xfer_shared_libraries_aix_ftype) (struct gdbarch *gdbarch, struct bfd &cbfd, gdb_byte *readbuf, ULONGEST offset, ULONGEST len);
+extern ULONGEST gdbarch_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch, struct bfd &cbfd, gdb_byte *readbuf, ULONGEST offset, ULONGEST len);
extern void set_gdbarch_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch, gdbarch_core_xfer_shared_libraries_aix_ftype *core_xfer_shared_libraries_aix);
/* How the core target converts a PTID from a core file to a string. */
@@ -1051,31 +1051,31 @@ typedef std::string (gdbarch_core_pid_to_str_ftype) (struct gdbarch *gdbarch, pt
extern std::string gdbarch_core_pid_to_str (struct gdbarch *gdbarch, ptid_t ptid);
extern void set_gdbarch_core_pid_to_str (struct gdbarch *gdbarch, gdbarch_core_pid_to_str_ftype *core_pid_to_str);
-/* How the core target extracts the name of a thread from a core file. */
+/* How the core target extracts the name of a thread from core file CBFD. */
extern bool gdbarch_core_thread_name_p (struct gdbarch *gdbarch);
-typedef const char * (gdbarch_core_thread_name_ftype) (struct gdbarch *gdbarch, struct thread_info *thr);
-extern const char * gdbarch_core_thread_name (struct gdbarch *gdbarch, struct thread_info *thr);
+typedef const char * (gdbarch_core_thread_name_ftype) (struct gdbarch *gdbarch, struct bfd &cbfd, struct thread_info *thr);
+extern const char * gdbarch_core_thread_name (struct gdbarch *gdbarch, struct bfd &cbfd, struct thread_info *thr);
extern void set_gdbarch_core_thread_name (struct gdbarch *gdbarch, gdbarch_core_thread_name_ftype *core_thread_name);
/* Read offset OFFSET of TARGET_OBJECT_SIGNAL_INFO signal information
- from core file into buffer READBUF with length LEN. Return the number
+ from core file CBFD into buffer READBUF with length LEN. Return the number
of bytes read (zero indicates EOF, a negative value indicates failure). */
extern bool gdbarch_core_xfer_siginfo_p (struct gdbarch *gdbarch);
-typedef LONGEST (gdbarch_core_xfer_siginfo_ftype) (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len);
-extern LONGEST gdbarch_core_xfer_siginfo (struct gdbarch *gdbarch, gdb_byte *readbuf, ULONGEST offset, ULONGEST len);
+typedef LONGEST (gdbarch_core_xfer_siginfo_ftype) (struct gdbarch *gdbarch, struct bfd &cbfd, gdb_byte *readbuf, ULONGEST offset, ULONGEST len);
+extern LONGEST gdbarch_core_xfer_siginfo (struct gdbarch *gdbarch, struct bfd &cbfd, gdb_byte *readbuf, ULONGEST offset, ULONGEST len);
extern void set_gdbarch_core_xfer_siginfo (struct gdbarch *gdbarch, gdbarch_core_xfer_siginfo_ftype *core_xfer_siginfo);
-/* Read x86 XSAVE layout information from core file into XSAVE_LAYOUT.
+/* Read x86 XSAVE layout information from core file CBFD into XSAVE_LAYOUT.
Returns true if the layout was read successfully. */
extern bool gdbarch_core_read_x86_xsave_layout_p (struct gdbarch *gdbarch);
-typedef bool (gdbarch_core_read_x86_xsave_layout_ftype) (struct gdbarch *gdbarch, x86_xsave_layout &xsave_layout);
-extern bool gdbarch_core_read_x86_xsave_layout (struct gdbarch *gdbarch, x86_xsave_layout &xsave_layout);
+typedef bool (gdbarch_core_read_x86_xsave_layout_ftype) (struct gdbarch *gdbarch, struct bfd &cbfd, x86_xsave_layout &xsave_layout);
+extern bool gdbarch_core_read_x86_xsave_layout (struct gdbarch *gdbarch, struct bfd &cbfd, x86_xsave_layout &xsave_layout);
extern void set_gdbarch_core_read_x86_xsave_layout (struct gdbarch *gdbarch, gdbarch_core_read_x86_xsave_layout_ftype *core_read_x86_xsave_layout);
/* BFD target to use when generating a core file. */
@@ -1148,7 +1148,7 @@ extern void set_gdbarch_displaced_step_copy_insn (struct gdbarch *gdbarch, gdbar
the displaced instruction buffer).
The default implementation returns false on all targets that provide a
- gdbarch_software_single_step routine, and true otherwise. */
+ gdbarch_get_next_pcs routine, and true otherwise. */
typedef bool (gdbarch_displaced_step_hw_singlestep_ftype) (struct gdbarch *gdbarch);
extern bool gdbarch_displaced_step_hw_singlestep (struct gdbarch *gdbarch);
@@ -1626,27 +1626,14 @@ extern void set_gdbarch_info_proc (struct gdbarch *gdbarch, gdbarch_info_proc_ft
/* Implement the "info proc" command for core files. Note that there
are two "info_proc"-like methods on gdbarch -- one for core files,
- one for live targets. */
+ one for live targets. CBFD is the core file being read from. */
extern bool gdbarch_core_info_proc_p (struct gdbarch *gdbarch);
-typedef void (gdbarch_core_info_proc_ftype) (struct gdbarch *gdbarch, const char *args, enum info_proc_what what);
-extern void gdbarch_core_info_proc (struct gdbarch *gdbarch, const char *args, enum info_proc_what what);
+typedef void (gdbarch_core_info_proc_ftype) (struct gdbarch *gdbarch, struct bfd *cbfd, const char *args, enum info_proc_what what);
+extern void gdbarch_core_info_proc (struct gdbarch *gdbarch, struct bfd *cbfd, const char *args, enum info_proc_what what);
extern void set_gdbarch_core_info_proc (struct gdbarch *gdbarch, gdbarch_core_info_proc_ftype *core_info_proc);
-/* Iterate over all objfiles in the order that makes the most sense
- for the architecture to make global symbol searches.
-
- CB is a callback function passed an objfile to be searched. The iteration stops
- if this function returns nonzero.
-
- If not NULL, CURRENT_OBJFILE corresponds to the objfile being
- inspected when the symbol search was requested. */
-
-typedef void (gdbarch_iterate_over_objfiles_in_search_order_ftype) (struct gdbarch *gdbarch, iterate_over_objfiles_in_search_order_cb_ftype cb, struct objfile *current_objfile);
-extern void gdbarch_iterate_over_objfiles_in_search_order (struct gdbarch *gdbarch, iterate_over_objfiles_in_search_order_cb_ftype cb, struct objfile *current_objfile);
-extern void set_gdbarch_iterate_over_objfiles_in_search_order (struct gdbarch *gdbarch, gdbarch_iterate_over_objfiles_in_search_order_ftype *iterate_over_objfiles_in_search_order);
-
/* Ravenscar arch-dependent ops. */
extern struct ravenscar_arch_ops * gdbarch_ravenscar_ops (struct gdbarch *gdbarch);
@@ -1802,3 +1789,31 @@ extern void set_gdbarch_use_target_description_from_corefile_notes (struct gdbar
typedef core_file_exec_context (gdbarch_core_parse_exec_context_ftype) (struct gdbarch *gdbarch, bfd *cbfd);
extern core_file_exec_context gdbarch_core_parse_exec_context (struct gdbarch *gdbarch, bfd *cbfd);
extern void set_gdbarch_core_parse_exec_context (struct gdbarch *gdbarch, gdbarch_core_parse_exec_context_ftype *core_parse_exec_context);
+
+/* Some targets support special hardware-assisted control-flow protection
+ technologies. For example, the Intel Control-Flow Enforcement Technology
+ (Intel CET) on x86 provides a shadow stack and indirect branch tracking.
+ To enable shadow stack support for inferior calls the shadow_stack_push
+ gdbarch hook has to be provided. The get_shadow_stack_pointer gdbarch
+ hook has to be provided to enable displaced stepping.
+
+ Push NEW_ADDR to the shadow stack and update the shadow stack pointer. */
+
+extern bool gdbarch_shadow_stack_push_p (struct gdbarch *gdbarch);
+
+typedef void (gdbarch_shadow_stack_push_ftype) (struct gdbarch *gdbarch, CORE_ADDR new_addr, regcache *regcache);
+extern void gdbarch_shadow_stack_push (struct gdbarch *gdbarch, CORE_ADDR new_addr, regcache *regcache);
+extern void set_gdbarch_shadow_stack_push (struct gdbarch *gdbarch, gdbarch_shadow_stack_push_ftype *shadow_stack_push);
+
+/* If possible, return the shadow stack pointer. If the shadow stack
+ feature is enabled then set SHADOW_STACK_ENABLED to true, otherwise
+ set SHADOW_STACK_ENABLED to false. This hook has to be provided to enable
+ displaced stepping for shadow stack enabled programs.
+ On some architectures, the shadow stack pointer is available even if the
+ feature is disabled. So dependent on the target, an implementation of
+ this function may return a valid shadow stack pointer, but set
+ SHADOW_STACK_ENABLED to false. */
+
+typedef std::optional<CORE_ADDR> (gdbarch_get_shadow_stack_pointer_ftype) (struct gdbarch *gdbarch, regcache *regcache, bool &shadow_stack_enabled);
+extern std::optional<CORE_ADDR> gdbarch_get_shadow_stack_pointer (struct gdbarch *gdbarch, regcache *regcache, bool &shadow_stack_enabled);
+extern void set_gdbarch_get_shadow_stack_pointer (struct gdbarch *gdbarch, gdbarch_get_shadow_stack_pointer_ftype *get_shadow_stack_pointer);
diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h
index 6accbd2..2049761 100644
--- a/gdb/gdbarch.h
+++ b/gdb/gdbarch.h
@@ -75,12 +75,6 @@ struct gdbarch_tdep_base
using gdbarch_tdep_up = std::unique_ptr<gdbarch_tdep_base>;
-/* Callback type for the 'iterate_over_objfiles_in_search_order'
- gdbarch method. */
-
-using iterate_over_objfiles_in_search_order_cb_ftype
- = gdb::function_view<bool(objfile *)>;
-
/* Callback type for regset section iterators. The callback usually
invokes the REGSET's supply or collect method, to which it must
pass a buffer - for collects this buffer will need to be created using
diff --git a/gdb/gdbarch_components.py b/gdb/gdbarch_components.py
index 91c867e..3820ae3 100644
--- a/gdb/gdbarch_components.py
+++ b/gdb/gdbarch_components.py
@@ -1395,7 +1395,7 @@ the condition is true, so that we ensure forward progress when stepping
past a conditional branch to self.
""",
type="std::vector<CORE_ADDR>",
- name="software_single_step",
+ name="get_next_pcs",
params=[("struct regcache *", "regcache")],
predicate=True,
)
@@ -1435,7 +1435,7 @@ Function(
comment="Return a newly-allocated solib_ops object capable of providing the solibs for this architecture.",
type="solib_ops_up",
name="make_solib_ops",
- params=[],
+ params=[("program_space *", "pspace")],
predefault="make_target_solib_ops",
invalid=False,
)
@@ -1738,7 +1738,12 @@ failed, otherwise, return the red length of READBUF.
""",
type="ULONGEST",
name="core_xfer_shared_libraries",
- params=[("gdb_byte *", "readbuf"), ("ULONGEST", "offset"), ("ULONGEST", "len")],
+ params=[
+ ("struct bfd &", "cbfd"),
+ ("gdb_byte *", "readbuf"),
+ ("ULONGEST", "offset"),
+ ("ULONGEST", "len"),
+ ],
predicate=True,
)
@@ -1750,7 +1755,12 @@ Return the number of bytes read (zero indicates failure).
""",
type="ULONGEST",
name="core_xfer_shared_libraries_aix",
- params=[("gdb_byte *", "readbuf"), ("ULONGEST", "offset"), ("ULONGEST", "len")],
+ params=[
+ ("struct bfd &", "cbfd"),
+ ("gdb_byte *", "readbuf"),
+ ("ULONGEST", "offset"),
+ ("ULONGEST", "len"),
+ ],
predicate=True,
)
@@ -1766,34 +1776,39 @@ How the core target converts a PTID from a core file to a string.
Method(
comment="""
-How the core target extracts the name of a thread from a core file.
+How the core target extracts the name of a thread from core file CBFD.
""",
type="const char *",
name="core_thread_name",
- params=[("struct thread_info *", "thr")],
+ params=[("struct bfd &", "cbfd"), ("struct thread_info *", "thr")],
predicate=True,
)
Method(
comment="""
Read offset OFFSET of TARGET_OBJECT_SIGNAL_INFO signal information
-from core file into buffer READBUF with length LEN. Return the number
+from core file CBFD into buffer READBUF with length LEN. Return the number
of bytes read (zero indicates EOF, a negative value indicates failure).
""",
type="LONGEST",
name="core_xfer_siginfo",
- params=[("gdb_byte *", "readbuf"), ("ULONGEST", "offset"), ("ULONGEST", "len")],
+ params=[
+ ("struct bfd &", "cbfd"),
+ ("gdb_byte *", "readbuf"),
+ ("ULONGEST", "offset"),
+ ("ULONGEST", "len"),
+ ],
predicate=True,
)
Method(
comment="""
-Read x86 XSAVE layout information from core file into XSAVE_LAYOUT.
+Read x86 XSAVE layout information from core file CBFD into XSAVE_LAYOUT.
Returns true if the layout was read successfully.
""",
type="bool",
name="core_read_x86_xsave_layout",
- params=[("x86_xsave_layout &", "xsave_layout")],
+ params=[("struct bfd &", "cbfd"), ("x86_xsave_layout &", "xsave_layout")],
predicate=True,
)
@@ -1891,7 +1906,7 @@ receive control again (e.g. by placing a software breakpoint instruction into
the displaced instruction buffer).
The default implementation returns false on all targets that provide a
-gdbarch_software_single_step routine, and true otherwise.
+gdbarch_get_next_pcs routine, and true otherwise.
""",
type="bool",
name="displaced_step_hw_singlestep",
@@ -2554,33 +2569,16 @@ Method(
comment="""
Implement the "info proc" command for core files. Note that there
are two "info_proc"-like methods on gdbarch -- one for core files,
-one for live targets.
+one for live targets. CBFD is the core file being read from.
""",
type="void",
name="core_info_proc",
- params=[("const char *", "args"), ("enum info_proc_what", "what")],
- predicate=True,
-)
-
-Method(
- comment="""
-Iterate over all objfiles in the order that makes the most sense
-for the architecture to make global symbol searches.
-
-CB is a callback function passed an objfile to be searched. The iteration stops
-if this function returns nonzero.
-
-If not NULL, CURRENT_OBJFILE corresponds to the objfile being
-inspected when the symbol search was requested.
-""",
- type="void",
- name="iterate_over_objfiles_in_search_order",
params=[
- ("iterate_over_objfiles_in_search_order_cb_ftype", "cb"),
- ("struct objfile *", "current_objfile"),
+ ("struct bfd *", "cbfd"),
+ ("const char *", "args"),
+ ("enum info_proc_what", "what"),
],
- predefault="default_iterate_over_objfiles_in_search_order",
- invalid=False,
+ predicate=True,
)
Value(
@@ -2848,3 +2846,38 @@ which all assume current_inferior() is the one to read from.
predefault="default_core_parse_exec_context",
invalid=False,
)
+
+Method(
+ comment="""
+Some targets support special hardware-assisted control-flow protection
+technologies. For example, the Intel Control-Flow Enforcement Technology
+(Intel CET) on x86 provides a shadow stack and indirect branch tracking.
+To enable shadow stack support for inferior calls the shadow_stack_push
+gdbarch hook has to be provided. The get_shadow_stack_pointer gdbarch
+hook has to be provided to enable displaced stepping.
+
+Push NEW_ADDR to the shadow stack and update the shadow stack pointer.
+""",
+ type="void",
+ name="shadow_stack_push",
+ params=[("CORE_ADDR", "new_addr"), ("regcache *", "regcache")],
+ predicate=True,
+)
+
+Method(
+ comment="""
+If possible, return the shadow stack pointer. If the shadow stack
+feature is enabled then set SHADOW_STACK_ENABLED to true, otherwise
+set SHADOW_STACK_ENABLED to false. This hook has to be provided to enable
+displaced stepping for shadow stack enabled programs.
+On some architectures, the shadow stack pointer is available even if the
+feature is disabled. So dependent on the target, an implementation of
+this function may return a valid shadow stack pointer, but set
+SHADOW_STACK_ENABLED to false.
+""",
+ type="std::optional<CORE_ADDR>",
+ name="get_shadow_stack_pointer",
+ params=[("regcache *", "regcache"), ("bool &", "shadow_stack_enabled")],
+ predefault="default_get_shadow_stack_pointer",
+ invalid=False,
+)
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
index 14a903b..24e6d0b 100644
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -1080,10 +1080,10 @@ get_discrete_low_bound (struct type *type)
entries. */
LONGEST low = type->field (0).loc_enumval ();
- for (int i = 0; i < type->num_fields (); i++)
+ for (const auto &field : type->fields ())
{
- if (type->field (i).loc_enumval () < low)
- low = type->field (i).loc_enumval ();
+ if (field.loc_enumval () < low)
+ low = field.loc_enumval ();
}
return low;
@@ -1147,10 +1147,10 @@ get_discrete_high_bound (struct type *type)
entries. */
LONGEST high = type->field (0).loc_enumval ();
- for (int i = 0; i < type->num_fields (); i++)
+ for (const auto &field : type->fields ())
{
- if (type->field (i).loc_enumval () > high)
- high = type->field (i).loc_enumval ();
+ if (field.loc_enumval () > high)
+ high = field.loc_enumval ();
}
return high;
@@ -1602,15 +1602,15 @@ smash_to_methodptr_type (struct type *type, struct type *to_type)
void
smash_to_method_type (struct type *type, struct type *self_type,
- struct type *to_type, struct field *args,
- int nargs, int varargs)
+ struct type *to_type, gdb::array_view<struct field> args,
+ int varargs)
{
smash_type (type);
type->set_code (TYPE_CODE_METHOD);
type->set_target_type (to_type);
set_type_self_type (type, self_type);
- type->set_fields (args);
- type->set_num_fields (nargs);
+ type->set_fields (args.data ());
+ type->set_num_fields (args.size ());
if (varargs)
type->set_has_varargs (true);
@@ -2494,23 +2494,22 @@ resolve_dynamic_union (struct type *type,
const frame_info_ptr &frame)
{
struct type *resolved_type;
- int i;
unsigned int max_len = 0;
gdb_assert (type->code () == TYPE_CODE_UNION);
resolved_type = copy_type (type);
resolved_type->copy_fields (type);
- for (i = 0; i < resolved_type->num_fields (); ++i)
+ for (auto &field : resolved_type->fields ())
{
struct type *t;
- if (type->field (i).is_static ())
+ if (field.is_static ())
continue;
- t = resolve_dynamic_type_internal (resolved_type->field (i).type (),
- addr_stack, frame, false);
- resolved_type->field (i).set_type (t);
+ t = resolve_dynamic_type_internal (field.type (), addr_stack,
+ frame, false);
+ field.set_type (t);
struct type *real_type = check_typedef (t);
if (real_type->length () > max_len)
@@ -2791,7 +2790,6 @@ resolve_dynamic_struct (struct type *type,
const frame_info_ptr &frame)
{
struct type *resolved_type;
- int i;
unsigned resolved_type_bit_length = 0;
gdb_assert (type->code () == TYPE_CODE_STRUCT);
@@ -2812,22 +2810,21 @@ resolve_dynamic_struct (struct type *type,
resolved_type->copy_fields (type);
}
- for (i = 0; i < resolved_type->num_fields (); ++i)
+ for (auto &field : resolved_type->fields ())
{
unsigned new_bit_length;
- if (resolved_type->field (i).is_static ())
+ if (field.is_static ())
continue;
- resolve_dynamic_field (resolved_type->field (i), addr_stack, frame);
+ resolve_dynamic_field (field, addr_stack, frame);
- new_bit_length = resolved_type->field (i).loc_bitpos ();
- if (resolved_type->field (i).bitsize () != 0)
- new_bit_length += resolved_type->field (i).bitsize ();
+ new_bit_length = field.loc_bitpos ();
+ if (field.bitsize () != 0)
+ new_bit_length += field.bitsize ();
else
{
- struct type *real_type
- = check_typedef (resolved_type->field (i).type ());
+ struct type *real_type = check_typedef (field.type ());
new_bit_length += (real_type->length () * TARGET_CHAR_BIT);
}
@@ -3394,7 +3391,8 @@ check_stub_method (struct type *type, int method_id, int signature_id)
/* MTYPE may currently be a function (TYPE_CODE_FUNC).
We want a method (TYPE_CODE_METHOD). */
smash_to_method_type (mtype, type, mtype->target_type (),
- argtypes, argcount, p[-2] == '.');
+ gdb::make_array_view (argtypes, argcount),
+ p[-2] == '.');
mtype->set_is_stub (false);
TYPE_FN_FIELD_STUB (f, signature_id) = 0;
}
@@ -3698,12 +3696,12 @@ type_align (struct type *type)
case TYPE_CODE_UNION:
{
int number_of_non_static_fields = 0;
- for (unsigned i = 0; i < type->num_fields (); ++i)
+ for (const auto &field : type->fields ())
{
- if (!type->field (i).is_static ())
+ if (!field.is_static ())
{
number_of_non_static_fields++;
- ULONGEST f_align = type_align (type->field (i).type ());
+ ULONGEST f_align = type_align (field.type ());
if (f_align == 0)
{
/* Don't pretend we know something we don't. */
@@ -5038,19 +5036,14 @@ rank_one_type (struct type *parm, struct type *arg, struct value *value)
situation. */
static void
-print_args (struct field *args, int nargs, int spaces)
+print_args (gdb::array_view<struct field> args, int spaces)
{
- if (args != NULL)
+ for (int i = 0; i < args.size (); i++)
{
- int i;
-
- for (i = 0; i < nargs; i++)
- {
- gdb_printf
- ("%*s[%d] name '%s'\n", spaces, "", i,
- args[i].name () != NULL ? args[i].name () : "<NULL>");
- recursive_dump_type (args[i].type (), spaces + 2);
- }
+ gdb_printf
+ ("%*s[%d] name '%s'\n", spaces, "", i,
+ args[i].name () != NULL ? args[i].name () : "<NULL>");
+ recursive_dump_type (args[i].type (), spaces + 2);
}
}
@@ -5091,9 +5084,8 @@ dump_fn_fieldlists (struct type *type, int spaces)
gdb_printf
("%*sargs %s\n", spaces + 8, "",
- host_address_to_string (TYPE_FN_FIELD_ARGS (f, overload_idx)));
+ host_address_to_string (TYPE_FN_FIELD_ARGS (f, overload_idx).data ()));
print_args (TYPE_FN_FIELD_ARGS (f, overload_idx),
- TYPE_FN_FIELD_TYPE (f, overload_idx)->num_fields (),
spaces + 8 + 2);
gdb_printf
("%*sfcontext %s\n", spaces + 8, "",
@@ -5375,7 +5367,7 @@ recursive_dump_type (struct type *type, int spaces)
}
gdb_printf ("\n");
}
- gdb_printf ("%s\n", host_address_to_string (type->fields ()));
+ gdb_printf ("%s\n", host_address_to_string (type->fields ().data ()));
for (idx = 0; idx < type->num_fields (); idx++)
{
field &fld = type->field (idx);
@@ -5756,7 +5748,7 @@ append_composite_type_field_raw (struct type *t, const char *name,
struct field *f;
t->set_num_fields (t->num_fields () + 1);
- t->set_fields (XRESIZEVEC (struct field, t->fields (),
+ t->set_fields (XRESIZEVEC (struct field, t->fields ().data (),
t->num_fields ()));
f = &t->field (t->num_fields () - 1);
memset (f, 0, sizeof f[0]);
@@ -5907,7 +5899,7 @@ type::alloc_fields (unsigned int nfields, bool init)
return;
}
- size_t size = nfields * sizeof (*this->fields ());
+ size_t size = nfields * sizeof (struct field);
struct field *fields
= (struct field *) (init
? TYPE_ZALLOC (this, size)
@@ -5926,8 +5918,8 @@ type::copy_fields (struct type *src)
if (nfields == 0)
return;
- size_t size = nfields * sizeof (*this->fields ());
- memcpy (this->fields (), src->fields (), size);
+ size_t size = nfields * sizeof (struct field);
+ memcpy (this->fields ().data (), src->fields ().data (), size);
}
/* See gdbtypes.h. */
@@ -5940,8 +5932,8 @@ type::copy_fields (std::vector<struct field> &src)
if (nfields == 0)
return;
- size_t size = nfields * sizeof (*this->fields ());
- memcpy (this->fields (), src.data (), size);
+ size_t size = nfields * sizeof (struct field);
+ memcpy (this->fields ().data (), src.data (), size);
}
/* See gdbtypes.h. */
diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
index 9e2efe9..75c77b3 100644
--- a/gdb/gdbtypes.h
+++ b/gdb/gdbtypes.h
@@ -1080,12 +1080,6 @@ struct type
this->main_type->m_nfields = num_fields;
}
- /* Get the fields array of this type. */
- struct field *fields () const
- {
- return this->main_type->flds_bnds.fields;
- }
-
/* Get the field at index IDX. */
struct field &field (int idx) const
{
@@ -1093,6 +1087,13 @@ struct type
return this->fields ()[idx];
}
+ /* Return an array view of the fields. */
+ gdb::array_view<struct field> fields () const
+ {
+ return gdb::make_array_view (this->main_type->flds_bnds.fields,
+ num_fields ());
+ }
+
/* Set the fields array of this type. */
void set_fields (struct field *fields)
{
@@ -2470,8 +2471,9 @@ extern struct type *lookup_memberptr_type (struct type *, struct type *);
extern struct type *lookup_methodptr_type (struct type *);
extern void smash_to_method_type (struct type *type, struct type *self_type,
- struct type *to_type, struct field *args,
- int nargs, int varargs);
+ struct type *to_type,
+ gdb::array_view<struct field> args,
+ int varargs);
extern void smash_to_memberptr_type (struct type *, struct type *,
struct type *);
diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c
index dd639fe..33391ba 100644
--- a/gdb/gnu-nat.c
+++ b/gdb/gnu-nat.c
@@ -50,7 +50,6 @@ extern "C"
}
-#include <ctype.h>
#include <setjmp.h>
#include <signal.h>
#include <sys/ptrace.h>
@@ -2926,7 +2925,7 @@ set_sig_thread_cmd (const char *args, int from_tty)
{
struct inf *inf = cur_inf ();
- if (!args || (!isdigit (*args) && strcmp (args, "none") != 0))
+ if (!args || (!c_isdigit (*args) && strcmp (args, "none") != 0))
error (_("Illegal argument to \"set signal-thread\" command.\n"
"Should be a thread ID, or \"none\"."));
diff --git a/gdb/gnu-v2-abi.c b/gdb/gnu-v2-abi.c
index 9246788..1fbc41d 100644
--- a/gdb/gnu-v2-abi.c
+++ b/gdb/gnu-v2-abi.c
@@ -26,7 +26,6 @@
#include "gdb-demangle.h"
#include "cp-abi.h"
#include "cp-support.h"
-#include <ctype.h>
static cp_abi_ops gnu_v2_abi_ops;
@@ -46,7 +45,7 @@ static enum ctor_kinds
gnuv2_is_constructor_name (const char *name)
{
if ((name[0] == '_' && name[1] == '_'
- && (isdigit (name[2]) || strchr ("Qt", name[2])))
+ && (c_isdigit (name[2]) || strchr ("Qt", name[2])))
|| startswith (name, "__ct__"))
return complete_object_ctor;
else
diff --git a/gdb/go-exp.y b/gdb/go-exp.y
index 8823503..5da8cef 100644
--- a/gdb/go-exp.y
+++ b/gdb/go-exp.y
@@ -51,7 +51,6 @@
%{
-#include <ctype.h>
#include "expression.h"
#include "value.h"
#include "parser-defs.h"
@@ -663,13 +662,13 @@ parse_number (struct parser_state *par_state,
/* Handle suffixes: 'f' for float32, 'l' for long double.
FIXME: This appears to be an extension -- do we want this? */
- if (len >= 1 && tolower (p[len - 1]) == 'f')
+ if (len >= 1 && c_tolower (p[len - 1]) == 'f')
{
putithere->typed_val_float.type
= builtin_go_types->builtin_float32;
len--;
}
- else if (len >= 1 && tolower (p[len - 1]) == 'l')
+ else if (len >= 1 && c_tolower (p[len - 1]) == 'l')
{
putithere->typed_val_float.type
= parse_type (par_state)->builtin_long_double;
@@ -1113,9 +1112,9 @@ lex_one_token (struct parser_state *par_state)
const char *p = &tokstart[1];
size_t len = strlen ("entry");
- while (isspace (*p))
+ while (c_isspace (*p))
p++;
- if (strncmp (p, "entry", len) == 0 && !isalnum (p[len])
+ if (strncmp (p, "entry", len) == 0 && !c_isalnum (p[len])
&& p[len] != '_')
{
par_state->lexptr = &p[len];
@@ -1290,7 +1289,7 @@ package_name_p (const char *name, const struct block *block)
&is_a_field_of_this).symbol;
if (sym
- && sym->aclass () == LOC_TYPEDEF
+ && sym->loc_class () == LOC_TYPEDEF
&& sym->type ()->code () == TYPE_CODE_MODULE)
return 1;
diff --git a/gdb/go-lang.c b/gdb/go-lang.c
index bad2ccf..23ffedb 100644
--- a/gdb/go-lang.c
+++ b/gdb/go-lang.c
@@ -41,7 +41,6 @@
#include "parser-defs.h"
#include "gdbarch.h"
-#include <ctype.h>
/* The main function in the main package. */
static const char GO_MAIN_MAIN[] = "main.main";
@@ -292,7 +291,7 @@ unpack_mangled_go_symbol (const char *mangled_name,
while (p > buf)
{
int current = *(const unsigned char *) --p;
- int current_is_digit = isdigit (current);
+ int current_is_digit = c_isdigit (current);
if (saw_digit)
{
diff --git a/gdb/go32-nat.c b/gdb/go32-nat.c
index 4d8e6c9..ab13b57 100644
--- a/gdb/go32-nat.c
+++ b/gdb/go32-nat.c
@@ -103,7 +103,6 @@
#include "cli/cli-utils.h"
#include "inf-child.h"
-#include <ctype.h>
#include <unistd.h>
#include <sys/utsname.h>
#include <io.h>
diff --git a/gdb/gstack-1.in b/gdb/gstack-1.in
index 25339d9..ac5e8d4 100755
--- a/gdb/gstack-1.in
+++ b/gdb/gstack-1.in
@@ -64,7 +64,7 @@ function print_version() {
while getopts hv-: OPT; do
if [ "$OPT" = "-" ]; then
OPT="${OPTARG%%=*}"
- OPTARG="${OPTARG#'$OPT'}"
+ OPTARG="${OPTARG#"$OPT"}"
OPTARG="${OPTARG#=}"
fi
@@ -132,6 +132,7 @@ EOF
)
# Run GDB and remove some unwanted noise.
+# shellcheck disable=SC2086
"$GDB" --quiet -nx $GDBARGS <<EOF |
set width 0
set height 0
diff --git a/gdb/guile/scm-cmd.c b/gdb/guile/scm-cmd.c
index 19fb742..ef4c9d6 100644
--- a/gdb/guile/scm-cmd.c
+++ b/gdb/guile/scm-cmd.c
@@ -20,7 +20,6 @@
/* See README file in this directory for implementation notes, coding
conventions, et.al. */
-#include <ctype.h>
#include "charset.h"
#include "cli/cli-cmds.h"
#include "cli/cli-decode.h"
diff --git a/gdb/guile/scm-symbol.c b/gdb/guile/scm-symbol.c
index 8c2ae24..1d3fb29 100644
--- a/gdb/guile/scm-symbol.c
+++ b/gdb/guile/scm-symbol.c
@@ -405,7 +405,7 @@ gdbscm_symbol_addr_class (SCM self)
= syscm_get_valid_symbol_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME);
const struct symbol *symbol = s_smob->symbol;
- return scm_from_int (symbol->aclass ());
+ return scm_from_int (symbol->loc_class ());
}
/* (symbol-argument? <gdb:symbol>) -> boolean */
@@ -428,11 +428,9 @@ gdbscm_symbol_constant_p (SCM self)
symbol_smob *s_smob
= syscm_get_valid_symbol_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME);
const struct symbol *symbol = s_smob->symbol;
- enum address_class theclass;
+ location_class loc_class = symbol->loc_class ();
- theclass = symbol->aclass ();
-
- return scm_from_bool (theclass == LOC_CONST || theclass == LOC_CONST_BYTES);
+ return scm_from_bool (loc_class == LOC_CONST || loc_class == LOC_CONST_BYTES);
}
/* (symbol-function? <gdb:symbol>) -> boolean */
@@ -443,11 +441,9 @@ gdbscm_symbol_function_p (SCM self)
symbol_smob *s_smob
= syscm_get_valid_symbol_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME);
const struct symbol *symbol = s_smob->symbol;
- enum address_class theclass;
-
- theclass = symbol->aclass ();
+ location_class loc_class = symbol->loc_class ();
- return scm_from_bool (theclass == LOC_BLOCK);
+ return scm_from_bool (loc_class == LOC_BLOCK);
}
/* (symbol-variable? <gdb:symbol>) -> boolean */
@@ -458,14 +454,12 @@ gdbscm_symbol_variable_p (SCM self)
symbol_smob *s_smob
= syscm_get_valid_symbol_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME);
const struct symbol *symbol = s_smob->symbol;
- enum address_class theclass;
-
- theclass = symbol->aclass ();
+ location_class loc_class = symbol->loc_class ();
return scm_from_bool (!symbol->is_argument ()
- && (theclass == LOC_LOCAL || theclass == LOC_REGISTER
- || theclass == LOC_STATIC || theclass == LOC_COMPUTED
- || theclass == LOC_OPTIMIZED_OUT));
+ && (loc_class == LOC_LOCAL || loc_class == LOC_REGISTER
+ || loc_class == LOC_STATIC || loc_class == LOC_COMPUTED
+ || loc_class == LOC_OPTIMIZED_OUT));
}
/* (symbol-needs-frame? <gdb:symbol>) -> boolean
@@ -526,7 +520,7 @@ gdbscm_symbol_value (SCM self, SCM rest)
if (!gdbscm_is_false (frame_scm))
f_smob = frscm_get_frame_smob_arg_unsafe (frame_scm, frame_pos, FUNC_NAME);
- if (symbol->aclass () == LOC_TYPEDEF)
+ if (symbol->loc_class () == LOC_TYPEDEF)
{
gdbscm_out_of_range_error (FUNC_NAME, SCM_ARG1, self,
_("cannot get the value of a typedef"));
diff --git a/gdb/guile/scm-type.c b/gdb/guile/scm-type.c
index 5114579..13676ce 100644
--- a/gdb/guile/scm-type.c
+++ b/gdb/guile/scm-type.c
@@ -510,7 +510,7 @@ tyscm_field_smob_to_field (field_smob *f_smob)
struct type *type = tyscm_field_smob_containing_type (f_smob);
/* This should be non-NULL by construction. */
- gdb_assert (type->fields () != NULL);
+ gdb_assert (type->fields ().data () != nullptr);
return &type->field (f_smob->field_num);
}
diff --git a/gdb/hppa-bsd-tdep.c b/gdb/hppa-bsd-tdep.c
index 715e794..b9cd61e 100644
--- a/gdb/hppa-bsd-tdep.c
+++ b/gdb/hppa-bsd-tdep.c
@@ -54,12 +54,12 @@ hppabsd_find_global_pointer (struct gdbarch *gdbarch, struct value *function)
faddr_sec = find_pc_section (faddr);
if (faddr_sec != NULL)
{
- for (struct obj_section *sec : faddr_sec->objfile->sections ())
+ for (struct obj_section &sec : faddr_sec->objfile->sections ())
{
- if (strcmp (sec->the_bfd_section->name, ".dynamic") == 0)
+ if (strcmp (sec.the_bfd_section->name, ".dynamic") == 0)
{
- CORE_ADDR addr = sec->addr ();
- CORE_ADDR endaddr = sec->endaddr ();
+ CORE_ADDR addr = sec.addr ();
+ CORE_ADDR endaddr = sec.endaddr ();
while (addr < endaddr)
{
@@ -81,7 +81,7 @@ hppabsd_find_global_pointer (struct gdbarch *gdbarch, struct value *function)
DT_PLTGOT, so we have to do it ourselves. */
pltgot = extract_unsigned_integer (buf, sizeof buf,
byte_order);
- pltgot += sec->objfile->text_section_offset ();
+ pltgot += sec.objfile->text_section_offset ();
return pltgot;
}
diff --git a/gdb/hppa-linux-tdep.c b/gdb/hppa-linux-tdep.c
index 2eb8d46..d0bb562 100644
--- a/gdb/hppa-linux-tdep.c
+++ b/gdb/hppa-linux-tdep.c
@@ -362,14 +362,14 @@ hppa_linux_find_global_pointer (struct gdbarch *gdbarch,
faddr_sect = find_pc_section (faddr);
if (faddr_sect != NULL)
{
- for (obj_section *osect : faddr_sect->objfile->sections ())
+ for (obj_section &osect : faddr_sect->objfile->sections ())
{
- if (strcmp (osect->the_bfd_section->name, ".dynamic") == 0)
+ if (strcmp (osect.the_bfd_section->name, ".dynamic") == 0)
{
CORE_ADDR addr, endaddr;
- addr = osect->addr ();
- endaddr = osect->endaddr ();
+ addr = osect.addr ();
+ endaddr = osect.endaddr ();
while (addr < endaddr)
{
diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c
index 61e6cb2..6f0cebe 100644
--- a/gdb/hppa-tdep.c
+++ b/gdb/hppa-tdep.c
@@ -920,12 +920,12 @@ hppa64_convert_code_addr_to_fptr (struct gdbarch *gdbarch, CORE_ADDR code)
if (!(sec->the_bfd_section->flags & SEC_CODE))
return code;
- for (obj_section *opd : sec->objfile->sections ())
+ for (obj_section &opd : sec->objfile->sections ())
{
- if (strcmp (opd->the_bfd_section->name, ".opd") == 0)
+ if (strcmp (opd.the_bfd_section->name, ".opd") == 0)
{
- for (CORE_ADDR addr = opd->addr ();
- addr < opd->endaddr ();
+ for (CORE_ADDR addr = opd.addr ();
+ addr < opd.endaddr ();
addr += 2 * 8)
{
ULONGEST opdaddr;
diff --git a/gdb/i386-fbsd-tdep.c b/gdb/i386-fbsd-tdep.c
index 827d53c..a32880e 100644
--- a/gdb/i386-fbsd-tdep.c
+++ b/gdb/i386-fbsd-tdep.c
@@ -274,11 +274,10 @@ i386_fbsd_core_read_xsave_info (bfd *abfd, x86_xsave_layout &layout)
/* See i386-fbsd-tdep.h. */
bool
-i386_fbsd_core_read_x86_xsave_layout (struct gdbarch *gdbarch,
+i386_fbsd_core_read_x86_xsave_layout (struct gdbarch *gdbarch, bfd &cbfd,
x86_xsave_layout &layout)
{
- return i386_fbsd_core_read_xsave_info (current_program_space->core_bfd (),
- layout) != 0;
+ return i386_fbsd_core_read_xsave_info (&cbfd, layout) != 0;
}
/* Implement the core_read_description gdbarch method. */
diff --git a/gdb/i386-fbsd-tdep.h b/gdb/i386-fbsd-tdep.h
index 70ad32f..acc5776 100644
--- a/gdb/i386-fbsd-tdep.h
+++ b/gdb/i386-fbsd-tdep.h
@@ -32,8 +32,9 @@
uint64_t i386_fbsd_core_read_xsave_info (bfd *abfd, x86_xsave_layout &layout);
/* Implement the core_read_x86_xsave_layout gdbarch method. */
-bool i386_fbsd_core_read_x86_xsave_layout (struct gdbarch *gdbarch,
- x86_xsave_layout &layout);
+extern bool i386_fbsd_core_read_x86_xsave_layout (struct gdbarch *gdbarch,
+ bfd &cbfd,
+ x86_xsave_layout &layout);
/* The format of the XSAVE extended area is determined by hardware.
Cores store the XSAVE extended area in a NT_X86_XSTATE note that
diff --git a/gdb/i386-linux-tdep.c b/gdb/i386-linux-tdep.c
index efbde6a..34e1391 100644
--- a/gdb/i386-linux-tdep.c
+++ b/gdb/i386-linux-tdep.c
@@ -1044,6 +1044,8 @@ int i386_linux_gregset_reg_offset[] =
-1, -1, -1, -1, -1, -1, -1, -1, /* k0 ... k7 (AVX512) */
-1, -1, -1, -1, -1, -1, -1, -1, /* zmm0 ... zmm7 (AVX512) */
-1, /* PKRU register */
+ -1, /* SSP register. */
+ -1, -1, /* fs/gs base registers. */
11 * 4, /* "orig_eax" */
};
@@ -1105,11 +1107,10 @@ i386_linux_core_read_xsave_info (bfd *abfd, x86_xsave_layout &layout)
/* See i386-linux-tdep.h. */
bool
-i386_linux_core_read_x86_xsave_layout (struct gdbarch *gdbarch,
+i386_linux_core_read_x86_xsave_layout (struct gdbarch *gdbarch, bfd &cbfd,
x86_xsave_layout &layout)
{
- return i386_linux_core_read_xsave_info (current_program_space->core_bfd (),
- layout) != 0;
+ return i386_linux_core_read_xsave_info (&cbfd, layout) != 0;
}
/* See arch/x86-linux-tdesc.h. */
@@ -1492,6 +1493,9 @@ i386_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
INIT_GDB_FILE (i386_linux_tdep)
{
+ gdb_assert (ARRAY_SIZE (i386_linux_gregset_reg_offset)
+ == I386_LINUX_NUM_REGS);
+
gdbarch_register_osabi (bfd_arch_i386, 0, GDB_OSABI_LINUX,
i386_linux_init_abi);
}
diff --git a/gdb/i386-linux-tdep.h b/gdb/i386-linux-tdep.h
index de98256..8a1a244 100644
--- a/gdb/i386-linux-tdep.h
+++ b/gdb/i386-linux-tdep.h
@@ -21,20 +21,29 @@
#define GDB_I386_LINUX_TDEP_H
#include "gdbsupport/x86-xstate.h"
+#include "i386-tdep.h"
-/* The Linux kernel pretends there is an additional "orig_eax"
- register. Since GDB needs access to that register to be able to
- properly restart system calls when necessary (see
- i386-linux-tdep.c) we need our own versions of a number of
- functions that deal with GDB's register cache. */
+/* Additional register numbers for i386 Linux, these are in addition to
+ the register numbers found in 'enum i386_regnum', see i386-tdep.h. */
-/* Register number for the "orig_eax" pseudo-register. If this
- pseudo-register contains a value >= 0 it is interpreted as the
- system call number that the kernel is supposed to restart. */
-#define I386_LINUX_ORIG_EAX_REGNUM (I386_PKRU_REGNUM + 1)
+enum i386_linux_regnum
+{
+ /* STOP! The values in this enum are numbered after the values in the
+ enum i386_regnum. New entries should be placed after the ORIG_EAX
+ entry. */
-/* Total number of registers for GNU/Linux. */
-#define I386_LINUX_NUM_REGS (I386_LINUX_ORIG_EAX_REGNUM + 1)
+ /* Register number for the "orig_eax" pseudo-register. GDB needs access
+ to this register to be able to properly restart system calls when
+ necessary (see i386-linux-tdep.c). If this pseudo-register contains a
+ value >= 0 it is interpreted as the system call number that the kernel
+ is supposed to restart. */
+ I386_LINUX_ORIG_EAX_REGNUM = I386_NUM_REGS,
+
+ /* Total number of registers for GNU/Linux. */
+ I386_LINUX_NUM_REGS
+
+ /* STOP! Add new entries before I386_LINUX_NUM_REGS. */
+};
/* Read the XSAVE extended state xcr0 value from the ABFD core file.
If it appears to be valid, return it and fill LAYOUT with values
@@ -47,6 +56,7 @@ extern uint64_t i386_linux_core_read_xsave_info (bfd *abfd,
/* Implement the core_read_x86_xsave_layout gdbarch method. */
extern bool i386_linux_core_read_x86_xsave_layout (struct gdbarch *gdbarch,
+ bfd &cbfd,
x86_xsave_layout &layout);
extern int i386_linux_gregset_reg_offset[];
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index 21a5a28..d3ad402 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -61,7 +61,6 @@
#include "stap-probe.h"
#include "user-regs.h"
#include "expression.h"
-#include <ctype.h>
#include <algorithm>
#include <unordered_set>
#include "producer.h"
@@ -897,6 +896,22 @@ i386_displaced_step_fixup (struct gdbarch *gdbarch,
displaced_debug_printf ("relocated return addr at %s to %s",
paddress (gdbarch, esp),
paddress (gdbarch, retaddr));
+
+ /* If shadow stack is enabled, we need to correct the return address
+ on the shadow stack too. */
+ bool shadow_stack_enabled;
+ std::optional<CORE_ADDR> ssp
+ = gdbarch_get_shadow_stack_pointer (gdbarch, regs,
+ shadow_stack_enabled);
+ if (shadow_stack_enabled)
+ {
+ gdb_assert (ssp.has_value ());
+ write_memory_unsigned_integer (*ssp, retaddr_len, byte_order,
+ retaddr);
+ displaced_debug_printf ("relocated shadow stack return addr at %s "
+ "to %s", paddress (gdbarch, *ssp),
+ paddress (gdbarch, retaddr));
+ }
}
}
@@ -3879,9 +3894,9 @@ int
i386_stap_is_single_operand (struct gdbarch *gdbarch, const char *s)
{
return (*s == '$' /* Literal number. */
- || (isdigit (*s) && s[1] == '(' && s[2] == '%') /* Displacement. */
+ || (c_isdigit (*s) && s[1] == '(' && s[2] == '%') /* Displacement. */
|| (*s == '(' && s[1] == '%') /* Register indirection. */
- || (*s == '%' && isalpha (s[1]))); /* Register access. */
+ || (*s == '%' && c_isalpha (s[1]))); /* Register access. */
}
/* Helper function for i386_stap_parse_special_token.
@@ -3898,7 +3913,7 @@ i386_stap_parse_special_token_triplet (struct gdbarch *gdbarch,
{
const char *s = p->arg;
- if (isdigit (*s) || *s == '-' || *s == '+')
+ if (c_isdigit (*s) || *s == '-' || *s == '+')
{
bool got_minus[3];
int i;
@@ -3916,7 +3931,7 @@ i386_stap_parse_special_token_triplet (struct gdbarch *gdbarch,
got_minus[0] = true;
}
- if (!isdigit ((unsigned char) *s))
+ if (!c_isdigit (*s))
return {};
displacements[0] = strtol (s, &endp, 10);
@@ -3937,7 +3952,7 @@ i386_stap_parse_special_token_triplet (struct gdbarch *gdbarch,
got_minus[1] = true;
}
- if (!isdigit ((unsigned char) *s))
+ if (!c_isdigit (*s))
return {};
displacements[1] = strtol (s, &endp, 10);
@@ -3958,7 +3973,7 @@ i386_stap_parse_special_token_triplet (struct gdbarch *gdbarch,
got_minus[2] = true;
}
- if (!isdigit ((unsigned char) *s))
+ if (!c_isdigit (*s))
return {};
displacements[2] = strtol (s, &endp, 10);
@@ -3970,7 +3985,7 @@ i386_stap_parse_special_token_triplet (struct gdbarch *gdbarch,
s += 2;
start = s;
- while (isalnum (*s))
+ while (c_isalnum (*s))
++s;
if (*s++ != ')')
@@ -4031,7 +4046,7 @@ i386_stap_parse_special_token_three_arg_disp (struct gdbarch *gdbarch,
{
const char *s = p->arg;
- if (isdigit (*s) || *s == '(' || *s == '-' || *s == '+')
+ if (c_isdigit (*s) || *s == '(' || *s == '-' || *s == '+')
{
bool offset_minus = false;
long offset = 0;
@@ -4049,10 +4064,10 @@ i386_stap_parse_special_token_three_arg_disp (struct gdbarch *gdbarch,
offset_minus = true;
}
- if (offset_minus && !isdigit (*s))
+ if (offset_minus && !c_isdigit (*s))
return {};
- if (isdigit (*s))
+ if (c_isdigit (*s))
{
char *endp;
@@ -4066,7 +4081,7 @@ i386_stap_parse_special_token_three_arg_disp (struct gdbarch *gdbarch,
s += 2;
start = s;
- while (isalnum (*s))
+ while (c_isalnum (*s))
++s;
if (*s != ',' || s[1] != '%')
@@ -4082,7 +4097,7 @@ i386_stap_parse_special_token_three_arg_disp (struct gdbarch *gdbarch,
s += 2;
start = s;
- while (isalnum (*s))
+ while (c_isalnum (*s))
++s;
len_index = s - start;
@@ -8580,7 +8595,8 @@ i386_validate_tdesc_p (i386_gdbarch_tdep *tdep,
const struct tdesc_feature *feature_core;
const struct tdesc_feature *feature_sse, *feature_avx, *feature_avx512,
- *feature_pkeys, *feature_segments;
+ *feature_pkeys, *feature_segments,
+ *feature_pl3_ssp;
int i, num_regs, valid_p;
if (! tdesc_has_registers (tdesc))
@@ -8606,6 +8622,9 @@ i386_validate_tdesc_p (i386_gdbarch_tdep *tdep,
/* Try PKEYS */
feature_pkeys = tdesc_find_feature (tdesc, "org.gnu.gdb.i386.pkeys");
+ /* Try Shadow Stack. */
+ feature_pl3_ssp = tdesc_find_feature (tdesc, "org.gnu.gdb.i386.pl3_ssp");
+
valid_p = 1;
/* The XCR0 bits. */
@@ -8721,6 +8740,15 @@ i386_validate_tdesc_p (i386_gdbarch_tdep *tdep,
tdep->pkeys_register_names[i]);
}
+ if (feature_pl3_ssp != nullptr)
+ {
+ if (tdep->ssp_regnum < 0)
+ tdep->ssp_regnum = I386_PL3_SSP_REGNUM;
+
+ valid_p &= tdesc_numbered_register (feature_pl3_ssp, tdesc_data,
+ tdep->ssp_regnum, "pl3_ssp");
+ }
+
return valid_p;
}
@@ -9097,23 +9125,25 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
-/* Return the target description for a specified XSAVE feature mask. */
+/* See i386-tdep.h. */
const struct target_desc *
-i386_target_description (uint64_t xcr0, bool segments)
+i386_target_description (uint64_t xstate_bv, bool segments)
{
static target_desc *i386_tdescs \
- [2/*SSE*/][2/*AVX*/][2/*AVX512*/][2/*PKRU*/][2/*segments*/] = {};
+ [2/*SSE*/][2/*AVX*/][2/*AVX512*/][2/*PKRU*/][2/*CET_U*/] \
+ [2/*segments*/] = {};
target_desc **tdesc;
- tdesc = &i386_tdescs[(xcr0 & X86_XSTATE_SSE) ? 1 : 0]
- [(xcr0 & X86_XSTATE_AVX) ? 1 : 0]
- [(xcr0 & X86_XSTATE_AVX512) ? 1 : 0]
- [(xcr0 & X86_XSTATE_PKRU) ? 1 : 0]
+ tdesc = &i386_tdescs[(xstate_bv & X86_XSTATE_SSE) ? 1 : 0]
+ [(xstate_bv & X86_XSTATE_AVX) ? 1 : 0]
+ [(xstate_bv & X86_XSTATE_AVX512) ? 1 : 0]
+ [(xstate_bv & X86_XSTATE_PKRU) ? 1 : 0]
+ [(xstate_bv & X86_XSTATE_CET_U) ? 1 : 0]
[segments ? 1 : 0];
if (*tdesc == NULL)
- *tdesc = i386_create_target_description (xcr0, false, segments);
+ *tdesc = i386_create_target_description (xstate_bv, false, segments);
return *tdesc;
}
diff --git a/gdb/i386-tdep.h b/gdb/i386-tdep.h
index e4895b1..cfe0d73 100644
--- a/gdb/i386-tdep.h
+++ b/gdb/i386-tdep.h
@@ -195,6 +195,10 @@ struct i386_gdbarch_tdep : gdbarch_tdep_base
/* PKEYS register names. */
const char * const *pkeys_register_names = nullptr;
+ /* Register number for the shadow stack pointer register. If supported,
+ set this to a value >= 0. */
+ int ssp_regnum = -1;
+
/* Register number for %fsbase. If supported, set this to a value
>= 0. */
int fsbase_regnum = -1;
@@ -297,8 +301,16 @@ enum i386_regnum
I386_ZMM0H_REGNUM, /* %zmm0h */
I386_ZMM7H_REGNUM = I386_ZMM0H_REGNUM + 7,
I386_PKRU_REGNUM,
+ I386_PL3_SSP_REGNUM,
I386_FSBASE_REGNUM,
- I386_GSBASE_REGNUM
+ I386_GSBASE_REGNUM,
+
+ I386_NUM_REGS, /* Calculated from last *_REGNUM entry. */
+ I386_SSE_NUM_REGS = I386_MXCSR_REGNUM + 1,
+ I386_AVX_NUM_REGS = I386_YMM7H_REGNUM + 1,
+ I386_AVX512_NUM_REGS = I386_ZMM7H_REGNUM + 1,
+ I386_PKEYS_NUM_REGS = I386_PKRU_REGNUM + 1
+ /* STOP! New *_REGNUM entries should be added before I386_NUM_REGS. */
};
/* Register numbers of RECORD_REGMAP. */
@@ -335,12 +347,6 @@ enum record_i386_regnum
#define I386_NUM_GREGS 16
#define I386_NUM_XREGS 9
-#define I386_SSE_NUM_REGS (I386_MXCSR_REGNUM + 1)
-#define I386_AVX_NUM_REGS (I386_YMM7H_REGNUM + 1)
-#define I386_AVX512_NUM_REGS (I386_ZMM7H_REGNUM + 1)
-#define I386_PKEYS_NUM_REGS (I386_PKRU_REGNUM + 1)
-#define I386_NUM_REGS (I386_GSBASE_REGNUM + 1)
-
/* Size of the largest register. */
#define I386_MAX_REGISTER_SIZE 64
@@ -454,8 +460,11 @@ extern int i386_svr4_reg_to_regnum (struct gdbarch *gdbarch, int reg);
extern int i386_process_record (struct gdbarch *gdbarch,
struct regcache *regcache, CORE_ADDR addr);
-extern const struct target_desc *i386_target_description (uint64_t xcr0,
- bool segments);
+
+/* Return the target description for the specified xsave features as
+ defined in XSTATE_BV and SEGMENTS. */
+extern const struct target_desc *i386_target_description
+ (uint64_t xstate_bv, bool segments);
/* Functions and variables exported from i386-bsd-tdep.c. */
diff --git a/gdb/ia64-linux-tdep.c b/gdb/ia64-linux-tdep.c
index 6afffee..8b4e1f9 100644
--- a/gdb/ia64-linux-tdep.c
+++ b/gdb/ia64-linux-tdep.c
@@ -29,7 +29,6 @@
#include "solib-svr4-linux.h"
#include "regset.h"
-#include <ctype.h>
/* The sigtramp code is in a non-readable (executable-only) region
of memory called the ``gate page''. The addresses in question
@@ -128,9 +127,9 @@ ia64_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
static int
ia64_linux_stap_is_single_operand (struct gdbarch *gdbarch, const char *s)
{
- return ((isdigit (*s) && s[1] == '[' && s[2] == 'r') /* Displacement. */
+ return ((c_isdigit (*s) && s[1] == '[' && s[2] == 'r') /* Displacement. */
|| *s == 'r' /* Register value. */
- || isdigit (*s)); /* Literal number. */
+ || c_isdigit (*s)); /* Literal number. */
}
/* Core file support. */
diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c
index 7c6526a..6cf2986 100644
--- a/gdb/ia64-tdep.c
+++ b/gdb/ia64-tdep.c
@@ -3432,12 +3432,12 @@ ia64_find_global_pointer_from_dynamic_section (struct gdbarch *gdbarch,
faddr_sect = find_pc_section (faddr);
if (faddr_sect != NULL)
{
- for (obj_section *osect : faddr_sect->objfile->sections ())
+ for (obj_section &osect : faddr_sect->objfile->sections ())
{
- if (strcmp (osect->the_bfd_section->name, ".dynamic") == 0)
+ if (strcmp (osect.the_bfd_section->name, ".dynamic") == 0)
{
- CORE_ADDR addr = osect->addr ();
- CORE_ADDR endaddr = osect->endaddr ();
+ CORE_ADDR addr = osect.addr ();
+ CORE_ADDR endaddr = osect.endaddr ();
while (addr < endaddr)
{
@@ -3513,12 +3513,12 @@ find_extant_func_descr (struct gdbarch *gdbarch, CORE_ADDR faddr)
if (faddr_sect != NULL)
{
- for (obj_section *osect : faddr_sect->objfile->sections ())
+ for (obj_section &osect : faddr_sect->objfile->sections ())
{
- if (strcmp (osect->the_bfd_section->name, ".opd") == 0)
+ if (strcmp (osect.the_bfd_section->name, ".opd") == 0)
{
- CORE_ADDR addr = osect->addr ();
- CORE_ADDR endaddr = osect->endaddr ();
+ CORE_ADDR addr = osect.addr ();
+ CORE_ADDR endaddr = osect.endaddr ();
while (addr < endaddr)
{
diff --git a/gdb/infcall.c b/gdb/infcall.c
index 2b5936d..c4b4c8f 100644
--- a/gdb/infcall.c
+++ b/gdb/infcall.c
@@ -887,9 +887,9 @@ run_inferior_call (std::unique_ptr<call_thread_fsm> sm,
call async_enable_stdin. This changes the prompt state to
PROMPT_NEEDED.
- If the previous prompt state was PROMPT_NEEDED, then as
- async_enable_stdin has already been called, nothing additional
- needs to be done here. */
+ If the previous prompt state was PROMPT_NEEDED, then async_enable_stdin
+ may or may not have been called, so do the same changes as in
+ async_enable_stdin. */
if (current_ui->prompt_state == PROMPT_BLOCKED)
{
if (call_thread->thread_fsm ()->finished_p ())
@@ -897,6 +897,12 @@ run_inferior_call (std::unique_ptr<call_thread_fsm> sm,
else
async_enable_stdin ();
}
+ else if (current_ui->prompt_state == PROMPT_NEEDED)
+ {
+ /* Copied from async_enable_stdin. */
+ target_terminal::ours ();
+ current_ui->register_file_handler ();
+ }
/* If the infcall does NOT succeed, normal_stop will have already
finished the thread states. However, on success, normal_stop
@@ -1448,10 +1454,16 @@ call_function_by_hand_dummy (struct value *function,
/* Create the dummy stack frame. Pass in the call dummy address as,
presumably, the ABI code knows where, in the call dummy, the
return address should be pointed. */
- sp = gdbarch_push_dummy_call (gdbarch, function,
- get_thread_regcache (inferior_thread ()),
- bp_addr, args.size (), args.data (),
- sp, return_method, struct_addr);
+ regcache *regcache = get_thread_regcache (inferior_thread ());
+ sp = gdbarch_push_dummy_call (gdbarch, function, regcache, bp_addr,
+ args.size (), args.data (), sp,
+ return_method, struct_addr);
+
+ /* Push the return address of the inferior (bp_addr) to the shadow stack
+ and update the shadow stack pointer. As we don't execute a call
+ instruction to call the function we need to handle this manually. */
+ if (gdbarch_shadow_stack_push_p (gdbarch))
+ gdbarch_shadow_stack_push (gdbarch, bp_addr, regcache);
/* Set up a frame ID for the dummy frame so we can pass it to
set_momentary_breakpoint. We need to give the breakpoint a frame
diff --git a/gdb/infcmd.c b/gdb/infcmd.c
index 8978c8a..bf68a95 100644
--- a/gdb/infcmd.c
+++ b/gdb/infcmd.c
@@ -25,6 +25,7 @@
#include "inferior.h"
#include "infrun.h"
#include "gdbsupport/environ.h"
+#include "gdbsupport/common-inferior.h"
#include "value.h"
#include "cli/cli-cmds.h"
#include "cli/cli-style.h"
@@ -39,7 +40,6 @@
#include "reggroups.h"
#include "block.h"
#include "solib.h"
-#include <ctype.h>
#include "observable.h"
#include "target-descriptions.h"
#include "user-regs.h"
@@ -209,7 +209,7 @@ strip_bg_char (const char *args, int *bg_char_p)
if (p[-1] == '&')
{
p--;
- while (p > args && isspace (p[-1]))
+ while (p > args && c_isspace (p[-1]))
p--;
*bg_char_p = 1;
@@ -260,7 +260,8 @@ post_create_inferior (int from_tty, bool set_pspace_solib_ops)
if (set_pspace_solib_ops)
current_program_space->set_solib_ops
- (gdbarch_make_solib_ops (current_inferior ()->arch ()));
+ (gdbarch_make_solib_ops (current_inferior ()->arch (),
+ current_program_space));
if (current_program_space->exec_bfd ())
{
@@ -494,6 +495,11 @@ run_command_1 (const char *args, int from_tty, enum run_how run_how)
thr->set_pending_waitstatus (ws);
}
+ /* Still call clear_proceed_status; in schedule multiple mode the proceed
+ can resume threads from other inferiors, which might need clearing
+ prior to a proceed call. */
+ clear_proceed_status (0);
+
/* Start the target running. Do not use -1 continuation as it would skip
breakpoint right at the entry point. */
proceed (regcache_read_pc (get_thread_regcache (inferior_thread ())),
@@ -989,7 +995,7 @@ prepare_one_step (thread_info *tp, struct step_command_fsm *sm)
if (inline_skipped_frames (tp) > 0)
{
const symbol *sym = inline_skipped_symbol (tp);
- if (sym->aclass () == LOC_BLOCK)
+ if (sym->loc_class () == LOC_BLOCK)
{
const block *block = sym->value_block ();
if (block->end () < tp->control.step_range_end)
@@ -2307,12 +2313,12 @@ registers_info (const char *addr_exp, int fpregs)
resembling a register following it. */
if (addr_exp[0] == '$')
addr_exp++;
- if (isspace ((*addr_exp)) || (*addr_exp) == '\0')
+ if (c_isspace ((*addr_exp)) || (*addr_exp) == '\0')
error (_("Missing register name"));
/* Find the start/end of this register name/num/group. */
start = addr_exp;
- while ((*addr_exp) != '\0' && !isspace ((*addr_exp)))
+ while ((*addr_exp) != '\0' && !c_isspace ((*addr_exp)))
addr_exp++;
end = addr_exp;
diff --git a/gdb/inferior.c b/gdb/inferior.c
index e8a28cd..eb895f2 100644
--- a/gdb/inferior.c
+++ b/gdb/inferior.c
@@ -19,6 +19,7 @@
#include "exec.h"
#include "inferior.h"
+#include "gdbsupport/common-inferior.h"
#include "target.h"
#include "command.h"
#include "completer.h"
diff --git a/gdb/inferior.h b/gdb/inferior.h
index fe94e28..8455b79 100644
--- a/gdb/inferior.h
+++ b/gdb/inferior.h
@@ -54,10 +54,8 @@ struct thread_info;
#include "symfile-add-flags.h"
#include "gdbsupport/refcounted-object.h"
#include "gdbsupport/forward-scope-exit.h"
-#include "gdbsupport/gdb_unique_ptr.h"
#include "gdbsupport/intrusive_list.h"
-#include "gdbsupport/common-inferior.h"
#include "gdbthread.h"
#include "process-stratum-target.h"
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 9d3e1b7..2e59af2 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -22,7 +22,6 @@
#include "cli/cli-style.h"
#include "displaced-stepping.h"
#include "infrun.h"
-#include <ctype.h>
#include "exceptions.h"
#include "symtab.h"
#include "frame.h"
@@ -1381,8 +1380,9 @@ follow_exec (ptid_t ptid, const char *exec_file_target)
registers. */
target_find_description ();
- current_program_space->set_solib_ops
- (gdbarch_make_solib_ops (following_inferior->arch ()));
+ following_inferior->pspace->set_solib_ops
+ (gdbarch_make_solib_ops (following_inferior->arch (),
+ following_inferior->pspace));
gdb::observers::inferior_execd.notify (execing_inferior, following_inferior);
breakpoint_re_set ();
@@ -2370,7 +2370,7 @@ maybe_software_singlestep (struct gdbarch *gdbarch)
bool hw_step = true;
if (execution_direction == EXEC_FORWARD
- && gdbarch_software_single_step_p (gdbarch))
+ && gdbarch_get_next_pcs_p (gdbarch))
hw_step = !insert_single_step_breakpoints (gdbarch);
return hw_step;
@@ -4393,6 +4393,11 @@ wait_for_inferior (inferior *inf)
scoped_finish_thread_state finish_state
(inf->process_target (), minus_one_ptid);
+ /* The commit_resumed_state of INF should already be false at this point
+ as INF will be a newly started remote target. This might not be true
+ for other targets but this will be handled in stop_all_threads. */
+ gdb_assert (!inf->process_target ()->commit_resumed_state);
+
while (1)
{
execution_control_state ecs;
@@ -5699,6 +5704,8 @@ stop_all_threads (const char *reason, inferior *inf)
debug_prefixed_printf ("infrun", "stop_all_threads", "done");
};
+ scoped_disable_commit_resumed disable_commit_resumed ("stop all threads");
+
/* Request threads to stop, and then wait for the stops. Because
threads we already know about can spawn more threads while we're
trying to stop them, and we only learn about new threads when we
@@ -9525,6 +9532,7 @@ normal_stop ()
here, so do this before any filtered output. */
ptid_t finish_ptid = null_ptid;
+ process_stratum_target *finish_target = nullptr;
if (!non_stop)
finish_ptid = minus_one_ptid;
@@ -9537,17 +9545,30 @@ normal_stop ()
linux-fork.c automatically switches to another fork from
within target_mourn_inferior. */
if (inferior_ptid != null_ptid)
- finish_ptid = ptid_t (inferior_ptid.pid ());
+ {
+ finish_ptid = ptid_t (inferior_ptid.pid ());
+ finish_target = current_inferior ()->process_target ();
+ }
}
else if (last.kind () != TARGET_WAITKIND_NO_RESUMED
&& last.kind () != TARGET_WAITKIND_THREAD_EXITED)
- finish_ptid = inferior_ptid;
+ {
+ finish_ptid = inferior_ptid;
+ finish_target = current_inferior ()->process_target ();
+ }
std::optional<scoped_finish_thread_state> maybe_finish_thread_state;
if (finish_ptid != null_ptid)
{
- maybe_finish_thread_state.emplace
- (user_visible_resume_target (finish_ptid), finish_ptid);
+ /* It might be tempting to use user_visible_resume_target to compute
+ FINISH_TARGET from FINISH_PTID, however, that is the wrong choice
+ in this case.
+
+ When resuming, we only resume the current target unless
+ schedule-multiple is in effect. However, when handling a stop, if
+ FINISH_PTID is minus_one_ptid, then we really do want to look for
+ stop events from _any_ target. */
+ maybe_finish_thread_state.emplace (finish_target, finish_ptid);
}
/* As we're presenting a stop, and potentially removing breakpoints,
@@ -9561,7 +9582,38 @@ normal_stop ()
update_thread_list ();
if (last.kind () == TARGET_WAITKIND_STOPPED && stopped_by_random_signal)
- notify_signal_received (inferior_thread ()->stop_signal ());
+ {
+ gdb_assert (inferior_ptid != null_ptid);
+
+ /* Calling update_thread_list pulls information from the target. For
+ native targets we can be (reasonably) sure that the information we
+ get back is sane, but for remote targets, we cannot reply on the
+ returned thread list to be correct.
+
+ Specifically, a remote target (not gdbserver), has been seen to
+ prematurely remove threads from the thread list after sending a
+ signal stop event. The consequence of this, is that the thread
+ might now be exited. This is bad as, trying to calling
+ notify_signal_received will cause GDB to read registers for the
+ current thread, but requesting the regcache for an exited thread
+ will trigger an assertion.
+
+ Check for the exited thread case here, and convert the stop reason
+ to a spurious stop event. The thread exiting will have already
+ been reported (when the thread list was parsed), so making this a
+ spurious stop will cause GDB to drop back to the prompt. */
+ if (inferior_thread ()->state != THREAD_EXITED)
+ notify_signal_received (inferior_thread ()->stop_signal ());
+ else
+ {
+ warning (_("command aborted, %s unexpectedly exited after signal stop event"),
+ target_pid_to_str (inferior_thread ()->ptid).c_str ());
+
+ /* Mark this as a spurious stop. GDB will return to the
+ prompt. The warning above tells the user why. */
+ last.set_spurious ();
+ }
+ }
/* As with the notification of thread events, we want to delay
notifying the user that we've switched thread context until
@@ -9842,7 +9894,7 @@ handle_command (const char *args, int from_tty)
for (char *arg : built_argv)
{
wordlen = strlen (arg);
- for (digits = 0; isdigit (arg[digits]); digits++)
+ for (digits = 0; c_isdigit (arg[digits]); digits++)
{;
}
allsigs = 0;
diff --git a/gdb/jit.c b/gdb/jit.c
index 0ea7bd9..b105697 100644
--- a/gdb/jit.c
+++ b/gdb/jit.c
@@ -584,7 +584,7 @@ finalize_symtab (struct gdb_symtab *stab, struct objfile *objfile)
/* The name. */
block_name->set_domain (FUNCTION_DOMAIN);
- block_name->set_aclass_index (LOC_BLOCK);
+ block_name->set_loc_class_index (LOC_BLOCK);
block_name->set_symtab (filetab);
block_name->set_type (lookup_function_type (block_type));
block_name->set_value_block (new_block);
diff --git a/gdb/language.c b/gdb/language.c
index 80f9b01..c070169 100644
--- a/gdb/language.c
+++ b/gdb/language.c
@@ -28,7 +28,6 @@
return data out of a "language-specific" struct pointer that is set
whenever the working language changes. That would be a lot faster. */
-#include <ctype.h>
#include "symtab.h"
#include "gdbtypes.h"
#include "value.h"
@@ -976,7 +975,7 @@ language_arch_info::type_and_symbol::alloc_type_symbol
symbol->set_section_index (0);
symbol->set_type (type);
symbol->set_domain (TYPE_DOMAIN);
- symbol->set_aclass_index (LOC_TYPEDEF);
+ symbol->set_loc_class_index (LOC_TYPEDEF);
return symbol;
}
diff --git a/gdb/linespec.c b/gdb/linespec.c
index b59c055..2ddc495 100644
--- a/gdb/linespec.c
+++ b/gdb/linespec.c
@@ -35,7 +35,6 @@
#include "interps.h"
#include "target.h"
#include "arch-utils.h"
-#include <ctype.h>
#include "cli/cli-utils.h"
#include "filenames.h"
#include "ada-lang.h"
@@ -230,7 +229,7 @@ collect_info::add_symbol (block_symbol *bsym)
{
/* In list mode, add all matching symbols, regardless of class.
This allows the user to type "list a_global_variable". */
- if (bsym->symbol->aclass () == LOC_BLOCK || this->state->list_mode)
+ if (bsym->symbol->loc_class () == LOC_BLOCK || this->state->list_mode)
this->result.symbols->push_back (*bsym);
/* Continue iterating. */
@@ -459,7 +458,7 @@ linespec_lexer_lex_number (linespec_parser *parser, linespec_token *tokenp)
++(parser->lexer.stream);
}
- while (isdigit (*parser->lexer.stream))
+ while (c_isdigit (*parser->lexer.stream))
{
++tokenp->data.string.length;
++(parser->lexer.stream);
@@ -468,7 +467,7 @@ linespec_lexer_lex_number (linespec_parser *parser, linespec_token *tokenp)
/* If the next character in the input buffer is not a space, comma,
quote, or colon, this input does not represent a number. */
if (*parser->lexer.stream != '\0'
- && !isspace (*parser->lexer.stream) && *parser->lexer.stream != ','
+ && !c_isspace (*parser->lexer.stream) && *parser->lexer.stream != ','
&& *parser->lexer.stream != ':'
&& !strchr (linespec_quote_characters, *parser->lexer.stream))
{
@@ -512,7 +511,7 @@ linespec_lexer_lex_keyword (const char *p)
if (i == FORCE_KEYWORD_INDEX && p[len] == '\0')
return linespec_keywords[i];
- if (!isspace (p[len]))
+ if (!c_isspace (p[len]))
continue;
if (i == FORCE_KEYWORD_INDEX)
@@ -524,7 +523,7 @@ linespec_lexer_lex_keyword (const char *p)
int nextlen = strlen (linespec_keywords[j]);
if (strncmp (p, linespec_keywords[j], nextlen) == 0
- && isspace (p[nextlen]))
+ && c_isspace (p[nextlen]))
return linespec_keywords[i];
}
}
@@ -538,7 +537,7 @@ linespec_lexer_lex_keyword (const char *p)
int nextlen = strlen (linespec_keywords[j]);
if (strncmp (p, linespec_keywords[j], nextlen) == 0
- && isspace (p[nextlen]))
+ && c_isspace (p[nextlen]))
return NULL;
}
}
@@ -763,7 +762,7 @@ linespec_lexer_lex_string (linespec_parser *parser)
while (1)
{
- if (isspace (*parser->lexer.stream))
+ if (c_isspace (*parser->lexer.stream))
{
p = skip_spaces (parser->lexer.stream);
/* When we get here we know we've found something followed by
@@ -841,14 +840,14 @@ linespec_lexer_lex_string (linespec_parser *parser)
{
const char *op = parser->lexer.stream;
- while (op > start && isspace (op[-1]))
+ while (op > start && c_isspace (op[-1]))
op--;
if (op - start >= CP_OPERATOR_LEN)
{
op -= CP_OPERATOR_LEN;
if (strncmp (op, CP_OPERATOR_STR, CP_OPERATOR_LEN) == 0
&& (op == start
- || !(isalnum (op[-1]) || op[-1] == '_')))
+ || !(c_isalnum (op[-1]) || op[-1] == '_')))
{
/* This is an operator name. Keep going. */
++(parser->lexer.stream);
@@ -1140,12 +1139,7 @@ iterate_over_all_matching_symtabs
for (objfile *objfile : pspace->objfiles ())
{
- objfile->expand_symtabs_matching (NULL, &lookup_name, NULL, NULL,
- (SEARCH_GLOBAL_BLOCK
- | SEARCH_STATIC_BLOCK),
- domain);
-
- for (compunit_symtab *cu : objfile->compunits ())
+ auto expand_callback = [&] (compunit_symtab *cu)
{
struct symtab *symtab = cu->primary_filetab ();
@@ -1172,7 +1166,12 @@ iterate_over_all_matching_symtabs
});
}
}
- }
+
+ return true;
+ };
+
+ objfile->search (nullptr, &lookup_name, nullptr, expand_callback,
+ SEARCH_GLOBAL_BLOCK | SEARCH_STATIC_BLOCK, domain);
}
}
}
@@ -1642,7 +1641,7 @@ linespec_parse_line_offset (const char *string)
else
line_offset.sign = LINE_OFFSET_NONE;
- if (*string != '\0' && !isdigit (*string))
+ if (*string != '\0' && !c_isdigit (*string))
error (_("malformed line offset: \"%s\""), start);
/* Right now, we only allow base 10 for offsets. */
@@ -2129,7 +2128,7 @@ create_sals_line_offset (struct linespec_state *self,
line 16 will also result in a breakpoint in main, at line 17. */
if (!was_exact
&& sym != nullptr
- && sym->aclass () == LOC_BLOCK
+ && sym->loc_class () == LOC_BLOCK
&& sal.pc == sym->value_block ()->entry_pc ()
&& val.line < sym->line ())
continue;
@@ -2224,7 +2223,7 @@ convert_linespec_to_sals (struct linespec_state *state, linespec *ls)
if (state->funfirstline
&& !ls->minimal_symbols.empty ()
- && sym.symbol->aclass () == LOC_BLOCK)
+ && sym.symbol->loc_class () == LOC_BLOCK)
{
const CORE_ADDR addr
= sym.symbol->value_block ()->entry_pc ();
@@ -3361,7 +3360,7 @@ decode_compound_collector::operator () (block_symbol *bsym)
struct type *t;
struct symbol *sym = bsym->symbol;
- if (sym->aclass () != LOC_TYPEDEF)
+ if (sym->loc_class () != LOC_TYPEDEF)
return true; /* Continue iterating. */
t = sym->type ();
@@ -3768,7 +3767,7 @@ find_linespec_symbols (struct linespec_state *state,
if (canon != nullptr)
lookup_name = canon.get ();
- /* It's important to not call expand_symtabs_matching unnecessarily
+ /* It's important to not call search unnecessarily
as it can really slow things down (by unnecessarily expanding
potentially 1000s of symtabs, which when debugging some apps can
cost 100s of seconds). Avoid this to some extent by *first* calling
@@ -4113,7 +4112,12 @@ minsym_found (struct linespec_state *self, struct objfile *objfile,
sal.pspace = current_program_space;
}
- sal.section = msymbol->obj_section (objfile);
+ /* Don't use the section from the msymbol, the code above might have
+ adjusted FUNC_ADDR, in which case the msymbol's section might not be
+ the section containing FUNC_ADDR. It might not even be in the same
+ objfile. As the section is primarily to assist with overlay
+ debugging, it should reflect the SAL's pc value. */
+ sal.section = find_pc_overlay (sal.pc);
if (self->maybe_add_address (objfile->pspace (), sal.pc))
add_sal_to_sals (self, result, &sal, msymbol->natural_name (), false);
@@ -4316,14 +4320,14 @@ static bool
symbol_to_sal (struct symtab_and_line *result,
bool funfirstline, struct symbol *sym)
{
- if (sym->aclass () == LOC_BLOCK)
+ if (sym->loc_class () == LOC_BLOCK)
{
*result = find_function_start_sal (sym, funfirstline);
return true;
}
else
{
- if (sym->aclass () == LOC_LABEL && sym->value_address () != 0)
+ if (sym->loc_class () == LOC_LABEL && sym->value_address () != 0)
{
*result = {};
result->symtab = sym->symtab ();
diff --git a/gdb/linux-fork.c b/gdb/linux-fork.c
index 9e986d8..0171259 100644
--- a/gdb/linux-fork.c
+++ b/gdb/linux-fork.c
@@ -37,7 +37,6 @@
#include "gdbsupport/eintr.h"
#include "target/waitstatus.h"
#include <dirent.h>
-#include <ctype.h>
#include <list>
@@ -421,7 +420,7 @@ fork_save_infrun_state (struct fork_info *fp)
/* Now find actual file positions. */
rewinddir (d);
while ((de = readdir (d)) != NULL)
- if (isdigit (de->d_name[0]))
+ if (c_isdigit (de->d_name[0]))
{
tmp = strtol (&de->d_name[0], NULL, 10);
fp->filepos[tmp] = call_lseek (tmp, 0, SEEK_CUR);
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
index f317927..87fb800 100644
--- a/gdb/linux-nat.c
+++ b/gdb/linux-nat.c
@@ -42,7 +42,6 @@
#include "elf-bfd.h"
#include "gregset.h"
#include "gdbcore.h"
-#include <ctype.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "inf-loop.h"
@@ -549,8 +548,8 @@ linux_nat_target::follow_fork (inferior *child_inf, ptid_t child_ptid,
/* Note that we consult the parent's architecture instead of
the child's because there's no inferior for the child at
this point. */
- if (!gdbarch_software_single_step_p (target_thread_architecture
- (parent_ptid)))
+ if (!gdbarch_get_next_pcs_p (target_thread_architecture
+ (parent_ptid)))
{
int status;
diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c
index 5c4bbf6..4b679c8 100644
--- a/gdb/linux-tdep.c
+++ b/gdb/linux-tdep.c
@@ -46,7 +46,7 @@
#include "cli/cli-style.h"
#include "gdbsupport/unordered_map.h"
-#include <ctype.h>
+#include <algorithm>
/* This enum represents the values that the user can choose when
informing the Linux kernel about which memory mappings will be
@@ -96,6 +96,10 @@ struct smaps_vmflags
/* Memory map has memory tagging enabled. */
unsigned int memory_tagging : 1;
+
+ /* Memory map used for shadow stack. */
+
+ unsigned int shadow_stack_memory : 1;
};
/* Data structure that holds the information contained in the
@@ -483,7 +487,7 @@ read_mapping (const char *line)
p = skip_spaces (p);
const char *permissions_start = p;
- while (*p && !isspace (*p))
+ while (*p && !c_isspace (*p))
p++;
mapping.permissions = std::string (permissions_start,
(size_t) (p - permissions_start));
@@ -492,7 +496,7 @@ read_mapping (const char *line)
p = skip_spaces (p);
const char *device_start = p;
- while (*p && !isspace (*p))
+ while (*p && !c_isspace (*p))
p++;
mapping.device = {device_start, (size_t) (p - device_start)};
@@ -537,6 +541,8 @@ decode_vmflags (char *p, struct smaps_vmflags *v)
v->shared_mapping = 1;
else if (strcmp (s, "mt") == 0)
v->memory_tagging = 1;
+ else if (strcmp (s, "ss") == 0)
+ v->shadow_stack_memory = 1;
}
}
@@ -836,7 +842,7 @@ linux_info_proc (struct gdbarch *gdbarch, const char *args,
char filename[100];
fileio_error target_errno;
- if (args && isdigit (args[0]))
+ if (args && c_isdigit (args[0]))
{
char *tem;
@@ -1147,8 +1153,8 @@ linux_read_core_file_mappings
}
gdb::byte_vector contents (note_size);
- if (!bfd_get_section_contents (current_program_space->core_bfd (), section,
- contents.data (), 0, note_size))
+ if (!bfd_get_section_contents (cbfd, section, contents.data (), 0,
+ note_size))
{
warning (_("could not get core note contents"));
return;
@@ -1163,13 +1169,10 @@ linux_read_core_file_mappings
return;
}
- ULONGEST count = bfd_get (addr_size_bits, current_program_space->core_bfd (),
- descdata);
+ ULONGEST count = bfd_get (addr_size_bits, cbfd, descdata);
descdata += addr_size;
- ULONGEST page_size = bfd_get (addr_size_bits,
- current_program_space->core_bfd (),
- descdata);
+ ULONGEST page_size = bfd_get (addr_size_bits, cbfd, descdata);
descdata += addr_size;
if (note_size < 2 * addr_size + count * 3 * addr_size)
@@ -1216,12 +1219,11 @@ linux_read_core_file_mappings
for (int i = 0; i < count; i++)
{
- ULONGEST start = bfd_get (addr_size_bits, current_program_space->core_bfd (), descdata);
+ ULONGEST start = bfd_get (addr_size_bits, cbfd, descdata);
descdata += addr_size;
- ULONGEST end = bfd_get (addr_size_bits, current_program_space->core_bfd (), descdata);
+ ULONGEST end = bfd_get (addr_size_bits, cbfd, descdata);
descdata += addr_size;
- ULONGEST file_ofs
- = bfd_get (addr_size_bits, current_program_space->core_bfd (), descdata) * page_size;
+ ULONGEST file_ofs = bfd_get (addr_size_bits, cbfd, descdata) * page_size;
descdata += addr_size;
char * filename = filenames;
filenames += strlen ((char *) filenames) + 1;
@@ -1235,14 +1237,15 @@ linux_read_core_file_mappings
}
}
-/* Implement "info proc mappings" for a corefile. */
+/* Implement "info proc mappings" for corefile CBFD. */
static void
-linux_core_info_proc_mappings (struct gdbarch *gdbarch, const char *args)
+linux_core_info_proc_mappings (struct gdbarch *gdbarch, struct bfd *cbfd,
+ const char *args)
{
std::optional<ui_out_emit_table> emitter;
- linux_read_core_file_mappings (gdbarch, current_program_space->core_bfd (),
+ linux_read_core_file_mappings (gdbarch, cbfd,
[&] (ULONGEST count)
{
gdb_printf (_("Mapped address spaces:\n\n"));
@@ -1271,19 +1274,18 @@ linux_core_info_proc_mappings (struct gdbarch *gdbarch, const char *args)
});
}
-/* Implement "info proc" for a corefile. */
+/* Implement "info proc" for corefile CBFD. */
static void
-linux_core_info_proc (struct gdbarch *gdbarch, const char *args,
- enum info_proc_what what)
+linux_core_info_proc (struct gdbarch *gdbarch, struct bfd *cbfd,
+ const char *args, enum info_proc_what what)
{
int exe_f = (what == IP_MINIMAL || what == IP_EXE || what == IP_ALL);
int mappings_f = (what == IP_MAPPINGS || what == IP_ALL);
if (exe_f)
{
- const char *exe
- = bfd_core_file_failing_command (current_program_space->core_bfd ());
+ const char *exe = bfd_core_file_failing_command (cbfd);
if (exe != NULL)
gdb_printf ("exe = '%s'\n", exe);
@@ -1292,7 +1294,7 @@ linux_core_info_proc (struct gdbarch *gdbarch, const char *args,
}
if (mappings_f)
- linux_core_info_proc_mappings (gdbarch, args);
+ linux_core_info_proc_mappings (gdbarch, cbfd, args);
if (!exe_f && !mappings_f)
error (_("unable to handle request"));
@@ -1304,18 +1306,15 @@ linux_core_info_proc (struct gdbarch *gdbarch, const char *args,
interface. */
static LONGEST
-linux_core_xfer_siginfo (struct gdbarch *gdbarch, gdb_byte *readbuf,
- ULONGEST offset, ULONGEST len)
+linux_core_xfer_siginfo (struct gdbarch *gdbarch, struct bfd &cbfd,
+ gdb_byte *readbuf, ULONGEST offset, ULONGEST len)
{
thread_section_name section_name (".note.linuxcore.siginfo", inferior_ptid);
- asection *section
- = bfd_get_section_by_name (current_program_space->core_bfd (),
- section_name.c_str ());
- if (section == NULL)
+ asection *section = bfd_get_section_by_name (&cbfd, section_name.c_str ());
+ if (section == nullptr)
return -1;
- if (!bfd_get_section_contents (current_program_space->core_bfd (), section,
- readbuf, offset, len))
+ if (!bfd_get_section_contents (&cbfd, section, readbuf, offset, len))
return -1;
return len;
@@ -2227,7 +2226,7 @@ linux_fill_prpsinfo (struct elf_internal_linux_prpsinfo *p)
specifically under the entry of `/proc/[pid]/stat'. */
/* Getting rid of the PID, since we already have it. */
- while (isdigit (*proc_stat))
+ while (c_isdigit (*proc_stat))
++proc_stat;
proc_stat = skip_spaces (proc_stat);
@@ -2299,10 +2298,10 @@ linux_fill_prpsinfo (struct elf_internal_linux_prpsinfo *p)
{
/* Advancing the pointer to the beginning of the UID. */
tmpstr += sizeof ("Uid:");
- while (*tmpstr != '\0' && !isdigit (*tmpstr))
+ while (*tmpstr != '\0' && !c_isdigit (*tmpstr))
++tmpstr;
- if (isdigit (*tmpstr))
+ if (c_isdigit (*tmpstr))
p->pr_uid = strtol (tmpstr, &tmpstr, 10);
}
@@ -2312,10 +2311,10 @@ linux_fill_prpsinfo (struct elf_internal_linux_prpsinfo *p)
{
/* Advancing the pointer to the beginning of the GID. */
tmpstr += sizeof ("Gid:");
- while (*tmpstr != '\0' && !isdigit (*tmpstr))
+ while (*tmpstr != '\0' && !c_isdigit (*tmpstr))
++tmpstr;
- if (isdigit (*tmpstr))
+ if (c_isdigit (*tmpstr))
p->pr_gid = strtol (tmpstr, &tmpstr, 10);
}
@@ -3036,6 +3035,46 @@ show_dump_excluded_mappings (struct ui_file *file, int from_tty,
" flag is %s.\n"), value);
}
+/* See linux-tdep.h. */
+
+bool
+linux_address_in_shadow_stack_mem_range
+ (CORE_ADDR addr, std::pair<CORE_ADDR, CORE_ADDR> *range)
+{
+ if (!target_has_execution () || current_inferior ()->fake_pid_p)
+ return false;
+
+ const int pid = current_inferior ()->pid;
+
+ std::string smaps_file = string_printf ("/proc/%d/smaps", pid);
+
+ gdb::unique_xmalloc_ptr<char> data
+ = target_fileio_read_stralloc (nullptr, smaps_file.c_str ());
+
+ if (data == nullptr)
+ return false;
+
+ const std::vector<smaps_data> smaps
+ = parse_smaps_data (data.get (), std::move (smaps_file));
+
+ auto find_addr_mem_range = [&addr] (const smaps_data &map)
+ {
+ bool addr_in_mem_range
+ = (addr >= map.start_address && addr < map.end_address);
+ return (addr_in_mem_range && map.vmflags.shadow_stack_memory);
+ };
+ auto it = std::find_if (smaps.begin (), smaps.end (), find_addr_mem_range);
+
+ if (it != smaps.end ())
+ {
+ range->first = it->start_address;
+ range->second = it->end_address;
+ return true;
+ }
+
+ return false;
+}
+
/* To be called from the various GDB_OSABI_LINUX handlers for the
various GNU/Linux architectures and machine types.
diff --git a/gdb/linux-tdep.h b/gdb/linux-tdep.h
index 3d82ea5..a4f0f53 100644
--- a/gdb/linux-tdep.h
+++ b/gdb/linux-tdep.h
@@ -27,6 +27,17 @@
struct inferior;
struct regcache;
+#ifndef SEGV_CPERR
+#define SEGV_CPERR 10 /* Control protection error. */
+#endif
+
+/* Flag which enables shadow stack in PR_SET_SHADOW_STACK_STATUS prctl. */
+#ifndef PR_SHADOW_STACK_ENABLE
+#define PR_SHADOW_STACK_ENABLE (1UL << 0)
+#define PR_SHADOW_STACK_WRITE (1UL << 1)
+#define PR_SHADOW_STACK_PUSH (1UL << 2)
+#endif
+
/* Enum used to define the extra fields of the siginfo type used by an
architecture. */
enum linux_siginfo_extra_field_values
@@ -113,4 +124,11 @@ extern CORE_ADDR linux_get_hwcap2 (const std::optional<gdb::byte_vector> &auxv,
extern CORE_ADDR linux_get_hwcap2 ();
+/* Returns true if ADDR belongs to a shadow stack memory range. If this
+ is the case, assign the shadow stack memory range to RANGE
+ [start_address, end_address). */
+
+extern bool linux_address_in_shadow_stack_mem_range
+ (CORE_ADDR addr, std::pair<CORE_ADDR, CORE_ADDR> *range);
+
#endif /* GDB_LINUX_TDEP_H */
diff --git a/gdb/linux-thread-db.c b/gdb/linux-thread-db.c
index 8d49508..82bfe08 100644
--- a/gdb/linux-thread-db.c
+++ b/gdb/linux-thread-db.c
@@ -43,7 +43,6 @@
#include "auto-load.h"
#include "cli/cli-utils.h"
#include <signal.h>
-#include <ctype.h>
#include "nat/linux-namespaces.h"
#include <algorithm>
#include "gdbsupport/pathstuff.h"
diff --git a/gdb/location.c b/gdb/location.c
index 378fafc..197c47b 100644
--- a/gdb/location.c
+++ b/gdb/location.c
@@ -26,7 +26,6 @@
#include "probe.h"
#include "cp-support.h"
-#include <ctype.h>
#include <string.h>
static std::string
@@ -408,15 +407,15 @@ explicit_location_spec_lex_one (const char **inp,
whitespace or comma. */
if (*start == '-' || *start == '+')
{
- while (*inp[0] != '\0' && *inp[0] != ',' && !isspace (*inp[0]))
+ while (*inp[0] != '\0' && *inp[0] != ',' && !c_isspace (*inp[0]))
++(*inp);
}
else
{
/* Handle numbers first, stopping at the next whitespace or ','. */
- while (isdigit (*inp[0]))
+ while (c_isdigit (*inp[0]))
++(*inp);
- if (*inp[0] == '\0' || isspace (*inp[0]) || *inp[0] == ',')
+ if (*inp[0] == '\0' || c_isspace (*inp[0]) || *inp[0] == ',')
return gdb::unique_xmalloc_ptr<char> (savestring (start,
*inp - start));
@@ -425,7 +424,7 @@ explicit_location_spec_lex_one (const char **inp,
*inp = start;
while ((*inp)[0]
&& (*inp)[0] != ','
- && !(isspace ((*inp)[0])
+ && !(c_isspace ((*inp)[0])
|| linespec_lexer_lex_keyword (&(*inp)[1])))
{
/* Special case: C++ operator,. */
@@ -454,14 +453,14 @@ is_cp_operator (const char *start, const char *comma)
{
const char *p = comma;
- while (p > start && isspace (p[-1]))
+ while (p > start && c_isspace (p[-1]))
p--;
if (p - start >= CP_OPERATOR_LEN)
{
p -= CP_OPERATOR_LEN;
if (strncmp (p, CP_OPERATOR_STR, CP_OPERATOR_LEN) == 0
&& (p == start
- || !(isalnum (p[-1]) || p[-1] == '_')))
+ || !(c_isalnum (p[-1]) || p[-1] == '_')))
{
return true;
}
@@ -624,7 +623,7 @@ string_to_explicit_location_spec (const char **argp,
if (argp == NULL
|| *argp == NULL
|| *argp[0] != '-'
- || !isalpha ((*argp)[1])
+ || !c_isalpha ((*argp)[1])
|| ((*argp)[0] == '-' && (*argp)[1] == 'p'))
return NULL;
@@ -728,7 +727,7 @@ string_to_explicit_location_spec (const char **argp,
}
/* Only emit an "invalid argument" error for options
that look like option strings. */
- else if (opt.get ()[0] == '-' && !isdigit (opt.get ()[1]))
+ else if (opt.get ()[0] == '-' && !c_isdigit (opt.get ()[1]))
{
if (completion_info == NULL)
error (_("invalid explicit location argument, \"%s\""), opt.get ());
diff --git a/gdb/loongarch-linux-nat.c b/gdb/loongarch-linux-nat.c
index 2b59b36..1360acf 100644
--- a/gdb/loongarch-linux-nat.c
+++ b/gdb/loongarch-linux-nat.c
@@ -72,8 +72,6 @@ public:
struct expression *cond) override;
int remove_watchpoint (CORE_ADDR addr, int len, enum target_hw_bp_type type,
struct expression *cond) override;
- bool watchpoint_addr_within_range (CORE_ADDR addr, CORE_ADDR start,
- int length) override;
/* Add our hardware breakpoint and watchpoint implementation. */
bool stopped_by_watchpoint () override;
@@ -581,15 +579,6 @@ loongarch_linux_nat_target::remove_watchpoint (CORE_ADDR addr, int len,
}
-bool
-loongarch_linux_nat_target::watchpoint_addr_within_range (CORE_ADDR addr,
- CORE_ADDR start,
- int length)
-{
- return start <= addr && start + length - 1 >= addr;
-}
-
-
/* Implement the "stopped_data_address" target_ops method. */
bool
diff --git a/gdb/loongarch-tdep.c b/gdb/loongarch-tdep.c
index cc75cd4..e94b88b 100644
--- a/gdb/loongarch-tdep.c
+++ b/gdb/loongarch-tdep.c
@@ -22,10 +22,12 @@
#include "dwarf2/frame.h"
#include "elf-bfd.h"
#include "extract-store-integer.h"
+#include "frame-base.h"
#include "frame-unwind.h"
#include "gdbcore.h"
#include "linux-record.h"
#include "loongarch-tdep.h"
+#include "prologue-value.h"
#include "record.h"
#include "record-full.h"
#include "reggroups.h"
@@ -34,6 +36,33 @@
#include "trad-frame.h"
#include "user-regs.h"
+/* LoongArch frame cache structure. */
+struct loongarch_frame_cache
+{
+ /* The program counter at the start of the function. It is used to
+ identify this frame as a prologue frame. */
+ CORE_ADDR func;
+
+ /* The stack pointer at the time this frame was created; i.e. the
+ caller's stack pointer when this function was called. It is used
+ to identify this frame. */
+ CORE_ADDR prev_sp;
+
+ CORE_ADDR pc;
+
+ int available_p;
+
+ /* This register stores the frame base of the frame. */
+ int framebase_reg;
+
+ /* The framebase_offset is the distance from frame base to the prev_sp,
+ so the value of framebase_reg is just prev_sp - framebase_offset. */
+ int framebase_offset;
+
+ /* Saved register offsets. */
+ trad_frame_saved_reg *saved_regs;
+};
+
/* Fetch the instruction at PC. */
static insn_t
@@ -98,7 +127,9 @@ static bool
loongarch_insn_is_ll (insn_t insn)
{
if ((insn & 0xff000000) == 0x20000000 /* ll.w */
- || (insn & 0xff000000) == 0x22000000) /* ll.d */
+ || (insn & 0xff000000) == 0x22000000 /* ll.d */
+ || (insn & 0xfffffc00) == 0x38578000 /* llacq.w */
+ || (insn & 0xfffffc00) == 0x38578800) /* llacq.d */
return true;
return false;
}
@@ -109,7 +140,10 @@ static bool
loongarch_insn_is_sc (insn_t insn)
{
if ((insn & 0xff000000) == 0x21000000 /* sc.w */
- || (insn & 0xff000000) == 0x23000000) /* sc.d */
+ || (insn & 0xff000000) == 0x23000000 /* sc.d */
+ || (insn & 0xffff8000) == 0x38570000 /* sc.q */
+ || (insn & 0xfffffc00) == 0x38578400 /* screl.w */
+ || (insn & 0xfffffc00) == 0x38578c00) /* screl.d */
return true;
return false;
}
@@ -120,13 +154,23 @@ loongarch_insn_is_sc (insn_t insn)
static CORE_ADDR
loongarch_scan_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc,
CORE_ADDR limit_pc, const frame_info_ptr &this_frame,
- struct trad_frame_cache *this_cache)
+ struct loongarch_frame_cache *this_cache)
{
CORE_ADDR cur_pc = start_pc, prologue_end = 0;
int32_t sp = LOONGARCH_SP_REGNUM;
int32_t fp = LOONGARCH_FP_REGNUM;
+ int32_t ra = LOONGARCH_RA_REGNUM;
int32_t reg_value[32] = {0};
int32_t reg_used[32] = {1, 0};
+ int i;
+
+ /* Track 32 GPR, ORIG_A0, PC, BADV in prologue. */
+ pv_t regs[LOONGARCH_USED_NUM_GREGSET];
+
+ for (i = 0; i < LOONGARCH_USED_NUM_GREGSET; i++)
+ regs[i] = pv_register (i, 0);
+
+ pv_area stack (LOONGARCH_SP_REGNUM, gdbarch_addr_bit (gdbarch));
while (cur_pc < limit_pc)
{
@@ -136,27 +180,40 @@ loongarch_scan_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc,
int32_t rj = loongarch_decode_imm ("5:5", insn, 0);
int32_t rk = loongarch_decode_imm ("10:5", insn, 0);
int32_t si12 = loongarch_decode_imm ("10:12", insn, 1);
+ int32_t si14 = loongarch_decode_imm ("10:14", insn, 1);
int32_t si20 = loongarch_decode_imm ("5:20", insn, 1);
if ((insn & 0xffc00000) == 0x02c00000 /* addi.d sp,sp,si12 */
&& rd == sp && rj == sp && si12 < 0)
{
prologue_end = cur_pc + insn_len;
+ regs[rd] = pv_add_constant (regs[rj], si12);
}
else if ((insn & 0xffc00000) == 0x02c00000 /* addi.d fp,sp,si12 */
&& rd == fp && rj == sp && si12 > 0)
{
prologue_end = cur_pc + insn_len;
+ regs[rd] = pv_add_constant (regs[rj], si12);
}
else if ((insn & 0xffc00000) == 0x29c00000 /* st.d rd,sp,si12 */
&& rj == sp)
{
prologue_end = cur_pc + insn_len;
+ /* ra, fp, s0~s8 are saved by callee with sp as a base */
+ if ((rd >= fp && rd <= fp + 9) || rd == ra)
+ {
+ stack.store (pv_add_constant (regs[sp], si12), register_size (gdbarch, rd), regs[rd]);
+ }
}
else if ((insn & 0xff000000) == 0x27000000 /* stptr.d rd,sp,si14 */
&& rj == sp)
{
prologue_end = cur_pc + insn_len;
+ /* ra, fp, s0~s8 are saved by callee with sp as a base */
+ if ((rd >= fp && rd <= fp + 9) || rd == ra)
+ {
+ stack.store (pv_add_constant (regs[sp], si14), register_size (gdbarch, rd), regs[rd]);
+ }
}
else if ((insn & 0xfe000000) == 0x14000000) /* lu12i.w rd,si20 */
{
@@ -191,6 +248,38 @@ loongarch_scan_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc,
if (prologue_end == 0)
prologue_end = cur_pc;
+ if (this_cache == NULL)
+ return prologue_end;
+
+ if (pv_is_register (regs[LOONGARCH_FP_REGNUM], LOONGARCH_SP_REGNUM))
+ {
+ /* Frame pointer is fp. */
+ this_cache->framebase_reg = LOONGARCH_FP_REGNUM;
+ this_cache->framebase_offset = -regs[LOONGARCH_FP_REGNUM].k;
+ }
+ else if (pv_is_register (regs[LOONGARCH_SP_REGNUM], LOONGARCH_SP_REGNUM))
+ {
+ /* Try the stack pointer. */
+ this_cache->framebase_reg = LOONGARCH_SP_REGNUM;
+ this_cache->framebase_offset = -regs[LOONGARCH_SP_REGNUM].k;
+ }
+ else
+ {
+ /* We're just out of luck. We don't know where the frame is. */
+ this_cache->framebase_reg = -1;
+ this_cache->framebase_offset = 0;
+ }
+
+ for (i = 0; i < LOONGARCH_USED_NUM_GREGSET; i++)
+ {
+ CORE_ADDR offset;
+
+ if (stack.find_reg (gdbarch, i, &offset))
+ {
+ this_cache->saved_regs[i].set_addr (offset);
+ }
+ }
+
return prologue_end;
}
@@ -339,13 +428,50 @@ loongarch_next_pc (struct regcache *regcache, CORE_ADDR cur_pc)
return next_pc;
}
+/* Calculate the destination address of a condition branch instruction under an
+ assumed true condition */
+
+static CORE_ADDR
+cond_branch_destination_address (CORE_ADDR cur_pc, insn_t insn)
+{
+ size_t insn_len = loongarch_insn_length (insn);
+ CORE_ADDR next_pc = cur_pc + insn_len;
+
+ if ((insn & 0xfc000000) == 0x58000000) /* beq rj, rd, offs16 */
+ next_pc = cur_pc + loongarch_decode_imm ("10:16<<2", insn, 1);
+ else if ((insn & 0xfc000000) == 0x5c000000) /* bne rj, rd, offs16 */
+ next_pc = cur_pc + loongarch_decode_imm ("10:16<<2", insn, 1);
+ else if ((insn & 0xfc000000) == 0x60000000) /* blt rj, rd, offs16 */
+ next_pc = cur_pc + loongarch_decode_imm ("10:16<<2", insn, 1);
+ else if ((insn & 0xfc000000) == 0x64000000) /* bge rj, rd, offs16 */
+ next_pc = cur_pc + loongarch_decode_imm ("10:16<<2", insn, 1);
+ else if ((insn & 0xfc000000) == 0x68000000) /* bltu rj, rd, offs16 */
+ next_pc = cur_pc + loongarch_decode_imm ("10:16<<2", insn, 1);
+ else if ((insn & 0xfc000000) == 0x6c000000) /* bgeu rj, rd, offs16 */
+ next_pc = cur_pc + loongarch_decode_imm ("10:16<<2", insn, 1);
+ else if ((insn & 0xfc000000) == 0x40000000) /* beqz rj, offs21 */
+ next_pc = cur_pc + loongarch_decode_imm ("0:5|10:16<<2", insn, 1);
+ else if ((insn & 0xfc000000) == 0x44000000) /* bnez rj, offs21 */
+ next_pc = cur_pc + loongarch_decode_imm ("0:5|10:16<<2", insn, 1);
+ else if ((insn & 0xfc000300) == 0x48000000) /* bceqz cj, offs21 */
+ next_pc = cur_pc + loongarch_decode_imm ("0:5|10:16<<2", insn, 1);
+ else if ((insn & 0xfc000300) == 0x48000100) /* bcnez cj, offs21 */
+ next_pc = cur_pc + loongarch_decode_imm ("0:5|10:16<<2", insn, 1);
+
+ return next_pc;
+}
+
/* We can't put a breakpoint in the middle of a ll/sc atomic sequence,
- so look for the end of the sequence and put the breakpoint there. */
+ so a breakpoint should be outside of atomic sequence in any case,
+ just look for the start and end of the sequence, and then restrict
+ the breakpoint outside of the atomic sequence. */
static std::vector<CORE_ADDR>
loongarch_deal_with_atomic_sequence (struct regcache *regcache, CORE_ADDR cur_pc)
{
CORE_ADDR next_pc;
+ CORE_ADDR ll_insn_addr;
+ CORE_ADDR sc_insn_addr;
std::vector<CORE_ADDR> next_pcs;
insn_t insn = loongarch_fetch_instruction (cur_pc);
size_t insn_len = loongarch_insn_length (insn);
@@ -356,6 +482,30 @@ loongarch_deal_with_atomic_sequence (struct regcache *regcache, CORE_ADDR cur_pc
if (!loongarch_insn_is_ll (insn))
return {};
+ /* Record the address of a Load Linked instruction */
+ ll_insn_addr = cur_pc;
+
+ for (int insn_count = 0; insn_count < atomic_sequence_length; ++insn_count)
+ {
+ cur_pc += insn_len;
+ insn = loongarch_fetch_instruction (cur_pc);
+
+ if (loongarch_insn_is_sc (insn))
+ {
+ /* Record the address of a Store Conditional instruction */
+ sc_insn_addr = cur_pc;
+ found_atomic_sequence_endpoint = true;
+ break;
+ }
+ }
+
+ /* We didn't find a closing Store Conditional instruction, fallback to the standard code. */
+ if (!found_atomic_sequence_endpoint)
+ return {};
+
+ /* Restore current PC with the address of a Load Linked instruction */
+ cur_pc = ll_insn_addr;
+
/* Assume that no atomic sequence is longer than "atomic_sequence_length" instructions. */
for (int insn_count = 0; insn_count < atomic_sequence_length; ++insn_count)
{
@@ -371,24 +521,20 @@ loongarch_deal_with_atomic_sequence (struct regcache *regcache, CORE_ADDR cur_pc
which is outside of the ll/sc atomic instruction sequence. */
else if (loongarch_insn_is_cond_branch (insn))
{
- next_pc = loongarch_next_pc (regcache, cur_pc);
- if (next_pc != cur_pc + insn_len)
+ next_pc = cond_branch_destination_address (cur_pc, insn);
+ /* Restrict the breakpoint outside of the atomic sequence. */
+ if (next_pc < ll_insn_addr || next_pc > sc_insn_addr)
next_pcs.push_back (next_pc);
}
/* Look for a Store Conditional instruction which closes the atomic sequence. */
else if (loongarch_insn_is_sc (insn))
{
- found_atomic_sequence_endpoint = true;
next_pc = cur_pc + insn_len;
next_pcs.push_back (next_pc);
break;
}
}
- /* We didn't find a closing Store Conditional instruction, fallback to the standard code. */
- if (!found_atomic_sequence_endpoint)
- return {};
-
return next_pcs;
}
@@ -426,38 +572,157 @@ loongarch_frame_align (struct gdbarch *gdbarch, CORE_ADDR addr)
return align_down (addr, 16);
}
+/* Analyze the function prologue for THIS_FRAME and populate the frame
+ cache CACHE. */
+
+static void
+loongarch_analyze_prologue (const frame_info_ptr &this_frame,
+ struct loongarch_frame_cache *cache)
+{
+ CORE_ADDR block_addr = get_frame_address_in_block (this_frame);
+ CORE_ADDR prologue_start = 0;
+ CORE_ADDR prologue_end = 0;
+ CORE_ADDR pc = get_frame_pc (this_frame);
+ struct gdbarch *gdbarch = get_frame_arch (this_frame);
+
+ cache->pc = pc;
+
+ /* Assume we do not find a frame. */
+ cache->framebase_reg = -1;
+ cache->framebase_offset = 0;
+
+
+ if (find_pc_partial_function (block_addr, NULL, &prologue_start,
+ &prologue_end))
+ {
+ struct symtab_and_line sal = find_pc_line (prologue_start, 0);
+
+ if (sal.line == 0)
+ {
+ /* No line info so use the current PC. */
+ prologue_end = pc;
+ }
+ else if (sal.end < prologue_end)
+ {
+ if (sal.symtab != NULL && sal.symtab->language () == language_asm)
+ {
+ /* This sal.end usually cannot point to prologue_end correctly
+ in asm file. */
+ prologue_end = pc;
+ }
+ else
+ {
+ /* The next line begins after the prologue_end. */
+ prologue_end = sal.end;
+ }
+ }
+
+ }
+ else
+ {
+ /* We're in the boondocks: we have no idea where the start of the
+ function is. */
+ return;
+ }
+
+ prologue_end = std::min (prologue_end, pc);
+ loongarch_scan_prologue (gdbarch, prologue_start, prologue_end, nullptr, cache);
+}
+
+/* Fill in *CACHE with information about the prologue of *THIS_FRAME. */
+
+static void
+loongarch_frame_cache_1 (const frame_info_ptr &this_frame,
+ struct loongarch_frame_cache *cache)
+{
+ CORE_ADDR unwound_fp;
+ int reg;
+
+ loongarch_analyze_prologue (this_frame, cache);
+
+ if (cache->framebase_reg == -1)
+ return;
+
+ unwound_fp = get_frame_register_unsigned (this_frame, cache->framebase_reg);
+ if (unwound_fp == 0)
+ return;
+
+ cache->prev_sp = unwound_fp;
+ cache->prev_sp += cache->framebase_offset;
+
+ /* Calculate actual addresses of saved registers using offsets
+ determined by loongarch_scan_prologue. */
+ for (reg = 0; reg < gdbarch_num_regs (get_frame_arch (this_frame)); reg++)
+ if (cache->saved_regs[reg].is_addr ())
+ cache->saved_regs[reg].set_addr (cache->saved_regs[reg].addr ()
+ + cache->prev_sp);
+
+ cache->func = get_frame_func (this_frame);
+
+ cache->available_p = 1;
+}
+
/* Generate, or return the cached frame cache for frame unwinder. */
-static struct trad_frame_cache *
+static struct loongarch_frame_cache *
loongarch_frame_cache (const frame_info_ptr &this_frame, void **this_cache)
{
- struct trad_frame_cache *cache;
- CORE_ADDR pc;
+ struct loongarch_frame_cache *cache;
- if (*this_cache != nullptr)
- return (struct trad_frame_cache *) *this_cache;
+ if (*this_cache != NULL)
+ return (struct loongarch_frame_cache *) *this_cache;
- cache = trad_frame_cache_zalloc (this_frame);
+ cache = FRAME_OBSTACK_ZALLOC (struct loongarch_frame_cache);
+ cache->saved_regs = trad_frame_alloc_saved_regs (this_frame);
*this_cache = cache;
- trad_frame_set_reg_realreg (cache, LOONGARCH_PC_REGNUM, LOONGARCH_RA_REGNUM);
-
- pc = get_frame_address_in_block (this_frame);
- trad_frame_set_id (cache, frame_id_build_unavailable_stack (pc));
+ try
+ {
+ loongarch_frame_cache_1 (this_frame, cache);
+ }
+ catch (const gdb_exception_error &ex)
+ {
+ if (ex.error != NOT_AVAILABLE_ERROR)
+ throw;
+ }
return cache;
}
+/* Implement the "stop_reason" frame_unwind method. */
+
+static enum unwind_stop_reason
+loongarch_frame_unwind_stop_reason (const frame_info_ptr &this_frame,
+ void **this_cache)
+{
+ struct loongarch_frame_cache *cache
+ = loongarch_frame_cache (this_frame, this_cache);
+
+ if (!cache->available_p)
+ return UNWIND_UNAVAILABLE;
+
+ /* We've hit a wall, stop. */
+ if (cache->prev_sp == 0)
+ return UNWIND_OUTERMOST;
+
+ return UNWIND_NO_REASON;
+}
+
/* Implement the this_id callback for frame unwinder. */
static void
loongarch_frame_this_id (const frame_info_ptr &this_frame, void **prologue_cache,
struct frame_id *this_id)
{
- struct trad_frame_cache *info;
+ struct loongarch_frame_cache *cache
+ = loongarch_frame_cache (this_frame, prologue_cache);
- info = loongarch_frame_cache (this_frame, prologue_cache);
- trad_frame_get_id (info, this_id);
+ /* Our frame ID for a normal frame is the current function's starting
+ PC and the caller's SP when we were called. */
+ if (!cache->available_p)
+ *this_id = frame_id_build_unavailable_stack (cache->func);
+ else
+ *this_id = frame_id_build (cache->prev_sp, cache->func);
}
/* Implement the prev_register callback for frame unwinder. */
@@ -466,17 +731,55 @@ static struct value *
loongarch_frame_prev_register (const frame_info_ptr &this_frame,
void **prologue_cache, int regnum)
{
- struct trad_frame_cache *info;
+ struct loongarch_frame_cache *cache
+ = loongarch_frame_cache (this_frame, prologue_cache);
+
+ /* If we are asked to unwind the PC, then we need to return the RA
+ instead. The prologue may save PC, but it will point into this
+ frame's prologue, not the previou frame's resume location. */
+ if (regnum == LOONGARCH_PC_REGNUM)
+ {
+ CORE_ADDR ra;
+ ra = frame_unwind_register_unsigned (this_frame, LOONGARCH_RA_REGNUM);
+
+ return frame_unwind_got_constant (this_frame, regnum, ra);
+ }
+
+ /* SP is generally not saved to the stack, but this frame is
+ identified by the next frame's stack pointer at the time of the
+ call. The value was already reconstructed into PREV_SP. */
+ /*
+ addi.d $sp, $sp, -32
+ st.d $ra, $sp, 24
+ st.d $fp, $sp, 16
+ addi.d $fp, $sp, 32
+
+ +->+----------+
+ | | saved ra |
+ | | saved fp |
+ | | |
+ | | |
+ | +----------+ <- Previous SP == FP
+ | | saved ra |
+ +--| saved fp |
+ | |
+ | |
+ +----------+ <- SP
+ */
+
+ if (regnum == LOONGARCH_SP_REGNUM)
+ return frame_unwind_got_constant (this_frame, regnum, cache->prev_sp);
+
+ return trad_frame_get_prev_register (this_frame, cache->saved_regs, regnum);
- info = loongarch_frame_cache (this_frame, prologue_cache);
- return trad_frame_get_register (info, this_frame, regnum);
}
+/* LoongArch prologue unwinder. */
static const struct frame_unwind_legacy loongarch_frame_unwind (
"loongarch prologue",
/*.type =*/NORMAL_FRAME,
/*.unwinder_class=*/FRAME_UNWIND_ARCH,
- /*.stop_reason =*/default_frame_unwind_stop_reason,
+ /*.stop_reason =*/loongarch_frame_unwind_stop_reason,
/*.this_id =*/loongarch_frame_this_id,
/*.prev_register =*/loongarch_frame_prev_register,
/*.unwind_data =*/nullptr,
@@ -485,6 +788,26 @@ static const struct frame_unwind_legacy loongarch_frame_unwind (
/*.prev_arch =*/nullptr
);
+/* Return the frame base address of *THIS_FRAME. */
+
+static CORE_ADDR
+loongarch_frame_base_address (const frame_info_ptr &this_frame, void **this_cache)
+{
+ struct loongarch_frame_cache *cache
+ = loongarch_frame_cache (this_frame, this_cache);
+
+ return cache->prev_sp - cache->framebase_offset;
+}
+
+/* LoongArch default frame base information. */
+static frame_base loongarch_frame_base =
+{
+ &loongarch_frame_unwind,
+ loongarch_frame_base_address,
+ loongarch_frame_base_address,
+ loongarch_frame_base_address
+};
+
/* Write the contents of buffer VAL into the general-purpose argument
register defined by GAR in REGCACHE. GAR indicates the available
general-purpose argument registers which should be a value in the
@@ -1895,7 +2218,7 @@ loongarch_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_frame_align (gdbarch, loongarch_frame_align);
/* Breakpoint manipulation. */
- set_gdbarch_software_single_step (gdbarch, loongarch_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, loongarch_software_single_step);
set_gdbarch_breakpoint_kind_from_pc (gdbarch, loongarch_breakpoint::kind_from_pc);
set_gdbarch_sw_breakpoint_from_kind (gdbarch, loongarch_breakpoint::bp_from_kind);
set_gdbarch_have_nonsteppable_watchpoint (gdbarch, 1);
@@ -1905,6 +2228,8 @@ loongarch_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
dwarf2_append_unwinders (gdbarch);
frame_unwind_append_unwinder (gdbarch, &loongarch_frame_unwind);
+ frame_base_set_default (gdbarch, &loongarch_frame_base);
+
/* Hook in OS ABI-specific overrides, if they have been registered. */
gdbarch_init_osabi (info, gdbarch);
set_gdbarch_register_reggroup_p (gdbarch, loongarch_register_reggroup_p);
diff --git a/gdb/m2-exp.y b/gdb/m2-exp.y
index 5c31a5e..55d5f2e 100644
--- a/gdb/m2-exp.y
+++ b/gdb/m2-exp.y
@@ -507,7 +507,7 @@ fblock : block COLONCOLON BLOCKNAME
{ struct symbol *tem
= lookup_symbol (copy_name ($3).c_str (), $1,
SEARCH_VFT, 0).symbol;
- if (!tem || tem->aclass () != LOC_BLOCK)
+ if (!tem || tem->loc_class () != LOC_BLOCK)
error (_("No function \"%s\" in specified context."),
copy_name ($3).c_str ());
$$ = tem;
@@ -928,7 +928,7 @@ yylex (void)
sym = lookup_symbol (tmp.c_str (), pstate->expression_context_block,
SEARCH_VFT, 0).symbol;
- if (sym && sym->aclass () == LOC_BLOCK)
+ if (sym && sym->loc_class () == LOC_BLOCK)
return BLOCKNAME;
if (lookup_typename (pstate->language (),
tmp.c_str (), pstate->expression_context_block, 1))
@@ -936,7 +936,7 @@ yylex (void)
if(sym)
{
- switch(sym->aclass ())
+ switch(sym->loc_class ())
{
case LOC_STATIC:
case LOC_REGISTER:
diff --git a/gdb/machoread.c b/gdb/machoread.c
index ffee181..30d376c 100644
--- a/gdb/machoread.c
+++ b/gdb/machoread.c
@@ -901,13 +901,13 @@ macho_symfile_offsets (struct objfile *objfile,
for (i = 0; i < addrs.size (); i++)
{
- for (obj_section *osect : objfile->sections ())
+ for (obj_section &osect : objfile->sections ())
{
- const char *bfd_sect_name = osect->the_bfd_section->name;
+ const char *bfd_sect_name = osect.the_bfd_section->name;
if (bfd_sect_name == addrs[i].name)
{
- osect->set_offset (addrs[i].addr);
+ osect.set_offset (addrs[i].addr);
break;
}
}
@@ -915,10 +915,10 @@ macho_symfile_offsets (struct objfile *objfile,
objfile->sect_index_text = 0;
- for (obj_section *osect : objfile->sections ())
+ for (obj_section &osect : objfile->sections ())
{
- const char *bfd_sect_name = osect->the_bfd_section->name;
- int sect_index = osect - objfile->sections_start;
+ const char *bfd_sect_name = osect.the_bfd_section->name;
+ int sect_index = &osect - objfile->sections_start;
if (startswith (bfd_sect_name, "LC_SEGMENT."))
bfd_sect_name += 11;
diff --git a/gdb/macroscope.c b/gdb/macroscope.c
index 7aa0784..a8b78c9 100644
--- a/gdb/macroscope.c
+++ b/gdb/macroscope.c
@@ -97,12 +97,12 @@ default_macro_scope ()
{
struct symtab_and_line sal;
frame_info_ptr frame;
- CORE_ADDR pc;
+ std::optional<CORE_ADDR> pc;
/* If there's a selected frame, use its PC. */
frame = deprecated_safe_get_selected_frame ();
- if (frame && get_frame_pc_if_available (frame, &pc))
- sal = find_pc_line (pc, 0);
+ if (frame && (pc = get_frame_pc_if_available (frame)))
+ sal = find_pc_line (*pc, 0);
/* Fall back to the current listing position. */
else
diff --git a/gdb/main.c b/gdb/main.c
index bb8ddc3..3d56a31 100644
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -19,6 +19,7 @@
#include "annotate.h"
#include "exceptions.h"
+#include "gdbsupport/common-inferior.h"
#include "top.h"
#include "ui.h"
#include "target.h"
@@ -29,7 +30,6 @@
#include <sys/types.h>
#include <sys/stat.h>
-#include <ctype.h>
#include "gdbsupport/event-loop.h"
#include "ui-out.h"
@@ -59,6 +59,7 @@
#include "serial.h"
#include "cli-out.h"
#include "bt-utils.h"
+#include "terminal.h"
/* The selected interpreter. */
std::string interpreter_p;
@@ -617,9 +618,20 @@ captured_main_1 (struct captured_main_args *context)
char **argv = context->argv;
static int quiet = 0;
- static int set_args = 0;
static int inhibit_home_gdbinit = 0;
+ /* Has the user passed inferior arguments on the command line. */
+ enum {
+ /* No arguments passed. */
+ NO_ARGS,
+
+ /* Arguments passed with --args. */
+ SET_ESC_ARGS,
+
+ /* Arguments passed with --no-escape-args. */
+ SET_NO_ESC_ARGS
+ } set_args = NO_ARGS;
+
/* Pointers to various arguments from command line. */
char *symarg = NULL;
char *execarg = NULL;
@@ -769,7 +781,12 @@ captured_main_1 (struct captured_main_args *context)
OPT_EIX,
OPT_EIEX,
OPT_READNOW,
- OPT_READNEVER
+ OPT_READNEVER,
+ OPT_SET_ESC_ARGS,
+ OPT_SET_NO_ESC_ARGS,
+#ifdef USE_WIN32API
+ OPT_BINARY_OUTPUT,
+#endif
};
/* This struct requires int* in the struct, but write_files is a bool.
So use this temporary int that we write back after argument parsing. */
@@ -842,9 +859,13 @@ captured_main_1 (struct captured_main_args *context)
{"windows", no_argument, NULL, OPT_WINDOWS},
{"statistics", no_argument, 0, OPT_STATISTICS},
{"write", no_argument, &write_files_1, 1},
- {"args", no_argument, &set_args, 1},
+ {"args", no_argument, nullptr, OPT_SET_ESC_ARGS},
+ {"no-escape-args", no_argument, nullptr, OPT_SET_NO_ESC_ARGS},
{"l", required_argument, 0, 'l'},
{"return-child-result", no_argument, &return_child_result, 1},
+#ifdef USE_WIN32API
+ {"binary-output", no_argument, 0, OPT_BINARY_OUTPUT},
+#endif
{0, no_argument, 0, 0}
};
@@ -852,9 +873,14 @@ captured_main_1 (struct captured_main_args *context)
{
int option_index;
+ /* If the previous argument was --args or --no-escape-args, then
+ stop argument processing. */
+ if (set_args != NO_ARGS)
+ break;
+
c = getopt_long_only (argc, argv, "",
long_options, &option_index);
- if (c == EOF || set_args)
+ if (c == EOF)
break;
/* Long option that takes an argument. */
@@ -935,6 +961,12 @@ captured_main_1 (struct captured_main_args *context)
case OPT_EIEX:
cmdarg_vec.emplace_back (CMDARG_EARLYINIT_COMMAND, optarg);
break;
+ case OPT_SET_ESC_ARGS:
+ set_args = SET_ESC_ARGS;
+ break;
+ case OPT_SET_NO_ESC_ARGS:
+ set_args = SET_NO_ESC_ARGS;
+ break;
case 'B':
batch_flag = batch_silent = 1;
gdb_stdout = new null_file ();
@@ -1018,6 +1050,12 @@ captured_main_1 (struct captured_main_args *context)
}
break;
+#ifdef USE_WIN32API
+ case OPT_BINARY_OUTPUT:
+ set_output_translation_mode_binary ();
+ break;
+#endif
+
case '?':
error (_("Use `%s --help' for a complete list of options."),
gdb_program_name);
@@ -1068,7 +1106,7 @@ captured_main_1 (struct captured_main_args *context)
/* Now that gdb_init has created the initial inferior, we're in
position to set args for that inferior. */
- if (set_args)
+ if (set_args != NO_ARGS)
{
/* The remaining options are the command-line options for the
inferior. The first one is the sym/exec file, and the rest
@@ -1080,10 +1118,9 @@ captured_main_1 (struct captured_main_args *context)
symarg = argv[optind];
execarg = argv[optind];
++optind;
- current_inferior ()->set_args
- (gdb::array_view<char * const> (&argv[optind], argc - optind),
- startup_with_shell);
- }
+ gdb::array_view<char * const> arg_view (&argv[optind], argc - optind);
+ current_inferior ()->set_args (arg_view, (set_args == SET_ESC_ARGS));
+ }
else
{
/* OK, that's all the options. */
@@ -1253,7 +1290,7 @@ captured_main_1 (struct captured_main_args *context)
If pid_or_core_arg's first character is a digit, try attach
first and then corefile. Otherwise try just corefile. */
- if (isdigit (pid_or_core_arg[0]))
+ if (c_isdigit (pid_or_core_arg[0]))
{
ret = catch_command_errors (attach_command, pid_or_core_arg,
!batch_flag);
@@ -1330,10 +1367,8 @@ captured_main_1 (struct captured_main_args *context)
}
static void
-captured_main (void *data)
+captured_main (captured_main_args *context)
{
- struct captured_main_args *context = (struct captured_main_args *) data;
-
captured_main_1 (context);
/* NOTE: cagney/1999-11-07: There is probably no reason for not
@@ -1402,7 +1437,8 @@ This is the GNU debugger. Usage:\n\n\
gdb_puts (_("\
Selection of debuggee and its files:\n\n\
--args Arguments after executable-file are passed to inferior.\n\
- --core=COREFILE Analyze the core dump COREFILE.\n\
+ --no-escape-args Like --args, but arguments are not escaped.\n \
+ --core=COREFILE Analyze the core dump COREFILE.\n \
--exec=EXECFILE Use EXECFILE as the executable.\n\
--pid=PID Attach to running process PID.\n\
--directory=DIR Search for source files in DIR.\n\
@@ -1459,8 +1495,13 @@ Remote debugging options:\n\n\
Other options:\n\n\
--cd=DIR Change current directory to DIR.\n\
--data-directory=DIR, -D\n\
- Set GDB's data-directory to DIR.\n\
-"), stream);
+ Set GDB's data-directory to DIR.\n"
+#ifdef USE_WIN32API
+"\
+ --binary-output Set the translation mode of stdout/stderr to binary,\n\
+ disabling CRLF translation.\n"
+#endif
+), stream);
gdb_puts (_("\n\
At startup, GDB reads the following early init files and executes their\n\
commands:\n\
diff --git a/gdb/maint.c b/gdb/maint.c
index 78dea22..8bc2856 100644
--- a/gdb/maint.c
+++ b/gdb/maint.c
@@ -21,7 +21,6 @@
#include "arch-utils.h"
-#include <ctype.h>
#include <cmath>
#include <signal.h>
#include "command.h"
@@ -571,9 +570,9 @@ maintenance_translate_address (const char *arg, int from_tty)
sect = NULL;
p = arg;
- if (!isdigit (*p))
+ if (!c_isdigit (*p))
{ /* See if we have a valid section name. */
- while (*p && !isspace (*p)) /* Find end of section name. */
+ while (*p && !c_isspace (*p)) /* Find end of section name. */
p++;
if (*p == '\000') /* End of command? */
error (_("Need to specify section name and address"));
@@ -582,9 +581,9 @@ maintenance_translate_address (const char *arg, int from_tty)
p = skip_spaces (p + 1);
for (objfile *objfile : current_program_space->objfiles ())
- for (obj_section *iter : objfile->sections ())
+ for (obj_section &iter : objfile->sections ())
{
- if (strncmp (iter->the_bfd_section->name, arg, arg_len) == 0)
+ if (strncmp (iter.the_bfd_section->name, arg, arg_len) == 0)
goto found;
}
diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c
index 5bb15c2..a7d26c3 100644
--- a/gdb/mdebugread.c
+++ b/gdb/mdebugread.c
@@ -248,7 +248,7 @@ static struct type *parse_type (int, union aux_ext *, unsigned int, int *,
int, const char *);
static struct symbol *mylookup_symbol (const char *, const struct block *,
- domain_enum, enum address_class);
+ domain_enum, location_class);
static void sort_blocks (struct symtab *);
@@ -550,7 +550,7 @@ static const struct symbol_register_ops mdebug_register_funcs = {
mdebug_reg_to_regnum
};
-/* The "aclass" indices for computed symbols. */
+/* The "loc_class" indices for computed symbols. */
static int mdebug_register_index;
static int mdebug_regparm_index;
@@ -559,11 +559,11 @@ static int mdebug_regparm_index;
static void
add_data_symbol (SYMR *sh, union aux_ext *ax, int bigend,
- struct symbol *s, int aclass_index, struct block *b,
+ struct symbol *s, int loc_class_index, struct block *b,
struct objfile *objfile, const char *name)
{
s->set_domain (VAR_DOMAIN);
- s->set_aclass_index (aclass_index);
+ s->set_loc_class_index (loc_class_index);
add_symbol (s, top_stack->cur_st, b);
/* Type could be missing if file is compiled without debugging info. */
@@ -688,19 +688,19 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
{
case scRegister:
/* Pass by value in register. */
- s->set_aclass_index (mdebug_register_index);
+ s->set_loc_class_index (mdebug_register_index);
break;
case scVar:
/* Pass by reference on stack. */
- s->set_aclass_index (LOC_REF_ARG);
+ s->set_loc_class_index (LOC_REF_ARG);
break;
case scVarRegister:
/* Pass by reference in register. */
- s->set_aclass_index (mdebug_regparm_index);
+ s->set_loc_class_index (mdebug_regparm_index);
break;
default:
/* Pass by value on stack. */
- s->set_aclass_index (LOC_ARG);
+ s->set_loc_class_index (LOC_ARG);
break;
}
s->set_value_longest (svalue);
@@ -711,7 +711,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
case stLabel: /* label, goes into current block. */
s = new_symbol (name);
s->set_domain (LABEL_DOMAIN); /* So that it can be used */
- s->set_aclass_index (LOC_LABEL); /* but not misused. */
+ s->set_loc_class_index (LOC_LABEL); /* but not misused. */
s->set_section_index (section_index);
s->set_value_address (sh->value);
s->set_type (builtin_type (objfile)->builtin_int);
@@ -753,7 +753,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
}
s = new_symbol (name);
s->set_domain (FUNCTION_DOMAIN);
- s->set_aclass_index (LOC_BLOCK);
+ s->set_loc_class_index (LOC_BLOCK);
s->set_section_index (section_index);
/* Type of the return value. */
if (SC_IS_UNDEF (sh->sc) || sh->sc == scNil)
@@ -1034,7 +1034,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
t->set_code (type_code);
t->set_length (sh->value);
t->alloc_fields (nfields);
- f = t->fields();
+ f = t->fields ().data ();
if (type_code == TYPE_CODE_ENUM)
{
@@ -1074,7 +1074,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
enum_sym->set_linkage_name
(obstack_strdup (&mdebugread_objfile->objfile_obstack,
f->name ()));
- enum_sym->set_aclass_index (LOC_CONST);
+ enum_sym->set_loc_class_index (LOC_CONST);
enum_sym->set_type (t);
enum_sym->set_domain (VAR_DOMAIN);
enum_sym->set_value_longest (tsym.value);
@@ -1107,7 +1107,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
s = new_symbol (name);
s->set_domain (STRUCT_DOMAIN);
- s->set_aclass_index (LOC_TYPEDEF);
+ s->set_loc_class_index (LOC_TYPEDEF);
s->set_value_longest (0);
s->set_type (t);
add_symbol (s, top_stack->cur_st, top_stack->cur_block);
@@ -1164,7 +1164,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
/* Make up special symbol to contain procedure specific info. */
s = new_symbol (MDEBUG_EFI_SYMBOL_NAME);
s->set_domain (LABEL_DOMAIN);
- s->set_aclass_index (LOC_CONST);
+ s->set_loc_class_index (LOC_CONST);
s->set_type (builtin_type (mdebugread_objfile)->builtin_void);
e = OBSTACK_ZALLOC (&mdebugread_objfile->objfile_obstack,
mdebug_extra_func_info);
@@ -1297,7 +1297,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
break;
s = new_symbol (name);
s->set_domain (TYPE_DOMAIN);
- s->set_aclass_index (LOC_TYPEDEF);
+ s->set_loc_class_index (LOC_TYPEDEF);
s->set_value_block (top_stack->cur_block);
s->set_type (t);
add_symbol (s, top_stack->cur_st, top_stack->cur_block);
@@ -3369,7 +3369,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
for (cur_sdx = 0; cur_sdx < fh->csym;)
{
char *sym_name;
- enum address_class theclass;
+ location_class loc_class;
unrelocated_addr minsym_value;
int section = -1;
@@ -3526,7 +3526,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
reader.record_with_info (sym_name, minsym_value,
mst_file_bss,
SECT_OFF_BSS (objfile));
- theclass = LOC_STATIC;
+ loc_class = LOC_STATIC;
break;
case stIndirect: /* Irix5 forward declaration */
@@ -3538,11 +3538,11 @@ parse_partial_symbols (minimal_symbol_reader &reader,
structs from alpha and mips cc. */
if (sh.iss == 0 || has_opaque_xref (fh, &sh))
goto skip;
- theclass = LOC_TYPEDEF;
+ loc_class = LOC_TYPEDEF;
break;
case stConstant: /* Constant decl */
- theclass = LOC_CONST;
+ loc_class = LOC_CONST;
break;
case stUnion:
@@ -3600,7 +3600,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
}
/* Use this gdb symbol. */
pst->add_psymbol (sym_name, true,
- VAR_DOMAIN, theclass, section,
+ VAR_DOMAIN, loc_class, section,
psymbol_placement::STATIC,
unrelocated_addr (sh.value),
psymtab_language,
@@ -3616,7 +3616,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
PST_PRIVATE (save_pst)->extern_tab = ext_ptr;
for (; --cur_sdx >= 0; ext_ptr++)
{
- enum address_class theclass;
+ location_class loc_class;
SYMR *psh;
CORE_ADDR svalue;
int section;
@@ -3663,7 +3663,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
Ignore them, as parse_external will ignore them too. */
continue;
case stLabel:
- theclass = LOC_LABEL;
+ loc_class = LOC_LABEL;
break;
default:
unknown_ext_complaint (debug_info->ssext + psh->iss);
@@ -3675,12 +3675,12 @@ parse_partial_symbols (minimal_symbol_reader &reader,
if (SC_IS_COMMON (psh->sc))
continue;
- theclass = LOC_STATIC;
+ loc_class = LOC_STATIC;
break;
}
char *sym_name = debug_info->ssext + psh->iss;
pst->add_psymbol (sym_name, true,
- VAR_DOMAIN, theclass,
+ VAR_DOMAIN, loc_class,
section,
psymbol_placement::GLOBAL,
unrelocated_addr (svalue),
@@ -3991,7 +3991,7 @@ mdebug_expand_psymtab (legacy_psymtab *pst, struct objfile *objfile)
struct symbol *s = new_symbol (MDEBUG_EFI_SYMBOL_NAME);
s->set_domain (LABEL_DOMAIN);
- s->set_aclass_index (LOC_CONST);
+ s->set_loc_class_index (LOC_CONST);
s->set_type (builtin_type (objfile)->builtin_void);
s->set_value_bytes ((gdb_byte *) e);
e->pdr.framereg = -1;
@@ -4464,7 +4464,7 @@ cross_ref (int fd, union aux_ext *ax, struct type **tpp,
static struct symbol *
mylookup_symbol (const char *name, const struct block *block,
- domain_enum domain, enum address_class theclass)
+ domain_enum domain, location_class loc_class)
{
int inc;
@@ -4473,14 +4473,14 @@ mylookup_symbol (const char *name, const struct block *block,
{
if (sym->linkage_name ()[0] == inc
&& sym->domain () == domain
- && sym->aclass () == theclass
+ && sym->loc_class () == loc_class
&& strcmp (sym->linkage_name (), name) == 0)
return sym;
}
block = block->superblock ();
if (block)
- return mylookup_symbol (name, block, domain, theclass);
+ return mylookup_symbol (name, block, domain, loc_class);
return 0;
}
diff --git a/gdb/mi/mi-cmd-break.c b/gdb/mi/mi-cmd-break.c
index e4cb2e7..1cb8435 100644
--- a/gdb/mi/mi-cmd-break.c
+++ b/gdb/mi/mi-cmd-break.c
@@ -28,7 +28,6 @@
#include "language.h"
#include "location.h"
#include "linespec.h"
-#include <ctype.h>
#include "tracepoint.h"
enum
@@ -133,7 +132,7 @@ mi_argv_to_format (const char *const *argv, int argc)
result += "\\\"";
break;
default:
- if (isprint (argv[0][i]))
+ if (c_isprint (argv[0][i]))
result += argv[0][i];
else
{
diff --git a/gdb/mi/mi-cmd-stack.c b/gdb/mi/mi-cmd-stack.c
index cc26747..52ae11b 100644
--- a/gdb/mi/mi-cmd-stack.c
+++ b/gdb/mi/mi-cmd-stack.c
@@ -29,10 +29,8 @@
#include "valprint.h"
#include "mi-getopt.h"
#include "extension.h"
-#include <ctype.h>
#include "mi-parse.h"
#include <optional>
-#include "gdbsupport/gdb-safe-ctype.h"
#include "inferior.h"
enum what_to_list { locals, arguments, all };
@@ -604,7 +602,7 @@ list_args_or_locals (const frame_print_options &fp_opts,
{
int print_me = 0;
- switch (sym->aclass ())
+ switch (sym->loc_class ())
{
default:
case LOC_UNDEF: /* catches errors */
diff --git a/gdb/mi/mi-cmd-var.c b/gdb/mi/mi-cmd-var.c
index 9cbb857..09d6107 100644
--- a/gdb/mi/mi-cmd-var.c
+++ b/gdb/mi/mi-cmd-var.c
@@ -25,7 +25,6 @@
#include "varobj.h"
#include "language.h"
#include "value.h"
-#include <ctype.h>
#include "mi-getopt.h"
#include "gdbthread.h"
#include "mi-parse.h"
@@ -109,7 +108,7 @@ mi_cmd_var_create (const char *command, const char *const *argv, int argc)
gen_name = varobj_gen_name ();
name = gen_name.c_str ();
}
- else if (!isalpha (name[0]))
+ else if (!c_isalpha (name[0]))
error (_("-var-create: name of object must begin with a letter"));
if (strcmp (frame, "*") == 0)
diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c
index 789e6fa..bcc32f9 100644
--- a/gdb/mi/mi-main.c
+++ b/gdb/mi/mi-main.c
@@ -52,7 +52,6 @@
#include <optional>
#include "gdbsupport/byte-vector.h"
-#include <ctype.h>
#include "gdbsupport/run-time-clock.h"
#include <chrono>
#include "progspace-and-thread.h"
diff --git a/gdb/mi/mi-parse.c b/gdb/mi/mi-parse.c
index 0af90cb..58bdf4a 100644
--- a/gdb/mi/mi-parse.c
+++ b/gdb/mi/mi-parse.c
@@ -22,7 +22,6 @@
#include "mi-cmds.h"
#include "mi-parse.h"
-#include <ctype.h>
#include "cli/cli-utils.h"
#include "language.h"
@@ -61,7 +60,7 @@ mi_parse_escape (const char **string_ptr)
while (++count < 3)
{
c = (**string_ptr);
- if (isdigit (c) && c != '8' && c != '9')
+ if (c_isdigit (c) && c != '8' && c != '9')
{
(*string_ptr)++;
i *= 8;
@@ -162,7 +161,7 @@ mi_parse::parse_argv ()
return;
}
/* Insist on trailing white space. */
- if (chp[1] != '\0' && !isspace (chp[1]))
+ if (chp[1] != '\0' && !c_isspace (chp[1]))
{
freeargv (argv);
return;
@@ -193,7 +192,7 @@ mi_parse::parse_argv ()
int len;
const char *start = chp;
- while (*chp != '\0' && !isspace (*chp))
+ while (*chp != '\0' && !c_isspace (*chp))
{
chp++;
}
@@ -313,7 +312,7 @@ mi_parse::mi_parse (const char *cmd, std::string *token)
{
const char *tmp = chp + 1; /* discard ``-'' */
- for (; *chp && !isspace (*chp); chp++)
+ for (; *chp && !c_isspace (*chp); chp++)
;
this->command = make_unique_xstrndup (tmp, chp - tmp);
}
@@ -391,7 +390,7 @@ mi_parse::mi_parse (const char *cmd, std::string *token)
else
break;
- if (*chp != '\0' && !isspace (*chp))
+ if (*chp != '\0' && !c_isspace (*chp))
error (_("Invalid value for the '%s' option"), option);
chp = skip_spaces (chp);
}
diff --git a/gdb/microblaze-tdep.c b/gdb/microblaze-tdep.c
index 7b58220..404e4cd 100644
--- a/gdb/microblaze-tdep.c
+++ b/gdb/microblaze-tdep.c
@@ -590,6 +590,98 @@ microblaze_stabs_argument_has_addr (struct gdbarch *gdbarch, struct type *type)
return (type->length () == 16);
}
+/* Return next pc values : next in sequence and/or branch/return target. */
+
+static std::vector<CORE_ADDR>
+microblaze_get_next_pcs (regcache *regcache)
+{
+ CORE_ADDR pc = regcache_read_pc (regcache);
+ unsigned long insn = microblaze_fetch_instruction (pc);
+
+ enum microblaze_instr_type insn_type;
+ short delay_slots;
+ bool isunsignednum;
+
+ /* If the current instruction is an imm, look at the inst after. */
+
+ get_insn_microblaze (insn, &isunsignednum, &insn_type, &delay_slots);
+
+ int imm;
+ bool immfound = false;
+
+ if (insn_type == immediate_inst)
+ {
+ int rd, ra, rb;
+ immfound = true;
+ microblaze_decode_insn (insn, &rd, &ra, &rb, &imm);
+ pc += INST_WORD_SIZE;
+ insn = microblaze_fetch_instruction (pc);
+ get_insn_microblaze (insn, &isunsignednum, &insn_type, &delay_slots);
+ }
+
+ std::optional<CORE_ADDR> next_pc, branch_or_return_pc;
+
+ /* Compute next instruction address - skip delay slots if any. */
+
+ if (insn_type != return_inst)
+ next_pc = pc + INST_WORD_SIZE + (delay_slots * INST_WORD_SIZE);
+
+ microblaze_debug ("single-step insn_type=0x%x pc=%s insn=0x%lx",
+ insn_type, core_addr_to_string_nz (pc), insn);
+
+ /* Compute target instruction address for branch or return instruction. */
+ if (insn_type == branch_inst || insn_type == return_inst)
+ {
+ int limm;
+ int lrd, lra, lrb;
+ bool targetvalid;
+ bool unconditionalbranch;
+
+ microblaze_decode_insn (insn, &lrd, &lra, &lrb, &limm);
+
+ ULONGEST ra = regcache_raw_get_unsigned (regcache, lra);
+ ULONGEST rb = regcache_raw_get_unsigned (regcache, lrb);
+
+ branch_or_return_pc
+ = microblaze_get_target_address (insn, immfound,
+ imm, pc, ra, rb, &targetvalid,
+ &unconditionalbranch);
+
+ microblaze_debug ("single-step uncondbr=%d targetvalid=%d target=%s",
+ unconditionalbranch, targetvalid,
+ core_addr_to_string_nz (*branch_or_return_pc));
+
+ /* Can't reach next address. */
+ if (unconditionalbranch)
+ next_pc.reset ();
+
+ /* Can't reach a distinct (not here) target address. */
+ if (!targetvalid
+ || branch_or_return_pc == pc
+ || (next_pc.has_value () && (branch_or_return_pc == next_pc)))
+ branch_or_return_pc.reset ();
+ } /* if (branch or return instruction). */
+
+ /* Create next_pcs vector to return. */
+
+ std::vector<CORE_ADDR> next_pcs;
+
+ if (next_pc.has_value ())
+ {
+ next_pcs.push_back (*next_pc);
+ microblaze_debug ("push_back next_pc(%s)",
+ core_addr_to_string_nz (*next_pc));
+ }
+
+ if (branch_or_return_pc.has_value ())
+ {
+ next_pcs.push_back (*branch_or_return_pc);
+ microblaze_debug ("push_back branch_or_return_pc(%s)",
+ core_addr_to_string_nz (*branch_or_return_pc));
+ }
+
+ return next_pcs;
+}
static int dwarf2_to_reg_map[78] =
{ 0 /* r0 */, 1 /* r1 */, 2 /* r2 */, 3 /* r3 */, /* 0- 3 */
@@ -715,6 +807,8 @@ microblaze_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_sw_breakpoint_from_kind (gdbarch,
microblaze_breakpoint::bp_from_kind);
+ set_gdbarch_get_next_pcs (gdbarch, microblaze_get_next_pcs);
+
set_gdbarch_frame_args_skip (gdbarch, 8);
set_gdbarch_unwind_pc (gdbarch, microblaze_unwind_pc);
diff --git a/gdb/microblaze-tdep.h b/gdb/microblaze-tdep.h
index b2fb5e7..852c9eb 100644
--- a/gdb/microblaze-tdep.h
+++ b/gdb/microblaze-tdep.h
@@ -118,6 +118,6 @@ struct microblaze_frame_cache
/* MICROBLAZE_BREAKPOINT defines the breakpoint that should be used.
Only used for native debugging. */
-#define MICROBLAZE_BREAKPOINT {0xb9, 0xcc, 0x00, 0x60}
+#define MICROBLAZE_BREAKPOINT {0xba, 0x0c, 0x00, 0x18}
#endif /* GDB_MICROBLAZE_TDEP_H */
diff --git a/gdb/mingw-hdep.c b/gdb/mingw-hdep.c
index a4e9cf5..f24d2f5 100644
--- a/gdb/mingw-hdep.c
+++ b/gdb/mingw-hdep.c
@@ -25,6 +25,7 @@
#include "cli/cli-style.h"
#include "command.h"
#include "cli/cli-cmds.h"
+#include "terminal.h"
#include <windows.h>
#include <signal.h>
@@ -448,61 +449,11 @@ install_sigint_handler (c_c_handler_ftype *fn)
return result;
}
-/* Set stdout and stderr handles to translation mode MODE. */
+/* See terminal.h. */
-static void
-set_console_translation_mode (int mode)
-{
- setmode (fileno (stdout), mode);
- setmode (fileno (stderr), mode);
-}
-
-/* Arg in "maint set console-translation-mode <arg>. */
-
-static std::string maint_console_translation_mode;
-
-/* Current value of "maint set/show console-translation-mode". */
-
-static std::string console_translation_mode = "unknown";
-
-/* Sets the console translation mode. */
-
-static void
-set_maint_console_translation_mode (const char *args, int from_tty,
- struct cmd_list_element *c)
-{
- if (maint_console_translation_mode == "binary")
- set_console_translation_mode (O_BINARY);
- else if (maint_console_translation_mode == "text")
- set_console_translation_mode (O_TEXT);
- else
- error (_("Invalid console translation mode: %s"),
- maint_console_translation_mode.c_str ());
-
- console_translation_mode = maint_console_translation_mode;
-}
-
-/* Shows the console translation mode. */
-
-static void
-show_maint_console_translation_mode (struct ui_file *file, int from_tty,
- struct cmd_list_element *c,
- const char *value)
-{
- gdb_printf (file, _("Console translation mode is %s.\n"),
- console_translation_mode.c_str ());
-}
-
-INIT_GDB_FILE (mingw_hdep)
+void
+set_output_translation_mode_binary ()
{
- add_setshow_string_cmd ("console-translation-mode",
- class_maintenance,
- &maint_console_translation_mode, _("\
-Set the translation mode of stdout/stderr."), _("\
-Show the translation mode of stdout/stderr."), _("\
-Use \"binary\", or \"text\""),
- set_maint_console_translation_mode,
- show_maint_console_translation_mode,
- &maintenance_set_cmdlist,
- &maintenance_show_cmdlist);
+ setmode (fileno (stdout), O_BINARY);
+ setmode (fileno (stderr), O_BINARY);
}
diff --git a/gdb/minsyms.c b/gdb/minsyms.c
index 4a6459a..c4a0fa8 100644
--- a/gdb/minsyms.c
+++ b/gdb/minsyms.c
@@ -36,7 +36,6 @@
to figure out what full symbol table entries need to be read in. */
-#include <ctype.h>
#include "maint.h"
#include "symtab.h"
#include "bfd.h"
@@ -52,7 +51,6 @@
#include "cli/cli-utils.h"
#include "gdbsupport/symbol.h"
#include <algorithm>
-#include "gdbsupport/gdb-safe-ctype.h"
#include "gdbsupport/parallel-for.h"
#include "inferior.h"
@@ -712,11 +710,11 @@ static int
frob_address (struct objfile *objfile, CORE_ADDR pc,
unrelocated_addr *unrel_addr)
{
- for (obj_section *iter : objfile->sections ())
+ for (obj_section &iter : objfile->sections ())
{
- if (iter->contains (pc))
+ if (iter.contains (pc))
{
- *unrel_addr = unrelocated_addr (pc - iter->offset ());
+ *unrel_addr = unrelocated_addr (pc - iter.offset ());
return 1;
}
}
diff --git a/gdb/minsyms.h b/gdb/minsyms.h
index 709faa5..dcab475 100644
--- a/gdb/minsyms.h
+++ b/gdb/minsyms.h
@@ -195,7 +195,7 @@ unsigned int msymbol_hash_iw (const char *);
requirements. */
#define SYMBOL_HASH_NEXT(hash, c) \
- ((hash) * 67 + TOLOWER ((unsigned char) (c)) - 113)
+ ((hash) * 67 + c_tolower (c) - 113)
diff --git a/gdb/mips-fbsd-tdep.c b/gdb/mips-fbsd-tdep.c
index c1b5f9c..dc549b5 100644
--- a/gdb/mips-fbsd-tdep.c
+++ b/gdb/mips-fbsd-tdep.c
@@ -480,6 +480,8 @@ mips_fbsd_skip_solib_resolver (struct gdbarch *gdbarch, CORE_ADDR pc)
struct mips_fbsd_ilp32_solib_ops : public svr4_solib_ops
{
+ using svr4_solib_ops::svr4_solib_ops;
+
/* FreeBSD/MIPS uses a slightly different `struct link_map' than the
other FreeBSD platforms as it includes an additional `l_off' member. */
@@ -489,9 +491,9 @@ struct mips_fbsd_ilp32_solib_ops : public svr4_solib_ops
/* Return a new solib_ops for ILP32 FreeBSD/MIPS systems. */
static solib_ops_up
-make_mips_fbsd_ilp32_solib_ops ()
+make_mips_fbsd_ilp32_solib_ops (program_space *pspace)
{
- return std::make_unique<mips_fbsd_ilp32_solib_ops> ();
+ return std::make_unique<mips_fbsd_ilp32_solib_ops> (pspace);
}
/* See mips_fbsd_ilp32_solib_ops. */
@@ -528,6 +530,8 @@ mips_fbsd_ilp32_solib_ops::fetch_link_map_offsets () const
struct mips_fbsd_lp64_solib_ops : public svr4_solib_ops
{
+ using svr4_solib_ops::svr4_solib_ops;
+
/* FreeBSD/MIPS uses a slightly different `struct link_map' than the
other FreeBSD platforms as it includes an additional `l_off' member. */
@@ -537,9 +541,9 @@ struct mips_fbsd_lp64_solib_ops : public svr4_solib_ops
/* Return a new solib_ops for LP64 FreeBSD/MIPS systems. */
static solib_ops_up
-make_mips_fbsd_lp64_solib_ops ()
+make_mips_fbsd_lp64_solib_ops (program_space *pspace)
{
- return std::make_unique<mips_fbsd_lp64_solib_ops> ();
+ return std::make_unique<mips_fbsd_lp64_solib_ops> (pspace);
}
/* See mips_fbsd_lp64_solib_ops. */
@@ -580,7 +584,7 @@ mips_fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
/* Generic FreeBSD support. */
fbsd_init_abi (info, gdbarch);
- set_gdbarch_software_single_step (gdbarch, mips_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, mips_software_single_step);
switch (abi)
{
diff --git a/gdb/mips-linux-tdep.c b/gdb/mips-linux-tdep.c
index e4fa243..b668bcb 100644
--- a/gdb/mips-linux-tdep.c
+++ b/gdb/mips-linux-tdep.c
@@ -671,6 +671,8 @@ mips_linux_in_dynsym_stub (CORE_ADDR pc)
template <typename Base>
struct mips_linux_svr4_solib_ops : public Base
{
+ using Base::Base;
+
bool in_dynsym_resolve_code (CORE_ADDR pc) const override;
};
@@ -700,9 +702,9 @@ using mips_linux_ilp32_svr4_solib_ops
/* Return a new solib_ops for ILP32 Linux/MIPS systems. */
static solib_ops_up
-make_mips_linux_ilp32_svr4_solib_ops ()
+make_mips_linux_ilp32_svr4_solib_ops (program_space *pspace)
{
- return std::make_unique<mips_linux_ilp32_svr4_solib_ops> ();
+ return std::make_unique<mips_linux_ilp32_svr4_solib_ops> (pspace);
}
/* solib_ops for LP64 Linux/MIPS systems. */
@@ -713,9 +715,9 @@ using mips_linux_lp64_svr4_solib_ops
/* Return a new solib_ops for LP64 Linux/MIPS systems. */
static solib_ops_up
-make_mips_linux_lp64_svr4_solib_ops ()
+make_mips_linux_lp64_svr4_solib_ops (program_space *pspace)
{
- return std::make_unique<mips_linux_lp64_svr4_solib_ops> ();
+ return std::make_unique<mips_linux_lp64_svr4_solib_ops> (pspace);
}
/* See the comments for SKIP_SOLIB_RESOLVER at the top of infrun.c,
@@ -1605,7 +1607,7 @@ mips_linux_init_abi (struct gdbarch_info info,
set_gdbarch_skip_solib_resolver (gdbarch, mips_linux_skip_resolver);
- set_gdbarch_software_single_step (gdbarch, mips_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, mips_software_single_step);
/* Enable TLS support. */
set_gdbarch_fetch_tls_load_module_address (gdbarch,
diff --git a/gdb/mips-netbsd-tdep.c b/gdb/mips-netbsd-tdep.c
index 42eb515..3c54c32 100644
--- a/gdb/mips-netbsd-tdep.c
+++ b/gdb/mips-netbsd-tdep.c
@@ -292,6 +292,8 @@ mipsnbsd_cannot_store_register (struct gdbarch *gdbarch, int regno)
struct mips_nbsd_ilp32_svr4_solib_ops : public svr4_solib_ops
{
+ using svr4_solib_ops::svr4_solib_ops;
+
/* NetBSD/MIPS uses a slightly different `struct link_map' than the
other NetBSD platforms. */
link_map_offsets *fetch_link_map_offsets () const override;
@@ -300,9 +302,9 @@ struct mips_nbsd_ilp32_svr4_solib_ops : public svr4_solib_ops
/* Return a new solib_ops for ILP32 NetBSD/MIPS systems. */
static solib_ops_up
-make_mips_nbsd_ilp32_svr4_solib_ops ()
+make_mips_nbsd_ilp32_svr4_solib_ops (program_space *pspace)
{
- return std::make_unique<mips_nbsd_ilp32_svr4_solib_ops> ();
+ return std::make_unique<mips_nbsd_ilp32_svr4_solib_ops> (pspace);
}
/* See mips_nbsd_ilp32_svr4_solib_ops. */
@@ -340,6 +342,8 @@ mips_nbsd_ilp32_svr4_solib_ops::fetch_link_map_offsets () const
struct mips_nbsd_lp64_svr4_solib_ops : public svr4_solib_ops
{
+ using svr4_solib_ops::svr4_solib_ops;
+
/* NetBSD/MIPS uses a slightly different `struct link_map' than the
other NetBSD platforms. */
link_map_offsets *fetch_link_map_offsets () const override;
@@ -348,9 +352,9 @@ struct mips_nbsd_lp64_svr4_solib_ops : public svr4_solib_ops
/* Return a new solib_ops for LP64 NetBSD/MIPS systems. */
static solib_ops_up
-make_mips_nbsd_lp64_svr4_solib_ops ()
+make_mips_nbsd_lp64_svr4_solib_ops (program_space *pspace)
{
- return std::make_unique<mips_nbsd_lp64_svr4_solib_ops> ();
+ return std::make_unique<mips_nbsd_lp64_svr4_solib_ops> (pspace);
}
/* See mips_nbsd_lp64_svr4_solib_ops. */
@@ -399,7 +403,7 @@ mipsnbsd_init_abi (struct gdbarch_info info,
set_gdbarch_cannot_fetch_register (gdbarch, mipsnbsd_cannot_fetch_register);
set_gdbarch_cannot_store_register (gdbarch, mipsnbsd_cannot_store_register);
- set_gdbarch_software_single_step (gdbarch, mips_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, mips_software_single_step);
/* NetBSD/mips has SVR4-style shared libraries. */
set_solib_svr4_ops (gdbarch, (gdbarch_ptr_bit (gdbarch) == 32
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index 32f832b..d072b9a 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -487,7 +487,7 @@ msymbol_is_micromips (struct minimal_symbol *msym)
static void
mips_make_symbol_special (struct symbol *sym, struct objfile *objfile)
{
- if (sym->aclass () == LOC_BLOCK)
+ if (sym->loc_class () == LOC_BLOCK)
{
/* We are in symbol reading so it is OK to cast away constness. */
struct block *block = (struct block *) sym->value_block ();
diff --git a/gdb/moxie-tdep.c b/gdb/moxie-tdep.c
index 2239406..bb48877 100644
--- a/gdb/moxie-tdep.c
+++ b/gdb/moxie-tdep.c
@@ -1088,7 +1088,7 @@ moxie_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
frame_unwind_append_unwinder (gdbarch, &moxie_frame_unwind);
/* Single stepping. */
- set_gdbarch_software_single_step (gdbarch, moxie_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, moxie_software_single_step);
/* Support simple overlay manager. */
set_gdbarch_overlay_update (gdbarch, simple_overlay_update);
diff --git a/gdb/nat/aarch64-hw-point.c b/gdb/nat/aarch64-hw-point.c
index 6d8dce8..8c0854b 100644
--- a/gdb/nat/aarch64-hw-point.c
+++ b/gdb/nat/aarch64-hw-point.c
@@ -710,10 +710,8 @@ aarch64_stopped_data_address (const struct aarch64_debug_reg_state *state,
itself. For instance, the access size of an stp instruction is 16.
So, if we use stp to store to address p, and set a watchpoint on
address p + 8, the reported ADDR_TRAP can be p + 8 (observed on
- RK3399 SOC). But it also can be p (observed on M1 SOC). Checking
- for this situation introduces the possibility of false positives,
- so we only do this for hw_write watchpoints. */
- const CORE_ADDR max_access_size = type == hw_write ? 16 : 8;
+ RK3399 SOC). But it also can be p (observed on M1 SOC). */
+ const CORE_ADDR max_access_size = 16;
const CORE_ADDR addr_watch_base = addr_watch_aligned -
(max_access_size - AARCH64_HWP_MAX_LEN_PER_REG);
if (!(addr_trap >= addr_watch_base
diff --git a/gdb/nat/linux-osdata.c b/gdb/nat/linux-osdata.c
index b52a8ed..0a309b8 100644
--- a/gdb/nat/linux-osdata.c
+++ b/gdb/nat/linux-osdata.c
@@ -21,7 +21,6 @@
#include <sys/types.h>
#include <sys/sysinfo.h>
-#include <ctype.h>
#include <utmp.h>
#include <time.h>
#include <unistd.h>
@@ -205,7 +204,7 @@ get_cores_used_by_process (PID_T pid, int *cores, const int num_cores)
PID_T tid;
int core;
- if (!isdigit (dp->d_name[0])
+ if (!c_isdigit (dp->d_name[0])
|| NAMELEN (dp) > MAX_PID_T_STRLEN)
continue;
@@ -310,7 +309,7 @@ linux_xfer_osdata_processes ()
std::string cores_str;
int i;
- if (!isdigit (dp->d_name[0])
+ if (!c_isdigit (dp->d_name[0])
|| NAMELEN (dp) > MAX_PID_T_STRLEN)
continue;
@@ -419,7 +418,7 @@ linux_xfer_osdata_processgroups ()
{
PID_T pid, pgid;
- if (!isdigit (dp->d_name[0])
+ if (!c_isdigit (dp->d_name[0])
|| NAMELEN (dp) > MAX_PID_T_STRLEN)
continue;
@@ -483,7 +482,7 @@ linux_xfer_osdata_threads ()
struct stat statbuf;
char procentry[sizeof ("/proc/4294967295")];
- if (!isdigit (dp->d_name[0])
+ if (!c_isdigit (dp->d_name[0])
|| NAMELEN (dp) > sizeof ("4294967295") - 1)
continue;
@@ -513,7 +512,7 @@ linux_xfer_osdata_threads ()
PID_T tid;
int core;
- if (!isdigit (dp2->d_name[0])
+ if (!c_isdigit (dp2->d_name[0])
|| NAMELEN (dp2) > sizeof ("4294967295") - 1)
continue;
@@ -633,7 +632,7 @@ linux_xfer_osdata_fds ()
struct stat statbuf;
char procentry[sizeof ("/proc/4294967295")];
- if (!isdigit (dp->d_name[0])
+ if (!c_isdigit (dp->d_name[0])
|| NAMELEN (dp) > sizeof ("4294967295") - 1)
continue;
@@ -662,7 +661,7 @@ linux_xfer_osdata_fds ()
char buf[1000];
ssize_t rslt;
- if (!isdigit (dp2->d_name[0]))
+ if (!c_isdigit (dp2->d_name[0]))
continue;
std::string fdname
diff --git a/gdb/nat/linux-ptrace.c b/gdb/nat/linux-ptrace.c
index f73058b..7df85c1 100644
--- a/gdb/nat/linux-ptrace.c
+++ b/gdb/nat/linux-ptrace.c
@@ -24,12 +24,46 @@
#endif
#include "gdbsupport/eintr.h"
#include "gdbsupport/signals-state-save-restore.h"
+#include "gdbsupport/gdb_file.h"
/* Stores the ptrace options supported by the running kernel.
A value of -1 means we did not check for features yet. A value
of 0 means there are no supported features. */
static int supported_ptrace_options = -1;
+/* The file from which the kernel.yama.ptrace_scope setting is read. */
+
+static constexpr char ptrace_scope_filename[]
+ = "/proc/sys/kernel/yama/ptrace_scope";
+
+/* Reads the yama ptrace_scope value from /proc. Returns the integer value
+ of ptrace_scope (0, 1, 2, or 3) or -1 if the file cannot be read (e.g.,
+ yama is not enabled). */
+
+static int
+get_ptrace_scope ()
+{
+ int ptrace_scope = -1;
+
+ /* The /proc file that contains the system-wide ptrace scope setting. */
+ gdb_file_up fp (fopen (ptrace_scope_filename, "r"));
+ if (fp != nullptr)
+ {
+ if (fscanf (fp.get (), "%d", &ptrace_scope) != 1)
+ {
+ /* If fscanf fails then we couldn't parse the number. But just
+ to be safe, set the scope back to -1 to indicate no value is
+ available. */
+ ptrace_scope = -1;
+ }
+ }
+
+ /* If fp is NULL, it's likely because the yama security module is not
+ active. In this case, we return -1 to indicate that the scope is
+ unknown or not applicable. */
+ return ptrace_scope;
+}
+
/* Find all possible reasons we could fail to attach PID and return these
as a string. An empty string is returned if we didn't find any reason. */
@@ -44,6 +78,13 @@ linux_ptrace_attach_fail_reason (pid_t pid)
_("process %d is already traced by process %d"),
(int) pid, (int) tracerpid);
+ int ptrace_scope = get_ptrace_scope ();
+ if (ptrace_scope > 0)
+ string_appendf (result,
+ _("the %s setting of %d might prevent attaching, "
+ "see 'man 2 ptrace'"),
+ ptrace_scope_filename, ptrace_scope);
+
if (linux_proc_pid_is_zombie_nowarn (pid))
string_appendf (result,
_("process %d is a zombie - the process has already "
diff --git a/gdb/nat/x86-gcc-cpuid.h b/gdb/nat/x86-gcc-cpuid.h
index 1498100..9e27fd8 100644
--- a/gdb/nat/x86-gcc-cpuid.h
+++ b/gdb/nat/x86-gcc-cpuid.h
@@ -1,5 +1,5 @@
/*
- * Helper cpuid.h file copied from gcc-6.0.0. Code in gdb should not
+ * Helper cpuid.h file copied from gcc-14.2.0. Code in gdb should not
* include this directly, but pull in x86-cpuid.h and use that func.
*/
@@ -55,7 +55,7 @@
#define bit_SSE (1 << 25)
#define bit_SSE2 (1 << 26)
-/* Extended Features */
+/* Extended Features (%eax == 0x80000001) */
/* %ecx */
#define bit_LAHF_LM (1 << 0)
#define bit_ABM (1 << 5)
@@ -68,29 +68,28 @@
#define bit_MWAITX (1 << 29)
/* %edx */
-#define bit_AVX5124VNNIW (1 << 2)
-#define bit_AVX5124FMAPS (1 << 3)
#define bit_MMXEXT (1 << 22)
#define bit_LM (1 << 29)
#define bit_3DNOWP (1 << 30)
-#define bit_3DNOW (1 << 31)
+#define bit_3DNOW (1u << 31)
-/* %ebx. */
+/* %ebx */
#define bit_CLZERO (1 << 0)
+#define bit_WBNOINVD (1 << 9)
-/* Extended Features (%eax == 7) */
+/* Extended Features Leaf (%eax == 7, %ecx == 0) */
/* %ebx */
#define bit_FSGSBASE (1 << 0)
-#define bit_BMI (1 << 3)
-#define bit_HLE (1 << 4)
+#define bit_SGX (1 << 2)
+#define bit_BMI (1 << 3)
+#define bit_HLE (1 << 4)
#define bit_AVX2 (1 << 5)
#define bit_BMI2 (1 << 8)
-#define bit_RTM (1 << 11)
-#define bit_MPX (1 << 14)
+#define bit_RTM (1 << 11)
#define bit_AVX512F (1 << 16)
#define bit_AVX512DQ (1 << 17)
#define bit_RDSEED (1 << 18)
-#define bit_ADX (1 << 19)
+#define bit_ADX (1 << 19)
#define bit_AVX512IFMA (1 << 21)
#define bit_CLFLUSHOPT (1 << 23)
#define bit_CLWB (1 << 24)
@@ -99,23 +98,85 @@
#define bit_AVX512CD (1 << 28)
#define bit_SHA (1 << 29)
#define bit_AVX512BW (1 << 30)
-#define bit_AVX512VL (1 << 31)
+#define bit_AVX512VL (1u << 31)
/* %ecx */
-#define bit_PREFETCHWT1 (1 << 0)
+#define bit_PREFETCHWT1 (1 << 0)
#define bit_AVX512VBMI (1 << 1)
-#define bit_PKU (1 << 3)
+#define bit_PKU (1 << 3)
#define bit_OSPKE (1 << 4)
+#define bit_WAITPKG (1 << 5)
+#define bit_AVX512VBMI2 (1 << 6)
+#define bit_SHSTK (1 << 7)
+#define bit_GFNI (1 << 8)
+#define bit_VAES (1 << 9)
+#define bit_VPCLMULQDQ (1 << 10)
+#define bit_AVX512VNNI (1 << 11)
+#define bit_AVX512BITALG (1 << 12)
+#define bit_AVX512VPOPCNTDQ (1 << 14)
+#define bit_RDPID (1 << 22)
+#define bit_KL (1 << 23)
+#define bit_CLDEMOTE (1 << 25)
+#define bit_MOVDIRI (1 << 27)
+#define bit_MOVDIR64B (1 << 28)
+#define bit_ENQCMD (1 << 29)
-/* XFEATURE_ENABLED_MASK register bits (%eax == 13, %ecx == 0) */
-#define bit_BNDREGS (1 << 3)
-#define bit_BNDCSR (1 << 4)
+/* %edx */
+#define bit_AVX5124VNNIW (1 << 2)
+#define bit_AVX5124FMAPS (1 << 3)
+#define bit_UINTR (1 << 5)
+#define bit_AVX512VP2INTERSECT (1 << 8)
+#define bit_SERIALIZE (1 << 14)
+#define bit_TSXLDTRK (1 << 16)
+#define bit_PCONFIG (1 << 18)
+#define bit_IBT (1 << 20)
+#define bit_AMX_BF16 (1 << 22)
+#define bit_AVX512FP16 (1 << 23)
+#define bit_AMX_TILE (1 << 24)
+#define bit_AMX_INT8 (1 << 25)
+
+/* Extended Features Sub-leaf (%eax == 7, %ecx == 1) */
+/* %eax */
+#define bit_SHA512 (1 << 0)
+#define bit_SM3 (1 << 1)
+#define bit_SM4 (1 << 2)
+#define bit_RAOINT (1 << 3)
+#define bit_AVXVNNI (1 << 4)
+#define bit_AVX512BF16 (1 << 5)
+#define bit_CMPCCXADD (1 << 7)
+#define bit_AMX_COMPLEX (1 << 8)
+#define bit_AMX_FP16 (1 << 21)
+#define bit_HRESET (1 << 22)
+#define bit_AVXIFMA (1 << 23)
-/* Extended State Enumeration Sub-leaf (%eax == 13, %ecx == 1) */
+/* %edx */
+#define bit_AVXVNNIINT8 (1 << 4)
+#define bit_AVXNECONVERT (1 << 5)
+#define bit_AVXVNNIINT16 (1 << 10)
+#define bit_PREFETCHI (1 << 14)
+#define bit_USER_MSR (1 << 15)
+#define bit_AVX10 (1 << 19)
+#define bit_APX_F (1 << 21)
+
+/* Extended State Enumeration Sub-leaf (%eax == 0xd, %ecx == 1) */
#define bit_XSAVEOPT (1 << 0)
#define bit_XSAVEC (1 << 1)
#define bit_XSAVES (1 << 3)
+/* PT sub leaf (%eax == 0x14, %ecx == 0) */
+/* %ebx */
+#define bit_PTWRITE (1 << 4)
+
+/* Keylocker leaf (%eax == 0x19) */
+/* %ebx */
+#define bit_AESKLE ( 1<<0 )
+#define bit_WIDEKL ( 1<<2 )
+
+/* AVX10 sub leaf (%eax == 0x24) */
+/* %ebx */
+#define bit_AVX10_256 (1 << 17)
+#define bit_AVX10_512 (1 << 18)
+
/* Signatures for different CPU implementations as returned in uses
of cpuid with level 0. */
#define signature_AMD_ebx 0x68747541
@@ -170,19 +231,40 @@
#define signature_VORTEX_ecx 0x436f5320
#define signature_VORTEX_edx 0x36387865
-#define __cpuid(level, a, b, c, d) \
- __asm__ ("cpuid\n\t" \
- : "=a" (a), "=b" (b), "=c" (c), "=d" (d) \
- : "0" (level))
+#define signature_SHANGHAI_ebx 0x68532020
+#define signature_SHANGHAI_ecx 0x20206961
+#define signature_SHANGHAI_edx 0x68676e61
-#define __cpuid_count(level, count, a, b, c, d) \
- __asm__ ("cpuid\n\t" \
- : "=a" (a), "=b" (b), "=c" (c), "=d" (d) \
- : "0" (level), "2" (count))
+#ifndef __x86_64__
+/* At least one cpu (Winchip 2) does not set %ebx and %ecx
+ for cpuid leaf 1. Forcibly zero the two registers before
+ calling cpuid as a precaution. */
+#define __cpuid(level, a, b, c, d) \
+ do { \
+ if (__builtin_constant_p (level) && (level) != 1) \
+ __asm__ __volatile__ ("cpuid\n\t" \
+ : "=a" (a), "=b" (b), "=c" (c), "=d" (d) \
+ : "0" (level)); \
+ else \
+ __asm__ __volatile__ ("cpuid\n\t" \
+ : "=a" (a), "=b" (b), "=c" (c), "=d" (d) \
+ : "0" (level), "1" (0), "2" (0)); \
+ } while (0)
+#else
+#define __cpuid(level, a, b, c, d) \
+ __asm__ __volatile__ ("cpuid\n\t" \
+ : "=a" (a), "=b" (b), "=c" (c), "=d" (d) \
+ : "0" (level))
+#endif
+
+#define __cpuid_count(level, count, a, b, c, d) \
+ __asm__ __volatile__ ("cpuid\n\t" \
+ : "=a" (a), "=b" (b), "=c" (c), "=d" (d) \
+ : "0" (level), "2" (count))
/* Return highest supported input value for cpuid instruction. ext can
- be either 0x0 or 0x8000000 to return highest supported value for
+ be either 0x0 or 0x80000000 to return highest supported value for
basic or extended cpuid information. Function returns 0 if cpuid
is not supported or whatever cpuid returns in eax register. If sig
pointer is non-null, then first four bytes of the signature
@@ -225,7 +307,7 @@ __get_cpuid_max (unsigned int __ext, unsigned int *__sig)
: "i" (0x00200000));
#endif
- if (!((__eax ^ __ebx) & 0x00200000))
+ if (__builtin_expect (!((__eax ^ __ebx) & 0x00200000), 0))
return 0;
#endif
@@ -249,8 +331,9 @@ __get_cpuid (unsigned int __leaf,
unsigned int *__ecx, unsigned int *__edx)
{
unsigned int __ext = __leaf & 0x80000000;
+ unsigned int __maxlevel = __get_cpuid_max (__ext, 0);
- if (__get_cpuid_max (__ext, 0) < __leaf)
+ if (__maxlevel == 0 || __maxlevel < __leaf)
return 0;
__cpuid (__leaf, *__eax, *__ebx, *__ecx, *__edx);
@@ -265,12 +348,20 @@ __get_cpuid_count (unsigned int __leaf, unsigned int __subleaf,
unsigned int *__ecx, unsigned int *__edx)
{
unsigned int __ext = __leaf & 0x80000000;
+ unsigned int __maxlevel = __get_cpuid_max (__ext, 0);
- if (__get_cpuid_max (__ext, 0) < __leaf)
+ if (__builtin_expect (__maxlevel == 0, 0) || __maxlevel < __leaf)
return 0;
__cpuid_count (__leaf, __subleaf, *__eax, *__ebx, *__ecx, *__edx);
return 1;
}
+static __inline void
+__cpuidex (int __cpuid_info[4], int __leaf, int __subleaf)
+{
+ __cpuid_count (__leaf, __subleaf, __cpuid_info[0], __cpuid_info[1],
+ __cpuid_info[2], __cpuid_info[3]);
+}
+
#endif /* GDB_NAT_X86_GCC_CPUID_H */
diff --git a/gdb/nat/x86-linux-tdesc.c b/gdb/nat/x86-linux-tdesc.c
index 80e4337..5bc36b6 100644
--- a/gdb/nat/x86-linux-tdesc.c
+++ b/gdb/nat/x86-linux-tdesc.c
@@ -43,7 +43,7 @@
/* See nat/x86-linux-tdesc.h. */
const target_desc *
-x86_linux_tdesc_for_tid (int tid, uint64_t *xcr0_storage,
+x86_linux_tdesc_for_tid (int tid, uint64_t *xstate_bv_storage,
x86_xsave_layout *xsave_layout_storage)
{
#ifdef __x86_64__
@@ -96,30 +96,34 @@ x86_linux_tdesc_for_tid (int tid, uint64_t *xcr0_storage,
these bits being set we generate a completely empty tdesc for
i386 which will be rejected by GDB. */
have_ptrace_getregset = TRIBOOL_FALSE;
- *xcr0_storage = X86_XSTATE_SSE_MASK;
+ *xstate_bv_storage = X86_XSTATE_SSE_MASK;
}
else
{
have_ptrace_getregset = TRIBOOL_TRUE;
/* Get XCR0 from XSAVE extended state. */
- *xcr0_storage = xstateregs[(I386_LINUX_XSAVE_XCR0_OFFSET
+ uint64_t xcr0 = xstateregs[(I386_LINUX_XSAVE_XCR0_OFFSET
/ sizeof (uint64_t))];
*xsave_layout_storage
- = x86_fetch_xsave_layout (*xcr0_storage, x86_xsave_length ());
+ = x86_fetch_xsave_layout (xcr0, x86_xsave_length ());
+
+ *xstate_bv_storage = xcr0;
+ if (x86_check_ssp_support (tid))
+ *xstate_bv_storage |= X86_XSTATE_CET_U;
}
}
- /* Use cached xcr0 value. */
- uint64_t xcr0_features_bits = *xcr0_storage & X86_XSTATE_ALL_MASK;
+ /* Use cached XSTATE_BV_STORAGE value. */
+ uint64_t xstate_bv_features_bits = *xstate_bv_storage & X86_XSTATE_ALL_MASK;
#ifdef __x86_64__
if (is_64bit)
- return amd64_linux_read_description (xcr0_features_bits, is_x32);
+ return amd64_linux_read_description (xstate_bv_features_bits, is_x32);
else
#endif
- return i386_linux_read_description (xcr0_features_bits);
+ return i386_linux_read_description (xstate_bv_features_bits);
}
#endif /* !IN_PROCESS_AGENT */
diff --git a/gdb/nat/x86-linux-tdesc.h b/gdb/nat/x86-linux-tdesc.h
index 38c71f1..19aa84f 100644
--- a/gdb/nat/x86-linux-tdesc.h
+++ b/gdb/nat/x86-linux-tdesc.h
@@ -27,9 +27,9 @@ struct x86_xsave_layout;
/* Return the target description for Linux thread TID.
- The storage pointed to by XCR0_STORAGE and XSAVE_LAYOUT_STORAGE must
+ The storage pointed to by XSTATE_BV_STORAGE and XSAVE_LAYOUT_STORAGE must
exist until the program (GDB or gdbserver) terminates, this storage is
- used to cache the xcr0 and xsave layout values. The values pointed to
+ used to cache the xstate_bv and xsave layout values. The values pointed to
by these arguments are only updated at most once, the first time this
function is called if the have_ptrace_getregset global is set to
TRIBOOL_UNKNOWN.
@@ -45,6 +45,7 @@ struct x86_xsave_layout;
returned. */
extern const target_desc *x86_linux_tdesc_for_tid
- (int tid, uint64_t *xcr0_storage, x86_xsave_layout *xsave_layout_storage);
+ (int tid, uint64_t *xstate_bv_storage,
+ x86_xsave_layout *xsave_layout_storage);
#endif /* GDB_NAT_X86_LINUX_TDESC_H */
diff --git a/gdb/nat/x86-linux.c b/gdb/nat/x86-linux.c
index 0bdff73..5515826 100644
--- a/gdb/nat/x86-linux.c
+++ b/gdb/nat/x86-linux.c
@@ -17,6 +17,12 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "elf/common.h"
+#include "gdbsupport/common-defs.h"
+#include "nat/gdb_ptrace.h"
+#include "nat/linux-ptrace.h"
+#include "nat/x86-cpuid.h"
+#include <sys/uio.h>
#include "x86-linux.h"
#include "x86-linux-dregs.h"
#include "nat/gdb_ptrace.h"
@@ -126,3 +132,56 @@ x86_linux_ptrace_get_arch_size (int tid)
return x86_linux_arch_size (false, false);
#endif
}
+
+/* See nat/x86-linux.h. */
+
+bool
+x86_check_ssp_support (const int tid)
+{
+ /* It's not enough to check shadow stack support with the ptrace call
+ below only, as we cannot distinguish between shadow stack not enabled
+ for the current thread and shadow stack is not supported by HW. In
+ both scenarios the ptrace call fails with ENODEV. In case shadow
+ stack is not enabled for the current thread, we still want to return
+ true. */
+ unsigned int eax, ebx, ecx, edx;
+ eax = ebx = ecx = edx = 0;
+
+ if (!__get_cpuid_count (7, 0, &eax, &ebx, &ecx, &edx))
+ return false;
+
+ if ((ecx & bit_SHSTK) == 0)
+ return false;
+
+ /* Further check for NT_X86_SHSTK kernel support. */
+ uint64_t ssp;
+ iovec iov {&ssp, sizeof (ssp) };
+
+ errno = 0;
+ int res = ptrace (PTRACE_GETREGSET, tid, NT_X86_SHSTK, &iov);
+ if (res < 0)
+ {
+ if (errno == EINVAL)
+ {
+ /* The errno EINVAL for a PTRACE_GETREGSET call indicates that
+ kernel support is not available. */
+ return false;
+ }
+ else if (errno == ENODEV)
+ {
+ /* At this point, since we already checked CPUID, the errno
+ ENODEV for a PTRACE_GETREGSET call indicates that shadow
+ stack is not enabled for the current thread. As it could be
+ enabled later, we still want to return true here. */
+ return true;
+ }
+ else
+ {
+ warning (_("Unknown ptrace error for NT_X86_SHSTK: %s"),
+ safe_strerror (errno));
+ return false;
+ }
+ }
+
+ return true;
+}
diff --git a/gdb/nat/x86-linux.h b/gdb/nat/x86-linux.h
index dbdef08..1783aae 100644
--- a/gdb/nat/x86-linux.h
+++ b/gdb/nat/x86-linux.h
@@ -75,4 +75,8 @@ private:
extern x86_linux_arch_size x86_linux_ptrace_get_arch_size (int tid);
+/* Check shadow stack hardware and kernel support. */
+
+extern bool x86_check_ssp_support (const int tid);
+
#endif /* GDB_NAT_X86_LINUX_H */
diff --git a/gdb/netbsd-nat.c b/gdb/netbsd-nat.c
index 060134f..207e69c 100644
--- a/gdb/netbsd-nat.c
+++ b/gdb/netbsd-nat.c
@@ -318,7 +318,7 @@ nbsd_nat_target::info_proc (const char *args, enum info_proc_what what)
if (pid == 0)
error (_("No current process: you must name one."));
}
- else if (built_argv.count () == 1 && isdigit (built_argv[0][0]))
+ else if (built_argv.count () == 1 && c_isdigit (built_argv[0][0]))
pid = strtol (built_argv[0], NULL, 10);
else
error (_("Invalid arguments."));
diff --git a/gdb/objc-lang.c b/gdb/objc-lang.c
index 6bba8d3..492020d 100644
--- a/gdb/objc-lang.c
+++ b/gdb/objc-lang.c
@@ -46,7 +46,6 @@
#include "cli/cli-utils.h"
#include "c-exp.h"
-#include <ctype.h>
#include <algorithm>
struct objc_object {
@@ -850,9 +849,9 @@ parse_selector (char *method, char **selector)
for (;;)
{
- if (isalnum (*s2) || (*s2 == '_') || (*s2 == ':'))
+ if (c_isalnum (*s2) || (*s2 == '_') || (*s2 == ':'))
*s1++ = *s2;
- else if (isspace (*s2))
+ else if (c_isspace (*s2))
;
else if ((*s2 == '\0') || (*s2 == '\''))
break;
@@ -914,7 +913,7 @@ parse_method (char *method, char *type, char **theclass,
s1++;
nclass = s1;
- while (isalnum (*s1) || (*s1 == '_'))
+ while (c_isalnum (*s1) || (*s1 == '_'))
s1++;
s2 = s1;
@@ -925,7 +924,7 @@ parse_method (char *method, char *type, char **theclass,
s2++;
s2 = skip_spaces (s2);
ncategory = s2;
- while (isalnum (*s2) || (*s2 == '_'))
+ while (c_isalnum (*s2) || (*s2 == '_'))
s2++;
*s2++ = '\0';
}
@@ -938,9 +937,9 @@ parse_method (char *method, char *type, char **theclass,
for (;;)
{
- if (isalnum (*s2) || (*s2 == '_') || (*s2 == ':'))
+ if (c_isalnum (*s2) || (*s2 == '_') || (*s2 == ':'))
*s1++ = *s2;
- else if (isspace (*s2))
+ else if (c_isspace (*s2))
;
else if (*s2 == ']')
break;
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index d25d1a0..d0eb678 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -189,7 +189,7 @@ objfile_lookup_static_link (struct objfile *objfile,
static void
add_to_objfile_sections (struct bfd *abfd, struct bfd_section *asect,
- struct objfile *objfile, int force)
+ struct objfile *objfile, int force)
{
struct obj_section *section;
@@ -521,8 +521,8 @@ relocate_one_symbol (struct symbol *sym, struct objfile *objfile,
any symbols in STRUCT_DOMAIN or UNDEF_DOMAIN.
But I'm leaving out that test, on the theory that
they can't possibly pass the tests below. */
- if ((sym->aclass () == LOC_LABEL
- || sym->aclass () == LOC_STATIC)
+ if ((sym->loc_class () == LOC_LABEL
+ || sym->loc_class () == LOC_STATIC)
&& sym->section_index () >= 0)
sym->set_value_address (sym->value_address ()
+ delta[sym->section_index ()]);
@@ -587,12 +587,12 @@ objfile_relocate1 (struct objfile *objfile,
get_objfile_pspace_data (objfile->pspace ())->section_map_dirty = 1;
/* Update the table in exec_ops, used to read memory. */
- for (obj_section *s : objfile->sections ())
+ for (obj_section &s : objfile->sections ())
{
- int idx = s - objfile->sections_start;
+ int idx = &s - objfile->sections_start;
exec_set_section_address (bfd_get_filename (objfile->obfd.get ()), idx,
- s->addr ());
+ s.addr ());
}
/* Data changed. */
@@ -790,10 +790,10 @@ sort_cmp (const struct obj_section *sect1, const obj_section *sect2)
second case shouldn't occur during normal use, but std::sort
does check that '!(a < a)' when compiled in debug mode. */
- for (const obj_section *osect : objfile1->sections ())
- if (osect == sect2)
+ for (const obj_section &osect : objfile1->sections ())
+ if (&osect == sect2)
return false;
- else if (osect == sect1)
+ else if (&osect == sect1)
return true;
/* We should have found one of the sections before getting here. */
@@ -994,8 +994,8 @@ update_section_map (struct program_space *pspace,
alloc_size = 0;
for (objfile *objfile : pspace->objfiles ())
- for (obj_section *s : objfile->sections ())
- if (insert_section_p (objfile->obfd.get (), s->the_bfd_section))
+ for (obj_section &s : objfile->sections ())
+ if (insert_section_p (objfile->obfd.get (), s.the_bfd_section))
alloc_size += 1;
/* This happens on detach/attach (e.g. in gdb.base/attach.exp). */
@@ -1010,9 +1010,9 @@ update_section_map (struct program_space *pspace,
i = 0;
for (objfile *objfile : pspace->objfiles ())
- for (obj_section *s : objfile->sections ())
- if (insert_section_p (objfile->obfd.get (), s->the_bfd_section))
- map[i++] = s;
+ for (obj_section &s : objfile->sections ())
+ if (insert_section_p (objfile->obfd.get (), s.the_bfd_section))
+ map[i++] = &s;
std::sort (map, map + alloc_size, sort_cmp);
map_size = filter_debuginfo_sections(map, alloc_size);
@@ -1127,12 +1127,12 @@ is_addr_in_objfile (CORE_ADDR addr, const struct objfile *objfile)
if (objfile == NULL)
return false;
- for (obj_section *osect : objfile->sections ())
+ for (obj_section &osect : objfile->sections ())
{
- if (section_is_overlay (osect) && !section_is_mapped (osect))
+ if (section_is_overlay (&osect) && !section_is_mapped (&osect))
continue;
- if (osect->contains (addr))
+ if (osect.contains (addr))
return true;
}
return false;
@@ -1154,24 +1154,6 @@ shared_objfile_contains_address_p (struct program_space *pspace,
return false;
}
-/* The default implementation for the "iterate_over_objfiles_in_search_order"
- gdbarch method. It is equivalent to use the objfiles iterable,
- searching the objfiles in the order they are stored internally,
- ignoring CURRENT_OBJFILE.
-
- On most platforms, it should be close enough to doing the best
- we can without some knowledge specific to the architecture. */
-
-void
-default_iterate_over_objfiles_in_search_order
- (gdbarch *gdbarch, iterate_over_objfiles_in_search_order_cb_ftype cb,
- objfile *current_objfile)
-{
- for (objfile *objfile : current_program_space->objfiles ())
- if (cb (objfile))
- return;
-}
-
/* See objfiles.h. */
const char *
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index 4a34758..1ce5092 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -395,7 +395,9 @@ struct obj_section
return addr >= this->addr () && addr < endaddr ();
}
- /* BFD section pointer */
+ /* BFD section pointer. This is nullptr if the corresponding BFD section is
+ not allocatable (!SEC_ALLOC), in which case this obj_section can be
+ considered NULL / empty. */
struct bfd_section *the_bfd_section;
/* Objfile this section is part of. */
@@ -583,10 +585,6 @@ public:
/* See quick_symbol_functions. */
void dump ();
- /* Find all the symbols in OBJFILE named FUNC_NAME, and ensure that
- the corresponding symbol tables are loaded. */
- void expand_symtabs_for_function (const char *func_name);
-
/* See quick_symbol_functions. */
void expand_all_symtabs ();
@@ -598,14 +596,14 @@ public:
void expand_symtabs_with_fullname (const char *fullname);
/* See quick_symbol_functions. */
- bool expand_symtabs_matching
- (expand_symtabs_file_matcher file_matcher,
+ bool search
+ (search_symtabs_file_matcher file_matcher,
const lookup_name_info *lookup_name,
- expand_symtabs_symbol_matcher symbol_matcher,
- expand_symtabs_expansion_listener expansion_notify,
+ search_symtabs_symbol_matcher symbol_matcher,
+ search_symtabs_expansion_listener listener,
block_search_flags search_flags,
domain_search_flags domain,
- expand_symtabs_lang_matcher lang_matcher = nullptr);
+ search_symtabs_lang_matcher lang_matcher = nullptr);
/* See quick_symbol_functions. */
struct compunit_symtab *
@@ -655,61 +653,18 @@ public:
this->section_offsets[idx] = offset;
}
- class section_iterator
+ /* Filter function for section_iterator. */
+ struct filter_out_null_bfd_section
{
- public:
- section_iterator (const section_iterator &) = default;
- section_iterator (section_iterator &&) = default;
- section_iterator &operator= (const section_iterator &) = default;
- section_iterator &operator= (section_iterator &&) = default;
-
- typedef section_iterator self_type;
- typedef obj_section *value_type;
-
- value_type operator* ()
- { return m_iter; }
-
- section_iterator &operator++ ()
- {
- ++m_iter;
- skip_null ();
- return *this;
- }
-
- bool operator== (const section_iterator &other) const
- { return m_iter == other.m_iter && m_end == other.m_end; }
-
- bool operator!= (const section_iterator &other) const
- { return !(*this == other); }
-
- private:
-
- friend class objfile;
-
- section_iterator (obj_section *iter, obj_section *end)
- : m_iter (iter),
- m_end (end)
- {
- skip_null ();
- }
-
- void skip_null ()
- {
- while (m_iter < m_end && m_iter->the_bfd_section == nullptr)
- ++m_iter;
- }
-
- value_type m_iter;
- value_type m_end;
+ bool operator() (const obj_section &sec) const noexcept
+ { return sec.the_bfd_section != nullptr; }
};
- iterator_range<section_iterator> sections ()
- {
- return (iterator_range<section_iterator>
- (section_iterator (sections_start, sections_end),
- section_iterator (sections_end, sections_end)));
- }
+ using section_iterator = filtered_iterator<obj_section *, filter_out_null_bfd_section>;
+ /* Return an iterable that yields the "non-null" sections of this objfile.
+ That is, the sections for which obj_section::the_bfd_section is
+ non-nullptr. */
iterator_range<section_iterator> sections () const
{
return (iterator_range<section_iterator>
@@ -1010,10 +965,6 @@ in_plt_section (CORE_ADDR pc)
extern scoped_restore_tmpl<int> inhibit_section_map_updates
(struct program_space *pspace);
-extern void default_iterate_over_objfiles_in_search_order
- (gdbarch *gdbarch, iterate_over_objfiles_in_search_order_cb_ftype cb,
- objfile *current_objfile);
-
/* Reset the per-BFD storage area on OBJ. */
void set_objfile_per_bfd (struct objfile *obj);
diff --git a/gdb/or1k-linux-tdep.c b/gdb/or1k-linux-tdep.c
index afefefe..9fbf75f 100644
--- a/gdb/or1k-linux-tdep.c
+++ b/gdb/or1k-linux-tdep.c
@@ -153,7 +153,7 @@ or1k_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
/* GNU/Linux uses the dynamic linker included in the GNU C Library. */
set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver);
- set_gdbarch_software_single_step (gdbarch, or1k_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, or1k_software_single_step);
/* Enable TLS support. */
set_gdbarch_fetch_tls_load_module_address (gdbarch,
diff --git a/gdb/or1k-tdep.c b/gdb/or1k-tdep.c
index 2774840..2db207d 100644
--- a/gdb/or1k-tdep.c
+++ b/gdb/or1k-tdep.c
@@ -29,7 +29,6 @@
#include "gdbtypes.h"
#include "target.h"
#include "regcache.h"
-#include "gdbsupport/gdb-safe-ctype.h"
#include "reggroups.h"
#include "arch-utils.h"
#include "frame-unwind.h"
diff --git a/gdb/p-exp.y b/gdb/p-exp.y
index cbf6b44..a68443a 100644
--- a/gdb/p-exp.y
+++ b/gdb/p-exp.y
@@ -43,7 +43,6 @@
Probably also lots of other problems, less well defined PM. */
%{
-#include <ctype.h>
#include "expression.h"
#include "value.h"
#include "parser-defs.h"
@@ -817,13 +816,13 @@ parse_number (struct parser_state *par_state,
{
/* Handle suffixes: 'f' for float, 'l' for long double.
FIXME: This appears to be an extension -- do we want this? */
- if (len >= 1 && tolower (p[len - 1]) == 'f')
+ if (len >= 1 && c_tolower (p[len - 1]) == 'f')
{
putithere->typed_val_float.type
= parse_type (par_state)->builtin_float;
len--;
}
- else if (len >= 1 && tolower (p[len - 1]) == 'l')
+ else if (len >= 1 && c_tolower (p[len - 1]) == 'l')
{
putithere->typed_val_float.type
= parse_type (par_state)->builtin_long_double;
@@ -1089,9 +1088,9 @@ yylex (void)
if (explen > 2)
for (const auto &token : tokentab3)
if (strncasecmp (tokstart, token.oper, 3) == 0
- && (!isalpha (token.oper[0]) || explen == 3
- || (!isalpha (tokstart[3])
- && !isdigit (tokstart[3]) && tokstart[3] != '_')))
+ && (!c_isalpha (token.oper[0]) || explen == 3
+ || (!c_isalpha (tokstart[3])
+ && !c_isdigit (tokstart[3]) && tokstart[3] != '_')))
{
pstate->lexptr += 3;
yylval.opcode = token.opcode;
@@ -1102,9 +1101,9 @@ yylex (void)
if (explen > 1)
for (const auto &token : tokentab2)
if (strncasecmp (tokstart, token.oper, 2) == 0
- && (!isalpha (token.oper[0]) || explen == 2
- || (!isalpha (tokstart[2])
- && !isdigit (tokstart[2]) && tokstart[2] != '_')))
+ && (!c_isalpha (token.oper[0]) || explen == 2
+ || (!c_isalpha (tokstart[2])
+ && !c_isdigit (tokstart[2]) && tokstart[2] != '_')))
{
pstate->lexptr += 2;
yylval.opcode = token.opcode;
@@ -1519,7 +1518,7 @@ yylex (void)
/* Call lookup_symtab, not lookup_partial_symtab, in case there are
no psymtabs (coff, xcoff, or some future change to blow away the
psymtabs once once symbols are read). */
- if ((sym && sym->aclass () == LOC_BLOCK)
+ if ((sym && sym->loc_class () == LOC_BLOCK)
|| lookup_symtab (current_program_space, tmp.c_str ()))
{
yylval.ssym.sym.symbol = sym;
@@ -1528,7 +1527,7 @@ yylex (void)
free (uptokstart);
return BLOCKNAME;
}
- if (sym && sym->aclass () == LOC_TYPEDEF)
+ if (sym && sym->loc_class () == LOC_TYPEDEF)
{
#if 1
/* Despite the following flaw, we need to keep this code enabled.
@@ -1597,7 +1596,7 @@ yylex (void)
SEARCH_VFT, NULL).symbol;
if (cur_sym)
{
- if (cur_sym->aclass () == LOC_TYPEDEF)
+ if (cur_sym->loc_class () == LOC_TYPEDEF)
{
best_sym = cur_sym;
pstate->lexptr = p;
diff --git a/gdb/p-lang.c b/gdb/p-lang.c
index 3ded152..1dc1a34 100644
--- a/gdb/p-lang.c
+++ b/gdb/p-lang.c
@@ -30,7 +30,6 @@
#include "p-lang.h"
#include "valprint.h"
#include "value.h"
-#include <ctype.h>
#include "c-lang.h"
#include "gdbarch.h"
#include "cli/cli-style.h"
diff --git a/gdb/p-typeprint.c b/gdb/p-typeprint.c
index 7994ccf..8b5f2b5 100644
--- a/gdb/p-typeprint.c
+++ b/gdb/p-typeprint.c
@@ -30,7 +30,6 @@
#include "p-lang.h"
#include "typeprint.h"
#include "gdb-demangle.h"
-#include <ctype.h>
#include "cli/cli-style.h"
/* See language.h. */
@@ -138,13 +137,13 @@ pascal_language::type_print_method_args (const char *physname,
{
gdb_puts (" (", stream);
/* We must demangle this. */
- while (isdigit (physname[0]))
+ while (c_isdigit (physname[0]))
{
int len = 0;
int i, j;
char *argname;
- while (isdigit (physname[len]))
+ while (c_isdigit (physname[len]))
{
len++;
}
diff --git a/gdb/parse.c b/gdb/parse.c
index 6ad4e71..e24a0d0 100644
--- a/gdb/parse.c
+++ b/gdb/parse.c
@@ -29,7 +29,6 @@
during the process of parsing; the lower levels of the tree always
come first in the result. */
-#include <ctype.h>
#include "arch-utils.h"
#include "symtab.h"
#include "gdbtypes.h"
diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c
index 5067b89..b5f8bbf 100644
--- a/gdb/ppc-linux-tdep.c
+++ b/gdb/ppc-linux-tdep.c
@@ -61,7 +61,6 @@
#include "cli/cli-utils.h"
#include "parser-defs.h"
#include "user-regs.h"
-#include <ctype.h>
#include "elf-bfd.h"
#include "producer.h"
#include "target-float.h"
@@ -309,6 +308,8 @@ static const struct ppc_insn_pattern powerpc32_plt_stub_so_2[] =
struct ppc_linux_ilp32_svr4_solib_ops : public linux_ilp32_svr4_solib_ops
{
+ using linux_ilp32_svr4_solib_ops::linux_ilp32_svr4_solib_ops;
+
/* Check if PC is in PLT stub. For non-secure PLT, stub is in .plt
section. For secure PLT, stub is in .text and we need to check
instruction patterns. */
@@ -319,9 +320,9 @@ struct ppc_linux_ilp32_svr4_solib_ops : public linux_ilp32_svr4_solib_ops
/* Return a new solib_ops for ILP32 PowerPC/Linux systems. */
static solib_ops_up
-make_ppc_linux_ilp32_svr4_solib_ops ()
+make_ppc_linux_ilp32_svr4_solib_ops (program_space *pspace)
{
- return std::make_unique<ppc_linux_ilp32_svr4_solib_ops> ();
+ return std::make_unique<ppc_linux_ilp32_svr4_solib_ops> (pspace);
}
/* See ppc_linux_ilp32_svr4_solib_ops. */
@@ -1710,10 +1711,10 @@ static int
ppc_stap_is_single_operand (struct gdbarch *gdbarch, const char *s)
{
return (*s == 'i' /* Literal number. */
- || (isdigit (*s) && s[1] == '('
- && isdigit (s[2])) /* Displacement. */
- || (*s == '(' && isdigit (s[1])) /* Register indirection. */
- || isdigit (*s)); /* Register value. */
+ || (c_isdigit (*s) && s[1] == '('
+ && c_isdigit (s[2])) /* Displacement. */
+ || (*s == '(' && c_isdigit (s[1])) /* Register indirection. */
+ || c_isdigit (*s)); /* Register value. */
}
/* Implementation of `gdbarch_stap_parse_special_token', as defined in
@@ -1723,7 +1724,7 @@ static expr::operation_up
ppc_stap_parse_special_token (struct gdbarch *gdbarch,
struct stap_parse_info *p)
{
- if (isdigit (*p->arg))
+ if (c_isdigit (*p->arg))
{
/* This temporary pointer is needed because we have to do a lookahead.
We could be dealing with a register displacement, and in such case
@@ -1732,7 +1733,7 @@ ppc_stap_parse_special_token (struct gdbarch *gdbarch,
char *regname;
int len;
- while (isdigit (*s))
+ while (c_isdigit (*s))
++s;
if (*s == '(')
diff --git a/gdb/ppc-sysv-tdep.c b/gdb/ppc-sysv-tdep.c
index cae5aa6..f872f73 100644
--- a/gdb/ppc-sysv-tdep.c
+++ b/gdb/ppc-sysv-tdep.c
@@ -2060,10 +2060,12 @@ ppc64_sysv_abi_return_value (struct gdbarch *gdbarch, struct value *function,
}
/* Small character arrays are returned, right justified, in r3. */
- if (valtype->code () == TYPE_CODE_ARRAY
+ if (tdep->elf_abi == POWERPC_ELF_V1
+ && valtype->code () == TYPE_CODE_ARRAY
&& !valtype->is_vector ()
&& valtype->length () <= 8
- && valtype->target_type ()->code () == TYPE_CODE_INT
+ && (valtype->target_type ()->code () == TYPE_CODE_INT
+ || valtype->target_type ()->code () == TYPE_CODE_CHAR)
&& valtype->target_type ()->length () == 1)
{
int regnum = tdep->ppc_gp0_regnum + 3;
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index 19fbc20..661d721 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -54,7 +54,6 @@
#include "source.h"
#include "gdbsupport/byte-vector.h"
#include <optional>
-#include "gdbsupport/gdb-safe-ctype.h"
#include "inferior.h"
/* Chain containing all defined memory-tag subcommands. */
@@ -753,10 +752,10 @@ pc_prefix (CORE_ADDR addr)
if (has_stack_frames ())
{
frame_info_ptr frame;
- CORE_ADDR pc;
+ std::optional<CORE_ADDR> pc;
frame = get_selected_frame (NULL);
- if (get_frame_pc_if_available (frame, &pc) && pc == addr)
+ if ((pc = get_frame_pc_if_available (frame)) && *pc == addr)
return "=> ";
}
return " ";
@@ -1290,7 +1289,9 @@ should_validate_memtags (gdbarch *gdbarch, struct value *value)
return false;
/* We do. Check whether it includes any tags. */
- return target_is_address_tagged (gdbarch, value_as_address (value));
+ struct type *val_type = value->type ();
+ const gdb_byte *data = value->contents ().data ();
+ return target_is_address_tagged (gdbarch, unpack_pointer (val_type, data));
}
/* Helper for parsing arguments for print_command_1. */
@@ -1492,27 +1493,27 @@ info_symbol_command (const char *arg, int from_tty)
addr = parse_and_eval_address (arg);
for (objfile *objfile : current_program_space->objfiles ())
- for (obj_section *osect : objfile->sections ())
+ for (obj_section &osect : objfile->sections ())
{
/* Only process each object file once, even if there's a separate
debug file. */
if (objfile->separate_debug_objfile_backlink)
continue;
- sect_addr = overlay_mapped_address (addr, osect);
+ sect_addr = overlay_mapped_address (addr, &osect);
- if (osect->contains (sect_addr)
+ if (osect.contains (sect_addr)
&& (msymbol
= lookup_minimal_symbol_by_pc_section (sect_addr,
- osect).minsym))
+ &osect).minsym))
{
const char *obj_name, *mapped, *sec_name, *msym_name;
const char *loc_string;
matches = 1;
offset = sect_addr - msymbol->value_address (objfile);
- mapped = section_is_mapped (osect) ? _("mapped") : _("unmapped");
- sec_name = osect->the_bfd_section->name;
+ mapped = section_is_mapped (&osect) ? _("mapped") : _("unmapped");
+ sec_name = osect.the_bfd_section->name;
msym_name = msymbol->print_name ();
/* Don't print the offset if it is zero.
@@ -1526,12 +1527,12 @@ info_symbol_command (const char *arg, int from_tty)
else
loc_string = msym_name;
- gdb_assert (osect->objfile && objfile_name (osect->objfile));
- obj_name = objfile_name (osect->objfile);
+ gdb_assert (osect.objfile && objfile_name (osect.objfile));
+ obj_name = objfile_name (osect.objfile);
if (current_program_space->multi_objfile_p ())
- if (pc_in_unmapped_range (addr, osect))
- if (section_is_overlay (osect))
+ if (pc_in_unmapped_range (addr, &osect))
+ if (section_is_overlay (&osect))
gdb_printf (_("%s in load address range of "
"%s overlay section %s of %s\n"),
loc_string, mapped, sec_name, obj_name);
@@ -1540,15 +1541,15 @@ info_symbol_command (const char *arg, int from_tty)
"section %s of %s\n"),
loc_string, sec_name, obj_name);
else
- if (section_is_overlay (osect))
+ if (section_is_overlay (&osect))
gdb_printf (_("%s in %s overlay section %s of %s\n"),
loc_string, mapped, sec_name, obj_name);
else
gdb_printf (_("%s in section %s of %s\n"),
loc_string, sec_name, obj_name);
else
- if (pc_in_unmapped_range (addr, osect))
- if (section_is_overlay (osect))
+ if (pc_in_unmapped_range (addr, &osect))
+ if (section_is_overlay (&osect))
gdb_printf (_("%s in load address range of %s overlay "
"section %s\n"),
loc_string, mapped, sec_name);
@@ -1557,7 +1558,7 @@ info_symbol_command (const char *arg, int from_tty)
(_("%s in load address range of section %s\n"),
loc_string, sec_name);
else
- if (section_is_overlay (osect))
+ if (section_is_overlay (&osect))
gdb_printf (_("%s in %s overlay section %s\n"),
loc_string, mapped, sec_name);
else
@@ -1653,7 +1654,7 @@ info_address_command (const char *exp, int from_tty)
return;
}
- switch (sym->aclass ())
+ switch (sym->loc_class ())
{
case LOC_CONST:
case LOC_CONST_BYTES:
@@ -2702,7 +2703,6 @@ ui_printf (const char *arg, struct ui_file *stream)
{
int nargs_wanted;
int i;
- const char *current_substring;
nargs_wanted = 0;
for (auto &&piece : fpieces)
@@ -2731,7 +2731,8 @@ ui_printf (const char *arg, struct ui_file *stream)
i = 0;
for (auto &&piece : fpieces)
{
- current_substring = piece.string;
+ const char *current_substring = fpieces.piece_str (piece);
+
switch (piece.argclass)
{
case string_arg:
diff --git a/gdb/probe.c b/gdb/probe.c
index 6679f39..c2b8270 100644
--- a/gdb/probe.c
+++ b/gdb/probe.c
@@ -33,7 +33,6 @@
#include "ax.h"
#include "ax-gdb.h"
#include "location.h"
-#include <ctype.h>
#include <algorithm>
#include <optional>
@@ -826,7 +825,7 @@ probe_is_linespec_by_keyword (const char **linespecp, const char *const *keyword
const char *keyword = *csp;
size_t len = strlen (keyword);
- if (strncmp (s, keyword, len) == 0 && isspace (s[len]))
+ if (strncmp (s, keyword, len) == 0 && c_isspace (s[len]))
{
*linespecp += len + 1;
return 1;
diff --git a/gdb/procfs.c b/gdb/procfs.c
index a10574a..ca7ecbb 100644
--- a/gdb/procfs.c
+++ b/gdb/procfs.c
@@ -38,7 +38,6 @@
#include <sys/syscall.h>
#include "gdbsupport/gdb_wait.h"
#include <signal.h>
-#include <ctype.h>
#include "gdb_bfd.h"
#include "auxv.h"
#include "procfs.h"
@@ -3304,7 +3303,7 @@ procfs_target::info_proc (const char *args, enum info_proc_what what)
gdb_argv built_argv (args);
for (char *arg : built_argv)
{
- if (isdigit (arg[0]))
+ if (c_isdigit (arg[0]))
{
pid = strtoul (arg, &tmp, 10);
if (*tmp == '/')
@@ -3415,7 +3414,7 @@ proc_trace_syscalls (const char *args, int from_tty, int entry_or_exit, int mode
error_no_arg (_("system call to trace"));
pi = find_procinfo_or_die (inferior_ptid.pid (), 0);
- if (isdigit (args[0]))
+ if (c_isdigit (args[0]))
{
const int syscallnum = atoi (args);
diff --git a/gdb/producer.c b/gdb/producer.c
index 5d754fa..71e1b92 100644
--- a/gdb/producer.c
+++ b/gdb/producer.c
@@ -66,9 +66,9 @@ producer_is_gcc (const char *producer, int *major, int *minor)
"GNU Fortran 4.8.2 20140120 (Red Hat 4.8.2-16) -mtune=generic ..."
"GNU C++14 5.0.0 20150123 (experimental)"
*/
- while (*cs && !isspace (*cs))
+ while (*cs && !c_isspace (*cs))
cs++;
- if (*cs && isspace (*cs))
+ if (*cs && c_isspace (*cs))
cs++;
if (sscanf (cs, "%d.%d", major, minor) == 2)
return 1;
diff --git a/gdb/progspace.c b/gdb/progspace.c
index 1c27165..9928c16 100644
--- a/gdb/progspace.c
+++ b/gdb/progspace.c
@@ -146,6 +146,21 @@ program_space::free_all_objfiles ()
/* See progspace.h. */
void
+program_space::iterate_over_objfiles_in_search_order
+ (iterate_over_objfiles_in_search_order_cb_ftype cb, objfile *current_objfile)
+{
+ if (m_solib_ops != nullptr)
+ return m_solib_ops->iterate_over_objfiles_in_search_order
+ (cb, current_objfile);
+
+ for (const auto objfile : this->objfiles ())
+ if (cb (objfile))
+ return;
+}
+
+/* See progspace.h. */
+
+void
program_space::add_objfile (std::unique_ptr<objfile> &&objfile,
struct objfile *before)
{
diff --git a/gdb/progspace.h b/gdb/progspace.h
index a761e62..270a71d 100644
--- a/gdb/progspace.h
+++ b/gdb/progspace.h
@@ -212,6 +212,18 @@ struct program_space
(objfiles_range (objfiles_iterator (m_objfiles_list.begin ())));
}
+ /* Iterate over all objfiles of the program space in the order that makes the
+ most sense to make global symbol searches.
+
+ CB is a callback function passed an objfile to be searched. The iteration stops
+ if this function returns true.
+
+ If not nullptr, CURRENT_OBJFILE corresponds to the objfile being
+ inspected when the symbol search was requested. */
+ void iterate_over_objfiles_in_search_order
+ (iterate_over_objfiles_in_search_order_cb_ftype cb,
+ objfile *current_objfile);
+
/* Add OBJFILE to the list of objfiles, putting it just before
BEFORE. If BEFORE is nullptr, it will go at the end of the
list. */
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index 516ba72..6d19e76 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -228,7 +228,7 @@ find_pc_sect_psymbol (struct objfile *objfile,
for (const partial_symbol *p : psymtab->global_psymbols)
{
if (p->domain == VAR_DOMAIN
- && p->aclass == LOC_BLOCK
+ && p->loc_class == LOC_BLOCK
&& pc >= p->address (objfile)
&& (p->address (objfile) > best_pc
|| (psymtab->text_low (objfile) == 0
@@ -248,7 +248,7 @@ find_pc_sect_psymbol (struct objfile *objfile,
for (const partial_symbol *p : psymtab->static_psymbols)
{
if (p->domain == VAR_DOMAIN
- && p->aclass == LOC_BLOCK
+ && p->loc_class == LOC_BLOCK
&& pc >= p->address (objfile)
&& (p->address (objfile) > best_pc
|| (psymtab->text_low (objfile) == 0
@@ -537,7 +537,7 @@ print_partial_symbols (struct gdbarch *gdbarch, struct objfile *objfile,
gdb_puts ("<invalid domain>, ", outfile);
break;
}
- switch (p->aclass)
+ switch (p->loc_class)
{
case LOC_UNDEF:
gdb_puts ("undefined", outfile);
@@ -790,7 +790,7 @@ psymtab_to_fullname (struct partial_symtab *ps)
return ps->fullname;
}
-/* A helper for psym_expand_symtabs_matching that handles searching
+/* A helper for psymbol_functions::search that handles searching
included psymtabs. This returns true if a symbol is found, and
false otherwise. It also updates the 'searched_flag' on the
various psymtabs that it searches. */
@@ -800,7 +800,7 @@ recursively_search_psymtabs (partial_symtab *ps, objfile *objfile,
block_search_flags search_flags,
domain_search_flags domain,
const lookup_name_info &lookup_name,
- expand_symtabs_symbol_matcher sym_matcher)
+ search_symtabs_symbol_matcher sym_matcher)
{
int keep_going = 1;
enum psymtab_search_status result = PST_SEARCHED_AND_NOT_FOUND;
@@ -885,19 +885,19 @@ recursively_search_psymtabs (partial_symtab *ps, objfile *objfile,
return result == PST_SEARCHED_AND_FOUND;
}
-/* Psymtab version of expand_symtabs_matching. See its definition in
+/* Psymtab version of search. See its definition in
the definition of quick_symbol_functions in symfile.h. */
bool
-psymbol_functions::expand_symtabs_matching
+psymbol_functions::search
(struct objfile *objfile,
- expand_symtabs_file_matcher file_matcher,
+ search_symtabs_file_matcher file_matcher,
const lookup_name_info *lookup_name,
- expand_symtabs_symbol_matcher symbol_matcher,
- expand_symtabs_expansion_listener expansion_notify,
+ search_symtabs_symbol_matcher symbol_matcher,
+ search_symtabs_expansion_listener listener,
block_search_flags search_flags,
domain_search_flags domain,
- expand_symtabs_lang_matcher lang_matcher ATTRIBUTE_UNUSED)
+ search_symtabs_lang_matcher lang_matcher ATTRIBUTE_UNUSED)
{
/* Clear the search flags. */
for (partial_symtab *ps : partial_symbols (objfile))
@@ -914,9 +914,6 @@ psymbol_functions::expand_symtabs_matching
{
QUIT;
- if (ps->readin_p (objfile))
- continue;
-
if (file_matcher)
{
bool match;
@@ -944,8 +941,8 @@ psymbol_functions::expand_symtabs_matching
{
compunit_symtab *cust = psymtab_to_symtab (objfile, ps);
- if (cust != nullptr && expansion_notify != nullptr)
- if (!expansion_notify (cust))
+ if (cust != nullptr && listener != nullptr)
+ if (!listener (cust))
return false;
}
}
@@ -1022,12 +1019,12 @@ psymbol_bcache::hash (const void *addr, int length)
struct partial_symbol *psymbol = (struct partial_symbol *) addr;
unsigned int lang = psymbol->ginfo.language ();
unsigned int domain = psymbol->domain;
- unsigned int theclass = psymbol->aclass;
+ unsigned int loc_class = psymbol->loc_class;
h = fast_hash (&psymbol->ginfo.m_value, sizeof (psymbol->ginfo.m_value), h);
h = fast_hash (&lang, sizeof (unsigned int), h);
h = fast_hash (&domain, sizeof (unsigned int), h);
- h = fast_hash (&theclass, sizeof (unsigned int), h);
+ h = fast_hash (&loc_class, sizeof (unsigned int), h);
/* Note that psymbol names are interned via compute_and_set_names, so
there's no need to hash the contents of the name here. */
h = fast_hash (&psymbol->ginfo.m_name, sizeof (psymbol->ginfo.m_name), h);
@@ -1047,7 +1044,7 @@ psymbol_bcache::compare (const void *addr1, const void *addr2, int length)
sizeof (sym1->ginfo.m_value)) == 0
&& sym1->ginfo.language () == sym2->ginfo.language ()
&& sym1->domain == sym2->domain
- && sym1->aclass == sym2->aclass
+ && sym1->loc_class == sym2->loc_class
/* Note that psymbol names are interned via
compute_and_set_names, so there's no need to compare the
contents of the name here. */
@@ -1085,7 +1082,7 @@ partial_symtab::add_psymbol (const partial_symbol &psymbol,
void
partial_symtab::add_psymbol (std::string_view name, bool copy_name,
domain_enum domain,
- enum address_class theclass,
+ location_class loc_class,
int section,
psymbol_placement where,
unrelocated_addr coreaddr,
@@ -1099,7 +1096,7 @@ partial_symtab::add_psymbol (std::string_view name, bool copy_name,
psymbol.set_unrelocated_address (coreaddr);
psymbol.ginfo.set_section_index (section);
psymbol.domain = domain;
- psymbol.aclass = theclass;
+ psymbol.loc_class = loc_class;
psymbol.ginfo.set_language (language, partial_symtabs->obstack ());
psymbol.ginfo.compute_and_set_names (name, copy_name, objfile->per_bfd);
@@ -1498,7 +1495,7 @@ maintenance_check_psymtabs (const char *ignore, int from_tty)
{
/* Skip symbols for inlined functions without address. These may
or may not have a match in the full symtab. */
- if (psym->aclass == LOC_BLOCK
+ if (psym->loc_class == LOC_BLOCK
&& psym->ginfo.value_address () == 0)
continue;
diff --git a/gdb/psymtab.h b/gdb/psymtab.h
index ad0b2ff..b1c3ad7 100644
--- a/gdb/psymtab.h
+++ b/gdb/psymtab.h
@@ -184,10 +184,10 @@ struct partial_symbol
ENUM_BITFIELD(domain_enum) domain : SYMBOL_DOMAIN_BITS;
/* Address class (for info_symbols). Note that we don't allow
- synthetic "aclass" values here at present, simply because there's
+ synthetic "loc_class" values here at present, simply because there's
no need. */
- ENUM_BITFIELD(address_class) aclass : SYMBOL_ACLASS_BITS;
+ ENUM_BITFIELD(location_class) loc_class : SYMBOL_LOC_CLASS_BITS;
};
/* A convenience enum to give names to some constants used when
@@ -333,7 +333,7 @@ struct partial_symtab
If COPY_NAME is true, make a copy of NAME, otherwise use the passed
reference.
- THECLASS is the type of symbol.
+ LOC_CLASS is the type of symbol.
SECTION is the index of the section of OBJFILE in which the symbol is found.
@@ -348,7 +348,7 @@ struct partial_symtab
void add_psymbol (std::string_view name,
bool copy_name, domain_enum domain,
- enum address_class theclass,
+ location_class loc_class,
int section,
psymbol_placement where,
unrelocated_addr coreaddr,
@@ -626,15 +626,15 @@ struct psymbol_functions : public quick_symbol_functions
void expand_all_symtabs (struct objfile *objfile) override;
- bool expand_symtabs_matching
+ bool search
(struct objfile *objfile,
- expand_symtabs_file_matcher file_matcher,
+ search_symtabs_file_matcher file_matcher,
const lookup_name_info *lookup_name,
- expand_symtabs_symbol_matcher symbol_matcher,
- expand_symtabs_expansion_listener expansion_notify,
+ search_symtabs_symbol_matcher symbol_matcher,
+ search_symtabs_expansion_listener listener,
block_search_flags search_flags,
domain_search_flags kind,
- expand_symtabs_lang_matcher lang_matcher) override;
+ search_symtabs_lang_matcher lang_matcher) override;
struct compunit_symtab *find_pc_sect_compunit_symtab
(struct objfile *objfile, bound_minimal_symbol msymbol, CORE_ADDR pc,
diff --git a/gdb/pyproject.toml b/gdb/pyproject.toml
index 4469f1c..144c489 100644
--- a/gdb/pyproject.toml
+++ b/gdb/pyproject.toml
@@ -3,3 +3,6 @@ include = "\\.py(\\.in)?$"
[tool.pyright]
typeCheckingMode = "strict"
+
+[tool.isort]
+profile = "black"
diff --git a/gdb/python/lib/gdb/dap/breakpoint.py b/gdb/python/lib/gdb/dap/breakpoint.py
index 4d4ca18..3162911 100644
--- a/gdb/python/lib/gdb/dap/breakpoint.py
+++ b/gdb/python/lib/gdb/dap/breakpoint.py
@@ -373,10 +373,12 @@ def set_insn_breakpoints(
@in_gdb_thread
def _catch_exception(filterId, **args):
if filterId in ("assert", "exception", "throw", "rethrow", "catch"):
- cmd = "-catch-" + filterId
+ cmd = ["-catch-" + filterId]
else:
raise DAPException("Invalid exception filterID: " + str(filterId))
- result = exec_mi_and_log(cmd)
+ if "exception" in args and args["exception"] is not None:
+ cmd += ["-e", args["exception"]]
+ result = exec_mi_and_log(*cmd)
# While the Ada catchpoints emit a "bkptno" field here, the C++
# ones do not. So, instead we look at the "number" field.
num = result["bkpt"]["number"]
@@ -404,6 +406,13 @@ def _rewrite_exception_breakpoint(
# Note that exception breakpoints do not support a hit count.
**args,
):
+ if filterId == "exception":
+ # Treat Ada exceptions specially -- in particular the
+ # condition is just an exception name, not an expression.
+ return {
+ "filterId": filterId,
+ "exception": condition,
+ }
return {
"filterId": filterId,
"condition": condition,
diff --git a/gdb/python/lib/gdb/dap/varref.py b/gdb/python/lib/gdb/dap/varref.py
index 8a13c51..d18197b 100644
--- a/gdb/python/lib/gdb/dap/varref.py
+++ b/gdb/python/lib/gdb/dap/varref.py
@@ -146,6 +146,10 @@ class BaseReference(ABC):
if self._children is None:
self._children = [None] * self.child_count()
for idx in range(start, start + count):
+ if idx >= len(self._children):
+ raise DAPException(
+ f"requested child {idx} outside range of variable {self._ref}"
+ )
if self._children[idx] is None:
(name, value) = self.fetch_one_child(idx)
name = self._compute_name(name)
@@ -242,7 +246,11 @@ class VariableReference(BaseReference):
# changed DAP to allow memory references for any of the
# variable response requests, and to lift the restriction
# to pointer-to-function from Variable.
- if self._value.type.strip_typedefs().code == gdb.TYPE_CODE_PTR:
+ if (
+ self._value.type.strip_typedefs().code == gdb.TYPE_CODE_PTR
+ and not self._value.is_optimized_out
+ and not self._value.is_unavailable
+ ):
result["memoryReference"] = hex(int(self._value))
if client_bool_capability("supportsVariableType"):
result["type"] = str(self._value.type)
diff --git a/gdb/python/lib/gdb/printing.py b/gdb/python/lib/gdb/printing.py
index cba27d2..f1ac19d 100644
--- a/gdb/python/lib/gdb/printing.py
+++ b/gdb/python/lib/gdb/printing.py
@@ -415,10 +415,21 @@ def make_visualizer(value):
result = NoOpArrayPrinter(ty, value)
elif ty.code in (gdb.TYPE_CODE_STRUCT, gdb.TYPE_CODE_UNION):
result = NoOpStructPrinter(ty, value)
- elif ty.code in (
- gdb.TYPE_CODE_PTR,
- gdb.TYPE_CODE_REF,
- gdb.TYPE_CODE_RVALUE_REF,
+ elif (
+ ty.code
+ in (
+ gdb.TYPE_CODE_PTR,
+ gdb.TYPE_CODE_REF,
+ gdb.TYPE_CODE_RVALUE_REF,
+ )
+ # Avoid "void *" here because those pointers can't be
+ # dereferenced without a cast.
+ and ty.target().code != gdb.TYPE_CODE_VOID
+ # An optimized-out or unavailable pointer should just be
+ # treated as a scalar, since there's no way to dereference
+ # it.
+ and not value.is_optimized_out
+ and not value.is_unavailable
):
result = NoOpPointerReferencePrinter(value)
else:
diff --git a/gdb/python/py-block.c b/gdb/python/py-block.c
index fa7dd19..66ccad7 100644
--- a/gdb/python/py-block.c
+++ b/gdb/python/py-block.c
@@ -356,6 +356,9 @@ block_to_block_object (const struct block *block, struct objfile *objfile)
}
result = PyObject_New (block_object, &block_object_type);
+ if (result == nullptr)
+ return nullptr;
+
result->block = block;
result->objfile = objfile;
diff --git a/gdb/python/py-disasm.c b/gdb/python/py-disasm.c
index 17064dc..47ae99c 100644
--- a/gdb/python/py-disasm.c
+++ b/gdb/python/py-disasm.c
@@ -254,15 +254,15 @@ disasm_info_object_is_valid (disasm_info_object *obj)
/* Fill in OBJ with all the other arguments. */
static void
-disasm_info_fill (disasm_info_object *obj, struct gdbarch *gdbarch,
+disasm_info_fill (disasm_info_object &obj, struct gdbarch *gdbarch,
program_space *progspace, bfd_vma address,
disassemble_info *di, disasm_info_object *next)
{
- obj->gdbarch = gdbarch;
- obj->program_space = progspace;
- obj->address = address;
- obj->gdb_info = di;
- obj->next = next;
+ obj.gdbarch = gdbarch;
+ obj.program_space = progspace;
+ obj.address = address;
+ obj.gdb_info = di;
+ obj.next = next;
}
/* Implement DisassembleInfo.__init__. Takes a single argument that must
@@ -281,7 +281,7 @@ disasm_info_init (PyObject *self, PyObject *args, PyObject *kwargs)
disasm_info_object *other = (disasm_info_object *) info_obj;
disasm_info_object *info = (disasm_info_object *) self;
- disasm_info_fill (info, other->gdbarch, other->program_space,
+ disasm_info_fill (*info, other->gdbarch, other->program_space,
other->address, other->gdb_info, other->next);
other->next = info;
@@ -1156,19 +1156,18 @@ gdbpy_disassembler::gdbpy_disassembler (disasm_info_object *obj)
happens when gdbpy_print_insn returns. This class is responsible for
marking the DisassembleInfo as invalid in its destructor. */
-struct scoped_disasm_info_object
+struct scoped_invalidate_disasm_info
{
- /* Constructor. */
- scoped_disasm_info_object (struct gdbarch *gdbarch, CORE_ADDR memaddr,
- disassemble_info *info)
- : m_disasm_info (allocate_disasm_info_object ())
+ /* Constructor. Just cache DISASM_INFO for use in the destructor. */
+ scoped_invalidate_disasm_info
+ (gdbpy_ref<disasm_info_object> disasm_info)
+ : m_disasm_info (std::move (disasm_info))
{
- disasm_info_fill (m_disasm_info.get (), gdbarch, current_program_space,
- memaddr, info, nullptr);
+ /* Nothing. */
}
/* Upon destruction mark m_disasm_info as invalid. */
- ~scoped_disasm_info_object ()
+ ~scoped_invalidate_disasm_info ()
{
/* Invalidate the original DisassembleInfo object as well as any copies
that the user might have made. */
@@ -1178,30 +1177,15 @@ struct scoped_disasm_info_object
obj->gdb_info = nullptr;
}
- /* Return a pointer to the underlying disasm_info_object instance. */
- disasm_info_object *
- get () const
- {
- return m_disasm_info.get ();
- }
-
private:
- /* Wrapper around the call to PyObject_New, this wrapper function can be
- called from the constructor initialization list, while PyObject_New, a
- macro, can't. */
- static disasm_info_object *
- allocate_disasm_info_object ()
- {
- return (disasm_info_object *) PyObject_New (disasm_info_object,
- &disasm_info_object_type);
- }
-
/* A reference to a gdb.disassembler.DisassembleInfo object. When this
- containing instance goes out of scope this reference is released,
- however, the user might be holding other references to the
- DisassembleInfo object in Python code, so the underlying object might
- not be deleted. */
+ object goes out of scope this reference is released, however, the user
+ might be holding other references to the DisassembleInfo (either
+ directly, or via copies of this object), in which case the underlying
+ object will not be deleted. The destructor of this class ensures
+ that this DisassembleInfo object, and any copies, are all marked
+ invalid. */
gdbpy_ref<disasm_info_object> m_disasm_info;
};
@@ -1242,17 +1226,30 @@ gdbpy_print_insn (struct gdbarch *gdbarch, CORE_ADDR memaddr,
return {};
}
- /* Create the new DisassembleInfo object we will pass into Python. This
- object will be marked as invalid when we leave this scope. */
- scoped_disasm_info_object scoped_disasm_info (gdbarch, memaddr, info);
- disasm_info_object *disasm_info = scoped_disasm_info.get ();
+ /* Create the new DisassembleInfo object we will pass into Python. */
+ gdbpy_ref<disasm_info_object> disasm_info
+ ((disasm_info_object *) PyObject_New (disasm_info_object,
+ &disasm_info_object_type));
+ if (disasm_info == nullptr)
+ {
+ gdbpy_print_stack ();
+ return {};
+ }
+
+ /* Initialise the DisassembleInfo object. */
+ disasm_info_fill (*disasm_info.get (), gdbarch, current_program_space,
+ memaddr, info, nullptr);
+
+ /* Ensure the DisassembleInfo, along with any copies the user makes, are
+ marked as invalid when we leave this scope. */
+ scoped_invalidate_disasm_info invalidate_disasm (disasm_info);
/* Call into the registered disassembler to (possibly) perform the
disassembly. */
- PyObject *insn_disas_obj = (PyObject *) disasm_info;
- gdbpy_ref<> result (PyObject_CallFunctionObjArgs (hook.get (),
- insn_disas_obj,
- nullptr));
+ gdbpy_ref<> result
+ (PyObject_CallFunctionObjArgs (hook.get (),
+ (PyObject *) disasm_info.get (),
+ nullptr));
if (result == nullptr)
{
diff --git a/gdb/python/py-event-types.def b/gdb/python/py-event-types.def
index 15cd9fa..83167f3 100644
--- a/gdb/python/py-event-types.def
+++ b/gdb/python/py-event-types.def
@@ -54,7 +54,7 @@ GDB_PY_DEFINE_EVENT_TYPE (new_thread,
GDB_PY_DEFINE_EVENT_TYPE (thread_exited,
"ThreadExitedEvent",
"GDB thread exited event object",
- event_object_type);
+ thread_event_object_type);
GDB_PY_DEFINE_EVENT_TYPE (new_inferior,
"NewInferiorEvent",
diff --git a/gdb/python/py-finishbreakpoint.c b/gdb/python/py-finishbreakpoint.c
index 0ea629f..70e1684 100644
--- a/gdb/python/py-finishbreakpoint.c
+++ b/gdb/python/py-finishbreakpoint.c
@@ -175,7 +175,7 @@ bpfinishpy_init (PyObject *self, PyObject *args, PyObject *kwargs)
struct frame_id frame_id;
PyObject *internal = NULL;
int internal_bp = 0;
- CORE_ADDR pc;
+ std::optional<CORE_ADDR> pc;
if (!gdb_PyArg_ParseTupleAndKeywords (args, kwargs, "|OO", keywords,
&frame_obj, &internal))
@@ -249,9 +249,9 @@ bpfinishpy_init (PyObject *self, PyObject *args, PyObject *kwargs)
try
{
- if (get_frame_pc_if_available (frame, &pc))
+ if ((pc = get_frame_pc_if_available (frame)))
{
- struct symbol *function = find_pc_function (pc);
+ struct symbol *function = find_pc_function (*pc);
if (function != nullptr)
{
struct type *ret_type =
diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c
index adf4233..db8c274 100644
--- a/gdb/python/py-framefilter.c
+++ b/gdb/python/py-framefilter.c
@@ -168,7 +168,7 @@ mi_should_print (struct symbol *sym, enum mi_print_types type)
{
int print_me = 0;
- switch (sym->aclass ())
+ switch (sym->loc_class ())
{
default:
case LOC_UNDEF: /* catches errors */
diff --git a/gdb/python/py-infevents.c b/gdb/python/py-infevents.c
index e63ba52..f74fb01 100644
--- a/gdb/python/py-infevents.c
+++ b/gdb/python/py-infevents.c
@@ -40,7 +40,7 @@ create_inferior_call_event_object (inferior_call_kind flag, ptid_t ptid,
gdb_assert_not_reached ("invalid inferior_call_kind");
}
- gdbpy_ref<> ptid_obj (gdbpy_create_ptid_object (ptid));
+ gdbpy_ref<> ptid_obj = gdbpy_create_ptid_object (ptid);
if (ptid_obj == NULL)
return NULL;
diff --git a/gdb/python/py-infthread.c b/gdb/python/py-infthread.c
index 4f1f8d4..08533fe 100644
--- a/gdb/python/py-infthread.c
+++ b/gdb/python/py-infthread.c
@@ -190,7 +190,7 @@ thpy_get_ptid (PyObject *self, void *closure)
THPY_REQUIRE_VALID (thread_obj);
- return gdbpy_create_ptid_object (thread_obj->thread->ptid);
+ return gdbpy_create_ptid_object (thread_obj->thread->ptid).release ();
}
/* Implement gdb.InferiorThread.ptid_string attribute. */
@@ -361,23 +361,14 @@ thpy_repr (PyObject *self)
target_pid_to_str (thr->ptid).c_str ());
}
-/* Return a reference to a new Python object representing a ptid_t.
- The object is a tuple containing (pid, lwp, tid). */
-PyObject *
+/* See python-internal.h. */
+
+gdbpy_ref<>
gdbpy_create_ptid_object (ptid_t ptid)
{
- int pid;
- long lwp;
- ULONGEST tid;
- PyObject *ret;
-
- ret = PyTuple_New (3);
- if (!ret)
- return NULL;
-
- pid = ptid.pid ();
- lwp = ptid.lwp ();
- tid = ptid.tid ();
+ int pid = ptid.pid ();
+ long lwp = ptid.lwp ();
+ ULONGEST tid = ptid.tid ();
gdbpy_ref<> pid_obj = gdb_py_object_from_longest (pid);
if (pid_obj == nullptr)
@@ -389,10 +380,14 @@ gdbpy_create_ptid_object (ptid_t ptid)
if (tid_obj == nullptr)
return nullptr;
+ gdbpy_ref<> ret (PyTuple_New (3));
+ if (ret == nullptr)
+ return nullptr;
+
/* Note that these steal references, hence the use of 'release'. */
- PyTuple_SET_ITEM (ret, 0, pid_obj.release ());
- PyTuple_SET_ITEM (ret, 1, lwp_obj.release ());
- PyTuple_SET_ITEM (ret, 2, tid_obj.release ());
+ PyTuple_SET_ITEM (ret.get (), 0, pid_obj.release ());
+ PyTuple_SET_ITEM (ret.get (), 1, lwp_obj.release ());
+ PyTuple_SET_ITEM (ret.get (), 2, tid_obj.release ());
return ret;
}
diff --git a/gdb/python/py-mi.c b/gdb/python/py-mi.c
index 9b871d4..b2ab4e2 100644
--- a/gdb/python/py-mi.c
+++ b/gdb/python/py-mi.c
@@ -218,11 +218,11 @@ py_object_to_mi_key (PyObject *key_obj)
{
gdb_assert (name != nullptr);
- if (*name == '\0' || !isalpha (*name))
+ if (*name == '\0' || !c_isalpha (*name))
return false;
for (; *name != '\0'; ++name)
- if (!isalnum (*name) && *name != '_' && *name != '-')
+ if (!c_isalnum (*name) && *name != '_' && *name != '-')
return false;
return true;
@@ -363,7 +363,7 @@ gdbpy_notify_mi (PyObject *self, PyObject *args, PyObject *kwargs)
}
for (int i = 0; i < name_len; i++)
{
- if (!isalnum (name[i]) && name[i] != '-')
+ if (!c_isalnum (name[i]) && name[i] != '-')
{
PyErr_Format
(PyExc_ValueError,
diff --git a/gdb/python/py-micmd.c b/gdb/python/py-micmd.c
index 72f427f..07db0cc 100644
--- a/gdb/python/py-micmd.c
+++ b/gdb/python/py-micmd.c
@@ -350,7 +350,7 @@ micmdpy_init (PyObject *self, PyObject *args, PyObject *kwargs)
PyErr_SetString (PyExc_ValueError, _("MI command name is empty."));
return -1;
}
- else if ((name_len < 2) || (name[0] != '-') || !isalnum (name[1]))
+ else if ((name_len < 2) || (name[0] != '-') || !c_isalnum (name[1]))
{
PyErr_SetString (PyExc_ValueError,
_("MI command name does not start with '-'"
@@ -361,7 +361,7 @@ micmdpy_init (PyObject *self, PyObject *args, PyObject *kwargs)
{
for (int i = 2; i < name_len; i++)
{
- if (!isalnum (name[i]) && name[i] != '-')
+ if (!c_isalnum (name[i]) && name[i] != '-')
{
PyErr_Format
(PyExc_ValueError,
diff --git a/gdb/python/py-objfile.c b/gdb/python/py-objfile.c
index 1c6f569..a9f5754 100644
--- a/gdb/python/py-objfile.c
+++ b/gdb/python/py-objfile.c
@@ -556,7 +556,7 @@ objfpy_build_id_ok (const char *string)
return 0;
for (i = 0; i < n; ++i)
{
- if (!isxdigit (string[i]))
+ if (!c_isxdigit (string[i]))
return 0;
}
return 1;
@@ -619,9 +619,8 @@ gdbpy_lookup_objfile (PyObject *self, PyObject *args, PyObject *kw)
struct objfile *objfile = nullptr;
if (by_build_id)
- gdbarch_iterate_over_objfiles_in_search_order
- (current_inferior ()->arch (),
- [&objfile, name] (struct objfile *obj)
+ current_program_space->iterate_over_objfiles_in_search_order
+ ([&objfile, name] (struct objfile *obj)
{
/* Don't return separate debug files. */
if (obj->separate_debug_objfile_backlink != nullptr)
@@ -642,9 +641,8 @@ gdbpy_lookup_objfile (PyObject *self, PyObject *args, PyObject *kw)
return 1;
}, gdbpy_current_objfile);
else
- gdbarch_iterate_over_objfiles_in_search_order
- (current_inferior ()->arch (),
- [&objfile, name] (struct objfile *obj)
+ current_program_space->iterate_over_objfiles_in_search_order
+ ([&objfile, name] (struct objfile *obj)
{
/* Don't return separate debug files. */
if (obj->separate_debug_objfile_backlink != nullptr)
diff --git a/gdb/python/py-record.c b/gdb/python/py-record.c
index 7e7904b..89c2e77 100644
--- a/gdb/python/py-record.c
+++ b/gdb/python/py-record.c
@@ -696,6 +696,9 @@ gdbpy_current_recording (PyObject *self, PyObject *args)
Py_RETURN_NONE;
ret = PyObject_New (recpy_record_object, &recpy_record_type);
+ if (ret == nullptr)
+ return nullptr;
+
ret->thread = inferior_thread ();
ret->method = target_record_method (ret->thread->ptid);
diff --git a/gdb/python/py-symbol.c b/gdb/python/py-symbol.c
index 3028a30..284e385 100644
--- a/gdb/python/py-symbol.c
+++ b/gdb/python/py-symbol.c
@@ -126,7 +126,7 @@ sympy_get_addr_class (PyObject *self, void *closure)
SYMPY_REQUIRE_VALID (self, symbol);
- return gdb_py_object_from_longest (symbol->aclass ()).release ();
+ return gdb_py_object_from_longest (symbol->loc_class ()).release ();
}
/* Implement gdb.Symbol.domain attribute. Return the domain as an
@@ -156,42 +156,39 @@ static PyObject *
sympy_is_constant (PyObject *self, void *closure)
{
struct symbol *symbol = NULL;
- enum address_class theclass;
SYMPY_REQUIRE_VALID (self, symbol);
- theclass = symbol->aclass ();
+ location_class loc_class = symbol->loc_class ();
- return PyBool_FromLong (theclass == LOC_CONST || theclass == LOC_CONST_BYTES);
+ return PyBool_FromLong (loc_class == LOC_CONST || loc_class == LOC_CONST_BYTES);
}
static PyObject *
sympy_is_function (PyObject *self, void *closure)
{
struct symbol *symbol = NULL;
- enum address_class theclass;
SYMPY_REQUIRE_VALID (self, symbol);
- theclass = symbol->aclass ();
+ location_class loc_class = symbol->loc_class ();
- return PyBool_FromLong (theclass == LOC_BLOCK);
+ return PyBool_FromLong (loc_class == LOC_BLOCK);
}
static PyObject *
sympy_is_variable (PyObject *self, void *closure)
{
struct symbol *symbol = NULL;
- enum address_class theclass;
SYMPY_REQUIRE_VALID (self, symbol);
- theclass = symbol->aclass ();
+ location_class loc_class = symbol->loc_class ();
return PyBool_FromLong (!symbol->is_argument ()
- && (theclass == LOC_LOCAL || theclass == LOC_REGISTER
- || theclass == LOC_STATIC || theclass == LOC_COMPUTED
- || theclass == LOC_OPTIMIZED_OUT));
+ && (loc_class == LOC_LOCAL || loc_class == LOC_REGISTER
+ || loc_class == LOC_STATIC || loc_class == LOC_COMPUTED
+ || loc_class == LOC_OPTIMIZED_OUT));
}
/* Implementation of Symbol.is_artificial. */
@@ -279,7 +276,7 @@ sympy_value (PyObject *self, PyObject *args)
}
SYMPY_REQUIRE_VALID (self, symbol);
- if (symbol->aclass () == LOC_TYPEDEF)
+ if (symbol->loc_class () == LOC_TYPEDEF)
{
PyErr_SetString (PyExc_TypeError, "cannot get the value of a typedef");
return NULL;
@@ -605,17 +602,15 @@ gdbpy_lookup_static_symbols (PyObject *self, PyObject *args, PyObject *kw)
/* Expand any symtabs that contain potentially matching symbols. */
lookup_name_info lookup_name (name, symbol_name_match_type::FULL);
- expand_symtabs_matching (NULL, lookup_name, NULL, NULL,
- SEARCH_STATIC_BLOCK, flags);
for (objfile *objfile : current_program_space->objfiles ())
{
- for (compunit_symtab *cust : objfile->compunits ())
+ auto callback = [&] (compunit_symtab *cust)
{
/* Skip included compunits to prevent including compunits from
being searched twice. */
if (cust->user != nullptr)
- continue;
+ return true;
const struct blockvector *bv = cust->blockvector ();
const struct block *block = bv->static_block ();
@@ -628,13 +623,18 @@ gdbpy_lookup_static_symbols (PyObject *self, PyObject *args, PyObject *kw)
if (symbol != nullptr)
{
PyObject *sym_obj = symbol_to_symbol_object (symbol);
- if (sym_obj == nullptr)
- return nullptr;
- if (PyList_Append (return_list.get (), sym_obj) == -1)
- return nullptr;
+ if (sym_obj == nullptr
+ || PyList_Append (return_list.get (), sym_obj) == -1)
+ return false;
}
}
- }
+
+ return true;
+ };
+
+ if (!objfile->search (nullptr, &lookup_name, nullptr, callback,
+ SEARCH_STATIC_BLOCK, flags))
+ return nullptr;
}
}
catch (const gdb_exception &except)
diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c
index c546aa7..a2c5939 100644
--- a/gdb/python/py-type.c
+++ b/gdb/python/py-type.c
@@ -1045,9 +1045,9 @@ typy_template_argument (PyObject *self, PyObject *args)
}
sym = TYPE_TEMPLATE_ARGUMENT (type, argno);
- if (sym->aclass () == LOC_TYPEDEF)
+ if (sym->loc_class () == LOC_TYPEDEF)
return type_to_type_object (sym->type ());
- else if (sym->aclass () == LOC_OPTIMIZED_OUT)
+ else if (sym->loc_class () == LOC_OPTIMIZED_OUT)
{
PyErr_Format (PyExc_RuntimeError,
_("Template argument is optimized out"));
@@ -1312,10 +1312,9 @@ static PyObject *
typy_has_key (PyObject *self, PyObject *args)
{
struct type *type = ((type_object *) self)->type;
- const char *field;
- int i;
+ const char *field_name;
- if (!PyArg_ParseTuple (args, "s", &field))
+ if (!PyArg_ParseTuple (args, "s", &field_name))
return NULL;
/* We want just fields of this type, not of base types, so instead of
@@ -1326,11 +1325,11 @@ typy_has_key (PyObject *self, PyObject *args)
if (type == NULL)
return NULL;
- for (i = 0; i < type->num_fields (); i++)
+ for (const auto &field : type->fields ())
{
- const char *t_field_name = type->field (i).name ();
+ const char *t_field_name = field.name ();
- if (t_field_name && (strcmp_iw (t_field_name, field) == 0))
+ if (t_field_name && (strcmp_iw (t_field_name, field_name) == 0))
Py_RETURN_TRUE;
}
Py_RETURN_FALSE;
diff --git a/gdb/python/py-unwind.c b/gdb/python/py-unwind.c
index dc078ec..43125bb 100644
--- a/gdb/python/py-unwind.c
+++ b/gdb/python/py-unwind.c
@@ -287,6 +287,8 @@ pyuw_create_unwind_info (PyObject *pyo_pending_frame,
unwind_info_object *unwind_info
= PyObject_New (unwind_info_object, &unwind_info_object_type);
+ if (unwind_info == nullptr)
+ return nullptr;
unwind_info->frame_id = frame_id;
Py_INCREF (pyo_pending_frame);
diff --git a/gdb/python/py-value.c b/gdb/python/py-value.c
index 8a2e263..5d8fab9 100644
--- a/gdb/python/py-value.c
+++ b/gdb/python/py-value.c
@@ -478,6 +478,9 @@ valpy_get_dynamic_type (PyObject *self, void *closure)
type = value_rtti_type (val, NULL, NULL, NULL);
else
type = val->type ();
+
+ if (type == nullptr)
+ type = val->type ();
}
catch (const gdb_exception &except)
{
@@ -1288,6 +1291,30 @@ valpy_get_is_optimized_out (PyObject *self, void *closure)
Py_RETURN_FALSE;
}
+/* Implements gdb.Value.is_unavailable. Return true if any part of the
+ value is unavailable. */
+
+static PyObject *
+valpy_get_is_unavailable (PyObject *self, void *closure)
+{
+ struct value *value = ((value_object *) self)->value;
+ bool entirely_available = false;
+
+ try
+ {
+ entirely_available = value->entirely_available ();
+ }
+ catch (const gdb_exception &except)
+ {
+ return gdbpy_handle_gdb_exception (nullptr, except);
+ }
+
+ if (!entirely_available)
+ Py_RETURN_TRUE;
+
+ Py_RETURN_FALSE;
+}
+
/* Implements gdb.Value.is_lazy. */
static PyObject *
valpy_get_is_lazy (PyObject *self, void *closure)
@@ -1842,7 +1869,7 @@ valpy_long (PyObject *self)
{
struct value *value = ((value_object *) self)->value;
struct type *type = value->type ();
- LONGEST l = 0;
+ PyObject *result;
try
{
@@ -1858,17 +1885,57 @@ valpy_long (PyObject *self)
&& type->code () != TYPE_CODE_PTR)
error (_("Cannot convert value to long."));
- l = value_as_long (value);
+ gdb::array_view<const gdb_byte> contents = value->contents ();
+#if PY_VERSION_HEX >= 0x030d0000
+ int flags = (type_byte_order (type) == BFD_ENDIAN_BIG
+ ? Py_ASNATIVEBYTES_BIG_ENDIAN
+ : Py_ASNATIVEBYTES_LITTLE_ENDIAN);
+ if (type->is_unsigned ())
+ flags |= Py_ASNATIVEBYTES_UNSIGNED_BUFFER;
+ result = PyLong_FromNativeBytes (contents.data (), contents.size (),
+ flags);
+#else
+ /* Here we construct a call to "int.from_bytes", passing in the
+ appropriate arguments. We need a somewhat roundabout
+ approach because int.from_bytes requires "signed" to be a
+ keyword arg. */
+
+ /* PyObject_Call requires a tuple argument. */
+ gdbpy_ref<> empty_tuple (PyTuple_New (0));
+ if (empty_tuple == nullptr)
+ return nullptr;
+
+ /* Since we need a dictionary anyway, we pass all arguments as
+ keywords, building the dictionary here. */
+ gdbpy_ref<> args
+ (Py_BuildValue ("{sy#sssO}",
+ "bytes", contents.data (),
+ (Py_ssize_t) contents.size (),
+ "byteorder",
+ (type_byte_order (type) == BFD_ENDIAN_BIG
+ ? "big" : "little"),
+ "signed",
+ type->is_unsigned ()
+ ? Py_False : Py_True));
+ if (args == nullptr)
+ return nullptr;
+
+ /* Find the "int.from_bytes" callable. */
+ gdbpy_ref<> callable (PyObject_GetAttrString ((PyObject *) &PyLong_Type,
+ "from_bytes"));
+ if (callable == nullptr)
+ return nullptr;
+
+ result = PyObject_Call (callable.get (), empty_tuple.get (),
+ args.get ());
+#endif
}
catch (const gdb_exception &except)
{
return gdbpy_handle_gdb_exception (nullptr, except);
}
- if (type->is_unsigned ())
- return gdb_py_object_from_ulongest (l).release ();
- else
- return gdb_py_object_from_longest (l).release ();
+ return result;
}
/* Implements conversion to float. */
@@ -2194,6 +2261,9 @@ static gdb_PyGetSetDef value_object_getset[] = {
"Boolean telling whether the value is optimized "
"out (i.e., not available).",
NULL },
+ { "is_unavailable", valpy_get_is_unavailable, nullptr,
+ "Boolean telling whether the value is unavailable.",
+ nullptr },
{ "type", valpy_get_type, NULL, "Type of the value.", NULL },
{ "dynamic_type", valpy_get_dynamic_type, NULL,
"Dynamic type of the value.", NULL },
diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h
index 7f4237e..f61a175 100644
--- a/gdb/python/python-internal.h
+++ b/gdb/python/python-internal.h
@@ -503,7 +503,12 @@ PyObject *gdbpy_create_lazy_string_object (CORE_ADDR address, long length,
const char *encoding,
struct type *type);
PyObject *gdbpy_inferiors (PyObject *unused, PyObject *unused2);
-PyObject *gdbpy_create_ptid_object (ptid_t ptid);
+
+/* Return a reference to a new Python Tuple object representing a ptid_t.
+ The object is a tuple containing (pid, lwp, tid). */
+
+extern gdbpy_ref<> gdbpy_create_ptid_object (ptid_t ptid);
+
PyObject *gdbpy_selected_thread (PyObject *self, PyObject *args);
PyObject *gdbpy_selected_inferior (PyObject *self, PyObject *args);
PyObject *gdbpy_string_to_argv (PyObject *self, PyObject *args);
diff --git a/gdb/python/python.c b/gdb/python/python.c
index cb0d642..740b196 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -31,7 +31,6 @@
#include "python.h"
#include "extension-priv.h"
#include "cli/cli-utils.h"
-#include <ctype.h>
#include "location.h"
#include "run-on-main-thread.h"
#include "observable.h"
@@ -1202,15 +1201,22 @@ gdbpy_post_event (PyObject *self, PyObject *args)
static PyObject *
gdbpy_interrupt (PyObject *self, PyObject *args)
{
+#ifdef __MINGW32__
{
- /* Make sure the interrupt isn't delivered immediately somehow.
- This probably is not truly needed, but at the same time it
- seems more clear to be explicit about the intent. */
gdbpy_allow_threads temporarily_exit_python;
scoped_disable_cooperative_sigint_handling no_python_sigint;
set_quit_flag ();
}
+#else
+ {
+ /* For targets with support kill() just send SIGINT. This will be
+ handled as if the user hit Ctrl+C. This isn't exactly the same as
+ the above, which directly sets the quit flag. Consider, for
+ example, every place that install_sigint_handler is called. */
+ kill (getpid (), SIGINT);
+ }
+#endif
Py_RETURN_NONE;
}
@@ -1570,21 +1576,21 @@ gdbpy_write (PyObject *self, PyObject *args, PyObject *kw)
try
{
+ ui_file *stream;
switch (stream_type)
{
case 1:
- {
- gdb_printf (gdb_stderr, "%s", arg);
- break;
- }
+ stream = gdb_stderr;
+ break;
case 2:
- {
- gdb_printf (gdb_stdlog, "%s", arg);
- break;
- }
+ stream = gdb_stdlog;
+ break;
default:
- gdb_printf (gdb_stdout, "%s", arg);
+ stream = gdb_stdout;
+ break;
}
+
+ gdb_puts (arg, stream);
}
catch (const gdb_exception &except)
{
diff --git a/gdb/quick-symbol.h b/gdb/quick-symbol.h
index 9db1f18..b5308dc 100644
--- a/gdb/quick-symbol.h
+++ b/gdb/quick-symbol.h
@@ -37,30 +37,29 @@ DEF_ENUM_FLAGS_TYPE (enum block_search_flag_values, block_search_flags);
using symbol_filename_listener
= gdb::function_view<void (const char *filename, const char *fullname)>;
-/* Callback for quick_symbol_functions::expand_symtabs_matching
- to match a file name. */
+/* Callback for quick_symbol_functions::search to match a file
+ name. */
-using expand_symtabs_file_matcher
+using search_symtabs_file_matcher
= gdb::function_view<bool (const char *filename, bool basenames)>;
-/* Callback for quick_symbol_functions::expand_symtabs_matching
- to match a symbol name. */
+/* Callback for quick_symbol_functions::search to match a symbol
+ name. */
-using expand_symtabs_symbol_matcher
+using search_symtabs_symbol_matcher
= gdb::function_view<bool (const char *name)>;
-/* Callback for quick_symbol_functions::expand_symtabs_matching
- to match a language. */
+/* Callback for quick_symbol_functions::search to match a
+ language. */
-using expand_symtabs_lang_matcher
+using search_symtabs_lang_matcher
= gdb::function_view<bool (enum language lang)>;
-/* Callback for quick_symbol_functions::expand_symtabs_matching
- to be called after a symtab has been expanded. If this returns
- true, more symtabs are checked; if it returns false, iteration
- stops. */
+/* Callback for quick_symbol_functions::search to be called when
+ symtab matches (perhaps expanding it first). If this returns true,
+ more symtabs are checked; if it returns false, iteration stops. */
-using expand_symtabs_expansion_listener
+using search_symtabs_expansion_listener
= gdb::function_view<bool (compunit_symtab *symtab)>;
/* The "quick" symbol functions exist so that symbol readers can
@@ -71,13 +70,6 @@ using expand_symtabs_expansion_listener
The quick symbol functions are generally opaque: the underlying
representation is hidden from the caller.
- In general, these functions should only look at whatever special
- index the symbol reader creates -- looking through the symbol
- tables themselves is handled by generic code. If a function is
- defined as returning a "symbol table", this means that the function
- should only return a newly-created symbol table; it should not
- examine pre-existing ones.
-
The exact list of functions here was determined in an ad hoc way
based on gdb's history. */
@@ -130,11 +122,11 @@ struct quick_symbol_functions
/* Read all symbol tables associated with OBJFILE. */
virtual void expand_all_symtabs (struct objfile *objfile) = 0;
- /* Expand all symbol tables in OBJFILE matching some criteria.
+ /* Search all symbol tables in OBJFILE matching some criteria.
- If LANG_MATCHER returns false, expansion of the symbol table may be
- skipped. It may also not be skipped, which the caller needs to take into
- account.
+ If LANG_MATCHER returns false, search of the symbol table may be
+ skipped. It may also not be skipped, which the caller needs to
+ take into account.
FILE_MATCHER is called for each file in OBJFILE. The file name
is passed to it. If the matcher returns false, the file is
@@ -144,7 +136,7 @@ struct quick_symbol_functions
part).
If the file is not skipped, and SYMBOL_MATCHER and LOOKUP_NAME are NULL,
- the symbol table is expanded.
+ the symbol table is searched.
Otherwise, individual symbols are considered.
@@ -156,19 +148,23 @@ struct quick_symbol_functions
Note that if SYMBOL_MATCHER is non-NULL, then LOOKUP_NAME must
also be provided.
- Otherwise, the symbol's symbol table is expanded and EXPANSION_NOTIFY is
- called. If EXPANSION_NOTIFY returns false, execution stops and this method
- returns false. Otherwise, more files are considered. This method returns
- true if all calls to EXPANSION_NOTIFY return true. */
- virtual bool expand_symtabs_matching
+ Otherwise, the symbol's symbol table is expanded if needed.
+
+ Then (regardless of whether the symbol table was already
+ expanded, or just expanded in response to this search), LISTENER
+ is called. If LISTENER returns false, execution stops and this
+ method returns false. Otherwise, more files are considered.
+ This method returns true if all calls to LISTENER return
+ true. */
+ virtual bool search
(struct objfile *objfile,
- expand_symtabs_file_matcher file_matcher,
+ search_symtabs_file_matcher file_matcher,
const lookup_name_info *lookup_name,
- expand_symtabs_symbol_matcher symbol_matcher,
- expand_symtabs_expansion_listener expansion_notify,
+ search_symtabs_symbol_matcher symbol_matcher,
+ search_symtabs_expansion_listener listener,
block_search_flags search_flags,
domain_search_flags domain,
- expand_symtabs_lang_matcher lang_matcher = nullptr) = 0;
+ search_symtabs_lang_matcher lang_matcher = nullptr) = 0;
/* Return the comp unit from OBJFILE that contains PC and
SECTION. Return NULL if there is no such compunit. This
diff --git a/gdb/record-full.c b/gdb/record-full.c
index 7e3da27..e2298b3 100644
--- a/gdb/record-full.c
+++ b/gdb/record-full.c
@@ -908,7 +908,7 @@ record_full_exec_insn (struct regcache *regcache,
}
}
-static void record_full_restore (void);
+static void record_full_restore (struct bfd &cbfd);
/* Asynchronous signal handle registered as event loop source for when
we have pending events ready to be passed to the core. */
@@ -921,10 +921,11 @@ record_full_async_inferior_event_handler (gdb_client_data data)
inferior_event_handler (INF_REG_EVENT);
}
-/* Open the process record target for 'core' files. */
+/* Open the process record target for 'core' files. CBFD is the core file
+ containing the record information. */
static void
-record_full_core_open_1 ()
+record_full_core_open_1 (struct bfd &cbfd)
{
regcache *regcache = get_thread_regcache (inferior_thread ());
int regnum = gdbarch_num_regs (regcache->arch ());
@@ -937,11 +938,10 @@ record_full_core_open_1 ()
for (i = 0; i < regnum; i ++)
record_full_core_regbuf->raw_supply (i, *regcache);
- record_full_core_sections
- = build_section_table (current_program_space->core_bfd ());
+ record_full_core_sections = build_section_table (&cbfd);
current_inferior ()->push_target (&record_full_core_ops);
- record_full_restore ();
+ record_full_restore (cbfd);
}
/* Open the process record target for 'live' processes. */
@@ -987,8 +987,8 @@ record_full_open (const char *args, int from_tty)
record_full_list = &record_full_first;
record_full_list->next = NULL;
- if (current_program_space->core_bfd ())
- record_full_core_open_1 ();
+ if (current_program_space->core_bfd () != nullptr)
+ record_full_core_open_1 (*current_program_space->core_bfd ());
else
record_full_open_1 ();
@@ -1084,14 +1084,15 @@ record_full_target::resume (ptid_t ptid, int step, enum gdb_signal signal)
if (!RECORD_FULL_IS_REPLAY)
{
- struct gdbarch *gdbarch = target_thread_architecture (ptid);
+ struct regcache *regcache = get_thread_regcache (inferior_thread ());
+ struct gdbarch *gdbarch = regcache->arch ();
- record_full_message (get_thread_regcache (inferior_thread ()), signal);
+ record_full_message (regcache, signal);
if (!step)
{
/* This is not hard single step. */
- if (!gdbarch_software_single_step_p (gdbarch))
+ if (!gdbarch_get_next_pcs_p (gdbarch))
{
/* This is a normal continue. */
step = 1;
@@ -1266,7 +1267,7 @@ record_full_wait_1 (struct target_ops *ops,
process_stratum_target *proc_target
= current_inferior ()->process_target ();
- if (gdbarch_software_single_step_p (gdbarch))
+ if (gdbarch_get_next_pcs_p (gdbarch))
{
/* Try to insert the software single step breakpoint.
If insert success, set step to 0. */
@@ -2332,9 +2333,10 @@ netorder32 (uint32_t input)
return ret;
}
-/* Restore the execution log from a core_bfd file. */
+/* Restore the execution log from core file CBFD. */
+
static void
-record_full_restore (void)
+record_full_restore (struct bfd &cbfd)
{
uint32_t magic;
struct record_full_entry *rec;
@@ -2342,11 +2344,6 @@ record_full_restore (void)
uint32_t osec_size;
int bfd_offset = 0;
- /* We restore the execution log from the open core bfd,
- if there is one. */
- if (current_program_space->core_bfd () == nullptr)
- return;
-
/* "record_full_restore" can only be called when record list is empty. */
gdb_assert (record_full_first.next == NULL);
@@ -2354,7 +2351,7 @@ record_full_restore (void)
gdb_printf (gdb_stdlog, "Restoring recording from core file.\n");
/* Now need to find our special note section. */
- osec = bfd_get_section_by_name (current_program_space->core_bfd (), "null0");
+ osec = bfd_get_section_by_name (&cbfd, "null0");
if (record_debug)
gdb_printf (gdb_stdlog, "Find precord section %s.\n",
osec ? "succeeded" : "failed");
@@ -2365,11 +2362,10 @@ record_full_restore (void)
gdb_printf (gdb_stdlog, "%s", bfd_section_name (osec));
/* Check the magic code. */
- bfdcore_read (current_program_space->core_bfd (), osec, &magic,
- sizeof (magic), &bfd_offset);
+ bfdcore_read (&cbfd, osec, &magic, sizeof (magic), &bfd_offset);
if (magic != RECORD_FULL_FILE_MAGIC)
error (_("Version mismatch or file format error in core file %s."),
- bfd_get_filename (current_program_space->core_bfd ()));
+ bfd_get_filename (&cbfd));
if (record_debug)
gdb_printf (gdb_stdlog,
" Reading 4-byte magic cookie "
@@ -2395,23 +2391,21 @@ record_full_restore (void)
/* We are finished when offset reaches osec_size. */
if (bfd_offset >= osec_size)
break;
- bfdcore_read (current_program_space->core_bfd (), osec, &rectype,
- sizeof (rectype), &bfd_offset);
+ bfdcore_read (&cbfd, osec, &rectype, sizeof (rectype), &bfd_offset);
switch (rectype)
{
case record_full_reg: /* reg */
/* Get register number to regnum. */
- bfdcore_read (current_program_space->core_bfd (), osec, &regnum,
- sizeof (regnum), &bfd_offset);
+ bfdcore_read (&cbfd, osec, &regnum, sizeof (regnum),
+ &bfd_offset);
regnum = netorder32 (regnum);
rec = record_full_reg_alloc (regcache, regnum);
/* Get val. */
- bfdcore_read (current_program_space->core_bfd (), osec,
- record_full_get_loc (rec), rec->u.reg.len,
- &bfd_offset);
+ bfdcore_read (&cbfd, osec, record_full_get_loc (rec),
+ rec->u.reg.len, &bfd_offset);
if (record_debug)
gdb_printf (gdb_stdlog,
@@ -2424,21 +2418,18 @@ record_full_restore (void)
case record_full_mem: /* mem */
/* Get len. */
- bfdcore_read (current_program_space->core_bfd (), osec, &len,
- sizeof (len), &bfd_offset);
+ bfdcore_read (&cbfd, osec, &len, sizeof (len), &bfd_offset);
len = netorder32 (len);
/* Get addr. */
- bfdcore_read (current_program_space->core_bfd (), osec, &addr,
- sizeof (addr), &bfd_offset);
+ bfdcore_read (&cbfd, osec, &addr, sizeof (addr), &bfd_offset);
addr = netorder64 (addr);
rec = record_full_mem_alloc (addr, len);
/* Get val. */
- bfdcore_read (current_program_space->core_bfd (), osec,
- record_full_get_loc (rec), rec->u.mem.len,
- &bfd_offset);
+ bfdcore_read (&cbfd, osec, record_full_get_loc (rec),
+ rec->u.mem.len, &bfd_offset);
if (record_debug)
gdb_printf (gdb_stdlog,
@@ -2456,14 +2447,13 @@ record_full_restore (void)
record_full_insn_num ++;
/* Get signal value. */
- bfdcore_read (current_program_space->core_bfd (), osec, &signal,
- sizeof (signal), &bfd_offset);
+ bfdcore_read (&cbfd, osec, &signal, sizeof (signal),
+ &bfd_offset);
signal = netorder32 (signal);
rec->u.end.sigval = (enum gdb_signal) signal;
/* Get insn count. */
- bfdcore_read (current_program_space->core_bfd (), osec, &count,
- sizeof (count), &bfd_offset);
+ bfdcore_read (&cbfd, osec, &count, sizeof (count), &bfd_offset);
count = netorder32 (count);
rec->u.end.insn_num = count;
record_full_insn_count = count + 1;
@@ -2479,7 +2469,7 @@ record_full_restore (void)
default:
error (_("Bad entry type in core file %s."),
- bfd_get_filename (current_program_space->core_bfd ()));
+ bfd_get_filename (&cbfd));
break;
}
@@ -2509,7 +2499,7 @@ record_full_restore (void)
/* Succeeded. */
gdb_printf (_("Restored records from core file %s.\n"),
- bfd_get_filename (current_program_space->core_bfd ()));
+ bfd_get_filename (&cbfd));
print_stack_frame (get_selected_frame (NULL), 1, SRC_AND_LOC, 1);
}
diff --git a/gdb/record.c b/gdb/record.c
index 248cfaa..de1a7a8 100644
--- a/gdb/record.c
+++ b/gdb/record.c
@@ -28,7 +28,6 @@
#include "interps.h"
#include "top.h"
-#include <ctype.h>
/* This is the debug switch for process record. */
unsigned int record_debug = 0;
@@ -423,7 +422,7 @@ get_insn_number (const char **arg)
begin = *arg;
pos = skip_spaces (begin);
- if (!isdigit (*pos))
+ if (!c_isdigit (*pos))
error (_("Expected positive number, got: %s."), pos);
number = strtoulst (pos, &end, 10);
@@ -443,7 +442,7 @@ get_context_size (const char **arg)
pos = skip_spaces (*arg);
- if (!isdigit (*pos))
+ if (!c_isdigit (*pos))
error (_("Expected positive number, got: %s."), pos);
long result = strtol (pos, &end, 10);
@@ -483,7 +482,7 @@ get_insn_history_modifiers (const char **arg)
for (; *args; ++args)
{
- if (isspace (*args))
+ if (c_isspace (*args))
break;
if (*args == '/')
@@ -627,7 +626,7 @@ get_call_history_modifiers (const char **arg)
for (; *args; ++args)
{
- if (isspace (*args))
+ if (c_isspace (*args))
break;
if (*args == '/')
diff --git a/gdb/regcache.c b/gdb/regcache.c
index 9892c54..cf4c5dd 100644
--- a/gdb/regcache.c
+++ b/gdb/regcache.c
@@ -1841,9 +1841,10 @@ reg_buffer_raw_compare_zero_len_test ()
const regcache *regcache
= get_thread_arch_regcache (&inf, ptid_t (1, 1), inf.arch ());
- /* The buffer address is irrelevant since we end up comparing 0 bytes, we just
- need to pass something. */
- gdb_byte buf;
+ /* The buffer address is irrelevant since we end up comparing 0 bytes, we
+ just need to pass something. The variable needs to be initialized to
+ avoid compiler warnings about uninitialized values. */
+ gdb_byte buf = 0;
SELF_CHECK (regcache->raw_compare (0, &buf, register_size (inf.arch (), 0)));
}
diff --git a/gdb/remote-sim.c b/gdb/remote-sim.c
index 425e50d..a325ffa 100644
--- a/gdb/remote-sim.c
+++ b/gdb/remote-sim.c
@@ -25,7 +25,6 @@
#include "inferior.h"
#include "infrun.h"
#include "value.h"
-#include <ctype.h>
#include <fcntl.h>
#include <signal.h>
#include <setjmp.h>
diff --git a/gdb/remote.c b/gdb/remote.c
index 6208a90..9fc8712 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -19,9 +19,9 @@
/* See the GDB User Guide for details of the GDB remote protocol. */
-#include <ctype.h>
#include <fcntl.h>
#include "exceptions.h"
+#include "gdbsupport/common-inferior.h"
#include "inferior.h"
#include "infrun.h"
#include "bfd.h"
@@ -81,6 +81,7 @@
#include "gdbsupport/selftest.h"
#include "cli/cli-style.h"
#include "gdbsupport/remote-args.h"
+#include "gdbsupport/gdb_argv_vec.h"
/* The remote target. */
@@ -401,6 +402,10 @@ enum {
errors, and so they should not need to check for this feature. */
PACKET_accept_error_message,
+ /* Not really a packet; this indicates support for sending the vRun
+ inferior arguments as a single string. */
+ PACKET_vRun_single_argument,
+
PACKET_MAX
};
@@ -826,6 +831,11 @@ struct remote_features
bool remote_memory_tagging_p () const
{ return packet_support (PACKET_memory_tagging_feature) == PACKET_ENABLE; }
+ /* Returns true if there is support for sending vRun inferior arguments
+ as a single string. */
+ bool remote_vrun_single_arg_p () const
+ { return packet_support (PACKET_vRun_single_argument) == PACKET_ENABLE; }
+
/* Reset all packets back to "unknown support". Called when opening a
new connection to a remote target. */
void reset_all_packet_configs_support ();
@@ -1387,7 +1397,8 @@ public: /* Remote specific methods. */
void remote_kill_k ();
void extended_remote_disable_randomization (int val);
- int extended_remote_run (const std::string &args);
+ int extended_remote_run (const std::string &remote_exec_file,
+ const std::string &args);
void send_environment_packet (const char *action,
const char *packet,
@@ -1515,14 +1526,7 @@ remote_register_is_expedited (int regnum)
}
/* Per-program-space data key. */
-static const registry<program_space>::key<char, gdb::xfree_deleter<char>>
- remote_pspace_data;
-
-/* The variable registered as the control variable used by the
- remote exec-file commands. While the remote exec-file setting is
- per-program-space, the set/show machinery uses this as the
- location of the remote exec-file value. */
-static std::string remote_exec_file_var;
+static const registry<program_space>::key<std::string> remote_pspace_data;
/* The size to align memory write packets, when practical. The protocol
does not guarantee any alignment, and gdb will generate short
@@ -1852,47 +1856,47 @@ remote_target::get_remote_state ()
/* Fetch the remote exec-file from the current program space. */
-static const char *
+static const std::string &
get_remote_exec_file (void)
{
- char *remote_exec_file;
-
- remote_exec_file = remote_pspace_data.get (current_program_space);
- if (remote_exec_file == NULL)
- return "";
-
- return remote_exec_file;
+ const std::string *remote_exec_file
+ = remote_pspace_data.get (current_program_space);
+ if (remote_exec_file == nullptr)
+ remote_exec_file = remote_pspace_data.emplace (current_program_space);
+ return *remote_exec_file;
}
/* Set the remote exec file for PSPACE. */
static void
set_pspace_remote_exec_file (struct program_space *pspace,
- const char *remote_exec_file)
+ const std::string &filename)
{
- char *old_file = remote_pspace_data.get (pspace);
-
- xfree (old_file);
- remote_pspace_data.set (pspace, xstrdup (remote_exec_file));
+ remote_pspace_data.clear (pspace);
+ remote_pspace_data.emplace (pspace, filename);
}
-/* The "set/show remote exec-file" set command hook. */
+/* The "set remote exec-file" callback. */
static void
-set_remote_exec_file (const char *ignored, int from_tty,
- struct cmd_list_element *c)
+set_remote_exec_file_cb (const std::string &filename)
{
set_pspace_remote_exec_file (current_program_space,
- remote_exec_file_var.c_str ());
+ filename);
}
-/* The "set/show remote exec-file" show command hook. */
+/* Implement the "show remote exec-file" command. */
static void
show_remote_exec_file (struct ui_file *file, int from_tty,
struct cmd_list_element *cmd, const char *value)
{
- gdb_printf (file, "%s\n", get_remote_exec_file ());
+ const std::string &filename = get_remote_exec_file ();
+ if (filename.empty ())
+ gdb_printf (file, _("The remote exec-file is unset, the default remote "
+ "executable will be used.\n"));
+ else
+ gdb_printf (file, "The remote exec-file is \"%s\".\n", filename.c_str ());
}
static int
@@ -2558,7 +2562,7 @@ packet_check_result (const char *buf)
/* The stub recognized the packet request. Check that the
operation succeeded. */
if (buf[0] == 'E'
- && isxdigit (buf[1]) && isxdigit (buf[2])
+ && c_isxdigit (buf[1]) && c_isxdigit (buf[2])
&& buf[3] == '\0')
/* "Enn" - definitely an error. */
return packet_result::make_numeric_error (buf + 1);
@@ -2903,6 +2907,10 @@ remote_target::remote_add_inferior (bool fake_pid_p, int pid, int attached,
inf = add_inferior_with_spaces ();
}
switch_to_inferior_no_thread (inf);
+
+ /* Clear any data left by previous executions. */
+ target_pre_inferior ();
+
inf->push_target (this);
inferior_appeared (inf, pid);
}
@@ -3028,6 +3036,12 @@ remote_target::remote_notice_new_inferior (ptid_t currthread, bool executing)
inf = remote_add_inferior (fake_pid_p,
currthread.pid (), -1, 1);
+
+ /* Fetch the target description for this inferior. Make sure to
+ leave the currently selected inferior unchanged. */
+ scoped_restore_current_thread restore_thread;
+ switch_to_inferior_no_thread (inf);
+ target_find_description ();
}
/* This is really a new thread. Add it. */
@@ -4658,8 +4672,6 @@ remote_target::get_offsets ()
if (bss_addr != data_addr)
warning (_("Target reported unsupported offsets: %s"), buf);
}
- else
- lose = 1;
}
else if (startswith (ptr, "TextSeg="))
{
@@ -4868,7 +4880,11 @@ remote_target::add_current_inferior_and_thread (const char *wait_status)
fake_pid_p = true;
}
- remote_add_inferior (fake_pid_p, curr_ptid.pid (), -1, 1);
+ const auto inf = remote_add_inferior (fake_pid_p, curr_ptid.pid (), -1, 1);
+ switch_to_inferior_no_thread (inf);
+
+ /* Fetch the target description for this inferior. */
+ target_find_description ();
/* Add the main thread and switch to it. Don't try reading
registers yet, since we haven't fetched the target description
@@ -5007,6 +5023,24 @@ remote_target::process_initial_stop_replies (int from_tty)
the inferiors. */
if (!non_stop)
{
+ /* Ensure changes to the thread state are propagated to the
+ frontend. In non-stop mode only the current inferior will be
+ stopped, but in all-stop mode, all inferiors will change, and
+ the frontend will need updating. */
+ process_stratum_target *finish_target;
+ ptid_t finish_ptid;
+ if (non_stop)
+ {
+ finish_target = current_inferior ()->process_target ();
+ finish_ptid = ptid_t (current_inferior ()->pid);
+ }
+ else
+ {
+ finish_target = nullptr;
+ finish_ptid = minus_one_ptid;
+ }
+ scoped_finish_thread_state finish_state (finish_target, finish_ptid);
+
{
/* At this point, the remote target is not async. It needs to be for
the poll in stop_all_threads to consider events from it, so enable
@@ -5864,6 +5898,8 @@ static const struct protocol_feature remote_protocol_features[] = {
{ "error-message", PACKET_ENABLE, remote_supported_packet,
PACKET_accept_error_message },
{ "binary-upload", PACKET_DISABLE, remote_supported_packet, PACKET_x },
+ { "single-inf-arg", PACKET_DISABLE, remote_supported_packet,
+ PACKET_vRun_single_argument },
};
static char *remote_support_xml;
@@ -5975,6 +6011,10 @@ remote_target::remote_query_supported ()
!= AUTO_BOOLEAN_FALSE)
remote_query_supported_append (&q, "memory-tagging+");
+ if (m_features.packet_set_cmd_state (PACKET_vRun_single_argument)
+ != AUTO_BOOLEAN_FALSE)
+ remote_query_supported_append (&q, "single-inf-arg+");
+
/* Keep this one last to work around a gdbserver <= 7.10 bug in
the qSupported:xmlRegisters=i386 handling. */
if (remote_support_xml != NULL
@@ -6166,6 +6206,7 @@ remote_unpush_target (remote_target *target)
/* We have to unpush the target from all inferiors, even those that
aren't running. */
scoped_restore_current_inferior restore_current_inferior;
+ scoped_restore_current_program_space restore_program_space;
for (inferior *inf : all_inferiors (target))
{
@@ -10816,11 +10857,11 @@ remote_target::extended_remote_disable_randomization (int val)
}
int
-remote_target::extended_remote_run (const std::string &args)
+remote_target::extended_remote_run (const std::string &remote_exec_file,
+ const std::string &args)
{
struct remote_state *rs = get_remote_state ();
int len;
- const char *remote_exec_file = get_remote_exec_file ();
/* If the user has disabled vRun support, or we have detected that
support is not available, do not try it. */
@@ -10830,14 +10871,19 @@ remote_target::extended_remote_run (const std::string &args)
strcpy (rs->buf.data (), "vRun;");
len = strlen (rs->buf.data ());
- if (strlen (remote_exec_file) * 2 + len >= get_remote_packet_size ())
+ if (remote_exec_file.size () * 2 + len >= get_remote_packet_size ())
error (_("Remote file name too long for run packet"));
- len += 2 * bin2hex ((gdb_byte *) remote_exec_file, rs->buf.data () + len,
- strlen (remote_exec_file));
+ len += 2 * bin2hex ((gdb_byte *) remote_exec_file.data (),
+ rs->buf.data () + len,
+ remote_exec_file.size ());
if (!args.empty ())
{
- std::vector<std::string> split_args = gdb::remote_args::split (args);
+ std::vector<std::string> split_args;
+ if (!m_features.remote_vrun_single_arg_p ())
+ split_args = gdb::remote_args::split (args);
+ else
+ split_args.push_back (args);
for (const auto &a : split_args)
{
@@ -10873,7 +10919,7 @@ remote_target::extended_remote_run (const std::string &args)
"try \"set remote exec-file\"?"));
else
error (_("Running \"%s\" on the remote target failed"),
- remote_exec_file);
+ remote_exec_file.c_str ());
default:
gdb_assert_not_reached ("bad switch");
}
@@ -10993,7 +11039,7 @@ extended_remote_target::create_inferior (const char *exec_file,
int run_worked;
char *stop_reply;
struct remote_state *rs = get_remote_state ();
- const char *remote_exec_file = get_remote_exec_file ();
+ const std::string &remote_exec_file = get_remote_exec_file ();
/* If running asynchronously, register the target file descriptor
with the event loop. */
@@ -11023,7 +11069,7 @@ Remote replied unexpectedly while setting startup-with-shell: %s"),
extended_remote_set_inferior_cwd ();
/* Now restart the remote server. */
- run_worked = extended_remote_run (args) != -1;
+ run_worked = extended_remote_run (remote_exec_file, args) != -1;
if (!run_worked)
{
/* vRun was not supported. Fail if we need it to do what the
@@ -11936,7 +11982,7 @@ remote_target::xfer_partial (enum target_object object,
while (annex[i] && (i < (get_remote_packet_size () - 8)))
{
/* Bad caller may have sent forbidden characters. */
- gdb_assert (isprint (annex[i]) && annex[i] != '$' && annex[i] != '#');
+ gdb_assert (c_isprint (annex[i]) && annex[i] != '$' && annex[i] != '#');
*p2++ = annex[i];
i++;
}
@@ -12186,7 +12232,7 @@ private:
for (int i = 0; i < buf.size (); ++i)
{
gdb_byte c = buf[i];
- if (isprint (c))
+ if (c_isprint (c))
gdb_putc (c, &stb);
else
gdb_printf (&stb, "\\x%02x", (unsigned char) c);
@@ -12233,6 +12279,51 @@ cli_packet_command (const char *args, int from_tty)
send_remote_packet (view, &cb);
}
+/* Implement 'maint test-remote-args' command.
+
+ Treat ARGS as an argument string. Split the remote arguments using
+ gdb::remote_args::split, and then join using gdb::remote_args::join.
+ The split and joined arguments are printed out. Additionally, the
+ joined arguments are split and joined a second time, and compared to the
+ result of the first join, this provides some basic validation that GDB
+ sess the joined arguments as equivalent to the original argument
+ string. */
+
+static void
+test_remote_args_command (const char *args, int from_tty)
+{
+ std::vector<std::string> split_args = gdb::remote_args::split (args);
+
+ gdb_printf ("Input (%s)\n", args);
+ for (const std::string &a : split_args)
+ gdb_printf (" (%s)\n", a.c_str ());
+
+ gdb::argv_vec tmp_split_args;
+ for (const std::string &a : split_args)
+ tmp_split_args.emplace_back (xstrdup (a.c_str ()));
+
+ std::string joined_args = gdb::remote_args::join (tmp_split_args.get ());
+
+ gdb_printf ("Output (%s)\n", joined_args.c_str ());
+
+ std::vector<std::string> resplit = gdb::remote_args::split (joined_args);
+
+ tmp_split_args.clear ();
+ for (const std::string &a : resplit)
+ tmp_split_args.emplace_back (xstrdup (a.c_str ()));
+
+ std::string rejoined = gdb::remote_args::join (tmp_split_args.get ());
+
+ if (joined_args != rejoined || split_args != resplit)
+ {
+ gdb_printf ("FAILURE ON REJOINING\n");
+ gdb_printf ("Resplit args:\n");
+ for (const auto & a : resplit)
+ gdb_printf (" (%s)\n", a.c_str ());
+ gdb_printf ("Rejoined (%s)\n", rejoined.c_str ());
+ }
+}
+
#if 0
/* --------- UNIT_TEST for THREAD oriented PACKETS ------------------- */
@@ -16540,6 +16631,10 @@ Show the maximum size of the address (in bits) in a memory packet."), NULL,
add_packet_config_cmd (PACKET_accept_error_message,
"error-message", "error-message", 0);
+ add_packet_config_cmd (PACKET_vRun_single_argument,
+ "single-inferior-argument-feature",
+ "single-inferior-argument-feature", 0);
+
/* Assert that we've registered "set remote foo-packet" commands
for all packet configs. */
{
@@ -16609,10 +16704,15 @@ Transfer files to and from the remote target system."),
&remote_cmdlist);
add_setshow_string_noescape_cmd ("exec-file", class_files,
- &remote_exec_file_var, _("\
-Set the remote pathname for \"run\"."), _("\
-Show the remote pathname for \"run\"."), NULL,
- set_remote_exec_file,
+ _("\
+Set the remote file name for starting inferiors."), _("\
+Show the remote file name for starting inferiors."), _("\
+This is the file name, on the remote target, used when starting an\n\
+inferior, for example with the \"run\", \"start\", or \"starti\"\n\
+commands. This setting is only useful when debugging a remote target,\n\
+otherwise, this setting is not used."),
+ set_remote_exec_file_cb,
+ get_remote_exec_file,
show_remote_exec_file,
&remote_set_cmdlist,
&remote_show_cmdlist);
@@ -16672,6 +16772,20 @@ from the target."),
/* Eventually initialize fileio. See fileio.c */
initialize_remote_fileio (&remote_set_cmdlist, &remote_show_cmdlist);
+ add_cmd ("test-remote-args", class_maintenance,
+ test_remote_args_command, _("\
+Test remote argument splitting and joining.\n \
+ maintenance test-remote-args ARGS\n\
+For remote targets that don't support passing inferior arguments as a\n\
+single string, GDB needs to split the inferior arguments before passing\n\
+them, and gdbserver needs to join the arguments it receives.\n\
+This command splits ARGS just as GDB would before passing them to a\n\
+remote target, and prints the result. This command then joins the\n\
+arguments just as gdbserver would, and prints the results.\n\
+This command is useful in diagnosing problems when passing arguments\n\
+between GDB and a remote target."),
+ &maintenancelist);
+
#if GDB_SELF_TEST
selftests::register_test ("remote_memory_tagging",
selftests::test_memory_tagging_functions);
diff --git a/gdb/riscv-fbsd-tdep.c b/gdb/riscv-fbsd-tdep.c
index 7bdc6e7..7999bd3 100644
--- a/gdb/riscv-fbsd-tdep.c
+++ b/gdb/riscv-fbsd-tdep.c
@@ -189,7 +189,7 @@ riscv_fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
/* Generic FreeBSD support. */
fbsd_init_abi (info, gdbarch);
- set_gdbarch_software_single_step (gdbarch, riscv_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, riscv_software_single_step);
set_solib_svr4_ops (gdbarch, (riscv_isa_xlen (gdbarch) == 4
? make_svr4_ilp32_solib_ops
diff --git a/gdb/riscv-linux-tdep.c b/gdb/riscv-linux-tdep.c
index e5d77e7..0a94611 100644
--- a/gdb/riscv-linux-tdep.c
+++ b/gdb/riscv-linux-tdep.c
@@ -502,6 +502,28 @@ riscv_linux_get_tls_dtp_offset (struct gdbarch *gdbarch, ptid_t ptid,
return 0;
}
+/* Function to extract syscall number. */
+
+static LONGEST
+riscv_linux_get_syscall_number (struct gdbarch *gdbarch, thread_info *thread)
+{
+ struct regcache *regcache = get_thread_regcache (thread);
+ LONGEST ret;
+
+ /* Getting the system call number from the register.
+ When dealing with riscv architecture, this information
+ is stored in $a7 register. */
+ if (regcache->cooked_read (RISCV_A7_REGNUM, &ret)
+ != register_status::REG_VALID)
+ {
+ warning (_ ("Can not read a7 register"));
+ return -1;
+ }
+
+ /* The result. */
+ return ret;
+}
+
/* Initialize RISC-V Linux ABI info. */
static void
@@ -511,7 +533,7 @@ riscv_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
linux_init_abi (info, gdbarch, 0);
- set_gdbarch_software_single_step (gdbarch, riscv_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, riscv_software_single_step);
set_solib_svr4_ops (gdbarch, (riscv_isa_xlen (gdbarch) == 4
? make_linux_ilp32_svr4_solib_ops
@@ -540,6 +562,10 @@ riscv_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
tdep->riscv_syscall_record = riscv_linux_syscall_record;
riscv64_linux_record_tdep_init (gdbarch, riscv_linux_record_tdep);
+
+ /* Functions for 'catch syscall'. */
+ set_gdbarch_xml_syscall_file (gdbarch, "syscalls/riscv-linux.xml");
+ set_gdbarch_get_syscall_number (gdbarch, riscv_linux_get_syscall_number);
}
/* Initialize RISC-V Linux target support. */
diff --git a/gdb/riscv-tdep.c b/gdb/riscv-tdep.c
index f5b8523..697071b 100644
--- a/gdb/riscv-tdep.c
+++ b/gdb/riscv-tdep.c
@@ -56,7 +56,6 @@
#include "arch/riscv.h"
#include "record-full.h"
#include "riscv-ravenscar-thread.h"
-#include "gdbsupport/gdb-safe-ctype.h"
#include <vector>
@@ -4183,9 +4182,9 @@ riscv_print_insn (bfd_vma addr, struct disassemble_info *info)
static int
riscv_stap_is_single_operand (struct gdbarch *gdbarch, const char *s)
{
- return (ISDIGIT (*s) /* Literal number. */
+ return (c_isdigit (*s) /* Literal number. */
|| *s == '(' /* Register indirection. */
- || ISALPHA (*s)); /* Register value. */
+ || c_isalpha (*s)); /* Register value. */
}
/* String that appears before a register name in a SystemTap register
@@ -4924,6 +4923,8 @@ public:
/* Corner cases. */
ECALL,
EBREAK,
+ SRET,
+ MRET,
};
private:
@@ -5008,6 +5009,14 @@ private:
return (ival >> OP_SH_CSR) & OP_MASK_CSR;
}
+ /* Set any record type. Always returns true. */
+ bool
+ set_record_type (record_type type) noexcept
+ {
+ m_record_type = type;
+ return true;
+ }
+
/* Set ordinary record type. Always returns true. */
bool
set_ordinary_record_type () noexcept
@@ -5066,7 +5075,8 @@ private:
return (is_beq_insn (ival) || is_bne_insn (ival) || is_blt_insn (ival)
|| is_bge_insn (ival) || is_bltu_insn (ival) || is_bgeu_insn (ival)
|| is_fence_insn (ival) || is_pause_insn (ival)
- || is_fence_i_insn (ival));
+ || is_fence_i_insn (ival) || is_wfi_insn (ival)
+ || is_sfence_vma_insn (ival));
}
/* Returns true if instruction is classified. */
@@ -5270,14 +5280,26 @@ private:
if (is_ecall_insn (ival))
{
- m_record_type = record_type::ECALL;
- return true;
+ return set_record_type (record_type::ECALL);
}
if (is_ebreak_insn (ival))
{
- m_record_type = record_type::EBREAK;
- return true;
+ return set_record_type (record_type::EBREAK);
+ }
+
+ if (is_sret_insn (ival))
+ {
+ return (!save_reg (RISCV_CSR_SSTATUS_REGNUM)
+ || !save_reg (RISCV_CSR_MEPC_REGNUM)
+ || set_record_type (record_type::SRET));
+ }
+
+ if (is_mret_insn (ival))
+ {
+ return (!save_reg (RISCV_CSR_MSTATUS_REGNUM)
+ || !save_reg (RISCV_CSR_MEPC_REGNUM)
+ || set_record_type (record_type::MRET));
}
if (try_save_pc (ival) || try_save_pc_rd (ival) || try_save_pc_fprd (ival)
@@ -5371,8 +5393,7 @@ private:
if (is_c_ebreak_insn (ival))
{
- m_record_type = record_type::EBREAK;
- return true;
+ return set_record_type (record_type::EBREAK);
}
if (is_c_jalr_insn (ival))
@@ -5414,8 +5435,20 @@ public:
gdb_assert (regcache != nullptr);
int m_length = 0;
+ ULONGEST ival = 0;
m_xlen = riscv_isa_xlen (gdbarch);
- ULONGEST ival = riscv_insn::fetch_instruction (gdbarch, addr, &m_length);
+
+ /* Since fetch_instruction can throw an exception,
+ it must be wrapped in a try-catch block. */
+ try
+ {
+ ival = riscv_insn::fetch_instruction (gdbarch, addr, &m_length);
+ }
+ catch (const gdb_exception_error &ex)
+ {
+ warning ("%s", ex.what ());
+ return false;
+ }
if (!save_reg (RISCV_PC_REGNUM))
return false;
@@ -5509,6 +5542,9 @@ riscv_record_insn_details (struct gdbarch *gdbarch, struct regcache *regcache,
switch (insn.get_record_type ())
{
case riscv_recorded_insn::record_type::ORDINARY:
+ case riscv_recorded_insn::record_type::EBREAK:
+ case riscv_recorded_insn::record_type::SRET:
+ case riscv_recorded_insn::record_type::MRET:
break;
case riscv_recorded_insn::record_type::ECALL:
@@ -5524,9 +5560,6 @@ riscv_record_insn_details (struct gdbarch *gdbarch, struct regcache *regcache,
return tdep->riscv_syscall_record (regcache, reg_val);
}
- case riscv_recorded_insn::record_type::EBREAK:
- break;
-
default:
return -1;
}
@@ -5546,10 +5579,7 @@ riscv_process_record (struct gdbarch *gdbarch, struct regcache *regcache,
riscv_recorded_insn insn;
if (!insn.record (gdbarch, regcache, addr))
- {
- record_full_arch_list_add_end ();
- return -1;
- }
+ return -1;
int ret_val = riscv_record_insn_details (gdbarch, regcache, insn);
diff --git a/gdb/rs6000-aix-tdep.c b/gdb/rs6000-aix-tdep.c
index 853a66e..536f647 100644
--- a/gdb/rs6000-aix-tdep.c
+++ b/gdb/rs6000-aix-tdep.c
@@ -1330,6 +1330,7 @@ rs6000_aix_ld_info_to_xml (struct gdbarch *gdbarch, const gdb_byte *ldi_buf,
static ULONGEST
rs6000_aix_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch,
+ struct bfd &cbfd,
gdb_byte *readbuf,
ULONGEST offset,
ULONGEST len)
@@ -1337,8 +1338,7 @@ rs6000_aix_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch,
struct bfd_section *ldinfo_sec;
int ldinfo_size;
- ldinfo_sec = bfd_get_section_by_name (current_program_space->core_bfd (),
- ".ldinfo");
+ ldinfo_sec = bfd_get_section_by_name (&cbfd, ".ldinfo");
if (ldinfo_sec == NULL)
error (_("cannot find .ldinfo section from core file: %s"),
bfd_errmsg (bfd_get_error ()));
@@ -1346,8 +1346,7 @@ rs6000_aix_core_xfer_shared_libraries_aix (struct gdbarch *gdbarch,
gdb::byte_vector ldinfo_buf (ldinfo_size);
- if (! bfd_get_section_contents (current_program_space->core_bfd (),
- ldinfo_sec, ldinfo_buf.data (), 0,
+ if (! bfd_get_section_contents (&cbfd, ldinfo_sec, ldinfo_buf.data (), 0,
ldinfo_size))
error (_("unable to read .ldinfo section from core file: %s"),
bfd_errmsg (bfd_get_error ()));
@@ -1362,7 +1361,7 @@ rs6000_aix_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch)
ppc_gdbarch_tdep *tdep = gdbarch_tdep<ppc_gdbarch_tdep> (gdbarch);
/* RS6000/AIX does not support PT_STEP. Has to be simulated. */
- set_gdbarch_software_single_step (gdbarch, rs6000_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, rs6000_software_single_step);
/* Displaced stepping is currently not supported in combination with
software single-stepping. These override the values set by
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index 1c75bb7..75079b9 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -8458,7 +8458,7 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_sofun_address_maybe_missing (gdbarch, 1);
/* Handles single stepping of atomic sequences. */
- set_gdbarch_software_single_step (gdbarch, ppc_deal_with_atomic_sequence);
+ set_gdbarch_get_next_pcs (gdbarch, ppc_deal_with_atomic_sequence);
/* Not sure on this. FIXMEmgo */
set_gdbarch_frame_args_skip (gdbarch, 8);
diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
index 3957413..4626685 100644
--- a/gdb/rust-lang.c
+++ b/gdb/rust-lang.c
@@ -18,7 +18,6 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include <ctype.h>
#include "block.h"
#include "c-lang.h"
@@ -126,15 +125,15 @@ rust_underscore_fields (struct type *type)
if (type->code () != TYPE_CODE_STRUCT)
return false;
- for (int i = 0; i < type->num_fields (); ++i)
+ for (const auto &field : type->fields ())
{
- if (!type->field (i).is_static ())
+ if (!field.is_static ())
{
char buf[20];
xsnprintf (buf, sizeof (buf), "%d", field_number);
- const char *field_name = type->field (i).name ();
+ const char *field_name = field.name ();
if (startswith (field_name, "__"))
field_name += 2;
if (strcmp (buf, field_name) != 0)
@@ -376,11 +375,11 @@ rust_array_like_element_type (struct type *type)
{
/* Caller must check this. */
gdb_assert (rust_slice_type_p (type));
- for (int i = 0; i < type->num_fields (); ++i)
+ for (const auto &field : type->fields ())
{
- if (strcmp (type->field (i).name (), "data_ptr") == 0)
+ if (strcmp (field.name (), "data_ptr") == 0)
{
- struct type *base_type = type->field (i).type ()->target_type ();
+ struct type *base_type = field.type ()->target_type ();
if (rewrite_slice_type (base_type, nullptr, 0, nullptr))
return nullptr;
return base_type;
@@ -1017,9 +1016,9 @@ rust_internal_print_type (struct type *type, const char *varstring,
}
gdb_puts ("{\n", stream);
- for (int i = 0; i < type->num_fields (); ++i)
+ for (const auto &field : type->fields ())
{
- const char *name = type->field (i).name ();
+ const char *name = field.name ();
QUIT;
@@ -1788,7 +1787,7 @@ rust_language::emitchar (int ch, struct type *chtype,
gdb_puts ("\\t", stream);
else if (ch == '\0')
gdb_puts ("\\0", stream);
- else if (ch >= 32 && ch <= 127 && isprint (ch))
+ else if (ch >= 32 && ch <= 127 && c_isprint (ch))
gdb_putc (ch, stream);
else if (ch <= 255)
gdb_printf (stream, "\\x%02x", ch);
diff --git a/gdb/rust-parse.c b/gdb/rust-parse.c
index b428b97..6ad6542 100644
--- a/gdb/rust-parse.c
+++ b/gdb/rust-parse.c
@@ -335,7 +335,7 @@ struct rust_parser
return std::string (current_string_val.ptr, current_string_val.length);
}
- /* A pointer to this is installed globally. */
+ /* Storage for use while parsing. */
auto_obstack obstack;
/* The parser state gdb gave us. */
@@ -1232,14 +1232,14 @@ rust_parser::name_to_operation (const std::string &name)
struct block_symbol sym = lookup_symbol (name.c_str (),
pstate->expression_context_block,
SEARCH_VFT);
- if (sym.symbol != nullptr && sym.symbol->aclass () != LOC_TYPEDEF)
+ if (sym.symbol != nullptr && sym.symbol->loc_class () != LOC_TYPEDEF)
return make_operation<var_value_operation> (sym);
struct type *type = nullptr;
if (sym.symbol != nullptr)
{
- gdb_assert (sym.symbol->aclass () == LOC_TYPEDEF);
+ gdb_assert (sym.symbol->loc_class () == LOC_TYPEDEF);
type = sym.symbol->type ();
}
if (type == nullptr)
diff --git a/gdb/s12z-tdep.c b/gdb/s12z-tdep.c
index 28d5635..0d49f98 100644
--- a/gdb/s12z-tdep.c
+++ b/gdb/s12z-tdep.c
@@ -516,7 +516,7 @@ s12z_print_ccw_info (struct gdbarch *gdbarch,
gdb_putc (ccw_bits[b], file);
}
else
- gdb_putc (tolower (ccw_bits[b]), file);
+ gdb_putc (c_tolower (ccw_bits[b]), file);
}
gdb_putc ('\n', file);
}
diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c
index 8a2b405..0cef5f4 100644
--- a/gdb/s390-tdep.c
+++ b/gdb/s390-tdep.c
@@ -7057,10 +7057,10 @@ s390_gnu_triplet_regexp (struct gdbarch *gdbarch)
static int
s390_stap_is_single_operand (struct gdbarch *gdbarch, const char *s)
{
- return ((isdigit (*s) && s[1] == '(' && s[2] == '%') /* Displacement
+ return ((c_isdigit (*s) && s[1] == '(' && s[2] == '%') /* Displacement
or indirection. */
|| *s == '%' /* Register access. */
- || isdigit (*s)); /* Literal number. */
+ || c_isdigit (*s)); /* Literal number. */
}
/* gdbarch init. */
@@ -7300,7 +7300,7 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
s390_displaced_step_copy_insn);
set_gdbarch_displaced_step_fixup (gdbarch, s390_displaced_step_fixup);
set_gdbarch_displaced_step_hw_singlestep (gdbarch, s390_displaced_step_hw_singlestep);
- set_gdbarch_software_single_step (gdbarch, s390_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, s390_software_single_step);
set_gdbarch_max_insn_length (gdbarch, S390_MAX_INSTR_SIZE);
/* Prologue analysis. */
diff --git a/gdb/serial.c b/gdb/serial.c
index d66c637..d047fdf 100644
--- a/gdb/serial.c
+++ b/gdb/serial.c
@@ -17,7 +17,6 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include <ctype.h>
#include "serial.h"
#include "cli/cli-cmds.h"
#include "cli/cli-utils.h"
@@ -116,7 +115,7 @@ serial_logchar (struct ui_file *stream, int ch_type, int ch, int timeout)
break;
default:
gdb_printf (stream,
- isprint (ch) ? "%c" : "\\x%02x", ch & 0xFF);
+ c_isprint (ch) ? "%c" : "\\x%02x", ch & 0xFF);
break;
}
}
diff --git a/gdb/setup.cfg b/gdb/setup.cfg
index d33058e..2e83eb5 100644
--- a/gdb/setup.cfg
+++ b/gdb/setup.cfg
@@ -7,6 +7,3 @@
# E701: Multiple statements on one line (colon)
# W503: line break before binary operator
ignore = E203,E501,E701,W503
-
-[isort]
-profile = black
diff --git a/gdb/solib-aix.c b/gdb/solib-aix.c
index b246df8..308ff80 100644
--- a/gdb/solib-aix.c
+++ b/gdb/solib-aix.c
@@ -28,6 +28,8 @@
struct aix_solib_ops : public solib_ops
{
+ using solib_ops::solib_ops;
+
void relocate_section_addresses (solib &so, target_section *) const override;
void create_inferior_hook (int from_tty) const override;
owning_intrusive_list<solib> current_sos () const override;
@@ -37,9 +39,9 @@ struct aix_solib_ops : public solib_ops
/* See solib-aix.h. */
solib_ops_up
-make_aix_solib_ops ()
+make_aix_solib_ops (program_space *pspace)
{
- return std::make_unique<aix_solib_ops> ();
+ return std::make_unique<aix_solib_ops> (pspace);
}
/* Our private data in struct solib. */
@@ -493,10 +495,8 @@ aix_solib_ops::current_sos () const
}
/* Add it to the list. */
- auto &new_solib = sos.emplace_back (*this);
- new_solib.original_name = so_name;
- new_solib.name = so_name;
- new_solib.lm_info = std::make_unique<lm_info_aix> (info);
+ sos.emplace_back (std::make_unique<lm_info_aix> (info), so_name, so_name,
+ *this);
}
return sos;
@@ -620,9 +620,9 @@ aix_solib_ops::bfd_open (const char *pathname) const
static struct obj_section *
data_obj_section_from_objfile (struct objfile *objfile)
{
- for (obj_section *osect : objfile->sections ())
- if (strcmp (bfd_section_name (osect->the_bfd_section), ".data") == 0)
- return osect;
+ for (obj_section &osect : objfile->sections ())
+ if (strcmp (bfd_section_name (osect.the_bfd_section), ".data") == 0)
+ return &osect;
return NULL;
}
diff --git a/gdb/solib-aix.h b/gdb/solib-aix.h
index 628b7c8..887487d 100644
--- a/gdb/solib-aix.h
+++ b/gdb/solib-aix.h
@@ -24,6 +24,6 @@ extern CORE_ADDR solib_aix_get_toc_value (CORE_ADDR pc);
/* Return a new solib_ops for AIX systems. */
-solib_ops_up make_aix_solib_ops ();
+solib_ops_up make_aix_solib_ops (program_space *pspace);
#endif /* GDB_SOLIB_AIX_H */
diff --git a/gdb/solib-darwin.c b/gdb/solib-darwin.c
index aac8ab2..a6f5504 100644
--- a/gdb/solib-darwin.c
+++ b/gdb/solib-darwin.c
@@ -37,6 +37,8 @@
struct darwin_solib_ops : public solib_ops
{
+ using solib_ops::solib_ops;
+
void relocate_section_addresses (solib &so, target_section *) const override;
void clear_solib (program_space *pspace) const override;
void create_inferior_hook (int from_tty) const override;
@@ -47,9 +49,9 @@ struct darwin_solib_ops : public solib_ops
/* See solib-darwin.h. */
solib_ops_up
-make_darwin_solib_ops ()
+make_darwin_solib_ops (program_space *pspace)
{
- return std::make_unique<darwin_solib_ops> ();
+ return std::make_unique<darwin_solib_ops> (pspace);
}
struct gdb_dyld_image_info
@@ -156,8 +158,12 @@ darwin_load_image_infos (struct darwin_info *info)
struct lm_info_darwin final : public lm_info
{
+ explicit lm_info_darwin (CORE_ADDR lm_addr)
+ : lm_addr (lm_addr)
+ {}
+
/* The target location of lm. */
- CORE_ADDR lm_addr = 0;
+ CORE_ADDR lm_addr;
};
/* Lookup the value for a specific symbol. */
@@ -267,15 +273,8 @@ darwin_solib_ops::current_sos () const
break;
/* Create and fill the new struct solib element. */
- auto &newobj = sos.emplace_back (*this);
-
- auto li = std::make_unique<lm_info_darwin> ();
-
- newobj.name = file_path.get ();
- newobj.original_name = newobj.name;
- li->lm_addr = load_addr;
-
- newobj.lm_info = std::move (li);
+ sos.emplace_back (std::make_unique<lm_info_darwin> (load_addr),
+ file_path.get (), file_path.get (), *this);
}
return sos;
diff --git a/gdb/solib-darwin.h b/gdb/solib-darwin.h
index f5bcdd1..fc28b2c 100644
--- a/gdb/solib-darwin.h
+++ b/gdb/solib-darwin.h
@@ -24,6 +24,6 @@
/* Return a new solib_ops for Darwin systems. */
-extern solib_ops_up make_darwin_solib_ops ();
+extern solib_ops_up make_darwin_solib_ops (program_space *pspace);
#endif /* GDB_SOLIB_DARWIN_H */
diff --git a/gdb/solib-dsbt.c b/gdb/solib-dsbt.c
index 13623fc..719678b 100644
--- a/gdb/solib-dsbt.c
+++ b/gdb/solib-dsbt.c
@@ -123,6 +123,8 @@ struct dbst_ext_link_map
struct dsbt_solib_ops : public solib_ops
{
+ using solib_ops::solib_ops;
+
void relocate_section_addresses (solib &so, target_section *) const override;
void clear_solib (program_space *pspace) const override;
void create_inferior_hook (int from_tty) const override;
@@ -133,22 +135,28 @@ struct dsbt_solib_ops : public solib_ops
/* See solib-dsbt.h. */
solib_ops_up
-make_dsbt_solib_ops ()
+make_dsbt_solib_ops (program_space *pspace)
{
- return std::make_unique<dsbt_solib_ops> ();
+ return std::make_unique<dsbt_solib_ops> (pspace);
}
/* Link map info to include in an allocated solib entry */
struct lm_info_dsbt final : public lm_info
{
+ explicit lm_info_dsbt (int_elf32_dsbt_loadmap *map)
+ : map (map)
+ {}
+
+ DISABLE_COPY_AND_ASSIGN (lm_info_dsbt);
+
~lm_info_dsbt ()
{
xfree (this->map);
}
/* The loadmap, digested into an easier to use form. */
- int_elf32_dsbt_loadmap *map = NULL;
+ int_elf32_dsbt_loadmap *map;
};
/* Per pspace dsbt specific data. */
@@ -602,9 +610,6 @@ dsbt_solib_ops::current_sos () const
break;
}
- auto &sop = sos.emplace_back (*this);
- auto li = std::make_unique<lm_info_dsbt> ();
- li->map = loadmap;
/* Fetch the name. */
addr = extract_unsigned_integer (lm_buf.l_name,
sizeof (lm_buf.l_name),
@@ -619,12 +624,12 @@ dsbt_solib_ops::current_sos () const
if (solib_dsbt_debug)
gdb_printf (gdb_stdlog, "current_sos: name = %s\n",
name_buf.get ());
-
- sop.name = name_buf.get ();
- sop.original_name = sop.name;
}
- sop.lm_info = std::move (li);
+ sos.emplace_back (std::make_unique<lm_info_dsbt> (loadmap),
+ name_buf != nullptr ? name_buf.get () : "",
+ name_buf != nullptr ? name_buf.get () : "",
+ *this);
}
else
{
@@ -807,23 +812,22 @@ dsbt_relocate_main_executable (void)
ldm = info->exec_loadmap;
delete info->main_executable_lm_info;
- info->main_executable_lm_info = new lm_info_dsbt;
- info->main_executable_lm_info->map = ldm;
+ info->main_executable_lm_info = new lm_info_dsbt (ldm);
objfile *objf = current_program_space->symfile_object_file;
section_offsets new_offsets (objf->section_offsets.size ());
changed = 0;
- for (obj_section *osect : objf->sections ())
+ for (obj_section &osect : objf->sections ())
{
CORE_ADDR orig_addr, addr, offset;
int osect_idx;
int seg;
- osect_idx = osect - objf->sections_start;
+ osect_idx = &osect - objf->sections_start;
/* Current address of section. */
- addr = osect->addr ();
+ addr = osect.addr ();
/* Offset from where this section started. */
offset = objf->section_offsets[osect_idx];
/* Original address prior to any past relocations. */
diff --git a/gdb/solib-dsbt.h b/gdb/solib-dsbt.h
index d44613c..00f7791 100644
--- a/gdb/solib-dsbt.h
+++ b/gdb/solib-dsbt.h
@@ -24,6 +24,6 @@
/* Return a new solib_ops for DSBT systems. */
-solib_ops_up make_dsbt_solib_ops ();
+solib_ops_up make_dsbt_solib_ops (program_space *pspace);
#endif /* GDB_SOLIB_DSBT_H */
diff --git a/gdb/solib-frv.c b/gdb/solib-frv.c
index b48efe5..ac5872e 100644
--- a/gdb/solib-frv.c
+++ b/gdb/solib-frv.c
@@ -31,6 +31,8 @@
struct frv_solib_ops : public solib_ops
{
+ using solib_ops::solib_ops;
+
void relocate_section_addresses (solib &so, target_section *) const override;
void clear_solib (program_space *pspace) const override;
void create_inferior_hook (int from_tty) const override;
@@ -41,9 +43,9 @@ struct frv_solib_ops : public solib_ops
/* See solib-frv.h. */
solib_ops_up
-make_frv_solib_ops ()
+make_frv_solib_ops (program_space *pspace)
{
- return std::make_unique<frv_solib_ops> ();
+ return std::make_unique<frv_solib_ops> (pspace);
}
/* FR-V pointers are four bytes wide. */
@@ -216,6 +218,13 @@ struct ext_link_map
struct lm_info_frv final : public lm_info
{
+ lm_info_frv (int_elf32_fdpic_loadmap *map, CORE_ADDR got_value,
+ CORE_ADDR lm_addr)
+ : map (map), got_value (got_value), lm_addr (lm_addr)
+ {}
+
+ DISABLE_COPY_AND_ASSIGN (lm_info_frv);
+
~lm_info_frv ()
{
xfree (this->map);
@@ -224,11 +233,11 @@ struct lm_info_frv final : public lm_info
}
/* The loadmap, digested into an easier to use form. */
- int_elf32_fdpic_loadmap *map = NULL;
+ int_elf32_fdpic_loadmap *map;
/* The GOT address for this link map entry. */
- CORE_ADDR got_value = 0;
+ CORE_ADDR got_value;
/* The link map address, needed for frv_fetch_objfile_link_map(). */
- CORE_ADDR lm_addr = 0;
+ CORE_ADDR lm_addr;
/* Cached dynamic symbol table and dynamic relocs initialized and
used only by find_canonical_descriptor_in_load_object().
@@ -383,13 +392,6 @@ frv_solib_ops::current_sos () const
break;
}
- auto &sop = sos.emplace_back (*this);
- auto li = std::make_unique<lm_info_frv> ();
- li->map = loadmap;
- li->got_value = got_addr;
- li->lm_addr = lm_addr;
- sop.lm_info = std::move (li);
-
/* Fetch the name. */
addr = extract_unsigned_integer (lm_buf.l_name,
sizeof (lm_buf.l_name),
@@ -401,11 +403,12 @@ frv_solib_ops::current_sos () const
if (name_buf == nullptr)
warning (_("Can't read pathname for link map entry."));
- else
- {
- sop.name = name_buf.get ();
- sop.original_name = sop.name;
- }
+
+ sos.emplace_back (std::make_unique<lm_info_frv> (loadmap, got_addr,
+ lm_addr),
+ name_buf != nullptr ? name_buf.get () : "",
+ name_buf != nullptr ? name_buf.get () : "",
+ *this);
}
else
{
@@ -741,23 +744,22 @@ frv_relocate_main_executable (void)
error (_("Unable to load the executable's loadmap."));
delete main_executable_lm_info;
- main_executable_lm_info = new lm_info_frv;
- main_executable_lm_info->map = ldm;
+ main_executable_lm_info = new lm_info_frv (ldm, 0, 0);
objfile *objf = current_program_space->symfile_object_file;
section_offsets new_offsets (objf->section_offsets.size ());
changed = 0;
- for (obj_section *osect : objf->sections ())
+ for (obj_section &osect : objf->sections ())
{
CORE_ADDR orig_addr, addr, offset;
int osect_idx;
int seg;
-
- osect_idx = osect - objf->sections_start;
+
+ osect_idx = &osect - objf->sections_start;
/* Current address of section. */
- addr = osect->addr ();
+ addr = osect.addr ();
/* Offset from where this section started. */
offset = objf->section_offsets[osect_idx];
/* Original address prior to any past relocations. */
diff --git a/gdb/solib-frv.h b/gdb/solib-frv.h
index a2f3558..33d156c 100644
--- a/gdb/solib-frv.h
+++ b/gdb/solib-frv.h
@@ -23,6 +23,6 @@
/* Return a new solib_ops for FR-V systems. */
-solib_ops_up make_frv_solib_ops ();
+solib_ops_up make_frv_solib_ops (program_space *pspace);
#endif /* GDB_SOLIB_FRV_H */
diff --git a/gdb/solib-rocm.c b/gdb/solib-rocm.c
index 2d26c3c..3b121e6 100644
--- a/gdb/solib-rocm.c
+++ b/gdb/solib-rocm.c
@@ -160,8 +160,8 @@ struct rocm_solib_ops : public solib_ops
{
/* HOST_OPS is the host solib_ops that rocm_solib_ops hijacks / wraps,
in order to provide support for ROCm code objects. */
- explicit rocm_solib_ops (solib_ops_up host_ops)
- : m_host_ops (std::move (host_ops))
+ explicit rocm_solib_ops (program_space *pspace, solib_ops_up host_ops)
+ : solib_ops (pspace), m_host_ops (std::move (host_ops))
{
}
@@ -211,6 +211,14 @@ struct rocm_solib_ops : public solib_ops
std::vector<const solib *> get_solibs_in_ns (int nsid) const override
{ return m_host_ops->get_solibs_in_ns (nsid); }
+ void iterate_over_objfiles_in_search_order
+ (iterate_over_objfiles_in_search_order_cb_ftype cb,
+ objfile *current_objfile) const override
+ {
+ return m_host_ops->iterate_over_objfiles_in_search_order
+ (cb, current_objfile);
+ }
+
private:
owning_intrusive_list<solib>
solibs_from_rocm_sos (const std::vector<rocm_so> &sos) const;
@@ -272,13 +280,8 @@ rocm_solib_ops::solibs_from_rocm_sos (const std::vector<rocm_so> &sos) const
owning_intrusive_list<solib> dst;
for (const rocm_so &so : sos)
- {
- auto &newobj = dst.emplace_back (*this);
-
- newobj.lm_info = std::make_unique<lm_info_svr4> (*so.lm_info);
- newobj.name = so.name;
- newobj.original_name = so.unique_name;
- }
+ dst.emplace_back (std::make_unique<lm_info_svr4> (*so.lm_info),
+ so.unique_name, so.name, *this);
return dst;
}
@@ -503,7 +506,7 @@ rocm_bfd_iovec_open (bfd *abfd, inferior *inferior)
protocol_end += protocol_delim.length ();
std::transform (protocol.begin (), protocol.end (), protocol.begin (),
- [] (unsigned char c) { return std::tolower (c); });
+ [] (unsigned char c) { return c_tolower (c); });
std::string_view path;
size_t path_end = uri.find_first_of ("#?", protocol_end);
@@ -518,8 +521,8 @@ rocm_bfd_iovec_open (bfd *abfd, inferior *inferior)
for (size_t i = 0; i < path.length (); ++i)
if (path[i] == '%'
&& i < path.length () - 2
- && std::isxdigit (path[i + 1])
- && std::isxdigit (path[i + 2]))
+ && c_isxdigit (path[i + 1])
+ && c_isxdigit (path[i + 2]))
{
std::string_view hex_digits = path.substr (i + 1, 2);
decoded_path += std::stoi (std::string (hex_digits), 0, 16);
@@ -788,7 +791,8 @@ rocm_update_solib_list ()
gdb::unique_xmalloc_ptr<char> uri_bytes_holder (uri_bytes);
- lm_info_svr4_up li = std::make_unique<lm_info_svr4> ();
+ /* Pass a dummy debug base. */
+ lm_info_svr4_up li = std::make_unique<lm_info_svr4> (-1);
li->l_addr = l_addr;
/* Generate a unique name so that code objects with the same URI but
@@ -807,7 +811,8 @@ rocm_solib_target_inferior_created (inferior *inf)
get_solib_info (inf)->solib_list.clear ();
auto prev_ops = inf->pspace->release_solib_ops ();
- auto rocm_ops = std::make_unique<rocm_solib_ops> (std::move (prev_ops));
+ auto rocm_ops
+ = std::make_unique<rocm_solib_ops> (inf->pspace, std::move (prev_ops));
inf->pspace->set_solib_ops (std::move (rocm_ops));
rocm_update_solib_list ();
@@ -825,9 +830,11 @@ rocm_solib_target_inferior_execd (inferior *exec_inf, inferior *follow_inf)
if (get_amd_dbgapi_process_id (follow_inf) == AMD_DBGAPI_PROCESS_NONE)
return;
- auto prev_ops = follow_inf->pspace->release_solib_ops ();
- auto rocm_ops = std::make_unique<rocm_solib_ops> (std::move (prev_ops));
- follow_inf->pspace->set_solib_ops (std::move (rocm_ops));
+ auto pspace = follow_inf->pspace;
+ auto prev_ops = pspace->release_solib_ops ();
+ auto rocm_ops
+ = std::make_unique<rocm_solib_ops> (pspace, std::move (prev_ops));
+ pspace->set_solib_ops (std::move (rocm_ops));
get_solib_info (exec_inf)->solib_list.clear ();
}
diff --git a/gdb/solib-svr4-linux.c b/gdb/solib-svr4-linux.c
index fd86cf0..fe82e5d 100644
--- a/gdb/solib-svr4-linux.c
+++ b/gdb/solib-svr4-linux.c
@@ -22,9 +22,9 @@
/* See solib-svr4-linux.h. */
solib_ops_up
-make_linux_ilp32_svr4_solib_ops ()
+make_linux_ilp32_svr4_solib_ops (program_space *pspace)
{
- return std::make_unique<linux_ilp32_svr4_solib_ops> ();
+ return std::make_unique<linux_ilp32_svr4_solib_ops> (pspace);
}
/* See solib-svr4-linux.h. */
@@ -61,9 +61,9 @@ linux_ilp32_svr4_solib_ops::fetch_link_map_offsets () const
/* See solib-svr4-linux.h. */
solib_ops_up
-make_linux_lp64_svr4_solib_ops ()
+make_linux_lp64_svr4_solib_ops (program_space *pspace)
{
- return std::make_unique<linux_lp64_svr4_solib_ops> ();
+ return std::make_unique<linux_lp64_svr4_solib_ops> (pspace);
}
/* See linux-tdep.h. */
diff --git a/gdb/solib-svr4-linux.h b/gdb/solib-svr4-linux.h
index 623013c..af040ff 100644
--- a/gdb/solib-svr4-linux.h
+++ b/gdb/solib-svr4-linux.h
@@ -26,6 +26,8 @@
struct linux_ilp32_svr4_solib_ops : public svr4_solib_ops
{
+ using svr4_solib_ops::svr4_solib_ops;
+
link_map_offsets *fetch_link_map_offsets () const override;
};
@@ -33,15 +35,17 @@ struct linux_ilp32_svr4_solib_ops : public svr4_solib_ops
struct linux_lp64_svr4_solib_ops : public svr4_solib_ops
{
+ using svr4_solib_ops::svr4_solib_ops;
+
link_map_offsets *fetch_link_map_offsets () const override;
};
/* Return a new solib_ops for ILP32 Linux systems. */
-extern solib_ops_up make_linux_ilp32_svr4_solib_ops ();
+extern solib_ops_up make_linux_ilp32_svr4_solib_ops (program_space *pspace);
/* Return a new solib_ops for LP64 Linux systems. */
-extern solib_ops_up make_linux_lp64_svr4_solib_ops ();
+extern solib_ops_up make_linux_lp64_svr4_solib_ops (program_space *pspace);
#endif /* GDB_SOLIB_SVR4_LINUX_H */
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index af08b75..27e0343 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -49,10 +49,6 @@
static void svr4_relocate_main_executable (void);
static void probes_table_remove_objfile_probes (struct objfile *objfile);
-static void svr4_iterate_over_objfiles_in_search_order
- (gdbarch *gdbarch, iterate_over_objfiles_in_search_order_cb_ftype cb,
- objfile *current_objfile);
-
/* On SVR4 systems, a list of symbols in the dynamic linker where
GDB can try to place a breakpoint to monitor shared library
@@ -116,11 +112,17 @@ static const struct probe_info probe_info[] =
#define NUM_PROBES ARRAY_SIZE (probe_info)
-/* Return non-zero if GDB_SO_NAME and INFERIOR_SO_NAME represent
- the same shared library. */
+static lm_info_svr4 &
+get_lm_info_svr4 (const solib &solib)
+{
+ return gdb::checked_static_cast<lm_info_svr4 &> (*solib.lm_info);
+}
-static int
-svr4_same_1 (const char *gdb_so_name, const char *inferior_so_name)
+/* Return true if GDB_SO_NAME and INFERIOR_SO_NAME represent the same shared
+ library. */
+
+static bool
+svr4_same_name (const char *gdb_so_name, const char *inferior_so_name)
{
if (strcmp (gdb_so_name, inferior_so_name) == 0)
return 1;
@@ -153,29 +155,33 @@ svr4_same (const char *gdb_name, const char *inferior_name,
const lm_info_svr4 &gdb_lm_info,
const lm_info_svr4 &inferior_lm_info)
{
- if (!svr4_same_1 (gdb_name, inferior_name))
+ /* There may be different instances of the same library, in different
+ namespaces. Each instance is typically loaded at a different address
+ so its relocation offset would be different. */
+ if (gdb_lm_info.l_addr_inferior != inferior_lm_info.l_addr_inferior)
return false;
- /* There may be different instances of the same library, in different
- namespaces. Each instance, however, must have been loaded at a
- different address so its relocation offset would be different. */
- return gdb_lm_info.l_addr_inferior == inferior_lm_info.l_addr_inferior;
+ /* There may be multiple entries for the same dynamic linker instance (at
+ the same address) visible in different namespaces. Those are considered
+ different instances. */
+ if (gdb_lm_info.debug_base != inferior_lm_info.debug_base)
+ return false;
+
+ return svr4_same_name (gdb_name, inferior_name);
}
bool
svr4_solib_ops::same (const solib &gdb, const solib &inferior) const
{
- auto *lmg
- = gdb::checked_static_cast<const lm_info_svr4 *> (gdb.lm_info.get ());
- auto *lmi
- = gdb::checked_static_cast<const lm_info_svr4 *> (inferior.lm_info.get ());
+ auto &lmg = get_lm_info_svr4 (gdb);
+ auto &lmi = get_lm_info_svr4 (inferior);
return svr4_same (gdb.original_name.c_str (),
- inferior.original_name.c_str (), *lmg, *lmi);
+ inferior.original_name.c_str (), lmg, lmi);
}
lm_info_svr4_up
-svr4_solib_ops::read_lm_info (CORE_ADDR lm_addr) const
+svr4_solib_ops::read_lm_info (CORE_ADDR lm_addr, CORE_ADDR debug_base) const
{
link_map_offsets *lmo = this->fetch_link_map_offsets ();
lm_info_svr4_up lm_info;
@@ -190,7 +196,7 @@ svr4_solib_ops::read_lm_info (CORE_ADDR lm_addr) const
type *ptr_type
= builtin_type (current_inferior ()->arch ())->builtin_data_ptr;
- lm_info = std::make_unique<lm_info_svr4> ();
+ lm_info = std::make_unique<lm_info_svr4> (debug_base);
lm_info->lm_addr = lm_addr;
lm_info->l_addr_inferior = extract_typed_address (&lm[lmo->l_addr_offset],
@@ -218,19 +224,19 @@ svr4_solib_ops::has_lm_dynamic_from_link_map () const
CORE_ADDR
svr4_solib_ops::lm_addr_check (const solib &so, bfd *abfd) const
{
- auto *li = gdb::checked_static_cast<lm_info_svr4 *> (so.lm_info.get ());
+ auto &li = get_lm_info_svr4 (so);
- if (!li->l_addr_p)
+ if (!li.l_addr_p)
{
struct bfd_section *dyninfo_sect;
CORE_ADDR l_addr, l_dynaddr, dynaddr;
- l_addr = li->l_addr_inferior;
+ l_addr = li.l_addr_inferior;
if (!abfd || !this->has_lm_dynamic_from_link_map ())
goto set_addr;
- l_dynaddr = li->l_ld;
+ l_dynaddr = li.l_ld;
dyninfo_sect = bfd_get_section_by_name (abfd, ".dynamic");
if (dyninfo_sect == NULL)
@@ -314,11 +320,11 @@ svr4_solib_ops::lm_addr_check (const solib &so, bfd *abfd) const
}
set_addr:
- li->l_addr = l_addr;
- li->l_addr_p = 1;
+ li.l_addr = l_addr;
+ li.l_addr_p = 1;
}
- return li->l_addr;
+ return li.l_addr;
}
struct svr4_so
@@ -335,8 +341,11 @@ struct svr4_so
struct svr4_info
{
- /* Base of dynamic linker structures in default namespace. */
- CORE_ADDR debug_base = 0;
+ /* Base of dynamic linker structures in default namespace.
+
+ The value is fetched from the inferior every time we need it. This field
+ represents the last known value. */
+ CORE_ADDR default_debug_base = 0;
/* Validity flag for debug_loader_offset. */
int debug_loader_offset_p = 0;
@@ -435,12 +444,6 @@ svr4_maybe_add_namespace (svr4_info *info, CORE_ADDR lmid)
info->namespace_id.push_back (lmid);
info->active_namespaces.insert (i);
-
- /* Create or update the convenience variable "active_namespaces".
- It only needs to be updated here, as this only changes when a
- dlmopen or dlclose call happens. */
- set_internalvar_integer (lookup_internalvar ("_active_linker_namespaces"),
- info->active_namespaces.size ());
}
/* Return whether DEBUG_BASE is the default namespace of INFO. */
@@ -448,7 +451,7 @@ svr4_maybe_add_namespace (svr4_info *info, CORE_ADDR lmid)
static bool
svr4_is_default_namespace (const svr4_info *info, CORE_ADDR debug_base)
{
- return (debug_base == info->debug_base);
+ return debug_base == info->default_debug_base;
}
/* Free the probes table. */
@@ -713,8 +716,8 @@ scan_dyntag_auxv (const int desired_dyntag, CORE_ADDR *ptr,
return 0;
}
-/* Locate the base address of dynamic linker structs for SVR4 elf
- targets.
+/* Locate the base address the dynamic linker structure for the default
+ namespace.
For SVR4 elf targets the address of the dynamic linker's runtime
structure is contained within the dynamic info section in the
@@ -723,10 +726,13 @@ scan_dyntag_auxv (const int desired_dyntag, CORE_ADDR *ptr,
real address before starting the inferior, we have to read in the
dynamic info section from the inferior address space.
If there are any errors while trying to find the address, we
- silently return 0, otherwise the found address is returned. */
+ silently return 0, otherwise the found address is returned.
+
+ If we try to read the address before the dynamic linker had a change to
+ fill in the real address, this will also typically return 0. */
static CORE_ADDR
-elf_locate_base (void)
+locate_default_debug_base ()
{
CORE_ADDR dyn_ptr, dyn_ptr_addr;
@@ -790,6 +796,38 @@ elf_locate_base (void)
return 0;
}
+/* See solib-svr4.h. */
+
+CORE_ADDR
+svr4_solib_ops::default_debug_base (svr4_info *info, bool *changed) const
+{
+ CORE_ADDR default_debug_base = locate_default_debug_base ();
+
+ if (changed != nullptr)
+ *changed = default_debug_base != info->default_debug_base;
+
+ if (default_debug_base != info->default_debug_base)
+ {
+ /* Update the debug base value for existing solibs. The only known case
+ where this is required is when a struct solib was created for the
+ dynamic linker itself by svr4_solib_ops::default_sos, before the
+ default debug base was known. */
+ for (const auto &solib : m_pspace->solibs ())
+ {
+ if (&solib.ops () != this)
+ continue;
+
+ if (auto &li = get_lm_info_svr4 (solib);
+ li.debug_base == info->default_debug_base)
+ li.debug_base = default_debug_base;
+ }
+
+ info->default_debug_base = default_debug_base;
+ }
+
+ return info->default_debug_base;
+}
+
/* Find the first element in the inferior's dynamic link map, and
return its address in the inferior. Return zero if the address
could not be determined.
@@ -828,8 +866,10 @@ svr4_solib_ops::find_r_brk (svr4_info *info) const
type *ptr_type
= builtin_type (current_inferior ()->arch ())->builtin_data_ptr;
- return read_memory_typed_address (info->debug_base + lmo->r_brk_offset,
- ptr_type);
+ gdb_assert (info->default_debug_base != 0);
+
+ return read_memory_typed_address ((info->default_debug_base
+ + lmo->r_brk_offset), ptr_type);
}
/* Find the link map for the dynamic linker (if it is not in the
@@ -844,12 +884,15 @@ svr4_solib_ops::find_r_ldsomap (svr4_info *info) const
enum bfd_endian byte_order = type_byte_order (ptr_type);
ULONGEST version = 0;
+ gdb_assert (info->default_debug_base != 0);
+
try
{
/* Check version, and return zero if `struct r_debug' doesn't have
the r_ldsomap member. */
version
- = read_memory_unsigned_integer (info->debug_base + lmo->r_version_offset,
+ = read_memory_unsigned_integer ((info->default_debug_base
+ + lmo->r_version_offset),
lmo->r_version_size, byte_order);
}
catch (const gdb_exception_error &ex)
@@ -860,7 +903,8 @@ svr4_solib_ops::find_r_ldsomap (svr4_info *info) const
if (version < 2 || lmo->r_ldsomap_offset == -1)
return 0;
- return read_memory_typed_address (info->debug_base + lmo->r_ldsomap_offset,
+ return read_memory_typed_address ((info->default_debug_base
+ + lmo->r_ldsomap_offset),
ptr_type);
}
@@ -909,16 +953,17 @@ svr4_solib_ops::keep_data_in_core (CORE_ADDR vaddr, unsigned long size) const
CORE_ADDR name_lm;
info = get_svr4_info (current_program_space);
+ CORE_ADDR default_debug_base = this->default_debug_base (info);
- info->debug_base = elf_locate_base ();
- if (info->debug_base == 0)
+ if (default_debug_base == 0)
return false;
ldsomap = this->find_r_ldsomap (info);
if (!ldsomap)
return false;
- std::unique_ptr<lm_info_svr4> li = this->read_lm_info (ldsomap);
+ std::unique_ptr<lm_info_svr4> li
+ = this->read_lm_info (ldsomap, info->default_debug_base);
name_lm = li != NULL ? li->l_name : 0;
return (name_lm >= vaddr && name_lm < vaddr + size);
@@ -945,13 +990,13 @@ svr4_solib_ops::open_symbol_file_object (int from_tty) const
if (!query (_("Attempt to reload symbols from process? ")))
return false;
- /* Always locate the debug struct, in case it has moved. */
- info->debug_base = elf_locate_base ();
- if (info->debug_base == 0)
+ CORE_ADDR default_debug_base = this->default_debug_base (info);
+
+ if (default_debug_base == 0)
return false; /* failed somehow... */
/* First link map member should be the executable. */
- lm = this->read_r_map (info->debug_base);
+ lm = this->read_r_map (default_debug_base);
if (lm == 0)
return false; /* failed somehow... */
@@ -1013,10 +1058,7 @@ svr4_free_objfile_observer (struct objfile *objfile)
void
svr4_solib_ops::clear_so (const solib &so) const
{
- auto *li = gdb::checked_static_cast<lm_info_svr4 *> (so.lm_info.get ());
-
- if (li != NULL)
- li->l_addr_p = 0;
+ get_lm_info_svr4 (so).l_addr_p = 0;
}
/* Create the solib objects equivalent to the svr4_sos in SOS. */
@@ -1027,13 +1069,8 @@ svr4_solib_ops::solibs_from_svr4_sos (const std::vector<svr4_so> &sos) const
owning_intrusive_list<solib> dst;
for (const svr4_so &so : sos)
- {
- auto &newobj = dst.emplace_back (*this);
-
- newobj.name = so.name;
- newobj.original_name = so.name;
- newobj.lm_info = std::make_unique<lm_info_svr4> (*so.lm_info);
- }
+ dst.emplace_back (std::make_unique<lm_info_svr4> (*so.lm_info), so.name,
+ so.name, *this);
return dst;
}
@@ -1061,28 +1098,33 @@ library_list_start_library (struct gdb_xml_parser *parser,
ULONGEST *l_ldp
= (ULONGEST *) xml_find_attribute (attributes, "l_ld")->value.get ();
- lm_info_svr4_up li = std::make_unique<lm_info_svr4> ();
- li->lm_addr = *lmp;
- li->l_addr_inferior = *l_addrp;
- li->l_ld = *l_ldp;
-
std::vector<svr4_so> *solist;
/* Older versions did not supply lmid. Put the element into the flat
list of the special namespace zero in that case. */
gdb_xml_value *at_lmid = xml_find_attribute (attributes, "lmid");
svr4_info *info = get_svr4_info (current_program_space);
+ ULONGEST lmid;
+
if (at_lmid == nullptr)
{
solist = list->cur_list;
svr4_maybe_add_namespace (info, 0);
+ lmid = 0;
}
else
{
- ULONGEST lmid = *(ULONGEST *) at_lmid->value.get ();
+ lmid = *(ULONGEST *) at_lmid->value.get ();
solist = &list->solib_lists[lmid];
svr4_maybe_add_namespace (info, lmid);
}
+
+ lm_info_svr4_up li = std::make_unique<lm_info_svr4> (lmid);
+
+ li->lm_addr = *lmp;
+ li->l_addr_inferior = *l_addrp;
+ li->l_ld = *l_ldp;
+
solist->emplace_back (name, std::move (li));
}
@@ -1121,7 +1163,7 @@ static const struct gdb_xml_attribute svr4_library_attributes[] =
{ "lm", GDB_XML_AF_NONE, gdb_xml_parse_attr_ulongest, NULL },
{ "l_addr", GDB_XML_AF_NONE, gdb_xml_parse_attr_ulongest, NULL },
{ "l_ld", GDB_XML_AF_NONE, gdb_xml_parse_attr_ulongest, NULL },
- { "lmid", GDB_XML_AF_NONE, gdb_xml_parse_attr_ulongest, NULL },
+ { "lmid", GDB_XML_AF_OPTIONAL, gdb_xml_parse_attr_ulongest, NULL },
{ NULL, GDB_XML_AF_NONE, NULL, NULL }
};
@@ -1221,18 +1263,15 @@ svr4_solib_ops::default_sos (svr4_info *info) const
if (!info->debug_loader_offset_p)
return {};
- auto li = std::make_unique<lm_info_svr4> ();
+ auto li = std::make_unique<lm_info_svr4> (0);
/* Nothing will ever check the other fields if we set l_addr_p. */
li->l_addr = li->l_addr_inferior = info->debug_loader_offset;
li->l_addr_p = 1;
owning_intrusive_list<solib> sos;
- auto &newobj = sos.emplace_back (*this);
-
- newobj.lm_info = std::move (li);
- newobj.name = info->debug_loader_name;
- newobj.original_name = newobj.name;
+ sos.emplace_back (std::move (li), info->debug_loader_name,
+ info->debug_loader_name, *this);
return sos;
}
@@ -1246,14 +1285,15 @@ svr4_solib_ops::default_sos (svr4_info *info) const
int
svr4_solib_ops::read_so_list (svr4_info *info, CORE_ADDR lm, CORE_ADDR prev_lm,
- std::vector<svr4_so> &sos, int ignore_first) const
+ CORE_ADDR debug_base, std::vector<svr4_so> &sos,
+ int ignore_first) const
{
CORE_ADDR first_l_name = 0;
CORE_ADDR next_lm;
for (; lm != 0; prev_lm = lm, lm = next_lm)
{
- lm_info_svr4_up li = this->read_lm_info (lm);
+ lm_info_svr4_up li = this->read_lm_info (lm, debug_base);
if (li == NULL)
return 0;
@@ -1354,8 +1394,9 @@ svr4_solib_ops::current_sos_direct (svr4_info *info) const
/* If we can't find the dynamic linker's base structure, this
must not be a dynamically linked executable. Hmm. */
- info->debug_base = elf_locate_base ();
- if (info->debug_base == 0)
+ CORE_ADDR default_debug_base = this->default_debug_base (info);
+
+ if (default_debug_base == 0)
return;
/* Assume that everything is a library if the dynamic loader was loaded
@@ -1374,7 +1415,8 @@ svr4_solib_ops::current_sos_direct (svr4_info *info) const
});
/* Collect the sos in each namespace. */
- CORE_ADDR debug_base = info->debug_base;
+ CORE_ADDR debug_base = default_debug_base;
+
for (; debug_base != 0;
ignore_first = false, debug_base = this->read_r_next (debug_base))
{
@@ -1383,8 +1425,8 @@ svr4_solib_ops::current_sos_direct (svr4_info *info) const
if (lm != 0)
{
svr4_maybe_add_namespace (info, debug_base);
- this->read_so_list (info, lm, 0, info->solib_lists[debug_base],
- ignore_first);
+ this->read_so_list (info, lm, 0, debug_base,
+ info->solib_lists[debug_base], ignore_first);
}
}
@@ -1404,7 +1446,7 @@ svr4_solib_ops::current_sos_direct (svr4_info *info) const
if (info->solib_lists.find (debug_base) == info->solib_lists.end ())
{
svr4_maybe_add_namespace (info, debug_base);
- this->read_so_list (info, debug_base, 0,
+ this->read_so_list (info, debug_base, 0, debug_base,
info->solib_lists[debug_base], 0);
}
}
@@ -1462,6 +1504,15 @@ owning_intrusive_list<solib>
svr4_solib_ops::current_sos () const
{
svr4_info *info = get_svr4_info (current_program_space);
+
+ /* Call this for the side-effect of updating the debug base in existing
+ solibs' lm_info_svr4, if needed. It is possible for the core to have
+ an solib with a stale lm_info_svr4::debug_base. In that case, we are
+ about to return the same solib, but with an updated debug_base. If we
+ didn't do this call, then it would appear as two different libraries to
+ the core, and it would appear as a spurious unload / load. */
+ this->default_debug_base (info);
+
owning_intrusive_list<solib> sos = this->current_sos_1 (info);
struct mem_range vsyscall_range;
@@ -1515,9 +1566,9 @@ svr4_solib_ops::current_sos () const
[ 9] .dynamic DYNAMIC ffffffffff700580 000580 0000f0
*/
- auto *li = gdb::checked_static_cast<lm_info_svr4 *> (so->lm_info.get ());
+ const auto &li = get_lm_info_svr4 (*so);
- if (vsyscall_range.contains (li->l_ld))
+ if (vsyscall_range.contains (li.l_ld))
{
so = sos.erase (so);
break;
@@ -1549,12 +1600,7 @@ svr4_fetch_objfile_link_map (struct objfile *objfile)
of shared libraries. */
for (const solib &so : current_program_space->solibs ())
if (so.objfile == objfile)
- {
- auto *li
- = gdb::checked_static_cast<lm_info_svr4 *> (so.lm_info.get ());
-
- return li->lm_addr;
- }
+ return get_lm_info_svr4 (so).lm_addr;
/* Not found! */
return 0;
@@ -1577,8 +1623,8 @@ is_thread_local_section (struct bfd_section *bfd_sect)
static bool
has_thread_local_section (const objfile *objf)
{
- for (obj_section *objsec : objf->sections ())
- if (is_thread_local_section (objsec->the_bfd_section))
+ for (obj_section &objsec : objf->sections ())
+ if (is_thread_local_section (objsec.the_bfd_section))
return true;
return false;
}
@@ -1638,8 +1684,9 @@ musl_link_map_to_tls_module_id (CORE_ADDR lm_addr)
if (has_thread_local_section (so))
mod_id++;
- auto *li = gdb::checked_static_cast<lm_info_svr4 *> (so.lm_info.get ());
- if (li->lm_addr == lm_addr)
+ const auto &li = get_lm_info_svr4 (so);
+
+ if (li.lm_addr == lm_addr)
return mod_id;
}
return 0;
@@ -2074,7 +2121,7 @@ svr4_solib_ops::update_incremental (svr4_info *info, CORE_ADDR debug_base,
above check and deferral to solist_update_full ensures
that this call to svr4_read_so_list will never see the
first element. */
- if (!this->read_so_list (info, lm, prev_lm, solist, 0))
+ if (!this->read_so_list (info, lm, prev_lm, debug_base, solist, 0))
return 0;
}
@@ -2173,17 +2220,14 @@ svr4_solib_ops::handle_event () const
if (debug_base == 0)
return;
- /* If the global _r_debug object moved, we need to reload everything
- since we cannot identify namespaces (by the location of their
- r_debug_ext object) anymore. */
- CORE_ADDR global_debug_base = elf_locate_base ();
- if (global_debug_base != info->debug_base)
- {
- info->debug_base = global_debug_base;
- action = FULL_RELOAD;
- }
+ bool default_debug_base_changed;
+ CORE_ADDR default_debug_base
+ = this->default_debug_base (info, &default_debug_base_changed);
+
+ if (default_debug_base_changed)
+ action = FULL_RELOAD;
- if (info->debug_base == 0)
+ if (default_debug_base == 0)
{
/* It's possible for the reloc_complete probe to be triggered before
the linker has set the DT_DEBUG pointer (for example, when the
@@ -2474,7 +2518,6 @@ svr4_solib_ops::enable_break (svr4_info *info, int from_tty) const
{
const char * const *bkpt_namep;
asection *interp_sect;
- CORE_ADDR sym_addr;
info->interp_text_sect_low = info->interp_text_sect_high = 0;
info->interp_plt_sect_low = info->interp_plt_sect_high = 0;
@@ -2485,8 +2528,11 @@ svr4_solib_ops::enable_break (svr4_info *info, int from_tty) const
is the object containing r_brk. */
solib_add (NULL, from_tty, auto_solib_add);
- sym_addr = 0;
- if (info->debug_base && this->read_r_map (info->debug_base) != 0)
+
+ CORE_ADDR sym_addr = 0;
+ CORE_ADDR default_debug_base = this->default_debug_base (info);
+
+ if (default_debug_base != 0 && this->read_r_map (default_debug_base) != 0)
sym_addr = this->find_r_brk (info);
if (sym_addr != 0)
@@ -2595,7 +2641,7 @@ svr4_solib_ops::enable_break (svr4_info *info, int from_tty) const
address from the shared library table. */
for (const solib &so : current_program_space->solibs ())
{
- if (svr4_same_1 (interp_name, so.original_name.c_str ()))
+ if (svr4_same_name (interp_name, so.original_name.c_str ()))
{
load_addr_found = 1;
loader_found_in_list = 1;
@@ -3308,7 +3354,7 @@ void
svr4_solib_ops::clear_solib (program_space *pspace) const
{
svr4_info *info = get_svr4_info (pspace);
- info->debug_base = 0;
+ info->default_debug_base = 0;
info->debug_loader_offset_p = 0;
info->debug_loader_offset = 0;
info->debug_loader_name.clear ();
@@ -3453,16 +3499,14 @@ void
set_solib_svr4_ops (gdbarch *gdbarch, gdbarch_make_solib_ops_ftype make_solib_ops)
{
set_gdbarch_make_solib_ops (gdbarch, make_solib_ops);
- set_gdbarch_iterate_over_objfiles_in_search_order
- (gdbarch, svr4_iterate_over_objfiles_in_search_order);
}
/* See solib-svr4.h. */
solib_ops_up
-make_svr4_ilp32_solib_ops ()
+make_svr4_ilp32_solib_ops (program_space *pspace)
{
- return std::make_unique<ilp32_svr4_solib_ops> ();
+ return std::make_unique<ilp32_svr4_solib_ops> (pspace);
}
/* Most OS'es that have SVR4-style ELF dynamic libraries define a
@@ -3505,15 +3549,17 @@ ilp32_svr4_solib_ops::fetch_link_map_offsets () const
struct lp64_svr4_solib_ops : public svr4_solib_ops
{
+ using svr4_solib_ops::svr4_solib_ops;
+
link_map_offsets *fetch_link_map_offsets () const override;
};
/* See solib-svr4.h. */
solib_ops_up
-make_svr4_lp64_solib_ops ()
+make_svr4_lp64_solib_ops (program_space *pspace)
{
- return std::make_unique<lp64_svr4_solib_ops> ();
+ return std::make_unique<lp64_svr4_solib_ops> (pspace);
}
/* Fetch (and possibly build) an appropriate `struct link_map_offsets'
@@ -3588,16 +3634,9 @@ find_debug_base_for_solib (const solib *solib)
svr4_info *info = get_svr4_info (solib->objfile->pspace ());
gdb_assert (info != nullptr);
- auto *lm_info
- = gdb::checked_static_cast<const lm_info_svr4 *> (solib->lm_info.get ());
-
- for (const auto &[debug_base, sos] : info->solib_lists)
- for (const svr4_so &so : sos)
- if (svr4_same (solib->original_name.c_str (), so.name.c_str (), *lm_info,
- *so.lm_info))
- return debug_base;
+ auto &lm_info = get_lm_info_svr4 (*solib);
- return 0;
+ return lm_info.debug_base;
}
/* Search order for ELF DSOs linked with -Bsymbolic. Those DSOs have a
@@ -3606,10 +3645,10 @@ find_debug_base_for_solib (const solib *solib)
stay in the same namespace as that file. Otherwise, we only consider
the initial namespace. */
-static void
-svr4_iterate_over_objfiles_in_search_order
- (gdbarch *gdbarch, iterate_over_objfiles_in_search_order_cb_ftype cb,
- objfile *current_objfile)
+void
+svr4_solib_ops::iterate_over_objfiles_in_search_order
+ (iterate_over_objfiles_in_search_order_cb_ftype cb,
+ objfile *current_objfile) const
{
bool checked_current_objfile = false;
if (current_objfile != nullptr)
@@ -3619,11 +3658,14 @@ svr4_iterate_over_objfiles_in_search_order
if (current_objfile->separate_debug_objfile_backlink != nullptr)
current_objfile = current_objfile->separate_debug_objfile_backlink;
- if (current_objfile == current_program_space->symfile_object_file)
- abfd = current_program_space->exec_bfd ();
+ if (current_objfile == m_pspace->symfile_object_file)
+ abfd = m_pspace->exec_bfd ();
else
abfd = current_objfile->obfd.get ();
+ /* gdb_bfd_scan_elf_dyntag relies on the current program space. */
+ gdb_assert (m_pspace == current_program_space);
+
if (abfd != nullptr
&& gdb_bfd_scan_elf_dyntag (DT_SYMBOLIC, abfd, nullptr, nullptr) == 1)
{
@@ -3633,15 +3675,19 @@ svr4_iterate_over_objfiles_in_search_order
}
}
+ /* elf_locate_base relies on the current program space. */
+ gdb_assert (m_pspace == current_program_space);
+
/* The linker namespace to iterate identified by the address of its
r_debug object, defaulting to the initial namespace. */
- CORE_ADDR initial = elf_locate_base ();
+ svr4_info *info = get_svr4_info (current_program_space);
+ CORE_ADDR default_debug_base = this->default_debug_base (info);
const solib *curr_solib = find_solib_for_objfile (current_objfile);
CORE_ADDR debug_base = find_debug_base_for_solib (curr_solib);
if (debug_base == 0)
- debug_base = initial;
+ debug_base = default_debug_base;
- for (objfile *objfile : current_program_space->objfiles ())
+ for (objfile *objfile : m_pspace->objfiles ())
{
if (checked_current_objfile && objfile == current_objfile)
continue;
@@ -3654,7 +3700,7 @@ svr4_iterate_over_objfiles_in_search_order
const solib *solib = find_solib_for_objfile (objfile);
CORE_ADDR solib_base = find_debug_base_for_solib (solib);
if (solib_base == 0)
- solib_base = initial;
+ solib_base = default_debug_base;
/* Ignore objfiles that were added to a different namespace. */
if (solib_base != debug_base)
@@ -3668,8 +3714,7 @@ svr4_iterate_over_objfiles_in_search_order
std::optional<CORE_ADDR>
svr4_solib_ops::find_solib_addr (solib &so) const
{
- auto *li = gdb::checked_static_cast<lm_info_svr4 *> (so.lm_info.get ());
- return li->l_addr_inferior;
+ return get_lm_info_svr4 (so).l_addr_inferior;
}
int
@@ -3719,15 +3764,14 @@ svr4_solib_ops::get_solibs_in_ns (int nsid) const
for (const solib &so: current_program_space->solibs ())
{
- auto *lm_inferior
- = gdb::checked_static_cast<const lm_info_svr4 *> (so.lm_info.get ());
+ auto &lm_inferior = get_lm_info_svr4 (so);
/* This is inspired by the svr4_same, by finding the svr4_so object
in the map, and then double checking if the lm_info is considered
the same. */
if (namespace_solibs.count (so.original_name) > 0
- && namespace_solibs[so.original_name]->l_addr_inferior
- == lm_inferior->l_addr_inferior)
+ && (namespace_solibs[so.original_name]->l_addr_inferior
+ == lm_inferior.l_addr_inferior))
{
ns_solibs.push_back (&so);
/* Remove the SO from the map, so that we don't end up
diff --git a/gdb/solib-svr4.h b/gdb/solib-svr4.h
index 7235fd9..7b38ff4 100644
--- a/gdb/solib-svr4.h
+++ b/gdb/solib-svr4.h
@@ -34,6 +34,10 @@ struct svr4_so;
struct lm_info_svr4 final : public lm_info
{
+ explicit lm_info_svr4 (CORE_ADDR debug_base)
+ : debug_base (debug_base)
+ {}
+
/* Amount by which addresses in the binary should be relocated to
match the inferior. The direct inferior value is L_ADDR_INFERIOR.
When prelinking is involved and the prelink base address changes,
@@ -49,6 +53,18 @@ struct lm_info_svr4 final : public lm_info
/* Values read in from inferior's fields of the same name. */
CORE_ADDR l_ld = 0, l_next = 0, l_prev = 0, l_name = 0;
+
+ /* The address of the dynamic linker structure (r_debug) this solib comes
+ from. This identifies which namespace this library is in.
+
+ This field can be 0 in the following situations:
+
+ - we receive the libraries through XML from an old gdbserver that
+ doesn't include the "lmid" field
+ - the default debug base is not yet known
+
+ In other cases, this field should have a sensible value. */
+ CORE_ADDR debug_base;
};
using lm_info_svr4_up = std::unique_ptr<lm_info_svr4>;
@@ -78,6 +94,8 @@ enum probe_action
struct svr4_solib_ops : public solib_ops
{
+ using solib_ops::solib_ops;
+
void relocate_section_addresses (solib &so, target_section *) const override;
void clear_so (const solib &so) const override;
void clear_solib (program_space *pspace) const override;
@@ -94,6 +112,9 @@ struct svr4_solib_ops : public solib_ops
int find_solib_ns (const solib &so) const override;
int num_active_namespaces () const override;
std::vector<const solib *> get_solibs_in_ns (int nsid) const override;
+ void iterate_over_objfiles_in_search_order
+ (iterate_over_objfiles_in_search_order_cb_ftype cb,
+ objfile *current_objfile) const override;
/* Return the appropriate link map offsets table for the architecture. */
virtual link_map_offsets *fetch_link_map_offsets () const = 0;
@@ -116,8 +137,9 @@ private:
CORE_ADDR find_r_ldsomap (svr4_info *info) const;
owning_intrusive_list<solib> default_sos (svr4_info *info) const;
int read_so_list (svr4_info *info, CORE_ADDR lm, CORE_ADDR prev_lm,
- std::vector<svr4_so> &sos, int ignore_first) const;
- lm_info_svr4_up read_lm_info (CORE_ADDR lm_addr) const;
+ CORE_ADDR debug_base, std::vector<svr4_so> &sos,
+ int ignore_first) const;
+ lm_info_svr4_up read_lm_info (CORE_ADDR lm_addr, CORE_ADDR debug_base) const;
int has_lm_dynamic_from_link_map () const;
CORE_ADDR lm_addr_check (const solib &so, bfd *abfd) const;
CORE_ADDR read_r_next (CORE_ADDR debug_base) const;
@@ -131,12 +153,18 @@ private:
int update_incremental (svr4_info *info, CORE_ADDR debug_base,
CORE_ADDR lm) const;
bool update_event_breakpoint (breakpoint *b) const;
+
+ /* Return the base address of the dynamic linker structure for the default
+ namespace. */
+ CORE_ADDR default_debug_base (svr4_info *info, bool *changed = nullptr) const;
};
/* solib_ops for ILP32 SVR4 systems. */
struct ilp32_svr4_solib_ops : public svr4_solib_ops
{
+ using svr4_solib_ops::svr4_solib_ops;
+
link_map_offsets *fetch_link_map_offsets () const override;
};
@@ -192,11 +220,11 @@ extern CORE_ADDR svr4_fetch_objfile_link_map (struct objfile *objfile);
/* Return a new solib_ops for ILP32 SVR4 systems. */
-extern solib_ops_up make_svr4_ilp32_solib_ops ();
+extern solib_ops_up make_svr4_ilp32_solib_ops (program_space *pspace);
/* Return a new solib_ops for LP64 SVR4 systems. */
-extern solib_ops_up make_svr4_lp64_solib_ops ();
+extern solib_ops_up make_svr4_lp64_solib_ops (program_space *pspace);
/* For the MUSL C library, given link map address LM_ADDR, return the
corresponding TLS module id, or 0 if not found. */
diff --git a/gdb/solib-target.c b/gdb/solib-target.c
index 770028d..2ae25a8 100644
--- a/gdb/solib-target.c
+++ b/gdb/solib-target.c
@@ -29,10 +29,6 @@
/* Private data for each loaded library. */
struct lm_info_target final : public lm_info
{
- /* The library's name. The name is normally kept in the struct
- solib; it is only here during XML parsing. */
- std::string name;
-
/* The target can either specify segment bases or section bases, not
both. */
@@ -51,9 +47,18 @@ struct lm_info_target final : public lm_info
using lm_info_target_up = std::unique_ptr<lm_info_target>;
+/* Type used to convey the information about one target library while parsing
+ the XML. */
+
+struct target_library
+{
+ std::string name;
+ lm_info_target_up info;
+};
+
#if !defined(HAVE_LIBEXPAT)
-static std::vector<lm_info_target_up>
+static std::vector<target_library>
solib_target_parse_libraries (const char *library)
{
static int have_warned;
@@ -80,17 +85,17 @@ library_list_start_segment (struct gdb_xml_parser *parser,
void *user_data,
std::vector<gdb_xml_value> &attributes)
{
- auto *list = (std::vector<lm_info_target_up> *) user_data;
- lm_info_target *last = list->back ().get ();
+ const auto list = static_cast<std::vector<target_library> *> (user_data);
+ target_library &last = list->back ();
ULONGEST *address_p
= (ULONGEST *) xml_find_attribute (attributes, "address")->value.get ();
CORE_ADDR address = (CORE_ADDR) *address_p;
- if (!last->section_bases.empty ())
+ if (!last.info->section_bases.empty ())
gdb_xml_error (parser,
_("Library list with both segments and sections"));
- last->segment_bases.push_back (address);
+ last.info->segment_bases.push_back (address);
}
static void
@@ -99,17 +104,17 @@ library_list_start_section (struct gdb_xml_parser *parser,
void *user_data,
std::vector<gdb_xml_value> &attributes)
{
- auto *list = (std::vector<lm_info_target_up> *) user_data;
- lm_info_target *last = list->back ().get ();
+ const auto list = static_cast<std::vector<target_library> *> (user_data);
+ target_library &last = list->back ();
ULONGEST *address_p
= (ULONGEST *) xml_find_attribute (attributes, "address")->value.get ();
CORE_ADDR address = (CORE_ADDR) *address_p;
- if (!last->segment_bases.empty ())
+ if (!last.info->segment_bases.empty ())
gdb_xml_error (parser,
_("Library list with both segments and sections"));
- last->section_bases.push_back (address);
+ last.info->section_bases.push_back (address);
}
/* Handle the start of a <library> element. */
@@ -120,12 +125,12 @@ library_list_start_library (struct gdb_xml_parser *parser,
void *user_data,
std::vector<gdb_xml_value> &attributes)
{
- auto *list = (std::vector<lm_info_target_up> *) user_data;
- lm_info_target *item = new lm_info_target;
- item->name
+ const auto list = static_cast<std::vector<target_library> *> (user_data);
+ std::string name
= (const char *) xml_find_attribute (attributes, "name")->value.get ();
- list->emplace_back (item);
+ list->emplace_back (target_library { std::move (name),
+ std::make_unique<lm_info_target> () });
}
static void
@@ -133,10 +138,10 @@ library_list_end_library (struct gdb_xml_parser *parser,
const struct gdb_xml_element *element,
void *user_data, const char *body_text)
{
- auto *list = (std::vector<lm_info_target_up> *) user_data;
- lm_info_target *lm_info = list->back ().get ();
+ const auto list = static_cast<std::vector<target_library> *> (user_data);
+ target_library &last = list->back ();
- if (lm_info->segment_bases.empty () && lm_info->section_bases.empty ())
+ if (last.info->segment_bases.empty () && last.info->section_bases.empty ())
gdb_xml_error (parser, _("No segment or section bases defined"));
}
@@ -209,10 +214,10 @@ static const struct gdb_xml_element library_list_elements[] = {
{ NULL, NULL, NULL, GDB_XML_EF_NONE, NULL, NULL }
};
-static std::vector<lm_info_target_up>
+static std::vector<target_library>
solib_target_parse_libraries (const char *library)
{
- std::vector<lm_info_target_up> result;
+ std::vector<target_library> result;
if (gdb_xml_parse_quick (_("target library list"), "library-list.dtd",
library_list_elements, library, &result) == 0)
@@ -239,19 +244,13 @@ target_solib_ops::current_sos () const
return {};
/* Parse the list. */
- std::vector<lm_info_target_up> library_list
+ std::vector<target_library> library_list
= solib_target_parse_libraries (library_document->data ());
/* Build a struct solib for each entry on the list. */
- for (lm_info_target_up &info : library_list)
- {
- auto &new_solib = sos.emplace_back (*this);
-
- /* We don't need a copy of the name in INFO anymore. */
- new_solib.name = std::move (info->name);
- new_solib.original_name = new_solib.name;
- new_solib.lm_info = std::move (info);
- }
+ for (auto &library : library_list)
+ sos.emplace_back (std::move (library.info), library.name, library.name,
+ *this);
return sos;
}
@@ -389,7 +388,7 @@ target_solib_ops::in_dynsym_resolve_code (CORE_ADDR pc) const
/* See solib-target.h. */
solib_ops_up
-make_target_solib_ops ()
+make_target_solib_ops (program_space *pspace)
{
- return std::make_unique<target_solib_ops> ();
+ return std::make_unique<target_solib_ops> (pspace);
}
diff --git a/gdb/solib-target.h b/gdb/solib-target.h
index 89ae2bc..4b8f2d6 100644
--- a/gdb/solib-target.h
+++ b/gdb/solib-target.h
@@ -26,6 +26,8 @@
struct target_solib_ops : solib_ops
{
+ using solib_ops::solib_ops;
+
void relocate_section_addresses (solib &so, target_section *) const override;
owning_intrusive_list<solib> current_sos () const override;
bool in_dynsym_resolve_code (CORE_ADDR pc) const override;
@@ -33,6 +35,6 @@ struct target_solib_ops : solib_ops
/* Return a new solib_ops for systems fetching solibs from the target. */
-solib_ops_up make_target_solib_ops ();
+solib_ops_up make_target_solib_ops (program_space *pspace);
#endif /* GDB_SOLIB_TARGET_H */
diff --git a/gdb/solib.c b/gdb/solib.c
index 3ec2032..9a2ef12 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -473,6 +473,18 @@ solib_ops::bfd_open (const char *pathname) const
return solib_bfd_open (pathname);
}
+/* See solib.h. */
+
+void
+solib_ops::iterate_over_objfiles_in_search_order
+ (iterate_over_objfiles_in_search_order_cb_ftype cb,
+ objfile *current_objfile) const
+{
+ for (objfile *objfile : m_pspace->objfiles ())
+ if (cb (objfile))
+ return;
+}
+
/* Given a pointer to one of the shared objects in our list of mapped
objects, use the recorded name to open a bfd descriptor for the
object, build a section table, relocate all the section addresses
@@ -633,15 +645,12 @@ solib_read_symbols (solib &so, symfile_add_flags flags)
/* Have we already loaded this shared object? */
so.objfile = nullptr;
for (objfile *objfile : current_program_space->objfiles ())
- {
- if (filename_cmp (objfile_name (objfile), so.name.c_str ())
- == 0
- && objfile->addr_low == so.addr_low)
- {
- so.objfile = objfile;
- break;
- }
- }
+ if (objfile->addr_low == so.addr_low)
+ {
+ so.objfile = objfile;
+ break;
+ }
+
if (so.objfile == NULL)
{
section_addr_info sap
@@ -1045,7 +1054,7 @@ print_solib_list_table (std::vector<const solib *> solib_list,
uiout->table_header (addr_width - 1, ui_left, "from", "From");
uiout->table_header (addr_width - 1, ui_left, "to", "To");
if (print_namespace)
- uiout->table_header (5, ui_left, "namespace", "NS");
+ uiout->table_header (9, ui_left, "namespace", "Linker NS");
uiout->table_header (12 - 1, ui_left, "syms-read", "Syms Read");
uiout->table_header (0, ui_noalign, "name", "Shared Object Library");
@@ -1073,7 +1082,7 @@ print_solib_list_table (std::vector<const solib *> solib_list,
{
try
{
- uiout->field_fmt ("namespace", "[[%d]]", ops->find_solib_ns (*so));
+ uiout->field_fmt ("namespace", "%d", ops->find_solib_ns (*so));
}
catch (const gdb_exception_error &er)
{
@@ -1171,7 +1180,7 @@ info_linker_namespace_command (const char *pattern, int from_tty)
if (pattern == nullptr || pattern[0] == '\0')
{
- uiout->message (_("There are %d linker namespaces loaded\n"),
+ uiout->message (_("There are %d linker namespaces loaded.\n"),
ops->num_active_namespaces ());
int printed = 0;
@@ -1208,27 +1217,26 @@ info_linker_namespace_command (const char *pattern, int from_tty)
(std::make_pair (ns, ops->get_solibs_in_ns (ns)));
}
- bool ns_separator = false;
-
for (const auto &[ns, solibs_to_print] : all_solibs_to_print)
{
- if (ns_separator)
- uiout->message ("\n\n");
- else
- ns_separator = true;
+ uiout->message ("\n");
if (solibs_to_print.size () == 0)
{
- uiout->message (_("Linker namespace [[%d]] is not active.\n"), ns);
+ uiout->message (_("Linker namespace %d is not active.\n"), ns);
/* If we got here, a specific namespace was requested, so there
will only be one vector. We can leave early. */
break;
}
- uiout->message
- (_("There are %zu libraries loaded in linker namespace [[%d]]\n"),
- solibs_to_print.size (), ns);
- uiout->message
- (_("Displaying libraries for linker namespace [[%d]]:\n"), ns);
+
+ if (solibs_to_print.size () == 1)
+ uiout->message
+ (_("1 library loaded in linker namespace %d:\n"), ns);
+ else
+ uiout->message
+ (_("%zu libraries loaded in linker namespace %d:\n"),
+ solibs_to_print.size (), ns);
+
print_solib_list_table (solibs_to_print, false);
}
@@ -1805,6 +1813,18 @@ remove_user_added_objfile (struct objfile *objfile)
}
}
+/* See solib.h. */
+
+int
+solib_linker_namespace_count (program_space *pspace)
+{
+ if (const auto ops = pspace->solib_ops (); ops != nullptr
+ && ops->supports_namespaces ())
+ return ops->num_active_namespaces ();
+
+ return 0;
+}
+
/* Implementation of the linker_namespace convenience variable.
This returns the GDB internal identifier of the linker namespace,
@@ -1840,6 +1860,23 @@ static const struct internalvar_funcs linker_namespace_funcs =
nullptr,
};
+static value *
+linker_namespace_count_make_value (gdbarch *gdbarch, internalvar *var,
+ void *ignore)
+{
+ return value_from_longest
+ (builtin_type (gdbarch)->builtin_int,
+ solib_linker_namespace_count (current_program_space));
+}
+
+/* Implementation of `$_linker_namespace_count' variable. */
+
+static const struct internalvar_funcs linker_namespace_count_funcs =
+{
+ linker_namespace_count_make_value,
+ nullptr,
+};
+
INIT_GDB_FILE (solib)
{
gdb::observers::free_objfile.attach (remove_user_added_objfile, "solib");
@@ -1854,7 +1891,8 @@ INIT_GDB_FILE (solib)
for consistency. */
create_internalvar_type_lazy ("_linker_namespace",
&linker_namespace_funcs, nullptr);
- set_internalvar_integer (lookup_internalvar ("_active_linker_namespaces"), 1);
+ create_internalvar_type_lazy ("_linker_namespace_count",
+ &linker_namespace_count_funcs, nullptr);
add_com (
"sharedlibrary", class_files, sharedlibrary_command,
diff --git a/gdb/solib.h b/gdb/solib.h
index b9465e1..85ea667 100644
--- a/gdb/solib.h
+++ b/gdb/solib.h
@@ -61,7 +61,13 @@ struct solib : intrusive_list_node<solib>
/* Constructor
OPS is the solib_ops implementation providing this solib. */
- explicit solib (const solib_ops &ops) : m_ops (&ops) {}
+ explicit solib (lm_info_up lm_info, std::string original_name,
+ std::string name, const solib_ops &ops)
+ : lm_info (std::move (lm_info)),
+ original_name (std::move (original_name)),
+ name (std::move (name)),
+ m_ops (&ops)
+ {}
/* Return the solib_ops implementation providing this solib. */
const solib_ops &ops () const
@@ -131,8 +137,18 @@ private:
/* A unique pointer to an solib. */
using solib_up = std::unique_ptr<solib>;
+/* Callback type for the 'iterate_over_objfiles_in_search_order'
+ methods. */
+
+using iterate_over_objfiles_in_search_order_cb_ftype
+ = gdb::function_view<bool (objfile *)>;
+
struct solib_ops
{
+ explicit solib_ops (program_space *pspace)
+ : m_pspace (pspace)
+ {}
+
virtual ~solib_ops () = default;
/* Adjust the section binding addresses by the base address at
@@ -259,6 +275,22 @@ struct solib_ops
The supports_namespaces method must return true for this to be called. */
virtual std::vector<const solib *> get_solibs_in_ns (int ns) const
{ gdb_assert_not_reached ("namespaces not supported"); }
+
+ /* Iterate over all objfiles of the program space in the order that makes the
+ most sense for the architecture to make global symbol searches.
+
+ CB is a callback function passed an objfile to be searched. The iteration
+ stops if this function returns true.
+
+ If not nullptr, CURRENT_OBJFILE corresponds to the objfile being inspected
+ when the symbol search was requested. */
+ virtual void iterate_over_objfiles_in_search_order
+ (iterate_over_objfiles_in_search_order_cb_ftype cb,
+ objfile *current_objfile) const;
+
+protected:
+ /* The program space for which this solib_ops was created. */
+ program_space *m_pspace;
};
/* A unique pointer to an solib_ops. */
@@ -373,4 +405,8 @@ extern void update_solib_breakpoints (void);
extern void handle_solib_event (void);
+/* Calculate the number of linker namespaces active in PSPACE. */
+
+extern int solib_linker_namespace_count (program_space *pspace);
+
#endif /* GDB_SOLIB_H */
diff --git a/gdb/source.c b/gdb/source.c
index 0fd370b..99dffa8 100644
--- a/gdb/source.c
+++ b/gdb/source.c
@@ -774,9 +774,9 @@ prepare_path_for_appending (const char *path)
If FILENAME_OPENED is non-null, set it to a newly allocated string naming
the actual file opened (this string will always start with a "/"). We
- have to take special pains to avoid doubling the "/" between the directory
- and the file, sigh! Emacs gets confuzzed by this when we print the
- source file name!!!
+ have to ensure that we avoid doubling the "/" between the directory and the
+ file, because Emacs has special treatment of double slashes.
+ See "(emacs) Minibuffer File".
If OPTS has OPF_RETURN_REALPATH set return FILENAME_OPENED resolved by
gdb_realpath. Even without OPF_RETURN_REALPATH this function still returns
@@ -1312,14 +1312,12 @@ print_source_lines_base (struct symtab *s, int line, int stopline,
int nlines = stopline - line;
struct ui_out *uiout = current_uiout;
- /* Regardless of whether we can open the file, set current_source_symtab. */
+ /* Regardless of whether we can open the file, we'll want to set
+ current_source_symtab, but not if throw an error, or return without
+ printing any source lines. */
current_source_location *loc
= get_source_location (current_program_space);
- loc->set (s, line);
- first_line_listed = line;
- last_line_listed = line;
-
/* If printing of source lines is disabled, just print file and line
number. */
if (uiout->test_flags (ui_source_list) && source_open)
@@ -1380,6 +1378,10 @@ print_source_lines_base (struct symtab *s, int line, int stopline,
uiout->text ("\n");
}
+ loc->set (s, line);
+ first_line_listed = line;
+ last_line_listed = line;
+
return;
}
@@ -1399,12 +1401,9 @@ print_source_lines_base (struct symtab *s, int line, int stopline,
}
const char *iter = lines.c_str ();
- int new_lineno = loc->line ();
- while (nlines-- > 0 && *iter != '\0')
+ int new_lineno = line;
+ for (; nlines-- > 0 && *iter != '\0'; ++new_lineno)
{
- char buf[20];
-
- last_line_listed = loc->line ();
if (flags & PRINT_SOURCE_LINES_FILENAME)
{
uiout->message ("%ps",
@@ -1415,7 +1414,6 @@ print_source_lines_base (struct symtab *s, int line, int stopline,
uiout->message ("%ps\t", styled_string (line_number_style.style (),
pulongest (new_lineno)));
- ++new_lineno;
while (*iter != '\0')
{
@@ -1457,6 +1455,8 @@ print_source_lines_base (struct symtab *s, int line, int stopline,
}
else if (*iter > 0 && *iter < 040)
{
+ char buf[20];
+
xsnprintf (buf, sizeof (buf), "^%c", *iter + 0100);
uiout->text (buf);
++iter;
@@ -1470,7 +1470,11 @@ print_source_lines_base (struct symtab *s, int line, int stopline,
uiout->text ("\n");
}
- loc->set (loc->symtab (), new_lineno);
+ /* As NEW_LINENO was incremented after displaying the last source line,
+ the last line shown was the one before NEW_LINENO. */
+ first_line_listed = line;
+ last_line_listed = new_lineno - 1;
+ loc->set (s, new_lineno);
}
diff --git a/gdb/sparc-sol2-tdep.c b/gdb/sparc-sol2-tdep.c
index 337b929..8de7439 100644
--- a/gdb/sparc-sol2-tdep.c
+++ b/gdb/sparc-sol2-tdep.c
@@ -214,7 +214,7 @@ sparc32_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
tdep->plt_entry_size = 12;
/* Solaris has kernel-assisted single-stepping support. */
- set_gdbarch_software_single_step (gdbarch, NULL);
+ set_gdbarch_get_next_pcs (gdbarch, NULL);
frame_unwind_append_unwinder (gdbarch, &sparc32_sol2_sigtramp_frame_unwind);
}
diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c
index 4a12516..914a568 100644
--- a/gdb/sparc-tdep.c
+++ b/gdb/sparc-tdep.c
@@ -1874,7 +1874,7 @@ sparc32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_frame_args_skip (gdbarch, 8);
- set_gdbarch_software_single_step (gdbarch, sparc_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, sparc_software_single_step);
set_gdbarch_write_pc (gdbarch, sparc_write_pc);
set_gdbarch_dummy_id (gdbarch, sparc_dummy_id);
diff --git a/gdb/sparc64-sol2-tdep.c b/gdb/sparc64-sol2-tdep.c
index 6d091f5..cb3ba6b 100644
--- a/gdb/sparc64-sol2-tdep.c
+++ b/gdb/sparc64-sol2-tdep.c
@@ -221,7 +221,7 @@ sparc64_sol2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
tdep->plt_entry_size = 16;
/* Solaris has kernel-assisted single-stepping support. */
- set_gdbarch_software_single_step (gdbarch, NULL);
+ set_gdbarch_get_next_pcs (gdbarch, NULL);
}
INIT_GDB_FILE (sparc64_sol2_tdep)
diff --git a/gdb/stabsread.c b/gdb/stabsread.c
index 6ee61e0..733fc9e 100644
--- a/gdb/stabsread.c
+++ b/gdb/stabsread.c
@@ -46,7 +46,6 @@
#include "c-lang.h"
#include "cp-abi.h"
#include "cp-support.h"
-#include <ctype.h>
#include "block.h"
#include "filenames.h"
@@ -472,7 +471,7 @@ patch_block_stabs (struct pending *symbols, struct pending_stabs *stabs,
a N_GSYM stab for it, but no regular (C_EXT) symbol. */
sym = new (&objfile->objfile_obstack) symbol;
sym->set_domain (VAR_DOMAIN);
- sym->set_aclass_index (LOC_OPTIMIZED_OUT);
+ sym->set_loc_class_index (LOC_OPTIMIZED_OUT);
sym->set_linkage_name
(obstack_strndup (&objfile->objfile_obstack, name, pp - name));
pp += 2;
@@ -3067,7 +3066,7 @@ process_reference (const char **string)
p = *string + 1;
/* Read number as reference id. */
- while (*p && isdigit (*p))
+ while (*p && c_isdigit (*p))
{
refnum = refnum * 10 + *p - '0';
p++;
@@ -3123,7 +3122,7 @@ static const struct symbol_register_ops stab_register_funcs = {
stab_reg_to_regnum
};
-/* The "aclass" indices for computed symbols. */
+/* The "loc_class" indices for computed symbols. */
static int stab_register_index;
static int stab_regparm_index;
@@ -3251,7 +3250,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
deftypes we know how to handle is a local. */
if (!strchr ("cfFGpPrStTvVXCR", *p))
#else
- if (isdigit (*p) || *p == '(' || *p == '-')
+ if (c_isdigit (*p) || *p == '(' || *p == '-')
#endif
deftype = 'l';
else
@@ -3268,7 +3267,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
(where type 6 is defined by "blobs:t6=eblob1:0,blob2:1,;"). */
if (*p != '=')
{
- sym->set_aclass_index (LOC_CONST);
+ sym->set_loc_class_index (LOC_CONST);
sym->set_type (error_type (&p, objfile));
sym->set_domain (VAR_DOMAIN);
add_symbol_to_list (sym, get_file_symbols ());
@@ -3291,7 +3290,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
sym->set_type (dbl_type);
sym->set_value_bytes (dbl_valu);
- sym->set_aclass_index (LOC_CONST_BYTES);
+ sym->set_loc_class_index (LOC_CONST_BYTES);
}
break;
case 'i':
@@ -3305,7 +3304,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
sym->set_type (builtin_type (objfile)->builtin_long);
sym->set_value_longest (atoi (p));
- sym->set_aclass_index (LOC_CONST);
+ sym->set_loc_class_index (LOC_CONST);
}
break;
@@ -3313,7 +3312,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
{
sym->set_type (builtin_type (objfile)->builtin_char);
sym->set_value_longest (atoi (p));
- sym->set_aclass_index (LOC_CONST);
+ sym->set_loc_class_index (LOC_CONST);
}
break;
@@ -3327,7 +3326,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
if (quote != '\'' && quote != '"')
{
- sym->set_aclass_index (LOC_CONST);
+ sym->set_loc_class_index (LOC_CONST);
sym->set_type (error_type (&p, objfile));
sym->set_domain (VAR_DOMAIN);
add_symbol_to_list (sym, get_file_symbols ());
@@ -3352,7 +3351,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
}
if (*p != quote)
{
- sym->set_aclass_index (LOC_CONST);
+ sym->set_loc_class_index (LOC_CONST);
sym->set_type (error_type (&p, objfile));
sym->set_domain (VAR_DOMAIN);
add_symbol_to_list (sym, get_file_symbols ());
@@ -3375,7 +3374,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
p++;
sym->set_value_bytes (string_value);
- sym->set_aclass_index (LOC_CONST_BYTES);
+ sym->set_loc_class_index (LOC_CONST_BYTES);
}
break;
@@ -3385,7 +3384,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
e.g. "b:c=e6,0" for "const b = blob1"
(where type 6 is defined by "blobs:t6=eblob1:0,blob2:1,;"). */
{
- sym->set_aclass_index (LOC_CONST);
+ sym->set_loc_class_index (LOC_CONST);
sym->set_type (read_type (&p, objfile));
if (*p != ',')
@@ -3406,7 +3405,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
break;
default:
{
- sym->set_aclass_index (LOC_CONST);
+ sym->set_loc_class_index (LOC_CONST);
sym->set_type (error_type (&p, objfile));
}
}
@@ -3417,7 +3416,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
case 'C':
/* The name of a caught exception. */
sym->set_type (read_type (&p, objfile));
- sym->set_aclass_index (LOC_LABEL);
+ sym->set_loc_class_index (LOC_LABEL);
sym->set_domain (VAR_DOMAIN);
sym->set_value_address (valu);
add_symbol_to_list (sym, get_local_symbols ());
@@ -3426,7 +3425,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
case 'f':
/* A static function definition. */
sym->set_type (read_type (&p, objfile));
- sym->set_aclass_index (LOC_BLOCK);
+ sym->set_loc_class_index (LOC_BLOCK);
sym->set_domain (FUNCTION_DOMAIN);
add_symbol_to_list (sym, get_file_symbols ());
/* fall into process_function_types. */
@@ -3497,7 +3496,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
case 'F':
/* A global function definition. */
sym->set_type (read_type (&p, objfile));
- sym->set_aclass_index (LOC_BLOCK);
+ sym->set_loc_class_index (LOC_BLOCK);
sym->set_domain (FUNCTION_DOMAIN);
add_symbol_to_list (sym, get_global_symbols ());
goto process_function_types;
@@ -3508,7 +3507,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
corresponding linker definition to find the value.
These definitions appear at the end of the namelist. */
sym->set_type (read_type (&p, objfile));
- sym->set_aclass_index (LOC_STATIC);
+ sym->set_loc_class_index (LOC_STATIC);
sym->set_domain (VAR_DOMAIN);
/* Don't add symbol references to global_sym_chain.
Symbol references don't have valid names and won't match up with
@@ -3529,7 +3528,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
case 's':
case 'l':
sym->set_type (read_type (&p, objfile));
- sym->set_aclass_index (LOC_LOCAL);
+ sym->set_loc_class_index (LOC_LOCAL);
sym->set_value_longest (valu);
sym->set_domain (VAR_DOMAIN);
add_symbol_to_list (sym, get_local_symbols ());
@@ -3549,7 +3548,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
else
sym->set_type (read_type (&p, objfile));
- sym->set_aclass_index (LOC_ARG);
+ sym->set_loc_class_index (LOC_ARG);
sym->set_value_longest (valu);
sym->set_domain (VAR_DOMAIN);
sym->set_is_argument (1);
@@ -3598,7 +3597,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
case 'R':
/* Parameter which is in a register. */
sym->set_type (read_type (&p, objfile));
- sym->set_aclass_index (stab_register_index);
+ sym->set_loc_class_index (stab_register_index);
sym->set_is_argument (1);
sym->set_value_longest (valu);
sym->set_domain (VAR_DOMAIN);
@@ -3608,7 +3607,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
case 'r':
/* Register variable (either global or local). */
sym->set_type (read_type (&p, objfile));
- sym->set_aclass_index (stab_register_index);
+ sym->set_loc_class_index (stab_register_index);
sym->set_value_longest (valu);
sym->set_domain (VAR_DOMAIN);
if (within_function)
@@ -3640,12 +3639,12 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
struct symbol *prev_sym;
prev_sym = local_symbols->symbol[local_symbols->nsyms - 1];
- if ((prev_sym->aclass () == LOC_REF_ARG
- || prev_sym->aclass () == LOC_ARG)
+ if ((prev_sym->loc_class () == LOC_REF_ARG
+ || prev_sym->loc_class () == LOC_ARG)
&& strcmp (prev_sym->linkage_name (),
sym->linkage_name ()) == 0)
{
- prev_sym->set_aclass_index (stab_register_index);
+ prev_sym->set_loc_class_index (stab_register_index);
/* Use the type from the LOC_REGISTER; that is the type
that is actually in that register. */
prev_sym->set_type (sym->type ());
@@ -3663,7 +3662,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
case 'S':
/* Static symbol at top level of file. */
sym->set_type (read_type (&p, objfile));
- sym->set_aclass_index (LOC_STATIC);
+ sym->set_loc_class_index (LOC_STATIC);
sym->set_value_address (valu);
sym->set_domain (VAR_DOMAIN);
add_symbol_to_list (sym, get_file_symbols ());
@@ -3694,7 +3693,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
if (nameless)
return NULL;
- sym->set_aclass_index (LOC_TYPEDEF);
+ sym->set_loc_class_index (LOC_TYPEDEF);
sym->set_value_longest (valu);
sym->set_domain (TYPE_DOMAIN);
/* C++ vagaries: we may have a type which is derived from
@@ -3771,7 +3770,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
struct symbol *struct_sym = new (&objfile->objfile_obstack) symbol;
*struct_sym = *sym;
- struct_sym->set_aclass_index (LOC_TYPEDEF);
+ struct_sym->set_loc_class_index (LOC_TYPEDEF);
struct_sym->set_value_longest (valu);
struct_sym->set_domain (STRUCT_DOMAIN);
if (sym->type ()->name () == 0)
@@ -3798,7 +3797,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
if (nameless)
return NULL;
- sym->set_aclass_index (LOC_TYPEDEF);
+ sym->set_loc_class_index (LOC_TYPEDEF);
sym->set_value_longest (valu);
sym->set_domain (STRUCT_DOMAIN);
if (sym->type ()->name () == 0)
@@ -3813,7 +3812,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
struct symbol *typedef_sym = new (&objfile->objfile_obstack) symbol;
*typedef_sym = *sym;
- typedef_sym->set_aclass_index (LOC_TYPEDEF);
+ typedef_sym->set_loc_class_index (LOC_TYPEDEF);
typedef_sym->set_value_longest (valu);
typedef_sym->set_domain (TYPE_DOMAIN);
if (sym->type ()->name () == 0)
@@ -3827,7 +3826,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
case 'V':
/* Static symbol of local scope. */
sym->set_type (read_type (&p, objfile));
- sym->set_aclass_index (LOC_STATIC);
+ sym->set_loc_class_index (LOC_STATIC);
sym->set_value_address (valu);
sym->set_domain (VAR_DOMAIN);
add_symbol_to_list (sym, get_local_symbols ());
@@ -3836,7 +3835,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
case 'v':
/* Reference parameter */
sym->set_type (read_type (&p, objfile));
- sym->set_aclass_index (LOC_REF_ARG);
+ sym->set_loc_class_index (LOC_REF_ARG);
sym->set_is_argument (1);
sym->set_value_longest (valu);
sym->set_domain (VAR_DOMAIN);
@@ -3846,7 +3845,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
case 'a':
/* Reference parameter which is in a register. */
sym->set_type (read_type (&p, objfile));
- sym->set_aclass_index (stab_regparm_index);
+ sym->set_loc_class_index (stab_regparm_index);
sym->set_is_argument (1);
sym->set_value_longest (valu);
sym->set_domain (VAR_DOMAIN);
@@ -3859,7 +3858,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
that Pascal uses it too, but when I tried it Pascal used
"x:3" (local symbol) instead. */
sym->set_type (read_type (&p, objfile));
- sym->set_aclass_index (LOC_LOCAL);
+ sym->set_loc_class_index (LOC_LOCAL);
sym->set_value_longest (valu);
sym->set_domain (VAR_DOMAIN);
add_symbol_to_list (sym, get_local_symbols ());
@@ -3867,7 +3866,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
default:
sym->set_type (error_type (&p, objfile));
- sym->set_aclass_index (LOC_CONST);
+ sym->set_loc_class_index (LOC_CONST);
sym->set_value_longest (0);
sym->set_domain (VAR_DOMAIN);
add_symbol_to_list (sym, get_file_symbols ());
@@ -3883,12 +3882,12 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
{
/* We have to convert LOC_REGISTER to LOC_REGPARM_ADDR (for
variables passed in a register). */
- if (sym->aclass () == LOC_REGISTER)
- sym->set_aclass_index (LOC_REGPARM_ADDR);
+ if (sym->loc_class () == LOC_REGISTER)
+ sym->set_loc_class_index (LOC_REGPARM_ADDR);
/* Likewise for converting LOC_ARG to LOC_REF_ARG (for the 7th
and subsequent arguments on SPARC, for example). */
- else if (sym->aclass () == LOC_ARG)
- sym->set_aclass_index (LOC_REF_ARG);
+ else if (sym->loc_class () == LOC_ARG)
+ sym->set_loc_class_index (LOC_REF_ARG);
}
return sym;
@@ -4139,7 +4138,7 @@ again:
{
struct symbol *sym = ppt->symbol[i];
- if (sym->aclass () == LOC_TYPEDEF
+ if (sym->loc_class () == LOC_TYPEDEF
&& sym->domain () == STRUCT_DOMAIN
&& (sym->type ()->code () == code)
&& strcmp (sym->linkage_name (), type_name) == 0)
@@ -4340,7 +4339,7 @@ again:
break;
case '@':
- if (isdigit (**pp) || **pp == '(' || **pp == '-')
+ if (c_isdigit (**pp) || **pp == '(' || **pp == '-')
{ /* Member (class & variable) type */
/* FIXME -- we should be doing smash_to_XXX types here. */
@@ -4431,8 +4430,9 @@ again:
if (args == NULL)
return error_type (pp, objfile);
type = dbx_alloc_type (typenums, objfile);
- smash_to_method_type (type, domain, return_type, args,
- nargs, varargs);
+ smash_to_method_type (type, domain, return_type,
+ gdb::make_array_view (args, nargs),
+ varargs);
}
break;
@@ -6059,7 +6059,7 @@ read_enum_type (const char **pp, struct type *type,
sym->set_linkage_name (name);
sym->set_language (get_current_subfile ()->language,
&objfile->objfile_obstack);
- sym->set_aclass_index (LOC_CONST);
+ sym->set_loc_class_index (LOC_CONST);
sym->set_domain (VAR_DOMAIN);
sym->set_value_longest (n);
if (n < 0)
@@ -6726,7 +6726,7 @@ common_block_end (struct objfile *objfile)
sym = new (&objfile->objfile_obstack) symbol;
/* Note: common_block_name already saved on objfile_obstack. */
sym->set_linkage_name (common_block_name);
- sym->set_aclass_index (LOC_BLOCK);
+ sym->set_loc_class_index (LOC_BLOCK);
/* Now we copy all the symbols which have been defined since the BCOMM. */
@@ -6934,7 +6934,7 @@ cleanup_undefined_types_1 (void)
{
struct symbol *sym = ppt->symbol[i];
- if (sym->aclass () == LOC_TYPEDEF
+ if (sym->loc_class () == LOC_TYPEDEF
&& sym->domain () == STRUCT_DOMAIN
&& (sym->type ()->code () == (*type)->code ())
&& ((*type)->instance_flags ()
@@ -7044,7 +7044,7 @@ scan_file_globals (struct objfile *objfile)
the same symbol if there are multiple references. */
if (sym)
{
- if (sym->aclass () == LOC_BLOCK)
+ if (sym->loc_class () == LOC_BLOCK)
fix_common_block
(sym, msymbol->value_address (resolve_objfile),
msymbol->section_index ());
@@ -7090,8 +7090,8 @@ scan_file_globals (struct objfile *objfile)
prev->set_value_address (0);
/* Complain about unresolved common block symbols. */
- if (prev->aclass () == LOC_STATIC)
- prev->set_aclass_index (LOC_UNRESOLVED);
+ if (prev->loc_class () == LOC_STATIC)
+ prev->set_loc_class_index (LOC_UNRESOLVED);
else
complaint (_("%s: common block `%s' from "
"global_sym_chain unresolved"),
diff --git a/gdb/stack.c b/gdb/stack.c
index e633566..add1c54 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -758,7 +758,7 @@ print_frame_args (const frame_print_options &fp_opts,
break;
}
- switch (sym->aclass ())
+ switch (sym->loc_class ())
{
case LOC_ARG:
case LOC_REF_ARG:
@@ -813,7 +813,7 @@ print_frame_args (const frame_print_options &fp_opts,
nsym = lookup_symbol_search_name (sym->search_name (),
b, SEARCH_VAR_DOMAIN).symbol;
gdb_assert (nsym != NULL);
- if (nsym->aclass () == LOC_REGISTER
+ if (nsym->loc_class () == LOC_REGISTER
&& !nsym->is_argument ())
{
/* There is a LOC_ARG/LOC_REGISTER pair. This means
@@ -1165,10 +1165,10 @@ do_print_frame_info (struct ui_out *uiout, const frame_print_options &fp_opts,
if (set_current_sal)
{
- CORE_ADDR pc;
+ std::optional<CORE_ADDR> pc;
- if (get_frame_pc_if_available (frame, &pc))
- last_displayed_symtab_info.set (sal.pspace, pc, sal.symtab, sal.line);
+ if ((pc = get_frame_pc_if_available (frame)))
+ last_displayed_symtab_info.set (sal.pspace, *pc, sal.symtab, sal.line);
else
last_displayed_symtab_info.invalidate ();
}
@@ -1325,16 +1325,15 @@ print_frame (struct ui_out *uiout,
enum language funlang = language_unknown;
struct value_print_options opts;
struct symbol *func;
- CORE_ADDR pc = 0;
- int pc_p;
+ std::optional <CORE_ADDR> pc;
- pc_p = get_frame_pc_if_available (frame, &pc);
+ pc = get_frame_pc_if_available (frame);
gdb::unique_xmalloc_ptr<char> funname
= find_frame_funname (frame, &funlang, &func);
annotate_frame_begin (print_level ? frame_relative_level (frame) : 0,
- gdbarch, pc);
+ gdbarch, pc.value_or (0));
{
ui_out_emit_tuple tuple_emitter (uiout, "frame");
@@ -1352,8 +1351,8 @@ print_frame (struct ui_out *uiout,
|| print_what == LOC_AND_ADDRESS)
{
annotate_frame_address ();
- if (pc_p)
- print_pc (uiout, gdbarch, frame, pc);
+ if (pc.has_value ())
+ print_pc (uiout, gdbarch, frame, *pc);
else
uiout->field_string ("addr", "<unavailable>",
metadata_style.style ());
@@ -1422,7 +1421,7 @@ print_frame (struct ui_out *uiout,
}
if (print_what != SHORT_LOCATION
- && pc_p && (funname == NULL || sal.symtab == NULL))
+ && pc.has_value () && (funname == NULL || sal.symtab == NULL))
{
const char *lib
= solib_name_from_address (get_frame_program_space (frame),
@@ -1481,8 +1480,7 @@ info_frame_command_core (const frame_info_ptr &fi, bool selected_frame_p)
enum language funlang = language_unknown;
const char *pc_regname;
struct gdbarch *gdbarch;
- CORE_ADDR frame_pc;
- int frame_pc_p;
+ std::optional<CORE_ADDR> frame_pc;
/* Initialize it to avoid "may be used uninitialized" warning. */
CORE_ADDR caller_pc = 0;
int caller_pc_p = 0;
@@ -1503,7 +1501,7 @@ info_frame_command_core (const frame_info_ptr &fi, bool selected_frame_p)
get_frame_pc(). */
pc_regname = "pc";
- frame_pc_p = get_frame_pc_if_available (fi, &frame_pc);
+ frame_pc = get_frame_pc_if_available (fi);
func = get_frame_function (fi);
symtab_and_line sal = find_frame_sal (fi);
s = sal.symtab;
@@ -1525,9 +1523,9 @@ info_frame_command_core (const frame_info_ptr &fi, bool selected_frame_p)
funname = func_only.get ();
}
}
- else if (frame_pc_p)
+ else if (frame_pc.has_value ())
{
- bound_minimal_symbol msymbol = lookup_minimal_symbol_by_pc (frame_pc);
+ bound_minimal_symbol msymbol = lookup_minimal_symbol_by_pc (*frame_pc);
if (msymbol.minsym != NULL)
{
funname = msymbol.minsym->print_name ();
@@ -1548,7 +1546,7 @@ info_frame_command_core (const frame_info_ptr &fi, bool selected_frame_p)
gdb_puts (paddress (gdbarch, get_frame_base (fi)));
gdb_printf (":\n");
gdb_printf (" %s = ", pc_regname);
- if (frame_pc_p)
+ if (frame_pc.has_value ())
gdb_puts (paddress (gdbarch, get_frame_pc (fi)));
else
fputs_styled ("<unavailable>", metadata_style.style (), gdb_stdout);
@@ -2218,7 +2216,7 @@ iterate_over_block_locals (const struct block *b,
{
for (struct symbol *sym : block_iterator_range (b))
{
- switch (sym->aclass ())
+ switch (sym->loc_class ())
{
case LOC_CONST:
case LOC_CONST_BYTES:
@@ -2337,9 +2335,9 @@ print_frame_local_vars (const frame_info_ptr &frame,
{
struct print_variable_and_value_data cb_data;
const struct block *block;
- CORE_ADDR pc;
+ std::optional<CORE_ADDR> pc;
- if (!get_frame_pc_if_available (frame, &pc))
+ if (!(pc = get_frame_pc_if_available (frame)))
{
if (!quiet)
gdb_printf (stream,
@@ -2499,11 +2497,11 @@ print_frame_arg_vars (const frame_info_ptr &frame,
{
struct print_variable_and_value_data cb_data;
struct symbol *func;
- CORE_ADDR pc;
+ std::optional<CORE_ADDR> pc;
std::optional<compiled_regex> preg;
std::optional<compiled_regex> treg;
- if (!get_frame_pc_if_available (frame, &pc))
+ if (!(pc = get_frame_pc_if_available (frame)))
{
if (!quiet)
gdb_printf (stream,
@@ -3066,7 +3064,7 @@ frame_apply_level_cmd_completer (struct cmd_list_element *ignore,
/* Check if we're past a valid LEVEL already. */
if (levels.finished ()
- && cmd > text && !isspace (cmd[-1]))
+ && cmd > text && !c_isspace (cmd[-1]))
return;
/* We're past LEVELs, advance word point. */
@@ -3100,7 +3098,7 @@ frame_apply_cmd_completer (struct cmd_list_element *ignore,
return;
/* Check if we're past a valid COUNT already. */
- if (cmd > text && !isspace (cmd[-1]))
+ if (cmd > text && !c_isspace (cmd[-1]))
return;
/* We're past COUNT, advance word point. */
diff --git a/gdb/stap-probe.c b/gdb/stap-probe.c
index 3b692e2..6c15bce 100644
--- a/gdb/stap-probe.c
+++ b/gdb/stap-probe.c
@@ -39,7 +39,6 @@
#include "expop.h"
#include "gdbsupport/unordered_map.h"
-#include <ctype.h>
/* The name of the SystemTap section where we will find information about
the probes. */
@@ -575,14 +574,14 @@ stap_is_integer_prefix (struct gdbarch *gdbarch, const char *s,
if (r != NULL)
*r = "";
- return isdigit (*s) > 0;
+ return c_isdigit (*s) > 0;
}
for (p = t; *p != NULL; ++p)
{
size_t len = strlen (*p);
- if ((len == 0 && isdigit (*s))
+ if ((len == 0 && c_isdigit (*s))
|| (len > 0 && strncasecmp (s, *p, len) == 0))
{
/* Integers may or may not have a prefix. The "len == 0"
@@ -732,7 +731,7 @@ stap_parse_register_operand (struct stap_parse_info *p)
struct type *long_type = builtin_type (gdbarch)->builtin_long;
operation_up disp_op;
- if (isdigit (*p->arg))
+ if (c_isdigit (*p->arg))
{
/* The value of the displacement. */
long displacement;
@@ -767,14 +766,14 @@ stap_parse_register_operand (struct stap_parse_info *p)
start = p->arg;
/* We assume the register name is composed by letters and numbers. */
- while (isalnum (*p->arg))
+ while (c_isalnum (*p->arg))
++p->arg;
std::string regname (start, p->arg - start);
/* We only add the GDB's register prefix/suffix if we are dealing with
a numeric register. */
- if (isdigit (*start))
+ if (c_isdigit (*start))
{
if (gdb_reg_prefix != NULL)
regname = gdb_reg_prefix + regname;
@@ -921,7 +920,7 @@ stap_parse_single_operand (struct stap_parse_info *p)
if (p->inside_paren_p)
tmp = skip_spaces (tmp);
- while (isdigit (*tmp))
+ while (c_isdigit (*tmp))
{
/* We skip the digit here because we are only interested in
knowing what kind of unary operation this is. The digit
@@ -959,7 +958,7 @@ stap_parse_single_operand (struct stap_parse_info *p)
(std::move (result)));
}
}
- else if (isdigit (*p->arg))
+ else if (c_isdigit (*p->arg))
{
/* A temporary variable, needed for lookahead. */
const char *tmp = p->arg;
@@ -1042,7 +1041,7 @@ stap_parse_argument_conditionally (struct stap_parse_info *p)
expr::operation_up result;
if (*p->arg == '-' || *p->arg == '~' || *p->arg == '+' || *p->arg == '!'
- || isdigit (*p->arg)
+ || c_isdigit (*p->arg)
|| gdbarch_stap_is_single_operand (p->gdbarch, p->arg))
result = stap_parse_single_operand (p);
else if (*p->arg == '(')
@@ -1111,7 +1110,7 @@ stap_parse_argument_1 (struct stap_parse_info *p,
This loop shall continue until we run out of characters in the input,
or until we find a close-parenthesis, which means that we've reached
the end of a sub-expression. */
- while (*p->arg != '\0' && *p->arg != ')' && !isspace (*p->arg))
+ while (*p->arg != '\0' && *p->arg != ')' && !c_isspace (*p->arg))
{
const char *tmp_exp_buf;
enum exp_opcode opcode;
@@ -1270,8 +1269,8 @@ stap_probe::parse_arguments (struct gdbarch *gdbarch)
Where `N' can be [+,-][1,2,4,8]. This is not mandatory, so
we check it here. If we don't find it, go to the next
state. */
- if ((cur[0] == '-' && isdigit (cur[1]) && cur[2] == '@')
- || (isdigit (cur[0]) && cur[1] == '@'))
+ if ((cur[0] == '-' && c_isdigit (cur[1]) && cur[2] == '@')
+ || (c_isdigit (cur[0]) && cur[1] == '@'))
{
if (*cur == '-')
{
diff --git a/gdb/symfile-debug.c b/gdb/symfile-debug.c
index a5ff21e..705d8f7 100644
--- a/gdb/symfile-debug.c
+++ b/gdb/symfile-debug.c
@@ -193,7 +193,7 @@ objfile::map_symtabs_matching_filename
{
/* The callback to iterate_over_some_symtabs returns false to keep
going and true to continue, so we have to invert the result
- here, for expand_symtabs_matching. */
+ here, for search. */
bool result = !iterate_over_some_symtabs (name, real_path,
this->compunit_symtabs,
last_made,
@@ -204,14 +204,10 @@ objfile::map_symtabs_matching_filename
for (const auto &iter : qf)
{
- if (!iter->expand_symtabs_matching (this,
- match_one_filename,
- nullptr,
- nullptr,
- on_expansion,
- (SEARCH_GLOBAL_BLOCK
- | SEARCH_STATIC_BLOCK),
- SEARCH_ALL_DOMAINS))
+ if (!iter->search (this, match_one_filename, nullptr, nullptr,
+ on_expansion,
+ SEARCH_GLOBAL_BLOCK | SEARCH_STATIC_BLOCK,
+ SEARCH_ALL_DOMAINS))
{
retval = false;
break;
@@ -267,15 +263,11 @@ objfile::lookup_symbol (block_enum kind, const lookup_name_info &name,
for (const auto &iter : qf)
{
- if (!iter->expand_symtabs_matching (this,
- nullptr,
- &name,
- nullptr,
- search_one_symtab,
- kind == GLOBAL_BLOCK
- ? SEARCH_GLOBAL_BLOCK
- : SEARCH_STATIC_BLOCK,
- domain))
+ if (!iter->search (this, nullptr, &name, nullptr, search_one_symtab,
+ kind == GLOBAL_BLOCK
+ ? SEARCH_GLOBAL_BLOCK
+ : SEARCH_STATIC_BLOCK,
+ domain))
break;
}
@@ -311,28 +303,6 @@ objfile::dump ()
}
void
-objfile::expand_symtabs_for_function (const char *func_name)
-{
- if (debug_symfile)
- gdb_printf (gdb_stdlog,
- "qf->expand_symtabs_for_function (%s, \"%s\")\n",
- objfile_debug_name (this), func_name);
-
- lookup_name_info base_lookup (func_name, symbol_name_match_type::FULL);
- lookup_name_info lookup_name = base_lookup.make_ignore_params ();
-
- for (const auto &iter : qf)
- iter->expand_symtabs_matching (this,
- nullptr,
- &lookup_name,
- nullptr,
- nullptr,
- (SEARCH_GLOBAL_BLOCK
- | SEARCH_STATIC_BLOCK),
- SEARCH_FUNCTION_DOMAIN);
-}
-
-void
objfile::expand_all_symtabs ()
{
if (debug_symfile)
@@ -358,43 +328,35 @@ objfile::expand_symtabs_with_fullname (const char *fullname)
};
for (const auto &iter : qf)
- iter->expand_symtabs_matching (this,
- file_matcher,
- nullptr,
- nullptr,
- nullptr,
- (SEARCH_GLOBAL_BLOCK
- | SEARCH_STATIC_BLOCK),
- SEARCH_ALL_DOMAINS);
+ iter->search (this, file_matcher, nullptr, nullptr, nullptr,
+ SEARCH_GLOBAL_BLOCK | SEARCH_STATIC_BLOCK,
+ SEARCH_ALL_DOMAINS);
}
bool
-objfile::expand_symtabs_matching
- (expand_symtabs_file_matcher file_matcher,
- const lookup_name_info *lookup_name,
- expand_symtabs_symbol_matcher symbol_matcher,
- expand_symtabs_expansion_listener expansion_notify,
- block_search_flags search_flags,
- domain_search_flags domain,
- expand_symtabs_lang_matcher lang_matcher)
-{
- /* This invariant is documented in quick-functions.h. */
+objfile::search (search_symtabs_file_matcher file_matcher,
+ const lookup_name_info *lookup_name,
+ search_symtabs_symbol_matcher symbol_matcher,
+ search_symtabs_expansion_listener listener,
+ block_search_flags search_flags,
+ domain_search_flags domain,
+ search_symtabs_lang_matcher lang_matcher)
+{
+ /* This invariant is documented in quick-symbol.h. */
gdb_assert (lookup_name != nullptr || symbol_matcher == nullptr);
if (debug_symfile)
gdb_printf (gdb_stdlog,
- "qf->expand_symtabs_matching (%s, %s, %s, %s, %s)\n",
+ "qf->search (%s, %s, %s, %s, %s)\n",
objfile_debug_name (this),
host_address_to_string (&file_matcher),
host_address_to_string (&symbol_matcher),
- host_address_to_string (&expansion_notify),
+ host_address_to_string (&listener),
domain_name (domain).c_str ());
for (const auto &iter : qf)
- if (!iter->expand_symtabs_matching (this, file_matcher, lookup_name,
- symbol_matcher, expansion_notify,
- search_flags, domain,
- lang_matcher))
+ if (!iter->search (this, file_matcher, lookup_name, symbol_matcher,
+ listener, search_flags, domain, lang_matcher))
return false;
return true;
}
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 0e47f50..98cb637 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -58,7 +58,6 @@
#include <sys/types.h>
#include <fcntl.h>
#include <sys/stat.h>
-#include <ctype.h>
#include <chrono>
#include <algorithm>
@@ -835,9 +834,9 @@ init_entry_point_info (struct objfile *objfile)
= gdbarch_addr_bits_remove (objfile->arch (), entry_point);
found = 0;
- for (obj_section *osect : objfile->sections ())
+ for (obj_section &osect : objfile->sections ())
{
- struct bfd_section *sect = osect->the_bfd_section;
+ struct bfd_section *sect = osect.the_bfd_section;
if (entry_point >= bfd_section_vma (sect)
&& entry_point < (bfd_section_vma (sect)
@@ -2748,7 +2747,7 @@ set_ext_lang_command (const char *args,
error (_("'%s': Filename extension must begin with '.'"), ext_args.c_str ());
/* Find end of first arg. */
- while (*end != '\0' && !isspace (*end))
+ while (*end != '\0' && !c_isspace (*end))
end++;
if (*end == '\0')
@@ -3007,9 +3006,9 @@ static void
overlay_invalidate_all (program_space *pspace)
{
for (objfile *objfile : pspace->objfiles ())
- for (obj_section *sect : objfile->sections ())
- if (section_is_overlay (sect))
- sect->ovly_mapped = -1;
+ for (obj_section &sect : objfile->sections ())
+ if (section_is_overlay (&sect))
+ sect.ovly_mapped = -1;
}
/* Function: section_is_mapped (SECTION)
@@ -3183,18 +3182,18 @@ find_pc_overlay (CORE_ADDR pc)
if (overlay_debugging)
{
for (objfile *objfile : current_program_space->objfiles ())
- for (obj_section *osect : objfile->sections ())
- if (section_is_overlay (osect))
+ for (obj_section &osect : objfile->sections ())
+ if (section_is_overlay (&osect))
{
- if (pc_in_mapped_range (pc, osect))
+ if (pc_in_mapped_range (pc, &osect))
{
- if (section_is_mapped (osect))
- return osect;
+ if (section_is_mapped (&osect))
+ return &osect;
else
- best_match = osect;
+ best_match = &osect;
}
- else if (pc_in_unmapped_range (pc, osect))
- best_match = osect;
+ else if (pc_in_unmapped_range (pc, &osect))
+ best_match = &osect;
}
}
return best_match;
@@ -3210,9 +3209,9 @@ find_pc_mapped_section (CORE_ADDR pc)
if (overlay_debugging)
{
for (objfile *objfile : current_program_space->objfiles ())
- for (obj_section *osect : objfile->sections ())
- if (pc_in_mapped_range (pc, osect) && section_is_mapped (osect))
- return osect;
+ for (obj_section &osect : objfile->sections ())
+ if (pc_in_mapped_range (pc, &osect) && section_is_mapped (&osect))
+ return &osect;
}
return NULL;
@@ -3229,18 +3228,18 @@ list_overlays_command (const char *args, int from_tty)
if (overlay_debugging)
{
for (objfile *objfile : current_program_space->objfiles ())
- for (obj_section *osect : objfile->sections ())
- if (section_is_mapped (osect))
+ for (obj_section &osect : objfile->sections ())
+ if (section_is_mapped (&osect))
{
struct gdbarch *gdbarch = objfile->arch ();
const char *name;
bfd_vma lma, vma;
int size;
- vma = bfd_section_vma (osect->the_bfd_section);
- lma = bfd_section_lma (osect->the_bfd_section);
- size = bfd_section_size (osect->the_bfd_section);
- name = bfd_section_name (osect->the_bfd_section);
+ vma = bfd_section_vma (osect.the_bfd_section);
+ lma = bfd_section_lma (osect.the_bfd_section);
+ size = bfd_section_size (osect.the_bfd_section);
+ name = bfd_section_name (osect.the_bfd_section);
gdb_printf ("Section %s, loaded at ", name);
gdb_puts (paddress (gdbarch, lma));
@@ -3275,27 +3274,27 @@ map_overlay_command (const char *args, int from_tty)
/* First, find a section matching the user supplied argument. */
for (objfile *obj_file : current_program_space->objfiles ())
- for (obj_section *sec : obj_file->sections ())
- if (!strcmp (bfd_section_name (sec->the_bfd_section), args))
+ for (obj_section &sec : obj_file->sections ())
+ if (!strcmp (bfd_section_name (sec.the_bfd_section), args))
{
/* Now, check to see if the section is an overlay. */
- if (!section_is_overlay (sec))
+ if (!section_is_overlay (&sec))
continue; /* not an overlay section */
/* Mark the overlay as "mapped". */
- sec->ovly_mapped = 1;
+ sec.ovly_mapped = 1;
/* Next, make a pass and unmap any sections that are
overlapped by this new section: */
for (objfile *objfile2 : current_program_space->objfiles ())
- for (obj_section *sec2 : objfile2->sections ())
- if (sec2->ovly_mapped && sec != sec2 && sections_overlap (sec,
- sec2))
+ for (obj_section &sec2 : objfile2->sections ())
+ if (sec2.ovly_mapped && &sec != &sec2 && sections_overlap (&sec,
+ &sec2))
{
if (info_verbose)
gdb_printf (_("Note: section %s unmapped by overlap\n"),
- bfd_section_name (sec2->the_bfd_section));
- sec2->ovly_mapped = 0; /* sec2 overlaps sec: unmap sec2. */
+ bfd_section_name (sec2.the_bfd_section));
+ sec2.ovly_mapped = 0; /* sec2 overlaps sec: unmap sec2. */
}
return;
}
@@ -3319,12 +3318,12 @@ unmap_overlay_command (const char *args, int from_tty)
/* First, find a section matching the user supplied argument. */
for (objfile *objfile : current_program_space->objfiles ())
- for (obj_section *sec : objfile->sections ())
- if (!strcmp (bfd_section_name (sec->the_bfd_section), args))
+ for (obj_section &sec : objfile->sections ())
+ if (!strcmp (bfd_section_name (sec.the_bfd_section), args))
{
- if (!sec->ovly_mapped)
+ if (!sec.ovly_mapped)
error (_("Section %s is not mapped"), args);
- sec->ovly_mapped = 0;
+ sec.ovly_mapped = 0;
return;
}
error (_("No overlay section called %s"), args);
@@ -3578,17 +3577,17 @@ simple_overlay_update (struct obj_section *osect)
/* Now may as well update all sections, even if only one was requested. */
for (objfile *objfile : current_program_space->objfiles ())
- for (obj_section *sect : objfile->sections ())
- if (section_is_overlay (sect))
+ for (obj_section &sect : objfile->sections ())
+ if (section_is_overlay (&sect))
{
int i;
- asection *bsect = sect->the_bfd_section;
+ asection *bsect = sect.the_bfd_section;
for (i = 0; i < cache_novlys; i++)
if (cache_ovly_table[i][VMA] == bfd_section_vma (bsect)
&& cache_ovly_table[i][LMA] == bfd_section_lma (bsect))
{ /* obj_section matches i'th entry in ovly_table. */
- sect->ovly_mapped = cache_ovly_table[i][MAPPED];
+ sect.ovly_mapped = cache_ovly_table[i][MAPPED];
break; /* finished with inner for loop: break out. */
}
}
@@ -3756,31 +3755,6 @@ symfile_free_objfile (struct objfile *objfile)
objfile->pspace ()->remove_target_sections (objfile);
}
-/* Wrapper around the quick_symbol_functions expand_symtabs_matching "method".
- Expand all symtabs that match the specified criteria.
- See quick_symbol_functions.expand_symtabs_matching for details. */
-
-bool
-expand_symtabs_matching (expand_symtabs_file_matcher file_matcher,
- const lookup_name_info &lookup_name,
- expand_symtabs_symbol_matcher symbol_matcher,
- expand_symtabs_expansion_listener expansion_notify,
- block_search_flags search_flags,
- domain_search_flags domain,
- expand_symtabs_lang_matcher lang_matcher)
-{
- for (objfile *objfile : current_program_space->objfiles ())
- if (!objfile->expand_symtabs_matching (file_matcher,
- &lookup_name,
- symbol_matcher,
- expansion_notify,
- search_flags,
- domain,
- lang_matcher))
- return false;
- return true;
-}
-
/* Wrapper around the quick_symbol_functions map_symbol_filenames "method".
Map function FUN over every file.
See quick_symbol_functions.map_symbol_filenames for details. */
diff --git a/gdb/symfile.h b/gdb/symfile.h
index ee9bc11..06509a6 100644
--- a/gdb/symfile.h
+++ b/gdb/symfile.h
@@ -345,15 +345,6 @@ symfile_segment_data_up get_symfile_segment_data (bfd *abfd);
extern scoped_restore_tmpl<int> increment_reading_symtab (void);
-bool expand_symtabs_matching
- (expand_symtabs_file_matcher file_matcher,
- const lookup_name_info &lookup_name,
- expand_symtabs_symbol_matcher symbol_matcher,
- expand_symtabs_expansion_listener expansion_notify,
- block_search_flags search_flags,
- domain_search_flags kind,
- expand_symtabs_lang_matcher lang_matcher = nullptr);
-
void map_symbol_filenames (symbol_filename_listener fun, bool need_fullname);
/* Target-agnostic function to load the sections of an executable into memory.
diff --git a/gdb/symmisc.c b/gdb/symmisc.c
index 0cb6a1b..e43fafa 100644
--- a/gdb/symmisc.c
+++ b/gdb/symmisc.c
@@ -537,7 +537,7 @@ print_symbol (struct gdbarch *gdbarch, struct symbol *symbol,
}
else
{
- if (symbol->aclass () == LOC_TYPEDEF)
+ if (symbol->loc_class () == LOC_TYPEDEF)
gdb_printf (outfile, "typedef ");
if (symbol->type ())
{
@@ -552,7 +552,7 @@ print_symbol (struct gdbarch *gdbarch, struct symbol *symbol,
else
gdb_printf (outfile, "%s ", symbol->print_name ());
- switch (symbol->aclass ())
+ switch (symbol->loc_class ())
{
case LOC_CONST:
gdb_printf (outfile, "const %s (%s)",
@@ -646,7 +646,7 @@ print_symbol (struct gdbarch *gdbarch, struct symbol *symbol,
default:
gdb_printf (outfile, "botched symbol class %x",
- symbol->aclass ());
+ symbol->loc_class ());
break;
}
}
@@ -918,7 +918,7 @@ maintenance_expand_symtabs (const char *args, int from_tty)
for (struct program_space *pspace : program_spaces)
for (objfile *objfile : pspace->objfiles ())
- objfile->expand_symtabs_matching
+ objfile->search
([&] (const char *filename, bool basenames)
{
/* KISS: Only apply the regexp to the complete file name. */
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 302f4eb..896b81d 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -56,7 +56,6 @@
#include <sys/types.h>
#include <fcntl.h>
#include <sys/stat.h>
-#include <ctype.h>
#include "cp-abi.h"
#include "cp-support.h"
#include "observable.h"
@@ -123,41 +122,6 @@ struct main_info
static const registry<program_space>::key<main_info> main_progspace_key;
-/* Symbol lookup is not reentrant (though this is not an intrinsic
- restriction). Keep track of whether a symbol lookup is active, to be able
- to detect reentrancy. */
-static bool in_symbol_lookup;
-
-/* Struct to mark that a symbol lookup is active for the duration of its
- lifetime. */
-
-struct enter_symbol_lookup
-{
- enter_symbol_lookup ()
- {
- /* Ensure that the current language has been set. Normally the
- language is set lazily. However, when performing a symbol lookup,
- this could result in a recursive call into the lookup code in some
- cases. Set it now to ensure that this does not happen. */
- get_current_language ();
-
- /* Detect symbol lookup reentrance. */
- gdb_assert (!in_symbol_lookup);
-
- in_symbol_lookup = true;
- }
-
- ~enter_symbol_lookup ()
- {
- /* Sanity check. */
- gdb_assert (in_symbol_lookup);
-
- in_symbol_lookup = false;
- }
-
- DISABLE_COPY_AND_ASSIGN (enter_symbol_lookup);
-};
-
/* The default symbol cache size.
There is no extra cpu cost for large N (except when flushing the cache,
which is rare). The value here is just a first attempt. A better default
@@ -1780,7 +1744,7 @@ fixup_symbol_section (struct symbol *sym, struct objfile *objfile)
index without doing the check that is done by the wrapper macros
like SECT_OFF_TEXT. */
int fallback;
- switch (sym->aclass ())
+ switch (sym->loc_class ())
{
case LOC_STATIC:
fallback = objfile->sect_index_data;
@@ -1846,18 +1810,18 @@ fixup_symbol_section (struct symbol *sym, struct objfile *objfile)
this reason, we still attempt a lookup by name prior to doing
a search of the section table. */
- for (obj_section *s : objfile->sections ())
+ for (obj_section &s : objfile->sections ())
{
- if ((bfd_section_flags (s->the_bfd_section) & SEC_ALLOC) == 0)
+ if ((bfd_section_flags (s.the_bfd_section) & SEC_ALLOC) == 0)
continue;
- int idx = s - objfile->sections_start;
+ int idx = &s - objfile->sections_start;
CORE_ADDR offset = objfile->section_offsets[idx];
if (fallback == -1)
fallback = idx;
- if (s->addr () - offset <= addr && addr < s->endaddr () - offset)
+ if (s.addr () - offset <= addr && addr < s.endaddr () - offset)
{
sym->set_section_index (idx);
return;
@@ -2286,8 +2250,6 @@ lookup_symbol_in_block (const char *name, symbol_name_match_type match_type,
const struct block *block,
const domain_search_flags domain)
{
- enter_symbol_lookup tmp;
-
struct symbol *sym;
if (symbol_lookup_debug)
@@ -2323,8 +2285,6 @@ lookup_global_symbol_from_objfile (struct objfile *main_objfile,
const char *name,
const domain_search_flags domain)
{
- enter_symbol_lookup tmp;
-
gdb_assert (block_index == GLOBAL_BLOCK || block_index == STATIC_BLOCK);
for (objfile *objfile : main_objfile->separate_debug_objfiles ())
@@ -2357,44 +2317,26 @@ lookup_symbol_in_objfile_symtabs (struct objfile *objfile,
block_index == GLOBAL_BLOCK ? "GLOBAL_BLOCK" : "STATIC_BLOCK",
name, domain_name (domain).c_str ());
- struct block_symbol other;
- other.symbol = NULL;
+ lookup_name_info lookup_name (name, symbol_name_match_type::FULL);
+ best_symbol_tracker accum;
for (compunit_symtab *cust : objfile->compunits ())
{
const struct blockvector *bv;
const struct block *block;
- struct block_symbol result;
bv = cust->blockvector ();
block = bv->block (block_index);
- result.symbol = block_lookup_symbol_primary (block, name, domain);
- result.block = block;
- if (result.symbol == NULL)
- continue;
- if (best_symbol (result.symbol, domain))
- {
- other = result;
- break;
- }
- if (result.symbol->matches (domain))
- {
- struct symbol *better
- = better_symbol (other.symbol, result.symbol, domain);
- if (better != other.symbol)
- {
- other.symbol = better;
- other.block = block;
- }
- }
+ if (accum.search (cust, block, lookup_name, domain))
+ break;
}
- if (other.symbol != NULL)
+ if (accum.currently_best.symbol != nullptr)
{
symbol_lookup_debug_printf_v
("lookup_symbol_in_objfile_symtabs (...) = %s (block %s)",
- host_address_to_string (other.symbol),
- host_address_to_string (other.block));
- return other;
+ host_address_to_string (accum.currently_best.symbol),
+ host_address_to_string (accum.currently_best.block));
+ return accum.currently_best;
}
symbol_lookup_debug_printf_v
@@ -2468,11 +2410,6 @@ lookup_symbol_via_quick_fns (struct objfile *objfile,
enum block_enum block_index, const char *name,
const domain_search_flags domain)
{
- struct compunit_symtab *cust;
- const struct blockvector *bv;
- const struct block *block;
- struct block_symbol result;
-
symbol_lookup_debug_printf_v
("lookup_symbol_via_quick_fns (%s, %s, %s, %s)",
objfile_debug_name (objfile),
@@ -2480,27 +2417,36 @@ lookup_symbol_via_quick_fns (struct objfile *objfile,
name, domain_name (domain).c_str ());
lookup_name_info lookup_name (name, symbol_name_match_type::FULL);
- cust = objfile->lookup_symbol (block_index, lookup_name, domain);
- if (cust == NULL)
+ best_symbol_tracker accum;
+ auto searcher = [&] (compunit_symtab *symtab)
+ {
+ const struct blockvector *bv = symtab->blockvector ();
+ const struct block *block = bv->block (block_index);
+ /* If the accumulator finds a best symbol, end the search by
+ returning false; otherwise keep going by returning true. */
+ return !accum.search (symtab, block, lookup_name, domain);
+ };
+
+ objfile->search (nullptr, &lookup_name, nullptr, searcher,
+ block_index == GLOBAL_BLOCK
+ ? SEARCH_GLOBAL_BLOCK
+ : SEARCH_STATIC_BLOCK,
+ domain);
+ if (accum.best_symtab == nullptr)
{
symbol_lookup_debug_printf_v
("lookup_symbol_via_quick_fns (...) = NULL");
return {};
}
-
- bv = cust->blockvector ();
- block = bv->block (block_index);
- result.symbol = block_lookup_symbol (block, lookup_name, domain);
- if (result.symbol == NULL)
- error_in_psymtab_expansion (block_index, name, cust);
+ if (accum.currently_best.symbol == nullptr)
+ error_in_psymtab_expansion (block_index, name, accum.best_symtab);
symbol_lookup_debug_printf_v
("lookup_symbol_via_quick_fns (...) = %s (block %s)",
- host_address_to_string (result.symbol),
- host_address_to_string (block));
+ host_address_to_string (accum.currently_best.symbol),
+ host_address_to_string (accum.currently_best.block));
- result.block = block;
- return result;
+ return accum.currently_best;
}
/* See language.h. */
@@ -2600,24 +2546,12 @@ lookup_symbol_in_objfile (struct objfile *objfile, enum block_enum block_index,
? "GLOBAL_BLOCK" : "STATIC_BLOCK",
name, domain_name (domain).c_str ());
- result = lookup_symbol_in_objfile_symtabs (objfile, block_index,
- name, domain);
- if (result.symbol != NULL)
- {
- symbol_lookup_debug_printf
- ("lookup_symbol_in_objfile (...) = %s (in symtabs)",
- host_address_to_string (result.symbol));
- return result;
- }
-
result = lookup_symbol_via_quick_fns (objfile, block_index,
name, domain);
- symbol_lookup_debug_printf ("lookup_symbol_in_objfile (...) = %s%s",
+ symbol_lookup_debug_printf ("lookup_symbol_in_objfile (...) = %s",
result.symbol != NULL
? host_address_to_string (result.symbol)
- : "NULL",
- result.symbol != NULL ? " (via quick fns)"
- : "");
+ : "NULL");
return result;
}
@@ -2650,13 +2584,10 @@ lookup_global_or_static_symbol (const char *name,
return result;
}
- enter_symbol_lookup tmp;
-
/* Do a global search (of global blocks, heh). */
if (result.symbol == NULL)
- gdbarch_iterate_over_objfiles_in_search_order
- (objfile != NULL ? objfile->arch () : current_inferior ()->arch (),
- [&result, block_index, name, domain] (struct objfile *objfile_iter)
+ current_program_space->iterate_over_objfiles_in_search_order
+ ([&result, block_index, name, domain] (struct objfile *objfile_iter)
{
result = lookup_symbol_in_objfile (objfile_iter, block_index,
name, domain);
@@ -2768,35 +2699,6 @@ basic_lookup_transparent_type_quick (struct objfile *objfile,
return sym->type ();
}
-/* Subroutine of basic_lookup_transparent_type to simplify it.
- Look up the non-opaque definition of NAME in BLOCK_INDEX of OBJFILE.
- BLOCK_INDEX is either GLOBAL_BLOCK or STATIC_BLOCK. */
-
-static struct type *
-basic_lookup_transparent_type_1 (struct objfile *objfile,
- enum block_enum block_index,
- domain_search_flags flags,
- const lookup_name_info &name)
-{
- const struct blockvector *bv;
- const struct block *block;
- const struct symbol *sym;
-
- for (compunit_symtab *cust : objfile->compunits ())
- {
- bv = cust->blockvector ();
- block = bv->block (block_index);
- sym = block_find_symbol (block, name, flags, nullptr);
- if (sym != nullptr)
- {
- gdb_assert (!TYPE_IS_OPAQUE (sym->type ()));
- return sym->type ();
- }
- }
-
- return NULL;
-}
-
/* The standard implementation of lookup_transparent_type. This code
was modeled on lookup_symbol -- the parts not relevant to looking
up types were just left out. In particular it's assumed here that
@@ -2810,19 +2712,7 @@ basic_lookup_transparent_type (const char *name, domain_search_flags flags)
lookup_name_info lookup_name (name, symbol_name_match_type::FULL);
- /* Now search all the global symbols. Do the symtab's first, then
- check the psymtab's. If a psymtab indicates the existence
- of the desired name as a global, then do psymtab-to-symtab
- conversion on the fly and return the found symbol. */
-
- for (objfile *objfile : current_program_space->objfiles ())
- {
- t = basic_lookup_transparent_type_1 (objfile, GLOBAL_BLOCK,
- flags, lookup_name);
- if (t)
- return t;
- }
-
+ /* Search all the global symbols. */
for (objfile *objfile : current_program_space->objfiles ())
{
t = basic_lookup_transparent_type_quick (objfile, GLOBAL_BLOCK,
@@ -2831,21 +2721,8 @@ basic_lookup_transparent_type (const char *name, domain_search_flags flags)
return t;
}
- /* Now search the static file-level symbols.
- Not strictly correct, but more useful than an error.
- Do the symtab's first, then
- check the psymtab's. If a psymtab indicates the existence
- of the desired name as a file-level static, then do psymtab-to-symtab
- conversion on the fly and return the found symbol. */
-
- for (objfile *objfile : current_program_space->objfiles ())
- {
- t = basic_lookup_transparent_type_1 (objfile, STATIC_BLOCK,
- flags, lookup_name);
- if (t)
- return t;
- }
-
+ /* Now search the static file-level symbols. Not strictly correct,
+ but more useful than an error. */
for (objfile *objfile : current_program_space->objfiles ())
{
t = basic_lookup_transparent_type_quick (objfile, STATIC_BLOCK,
@@ -3038,7 +2915,7 @@ find_symbol_at_address (CORE_ADDR address)
for (struct symbol *sym : block_iterator_range (b))
{
- if (sym->aclass () == LOC_STATIC
+ if (sym->loc_class () == LOC_STATIC
&& sym->value_address () == addr)
return sym;
}
@@ -4310,7 +4187,7 @@ find_function_alias_target (bound_minimal_symbol msymbol)
symbol *sym = find_pc_function (func_addr);
if (sym != NULL
- && sym->aclass () == LOC_BLOCK
+ && sym->loc_class () == LOC_BLOCK
&& sym->value_block ()->entry_pc () == func_addr)
return sym;
@@ -4333,7 +4210,7 @@ operator_chars (const char *p, const char **end)
/* Don't get faked out by `operator' being part of a longer
identifier. */
- if (isalpha (*p) || *p == '_' || *p == '$' || *p == '\0')
+ if (c_isalpha (*p) || *p == '_' || *p == '$' || *p == '\0')
return *end;
/* Allow some whitespace between `operator' and the operator symbol. */
@@ -4342,11 +4219,11 @@ operator_chars (const char *p, const char **end)
/* Recognize 'operator TYPENAME'. */
- if (isalpha (*p) || *p == '_' || *p == '$')
+ if (c_isalpha (*p) || *p == '_' || *p == '$')
{
const char *q = p + 1;
- while (isalnum (*q) || *q == '_' || *q == '$')
+ while (c_isalnum (*q) || *q == '_' || *q == '$')
q++;
*end = q;
return p;
@@ -4902,11 +4779,11 @@ global_symbol_searcher::expand_symtabs
{
return file_matches (filename, m_filenames, basenames);
};
- expand_symtabs_file_matcher file_matcher = nullptr;
+ search_symtabs_file_matcher file_matcher = nullptr;
if (!m_filenames.empty ())
file_matcher = do_file_match;
- objfile->expand_symtabs_matching
+ objfile->search
(file_matcher,
&lookup_name_info::match_any (),
[&] (const char *symname)
@@ -5021,12 +4898,12 @@ global_symbol_searcher::add_matching_symbols
if ((kind & SEARCH_VAR_DOMAIN) != 0)
{
- if (sym->aclass () == LOC_UNRESOLVED
+ if (sym->loc_class () == LOC_UNRESOLVED
/* LOC_CONST can be used for more than
just enums, e.g., c++ static const
members. We only want to skip enums
here. */
- || (sym->aclass () == LOC_CONST
+ || (sym->loc_class () == LOC_CONST
&& (sym->type ()->code () == TYPE_CODE_ENUM)))
continue;
}
@@ -5120,7 +4997,7 @@ global_symbol_searcher::search () const
int fix = -1; /* -1 means ok; otherwise number of
spaces needed. */
- if (isalpha (*opname) || *opname == '_' || *opname == '$')
+ if (c_isalpha (*opname) || *opname == '_' || *opname == '$')
{
/* There should 1 space between 'operator' and 'TYPENAME'. */
if (opname[-1] != ' ' || opname[-2] == ' ')
@@ -5234,7 +5111,7 @@ symbol_to_info_string (struct symbol *sym, int block)
string_file tmp_stream;
type_print (sym->type (),
- (sym->aclass () == LOC_TYPEDEF
+ (sym->loc_class () == LOC_TYPEDEF
? "" : sym->print_name ()),
&tmp_stream, 0);
@@ -5602,7 +5479,7 @@ rbreak_command (const char *regexp, int from_tty)
if (colon && *(colon + 1) != ':')
{
int colon_index = colon - regexp;
- while (colon_index > 0 && isspace (regexp[colon_index - 1]))
+ while (colon_index > 0 && c_isspace (regexp[colon_index - 1]))
--colon_index;
file_name = make_unique_xstrndup (regexp, colon_index);
@@ -5753,7 +5630,7 @@ completion_list_add_symbol (completion_tracker &tracker,
the msymbol name and removes the msymbol name from the completion
tracker. */
if (sym->language () == language_cplus
- && sym->aclass () == LOC_BLOCK)
+ && sym->loc_class () == LOC_BLOCK)
{
/* The call to canonicalize returns the empty string if the input
string is already in canonical form, thanks to this we don't
@@ -5854,7 +5731,7 @@ language_search_unquoted_string (const char *text, const char *p)
{
for (; p > text; --p)
{
- if (isalnum (p[-1]) || p[-1] == '_' || p[-1] == '\0')
+ if (c_isalnum (p[-1]) || p[-1] == '_' || p[-1] == '\0')
continue;
else
{
@@ -5874,7 +5751,7 @@ language_search_unquoted_string (const char *text, const char *p)
Unfortunately we have to find it now to decide. */
while (t > text)
- if (isalnum (t[-1]) || t[-1] == '_' ||
+ if (c_isalnum (t[-1]) || t[-1] == '_' ||
t[-1] == ' ' || t[-1] == ':' ||
t[-1] == '(' || t[-1] == ')')
--t;
@@ -5898,7 +5775,7 @@ completion_list_add_fields (completion_tracker &tracker,
const lookup_name_info &lookup_name,
const char *text, const char *word)
{
- if (sym->aclass () == LOC_TYPEDEF)
+ if (sym->loc_class () == LOC_TYPEDEF)
{
struct type *t = sym->type ();
enum type_code c = t->code ();
@@ -5950,7 +5827,7 @@ symbol_is_function_or_method (minimal_symbol *msymbol)
bound_minimal_symbol
find_gnu_ifunc (const symbol *sym)
{
- if (sym->aclass () != LOC_BLOCK)
+ if (sym->loc_class () != LOC_BLOCK)
return {};
lookup_name_info lookup_name (sym->search_name (),
@@ -6082,7 +5959,7 @@ default_collect_symbol_completion_matches_break_on
which are in symbols. */
while (p > text)
{
- if (isalnum (p[-1]) || p[-1] == '_' || p[-1] == '\0'
+ if (c_isalnum (p[-1]) || p[-1] == '_' || p[-1] == '\0'
|| p[-1] == ':' || strchr (break_on, p[-1]) != NULL)
--p;
else
@@ -6122,25 +5999,20 @@ default_collect_symbol_completion_matches_break_on
/* Add completions for all currently loaded symbol tables. */
for (objfile *objfile : current_program_space->objfiles ())
{
- for (compunit_symtab *cust : objfile->compunits ())
- add_symtab_completions (cust, tracker, mode, lookup_name,
- sym_text, word, code);
- }
-
- /* Look through the partial symtabs for all symbols which begin by
- matching SYM_TEXT. Expand all CUs that you find to the list. */
- expand_symtabs_matching (NULL,
- lookup_name,
- NULL,
- [&] (compunit_symtab *symtab) /* expansion notify */
- {
- add_symtab_completions (symtab,
- tracker, mode, lookup_name,
- sym_text, word, code);
- return true;
- },
- SEARCH_GLOBAL_BLOCK | SEARCH_STATIC_BLOCK,
- SEARCH_ALL_DOMAINS);
+ /* Look through the partial symtabs for all symbols which begin by
+ matching SYM_TEXT. Expand all CUs that you find to the list. */
+ objfile->search
+ (nullptr, &lookup_name, nullptr,
+ [&] (compunit_symtab *symtab)
+ {
+ add_symtab_completions (symtab,
+ tracker, mode, lookup_name,
+ sym_text, word, code);
+ return true;
+ },
+ SEARCH_GLOBAL_BLOCK | SEARCH_STATIC_BLOCK,
+ SEARCH_ALL_DOMAINS);
+ }
/* Search upwards from currently selected frame (so that we can
complete on local vars). Also catch fields of types defined in
@@ -6575,9 +6447,8 @@ find_main_name (void)
/* Try to find language for main in psymtabs. */
bool symbol_found_p = false;
- gdbarch_iterate_over_objfiles_in_search_order
- (current_inferior ()->arch (),
- [&symbol_found_p, pspace] (objfile *obj)
+ current_program_space->iterate_over_objfiles_in_search_order
+ ([&symbol_found_p, pspace] (objfile *obj)
{
language lang
= obj->lookup_global_symbol_language ("main",
@@ -6629,13 +6500,13 @@ main_language (void)
/* The next index to hand out in response to a registration request. */
-static int next_aclass_value = LOC_FINAL_VALUE;
+static int next_loc_class_value = LOC_FINAL_VALUE;
-/* The maximum number of "aclass" registrations we support. This is
+/* The maximum number of "loc_class" registrations we support. This is
constant for convenience. */
#define MAX_SYMBOL_IMPLS (LOC_FINAL_VALUE + 11)
-/* The objects representing the various "aclass" values. The elements
+/* The objects representing the various "loc_class" values. The elements
from 0 up to LOC_FINAL_VALUE-1 represent themselves, and subsequent
elements are those registered at gdb initialization time. */
@@ -6648,22 +6519,22 @@ gdb::array_view<const struct symbol_impl> symbol_impls (symbol_impl);
/* Make sure we saved enough room in struct symbol. */
-static_assert (MAX_SYMBOL_IMPLS <= (1 << SYMBOL_ACLASS_BITS));
+static_assert (MAX_SYMBOL_IMPLS <= (1 << SYMBOL_LOC_CLASS_BITS));
-/* Register a computed symbol type. ACLASS must be LOC_COMPUTED. OPS
+/* Register a computed symbol type. LOC_CLASS must be LOC_COMPUTED. OPS
is the ops vector associated with this index. This returns the new
- index, which should be used as the aclass_index field for symbols
+ index, which should be used as the loc_class_index field for symbols
of this type. */
int
-register_symbol_computed_impl (enum address_class aclass,
+register_symbol_computed_impl (location_class loc_class,
const struct symbol_computed_ops *ops)
{
- int result = next_aclass_value++;
+ int result = next_loc_class_value++;
- gdb_assert (aclass == LOC_COMPUTED);
+ gdb_assert (loc_class == LOC_COMPUTED);
gdb_assert (result < MAX_SYMBOL_IMPLS);
- symbol_impl[result].aclass = aclass;
+ symbol_impl[result].loc_class = loc_class;
symbol_impl[result].ops_computed = ops;
/* Sanity check OPS. */
@@ -6676,20 +6547,20 @@ register_symbol_computed_impl (enum address_class aclass,
return result;
}
-/* Register a function with frame base type. ACLASS must be LOC_BLOCK.
+/* Register a function with frame base type. LOC_CLASS must be LOC_BLOCK.
OPS is the ops vector associated with this index. This returns the
- new index, which should be used as the aclass_index field for symbols
+ new index, which should be used as the loc_class_index field for symbols
of this type. */
int
-register_symbol_block_impl (enum address_class aclass,
+register_symbol_block_impl (location_class loc_class,
const struct symbol_block_ops *ops)
{
- int result = next_aclass_value++;
+ int result = next_loc_class_value++;
- gdb_assert (aclass == LOC_BLOCK);
+ gdb_assert (loc_class == LOC_BLOCK);
gdb_assert (result < MAX_SYMBOL_IMPLS);
- symbol_impl[result].aclass = aclass;
+ symbol_impl[result].loc_class = loc_class;
symbol_impl[result].ops_block = ops;
/* Sanity check OPS. */
@@ -6700,35 +6571,33 @@ register_symbol_block_impl (enum address_class aclass,
return result;
}
-/* Register a register symbol type. ACLASS must be LOC_REGISTER or
+/* Register a register symbol type. LOC_CLASS must be LOC_REGISTER or
LOC_REGPARM_ADDR. OPS is the register ops vector associated with
this index. This returns the new index, which should be used as
- the aclass_index field for symbols of this type. */
+ the loc_class_index field for symbols of this type. */
int
-register_symbol_register_impl (enum address_class aclass,
+register_symbol_register_impl (location_class loc_class,
const struct symbol_register_ops *ops)
{
- int result = next_aclass_value++;
+ int result = next_loc_class_value++;
- gdb_assert (aclass == LOC_REGISTER || aclass == LOC_REGPARM_ADDR);
+ gdb_assert (loc_class == LOC_REGISTER || loc_class == LOC_REGPARM_ADDR);
gdb_assert (result < MAX_SYMBOL_IMPLS);
- symbol_impl[result].aclass = aclass;
+ symbol_impl[result].loc_class = loc_class;
symbol_impl[result].ops_register = ops;
return result;
}
/* Initialize elements of 'symbol_impl' for the constants in enum
- address_class. */
+ location_class. */
static void
initialize_ordinary_address_classes (void)
{
- int i;
-
- for (i = 0; i < LOC_FINAL_VALUE; ++i)
- symbol_impl[i].aclass = (enum address_class) i;
+ for (int i = 0; i < LOC_FINAL_VALUE; ++i)
+ symbol_impl[i].loc_class = static_cast<location_class> (i);
}
@@ -6776,7 +6645,7 @@ CORE_ADDR
symbol::get_maybe_copied_address () const
{
gdb_assert (this->maybe_copied);
- gdb_assert (this->aclass () == LOC_STATIC);
+ gdb_assert (this->loc_class () == LOC_STATIC);
const char *linkage_name = this->linkage_name ();
bound_minimal_symbol minsym
diff --git a/gdb/symtab.h b/gdb/symtab.h
index a711953..09a361d 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -145,7 +145,7 @@ private:
std::string m_encoded_name;
/* The decoded lookup name. This is formed by calling ada_decode
- with both 'operators' and 'wide' set to false. */
+ with 'translate' set to false. */
std::string m_decoded_name;
/* Whether the user-provided lookup name was Ada encoded. If so,
@@ -967,9 +967,9 @@ to_scripting_domain (domain_search_flags val)
Throws an exception if VAL is not one of the allowable values. */
extern domain_search_flags from_scripting_domain (int val);
-/* An address-class says where to find the value of a symbol. */
+/* A location class says where to find the value of a symbol. */
-enum address_class
+enum location_class
{
/* Not used; catches errors. */
@@ -1078,14 +1078,14 @@ enum address_class
LOC_FINAL_VALUE
};
-/* The number of bits needed for values in enum address_class, with some
+/* The number of bits needed for values in enum location_class, with some
padding for reasonable growth, and room for run-time registered address
classes. See symtab.c:MAX_SYMBOL_IMPLS.
This is a #define so that we can have a assertion elsewhere to
verify that we have reserved enough space for synthetic address
classes. */
-#define SYMBOL_ACLASS_BITS 5
-static_assert (LOC_FINAL_VALUE <= (1 << SYMBOL_ACLASS_BITS));
+#define SYMBOL_LOC_CLASS_BITS 5
+static_assert (LOC_FINAL_VALUE <= (1 << SYMBOL_LOC_CLASS_BITS));
/* The methods needed to implement LOC_COMPUTED. These methods can
use the symbol's .aux_value for additional per-symbol information.
@@ -1202,7 +1202,7 @@ struct symbol_register_ops
struct symbol_impl
{
- enum address_class aclass;
+ location_class loc_class;
/* Used with LOC_COMPUTED. */
const struct symbol_computed_ops *ops_computed;
@@ -1238,7 +1238,7 @@ struct symbol : public general_symbol_info, public allocate_on_obstack<symbol>
symbol ()
/* Class-initialization of bitfields is only allowed in C++20. */
: m_domain (UNDEF_DOMAIN),
- m_aclass_index (0),
+ m_loc_class_index (0),
m_is_objfile_owned (1),
m_is_argument (0),
m_is_inlined (0),
@@ -1262,14 +1262,14 @@ struct symbol : public general_symbol_info, public allocate_on_obstack<symbol>
symbol (const symbol &) = default;
symbol &operator= (const symbol &) = default;
- void set_aclass_index (unsigned int aclass_index)
+ void set_loc_class_index (unsigned int loc_class_index)
{
- m_aclass_index = aclass_index;
+ m_loc_class_index = loc_class_index;
}
const symbol_impl &impl () const
{
- return symbol_impls[this->m_aclass_index];
+ return symbol_impls[this->m_loc_class_index];
}
const symbol_block_ops *block_ops () const
@@ -1287,9 +1287,9 @@ struct symbol : public general_symbol_info, public allocate_on_obstack<symbol>
return this->impl ().ops_register;
}
- address_class aclass () const
+ location_class loc_class () const
{
- return this->impl ().aclass;
+ return this->impl ().loc_class;
}
/* Return true if this symbol's domain matches FLAGS. */
@@ -1480,11 +1480,11 @@ struct symbol : public general_symbol_info, public allocate_on_obstack<symbol>
ENUM_BITFIELD(domain_enum) m_domain : SYMBOL_DOMAIN_BITS;
- /* Address class. This holds an index into the 'symbol_impls'
- table. The actual enum address_class value is stored there,
+ /* Location class. This holds an index into the 'symbol_impls'
+ table. The actual location_class value is stored there,
alongside any per-class ops vectors. */
- unsigned int m_aclass_index : SYMBOL_ACLASS_BITS;
+ unsigned int m_loc_class_index : SYMBOL_LOC_CLASS_BITS;
/* If non-zero then symbol is objfile-owned, use owner.symtab.
Otherwise symbol is arch-owned, use owner.arch. */
@@ -1575,13 +1575,13 @@ symbol::value_block () const
return m_value.block;
}
-extern int register_symbol_computed_impl (enum address_class,
+extern int register_symbol_computed_impl (location_class,
const struct symbol_computed_ops *);
-extern int register_symbol_block_impl (enum address_class aclass,
+extern int register_symbol_block_impl (location_class loc_class,
const struct symbol_block_ops *ops);
-extern int register_symbol_register_impl (enum address_class,
+extern int register_symbol_register_impl (location_class,
const struct symbol_register_ops *);
/* An instance of this type is used to represent a C++ template
diff --git a/gdb/syscalls/riscv-linux.xml b/gdb/syscalls/riscv-linux.xml
new file mode 100644
index 0000000..3578c3f
--- /dev/null
+++ b/gdb/syscalls/riscv-linux.xml
@@ -0,0 +1,340 @@
+<?xml version="1.0"?>
+<!DOCTYPE syscalls_info SYSTEM "gdb-syscalls.dtd">
+<!-- Copyright (C) 2025 Free Software Foundation, Inc.
+
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. -->
+<!-- This file was generated using the following file:
+
+ <sys/syscall.h>
+
+ The file mentioned above belongs to the Linux Kernel. -->
+<syscalls_info>
+ <syscall name="io_setup" number="0" groups="memory"/>
+ <syscall name="io_destroy" number="1" groups="memory"/>
+ <syscall name="io_submit" number="2"/>
+ <syscall name="io_cancel" number="3"/>
+ <syscall name="io_getevents" number="4"/>
+ <syscall name="setxattr" number="5" groups="file"/>
+ <syscall name="lsetxattr" number="6" groups="file"/>
+ <syscall name="fsetxattr" number="7" groups="descriptor"/>
+ <syscall name="getxattr" number="8" groups="file"/>
+ <syscall name="lgetxattr" number="9" groups="file"/>
+ <syscall name="fgetxattr" number="10" groups="descriptor"/>
+ <syscall name="listxattr" number="11" groups="file"/>
+ <syscall name="llistxattr" number="12" groups="file"/>
+ <syscall name="flistxattr" number="13" groups="descriptor"/>
+ <syscall name="removexattr" number="14" groups="file"/>
+ <syscall name="lremovexattr" number="15" groups="file"/>
+ <syscall name="fremovexattr" number="16" groups="descriptor"/>
+ <syscall name="getcwd" number="17" groups="file"/>
+ <syscall name="lookup_dcookie" number="18"/>
+ <syscall name="eventfd2" number="19" groups="descriptor"/>
+ <syscall name="epoll_create1" number="20" groups="descriptor"/>
+ <syscall name="epoll_ctl" number="21" groups="descriptor"/>
+ <syscall name="epoll_pwait" number="22" groups="descriptor"/>
+ <syscall name="dup" number="23" groups="descriptor"/>
+ <syscall name="dup3" number="24" groups="descriptor"/>
+ <syscall name="fcntl" number="25" groups="descriptor"/>
+ <syscall name="inotify_init1" number="26" groups="descriptor"/>
+ <syscall name="inotify_add_watch" number="27" groups="descriptor,file"/>
+ <syscall name="inotify_rm_watch" number="28" groups="descriptor"/>
+ <syscall name="ioctl" number="29" groups="descriptor"/>
+ <syscall name="ioprio_set" number="30"/>
+ <syscall name="ioprio_get" number="31"/>
+ <syscall name="flock" number="32" groups="descriptor"/>
+ <syscall name="mknodat" number="33" groups="descriptor,file"/>
+ <syscall name="mkdirat" number="34" groups="descriptor,file"/>
+ <syscall name="unlinkat" number="35" groups="descriptor,file"/>
+ <syscall name="symlinkat" number="36" groups="descriptor,file"/>
+ <syscall name="linkat" number="37" groups="descriptor,file"/>
+ <syscall name="umount2" number="39" groups="file"/>
+ <syscall name="mount" number="40" groups="file"/>
+ <syscall name="pivot_root" number="41" groups="file"/>
+ <syscall name="nfsservctl" number="42"/>
+ <syscall name="statfs" number="43" groups="file"/>
+ <syscall name="fstatfs" number="44" groups="descriptor"/>
+ <syscall name="truncate" number="45" groups="file"/>
+ <syscall name="ftruncate" number="46" groups="descriptor"/>
+ <syscall name="fallocate" number="47" groups="descriptor"/>
+ <syscall name="faccessat" number="48" groups="descriptor,file"/>
+ <syscall name="chdir" number="49" groups="file"/>
+ <syscall name="fchdir" number="50" groups="descriptor"/>
+ <syscall name="chroot" number="51" groups="file"/>
+ <syscall name="fchmod" number="52" groups="descriptor"/>
+ <syscall name="fchmodat" number="53" groups="descriptor,file"/>
+ <syscall name="fchownat" number="54" groups="descriptor,file"/>
+ <syscall name="fchown" number="55" groups="descriptor"/>
+ <syscall name="openat" number="56" groups="descriptor,file"/>
+ <syscall name="close" number="57" groups="descriptor"/>
+ <syscall name="vhangup" number="58"/>
+ <syscall name="pipe2" number="59" groups="descriptor"/>
+ <syscall name="quotactl" number="60" groups="file"/>
+ <syscall name="getdents64" number="61" groups="descriptor"/>
+ <syscall name="lseek" number="62" groups="descriptor"/>
+ <syscall name="read" number="63" groups="descriptor"/>
+ <syscall name="write" number="64" groups="descriptor"/>
+ <syscall name="readv" number="65" groups="descriptor"/>
+ <syscall name="writev" number="66" groups="descriptor"/>
+ <syscall name="pread64" number="67" groups="descriptor"/>
+ <syscall name="pwrite64" number="68" groups="descriptor"/>
+ <syscall name="preadv" number="69" groups="descriptor"/>
+ <syscall name="pwritev" number="70" groups="descriptor"/>
+ <syscall name="sendfile" number="71" groups="descriptor,network"/>
+ <syscall name="pselect6" number="72" groups="descriptor"/>
+ <syscall name="ppoll" number="73" groups="descriptor"/>
+ <syscall name="signalfd4" number="74" groups="descriptor,signal"/>
+ <syscall name="vmsplice" number="75" groups="descriptor"/>
+ <syscall name="splice" number="76" groups="descriptor"/>
+ <syscall name="tee" number="77" groups="descriptor"/>
+ <syscall name="readlinkat" number="78" groups="descriptor,file"/>
+ <syscall name="newfstatat" number="79" groups="descriptor,file"/>
+ <syscall name="fstat" number="80" groups="descriptor"/>
+ <syscall name="sync" number="81"/>
+ <syscall name="fsync" number="82" groups="descriptor"/>
+ <syscall name="fdatasync" number="83" groups="descriptor"/>
+ <syscall name="sync_file_range" number="84" groups="descriptor"/>
+ <syscall name="timerfd_create" number="85" groups="descriptor"/>
+ <syscall name="timerfd_settime" number="86" groups="descriptor"/>
+ <syscall name="timerfd_gettime" number="87" groups="descriptor"/>
+ <syscall name="utimensat" number="88" groups="descriptor,file"/>
+ <syscall name="acct" number="89" groups="file"/>
+ <syscall name="capget" number="90"/>
+ <syscall name="capset" number="91"/>
+ <syscall name="personality" number="92"/>
+ <syscall name="exit" number="93" groups="process"/>
+ <syscall name="exit_group" number="94" groups="process"/>
+ <syscall name="waitid" number="95" groups="process"/>
+ <syscall name="set_tid_address" number="96"/>
+ <syscall name="unshare" number="97"/>
+ <syscall name="futex" number="98"/>
+ <syscall name="set_robust_list" number="99"/>
+ <syscall name="get_robust_list" number="100"/>
+ <syscall name="nanosleep" number="101"/>
+ <syscall name="getitimer" number="102"/>
+ <syscall name="setitimer" number="103"/>
+ <syscall name="kexec_load" number="104"/>
+ <syscall name="init_module" number="105"/>
+ <syscall name="delete_module" number="106"/>
+ <syscall name="timer_create" number="107"/>
+ <syscall name="timer_gettime" number="108"/>
+ <syscall name="timer_getoverrun" number="109"/>
+ <syscall name="timer_settime" number="110"/>
+ <syscall name="timer_delete" number="111"/>
+ <syscall name="clock_settime" number="112"/>
+ <syscall name="clock_gettime" number="113"/>
+ <syscall name="clock_getres" number="114"/>
+ <syscall name="clock_nanosleep" number="115"/>
+ <syscall name="syslog" number="116"/>
+ <syscall name="ptrace" number="117"/>
+ <syscall name="sched_setparam" number="118"/>
+ <syscall name="sched_setscheduler" number="119"/>
+ <syscall name="sched_getscheduler" number="120"/>
+ <syscall name="sched_getparam" number="121"/>
+ <syscall name="sched_setaffinity" number="122"/>
+ <syscall name="sched_getaffinity" number="123"/>
+ <syscall name="sched_yield" number="124"/>
+ <syscall name="sched_get_priority_max" number="125"/>
+ <syscall name="sched_get_priority_min" number="126"/>
+ <syscall name="sched_rr_get_interval" number="127"/>
+ <syscall name="restart_syscall" number="128"/>
+ <syscall name="kill" number="129" groups="signal,process"/>
+ <syscall name="tkill" number="130" groups="signal,process"/>
+ <syscall name="tgkill" number="131" groups="signal,process"/>
+ <syscall name="sigaltstack" number="132" groups="signal"/>
+ <syscall name="rt_sigsuspend" number="133" groups="signal"/>
+ <syscall name="rt_sigaction" number="134" groups="signal"/>
+ <syscall name="rt_sigprocmask" number="135" groups="signal"/>
+ <syscall name="rt_sigpending" number="136" groups="signal"/>
+ <syscall name="rt_sigtimedwait" number="137" groups="signal"/>
+ <syscall name="rt_sigqueueinfo" number="138" groups="signal,process"/>
+ <syscall name="rt_sigreturn" number="139" groups="signal"/>
+ <syscall name="setpriority" number="140"/>
+ <syscall name="getpriority" number="141"/>
+ <syscall name="reboot" number="142"/>
+ <syscall name="setregid" number="143"/>
+ <syscall name="setgid" number="144"/>
+ <syscall name="setreuid" number="145"/>
+ <syscall name="setuid" number="146"/>
+ <syscall name="setresuid" number="147"/>
+ <syscall name="getresuid" number="148"/>
+ <syscall name="setresgid" number="149"/>
+ <syscall name="getresgid" number="150"/>
+ <syscall name="setfsuid" number="151"/>
+ <syscall name="setfsgid" number="152"/>
+ <syscall name="times" number="153"/>
+ <syscall name="setpgid" number="154"/>
+ <syscall name="getpgid" number="155"/>
+ <syscall name="getsid" number="156"/>
+ <syscall name="setsid" number="157"/>
+ <syscall name="getgroups" number="158"/>
+ <syscall name="setgroups" number="159"/>
+ <syscall name="uname" number="160"/>
+ <syscall name="sethostname" number="161"/>
+ <syscall name="setdomainname" number="162"/>
+ <syscall name="getrlimit" number="163"/>
+ <syscall name="setrlimit" number="164"/>
+ <syscall name="getrusage" number="165"/>
+ <syscall name="umask" number="166"/>
+ <syscall name="prctl" number="167"/>
+ <syscall name="getcpu" number="168"/>
+ <syscall name="gettimeofday" number="169"/>
+ <syscall name="settimeofday" number="170"/>
+ <syscall name="adjtimex" number="171"/>
+ <syscall name="getpid" number="172"/>
+ <syscall name="getppid" number="173"/>
+ <syscall name="getuid" number="174"/>
+ <syscall name="geteuid" number="175"/>
+ <syscall name="getgid" number="176"/>
+ <syscall name="getegid" number="177"/>
+ <syscall name="gettid" number="178"/>
+ <syscall name="sysinfo" number="179"/>
+ <syscall name="mq_open" number="180" groups="descriptor"/>
+ <syscall name="mq_unlink" number="181"/>
+ <syscall name="mq_timedsend" number="182" groups="descriptor"/>
+ <syscall name="mq_timedreceive" number="183" groups="descriptor"/>
+ <syscall name="mq_notify" number="184" groups="descriptor"/>
+ <syscall name="mq_getsetattr" number="185" groups="descriptor"/>
+ <syscall name="msgget" number="186" groups="ipc"/>
+ <syscall name="msgctl" number="187" groups="ipc"/>
+ <syscall name="msgrcv" number="188" groups="ipc"/>
+ <syscall name="msgsnd" number="189" groups="ipc"/>
+ <syscall name="semget" number="190" groups="ipc"/>
+ <syscall name="semctl" number="191" groups="ipc"/>
+ <syscall name="semtimedop" number="192" groups="ipc"/>
+ <syscall name="semop" number="193" groups="ipc"/>
+ <syscall name="shmget" number="194" groups="ipc"/>
+ <syscall name="shmctl" number="195" groups="ipc"/>
+ <syscall name="shmat" number="196" groups="ipc,memory"/>
+ <syscall name="shmdt" number="197" groups="ipc,memory"/>
+ <syscall name="socket" number="198" groups="network"/>
+ <syscall name="socketpair" number="199" groups="network"/>
+ <syscall name="bind" number="200" groups="network"/>
+ <syscall name="listen" number="201" groups="network"/>
+ <syscall name="accept" number="202" groups="network"/>
+ <syscall name="connect" number="203" groups="network"/>
+ <syscall name="getsockname" number="204" groups="network"/>
+ <syscall name="getpeername" number="205" groups="network"/>
+ <syscall name="sendto" number="206" groups="network"/>
+ <syscall name="recvfrom" number="207" groups="network"/>
+ <syscall name="setsockopt" number="208" groups="network"/>
+ <syscall name="getsockopt" number="209" groups="network"/>
+ <syscall name="shutdown" number="210" groups="network"/>
+ <syscall name="sendmsg" number="211" groups="network"/>
+ <syscall name="recvmsg" number="212" groups="network"/>
+ <syscall name="readahead" number="213" groups="descriptor"/>
+ <syscall name="brk" number="214" groups="memory"/>
+ <syscall name="munmap" number="215" groups="memory"/>
+ <syscall name="mremap" number="216" groups="memory"/>
+ <syscall name="add_key" number="217"/>
+ <syscall name="request_key" number="218"/>
+ <syscall name="keyctl" number="219"/>
+ <syscall name="clone" number="220" groups="process"/>
+ <syscall name="execve" number="221" groups="file,process"/>
+ <syscall name="mmap" number="222" groups="descriptor,memory"/>
+ <syscall name="fadvise64" number="223" groups="descriptor"/>
+ <syscall name="swapon" number="224" groups="file"/>
+ <syscall name="swapoff" number="225" groups="file"/>
+ <syscall name="mprotect" number="226" groups="memory"/>
+ <syscall name="msync" number="227" groups="memory"/>
+ <syscall name="mlock" number="228" groups="memory"/>
+ <syscall name="munlock" number="229" groups="memory"/>
+ <syscall name="mlockall" number="230" groups="memory"/>
+ <syscall name="munlockall" number="231" groups="memory"/>
+ <syscall name="mincore" number="232" groups="memory"/>
+ <syscall name="madvise" number="233" groups="memory"/>
+ <syscall name="remap_file_pages" number="234" groups="memory"/>
+ <syscall name="mbind" number="235" groups="memory"/>
+ <syscall name="get_mempolicy" number="236" groups="memory"/>
+ <syscall name="set_mempolicy" number="237" groups="memory"/>
+ <syscall name="migrate_pages" number="238" groups="memory"/>
+ <syscall name="move_pages" number="239" groups="memory"/>
+ <syscall name="rt_tgsigqueueinfo" number="240" groups="process,signal"/>
+ <syscall name="perf_event_open" number="241" groups="descriptor"/>
+ <syscall name="accept4" number="242" groups="network"/>
+ <syscall name="recvmmsg" number="243" groups="network"/>
+ <syscall name="riscv_hwprobe" number="258"/>
+ <syscall name="riscv_flush_icache" number="259" groups="memory"/>
+ <syscall name="wait4" number="260" groups="process"/>
+ <syscall name="prlimit64" number="261"/>
+ <syscall name="fanotify_init" number="262" groups="descriptor"/>
+ <syscall name="fanotify_mark" number="263" groups="descriptor,file"/>
+ <syscall name="name_to_handle_at" number="264" groups="descriptor,file"/>
+ <syscall name="open_by_handle_at" number="265" groups="descriptor"/>
+ <syscall name="clock_adjtime" number="266"/>
+ <syscall name="syncfs" number="267" groups="descriptor"/>
+ <syscall name="setns" number="268" groups="descriptor"/>
+ <syscall name="sendmmsg" number="269" groups="network"/>
+ <syscall name="process_vm_readv" number="270"/>
+ <syscall name="process_vm_writev" number="271"/>
+ <syscall name="kcmp" number="272"/>
+ <syscall name="finit_module" number="273" groups="descriptor"/>
+ <syscall name="sched_setattr" number="274"/>
+ <syscall name="sched_getattr" number="275"/>
+ <syscall name="renameat2" number="276" groups="descriptor,file"/>
+ <syscall name="seccomp" number="277"/>
+ <syscall name="getrandom" number="278"/>
+ <syscall name="memfd_create" number="279" groups="descriptor"/>
+ <syscall name="bpf" number="280" groups="descriptor"/>
+ <syscall name="execveat" number="281" groups="descriptor,file,process"/>
+ <syscall name="userfaultfd" number="282" groups="descriptor"/>
+ <syscall name="membarrier" number="283"/>
+ <syscall name="mlock2" number="284" groups="memory"/>
+ <syscall name="copy_file_range" number="285" groups="descriptor"/>
+ <syscall name="preadv2" number="286" groups="descriptor"/>
+ <syscall name="pwritev2" number="287" groups="descriptor"/>
+ <syscall name="pkey_mprotect" number="288" groups="memory"/>
+ <syscall name="pkey_alloc" number="289"/>
+ <syscall name="pkey_free" number="290"/>
+ <syscall name="statx" number="291" groups="descriptor,file"/>
+ <syscall name="io_pgetevents" number="292"/>
+ <syscall name="rseq" number="293"/>
+ <syscall name="kexec_file_load" number="294" groups="descriptor"/>
+ <syscall name="pidfd_send_signal" number="424" groups="descriptor,signal,process"/>
+ <syscall name="io_uring_setup" number="425" groups="descriptor"/>
+ <syscall name="io_uring_enter" number="426" groups="descriptor,signal"/>
+ <syscall name="io_uring_register" number="427" groups="descriptor,memory"/>
+ <syscall name="open_tree" number="428" groups="descriptor,file"/>
+ <syscall name="move_mount" number="429" groups="descriptor,file"/>
+ <syscall name="fsopen" number="430" groups="descriptor"/>
+ <syscall name="fsconfig" number="431" groups="descriptor,file"/>
+ <syscall name="fsmount" number="432" groups="descriptor"/>
+ <syscall name="fspick" number="433" groups="descriptor,file"/>
+ <syscall name="pidfd_open" number="434" groups="descriptor"/>
+ <syscall name="clone3" number="435" groups="process"/>
+ <syscall name="close_range" number="436"/>
+ <syscall name="openat2" number="437" groups="descriptor,file"/>
+ <syscall name="pidfd_getfd" number="438" groups="descriptor"/>
+ <syscall name="faccessat2" number="439" groups="descriptor,file"/>
+ <syscall name="process_madvise" number="440" groups="descriptor"/>
+ <syscall name="epoll_pwait2" number="441" groups="descriptor"/>
+ <syscall name="mount_setattr" number="442" groups="descriptor,file"/>
+ <syscall name="quotactl_fd" number="443" groups="descriptor"/>
+ <syscall name="landlock_create_ruleset" number="444" groups="descriptor"/>
+ <syscall name="landlock_add_rule" number="445" groups="descriptor"/>
+ <syscall name="landlock_restrict_self" number="446" groups="descriptor"/>
+ <syscall name="memfd_secret" number="447" groups="descriptor"/>
+ <syscall name="process_mrelease" number="448" groups="descriptor"/>
+ <syscall name="futex_waitv" number="449"/>
+ <syscall name="set_mempolicy_home_node" number="450" groups="memory"/>
+ <syscall name="cachestat" number="451" groups="descriptor"/>
+ <syscall name="fchmodat2" number="452" groups="descriptor,file"/>
+ <syscall name="map_shadow_stack" number="453" groups="memory"/>
+ <syscall name="futex_wake" number="454"/>
+ <syscall name="futex_wait" number="455"/>
+ <syscall name="futex_requeue" number="456"/>
+ <syscall name="statmount" number="457"/>
+ <syscall name="listmount" number="458"/>
+ <syscall name="lsm_get_self_attr" number="459"/>
+ <syscall name="lsm_set_self_attr" number="460"/>
+ <syscall name="lsm_list_modules" number="461"/>
+ <syscall name="mseal" number="462" groups="memory"/>
+ <syscall name="setxattrat" number="463" groups="descriptor,file"/>
+ <syscall name="getxattrat" number="464" groups="descriptor,file"/>
+ <syscall name="listxattrat" number="465" groups="descriptor,file"/>
+ <syscall name="removexattrat" number="466" groups="descriptor,file"/>
+ <syscall name="open_tree_attr" number="467" groups="descriptor,file"/>
+ <syscall name="file_getattr" number="468" groups="descriptor,file"/>
+ <syscall name="file_setattr" number="469" groups="descriptor,file"/>
+</syscalls_info>
diff --git a/gdb/syscalls/riscv-linux.xml.in b/gdb/syscalls/riscv-linux.xml.in
new file mode 100644
index 0000000..17b2b0a
--- /dev/null
+++ b/gdb/syscalls/riscv-linux.xml.in
@@ -0,0 +1,344 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2025 Free Software Foundation, Inc.
+
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. -->
+
+<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
+
+<!-- This file was generated using the following file:
+
+ <sys/syscall.h>
+
+ The file mentioned above belongs to the Linux Kernel. -->
+
+
+<syscalls_info>
+ <syscall name="io_setup" number="0"/>
+ <syscall name="io_destroy" number="1"/>
+ <syscall name="io_submit" number="2"/>
+ <syscall name="io_cancel" number="3"/>
+ <syscall name="io_getevents" number="4"/>
+ <syscall name="setxattr" number="5"/>
+ <syscall name="lsetxattr" number="6"/>
+ <syscall name="fsetxattr" number="7"/>
+ <syscall name="getxattr" number="8"/>
+ <syscall name="lgetxattr" number="9"/>
+ <syscall name="fgetxattr" number="10"/>
+ <syscall name="listxattr" number="11"/>
+ <syscall name="llistxattr" number="12"/>
+ <syscall name="flistxattr" number="13"/>
+ <syscall name="removexattr" number="14"/>
+ <syscall name="lremovexattr" number="15"/>
+ <syscall name="fremovexattr" number="16"/>
+ <syscall name="getcwd" number="17"/>
+ <syscall name="lookup_dcookie" number="18"/>
+ <syscall name="eventfd2" number="19"/>
+ <syscall name="epoll_create1" number="20"/>
+ <syscall name="epoll_ctl" number="21"/>
+ <syscall name="epoll_pwait" number="22"/>
+ <syscall name="dup" number="23"/>
+ <syscall name="dup3" number="24"/>
+ <syscall name="fcntl" number="25"/>
+ <syscall name="inotify_init1" number="26"/>
+ <syscall name="inotify_add_watch" number="27"/>
+ <syscall name="inotify_rm_watch" number="28"/>
+ <syscall name="ioctl" number="29"/>
+ <syscall name="ioprio_set" number="30"/>
+ <syscall name="ioprio_get" number="31"/>
+ <syscall name="flock" number="32"/>
+ <syscall name="mknodat" number="33"/>
+ <syscall name="mkdirat" number="34"/>
+ <syscall name="unlinkat" number="35"/>
+ <syscall name="symlinkat" number="36"/>
+ <syscall name="linkat" number="37"/>
+ <syscall name="umount2" number="39"/>
+ <syscall name="mount" number="40"/>
+ <syscall name="pivot_root" number="41"/>
+ <syscall name="nfsservctl" number="42"/>
+ <syscall name="statfs" number="43"/>
+ <syscall name="fstatfs" number="44"/>
+ <syscall name="truncate" number="45"/>
+ <syscall name="ftruncate" number="46"/>
+ <syscall name="fallocate" number="47"/>
+ <syscall name="faccessat" number="48"/>
+ <syscall name="chdir" number="49"/>
+ <syscall name="fchdir" number="50"/>
+ <syscall name="chroot" number="51"/>
+ <syscall name="fchmod" number="52"/>
+ <syscall name="fchmodat" number="53"/>
+ <syscall name="fchownat" number="54"/>
+ <syscall name="fchown" number="55"/>
+ <syscall name="openat" number="56"/>
+ <syscall name="close" number="57"/>
+ <syscall name="vhangup" number="58"/>
+ <syscall name="pipe2" number="59"/>
+ <syscall name="quotactl" number="60"/>
+ <syscall name="getdents64" number="61"/>
+ <syscall name="lseek" number="62"/>
+ <syscall name="read" number="63"/>
+ <syscall name="write" number="64"/>
+ <syscall name="readv" number="65"/>
+ <syscall name="writev" number="66"/>
+ <syscall name="pread64" number="67"/>
+ <syscall name="pwrite64" number="68"/>
+ <syscall name="preadv" number="69"/>
+ <syscall name="pwritev" number="70"/>
+ <syscall name="sendfile" number="71"/>
+ <syscall name="pselect6" number="72"/>
+ <syscall name="ppoll" number="73"/>
+ <syscall name="signalfd4" number="74"/>
+ <syscall name="vmsplice" number="75"/>
+ <syscall name="splice" number="76"/>
+ <syscall name="tee" number="77"/>
+ <syscall name="readlinkat" number="78"/>
+ <syscall name="newfstatat" number="79"/>
+ <syscall name="fstat" number="80"/>
+ <syscall name="sync" number="81"/>
+ <syscall name="fsync" number="82"/>
+ <syscall name="fdatasync" number="83"/>
+ <syscall name="sync_file_range" number="84"/>
+ <syscall name="timerfd_create" number="85"/>
+ <syscall name="timerfd_settime" number="86"/>
+ <syscall name="timerfd_gettime" number="87"/>
+ <syscall name="utimensat" number="88"/>
+ <syscall name="acct" number="89"/>
+ <syscall name="capget" number="90"/>
+ <syscall name="capset" number="91"/>
+ <syscall name="personality" number="92"/>
+ <syscall name="exit" number="93"/>
+ <syscall name="exit_group" number="94"/>
+ <syscall name="waitid" number="95"/>
+ <syscall name="set_tid_address" number="96"/>
+ <syscall name="unshare" number="97"/>
+ <syscall name="futex" number="98"/>
+ <syscall name="set_robust_list" number="99"/>
+ <syscall name="get_robust_list" number="100"/>
+ <syscall name="nanosleep" number="101"/>
+ <syscall name="getitimer" number="102"/>
+ <syscall name="setitimer" number="103"/>
+ <syscall name="kexec_load" number="104"/>
+ <syscall name="init_module" number="105"/>
+ <syscall name="delete_module" number="106"/>
+ <syscall name="timer_create" number="107"/>
+ <syscall name="timer_gettime" number="108"/>
+ <syscall name="timer_getoverrun" number="109"/>
+ <syscall name="timer_settime" number="110"/>
+ <syscall name="timer_delete" number="111"/>
+ <syscall name="clock_settime" number="112"/>
+ <syscall name="clock_gettime" number="113"/>
+ <syscall name="clock_getres" number="114"/>
+ <syscall name="clock_nanosleep" number="115"/>
+ <syscall name="syslog" number="116"/>
+ <syscall name="ptrace" number="117"/>
+ <syscall name="sched_setparam" number="118"/>
+ <syscall name="sched_setscheduler" number="119"/>
+ <syscall name="sched_getscheduler" number="120"/>
+ <syscall name="sched_getparam" number="121"/>
+ <syscall name="sched_setaffinity" number="122"/>
+ <syscall name="sched_getaffinity" number="123"/>
+ <syscall name="sched_yield" number="124"/>
+ <syscall name="sched_get_priority_max" number="125"/>
+ <syscall name="sched_get_priority_min" number="126"/>
+ <syscall name="sched_rr_get_interval" number="127"/>
+ <syscall name="restart_syscall" number="128"/>
+ <syscall name="kill" number="129"/>
+ <syscall name="tkill" number="130"/>
+ <syscall name="tgkill" number="131"/>
+ <syscall name="sigaltstack" number="132"/>
+ <syscall name="rt_sigsuspend" number="133"/>
+ <syscall name="rt_sigaction" number="134"/>
+ <syscall name="rt_sigprocmask" number="135"/>
+ <syscall name="rt_sigpending" number="136"/>
+ <syscall name="rt_sigtimedwait" number="137"/>
+ <syscall name="rt_sigqueueinfo" number="138"/>
+ <syscall name="rt_sigreturn" number="139"/>
+ <syscall name="setpriority" number="140"/>
+ <syscall name="getpriority" number="141"/>
+ <syscall name="reboot" number="142"/>
+ <syscall name="setregid" number="143"/>
+ <syscall name="setgid" number="144"/>
+ <syscall name="setreuid" number="145"/>
+ <syscall name="setuid" number="146"/>
+ <syscall name="setresuid" number="147"/>
+ <syscall name="getresuid" number="148"/>
+ <syscall name="setresgid" number="149"/>
+ <syscall name="getresgid" number="150"/>
+ <syscall name="setfsuid" number="151"/>
+ <syscall name="setfsgid" number="152"/>
+ <syscall name="times" number="153"/>
+ <syscall name="setpgid" number="154"/>
+ <syscall name="getpgid" number="155"/>
+ <syscall name="getsid" number="156"/>
+ <syscall name="setsid" number="157"/>
+ <syscall name="getgroups" number="158"/>
+ <syscall name="setgroups" number="159"/>
+ <syscall name="uname" number="160"/>
+ <syscall name="sethostname" number="161"/>
+ <syscall name="setdomainname" number="162"/>
+ <syscall name="getrlimit" number="163"/>
+ <syscall name="setrlimit" number="164"/>
+ <syscall name="getrusage" number="165"/>
+ <syscall name="umask" number="166"/>
+ <syscall name="prctl" number="167"/>
+ <syscall name="getcpu" number="168"/>
+ <syscall name="gettimeofday" number="169"/>
+ <syscall name="settimeofday" number="170"/>
+ <syscall name="adjtimex" number="171"/>
+ <syscall name="getpid" number="172"/>
+ <syscall name="getppid" number="173"/>
+ <syscall name="getuid" number="174"/>
+ <syscall name="geteuid" number="175"/>
+ <syscall name="getgid" number="176"/>
+ <syscall name="getegid" number="177"/>
+ <syscall name="gettid" number="178"/>
+ <syscall name="sysinfo" number="179"/>
+ <syscall name="mq_open" number="180"/>
+ <syscall name="mq_unlink" number="181"/>
+ <syscall name="mq_timedsend" number="182"/>
+ <syscall name="mq_timedreceive" number="183"/>
+ <syscall name="mq_notify" number="184"/>
+ <syscall name="mq_getsetattr" number="185"/>
+ <syscall name="msgget" number="186"/>
+ <syscall name="msgctl" number="187"/>
+ <syscall name="msgrcv" number="188"/>
+ <syscall name="msgsnd" number="189"/>
+ <syscall name="semget" number="190"/>
+ <syscall name="semctl" number="191"/>
+ <syscall name="semtimedop" number="192"/>
+ <syscall name="semop" number="193"/>
+ <syscall name="shmget" number="194"/>
+ <syscall name="shmctl" number="195"/>
+ <syscall name="shmat" number="196"/>
+ <syscall name="shmdt" number="197"/>
+ <syscall name="socket" number="198"/>
+ <syscall name="socketpair" number="199"/>
+ <syscall name="bind" number="200"/>
+ <syscall name="listen" number="201"/>
+ <syscall name="accept" number="202"/>
+ <syscall name="connect" number="203"/>
+ <syscall name="getsockname" number="204"/>
+ <syscall name="getpeername" number="205"/>
+ <syscall name="sendto" number="206"/>
+ <syscall name="recvfrom" number="207"/>
+ <syscall name="setsockopt" number="208"/>
+ <syscall name="getsockopt" number="209"/>
+ <syscall name="shutdown" number="210"/>
+ <syscall name="sendmsg" number="211"/>
+ <syscall name="recvmsg" number="212"/>
+ <syscall name="readahead" number="213"/>
+ <syscall name="brk" number="214"/>
+ <syscall name="munmap" number="215"/>
+ <syscall name="mremap" number="216"/>
+ <syscall name="add_key" number="217"/>
+ <syscall name="request_key" number="218"/>
+ <syscall name="keyctl" number="219"/>
+ <syscall name="clone" number="220"/>
+ <syscall name="execve" number="221"/>
+ <syscall name="mmap" number="222"/>
+ <syscall name="fadvise64" number="223"/>
+ <syscall name="swapon" number="224"/>
+ <syscall name="swapoff" number="225"/>
+ <syscall name="mprotect" number="226"/>
+ <syscall name="msync" number="227"/>
+ <syscall name="mlock" number="228"/>
+ <syscall name="munlock" number="229"/>
+ <syscall name="mlockall" number="230"/>
+ <syscall name="munlockall" number="231"/>
+ <syscall name="mincore" number="232"/>
+ <syscall name="madvise" number="233"/>
+ <syscall name="remap_file_pages" number="234"/>
+ <syscall name="mbind" number="235"/>
+ <syscall name="get_mempolicy" number="236"/>
+ <syscall name="set_mempolicy" number="237"/>
+ <syscall name="migrate_pages" number="238"/>
+ <syscall name="move_pages" number="239"/>
+ <syscall name="rt_tgsigqueueinfo" number="240"/>
+ <syscall name="perf_event_open" number="241"/>
+ <syscall name="accept4" number="242"/>
+ <syscall name="recvmmsg" number="243"/>
+ <syscall name="riscv_hwprobe" number="258"/>
+ <syscall name="riscv_flush_icache" number="259"/>
+ <syscall name="wait4" number="260"/>
+ <syscall name="prlimit64" number="261"/>
+ <syscall name="fanotify_init" number="262"/>
+ <syscall name="fanotify_mark" number="263"/>
+ <syscall name="name_to_handle_at" number="264"/>
+ <syscall name="open_by_handle_at" number="265"/>
+ <syscall name="clock_adjtime" number="266"/>
+ <syscall name="syncfs" number="267"/>
+ <syscall name="setns" number="268"/>
+ <syscall name="sendmmsg" number="269"/>
+ <syscall name="process_vm_readv" number="270"/>
+ <syscall name="process_vm_writev" number="271"/>
+ <syscall name="kcmp" number="272"/>
+ <syscall name="finit_module" number="273"/>
+ <syscall name="sched_setattr" number="274"/>
+ <syscall name="sched_getattr" number="275"/>
+ <syscall name="renameat2" number="276"/>
+ <syscall name="seccomp" number="277"/>
+ <syscall name="getrandom" number="278"/>
+ <syscall name="memfd_create" number="279"/>
+ <syscall name="bpf" number="280"/>
+ <syscall name="execveat" number="281"/>
+ <syscall name="userfaultfd" number="282"/>
+ <syscall name="membarrier" number="283"/>
+ <syscall name="mlock2" number="284"/>
+ <syscall name="copy_file_range" number="285"/>
+ <syscall name="preadv2" number="286"/>
+ <syscall name="pwritev2" number="287"/>
+ <syscall name="pkey_mprotect" number="288"/>
+ <syscall name="pkey_alloc" number="289"/>
+ <syscall name="pkey_free" number="290"/>
+ <syscall name="statx" number="291"/>
+ <syscall name="io_pgetevents" number="292"/>
+ <syscall name="rseq" number="293"/>
+ <syscall name="kexec_file_load" number="294"/>
+ <syscall name="pidfd_send_signal" number="424"/>
+ <syscall name="io_uring_setup" number="425"/>
+ <syscall name="io_uring_enter" number="426"/>
+ <syscall name="io_uring_register" number="427"/>
+ <syscall name="open_tree" number="428"/>
+ <syscall name="move_mount" number="429"/>
+ <syscall name="fsopen" number="430"/>
+ <syscall name="fsconfig" number="431"/>
+ <syscall name="fsmount" number="432"/>
+ <syscall name="fspick" number="433"/>
+ <syscall name="pidfd_open" number="434"/>
+ <syscall name="clone3" number="435"/>
+ <syscall name="close_range" number="436"/>
+ <syscall name="openat2" number="437"/>
+ <syscall name="pidfd_getfd" number="438"/>
+ <syscall name="faccessat2" number="439"/>
+ <syscall name="process_madvise" number="440"/>
+ <syscall name="epoll_pwait2" number="441"/>
+ <syscall name="mount_setattr" number="442"/>
+ <syscall name="quotactl_fd" number="443"/>
+ <syscall name="landlock_create_ruleset" number="444"/>
+ <syscall name="landlock_add_rule" number="445"/>
+ <syscall name="landlock_restrict_self" number="446"/>
+ <syscall name="memfd_secret" number="447"/>
+ <syscall name="process_mrelease" number="448"/>
+ <syscall name="futex_waitv" number="449"/>
+ <syscall name="set_mempolicy_home_node" number="450"/>
+ <syscall name="cachestat" number="451"/>
+ <syscall name="fchmodat2" number="452"/>
+ <syscall name="map_shadow_stack" number="453"/>
+ <syscall name="futex_wake" number="454"/>
+ <syscall name="futex_wait" number="455"/>
+ <syscall name="futex_requeue" number="456"/>
+ <syscall name="statmount" number="457"/>
+ <syscall name="listmount" number="458"/>
+ <syscall name="lsm_get_self_attr" number="459"/>
+ <syscall name="lsm_set_self_attr" number="460"/>
+ <syscall name="lsm_list_modules" number="461"/>
+ <syscall name="mseal" number="462"/>
+ <syscall name="setxattrat" number="463"/>
+ <syscall name="getxattrat" number="464"/>
+ <syscall name="listxattrat" number="465"/>
+ <syscall name="removexattrat" number="466"/>
+ <syscall name="open_tree_attr" number="467"/>
+ <syscall name="file_getattr" number="468"/>
+ <syscall name="file_setattr" number="469"/>
+</syscalls_info>
diff --git a/gdb/syscalls/update-linux-from-src.sh b/gdb/syscalls/update-linux-from-src.sh
index ea06c13..26c38f6 100755
--- a/gdb/syscalls/update-linux-from-src.sh
+++ b/gdb/syscalls/update-linux-from-src.sh
@@ -325,6 +325,11 @@ regen ()
gen_from_kernel_headers "$f" arm64
return
;;
+ riscv-linux.xml.in)
+ # No syscall.tbl.
+ gen_from_kernel_headers "$f" riscv
+ return
+ ;;
arm-linux.xml.in)
t="arch/arm/tools/syscall.tbl"
h="arch/arm/include/uapi/asm/unistd.h"
diff --git a/gdb/syscalls/update-linux.sh b/gdb/syscalls/update-linux.sh
index 107ce05..cbc8a9d 100755
--- a/gdb/syscalls/update-linux.sh
+++ b/gdb/syscalls/update-linux.sh
@@ -40,6 +40,9 @@ case "$f" in
*aarch64-linux.xml.in)
startyear=2015
;;
+ *riscv-linux.xml.in)
+ startyear=2025
+ ;;
esac
year=$(date +%Y)
diff --git a/gdb/tclint.toml b/gdb/tclint.toml
new file mode 100644
index 0000000..47c3ce4
--- /dev/null
+++ b/gdb/tclint.toml
@@ -0,0 +1,55 @@
+# Copyright 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Configuration file for tclint ( https://github.com/nmoroze/tclint ).
+
+exclude = [
+# TODO:
+"gdb/testsuite/boards",
+"gdb/testsuite/config",
+"gdb/testsuite/lib",
+"gdb/testsuite/gdb.arch",
+"gdb/testsuite/gdb.base",
+"gdb/testsuite/gdb.cp",
+"gdb/testsuite/gdb.dwarf2",
+"gdb/testsuite/gdb.mi",
+"gdb/testsuite/gdb.trace",
+# IGNORE (document reason in trailing comment):
+"gdb/testsuite/gdb.stabs", # To be removed.
+]
+
+# A maximum line length of 80 is current policy, but it hasn't been too
+# strictly enforced. It's the most frequent and least harmful violation.
+# Ignore this for now.
+ignore = ["line-length"]
+
+extensions = ["exp", "tcl"]
+
+[style]
+# Used by tclfmt. Doesn't support the mixed TAB and spaces style we use. See
+# this tclint issue ( https://github.com/nmoroze/tclint/issues/109 ).
+indent = 4
+
+# Used by both tclint and tclfmt. Current policy is 80.
+line-length = 80
+
+# Used by tclfmt.
+max-blank-lines = 1
+
+# Used by tclfmt. False conflicts with emacs tcl mode.
+indent-namespace-eval = true
+
+# Used by tclfmt.
+spaces-in-braces = false
diff --git a/gdb/terminal.h b/gdb/terminal.h
index 720fd4a..87a1aee 100644
--- a/gdb/terminal.h
+++ b/gdb/terminal.h
@@ -58,4 +58,10 @@ public:
private:
serial_ttystate m_ttystate;
};
+
+#ifdef USE_WIN32API
+/* Set translation mode of stdout/stderr to binary. */
+extern void set_output_translation_mode_binary ();
+#endif
+
#endif /* GDB_TERMINAL_H */
diff --git a/gdb/testsuite/boards/native-extended-gdbserver.exp b/gdb/testsuite/boards/native-extended-gdbserver.exp
index 3299e31..22d8782 100644
--- a/gdb/testsuite/boards/native-extended-gdbserver.exp
+++ b/gdb/testsuite/boards/native-extended-gdbserver.exp
@@ -58,7 +58,7 @@ proc mi_gdb_start { args } {
global gdbserver_reconnect_p
# Spawn GDB.
- set res [eval extended_gdbserver_mi_gdb_start $args]
+ set res [extended_gdbserver_mi_gdb_start {*}$args]
if { $res } {
return $res
}
diff --git a/gdb/testsuite/gdb.ada/array_bounds.exp b/gdb/testsuite/gdb.ada/array_bounds.exp
index 3675c9f..ab50da7 100644
--- a/gdb/testsuite/gdb.ada/array_bounds.exp
+++ b/gdb/testsuite/gdb.ada/array_bounds.exp
@@ -28,7 +28,7 @@ clean_restart ${testfile}
set bp_location [gdb_get_line_number "START" ${testdir}/bar.adb]
if {![runto "bar.adb:$bp_location"]} {
return
-}
+}
gdb_test "print itable'first" \
"= 2"
diff --git a/gdb/testsuite/gdb.ada/array_long_idx.exp b/gdb/testsuite/gdb.ada/array_long_idx.exp
new file mode 100644
index 0000000..13a4d3d
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/array_long_idx.exp
@@ -0,0 +1,36 @@
+# Copyright 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Test that long array index types work.
+
+load_lib "ada.exp"
+
+require allow_ada_tests
+
+standard_ada_testfile main
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable {debug}] != ""} {
+ return
+}
+
+clean_restart ${testfile}
+
+set bp_location [gdb_get_line_number STOP ${testdir}/main.adb]
+if {![runto "main.adb:$bp_location"]} {
+ return
+}
+
+gdb_test "print some_regular_access.all" \
+ [string_to_regexp " = (-2147483648 => (-9223372036854775808 => 1, 2, 3), (-9223372036854775808 => 4, 5, 6))"]
diff --git a/gdb/testsuite/gdb.ada/array_long_idx/main.adb b/gdb/testsuite/gdb.ada/array_long_idx/main.adb
new file mode 100644
index 0000000..6c4971f
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/array_long_idx/main.adb
@@ -0,0 +1,31 @@
+-- Copyright 2025 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+with Pck; use Pck;
+
+procedure Main is
+
+ type Shorter_Integer is range -2147483648 .. 2147483647;
+ type Longer_Integer is range -9223372036854775808 .. 9223372036854775807;
+ type My_Array is array (Shorter_Integer range <>,
+ Longer_Integer range <>) of Integer;
+
+ type My_Reg_Acc is access all My_Array;
+
+ Some_Regular_Access : My_Reg_Acc := new My_Array'((1, 2, 3), (4, 5, 6));
+
+begin
+ Do_Nothing (Some_Regular_Access'Address); -- STOP
+end Main;
diff --git a/gdb/testsuite/gdb.ada/array_long_idx/pck.adb b/gdb/testsuite/gdb.ada/array_long_idx/pck.adb
new file mode 100644
index 0000000..54ddf5c
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/array_long_idx/pck.adb
@@ -0,0 +1,21 @@
+-- Copyright 2012-2025 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+package body Pck is
+ procedure Do_Nothing (A : System.Address) is
+ begin
+ null;
+ end Do_Nothing;
+end Pck;
diff --git a/gdb/testsuite/gdb.ada/array_long_idx/pck.ads b/gdb/testsuite/gdb.ada/array_long_idx/pck.ads
new file mode 100644
index 0000000..db7c0a8
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/array_long_idx/pck.ads
@@ -0,0 +1,19 @@
+-- Copyright 2012-2025 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+with System;
+package Pck is
+ procedure Do_Nothing (A : System.Address);
+end Pck;
diff --git a/gdb/testsuite/gdb.ada/array_of_variant.exp b/gdb/testsuite/gdb.ada/array_of_variant.exp
index 7b35bb0..84239a7 100644
--- a/gdb/testsuite/gdb.ada/array_of_variant.exp
+++ b/gdb/testsuite/gdb.ada/array_of_variant.exp
@@ -24,7 +24,7 @@ set old_gcc [gnat_version_compare < 8]
proc gdb_test_with_xfail { cmd re re_xfail msg } {
global scenario old_gcc
- set have_xfail [expr $old_gcc && [string equal "$scenario" "minimal"]]
+ set have_xfail [expr {$old_gcc && [string equal "$scenario" "minimal"]}]
gdb_test_multiple $cmd $msg {
-re -wrap $re {
diff --git a/gdb/testsuite/gdb.ada/arrayidx.exp b/gdb/testsuite/gdb.ada/arrayidx.exp
index 9481d28..b29a2a7 100644
--- a/gdb/testsuite/gdb.ada/arrayidx.exp
+++ b/gdb/testsuite/gdb.ada/arrayidx.exp
@@ -34,7 +34,7 @@ runto "p.adb:$bp_location"
gdb_test_no_output "set print array-indexes off"
-if $old_gcc {
+if {$old_gcc} {
setup_xfail "*-*-*"
}
gdb_test "print one_two_three" \
@@ -57,21 +57,21 @@ gdb_test "print p_one_two_three" \
"= \\(false, true, true\\)" \
"print p_one_two_three, indexes off"
-if $old_gcc {
+if {$old_gcc} {
setup_xfail "*-*-*"
}
gdb_test "print few_reps" \
"= \\(1, 2, 3, 3, 3, 3, 3, 4, 5\\)" \
"print few_reps, indexes off"
-if $old_gcc {
+if {$old_gcc} {
setup_xfail "*-*-*"
}
gdb_test "print many_reps" \
"= \\(1, 2, 3 <repeats 12 times>, 4, 5\\)" \
"print many_reps, indexes off"
-if $old_gcc {
+if {$old_gcc} {
setup_xfail "*-*-*"
}
gdb_test "print empty" \
@@ -82,7 +82,7 @@ gdb_test "print empty" \
gdb_test_no_output "set print array-indexes on"
-if $old_gcc {
+if {$old_gcc} {
setup_xfail "*-*-*"
}
gdb_test "print one_two_three" \
@@ -100,19 +100,19 @@ gdb_test "print u_one_two_three" \
gdb_test "print p_one_two_three" \
"= \\(one => false, two => true, three => true\\)"
-if $old_gcc {
+if {$old_gcc} {
setup_xfail "*-*-*"
}
gdb_test "print few_reps" \
"= \\(1 => 1, 2 => 2, 3 => 3, 4 => 3, 5 => 3, 6 => 3, 7 => 3, 8 => 4, 9 => 5\\)"
-if $old_gcc {
+if {$old_gcc} {
setup_xfail "*-*-*"
}
gdb_test "print many_reps" \
"= \\(1 => 1, 2 => 2, 3 => 3 <repeats 12 times>, 15 => 4, 16 => 5\\)"
-if $old_gcc {
+if {$old_gcc} {
setup_xfail "*-*-*"
}
gdb_test "print empty" \
diff --git a/gdb/testsuite/gdb.ada/call_pn.exp b/gdb/testsuite/gdb.ada/call_pn.exp
index 7e01523..4d9c26e 100644
--- a/gdb/testsuite/gdb.ada/call_pn.exp
+++ b/gdb/testsuite/gdb.ada/call_pn.exp
@@ -38,7 +38,7 @@ if {![runto "foo.adb:$bp_location"]} {
gdb_test_no_output {maint expand-symtabs "\(pck\|foo\)\.adb"}
set gcc_major_version [gcc_major_version]
-set have_xfail [expr $gcc_major_version >= 8 && $gcc_major_version <= 9]
+set have_xfail [expr {$gcc_major_version >= 8 && $gcc_major_version <= 9}]
# The xfail is for PR gcc/94469, which occurs with target board
# unix/-flto/-O0/-flto-partition=none/-ffat-lto-objects and gcc-8 and later.
diff --git a/gdb/testsuite/gdb.ada/complete.exp b/gdb/testsuite/gdb.ada/complete.exp
index c8fcc47..18548c7 100644
--- a/gdb/testsuite/gdb.ada/complete.exp
+++ b/gdb/testsuite/gdb.ada/complete.exp
@@ -164,7 +164,7 @@ test_gdb_complete "external_ident" \
[multi_line "p external_identical_one" \
"p external_identical_two" ]
-# Complete on the name of package.
+# Complete on the name of package.
test_gdb_complete "pck" \
[multi_line_with_optional \
"(p pck)?" \
diff --git a/gdb/testsuite/gdb.ada/exec_changed.exp b/gdb/testsuite/gdb.ada/exec_changed.exp
index c52757e..31add11 100644
--- a/gdb/testsuite/gdb.ada/exec_changed.exp
+++ b/gdb/testsuite/gdb.ada/exec_changed.exp
@@ -84,7 +84,7 @@ if { [gdb_start_cmd] < 0 } {
# Try again, this time with just changing the file time of first.
-clean_restart "${binfile}$EXEEXT"
+clean_restart "${::testfile}$EXEEXT"
# Ensure we don't accidentally use the main symbol cache.
gdb_test_no_output "mt set symbol-cache-size 0"
diff --git a/gdb/testsuite/gdb.ada/extended-access.c b/gdb/testsuite/gdb.ada/extended-access.c
new file mode 100644
index 0000000..9a1b299
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/extended-access.c
@@ -0,0 +1,38 @@
+/* This test program is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+int array_data[] = { 23, 24, 25, 26, 27 };
+
+struct bounds
+{
+ int LB0;
+ int UB0;
+};
+
+struct extended_access_ptr
+{
+ int (*P_ARRAY)[];
+ struct bounds BOUNDS;
+};
+
+struct extended_access_ptr the_array = { &array_data, { 93, 97 } };
+
+int
+main (void)
+{
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.ada/extended-access.exp b/gdb/testsuite/gdb.ada/extended-access.exp
new file mode 100644
index 0000000..7c02ad7
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/extended-access.exp
@@ -0,0 +1,29 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+require allow_ada_tests
+
+standard_testfile
+
+if {[prepare_for_testing "failed to prepare" ${testfile} ${srcfile}]} {
+ return
+}
+
+# The test case is written in C, because it was easy to make the
+# required type there without requiring a new version of GNAT.
+gdb_test_no_output "set lang ada"
+
+gdb_test "print the_array.all" \
+ [string_to_regexp " = (93 => 23, 24, 25, 26, 27)"]
diff --git a/gdb/testsuite/gdb.ada/file-then-restart.exp b/gdb/testsuite/gdb.ada/file-then-restart.exp
index faa9962..6e8e058 100644
--- a/gdb/testsuite/gdb.ada/file-then-restart.exp
+++ b/gdb/testsuite/gdb.ada/file-then-restart.exp
@@ -36,7 +36,7 @@ if {[gdb_compile_ada "${srcfile2}" "${binfile2}" executable {debug}] != ""} {
}
foreach_with_prefix scenario {kill no-kill} {
- clean_restart $binfile
+ clean_restart $::testfile
# Start the program, we should land in the program main procedure
if {[gdb_start_cmd] < 0} {
diff --git a/gdb/testsuite/gdb.ada/finish-var-size.exp b/gdb/testsuite/gdb.ada/finish-var-size.exp
index ae30086..6365c95 100644
--- a/gdb/testsuite/gdb.ada/finish-var-size.exp
+++ b/gdb/testsuite/gdb.ada/finish-var-size.exp
@@ -24,7 +24,7 @@ standard_ada_testfile p
set opts {}
lappend opts debug
-if { [have_fvar_tracking] } {
+if { [ada_fvar_tracking] } {
lappend opts additional_flags=-fvar-tracking
}
diff --git a/gdb/testsuite/gdb.ada/formatted_ref.exp b/gdb/testsuite/gdb.ada/formatted_ref.exp
index c63f847..d473554 100644
--- a/gdb/testsuite/gdb.ada/formatted_ref.exp
+++ b/gdb/testsuite/gdb.ada/formatted_ref.exp
@@ -16,8 +16,8 @@
# Author: P. N. Hilfinger, AdaCore Inc.
# Note: This test is essentially a transcription of gdb.cp/formatted-ref.exp,
-# and is thus much more wordy than it needs to be. There are fewer
-# tests because only a few parameter types in Ada are required to be
+# and is thus much more wordy than it needs to be. There are fewer
+# tests because only a few parameter types in Ada are required to be
# passed by reference, and there is no equivalent of &(&x) for reference
# values.
# This also tests that some other arithmetic operations on references
@@ -54,7 +54,7 @@ proc test_p_x { var val addr } {
gdb_test_multiple "$test" $test {
-re "\\$\[0-9\]+ = [string_to_regexp $val].*$gdb_prompt $" {
pass $test
- }
+ }
-re "\\$\[0-9\]+ = $addr.*$gdb_prompt $" {
fail "$test (prints just address)"
}
diff --git a/gdb/testsuite/gdb.ada/frame_args.exp b/gdb/testsuite/gdb.ada/frame_args.exp
index 4ffc3d1..e6cf868 100644
--- a/gdb/testsuite/gdb.ada/frame_args.exp
+++ b/gdb/testsuite/gdb.ada/frame_args.exp
@@ -32,7 +32,7 @@ set sp "\[ \t\]*"
if {![runto break_me]} {
return
-}
+}
# First, print all the arrays without indexes
diff --git a/gdb/testsuite/gdb.ada/fun_in_declare.exp b/gdb/testsuite/gdb.ada/fun_in_declare.exp
index 9ababcf..a5f6f63 100644
--- a/gdb/testsuite/gdb.ada/fun_in_declare.exp
+++ b/gdb/testsuite/gdb.ada/fun_in_declare.exp
@@ -27,7 +27,7 @@ clean_restart ${testfile}
if {![runto_main]} {
return
-}
+}
# Some variables used to simplify the maintenance of some of
# the regular expressions below.
diff --git a/gdb/testsuite/gdb.ada/huge.exp b/gdb/testsuite/gdb.ada/huge.exp
index 9a86804..fa94fa0 100644
--- a/gdb/testsuite/gdb.ada/huge.exp
+++ b/gdb/testsuite/gdb.ada/huge.exp
@@ -34,7 +34,7 @@ set opts {}
lappend opts debug
set compilation_succeeded 0
-for { set size $max } { $size >= $min } { set size [expr $size / 2] } {
+for { set size $max } { $size >= $min } { set size [expr {$size / 2}] } {
set try_opts [concat $opts [list additional_flags=-gnateDCRASHGDB=$size]]
# Use gdb_compile_ada_1 to prevent failed compilations from producing a
# FAIL.
diff --git a/gdb/testsuite/gdb.ada/import.exp b/gdb/testsuite/gdb.ada/import.exp
index ab3a1c9..51ce7fa 100644
--- a/gdb/testsuite/gdb.ada/import.exp
+++ b/gdb/testsuite/gdb.ada/import.exp
@@ -54,6 +54,9 @@ gdb_test "print pkg.imported_var_ada" " = 42"
gdb_test "print pkg.exported_var_ada" " = 99"
gdb_test "print exported_var_ada" " = 99"
+gdb_breakpoint "local_imported_func" message
+gdb_test "print copy" " = 42"
+
# This passes with gcc 10 but fails with gcc 9. With gcc 9, we have:
# <1><1659>: Abbrev Number: 4 (DW_TAG_subprogram)
# <165a> DW_AT_external : 1
@@ -76,19 +79,16 @@ gdb_test "print exported_var_ada" " = 99"
# The fact that things start to work when adding the DW_AT_declaration is
# consistent with what is described in commit ff9baa5f1c5, so xfail this
# (without pinpointing it to a specific gcc PR or commit).
-if { [gcc_major_version] < 10 } {
- setup_xfail *-*-*
-}
-gdb_breakpoint "pkg.imported_func_ada" message
-gdb_breakpoint "imported_func" message
-if { [gcc_major_version] < 10 } {
- setup_xfail *-*-*
+foreach func {"pkg.imported_func_ada" "imported_func"} {
+ clean_restart $testfile
+ if { [gcc_major_version] < 10 } {
+ setup_xfail *-*-*
+ }
+ gdb_breakpoint $func message
}
-gdb_breakpoint "imported_func_ada" message
-gdb_breakpoint "local_imported_func" message
-gdb_breakpoint "pkg.exported_func_ada" message
-gdb_breakpoint "exported_func_ada" message
-gdb_breakpoint "exported_func" message
-
-gdb_test "print copy" " = 42"
+foreach func {"imported_func_ada" "pkg.exported_func_ada" \
+ "exported_func_ada" "exported_func"} {
+ clean_restart $testfile
+ gdb_breakpoint $func message
+}
diff --git a/gdb/testsuite/gdb.ada/limited-length.exp b/gdb/testsuite/gdb.ada/limited-length.exp
index 7172c37..a5001fa 100644
--- a/gdb/testsuite/gdb.ada/limited-length.exp
+++ b/gdb/testsuite/gdb.ada/limited-length.exp
@@ -70,7 +70,7 @@ with_test_prefix "with standard max-value size" {
# Set the max-value-size so we can only print 33 elements.
set elements 33
set elem_size [get_valueof "/d" "(Large_1d_Array(1)'Size + 7) / 8" "*unknown*"]
-gdb_test_no_output "set max-value-size [expr $elem_size * $elements]"
+gdb_test_no_output "set max-value-size [expr {$elem_size * $elements}]"
with_test_prefix "with reduced max-value size" {
# GNAT historically named this type, but as the array type is
diff --git a/gdb/testsuite/gdb.ada/mi_catch_assert.exp b/gdb/testsuite/gdb.ada/mi_catch_assert.exp
index 1b4609a..c3dbfca 100644
--- a/gdb/testsuite/gdb.ada/mi_catch_assert.exp
+++ b/gdb/testsuite/gdb.ada/mi_catch_assert.exp
@@ -26,7 +26,7 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug additional
load_lib mi-support.exp
set MIFLAGS "-i=mi"
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
###################################################
# 2. Try catching conditionnal failed assertion. #
diff --git a/gdb/testsuite/gdb.ada/mi_catch_ex.exp b/gdb/testsuite/gdb.ada/mi_catch_ex.exp
index da3d340..0837028 100644
--- a/gdb/testsuite/gdb.ada/mi_catch_ex.exp
+++ b/gdb/testsuite/gdb.ada/mi_catch_ex.exp
@@ -30,7 +30,7 @@ set any_nb "\[0-9\]+"
load_lib mi-support.exp
set MIFLAGS "-i=mi"
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
####################################
# 1. Try catching all exceptions. #
diff --git a/gdb/testsuite/gdb.ada/mi_catch_ex_hand.exp b/gdb/testsuite/gdb.ada/mi_catch_ex_hand.exp
index 00e8f6e..0c50f59 100644
--- a/gdb/testsuite/gdb.ada/mi_catch_ex_hand.exp
+++ b/gdb/testsuite/gdb.ada/mi_catch_ex_hand.exp
@@ -26,7 +26,7 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug additional
load_lib mi-support.exp
set MIFLAGS "-i=mi"
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
#############################################
# 1. Try catching all exceptions handlers. #
diff --git a/gdb/testsuite/gdb.ada/mi_dyn_arr.exp b/gdb/testsuite/gdb.ada/mi_dyn_arr.exp
index c0e9f7f..b01f3e9 100644
--- a/gdb/testsuite/gdb.ada/mi_dyn_arr.exp
+++ b/gdb/testsuite/gdb.ada/mi_dyn_arr.exp
@@ -26,7 +26,7 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" }
load_lib mi-support.exp
set MIFLAGS "-i=mi"
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
if {[mi_runto_main] < 0} {
return 0
diff --git a/gdb/testsuite/gdb.ada/mi_ex_cond.exp b/gdb/testsuite/gdb.ada/mi_ex_cond.exp
index 53ace22..43caf76 100644
--- a/gdb/testsuite/gdb.ada/mi_ex_cond.exp
+++ b/gdb/testsuite/gdb.ada/mi_ex_cond.exp
@@ -30,7 +30,7 @@ set any_nb "\[0-9\]+"
load_lib mi-support.exp
set MIFLAGS "-i=mi"
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.ada/mi_exc_info.exp b/gdb/testsuite/gdb.ada/mi_exc_info.exp
index b9d0072..a95fb23 100644
--- a/gdb/testsuite/gdb.ada/mi_exc_info.exp
+++ b/gdb/testsuite/gdb.ada/mi_exc_info.exp
@@ -26,7 +26,7 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" }
load_lib mi-support.exp
set MIFLAGS "-i=mi"
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
if {[mi_runto_main] < 0} {
return 0
diff --git a/gdb/testsuite/gdb.ada/mi_interface.exp b/gdb/testsuite/gdb.ada/mi_interface.exp
index 630353d..f25adf0 100644
--- a/gdb/testsuite/gdb.ada/mi_interface.exp
+++ b/gdb/testsuite/gdb.ada/mi_interface.exp
@@ -28,7 +28,7 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug additional
load_lib mi-support.exp
set MIFLAGS "-i=mi"
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
if {[mi_runto_main] < 0} {
return 0
diff --git a/gdb/testsuite/gdb.ada/mi_prot.exp b/gdb/testsuite/gdb.ada/mi_prot.exp
index 7f68ca8..4edc93b 100644
--- a/gdb/testsuite/gdb.ada/mi_prot.exp
+++ b/gdb/testsuite/gdb.ada/mi_prot.exp
@@ -28,7 +28,7 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable \
load_lib mi-support.exp
set MIFLAGS "-i=mi"
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
if {[mi_runto_main] < 0} {
return 0
diff --git a/gdb/testsuite/gdb.ada/mi_ref_changeable.exp b/gdb/testsuite/gdb.ada/mi_ref_changeable.exp
index 315e2b3..c69f615 100644
--- a/gdb/testsuite/gdb.ada/mi_ref_changeable.exp
+++ b/gdb/testsuite/gdb.ada/mi_ref_changeable.exp
@@ -26,7 +26,7 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" }
load_lib mi-support.exp
set MIFLAGS "-i=mi"
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
if {[mi_runto_main] < 0} {
return 0
diff --git a/gdb/testsuite/gdb.ada/mi_string_access.exp b/gdb/testsuite/gdb.ada/mi_string_access.exp
index 25c0490..e29e17d 100644
--- a/gdb/testsuite/gdb.ada/mi_string_access.exp
+++ b/gdb/testsuite/gdb.ada/mi_string_access.exp
@@ -29,7 +29,7 @@ foreach_gnat_encoding scenario flags {all minimal} {
return -1
}
- mi_clean_restart $binfile-$scenario
+ mi_clean_restart $::testfile-$scenario
if {[mi_runto_main] < 0} {
return 0
diff --git a/gdb/testsuite/gdb.ada/mi_task_arg.exp b/gdb/testsuite/gdb.ada/mi_task_arg.exp
index 018e3bc..6c222ff 100644
--- a/gdb/testsuite/gdb.ada/mi_task_arg.exp
+++ b/gdb/testsuite/gdb.ada/mi_task_arg.exp
@@ -26,7 +26,7 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug additional
load_lib mi-support.exp
set MIFLAGS "-i=mi"
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.ada/mi_task_info.exp b/gdb/testsuite/gdb.ada/mi_task_info.exp
index aa05a02..9895cfe 100644
--- a/gdb/testsuite/gdb.ada/mi_task_info.exp
+++ b/gdb/testsuite/gdb.ada/mi_task_info.exp
@@ -26,7 +26,7 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug additional
load_lib mi-support.exp
set MIFLAGS "-i=mi"
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.ada/mi_var_access.exp b/gdb/testsuite/gdb.ada/mi_var_access.exp
index 9bfaeff..b595780 100644
--- a/gdb/testsuite/gdb.ada/mi_var_access.exp
+++ b/gdb/testsuite/gdb.ada/mi_var_access.exp
@@ -26,7 +26,7 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable debug] != "" } {
return -1
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
if {[mi_runto_main] < 0} {
return 0
diff --git a/gdb/testsuite/gdb.ada/mi_var_array.exp b/gdb/testsuite/gdb.ada/mi_var_array.exp
index a04673c..0ba90e7 100644
--- a/gdb/testsuite/gdb.ada/mi_var_array.exp
+++ b/gdb/testsuite/gdb.ada/mi_var_array.exp
@@ -29,7 +29,7 @@ foreach_gnat_encoding scenario flags {none all minimal} {
return -1
}
- mi_clean_restart $binfile-$scenario
+ mi_clean_restart $::testfile-$scenario
if {[mi_runto_main] < 0} {
return 0
diff --git a/gdb/testsuite/gdb.ada/mi_var_union.exp b/gdb/testsuite/gdb.ada/mi_var_union.exp
index 99882cf..b198800 100644
--- a/gdb/testsuite/gdb.ada/mi_var_union.exp
+++ b/gdb/testsuite/gdb.ada/mi_var_union.exp
@@ -31,7 +31,7 @@ foreach_gnat_encoding scenario flags {none all minimal} {
return -1
}
- mi_clean_restart $binfile-$scenario
+ mi_clean_restart $::testfile-$scenario
if {[mi_runto_main] < 0} {
return 0
diff --git a/gdb/testsuite/gdb.ada/mi_variant.exp b/gdb/testsuite/gdb.ada/mi_variant.exp
index 4c71f16..18693ce 100644
--- a/gdb/testsuite/gdb.ada/mi_variant.exp
+++ b/gdb/testsuite/gdb.ada/mi_variant.exp
@@ -30,7 +30,7 @@ foreach_gnat_encoding scenario flags {none all minimal} {
return -1
}
- mi_clean_restart $binfile-$scenario
+ mi_clean_restart $::testfile-$scenario
if {[mi_runto_main] < 0} {
return 0
diff --git a/gdb/testsuite/gdb.ada/mod_from_name.exp b/gdb/testsuite/gdb.ada/mod_from_name.exp
index 6384f39..e97eb5a 100644
--- a/gdb/testsuite/gdb.ada/mod_from_name.exp
+++ b/gdb/testsuite/gdb.ada/mod_from_name.exp
@@ -31,7 +31,7 @@ foreach_gnat_encoding scenario flags {all minimal} {
set bp_location [gdb_get_line_number "START" ${testdir}/foo.adb]
if {![runto "foo.adb:$bp_location"]} {
return
- }
+ }
# GNAT 9 and 10 are known to fail.
if {$scenario == "minimal"
diff --git a/gdb/testsuite/gdb.ada/null_array.exp b/gdb/testsuite/gdb.ada/null_array.exp
index 82c1923..851a0a6 100644
--- a/gdb/testsuite/gdb.ada/null_array.exp
+++ b/gdb/testsuite/gdb.ada/null_array.exp
@@ -30,7 +30,7 @@ runto "foo.adb:$bp_location"
if {[gnat_version_compare <= {4 4}]} {
# Ada array bounds are missing in older GCCs.
- setup_xfail *-*-*
+ setup_xfail *-*-*
}
gdb_test "print my_table" \
"= \\(\\)"
diff --git a/gdb/testsuite/gdb.ada/ref_param.exp b/gdb/testsuite/gdb.ada/ref_param.exp
index d1d8960..1ae1d97 100644
--- a/gdb/testsuite/gdb.ada/ref_param.exp
+++ b/gdb/testsuite/gdb.ada/ref_param.exp
@@ -27,7 +27,7 @@ clean_restart ${testfile}
if {![runto pck.adb:20]} {
return
-}
+}
gdb_test_no_output "set print frame-arguments all"
diff --git a/gdb/testsuite/gdb.ada/return-small-char-array.exp b/gdb/testsuite/gdb.ada/return-small-char-array.exp
new file mode 100644
index 0000000..75c781e
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/return-small-char-array.exp
@@ -0,0 +1,40 @@
+# Copyright 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+load_lib "ada.exp"
+
+require allow_ada_tests
+
+standard_ada_testfile proc
+
+if { [gdb_compile_ada $srcfile $binfile executable debug] != "" } {
+ return -1
+}
+
+clean_restart $testfile
+
+set bp_location [gdb_get_line_number "STOP" $testdir/proc.adb]
+runto "proc.adb:$bp_location"
+
+gdb_test "print Value.Name(My_Value)" \
+ { = "abcd"}
+
+# Step into the function.
+gdb_test "step 2" \
+ "return Of_Value;"
+
+# and finish.
+gdb_test "finish" \
+ { = "abcd"}
diff --git a/gdb/testsuite/gdb.ada/return-small-char-array/proc.adb b/gdb/testsuite/gdb.ada/return-small-char-array/proc.adb
new file mode 100644
index 0000000..b18d9fe
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/return-small-char-array/proc.adb
@@ -0,0 +1,22 @@
+-- Copyright 2025 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+with Value;
+procedure Proc is
+ My_Value : Value.T := "abcd";
+begin
+ null; -- STOP
+ My_Value := Value.Name(My_Value);
+end;
diff --git a/gdb/testsuite/gdb.ada/return-small-char-array/value.adb b/gdb/testsuite/gdb.ada/return-small-char-array/value.adb
new file mode 100644
index 0000000..2dd9faa
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/return-small-char-array/value.adb
@@ -0,0 +1,21 @@
+-- Copyright 2025 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+package body Value is
+ function Name (Of_Value : T) return T is
+ begin
+ return Of_Value;
+ end Name;
+end Value;
diff --git a/gdb/testsuite/gdb.ada/return-small-char-array/value.ads b/gdb/testsuite/gdb.ada/return-small-char-array/value.ads
new file mode 100644
index 0000000..16b171e
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/return-small-char-array/value.ads
@@ -0,0 +1,20 @@
+-- Copyright 2025 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+package Value is
+ type T is new String (1 .. 4);
+
+ function Name (Of_Value : T) return T;
+end;
diff --git a/gdb/testsuite/gdb.ada/scalar_storage.exp b/gdb/testsuite/gdb.ada/scalar_storage.exp
index 52a85cd..a380541 100644
--- a/gdb/testsuite/gdb.ada/scalar_storage.exp
+++ b/gdb/testsuite/gdb.ada/scalar_storage.exp
@@ -48,7 +48,7 @@ if {![runto "storage.adb:$bp_location"]} {
set re "value => 126, another_value => 12, color => green"
# This requires a compiler fix that is in GCC 14.
-set have_xfail [expr ![gnat_version_compare >= 14]]
+set have_xfail [expr {![gnat_version_compare >= 14]}]
set re_color "(red|green|blue|$decimal)"
set re_xfail \
"value => $decimal, another_value => $decimal, color => $re_color"
diff --git a/gdb/testsuite/gdb.ada/taft_type.exp b/gdb/testsuite/gdb.ada/taft_type.exp
index ac7b258..875718f 100644
--- a/gdb/testsuite/gdb.ada/taft_type.exp
+++ b/gdb/testsuite/gdb.ada/taft_type.exp
@@ -28,7 +28,7 @@ clean_restart ${testfile}
set bp_location [gdb_get_line_number "START" ${testdir}/p.adb]
if {![runto "p.adb:$bp_location"]} {
return
-}
+}
gdb_test "print w.e.all" \
"= \\(month => 8, year => 1974\\)"
diff --git a/gdb/testsuite/gdb.ada/unchecked_union.exp b/gdb/testsuite/gdb.ada/unchecked_union.exp
index 89c0593..5d29e28b 100644
--- a/gdb/testsuite/gdb.ada/unchecked_union.exp
+++ b/gdb/testsuite/gdb.ada/unchecked_union.exp
@@ -26,7 +26,7 @@ proc multi_line_string {str} {
foreach line [split $str \n] {
lappend result [string_to_regexp $line]
}
- return [eval multi_line $result]
+ return [multi_line {*}$result]
}
set inner_string { case ? is
diff --git a/gdb/testsuite/gdb.ada/var_arr_typedef/pack.adb b/gdb/testsuite/gdb.ada/var_arr_typedef/pack.adb
index 2f9114a..80cfac1 100644
--- a/gdb/testsuite/gdb.ada/var_arr_typedef/pack.adb
+++ b/gdb/testsuite/gdb.ada/var_arr_typedef/pack.adb
@@ -20,6 +20,6 @@ package body Pack is
return I;
end Identity;
- procedure Do_Nothing (A : Array_Type) is null;
+ procedure Do_Nothing (A : System.Address) is null;
end Pack;
diff --git a/gdb/testsuite/gdb.ada/var_arr_typedef/pack.ads b/gdb/testsuite/gdb.ada/var_arr_typedef/pack.ads
index 2ceb071..353ec48 100644
--- a/gdb/testsuite/gdb.ada/var_arr_typedef/pack.ads
+++ b/gdb/testsuite/gdb.ada/var_arr_typedef/pack.ads
@@ -13,6 +13,8 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+with System; use System;
+
package Pack is
type Rec_Type is record
I : Integer;
@@ -23,7 +25,7 @@ package Pack is
type Array_Type is array (Positive range <>) of Vec_Type;
- procedure Do_Nothing (A : Array_Type);
+ procedure Do_Nothing (A : System.Address);
function Identity (I : Integer) return Integer;
end Pack;
diff --git a/gdb/testsuite/gdb.ada/var_arr_typedef/var_arr_typedef.adb b/gdb/testsuite/gdb.ada/var_arr_typedef/var_arr_typedef.adb
index 4a7f4cb..86609a8 100644
--- a/gdb/testsuite/gdb.ada/var_arr_typedef/var_arr_typedef.adb
+++ b/gdb/testsuite/gdb.ada/var_arr_typedef/var_arr_typedef.adb
@@ -24,5 +24,5 @@ procedure Var_Arr_Typedef is
A : constant Array_Type (1 .. Identity (4)) := (VA, VA, VB, VB);
begin
- Do_Nothing (A); -- BREAK
+ Do_Nothing (A'Address); -- BREAK
end Var_Arr_Typedef;
diff --git a/gdb/testsuite/gdb.ada/verylong.exp b/gdb/testsuite/gdb.ada/verylong.exp
index e695ddd..de5fd04 100644
--- a/gdb/testsuite/gdb.ada/verylong.exp
+++ b/gdb/testsuite/gdb.ada/verylong.exp
@@ -44,10 +44,10 @@ gdb_test_multiple "ptype Long_Long_Long_Integer" "" {
require {expr $lll_int_size == 8 || $lll_int_size == 16}
gdb_test "print x" " = $max"
-gdb_test "print x / 2" " = [expr $max / 2]"
-gdb_test "print (x / 4) * 2" " = [expr ($max / 4) * 2]"
+gdb_test "print x / 2" " = [expr {$max / 2}]"
+gdb_test "print (x / 4) * 2" " = [expr {($max / 4) * 2}]"
gdb_test "print x - x" " = 0"
-gdb_test "print x - 99 + 1" " = [expr $max - 99 + 1]"
+gdb_test "print x - 99 + 1" " = [expr {$max - 99 + 1}]"
gdb_test "print -x" " = -$max"
gdb_test "print +x" " = $max"
diff --git a/gdb/testsuite/gdb.ada/whatis_array_val.exp b/gdb/testsuite/gdb.ada/whatis_array_val.exp
index 2ccac34..becc9b8 100644
--- a/gdb/testsuite/gdb.ada/whatis_array_val.exp
+++ b/gdb/testsuite/gdb.ada/whatis_array_val.exp
@@ -28,7 +28,7 @@ clean_restart ${testfile}
set bp_location [gdb_get_line_number "STOP" ${testdir}/foo.adb]
if {![runto "foo.adb:$bp_location"]} {
return
-}
+}
# Accept "foo." prefix for older versions of GNAT.
gdb_test "whatis full" \
diff --git a/gdb/testsuite/gdb.arch/aarch64-frameptr-vecreg-unwind.c b/gdb/testsuite/gdb.arch/aarch64-frameptr-vecreg-unwind.c
new file mode 100644
index 0000000..44ed3e8
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/aarch64-frameptr-vecreg-unwind.c
@@ -0,0 +1,62 @@
+/* Copyright 2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+volatile void dummy () {}
+
+long test_function(void)
+{
+ __asm__ volatile (
+ /* Zero d0 (64-bit vector register part of v0). */
+ "movi d0, #0\n\t"
+
+ /* Move the frame pointer (x29) to d0 using fmov. */
+ "fmov d0, x29\n\t"
+
+ /* Describe CFI: Frame pointer is now in d0. */
+ ".cfi_register x29, d0\n\t"
+
+ /* Clobber list: Specify all modified registers. */
+ : /* No output operands. */
+ : /* No input operands. */
+ : "d0"
+ );
+
+ dummy (); /* break-here */
+
+ __asm__ volatile (
+ /* Restore the frame pointer (x29) from d0 using fmov. */
+ "fmov x29, d0\n\t"
+
+ /* Describe CFI: Frame pointer is restored. */
+ ".cfi_restore x29\n\t"
+
+ /* Clobber list: Specify all modified registers. */
+ : /* No output operands. */
+ : /* No input operands. */
+ : "x29", "d0"
+ );
+
+ return 0;
+}
+
+int
+main ()
+{
+ long result = test_function ();
+ dummy ();
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.arch/aarch64-frameptr-vecreg-unwind.exp b/gdb/testsuite/gdb.arch/aarch64-frameptr-vecreg-unwind.exp
new file mode 100644
index 0000000..2d710bc
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/aarch64-frameptr-vecreg-unwind.exp
@@ -0,0 +1,33 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+require is_aarch64_target
+
+standard_testfile
+
+if { [prepare_for_testing "failed to prepare" ${testfile} \
+ "${srcfile}" {debug}] } {
+ return -1
+}
+
+if {![runto_main]} {
+ return
+}
+
+gdb_breakpoint [gdb_get_line_number "break-here"]
+gdb_continue_to_breakpoint "break-here"
+gdb_test "with confirm off --return -1" "result = test_function \\(\\);"
+gdb_test "step" "dummy \\(\\);"
+gdb_test "print result" "= -1"
diff --git a/gdb/testsuite/gdb.arch/aarch64-gcs-core.c b/gdb/testsuite/gdb.arch/aarch64-gcs-core.c
new file mode 100644
index 0000000..f3362cb
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/aarch64-gcs-core.c
@@ -0,0 +1,123 @@
+/* This test program is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/auxv.h>
+#include <linux/prctl.h>
+#include <sys/syscall.h>
+
+/* Feature check for Guarded Control Stack. */
+#ifndef HWCAP_GCS
+#define HWCAP_GCS (1ULL << 32)
+#endif
+
+#ifndef PR_GET_SHADOW_STACK_STATUS
+#define PR_GET_SHADOW_STACK_STATUS 74
+#define PR_SET_SHADOW_STACK_STATUS 75
+#define PR_SHADOW_STACK_ENABLE (1UL << 0)
+#endif
+
+/* We need to use a macro to call prctl because after GCS is enabled, it's not
+ possible to return from the function which enabled it. This is because the
+ return address of the calling function isn't on the GCS. */
+#define my_syscall2(num, arg1, arg2) \
+ ({ \
+ register long _num __asm__("x8") = (num); \
+ register long _arg1 __asm__("x0") = (long)(arg1); \
+ register long _arg2 __asm__("x1") = (long)(arg2); \
+ register long _arg3 __asm__("x2") = 0; \
+ register long _arg4 __asm__("x3") = 0; \
+ register long _arg5 __asm__("x4") = 0; \
+ \
+ __asm__ volatile ("svc #0\n" \
+ : "=r"(_arg1) \
+ : "r"(_arg1), "r"(_arg2), "r"(_arg3), "r"(_arg4), \
+ "r"(_arg5), "r"(_num) \
+ : "memory", "cc"); \
+ _arg1; \
+ })
+
+#define get_gcspr(void) \
+ ({ \
+ unsigned long *gcspr; \
+ \
+ /* Get GCSPR_EL0. */ \
+ asm volatile ("mrs %0, S3_3_C2_C5_1" : "=r"(gcspr) : : "cc"); \
+ \
+ gcspr; \
+ })
+
+/* Corrupt the return address to see if GDB will report a SIGSEGV with the
+ expected $_siginfo.si_code. */
+static void __attribute__ ((noinline))
+function (unsigned long *gcspr)
+{
+ /* x30 holds the return address. */
+ register long x30 __asm__("x30") __attribute__ ((unused));
+
+ /* Print GCSPR to stdout so that the testcase can capture it. */
+ printf ("%p\n", get_gcspr ());
+ fflush (stdout);
+
+ /* Cause a GCS exception. */
+ x30 = 0xbadc0ffee;
+ __asm__ volatile ("ret\n");
+}
+
+int
+main (void)
+{
+ if (!(getauxval (AT_HWCAP) & HWCAP_GCS))
+ {
+ fprintf (stderr, "GCS support not found in AT_HWCAP\n");
+ return EXIT_FAILURE;
+ }
+
+ /* Force shadow stacks on, our tests *should* be fine with or
+ without libc support and with or without this having ended
+ up tagged for GCS and enabled by the dynamic linker. We
+ can't use the libc prctl() function since we can't return
+ from enabling the stack. Also lock GCS if not already
+ locked so we can test behaviour when it's locked. */
+ unsigned long gcs_mode;
+ int ret = my_syscall2 (__NR_prctl, PR_GET_SHADOW_STACK_STATUS, &gcs_mode);
+ if (ret)
+ {
+ fprintf (stderr, "Failed to read GCS state: %d\n", ret);
+ return EXIT_FAILURE;
+ }
+
+ if (!(gcs_mode & PR_SHADOW_STACK_ENABLE))
+ {
+ gcs_mode = PR_SHADOW_STACK_ENABLE;
+ ret = my_syscall2 (__NR_prctl, PR_SET_SHADOW_STACK_STATUS, gcs_mode);
+ if (ret)
+ {
+ fprintf (stderr, "Failed to configure GCS: %d\n", ret);
+ return EXIT_FAILURE;
+ }
+ }
+
+ unsigned long *gcspr = get_gcspr ();
+
+ /* Pass gscpr to function just so it's used for something. */
+ function (gcspr); /* Break here. */
+
+ /* Avoid returning, in case libc doesn't understand GCS. */
+ exit (EXIT_SUCCESS);
+}
diff --git a/gdb/testsuite/gdb.arch/aarch64-gcs-core.exp b/gdb/testsuite/gdb.arch/aarch64-gcs-core.exp
new file mode 100644
index 0000000..9c4b7d5
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/aarch64-gcs-core.exp
@@ -0,0 +1,116 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Test reading and writing the core dump of a binary that uses a Guarded
+# Control Stack.
+
+require allow_aarch64_gcs_tests
+
+standard_testfile
+
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
+ return
+}
+
+set linespec ${srcfile}:[gdb_get_line_number "Break here"]
+
+if ![runto $linespec] {
+ return
+}
+
+# Obtain an OS-generated core file. Save test program output to
+# ${binfile}.out.
+set core_filename [core_find $binfile {} {} "${binfile}.out"]
+set core_generated [expr {$core_filename != ""}]
+
+# Make sure GDB can read the given core file correctly.
+proc check_core_file {core_filename saved_gcspr} {
+ global decimal hex
+
+ # Load the core file.
+ if [gdb_test "core $core_filename" \
+ [multi_line \
+ "Core was generated by .*\\." \
+ "Program terminated with signal SIGSEGV, Segmentation fault" \
+ "Guarded Control Stack error\\." \
+ "#0 function \\(gcspr=$hex\\) at .*aarch64-gcs-core.c:$decimal" \
+ "$decimal.*__asm__ volatile \\(\"ret\\\\n\"\\);"] \
+ "load core file"] {
+ return -1
+ }
+
+ # Check the value of GCSPR in the core file.
+ gdb_test "print/x \$gcspr" "\\$\[0-9\]+ = $saved_gcspr" \
+ "gcspr contents from core file"
+}
+
+if {!$core_generated} {
+ untested "unable to create or find corefile"
+}
+
+if {$core_generated} {
+ clean_restart
+ gdb_load $binfile
+
+ with_test_prefix "OS corefile" {
+ # Read GCSPR value from saved output of the test program.
+ set out_id [open ${binfile}.out "r"]
+ set gcspr_in_core [gets $out_id]
+ close $out_id
+
+ check_core_file $core_filename $gcspr_in_core
+ }
+}
+
+if ![gcore_cmd_available] {
+ unsupported "target does not support gcore command."
+ return
+}
+
+clean_restart
+gdb_load $binfile
+
+if ![runto $linespec] {
+ return
+}
+
+# Continue until a crash. The line with the hex number is optional because
+# it's printed by the test program, and doesn't appear in the Expect buffer
+# when testing a remote target.
+gdb_test "continue" \
+ [multi_line \
+ "Continuing\\." \
+ "($hex\r\n)?" \
+ "Program received signal SIGSEGV, Segmentation fault" \
+ "Guarded Control Stack error\\." \
+ "function \\(gcspr=$hex\\) at .*aarch64-gcs-core.c:$decimal" \
+ {.*__asm__ volatile \("ret\\n"\);}] \
+ "continue to SIGSEGV"
+
+set gcspr_in_gcore [get_valueof "/x" "\$gcspr" "*unknown*"]
+
+# Generate the gcore core file.
+set gcore_filename [standard_output_file "${testfile}.gcore"]
+set gcore_generated [gdb_gcore_cmd "$gcore_filename" "generate gcore file"]
+
+gdb_assert { $gcore_generated } "gcore corefile created"
+if {$gcore_generated} {
+ clean_restart
+ gdb_load $binfile
+
+ with_test_prefix "gcore corefile" {
+ check_core_file $gcore_filename $gcspr_in_gcore
+ }
+}
diff --git a/gdb/testsuite/gdb.arch/aarch64-gcs-disp-step.c b/gdb/testsuite/gdb.arch/aarch64-gcs-disp-step.c
new file mode 100644
index 0000000..754fda1
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/aarch64-gcs-disp-step.c
@@ -0,0 +1,140 @@
+/* This test program is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/auxv.h>
+#include <sys/syscall.h>
+#include <linux/prctl.h>
+
+/* Feature check for Guarded Control Stack. */
+#ifndef HWCAP_GCS
+#define HWCAP_GCS (1ULL << 32)
+#endif
+
+#ifndef PR_GET_SHADOW_STACK_STATUS
+#define PR_GET_SHADOW_STACK_STATUS 74
+#define PR_SET_SHADOW_STACK_STATUS 75
+#define PR_SHADOW_STACK_ENABLE (1UL << 0)
+#endif
+
+/* We need to use a macro to call prctl because after GCS is enabled, it's not
+ possible to return from the function which enabled it. This is because the
+ return address of the calling function isn't on the GCS. */
+#define my_syscall2(num, arg1, arg2) \
+ ({ \
+ register long _num __asm__("x8") = (num); \
+ register long _arg1 __asm__("x0") = (long)(arg1); \
+ register long _arg2 __asm__("x1") = (long)(arg2); \
+ register long _arg3 __asm__("x2") = 0; \
+ register long _arg4 __asm__("x3") = 0; \
+ register long _arg5 __asm__("x4") = 0; \
+ \
+ __asm__ volatile("svc #0\n" \
+ : "=r"(_arg1) \
+ : "r"(_arg1), "r"(_arg2), "r"(_arg3), "r"(_arg4), \
+ "r"(_arg5), "r"(_num) \
+ : "memory", "cc"); \
+ _arg1; \
+ })
+
+#define get_gcspr(void) \
+ ({ \
+ unsigned long *gcspr; \
+ \
+ /* Get GCSPR_EL0. */ \
+ asm volatile("mrs %0, S3_3_C2_C5_1" : "=r"(gcspr) : : "cc"); \
+ \
+ gcspr; \
+ })
+
+static int __attribute__ ((noinline))
+function2 (void)
+{
+ return EXIT_SUCCESS;
+}
+
+/* Put branch and link instructions being tested into their own functions so
+ that the program returns one level up in the stack after the displaced
+ stepped instruction. This tests that GDB doesn't leave the GCS out of sync
+ with the regular stack. */
+
+static int __attribute__ ((noinline))
+function_bl (void)
+{
+ register int x0 __asm__("x0");
+
+ __asm__ ("bl function2\n"
+ : "=r"(x0)
+ :
+ : "x30");
+
+ return x0;
+}
+
+static int __attribute__ ((noinline))
+function_blr (void)
+{
+ register int x0 __asm__("x0");
+
+ __asm__ ("blr %1\n"
+ : "=r"(x0)
+ : "r"(&function2)
+ : "x30");
+
+ return x0;
+}
+
+int
+main (void)
+{
+ if (!(getauxval (AT_HWCAP) & HWCAP_GCS))
+ {
+ fprintf (stderr, "GCS support not found in AT_HWCAP\n");
+ return EXIT_FAILURE;
+ }
+
+ /* Force shadow stacks on, our tests *should* be fine with or
+ without libc support and with or without this having ended
+ up tagged for GCS and enabled by the dynamic linker. We
+ can't use the libc prctl() function since we can't return
+ from enabling the stack. */
+ unsigned long gcs_mode;
+ int ret = my_syscall2 (__NR_prctl, PR_GET_SHADOW_STACK_STATUS, &gcs_mode);
+ if (ret)
+ {
+ fprintf (stderr, "Failed to read GCS state: %d\n", ret);
+ return EXIT_FAILURE;
+ }
+
+ if (!(gcs_mode & PR_SHADOW_STACK_ENABLE))
+ {
+ gcs_mode = PR_SHADOW_STACK_ENABLE;
+ ret = my_syscall2 (__NR_prctl, PR_SET_SHADOW_STACK_STATUS, gcs_mode);
+ if (ret)
+ {
+ fprintf (stderr, "Failed to configure GCS: %d\n", ret);
+ return EXIT_FAILURE;
+ }
+ }
+
+ int ret1 = function_bl ();
+ int ret2 = function_blr ();
+
+ /* Avoid returning, in case libc doesn't understand GCS. */
+ exit (ret1 + ret2);
+}
diff --git a/gdb/testsuite/gdb.arch/aarch64-gcs-disp-step.exp b/gdb/testsuite/gdb.arch/aarch64-gcs-disp-step.exp
new file mode 100644
index 0000000..2359d96
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/aarch64-gcs-disp-step.exp
@@ -0,0 +1,86 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Test displaced stepping in a program that uses a Guarded Control Stack.
+
+require allow_aarch64_gcs_tests
+
+standard_testfile
+
+if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
+ return
+}
+
+if ![runto_main] {
+ return
+}
+
+gdb_test_no_output "set breakpoint auto-hw off"
+gdb_test_no_output "set displaced-stepping on"
+
+# Get address of the branch and link instructions of interest.
+set addr_bl 0
+set test "get address of bl instruction"
+gdb_test_multiple "disassemble function_bl" $test -lbl {
+ -re "\r\n\\s+($hex) <\\+${decimal}>:\\s+bl\\s+${hex} <function2>(?=\r\n)" {
+ set addr_bl $expect_out(1,string)
+ exp_continue
+ }
+ -re -wrap "" {
+ gdb_assert { $addr_bl != 0 } $test
+ }
+}
+
+set addr_blr 0
+set test "get address of blr instruction"
+gdb_test_multiple "disassemble function_blr" $test -lbl {
+ -re "\r\n\\s+($hex) <\\+${decimal}>:\\s+blr\\s+x${decimal}(?=\r\n)" {
+ set addr_blr $expect_out(1,string)
+ exp_continue
+ }
+ -re -wrap "" {
+ gdb_assert { $addr_blr != 0 } $test
+ }
+}
+
+if { $addr_bl == 0 || $addr_blr == 0 } {
+ return
+}
+
+gdb_test "break *$addr_bl" \
+ "Breakpoint $decimal at $hex: file .*aarch64-gcs-disp-step.c, line ${decimal}." \
+ "set breakpoint at bl instruction"
+
+gdb_test "break *$addr_blr" \
+ "Breakpoint $decimal at $hex: file .*aarch64-gcs-disp-step.c, line ${decimal}." \
+ "set breakpoint at blr instruction"
+
+gdb_test "continue" \
+ [multi_line \
+ {Continuing\.} \
+ "" \
+ "Breakpoint $decimal, function_bl \\(\\) at .*aarch64-gcs-disp-step.c:${decimal}(?: \\\[GCS error\\\])?" \
+ {[^\r\n]+"bl function2\\n"}] \
+ "continue to breakpoint at bl"
+
+gdb_test "continue" \
+ [multi_line \
+ {Continuing\.} \
+ "" \
+ "Breakpoint $decimal, $hex in function_blr \\(\\) at .*aarch64-gcs-disp-step.c:${decimal}(?: \\\[GCS error\\\])?" \
+ {[^\r\n]+"blr %1\\n"}] \
+ "continue to breakpoint at blr"
+
+gdb_continue_to_end
diff --git a/gdb/testsuite/gdb.arch/aarch64-gcs-return.c b/gdb/testsuite/gdb.arch/aarch64-gcs-return.c
new file mode 100644
index 0000000..c062fea
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/aarch64-gcs-return.c
@@ -0,0 +1,105 @@
+/* This test program is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/auxv.h>
+#include <sys/syscall.h>
+#include <linux/prctl.h>
+
+/* Feature check for Guarded Control Stack. */
+#ifndef HWCAP_GCS
+#define HWCAP_GCS (1ULL << 32)
+#endif
+
+#ifndef PR_GET_SHADOW_STACK_STATUS
+#define PR_GET_SHADOW_STACK_STATUS 74
+#define PR_SET_SHADOW_STACK_STATUS 75
+#define PR_SHADOW_STACK_ENABLE (1UL << 0)
+#endif
+
+/* We need to use a macro to call prctl because after GCS is enabled, it's not
+ possible to return from the function which enabled it. This is because the
+ return address of the calling function isn't on the GCS. */
+#define my_syscall2(num, arg1, arg2) \
+ ({ \
+ register long _num __asm__("x8") = (num); \
+ register long _arg1 __asm__("x0") = (long)(arg1); \
+ register long _arg2 __asm__("x1") = (long)(arg2); \
+ register long _arg3 __asm__("x2") = 0; \
+ register long _arg4 __asm__("x3") = 0; \
+ register long _arg5 __asm__("x4") = 0; \
+ \
+ __asm__ volatile("svc #0\n" \
+ : "=r"(_arg1) \
+ : "r"(_arg1), "r"(_arg2), "r"(_arg3), "r"(_arg4), \
+ "r"(_arg5), "r"(_num) \
+ : "memory", "cc"); \
+ _arg1; \
+ })
+
+static int __attribute__ ((noinline))
+call2 ()
+{
+ return 42; /* Break call2. */
+}
+
+static int __attribute__ ((noinline))
+call1 ()
+{
+ return call2 (); /* Break call1. */
+}
+
+int
+main ()
+{
+ if (!(getauxval (AT_HWCAP) & HWCAP_GCS))
+ {
+ fprintf (stderr, "GCS support not found in AT_HWCAP\n");
+ return EXIT_FAILURE;
+ }
+
+ /* Force shadow stacks on, our tests *should* be fine with or
+ without libc support and with or without this having ended
+ up tagged for GCS and enabled by the dynamic linker. We
+ can't use the libc prctl() function since we can't return
+ from enabling the stack. Also lock GCS if not already
+ locked so we can test behaviour when it's locked. */
+ unsigned long gcs_mode;
+ int ret = my_syscall2 (__NR_prctl, PR_GET_SHADOW_STACK_STATUS, &gcs_mode);
+ if (ret)
+ {
+ fprintf (stderr, "Failed to read GCS state: %d\n", ret);
+ return EXIT_FAILURE;
+ }
+
+ if (!(gcs_mode & PR_SHADOW_STACK_ENABLE))
+ {
+ gcs_mode = PR_SHADOW_STACK_ENABLE;
+ ret = my_syscall2 (__NR_prctl, PR_SET_SHADOW_STACK_STATUS, gcs_mode);
+ if (ret)
+ {
+ fprintf (stderr, "Failed to configure GCS: %d\n", ret);
+ return EXIT_FAILURE;
+ }
+ }
+
+ call1 (); /* Break begin. */
+
+ /* Avoid returning, in case libc doesn't understand GCS. */
+ exit (EXIT_SUCCESS);
+}
diff --git a/gdb/testsuite/gdb.arch/aarch64-gcs-return.exp b/gdb/testsuite/gdb.arch/aarch64-gcs-return.exp
new file mode 100644
index 0000000..6f695da
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/aarch64-gcs-return.exp
@@ -0,0 +1,132 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Test the GDB return command in a program that uses a Guarded Control Stack.
+# Based on the return tests in gdb.arch/amd64-shadow-stack-cmds.exp.
+# Note that potential GCS violations often only occur after resuming normal
+# execution. Therefore, it is important to test normal program
+# completion after testing the return command.
+
+require allow_aarch64_gcs_tests
+
+standard_testfile
+
+if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
+ return
+}
+
+set begin_line [gdb_get_line_number "Break begin"]
+set call1_line [gdb_get_line_number "Break call1"]
+set call2_line [gdb_get_line_number "Break call2"]
+
+if ![runto ${begin_line}] {
+ return
+}
+
+proc restart_and_run_infcall_call2 {} {
+ global binfile call2_line
+ clean_restart
+ gdb_load $binfile
+ if ![runto_main] {
+ return
+ }
+ set inside_infcall_str "The program being debugged stopped while in a function called from GDB"
+ gdb_breakpoint ${call2_line}
+ gdb_continue_to_breakpoint "Break call2" ".*Break call2.*"
+ gdb_test "call (int) call2()" \
+ "Breakpoint \[0-9\]*, call2.*$inside_infcall_str.*"
+}
+
+with_test_prefix "test inferior call and continue" {
+ gdb_breakpoint ${call1_line}
+ gdb_continue_to_breakpoint "Break call1" ".*Break call1.*"
+
+ gdb_test "call (int) call2()" "= 42"
+
+ gdb_continue_to_end
+}
+
+with_test_prefix "test return inside an inferior call" {
+ restart_and_run_infcall_call2
+
+ gdb_test "return" "\#0.*call2.*" \
+ "Test GCS return inside an inferior call" \
+ "Make.*return now\\? \\(y or n\\) " "y"
+
+ gdb_continue_to_end
+}
+
+with_test_prefix "test return 'above' an inferior call" {
+ restart_and_run_infcall_call2
+
+ gdb_test "frame 2" "call2 ().*" "move to frame 'above' inferior call"
+
+ gdb_test "return" "\#0.*call1.*" \
+ "Test GCS return 'above' an inferior call" \
+ "Make.*return now\\? \\(y or n\\) " "y"
+
+ gdb_continue_to_end
+}
+
+clean_restart
+gdb_load $binfile
+if ![runto ${begin_line}] {
+ return
+}
+
+# Extract GCS pointer inside main, call1 and call2 function.
+gdb_breakpoint ${call1_line}
+gdb_breakpoint ${call2_line}
+set gcspr_main [get_valueof /x "\$gcspr" 0 "get value of gcspr in main"]
+gdb_continue_to_breakpoint "Break call1" ".*Break call1.*"
+set gcspr_call1 [get_valueof /x "\$gcspr" 0 "get value of gcspr in call1"]
+gdb_continue_to_breakpoint "Break call2" ".*Break call2.*"
+set gcspr_call2 [get_valueof /x "\$gcspr" 0 "get value of gcspr in call2"]
+
+with_test_prefix "test frame level update" {
+ gdb_test "up" "call1.*" "move to frame 1"
+ gdb_test "print /x \$gcspr" "= $gcspr_call1" "check gcspr of frame 1"
+ gdb_test "up" "main.*" "move to frame 2"
+ gdb_test "print /x \$gcspr" "= $gcspr_main" "check gcspr of frame 2"
+ gdb_test "frame 0" "call2.*" "move to frame 0"
+ gdb_test "print /x \$gcspr" "= $gcspr_call2" "check gcspr of frame 0"
+}
+
+with_test_prefix "test return from current frame" {
+ gdb_test "return (int) 1" "#0.*call1.*" \
+ "Test GCS return from current frame" \
+ "Make.*return now\\? \\(y or n\\) " "y"
+
+ gdb_continue_to_end
+}
+
+clean_restart
+gdb_load $binfile
+if ![runto_main] {
+ return
+}
+
+with_test_prefix "test return from past frame" {
+ gdb_breakpoint ${call2_line}
+ gdb_continue_to_breakpoint "Break call2" ".*Break call2.*"
+
+ gdb_test "frame 1" ".*in call1.*"
+
+ gdb_test "return (int) 1" "#0.*main.*" \
+ "Test GCS return from past frame" \
+ "Make.*return now\\? \\(y or n\\) " "y"
+
+ gdb_continue_to_end
+}
diff --git a/gdb/testsuite/gdb.arch/aarch64-gcs-tdesc-without-linux.xml b/gdb/testsuite/gdb.arch/aarch64-gcs-tdesc-without-linux.xml
new file mode 100644
index 0000000..056ab58
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/aarch64-gcs-tdesc-without-linux.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0"?>
+<!DOCTYPE target SYSTEM "gdb-target.dtd">
+<target>
+ <architecture>aarch64</architecture>
+ <feature name="org.gnu.gdb.aarch64.core">
+ <flags id="cpsr_flags" size="4">
+ <field name="SP" start="0" end="0" type="bool"/>
+ <field name="EL" start="2" end="3" type="uint32"/>
+ <field name="nRW" start="4" end="4" type="bool"/>
+ <field name="F" start="6" end="6" type="bool"/>
+ <field name="I" start="7" end="7" type="bool"/>
+ <field name="A" start="8" end="8" type="bool"/>
+ <field name="D" start="9" end="9" type="bool"/>
+ <field name="BTYPE" start="10" end="11" type="uint32"/>
+ <field name="SSBS" start="12" end="12" type="bool"/>
+ <field name="IL" start="20" end="20" type="bool"/>
+ <field name="SS" start="21" end="21" type="bool"/>
+ <field name="PAN" start="22" end="22" type="bool"/>
+ <field name="UAO" start="23" end="23" type="bool"/>
+ <field name="DIT" start="24" end="24" type="bool"/>
+ <field name="TCO" start="25" end="25" type="bool"/>
+ <field name="V" start="28" end="28" type="bool"/>
+ <field name="C" start="29" end="29" type="bool"/>
+ <field name="Z" start="30" end="30" type="bool"/>
+ <field name="N" start="31" end="31" type="bool"/>
+ </flags>
+ <reg name="x0" bitsize="64" type="int" regnum="0"/>
+ <reg name="x1" bitsize="64" type="int" regnum="1"/>
+ <reg name="x2" bitsize="64" type="int" regnum="2"/>
+ <reg name="x3" bitsize="64" type="int" regnum="3"/>
+ <reg name="x4" bitsize="64" type="int" regnum="4"/>
+ <reg name="x5" bitsize="64" type="int" regnum="5"/>
+ <reg name="x6" bitsize="64" type="int" regnum="6"/>
+ <reg name="x7" bitsize="64" type="int" regnum="7"/>
+ <reg name="x8" bitsize="64" type="int" regnum="8"/>
+ <reg name="x9" bitsize="64" type="int" regnum="9"/>
+ <reg name="x10" bitsize="64" type="int" regnum="10"/>
+ <reg name="x11" bitsize="64" type="int" regnum="11"/>
+ <reg name="x12" bitsize="64" type="int" regnum="12"/>
+ <reg name="x13" bitsize="64" type="int" regnum="13"/>
+ <reg name="x14" bitsize="64" type="int" regnum="14"/>
+ <reg name="x15" bitsize="64" type="int" regnum="15"/>
+ <reg name="x16" bitsize="64" type="int" regnum="16"/>
+ <reg name="x17" bitsize="64" type="int" regnum="17"/>
+ <reg name="x18" bitsize="64" type="int" regnum="18"/>
+ <reg name="x19" bitsize="64" type="int" regnum="19"/>
+ <reg name="x20" bitsize="64" type="int" regnum="20"/>
+ <reg name="x21" bitsize="64" type="int" regnum="21"/>
+ <reg name="x22" bitsize="64" type="int" regnum="22"/>
+ <reg name="x23" bitsize="64" type="int" regnum="23"/>
+ <reg name="x24" bitsize="64" type="int" regnum="24"/>
+ <reg name="x25" bitsize="64" type="int" regnum="25"/>
+ <reg name="x26" bitsize="64" type="int" regnum="26"/>
+ <reg name="x27" bitsize="64" type="int" regnum="27"/>
+ <reg name="x28" bitsize="64" type="int" regnum="28"/>
+ <reg name="x29" bitsize="64" type="int" regnum="29"/>
+ <reg name="x30" bitsize="64" type="int" regnum="30"/>
+ <reg name="sp" bitsize="64" type="data_ptr" regnum="31"/>
+ <reg name="pc" bitsize="64" type="code_ptr" regnum="32"/>
+ <reg name="cpsr" bitsize="32" type="cpsr_flags" regnum="33"/>
+ </feature>
+ <feature name="org.gnu.gdb.aarch64.gcs">
+ <reg name="gcspr" bitsize="64" type="data_ptr" regnum="90" group="system"/>
+ </feature>
+</target>
diff --git a/gdb/testsuite/gdb.arch/aarch64-gcs-wrong-tdesc.c b/gdb/testsuite/gdb.arch/aarch64-gcs-wrong-tdesc.c
new file mode 100644
index 0000000..10cf749
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/aarch64-gcs-wrong-tdesc.c
@@ -0,0 +1,26 @@
+/* This test program is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+
+int
+main (void)
+{
+ printf ("Hello, world!\n");
+
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.arch/aarch64-gcs-wrong-tdesc.exp b/gdb/testsuite/gdb.arch/aarch64-gcs-wrong-tdesc.exp
new file mode 100644
index 0000000..f0508cd
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/aarch64-gcs-wrong-tdesc.exp
@@ -0,0 +1,48 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Test that GDB complains when given a target description with the GCS feature
+# but not the GCS Linux feature.
+
+require allow_aarch64_gcs_tests
+
+standard_testfile
+
+if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
+ return
+}
+
+set xml_path "${srcdir}/${subdir}/aarch64-gcs-tdesc-without-linux.xml"
+
+gdb_test "set tdesc filename ${xml_path}" \
+ "warning: Incomplete GCS support in the target: missing Linux part. GCS feature disabled." \
+ "warn about incomplete GCS support"
+
+# We can't test a debugging session on a remote target because with the
+# wrong tdesc, GDB expects a g packet reply with the wrong size.
+if {[gdb_protocol_is_remote]} {
+ return
+}
+
+if ![runto_main] {
+ return
+}
+
+gdb_test "print \$gcspr" " = <unavailable>" "GCSPR is unavailable"
+
+# Now check that we can continue the debugging session normally.
+gdb_test "next"
+
+gdb_continue_to_end
diff --git a/gdb/testsuite/gdb.arch/aarch64-gcs.c b/gdb/testsuite/gdb.arch/aarch64-gcs.c
new file mode 100644
index 0000000..9eb2e9e
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/aarch64-gcs.c
@@ -0,0 +1,180 @@
+/* This test program is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <signal.h>
+#include <sys/auxv.h>
+#include <sys/syscall.h>
+#include <linux/prctl.h>
+
+/* Feature check for Guarded Control Stack. */
+#ifndef HWCAP_GCS
+#define HWCAP_GCS (1ULL << 32)
+#endif
+
+#ifndef PR_GET_SHADOW_STACK_STATUS
+#define PR_GET_SHADOW_STACK_STATUS 74
+#define PR_SET_SHADOW_STACK_STATUS 75
+#define PR_SHADOW_STACK_ENABLE (1UL << 0)
+#endif
+
+/* We need to use a macro to call prctl because after GCS is enabled, it's not
+ possible to return from the function which enabled it. This is because the
+ return address of the calling function isn't on the GCS. */
+#define my_syscall2(num, arg1, arg2) \
+ ({ \
+ register long _num __asm__("x8") = (num); \
+ register long _arg1 __asm__("x0") = (long)(arg1); \
+ register long _arg2 __asm__("x1") = (long)(arg2); \
+ register long _arg3 __asm__("x2") = 0; \
+ register long _arg4 __asm__("x3") = 0; \
+ register long _arg5 __asm__("x4") = 0; \
+ \
+ __asm__ volatile ("svc #0\n" \
+ : "=r"(_arg1) \
+ : "r"(_arg1), "r"(_arg2), "r"(_arg3), "r"(_arg4), \
+ "r"(_arg5), "r"(_num) \
+ : "memory", "cc"); \
+ _arg1; \
+ })
+
+#define get_gcspr(void) \
+ ({ \
+ unsigned long *gcspr; \
+ \
+ /* Get GCSPR_EL0. */ \
+ asm volatile ("mrs %0, S3_3_C2_C5_1" : "=r"(gcspr) : : "cc"); \
+ \
+ gcspr; \
+ })
+
+static unsigned long *handler_gcspr = 0;
+
+static void
+handler (int sig)
+{
+ handler_gcspr = get_gcspr ();
+}
+
+static int __attribute__ ((unused))
+called_from_gdb (int val)
+{
+ return val + 1;
+}
+
+/* Corrupt the return address to see if GDB will report a SIGSEGV with the
+ expected $_siginfo.si_code. */
+static void __attribute__ ((noinline))
+normal_function2 (void)
+{
+ /* x30 holds the return address. */
+ register unsigned long x30 __asm__("x30") __attribute__ ((unused));
+
+ /* Cause a GCS exception. */
+ x30 = 0xbadc0ffee;
+ /* Use explicit ret so that we can verify that a SIGSEGV was generated
+ exactly on the return instruction. */
+ __asm__ volatile ("ret\n");
+}
+
+static inline void __attribute__ ((__always_inline__))
+inline_function2 (void)
+{
+ normal_function2 ();
+}
+
+static void __attribute__ ((noinline))
+normal_function1 (void)
+{
+ inline_function2 ();
+}
+
+/* First in a sequence of inline and normal functions, to test GDB
+ backtrace. */
+static inline void __attribute__ ((__always_inline__))
+inline_function1 (void)
+{
+ normal_function1 ();
+}
+
+/* Trivial function, just so that GDB can test return with wrong GCSPR. */
+static void __attribute__ ((noinline))
+normal_function0 (void)
+{
+ /* Use explicit ret so that we can verify that a SIGSEGV was generated
+ exactly on the return instruction. */
+ __asm__ volatile ("ret\n");
+}
+
+int
+main (void)
+{
+ if (!(getauxval (AT_HWCAP) & HWCAP_GCS))
+ {
+ fprintf (stderr, "GCS support not found in AT_HWCAP\n");
+ return EXIT_FAILURE;
+ }
+
+ /* Force shadow stacks on, our tests *should* be fine with or
+ without libc support and with or without this having ended
+ up tagged for GCS and enabled by the dynamic linker. We
+ can't use the libc prctl() function since we can't return
+ from enabling the stack. Also lock GCS if not already
+ locked so we can test behaviour when it's locked. */
+ unsigned long gcs_mode;
+ int ret = my_syscall2 (__NR_prctl, PR_GET_SHADOW_STACK_STATUS, &gcs_mode);
+ if (ret)
+ {
+ fprintf (stderr, "Failed to read GCS state: %d\n", ret);
+ return EXIT_FAILURE;
+ }
+
+ if (!(gcs_mode & PR_SHADOW_STACK_ENABLE))
+ {
+ gcs_mode = PR_SHADOW_STACK_ENABLE;
+ ret = my_syscall2 (__NR_prctl, PR_SET_SHADOW_STACK_STATUS, gcs_mode);
+ if (ret)
+ {
+ fprintf (stderr, "Failed to configure GCS: %d\n", ret);
+ return EXIT_FAILURE;
+ }
+ }
+
+ /* Regular function call. */
+ normal_function0 ();
+
+ /* This is used by GDB. */
+ __attribute__((unused)) unsigned long *gcspr = get_gcspr ();
+
+ struct sigaction act = { 0 };
+
+ act.sa_handler = &handler; /* Break here. */
+ if (sigaction (SIGUSR1, &act, NULL) == -1)
+ {
+ perror ("sigaction");
+ exit (EXIT_FAILURE);
+ }
+
+ raise (SIGUSR1);
+
+/* Call sequence of inline and normal functions, to test GDB backtrace. */
+ inline_function1 ();
+
+ /* Avoid returning, in case libc doesn't understand GCS. */
+ exit (EXIT_SUCCESS);
+}
diff --git a/gdb/testsuite/gdb.arch/aarch64-gcs.exp b/gdb/testsuite/gdb.arch/aarch64-gcs.exp
new file mode 100644
index 0000000..b09e010
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/aarch64-gcs.exp
@@ -0,0 +1,99 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Test a binary that uses a Guarded Control Stack.
+
+require allow_aarch64_gcs_tests
+
+standard_testfile
+
+if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
+ return
+}
+
+set linespec ${srcfile}:[gdb_get_line_number "Break here"]
+
+if ![runto ${linespec}] {
+ return
+}
+
+gdb_test "print \$gcs_features_enabled" \
+ [string_to_regexp { = [ PR_SHADOW_STACK_ENABLE ]}] \
+ "GCS is enabled"
+
+gdb_test "print \$gcspr" ". = \\(void \\*\\) $hex" "GDB knows about gcspr"
+gdb_test "print \$gcspr == gcspr" ". = 1" "GDB has the correct gcspr value"
+gdb_test_no_output "set \$gcspr_in_main = \$gcspr" \
+ "save gcspr value in main for later"
+
+# If the inferior function call fails, we don't want the tests following it
+# to be affected.
+gdb_test_no_output "set unwindonsignal on"
+gdb_test "print called_from_gdb (41)" ". = 42" "call inferior function"
+
+gdb_test "break handler" "Breakpoint \[0-9\]+ .*aarch64-gcs.c, line \[0-9\]+\\."
+gdb_test "handle SIGUSR1 nostop" \
+ ".*\r\nSIGUSR1\\s+No\\s+Yes\\s+Yes\\s+User defined signal 1" \
+ "let the inferior receive SIGUSR1 uninterrupted"
+gdb_test "continue" \
+ ".*\r\nBreakpoint \[0-9\]+, handler \\(sig=10\\) at .*aarch64-gcs.c.*handler_gcspr = get_gcspr \\(\\);" \
+ "continue to signal handler"
+
+gdb_test_no_output "set \$gcspr_in_handler = \$gcspr" \
+ "save gcspr value in handler for later"
+# Select the frame above the <signal handler called> frame, which makes GDB
+# unwind the gcspr from the signal frame GCS context.
+gdb_test "frame 2" "#2 ($hex in )?\\S+ \\(.*\\) (at|from) \\S+.*" \
+ "reached frame 2"
+gdb_test "print \$gcspr" ". = \\(void \\*\\) $hex" "gcspr in frame level 2"
+gdb_test "print \$gcspr == \$gcspr_in_handler + 8" ". = 1" \
+ "gcspr unwound from signal context is correct"
+
+gdb_test "continue" \
+ [multi_line \
+ "Continuing\\." \
+ "" \
+ "Program received signal SIGSEGV, Segmentation fault" \
+ "Guarded Control Stack error\\." \
+ "normal_function2 \\(\\) at .*aarch64-gcs.c:$decimal" \
+ "${decimal}\\s+__asm__ volatile \\(\"ret\\\\n\"\\);"] \
+ "continue to SIGSEGV"
+
+gdb_test "print \$_siginfo.si_code" ". = 10" \
+ "test value of si_code when GCS SIGSEGV happens"
+# The GCS grows down, and there are two real frames until main.
+gdb_test "print \$gcspr == \$gcspr_in_main - 16" ". = 1" \
+ "test value of gcspr when GCS SIGSEGV happens"
+
+# Test writing to GCSPR.
+clean_restart
+gdb_load $binfile
+if ![runto normal_function0] {
+ return
+}
+
+gdb_test_no_output "set \$gcspr = 0xbadc0ffee" "set bogus gcspr value"
+# Continue to make sure that the value was actually written to the register.
+# The SIGSEGV isn't a GCS error because the problem isn't that the GCS entry
+# doesn't match the return address, but rather that that GCSPR is pointing
+# to an invalid address.
+gdb_test "continue" \
+ [multi_line \
+ "Continuing\\." \
+ "" \
+ "Program received signal SIGSEGV, Segmentation fault\\." \
+ "normal_function0 \\(\\) at .*aarch64-gcs.c:$decimal" \
+ "${decimal}\\s+__asm__ volatile \\(\"ret\\\\n\"\\);"] \
+ "continue after bad gcspr"
diff --git a/gdb/testsuite/gdb.arch/aarch64-mte-core.exp b/gdb/testsuite/gdb.arch/aarch64-mte-core.exp
index fdaa061..7da836e 100644
--- a/gdb/testsuite/gdb.arch/aarch64-mte-core.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-mte-core.exp
@@ -145,7 +145,8 @@ proc test_mode { mode } {
# both correctly.
if {$gcore_generated} {
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
with_test_prefix "gcore corefile" {
test_mte_core_file $gcore_filename $mode
}
@@ -154,7 +155,8 @@ proc test_mode { mode } {
}
if {$core_generated} {
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
with_test_prefix "native corefile" {
test_mte_core_file $core_filename $mode
}
diff --git a/gdb/testsuite/gdb.arch/aarch64-pseudo-unwind.exp b/gdb/testsuite/gdb.arch/aarch64-pseudo-unwind.exp
index 7ce1fdf..e835ddf 100644
--- a/gdb/testsuite/gdb.arch/aarch64-pseudo-unwind.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-pseudo-unwind.exp
@@ -29,7 +29,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} \
return -1
}
-clean_restart ${binfile}
+clean_restart $testfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-core.exp.tcl b/gdb/testsuite/gdb.arch/aarch64-sme-core.exp.tcl
index 44d0808..64cfd54 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-core.exp.tcl
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-core.exp.tcl
@@ -91,7 +91,8 @@ proc generate_sme_core_files { executable binfile id state vl svl} {
# and the native one generated by the Linux Kernel. Make sure GDB can read
# both correctly.
if {$gcore_generated} {
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
gdb_test_no_output "set print repeats 1" \
"adjust repeat count post-crash gcore"
@@ -103,7 +104,8 @@ proc generate_sme_core_files { executable binfile id state vl svl} {
}
if {$core_generated} {
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
gdb_test_no_output "set print repeats 1" \
"adjust repeat count post-crash native core"
diff --git a/gdb/testsuite/gdb.arch/alpha-step.exp b/gdb/testsuite/gdb.arch/alpha-step.exp
index e41bd97..bdbfeec 100644
--- a/gdb/testsuite/gdb.arch/alpha-step.exp
+++ b/gdb/testsuite/gdb.arch/alpha-step.exp
@@ -25,7 +25,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {}] !
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
proc test_stepi {function } {
# Restart the program from scratch. If GDB got confused during one
diff --git a/gdb/testsuite/gdb.arch/altivec-abi.exp b/gdb/testsuite/gdb.arch/altivec-abi.exp
index 12f523b..fb5367d 100644
--- a/gdb/testsuite/gdb.arch/altivec-abi.exp
+++ b/gdb/testsuite/gdb.arch/altivec-abi.exp
@@ -47,7 +47,8 @@ proc altivec_abi_tests { extra_flags force_abi } {
}
}
- clean_restart $binfile
+ clean_restart
+ gdb_load $::binfile
# Run to `main' where we begin our tests.
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.arch/amd64-byte.exp b/gdb/testsuite/gdb.arch/amd64-byte.exp
index ac70672..d084303 100644
--- a/gdb/testsuite/gdb.arch/amd64-byte.exp
+++ b/gdb/testsuite/gdb.arch/amd64-byte.exp
@@ -27,7 +27,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list
return
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.arch/amd64-dword.exp b/gdb/testsuite/gdb.arch/amd64-dword.exp
index e8a527d..cd3d76b 100644
--- a/gdb/testsuite/gdb.arch/amd64-dword.exp
+++ b/gdb/testsuite/gdb.arch/amd64-dword.exp
@@ -27,7 +27,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list
return
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis-no-cfi.S b/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis-no-cfi.S
new file mode 100644
index 0000000..39cf3e6
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis-no-cfi.S
@@ -0,0 +1,117 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+/* This file is compiled from gdb.arch/amd64-extended-prologue-analysis.c
+ using gcc 11.4.0 with flags: -g0 -O1 -S -fno-omit-frame-pointer
+ -fno-asynchronous-unwind-tables. */
+
+ .file "amd64-extended-prologue-analysis.c"
+ .text
+ .globl bar
+ .type bar, @function
+bar:
+ endbr64
+ leal (%rdi,%rdi), %eax
+ ret
+ .size bar, .-bar
+ .globl foo
+ .type foo, @function
+foo:
+ endbr64
+ pushq %rbp
+ movq %rsp, %rbp
+ pushq %r15
+ pushq %r14
+ pushq %r13
+ pushq %r12
+ pushq %rbx
+ subq $280, %rsp
+ movl %edi, %ebx
+ movl %esi, %r14d
+ movl %edx, %r13d
+ movl %ecx, %r12d
+ movq %fs:40, %rax
+ movq %rax, -56(%rbp)
+ xorl %eax, %eax
+.L3:
+ leal (%rbx,%rax), %ecx
+ movslq %eax, %rdx
+ movb %cl, -320(%rbp,%rdx)
+ addl $1, %eax
+ cmpl $256, %eax
+ jne .L3
+ movl %ebx, %edi
+ call bar
+ movl %eax, %r15d
+ movl %r14d, %edi
+ call bar
+ leal (%r15,%rax), %r14d
+ movl %r13d, %edi
+ call bar
+ addl %eax, %r14d
+ movl %r12d, %edi
+ call bar
+ addl %r14d, %eax
+ addl %ebx, %eax
+ movq -56(%rbp), %rdx
+ subq %fs:40, %rdx
+ jne .L7
+ addq $280, %rsp
+ popq %rbx
+ popq %r12
+ popq %r13
+ popq %r14
+ popq %r15
+ popq %rbp
+ ret
+.L7:
+ call __stack_chk_fail@PLT
+ .size foo, .-foo
+ .globl main
+ .type main, @function
+main:
+ endbr64
+ pushq %rbp
+ movq %rsp, %rbp
+ subq $16, %rsp
+ leal (%rdi,%rdi), %ecx
+ leal 2(%rdi), %edx
+ leal 1(%rdi), %esi
+ call foo
+ movl %eax, -4(%rbp)
+ movl -4(%rbp), %eax
+ leave
+ ret
+ .size main, .-main
+ .ident "GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
+ .section .note.GNU-stack,"",@progbits
+ .section .note.gnu.property,"a"
+ .align 8
+ .long 1f - 0f
+ .long 4f - 1f
+ .long 5
+0:
+ .string "GNU"
+1:
+ .align 8
+ .long 0xc0000002
+ .long 3f - 2f
+2:
+ .long 0x3
+3:
+ .align 8
+4:
diff --git a/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis-offset.S b/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis-offset.S
new file mode 100644
index 0000000..ea001b3
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis-offset.S
@@ -0,0 +1,112 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+/* This file is compiled from gdb.arch/amd64-extended-prologue-analysis.c
+ using gcc 11.4.0 with flags: -g0 -O1 -S -fomit-frame-pointer
+ -fno-asynchronous-unwind-tables. */
+
+ .file "amd64-extended-prologue-analysis.c"
+ .text
+ .globl bar
+ .type bar, @function
+bar:
+ endbr64
+ leal (%rdi,%rdi), %eax
+ ret
+ .size bar, .-bar
+ .globl foo
+ .type foo, @function
+foo:
+ endbr64
+ pushq %r14
+ pushq %r13
+ pushq %r12
+ pushq %rbp
+ pushq %rbx
+ subq $272, %rsp
+ movl %edi, %ebx
+ movl %esi, %r13d
+ movl %edx, %r12d
+ movl %ecx, %ebp
+ movq %fs:40, %rax
+ movq %rax, 264(%rsp)
+ xorl %eax, %eax
+.L3:
+ leal (%rbx,%rax), %ecx
+ movslq %eax, %rdx
+ movb %cl, (%rsp,%rdx)
+ addl $1, %eax
+ cmpl $256, %eax
+ jne .L3
+ movl %ebx, %edi
+ call bar
+ movl %eax, %r14d
+ movl %r13d, %edi
+ call bar
+ leal (%r14,%rax), %r13d
+ movl %r12d, %edi
+ call bar
+ addl %eax, %r13d
+ movl %ebp, %edi
+ call bar
+ addl %r13d, %eax
+ addl %ebx, %eax
+ movq 264(%rsp), %rdx
+ subq %fs:40, %rdx
+ jne .L7
+ addq $272, %rsp
+ popq %rbx
+ popq %rbp
+ popq %r12
+ popq %r13
+ popq %r14
+ ret
+.L7:
+ call __stack_chk_fail@PLT
+ .size foo, .-foo
+ .globl main
+ .type main, @function
+main:
+ endbr64
+ subq $24, %rsp
+ leal (%rdi,%rdi), %ecx
+ leal 2(%rdi), %edx
+ leal 1(%rdi), %esi
+ call foo
+ movl %eax, 12(%rsp)
+ movl 12(%rsp), %eax
+ addq $24, %rsp
+ ret
+ .size main, .-main
+ .ident "GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
+ .section .note.GNU-stack,"",@progbits
+ .section .note.gnu.property,"a"
+ .align 8
+ .long 1f - 0f
+ .long 4f - 1f
+ .long 5
+0:
+ .string "GNU"
+1:
+ .align 8
+ .long 0xc0000002
+ .long 3f - 2f
+2:
+ .long 0x3
+3:
+ .align 8
+4:
diff --git a/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis.S b/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis.S
new file mode 100644
index 0000000..691eee0
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis.S
@@ -0,0 +1,143 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+/* This file is compiled from gdb.arch/amd64-extended-prologue-analysis.c
+ using gcc 11.4.0 with flags: -g0 -O1 -S -fno-omit-frame-pointer. */
+
+ .file "amd64-extended-prologue-analysis.c"
+ .text
+ .globl bar
+ .type bar, @function
+bar:
+.LFB0:
+ .cfi_startproc
+ endbr64
+ leal (%rdi,%rdi), %eax
+ ret
+ .cfi_endproc
+.LFE0:
+ .size bar, .-bar
+ .globl foo
+ .type foo, @function
+foo:
+.LFB1:
+ .cfi_startproc
+ endbr64
+ pushq %rbp
+ .cfi_def_cfa_offset 16
+ .cfi_offset 6, -16
+ movq %rsp, %rbp
+ .cfi_def_cfa_register 6
+ pushq %r15
+ pushq %r14
+ pushq %r13
+ pushq %r12
+ pushq %rbx
+ subq $280, %rsp
+ .cfi_offset 15, -24
+ .cfi_offset 14, -32
+ .cfi_offset 13, -40
+ .cfi_offset 12, -48
+ .cfi_offset 3, -56
+ movl %edi, %ebx
+ movl %esi, %r14d
+ movl %edx, %r13d
+ movl %ecx, %r12d
+ movq %fs:40, %rax
+ movq %rax, -56(%rbp)
+ xorl %eax, %eax
+.L3:
+ leal (%rbx,%rax), %ecx
+ movslq %eax, %rdx
+ movb %cl, -320(%rbp,%rdx)
+ addl $1, %eax
+ cmpl $256, %eax
+ jne .L3
+ movl %ebx, %edi
+ call bar
+ movl %eax, %r15d
+ movl %r14d, %edi
+ call bar
+ leal (%r15,%rax), %r14d
+ movl %r13d, %edi
+ call bar
+ addl %eax, %r14d
+ movl %r12d, %edi
+ call bar
+ addl %r14d, %eax
+ addl %ebx, %eax
+ movq -56(%rbp), %rdx
+ subq %fs:40, %rdx
+ jne .L7
+ addq $280, %rsp
+ popq %rbx
+ popq %r12
+ popq %r13
+ popq %r14
+ popq %r15
+ popq %rbp
+ .cfi_remember_state
+ .cfi_def_cfa 7, 8
+ ret
+.L7:
+ .cfi_restore_state
+ call __stack_chk_fail@PLT
+ .cfi_endproc
+.LFE1:
+ .size foo, .-foo
+ .globl main
+ .type main, @function
+main:
+.LFB2:
+ .cfi_startproc
+ endbr64
+ pushq %rbp
+ .cfi_def_cfa_offset 16
+ .cfi_offset 6, -16
+ movq %rsp, %rbp
+ .cfi_def_cfa_register 6
+ subq $16, %rsp
+ leal (%rdi,%rdi), %ecx
+ leal 2(%rdi), %edx
+ leal 1(%rdi), %esi
+ call foo
+ movl %eax, -4(%rbp)
+ movl -4(%rbp), %eax
+ leave
+ .cfi_def_cfa 7, 8
+ ret
+ .cfi_endproc
+.LFE2:
+ .size main, .-main
+ .ident "GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
+ .section .note.GNU-stack,"",@progbits
+ .section .note.gnu.property,"a"
+ .align 8
+ .long 1f - 0f
+ .long 4f - 1f
+ .long 5
+0:
+ .string "GNU"
+1:
+ .align 8
+ .long 0xc0000002
+ .long 3f - 2f
+2:
+ .long 0x3
+3:
+ .align 8
+4:
diff --git a/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis.c b/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis.c
new file mode 100644
index 0000000..707b4fb
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis.c
@@ -0,0 +1,56 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+int __attribute__ ((noinline))
+bar (int x)
+{
+ return x + x;
+}
+
+/* This function should generate a prologue in shape of:
+ push %rbp
+ .cfi_def_cfa_offset 16
+ .cfi_offset %rbp, -16
+ mov %rsp, %rbp
+ .cfi_def_cfa_register %rbp
+ push %reg1
+ push %reg2
+ sub $XXX, %rsp
+ .cfi_offset %reg2, 32
+ .cfi_offset %reg1, 24
+
+ So to be able to unwind a register, GDB needs to skip prologue past
+ register pushes and stack allocation (to access .cfi directives). */
+int __attribute__ ((noinline))
+foo (int a, int b, int c, int d)
+{
+ /* "volatile" alone isn't enough for clang to not optimize it out and
+ allocate space on the stack. */
+ volatile char s[256];
+ for (int i = 0; i < 256; i++)
+ s[i] = (char) (a + i);
+
+ a += bar (a) + bar (b) + bar (c) + bar (d);
+ return a;
+}
+
+int
+main (int argc, char **argv)
+{
+ volatile int a = foo (argc, argc + 1, argc + 2, argc * 2);
+ return a;
+}
diff --git a/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis.exp b/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis.exp
new file mode 100644
index 0000000..356afc7
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis.exp
@@ -0,0 +1,208 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+#
+# This test verifies that when placing a breakpoint on a function with a frame
+# pointer, instructions that push callee-saved registers and stack allocation
+# in the prologue are skipped, without debug info. When stopped on such
+# breakpoint, the pushed registers should be able to be immediately unwound.
+# With debug info present, GDB would try to use prologue-end markers found in
+# the line table to determine where the prologue ends.
+#
+# It is also tested both with and without .eh_frame's .cfi directives - with
+# them, GDB can only unwind a register once stopped after .cfi directive for
+# that register's push.
+
+require is_x86_64_m64_target
+standard_testfile .c -no-cfi.S .S -offset.S
+
+proc test_run {} {
+ gdb_breakpoint "foo"
+ gdb_continue_to_breakpoint "Continue to foo"
+
+ gdb_test "backtrace" "#0\[^\r\n\]+in foo\[^s\]+#1\[^\r\n\]+in main\[^s\]+" \
+ "Verify backtrace output in foo"
+
+ set main_r12 [get_integer_valueof "\$r12" "null"]
+ gdb_assert { $main_r12 ne "null" }
+
+ set foo_r12 [expr "$main_r12 + 2"]
+ gdb_test "print \$r12=$foo_r12" "$foo_r12" "Set foo's %r12=$foo_r12"
+ gdb_test "up" ".*main.*" "Go up a frame from foo"
+ gdb_test "print \$r12" "$main_r12" "foo's %r12 unwound"
+ gdb_test "down" ".*foo.*" "Go back down a frame to foo"
+ gdb_test "print \$r12" "$foo_r12" "foo's %r12 unwound back"
+}
+
+proc offset_test_run {} {
+ gdb_breakpoint "*foo"
+ gdb_continue_to_breakpoint "Continue to entry of foo"
+
+ set old_reg_val [get_integer_valueof "\$r12" "null"]
+ gdb_assert { $old_reg_val ne "null" }
+
+ set new_reg_val [expr "$old_reg_val + 3"]
+ gdb_test "print \$r14=$new_reg_val" "$new_reg_val" "Set %r14=$new_reg_val"
+ gdb_test "print \$r13=$new_reg_val" "$new_reg_val" "Set %r13=$new_reg_val"
+ gdb_test "print \$r12=$new_reg_val" "$new_reg_val" "Set %r12=$new_reg_val"
+
+ set addr_past_prologue "null"
+ gdb_test_multiple "disassemble" "Disassemble foo" -lbl {
+ -re "\r\n\\s*($::hex) <\\+($::decimal)>:\\s*mov.*(?=\r\n)" {
+ set addr_past_prologue $expect_out(1,string)
+ exp_continue
+ }
+
+ -re -wrap "" {
+ gdb_assert { $addr_past_prologue ne "null" } $gdb_test_name
+ }
+ }
+
+ gdb_assert { $addr_past_prologue ne "null" }
+
+ gdb_breakpoint "*$addr_past_prologue"
+ gdb_continue_to_breakpoint "Continue past foo's prologue"
+
+ gdb_test "up" ".*main.*" "Go up a frame from foo"
+ gdb_test "print \$r14" "$new_reg_val" "Verify %r14 value"
+ gdb_test "print \$r13" "$new_reg_val" "Verify %r13 value"
+ gdb_test "print \$r12" "$new_reg_val" "Verify %r12 value"
+}
+
+# Tests are done for two versions (not counting with and w/o .cfi):
+# - binary compiled from C source, which verifies we actually test against
+# the code that compilers produce and we expect
+# - binary compiled from ASM source, which verifies that we properly analyze
+# prologue sequences even when compiler introduces a sudden change in how
+# it generates assembly
+#
+# With those 2 versions, we can easily distinguish GDB breaking analyzer and
+# compilers behaving differently, if there ever is an impactful change in how
+# they generate prologues.
+with_test_prefix "w/o .cfi directives" {
+ with_test_prefix "compiler gen" {
+ # -fno-asynchronous-unwind-tables is needed to get rid of .cfi
+ # directives in .eh_frame section.
+ if { [gdb_can_simple_compile fno-asynchronous-unwind-tables \
+ { void foo () { } } object -fno-asynchronous-unwind-tables] == 0 } {
+ unsupported \
+ "compiler doesn't support -fno-asynchronous-unwind-tables flag"
+ } else {
+ # For at least gcc 11.4/clang 14.0.0 and later, -O1 makes them more
+ # eager to use registers in the prologue.
+ #
+ # At least gcc 11.4 and later by default does not generate full
+ # debug info, "nodebug" is there for other compilers.
+ if { [prepare_for_testing "failed to prepare" "$testfile-no-cfi-C" \
+ $srcfile { optimize=-O1 nodebug
+ additional_flags=-fno-asynchronous-unwind-tables
+ additional_flags=-fno-omit-frame-pointer}] } {
+ return
+ }
+
+ if { ![runto_main] } {
+ untested "unable to run to main"
+ return
+ }
+
+ test_run
+ }
+ }
+
+ with_test_prefix "ASM source" {
+ if { [prepare_for_testing "failed to prepare" "$testfile-no-cfi-S" \
+ $srcfile2 nodebug ] } {
+ return
+ }
+
+ if { ![runto_main] } {
+ untested "unable to run to main"
+ return
+ }
+
+ test_run
+ }
+}
+
+with_test_prefix "with .cfi directives" {
+ with_test_prefix "compiler gen" {
+ if { [prepare_for_testing "failed to prepare" "$testfile-cfi-C" \
+ $srcfile { optimize=-O1
+ nodebug additional_flags=-fno-omit-frame-pointer}] } {
+ return
+ }
+
+ if { ![runto_main] } {
+ untested "unable to run to main"
+ return
+ }
+
+ test_run
+ }
+
+ with_test_prefix "ASM source" {
+ if { [prepare_for_testing "failed to prepare" "$testfile-cfi-S" \
+ $srcfile3 nodebug ] } {
+ return
+ }
+
+ if { ![runto_main] } {
+ untested "unable to run to main"
+ return
+ }
+
+ test_run
+ }
+}
+
+# This section exists to verify that we properly assign offsets for functions
+# w/o a frame pointer, for registers when they're pushed. If they were assigned
+# in a wrong way, we might end up unwinding improper register values.
+with_test_prefix "offset initialization" {
+ with_test_prefix "compiler gen" {
+ if { [gdb_can_simple_compile fno-asynchronous-unwind-tables \
+ { void foo () { } } object -fno-asynchronous-unwind-tables] == 0 } {
+ unsupported \
+ "compiler doesn't support -fno-asynchronous-unwind-tables flag"
+ } else {
+ if { [prepare_for_testing "failed to prepare" "$testfile-offset-C" \
+ $srcfile { optimize=-O1 nodebug
+ additional_flags=-fno-asynchronous-unwind-tables
+ additional_flags=-fomit-frame-pointer}] } {
+ return
+ }
+
+ if { ![runto_main] } {
+ untested "unable to run to main"
+ return
+ }
+
+ offset_test_run
+ }
+ }
+
+ with_test_prefix "ASM source" {
+ if { [prepare_for_testing "failed to prepare" "$testfile-offset-S" \
+ $srcfile4 nodebug ] } {
+ return
+ }
+
+ if { ![runto_main] } {
+ untested "unable to run to main"
+ return
+ }
+
+ offset_test_run
+ }
+}
diff --git a/gdb/testsuite/gdb.arch/amd64-frameptr-vecreg-unwind.c b/gdb/testsuite/gdb.arch/amd64-frameptr-vecreg-unwind.c
new file mode 100644
index 0000000..1b79a65
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/amd64-frameptr-vecreg-unwind.c
@@ -0,0 +1,63 @@
+/* Copyright 2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+volatile void dummy () {}
+
+long test_function(void)
+{
+ __asm__ volatile (
+ /* Clear xmm0. */
+ "vxorps %%xmm0, %%xmm0, %%xmm0\n\t"
+
+ /* Move the frame pointer (rbp) to xmm0. */
+ "movq %%rbp, %%xmm0\n\t"
+
+ /* CFI: Frame pointer is in xmm0. */
+ ".cfi_register %%rbp, %%xmm0\n\t"
+
+ /* Clobber list: Specify all modified registers */
+ : // No output operands
+ : // No input operands
+ : "xmm0"
+ );
+
+ dummy (); /* break-here */
+
+ /* Pseudo-epilogue: Restore rbp from xmm0. */
+ __asm__ volatile (
+ /* Restore rbp. */
+ "movq %%xmm0, %%rbp\n\t"
+
+ /* Describe CFI: Frame pointer is restored. */
+ ".cfi_restore %%rbp\n\t"
+
+ /* Clobber list: Specify all modified registers */
+ : /* No output operands. */
+ : /* No input operands. */
+ : /* Despite clobbering rbp, gcc doesn't let us list it here. */
+ );
+
+ return 0;
+}
+
+int
+main ()
+{
+ long result = test_function ();
+ dummy ();
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.arch/amd64-frameptr-vecreg-unwind.exp b/gdb/testsuite/gdb.arch/amd64-frameptr-vecreg-unwind.exp
new file mode 100644
index 0000000..3c0b319
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/amd64-frameptr-vecreg-unwind.exp
@@ -0,0 +1,40 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# This test verifies that we can read and write the value of a pseudo register
+# in unwound frames. For the test, we choose one raw register, rbx, and one
+# pseudo register that is backed by rbx, ebx. We have two frames (the inner one,
+# #0 and the outer one, #1) that each set a value for rbx. We verify that we
+# can read both rbx and ebx correctly for each frame, and that when we write to
+# ebx, rbx for that frame is correctly updated.
+
+require is_x86_64_m64_target
+
+standard_testfile
+
+if { [prepare_for_testing "failed to prepare" ${testfile} \
+ "${srcfile}" {debug}] } {
+ return -1
+}
+
+if {![runto_main]} {
+ return
+}
+
+gdb_breakpoint [gdb_get_line_number "break-here"]
+gdb_continue_to_breakpoint "break-here"
+gdb_test "with confirm off --return -1" "result = test_function \\(\\);"
+gdb_test "step" "dummy \\(\\);"
+gdb_test "print result" "= -1"
diff --git a/gdb/testsuite/gdb.arch/amd64-init-x87-values.exp b/gdb/testsuite/gdb.arch/amd64-init-x87-values.exp
index 11004fa..5bbadaf 100644
--- a/gdb/testsuite/gdb.arch/amd64-init-x87-values.exp
+++ b/gdb/testsuite/gdb.arch/amd64-init-x87-values.exp
@@ -24,7 +24,7 @@ standard_testfile .S
set options [list debug \
additional_flags=-static \
- additional_flags=-nostartfiles]
+ ldflags=-nostartfiles]
if { [build_executable "failed to prepare" ${testfile} ${srcfile} $options] } {
return -1
}
@@ -40,7 +40,7 @@ if { [build_executable "failed to prepare" ${testfile} ${srcfile} $options] } {
proc_with_prefix check_x87_regs_around_init {} {
global binfile
- clean_restart ${binfile}
+ clean_restart ${::testfile}
# Get things started.
if {![runto_main]} {
@@ -115,7 +115,7 @@ proc_with_prefix check_x87_regs_around_init {} {
proc_with_prefix check_setting_mxcsr_before_enable {} {
global binfile gdb_prompt
- clean_restart ${binfile}
+ clean_restart ${::testfile}
if {![runto_main]} {
return 0
@@ -149,7 +149,7 @@ proc_with_prefix check_setting_mxcsr_before_enable {} {
proc_with_prefix check_setting_x87_regs_before_enable {} {
global binfile
- clean_restart ${binfile}
+ clean_restart ${::testfile}
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.exp b/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.exp
index 03ecba6..451c84b 100644
--- a/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.exp
+++ b/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.exp
@@ -45,7 +45,7 @@ gdb_test "bt" "^#0 +breakpt *\\(\\) \[^\r\n\]*\r\n#1 +0x\[0-9a-f\]+ in func5\[^\
gdb_test "bt" "^#0 +breakpt *\\(\\) \[^\r\n\]*\r\n#1 +0x\[0-9a-f\]+ in func5\[^\r\n\]*\r\n#2 +0x\[0-9a-f\]+ in func4\[^\r\n\]*\r\n#3 +0x\[0-9a-f\]+ in func3\[^\r\n\]*\r\nBacktrace stopped: Cannot access memory at address 0x\[0-9a-f\]+" \
"second backtrace, with error message"
-clean_restart ${binfile}
+clean_restart ${::testfile}
if ![runto breakpt] {
return -1
@@ -59,7 +59,7 @@ gdb_test "interpreter-exec mi \"-stack-info-depth\"" \
"\\^done,depth=\"4\"" \
"check mi -stack-info-depth command, second time"
-clean_restart ${binfile}
+clean_restart ${::testfile}
if ![runto breakpt] {
return -1
diff --git a/gdb/testsuite/gdb.arch/amd64-invalid-stack-top.exp b/gdb/testsuite/gdb.arch/amd64-invalid-stack-top.exp
index 134dfda..b715ecf 100644
--- a/gdb/testsuite/gdb.arch/amd64-invalid-stack-top.exp
+++ b/gdb/testsuite/gdb.arch/amd64-invalid-stack-top.exp
@@ -49,7 +49,7 @@ gdb_test "bt no-filters" "^#0 +$hex in func2 \\(\\)\r\nBacktrace stopped: Cannot
gdb_test "bt no-filters" "^#0 +$hex in func2 \\(\\)\r\nBacktrace stopped: Cannot access memory at address 0x\[0-9a-f\]+" \
"second backtrace, with error message"
-clean_restart ${binfile}
+clean_restart ${::testfile}
if ![runto breakpt] {
return -1
@@ -63,7 +63,7 @@ gdb_test "interpreter-exec mi \"-stack-info-depth\"" \
"\\^done,depth=\"1\"" \
"check mi -stack-info-depth command, second time"
-clean_restart ${binfile}
+clean_restart ${::testfile}
if ![runto breakpt] {
return -1
diff --git a/gdb/testsuite/gdb.arch/amd64-prologue-skip.exp b/gdb/testsuite/gdb.arch/amd64-prologue-skip.exp
index 04f3266..c96c0c7 100644
--- a/gdb/testsuite/gdb.arch/amd64-prologue-skip.exp
+++ b/gdb/testsuite/gdb.arch/amd64-prologue-skip.exp
@@ -14,7 +14,8 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
standard_testfile .S
-set binfile ${binfile}.o
+set testfile $testfile.o
+set binfile [standard_output_file $testfile]
require is_x86_64_m64_target
@@ -23,7 +24,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" object {debug}]
return
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_test "break *pushrbp" " at 0x1: file .*"
gdb_test "break pushrbp" " at 0x1: file .*"
diff --git a/gdb/testsuite/gdb.arch/amd64-prologue-xmm.exp b/gdb/testsuite/gdb.arch/amd64-prologue-xmm.exp
index 7c16238..8447973 100644
--- a/gdb/testsuite/gdb.arch/amd64-prologue-xmm.exp
+++ b/gdb/testsuite/gdb.arch/amd64-prologue-xmm.exp
@@ -28,7 +28,7 @@ if [info exists COMPILE] {
require is_x86_64_m64_target
}
-if {[prepare_for_testing "failed to prepare" ${binfile} $srcfile $opts]} {
+if {[prepare_for_testing "failed to prepare" ${testfile} $srcfile $opts]} {
return -1
}
diff --git a/gdb/testsuite/gdb.arch/amd64-pseudo-unwind.exp b/gdb/testsuite/gdb.arch/amd64-pseudo-unwind.exp
index 6333311..49721dd 100644
--- a/gdb/testsuite/gdb.arch/amd64-pseudo-unwind.exp
+++ b/gdb/testsuite/gdb.arch/amd64-pseudo-unwind.exp
@@ -32,7 +32,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} \
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.arch/amd64-shadow-stack-cmds.exp b/gdb/testsuite/gdb.arch/amd64-shadow-stack-cmds.exp
new file mode 100644
index 0000000..0ae172d
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/amd64-shadow-stack-cmds.exp
@@ -0,0 +1,143 @@
+# Copyright 2024-2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Test shadow stack enabling for frame level update, the return and the
+# call commands.
+# As potential CET violations often only occur after resuming normal
+# execution, test normal program continuation after each return or call
+# commands.
+
+require allow_ssp_tests
+
+standard_testfile amd64-shadow-stack.c
+
+# Restart GDB an run until breakpoint in call2.
+
+proc restart_and_run_infcall_call2 {} {
+ global binfile
+ clean_restart ${::testfile}
+ if { ![runto_main] } {
+ return -1
+ }
+ set inside_infcall_str "The program being debugged stopped while in a function called from GDB"
+ gdb_breakpoint [ gdb_get_line_number "break call2" ]
+ gdb_continue_to_breakpoint "break call2" ".*break call2.*"
+ gdb_test "call (int) call2()" \
+ "Breakpoint \[0-9\]*, call2.*$inside_infcall_str.*"
+}
+
+save_vars { ::env(GLIBC_TUNABLES) } {
+
+ append_environment GLIBC_TUNABLES "glibc.cpu.hwcaps" "SHSTK"
+
+ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
+ {debug additional_flags="-fcf-protection=return"}] } {
+ return -1
+ }
+
+ clean_restart ${::testfile}
+ if { ![runto_main] } {
+ return -1
+ }
+
+ with_test_prefix "test inferior call and continue" {
+ gdb_breakpoint [ gdb_get_line_number "break call1" ]
+ gdb_continue_to_breakpoint "break call1" ".*break call1.*"
+
+ gdb_test "call (int) call2()" "= 42"
+
+ gdb_continue_to_end
+ }
+
+ with_test_prefix "test return inside an inferior call" {
+ restart_and_run_infcall_call2
+
+ gdb_test "return" "\#0.*call2.*" \
+ "Test shadow stack return inside an inferior call" \
+ "Make.*return now\\? \\(y or n\\) " "y"
+
+ gdb_continue_to_end
+ }
+
+ with_test_prefix "test return 'above' an inferior call" {
+ restart_and_run_infcall_call2
+
+ gdb_test "frame 2" "call2 ().*" "move to frame 'above' inferior call"
+
+ gdb_test "return" "\#0.*call1.*" \
+ "Test shadow stack return 'above' an inferior call" \
+ "Make.*return now\\? \\(y or n\\) " "y"
+
+ gdb_continue_to_end
+ }
+
+ clean_restart ${::testfile}
+ if { ![runto_main] } {
+ return -1
+ }
+
+ set call1_line [ gdb_get_line_number "break call1" ]
+ set call2_line [ gdb_get_line_number "break call2" ]
+
+ # Extract shadow stack pointer inside main, call1 and call2 function.
+ gdb_breakpoint $call1_line
+ gdb_breakpoint $call2_line
+ set ssp_main [get_valueof /x "\$pl3_ssp" 0 "get value of ssp in main"]
+ gdb_continue_to_breakpoint "break call1" ".*break call1.*"
+ set ssp_call1 [get_valueof /x "\$pl3_ssp" 0 "get value of ssp in call1"]
+ gdb_continue_to_breakpoint "break call2" ".*break call2.*"
+ set ssp_call2 [get_valueof /x "\$pl3_ssp" 0 "get value of ssp in call2"]
+
+ with_test_prefix "test frame level update" {
+ gdb_test "up" "call1.*" "move to frame 1"
+ gdb_test "print /x \$pl3_ssp" "= $ssp_call1" "check pl3_ssp of frame 1"
+ gdb_test "up" "main.*" "move to frame 2"
+ gdb_test "print /x \$pl3_ssp" "= $ssp_main" "check pl3_ssp of frame 2"
+ gdb_test "frame 0" "call2.*" "move to frame 0"
+ gdb_test "print /x \$pl3_ssp" "= $ssp_call2" "check pl3_ssp of frame 0"
+ }
+
+ with_test_prefix "test return from current frame" {
+ gdb_test "return (int) 1" "#0.*call1.*" \
+ "Test shadow stack return from current frame" \
+ "Make.*return now\\? \\(y or n\\) " "y"
+
+ # Potential CET violations often only occur after resuming normal execution.
+ # Therefore, it is important to test normal program continuation after
+ # testing the return command.
+ gdb_continue_to_end
+ }
+
+ clean_restart ${::testfile}
+ if { ![runto_main] } {
+ return -1
+ }
+
+ with_test_prefix "test return from past frame" {
+ gdb_breakpoint $call2_line
+ gdb_continue_to_breakpoint "break call2" ".*break call2.*"
+
+ gdb_test "frame 1" ".*in call1.*"
+
+ gdb_test "return (int) 1" "#0.*main.*" \
+ "Test shadow stack return from past frame" \
+ "Make.*return now\\? \\(y or n\\) " "y"
+
+ # Potential CET violations often only occur after resuming normal execution.
+ # Therefore, it is important to test normal program continuation after
+ # testing the return command.
+ gdb_continue_to_end
+ }
+}
diff --git a/gdb/testsuite/gdb.arch/amd64-shadow-stack-corefile.c b/gdb/testsuite/gdb.arch/amd64-shadow-stack-corefile.c
new file mode 100644
index 0000000..5e84793
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/amd64-shadow-stack-corefile.c
@@ -0,0 +1,46 @@
+/* This test program is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+
+/* Call the return instruction before function epilogue to trigger a
+ control-flow exception. */
+void
+function ()
+{
+ unsigned long ssp;
+ #ifndef __ILP32__
+ asm volatile ("xor %0, %0; rdsspq %0" : "=r" (ssp));
+ #else
+ asm volatile ("xor %0, %0; rdsspd %0" : "=r" (ssp));
+ #endif
+
+ /* Print ssp to stdout so that the testcase can capture it. */
+ printf ("%p\n", (void *) ssp);
+ fflush (stdout);
+
+ /* Manually cause a control-flow exception by executing a return
+ instruction before function epilogue, so the address atop the stack
+ is not the return instruction. */
+ __asm__ volatile ("ret\n");
+}
+
+int
+main (void)
+{
+ function (); /* Break here. */
+}
diff --git a/gdb/testsuite/gdb.arch/amd64-shadow-stack-corefile.exp b/gdb/testsuite/gdb.arch/amd64-shadow-stack-corefile.exp
new file mode 100644
index 0000000..039f528
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/amd64-shadow-stack-corefile.exp
@@ -0,0 +1,119 @@
+# Copyright 2024-2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Test the shadow stack pointer note in core dumps.
+# Based on the corefile tests in gdb.arch/aarch64-gcs-core.exp.
+
+require allow_ssp_tests
+
+standard_testfile
+
+# Make sure GDB can read the given core file correctly.
+
+proc check_core_file {core_filename saved_pl3_ssp} {
+ global decimal
+
+ # Load the core file.
+ if [gdb_test "core $core_filename" \
+ [multi_line \
+ "Core was generated by .*\\." \
+ "Program terminated with signal SIGSEGV, Segmentation fault.*" \
+ "#0 function \\(\\) at .*amd64-shadow-stack-corefile.c:$decimal" \
+ "$decimal.*__asm__ volatile \\(\"ret\\\\n\"\\);"] \
+ "load core file"] {
+ return
+ }
+
+ # Check the value of ssp in the core file.
+ gdb_test "print/x \$pl3_ssp" "\\$\[0-9\]+ = $saved_pl3_ssp" \
+ "pl3_ssp contents from core file $saved_pl3_ssp"
+}
+
+save_vars { ::env(GLIBC_TUNABLES) } {
+
+ append_environment GLIBC_TUNABLES "glibc.cpu.hwcaps" "SHSTK"
+
+ if { [prepare_for_testing "failed to prepare" $testfile $srcfile \
+ {debug additional_flags="-fcf-protection=return"}] } {
+ return
+ }
+
+ set linespec ${srcfile}:[gdb_get_line_number "Break here"]
+
+ if ![runto $linespec] {
+ return
+ }
+
+ # Obtain an OS-generated core file. Save test program output to
+ # ${binfile}.out.
+ set core_filename [core_find $binfile {} {} "${binfile}.out"]
+ set core_generated [expr {$core_filename != ""}]
+
+ if {!$core_generated} {
+ untested "unable to create or find corefile"
+ }
+
+ # Load the core file and check the value of the shadow stack pointer.
+ if {$core_generated} {
+ clean_restart $::testfile
+
+ with_test_prefix "OS corefile" {
+ # Read ssp value from saved output of the test program.
+ set out_id [open ${binfile}.out "r"]
+ set ssp_in_gcore [gets $out_id]
+ close $out_id
+ check_core_file $core_filename $ssp_in_gcore
+ }
+ }
+
+ if ![gcore_cmd_available] {
+ unsupported "target does not support gcore command."
+ return
+ }
+
+ clean_restart $::testfile
+
+ if ![runto $linespec] {
+ return
+ }
+
+ # Continue until a crash. The line with the hex number is optional because
+ # it's printed by the test program, and doesn't appear in the Expect buffer
+ # when testing a remote target.
+
+ gdb_test "continue" \
+ [multi_line \
+ "Continuing\\." \
+ "($hex\r\n)?" \
+ "Program received signal SIGSEGV, Segmentation fault.*" \
+ "function \\(\\) at .*amd64-shadow-stack-corefile.c:$decimal" \
+ {.*__asm__ volatile \("ret\\n"\);}] \
+ "continue to SIGSEGV"
+
+ set ssp_in_gcore [get_valueof "/x" "\$pl3_ssp" "*unknown*"]
+
+ # Generate the gcore core file.
+ set gcore_filename [standard_output_file "${testfile}.gcore"]
+ set gcore_generated [gdb_gcore_cmd "$gcore_filename" "generate gcore file"]
+
+ gdb_assert { $gcore_generated } "gcore corefile created"
+ if { $gcore_generated } {
+ clean_restart $::testfile
+
+ with_test_prefix "gcore corefile" {
+ check_core_file $gcore_filename $ssp_in_gcore
+ }
+ }
+}
diff --git a/gdb/testsuite/gdb.arch/amd64-shadow-stack-disp-step.exp b/gdb/testsuite/gdb.arch/amd64-shadow-stack-disp-step.exp
new file mode 100644
index 0000000..e4efa00
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/amd64-shadow-stack-disp-step.exp
@@ -0,0 +1,84 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Test continue from call instructions with shadow stack and displaced
+# stepping being enabled.
+
+require allow_ssp_tests support_displaced_stepping
+
+standard_testfile amd64-shadow-stack.c
+
+save_vars { ::env(GLIBC_TUNABLES) } {
+
+ append_environment GLIBC_TUNABLES "glibc.cpu.hwcaps" "SHSTK"
+
+ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
+ additional_flags="-fcf-protection=return"] } {
+ return
+ }
+
+ # Enable displaced stepping.
+ gdb_test_no_output "set displaced-stepping on"
+ gdb_test "show displaced-stepping" ".* displaced stepping .* is on.*"
+
+ if { ![runto_main] } {
+ return
+ }
+
+ # Get the address of the call to the call1 function.
+ set call1_addr -1
+ gdb_test_multiple "disassemble main" "" {
+ -re -wrap "($hex) <\\+($decimal)>:\\s*call\\s*0x.*<call1>.*" {
+ set call1_addr $expect_out(1,string)
+ pass $gdb_test_name
+ }
+ }
+
+ if { $call1_addr == -1 } {
+ return
+ }
+
+ # Get the address of the call to the call2 function.
+ set call2_addr -1
+ gdb_test_multiple "disassemble call1" "" {
+ -re -wrap "($hex) <\\+($decimal)>:\\s*call\\s*0x.*<call2>.*" {
+ set call2_addr $expect_out(1,string)
+ pass $gdb_test_name
+ }
+ }
+
+ if { $call2_addr == -1 } {
+ return
+ }
+
+ gdb_test "break *$call1_addr" \
+ "Breakpoint $decimal at $hex.*" \
+ "break at the address of the call1 instruction"
+
+ gdb_test "break *$call2_addr" \
+ "Breakpoint $decimal at $hex.*" \
+ "break at the address of the call2 instruction"
+
+ gdb_test "continue" \
+ "Breakpoint $decimal, $call1_addr in main ().*" \
+ "continue until call1 instruction"
+
+ # Test continue from breakpoint at call1 and call2 instructions.
+ gdb_test "continue" \
+ "Breakpoint $decimal, $call2_addr in call1 ().*" \
+ "continue from call1 instruction"
+
+ gdb_continue_to_end "continue from call2 instruction"
+}
diff --git a/gdb/testsuite/gdb.arch/amd64-shadow-stack.c b/gdb/testsuite/gdb.arch/amd64-shadow-stack.c
new file mode 100644
index 0000000..4a1ca1e
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/amd64-shadow-stack.c
@@ -0,0 +1,40 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2024-2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+static int
+call2 ()
+{
+ return 42; /* break call2. */
+}
+
+static int
+call1 ()
+{
+ return call2 (); /* break call1. */
+}
+
+int
+main ()
+{
+ /* Depending on instruction generation we might end up in the call
+ instruction of call1 function after "runto_main". Avoid this by
+ adding a nop instruction, to simplify the testing in
+ amd64-shadow-stack-disp-step.exp. */
+ asm ("nop");
+ call1 (); /* break main. */
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.arch/amd64-shadow-stack.exp b/gdb/testsuite/gdb.arch/amd64-shadow-stack.exp
new file mode 100644
index 0000000..e9f6fa6
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/amd64-shadow-stack.exp
@@ -0,0 +1,71 @@
+# Copyright 2024-2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Test accessing the shadow stack pointer register.
+
+require allow_ssp_tests
+
+standard_testfile
+
+# Write PL3_SSP register with invalid shadow stack pointer value.
+proc write_invalid_ssp {} {
+ gdb_test "print /x \$pl3_ssp = 0x12345678" "= 0x12345678" "set pl3_ssp value"
+ gdb_test "print /x \$pl3_ssp" "= 0x12345678" "read pl3_ssp value after setting"
+}
+
+save_vars { ::env(GLIBC_TUNABLES) } {
+
+ append_environment GLIBC_TUNABLES "glibc.cpu.hwcaps" "SHSTK"
+
+ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
+ additional_flags="-fcf-protection=return"] } {
+ return
+ }
+
+ if {![runto_main]} {
+ return
+ }
+
+ with_test_prefix "invalid ssp" {
+ write_invalid_ssp
+
+ # Continue until SIGSEV to test that the value is written back to HW.
+ gdb_test "continue" \
+ [multi_line \
+ "Continuing\\." \
+ "" \
+ "Program received signal SIGSEGV, Segmentation fault\\." \
+ "$hex in main \\(\\)"] \
+ "continue to SIGSEGV"
+ }
+
+ clean_restart ${::testfile}
+ if { ![runto_main] } {
+ return
+ }
+
+ with_test_prefix "restore original ssp" {
+ # Read PL3_SSP register.
+ set ssp_main [get_hexadecimal_valueof "\$pl3_ssp" "read pl3_ssp value"]
+
+ write_invalid_ssp
+
+ # Restore original value.
+ gdb_test "print /x \$pl3_ssp = $ssp_main" "= $ssp_main" "restore original value"
+
+ # Now we should not see a SIGSEV, since the original value is restored.
+ gdb_continue_to_end
+ }
+}
diff --git a/gdb/testsuite/gdb.arch/amd64-word.exp b/gdb/testsuite/gdb.arch/amd64-word.exp
index d5dfb02..8a6b28d 100644
--- a/gdb/testsuite/gdb.arch/amd64-word.exp
+++ b/gdb/testsuite/gdb.arch/amd64-word.exp
@@ -27,7 +27,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list
return
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy.exp b/gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy.exp
index 892cfba..9cbf71d 100644
--- a/gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy.exp
+++ b/gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy.exp
@@ -34,7 +34,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} \
return -1
}
-clean_restart ${binfile}
+clean_restart $testfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.arch/arm-pseudo-unwind.exp b/gdb/testsuite/gdb.arch/arm-pseudo-unwind.exp
index c474a99..4cbb12e 100644
--- a/gdb/testsuite/gdb.arch/arm-pseudo-unwind.exp
+++ b/gdb/testsuite/gdb.arch/arm-pseudo-unwind.exp
@@ -29,7 +29,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} \
return -1
}
-clean_restart ${binfile}
+clean_restart $testfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.arch/arm-pthread_cond_timedwait-bt.exp b/gdb/testsuite/gdb.arch/arm-pthread_cond_timedwait-bt.exp
index 15c4050..32f085a 100644
--- a/gdb/testsuite/gdb.arch/arm-pthread_cond_timedwait-bt.exp
+++ b/gdb/testsuite/gdb.arch/arm-pthread_cond_timedwait-bt.exp
@@ -33,7 +33,7 @@ if { [build_executable "failed to prepare" ${testfile} ${srcfile} \
save_vars { GDBFLAGS } {
append GDBFLAGS " --readnever"
- if { [clean_restart ${binfile}] == -1 } {
+ if { [clean_restart $testfile] == -1 } {
return -1
}
}
diff --git a/gdb/testsuite/gdb.arch/e500-prologue.exp b/gdb/testsuite/gdb.arch/e500-prologue.exp
index e8f3ebd..b1eb865 100644
--- a/gdb/testsuite/gdb.arch/e500-prologue.exp
+++ b/gdb/testsuite/gdb.arch/e500-prologue.exp
@@ -27,7 +27,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {}] !
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
# Insert a breakpoint in FUNCTION and verifies that the breakpoint was
# inserted at the expected location. EXPECTED_LOCATION should be an
diff --git a/gdb/testsuite/gdb.arch/e500-regs.exp b/gdb/testsuite/gdb.arch/e500-regs.exp
index 543ce63..6d69ccc 100644
--- a/gdb/testsuite/gdb.arch/e500-regs.exp
+++ b/gdb/testsuite/gdb.arch/e500-regs.exp
@@ -136,7 +136,8 @@ gdb_expect_list "info vector" ".*$gdb_prompt $" {
# We must restart everything, because we have set important registers to
# some unusual values.
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
if {![runto_main]} {
return 0
}
diff --git a/gdb/testsuite/gdb.arch/gdb1291.exp b/gdb/testsuite/gdb.arch/gdb1291.exp
index ad3b8f9..9f460c8 100644
--- a/gdb/testsuite/gdb.arch/gdb1291.exp
+++ b/gdb/testsuite/gdb.arch/gdb1291.exp
@@ -33,7 +33,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable ""] !
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
#
# Run to `main' where we begin our tests.
diff --git a/gdb/testsuite/gdb.arch/gdb1431.exp b/gdb/testsuite/gdb.arch/gdb1431.exp
index 34bc8d6..bc65d26 100644
--- a/gdb/testsuite/gdb.arch/gdb1431.exp
+++ b/gdb/testsuite/gdb.arch/gdb1431.exp
@@ -35,7 +35,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable ""] !
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
#
# Run to `main' where we begin our tests.
diff --git a/gdb/testsuite/gdb.arch/gdb1558.exp b/gdb/testsuite/gdb.arch/gdb1558.exp
index f690468..3de5723 100644
--- a/gdb/testsuite/gdb.arch/gdb1558.exp
+++ b/gdb/testsuite/gdb.arch/gdb1558.exp
@@ -32,7 +32,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {"add
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
gdb_test "b -q main" "Breakpoint 1.*" "set breakpoint at main"
gdb_test "b -q sub1" "Breakpoint 2.*" "set breakpoint at sub1"
diff --git a/gdb/testsuite/gdb.arch/i386-avx.exp b/gdb/testsuite/gdb.arch/i386-avx.exp
index 8f07a3d..ba41a8c 100644
--- a/gdb/testsuite/gdb.arch/i386-avx.exp
+++ b/gdb/testsuite/gdb.arch/i386-avx.exp
@@ -42,7 +42,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable \
return
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
if {![runto_main]} {
return 0
@@ -93,7 +93,7 @@ with_test_prefix "force-disable xml descriptions" {
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"set remote target-features-packet off\""
- clean_restart ${binfile}
+ clean_restart ${::testfile}
}
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.arch/i386-bp_permanent.exp b/gdb/testsuite/gdb.arch/i386-bp_permanent.exp
index 1d3713f..6eb9ee6 100644
--- a/gdb/testsuite/gdb.arch/i386-bp_permanent.exp
+++ b/gdb/testsuite/gdb.arch/i386-bp_permanent.exp
@@ -33,7 +33,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list
}
-clean_restart $binfile
+clean_restart $::testfile
#
# Run to `main' where we begin our tests.
diff --git a/gdb/testsuite/gdb.arch/i386-byte.exp b/gdb/testsuite/gdb.arch/i386-byte.exp
index dcbcb40..1eff977 100644
--- a/gdb/testsuite/gdb.arch/i386-byte.exp
+++ b/gdb/testsuite/gdb.arch/i386-byte.exp
@@ -28,7 +28,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list
return
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.arch/i386-dr3-watch.exp b/gdb/testsuite/gdb.arch/i386-dr3-watch.exp
index 4fe2608..11b4773 100644
--- a/gdb/testsuite/gdb.arch/i386-dr3-watch.exp
+++ b/gdb/testsuite/gdb.arch/i386-dr3-watch.exp
@@ -23,7 +23,7 @@ require {is_any_target "i?86-*-*" "x86_64-*-*"}
standard_testfile
-if [prepare_for_testing "failed to prepare" ${binfile} ${srcfile} {debug $additional_flags}] {
+if [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} {debug $additional_flags}] {
return -1
}
diff --git a/gdb/testsuite/gdb.arch/i386-gnu-cfi.exp b/gdb/testsuite/gdb.arch/i386-gnu-cfi.exp
index b51f034..c446fae 100644
--- a/gdb/testsuite/gdb.arch/i386-gnu-cfi.exp
+++ b/gdb/testsuite/gdb.arch/i386-gnu-cfi.exp
@@ -40,7 +40,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfilec} ${srcdir}/${subdir}/${srcfile
# Get things started.
-clean_restart $binfile
+clean_restart $::testfile
# We should stop in abort(3).
diff --git a/gdb/testsuite/gdb.arch/i386-permbkpt.exp b/gdb/testsuite/gdb.arch/i386-permbkpt.exp
index b979d6e..1118cb4 100644
--- a/gdb/testsuite/gdb.arch/i386-permbkpt.exp
+++ b/gdb/testsuite/gdb.arch/i386-permbkpt.exp
@@ -30,7 +30,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_test "break -q main" "" "first permanent break"
gdb_test "break -q main" "" "second permanent break"
diff --git a/gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection.exp b/gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection.exp
index 06285ce..b289b84 100644
--- a/gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection.exp
+++ b/gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection.exp
@@ -58,7 +58,7 @@ with_test_prefix "skip-cf-protection" {
return
}
- clean_restart ${binfile}
+ clean_restart ${::testfile}
test_run
}
diff --git a/gdb/testsuite/gdb.arch/i386-prologue.exp b/gdb/testsuite/gdb.arch/i386-prologue.exp
index 72246f4..bfab6d1 100644
--- a/gdb/testsuite/gdb.arch/i386-prologue.exp
+++ b/gdb/testsuite/gdb.arch/i386-prologue.exp
@@ -53,7 +53,7 @@ proc skip_breakpoint { msg } {
}
-clean_restart $binfile
+clean_restart $::testfile
#
# Run to `main' where we begin our tests.
diff --git a/gdb/testsuite/gdb.arch/i386-signal.exp b/gdb/testsuite/gdb.arch/i386-signal.exp
index 30f212b..80d1827 100644
--- a/gdb/testsuite/gdb.arch/i386-signal.exp
+++ b/gdb/testsuite/gdb.arch/i386-signal.exp
@@ -30,7 +30,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
return -1
}
-clean_restart $binfile
+clean_restart $::testfile
runto func
gdb_test "backtrace 10" \
diff --git a/gdb/testsuite/gdb.arch/i386-size-overlap.exp b/gdb/testsuite/gdb.arch/i386-size-overlap.exp
index ca8383d..db88673 100644
--- a/gdb/testsuite/gdb.arch/i386-size-overlap.exp
+++ b/gdb/testsuite/gdb.arch/i386-size-overlap.exp
@@ -30,7 +30,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
return -1
}
-clean_restart $binfile
+clean_restart $::testfile
# We use gdb_run_cmd so this stands a chance to work for remote
# targets too.
diff --git a/gdb/testsuite/gdb.arch/i386-size.exp b/gdb/testsuite/gdb.arch/i386-size.exp
index b08182f..997e629 100644
--- a/gdb/testsuite/gdb.arch/i386-size.exp
+++ b/gdb/testsuite/gdb.arch/i386-size.exp
@@ -35,7 +35,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
return -1
}
-clean_restart $binfile
+clean_restart $::testfile
# We use gdb_run_cmd so this stands a chance to work for remote
# targets too.
diff --git a/gdb/testsuite/gdb.arch/i386-sse.exp b/gdb/testsuite/gdb.arch/i386-sse.exp
index f0aa5ec..154f5ea 100644
--- a/gdb/testsuite/gdb.arch/i386-sse.exp
+++ b/gdb/testsuite/gdb.arch/i386-sse.exp
@@ -40,7 +40,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable \
return
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.arch/i386-unwind.exp b/gdb/testsuite/gdb.arch/i386-unwind.exp
index 99acfe9..76f0a78 100644
--- a/gdb/testsuite/gdb.arch/i386-unwind.exp
+++ b/gdb/testsuite/gdb.arch/i386-unwind.exp
@@ -33,7 +33,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list
return -1
}
-clean_restart $binfile
+clean_restart $::testfile
# Testcase for backtrace/1435.
diff --git a/gdb/testsuite/gdb.arch/i386-word.exp b/gdb/testsuite/gdb.arch/i386-word.exp
index 0da49c0..ed02d27 100644
--- a/gdb/testsuite/gdb.arch/i386-word.exp
+++ b/gdb/testsuite/gdb.arch/i386-word.exp
@@ -28,7 +28,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list
return
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.exp b/gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.exp
index 8e8ed9b..d6fd14c 100644
--- a/gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.exp
+++ b/gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.exp
@@ -23,7 +23,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
# We need to start the inferior to place the breakpoints in the memory at all.
if ![runto_main] {
diff --git a/gdb/testsuite/gdb.arch/mips-fpregset-core.exp b/gdb/testsuite/gdb.arch/mips-fpregset-core.exp
index aa55ede..d67cef2 100644
--- a/gdb/testsuite/gdb.arch/mips-fpregset-core.exp
+++ b/gdb/testsuite/gdb.arch/mips-fpregset-core.exp
@@ -79,7 +79,8 @@ set core_supported [expr {$corefile != ""}]
# Generate a core file with "gcore".
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
runto break_here
@@ -116,7 +117,8 @@ proc mips_fpregset_core_test { supported corefile } {
upvar host_triplet host_triplet
upvar binfile binfile
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
set test "load core file"
if { $supported } {
diff --git a/gdb/testsuite/gdb.arch/mips-octeon-bbit.exp b/gdb/testsuite/gdb.arch/mips-octeon-bbit.exp
index 3fb6f9c..f43127d 100644
--- a/gdb/testsuite/gdb.arch/mips-octeon-bbit.exp
+++ b/gdb/testsuite/gdb.arch/mips-octeon-bbit.exp
@@ -86,7 +86,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable \
pass "compilation"
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
# Native needs run.
runto_main
diff --git a/gdb/testsuite/gdb.arch/pa-nullify.exp b/gdb/testsuite/gdb.arch/pa-nullify.exp
index 87afe7a..ad246ca 100644
--- a/gdb/testsuite/gdb.arch/pa-nullify.exp
+++ b/gdb/testsuite/gdb.arch/pa-nullify.exp
@@ -40,7 +40,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {}] !
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
# In the first test, we do a "step" on a function whose last instruction
# contains a branch-with-nullify. The instruction in the delay slot belongs
diff --git a/gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp b/gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp
index 13e3fd3..f95bddf 100644
--- a/gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp
@@ -28,7 +28,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {}] !
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
# Insert a breakpoint in FUNCTION and verifies that the breakpoint was
# inserted at the expected location. EXPECTED_LOCATION should be an
diff --git a/gdb/testsuite/gdb.arch/powerpc-altivec.exp b/gdb/testsuite/gdb.arch/powerpc-altivec.exp
index 987da07..bc8ff7a 100644
--- a/gdb/testsuite/gdb.arch/powerpc-altivec.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-altivec.exp
@@ -27,7 +27,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug}]
return -1
}
-clean_restart ${objfile}
+clean_restart
+gdb_load $objfile
# Disassemble the function.
set func ""
diff --git a/gdb/testsuite/gdb.arch/powerpc-altivec2.exp b/gdb/testsuite/gdb.arch/powerpc-altivec2.exp
index 3bf7c57..6fddd34 100644
--- a/gdb/testsuite/gdb.arch/powerpc-altivec2.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-altivec2.exp
@@ -27,7 +27,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug}]
return -1
}
-clean_restart ${objfile}
+clean_restart
+gdb_load $objfile
# Disassemble the function.
set func ""
diff --git a/gdb/testsuite/gdb.arch/powerpc-altivec3.exp b/gdb/testsuite/gdb.arch/powerpc-altivec3.exp
index ff1d79a..7b1d0c3 100644
--- a/gdb/testsuite/gdb.arch/powerpc-altivec3.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-altivec3.exp
@@ -27,7 +27,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug}]
return -1
}
-clean_restart ${objfile}
+clean_restart
+gdb_load $objfile
# Disassemble the function.
set func ""
diff --git a/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp b/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp
index 42fc51e..cb5a371 100644
--- a/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp
@@ -29,7 +29,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {qui
return -1
}
-clean_restart $binfile
+clean_restart $::testfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.arch/powerpc-fpscr-gcore.exp b/gdb/testsuite/gdb.arch/powerpc-fpscr-gcore.exp
index a7614fa..13163d2 100644
--- a/gdb/testsuite/gdb.arch/powerpc-fpscr-gcore.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-fpscr-gcore.exp
@@ -34,7 +34,7 @@ if {[build_executable "compile" $binfile $gen_src] == -1} {
return -1
}
-clean_restart $binfile
+clean_restart $testfile
if {![runto_main]} {
return -1
diff --git a/gdb/testsuite/gdb.arch/powerpc-htm-regs.exp b/gdb/testsuite/gdb.arch/powerpc-htm-regs.exp
index 6fcb69f..5e2923f 100644
--- a/gdb/testsuite/gdb.arch/powerpc-htm-regs.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-htm-regs.exp
@@ -82,7 +82,8 @@ with_test_prefix "check htm support" {
return
}
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
# Displaced-stepping a tbegin. causes problems,
# so we make the breakpoint temporary.
@@ -131,7 +132,7 @@ if {[build_executable "compile" $binfile $srcfile {debug}] == -1} {
return
}
-clean_restart $binfile
+clean_restart $testfile
gdb_breakpoint [gdb_get_line_number "first marker"] temporary
diff --git a/gdb/testsuite/gdb.arch/powerpc-power10.exp b/gdb/testsuite/gdb.arch/powerpc-power10.exp
index 1bb7174..124baaf 100644
--- a/gdb/testsuite/gdb.arch/powerpc-power10.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-power10.exp
@@ -27,7 +27,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug}]
return -1
}
-clean_restart ${objfile}
+clean_restart
+gdb_load $objfile
# Disassemble the function.
set func ""
diff --git a/gdb/testsuite/gdb.arch/powerpc-power7.exp b/gdb/testsuite/gdb.arch/powerpc-power7.exp
index f33405d..8885a91 100644
--- a/gdb/testsuite/gdb.arch/powerpc-power7.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-power7.exp
@@ -27,7 +27,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug}]
return -1
}
-clean_restart ${objfile}
+clean_restart
+gdb_load $objfile
# Disassemble the function.
set func ""
diff --git a/gdb/testsuite/gdb.arch/powerpc-power8.exp b/gdb/testsuite/gdb.arch/powerpc-power8.exp
index ab69b0f..f740ae8 100644
--- a/gdb/testsuite/gdb.arch/powerpc-power8.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-power8.exp
@@ -27,7 +27,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug}]
return -1
}
-clean_restart ${objfile}
+clean_restart
+gdb_load $objfile
# Disassemble the function.
set func ""
diff --git a/gdb/testsuite/gdb.arch/powerpc-power9.exp b/gdb/testsuite/gdb.arch/powerpc-power9.exp
index b1bfa9d..8dcf536 100644
--- a/gdb/testsuite/gdb.arch/powerpc-power9.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-power9.exp
@@ -27,7 +27,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug}]
return -1
}
-clean_restart ${objfile}
+clean_restart
+gdb_load $objfile
# Disassemble the function.
set func ""
diff --git a/gdb/testsuite/gdb.arch/powerpc-ppr-dscr.exp b/gdb/testsuite/gdb.arch/powerpc-ppr-dscr.exp
index ef6bb9d..1b4c608 100644
--- a/gdb/testsuite/gdb.arch/powerpc-ppr-dscr.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-ppr-dscr.exp
@@ -66,7 +66,7 @@ proc ppr_dscr_available {} {
}
with_test_prefix "check PPR/DSCR access" {
- clean_restart $binfile
+ clean_restart $::testfile
if ![runto_main] {
return
@@ -86,7 +86,7 @@ with_test_prefix "check PPR/DSCR access" {
}
# Now do the actual test
-clean_restart $binfile
+clean_restart $::testfile
if ![runto_main] {
return
diff --git a/gdb/testsuite/gdb.arch/powerpc-prologue-frame.exp b/gdb/testsuite/gdb.arch/powerpc-prologue-frame.exp
index 3c79039..156a70e 100644
--- a/gdb/testsuite/gdb.arch/powerpc-prologue-frame.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-prologue-frame.exp
@@ -26,7 +26,7 @@ if {[gdb_compile \
}
-clean_restart ${binfile}
+clean_restart $testfile
if ![runto bar] {
untested "could not run to bar"
diff --git a/gdb/testsuite/gdb.arch/powerpc-prologue.exp b/gdb/testsuite/gdb.arch/powerpc-prologue.exp
index 4e697c1..44877a1 100644
--- a/gdb/testsuite/gdb.arch/powerpc-prologue.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-prologue.exp
@@ -31,7 +31,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {}] !
}
-clean_restart $binfile
+clean_restart $testfile
#
# Run to `main' where we begin our tests.
diff --git a/gdb/testsuite/gdb.arch/powerpc-tar.exp b/gdb/testsuite/gdb.arch/powerpc-tar.exp
index b44d554..a060ec8 100644
--- a/gdb/testsuite/gdb.arch/powerpc-tar.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-tar.exp
@@ -68,7 +68,7 @@ proc tar_available {} {
# Do one pass to check if TAR is usable, system
# software can prevent it from being used.
with_test_prefix "check TAR access" {
- clean_restart $binfile
+ clean_restart $::testfile
if ![runto_main] {
return
@@ -84,7 +84,7 @@ with_test_prefix "check TAR access" {
}
# Now do the actual test
-clean_restart $binfile
+clean_restart $::testfile
if ![runto_main] {
return
diff --git a/gdb/testsuite/gdb.arch/powerpc-vector-regs.exp b/gdb/testsuite/gdb.arch/powerpc-vector-regs.exp
index 9e9162e..4537646 100644
--- a/gdb/testsuite/gdb.arch/powerpc-vector-regs.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-vector-regs.exp
@@ -30,7 +30,7 @@ if { [gdb_compile ${srcdir}/${subdir}/${srcfile} ${binfile} executable {debug}]
}
# Check if our test binary can actually run on this processor.
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_run_cmd
@@ -44,7 +44,7 @@ gdb_test_multiple "" "wait for exit" {
}
# Run the actual test.
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_breakpoint [gdb_get_line_number "marker"]
diff --git a/gdb/testsuite/gdb.arch/powerpc-vsx-gcore.exp b/gdb/testsuite/gdb.arch/powerpc-vsx-gcore.exp
index be1f93a..db568c6 100644
--- a/gdb/testsuite/gdb.arch/powerpc-vsx-gcore.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-vsx-gcore.exp
@@ -34,7 +34,7 @@ if {[build_executable "compile" $binfile $gen_src] == -1} {
return -1
}
-clean_restart $binfile
+clean_restart $testfile
if {![runto_main]} {
return -1
diff --git a/gdb/testsuite/gdb.arch/powerpc-vsx.exp b/gdb/testsuite/gdb.arch/powerpc-vsx.exp
index a6832e6..73a0fdc 100644
--- a/gdb/testsuite/gdb.arch/powerpc-vsx.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-vsx.exp
@@ -27,7 +27,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug}]
return -1
}
-clean_restart ${objfile}
+clean_restart
+gdb_load $objfile
# Disassemble the function.
set func ""
diff --git a/gdb/testsuite/gdb.arch/powerpc-vsx2.exp b/gdb/testsuite/gdb.arch/powerpc-vsx2.exp
index d5cb18e..dfee7a3 100644
--- a/gdb/testsuite/gdb.arch/powerpc-vsx2.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-vsx2.exp
@@ -27,7 +27,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug}]
return -1
}
-clean_restart ${objfile}
+clean_restart
+gdb_load $objfile
# Disassemble the function.
set func ""
diff --git a/gdb/testsuite/gdb.arch/powerpc-vsx3.exp b/gdb/testsuite/gdb.arch/powerpc-vsx3.exp
index bd54eaf..fd725f9 100644
--- a/gdb/testsuite/gdb.arch/powerpc-vsx3.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-vsx3.exp
@@ -27,7 +27,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {debug}]
return -1
}
-clean_restart ${objfile}
+clean_restart
+gdb_load $objfile
# Disassemble the function.
set func ""
diff --git a/gdb/testsuite/gdb.arch/ppc-dfp.exp b/gdb/testsuite/gdb.arch/ppc-dfp.exp
index d7a8312..20145ae 100644
--- a/gdb/testsuite/gdb.arch/ppc-dfp.exp
+++ b/gdb/testsuite/gdb.arch/ppc-dfp.exp
@@ -31,7 +31,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {quie
return -1
}
-clean_restart $binfile
+clean_restart $::testfile
gdb_breakpoint [gdb_get_line_number "Set DFP rounding mode."]
diff --git a/gdb/testsuite/gdb.arch/ppc-fp.exp b/gdb/testsuite/gdb.arch/ppc-fp.exp
index 4733296..c8342bb 100644
--- a/gdb/testsuite/gdb.arch/ppc-fp.exp
+++ b/gdb/testsuite/gdb.arch/ppc-fp.exp
@@ -31,7 +31,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {quie
return -1
}
-clean_restart $binfile
+clean_restart $::testfile
gdb_breakpoint [gdb_get_line_number "Invalid operation."]
gdb_breakpoint [gdb_get_line_number "Division by zero."]
diff --git a/gdb/testsuite/gdb.arch/ppc-longdouble.exp b/gdb/testsuite/gdb.arch/ppc-longdouble.exp
index f3603f1..739e36f 100644
--- a/gdb/testsuite/gdb.arch/ppc-longdouble.exp
+++ b/gdb/testsuite/gdb.arch/ppc-longdouble.exp
@@ -28,7 +28,7 @@ proc do_test { name {opts {}} } {
return
}
- clean_restart ${binfile}.${name}
+ clean_restart ${::testfile}.${name}
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.arch/pr25124.exp b/gdb/testsuite/gdb.arch/pr25124.exp
index 4c43716..4e7c114 100644
--- a/gdb/testsuite/gdb.arch/pr25124.exp
+++ b/gdb/testsuite/gdb.arch/pr25124.exp
@@ -25,7 +25,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable debug
return -1
}
-clean_restart $binfile
+clean_restart $testfile
# Check if the disassemble ouput is correct.
gdb_test "x /i main+8" \
diff --git a/gdb/testsuite/gdb.arch/sparc-sysstep.exp b/gdb/testsuite/gdb.arch/sparc-sysstep.exp
index 40de862..4dfc514 100644
--- a/gdb/testsuite/gdb.arch/sparc-sysstep.exp
+++ b/gdb/testsuite/gdb.arch/sparc-sysstep.exp
@@ -28,7 +28,7 @@ set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}
set opts {}
-if {[prepare_for_testing "failed to prepare" ${binfile} $srcfile {additional_flags=-g}]} {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {additional_flags=-g}]} {
return -1
}
diff --git a/gdb/testsuite/gdb.arch/thumb-prologue.exp b/gdb/testsuite/gdb.arch/thumb-prologue.exp
index 112c111..2ee82fb 100644
--- a/gdb/testsuite/gdb.arch/thumb-prologue.exp
+++ b/gdb/testsuite/gdb.arch/thumb-prologue.exp
@@ -27,7 +27,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {"add
}
-clean_restart $binfile
+clean_restart $testfile
#
# Run to `main' where we begin our tests.
diff --git a/gdb/testsuite/gdb.arch/thumb2-it.exp b/gdb/testsuite/gdb.arch/thumb2-it.exp
index 49031e1..e6ef06d 100644
--- a/gdb/testsuite/gdb.arch/thumb2-it.exp
+++ b/gdb/testsuite/gdb.arch/thumb2-it.exp
@@ -24,7 +24,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable debug
return -1
}
-clean_restart $binfile
+clean_restart $testfile
if {![runto_main]} {
return -1
diff --git a/gdb/testsuite/gdb.arch/vsx-regs.exp b/gdb/testsuite/gdb.arch/vsx-regs.exp
index 645207f..df74ef3 100644
--- a/gdb/testsuite/gdb.arch/vsx-regs.exp
+++ b/gdb/testsuite/gdb.arch/vsx-regs.exp
@@ -184,7 +184,8 @@ if {!$core_supported} {
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
set core_loaded [gdb_core_cmd "$corefile" "re-load generated corefile"]
if { $core_loaded == -1 } {
diff --git a/gdb/testsuite/gdb.asm/asm-source.exp b/gdb/testsuite/gdb.asm/asm-source.exp
index e3655b1..eb96c19 100644
--- a/gdb/testsuite/gdb.asm/asm-source.exp
+++ b/gdb/testsuite/gdb.asm/asm-source.exp
@@ -1,5 +1,5 @@
# Copyright 1998-2025 Free Software Foundation, Inc.
-#
+#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
@@ -184,7 +184,7 @@ if {[istarget "*-*-openbsd*"]} {
# built with different defaults. So no matter what we do, we lose. We may as
# well get out of this test sooner rather than later.
set dest [target_info name]
-if [board_info $dest exists multilib_flags] {
+if {[board_info $dest exists multilib_flags]} {
set multilib_flags [board_info $dest multilib_flags]
if { "${multilib_flags}" != "" } {
untested "failed to compile"
@@ -269,16 +269,16 @@ if { [istarget "m6811-*-*"] || [istarget "m6812-*-*"] } {
}
# Collect some line numbers.
-set line_enter [expr [gdb_get_line_number "main enter" "asmsrc1.s"] + 1]
-set line_main [expr [gdb_get_line_number "main start" "asmsrc1.s"] + 1]
-set line_call_foo2 [expr [gdb_get_line_number "call foo2" "asmsrc1.s"] + 1]
-set line_search_comment [expr [gdb_get_line_number "search" "asmsrc1.s"] + 1]
-set line_foo3 [expr [gdb_get_line_number "foo3 start" "asmsrc1.s"] + 1]
-set line_main_exit [expr [gdb_get_line_number "main exit" "asmsrc1.s"] + 1]
-set line_foo2 [expr [gdb_get_line_number "foo2 start" "asmsrc2.s"] + 1]
-set line_call_foo3 [expr [gdb_get_line_number "call foo3" "asmsrc2.s"] + 1]
-set line_call_foo3_again [expr $line_call_foo3 + 1]
-set line_foo2_leave [expr [gdb_get_line_number "foo2 leave" "asmsrc2.s"] + 1]
+set line_enter [expr {[gdb_get_line_number "main enter" "asmsrc1.s"] + 1}]
+set line_main [expr {[gdb_get_line_number "main start" "asmsrc1.s"] + 1}]
+set line_call_foo2 [expr {[gdb_get_line_number "call foo2" "asmsrc1.s"] + 1}]
+set line_search_comment [expr {[gdb_get_line_number "search" "asmsrc1.s"] + 1}]
+set line_foo3 [expr {[gdb_get_line_number "foo3 start" "asmsrc1.s"] + 1}]
+set line_main_exit [expr {[gdb_get_line_number "main exit" "asmsrc1.s"] + 1}]
+set line_foo2 [expr {[gdb_get_line_number "foo2 start" "asmsrc2.s"] + 1}]
+set line_call_foo3 [expr {[gdb_get_line_number "call foo3" "asmsrc2.s"] + 1}]
+set line_call_foo3_again [expr {$line_call_foo3 + 1}]
+set line_foo2_leave [expr {[gdb_get_line_number "foo2 leave" "asmsrc2.s"] + 1}]
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
@@ -346,7 +346,7 @@ gdb_test "f" ".*asmsrc2\[.\]s:$line_foo2.*" "f in foo2"
# `next' one insn (or macro) to set up our stackframe (for the following bt).
gdb_test "n" "$line_call_foo3\[ \]*.*foo3" "n in foo2"
-# See if a simple `bt' prints the right source files and
+# See if a simple `bt' prints the right source files and
# doesn't fall off the stack.
gdb_test "bt 10" \
@@ -405,7 +405,7 @@ gdb_test_multiple "info sources" "info sources" {
set seen_asmsrc_2 1
exp_continue
}
- -re ", " {
+ -re ", " {
exp_continue
}
-re "$gdb_prompt $" {
@@ -416,7 +416,7 @@ gdb_test_multiple "info sources" "info sources" {
}
}
}
-
+
# Try 'info line'
gdb_test "info line" \
diff --git a/gdb/testsuite/gdb.base/a2-run.exp b/gdb/testsuite/gdb.base/a2-run.exp
index 4e95e56..966e12a 100644
--- a/gdb/testsuite/gdb.base/a2-run.exp
+++ b/gdb/testsuite/gdb.base/a2-run.exp
@@ -18,6 +18,8 @@
# Can't do this test without stdio support.
require {!gdb_skip_stdio_test "a2run.exp"}
+set have_startup_shell [have_startup_shell]
+
#
# test running programs
#
@@ -166,9 +168,8 @@ gdb_run_cmd
setup_xfail "arm-*-coff"
gdb_test_stdio "" "720" "" "run \"$testfile\" again after setting args"
-# GOAL: Test that shell is being used with "run". For remote debugging
-# targets, there is no guarantee that a "shell" (whatever that is) is used.
-if {![is_remote target]} {
+# GOAL: Test that shell is being used with "run".
+if { $have_startup_shell == 1 } {
gdb_test_stdio "run `echo 8`" \
"40320" "" "run \"$testfile\" with shell"
}
diff --git a/gdb/testsuite/gdb.base/access-mem-running.exp b/gdb/testsuite/gdb.base/access-mem-running.exp
index ecff427..280e89b 100644
--- a/gdb/testsuite/gdb.base/access-mem-running.exp
+++ b/gdb/testsuite/gdb.base/access-mem-running.exp
@@ -32,7 +32,8 @@ proc test { non_stop } {
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"set non-stop $non_stop\""
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
}
if ![runto_main] {
diff --git a/gdb/testsuite/gdb.base/annota1.exp b/gdb/testsuite/gdb.base/annota1.exp
index 06dbec2..744d825 100644
--- a/gdb/testsuite/gdb.base/annota1.exp
+++ b/gdb/testsuite/gdb.base/annota1.exp
@@ -533,7 +533,8 @@ proc thread_test {} {
if { [gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug nowarnings}] == "" } {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
if {![runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.base/annotate-symlink.exp b/gdb/testsuite/gdb.base/annotate-symlink.exp
index f7f6f18..a5d431e 100644
--- a/gdb/testsuite/gdb.base/annotate-symlink.exp
+++ b/gdb/testsuite/gdb.base/annotate-symlink.exp
@@ -20,7 +20,7 @@ standard_testfile realname-expand.c realname-expand-real.c
require {!is_remote host}
set srcdirabs [file join [pwd] $srcdir]
-set srcfilelink [standard_output_file realname-expand-link.c]
+set srcfilelink [build_standard_output_file realname-expand-link.c]
remote_exec build "ln -sf ${srcdirabs}/${subdir}/${srcfile2} $srcfilelink"
diff --git a/gdb/testsuite/gdb.base/args.exp b/gdb/testsuite/gdb.base/args.exp
index 33952e4..3930059 100644
--- a/gdb/testsuite/gdb.base/args.exp
+++ b/gdb/testsuite/gdb.base/args.exp
@@ -21,6 +21,7 @@ require {!target_info exists noargs}
# This test requires starting new inferior processes, skip it if the target
# board is a stub.
require !use_gdb_stub
+require {expr [have_startup_shell] != -1}
standard_testfile
@@ -29,74 +30,187 @@ if {[build_executable $testfile.exp $testfile $srcfile] == -1} {
return -1
}
-# NAME is the name to use for the tests and ARGLIST is the list of
-# arguments that are passed to GDB when it is started.
+# Assuming a running GDB. Check the status of the single inferior
+# argument feature. When this feature is on GDB passes inferior
+# arguments as a single combined string. When this feature is off GDB
+# will split the inferior arguments into multiple separate strings.
#
-# The optional RE_LIST is the list of patterns to check the arguments
-# against, these patterns should match ARGLIST. If the arguments are
-# expected to show up unmodified in the test output then RE_LIST can
-# be dropped, and this proc will reuse ARGLIST.
-
-proc args_test { name arglist {re_list {}} } {
-
- # If RE_LIST is not supplied then we can reuse ARGLIST, this
- # implies that the arguments will appear unmodified in the test
- # output.
- if {[llength $re_list] == 0} {
- set re_list $arglist
+# Return true when arguments are being split, or false when a single
+# combined string is being sent.
+
+proc is_argument_splitting_on {} {
+ set arg_splitting true
+
+ gdb_test_multiple "show remote single-inferior-argument-feature-packet" "" {
+ -re -wrap "Support for the 'single-inferior-argument-feature' packet on the current remote target is \"(on|off)\"\\.(.*)" {
+ set value $expect_out(1,string)
+ pass $gdb_test_name
+ if { $value eq "on" } {
+ set arg_splitting false
+ }
+ }
+ -re -wrap "Support for the 'single-inferior-argument-feature' packet on the current remote target is \"auto\", currently (enabled|disabled)\\.(.*)" {
+ set value $expect_out(1,string)
+ pass $gdb_test_name
+ if { $value eq "enabled" } {
+ set arg_splitting false
+ }
+ }
}
- foreach_with_prefix startup_with_shell { on off } {
- save_vars { ::GDBFLAGS } {
- set ::GDBFLAGS "$::GDBFLAGS --args $::binfile $arglist"
-
- clean_restart $::binfile
-
- gdb_test_no_output "set startup-with-shell ${startup_with_shell}" \
- "set startup-with-shell for $name"
+ return $arg_splitting
+}
- runto_main
- gdb_breakpoint [gdb_get_line_number "set breakpoint here"]
- gdb_continue_to_breakpoint "breakpoint for $name"
+# NAME is the name to use for the tests and ARGLIST is the list of
+# arguments that are passed to GDB when it is started.
+#
+# The optional RE_ESC_LIST is the list of patterns to check the
+# inferior arguments against when GDB is started using --args. If
+# RE_ESC_LIST is not given then ARGLIST is reused, this implies that
+# the inferior arguments appear unchanged in the test output.
+#
+# The optional RE_NO_ESC_LIST is the list of patterns to check the
+# inferior arguments against when GDB is started using
+# --no-escape-args. If RE_NO_ESC_LIST is not given then RE_ESC_LIST
+# is reused, this implies that there's no difference between the test
+# output when the arguments are escaped or not.
+
+proc args_test { name arglist {re_esc_list {}} {re_no_esc_list {}} } {
+
+ # If either of the two regexp lists are not specificed then we can
+ # use an earlier argument value instead.
+ #
+ # For the first regexp list, if this is missing then we use the
+ # argument list, this assumes that the arguments will appear
+ # unmodified in the output.
+ if {[llength $re_esc_list] == 0} {
+ set re_esc_list $arglist
+ }
- set expected_len [expr 1 + [llength $re_list]]
- gdb_test "print argc" "\\\$$::decimal = $expected_len" "argc for $name"
+ # If the second regexp list is missing then we reuse the first
+ # regexp list. This assumes there's no difference between escaped
+ # and unescaped arguments in the output.
+ if {[llength $re_no_esc_list] == 0} {
+ set re_no_esc_list $re_esc_list
+ }
- set i 1
- foreach arg $re_list {
- gdb_test "print argv\[$i\]" "\\\$$::decimal = $::hex \"$arg\"" \
- "argv\[$i\] for $name"
- set i [expr $i + 1]
+ foreach_with_prefix startup_with_shell { on off } {
+ foreach_with_prefix arg_flag { args no-escape-args } {
+ save_vars { ::GDBFLAGS } {
+ set ::GDBFLAGS "$::GDBFLAGS --${arg_flag} $::binfile $arglist"
+
+ clean_restart $::testfile
+
+ gdb_test_no_output \
+ "set startup-with-shell ${startup_with_shell}" \
+ "set startup-with-shell for $name"
+
+ runto_main
+ gdb_breakpoint [gdb_get_line_number "set breakpoint here"]
+ gdb_continue_to_breakpoint "breakpoint for $name"
+
+ if { $arg_flag eq "args" || $startup_with_shell eq "off" } {
+ set re_list $re_esc_list
+ } else {
+ set re_list $re_no_esc_list
+ }
+
+ set expected_len [expr 1 + [llength $re_list]]
+ gdb_test "print argc" \
+ "\\\$$::decimal = $expected_len" "argc for $name"
+
+ set i 1
+ foreach arg $re_list {
+ if { $arg eq "\n" } {
+ set arg {\\n}
+ } elseif { $arg eq "\"" } {
+ set arg {\\\"}
+ }
+
+ # If we are starting with a shell, we're not escaping
+ # special shell characters in arguments passed to GDB,
+ # we're using a remote target, and the arguments contain
+ # a shell variable (indicated with a '$'), then this
+ # test will currently fail if we are splitting the
+ # arguments.
+ if { $startup_with_shell eq "on"
+ && $arg_flag eq "no-escape-args"
+ && [gdb_protocol_is_remote]
+ && [string first "\$" $arglist] != -1
+ && [is_argument_splitting_on] } {
+ setup_xfail "*-*-*" gdb/28392
+ }
+
+ gdb_test "print argv\[$i\]" \
+ "\\\$$::decimal = $::hex \"$arg\"" \
+ "argv\[$i\] for $name"
+ set i [expr $i + 1]
+ }
}
}
}
}
-# Test that the --args are processed correctly.
+# Run all the tests.
+proc run_all_tests {} {
+ # Test that the --args are processed correctly.
+
+ args_test basic {{1} {3}}
-args_test basic {{1} {3}}
+ # Test that the --args are processed correctly even if one of them is
+ # empty.
-# Test that the --args are processed correctly even if one of them is
-# empty.
+ args_test "one empty" {{1} {} {3}}
-args_test "one empty" {{1} {} {3}}
+ # Try with 2 empty args.
-# Try with 2 empty args.
+ args_test "two empty" {{1} {} {} 3}
-args_test "two empty" {{1} {} {} 3}
+ # Try with arguments containing literal single quotes.
-# Try with arguments containing literal single quotes.
+ args_test "one empty with single quotes" {{1} {''} {3}}
-args_test "one empty with single quotes" {{1} {''} {3}}
+ args_test "two empty with single quotes" {{1} {''} {''} {3}}
-args_test "two empty with single quotes" {{1} {''} {''} {3}}
+ # Try with arguments containing literal newlines.
-# Try with arguments containing literal newlines.
+ args_test "one newline" {{1} "\n" {3}} {1 \\\\n 3}
-args_test "one newline" {{1} "\n" {3}} {1 \\\\n 3}
+ args_test "two newlines" {{1} "\n" "\n" {3}} {1 \\\\n \\\\n 3}
-args_test "two newlines" {{1} "\n" "\n" {3}} {1 \\\\n \\\\n 3}
+ args_test "lone single quote" {{1} \' {3}}
-args_test "lone single quote" {{1} \' {3}}
+ args_test "lone double quote" {{1} \" {3}} {1 \\\\\" 3}
-args_test "lone double quote" {{1} \" {3}} {1 \\\\\" 3}
+ save_vars { ::env(TEST) } {
+ set ::env(TEST) "ABCD"
+ args_test "shell variable" {{$TEST}} {\\$TEST} {{ABCD}}
+ }
+
+ # At one point we had a bug where, if the last inferior argument,
+ # appearing after --args, looked like an option GDB might be able
+ # to process, e.g. started with a dash, then GDB would try to
+ # process it. This would leave GDB in a broken state, and so GDB
+ # would fail to start. A example of a failing GDB command line:
+ # $ gdb --args /bin/ls --all
+ foreach_with_prefix flag { args no-escape-args } {
+ args_test "with trailing GDB flag" [list "--${flag}"]
+ }
+ args_test "with trailing GDB option and value" [list "--ex" "start"]
+ args_test "with trailing double dash option" [list "--foo"]
+ args_test "with trailing single dash option" [list "-foo"]
+}
+
+run_all_tests
+
+# For extended-remote targets, disable the packet which passes
+# inferior arguments as a single string. This changes how the vRun
+# (extended-remote only) packet works.
+if {[target_info gdb_protocol] == "extended-remote"} {
+ with_test_prefix "single-inferior-arg disabled" {
+ save_vars { GDBFLAGS } {
+ append GDBFLAGS " -ex \"set remote single-inferior-argument-feature-packet off\""
+ run_all_tests
+ }
+ }
+}
diff --git a/gdb/testsuite/gdb.base/arrayidx.exp b/gdb/testsuite/gdb.base/arrayidx.exp
index 4fc221f..757ce92 100644
--- a/gdb/testsuite/gdb.base/arrayidx.exp
+++ b/gdb/testsuite/gdb.base/arrayidx.exp
@@ -24,7 +24,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debu
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.base/assign.exp b/gdb/testsuite/gdb.base/assign.exp
index a69655d..aaee796 100644
--- a/gdb/testsuite/gdb.base/assign.exp
+++ b/gdb/testsuite/gdb.base/assign.exp
@@ -33,7 +33,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
#
diff --git a/gdb/testsuite/gdb.base/attach-fail-twice.exp b/gdb/testsuite/gdb.base/attach-fail-twice.exp
index 529002d..5e5d73f 100644
--- a/gdb/testsuite/gdb.base/attach-fail-twice.exp
+++ b/gdb/testsuite/gdb.base/attach-fail-twice.exp
@@ -77,7 +77,8 @@ proc test_good_attach {test} {
}
proc_with_prefix test {} {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
# GDB used to have a bug on Windows where failing to attach once
# made a subsequent "attach" or "run" hang. So it's important for
diff --git a/gdb/testsuite/gdb.base/attach-non-pgrp-leader.exp b/gdb/testsuite/gdb.base/attach-non-pgrp-leader.exp
index 2ce092d..c43a11c 100644
--- a/gdb/testsuite/gdb.base/attach-non-pgrp-leader.exp
+++ b/gdb/testsuite/gdb.base/attach-non-pgrp-leader.exp
@@ -36,7 +36,8 @@ proc do_test {} {
# Attach to the parent, run it to a known point, extract the
# child's PID, and detach.
with_test_prefix "parent" {
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
gdb_test "attach $parent_pid" \
"Attaching to program.*, process $parent_pid.*" \
@@ -56,7 +57,8 @@ proc do_test {} {
# Start over, and attach to the child this time.
with_test_prefix "child" {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
gdb_test "attach $child_pid" \
"Attaching to program.*, process $child_pid.*" \
diff --git a/gdb/testsuite/gdb.base/attach-twice.exp b/gdb/testsuite/gdb.base/attach-twice.exp
index 3d74298..63205e2 100644
--- a/gdb/testsuite/gdb.base/attach-twice.exp
+++ b/gdb/testsuite/gdb.base/attach-twice.exp
@@ -45,6 +45,6 @@ gdb_test_multiple "attach $testpid" $test {
}
if {$parentpid != 0} {
- eval exec kill -9 $parentpid
+ exec kill -9 $parentpid
}
kill_wait_spawned_process $test_spawn_id
diff --git a/gdb/testsuite/gdb.base/attach-wait-input.exp b/gdb/testsuite/gdb.base/attach-wait-input.exp
index 84c9bab..47e3d25 100644
--- a/gdb/testsuite/gdb.base/attach-wait-input.exp
+++ b/gdb/testsuite/gdb.base/attach-wait-input.exp
@@ -43,7 +43,8 @@ proc start_program {binfile} {
global gdb_prompt
global decimal
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
if {![runto setup_done]} {
return 0
diff --git a/gdb/testsuite/gdb.base/attach.c b/gdb/testsuite/gdb.base/attach.c
index b3c5498..5133dd0 100644
--- a/gdb/testsuite/gdb.base/attach.c
+++ b/gdb/testsuite/gdb.base/attach.c
@@ -5,7 +5,7 @@
exit unless/until gdb sets the variable to non-zero.)
*/
#include <stdio.h>
-#include <unistd.h>
+#include "gdb_watchdog.h"
int bidule = 0;
volatile int should_exit = 0;
@@ -14,7 +14,7 @@ int main ()
{
int local_i = 0;
- alarm (60);
+ gdb_watchdog (60);
while (! should_exit)
{
diff --git a/gdb/testsuite/gdb.base/attach.exp b/gdb/testsuite/gdb.base/attach.exp
index 0d1550a..d0a29f2 100644
--- a/gdb/testsuite/gdb.base/attach.exp
+++ b/gdb/testsuite/gdb.base/attach.exp
@@ -56,7 +56,8 @@ proc_with_prefix do_attach_failure_tests {} {
global escapedbinfile
global srcfile
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
# Figure out a regular expression that will match the sysroot,
# noting that the default sysroot is "target:", and also noting
@@ -215,7 +216,8 @@ proc_with_prefix do_attach_tests {} {
global timeout
global decimal
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
# Figure out a regular expression that will match the sysroot,
# noting that the default sysroot is "target:", and also noting
@@ -519,7 +521,8 @@ proc_with_prefix do_attach_exec_mismatch_handling_tests {} {
global binfile2
global binfile3
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
# Start two programs that can be attached to.
# The first program contains a 'int bidule' variable, the second a 'float bidule'.
diff --git a/gdb/testsuite/gdb.base/auxv.exp b/gdb/testsuite/gdb.base/auxv.exp
index 090d9ba..38efa45 100644
--- a/gdb/testsuite/gdb.base/auxv.exp
+++ b/gdb/testsuite/gdb.base/auxv.exp
@@ -41,7 +41,8 @@ set core_works [expr [isnative] && ! [is_remote target]]
# Run GDB on the test program up to where it will dump core.
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
gdb_test_no_output "set print sevenbit-strings"
gdb_test_no_output "set width 0"
diff --git a/gdb/testsuite/gdb.base/backtrace-through-cu-nodebug.exp b/gdb/testsuite/gdb.base/backtrace-through-cu-nodebug.exp
index fce6d67..652e8c1 100644
--- a/gdb/testsuite/gdb.base/backtrace-through-cu-nodebug.exp
+++ b/gdb/testsuite/gdb.base/backtrace-through-cu-nodebug.exp
@@ -52,9 +52,10 @@ proc prepare_test {has_cfi} {
return false
}
- clean_restart "$binfile-${extension}"
+ clean_restart
+ gdb_load $binfile-$extension
- if ![runto callback] then {
+ if { ![runto callback] } {
fail "has_cfi=$has_cfi: Can't run to callback"
return false
}
diff --git a/gdb/testsuite/gdb.base/backtrace.exp b/gdb/testsuite/gdb.base/backtrace.exp
index 35784b4..3020666 100644
--- a/gdb/testsuite/gdb.base/backtrace.exp
+++ b/gdb/testsuite/gdb.base/backtrace.exp
@@ -17,11 +17,7 @@
standard_testfile
-set flags {}
-lappend flags debug
-lappend_include_file flags $srcdir/lib/attributes.h
-
-if { [prepare_for_testing "failed to prepare" $testfile $srcfile $flags] } {
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
return -1
}
diff --git a/gdb/testsuite/gdb.base/basic-edit-cmd.exp b/gdb/testsuite/gdb.base/basic-edit-cmd.exp
index 8a23c9b..7ad8ab9 100644
--- a/gdb/testsuite/gdb.base/basic-edit-cmd.exp
+++ b/gdb/testsuite/gdb.base/basic-edit-cmd.exp
@@ -68,7 +68,8 @@ save_vars { env(EDITOR) } {
"try edit when no symbol file is loaded"
# Now start with a test binary.
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
with_test_prefix "before starting inferior" {
diff --git a/gdb/testsuite/gdb.base/bfp-test.exp b/gdb/testsuite/gdb.base/bfp-test.exp
index 7781fe1..53d274f 100644
--- a/gdb/testsuite/gdb.base/bfp-test.exp
+++ b/gdb/testsuite/gdb.base/bfp-test.exp
@@ -23,7 +23,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debu
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.base/bg-exec-sigint-bp-cond.exp b/gdb/testsuite/gdb.base/bg-exec-sigint-bp-cond.exp
index 18e20e0..2e2a8e6 100644
--- a/gdb/testsuite/gdb.base/bg-exec-sigint-bp-cond.exp
+++ b/gdb/testsuite/gdb.base/bg-exec-sigint-bp-cond.exp
@@ -34,7 +34,8 @@ if {[build_executable "failed to prepare" $testfile $srcfile debug]} {
# AFTER_KILL_COND is appended to the breakpoint condition, after "kill
# -SIGINT $gdb_pid".
proc test { {after_kill_cond ""} } {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.base/bg-execution-repeat.exp b/gdb/testsuite/gdb.base/bg-execution-repeat.exp
index d5580fb..e7bdf49 100644
--- a/gdb/testsuite/gdb.base/bg-execution-repeat.exp
+++ b/gdb/testsuite/gdb.base/bg-execution-repeat.exp
@@ -33,7 +33,8 @@ proc test {continue_cmd} {
global binfile
global linenum
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
if ![runto_main] {
return
diff --git a/gdb/testsuite/gdb.base/bigcore.exp b/gdb/testsuite/gdb.base/bigcore.exp
index 7727e48..f917eb8 100644
--- a/gdb/testsuite/gdb.base/bigcore.exp
+++ b/gdb/testsuite/gdb.base/bigcore.exp
@@ -117,7 +117,8 @@ proc test {dumper} {
# Run GDB on the bigcore program up-to where it will dump core.
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
gdb_test_no_output "set print sevenbit-strings"
gdb_test_no_output "set width 0"
diff --git a/gdb/testsuite/gdb.base/bitfields2.exp b/gdb/testsuite/gdb.base/bitfields2.exp
index a99660a..3e981dd 100644
--- a/gdb/testsuite/gdb.base/bitfields2.exp
+++ b/gdb/testsuite/gdb.base/bitfields2.exp
@@ -233,7 +233,8 @@ proc bitfield_set {} {
}
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
gdb_test_no_output "set print sevenbit-strings"
runto_main
diff --git a/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp b/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp
index 4fc8f06..648992c 100644
--- a/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp
+++ b/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp
@@ -118,7 +118,8 @@ proc do_test {} {
# "attach".
with_test_prefix "run" {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
if {![runto_main]} {
return -1
@@ -129,7 +130,8 @@ with_test_prefix "run" {
with_test_prefix "attach" {
if {[can_spawn_for_attach]} {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
set test_spawn_id [spawn_wait_for_attach $binfile]
set testpid [spawn_id_get_pid $test_spawn_id]
diff --git a/gdb/testsuite/gdb.base/bp-cond-failure.exp b/gdb/testsuite/gdb.base/bp-cond-failure.exp
index 4d03e7b..f33092b 100644
--- a/gdb/testsuite/gdb.base/bp-cond-failure.exp
+++ b/gdb/testsuite/gdb.base/bp-cond-failure.exp
@@ -26,7 +26,7 @@
standard_testfile
-if { [prepare_for_testing "failed to prepare" ${binfile} "${srcfile}" \
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile \
{debug c++}] == -1 } {
return
}
@@ -45,7 +45,8 @@ if { [is_address_zero_readable] } {
}
proc run_test { cond_eval access_type bpexpr nloc } {
- clean_restart ${::binfile}
+ clean_restart
+ gdb_load $::binfile
if { ![runto_main] } {
return -1
diff --git a/gdb/testsuite/gdb.base/bp-disabled-by-cond.exp b/gdb/testsuite/gdb.base/bp-disabled-by-cond.exp
index f0bdd16..371b9e7 100644
--- a/gdb/testsuite/gdb.base/bp-disabled-by-cond.exp
+++ b/gdb/testsuite/gdb.base/bp-disabled-by-cond.exp
@@ -52,7 +52,8 @@ set exit_bp_line [gdb_get_line_number "BP before exit" $srcfile]
# Restart the inferior, which should unload the shared library, GDB
# should mark the b/p as disabled due to its condition again.
proc run_test { hit_cond } {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.base/bp-permanent.exp b/gdb/testsuite/gdb.base/bp-permanent.exp
index c6c6269..3ae5efe 100644
--- a/gdb/testsuite/gdb.base/bp-permanent.exp
+++ b/gdb/testsuite/gdb.base/bp-permanent.exp
@@ -42,7 +42,8 @@ proc test {always_inserted sw_watchpoint} {
global gdb_prompt
global srcfile binfile
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
if {![runto_main]} {
return -1
diff --git a/gdb/testsuite/gdb.base/break-fun-addr.exp b/gdb/testsuite/gdb.base/break-fun-addr.exp
index 9f5325a..ba6e32e 100644
--- a/gdb/testsuite/gdb.base/break-fun-addr.exp
+++ b/gdb/testsuite/gdb.base/break-fun-addr.exp
@@ -44,7 +44,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile1}" "${binfile1}" executable {d
# on the first instruction of function "main" ("*main"), then
# run to that breakpoint.
-clean_restart ${binfile1}
+clean_restart
+gdb_load $binfile1
with_test_prefix "${testfile1}" {
diff --git a/gdb/testsuite/gdb.base/break-idempotent.exp b/gdb/testsuite/gdb.base/break-idempotent.exp
index ed23b64..3b32c89 100644
--- a/gdb/testsuite/gdb.base/break-idempotent.exp
+++ b/gdb/testsuite/gdb.base/break-idempotent.exp
@@ -161,7 +161,7 @@ foreach_with_prefix pie { "nopie" "pie" } {
set binfile [standard_output_file $testfile-$pie]
- if {[prepare_for_testing "failed to prepare" $binfile $srcfile $opts]} {
+ if {[prepare_for_testing "failed to prepare" $testfile-$pie $srcfile $opts]} {
continue
}
diff --git a/gdb/testsuite/gdb.base/break-interp.exp b/gdb/testsuite/gdb.base/break-interp.exp
index 649cc86..038c3ea 100644
--- a/gdb/testsuite/gdb.base/break-interp.exp
+++ b/gdb/testsuite/gdb.base/break-interp.exp
@@ -78,7 +78,8 @@ gdb_test_multiple $test $test {
}
set interp_system [section_get [standard_output_file $binfile_test] .interp]
-clean_restart $interp_system
+clean_restart
+gdb_load $interp_system
set dl_main_found 0
gdb_test_multiple "info addr dl_main" "" {
-re -wrap "Symbol \"dl_main\" is a function at address $hex\\." {
@@ -218,6 +219,7 @@ proc test_core {file displacement} {
set corefile [core_find $file {} "segv"]
if {$corefile == ""} {
+ untested "unable to create or find corefile"
return
}
diff --git a/gdb/testsuite/gdb.base/bt-on-fatal-signal.exp b/gdb/testsuite/gdb.base/bt-on-fatal-signal.exp
index 06402dc..63428a1 100644
--- a/gdb/testsuite/gdb.base/bt-on-fatal-signal.exp
+++ b/gdb/testsuite/gdb.base/bt-on-fatal-signal.exp
@@ -61,7 +61,8 @@ foreach test_data {{SEGV "Segmentation fault"} \
# Restart GDB.
save_vars { GDB } {
set GDB [gdb_no_core]
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
}
# Capture the pid of GDB.
diff --git a/gdb/testsuite/gdb.base/bt-selected-frame.exp b/gdb/testsuite/gdb.base/bt-selected-frame.exp
index 68f5ed4..bbe2a5a 100644
--- a/gdb/testsuite/gdb.base/bt-selected-frame.exp
+++ b/gdb/testsuite/gdb.base/bt-selected-frame.exp
@@ -24,7 +24,8 @@ if { [build_executable "failed to prepare" $testfile $srcfile debug] } {
proc check_selected_frame_after_bt { bt_cmd stack_pattern } {
global binfile
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
with_test_prefix $bt_cmd {
diff --git a/gdb/testsuite/gdb.base/call-rt-st.exp b/gdb/testsuite/gdb.base/call-rt-st.exp
index 244eba8..511e209 100644
--- a/gdb/testsuite/gdb.base/call-rt-st.exp
+++ b/gdb/testsuite/gdb.base/call-rt-st.exp
@@ -39,7 +39,8 @@ set allow_float_test [allow_float_test]
# Start with a fresh gdb.
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
gdb_test_no_output "set print sevenbit-strings"
gdb_test_no_output "set print address off"
gdb_test_no_output "set width 0"
diff --git a/gdb/testsuite/gdb.base/call-sc.exp b/gdb/testsuite/gdb.base/call-sc.exp
index 4d0fccc..f67670d 100644
--- a/gdb/testsuite/gdb.base/call-sc.exp
+++ b/gdb/testsuite/gdb.base/call-sc.exp
@@ -46,7 +46,7 @@ proc start_scalars_test { type } {
set testfile "call-sc-${type}"
set binfile [standard_output_file ${testfile}]
- if { [prepare_for_testing "failed to prepare" $binfile $srcfile $flags] } {
+ if { [prepare_for_testing "failed to prepare" $testfile $srcfile $flags] } {
return -1
}
diff --git a/gdb/testsuite/gdb.base/call-signal-resume.exp b/gdb/testsuite/gdb.base/call-signal-resume.exp
index 10a2928..a74b8af 100644
--- a/gdb/testsuite/gdb.base/call-signal-resume.exp
+++ b/gdb/testsuite/gdb.base/call-signal-resume.exp
@@ -47,7 +47,8 @@ proc get_dummy_frame_number { } {
# Start with a fresh gdb.
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if { ![runto_main] } {
return 0
diff --git a/gdb/testsuite/gdb.base/callexit.exp b/gdb/testsuite/gdb.base/callexit.exp
index c250c67..e0ce899 100644
--- a/gdb/testsuite/gdb.base/callexit.exp
+++ b/gdb/testsuite/gdb.base/callexit.exp
@@ -27,7 +27,8 @@ require {!target_info exists gdb,cannot_call_functions}
# Start with a fresh gdb.
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if { ![runto_main] } {
return 0
diff --git a/gdb/testsuite/gdb.base/catch-syscall.exp b/gdb/testsuite/gdb.base/catch-syscall.exp
index f3ddef5..9c5839c 100644
--- a/gdb/testsuite/gdb.base/catch-syscall.exp
+++ b/gdb/testsuite/gdb.base/catch-syscall.exp
@@ -630,7 +630,8 @@ proc test_catch_syscall_multi_arch {} {
test_catch_syscall_multi_arch_1 $arch1 $arch2 $syscall1_name \
$syscall2_name $syscall_number
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
}
proc do_syscall_tests_without_xml {} {
@@ -801,18 +802,21 @@ fill_all_syscalls_numbers
# Execute the tests, using XML support
gdb_exit
if { [allow_xml_test] } {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
do_syscall_tests
# Now, we have to see if GDB displays a warning when we
# don't set the data-directory but try to use catch syscall
# anyway. For that, we must restart GDB first.
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
test_catch_syscall_fail_nodatadir
}
# Restart gdb
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
# Execute the tests, without XML support. In this case, GDB will
# only display syscall numbers, and not syscall names.
diff --git a/gdb/testsuite/gdb.base/checkpoint.exp b/gdb/testsuite/gdb.base/checkpoint.exp
index 89b36f5..55eba5d 100644
--- a/gdb/testsuite/gdb.base/checkpoint.exp
+++ b/gdb/testsuite/gdb.base/checkpoint.exp
@@ -290,7 +290,8 @@ gdb_test "restart 10" "has no checkpoints" "no more checkpoint 10"
# Now let's try setting a large number of checkpoints (>600)
#
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
runto_main
gdb_breakpoint $break1_loc
@@ -356,7 +357,8 @@ gdb_test "kill" "" "kill all one with many checkpoints" \
#
with_test_prefix "delete checkpoint 0" {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
runto_main
gdb_test "checkpoint" "Checkpoint 1: fork returned pid $decimal\\."
diff --git a/gdb/testsuite/gdb.base/chng-syms.exp b/gdb/testsuite/gdb.base/chng-syms.exp
index a561689..dbc523d 100644
--- a/gdb/testsuite/gdb.base/chng-syms.exp
+++ b/gdb/testsuite/gdb.base/chng-syms.exp
@@ -36,7 +36,8 @@ proc expect_to_stop_here { ident } {
gdb_test "" "Breakpoint \[0-9\]*, stop_here .*" "running to stop_here $ident"
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
gdb_test "break stop_here if (var1 == 42)" \
"Breakpoint.*at.* file .*$srcfile, line.*" \
diff --git a/gdb/testsuite/gdb.base/clear_non_user_bp.exp b/gdb/testsuite/gdb.base/clear_non_user_bp.exp
index f078b97..c016d07 100644
--- a/gdb/testsuite/gdb.base/clear_non_user_bp.exp
+++ b/gdb/testsuite/gdb.base/clear_non_user_bp.exp
@@ -47,7 +47,8 @@ if { [gdb_compile "${srcdir}/${subdir}/main.c" "${binfile}" executable {debug}]
}
# Start with a fresh gdb.
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.base/cli-suppress-notification.exp b/gdb/testsuite/gdb.base/cli-suppress-notification.exp
index 19f9c55..6880d98 100644
--- a/gdb/testsuite/gdb.base/cli-suppress-notification.exp
+++ b/gdb/testsuite/gdb.base/cli-suppress-notification.exp
@@ -17,7 +17,7 @@
standard_testfile
-if {[prepare_for_testing "failed to prepare" ${binfile} ${srcfile}]} {
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
return
}
diff --git a/gdb/testsuite/gdb.base/code-expr.exp b/gdb/testsuite/gdb.base/code-expr.exp
index 4288617..8af2ee6 100644
--- a/gdb/testsuite/gdb.base/code-expr.exp
+++ b/gdb/testsuite/gdb.base/code-expr.exp
@@ -29,7 +29,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
gdb_test_no_output "set print sevenbit-strings"
gdb_test_no_output "set print address off"
diff --git a/gdb/testsuite/gdb.base/color-prompt.exp b/gdb/testsuite/gdb.base/color-prompt.exp
new file mode 100644
index 0000000..c037185
--- /dev/null
+++ b/gdb/testsuite/gdb.base/color-prompt.exp
@@ -0,0 +1,29 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Check using a prompt with color in CLI.
+
+# Using tuiterm requires setting TERM on host.
+require {!is_remote host}
+
+# We use a tuiterm, which allows us to determine cursor position.
+tuiterm_env
+Term::clean_restart 8 80
+
+# We start with an empty screen, to generate a visible prompt.
+Term::gen_prompt
+
+set tui 0
+source $srcdir/$subdir/../gdb.tui/color-prompt.exp.tcl
diff --git a/gdb/testsuite/gdb.base/cond-expr.exp b/gdb/testsuite/gdb.base/cond-expr.exp
index e60fd16..2080937 100644
--- a/gdb/testsuite/gdb.base/cond-expr.exp
+++ b/gdb/testsuite/gdb.base/cond-expr.exp
@@ -39,7 +39,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.base/condbreak-bad.exp b/gdb/testsuite/gdb.base/condbreak-bad.exp
index 7aff409..19c16dc 100644
--- a/gdb/testsuite/gdb.base/condbreak-bad.exp
+++ b/gdb/testsuite/gdb.base/condbreak-bad.exp
@@ -17,7 +17,7 @@
standard_testfile
-if {[prepare_for_testing "failed to prepare" ${binfile} ${srcfile}]} {
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
return
}
diff --git a/gdb/testsuite/gdb.base/condbreak-multi-context.exp b/gdb/testsuite/gdb.base/condbreak-multi-context.exp
index dce162b..b4ea0f1 100644
--- a/gdb/testsuite/gdb.base/condbreak-multi-context.exp
+++ b/gdb/testsuite/gdb.base/condbreak-multi-context.exp
@@ -53,7 +53,8 @@ proc find_location_contexts { } {
global loc_name loc_index fill
global decimal hex gdb_prompt binfile
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
if {![runto_main]} {
return
@@ -130,7 +131,8 @@ proc check_bp_locations {bpnum states cond {msg ""}} {
proc_with_prefix scenario_1 { start_before } {
global warning decimal fill bkptno_num_re binfile
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
if { $start_before } {
if {![runto_main temporary]} {
@@ -242,7 +244,8 @@ proc setup_bps { bpnum1_name bpnum2_name } {
proc_with_prefix scenario_2 { start_before } {
global binfile bkptno_num_re
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
if { $start_before } {
if {![runto_main temporary]} {
@@ -290,7 +293,8 @@ proc_with_prefix scenario_2 { start_before } {
proc_with_prefix scenario_3 { start_before } {
global binfile bkptno_num_re loc_index warning
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
if { $start_before } {
if {![runto_main temporary]} {
@@ -367,7 +371,8 @@ proc_with_prefix scenario_3 { start_before } {
proc_with_prefix scenario_4 { start_before } {
global binfile bkptno_num_re loc_index warning
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
if { $start_before } {
if {![runto_main temporary]} {
diff --git a/gdb/testsuite/gdb.base/consecutive.exp b/gdb/testsuite/gdb.base/consecutive.exp
index e73b3c3..fa58a8f 100644
--- a/gdb/testsuite/gdb.base/consecutive.exp
+++ b/gdb/testsuite/gdb.base/consecutive.exp
@@ -54,7 +54,7 @@ gdb_test "break \*$bp_addr" "Breakpoint $decimal at $bp_addr: file .*" \
gdb_test_multiple "step" "stopped at bp, 2nd instr" {
-re -wrap "Breakpoint $decimal, ($hex) in foo.*" {
set stop_addr $expect_out(1,string)
- if {[eval expr "$bp_addr == $stop_addr"]} {
+ if {$bp_addr == $stop_addr} {
pass "stopped at bp, 2nd instr"
} else {
fail "stopped at bp, 2nd instr (wrong address)"
@@ -65,7 +65,7 @@ gdb_test_multiple "step" "stopped at bp, 2nd instr" {
set stop_addr_is_stmt [hex_in_list $stop_addr $is_stmt]
if {!$stop_addr_is_stmt} {
fail "stopped at bp, 2nd instr (missing hex prefix)"
- } elseif {[eval expr "$bp_addr == $stop_addr"]} {
+ } elseif {$bp_addr == $stop_addr} {
pass "stopped at bp, 2nd instr"
} else {
fail "stopped at bp, 2nd instr (wrong address)"
diff --git a/gdb/testsuite/gdb.base/constvars.exp b/gdb/testsuite/gdb.base/constvars.exp
index 8f55945..dcc8d1b 100644
--- a/gdb/testsuite/gdb.base/constvars.exp
+++ b/gdb/testsuite/gdb.base/constvars.exp
@@ -34,7 +34,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable debug
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
#
diff --git a/gdb/testsuite/gdb.base/continue-after-aborted-step-over.exp b/gdb/testsuite/gdb.base/continue-after-aborted-step-over.exp
index 4764d72..8ba1f61 100644
--- a/gdb/testsuite/gdb.base/continue-after-aborted-step-over.exp
+++ b/gdb/testsuite/gdb.base/continue-after-aborted-step-over.exp
@@ -45,7 +45,8 @@ proc do_test {displaced breakpoint_always_inserted} {
global gdb_prompt decimal
global srcfile binfile
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
gdb_test_no_output "set displaced-stepping $displaced"
gdb_test_no_output "set breakpoint always-inserted $breakpoint_always_inserted"
diff --git a/gdb/testsuite/gdb.base/corefile-exec-context.exp b/gdb/testsuite/gdb.base/corefile-exec-context.exp
index 7c9647c..23fd964 100644
--- a/gdb/testsuite/gdb.base/corefile-exec-context.exp
+++ b/gdb/testsuite/gdb.base/corefile-exec-context.exp
@@ -51,7 +51,8 @@ remote_exec build "mv $corefile $corefile_1"
# Load the core file and confirm that the full executable name is
# seen.
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
set saw_generated_line false
gdb_test_multiple "core-file $corefile_1" "load core file no args" {
-re "^Core was generated by `[string_to_regexp $binfile]'\\.\r\n" {
@@ -80,7 +81,8 @@ remote_exec build "mv $corefile $corefile_2"
# Load the core file and confirm that the full executable name and
# argument list are seen.
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
set saw_generated_line false
gdb_test_multiple "core-file $corefile_2" "load core file with args" {
-re "^Core was generated by `[string_to_regexp $binfile] $args'\\.\r\n" {
@@ -155,7 +157,8 @@ remote_exec build "mv $corefile $corefile_3"
# Restart, load the core file, and check the environment variable
# shows up.
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
# Check for environment variable VAR_NAME in the environment, its
# value should be VAR_VALUE.
diff --git a/gdb/testsuite/gdb.base/corefile-shmem-zero-id.exp b/gdb/testsuite/gdb.base/corefile-shmem-zero-id.exp
index 57c665e..94ab454 100644
--- a/gdb/testsuite/gdb.base/corefile-shmem-zero-id.exp
+++ b/gdb/testsuite/gdb.base/corefile-shmem-zero-id.exp
@@ -93,7 +93,8 @@ save_vars { env(LD_PRELOAD) env(ASAN_OPTIONS) } {
# LD_PRELOAD.
append_environment_default ASAN_OPTIONS verify_asan_link_order 0
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
# Start GDB with the modified environment, this means that, when
# using remote targets, gdbserver will also use the preload
@@ -186,7 +187,8 @@ with_timeout_factor 3 {
# Restart GDB. This time we are _not_ using the preload library. We
# no longer need it as we are only analysing the core file now.
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
# Load the core file.
gdb_test "core-file $corefile" \
diff --git a/gdb/testsuite/gdb.base/corefile.exp b/gdb/testsuite/gdb.base/corefile.exp
index da1fdf3..c34dfb5 100644
--- a/gdb/testsuite/gdb.base/corefile.exp
+++ b/gdb/testsuite/gdb.base/corefile.exp
@@ -31,6 +31,7 @@ if {[build_executable $testfile.exp $testfile $srcfile debug] == -1} {
# mmapped data in core file" test.
set corefile [core_find $binfile {}]
if {$corefile == ""} {
+ untested "unable to create or find corefile"
return 0
}
@@ -96,7 +97,8 @@ foreach_with_prefix coreopt {--core= -core= "-c "} {
# Now restart normally.
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
# Test basic corefile recognition via core-file command.
@@ -200,7 +202,8 @@ set coremmap_data_backup_filename \
remote_exec host "mv ${coremmap_data_filename} \
${coremmap_data_backup_filename}"
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
# Load the core file and check we get a warning about the
# coremmap.data file being missing.
@@ -229,7 +232,8 @@ remote_exec host "mv ${coremmap_data_backup_filename} \
# Test that we can unload the core with the "detach" command.
proc_with_prefix corefile_detach {} {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
gdb_test "core-file $::corefile" "Core was generated by .*" "load core"
gdb_test "detach" "No core file now\\." "detach core"
@@ -251,7 +255,8 @@ proc corefile_test_run {} {
return
}
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
gdb_test "core-file $corefile" "Core was generated by .*" "run: load core again"
set re "Local core dump file:"
diff --git a/gdb/testsuite/gdb.base/corefile2.exp b/gdb/testsuite/gdb.base/corefile2.exp
index 392705b..3975460 100644
--- a/gdb/testsuite/gdb.base/corefile2.exp
+++ b/gdb/testsuite/gdb.base/corefile2.exp
@@ -40,6 +40,7 @@ if {[build_executable $testfile.exp $testfile $srcfile debug] == -1} {
set corefile [core_find $binfile {}]
if {$corefile == ""} {
+ untested "unable to create or find corefile"
return 0
}
@@ -170,7 +171,8 @@ with_test_prefix "renamed binfile" {
# Restart and run to the abort call.
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
if {![runto_main]} {
return
@@ -194,7 +196,8 @@ if {!$core_supported} {
gdb_test_no_output "maint print core-file-backed-mappings" \
"maint print core-file-backed-mapping with no core file"
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
set core_loaded [gdb_core_cmd "$corefile" "re-load generated corefile"]
if { $core_loaded == -1 } {
diff --git a/gdb/testsuite/gdb.base/corefile3.exp b/gdb/testsuite/gdb.base/corefile3.exp
index 57b2300..4528509 100644
--- a/gdb/testsuite/gdb.base/corefile3.exp
+++ b/gdb/testsuite/gdb.base/corefile3.exp
@@ -34,6 +34,7 @@ if {[build_executable $testfile.exp $testfile $srcfile] == -1} {
set corefile [core_find $binfile {}]
if {$corefile == ""} {
+ untested "unable to create or find corefile"
return
}
@@ -46,7 +47,8 @@ set backup_filename \
[standard_output_file coredir.[getpid]/coremmap.data.backup]
remote_exec host "mv ${data_filename} ${backup_filename}"
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
# Load the core file. The 'coremap.data' file cannot be found by GDB,
# but all the mappings for that file are r/w and should be present in
diff --git a/gdb/testsuite/gdb.base/ctf-ptype.exp b/gdb/testsuite/gdb.base/ctf-ptype.exp
index 3f9023f..6d55cb2 100644
--- a/gdb/testsuite/gdb.base/ctf-ptype.exp
+++ b/gdb/testsuite/gdb.base/ctf-ptype.exp
@@ -234,11 +234,10 @@ proc ptype_maybe_prototyped { id prototyped plain { overprototyped "NO-MATCH" }
# Turn the arguments, which are literal strings, into
# regular expressions by quoting any special characters they contain.
foreach var { prototyped plain overprototyped } {
- eval "set val \$$var"
- regsub -all "\[\]\[*()\]" $val "\\\\&" val
+ set val [string_to_regexp [set $var]]
regsub -all "short int" $val "short( int)?" val
regsub -all "long int" $val "long( int)?" val
- eval "set $var \$val"
+ set $var $val
}
gdb_test_multiple "ptype $id" "ptype $id" {
diff --git a/gdb/testsuite/gdb.base/cvexpr.exp b/gdb/testsuite/gdb.base/cvexpr.exp
index 3e527db..e2f8c35 100644
--- a/gdb/testsuite/gdb.base/cvexpr.exp
+++ b/gdb/testsuite/gdb.base/cvexpr.exp
@@ -517,7 +517,7 @@ foreach testspec $specs {
# These tests don't rely on the debug format.
with_test_prefix nodebug {
- if { [prepare_for_testing "failed to prepare" $binfile $srcfile {nodebug}] } {
+ if { [prepare_for_testing "failed to prepare" $testfile $srcfile {nodebug}] } {
return 0
}
diff --git a/gdb/testsuite/gdb.base/default-args.exp b/gdb/testsuite/gdb.base/default-args.exp
index efc4205..ae417ed 100644
--- a/gdb/testsuite/gdb.base/default-args.exp
+++ b/gdb/testsuite/gdb.base/default-args.exp
@@ -25,7 +25,8 @@ if {[build_executable "failed to prepare" $testfile $srcfile debug]} {
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
# Basic/core tests using user-visible commands.
with_test_prefix "basics" {
diff --git a/gdb/testsuite/gdb.base/default.exp b/gdb/testsuite/gdb.base/default.exp
index 01e3cc1..b5e64c2 100644
--- a/gdb/testsuite/gdb.base/default.exp
+++ b/gdb/testsuite/gdb.base/default.exp
@@ -759,7 +759,6 @@ set show_conv_list \
{$_probe_arg10 = <error: No frame selected>} \
{$_probe_arg11 = <error: No frame selected>} \
{$_cimag = <internal function _cimag>} \
- {$_colorsupport = "monochrome"} \
{$_creal = <internal function _creal>} \
{$_isvoid = <internal function _isvoid>} \
{$_shell = <internal function _shell>} \
@@ -767,11 +766,9 @@ set show_conv_list \
{$_gdb_maint_setting = <internal function _gdb_maint_setting>} \
{$_gdb_setting_str = <internal function _gdb_setting_str>} \
{$_gdb_setting = <internal function _gdb_setting>} \
- {$_gdb_major = 17} \
- {$_gdb_minor = 1} \
{$_shell_exitsignal = void} \
{$_shell_exitcode = 0} \
- {$_active_linker_namespaces = 1} \
+ {$_linker_namespace_count = 0} \
{$_linker_namespace = <error: No registers.>}\
}
if [allow_python_tests] {
@@ -788,10 +785,52 @@ if [allow_python_tests] {
{$_any_caller_matches = <internal function _any_caller_matches>} \
}
}
-gdb_test_list_exact "show convenience" "show convenience" \
- "\[^\r\n\]+\[\r\n\]+" \
- "\[^\r\n\]+" \
- $show_conv_list
+
+set lines [gdb_get_lines_no_pass "show convenience"]
+set matches 0
+set all_found 1
+foreach s $show_conv_list {
+ if { ![regexp (^|\r\n)[string_to_regexp $s](\r\n|$) $lines] } {
+ verbose -log "didn't match: '$s'"
+ set all_found 0
+ break
+ }
+ incr matches
+}
+
+set re_var [string_to_regexp {$_colorsupport}]
+if { [is_remote host] } {
+ set re_val {[^\r\n]+}
+} else {
+ set re_val [string_to_regexp {"monochrome"}]
+}
+if { [regexp "$re_var = $re_val" $lines] } {
+ incr matches
+} else {
+ set all_found 0
+}
+
+set re_vars \
+ [list \
+ [string_to_regexp {$_gdb_major}] \
+ [string_to_regexp {$_gdb_minor}]]
+foreach re_var $re_vars {
+ if { [regexp "$re_var = $decimal" $lines] } {
+ incr matches
+ } else {
+ set all_found 0
+ }
+}
+
+if { [regexp [string_to_regexp {$_tlb = void}] $lines] } {
+ incr matches
+} else {
+ # Convenience variable _tlb is added only if support for windows targets
+ # is enabled. Don't complain if it's missing.
+}
+
+gdb_assert { $all_found && $matches == [count_newlines $lines] } \
+ "show convenience"
#test show directories
gdb_test "show directories" "Source directories searched: .cdir\[:;\].cwd"
diff --git a/gdb/testsuite/gdb.base/detach-sysroot-target.exp b/gdb/testsuite/gdb.base/detach-sysroot-target.exp
index 4248c86..c7466c0 100644
--- a/gdb/testsuite/gdb.base/detach-sysroot-target.exp
+++ b/gdb/testsuite/gdb.base/detach-sysroot-target.exp
@@ -22,7 +22,7 @@
standard_testfile
-if {[prepare_for_testing "failed to prepare" ${binfile} ${srcfile}]} {
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
return
}
diff --git a/gdb/testsuite/gdb.base/detach-while-running.exp b/gdb/testsuite/gdb.base/detach-while-running.exp
index 60943f3..34c2adc 100644
--- a/gdb/testsuite/gdb.base/detach-while-running.exp
+++ b/gdb/testsuite/gdb.base/detach-while-running.exp
@@ -45,7 +45,8 @@ proc test {} {
if {$is_remote} {
append ::GDBFLAGS " -ex \"maint set target-non-stop on\""
}
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
}
set test_spawn_id [spawn_wait_for_attach $binfile]
diff --git a/gdb/testsuite/gdb.base/detach.exp b/gdb/testsuite/gdb.base/detach.exp
index f9f67a8..c8d4350 100644
--- a/gdb/testsuite/gdb.base/detach.exp
+++ b/gdb/testsuite/gdb.base/detach.exp
@@ -42,7 +42,8 @@ proc do_detach_tests {} {
gdb_test "detach" "Detaching from program: .*$escapedbinfile, .*" "detach, $pass"
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
global pass
set pass "one"
diff --git a/gdb/testsuite/gdb.base/dfp-test.exp b/gdb/testsuite/gdb.base/dfp-test.exp
index 2a6c377..11f75da 100644
--- a/gdb/testsuite/gdb.base/dfp-test.exp
+++ b/gdb/testsuite/gdb.base/dfp-test.exp
@@ -28,7 +28,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {quie
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.base/display.exp b/gdb/testsuite/gdb.base/display.exp
index 7aed6d5..2fb6e07 100644
--- a/gdb/testsuite/gdb.base/display.exp
+++ b/gdb/testsuite/gdb.base/display.exp
@@ -52,7 +52,8 @@ if !$use_gdb_stub {
gdb_test "kill" ".*" "kill again"
gdb_test "detach" ".*" "detach again"
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
}
# Ok, on to real life
diff --git a/gdb/testsuite/gdb.base/dlmopen-ns-ids.exp b/gdb/testsuite/gdb.base/dlmopen-ns-ids.exp
index 4d3e8eb..f3bdfb0 100644
--- a/gdb/testsuite/gdb.base/dlmopen-ns-ids.exp
+++ b/gdb/testsuite/gdb.base/dlmopen-ns-ids.exp
@@ -38,16 +38,80 @@ if { [build_executable "failed to build" $testfile $srcfile \
return
}
+# Return a list of shared libraries extract from the "info sharedlibrary"
+# command. Each item in the list is itself a list with the following items:
+#
+# - "from" address
+# - "to" address
+# - namespace ID
+# - name (file path)
+
+proc get_info_shared {} {
+ set from_re "($::hex)\\s+"
+ set to_re "($::hex)\\s+"
+ set ns_re "(?:($::decimal)\\s+)?"
+ set syms_read_re "(Yes( \\(\\*\\))?|No)\\s+"
+ set name_re "(\[^\r\n\]+)"
+ set libs {}
+
+ gdb_test_multiple "info sharedlibrary" "" {
+ -re {From\s+To\s+(Linker NS\s+)?Syms Read\s+Shared Object Library\r\n} {
+ exp_continue
+ }
+
+ -re "^${from_re}${to_re}${ns_re}${syms_read_re}${name_re}\r\n" {
+ set from $expect_out(1,string)
+ set to $expect_out(2,string)
+ set ns $expect_out(3,string)
+ set name $expect_out(4,string)
+
+ lappend libs [list $from $to $ns $name]
+ exp_continue
+ }
+
+ -re {^\(\*\): Shared library is missing debugging information\.\r\n} {
+ exp_continue
+ }
+
+ -re "^$::gdb_prompt " {
+ pass $gdb_test_name
+ }
+ }
+
+ return $libs
+}
+
+# Verify that "info sharedlibrary" does not contain duplicate entries.
+
+proc check_no_duplicates {} {
+ with_test_prefix "check no duplicates" {
+ set libs [get_info_shared]
+ array set seen {}
+ set seen_duplicate 0
+
+ foreach lib $libs {
+ if {[info exists seen($lib)]} {
+ verbose -log "already seen: $lib"
+ set seen_duplicate 1
+ }
+
+ set seen($lib) 1
+ }
+
+ gdb_assert {!$seen_duplicate} "no duplicates"
+ }
+}
+
# Run the command "info sharedlibrary" and get the first namespace
# for the so
proc get_first_so_ns {} {
set ns -1
set lib_regexp [string_to_regexp ${::binfile_lib}]
gdb_test_multiple "info sharedlibrary $::so_name" "get SO namespace" -lbl {
- -re "\r\nFrom\\s+To\\s+\(NS\\s+\)?Syms\\s+Read\\s+Shared Object Library(?=\r\n)" {
+ -re "\r\nFrom\\s+To\\s+\(Linker NS\\s+\)?Syms\\s+Read\\s+Shared Object Library(?=\r\n)" {
exp_continue
}
- -re "\r\n$::hex\\s+$::hex\\s+\\\[\\\[($::decimal)\\\]\\\]\\s+\[^\r\n]+${lib_regexp}(?=\r\n)" {
+ -re "\r\n$::hex\\s+$::hex\\s+($::decimal)\\s+\[^\r\n]+${lib_regexp}(?=\r\n)" {
if {$ns == -1} {
set ns $expect_out(1,string)
}
@@ -62,7 +126,8 @@ proc get_first_so_ns {} {
# Run the tests relating to the command "info sharedlibrary", to
# verify that the namespace ID is consistent.
proc test_info_shared {} {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
if { ![runto_main] } {
return
@@ -78,9 +143,11 @@ proc test_info_shared {} {
# Next, test that we *do* print a namespace column after loading SOs.
gdb_test "info sharedlibrary" \
- "From\\s+To\\s+NS\\s+Syms\\s+Read\\s+Shared Object Library.*" \
+ "From\\s+To\\s+Linker NS\\s+Syms\\s+Read\\s+Shared Object Library.*" \
"after loading everything"
+ check_no_duplicates
+
gdb_assert {[get_first_so_ns] == 1} "before closing any library"
gdb_test "next" ".*second dlclose.*" "close first library"
@@ -107,11 +174,14 @@ proc test_info_shared {} {
# Run all tests related to the linkage namespaces convenience
# variables, _active_namespaces and _current_namespaces.
+# Also tests that the namespace ID is only printed at the correct
+# times.
proc_with_prefix test_conv_vars {} {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
- gdb_test "print \$_active_linker_namespaces" "1" \
- "1 namespace before starting inferior"
+ gdb_test "print \$_linker_namespace_count" "0" \
+ "0 namespace before starting inferior"
gdb_test "print \$_linker_namespace" "No registers." \
"No current namespace before starting inferior"
@@ -119,7 +189,7 @@ proc_with_prefix test_conv_vars {} {
return
}
- gdb_test "print \$_active_linker_namespaces" "1" \
+ gdb_test "print \$_linker_namespace_count" "1" \
"Before activating namespaces"
gdb_test "print \$_linker_namespace" ".* = 0" \
"Still in the default namespace"
@@ -141,17 +211,18 @@ proc_with_prefix test_conv_vars {} {
"print namespace of selected frame"
gdb_continue_to_breakpoint "first dlclose"
- gdb_test "print \$_active_linker_namespaces" "4" "all SOs loaded"
+ gdb_test "print \$_linker_namespace_count" "4" "all SOs loaded"
gdb_test "next" ".*second dlclose.*" "close one SO"
- gdb_test "print \$_active_linker_namespaces" "3" "one SOs unloaded"
+ gdb_test "print \$_linker_namespace_count" "3" "one SOs unloaded"
gdb_test "next" ".*third dlclose.*" "close another SO"
- gdb_test "print \$_active_linker_namespaces" "2" "two SOs unloaded"
+ gdb_test "print \$_linker_namespace_count" "2" "two SOs unloaded"
# Restarting GDB so that we can test setting a breakpoint
# using the convenience variable, while a proper bp syntax
# isn't implemented for namespaces
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
if {![runto_main]} {
return
}
@@ -167,7 +238,8 @@ proc_with_prefix test_conv_vars {} {
# Run several tests relating to the command "info namespaces".
proc test_info_linker_namespaces {} {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
# Check that "info linker-namespaces" while the inferior is not running
# doesn't crash.
@@ -186,50 +258,44 @@ proc test_info_linker_namespaces {} {
# First, test printing a single namespace, and ensure all of
# them are correct, using both syntaxes.
- set found_all_libs false
- gdb_test_multiple "info linker-namespaces \[\[0\]\]" "print namespace 0" -lbl {
- -re "^\r\nThere are ($::decimal) libraries loaded in linker namespace \\\[\\\[0\\\]\\\]" {
- # Some systems may add libc and libm to every loaded namespace,
- # others may load only one or neither, because the SO doesn't
- # actually use either library. The best we can do is check if
- # we found the dynamic linker, and up to 2 more libraries.
- set libs $expect_out(1,string)
- set found_all_libs [expr $libs - 1 <= 2]
- exp_continue
- }
- -re "^\r\n$::gdb_prompt $" {
- gdb_assert $found_all_libs "the correct number of libraries was reported"
- }
- -re "(^\r\n)?\[^\r\n\]+(?=\r\n)" {
- exp_continue
+ set n_libraries 999
+
+ gdb_test_multiple "info linker-namespaces \[\[0\]\]" "print namespace 0" {
+ -re -wrap "($::decimal) librar(?:y|ies) loaded in linker namespace 0:.*" {
+ set n_libraries $expect_out(1,string)
}
}
+
+ # Some systems may add libc and libm to every loaded namespace,
+ # others may load only one or neither, because the SO doesn't
+ # actually use either library. The best we can do is check if
+ # we found the dynamic linker, and up to 2 more libraries.
+ gdb_assert {$n_libraries <= 3} "the correct number of libraries was reported"
+
+ set binfile_lib_re [string_to_regexp $::binfile_lib]
+
foreach_with_prefix ns {1 2 3} {
set found_test_so false
- set found_all_libs false
- gdb_test_multiple "info linker-namespaces $ns" "print namespace $ns" -lbl {
- -re "^\r\nThere are ($::decimal) libraries loaded in linker namespace \\\[\\\[$ns\\\]\\\]" {
- set libs $expect_out(1,string)
- # Some systems may add libc and libm to every loaded namespace,
- # others may load only one or neither, because the SO doesn't
- # actually use either library. The best we can do is check if
- # we found the dynamic linker, the test SO, and maybe up to 2
- # more libraries.
- set found_all_libs [expr $libs - 2 <= 2]
+ set n_libraries 999
+
+ gdb_test_multiple "info linker-namespaces $ns" "print namespace $ns" {
+ -re ".*($::decimal) librar(?:y|ies) loaded in linker namespace $ns:\r\n" {
+ set n_libraries $expect_out(1,string)
exp_continue
}
- -re "^\r\n\[^\r\n\]+${::binfile_lib}\[^\r\n\]*(?=\r\n)" {
+
+ -re -wrap "${binfile_lib_re}.*" {
set found_test_so true
- exp_continue
- }
- -re "^\r\n$::gdb_prompt $" {
- gdb_assert $found_test_so "this testfle's SO was reported"
- gdb_assert $found_all_libs "the correct number of libraries was reported"
- }
- -re "(^\r\n)?\[^\r\n\]+(?=\r\n)" {
- exp_continue
}
}
+
+ # Some systems may add libc and libm to every loaded namespace,
+ # others may load only one or neither, because the SO doesn't
+ # actually use either library. The best we can do is check if
+ # we found the dynamic linker, the test SO, and maybe up to 2
+ # more libraries.
+ gdb_assert {$n_libraries <= 4} "the correct number of libraries was reported"
+ gdb_assert {$found_test_so} "this testfile's SO was reported"
}
# These patterns are simpler, and purposefully glob multiple lines.
@@ -237,14 +303,15 @@ proc test_info_linker_namespaces {} {
# without worrying about the libraries printed, since that was tested
# above.
gdb_test "info linker-namespaces" \
- [multi_line "There are 4 linker namespaces loaded" \
- "There are $::decimal libraries loaded in linker namespace ..0.." \
+ [multi_line "There are 4 linker namespaces loaded\\." \
+ "" \
+ "$::decimal librar(y|ies) loaded in linker namespace 0:" \
".*" \
- "There are $::decimal libraries loaded in linker namespace ..1.." \
+ "$::decimal librar(y|ies) loaded in linker namespace 1:" \
".*" \
- "There are $::decimal libraries loaded in linker namespace ..2.." \
+ "$::decimal librar(y|ies) loaded in linker namespace 2:" \
".*" \
- "There are $::decimal libraries loaded in linker namespace ..3.." \
+ "$::decimal librar(y|ies) loaded in linker namespace 3:" \
".*" ] "print namespaces with no argument"
}
diff --git a/gdb/testsuite/gdb.base/dlmopen.exp b/gdb/testsuite/gdb.base/dlmopen.exp
index da17002..c4eb7cd 100644
--- a/gdb/testsuite/gdb.base/dlmopen.exp
+++ b/gdb/testsuite/gdb.base/dlmopen.exp
@@ -95,9 +95,19 @@ if { $dyln_name eq "" } {
return
}
+# If the dynamic linker path contains a symlink, some instances show the real
+# path instead of the original path. Accept both.
+lassign [remote_exec target realpath "$dyln_name"] realpath_ret dyln_realpath_name
+
+if { $realpath_ret == 0 } {
+ set dyln_realpath_name [string trim $dyln_realpath_name]
+} else {
+ set dyln_realpath_name "not-a-valid-path"
+}
+
# Return true if FILENAME is the dynamic linker. Otherwise return false.
proc is_dyln { filename } {
- return [expr {$filename eq $::dyln_name}]
+ return [expr {$filename eq $::dyln_name || $filename eq $::dyln_realpath_name}]
}
# Check that 'info shared' show NUM occurrences of DSO.
@@ -106,7 +116,7 @@ proc check_dso_count { dso num } {
set count 0
gdb_test_multiple "info shared" "info shared" {
- -re "$hex $hex \(\[\[$::decimal\]\]\\s+\)\?Yes \[^\r\n\]*$dso\r\n" {
+ -re "$hex $hex \($::decimal\\s+\)\?Yes \[^\r\n\]*$dso\r\n" {
# use longer form so debug remote does not interfere
set count [expr $count + 1]
exp_continue
@@ -173,7 +183,8 @@ proc test_dlmopen {} {
# Setup for calling 'test_dlmopen', this is the version of the test
# that doesn't use 'attach'.
proc test_dlmopen_no_attach {} {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
if { ![runto_main] } {
return
@@ -198,7 +209,8 @@ proc test_dlmopen_with_attach {} {
return
}
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
# Start the test program.
set test_spawn_id [spawn_wait_for_attach $::binfile]
@@ -233,7 +245,7 @@ proc get_dyld_info {} {
set dyld_count 0
set dyld_start_addr ""
gdb_test_multiple "info sharedlibrary" "" {
- -re "From\\s+To\\s+\(NS\\s+\)?Syms\\s+Read\\s+Shared Object Library\r\n" {
+ -re "From\\s+To\\s+\(Linker NS\\s+\)?Syms\\s+Read\\s+Shared Object Library\r\n" {
exp_continue
}
-re "^($::hex)\\s+$::hex\\s+\(\#$::decimal\\s+\)?\[^/\]+(/\[^\r\n\]+)\r\n" {
@@ -288,7 +300,8 @@ proc_with_prefix test_solib_unmap_events { } {
return
}
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
if { ![runto_main] } {
return
@@ -358,15 +371,19 @@ proc_with_prefix test_solib_unmap_events { } {
# dynamic linker as pending when some instances of the library were
# unloaded, despite there really only being one copy of the dynamic
# linker actually loaded into the inferior's address space.
- gdb_test_multiple "info breakpoints $bpnum" "check b/p status" {
- -re -wrap "$bpnum\\s+breakpoint\\s+keep\\s+y\\s+<PENDING>\\s+\\*$::hex\\s*\r\n\\s+stop only if \\(0\\)" {
- fail $gdb_test_name
- }
-
- -re -wrap "$bpnum\\s+breakpoint\\s+keep\\s+y\\s+$::hex\\s*\[^\r\n\]+\r\n\\s+stop only if \\(0\\)" {
- pass $gdb_test_name
- }
- }
+ set hs {[^\r\n]}
+ set re_pass \
+ [multi_line \
+ "" \
+ [join \
+ [list \
+ "$bpnum" "breakpoint" "keep" "y" "$::hex$hs+"] \
+ {\s+}] \
+ [string cat \
+ {\s+} \
+ [string_to_regexp "stop only if (0)"] \
+ ([string_to_regexp " (target evals)"])?]]
+ gdb_test "info breakpoints $bpnum" $re_pass "check b/p status"
# With all the dlclose calls now complete, we should be back to a
# single copy of the dynamic linker.
@@ -379,7 +396,8 @@ proc_with_prefix test_solib_unmap_events { } {
# Check that we can 'next' over the dlclose calls without GDB giving any
# warnings or errors.
proc_with_prefix test_next_over_dlclose {} {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
if { ![runto_main] } {
return
diff --git a/gdb/testsuite/gdb.base/dprintf-bp-same-addr.exp b/gdb/testsuite/gdb.base/dprintf-bp-same-addr.exp
index 649784b..11a8310 100644
--- a/gdb/testsuite/gdb.base/dprintf-bp-same-addr.exp
+++ b/gdb/testsuite/gdb.base/dprintf-bp-same-addr.exp
@@ -28,7 +28,8 @@ proc test { style } {
global gdb_prompt binfile dp_location
with_test_prefix "$style" {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
if ![runto_main] {
return -1
diff --git a/gdb/testsuite/gdb.base/dprintf-detach.exp b/gdb/testsuite/gdb.base/dprintf-detach.exp
index dc3384b..431037c 100644
--- a/gdb/testsuite/gdb.base/dprintf-detach.exp
+++ b/gdb/testsuite/gdb.base/dprintf-detach.exp
@@ -37,7 +37,8 @@ proc dprintf_detach_test { breakpoint_always_inserted dprintf_style disconnected
with_test_prefix "$test_prefix" {
# Start with a clean gdb
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
gdb_test_no_output "set breakpoint always-inserted ${breakpoint_always_inserted}"
gdb_test_no_output "set dprintf-style ${dprintf_style}"
@@ -68,7 +69,8 @@ proc dprintf_detach_test { breakpoint_always_inserted dprintf_style disconnected
gdb_exit
# Check that the process still exists by attaching a new gdb to it.
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
set test "re-attach to inferior"
set is_gdbserver [target_is_gdbserver]
diff --git a/gdb/testsuite/gdb.base/dprintf-execution-x-script.exp b/gdb/testsuite/gdb.base/dprintf-execution-x-script.exp
index 06be468..65de2d5 100644
--- a/gdb/testsuite/gdb.base/dprintf-execution-x-script.exp
+++ b/gdb/testsuite/gdb.base/dprintf-execution-x-script.exp
@@ -93,7 +93,8 @@ do_test "" $test
# Restart GDB and 'source' the script; this will (still) run the program
# due to the 'run' command in the script.
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
do_test "source $x_file" "load and run script using source command"
# This should leave us at the gdb prompt; Run program again using
diff --git a/gdb/testsuite/gdb.base/dprintf-pending.exp b/gdb/testsuite/gdb.base/dprintf-pending.exp
index 9242a84..f28e969 100644
--- a/gdb/testsuite/gdb.base/dprintf-pending.exp
+++ b/gdb/testsuite/gdb.base/dprintf-pending.exp
@@ -60,7 +60,8 @@ with_test_prefix "without symbols" {
gdb_test "" ".*x=3.*x=4.*x=3.*" "run to resolved dprintf"
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
gdb_load_shlib $lib_sl
#
diff --git a/gdb/testsuite/gdb.base/dprintf.exp b/gdb/testsuite/gdb.base/dprintf.exp
index 0135b86..262ccc1 100644
--- a/gdb/testsuite/gdb.base/dprintf.exp
+++ b/gdb/testsuite/gdb.base/dprintf.exp
@@ -74,7 +74,8 @@ proc restart {} {
global binfile
global bp_location1 dp_location1
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
if ![runto_main] {
return -1
diff --git a/gdb/testsuite/gdb.base/dso2dso.exp b/gdb/testsuite/gdb.base/dso2dso.exp
index 24d4203..3b00f6d 100644
--- a/gdb/testsuite/gdb.base/dso2dso.exp
+++ b/gdb/testsuite/gdb.base/dso2dso.exp
@@ -54,7 +54,8 @@ if { [gdb_compile $srcdir/$subdir/$srcfile $binfile executable \
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
gdb_load_shlib $binfile_libdso2
gdb_load_shlib $binfile_libdso1
diff --git a/gdb/testsuite/gdb.base/dtrace-probe.exp b/gdb/testsuite/gdb.base/dtrace-probe.exp
index 32a72cc..5d4b9df 100644
--- a/gdb/testsuite/gdb.base/dtrace-probe.exp
+++ b/gdb/testsuite/gdb.base/dtrace-probe.exp
@@ -27,7 +27,8 @@ proc dtrace_test {} {
return -1
}
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
if ![runto_main] {
return -1
@@ -63,8 +64,8 @@ proc dtrace_test {} {
# Since test:progress-counter is disabled we can run to the second
# instance of the test:two-locations probe.
- runto "-probe-dtrace test:two-locations"]
- runto "-probe-dtrace test:two-locations"]
+ runto "-probe-dtrace test:two-locations"
+ runto "-probe-dtrace test:two-locations"
# Go back to the breakpoint on main() and enable the
# test:progress-counter probe. Set a breakpoint on it and see
diff --git a/gdb/testsuite/gdb.base/dump.c b/gdb/testsuite/gdb.base/dump.c
index bdcafbf..14b66b1 100644
--- a/gdb/testsuite/gdb.base/dump.c
+++ b/gdb/testsuite/gdb.base/dump.c
@@ -35,7 +35,7 @@ main()
for (i = 0; i < ARRSIZE; i++)
intarray[i] = i+1;
- intstruct.a = 12 * 1;
+ intstruct.a = (12 * 1) << 16;
intstruct.b = 12 * 2;
intstruct.c = 12 * 3;
intstruct.d = 12 * 4;
diff --git a/gdb/testsuite/gdb.base/dump.exp b/gdb/testsuite/gdb.base/dump.exp
index a55e5b0..64d897b 100644
--- a/gdb/testsuite/gdb.base/dump.exp
+++ b/gdb/testsuite/gdb.base/dump.exp
@@ -46,7 +46,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable ${op
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
gdb_test "dump mem /dev/null 0x10 0x20" "Cannot access memory at address 0x10" \
"inaccessible memory is reported"
@@ -107,14 +108,7 @@ set endian [get_endianness]
# Now generate some dump files.
proc make_dump_file { command msg } {
- global gdb_prompt
-
- gdb_test_multiple "${command}" "$msg" {
- -re ".*\[Ee\]rror.*$gdb_prompt $" { fail $msg }
- -re ".*\[Ww\]arning.*$gdb_prompt $" { fail $msg }
- -re ".*\[Uu\]ndefined .*$gdb_prompt $" { fail $msg }
- -re ".*$gdb_prompt $" { pass $msg }
- }
+ gdb_test_no_output "${command}" "$msg"
}
make_dump_file "dump val [set intarr1.bin] intarray" \
diff --git a/gdb/testsuite/gdb.base/duplicate-bp.exp b/gdb/testsuite/gdb.base/duplicate-bp.exp
index b1003f2..da5834b 100644
--- a/gdb/testsuite/gdb.base/duplicate-bp.exp
+++ b/gdb/testsuite/gdb.base/duplicate-bp.exp
@@ -24,7 +24,8 @@ proc test_setup { count } {
global srcfile
global binfile
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.base/eh_return.exp b/gdb/testsuite/gdb.base/eh_return.exp
index 5a4f524..703f9e9 100644
--- a/gdb/testsuite/gdb.base/eh_return.exp
+++ b/gdb/testsuite/gdb.base/eh_return.exp
@@ -71,7 +71,8 @@ if { $address == -1 } {
return 0
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
gdb_assert [gdb_breakpoint "*$address" no-message] "set breakpoint on address"
diff --git a/gdb/testsuite/gdb.base/ending-run.exp b/gdb/testsuite/gdb.base/ending-run.exp
index 022ac28..0b5eadf 100644
--- a/gdb/testsuite/gdb.base/ending-run.exp
+++ b/gdb/testsuite/gdb.base/ending-run.exp
@@ -224,7 +224,7 @@ set program_in_exit 0
if {!$use_gdb_stub
&& (! [target_info exists use_cygmon] || ! [target_info use_cygmon])} {
global program_exited
- if {[eval expr $program_exited == 0]} {
+ if {$program_exited == 0} {
gdb_test_multiple "n" "step to end of run" {
-re "$inferior_exited_re normally.*$gdb_prompt $" {
# If we actually have debug info for the start function,
diff --git a/gdb/testsuite/gdb.base/errno.exp b/gdb/testsuite/gdb.base/errno.exp
index ff18214..ea1ff70 100644
--- a/gdb/testsuite/gdb.base/errno.exp
+++ b/gdb/testsuite/gdb.base/errno.exp
@@ -45,7 +45,8 @@
standard_testfile
proc do_tests {{do_xfail_cast 0} {do_xfail 0} {do_xfail_core_test 0}} {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
if ![runto_main] {
return
}
@@ -176,7 +177,8 @@ proc do_tests {{do_xfail_cast 0} {do_xfail 0} {do_xfail_core_test 0}} {
return
}
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
set core_loaded [gdb_core_cmd $corefile "load corefile"]
if { $core_loaded == -1 } {
diff --git a/gdb/testsuite/gdb.base/eval-skip.exp b/gdb/testsuite/gdb.base/eval-skip.exp
index 82c5fe0..b4c856e 100644
--- a/gdb/testsuite/gdb.base/eval-skip.exp
+++ b/gdb/testsuite/gdb.base/eval-skip.exp
@@ -39,7 +39,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.base/exe-lock.exp b/gdb/testsuite/gdb.base/exe-lock.exp
index 40a470f..2e375b4 100644
--- a/gdb/testsuite/gdb.base/exe-lock.exp
+++ b/gdb/testsuite/gdb.base/exe-lock.exp
@@ -27,7 +27,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debu
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
# Sanity-check: Verify that the executable exists. This is just to
# make sure that, when we verify later that the file does not exist,
diff --git a/gdb/testsuite/gdb.base/exec-invalid-sysroot.exp b/gdb/testsuite/gdb.base/exec-invalid-sysroot.exp
index 7ab446e..99f5e7d 100644
--- a/gdb/testsuite/gdb.base/exec-invalid-sysroot.exp
+++ b/gdb/testsuite/gdb.base/exec-invalid-sysroot.exp
@@ -69,5 +69,6 @@ proc do_exec_sysroot_test {} {
}
# Start with a fresh gdb
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
do_exec_sysroot_test
diff --git a/gdb/testsuite/gdb.base/execl-update-breakpoints.exp b/gdb/testsuite/gdb.base/execl-update-breakpoints.exp
index 27bd042..cd49df1 100644
--- a/gdb/testsuite/gdb.base/execl-update-breakpoints.exp
+++ b/gdb/testsuite/gdb.base/execl-update-breakpoints.exp
@@ -41,7 +41,8 @@ if { [gdb_compile $objfile $exec1 executable {debug text_segment=0x1000000}] !=
# First check whether the address of "main" in exec1 is readable in
# exec2. If it is, then skip the test as unsupported.
-clean_restart ${exec1}
+clean_restart
+gdb_load $exec1
if {![runto_main]} {
return -1
}
@@ -55,7 +56,8 @@ gdb_test_multiple "p/x &main" $test {
}
}
-clean_restart ${exec2}
+clean_restart
+gdb_load $exec2
if {![runto_main]} {
return -1
}
@@ -84,7 +86,8 @@ proc test { always_inserted } {
global exec1
global gdb_prompt
- clean_restart ${exec1}
+ clean_restart
+ gdb_load $exec1
gdb_test_no_output "set breakpoint always-inserted $always_inserted"
diff --git a/gdb/testsuite/gdb.base/exprs.exp b/gdb/testsuite/gdb.base/exprs.exp
index f703c18..ee0c198 100644
--- a/gdb/testsuite/gdb.base/exprs.exp
+++ b/gdb/testsuite/gdb.base/exprs.exp
@@ -26,7 +26,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
#
# set it up at a breakpoint so we can play with the variable values
@@ -285,11 +286,14 @@ gdb_test "print v_short + " \
gdb_test "print v_short =}{= 3" \
"A syntax error in expression, near `\\}\\{= 3'\\."
+set hs {[^\r\n]}
+set re_debug [string cat $hs* {[Ss]hift} $hs*]
+
gdb_test_no_output "set debug parse 1"
set saw_start 0
set saw_val 0
gdb_test_multiple "print 23" "print with debugging" -lbl {
- -re "\r\nStarting parse(?=\r\n)" {
+ -re "\r\n${re_debug}(?=\r\n)" {
set saw_start 1
exp_continue
}
diff --git a/gdb/testsuite/gdb.base/fileio.c b/gdb/testsuite/gdb.base/fileio.c
index 0f20151..4ba5ab0 100644
--- a/gdb/testsuite/gdb.base/fileio.c
+++ b/gdb/testsuite/gdb.base/fileio.c
@@ -73,6 +73,10 @@ static const char *strerrno (int err);
#define STRING "Hello World"
+#define STRINGIFY(s) STRINGIFY_(s)
+#define STRINGIFY_(s) #s
+#define OUTDIR STRINGIFY (OUTDIR_)
+
static void stop (void) {}
/* A NULL string. We pass this to stat below instead of a NULL
diff --git a/gdb/testsuite/gdb.base/fileio.exp b/gdb/testsuite/gdb.base/fileio.exp
index 6996d6d..a6b4c23 100644
--- a/gdb/testsuite/gdb.base/fileio.exp
+++ b/gdb/testsuite/gdb.base/fileio.exp
@@ -27,7 +27,7 @@ if {[is_remote host]} {
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
executable \
- [list debug "additional_flags=-DOUTDIR=\"$outdir/\""]] != "" } {
+ [list debug additional_flags=[quote_for_host -DOUTDIR_=$outdir/]]] != "" } {
untested "failed to compile"
return -1
}
@@ -41,7 +41,8 @@ system "rm -rf [standard_output_file *.fileio.test]"
set oldtimeout $timeout
set timeout [expr "$timeout + 60"]
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
gdb_test_no_output "set print sevenbit-strings"
gdb_test_no_output "set print address off"
gdb_test_no_output "set width 0"
diff --git a/gdb/testsuite/gdb.base/find.exp b/gdb/testsuite/gdb.base/find.exp
index ae68686..3b2dfb0 100644
--- a/gdb/testsuite/gdb.base/find.exp
+++ b/gdb/testsuite/gdb.base/find.exp
@@ -22,7 +22,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
gdb_test "break $srcfile:stop_here" \
"Breakpoint.*at.* file .*$srcfile, line.*" \
diff --git a/gdb/testsuite/gdb.base/fixsection.exp b/gdb/testsuite/gdb.base/fixsection.exp
index 9a5c996..3056851 100644
--- a/gdb/testsuite/gdb.base/fixsection.exp
+++ b/gdb/testsuite/gdb.base/fixsection.exp
@@ -32,7 +32,8 @@ if { [gdb_compile_shlib $libsrc $lib_sl $lib_opts] != ""
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
gdb_load_shlib ${lib_sl}
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.base/float128.exp b/gdb/testsuite/gdb.base/float128.exp
index 95b83af..b8d3a6c 100644
--- a/gdb/testsuite/gdb.base/float128.exp
+++ b/gdb/testsuite/gdb.base/float128.exp
@@ -30,7 +30,8 @@ if { [do_compile] != "" && [do_compile {-mfloat128}] != "" } {
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.base/floatn.exp b/gdb/testsuite/gdb.base/floatn.exp
index 7138d04..1b39ed8 100644
--- a/gdb/testsuite/gdb.base/floatn.exp
+++ b/gdb/testsuite/gdb.base/floatn.exp
@@ -30,7 +30,8 @@ if { [do_compile] != "" && [do_compile {-mfloat128}] != "" } {
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.base/foll-exec.exp.tcl b/gdb/testsuite/gdb.base/foll-exec.exp.tcl
index 8f96a55..64bcea8 100644
--- a/gdb/testsuite/gdb.base/foll-exec.exp.tcl
+++ b/gdb/testsuite/gdb.base/foll-exec.exp.tcl
@@ -68,7 +68,8 @@ proc do_exec_tests { execer_lang execee_lang } {
}
# Now we can start running the tests.
- clean_restart $execer_binfile
+ clean_restart
+ gdb_load $execer_binfile
# Start the program running, and stop at main.
if {![runto_main]} {
@@ -93,7 +94,8 @@ proc do_exec_tests { execer_lang execee_lang } {
return
}
- clean_restart $execer_binfile
+ clean_restart
+ gdb_load $execer_binfile
# Start the program running, and stop at main.
#
@@ -182,7 +184,8 @@ proc do_exec_tests { execer_lang execee_lang } {
# Explicitly kill this program, or a subsequent rerun actually runs
# the exec'd program, not the original program...
- clean_restart $execer_binfile
+ clean_restart
+ gdb_load $execer_binfile
# Start the program running, and stop at main.
#
@@ -250,7 +253,8 @@ proc do_exec_tests { execer_lang execee_lang } {
# Explicitly kill this program, or a subsequent rerun actually runs
# the exec'd program, not the original program...
- clean_restart $execer_binfile
+ clean_restart
+ gdb_load $execer_binfile
# Start the program running, and stop at main.
#
@@ -317,7 +321,8 @@ proc do_exec_tests { execer_lang execee_lang } {
# Explicitly kill this program, or a subsequent rerun actually runs
# the exec'd program, not the original program...
- clean_restart $execer_binfile
+ clean_restart
+ gdb_load $execer_binfile
# Start the program running, and stop at main.
#
@@ -378,7 +383,8 @@ proc do_exec_tests { execer_lang execee_lang } {
# Explicitly kill this program, or a subsequent rerun actually runs
# the exec'd program, not the original program...
- clean_restart $execer_binfile
+ clean_restart
+ gdb_load $execer_binfile
# Start the program running, and stop at main.
#
diff --git a/gdb/testsuite/gdb.base/fork-no-detach-follow-child-dlopen.exp b/gdb/testsuite/gdb.base/fork-no-detach-follow-child-dlopen.exp
index 2d47d5d..cb49ef6 100644
--- a/gdb/testsuite/gdb.base/fork-no-detach-follow-child-dlopen.exp
+++ b/gdb/testsuite/gdb.base/fork-no-detach-follow-child-dlopen.exp
@@ -41,7 +41,8 @@ if { [build_executable "failed to prepare" ${testfile} ${srcfile} $opts] } {
}
proc do_test {} {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
gdb_locate_shlib $::shlib_path
gdb_test_no_output "set follow-fork-mode child"
gdb_test_no_output "set detach-on-fork off"
diff --git a/gdb/testsuite/gdb.base/fork-print-inferior-events.exp b/gdb/testsuite/gdb.base/fork-print-inferior-events.exp
index 19ace00..c24a9bc 100644
--- a/gdb/testsuite/gdb.base/fork-print-inferior-events.exp
+++ b/gdb/testsuite/gdb.base/fork-print-inferior-events.exp
@@ -73,7 +73,8 @@ set i 0
foreach_with_prefix print_inferior_events { "on" "off" } {
foreach_with_prefix follow_fork_mode { "child" "parent" } {
foreach_with_prefix detach_on_fork { "on" "off" } {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
gdb_test_no_output "set print inferior-events $print_inferior_events"
gdb_test_no_output "set follow-fork-mode $follow_fork_mode"
gdb_test_no_output "set detach-on-fork $detach_on_fork"
diff --git a/gdb/testsuite/gdb.base/frame-args.exp b/gdb/testsuite/gdb.base/frame-args.exp
index 31e4d15..0daa3aa 100644
--- a/gdb/testsuite/gdb.base/frame-args.exp
+++ b/gdb/testsuite/gdb.base/frame-args.exp
@@ -19,7 +19,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debu
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if {![runto break_me]} {
return
diff --git a/gdb/testsuite/gdb.base/frame-info-consistent.exp b/gdb/testsuite/gdb.base/frame-info-consistent.exp
index 67bcd18..b594047 100644
--- a/gdb/testsuite/gdb.base/frame-info-consistent.exp
+++ b/gdb/testsuite/gdb.base/frame-info-consistent.exp
@@ -97,7 +97,8 @@ proc compare_frames {frames} {
proc test {enable} {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
gdb_test_no_output "maint frame-unwinder $enable DEBUGINFO"
diff --git a/gdb/testsuite/gdb.base/frame-view.exp b/gdb/testsuite/gdb.base/frame-view.exp
index fa00c35..34ac668 100644
--- a/gdb/testsuite/gdb.base/frame-view.exp
+++ b/gdb/testsuite/gdb.base/frame-view.exp
@@ -28,7 +28,8 @@ if { [build_executable "failed to prepare" \
# "select-frame view".
proc test_select_frame_view { with_pretty_printer } {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
if { $with_pretty_printer } {
require allow_python_tests
diff --git a/gdb/testsuite/gdb.base/fullname.exp b/gdb/testsuite/gdb.base/fullname.exp
index 430d0c4..ec90179 100644
--- a/gdb/testsuite/gdb.base/fullname.exp
+++ b/gdb/testsuite/gdb.base/fullname.exp
@@ -45,7 +45,8 @@ set line [gdb_get_line_number "set breakpoint 1 here"]
# Initialize GDB after getting the line number, to make sure
# symbols aren't loaded.
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
set msg "set breakpoint by full path before loading symbols - built absolute"
if { [gdb_breakpoint [standard_output_file tmp-${srcfile}]:${line} {no-message}] != 0 } {
@@ -65,12 +66,13 @@ if { [gdb_breakpoint [standard_output_file tmp-${srcfile}]:${line} {no-message}]
}
# Build the test executable using a relative path.
-if { [gdb_compile [relative_filename [pwd] [standard_output_file tmp-${srcfile}]] \
+if { [gdb_compile [relative_filename [pwd] [build_standard_output_file tmp-${srcfile}]] \
"${binfile}" executable {debug}] != "" } {
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
set msg "set breakpoint by full path before loading symbols - built relative"
if { [gdb_breakpoint [standard_output_file tmp-${srcfile}]:${line} {no-message}] != 0 } {
@@ -99,7 +101,8 @@ with_cwd [standard_output_file {}] {
}
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
set msg "set breakpoint by full path before loading symbols - built other"
if { [gdb_breakpoint [standard_output_file tmp-${srcfile}]:${line} {no-message}] != 0 } {
diff --git a/gdb/testsuite/gdb.base/gcore-buffer-overflow.exp b/gdb/testsuite/gdb.base/gcore-buffer-overflow.exp
index 0fb79c7..5a6bfe6 100644
--- a/gdb/testsuite/gdb.base/gcore-buffer-overflow.exp
+++ b/gdb/testsuite/gdb.base/gcore-buffer-overflow.exp
@@ -29,7 +29,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
# Start with a fresh gdb.
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
gdb_test_no_output "set args ${pattern}" \
"set buffer exceeding arguments"
diff --git a/gdb/testsuite/gdb.base/gcore-memory-usage.exp b/gdb/testsuite/gdb.base/gcore-memory-usage.exp
index bd041f2..14b03a0 100644
--- a/gdb/testsuite/gdb.base/gcore-memory-usage.exp
+++ b/gdb/testsuite/gdb.base/gcore-memory-usage.exp
@@ -47,8 +47,10 @@ proc get_mem_usage {pid prefix} {
# This proc restarts GDB, runs the inferior with the desired
# amount of memory, then checks how much memory is necessary
# to run the gcore command. It will return -1 if the gcore
-# command fails, 0 otherwise.
-proc run_test {megs} {
+# command fails, otherwise the amount of memory used by GDB
+# to generate that gcore. MAX_MEM is the maximum amount of
+# memory GDB is allowed to use, in megabytes.
+proc run_test {megs max_mem} {
with_test_prefix "$megs Mb" {
clean_restart $::testfile
@@ -74,23 +76,24 @@ proc run_test {megs} {
set diff_k [expr $mem_after - $mem_before]
set diff [expr $diff_k/1024]
verbose -log "The gcore command used $diff Mb ($diff_k Kb)"
- # The original plan was to compare to a multiple of MEGS
- # but since the requirements don't seem to go up as the
- # inferior allocated more memory, we instead just hardcode
- # 2 megs, since sometimes 1 is used.
- gdb_assert {$diff < 2} "gdb did not use too much memory"
+ gdb_assert {$diff <= $max_mem} "gdb did not use too much memory"
gdb_test_no_output "set spin=0" "Allow program to exit"
}
- return 0
+ return $diff
}
# If we couldn't create the first corefile, there's no point
-# in running the second part of the test.
-if {[run_test 4] != 0} {
+# in running the second part of the test. The maximum amount
+# of memory allowed is the same as the memory used by the
+# inferior.
+set mem_limit [run_test 4 4]
+if {$mem_limit < 0} {
return
}
# Surprisingly enough, the larger inferior doesn't seem to use
# any extra memory, it usually uses less memory. Which is good,
# it means our memory requirements aren't growing with the inferior.
-run_test 64
+# This test ensures that it remains true that a larger inferior will
+# not grow the memory requirements.
+run_test 64 $mem_limit
diff --git a/gdb/testsuite/gdb.base/gcore-relro-pie.exp b/gdb/testsuite/gdb.base/gcore-relro-pie.exp
index 361fdb6..641caf1 100644
--- a/gdb/testsuite/gdb.base/gcore-relro-pie.exp
+++ b/gdb/testsuite/gdb.base/gcore-relro-pie.exp
@@ -38,7 +38,8 @@ if [run_on_host "strip" "$strip_program" "-g -o ${stripped_binfile} $binfile"] {
set perm [file attributes ${binfile} -permissions]
file attributes ${stripped_binfile} -permissions $perm
-clean_restart ${stripped_binfile}
+clean_restart
+gdb_load $stripped_binfile
# The binary is stripped of debug info, but not minsyms.
if ![runto break_here] {
@@ -51,7 +52,8 @@ if {![gdb_gcore_cmd $gcorefile "save a corefile"]} {
# Now restart gdb with the unstripped binary and load the corefile.
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
gdb_test "core ${gcorefile}" \
"Core was generated by .*" "re-load generated corefile"
diff --git a/gdb/testsuite/gdb.base/gcore-relro.exp b/gdb/testsuite/gdb.base/gcore-relro.exp
index 0090c37..2bbd064 100644
--- a/gdb/testsuite/gdb.base/gcore-relro.exp
+++ b/gdb/testsuite/gdb.base/gcore-relro.exp
@@ -34,7 +34,8 @@ set objfile [standard_output_file ${testfile}.o]
}
with_test_prefix "first session" {
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
gdb_load_shlib ${binfile_lib}
if ![runto lib] {
@@ -49,7 +50,8 @@ with_test_prefix "first session" {
# Now restart gdb and load the corefile.
with_test_prefix "second session" {
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
gdb_load_shlib ${binfile_lib}
gdb_test "core ${gcorefile}" "Core was generated by .*" \
diff --git a/gdb/testsuite/gdb.base/gcore-tls-pie.exp b/gdb/testsuite/gdb.base/gcore-tls-pie.exp
index c508b78..a8f7366 100644
--- a/gdb/testsuite/gdb.base/gcore-tls-pie.exp
+++ b/gdb/testsuite/gdb.base/gcore-tls-pie.exp
@@ -42,7 +42,8 @@ if [run_on_host "strip" "$strip_program" "-g -o ${stripped_binfile} $binfile"] {
set perm [file attributes ${binfile} -permissions]
file attributes ${stripped_binfile} -permissions $perm
-clean_restart ${stripped_binfile}
+clean_restart
+gdb_load $stripped_binfile
# The binary is stripped of debug info, but not minsyms.
if ![runto break_here] {
@@ -55,7 +56,8 @@ if {![gdb_gcore_cmd $gcorefile "save a corefile"]} {
# Now restart gdb with the unstripped binary and load the corefile.
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
gdb_test "core ${gcorefile}" \
"Core was generated by .*" "re-load generated corefile"
diff --git a/gdb/testsuite/gdb.base/gcore.exp b/gdb/testsuite/gdb.base/gcore.exp
index 0a9f099..c8a4c11 100644
--- a/gdb/testsuite/gdb.base/gcore.exp
+++ b/gdb/testsuite/gdb.base/gcore.exp
@@ -58,7 +58,8 @@ if {!$core_supported} {
}
# Now restart gdb and load the corefile.
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
set core_loaded [gdb_core_cmd "$corefile" "re-load generated corefile"]
if { $core_loaded == -1 } {
diff --git a/gdb/testsuite/gdb.base/gcorebg.exp b/gdb/testsuite/gdb.base/gcorebg.exp
index 3e79702..fd9f06e 100644
--- a/gdb/testsuite/gdb.base/gcorebg.exp
+++ b/gdb/testsuite/gdb.base/gcorebg.exp
@@ -46,10 +46,10 @@ proc test_body { detached } {
global binfile
global GCORE
global corefile
- global GDB_DATA_DIRECTORY
+ global GDB GDB_DATA_DIRECTORY
# We can't use gdb_test_multiple here because GDB is not started.
- set gcore_cmd $GCORE
+ set gcore_cmd "$GCORE -g $GDB"
if {$GDB_DATA_DIRECTORY ne ""} {
set gcore_cmd "$gcore_cmd -d '$GDB_DATA_DIRECTORY'"
}
diff --git a/gdb/testsuite/gdb.base/gdb-index-err.exp b/gdb/testsuite/gdb.base/gdb-index-err.exp
index 973248a..b353836 100644
--- a/gdb/testsuite/gdb.base/gdb-index-err.exp
+++ b/gdb/testsuite/gdb.base/gdb-index-err.exp
@@ -90,13 +90,15 @@ foreach_with_prefix flag { "" "-dwarf-5" } {
}
# Add the index section to the executable.
- clean_restart ${binfile}.${extension}
+ clean_restart
+ gdb_load $binfile.$extension
gdb_assert {[ensure_gdb_index ${binfile}.${extension} ${flag}] == 1} \
"add index to executable"
# Reload the executable (which now has an index), and try to
# generate and index from it. This will fail.
- clean_restart ${binfile}.${extension}
+ clean_restart
+ gdb_load $binfile.$extension
gdb_test "save gdb-index ${flag} $already_indexed_dir" \
"Error while writing index for `[string_to_regexp $binfile.$extension]': Cannot use an index to create the index" \
"try to generate an index from a binary with an index"
diff --git a/gdb/testsuite/gdb.base/gdb1250.exp b/gdb/testsuite/gdb.base/gdb1250.exp
index 4e83c8c..2cabbf0 100644
--- a/gdb/testsuite/gdb.base/gdb1250.exp
+++ b/gdb/testsuite/gdb.base/gdb1250.exp
@@ -29,7 +29,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if {![runto abort {allow-pending}]} {
return
diff --git a/gdb/testsuite/gdb.base/gdb1555.exp b/gdb/testsuite/gdb.base/gdb1555.exp
index 648abd7..ab12a28 100644
--- a/gdb/testsuite/gdb.base/gdb1555.exp
+++ b/gdb/testsuite/gdb.base/gdb1555.exp
@@ -34,7 +34,8 @@ if { [gdb_compile_shlib $libsrc $libobj {debug}] != ""
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
gdb_load_shlib $libobj
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.base/gdbindex-stabs.exp b/gdb/testsuite/gdb.base/gdbindex-stabs.exp
index 506ad11..9becaa1 100644
--- a/gdb/testsuite/gdb.base/gdbindex-stabs.exp
+++ b/gdb/testsuite/gdb.base/gdbindex-stabs.exp
@@ -28,7 +28,8 @@ if {[gdb_compile "${srcdir}/${subdir}/${srcfile_stabs}" ${objfile_stabs} object
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
# FAIL was: No line number known for stabs_function.
gdb_test "list stabs_function" " marker-here .*"
diff --git a/gdb/testsuite/gdb.base/gdbinit-history.exp b/gdb/testsuite/gdb.base/gdbinit-history.exp
index 48aae6b..11a4a23 100644
--- a/gdb/testsuite/gdb.base/gdbinit-history.exp
+++ b/gdb/testsuite/gdb.base/gdbinit-history.exp
@@ -141,7 +141,7 @@ proc check_history { hist } {
if { [llength $hist_lines] == 1 } {
set pattern [lindex $hist_lines 0]
} else {
- set pattern [eval multi_line $hist_lines]
+ set pattern [multi_line {*}$hist_lines]
}
# Check the history.
diff --git a/gdb/testsuite/gdb.base/global-var-nested-by-dso.exp b/gdb/testsuite/gdb.base/global-var-nested-by-dso.exp
index 92d6c62..480396a 100644
--- a/gdb/testsuite/gdb.base/global-var-nested-by-dso.exp
+++ b/gdb/testsuite/gdb.base/global-var-nested-by-dso.exp
@@ -42,7 +42,8 @@ if { [gdb_compile $srcdir/$subdir/$srcfile $binfile executable \
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
gdb_load_shlib $binfile_lib1
gdb_load_shlib $binfile_lib2
diff --git a/gdb/testsuite/gdb.base/gnu-ifunc.exp b/gdb/testsuite/gdb.base/gnu-ifunc.exp
index c7afbe5..f134a0f 100644
--- a/gdb/testsuite/gdb.base/gnu-ifunc.exp
+++ b/gdb/testsuite/gdb.base/gnu-ifunc.exp
@@ -96,7 +96,8 @@ proc_with_prefix set-break {resolver_attr resolver_debug final_debug} {
set suffix [make_binsuffix $resolver_attr $resolver_debug $final_debug]
set lib_so [standard_output_file ${libfile}-$suffix.so]
- clean_restart $binfile-$suffix
+ clean_restart
+ gdb_load $binfile-$suffix
gdb_load_shlib ${lib_so}
if {![runto_main]} {
@@ -185,6 +186,11 @@ proc_with_prefix set-break {resolver_attr resolver_debug final_debug} {
# other two locations.
gdb_test "info breakpoints" "$location\r\n.*$location\r\n$location"
}
+
+ # At one point a bug existed such that GDB would trigger an assert
+ # while restarting the inferior with ifunc breakpoints set.
+ gdb_run_cmd
+ gdb_test "" "Breakpoint $::decimal,.*final \\(\[^\r\n\]*\\).*" "restart, run until breakpoint"
}
# Misc GNU ifunc tests. For the description of RESOLVER_ATTR,
@@ -218,7 +224,8 @@ proc misc_tests {resolver_attr resolver_debug final_debug} {
# Start with a fresh gdb.
- clean_restart $binfile-$suffix
+ clean_restart
+ gdb_load $binfile-$suffix
gdb_load_shlib ${lib_so}
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.base/gnu_vector.exp b/gdb/testsuite/gdb.base/gnu_vector.exp
index ac0bff3..62c2003 100644
--- a/gdb/testsuite/gdb.base/gnu_vector.exp
+++ b/gdb/testsuite/gdb.base/gnu_vector.exp
@@ -40,7 +40,8 @@ if { [do_compile {-mcpu=native}] != ""
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if { ![runto_main] } {
return -1
diff --git a/gdb/testsuite/gdb.base/hashline1.exp b/gdb/testsuite/gdb.base/hashline1.exp
index 9af144b..8e815ae 100644
--- a/gdb/testsuite/gdb.base/hashline1.exp
+++ b/gdb/testsuite/gdb.base/hashline1.exp
@@ -37,7 +37,8 @@ if { [gdb_compile $compile_name "${binfile}" executable {debug}] != "" } {
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
set bp_location [gdb_get_line_number "set breakpoint here" $new_srcfile]
diff --git a/gdb/testsuite/gdb.base/hashline2.exp b/gdb/testsuite/gdb.base/hashline2.exp
index 740f511..f12b4d1 100644
--- a/gdb/testsuite/gdb.base/hashline2.exp
+++ b/gdb/testsuite/gdb.base/hashline2.exp
@@ -34,7 +34,8 @@ if { [gdb_compile $new_srcfile "${binfile}" executable {debug}] != "" } {
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
set bp_location [gdb_get_line_number "set breakpoint here" ${new_srcfile}]
diff --git a/gdb/testsuite/gdb.base/hashline3.exp b/gdb/testsuite/gdb.base/hashline3.exp
index 2575c28..508f7c9 100644
--- a/gdb/testsuite/gdb.base/hashline3.exp
+++ b/gdb/testsuite/gdb.base/hashline3.exp
@@ -35,7 +35,8 @@ if { [gdb_compile $new_srcfile "${binfile}" executable {debug}] != "" } {
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
set bp_location [gdb_get_line_number "set breakpoint here" $new_srcfile]
diff --git a/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.exp b/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.exp
index 8598345..9355ce0 100644
--- a/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.exp
+++ b/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.exp
@@ -34,7 +34,8 @@ if { [gdb_compile_shlib ${srcdir}/${subdir}/${lib_src} ${lib_so} $lib_opts] != "
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
gdb_load_shlib $lib_so
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.base/hook-stop.exp b/gdb/testsuite/gdb.base/hook-stop.exp
index a7b6ccd..1c774ce 100644
--- a/gdb/testsuite/gdb.base/hook-stop.exp
+++ b/gdb/testsuite/gdb.base/hook-stop.exp
@@ -37,7 +37,8 @@ proc define_hook_stop {commands} {
proc setup {commands} {
global srcfile binfile
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
if {![runto_main]} {
return -code return
diff --git a/gdb/testsuite/gdb.base/huge.exp b/gdb/testsuite/gdb.base/huge.exp
index f75b620..cb12964 100644
--- a/gdb/testsuite/gdb.base/huge.exp
+++ b/gdb/testsuite/gdb.base/huge.exp
@@ -42,7 +42,8 @@ for { set size $max } { $size >= $min } { set size [expr $size / 2] } {
require {expr $compilation_succeeded}
# Start with a fresh gdb.
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
save_vars { timeout } {
set timeout 30
diff --git a/gdb/testsuite/gdb.base/infcall-exec.exp b/gdb/testsuite/gdb.base/infcall-exec.exp
index 33cc5b6..b819284 100644
--- a/gdb/testsuite/gdb.base/infcall-exec.exp
+++ b/gdb/testsuite/gdb.base/infcall-exec.exp
@@ -36,7 +36,8 @@ if { [is_remote target] } {
set binfile2 [gdb_remote_download target $binfile2]
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
if {![runto_main]} {
return -1
diff --git a/gdb/testsuite/gdb.base/infcall-failure-2.exp b/gdb/testsuite/gdb.base/infcall-failure-2.exp
new file mode 100644
index 0000000..2a7d784
--- /dev/null
+++ b/gdb/testsuite/gdb.base/infcall-failure-2.exp
@@ -0,0 +1,37 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+standard_testfile infcall-failure.c
+
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile] == -1 } {
+ return
+}
+
+if { ![runto_main] } {
+ return
+}
+
+if { ![gdb_breakpoint "*0x1" message] } {
+ return
+}
+
+gdb_test "p foo ()" \
+ [multi_line \
+ [string_to_regexp "Command aborted."] \
+ ".*" ]
+
+# Check that gdb is still responsive. Regression test for PR gdb/33068.
+gdb_test "p 1 + 1" \
+ " = 2"
diff --git a/gdb/testsuite/gdb.base/infcall-failure.exp b/gdb/testsuite/gdb.base/infcall-failure.exp
index e7aeac1..594cb2b 100644
--- a/gdb/testsuite/gdb.base/infcall-failure.exp
+++ b/gdb/testsuite/gdb.base/infcall-failure.exp
@@ -39,7 +39,8 @@ proc start_gdb_and_runto_main { target_async target_non_stop } {
append ::GDBFLAGS \
" -ex \"maintenance set target-async ${target_async}\""
- clean_restart ${::binfile}
+ clean_restart
+ gdb_load $::binfile
}
if { ![runto_main] } {
diff --git a/gdb/testsuite/gdb.base/infcall-nested-structs.exp.tcl b/gdb/testsuite/gdb.base/infcall-nested-structs.exp.tcl
index 3a11d7f..6c95934 100644
--- a/gdb/testsuite/gdb.base/infcall-nested-structs.exp.tcl
+++ b/gdb/testsuite/gdb.base/infcall-nested-structs.exp.tcl
@@ -81,7 +81,8 @@ proc start_nested_structs_test { lang types } {
}
# Start with a fresh gdb.
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
# Make certain that the output is consistent
gdb_test_no_output "set print sevenbit-strings"
@@ -91,7 +92,7 @@ proc start_nested_structs_test { lang types } {
gdb_test_no_output "set print elements 300"
# Advance to main
- if { ![runto_main] } then {
+ if { ![runto_main] } {
return 0
}
diff --git a/gdb/testsuite/gdb.base/infcall-timeout.exp b/gdb/testsuite/gdb.base/infcall-timeout.exp
index aa7dbc3..621a7b9 100644
--- a/gdb/testsuite/gdb.base/infcall-timeout.exp
+++ b/gdb/testsuite/gdb.base/infcall-timeout.exp
@@ -41,7 +41,8 @@ proc run_test { target_async target_non_stop non_stop unwind } {
append ::GDBFLAGS \
" -ex \"maintenance set target-async ${target_async}\""
- clean_restart ${::binfile}
+ clean_restart
+ gdb_load $::binfile
}
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.base/inferior-args.exp b/gdb/testsuite/gdb.base/inferior-args.exp
index 9406c78..6b92c08 100644
--- a/gdb/testsuite/gdb.base/inferior-args.exp
+++ b/gdb/testsuite/gdb.base/inferior-args.exp
@@ -17,6 +17,7 @@
# This does not work on boards that don't support inferior arguments.
require {!target_info exists noargs}
+require {expr [have_startup_shell] != -1}
standard_testfile .c
@@ -42,7 +43,8 @@ proc do_test { method startup_with_shell inferior_args expected_results \
stub_suitable } {
global binfile hex
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
gdb_test_no_output "set startup-with-shell $startup_with_shell"
@@ -168,8 +170,7 @@ lappend test_desc_list [list "test one" \
# the rest of this mess in order to avoid TCL escaping the quote for
# me. It's super important that what we send to GDB is '"' not '\"'.
set item [list "test two" false]
-set cmd [format "lappend item \{ '%c' '\\%c' \}" 34 34]
-eval $cmd
+lappend item [format { '%c' '\%c' } 34 34]
set bs "\\\\"
lappend item [list "$hex \"$bs\"\"" "$hex \"$bs$bs$bs\"\""]
lappend test_desc_list $item
@@ -211,14 +212,31 @@ lappend test_desc_list [list "test four" \
[list "$hex \"'\"" \
"$hex \"\\\\\"\""]]
-foreach desc $test_desc_list {
- lassign $desc name stub_suitable args re_list
- with_test_prefix $name {
- foreach_with_prefix set_method { "start" "starti" "run" "set args" } {
- foreach_with_prefix startup_with_shell { on off } {
- do_test $set_method $startup_with_shell $args $re_list \
- $stub_suitable
+# Run all tests in the global TEST_DESC_LIST.
+proc run_all_tests {} {
+ foreach desc $::test_desc_list {
+ lassign $desc name stub_suitable args re_list
+ with_test_prefix $name {
+ foreach_with_prefix set_method { "start" "starti" "run" "set args" } {
+ foreach_with_prefix startup_with_shell { on off } {
+ do_test $set_method $startup_with_shell $args $re_list \
+ $stub_suitable
+ }
}
}
}
}
+
+run_all_tests
+
+# For extended-remote targets, disable the packet which passes
+# inferior arguments as a single string. This changes how the vRun
+# (extended-remote only) packet works.
+if {[target_info gdb_protocol] == "extended-remote"} {
+ with_test_prefix "single-inferior-arg disabled" {
+ save_vars { GDBFLAGS } {
+ append GDBFLAGS " -ex \"set remote single-inferior-argument-feature-packet off\""
+ run_all_tests
+ }
+ }
+}
diff --git a/gdb/testsuite/gdb.base/inferior-died.exp b/gdb/testsuite/gdb.base/inferior-died.exp
index 764a88d..9ba3a4c 100644
--- a/gdb/testsuite/gdb.base/inferior-died.exp
+++ b/gdb/testsuite/gdb.base/inferior-died.exp
@@ -25,7 +25,8 @@ if { [build_executable "failed to build" ${testfile} ${testfile}.c] } {
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"set non-stop on\""
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
}
gdb_test_no_output "set detach-on-fork off"
diff --git a/gdb/testsuite/gdb.base/info-proc.exp b/gdb/testsuite/gdb.base/info-proc.exp
index 8dff6a5..adc8894 100644
--- a/gdb/testsuite/gdb.base/info-proc.exp
+++ b/gdb/testsuite/gdb.base/info-proc.exp
@@ -63,7 +63,8 @@ if {[istarget "*-*-linux*"]} {
}
set gcorefile [standard_output_file $testfile.gcore]
if {[gdb_gcore_cmd $gcorefile "save a core file"]} {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
gdb_test "core $gcorefile" "Core was generated by.*" \
"core [file tail $gcorefile]"
diff --git a/gdb/testsuite/gdb.base/info-program.exp b/gdb/testsuite/gdb.base/info-program.exp
index 5a47e1e..da24880 100644
--- a/gdb/testsuite/gdb.base/info-program.exp
+++ b/gdb/testsuite/gdb.base/info-program.exp
@@ -35,7 +35,8 @@ standard_testfile
proc do_test { threads non-stop } {
save_vars { ::GDBFLAGS } {
append ::GDBFLAGS " -ex \"set non-stop ${non-stop}\""
- clean_restart $::binfile-$threads
+ clean_restart
+ gdb_load $::binfile-$threads
}
gdb_test "info program" \
diff --git a/gdb/testsuite/gdb.base/info-types.exp.tcl b/gdb/testsuite/gdb.base/info-types.exp.tcl
index f75bb36..c05837b 100644
--- a/gdb/testsuite/gdb.base/info-types.exp.tcl
+++ b/gdb/testsuite/gdb.base/info-types.exp.tcl
@@ -33,7 +33,7 @@ proc run_test { lang } {
return -1
}
- if ![runto_main] then {
+ if { ![runto_main] } {
return 0
}
diff --git a/gdb/testsuite/gdb.base/info_sources_2.exp b/gdb/testsuite/gdb.base/info_sources_2.exp
index c469049..09e9972 100644
--- a/gdb/testsuite/gdb.base/info_sources_2.exp
+++ b/gdb/testsuite/gdb.base/info_sources_2.exp
@@ -35,7 +35,8 @@ if {[gdb_compile ${srcdir}/${subdir}/${srcfile} ${binfile} executable \
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
set solib_name [gdb_load_shlib $solib_name]
@@ -72,13 +73,18 @@ proc run_info_sources { extra_args args } {
set objfile_name ""
set source_files {}
set files {}
+ # Note below we sanitize paths so we can compare against the
+ # host_file_normalize'd paths later. Note we sanitize, but
+ # don't normalize here, as the latter would turn a relative
+ # path into an absolute path, and this testcase wants to make
+ # sure that GDB prints the absolute path.
gdb_test_multiple $cmd "" {
-re "${command_regex}\r\n" {
exp_continue
}
-re "^(\[^\r\n\]+):\r\n" {
- set objfile_name $expect_out(1,string)
+ set objfile_name [host_file_sanitize $expect_out(1,string)]
if { $is_remote_target } {
set objfile_name [file tail $objfile_name]
}
@@ -101,7 +107,7 @@ proc run_info_sources { extra_args args } {
}
-re "^(\[^,\r\n\]+), " {
- set f $expect_out(1,string)
+ set f [host_file_sanitize $expect_out(1,string)]
lappend files $f
exp_continue
}
@@ -111,7 +117,7 @@ proc run_info_sources { extra_args args } {
return
}
- set f $expect_out(1,string)
+ set f [host_file_sanitize $expect_out(1,string)]
lappend files $f
set info_sources($objfile_name) $files
set $objfile_name ""
@@ -133,7 +139,7 @@ proc run_info_sources { extra_args args } {
}
# Figure out the path for SOURCEFILE that we're looking for.
- set sourcepath [file normalize ${srcdir}/${subdir}/${sourcefile}]
+ set sourcepath [host_file_normalize ${srcdir}/${subdir}/${sourcefile}]
if { $is_remote_target } {
set objfile [file tail $objfile]
@@ -156,32 +162,34 @@ proc run_info_sources { extra_args args } {
# The actual tests.
+set host_binfile [host_file_normalize $binfile$EXEEXT]
+
run_info_sources "" \
- ${binfile} ${srcfile} \
- ${binfile} ${testfile}-header.h \
+ ${host_binfile} ${srcfile} \
+ ${host_binfile} ${testfile}-header.h \
${solib_name} ${srcfile2} \
${solib_name} ${testfile}-header.h
run_info_sources "-basename info_sources_2" \
- ${binfile} ${srcfile} \
- ${binfile} ${testfile}-header.h \
+ ${host_binfile} ${srcfile} \
+ ${host_binfile} ${testfile}-header.h \
${solib_name} ${srcfile2} \
${solib_name} ${testfile}-header.h
run_info_sources "-basename \\.c" \
- ${binfile} ${srcfile} \
- ${binfile} !${testfile}-header.h \
+ ${host_binfile} ${srcfile} \
+ ${host_binfile} !${testfile}-header.h \
${solib_name} ${srcfile2} \
${solib_name} !${testfile}-header.h
run_info_sources "-basename -- -test\\.c" \
- ${binfile} ${srcfile} \
- ${binfile} !${testfile}-header.h \
+ ${host_binfile} ${srcfile} \
+ ${host_binfile} !${testfile}-header.h \
${solib_name} !${srcfile2} \
${solib_name} !${testfile}-header.h
run_info_sources "-basename -- -lib\\.c" \
- ${binfile} !${srcfile} \
- ${binfile} !${testfile}-header.h \
+ ${host_binfile} !${srcfile} \
+ ${host_binfile} !${testfile}-header.h \
${solib_name} ${srcfile2} \
${solib_name} !${testfile}-header.h
diff --git a/gdb/testsuite/gdb.base/inline-frame-cycle-unwind.py b/gdb/testsuite/gdb.base/inline-frame-cycle-unwind.py
index bc4a673..4ab7257 100644
--- a/gdb/testsuite/gdb.base/inline-frame-cycle-unwind.py
+++ b/gdb/testsuite/gdb.base/inline-frame-cycle-unwind.py
@@ -65,6 +65,10 @@ class TestUnwinder(Unwinder):
for reg in pending_frame.architecture().registers("general"):
val = pending_frame.read_register(reg)
+ # Having unavailable registers leads to a fall back to the standard
+ # unwinders. Don't add unavailable registers to avoid this.
+ if str(val) == "<unavailable>":
+ continue
unwinder.add_saved_register(reg, val)
return unwinder
diff --git a/gdb/testsuite/gdb.base/internal-string-values.exp b/gdb/testsuite/gdb.base/internal-string-values.exp
index aa68bc9..c1afa18 100644
--- a/gdb/testsuite/gdb.base/internal-string-values.exp
+++ b/gdb/testsuite/gdb.base/internal-string-values.exp
@@ -250,7 +250,8 @@ proc_with_prefix test_internal_var { } {
return
}
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
if {![runto_main]} {
fail "could not run to main"
diff --git a/gdb/testsuite/gdb.base/interrupt-daemon-attach.exp b/gdb/testsuite/gdb.base/interrupt-daemon-attach.exp
index 3c46f5d..a42fc12 100644
--- a/gdb/testsuite/gdb.base/interrupt-daemon-attach.exp
+++ b/gdb/testsuite/gdb.base/interrupt-daemon-attach.exp
@@ -36,7 +36,8 @@ proc do_test {} {
# Attach to the parent, run it to a known point, extract the
# child's PID, and detach.
with_test_prefix "parent" {
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
gdb_test "attach $parent_pid" \
"Attaching to program.*, process $parent_pid.*" \
@@ -60,7 +61,8 @@ proc do_test {} {
with_test_prefix "child" {
global gdb_prompt
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
gdb_test "attach $child_pid" \
"Attaching to program.*, process $child_pid.*" \
diff --git a/gdb/testsuite/gdb.base/interrupt-daemon.exp b/gdb/testsuite/gdb.base/interrupt-daemon.exp
index 8b8c61d..b909437 100644
--- a/gdb/testsuite/gdb.base/interrupt-daemon.exp
+++ b/gdb/testsuite/gdb.base/interrupt-daemon.exp
@@ -30,7 +30,8 @@ proc do_test {} {
global binfile
global gdb_prompt
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
gdb_test "set follow-fork-mode child" ".*"
diff --git a/gdb/testsuite/gdb.base/jit-bfd-name.exp b/gdb/testsuite/gdb.base/jit-bfd-name.exp
index 219929b..756a38b 100644
--- a/gdb/testsuite/gdb.base/jit-bfd-name.exp
+++ b/gdb/testsuite/gdb.base/jit-bfd-name.exp
@@ -46,7 +46,8 @@ if { [compile_jit_main ${main_srcfile} ${main_binfile} {}] != 0 } {
return
}
-clean_restart $::main_binfile
+clean_restart
+gdb_load $::main_binfile
if { ![runto_main] } {
return
}
diff --git a/gdb/testsuite/gdb.base/jit-elf-fork.exp b/gdb/testsuite/gdb.base/jit-elf-fork.exp
index c1fa428..92e7dc6 100644
--- a/gdb/testsuite/gdb.base/jit-elf-fork.exp
+++ b/gdb/testsuite/gdb.base/jit-elf-fork.exp
@@ -54,7 +54,8 @@ if { [compile_jit_main ${main_srcfile} ${main_binfile} {}] != 0 } {
# that the callers can continue execution until there.
proc do_setup { detach-on-fork follow-fork-mode } {
- clean_restart ${::main_binfile}
+ clean_restart
+ gdb_load $::main_binfile
gdb_test_no_output "set detach-on-fork ${detach-on-fork}"
gdb_test_no_output "set follow-fork-mode ${follow-fork-mode}"
diff --git a/gdb/testsuite/gdb.base/jit-elf-so.exp b/gdb/testsuite/gdb.base/jit-elf-so.exp
index c227748..8f16bdb 100644
--- a/gdb/testsuite/gdb.base/jit-elf-so.exp
+++ b/gdb/testsuite/gdb.base/jit-elf-so.exp
@@ -73,7 +73,8 @@ proc one_jit_test {solib_binfiles_target match_str} {
global main_loader_binfile main_loader_srcfile
global main_solib_binfile main_solib_binfile_target main_solib_srcfile
- clean_restart $main_loader_binfile
+ clean_restart
+ gdb_load $main_loader_binfile
gdb_locate_shlib $main_solib_binfile
# This is just to help debugging when things fail
diff --git a/gdb/testsuite/gdb.base/jit-elf.exp b/gdb/testsuite/gdb.base/jit-elf.exp
index a519565..2dc67a5 100644
--- a/gdb/testsuite/gdb.base/jit-elf.exp
+++ b/gdb/testsuite/gdb.base/jit-elf.exp
@@ -48,7 +48,8 @@ proc clean_reattach {} {
gdb_test_no_output "set var wait_for_gdb = 1"
gdb_test "detach" "Detaching from .*"
- clean_restart ${main_binfile}
+ clean_restart
+ gdb_load $main_binfile
if { ![gdb_attach $testpid \
-pattern "main.*at .*$::main_basename.c:.*"] } {
@@ -84,7 +85,8 @@ proc one_jit_test {jit_solibs_target match_str reattach} {
global test_verbose
global main_binfile main_srcfile
- clean_restart ${main_binfile}
+ clean_restart
+ gdb_load $main_binfile
# This is just to help debugging when things fail
if {$test_verbose > 0} {
diff --git a/gdb/testsuite/gdb.base/jit-reader-exec.exp b/gdb/testsuite/gdb.base/jit-reader-exec.exp
index ef6148b..e70f104 100644
--- a/gdb/testsuite/gdb.base/jit-reader-exec.exp
+++ b/gdb/testsuite/gdb.base/jit-reader-exec.exp
@@ -43,7 +43,8 @@ if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.base/jit-reader-simple.exp b/gdb/testsuite/gdb.base/jit-reader-simple.exp
index 77705eb..f577dba 100644
--- a/gdb/testsuite/gdb.base/jit-reader-simple.exp
+++ b/gdb/testsuite/gdb.base/jit-reader-simple.exp
@@ -103,9 +103,11 @@ proc jit_test_reread {standalone change_addr} {
with_test_prefix "initial run" {
if {$standalone} {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
} else {
- clean_restart $binfile_dl
+ clean_restart
+ gdb_load $binfile_dl
}
runto_main
@@ -175,7 +177,8 @@ foreach standalone {1 0} {
# see JIT breakpoints defined for both.
with_test_prefix "two JITers" {
- clean_restart $binfile_dl2
+ clean_restart
+ gdb_load $binfile_dl2
if {![runto_main]} {
return -1
diff --git a/gdb/testsuite/gdb.base/jit-reader.exp b/gdb/testsuite/gdb.base/jit-reader.exp
index 4462ab4..cd844ca 100644
--- a/gdb/testsuite/gdb.base/jit-reader.exp
+++ b/gdb/testsuite/gdb.base/jit-reader.exp
@@ -102,7 +102,8 @@ proc jit_reader_test {} {
set any "\[^\r\n\]*"
- clean_restart $jit_host_bin
+ clean_restart
+ gdb_load $jit_host_bin
gdb_load_shlib $jit_reader_bin
if {$test_verbose > 0} {
diff --git a/gdb/testsuite/gdb.base/kill-during-detach.exp b/gdb/testsuite/gdb.base/kill-during-detach.exp
index e164234..290606a 100644
--- a/gdb/testsuite/gdb.base/kill-during-detach.exp
+++ b/gdb/testsuite/gdb.base/kill-during-detach.exp
@@ -76,7 +76,8 @@ set checkpoint_line [gdb_get_line_number "Checkpoint here"]
proc run_test { exit_p checkpoint_p } {
save_vars { ::GDBFLAGS } {
append ::GDBFLAGS " -ex \"set non-stop on\""
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
}
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.base/killed-outside.exp b/gdb/testsuite/gdb.base/killed-outside.exp
index 919584d..2b367e4 100644
--- a/gdb/testsuite/gdb.base/killed-outside.exp
+++ b/gdb/testsuite/gdb.base/killed-outside.exp
@@ -46,7 +46,8 @@ proc test {cmds_after_kill} {
global gdb_prompt
global decimal
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
if ![runto done] {
return
diff --git a/gdb/testsuite/gdb.base/langs.exp b/gdb/testsuite/gdb.base/langs.exp
index b84b7d6..aa8d8e0 100644
--- a/gdb/testsuite/gdb.base/langs.exp
+++ b/gdb/testsuite/gdb.base/langs.exp
@@ -93,7 +93,8 @@ if {[runto csub]} {
gdb_continue_to_end "first session"
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
# Try exercising the "minimal" language a bit...
diff --git a/gdb/testsuite/gdb.base/large-frame.exp b/gdb/testsuite/gdb.base/large-frame.exp
index 0418b5b..f0d7af6 100644
--- a/gdb/testsuite/gdb.base/large-frame.exp
+++ b/gdb/testsuite/gdb.base/large-frame.exp
@@ -28,12 +28,12 @@ if { [is_remote host] } {
# the test.
proc run_test { opt_level } {
- global srcfile srcfile2 binfile hex
+ global srcfile srcfile2 hex
standard_testfile large-frame-1.c large-frame-2.c
if {[prepare_for_testing_full "failed to prepare" \
- [list ${binfile}-${opt_level} debug \
+ [list $::testfile-$opt_level debug \
$srcfile [list debug] \
$srcfile2 [list nodebug optimize=-$opt_level]]]} {
return
diff --git a/gdb/testsuite/gdb.base/libsegfault.exp b/gdb/testsuite/gdb.base/libsegfault.exp
index eab12ff..a3883e1 100644
--- a/gdb/testsuite/gdb.base/libsegfault.exp
+++ b/gdb/testsuite/gdb.base/libsegfault.exp
@@ -24,6 +24,15 @@
# the local machine.
require {!is_remote host}
+# On Cygwin, the testcase would somehow end up trying to preload
+# libSegFault.so into the Expect process, which would fail and crash
+# it. Since libSegFault.so is a glibc feature that doesn't exist on
+# Cygwin, just skip testing there.
+require {!expr {[isbuild "*-*-cygwin*"] && [ishost "*-*-cygwin*"]}}
+# Same when testing MinGW with MSYS2, as MSYS2 is really a Cygwin
+# fork.
+require {!expr {[isbuild "*-*-mingw*"] && [ishost "*-*-mingw*"]}}
+
# Spawn GDB with LIB preloaded with LD_PRELOAD. CMDLINE_OPTS are
# command line options passed to GDB.
diff --git a/gdb/testsuite/gdb.base/lineinc.exp b/gdb/testsuite/gdb.base/lineinc.exp
index cfd2ba7..2382fa5 100644
--- a/gdb/testsuite/gdb.base/lineinc.exp
+++ b/gdb/testsuite/gdb.base/lineinc.exp
@@ -86,7 +86,8 @@ if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" ${binfile} executable \
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
# Any command that causes GDB to read the debugging info for the
# lineinc.c compilation unit will do here.
diff --git a/gdb/testsuite/gdb.base/list-missing-source.exp b/gdb/testsuite/gdb.base/list-missing-source.exp
index 7807206..196a1f2 100644
--- a/gdb/testsuite/gdb.base/list-missing-source.exp
+++ b/gdb/testsuite/gdb.base/list-missing-source.exp
@@ -43,7 +43,8 @@ if { [gdb_compile "${srcfile}" "${binfile}" \
remote_file host delete $srcfile
# Now start GDB, run to main and try to list the source.
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.base/list.exp b/gdb/testsuite/gdb.base/list.exp
index d005ceb..bdbb52b 100644
--- a/gdb/testsuite/gdb.base/list.exp
+++ b/gdb/testsuite/gdb.base/list.exp
@@ -385,7 +385,8 @@ proc test_only_end {} {
proc test_list_invalid_args {} {
global binfile
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
gdb_test "list -INVALID" \
"invalid explicit location argument, \"-INVALID\"" \
"first use of \"list -INVALID\""
@@ -393,7 +394,8 @@ proc test_list_invalid_args {} {
"invalid explicit location argument, \"-INVALID\"" \
"second use of \"list -INVALID\""
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
gdb_test "list +INVALID" "Function \"\\+INVALID\" not defined." \
"first use of \"list +INVALID\""
gdb_test "list +INVALID" "Function \"\\+INVALID\" not defined." \
@@ -499,7 +501,8 @@ proc test_list {command listsize1 listsize2 linerange1 linerange2} {
with_test_prefix "$command after stop: $listsize1, $listsize2" {
global binfile
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
if {![runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.base/logical.exp b/gdb/testsuite/gdb.base/logical.exp
index 31007e8..b00d6d5 100644
--- a/gdb/testsuite/gdb.base/logical.exp
+++ b/gdb/testsuite/gdb.base/logical.exp
@@ -32,7 +32,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
#
diff --git a/gdb/testsuite/gdb.base/long_long.exp b/gdb/testsuite/gdb.base/long_long.exp
index 38ba03e..4fbb757 100644
--- a/gdb/testsuite/gdb.base/long_long.exp
+++ b/gdb/testsuite/gdb.base/long_long.exp
@@ -30,7 +30,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [con
# use this to debug:
#log_user 1
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if {![runto known_types]} {
return
diff --git a/gdb/testsuite/gdb.base/longjmp.exp b/gdb/testsuite/gdb.base/longjmp.exp
index caf0d5c..99552e6 100644
--- a/gdb/testsuite/gdb.base/longjmp.exp
+++ b/gdb/testsuite/gdb.base/longjmp.exp
@@ -26,7 +26,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
}
proc do_test { with_probes } {
- clean_restart ${::binfile}
+ clean_restart
+ gdb_load $::binfile
if { !$with_probes } {
gdb_test "maint ignore-probes libc ^longjmp$"
diff --git a/gdb/testsuite/gdb.base/macro-source-path.exp b/gdb/testsuite/gdb.base/macro-source-path.exp
index 47ad789..9c84227 100644
--- a/gdb/testsuite/gdb.base/macro-source-path.exp
+++ b/gdb/testsuite/gdb.base/macro-source-path.exp
@@ -33,7 +33,7 @@ require {!is_remote host}
# Set the current working directory to $out/cwd, so that we can test compiling
# using relative paths.
-set out_dir [standard_output_file ""]
+set out_dir [build_standard_output_file ""]
file mkdir $out_dir/cwd
file mkdir $out_dir/other
file copy -force $srcdir/$subdir/$srcfile $out_dir/cwd
@@ -53,7 +53,8 @@ proc test { src name } {
return
}
- clean_restart $binfile
+ clean_restart
+ gdb_load [host_file_normalize $binfile]
if { ![runto_main] } {
return
diff --git a/gdb/testsuite/gdb.base/macscp.exp b/gdb/testsuite/gdb.base/macscp.exp
index 0b5f863..63f1356 100644
--- a/gdb/testsuite/gdb.base/macscp.exp
+++ b/gdb/testsuite/gdb.base/macscp.exp
@@ -29,7 +29,8 @@ if {[gdb_compile "${srcdir}/${subdir}/macscp1.c" "${objfile}" \
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
# Ask GDB to show the current definition of MACRO, and return a list
diff --git a/gdb/testsuite/gdb.base/maint-info-inline-frames-and-blocks.exp b/gdb/testsuite/gdb.base/maint-info-inline-frames-and-blocks.exp
index 80f2d01..91d0379 100644
--- a/gdb/testsuite/gdb.base/maint-info-inline-frames-and-blocks.exp
+++ b/gdb/testsuite/gdb.base/maint-info-inline-frames-and-blocks.exp
@@ -201,7 +201,8 @@ gdb_test "maint info blocks" [make_blocks_result normal_func \
inline_func_a inline_func_b] \
"maint info blocks using stored \$pc, inferior still running"
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
# Use the recorded $pc value to check inline frames when the inferior
# is not executing.
diff --git a/gdb/testsuite/gdb.base/maint-test-remote-args.exp b/gdb/testsuite/gdb.base/maint-test-remote-args.exp
new file mode 100644
index 0000000..6cd3006
--- /dev/null
+++ b/gdb/testsuite/gdb.base/maint-test-remote-args.exp
@@ -0,0 +1,40 @@
+# Copyright 2024-2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Test the 'maint test-remote-args' command.
+#
+# We do minimal testing in here. If you are thinking of adding a new
+# test here then you are most likely adding the test in the wrong
+# place. Remote argument testing is checked in the following test
+# scripts: gdb.base/args.exp, gdb.base/inferior-args.exp,
+# gdb.base/startup-with-shell.exp, and gdb.python/py-inferior.exp.
+# The test gdb.gdb/unittest.exp also runs 'maint selftest
+# remote-args', which are the remote argument self tests.
+#
+# If you have a new test for an argument that was being passed
+# incorrectly, then add the test to one of those scripts.
+#
+# This file is ONLY for validating that the 'maint test-remote-args'
+# command itself is working.
+
+gdb_start
+
+gdb_test "maint test-remote-args a b c" \
+ [multi_line \
+ "Input \\(a b c\\)" \
+ " \\(a\\)" \
+ " \\(b\\)" \
+ " \\(c\\)" \
+ "Output \\(a b c\\)"]
diff --git a/gdb/testsuite/gdb.base/maint.exp b/gdb/testsuite/gdb.base/maint.exp
index 7936e53..3d49b36 100644
--- a/gdb/testsuite/gdb.base/maint.exp
+++ b/gdb/testsuite/gdb.base/maint.exp
@@ -72,7 +72,8 @@ with_test_prefix "warnings" {
foreach cmd {"per-command" "per-command time"} {
with_test_prefix $cmd {
# GDB only warns once, so restart between commands.
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
gdb_test "mt set $cmd on" "$maybe_per_command_warning"
gdb_test "mt set $cmd off" "command started"
gdb_test_no_output "mt set $cmd on" \
diff --git a/gdb/testsuite/gdb.base/many-headers.exp b/gdb/testsuite/gdb.base/many-headers.exp
index f46b980..5e022da 100644
--- a/gdb/testsuite/gdb.base/many-headers.exp
+++ b/gdb/testsuite/gdb.base/many-headers.exp
@@ -33,6 +33,7 @@ if {[build_executable "failed to prepare" $testfile $srcfile debug]} {
# Generate core file.
set corefile [core_find $binfile]
if {$corefile == ""} {
+ untested "unable to create or find corefile"
return 0
}
diff --git a/gdb/testsuite/gdb.base/max-depth.exp.tcl b/gdb/testsuite/gdb.base/max-depth.exp.tcl
index fcec47b..22bf180 100644
--- a/gdb/testsuite/gdb.base/max-depth.exp.tcl
+++ b/gdb/testsuite/gdb.base/max-depth.exp.tcl
@@ -30,12 +30,12 @@ proc compile_and_run_tests { lang } {
lappend flags "additional_flags=-std=c++11"
}
- if { [prepare_for_testing "failed to prepare" "${binfile}" "${srcfile}" "${flags}"] } {
+ if { [prepare_for_testing "failed to prepare" $testfile $srcfile $flags] } {
return 0
}
# Advance to main.
- if { ![runto_main] } then {
+ if { ![runto_main] } {
return 0
}
diff --git a/gdb/testsuite/gdb.base/memops-watchpoint.exp b/gdb/testsuite/gdb.base/memops-watchpoint.exp
index eba54c1..1a8d6d9 100644
--- a/gdb/testsuite/gdb.base/memops-watchpoint.exp
+++ b/gdb/testsuite/gdb.base/memops-watchpoint.exp
@@ -44,118 +44,63 @@ gdb_test "watch -location c\[28\]" \
# This is to allow the tests to work if there's a properly named symbol for
# the function, even if there's no libc debug info.
-set saw_watch_trigger 0
-set saw_function 0
-set is_supported 1
-set message "continue until memset watchpoint hits"
-set watch_trigger \
+# ARRAY_RE is the array whose modification is caught by the
+# watchpoint. SOURCE_FUNCTION is the function that modifies the
+# array, as written in the source of the test program. FUNCTION_RE
+# matches the name of the symbol that actually implements
+# SOURCE_FUNCTION (e.g., memcpy may be implemented with memmove, so we
+# may want to expect both). OLD_VALUE_RE and NEW_VALUE_RE match the
+# old/new values when the watchpoint triggers.
+
+proc continue_to_watchpoint {array_re source_function function_re
+ old_value_re new_value_re} {
+ set thread_prefix_re "(?:Thread $::decimal \[^\r\n\]*hit )?"
+
+ set saw_watch_trigger 0
+ set saw_function 0
+ set is_supported 1
+ set watch_trigger_re \
[multi_line \
"Continuing\\." \
"" \
- "(Hardware w|W)atchpoint ${decimal}: -location a\\\[28\\\]" \
+ "${thread_prefix_re}(Hardware w|W)atchpoint ${::decimal}: -location ${array_re}\\\[28\\\]" \
"" \
- "Old value = 104 'h'" \
- "New value = 0 '\\\\000'"]
-gdb_test_multiple "continue" $message {
- -re $watch_trigger {
- set saw_watch_trigger 1
- exp_continue
- }
- -re ".*memset.* \\(\\) at .*:$decimal\r\n" {
- set saw_function 1
- exp_continue
- }
- -re ".*memset.* \\(\\) from .*libc\[^\r\n\]+\r\n" {
- set saw_function 1
- exp_continue
- }
- -re "in \\?\\? \\(\\) from .*libc\[^\r\n\]+\r\n" {
- set is_supported 0
- unsupported "symbol for memset not found"
- exp_continue
- }
- -re "$gdb_prompt $" {
- if { $is_supported } {
- setup_kfail breakpoints/31665 arm*-*-linux*
- gdb_assert { $saw_watch_trigger && $saw_function } $message
+ "Old value = ${old_value_re}" \
+ "New value = ${new_value_re}"]
+ gdb_test_multiple "continue" \
+ "continue until $source_function watchpoint hits" {
+ -re $watch_trigger_re {
+ set saw_watch_trigger 1
+ exp_continue
+ }
+ -re "${function_re}.* \\(\\) at \[^\r\n\]+:${::decimal}(?=\r\n)" {
+ set saw_function 1
+ exp_continue
+ }
+ -re "${function_re}.* \\(\\) from \[^\r\n\]+(?=\r\n)" {
+ set saw_function 1
+ exp_continue
+ }
+ -re "in \\?\\? \\(\\) from \[^\r\n\]+(?=\r\n)" {
+ set is_supported 0
+ unsupported "symbol for ${source_function} not found"
+ exp_continue
+ }
+ -re -wrap "" {
+ if { $is_supported } {
+ setup_kfail breakpoints/31665 arm*-*-linux*
+ gdb_assert { $saw_watch_trigger && $saw_function } \
+ $gdb_test_name
+ }
}
}
}
+# Note: Some architectures use memmove for memset.
+continue_to_watchpoint "a" "memset" "(memset|memmove)" "104 'h'" "0 '\\\\000'"
+
# Note: Some architectures use memmove for memcpy.
-set saw_watch_trigger 0
-set saw_function 0
-set is_supported 1
-set message "continue until memcpy watchpoint hits"
-set watch_trigger \
- [multi_line \
- "Continuing\\." \
- "" \
- "(Hardware w|W)atchpoint ${decimal}: -location b\\\[28\\\]" \
- "" \
- "Old value = 101 'e'" \
- "New value = 114 'r'"]
-gdb_test_multiple "continue" $message {
- -re $watch_trigger {
- set saw_watch_trigger 1
- exp_continue
- }
- -re ".*(memcpy|memmove).* \\(\\) at .*:$decimal\r\n" {
- set saw_function 1
- exp_continue
- }
- -re ".*(memcpy|memmove).* \\(\\) from .*libc\[^\r\n\]+\r\n" {
- set saw_function 1
- exp_continue
- }
- -re "in \\?\\? \\(\\) from .*libc\[^\r\n\]+\r\n" {
- set is_supported 0
- unsupported "symbol for memcpy not found"
- exp_continue
- }
- -re "$gdb_prompt $" {
- if { $is_supported } {
- setup_kfail breakpoints/31665 arm*-*-linux*
- gdb_assert { $saw_watch_trigger && $saw_function } $message
- }
- }
-}
+continue_to_watchpoint "b" "memcpy" "(memcpy|memmove)" "101 'e'" "114 'r'"
# Note: Some architectures use memcpy for memmove.
-set saw_watch_trigger 0
-set saw_function 0
-set is_supported 1
-set message "continue until memmove watchpoint hits"
-set watch_trigger \
- [multi_line \
- "Continuing\\." \
- "" \
- "(Hardware w|W)atchpoint ${decimal}: -location c\\\[28\\\]" \
- "" \
- "Old value = 100 'd'" \
- "New value = 114 'r'"]
-gdb_test_multiple "continue" $message {
- -re $watch_trigger {
- set saw_watch_trigger 1
- exp_continue
- }
- -re ".*(memcpy|memmove).* \\(\\) at .*:$decimal\r\n" {
- set saw_function 1
- exp_continue
- }
- -re ".*(memcpy|memmove).* \\(\\) from .*libc\[^\r\n\]+\r\n" {
- set saw_function 1
- exp_continue
- }
- -re "in \\?\\? \\(\\) from .*libc\[^\r\n\]+\r\n" {
- set is_supported 0
- unsupported "symbol for memmove not found"
- exp_continue
- }
- -re "$gdb_prompt $" {
- if { $is_supported } {
- setup_kfail breakpoints/31665 arm*-*-linux*
- gdb_assert { $saw_watch_trigger && $saw_function } $message
- }
- }
-}
+continue_to_watchpoint "c" "memmove" "(memcpy|memmove)" "100 'd'" "114 'r'"
diff --git a/gdb/testsuite/gdb.base/miscexprs.exp b/gdb/testsuite/gdb.base/miscexprs.exp
index 86196fa..f723d75 100644
--- a/gdb/testsuite/gdb.base/miscexprs.exp
+++ b/gdb/testsuite/gdb.base/miscexprs.exp
@@ -44,7 +44,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [lis
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
#
diff --git a/gdb/testsuite/gdb.base/msym-bp-shl.exp b/gdb/testsuite/gdb.base/msym-bp-shl.exp
index b154ce6..41dc818 100644
--- a/gdb/testsuite/gdb.base/msym-bp-shl.exp
+++ b/gdb/testsuite/gdb.base/msym-bp-shl.exp
@@ -55,7 +55,8 @@ proc test {debug} {
return
}
- clean_restart $bin
+ clean_restart
+ gdb_load $bin
gdb_load_shlib $lib
# Should find two locations: the static foo in the
diff --git a/gdb/testsuite/gdb.base/multi-forks.exp b/gdb/testsuite/gdb.base/multi-forks.exp
index 3facccb..5d2d220 100644
--- a/gdb/testsuite/gdb.base/multi-forks.exp
+++ b/gdb/testsuite/gdb.base/multi-forks.exp
@@ -28,7 +28,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $fla
# Start with a fresh gdb
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
global gdb_prompt
@@ -103,7 +104,8 @@ proc continue_to_exit_bp_loc {} {
# parent's branch.
foreach mode { "child" "parent" } {
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
runto_main
gdb_test_no_output "set follow-fork $mode"
@@ -135,7 +137,8 @@ foreach mode { "child" "parent" } {
# Start with a fresh gdb
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
runto_main
gdb_breakpoint $exit_bp_loc
diff --git a/gdb/testsuite/gdb.base/nodebug.exp b/gdb/testsuite/gdb.base/nodebug.exp
index 2d0a5a9..b839317 100644
--- a/gdb/testsuite/gdb.base/nodebug.exp
+++ b/gdb/testsuite/gdb.base/nodebug.exp
@@ -33,7 +33,8 @@ if { [gdb_compile $srcdir/$subdir/$srcfile $binfile executable $exec_opts] != "
# Start with a fresh gdb.
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
# Run to FUNC and unload symbols from system shared libraries, to
# avoid conflicts with the minsyms in the program. E.g.,
diff --git a/gdb/testsuite/gdb.base/nofield.exp b/gdb/testsuite/gdb.base/nofield.exp
index 2e88725..31d0234 100644
--- a/gdb/testsuite/gdb.base/nofield.exp
+++ b/gdb/testsuite/gdb.base/nofield.exp
@@ -23,7 +23,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debu
set eol "\r\n"
set sp "\[ \t\]*"
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
gdb_test "ptype struct not_empty" \
"type = struct not_empty {$eol${sp}void \\*e;$eol${sp}void \\*u;$eol}"
diff --git a/gdb/testsuite/gdb.base/nostdlib.exp b/gdb/testsuite/gdb.base/nostdlib.exp
index ecf09a8..8dcefcf 100644
--- a/gdb/testsuite/gdb.base/nostdlib.exp
+++ b/gdb/testsuite/gdb.base/nostdlib.exp
@@ -49,7 +49,8 @@ foreach_with_prefix pie { "nopie" "pie" } {
return -1
}
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
gdb_breakpoint "*marker"
diff --git a/gdb/testsuite/gdb.base/options.exp b/gdb/testsuite/gdb.base/options.exp
index a0947e2..8ac9f4e 100644
--- a/gdb/testsuite/gdb.base/options.exp
+++ b/gdb/testsuite/gdb.base/options.exp
@@ -205,7 +205,8 @@ proc_with_prefix test-print {{prefix ""}} {
}
global binfile
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
if ![runto_main] {
return
@@ -317,7 +318,8 @@ proc_with_prefix test-backtrace {} {
"backtrace no-filters"
global binfile
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
if ![runto_main] {
return
diff --git a/gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.exp b/gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.exp
index a831050..d60a0ea 100644
--- a/gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.exp
+++ b/gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.exp
@@ -31,7 +31,8 @@ proc test_ctrlc_while_target_running_does_not_paginate {} {
set testline [gdb_get_line_number "after sleep"]
with_test_prefix "ctrlc target running" {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.base/paginate-bg-execution.exp b/gdb/testsuite/gdb.base/paginate-bg-execution.exp
index dfd7823..40f98fc 100644
--- a/gdb/testsuite/gdb.base/paginate-bg-execution.exp
+++ b/gdb/testsuite/gdb.base/paginate-bg-execution.exp
@@ -30,7 +30,8 @@ proc test_bg_execution_pagination_return {} {
global decimal
with_test_prefix "paginate" {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.base/paginate-inferior-exit.exp b/gdb/testsuite/gdb.base/paginate-inferior-exit.exp
index 76176e2..6cc992b 100644
--- a/gdb/testsuite/gdb.base/paginate-inferior-exit.exp
+++ b/gdb/testsuite/gdb.base/paginate-inferior-exit.exp
@@ -29,7 +29,8 @@ proc test_paginate_inferior_exited {} {
global inferior_exited_re
with_test_prefix "paginate" {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.base/patch.exp b/gdb/testsuite/gdb.base/patch.exp
index 69e5581..f6abc59 100644
--- a/gdb/testsuite/gdb.base/patch.exp
+++ b/gdb/testsuite/gdb.base/patch.exp
@@ -34,7 +34,8 @@ with_test_prefix "exec" {
gdb_test "p extern_global = 2" " = 2" "modify value"
gdb_test "p extern_global" " = 2" "value modified"
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
gdb_test "p extern_global" " = 2" "value modified persisted"
}
@@ -43,7 +44,8 @@ with_test_prefix "exec" {
# Generate a core file.
with_test_prefix "gcore" {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.base/pc-not-saved.exp b/gdb/testsuite/gdb.base/pc-not-saved.exp
index 16e11bc..e761e93 100644
--- a/gdb/testsuite/gdb.base/pc-not-saved.exp
+++ b/gdb/testsuite/gdb.base/pc-not-saved.exp
@@ -60,7 +60,8 @@ gdb_assert { ![string equal $pc unknown] } \
"check we read the frame's PC"
# Restart and load the Python unwinder script.
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
gdb_test_no_output "source ${remote_python_file}" "load python file"
# Tell the Python unwinder to use the frame-id we cached above.
diff --git a/gdb/testsuite/gdb.base/pie-fork.exp b/gdb/testsuite/gdb.base/pie-fork.exp
index 86407b4..9d232c8 100644
--- a/gdb/testsuite/gdb.base/pie-fork.exp
+++ b/gdb/testsuite/gdb.base/pie-fork.exp
@@ -29,7 +29,8 @@ if [build_executable "failed to prepare" $testfile $srcfile $opts] {
proc setup_test {detach_on_fork {follow_fork_mode "parent"}} {
global binfile
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
if ![runto_main] {
return
diff --git a/gdb/testsuite/gdb.base/pointers.exp b/gdb/testsuite/gdb.base/pointers.exp
index ab02181..4d4d58e 100644
--- a/gdb/testsuite/gdb.base/pointers.exp
+++ b/gdb/testsuite/gdb.base/pointers.exp
@@ -32,7 +32,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
#
diff --git a/gdb/testsuite/gdb.base/pr11022.exp b/gdb/testsuite/gdb.base/pr11022.exp
index e7bfba0..70a7d8b 100644
--- a/gdb/testsuite/gdb.base/pr11022.exp
+++ b/gdb/testsuite/gdb.base/pr11022.exp
@@ -24,7 +24,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
# Start with a fresh gdb.
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.base/print-symbol-loading.exp b/gdb/testsuite/gdb.base/print-symbol-loading.exp
index c9e2480..91e818b 100644
--- a/gdb/testsuite/gdb.base/print-symbol-loading.exp
+++ b/gdb/testsuite/gdb.base/print-symbol-loading.exp
@@ -35,7 +35,8 @@ if { [gdb_compile ${objfile} ${binfile} executable $opts] != "" } {
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
gdb_load_shlib ${binfile_lib}
if ![runto lib] {
@@ -94,7 +95,8 @@ proc test_load_shlib { print_symbol_loading } {
global binfile
global gdb_prompt
with_test_prefix "shlib ${print_symbol_loading}" {
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
if ![runto_main] {
return -1
}
diff --git a/gdb/testsuite/gdb.base/prologue.exp b/gdb/testsuite/gdb.base/prologue.exp
index 0d3902d..736e779 100644
--- a/gdb/testsuite/gdb.base/prologue.exp
+++ b/gdb/testsuite/gdb.base/prologue.exp
@@ -23,7 +23,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.base/ptr-typedef.exp b/gdb/testsuite/gdb.base/ptr-typedef.exp
index 53d03cc..8bffb26 100644
--- a/gdb/testsuite/gdb.base/ptr-typedef.exp
+++ b/gdb/testsuite/gdb.base/ptr-typedef.exp
@@ -22,7 +22,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
# Get things started.
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if ![runto marker1] {
untested "couldn't run to marker1"
diff --git a/gdb/testsuite/gdb.base/ptype.exp b/gdb/testsuite/gdb.base/ptype.exp
index 6971f4c..04d2d2b 100644
--- a/gdb/testsuite/gdb.base/ptype.exp
+++ b/gdb/testsuite/gdb.base/ptype.exp
@@ -528,11 +528,10 @@ proc ptype_maybe_prototyped { id prototyped plain { overprototyped "NO-MATCH" }
# Turn the arguments, which are literal strings, into
# regular expressions by quoting any special characters they contain.
foreach var { prototyped plain overprototyped } {
- eval "set val \$$var"
- regsub -all "\[\]\[*()\]" $val "\\\\&" val
+ set val [string_to_regexp [set $var]]
regsub -all "short int" $val "short( int)?" val
regsub -all "long int" $val "long( int)?" val
- eval "set $var \$val"
+ set $var $val
}
gdb_test_multiple "ptype $id" "ptype $id" {
diff --git a/gdb/testsuite/gdb.base/quit-live.exp b/gdb/testsuite/gdb.base/quit-live.exp
index a95c980..46579d4 100644
--- a/gdb/testsuite/gdb.base/quit-live.exp
+++ b/gdb/testsuite/gdb.base/quit-live.exp
@@ -95,7 +95,8 @@ proc quit_with_live_inferior {appear_how extra_inferior quit_how} {
set test_spawn_id ""
if {$appear_how != "attach-nofile"} {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
} else {
clean_restart
}
diff --git a/gdb/testsuite/gdb.base/random-signal.exp b/gdb/testsuite/gdb.base/random-signal.exp
index bb5b482..16f9467 100644
--- a/gdb/testsuite/gdb.base/random-signal.exp
+++ b/gdb/testsuite/gdb.base/random-signal.exp
@@ -49,7 +49,8 @@ proc do_test {} {
# while gdb is processing the internal software watchtpoint
# single-step. With remote debugging, the ctrl-c reaches GDB first.
with_test_prefix "run" {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
if {![runto_main]} {
return -1
@@ -62,7 +63,8 @@ with_test_prefix "run" {
# reaches GDB first. Test that as well.
with_test_prefix "attach" {
if {[can_spawn_for_attach]} {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
set test_spawn_id [spawn_wait_for_attach $binfile]
set testpid [spawn_id_get_pid $test_spawn_id]
diff --git a/gdb/testsuite/gdb.base/readline-ask.exp b/gdb/testsuite/gdb.base/readline-ask.exp
index 3f98e13..0fdfc76 100644
--- a/gdb/testsuite/gdb.base/readline-ask.exp
+++ b/gdb/testsuite/gdb.base/readline-ask.exp
@@ -13,6 +13,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+require {!is_remote host}
+
standard_testfile .c
set inputrc ${srcdir}/${subdir}/${testfile}.inputrc
@@ -25,7 +27,8 @@ setenv TERM dumb
# INPUTRC gets reset for the next testfile.
setenv INPUTRC $inputrc
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if { ![readline_is_used] } {
unsupported "completion doesn't work when readline isn't used."
diff --git a/gdb/testsuite/gdb.base/readline-commands-eof.exp b/gdb/testsuite/gdb.base/readline-commands-eof.exp
index 021e40f..d55dd1d 100644
--- a/gdb/testsuite/gdb.base/readline-commands-eof.exp
+++ b/gdb/testsuite/gdb.base/readline-commands-eof.exp
@@ -43,7 +43,8 @@ if { ![readline_supports_eof_flag] } {
# arrived. If it is then GDB will start displaying extra blank lines
# after each line of input.
proc run_test {} {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
gdb_breakpoint main
diff --git a/gdb/testsuite/gdb.base/readline.exp b/gdb/testsuite/gdb.base/readline.exp
index 198d686..9b87790 100644
--- a/gdb/testsuite/gdb.base/readline.exp
+++ b/gdb/testsuite/gdb.base/readline.exp
@@ -21,6 +21,8 @@
# Tests for readline operations.
#
+require {!is_remote host}
+
# This function is used to test operate-and-get-next.
# NAME is the name of the test.
# ARGS is a list of alternating commands and expected results.
diff --git a/gdb/testsuite/gdb.base/readnever.exp b/gdb/testsuite/gdb.base/readnever.exp
index 6dfd576..891adf5 100644
--- a/gdb/testsuite/gdb.base/readnever.exp
+++ b/gdb/testsuite/gdb.base/readnever.exp
@@ -26,7 +26,7 @@ if { [build_executable "failed to build" $testfile $srcfile { debug }] == -1 } {
save_vars { GDBFLAGS } {
append GDBFLAGS " --readnever"
- if { [clean_restart ${binfile}] == -1 } {
+ if { [clean_restart $testfile] == -1 } {
return -1
}
}
diff --git a/gdb/testsuite/gdb.base/relativedebug.exp b/gdb/testsuite/gdb.base/relativedebug.exp
index d713771..2465ffd 100644
--- a/gdb/testsuite/gdb.base/relativedebug.exp
+++ b/gdb/testsuite/gdb.base/relativedebug.exp
@@ -24,7 +24,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
# Get things started.
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
runto_main
diff --git a/gdb/testsuite/gdb.base/remote-exec-file.exp b/gdb/testsuite/gdb.base/remote-exec-file.exp
index b735281..baaf039 100644
--- a/gdb/testsuite/gdb.base/remote-exec-file.exp
+++ b/gdb/testsuite/gdb.base/remote-exec-file.exp
@@ -37,10 +37,13 @@ with_test_prefix "set inf 2" {
with_test_prefix "show inf 1" {
gdb_test "inferior 1" "Switching to inferior 1.*"
- gdb_test "show remote exec-file" "prog1"
+ gdb_test "show remote exec-file" \
+ "The remote exec-file is \"prog1\"\\."
+
}
with_test_prefix "show inf 2" {
gdb_test "inferior 2" "Switching to inferior 2.*"
- gdb_test "show remote exec-file" "prog2"
+ gdb_test "show remote exec-file" \
+ "The remote exec-file is \"prog2\"\\."
}
diff --git a/gdb/testsuite/gdb.base/remote.exp b/gdb/testsuite/gdb.base/remote.exp
index 9917faf..c1d6a99 100644
--- a/gdb/testsuite/gdb.base/remote.exp
+++ b/gdb/testsuite/gdb.base/remote.exp
@@ -164,7 +164,8 @@ gdb_load_timed $binfile "limit" 0
# Get the size of random_data table (defaults to 48K).
set sizeof_random_data [get_sizeof "random_data" 48*1024]
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
#
# Part THREE: Check the upload behavior.
diff --git a/gdb/testsuite/gdb.base/reread.exp b/gdb/testsuite/gdb.base/reread.exp
index 7e7d2c8..6c71f40 100644
--- a/gdb/testsuite/gdb.base/reread.exp
+++ b/gdb/testsuite/gdb.base/reread.exp
@@ -106,7 +106,8 @@ foreach_with_prefix opts { "" "pie" } {
gdb_rename_execfile ${binfile1} ${binfile}
# Restart GDB entirely.
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
# Set a breakpoint on foo and run to it.
gdb_test "break foo" \
diff --git a/gdb/testsuite/gdb.base/reset-catchpoint-cond.exp b/gdb/testsuite/gdb.base/reset-catchpoint-cond.exp
index 062dc63..852576a 100644
--- a/gdb/testsuite/gdb.base/reset-catchpoint-cond.exp
+++ b/gdb/testsuite/gdb.base/reset-catchpoint-cond.exp
@@ -75,7 +75,8 @@ proc run_test { mode } {
return
}
- clean_restart $exec_name
+ clean_restart
+ gdb_load $exec_name
gdb_load_shlib $::libfile
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.base/restore.exp b/gdb/testsuite/gdb.base/restore.exp
index 9724032..5448fb4 100644
--- a/gdb/testsuite/gdb.base/restore.exp
+++ b/gdb/testsuite/gdb.base/restore.exp
@@ -96,7 +96,8 @@ restore_tests
set timeout $prev_timeout
# Test PR cli/23785
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
if { ![runto_main] } {
return -1
}
diff --git a/gdb/testsuite/gdb.base/return2.exp b/gdb/testsuite/gdb.base/return2.exp
index b657c11..e90a60b 100644
--- a/gdb/testsuite/gdb.base/return2.exp
+++ b/gdb/testsuite/gdb.base/return2.exp
@@ -103,7 +103,8 @@ proc return2_tests { } {
# Start with a fresh gdb.
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
set timeout 30
return2_tests
diff --git a/gdb/testsuite/gdb.base/rtld-step.exp b/gdb/testsuite/gdb.base/rtld-step.exp
index 242cd47..d1e240b 100644
--- a/gdb/testsuite/gdb.base/rtld-step.exp
+++ b/gdb/testsuite/gdb.base/rtld-step.exp
@@ -114,7 +114,8 @@ if { [gdb_compile ${srcfile_main} ${binfile_main} executable $main_flags] != ""
return -1
}
-clean_restart ${binfile_main}
+clean_restart
+gdb_load $binfile_main
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.base/run-attach-while-running.exp b/gdb/testsuite/gdb.base/run-attach-while-running.exp
index ae1388d..7b40a5f 100644
--- a/gdb/testsuite/gdb.base/run-attach-while-running.exp
+++ b/gdb/testsuite/gdb.base/run-attach-while-running.exp
@@ -60,7 +60,8 @@ proc_with_prefix test { non-stop threaded run-or-attach } {
set ::GDBFLAGS "$::GDBFLAGS -ex \"maint set target-non-stop on\""
}
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
}
if { ![runto_main] } {
diff --git a/gdb/testsuite/gdb.base/run-control-while-bg-execution.exp b/gdb/testsuite/gdb.base/run-control-while-bg-execution.exp
index eaee010..2c75d06 100644
--- a/gdb/testsuite/gdb.base/run-control-while-bg-execution.exp
+++ b/gdb/testsuite/gdb.base/run-control-while-bg-execution.exp
@@ -56,7 +56,8 @@ proc do_test { action1 action2 } {
save_vars { ::GDBFLAGS } {
append ::GDBFLAGS " -ex \"maintenance set target-non-stop on\""
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
}
# Ensure we are at least after the getpid call, should we need it.
diff --git a/gdb/testsuite/gdb.base/run-fail-twice.exp b/gdb/testsuite/gdb.base/run-fail-twice.exp
index af8c61b..07cbdda 100644
--- a/gdb/testsuite/gdb.base/run-fail-twice.exp
+++ b/gdb/testsuite/gdb.base/run-fail-twice.exp
@@ -43,7 +43,8 @@ proc test_run {testname} {
proc_with_prefix test {} {
global gdb_prompt binfile
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
gdb_test_no_output "set confirm off"
diff --git a/gdb/testsuite/gdb.base/savedregs.exp b/gdb/testsuite/gdb.base/savedregs.exp
index 2c44566..d71d872 100644
--- a/gdb/testsuite/gdb.base/savedregs.exp
+++ b/gdb/testsuite/gdb.base/savedregs.exp
@@ -35,7 +35,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
}
# get things started
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
# Advance to main
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.base/sep.exp b/gdb/testsuite/gdb.base/sep.exp
index 5a1e077..6abf356 100644
--- a/gdb/testsuite/gdb.base/sep.exp
+++ b/gdb/testsuite/gdb.base/sep.exp
@@ -26,7 +26,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
set location [gdb_get_line_number "say_hello" "sep-proc.c"]
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
# Try to display the source code inside a file which is included by
# another source file. The purpose of this test is to verify that
@@ -45,7 +46,8 @@ gdb_test "list sep-proc.c:$location" \
# Try the same, but this time with a breakpoint. We need to exit
# GDB to make sure that we havn't loaded the full symbols yet when
# we test the breakpoint insertion.
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
set test "breakpoint inside included file"
gdb_test_multiple "break sep-proc.c:$location" "$test" {
diff --git a/gdb/testsuite/gdb.base/sepsymtab.exp b/gdb/testsuite/gdb.base/sepsymtab.exp
index f5e8705..ed7a7a2 100644
--- a/gdb/testsuite/gdb.base/sepsymtab.exp
+++ b/gdb/testsuite/gdb.base/sepsymtab.exp
@@ -31,7 +31,8 @@ if [gdb_gnu_strip_debug $binfile no-main] {
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
set command "info sym main"
set command_regex [string_to_regexp $command]
diff --git a/gdb/testsuite/gdb.base/set-cwd.exp b/gdb/testsuite/gdb.base/set-cwd.exp
index 72a2632..73a200f 100644
--- a/gdb/testsuite/gdb.base/set-cwd.exp
+++ b/gdb/testsuite/gdb.base/set-cwd.exp
@@ -184,7 +184,9 @@ proc_with_prefix test_cwd_reset { } {
}
test_cd_into_dir
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
test_tilde_expansion
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
test_cwd_reset
diff --git a/gdb/testsuite/gdb.base/set-inferior-tty.exp b/gdb/testsuite/gdb.base/set-inferior-tty.exp
index 64ec57b..c9b0a96 100644
--- a/gdb/testsuite/gdb.base/set-inferior-tty.exp
+++ b/gdb/testsuite/gdb.base/set-inferior-tty.exp
@@ -24,7 +24,8 @@ if {[build_executable $testfile.exp $testfile ${srcfile} ${compile_options}] ==
proc test_set_inferior_tty { command } {
global binfile
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
gdb_test_no_output "$command hello" "set inferior-tty to hello"
gdb_test "show inferior-tty" \
diff --git a/gdb/testsuite/gdb.base/setshow.exp b/gdb/testsuite/gdb.base/setshow.exp
index 79ff913..0e38a9d 100644
--- a/gdb/testsuite/gdb.base/setshow.exp
+++ b/gdb/testsuite/gdb.base/setshow.exp
@@ -29,7 +29,8 @@ if { [gdb_compile ${srcdir}/${subdir}/${srcfile} ${binfile} executable {debug}]
proc_with_prefix test_setshow_annotate {} {
# Start with a fresh gdb
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
if {![runto_main]} {
return
@@ -78,7 +79,8 @@ proc_with_prefix test_setshow_annotate {} {
}
proc_with_prefix test_setshow_args {} {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.base/settings.exp b/gdb/testsuite/gdb.base/settings.exp
index 5e7cc24..d83023b 100644
--- a/gdb/testsuite/gdb.base/settings.exp
+++ b/gdb/testsuite/gdb.base/settings.exp
@@ -531,7 +531,8 @@ proc test-string {variant} {
global srcfile binfile
# Load symbols for the completion test below.
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
# Use these variables to make sure we don't call the wrong command
# by mistake.
diff --git a/gdb/testsuite/gdb.base/share-env-with-gdbserver.exp b/gdb/testsuite/gdb.base/share-env-with-gdbserver.exp
index 920f435..aa4b300 100644
--- a/gdb/testsuite/gdb.base/share-env-with-gdbserver.exp
+++ b/gdb/testsuite/gdb.base/share-env-with-gdbserver.exp
@@ -91,7 +91,8 @@ proc do_prepare_inferior { } {
proc do_test { var_value { var_name "" } { var_name_match "" } { var_value_match "" } } {
global binfile test_var_name
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
if { $var_name == "" } {
set var_name $test_var_name
@@ -146,7 +147,8 @@ with_test_prefix "strange named var" {
proc test_set_unset_vars { } {
global binfile
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
with_test_prefix "set 3 environment variables" {
# Set some environment variables
@@ -205,7 +207,8 @@ with_test_prefix "test set/unset of vars" {
proc test_unset { } {
global hex decimal binfile gdb_prompt
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
do_prepare_inferior
@@ -234,7 +237,8 @@ proc test_unset { } {
}
with_test_prefix "set-then-unset" {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
# Test if setting and then unsetting $HOME works.
gdb_test_no_output "set environment HOME = test" "set HOME as test"
diff --git a/gdb/testsuite/gdb.base/shlib-call.exp b/gdb/testsuite/gdb.base/shlib-call.exp
index 6a5f6d8..d3ff1c3 100644
--- a/gdb/testsuite/gdb.base/shlib-call.exp
+++ b/gdb/testsuite/gdb.base/shlib-call.exp
@@ -59,7 +59,8 @@ if { [gdb_compile_shlib ${lib1src} ${lib1} $lib_opts] != ""
# Start with a fresh gdb.
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
gdb_load_shlib $lib1
gdb_load_shlib $lib2
@@ -161,7 +162,8 @@ gdb_test "step" "mainshr1 \\(g=4\\) at.*return 2.g;" \
# Start with a fresh gdb.
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
# PR's 16495, 18213
# test that we can re-set breakpoints in shared libraries
diff --git a/gdb/testsuite/gdb.base/shlib-unload.exp b/gdb/testsuite/gdb.base/shlib-unload.exp
index 9d47416..0e1369e 100644
--- a/gdb/testsuite/gdb.base/shlib-unload.exp
+++ b/gdb/testsuite/gdb.base/shlib-unload.exp
@@ -69,7 +69,8 @@ proc_with_prefix test_bp_modified_events {} {
return
}
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
if {![runto_main]} {
return
@@ -114,7 +115,8 @@ proc_with_prefix test_bp_modified_events {} {
# Check that GDB disables dprintf breakpoints within a shared library
# when the shared library is unloaded.
proc_with_prefix test_dprintf_after_unload {} {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
if {![runto_main]} {
return
@@ -143,7 +145,8 @@ proc_with_prefix test_dprintf_after_unload {} {
# inferior. We should not get an error about re-setting the dprintf
# breakpoint.
proc_with_prefix test_dprintf_with_rerun {} {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
if {![runto_main]} {
return
@@ -238,7 +241,8 @@ proc_with_prefix test_silent_nosharedlib {} {
}
foreach_with_prefix type { breakpoint dprintf } {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.base/shreloc.exp b/gdb/testsuite/gdb.base/shreloc.exp
index 8ab64a8..2bd79af 100644
--- a/gdb/testsuite/gdb.base/shreloc.exp
+++ b/gdb/testsuite/gdb.base/shreloc.exp
@@ -65,7 +65,8 @@ if { [gdb_compile_shlib $lib1src $lib1_sl $lib_opts] != ""} {
# Start with a fresh gdb.
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
gdb_load_shlib $lib1_sl
gdb_load_shlib $lib2_sl
diff --git a/gdb/testsuite/gdb.base/sigaltstack.exp b/gdb/testsuite/gdb.base/sigaltstack.exp
index 978ddeb..47013a0 100644
--- a/gdb/testsuite/gdb.base/sigaltstack.exp
+++ b/gdb/testsuite/gdb.base/sigaltstack.exp
@@ -33,7 +33,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
}
# get things started
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
# Pass all the alarms straight through (but verbosely)
gdb_test "handle SIGALRM print pass nostop"
diff --git a/gdb/testsuite/gdb.base/sigchld.exp b/gdb/testsuite/gdb.base/sigchld.exp
index 51d41c3..4011241 100644
--- a/gdb/testsuite/gdb.base/sigchld.exp
+++ b/gdb/testsuite/gdb.base/sigchld.exp
@@ -24,7 +24,8 @@ if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
runto_main
diff --git a/gdb/testsuite/gdb.base/siginfo-obj.exp b/gdb/testsuite/gdb.base/siginfo-obj.exp
index d63febb..52f7140 100644
--- a/gdb/testsuite/gdb.base/siginfo-obj.exp
+++ b/gdb/testsuite/gdb.base/siginfo-obj.exp
@@ -118,7 +118,8 @@ with_test_prefix "validate modified siginfo fields" {
# Test siginfo preservation in core files.
if {$gcore_created} {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
gdb_test "core $gcorefile" "Core was generated by.*" \
"core [file tail $gcorefile]"
diff --git a/gdb/testsuite/gdb.base/siginfo-thread.exp b/gdb/testsuite/gdb.base/siginfo-thread.exp
index bf0d58c..270b4e1 100644
--- a/gdb/testsuite/gdb.base/siginfo-thread.exp
+++ b/gdb/testsuite/gdb.base/siginfo-thread.exp
@@ -27,7 +27,8 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" \
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
# Advance to main
if {![runto_main]} {
@@ -92,7 +93,8 @@ gdb_test "p \$_siginfo.si_signo == $ssi_signo" " = 0" \
# Test siginfo preservation in core files.
if {$gcore_created} {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
gdb_test "core $gcorefile" "Core was generated by.*" \
"core [file tail $gcorefile]"
diff --git a/gdb/testsuite/gdb.base/signals-state-child.exp b/gdb/testsuite/gdb.base/signals-state-child.exp
index 608951f..00ad7f5 100644
--- a/gdb/testsuite/gdb.base/signals-state-child.exp
+++ b/gdb/testsuite/gdb.base/signals-state-child.exp
@@ -97,7 +97,8 @@ remote_close target
# Now run the program through gdb, and dump its initial signal actions
# and mask in "gdb.txt".
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
if {![runto_main]} {
return -1
diff --git a/gdb/testsuite/gdb.base/signals.exp b/gdb/testsuite/gdb.base/signals.exp
index d311361..5ff1e38 100644
--- a/gdb/testsuite/gdb.base/signals.exp
+++ b/gdb/testsuite/gdb.base/signals.exp
@@ -58,7 +58,8 @@ proc test_handle_all_print {} {
}
test_handle_all_print
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
if {[runto_main]} {
diff --git a/gdb/testsuite/gdb.base/signull.exp b/gdb/testsuite/gdb.base/signull.exp
index 478e471..9ad772f 100644
--- a/gdb/testsuite/gdb.base/signull.exp
+++ b/gdb/testsuite/gdb.base/signull.exp
@@ -37,7 +37,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debu
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
#
# Run to `main' where we begin our tests.
diff --git a/gdb/testsuite/gdb.base/sigrepeat.exp b/gdb/testsuite/gdb.base/sigrepeat.exp
index 9afa346..8fa92af 100644
--- a/gdb/testsuite/gdb.base/sigrepeat.exp
+++ b/gdb/testsuite/gdb.base/sigrepeat.exp
@@ -30,7 +30,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
}
# get things started
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
# Advance to main
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.base/sigstep.exp b/gdb/testsuite/gdb.base/sigstep.exp
index b49105c..2df5dd0 100644
--- a/gdb/testsuite/gdb.base/sigstep.exp
+++ b/gdb/testsuite/gdb.base/sigstep.exp
@@ -40,7 +40,8 @@ set other_handler_location [gdb_get_line_number "other handler location"]
proc restart {} {
global binfile
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
gdb_test "display/i \$pc"
diff --git a/gdb/testsuite/gdb.base/skip.exp b/gdb/testsuite/gdb.base/skip.exp
index 016e5eb..0c84cf9 100644
--- a/gdb/testsuite/gdb.base/skip.exp
+++ b/gdb/testsuite/gdb.base/skip.exp
@@ -309,7 +309,8 @@ with_test_prefix "step using -fi + -fu" {
with_test_prefix "skip delete completion" {
global binfile
- clean_restart "${binfile}"
+ clean_restart
+ gdb_load $binfile
if ![runto_main] {
return
}
diff --git a/gdb/testsuite/gdb.base/so-impl-ld.exp b/gdb/testsuite/gdb.base/so-impl-ld.exp
index d5c4143..1e309e5 100644
--- a/gdb/testsuite/gdb.base/so-impl-ld.exp
+++ b/gdb/testsuite/gdb.base/so-impl-ld.exp
@@ -33,7 +33,8 @@ if { [gdb_compile_shlib $libsrc $lib_sl $lib_opts] != ""
# Start with a fresh gdb
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
gdb_load_shlib $lib_sl
# This program implicitly loads SOM shared libraries.
diff --git a/gdb/testsuite/gdb.base/solib-abort.exp b/gdb/testsuite/gdb.base/solib-abort.exp
index 2f6d636..ab162a9 100644
--- a/gdb/testsuite/gdb.base/solib-abort.exp
+++ b/gdb/testsuite/gdb.base/solib-abort.exp
@@ -38,7 +38,8 @@ if { [gdb_compile_shlib ${srcfile_lib} ${binfile_lib} $lib_flags] != ""
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.base/solib-disc.exp b/gdb/testsuite/gdb.base/solib-disc.exp
index ba7dcce..880f632 100644
--- a/gdb/testsuite/gdb.base/solib-disc.exp
+++ b/gdb/testsuite/gdb.base/solib-disc.exp
@@ -44,7 +44,8 @@ if { [gdb_compile_shlib $libsrc $libobj {debug}] != ""
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
gdb_load_shlib $libobj
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.base/solib-symbol.exp b/gdb/testsuite/gdb.base/solib-symbol.exp
index f3ca612..4d3494c 100644
--- a/gdb/testsuite/gdb.base/solib-symbol.exp
+++ b/gdb/testsuite/gdb.base/solib-symbol.exp
@@ -34,7 +34,8 @@ if { [gdb_compile_shlib ${srcfile_lib} ${binfile_lib} $lib_flags] != ""
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
gdb_load_shlib $binfile_lib
# Set a breakpoint in the binary.
diff --git a/gdb/testsuite/gdb.base/solib-weak.exp b/gdb/testsuite/gdb.base/solib-weak.exp
index 2d75a91..511ef37 100644
--- a/gdb/testsuite/gdb.base/solib-weak.exp
+++ b/gdb/testsuite/gdb.base/solib-weak.exp
@@ -84,7 +84,8 @@ proc do_test { lib1opts lib2opts lib1first } {
}
with_test_prefix $testopts {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
gdb_load_shlib $lib1
gdb_load_shlib $lib2
diff --git a/gdb/testsuite/gdb.base/source-dir.exp b/gdb/testsuite/gdb.base/source-dir.exp
index b2bf78c..e07a117 100644
--- a/gdb/testsuite/gdb.base/source-dir.exp
+++ b/gdb/testsuite/gdb.base/source-dir.exp
@@ -62,7 +62,7 @@ proc test_truncated_comp_dir {} {
# /some/path/to/gdb/build/testsuite/
# We are going to copy the source file out of the source tree into
# a location like this:
- # /some/path/to/gdb/build/testsuite/output/gdb.base/soure-dir/
+ # /some/path/to/gdb/build/testsuite/output/gdb.base/source-dir/
#
# We will then switch to this directory and compile the source
# file, however, we will ask GCC to remove this prefix from the
@@ -87,11 +87,12 @@ proc test_truncated_comp_dir {} {
return
}
- set working_dir [standard_output_file ""]
+ set working_dir [build_standard_output_file ""]
with_cwd $working_dir {
- set strip_dir [file normalize "${working_dir}/../.."]
+ set strip_dir [build_file_normalize "${working_dir}/../.."]
+ set h_strip_dir [host_file_normalize $strip_dir]
- set new_srcfile [standard_output_file ${srcfile}]
+ set new_srcfile [build_standard_output_file ${srcfile}]
set fd [open "$new_srcfile" w]
puts $fd "int
main ()
@@ -100,8 +101,17 @@ proc test_truncated_comp_dir {} {
}"
close $fd
+ # We ask GCC to remove both the build and host views of the
+ # path, because we don't know which one GCC uses. E.g., we're
+ # testing on MSYS2 with an MSYS2 cross-compiler that targets
+ # MinGW, then the path GCC uses is a Unix path. If OTOH we're
+ # testing on MSYS2 with a native Windows compiler, then the
+ # path GCC uses is a Windows path.
set options \
- "debug additional_flags=-fdebug-prefix-map=${strip_dir}="
+ [list \
+ "debug" \
+ "additional_flags=-fdebug-prefix-map=${strip_dir}=" \
+ "additional_flags=-fdebug-prefix-map=${h_strip_dir}="]
if { [gdb_compile "${srcfile}" "${binfile}" \
executable ${options}] != "" } {
untested "failed to compile"
@@ -109,7 +119,8 @@ proc test_truncated_comp_dir {} {
}
}
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
if { [ishost *-*-mingw*] } {
gdb_test_no_output "set directories \$cdir;\$cwd"
@@ -133,9 +144,9 @@ proc test_truncated_comp_dir {} {
"Does not include preprocessor macro info." ] \
"info source before setting directory search list"
- gdb_test "dir $strip_dir" \
+ gdb_test "dir $h_strip_dir" \
[search_dir_list [list \
- "$strip_dir" \
+ "$h_strip_dir" \
"\\\$cdir" \
"\\\$cwd"]] \
"setup source path search directory"
@@ -146,17 +157,23 @@ proc test_truncated_comp_dir {} {
"4\[ \t\]+return 0;" \
"5\[ \t\]+\\}" ]
- gdb_test "info source" \
- [multi_line \
- "Current source file is ${srcfile}" \
- "Compilation directory is \[^\n\r\]+" \
- "Located in ${new_srcfile}" \
- "Contains 5 lines." \
- "Source language is c." \
- "Producer is \[^\n\r\]+" \
- "\[^\n\r\]+" \
- "\[^\n\r\]+" ] \
- "info source after setting directory search list"
+ set re [multi_line \
+ "Current source file is ${srcfile}" \
+ "Compilation directory is \[^\n\r\]+" \
+ "Located in (\[^\n\r\]+)" \
+ "Contains 5 lines." \
+ "Source language is c." \
+ "Producer is \[^\n\r\]+" \
+ "\[^\n\r\]+" \
+ "\[^\n\r\]+"]
+ set test "info source after setting directory search list"
+ gdb_test_multiple "info source" $test {
+ -re -wrap "$re" {
+ set host_new_srcfile [host_file_normalize $new_srcfile]
+ set host_location [host_file_sanitize $expect_out(1,string)]
+ gdb_assert {$host_new_srcfile eq $host_location} $gdb_test_name
+ }
+ }
}
proc test_change_search_directory_with_empty_dirname {} {
diff --git a/gdb/testsuite/gdb.base/source-search.c b/gdb/testsuite/gdb.base/source-search.c
new file mode 100644
index 0000000..2320c5c
--- /dev/null
+++ b/gdb/testsuite/gdb.base/source-search.c
@@ -0,0 +1,127 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+int
+main (void)
+{
+ /* Line 21 */
+ /* Line 22 */
+ /* Line 23 */
+ /* Line 24 */
+ /* Line 25 */
+ /* Line 26 */
+ /* Line 27 */
+ /* Line 28 */
+ /* Line 29 */
+ /* Line 30 */
+ /* Line 31 */
+ /* Line 32 */
+ /* Line 33 */
+ /* Line 34 */
+ /* Line 35 */
+ /* Line 36 */
+ /* Line 37 */
+ /* Line 38 */
+ /* Line 39 */
+ /* Line 40 */
+ /* Line 41 */
+ /* Line 42 */
+ /* Line 43 */
+ /* Line 44 */
+ /* Line 45 */
+ /* Line 46 */
+ /* Line 47 */
+ /* Line 48 */
+ /* Line 49 */
+ /* Line 50 */
+ /* Line 51 */
+ /* Line 52 */
+ /* Line 53 */
+ /* Line 54 */
+ /* Line 55 */
+ /* Line 56 */
+ /* Line 57 */
+ /* Line 58 */
+ /* Line 59 */
+ /* Line 60 */
+ /* Line 61 */
+ /* Line 62 */
+ /* Line 63 */
+ /* Line 64 */
+ /* Line 65 */
+ /* Line 66 */
+ /* Line 67 */
+ /* Line 68 */
+ /* Line 69 */
+ /* Line 70 */
+ /* Line 71 */
+ /* Line 72 */
+ /* Line 73 */
+ /* Line 74 */
+ /* Line 75 */
+ /* Line 76 */
+ /* Line 77 */
+ /* Line 78 */
+ /* Line 79 */
+ /* Line 80 */
+ /* Line 81 */
+ /* Line 82 */
+ /* Line 83 */
+ /* Line 84 */
+ /* Line 85 */
+ /* Line 86 */
+ /* Line 87 */
+ /* Line 88 */
+ /* Line 89 */
+ /* Line 90 */
+ /* Line 91 */
+ /* Line 92 */
+ /* Line 93 */
+ /* Line 94 */
+ /* Line 95 */
+ /* Line 96 */
+ /* Line 97 */
+ /* Line 98 */
+ /* Line 99 */
+ /* Line 100 */
+ /* Line 101 */
+ /* Line 102 */
+ /* Line 103 */
+ /* Line 104 */
+ /* Line 105 */
+ /* Line 106 */
+ /* Line 107 */
+ /* Line 108 */
+ /* Line 109 */
+ /* Line 110 */
+ /* Line 111 */
+ /* Line 112 */
+ /* Line 113 */
+ /* Line 114 */
+ /* Line 115 */
+ /* Line 116 */
+ /* Line 117 */
+ /* Line 118 */
+ /* Line 119 */
+ /* Line 120 */
+ /* Line 121 */
+ /* Line 122 */
+ /* Line 123 */
+ /* Line 124 */
+ /* Line 125 */
+ return 0;
+} /* Last line. */
diff --git a/gdb/testsuite/gdb.base/source-search.exp b/gdb/testsuite/gdb.base/source-search.exp
new file mode 100644
index 0000000..559c500
--- /dev/null
+++ b/gdb/testsuite/gdb.base/source-search.exp
@@ -0,0 +1,106 @@
+# Copyright 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Test 'forward-search' and 'reverse-search' commands. This test
+# relies on some hard-coded line numbers relating to the source file.
+# We could switch to using gdb_get_line_number, but it doesn't feel
+# like that would add much value; just don't change the source file.
+
+standard_testfile
+
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
+ return
+}
+
+gdb_test "forward-search This testcase is part" \
+ "1\\s+/\\* This testcase is part of GDB, the GNU debugger\\." \
+ "search for first line of the file"
+
+gdb_test "forward-search This testcase is part" \
+ "Expression not found" \
+ "repeated search doesn't find the same first line"
+
+# The 'reverse-search' command starts searching from the line before
+# the last line displayed. So in this case, the reverse search starts
+# from line 0, i.e. nothing is searched.
+gdb_test "reverse-search This testcase is part" \
+ "Expression not found" \
+ "reverse search doesn't find the first line either"
+
+# List some source lines, and then perform some forward-searches. The
+# searches start from the first line after the last line displayed.
+gdb_test "list 20" ".*" \
+ "list source code ahead of a forward-search"
+gdb_test "forward-search Line 2" \
+ "25\\s+/\\* Line 25 \\*/" \
+ "first forward-search after a list"
+gdb_test "forward-search Line 2" \
+ "26\\s+/\\* Line 26 \\*/" \
+ "second forward-search after a list"
+gdb_test "forward-search Line 2" \
+ "27\\s+/\\* Line 27 \\*/" \
+ "third forward-search after a list"
+
+# Now reverse-search from where we got too.
+gdb_test "reverse-search Line 2" \
+ "26\\s+/\\* Line 26 \\*/" \
+ "first reverse-search for 'Line 2'"
+gdb_test "reverse-search Line 2" \
+ "25\\s+/\\* Line 25 \\*/" \
+ "second reverse-search for 'Line 2'"
+gdb_test "reverse-search Line 2" \
+ "24\\s+/\\* Line 24 \\*/" \
+ "third reverse-search for 'Line 2'"
+
+# List some source lines, and then perform a reverse-search. The
+# search starts frm the first line before the last line displayed.
+gdb_test "list 20" ".*" \
+ "list source code ahead of a reverse-search"
+gdb_test "reverse-search Line 2" \
+ "23\\s+/\\* Line 23 \\*/" \
+ "reverse-search after a list"
+
+# List the last lines of the file, then reverse search for the last
+# line. As reverse-search starts on the line before the last line
+# displayed, this will fail to find the last line.
+gdb_test "list 127"
+gdb_test "reverse-search Last line" \
+ "Expression not found" \
+ "reverse search for the last line fails"
+
+# List some lines from the middle of the file. Then try an invalid
+# 'list' command. Finally, check searches pick up from the middle of
+# the file where the first 'list' successfully completed.
+foreach_with_prefix search_direction { forward reverse } {
+ foreach_with_prefix bad_list { out-of-range backwards } {
+ gdb_test "list 50"
+
+ if { $bad_list eq "out-of-range" } {
+ gdb_test "list 1000" \
+ "Line number 995 out of range; \[^\r\n\]+ has 127 lines\\."
+ } else {
+ gdb_test_no_output "list 60,50"
+ }
+
+ if { $search_direction eq "forward" } {
+ set line 55
+ } else {
+ set line 53
+ }
+
+ gdb_test "${search_direction}-search Line" \
+ "$line\\s+/\\* Line $line \\*/"
+ }
+}
diff --git a/gdb/testsuite/gdb.base/stack-checking.exp b/gdb/testsuite/gdb.base/stack-checking.exp
index 5e55b43..15fc677 100644
--- a/gdb/testsuite/gdb.base/stack-checking.exp
+++ b/gdb/testsuite/gdb.base/stack-checking.exp
@@ -21,7 +21,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [con
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.base/startup-with-shell.exp b/gdb/testsuite/gdb.base/startup-with-shell.exp
index 80dfdf3..a6ebb57 100644
--- a/gdb/testsuite/gdb.base/startup-with-shell.exp
+++ b/gdb/testsuite/gdb.base/startup-with-shell.exp
@@ -22,6 +22,8 @@ require !use_gdb_stub
# (via dejagnu) yet.
require {!is_remote target}
+require {expr [have_startup_shell] != -1}
+
standard_testfile
if { [build_executable "failed to prepare" $testfile $srcfile debug] } {
@@ -40,7 +42,8 @@ run_on_host \
proc initial_setup_simple { startup_with_shell run_args } {
global hex decimal binfile unique_file
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
gdb_test_no_output "set startup-with-shell $startup_with_shell"
gdb_test_no_output "set print characters unlimited"
@@ -91,73 +94,97 @@ proc run_test_same { args re testname } {
run_test $args $re $re $testname
}
-# The regexp to match a single '\' character.
-set bs "\\\\"
-
-# Are we using 'remote' or 'extended-remote' protocol?
-set is_remote_p [gdb_protocol_is_remote]
-
-## Run the actual tests
-
-run_test "$unique_file_dir/*.unique-extension" \
- "\"$unique_file\"" \
- "\"$unique_file_dir/\\\*\.unique-extension\"" \
- "arg is glob" \
- $is_remote_p
-
-run_test_same "$unique_file_dir/\\*.unique-extension" \
- "\"$unique_file_dir/\\\*\.unique-extension\"" \
- "arg is escaped glob"
-
-save_vars { env(TEST) } {
- set env(TEST) "1234"
- run_test "\$TEST" \
- "\"1234\"" \
- "\"\\\$TEST\"" \
- "arg is shell variable" \
- $is_remote_p
+# Run the actual tests
+proc run_all_tests { { is_remote_with_split_args false } } {
+ # The regexp to match a single '\' character.
+ set bs "\\\\"
+
+ run_test "$::unique_file_dir/*.unique-extension" \
+ "\"$::unique_file\"" \
+ "\"$::unique_file_dir/\\\*\.unique-extension\"" \
+ "arg is glob" \
+ $is_remote_with_split_args
+
+ run_test_same "$::unique_file_dir/\\*.unique-extension" \
+ "\"$::unique_file_dir/\\\*\.unique-extension\"" \
+ "arg is escaped glob"
+
+ save_vars { ::env(TEST) } {
+ set ::env(TEST) "1234"
+ run_test "\$TEST" \
+ "\"1234\"" \
+ "\"\\\$TEST\"" \
+ "arg is shell variable" \
+ $is_remote_with_split_args
+
+ run_test_same "\\\$TEST" \
+ "\"\\\$TEST\"" \
+ "arg is escaped shell variable"
+ }
- run_test_same "\\\$TEST" \
- "\"\\\$TEST\"" \
- "arg is escaped shell variable"
+ run_test "\$(echo foo)" \
+ "\"foo\"" \
+ "\"\\\$\\(echo\"" \
+ "arg is parameter expansion, command execution" \
+ $is_remote_with_split_args
+
+ run_test "\$((2 + 3))" \
+ "\"5\"" \
+ "\"\\\$\\(\\(2\"" \
+ "arg is parameter expansion, expression evaluation" \
+ $is_remote_with_split_args
+
+ run_test_same "\"\\a\"" \
+ "\"${bs}${bs}a\"" \
+ "retain backslash in double quote arg"
+
+ run_test_same "'\\a'" \
+ "\"${bs}${bs}a\"" \
+ "retain backslash in single quote arg"
+
+ run_test_same "\"\\\$\"" \
+ "\"\\\$\"" \
+ "'\$' can be escaped in double quote arg"
+
+ run_test_same "'\\\$'" \
+ "\"${bs}${bs}\\\$\"" \
+ "'\$' is not escaped in single quote arg"
+
+ run_test_same "\"\\`\"" \
+ "\"\\`\"" \
+ "'`' can be escaped in double quote arg"
+
+ run_test_same "'\\`'" \
+ "\"${bs}${bs}`\"" \
+ "'`' is not escaped in single quote arg"
+
+ run_test_same "\"\\\"\"" \
+ "\"${bs}\"\"" \
+ "'\"' can be escaped in double quote arg"
+
+ run_test_same "'\\\"'" \
+ "\"${bs}${bs}${bs}\"\"" \
+ "'\"' is not escaped in single quote arg"
+
+ run_test_same "\"\\\\\"" \
+ "\"${bs}${bs}\"" \
+ "'\\' can be escaped in double quote arg"
+
+ run_test_same "'\\\\'" \
+ "\"${bs}${bs}${bs}${bs}\"" \
+ "'\\' is not escaped in single quote arg"
}
-run_test_same "\"\\a\"" \
- "\"${bs}${bs}a\"" \
- "retain backslash in double quote arg"
-
-run_test_same "'\\a'" \
- "\"${bs}${bs}a\"" \
- "retain backslash in single quote arg"
-
-run_test_same "\"\\\$\"" \
- "\"\\\$\"" \
- "'\$' can be escaped in double quote arg"
+run_all_tests
-run_test_same "'\\\$'" \
- "\"${bs}${bs}\\\$\"" \
- "'\$' is not escaped in single quote arg"
-
-run_test_same "\"\\`\"" \
- "\"\\`\"" \
- "'`' can be escaped in double quote arg"
-
-run_test_same "'\\`'" \
- "\"${bs}${bs}`\"" \
- "'`' is not escaped in single quote arg"
-
-run_test_same "\"\\\"\"" \
- "\"${bs}\"\"" \
- "'\"' can be escaped in double quote arg"
-
-run_test_same "'\\\"'" \
- "\"${bs}${bs}${bs}\"\"" \
- "'\"' is not escaped in single quote arg"
-
-run_test_same "\"\\\\\"" \
- "\"${bs}${bs}\"" \
- "'\\' can be escaped in double quote arg"
-
-run_test_same "'\\\\'" \
- "\"${bs}${bs}${bs}${bs}\"" \
- "'\\' is not escaped in single quote arg"
+# For extended-remote targets, disable the packet which passes
+# inferior arguments as a single string. This changes how the vRun
+# (extended-remote only) packet works.
+if {[target_info gdb_protocol] == "extended-remote"} {
+ with_test_prefix "single-inferior-arg disabled" {
+ save_vars { GDBFLAGS } {
+ append GDBFLAGS " -ex \"set remote single-inferior-argument-feature-packet off\""
+ run_all_tests true
+ }
+ }
+}
diff --git a/gdb/testsuite/gdb.base/step-over-no-symbols.exp b/gdb/testsuite/gdb.base/step-over-no-symbols.exp
index 2eb8efe..1a91986 100644
--- a/gdb/testsuite/gdb.base/step-over-no-symbols.exp
+++ b/gdb/testsuite/gdb.base/step-over-no-symbols.exp
@@ -47,7 +47,8 @@ proc test_step_over { displaced } {
global hex
global binfile
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
if ![runto_main] {
return -1
diff --git a/gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.exp b/gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.exp
index 2dc67ea..2dde3bb 100644
--- a/gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.exp
+++ b/gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.exp
@@ -36,7 +36,8 @@ proc test {non_stop displaced always_inserted} {
save_vars { GDBFLAGS } {
set GDBFLAGS "$GDBFLAGS -ex \"set non-stop $non_stop\""
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
}
gdb_test_no_output "set displaced-stepping $displaced"
diff --git a/gdb/testsuite/gdb.base/step-test.exp b/gdb/testsuite/gdb.base/step-test.exp
index 28eccf7..39833a3 100644
--- a/gdb/testsuite/gdb.base/step-test.exp
+++ b/gdb/testsuite/gdb.base/step-test.exp
@@ -24,7 +24,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debu
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.base/structs.exp b/gdb/testsuite/gdb.base/structs.exp
index 31a45b5..fa7f786 100644
--- a/gdb/testsuite/gdb.base/structs.exp
+++ b/gdb/testsuite/gdb.base/structs.exp
@@ -56,7 +56,7 @@ proc start_structs_test { types } {
}
set binfile [standard_output_file ${testfile}]
- if { [prepare_for_testing "failed to prepare" $binfile $srcfile $flags] } {
+ if { [prepare_for_testing "failed to prepare" $testfile $srcfile $flags] } {
return -1
}
diff --git a/gdb/testsuite/gdb.base/structs2.exp b/gdb/testsuite/gdb.base/structs2.exp
index 8ccd50d..f377022 100644
--- a/gdb/testsuite/gdb.base/structs2.exp
+++ b/gdb/testsuite/gdb.base/structs2.exp
@@ -15,7 +15,7 @@
standard_testfile .c
-if { [prepare_for_testing "failed to prepare" $binfile $srcfile {debug}] } {
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile {debug}] } {
return -1
}
diff --git a/gdb/testsuite/gdb.base/style.exp b/gdb/testsuite/gdb.base/style.exp
index a6c18d3..92b5085 100644
--- a/gdb/testsuite/gdb.base/style.exp
+++ b/gdb/testsuite/gdb.base/style.exp
@@ -13,6 +13,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+require {!is_remote host}
+
load_lib gdb-python.exp
# Test CLI output styling.
@@ -48,7 +50,7 @@ proc clean_restart_and_disable { prefix args } {
global currently_disabled_style
with_test_prefix "$prefix" {
- eval "clean_restart $args"
+ clean_restart {*}$args
if { $currently_disabled_style != "" } {
set st $currently_disabled_style
@@ -75,7 +77,7 @@ proc run_style_tests { } {
# Restart GDB with the correct TERM variable setting, this
# means that GDB will enable styling.
- clean_restart_and_disable "restart 1" ${binfile}
+ clean_restart_and_disable "restart 1" $::testfile
set readnow [readnow]
@@ -356,7 +358,7 @@ proc test_disable_disassembler_styling { } {
# Restart GDB with the correct TERM variable setting, this
# means that GDB will enable styling.
- clean_restart_and_disable "restart 3" $::binfile
+ clean_restart_and_disable "restart 3" $::testfile
set styled_hex [limited_style $::hex address]
set main [limited_style main function]
@@ -471,7 +473,7 @@ proc test_disassembler_error_handling { } {
# Restart GDB with the correct TERM variable setting, this
# means that GDB will enable styling.
- clean_restart_and_disable "restart 4" $::binfile
+ clean_restart_and_disable "restart 4" $::testfile
# Disable use of libopcodes for styling. As this function is
# only called when Python Pygments module is available, we
@@ -883,7 +885,8 @@ proc previous_line_is_ok { str } {
# prompt, the previous line disables styling as expected.
proc test_pagination_prompt_styling {} {
with_ansi_styling_terminal {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
}
if {![runto_main]} {
@@ -979,7 +982,8 @@ proc test_pagination_prompt_styling {} {
# default style once the logging file has finished.
proc test_pagination_continue_styling_1 { length } {
with_ansi_styling_terminal {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
}
set filename [string repeat "ax" $length]
@@ -1034,7 +1038,8 @@ proc test_pagination_continue_styling { } {
# Check to see if the Python styling of disassembler output is
# expected or not, this styling requires Python support in GDB, and
# the Python pygments module to be available.
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if {[allow_python_tests] && [gdb_py_module_available "pygments"]} {
set python_disassembly_styling true
} else {
diff --git a/gdb/testsuite/gdb.base/sym-file.exp b/gdb/testsuite/gdb.base/sym-file.exp
index 8197c0e..13febda 100644
--- a/gdb/testsuite/gdb.base/sym-file.exp
+++ b/gdb/testsuite/gdb.base/sym-file.exp
@@ -61,7 +61,8 @@ if {[gdb_compile_shlib $libsrc $lib_so {debug}] != ""} {
return
}
-if {[prepare_for_testing "failed to prepare" $binfile "$srcfile $srcfile2" $exec_opts]} {
+if { [prepare_for_testing "failed to prepare" $testfile "$srcfile $srcfile2" \
+ $exec_opts] } {
return
}
@@ -70,7 +71,8 @@ gdb_load_shlib ${lib_so}
proc do_test { remove_expr } {
global lib_basename lib_syms srcfile srcfile3
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.base/symtab-search-order.exp b/gdb/testsuite/gdb.base/symtab-search-order.exp
index cf0d507..34b1db0 100644
--- a/gdb/testsuite/gdb.base/symtab-search-order.exp
+++ b/gdb/testsuite/gdb.base/symtab-search-order.exp
@@ -33,7 +33,8 @@ if { [gdb_compile_shlib $lib1src $lib1 $lib_opts] != ""
# Start with a fresh gdb.
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
gdb_load_shlib $lib1
if ![runto_main] {
diff --git a/gdb/testsuite/gdb.base/testenv.exp b/gdb/testsuite/gdb.base/testenv.exp
index beb59d2..59cd33c 100644
--- a/gdb/testsuite/gdb.base/testenv.exp
+++ b/gdb/testsuite/gdb.base/testenv.exp
@@ -27,7 +27,7 @@ standard_testfile .c
# Compile binary
# and start with a fresh gdb
-if { [prepare_for_testing "failed to prepare" ${binfile} ${srcfile}] } {
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
return -1
}
@@ -90,7 +90,8 @@ proc find_env {varname} {
proc_with_prefix test_set_unset_env {} {
global binfile
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
# First test with no TEST_GDB_VAR.
with_test_prefix "test1" {
@@ -151,7 +152,8 @@ proc_with_prefix test_inherit_env_var {} {
save_vars {env(TEST_GDB_GLOBAL)} {
set env(TEST_GDB_GLOBAL) "Global environment value"
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
gdb_breakpoint $bp_line
diff --git a/gdb/testsuite/gdb.base/tls-common.exp.tcl b/gdb/testsuite/gdb.base/tls-common.exp.tcl
index 7aa7f46..fc212a9 100644
--- a/gdb/testsuite/gdb.base/tls-common.exp.tcl
+++ b/gdb/testsuite/gdb.base/tls-common.exp.tcl
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/tls-dlobj-lib.c b/gdb/testsuite/gdb.base/tls-dlobj-lib.c
index c69bab7..e82a064 100644
--- a/gdb/testsuite/gdb.base/tls-dlobj-lib.c
+++ b/gdb/testsuite/gdb.base/tls-dlobj-lib.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/tls-dlobj.c b/gdb/testsuite/gdb.base/tls-dlobj.c
index 322bdda..a93f4a7 100644
--- a/gdb/testsuite/gdb.base/tls-dlobj.c
+++ b/gdb/testsuite/gdb.base/tls-dlobj.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/tls-dlobj.exp b/gdb/testsuite/gdb.base/tls-dlobj.exp
index 02f2ff8..1509ec8 100644
--- a/gdb/testsuite/gdb.base/tls-dlobj.exp
+++ b/gdb/testsuite/gdb.base/tls-dlobj.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
@@ -56,7 +56,8 @@ proc gdb_test_with_xfail { cmd re cond} {
}
proc do_tests {force_internal_tls} {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
if ![runto_main] {
return
}
@@ -288,7 +289,8 @@ proc do_tests {force_internal_tls} {
return
}
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
set core_loaded [gdb_core_cmd $corefile "load corefile"]
if { $core_loaded == -1 } {
diff --git a/gdb/testsuite/gdb.base/tls-multiobj.c b/gdb/testsuite/gdb.base/tls-multiobj.c
index 10e67da..dd4aadb 100644
--- a/gdb/testsuite/gdb.base/tls-multiobj.c
+++ b/gdb/testsuite/gdb.base/tls-multiobj.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/tls-multiobj.exp b/gdb/testsuite/gdb.base/tls-multiobj.exp
index 97acb33..eb3721e 100644
--- a/gdb/testsuite/gdb.base/tls-multiobj.exp
+++ b/gdb/testsuite/gdb.base/tls-multiobj.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
@@ -26,7 +26,8 @@ set lib2obj [standard_output_file "${testfile}2-lib.so"]
set lib3obj [standard_output_file "${testfile}3-lib.so"]
proc do_tests {force_internal_tls {do_kfail_tls_access 0}} {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
if ![runto_main] {
return
}
@@ -128,7 +129,8 @@ proc do_tests {force_internal_tls {do_kfail_tls_access 0}} {
return
}
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
set core_loaded [gdb_core_cmd $corefile "load corefile"]
if { $core_loaded == -1 } {
diff --git a/gdb/testsuite/gdb.base/tls-multiobj1.c b/gdb/testsuite/gdb.base/tls-multiobj1.c
index 86e7222..6207173 100644
--- a/gdb/testsuite/gdb.base/tls-multiobj1.c
+++ b/gdb/testsuite/gdb.base/tls-multiobj1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/tls-multiobj2.c b/gdb/testsuite/gdb.base/tls-multiobj2.c
index cea0709..9ff8b67 100644
--- a/gdb/testsuite/gdb.base/tls-multiobj2.c
+++ b/gdb/testsuite/gdb.base/tls-multiobj2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/tls-multiobj3.c b/gdb/testsuite/gdb.base/tls-multiobj3.c
index bb0f239..3594eba0 100644
--- a/gdb/testsuite/gdb.base/tls-multiobj3.c
+++ b/gdb/testsuite/gdb.base/tls-multiobj3.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/tls-nothreads.c b/gdb/testsuite/gdb.base/tls-nothreads.c
index b3aaa33..cac20f8 100644
--- a/gdb/testsuite/gdb.base/tls-nothreads.c
+++ b/gdb/testsuite/gdb.base/tls-nothreads.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/tls-nothreads.exp b/gdb/testsuite/gdb.base/tls-nothreads.exp
index 92a5cd9..c7b1476 100644
--- a/gdb/testsuite/gdb.base/tls-nothreads.exp
+++ b/gdb/testsuite/gdb.base/tls-nothreads.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
@@ -18,7 +18,8 @@ source $srcdir/$subdir/tls-common.exp.tcl
standard_testfile
proc do_tests {force_internal_tls {do_kfail_tls_access 0}} {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
if ![runto_main] {
return
}
@@ -105,7 +106,8 @@ proc do_tests {force_internal_tls {do_kfail_tls_access 0}} {
set objcopy [gdb_find_objcopy]
set cmd "$objcopy --strip-debug ${::binfile} $binfile_stripped"
if ![catch "exec $cmd" cmd_output] {
- clean_restart $binfile_stripped
+ clean_restart
+ gdb_load $binfile_stripped
if ![runto_main] {
return
}
@@ -155,7 +157,8 @@ proc do_tests {force_internal_tls {do_kfail_tls_access 0}} {
return
}
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
set core_loaded [gdb_core_cmd $corefile "load corefile"]
if { $core_loaded == -1 } {
diff --git a/gdb/testsuite/gdb.base/twice.exp b/gdb/testsuite/gdb.base/twice.exp
index 6f49c46..995cd4d 100644
--- a/gdb/testsuite/gdb.base/twice.exp
+++ b/gdb/testsuite/gdb.base/twice.exp
@@ -32,7 +32,8 @@ if { [gdb_compile $local_srcfile "${binfile}" executable $options] != "" } {
# Start with a fresh gdb.
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
if {[runto_main]} {
# Test that GDB can still detect whether we have line numbers
diff --git a/gdb/testsuite/gdb.base/type-opaque.exp b/gdb/testsuite/gdb.base/type-opaque.exp
index da060b9..f5d8582 100644
--- a/gdb/testsuite/gdb.base/type-opaque.exp
+++ b/gdb/testsuite/gdb.base/type-opaque.exp
@@ -32,7 +32,8 @@ if { [gdb_compile_shlib $libsrc $libobj {debug}] != ""
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
gdb_load_shlib ${libobj}
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.base/unload.exp b/gdb/testsuite/gdb.base/unload.exp
index 0761f27..b2d848d 100644
--- a/gdb/testsuite/gdb.base/unload.exp
+++ b/gdb/testsuite/gdb.base/unload.exp
@@ -50,7 +50,8 @@ if { [gdb_compile_shlib $libsrc $lib_sl $lib_opts] != ""
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
gdb_load_shlib $lib_sl
gdb_load_shlib $lib_sl2
diff --git a/gdb/testsuite/gdb.base/until-trailing-insns.exp b/gdb/testsuite/gdb.base/until-trailing-insns.exp
index a3701f2..cc28adc 100644
--- a/gdb/testsuite/gdb.base/until-trailing-insns.exp
+++ b/gdb/testsuite/gdb.base/until-trailing-insns.exp
@@ -100,16 +100,16 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name until-trailing-isns.c}
- {stmt_list $L DW_FORM_sec_offset}
- {low_pc 0 addr}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name until-trailing-isns.c
+ DW_AT_stmt_list $L DW_FORM_sec_offset
+ DW_AT_low_pc 0 addr
} {
subprogram {
- {external 1 flag}
- {name main}
- {low_pc $main_start addr}
- {high_pc $main_len DW_FORM_data4}
+ DW_AT_external 1 flag
+ DW_AT_name main
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc $main_len DW_FORM_data4
}
}
}
diff --git a/gdb/testsuite/gdb.base/varargs.exp b/gdb/testsuite/gdb.base/varargs.exp
index a34a578..534971c 100644
--- a/gdb/testsuite/gdb.base/varargs.exp
+++ b/gdb/testsuite/gdb.base/varargs.exp
@@ -49,7 +49,8 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
# Start with a fresh gdb.
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
gdb_test_no_output "set print sevenbit-strings"
gdb_test_no_output "set print address off"
gdb_test_no_output "set width 0"
diff --git a/gdb/testsuite/gdb.base/watch_thread_num.exp b/gdb/testsuite/gdb.base/watch_thread_num.exp
index 4a5c1c2..e1b54c0 100644
--- a/gdb/testsuite/gdb.base/watch_thread_num.exp
+++ b/gdb/testsuite/gdb.base/watch_thread_num.exp
@@ -31,7 +31,8 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
return -1
}
-clean_restart ${binfile}
+clean_restart
+gdb_load $binfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.base/watchpoint-hw-attach.exp b/gdb/testsuite/gdb.base/watchpoint-hw-attach.exp
index fa63edb..afdb82e 100644
--- a/gdb/testsuite/gdb.base/watchpoint-hw-attach.exp
+++ b/gdb/testsuite/gdb.base/watchpoint-hw-attach.exp
@@ -35,7 +35,8 @@ gdb_test "detach" "Detaching from program: .*, process $testpid\r\n\\\[Inferior
# A clean restart is needed to force the hardware watchpoint setup
# logic to run post attach rather than post inferior launch.
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
gdb_test "attach $testpid" "Attaching to program: .*, process $testpid.*" "attach twice"
diff --git a/gdb/testsuite/gdb.base/watchpoint-running.exp b/gdb/testsuite/gdb.base/watchpoint-running.exp
index 1a5f9c3..04c4c52 100644
--- a/gdb/testsuite/gdb.base/watchpoint-running.exp
+++ b/gdb/testsuite/gdb.base/watchpoint-running.exp
@@ -43,7 +43,8 @@ proc test {stop_mode hw} {
# default.
append ::GDBFLAGS " -ex \"maint set target-non-stop on\""
}
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
}
gdb_test_no_output "set can-use-hw-watchpoints $hw"
diff --git a/gdb/testsuite/gdb.base/watchpoint-solib.exp b/gdb/testsuite/gdb.base/watchpoint-solib.exp
index 28b8d08..7f58a83 100644
--- a/gdb/testsuite/gdb.base/watchpoint-solib.exp
+++ b/gdb/testsuite/gdb.base/watchpoint-solib.exp
@@ -49,7 +49,8 @@ if { [gdb_compile_shlib $libsrc $lib_sl $lib_opts] != ""
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
gdb_load_shlib $lib_sl
runto_main
diff --git a/gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.exp b/gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.exp
index 2bedcaa..163ec3b 100644
--- a/gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.exp
+++ b/gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.exp
@@ -129,7 +129,8 @@ proc test {always_inserted} {
with_test_prefix "always-inserted $always_inserted" {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.base/watchpoint-unaligned.c b/gdb/testsuite/gdb.base/watchpoint-unaligned.c
index d3c1349..ca2fa45 100644
--- a/gdb/testsuite/gdb.base/watchpoint-unaligned.c
+++ b/gdb/testsuite/gdb.base/watchpoint-unaligned.c
@@ -18,6 +18,8 @@
#include <stdint.h>
#include <assert.h>
+static volatile int volatile_dummy;
+
static int again;
static volatile struct
@@ -53,6 +55,40 @@ write_size8twice (void)
data.u.size8twice[offset] = first;
data.u.size8twice[offset + 1] = second;
#endif
+
+ /* Setting a breakpoint on an instruction after an instruction triggering a
+ watchpoint makes it ambiguous which one will be reported.
+ Insert a dummy instruction in between to make sure the watchpoint gets
+ reported. */
+ volatile_dummy = 1;
+
+ return; /* write_size8twice_return */
+}
+
+static void
+read_size8twice (void)
+{
+ static uint64_t volatile first;
+ static uint64_t volatile second;
+
+#ifdef __aarch64__
+ volatile void *p = &data.u.size8twice[offset];
+ asm volatile ("ldp %0, %1, [%2]"
+ : "=r" (first), "=r" (second) /* output */
+ : "r" (p) /* input */
+ : /* clobber */);
+#else
+ first = data.u.size8twice[offset];
+ second = data.u.size8twice[offset + 1];
+#endif
+
+ /* Setting a breakpoint on an instruction after an instruction triggering a
+ watchpoint makes it ambiguous which one will be reported.
+ Insert a dummy instruction inbetween to make sure the watchpoint gets
+ reported. */
+ volatile_dummy = 1;
+
+ return; /* read_size8twice_return */
}
int
@@ -63,6 +99,7 @@ main (void)
assert (sizeof (data) == 8 + 3 * 8);
write_size8twice ();
+ read_size8twice ();
while (size)
{
diff --git a/gdb/testsuite/gdb.base/watchpoint-unaligned.exp b/gdb/testsuite/gdb.base/watchpoint-unaligned.exp
index 9220402..85b1eb7 100644
--- a/gdb/testsuite/gdb.base/watchpoint-unaligned.exp
+++ b/gdb/testsuite/gdb.base/watchpoint-unaligned.exp
@@ -151,6 +151,63 @@ foreach_with_prefix wpcount {4 7} {
gdb_assert $got_hit $test
}
+proc size8twice { function cmd offset index } {
+ clean_restart $::testfile
+
+ if { ![runto $function] } {
+ return -1
+ }
+
+ # Set offset in the inferior.
+ gdb_test_no_output "set var offset = $offset"
+
+ # Set a breakpoint.
+ set bp_src_string "${function}_return"
+ set bp_loc [gdb_get_line_number $bp_src_string]
+ gdb_breakpoint $bp_loc \
+ "Breakpoint $::decimal at $::hex" "$bp_src_string"
+
+ # Set a hardware watchpoint.
+ set watch_index [expr $offset + $index]
+ set test "$cmd data.u.size8twice\[$watch_index\]"
+ set wpnum 0
+ gdb_test_multiple $test "" {
+ -re -wrap "Hardware (read )?watchpoint ($::decimal): .*" {
+ set wpnum $expect_out(2,string)
+ pass $gdb_test_name
+ }
+ -re -wrap "Watchpoint ($::decimal): .*" {
+ if {[istarget "arm*-*-*"]} {
+ untested $gdb_test_name
+ } else {
+ fail $gdb_test_name
+ }
+ }
+ }
+
+ if { ! $wpnum } {
+ # No hardware watchpoint, we're done.
+ return 0
+ }
+
+ # Try to trigger the hardware watchpoint.
+ set got_hit 0
+ gdb_test_multiple "continue" "" {
+ -re -wrap "\r\nCould not insert hardware watchpoint .*" {
+ }
+ -re -wrap "Hardware (read )?watchpoint $wpnum:.*(New value|Value) = .*" {
+ set got_hit 1
+ send_gdb "continue\n"
+ exp_continue
+ }
+ -re -wrap " $bp_src_string .*" {
+ }
+ }
+ gdb_assert { $got_hit }
+
+ return $got_hit
+}
+
# We've got an array with 3 8-byte elements. Do a store of 16 bytes,
# to:
# - elements 0 and 1 (offset == 0), and
@@ -158,49 +215,21 @@ foreach_with_prefix wpcount {4 7} {
# For each case, check setting a watchpoint at:
# - the first written element (index == 0), and
# - the second element (index == 1).
-foreach_with_prefix offset { 0 1 } {
- foreach_with_prefix index { 0 1 } {
-
- clean_restart $binfile
-
- if ![runto_main] {
- return -1
- }
-
- gdb_test_no_output "set var offset = $offset"
- gdb_breakpoint [gdb_get_line_number "final_return"] \
- "Breakpoint $decimal at $hex" "final_return"
- set watch_index [expr $offset + $index]
- set test "watch data.u.size8twice\[$watch_index\]"
- set wpnum 0
- gdb_test_multiple $test $test {
- -re "Hardware watchpoint (\[0-9\]+): .*\r\n$gdb_prompt $" {
- set wpnum $expect_out(1,string)
- pass $gdb_test_name
- }
- -re "Watchpoint (\[0-9\]+): .*\r\n$gdb_prompt $" {
- if {[istarget "arm*-*-*"]} {
- untested $gdb_test_name
- } else {
- fail $gdb_test_name
- }
+foreach_with_prefix fun { write_size8twice read_size8twice } {
+ if { $fun == "write_size8twice" } {
+ set cmd "watch"
+ } else {
+ set cmd "rwatch"
+ }
+ foreach_with_prefix offset { 0 1 } {
+ foreach_with_prefix index { 0 1 } {
+ set res [size8twice $fun $cmd $offset $index]
+ if { $res != 1 } {
+ break
}
}
- if {$wpnum} {
- set test "continue"
- set got_hit 0
- gdb_test_multiple $test $test {
- -re "\r\nCould not insert hardware watchpoint .*\r\n$gdb_prompt $" {
- }
- -re "Hardware watchpoint $wpnum:.*New value = .*\r\n$gdb_prompt $" {
- set got_hit 1
- send_gdb "continue\n"
- exp_continue
- }
- -re " final_return .*\r\n$gdb_prompt $" {
- }
- }
- gdb_assert $got_hit "size8twice write"
+ if { $res != 1 } {
+ break
}
}
}
diff --git a/gdb/testsuite/gdb.base/watchpoints.exp b/gdb/testsuite/gdb.base/watchpoints.exp
index 37baa5e..d8e4d63 100644
--- a/gdb/testsuite/gdb.base/watchpoints.exp
+++ b/gdb/testsuite/gdb.base/watchpoints.exp
@@ -53,7 +53,8 @@ with_test_prefix "before inferior start" {
# This will turn hardware watchpoints back on and delete the watchpoint
# we just created.
- clean_restart ${binfile}
+ clean_restart
+ gdb_load $binfile
# Disable hardware watchpoints if necessary.
if {!$allow_hw_watchpoint_tests_p} {
diff --git a/gdb/testsuite/gdb.base/with-mf.exp b/gdb/testsuite/gdb.base/with-mf.exp
index 564d5d7..3ac5e1d 100644
--- a/gdb/testsuite/gdb.base/with-mf.exp
+++ b/gdb/testsuite/gdb.base/with-mf.exp
@@ -29,7 +29,8 @@ if { [ensure_gdb_index $binfile] == -1 } {
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
gdb_test "with language ada -- print g_s" \
" = \\(a => 1, b => 2, c => 3\\)"
diff --git a/gdb/testsuite/gdb.base/with.exp b/gdb/testsuite/gdb.base/with.exp
index a9b4a6c..d766e5d 100644
--- a/gdb/testsuite/gdb.base/with.exp
+++ b/gdb/testsuite/gdb.base/with.exp
@@ -25,7 +25,8 @@ if {[build_executable "failed to prepare" $testfile $srcfile debug]} {
return -1
}
-clean_restart $binfile
+clean_restart
+gdb_load $binfile
# Test "maint with". VALUES is a list of values. A nested "with" is
# performed with each combination of pair of values from this list.
@@ -178,7 +179,8 @@ with_test_prefix "user-defined" {
# Check repeating.
with_test_prefix "repeat" {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
# "with" with no command reinvokes the previous command.
gdb_test "with language ada" \
@@ -209,7 +211,8 @@ with_test_prefix "repeat" {
# Basic run control.
with_test_prefix "run control" {
- clean_restart $binfile
+ clean_restart
+ gdb_load $binfile
if ![runto_main] {
return
diff --git a/gdb/testsuite/gdb.btrace/buffer-size.exp b/gdb/testsuite/gdb.btrace/buffer-size.exp
index 3a54baa..16958ae 100644
--- a/gdb/testsuite/gdb.btrace/buffer-size.exp
+++ b/gdb/testsuite/gdb.btrace/buffer-size.exp
@@ -20,11 +20,11 @@
require allow_btrace_tests
standard_testfile record_goto.c
-if [prepare_for_testing "failed to prepare" $testfile $srcfile] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/data.exp b/gdb/testsuite/gdb.btrace/data.exp
index d42d017..4245157 100644
--- a/gdb/testsuite/gdb.btrace/data.exp
+++ b/gdb/testsuite/gdb.btrace/data.exp
@@ -20,11 +20,11 @@
require allow_btrace_tests
standard_testfile
-if [prepare_for_testing "failed to prepare" $testfile $srcfile] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/delta.exp b/gdb/testsuite/gdb.btrace/delta.exp
index 0807c58..64e965d 100644
--- a/gdb/testsuite/gdb.btrace/delta.exp
+++ b/gdb/testsuite/gdb.btrace/delta.exp
@@ -20,11 +20,11 @@
require allow_btrace_tests
standard_testfile record_goto.c
-if [prepare_for_testing "failed to prepare" $testfile $srcfile] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/dlopen.exp b/gdb/testsuite/gdb.btrace/dlopen.exp
index 092f4b0..1383bd9 100644
--- a/gdb/testsuite/gdb.btrace/dlopen.exp
+++ b/gdb/testsuite/gdb.btrace/dlopen.exp
@@ -33,7 +33,7 @@ if { [prepare_for_testing "failed to prepare" $testfile $srcfile \
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/enable-new-thread.exp b/gdb/testsuite/gdb.btrace/enable-new-thread.exp
index ee7c023..ab73d45 100644
--- a/gdb/testsuite/gdb.btrace/enable-new-thread.exp
+++ b/gdb/testsuite/gdb.btrace/enable-new-thread.exp
@@ -20,11 +20,11 @@
require allow_btrace_tests
standard_testfile
-if [prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/enable-running.exp b/gdb/testsuite/gdb.btrace/enable-running.exp
index 1daa005..92ae566 100644
--- a/gdb/testsuite/gdb.btrace/enable-running.exp
+++ b/gdb/testsuite/gdb.btrace/enable-running.exp
@@ -29,7 +29,7 @@ save_vars { GDBFLAGS } {
clean_restart $testfile
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/enable.exp b/gdb/testsuite/gdb.btrace/enable.exp
index ad62733..cc48cc2 100644
--- a/gdb/testsuite/gdb.btrace/enable.exp
+++ b/gdb/testsuite/gdb.btrace/enable.exp
@@ -35,11 +35,11 @@ gdb_test "record instruction-history" "No recording is currently active\\..*" "r
gdb_test "info record" "No recording is currently active\\." "info record without target"
standard_testfile
-if [prepare_for_testing "failed to prepare" $testfile {} {debug}] {
+if {[prepare_for_testing "failed to prepare" $testfile {} {debug}]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
@@ -78,20 +78,20 @@ gdb_exit
load_lib gdbserver-support.exp
require allow_gdbserver_tests
clean_restart $testfile
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
# make sure record-btrace can be enabled after re-run
clean_restart $testfile
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
gdb_test_no_output "record btrace" "enable after restart"
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
gdb_test_no_output "record btrace" "enable after re-run"
diff --git a/gdb/testsuite/gdb.btrace/exception.exp b/gdb/testsuite/gdb.btrace/exception.exp
index 67e9fbd..61a4bd9 100755
--- a/gdb/testsuite/gdb.btrace/exception.exp
+++ b/gdb/testsuite/gdb.btrace/exception.exp
@@ -22,12 +22,12 @@ require allow_btrace_tests
# We expect a specific function call history. This gets messed up with
# PIE on 32-bit.
standard_testfile exception.cc
-if [prepare_for_testing "failed to prepare" $testfile $srcfile \
- {nopie c++ debug}] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile \
+ {nopie c++ debug}]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/function_call_history.exp b/gdb/testsuite/gdb.btrace/function_call_history.exp
index e233936..325099a 100644
--- a/gdb/testsuite/gdb.btrace/function_call_history.exp
+++ b/gdb/testsuite/gdb.btrace/function_call_history.exp
@@ -22,11 +22,11 @@ require allow_btrace_tests
# We expect a specific function call history. This gets messed up with
# PIE on 32-bit.
standard_testfile
-if [prepare_for_testing "failed to prepare" $testfile {} {nopie debug}] {
+if {[prepare_for_testing "failed to prepare" $testfile {} {nopie debug}]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
@@ -226,7 +226,7 @@ gdb_test "record function-call-history /c 21, +11" [multi_line \
] "indented"
# make sure we can handle incomplete trace with respect to indentation
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
# navigate to the fib in line 24 above
diff --git a/gdb/testsuite/gdb.btrace/gcore.exp b/gdb/testsuite/gdb.btrace/gcore.exp
index b9e96d4..6d7ba5c 100644
--- a/gdb/testsuite/gdb.btrace/gcore.exp
+++ b/gdb/testsuite/gdb.btrace/gcore.exp
@@ -20,11 +20,11 @@
require allow_btrace_tests
standard_testfile record_goto.c
-if [prepare_for_testing "failed to prepare" $testfile $srcfile] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/instruction_history.exp b/gdb/testsuite/gdb.btrace/instruction_history.exp
index 4e20194..fb68b33 100644
--- a/gdb/testsuite/gdb.btrace/instruction_history.exp
+++ b/gdb/testsuite/gdb.btrace/instruction_history.exp
@@ -20,11 +20,11 @@
require allow_btrace_tests
standard_testfile .c .S
-if [prepare_for_testing "failed to prepare" $testfile "$srcfile $srcfile2" {debug}] {
+if {[prepare_for_testing "failed to prepare" $testfile "$srcfile $srcfile2" {debug}]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/multi-inferior.exp b/gdb/testsuite/gdb.btrace/multi-inferior.exp
index d87a941..fc75233 100644
--- a/gdb/testsuite/gdb.btrace/multi-inferior.exp
+++ b/gdb/testsuite/gdb.btrace/multi-inferior.exp
@@ -29,14 +29,14 @@ require allow_multi_inferior_tests
require !use_gdb_stub
standard_testfile
-if [prepare_for_testing "failed to prepare" $testfile {} {debug}] {
+if {[prepare_for_testing "failed to prepare" $testfile {} {debug}]} {
return -1
}
set host_binfile [gdb_remote_download host $binfile]
with_test_prefix "inferior 1" {
- if ![runto_main] {
+ if {![runto_main]} {
return -1
}
}
@@ -46,7 +46,7 @@ with_test_prefix "inferior 2" {
"add second inferior"
gdb_test "inferior 2" "Switching to inferior 2.*"
- if ![runto_main] {
+ if {![runto_main]} {
return -1
}
@@ -65,7 +65,7 @@ with_test_prefix "inferior 3" {
"add third inferior"
gdb_test "inferior 3" "Switching to inferior 3.*"
- if ![runto_main] {
+ if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/multi-thread-step.exp b/gdb/testsuite/gdb.btrace/multi-thread-step.exp
index 9f4c6c0..7a769b5 100644
--- a/gdb/testsuite/gdb.btrace/multi-thread-step.exp
+++ b/gdb/testsuite/gdb.btrace/multi-thread-step.exp
@@ -26,7 +26,7 @@ if {[gdb_compile_pthreads "$srcdir/$subdir/$srcfile" "$binfile" executable {debu
}
clean_restart $testfile
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/nohist.exp b/gdb/testsuite/gdb.btrace/nohist.exp
index f573ed3..220a380 100644
--- a/gdb/testsuite/gdb.btrace/nohist.exp
+++ b/gdb/testsuite/gdb.btrace/nohist.exp
@@ -20,11 +20,11 @@
require allow_btrace_tests
standard_testfile record_goto.c
-if [prepare_for_testing "failed to prepare" $testfile $srcfile] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/non-stop.exp b/gdb/testsuite/gdb.btrace/non-stop.exp
index 856985c..bc5ebdb 100644
--- a/gdb/testsuite/gdb.btrace/non-stop.exp
+++ b/gdb/testsuite/gdb.btrace/non-stop.exp
@@ -28,7 +28,7 @@ save_vars { GDBFLAGS } {
clean_restart $testfile
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/ptwrite.exp b/gdb/testsuite/gdb.btrace/ptwrite.exp
index 0c2bb7c..5207488 100644
--- a/gdb/testsuite/gdb.btrace/ptwrite.exp
+++ b/gdb/testsuite/gdb.btrace/ptwrite.exp
@@ -21,7 +21,7 @@ require allow_btrace_ptw_tests allow_python_tests
set opts {}
-if [info exists COMPILE] {
+if {[info exists COMPILE]} {
# make check RUNTESTFLAGS="gdb.btrace/ptwrite.exp COMPILE=1"
standard_testfile ptwrite.c
lappend opts debug additional_flags=-mptwrite
@@ -36,7 +36,7 @@ if [info exists COMPILE] {
return -1
}
-if [prepare_for_testing "failed to prepare" $testfile $srcfile $opts] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile $opts]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/reconnect.exp b/gdb/testsuite/gdb.btrace/reconnect.exp
index 15a0bca..44a9121 100644
--- a/gdb/testsuite/gdb.btrace/reconnect.exp
+++ b/gdb/testsuite/gdb.btrace/reconnect.exp
@@ -23,7 +23,7 @@ require allow_btrace_tests
require allow_gdbserver_tests
standard_testfile
-if [prepare_for_testing "failed to prepare" $testfile $srcfile] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/record_goto-step.exp b/gdb/testsuite/gdb.btrace/record_goto-step.exp
index 10307a7..d881cf7 100644
--- a/gdb/testsuite/gdb.btrace/record_goto-step.exp
+++ b/gdb/testsuite/gdb.btrace/record_goto-step.exp
@@ -20,11 +20,11 @@
require allow_btrace_tests
standard_testfile record_goto.c
-if [prepare_for_testing "failed to prepare" $testfile $srcfile] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/record_goto.exp b/gdb/testsuite/gdb.btrace/record_goto.exp
index b1b3c09..f7dbe10 100644
--- a/gdb/testsuite/gdb.btrace/record_goto.exp
+++ b/gdb/testsuite/gdb.btrace/record_goto.exp
@@ -28,7 +28,7 @@ require allow_btrace_tests
# Luckily, they are similar enough that a single test script can handle
# both.
set opts {}
-if [info exists COMPILE] {
+if {[info exists COMPILE]} {
# make check RUNTESTFLAGS="gdb.btrace/record_goto.exp COMPILE=1"
standard_testfile record_goto.c
lappend opts debug
@@ -43,11 +43,11 @@ if [info exists COMPILE] {
return -1
}
-if [prepare_for_testing "failed to prepare" $testfile $srcfile $opts] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile $opts]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/rn-dl-bind.exp b/gdb/testsuite/gdb.btrace/rn-dl-bind.exp
index 6592b74c..22ce8e5 100644
--- a/gdb/testsuite/gdb.btrace/rn-dl-bind.exp
+++ b/gdb/testsuite/gdb.btrace/rn-dl-bind.exp
@@ -24,12 +24,12 @@
require allow_btrace_tests
standard_testfile
-if [prepare_for_testing "failed to prepare" $testfile $srcfile \
- {debug ldflags=-Wl,-z,lazy}] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile \
+ {debug ldflags=-Wl,-z,lazy}]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/segv.exp b/gdb/testsuite/gdb.btrace/segv.exp
index 628c155..509bcf1 100644
--- a/gdb/testsuite/gdb.btrace/segv.exp
+++ b/gdb/testsuite/gdb.btrace/segv.exp
@@ -20,10 +20,10 @@
require allow_btrace_tests
standard_testfile
-if [prepare_for_testing "failed to prepare" $testfile $srcfile] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/step.exp b/gdb/testsuite/gdb.btrace/step.exp
index 7852d65..e96714a 100644
--- a/gdb/testsuite/gdb.btrace/step.exp
+++ b/gdb/testsuite/gdb.btrace/step.exp
@@ -20,11 +20,11 @@
require allow_btrace_tests
standard_testfile record_goto.c
-if [prepare_for_testing "failed to prepare" $testfile $srcfile] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/stepi.exp b/gdb/testsuite/gdb.btrace/stepi.exp
index 3684bef..a37d144 100644
--- a/gdb/testsuite/gdb.btrace/stepi.exp
+++ b/gdb/testsuite/gdb.btrace/stepi.exp
@@ -26,7 +26,7 @@ require allow_btrace_tests
#
# Luckily, they are similar enough that a single test script can handle
# both.
-if [info exists COMPILE] {
+if {[info exists COMPILE]} {
# make check RUNTESTFLAGS="gdb.btrace/stepi.exp COMPILE=1"
standard_testfile record_goto.c
lappend opts debug
@@ -41,11 +41,11 @@ if [info exists COMPILE] {
return -1
}
-if [prepare_for_testing "failed to prepare" $testfile $srcfile {}] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {}]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/tailcall-only.exp b/gdb/testsuite/gdb.btrace/tailcall-only.exp
index c4f032a..5010d16 100644
--- a/gdb/testsuite/gdb.btrace/tailcall-only.exp
+++ b/gdb/testsuite/gdb.btrace/tailcall-only.exp
@@ -30,7 +30,7 @@ require allow_btrace_tests
# Luckily, they are similar enough that a single test script can handle
# both.
set opts {}
-if [info exists COMPILE] {
+if {[info exists COMPILE]} {
# make check RUNTESTFLAGS="gdb.btrace/tailcall-only.exp COMPILE=1"
standard_testfile tailcall-only.c
lappend opts debug optimize=-O2
@@ -45,11 +45,11 @@ if [info exists COMPILE] {
return -1
}
-if [prepare_for_testing "failed to prepare" $testfile $srcfile $opts] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile $opts]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/tailcall.exp b/gdb/testsuite/gdb.btrace/tailcall.exp
index 50d0a8b..d4d445c 100644
--- a/gdb/testsuite/gdb.btrace/tailcall.exp
+++ b/gdb/testsuite/gdb.btrace/tailcall.exp
@@ -27,7 +27,7 @@ require allow_btrace_tests
# Luckily, they are similar enough that a single test script can handle
# both.
set opts {}
-if [info exists COMPILE] {
+if {[info exists COMPILE]} {
# make check RUNTESTFLAGS="gdb.btrace/tailcall.exp COMPILE=1"
standard_testfile tailcall.c
lappend opts debug optimize=-O2
@@ -42,10 +42,10 @@ if [info exists COMPILE] {
return -1
}
-if [prepare_for_testing "failed to prepare" $testfile $srcfile $opts] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile $opts]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/tsx.exp b/gdb/testsuite/gdb.btrace/tsx.exp
index 168319b..6da3fa7 100644
--- a/gdb/testsuite/gdb.btrace/tsx.exp
+++ b/gdb/testsuite/gdb.btrace/tsx.exp
@@ -18,11 +18,11 @@
require allow_btrace_pt_tests allow_tsx_tests
standard_testfile .c x86-tsx.S
-if [prepare_for_testing "failed to prepare" $testfile "$srcfile $srcfile2" {debug}] {
+if {[prepare_for_testing "failed to prepare" $testfile "$srcfile $srcfile2" {debug}]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/unknown_functions.exp b/gdb/testsuite/gdb.btrace/unknown_functions.exp
index 61aed6f..0696d8b 100644
--- a/gdb/testsuite/gdb.btrace/unknown_functions.exp
+++ b/gdb/testsuite/gdb.btrace/unknown_functions.exp
@@ -25,12 +25,12 @@ standard_testfile
# PIE on 32-bit.
#
# Also discard local symbols.
-if [prepare_for_testing "failed to prepare" $testfile $srcfile \
- {ldflags=-Wl,-x nopie}] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile \
+ {ldflags=-Wl,-x nopie}]} {
return -1
}
-if ![runto test] {
+if {![runto test]} {
return -1
}
diff --git a/gdb/testsuite/gdb.btrace/vdso.exp b/gdb/testsuite/gdb.btrace/vdso.exp
index 1e19f99..0484da1 100644
--- a/gdb/testsuite/gdb.btrace/vdso.exp
+++ b/gdb/testsuite/gdb.btrace/vdso.exp
@@ -23,11 +23,11 @@
require allow_btrace_tests
standard_testfile
-if [prepare_for_testing "failed to prepare" $testfile $srcfile] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.compile/compile-cplus-print.exp b/gdb/testsuite/gdb.compile/compile-cplus-print.exp
index d89bf61..e4e2782 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus-print.exp
+++ b/gdb/testsuite/gdb.compile/compile-cplus-print.exp
@@ -22,7 +22,7 @@ require is_c_compiler_gcc
require allow_compile_tests
set options {}
-if [test_compiler_info gcc*] {
+if {[test_compiler_info gcc*]} {
lappend options additional_flags=-g3
lappend options additional_flags=-std=gnu++11
lappend options c++
@@ -30,13 +30,14 @@ if [test_compiler_info gcc*] {
set srcfilesoptions [list ${srcfile} ${options}]
-if { [eval build_executable_from_specs ${testfile}.exp $testfile {$options} ${srcfilesoptions}] } {
+if { [build_executable_from_specs $testfile.exp $testfile $options \
+ {*}$srcfilesoptions] } {
return -1
}
clean_restart ${testfile}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.compile/compile-cplus.exp b/gdb/testsuite/gdb.compile/compile-cplus.exp
index a0f5cf0..66ac76f 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus.exp
+++ b/gdb/testsuite/gdb.compile/compile-cplus.exp
@@ -39,7 +39,9 @@ if { $srcfile3 != "" } {
}
set srcfile4options "nodebug c++"
lappend srcfilesoptions $srcfile4 $srcfile4options
-if { [eval build_executable_from_specs ${testfile}.exp $testfile {$options} ${srcfilesoptions}] } {
+
+if { [build_executable_from_specs $testfile.exp $testfile $options \
+ {*}$srcfilesoptions] } {
return -1
}
@@ -52,7 +54,7 @@ clean_restart ${testfile}
gdb_test_no_output "set language c++" \
"Set language to C++"
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.compile/compile-ifunc.exp b/gdb/testsuite/gdb.compile/compile-ifunc.exp
index 068dce5..72c1142 100644
--- a/gdb/testsuite/gdb.compile/compile-ifunc.exp
+++ b/gdb/testsuite/gdb.compile/compile-ifunc.exp
@@ -24,7 +24,7 @@ standard_testfile
require is_c_compiler_gcc
set flags ""
-if [test_compiler_info gcc*] {
+if {[test_compiler_info gcc*]} {
set flags additional_flags=-Wno-attribute-alias
}
diff --git a/gdb/testsuite/gdb.compile/compile-ops.exp b/gdb/testsuite/gdb.compile/compile-ops.exp
index 410d5a4..c41c91e 100644
--- a/gdb/testsuite/gdb.compile/compile-ops.exp
+++ b/gdb/testsuite/gdb.compile/compile-ops.exp
@@ -375,36 +375,36 @@ Dwarf::assemble $asm_file {
declare_labels int_label
compile_unit {
- {name file1.txt}
- {language @DW_LANG_C}
- {low_pc $func_start addr}
- {high_pc $func_end addr}
+ DW_AT_name file1.txt
+ DW_AT_language @DW_LANG_C
+ DW_AT_low_pc $func_start addr
+ DW_AT_high_pc $func_end addr
} {
global program
int_label: base_type {
- {name int}
- {byte_size 4 sdata}
- {encoding @DW_ATE_signed}
+ DW_AT_name int
+ DW_AT_byte_size 4 sdata
+ DW_AT_encoding @DW_ATE_signed
}
subprogram {
- {external 1 flag}
- {name func}
- {low_pc $func_start addr}
- {high_pc $func_end addr}
+ DW_AT_external 1 flag
+ DW_AT_name func
+ DW_AT_low_pc $func_start addr
+ DW_AT_high_pc $func_end addr
} {
formal_parameter {
- {name param}
- {variable_parameter 1 flag}
- {type :$int_label}
- {location $program SPECIAL_expr}
+ DW_AT_name param
+ DW_AT_variable_parameter 1 flag
+ DW_AT_type :$int_label
+ DW_AT_location $program SPECIAL_expr
}
formal_parameter {
- {name optimized_out}
- {variable_parameter 1 flag}
- {type :$int_label}
+ DW_AT_name optimized_out
+ DW_AT_variable_parameter 1 flag
+ DW_AT_type :$int_label
}
}
}
@@ -416,7 +416,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} \
return -1
}
-if ![runto func] {
+if {![runto func]} {
return -1
}
diff --git a/gdb/testsuite/gdb.compile/compile-print.exp b/gdb/testsuite/gdb.compile/compile-print.exp
index 4c90a71..2d3ad2f 100644
--- a/gdb/testsuite/gdb.compile/compile-print.exp
+++ b/gdb/testsuite/gdb.compile/compile-print.exp
@@ -25,7 +25,7 @@ if { [prepare_for_testing "failed to prepare" "$testfile"] } {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.compile/compile-setjmp.exp b/gdb/testsuite/gdb.compile/compile-setjmp.exp
index 73f6b8b..048d0a4 100644
--- a/gdb/testsuite/gdb.compile/compile-setjmp.exp
+++ b/gdb/testsuite/gdb.compile/compile-setjmp.exp
@@ -25,7 +25,7 @@ if { [prepare_for_testing "failed to prepare" $testfile] } {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.compile/compile-tls.exp b/gdb/testsuite/gdb.compile/compile-tls.exp
index aaa8e03..e7db1da 100644
--- a/gdb/testsuite/gdb.compile/compile-tls.exp
+++ b/gdb/testsuite/gdb.compile/compile-tls.exp
@@ -26,7 +26,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
if {![runto_main]} {
return 0
}
diff --git a/gdb/testsuite/gdb.compile/compile.exp b/gdb/testsuite/gdb.compile/compile.exp
index ff20b2e..66ac182 100644
--- a/gdb/testsuite/gdb.compile/compile.exp
+++ b/gdb/testsuite/gdb.compile/compile.exp
@@ -32,7 +32,8 @@ if { $srcfile3 != "" } {
lappend srcfilesoptions $srcfile3 ${options}
}
lappend srcfilesoptions $srcfile4 "nodebug"
-if { [eval build_executable_from_specs ${testfile}.exp $testfile {$options} ${srcfilesoptions}] } {
+if { [build_executable_from_specs $testfile.exp $testfile $options \
+ {*}$srcfilesoptions] } {
return -1
}
@@ -53,7 +54,7 @@ gdb_test "compile file -r ${srcdir}/${subdir}/${testfile}-mod.c" \
"The program must be running for the compile command to work.*" \
"test compile file command without running inferior"
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
@@ -378,8 +379,9 @@ if { $srcfile3 != "" } {
require allow_shlib_tests
-set libbin [standard_output_file ${testfile}-shlib.so]
-set binfile [standard_output_file ${testfile}-shlib]
+set testfile $testfile-shlib
+set libbin [standard_output_file $testfile.so]
+set binfile [standard_output_file $testfile]
if { [gdb_compile_shlib ${srcdir}/${subdir}/${srcfile2} $libbin {debug}] != ""
|| [gdb_compile ${srcdir}/${subdir}/${srcfile} $binfile executable \
@@ -387,10 +389,10 @@ if { [gdb_compile_shlib ${srcdir}/${subdir}/${srcfile2} $libbin {debug}] != ""
return -1
}
-clean_restart $binfile
+clean_restart $testfile
gdb_load_shlib $libbin
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.cp/call-c.exp b/gdb/testsuite/gdb.cp/call-c.exp
index f99d171..6d240c8 100644
--- a/gdb/testsuite/gdb.cp/call-c.exp
+++ b/gdb/testsuite/gdb.cp/call-c.exp
@@ -27,7 +27,7 @@ if {[gdb_compile "$srcdir/$subdir/${srcfile2}" "${objfilec}" object {debug}] !=
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
runto_main
diff --git a/gdb/testsuite/gdb.cp/call-method-register.exp b/gdb/testsuite/gdb.cp/call-method-register.exp
index dfd3ce0..b736312 100644
--- a/gdb/testsuite/gdb.cp/call-method-register.exp
+++ b/gdb/testsuite/gdb.cp/call-method-register.exp
@@ -45,59 +45,59 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
- {DW_AT_name $::srcfile}
- {DW_AT_comp_dir /tmp}
+ DW_AT_language @DW_LANG_C_plus_plus
+ DW_AT_name $::srcfile
+ DW_AT_comp_dir /tmp
} {
declare_labels int_type_label struct_type_label \
struct_ptr_type_label
set ptr_size [get_sizeof "void *" 96]
DW_TAG_subprogram {
- {name main}
- {low_pc $main_start addr}
- {high_pc $main_length data8}
- {DW_AT_type :$int_type_label}
+ DW_AT_name main
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc $main_length data8
+ DW_AT_type :$int_type_label
}
int_type_label: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name int}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
struct_type_label: DW_TAG_structure_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_name small}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_name small
} {
member {
- {name xxx}
- {type :$int_type_label}
- {data_member_location 0 data1}
+ DW_AT_name xxx
+ DW_AT_type :$int_type_label
+ DW_AT_data_member_location 0 data1
}
subprogram {
- {name yyy}
- {type :$int_type_label}
+ DW_AT_name yyy
+ DW_AT_type :$int_type_label
} {
formal_parameter {
- {type :$struct_ptr_type_label}
- {artificial 1 flag_present}
+ DW_AT_type :$struct_ptr_type_label
+ DW_AT_artificial 1 flag_present
}
}
}
struct_ptr_type_label: DW_TAG_pointer_type {
- {DW_AT_byte_size $ptr_size DW_FORM_data1}
- {type :$struct_type_label}
+ DW_AT_byte_size $ptr_size DW_FORM_data1
+ DW_AT_type :$struct_type_label
}
DW_TAG_variable {
- {DW_AT_name global_var}
- {DW_AT_type :$struct_type_label}
- {DW_AT_location {
+ DW_AT_name global_var
+ DW_AT_type :$struct_type_label
+ DW_AT_location {
DW_OP_reg0
- } SPECIAL_expr}
- {external 1 flag}
+ } SPECIAL_expr
+ DW_AT_external 1 flag
}
}
}
diff --git a/gdb/testsuite/gdb.cp/eval-reference-type.cc b/gdb/testsuite/gdb.cp/eval-reference-type.cc
new file mode 100644
index 0000000..b177cbf
--- /dev/null
+++ b/gdb/testsuite/gdb.cp/eval-reference-type.cc
@@ -0,0 +1,36 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+/* Tests that expression evaluation does not return an error if one of
+ the operands is of reference type. */
+
+struct
+{
+ int &get ()
+ {
+ return x;
+ };
+
+ int x = 1;
+} v_struct;
+
+int
+main (void)
+{
+ v_struct.get () = 2;
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.cp/eval-reference-type.exp b/gdb/testsuite/gdb.cp/eval-reference-type.exp
new file mode 100644
index 0000000..4c7b3b7
--- /dev/null
+++ b/gdb/testsuite/gdb.cp/eval-reference-type.exp
@@ -0,0 +1,46 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+standard_testfile .cc
+
+if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
+ return
+}
+
+runto_main
+
+# Test for reference type.
+gdb_test "print v_struct.get () == 1 && v_struct.get () == 2" \
+ " = false"
+gdb_test "print v_struct.get () == 1 || v_struct.get () == 2" \
+ " = true"
+
+# Test for correct type resolution using 'ptype'.
+gdb_test "ptype v_struct.get ()" \
+ "type = int &"
+gdb_test "ptype v_struct.get () == 1" \
+ "type = bool"
+gdb_test "ptype v_struct.get () + 1" \
+ "type = int"
+gdb_test "ptype v_struct.get () && 1" \
+ "type = bool"
+gdb_test "ptype v_struct.get () || 1" \
+ "type = bool"
+gdb_test "ptype !v_struct.get ()" \
+ "type = bool"
+gdb_test "ptype v_struct.get () ? 2 : 3" \
+ "type = int"
+gdb_test "ptype v_struct.get () | 1" \
+ "type = int"
diff --git a/gdb/testsuite/gdb.cp/gdb2384.exp b/gdb/testsuite/gdb.cp/gdb2384.exp
index 204bdeb..a53ec3a 100644
--- a/gdb/testsuite/gdb.cp/gdb2384.exp
+++ b/gdb/testsuite/gdb.cp/gdb2384.exp
@@ -35,7 +35,7 @@ if { [gdb_compile_shlib $srcdir/$subdir/$srcfile2 $sofile {debug c++}] != ""
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_load_shlib ${sofile}
diff --git a/gdb/testsuite/gdb.cp/incomplete-type-overload.exp b/gdb/testsuite/gdb.cp/incomplete-type-overload.exp
index aa51fd9..aa582e0 100644
--- a/gdb/testsuite/gdb.cp/incomplete-type-overload.exp
+++ b/gdb/testsuite/gdb.cp/incomplete-type-overload.exp
@@ -57,105 +57,109 @@ Dwarf::assemble ${asm_file} {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
- {name $srcfile}
- {stmt_list $L DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C_plus_plus
+ DW_AT_name $srcfile
+ DW_AT_stmt_list $L DW_FORM_sec_offset
} {
declare_labels int_label base_label complete_label incomplete_label
declare_labels ptr_base_label ptr_inc_label ptr_comp_label ptr_int_label
int_label: DW_TAG_base_type {
- {DW_AT_byte_size $int_size DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name "int"}
+ DW_AT_byte_size $int_size DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name "int"
}
base_label: DW_TAG_class_type {
- {DW_AT_byte_size $struct_base_size DW_FORM_sdata}
- {DW_AT_name "base"}
+ DW_AT_byte_size $struct_base_size DW_FORM_sdata
+ DW_AT_name "base"
} {
DW_TAG_member {
- {DW_AT_name "member"}
- {DW_AT_type :$int_label}
- {DW_AT_data_member_location 0 DW_FORM_sdata}
+ DW_AT_name "member"
+ DW_AT_type :$int_label
+ DW_AT_data_member_location 0 DW_FORM_sdata
}
}
complete_label: DW_TAG_class_type {
- {DW_AT_byte_size $struct_complete_size DW_FORM_sdata}
- {DW_AT_name "complete"}
+ DW_AT_byte_size $struct_complete_size DW_FORM_sdata
+ DW_AT_name "complete"
} {
DW_TAG_inheritance {
- {DW_AT_type :$base_label}
- {DW_AT_data_member_location 0 DW_FORM_sdata}
- {DW_AT_accessibility 1 DW_FORM_data1}
+ DW_AT_type :$base_label
+ DW_AT_data_member_location 0 DW_FORM_sdata
+ DW_AT_accessibility 1 DW_FORM_data1
}
}
incomplete_label: DW_TAG_class_type {
- {DW_AT_name "incomplete"}
- {DW_AT_declaration 1 DW_FORM_flag_present}
+ DW_AT_name "incomplete"
+ DW_AT_declaration 1 DW_FORM_flag_present
}
ptr_base_label: DW_TAG_pointer_type {
- {DW_AT_byte_size $addr_size DW_FORM_udata}
- {DW_AT_type :$base_label}
+ DW_AT_byte_size $addr_size DW_FORM_udata
+ DW_AT_type :$base_label
}
ptr_inc_label: DW_TAG_pointer_type {
- {DW_AT_byte_size $addr_size DW_FORM_udata}
- {DW_AT_type :$incomplete_label}
+ DW_AT_byte_size $addr_size DW_FORM_udata
+ DW_AT_type :$incomplete_label
}
ptr_comp_label: DW_TAG_pointer_type {
- {DW_AT_byte_size $addr_size DW_FORM_udata}
- {DW_AT_type :$complete_label}
+ DW_AT_byte_size $addr_size DW_FORM_udata
+ DW_AT_type :$complete_label
}
ptr_int_label: DW_TAG_pointer_type {
- {DW_AT_byte_size $addr_size DW_FORM_udata}
- {DW_AT_type :$int_label}
+ DW_AT_byte_size $addr_size DW_FORM_udata
+ DW_AT_type :$int_label
}
DW_TAG_variable {
- {DW_AT_name "comp"}
- {DW_AT_type :$complete_label}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "comp"]} SPECIAL_expr}
- {DW_AT_external 1 DW_FORM_flag}
+ DW_AT_name "comp"
+ DW_AT_type :$complete_label
+ DW_AT_location [subst {DW_OP_addr [gdb_target_symbol "comp"]}] \
+ SPECIAL_expr
+ DW_AT_external 1 DW_FORM_flag
}
DW_TAG_variable {
- {DW_AT_name "cp"}
- {DW_AT_type :$ptr_comp_label}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "cp"]} SPECIAL_expr}
- {DW_AT_external 1 DW_FORM_flag}
+ DW_AT_name "cp"
+ DW_AT_type :$ptr_comp_label
+ DW_AT_location [subst {DW_OP_addr [gdb_target_symbol "cp"]}] \
+ SPECIAL_expr
+ DW_AT_external 1 DW_FORM_flag
}
DW_TAG_variable {
- {DW_AT_name "inc"}
- {DW_AT_type :$ptr_inc_label}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "inc"]} SPECIAL_expr}
- {DW_AT_external 1 DW_FORM_flag}
+ DW_AT_name "inc"
+ DW_AT_type :$ptr_inc_label
+ DW_AT_location [subst {DW_OP_addr [gdb_target_symbol "inc"]}] \
+ SPECIAL_expr
+ DW_AT_external 1 DW_FORM_flag
}
DW_TAG_variable {
- {DW_AT_name "ip"}
- {DW_AT_type :$ptr_int_label}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "ip"]} SPECIAL_expr}
- {DW_AT_external 1 DW_FORM_flag}
+ DW_AT_name "ip"
+ DW_AT_type :$ptr_int_label
+ DW_AT_location [subst {DW_OP_addr [gdb_target_symbol "ip"]}] \
+ SPECIAL_expr
+ DW_AT_external 1 DW_FORM_flag
}
DW_TAG_subprogram {
- {MACRO_AT_func {"main"}}
- {DW_AT_external 1 flag}
+ MACRO_AT_func {"main"}
+ DW_AT_external 1 flag
}
DW_TAG_subprogram {
- {MACRO_AT_func {"foo"}}
- {DW_AT_type :$int_label}
- {DW_AT_external 1 flag}
+ MACRO_AT_func {"foo"}
+ DW_AT_type :$int_label
+ DW_AT_external 1 flag
} { formal_parameter {
- {DW_AT_name "b"}
- {DW_AT_type :$ptr_base_label}
+ DW_AT_name "b"
+ DW_AT_type :$ptr_base_label
}
}
}
diff --git a/gdb/testsuite/gdb.cp/infcall-nodebug.exp.tcl b/gdb/testsuite/gdb.cp/infcall-nodebug.exp.tcl
index 0a7bc76..764d31d 100644
--- a/gdb/testsuite/gdb.cp/infcall-nodebug.exp.tcl
+++ b/gdb/testsuite/gdb.cp/infcall-nodebug.exp.tcl
@@ -71,9 +71,9 @@ proc build_and_run_test { lang symbols } {
# Startup and run to main.
- clean_restart $binfile
+ clean_restart $::testfile
- if ![runto_main] then {
+ if { ![runto_main] } {
return
}
diff --git a/gdb/testsuite/gdb.cp/method-ref-return.cc b/gdb/testsuite/gdb.cp/method-ref-return.cc
new file mode 100644
index 0000000..4169bfe
--- /dev/null
+++ b/gdb/testsuite/gdb.cp/method-ref-return.cc
@@ -0,0 +1,42 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+/* Test that we can access class method/data member via reference. */
+
+struct foo
+{
+ foo () : m_a (42) {}
+ int get_a () const { return m_a; }
+ int m_a;
+};
+
+struct bar
+{
+ bar () : m_foo () {}
+ const foo &get_foo () const { return m_foo; }
+ foo m_foo;
+};
+
+int
+main (int argc, char *argv[])
+{
+ bar b;
+ const foo &ref = b.get_foo ();
+ int ret = ref.m_a; // breakpoint here
+ ret += ref.get_a ();
+ return ret;
+} \ No newline at end of file
diff --git a/gdb/testsuite/gdb.cp/method-ref-return.exp b/gdb/testsuite/gdb.cp/method-ref-return.exp
new file mode 100644
index 0000000..1ac5ac9
--- /dev/null
+++ b/gdb/testsuite/gdb.cp/method-ref-return.exp
@@ -0,0 +1,70 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Test calling methods and accessing members via reference.
+
+require allow_cplus_tests
+
+standard_testfile .cc
+
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} {
+ return -1
+}
+
+if {![runto_main]} {
+ return -1
+}
+
+# Set a breakpoint after the bar object is created and the reference is obtained.
+gdb_breakpoint [gdb_get_line_number "breakpoint here"]
+gdb_continue_to_breakpoint "after reference assignment"
+
+# Test that we can call the method through reference and get the expected result.
+gdb_test_multiple "print b.get_foo()" "print method call returning reference" {
+ -re "\\$\[0-9\]+ = \\(const foo &\\) @$hex: \\{m_a = 42\\}\r\n$gdb_prompt $" {
+ pass $gdb_test_name
+ }
+ -re "Could not validate memory tag: Value can't be converted to integer\\." {
+ fail "$gdb_test_name"
+ }
+}
+
+# Test accessing the member through the reference.
+gdb_test "print b.get_foo ().m_a" \
+ "\\$\[0-9\]+ = 42" \
+ "print member access through reference"
+
+# Test calling method on the referenced object.
+gdb_test "print b.get_foo ().get_a()" \
+ "\\$\[0-9\]+ = 42" \
+ "print method call on referenced object"
+
+# Test that the stored reference works correctly.
+gdb_test_multiple "print ref" "print stored reference" {
+ -re "\\$\[0-9\]+ = \\(const foo &\\) @$hex: \\{m_a = 42\\}\r\n$gdb_prompt $" {
+ pass $gdb_test_name
+ }
+ -re "Could not validate memory tag: Value can't be converted to integer\\." {
+ fail "$gdb_test_name"
+ }
+}
+
+gdb_test "print ref.m_a" \
+ "\\$\[0-9\]+ = 42" \
+ "print member through stored reference"
+
+gdb_test "print ref.get_a()" \
+ "\\$\[0-9\]+ = 42" \
+ "print method call through stored reference" \ No newline at end of file
diff --git a/gdb/testsuite/gdb.cp/nsalias.exp b/gdb/testsuite/gdb.cp/nsalias.exp
index a145410..7ad2da8 100644
--- a/gdb/testsuite/gdb.cp/nsalias.exp
+++ b/gdb/testsuite/gdb.cp/nsalias.exp
@@ -56,111 +56,113 @@ standard_testfile .cc nsalias-dw.S
set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
- compile_unit {{language @DW_LANG_C_plus_plus}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C_plus_plus
+ } {
declare_labels int_label outer_label inner_label innermost_label
declare_labels im_foo_label i_foo_label o_foo_label
declare_labels OuterInner_label oi1_label oi2_label
int_label: base_type {
- {name int}
- {encoding @DW_ATE_signed}
- {byte_size 4 DW_FORM_sdata}
+ DW_AT_name int
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 4 DW_FORM_sdata
}
outer_label: DW_TAG_namespace {
- {name outer}
+ DW_AT_name outer
} {
inner_label: DW_TAG_namespace {
- {name inner}
+ DW_AT_name inner
} {
innermost_label: DW_TAG_namespace {
- {name innermost}
+ DW_AT_name innermost
} {
DW_TAG_variable {
- {name x}
- {type :$int_label}
- {const_value 2 DW_FORM_data1}
+ DW_AT_name x
+ DW_AT_type :$int_label
+ DW_AT_const_value 2 DW_FORM_data1
}
im_foo_label: DW_TAG_subprogram {
- {name foo}
- {external 1 flag_present}
- {declaration 1 flag_present}
+ DW_AT_name foo
+ DW_AT_external 1 flag_present
+ DW_AT_declaration 1 flag_present
}
}
imported_declaration {
- {name Innermost}
- {import :$innermost_label}
+ DW_AT_name Innermost
+ DW_AT_import :$innermost_label
}
DW_TAG_variable {
- {name x}
- {type :$int_label}
- {const_value 1 DW_FORM_data1}
+ DW_AT_name x
+ DW_AT_type :$int_label
+ DW_AT_const_value 1 DW_FORM_data1
}
i_foo_label: subprogram {
- {name foo}
- {external 1 flag_present}
- {declaration 1 flag_present}
+ DW_AT_name foo
+ DW_AT_external 1 flag_present
+ DW_AT_declaration 1 flag_present
}
}
OuterInner_label: imported_declaration {
- {name Inner}
- {import :$inner_label}
+ DW_AT_name Inner
+ DW_AT_import :$inner_label
}
DW_TAG_variable {
- {name x}
- {type :$int_label}
- {const_value 0 DW_FORM_data1}
+ DW_AT_name x
+ DW_AT_type :$int_label
+ DW_AT_const_value 0 DW_FORM_data1
}
o_foo_label: subprogram {
- {name foo}
- {external 1 flag_present}
- {declaration 1 flag_present}
+ DW_AT_name foo
+ DW_AT_external 1 flag_present
+ DW_AT_declaration 1 flag_present
}
}
imported_declaration {
- {name Outer}
- {import :$outer_label}
+ DW_AT_name Outer
+ DW_AT_import :$outer_label
}
oi1_label: imported_declaration {
- {name oi1}
- {import :$OuterInner_label}
+ DW_AT_name oi1
+ DW_AT_import :$OuterInner_label
}
oi2_label: imported_declaration {
- {name oi2}
- {import :$oi1_label}
+ DW_AT_name oi2
+ DW_AT_import :$oi1_label
}
imported_declaration {
- {name oi3}
- {import :$oi2_label}
+ DW_AT_name oi3
+ DW_AT_import :$oi2_label
}
subprogram {
- {specification :$im_foo_label}
- {low_pc 0x4 DW_FORM_addr}
- {high_pc 0x7 DW_FORM_addr}
+ DW_AT_specification :$im_foo_label
+ DW_AT_low_pc 0x4 DW_FORM_addr
+ DW_AT_high_pc 0x7 DW_FORM_addr
}
subprogram {
- {specification :$i_foo_label}
- {low_pc 0x8 DW_FORM_addr}
- {high_pc 0xb DW_FORM_addr}
+ DW_AT_specification :$i_foo_label
+ DW_AT_low_pc 0x8 DW_FORM_addr
+ DW_AT_high_pc 0xb DW_FORM_addr
}
subprogram {
- {specification :$o_foo_label}
- {low_pc 0xc DW_FORM_addr}
- {high_pc 0xf DW_FORM_addr}
+ DW_AT_specification :$o_foo_label
+ DW_AT_low_pc 0xc DW_FORM_addr
+ DW_AT_high_pc 0xf DW_FORM_addr
}
}
}
@@ -253,19 +255,19 @@ set imports {
declare_labels n0_label
n0_label: DW_TAG_namespace {
- {name n0}
+ DW_AT_name n0
} {
DW_TAG_variable {
- {name x}
- {type :$int_label}
- {const_value 3 DW_FORM_data1}
+ DW_AT_name x
+ DW_AT_type :$int_label
+ DW_AT_const_value 3 DW_FORM_data1
}
}
declare_labels n0_import
n0_import: imported_declaration {
- {name N0}
- {import :$n0_label}
+ DW_AT_name N0
+ DW_AT_import :$n0_label
}
}
@@ -273,8 +275,8 @@ for {set i 1} {$i <= 100} {incr i} {
append imports [format "
declare_labels n%d_import
n%d_import: imported_declaration {
- {name N%d}
- {import :\$n%d_import}
+ DW_AT_name N%d
+ DW_AT_import :\$n%d_import
}" $i $i $i [expr {$i - 1}]]
}
@@ -283,13 +285,15 @@ standard_testfile .cc nsalias-r-dw.S
set asm_file [standard_output_file $srcfile2]
set the_dwarf [format {
cu {} {
- compile_unit {{language @DW_LANG_C_plus_plus}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C_plus_plus
+ } {
declare_labels int_label n0_label
int_label: base_type {
- {name int}
- {encoding @DW_ATE_signed}
- {byte_size 4 DW_FORM_sdata}
+ DW_AT_name int
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 4 DW_FORM_sdata
}
%s
diff --git a/gdb/testsuite/gdb.cp/pr10728.exp b/gdb/testsuite/gdb.cp/pr10728.exp
index 0525ac1..8201e24 100644
--- a/gdb/testsuite/gdb.cp/pr10728.exp
+++ b/gdb/testsuite/gdb.cp/pr10728.exp
@@ -42,7 +42,7 @@ if { [gdb_compile "${tfx}.o ${tfy}.o" ${binfile} executable {debug c++}] != ""
return -1
}
-clean_restart $binfile
+clean_restart $::testfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.cp/print-global-stub.exp b/gdb/testsuite/gdb.cp/print-global-stub.exp
index 139e8b1..d847c00 100644
--- a/gdb/testsuite/gdb.cp/print-global-stub.exp
+++ b/gdb/testsuite/gdb.cp/print-global-stub.exp
@@ -19,14 +19,15 @@
require allow_cplus_tests
standard_testfile .cc
-set objfile [standard_output_file ${testfile}.o]
+set testfile $testfile.o
+set binfile [standard_output_file $testfile]
-if { [gdb_compile $srcdir/$subdir/$srcfile $objfile object \
+if { [gdb_compile $srcdir/$subdir/$srcfile $binfile object \
{c++ debug}] != "" } {
untested "failed to compile"
return -1
}
-clean_restart $objfile
+clean_restart $testfile
gdb_test "print s" " = <incomplete type>"
diff --git a/gdb/testsuite/gdb.cp/psmang.exp b/gdb/testsuite/gdb.cp/psmang.exp
index acc7b3b..67bc9cd9 100644
--- a/gdb/testsuite/gdb.cp/psmang.exp
+++ b/gdb/testsuite/gdb.cp/psmang.exp
@@ -190,6 +190,6 @@ gdb_test "break s::method1" "Breakpoint .* at .*: file .*psmang1.cc.*"
# We have to exit and restart GDB here, to make sure that all the
# compilation units are psymtabs again.
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_test "break s::method2" "Breakpoint .* at .*: file .*psmang2.cc.*"
diff --git a/gdb/testsuite/gdb.cp/ref-params.exp b/gdb/testsuite/gdb.cp/ref-params.exp
index 97a56ab..4f2cbb5 100644
--- a/gdb/testsuite/gdb.cp/ref-params.exp
+++ b/gdb/testsuite/gdb.cp/ref-params.exp
@@ -32,7 +32,7 @@ proc gdb_start_again { text } {
global binfile
global srcfile
- clean_restart $binfile
+ clean_restart $::testfile
runto ${srcfile}:[gdb_get_line_number $text]
}
diff --git a/gdb/testsuite/gdb.cp/rvalue-ref-params.exp b/gdb/testsuite/gdb.cp/rvalue-ref-params.exp
index 8a5e66f..267dbc7 100644
--- a/gdb/testsuite/gdb.cp/rvalue-ref-params.exp
+++ b/gdb/testsuite/gdb.cp/rvalue-ref-params.exp
@@ -30,7 +30,7 @@ proc gdb_start_again {text prefix} {
global srcfile
with_test_prefix $prefix {
- clean_restart $binfile
+ clean_restart $::testfile
runto ${srcfile}:[gdb_get_line_number $text]
}
diff --git a/gdb/testsuite/gdb.ctf/cross-tu-cyclic.exp b/gdb/testsuite/gdb.ctf/cross-tu-cyclic.exp
index 922729f..2a0e999 100644
--- a/gdb/testsuite/gdb.ctf/cross-tu-cyclic.exp
+++ b/gdb/testsuite/gdb.ctf/cross-tu-cyclic.exp
@@ -37,6 +37,6 @@ gdb_test_no_output "set always-read-ctf on"
gdb_load $binfile
# Same thing with struct and union.
-gdb_test "ptype struct A" "type = struct A \{\[\r\n\]+\[ \t\]+struct B \\*foo;\[\r\n\]+\}.*" "ptype structure A"
-gdb_test "ptype struct B" "type = struct B \{\[\r\n\]+\[ \t\]+struct B \\*next;\[\r\n\]+\}.*" "ptype structure B"
+gdb_test "ptype struct A" "type = struct A \{\[\r\n\]+\[ \t\]+long a;\[\r\n\]+\[ \t\]+struct B \\*foo;\[\r\n\]+\}.*" "ptype structure A"
+gdb_test "ptype struct B" "type = struct B \{\[\r\n\]+\[ \t\]+int foo;\[\r\n\]+\[ \t\]+struct A \\*bar;\[\r\n\]+\}.*" "ptype structure B"
gdb_test "ptype struct C" "type = struct C \{\[\r\n\]+\[ \t\]+struct B \\*foo;\[\r\n\]+\[ \t\]+int b;\[\r\n\]+\}.*" "ptype structure C"
diff --git a/gdb/testsuite/gdb.ctf/funcreturn.exp b/gdb/testsuite/gdb.ctf/funcreturn.exp
index 4d13531..55ee969 100644
--- a/gdb/testsuite/gdb.ctf/funcreturn.exp
+++ b/gdb/testsuite/gdb.ctf/funcreturn.exp
@@ -15,7 +15,7 @@
require allow_ctf_tests
-if [target_info exists no_long_long] {
+if {[target_info exists no_long_long]} {
set exec_opts [list debug additional_flags=-DNO_LONG_LONG]
} else {
set exec_opts [list debug]
@@ -91,7 +91,7 @@ gdb_test "print v_unsigned_long_func" \
"$decimal = \{unsigned long|long \\(\\)\} 0x\[0-9a-z\]+ <v_unsigned_long_func>.*" \
"print unsigned long function"
-if ![target_info exists no_long_long] {
+if {![target_info exists no_long_long]} {
gdb_test "print v_long_long_func" \
"$decimal = \{long long \\(\\)\} 0x\[0-9a-z\]+ <v_long_long_func>.*" \
"print long long function"
@@ -164,7 +164,7 @@ gdb_test "whatis v_unsigned_long_func" \
"type = (unsigned (int|long|long int)|long unsigned int) \\($void\\)" \
"whatis unsigned long function"
-if ![target_info exists no_long_long] {
+if {![target_info exists no_long_long]} {
gdb_test "whatis v_long_long_func" \
"type = long long(| int) \\($void\\)" \
"whatis long long function"
diff --git a/gdb/testsuite/gdb.dap/bt-nodebug.exp b/gdb/testsuite/gdb.dap/bt-nodebug.exp
index 3053f8c..8188a98 100644
--- a/gdb/testsuite/gdb.dap/bt-nodebug.exp
+++ b/gdb/testsuite/gdb.dap/bt-nodebug.exp
@@ -71,6 +71,7 @@ gdb_assert {[dict exists [lindex $breakpoints 0] instructionReference]} \
# slipped in that caused this to be incorrect, so we test both parts
# here; to test whether a string was given, we have to reach into the
# TON form.
+# tclint-disable-next-line command-args
set list_form [namespace eval ton::2list $last_ton]
set ref [namespace eval ton::2list {
get $list_form body breakpoints 0 instructionReference
diff --git a/gdb/testsuite/gdb.dap/catch-exception.exp b/gdb/testsuite/gdb.dap/catch-exception.exp
index ced2cc5..0e8c27a 100644
--- a/gdb/testsuite/gdb.dap/catch-exception.exp
+++ b/gdb/testsuite/gdb.dap/catch-exception.exp
@@ -35,7 +35,7 @@ set obj [dap_check_request_and_response "set exception catchpoints" \
setExceptionBreakpoints \
{o filters [a [s nosuchfilter] [s assert]] \
filterOptions [a [o filterId [s exception] \
- condition [s "Global_Var = 23"]]]}]
+ condition [s program_error]]]}]
set bps [dict get [lindex $obj 0] body breakpoints]
# We should get three responses, because we requested three
@@ -77,6 +77,20 @@ dap_wait_for_event_and_check "stopped at first raise" stopped \
"body reason" breakpoint \
"body hitBreakpointIds" 2
+set found_line -1
+set line [gdb_get_line_number "EXPECTED" $testdir/prog.adb]
+set bt [lindex [dap_check_request_and_response "backtrace" stackTrace \
+ {o threadId [i 1]}] \
+ 0]
+foreach frame [dict get $bt body stackFrames] {
+ if {[dict exists $frame source path]
+ && [file tail [dict get $frame source path]] == "prog.adb"} {
+ set found_line [dict get $frame line]
+ }
+}
+
+gdb_assert {$found_line == $line} "stopped at correct raise"
+
dap_check_request_and_response "continue to assert" continue \
{o threadId [i 1]}
dap_wait_for_event_and_check "stopped at assert" stopped \
diff --git a/gdb/testsuite/gdb.dap/catch-exception/prog.adb b/gdb/testsuite/gdb.dap/catch-exception/prog.adb
index ed60272..7a5a31d 100644
--- a/gdb/testsuite/gdb.dap/catch-exception/prog.adb
+++ b/gdb/testsuite/gdb.dap/catch-exception/prog.adb
@@ -19,15 +19,14 @@ procedure Prog is
begin
begin
- raise Program_Error;
+ raise Constraint_Error;
exception
when others =>
null;
end;
begin
- Global_Var := 23;
- raise Program_Error;
+ raise Program_Error; -- EXPECTED
exception
when others =>
null;
diff --git a/gdb/testsuite/gdb.dap/eof.exp b/gdb/testsuite/gdb.dap/eof.exp
index 4752347..5c709ed 100644
--- a/gdb/testsuite/gdb.dap/eof.exp
+++ b/gdb/testsuite/gdb.dap/eof.exp
@@ -30,8 +30,10 @@ if {[dap_initialize] == ""} {
return
}
-catch "close -i $gdb_spawn_id"
-catch "wait -i $gdb_spawn_id"
+# Expect support is missing ( https://github.com/nmoroze/tclint/issues/118 ).
+# tclint-disable-next-line command-args
+catch {close -i $gdb_spawn_id}
+catch {wait -i $gdb_spawn_id}
unset gdb_spawn_id
dap_check_log_file
diff --git a/gdb/testsuite/gdb.dap/scopes.c b/gdb/testsuite/gdb.dap/scopes.c
index d8929f1..2a1d76c 100644
--- a/gdb/testsuite/gdb.dap/scopes.c
+++ b/gdb/testsuite/gdb.dap/scopes.c
@@ -27,6 +27,8 @@ int main ()
static int scalar = 23;
+ void *ptr = (void *) &scalar;
+
{
const char *inner = "inner block";
diff --git a/gdb/testsuite/gdb.dap/scopes.exp b/gdb/testsuite/gdb.dap/scopes.exp
index 59d344b..52efa68 100644
--- a/gdb/testsuite/gdb.dap/scopes.exp
+++ b/gdb/testsuite/gdb.dap/scopes.exp
@@ -70,7 +70,8 @@ lassign $scopes scope reg_scope
gdb_assert {[dict get $scope name] == "Locals"} "scope is locals"
gdb_assert {[dict get $scope presentationHint] == "locals"} \
"locals presentation hint"
-gdb_assert {[dict get $scope namedVariables] == 3} "three vars in scope"
+set count [dict get $scope namedVariables]
+gdb_assert {$count == 4} "four vars in scope"
gdb_assert {[dict get $reg_scope name] == "Registers"} \
"second scope is registers"
@@ -89,8 +90,8 @@ set refs1 [lindex [dap_check_request_and_response "fetch variables 0,1" \
set refs2 [lindex [dap_check_request_and_response "fetch variables 2" \
"variables" \
[format {o variablesReference [i %d] \
- start [i 2] count [i 1]} \
- $num]] \
+ start [i 2] count [i %d]} \
+ $num [expr {$count - 2}]]] \
0]
set vars [concat [dict get $refs1 body variables] \
@@ -115,6 +116,10 @@ foreach var $vars {
"scalar" {
gdb_assert {[dict get $var value] == 23} "check value of scalar"
}
+ "ptr" {
+ gdb_assert {[dict get $var memoryReference] != ""} \
+ "check memoryReference of ptr"
+ }
default {
fail "unknown variable $name"
}
@@ -128,11 +133,38 @@ set refs [lindex [dap_check_request_and_response "fetch contents of dei" \
set deivals [dict get $refs body variables]
gdb_assert {[llength $deivals] == 2} "dei has two members"
+# Request more children than exist. See PR dap/33228.
+set seq [dap_send_request variables \
+ [format {o variablesReference [i %d] count [i 100]} $dei_ref]]
+lassign [dap_read_response variables $seq] response ignore
+gdb_assert {[dict get $response success] == "false"} \
+ "variables with invalid count"
+
set num [dict get $reg_scope variablesReference]
-# The request succeeding is sufficient.
-set val [dap_check_request_and_response "fetch first register" \
+lassign [dap_check_request_and_response "fetch all registers" \
"variables" \
- [format {o variablesReference [i %d] count [i 1]} $num]]
+ [format {o variablesReference [i %d] count [i %d]} $num\
+ [dict get $reg_scope namedVariables]]] \
+ val events
+
+# If any register has children, try to fetch those as well. This is a
+# regression test for part of PR dap/33228.
+foreach var [dict get $val body variables] {
+ set regvar [dict get $var variablesReference]
+ if {$regvar > 0} {
+ # If variablesReference is non-zero, then there must be either
+ # named or indexed children.
+ if {[dict exists $var namedVariables]} {
+ set n [dict get $var namedVariables]
+ } else {
+ set n [dict get $var indexedVariables]
+ }
+
+ dap_check_request_and_response "fetch register children for $regvar" \
+ "variables" \
+ [format {o variablesReference [i %d] count [i %d]} $regvar $n]
+ }
+}
set num [dict get $scope variablesReference]
set refs [lindex [dap_check_request_and_response "set variable scalar" \
diff --git a/gdb/testsuite/gdb.debuginfod/corefile-mapped-file.exp b/gdb/testsuite/gdb.debuginfod/corefile-mapped-file.exp
index dac4e6c..c85cfb1 100644
--- a/gdb/testsuite/gdb.debuginfod/corefile-mapped-file.exp
+++ b/gdb/testsuite/gdb.debuginfod/corefile-mapped-file.exp
@@ -69,14 +69,15 @@ standard_testfile -1.c -2.c -3.c
# shared library, then use GDB to figure out the offset of the
# variable 'library_ptr' within the library.
set library_filename [standard_output_file "libfoo.so"]
-set binfile2 [standard_output_file "library_loader"]
+set testfile2 "library_loader"
+set binfile2 [standard_output_file $testfile2]
if {[prepare_for_testing_full "build exec which loads the shared library" \
[list $library_filename \
{ debug shlib build-id \
additional_flags=-DPOINTER_VALUE=0x12345678 } \
$srcfile2 {}] \
- [list $binfile2 [list debug shlib=$library_filename ] \
+ [list $testfile2 [list debug shlib=$library_filename ] \
$srcfile { debug }]] != 0} {
return
}
@@ -160,7 +161,7 @@ if { $ptr_expected_value eq "" } {
# Load this executable within GDB and confirm that we can use the
# offset we calculated previously to view the value of 'library_ptr'.
set opts [list debug additional_flags=-DSHLIB_FILENAME=\"$library_filename\"]
-if {[prepare_for_testing "prepare second executable" $binfile \
+if {[prepare_for_testing "prepare second executable" $testfile \
$srcfile3 $opts] != 0} {
return
}
@@ -174,7 +175,7 @@ gdb_continue_to_breakpoint "run to breakpoint"
set library_base_address \
[get_hexadecimal_valueof "library_base_address" "unknown"]
-set ptr_address [format 0x%x [expr $library_base_address + $ptr_offset]]
+set ptr_address [format 0x%x [expr {$library_base_address + $ptr_offset}]]
set ptr_value [read_ptr_value]
gdb_assert { $ptr_value == $ptr_expected_value } \
@@ -268,13 +269,13 @@ proc load_core_file { testname { line_re "" } } {
# And now restart GDB, load the core-file and check that the library shows as
# being mapped in, and that we can still read the library_ptr value from
# memory.
-clean_restart $binfile
+clean_restart $::testfile
load_core_file "load core file"
set library_base_address [get_hexadecimal_valueof "library_base_address" \
"unknown" "get library_base_address in core-file"]
-set ptr_address [format 0x%x [expr $library_base_address + $ptr_offset]]
+set ptr_address [format 0x%x [expr {$library_base_address + $ptr_offset}]]
set ptr_value [read_ptr_value]
gdb_assert { $ptr_value == $ptr_expected_value } \
@@ -287,7 +288,7 @@ gdb_assert { $ptr_value == $ptr_expected_value } \
set library_backup_filename [standard_output_file "libfoo.so.backup"]
remote_exec build "mv \"$library_filename\" \"$library_backup_filename\""
-clean_restart $binfile
+clean_restart $::testfile
load_core_file "load corefile with library file missing" \
"warning: Can't open file [string_to_regexp $library_filename] during file-backed mapping note processing"
@@ -309,7 +310,7 @@ set build_id_filename \
remote_exec build "mkdir -p [file dirname $build_id_filename]"
remote_exec build "ln -sf $library_backup_filename $build_id_filename"
-clean_restart $binfile
+clean_restart $::testfile
gdb_test_no_output "set debug-file-directory $debugdir" \
"set debug-file-directory"
@@ -331,7 +332,7 @@ if {[build_executable "build second version of shared library" \
return
}
-clean_restart $binfile
+clean_restart $::testfile
load_core_file "load corefile with wrong library in place" \
"warning: File [string_to_regexp $library_filename] doesn't match build-id from core-file during file-backed mapping processing"
diff --git a/gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.exp b/gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.exp
index 4b3894e..292be70 100644
--- a/gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.exp
+++ b/gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.exp
@@ -56,7 +56,7 @@ proc write_just_debugaltlink {filename dwzname buildid} {
# Only the DWARF reader checks .gnu_debugaltlink, so make sure
# there is a bit of DWARF in here.
cu {} {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {DW_AT_language @DW_LANG_C} {
}
}
}
@@ -76,17 +76,19 @@ proc write_dwarf_file {filename buildid {value 99}} {
build_id $buildid
cu {} {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
int_label2: base_type {
- {name int}
- {byte_size 4 sdata}
- {encoding @DW_ATE_signed}
+ DW_AT_name int
+ DW_AT_byte_size 4 sdata
+ DW_AT_encoding @DW_ATE_signed
}
constant {
- {name the_int}
- {type :$int_label2}
- {const_value $value data1}
+ DW_AT_name the_int
+ DW_AT_type :$int_label2
+ DW_AT_const_value $value data1
}
}
}
@@ -107,7 +109,7 @@ proc_with_prefix no_url { } {
setenv DEBUGINFOD_URLS ""
# Test that GDB cannot find source without debuginfod.
- clean_restart $binfile
+ clean_restart $::testfile
gdb_test_no_output "set substitute-path $outputdir /dev/null" \
"set substitute-path"
gdb_test "list" ".*No such file or directory.*"
@@ -126,7 +128,7 @@ proc_with_prefix no_url { } {
file rename -force $debuginfo $debugdir
# Test that GDB cannot find symbols without debuginfod.
- clean_restart $binfile
+ clean_restart $::testfile
gdb_test "file" ".*No symbol file.*"
set buildid "01234567890abcdef0123456"
@@ -157,7 +159,7 @@ proc_with_prefix no_url { } {
# Generate a core file and test that GDB cannot find the
# executable.
- clean_restart ${binfile}2
+ clean_restart ${::testfile}2
if ![runto_main] {
return -1
}
diff --git a/gdb/testsuite/gdb.debuginfod/solib-with-soname.exp b/gdb/testsuite/gdb.debuginfod/solib-with-soname.exp
index 1008e46..67d9237 100644
--- a/gdb/testsuite/gdb.debuginfod/solib-with-soname.exp
+++ b/gdb/testsuite/gdb.debuginfod/solib-with-soname.exp
@@ -132,7 +132,7 @@ if {$corefile eq ""} {
proc load_exec_and_core_file { expect_warning expect_download testname \
{debugdir ""} } {
with_test_prefix $testname {
- clean_restart $::binfile
+ clean_restart $::testfile
if { $debugdir ne "" } {
gdb_test_no_output "set debug-file-directory $debugdir" \
diff --git a/gdb/testsuite/gdb.disasm/am33.exp b/gdb/testsuite/gdb.disasm/am33.exp
index b5ae981..7515da1 100644
--- a/gdb/testsuite/gdb.disasm/am33.exp
+++ b/gdb/testsuite/gdb.disasm/am33.exp
@@ -795,7 +795,7 @@ proc dsp_autoincrement_tests { } {
}
}
-clean_restart $binfile
+clean_restart $::testfile
call_tests
movm_tests
diff --git a/gdb/testsuite/gdb.disasm/basics.exp b/gdb/testsuite/gdb.disasm/basics.exp
index e54dced..9be9945 100644
--- a/gdb/testsuite/gdb.disasm/basics.exp
+++ b/gdb/testsuite/gdb.disasm/basics.exp
@@ -22,7 +22,7 @@ if { [prepare_for_testing "failed to prepare" $testfile ${srcfile}] == -1 } {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.disasm/hppa.exp b/gdb/testsuite/gdb.disasm/hppa.exp
index e330809..10b5cb5 100644
--- a/gdb/testsuite/gdb.disasm/hppa.exp
+++ b/gdb/testsuite/gdb.disasm/hppa.exp
@@ -23,7 +23,7 @@ set srcfile ${srcdir}/${subdir}/${testfile}.s
set binfile ${objdir}/${subdir}/${testfile}
set comp_output [gdb_compile "${srcfile}" "${binfile}" executable ""]
if { $comp_output != "" } {
- if [ regexp "Opcode not defined - DIAG" $comp_output] {
+ if {[regexp "Opcode not defined - DIAG" $comp_output]} {
warning "HP assembler in use--skipping disasm tests"
return
} else {
@@ -686,7 +686,7 @@ proc all_integer_computational_tests { } {
}
}
- set subi_insns [list {subi} {subio} {comiclr} ]
+ set subi_insns [list {subi} {subio} {comiclr}]
foreach i $subi_insns {
send_gdb "x/16i $i"; send_gdb "_tests\n"
@@ -746,7 +746,7 @@ proc all_integer_computational_tests { } {
timeout { fail "(timeout) "shd tests" }
}
- set extract_insns1 [list {extru} {extrs} {zdep} {dep} ]
+ set extract_insns1 [list {extru} {extrs} {zdep} {dep}]
foreach i $extract_insns1 {
send_gdb "x/8i $i"; send_gdb "_tests\n"
@@ -766,7 +766,7 @@ proc all_integer_computational_tests { } {
}
}
- set extract_insns2 [list {vextru} {vextrs} {zvdep} {vdep} ]
+ set extract_insns2 [list {vextru} {vextrs} {zvdep} {vdep}]
foreach i $extract_insns2 {
send_gdb "x/8i $i"; send_gdb "_tests\n"
@@ -786,7 +786,7 @@ proc all_integer_computational_tests { } {
}
}
- set extract_insns3 [list {vdepi} {zvdepi} ]
+ set extract_insns3 [list {vdepi} {zvdepi}]
foreach i $extract_insns3 {
send_gdb "x/8i $i"; send_gdb "_tests\n"
@@ -806,7 +806,7 @@ proc all_integer_computational_tests { } {
}
}
- set extract_insns4 [list {depi} {zdepi} ]
+ set extract_insns4 [list {depi} {zdepi}]
foreach i $extract_insns4 {
send_gdb "x/8i $i"; send_gdb "_tests\n"
@@ -1365,7 +1365,7 @@ proc fmemLRbug_tests { } {
}
}
-clean_restart $binfile
+clean_restart $::testfile
all_integer_memory_tests
all_immediate_tests
diff --git a/gdb/testsuite/gdb.disasm/mn10300.exp b/gdb/testsuite/gdb.disasm/mn10300.exp
index 55ce96c..74e7c7c 100644
--- a/gdb/testsuite/gdb.disasm/mn10300.exp
+++ b/gdb/testsuite/gdb.disasm/mn10300.exp
@@ -529,7 +529,7 @@ proc sub_tests { } {
}
}
-clean_restart $binfile
+clean_restart $::testfile
add_tests
bcc_tests
diff --git a/gdb/testsuite/gdb.disasm/sh3.exp b/gdb/testsuite/gdb.disasm/sh3.exp
index 09b27a0..fc591a7 100644
--- a/gdb/testsuite/gdb.disasm/sh3.exp
+++ b/gdb/testsuite/gdb.disasm/sh3.exp
@@ -100,7 +100,7 @@ proc all_fp_misc_tests { } {
}
}
-clean_restart $binfile
+clean_restart $::testfile
all_fp_move_and_load_tests
all_fp_arithmetic_tests
diff --git a/gdb/testsuite/gdb.dlang/circular.exp b/gdb/testsuite/gdb.dlang/circular.exp
index e318945..cc79062 100644
--- a/gdb/testsuite/gdb.dlang/circular.exp
+++ b/gdb/testsuite/gdb.dlang/circular.exp
@@ -27,98 +27,98 @@ set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_D}
+ DW_AT_language @DW_LANG_D
} {
declare_labels circular1_label circular2_label circular3_label
declare_labels circular4_label circular5_label
circular1_label: module {
- {name circular1}
+ DW_AT_name circular1
} {
imported_module {
- {import :$circular2_label}
+ DW_AT_import :$circular2_label
}
imported_module {
- {import :$circular3_label}
+ DW_AT_import :$circular3_label
}
imported_module {
- {import :$circular4_label}
+ DW_AT_import :$circular4_label
}
imported_module {
- {import :$circular5_label}
+ DW_AT_import :$circular5_label
}
subprogram {
- {external 1 flag_present}
- {MACRO_AT_func {found}}
+ DW_AT_external 1 flag_present
+ MACRO_AT_func {found}
}
}
circular2_label: module {
- {name circular2}
+ DW_AT_name circular2
} {
imported_module {
- {import :$circular1_label}
+ DW_AT_import :$circular1_label
}
imported_module {
- {import :$circular3_label}
+ DW_AT_import :$circular3_label
}
imported_module {
- {import :$circular4_label}
+ DW_AT_import :$circular4_label
}
imported_module {
- {import :$circular5_label}
+ DW_AT_import :$circular5_label
}
}
circular3_label: module {
- {name circular3}
+ DW_AT_name circular3
} {
imported_module {
- {import :$circular1_label}
+ DW_AT_import :$circular1_label
}
imported_module {
- {import :$circular2_label}
+ DW_AT_import :$circular2_label
}
imported_module {
- {import :$circular4_label}
+ DW_AT_import :$circular4_label
}
imported_module {
- {import :$circular5_label}
+ DW_AT_import :$circular5_label
}
}
circular4_label: module {
- {name circular4}
+ DW_AT_name circular4
} {
imported_module {
- {import :$circular1_label}
+ DW_AT_import :$circular1_label
}
imported_module {
- {import :$circular2_label}
+ DW_AT_import :$circular2_label
}
imported_module {
- {import :$circular3_label}
+ DW_AT_import :$circular3_label
}
imported_module {
- {import :$circular5_label}
+ DW_AT_import :$circular5_label
}
}
circular5_label: module {
- {name circular5}
+ DW_AT_name circular5
} {
imported_module {
- {import :$circular1_label}
+ DW_AT_import :$circular1_label
}
imported_module {
- {import :$circular2_label}
+ DW_AT_import :$circular2_label
}
imported_module {
- {import :$circular3_label}
+ DW_AT_import :$circular3_label
}
imported_module {
- {import :$circular4_label}
+ DW_AT_import :$circular4_label
}
}
}
diff --git a/gdb/testsuite/gdb.dlang/demangle.exp b/gdb/testsuite/gdb.dlang/demangle.exp
index 75c2f79..4181513 100644
--- a/gdb/testsuite/gdb.dlang/demangle.exp
+++ b/gdb/testsuite/gdb.dlang/demangle.exp
@@ -197,7 +197,7 @@ proc test_d_demangling {} {
clean_restart
-if [set_lang_d] {
+if {[set_lang_d]} {
gdb_test_no_output "set width 0"
test_d_demangling
diff --git a/gdb/testsuite/gdb.dlang/dlang-start-2.exp b/gdb/testsuite/gdb.dlang/dlang-start-2.exp
index 403dcfd..b5c0542 100644
--- a/gdb/testsuite/gdb.dlang/dlang-start-2.exp
+++ b/gdb/testsuite/gdb.dlang/dlang-start-2.exp
@@ -40,24 +40,24 @@ Dwarf::assemble $asm_file {
cu { label cu_start } {
compile_unit {
- {language @DW_LANG_D}
+ DW_AT_language @DW_LANG_D
} {
module {
- {name dmain}
+ DW_AT_name dmain
}
subprogram {
- {name "D main" }
- {MIPS_linkage_name "_Dmain"}
- {low_pc $dmain_start DW_FORM_addr}
- {high_pc "$dmain_start + $dmain_length" DW_FORM_addr}
- {external 1 flag_present}
+ DW_AT_name "D main"
+ DW_AT_MIPS_linkage_name "_Dmain"
+ DW_AT_low_pc $dmain_start DW_FORM_addr
+ DW_AT_high_pc "$dmain_start + $dmain_length" DW_FORM_addr
+ DW_AT_external 1 flag_present
}
subprogram {
- {name "dmain._d_cmain!().main" }
- {MIPS_linkage_name "main"}
- {low_pc $main_start DW_FORM_addr}
- {high_pc "$main_start + $main_length" DW_FORM_addr}
- {external 1 flag_present}
+ DW_AT_name "dmain._d_cmain!().main"
+ DW_AT_MIPS_linkage_name "main"
+ DW_AT_low_pc $main_start DW_FORM_addr
+ DW_AT_high_pc "$main_start + $main_length" DW_FORM_addr
+ DW_AT_external 1 flag_present
}
}
}
diff --git a/gdb/testsuite/gdb.dlang/expression.exp b/gdb/testsuite/gdb.dlang/expression.exp
index 0d22cee..6e611ed 100644
--- a/gdb/testsuite/gdb.dlang/expression.exp
+++ b/gdb/testsuite/gdb.dlang/expression.exp
@@ -129,7 +129,7 @@ proc test_d_expressions {} {
clean_restart
-if [set_lang_d] {
+if {[set_lang_d]} {
test_d_integer_literals
test_d_float_literals
test_d_expressions
diff --git a/gdb/testsuite/gdb.dlang/primitive-types.exp b/gdb/testsuite/gdb.dlang/primitive-types.exp
index 8e74520..9e6e8fa 100644
--- a/gdb/testsuite/gdb.dlang/primitive-types.exp
+++ b/gdb/testsuite/gdb.dlang/primitive-types.exp
@@ -51,7 +51,7 @@ proc test_builtin_d_types_accepted {} {
clean_restart
-if [set_lang_d] {
+if {[set_lang_d]} {
test_builtin_d_types_accepted
} else {
warning "D type tests suppressed."
diff --git a/gdb/testsuite/gdb.dlang/properties.exp b/gdb/testsuite/gdb.dlang/properties.exp
index 0fe18a5..d0266f8 100644
--- a/gdb/testsuite/gdb.dlang/properties.exp
+++ b/gdb/testsuite/gdb.dlang/properties.exp
@@ -82,7 +82,7 @@ proc test_d_typeof {} {
clean_restart
-if [set_lang_d] {
+if {[set_lang_d]} {
test_d_sizeof
test_d_typeof
} else {
diff --git a/gdb/testsuite/gdb.dlang/watch-loc.exp b/gdb/testsuite/gdb.dlang/watch-loc.exp
index ec50e91..7cfc539 100644
--- a/gdb/testsuite/gdb.dlang/watch-loc.exp
+++ b/gdb/testsuite/gdb.dlang/watch-loc.exp
@@ -33,30 +33,30 @@ Dwarf::assemble $asm_file {
cu { label cu_start } {
compile_unit {
- {language @DW_LANG_D}
+ DW_AT_language @DW_LANG_D
} {
declare_labels watch_module_label watch_struct_label
watch_module_label: module {
- {name watch}
+ DW_AT_name watch
} {
watch_struct_label: structure_type {
- {name tstruct}
- {byte_size 1 data1}
+ DW_AT_name tstruct
+ DW_AT_byte_size 1 data1
}
tag_variable {
- {name my_data}
- {type :$watch_struct_label}
- {location {
+ DW_AT_name my_data
+ DW_AT_type :$watch_struct_label
+ DW_AT_location [subst {
addr [gdb_target_symbol my_data]
- } SPECIAL_expr}
- {external 1 flag}
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
}
subprogram {
- {MACRO_AT_func { "_Dmain" }}
- {external 1 flag_present}
+ MACRO_AT_func { "_Dmain" }
+ DW_AT_external 1 flag_present
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/DW_OP_piece_with_DW_OP_GNU_uninit.exp b/gdb/testsuite/gdb.dwarf2/DW_OP_piece_with_DW_OP_GNU_uninit.exp
index 6735207..291bc83 100644
--- a/gdb/testsuite/gdb.dwarf2/DW_OP_piece_with_DW_OP_GNU_uninit.exp
+++ b/gdb/testsuite/gdb.dwarf2/DW_OP_piece_with_DW_OP_GNU_uninit.exp
@@ -35,37 +35,37 @@ Dwarf::assemble $asm_file {
declare_labels i64_type i32_type
i64_type: base_type {
- {name "int64_t"}
- {encoding @DW_ATE_signed}
- {byte_size 8 DW_FORM_sdata}
+ DW_AT_name "int64_t"
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 8 DW_FORM_sdata
}
i32_type: base_type {
- {name "int32_t"}
- {encoding @DW_ATE_signed}
- {byte_size 4 DW_FORM_sdata}
+ DW_AT_name "int32_t"
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 4 DW_FORM_sdata
}
DW_TAG_variable {
- {name i64_var}
- {type :$i64_type}
- {location {
+ DW_AT_name i64_var
+ DW_AT_type :$i64_type
+ DW_AT_location [subst {
DW_OP_constu $::c64
DW_OP_stack_value
DW_OP_GNU_uninit
DW_OP_piece 8
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
DW_TAG_variable {
- {name i32_var}
- {type :$i32_type}
- {location {
+ DW_AT_name i32_var
+ DW_AT_type :$i32_type
+ DW_AT_location [subst {
DW_OP_constu $::c32
DW_OP_stack_value
DW_OP_GNU_uninit
DW_OP_piece 4
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/ada-array-bound.exp b/gdb/testsuite/gdb.dwarf2/ada-array-bound.exp
index f48df7b..779ce00 100644
--- a/gdb/testsuite/gdb.dwarf2/ada-array-bound.exp
+++ b/gdb/testsuite/gdb.dwarf2/ada-array-bound.exp
@@ -31,49 +31,50 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_Ada95}
- {DW_AT_name $srcfile}
+ DW_AT_language @DW_LANG_Ada95
+ DW_AT_name $srcfile
} {
declare_labels byte array disc struct
byte: DW_TAG_base_type {
- {DW_AT_byte_size 1 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_unsigned}
- {DW_AT_name byte}
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_name byte
}
array: DW_TAG_array_type {
- {DW_AT_name array_type}
- {DW_AT_type :$byte}
+ DW_AT_name array_type
+ DW_AT_type :$byte
} {
DW_TAG_subrange_type {
- {DW_AT_type :$byte}
- {DW_AT_upper_bound :$disc}
+ DW_AT_type :$byte
+ DW_AT_upper_bound :$disc
}
}
struct: DW_TAG_structure_type {
- {DW_AT_name discriminated}
- {DW_AT_byte_size 4 DW_FORM_sdata}
+ DW_AT_name discriminated
+ DW_AT_byte_size 4 DW_FORM_sdata
} {
disc: DW_TAG_member {
- {DW_AT_name disc}
- {DW_AT_type :$byte}
- {DW_AT_data_member_location 0 DW_FORM_sdata}
+ DW_AT_name disc
+ DW_AT_type :$byte
+ DW_AT_data_member_location 0 DW_FORM_sdata
}
DW_TAG_member {
- {DW_AT_name nums}
- {DW_AT_type :$array}
- {DW_AT_data_member_location 1 DW_FORM_sdata}
+ DW_AT_name nums
+ DW_AT_type :$array
+ DW_AT_data_member_location 1 DW_FORM_sdata
}
}
DW_TAG_variable {
- {DW_AT_name "value"}
- {DW_AT_type :$struct}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "our_data"]}
- SPECIAL_expr}
+ DW_AT_name "value"
+ DW_AT_type :$struct
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location \
+ [subst {DW_OP_addr [gdb_target_symbol "our_data"]}] \
+ SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/ada-cold-name.exp b/gdb/testsuite/gdb.dwarf2/ada-cold-name.exp
index c5758c2..3520319 100644
--- a/gdb/testsuite/gdb.dwarf2/ada-cold-name.exp
+++ b/gdb/testsuite/gdb.dwarf2/ada-cold-name.exp
@@ -30,28 +30,28 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_Ada95}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
+ DW_AT_language @DW_LANG_Ada95
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
} {
declare_labels b_l
b_l: DW_TAG_base_type {
- {DW_AT_byte_size 1 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name bool}
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name bool
}
DW_TAG_subprogram {
- {name pck__xtra__function.cold}
- {MACRO_AT_range {first}}
- {type :$b_l}
+ DW_AT_name pck__xtra__function.cold
+ MACRO_AT_range {first}
+ DW_AT_type :$b_l
}
DW_TAG_subprogram {
- {name pck__xtra__function}
- {MACRO_AT_range {second}}
- {type :$b_l}
+ DW_AT_name pck__xtra__function
+ MACRO_AT_range {second}
+ DW_AT_type :$b_l
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/ada-linkage-name.exp b/gdb/testsuite/gdb.dwarf2/ada-linkage-name.exp
index 9f2061c..915f47e 100644
--- a/gdb/testsuite/gdb.dwarf2/ada-linkage-name.exp
+++ b/gdb/testsuite/gdb.dwarf2/ada-linkage-name.exp
@@ -31,31 +31,31 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_Ada95}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
+ DW_AT_language @DW_LANG_Ada95
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
} {
declare_labels b_l
b_l: DW_TAG_base_type {
- {DW_AT_byte_size 1 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name bool}
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name bool
}
# Here the name comes first and the linkage name second.
DW_TAG_subprogram {
- {name system__namefirst}
- {linkage_name __gnat_namefirst}
- {MACRO_AT_range {first}}
- {type :$b_l}
+ DW_AT_name system__namefirst
+ DW_AT_linkage_name __gnat_namefirst
+ MACRO_AT_range {first}
+ DW_AT_type :$b_l
}
# Here the linkage name comes first and the name second.
DW_TAG_subprogram {
- {linkage_name __gnat_namesecond}
- {name system__namesecond}
- {MACRO_AT_range {second}}
- {type :$b_l}
+ DW_AT_linkage_name __gnat_namesecond
+ DW_AT_name system__namesecond
+ MACRO_AT_range {second}
+ DW_AT_type :$b_l
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/ada-thick-pointer.exp b/gdb/testsuite/gdb.dwarf2/ada-thick-pointer.exp
index 5032252..0efb8cb 100644
--- a/gdb/testsuite/gdb.dwarf2/ada-thick-pointer.exp
+++ b/gdb/testsuite/gdb.dwarf2/ada-thick-pointer.exp
@@ -31,53 +31,53 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_Ada95}
- {DW_AT_name $srcfile}
+ DW_AT_language @DW_LANG_Ada95
+ DW_AT_name $srcfile
} {
declare_labels integer array array_pointer bounds_pointer
integer: DW_TAG_base_type {
- {DW_AT_byte_size 8 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size 8 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
array: DW_TAG_array_type {
- {DW_AT_name array_type}
- {DW_AT_type :$integer}
+ DW_AT_name array_type
+ DW_AT_type :$integer
} {
DW_TAG_subrange_type {
- {DW_AT_type :$integer}
- {DW_AT_lower_bound 1 DW_FORM_data1}
- {DW_AT_upper_bound 7 DW_FORM_data1}
+ DW_AT_type :$integer
+ DW_AT_lower_bound 1 DW_FORM_data1
+ DW_AT_upper_bound 7 DW_FORM_data1
}
}
array_pointer: DW_TAG_pointer_type {
- {DW_AT_type :$array}
- {DW_AT_byte_size 8 DW_FORM_sdata}
+ DW_AT_type :$array
+ DW_AT_byte_size 8 DW_FORM_sdata
}
# This isn't exactly what GNAT emits, but it doesn't
# matter.
bounds_pointer: DW_TAG_pointer_type {
- {DW_AT_type :$integer}
- {DW_AT_byte_size 8 DW_FORM_sdata}
+ DW_AT_type :$integer
+ DW_AT_byte_size 8 DW_FORM_sdata
}
DW_TAG_structure_type {
- {DW_AT_name thick_pointer_type}
- {DW_AT_byte_size 8 DW_FORM_sdata}
+ DW_AT_name thick_pointer_type
+ DW_AT_byte_size 8 DW_FORM_sdata
} {
DW_TAG_member {
- {DW_AT_name P_ARRAY}
- {DW_AT_type :$array_pointer}
- {DW_AT_data_member_location 0 DW_FORM_sdata}
+ DW_AT_name P_ARRAY
+ DW_AT_type :$array_pointer
+ DW_AT_data_member_location 0 DW_FORM_sdata
}
DW_TAG_member {
- {DW_AT_name P_BOUNDS}
- {DW_AT_type :$bounds_pointer}
- {DW_AT_data_member_location 8 DW_FORM_sdata}
+ DW_AT_name P_BOUNDS
+ DW_AT_type :$bounds_pointer
+ DW_AT_data_member_location 8 DW_FORM_sdata
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/ada-valprint-error.exp b/gdb/testsuite/gdb.dwarf2/ada-valprint-error.exp
index e1a76bf..a754426 100644
--- a/gdb/testsuite/gdb.dwarf2/ada-valprint-error.exp
+++ b/gdb/testsuite/gdb.dwarf2/ada-valprint-error.exp
@@ -35,10 +35,10 @@ if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile}] } {
set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
- DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_Ada95}
- {DW_AT_name fd.adb}
- {DW_AT_comp_dir /tmp}
+ DW_TAG_compile_unit {
+ DW_AT_language @DW_LANG_Ada95
+ DW_AT_name fd.adb
+ DW_AT_comp_dir /tmp
} {
declare_labels array_elt_label integer_label array_label \
typedef_label ref_type_label
@@ -48,8 +48,8 @@ Dwarf::assemble $asm_file {
# A structure with no size attribute, to mimick structures
# in Ada that have a dynamic size...
array_elt_label: structure_type {
- {name fd__Tints_doubledC}
- {artificial 1 DW_FORM_flag_present}
+ DW_AT_name fd__Tints_doubledC
+ DW_AT_artificial 1 DW_FORM_flag_present
}
# ... and a corresponding XVZ variable, supposed to be there
@@ -58,44 +58,44 @@ Dwarf::assemble $asm_file {
# it has been optimized out (which the compiler can do,
# even if it at the expense of debuggability).
DW_TAG_variable {
- {name fd__Tints_doubledC___XVZ}
- {DW_AT_type :$integer_label}
- {artificial 1 DW_FORM_flag_present}
+ DW_AT_name fd__Tints_doubledC___XVZ
+ DW_AT_type :$integer_label
+ DW_AT_artificial 1 DW_FORM_flag_present
}
integer_label: DW_TAG_base_type {
- {DW_AT_byte_size $int_size DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size $int_size DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
array_label: DW_TAG_array_type {
- {DW_AT_name fd__ints_doubled}
- {DW_AT_type :$array_elt_label}
+ DW_AT_name fd__ints_doubled
+ DW_AT_type :$array_elt_label
} {
DW_TAG_subrange_type {
- {DW_AT_type :$integer_label}
- {DW_AT_upper_bound 2 DW_FORM_data1}
+ DW_AT_type :$integer_label
+ DW_AT_upper_bound 2 DW_FORM_data1
}
}
typedef_label: DW_TAG_typedef {
- {DW_AT_name fd__ints_doubled}
- {DW_AT_type :$array_label}
+ DW_AT_name fd__ints_doubled
+ DW_AT_type :$array_label
}
ref_type_label: DW_TAG_reference_type {
- {DW_AT_byte_size $ptr_size DW_FORM_sdata}
- {DW_AT_type :$typedef_label}
+ DW_AT_byte_size $ptr_size DW_FORM_sdata
+ DW_AT_type :$typedef_label
}
DW_TAG_variable {
- {name fd__global}
- {DW_AT_type :$ref_type_label}
- {DW_AT_location {
- DW_OP_addr [gdb_target_symbol fd__global]
- } SPECIAL_expr}
- {external 1 flag}
+ DW_AT_name fd__global
+ DW_AT_type :$ref_type_label
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol fd__global]
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/arr-opt-out.exp b/gdb/testsuite/gdb.dwarf2/arr-opt-out.exp
index 6bbfef2..d3ccec8 100644
--- a/gdb/testsuite/gdb.dwarf2/arr-opt-out.exp
+++ b/gdb/testsuite/gdb.dwarf2/arr-opt-out.exp
@@ -29,51 +29,51 @@ set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_Ada95}
- {DW_AT_name foo.adb}
- {DW_AT_comp_dir /tmp}
+ DW_AT_language @DW_LANG_Ada95
+ DW_AT_name foo.adb
+ DW_AT_comp_dir /tmp
} {
declare_labels integer_label array_label \
low_bound_label high_bound_label
integer_label: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
# Note that the bounds don't have a location -- they are
# optimized out. This mimics what it is seen sometimes in
# the wild with optimized Ada code.
low_bound_label: DW_TAG_variable {
- {DW_AT_name pck__table___L}
- {DW_AT_type :$integer_label}
- {DW_AT_declaration 1 flag}
+ DW_AT_name pck__table___L
+ DW_AT_type :$integer_label
+ DW_AT_declaration 1 flag
}
high_bound_label: DW_TAG_variable {
- {DW_AT_name pck__table___U}
- {DW_AT_type :$integer_label}
- {DW_AT_declaration 1 flag}
+ DW_AT_name pck__table___U
+ DW_AT_type :$integer_label
+ DW_AT_declaration 1 flag
}
array_label: DW_TAG_array_type {
- {DW_AT_name pck__table}
- {DW_AT_type :$integer_label}
+ DW_AT_name pck__table
+ DW_AT_type :$integer_label
} {
DW_TAG_subrange_type {
- {DW_AT_type :$integer_label}
- {DW_AT_lower_bound :$low_bound_label}
- {DW_AT_upper_bound :$high_bound_label}
+ DW_AT_type :$integer_label
+ DW_AT_lower_bound :$low_bound_label
+ DW_AT_upper_bound :$high_bound_label
}
}
DW_TAG_variable {
- {DW_AT_name the_table}
- {DW_AT_type :$array_label}
- {DW_AT_location {
+ DW_AT_name the_table
+ DW_AT_type :$array_label
+ DW_AT_location [subst {
DW_OP_addr [gdb_target_symbol global_array]
- } SPECIAL_expr}
- {DW_AT_external 1 flag}
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/arr-stride.exp b/gdb/testsuite/gdb.dwarf2/arr-stride.exp
index be0fdf3..bad1ffe 100644
--- a/gdb/testsuite/gdb.dwarf2/arr-stride.exp
+++ b/gdb/testsuite/gdb.dwarf2/arr-stride.exp
@@ -24,86 +24,86 @@ set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_Ada95}
- {DW_AT_name foo.adb}
- {DW_AT_comp_dir /tmp}
+ DW_AT_language @DW_LANG_Ada95
+ DW_AT_name foo.adb
+ DW_AT_comp_dir /tmp
} {
declare_labels integer_label array_elt_label array_label \
big_array_label struct_label
integer_label: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
array_elt_label: DW_TAG_subrange_type {
- {DW_AT_lower_bound 0xe0 DW_FORM_data1}
- {DW_AT_upper_bound 0x1f DW_FORM_data1}
- {DW_AT_name pck__item}
- {DW_AT_type :$integer_label}
+ DW_AT_lower_bound 0xe0 DW_FORM_data1
+ DW_AT_upper_bound 0x1f DW_FORM_data1
+ DW_AT_name pck__item
+ DW_AT_type :$integer_label
}
DW_TAG_typedef {
- {DW_AT_name pck__table}
- {DW_AT_type :$array_label}
+ DW_AT_name pck__table
+ DW_AT_type :$array_label
}
array_label: DW_TAG_array_type {
- {DW_AT_name pck__table}
- {DW_AT_bit_stride 6 DW_FORM_data1}
- {DW_AT_type :$array_elt_label}
+ DW_AT_name pck__table
+ DW_AT_bit_stride 6 DW_FORM_data1
+ DW_AT_type :$array_elt_label
} {
DW_TAG_subrange_type {
- {DW_AT_type :$integer_label}
- {DW_AT_lower_bound 0 DW_FORM_data1}
- {DW_AT_upper_bound 4 DW_FORM_data1}
+ DW_AT_type :$integer_label
+ DW_AT_lower_bound 0 DW_FORM_data1
+ DW_AT_upper_bound 4 DW_FORM_data1
}
}
DW_TAG_typedef {
- {DW_AT_name pck__big_table}
- {DW_AT_type :$big_array_label}
+ DW_AT_name pck__big_table
+ DW_AT_type :$big_array_label
}
big_array_label: DW_TAG_array_type {
- {DW_AT_name pck__big_table}
- {DW_AT_byte_stride 1 DW_FORM_data1}
- {DW_AT_type :$array_elt_label}
+ DW_AT_name pck__big_table
+ DW_AT_byte_stride 1 DW_FORM_data1
+ DW_AT_type :$array_elt_label
} {
DW_TAG_subrange_type {
- {DW_AT_type :$integer_label}
- {DW_AT_lower_bound 0 DW_FORM_data1}
- {DW_AT_upper_bound 4 DW_FORM_data1}
+ DW_AT_type :$integer_label
+ DW_AT_lower_bound 0 DW_FORM_data1
+ DW_AT_upper_bound 4 DW_FORM_data1
}
}
struct_label: DW_TAG_structure_type {
- {name struct_type}
- {byte_size 16 DW_FORM_sdata}
+ DW_AT_name struct_type
+ DW_AT_byte_size 16 DW_FORM_sdata
} {
member {
- {name intfield}
- {type :$integer_label}
- {data_member_location 0 DW_FORM_sdata}
+ DW_AT_name intfield
+ DW_AT_type :$integer_label
+ DW_AT_data_member_location 0 DW_FORM_sdata
}
member {
- {name arrayfield}
- {type :$array_label}
- {data_member_location 4 DW_FORM_sdata}
+ DW_AT_name arrayfield
+ DW_AT_type :$array_label
+ DW_AT_data_member_location 4 DW_FORM_sdata
}
}
DW_TAG_variable {
- {name the_struct}
- {external 1 DW_FORM_flag}
- {location {
+ DW_AT_name the_struct
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location {
DW_OP_const1u 1
DW_OP_stack_value
DW_OP_piece 4
DW_OP_piece 12
- } SPECIAL_expr}
- {type :$struct_label}
+ } SPECIAL_expr
+ DW_AT_type :$struct_label
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/arr-subrange.exp b/gdb/testsuite/gdb.dwarf2/arr-subrange.exp
index 05fe778..24d4600 100644
--- a/gdb/testsuite/gdb.dwarf2/arr-subrange.exp
+++ b/gdb/testsuite/gdb.dwarf2/arr-subrange.exp
@@ -23,52 +23,52 @@ standard_testfile main.c -dw.S
set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
- DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_Ada95}
- {DW_AT_name foo.adb}
- {DW_AT_comp_dir /tmp}
- {MACRO_AT_range {main}}
- } {
+ DW_TAG_compile_unit {
+ DW_AT_language @DW_LANG_Ada95
+ DW_AT_name foo.adb
+ DW_AT_comp_dir /tmp
+ MACRO_AT_range {main}
+ } {
declare_labels boolean_label typedef_label array_label enum_label
- boolean_label: DW_TAG_base_type {
- {DW_AT_byte_size 1 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_boolean}
- {DW_AT_name boolean}
- }
+ boolean_label: DW_TAG_base_type {
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_boolean
+ DW_AT_name boolean
+ }
- typedef_label: DW_TAG_typedef {
- {DW_AT_name pck__table}
- {DW_AT_type :$array_label}
- }
+ typedef_label: DW_TAG_typedef {
+ DW_AT_name pck__table
+ DW_AT_type :$array_label
+ }
array_label: DW_TAG_array_type {
- {DW_AT_name pck__table}
- {DW_AT_type :$boolean_label}
+ DW_AT_name pck__table
+ DW_AT_type :$boolean_label
} {
DW_TAG_subrange_type {
- {DW_AT_type :$enum_label}
- {DW_AT_lower_bound 0 DW_FORM_data1}
- {DW_AT_upper_bound 128 DW_FORM_data1}
+ DW_AT_type :$enum_label
+ DW_AT_lower_bound 0 DW_FORM_data1
+ DW_AT_upper_bound 128 DW_FORM_data1
}
}
enum_label: DW_TAG_enumeration_type {
- {DW_AT_name pck__enum_t}
- {DW_AT_byte_size 1 DW_FORM_sdata}
- } {
- DW_TAG_enumerator {
- {DW_AT_name pck__enum_000}
- {DW_AT_const_value 0 DW_FORM_sdata}
- }
- DW_TAG_enumerator {
- {DW_AT_name pck__enum_001}
- {DW_AT_const_value 1 DW_FORM_sdata}
- }
- DW_TAG_enumerator {
- {DW_AT_name pck__enum_128}
- {DW_AT_const_value 128 DW_FORM_sdata}
- }
+ DW_AT_name pck__enum_t
+ DW_AT_byte_size 1 DW_FORM_sdata
+ } {
+ DW_TAG_enumerator {
+ DW_AT_name pck__enum_000
+ DW_AT_const_value 0 DW_FORM_sdata
+ }
+ DW_TAG_enumerator {
+ DW_AT_name pck__enum_001
+ DW_AT_const_value 1 DW_FORM_sdata
+ }
+ DW_TAG_enumerator {
+ DW_AT_name pck__enum_128
+ DW_AT_const_value 128 DW_FORM_sdata
+ }
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/assign-variable-value-to-register.exp b/gdb/testsuite/gdb.dwarf2/assign-variable-value-to-register.exp
index 64a86ec..1ebd622 100644
--- a/gdb/testsuite/gdb.dwarf2/assign-variable-value-to-register.exp
+++ b/gdb/testsuite/gdb.dwarf2/assign-variable-value-to-register.exp
@@ -36,29 +36,29 @@ Dwarf::assemble $dwarf_file {
declare_labels int_label float_label
int_label: DW_TAG_base_type {
- { DW_AT_name int }
- { DW_AT_byte_size 4 DW_FORM_udata }
- { DW_AT_encoding @DW_ATE_signed }
+ DW_AT_name int
+ DW_AT_byte_size 4 DW_FORM_udata
+ DW_AT_encoding @DW_ATE_signed
}
float_label: DW_TAG_base_type {
- { DW_AT_name float }
- { DW_AT_byte_size 4 DW_FORM_udata }
- { DW_AT_encoding @DW_ATE_float }
+ DW_AT_name float
+ DW_AT_byte_size 4 DW_FORM_udata
+ DW_AT_encoding @DW_ATE_float
}
DW_TAG_subprogram {
- { DW_AT_name main }
- { DW_AT_low_pc $main_start DW_FORM_addr }
- { DW_AT_high_pc $main_end DW_FORM_addr }
- { DW_AT_type :$int_label }
+ DW_AT_name main
+ DW_AT_low_pc $main_start DW_FORM_addr
+ DW_AT_high_pc $main_end DW_FORM_addr
+ DW_AT_type :$int_label
} {
DW_TAG_variable {
- { DW_AT_name foo }
- { DW_AT_type :$float_label }
- { DW_AT_location {
+ DW_AT_name foo
+ DW_AT_type :$float_label
+ DW_AT_location [subst {
DW_OP_regx $::st0_dwarf_regnum
- } SPECIAL_expr }
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/atomic-type.exp b/gdb/testsuite/gdb.dwarf2/atomic-type.exp
index 2e6d903..022b63c 100644
--- a/gdb/testsuite/gdb.dwarf2/atomic-type.exp
+++ b/gdb/testsuite/gdb.dwarf2/atomic-type.exp
@@ -27,54 +27,54 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C11}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
- } {
+ DW_AT_language @DW_LANG_C11
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
+ } {
declare_labels i_l c_l c_c_l ac_c_l pac_c_l vpac_c_l avpac_c_l
- i_l: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name int}
- }
-
- c_l: DW_TAG_base_type {
- {DW_AT_byte_size 2 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_unsigned}
- {DW_AT_name char}
- }
-
- c_c_l: DW_TAG_const_type {
- {DW_AT_type :$c_l}
- }
-
- ac_c_l: DW_TAG_atomic_type {
- {DW_AT_type :$c_c_l}
- }
-
- pac_c_l: DW_TAG_pointer_type {
- {DW_AT_byte_size 8 DW_FORM_sdata}
- {DW_AT_type :$ac_c_l}
- }
-
- vpac_c_l: DW_TAG_volatile_type {
- {DW_AT_type :$pac_c_l}
- }
-
- avpac_c_l: DW_TAG_atomic_type {
- {DW_AT_type :$vpac_c_l}
- }
-
- DW_TAG_subprogram {
- {MACRO_AT_func {f}}
- {type :$i_l}
- } {
- DW_TAG_formal_parameter {
- {type :$avpac_c_l}
- {name x}
- }
- }
+ i_l: DW_TAG_base_type {
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
+ }
+
+ c_l: DW_TAG_base_type {
+ DW_AT_byte_size 2 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_name char
+ }
+
+ c_c_l: DW_TAG_const_type {
+ DW_AT_type :$c_l
+ }
+
+ ac_c_l: DW_TAG_atomic_type {
+ DW_AT_type :$c_c_l
+ }
+
+ pac_c_l: DW_TAG_pointer_type {
+ DW_AT_byte_size 8 DW_FORM_sdata
+ DW_AT_type :$ac_c_l
+ }
+
+ vpac_c_l: DW_TAG_volatile_type {
+ DW_AT_type :$pac_c_l
+ }
+
+ avpac_c_l: DW_TAG_atomic_type {
+ DW_AT_type :$vpac_c_l
+ }
+
+ DW_TAG_subprogram {
+ MACRO_AT_func {f}
+ DW_AT_type :$i_l
+ } {
+ DW_TAG_formal_parameter {
+ DW_AT_type :$avpac_c_l
+ DW_AT_name x
+ }
+ }
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/backward-spec-inter-cu.exp b/gdb/testsuite/gdb.dwarf2/backward-spec-inter-cu.exp
index b62f928..0cd26e8 100644
--- a/gdb/testsuite/gdb.dwarf2/backward-spec-inter-cu.exp
+++ b/gdb/testsuite/gdb.dwarf2/backward-spec-inter-cu.exp
@@ -20,6 +20,7 @@ load_lib dwarf.exp
# This test can only be run on targets which support DWARF-2 and use gas.
require dwarf2_support
+require !readnow
standard_testfile main.c -debug.S
@@ -32,23 +33,23 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
+ DW_AT_language @DW_LANG_C_plus_plus
} {
declare_labels myint
myint: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name myint}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name myint
}
DW_TAG_namespace {
- {DW_AT_name ns}
+ DW_AT_name ns
} {
spec: DW_TAG_variable {
- {DW_AT_name v}
- {DW_AT_type :$myint}
- {DW_AT_declaration 1 DW_FORM_flag_present}
+ DW_AT_name v
+ DW_AT_type :$myint
+ DW_AT_declaration 1 DW_FORM_flag_present
}
}
}
@@ -56,17 +57,17 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
+ DW_AT_language @DW_LANG_C_plus_plus
} {
# The new indexer has special code to compute the full
# name of an object that uses a specification that appears
# later in the DWARF.
DW_TAG_variable {
- {DW_AT_specification %$spec}
- {DW_AT_location {
+ DW_AT_specification %$spec
+ DW_AT_location {
DW_OP_const1u 23
DW_OP_stack_value
- } SPECIAL_expr}
+ } SPECIAL_expr
}
}
}
@@ -98,6 +99,11 @@ foreach_with_prefix worker_threads $worker_threads_list {
gdb_load $binfile
+ set index [have_index $binfile]
+ if { ![string eq $index ""] } {
+ return
+ }
+
gdb_test "pipe maint print objfiles | grep ns::v" \
"$ws+qualified:$ws+ns::v" \
"v has parent ns"
diff --git a/gdb/testsuite/gdb.dwarf2/bad-regnum.exp b/gdb/testsuite/gdb.dwarf2/bad-regnum.exp
index b443f82..eea13af 100644
--- a/gdb/testsuite/gdb.dwarf2/bad-regnum.exp
+++ b/gdb/testsuite/gdb.dwarf2/bad-regnum.exp
@@ -27,34 +27,34 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
} {
declare_labels integer_label
integer_label: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
DW_TAG_variable {
- {DW_AT_name foo1}
- {DW_AT_type :$integer_label}
- {DW_AT_location {
+ DW_AT_name foo1
+ DW_AT_type :$integer_label
+ DW_AT_location {
DW_OP_regx 2147483647
- } SPECIAL_expr}
- {external 1 flag}
+ } SPECIAL_expr
+ DW_AT_external 1 flag
}
DW_TAG_variable {
- {DW_AT_name foo2}
- {DW_AT_type :$integer_label}
- {DW_AT_location {
+ DW_AT_name foo2
+ DW_AT_type :$integer_label
+ DW_AT_location {
DW_OP_regx -1
- } SPECIAL_expr}
- {external 1 flag}
+ } SPECIAL_expr
+ DW_AT_external 1 flag
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/bitfield-parent-optimized-out.exp b/gdb/testsuite/gdb.dwarf2/bitfield-parent-optimized-out.exp
index d2eb9bf..82eaed7 100644
--- a/gdb/testsuite/gdb.dwarf2/bitfield-parent-optimized-out.exp
+++ b/gdb/testsuite/gdb.dwarf2/bitfield-parent-optimized-out.exp
@@ -32,37 +32,37 @@ Dwarf::assemble $asm_file {
declare_labels struct_label var_label int_label
int_label: base_type {
- {byte_size 4 sdata}
- {encoding @DW_ATE_signed}
- {name int}
+ DW_AT_byte_size 4 sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
struct_label: structure_type {
- {name S}
- {byte_size 8 DW_FORM_sdata}
+ DW_AT_name S
+ DW_AT_byte_size 8 DW_FORM_sdata
} {
member {
- {name bitfield}
- {type :$int_label}
- {bit_size 12 DW_FORM_sdata}
- {bit_offset 20 DW_FORM_sdata}
+ DW_AT_name bitfield
+ DW_AT_type :$int_label
+ DW_AT_bit_size 12 DW_FORM_sdata
+ DW_AT_bit_offset 20 DW_FORM_sdata
}
member {
- {name intfield}
- {type :$int_label}
- {data_member_location 4 DW_FORM_sdata}
+ DW_AT_name intfield
+ DW_AT_type :$int_label
+ DW_AT_data_member_location 4 DW_FORM_sdata
}
}
subprogram {
- {MACRO_AT_func { main }}
- {type :$int_label}
- {external 1 flag}
+ MACRO_AT_func { main }
+ DW_AT_type :$int_label
+ DW_AT_external 1 flag
} {
var_label: DW_TAG_variable {
- {name var}
- {location {} DW_FORM_block1}
- {type :$struct_label}
+ DW_AT_name var
+ DW_AT_location {} DW_FORM_block1
+ DW_AT_type :$struct_label
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/calling-convention.exp b/gdb/testsuite/gdb.dwarf2/calling-convention.exp
index 3cced7d..d3426b9 100644
--- a/gdb/testsuite/gdb.dwarf2/calling-convention.exp
+++ b/gdb/testsuite/gdb.dwarf2/calling-convention.exp
@@ -42,26 +42,26 @@ set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name "calling-convention"}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name "calling-convention"
} {
declare_labels int_label
int_label: base_type {
- {byte_size [get_sizeof "int" 4] sdata}
- {encoding @DW_ATE_signed}
- {name "int"}
+ DW_AT_byte_size [get_sizeof "int" 4] sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name "int"
}
subprogram {
- {MACRO_AT_func { foo }}
- {type :$int_label}
- {calling_convention @DW_CC_nocall}
+ MACRO_AT_func { foo }
+ DW_AT_type :$int_label
+ DW_AT_calling_convention @DW_CC_nocall
}
subprogram {
- {MACRO_AT_func { main }}
- {type :$int_label}
+ MACRO_AT_func { main }
+ DW_AT_type :$int_label
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/clang-cli-macro.exp b/gdb/testsuite/gdb.dwarf2/clang-cli-macro.exp
index b856c5b..d73a3a1 100644
--- a/gdb/testsuite/gdb.dwarf2/clang-cli-macro.exp
+++ b/gdb/testsuite/gdb.dwarf2/clang-cli-macro.exp
@@ -37,22 +37,22 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_producer "clang version 15.0.0"}
- {DW_AT_language @DW_LANG_C11}
- {DW_AT_name $::srcfile}
- {DW_AT_macros $cu_macros DW_FORM_sec_offset}
- {DW_AT_stmt_list $L DW_FORM_sec_offset}
+ DW_AT_producer "clang version 15.0.0"
+ DW_AT_language @DW_LANG_C11
+ DW_AT_name $::srcfile
+ DW_AT_macros $cu_macros DW_FORM_sec_offset
+ DW_AT_stmt_list $L DW_FORM_sec_offset
} {
declare_labels int_type
int_type: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name int}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
DW_TAG_subprogram {
- {MACRO_AT_func {main}}
- {type :$int_type}
+ MACRO_AT_func {main}
+ DW_AT_type :$int_type
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/clztest.exp b/gdb/testsuite/gdb.dwarf2/clztest.exp
index 7a74e02..93c2ced 100644
--- a/gdb/testsuite/gdb.dwarf2/clztest.exp
+++ b/gdb/testsuite/gdb.dwarf2/clztest.exp
@@ -61,7 +61,7 @@ proc scan_gdb_tests {} {
continue
}
- eval $test_cmd
+ {*}$test_cmd
}
close $fd
}
diff --git a/gdb/testsuite/gdb.dwarf2/comp-unit-lang.exp b/gdb/testsuite/gdb.dwarf2/comp-unit-lang.exp
index 9b18d9a..f4d9195 100644
--- a/gdb/testsuite/gdb.dwarf2/comp-unit-lang.exp
+++ b/gdb/testsuite/gdb.dwarf2/comp-unit-lang.exp
@@ -41,13 +41,13 @@ proc do_test {cu_lang gdb_lang} {
# both 32- and 64-bit machines.
cu { addr_size 4 } {
compile_unit {
- {name file1.txt}
- {language @$cu_lang}
- {MACRO_AT_range {func}}
+ DW_AT_name file1.txt
+ DW_AT_language @$cu_lang
+ MACRO_AT_range {func}
} {
subprogram {
- {external 1 flag}
- {MACRO_AT_func {func}}
+ DW_AT_external 1 flag
+ MACRO_AT_func {func}
} {
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/corrupt.exp b/gdb/testsuite/gdb.dwarf2/corrupt.exp
index b9f242c..a68b7e3 100644
--- a/gdb/testsuite/gdb.dwarf2/corrupt.exp
+++ b/gdb/testsuite/gdb.dwarf2/corrupt.exp
@@ -36,31 +36,31 @@ Dwarf::assemble $asm_file {
declare_labels int_label
int_label: base_type {
- {byte_size 4 sdata}
- {name "int"}
+ DW_AT_byte_size 4 sdata
+ DW_AT_name "int"
}
enumeration_type {
- {name "ENUM"}
- {byte_size 4 sdata}
+ DW_AT_name "ENUM"
+ DW_AT_byte_size 4 sdata
} {
enumerator {
- {name "A"}
- {const_value 0 sdata}
+ DW_AT_name "A"
+ DW_AT_const_value 0 sdata
}
enumerator {
- {name "B"}
- {const_value 1 sdata}
- {sibling 12345678 DW_FORM_ref4}
+ DW_AT_name "B"
+ DW_AT_const_value 1 sdata
+ DW_AT_sibling 12345678 DW_FORM_ref4
} {
base_type {
- {byte_size 1 sdata}
- {name "char"}
+ DW_AT_byte_size 1 sdata
+ DW_AT_name "char"
}
}
array_type {
- {type :$int_label}
- {sibling 12345678 DW_FORM_ref4}
+ DW_AT_type :$int_label
+ DW_AT_sibling 12345678 DW_FORM_ref4
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/count.exp b/gdb/testsuite/gdb.dwarf2/count.exp
index a8b216d..4d2ec31 100644
--- a/gdb/testsuite/gdb.dwarf2/count.exp
+++ b/gdb/testsuite/gdb.dwarf2/count.exp
@@ -25,100 +25,101 @@ standard_testfile main.c .S
set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
- compile_unit {{language @DW_LANG_C99}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C99
+ } {
declare_labels char_label \
array_size_type_label long_unsigned_int_label \
array_label array_label2 static_array_label \
vla_length_label vla_array_label
char_label: base_type {
- {name char}
- {encoding @DW_ATE_signed}
- {byte_size 1 DW_FORM_sdata}
+ DW_AT_name char
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 1 DW_FORM_sdata
}
array_size_type_label: base_type {
- {byte_size 8 DW_FORM_sdata}
- {encoding @DW_ATE_unsigned}
- {name __ARRAY_SIZE_TYPE__}
+ DW_AT_byte_size 8 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_name __ARRAY_SIZE_TYPE__
}
long_unsigned_int_label: base_type {
- {byte_size 8 DW_FORM_sdata}
- {encoding @DW_ATE_unsigned}
- {name "long unsigned int"}
+ DW_AT_byte_size 8 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_name "long unsigned int"
}
array_label: array_type {
- {type :$char_label}
+ DW_AT_type :$char_label
} {
subrange_type {
- {count {DW_OP_lit5} SPECIAL_expr}
- {type :$char_label}
+ DW_AT_count {DW_OP_lit5} SPECIAL_expr
+ DW_AT_type :$char_label
}
}
array_label2: array_type {
- {type :$char_label}
+ DW_AT_type :$char_label
} {
subrange_type {
- {count {DW_OP_lit1} SPECIAL_expr}
- {type :$char_label}
+ DW_AT_count {DW_OP_lit1} SPECIAL_expr
+ DW_AT_type :$char_label
}
}
static_array_label: array_type {
- {type :$char_label}
+ DW_AT_type :$char_label
} {
subrange_type {
- {count 5 DW_FORM_sdata}
- {type :$char_label}
+ DW_AT_count 5 DW_FORM_sdata
+ DW_AT_type :$char_label
}
}
vla_length_label:
DW_TAG_variable {
- {location
- {
- lit6
- stack_value
- } SPECIAL_expr}
- {name "__vla_array_length"}
- {type :$long_unsigned_int_label}
- {artificial 1 DW_FORM_flag_present}
+ DW_AT_location {
+ lit6
+ stack_value
+ } SPECIAL_expr
+ DW_AT_name "__vla_array_length"
+ DW_AT_type :$long_unsigned_int_label
+ DW_AT_artificial 1 DW_FORM_flag_present
}
vla_array_label: array_type {
- {type :$char_label}
+ DW_AT_type :$char_label
} {
subrange_type {
- {type :$array_size_type_label}
- {count :$vla_length_label}
+ DW_AT_type :$array_size_type_label
+ DW_AT_count :$vla_length_label
}
}
DW_TAG_variable {
- {name array2}
- {type :$array_label2}
- {const_value 65 DW_FORM_udata}
+ DW_AT_name array2
+ DW_AT_type :$array_label2
+ DW_AT_const_value 65 DW_FORM_udata
}
DW_TAG_variable {
- {name array}
- {type :$array_label}
- {const_value hello DW_FORM_block1}
+ DW_AT_name array
+ DW_AT_type :$array_label
+ DW_AT_const_value hello DW_FORM_block1
}
DW_TAG_variable {
- {name static_array}
- {type :$static_array_label}
- {const_value world DW_FORM_block1}
+ DW_AT_name static_array
+ DW_AT_type :$static_array_label
+ DW_AT_const_value world DW_FORM_block1
}
DW_TAG_variable {
- {name vla_array}
- {type :$vla_array_label}
- {const_value saluton DW_FORM_block1}
+ DW_AT_name vla_array
+ DW_AT_type :$vla_array_label
+ DW_AT_const_value saluton DW_FORM_block1
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/cpp-linkage-name.exp b/gdb/testsuite/gdb.dwarf2/cpp-linkage-name.exp
index 7442399..a21e980 100644
--- a/gdb/testsuite/gdb.dwarf2/cpp-linkage-name.exp
+++ b/gdb/testsuite/gdb.dwarf2/cpp-linkage-name.exp
@@ -32,49 +32,49 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
+ DW_AT_language @DW_LANG_C_plus_plus
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
} {
declare_labels a_l b_l
a_l: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name int}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
# To expose the bug that existed at one point this
# structure must have a linkage name, but no name, and the
# linkage name is something that doesn't demangle.
b_l: DW_TAG_structure_type {
- {DW_AT_byte_size 8 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_linkage_name <anon>}
+ DW_AT_byte_size 8 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_linkage_name <anon>
} {
member {
- {name x}
- {type :$a_l}
- {data_member_location 0 data1}
+ DW_AT_name x
+ DW_AT_type :$a_l
+ DW_AT_data_member_location 0 data1
}
member {
- {name y}
- {type :$a_l}
- {data_member_location 0 data1}
+ DW_AT_name y
+ DW_AT_type :$a_l
+ DW_AT_data_member_location 0 data1
}
}
DW_TAG_subprogram {
- {MACRO_AT_func {main}}
- {type :$a_l}
+ MACRO_AT_func {main}
+ DW_AT_type :$a_l
}
DW_TAG_variable {
- {type :$b_l}
- {external 1 flag}
- {DW_AT_name global_var}
- {DW_AT_location {
+ DW_AT_type :$b_l
+ DW_AT_external 1 flag
+ DW_AT_name global_var
+ DW_AT_location [subst {
DW_OP_addr [gdb_target_symbol global_var]
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/cu-empty-name.exp b/gdb/testsuite/gdb.dwarf2/cu-empty-name.exp
index 6bed9e5..6ee55a6 100644
--- a/gdb/testsuite/gdb.dwarf2/cu-empty-name.exp
+++ b/gdb/testsuite/gdb.dwarf2/cu-empty-name.exp
@@ -27,10 +27,10 @@ set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_producer "Tsetsuite"}
- {DW_AT_language @DW_LANG_C}
- {DW_AT_name ""}
- {DW_AT_comp_dir /tmp}
+ DW_AT_producer "Tsetsuite"
+ DW_AT_language @DW_LANG_C
+ DW_AT_name ""
+ DW_AT_comp_dir /tmp
} {
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/cu-no-addrs.exp b/gdb/testsuite/gdb.dwarf2/cu-no-addrs.exp
index 7f36878..796f935 100644
--- a/gdb/testsuite/gdb.dwarf2/cu-no-addrs.exp
+++ b/gdb/testsuite/gdb.dwarf2/cu-no-addrs.exp
@@ -35,13 +35,13 @@ Dwarf::assemble $asm_file {
# The PC range here is intentionally empty -- this was the
# trigger for the bug.
compile_unit {
- {language @DW_LANG_C}
- {DW_AT_low_pc $main_start DW_FORM_addr}
- {DW_AT_high_pc $main_start DW_FORM_addr}
+ DW_AT_language @DW_LANG_C
+ DW_AT_low_pc $main_start DW_FORM_addr
+ DW_AT_high_pc $main_start DW_FORM_addr
} {
DW_TAG_subprogram {
- {DW_AT_name "main"}
- {DW_AT_low_pc $main_start DW_FORM_addr}
+ DW_AT_name "main"
+ DW_AT_low_pc $main_start DW_FORM_addr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/data-loc.exp b/gdb/testsuite/gdb.dwarf2/data-loc.exp
index 20500cb..94b9e09 100644
--- a/gdb/testsuite/gdb.dwarf2/data-loc.exp
+++ b/gdb/testsuite/gdb.dwarf2/data-loc.exp
@@ -34,83 +34,83 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
- DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_Ada95}
- {DW_AT_name foo.adb}
- {DW_AT_comp_dir /tmp}
- } {
- declare_labels integer_label array_label array_ptr_label
+ DW_TAG_compile_unit {
+ DW_AT_language @DW_LANG_Ada95
+ DW_AT_name foo.adb
+ DW_AT_comp_dir /tmp
+ } {
+ declare_labels integer_label array_label array_ptr_label
set int_size [get_sizeof "int" 4]
set voidp_size [get_sizeof "void *" 96]
- integer_label: DW_TAG_base_type {
- {DW_AT_byte_size $int_size DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
- }
+ integer_label: DW_TAG_base_type {
+ DW_AT_byte_size $int_size DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
+ }
array_label: DW_TAG_array_type {
- {DW_AT_name foo__array_type}
- {DW_AT_type :$integer_label}
- {DW_AT_data_location {
- DW_OP_push_object_address
- DW_OP_deref
- } SPECIAL_expr}
- {external 1 flag}
+ DW_AT_name foo__array_type
+ DW_AT_type :$integer_label
+ DW_AT_data_location {
+ DW_OP_push_object_address
+ DW_OP_deref
+ } SPECIAL_expr
+ DW_AT_external 1 flag
} {
DW_TAG_subrange_type {
- {DW_AT_type :$integer_label}
- {DW_AT_lower_bound {
- DW_OP_push_object_address
- DW_OP_plus_uconst $voidp_size
- DW_OP_deref
- DW_OP_deref_size $int_size
- } SPECIAL_expr}
- {DW_AT_upper_bound {
- DW_OP_push_object_address
- DW_OP_plus_uconst $voidp_size
- DW_OP_deref
- DW_OP_plus_uconst $int_size
- DW_OP_deref_size $int_size
- } SPECIAL_expr}
+ DW_AT_type :$integer_label
+ DW_AT_lower_bound [subst {
+ DW_OP_push_object_address
+ DW_OP_plus_uconst $voidp_size
+ DW_OP_deref
+ DW_OP_deref_size $int_size
+ }] SPECIAL_expr
+ DW_AT_upper_bound [subst {
+ DW_OP_push_object_address
+ DW_OP_plus_uconst $voidp_size
+ DW_OP_deref
+ DW_OP_plus_uconst $int_size
+ DW_OP_deref_size $int_size
+ }] SPECIAL_expr
}
}
- array_ptr_label: DW_TAG_typedef {
- {DW_AT_name foo__array_type}
- {DW_AT_type :$array_label}
- }
- DW_TAG_variable {
- {DW_AT_name foo__three}
- {DW_AT_type :$array_label}
- {DW_AT_location {
- DW_OP_addr [gdb_target_symbol table_1]
- } SPECIAL_expr}
- {external 1 flag}
- }
- DW_TAG_variable {
- {DW_AT_name foo__three_tdef}
- {DW_AT_type :$array_ptr_label}
- {DW_AT_location {
- DW_OP_addr [gdb_target_symbol table_1]
- } SPECIAL_expr}
- {external 1 flag}
- }
- DW_TAG_variable {
- {DW_AT_name foo__five}
- {DW_AT_type :$array_label}
- {DW_AT_location {
- DW_OP_addr [gdb_target_symbol table_2]
- } SPECIAL_expr}
- {external 1 flag}
- }
- DW_TAG_variable {
- {DW_AT_name foo__five_tdef}
- {DW_AT_type :$array_ptr_label}
- {DW_AT_location {
- DW_OP_addr [gdb_target_symbol table_2]
- } SPECIAL_expr}
- {external 1 flag}
- }
+ array_ptr_label: DW_TAG_typedef {
+ DW_AT_name foo__array_type
+ DW_AT_type :$array_label
+ }
+ DW_TAG_variable {
+ DW_AT_name foo__three
+ DW_AT_type :$array_label
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol table_1]
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
+ }
+ DW_TAG_variable {
+ DW_AT_name foo__three_tdef
+ DW_AT_type :$array_ptr_label
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol table_1]
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
+ }
+ DW_TAG_variable {
+ DW_AT_name foo__five
+ DW_AT_type :$array_label
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol table_2]
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
+ }
+ DW_TAG_variable {
+ DW_AT_name foo__five_tdef
+ DW_AT_type :$array_ptr_label
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol table_2]
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
+ }
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/debug-aranges-duplicate-offset-warning.exp b/gdb/testsuite/gdb.dwarf2/debug-aranges-duplicate-offset-warning.exp
index ac9c774..9ac9d94 100644
--- a/gdb/testsuite/gdb.dwarf2/debug-aranges-duplicate-offset-warning.exp
+++ b/gdb/testsuite/gdb.dwarf2/debug-aranges-duplicate-offset-warning.exp
@@ -31,20 +31,20 @@ Dwarf::assemble $asm_file {
cu { label cu_label } {
compile_unit {
- {language @DW_LANG_C}
- {name $srcfile}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $srcfile
} {
subprogram {
- {external 1 flag}
- {name main}
- {low_pc $main_start addr}
- {high_pc $main_len DW_FORM_data4}
+ DW_AT_external 1 flag
+ DW_AT_name main
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc $main_len DW_FORM_data4
}
subprogram {
- {external 1 flag}
- {name frame2}
- {low_pc $frame2_start addr}
- {high_pc $frame2_len DW_FORM_data4}
+ DW_AT_external 1 flag
+ DW_AT_name frame2
+ DW_AT_low_pc $frame2_start addr
+ DW_AT_high_pc $frame2_len DW_FORM_data4
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/debug-names-bad-cu-index.exp b/gdb/testsuite/gdb.dwarf2/debug-names-bad-cu-index.exp
index c758db7..016478f 100644
--- a/gdb/testsuite/gdb.dwarf2/debug-names-bad-cu-index.exp
+++ b/gdb/testsuite/gdb.dwarf2/debug-names-bad-cu-index.exp
@@ -21,7 +21,7 @@ require dwarf2_support
standard_testfile _start.c debug-names.S
set func_info_vars \
- [get_func_info _start [list debug additional_flags=-nostartfiles]]
+ [get_func_info _start [list debug ldflags=-nostartfiles]]
# Create the DWARF.
set asm_file [standard_output_file $srcfile2]
@@ -35,11 +35,13 @@ Dwarf::assemble {
}
cu { label cu_label } {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
subprogram {
- {DW_AT_name _start}
- {DW_AT_low_pc $_start_start DW_FORM_addr}
- {DW_AT_high_pc $_start_end DW_FORM_addr}
+ DW_AT_name _start
+ DW_AT_low_pc $_start_start DW_FORM_addr
+ DW_AT_high_pc $_start_end DW_FORM_addr
}
}
}
@@ -49,18 +51,18 @@ Dwarf::assemble {
declare_labels int_type
structure_type {
- {name struct_with_int_member}
- {byte_size 4 sdata}
+ DW_AT_name struct_with_int_member
+ DW_AT_byte_size 4 sdata
} {
member {
- {name member}
- {type :$int_type}
+ DW_AT_name member
+ DW_AT_type :$int_type
}
}
int_type: base_type {
- {name int}
- {encoding @DW_ATE_signed}
- {byte_size 4 sdata}
+ DW_AT_name int
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 4 sdata
}
}
}
@@ -74,7 +76,7 @@ Dwarf::assemble {
}
if {[build_executable ${testfile}.exp $testfile "${asm_file} ${srcfile}" \
- [list additional_flags=-nostartfiles]] == -1} {
+ [list ldflags=-nostartfiles]] == -1} {
return -1
}
diff --git a/gdb/testsuite/gdb.dwarf2/debug-names-duplicate-cu.exp b/gdb/testsuite/gdb.dwarf2/debug-names-duplicate-cu.exp
index 44d623b..28f2157 100644
--- a/gdb/testsuite/gdb.dwarf2/debug-names-duplicate-cu.exp
+++ b/gdb/testsuite/gdb.dwarf2/debug-names-duplicate-cu.exp
@@ -21,7 +21,7 @@ require dwarf2_support
standard_testfile _start.c debug-names.S
set func_info_vars \
- [get_func_info _start [list debug additional_flags=-nostartfiles]]
+ [get_func_info _start [list debug ldflags=-nostartfiles]]
# Create the DWARF.
set asm_file [standard_output_file $srcfile2]
@@ -35,16 +35,18 @@ Dwarf::assemble {
}
cu { label cu_label } {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
subprogram {
- {DW_AT_name _start}
- {DW_AT_low_pc $_start_start DW_FORM_addr}
- {DW_AT_high_pc $_start_end DW_FORM_addr}
+ DW_AT_name _start
+ DW_AT_low_pc $_start_start DW_FORM_addr
+ DW_AT_high_pc $_start_end DW_FORM_addr
}
base_type {
- {name int}
- {byte_size 4 sdata}
- {encoding @DW_ATE_signed}
+ DW_AT_name int
+ DW_AT_byte_size 4 sdata
+ DW_AT_encoding @DW_ATE_signed
}
}
}
@@ -58,7 +60,7 @@ Dwarf::assemble {
}
if [prepare_for_testing "failed to prepare" $testfile "${asm_file} ${srcfile}" \
- [list additional_flags=-nostartfiles]] {
+ [list ldflags=-nostartfiles]] {
return -1
}
diff --git a/gdb/testsuite/gdb.dwarf2/debug-names-missing-cu.exp b/gdb/testsuite/gdb.dwarf2/debug-names-missing-cu.exp
index d7d4fb8..77db144 100644
--- a/gdb/testsuite/gdb.dwarf2/debug-names-missing-cu.exp
+++ b/gdb/testsuite/gdb.dwarf2/debug-names-missing-cu.exp
@@ -18,10 +18,14 @@ load_lib dwarf.exp
# This test can only be run on targets which support DWARF-2 and use gas.
require dwarf2_support
+# This test checks that no CU is initially expanded, which is negated
+# by readnow.
+require !readnow
+
standard_testfile _start.c debug-names.S
set func_info_vars \
- [get_func_info _start [list debug additional_flags=-nostartfiles]]
+ [get_func_info _start [list debug ldflags=-nostartfiles]]
# Create the DWARF.
set asm_file [standard_output_file $srcfile2]
@@ -35,16 +39,18 @@ Dwarf::assemble {
}
cu { label cu_label } {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
subprogram {
- {DW_AT_name _start}
- {DW_AT_low_pc $_start_start DW_FORM_addr}
- {DW_AT_high_pc $_start_end DW_FORM_addr}
+ DW_AT_name _start
+ DW_AT_low_pc $_start_start DW_FORM_addr
+ DW_AT_high_pc $_start_end DW_FORM_addr
}
base_type {
- {name int}
- {byte_size 4 sdata}
- {encoding @DW_ATE_signed}
+ DW_AT_name int
+ DW_AT_byte_size 4 sdata
+ DW_AT_encoding @DW_ATE_signed
}
}
}
@@ -61,7 +67,7 @@ Dwarf::assemble {
}
if [prepare_for_testing "failed to prepare" $testfile "${asm_file} ${srcfile}" \
- [list additional_flags=-nostartfiles]] {
+ [list ldflags=-nostartfiles]] {
return -1
}
diff --git a/gdb/testsuite/gdb.dwarf2/debug-names-tu.exp.tcl b/gdb/testsuite/gdb.dwarf2/debug-names-tu.exp.tcl
index 60d1d0d..4de96ff 100644
--- a/gdb/testsuite/gdb.dwarf2/debug-names-tu.exp.tcl
+++ b/gdb/testsuite/gdb.dwarf2/debug-names-tu.exp.tcl
@@ -18,10 +18,14 @@ load_lib dwarf.exp
# This test can only be run on targets which support DWARF-2 and use gas.
require dwarf2_support
+# When using readnow, the index isn't used, which invalidates this
+# test.
+require !readnow
+
standard_testfile _start.c debug-names.S
set func_info_vars \
- [get_func_info _start [list debug additional_flags=-nostartfiles]]
+ [get_func_info _start [list debug ldflags=-nostartfiles]]
# Create the DWARF.
set asm_file [standard_output_file $srcfile2]
@@ -36,32 +40,36 @@ Dwarf::assemble {
}
cu { label cu_label version $dwarf_version } {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
subprogram {
- {DW_AT_name _start}
- {DW_AT_low_pc $_start_start DW_FORM_addr}
- {DW_AT_high_pc $_start_end DW_FORM_addr}
+ DW_AT_name _start
+ DW_AT_low_pc $_start_start DW_FORM_addr
+ DW_AT_high_pc $_start_end DW_FORM_addr
}
}
}
tu { label tu_label version $dwarf_version } 0x8ece66f4224fddb3 "" {
- type_unit {{language @DW_LANG_C}} {
+ type_unit {
+ DW_AT_language @DW_LANG_C
+ } {
declare_labels int_type
structure_type {
- {name struct_with_int_member}
- {byte_size 4 sdata}
+ DW_AT_name struct_with_int_member
+ DW_AT_byte_size 4 sdata
} {
member {
- {name member}
- {type :$int_type}
+ DW_AT_name member
+ DW_AT_type :$int_type
}
}
int_type: base_type {
- {name int}
- {encoding @DW_ATE_signed}
- {byte_size 4 sdata}
+ DW_AT_name int
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 4 sdata
}
}
}
@@ -76,7 +84,7 @@ Dwarf::assemble {
}
if [prepare_for_testing "failed to prepare" $testfile "${asm_file} ${srcfile}" \
- [list additional_flags=-nostartfiles]] {
+ [list ldflags=-nostartfiles]] {
return -1
}
diff --git a/gdb/testsuite/gdb.dwarf2/debug-names.exp b/gdb/testsuite/gdb.dwarf2/debug-names.exp
index 67a4f49..7f63af2 100644
--- a/gdb/testsuite/gdb.dwarf2/debug-names.exp
+++ b/gdb/testsuite/gdb.dwarf2/debug-names.exp
@@ -21,7 +21,7 @@ require dwarf2_support
standard_testfile _start.c debug-names.S
set func_info_vars \
- [get_func_info _start [list debug additional_flags=-nostartfiles]]
+ [get_func_info _start [list debug ldflags=-nostartfiles]]
# Create the DWARF.
set asm_file [standard_output_file $srcfile2]
@@ -35,16 +35,18 @@ Dwarf::assemble {
}
cu { label cu_label } {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
subprogram {
- {DW_AT_name _start}
- {DW_AT_low_pc $_start_start DW_FORM_addr}
- {DW_AT_high_pc $_start_end DW_FORM_addr}
+ DW_AT_name _start
+ DW_AT_low_pc $_start_start DW_FORM_addr
+ DW_AT_high_pc $_start_end DW_FORM_addr
}
base_type {
- {name int}
- {byte_size 4 sdata}
- {encoding @DW_ATE_signed}
+ DW_AT_name int
+ DW_AT_byte_size 4 sdata
+ DW_AT_encoding @DW_ATE_signed
}
}
}
@@ -57,7 +59,7 @@ Dwarf::assemble {
}
if [prepare_for_testing "failed to prepare" $testfile "${asm_file} ${srcfile}" \
- [list additional_flags=-nostartfiles]] {
+ [list ldflags=-nostartfiles]] {
return -1
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw-form-ref-addr-with-type-units.exp b/gdb/testsuite/gdb.dwarf2/dw-form-ref-addr-with-type-units.exp
index 6253629..396fd94 100644
--- a/gdb/testsuite/gdb.dwarf2/dw-form-ref-addr-with-type-units.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw-form-ref-addr-with-type-units.exp
@@ -42,8 +42,8 @@ Dwarf::assemble $asm_file {
compile_unit {
} {
subprogram {
- {MACRO_AT_func {main}}
- {type %$int_type}
+ MACRO_AT_func {main}
+ DW_AT_type %$int_type
}
}
}
@@ -61,9 +61,9 @@ Dwarf::assemble $asm_file {
compile_unit {
} {
int_type: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name int}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
}
}
@@ -79,19 +79,19 @@ Dwarf::assemble $asm_file {
declare_labels dummy_int_type
the_type_i: structure_type {
- {name s}
- {byte_size 4 sdata}
+ DW_AT_name s
+ DW_AT_byte_size 4 sdata
} {
- member {
- {name i}
- {type :$dummy_int_type}
- }
+ member {
+ DW_AT_name i
+ DW_AT_type :$dummy_int_type
+ }
}
dummy_int_type: base_type {
- {name int}
- {encoding @DW_ATE_signed}
- {byte_size 4 sdata}
+ DW_AT_name int
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 4 sdata
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw-form-strx.exp.tcl b/gdb/testsuite/gdb.dwarf2/dw-form-strx.exp.tcl
index bc5a654..0e5cee2 100644
--- a/gdb/testsuite/gdb.dwarf2/dw-form-strx.exp.tcl
+++ b/gdb/testsuite/gdb.dwarf2/dw-form-strx.exp.tcl
@@ -32,23 +32,23 @@ Dwarf::assemble $asm_file {
version 5
} {
DW_TAG_compile_unit {
- {DW_AT_str_offsets_base $base_offset_cu1 sec_offset}
+ DW_AT_str_offsets_base $base_offset_cu1 sec_offset
} {
declare_labels int4_type
int4_type: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name $::int_str_idx DW_FORM_strx_id}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name $::int_str_idx DW_FORM_strx_id
}
DW_TAG_variable {
- {DW_AT_name global_var}
- {DW_AT_type :$int4_type}
- {DW_AT_location {
+ DW_AT_name global_var
+ DW_AT_type :$int4_type
+ DW_AT_location {
DW_OP_const1u 12
DW_OP_stack_value
- } SPECIAL_expr}
+ } SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-align.exp b/gdb/testsuite/gdb.dwarf2/dw2-align.exp
index 4d43816..dfb11af8 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-align.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-align.exp
@@ -27,39 +27,39 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
- } {
+ DW_AT_language @DW_LANG_C_plus_plus
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
+ } {
declare_labels itype ptype
- itype: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name int_4096}
- {DW_AT_alignment 4096 DW_FORM_sdata}
- }
+ itype: DW_TAG_base_type {
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int_4096
+ DW_AT_alignment 4096 DW_FORM_sdata
+ }
- ptype: DW_TAG_pointer_type {
- {DW_AT_byte_size 8 DW_FORM_sdata}
- {DW_AT_type :$itype}
- {DW_AT_alignment 4096 DW_FORM_sdata}
- }
+ ptype: DW_TAG_pointer_type {
+ DW_AT_byte_size 8 DW_FORM_sdata
+ DW_AT_type :$itype
+ DW_AT_alignment 4096 DW_FORM_sdata
+ }
- DW_TAG_typedef {
- {DW_AT_name ptr_4096}
- {DW_AT_type :$ptype}
- }
+ DW_TAG_typedef {
+ DW_AT_name ptr_4096
+ DW_AT_type :$ptype
+ }
DW_TAG_structure_type {
- {DW_AT_name "struct_4096"}
- {DW_AT_byte_size 4096 DW_FORM_sdata}
- {DW_AT_alignment 4096 DW_FORM_udata}
+ DW_AT_name "struct_4096"
+ DW_AT_byte_size 4096 DW_FORM_sdata
+ DW_AT_alignment 4096 DW_FORM_udata
} {
member {
- {name a}
- {type :$itype}
- {data_member_location 0 data1}
+ DW_AT_name a
+ DW_AT_type :$itype
+ DW_AT_data_member_location 0 data1
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-aranges.exp b/gdb/testsuite/gdb.dwarf2/dw2-aranges.exp
index 8d941ba..928edf0 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-aranges.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-aranges.exp
@@ -25,14 +25,17 @@ set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu { label cu_start } {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
}
}
aranges { addr_zero true } cu_start {
}
}
-if { [prepare_for_testing "failed to prepare" $binfile [list $asm_file $srcfile ]] } {
+if { [prepare_for_testing "failed to prepare" $testfile \
+ [list $asm_file $srcfile ]] } {
return -1
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bad-abstract-origin.exp b/gdb/testsuite/gdb.dwarf2/dw2-bad-abstract-origin.exp
index 9c1f424..0ee06b0 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-bad-abstract-origin.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-bad-abstract-origin.exp
@@ -93,75 +93,75 @@ proc run_test { dwarf_version } {
cu { version $dwarf_version } {
compile_unit {
- {producer "GNU C 14.1.0"}
- {language @DW_LANG_C}
- {name $::srcfile}
- {comp_dir /tmp}
- {stmt_list $lines_table DW_FORM_sec_offset}
- {low_pc 0 addr}
+ DW_AT_producer "GNU C 14.1.0"
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $::srcfile
+ DW_AT_comp_dir /tmp
+ DW_AT_stmt_list $lines_table DW_FORM_sec_offset
+ DW_AT_low_pc 0 addr
} {
int_label: base_type {
- {name "int"}
- {byte_size 4 sdata}
- {encoding @DW_ATE_signed}
+ DW_AT_name "int"
+ DW_AT_byte_size 4 sdata
+ DW_AT_encoding @DW_ATE_signed
}
foo_func: subprogram {
- {name foo}
- {inline @DW_INL_declared_inlined}
- {decl_file 1 data1}
- {decl_line $::func_a_decl_line data1}
+ DW_AT_name foo
+ DW_AT_inline @DW_INL_declared_inlined
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line $::func_a_decl_line data1
} {
foo_block: lexical_block {
} {
value_label: DW_TAG_variable {
- {name value}
- {type :$int_label}
+ DW_AT_name value
+ DW_AT_type :$int_label
}
}
}
subprogram {
- {abstract_origin %$foo_func}
- {low_pc func_a_0 addr}
- {high_pc func_a_6 addr}
- {external 1 flag}
+ DW_AT_abstract_origin %$foo_func
+ DW_AT_low_pc func_a_0 addr
+ DW_AT_high_pc func_a_6 addr
+ DW_AT_external 1 flag
} {
bad_block: lexical_block {
- {abstract_origin %$foo_block}
- {ranges $block_ranges DW_FORM_sec_offset}
+ DW_AT_abstract_origin %$foo_block
+ DW_AT_ranges $block_ranges DW_FORM_sec_offset
} {
DW_TAG_variable {
- {abstract_origin %$value_label}
- {DW_AT_location {
+ DW_AT_abstract_origin %$value_label
+ DW_AT_location {
DW_OP_const1u 23
DW_OP_stack_value
- } SPECIAL_expr}
+ } SPECIAL_expr
}
}
}
subprogram {
- {name baz}
- {low_pc func_b_0 addr}
- {high_pc func_b_5 addr}
- {external 1 flag}
+ DW_AT_name baz
+ DW_AT_low_pc func_b_0 addr
+ DW_AT_high_pc func_b_5 addr
+ DW_AT_external 1 flag
} {
inlined_subroutine {
- {abstract_origin %$foo_func}
- {call_file 1 data1}
- {call_line $::call_line data1}
- {low_pc func_b_1 addr}
- {high_pc func_b_4 addr}
+ DW_AT_abstract_origin %$foo_func
+ DW_AT_call_file 1 data1
+ DW_AT_call_line $::call_line data1
+ DW_AT_low_pc func_b_1 addr
+ DW_AT_high_pc func_b_4 addr
} {
lexical_block {
- {abstract_origin %$bad_block}
- {low_pc func_b_2 addr}
- {high_pc func_b_3 addr}
+ DW_AT_abstract_origin %$bad_block
+ DW_AT_low_pc func_b_2 addr
+ DW_AT_high_pc func_b_3 addr
} {
DW_TAG_variable {
- {abstract_origin %$value_label}
- {DW_AT_location {
+ DW_AT_abstract_origin %$value_label
+ DW_AT_location {
DW_OP_const1u 99
DW_OP_stack_value
- } SPECIAL_expr}
+ } SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bad-elf.exp b/gdb/testsuite/gdb.dwarf2/dw2-bad-elf.exp
index fa9d000..a0ae498 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-bad-elf.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-bad-elf.exp
@@ -54,56 +54,56 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir ${srcdir}/${subdir}}
- {stmt_list $L1 DW_FORM_sec_offset}
- {ranges ${ranges_label_1} DW_FORM_sec_offset}
- {DW_AT_low_pc 0 addr}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $srcfile
+ DW_AT_comp_dir ${srcdir}/${subdir}
+ DW_AT_stmt_list $L1 DW_FORM_sec_offset
+ DW_AT_ranges ${ranges_label_1} DW_FORM_sec_offset
+ DW_AT_low_pc 0 addr
} {
declare_labels integer_label
DW_TAG_subprogram {
- {name main}
- {low_pc $main_start addr}
- {high_pc $main_length data8}
- {DW_AT_type :$integer_label}
- {DW_AT_decl_file 1 data1}
- {DW_AT_decl_line 10 data1}
+ DW_AT_name main
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc $main_length data8
+ DW_AT_type :$integer_label
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line 10 data1
}
integer_label: DW_TAG_base_type {
- {DW_AT_byte_size $int_size DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size $int_size DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
}
}
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C}
- {DW_AT_name $srcfile2}
- {DW_AT_comp_dir ${srcdir}/${subdir}}
- {stmt_list $L2 DW_FORM_sec_offset}
- {ranges ${ranges_label_2} DW_FORM_sec_offset}
- {DW_AT_low_pc 0 addr}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $srcfile2
+ DW_AT_comp_dir ${srcdir}/${subdir}
+ DW_AT_stmt_list $L2 DW_FORM_sec_offset
+ DW_AT_ranges ${ranges_label_2} DW_FORM_sec_offset
+ DW_AT_low_pc 0 addr
} {
declare_labels integer_label
DW_TAG_subprogram {
- {name some_func}
- {low_pc some_func addr}
- {high_pc some_func_end addr}
- {DW_AT_type :$integer_label}
- {DW_AT_decl_file 2 data1}
- {DW_AT_decl_line 5 data1}
+ DW_AT_name some_func
+ DW_AT_low_pc some_func addr
+ DW_AT_high_pc some_func_end addr
+ DW_AT_type :$integer_label
+ DW_AT_decl_file 2 data1
+ DW_AT_decl_line 5 data1
}
integer_label: DW_TAG_base_type {
- {DW_AT_byte_size $int_size DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size $int_size DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
}
}
@@ -170,7 +170,7 @@ if { [build_executable ${testfile}.exp ${testfile} \
proc run_test { goto_main } {
global binfile decimal hex
- clean_restart ${binfile}
+ clean_restart ${::testfile}
if { $goto_main } {
if ![runto_main] {
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.exp b/gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.exp
index f2534cb..ad65842 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.exp
@@ -28,27 +28,26 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
-
- } {
+ DW_AT_language @DW_LANG_C_plus_plus
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
+ } {
declare_labels b_l
b_l: DW_TAG_base_type {
- {DW_AT_byte_size 1 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name bool}
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name bool
}
- DW_TAG_subprogram {
- {MACRO_AT_func {f}}
- {type :$b_l}
- {DW_AT_MIPS_linkage_name _Z1fv}
+ DW_TAG_subprogram {
+ MACRO_AT_func {f}
+ DW_AT_type :$b_l
+ DW_AT_MIPS_linkage_name _Z1fv
}
- DW_TAG_subprogram {
- {MACRO_AT_func {g}}
- {type :$b_l}
- {DW_AT_MIPS_linkage_name 42 DW_FORM_data1}
+ DW_TAG_subprogram {
+ MACRO_AT_func {g}
+ DW_AT_type :$b_l
+ DW_AT_MIPS_linkage_name 42 DW_FORM_data1
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.exp b/gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.exp
index fd2c899..dba8d5e 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.exp
@@ -30,21 +30,21 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
} {
declare_labels b_l
b_l: DW_TAG_base_type {
- {DW_AT_byte_size 1 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name bool}
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name bool
}
DW_TAG_variable {
- {name var}
- {type :$b_l}
- {external 1 flag}
+ DW_AT_name var
+ DW_AT_type :$b_l
+ DW_AT_external 1 flag
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bfloat16.exp b/gdb/testsuite/gdb.dwarf2/dw2-bfloat16.exp
index c611ad2..b8f96a1 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-bfloat16.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-bfloat16.exp
@@ -32,35 +32,35 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
- } {
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
+ } {
declare_labels bf16_type fp16_type \
bf16_var fp16_var
- bf16_type: DW_TAG_base_type {
- {DW_AT_name __bf16}
- {encoding @DW_ATE_float}
- {DW_AT_byte_size 2 DW_FORM_sdata}
- }
+ bf16_type: DW_TAG_base_type {
+ DW_AT_name __bf16
+ DW_AT_encoding @DW_ATE_float
+ DW_AT_byte_size 2 DW_FORM_sdata
+ }
- fp16_type: DW_TAG_base_type {
- {DW_AT_name __fp16}
- {encoding @DW_ATE_float}
- {DW_AT_byte_size 2 DW_FORM_sdata}
- }
+ fp16_type: DW_TAG_base_type {
+ DW_AT_name __fp16
+ DW_AT_encoding @DW_ATE_float
+ DW_AT_byte_size 2 DW_FORM_sdata
+ }
bf16_var: DW_TAG_variable {
- {DW_AT_name "bf16_1"}
- {DW_AT_type :${bf16_type}}
- {DW_AT_const_value 0x4049 DW_FORM_sdata}
+ DW_AT_name "bf16_1"
+ DW_AT_type :${bf16_type}
+ DW_AT_const_value 0x4049 DW_FORM_sdata
}
fp16_var: DW_TAG_variable {
- {DW_AT_name "fp16_1"}
- {DW_AT_type :${fp16_type}}
- {DW_AT_const_value 0x4248 DW_FORM_sdata}
+ DW_AT_name "fp16_1"
+ DW_AT_type :${fp16_type}
+ DW_AT_const_value 0x4248 DW_FORM_sdata
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-complex-parts.exp b/gdb/testsuite/gdb.dwarf2/dw2-complex-parts.exp
index 34746f2..509924a 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-complex-parts.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-complex-parts.exp
@@ -52,14 +52,14 @@ Dwarf::assemble $asm_file {
declare_labels int_type
int_type: DW_TAG_base_type {
- {DW_AT_byte_size $::int_size DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name int}
+ DW_AT_byte_size $::int_size DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
DW_TAG_subprogram {
- {MACRO_AT_func {main}}
- {type :$int_type}
+ MACRO_AT_func {main}
+ DW_AT_type :$int_type
}
# GCC complex float.
@@ -67,36 +67,36 @@ Dwarf::assemble $asm_file {
declare_labels cf_type cd_type cld_type
cf_type: DW_TAG_base_type {
- {DW_AT_byte_size [expr 2 * $::float_size] DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_complex_float}
- {DW_AT_name "complex float"}
+ DW_AT_byte_size [expr 2 * $::float_size] DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_complex_float
+ DW_AT_name "complex float"
}
cd_type: DW_TAG_base_type {
- {DW_AT_byte_size [expr 2 * $::double_size] DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_complex_float}
- {DW_AT_name "complex double"}
+ DW_AT_byte_size [expr 2 * $::double_size] DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_complex_float
+ DW_AT_name "complex double"
}
cld_type: DW_TAG_base_type {
- {DW_AT_byte_size [expr 2 * $::long_double_size] DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_complex_float}
- {DW_AT_name "complex long double"}
+ DW_AT_byte_size [expr 2 * $::long_double_size] DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_complex_float
+ DW_AT_name "complex long double"
}
DW_TAG_variable {
- {name var_complex_float}
- {DW_AT_type :$cf_type}
+ DW_AT_name var_complex_float
+ DW_AT_type :$cf_type
}
DW_TAG_variable {
- {name var_complex_double}
- {DW_AT_type :$cd_type}
+ DW_AT_name var_complex_double
+ DW_AT_type :$cd_type
}
DW_TAG_variable {
- {name var_complex_long_double}
- {DW_AT_type :$cld_type}
+ DW_AT_name var_complex_long_double
+ DW_AT_type :$cld_type
}
# GCC complex int.
@@ -105,14 +105,14 @@ Dwarf::assemble $asm_file {
declare_labels ci_type
ci_type: DW_TAG_base_type {
- {DW_AT_byte_size [expr 2 * $::int_size] DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_lo_user}
- {DW_AT_name "complex int"}
+ DW_AT_byte_size [expr 2 * $::int_size] DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_lo_user
+ DW_AT_name "complex int"
}
DW_TAG_variable {
- {name var_complex_int}
- {DW_AT_type :$ci_type}
+ DW_AT_name var_complex_int
+ DW_AT_type :$ci_type
}
# Clang complex float.
@@ -122,36 +122,36 @@ Dwarf::assemble $asm_file {
declare_labels clang_cf_type clang_cd_type clang_cld_type
clang_cf_type: DW_TAG_base_type {
- {DW_AT_byte_size [expr 2 * $::float_size] DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_complex_float}
- {DW_AT_name "complex"}
+ DW_AT_byte_size [expr 2 * $::float_size] DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_complex_float
+ DW_AT_name "complex"
}
DW_TAG_variable {
- {name var_complex_clang_float}
- {DW_AT_type :$clang_cf_type}
+ DW_AT_name var_complex_clang_float
+ DW_AT_type :$clang_cf_type
}
clang_cd_type: DW_TAG_base_type {
- {DW_AT_byte_size [expr 2 * $::double_size] DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_complex_float}
- {DW_AT_name "complex"}
+ DW_AT_byte_size [expr 2 * $::double_size] DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_complex_float
+ DW_AT_name "complex"
}
DW_TAG_variable {
- {name var_complex_clang_double}
- {DW_AT_type :$clang_cd_type}
+ DW_AT_name var_complex_clang_double
+ DW_AT_type :$clang_cd_type
}
clang_cld_type: DW_TAG_base_type {
- {DW_AT_byte_size [expr 2 * $::long_double_size] DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_complex_float}
- {DW_AT_name "complex"}
+ DW_AT_byte_size [expr 2 * $::long_double_size] DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_complex_float
+ DW_AT_name "complex"
}
DW_TAG_variable {
- {name var_complex_clang_long_double}
- {DW_AT_type :$clang_cld_type}
+ DW_AT_name var_complex_clang_long_double
+ DW_AT_type :$clang_cld_type
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-disasm-over-non-stmt.exp b/gdb/testsuite/gdb.dwarf2/dw2-disasm-over-non-stmt.exp
index cec1017..ddbab26 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-disasm-over-non-stmt.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-disasm-over-non-stmt.exp
@@ -43,15 +43,15 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {producer "gcc" }
- {language @DW_LANG_C}
- {name ${srcfile3}}
- {low_pc 0 addr}
- {stmt_list ${lines_label} DW_FORM_sec_offset}
+ DW_AT_producer "gcc"
+ DW_AT_language @DW_LANG_C
+ DW_AT_name ${srcfile3}
+ DW_AT_low_pc 0 addr
+ DW_AT_stmt_list ${lines_label} DW_FORM_sec_offset
} {
subprogram {
- {external 1 flag}
- {MACRO_AT_func {main}}
+ DW_AT_external 1 flag
+ MACRO_AT_func {main}
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-empty-file-name.exp b/gdb/testsuite/gdb.dwarf2/dw2-empty-file-name.exp
index 85b6f8b..2a32433 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-empty-file-name.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-empty-file-name.exp
@@ -33,13 +33,13 @@ Dwarf::assemble $asm_file {
cu { version 5 } {
compile_unit {
- {language @DW_LANG_C}
- {name $srcfile}
- {stmt_list $Llines DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $srcfile
+ DW_AT_stmt_list $Llines DW_FORM_sec_offset
} {
subprogram {
- {external 1 flag}
- {MACRO_AT_func {main}}
+ DW_AT_external 1 flag
+ MACRO_AT_func {main}
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-entry-pc.exp b/gdb/testsuite/gdb.dwarf2/dw2-entry-pc.exp
index e795040..1a0eeba 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-entry-pc.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-entry-pc.exp
@@ -159,20 +159,20 @@ proc_with_prefix use_low_high_bounds_without_entry_pc { dwarf_vesion } {
cu { version $::dwarf_version } {
compile_unit {
- {producer "gcc"}
- {language @DW_LANG_C}
- {name ${srcfile}}
- {comp_dir /tmp}
- {stmt_list $lines_table DW_FORM_sec_offset}
+ DW_AT_producer "gcc"
+ DW_AT_language @DW_LANG_C
+ DW_AT_name ${srcfile}
+ DW_AT_comp_dir /tmp
+ DW_AT_stmt_list $lines_table DW_FORM_sec_offset
} {
subprogram {
- {name foo}
- {decl_file 1 data1}
- {decl_line $::foo_decl_line data1}
- {decl_column 1 data1}
- {low_pc $::foo_start addr}
- {high_pc $::foo_len $::ptr_type}
- {external 1 flag}
+ DW_AT_name foo
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line $::foo_decl_line data1
+ DW_AT_decl_column 1 data1
+ DW_AT_low_pc $::foo_start addr
+ DW_AT_high_pc $::foo_len $::ptr_type
+ DW_AT_external 1 flag
}
}
}
@@ -202,21 +202,21 @@ proc_with_prefix use_low_high_bounds_with_entry_pc { dwarf_version } {
cu { version $::dwarf_version } {
compile_unit {
- {producer "gcc"}
- {language @DW_LANG_C}
- {name ${srcfile}}
- {comp_dir /tmp}
- {stmt_list $lines_table DW_FORM_sec_offset}
+ DW_AT_producer "gcc"
+ DW_AT_language @DW_LANG_C
+ DW_AT_name ${srcfile}
+ DW_AT_comp_dir /tmp
+ DW_AT_stmt_list $lines_table DW_FORM_sec_offset
} {
subprogram {
- {name foo}
- {decl_file 1 data1}
- {decl_line $::foo_decl_line data1}
- {decl_column 1 data1}
- {low_pc $::foo_start addr}
- {high_pc $::foo_len $::ptr_type}
- {external 1 flag}
- {entry_pc foo_middle addr}
+ DW_AT_name foo
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line $::foo_decl_line data1
+ DW_AT_decl_column 1 data1
+ DW_AT_low_pc $::foo_start addr
+ DW_AT_high_pc $::foo_len $::ptr_type
+ DW_AT_external 1 flag
+ DW_AT_entry_pc foo_middle addr
}
}
}
@@ -248,21 +248,21 @@ proc_with_prefix use_low_high_bounds_with_entry_offset { dwarf_version } {
cu { version $::dwarf_version } {
compile_unit {
- {producer "gcc"}
- {language @DW_LANG_C}
- {name ${srcfile}}
- {comp_dir /tmp}
- {stmt_list $lines_table DW_FORM_sec_offset}
+ DW_AT_producer "gcc"
+ DW_AT_language @DW_LANG_C
+ DW_AT_name ${srcfile}
+ DW_AT_comp_dir /tmp
+ DW_AT_stmt_list $lines_table DW_FORM_sec_offset
} {
subprogram {
- {name foo}
- {decl_file 1 data1}
- {decl_line $::foo_decl_line data1}
- {decl_column 1 data1}
- {low_pc $::foo_start addr}
- {high_pc $::foo_len $::ptr_type}
- {external 1 flag}
- {entry_pc $foo_offset data4}
+ DW_AT_name foo
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line $::foo_decl_line data1
+ DW_AT_decl_column 1 data1
+ DW_AT_low_pc $::foo_start addr
+ DW_AT_high_pc $::foo_len $::ptr_type
+ DW_AT_external 1 flag
+ DW_AT_entry_pc $foo_offset data4
}
}
}
@@ -293,20 +293,20 @@ proc_with_prefix use_ranges_without_entry_pc { dwarf_version } {
cu { version $::dwarf_version } {
compile_unit {
- {producer "gcc"}
- {language @DW_LANG_C}
- {name ${srcfile}}
- {comp_dir /tmp}
- {stmt_list $lines_table DW_FORM_sec_offset}
- {low_pc 0 addr}
+ DW_AT_producer "gcc"
+ DW_AT_language @DW_LANG_C
+ DW_AT_name ${srcfile}
+ DW_AT_comp_dir /tmp
+ DW_AT_stmt_list $lines_table DW_FORM_sec_offset
+ DW_AT_low_pc 0 addr
} {
subprogram {
- {name foo}
- {decl_file 1 data1}
- {decl_line $::foo_decl_line data1}
- {decl_column 1 data1}
- {external 1 flag}
- {ranges ${ranges_label} DW_FORM_sec_offset}
+ DW_AT_name foo
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line $::foo_decl_line data1
+ DW_AT_decl_column 1 data1
+ DW_AT_external 1 flag
+ DW_AT_ranges ${ranges_label} DW_FORM_sec_offset
}
}
}
@@ -357,21 +357,21 @@ proc_with_prefix use_ranges_with_entry_pc { dwarf_version } {
cu { version $::dwarf_version } {
compile_unit {
- {producer "gcc"}
- {language @DW_LANG_C}
- {name ${srcfile}}
- {comp_dir /tmp}
- {stmt_list $lines_table DW_FORM_sec_offset}
- {low_pc 0 addr}
+ DW_AT_producer "gcc"
+ DW_AT_language @DW_LANG_C
+ DW_AT_name ${srcfile}
+ DW_AT_comp_dir /tmp
+ DW_AT_stmt_list $lines_table DW_FORM_sec_offset
+ DW_AT_low_pc 0 addr
} {
subprogram {
- {name foo}
- {decl_file 1 data1}
- {decl_line $::foo_decl_line data1}
- {decl_column 1 data1}
- {external 1 flag}
- {ranges ${ranges_label} DW_FORM_sec_offset}
- {entry_pc foo_middle addr}
+ DW_AT_name foo
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line $::foo_decl_line data1
+ DW_AT_decl_column 1 data1
+ DW_AT_external 1 flag
+ DW_AT_ranges ${ranges_label} DW_FORM_sec_offset
+ DW_AT_entry_pc foo_middle addr
}
}
}
@@ -424,21 +424,21 @@ proc_with_prefix use_ranges_with_entry_offset { dwarf_version } {
cu { version $::dwarf_version } {
compile_unit {
- {producer "gcc"}
- {language @DW_LANG_C}
- {name ${srcfile}}
- {comp_dir /tmp}
- {stmt_list $lines_table DW_FORM_sec_offset}
- {low_pc 0 addr}
+ DW_AT_producer "gcc"
+ DW_AT_language @DW_LANG_C
+ DW_AT_name ${srcfile}
+ DW_AT_comp_dir /tmp
+ DW_AT_stmt_list $lines_table DW_FORM_sec_offset
+ DW_AT_low_pc 0 addr
} {
subprogram {
- {name foo}
- {decl_file 1 data1}
- {decl_line $::foo_decl_line data1}
- {decl_column 1 data1}
- {external 1 flag}
- {ranges ${ranges_label} DW_FORM_sec_offset}
- {entry_pc $foo_offset data4}
+ DW_AT_name foo
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line $::foo_decl_line data1
+ DW_AT_decl_column 1 data1
+ DW_AT_external 1 flag
+ DW_AT_ranges ${ranges_label} DW_FORM_sec_offset
+ DW_AT_entry_pc $foo_offset data4
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-entry-points.c b/gdb/testsuite/gdb.dwarf2/dw2-entry-points.c
index ccfb150..258ebfa 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-entry-points.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-entry-points.c
@@ -33,11 +33,28 @@ bar_helper (void)
asm ("foobar_entry_label: .globl foobar_entry_label");
}
+__attribute__ ((noinline))
+void
+barso_helper (void)
+{
+ asm ("barso_helper_label: .globl barso_helper_label");
+ I++;
+ J++;
+ asm ("fooso_entry_label: .globl fooso_entry_label");
+ J++;
+ K++;
+ asm ("foobarso_entry_label: .globl foobarso_entry_label");
+}
+
int
main (void)
{
asm ("main_label: .globl main_label");
bar_helper ();
+ I = 0;
+ J = 0;
+ K = 0;
+ barso_helper ();
return 0;
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-entry-points.exp b/gdb/testsuite/gdb.dwarf2/dw2-entry-points.exp
index bd22560..97194d5 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-entry-points.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-entry-points.exp
@@ -36,6 +36,7 @@ Dwarf::assemble $asm_file {
get_func_info main
get_func_info bar_helper
+ get_func_info barso_helper
set int_size [get_sizeof "int" 4]
@@ -50,69 +51,69 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_Fortran90}
- {name dw2-entry-points.f90}
- {comp_dir /tmp}
+ DW_AT_language @DW_LANG_Fortran90
+ DW_AT_name dw2-entry-points.f90
+ DW_AT_comp_dir /tmp
} {
int_label: base_type {
- {name "int"}
- {byte_size $int_size sdata}
- {encoding @DW_ATE_signed}
+ DW_AT_name "int"
+ DW_AT_byte_size $int_size sdata
+ DW_AT_encoding @DW_ATE_signed
}
subprogram {
- {name prog}
- {decl_file 1 data1}
- {decl_line $prog_line data1}
- {low_pc $main_start addr}
- {high_pc "$main_start + $main_len" addr}
- {external 1 flag}
- {main_subprogram 1 flag}
+ DW_AT_name prog
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line $prog_line data1
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc "$main_start + $main_len" addr
+ DW_AT_external 1 flag
+ DW_AT_main_subprogram 1 flag
}
subprogram {
- {name bar}
- {decl_file 1 data1}
- {decl_line $bar_line data1}
- {external 1 flag}
- {low_pc $bar_helper_start addr}
- {high_pc "$bar_helper_start + $bar_helper_len" addr}
+ DW_AT_name bar
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line $bar_line data1
+ DW_AT_external 1 flag
+ DW_AT_low_pc $bar_helper_start addr
+ DW_AT_high_pc "$bar_helper_start + $bar_helper_len" addr
} {
formal_parameter {
- {name I}
- {type :$int_label}
- {location {addr $global_I} SPECIAL_expr}
+ DW_AT_name I
+ DW_AT_type :$int_label
+ DW_AT_location [subst {addr $global_I}] SPECIAL_expr
}
formal_parameter {
- {name J}
- {type :$int_label}
- {location {addr $global_J} SPECIAL_expr}
+ DW_AT_name J
+ DW_AT_type :$int_label
+ DW_AT_location [subst {addr $global_J}] SPECIAL_expr
}
entry_point {
- {name foo}
- {decl_file 1 data1}
- {decl_line $foo_line data1}
- {low_pc foo_entry_label addr}
+ DW_AT_name foo
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line $foo_line data1
+ DW_AT_low_pc foo_entry_label addr
} {
formal_parameter {
- {name J}
- {type :$int_label}
- {location {addr $global_J} SPECIAL_expr}
+ DW_AT_name J
+ DW_AT_type :$int_label
+ DW_AT_location [subst {addr $global_J}] SPECIAL_expr
}
formal_parameter {
- {name K}
- {type :$int_label}
- {location {addr $global_K} SPECIAL_expr}
+ DW_AT_name K
+ DW_AT_type :$int_label
+ DW_AT_location [subst {addr $global_K}] SPECIAL_expr
}
}
entry_point {
- {name foobar}
- {decl_file 1 data1}
- {decl_line $foobar_line data1}
- {low_pc foobar_entry_label addr}
+ DW_AT_name foobar
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line $foobar_line data1
+ DW_AT_low_pc foobar_entry_label addr
} {
formal_parameter {
- {name J}
- {type :$int_label}
- {location {addr $global_J} SPECIAL_expr}
+ DW_AT_name J
+ DW_AT_type :$int_label
+ DW_AT_location [subst {addr $global_J}] SPECIAL_expr
}
}
}
@@ -121,48 +122,48 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_Fortran90}
- {name dw2-entry-points-2.f90}
- {comp_dir /tmp}
+ DW_AT_language @DW_LANG_Fortran90
+ DW_AT_name dw2-entry-points-2.f90
+ DW_AT_comp_dir /tmp
} {
int2_label: base_type {
- {name "int"}
- {byte_size $int_size sdata}
- {encoding @DW_ATE_signed}
+ DW_AT_name "int"
+ DW_AT_byte_size $int_size sdata
+ DW_AT_encoding @DW_ATE_signed
}
subprogram {
- {name barso}
- {decl_file 1 data1}
- {decl_line $bar_line data1}
- {external 1 flag}
- {low_pc $bar_helper_start addr}
- {high_pc "$bar_helper_start + $bar_helper_len" addr}
+ DW_AT_name barso
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line $bar_line data1
+ DW_AT_external 1 flag
+ DW_AT_low_pc $barso_helper_start addr
+ DW_AT_high_pc "$barso_helper_start + $barso_helper_len" addr
} {
formal_parameter {
- {name I}
- {type :$int2_label}
- {location {addr $global_I} SPECIAL_expr}
+ DW_AT_name I
+ DW_AT_type :$int2_label
+ DW_AT_location [subst {addr $global_I}] SPECIAL_expr
}
formal_parameter {
- {name J}
- {type :$int2_label}
- {location {addr $global_J} SPECIAL_expr}
+ DW_AT_name J
+ DW_AT_type :$int2_label
+ DW_AT_location [subst {addr $global_J}] SPECIAL_expr
}
entry_point {
- {name fooso}
- {decl_file 1 data1}
- {decl_line $foo_line data1}
- {low_pc foo_entry_label addr}
+ DW_AT_name fooso
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line $foo_line data1
+ DW_AT_low_pc fooso_entry_label addr
} {
formal_parameter {
- {name J}
- {type :$int2_label}
- {location {addr $global_J} SPECIAL_expr}
+ DW_AT_name J
+ DW_AT_type :$int2_label
+ DW_AT_location [subst {addr $global_J}] SPECIAL_expr
}
formal_parameter {
- {name K}
- {type :$int2_label}
- {location {addr $global_K} SPECIAL_expr}
+ DW_AT_name K
+ DW_AT_type :$int2_label
+ DW_AT_location [subst {addr $global_K}] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-entry-value-2.exp b/gdb/testsuite/gdb.dwarf2/dw2-entry-value-2.exp
index 55ecf9c..7dd859c 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-entry-value-2.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-entry-value-2.exp
@@ -45,47 +45,47 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_name $srcfile}
+ DW_AT_name $srcfile
} {
declare_labels integer
integer: DW_TAG_base_type {
- {DW_AT_byte_size 8 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size 8 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
DW_TAG_subprogram {
- { DW_AT_name main }
- { DW_AT_low_pc $main_start DW_FORM_addr }
- { DW_AT_high_pc $main_end DW_FORM_addr }
+ DW_AT_name main
+ DW_AT_low_pc $main_start DW_FORM_addr
+ DW_AT_high_pc $main_end DW_FORM_addr
} {
DW_TAG_variable {
- { DW_AT_name argc }
- { DW_AT_type :$integer }
- { DW_AT_location {
+ DW_AT_name argc
+ DW_AT_type :$integer
+ DW_AT_location [subst {
DW_OP_entry_value {
DW_OP_regx $::dwarf_regnum
}
- } SPECIAL_expr }
+ }] SPECIAL_expr
}
}
DW_TAG_subprogram {
- { DW_AT_name bar }
- { DW_AT_low_pc $bar_start DW_FORM_addr }
- { DW_AT_high_pc $bar_end DW_FORM_addr }
+ DW_AT_name bar
+ DW_AT_low_pc $bar_start DW_FORM_addr
+ DW_AT_high_pc $bar_end DW_FORM_addr
} {
DW_TAG_variable {
- { DW_AT_name foo }
- { DW_AT_type :$integer }
- { DW_AT_location {
+ DW_AT_name foo
+ DW_AT_type :$integer
+ DW_AT_location [subst {
DW_OP_entry_value {
DW_OP_bregx $::dwarf_regnum 0
DW_OP_deref_size 4
}
DW_OP_stack_value
- } SPECIAL_expr }
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.exp.tcl b/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.exp.tcl
index 954a252..7e60b6e 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.exp.tcl
+++ b/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.exp.tcl
@@ -56,42 +56,42 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name dw2-prologue-end.c}
- {stmt_list ${lines_label} DW_FORM_sec_offset}
- {producer "clang version 17.0.1"}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name dw2-prologue-end.c
+ DW_AT_stmt_list ${lines_label} DW_FORM_sec_offset
+ DW_AT_producer "clang version 17.0.1"
} {
declare_labels char_label
char_label: base_type {
- {name char}
- {encoding @DW_ATE_signed}
- {byte_size 1 DW_FORM_sdata}
+ DW_AT_name char
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 1 DW_FORM_sdata
}
subprogram {
- {external 1 flag}
- {name trivial}
- {low_pc $trivial_start addr}
- {high_pc "$trivial_start + $trivial_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name trivial
+ DW_AT_low_pc $trivial_start addr
+ DW_AT_high_pc "$trivial_start + $trivial_len" addr
}
subprogram {
- {external 1 flag}
- {name watch}
- {low_pc $watch_start addr}
- {high_pc "$watch_start + $watch_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name watch
+ DW_AT_low_pc $watch_start addr
+ DW_AT_high_pc "$watch_start + $watch_len" addr
} {
DW_TAG_variable {
- {name local}
- {type :$char_label}
- {DW_AT_location {DW_OP_reg0} SPECIAL_expr}
+ DW_AT_name local
+ DW_AT_type :$char_label
+ DW_AT_location {DW_OP_reg0} SPECIAL_expr
}
}
subprogram {
- {external 1 flag}
- {name main}
- {low_pc $main_start addr}
- {high_pc "$main_start + $main_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name main
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc "$main_start + $main_len" addr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-fixed-point.exp b/gdb/testsuite/gdb.dwarf2/dw2-fixed-point.exp
index a8ade90..7666089 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-fixed-point.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-fixed-point.exp
@@ -23,91 +23,91 @@ standard_testfile dw2-fixed-point.c dw2-fixed-point-dw.S
set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
- DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_Ada95}
- {DW_AT_name pck.ads}
- {DW_AT_comp_dir /tmp}
- } {
- declare_labels fp1_base_type fp2_base_type fp3_small \
- fp3_base_type fp1_range_type
-
- fp1_base_type: DW_TAG_base_type {
- {DW_AT_byte_size 1 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed_fixed}
- {DW_AT_name pck__fp1_type}
- {DW_AT_binary_scale -4 DW_FORM_sdata}
- }
-
- DW_TAG_variable {
- {DW_AT_name pck__fp1_var}
- {DW_AT_type :$fp1_base_type}
- {DW_AT_location {
- DW_OP_addr [gdb_target_symbol pck__fp1_var]
- } SPECIAL_expr}
- {external 1 flag}
- }
-
- DW_TAG_variable {
- {DW_AT_name pck__fp1_var2}
- {DW_AT_type :$fp1_base_type}
- {DW_AT_location {
- DW_OP_addr [gdb_target_symbol pck__fp1_var2]
- } SPECIAL_expr}
- {external 1 flag}
- }
-
- fp2_base_type: DW_TAG_base_type {
- {DW_AT_byte_size 1 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed_fixed}
- {DW_AT_name pck__fp2_type}
- {DW_AT_decimal_scale -2 DW_FORM_sdata}
- }
-
- DW_TAG_variable {
- {DW_AT_name pck__fp2_var}
- {DW_AT_type :$fp2_base_type}
- {DW_AT_location {
- DW_OP_addr [gdb_target_symbol pck__fp2_var]
- } SPECIAL_expr}
- {external 1 flag}
- }
-
- fp3_small: DW_TAG_constant {
- {DW_AT_GNU_numerator 1 DW_FORM_data1}
- {DW_AT_GNU_denominator 30 DW_FORM_sdata}
- }
-
- fp3_base_type: DW_TAG_base_type {
- {DW_AT_byte_size 1 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed_fixed}
- {DW_AT_name pck__fp3_type}
- {DW_AT_small :$fp3_small}
- }
-
- DW_TAG_variable {
- {DW_AT_name pck__fp3_var}
- {DW_AT_type :$fp3_base_type}
- {DW_AT_location {
- DW_OP_addr [gdb_target_symbol pck__fp3_var]
- } SPECIAL_expr}
- {external 1 flag}
- }
-
- fp1_range_type: DW_TAG_subrange_type {
- {DW_AT_lower_bound 0xf0 DW_FORM_data1}
- {DW_AT_upper_bound 0x10 DW_FORM_data1}
- {DW_AT_name foo__fp1_range_type}
- {DW_AT_type :$fp1_base_type}
- }
-
- DW_TAG_variable {
- {DW_AT_name pck__fp1_range_var}
- {DW_AT_type :$fp1_range_type}
- {DW_AT_location {
- DW_OP_addr [gdb_target_symbol pck__fp1_range_var]
- } SPECIAL_expr}
- {external 1 flag}
- }
+ DW_TAG_compile_unit {
+ DW_AT_language @DW_LANG_Ada95
+ DW_AT_name pck.ads
+ DW_AT_comp_dir /tmp
+ } {
+ declare_labels fp1_base_type fp2_base_type fp3_small \
+ fp3_base_type fp1_range_type
+
+ fp1_base_type: DW_TAG_base_type {
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed_fixed
+ DW_AT_name pck__fp1_type
+ DW_AT_binary_scale -4 DW_FORM_sdata
+ }
+
+ DW_TAG_variable {
+ DW_AT_name pck__fp1_var
+ DW_AT_type :$fp1_base_type
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol pck__fp1_var]
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
+ }
+
+ DW_TAG_variable {
+ DW_AT_name pck__fp1_var2
+ DW_AT_type :$fp1_base_type
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol pck__fp1_var2]
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
+ }
+
+ fp2_base_type: DW_TAG_base_type {
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed_fixed
+ DW_AT_name pck__fp2_type
+ DW_AT_decimal_scale -2 DW_FORM_sdata
+ }
+
+ DW_TAG_variable {
+ DW_AT_name pck__fp2_var
+ DW_AT_type :$fp2_base_type
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol pck__fp2_var]
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
+ }
+
+ fp3_small: DW_TAG_constant {
+ DW_AT_GNU_numerator 1 DW_FORM_data1
+ DW_AT_GNU_denominator 30 DW_FORM_sdata
+ }
+
+ fp3_base_type: DW_TAG_base_type {
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed_fixed
+ DW_AT_name pck__fp3_type
+ DW_AT_small :$fp3_small
+ }
+
+ DW_TAG_variable {
+ DW_AT_name pck__fp3_var
+ DW_AT_type :$fp3_base_type
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol pck__fp3_var]
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
+ }
+
+ fp1_range_type: DW_TAG_subrange_type {
+ DW_AT_lower_bound 0xf0 DW_FORM_data1
+ DW_AT_upper_bound 0x10 DW_FORM_data1
+ DW_AT_name foo__fp1_range_type
+ DW_AT_type :$fp1_base_type
+ }
+
+ DW_TAG_variable {
+ DW_AT_name pck__fp1_range_var
+ DW_AT_type :$fp1_range_type
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol pck__fp1_range_var]
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
+ }
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-gas-workaround.exp b/gdb/testsuite/gdb.dwarf2/dw2-gas-workaround.exp
index 25a73a6..6611bf3 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-gas-workaround.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-gas-workaround.exp
@@ -20,7 +20,7 @@ load_lib dwarf.exp
# This test can only be run on targets which support DWARF-2 and use gas.
require dwarf2_support
-standard_testfile dw2-lines.c -dw2.S
+standard_testfile dw2-lines.c -dw2.S -dw2-one-diridx.S
with_shared_gdb {
set func_info_vars [get_func_info bar]
@@ -33,49 +33,61 @@ proc line_for { l } {
return [expr $line + 1]
}
-set asm_file [standard_output_file $srcfile2]
-Dwarf::assemble $asm_file {
- declare_labels Llines
- global srcdir subdir srcfile objdir
- global func_info_vars
- foreach var $func_info_vars {
- global $var
- }
+# A helper proc to create the DWARF assembly for the test.
+# If ONE_DIRIDX is true, then the directory table will be limited
+# to one entry.
+proc create_dwarf_assembly {source_file one_diridx} {
+ set asm_file [standard_output_file $source_file]
+ Dwarf::assemble $asm_file {
+ declare_labels Llines
+ global srcdir subdir srcfile objdir
+ global func_info_vars
+ upvar one_diridx one_diridx
+ foreach var $func_info_vars {
+ global $var
+ }
- cu { version 5 } {
- compile_unit {
- {language @DW_LANG_Mips_Assembler}
- {name $srcfile}
- {comp_dir $objdir}
- {stmt_list $Llines DW_FORM_sec_offset}
- {producer "GNU AS 2.35.2"}
- } {
- subprogram {
- {external 1 flag}
- {name bar}
- {low_pc $bar_start addr}
- {high_pc "$bar_start + $bar_len" addr}
+ cu { version 5 } {
+ compile_unit {
+ DW_AT_language @DW_LANG_Mips_Assembler
+ DW_AT_name $srcfile
+ DW_AT_comp_dir $objdir
+ DW_AT_stmt_list $Llines DW_FORM_sec_offset
+ DW_AT_producer "GNU AS 2.35.2"
+ } {
+ subprogram {
+ DW_AT_external 1 flag
+ DW_AT_name bar
+ DW_AT_low_pc $bar_start addr
+ DW_AT_high_pc "$bar_start + $bar_len" addr
+ }
}
}
- }
- lines [list version 5] Llines {
- set diridx1 [include_dir "${srcdir}/${subdir}"]
- set diridx2 [include_dir "${srcdir}/${subdir}"]
- file_name "$srcfile" $diridx1
- file_name "$srcfile" $diridx2
-
- program {
- DW_LNE_set_address bar_label
- line [line_for bar_label]
- DW_LNS_copy
+ lines [list version 5] Llines {
+ set diridx1 [include_dir "${srcdir}/${subdir}"]
+ file_name "$srcfile" $diridx1
+ if {!$one_diridx} {
+ set diridx2 [include_dir "${srcdir}/${subdir}"]
+ file_name "$srcfile" $diridx2
+ } else {
+ file_name "$srcfile" $diridx1
+ }
+ program {
+ DW_LNE_set_address bar_label
+ line [line_for bar_label]
+ DW_LNS_copy
- DW_LNE_set_address $bar_end
- DW_LNE_end_sequence
+ DW_LNE_set_address $bar_end
+ DW_LNE_end_sequence
+ }
}
}
+
+ return $asm_file
}
+set asm_file [create_dwarf_assembly $srcfile2 false]
if { [prepare_for_testing "failed to prepare" ${testfile} \
[list $srcfile $asm_file] {nodebug}] } {
return -1
@@ -90,3 +102,13 @@ gdb_test_multiple "ptype bar" "" {
pass $gdb_test_name
}
}
+
+# Test whether gdb crashes in the case where the number of
+# directory indexes is only one.
+set asm_file [create_dwarf_assembly $srcfile3 true]
+if {[prepare_for_testing "failed to prepare" ${testfile}-one-diridx \
+ [list $srcfile $asm_file] {nodebug}] } {
+ return -1
+}
+
+gdb_test "ptype bar" ".*" "do not crash with only one directory table entry"
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp b/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp
index 309f9d8..ef48038 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp
@@ -29,28 +29,28 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {name file1.txt}
- {language @DW_LANG_C}
- {MACRO_AT_range { func }}
+ DW_AT_name file1.txt
+ DW_AT_language @DW_LANG_C
+ MACRO_AT_range { func }
} {
int_label: base_type {
- {name int}
- {byte_size 4 sdata}
- {encoding @DW_ATE_signed}
+ DW_AT_name int
+ DW_AT_byte_size 4 sdata
+ DW_AT_encoding @DW_ATE_signed
}
subprogram {
- {external 1 flag}
- {MACRO_AT_func { func }}
+ DW_AT_external 1 flag
+ MACRO_AT_func { func }
} {
formal_parameter {
- {name param}
- {variable_parameter 1 flag}
- {type :$int_label}
- {location {
+ DW_AT_name param
+ DW_AT_variable_parameter 1 flag
+ DW_AT_type :$int_label
+ DW_AT_location [subst {
addr [gdb_target_symbol ptr]
deref
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-header-1.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-header-1.exp
index 2781cf3..ecf0614 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-header-1.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-header-1.exp
@@ -78,29 +78,29 @@ proc do_test { start_label func_name tag } {
cu {} {
compile_unit {
- {producer "gcc" }
- {language @DW_LANG_C}
- {name ${srcfile3}}
- {low_pc 0 addr}
- {stmt_list ${lines_label} DW_FORM_sec_offset}
+ DW_AT_producer "gcc"
+ DW_AT_language @DW_LANG_C
+ DW_AT_name ${srcfile3}
+ DW_AT_low_pc 0 addr
+ DW_AT_stmt_list ${lines_label} DW_FORM_sec_offset
} {
callee_subprog_label: subprogram {
- {external 1 flag}
- {name callee}
- {inline 3 data1}
+ DW_AT_external 1 flag
+ DW_AT_name callee
+ DW_AT_inline 3 data1
}
subprogram {
- {external 1 flag}
- {name main}
- {low_pc $main_start addr}
- {high_pc "$main_start + $main_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name main
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc "$main_start + $main_len" addr
} {
inlined_subroutine {
- {abstract_origin %$callee_subprog_label}
- {low_pc $start_label addr}
- {high_pc line_label_6 addr}
- {call_file 1 data1}
- {call_line 18 data1}
+ DW_AT_abstract_origin %$callee_subprog_label
+ DW_AT_low_pc $start_label addr
+ DW_AT_high_pc line_label_6 addr
+ DW_AT_call_file 1 data1
+ DW_AT_call_line 18 data1
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-header-2.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-header-2.exp
index 2004dfb..3d08ac0 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-header-2.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-header-2.exp
@@ -68,29 +68,29 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {producer "gcc" }
- {language @DW_LANG_C}
- {name ${srcfile3}}
- {low_pc 0 addr}
- {stmt_list ${lines_label} DW_FORM_sec_offset}
+ DW_AT_producer "gcc"
+ DW_AT_language @DW_LANG_C
+ DW_AT_name ${srcfile3}
+ DW_AT_low_pc 0 addr
+ DW_AT_stmt_list ${lines_label} DW_FORM_sec_offset
} {
callee_subprog_label: subprogram {
- {external 1 flag}
- {name callee}
- {inline 3 data1}
+ DW_AT_external 1 flag
+ DW_AT_name callee
+ DW_AT_inline 3 data1
}
subprogram {
- {external 1 flag}
- {name main}
- {low_pc $main_start addr}
- {high_pc "$main_start + $main_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name main
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc "$main_start + $main_len" addr
} {
inlined_subroutine {
- {abstract_origin %$callee_subprog_label}
- {low_pc line_label_3 addr}
- {high_pc line_label_5 addr}
- {call_file 1 data1}
- {call_line 18 data1}
+ DW_AT_abstract_origin %$callee_subprog_label
+ DW_AT_low_pc line_label_3 addr
+ DW_AT_high_pc line_label_5 addr
+ DW_AT_call_file 1 data1
+ DW_AT_call_line 18 data1
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-header-3.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-header-3.exp
index f7d220c..ad914b9 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-header-3.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-header-3.exp
@@ -57,29 +57,29 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {producer "gcc" }
- {language @DW_LANG_C}
- {name ${srcfile3}}
- {low_pc 0 addr}
- {stmt_list ${lines_label} DW_FORM_sec_offset}
+ DW_AT_producer "gcc"
+ DW_AT_language @DW_LANG_C
+ DW_AT_name ${srcfile3}
+ DW_AT_low_pc 0 addr
+ DW_AT_stmt_list ${lines_label} DW_FORM_sec_offset
} {
callee_subprog_label: subprogram {
- {external 1 flag}
- {name callee}
- {inline 3 data1}
+ DW_AT_external 1 flag
+ DW_AT_name callee
+ DW_AT_inline 3 data1
}
subprogram {
- {external 1 flag}
- {name main}
- {low_pc $main_start addr}
- {high_pc "$main_start + $main_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name main
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc "$main_start + $main_len" addr
} {
inlined_subroutine {
- {abstract_origin %$callee_subprog_label}
- {low_pc line_label_3 addr}
- {high_pc line_label_5 addr}
- {call_file 1 data1}
- {call_line 18 data1}
+ DW_AT_abstract_origin %$callee_subprog_label
+ DW_AT_low_pc line_label_3 addr
+ DW_AT_high_pc line_label_5 addr
+ DW_AT_call_file 1 data1
+ DW_AT_call_line 18 data1
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.exp
index 795f1e0..e8668e0 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.exp
@@ -58,116 +58,116 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name dw2-inline-stepping.c}
- {low_pc 0 addr}
- {stmt_list ${lines_label} DW_FORM_sec_offset}
- {ranges ${ranges_label} DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name dw2-inline-stepping.c
+ DW_AT_low_pc 0 addr
+ DW_AT_stmt_list ${lines_label} DW_FORM_sec_offset
+ DW_AT_ranges ${ranges_label} DW_FORM_sec_offset
} {
subprogram {
- {external 1 flag}
- {name ddd}
- {low_pc $ddd_start addr}
- {high_pc "$ddd_start + $ddd_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name ddd
+ DW_AT_low_pc $ddd_start addr
+ DW_AT_high_pc "$ddd_start + $ddd_len" addr
}
subprogram {
- {external 1 flag}
- {name eee}
- {low_pc $eee_start addr}
- {high_pc "$eee_start + $eee_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name eee
+ DW_AT_low_pc $eee_start addr
+ DW_AT_high_pc "$eee_start + $eee_len" addr
}
subprogram {
- {external 1 flag}
- {name jjj}
- {low_pc $jjj_start addr}
- {high_pc "$jjj_start + $jjj_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name jjj
+ DW_AT_low_pc $jjj_start addr
+ DW_AT_high_pc "$jjj_start + $jjj_len" addr
}
subprogram {
- {external 1 flag}
- {name kkk}
- {low_pc $kkk_start addr}
- {high_pc "$kkk_start + $kkk_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name kkk
+ DW_AT_low_pc $kkk_start addr
+ DW_AT_high_pc "$kkk_start + $kkk_len" addr
}
aaa_label: subprogram {
- {name aaa}
- {inline 3 data1}
+ DW_AT_name aaa
+ DW_AT_inline 3 data1
}
bbb_label: subprogram {
- {name bbb}
- {inline 3 data1}
+ DW_AT_name bbb
+ DW_AT_inline 3 data1
}
ccc_label: subprogram {
- {name ccc}
- {inline 3 data1}
+ DW_AT_name ccc
+ DW_AT_inline 3 data1
}
ggg_label: subprogram {
- {name ggg}
- {inline 3 data1}
+ DW_AT_name ggg
+ DW_AT_inline 3 data1
}
hhh_label: subprogram {
- {name hhh}
- {inline 3 data1}
+ DW_AT_name hhh
+ DW_AT_inline 3 data1
}
iii_label: subprogram {
- {name iii}
- {inline 3 data1}
+ DW_AT_name iii
+ DW_AT_inline 3 data1
}
subprogram {
- {external 1 flag}
- {name main}
- {low_pc $main_start addr}
- {high_pc "$main_start + $main_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name main
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc "$main_start + $main_len" addr
} {
inlined_subroutine {
- {abstract_origin %$aaa_label}
- {low_pc main_label2 addr}
- {high_pc main_label3 addr}
- {call_file 1 data1}
- {call_line $call_in_main data1}
+ DW_AT_abstract_origin %$aaa_label
+ DW_AT_low_pc main_label2 addr
+ DW_AT_high_pc main_label3 addr
+ DW_AT_call_file 1 data1
+ DW_AT_call_line $call_in_main data1
} {
inlined_subroutine {
- {abstract_origin %$bbb_label}
- {low_pc main_label2 addr}
- {high_pc main_label3 addr}
- {call_file 1 data1}
- {call_line $call_in_aaa data1}
+ DW_AT_abstract_origin %$bbb_label
+ DW_AT_low_pc main_label2 addr
+ DW_AT_high_pc main_label3 addr
+ DW_AT_call_file 1 data1
+ DW_AT_call_line $call_in_aaa data1
} {
inlined_subroutine {
- {abstract_origin %$ccc_label}
- {low_pc main_label2 addr}
- {high_pc main_label3 addr}
- {call_file 1 data1}
- {call_line $call_in_bbb data1}
+ DW_AT_abstract_origin %$ccc_label
+ DW_AT_low_pc main_label2 addr
+ DW_AT_high_pc main_label3 addr
+ DW_AT_call_file 1 data1
+ DW_AT_call_line $call_in_bbb data1
}
}
}
}
subprogram {
- {external 1 flag}
- {name fff}
- {low_pc $fff_start addr}
- {high_pc "$fff_start + $fff_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name fff
+ DW_AT_low_pc $fff_start addr
+ DW_AT_high_pc "$fff_start + $fff_len" addr
} {
inlined_subroutine {
- {abstract_origin %$ggg_label}
- {low_pc fff_label addr}
- {high_pc main_label2 addr}
- {call_file 1 data1}
- {call_line $call_in_fff data1}
+ DW_AT_abstract_origin %$ggg_label
+ DW_AT_low_pc fff_label addr
+ DW_AT_high_pc main_label2 addr
+ DW_AT_call_file 1 data1
+ DW_AT_call_line $call_in_fff data1
} {
inlined_subroutine {
- {abstract_origin %$hhh_label}
- {low_pc fff_label addr}
- {high_pc fff_label2 addr}
- {call_file 1 data1}
- {call_line $call_in_ggg data1}
+ DW_AT_abstract_origin %$hhh_label
+ DW_AT_low_pc fff_label addr
+ DW_AT_high_pc fff_label2 addr
+ DW_AT_call_file 1 data1
+ DW_AT_call_line $call_in_ggg data1
} {
inlined_subroutine {
- {abstract_origin %$iii_label}
- {low_pc fff_label addr}
- {high_pc fff_label2 addr}
- {call_file 1 data1}
- {call_line $call_in_hhh data1}
+ DW_AT_abstract_origin %$iii_label
+ DW_AT_low_pc fff_label addr
+ DW_AT_high_pc fff_label2 addr
+ DW_AT_call_file 1 data1
+ DW_AT_call_line $call_in_hhh data1
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.exp
index 12812dd..a4309d4 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.exp
@@ -47,29 +47,29 @@ Dwarf::assemble $asm_file {
# time of writing this, GCC for x86-64 doesn't make use of
# skip_prologue_using_sal, while clang does.
compile_unit {
- {producer "clang xxxx" }
- {language @DW_LANG_C}
- {name ${srcfile3}}
- {low_pc 0 addr}
- {stmt_list ${lines_label} DW_FORM_sec_offset}
+ DW_AT_producer "clang xxxx"
+ DW_AT_language @DW_LANG_C
+ DW_AT_name ${srcfile3}
+ DW_AT_low_pc 0 addr
+ DW_AT_stmt_list ${lines_label} DW_FORM_sec_offset
} {
callee_subprog_label: subprogram {
- {external 1 flag}
- {name callee}
- {inline 3 data1}
+ DW_AT_external 1 flag
+ DW_AT_name callee
+ DW_AT_inline 3 data1
}
subprogram {
- {external 1 flag}
- {name main}
- {low_pc $main_start addr}
- {high_pc "$main_start + $main_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name main
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc "$main_start + $main_len" addr
} {
inlined_subroutine {
- {abstract_origin %$callee_subprog_label}
- {low_pc line_label_1 addr}
- {high_pc line_label_2 addr}
- {call_file 1 data1}
- {call_line 21 data1}
+ DW_AT_abstract_origin %$callee_subprog_label
+ DW_AT_low_pc line_label_1 addr
+ DW_AT_high_pc line_label_2 addr
+ DW_AT_call_file 1 data1
+ DW_AT_call_line 21 data1
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.exp
index 840d813..a544616 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.exp
@@ -49,34 +49,34 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name dw2-inline-stepping.c}
- {low_pc 0 addr}
- {stmt_list ${lines_label} DW_FORM_sec_offset}
- {ranges ${ranges_label} DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name dw2-inline-stepping.c
+ DW_AT_low_pc 0 addr
+ DW_AT_stmt_list ${lines_label} DW_FORM_sec_offset
+ DW_AT_ranges ${ranges_label} DW_FORM_sec_offset
} {
subprogram {
- {external 1 flag}
- {name bar}
- {low_pc $bar_start addr}
- {high_pc "$bar_start + $bar_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name bar
+ DW_AT_low_pc $bar_start addr
+ DW_AT_high_pc "$bar_start + $bar_len" addr
}
foo_prog: subprogram {
- {name foo}
- {inline 3 data1}
+ DW_AT_name foo
+ DW_AT_inline 3 data1
}
subprogram {
- {external 1 flag}
- {name main}
- {low_pc $main_start addr}
- {high_pc "$main_start + $main_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name main
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc "$main_start + $main_len" addr
} {
inlined_subroutine {
- {abstract_origin %$foo_prog}
- {low_pc main_label2 addr}
- {high_pc main_label3 addr}
- {call_file 1 data1}
- {call_line $call_line data1}
+ DW_AT_abstract_origin %$foo_prog
+ DW_AT_low_pc main_label2 addr
+ DW_AT_high_pc main_label3 addr
+ DW_AT_call_file 1 data1
+ DW_AT_call_line $call_line data1
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-with-lexical-scope.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-with-lexical-scope.exp
index 320aa34..2674c17 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-with-lexical-scope.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-with-lexical-scope.exp
@@ -43,59 +43,59 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C99}
- {name $srcfile}
- {low_pc $main_start addr}
- {high_pc "$main_start + $main_len" addr}
- {stmt_list ${lines_label} DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C99
+ DW_AT_name $srcfile
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc "$main_start + $main_len" addr
+ DW_AT_stmt_list ${lines_label} DW_FORM_sec_offset
} {
int_label: base_type {
- {name "int"}
- {byte_size 4 sdata}
- {encoding @DW_ATE_signed}
+ DW_AT_name "int"
+ DW_AT_byte_size 4 sdata
+ DW_AT_encoding @DW_ATE_signed
}
func_label: subprogram {
- {name func}
- {inline @DW_INL_declared_inlined}
+ DW_AT_name func
+ DW_AT_inline @DW_INL_declared_inlined
} {
num_label: DW_TAG_variable {
- {name num}
- {type :$int_label}
+ DW_AT_name num
+ DW_AT_type :$int_label
}
lexical_block {
} {
value_label: DW_TAG_variable {
- {name value}
- {type :$int_label}
+ DW_AT_name value
+ DW_AT_type :$int_label
}
}
}
subprogram {
- {name main}
- {external 1 flag}
- {low_pc $main_start addr}
- {high_pc "$main_start + $main_len" addr}
+ DW_AT_name main
+ DW_AT_external 1 flag
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc "$main_start + $main_len" addr
} {
inlined_subroutine {
- {abstract_origin %$func_label}
- {low_pc main_label addr}
- {high_pc main_label2 addr}
- {call_file 1 data1}
- {call_line $func_call data1}
+ DW_AT_abstract_origin %$func_label
+ DW_AT_low_pc main_label addr
+ DW_AT_high_pc main_label2 addr
+ DW_AT_call_file 1 data1
+ DW_AT_call_line $func_call data1
} {
DW_TAG_variable {
- {abstract_origin %$num_label}
- {location {addr $global_num_addr} SPECIAL_expr}
+ DW_AT_abstract_origin %$num_label
+ DW_AT_location [subst {addr $global_num_addr}] SPECIAL_expr
}
lexical_block {
- {low_pc scope_label1 addr}
- {high_pc scope_label2 addr}
+ DW_AT_low_pc scope_label1 addr
+ DW_AT_high_pc scope_label2 addr
} {
DW_TAG_variable {
- {abstract_origin %$value_label}
- {location {addr $global_value_addr} SPECIAL_expr}
+ DW_AT_abstract_origin %$value_label
+ DW_AT_location [subst {addr $global_value_addr}] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-error-2.exp b/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-error-2.exp
index e65d1b9..8e99cb4 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-error-2.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-error-2.exp
@@ -29,10 +29,12 @@ Dwarf::assemble $asm_file {
declare_labels label1
cu {} {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
subprogram {
- {MACRO_AT_range { main }}
- {DW_AT_specification %$label1}
+ MACRO_AT_range { main }
+ DW_AT_specification %$label1
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-error.exp b/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-error.exp
index bfdd1a7..ded5f10 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-error.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-error.exp
@@ -26,16 +26,20 @@ Dwarf::assemble $asm_file {
declare_labels label1
cu {} {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
subprogram {
- {MACRO_AT_range { main }}
- {DW_AT_specification %$label1}
+ MACRO_AT_range { main }
+ DW_AT_specification %$label1
}
}
}
cu {} {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
label1:
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-forth-and-back.exp b/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-forth-and-back.exp
index 3e91a51..0ae6004 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-forth-and-back.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-forth-and-back.exp
@@ -30,22 +30,26 @@ Dwarf::assemble $asm_file {
declare_labels label1 label2
cu {} {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
subprogram {
- {MACRO_AT_range { main }}
- {DW_AT_specification %$label1}
+ MACRO_AT_range { main }
+ DW_AT_specification %$label1
}
label2: subprogram {
- {DW_AT_name main}
+ DW_AT_name main
}
}
}
cu {} {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
label1: subprogram {
- {DW_AT_specification %$label2}
+ DW_AT_specification %$label2
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-symbol.exp b/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-symbol.exp
index dba8b83..fc72cf7 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-symbol.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-symbol.exp
@@ -27,36 +27,36 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {stmt_list $L1 DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_stmt_list $L1 DW_FORM_sec_offset
} {
tag_variable {
- {name var1}
- {abstract_origin %$var_label}
- {const_value 1 DW_FORM_sdata}
+ DW_AT_name var1
+ DW_AT_abstract_origin %$var_label
+ DW_AT_const_value 1 DW_FORM_sdata
}
subprogram {
- {external 1 flag}
- {MACRO_AT_func {main}}
+ DW_AT_external 1 flag
+ MACRO_AT_func {main}
}
int_label: base_type {
- {byte_size 4 udata}
- {encoding @DW_ATE_signed}
- {name int}
+ DW_AT_byte_size 4 udata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
}
}
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {stmt_list $L2 DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_stmt_list $L2 DW_FORM_sec_offset
} {
var_label: tag_variable {
- {name "var1"}
- {type %$int_label}
- {decl_file 1}
- {decl_line 1}
+ DW_AT_name "var1"
+ DW_AT_type %$int_label
+ DW_AT_decl_file 1
+ DW_AT_decl_line 1
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-is-stmt-2.exp b/gdb/testsuite/gdb.dwarf2/dw2-is-stmt-2.exp
index 49091f7..77bac52 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-is-stmt-2.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-is-stmt-2.exp
@@ -42,16 +42,16 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name dw2-is-stmt.c}
- {low_pc 0 addr}
- {stmt_list ${lines_label} DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name dw2-is-stmt.c
+ DW_AT_low_pc 0 addr
+ DW_AT_stmt_list ${lines_label} DW_FORM_sec_offset
} {
subprogram {
- {external 1 flag}
- {name main}
- {low_pc $main_start addr}
- {high_pc "$main_start + $main_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name main
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc "$main_start + $main_len" addr
} {}
}
}
@@ -179,7 +179,7 @@ foreach entry $locs {
# through. This is checking that the is-stmt marked lines are
# displayed differently (without addresses) to addresses that are
# mid-way through a line, or not marked as is-stmt.
-clean_restart $binfile
+clean_restart $::testfile
runto_main
foreach entry $locs {
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-is-stmt.exp b/gdb/testsuite/gdb.dwarf2/dw2-is-stmt.exp
index 65d9559..1b9ccaa 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-is-stmt.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-is-stmt.exp
@@ -42,16 +42,16 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name dw2-is-stmt.c}
- {low_pc 0 addr}
- {stmt_list ${lines_label} DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name dw2-is-stmt.c
+ DW_AT_low_pc 0 addr
+ DW_AT_stmt_list ${lines_label} DW_FORM_sec_offset
} {
subprogram {
- {external 1 flag}
- {name main}
- {low_pc $main_start addr}
- {high_pc "$main_start + $main_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name main
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc "$main_start + $main_len" addr
} {}
}
}
@@ -116,7 +116,7 @@ gdb_test "step" "/\\* main end \\*/" \
# Restart the test. This time, stop at a location we know is marked
# as a statement.
-clean_restart ${binfile}
+clean_restart ${::testfile}
runto_main
gdb_breakpoint "*line_label_3"
@@ -129,7 +129,7 @@ gdb_test "step" "/\\* main end \\*/" \
# Restart the test, this time, step through line by line, ensure we
# only stop at the places where is-stmt is true.
-clean_restart ${binfile}
+clean_restart ${::testfile}
runto_main
# Get the values of the labels where we expect to stop.
@@ -161,7 +161,7 @@ with_test_prefix "step to line_label_5" {
# Now restart the test, and place a breakpoint by line number. GDB
# should select the location that is marked as is-stmt.
-clean_restart ${binfile}
+clean_restart ${::testfile}
runto_main
set linum [gdb_get_line_number "main, set var to 0"]
gdb_breakpoint "$srcfile:$linum"
@@ -171,7 +171,7 @@ gdb_assert { $ll3 == $pc } "check initial \$pc"
# Restart the test again, this time we will test stepping by
# instruction.
-clean_restart ${binfile}
+clean_restart ${::testfile}
runto_main
# We will be at line_label_1 at this point - we already tested this
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-lexical-block-bare.exp b/gdb/testsuite/gdb.dwarf2/dw2-lexical-block-bare.exp
index ae7f97e..a973a11 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-lexical-block-bare.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-lexical-block-bare.exp
@@ -24,29 +24,29 @@ set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {MACRO_AT_range {main}}
+ MACRO_AT_range {main}
} {
declare_labels integer_label
integer_label: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
DW_TAG_subprogram {
- {MACRO_AT_func {main}}
- {DW_AT_external 1 flag}
+ MACRO_AT_func {main}
+ DW_AT_external 1 flag
} {
DW_TAG_lexical_block {
} {
DW_TAG_variable {
- {DW_AT_name testvar}
- {DW_AT_type :$integer_label}
- {DW_AT_external 1 flag}
- {DW_AT_location {
+ DW_AT_name testvar
+ DW_AT_type :$integer_label
+ DW_AT_external 1 flag
+ DW_AT_location [subst {
DW_OP_addr [gdb_target_symbol main]
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-line-number-zero.exp b/gdb/testsuite/gdb.dwarf2/dw2-line-number-zero.exp
index d46f003..144e62e 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-line-number-zero.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-line-number-zero.exp
@@ -32,21 +32,21 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name dw2-line-number-zero.c}
- {stmt_list $Llines DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name dw2-line-number-zero.c
+ DW_AT_stmt_list $Llines DW_FORM_sec_offset
} {
subprogram {
- {external 1 flag}
- {MACRO_AT_func {main}}
+ DW_AT_external 1 flag
+ MACRO_AT_func {main}
}
subprogram {
- {external 1 flag}
- {MACRO_AT_func {bar1}}
+ DW_AT_external 1 flag
+ MACRO_AT_func {bar1}
}
subprogram {
- {external 1 flag}
- {MACRO_AT_func {bar2}}
+ DW_AT_external 1 flag
+ MACRO_AT_func {bar2}
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-lines.exp b/gdb/testsuite/gdb.dwarf2/dw2-lines.exp
index 16ca54e7..6eacf0b 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-lines.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-lines.exp
@@ -59,21 +59,21 @@ proc test_1 { _cv _cdw64 _lv _ldw64 {_string_form ""}} {
cu { version $cv is_64 $cdw64 } {
compile_unit {
- {language @DW_LANG_C}
- {name $srcfile}
- {stmt_list $Llines DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $srcfile
+ DW_AT_stmt_list $Llines DW_FORM_sec_offset
} {
subprogram {
- {external 1 flag}
- {name main}
- {low_pc $main_start addr}
- {high_pc "$main_start + $main_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name main
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc "$main_start + $main_len" addr
}
subprogram {
- {external 1 flag}
- {name bar}
- {low_pc $bar_start addr}
- {high_pc "$bar_start + $bar_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name bar
+ DW_AT_low_pc $bar_start addr
+ DW_AT_high_pc "$bar_start + $bar_len" addr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.exp b/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.exp
index 01eab48..7627e8e 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.exp
@@ -27,7 +27,7 @@ standard_testfile .S
set executable ${testfile}
if {[prepare_for_testing_full "failed to prepare" \
- [list $testfile c++ $testfile-main.cc {c++ debug} \
+ [list $testfile c++ $testfile-main.cc {c++ nodebug} \
$srcfile {}]]} {
return -1
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-main-no-line-number.exp b/gdb/testsuite/gdb.dwarf2/dw2-main-no-line-number.exp
index 309875a..e05e4c9 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-main-no-line-number.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-main-no-line-number.exp
@@ -33,12 +33,12 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name $srcfile}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $srcfile
} {
subprogram {
- {external 1 flag}
- {MACRO_AT_func {main}}
+ DW_AT_external 1 flag
+ MACRO_AT_func {main}
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.exp b/gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.exp
index 44b1726..998b614 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.exp
@@ -31,8 +31,8 @@ Dwarf::assemble $asm_file {
# We should have either one of DW_TAG_compile_unit,
# DW_TAG_partial_unit, or DW_TAG_type_unit here.
subprogram {
- {external 1 flag}
- {MACRO_AT_func {main}}
+ DW_AT_external 1 flag
+ MACRO_AT_func {main}
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-multiple-debug-info.exp b/gdb/testsuite/gdb.dwarf2/dw2-multiple-debug-info.exp
index a8fa524..0092969 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-multiple-debug-info.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-multiple-debug-info.exp
@@ -31,6 +31,6 @@ if { [gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" object \
return -1
}
-clean_restart $binfile
+clean_restart $::testfile
gdb_test "ptype a" "type = class sp1::A .*"
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.exp b/gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.exp
index d930801..ebbe6c0 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.exp
@@ -27,26 +27,26 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
+ DW_AT_language @DW_LANG_C_plus_plus
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
} {
declare_labels myint
myint: DW_TAG_base_type {
- {DW_AT_byte_size 1 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name myint}
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name myint
}
DW_TAG_namespace {} {
DW_TAG_variable {
- {DW_AT_name v}
- {DW_AT_linkage_name _ZN12_GLOBAL__N_11vE}
- {DW_AT_location {
+ DW_AT_name v
+ DW_AT_linkage_name _ZN12_GLOBAL__N_11vE
+ DW_AT_location [subst {
DW_OP_addr [gdb_target_symbol _ZN12_GLOBAL__N_11vE]
- } SPECIAL_expr}
- {DW_AT_type :$myint}
+ }] SPECIAL_expr
+ DW_AT_type :$myint
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-noloc.exp b/gdb/testsuite/gdb.dwarf2/dw2-noloc.exp
index 86ea143..526f88a 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-noloc.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-noloc.exp
@@ -28,167 +28,167 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name $srcfile}
- {stmt_list ${lines_label} DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $srcfile
+ DW_AT_stmt_list ${lines_label} DW_FORM_sec_offset
} {
declare_labels integer_label
set int_size [get_sizeof "int" 4]
integer_label: DW_TAG_base_type {
- {DW_AT_byte_size $int_size DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name int}
+ DW_AT_byte_size $int_size DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
DW_TAG_subprogram {
- {external 1 flag}
- {name main}
- {low_pc $main_start addr}
- {high_pc "$main_start + $main_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name main
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc "$main_start + $main_len" addr
}
DW_TAG_variable {
- {DW_AT_name file_locno_resolvable}
- {DW_AT_type :$integer_label}
+ DW_AT_name file_locno_resolvable
+ DW_AT_type :$integer_label
}
DW_TAG_variable {
- {DW_AT_name file_locno_unresolvable}
- {DW_AT_type :$integer_label}
+ DW_AT_name file_locno_unresolvable
+ DW_AT_type :$integer_label
}
DW_TAG_variable {
- {DW_AT_name file_locempty_resolvable}
- {DW_AT_type :$integer_label}
- {DW_AT_location {} DW_FORM_block1}
+ DW_AT_name file_locempty_resolvable
+ DW_AT_type :$integer_label
+ DW_AT_location {} DW_FORM_block1
}
DW_TAG_variable {
- {DW_AT_name file_locempty_unresolvable}
- {DW_AT_type :$integer_label}
- {DW_AT_location {} DW_FORM_block1}
+ DW_AT_name file_locempty_unresolvable
+ DW_AT_type :$integer_label
+ DW_AT_location {} DW_FORM_block1
}
DW_TAG_variable {
- {DW_AT_name file_locaddr_resolvable}
- {DW_AT_type :$integer_label}
- {DW_AT_location {
+ DW_AT_name file_locaddr_resolvable
+ DW_AT_type :$integer_label
+ DW_AT_location [subst {
DW_OP_addr [gdb_target_symbol file_locaddr_resolvable]
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
DW_TAG_variable {
- {DW_AT_name file_locaddr_unresolvable}
- {DW_AT_type :$integer_label}
- {DW_AT_location {
+ DW_AT_name file_locaddr_unresolvable
+ DW_AT_type :$integer_label
+ DW_AT_location [subst {
DW_OP_addr [gdb_target_symbol file_locaddr_resolvable]
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
DW_TAG_variable {
- {DW_AT_name file_extern_locno_resolvable}
- {DW_AT_type :$integer_label}
- {DW_AT_external 1 flag}
+ DW_AT_name file_extern_locno_resolvable
+ DW_AT_type :$integer_label
+ DW_AT_external 1 flag
}
DW_TAG_variable {
- {DW_AT_name file_extern_locno_unresolvable}
- {DW_AT_type :$integer_label}
- {DW_AT_external 1 flag}
+ DW_AT_name file_extern_locno_unresolvable
+ DW_AT_type :$integer_label
+ DW_AT_external 1 flag
}
DW_TAG_variable {
- {DW_AT_name file_extern_locempty_resolvable}
- {DW_AT_type :$integer_label}
- {DW_AT_external 1 flag}
- {DW_AT_location {} DW_FORM_block1}
+ DW_AT_name file_extern_locempty_resolvable
+ DW_AT_type :$integer_label
+ DW_AT_external 1 flag
+ DW_AT_location {} DW_FORM_block1
}
DW_TAG_variable {
- {DW_AT_name file_extern_locempty_unresolvable}
- {DW_AT_type :$integer_label}
- {DW_AT_external 1 flag}
- {DW_AT_location {} DW_FORM_block1}
+ DW_AT_name file_extern_locempty_unresolvable
+ DW_AT_type :$integer_label
+ DW_AT_external 1 flag
+ DW_AT_location {} DW_FORM_block1
}
DW_TAG_variable {
- {DW_AT_name file_extern_locaddr_resolvable}
- {DW_AT_type :$integer_label}
- {DW_AT_external 1 flag}
- {DW_AT_location {
+ DW_AT_name file_extern_locaddr_resolvable
+ DW_AT_type :$integer_label
+ DW_AT_external 1 flag
+ DW_AT_location [subst {
DW_OP_addr [gdb_target_symbol file_extern_locaddr_resolvable]
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
DW_TAG_variable {
- {DW_AT_name file_extern_locaddr_unresolvable}
- {DW_AT_type :$integer_label}
- {DW_AT_external 1 flag}
- {DW_AT_location {
+ DW_AT_name file_extern_locaddr_unresolvable
+ DW_AT_type :$integer_label
+ DW_AT_external 1 flag
+ DW_AT_location [subst {
DW_OP_addr [gdb_target_symbol file_extern_locaddr_resolvable]
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
DW_TAG_variable {
- {DW_AT_name main_local_locno_resolvable}
- {DW_AT_type :$integer_label}
+ DW_AT_name main_local_locno_resolvable
+ DW_AT_type :$integer_label
}
DW_TAG_variable {
- {DW_AT_name main_local_locno_unresolvable}
- {DW_AT_type :$integer_label}
+ DW_AT_name main_local_locno_unresolvable
+ DW_AT_type :$integer_label
}
DW_TAG_variable {
- {DW_AT_name main_local_locempty_resolvable}
- {DW_AT_type :$integer_label}
- {DW_AT_location {} DW_FORM_block1}
+ DW_AT_name main_local_locempty_resolvable
+ DW_AT_type :$integer_label
+ DW_AT_location {} DW_FORM_block1
}
DW_TAG_variable {
- {DW_AT_name main_local_locempty_unresolvable}
- {DW_AT_type :$integer_label}
- {DW_AT_location {} DW_FORM_block1}
+ DW_AT_name main_local_locempty_unresolvable
+ DW_AT_type :$integer_label
+ DW_AT_location {} DW_FORM_block1
}
DW_TAG_variable {
- {DW_AT_name main_local_locaddr_resolvable}
- {DW_AT_type :$integer_label}
- {DW_AT_location {
+ DW_AT_name main_local_locaddr_resolvable
+ DW_AT_type :$integer_label
+ DW_AT_location [subst {
DW_OP_addr [gdb_target_symbol main_local_locaddr_resolvable]
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
DW_TAG_variable {
- {DW_AT_name main_local_locaddr_unresolvable}
- {DW_AT_type :$integer_label}
- {DW_AT_location {
+ DW_AT_name main_local_locaddr_unresolvable
+ DW_AT_type :$integer_label
+ DW_AT_location [subst {
DW_OP_addr [gdb_target_symbol main_local_locaddr_resolvable]
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
DW_TAG_variable {
- {DW_AT_name main_extern_locno_resolvable}
- {DW_AT_type :$integer_label}
- {DW_AT_external 1 flag}
+ DW_AT_name main_extern_locno_resolvable
+ DW_AT_type :$integer_label
+ DW_AT_external 1 flag
}
DW_TAG_variable {
- {DW_AT_name main_extern_locno_unresolvable}
- {DW_AT_type :$integer_label}
- {DW_AT_external 1 flag}
+ DW_AT_name main_extern_locno_unresolvable
+ DW_AT_type :$integer_label
+ DW_AT_external 1 flag
}
DW_TAG_variable {
- {DW_AT_name main_extern_locempty_resolvable}
- {DW_AT_type :$integer_label}
- {DW_AT_external 1 flag}
- {DW_AT_location {} DW_FORM_block1}
+ DW_AT_name main_extern_locempty_resolvable
+ DW_AT_type :$integer_label
+ DW_AT_external 1 flag
+ DW_AT_location {} DW_FORM_block1
}
DW_TAG_variable {
- {DW_AT_name main_extern_locempty_unresolvable}
- {DW_AT_type :$integer_label}
- {DW_AT_external 1 flag}
- {DW_AT_location {} DW_FORM_block1}
+ DW_AT_name main_extern_locempty_unresolvable
+ DW_AT_type :$integer_label
+ DW_AT_external 1 flag
+ DW_AT_location {} DW_FORM_block1
}
DW_TAG_variable {
- {DW_AT_name main_extern_locaddr_resolvable}
- {DW_AT_type :$integer_label}
- {DW_AT_external 1 flag}
- {DW_AT_location {
+ DW_AT_name main_extern_locaddr_resolvable
+ DW_AT_type :$integer_label
+ DW_AT_external 1 flag
+ DW_AT_location [subst {
DW_OP_addr [gdb_target_symbol main_extern_locaddr_resolvable]
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
DW_TAG_variable {
- {DW_AT_name main_extern_locaddr_unresolvable}
- {DW_AT_type :$integer_label}
- {DW_AT_external 1 flag}
- {DW_AT_location {
+ DW_AT_name main_extern_locaddr_unresolvable
+ DW_AT_type :$integer_label
+ DW_AT_external 1 flag
+ DW_AT_location [subst {
DW_OP_addr [gdb_target_symbol main_extern_locaddr_resolvable]
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.exp b/gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.exp
index 486a4e8..866df3a 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.exp
@@ -46,74 +46,74 @@ proc build_test_program {} {
cu { addr_size 4 } {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C99}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
+ DW_AT_language @DW_LANG_C99
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
} {
declare_labels int_label struct_label pointer_label \
array_label
int_label: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
array_label: DW_TAG_array_type {
- {DW_AT_name foo__array_type}
- {DW_AT_type :$int_label}
+ DW_AT_name foo__array_type
+ DW_AT_type :$int_label
} {
DW_TAG_subrange_type {
- {DW_AT_type :$int_label}
- {DW_AT_lower_bound 0 DW_FORM_data1}
- {DW_AT_upper_bound 127 DW_FORM_data1}
+ DW_AT_type :$int_label
+ DW_AT_lower_bound 0 DW_FORM_data1
+ DW_AT_upper_bound 127 DW_FORM_data1
}
}
struct_label: DW_TAG_structure_type {
- {DW_AT_name "foo"}
- {DW_AT_byte_size 12 DW_FORM_sdata}
+ DW_AT_name "foo"
+ DW_AT_byte_size 12 DW_FORM_sdata
} {
member {
- {name a}
- {type :$int_label}
- {data_member_location 0 data1}
+ DW_AT_name a
+ DW_AT_type :$int_label
+ DW_AT_data_member_location 0 data1
}
member {
- {name x}
- {type :$array_label}
- {data_member_location 4 data1}
+ DW_AT_name x
+ DW_AT_type :$array_label
+ DW_AT_data_member_location 4 data1
}
member {
- {name y}
- {type :$pointer_label}
- {data_member_location 8 data1}
+ DW_AT_name y
+ DW_AT_type :$pointer_label
+ DW_AT_data_member_location 8 data1
}
}
pointer_label: DW_TAG_pointer_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_type :$struct_label}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_type :$struct_label
}
DW_TAG_subprogram {
- {DW_AT_name func01}
- {DW_AT_type :$int_label}
- {external 1 flag}
- {MACRO_AT_func {func01}}
+ DW_AT_name func01
+ DW_AT_type :$int_label
+ DW_AT_external 1 flag
+ MACRO_AT_func {func01}
} {
DW_TAG_variable {
- {DW_AT_name ptr}
- {DW_AT_type :$pointer_label}
- {DW_AT_location {} DW_FORM_block1}
+ DW_AT_name ptr
+ DW_AT_type :$pointer_label
+ DW_AT_location {} DW_FORM_block1
}
}
DW_TAG_subprogram {
- {DW_AT_name main}
- {DW_AT_type :$int_label}
- {external 1 flag}
- {MACRO_AT_func {main}}
+ DW_AT_name main
+ DW_AT_type :$int_label
+ DW_AT_external 1 flag
+ MACRO_AT_func {main}
} {
}
}
@@ -134,7 +134,7 @@ set re_address_class "@\[^\r\n\]+"
proc do_console_test {} {
global binfile
- clean_restart $binfile
+ clean_restart $::testfile
with_test_prefix "console" {
gdb_test_no_output "set print object on"
@@ -173,7 +173,7 @@ proc do_mi_test {} {
global binfile
with_test_prefix "mi" {
- if {[mi_clean_restart $binfile]} {
+ if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp b/gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp
index 79c03c7..70db471 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp
@@ -39,15 +39,15 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name $srcfile}
- {stmt_list $Llines DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $srcfile
+ DW_AT_stmt_list $Llines DW_FORM_sec_offset
} {
subprogram {
- {external 1 flag}
- {name main}
- {low_pc $main_start}
- {high_pc $main_end addr}
+ DW_AT_external 1 flag
+ DW_AT_name main
+ DW_AT_low_pc $main_start
+ DW_AT_high_pc $main_end addr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-prologue-end-2.exp b/gdb/testsuite/gdb.dwarf2/dw2-prologue-end-2.exp
index eea17b0..cf94c71 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-prologue-end-2.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-prologue-end-2.exp
@@ -30,21 +30,21 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name dw2-prologue-end.c}
- {stmt_list ${lines_label} DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name dw2-prologue-end.c
+ DW_AT_stmt_list ${lines_label} DW_FORM_sec_offset
} {
subprogram {
- {external 1 flag}
- {name foo}
- {low_pc foo_label addr}
- {high_pc foo_end addr}
+ DW_AT_external 1 flag
+ DW_AT_name foo
+ DW_AT_low_pc foo_label addr
+ DW_AT_high_pc foo_end addr
}
subprogram {
- {external 1 flag}
- {name bar}
- {low_pc bar_label addr}
- {high_pc bar_end addr}
+ DW_AT_external 1 flag
+ DW_AT_name bar
+ DW_AT_low_pc bar_label addr
+ DW_AT_high_pc bar_end addr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-prologue-end.exp b/gdb/testsuite/gdb.dwarf2/dw2-prologue-end.exp
index 23d8c26..8e66abe 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-prologue-end.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-prologue-end.exp
@@ -32,15 +32,15 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name dw2-prologue-end.c}
- {stmt_list ${lines_label} DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name dw2-prologue-end.c
+ DW_AT_stmt_list ${lines_label} DW_FORM_sec_offset
} {
subprogram {
- {external 1 flag}
- {name main}
- {low_pc $main_start addr}
- {high_pc "$main_start + $main_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name main
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc "$main_start + $main_len" addr
}
}
}
@@ -91,7 +91,7 @@ set prologue_end_line [gdb_get_line_number "main assign o"]
gdb_test "frame" ".*main \\\(\\\) at \[^\r\n\]*:$prologue_end_line\r\n.*"
with_test_prefix "ignore-prologue-end" {
- clean_restart $binfile
+ clean_restart $::testfile
gdb_test_no_output "maintenance set ignore-prologue-end-flag on"
if ![runto_main] {
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp b/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
index e63bbc3..9e39f6b 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
@@ -45,22 +45,22 @@ Dwarf::assemble $asm_file {
# .debug_ranges data then the test achieves its objective.
cu { label cu_label } {
compile_unit {
- {language @DW_LANG_C}
- {name dw-ranges-base.c}
- {stmt_list $L DW_FORM_sec_offset}
- {ranges ${ranges_label} DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name dw-ranges-base.c
+ DW_AT_stmt_list $L DW_FORM_sec_offset
+ DW_AT_ranges ${ranges_label} DW_FORM_sec_offset
} {
subprogram {
- {external 1 flag}
- {name main}
+ DW_AT_external 1 flag
+ DW_AT_name main
}
subprogram {
- {external 1 flag}
- {name frame2}
+ DW_AT_external 1 flag
+ DW_AT_name frame2
}
subprogram {
- {external 1 flag}
- {name frame3}
+ DW_AT_external 1 flag
+ DW_AT_name frame3
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-func.exp b/gdb/testsuite/gdb.dwarf2/dw2-ranges-func.exp
index 9fea8a8..56aab60 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-func.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-func.exp
@@ -70,49 +70,49 @@ proc do_test {suffix} {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name dw-ranges-func2.c}
- {stmt_list $L DW_FORM_sec_offset}
- {low_pc 0 addr}
- {ranges ${cu_ranges_label} DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name dw-ranges-func2.c
+ DW_AT_stmt_list $L DW_FORM_sec_offset
+ DW_AT_low_pc 0 addr
+ DW_AT_ranges ${cu_ranges_label} DW_FORM_sec_offset
} {
integer_label: DW_TAG_base_type {
- {DW_AT_byte_size $int_size DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size $int_size DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
volatile_label: DW_TAG_volatile_type {
- {type :$integer_label}
+ DW_AT_type :$integer_label
}
DW_TAG_variable {
- {name e}
- {external 1 flag}
- {type :$volatile_label}
- {location {addr $e_var} SPECIAL_expr}
+ DW_AT_name e
+ DW_AT_external 1 flag
+ DW_AT_type :$volatile_label
+ DW_AT_location [subst {addr $e_var}] SPECIAL_expr
}
subprogram {
- {external 1 flag}
- {name main}
- {DW_AT_type :$integer_label}
- {low_pc $main_start addr}
- {high_pc $main_len DW_FORM_data4}
+ DW_AT_external 1 flag
+ DW_AT_name main
+ DW_AT_type :$integer_label
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc $main_len DW_FORM_data4
}
subprogram {
- {external 1 flag}
- {name foo}
- {ranges ${func_ranges_label} DW_FORM_sec_offset}
+ DW_AT_external 1 flag
+ DW_AT_name foo
+ DW_AT_ranges ${func_ranges_label} DW_FORM_sec_offset
}
subprogram {
- {external 1 flag}
- {name bar}
- {low_pc $bar_start addr}
- {high_pc $bar_len DW_FORM_data4}
+ DW_AT_external 1 flag
+ DW_AT_name bar
+ DW_AT_low_pc $bar_start addr
+ DW_AT_high_pc $bar_len DW_FORM_data4
}
subprogram {
- {external 1 flag}
- {name baz}
- {low_pc $baz_start addr}
- {high_pc $baz_len DW_FORM_data4}
+ DW_AT_external 1 flag
+ DW_AT_name baz
+ DW_AT_low_pc $baz_start addr
+ DW_AT_high_pc $baz_len DW_FORM_data4
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.exp b/gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.exp
index 8e7d51e..75c874e 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.exp
@@ -44,13 +44,13 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C_plus_plus}
- {name $srcfile}
- {ranges ${ranges_label} DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C_plus_plus
+ DW_AT_name $srcfile
+ DW_AT_ranges ${ranges_label} DW_FORM_sec_offset
} {
subprogram {
- {external 1 flag}
- {name quux}
+ DW_AT_external 1 flag
+ DW_AT_name quux
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym-warning.exp b/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym-warning.exp
index 6120878..fa1e03b 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym-warning.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym-warning.exp
@@ -61,31 +61,31 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name dw-ranges-psym.c}
- {low_pc 0 addr}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name dw-ranges-psym.c
+ DW_AT_low_pc 0 addr
} {
integer_label: DW_TAG_base_type {
- {DW_AT_byte_size $int_size DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size $int_size DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
subprogram {
- {external 1 flag}
- {name foo}
- {ranges ${func_ranges_label} DW_FORM_sec_offset}
+ DW_AT_external 1 flag
+ DW_AT_name foo
+ DW_AT_ranges ${func_ranges_label} DW_FORM_sec_offset
}
subprogram {
- {external 1 flag}
- {name bar}
- {low_pc $bar_start addr}
- {high_pc $bar_len DW_FORM_data4}
+ DW_AT_external 1 flag
+ DW_AT_name bar
+ DW_AT_low_pc $bar_start addr
+ DW_AT_high_pc $bar_len DW_FORM_data4
}
subprogram {
- {external 1 flag}
- {name baz}
- {low_pc $baz_start addr}
- {high_pc $baz_len DW_FORM_data4}
+ DW_AT_external 1 flag
+ DW_AT_name baz
+ DW_AT_low_pc $baz_start addr
+ DW_AT_high_pc $baz_len DW_FORM_data4
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp b/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp
index e8c9890..6440722 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp
@@ -63,35 +63,35 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name dw-ranges-psym.c}
- {low_pc 0 addr}
- {ranges ${cu_ranges_label} DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name dw-ranges-psym.c
+ DW_AT_low_pc 0 addr
+ DW_AT_ranges ${cu_ranges_label} DW_FORM_sec_offset
} {
integer_label: DW_TAG_base_type {
- {DW_AT_byte_size $int_size DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size $int_size DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
volatile_label: DW_TAG_volatile_type {
- {type :$integer_label}
+ DW_AT_type :$integer_label
}
subprogram {
- {external 1 flag}
- {name someothername}
- {ranges ${func_ranges_label} DW_FORM_sec_offset}
+ DW_AT_external 1 flag
+ DW_AT_name someothername
+ DW_AT_ranges ${func_ranges_label} DW_FORM_sec_offset
}
subprogram {
- {external 1 flag}
- {name bar}
- {low_pc $bar_start addr}
- {high_pc $bar_len DW_FORM_data4}
+ DW_AT_external 1 flag
+ DW_AT_name bar
+ DW_AT_low_pc $bar_start addr
+ DW_AT_high_pc $bar_len DW_FORM_data4
}
subprogram {
- {external 1 flag}
- {name baz}
- {low_pc $baz_start addr}
- {high_pc $baz_len DW_FORM_data4}
+ DW_AT_external 1 flag
+ DW_AT_name baz
+ DW_AT_low_pc $baz_start addr
+ DW_AT_high_pc $baz_len DW_FORM_data4
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp b/gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp
index 5f3c324..7cfeb58 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp
@@ -27,27 +27,27 @@ set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {MACRO_AT_range {main}}
+ MACRO_AT_range {main}
} {
declare_labels integer_label
integer_label: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
DW_TAG_subprogram {
- {DW_AT_external 1 flag}
- {MACRO_AT_func {main}}
+ DW_AT_external 1 flag
+ MACRO_AT_func {main}
} {
DW_TAG_variable {
- {DW_AT_name bregx}
- {DW_AT_type :$integer_label}
- {DW_AT_external 1 flag}
- {DW_AT_location {
+ DW_AT_name bregx
+ DW_AT_type :$integer_label
+ DW_AT_external 1 flag
+ DW_AT_location {
DW_OP_bregx 0xffffffff 0
- } SPECIAL_expr}
+ } SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-skipped-line-entries.exp b/gdb/testsuite/gdb.dwarf2/dw2-skipped-line-entries.exp
index 2c2b5ff..1d86c61 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-skipped-line-entries.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-skipped-line-entries.exp
@@ -40,14 +40,14 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name $::srcfile}
- {low_pc 0 addr}
- {stmt_list ${lines_label} DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $::srcfile
+ DW_AT_low_pc 0 addr
+ DW_AT_stmt_list ${lines_label} DW_FORM_sec_offset
} {
subprogram {
- {external 1 flag}
- {MACRO_AT_func {main}}
+ DW_AT_external 1 flag
+ MACRO_AT_func {main}
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-step-between-different-inline-functions.exp b/gdb/testsuite/gdb.dwarf2/dw2-step-between-different-inline-functions.exp
index a2f36cf..1eb1e38 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-step-between-different-inline-functions.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-step-between-different-inline-functions.exp
@@ -79,48 +79,48 @@ Dwarf::assemble $asm_file {
cu { version 4 } {
compile_unit {
- {producer "gcc"}
- {language @DW_LANG_C}
- {name ${srcfile}}
- {comp_dir /tmp}
- {stmt_list $lines_table DW_FORM_sec_offset}
- {low_pc 0 addr}
+ DW_AT_producer "gcc"
+ DW_AT_language @DW_LANG_C
+ DW_AT_name ${srcfile}
+ DW_AT_comp_dir /tmp
+ DW_AT_stmt_list $lines_table DW_FORM_sec_offset
+ DW_AT_low_pc 0 addr
} {
bar_label: subprogram {
- {external 1 flag}
- {name bar}
- {decl_file 1 data1}
- {decl_line $bar_decl_line data1}
- {decl_column 1 data1}
- {inline 3 data1}
+ DW_AT_external 1 flag
+ DW_AT_name bar
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line $bar_decl_line data1
+ DW_AT_decl_column 1 data1
+ DW_AT_inline 3 data1
}
baz_label: subprogram {
- {external 1 flag}
- {name baz}
- {decl_file 1 data1}
- {decl_line $baz_decl_line data1}
- {decl_column 1 data1}
- {inline 3 data1}
+ DW_AT_external 1 flag
+ DW_AT_name baz
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line $baz_decl_line data1
+ DW_AT_decl_column 1 data1
+ DW_AT_inline 3 data1
}
subprogram {
- {name foo}
- {decl_file 1 data1}
- {decl_line $foo_decl_line data1}
- {decl_column 1 data1}
- {ranges ${ranges_label_foo} DW_FORM_sec_offset}
- {external 1 flag}
+ DW_AT_name foo
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line $foo_decl_line data1
+ DW_AT_decl_column 1 data1
+ DW_AT_ranges ${ranges_label_foo} DW_FORM_sec_offset
+ DW_AT_external 1 flag
} {
inlined_subroutine {
- {abstract_origin %$bar_label}
- {call_file 1 data1}
- {call_line $foo_src_2 data1}
- {ranges ${ranges_label_bar} DW_FORM_sec_offset}
+ DW_AT_abstract_origin %$bar_label
+ DW_AT_call_file 1 data1
+ DW_AT_call_line $foo_src_2 data1
+ DW_AT_ranges ${ranges_label_bar} DW_FORM_sec_offset
}
inlined_subroutine {
- {abstract_origin %$baz_label}
- {call_file 1 data1}
- {call_line $foo_src_3 data1}
- {ranges ${ranges_label_baz} DW_FORM_sec_offset}
+ DW_AT_abstract_origin %$baz_label
+ DW_AT_call_file 1 data1
+ DW_AT_call_line $foo_src_3 data1
+ DW_AT_ranges ${ranges_label_baz} DW_FORM_sec_offset
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-step-between-inline-func-blocks.exp b/gdb/testsuite/gdb.dwarf2/dw2-step-between-inline-func-blocks.exp
index ea8c7d3..1a76c58 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-step-between-inline-func-blocks.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-step-between-inline-func-blocks.exp
@@ -71,34 +71,34 @@ Dwarf::assemble $asm_file {
cu { version 4 } {
compile_unit {
- {producer "gcc"}
- {language @DW_LANG_C}
- {name ${srcfile}}
- {comp_dir /tmp}
- {stmt_list $lines_table DW_FORM_sec_offset}
- {low_pc 0 addr}
+ DW_AT_producer "gcc"
+ DW_AT_language @DW_LANG_C
+ DW_AT_name ${srcfile}
+ DW_AT_comp_dir /tmp
+ DW_AT_stmt_list $lines_table DW_FORM_sec_offset
+ DW_AT_low_pc 0 addr
} {
bar_label: subprogram {
- {external 1 flag}
- {name bar}
- {decl_file 1 data1}
- {decl_line $bar_decl_line data1}
- {decl_column 1 data1}
- {inline 3 data1}
+ DW_AT_external 1 flag
+ DW_AT_name bar
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line $bar_decl_line data1
+ DW_AT_decl_column 1 data1
+ DW_AT_inline 3 data1
}
subprogram {
- {name foo}
- {decl_file 1 data1}
- {decl_line $foo_decl_line data1}
- {decl_column 1 data1}
- {ranges ${ranges_label_foo} DW_FORM_sec_offset}
- {external 1 flag}
+ DW_AT_name foo
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line $foo_decl_line data1
+ DW_AT_decl_column 1 data1
+ DW_AT_ranges ${ranges_label_foo} DW_FORM_sec_offset
+ DW_AT_external 1 flag
} {
inlined_subroutine {
- {abstract_origin %$bar_label}
- {call_file 1 data1}
- {call_line $foo_src_3 data1}
- {ranges ${ranges_label_bar} DW_FORM_sec_offset}
+ DW_AT_abstract_origin %$bar_label
+ DW_AT_call_file 1 data1
+ DW_AT_call_line $foo_src_3 data1
+ DW_AT_ranges ${ranges_label_bar} DW_FORM_sec_offset
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-step-out-of-function-no-stmt.exp b/gdb/testsuite/gdb.dwarf2/dw2-step-out-of-function-no-stmt.exp
index a2d197b..3eaaa52 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-step-out-of-function-no-stmt.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-step-out-of-function-no-stmt.exp
@@ -50,17 +50,17 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name $srcfile}
- {stmt_list $Llines DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $srcfile
+ DW_AT_stmt_list $Llines DW_FORM_sec_offset
} {
subprogram {
- {external 1 flag}
- {MACRO_AT_func {main}}
+ DW_AT_external 1 flag
+ MACRO_AT_func {main}
}
subprogram {
- {external 1 flag}
- {MACRO_AT_func {bar}}
+ DW_AT_external 1 flag
+ MACRO_AT_func {bar}
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-symtab-includes-lookup.exp b/gdb/testsuite/gdb.dwarf2/dw2-symtab-includes-lookup.exp
index aaa32ae..ccee277 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-symtab-includes-lookup.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-symtab-includes-lookup.exp
@@ -54,23 +54,23 @@ Dwarf::assemble $asm_file {
cu {} {
partial_label: partial_unit {
- {stmt_list ${lines_label} DW_FORM_sec_offset}
+ DW_AT_stmt_list ${lines_label} DW_FORM_sec_offset
} {
DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name myint}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name myint
}
}
}
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {DW_AT_name bla.c}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name bla.c
} {
imported_unit {
- {import $partial_label ref_addr}
+ DW_AT_import $partial_label ref_addr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-symtab-includes.exp b/gdb/testsuite/gdb.dwarf2/dw2-symtab-includes.exp
index fce4346..3e34c3c 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-symtab-includes.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-symtab-includes.exp
@@ -38,11 +38,11 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {stmt_list ${lines_label} DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_stmt_list ${lines_label} DW_FORM_sec_offset
} {
imported_unit {
- {import $partial_label ref_addr}
+ DW_AT_import $partial_label ref_addr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-unexpected-entry-pc.exp b/gdb/testsuite/gdb.dwarf2/dw2-unexpected-entry-pc.exp
index d8b738d..fb257f0 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-unexpected-entry-pc.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-unexpected-entry-pc.exp
@@ -102,32 +102,32 @@ proc run_test { entry_label dwarf_version with_line_table } {
cu { version $dwarf_version } {
compile_unit {
- {producer "gcc"}
- {language @DW_LANG_C}
- {name $::srcfile}
- {comp_dir /tmp}
- {stmt_list $lines_table DW_FORM_sec_offset}
- {low_pc 0 addr}
+ DW_AT_producer "gcc"
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $::srcfile
+ DW_AT_comp_dir /tmp
+ DW_AT_stmt_list $lines_table DW_FORM_sec_offset
+ DW_AT_low_pc 0 addr
} {
inline_func: subprogram {
- {name bar}
- {inline @DW_INL_declared_inlined}
+ DW_AT_name bar
+ DW_AT_inline @DW_INL_declared_inlined
}
subprogram {
- {name foo}
- {decl_file 1 data1}
- {decl_line $::foo_decl_line data1}
- {decl_column 1 data1}
- {low_pc $::foo_start addr}
- {high_pc $::foo_len $::ptr_type}
- {external 1 flag}
+ DW_AT_name foo
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line $::foo_decl_line data1
+ DW_AT_decl_column 1 data1
+ DW_AT_low_pc $::foo_start addr
+ DW_AT_high_pc $::foo_len $::ptr_type
+ DW_AT_external 1 flag
} {
inlined_subroutine {
- {abstract_origin %$inline_func}
- {call_file 1 data1}
- {call_line $::bar_call_line data1}
- {entry_pc $entry_label addr}
- {ranges ${ranges_label} DW_FORM_sec_offset}
+ DW_AT_abstract_origin %$inline_func
+ DW_AT_call_file 1 data1
+ DW_AT_call_line $::bar_call_line data1
+ DW_AT_entry_pc $entry_label addr
+ DW_AT_ranges ${ranges_label} DW_FORM_sec_offset
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-unspecified-type.exp b/gdb/testsuite/gdb.dwarf2/dw2-unspecified-type.exp
index 0822c98..fece767 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-unspecified-type.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-unspecified-type.exp
@@ -51,41 +51,41 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_Mips_Assembler}
+ DW_AT_language @DW_LANG_Mips_Assembler
} {
unspecified_type_label: unspecified_type {}
DW_TAG_subprogram {
- {name foo}
- {low_pc $foo_start addr}
- {high_pc $foo_end addr}
- {type :$unspecified_type_label}
+ DW_AT_name foo
+ DW_AT_low_pc $foo_start addr
+ DW_AT_high_pc $foo_end addr
+ DW_AT_type :$unspecified_type_label
}
}
}
cu {} {
compile_unit {
- {language @DW_LANG_Mips_Assembler}
- {producer "GNU AS 2.39.0"}
+ DW_AT_language @DW_LANG_Mips_Assembler
+ DW_AT_producer "GNU AS 2.39.0"
} {
DW_TAG_subprogram {
- {name bar}
- {low_pc $bar_start addr}
- {high_pc $bar_end addr}
+ DW_AT_name bar
+ DW_AT_low_pc $bar_start addr
+ DW_AT_high_pc $bar_end addr
}
}
}
cu { version 2 } {
compile_unit {
- {language @DW_LANG_Mips_Assembler}
- {producer "GNU AS 2.40.0"}
+ DW_AT_language @DW_LANG_Mips_Assembler
+ DW_AT_producer "GNU AS 2.40.0"
} {
DW_TAG_subprogram {
- {name foo2}
- {low_pc $foo2_start addr}
- {high_pc $foo2_end addr}
+ DW_AT_name foo2
+ DW_AT_low_pc $foo2_start addr
+ DW_AT_high_pc $foo2_end addr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-unusual-field-names.exp b/gdb/testsuite/gdb.dwarf2/dw2-unusual-field-names.exp
index 0a306dd..6632a86 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-unusual-field-names.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-unusual-field-names.exp
@@ -59,49 +59,49 @@ proc run_test { field_name } {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
} {
declare_labels itype ptype stype
itype: DW_TAG_base_type {
- {DW_AT_byte_size $int_size DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name int}
+ DW_AT_byte_size $int_size DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
stype: DW_TAG_structure_type {
- {DW_AT_name "foo"}
- {DW_AT_byte_size $int_size DW_FORM_sdata}
+ DW_AT_name "foo"
+ DW_AT_byte_size $int_size DW_FORM_sdata
} {
member {
- {name $field_name}
- {type :$itype}
- {data_member_location 0 data1}
+ DW_AT_name $field_name
+ DW_AT_type :$itype
+ DW_AT_data_member_location 0 data1
}
}
ptype: DW_TAG_pointer_type {
- {DW_AT_type :$stype}
+ DW_AT_type :$stype
}
DW_TAG_variable {
- {DW_AT_name obj}
- {DW_AT_type :$stype}
- {DW_AT_location {
+ DW_AT_name obj
+ DW_AT_type :$stype
+ DW_AT_location [subst {
DW_OP_addr [gdb_target_symbol obj]
- } SPECIAL_expr}
- {external 1 flag}
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
}
DW_TAG_variable {
- {DW_AT_name ptr}
- {DW_AT_type :$ptype}
- {DW_AT_location {
+ DW_AT_name ptr
+ DW_AT_type :$ptype
+ DW_AT_location [subst {
DW_OP_addr [gdb_target_symbol ptr]
- } SPECIAL_expr}
- {external 1 flag}
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-using-debug-str.exp b/gdb/testsuite/gdb.dwarf2/dw2-using-debug-str.exp
index e46cbe5..6d8d9b1 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-using-debug-str.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-using-debug-str.exp
@@ -34,51 +34,51 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name ${srcfile}}
- } {
+ DW_AT_language @DW_LANG_C
+ DW_AT_name ${srcfile}
+ } {
declare_labels int4_type struct_type
int4_type: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
struct_type: DW_TAG_structure_type {
- {DW_AT_name "foo_t" DW_FORM_strp}
- {DW_AT_byte_size 12 DW_FORM_sdata}
+ DW_AT_name "foo_t" DW_FORM_strp
+ DW_AT_byte_size 12 DW_FORM_sdata
} {
member {
- {name "aa" DW_FORM_strp}
- {type :$int4_type}
- {data_member_location 0 data1}
+ DW_AT_name "aa" DW_FORM_strp
+ DW_AT_type :$int4_type
+ DW_AT_data_member_location 0 data1
}
member {
- {name "bb" DW_FORM_strp}
- {type :$int4_type}
- {data_member_location 4 data1}
+ DW_AT_name "bb" DW_FORM_strp
+ DW_AT_type :$int4_type
+ DW_AT_data_member_location 4 data1
}
member {
- {name "cc" DW_FORM_strp}
- {type :$int4_type}
- {data_member_location 8 data1}
+ DW_AT_name "cc" DW_FORM_strp
+ DW_AT_type :$int4_type
+ DW_AT_data_member_location 8 data1
}
}
DW_TAG_variable {
- {DW_AT_name global_var DW_FORM_strp}
- {DW_AT_type :$struct_type}
- {DW_AT_location {
+ DW_AT_name global_var DW_FORM_strp
+ DW_AT_type :$struct_type
+ DW_AT_location [subst {
DW_OP_addr [gdb_target_symbol global_var]
- } SPECIAL_expr}
- {external 1 flag}
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
}
subprogram {
- {external 1 flag}
- {name main DW_FORM_strp}
- {MACRO_AT_range {main}}
+ DW_AT_external 1 flag
+ DW_AT_name main DW_FORM_strp
+ MACRO_AT_range {main}
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.exp b/gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.exp
index f021f42..c6234d5 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.exp
@@ -34,7 +34,7 @@ test
save_vars { GDBFLAGS } {
set GDBFLAGS "$GDBFLAGS --readnow"
- clean_restart ${binfile}
+ clean_restart ${::testfile}
}
with_test_prefix "readnow" {
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-vendor-extended-opcode.exp b/gdb/testsuite/gdb.dwarf2/dw2-vendor-extended-opcode.exp
index 3e4ffc4..6432c9d 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-vendor-extended-opcode.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-vendor-extended-opcode.exp
@@ -34,13 +34,13 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name dw2-vendor-extended-opcode.c}
- {stmt_list $Llines DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name dw2-vendor-extended-opcode.c
+ DW_AT_stmt_list $Llines DW_FORM_sec_offset
} {
subprogram {
- {external 1 flag}
- {MACRO_AT_func {main}}
+ DW_AT_external 1 flag
+ MACRO_AT_func {main}
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-weird-type-len.exp b/gdb/testsuite/gdb.dwarf2/dw2-weird-type-len.exp
index 0c76c87..35eaa16 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-weird-type-len.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-weird-type-len.exp
@@ -35,52 +35,52 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
} {
declare_labels integer_label foo_t_label bar_t_label
foo_t_label: DW_TAG_structure_type {
- {name foo_t}
- {byte_size 3 DW_FORM_sdata}
+ DW_AT_name foo_t
+ DW_AT_byte_size 3 DW_FORM_sdata
} {
member {
- {name field}
- {type :$integer_label}
- {data_member_location 0 DW_FORM_sdata}
+ DW_AT_name field
+ DW_AT_type :$integer_label
+ DW_AT_data_member_location 0 DW_FORM_sdata
}
}
integer_label: DW_TAG_base_type {
- {DW_AT_byte_size 3 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size 3 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
bar_t_label: DW_TAG_structure_type {
- {name bar_t}
- {byte_size 3 DW_FORM_sdata}
+ DW_AT_name bar_t
+ DW_AT_byte_size 3 DW_FORM_sdata
} {
member {
- {name f}
- {type :$foo_t_label}
- {data_member_location 0 DW_FORM_sdata}
+ DW_AT_name f
+ DW_AT_type :$foo_t_label
+ DW_AT_data_member_location 0 DW_FORM_sdata
}
}
DW_TAG_subprogram {
- {name main}
- {low_pc $main_start addr}
- {high_pc $main_len data8}
- {DW_AT_type :$integer_label}
+ DW_AT_name main
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc $main_len data8
+ DW_AT_type :$integer_label
}
DW_TAG_subprogram {
- {name get_bar}
- {low_pc $get_bar_start addr}
- {high_pc $get_bar_len data8}
- {DW_AT_type :$bar_t_label}
+ DW_AT_name get_bar
+ DW_AT_low_pc $get_bar_start addr
+ DW_AT_high_pc $get_bar_len data8
+ DW_AT_type :$bar_t_label
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-wrong-mangled-name.exp b/gdb/testsuite/gdb.dwarf2/dw2-wrong-mangled-name.exp
index 33b1515..f892d70 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-wrong-mangled-name.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-wrong-mangled-name.exp
@@ -33,20 +33,20 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C_plus_plus}
- {name $srcfile}
+ DW_AT_language @DW_LANG_C_plus_plus
+ DW_AT_name $srcfile
} {
subprogram {
- {MACRO_AT_range {func_demangled_test}}
- {linkage_name "_FUNC_WRONG_MANGLED__"}
- {name "func_demangled_test"}
- {external 1 flag}
+ MACRO_AT_range {func_demangled_test}
+ DW_AT_linkage_name "_FUNC_WRONG_MANGLED__"
+ DW_AT_name "func_demangled_test"
+ DW_AT_external 1 flag
}
subprogram {
- {MACRO_AT_range {main}}
- {external 1 flag}
- {name main}
- {main_subprogram 1 flag}
+ MACRO_AT_range {main}
+ DW_AT_external 1 flag
+ DW_AT_name main
+ DW_AT_main_subprogram 1 flag
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-zero-range.exp b/gdb/testsuite/gdb.dwarf2/dw2-zero-range.exp
index 221bf7b..d5faf6f 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-zero-range.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-zero-range.exp
@@ -26,7 +26,8 @@ standard_testfile .c -shlib.c -dw.S
# Test for presence of complaint, with the lib relocated.
proc_with_prefix test_relocated { exec_path lib_path complaint_re readnow_p } {
- clean_restart $exec_path
+ clean_restart
+ gdb_load $exec_path
gdb_load_shlib $lib_path
if { ![runto_main] } {
@@ -95,13 +96,13 @@ foreach_with_prefix ranges_sect {ranges rnglists} {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name $srcfile2}
- {ranges ${ranges_label} DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $srcfile2
+ DW_AT_ranges ${ranges_label} DW_FORM_sec_offset
} {
subprogram {
- {external 1 flag}
- {name foo}
+ DW_AT_external 1 flag
+ DW_AT_name foo
}
}
}
@@ -122,13 +123,13 @@ foreach_with_prefix ranges_sect {ranges rnglists} {
version 5
} {
compile_unit {
- {language @DW_LANG_C}
- {name $srcfile2}
- {ranges ${rnglists_label} DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $srcfile2
+ DW_AT_ranges ${rnglists_label} DW_FORM_sec_offset
} {
subprogram {
- {external 1 flag}
- {name foo}
+ DW_AT_external 1 flag
+ DW_AT_name foo
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dwz-unused-pu.exp b/gdb/testsuite/gdb.dwarf2/dwz-unused-pu.exp
index b7dc275..d9daedf 100644
--- a/gdb/testsuite/gdb.dwarf2/dwz-unused-pu.exp
+++ b/gdb/testsuite/gdb.dwarf2/dwz-unused-pu.exp
@@ -28,9 +28,11 @@ Dwarf::assemble $asm_file {
declare_labels partial_label int_label int_label2
cu {} {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
subprogram {
- {MACRO_AT_func { main }}
+ MACRO_AT_func { main }
}
}
}
@@ -38,15 +40,15 @@ Dwarf::assemble $asm_file {
cu {} {
partial_unit {} {
int_label: base_type {
- {name int}
- {byte_size 4 sdata}
- {encoding @DW_ATE_signed}
+ DW_AT_name int
+ DW_AT_byte_size 4 sdata
+ DW_AT_encoding @DW_ATE_signed
}
constant {
- {name the_int}
- {type :$int_label}
- {const_value 99 data1}
+ DW_AT_name the_int
+ DW_AT_type :$int_label
+ DW_AT_const_value 99 data1
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dwz.exp b/gdb/testsuite/gdb.dwarf2/dwz.exp
index 1d214c1..ebccea6 100644
--- a/gdb/testsuite/gdb.dwarf2/dwz.exp
+++ b/gdb/testsuite/gdb.dwarf2/dwz.exp
@@ -28,49 +28,53 @@ Dwarf::assemble $asm_file {
cu {} {
partial_label: partial_unit {} {
subprogram {
- {MACRO_AT_func { main }}
+ MACRO_AT_func { main }
}
}
}
cu {} {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
int_label2: base_type {
- {name int}
- {byte_size 4 sdata}
- {encoding @DW_ATE_signed}
+ DW_AT_name int
+ DW_AT_byte_size 4 sdata
+ DW_AT_encoding @DW_ATE_signed
}
constant {
- {name the_int}
- {type :$int_label2}
- {const_value 99 data1}
+ DW_AT_name the_int
+ DW_AT_type :$int_label2
+ DW_AT_const_value 99 data1
}
constant {
- {name other_int}
- {type :$int_label2}
- {const_value 99 data1}
+ DW_AT_name other_int
+ DW_AT_type :$int_label2
+ DW_AT_const_value 99 data1
}
}
}
cu {} {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
imported_unit {
- {import $partial_label ref_addr}
+ DW_AT_import $partial_label ref_addr
}
int_label: base_type {
- {name int}
- {byte_size 4 sdata}
- {encoding @DW_ATE_signed}
+ DW_AT_name int
+ DW_AT_byte_size 4 sdata
+ DW_AT_encoding @DW_ATE_signed
}
constant {
- {name the_int}
- {type :$int_label}
- {const_value 23 data1}
+ DW_AT_name the_int
+ DW_AT_type :$int_label
+ DW_AT_const_value 23 data1
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dwzbuildid.tcl b/gdb/testsuite/gdb.dwarf2/dwzbuildid.tcl
index a9077eb..1aa889a 100644
--- a/gdb/testsuite/gdb.dwarf2/dwzbuildid.tcl
+++ b/gdb/testsuite/gdb.dwarf2/dwzbuildid.tcl
@@ -51,7 +51,9 @@ proc write_just_debugaltlink {filename dwzname buildid} {
# Only the DWARF reader checks .gnu_debugaltlink, so make sure
# there is a bit of DWARF in here.
cu { label cu_start } {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
}
}
aranges {} cu_start {
@@ -77,17 +79,19 @@ proc write_dwarf_file {filename buildid {value 99}} {
}
cu { label cu_start } {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
int_label2: base_type {
- {name int}
- {byte_size 4 sdata}
- {encoding @DW_ATE_signed}
+ DW_AT_name int
+ DW_AT_byte_size 4 sdata
+ DW_AT_encoding @DW_ATE_signed
}
constant {
- {name the_int}
- {type :$int_label2}
- {const_value $value data1}
+ DW_AT_name the_int
+ DW_AT_type :$int_label2
+ DW_AT_const_value $value data1
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dwznolink.exp b/gdb/testsuite/gdb.dwarf2/dwznolink.exp
index 0c486ea..b568055 100644
--- a/gdb/testsuite/gdb.dwarf2/dwznolink.exp
+++ b/gdb/testsuite/gdb.dwarf2/dwznolink.exp
@@ -30,11 +30,13 @@ set asm_file [standard_output_file $srcfile2]
# one point, this caused gdb crashes.
Dwarf::assemble $asm_file {
cu {} {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
constant {
- {name 0 DW_FORM_GNU_strp_alt}
- {type 97 DW_FORM_GNU_ref_alt}
- {const_value 99 data1}
+ DW_AT_name 0 DW_FORM_GNU_strp_alt
+ DW_AT_type 97 DW_FORM_GNU_ref_alt
+ DW_AT_const_value 99 data1
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dyn-type-unallocated.exp b/gdb/testsuite/gdb.dwarf2/dyn-type-unallocated.exp
index 09af96c..e4248d0 100644
--- a/gdb/testsuite/gdb.dwarf2/dyn-type-unallocated.exp
+++ b/gdb/testsuite/gdb.dwarf2/dyn-type-unallocated.exp
@@ -66,57 +66,57 @@ Dwarf::assemble $asm_file {
global srcfile
compile_unit {
- {producer "gcc" }
- {language @DW_LANG_Fortran90}
- {name ${srcfile}}
- {low_pc 0 addr}
- } {
+ DW_AT_producer "gcc"
+ DW_AT_language @DW_LANG_Fortran90
+ DW_AT_name ${srcfile}
+ DW_AT_low_pc 0 addr
+ } {
declare_labels array_type_label integer_type_label
- integer_type_label: DW_TAG_base_type {
- {DW_AT_byte_size $int_size DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
- }
+ integer_type_label: DW_TAG_base_type {
+ DW_AT_byte_size $int_size DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
+ }
array_type_label: DW_TAG_array_type {
- {DW_AT_type :$integer_type_label}
- {DW_AT_data_location {
+ DW_AT_type :$integer_type_label
+ DW_AT_data_location {
DW_OP_push_object_address
DW_OP_deref
- } SPECIAL_expr}
- {DW_AT_allocated {
+ } SPECIAL_expr
+ DW_AT_allocated {
DW_OP_lit0
- } SPECIAL_expr}
+ } SPECIAL_expr
} {
DW_TAG_subrange_type {
- {DW_AT_type :$integer_type_label}
- {DW_AT_lower_bound {
+ DW_AT_type :$integer_type_label
+ DW_AT_lower_bound {
DW_OP_skip -3
- } SPECIAL_expr}
- {DW_AT_upper_bound {
+ } SPECIAL_expr
+ DW_AT_upper_bound {
DW_OP_skip -3
- } SPECIAL_expr}
- {DW_AT_byte_stride {
+ } SPECIAL_expr
+ DW_AT_byte_stride {
DW_OP_skip -3
- } SPECIAL_expr}
+ } SPECIAL_expr
}
}
DW_TAG_variable {
- {DW_AT_location {
- DW_OP_addr [gdb_target_symbol dyn_object]
- } SPECIAL_expr}
- {name "dyn_object"}
- {type :$array_type_label}
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol dyn_object]
+ }] SPECIAL_expr
+ DW_AT_name "dyn_object"
+ DW_AT_type :$array_type_label
}
subprogram {
- {external 1 flag}
- {DW_AT_name main}
- {DW_AT_low_pc $main_start DW_FORM_addr}
- {DW_AT_high_pc $main_end DW_FORM_addr}
+ DW_AT_external 1 flag
+ DW_AT_name main
+ DW_AT_low_pc $main_start DW_FORM_addr
+ DW_AT_high_pc $main_end DW_FORM_addr
}
- }
+ }
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dynamic-bit-offset.exp b/gdb/testsuite/gdb.dwarf2/dynamic-bit-offset.exp
index f4e02da..a5cf54d 100644
--- a/gdb/testsuite/gdb.dwarf2/dynamic-bit-offset.exp
+++ b/gdb/testsuite/gdb.dwarf2/dynamic-bit-offset.exp
@@ -32,35 +32,35 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_Ada95}
- {DW_AT_name $srcfile}
+ DW_AT_language @DW_LANG_Ada95
+ DW_AT_name $srcfile
} {
declare_labels byte array struct
byte: DW_TAG_base_type {
- {DW_AT_byte_size 1 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_unsigned}
- {DW_AT_name byte}
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_name byte
}
array: DW_TAG_array_type {
- {DW_AT_name array_type}
- {DW_AT_type :$byte}
+ DW_AT_name array_type
+ DW_AT_type :$byte
} {
DW_TAG_subrange_type {
- {DW_AT_type :$byte}
- {DW_AT_upper_bound 3 DW_FORM_sdata}
+ DW_AT_type :$byte
+ DW_AT_upper_bound 3 DW_FORM_sdata
}
}
struct: DW_TAG_structure_type {
- {DW_AT_name discriminated}
- {DW_AT_byte_size 4 DW_FORM_sdata}
+ DW_AT_name discriminated
+ DW_AT_byte_size 4 DW_FORM_sdata
} {
DW_TAG_member {
- {DW_AT_name disc}
- {DW_AT_type :$byte}
- {DW_AT_data_member_location 0 DW_FORM_sdata}
+ DW_AT_name disc
+ DW_AT_type :$byte
+ DW_AT_data_member_location 0 DW_FORM_sdata
}
# We know this is always at offset 1 but use an
@@ -68,18 +68,19 @@ Dwarf::assemble $asm_file {
# DWARF extension. See
# https://dwarfstd.org/issues/250501.1.html.
DW_TAG_member {
- {DW_AT_name nums}
- {DW_AT_type :$array}
- {DW_AT_data_bit_offset {DW_OP_lit8} SPECIAL_expr}
+ DW_AT_name nums
+ DW_AT_type :$array
+ DW_AT_data_bit_offset {DW_OP_lit8} SPECIAL_expr
}
}
DW_TAG_variable {
- {DW_AT_name "value"}
- {DW_AT_type :$struct}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "our_data"]}
- SPECIAL_expr}
+ DW_AT_name "value"
+ DW_AT_type :$struct
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "our_data"]
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dynarr-ptr.exp b/gdb/testsuite/gdb.dwarf2/dynarr-ptr.exp
index 1e06212..331cfc2 100644
--- a/gdb/testsuite/gdb.dwarf2/dynarr-ptr.exp
+++ b/gdb/testsuite/gdb.dwarf2/dynarr-ptr.exp
@@ -34,83 +34,83 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
- DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_Ada95}
- {DW_AT_name foo.adb}
- {DW_AT_comp_dir /tmp}
- } {
- declare_labels integer_label array_label array_ptr_label \
- array_typedef_label
- set ptr_size [get_sizeof "void *" 96]
+ DW_TAG_compile_unit {
+ DW_AT_language @DW_LANG_Ada95
+ DW_AT_name foo.adb
+ DW_AT_comp_dir /tmp
+ } {
+ declare_labels integer_label array_label array_ptr_label \
+ array_typedef_label
+ set ptr_size [get_sizeof "void *" 96]
set int_size [get_sizeof "int" 4]
- integer_label: DW_TAG_base_type {
- {DW_AT_byte_size $int_size DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
- }
+ integer_label: DW_TAG_base_type {
+ DW_AT_byte_size $int_size DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
+ }
array_label: DW_TAG_array_type {
- {DW_AT_name foo__array_type}
- {DW_AT_type :$integer_label}
- {external 1 flag}
+ DW_AT_name foo__array_type
+ DW_AT_type :$integer_label
+ DW_AT_external 1 flag
} {
DW_TAG_subrange_type {
- {DW_AT_type :$integer_label}
- {DW_AT_lower_bound {
- DW_OP_push_object_address
- DW_OP_const1u [expr {2 * $int_size}]
- DW_OP_minus
- DW_OP_deref_size $int_size
- } SPECIAL_expr}
- {DW_AT_upper_bound {
- DW_OP_push_object_address
+ DW_AT_type :$integer_label
+ DW_AT_lower_bound [subst {
+ DW_OP_push_object_address
+ DW_OP_const1u [expr {2 * $int_size}]
+ DW_OP_minus
+ DW_OP_deref_size $int_size
+ }] SPECIAL_expr
+ DW_AT_upper_bound [subst {
+ DW_OP_push_object_address
DW_OP_const1u $int_size
- DW_OP_minus
- DW_OP_deref_size $int_size
- } SPECIAL_expr}
+ DW_OP_minus
+ DW_OP_deref_size $int_size
+ }] SPECIAL_expr
}
}
- array_ptr_label: DW_TAG_pointer_type {
- {DW_AT_byte_size $ptr_size DW_FORM_data1}
- {DW_AT_type :$array_label}
- }
- array_typedef_label: DW_TAG_typedef {
- {DW_AT_name "foo__array_ptr"}
- {DW_AT_type :$array_ptr_label}
- }
- DW_TAG_variable {
- {DW_AT_name foo__three_ptr}
- {DW_AT_type :$array_ptr_label}
- {DW_AT_location {
- DW_OP_addr [gdb_target_symbol table_1_ptr]
- } SPECIAL_expr}
- {external 1 flag}
- }
- DW_TAG_variable {
- {DW_AT_name foo__three_ptr_tdef}
- {DW_AT_type :$array_typedef_label}
- {DW_AT_location {
- DW_OP_addr [gdb_target_symbol table_1_ptr]
- } SPECIAL_expr}
- {external 1 flag}
- }
- DW_TAG_variable {
- {DW_AT_name foo__five_ptr}
- {DW_AT_type :$array_ptr_label}
- {DW_AT_location {
- DW_OP_addr [gdb_target_symbol table_2_ptr]
- } SPECIAL_expr}
- {external 1 flag}
- }
- DW_TAG_variable {
- {DW_AT_name foo__five_ptr_tdef}
- {DW_AT_type :$array_typedef_label}
- {DW_AT_location {
- DW_OP_addr [gdb_target_symbol table_2_ptr]
- } SPECIAL_expr}
- {external 1 flag}
- }
+ array_ptr_label: DW_TAG_pointer_type {
+ DW_AT_byte_size $ptr_size DW_FORM_data1
+ DW_AT_type :$array_label
+ }
+ array_typedef_label: DW_TAG_typedef {
+ DW_AT_name "foo__array_ptr"
+ DW_AT_type :$array_ptr_label
+ }
+ DW_TAG_variable {
+ DW_AT_name foo__three_ptr
+ DW_AT_type :$array_ptr_label
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol table_1_ptr]
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
+ }
+ DW_TAG_variable {
+ DW_AT_name foo__three_ptr_tdef
+ DW_AT_type :$array_typedef_label
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol table_1_ptr]
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
+ }
+ DW_TAG_variable {
+ DW_AT_name foo__five_ptr
+ DW_AT_type :$array_ptr_label
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol table_2_ptr]
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
+ }
+ DW_TAG_variable {
+ DW_AT_name foo__five_ptr_tdef
+ DW_AT_type :$array_typedef_label
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol table_2_ptr]
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
+ }
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp b/gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp
index 621b2e7..96287dd 100644
--- a/gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp
+++ b/gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp
@@ -37,28 +37,28 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C_plus_plus}
- {name "cu1"}
+ DW_AT_language @DW_LANG_C_plus_plus
+ DW_AT_name "cu1"
} {
DW_TAG_variable {
- {name foo}
- {type %$int_label}
- {const_value 1 DW_FORM_sdata}
+ DW_AT_name foo
+ DW_AT_type %$int_label
+ DW_AT_const_value 1 DW_FORM_sdata
}
}
}
cu {} {
compile_unit {
- {language @DW_LANG_C_plus_plus}
- {name "cu2"}
- {ranges ${ranges_label} sec_offset}
- {low_pc {[lindex $main_func 0]}}
+ DW_AT_language @DW_LANG_C_plus_plus
+ DW_AT_name "cu2"
+ DW_AT_ranges ${ranges_label} sec_offset
+ DW_AT_low_pc [lindex $main_func 0]
} {
int_label: base_type {
- {byte_size 4 udata}
- {encoding @DW_ATE_signed}
- {name int}
+ DW_AT_byte_size 4 udata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/entry-value-typedef.exp b/gdb/testsuite/gdb.dwarf2/entry-value-typedef.exp
index 44d58a8..f84f0f3 100644
--- a/gdb/testsuite/gdb.dwarf2/entry-value-typedef.exp
+++ b/gdb/testsuite/gdb.dwarf2/entry-value-typedef.exp
@@ -31,7 +31,7 @@ if {[gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" executable {c++}] != ""}
return
}
-clean_restart $binfile
+clean_restart $::testfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.dwarf2/enum-type.exp b/gdb/testsuite/gdb.dwarf2/enum-type.exp
index 121a350..f077c0a 100644
--- a/gdb/testsuite/gdb.dwarf2/enum-type.exp
+++ b/gdb/testsuite/gdb.dwarf2/enum-type.exp
@@ -26,41 +26,41 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
- } {
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
+ } {
declare_labels integer_label uinteger_label
- integer_label: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name int}
- }
+ integer_label: DW_TAG_base_type {
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
+ }
- uinteger_label: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_unsigned}
- {DW_AT_name {unsigned int}}
- }
+ uinteger_label: DW_TAG_base_type {
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_name {unsigned int}
+ }
DW_TAG_enumeration_type {
- {DW_AT_name E}
- {DW_AT_type :$integer_label}
+ DW_AT_name E
+ DW_AT_type :$integer_label
} {
DW_TAG_enumerator {
- {DW_AT_name ONE}
- {DW_AT_const_value 1 DW_FORM_sdata}
+ DW_AT_name ONE
+ DW_AT_const_value 1 DW_FORM_sdata
}
}
DW_TAG_enumeration_type {
- {DW_AT_name EU}
- {DW_AT_type :$uinteger_label}
+ DW_AT_name EU
+ DW_AT_type :$uinteger_label
} {
DW_TAG_enumerator {
- {DW_AT_name TWO}
- {DW_AT_const_value 2 DW_FORM_sdata}
+ DW_AT_name TWO
+ DW_AT_const_value 2 DW_FORM_sdata
}
}
}
@@ -68,34 +68,34 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
- {DW_AT_name tmp.c}
- {DW_AT_comp_dir /tmp}
+ DW_AT_language @DW_LANG_C_plus_plus
+ DW_AT_name tmp.c
+ DW_AT_comp_dir /tmp
} {
declare_labels integer_label forward
integer_label: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name int}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
DW_TAG_enumeration_type {
- {DW_AT_specification :$forward}
+ DW_AT_specification :$forward
} {
DW_TAG_enumerator {
- {DW_AT_name val1}
- {DW_AT_const_value 1 DW_FORM_sdata}
+ DW_AT_name val1
+ DW_AT_const_value 1 DW_FORM_sdata
}
}
DW_TAG_namespace {
- {DW_AT_name ns}
+ DW_AT_name ns
} {
forward: DW_TAG_enumeration_type {
- {DW_AT_name e}
- {DW_AT_type :$integer_label}
- {DW_AT_declaration 1 flag}
+ DW_AT_name e
+ DW_AT_type :$integer_label
+ DW_AT_declaration 1 flag
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/fission-absolute-dwo.exp b/gdb/testsuite/gdb.dwarf2/fission-absolute-dwo.exp
index 4f354cd..640d4d2 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-absolute-dwo.exp
+++ b/gdb/testsuite/gdb.dwarf2/fission-absolute-dwo.exp
@@ -40,53 +40,53 @@ Dwarf::assemble $asm_file {
set debug_addr_lbl [debug_addr_label]
compile_unit {
- {language @DW_LANG_C}
- {name ${srcfile}}
- {DW_AT_comp_dir ${objdir}}
- {DW_AT_GNU_dwo_id 0x1234 DW_FORM_data8}
- } {
+ DW_AT_language @DW_LANG_C
+ DW_AT_name ${srcfile}
+ DW_AT_comp_dir ${objdir}
+ DW_AT_GNU_dwo_id 0x1234 DW_FORM_data8
+ } {
declare_labels int4_type struct_type
int4_type: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
struct_type: DW_TAG_structure_type {
- {DW_AT_name "foo_t"}
- {DW_AT_byte_size 12 DW_FORM_sdata}
+ DW_AT_name "foo_t"
+ DW_AT_byte_size 12 DW_FORM_sdata
} {
member {
- {name "aa"}
- {type :$int4_type}
- {data_member_location 0 data1}
+ DW_AT_name "aa"
+ DW_AT_type :$int4_type
+ DW_AT_data_member_location 0 data1
}
member {
- {name "bb"}
- {type :$int4_type}
- {data_member_location 4 data1}
+ DW_AT_name "bb"
+ DW_AT_type :$int4_type
+ DW_AT_data_member_location 4 data1
}
member {
- {name "cc"}
- {type :$int4_type}
- {data_member_location 8 data1}
+ DW_AT_name "cc"
+ DW_AT_type :$int4_type
+ DW_AT_data_member_location 8 data1
}
}
DW_TAG_variable {
- {DW_AT_name global_var}
- {DW_AT_type :$struct_type}
- {DW_AT_location {
+ DW_AT_name global_var
+ DW_AT_type :$struct_type
+ DW_AT_location [subst {
DW_OP_GNU_addr_index [gdb_target_symbol global_var]
- } SPECIAL_expr}
- {external 1 flag}
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
}
subprogram {
- {external 1 flag}
- {DW_AT_name main DW_FORM_string}
- {MACRO_AT_func {main}}
+ DW_AT_external 1 flag
+ DW_AT_name main DW_FORM_string
+ MACRO_AT_func {main}
}
}
}
@@ -94,11 +94,11 @@ Dwarf::assemble $asm_file {
# The information that will remain in the .o file.
cu {} {
compile_unit {
- {DW_AT_GNU_dwo_name ${binfile}.dwo DW_FORM_strp}
- {DW_AT_comp_dir ${objdir}}
- {DW_AT_GNU_dwo_id 0x1234 DW_FORM_data8}
- {DW_AT_GNU_addr_base $debug_addr_lbl}
- } {
+ DW_AT_GNU_dwo_name ${binfile}.dwo DW_FORM_strp
+ DW_AT_comp_dir ${objdir}
+ DW_AT_GNU_dwo_id 0x1234 DW_FORM_data8
+ DW_AT_GNU_addr_base $debug_addr_lbl
+ } {
# Nothing.
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/fission-base.exp b/gdb/testsuite/gdb.dwarf2/fission-base.exp
index 4d18ea0..9f70f30 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-base.exp
+++ b/gdb/testsuite/gdb.dwarf2/fission-base.exp
@@ -35,7 +35,7 @@ if [build_executable_and_dwo_files "$testfile.exp" "${binfile}" {nodebug} \
return -1
}
-clean_restart $binfile
+clean_restart $::testfile
if ![runto_main] {
return -1
diff --git a/gdb/testsuite/gdb.dwarf2/fission-dw-form-strx.exp b/gdb/testsuite/gdb.dwarf2/fission-dw-form-strx.exp
index 4f5867c..5f778e6 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-dw-form-strx.exp
+++ b/gdb/testsuite/gdb.dwarf2/fission-dw-form-strx.exp
@@ -32,7 +32,7 @@ Dwarf::assemble $main_asm_file {
dwo_id 0xF00D
} {
compile_unit {
- {DW_AT_dwo_name ${::gdb_test_file_name}.dwo DW_FORM_strp}
+ DW_AT_dwo_name ${::gdb_test_file_name}.dwo DW_FORM_strp
} {}
}
}
@@ -50,18 +50,18 @@ Dwarf::assemble $dwo_asm_file {
declare_labels int4_type
int4_type: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name 0 DW_FORM_strx_id}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name 0 DW_FORM_strx_id
}
DW_TAG_variable {
- {DW_AT_name global_var}
- {DW_AT_type :$int4_type}
- {DW_AT_location {
+ DW_AT_name global_var
+ DW_AT_type :$int4_type
+ DW_AT_location {
DW_OP_const1u 12
DW_OP_stack_value
- } SPECIAL_expr}
+ } SPECIAL_expr
}
}
}
@@ -83,6 +83,6 @@ if { [is_remote host] } {
gdb_remote_download host $dwo_file
}
-clean_restart $binfile
+clean_restart $::testfile
gdb_test "ptype global_var" "type = int"
diff --git a/gdb/testsuite/gdb.dwarf2/fission-loclists-pie.exp b/gdb/testsuite/gdb.dwarf2/fission-loclists-pie.exp
index 5be2e8e..aa54718 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-loclists-pie.exp
+++ b/gdb/testsuite/gdb.dwarf2/fission-loclists-pie.exp
@@ -40,7 +40,7 @@ if [build_executable_and_dwo_files "$testfile.exp" "${binfile}" \
return -1
}
-clean_restart $binfile
+clean_restart $::testfile
if ![runto_main] {
return -1
diff --git a/gdb/testsuite/gdb.dwarf2/fission-loclists.exp b/gdb/testsuite/gdb.dwarf2/fission-loclists.exp
index 95c1fac..59cd10b 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-loclists.exp
+++ b/gdb/testsuite/gdb.dwarf2/fission-loclists.exp
@@ -35,7 +35,7 @@ if [build_executable_and_dwo_files "$testfile.exp" "${binfile}" {nodebug} \
return -1
}
-clean_restart $binfile
+clean_restart $::testfile
if ![runto_main] {
return -1
diff --git a/gdb/testsuite/gdb.dwarf2/fission-mix.exp b/gdb/testsuite/gdb.dwarf2/fission-mix.exp
index e4741c3..e6a430c 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-mix.exp
+++ b/gdb/testsuite/gdb.dwarf2/fission-mix.exp
@@ -35,7 +35,7 @@ if {[gdb_compile "$objfile $objfile2" $binfile executable {debug}] != "" } {
return -1
}
-clean_restart $binfile
+clean_restart $::testfile
gdb_test "break -q main" "Breakpoint .*"
diff --git a/gdb/testsuite/gdb.dwarf2/fission-multi-cu.exp b/gdb/testsuite/gdb.dwarf2/fission-multi-cu.exp
index 44e72d6..ff498c9 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-multi-cu.exp
+++ b/gdb/testsuite/gdb.dwarf2/fission-multi-cu.exp
@@ -51,29 +51,29 @@ Dwarf::assemble $asm_file_1 {
set debug_addr_lbl [debug_addr_label]
compile_unit {
- {language @DW_LANG_C}
- {name ${srcfile}}
- {DW_AT_comp_dir ${objdir}}
- {DW_AT_GNU_dwo_id 0x1234 DW_FORM_data8}
- } {
+ DW_AT_language @DW_LANG_C
+ DW_AT_name ${srcfile}
+ DW_AT_comp_dir ${objdir}
+ DW_AT_GNU_dwo_id 0x1234 DW_FORM_data8
+ } {
int4_type: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name int}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
subprogram {
- {external 1 flag}
- {DW_AT_name func DW_FORM_string}
- {MACRO_AT_func {func}}
- {DW_AT_type :$int4_type}
+ DW_AT_external 1 flag
+ DW_AT_name func DW_FORM_string
+ MACRO_AT_func {func}
+ DW_AT_type :$int4_type
} {
DW_TAG_formal_parameter {
- {DW_AT_name arg}
- {DW_AT_type :$int4_type}
- {DW_AT_location {
+ DW_AT_name arg
+ DW_AT_type :$int4_type
+ DW_AT_location [subst {
DW_OP_GNU_addr_index [gdb_target_symbol global_param]
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
}
}
@@ -100,12 +100,12 @@ Dwarf::assemble $asm_file_1 {
# The information that will remain in the .o file.
cu {} {
compile_unit {
- {DW_AT_GNU_dwo_name ${binfile}-1-dw.dwo DW_FORM_strp}
- {DW_AT_comp_dir ${objdir}}
- {DW_AT_GNU_dwo_id 0x1234 DW_FORM_data8}
- {DW_AT_GNU_addr_base $debug_addr_lbl}
- {stmt_list $lines_table DW_FORM_sec_offset}
- } {
+ DW_AT_GNU_dwo_name ${binfile}-1-dw.dwo DW_FORM_strp
+ DW_AT_comp_dir ${objdir}
+ DW_AT_GNU_dwo_id 0x1234 DW_FORM_data8
+ DW_AT_GNU_addr_base $debug_addr_lbl
+ DW_AT_stmt_list $lines_table DW_FORM_sec_offset
+ } {
# Nothing.
}
}
@@ -131,24 +131,24 @@ Dwarf::assemble $asm_file_2 {
set debug_addr_lbl [debug_addr_label]
compile_unit {
- {language @DW_LANG_C}
- {name ${srcfile}}
- {DW_AT_comp_dir ${objdir}}
- {DW_AT_GNU_dwo_id 0x4567 DW_FORM_data8}
- } {
+ DW_AT_language @DW_LANG_C
+ DW_AT_name ${srcfile}
+ DW_AT_comp_dir ${objdir}
+ DW_AT_GNU_dwo_id 0x4567 DW_FORM_data8
+ } {
int4_type: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name int}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
subprogram {
- {external 1 flag}
- {DW_AT_name main DW_FORM_string}
- {MACRO_AT_func {main}}
- {DW_AT_type :$int4_type}
- {DW_AT_decl_file 1 data1}
- {DW_AT_decl_line 29 data1}
+ DW_AT_external 1 flag
+ DW_AT_name main DW_FORM_string
+ MACRO_AT_func {main}
+ DW_AT_type :$int4_type
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line 29 data1
}
}
}
@@ -182,12 +182,12 @@ Dwarf::assemble $asm_file_2 {
# The information that will remain in the .o file.
cu {} {
compile_unit {
- {DW_AT_GNU_dwo_name ${binfile}-2-dw.dwo DW_FORM_strp}
- {DW_AT_comp_dir ${objdir}}
- {DW_AT_GNU_dwo_id 0x4567 DW_FORM_data8}
- {DW_AT_GNU_addr_base $debug_addr_lbl}
- {stmt_list $lines_table DW_FORM_sec_offset}
- } {
+ DW_AT_GNU_dwo_name ${binfile}-2-dw.dwo DW_FORM_strp
+ DW_AT_comp_dir ${objdir}
+ DW_AT_GNU_dwo_id 0x4567 DW_FORM_data8
+ DW_AT_GNU_addr_base $debug_addr_lbl
+ DW_AT_stmt_list $lines_table DW_FORM_sec_offset
+ } {
# Nothing.
}
}
@@ -203,7 +203,7 @@ if [build_executable_and_dwo_files "$testfile.exp" "${binfile}" {nodebug} \
return -1
}
-clean_restart $binfile
+clean_restart $::testfile
if ![runto_main] {
return -1
diff --git a/gdb/testsuite/gdb.dwarf2/fission-relative-dwo.exp b/gdb/testsuite/gdb.dwarf2/fission-relative-dwo.exp
index 5590156..e605aef 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-relative-dwo.exp
+++ b/gdb/testsuite/gdb.dwarf2/fission-relative-dwo.exp
@@ -37,53 +37,53 @@ Dwarf::assemble $asm_file {
set debug_addr_base [debug_addr_label]
compile_unit {
- {language @DW_LANG_C}
- {name ${srcfile}}
- {DW_AT_comp_dir .}
- {DW_AT_GNU_dwo_id 0x1234 DW_FORM_data8}
- } {
+ DW_AT_language @DW_LANG_C
+ DW_AT_name ${srcfile}
+ DW_AT_comp_dir .
+ DW_AT_GNU_dwo_id 0x1234 DW_FORM_data8
+ } {
declare_labels int4_type struct_type
int4_type: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
struct_type: DW_TAG_structure_type {
- {DW_AT_name "foo_t"}
- {DW_AT_byte_size 12 DW_FORM_sdata}
+ DW_AT_name "foo_t"
+ DW_AT_byte_size 12 DW_FORM_sdata
} {
member {
- {name "aa"}
- {type :$int4_type}
- {data_member_location 0 data1}
+ DW_AT_name "aa"
+ DW_AT_type :$int4_type
+ DW_AT_data_member_location 0 data1
}
member {
- {name "bb"}
- {type :$int4_type}
- {data_member_location 4 data1}
+ DW_AT_name "bb"
+ DW_AT_type :$int4_type
+ DW_AT_data_member_location 4 data1
}
member {
- {name "cc"}
- {type :$int4_type}
- {data_member_location 8 data1}
+ DW_AT_name "cc"
+ DW_AT_type :$int4_type
+ DW_AT_data_member_location 8 data1
}
}
DW_TAG_variable {
- {DW_AT_name global_var}
- {DW_AT_type :$struct_type}
- {DW_AT_location {
+ DW_AT_name global_var
+ DW_AT_type :$struct_type
+ DW_AT_location [subst {
DW_OP_GNU_addr_index [gdb_target_symbol global_var]
- } SPECIAL_expr}
- {external 1 flag}
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
}
subprogram {
- {external 1 flag}
- {DW_AT_name main DW_FORM_string}
- {MACRO_AT_func {main}}
+ DW_AT_external 1 flag
+ DW_AT_name main DW_FORM_string
+ MACRO_AT_func {main}
}
}
}
@@ -91,11 +91,11 @@ Dwarf::assemble $asm_file {
# The information that will remain in the .o file.
cu {} {
compile_unit {
- {DW_AT_GNU_dwo_name ${gdb_test_file_name}.dwo DW_FORM_strp}
- {DW_AT_comp_dir .}
- {DW_AT_GNU_dwo_id 0x1234 DW_FORM_data8}
- {DW_AT_GNU_addr_base $debug_addr_base}
- } {
+ DW_AT_GNU_dwo_name ${gdb_test_file_name}.dwo DW_FORM_strp
+ DW_AT_comp_dir .
+ DW_AT_GNU_dwo_id 0x1234 DW_FORM_data8
+ DW_AT_GNU_addr_base $debug_addr_base
+ } {
# Nothing.
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/fission-reread.exp b/gdb/testsuite/gdb.dwarf2/fission-reread.exp
index 6821747..238afb1 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-reread.exp
+++ b/gdb/testsuite/gdb.dwarf2/fission-reread.exp
@@ -62,7 +62,7 @@ pass "$testfile - unload"
remote_file target delete $dwo
save_vars { GDBFLAGS } {
append GDBFLAGS " -iex \"maint set dwarf synchronous on\""
- clean_restart $binfile
+ clean_restart $::testfile
}
set output_dir [standard_output_file ""]
set cmd "save gdb-index"
diff --git a/gdb/testsuite/gdb.dwarf2/fission-with-type-unit.exp b/gdb/testsuite/gdb.dwarf2/fission-with-type-unit.exp
index 0a02f7c..58cda29 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-with-type-unit.exp
+++ b/gdb/testsuite/gdb.dwarf2/fission-with-type-unit.exp
@@ -33,7 +33,7 @@ Dwarf::assemble $main_asm_file {
dwo_id 0xF00D
} {
compile_unit {
- {DW_AT_dwo_name ${::gdb_test_file_name}.dwo DW_FORM_strp}
+ DW_AT_dwo_name ${::gdb_test_file_name}.dwo DW_FORM_strp
} {}
}
}
@@ -46,9 +46,9 @@ Dwarf::assemble $dwo_asm_file {
} 0xCAFE "the_type" {
type_unit {} {
the_type: base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name int}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
}
}
@@ -62,18 +62,18 @@ Dwarf::assemble $dwo_asm_file {
declare_labels int4_type
int4_type: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name int}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
DW_TAG_variable {
- {DW_AT_name global_var}
- {DW_AT_type :$int4_type}
- {DW_AT_location {
+ DW_AT_name global_var
+ DW_AT_type :$int4_type
+ DW_AT_location {
DW_OP_const1u 12
DW_OP_stack_value
- } SPECIAL_expr}
+ } SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/formdata16.exp b/gdb/testsuite/gdb.dwarf2/formdata16.exp
index 70c7cc4..c08183e 100644
--- a/gdb/testsuite/gdb.dwarf2/formdata16.exp
+++ b/gdb/testsuite/gdb.dwarf2/formdata16.exp
@@ -50,33 +50,33 @@ Dwarf::assemble $asm_file {
declare_labels int_label sint_label
int_label: DW_TAG_base_type {
- {DW_AT_byte_size 16 DW_FORM_udata}
- {DW_AT_encoding @DW_ATE_unsigned}
- {DW_AT_name "__uint128"}
+ DW_AT_byte_size 16 DW_FORM_udata
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_name "__uint128"
}
sint_label: DW_TAG_base_type {
- {DW_AT_byte_size 16 DW_FORM_udata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name "__int128"}
+ DW_AT_byte_size 16 DW_FORM_udata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name "__int128"
}
DW_TAG_variable {
- {name xxx}
- {type :$int_label}
- {const_value $pair DW_FORM_data16}
+ DW_AT_name xxx
+ DW_AT_type :$int_label
+ DW_AT_const_value $pair DW_FORM_data16
}
DW_TAG_variable {
- {name yyy}
- {type :$int_label}
- {const_value $pair2 DW_FORM_data16}
+ DW_AT_name yyy
+ DW_AT_type :$int_label
+ DW_AT_const_value $pair2 DW_FORM_data16
}
DW_TAG_variable {
- {name sss}
- {type :$sint_label}
- {const_value $negative DW_FORM_data16}
+ DW_AT_name sss
+ DW_AT_type :$sint_label
+ DW_AT_const_value $negative DW_FORM_data16
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/fortran-var-string.exp b/gdb/testsuite/gdb.dwarf2/fortran-var-string.exp
index e4a1270..b751900 100644
--- a/gdb/testsuite/gdb.dwarf2/fortran-var-string.exp
+++ b/gdb/testsuite/gdb.dwarf2/fortran-var-string.exp
@@ -40,92 +40,92 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_Fortran90}
- {DW_AT_name fortran-var-string.f90}
- {DW_AT_comp_dir /tmp}
- } {
+ DW_AT_language @DW_LANG_Fortran90
+ DW_AT_name fortran-var-string.f90
+ DW_AT_comp_dir /tmp
+ } {
declare_labels integer_label string_label array_lb_label \
array_ub_label
DW_TAG_subprogram {
- {name main}
- {low_pc $main_helper_start addr}
- {high_pc $main_helper_len data8}
- {DW_AT_type :$integer_label}
- {DW_AT_decl_file 1 data1}
- {DW_AT_decl_line 1 data1}
+ DW_AT_name main
+ DW_AT_low_pc $main_helper_start addr
+ DW_AT_high_pc $main_helper_len data8
+ DW_AT_type :$integer_label
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line 1 data1
}
DW_TAG_subprogram {
- {name test_1_func}
- {low_pc $main_start addr}
- {high_pc $main_len data8}
- {DW_AT_type :$integer_label}
- {DW_AT_decl_file 1 data1}
- {DW_AT_decl_line 2 data1}
+ DW_AT_name test_1_func
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc $main_len data8
+ DW_AT_type :$integer_label
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line 2 data1
} {
formal_parameter {
- {name arg1}
- {type :$string_label}
+ DW_AT_name arg1
+ DW_AT_type :$string_label
}
}
DW_TAG_subprogram {
- {name test_2_func}
- {low_pc $main_start addr}
- {high_pc $main_len data8}
- {DW_AT_type :$integer_label}
- {DW_AT_decl_file 1 data1}
- {DW_AT_decl_line 3 data1}
+ DW_AT_name test_2_func
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc $main_len data8
+ DW_AT_type :$integer_label
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line 3 data1
} {
formal_parameter {
- {name arg1}
- {type :$array_ub_label}
+ DW_AT_name arg1
+ DW_AT_type :$array_ub_label
}
}
DW_TAG_subprogram {
- {name test_3_func}
- {low_pc $main_start addr}
- {high_pc $main_len data8}
- {DW_AT_type :$integer_label}
- {DW_AT_decl_file 1 data1}
- {DW_AT_decl_line 4 data1}
+ DW_AT_name test_3_func
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc $main_len data8
+ DW_AT_type :$integer_label
+ DW_AT_decl_file 1 data1
+ DW_AT_decl_line 4 data1
} {
formal_parameter {
- {name arg1}
- {type :$array_lb_label}
+ DW_AT_name arg1
+ DW_AT_type :$array_lb_label
}
}
integer_label: DW_TAG_base_type {
- {DW_AT_byte_size $int_size DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size $int_size DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
string_label: DW_TAG_string_type {
- {DW_AT_byte_size $int_size DW_FORM_sdata}
- {DW_AT_name .str.arg}
- {DW_AT_string_length {} DW_FORM_block1}
+ DW_AT_byte_size $int_size DW_FORM_sdata
+ DW_AT_name .str.arg
+ DW_AT_string_length {} DW_FORM_block1
}
array_lb_label: DW_TAG_array_type {
- {DW_AT_ordering 1 data1}
- {DW_AT_type :$integer_label}
+ DW_AT_ordering 1 data1
+ DW_AT_type :$integer_label
} {
DW_TAG_subrange_type {
- {DW_AT_lower_bound {} DW_FORM_block1}
- {DW_AT_upper_bound 10 DW_FORM_data1}
+ DW_AT_lower_bound {} DW_FORM_block1
+ DW_AT_upper_bound 10 DW_FORM_data1
}
}
array_ub_label: DW_TAG_array_type {
- {DW_AT_ordering 1 data1}
- {DW_AT_type :$integer_label}
+ DW_AT_ordering 1 data1
+ DW_AT_type :$integer_label
} {
DW_TAG_subrange_type {
- {DW_AT_upper_bound {} DW_FORM_block1}
+ DW_AT_upper_bound {} DW_FORM_block1
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/forward-spec-inter-cu.exp b/gdb/testsuite/gdb.dwarf2/forward-spec-inter-cu.exp
index e92e582..7d55f73 100644
--- a/gdb/testsuite/gdb.dwarf2/forward-spec-inter-cu.exp
+++ b/gdb/testsuite/gdb.dwarf2/forward-spec-inter-cu.exp
@@ -20,6 +20,7 @@ load_lib dwarf.exp
# This test can only be run on targets which support DWARF-2 and use gas.
require dwarf2_support
+require !readnow
standard_testfile main.c -debug.S
@@ -32,40 +33,40 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
+ DW_AT_language @DW_LANG_C_plus_plus
} {
# The new indexer has special code to compute the full
# name of an object that uses a specification that appears
# later in the DWARF.
DW_TAG_variable {
- {DW_AT_specification %$spec}
- {DW_AT_location {
+ DW_AT_specification %$spec
+ DW_AT_location {
DW_OP_const1u 23
DW_OP_stack_value
- } SPECIAL_expr}
+ } SPECIAL_expr
}
}
}
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
+ DW_AT_language @DW_LANG_C_plus_plus
} {
declare_labels myint
myint: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name myint}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name myint
}
DW_TAG_namespace {
- {DW_AT_name ns}
+ DW_AT_name ns
} {
spec: DW_TAG_variable {
- {DW_AT_name v}
- {DW_AT_type :$myint}
- {DW_AT_declaration 1 DW_FORM_flag_present}
+ DW_AT_name v
+ DW_AT_type :$myint
+ DW_AT_declaration 1 DW_FORM_flag_present
}
}
}
@@ -98,6 +99,11 @@ foreach_with_prefix worker_threads $worker_threads_list {
gdb_load $binfile
+ set index [have_index $binfile]
+ if { ![string eq $index ""] } {
+ return
+ }
+
gdb_test "pipe maint print objfiles | grep ns::v" \
"$ws+qualified:$ws+ns::v" \
"v has parent ns"
diff --git a/gdb/testsuite/gdb.dwarf2/forward-spec.exp b/gdb/testsuite/gdb.dwarf2/forward-spec.exp
index 6c38be8..e534da2 100644
--- a/gdb/testsuite/gdb.dwarf2/forward-spec.exp
+++ b/gdb/testsuite/gdb.dwarf2/forward-spec.exp
@@ -32,9 +32,9 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
+ DW_AT_language @DW_LANG_C_plus_plus
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
} {
declare_labels spec myint
@@ -43,26 +43,26 @@ Dwarf::assemble $asm_file {
# name of an object that uses a specification that appears
# later in the DWARF.
DW_TAG_variable {
- {DW_AT_specification :$spec}
- {DW_AT_location {
+ DW_AT_specification :$spec
+ DW_AT_location {
DW_OP_const1u 23
DW_OP_stack_value
- } SPECIAL_expr}
+ } SPECIAL_expr
}
myint: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name myint}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name myint
}
DW_TAG_namespace {
- {DW_AT_name ns}
+ DW_AT_name ns
} {
spec: DW_TAG_variable {
- {DW_AT_name v}
- {DW_AT_type :$myint}
- {DW_AT_declaration 1 DW_FORM_flag_present}
+ DW_AT_name v
+ DW_AT_type :$myint
+ DW_AT_declaration 1 DW_FORM_flag_present
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/frame-inlined-in-outer-frame.exp b/gdb/testsuite/gdb.dwarf2/frame-inlined-in-outer-frame.exp
index ef7cf92..ad19ce7 100644
--- a/gdb/testsuite/gdb.dwarf2/frame-inlined-in-outer-frame.exp
+++ b/gdb/testsuite/gdb.dwarf2/frame-inlined-in-outer-frame.exp
@@ -46,44 +46,44 @@ Dwarf::assemble $dwarf_asm {
cu { label cu_label addr_size 4 } {
DW_TAG_compile_unit {
- {DW_AT_name $srcfile}
- {DW_AT_stmt_list $stmt_list DW_FORM_sec_offset}
- {DW_AT_language @DW_LANG_C99}
- {DW_AT_low_pc __cu_low_pc DW_FORM_addr}
- {DW_AT_high_pc __cu_high_pc DW_FORM_addr}
+ DW_AT_name $srcfile
+ DW_AT_stmt_list $stmt_list DW_FORM_sec_offset
+ DW_AT_language @DW_LANG_C99
+ DW_AT_low_pc __cu_low_pc DW_FORM_addr
+ DW_AT_high_pc __cu_high_pc DW_FORM_addr
} {
DW_TAG_subprogram {
- {DW_AT_name "_start"}
- {DW_AT_low_pc __start_low_pc DW_FORM_addr}
- {DW_AT_high_pc __start_high_pc DW_FORM_addr}
+ DW_AT_name "_start"
+ DW_AT_low_pc __start_low_pc DW_FORM_addr
+ DW_AT_high_pc __start_high_pc DW_FORM_addr
} {
DW_TAG_inlined_subroutine {
- {DW_AT_abstract_origin :$foo_subprogram}
- {DW_AT_low_pc __foo_low_pc DW_FORM_addr}
- {DW_AT_high_pc __foo_high_pc DW_FORM_addr}
- {DW_AT_call_file 1 DW_FORM_data1}
- {DW_AT_call_line 13 DW_FORM_data1}
+ DW_AT_abstract_origin :$foo_subprogram
+ DW_AT_low_pc __foo_low_pc DW_FORM_addr
+ DW_AT_high_pc __foo_high_pc DW_FORM_addr
+ DW_AT_call_file 1 DW_FORM_data1
+ DW_AT_call_line 13 DW_FORM_data1
} {
DW_TAG_inlined_subroutine {
- {DW_AT_abstract_origin :$bar_subprogram}
- {DW_AT_low_pc __bar_low_pc DW_FORM_addr}
- {DW_AT_high_pc __bar_high_pc DW_FORM_addr}
- {DW_AT_call_file 1 DW_FORM_data1}
- {DW_AT_call_line 7 DW_FORM_data1}
+ DW_AT_abstract_origin :$bar_subprogram
+ DW_AT_low_pc __bar_low_pc DW_FORM_addr
+ DW_AT_high_pc __bar_high_pc DW_FORM_addr
+ DW_AT_call_file 1 DW_FORM_data1
+ DW_AT_call_line 7 DW_FORM_data1
}
}
}
foo_subprogram: DW_TAG_subprogram {
- {DW_AT_name "foo"}
- {DW_AT_prototyped 1 DW_FORM_flag_present}
- {DW_AT_inline 0x1 DW_FORM_data1}
+ DW_AT_name "foo"
+ DW_AT_prototyped 1 DW_FORM_flag_present
+ DW_AT_inline 0x1 DW_FORM_data1
}
bar_subprogram: DW_TAG_subprogram {
- {DW_AT_name "bar"}
- {DW_AT_prototyped 1 DW_FORM_flag_present}
- {DW_AT_inline 0x1 DW_FORM_data1}
+ DW_AT_name "bar"
+ DW_AT_prototyped 1 DW_FORM_flag_present
+ DW_AT_inline 0x1 DW_FORM_data1
}
}
}
@@ -106,7 +106,7 @@ if { [build_executable ${testfile}.exp ${testfile} "$srcfile $dwarf_asm" \
return
}
-clean_restart $binfile
+clean_restart $::testfile
if { [gdb_starti_cmd] != 0 } {
fail "failed to run to first instruction"
diff --git a/gdb/testsuite/gdb.dwarf2/gdb-add-index-symlink.exp b/gdb/testsuite/gdb.dwarf2/gdb-add-index-symlink.exp
index cd05925..9233637 100644
--- a/gdb/testsuite/gdb.dwarf2/gdb-add-index-symlink.exp
+++ b/gdb/testsuite/gdb.dwarf2/gdb-add-index-symlink.exp
@@ -56,7 +56,8 @@ if { [ensure_gdb_index $symlink] == -1 } {
# Ok, we have a copy of $binfile with an index.
# Restart gdb and verify the index was used.
-clean_restart $symlink
+clean_restart
+gdb_load $symlink
gdb_test "mt print objfiles ${testfile}" \
"(gdb_index|debug_names).*" \
"index used"
diff --git a/gdb/testsuite/gdb.dwarf2/gdb-add-index.exp b/gdb/testsuite/gdb.dwarf2/gdb-add-index.exp
index 3285d1c..0fbd3a2 100644
--- a/gdb/testsuite/gdb.dwarf2/gdb-add-index.exp
+++ b/gdb/testsuite/gdb.dwarf2/gdb-add-index.exp
@@ -33,7 +33,7 @@ if { [ensure_gdb_index $binfile] == -1 } {
# Ok, we have a copy of $binfile with an index.
# Restart gdb and verify the index was used.
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_test "mt print objfiles ${testfile}" \
"(gdb_index|debug_names).*" \
"index used"
diff --git a/gdb/testsuite/gdb.dwarf2/gdb-index-tilde.exp b/gdb/testsuite/gdb.dwarf2/gdb-index-tilde.exp
index c0d5225..a8c5c39 100644
--- a/gdb/testsuite/gdb.dwarf2/gdb-index-tilde.exp
+++ b/gdb/testsuite/gdb.dwarf2/gdb-index-tilde.exp
@@ -47,7 +47,7 @@ if { [prepare_for_testing "failed to prepare" "${testfile}" ${srcfile}] } {
}
# Start GDB and load in the executable.
-clean_restart ${binfile}
+clean_restart ${::testfile}
# If the executable was built with an index, or lacks the debug
# information required to create an index, then we'll not be able to
diff --git a/gdb/testsuite/gdb.dwarf2/gdb-index-types-dwarf5.exp b/gdb/testsuite/gdb.dwarf2/gdb-index-types-dwarf5.exp
index d6f5e48..a47d73a 100644
--- a/gdb/testsuite/gdb.dwarf2/gdb-index-types-dwarf5.exp
+++ b/gdb/testsuite/gdb.dwarf2/gdb-index-types-dwarf5.exp
@@ -13,6 +13,10 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# This test checks that .gdb_index is in use, which isn't the case
+# with readnow.
+require !readnow
+
standard_testfile
set flags {}
@@ -29,7 +33,7 @@ if { [ensure_gdb_index $binfile] != 1 } {
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
# Verify that .gdb_index section is not ignored.
set index [have_index $binfile]
diff --git a/gdb/testsuite/gdb.dwarf2/gdb-index.exp b/gdb/testsuite/gdb.dwarf2/gdb-index.exp
index ebeb62b..f7c3337 100644
--- a/gdb/testsuite/gdb.dwarf2/gdb-index.exp
+++ b/gdb/testsuite/gdb.dwarf2/gdb-index.exp
@@ -98,20 +98,24 @@ set test "check if index present"
set filter "gdb_index|debug_names|Psymtabs|Cooked"
set cmd "pipe mt print objfiles ${testfile} | grep -E \"$filter\""
set cmd_re [string_to_regexp $cmd]
+set testfile_with_index bla
gdb_test_multiple $cmd $test {
-re ^$cmd_re {
exp_continue
}
-re "gdb_index.*${gdb_prompt} $" {
- set binfile_with_index $binfile
+ set testfile_with_index $testfile
+ set binfile_with_index [standard_output_file $testfile_with_index]
set host_binfile_with_index [gdb_remote_download host $binfile]
}
-re "debug_names.*${gdb_prompt} $" {
- set binfile_with_index $binfile
+ set testfile_with_index $testfile
+ set binfile_with_index [standard_output_file $testfile_with_index]
set host_binfile_with_index [gdb_remote_download host $binfile]
}
-re "(Psymtabs|Cooked).*${gdb_prompt} $" {
lassign [local_add_gdb_index $binfile] binfile_with_index host_binfile_with_index
+ set testfile_with_index [file tail $binfile_with_index]
if { ${binfile_with_index} == "" } {
return -1
}
@@ -124,7 +128,7 @@ gdb_test_multiple $cmd $test {
# Ok, we have a copy of $binfile with an index.
# Restart gdb and verify the index was used.
-clean_restart ${binfile_with_index}
+clean_restart $testfile_with_index
gdb_test "mt print objfiles ${testfile}" \
"(gdb_index|debug_names).*" \
"index used"
diff --git a/gdb/testsuite/gdb.dwarf2/implptr-64bit.exp b/gdb/testsuite/gdb.dwarf2/implptr-64bit.exp
index c4496f1..be3a648 100644
--- a/gdb/testsuite/gdb.dwarf2/implptr-64bit.exp
+++ b/gdb/testsuite/gdb.dwarf2/implptr-64bit.exp
@@ -39,54 +39,54 @@ proc test_1 { name dwarf_version offset_size addr_size ref_addr_size two_cu } {
is_64 $is_64
} {
compile_unit {
- { producer "GNU C 4.4.3" }
- { language @DW_LANG_C89 }
- { name 1.c }
+ DW_AT_producer "GNU C 4.4.3"
+ DW_AT_language @DW_LANG_C89
+ DW_AT_name 1.c
} {
declare_labels struct_label variable_label int_label pointer_label
int_label: base_type {
- { byte_size 4 DW_FORM_sdata }
- { DW_AT_encoding @DW_ATE_signed }
- { name int }
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
struct_label: structure_type {
- { name s }
- { byte_size 4 sdata }
+ DW_AT_name s
+ DW_AT_byte_size 4 sdata
} {
member {
- { name f }
- { type :$int_label }
- { data_member_location 0 data1 }
+ DW_AT_name f
+ DW_AT_type :$int_label
+ DW_AT_data_member_location 0 data1
}
}
pointer_label: pointer_type {
- { byte_size $Dwarf::_cu_addr_size sdata }
- { type :$struct_label }
+ DW_AT_byte_size $Dwarf::_cu_addr_size sdata
+ DW_AT_type :$struct_label
}
variable_label: DW_TAG_variable {
- { name v }
- { location {
+ DW_AT_name v
+ DW_AT_location {
DW_OP_implicit_value 0x1 0x1 0x1 0x1
- } SPECIAL_expr}
- { type :$struct_label "DW_FORM_ref$ref_addr_size" }
+ } SPECIAL_expr
+ DW_AT_type :$struct_label "DW_FORM_ref$ref_addr_size"
}
if { !$two_cu } {
subprogram {
- {MACRO_AT_func {main}}
- { type :$int_label }
- { external 1 flag }
+ MACRO_AT_func {main}
+ DW_AT_type :$int_label
+ DW_AT_external 1 flag
} {
DW_TAG_variable {
- { name p }
- { location {
+ DW_AT_name p
+ DW_AT_location [subst {
GNU_implicit_pointer $variable_label 0
- } SPECIAL_expr }
- { type :$pointer_label "DW_FORM_ref$ref_addr_size" }
+ }] SPECIAL_expr
+ DW_AT_type :$pointer_label "DW_FORM_ref$ref_addr_size"
}
}
}
@@ -100,21 +100,21 @@ proc test_1 { name dwarf_version offset_size addr_size ref_addr_size two_cu } {
is_64 $is_64
} {
compile_unit {
- { producer "GNU C 4.4.3" }
- { language @DW_LANG_C89 }
- { name 1.c }
+ DW_AT_producer "GNU C 4.4.3"
+ DW_AT_language @DW_LANG_C89
+ DW_AT_name 1.c
} {
subprogram {
- { MACRO_AT_func {main} }
- { type %$int_label }
- { external 1 flag }
+ MACRO_AT_func {main}
+ DW_AT_type %$int_label
+ DW_AT_external 1 flag
} {
DW_TAG_variable {
- { name p }
- { location {
+ DW_AT_name p
+ DW_AT_location [subst {
GNU_implicit_pointer $variable_label 0
- } SPECIAL_expr }
- { type %$pointer_label }
+ }] SPECIAL_expr
+ DW_AT_type %$pointer_label
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp b/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp
index 79fcf61..7feb983 100644
--- a/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp
+++ b/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp
@@ -25,51 +25,51 @@ set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu { version 3 addr_size 4 } {
compile_unit {
- {producer "GNU C 4.4.3"}
- {language @DW_LANG_C89}
- {name 1.c}
+ DW_AT_producer "GNU C 4.4.3"
+ DW_AT_language @DW_LANG_C89
+ DW_AT_name 1.c
} {
declare_labels int_label struct_label pointer_label variable_label
int_label: base_type {
- {byte_size 4 sdata}
- {encoding @DW_ATE_signed}
- {name int}
+ DW_AT_byte_size 4 sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
struct_label: structure_type {
- {name s}
- {byte_size 4 sdata}
+ DW_AT_name s
+ DW_AT_byte_size 4 sdata
} {
member {
- {name f}
- {type :$int_label}
- {data_member_location 0 data1}
+ DW_AT_name f
+ DW_AT_type :$int_label
+ DW_AT_data_member_location 0 data1
}
}
subprogram {
- {MACRO_AT_func { main }}
- {type :$int_label}
- {external 1 flag}
+ MACRO_AT_func { main }
+ DW_AT_type :$int_label
+ DW_AT_external 1 flag
} {
pointer_label: pointer_type {
- {byte_size 4 sdata}
- {type :$struct_label}
+ DW_AT_byte_size 4 sdata
+ DW_AT_type :$struct_label
}
variable_label: DW_TAG_variable {
- {name v}
- {location {} DW_FORM_block1}
- {type :$struct_label}
+ DW_AT_name v
+ DW_AT_location {} DW_FORM_block1
+ DW_AT_type :$struct_label
}
DW_TAG_variable {
- {name p}
- {location {
+ DW_AT_name p
+ DW_AT_location [subst {
GNU_implicit_pointer $variable_label 0
- } SPECIAL_expr}
- {type :$pointer_label}
+ }] SPECIAL_expr
+ DW_AT_type :$pointer_label
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/implptrconst.exp b/gdb/testsuite/gdb.dwarf2/implptrconst.exp
index f3d47a2..8e735ca 100644
--- a/gdb/testsuite/gdb.dwarf2/implptrconst.exp
+++ b/gdb/testsuite/gdb.dwarf2/implptrconst.exp
@@ -33,51 +33,51 @@ Dwarf::assemble $asm_file {
declare_labels var_label ptr_label
byte_label: base_type {
- {name byte}
- {encoding @DW_ATE_signed}
- {byte_size 1 DW_FORM_sdata}
+ DW_AT_name byte
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 1 DW_FORM_sdata
}
size_type_label: base_type {
- {name sizetype}
- {encoding @DW_ATE_unsigned}
- {byte_size 4 DW_FORM_sdata}
+ DW_AT_name sizetype
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_byte_size 4 DW_FORM_sdata
}
array_label: array_type {
- {type :$byte_label}
+ DW_AT_type :$byte_label
} {
subrange_type {
- {type :$size_type_label}
- {upper_bound 7 DW_FORM_data1}
+ DW_AT_type :$size_type_label
+ DW_AT_upper_bound 7 DW_FORM_data1
}
}
var_label: DW_TAG_variable {
- {name b}
- {type :$array_label}
- {const_value rstuvwxy DW_FORM_block1}
+ DW_AT_name b
+ DW_AT_type :$array_label
+ DW_AT_const_value rstuvwxy DW_FORM_block1
}
ptr_label: pointer_type {
- {byte_size 4 DW_FORM_sdata}
- {type :$byte_label}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_type :$byte_label
}
DW_TAG_variable {
- {name c}
- {type :$ptr_label}
- {location {
+ DW_AT_name c
+ DW_AT_type :$ptr_label
+ DW_AT_location [subst {
GNU_implicit_pointer $var_label 0
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
DW_TAG_variable {
- {name d}
- {type :$ptr_label}
- {location {
+ DW_AT_name d
+ DW_AT_type :$ptr_label
+ DW_AT_location [subst {
GNU_implicit_pointer $var_label 2
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/implptrpiece.exp b/gdb/testsuite/gdb.dwarf2/implptrpiece.exp
index 9654483..58c5e66 100644
--- a/gdb/testsuite/gdb.dwarf2/implptrpiece.exp
+++ b/gdb/testsuite/gdb.dwarf2/implptrpiece.exp
@@ -36,48 +36,48 @@ Dwarf::assemble $asm_file {
declare_labels var_label
struct_label: structure_type {
- {name S}
- {byte_size 4 DW_FORM_sdata}
+ DW_AT_name S
+ DW_AT_byte_size 4 DW_FORM_sdata
} {
member {
- {name a}
- {type :$short_type_label}
- {data_member_location 0 DW_FORM_sdata}
+ DW_AT_name a
+ DW_AT_type :$short_type_label
+ DW_AT_data_member_location 0 DW_FORM_sdata
}
member {
- {name b}
- {type :$char_type_label}
- {data_member_location 2 DW_FORM_sdata}
+ DW_AT_name b
+ DW_AT_type :$char_type_label
+ DW_AT_data_member_location 2 DW_FORM_sdata
}
member {
- {name c}
- {type :$char_type_label}
- {data_member_location 3 DW_FORM_sdata}
+ DW_AT_name c
+ DW_AT_type :$char_type_label
+ DW_AT_data_member_location 3 DW_FORM_sdata
}
}
short_type_label: base_type {
- {name "short int"}
- {encoding @DW_ATE_signed}
- {byte_size 2 DW_FORM_sdata}
+ DW_AT_name "short int"
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 2 DW_FORM_sdata
}
char_type_label: base_type {
- {name "signed char"}
- {encoding @DW_ATE_signed}
- {byte_size 1 DW_FORM_sdata}
+ DW_AT_name "signed char"
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 1 DW_FORM_sdata
}
# See comment above to understand the pointer size.
ptr_label: pointer_type {
- {byte_size 2 DW_FORM_sdata}
- {type :$char_type_label}
+ DW_AT_byte_size 2 DW_FORM_sdata
+ DW_AT_type :$char_type_label
}
var_label: DW_TAG_variable {
- {name s}
- {type :$struct_label}
- {location {
+ DW_AT_name s
+ DW_AT_type :$struct_label
+ DW_AT_location {
const2u 0x5678
stack_value
piece 2
@@ -87,15 +87,15 @@ Dwarf::assemble $asm_file {
const1u 3
stack_value
piece 1
- } SPECIAL_expr}
+ } SPECIAL_expr
}
DW_TAG_variable {
- {name p}
- {type :$ptr_label}
- {location {
+ DW_AT_name p
+ DW_AT_type :$ptr_label
+ DW_AT_location [subst {
GNU_implicit_pointer $var_label 2
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/implref-array.exp b/gdb/testsuite/gdb.dwarf2/implref-array.exp
index 4f7bb4b..1236537 100644
--- a/gdb/testsuite/gdb.dwarf2/implref-array.exp
+++ b/gdb/testsuite/gdb.dwarf2/implref-array.exp
@@ -51,7 +51,7 @@ Dwarf::assemble ${asm_file} {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
+ DW_AT_language @DW_LANG_C_plus_plus
} {
declare_labels int_label sizetype_label array_label variable_label ref_label
set int_size [get_sizeof "int" -1]
@@ -61,48 +61,52 @@ Dwarf::assemble ${asm_file} {
set addr_size [get_sizeof "void *" -1]
int_label: DW_TAG_base_type {
- {DW_AT_byte_size ${int_size} DW_FORM_udata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name "int"}
+ DW_AT_byte_size ${int_size} DW_FORM_udata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name "int"
}
sizetype_label: DW_TAG_base_type {
- {DW_AT_byte_size ${int_size} DW_FORM_udata}
- {DW_AT_encoding @DW_ATE_unsigned}
- {DW_AT_name "sizetype"}
+ DW_AT_byte_size ${int_size} DW_FORM_udata
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_name "sizetype"
}
array_label: DW_TAG_array_type {
- {DW_AT_type :${int_label}}
+ DW_AT_type :${int_label}
} {
DW_TAG_subrange_type {
- {DW_AT_type :${sizetype_label}}
- {DW_AT_lower_bound 0 DW_FORM_udata}
- {DW_AT_upper_bound ${upper_bound} DW_FORM_udata}
+ DW_AT_type :${sizetype_label}
+ DW_AT_lower_bound 0 DW_FORM_udata
+ DW_AT_upper_bound ${upper_bound} DW_FORM_udata
}
}
ref_label: DW_TAG_reference_type {
- {DW_AT_byte_size ${addr_size} DW_FORM_udata}
- {DW_AT_type :${array_label}}
+ DW_AT_byte_size ${addr_size} DW_FORM_udata
+ DW_AT_type :${array_label}
}
variable_label: DW_TAG_variable {
- {DW_AT_name "array"}
- {DW_AT_type :${array_label}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "array"]} SPECIAL_expr}
+ DW_AT_name "array"
+ DW_AT_type :${array_label}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "array"]
+ }] SPECIAL_expr
}
DW_TAG_subprogram {
- {MACRO_AT_func { "main" }}
- {DW_AT_type :${int_label}}
- {DW_AT_external 1 DW_FORM_flag}
+ MACRO_AT_func { "main" }
+ DW_AT_type :${int_label}
+ DW_AT_external 1 DW_FORM_flag
} {
DW_TAG_variable {
- {DW_AT_name "ref"}
- {DW_AT_type :${ref_label}}
- {DW_AT_location {DW_OP_GNU_implicit_pointer ${variable_label} 0} SPECIAL_expr}
+ DW_AT_name "ref"
+ DW_AT_type :${ref_label}
+ DW_AT_location [subst {
+ DW_OP_GNU_implicit_pointer ${variable_label} 0
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/implref-const.exp b/gdb/testsuite/gdb.dwarf2/implref-const.exp
index 57ccfcd..ec19eed 100644
--- a/gdb/testsuite/gdb.dwarf2/implref-const.exp
+++ b/gdb/testsuite/gdb.dwarf2/implref-const.exp
@@ -45,7 +45,7 @@ if [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] {
Dwarf::assemble ${asm_file} {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
+ DW_AT_language @DW_LANG_C_plus_plus
} {
declare_labels int_label const_label variable_label ref_label
set int_size [get_sizeof "int" -1]
@@ -55,35 +55,37 @@ Dwarf::assemble ${asm_file} {
set var_value 42
int_label: DW_TAG_base_type {
- {DW_AT_byte_size ${int_size} DW_FORM_udata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name "int"}
+ DW_AT_byte_size ${int_size} DW_FORM_udata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name "int"
}
ref_label: DW_TAG_reference_type {
- {DW_AT_byte_size ${addr_size} DW_FORM_udata}
- {DW_AT_type :${int_label}}
+ DW_AT_byte_size ${addr_size} DW_FORM_udata
+ DW_AT_type :${int_label}
}
const_label: DW_TAG_const_type {
- {DW_AT_type :${ref_label}}
+ DW_AT_type :${ref_label}
}
DW_TAG_subprogram {
- {MACRO_AT_func { "main" }}
- {DW_AT_type :${int_label}}
- {DW_AT_external 1 DW_FORM_flag}
+ MACRO_AT_func { "main" }
+ DW_AT_type :${int_label}
+ DW_AT_external 1 DW_FORM_flag
} {
variable_label: DW_TAG_variable {
- {DW_AT_name "var"}
- {DW_AT_type :${int_label}}
- {DW_AT_const_value ${var_value} DW_FORM_udata}
+ DW_AT_name "var"
+ DW_AT_type :${int_label}
+ DW_AT_const_value ${var_value} DW_FORM_udata
}
DW_TAG_variable {
- {DW_AT_name "ref"}
- {DW_AT_type :${const_label}}
- {DW_AT_location {DW_OP_GNU_implicit_pointer ${variable_label} 0} SPECIAL_expr}
+ DW_AT_name "ref"
+ DW_AT_type :${const_label}
+ DW_AT_location [subst {
+ DW_OP_GNU_implicit_pointer ${variable_label} 0
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/implref-global.exp b/gdb/testsuite/gdb.dwarf2/implref-global.exp
index 5d9e679..cb885ef 100644
--- a/gdb/testsuite/gdb.dwarf2/implref-global.exp
+++ b/gdb/testsuite/gdb.dwarf2/implref-global.exp
@@ -47,7 +47,7 @@ if [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] {
Dwarf::assemble ${asm_file} {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
+ DW_AT_language @DW_LANG_C_plus_plus
} {
declare_labels int_label variable_label ref_label
set int_size [get_sizeof "int" -1]
@@ -56,32 +56,36 @@ Dwarf::assemble ${asm_file} {
set addr_size [get_sizeof "void *" -1]
int_label: DW_TAG_base_type {
- {DW_AT_byte_size ${int_size} DW_FORM_udata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name "int"}
+ DW_AT_byte_size ${int_size} DW_FORM_udata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name "int"
}
ref_label: DW_TAG_reference_type {
- {DW_AT_byte_size ${addr_size} DW_FORM_udata}
- {DW_AT_type :${int_label}}
+ DW_AT_byte_size ${addr_size} DW_FORM_udata
+ DW_AT_type :${int_label}
}
variable_label: DW_TAG_variable {
- {DW_AT_name "global_var"}
- {DW_AT_type :${int_label}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "global_var"]} SPECIAL_expr}
+ DW_AT_name "global_var"
+ DW_AT_type :${int_label}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "global_var"]
+ }] SPECIAL_expr
}
DW_TAG_subprogram {
- {MACRO_AT_func { "main" }}
- {DW_AT_type :${int_label}}
- {DW_AT_external 1 DW_FORM_flag}
+ MACRO_AT_func { "main" }
+ DW_AT_type :${int_label}
+ DW_AT_external 1 DW_FORM_flag
} {
DW_TAG_variable {
- {DW_AT_name "ref"}
- {DW_AT_type :${ref_label}}
- {DW_AT_location {DW_OP_GNU_implicit_pointer ${variable_label} 0} SPECIAL_expr}
+ DW_AT_name "ref"
+ DW_AT_type :${ref_label}
+ DW_AT_location [subst {
+ DW_OP_GNU_implicit_pointer ${variable_label} 0
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/implref-struct.exp b/gdb/testsuite/gdb.dwarf2/implref-struct.exp
index 1add485..9dc3b1b 100644
--- a/gdb/testsuite/gdb.dwarf2/implref-struct.exp
+++ b/gdb/testsuite/gdb.dwarf2/implref-struct.exp
@@ -47,7 +47,7 @@ if [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} {debug c++}]
Dwarf::assemble ${asm_file} {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
+ DW_AT_language @DW_LANG_C_plus_plus
} {
declare_labels int_label struct_label variable_label ref_label
set int_size [get_sizeof "int" -1]
@@ -61,62 +61,68 @@ Dwarf::assemble ${asm_file} {
set c_offset 8
int_label: DW_TAG_base_type {
- {DW_AT_byte_size ${int_size} DW_FORM_udata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name "int"}
+ DW_AT_byte_size ${int_size} DW_FORM_udata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name "int"
}
struct_label: DW_TAG_structure_type {
- {DW_AT_name "S"}
- {DW_AT_byte_size ${S_size} DW_FORM_udata}
+ DW_AT_name "S"
+ DW_AT_byte_size ${S_size} DW_FORM_udata
} {
DW_TAG_member {
- {DW_AT_name "a"}
- {DW_AT_type :${int_label}}
- {DW_AT_data_member_location 0 DW_FORM_udata}
+ DW_AT_name "a"
+ DW_AT_type :${int_label}
+ DW_AT_data_member_location 0 DW_FORM_udata
}
DW_TAG_member {
- {DW_AT_name "b"}
- {DW_AT_type :${int_label}}
- {DW_AT_data_member_location ${b_offset} DW_FORM_udata}
+ DW_AT_name "b"
+ DW_AT_type :${int_label}
+ DW_AT_data_member_location ${b_offset} DW_FORM_udata
}
DW_TAG_member {
- {DW_AT_name "c"}
- {DW_AT_type :${int_label}}
- {DW_AT_data_member_location ${c_offset} DW_FORM_udata}
+ DW_AT_name "c"
+ DW_AT_type :${int_label}
+ DW_AT_data_member_location ${c_offset} DW_FORM_udata
}
}
ref_label: DW_TAG_reference_type {
- {DW_AT_byte_size ${addr_size} DW_FORM_udata}
- {DW_AT_type :${struct_label}}
+ DW_AT_byte_size ${addr_size} DW_FORM_udata
+ DW_AT_type :${struct_label}
}
variable_label: DW_TAG_variable {
- {DW_AT_name "s1"}
- {DW_AT_type :${struct_label}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "s1"]} SPECIAL_expr}
+ DW_AT_name "s1"
+ DW_AT_type :${struct_label}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "s1"]
+ }] SPECIAL_expr
}
DW_TAG_variable {
- {DW_AT_name "s2"}
- {DW_AT_type :${struct_label}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "s2"]} SPECIAL_expr}
+ DW_AT_name "s2"
+ DW_AT_type :${struct_label}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "s2"]
+ }] SPECIAL_expr
}
DW_TAG_subprogram {
- {MACRO_AT_func { "main" }}
- {DW_AT_type :${int_label}}
- {DW_AT_external 1 DW_FORM_flag}
+ MACRO_AT_func { "main" }
+ DW_AT_type :${int_label}
+ DW_AT_external 1 DW_FORM_flag
} {
DW_TAG_variable {
- {DW_AT_name "ref"}
- {DW_AT_type :${ref_label}}
- {DW_AT_location {DW_OP_GNU_implicit_pointer ${variable_label} 0} SPECIAL_expr}
+ DW_AT_name "ref"
+ DW_AT_type :${ref_label}
+ DW_AT_location [subst {
+ DW_OP_GNU_implicit_pointer ${variable_label} 0
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/imported-unit-abstract-const-value.exp b/gdb/testsuite/gdb.dwarf2/imported-unit-abstract-const-value.exp
index 2517a2a..7141d6b 100644
--- a/gdb/testsuite/gdb.dwarf2/imported-unit-abstract-const-value.exp
+++ b/gdb/testsuite/gdb.dwarf2/imported-unit-abstract-const-value.exp
@@ -40,40 +40,40 @@ Dwarf::assemble $asm_file {
cu {} {
cu_label: partial_unit {
- {language @DW_LANG_C}
- {name "imported_unit.c"}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name "imported_unit.c"
} {
int_label: base_type {
- {byte_size $int_size sdata}
- {encoding @DW_ATE_signed}
- {name int}
+ DW_AT_byte_size $int_size sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
aaa_label: DW_TAG_variable {
- {name aaa}
- {type :$int_label}
- {const_value 1 DW_FORM_sdata}
+ DW_AT_name aaa
+ DW_AT_type :$int_label
+ DW_AT_const_value 1 DW_FORM_sdata
}
main_label: subprogram {
- {name main}
- {type :$int_label}
- {external 1 flag}
+ DW_AT_name main
+ DW_AT_type :$int_label
+ DW_AT_external 1 flag
}
}
}
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name "<artificial>"}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name "<artificial>"
} {
DW_TAG_variable {
- {abstract_origin %$aaa_label}
+ DW_AT_abstract_origin %$aaa_label
}
subprogram {
- {abstract_origin %$main_label}
- {MACRO_AT_range {main}}
+ DW_AT_abstract_origin %$main_label
+ MACRO_AT_range {main}
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/imported-unit-bp.exp.tcl b/gdb/testsuite/gdb.dwarf2/imported-unit-bp.exp.tcl
index 65c3466..de1195a 100644
--- a/gdb/testsuite/gdb.dwarf2/imported-unit-bp.exp.tcl
+++ b/gdb/testsuite/gdb.dwarf2/imported-unit-bp.exp.tcl
@@ -38,34 +38,34 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @$lang}
- {name "<artificial>"}
+ DW_AT_language @$lang
+ DW_AT_name "<artificial>"
} {
imported_unit {
- {import %$cu_label}
+ DW_AT_import %$cu_label
}
}
}
cu {} {
cu_label: compile_unit {
- {producer "gcc"}
- {language @$lang}
- {name ${srcfile}}
- {comp_dir "/tmp"}
- {low_pc 0 addr}
- {stmt_list ${lines_label} DW_FORM_sec_offset}
+ DW_AT_producer "gcc"
+ DW_AT_language @$lang
+ DW_AT_name ${srcfile}
+ DW_AT_comp_dir "/tmp"
+ DW_AT_low_pc 0 addr
+ DW_AT_stmt_list ${lines_label} DW_FORM_sec_offset
} {
callee_subprog_label: subprogram {
- {external 1 flag}
- {name callee}
- {inline 3 data1}
+ DW_AT_external 1 flag
+ DW_AT_name callee
+ DW_AT_inline 3 data1
}
subprogram {
- {external 1 flag}
- {name func}
- {low_pc $func_start addr}
- {high_pc "$func_start + $func_len" addr}
+ DW_AT_external 1 flag
+ DW_AT_name func
+ DW_AT_low_pc $func_start addr
+ DW_AT_high_pc "$func_start + $func_len" addr
} {
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/imported-unit-c.exp b/gdb/testsuite/gdb.dwarf2/imported-unit-c.exp
index 521ccc3..4ccda52 100644
--- a/gdb/testsuite/gdb.dwarf2/imported-unit-c.exp
+++ b/gdb/testsuite/gdb.dwarf2/imported-unit-c.exp
@@ -22,52 +22,52 @@ Dwarf::assemble $asm_file {
# imported CU 1: inty unsigned
cu {} {
cu_label: compile_unit {
- {language @DW_LANG_C}
- {name "<artificial>"}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name "<artificial>"
} {
int_label: base_type {
- {byte_size $int_size sdata}
- {encoding @DW_ATE_unsigned}
- {name {unsigned int}}
+ DW_AT_byte_size $int_size sdata
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_name {unsigned int}
+ }
+ DW_TAG_typedef {
+ DW_AT_name inty
+ DW_AT_type :$int_label
}
- DW_TAG_typedef {
- {DW_AT_name inty}
- {DW_AT_type :$int_label}
- }
}
}
# imported CU 2: inty signed
cu {} {
cu2_label: compile_unit {
- {language @DW_LANG_C}
- {name "<artificial>"}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name "<artificial>"
} {
int2_label: base_type {
- {byte_size $int_size sdata}
- {encoding @DW_ATE_signed}
- {name {int}}
+ DW_AT_byte_size $int_size sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name {int}
+ }
+ DW_TAG_typedef {
+ DW_AT_name inty
+ DW_AT_type :$int2_label
}
- DW_TAG_typedef {
- {DW_AT_name inty}
- {DW_AT_type :$int2_label}
- }
}
}
# main CU
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name "<artificial>"}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name "<artificial>"
} {
imported_unit {
- {import %$cu2_label}
+ DW_AT_import %$cu2_label
}
subprogram {
- {MACRO_AT_func {main}}
- {external 1 flag}
+ MACRO_AT_func {main}
+ DW_AT_external 1 flag
}
}
}
@@ -75,16 +75,16 @@ Dwarf::assemble $asm_file {
# foo CU
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name "<artificial>"}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name "<artificial>"
} {
imported_unit {
- {import %$cu_label}
+ DW_AT_import %$cu_label
}
subprogram {
- {MACRO_AT_func {foo}}
- {external 1 flag}
+ MACRO_AT_func {foo}
+ DW_AT_external 1 flag
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/imported-unit-runto-main.exp b/gdb/testsuite/gdb.dwarf2/imported-unit-runto-main.exp
index c4bacb1..12dc69e 100644
--- a/gdb/testsuite/gdb.dwarf2/imported-unit-runto-main.exp
+++ b/gdb/testsuite/gdb.dwarf2/imported-unit-runto-main.exp
@@ -37,31 +37,31 @@ Dwarf::assemble $asm_file {
cu {} {
cu_label: partial_unit {
- {language @DW_LANG_C}
- {name "imported_unit.c"}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name "imported_unit.c"
} {
int_label: base_type {
- {byte_size $int_size sdata}
- {encoding @DW_ATE_signed}
- {name int}
+ DW_AT_byte_size $int_size sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
main_label: subprogram {
- {name main}
- {type :$int_label}
- {external 1 flag}
+ DW_AT_name main
+ DW_AT_type :$int_label
+ DW_AT_external 1 flag
}
}
}
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name "<artificial>"}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name "<artificial>"
} {
subprogram {
- {abstract_origin %$main_label}
- {MACRO_AT_range {main}}
+ DW_AT_abstract_origin %$main_label
+ MACRO_AT_range {main}
}
}
}
@@ -77,6 +77,6 @@ if { [ensure_gdb_index $binfile] == -1 } {
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
runto main
diff --git a/gdb/testsuite/gdb.dwarf2/imported-unit.exp b/gdb/testsuite/gdb.dwarf2/imported-unit.exp
index e5df67e..2c17f2d 100644
--- a/gdb/testsuite/gdb.dwarf2/imported-unit.exp
+++ b/gdb/testsuite/gdb.dwarf2/imported-unit.exp
@@ -52,27 +52,27 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C_plus_plus}
- {name "<artificial>"}
+ DW_AT_language @DW_LANG_C_plus_plus
+ DW_AT_name "<artificial>"
} {
imported_unit {
- {import %$cu_label}
+ DW_AT_import %$cu_label
}
subprogram {
- {abstract_origin %$main_label}
- {MACRO_AT_range {main}}
+ DW_AT_abstract_origin %$main_label
+ MACRO_AT_range {main}
} {
subprogram {
- {abstract_origin %$doit_label}
- {MACRO_AT_range {doit}}
+ DW_AT_abstract_origin %$doit_label
+ MACRO_AT_range {doit}
} {
formal_parameter {
- {abstract_origin %$doit_self_label}
+ DW_AT_abstract_origin %$doit_self_label
}
}
DW_TAG_variable {
- {abstract_origin %$foo_label}
- {location 4 data1}
+ DW_AT_abstract_origin %$foo_label
+ DW_AT_location 4 data1
}
}
}
@@ -80,43 +80,43 @@ Dwarf::assemble $asm_file {
cu {} {
cu_label: compile_unit {
- {language @DW_LANG_C_plus_plus}
- {name "imported_unit.c"}
+ DW_AT_language @DW_LANG_C_plus_plus
+ DW_AT_name "imported_unit.c"
} {
int_label: base_type {
- {byte_size $int_size sdata}
- {encoding @DW_ATE_signed}
- {name int}
+ DW_AT_byte_size $int_size sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
main_label: subprogram {
- {name main}
- {type :$int_label}
- {external 1 flag}
+ DW_AT_name main
+ DW_AT_type :$int_label
+ DW_AT_external 1 flag
} {
Foo_label: class_type {
- {name Foo}
- {byte_size 1 sdata}
+ DW_AT_name Foo
+ DW_AT_byte_size 1 sdata
} {
doit_label: subprogram {
- {name doit}
- {type :$int_label}
- {accessibility 1 DW_FORM_data1}
+ DW_AT_name doit
+ DW_AT_type :$int_label
+ DW_AT_accessibility 1 DW_FORM_data1
} {
doit_self_label: formal_parameter {
- {name this}
- {artificial 1 DW_FORM_flag_present}
- {type :$Foo_pointer_type}
+ DW_AT_name this
+ DW_AT_artificial 1 DW_FORM_flag_present
+ DW_AT_type :$Foo_pointer_type
}
}
Foo_pointer_type: pointer_type {
- {byte_size $addr_size sdata}
- {type :$Foo_label}
+ DW_AT_byte_size $addr_size sdata
+ DW_AT_type :$Foo_label
}
}
foo_label: DW_TAG_variable {
- {name foo}
- {type :$Foo_label}
+ DW_AT_name foo
+ DW_AT_type :$Foo_label
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.exp b/gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.exp
index 76e20b6..59c9669 100644
--- a/gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.exp
+++ b/gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.exp
@@ -32,31 +32,31 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
} {
declare_labels int_type_label
# int
int_type_label: base_type {
- {name "int"}
- {encoding @DW_ATE_signed}
- {byte_size 4 DW_FORM_sdata}
+ DW_AT_name "int"
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 4 DW_FORM_sdata
}
DW_TAG_subprogram {
- {MACRO_AT_func { main }}
- {DW_AT_external 1 flag}
+ MACRO_AT_func { main }
+ DW_AT_external 1 flag
} {
# A variable completely optimized out.
DW_TAG_variable {
- {name "opt_out"}
- {type :$int_type_label}
+ DW_AT_name "opt_out"
+ DW_AT_type :$int_type_label
}
DW_TAG_variable {
- {name const_bytes}
- {type :$int_type_label}
- {const_value "\x01\x01\x01\x01" DW_FORM_block1}
+ DW_AT_name const_bytes
+ DW_AT_type :$int_type_label
+ DW_AT_const_value "\x01\x01\x01\x01" DW_FORM_block1
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/inlined_subroutine-inheritance.exp b/gdb/testsuite/gdb.dwarf2/inlined_subroutine-inheritance.exp
index b26650c..7236662 100644
--- a/gdb/testsuite/gdb.dwarf2/inlined_subroutine-inheritance.exp
+++ b/gdb/testsuite/gdb.dwarf2/inlined_subroutine-inheritance.exp
@@ -38,21 +38,21 @@ Dwarf::assemble $asm_file {
cu {} {
Db: compile_unit {
- {language @DW_LANG_C99}
- {name "<artificial>"}
+ DW_AT_language @DW_LANG_C99
+ DW_AT_name "<artificial>"
} {
D72f8: subprogram {
- {abstract_origin %$D272519}
- {low_pc 0xb9e20 addr}
- {high_pc 0x1f5 data4}
+ DW_AT_abstract_origin %$D272519
+ DW_AT_low_pc 0xb9e20 addr
+ DW_AT_high_pc 0x1f5 data4
} {
D736e: inlined_subroutine {
- {abstract_origin %$D26b227}
- {low_pc 0xb9efc addr}
- {high_pc 0xc data4}
+ DW_AT_abstract_origin %$D26b227
+ DW_AT_low_pc 0xb9efc addr
+ DW_AT_high_pc 0xc data4
} {
formal_parameter {
- {abstract_origin %$D274c42}
+ DW_AT_abstract_origin %$D274c42
}
}
}
@@ -61,53 +61,53 @@ Dwarf::assemble $asm_file {
cu {} {
D266465: compile_unit {
- {language @DW_LANG_C99}
+ DW_AT_language @DW_LANG_C99
} {
D266477: typedef {
- {name "size_t"}
- {type :$D266483}
+ DW_AT_name "size_t"
+ DW_AT_type :$D266483
}
D266483: base_type {
- {byte_size 8 sdata}
- {encoding @DW_ATE_unsigned}
+ DW_AT_byte_size 8 sdata
+ DW_AT_encoding @DW_ATE_unsigned
}
D266496: pointer_type {
- {byte_size 8 sdata}
+ DW_AT_byte_size 8 sdata
}
D266498: restrict_type {
- {type :$D266496}
+ DW_AT_type :$D266496
}
D266ad3: pointer_type {
- {byte_size 8 sdata}
- {type :$D266ade}
+ DW_AT_byte_size 8 sdata
+ DW_AT_type :$D266ade
}
D266ad9: restrict_type {
- {type :$D266ad3}
+ DW_AT_type :$D266ad3
}
D266ade: const_type {}
D26b227: subprogram {
- {external 1 flag}
- {name "memcpy"}
- {type :$D266496}
+ DW_AT_external 1 flag
+ DW_AT_name "memcpy"
+ DW_AT_type :$D266496
} {
D26b237: formal_parameter {
- {name "__dest"}
- {type :$D266498}
+ DW_AT_name "__dest"
+ DW_AT_type :$D266498
}
formal_parameter {
- {name "__src"}
- {type :$D266ad9}
+ DW_AT_name "__src"
+ DW_AT_type :$D266ad9
}
formal_parameter {
- {name "__len"}
- {type :$D266477}
+ DW_AT_name "__len"
+ DW_AT_type :$D266477
}
}
}
@@ -115,85 +115,85 @@ Dwarf::assemble $asm_file {
cu {} {
D26d8b1: compile_unit {
- {language @DW_LANG_C99}
+ DW_AT_language @DW_LANG_C99
} {
D26d8c3: typedef {
- {name "size_t"}
- {type :$D26d8cf}
+ DW_AT_name "size_t"
+ DW_AT_type :$D26d8cf
}
D26d8cf: base_type {
- {byte_size 8 sdata}
- {encoding @DW_ATE_unsigned}
- {name "long unsigned int"}
+ DW_AT_byte_size 8 sdata
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_name "long unsigned int"
}
D26d944: pointer_type {
- {byte_size 8 sdata}
+ DW_AT_byte_size 8 sdata
}
D26d946: restrict_type {
- {type :$D26d944}
+ DW_AT_type :$D26d944
}
D26e103: structure_type {
- {name "__object"}
- {byte_size 12 sdata}
+ DW_AT_name "__object"
+ DW_AT_byte_size 12 sdata
} {
member {
- {name "__ob_next"}
- {type :$D26e145}
- {data_member_location 0 sdata}
+ DW_AT_name "__ob_next"
+ DW_AT_type :$D26e145
+ DW_AT_data_member_location 0 sdata
}
}
D26e145: pointer_type {
- {byte_size 8 sdata}
- {type :$D26e103}
+ DW_AT_byte_size 8 sdata
+ DW_AT_type :$D26e103
}
D26e415: typedef {
- {name "PyObject"}
- {type :$D26e103}
+ DW_AT_name "PyObject"
+ DW_AT_type :$D26e103
}
D26e48c: pointer_type {
- {byte_size 8 sdata}
- {type :$D26e415}
+ DW_AT_byte_size 8 sdata
+ DW_AT_type :$D26e415
}
D26df00: pointer_type {
- {byte_size 8 sdata}
- {type :$D26df0b}
+ DW_AT_byte_size 8 sdata
+ DW_AT_type :$D26df0b
}
D26df06: restrict_type {
- {type :$D26df00}
+ DW_AT_type :$D26df00
}
D26df0b: const_type {}
D272519: subprogram {
- {name "bytes_repeat"}
- {type :$D26e48c}
+ DW_AT_name "bytes_repeat"
+ DW_AT_type :$D26e48c
}
D274c1a: subprogram {
- {external 1 flag}
- {name "memcpy"}
- {type :$D26d944}
+ DW_AT_external 1 flag
+ DW_AT_name "memcpy"
+ DW_AT_type :$D26d944
} {
formal_parameter {
- {name "__dest"}
- {type :$D26d946}
+ DW_AT_name "__dest"
+ DW_AT_type :$D26d946
}
formal_parameter {
- {name "__src"}
- {type :$D26df06}
+ DW_AT_name "__src"
+ DW_AT_type :$D26df06
}
D274c42: formal_parameter {
- {name "__len"}
- {type :$D26d8c3}
+ DW_AT_name "__len"
+ DW_AT_type :$D26d8c3
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/intbits.exp b/gdb/testsuite/gdb.dwarf2/intbits.exp
index ff1d69a..ec77c2d 100644
--- a/gdb/testsuite/gdb.dwarf2/intbits.exp
+++ b/gdb/testsuite/gdb.dwarf2/intbits.exp
@@ -33,153 +33,162 @@ if [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] {
Dwarf::assemble ${asm_file} {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
+ DW_AT_language @DW_LANG_C_plus_plus
} {
declare_labels i7_type u1_type u17_type u31_type \
u31_1_type u32_0_type u0_0_type be30_1_type just_bit_type
i7_type: DW_TAG_base_type {
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_endianity @DW_END_little}
- {DW_AT_name "i7"}
- {DW_AT_byte_size 2 DW_FORM_udata}
- {DW_AT_bit_size 7 DW_FORM_implicit_const}
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_endianity @DW_END_little
+ DW_AT_name "i7"
+ DW_AT_byte_size 2 DW_FORM_udata
+ DW_AT_bit_size 7 DW_FORM_implicit_const
}
DW_TAG_variable {
- {DW_AT_name "v_i16_m1"}
- {DW_AT_type :${i7_type}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "i16_m1"]}
- SPECIAL_expr}
+ DW_AT_name "v_i16_m1"
+ DW_AT_type :${i7_type}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "i16_m1"]
+ }] SPECIAL_expr
}
u1_type: DW_TAG_base_type {
- {DW_AT_encoding @DW_ATE_boolean}
- {DW_AT_endianity @DW_END_little}
- {DW_AT_name "u1"}
- {DW_AT_byte_size 2 DW_FORM_udata}
- {DW_AT_bit_size 1 DW_FORM_udata}
- {DW_AT_data_bit_offset 2 DW_FORM_udata}
+ DW_AT_encoding @DW_ATE_boolean
+ DW_AT_endianity @DW_END_little
+ DW_AT_name "u1"
+ DW_AT_byte_size 2 DW_FORM_udata
+ DW_AT_bit_size 1 DW_FORM_udata
+ DW_AT_data_bit_offset 2 DW_FORM_udata
}
DW_TAG_variable {
- {DW_AT_name "v_u16_1"}
- {DW_AT_type :${u1_type}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "u16_1"]}
- SPECIAL_expr}
+ DW_AT_name "v_u16_1"
+ DW_AT_type :${u1_type}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "u16_1"]
+ }] SPECIAL_expr
}
u17_type: DW_TAG_base_type {
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_endianity @DW_END_little}
- {DW_AT_name "u17"}
- {DW_AT_byte_size 4 DW_FORM_udata}
- {DW_AT_bit_size 17 DW_FORM_udata}
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_endianity @DW_END_little
+ DW_AT_name "u17"
+ DW_AT_byte_size 4 DW_FORM_udata
+ DW_AT_bit_size 17 DW_FORM_udata
}
DW_TAG_variable {
- {DW_AT_name "v_u32_m2"}
- {DW_AT_type :${u17_type}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "u32_m2"]}
- SPECIAL_expr}
+ DW_AT_name "v_u32_m2"
+ DW_AT_type :${u17_type}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "u32_m2"]
+ }] SPECIAL_expr
}
u31_type: DW_TAG_base_type {
- {DW_AT_encoding @DW_ATE_unsigned}
- {DW_AT_endianity @DW_END_little}
- {DW_AT_name "u31"}
- {DW_AT_byte_size 4 DW_FORM_udata}
- {DW_AT_bit_size 31 DW_FORM_udata}
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_endianity @DW_END_little
+ DW_AT_name "u31"
+ DW_AT_byte_size 4 DW_FORM_udata
+ DW_AT_bit_size 31 DW_FORM_udata
}
DW_TAG_variable {
- {DW_AT_name "v_u32_1"}
- {DW_AT_type :${u31_type}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "u32_1"]}
- SPECIAL_expr}
+ DW_AT_name "v_u32_1"
+ DW_AT_type :${u31_type}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "u32_1"]
+ }] SPECIAL_expr
}
u31_1_type: DW_TAG_base_type {
- {DW_AT_encoding @DW_ATE_unsigned}
- {DW_AT_endianity @DW_END_little}
- {DW_AT_name "u31_1"}
- {DW_AT_byte_size 4 DW_FORM_udata}
- {DW_AT_bit_size 31 DW_FORM_udata}
- {DW_AT_data_bit_offset 1 DW_FORM_udata}
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_endianity @DW_END_little
+ DW_AT_name "u31_1"
+ DW_AT_byte_size 4 DW_FORM_udata
+ DW_AT_bit_size 31 DW_FORM_udata
+ DW_AT_data_bit_offset 1 DW_FORM_udata
}
DW_TAG_variable {
- {DW_AT_name "v_u32_1_off"}
- {DW_AT_type :${u31_1_type}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "u32_1_off"]}
- SPECIAL_expr}
+ DW_AT_name "v_u32_1_off"
+ DW_AT_type :${u31_1_type}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "u32_1_off"]
+ }] SPECIAL_expr
}
be30_1_type: DW_TAG_base_type {
- {DW_AT_encoding @DW_ATE_unsigned}
- {DW_AT_endianity @DW_END_big}
- {DW_AT_name "be30_1"}
- {DW_AT_byte_size 4 DW_FORM_udata}
- {DW_AT_bit_size 30 DW_FORM_udata}
- {DW_AT_data_bit_offset 1 DW_FORM_udata}
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_endianity @DW_END_big
+ DW_AT_name "be30_1"
+ DW_AT_byte_size 4 DW_FORM_udata
+ DW_AT_bit_size 30 DW_FORM_udata
+ DW_AT_data_bit_offset 1 DW_FORM_udata
}
DW_TAG_variable {
- {DW_AT_name "v_be30_1_off"}
- {DW_AT_type :${be30_1_type}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "be30_1_off"]}
- SPECIAL_expr}
+ DW_AT_name "v_be30_1_off"
+ DW_AT_type :${be30_1_type}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "be30_1_off"]
+ }] SPECIAL_expr
}
u32_0_type: DW_TAG_base_type {
- {DW_AT_encoding @DW_ATE_unsigned}
- {DW_AT_endianity @DW_END_little}
- {DW_AT_name "u32_0"}
- {DW_AT_byte_size 4 DW_FORM_udata}
- {DW_AT_bit_size 0 DW_FORM_udata}
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_endianity @DW_END_little
+ DW_AT_name "u32_0"
+ DW_AT_byte_size 4 DW_FORM_udata
+ DW_AT_bit_size 0 DW_FORM_udata
}
DW_TAG_variable {
- {DW_AT_name "v_u32_0"}
- {DW_AT_type :${u32_0_type}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "u32_0"]}
- SPECIAL_expr}
+ DW_AT_name "v_u32_0"
+ DW_AT_type :${u32_0_type}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "u32_0"]
+ }] SPECIAL_expr
}
u0_0_type: DW_TAG_base_type {
- {DW_AT_encoding @DW_ATE_unsigned}
- {DW_AT_endianity @DW_END_little}
- {DW_AT_name "u0_0"}
- {DW_AT_byte_size 0 DW_FORM_udata}
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_endianity @DW_END_little
+ DW_AT_name "u0_0"
+ DW_AT_byte_size 0 DW_FORM_udata
}
DW_TAG_variable {
- {DW_AT_name "v_u0_0"}
- {DW_AT_type :${u0_0_type}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "u32_0"]}
- SPECIAL_expr}
+ DW_AT_name "v_u0_0"
+ DW_AT_type :${u0_0_type}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "u32_0"]
+ }] SPECIAL_expr
}
just_bit_type: DW_TAG_base_type {
- {DW_AT_encoding @DW_ATE_unsigned}
- {DW_AT_name "just_bit_type"}
- {DW_AT_bit_size 3 DW_FORM_udata}
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_name "just_bit_type"
+ DW_AT_bit_size 3 DW_FORM_udata
}
DW_TAG_variable {
- {DW_AT_name "v_just_bit"}
- {DW_AT_type :${just_bit_type}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "just_bit_0"]}
- SPECIAL_expr}
+ DW_AT_name "v_just_bit"
+ DW_AT_type :${just_bit_type}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "just_bit_0"]
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/loc-sec-offset.exp b/gdb/testsuite/gdb.dwarf2/loc-sec-offset.exp
index 6e10b6c..fb4bf3a 100644
--- a/gdb/testsuite/gdb.dwarf2/loc-sec-offset.exp
+++ b/gdb/testsuite/gdb.dwarf2/loc-sec-offset.exp
@@ -53,27 +53,27 @@ foreach_with_prefix is_64 {false true} {
DW_TAG_compile_unit {
} {
int_type1: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_data1}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name "int"}
+ DW_AT_byte_size 4 DW_FORM_data1
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name "int"
}
DW_TAG_variable {
- {DW_AT_name "foo"}
- {DW_AT_location $foo_location_list DW_FORM_sec_offset}
- {DW_AT_type :$int_type1}
+ DW_AT_name "foo"
+ DW_AT_location $foo_location_list DW_FORM_sec_offset
+ DW_AT_type :$int_type1
}
DW_TAG_subprogram {
- {DW_AT_name "func1"}
- {DW_AT_low_pc $func1_addr}
- {DW_AT_high_pc $func1_len DW_FORM_udata}
+ DW_AT_name "func1"
+ DW_AT_low_pc $func1_addr
+ DW_AT_high_pc $func1_len DW_FORM_udata
}
DW_TAG_subprogram {
- {DW_AT_name "func2"}
- {DW_AT_low_pc $func2_addr}
- {DW_AT_high_pc $func2_len DW_FORM_udata}
+ DW_AT_name "func2"
+ DW_AT_low_pc $func2_addr
+ DW_AT_high_pc $func2_len DW_FORM_udata
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/locexpr-data-member-location.exp b/gdb/testsuite/gdb.dwarf2/locexpr-data-member-location.exp
index ea871d6..2a8b457 100644
--- a/gdb/testsuite/gdb.dwarf2/locexpr-data-member-location.exp
+++ b/gdb/testsuite/gdb.dwarf2/locexpr-data-member-location.exp
@@ -154,38 +154,38 @@ Dwarf::assemble ${asm_file} {
cu { label cu_label } {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
- {name ${::srcfile}}
- {stmt_list $L DW_FORM_sec_offset}
+ DW_AT_language @DW_LANG_C_plus_plus
+ DW_AT_name ${::srcfile}
+ DW_AT_stmt_list $L DW_FORM_sec_offset
} {
declare_labels int_label class_A_label class_B_label \
B_ptr_label
int_label: DW_TAG_base_type {
- {DW_AT_byte_size ${::long_size} DW_FORM_udata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name "int"}
+ DW_AT_byte_size ${::long_size} DW_FORM_udata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name "int"
}
class_A_label: DW_TAG_class_type {
- {DW_AT_name "A"}
- {DW_AT_byte_size ${::struct_A_size} DW_FORM_sdata}
+ DW_AT_name "A"
+ DW_AT_byte_size ${::struct_A_size} DW_FORM_sdata
} {
DW_TAG_member {
- {DW_AT_name "a"}
- {DW_AT_type :$int_label}
- {DW_AT_data_member_location ${::A_a} DW_FORM_udata}
+ DW_AT_name "a"
+ DW_AT_type :$int_label
+ DW_AT_data_member_location ${::A_a} DW_FORM_udata
}
DW_TAG_member {
- {DW_AT_name "x"}
- {DW_AT_type :$int_label}
- {DW_AT_data_member_location ${::A_x} DW_FORM_udata}
+ DW_AT_name "x"
+ DW_AT_type :$int_label
+ DW_AT_data_member_location ${::A_x} DW_FORM_udata
}
}
class_B_label: DW_TAG_class_type {
- {DW_AT_name "B"}
- {DW_AT_byte_size ${::struct_B_size} DW_FORM_sdata}
+ DW_AT_name "B"
+ DW_AT_byte_size ${::struct_B_size} DW_FORM_sdata
} {
# While there are easier / better ways to specify an
# offset used by DW_AT_data_member_location than that
@@ -201,45 +201,47 @@ Dwarf::assemble ${asm_file} {
# by decode_locdesc(); this is why those opcodes were
# chosen.
DW_TAG_inheritance {
- {DW_AT_type :$class_A_label}
- {DW_AT_data_member_location {
+ DW_AT_type :$class_A_label
+ DW_AT_data_member_location [subst {
DW_OP_constu ${::B_a}
DW_OP_plus
DW_OP_pick 0
- DW_OP_drop} SPECIAL_expr}
- {DW_AT_accessibility 1 DW_FORM_data1}
+ DW_OP_drop}] SPECIAL_expr
+ DW_AT_accessibility 1 DW_FORM_data1
}
DW_TAG_member {
- {DW_AT_name "b"}
- {DW_AT_type :$int_label}
- {DW_AT_data_member_location ${::B_b} DW_FORM_udata}
+ DW_AT_name "b"
+ DW_AT_type :$int_label
+ DW_AT_data_member_location ${::B_b} DW_FORM_udata
}
DW_TAG_member {
- {DW_AT_name "x2"}
- {DW_AT_type :$int_label}
- {DW_AT_data_member_location ${::B_x2} DW_FORM_udata}
+ DW_AT_name "x2"
+ DW_AT_type :$int_label
+ DW_AT_data_member_location ${::B_x2} DW_FORM_udata
}
}
B_ptr_label: DW_TAG_pointer_type {
- {DW_AT_type :$class_B_label}
- {DW_AT_byte_size ${::addr_size} DW_FORM_sdata}
+ DW_AT_type :$class_B_label
+ DW_AT_byte_size ${::addr_size} DW_FORM_sdata
}
DW_TAG_variable {
- {DW_AT_name "g_A"}
- {DW_AT_type :$class_A_label}
- {DW_AT_external 1 flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "g_A"]} \
- SPECIAL_expr}
+ DW_AT_name "g_A"
+ DW_AT_type :$class_A_label
+ DW_AT_external 1 flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "g_A"]
+ }] SPECIAL_expr
}
DW_TAG_variable {
- {DW_AT_name "g_B"}
- {DW_AT_type :$class_B_label}
- {DW_AT_external 1 flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "g_B"]} \
- SPECIAL_expr}
+ DW_AT_name "g_B"
+ DW_AT_type :$class_B_label
+ DW_AT_external 1 flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "g_B"]
+ }] SPECIAL_expr
}
# We can't use MACRO_AT for the definitions of foo and bar
@@ -247,23 +249,23 @@ Dwarf::assemble ${asm_file} {
# flags. Therefore, we list the name, low_pc, and high_pc
# explicitly.
DW_TAG_subprogram {
- {DW_AT_name foo}
- {DW_AT_low_pc $foo_start DW_FORM_addr}
- {DW_AT_high_pc $foo_end DW_FORM_addr}
- {DW_AT_type :${B_ptr_label}}
- {DW_AT_external 1 flag}
+ DW_AT_name foo
+ DW_AT_low_pc $foo_start DW_FORM_addr
+ DW_AT_high_pc $foo_end DW_FORM_addr
+ DW_AT_type :${B_ptr_label}
+ DW_AT_external 1 flag
}
DW_TAG_subprogram {
- {DW_AT_name bar}
- {DW_AT_low_pc $bar_start DW_FORM_addr}
- {DW_AT_high_pc $bar_end DW_FORM_addr}
- {DW_AT_type :${B_ptr_label}}
- {DW_AT_external 1 flag}
+ DW_AT_name bar
+ DW_AT_low_pc $bar_start DW_FORM_addr
+ DW_AT_high_pc $bar_end DW_FORM_addr
+ DW_AT_type :${B_ptr_label}
+ DW_AT_external 1 flag
} {
DW_TAG_formal_parameter {
- {DW_AT_name v}
- {DW_AT_type :${B_ptr_label}}
+ DW_AT_name v
+ DW_AT_type :${B_ptr_label}
}
}
}
@@ -330,7 +332,7 @@ if {[gdb_compile_shlib [list $libsrc $asm_file] $lib_so \
### Second GDB session.
with_test_prefix "second session" {
- clean_restart $binfile
+ clean_restart $::testfile
# Again, do whatever is necessary to make sure that the shared library is
# loaded for remote targets.
diff --git a/gdb/testsuite/gdb.dwarf2/loclists-multiple-cus.exp b/gdb/testsuite/gdb.dwarf2/loclists-multiple-cus.exp
index b0c9d7d..021129d 100644
--- a/gdb/testsuite/gdb.dwarf2/loclists-multiple-cus.exp
+++ b/gdb/testsuite/gdb.dwarf2/loclists-multiple-cus.exp
@@ -57,30 +57,30 @@ foreach_with_prefix is_64 {false true} {
declare_labels int_type
DW_TAG_compile_unit {
- {DW_AT_loclists_base cu_table DW_FORM_sec_offset}
+ DW_AT_loclists_base cu_table DW_FORM_sec_offset
} {
int_type: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_data1}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name "int"}
+ DW_AT_byte_size 4 DW_FORM_data1
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name "int"
}
DW_TAG_variable {
- {DW_AT_name "foo"}
- {DW_AT_location 1 DW_FORM_loclistx}
- {DW_AT_type :$int_type}
+ DW_AT_name "foo"
+ DW_AT_location 1 DW_FORM_loclistx
+ DW_AT_type :$int_type
}
DW_TAG_subprogram {
- {DW_AT_name "func1"}
- {DW_AT_low_pc $func1_addr}
- {DW_AT_high_pc $func1_len DW_FORM_udata}
+ DW_AT_name "func1"
+ DW_AT_low_pc $func1_addr
+ DW_AT_high_pc $func1_len DW_FORM_udata
}
DW_TAG_subprogram {
- {DW_AT_name "func2"}
- {DW_AT_low_pc $func2_addr}
- {DW_AT_high_pc $func2_len DW_FORM_udata}
+ DW_AT_name "func2"
+ DW_AT_low_pc $func2_addr
+ DW_AT_high_pc $func2_len DW_FORM_udata
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/loclists-sec-offset.exp b/gdb/testsuite/gdb.dwarf2/loclists-sec-offset.exp
index 38512cd..e39ca19 100644
--- a/gdb/testsuite/gdb.dwarf2/loclists-sec-offset.exp
+++ b/gdb/testsuite/gdb.dwarf2/loclists-sec-offset.exp
@@ -66,27 +66,27 @@ foreach_with_prefix is_64 {false true} {
DW_TAG_compile_unit {
} {
int_type1: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_data1}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name "int"}
+ DW_AT_byte_size 4 DW_FORM_data1
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name "int"
}
DW_TAG_variable {
- {DW_AT_name "foo"}
- {DW_AT_location $foo_location_list DW_FORM_sec_offset}
- {DW_AT_type :$int_type1}
+ DW_AT_name "foo"
+ DW_AT_location $foo_location_list DW_FORM_sec_offset
+ DW_AT_type :$int_type1
}
DW_TAG_subprogram {
- {DW_AT_name "func1"}
- {DW_AT_low_pc $func1_addr}
- {DW_AT_high_pc $func1_len DW_FORM_udata}
+ DW_AT_name "func1"
+ DW_AT_low_pc $func1_addr
+ DW_AT_high_pc $func1_len DW_FORM_udata
}
DW_TAG_subprogram {
- {DW_AT_name "func2"}
- {DW_AT_low_pc $func2_addr}
- {DW_AT_high_pc $func2_len DW_FORM_udata}
+ DW_AT_name "func2"
+ DW_AT_low_pc $func2_addr
+ DW_AT_high_pc $func2_len DW_FORM_udata
}
}
}
@@ -100,30 +100,30 @@ foreach_with_prefix is_64 {false true} {
is_64 $is_64
} {
DW_TAG_compile_unit {
- {DW_AT_loclists_base cu2_table DW_FORM_sec_offset}
+ DW_AT_loclists_base cu2_table DW_FORM_sec_offset
} {
int_type2: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_data1}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name "int"}
+ DW_AT_byte_size 4 DW_FORM_data1
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name "int"
}
DW_TAG_variable {
- {DW_AT_name "bar"}
- {DW_AT_location $bar_location_list DW_FORM_sec_offset}
- {DW_AT_type :$int_type2}
+ DW_AT_name "bar"
+ DW_AT_location $bar_location_list DW_FORM_sec_offset
+ DW_AT_type :$int_type2
}
DW_TAG_subprogram {
- {DW_AT_name "func3"}
- {DW_AT_low_pc $func3_addr}
- {DW_AT_high_pc $func3_len DW_FORM_udata}
+ DW_AT_name "func3"
+ DW_AT_low_pc $func3_addr
+ DW_AT_high_pc $func3_len DW_FORM_udata
}
DW_TAG_subprogram {
- {DW_AT_name "func4"}
- {DW_AT_low_pc $func4_addr}
- {DW_AT_high_pc $func4_len DW_FORM_udata}
+ DW_AT_name "func4"
+ DW_AT_low_pc $func4_addr
+ DW_AT_high_pc $func4_len DW_FORM_udata
}
}
}
@@ -138,27 +138,27 @@ foreach_with_prefix is_64 {false true} {
DW_TAG_compile_unit {
} {
int_type3: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_data1}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name "int"}
+ DW_AT_byte_size 4 DW_FORM_data1
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name "int"
}
DW_TAG_variable {
- {DW_AT_name "baz"}
- {DW_AT_location $baz_location_list DW_FORM_sec_offset}
- {DW_AT_type :$int_type3}
+ DW_AT_name "baz"
+ DW_AT_location $baz_location_list DW_FORM_sec_offset
+ DW_AT_type :$int_type3
}
DW_TAG_subprogram {
- {DW_AT_name "func5"}
- {DW_AT_low_pc $func5_addr}
- {DW_AT_high_pc $func5_len DW_FORM_udata}
+ DW_AT_name "func5"
+ DW_AT_low_pc $func5_addr
+ DW_AT_high_pc $func5_len DW_FORM_udata
}
DW_TAG_subprogram {
- {DW_AT_name "func6"}
- {DW_AT_low_pc $func6_addr}
- {DW_AT_high_pc $func6_len DW_FORM_udata}
+ DW_AT_name "func6"
+ DW_AT_low_pc $func6_addr
+ DW_AT_high_pc $func6_len DW_FORM_udata
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/loclists-start-end.exp b/gdb/testsuite/gdb.dwarf2/loclists-start-end.exp
index 2569896..876a8b2 100644
--- a/gdb/testsuite/gdb.dwarf2/loclists-start-end.exp
+++ b/gdb/testsuite/gdb.dwarf2/loclists-start-end.exp
@@ -48,30 +48,30 @@ foreach_with_prefix is_64 {false true} {
declare_labels int_type
DW_TAG_compile_unit {
- {DW_AT_loclists_base cu_table DW_FORM_sec_offset}
+ DW_AT_loclists_base cu_table DW_FORM_sec_offset
} {
int_type: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_data1}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name "int"}
+ DW_AT_byte_size 4 DW_FORM_data1
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name "int"
}
DW_TAG_variable {
- {DW_AT_name "foo"}
- {DW_AT_location 1 DW_FORM_loclistx}
- {DW_AT_type :$int_type}
+ DW_AT_name "foo"
+ DW_AT_location 1 DW_FORM_loclistx
+ DW_AT_type :$int_type
}
DW_TAG_subprogram {
- {DW_AT_name "func1"}
- {DW_AT_low_pc $func1_addr}
- {DW_AT_high_pc $func1_len DW_FORM_udata}
+ DW_AT_name "func1"
+ DW_AT_low_pc $func1_addr
+ DW_AT_high_pc $func1_len DW_FORM_udata
}
DW_TAG_subprogram {
- {DW_AT_name "func2"}
- {DW_AT_low_pc $func2_addr}
- {DW_AT_high_pc $func2_len DW_FORM_udata}
+ DW_AT_name "func2"
+ DW_AT_low_pc $func2_addr
+ DW_AT_high_pc $func2_len DW_FORM_udata
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/macro-complaints.exp b/gdb/testsuite/gdb.dwarf2/macro-complaints.exp
index 7b0b27a..17e18c0 100644
--- a/gdb/testsuite/gdb.dwarf2/macro-complaints.exp
+++ b/gdb/testsuite/gdb.dwarf2/macro-complaints.exp
@@ -36,20 +36,20 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_name $::srcfile}
- {DW_AT_macros $cu_macro1 DW_FORM_sec_offset}
- {DW_AT_stmt_list $L DW_FORM_sec_offset}
+ DW_AT_name $::srcfile
+ DW_AT_macros $cu_macro1 DW_FORM_sec_offset
+ DW_AT_stmt_list $L DW_FORM_sec_offset
} {
declare_labels int_type
int_type: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name int}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
DW_TAG_subprogram {
- {MACRO_AT_func {main}}
- {type :$int_type}
+ MACRO_AT_func {main}
+ DW_AT_type :$int_type
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/macro-source-path-clang14-dw4.exp b/gdb/testsuite/gdb.dwarf2/macro-source-path-clang14-dw4.exp
index c0c2635..d4407d7 100644
--- a/gdb/testsuite/gdb.dwarf2/macro-source-path-clang14-dw4.exp
+++ b/gdb/testsuite/gdb.dwarf2/macro-source-path-clang14-dw4.exp
@@ -18,6 +18,10 @@
# Generate binaries imitating different ways source file paths can be passed to
# compilers. Test printing macros from those binaries.
+load_lib dwarf.exp
+
+require dwarf2_support
+
# The do_test proc comes from macro-source-path.exp.tcl.
source $srcdir/$subdir/macro-source-path.exp.tcl
diff --git a/gdb/testsuite/gdb.dwarf2/macro-source-path-clang14-dw5.exp b/gdb/testsuite/gdb.dwarf2/macro-source-path-clang14-dw5.exp
index 0b3239e..23a40ba 100644
--- a/gdb/testsuite/gdb.dwarf2/macro-source-path-clang14-dw5.exp
+++ b/gdb/testsuite/gdb.dwarf2/macro-source-path-clang14-dw5.exp
@@ -18,6 +18,10 @@
# Generate binaries imitating different ways source file paths can be passed to
# compilers. Test printing macros from those binaries.
+load_lib dwarf.exp
+
+require dwarf2_support
+
# The do_test proc comes from macro-source-path.exp.tcl.
source $srcdir/$subdir/macro-source-path.exp.tcl
diff --git a/gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld234-dw5.exp b/gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld234-dw5.exp
index 940f997..99f7857 100644
--- a/gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld234-dw5.exp
+++ b/gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld234-dw5.exp
@@ -18,6 +18,10 @@
# Generate binaries imitating different ways source file paths can be passed to
# compilers. Test printing macros from those binaries.
+load_lib dwarf.exp
+
+require dwarf2_support
+
# The do_test proc comes from macro-source-path.exp.tcl.
source $srcdir/$subdir/macro-source-path.exp.tcl
diff --git a/gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld238-dw4.exp b/gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld238-dw4.exp
index dea0308..569b409 100644
--- a/gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld238-dw4.exp
+++ b/gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld238-dw4.exp
@@ -18,6 +18,10 @@
# Generate binaries imitating different ways source file paths can be passed to
# compilers. Test printing macros from those binaries.
+load_lib dwarf.exp
+
+require dwarf2_support
+
# The do_test proc comes from macro-source-path.exp.tcl.
source $srcdir/$subdir/macro-source-path.exp.tcl
diff --git a/gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld238-dw5.exp b/gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld238-dw5.exp
index 98a278e..0517d29 100644
--- a/gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld238-dw5.exp
+++ b/gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld238-dw5.exp
@@ -18,6 +18,10 @@
# Generate binaries imitating different ways source file paths can be passed to
# compilers. Test printing macros from those binaries.
+load_lib dwarf.exp
+
+require dwarf2_support
+
# The do_test proc comes from macro-source-path.exp.tcl.
source $srcdir/$subdir/macro-source-path.exp.tcl
diff --git a/gdb/testsuite/gdb.dwarf2/macro-source-path.exp.tcl b/gdb/testsuite/gdb.dwarf2/macro-source-path.exp.tcl
index ecaf685..b71d55d 100644
--- a/gdb/testsuite/gdb.dwarf2/macro-source-path.exp.tcl
+++ b/gdb/testsuite/gdb.dwarf2/macro-source-path.exp.tcl
@@ -21,10 +21,6 @@
# The entry points for this test are in the various
# gdb.dwarf2/macro-source-path-*.exp files.
-load_lib dwarf.exp
-
-require dwarf2_support
-
standard_testfile macro-source-path.c
lassign [function_range main $srcdir/$subdir/$srcfile] \
@@ -68,24 +64,24 @@ proc do_test { test_name lines_version DW_AT_name main_file_idx directories
cu {} {
DW_TAG_compile_unit {
- {DW_AT_producer "My C Compiler"}
- {DW_AT_language @DW_LANG_C11}
- {DW_AT_name $::DW_AT_name}
- {DW_AT_comp_dir $comp_dir}
- {DW_AT_stmt_list $Llines DW_FORM_sec_offset}
- {DW_AT_macros $cu_macros DW_FORM_sec_offset}
+ DW_AT_producer "My C Compiler"
+ DW_AT_language @DW_LANG_C11
+ DW_AT_name $::DW_AT_name
+ DW_AT_comp_dir $comp_dir
+ DW_AT_stmt_list $Llines DW_FORM_sec_offset
+ DW_AT_macros $cu_macros DW_FORM_sec_offset
} {
declare_labels int_type
int_type: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name int}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
DW_TAG_subprogram {
- {MACRO_AT_func {main}}
- {type :$int_type}
+ MACRO_AT_func {main}
+ DW_AT_type :$int_type
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/main-subprogram.exp b/gdb/testsuite/gdb.dwarf2/main-subprogram.exp
index 467cf20..0200316 100644
--- a/gdb/testsuite/gdb.dwarf2/main-subprogram.exp
+++ b/gdb/testsuite/gdb.dwarf2/main-subprogram.exp
@@ -31,22 +31,22 @@ Dwarf::assemble $asm_file {
# so choose a language that isn't C and that gdb is unlikely
# to implement.
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_PLI}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
- } {
+ DW_AT_language @DW_LANG_PLI
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
+ } {
declare_labels type
- type: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name int}
- }
+ type: DW_TAG_base_type {
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
+ }
DW_TAG_subprogram {
- {MACRO_AT_func {mymain}}
- {type :$type}
- {DW_AT_main_subprogram 1 flag}
+ MACRO_AT_func {mymain}
+ DW_AT_type :$type
+ DW_AT_main_subprogram 1 flag
} {
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/mega-enum.exp b/gdb/testsuite/gdb.dwarf2/mega-enum.exp
index 7482edb..7817fbf 100644
--- a/gdb/testsuite/gdb.dwarf2/mega-enum.exp
+++ b/gdb/testsuite/gdb.dwarf2/mega-enum.exp
@@ -26,21 +26,21 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
} {
declare_labels integer_label
integer_label: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name int}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
DW_TAG_enumeration_type {
- {DW_AT_name mega_enum}
- {DW_AT_type :$integer_label}
+ DW_AT_name mega_enum
+ DW_AT_type :$integer_label
} {
# In the past gdb used a 'short' for the field count.
# But this fails if there are too many fields. If the
@@ -48,8 +48,8 @@ Dwarf::assemble $asm_file {
# so use a number that's just big enough.
for {set i 0} {$i < 65538} {incr i} {
DW_TAG_enumerator {
- {DW_AT_name DEI_$i}
- {DW_AT_const_value $i DW_FORM_sdata}
+ DW_AT_name DEI_$i
+ DW_AT_const_value $i DW_FORM_sdata
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/method-ptr.exp b/gdb/testsuite/gdb.dwarf2/method-ptr.exp
index 867527c..828166f 100644
--- a/gdb/testsuite/gdb.dwarf2/method-ptr.exp
+++ b/gdb/testsuite/gdb.dwarf2/method-ptr.exp
@@ -28,48 +28,50 @@ Dwarf::assemble $asm_file {
declare_labels ptr_label subr_label memptr_label
cu {} {
- compile_unit {{language @DW_LANG_C_plus_plus}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C_plus_plus
+ } {
int_label: base_type {
- {name int}
- {encoding @DW_ATE_signed}
- {byte_size 4 DW_FORM_sdata}
+ DW_AT_name int
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 4 DW_FORM_sdata
}
float_label: base_type {
- {name float}
- {encoding @DW_ATE_float}
- {byte_size 4 DW_FORM_sdata}
+ DW_AT_name float
+ DW_AT_encoding @DW_ATE_float
+ DW_AT_byte_size 4 DW_FORM_sdata
}
struct_label: structure_type {
- {name S}
- {byte_size 1 DW_FORM_sdata}
+ DW_AT_name S
+ DW_AT_byte_size 1 DW_FORM_sdata
}
ptr_label: pointer_type {
- {type :$struct_label}
+ DW_AT_type :$struct_label
}
subr_label: subroutine_type {
- {type :$int_label}
+ DW_AT_type :$int_label
} {
formal_parameter {
- {type :$ptr_label}
- {artificial 1 DW_FORM_flag_present}
+ DW_AT_type :$ptr_label
+ DW_AT_artificial 1 DW_FORM_flag_present
}
formal_parameter {
- {type :$float_label}
+ DW_AT_type :$float_label
}
}
memptr_label: ptr_to_member_type {
- {type :$subr_label}
- {containing_type :$struct_label}
+ DW_AT_type :$subr_label
+ DW_AT_containing_type :$struct_label
}
typedef {
- {name the_typedef}
- {type :$memptr_label}
+ DW_AT_name the_typedef
+ DW_AT_type :$memptr_label
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/missing-line-table.exp b/gdb/testsuite/gdb.dwarf2/missing-line-table.exp
index 835686e..977a016 100644
--- a/gdb/testsuite/gdb.dwarf2/missing-line-table.exp
+++ b/gdb/testsuite/gdb.dwarf2/missing-line-table.exp
@@ -38,19 +38,19 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name missing-line-table.c}
- {stmt_list $Llines DW_FORM_sec_offset}
- {DW_AT_low_pc $::foo_start DW_FORM_addr}
- {DW_AT_high_pc $::main_end DW_FORM_addr}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name missing-line-table.c
+ DW_AT_stmt_list $Llines DW_FORM_sec_offset
+ DW_AT_low_pc $::foo_start DW_FORM_addr
+ DW_AT_high_pc $::main_end DW_FORM_addr
} {
subprogram {
- {external 1 flag}
- {MACRO_AT_func {main}}
+ DW_AT_external 1 flag
+ MACRO_AT_func {main}
}
subprogram {
- {external 1 flag}
- {MACRO_AT_func {foo}}
+ DW_AT_external 1 flag
+ MACRO_AT_func {foo}
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/missing-sig-type.exp b/gdb/testsuite/gdb.dwarf2/missing-sig-type.exp
index 947f024..a3eaae9 100644
--- a/gdb/testsuite/gdb.dwarf2/missing-sig-type.exp
+++ b/gdb/testsuite/gdb.dwarf2/missing-sig-type.exp
@@ -30,8 +30,8 @@ Dwarf::assemble $asm_file {
# This signature is intentionally wrong.
typedef_label: typedef {
- {name foo}
- {type 0xee22334455667788 ref_sig8 }
+ DW_AT_name foo
+ DW_AT_type 0xee22334455667788 ref_sig8
}
}
}
@@ -39,9 +39,9 @@ Dwarf::assemble $asm_file {
tu {} 0x1122334455667788 the_type {
type_unit {} {
the_type: base_type {
- {name int}
- {encoding @DW_ATE_signed}
- {byte_size 4 sdata}
+ DW_AT_name int
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 4 sdata
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/missing-type-name-for-templates.exp b/gdb/testsuite/gdb.dwarf2/missing-type-name-for-templates.exp
index 108c9c7..ee6992b 100644
--- a/gdb/testsuite/gdb.dwarf2/missing-type-name-for-templates.exp
+++ b/gdb/testsuite/gdb.dwarf2/missing-type-name-for-templates.exp
@@ -40,112 +40,112 @@ set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
+ DW_AT_language @DW_LANG_C_plus_plus
} {
declare_labels int float template_var1 template_var2 template_var3
int: DW_TAG_base_type {
- {DW_AT_name "int"}
- {DW_AT_byte_size 4 DW_FORM_data1}
- {DW_AT_encoding @DW_ATE_signed}
+ DW_AT_name "int"
+ DW_AT_byte_size 4 DW_FORM_data1
+ DW_AT_encoding @DW_ATE_signed
}
float: base_type {
- {DW_AT_name float}
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_float}
+ DW_AT_name float
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_float
}
DW_TAG_subprogram {
- {DW_AT_name "main"}
- {DW_AT_low_pc $::main_start DW_FORM_addr}
- {DW_AT_high_pc $::main_end DW_FORM_addr}
- {DW_AT_type :$int}
- {DW_AT_external 1 DW_FORM_flag}
+ DW_AT_name "main"
+ DW_AT_low_pc $::main_start DW_FORM_addr
+ DW_AT_high_pc $::main_end DW_FORM_addr
+ DW_AT_type :$int
+ DW_AT_external 1 DW_FORM_flag
} {
DW_TAG_variable {
- {DW_AT_name "var1"}
- {DW_AT_type :$template_var1}
+ DW_AT_name "var1"
+ DW_AT_type :$template_var1
}
DW_TAG_variable {
- {DW_AT_name "var2"}
- {DW_AT_type :$template_var2}
+ DW_AT_name "var2"
+ DW_AT_type :$template_var2
}
DW_TAG_variable {
- {DW_AT_name "var3"}
- {DW_AT_type :$template_var3}
+ DW_AT_name "var3"
+ DW_AT_type :$template_var3
}
}
# A variable whose type is a template instantiation with two
# template parameters, one unnamed.
template_var1: DW_TAG_structure_type {
- {DW_AT_name "template_var1<int, float>"}
+ DW_AT_name "template_var1<int, float>"
} {
DW_TAG_member {
- {DW_AT_name "me"}
- {DW_AT_type :$int}
+ DW_AT_name "me"
+ DW_AT_type :$int
}
DW_TAG_member {
- {DW_AT_name "me2"}
- {DW_AT_type :$float}
+ DW_AT_name "me2"
+ DW_AT_type :$float
}
DW_TAG_template_type_param {
- {DW_AT_type :$int}
+ DW_AT_type :$int
}
DW_TAG_template_type_param {
- {DW_AT_name "second"}
- {DW_AT_type :$float}
+ DW_AT_name "second"
+ DW_AT_type :$float
}
}
# A variable whose type is a template instantiation with two
# template parameters, both unnamed.
template_var2: DW_TAG_class_type {
- {DW_AT_name "template_var2<int, float>"}
+ DW_AT_name "template_var2<int, float>"
} {
DW_TAG_member {
- {DW_AT_name "me"}
- {DW_AT_type :$int}
+ DW_AT_name "me"
+ DW_AT_type :$int
}
DW_TAG_member {
- {DW_AT_name "me2"}
- {DW_AT_type :$float}
+ DW_AT_name "me2"
+ DW_AT_type :$float
}
DW_TAG_template_type_param {
- {DW_AT_type :$int}
+ DW_AT_type :$int
}
DW_TAG_template_type_param {
- {DW_AT_type :$float}
+ DW_AT_type :$float
}
}
# A variable whose type is a template instantiation with four
# template arguments, two types, two values, all unnamed.
template_var3: DW_TAG_structure_type {
- {DW_AT_name "template_var3<0, int, 11, float>"}
+ DW_AT_name "template_var3<0, int, 11, float>"
} {
DW_TAG_member {
- {DW_AT_name "me"}
- {DW_AT_type :$int}
+ DW_AT_name "me"
+ DW_AT_type :$int
}
DW_TAG_member {
- {DW_AT_name "me2"}
- {DW_AT_type :$float}
+ DW_AT_name "me2"
+ DW_AT_type :$float
}
DW_TAG_template_value_param {
- {DW_AT_type :$int}
- {DW_AT_const_value 0 DW_FORM_sdata}
+ DW_AT_type :$int
+ DW_AT_const_value 0 DW_FORM_sdata
}
DW_TAG_template_type_param {
- {DW_AT_type :$int}
+ DW_AT_type :$int
}
DW_TAG_template_value_param {
- {DW_AT_type :$int}
- {DW_AT_const_value 11 DW_FORM_sdata}
+ DW_AT_type :$int
+ DW_AT_const_value 11 DW_FORM_sdata
}
DW_TAG_template_type_param {
- {DW_AT_type :$float}
+ DW_AT_type :$float
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/missing-type-name.exp b/gdb/testsuite/gdb.dwarf2/missing-type-name.exp
index 91997f7..68a5552 100644
--- a/gdb/testsuite/gdb.dwarf2/missing-type-name.exp
+++ b/gdb/testsuite/gdb.dwarf2/missing-type-name.exp
@@ -44,48 +44,52 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_producer "GNU C 8.1"}
- {DW_AT_language @DW_LANG_C}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
- } {
+ DW_AT_producer "GNU C 8.1"
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
+ } {
declare_labels main_type int_type ptr_type
main_type: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
}
int_type: DW_TAG_base_type {
- {DW_AT_byte_size 0 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
+ DW_AT_byte_size 0 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
}
ptr_type: DW_TAG_pointer_type {
- {DW_AT_type :$int_type}
+ DW_AT_type :$int_type
}
- DW_TAG_subprogram {
- {MACRO_AT_func func}
- {type :$int_type}
+ DW_TAG_subprogram {
+ MACRO_AT_func func
+ DW_AT_type :$int_type
}
- DW_TAG_subprogram {
- {MACRO_AT_func main}
- {type :$main_type}
+ DW_TAG_subprogram {
+ MACRO_AT_func main
+ DW_AT_type :$main_type
}
DW_TAG_variable {
- {DW_AT_name "var_a"}
- {DW_AT_type :$main_type}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "var_a"]} SPECIAL_expr}
+ DW_AT_name "var_a"
+ DW_AT_type :$main_type
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "var_a"]
+ }] SPECIAL_expr
}
DW_TAG_variable {
- {DW_AT_name "var_ptr"}
- {DW_AT_type :$ptr_type}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "var_ptr"]} SPECIAL_expr}
+ DW_AT_name "var_ptr"
+ DW_AT_type :$ptr_type
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "var_ptr"]
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/multidictionary.exp b/gdb/testsuite/gdb.dwarf2/multidictionary.exp
index 3458f7c..4fdf985 100644
--- a/gdb/testsuite/gdb.dwarf2/multidictionary.exp
+++ b/gdb/testsuite/gdb.dwarf2/multidictionary.exp
@@ -35,40 +35,40 @@ Dwarf::assemble $asm_file {
cu {} {
D45d9: compile_unit {
- {language @DW_LANG_C_plus_plus}
- {name "SerialPortUtils.cpp"}
+ DW_AT_language @DW_LANG_C_plus_plus
+ DW_AT_name "SerialPortUtils.cpp"
} {
D5079: base_type {
- {byte_size 1 sdata}
- {encoding @DW_ATE_unsigned}
- {name "char"}
+ DW_AT_byte_size 1 sdata
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_name "char"
}
D5080: const_type {
- {type :$D5079}
+ DW_AT_type :$D5079
}
D50a9: pointer_type {
- {byte_size 4 sdata}
- {type :$D5080}
+ DW_AT_byte_size 4 sdata
+ DW_AT_type :$D5080
}
D50af: const_type {
- {type :$D50a9}
+ DW_AT_type :$D50a9
}
D5ab2: subprogram {
- {external 1 flag}
- {linkage_name "_Z18SerialSyncWriteStrPKc"}
+ DW_AT_external 1 flag
+ DW_AT_linkage_name "_Z18SerialSyncWriteStrPKc"
} {
D5ac2: formal_parameter {
- {name "msg"}
- {type :$D50af}
+ DW_AT_name "msg"
+ DW_AT_type :$D50af
}
D5ace: lexical_block {} {
D5acf: DW_TAG_variable {
- {name "p"}
- {type :$D50a9}
+ DW_AT_name "p"
+ DW_AT_type :$D50a9
}
}
}
@@ -77,34 +77,34 @@ Dwarf::assemble $asm_file {
cu {} {
D2135f: compile_unit {
- {language @DW_LANG_C_plus_plus}
- {name "Main.cpp"}
+ DW_AT_language @DW_LANG_C_plus_plus
+ DW_AT_name "Main.cpp"
} {
D2216a: base_type {
- {byte_size 1 sdata}
- {encoding @DW_ATE_unsigned_char}
- {name "char"}
+ DW_AT_byte_size 1 sdata
+ DW_AT_encoding @DW_ATE_unsigned_char
+ DW_AT_name "char"
}
D22171: const_type {
- {type :$D2216a}
+ DW_AT_type :$D2216a
}
D226c4: pointer_type {
- {byte_size 4 sdata}
- {type :$D22171}
+ DW_AT_byte_size 4 sdata
+ DW_AT_type :$D22171
}
D226ca: const_type {
- {type :$D226c4}
+ DW_AT_type :$D226c4
}
D245da: subprogram {
- {name "PrintPanicMsg"}
+ DW_AT_name "PrintPanicMsg"
} {
D245e6: formal_parameter {
- {name "msg"}
- {type :$D226ca}
+ DW_AT_name "msg"
+ DW_AT_type :$D226ca
}
}
}
@@ -112,28 +112,28 @@ Dwarf::assemble $asm_file {
cu {} {
D41c21: compile_unit {
- {language @DW_LANG_C99}
- {name "<artificial>"}
+ DW_AT_language @DW_LANG_C99
+ DW_AT_name "<artificial>"
} {
- D42025: subprogram {
- {abstract_origin %$D245da}
- {low_pc 0x80b60 addr}
- {high_pc 0x6c data4}
- } {
+ D42025: subprogram {
+ DW_AT_abstract_origin %$D245da
+ DW_AT_low_pc 0x80b60 addr
+ DW_AT_high_pc 0x6c data4
+ } {
D42038: formal_parameter {
- {abstract_origin %$D245e6}
+ DW_AT_abstract_origin %$D245e6
}
D42045: inlined_subroutine {
- {abstract_origin %$D5ab2}
- {low_pc 0x8060 addr}
- {high_pc 0xc data4}
- } {
- D420b5: formal_parameter {
- {abstract_origin %$D5ac2}
- }
- }
- }
+ DW_AT_abstract_origin %$D5ab2
+ DW_AT_low_pc 0x8060 addr
+ DW_AT_high_pc 0xc data4
+ } {
+ D420b5: formal_parameter {
+ DW_AT_abstract_origin %$D5ac2
+ }
+ }
+ }
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/nameless-enum.exp b/gdb/testsuite/gdb.dwarf2/nameless-enum.exp
index 1610b7c..6d42fb7 100644
--- a/gdb/testsuite/gdb.dwarf2/nameless-enum.exp
+++ b/gdb/testsuite/gdb.dwarf2/nameless-enum.exp
@@ -27,25 +27,25 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_D}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
+ DW_AT_language @DW_LANG_D
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
} {
declare_labels integer_label
integer_label: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name int}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
DW_TAG_enumeration_type {
- {DW_AT_type :$integer_label}
- {DW_AT_enum_class 1 DW_FORM_flag}
+ DW_AT_type :$integer_label
+ DW_AT_enum_class 1 DW_FORM_flag
} {
DW_TAG_enumerator {
- {DW_AT_name VALUE}
- {DW_AT_const_value 17 DW_FORM_sdata}
+ DW_AT_name VALUE
+ DW_AT_const_value 17 DW_FORM_sdata
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/negative-data-member-location.exp b/gdb/testsuite/gdb.dwarf2/negative-data-member-location.exp
index 365204f..48f272e 100644
--- a/gdb/testsuite/gdb.dwarf2/negative-data-member-location.exp
+++ b/gdb/testsuite/gdb.dwarf2/negative-data-member-location.exp
@@ -31,33 +31,35 @@ set asm_file [standard_output_file ${srcfile2}]
Dwarf::assemble ${asm_file} {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C99}
- {DW_AT_producer "GNU C++17 11.1.0 -mtune=generic -march=x86-64 -g3 -O0"}
- {name ${::srcfile}}
+ DW_AT_language @DW_LANG_C99
+ DW_AT_producer "GNU C++17 11.1.0 -mtune=generic -march=x86-64 -g3 -O0"
+ DW_AT_name ${::srcfile}
} {
declare_labels int_label struct_label
int_label: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_udata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name "int"}
+ DW_AT_byte_size 4 DW_FORM_udata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name "int"
}
struct_label: DW_TAG_structure_type {
- {DW_AT_name "the_struct"}
- {DW_AT_byte_size 4 DW_FORM_udata}
+ DW_AT_name "the_struct"
+ DW_AT_byte_size 4 DW_FORM_udata
} {
DW_TAG_member {
- {DW_AT_name "field"}
- {DW_AT_type :$int_label}
- {DW_AT_data_member_location -1 DW_FORM_sdata}
+ DW_AT_name "field"
+ DW_AT_type :$int_label
+ DW_AT_data_member_location -1 DW_FORM_sdata
}
}
DW_TAG_variable {
- {DW_AT_name "s"}
- {DW_AT_type :$struct_label}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "s"]} SPECIAL_expr}
+ DW_AT_name "s"
+ DW_AT_type :$struct_label
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "s"]
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/nonvar-access.exp b/gdb/testsuite/gdb.dwarf2/nonvar-access.exp
index 4aef19a..93c3dea 100644
--- a/gdb/testsuite/gdb.dwarf2/nonvar-access.exp
+++ b/gdb/testsuite/gdb.dwarf2/nonvar-access.exp
@@ -31,165 +31,165 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {DW_AT_name $srcfile}
+ DW_AT_name $srcfile
} {
declare_labels int_type_label char_type_label \
struct_s_label struct_t_label array_a9_label \
char_ptr_label implicit_a_label stack_b_label
int_type_label: base_type {
- {name "int"}
- {encoding @DW_ATE_signed}
- {byte_size 4 DW_FORM_sdata}
+ DW_AT_name "int"
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 4 DW_FORM_sdata
}
char_type_label: base_type {
- {name "char"}
- {encoding @DW_ATE_unsigned}
- {byte_size 1 DW_FORM_sdata}
+ DW_AT_name "char"
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_byte_size 1 DW_FORM_sdata
}
char_ptr_label: pointer_type {
- {type :$char_type_label}
+ DW_AT_type :$char_type_label
}
struct_s_label: structure_type {
- {name s}
- {byte_size 4 DW_FORM_sdata}
+ DW_AT_name s
+ DW_AT_byte_size 4 DW_FORM_sdata
} {
member {
- {name a}
- {type :$int_type_label}
- {data_member_location 0 DW_FORM_udata}
- {bit_size 8 DW_FORM_udata}
+ DW_AT_name a
+ DW_AT_type :$int_type_label
+ DW_AT_data_member_location 0 DW_FORM_udata
+ DW_AT_bit_size 8 DW_FORM_udata
}
member {
- {name b}
- {type :$int_type_label}
- {data_bit_offset 8 DW_FORM_udata}
- {bit_size 24 DW_FORM_udata}
+ DW_AT_name b
+ DW_AT_type :$int_type_label
+ DW_AT_data_bit_offset 8 DW_FORM_udata
+ DW_AT_bit_size 24 DW_FORM_udata
}
}
struct_t_label: structure_type {
- {name t}
- {byte_size 4 DW_FORM_sdata}
+ DW_AT_name t
+ DW_AT_byte_size 4 DW_FORM_sdata
} {
member {
- {name a}
- {type :$int_type_label}
- {data_member_location 0 DW_FORM_udata}
- {bit_size 9 DW_FORM_udata}
+ DW_AT_name a
+ DW_AT_type :$int_type_label
+ DW_AT_data_member_location 0 DW_FORM_udata
+ DW_AT_bit_size 9 DW_FORM_udata
}
member {
- {name b}
- {type :$int_type_label}
- {data_bit_offset 9 DW_FORM_udata}
- {bit_size 23 DW_FORM_udata}
+ DW_AT_name b
+ DW_AT_type :$int_type_label
+ DW_AT_data_bit_offset 9 DW_FORM_udata
+ DW_AT_bit_size 23 DW_FORM_udata
}
}
array_a9_label: array_type {
- {type :$char_type_label}
+ DW_AT_type :$char_type_label
} {
subrange_type {
- {type :$int_type_label}
- {upper_bound 8 DW_FORM_udata}
+ DW_AT_type :$int_type_label
+ DW_AT_upper_bound 8 DW_FORM_udata
}
}
DW_TAG_subprogram {
- {MACRO_AT_func {main}}
- {DW_AT_external 1 flag}
+ MACRO_AT_func {main}
+ DW_AT_external 1 flag
} {
# Simple variable without location.
DW_TAG_variable {
- {name undef_int}
- {type :$int_type_label}
+ DW_AT_name undef_int
+ DW_AT_type :$int_type_label
}
# Struct variable without location.
DW_TAG_variable {
- {name undef_s}
- {type :$struct_s_label}
+ DW_AT_name undef_s
+ DW_AT_type :$struct_s_label
}
# Composite location: byte-aligned pieces.
DW_TAG_variable {
- {name def_s}
- {type :$struct_s_label}
- {location {
+ DW_AT_name def_s
+ DW_AT_type :$struct_s_label
+ DW_AT_location {
const1u 0
stack_value
bit_piece 8 0
const1s -1
stack_value
bit_piece 24 0
- } SPECIAL_expr}
+ } SPECIAL_expr
}
# Composite location: non-byte-aligned pieces.
DW_TAG_variable {
- {name def_t}
- {type :$struct_t_label}
- {location {
+ DW_AT_name def_t
+ DW_AT_type :$struct_t_label
+ DW_AT_location {
const2s -184
stack_value
bit_piece 9 0
const4u 1752286
stack_value
bit_piece 23 0
- } SPECIAL_expr}
+ } SPECIAL_expr
}
# Composite location with some empty pieces.
DW_TAG_variable {
- {name part_def_a}
- {type :$array_a9_label}
- {location {
+ DW_AT_name part_def_a
+ DW_AT_type :$array_a9_label
+ DW_AT_location {
piece 3
const4u 0xf1927314
stack_value
piece 4
piece 2
- } SPECIAL_expr}
+ } SPECIAL_expr
}
# Implicit location: immediate value.
DW_TAG_variable {
- {name def_implicit_s}
- {type :$struct_s_label}
- {location {
+ DW_AT_name def_implicit_s
+ DW_AT_type :$struct_s_label
+ DW_AT_location {
implicit_value 0x12 0x34 0x56 0x78
- } SPECIAL_expr}
+ } SPECIAL_expr
}
# Implicit location: immediate value for whole array, with
# excess bytes.
implicit_a_label: DW_TAG_variable {
- {name def_implicit_a}
- {type :$array_a9_label}
- {location {
+ DW_AT_name def_implicit_a
+ DW_AT_type :$array_a9_label
+ DW_AT_location {
implicit_value 0x1 0x12 0x23 0x34 0x45 \
0x56 0x67 0x78 0x89 0x9a 0xab
- } SPECIAL_expr}
+ } SPECIAL_expr
}
# Implicit pointer into immediate value.
DW_TAG_variable {
- {name implicit_a_ptr}
- {type :$char_ptr_label}
- {location {
+ DW_AT_name implicit_a_ptr
+ DW_AT_type :$char_ptr_label
+ DW_AT_location [subst {
implicit_pointer $implicit_a_label 5
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
# Stack-value location.
stack_b_label: DW_TAG_variable {
- {name def_stack_b}
- {type :$struct_t_label}
- {location {
+ DW_AT_name def_stack_b
+ DW_AT_type :$struct_t_label
+ DW_AT_location {
const4u 0x1a2b3c4d
stack_value
- } SPECIAL_expr}
+ } SPECIAL_expr
}
# Implicit pointer into stack value.
DW_TAG_variable {
- {name implicit_b_ptr}
- {type :$char_ptr_label}
- {location {
+ DW_AT_name implicit_b_ptr
+ DW_AT_type :$char_ptr_label
+ DW_AT_location [subst {
implicit_pointer $stack_b_label 1
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/nostaticblock.exp b/gdb/testsuite/gdb.dwarf2/nostaticblock.exp
index 2cc8338..0d5943c 100644
--- a/gdb/testsuite/gdb.dwarf2/nostaticblock.exp
+++ b/gdb/testsuite/gdb.dwarf2/nostaticblock.exp
@@ -26,8 +26,8 @@ set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {low_pc 0x104320 DW_FORM_addr}
- {high_pc 0x1045ed DW_FORM_addr}
+ DW_AT_low_pc 0x104320 DW_FORM_addr
+ DW_AT_high_pc 0x1045ed DW_FORM_addr
} {
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/opaque-type-lookup.exp b/gdb/testsuite/gdb.dwarf2/opaque-type-lookup.exp
index 757212b..b4d275c 100644
--- a/gdb/testsuite/gdb.dwarf2/opaque-type-lookup.exp
+++ b/gdb/testsuite/gdb.dwarf2/opaque-type-lookup.exp
@@ -44,37 +44,37 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name opaque_before}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name opaque_before
} {
imported_unit {
- {import $partial_unit_with_opaque ref_addr}
+ DW_AT_import $partial_unit_with_opaque ref_addr
}
imported_unit {
- {import $partial_unit_defining_a ref_addr}
+ DW_AT_import $partial_unit_defining_a ref_addr
}
}
}
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name opaque_after}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name opaque_after
} {
imported_unit {
- {import $partial_unit_defining_b ref_addr}
+ DW_AT_import $partial_unit_defining_b ref_addr
}
imported_unit {
- {import $partial_unit_with_opaque ref_addr}
+ DW_AT_import $partial_unit_with_opaque ref_addr
}
}
}
cu {} {
partial_unit_with_opaque: partial_unit {
- {name "partial_unit_with_opaque"}
+ DW_AT_name "partial_unit_with_opaque"
} {
# Normally gdb doesn't add opaque types to the symbol table
# but there are times when it will, and in order to exercise
@@ -82,89 +82,89 @@ Dwarf::assemble $asm_file {
# By giving it a size of 1 we achieve this.
opaque_struct_a_label: structure_type {
- {name struct_a}
- {declaration 1 flag}
- {byte_size 1 DW_FORM_sdata}
+ DW_AT_name struct_a
+ DW_AT_declaration 1 flag
+ DW_AT_byte_size 1 DW_FORM_sdata
}
opaque_struct_b_label: structure_type {
- {name struct_b}
- {declaration 1 flag}
- {byte_size 1 DW_FORM_sdata}
+ DW_AT_name struct_b
+ DW_AT_declaration 1 flag
+ DW_AT_byte_size 1 DW_FORM_sdata
}
DW_TAG_variable {
- {name variable_a}
- {type :$opaque_struct_a_label}
- {external 1 flag}
- {declaration 1 flag}
+ DW_AT_name variable_a
+ DW_AT_type :$opaque_struct_a_label
+ DW_AT_external 1 flag
+ DW_AT_declaration 1 flag
}
DW_TAG_variable {
- {name variable_b}
- {type :$opaque_struct_b_label}
- {external 1 flag}
- {declaration 1 flag}
+ DW_AT_name variable_b
+ DW_AT_type :$opaque_struct_b_label
+ DW_AT_external 1 flag
+ DW_AT_declaration 1 flag
}
}
}
cu {} {
partial_unit_defining_a: partial_unit {
- {name "partial_unit_defining_a"}
+ DW_AT_name "partial_unit_defining_a"
} {
char_type1_label: base_type {
- {name "signed char"}
- {encoding @DW_ATE_signed}
- {byte_size 1 DW_FORM_sdata}
+ DW_AT_name "signed char"
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 1 DW_FORM_sdata
}
struct_a_label: structure_type {
- {name struct_a}
- {byte_size 1 DW_FORM_sdata}
+ DW_AT_name struct_a
+ DW_AT_byte_size 1 DW_FORM_sdata
} {
member {
- {name xyz}
- {type :$char_type1_label}
- {data_member_location 0 DW_FORM_sdata}
+ DW_AT_name xyz
+ DW_AT_type :$char_type1_label
+ DW_AT_data_member_location 0 DW_FORM_sdata
}
}
DW_TAG_variable {
- {name variable_a}
- {type :$struct_a_label}
- {external 1 flag}
- {linkage_name variable_a}
+ DW_AT_name variable_a
+ DW_AT_type :$struct_a_label
+ DW_AT_external 1 flag
+ DW_AT_linkage_name variable_a
}
}
}
cu {} {
partial_unit_defining_b: partial_unit {
- {name "partial_unit_defining_b"}
+ DW_AT_name "partial_unit_defining_b"
} {
char_type2_label: base_type {
- {name "signed char"}
- {encoding @DW_ATE_signed}
- {byte_size 1 DW_FORM_sdata}
+ DW_AT_name "signed char"
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 1 DW_FORM_sdata
}
struct_b_label: structure_type {
- {name struct_b}
- {byte_size 1 DW_FORM_sdata}
+ DW_AT_name struct_b
+ DW_AT_byte_size 1 DW_FORM_sdata
} {
member {
- {name xyz}
- {type :$char_type2_label}
- {data_member_location 0 DW_FORM_sdata}
+ DW_AT_name xyz
+ DW_AT_type :$char_type2_label
+ DW_AT_data_member_location 0 DW_FORM_sdata
}
}
DW_TAG_variable {
- {name variable_b}
- {type :$struct_b_label}
- {external 1 flag}
- {linkage_name variable_b}
+ DW_AT_name variable_b
+ DW_AT_type :$struct_b_label
+ DW_AT_external 1 flag
+ DW_AT_linkage_name variable_b
}
}
}
@@ -173,11 +173,11 @@ Dwarf::assemble $asm_file {
# so keep this separate.
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name main}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name main
} {
subprogram {
- {MACRO_AT_func { main }}
+ MACRO_AT_func { main }
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/opt-out-not-implptr.exp b/gdb/testsuite/gdb.dwarf2/opt-out-not-implptr.exp
index e5334f2..8c60d03 100644
--- a/gdb/testsuite/gdb.dwarf2/opt-out-not-implptr.exp
+++ b/gdb/testsuite/gdb.dwarf2/opt-out-not-implptr.exp
@@ -30,57 +30,57 @@ Dwarf::assemble $asm_file {
declare_labels i64_type i32_type i64_array i32_array
i64_type: base_type {
- {name "int64_t"}
- {encoding @DW_ATE_signed}
- {byte_size 8 DW_FORM_sdata}
+ DW_AT_name "int64_t"
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 8 DW_FORM_sdata
}
i32_type: base_type {
- {name "int32_t"}
- {encoding @DW_ATE_signed}
- {byte_size 4 DW_FORM_sdata}
+ DW_AT_name "int32_t"
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 4 DW_FORM_sdata
}
i64_array: DW_TAG_array_type {
- {DW_AT_name array_type}
- {DW_AT_type :$i64_type}
+ DW_AT_name array_type
+ DW_AT_type :$i64_type
} {
DW_TAG_subrange_type {
- {DW_AT_type :$i64_type}
- {DW_AT_lower_bound 0 DW_FORM_data1}
- {DW_AT_upper_bound 3 DW_FORM_data1}
+ DW_AT_type :$i64_type
+ DW_AT_lower_bound 0 DW_FORM_data1
+ DW_AT_upper_bound 3 DW_FORM_data1
}
}
i32_array: DW_TAG_array_type {
- {DW_AT_name array_type}
- {DW_AT_type :$i32_type}
+ DW_AT_name array_type
+ DW_AT_type :$i32_type
} {
DW_TAG_subrange_type {
- {DW_AT_type :$i32_type}
- {DW_AT_lower_bound 0 DW_FORM_data1}
- {DW_AT_upper_bound 3 DW_FORM_data1}
+ DW_AT_type :$i32_type
+ DW_AT_lower_bound 0 DW_FORM_data1
+ DW_AT_upper_bound 3 DW_FORM_data1
}
}
DW_TAG_variable {
- {name i64_noptr}
- {type :$i64_array}
- {location {
+ DW_AT_name i64_noptr
+ DW_AT_type :$i64_array
+ DW_AT_location [subst {
DW_OP_constu $::c64
DW_OP_stack_value
DW_OP_piece 8
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
DW_TAG_variable {
- {name i32_noptr}
- {type :$i32_array}
- {location {
+ DW_AT_name i32_noptr
+ DW_AT_type :$i32_array
+ DW_AT_location [subst {
DW_OP_constu $::c32
DW_OP_stack_value
DW_OP_piece 4
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/rnglists-multiple-cus.exp b/gdb/testsuite/gdb.dwarf2/rnglists-multiple-cus.exp
index 0545b35..d6cb4c1 100644
--- a/gdb/testsuite/gdb.dwarf2/rnglists-multiple-cus.exp
+++ b/gdb/testsuite/gdb.dwarf2/rnglists-multiple-cus.exp
@@ -49,14 +49,14 @@ foreach_with_prefix is_64 {false true} {
is_64 $is_64
} {
DW_TAG_compile_unit {
- {DW_AT_ranges 1 DW_FORM_rnglistx}
- {DW_AT_rnglists_base cu_table DW_FORM_sec_offset}
+ DW_AT_ranges 1 DW_FORM_rnglistx
+ DW_AT_rnglists_base cu_table DW_FORM_sec_offset
} {
# This tests a DW_AT_ranges attribute of form DW_FORM_rnglistx on a
# function, which was buggy at some point.
DW_TAG_subprogram {
- {DW_AT_name "foo"}
- {DW_AT_ranges 2 DW_FORM_rnglistx}
+ DW_AT_name "foo"
+ DW_AT_ranges 2 DW_FORM_rnglistx
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/rnglists-sec-offset.exp b/gdb/testsuite/gdb.dwarf2/rnglists-sec-offset.exp
index 7c65dcd..5b12ae4 100644
--- a/gdb/testsuite/gdb.dwarf2/rnglists-sec-offset.exp
+++ b/gdb/testsuite/gdb.dwarf2/rnglists-sec-offset.exp
@@ -43,11 +43,11 @@ foreach_with_prefix is_64 {false true} {
is_64 $is_64
} {
DW_TAG_compile_unit {
- {DW_AT_ranges $cu1_range_list DW_FORM_sec_offset}
+ DW_AT_ranges $cu1_range_list DW_FORM_sec_offset
} {
DW_TAG_subprogram {
- {DW_AT_name "foo"}
- {DW_AT_ranges $foo_range_list DW_FORM_sec_offset}
+ DW_AT_name "foo"
+ DW_AT_ranges $foo_range_list DW_FORM_sec_offset
}
}
}
@@ -61,12 +61,12 @@ foreach_with_prefix is_64 {false true} {
is_64 $is_64
} {
DW_TAG_compile_unit {
- {DW_AT_ranges $cu2_range_list DW_FORM_sec_offset}
- {DW_AT_rnglists_base cu2_table DW_FORM_sec_offset}
+ DW_AT_ranges $cu2_range_list DW_FORM_sec_offset
+ DW_AT_rnglists_base cu2_table DW_FORM_sec_offset
} {
DW_TAG_subprogram {
- {DW_AT_name "bar"}
- {DW_AT_ranges $bar_range_list DW_FORM_sec_offset}
+ DW_AT_name "bar"
+ DW_AT_ranges $bar_range_list DW_FORM_sec_offset
}
}
}
@@ -79,11 +79,11 @@ foreach_with_prefix is_64 {false true} {
is_64 $is_64
} {
DW_TAG_compile_unit {
- {DW_AT_ranges $cu3_range_list DW_FORM_sec_offset}
+ DW_AT_ranges $cu3_range_list DW_FORM_sec_offset
} {
DW_TAG_subprogram {
- {DW_AT_name "baz"}
- {DW_AT_ranges $baz_range_list DW_FORM_sec_offset}
+ DW_AT_name "baz"
+ DW_AT_ranges $baz_range_list DW_FORM_sec_offset
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/rust-enum.exp b/gdb/testsuite/gdb.dwarf2/rust-enum.exp
index 89d4a16..87e710e 100644
--- a/gdb/testsuite/gdb.dwarf2/rust-enum.exp
+++ b/gdb/testsuite/gdb.dwarf2/rust-enum.exp
@@ -30,64 +30,64 @@ Dwarf::assemble $asm_file {
cu { addr_size 4 } {
compile_unit {
- {name file1.txt}
- {language @DW_LANG_Rust}
+ DW_AT_name file1.txt
+ DW_AT_language @DW_LANG_Rust
} {
uinteger_label: DW_TAG_base_type {
- {DW_AT_byte_size 1 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_unsigned}
- {DW_AT_name {unsigned integer}}
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_name {unsigned integer}
}
one_label: structure_type {
- {name One}
- {byte_size 1 DW_FORM_sdata}
+ DW_AT_name One
+ DW_AT_byte_size 1 DW_FORM_sdata
} {
member {
- {name __0}
- {type :$uinteger_label}
- {data_member_location 0 data1}
+ DW_AT_name __0
+ DW_AT_type :$uinteger_label
+ DW_AT_data_member_location 0 data1
}
}
two_label: structure_type {
- {name Two}
- {byte_size 1 DW_FORM_sdata}
+ DW_AT_name Two
+ DW_AT_byte_size 1 DW_FORM_sdata
} {
member {
- {name __0}
- {type :$uinteger_label}
- {data_member_location 0 data1}
+ DW_AT_name __0
+ DW_AT_type :$uinteger_label
+ DW_AT_data_member_location 0 data1
}
}
simple_label: structure_type {
- {name Simple}
- {byte_size 2 DW_FORM_sdata}
+ DW_AT_name Simple
+ DW_AT_byte_size 2 DW_FORM_sdata
} {
variant_part {
- {discr :$discr_1_label DW_FORM_ref4}
+ DW_AT_discr :$discr_1_label DW_FORM_ref4
} {
discr_1_label: member {
- {type :$uinteger_label}
- {data_member_location 0 data1}
- {artificial 1 DW_FORM_flag_present}
+ DW_AT_type :$uinteger_label
+ DW_AT_data_member_location 0 data1
+ DW_AT_artificial 1 DW_FORM_flag_present
}
variant {
- {discr_value 65 udata}
+ DW_AT_discr_value 65 udata
} {
member {
- {type :$one_label}
- {data_member_location 1 data1}
+ DW_AT_type :$one_label
+ DW_AT_data_member_location 1 data1
}
}
variant {
} {
member {
- {type :$two_label}
- {data_member_location 1 data1}
+ DW_AT_type :$two_label
+ DW_AT_data_member_location 1 data1
}
}
}
@@ -96,14 +96,14 @@ Dwarf::assemble $asm_file {
# In PR rust/31005, a constant Rust enum value could not
# be correctly resolved.
DW_TAG_variable {
- {name constant_variable}
- {const_value 0x4141 udata}
- {type :$simple_label}
+ DW_AT_name constant_variable
+ DW_AT_const_value 0x4141 udata
+ DW_AT_type :$simple_label
}
DW_TAG_variable {
- {name constant_variable2}
- {const_value "AA" DW_FORM_block1}
- {type :$simple_label}
+ DW_AT_name constant_variable2
+ DW_AT_const_value "AA" DW_FORM_block1
+ DW_AT_type :$simple_label
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/self-spec.exp b/gdb/testsuite/gdb.dwarf2/self-spec.exp
index 2136623..3d6c853 100644
--- a/gdb/testsuite/gdb.dwarf2/self-spec.exp
+++ b/gdb/testsuite/gdb.dwarf2/self-spec.exp
@@ -26,12 +26,14 @@ standard_testfile main.c .S
set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
- compile_unit {{language @DW_LANG_C_plus_plus}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C_plus_plus
+ } {
# Check handling of self-referencing DIE.
declare_labels c1
c1: class_type {
- {name class1}
- {specification :$c1}
+ DW_AT_name class1
+ DW_AT_specification :$c1
}
# Check handling of self-referencing child DIE. Regression test
@@ -39,11 +41,11 @@ Dwarf::assemble $asm_file {
declare_labels f1 abstract_f1 f1_l
abstract_f1: subprogram {}
f1: subprogram {
- {MACRO_AT_func {main}}
- {abstract_origin :$abstract_f1}
+ MACRO_AT_func {main}
+ DW_AT_abstract_origin :$abstract_f1
} {
f1_l: label {
- {abstract_origin :$f1_l}
+ DW_AT_abstract_origin :$f1_l
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/short-build-id.exp b/gdb/testsuite/gdb.dwarf2/short-build-id.exp
index 51c6cef..439b2b2 100644
--- a/gdb/testsuite/gdb.dwarf2/short-build-id.exp
+++ b/gdb/testsuite/gdb.dwarf2/short-build-id.exp
@@ -50,17 +50,19 @@ proc run_test { buildid } {
build_id $buildid
cu { label cu_start } {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
int_label2: base_type {
- {name int}
- {byte_size 4 sdata}
- {encoding @DW_ATE_signed}
+ DW_AT_name int
+ DW_AT_byte_size 4 sdata
+ DW_AT_encoding @DW_ATE_signed
}
constant {
- {name the_int}
- {type :$int_label2}
- {const_value 99 data1}
+ DW_AT_name the_int
+ DW_AT_type :$int_label2
+ DW_AT_const_value 99 data1
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/shortpiece.exp b/gdb/testsuite/gdb.dwarf2/shortpiece.exp
index c9bf490..64d5b55 100644
--- a/gdb/testsuite/gdb.dwarf2/shortpiece.exp
+++ b/gdb/testsuite/gdb.dwarf2/shortpiece.exp
@@ -30,90 +30,90 @@ Dwarf::assemble $asm_file {
declare_labels int_label ushort_label struct_label struct_label_2
int_label: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_udata}
- {DW_AT_encoding @DW_ATE_unsigned}
- {DW_AT_name "myint"}
+ DW_AT_byte_size 4 DW_FORM_udata
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_name "myint"
}
ushort_label: DW_TAG_base_type {
- {DW_AT_byte_size 2 DW_FORM_udata}
- {DW_AT_encoding @DW_ATE_unsigned}
- {DW_AT_name "myushort"}
+ DW_AT_byte_size 2 DW_FORM_udata
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_name "myushort"
}
struct_label: DW_TAG_structure_type {
- {DW_AT_name "S"}
- {DW_AT_byte_size 8 DW_FORM_udata}
+ DW_AT_name "S"
+ DW_AT_byte_size 8 DW_FORM_udata
} {
DW_TAG_member {
- {DW_AT_name "a"}
- {DW_AT_type :${int_label}}
- {DW_AT_data_member_location 0 DW_FORM_udata}
+ DW_AT_name "a"
+ DW_AT_type :${int_label}
+ DW_AT_data_member_location 0 DW_FORM_udata
}
DW_TAG_member {
- {DW_AT_name "b"}
- {DW_AT_type :${ushort_label}}
- {DW_AT_data_member_location 4 DW_FORM_udata}
+ DW_AT_name "b"
+ DW_AT_type :${ushort_label}
+ DW_AT_data_member_location 4 DW_FORM_udata
}
}
struct_label_2: DW_TAG_structure_type {
- {DW_AT_name "S_2"}
- {DW_AT_byte_size 6 DW_FORM_udata}
+ DW_AT_name "S_2"
+ DW_AT_byte_size 6 DW_FORM_udata
} {
DW_TAG_member {
- {DW_AT_name "a"}
- {DW_AT_type :${int_label}}
- {DW_AT_data_member_location 0 DW_FORM_udata}
+ DW_AT_name "a"
+ DW_AT_type :${int_label}
+ DW_AT_data_member_location 0 DW_FORM_udata
}
DW_TAG_member {
- {DW_AT_name "b"}
- {DW_AT_type :${ushort_label}}
- {DW_AT_data_member_location 4 DW_FORM_udata}
+ DW_AT_name "b"
+ DW_AT_type :${ushort_label}
+ DW_AT_data_member_location 4 DW_FORM_udata
}
}
DW_TAG_variable {
- {DW_AT_name "s1"}
- {DW_AT_type :${struct_label}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {
+ DW_AT_name "s1"
+ DW_AT_type :${struct_label}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location {
DW_OP_constu 1
DW_OP_stack_value
DW_OP_piece 4
DW_OP_constu 0
DW_OP_stack_value
DW_OP_piece 2
- } SPECIAL_expr}
+ } SPECIAL_expr
}
DW_TAG_variable {
- {DW_AT_name "s2"}
- {DW_AT_type :${struct_label}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {
+ DW_AT_name "s2"
+ DW_AT_type :${struct_label}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location {
DW_OP_constu 1
DW_OP_stack_value
DW_OP_piece 4
DW_OP_constu 0
DW_OP_stack_value
DW_OP_piece 8
- } SPECIAL_expr}
+ } SPECIAL_expr
}
DW_TAG_variable {
- {DW_AT_name "s3"}
- {DW_AT_type :${struct_label_2}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {
+ DW_AT_name "s3"
+ DW_AT_type :${struct_label_2}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location {
DW_OP_constu 0
DW_OP_stack_value
DW_OP_piece 4
DW_OP_constu 1
DW_OP_stack_value
DW_OP_piece 2
- } SPECIAL_expr}
+ } SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/static-optimized-out.exp b/gdb/testsuite/gdb.dwarf2/static-optimized-out.exp
index 6be8283..8b139fa 100644
--- a/gdb/testsuite/gdb.dwarf2/static-optimized-out.exp
+++ b/gdb/testsuite/gdb.dwarf2/static-optimized-out.exp
@@ -28,21 +28,19 @@ set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {
- language @DW_LANG_C
- }
+ DW_AT_language @DW_LANG_C
} {
declare_labels integer_label
integer_label: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
DW_TAG_variable {
- {name var}
- {type :$integer_label}
+ DW_AT_name var
+ DW_AT_type :$integer_label
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/staticvirtual.exp b/gdb/testsuite/gdb.dwarf2/staticvirtual.exp
index e04c500..9fa1a2b 100644
--- a/gdb/testsuite/gdb.dwarf2/staticvirtual.exp
+++ b/gdb/testsuite/gdb.dwarf2/staticvirtual.exp
@@ -25,18 +25,20 @@ standard_testfile main.c -dw.S
set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
- compile_unit {{language @DW_LANG_C_plus_plus}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C_plus_plus
+ } {
structure_type {
- {name S}
- {byte_size 1 DW_FORM_sdata}
+ DW_AT_name S
+ DW_AT_byte_size 1 DW_FORM_sdata
} {
subprogram {
- {low_pc 0x1000 addr}
- {high_pc 0x2000 addr}
- {name ~S}
- {external 1 flag}
- {virtuality @DW_VIRTUALITY_virtual}
- {vtable_elem_location {const1u 1} SPECIAL_expr}
+ DW_AT_low_pc 0x1000 addr
+ DW_AT_high_pc 0x2000 addr
+ DW_AT_name ~S
+ DW_AT_external 1 flag
+ DW_AT_virtuality @DW_VIRTUALITY_virtual
+ DW_AT_vtable_elem_location {const1u 1} SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/struct-decl.exp b/gdb/testsuite/gdb.dwarf2/struct-decl.exp
index e389216..bc857a7 100644
--- a/gdb/testsuite/gdb.dwarf2/struct-decl.exp
+++ b/gdb/testsuite/gdb.dwarf2/struct-decl.exp
@@ -30,9 +30,9 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
+ DW_AT_language @DW_LANG_C_plus_plus
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
} {
declare_labels origin
@@ -42,14 +42,14 @@ Dwarf::assemble $asm_file {
# which meant that if a method referred back to them via a
# specification, it would get the wrong name.
DW_TAG_structure_type {
- {DW_AT_byte_size 8 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name the_type}
- {DW_AT_declaration 1 DW_FORM_flag_present}
+ DW_AT_byte_size 8 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name the_type
+ DW_AT_declaration 1 DW_FORM_flag_present
} {
origin: DW_TAG_subprogram {
- {DW_AT_name "method"}
- {DW_AT_declaration 1 DW_FORM_flag_present}
+ DW_AT_name "method"
+ DW_AT_declaration 1 DW_FORM_flag_present
}
}
@@ -57,8 +57,8 @@ Dwarf::assemble $asm_file {
# range that is valid in the program, so we use the main
# function's range.
DW_TAG_subprogram {
- {DW_AT_specification :$origin}
- {MACRO_AT_range main}
+ DW_AT_specification :$origin
+ MACRO_AT_range main
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/struct-with-sig-2.exp b/gdb/testsuite/gdb.dwarf2/struct-with-sig-2.exp
index 02a492d..a527263 100644
--- a/gdb/testsuite/gdb.dwarf2/struct-with-sig-2.exp
+++ b/gdb/testsuite/gdb.dwarf2/struct-with-sig-2.exp
@@ -34,18 +34,18 @@ Dwarf::assemble $asm_file {
declare_labels int_type
the_type_i: structure_type {
- {name s}
- {byte_size 4 sdata}
+ DW_AT_name s
+ DW_AT_byte_size 4 sdata
} {
member {
- {name i}
- {type :$int_type}
+ DW_AT_name i
+ DW_AT_type :$int_type
}
}
int_type: base_type {
- {name int}
- {encoding @DW_ATE_signed}
- {byte_size 4 sdata}
+ DW_AT_name int
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 4 sdata
}
}
}
@@ -55,18 +55,18 @@ Dwarf::assemble $asm_file {
declare_labels int_type
the_type_j: structure_type {
- {name s}
- {byte_size 4 sdata}
+ DW_AT_name s
+ DW_AT_byte_size 4 sdata
} {
member {
- {name j}
- {type :$int_type}
+ DW_AT_name j
+ DW_AT_type :$int_type
}
}
int_type: base_type {
- {name int}
- {encoding @DW_ATE_signed}
- {byte_size 4 sdata}
+ DW_AT_name int
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 4 sdata
}
}
}
@@ -88,32 +88,32 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {DW_AT_language @DW_LANG_C}
- {DW_AT_name main.c}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name main.c
} {
structure_type {
- {name s}
- {signature 0x0000000000000001 ref_sig8}
- {declaration 1 flag}
+ DW_AT_name s
+ DW_AT_signature 0x0000000000000001 ref_sig8
+ DW_AT_declaration 1 flag
}
DW_TAG_subprogram {
- {MACRO_AT_func {main}}
+ MACRO_AT_func {main}
}
}
}
cu {} {
compile_unit {
- {DW_AT_language @DW_LANG_C}
- {DW_AT_name foo.c}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name foo.c
} {
structure_type {
- {name s}
- {signature 0x0000000000000002 ref_sig8}
- {declaration 1 flag}
+ DW_AT_name s
+ DW_AT_signature 0x0000000000000002 ref_sig8
+ DW_AT_declaration 1 flag
}
DW_TAG_subprogram {
- {MACRO_AT_func {foo}}
+ MACRO_AT_func {foo}
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/struct-with-sig.exp b/gdb/testsuite/gdb.dwarf2/struct-with-sig.exp
index 9861327..7e15999 100644
--- a/gdb/testsuite/gdb.dwarf2/struct-with-sig.exp
+++ b/gdb/testsuite/gdb.dwarf2/struct-with-sig.exp
@@ -24,32 +24,32 @@ set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {DW_AT_language @DW_LANG_C}
- {DW_AT_name main.c}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name main.c
} {
structure_type {
- {name s}
- {signature 0x0000000000000001 ref_sig8}
- {declaration 1 flag}
+ DW_AT_name s
+ DW_AT_signature 0x0000000000000001 ref_sig8
+ DW_AT_declaration 1 flag
}
DW_TAG_subprogram {
- {MACRO_AT_func {main}}
+ MACRO_AT_func {main}
}
}
}
cu {} {
compile_unit {
- {DW_AT_language @DW_LANG_C}
- {DW_AT_name foo.c}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name foo.c
} {
structure_type {
- {name s}
- {signature 0x0000000000000002 ref_sig8}
- {declaration 1 flag}
+ DW_AT_name s
+ DW_AT_signature 0x0000000000000002 ref_sig8
+ DW_AT_declaration 1 flag
}
DW_TAG_subprogram {
- {MACRO_AT_func {foo}}
+ MACRO_AT_func {foo}
}
}
}
@@ -59,18 +59,18 @@ Dwarf::assemble $asm_file {
declare_labels int_type
the_type_i: structure_type {
- {name s}
- {byte_size 4 sdata}
+ DW_AT_name s
+ DW_AT_byte_size 4 sdata
} {
member {
- {name i}
- {type :$int_type}
+ DW_AT_name i
+ DW_AT_type :$int_type
}
}
int_type: base_type {
- {name int}
- {encoding @DW_ATE_signed}
- {byte_size 4 sdata}
+ DW_AT_name int
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 4 sdata
}
}
}
@@ -80,18 +80,18 @@ Dwarf::assemble $asm_file {
declare_labels int_type
the_type_j: structure_type {
- {name s}
- {byte_size 4 sdata}
+ DW_AT_name s
+ DW_AT_byte_size 4 sdata
} {
member {
- {name j}
- {type :$int_type}
+ DW_AT_name j
+ DW_AT_type :$int_type
}
}
int_type: base_type {
- {name int}
- {encoding @DW_ATE_signed}
- {byte_size 4 sdata}
+ DW_AT_name int
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 4 sdata
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/subrange-enum.exp b/gdb/testsuite/gdb.dwarf2/subrange-enum.exp
index 9df5774..339cb49 100644
--- a/gdb/testsuite/gdb.dwarf2/subrange-enum.exp
+++ b/gdb/testsuite/gdb.dwarf2/subrange-enum.exp
@@ -26,43 +26,45 @@ standard_testfile main.c -dw.S
set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
declare_labels integer_label enum_label subrange_label
- integer_label: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
- }
+ integer_label: DW_TAG_base_type {
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
+ }
enum_label: DW_TAG_enumeration_type {
- {DW_AT_name E}
- {DW_AT_type :$integer_label}
+ DW_AT_name E
+ DW_AT_type :$integer_label
} {
DW_TAG_enumerator {
- {DW_AT_name ONE}
- {DW_AT_const_value 1 DW_FORM_sdata}
+ DW_AT_name ONE
+ DW_AT_const_value 1 DW_FORM_sdata
}
DW_TAG_enumerator {
- {DW_AT_name TWO}
- {DW_AT_const_value 2 DW_FORM_sdata}
+ DW_AT_name TWO
+ DW_AT_const_value 2 DW_FORM_sdata
}
DW_TAG_enumerator {
- {DW_AT_name THREE}
- {DW_AT_const_value 3 DW_FORM_sdata}
+ DW_AT_name THREE
+ DW_AT_const_value 3 DW_FORM_sdata
}
}
subrange_label: DW_TAG_subrange_type {
- {lower_bound 1 DW_FORM_sdata}
- {upper_bound 2 DW_FORM_sdata}
- {type :$enum_label}
+ DW_AT_lower_bound 1 DW_FORM_sdata
+ DW_AT_upper_bound 2 DW_FORM_sdata
+ DW_AT_type :$enum_label
}
DW_TAG_variable {
- {name rangeval}
- {type :$subrange_label}
- {const_value 2 DW_FORM_udata}
+ DW_AT_name rangeval
+ DW_AT_type :$subrange_label
+ DW_AT_const_value 2 DW_FORM_udata
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/subrange.exp b/gdb/testsuite/gdb.dwarf2/subrange.exp
index 2cc7472..3e0326f 100644
--- a/gdb/testsuite/gdb.dwarf2/subrange.exp
+++ b/gdb/testsuite/gdb.dwarf2/subrange.exp
@@ -25,35 +25,37 @@ standard_testfile method-ptr.cc -dw.S
set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
- compile_unit {{language @DW_LANG_Pascal83}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_Pascal83
+ } {
declare_labels byte_label typedef_label array_label
# A subrange's underlying type that is a typedef.
byte_label: base_type {
- {name byte}
- {encoding @DW_ATE_unsigned}
- {byte_size 1 DW_FORM_sdata}
+ DW_AT_name byte
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_byte_size 1 DW_FORM_sdata
}
typedef_label: typedef {
- {name byte_typedef}
- {type :$byte_label}
+ DW_AT_name byte_typedef
+ DW_AT_type :$byte_label
}
array_label: array_type {
- {type :$byte_label}
+ DW_AT_type :$byte_label
} {
subrange_type {
- {lower_bound 0 DW_FORM_sdata}
- {upper_bound 191 DW_FORM_sdata}
- {byte_stride 2 DW_FORM_sdata}
- {type :$typedef_label}
+ DW_AT_lower_bound 0 DW_FORM_sdata
+ DW_AT_upper_bound 191 DW_FORM_sdata
+ DW_AT_byte_stride 2 DW_FORM_sdata
+ DW_AT_type :$typedef_label
}
}
typedef {
- {name TByteArray}
- {type :$array_label}
+ DW_AT_name TByteArray
+ DW_AT_type :$array_label
}
# This subrange's underlying type is signed, but the bounds are
@@ -61,21 +63,21 @@ Dwarf::assemble $asm_file {
declare_labels signed_byte_label subrange_with_buggy_negative_bounds_label
signed_byte_label: base_type {
- {name signed_byte}
- {encoding @DW_ATE_signed}
- {byte_size 1 DW_FORM_sdata}
+ DW_AT_name signed_byte
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 1 DW_FORM_sdata
}
# The bounds mean -16 to -12.
subrange_with_buggy_negative_bounds_label: subrange_type {
- {lower_bound 0xf0 DW_FORM_udata}
- {upper_bound 0xf4 DW_FORM_udata}
- {type :$signed_byte_label}
+ DW_AT_lower_bound 0xf0 DW_FORM_udata
+ DW_AT_upper_bound 0xf4 DW_FORM_udata
+ DW_AT_type :$signed_byte_label
}
DW_TAG_variable {
- {name subrange_with_buggy_negative_bounds_variable}
- {type :$subrange_with_buggy_negative_bounds_label}
+ DW_AT_name subrange_with_buggy_negative_bounds_variable
+ DW_AT_type :$subrange_with_buggy_negative_bounds_label
}
# This subrange's base type is 16-bytes long (although the bounds fit in
@@ -83,19 +85,19 @@ Dwarf::assemble $asm_file {
declare_labels a_16_byte_integer_label a_16_byte_subrange_label
a_16_byte_integer_label: base_type {
- {byte_size 16 udata}
- {encoding @DW_ATE_signed}
+ DW_AT_byte_size 16 udata
+ DW_AT_encoding @DW_ATE_signed
}
a_16_byte_subrange_label: subrange_type {
- {lower_bound -9223372036854775808 DW_FORM_sdata}
- {upper_bound 9223372036854775807 DW_FORM_sdata}
- {type :$a_16_byte_integer_label}
+ DW_AT_lower_bound -9223372036854775808 DW_FORM_sdata
+ DW_AT_upper_bound 9223372036854775807 DW_FORM_sdata
+ DW_AT_type :$a_16_byte_integer_label
}
DW_TAG_variable {
- {name a_16_byte_subrange_variable}
- {type :$a_16_byte_subrange_label}
+ DW_AT_name a_16_byte_subrange_variable
+ DW_AT_type :$a_16_byte_subrange_label
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/symbol_needs_eval_fail.exp b/gdb/testsuite/gdb.dwarf2/symbol_needs_eval_fail.exp
index e69d9b4..6efd458 100644
--- a/gdb/testsuite/gdb.dwarf2/symbol_needs_eval_fail.exp
+++ b/gdb/testsuite/gdb.dwarf2/symbol_needs_eval_fail.exp
@@ -63,23 +63,23 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_name symbol_needs_eval.c}
- {DW_AT_comp_dir /tmp}
+ DW_AT_name symbol_needs_eval.c
+ DW_AT_comp_dir /tmp
} {
declare_labels int_type_label
# define int type
int_type_label: DW_TAG_base_type {
- {DW_AT_name "int"}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_byte_size $int_size DW_FORM_sdata}
+ DW_AT_name "int"
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size $int_size DW_FORM_sdata
}
# define artificial variable a
DW_TAG_variable {
- {DW_AT_name a}
- {DW_AT_type :$int_type_label}
- {DW_AT_location {
+ DW_AT_name a
+ DW_AT_type :$int_type_label
+ DW_AT_location [subst {
DW_OP_addr $exec_mask_var
DW_OP_deref_size $int_size
@@ -91,8 +91,8 @@ Dwarf::assemble $asm_file {
DW_OP_skip 3
DW_OP_bregx $dwarf_regnum 0
DW_OP_stack_value
- } SPECIAL_expr}
- {external 1 flag}
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/symbol_needs_eval_timeout.exp b/gdb/testsuite/gdb.dwarf2/symbol_needs_eval_timeout.exp
index a6773d5..61a40eb 100644
--- a/gdb/testsuite/gdb.dwarf2/symbol_needs_eval_timeout.exp
+++ b/gdb/testsuite/gdb.dwarf2/symbol_needs_eval_timeout.exp
@@ -63,40 +63,40 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_name symbol_needs_eval.c}
- {DW_AT_comp_dir /tmp}
+ DW_AT_name symbol_needs_eval.c
+ DW_AT_comp_dir /tmp
} {
declare_labels int_type_label
# define int type
int_type_label: DW_TAG_base_type {
- {DW_AT_name "int"}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_byte_size $int_size DW_FORM_sdata}
+ DW_AT_name "int"
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size $int_size DW_FORM_sdata
}
# add info for variable exec_mask
DW_TAG_variable {
- {DW_AT_name exec_mask}
- {DW_AT_type :$int_type_label}
- {DW_AT_location {
+ DW_AT_name exec_mask
+ DW_AT_type :$int_type_label
+ DW_AT_location [subst {
DW_OP_addr $exec_mask_var
- } SPECIAL_expr}
- {external 1 flag}
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
}
# add info for subprogram main
DW_TAG_subprogram {
- {MACRO_AT_func { main }}
- {DW_AT_frame_base {
+ MACRO_AT_func { main }
+ DW_AT_frame_base [subst {
DW_OP_regx $dwarf_regnum
- } SPECIAL_expr}
+ }] SPECIAL_expr
} {
# define artificial variable a
DW_TAG_variable {
- {DW_AT_name a}
- {DW_AT_type :$int_type_label}
- {DW_AT_location {
+ DW_AT_name a
+ DW_AT_type :$int_type_label
+ DW_AT_location [subst {
DW_OP_lit1
DW_OP_addr $exec_mask_var
DW_OP_deref_size $int_size
@@ -112,8 +112,8 @@ Dwarf::assemble $asm_file {
# conditional jump to DW_OP_drop
DW_OP_bra -9
DW_OP_stack_value
- } SPECIAL_expr}
- {external 1 flag}
+ }] SPECIAL_expr
+ DW_AT_external 1 flag
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/symtab-producer.exp b/gdb/testsuite/gdb.dwarf2/symtab-producer.exp
index 1734a77..2826ba7 100644
--- a/gdb/testsuite/gdb.dwarf2/symtab-producer.exp
+++ b/gdb/testsuite/gdb.dwarf2/symtab-producer.exp
@@ -26,46 +26,46 @@ set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_producer "ACME Compiler Company"}
- {DW_AT_language @DW_LANG_C}
- {DW_AT_name symtab-producer-dw.c}
- {DW_AT_comp_dir /tmp}
+ DW_AT_producer "ACME Compiler Company"
+ DW_AT_language @DW_LANG_C
+ DW_AT_name symtab-producer-dw.c
+ DW_AT_comp_dir /tmp
} {
declare_labels integer_label
integer_label: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
DW_TAG_variable {
- {DW_AT_name with_producer}
- {DW_AT_type :$integer_label}
- {DW_AT_external 1 flag}
- {DW_AT_const_value 42 DW_FORM_sdata}
+ DW_AT_name with_producer
+ DW_AT_type :$integer_label
+ DW_AT_external 1 flag
+ DW_AT_const_value 42 DW_FORM_sdata
}
}
}
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C}
- {DW_AT_name symtab-producer2-dw.c}
- {DW_AT_comp_dir /tmp}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name symtab-producer2-dw.c
+ DW_AT_comp_dir /tmp
} {
declare_labels integer_label
integer_label: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name integer}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name integer
}
DW_TAG_variable {
- {DW_AT_name without_producer}
- {DW_AT_type :$integer_label}
- {DW_AT_external 1 flag}
- {DW_AT_const_value 43 DW_FORM_sdata}
+ DW_AT_name without_producer
+ DW_AT_type :$integer_label
+ DW_AT_external 1 flag
+ DW_AT_const_value 43 DW_FORM_sdata
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/template-specification-full-name.exp b/gdb/testsuite/gdb.dwarf2/template-specification-full-name.exp
index 60b49a5..52d9b32 100644
--- a/gdb/testsuite/gdb.dwarf2/template-specification-full-name.exp
+++ b/gdb/testsuite/gdb.dwarf2/template-specification-full-name.exp
@@ -35,19 +35,19 @@ Dwarf::assemble $asm_file {
cu { label cu_start } {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
+ DW_AT_language @DW_LANG_C_plus_plus
} {
declare_labels templated_subprogram int
int: DW_TAG_base_type {
- {DW_AT_name "int"}
- {DW_AT_byte_size 4 DW_FORM_data1}
- {DW_AT_encoding @DW_ATE_signed}
+ DW_AT_name "int"
+ DW_AT_byte_size 4 DW_FORM_data1
+ DW_AT_encoding @DW_ATE_signed
}
# The templated subprogram.
templated_subprogram: DW_TAG_subprogram {
- {DW_AT_name "apply"}
+ DW_AT_name "apply"
}
# The template specialization.
@@ -55,12 +55,12 @@ Dwarf::assemble $asm_file {
# The low and high PC are phony: we just need an address range that
# is valid in the program, so we use the main function's range.
DW_TAG_subprogram {
- {DW_AT_specification :$templated_subprogram}
- {MACRO_AT_range main}
+ DW_AT_specification :$templated_subprogram
+ MACRO_AT_range main
} {
DW_TAG_template_type_param {
- {DW_AT_name "T"}
- {DW_AT_type :$int DW_FORM_ref4}
+ DW_AT_name "T"
+ DW_AT_type :$int DW_FORM_ref4
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/typeddwarf.exp b/gdb/testsuite/gdb.dwarf2/typeddwarf.exp
index 1135709..b80ce97 100644
--- a/gdb/testsuite/gdb.dwarf2/typeddwarf.exp
+++ b/gdb/testsuite/gdb.dwarf2/typeddwarf.exp
@@ -78,7 +78,7 @@ proc scan_gdb_tests {} {
continue
}
- eval $test_cmd
+ {*}$test_cmd
}
close $fd
}
diff --git a/gdb/testsuite/gdb.dwarf2/typedef-void-finish.exp b/gdb/testsuite/gdb.dwarf2/typedef-void-finish.exp
index e59286d..a96c1ac 100644
--- a/gdb/testsuite/gdb.dwarf2/typedef-void-finish.exp
+++ b/gdb/testsuite/gdb.dwarf2/typedef-void-finish.exp
@@ -31,29 +31,29 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_producer "GNU C 8.1"}
- {DW_AT_language @DW_LANG_C}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
- } {
+ DW_AT_producer "GNU C 8.1"
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
+ } {
declare_labels main_type void_typedef
main_type: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
}
void_typedef: DW_TAG_typedef {
- {name foo}
+ DW_AT_name foo
}
- DW_TAG_subprogram {
- {MACRO_AT_func {func}}
- {type :$void_typedef}
+ DW_TAG_subprogram {
+ MACRO_AT_func {func}
+ DW_AT_type :$void_typedef
}
- DW_TAG_subprogram {
- {MACRO_AT_func {main}}
- {type :$main_type}
+ DW_TAG_subprogram {
+ MACRO_AT_func {main}
+ DW_AT_type :$main_type
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/utf-rust.exp b/gdb/testsuite/gdb.dwarf2/utf-rust.exp
index 3380f8d..9ab9bf5 100644
--- a/gdb/testsuite/gdb.dwarf2/utf-rust.exp
+++ b/gdb/testsuite/gdb.dwarf2/utf-rust.exp
@@ -34,19 +34,19 @@ Dwarf::assemble $asm_file {
# both 32- and 64-bit machines.
cu { addr_size 4 } {
compile_unit {
- {name file1.txt}
- {language @DW_LANG_Rust}
+ DW_AT_name file1.txt
+ DW_AT_language @DW_LANG_Rust
} {
- char_label: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_UTF}
- {DW_AT_name char}
- }
+ char_label: DW_TAG_base_type {
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_UTF
+ DW_AT_name char
+ }
DW_TAG_variable {
- {name cvalue}
- {type :$char_label}
- {const_value 97 DW_FORM_udata}
+ DW_AT_name cvalue
+ DW_AT_type :$char_label
+ DW_AT_const_value 97 DW_FORM_udata
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/var-access.exp b/gdb/testsuite/gdb.dwarf2/var-access.exp
index 347d276..6889cc2 100644
--- a/gdb/testsuite/gdb.dwarf2/var-access.exp
+++ b/gdb/testsuite/gdb.dwarf2/var-access.exp
@@ -54,8 +54,8 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
} {
declare_labels char_type_label
declare_labels int_type_label short_type_label
@@ -64,131 +64,131 @@ Dwarf::assemble $asm_file {
# char
char_type_label: base_type {
- {name "char"}
- {encoding @DW_ATE_unsigned_char}
- {byte_size 1 DW_FORM_sdata}
+ DW_AT_name "char"
+ DW_AT_encoding @DW_ATE_unsigned_char
+ DW_AT_byte_size 1 DW_FORM_sdata
}
# int
int_type_label: base_type {
- {name "int"}
- {encoding @DW_ATE_signed}
- {byte_size 4 DW_FORM_sdata}
+ DW_AT_name "int"
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 4 DW_FORM_sdata
}
# char [8]
array_a8_label: array_type {
- {type :$char_type_label}
+ DW_AT_type :$char_type_label
} {
subrange_type {
- {type :$int_type_label}
- {upper_bound 7 DW_FORM_udata}
+ DW_AT_type :$int_type_label
+ DW_AT_upper_bound 7 DW_FORM_udata
}
}
# struct s { char a, b, c, d; };
struct_s_label: structure_type {
- {name "s"}
- {byte_size 4 DW_FORM_sdata}
+ DW_AT_name "s"
+ DW_AT_byte_size 4 DW_FORM_sdata
} {
member {
- {name "a"}
- {type :$char_type_label}
- {data_member_location 0 DW_FORM_udata}
+ DW_AT_name "a"
+ DW_AT_type :$char_type_label
+ DW_AT_data_member_location 0 DW_FORM_udata
}
member {
- {name "b"}
- {type :$char_type_label}
- {data_member_location 1 DW_FORM_udata}
+ DW_AT_name "b"
+ DW_AT_type :$char_type_label
+ DW_AT_data_member_location 1 DW_FORM_udata
}
member {
- {name "c"}
- {type :$char_type_label}
- {data_member_location 2 DW_FORM_udata}
+ DW_AT_name "c"
+ DW_AT_type :$char_type_label
+ DW_AT_data_member_location 2 DW_FORM_udata
}
member {
- {name "d"}
- {type :$char_type_label}
- {data_member_location 3 DW_FORM_udata}
+ DW_AT_name "d"
+ DW_AT_type :$char_type_label
+ DW_AT_data_member_location 3 DW_FORM_udata
}
}
# struct t { int u, x:9, y:13, z:10; };
struct_t_label: structure_type {
- {name "t"}
- {byte_size 8 DW_FORM_sdata}
+ DW_AT_name "t"
+ DW_AT_byte_size 8 DW_FORM_sdata
} {
member {
- {name "u"}
- {type :$int_type_label}
+ DW_AT_name "u"
+ DW_AT_type :$int_type_label
}
member {
- {name "x"}
- {type :$int_type_label}
- {data_member_location 4 DW_FORM_udata}
- {bit_size 9 DW_FORM_udata}
+ DW_AT_name "x"
+ DW_AT_type :$int_type_label
+ DW_AT_data_member_location 4 DW_FORM_udata
+ DW_AT_bit_size 9 DW_FORM_udata
}
member {
- {name "y"}
- {type :$int_type_label}
- {data_bit_offset 41 DW_FORM_udata}
- {bit_size 13 DW_FORM_udata}
+ DW_AT_name "y"
+ DW_AT_type :$int_type_label
+ DW_AT_data_bit_offset 41 DW_FORM_udata
+ DW_AT_bit_size 13 DW_FORM_udata
}
member {
- {name "z"}
- {type :$int_type_label}
- {data_bit_offset 54 DW_FORM_udata}
- {bit_size 10 DW_FORM_udata}
+ DW_AT_name "z"
+ DW_AT_type :$int_type_label
+ DW_AT_data_bit_offset 54 DW_FORM_udata
+ DW_AT_bit_size 10 DW_FORM_udata
}
}
# struct st { struct s s; struct t t; };
struct_st_label: structure_type {
- {name "st"}
- {byte_size 12 DW_FORM_udata}
+ DW_AT_name "st"
+ DW_AT_byte_size 12 DW_FORM_udata
} {
member {
- {name "s"}
- {type :$struct_s_label}
+ DW_AT_name "s"
+ DW_AT_type :$struct_s_label
}
member {
- {name "t"}
- {type :$struct_t_label}
- {data_member_location 4 DW_FORM_udata}
+ DW_AT_name "t"
+ DW_AT_type :$struct_t_label
+ DW_AT_data_member_location 4 DW_FORM_udata
}
}
DW_TAG_subprogram {
- {MACRO_AT_func { main }}
- {DW_AT_external 1 flag}
+ MACRO_AT_func { main }
+ DW_AT_external 1 flag
} {
# Simple memory location.
DW_TAG_variable {
- {name "a"}
- {type :$array_a8_label}
- {location {
+ DW_AT_name "a"
+ DW_AT_type :$array_a8_label
+ DW_AT_location [subst {
addr $buf_var
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
# Memory pieces: two bytes from &buf[2], and two bytes
# from &buf[0].
DW_TAG_variable {
- {name "s1"}
- {type :$struct_s_label}
- {location {
+ DW_AT_name "s1"
+ DW_AT_type :$struct_s_label
+ DW_AT_location [subst {
addr $buf_var
plus_uconst 2
piece 2
addr $buf_var
piece 2
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
# Register- and memory pieces: one byte each from r0,
# &buf[4], r1, and &buf[5].
DW_TAG_variable {
- {name "s2"}
- {type :$struct_s_label}
- {location {
+ DW_AT_name "s2"
+ DW_AT_type :$struct_s_label
+ DW_AT_location [subst {
regx [lindex $dwarf_regnum 0]
piece 1
addr "$buf_var + 4"
@@ -197,41 +197,41 @@ Dwarf::assemble $asm_file {
piece 1
addr "$buf_var + 5"
piece 1
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
# Memory pieces for bitfield access: 8 bytes optimized
# out, 3 bytes from &buf[3], and 1 byte from &buf[1].
DW_TAG_variable {
- {name "st1"}
- {type :$struct_st_label}
- {location {
+ DW_AT_name "st1"
+ DW_AT_type :$struct_st_label
+ DW_AT_location [subst {
piece 8
addr "$buf_var + 3"
piece 3
addr "$buf_var + 1"
piece 1
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
# Register pieces for bitfield access: 4 bytes optimized
# out, 3 bytes from r0, and 1 byte from r1.
DW_TAG_variable {
- {name "t2"}
- {type :$struct_t_label}
- {location {
+ DW_AT_name "t2"
+ DW_AT_type :$struct_t_label
+ DW_AT_location [subst {
piece 4
regx [lindex $dwarf_regnum 0]
piece 3
regx [lindex $dwarf_regnum 1]
piece 1
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
# One piece per bitfield, using piece offsets: 32 bits of
# an implicit value, 9 bits of a stack value, 13 bits of
# r0, and 10 bits of buf.
DW_TAG_variable {
- {name "t3"}
- {type :$struct_t_label}
- {location {
+ DW_AT_name "t3"
+ DW_AT_type :$struct_t_label
+ DW_AT_location [subst {
implicit_value 0x12 0x34 0x56 0x78 0x9a
bit_piece 32 4
const2s -280
@@ -241,7 +241,7 @@ Dwarf::assemble $asm_file {
bit_piece 13 14
addr $buf_var
bit_piece 10 42
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/variant.exp b/gdb/testsuite/gdb.dwarf2/variant.exp
index ce504f2..93abcbd 100644
--- a/gdb/testsuite/gdb.dwarf2/variant.exp
+++ b/gdb/testsuite/gdb.dwarf2/variant.exp
@@ -36,125 +36,125 @@ Dwarf::assemble $asm_file {
# both 32- and 64-bit machines.
cu { addr_size 4 } {
compile_unit {
- {name file1.txt}
- {language @DW_LANG_Rust}
+ DW_AT_name file1.txt
+ DW_AT_language @DW_LANG_Rust
} {
- uinteger_label: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_unsigned}
- {DW_AT_name {unsigned integer}}
- }
-
- int8_label: DW_TAG_base_type {
- {DW_AT_byte_size 1 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name i8}
- }
+ uinteger_label: DW_TAG_base_type {
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_unsigned
+ DW_AT_name {unsigned integer}
+ }
+
+ int8_label: DW_TAG_base_type {
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name i8
+ }
float_label: base_type {
- {name float}
- {encoding @DW_ATE_float}
- {byte_size 4 DW_FORM_sdata}
+ DW_AT_name float
+ DW_AT_encoding @DW_ATE_float
+ DW_AT_byte_size 4 DW_FORM_sdata
}
one_label: structure_type {
- {name One}
- {byte_size 4 DW_FORM_sdata}
+ DW_AT_name One
+ DW_AT_byte_size 4 DW_FORM_sdata
} {
member {
- {name __0}
- {type :$uinteger_label}
- {data_member_location 0 data1}
+ DW_AT_name __0
+ DW_AT_type :$uinteger_label
+ DW_AT_data_member_location 0 data1
}
}
two_label: structure_type {
- {name Two}
- {byte_size 4 DW_FORM_sdata}
+ DW_AT_name Two
+ DW_AT_byte_size 4 DW_FORM_sdata
} {
member {
- {name __0}
- {type :$float_label}
- {data_member_location 0 data1}
+ DW_AT_name __0
+ DW_AT_type :$float_label
+ DW_AT_data_member_location 0 data1
}
}
structure_type {
- {name Simple}
- {byte_size 8 DW_FORM_sdata}
+ DW_AT_name Simple
+ DW_AT_byte_size 8 DW_FORM_sdata
} {
variant_part {
- {discr :$discr_1_label DW_FORM_ref4}
+ DW_AT_discr :$discr_1_label DW_FORM_ref4
} {
discr_1_label: member {
- {type :$uinteger_label}
- {data_member_location 0 data1}
- {artificial 1 DW_FORM_flag_present}
+ DW_AT_type :$uinteger_label
+ DW_AT_data_member_location 0 data1
+ DW_AT_artificial 1 DW_FORM_flag_present
}
variant {
- {discr_value 23 udata}
+ DW_AT_discr_value 23 udata
} {
member {
- {type :$one_label}
- {data_member_location 4 data1}
+ DW_AT_type :$one_label
+ DW_AT_data_member_location 4 data1
}
}
variant {
- {discr_value 1 udata}
+ DW_AT_discr_value 1 udata
} {
member {
- {type :$two_label}
- {data_member_location 4 data1}
+ DW_AT_type :$two_label
+ DW_AT_data_member_location 4 data1
}
}
}
}
structure_type {
- {name Defaulted}
- {byte_size 8 DW_FORM_sdata}
+ DW_AT_name Defaulted
+ DW_AT_byte_size 8 DW_FORM_sdata
} {
variant_part {
- {discr :$discr_2_label DW_FORM_ref4}
+ DW_AT_discr :$discr_2_label DW_FORM_ref4
} {
discr_2_label: member {
- {type :$uinteger_label}
- {data_member_location 0 data1}
- {artificial 1 DW_FORM_flag_present}
+ DW_AT_type :$uinteger_label
+ DW_AT_data_member_location 0 data1
+ DW_AT_artificial 1 DW_FORM_flag_present
}
variant {
} {
member {
- {type :$one_label}
- {data_member_location 4 data1}
+ DW_AT_type :$one_label
+ DW_AT_data_member_location 4 data1
}
}
variant {
- {discr_value 1 udata}
+ DW_AT_discr_value 1 udata
} {
member {
- {type :$two_label}
- {data_member_location 4 data1}
+ DW_AT_type :$two_label
+ DW_AT_data_member_location 4 data1
}
}
}
}
structure_type {
- {name Univariant}
- {byte_size 8 DW_FORM_sdata}
+ DW_AT_name Univariant
+ DW_AT_byte_size 8 DW_FORM_sdata
} {
variant_part {
} {
variant {
} {
member {
- {type :$one_label}
- {data_member_location 4 data1}
+ DW_AT_type :$one_label
+ DW_AT_data_member_location 4 data1
}
}
}
@@ -163,24 +163,24 @@ Dwarf::assemble $asm_file {
# Rust won't emit a negative discriminant like this, but
# we want to test the code path anyway.
structure_type {
- {name Negative}
- {byte_size 8 DW_FORM_sdata}
+ DW_AT_name Negative
+ DW_AT_byte_size 8 DW_FORM_sdata
} {
variant_part {
- {discr :$discr_3_label DW_FORM_ref4}
+ DW_AT_discr :$discr_3_label DW_FORM_ref4
} {
discr_3_label: member {
- {type :$int8_label}
- {data_member_location 0 data1}
- {artificial 1 DW_FORM_flag_present}
+ DW_AT_type :$int8_label
+ DW_AT_data_member_location 0 data1
+ DW_AT_artificial 1 DW_FORM_flag_present
}
variant {
- {discr_value -1 sdata}
+ DW_AT_discr_value -1 sdata
} {
member {
- {type :$one_label}
- {data_member_location 4 data1}
+ DW_AT_type :$one_label
+ DW_AT_data_member_location 4 data1
}
}
@@ -190,8 +190,8 @@ Dwarf::assemble $asm_file {
variant {
} {
member {
- {type :$two_label}
- {data_member_location 4 data1}
+ DW_AT_type :$two_label
+ DW_AT_data_member_location 4 data1
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/varval.exp b/gdb/testsuite/gdb.dwarf2/varval.exp
index 6846ecb..8f132bb 100644
--- a/gdb/testsuite/gdb.dwarf2/varval.exp
+++ b/gdb/testsuite/gdb.dwarf2/varval.exp
@@ -50,7 +50,7 @@ proc setup_exec { arg_bad } {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_language @DW_LANG_C_plus_plus}
+ DW_AT_language @DW_LANG_C_plus_plus
} {
declare_labels int_label ptr_label struct_label var_a_label \
var_b_label var_c_label var_p_label var_bad_label \
@@ -61,179 +61,193 @@ proc setup_exec { arg_bad } {
int_label: DW_TAG_base_type {
- {DW_AT_byte_size ${int_size} DW_FORM_udata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name "int"}
+ DW_AT_byte_size ${int_size} DW_FORM_udata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name "int"
}
ptr_label: DW_TAG_pointer_type {
- {DW_AT_type :$int_label}
+ DW_AT_type :$int_label
}
var_a_label: DW_TAG_variable {
- {DW_AT_name "var_a"}
- {DW_AT_type :${int_label}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "var_a"]} SPECIAL_expr}
+ DW_AT_name "var_a"
+ DW_AT_type :${int_label}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "var_a"]
+ }] SPECIAL_expr
}
var_a_abstract_label: DW_TAG_variable {
- {DW_AT_type :${int_label}}
- {DW_AT_external 1 DW_FORM_flag}
+ DW_AT_type :${int_label}
+ DW_AT_external 1 DW_FORM_flag
}
var_b_label: DW_TAG_variable {
- {DW_AT_name "var_b"}
- {DW_AT_type :${int_label}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "var_b"]} SPECIAL_expr}
+ DW_AT_name "var_b"
+ DW_AT_type :${int_label}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "var_b"]
+ }] SPECIAL_expr
}
var_c_label: DW_TAG_variable {
- {DW_AT_name "var_c"}
- {DW_AT_type :${int_label}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_const_value 53 DW_FORM_sdata}
+ DW_AT_name "var_c"
+ DW_AT_type :${int_label}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_const_value 53 DW_FORM_sdata
}
var_p_label: DW_TAG_variable {
- {DW_AT_name "var_p"}
- {DW_AT_type :${ptr_label}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "var_p"]} SPECIAL_expr}
+ DW_AT_name "var_p"
+ DW_AT_type :${ptr_label}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "var_p"]
+ }] SPECIAL_expr
}
if { $bad } {
var_bad_label: DW_TAG_variable {
- {DW_AT_name "var_bad"}
- {DW_AT_type :${int_label}}
- {DW_AT_external 1 DW_FORM_flag}
+ DW_AT_name "var_bad"
+ DW_AT_type :${int_label}
+ DW_AT_external 1 DW_FORM_flag
}
}
struct_label: DW_TAG_structure_type {
- {DW_AT_byte_size 8*$int_size DW_FORM_sdata}
+ DW_AT_byte_size 8*$int_size DW_FORM_sdata
} {
DW_TAG_member {
- {DW_AT_name "a"}
- {DW_AT_type :$int_label}
- {DW_AT_data_member_location 0*$int_size DW_FORM_udata}
+ DW_AT_name "a"
+ DW_AT_type :$int_label
+ DW_AT_data_member_location 0*$int_size DW_FORM_udata
}
DW_TAG_member {
- {DW_AT_name "b"}
- {DW_AT_type :$int_label}
- {DW_AT_data_member_location 1*$int_size DW_FORM_udata}
+ DW_AT_name "b"
+ DW_AT_type :$int_label
+ DW_AT_data_member_location 1*$int_size DW_FORM_udata
}
DW_TAG_member {
- {DW_AT_name "c"}
- {DW_AT_type :$int_label}
- {DW_AT_data_member_location 2*$int_size DW_FORM_udata}
+ DW_AT_name "c"
+ DW_AT_type :$int_label
+ DW_AT_data_member_location 2*$int_size DW_FORM_udata
}
DW_TAG_member {
- {DW_AT_name "d"}
- {DW_AT_type :$int_label}
- {DW_AT_data_member_location 3*$int_size DW_FORM_udata}
+ DW_AT_name "d"
+ DW_AT_type :$int_label
+ DW_AT_data_member_location 3*$int_size DW_FORM_udata
}
DW_TAG_member {
- {DW_AT_name "e"}
- {DW_AT_type :$int_label}
- {DW_AT_data_member_location 4*$int_size DW_FORM_udata}
+ DW_AT_name "e"
+ DW_AT_type :$int_label
+ DW_AT_data_member_location 4*$int_size DW_FORM_udata
}
DW_TAG_member {
- {DW_AT_name "f"}
- {DW_AT_type :$int_label}
- {DW_AT_data_member_location 5*$int_size DW_FORM_udata}
+ DW_AT_name "f"
+ DW_AT_type :$int_label
+ DW_AT_data_member_location 5*$int_size DW_FORM_udata
}
DW_TAG_member {
- {DW_AT_name "g"}
- {DW_AT_type :$int_label}
- {DW_AT_data_member_location 6*$int_size DW_FORM_udata}
+ DW_AT_name "g"
+ DW_AT_type :$int_label
+ DW_AT_data_member_location 6*$int_size DW_FORM_udata
}
DW_TAG_member {
- {DW_AT_name "h"}
- {DW_AT_type :$int_label}
- {DW_AT_data_member_location 7*$int_size DW_FORM_udata}
+ DW_AT_name "h"
+ DW_AT_type :$int_label
+ DW_AT_data_member_location 7*$int_size DW_FORM_udata
}
}
var_s_label: DW_TAG_variable {
- {DW_AT_name "var_s"}
- {DW_AT_type :${struct_label}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "var_s"]} SPECIAL_expr}
+ DW_AT_name "var_s"
+ DW_AT_type :${struct_label}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "var_s"]
+ }] SPECIAL_expr
}
var_untyped_label: DW_TAG_variable {
- {DW_AT_name "var_untyped"}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "var_b"]} SPECIAL_expr}
+ DW_AT_name "var_untyped"
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "var_b"]
+ }] SPECIAL_expr
}
int_array_label: DW_TAG_array_type {
- {DW_AT_type :${int_label}}
+ DW_AT_type :${int_label}
} {
DW_TAG_subrange_type {}
}
varval3_decl_label: DW_TAG_variable {
- {DW_AT_name "varval3"}
- {DW_AT_type :${int_array_label}}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_declaration 1 DW_FORM_flag}
+ DW_AT_name "varval3"
+ DW_AT_type :${int_array_label}
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_declaration 1 DW_FORM_flag
}
int_array_of_1_label: DW_TAG_array_type {
- {DW_AT_type :${int_label}}
+ DW_AT_type :${int_label}
} {
DW_TAG_subrange_type {
- {DW_AT_type :$int_label}
- {DW_AT_upper_bound 0 DW_FORM_data1}
+ DW_AT_type :$int_label
+ DW_AT_upper_bound 0 DW_FORM_data1
}
}
varval3_def_label: DW_TAG_variable {
- {DW_AT_name "varval3"}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_type :${int_array_of_1_label}}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "var_a"]} SPECIAL_expr}
+ DW_AT_name "varval3"
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_type :${int_array_of_1_label}
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "var_a"]
+ }] SPECIAL_expr
}
DW_TAG_subprogram {
- {MACRO_AT_func { "main" }}
- {DW_AT_type :${int_label}}
- {DW_AT_external 1 DW_FORM_flag}
+ MACRO_AT_func { "main" }
+ DW_AT_type :${int_label}
+ DW_AT_external 1 DW_FORM_flag
} {
varval_label: DW_TAG_variable {
- {DW_AT_name "varval"}
- {DW_AT_type :${int_label}}
- {DW_AT_location {
+ DW_AT_name "varval"
+ DW_AT_type :${int_label}
+ DW_AT_location [subst {
DW_OP_GNU_variable_value ${var_a_label}
DW_OP_const1s 0
DW_OP_or
DW_OP_stack_value
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
varval2_label: DW_TAG_variable {
- {DW_AT_name "varval2"}
- {DW_AT_type :${int_label}}
- {DW_AT_location {
+ DW_AT_name "varval2"
+ DW_AT_type :${int_label}
+ DW_AT_location [subst {
DW_OP_GNU_variable_value ${var_a_abstract_label}
DW_OP_stack_value
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
var_a_concrete_label: DW_TAG_variable {
- {DW_AT_abstract_origin :${var_a_abstract_label}}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "var_a"]} SPECIAL_expr}
+ DW_AT_abstract_origin :${var_a_abstract_label}
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "var_a"]
+ }] SPECIAL_expr
}
DW_TAG_variable {
- {DW_AT_name "constval"}
- {DW_AT_type :${int_label}}
- {DW_AT_location {
+ DW_AT_name "constval"
+ DW_AT_type :${int_label}
+ DW_AT_location [subst {
DW_OP_GNU_variable_value ${var_c_label}
DW_OP_stack_value
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
DW_TAG_variable {
- {DW_AT_name "mixedval"}
- {DW_AT_type :${int_label}}
- {DW_AT_location {
+ DW_AT_name "mixedval"
+ DW_AT_type :${int_label}
+ DW_AT_location [subst {
DW_OP_GNU_variable_value ${var_c_label}
DW_OP_GNU_variable_value ${var_b_label}
DW_OP_div
@@ -244,55 +258,55 @@ proc setup_exec { arg_bad } {
DW_OP_GNU_variable_value ${varval_label}
DW_OP_minus
DW_OP_stack_value
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
DW_TAG_variable {
- {DW_AT_name "pointerval"}
- {DW_AT_type :${ptr_label}}
- {DW_AT_location {
+ DW_AT_name "pointerval"
+ DW_AT_type :${ptr_label}
+ DW_AT_location [subst {
DW_OP_GNU_variable_value ${var_p_label}
DW_OP_stack_value
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
if { $bad } {
DW_TAG_variable {
- {DW_AT_name "badval"}
- {DW_AT_type :${int_label}}
- {DW_AT_location {
+ DW_AT_name "badval"
+ DW_AT_type :${int_label}
+ DW_AT_location [subst {
DW_OP_GNU_variable_value ${var_bad_label}
DW_OP_stack_value
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
}
DW_TAG_variable {
- {DW_AT_name "structval"}
- {DW_AT_type :${struct_label}}
- {DW_AT_location {
+ DW_AT_name "structval"
+ DW_AT_type :${struct_label}
+ DW_AT_location [subst {
DW_OP_GNU_variable_value ${var_s_label}
DW_OP_stack_value
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
DW_TAG_variable {
- {DW_AT_name "untypedval"}
- {DW_AT_location {
+ DW_AT_name "untypedval"
+ DW_AT_location [subst {
DW_OP_GNU_variable_value ${var_untyped_label}
DW_OP_stack_value
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
if { $bad } {
DW_TAG_variable {
- {DW_AT_name "bad_die_val1"}
- {DW_AT_location {
+ DW_AT_name "bad_die_val1"
+ DW_AT_location {
DW_OP_GNU_variable_value 0xabcdef11
DW_OP_stack_value
- } SPECIAL_expr}
+ } SPECIAL_expr
}
DW_TAG_variable {
- {DW_AT_name "bad_die_val2"}
- {DW_AT_location {
+ DW_AT_name "bad_die_val2"
+ DW_AT_location [subst {
DW_OP_GNU_variable_value ${ptr_label}+1
DW_OP_stack_value
- } SPECIAL_expr}
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/void-type.exp b/gdb/testsuite/gdb.dwarf2/void-type.exp
index 64bebe1..10f5738 100644
--- a/gdb/testsuite/gdb.dwarf2/void-type.exp
+++ b/gdb/testsuite/gdb.dwarf2/void-type.exp
@@ -38,50 +38,54 @@ Dwarf::assemble $asm_file {
cu {} {
DW_TAG_compile_unit {
- {DW_AT_producer "Intel(R) C Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 14.0.5.212 Build 20150212"}
- {DW_AT_language @DW_LANG_C}
- {DW_AT_name $srcfile}
- {DW_AT_comp_dir /tmp}
- } {
+ DW_AT_producer "Intel(R) C Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 14.0.5.212 Build 20150212"
+ DW_AT_language @DW_LANG_C
+ DW_AT_name $srcfile
+ DW_AT_comp_dir /tmp
+ } {
declare_labels int_type void_type ptr_type
int_type: DW_TAG_base_type {
- {DW_AT_byte_size 4 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name int}
+ DW_AT_byte_size 4 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name int
}
void_type: DW_TAG_base_type {
- {DW_AT_byte_size 0 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name void}
+ DW_AT_byte_size 0 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name void
}
ptr_type: DW_TAG_pointer_type {
- {DW_AT_type :$void_type}
+ DW_AT_type :$void_type
}
- DW_TAG_subprogram {
- {MACRO_AT_func {func}}
- {type :$void_type}
+ DW_TAG_subprogram {
+ MACRO_AT_func {func}
+ DW_AT_type :$void_type
}
- DW_TAG_subprogram {
- {MACRO_AT_func {main}}
- {type :$int_type}
+ DW_TAG_subprogram {
+ MACRO_AT_func {main}
+ DW_AT_type :$int_type
}
DW_TAG_variable {
- {DW_AT_name "var_a"}
- {DW_AT_type :$int_type}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "var_a"]} SPECIAL_expr}
+ DW_AT_name "var_a"
+ DW_AT_type :$int_type
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "var_a"]
+ }] SPECIAL_expr
}
DW_TAG_variable {
- {DW_AT_name "var_ptr"}
- {DW_AT_type :$ptr_type}
- {DW_AT_external 1 DW_FORM_flag}
- {DW_AT_location {DW_OP_addr [gdb_target_symbol "var_ptr"]} SPECIAL_expr}
+ DW_AT_name "var_ptr"
+ DW_AT_type :$ptr_type
+ DW_AT_external 1 DW_FORM_flag
+ DW_AT_location [subst {
+ DW_OP_addr [gdb_target_symbol "var_ptr"]
+ }] SPECIAL_expr
}
}
}
diff --git a/gdb/testsuite/gdb.fortran/allocated.exp b/gdb/testsuite/gdb.fortran/allocated.exp
index a000b6e..7cf1367 100644
--- a/gdb/testsuite/gdb.fortran/allocated.exp
+++ b/gdb/testsuite/gdb.fortran/allocated.exp
@@ -25,7 +25,7 @@ if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/array-bounds.exp b/gdb/testsuite/gdb.fortran/array-bounds.exp
index fb8ee86..9efd95f 100644
--- a/gdb/testsuite/gdb.fortran/array-bounds.exp
+++ b/gdb/testsuite/gdb.fortran/array-bounds.exp
@@ -34,8 +34,8 @@ if {![fortran_runto_main]} {
# GCC outputs incorrect range debug info for -m32, gcc PR debug/54934.
set expect_xfail \
[expr \
- [test_compiler_info {gfortran-*} f90] \
- && [is_ilp32_target]]
+ {[test_compiler_info {gfortran-*} f90]
+ && [is_ilp32_target]}]
set re_ok [string_to_regexp (4294967296:4294967297)]
set re_xfail [string_to_regexp (0:1)]
diff --git a/gdb/testsuite/gdb.fortran/array-slices-sub-slices.exp b/gdb/testsuite/gdb.fortran/array-slices-sub-slices.exp
index 8c19c85..72c7c5e 100644
--- a/gdb/testsuite/gdb.fortran/array-slices-sub-slices.exp
+++ b/gdb/testsuite/gdb.fortran/array-slices-sub-slices.exp
@@ -25,7 +25,7 @@ if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
@@ -53,7 +53,7 @@ gdb_test_multiple $cmd $cmd {
# slice.
for { set j 1 } { $j < 6 } { incr j } {
for { set i 1 } { $i < 6 } { incr i } {
- set val [expr ((($i - 1) * 2) + (($j - 1) * 20)) + 1]
+ set val [expr {((($i - 1) * 2) + (($j - 1) * 20)) + 1}]
gdb_test "print ${varname} ($i,$j)" " = $val"
}
}
@@ -106,7 +106,7 @@ gdb_test "print str (26:1:-2)" " = 'zxvtrpnljhfdb'"
# existing value in memory.
gdb_test_no_output "set fortran repack-array-slices on"
set element_size [get_integer_valueof "sizeof (array (1,1))" "unknown"]
-set slice_size [expr $element_size * 4]
+set slice_size [expr {$element_size * 4}]
gdb_test_no_output "set max-value-size $slice_size"
gdb_test "print array (1:2, 1:2)" "= \\(\\(1, 2\\) \\(11, 12\\)\\)"
gdb_test "print array (2:3, 2:3)" "= \\(\\(12, 13\\) \\(22, 23\\)\\)"
diff --git a/gdb/testsuite/gdb.fortran/array-slices.exp b/gdb/testsuite/gdb.fortran/array-slices.exp
index b1e3dad..7d4f96e 100644
--- a/gdb/testsuite/gdb.fortran/array-slices.exp
+++ b/gdb/testsuite/gdb.fortran/array-slices.exp
@@ -56,9 +56,9 @@ proc array_slice_to_var { slice_str } {
proc run_test { repack } {
global binfile gdb_prompt
- clean_restart ${binfile}
+ clean_restart ${::testfile}
- if ![fortran_runto_main] {
+ if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/associated.exp b/gdb/testsuite/gdb.fortran/associated.exp
index c900ce7..9297220 100644
--- a/gdb/testsuite/gdb.fortran/associated.exp
+++ b/gdb/testsuite/gdb.fortran/associated.exp
@@ -25,7 +25,7 @@ if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/assumedrank.exp b/gdb/testsuite/gdb.fortran/assumedrank.exp
index 159608f..45e8c09 100644
--- a/gdb/testsuite/gdb.fortran/assumedrank.exp
+++ b/gdb/testsuite/gdb.fortran/assumedrank.exp
@@ -32,7 +32,7 @@ if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
untested "could not run to main"
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/call-no-debug.exp b/gdb/testsuite/gdb.fortran/call-no-debug.exp
index 1b158c4..96ccdd7 100644
--- a/gdb/testsuite/gdb.fortran/call-no-debug.exp
+++ b/gdb/testsuite/gdb.fortran/call-no-debug.exp
@@ -22,7 +22,7 @@ standard_testfile call-no-debug-prog.f90 call-no-debug-func.f90
load_lib fortran.exp
if {[prepare_for_testing_full "failed to prepare" \
- [list ${binfile} [list debug f90] \
+ [list $testfile [list debug f90] \
$srcfile [list debug f90] \
$srcfile2 [list nodebug f90]]]} {
return -1
@@ -67,7 +67,7 @@ proc find_mangled_name { name } {
set some_func [find_mangled_name "some_func"]
set string_func [find_mangled_name "string_func"]
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/charset.exp b/gdb/testsuite/gdb.fortran/charset.exp
index 0f5ee3d..cd117d4 100644
--- a/gdb/testsuite/gdb.fortran/charset.exp
+++ b/gdb/testsuite/gdb.fortran/charset.exp
@@ -30,7 +30,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} {debug addi
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.fortran/class-allocatable-array.exp b/gdb/testsuite/gdb.fortran/class-allocatable-array.exp
index 241cc83..d860b2c 100644
--- a/gdb/testsuite/gdb.fortran/class-allocatable-array.exp
+++ b/gdb/testsuite/gdb.fortran/class-allocatable-array.exp
@@ -26,7 +26,7 @@ if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/common-block.exp b/gdb/testsuite/gdb.fortran/common-block.exp
index 6f3e55d..f27f3ad 100644
--- a/gdb/testsuite/gdb.fortran/common-block.exp
+++ b/gdb/testsuite/gdb.fortran/common-block.exp
@@ -4,12 +4,12 @@
# 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, see <http://www.gnu.org/licenses/>.
diff --git a/gdb/testsuite/gdb.fortran/completion.exp b/gdb/testsuite/gdb.fortran/completion.exp
index 0961207..5038251 100644
--- a/gdb/testsuite/gdb.fortran/completion.exp
+++ b/gdb/testsuite/gdb.fortran/completion.exp
@@ -26,7 +26,7 @@ if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/debug-expr.exp b/gdb/testsuite/gdb.fortran/debug-expr.exp
index 6e84b24..d872ad6 100644
--- a/gdb/testsuite/gdb.fortran/debug-expr.exp
+++ b/gdb/testsuite/gdb.fortran/debug-expr.exp
@@ -28,7 +28,7 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug f90}]} {
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/empty-string.exp b/gdb/testsuite/gdb.fortran/empty-string.exp
index 531af45..17ee5e5 100644
--- a/gdb/testsuite/gdb.fortran/empty-string.exp
+++ b/gdb/testsuite/gdb.fortran/empty-string.exp
@@ -24,7 +24,7 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug f90}]} {
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/exprs.exp b/gdb/testsuite/gdb.fortran/exprs.exp
index 72efb56..323a2ab 100644
--- a/gdb/testsuite/gdb.fortran/exprs.exp
+++ b/gdb/testsuite/gdb.fortran/exprs.exp
@@ -232,7 +232,7 @@ proc test_arithmetic_expressions {} {
gdb_test "p 6.0 / 3.0" " = 2" "real divided by real"
# Test exponentiation with various operands
-
+
gdb_test "p 2 ** 3" " = 8" "int powered by int"
gdb_test "p 2 ** 2 ** 3" " = 256" "combined exponentiation expression"
gdb_test "p (2 ** 2) ** 3" " = 64" "combined exponentiation expression in specified order"
diff --git a/gdb/testsuite/gdb.fortran/huge.exp b/gdb/testsuite/gdb.fortran/huge.exp
index 35bc6c8..f7c50d7 100644
--- a/gdb/testsuite/gdb.fortran/huge.exp
+++ b/gdb/testsuite/gdb.fortran/huge.exp
@@ -27,7 +27,7 @@ load_lib fortran.exp
standard_testfile .F90
-set max [expr 2 * 1024 * 1024]
+set max [expr {2 * 1024 * 1024}]
set min 16
set opts {}
@@ -35,7 +35,7 @@ lappend opts debug
lappend opts f90
set compilation_succeeded 0
-for { set size [expr $max] } { $size >= $min } { set size [expr $size / 2] } {
+for { set size [expr {$max}] } { $size >= $min } { set size [expr {$size / 2}] } {
set try_opts [concat $opts [list additional_flags=-DCRASH_GDB=$size]]
with_test_prefix CRASH_GDB=$size {
if { [build_executable $testfile.exp $testfile $srcfile $try_opts] == -1 } {
@@ -49,7 +49,7 @@ for { set size [expr $max] } { $size >= $min } { set size [expr $size / 2] } {
require {expr $compilation_succeeded}
# Start with a fresh gdb.
-clean_restart ${binfile}
+clean_restart ${::testfile}
save_vars { timeout } {
set timeout 30
@@ -92,6 +92,6 @@ save_vars { timeout } {
unsupported $test
} else {
# At 112 passes with and without the fix, so use 111.
- gdb_assert {$space_used < [expr 111 * 4 * $size] } $test
+ gdb_assert {$space_used < [expr {111 * 4 * $size}] } $test
}
}
diff --git a/gdb/testsuite/gdb.fortran/info-main.exp b/gdb/testsuite/gdb.fortran/info-main.exp
index 4178886..6cdfd15 100644
--- a/gdb/testsuite/gdb.fortran/info-main.exp
+++ b/gdb/testsuite/gdb.fortran/info-main.exp
@@ -29,7 +29,7 @@ save_vars { GDBFLAGS } {
gdb_test "info main" "simple" "info main prior to start"
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
untested "could not run to main"
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/intrinsic-precedence.exp b/gdb/testsuite/gdb.fortran/intrinsic-precedence.exp
index 02f5ff3..93f1da9 100644
--- a/gdb/testsuite/gdb.fortran/intrinsic-precedence.exp
+++ b/gdb/testsuite/gdb.fortran/intrinsic-precedence.exp
@@ -33,7 +33,7 @@ if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/intvar-array.exp b/gdb/testsuite/gdb.fortran/intvar-array.exp
index 68b674c..52314ed 100644
--- a/gdb/testsuite/gdb.fortran/intvar-array.exp
+++ b/gdb/testsuite/gdb.fortran/intvar-array.exp
@@ -25,7 +25,7 @@ if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/intvar-dynamic-types.exp b/gdb/testsuite/gdb.fortran/intvar-dynamic-types.exp
index b28bf5c..201f020 100644
--- a/gdb/testsuite/gdb.fortran/intvar-dynamic-types.exp
+++ b/gdb/testsuite/gdb.fortran/intvar-dynamic-types.exp
@@ -24,7 +24,7 @@ if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/lbound-ubound.exp b/gdb/testsuite/gdb.fortran/lbound-ubound.exp
index f8e256c..143c5be 100644
--- a/gdb/testsuite/gdb.fortran/lbound-ubound.exp
+++ b/gdb/testsuite/gdb.fortran/lbound-ubound.exp
@@ -25,7 +25,7 @@ if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
@@ -160,7 +160,7 @@ while { $test_count < 500 } {
# Finally, check that asking for a dimension above the valid
# range gives the expected error.
- set bad_dim [expr $upper_dim + 1]
+ set bad_dim [expr {$upper_dim + 1}]
gdb_test "p lbound ($array_name, $bad_dim)" \
"LBOUND dimension must be from 1 to $upper_dim" \
"check error message for lbound of dim = $bad_dim"
diff --git a/gdb/testsuite/gdb.fortran/library-module.exp b/gdb/testsuite/gdb.fortran/library-module.exp
index ec35ef1..07867ee 100644
--- a/gdb/testsuite/gdb.fortran/library-module.exp
+++ b/gdb/testsuite/gdb.fortran/library-module.exp
@@ -17,7 +17,7 @@ load_lib fortran.exp
require allow_fortran_tests
-standard_testfile library-module-main.f90
+standard_testfile library-module-main.f90
set srclibfile ${testfile}-lib.f90
set libfile [standard_output_file ${testfile}-lib.so]
diff --git a/gdb/testsuite/gdb.fortran/limited-length.exp b/gdb/testsuite/gdb.fortran/limited-length.exp
index 38c5286..9c65d48 100644
--- a/gdb/testsuite/gdb.fortran/limited-length.exp
+++ b/gdb/testsuite/gdb.fortran/limited-length.exp
@@ -80,7 +80,7 @@ with_test_prefix "with standard max-value size" {
# Set the max-value-size so we can only print 50 elements.
set elements 50
set elem_size [get_valueof "/d" "sizeof(large_1d_array(1))" "*unknown*"]
-gdb_test_no_output "set max-value-size [expr $elem_size * $elements]"
+gdb_test_no_output "set max-value-size [expr {$elem_size * $elements}]"
with_test_prefix "with reduced max-value size" {
gdb_test "print large_4d_array" \
diff --git a/gdb/testsuite/gdb.fortran/mixed-lang-stack.exp b/gdb/testsuite/gdb.fortran/mixed-lang-stack.exp
index ac8f742..e3b9fb5 100644
--- a/gdb/testsuite/gdb.fortran/mixed-lang-stack.exp
+++ b/gdb/testsuite/gdb.fortran/mixed-lang-stack.exp
@@ -28,7 +28,7 @@ require allow_fortran_tests
standard_testfile mixed-lang-stack.c mixed-lang-stack.cpp mixed-lang-stack.f90
if {[prepare_for_testing_full "failed to prepare" \
- [list ${binfile} {debug f90 additional_flags=-lstdc++} \
+ [list $testfile {debug f90 additional_flags=-lstdc++} \
$srcfile {debug} \
$srcfile2 {debug c++ additional_flags=-std=c++11} \
$srcfile3 {debug f90}]]} {
@@ -43,9 +43,9 @@ proc run_tests { lang } {
with_test_prefix "lang=${lang}" {
global binfile hex have_index
- clean_restart ${binfile}
+ clean_restart ${::testfile}
- if ![runto_main] {
+ if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/module.exp b/gdb/testsuite/gdb.fortran/module.exp
index 30988a2..2496f66 100644
--- a/gdb/testsuite/gdb.fortran/module.exp
+++ b/gdb/testsuite/gdb.fortran/module.exp
@@ -25,7 +25,7 @@ if { [prepare_for_testing "failed to prepare" $testfile $srcfile {debug f90}] }
# Test automatic language detection before the inferior starts. It tests the
# effect of expected:
-# (gdb) show language
+# (gdb) show language
# The current source language is "auto; currently fortran".
gdb_test "p modmany::var_i" " = 14" "stopped language detection"
@@ -131,6 +131,6 @@ gdb_test "show language" {The current source language is "(auto; currently )?for
# gcc-4.4.2: The main program is always $fmain in .symtab so "runto" above
# works. But DWARF DW_TAG_subprogram contains the name specified by
# the "program" Fortran statement.
-if [gdb_breakpoint "module"] {
+if {[gdb_breakpoint "module"]} {
pass "setting breakpoint at module"
}
diff --git a/gdb/testsuite/gdb.fortran/multi-dim.exp b/gdb/testsuite/gdb.fortran/multi-dim.exp
index efd225a..0a719fe 100644
--- a/gdb/testsuite/gdb.fortran/multi-dim.exp
+++ b/gdb/testsuite/gdb.fortran/multi-dim.exp
@@ -25,7 +25,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} {debug f90}
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.fortran/namelist.exp b/gdb/testsuite/gdb.fortran/namelist.exp
index 10846cf..fce6314 100644
--- a/gdb/testsuite/gdb.fortran/namelist.exp
+++ b/gdb/testsuite/gdb.fortran/namelist.exp
@@ -38,8 +38,8 @@ gdb_continue_to_breakpoint "Display namelist"
# DW_TAG_namelist is supported starting gcc 4.9.
set supported [expr \
- [test_compiler_info {gfortran-*} f90] \
- && [gcc_major_version {gfortran-*} f90] >= 4.9]
+ {[test_compiler_info {gfortran-*} f90]
+ && [gcc_major_version {gfortran-*} f90] >= 4.9}]
if { $supported } {
gdb_test "ptype nml" \
"type = Type nml\r\n *$int :: a\r\n *$int :: b\r\n *End Type nml"
diff --git a/gdb/testsuite/gdb.fortran/nested-funcs.exp b/gdb/testsuite/gdb.fortran/nested-funcs.exp
index 63917c5..c92a8c1 100755
--- a/gdb/testsuite/gdb.fortran/nested-funcs.exp
+++ b/gdb/testsuite/gdb.fortran/nested-funcs.exp
@@ -14,7 +14,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# This testcase is supposed to test DWARF static link which is usually
-# used together with nested functions.
+# used together with nested functions.
require allow_fortran_tests
diff --git a/gdb/testsuite/gdb.fortran/oop_extend_type.exp b/gdb/testsuite/gdb.fortran/oop_extend_type.exp
index f2e64e9..9f443d9 100755
--- a/gdb/testsuite/gdb.fortran/oop_extend_type.exp
+++ b/gdb/testsuite/gdb.fortran/oop_extend_type.exp
@@ -23,7 +23,7 @@ if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
perror "could not run to main"
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/pointer-to-pointer.exp b/gdb/testsuite/gdb.fortran/pointer-to-pointer.exp
index 9920616..47ca74a 100644
--- a/gdb/testsuite/gdb.fortran/pointer-to-pointer.exp
+++ b/gdb/testsuite/gdb.fortran/pointer-to-pointer.exp
@@ -25,7 +25,7 @@ if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/print_type.exp b/gdb/testsuite/gdb.fortran/print_type.exp
index c08f501..6d2457f 100755
--- a/gdb/testsuite/gdb.fortran/print_type.exp
+++ b/gdb/testsuite/gdb.fortran/print_type.exp
@@ -26,7 +26,7 @@ if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/rank.exp b/gdb/testsuite/gdb.fortran/rank.exp
index c61ae98..e998ead 100644
--- a/gdb/testsuite/gdb.fortran/rank.exp
+++ b/gdb/testsuite/gdb.fortran/rank.exp
@@ -25,7 +25,7 @@ if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/shape.exp b/gdb/testsuite/gdb.fortran/shape.exp
index e525bf7..7a6bc9b 100644
--- a/gdb/testsuite/gdb.fortran/shape.exp
+++ b/gdb/testsuite/gdb.fortran/shape.exp
@@ -25,7 +25,7 @@ if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/short-circuit-argument-list.exp b/gdb/testsuite/gdb.fortran/short-circuit-argument-list.exp
index bca971d..ab0411a 100644
--- a/gdb/testsuite/gdb.fortran/short-circuit-argument-list.exp
+++ b/gdb/testsuite/gdb.fortran/short-circuit-argument-list.exp
@@ -48,12 +48,12 @@ reset_called_flags
# a(x,y) .OR./.AND. a(a,b) correctly.
foreach_with_prefix truth_table_index {1 2 3 4} {
gdb_test "p truth_table($truth_table_index, 1) .OR. truth_table($truth_table_index, 2)" \
- "[expr $truth_table_index > 1 ? \".TRUE.\" : \".FALSE.\"]"
+ "[expr {$truth_table_index > 1 ? ".TRUE." : ".FALSE."}]"
}
foreach_with_prefix truth_table_index {1 2 3 4} {
gdb_test "p truth_table($truth_table_index, 1) .AND. truth_table($truth_table_index, 2)" \
- "[expr $truth_table_index > 3 ? \".TRUE.\" : \".FALSE.\"]"
+ "[expr {$truth_table_index > 3 ? ".TRUE." : ".FALSE."}]"
}
# Vary number of function arguments to skip.
@@ -78,14 +78,14 @@ with_test_prefix "nested call not skipped" {
gdb_test "p function_one_arg(.FALSE. .OR. function_no_arg())" \
" = .TRUE."
gdb_test "p calls" \
- " = \\\( function_no_arg_called = [expr $prime + 1], function_no_arg_false_called = $prime, function_one_arg_called = [expr $prime + 1], function_two_arg_called = $prime, function_array_called = $prime \\\)"
+ " = \\\( function_no_arg_called = [expr {$prime + 1}], function_no_arg_false_called = $prime, function_one_arg_called = [expr {$prime + 1}], function_two_arg_called = $prime, function_array_called = $prime \\\)"
}
with_test_prefix "nested call skipped" {
gdb_test "p function_one_arg(.TRUE. .OR. function_no_arg())" \
" = .TRUE."
gdb_test "p calls" \
- " = \\\( function_no_arg_called = [expr $prime + 1], function_no_arg_false_called = $prime, function_one_arg_called = [expr $prime + 2], function_two_arg_called = $prime, function_array_called = $prime \\\)"
+ " = \\\( function_no_arg_called = [expr {$prime + 1}], function_no_arg_false_called = $prime, function_one_arg_called = [expr {$prime + 2}], function_two_arg_called = $prime, function_array_called = $prime \\\)"
}
# Vary number of components in the expression to skip.
diff --git a/gdb/testsuite/gdb.fortran/size.exp b/gdb/testsuite/gdb.fortran/size.exp
index dd6340f..5bc7db2 100644
--- a/gdb/testsuite/gdb.fortran/size.exp
+++ b/gdb/testsuite/gdb.fortran/size.exp
@@ -25,7 +25,7 @@ if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/sizeof.exp b/gdb/testsuite/gdb.fortran/sizeof.exp
index aa22107..c0a9fd3 100644
--- a/gdb/testsuite/gdb.fortran/sizeof.exp
+++ b/gdb/testsuite/gdb.fortran/sizeof.exp
@@ -25,7 +25,7 @@ if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/types.exp b/gdb/testsuite/gdb.fortran/types.exp
index c444228..03bc2ce 100644
--- a/gdb/testsuite/gdb.fortran/types.exp
+++ b/gdb/testsuite/gdb.fortran/types.exp
@@ -25,7 +25,7 @@ proc test_integer_literal_types_accepted {} {
# Test various decimal values.
# Should be integer*4 probably.
- gdb_test "pt 123" "type = int"
+ gdb_test "pt 123" "type = int"
}
proc test_character_literal_types_accepted {} {
diff --git a/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp b/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp
index 8d9fc25..b766e1d 100644
--- a/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp
+++ b/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp
@@ -23,7 +23,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/vla-array.exp b/gdb/testsuite/gdb.fortran/vla-array.exp
index 092a19a..7c2d48d 100644
--- a/gdb/testsuite/gdb.fortran/vla-array.exp
+++ b/gdb/testsuite/gdb.fortran/vla-array.exp
@@ -23,7 +23,7 @@ if {[prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
untested "could not run to main"
return -1
}
@@ -34,12 +34,12 @@ gdb_continue_to_breakpoint "arr_vla1-print"
# GFortran emits DW_TAG_structure_type for strings and it has only
# DW_AT_declaration tag. This results in <incomplete type> in gdb.
-if [test_compiler_info "gfortran*" f90] { setup_xfail *-*-* gcc/101826 }
+if {[test_compiler_info "gfortran*" f90]} { setup_xfail *-*-* gcc/101826 }
gdb_test "print arr_vla1" \
" = \\\('vlaaryvlaary', 'vlaaryvlaary', 'vlaaryvlaary', 'vlaaryvlaary', 'vlaaryvlaary'\\\)" \
"print vla string array"
-if [test_compiler_info "gfortran*" f90] { setup_xfail *-*-* gcc/101826 }
+if {[test_compiler_info "gfortran*" f90]} { setup_xfail *-*-* gcc/101826 }
gdb_test "ptype arr_vla1" \
"type = character\\*12 \\(5\\)" \
"print variable length string array type"
diff --git a/gdb/testsuite/gdb.fortran/vla-datatypes.exp b/gdb/testsuite/gdb.fortran/vla-datatypes.exp
index a4ea89d..6f2bb3a 100644
--- a/gdb/testsuite/gdb.fortran/vla-datatypes.exp
+++ b/gdb/testsuite/gdb.fortran/vla-datatypes.exp
@@ -26,7 +26,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
# check that all fortran standard datatypes will be
# handled correctly when using as VLA's
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/vla-history.exp b/gdb/testsuite/gdb.fortran/vla-history.exp
index d51ded4..6dcc31c 100644
--- a/gdb/testsuite/gdb.fortran/vla-history.exp
+++ b/gdb/testsuite/gdb.fortran/vla-history.exp
@@ -23,7 +23,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/vla-ptr-info.exp b/gdb/testsuite/gdb.fortran/vla-ptr-info.exp
index 1a4efc7..9f63e60 100644
--- a/gdb/testsuite/gdb.fortran/vla-ptr-info.exp
+++ b/gdb/testsuite/gdb.fortran/vla-ptr-info.exp
@@ -23,7 +23,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp b/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp
index 7d95787..6809d8c 100644
--- a/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp
+++ b/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp
@@ -23,7 +23,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/vla-ptype.exp b/gdb/testsuite/gdb.fortran/vla-ptype.exp
index ca75afc..4c72d62 100644
--- a/gdb/testsuite/gdb.fortran/vla-ptype.exp
+++ b/gdb/testsuite/gdb.fortran/vla-ptype.exp
@@ -23,7 +23,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/vla-sizeof.exp b/gdb/testsuite/gdb.fortran/vla-sizeof.exp
index da9eaa1..ede677f 100644
--- a/gdb/testsuite/gdb.fortran/vla-sizeof.exp
+++ b/gdb/testsuite/gdb.fortran/vla-sizeof.exp
@@ -23,7 +23,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp b/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp
index f33231a..7cd9cd8 100644
--- a/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp
+++ b/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp
@@ -23,7 +23,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp b/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp
index 01d717e..ef40dff 100644
--- a/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp
+++ b/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp
@@ -23,7 +23,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/vla-value-sub.exp b/gdb/testsuite/gdb.fortran/vla-value-sub.exp
index e3103bd..566125e 100644
--- a/gdb/testsuite/gdb.fortran/vla-value-sub.exp
+++ b/gdb/testsuite/gdb.fortran/vla-value-sub.exp
@@ -23,7 +23,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/vla-value.exp b/gdb/testsuite/gdb.fortran/vla-value.exp
index fc2864b..687b14c 100644
--- a/gdb/testsuite/gdb.fortran/vla-value.exp
+++ b/gdb/testsuite/gdb.fortran/vla-value.exp
@@ -23,7 +23,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.fortran/whatis_type.exp b/gdb/testsuite/gdb.fortran/whatis_type.exp
index 8cbddc1..8891eac 100644
--- a/gdb/testsuite/gdb.fortran/whatis_type.exp
+++ b/gdb/testsuite/gdb.fortran/whatis_type.exp
@@ -23,7 +23,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} \
return -1
}
-if ![fortran_runto_main] {
+if {![fortran_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.gdb/index-file.exp b/gdb/testsuite/gdb.gdb/index-file.exp
index 2252b79..5229446 100644
--- a/gdb/testsuite/gdb.gdb/index-file.exp
+++ b/gdb/testsuite/gdb.gdb/index-file.exp
@@ -30,9 +30,17 @@ if { $filename eq "" } {
return -1
}
+# If FILENAME is a libtool wrapper, then we need to get the path of the real
+# executable.
+set filename [selftest_libtool_get_real_gdb_executable $filename]
+if { $filename eq "" } {
+ return -1
+}
+
with_timeout_factor $timeout_factor {
# Start GDB, load FILENAME.
- clean_restart $filename
+ clean_restart
+ gdb_load $filename
}
# Record how many worker threads GDB is using.
@@ -99,7 +107,7 @@ proc check_symbol_table_usage { filename } {
_ _ _ symbol_table_offset shortcut_offset
# The length of the symbol hash table (in entries).
- set len [expr ($shortcut_offset - $symbol_table_offset) / 8]
+ set len [expr {($shortcut_offset - $symbol_table_offset) / 8}]
# Now walk the hash table and count how many entries are in use.
set offset $symbol_table_offset
@@ -119,7 +127,7 @@ proc check_symbol_table_usage { filename } {
close $fp
# Calculate how full the cache is.
- set pct [expr (100 * double($count)) / $len]
+ set pct [expr {(100 * double($count)) / $len}]
# Write our results out to the gdb.log.
verbose -log "Hash table size: $len"
@@ -145,7 +153,7 @@ if { $worker_threads > 1 } {
clean_restart
# Adjust the number of threads to use.
- set reduced_threads [expr $worker_threads / 2]
+ set reduced_threads [expr {$worker_threads / 2}]
gdb_test_no_output "maint set worker-threads $reduced_threads"
with_timeout_factor $timeout_factor {
diff --git a/gdb/testsuite/gdb.gdb/python-helper.exp b/gdb/testsuite/gdb.gdb/python-helper.exp
index 8126740..33243c9 100644
--- a/gdb/testsuite/gdb.gdb/python-helper.exp
+++ b/gdb/testsuite/gdb.gdb/python-helper.exp
@@ -291,4 +291,4 @@ proc test_python_helper {} {
}
# Use the self-test framework to run the test.
-do_self_tests captured_main test_python_helper
+do_self_tests test_python_helper
diff --git a/gdb/testsuite/gdb.gdb/selftest.exp b/gdb/testsuite/gdb.gdb/selftest.exp
index 1cf9265..7fa320e 100644
--- a/gdb/testsuite/gdb.gdb/selftest.exp
+++ b/gdb/testsuite/gdb.gdb/selftest.exp
@@ -56,7 +56,7 @@ proc test_with_self { } {
}
# start the "xgdb" process
- if [target_info exists gdb,noinferiorio] {
+ if {[target_info exists gdb,noinferiorio]} {
# With no way to interact with the inferior GDB, all we can do
# is let it run.
send_gdb "continue\n"
@@ -98,7 +98,7 @@ proc test_with_self { } {
}
# kill the xgdb process
- if ![target_info exists gdb,nointerrupts] {
+ if {![target_info exists gdb,nointerrupts]} {
set description "send ^C to child process"
send_gdb "\003"
# "Thread 1" is displayed iff Guile support is linked in.
@@ -147,7 +147,7 @@ proc test_with_self { } {
# Switch back to the GDB thread if Guile support is linked in.
# "signal SIGINT" could also switch the current thread.
gdb_test "thread 1" {\[Switching to thread 1 .*\].*}
-
+
# get a stack trace
#
# This fails on some linux systems for unknown reasons. On the
@@ -167,5 +167,5 @@ proc test_with_self { } {
save_vars { INTERNAL_GDBFLAGS } {
set INTERNAL_GDBFLAGS [string map {"-q" ""} $INTERNAL_GDBFLAGS]
- do_self_tests captured_main test_with_self
+ do_self_tests test_with_self
}
diff --git a/gdb/testsuite/gdb.gdb/unittest.exp b/gdb/testsuite/gdb.gdb/unittest.exp
index 795a32b..38955ca 100644
--- a/gdb/testsuite/gdb.gdb/unittest.exp
+++ b/gdb/testsuite/gdb.gdb/unittest.exp
@@ -63,7 +63,7 @@ proc run_selftests { binfile } {
gdb_exit
gdb_start
} else {
- clean_restart ${binfile}
+ clean_restart ${::testfile}
}
if { [is_remote host] } {
diff --git a/gdb/testsuite/gdb.go/basic-types.exp b/gdb/testsuite/gdb.go/basic-types.exp
index 3d4bfd5..53ce4fa 100644
--- a/gdb/testsuite/gdb.go/basic-types.exp
+++ b/gdb/testsuite/gdb.go/basic-types.exp
@@ -25,7 +25,7 @@ require allow_go_tests
proc test_integer_literal_types_accepted {} {
# Test various decimal values.
- gdb_test "pt 123" "type = int"
+ gdb_test "pt 123" "type = int"
gdb_test "pt void(42)" "type = void"
gdb_test "pt byte(42)" "type = uint8"
@@ -102,7 +102,7 @@ proc test_complex_literal_types_accepted {} {
clean_restart
-if [set_lang_go] {
+if {[set_lang_go]} {
test_integer_literal_types_accepted
test_logical_literal_types_accepted
test_character_literal_types_accepted
diff --git a/gdb/testsuite/gdb.go/integers.exp b/gdb/testsuite/gdb.go/integers.exp
index d58c771..50ea9a8 100644
--- a/gdb/testsuite/gdb.go/integers.exp
+++ b/gdb/testsuite/gdb.go/integers.exp
@@ -44,9 +44,9 @@ gdb_test "print i" ".* = 0" "print i before assigned to 1"
gdb_test "next" "i = 1" "next to 'i = 1' line"
gdb_test "next" "j = 2" "next to 'j = 2' line"
-# At that point,
+# At that point,
# i should be equal to 1
-gdb_test "print i" " = 1"
+gdb_test "print i" " = 1"
# but j should still be equal to zero
gdb_test "print j" " = 0" "test j value before assignment"
diff --git a/gdb/testsuite/gdb.go/package.exp b/gdb/testsuite/gdb.go/package.exp
index c30b8c0..180b48a 100644
--- a/gdb/testsuite/gdb.go/package.exp
+++ b/gdb/testsuite/gdb.go/package.exp
@@ -27,7 +27,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${testfile}2.go" "${binfile}2.o" object
untested "failed to compile"
return -1
}
-
+
if { [gdb_compile "${srcdir}/${subdir}/${testfile}1.go ${binfile}2.o" "${binfile}" executable "debug go libdir=[standard_output_file {}]"] != "" } {
untested "failed to compile"
return -1
diff --git a/gdb/testsuite/gdb.go/print.exp b/gdb/testsuite/gdb.go/print.exp
index 85cb6a1..a02b746 100644
--- a/gdb/testsuite/gdb.go/print.exp
+++ b/gdb/testsuite/gdb.go/print.exp
@@ -58,7 +58,7 @@ proc test_float_rejected {} {
clean_restart
-if [set_lang_go] {
+if {[set_lang_go]} {
test_float_accepted
test_float_rejected
} else {
diff --git a/gdb/testsuite/gdb.guile/scm-arch.exp b/gdb/testsuite/gdb.guile/scm-arch.exp
index bd64c4b..752c2d8 100644
--- a/gdb/testsuite/gdb.guile/scm-arch.exp
+++ b/gdb/testsuite/gdb.guile/scm-arch.exp
@@ -23,7 +23,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return
}
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.guile/scm-block.exp b/gdb/testsuite/gdb.guile/scm-block.exp
index 266e714..65e2275 100644
--- a/gdb/testsuite/gdb.guile/scm-block.exp
+++ b/gdb/testsuite/gdb.guile/scm-block.exp
@@ -26,7 +26,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return -1
}
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.guile/scm-breakpoint.exp b/gdb/testsuite/gdb.guile/scm-breakpoint.exp
index 8694530..3b90d99 100644
--- a/gdb/testsuite/gdb.guile/scm-breakpoint.exp
+++ b/gdb/testsuite/gdb.guile/scm-breakpoint.exp
@@ -32,7 +32,7 @@ proc_with_prefix test_bkpt_basic { } {
# Start with a fresh gdb.
clean_restart ${testfile}
- if ![gdb_guile_runto_main] {
+ if {![gdb_guile_runto_main]} {
return
}
@@ -65,7 +65,7 @@ proc_with_prefix test_bkpt_basic { } {
"scm-breakpoint\.c:${mult_line}*" \
"check multiply breakpoint location"
- # Check hit and ignore counts.
+ # Check hit and ignore counts.
gdb_test "guile (print (breakpoint-hit-count mult-bkpt))" \
"= 1" "check multiply breakpoint hit count"
gdb_scm_test_silent_cmd "guile (set-breakpoint-ignore-count! mult-bkpt 4)" \
@@ -105,7 +105,7 @@ proc_with_prefix test_bkpt_deletion { } {
# Start with a fresh gdb.
clean_restart ${testfile}
- if ![gdb_guile_runto_main] {
+ if {![gdb_guile_runto_main]} {
return
}
@@ -141,7 +141,7 @@ proc_with_prefix test_bkpt_cond_and_cmds { } {
# Start with a fresh gdb.
clean_restart ${testfile}
- if ![gdb_guile_runto_main] {
+ if {![gdb_guile_runto_main]} {
return
}
@@ -188,7 +188,7 @@ proc_with_prefix test_bkpt_invisible { } {
# Start with a fresh gdb.
clean_restart ${testfile}
- if ![gdb_guile_runto_main] {
+ if {![gdb_guile_runto_main]} {
return
}
@@ -238,10 +238,10 @@ proc_with_prefix test_watchpoints { } {
clean_restart ${testfile}
# Disable hardware watchpoints if necessary.
- if [target_info exists gdb,no_hardware_watchpoints] {
+ if {[target_info exists gdb,no_hardware_watchpoints]} {
gdb_test_no_output "set can-use-hw-watchpoints 0" ""
}
- if ![gdb_guile_runto_main] {
+ if {![gdb_guile_runto_main]} {
return
}
@@ -273,10 +273,10 @@ proc_with_prefix test_bkpt_internal { } {
clean_restart ${testfile}
# Disable hardware watchpoints if necessary.
- if [target_info exists gdb,no_hardware_watchpoints] {
+ if {[target_info exists gdb,no_hardware_watchpoints]} {
gdb_test_no_output "set can-use-hw-watchpoints 0" ""
}
- if ![gdb_guile_runto_main] {
+ if {![gdb_guile_runto_main]} {
return
}
@@ -304,10 +304,10 @@ proc_with_prefix test_bkpt_eval_funcs { } {
clean_restart ${testfile}
# Disable hardware watchpoints if necessary.
- if [target_info exists gdb,no_hardware_watchpoints] {
+ if {[target_info exists gdb,no_hardware_watchpoints]} {
gdb_test_no_output "set can-use-hw-watchpoints 0" ""
}
- if ![gdb_guile_runto_main] {
+ if {![gdb_guile_runto_main]} {
return
}
@@ -451,7 +451,7 @@ proc_with_prefix test_bkpt_registration {} {
# Start with a fresh gdb.
clean_restart ${testfile}
- if ![gdb_guile_runto_main] {
+ if {![gdb_guile_runto_main]} {
return
}
@@ -490,7 +490,7 @@ proc_with_prefix test_bkpt_temporary { } {
# Start with a fresh gdb.
clean_restart ${testfile}
- if ![gdb_guile_runto_main] {
+ if {![gdb_guile_runto_main]} {
return 0
}
delete_breakpoints
@@ -556,7 +556,7 @@ proc_with_prefix test_catchpoints {} {
# Start with a fresh gdb.
clean_restart ${testfile}
- if ![gdb_guile_runto_main] {
+ if {![gdb_guile_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.guile/scm-cmd.exp b/gdb/testsuite/gdb.guile/scm-cmd.exp
index 3709cb1..36abb00 100644
--- a/gdb/testsuite/gdb.guile/scm-cmd.exp
+++ b/gdb/testsuite/gdb.guile/scm-cmd.exp
@@ -26,7 +26,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return
}
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.guile/scm-color.exp b/gdb/testsuite/gdb.guile/scm-color.exp
index 578f712..4c6a9c2 100644
--- a/gdb/testsuite/gdb.guile/scm-color.exp
+++ b/gdb/testsuite/gdb.guile/scm-color.exp
@@ -19,6 +19,7 @@
load_lib gdb-guile.exp
require allow_guile_tests
+require {!is_remote host}
# Start GDB with styling support.
with_ansi_styling_terminal {
diff --git a/gdb/testsuite/gdb.guile/scm-disasm.exp b/gdb/testsuite/gdb.guile/scm-disasm.exp
index 5541a60..bd551ad 100644
--- a/gdb/testsuite/gdb.guile/scm-disasm.exp
+++ b/gdb/testsuite/gdb.guile/scm-disasm.exp
@@ -23,7 +23,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return
}
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.guile/scm-equal.exp b/gdb/testsuite/gdb.guile/scm-equal.exp
index 0450d62..2a87139 100644
--- a/gdb/testsuite/gdb.guile/scm-equal.exp
+++ b/gdb/testsuite/gdb.guile/scm-equal.exp
@@ -26,7 +26,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return
}
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.guile/scm-frame-args.exp b/gdb/testsuite/gdb.guile/scm-frame-args.exp
index c519087..9c1e831 100644
--- a/gdb/testsuite/gdb.guile/scm-frame-args.exp
+++ b/gdb/testsuite/gdb.guile/scm-frame-args.exp
@@ -23,7 +23,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return
}
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.guile/scm-frame-inline.exp b/gdb/testsuite/gdb.guile/scm-frame-inline.exp
index a2fe11d..02884f7 100644
--- a/gdb/testsuite/gdb.guile/scm-frame-inline.exp
+++ b/gdb/testsuite/gdb.guile/scm-frame-inline.exp
@@ -23,7 +23,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return
}
-if ![runto_main] {
+if {![runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.guile/scm-frame.exp b/gdb/testsuite/gdb.guile/scm-frame.exp
index 9a27c42..821567e 100644
--- a/gdb/testsuite/gdb.guile/scm-frame.exp
+++ b/gdb/testsuite/gdb.guile/scm-frame.exp
@@ -28,7 +28,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
# The following tests require execution.
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.guile/scm-iterator.exp b/gdb/testsuite/gdb.guile/scm-iterator.exp
index 43d776b..188b5ef 100644
--- a/gdb/testsuite/gdb.guile/scm-iterator.exp
+++ b/gdb/testsuite/gdb.guile/scm-iterator.exp
@@ -26,7 +26,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return -1
}
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.guile/scm-lazy-string.exp b/gdb/testsuite/gdb.guile/scm-lazy-string.exp
index c5d09ae..eaee001 100644
--- a/gdb/testsuite/gdb.guile/scm-lazy-string.exp
+++ b/gdb/testsuite/gdb.guile/scm-lazy-string.exp
@@ -31,7 +31,7 @@ if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile}] } {
# The following tests require execution.
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.guile/scm-math.exp b/gdb/testsuite/gdb.guile/scm-math.exp
index 8b21909..17b54d1 100644
--- a/gdb/testsuite/gdb.guile/scm-math.exp
+++ b/gdb/testsuite/gdb.guile/scm-math.exp
@@ -167,21 +167,21 @@ proc test_value_numeric_ops {} {
# TCL 8.5 required here. Use lookup table instead?
proc get_max_int { size } {
- return [expr "(1 << ($size - 1)) - 1"]
+ return [expr {(1 << ($size - 1)) - 1}]
}
# Return the min signed int of size SIZE.
# TCL 8.5 required here. Use lookup table instead?
proc get_min_int { size } {
- return [expr "-(1 << ($size - 1))"]
+ return [expr {-(1 << ($size - 1))}]
}
# Return the max unsigned int of size SIZE.
# TCL 8.5 required here. Use lookup table instead?
proc get_max_uint { size } {
- return [expr "(1 << $size) - 1"]
+ return [expr {(1 << $size) - 1}]
}
# Helper routine for test_value_numeric_ranges.
@@ -252,7 +252,7 @@ proc test_value_numeric_ranges {} {
proc test_make_pointer_value { size } {
set max [get_max_uint $size]
- set max_hex [string repeat "f" [expr "$size / 4"]]
+ set max_hex [string repeat "f" [expr {$size / 4}]]
gdb_test "gu (print (make-value $max #:type void-pointer-type))" \
"= 0x$max_hex" "test make-value void* max"
@@ -337,7 +337,7 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c}]} {
return
}
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.guile/scm-objfile-script.exp b/gdb/testsuite/gdb.guile/scm-objfile-script.exp
index b6d9369..88cd18c 100644
--- a/gdb/testsuite/gdb.guile/scm-objfile-script.exp
+++ b/gdb/testsuite/gdb.guile/scm-objfile-script.exp
@@ -41,7 +41,7 @@ gdb_load ${binfile}
# Verify gdb loaded the script.
gdb_test "info auto-load guile-scripts" "Yes.*/${testfile}-gdb.scm.*"
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.guile/scm-objfile.exp b/gdb/testsuite/gdb.guile/scm-objfile.exp
index e0018c4..09256df 100644
--- a/gdb/testsuite/gdb.guile/scm-objfile.exp
+++ b/gdb/testsuite/gdb.guile/scm-objfile.exp
@@ -26,7 +26,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return
}
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.guile/scm-parameter.exp b/gdb/testsuite/gdb.guile/scm-parameter.exp
index e35428a..5483b81 100644
--- a/gdb/testsuite/gdb.guile/scm-parameter.exp
+++ b/gdb/testsuite/gdb.guile/scm-parameter.exp
@@ -26,7 +26,7 @@ gdb_install_guile_utils
gdb_install_guile_module
proc scm_param_test_maybe_no_output { command pattern args } {
- if [string length $pattern] {
+ if {[string length $pattern]} {
gdb_test $command $pattern $args
} else {
gdb_test_no_output $command $args
@@ -39,7 +39,8 @@ if { [is_remote host] } {
gdb_test "guile (print (parameter-value \"directories\"))" \
"\\\$cdir.\\\$cwd"
} else {
- set escaped_directory [string_to_regexp "$srcdir/$subdir"]
+ set directory [host_file_normalize "$::srcdir/$::subdir"]
+ set escaped_directory [string_to_regexp $directory]
gdb_test "guile (print (parameter-value \"directories\"))" \
"$escaped_directory.\\\$cdir.\\\$cwd"
}
@@ -109,7 +110,7 @@ with_test_prefix "test-enum-param" {
gdb_test_no_output "set print test-enum-param two"
gdb_test "show print test-enum-param" "The state of the enum is two." "show new value"
gdb_test "guile (print (parameter-value test-enum-param))" "two" "enum parameter value, two"
- gdb_test "set print test-enum-param three" "Undefined item: \"three\".*" "set invalid enum parameter"
+ gdb_test "set print test-enum-param three" "Undefined item: \"three\".*" "set invalid enum parameter"
}
# Test integer parameters.
@@ -305,7 +306,7 @@ with_test_prefix "test-file-param" {
gdb_test_no_output "set test-file-param bar.txt"
gdb_test "show test-file-param" "The name of the file is bar.txt." "show new value"
gdb_test "guile (print (parameter-value test-file-param))" "bar.txt" " new parameter value"
- gdb_test "set test-file-param" "Argument required.*"
+ gdb_test "set test-file-param" "Argument required.*"
}
# Test a parameter that is not documented.
@@ -565,47 +566,50 @@ rename scm_param_test_maybe_no_output ""
# Test a color parameter.
-with_ansi_styling_terminal {
- # This enables 256 colors support and disables colors approximation.
- setenv TERM xterm-256color
- setenv COLORTERM truecolor
-
- # Start with a fresh gdb.
- gdb_exit
- gdb_start
- gdb_reinitialize_dir $srcdir/$subdir
-
- gdb_install_guile_utils
- gdb_install_guile_module
-
- # We use "." here instead of ":" so that this works on win32 too.
- set escaped_directory [string_to_regexp "$srcdir/$subdir"]
-
- gdb_test_multiline "color gdb parameter" \
- "guile" "" \
- "(define test-color-param" "" \
- " (make-parameter \"print test-color-param\"" "" \
- " #:command-class COMMAND_DATA" "" \
- " #:parameter-type PARAM_COLOR" "" \
- " #:doc \"When set, test param does something useful. When disabled, does nothing.\"" "" \
- " #:show-doc \"Show the state of the test-color-param.\"" "" \
- " #:set-doc \"Set the state of the test-color-param.\"" "" \
- " #:show-func (lambda (self value)" "" \
- " (format #f \"The state of the test-color-param is ~a.\" value))" "" \
- " #:initial-value (make-color \"green\")))" "" \
- "(register-parameter! test-color-param)" "" \
- "end"
-
- with_test_prefix "test-color-param" {
- with_test_prefix "initial-value" {
- gdb_test "guile (print (parameter-value test-color-param))" "= #<gdb:color green COLORSPACE_ANSI_8COLOR>" "color parameter value (green)"
- gdb_test "show print test-color-param" "The state of the test-color-param is green." "show initial value"
- gdb_test_no_output "set print test-color-param 255"
- }
- with_test_prefix "new-value" {
- gdb_test "show print test-color-param" "The state of the test-color-param is 255." "show new value"
- gdb_test "guile (print (parameter-value test-color-param))" "= #<gdb:color 255 COLORSPACE_XTERM_256COLOR>" "color parameter value (255)"
- gdb_test "set print test-color-param 256" "integer 256 out of range.*" "set invalid color parameter"
+if { ![is_remote host] } {
+ with_ansi_styling_terminal {
+
+ # This enables 256 colors support and disables colors approximation.
+ setenv TERM xterm-256color
+ setenv COLORTERM truecolor
+
+ # Start with a fresh gdb.
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+
+ gdb_install_guile_utils
+ gdb_install_guile_module
+
+ # We use "." here instead of ":" so that this works on win32 too.
+ set escaped_directory [string_to_regexp "$srcdir/$subdir"]
+
+ gdb_test_multiline "color gdb parameter" \
+ "guile" "" \
+ "(define test-color-param" "" \
+ " (make-parameter \"print test-color-param\"" "" \
+ " #:command-class COMMAND_DATA" "" \
+ " #:parameter-type PARAM_COLOR" "" \
+ " #:doc \"When set, test param does something useful. When disabled, does nothing.\"" "" \
+ " #:show-doc \"Show the state of the test-color-param.\"" "" \
+ " #:set-doc \"Set the state of the test-color-param.\"" "" \
+ " #:show-func (lambda (self value)" "" \
+ " (format #f \"The state of the test-color-param is ~a.\" value))" "" \
+ " #:initial-value (make-color \"green\")))" "" \
+ "(register-parameter! test-color-param)" "" \
+ "end"
+
+ with_test_prefix "test-color-param" {
+ with_test_prefix "initial-value" {
+ gdb_test "guile (print (parameter-value test-color-param))" "= #<gdb:color green COLORSPACE_ANSI_8COLOR>" "color parameter value (green)"
+ gdb_test "show print test-color-param" "The state of the test-color-param is green." "show initial value"
+ gdb_test_no_output "set print test-color-param 255"
+ }
+ with_test_prefix "new-value" {
+ gdb_test "show print test-color-param" "The state of the test-color-param is 255." "show new value"
+ gdb_test "guile (print (parameter-value test-color-param))" "= #<gdb:color 255 COLORSPACE_XTERM_256COLOR>" "color parameter value (255)"
+ gdb_test "set print test-color-param 256" "integer 256 out of range.*" "set invalid color parameter"
+ }
}
}
}
diff --git a/gdb/testsuite/gdb.guile/scm-ports.exp b/gdb/testsuite/gdb.guile/scm-ports.exp
index c67ebd2..a0af289 100644
--- a/gdb/testsuite/gdb.guile/scm-ports.exp
+++ b/gdb/testsuite/gdb.guile/scm-ports.exp
@@ -26,7 +26,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return
}
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
@@ -84,7 +84,7 @@ foreach variation $port_variations {
# Test read/write of memory ports.
proc test_mem_port_rw { buffered } {
- if $buffered {
+ if {$buffered} {
set mode "r+"
} else {
set mode "r+0"
@@ -115,7 +115,7 @@ proc test_mem_port_rw { buffered } {
"define new-value"
gdb_test "guile (print (put-bytevector rw-mem-port (make-bytevector 1 new-value)))" \
"= #<unspecified>"
- if $buffered {
+ if {$buffered} {
# Value shouldn't be in memory yet.
gdb_test "guile (print (value=? (parse-and-eval \"*(char*) \$sp\") byte-at-sp))" \
"= #t" \
diff --git a/gdb/testsuite/gdb.guile/scm-pretty-print.exp b/gdb/testsuite/gdb.guile/scm-pretty-print.exp
index 09717a9..62fb8e2 100644
--- a/gdb/testsuite/gdb.guile/scm-pretty-print.exp
+++ b/gdb/testsuite/gdb.guile/scm-pretty-print.exp
@@ -33,9 +33,10 @@ proc run_lang_tests {exefile lang} {
set nl "\[\r\n\]+"
# Start with a fresh gdb.
- clean_restart $exefile
+ clean_restart
+ gdb_load $exefile
- if ![gdb_guile_runto_main] {
+ if {![gdb_guile_runto_main]} {
return
}
@@ -114,9 +115,9 @@ run_lang_tests "${binfile}-cxx" "c++"
# Run various other tests.
-clean_restart $binfile
+clean_restart $::testfile
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.guile/scm-section-script.exp b/gdb/testsuite/gdb.guile/scm-section-script.exp
index 4c0238d..3a68adc 100644
--- a/gdb/testsuite/gdb.guile/scm-section-script.exp
+++ b/gdb/testsuite/gdb.guile/scm-section-script.exp
@@ -94,7 +94,7 @@ gdb_test "info auto-load guile-scripts ${testfile}" "Yes.*${testfile}.scm.*"
gdb_test "info auto-load guile-scripts no-script-matches-this" \
"No auto-load scripts matching no-script-matches-this."
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.guile/scm-symbol.exp b/gdb/testsuite/gdb.guile/scm-symbol.exp
index b6ebffd..2ddd3f0 100644
--- a/gdb/testsuite/gdb.guile/scm-symbol.exp
+++ b/gdb/testsuite/gdb.guile/scm-symbol.exp
@@ -54,7 +54,7 @@ gdb_test "guile (print (symbol-value qq-var))" \
gdb_test "guile (print (symbol-needs-frame? qq-var))" \
"= #f" "print whether qq needs a frame"
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
@@ -141,9 +141,9 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}-cxx" executable "
return -1
}
-clean_restart ${binfile}-cxx
+clean_restart ${::testfile}-cxx
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
@@ -172,7 +172,7 @@ gdb_test "guile (print (= (symbol-addr-class cplusfunc) SYMBOL_LOC_BLOCK))" "= #
# test as it unloads the object file in GDB.
# Start with a fresh gdb.
clean_restart ${testfile}
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.guile/scm-symtab.exp b/gdb/testsuite/gdb.guile/scm-symtab.exp
index 621bbbe..c19b460 100644
--- a/gdb/testsuite/gdb.guile/scm-symtab.exp
+++ b/gdb/testsuite/gdb.guile/scm-symtab.exp
@@ -27,7 +27,7 @@ if {[prepare_for_testing "failed to prepare" $testfile \
return
}
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
@@ -143,7 +143,7 @@ clean_restart ${testfile}
# Test find-pc-line.
# The following tests require execution.
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.guile/scm-type.exp b/gdb/testsuite/gdb.guile/scm-type.exp
index 1167dd1..d974c86 100644
--- a/gdb/testsuite/gdb.guile/scm-type.exp
+++ b/gdb/testsuite/gdb.guile/scm-type.exp
@@ -38,13 +38,14 @@ proc build_inferior {exefile lang} {
proc restart_gdb {exefile} {
global srcdir subdir
- clean_restart $exefile
+ clean_restart
+ gdb_load $exefile
if { ![allow_guile_tests] } {
return 0
}
- if ![gdb_guile_runto_main] {
+ if {![gdb_guile_runto_main]} {
return 0
}
gdb_scm_test_silent_cmd "guile (use-modules (gdb iterator))" \
@@ -274,7 +275,7 @@ proc test_range {} {
if { [build_inferior "${binfile}" "c"] < 0 } {
return
}
-if ![restart_gdb "${binfile}"] {
+if {![restart_gdb "${binfile}"]} {
return
}
@@ -290,7 +291,7 @@ with_test_prefix "lang_c" {
if { [build_inferior "${binfile}-cxx" "c++"] < 0 } {
return
}
-if ![restart_gdb "${binfile}-cxx"] {
+if {![restart_gdb "${binfile}-cxx"]} {
return
}
diff --git a/gdb/testsuite/gdb.guile/scm-value-cc.exp b/gdb/testsuite/gdb.guile/scm-value-cc.exp
index 202f01e..f65be25 100644
--- a/gdb/testsuite/gdb.guile/scm-value-cc.exp
+++ b/gdb/testsuite/gdb.guile/scm-value-cc.exp
@@ -26,7 +26,7 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} {
return
}
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.guile/scm-value.exp b/gdb/testsuite/gdb.guile/scm-value.exp
index 1567b13..ea77d8f 100644
--- a/gdb/testsuite/gdb.guile/scm-value.exp
+++ b/gdb/testsuite/gdb.guile/scm-value.exp
@@ -309,9 +309,10 @@ proc test_value_after_death {} {
proc test_subscript_regression {exefile lang} {
# Start with a fresh gdb.
- clean_restart ${exefile}
+ clean_restart
+ gdb_load ${exefile}
- if ![gdb_guile_runto_main ] {
+ if {![gdb_guile_runto_main ]} {
return
}
@@ -427,7 +428,7 @@ if { [build_inferior "${binfile}" "c"] < 0 } {
}
# Start with a fresh gdb.
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_install_guile_utils
gdb_install_guile_module
@@ -437,7 +438,7 @@ test_value_hash
# The following tests require execution.
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
@@ -446,7 +447,7 @@ test_inferior_function_call
test_strings
test_value_after_death
-# Test either C or C++ values.
+# Test either C or C++ values.
test_subscript_regression "${binfile}" "c"
diff --git a/gdb/testsuite/gdb.guile/types-module.exp b/gdb/testsuite/gdb.guile/types-module.exp
index c9d7067..e8412cc 100644
--- a/gdb/testsuite/gdb.guile/types-module.exp
+++ b/gdb/testsuite/gdb.guile/types-module.exp
@@ -30,7 +30,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $flags] } {
return -1
}
-if ![gdb_guile_runto_main] {
+if {![gdb_guile_runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.linespec/cp-replace-typedefs-ns-template.exp b/gdb/testsuite/gdb.linespec/cp-replace-typedefs-ns-template.exp
index 77757fc..db6ed69 100644
--- a/gdb/testsuite/gdb.linespec/cp-replace-typedefs-ns-template.exp
+++ b/gdb/testsuite/gdb.linespec/cp-replace-typedefs-ns-template.exp
@@ -93,7 +93,7 @@ foreach loc {
"NS1::NS2::AliasTempl<int>::static_method<int>(NS1::NS2::object*)"
"NS1::NS2::AliasTempl<int>::static_method<int>(NS1::NS2::object_p)"
} {
- if [test_compiler_info gcc*] {
+ if {[test_compiler_info gcc*]} {
# While Clang emits "AliasTempl<int>" (etc.) typedefs, GCC
# emits "AliasTempl" typedefs with no template parameter info.
setup_xfail gcc/95437 *-*-*
@@ -104,7 +104,7 @@ foreach loc {
# instead of succeeding with e.g., "AliasTempl<int>" preserved in
# the location text. If that ever happens, we'll need to update
# these tests.
- if [test_compiler_info gcc*] {
+ if {[test_compiler_info gcc*]} {
check_setting_bp_fails "b $loc"
}
}
diff --git a/gdb/testsuite/gdb.linespec/cpcompletion.exp b/gdb/testsuite/gdb.linespec/cpcompletion.exp
index 6c1c551..2f1cc84 100644
--- a/gdb/testsuite/gdb.linespec/cpcompletion.exp
+++ b/gdb/testsuite/gdb.linespec/cpcompletion.exp
@@ -779,7 +779,7 @@ proc test_makem_1 {arglist_list expected_list} {
send_log "expecting $expected_list\n"
# Do list equality via canonical strings.
- if {[expr {[list {*}$expected_list] eq [list {*}$result]}]} {
+ if {[string eq $expected_list eq $result]} {
pass "makem unit test: $arglist"
} else {
fail "makem unit test: $arglist"
diff --git a/gdb/testsuite/gdb.linespec/explicit.exp b/gdb/testsuite/gdb.linespec/explicit.exp
index 12eaa51..b859b44 100644
--- a/gdb/testsuite/gdb.linespec/explicit.exp
+++ b/gdb/testsuite/gdb.linespec/explicit.exp
@@ -608,7 +608,7 @@ namespace eval $testfile {
}
# Test interaction of condition command and explicit linespec conditons.
- clean_restart [standard_output_file $exefile]
+ clean_restart $exefile
set tst "condition_command overrides explicit linespec condition"
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.linespec/keywords.exp b/gdb/testsuite/gdb.linespec/keywords.exp
index 42a9228..b1df13a 100644
--- a/gdb/testsuite/gdb.linespec/keywords.exp
+++ b/gdb/testsuite/gdb.linespec/keywords.exp
@@ -22,7 +22,7 @@ if {[prepare_for_testing "failed to prepare" $exefile $srcfile {debug}]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return 0
}
diff --git a/gdb/testsuite/gdb.linespec/line-breakpoint-outside-function.exp b/gdb/testsuite/gdb.linespec/line-breakpoint-outside-function.exp
index 012be6b..120ee6c 100644
--- a/gdb/testsuite/gdb.linespec/line-breakpoint-outside-function.exp
+++ b/gdb/testsuite/gdb.linespec/line-breakpoint-outside-function.exp
@@ -32,7 +32,7 @@ if {[build_executable "failed to prepare" ${testfile} ${srcfile} $opts]} {
}
proc do_test {} {
- clean_restart $::binfile
+ clean_restart $::testfile
# To make things easier, just so we don't have to deal with the question.
gdb_test_no_output "set breakpoint pending on"
diff --git a/gdb/testsuite/gdb.linespec/ls-errs.exp b/gdb/testsuite/gdb.linespec/ls-errs.exp
index 303fd9f..56f9467 100644
--- a/gdb/testsuite/gdb.linespec/ls-errs.exp
+++ b/gdb/testsuite/gdb.linespec/ls-errs.exp
@@ -22,7 +22,7 @@ proc do_test {lang} {
standard_testfile
set exefile $testfile
- if [info exists compiler_info] {
+ if {[info exists compiler_info]} {
# Unsetting compiler_info allows us to switch compilers
# used by prepare_for_testing.
unset compiler_info
@@ -89,9 +89,8 @@ proc do_test {lang} {
proc test_break {linespec msg_id args} {
global error_messages
- gdb_test "break $linespec" [string_to_regexp \
- [eval format \$error_messages($msg_id) \
- $args]] \
+ gdb_test "break $linespec" \
+ [string_to_regexp [format $error_messages($msg_id) {*}$args]] \
"'break $linespec'"
}
diff --git a/gdb/testsuite/gdb.linespec/macro-relative.exp b/gdb/testsuite/gdb.linespec/macro-relative.exp
index 94ab16a..c076e02 100644
--- a/gdb/testsuite/gdb.linespec/macro-relative.exp
+++ b/gdb/testsuite/gdb.linespec/macro-relative.exp
@@ -41,7 +41,7 @@ clean_restart ${testfile}
# Test macros respect DW_AT_comp_dir.
# "list header_two_func" does not set exactly the one line we want.
-if ![runto header_two_func] {
+if {![runto header_two_func]} {
return -1
}
diff --git a/gdb/testsuite/gdb.linespec/skip-two.exp b/gdb/testsuite/gdb.linespec/skip-two.exp
index 6e3ab30..cfd91da 100644
--- a/gdb/testsuite/gdb.linespec/skip-two.exp
+++ b/gdb/testsuite/gdb.linespec/skip-two.exp
@@ -31,7 +31,7 @@ if {[prepare_for_testing "failed to prepare" $execfile \
gdb_test "skip function dupname" \
{Function dupname will be skipped when stepping\.}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
@@ -63,7 +63,7 @@ gdb_test_no_output "skip delete 1"
gdb_test "skip file thefile.cc" \
{File thefile\.cc will be skipped when stepping\.}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.linespec/thread.exp b/gdb/testsuite/gdb.linespec/thread.exp
index d2f7b25..f5cdf8b 100644
--- a/gdb/testsuite/gdb.linespec/thread.exp
+++ b/gdb/testsuite/gdb.linespec/thread.exp
@@ -23,7 +23,7 @@ if {[prepare_for_testing "failed to prepare" $exefile $srcfile {debug}]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return 0
}
diff --git a/gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp b/gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp
index 3fd9b81..0565681 100644
--- a/gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp
+++ b/gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp
@@ -42,7 +42,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" $objsfile object {}] != ""
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
@@ -54,7 +54,7 @@ if [mi_runto func_nofb_marker] {
}
# GDB could have crashed.
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/gdb2549.exp b/gdb/testsuite/gdb.mi/gdb2549.exp
index 796c1fa..5aabc3b 100644
--- a/gdb/testsuite/gdb.mi/gdb2549.exp
+++ b/gdb/testsuite/gdb.mi/gdb2549.exp
@@ -94,7 +94,7 @@ proc register_tests { } {
register_test 666 t $binary
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
register_tests_no_exec
diff --git a/gdb/testsuite/gdb.mi/gdb669.exp b/gdb/testsuite/gdb.mi/gdb669.exp
index 086d3c1..da1db64 100644
--- a/gdb/testsuite/gdb.mi/gdb669.exp
+++ b/gdb/testsuite/gdb.mi/gdb669.exp
@@ -30,7 +30,7 @@ if {[gdb_compile_pthreads "$srcdir/$subdir/$srcfile" $binfile executable $option
return -1
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
mi_runto_main
check_mi_and_console_threads "at main"
diff --git a/gdb/testsuite/gdb.mi/gdb701.exp b/gdb/testsuite/gdb.mi/gdb701.exp
index 587481c..9ef6fb7 100644
--- a/gdb/testsuite/gdb.mi/gdb701.exp
+++ b/gdb/testsuite/gdb.mi/gdb701.exp
@@ -35,7 +35,7 @@ if {[gdb_compile $srcdir/$subdir/$srcfile $binfile executable debug] != ""} {
# If it doesn't, Bad Things Happen(TM).
# Run to main
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
mi_runto_main
# Step over "foo = 0"
diff --git a/gdb/testsuite/gdb.mi/gdb792.exp b/gdb/testsuite/gdb.mi/gdb792.exp
index f894eea..64f218a 100644
--- a/gdb/testsuite/gdb.mi/gdb792.exp
+++ b/gdb/testsuite/gdb.mi/gdb792.exp
@@ -28,7 +28,7 @@ if {[gdb_compile $srcdir/$subdir/$srcfile $binfile executable {debug c++}] != ""
return -1
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
mi_runto_main
diff --git a/gdb/testsuite/gdb.mi/interrupt-thread-group.exp b/gdb/testsuite/gdb.mi/interrupt-thread-group.exp
index 869fb1c..5f9e49e 100644
--- a/gdb/testsuite/gdb.mi/interrupt-thread-group.exp
+++ b/gdb/testsuite/gdb.mi/interrupt-thread-group.exp
@@ -30,7 +30,7 @@ if {[gdb_compile_pthreads "$srcdir/$subdir/$srcfile" $binfile \
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"set non-stop on\" -ex \"set mi-async\""
- mi_clean_restart $binfile
+ mi_clean_restart $::testfile
}
mi_detect_async
diff --git a/gdb/testsuite/gdb.mi/mi-add-inferior.exp b/gdb/testsuite/gdb.mi/mi-add-inferior.exp
index d110e68..8c4926f 100644
--- a/gdb/testsuite/gdb.mi/mi-add-inferior.exp
+++ b/gdb/testsuite/gdb.mi/mi-add-inferior.exp
@@ -26,7 +26,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
return -1
}
-mi_clean_restart ${binfile}
+mi_clean_restart ${::testfile}
# Start execution to establish a connection.
mi_runto_main
diff --git a/gdb/testsuite/gdb.mi/mi-async-run.exp b/gdb/testsuite/gdb.mi/mi-async-run.exp
index 8352803..3df8769 100644
--- a/gdb/testsuite/gdb.mi/mi-async-run.exp
+++ b/gdb/testsuite/gdb.mi/mi-async-run.exp
@@ -35,7 +35,7 @@ proc test_async_run {} {
set GDBFLAGS [concat $GDBFLAGS " -ex \"set mi-async on\""]
- if {[mi_clean_restart $binfile]} {
+ if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-async.exp b/gdb/testsuite/gdb.mi/mi-async.exp
index 09db7f9..1c4e06c 100644
--- a/gdb/testsuite/gdb.mi/mi-async.exp
+++ b/gdb/testsuite/gdb.mi/mi-async.exp
@@ -42,7 +42,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
save_vars { GDBFLAGS } {
set GDBFLAGS [concat $GDBFLAGS " -ex \"set mi-async on\""]
- if {[mi_clean_restart $binfile]} {
+ if {[mi_clean_restart $::testfile]} {
return
}
}
diff --git a/gdb/testsuite/gdb.mi/mi-break-qualified.exp b/gdb/testsuite/gdb.mi/mi-break-qualified.exp
index b5e5e78..9adc2d9 100644
--- a/gdb/testsuite/gdb.mi/mi-break-qualified.exp
+++ b/gdb/testsuite/gdb.mi/mi-break-qualified.exp
@@ -93,7 +93,7 @@ proc test_break_qualified {} {
"delete temp breakpoints"
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-break.exp b/gdb/testsuite/gdb.mi/mi-break.exp
index bb982c3..cb7c14b 100644
--- a/gdb/testsuite/gdb.mi/mi-break.exp
+++ b/gdb/testsuite/gdb.mi/mi-break.exp
@@ -346,7 +346,7 @@ proc_with_prefix test_forced_conditions {} {
set loc [mi_make_breakpoint_loc -enabled "N"]
set args [list -cond "bad" -locations "\\\[$loc\\\]"]
- set bp [eval mi_make_breakpoint_multi $args]
+ set bp [mi_make_breakpoint_multi {*}$args]
mi_gdb_test "-break-insert -c bad --force-condition callme" \
"${warning}\\^done,$bp" \
@@ -398,7 +398,7 @@ proc test_break {mi_mode} {
} else {
set start_ops ""
}
- if [mi_clean_restart $binfile $start_ops ] {
+ if [mi_clean_restart $::testfile $start_ops ] {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp b/gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp
index 9cb91de..46561e4 100644
--- a/gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp
+++ b/gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp
@@ -48,7 +48,7 @@ proc test_insert_delete_modify { } {
global lib_sl1 lib_sl2
global binfile
- mi_clean_restart $binfile
+ mi_clean_restart $::testfile
mi_load_shlibs $lib_sl1 $lib_sl2
@@ -184,7 +184,7 @@ proc test_pending_resolved { } {
global lib_sl1 lib_sl2
global mi_gdb_prompt
- if {[mi_clean_restart $binfile]} {
+ if {[mi_clean_restart $::testfile]} {
return
}
mi_load_shlibs $lib_sl1 $lib_sl2
@@ -279,7 +279,7 @@ proc test_auto_disable { } {
global lib_sl1 lib_sl2
global binfile
- mi_clean_restart $binfile
+ mi_clean_restart $::testfile
mi_load_shlibs $lib_sl1 $lib_sl2
diff --git a/gdb/testsuite/gdb.mi/mi-breakpoint-multiple-locations.exp b/gdb/testsuite/gdb.mi/mi-breakpoint-multiple-locations.exp
index cbf9f57..7995846 100644
--- a/gdb/testsuite/gdb.mi/mi-breakpoint-multiple-locations.exp
+++ b/gdb/testsuite/gdb.mi/mi-breakpoint-multiple-locations.exp
@@ -56,7 +56,7 @@ proc do_test { mi_version use_fix_flag expect_fixed_output } {
global MIFLAGS decimal binfile
set MIFLAGS "-i=mi${mi_version}"
- mi_clean_restart $binfile
+ mi_clean_restart $::testfile
mi_runto_main
diff --git a/gdb/testsuite/gdb.mi/mi-breakpoint-script.exp b/gdb/testsuite/gdb.mi/mi-breakpoint-script.exp
index af514e8..ce30d44 100644
--- a/gdb/testsuite/gdb.mi/mi-breakpoint-script.exp
+++ b/gdb/testsuite/gdb.mi/mi-breakpoint-script.exp
@@ -51,7 +51,7 @@ proc do_test { mi_version use_fix_flag expect_fixed_output } {
save_vars { ::MIFLAGS } {
set ::MIFLAGS "-i=mi${mi_version}"
- mi_clean_restart $::binfile
+ mi_clean_restart $::testfile
}
if $use_fix_flag {
diff --git a/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp b/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp
index 9053b18..ec023e6 100644
--- a/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp
+++ b/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp
@@ -27,7 +27,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
if {[mi_runto_main] < 0} {
return -1
}
@@ -46,7 +46,7 @@ proc restart_for_test {} {
global srcdir subdir binfile srcfile
global main_lineno
- if {[mi_clean_restart $binfile]} {
+ if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-catch-load.exp b/gdb/testsuite/gdb.mi/mi-catch-load.exp
index a9a5fdc..3c36cc9 100644
--- a/gdb/testsuite/gdb.mi/mi-catch-load.exp
+++ b/gdb/testsuite/gdb.mi/mi-catch-load.exp
@@ -36,7 +36,7 @@ gdb_download_shlib $binfile2
# test -catch-load
with_test_prefix "catch-load" {
- mi_clean_restart $binfile
+ mi_clean_restart $::testfile
mi_locate_shlib $binfile2
mi_runto_main
@@ -63,7 +63,7 @@ with_test_prefix "catch-load" {
# test -catch-unload
with_test_prefix "catch-unload" {
- mi_clean_restart $binfile
+ mi_clean_restart $::testfile
mi_locate_shlib $binfile2
mi_runto_main
diff --git a/gdb/testsuite/gdb.mi/mi-cli.exp b/gdb/testsuite/gdb.mi/mi-cli.exp
index a3ff7eb..b59a5ed 100644
--- a/gdb/testsuite/gdb.mi/mi-cli.exp
+++ b/gdb/testsuite/gdb.mi/mi-cli.exp
@@ -29,7 +29,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
mi_gdb_test "-interpreter-exec" \
{\^error,msg="-interpreter-exec: Usage: -interpreter-exec interp command"} \
diff --git a/gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp b/gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp
index 5587b76..24d12c1 100644
--- a/gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp
+++ b/gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp
@@ -31,7 +31,7 @@ proc test_command_param_changed { } {
global binfile
with_test_prefix "cmd param" {
- mi_clean_restart $binfile
+ mi_clean_restart $::testfile
mi_runto_main
if { $scheduler_locking_supported } {
diff --git a/gdb/testsuite/gdb.mi/mi-cmd-user-context.exp b/gdb/testsuite/gdb.mi/mi-cmd-user-context.exp
index 806ed4c..324de5a 100644
--- a/gdb/testsuite/gdb.mi/mi-cmd-user-context.exp
+++ b/gdb/testsuite/gdb.mi/mi-cmd-user-context.exp
@@ -29,7 +29,7 @@ set main_break_line [gdb_get_line_number "main break line"]
set any "\[^\r\n\]*"
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
mi_create_breakpoint "$srcfile:$main_break_line" "set breakpoint in main"
mi_run_cmd
mi_expect_stop "breakpoint-hit" "main" "" $srcfile $main_break_line \
diff --git a/gdb/testsuite/gdb.mi/mi-complete.exp b/gdb/testsuite/gdb.mi/mi-complete.exp
index 22acda3..ad29b3f 100644
--- a/gdb/testsuite/gdb.mi/mi-complete.exp
+++ b/gdb/testsuite/gdb.mi/mi-complete.exp
@@ -26,7 +26,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debu
return -1
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
# Don't run to main to avoid increasing the search scope to include
# debug info of shared libraries like glibc, libgcc, etc.
diff --git a/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.exp b/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.exp
index 02d02b2..7708a6d 100644
--- a/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.exp
+++ b/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.exp
@@ -59,7 +59,7 @@ proc test { variant } {
return -1
}
- if {[mi_clean_restart $binfile]} {
+ if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-condbreak-fail.exp b/gdb/testsuite/gdb.mi/mi-condbreak-fail.exp
index 43b1e2f..5bd8993 100644
--- a/gdb/testsuite/gdb.mi/mi-condbreak-fail.exp
+++ b/gdb/testsuite/gdb.mi/mi-condbreak-fail.exp
@@ -35,7 +35,7 @@ if [build_executable ${testfile}.exp ${binfile} ${srcfile}] {
proc run_test { unwind_on_signal } {
- if {[mi_clean_restart $::binfile]} {
+ if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-condbreak-throw.exp b/gdb/testsuite/gdb.mi/mi-condbreak-throw.exp
index 0a89a8a..b4960a8 100644
--- a/gdb/testsuite/gdb.mi/mi-condbreak-throw.exp
+++ b/gdb/testsuite/gdb.mi/mi-condbreak-throw.exp
@@ -38,7 +38,7 @@ if [build_executable ${testfile}.exp ${binfile} ${srcfile} {debug c++}] {
proc run_test { unwind_on_exception } {
- if {[mi_clean_restart $::binfile]} {
+ if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-console.exp b/gdb/testsuite/gdb.mi/mi-console.exp
index efb1ea9..861ef42 100644
--- a/gdb/testsuite/gdb.mi/mi-console.exp
+++ b/gdb/testsuite/gdb.mi/mi-console.exp
@@ -53,7 +53,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-corefile.exp b/gdb/testsuite/gdb.mi/mi-corefile.exp
index 3f0e720..b491486 100644
--- a/gdb/testsuite/gdb.mi/mi-corefile.exp
+++ b/gdb/testsuite/gdb.mi/mi-corefile.exp
@@ -29,6 +29,7 @@ if {[build_executable $testfile.exp $testfile $srcfile debug] == -1} {
set corefile [core_find $binfile {}]
if {$corefile == ""} {
+ untested "unable to create or find corefile"
return 0
}
diff --git a/gdb/testsuite/gdb.mi/mi-detach.exp b/gdb/testsuite/gdb.mi/mi-detach.exp
index ff983c1..b485a9b 100644
--- a/gdb/testsuite/gdb.mi/mi-detach.exp
+++ b/gdb/testsuite/gdb.mi/mi-detach.exp
@@ -25,7 +25,7 @@ if {[build_executable $testfile.exp $testfile $srcfile {debug}] == -1} {
return -1
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
mi_runto_main
mi_gdb_test "-target-detach" "=thread-exited,id=\"1\".*=thread-group-exited,id=\"i1\".*" "detach"
diff --git a/gdb/testsuite/gdb.mi/mi-disassemble.exp b/gdb/testsuite/gdb.mi/mi-disassemble.exp
index 15ead33..90f79e3 100644
--- a/gdb/testsuite/gdb.mi/mi-disassemble.exp
+++ b/gdb/testsuite/gdb.mi/mi-disassemble.exp
@@ -345,7 +345,7 @@ proc test_disassembly_opcode_format {} {
"data-disassemble checking the opcodes bytes format"
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
mi_runto_main
test_disassembly_only
test_disassembly_with_opcodes
diff --git a/gdb/testsuite/gdb.mi/mi-dlmopen.exp b/gdb/testsuite/gdb.mi/mi-dlmopen.exp
index c0208eb..0e1d0bc 100644
--- a/gdb/testsuite/gdb.mi/mi-dlmopen.exp
+++ b/gdb/testsuite/gdb.mi/mi-dlmopen.exp
@@ -65,9 +65,19 @@ if { $dyln_name eq "" } {
set bp_main [gdb_get_line_number "bp.main" $srcfile]
set bp_loaded [gdb_get_line_number "bp.loaded" $srcfile]
+# If the dynamic linker path contains a symlink, some instances show the real
+# path instead of the original path. Accept both.
+lassign [remote_exec target realpath "$dyln_name"] realpath_ret dyln_realpath_name
+
+if { $realpath_ret == 0 } {
+ set dyln_realpath_name [string trim $dyln_realpath_name]
+} else {
+ set dyln_realpath_name "not-a-valid-path"
+}
+
# Return true if FILENAME is the dynamic linker. Otherwise return false.
proc is_dyln { filename } {
- return [expr {$filename eq $::dyln_name}]
+ return [expr {$filename eq $::dyln_name || $filename eq $::dyln_realpath_name}]
}
# Run 'info sharedlibrary' and count the number of mappings that look
@@ -81,7 +91,7 @@ proc get_dyld_info {} {
set dyld_count 0
set dyld_start_addr ""
gdb_test_multiple "info sharedlibrary" "" {
- -re "~\"From\\s+To(\\s+NS)?\\s+Syms\\s+Read\\s+Shared Object Library\\\\n\"\r\n" {
+ -re "~\"From\\s+To(\\s+Linker NS)?\\s+Syms\\s+Read\\s+Shared Object Library\\\\n\"\r\n" {
exp_continue
}
-re "^~\"($::hex)\\s+${::hex}(\\s+$::decimal)?\\s+\[^/\]+(/\[^\r\n\]+)\\\\n\"\r\n" {
@@ -122,7 +132,7 @@ proc get_dyld_info {} {
# number of unload events for the libraries created for this test, and
# additionally, check for dynamic linker unload events.
proc check_solib_unload_events {} {
- mi_clean_restart $::binfile
+ mi_clean_restart $::testfile
if {[mi_runto_main] == -1} {
return
diff --git a/gdb/testsuite/gdb.mi/mi-dprintf-modified.exp b/gdb/testsuite/gdb.mi/mi-dprintf-modified.exp
index c3e1bdf..0584a86 100644
--- a/gdb/testsuite/gdb.mi/mi-dprintf-modified.exp
+++ b/gdb/testsuite/gdb.mi/mi-dprintf-modified.exp
@@ -52,7 +52,7 @@ if { [build_executable "build exec" $binfile $srcfile $opts] == -1} {
set bp_line [gdb_get_line_number "Break here" $srcfile]
# Start the inferior.
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
mi_runto_main
# Place a breakpoint at the dlopen() line.
diff --git a/gdb/testsuite/gdb.mi/mi-dprintf-pending.exp b/gdb/testsuite/gdb.mi/mi-dprintf-pending.exp
index 2df9ad4..3685e42 100644
--- a/gdb/testsuite/gdb.mi/mi-dprintf-pending.exp
+++ b/gdb/testsuite/gdb.mi/mi-dprintf-pending.exp
@@ -39,7 +39,7 @@ if {[gdb_compile $srcdir/$subdir/$srcfile $binfile executable $exec_opts] != ""}
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-dprintf.exp b/gdb/testsuite/gdb.mi/mi-dprintf.exp
index 5d448e4..9d0b95a 100644
--- a/gdb/testsuite/gdb.mi/mi-dprintf.exp
+++ b/gdb/testsuite/gdb.mi/mi-dprintf.exp
@@ -31,7 +31,7 @@ if {[build_executable $testfile.exp $testfile $srcfile $flags] == -1} {
set bp_location1 [gdb_get_line_number "set breakpoint 1 here"]
set dp_location1 [gdb_get_line_number "set dprintf 1 here"]
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
mi_runto_main
set i 0
diff --git a/gdb/testsuite/gdb.mi/mi-eval.exp b/gdb/testsuite/gdb.mi/mi-eval.exp
index 27c27f5..2b21895 100644
--- a/gdb/testsuite/gdb.mi/mi-eval.exp
+++ b/gdb/testsuite/gdb.mi/mi-eval.exp
@@ -32,7 +32,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-exec-run.exp b/gdb/testsuite/gdb.mi/mi-exec-run.exp
index a7a61b8..43406cf 100644
--- a/gdb/testsuite/gdb.mi/mi-exec-run.exp
+++ b/gdb/testsuite/gdb.mi/mi-exec-run.exp
@@ -30,6 +30,8 @@ set MIFLAGS "-i=mi"
# cannot use it, then there is no point in running this testcase.
require !use_gdb_stub
+set have_startup_shell [have_startup_shell]
+
standard_testfile mi-start.c
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
@@ -172,6 +174,9 @@ remote_exec target "chmod \"a-x\" $binfile.nox"
foreach_with_prefix inferior-tty {"main" "separate"} {
foreach_with_prefix mi {"main" "separate"} {
foreach_with_prefix force-fail {0 1} {
+ if { ${force-fail} && $have_startup_shell == -1 } {
+ continue
+ }
test ${inferior-tty} ${mi} ${force-fail}
}
}
diff --git a/gdb/testsuite/gdb.mi/mi-exit-code.exp b/gdb/testsuite/gdb.mi/mi-exit-code.exp
index 344d565..af2c6bd 100644
--- a/gdb/testsuite/gdb.mi/mi-exit-code.exp
+++ b/gdb/testsuite/gdb.mi/mi-exit-code.exp
@@ -36,7 +36,7 @@ proc test_list_thread_groups { } {
"122\\^done,groups=\\\[\{id=\"i1\",type=\"process\"\}\]" \
"-list-thread-groups before run shows no exit-code"
- mi_clean_restart $binfile
+ mi_clean_restart $::testfile
with_test_prefix "first run" {
mi_runto_main
diff --git a/gdb/testsuite/gdb.mi/mi-fill-memory.exp b/gdb/testsuite/gdb.mi/mi-fill-memory.exp
index 0afc258..ab7e03a 100644
--- a/gdb/testsuite/gdb.mi/mi-fill-memory.exp
+++ b/gdb/testsuite/gdb.mi/mi-fill-memory.exp
@@ -27,7 +27,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}.c" "${binfile}" executable {d
return -1
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
mi_runto_main
mi_next_to "main" "" "mi-read-memory.c" "20" "next at main"
diff --git a/gdb/testsuite/gdb.mi/mi-fortran-modules.exp b/gdb/testsuite/gdb.mi/mi-fortran-modules.exp
index 8886702..48391bc 100644
--- a/gdb/testsuite/gdb.mi/mi-fortran-modules.exp
+++ b/gdb/testsuite/gdb.mi/mi-fortran-modules.exp
@@ -28,7 +28,7 @@ if {[build_executable "failed to prepare" ${testfile} \
return -1
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
mi_runto_main
diff --git a/gdb/testsuite/gdb.mi/mi-frame-regs.exp b/gdb/testsuite/gdb.mi/mi-frame-regs.exp
index f31e4a1..990abd5 100644
--- a/gdb/testsuite/gdb.mi/mi-frame-regs.exp
+++ b/gdb/testsuite/gdb.mi/mi-frame-regs.exp
@@ -62,7 +62,7 @@ proc_with_prefix do_floating_varobj_test {} {
global hex
global expect_out
- if {[mi_clean_restart $binfile]} {
+ if {[mi_clean_restart $::testfile]} {
fail "couldn't start gdb"
return
}
@@ -113,7 +113,7 @@ proc_with_prefix do_fixed_varobj_test {} {
global srcfile binfile
global hex
- if {[mi_clean_restart $binfile] != 0} {
+ if {[mi_clean_restart $::testfile] != 0} {
fail "couldn't start gdb"
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-fullname-deleted.exp b/gdb/testsuite/gdb.mi/mi-fullname-deleted.exp
index 130b5bf..6c1dbec 100644
--- a/gdb/testsuite/gdb.mi/mi-fullname-deleted.exp
+++ b/gdb/testsuite/gdb.mi/mi-fullname-deleted.exp
@@ -58,7 +58,7 @@ if { [gdb_compile "$srcfileabs" "${binfile}" executable {debug}] != "" } {
file delete -- $srcfileabs
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-info-os.exp b/gdb/testsuite/gdb.mi/mi-info-os.exp
index 5d8d3ff..c70dac6 100644
--- a/gdb/testsuite/gdb.mi/mi-info-os.exp
+++ b/gdb/testsuite/gdb.mi/mi-info-os.exp
@@ -32,7 +32,7 @@ if [build_executable "Failed to build $testfile" $testfile $srcfile \
return -1;
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-info-sources.exp b/gdb/testsuite/gdb.mi/mi-info-sources.exp
index f44fc29..80ca596 100644
--- a/gdb/testsuite/gdb.mi/mi-info-sources.exp
+++ b/gdb/testsuite/gdb.mi/mi-info-sources.exp
@@ -26,7 +26,7 @@ if {[build_executable $testfile.exp $testfile \
return -1
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
set readnow_p [mi_readnow]
diff --git a/gdb/testsuite/gdb.mi/mi-inheritance-syntax-error.exp b/gdb/testsuite/gdb.mi/mi-inheritance-syntax-error.exp
index 0ab2de2..3092b692 100644
--- a/gdb/testsuite/gdb.mi/mi-inheritance-syntax-error.exp
+++ b/gdb/testsuite/gdb.mi/mi-inheritance-syntax-error.exp
@@ -25,7 +25,7 @@ if {[gdb_compile $srcdir/$subdir/$srcfile $binfile executable {debug c++}] != ""
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp b/gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp
index 3314d5f..7eeb259 100644
--- a/gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp
+++ b/gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp
@@ -29,7 +29,7 @@ if {[build_executable "failed to prepare" $exefile $srcfile {debug c++}]} {
return -1
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
# Turn off the pending breakpoint queries.
mi_gdb_test "-interpreter-exec console \"set breakpoint pending off\"" \
diff --git a/gdb/testsuite/gdb.mi/mi-logging.exp b/gdb/testsuite/gdb.mi/mi-logging.exp
index de76e02..8235591 100644
--- a/gdb/testsuite/gdb.mi/mi-logging.exp
+++ b/gdb/testsuite/gdb.mi/mi-logging.exp
@@ -24,7 +24,7 @@ if [build_executable $testfile.exp $testfile $srcfile $opts] {
return -1
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
if {[mi_runto_main] < 0} {
return -1
diff --git a/gdb/testsuite/gdb.mi/mi-memory-changed.exp b/gdb/testsuite/gdb.mi/mi-memory-changed.exp
index bc2b6c3..6d02c33 100644
--- a/gdb/testsuite/gdb.mi/mi-memory-changed.exp
+++ b/gdb/testsuite/gdb.mi/mi-memory-changed.exp
@@ -22,7 +22,7 @@ if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \
load_lib mi-support.exp
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-nonstop-exit.exp b/gdb/testsuite/gdb.mi/mi-nonstop-exit.exp
index 599e460..4729033 100644
--- a/gdb/testsuite/gdb.mi/mi-nonstop-exit.exp
+++ b/gdb/testsuite/gdb.mi/mi-nonstop-exit.exp
@@ -30,7 +30,7 @@ if {[gdb_compile_pthreads "$srcdir/$subdir/$srcfile" $binfile executable $option
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"set non-stop on\""
- mi_clean_restart $binfile
+ mi_clean_restart $::testfile
}
mi_gdb_test "-gdb-set mi-async 1" ".*"
diff --git a/gdb/testsuite/gdb.mi/mi-nonstop.exp b/gdb/testsuite/gdb.mi/mi-nonstop.exp
index b8efef7..1ba37a3 100644
--- a/gdb/testsuite/gdb.mi/mi-nonstop.exp
+++ b/gdb/testsuite/gdb.mi/mi-nonstop.exp
@@ -41,7 +41,7 @@ if {[gdb_compile_pthreads "$srcdir/$subdir/$srcfile" $binfile executable $option
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"set non-stop on\""
- mi_clean_restart $binfile
+ mi_clean_restart $::testfile
}
mi_gdb_test "-gdb-set mi-async 1" ".*"
diff --git a/gdb/testsuite/gdb.mi/mi-ns-stale-regcache.exp b/gdb/testsuite/gdb.mi/mi-ns-stale-regcache.exp
index 20d9e45..20936f1 100644
--- a/gdb/testsuite/gdb.mi/mi-ns-stale-regcache.exp
+++ b/gdb/testsuite/gdb.mi/mi-ns-stale-regcache.exp
@@ -43,7 +43,7 @@ if {[gdb_compile "$srcdir/$subdir/$srcfile" \
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"set non-stop on\""
- mi_clean_restart $binfile
+ mi_clean_restart $::testfile
}
mi_gdb_test "-gdb-set mi-async 1" ".*"
diff --git a/gdb/testsuite/gdb.mi/mi-nsintrall.exp b/gdb/testsuite/gdb.mi/mi-nsintrall.exp
index 983c0fe..8c8aef8 100644
--- a/gdb/testsuite/gdb.mi/mi-nsintrall.exp
+++ b/gdb/testsuite/gdb.mi/mi-nsintrall.exp
@@ -30,7 +30,7 @@ if {[gdb_compile_pthreads "$srcdir/$subdir/$srcfile" $binfile executable $option
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"set non-stop on\""
- mi_clean_restart $binfile
+ mi_clean_restart $::testfile
}
mi_gdb_test "-gdb-set mi-async 1" ".*"
diff --git a/gdb/testsuite/gdb.mi/mi-nsmoribund.exp b/gdb/testsuite/gdb.mi/mi-nsmoribund.exp
index da43a93..2307c2e 100644
--- a/gdb/testsuite/gdb.mi/mi-nsmoribund.exp
+++ b/gdb/testsuite/gdb.mi/mi-nsmoribund.exp
@@ -30,7 +30,7 @@ if {[gdb_compile_pthreads "$srcdir/$subdir/$srcfile" $binfile executable $option
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"set non-stop on\""
- mi_clean_restart $binfile
+ mi_clean_restart $::testfile
}
mi_gdb_test "-gdb-set mi-async 1" ".*"
diff --git a/gdb/testsuite/gdb.mi/mi-nsthrexec.exp b/gdb/testsuite/gdb.mi/mi-nsthrexec.exp
index fd8aa54..1f9d1ae 100644
--- a/gdb/testsuite/gdb.mi/mi-nsthrexec.exp
+++ b/gdb/testsuite/gdb.mi/mi-nsthrexec.exp
@@ -35,7 +35,7 @@ if {[gdb_compile_pthreads "$srcdir/$subdir/$srcfile" $binfile executable $option
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"set non-stop on\""
- mi_clean_restart $binfile
+ mi_clean_restart $::testfile
}
mi_gdb_test "-gdb-set mi-async 1" ".*"
diff --git a/gdb/testsuite/gdb.mi/mi-pending.exp b/gdb/testsuite/gdb.mi/mi-pending.exp
index 49839cb..eb0719c 100644
--- a/gdb/testsuite/gdb.mi/mi-pending.exp
+++ b/gdb/testsuite/gdb.mi/mi-pending.exp
@@ -45,7 +45,7 @@ if { [gdb_compile_pthreads $srcdir/$subdir/$srcfile $binfile executable $exec_op
}
# Start with a fresh gdb.
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
mi_load_shlibs $lib_sl1
diff --git a/gdb/testsuite/gdb.mi/mi-pthreads.exp b/gdb/testsuite/gdb.mi/mi-pthreads.exp
index 93f0344..117b2de 100644
--- a/gdb/testsuite/gdb.mi/mi-pthreads.exp
+++ b/gdb/testsuite/gdb.mi/mi-pthreads.exp
@@ -63,7 +63,7 @@ if {[gdb_compile_pthreads "$srcdir/$subdir/$srcfile" $binfile executable $option
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-py-modify-bp.exp b/gdb/testsuite/gdb.mi/mi-py-modify-bp.exp
index 4193757..5175899 100644
--- a/gdb/testsuite/gdb.mi/mi-py-modify-bp.exp
+++ b/gdb/testsuite/gdb.mi/mi-py-modify-bp.exp
@@ -31,7 +31,7 @@ if {[build_executable $testfile.exp $testfile $srcfile] == -1} {
set remote_python_file [gdb_remote_download host \
${srcdir}/${subdir}/${testfile}.py]
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
mi_runto_main
# Delete all breakpoints, watchpoints, tracepoints, and catchpoints.
diff --git a/gdb/testsuite/gdb.mi/mi-read-memory.exp b/gdb/testsuite/gdb.mi/mi-read-memory.exp
index 8de8728..4469123 100644
--- a/gdb/testsuite/gdb.mi/mi-read-memory.exp
+++ b/gdb/testsuite/gdb.mi/mi-read-memory.exp
@@ -25,7 +25,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
mi_runto_main
mi_next_to "main" "" "mi-read-memory.c" "20" "next at main"
diff --git a/gdb/testsuite/gdb.mi/mi-record-changed.exp b/gdb/testsuite/gdb.mi/mi-record-changed.exp
index e37540b..986efd9 100644
--- a/gdb/testsuite/gdb.mi/mi-record-changed.exp
+++ b/gdb/testsuite/gdb.mi/mi-record-changed.exp
@@ -24,7 +24,7 @@ if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \
load_lib mi-support.exp
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
mi_runto_main
diff --git a/gdb/testsuite/gdb.mi/mi-reg-undefined.exp b/gdb/testsuite/gdb.mi/mi-reg-undefined.exp
index c7e0564..ef102ce 100644
--- a/gdb/testsuite/gdb.mi/mi-reg-undefined.exp
+++ b/gdb/testsuite/gdb.mi/mi-reg-undefined.exp
@@ -29,7 +29,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-regs.exp b/gdb/testsuite/gdb.mi/mi-regs.exp
index 0bb305b..aae00a6 100644
--- a/gdb/testsuite/gdb.mi/mi-regs.exp
+++ b/gdb/testsuite/gdb.mi/mi-regs.exp
@@ -108,7 +108,7 @@ require {istarget "sparc-*-*"}
mi_clean_restart
sparc_register_tests_no_exec
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
mi_runto_main
sparc_register_tests
diff --git a/gdb/testsuite/gdb.mi/mi-return.exp b/gdb/testsuite/gdb.mi/mi-return.exp
index ba296d5..998a1ff 100644
--- a/gdb/testsuite/gdb.mi/mi-return.exp
+++ b/gdb/testsuite/gdb.mi/mi-return.exp
@@ -31,7 +31,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-reverse.exp b/gdb/testsuite/gdb.mi/mi-reverse.exp
index d039240..aa25255 100644
--- a/gdb/testsuite/gdb.mi/mi-reverse.exp
+++ b/gdb/testsuite/gdb.mi/mi-reverse.exp
@@ -39,7 +39,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
mi_runto_main
if [supports_process_record] {
diff --git a/gdb/testsuite/gdb.mi/mi-simplerun.exp b/gdb/testsuite/gdb.mi/mi-simplerun.exp
index e390f14..5ee7881 100644
--- a/gdb/testsuite/gdb.mi/mi-simplerun.exp
+++ b/gdb/testsuite/gdb.mi/mi-simplerun.exp
@@ -34,7 +34,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-solib.exp b/gdb/testsuite/gdb.mi/mi-solib.exp
index c66d4b0..8ddca8d 100644
--- a/gdb/testsuite/gdb.mi/mi-solib.exp
+++ b/gdb/testsuite/gdb.mi/mi-solib.exp
@@ -34,7 +34,7 @@ if { [gdb_compile_shlib ${srcfile_lib} ${binfile_lib} $lib_flags] != ""
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-stack.exp b/gdb/testsuite/gdb.mi/mi-stack.exp
index a91b76e..89f58c8 100644
--- a/gdb/testsuite/gdb.mi/mi-stack.exp
+++ b/gdb/testsuite/gdb.mi/mi-stack.exp
@@ -32,7 +32,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-start.exp b/gdb/testsuite/gdb.mi/mi-start.exp
index 745e5c9..d384230 100644
--- a/gdb/testsuite/gdb.mi/mi-start.exp
+++ b/gdb/testsuite/gdb.mi/mi-start.exp
@@ -28,7 +28,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-stepi.exp b/gdb/testsuite/gdb.mi/mi-stepi.exp
index 8ba6399..7f53c8b 100644
--- a/gdb/testsuite/gdb.mi/mi-stepi.exp
+++ b/gdb/testsuite/gdb.mi/mi-stepi.exp
@@ -63,7 +63,7 @@ proc test_stepi_nexti {} {
}
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
mi_runto_main
test_stepi_nexti
diff --git a/gdb/testsuite/gdb.mi/mi-stepn.exp b/gdb/testsuite/gdb.mi/mi-stepn.exp
index 489564a..f11e9c0 100644
--- a/gdb/testsuite/gdb.mi/mi-stepn.exp
+++ b/gdb/testsuite/gdb.mi/mi-stepn.exp
@@ -26,7 +26,7 @@ if [build_executable ${testfile}.exp ${testfile} ${srcfile} $opts] {
return -1
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
if {[mi_runto_main] < 0} {
return -1
diff --git a/gdb/testsuite/gdb.mi/mi-sym-info.exp b/gdb/testsuite/gdb.mi/mi-sym-info.exp
index ef8dd86..6b0bf2d 100644
--- a/gdb/testsuite/gdb.mi/mi-sym-info.exp
+++ b/gdb/testsuite/gdb.mi/mi-sym-info.exp
@@ -33,7 +33,7 @@ if {[build_executable "failed to prepare" ${testfile} \
return -1
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
# Don't run to main to avoid increasing the search scope to include
# debug info of shared libraries like libc, libgcc, etc.
diff --git a/gdb/testsuite/gdb.mi/mi-syn-frame.exp b/gdb/testsuite/gdb.mi/mi-syn-frame.exp
index 633f317..b3ec377 100644
--- a/gdb/testsuite/gdb.mi/mi-syn-frame.exp
+++ b/gdb/testsuite/gdb.mi/mi-syn-frame.exp
@@ -29,7 +29,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
mi_runto_main
diff --git a/gdb/testsuite/gdb.mi/mi-thread-bp-deleted.exp b/gdb/testsuite/gdb.mi/mi-thread-bp-deleted.exp
index 2a734c8..976b68d 100644
--- a/gdb/testsuite/gdb.mi/mi-thread-bp-deleted.exp
+++ b/gdb/testsuite/gdb.mi/mi-thread-bp-deleted.exp
@@ -47,7 +47,7 @@ foreach_mi_ui_mode mode {
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"maint set target-non-stop on\""
append GDBFLAGS " -ex \"set mi-async on\""
- mi_clean_restart $binfile $start_ops
+ mi_clean_restart $::testfile $start_ops
}
mi_runto_main
diff --git a/gdb/testsuite/gdb.mi/mi-thread-specific-bp.exp b/gdb/testsuite/gdb.mi/mi-thread-specific-bp.exp
index 86d050a..81ff274 100644
--- a/gdb/testsuite/gdb.mi/mi-thread-specific-bp.exp
+++ b/gdb/testsuite/gdb.mi/mi-thread-specific-bp.exp
@@ -90,7 +90,7 @@ foreach_mi_ui_mode mode {
set start_ops ""
}
- if {[mi_clean_restart $binfile $start_ops]} {
+ if {[mi_clean_restart $::testfile $start_ops]} {
break
}
diff --git a/gdb/testsuite/gdb.mi/mi-threads-interrupt.exp b/gdb/testsuite/gdb.mi/mi-threads-interrupt.exp
index ff74e7b..8aab3b8 100644
--- a/gdb/testsuite/gdb.mi/mi-threads-interrupt.exp
+++ b/gdb/testsuite/gdb.mi/mi-threads-interrupt.exp
@@ -33,7 +33,7 @@ proc test_continue_interrupt { } {
global binfile
global async
- if {[mi_clean_restart $binfile]} {
+ if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-until.exp b/gdb/testsuite/gdb.mi/mi-until.exp
index ee50c4f..e8f24bc 100644
--- a/gdb/testsuite/gdb.mi/mi-until.exp
+++ b/gdb/testsuite/gdb.mi/mi-until.exp
@@ -31,7 +31,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-var-block.exp b/gdb/testsuite/gdb.mi/mi-var-block.exp
index bdba639..3914c3a 100644
--- a/gdb/testsuite/gdb.mi/mi-var-block.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-block.exp
@@ -29,7 +29,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-var-child-f.exp b/gdb/testsuite/gdb.mi/mi-var-child-f.exp
index c424490..4856e3d 100644
--- a/gdb/testsuite/gdb.mi/mi-var-child-f.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-child-f.exp
@@ -28,7 +28,7 @@ if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-var-child.exp b/gdb/testsuite/gdb.mi/mi-var-child.exp
index 89ce9dd..4a3ba07 100644
--- a/gdb/testsuite/gdb.mi/mi-var-child.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-child.exp
@@ -29,7 +29,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-var-cmd.exp b/gdb/testsuite/gdb.mi/mi-var-cmd.exp
index 8c8c306..9e7b14c 100644
--- a/gdb/testsuite/gdb.mi/mi-var-cmd.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-cmd.exp
@@ -29,7 +29,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-var-cp.exp b/gdb/testsuite/gdb.mi/mi-var-cp.exp
index c1d70f1..eee1007 100644
--- a/gdb/testsuite/gdb.mi/mi-var-cp.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-cp.exp
@@ -25,7 +25,7 @@ if {[gdb_compile $srcdir/$subdir/$srcfile $binfile executable {debug c++}] != ""
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-var-create-rtti.exp b/gdb/testsuite/gdb.mi/mi-var-create-rtti.exp
index ad6ce5c..517449c 100644
--- a/gdb/testsuite/gdb.mi/mi-var-create-rtti.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-create-rtti.exp
@@ -23,7 +23,7 @@ if [build_executable $testfile.exp $testfile $srcfile $opts] {
return -1
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
if {[mi_runto_main] < 0} {
return -1
diff --git a/gdb/testsuite/gdb.mi/mi-var-display.exp b/gdb/testsuite/gdb.mi/mi-var-display.exp
index 5535368..3ae593b 100644
--- a/gdb/testsuite/gdb.mi/mi-var-display.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-display.exp
@@ -29,7 +29,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-var-invalidate.exp b/gdb/testsuite/gdb.mi/mi-var-invalidate.exp
index c1c52f2..800c22f 100644
--- a/gdb/testsuite/gdb.mi/mi-var-invalidate.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-invalidate.exp
@@ -44,7 +44,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile2}" "${binfile2}" executable {d
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.exp b/gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.exp
index 0f20c50f..597e2e0 100644
--- a/gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.exp
@@ -26,7 +26,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-var-rtti.exp b/gdb/testsuite/gdb.mi/mi-var-rtti.exp
index fcf8404..c2768b6 100644
--- a/gdb/testsuite/gdb.mi/mi-var-rtti.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-rtti.exp
@@ -25,7 +25,7 @@ if [build_executable $testfile.exp $testfile $srcfile $opts] {
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-vla-c99.exp b/gdb/testsuite/gdb.mi/mi-vla-c99.exp
index ec12e6f..5f23d05 100644
--- a/gdb/testsuite/gdb.mi/mi-vla-c99.exp
+++ b/gdb/testsuite/gdb.mi/mi-vla-c99.exp
@@ -29,7 +29,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" \
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-vla-fortran.exp b/gdb/testsuite/gdb.mi/mi-vla-fortran.exp
index 5077089..81e2d89 100644
--- a/gdb/testsuite/gdb.mi/mi-vla-fortran.exp
+++ b/gdb/testsuite/gdb.mi/mi-vla-fortran.exp
@@ -34,7 +34,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable \
# the type names can be printed differently.
set real [fortran_real4]
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi-watch-nonstop.exp b/gdb/testsuite/gdb.mi/mi-watch-nonstop.exp
index f9237c0..36d7410 100644
--- a/gdb/testsuite/gdb.mi/mi-watch-nonstop.exp
+++ b/gdb/testsuite/gdb.mi/mi-watch-nonstop.exp
@@ -38,7 +38,7 @@ if {[gdb_compile "$srcdir/$subdir/$srcfile" $binfile executable {debug}] != "" }
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"set non-stop on\""
- mi_clean_restart $binfile
+ mi_clean_restart $::testfile
}
mi_gdb_test "-gdb-set mi-async 1" ".*"
diff --git a/gdb/testsuite/gdb.mi/mi-watch.exp b/gdb/testsuite/gdb.mi/mi-watch.exp
index e318a2b..43f2378 100644
--- a/gdb/testsuite/gdb.mi/mi-watch.exp
+++ b/gdb/testsuite/gdb.mi/mi-watch.exp
@@ -155,7 +155,7 @@ proc test_watchpoint_all {mi_mode type} {
} else {
set start_ops ""
}
- if [mi_clean_restart ${binfile} $start_ops] {
+ if [mi_clean_restart ${::testfile} $start_ops] {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp b/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp
index c7e21e9..0d51dc5 100644
--- a/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp
+++ b/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp
@@ -31,7 +31,7 @@ if [build_executable ${testfile}.exp ${binfile} ${srcfile} $opts] {
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi2-cli-display.exp b/gdb/testsuite/gdb.mi/mi2-cli-display.exp
index 656c93e..993b87c 100644
--- a/gdb/testsuite/gdb.mi/mi2-cli-display.exp
+++ b/gdb/testsuite/gdb.mi/mi2-cli-display.exp
@@ -25,7 +25,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/mi2-var-child.exp b/gdb/testsuite/gdb.mi/mi2-var-child.exp
index 9bd9054..3618d5a 100644
--- a/gdb/testsuite/gdb.mi/mi2-var-child.exp
+++ b/gdb/testsuite/gdb.mi/mi2-var-child.exp
@@ -29,7 +29,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.mi/new-ui-mi-sync.exp b/gdb/testsuite/gdb.mi/new-ui-mi-sync.exp
index cb83329..7112248 100644
--- a/gdb/testsuite/gdb.mi/new-ui-mi-sync.exp
+++ b/gdb/testsuite/gdb.mi/new-ui-mi-sync.exp
@@ -102,7 +102,7 @@ proc do_test {sync_command} {
}
foreach_with_prefix sync-command {"run" "continue"} {
- if {[mi_clean_restart $binfile "separate-mi-tty"] != 0} {
+ if {[mi_clean_restart $::testfile "separate-mi-tty"] != 0} {
fail "could not start gdb"
break
}
diff --git a/gdb/testsuite/gdb.mi/pr11022.exp b/gdb/testsuite/gdb.mi/pr11022.exp
index ad8e3b2..1e01bf6 100644
--- a/gdb/testsuite/gdb.mi/pr11022.exp
+++ b/gdb/testsuite/gdb.mi/pr11022.exp
@@ -29,7 +29,7 @@ proc test_memory_changed_observer { mi_command } {
with_test_prefix "${mi_command}" {
global srcfile binfile
- mi_clean_restart $binfile
+ mi_clean_restart $::testfile
mi_runto_main
set line_number [gdb_get_line_number "break here"]
diff --git a/gdb/testsuite/gdb.mi/print-simple-values.exp b/gdb/testsuite/gdb.mi/print-simple-values.exp
index 1c56d68..23488e3 100644
--- a/gdb/testsuite/gdb.mi/print-simple-values.exp
+++ b/gdb/testsuite/gdb.mi/print-simple-values.exp
@@ -34,7 +34,7 @@ if [build_executable "failed to prepare" $testfile $srcfile $opts] {
return -1
}
-if [mi_clean_restart $binfile] {
+if [mi_clean_restart $::testfile] {
return
}
diff --git a/gdb/testsuite/gdb.mi/run-with-two-mi-uis.exp b/gdb/testsuite/gdb.mi/run-with-two-mi-uis.exp
index df370c9..c9e352d 100644
--- a/gdb/testsuite/gdb.mi/run-with-two-mi-uis.exp
+++ b/gdb/testsuite/gdb.mi/run-with-two-mi-uis.exp
@@ -29,7 +29,7 @@ if {[build_executable $testfile.exp $testfile ${srcfile} "debug"] == -1} {
# UI_TO_RUN is the UI that should issue the run command.
proc do_test { ui_to_run } {
- if {[mi_clean_restart $::binfile "separate-mi-tty"] != 0} {
+ if {[mi_clean_restart $::testfile "separate-mi-tty"] != 0} {
fail "could not start gdb"
return
}
diff --git a/gdb/testsuite/gdb.mi/user-selected-context-sync.exp b/gdb/testsuite/gdb.mi/user-selected-context-sync.exp
index f85e108..a0bf11f 100644
--- a/gdb/testsuite/gdb.mi/user-selected-context-sync.exp
+++ b/gdb/testsuite/gdb.mi/user-selected-context-sync.exp
@@ -1329,7 +1329,7 @@ foreach_with_prefix mode { "all-stop" "non-stop" } {
set GDBFLAGS [concat $GDBFLAGS " -ex \"set non-stop 1\""]
}
- if { [mi_clean_restart $binfile "separate-mi-tty"] != 0 } {
+ if { [mi_clean_restart $::testfile "separate-mi-tty"] != 0 } {
break
}
}
diff --git a/gdb/testsuite/gdb.multi/attach-no-multi-process.exp b/gdb/testsuite/gdb.multi/attach-no-multi-process.exp
index 502f309..2813fa9 100644
--- a/gdb/testsuite/gdb.multi/attach-no-multi-process.exp
+++ b/gdb/testsuite/gdb.multi/attach-no-multi-process.exp
@@ -44,7 +44,7 @@ proc test {target_non_stop} {
"${::GDBFLAGS} -ex \"set remote multiprocess-feature-packet off\""
set ::GDBFLAGS \
"${::GDBFLAGS} -ex \"maint set target-non-stop ${target_non_stop}\""
- clean_restart ${binfile}
+ clean_restart ${::testfile}
}
# Start the first inferior.
diff --git a/gdb/testsuite/gdb.multi/attach-while-running.exp b/gdb/testsuite/gdb.multi/attach-while-running.exp
index 723ebb2..4eb500e 100644
--- a/gdb/testsuite/gdb.multi/attach-while-running.exp
+++ b/gdb/testsuite/gdb.multi/attach-while-running.exp
@@ -46,7 +46,7 @@ if { [build_executable "failed to prepare" ${testfile} ${srcfile}] } {
proc do_test {} {
save_vars { ::GDBFLAGS } {
append ::GDBFLAGS " -ex \"maint set target-non-stop on\""
- clean_restart $::binfile
+ clean_restart $::testfile
}
gdb_test -no-prompt-anchor "run &"
diff --git a/gdb/testsuite/gdb.multi/gdb-settings.exp b/gdb/testsuite/gdb.multi/gdb-settings.exp
index b1acca0..97961f5 100644
--- a/gdb/testsuite/gdb.multi/gdb-settings.exp
+++ b/gdb/testsuite/gdb.multi/gdb-settings.exp
@@ -44,7 +44,7 @@ set run [expr {![use_gdb_stub]}]
set inferiors {1 2}
# Start all the inferiors.
-clean_restart $binfile
+clean_restart $::testfile
foreach_with_prefix inf $inferiors {
if { $inf > 1 } {
gdb_test "add-inferior -exec $binfile" "Added inferior 2.*" \
@@ -71,6 +71,7 @@ foreach_with_prefix inf $inferiors {
gdb_test_no_output "set args inf${inf}-args"
gdb_test_no_output "set cwd /inf${inf}-cwd"
gdb_test_no_output "set inferior-tty /inf${inf}-tty"
+ gdb_test_no_output "set remote exec-file /inf${inf}-remote-exec"
}
# Check settings are still correct for each inferior.
@@ -88,6 +89,9 @@ foreach_with_prefix inf $inferiors {
gdb_test "with inferior-tty tmp-value -- print 1" " = 1"
gdb_test "show inferior-tty" "/inf${inf}-tty.*"
+ gdb_test "with remote exec-file tmp-value -- print 1" " = 1"
+ gdb_test "show remote exec-file" "/inf${inf}-remote-exec.*"
+
# If the inferiors are running check $_gdb_setting_str and
# $_gdb_setting return the correct values.
if { $run } {
@@ -101,6 +105,11 @@ foreach_with_prefix inf $inferiors {
"\"/inf${inf}-tty\""
gdb_test {print $_gdb_setting("inferior-tty")} \
"\"/inf${inf}-tty\""
+
+ gdb_test {print $_gdb_setting_str("remote exec-file")} \
+ "\"/inf${inf}-remote-exec\""
+ gdb_test {print $_gdb_setting("remote exec-file")} \
+ "\"/inf${inf}-remote-exec\""
}
# Check the settings can be read from Python.
@@ -109,6 +118,8 @@ foreach_with_prefix inf $inferiors {
gdb_test "python print(gdb.parameter('cwd'))" "/inf${inf}-cwd"
gdb_test "python print(gdb.parameter('inferior-tty'))" \
"/inf${inf}-tty"
+ gdb_test "python print(gdb.parameter('remote exec-file'))" \
+ "/inf${inf}-remote-exec"
}
# Check the settings can be read from Guile.
@@ -119,5 +130,7 @@ foreach_with_prefix inf $inferiors {
"/inf${inf}-cwd"
gdb_test "guile (print (parameter-value \"inferior-tty\"))" \
"/inf${inf}-tty"
+ gdb_test "guile (print (parameter-value \"remote exec-file\"))" \
+ "/inf${inf}-remote-exec"
}
}
diff --git a/gdb/testsuite/gdb.multi/inferior-specific-bp.exp b/gdb/testsuite/gdb.multi/inferior-specific-bp.exp
index db09095..6d2fc9e 100644
--- a/gdb/testsuite/gdb.multi/inferior-specific-bp.exp
+++ b/gdb/testsuite/gdb.multi/inferior-specific-bp.exp
@@ -22,8 +22,10 @@ if {[use_gdb_stub]} {
}
set srcfile1 ${srcfile}
-set binfile1 ${binfile}-1
-set binfile2 ${binfile}-2
+set testfile1 $testfile-1
+set testfile2 $testfile-2
+set binfile1 [standard_output_file $testfile1]
+set binfile2 [standard_output_file $testfile2]
if {[build_executable ${testfile}.exp ${binfile1} "${srcfile1}"] != 0} {
return -1
@@ -34,7 +36,7 @@ if {[build_executable ${testfile}.exp ${binfile2} "${srcfile2}"] != 0} {
}
# Start the first inferior.
-clean_restart ${binfile1}
+clean_restart $testfile1
if {![runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.multi/interrupt-bg-exec.c b/gdb/testsuite/gdb.multi/interrupt-bg-exec.c
new file mode 100644
index 0000000..b5fa568
--- /dev/null
+++ b/gdb/testsuite/gdb.multi/interrupt-bg-exec.c
@@ -0,0 +1,47 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+
+volatile int wait_for_gdb = 1;
+
+void
+breakpt (void)
+{
+ /* Nothing. */
+}
+
+void
+all_started (void)
+{
+ /* Nothing. */
+}
+
+int
+main (void)
+{
+ alarm (360);
+
+ all_started ();
+
+ while (wait_for_gdb)
+ sleep (1);
+
+ breakpt ();
+
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.multi/interrupt-bg-exec.exp b/gdb/testsuite/gdb.multi/interrupt-bg-exec.exp
new file mode 100644
index 0000000..065a112
--- /dev/null
+++ b/gdb/testsuite/gdb.multi/interrupt-bg-exec.exp
@@ -0,0 +1,143 @@
+# Copyright 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# In all-stop mode, set one inferior running in the background, then
+# continue a second inferior. When the second inferior hits a breakpoint,
+# both inferiors should be stopped.
+
+# This tests the use of native and remote targets. If we try to run
+# it with a board that forces native targets to become remote, then
+# this doesn't really make sense (for this test).
+require {string equal [target_info gdb_protocol] ""}
+
+source $srcdir/$subdir/multi-target.exp.tcl
+
+load_lib gdbserver-support.exp
+
+require allow_gdbserver_tests
+
+# This overrides the call in multi-target.exp.tcl.
+standard_testfile
+
+if { [build_executable "failed to build" $testfile $srcfile] } {
+ return
+}
+
+# Start two inferiors, TARGET_TYPE_1 and TARGET_TYPE_2 are strings, either
+# 'extended-remote' or 'native', and control the connection type of each
+# inferior.
+#
+# Set the first inferior running in the background, then continue theA
+# second inferior allowing it to hit a breakpoint.
+#
+# Once the breakpoint is hit, both inferiors should be stopped.
+proc run_test { target_type_1 target_type_2 } {
+ cleanup_gdbservers
+
+ clean_restart
+
+ gdb_test "disconnect" ".*"
+
+ gdb_test_no_output "set sysroot"
+
+ # multi-target depends on target running in non-stop mode. Force it
+ # on for remote targets, until this is the default.
+ gdb_test_no_output "maint set target-non-stop on"
+
+ # Run in all-stop mode.
+ gdb_test_no_output "set non-stop off"
+
+ if {![add_inferior 2 $target_type_1 $::binfile]} {
+ return 0
+ }
+
+ if {![add_inferior 3 $target_type_2 $::binfile]} {
+ return 0
+ }
+
+ # Check we see all the expected threads.
+ gdb_test "info threads" \
+ [multi_line \
+ "\\s+Id\\s+Target Id\\s+Frame\\s*" \
+ "\\s+2\\.1\\s+\[^\r\n\]+" \
+ "\\*\\s+3\\.1\\s+\[^\r\n\]+"] \
+ "check expected threads exist"
+
+ # The breakpoint will be set in both inferiors, but only inferior 3
+ # will hit it as 'wait_for_gdb' is cleared only in that inferior.
+ gdb_breakpoint breakpt
+ gdb_test "thread apply 3.1 set wait_for_gdb = 0"
+
+ # Let inferior 2 run in the background.
+ gdb_test "thread 2.1"
+ gdb_test -no-prompt-anchor "continue&"
+
+ # Run inferior 3 until it hits a breakpoint.
+ gdb_test "thread 3.1"
+ gdb_test "continue" \
+ [multi_line \
+ "Thread 3\\.1 \[^\r\n\]+ hit Breakpoint \[^\r\n\]+, breakpt \\(\\) \[^\r\n\]+" \
+ "$::decimal\\s+\[^\r\n\]+"] \
+ "continue to breakpt function"
+
+ # Check the state of all threads. None should be running.
+ set saw_inferior_2 false
+ set saw_inferior_3 false
+ gdb_test_multiple "info threads" "check threads after stop" {
+ -re "^info threads\r\n" {
+ exp_continue
+ }
+
+ -re "^\\s+Id\\s+Target Id\\s+Frame\\s*\r\n" {
+ exp_continue
+ }
+
+ -re "^\\s+2\\.1\\s+\[^\r\n\]+\\s+\\(running\\)\\s*\r\n" {
+ # Don't count this as seeing inferior 2 as the thread is
+ # incorrectly still marked as running. By not setting the
+ # SAW_INFERIOR_2 flag this test will now fail.
+ exp_continue
+ }
+
+ -re "^\\s+2\\.1\\s+\[^\r\n\]+\r\n" {
+ set saw_inferior_2 true
+ exp_continue
+ }
+
+ -re "^\\*\\s+3\\.1\\s+\[^\r\n\]+\r\n" {
+ set saw_inferior_3 true
+ exp_continue
+ }
+
+ -re "^$::gdb_prompt $" {
+ gdb_assert { $saw_inferior_2 && $saw_inferior_3 } \
+ $gdb_test_name
+ }
+
+ -re "^\[^\r\n\]*\r\n" {
+ exp_continue
+ }
+ }
+}
+
+set all_target_types { extended-remote native }
+
+foreach_with_prefix target_type_1 $all_target_types {
+ foreach_with_prefix target_type_2 $all_target_types {
+ run_test $target_type_1 $target_type_2
+ }
+}
+
+multi_target_cleanup
diff --git a/gdb/testsuite/gdb.multi/multi-arch-exec.exp b/gdb/testsuite/gdb.multi/multi-arch-exec.exp
index 69c6b13..435efc5 100644
--- a/gdb/testsuite/gdb.multi/multi-arch-exec.exp
+++ b/gdb/testsuite/gdb.multi/multi-arch-exec.exp
@@ -23,7 +23,7 @@ require !use_gdb_stub
# The 64-bit compile may succeed for i386-linux, but gdb won't be able
# to load the file.
-if [istarget "i?86-*linux*"] {
+if {[istarget "i?86-*linux*"]} {
return
}
@@ -69,9 +69,9 @@ proc append_arch2_options {options_var} {
}
}
- if [istarget "powerpc64*-*-*"] {
+ if {[istarget "powerpc64*-*-*"]} {
set march "-m64"
- } elseif [istarget "s390*-*-*"] {
+ } elseif {[istarget "s390*-*-*"]} {
set march "-m31"
} else {
set march "-m32"
diff --git a/gdb/testsuite/gdb.multi/multi-arch.exp b/gdb/testsuite/gdb.multi/multi-arch.exp
index 1d41ba5..b75009d 100644
--- a/gdb/testsuite/gdb.multi/multi-arch.exp
+++ b/gdb/testsuite/gdb.multi/multi-arch.exp
@@ -25,7 +25,7 @@ require !use_gdb_stub
# The 64-bit compile may succeed for i386-linux, but gdb won't be able
# to load the file.
-if [istarget "i?86-*linux*"] {
+if {[istarget "i?86-*linux*"]} {
return
}
@@ -41,7 +41,7 @@ set binfile2 [standard_output_file ${exec2}]
# Build two executables, one for each arch.
-if [istarget "s390*-*-*"] {
+if {[istarget "s390*-*-*"]} {
set march1 "-m64"
set march2 "-m31"
} elseif { [istarget "aarch64*-*-*"] } {
@@ -67,7 +67,7 @@ if { [build_executable "failed to prepare" ${exec1} "${srcfile1}" \
set options [list debug]
-if [istarget "aarch64*-*-*"] {
+if {[istarget "aarch64*-*-*"]} {
if {[arm_cc_for_target] != ""} {
lappend options "compiler=[arm_cc_for_target]"
} else {
diff --git a/gdb/testsuite/gdb.multi/multi-exit.exp b/gdb/testsuite/gdb.multi/multi-exit.exp
index 8393067..fcd7cd2 100644
--- a/gdb/testsuite/gdb.multi/multi-exit.exp
+++ b/gdb/testsuite/gdb.multi/multi-exit.exp
@@ -36,7 +36,7 @@ if {[build_executable "failed to prepare" $testfile $srcfile]} {
# Hence, go with the all-stop-on-top-of-non-stop mode.
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"maint set target-non-stop on\""
- clean_restart ${binfile}
+ clean_restart ${::testfile}
}
# Start inferior NUM.
diff --git a/gdb/testsuite/gdb.multi/multi-kill.exp b/gdb/testsuite/gdb.multi/multi-kill.exp
index 7d66ab0..1473372 100644
--- a/gdb/testsuite/gdb.multi/multi-kill.exp
+++ b/gdb/testsuite/gdb.multi/multi-kill.exp
@@ -36,7 +36,7 @@ if {[build_executable "failed to prepare" $testfile $srcfile {debug}]} {
# Hence, go with the all-stop-on-top-of-non-stop mode.
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"maint set target-non-stop on\""
- clean_restart ${binfile}
+ clean_restart ${::testfile}
}
# Wrap the entire test in a namespace to avoid contaminating other tests.
diff --git a/gdb/testsuite/gdb.multi/multi-re-run.exp b/gdb/testsuite/gdb.multi/multi-re-run.exp
index 4caadea..89d43a4 100644
--- a/gdb/testsuite/gdb.multi/multi-re-run.exp
+++ b/gdb/testsuite/gdb.multi/multi-re-run.exp
@@ -24,23 +24,23 @@ require allow_multi_inferior_tests
# Build two executables, with different symbols.
-set exec1 "multi-re-run-1"
+set testfile1 "multi-re-run-1"
set srcfile1 multi-re-run-1.c
-set binfile1 [standard_output_file ${exec1}]
+set binfile1 [standard_output_file $testfile1]
-set exec2 "multi-re-run-2"
+set testfile2 "multi-re-run-2"
set srcfile2 multi-re-run-2.c
-set binfile2 [standard_output_file ${exec2}]
+set binfile2 [standard_output_file $testfile2]
with_test_prefix "exec1" {
- if { [build_executable "failed to prepare" ${exec1} "${srcfile1}" \
+ if { [build_executable "failed to prepare" $testfile1 $srcfile1 \
[list pthreads debug]] } {
return -1
}
}
with_test_prefix "exec2" {
- if { [build_executable "failed to prepare" ${exec2} "${srcfile2}" \
+ if { [build_executable "failed to prepare" $testfile2 $srcfile2 \
[list pthreads debug]] } {
return -1
}
@@ -55,7 +55,7 @@ proc test_re_run {re_run_inf} {
global gdb_prompt
global last_loaded_file
- clean_restart ${binfile1}
+ clean_restart $::testfile1
delete_breakpoints
diff --git a/gdb/testsuite/gdb.multi/multi-target.exp.tcl b/gdb/testsuite/gdb.multi/multi-target.exp.tcl
index dc88ca4..1963db5 100644
--- a/gdb/testsuite/gdb.multi/multi-target.exp.tcl
+++ b/gdb/testsuite/gdb.multi/multi-target.exp.tcl
@@ -53,7 +53,7 @@ proc add_inferior {num target binfile {gcorefile ""}} {
return 0
}
}
- if ![runto "all_started"] then {
+ if { ![runto "all_started"] } {
return 0
}
delete_breakpoints
@@ -65,9 +65,9 @@ proc prepare_core {} {
global gcorefile gcore_created
global binfile
- clean_restart ${binfile}
+ clean_restart ${::testfile}
- if ![runto all_started] then {
+ if { ![runto all_started] } {
return -1
}
@@ -114,7 +114,7 @@ proc setup {non-stop {multi_process ""}} {
# Make GDB read files from the local file system, not through the
# remote targets, to speed things up.
set ::GDBFLAGS "${::GDBFLAGS} -ex \"set sysroot\""
- clean_restart ${binfile}
+ clean_restart ${::testfile}
}
# multi-target depends on target running in non-stop mode. Force
@@ -123,13 +123,13 @@ proc setup {non-stop {multi_process ""}} {
gdb_test_no_output "set non-stop ${non-stop}"
- if {${multi_process} ne ""} then {
+ if {${multi_process} ne ""} {
gdb_test \
"set remote multiprocess-feature-packet $multi_process" \
"Support for the 'multiprocess-feature' packet on future remote targets is set to \"${multi_process}\"."
}
- if ![runto all_started] then {
+ if { ![runto all_started] } {
return 0
}
@@ -184,7 +184,7 @@ proc multi_target_prepare {} {
return 0
}
- if { [prepare_for_testing "failed to prepare" ${binfile} "${srcfile}" \
+ if { [prepare_for_testing "failed to prepare" $::testfile $srcfile \
{debug pthreads}] } {
return 0
}
diff --git a/gdb/testsuite/gdb.multi/multi-term-settings.exp b/gdb/testsuite/gdb.multi/multi-term-settings.exp
index 38322be..2893d36 100644
--- a/gdb/testsuite/gdb.multi/multi-term-settings.exp
+++ b/gdb/testsuite/gdb.multi/multi-term-settings.exp
@@ -29,7 +29,7 @@ require allow_multi_inferior_tests
require can_spawn_for_attach
-if [build_executable "failed to prepare" $testfile $srcfile {debug}] {
+if {[build_executable "failed to prepare" $testfile $srcfile {debug}]} {
return -1
}
@@ -56,7 +56,7 @@ proc create_inferior {which_inf inf_how} {
# Run to main and delete breakpoints.
proc my_runto_main {} {
- if ![runto_main] {
+ if {![runto_main]} {
return 0
} else {
# Delete breakpoints otherwise GDB would try to step over
@@ -69,7 +69,7 @@ proc create_inferior {which_inf inf_how} {
}
if {$inf_how == "run"} {
- if [my_runto_main] {
+ if {[my_runto_main]} {
global inferior_spawn_id
return $inferior_spawn_id
}
@@ -80,7 +80,7 @@ proc create_inferior {which_inf inf_how} {
set inf_tty_name $spawn_out(slave,name)
gdb_test_no_output "tty $inf_tty_name" "tty TTY"
- if [my_runto_main] {
+ if {[my_runto_main]} {
return $inf_spawn_id
}
} elseif {$inf_how == "attach"} {
@@ -138,7 +138,7 @@ proc coretest {inf1_how inf2_how} {
global gdb_spawn_id
global decimal
- clean_restart $binfile
+ clean_restart $::testfile
with_test_prefix "inf1" {
set inf1_spawn_id [create_inferior 1 $inf1_how]
diff --git a/gdb/testsuite/gdb.multi/pending-bp-del-inferior.exp b/gdb/testsuite/gdb.multi/pending-bp-del-inferior.exp
index a7055d7..781937d 100644
--- a/gdb/testsuite/gdb.multi/pending-bp-del-inferior.exp
+++ b/gdb/testsuite/gdb.multi/pending-bp-del-inferior.exp
@@ -37,7 +37,7 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile]} {
#
# Return true after a successful setup, otherwise, return false.
proc test_setup {} {
- clean_restart $::binfile
+ clean_restart $::testfile
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.multi/pending-bp.exp b/gdb/testsuite/gdb.multi/pending-bp.exp
index 2458cd7..30a75b9 100644
--- a/gdb/testsuite/gdb.multi/pending-bp.exp
+++ b/gdb/testsuite/gdb.multi/pending-bp.exp
@@ -45,7 +45,7 @@ if { [build_executable "failed to prepare" $testfile $srcfile \
# 'breakpoint pending' flag is enabled, so pending breakpoints can be created
# without GDB prompting the user.
proc do_test_setup { inf_1_stop inf_2_stop } {
- clean_restart ${::binfile}
+ clean_restart ${::testfile}
gdb_locate_shlib $::binfile_lib
diff --git a/gdb/testsuite/gdb.multi/remote-with-running-inferior.c b/gdb/testsuite/gdb.multi/remote-with-running-inferior.c
new file mode 100644
index 0000000..a610eda
--- /dev/null
+++ b/gdb/testsuite/gdb.multi/remote-with-running-inferior.c
@@ -0,0 +1,38 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+
+int global_var = 123;
+
+void
+breakpt (void)
+{
+ /* Nothing. */
+}
+
+int
+main (void)
+{
+ for (int i = 0; i < 30; ++i)
+ {
+ sleep (1);
+ breakpt ();
+ }
+
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.multi/remote-with-running-inferior.exp b/gdb/testsuite/gdb.multi/remote-with-running-inferior.exp
new file mode 100644
index 0000000..43842ba
--- /dev/null
+++ b/gdb/testsuite/gdb.multi/remote-with-running-inferior.exp
@@ -0,0 +1,171 @@
+# This testcase is part of GDB, the GNU debugger.
+#
+# Copyright 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Set an inferior running in the background (using "run&"), then
+# connect to gdbserver in a second inferior. When this test was added
+# there were two bugs in GDB. First, just connecting to gdbserver
+# while an inferior was running on a different connection type
+# (e.g. inferior 1 was native, and inferior 2 was gdbserver) would
+# trigger an assertion.
+#
+# Then, once the assertion was fixed, GDB would stop the thread from
+# the first inferior, but would fail to update it's state in GDB core,
+# this would leave the thread stopped, but GDB core thinking the
+# thread was running. Check this is fixed by looking at the 'info
+# threads' output after connecting to the remote target.
+
+# This tests the use of native and remote targets, and also depends on use
+# of the 'run' command. If we try to run it with a board that forces native
+# targets to become remote, then this test isn't going to work, especially
+# for 'remote' targets where 'run' is not supported.
+require {string equal [target_info gdb_protocol] ""}
+
+load_lib gdbserver-support.exp
+
+require allow_gdbserver_tests
+
+standard_testfile
+
+if { [build_executable "failed to build" $testfile $srcfile] } {
+ return
+}
+
+# Set non-stop mode based on NON_STOP. Start a native inferior running in
+# the background, then start a second, remote inferior. Based on the value
+# of NON_STOP we might expect the inferior thread to have been stopped.
+# Confirm inferior one is in the correct state, and that it can be
+# interrupted and/or resumed.
+proc run_test { target_non_stop non_stop } {
+ clean_restart $::testfile
+
+ # Setup non-stop settings.
+ gdb_test_no_output "maint set target-non-stop $target_non_stop"
+ gdb_test_no_output "set non-stop $non_stop"
+
+ # Start the first inferior running in the background.
+ gdb_test -no-prompt-anchor "run&" "Starting program: .*" "start background inferior"
+
+ # Add a second inferior.
+ gdb_test "add-inferior" "Added inferior 2.*"
+ gdb_test "inferior 2" "Switching to inferior 2.*"
+
+ # Setup the sysroot if possible. This will make connecting to
+ # gdbserver quicker.
+ if { ![is_remote host] && ![is_remote target] } {
+ gdb_test "set sysroot"
+ }
+
+ # Setup, and connect to, a remote target.
+ set target_exec [gdbserver_download_current_prog]
+ set res [gdbserver_start "" $target_exec]
+ set gdbserver_protocol [lindex $res 0]
+ set gdbserver_gdbport [lindex $res 1]
+ set res [gdb_target_cmd $gdbserver_protocol $gdbserver_gdbport]
+ gdb_assert {$res == 0} "connect to remote target"
+
+ # Check the info threads output. We're checking that we see the two
+ # threads we expect, that the correct thread (inferior two's thread)
+ # is current, and that none of the threads are running.
+ set state_inferior_1 ""
+ set state_inferior_2 ""
+ gdb_test_multiple "info threads" "" {
+ -re "^info threads\r\n" {
+ exp_continue
+ }
+
+ -re "^\\s+Id\\s+Target Id\\s+Frame\\s*\r\n" {
+ exp_continue
+ }
+
+ -re "^\\s+1\\.1\\s+\[^\r\n\]+\\(running\\)\r\n" {
+ set state_inferior_1 "running"
+ exp_continue
+ }
+
+ -re "^\\*\\s+2\\.1\\s+\[^\r\n\]+\\(running\\)\r\n" {
+ set state_inferior_2 "running"
+ exp_continue
+ }
+
+ -re "^\\s+1\\.1\\s+\[^\r\n\]+\r\n" {
+ set state_inferior_1 "stopped"
+ exp_continue
+ }
+
+ -re "^\\*\\s+2\\.1\\s+\[^\r\n\]+\r\n" {
+ set state_inferior_2 "stopped"
+ exp_continue
+ }
+
+ -re "^$::gdb_prompt $" {
+ if { $non_stop } {
+ gdb_assert { $state_inferior_1 == "running" \
+ && $state_inferior_2 == "stopped" } \
+ $gdb_test_name
+ } else {
+ gdb_assert { $state_inferior_1 == "stopped" \
+ && $state_inferior_2 == "stopped" } \
+ $gdb_test_name
+ }
+ }
+ }
+
+ # Allow inferior 2 to reach main. The confirms that inferior 2 can be
+ # set running again.
+ gdb_breakpoint main
+ gdb_continue_to_breakpoint "breakpoint in main"
+ gdb_test "bt 1" \
+ "#0\\s+main \\(\\) at\[^\r\n\]+" \
+ "check inferior 2 is in main"
+
+ # Switch to inferior 1 and allow it to continue. This is a
+ # critical part of the test. When the test was added a bug (in
+ # all-stop mode) would leave inferior 1 stopped, but GDB code
+ # would think the thread was running. As such. the thread
+ # couldn't be resumed again.
+ gdb_test "inferior 1" "Switching to inferior 1.*"
+
+ # In non-stop mode, thread 1.1 is correctly left running, so we
+ # need to stop it now.
+ if { $non_stop } {
+ gdb_test -no-prompt-anchor "interrupt"
+ gdb_test "p 1 + 1" " = 2" \
+ "simple print to resync output"
+ }
+
+ gdb_breakpoint breakpt
+ gdb_continue_to_breakpoint "continue to breakpoint in breakpt"
+ gdb_test "bt 1" \
+ [multi_line \
+ "#0\\s+breakpt \\(\\) at\[^\r\n\]+" \
+ "\\(More stack frames follow\\.\\.\\.\\)"] \
+ "check inferior 1 is in breakpt"
+
+ # Switch back to inferior 2. The testing infrastructure will try to
+ # use 'monitor exit' to close gdbserver. It helps if we are in the
+ # gdbserver inferior when the script finishes.
+ gdb_test "inferior 2" "Switching to inferior 2.*" \
+ "switch back to inferior 2"
+}
+
+# Multi-inferior support requires non-stop targets.
+foreach_with_prefix target_non_stop { auto on } {
+ # But it's OK if we're emulating all-stop mode on top of non-stop.
+ foreach_with_prefix non_stop { on off } {
+ run_test $target_non_stop $non_stop
+ }
+}
diff --git a/gdb/testsuite/gdb.multi/remove-inferiors.exp b/gdb/testsuite/gdb.multi/remove-inferiors.exp
index 586d958..52e6cb0 100644
--- a/gdb/testsuite/gdb.multi/remove-inferiors.exp
+++ b/gdb/testsuite/gdb.multi/remove-inferiors.exp
@@ -32,7 +32,7 @@ proc add_inferior { expected_num message } {
proc test_remove_inferiors { } {
global binfile
- clean_restart ${binfile}
+ clean_restart ${::testfile}
# Add another inferior and switch to it.
add_inferior 2 "add second inferior"
diff --git a/gdb/testsuite/gdb.multi/run-only-second-inf.exp b/gdb/testsuite/gdb.multi/run-only-second-inf.exp
index 7b6532c..3645962 100644
--- a/gdb/testsuite/gdb.multi/run-only-second-inf.exp
+++ b/gdb/testsuite/gdb.multi/run-only-second-inf.exp
@@ -31,7 +31,7 @@ if {[build_executable "failed to prepare" $testfile $srcfile {debug}]} {
# So, start GDB with this setting.
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"maint set target-non-stop on\""
- clean_restart ${binfile}
+ clean_restart ${::testfile}
}
# Add and start the second inferior.
diff --git a/gdb/testsuite/gdb.multi/sched-multi-add-inferior.exp b/gdb/testsuite/gdb.multi/sched-multi-add-inferior.exp
new file mode 100644
index 0000000..9344c80
--- /dev/null
+++ b/gdb/testsuite/gdb.multi/sched-multi-add-inferior.exp
@@ -0,0 +1,109 @@
+# Copyright 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Start multiple inferiors while schedule-multiple is on. Make use of
+# the multi-target.exp.tcl support library for the helper procs, but
+# don't use its 'setup' proc as that only turns on schedule-multiple
+# after starting all the inferiors, and that is too late for this test.
+#
+# The specific bug that this test guards against was that, when a
+# native target starts and runs upto a breakpoint, the thread would
+# have its last signal recorded as SIGTRAP.
+#
+# When starting a gdbserver inferior (with schedule-multiple on) the
+# native target would also be resumed.
+#
+# However, GDBs 'run' command was failing to clear out the old signal
+# state from the native inferior, and so GDB would deliver a SIGTRAP
+# to that inferior, killing it.
+
+source $srcdir/$subdir/multi-target.exp.tcl
+
+if {![multi_target_prepare]} {
+ return
+}
+
+# Some breakpoint locations.
+set line1 [gdb_get_line_number "set break 1 here"]
+set line2 [gdb_get_line_number "set break 2 here"]
+
+# Start two inferiors using TARGET_TYPE_1 and TARGET_TYPE_2 (either
+# 'extended-remote' or 'native'). Due to the way that inferior 1 is
+# special (existing once GDB starts up), we just use the existing
+# helper functions to create inferiors 2 and 3 using these types, and
+# we leave inferior 1 unused.
+proc run_test { target_type_1 target_type_2 } {
+ cleanup_gdbservers
+
+ clean_restart
+
+ gdb_test_no_output "set sysroot"
+
+ # The schedule-multiple setting relies on all targets running in
+ # non-stop mode. Force it on for remote targets, until this is
+ # the default.
+ gdb_test_no_output "maint set target-non-stop on"
+
+ # Run in all-stop mode.
+ gdb_test_no_output "set non-stop off"
+
+ # Turn on schedule-multiple before starting any inferiors.
+ gdb_test_no_output "set schedule-multiple on"
+
+ if {![add_inferior 2 $target_type_1 $::binfile]} {
+ return 0
+ }
+
+ if {![add_inferior 3 $target_type_2 $::binfile]} {
+ return 0
+ }
+
+ # Check we see all the expected threads.
+ gdb_test "info threads" \
+ [multi_line \
+ "\\s+Id\\s+Target Id\\s+Frame\\s*" \
+ "\\s+2\\.1\\s+\[^\r\n\]+" \
+ "\\s+2\\.2\\s+\[^\r\n\]+" \
+ "\\*\\s+3\\.1\\s+\[^\r\n\]+" \
+ "\\s+3\\.2\\s+\[^\r\n\]+"]
+
+ # Ensure that all inferiors can be set running again.
+ gdb_test "break ${::srcfile}:${::line1} thread 3.1"
+ gdb_test "break ${::srcfile}:${::line2} thread 2.1"
+ gdb_test "continue" \
+ [multi_line \
+ "Thread 3\\.1 \[^\r\n\]+, main \\(\[^\r\n\]+\\) at \[^\r\n\]+" \
+ "$::decimal\\s+function1 \\(\\); /\\* set break 1 here \\*/"] \
+ "continue to function1"
+
+ # Unblock thread 2.1 and continue again. This time, thread 2.1
+ # will hit a breakpoint.
+ gdb_test "thread apply 2.1 set wait_for_gdb = 0" ".*"
+ gdb_test "continue" \
+ [multi_line \
+ "Thread 2\\.1 \[^\r\n\]+, main \\(\[^\r\n\]+\\) at \[^\r\n\]+" \
+ "$::decimal\\s+function2 \\(\\); /\\* set break 2 here \\*/"] \
+ "continue to function2"
+}
+
+set all_target_types { extended-remote native }
+
+foreach_with_prefix target_type_1 $all_target_types {
+ foreach_with_prefix target_type_2 $all_target_types {
+ run_test $target_type_1 $target_type_2
+ }
+}
+
+multi_target_cleanup
diff --git a/gdb/testsuite/gdb.multi/start-inferior-specific.exp b/gdb/testsuite/gdb.multi/start-inferior-specific.exp
index 74f984c..39621f0 100644
--- a/gdb/testsuite/gdb.multi/start-inferior-specific.exp
+++ b/gdb/testsuite/gdb.multi/start-inferior-specific.exp
@@ -30,7 +30,8 @@ require allow_multi_inferior_tests
require !use_gdb_stub
set srcfile_other ${srcfile2}
-set binfile_other ${binfile}-other
+set testfile_other $testfile-other
+set binfile_other [standard_output_file $testfile_other]
if { [build_executable ${testfile}.exp ${binfile} "${srcfile}" {debug}] != 0 } {
return -1
@@ -48,7 +49,7 @@ proc do_test {} {
append ::GDBFLAGS " -ex \"maintenance set target-non-stop on\""
}
- clean_restart ${::binfile_other}
+ clean_restart $::testfile_other
}
gdb_test -no-prompt-anchor "run&" "Starting program: .*" "start background inferior"
diff --git a/gdb/testsuite/gdb.multi/watchpoint-multi-exit.exp b/gdb/testsuite/gdb.multi/watchpoint-multi-exit.exp
index 3446296..a149407 100644
--- a/gdb/testsuite/gdb.multi/watchpoint-multi-exit.exp
+++ b/gdb/testsuite/gdb.multi/watchpoint-multi-exit.exp
@@ -31,12 +31,12 @@ if {[build_executable "failed to build" $testfile $srcfile {debug}]} {
proc do_test {dispose} {
global binfile bkptno_numopt_re
- clean_restart $binfile
+ clean_restart $::testfile
gdb_test_no_output "set follow-fork child"
gdb_test_no_output "set detach-on-fork off"
- if ![runto "child_function"] {
+ if {![runto "child_function"]} {
return
}
diff --git a/gdb/testsuite/gdb.multi/watchpoint-multi.exp b/gdb/testsuite/gdb.multi/watchpoint-multi.exp
index b0c8731..501f0a6 100644
--- a/gdb/testsuite/gdb.multi/watchpoint-multi.exp
+++ b/gdb/testsuite/gdb.multi/watchpoint-multi.exp
@@ -38,7 +38,7 @@ gdb_test_no_output "set breakpoint always-inserted on"
# displaced-stepping is also needed as other GDB sometimes still removes the
# breakpoints, even with always-inserted on.
# Without the support this test just is not as thorough as it could be.
-if [support_displaced_stepping] {
+if {[support_displaced_stepping]} {
gdb_test_no_output "set displaced-stepping on"
}
diff --git a/gdb/testsuite/gdb.objc/basicclass.exp b/gdb/testsuite/gdb.objc/basicclass.exp
index 7f29aff..9e40c71 100644
--- a/gdb/testsuite/gdb.objc/basicclass.exp
+++ b/gdb/testsuite/gdb.objc/basicclass.exp
@@ -72,7 +72,7 @@ proc deduce_language_of_main {} {
proc do_objc_tests {} {
global binfile
- clean_restart $binfile
+ clean_restart $::testfile
deduce_language_of_main
}
diff --git a/gdb/testsuite/gdb.objc/nondebug.exp b/gdb/testsuite/gdb.objc/nondebug.exp
index dfdd9bc..9ca86ff 100644
--- a/gdb/testsuite/gdb.objc/nondebug.exp
+++ b/gdb/testsuite/gdb.objc/nondebug.exp
@@ -29,7 +29,7 @@ if {[gdb_compile_objc "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [
proc do_objc_tests {} {
global binfile
- clean_restart $binfile
+ clean_restart $::testfile
}
do_objc_tests
diff --git a/gdb/testsuite/gdb.objc/objcdecode.exp b/gdb/testsuite/gdb.objc/objcdecode.exp
index b7c38db..5414f0f 100644
--- a/gdb/testsuite/gdb.objc/objcdecode.exp
+++ b/gdb/testsuite/gdb.objc/objcdecode.exp
@@ -29,7 +29,7 @@ if {[gdb_compile_objc "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [
proc do_objc_tests {} {
global binfile
- clean_restart $binfile
+ clean_restart $::testfile
}
do_objc_tests
diff --git a/gdb/testsuite/gdb.objc/print.exp b/gdb/testsuite/gdb.objc/print.exp
index c18bf29..e3f4177 100644
--- a/gdb/testsuite/gdb.objc/print.exp
+++ b/gdb/testsuite/gdb.objc/print.exp
@@ -59,7 +59,7 @@ proc test_float_rejected {} {
clean_restart
-if [set_lang_objc] {
+if { [set_lang_objc] } {
test_float_accepted
test_float_rejected
} else {
diff --git a/gdb/testsuite/gdb.opencl/callfuncs.exp b/gdb/testsuite/gdb.opencl/callfuncs.exp
index 8ab8db7..6982461 100644
--- a/gdb/testsuite/gdb.opencl/callfuncs.exp
+++ b/gdb/testsuite/gdb.opencl/callfuncs.exp
@@ -21,8 +21,9 @@ load_lib opencl.exp
require allow_opencl_tests
-set testfile "callfuncs"
-set clprogram [remote_download target ${srcdir}/${subdir}/${testfile}.cl]
+standard_testfile .cl
+
+set clprogram [remote_download target $srcdir/$subdir/$srcfile]
# Compile the generic OpenCL host app
if { [gdb_compile_opencl_hostapp "${clprogram}" "${testfile}" "" ] != "" } {
@@ -30,7 +31,7 @@ if { [gdb_compile_opencl_hostapp "${clprogram}" "${testfile}" "" ] != "" } {
return -1
}
-clean_restart [standard_testfile $testfile]
+clean_restart $testfile
# Set breakpoint at the OpenCL kernel
gdb_test "tbreak testkernel" \
diff --git a/gdb/testsuite/gdb.opencl/vec_comps.exp b/gdb/testsuite/gdb.opencl/vec_comps.exp
index 3485a34..09c12ec 100644
--- a/gdb/testsuite/gdb.opencl/vec_comps.exp
+++ b/gdb/testsuite/gdb.opencl/vec_comps.exp
@@ -58,7 +58,7 @@ set have_cl_khr_fp16 [get_integer_valueof "have_cl_khr_fp16" 0]
# Sanity checks
proc check_basic { name type size } {
gdb_test "ptype ${name}" "type = ${type}16"
- gdb_test "p sizeof(${name})" " = [expr ${size} * 16]"
+ gdb_test "p sizeof(${name})" " = [expr {${size} * 16}]"
gdb_test "print/d ${name}" " = \\{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15\\}"
}
@@ -227,40 +227,40 @@ proc check_type { name type alttype } {
}
proc check_sizeof { name size } {
- gdb_test "print sizeof (${name}.lo)" " = [expr $size * 8]"
- gdb_test "print sizeof (${name}.hi)" " = [expr $size * 8]"
- gdb_test "print sizeof (${name}.even)" " = [expr $size * 8]"
- gdb_test "print sizeof (${name}.odd)" " = [expr $size * 8]"
+ gdb_test "print sizeof (${name}.lo)" " = [expr {$size * 8}]"
+ gdb_test "print sizeof (${name}.hi)" " = [expr {$size * 8}]"
+ gdb_test "print sizeof (${name}.even)" " = [expr {$size * 8}]"
+ gdb_test "print sizeof (${name}.odd)" " = [expr {$size * 8}]"
- gdb_test "print sizeof (${name}.hi.even)" " = [expr $size * 4]"
- gdb_test "print sizeof (${name}.odd.odd.lo)" " = [expr $size * 2]"
+ gdb_test "print sizeof (${name}.hi.even)" " = [expr {$size * 4}]"
+ gdb_test "print sizeof (${name}.odd.odd.lo)" " = [expr {$size * 2}]"
gdb_test "print sizeof (${name}.even.hi.lo.odd)" " = $size"
gdb_test "print sizeof (${name}.x)" " = $size"
- gdb_test "print sizeof (${name}.xy)" " = [expr $size * 2]"
- gdb_test "print sizeof (${name}.xyz)" " = [expr $size * 4]"
- gdb_test "print sizeof (${name}.xyzw)" " = [expr $size * 4]"
+ gdb_test "print sizeof (${name}.xy)" " = [expr {$size * 2}]"
+ gdb_test "print sizeof (${name}.xyz)" " = [expr {$size * 4}]"
+ gdb_test "print sizeof (${name}.xyzw)" " = [expr {$size * 4}]"
gdb_test "print sizeof (${name}.xy.x)" " = $size"
- gdb_test "print sizeof (${name}.wzyx.yy)" " = [expr $size * 2]"
+ gdb_test "print sizeof (${name}.wzyx.yy)" " = [expr {$size * 2}]"
gdb_test "print sizeof (${name}.wzyx.yx.x)" " = $size"
gdb_test "print sizeof (${name}.xyzw.w)" " = $size"
gdb_test "print sizeof (${name}.s0)" " = $size"
- gdb_test "print sizeof (${name}.s01)" " = [expr $size * 2]"
- gdb_test "print sizeof (${name}.s012)" " = [expr $size * 4]"
- gdb_test "print sizeof (${name}.s0123)" " = [expr $size * 4]"
- gdb_test "print sizeof (${name}.s01234567)" " = [expr $size * 8]"
- gdb_test "print sizeof (${name}.s0123456789abcdef)" " = [expr $size * 16]"
-
- gdb_test "print sizeof (${name}.sfedcba98.S0246)" " = [expr $size * 4]"
- gdb_test "print sizeof (${name}.sfedcba98.S0246.s13)" " = [expr $size * 2]"
+ gdb_test "print sizeof (${name}.s01)" " = [expr {$size * 2}]"
+ gdb_test "print sizeof (${name}.s012)" " = [expr {$size * 4}]"
+ gdb_test "print sizeof (${name}.s0123)" " = [expr {$size * 4}]"
+ gdb_test "print sizeof (${name}.s01234567)" " = [expr {$size * 8}]"
+ gdb_test "print sizeof (${name}.s0123456789abcdef)" " = [expr {$size * 16}]"
+
+ gdb_test "print sizeof (${name}.sfedcba98.S0246)" " = [expr {$size * 4}]"
+ gdb_test "print sizeof (${name}.sfedcba98.S0246.s13)" " = [expr {$size * 2}]"
gdb_test "print sizeof (${name}.sfedcba98.S0246.s13.s0)" " = $size"
- gdb_test "print sizeof (${name}.s0123456789abcdef.s22)" " = [expr $size * 2]"
+ gdb_test "print sizeof (${name}.s0123456789abcdef.s22)" " = [expr {$size * 2}]"
- gdb_test "print sizeof (${name}.hi.s7654.wx)" " = [expr $size * 2]"
- gdb_test "print sizeof (${name}.s0123456789abcdef.even.lo)" " = [expr $size * 4]"
- gdb_test "print sizeof (${name}.odd.xyzw.s23)" " = [expr $size * 2]"
+ gdb_test "print sizeof (${name}.hi.s7654.wx)" " = [expr {$size * 2}]"
+ gdb_test "print sizeof (${name}.s0123456789abcdef.even.lo)" " = [expr {$size * 4}]"
+ gdb_test "print sizeof (${name}.odd.xyzw.s23)" " = [expr {$size * 2}]"
gdb_test "print sizeof (${name}.xyzw.hi.odd)" " = $size"
}
@@ -343,8 +343,8 @@ proc check_access { name } {
# lvalue tests
for {set i 0} {$i < 16} {incr i} {
- gdb_test_no_output "set variable ${name}.s[format "%x" $i] = [expr 15 - $i]"
- gdb_test "print/d ${name}.s[format "%x" $i]" " = [expr 15 - $i]"
+ gdb_test_no_output "set variable ${name}.s[format "%x" $i] = [expr {15 - $i}]"
+ gdb_test "print/d ${name}.s[format "%x" $i]" " = [expr {15 - $i}]"
}
gdb_test "print/d ${name}" " = \\{15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0\\}"
diff --git a/gdb/testsuite/gdb.opt/inline-break.exp b/gdb/testsuite/gdb.opt/inline-break.exp
index d83ff75..0805f69 100644
--- a/gdb/testsuite/gdb.opt/inline-break.exp
+++ b/gdb/testsuite/gdb.opt/inline-break.exp
@@ -209,7 +209,7 @@ foreach_with_prefix cmd [list "break" "tbreak"] {
# that we actually stop where we think we should.
for {set i 1} {$i < 4} {incr i} {
foreach inline {"not_inline" "inline"} {
- eval gdb_breakpoint "${inline}_func$i" $break_flags
+ gdb_breakpoint "${inline}_func$i" {*}$break_flags
}
}
@@ -247,7 +247,7 @@ foreach_with_prefix func {
"func_inline_caller"
"func_inline_callee"
} {
- clean_restart $binfile
+ clean_restart $::testfile
if {![runto_main]} {
continue
@@ -264,7 +264,7 @@ foreach_with_prefix func {
set line [gdb_get_line_number "break here"]
with_test_prefix "line number" {
- clean_restart $binfile
+ clean_restart $::testfile
if {![runto_main]} {
continue
@@ -288,7 +288,7 @@ with_test_prefix "line number" {
with_test_prefix "address" {
- clean_restart $binfile
+ clean_restart $::testfile
if {![runto_main]} {
continue
@@ -308,7 +308,7 @@ with_test_prefix "address" {
with_test_prefix "check alignment" {
- clean_restart $binfile
+ clean_restart $::testfile
if {![runto_main]} {
continue
diff --git a/gdb/testsuite/gdb.opt/inline-cmds.exp b/gdb/testsuite/gdb.opt/inline-cmds.exp
index eca897c..e80d6f7 100644
--- a/gdb/testsuite/gdb.opt/inline-cmds.exp
+++ b/gdb/testsuite/gdb.opt/inline-cmds.exp
@@ -241,7 +241,7 @@ gdb_test "step" ".*set breakpoint 2 here.*" "step into finish marker"
# Some architectures will have one or more instructions after
# the call instruction which still are part of the call sequence,
-# so it should be expected to return to the caller line after issue
+# so it should be expected to return to the caller line after issue
# a 'finish' command.
gdb_test_multiple "finish" "finish from marker to func1" {
-re -wrap "func1 \\(\\);" {
diff --git a/gdb/testsuite/gdb.opt/inline-entry.exp b/gdb/testsuite/gdb.opt/inline-entry.exp
index f185f10..0c6b0fb 100644
--- a/gdb/testsuite/gdb.opt/inline-entry.exp
+++ b/gdb/testsuite/gdb.opt/inline-entry.exp
@@ -43,11 +43,11 @@ if { [supports_statement_frontiers] } {
lappend options additional_flags=-gstatement-frontiers
}
-if { [prepare_for_testing "failed to prepare" $binfile $srcfile $options] } {
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile $options] } {
return
}
-if ![runto_main] {
+if { ![runto_main] } {
return
}
diff --git a/gdb/testsuite/gdb.opt/inline-small-func.exp b/gdb/testsuite/gdb.opt/inline-small-func.exp
index d77a10e..b04f957 100644
--- a/gdb/testsuite/gdb.opt/inline-small-func.exp
+++ b/gdb/testsuite/gdb.opt/inline-small-func.exp
@@ -41,7 +41,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} \
return -1
}
-if ![runto_main] {
+if { ![runto_main] } {
return -1
}
diff --git a/gdb/testsuite/gdb.opt/solib-intra-step.exp b/gdb/testsuite/gdb.opt/solib-intra-step.exp
index 4b7ab3a..9c6d6c5 100644
--- a/gdb/testsuite/gdb.opt/solib-intra-step.exp
+++ b/gdb/testsuite/gdb.opt/solib-intra-step.exp
@@ -34,7 +34,7 @@ if { [gdb_compile_shlib ${srcfile_lib} ${binfile_lib} $lib_flags] != ""
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_load_shlib $binfile_lib
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.pascal/floats.exp b/gdb/testsuite/gdb.pascal/floats.exp
index a0c37ad..926c0c3 100644
--- a/gdb/testsuite/gdb.pascal/floats.exp
+++ b/gdb/testsuite/gdb.pascal/floats.exp
@@ -48,9 +48,9 @@ gdb_test "next" "u := 78\\.3;" "next to 'u := 78.3' line"
gdb_test "next" "l := 1;" "next to 'l := 1' line"
gdb_test "next" "i := 1;" "next to 'i := 1' line"
-# At that point,
+# At that point,
# r should be equal to 1.25
-gdb_test "print r" " = 1\\.25"
+gdb_test "print r" " = 1\\.25"
# s should be equal to 2.2
gdb_test "print s" " = 2\\.(199.*|2|200.*)"
# t should be equal to -3.2
@@ -120,7 +120,7 @@ gdb_test "next" "s := sin\\(u\\);" "advance to 's := sin(u)' line"
gdb_test "print r" " = -1" "test cos(pi) is equal to -1"
gdb_test "next" "" "go past 's := sin(u)' line"
-set msg "Test sin(pi) is equal to 0"
+set msg "Test sin(pi) is equal to 0"
gdb_test_multiple "print s" $msg {
-re ".* = (0|-?\[0-9\]\\.\[0-9\]*\[eE\](-?\[0-9\]*))\[\r\n\]+$gdb_prompt $" {
diff --git a/gdb/testsuite/gdb.pascal/gdb11492.exp b/gdb/testsuite/gdb.pascal/gdb11492.exp
index e39f522..67764c5 100644
--- a/gdb/testsuite/gdb.pascal/gdb11492.exp
+++ b/gdb/testsuite/gdb.pascal/gdb11492.exp
@@ -37,9 +37,9 @@ if { [gdb_breakpoint ${srcfile}:${bp_location1}] } {
gdb_test "continue" ""
gdb_test "print integer_array" { = \{50, 51, 52, 53, 54, 55, 56, 57\}}
-gdb_test "print /s integer_array" " = '23456789'"
+gdb_test "print /s integer_array" " = '23456789'"
-gdb_test "print char_array" " = '23456789'"
+gdb_test "print char_array" " = '23456789'"
gdb_test "print /d char_array" { = \{50, 51, 52, 53, 54, 55, 56, 57\}}
gdb_test "print /x char_array" { = \{0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39\}}
# Use next two times to avoid GPC line numbering problem
diff --git a/gdb/testsuite/gdb.pascal/hello.exp b/gdb/testsuite/gdb.pascal/hello.exp
index 904f2a9..ac10280 100644
--- a/gdb/testsuite/gdb.pascal/hello.exp
+++ b/gdb/testsuite/gdb.pascal/hello.exp
@@ -46,7 +46,7 @@ gdb_test "print st" \
# This test also fails for gpc because the program
# stops after the string has been written
-# while it should stop before writing it
+# while it should stop before writing it
if { $pascal_compiler_is_gpc } {
setup_xfail *-*-*
}
diff --git a/gdb/testsuite/gdb.pascal/integers.exp b/gdb/testsuite/gdb.pascal/integers.exp
index c9974a1..12d15c8 100644
--- a/gdb/testsuite/gdb.pascal/integers.exp
+++ b/gdb/testsuite/gdb.pascal/integers.exp
@@ -43,9 +43,9 @@ gdb_test "print i" ".* = 0" "print i before assigned to 1"
gdb_test "next" "i := 1;" "next to 'i := 1' line"
gdb_test "next" "j := 2;" "next to 'j := 2' line"
-# At that point,
+# At that point,
# i should be equal to 1
-gdb_test "print i" " = 1"
+gdb_test "print i" " = 1"
# but j should still be equal to zero
if { $pascal_compiler_is_gpc } {
setup_xfail *-*-*
diff --git a/gdb/testsuite/gdb.pascal/print.exp b/gdb/testsuite/gdb.pascal/print.exp
index 98b0879..18dff4b 100644
--- a/gdb/testsuite/gdb.pascal/print.exp
+++ b/gdb/testsuite/gdb.pascal/print.exp
@@ -59,7 +59,7 @@ proc test_float_rejected {} {
clean_restart
-if [set_lang_pascal] {
+if { [set_lang_pascal] } {
test_float_accepted
test_float_rejected
} else {
diff --git a/gdb/testsuite/gdb.pascal/types.exp b/gdb/testsuite/gdb.pascal/types.exp
index c234c28..b4949f5 100644
--- a/gdb/testsuite/gdb.pascal/types.exp
+++ b/gdb/testsuite/gdb.pascal/types.exp
@@ -25,7 +25,7 @@ proc test_integer_literal_types_accepted {} {
# Test various decimal values.
# Should be integer*4 probably.
- gdb_test "pt 123" "type = int"
+ gdb_test "pt 123" "type = int"
}
proc test_character_literal_types_accepted {} {
global gdb_prompt
diff --git a/gdb/testsuite/gdb.perf/backtrace.exp b/gdb/testsuite/gdb.perf/backtrace.exp
index 9ec099f..aea1e01 100644
--- a/gdb/testsuite/gdb.perf/backtrace.exp
+++ b/gdb/testsuite/gdb.perf/backtrace.exp
@@ -28,7 +28,7 @@ set executable $testfile
set expfile $testfile.exp
# make check-perf RUNTESTFLAGS='backtrace.exp BACKTRACE_DEPTH=1024'
-if ![info exists BACKTRACE_DEPTH] {
+if {![info exists BACKTRACE_DEPTH]} {
set BACKTRACE_DEPTH 64
}
@@ -47,7 +47,7 @@ PerfTest::assemble {
} {
global binfile
- clean_restart $binfile
+ clean_restart $::testfile
if ![runto_main] {
return -1
diff --git a/gdb/testsuite/gdb.perf/gmonster1.exp b/gdb/testsuite/gdb.perf/gmonster1.exp
index f752062..8bb748d 100644
--- a/gdb/testsuite/gdb.perf/gmonster1.exp
+++ b/gdb/testsuite/gdb.perf/gmonster1.exp
@@ -38,7 +38,7 @@ load_lib gen-perf-test.exp
require allow_perf_tests
-if ![info exists MONSTER] {
+if {![info exists MONSTER]} {
set MONSTER "n"
}
diff --git a/gdb/testsuite/gdb.perf/gmonster2.exp b/gdb/testsuite/gdb.perf/gmonster2.exp
index ba4e46b..7049bce 100644
--- a/gdb/testsuite/gdb.perf/gmonster2.exp
+++ b/gdb/testsuite/gdb.perf/gmonster2.exp
@@ -38,7 +38,7 @@ load_lib gen-perf-test.exp
require allow_perf_tests
-if ![info exists MONSTER] {
+if {![info exists MONSTER]} {
set MONSTER "n"
}
diff --git a/gdb/testsuite/gdb.perf/single-step.exp b/gdb/testsuite/gdb.perf/single-step.exp
index 920cf9d..8ec32d1 100644
--- a/gdb/testsuite/gdb.perf/single-step.exp
+++ b/gdb/testsuite/gdb.perf/single-step.exp
@@ -26,7 +26,7 @@ set executable $testfile
set expfile $testfile.exp
# make check-perf RUNTESTFLAGS='single-step.exp SINGLE_STEP_COUNT=300'
-if ![info exists SINGLE_STEP_COUNT] {
+if {![info exists SINGLE_STEP_COUNT]} {
set SINGLE_STEP_COUNT 1000
}
@@ -39,7 +39,7 @@ PerfTest::assemble {
return 0
} {
global binfile
- clean_restart $binfile
+ clean_restart $::testfile
if ![runto_main] {
return -1
diff --git a/gdb/testsuite/gdb.perf/skip-command.exp b/gdb/testsuite/gdb.perf/skip-command.exp
index b82d318..e59cb07 100644
--- a/gdb/testsuite/gdb.perf/skip-command.exp
+++ b/gdb/testsuite/gdb.perf/skip-command.exp
@@ -33,10 +33,10 @@ set skip_func_file [standard_output_file $srcfile2]
set expfile $testfile.exp
# make check-perf RUNTESTFLAGS='skip-command.exp SKIP_STEP_COUNT=1000 ...'
-if ![info exists SKIP_STEP_COUNT] {
+if {![info exists SKIP_STEP_COUNT]} {
set SKIP_STEP_COUNT 1000
}
-if ![info exists SKIP_DIRECTIVE_COUNT] {
+if {![info exists SKIP_DIRECTIVE_COUNT]} {
set SKIP_DIRECTIVE_COUNT 1000
}
@@ -91,7 +91,7 @@ proc write_skip_func_source { file_name func_name_prefix nr_funcs } {
proc run_skip_bench { kind text } {
global SKIP_STEP_COUNT SKIP_DIRECTIVE_COUNT
- if ![runto_main] {
+ if {![runto_main]} {
return -1
}
@@ -120,7 +120,7 @@ PerfTest::assemble {
return 0
} {
global binfile
- clean_restart $binfile
+ clean_restart $::testfile
return 0
} {
global SKIP_STEP_COUNT SKIP_DIRECTIVE_COUNT
diff --git a/gdb/testsuite/gdb.perf/skip-prologue.exp b/gdb/testsuite/gdb.perf/skip-prologue.exp
index 50df93a..880a0f4 100644
--- a/gdb/testsuite/gdb.perf/skip-prologue.exp
+++ b/gdb/testsuite/gdb.perf/skip-prologue.exp
@@ -28,7 +28,7 @@ set executable $testfile
set expfile $testfile.exp
# make check-perf RUNTESTFLAGS='skip-prologue.exp SKIP_PROLOGUE_COUNT=500'
-if ![info exists SKIP_PROLOGUE_COUNT] {
+if {![info exists SKIP_PROLOGUE_COUNT]} {
set SKIP_PROLOGUE_COUNT 500
}
@@ -51,7 +51,7 @@ PerfTest::assemble {
global binfile
global gdb_prompt
- clean_restart $binfile
+ clean_restart $::testfile
if ![runto_main] {
return -1
diff --git a/gdb/testsuite/gdb.perf/solib.exp b/gdb/testsuite/gdb.perf/solib.exp
index 45f9330..e7870f6 100644
--- a/gdb/testsuite/gdb.perf/solib.exp
+++ b/gdb/testsuite/gdb.perf/solib.exp
@@ -31,7 +31,7 @@ set executable $testfile
set expfile $testfile.exp
# make check-perf RUNTESTFLAGS='solib.exp SOLIB_COUNT=1024'
-if ![info exists SOLIB_COUNT] {
+if {![info exists SOLIB_COUNT]} {
set SOLIB_COUNT 128
}
@@ -72,7 +72,7 @@ PerfTest::assemble {
} {
global binfile
- clean_restart $binfile
+ clean_restart $::testfile
if ![runto_main] {
return -1
diff --git a/gdb/testsuite/gdb.perf/template-breakpoints.exp b/gdb/testsuite/gdb.perf/template-breakpoints.exp
index 7d66e0f..e5d21b2 100644
--- a/gdb/testsuite/gdb.perf/template-breakpoints.exp
+++ b/gdb/testsuite/gdb.perf/template-breakpoints.exp
@@ -28,7 +28,7 @@ set executable $testfile
set expfile $testfile.exp
# make check-perf RUNTESTFLAGS='template-breakpoints.exp EXPANSION_DEPTH=40'
-if ![info exists EXPANSION_DEPTH] {
+if {![info exists EXPANSION_DEPTH]} {
set EXPANSION_DEPTH 40
}
@@ -47,7 +47,7 @@ PerfTest::assemble {
} {
global binfile
- clean_restart $binfile
+ clean_restart $::testfile
if ![runto_main] {
return -1
diff --git a/gdb/testsuite/gdb.python/make-visualizer.exp b/gdb/testsuite/gdb.python/make-visualizer.exp
new file mode 100644
index 0000000..5794bbd
--- /dev/null
+++ b/gdb/testsuite/gdb.python/make-visualizer.exp
@@ -0,0 +1,176 @@
+# Copyright (C) 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Tests for gdb.printing.make_visualizer; specifically that the
+# optimized-out and synthetic pointer cases work properly.
+
+load_lib dwarf.exp
+load_lib gdb-python.exp
+
+require dwarf2_support
+require allow_python_tests
+
+# Use a simple plain-"main" source file.
+standard_testfile py-progspace.c -dw.S
+
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug}]} {
+ return
+}
+
+if {![runto_main]} {
+ return
+}
+
+# Get size to create fake DWARF for the test.
+set ptr_size [get_sizeof "void *" 96]
+
+set asm_file [standard_output_file ${srcfile2}]
+Dwarf::assemble $asm_file {
+ cu {} {
+ compile_unit {} {
+ declare_labels i32_type i32_array \
+ struct_label variable_label pointer_label
+
+ i32_type: DW_TAG_base_type {
+ DW_AT_name "int32_t"
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 4 DW_FORM_sdata
+ }
+
+ i32_array: DW_TAG_array_type {
+ DW_AT_name array_type
+ DW_AT_type :$i32_type
+ } {
+ DW_TAG_subrange_type {
+ DW_AT_type :$i32_type
+ DW_AT_lower_bound 0 DW_FORM_data1
+ DW_AT_upper_bound 3 DW_FORM_data1
+ }
+ }
+
+ # Used for testing optimized-out elements of an array.
+ DW_TAG_variable {
+ DW_AT_name i32_noptr
+ DW_AT_type :$i32_array
+ DW_AT_location {
+ DW_OP_constu 1779823878
+ DW_OP_stack_value
+ DW_OP_piece 4
+ } SPECIAL_expr
+ }
+
+ struct_label: DW_TAG_structure_type {
+ DW_AT_name i32_noptr
+ DW_AT_byte_size 4 DW_FORM_sdata
+ } {
+ DW_TAG_member {
+ DW_AT_name f
+ DW_AT_type :$i32_type
+ DW_AT_data_member_location 0 DW_FORM_data1
+ }
+ }
+
+ pointer_label: DW_TAG_pointer_type {
+ DW_AT_byte_size $::ptr_size DW_FORM_sdata
+ DW_AT_type :$struct_label
+ }
+
+ variable_label: DW_TAG_variable {
+ DW_AT_name v
+ DW_AT_location {
+ DW_OP_implicit_value 0x1 0x1 0x1 0x1
+ } SPECIAL_expr
+ DW_AT_type :$struct_label
+ }
+
+ # Used for testing synthetic pointers.
+ DW_TAG_variable {
+ DW_AT_name synthptr
+ DW_AT_location [subst {
+ GNU_implicit_pointer $variable_label 0
+ }] SPECIAL_expr
+ DW_AT_type :$pointer_label
+ }
+
+ # Optimized-out pointer.
+ DW_TAG_variable {
+ DW_AT_name optoutptr
+ DW_AT_location { } SPECIAL_expr
+ DW_AT_type :$pointer_label
+ }
+ }
+ }
+}
+
+if {[prepare_for_testing "failed to prepare" ${testfile} \
+ [list $srcfile $asm_file] {nodebug}]} {
+ return
+}
+
+# Need a frame to evaluate a synthetic pointer.
+if {![runto_main]} {
+ return
+}
+
+gdb_test_no_output "python import gdb"
+gdb_test_no_output "python import gdb.printing"
+
+gdb_test_no_output "python val = gdb.parse_and_eval('i32_noptr')" \
+ "fetch i32_noptr"
+gdb_test_no_output "python vz = gdb.printing.make_visualizer(val)" \
+ "create i32_noptr visualizer"
+gdb_test "python print(isinstance(vz, gdb.printing.NoOpArrayPrinter))" \
+ True \
+ "i32_noptr uses array printer"
+
+gdb_test_no_output "python vz1 = gdb.printing.make_visualizer(val\[0\])" \
+ "create visualizer for valid element"
+gdb_test "python print(isinstance(vz1, gdb.printing.NoOpScalarPrinter))" \
+ True \
+ "valid element uses scalar printer"
+gdb_test "python print(vz1.to_string())" \
+ 1779823878 \
+ "string form of valid element"
+
+gdb_test_no_output "python vz2 = gdb.printing.make_visualizer(val\[1\])" \
+ "create visualizer for optimized-out element"
+gdb_test "python print(isinstance(vz2, gdb.printing.NoOpScalarPrinter))" \
+ True \
+ "optimized-out element uses scalar printer"
+gdb_test "python print(vz2.to_string())" \
+ "<optimized out>" \
+ "string form of optimized-out element"
+
+gdb_test_no_output "python val2 = gdb.parse_and_eval('synthptr')" \
+ "fetch synthetic pointer"
+gdb_test_no_output "python vzv2 = gdb.printing.make_visualizer(val2)" \
+ "create synthetic pointer visualizer"
+gdb_test "python print(isinstance(vzv2, gdb.printing.NoOpPointerReferencePrinter))" \
+ True \
+ "synthetic pointer uses pointer printer"
+gdb_test "python print(vzv2.child(0)\[1\])" \
+ "{f = 16843009}" \
+ "child of synthetic pointer"
+
+gdb_test_no_output "python val3 = gdb.parse_and_eval('optoutptr')" \
+ "fetch optimized-out pointer"
+gdb_test_no_output "python vzv3 = gdb.printing.make_visualizer(val3)" \
+ "create optimized-out pointer visualizer"
+gdb_test "python print(isinstance(vzv3, gdb.printing.NoOpScalarPrinter))" \
+ True \
+ "optimized-out pointer uses scalar printer"
+gdb_test "python print(vzv3.to_string())" \
+ "<optimized out>" \
+ "string representation of optimized-out pointer"
diff --git a/gdb/testsuite/gdb.python/pretty-print-call-by-hand.exp b/gdb/testsuite/gdb.python/pretty-print-call-by-hand.exp
index dd6cb59..17b8afe 100644
--- a/gdb/testsuite/gdb.python/pretty-print-call-by-hand.exp
+++ b/gdb/testsuite/gdb.python/pretty-print-call-by-hand.exp
@@ -39,7 +39,7 @@ proc start_test { breakpoint_comment } {
# Start with a fresh gdb.
# This is important because the test can crash GDB.
- clean_restart ${binfile}
+ clean_restart ${::testfile}
if {![runto_main]} {
untested "couldn't run to breakpoint"
diff --git a/gdb/testsuite/gdb.python/py-arch-reg-groups.exp b/gdb/testsuite/gdb.python/py-arch-reg-groups.exp
index 855af27..2b0ac3e 100644
--- a/gdb/testsuite/gdb.python/py-arch-reg-groups.exp
+++ b/gdb/testsuite/gdb.python/py-arch-reg-groups.exp
@@ -23,7 +23,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.python/py-arch-reg-names.exp b/gdb/testsuite/gdb.python/py-arch-reg-names.exp
index 7093674..99fb8ce 100644
--- a/gdb/testsuite/gdb.python/py-arch-reg-names.exp
+++ b/gdb/testsuite/gdb.python/py-arch-reg-names.exp
@@ -23,7 +23,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.python/py-arch.exp b/gdb/testsuite/gdb.python/py-arch.exp
index 79e5939..531ae50 100644
--- a/gdb/testsuite/gdb.python/py-arch.exp
+++ b/gdb/testsuite/gdb.python/py-arch.exp
@@ -20,7 +20,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
@@ -78,7 +78,7 @@ foreach size {0 1 2 3 4 8 16} {
} else {
set sign_result [lindex $sign_data 1]
}
- set fullsize [expr 8 * $size]
+ set fullsize [expr {8 * $size}]
gdb_test_no_output "python t = arch.integer_type($fullsize$sign)" \
"get integer type for $size$sign"
gdb_test "python print(t.sizeof)" "$size" \
diff --git a/gdb/testsuite/gdb.python/py-as-string.exp b/gdb/testsuite/gdb.python/py-as-string.exp
index 05d55df..2ad179d 100644
--- a/gdb/testsuite/gdb.python/py-as-string.exp
+++ b/gdb/testsuite/gdb.python/py-as-string.exp
@@ -26,7 +26,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return 0
}
diff --git a/gdb/testsuite/gdb.python/py-auto-load-chaining.exp b/gdb/testsuite/gdb.python/py-auto-load-chaining.exp
index 451dca6..fbb95d9 100644
--- a/gdb/testsuite/gdb.python/py-auto-load-chaining.exp
+++ b/gdb/testsuite/gdb.python/py-auto-load-chaining.exp
@@ -49,7 +49,7 @@ if {[prepare_for_testing "failed to prepare" ${testfile} ${srcfile}]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.python/py-bp-locations.exp b/gdb/testsuite/gdb.python/py-bp-locations.exp
index 61e4e38..b09a401 100644
--- a/gdb/testsuite/gdb.python/py-bp-locations.exp
+++ b/gdb/testsuite/gdb.python/py-bp-locations.exp
@@ -27,7 +27,7 @@ save_vars { GDBFLAGS } {
clean_restart $testfile
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
@@ -79,7 +79,7 @@ gdb_test "python print(gdb.breakpoints()\[1\].locations\[0\])" \
"check repr of disabled breakpoint location"
gdb_continue_to_breakpoint "" ".*25.*"
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.python/py-breakpoint-create-fail.exp b/gdb/testsuite/gdb.python/py-breakpoint-create-fail.exp
index 391744e..4098a7a 100644
--- a/gdb/testsuite/gdb.python/py-breakpoint-create-fail.exp
+++ b/gdb/testsuite/gdb.python/py-breakpoint-create-fail.exp
@@ -27,7 +27,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
}
clean_restart "${testfile}"
-if ![runto_main] {
+if {![runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.python/py-caller-is.exp b/gdb/testsuite/gdb.python/py-caller-is.exp
index 8e54c3b..0fdb80e 100644
--- a/gdb/testsuite/gdb.python/py-caller-is.exp
+++ b/gdb/testsuite/gdb.python/py-caller-is.exp
@@ -26,7 +26,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return 0
}
diff --git a/gdb/testsuite/gdb.python/py-color-pagination.exp b/gdb/testsuite/gdb.python/py-color-pagination.exp
new file mode 100644
index 0000000..e7a9e4f
--- /dev/null
+++ b/gdb/testsuite/gdb.python/py-color-pagination.exp
@@ -0,0 +1,137 @@
+# Copyright (C) 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# This file is part of the GDB testsuite. It tests gdb.Color and how this
+# interacts with GDB's pagination system.
+
+load_lib gdb-python.exp
+
+require allow_python_tests
+require {!is_remote host}
+
+standard_testfile
+
+set pyfile [gdb_remote_download host ${srcdir}/${subdir}/${testfile}.py]
+
+set str "<[string repeat - 78]>"
+
+# These define all the default attributes for a style: background
+# color, intensity, italics, and underlined.
+set other_attr ";49;22;23;24;27"
+
+# These colors set the foreground color only. Everything else is the
+# default.
+set black "(?:\033\\\[30${other_attr}m)"
+set red "(?:\033\\\[31${other_attr}m)"
+set green "(?:\033\\\[32${other_attr}m)"
+set yellow "(?:\033\\\[33${other_attr}m)"
+set blue "(?:\033\\\[34${other_attr}m)"
+set magenta "(?:\033\\\[35${other_attr}m)"
+set cyan "(?:\033\\\[36${other_attr}m)"
+set white "(?:\033\\\[37${other_attr}m)"
+
+set any_color "(?:${black}|${red}|${green}|${yellow}|${blue}|${magenta}|${cyan}|${white})"
+
+# Run the command 'TYPE-fill MODE' which fills the screen with output and
+# triggers the pagination prompt. Check that styling is applied correctly
+# to the output.
+proc test_pagination { type mode } {
+
+ # Start with a fresh GDB, but enable color support.
+ with_ansi_styling_terminal {
+ clean_restart
+ }
+
+ gdb_test_no_output "source $::pyfile" "source the script"
+
+ gdb_test_no_output "set width 80"
+ gdb_test_no_output "set height 15"
+
+ set saw_bad_color_handling false
+ set expected_restore_color ""
+ set last_color ""
+ gdb_test_multiple "$type-fill $mode" "" {
+ -re "^$type-fill $mode\r\n" {
+ exp_continue
+ }
+
+ -re "^(${::any_color})(${::any_color})$::str" {
+ # After a continuation prompt GDB will restore the previous
+ # color, and then we immediately switch to a new color.
+ set restored_color $expect_out(1,string)
+ if { $restored_color ne $expected_restore_color } {
+ set saw_bad_color_handling true
+ }
+ set last_color $expect_out(2,string)
+ exp_continue
+ }
+
+ -re "^(${::any_color})$::str" {
+ # This pattern matches printing STR in all cases that are not
+ # immediately after a pagination prompt. In this case there is
+ # a single escape sequence to set the color.
+ set last_color $expect_out(1,string)
+ exp_continue
+ }
+
+ -re "^\033\\\[${::decimal}m$::str" {
+ # This catches the case where the color's escape sequence has
+ # not been converted back into a full style. This indicates
+ # something went wrong in the pager_file::puts function.
+ set saw_bad_color_handling true
+ exp_continue
+ }
+
+ -re "^\033\\\[m$::pagination_prompt$" {
+ # After a pagination prompt we expect GDB to restore the last
+ # color.
+ set expected_restore_color $last_color
+
+ # Send '\n' to view more output.
+ send_gdb "\n"
+ exp_continue
+ }
+
+ -re "^$::pagination_prompt$" {
+ # After a pagination prompt we expect GDB to restore the last
+ # color.
+ set expected_restore_color $last_color
+
+ # If we didn't see a color reset sequence before the pagination
+ # prompt, then the prompt will have been printed in the wrong
+ # color, this is a GDB bug.
+ set saw_bad_color_handling true
+
+ # Send '\n' to view more output.
+ send_gdb "\n"
+ exp_continue
+ }
+
+ -re "^\r\n" {
+ # The matches the newline sent to the continuation prompt.
+ exp_continue
+ }
+
+ -re "^\033\\\[m\r\n$::gdb_prompt $" {
+ gdb_assert { !$saw_bad_color_handling } $gdb_test_name
+ }
+ }
+}
+
+foreach_with_prefix type { color } {
+ foreach_with_prefix mode { write print } {
+ test_pagination $type $mode
+ }
+}
diff --git a/gdb/testsuite/gdb.python/py-color-pagination.py b/gdb/testsuite/gdb.python/py-color-pagination.py
new file mode 100644
index 0000000..efd501e
--- /dev/null
+++ b/gdb/testsuite/gdb.python/py-color-pagination.py
@@ -0,0 +1,46 @@
+# Copyright (C) 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+import gdb
+
+basic_colors = ["black", "red", "green", "yellow", "blue", "magenta", "cyan", "white"]
+
+
+def write(mode, text):
+ if mode == "write":
+ gdb.write(text)
+ else:
+ print(text, end="")
+
+
+class ColorTester(gdb.Command):
+ def __init__(self):
+ super().__init__("color-fill", gdb.COMMAND_USER)
+
+ def invoke(self, args, from_tty):
+ mode = args
+ str = "<" + "-" * 78 + ">"
+ for i in range(0, 20):
+ for color_name in basic_colors:
+ c = gdb.Color(color_name)
+ write(mode, c.escape_sequence(True))
+ write(mode, str)
+
+ default = gdb.Color("none")
+ write(mode, default.escape_sequence(True))
+ write(mode, "\n")
+
+
+ColorTester()
diff --git a/gdb/testsuite/gdb.python/py-color.exp b/gdb/testsuite/gdb.python/py-color.exp
index 2601cf3..08089e5 100644
--- a/gdb/testsuite/gdb.python/py-color.exp
+++ b/gdb/testsuite/gdb.python/py-color.exp
@@ -18,6 +18,7 @@
load_lib gdb-python.exp
require allow_python_tests
+require {!is_remote host}
# Start with a fresh GDB, but enable color support.
with_ansi_styling_terminal {
diff --git a/gdb/testsuite/gdb.python/py-disasm.exp.tcl b/gdb/testsuite/gdb.python/py-disasm.exp.tcl
index c5099ba..5f45747 100644
--- a/gdb/testsuite/gdb.python/py-disasm.exp.tcl
+++ b/gdb/testsuite/gdb.python/py-disasm.exp.tcl
@@ -24,14 +24,16 @@ standard_testfile py-disasm.c
if { $kind == "obj" } {
- set obj [standard_output_file ${gdb_test_file_name}.o]
+ set testfile $testfile.o
+ set binfile [standard_output_file $testfile]
- if { [gdb_compile "$srcdir/$subdir/$srcfile" $obj object "debug"] != "" } {
- untested "failed to compile object file [file tail $obj]"
+ if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile object \
+ "debug"] != "" } {
+ untested "failed to compile object file $testfile"
return -1
}
- clean_restart $obj
+ clean_restart $testfile
} else {
diff --git a/gdb/testsuite/gdb.python/py-event-load.exp b/gdb/testsuite/gdb.python/py-event-load.exp
index a09a946..dbb225f 100644
--- a/gdb/testsuite/gdb.python/py-event-load.exp
+++ b/gdb/testsuite/gdb.python/py-event-load.exp
@@ -20,12 +20,6 @@ load_lib gdb-python.exp
require allow_shlib_tests allow_python_tests
-if {[get_compiler_info]} {
- warning "Could not get compiler info"
- untested "no compiler info"
- return -1
-}
-
standard_testfile .c
if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
executable {debug shlib_load}] != ""} {
diff --git a/gdb/testsuite/gdb.python/py-exec-file.exp b/gdb/testsuite/gdb.python/py-exec-file.exp
index b3418a5..139ce83 100644
--- a/gdb/testsuite/gdb.python/py-exec-file.exp
+++ b/gdb/testsuite/gdb.python/py-exec-file.exp
@@ -19,8 +19,10 @@ load_lib gdb-python.exp
standard_testfile
-set binfile1 ${binfile}-a
-set binfile2 ${binfile}-b
+set testfile1 $testfile-a
+set binfile1 [standard_output_file $testfile1]
+set testfile2 $testfile-b
+set binfile2 [standard_output_file $testfile2]
if {[build_executable "failed to prepare first executable" \
$binfile1 $srcfile]} {
@@ -176,7 +178,7 @@ with_test_prefix "using 'symbol-file' command" {
# Check the executable_changed event when the executable changes on disk.
with_test_prefix "exec changes on disk" {
- clean_restart $binfile1
+ clean_restart $::testfile1
setup_exec_change_handler
diff --git a/gdb/testsuite/gdb.python/py-explore-cc.exp b/gdb/testsuite/gdb.python/py-explore-cc.exp
index 0be7019..8c28d87 100644
--- a/gdb/testsuite/gdb.python/py-explore-cc.exp
+++ b/gdb/testsuite/gdb.python/py-explore-cc.exp
@@ -36,7 +36,7 @@ A = <Enter 0 to explore this base class of type 'A'>.*\
i = <Enter 1 to explore this field of type 'int'>.*\
c = <Enter 2 to explore this field of type 'char'>.*"
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.python/py-explore.exp b/gdb/testsuite/gdb.python/py-explore.exp
index a68c110..df0f465 100644
--- a/gdb/testsuite/gdb.python/py-explore.exp
+++ b/gdb/testsuite/gdb.python/py-explore.exp
@@ -47,7 +47,7 @@ proc array_description { value_name type } {
proc pointer_description { value_name type_name } {
set type_description "'$value_name' is a pointer to a value of type '$type_name'\.\[\r\n\]+"
- set prompt "Continue exploring it as a pointer to a single value \[\[\]y/n\[\]\]: "
+ set prompt "Continue exploring it as a pointer to a single value \[\[\]y/n\[\]\]: "
return "$type_description$prompt"
}
@@ -75,7 +75,7 @@ proc scalar_value { value_name value } {
set SS_fields [field_values {a = 10} {d = 100[.].*}]
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
@@ -125,7 +125,7 @@ gdb_test_multiple "explore darray_ref" "" {
}
}
}
- }
+ }
}
}
}
diff --git a/gdb/testsuite/gdb.python/py-finish-breakpoint.exp b/gdb/testsuite/gdb.python/py-finish-breakpoint.exp
index c7d31f0..bec22ee 100644
--- a/gdb/testsuite/gdb.python/py-finish-breakpoint.exp
+++ b/gdb/testsuite/gdb.python/py-finish-breakpoint.exp
@@ -112,7 +112,7 @@ with_test_prefix "return to inlined function" {
}
#
-# Test FinishBreakpoint with no debug symbol
+# Test FinishBreakpoint with no debug symbol
#
with_test_prefix "no debug symbol" {
@@ -140,7 +140,7 @@ with_test_prefix "no debug symbol" {
}
#
-# Test FinishBreakpoint in function returned by longjmp
+# Test FinishBreakpoint in function returned by longjmp
#
with_test_prefix "function returned by longjump" {
@@ -166,7 +166,7 @@ with_test_prefix "function returned by longjump" {
}
#
-# Test FinishBreakpoint in BP condition evaluation
+# Test FinishBreakpoint in BP condition evaluation
# (finish in dummy frame)
#
@@ -194,7 +194,7 @@ with_test_prefix "finish in dummy frame" {
}
#
-# Test FinishBreakpoint in BP condition evaluation
+# Test FinishBreakpoint in BP condition evaluation
# (finish in normal frame)
#
diff --git a/gdb/testsuite/gdb.python/py-finish-breakpoint2.exp b/gdb/testsuite/gdb.python/py-finish-breakpoint2.exp
index 922426f..be81576 100644
--- a/gdb/testsuite/gdb.python/py-finish-breakpoint2.exp
+++ b/gdb/testsuite/gdb.python/py-finish-breakpoint2.exp
@@ -42,7 +42,7 @@ gdb_breakpoint [gdb_get_line_number "Break after exception 2"]
gdb_test "source $pyfile" ".*Python script imported.*" \
"import python scripts"
-
+
gdb_breakpoint "throw_exception_1"
#
diff --git a/gdb/testsuite/gdb.python/py-format-address.exp b/gdb/testsuite/gdb.python/py-format-address.exp
index 173297c..2946314 100644
--- a/gdb/testsuite/gdb.python/py-format-address.exp
+++ b/gdb/testsuite/gdb.python/py-format-address.exp
@@ -27,12 +27,14 @@ foreach func_name { foo bar } {
}
}
-set binary_foo [standard_output_file "${testfile}-foo"]
-set binary_bar [standard_output_file "${testfile}-bar"]
+set testfile_foo $testfile-foo
+set testfile_bar $testfile-bar
+set binary_foo [standard_output_file $testfile_foo]
+set binary_bar [standard_output_file $testfile_bar]
-clean_restart $binary_foo
+clean_restart $testfile_foo
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
@@ -51,7 +53,7 @@ gdb_test_multiple "info break 1" "" {
}
}
if { $next_addr == "UNKNOWN" || $next_addr == $main_addr } {
- set next_addr [format 0x%x [expr $main_addr + 1]]
+ set next_addr [format 0x%x [expr {$main_addr + 1}]]
}
verbose -log "main_addr: $main_addr"
diff --git a/gdb/testsuite/gdb.python/py-format-string.exp b/gdb/testsuite/gdb.python/py-format-string.exp
index 114a606..f34108d 100644
--- a/gdb/testsuite/gdb.python/py-format-string.exp
+++ b/gdb/testsuite/gdb.python/py-format-string.exp
@@ -47,7 +47,8 @@ proc build_inferior {exefile lang} {
proc prepare_gdb {exefile} {
global srcdir subdir srcfile testfile hex
- clean_restart $exefile
+ clean_restart
+ gdb_load $exefile
if {![runto_main]} {
return
@@ -109,7 +110,7 @@ proc get_cut_big_string { max } {
return "\"${whole_big_string}\""
}
- set cut_string [string range $whole_big_string 0 [expr $max - 1]]
+ set cut_string [string range $whole_big_string 0 [expr {$max - 1}]]
return "\"${cut_string}\"..."
}
@@ -1202,7 +1203,9 @@ with_test_prefix "format_string" {
set current_lang "c"
prepare_gdb "${binfile}"
test_all_common
- test_styling
+ if { ![is_remote host] } {
+ test_styling
+ }
}
}
}
diff --git a/gdb/testsuite/gdb.python/py-frame-args.exp b/gdb/testsuite/gdb.python/py-frame-args.exp
index 1dbd30e..12f1651 100644
--- a/gdb/testsuite/gdb.python/py-frame-args.exp
+++ b/gdb/testsuite/gdb.python/py-frame-args.exp
@@ -21,7 +21,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.python/py-framefilter-addr.exp b/gdb/testsuite/gdb.python/py-framefilter-addr.exp
index 14eebc2..27c1de3 100644
--- a/gdb/testsuite/gdb.python/py-framefilter-addr.exp
+++ b/gdb/testsuite/gdb.python/py-framefilter-addr.exp
@@ -27,7 +27,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.python/py-framefilter-mi.exp b/gdb/testsuite/gdb.python/py-framefilter-mi.exp
index de04236..03e5f90 100644
--- a/gdb/testsuite/gdb.python/py-framefilter-mi.exp
+++ b/gdb/testsuite/gdb.python/py-framefilter-mi.exp
@@ -28,7 +28,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.python/py-inferior.exp b/gdb/testsuite/gdb.python/py-inferior.exp
index 62af1a4..58632f0 100644
--- a/gdb/testsuite/gdb.python/py-inferior.exp
+++ b/gdb/testsuite/gdb.python/py-inferior.exp
@@ -318,7 +318,7 @@ with_test_prefix "large range" {
# For native targets, test a pattern straddling a chunk boundary.
-if [isnative] {
+if {[isnative]} {
with_test_prefix "straddling" {
gdb_test_no_output "set *(int32_t*) &search_buf\[${CHUNK_SIZE}-1\] = 0xfdb97531"
gdb_test_no_output "py pattern = pack('${python_pack_char}I', 0xfdb97531)"
diff --git a/gdb/testsuite/gdb.python/py-label-symbol-value.exp b/gdb/testsuite/gdb.python/py-label-symbol-value.exp
index ca534d4..07bc870 100644
--- a/gdb/testsuite/gdb.python/py-label-symbol-value.exp
+++ b/gdb/testsuite/gdb.python/py-label-symbol-value.exp
@@ -24,7 +24,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.python/py-lazy-string.exp b/gdb/testsuite/gdb.python/py-lazy-string.exp
index 7e7272e..a6fdd77 100644
--- a/gdb/testsuite/gdb.python/py-lazy-string.exp
+++ b/gdb/testsuite/gdb.python/py-lazy-string.exp
@@ -26,7 +26,7 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} {
return -1
}
-if ![runto_main ] {
+if {![runto_main ]} {
return -1
}
diff --git a/gdb/testsuite/gdb.python/py-linetable-empty.exp b/gdb/testsuite/gdb.python/py-linetable-empty.exp
index 1e737e1..f742d70 100644
--- a/gdb/testsuite/gdb.python/py-linetable-empty.exp
+++ b/gdb/testsuite/gdb.python/py-linetable-empty.exp
@@ -27,11 +27,11 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name py-linetable-empty.c}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name py-linetable-empty.c
} {
subprogram {
- {MACRO_AT_func {main}}
+ MACRO_AT_func {main}
}
}
}
@@ -42,7 +42,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} \
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.python/py-linetable.exp b/gdb/testsuite/gdb.python/py-linetable.exp
index d27d16e..453ee7a 100644
--- a/gdb/testsuite/gdb.python/py-linetable.exp
+++ b/gdb/testsuite/gdb.python/py-linetable.exp
@@ -18,7 +18,7 @@ require allow_python_tests
set opts {}
standard_testfile .S
-if [info exists COMPILE] {
+if {[info exists COMPILE]} {
# make check RUNTESTFLAGS="gdb.python/py-linetable.exp COMPILE=1"
standard_testfile
lappend opts debug optimize=-O2
@@ -30,7 +30,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.python/py-mi-events.exp b/gdb/testsuite/gdb.python/py-mi-events.exp
index ecdb74a..a15ba0b 100644
--- a/gdb/testsuite/gdb.python/py-mi-events.exp
+++ b/gdb/testsuite/gdb.python/py-mi-events.exp
@@ -39,7 +39,7 @@ mi_gdb_test "set auto-load safe-path ${remote_python_file}" \
{.*\^done} \
"set safe-path"
-if [is_remote host] {
+if {[is_remote host]} {
set filename ${testfile}
remote_download host ${binfile} ${filename}
} else {
diff --git a/gdb/testsuite/gdb.python/py-mi-objfile.exp b/gdb/testsuite/gdb.python/py-mi-objfile.exp
index 58ecbc5..c1edffe 100644
--- a/gdb/testsuite/gdb.python/py-mi-objfile.exp
+++ b/gdb/testsuite/gdb.python/py-mi-objfile.exp
@@ -33,7 +33,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
# gdb will find it.
set remote_python_file [gdb_remote_download host ${srcdir}/${subdir}/${pyfile}]
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
@@ -41,7 +41,7 @@ mi_gdb_test "set auto-load safe-path ${remote_python_file}" \
{.*\^done} \
"set safe-path"
-if [is_remote host] {
+if {[is_remote host]} {
set filename ${testfile}
remote_download host ${binfile} ${filename}
} else {
diff --git a/gdb/testsuite/gdb.python/py-mi-var-info-path-expression.exp b/gdb/testsuite/gdb.python/py-mi-var-info-path-expression.exp
index 07cd40f..7a9124b 100644
--- a/gdb/testsuite/gdb.python/py-mi-var-info-path-expression.exp
+++ b/gdb/testsuite/gdb.python/py-mi-var-info-path-expression.exp
@@ -29,7 +29,7 @@ if {[gdb_compile "$srcdir/$subdir/$srcfile" $binfile executable {debug}] != "" }
return -1
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
set pyfile [gdb_remote_download host ${srcdir}/${subdir}/${testfile}.py]
mi_gdb_test "source ${pyfile}" \
diff --git a/gdb/testsuite/gdb.python/py-mi.exp b/gdb/testsuite/gdb.python/py-mi.exp
index 7f1dffc..28d63c1 100644
--- a/gdb/testsuite/gdb.python/py-mi.exp
+++ b/gdb/testsuite/gdb.python/py-mi.exp
@@ -26,7 +26,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb
return -1
}
-if {[mi_clean_restart $binfile]} {
+if {[mi_clean_restart $::testfile]} {
return
}
@@ -345,7 +345,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}-cxx" \
return -1
}
-if {[mi_clean_restart ${binfile}-cxx]} {
+if {[mi_clean_restart ${::testfile}-cxx]} {
return
}
diff --git a/gdb/testsuite/gdb.python/py-missing-objfile.exp b/gdb/testsuite/gdb.python/py-missing-objfile.exp
index 29bc555..ce4dc76 100644
--- a/gdb/testsuite/gdb.python/py-missing-objfile.exp
+++ b/gdb/testsuite/gdb.python/py-missing-objfile.exp
@@ -134,7 +134,7 @@ proc clean_restart_load_python {} {
# For sanity, lets check that we can load the specify the executable
# and then load the core-file the easy way.
with_test_prefix "initial sanity check" {
- clean_restart $binfile
+ clean_restart $::testfile
load_core_file
check_loaded_debug true true
}
diff --git a/gdb/testsuite/gdb.python/py-objfile-script.exp b/gdb/testsuite/gdb.python/py-objfile-script.exp
index 1a3d394..4e6f5b6 100644
--- a/gdb/testsuite/gdb.python/py-objfile-script.exp
+++ b/gdb/testsuite/gdb.python/py-objfile-script.exp
@@ -41,7 +41,7 @@ gdb_load ${binfile}
# Verify gdb loaded the script.
gdb_test "info auto-load python-scripts" "Yes.*${testfile}-gdb.py.*"
-if ![runto_main] {
+if {![runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.python/py-objfile.exp b/gdb/testsuite/gdb.python/py-objfile.exp
index 8d11028..ce4e37a 100644
--- a/gdb/testsuite/gdb.python/py-objfile.exp
+++ b/gdb/testsuite/gdb.python/py-objfile.exp
@@ -68,7 +68,7 @@ gdb_test "python print (gdb.lookup_objfile (\"${testfile}\").lookup_static_symbo
"None" "lookup_static_symbol can handle nonexistent symbol"
set binfile_build_id [get_build_id $binfile]
-if [string compare $binfile_build_id ""] {
+if {[string compare $binfile_build_id ""]} {
verbose -log "binfile_build_id = $binfile_build_id"
gdb_test "python print (objfile.build_id)" "$binfile_build_id" \
"Get objfile build id"
@@ -119,7 +119,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile}2 ${srcfile} {nodebug l
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return 0
}
@@ -158,12 +158,13 @@ if { [get_python_valueof "sep_objfile.build_id" "None"] != "None" } {
# An objfile that was a symlink to a differently named file is still
# findable with its original name.
# On Windows we don't have proper symlinks, so skip this.
-if ![ishost *-*-mingw*] {
+if {![ishost *-*-mingw*]} {
set symlink_binary [standard_output_file "symlink-binary"]
remote_exec host "rm -f ${symlink_binary}"
remote_exec host "ln -sf ${testfile} ${symlink_binary}"
- if [remote_file host exists "${symlink_binary}"] {
- clean_restart "${symlink_binary}"
+ if {[remote_file host exists "${symlink_binary}"]} {
+ clean_restart
+ gdb_load "${symlink_binary}"
gdb_test "python print (gdb.lookup_objfile (\"${symlink_binary}\").filename)" \
"${testfile}" "gdb.lookup_objfile of symlinked binary"
}
diff --git a/gdb/testsuite/gdb.python/py-parameter.exp b/gdb/testsuite/gdb.python/py-parameter.exp
index 214c570..1d7f22b 100644
--- a/gdb/testsuite/gdb.python/py-parameter.exp
+++ b/gdb/testsuite/gdb.python/py-parameter.exp
@@ -24,7 +24,7 @@ require allow_python_tests
clean_restart
proc py_param_test_maybe_no_output { command pattern args } {
- if [string length $pattern] {
+ if {[string length $pattern]} {
gdb_test $command $pattern $args
} else {
gdb_test_no_output $command $args
@@ -38,13 +38,17 @@ proc_with_prefix test_directories { } {
# doesn't set search directories on remote host.
set directories ".*\\\$cdir.\\\$cwd"
} else {
- set escaped_directory [string_to_regexp "$::srcdir/$::subdir"]
+ set directory [host_file_normalize "$::srcdir/$::subdir"]
+ set escaped_directory [string_to_regexp $directory]
set directories "$escaped_directory.\\\$cdir.\\\$cwd"
}
gdb_test "python print (gdb.parameter ('directories'))" $directories
}
proc_with_prefix test_data_directory { } {
+ # Proc assumes local host.
+ require {!is_remote host}
+
clean_restart
# Check we can correctly read the data-directory parameter. First,
@@ -187,6 +191,8 @@ proc_with_prefix test_enum_parameter { } {
# Test an color parameter.
proc_with_prefix test_color_parameter { } {
+ require {!is_remote host}
+
global env
with_ansi_styling_terminal {
# This enables 256 colors support and disables colors approximation.
diff --git a/gdb/testsuite/gdb.python/py-pp-cast.exp b/gdb/testsuite/gdb.python/py-pp-cast.exp
index 7e20756..917547c 100644
--- a/gdb/testsuite/gdb.python/py-pp-cast.exp
+++ b/gdb/testsuite/gdb.python/py-pp-cast.exp
@@ -25,7 +25,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return -1
}
-if ![runto break_function] {
+if {![runto break_function]} {
return -1
}
diff --git a/gdb/testsuite/gdb.python/py-pp-integral.exp b/gdb/testsuite/gdb.python/py-pp-integral.exp
index 8111d75..45645f9 100644
--- a/gdb/testsuite/gdb.python/py-pp-integral.exp
+++ b/gdb/testsuite/gdb.python/py-pp-integral.exp
@@ -21,7 +21,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return -1
}
-if ![runto tick_tock] {
+if {![runto tick_tock]} {
return -1
}
diff --git a/gdb/testsuite/gdb.python/py-pp-maint.exp b/gdb/testsuite/gdb.python/py-pp-maint.exp
index 74d8e76..bd26b91 100644
--- a/gdb/testsuite/gdb.python/py-pp-maint.exp
+++ b/gdb/testsuite/gdb.python/py-pp-maint.exp
@@ -72,10 +72,10 @@ gdb_test "enable pretty-printer" \
"second enable of all pretty printers"
gdb_test "disable pretty-printer global lookup_function_lookup_test" \
- "1 printer disabled.*[expr $num_pp - 1] of $num_pp printers enabled"
+ "1 printer disabled.*[expr {$num_pp - 1}] of $num_pp printers enabled"
gdb_test "disable pretty-printer global pp-test;.*" \
- "[expr 5] printers disabled.*0 of $num_pp printers enabled"
+ "[expr {$num_pp - 1}] printers disabled.*0 of $num_pp printers enabled"
gdb_test "info pretty-printer global .*function" \
{.*function_lookup_test \[disabled\].*} \
@@ -101,10 +101,10 @@ gdb_test "enable pretty-printer global pp-test" \
"0 printers enabled.*1 of $num_pp printers enabled"
gdb_test "enable pretty-printer global pp-test;.*ss.*" \
- "2 printers enabled.*[expr $num_pp - 3] of $num_pp printers enabled"
+ "2 printers enabled.*[expr {$num_pp - 3}] of $num_pp printers enabled"
gdb_test "enable pretty-printer global pp-test;.*s.*" \
- "2 printers enabled.*[expr $num_pp - 1] of $num_pp printers enabled"
+ "2 printers enabled.*[expr {$num_pp - 1}] of $num_pp printers enabled"
gdb_test "enable pretty-printer global pp-test;.*" \
"1 printer enabled.*$num_pp of $num_pp printers enabled"
diff --git a/gdb/testsuite/gdb.python/py-pp-re-notag.exp b/gdb/testsuite/gdb.python/py-pp-re-notag.exp
index 8111d75..45645f9 100644
--- a/gdb/testsuite/gdb.python/py-pp-re-notag.exp
+++ b/gdb/testsuite/gdb.python/py-pp-re-notag.exp
@@ -21,7 +21,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return -1
}
-if ![runto tick_tock] {
+if {![runto tick_tock]} {
return -1
}
diff --git a/gdb/testsuite/gdb.python/py-pp-registration.exp b/gdb/testsuite/gdb.python/py-pp-registration.exp
index c5e7f9a..d0d1fda 100644
--- a/gdb/testsuite/gdb.python/py-pp-registration.exp
+++ b/gdb/testsuite/gdb.python/py-pp-registration.exp
@@ -29,7 +29,7 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug]} {
set remote_python_file [gdb_remote_download host \
${srcdir}/${subdir}/${testfile}.py]
-if ![runto_main ] {
+if {![runto_main ]} {
return -1
}
@@ -40,7 +40,7 @@ proc prepare_test { } {
clean_restart ${testfile}
set run_to_here [gdb_get_line_number {break to inspect} ${testfile}.c ]
- if ![runto ${testfile}.c:$run_to_here] {
+ if {![runto ${testfile}.c:$run_to_here]} {
return 0
}
@@ -63,7 +63,7 @@ proc test_printers { s_prefix } {
# Test registration with verbose off.
with_test_prefix "verbose off" {
- if ![prepare_test] {
+ if {![prepare_test]} {
return -1
}
@@ -78,7 +78,7 @@ with_test_prefix "verbose off" {
# Test registration with verbose on.
with_test_prefix "verbose on" {
- if ![prepare_test] {
+ if {![prepare_test]} {
return -1
}
@@ -95,7 +95,7 @@ with_test_prefix "verbose on" {
# Exercise the "replace" argument to register_pretty_printer.
with_test_prefix "replace" {
- if ![prepare_test] {
+ if {![prepare_test]} {
return -1
}
diff --git a/gdb/testsuite/gdb.python/py-prettyprint.exp b/gdb/testsuite/gdb.python/py-prettyprint.exp
index 0b5ca9a..be2cecd 100644
--- a/gdb/testsuite/gdb.python/py-prettyprint.exp
+++ b/gdb/testsuite/gdb.python/py-prettyprint.exp
@@ -36,7 +36,8 @@ proc run_lang_tests {exefile lang} {
set nl "\[\r\n\]+"
# Start with a fresh gdb.
- clean_restart $exefile
+ clean_restart
+ gdb_load $exefile
if {![runto_main]} {
return
@@ -52,11 +53,11 @@ proc run_lang_tests {exefile lang} {
${srcdir}/${subdir}/${testfile}.py]
gdb_test_no_output "source ${remote_python_file}" "load python file"
-
+
gdb_test "print ss" " = a=< a=<1> b=<$hex>> b=< a=<2> b=<$hex>>"
gdb_test "print ssa\[1\]" " = a=< a=<5> b=<$hex>> b=< a=<6> b=<$hex>>"
gdb_test "print ssa" " = {a=< a=<3> b=<$hex>> b=< a=<4> b=<$hex>>, a=< a=<5> b=<$hex>> b=< a=<6> b=<$hex>>}"
-
+
gdb_test "print arraystruct" " = {$nl *y = 7, *$nl *x = { a=<23> b=<$hex>, a=<24> b=<$hex>} *$nl *}"
# Test that when a pretty-printer returns a gdb.Value in its to_string, we
@@ -192,7 +193,7 @@ with_test_prefix c++ {
# Run various other tests.
-clean_restart $binfile
+clean_restart $::testfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.python/py-progspace.exp b/gdb/testsuite/gdb.python/py-progspace.exp
index 1d271d4..822c079 100644
--- a/gdb/testsuite/gdb.python/py-progspace.exp
+++ b/gdb/testsuite/gdb.python/py-progspace.exp
@@ -76,7 +76,7 @@ gdb_test "python print (blk.end >= ${pc_val})" "True" \
"block end is after \$pc"
# Check what happens when we ask for a block of an invalid address.
-if ![is_address_zero_readable] {
+if {![is_address_zero_readable]} {
gdb_test "python print (gdb.current_progspace ().block_for_pc (0))" "None"
}
diff --git a/gdb/testsuite/gdb.python/py-read-memory-leak.exp b/gdb/testsuite/gdb.python/py-read-memory-leak.exp
index 9ae5eb8..0b663d7 100644
--- a/gdb/testsuite/gdb.python/py-read-memory-leak.exp
+++ b/gdb/testsuite/gdb.python/py-read-memory-leak.exp
@@ -26,7 +26,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.python/py-record-btrace.exp b/gdb/testsuite/gdb.python/py-record-btrace.exp
index aff7c6c..6dd3ae1 100644
--- a/gdb/testsuite/gdb.python/py-record-btrace.exp
+++ b/gdb/testsuite/gdb.python/py-record-btrace.exp
@@ -23,7 +23,7 @@ load_lib gdb-python.exp
standard_testfile
-if [prepare_for_testing "failed to prepare" $testfile $srcfile] { return -1 }
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile]} { return -1 }
if {![runto_main]} {
return -1
diff --git a/gdb/testsuite/gdb.python/py-record-full.exp b/gdb/testsuite/gdb.python/py-record-full.exp
index 97d21ce..790e5b3 100644
--- a/gdb/testsuite/gdb.python/py-record-full.exp
+++ b/gdb/testsuite/gdb.python/py-record-full.exp
@@ -23,7 +23,7 @@ load_lib gdb-python.exp
standard_testfile
-if [prepare_for_testing "failed to prepare" $testfile $srcfile] { return -1 }
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile]} { return -1 }
if {![runto_main]} {
return -1
diff --git a/gdb/testsuite/gdb.python/py-section-script.exp b/gdb/testsuite/gdb.python/py-section-script.exp
index cc4425c..9d4e48c 100644
--- a/gdb/testsuite/gdb.python/py-section-script.exp
+++ b/gdb/testsuite/gdb.python/py-section-script.exp
@@ -71,13 +71,13 @@ clean_restart
# Get the name of the binfile on the host; on a remote host this means
# stripping off any directory prefix.
-if [is_remote host] {
+if {[is_remote host]} {
set remote_binfile [file tail ${binfile}]
} else {
set remote_binfile ${binfile}
}
-if [ishost *-*-mingw*] {
+if {[ishost *-*-mingw*]} {
set remote_pathsep ";"
} else {
set remote_pathsep ":"
@@ -107,7 +107,7 @@ gdb_test "info auto-load python-scripts ${testfile}" "Yes.*${testfile}.py.*"
gdb_test "info auto-load python-scripts no-script-matches-this" \
"No auto-load scripts matching no-script-matches-this."
-if ![runto_main] {
+if {![runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.python/py-source-styling.exp b/gdb/testsuite/gdb.python/py-source-styling.exp
index 308053c..e030768 100644
--- a/gdb/testsuite/gdb.python/py-source-styling.exp
+++ b/gdb/testsuite/gdb.python/py-source-styling.exp
@@ -62,7 +62,7 @@ proc check_source_listing_styling { cmd expect_styled { testname "" } } {
# highlighting when GNU source highlight is not available (or is
# disabled, as is done in this test).
proc test_pygments_styling {} {
- clean_restart $::binfile
+ clean_restart $::testfile
# Remote host boards disable styling via GDB's command line. Turn
# it back on now.
@@ -75,7 +75,7 @@ proc test_pygments_styling {} {
return
}
- if ![runto_main] {
+ if {![runto_main]} {
return
}
@@ -91,7 +91,7 @@ proc test_pygments_styling {} {
# string, then set the correct host encoding, and try again. This
# time the conversion should succeed.
proc test_gdb_execute_non_utf8_source {} {
- clean_restart $::binfile
+ clean_restart $::testfile
# The default host charset is utf-8, the source code contains a
# non-utf-8 character, so this will fail.
@@ -117,7 +117,7 @@ proc test_gdb_execute_non_utf8_source {} {
# output to be returned via a string, and in other cases we ask for
# the output to be sent straight to stdout.
proc_with_prefix test_source_cache_style_tracking {} {
- clean_restart $::binfile
+ clean_restart $::testfile
# Remote host boards disable styling via GDB's command line. Turn
# it back on now.
diff --git a/gdb/testsuite/gdb.python/py-startup-opt.exp b/gdb/testsuite/gdb.python/py-startup-opt.exp
index 7410706..929c64d 100644
--- a/gdb/testsuite/gdb.python/py-startup-opt.exp
+++ b/gdb/testsuite/gdb.python/py-startup-opt.exp
@@ -17,6 +17,7 @@
# initialized.
require allow_python_tests
+require {!is_remote host}
# Return a list containing two directory paths for newly created home
# directories.
diff --git a/gdb/testsuite/gdb.python/py-strfns.exp b/gdb/testsuite/gdb.python/py-strfns.exp
index 2b5dff19..13b8d2e 100644
--- a/gdb/testsuite/gdb.python/py-strfns.exp
+++ b/gdb/testsuite/gdb.python/py-strfns.exp
@@ -26,7 +26,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return 0
}
diff --git a/gdb/testsuite/gdb.python/py-styled-execute.exp b/gdb/testsuite/gdb.python/py-styled-execute.exp
index 0b27c63..198dab5 100644
--- a/gdb/testsuite/gdb.python/py-styled-execute.exp
+++ b/gdb/testsuite/gdb.python/py-styled-execute.exp
@@ -17,6 +17,7 @@
# on the value of the third argument passed to gdb.execute.
require allow_python_tests
+require {!is_remote host}
load_lib gdb-python.exp
diff --git a/gdb/testsuite/gdb.python/py-sym-artificial.exp b/gdb/testsuite/gdb.python/py-sym-artificial.exp
index e26e9d2..831ebd2 100644
--- a/gdb/testsuite/gdb.python/py-sym-artificial.exp
+++ b/gdb/testsuite/gdb.python/py-sym-artificial.exp
@@ -27,21 +27,21 @@ set asm_file [standard_output_file ${srcfile2}]
Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name py-sym-artificial.c}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name py-sym-artificial.c
} {
declare_labels signed
signed: DW_TAG_base_type {
- {DW_AT_byte_size 1 DW_FORM_sdata}
- {DW_AT_encoding @DW_ATE_signed}
- {DW_AT_name bool}
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_name bool
}
DW_TAG_variable {
- {name the_variable}
- {DW_AT_type :$signed}
- {artificial 1 DW_FORM_flag_present}
+ DW_AT_name the_variable
+ DW_AT_type :$signed
+ DW_AT_artificial 1 DW_FORM_flag_present
}
}
}
diff --git a/gdb/testsuite/gdb.python/py-symbol.exp b/gdb/testsuite/gdb.python/py-symbol.exp
index dfc435e..2029c28 100644
--- a/gdb/testsuite/gdb.python/py-symbol.exp
+++ b/gdb/testsuite/gdb.python/py-symbol.exp
@@ -44,7 +44,7 @@ if {!$readnow_p} {
}
# Restart so we don't have expanded symtabs after the previous test.
-clean_restart ${binfile}
+clean_restart ${::testfile}
# Test looking up a global symbol before we runto_main as this is the
# point where we don't have a current frame, and we don't want to
@@ -214,8 +214,10 @@ gdb_test "python print (t\[0\].symtab)" "${py_symbol_c}" "get symtab"
# C++ tests
# Recompile binary.
lappend opts c++
-if {[prepare_for_testing "failed to prepare" "${binfile}-cxx" \
- [list $srcfile $srcfile2] $opts]} {
+set testfile $testfile-cxx
+set binfile [standard_output_file $testfile]
+if { [prepare_for_testing "failed to prepare" $testfile \
+ [list $srcfile $srcfile2] $opts] } {
return -1
}
@@ -251,7 +253,7 @@ gdb_test "python print (cplusfunc.addr_class == gdb.SYMBOL_LOC_BLOCK)" "True" "t
# Test is_valid when the objfile is unloaded. This must be the last
# test as it unloads the object file in GDB.
# Start with a fresh gdb.
-clean_restart ${binfile}
+clean_restart ${::testfile}
if {![runto_main]} {
return 0
}
diff --git a/gdb/testsuite/gdb.python/py-thread-exited.exp b/gdb/testsuite/gdb.python/py-thread-exited.exp
index dcacb11..0f47ce0 100644
--- a/gdb/testsuite/gdb.python/py-thread-exited.exp
+++ b/gdb/testsuite/gdb.python/py-thread-exited.exp
@@ -32,7 +32,7 @@ gdb_test_no_output "source ${pyfile}" "load python file"
gdb_test "test-events" "Event testers registered."
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.python/py-thread-exited.py b/gdb/testsuite/gdb.python/py-thread-exited.py
index ef5a244..f725bd5 100644
--- a/gdb/testsuite/gdb.python/py-thread-exited.py
+++ b/gdb/testsuite/gdb.python/py-thread-exited.py
@@ -26,6 +26,8 @@ def thread_exited_handler(event):
global threadOneExit, threadTwoExit, mainThreadExit
print("{}".format(event))
assert isinstance(event, gdb.ThreadExitedEvent)
+ # Also check the inheritance.
+ assert isinstance(event, gdb.ThreadEvent)
if threadOneExit == "":
threadOneExit = "event type: thread-exited. global num: {}".format(
event.inferior_thread.global_num
diff --git a/gdb/testsuite/gdb.python/py-thrhandle.exp b/gdb/testsuite/gdb.python/py-thrhandle.exp
index 343bf4b..a959044 100644
--- a/gdb/testsuite/gdb.python/py-thrhandle.exp
+++ b/gdb/testsuite/gdb.python/py-thrhandle.exp
@@ -29,7 +29,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
runto_main
diff --git a/gdb/testsuite/gdb.python/py-type.exp b/gdb/testsuite/gdb.python/py-type.exp
index 0bc4556..c32a5bd 100644
--- a/gdb/testsuite/gdb.python/py-type.exp
+++ b/gdb/testsuite/gdb.python/py-type.exp
@@ -33,8 +33,9 @@ proc build_inferior {exefile lang} {
}
# Restart GDB.
-proc restart_gdb {exefile} {
- clean_restart $exefile
+proc restart_gdb {exefile} {
+ clean_restart
+ gdb_load $exefile
if {![runto_main]} {
return
@@ -134,7 +135,7 @@ proc test_fields {lang} {
# Test conversion to bool on scalar types
gdb_test "python print (not not st.type\['a'\].type)" "True"
-
+
# Test regression PR python/10805
gdb_py_test_silent_cmd "print (ar)" "print value(ar)" 1
gdb_py_test_silent_cmd "python ar = gdb.history (0)" "get value (ar) from history" 1
@@ -253,9 +254,9 @@ proc test_template {} {
|| [test_compiler_info {gcc-4-[0-4]-*}]} {
set have_older_gcc 1
}
- if $have_older_gcc { setup_xfail *-*-* }
+ if {$have_older_gcc} { setup_xfail *-*-* }
gdb_test "python print (ttype.template_argument(1))" "23"
- if $have_older_gcc { setup_xfail *-*-* }
+ if {$have_older_gcc} { setup_xfail *-*-* }
gdb_test "python print (isinstance(ttype.template_argument(1), gdb.Value))" \
"True"
diff --git a/gdb/testsuite/gdb.python/py-value-cc.exp b/gdb/testsuite/gdb.python/py-value-cc.exp
index 3d371bc..6d261fb 100644
--- a/gdb/testsuite/gdb.python/py-value-cc.exp
+++ b/gdb/testsuite/gdb.python/py-value-cc.exp
@@ -24,7 +24,7 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.python/py-value.c b/gdb/testsuite/gdb.python/py-value.c
index a822346..f6dbf55 100644
--- a/gdb/testsuite/gdb.python/py-value.c
+++ b/gdb/testsuite/gdb.python/py-value.c
@@ -19,6 +19,14 @@
#include <stdlib.h>
#include <string.h>
+int long_array[] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49
+};
+
struct s
{
int a;
@@ -60,6 +68,7 @@ struct Derived : public Base {
Base *base = new Derived ();
Derived derived;
Base &base_ref = derived;
+struct str pod;
void ptr_ref(int*& rptr_int)
{
diff --git a/gdb/testsuite/gdb.python/py-value.exp b/gdb/testsuite/gdb.python/py-value.exp
index 93985a9..087c8c2 100644
--- a/gdb/testsuite/gdb.python/py-value.exp
+++ b/gdb/testsuite/gdb.python/py-value.exp
@@ -297,9 +297,9 @@ proc test_value_in_inferior {} {
gdb_test "print argc" " = $argc_value" "sanity check argc"
gdb_test "python print (argc_lazy.is_lazy)" "\r\nTrue" \
"python print (argc_lazy.is_lazy) the second time"
- gdb_test_no_output "set argc=[expr $argc_value + 1]" "change argc"
+ gdb_test_no_output "set argc=[expr {$argc_value + 1}]" "change argc"
gdb_test "python print (argc_notlazy)" "\r\n$argc_value"
- gdb_test "python print (argc_lazy)" "\r\n[expr $argc_value + 1]"
+ gdb_test "python print (argc_lazy)" "\r\n[expr {$argc_value + 1}]"
gdb_test "python print (argc_lazy.is_lazy)" "False"
# Test string fetches, both partial and whole.
@@ -431,7 +431,8 @@ proc test_value_after_death {} {
proc test_subscript_regression {exefile lang} {
# Start with a fresh gdb.
- clean_restart ${exefile}
+ clean_restart
+ gdb_load $exefile
if {![runto_main]} {
return
@@ -457,6 +458,8 @@ proc test_subscript_regression {exefile lang} {
"Derived \[*\]"
gdb_test "python print (gdb.parse_and_eval('base_ref').dynamic_type)" \
"Derived \[&\]"
+ gdb_test "python print (gdb.parse_and_eval('pod').dynamic_type)" \
+ "str"
# A static type case.
gdb_test "python print (gdb.parse_and_eval('5').dynamic_type)" \
"int"
@@ -595,7 +598,7 @@ proc test_value_from_buffer {} {
gdb_py_test_silent_cmd "python atpbig=tp.array(3)" "make bigger array type" 0
gdb_test "python vabig=gdb.Value(b,atpbig)" \
"ValueError.*: Size of type is larger than that of buffer object\..*" \
- "attempt to construct large value with small buffer"
+ "attempt to construct large value with small buffer"
gdb_test "python v=gdb.Value(2048,tp)" \
"TypeError.*: Object must support the python buffer protocol\..*" \
"attempt to construct value from buffer with non-buffer object"
@@ -680,6 +683,7 @@ proc_with_prefix test_value_bytes { } {
"python" "" \
"def check_value_bytes(var_name):" "" \
" val = gdb.parse_and_eval(var_name)" "" \
+ " assert not val.is_unavailable" "" \
" addr = val.address" "" \
" len = val.type.sizeof" "" \
" mem = gdb.selected_inferior().read_memory(addr, len)" "" \
@@ -762,13 +766,45 @@ proc test_assign {} {
"cannot assign to integer"
}
+# Test Value.is_unavailable
+proc test_unavailable {} {
+ set elem_size [get_valueof "/d" "sizeof(long_array\[0\])" "UNKNOWN" \
+ "get size of long_array element"]
+ set max [expr {$elem_size * 10}]
+
+ with_set "print elements" 5 {
+ with_max_value_size $max {
+ gdb_test "p long_array"
+
+ gdb_test_no_output "set print elements 15"
+
+ gdb_test_no_output "python v = gdb.history(0)"
+
+ gdb_test "python print(v.is_unavailable)" "^True" \
+ "overall object shows as unavailable"
+ for { set i 0 } { $i < 10 } { incr i } {
+ gdb_test "python print(v\[$i\].is_unavailable)" "^False" \
+ "array element $i is available"
+ gdb_test "python print(v\[$i\])" "^$i" \
+ "array element $i has correct value"
+ }
+ for { set i 10 } { $i < 15 } { incr i } {
+ gdb_test "python print(v\[$i\].is_unavailable)" "^True" \
+ "array element $i is unavailable"
+ gdb_test "python print(v\[$i\])" "^<unavailable>" \
+ "array element $i shows as unavailable"
+ }
+ }
+ }
+}
+
# Build C version of executable. C++ is built later.
if { [build_inferior "${binfile}" "c"] < 0 } {
return -1
}
# Start with a fresh gdb.
-clean_restart ${binfile}
+clean_restart ${::testfile}
test_history_count
test_value_creation
@@ -788,6 +824,7 @@ if {![runto_main]} {
return 0
}
+test_unavailable
test_value_in_inferior
test_value_from_buffer
test_value_sub_classes
@@ -797,7 +834,7 @@ test_assign
test_value_bytes
test_value_after_death
-# Test either C or C++ values.
+# Test either C or C++ values.
test_subscript_regression "${binfile}" "c"
@@ -809,3 +846,15 @@ if {[allow_cplus_tests]} {
test_subscript_regression "${binfile}-cxx" "c++"
}
}
+
+if {[allow_rust_tests]} {
+ gdb_test "set lang rust"
+
+ set cst 0x80000000000000000000000000000000
+ gdb_test "python print(int(gdb.parse_and_eval('${cst}u128')))" \
+ "170141183460469231731687303715884105728" \
+ "convert 128 bit unsigned constant to python int"
+ gdb_test "python print(int(gdb.parse_and_eval('${cst}i128')))" \
+ "-170141183460469231731687303715884105728" \
+ "convert 128 bit signed constant to python int"
+}
diff --git a/gdb/testsuite/gdb.python/py-varobj.exp b/gdb/testsuite/gdb.python/py-varobj.exp
index 7fb45f9..cf6a662 100644
--- a/gdb/testsuite/gdb.python/py-varobj.exp
+++ b/gdb/testsuite/gdb.python/py-varobj.exp
@@ -25,7 +25,7 @@ if {[gdb_compile "$srcdir/$subdir/$srcfile" $binfile executable {debug}] != ""}
return -1
}
-mi_clean_restart $binfile
+mi_clean_restart $::testfile
set pyfile [gdb_remote_download host ${srcdir}/${subdir}/${testfile}.py]
mi_gdb_test "source ${pyfile}" \
diff --git a/gdb/testsuite/gdb.python/py-xmethods.exp b/gdb/testsuite/gdb.python/py-xmethods.exp
index 3dafe0e..5863ec5 100644
--- a/gdb/testsuite/gdb.python/py-xmethods.exp
+++ b/gdb/testsuite/gdb.python/py-xmethods.exp
@@ -26,7 +26,7 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.python/python.exp b/gdb/testsuite/gdb.python/python.exp
index 96977df..020fc66 100644
--- a/gdb/testsuite/gdb.python/python.exp
+++ b/gdb/testsuite/gdb.python/python.exp
@@ -158,7 +158,7 @@ gdb_test_multiple "python print (\"\\n\" * $lines)" $test {
}
gdb_test "q" "Quit.*" "verify pagination beforehand: q"
-gdb_test "python if gdb.execute('python print (\"\\\\n\" * $lines)', to_string=True) == \"\\n\" * [expr $lines + 1]: print (\"yes\")" "yes" "gdb.execute does not page"
+gdb_test "python if gdb.execute('python print (\"\\\\n\" * $lines)', to_string=True) == \"\\n\" * [expr {$lines + 1}]: print (\"yes\")" "yes" "gdb.execute does not page"
set test "verify pagination afterwards"
gdb_test_multiple "python print (\"\\n\" * $lines)" $test {
@@ -288,7 +288,7 @@ gdb_test "python gdb.write(\"Foo\\n\")" "Foo" "test default write"
gdb_test "python gdb.write(\"Error stream\\n\", stream=gdb.STDERR)" "Error stream" "test stderr write"
gdb_test "python gdb.write(\"Normal stream\\n\", stream=gdb.STDOUT)" "Normal stream" "test stdout write"
-if ![gdb_debug_enabled] {
+if {![gdb_debug_enabled]} {
gdb_test "python gdb.write(\"Log stream\\n\", stream=gdb.STDLOG)" "Log stream" "test stdlog write"
}
diff --git a/gdb/testsuite/gdb.replay/connect.exp b/gdb/testsuite/gdb.replay/connect.exp
index 26b7aa3..b25c372 100644
--- a/gdb/testsuite/gdb.replay/connect.exp
+++ b/gdb/testsuite/gdb.replay/connect.exp
@@ -70,9 +70,8 @@ proc_with_prefix record_initial_logfile {} {
# Connect to gdbreply using the global REMOTELOG. Runs to a breakpoint
# in main.
proc_with_prefix replay_without_error {} {
- global binfile
global remotelog
- clean_restart $binfile
+ clean_restart $::testfile
# Make sure we're disconnected, in case we're testing with an
# extended-remote board, therefore already connected.
gdb_test "disconnect" ".*"
@@ -97,7 +96,6 @@ proc_with_prefix replay_without_error {} {
# copy of REMOTELOG. Attempt to connect to the remote and expect to see
# the error reported by GDB.
proc_with_prefix replay_with_mustreplyempty_error {} {
- global binfile
global remotelog
global testfile
set newline E.errtext
@@ -107,7 +105,7 @@ proc_with_prefix replay_with_mustreplyempty_error {} {
# the vMustReplayEmty packet to an error.
update_log $remotelog $output_file "vMustReplyEmpty" $newline
- clean_restart $binfile
+ clean_restart $::testfile
# Make sure we're disconnected, in case we're testing with an
# extended-remote board, therefore already connected.
gdb_test "disconnect" ".*"
diff --git a/gdb/testsuite/gdb.replay/missing-thread.c b/gdb/testsuite/gdb.replay/missing-thread.c
new file mode 100644
index 0000000..8edb240
--- /dev/null
+++ b/gdb/testsuite/gdb.replay/missing-thread.c
@@ -0,0 +1,61 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+#include <pthread.h>
+#include <assert.h>
+#include <signal.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <stdbool.h>
+
+pthread_mutex_t g_mutex = PTHREAD_MUTEX_INITIALIZER;
+pthread_cond_t g_condvar = PTHREAD_COND_INITIALIZER;
+
+void *
+worker_function (void *arg)
+{
+ printf ("In worker, about to notify\n");
+ pthread_cond_signal (&g_condvar);
+
+ while (true)
+ sleep(1);
+
+ return NULL;
+}
+
+int
+main()
+{
+ pthread_t my_thread;
+
+ int result = pthread_create (&my_thread, NULL, worker_function, NULL);
+ assert (result == 0);
+
+ pthread_mutex_lock (&g_mutex);
+ pthread_cond_wait (&g_condvar, &g_mutex);
+
+ printf ("In main, have been woken.\n");
+ pthread_mutex_unlock (&g_mutex);
+
+ result = pthread_kill (my_thread, SIGTRAP);
+ assert (result == 0);
+
+ result = pthread_join (my_thread, NULL);
+ assert (result == 0);
+
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.replay/missing-thread.exp b/gdb/testsuite/gdb.replay/missing-thread.exp
new file mode 100644
index 0000000..6ee2e4c
--- /dev/null
+++ b/gdb/testsuite/gdb.replay/missing-thread.exp
@@ -0,0 +1,237 @@
+# Copyright 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+# This test confirms how GDB handles a badly behaving remote target. The
+# remote target reports a stop event (signal delivery), then, as GDB is
+# processing the stop it syncs the thread list with the remote.
+#
+# The badly behaving remote target was dropping the signaled thread from the
+# thread list at this point, that is, the thread appeared to exit before an
+# exit event had been sent to (and seen by) GDB.
+#
+# At one point this was causing an assertion failed. GDB would try to
+# process the signal stop event, and to do this would try to read some
+# registers. Reading registers requires a regcache, and GDB will only
+# create a regcache for a non-exited thread.
+
+load_lib gdbserver-support.exp
+load_lib gdbreplay-support.exp
+
+require allow_gdbserver_tests
+require has_gdbreplay
+
+standard_testfile
+
+if { [build_executable "failed to build exec" $testfile $srcfile {debug pthreads}] } {
+ return -1
+}
+
+# Start the inferior and record a remote log for our interaction with it.
+# All we do is start the inferior and wait for thread 2 to receive a signal.
+# Check that GDB correctly shows the signal as received. LOG_FILENAME is
+# where we should write the remote log.
+proc_with_prefix record_initial_logfile { log_filename } {
+ clean_restart $::testfile
+
+ # Make sure we're disconnected, in case we're testing with an
+ # extended-remote board, therefore already connected.
+ gdb_test "disconnect" ".*"
+
+ gdb_test_no_output "set sysroot" \
+ "setting sysroot before starting gdbserver"
+
+ # Start gdbserver like:
+ # gdbserver :PORT ....
+ set res [gdbserver_start "" $::binfile]
+ set gdbserver_protocol [lindex $res 0]
+ set gdbserver_gdbport [lindex $res 1]
+
+ gdb_test_no_output "set remotelogfile $log_filename" \
+ "setup remotelogfile"
+
+ # Connect to gdbserver.
+ if {![gdb_target_cmd $gdbserver_protocol $gdbserver_gdbport] == 0} {
+ unsupported "$testfile (couldn't start gdbserver)"
+ return
+ }
+
+ gdb_breakpoint main
+ gdb_continue_to_breakpoint "continuing to main"
+
+ gdb_test "continue" \
+ "Thread $::decimal \[^\r\n\]+ received signal SIGTRAP, .*"
+
+ gdb_test "disconnect" ".*" \
+ "disconnect after seeing signal"
+}
+
+# Copy the remote log from IN_FILENAME to OUT_FILENAME, but modify one
+# particular line.
+#
+# The line to be modified is the last <threads>...</threads> line, this is
+# the reply from the remote that indicates the thread list. It is expected
+# that the thread list will contain two threads.
+#
+# When DROP_BOTH is true then both threads will be removed from the modified
+# line. Otherwise, only the second thread is removed.
+proc update_replay_log { in_filename out_filename drop_both } {
+ # Read IN_FILENAME into a list.
+ set fd [open $in_filename]
+ set data [read $fd]
+ close $fd
+ set lines [split $data "\n"]
+
+ # Find the last line in LINES that contains the <threads> list.
+ set idx -1
+ for { set i 0 } { $i < [llength $lines] } { incr i } {
+ if { [regexp "^r.*<threads>.*</threads>" [lindex $lines $i]] } {
+ set idx $i
+ }
+ }
+
+ # Modify the line by dropping the second thread. This does assume
+ # the thread order as seen in the <threads>...</threads> list, but
+ # this seems stable for now.
+ set line [lindex $lines $idx]
+ set fixed_log false
+ if {[regexp "^(r .*<threads>\\\\n)(<thread id.*/>\\\\n)(<thread id.*/>\\\\n)(</threads>.*)$" $line \
+ match part1 part2 part3 part4]} {
+ if { $drop_both } {
+ set line $part1$part4
+ } else {
+ set line $part1$part2$part4
+ }
+ set lines [lreplace $lines $idx $idx $line]
+ set fixed_log true
+ }
+
+ # Write all the lines to OUT_FILENAME
+ set fd [open $out_filename "w"]
+ foreach l $lines {
+ puts $fd $l
+ }
+ close $fd
+
+ # Did we manage to update the log file?
+ return $fixed_log
+}
+
+# Replay the test process using REMOTE_LOG as the logfile to replay. If
+# EXPECT_ERROR is true then after the final 'continue' we expect GDB to give
+# an error as the required thread is missing. When EXPECT_ERROR is false
+# then we expect the test to complete as normal. NON_STOP is eithe 'on' or
+# 'off' and indicates GDBs non-stop mode.
+proc_with_prefix replay_with_log { remote_log expect_error non_stop } {
+ clean_restart $::testfile
+
+ # Make sure we're disconnected, in case we're testing with an
+ # extended-remote board, therefore already connected.
+ gdb_test "disconnect" ".*"
+
+ gdb_test_no_output "set sysroot"
+
+ set res [gdbreplay_start $remote_log]
+ set gdbserver_protocol [lindex $res 0]
+ set gdbserver_gdbport [lindex $res 1]
+
+ # Connect to gdbserver.
+ if {![gdb_target_cmd $gdbserver_protocol $gdbserver_gdbport] == 0} {
+ fail "couldn't connect to gdbreplay"
+ return
+ }
+
+ gdb_breakpoint main
+ gdb_continue_to_breakpoint "continuing to main"
+
+ if { $expect_error } {
+ set expected_output \
+ [list \
+ "\\\[Thread \[^\r\n\]+ exited\\\]" \
+ "warning: command aborted, Thread \[^\r\n\]+ unexpectedly exited after signal stop event"]
+
+ if { !$non_stop } {
+ lappend expected_output "\\\[Switching to Thread \[^\r\n\]+\\\]"
+ }
+
+ gdb_test "continue" [multi_line {*}$expected_output]
+ } else {
+ # This is the original behaviour, we see this when running
+ # with the unmodified log.
+ gdb_test "continue" \
+ "Thread ${::decimal}(?: \[^\r\n\]+)? received signal SIGTRAP, .*"
+ }
+
+ gdb_test "disconnect" ".*" \
+ "disconnect after seeing signal"
+}
+
+# Run the complete test cycle; generate an initial log file, modify the log
+# file, then check that GDB correctly handles replaying the modified log
+# file.
+#
+# NON_STOP is either 'on' or 'off' and indicates GDB's non-stop mode.
+proc run_test { non_stop } {
+ if { $non_stop } {
+ set suffix "-ns"
+ } else {
+ set suffix ""
+ }
+
+ # The replay log is placed in 'replay.log'.
+ set remote_log [standard_output_file replay${suffix}.log]
+ set missing_1_log [standard_output_file replay-missing-1${suffix}.log]
+ set missing_2_log [standard_output_file replay-missing-2${suffix}.log]
+
+ record_initial_logfile $remote_log
+
+ if { ![update_replay_log $remote_log $missing_1_log false] } {
+ fail "couldn't update remote replay log (drop 1 case)"
+ }
+
+ if { ![update_replay_log $remote_log $missing_2_log true] } {
+ fail "couldn't update remote replay log (drop 2 case)"
+ }
+
+ with_test_prefix "with unmodified log" {
+ # Replay with the unmodified log. This confirms that we can replay this
+ # scenario correctly.
+ replay_with_log $remote_log false $non_stop
+ }
+
+ with_test_prefix "missing 1 thread log" {
+ # Now replay with the modified log, this time the thread that receives
+ # the event should be missing from the thread list, GDB will give an
+ # error when the inferior stops.
+ replay_with_log $missing_1_log true $non_stop
+ }
+
+ with_test_prefix "missing 2 threads log" {
+ # When we drop both threads from the <threads> reply, GDB doesn't
+ # actually remove both threads from the inferior; an inferior must
+ # always have at least one thread. So in this case, as the primary
+ # thread is first, GDB drops this, then retains the second thread, which
+ # is the one we're stopping in, and so, we don't expect to see the error
+ # in this case.
+ replay_with_log $missing_2_log false $non_stop
+ }
+}
+
+# Run the test twice, with non-stop on and off.
+foreach_with_prefix non_stop { on off } {
+ save_vars { ::GDBFLAGS } {
+ append ::GDBFLAGS " -ex \"set non-stop $non_stop\""
+ run_test $non_stop
+ }
+}
diff --git a/gdb/testsuite/gdb.reverse/aarch64-mops.exp b/gdb/testsuite/gdb.reverse/aarch64-mops.exp
index 0f447a6..797a0c2 100644
--- a/gdb/testsuite/gdb.reverse/aarch64-mops.exp
+++ b/gdb/testsuite/gdb.reverse/aarch64-mops.exp
@@ -40,7 +40,7 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.exp b/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.exp
index 56ebb92..b5878f0 100644
--- a/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.exp
@@ -18,7 +18,7 @@ require supports_reverse
set opts {}
standard_testfile .S
-if [info exists COMPILE] {
+if {[info exists COMPILE]} {
# make check RUNTESTFLAGS="gdb.reverse/amd64-tailcall-reverse.exp COMPILE=1"
standard_testfile
lappend opts debug optimize=-O2
@@ -30,11 +30,11 @@ if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $opts] } {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
-if [supports_process_record] {
+if {[supports_process_record]} {
gdb_test_no_output "record"
}
diff --git a/gdb/testsuite/gdb.reverse/break-reverse.exp b/gdb/testsuite/gdb.reverse/break-reverse.exp
index 02c38ac..6db7ce1 100644
--- a/gdb/testsuite/gdb.reverse/break-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/break-reverse.exp
@@ -31,7 +31,7 @@ set end_location [gdb_get_line_number "end of main" ]
runto_main
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
diff --git a/gdb/testsuite/gdb.reverse/consecutive-precsave.exp b/gdb/testsuite/gdb.reverse/consecutive-precsave.exp
index 2cb139d..3ccff48 100644
--- a/gdb/testsuite/gdb.reverse/consecutive-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/consecutive-precsave.exp
@@ -79,7 +79,7 @@ set testmsg "stopped at bp, 2nd instr"
gdb_test_multiple "step" $testmsg {
-re -wrap "Breakpoint $decimal, ($hex) in foo.*" {
set stop_addr $expect_out(1,string)
- if {[eval expr "$foo2_addr == $stop_addr"]} {
+ if {$foo2_addr == $stop_addr} {
pass "stopped at bp, 2nd instr"
} else {
fail "stopped at bp, 2nd instr (wrong address)"
@@ -90,7 +90,7 @@ gdb_test_multiple "step" $testmsg {
set stop_addr_is_stmt [hex_in_list $stop_addr $is_stmt]
if { ! $stop_addr_is_stmt } {
fail "stopped at bp, 2nd instr (missing hex prefix)"
- } elseif {[eval expr "$foo2_addr == $stop_addr"]} {
+ } elseif {$foo2_addr == $stop_addr} {
pass "stopped at bp, 2nd instr"
} else {
fail "stopped at bp, 2nd instr (wrong address)"
@@ -112,7 +112,7 @@ set test_msg "stopped at bp in reverse, 1st instr"
gdb_test_multiple "step" "$test_msg" {
-re "Breakpoint $decimal, ($hex) in foo.*$gdb_prompt $" {
set stop_addr $expect_out(1,string)
- if {[eval expr "$foo1_addr == $stop_addr"]} {
+ if {$foo1_addr == $stop_addr} {
pass "$test_msg"
} else {
fail "$test_msg (wrong address)"
diff --git a/gdb/testsuite/gdb.reverse/consecutive-reverse.exp b/gdb/testsuite/gdb.reverse/consecutive-reverse.exp
index 27f2b72..7434efb 100644
--- a/gdb/testsuite/gdb.reverse/consecutive-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/consecutive-reverse.exp
@@ -26,7 +26,7 @@ if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
runto_main
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
@@ -61,7 +61,7 @@ set testmsg "stopped at bp, 2nd instr"
gdb_test_multiple "step" $testmsg {
-re -wrap "Breakpoint $decimal, ($hex) in foo.*" {
set stop_addr $expect_out(1,string)
- if {[eval expr "$foo2_addr == $stop_addr"]} {
+ if {$foo2_addr == $stop_addr} {
pass "stopped at bp, 2nd instr"
} else {
fail "stopped at bp, 2nd instr (wrong address)"
@@ -72,7 +72,7 @@ gdb_test_multiple "step" $testmsg {
set stop_addr_is_stmt [hex_in_list $stop_addr $is_stmt]
if { ! $stop_addr_is_stmt } {
fail "stopped at bp, 2nd instr (missing hex prefix)"
- } elseif {[eval expr "$foo2_addr == $stop_addr"]} {
+ } elseif {$foo2_addr == $stop_addr} {
pass "stopped at bp, 2nd instr"
} else {
fail "stopped at bp, 2nd instr (wrong address)"
@@ -94,7 +94,7 @@ set test_msg "stopped at bp in reverse, 1st instr"
gdb_test_multiple "step" "$test_msg" {
-re "Breakpoint $decimal, ($hex) in foo.*$gdb_prompt $" {
set stop_addr $expect_out(1,string)
- if {[eval expr "$foo1_addr == $stop_addr"]} {
+ if {$foo1_addr == $stop_addr} {
pass "$test_msg"
} else {
fail "$test_msg (wrong address)"
diff --git a/gdb/testsuite/gdb.reverse/finish-precsave.exp b/gdb/testsuite/gdb.reverse/finish-precsave.exp
index 596b40d..2e76a46 100644
--- a/gdb/testsuite/gdb.reverse/finish-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/finish-precsave.exp
@@ -27,12 +27,12 @@ if { [prepare_for_testing "failed to prepare" "$testfile" $srcfile] } {
runto_main
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
-# Run until end, then save execution log.
+# Run until end, then save execution log.
set breakloc [gdb_get_line_number "end of main" "$srcfile"]
gdb_test "break $breakloc" \
diff --git a/gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp b/gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp
index 1e92252..586d236 100644
--- a/gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp
+++ b/gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp
@@ -52,7 +52,7 @@ if {![runto_main]} {
return 0
}
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
diff --git a/gdb/testsuite/gdb.reverse/finish-reverse-next.exp b/gdb/testsuite/gdb.reverse/finish-reverse-next.exp
index f744e9c..07ba30c 100644
--- a/gdb/testsuite/gdb.reverse/finish-reverse-next.exp
+++ b/gdb/testsuite/gdb.reverse/finish-reverse-next.exp
@@ -41,7 +41,7 @@
# test only verified the reverse-finish command for a normal call that used
# the LEP.
-if ![supports_reverse] {
+if {![supports_reverse]} {
return
}
@@ -53,7 +53,7 @@ if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
runto_main
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay.
gdb_test_no_output "record" "turn on process record for test1"
}
diff --git a/gdb/testsuite/gdb.reverse/finish-reverse.exp b/gdb/testsuite/gdb.reverse/finish-reverse.exp
index f90a79f..ff28bd8 100644
--- a/gdb/testsuite/gdb.reverse/finish-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/finish-reverse.exp
@@ -26,7 +26,7 @@ if { [prepare_for_testing "failed to prepare" "$testfile" $srcfile] } {
runto_main
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
diff --git a/gdb/testsuite/gdb.reverse/fstatat-reverse.exp b/gdb/testsuite/gdb.reverse/fstatat-reverse.exp
index 76bd8a2..db2f5dc 100644
--- a/gdb/testsuite/gdb.reverse/fstatat-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/fstatat-reverse.exp
@@ -29,7 +29,7 @@ if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
runto_main
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
diff --git a/gdb/testsuite/gdb.reverse/getrandom.exp b/gdb/testsuite/gdb.reverse/getrandom.exp
index 62640af..2756fa3 100644
--- a/gdb/testsuite/gdb.reverse/getrandom.exp
+++ b/gdb/testsuite/gdb.reverse/getrandom.exp
@@ -30,7 +30,7 @@ if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
runto_main
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
diff --git a/gdb/testsuite/gdb.reverse/getresuid-reverse.exp b/gdb/testsuite/gdb.reverse/getresuid-reverse.exp
index 5ff0f2b..37d070d 100644
--- a/gdb/testsuite/gdb.reverse/getresuid-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/getresuid-reverse.exp
@@ -29,7 +29,7 @@ if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
runto_main
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
diff --git a/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp b/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp
index fb04260..b3550e2 100644
--- a/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp
@@ -109,7 +109,7 @@ proc record_full_function {function} {
gdb_breakpoint $end temporary
gdb_continue_to_breakpoint "start ${function}_test"
- if [supports_process_record] {
+ if {[supports_process_record]} {
# Activate process record/replay.
gdb_test_no_output "record" "${function}: turn on process record"
}
diff --git a/gdb/testsuite/gdb.reverse/i386-reverse.exp b/gdb/testsuite/gdb.reverse/i386-reverse.exp
index 8c22363..9aee9a4 100644
--- a/gdb/testsuite/gdb.reverse/i386-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/i386-reverse.exp
@@ -36,7 +36,7 @@ set end_of_inc_dec_tests [gdb_get_line_number " end inc_dec_tests "]
runto_main
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
diff --git a/gdb/testsuite/gdb.reverse/i386-sse-reverse.exp b/gdb/testsuite/gdb.reverse/i386-sse-reverse.exp
index 0c99480..aa4cfce 100644
--- a/gdb/testsuite/gdb.reverse/i386-sse-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/i386-sse-reverse.exp
@@ -43,7 +43,7 @@ set end_sse4_test [gdb_get_line_number " end sse4_test "]
runto_main
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
diff --git a/gdb/testsuite/gdb.reverse/i387-env-reverse.exp b/gdb/testsuite/gdb.reverse/i387-env-reverse.exp
index 4b6a3f7..f3350fc 100644
--- a/gdb/testsuite/gdb.reverse/i387-env-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/i387-env-reverse.exp
@@ -36,7 +36,7 @@ set location [gdb_get_line_number "END I387-FLOAT-REVERSE"]
gdb_test_no_output "record" "Turn on process record"
# This can take awhile.
set oldtimeout $timeout
-set timeout [expr $oldtimeout + 120]
+set timeout [expr {$oldtimeout + 120}]
gdb_test "until $location" ".*$srcfile:$location.*" \
"record to end of main"
set timeout $oldtimeout
diff --git a/gdb/testsuite/gdb.reverse/insn-reverse.exp b/gdb/testsuite/gdb.reverse/insn-reverse.exp
index 5b3a2cd..9e238f0 100644
--- a/gdb/testsuite/gdb.reverse/insn-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/insn-reverse.exp
@@ -106,7 +106,7 @@ proc test { func testcase_nr } {
}
# Registers contents after each backward single step.
- for {set i [expr $count - 1]} {$i >= 0} {incr i -1} {
+ for {set i [expr {$count - 1}]} {$i >= 0} {incr i -1} {
gdb_test -nopass "reverse-stepi"
set post_regs($i) [capture_command_output "info all-registers" ""]
}
diff --git a/gdb/testsuite/gdb.reverse/machinestate-precsave.exp b/gdb/testsuite/gdb.reverse/machinestate-precsave.exp
index 53b958d..94d9723 100644
--- a/gdb/testsuite/gdb.reverse/machinestate-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/machinestate-precsave.exp
@@ -13,7 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# This file is part of the GDB testsuite.
+# This file is part of the GDB testsuite.
# This test tests the restoration of various kinds of machine state
# to their original values with a process record log. We will execute
# the program forward while it changes various types of data, and
diff --git a/gdb/testsuite/gdb.reverse/machinestate.exp b/gdb/testsuite/gdb.reverse/machinestate.exp
index 9177029..7edf517 100644
--- a/gdb/testsuite/gdb.reverse/machinestate.exp
+++ b/gdb/testsuite/gdb.reverse/machinestate.exp
@@ -13,7 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# This file is part of the GDB testsuite.
+# This file is part of the GDB testsuite.
# This test tests the restoration of various kinds of machine state
# to their original values by reverse execution. We will execute
# the program forward while it changes various types of data, and
@@ -53,7 +53,7 @@ set endmain [gdb_get_line_number " end main " $srcfile]
runto_main
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
diff --git a/gdb/testsuite/gdb.reverse/maint-print-instruction.exp b/gdb/testsuite/gdb.reverse/maint-print-instruction.exp
index 6599345..151c117 100644
--- a/gdb/testsuite/gdb.reverse/maint-print-instruction.exp
+++ b/gdb/testsuite/gdb.reverse/maint-print-instruction.exp
@@ -23,7 +23,7 @@
# change is printed, since any instruction must have at least a change
# to the PC.
-if ![supports_reverse] {
+if {![supports_reverse]} {
return
}
@@ -52,7 +52,7 @@ if { ![runto_main] } {
#confirm that GDB doesn't go crazy if recording isn't enabled
test_print false "" "print before starting to record"
-if ![supports_process_record] {
+if {![supports_process_record]} {
# No point in testing the rest if we can't record anything
return
}
diff --git a/gdb/testsuite/gdb.reverse/map-to-same-line.exp b/gdb/testsuite/gdb.reverse/map-to-same-line.exp
index 410394c..e31eef0 100644
--- a/gdb/testsuite/gdb.reverse/map-to-same-line.exp
+++ b/gdb/testsuite/gdb.reverse/map-to-same-line.exp
@@ -48,16 +48,16 @@ Dwarf::assemble $asm_file {
cu {} {
compile_unit {
- {language @DW_LANG_C}
- {name map-to-same-line.c}
- {stmt_list $L DW_FORM_sec_offset}
- {low_pc 0 addr}
+ DW_AT_language @DW_LANG_C
+ DW_AT_name map-to-same-line.c
+ DW_AT_stmt_list $L DW_FORM_sec_offset
+ DW_AT_low_pc 0 addr
} {
subprogram {
- {external 1 flag}
- {name main}
- {low_pc $main_start addr}
- {high_pc $main_len DW_FORM_data4}
+ DW_AT_external 1 flag
+ DW_AT_name main
+ DW_AT_low_pc $main_start addr
+ DW_AT_high_pc $main_len DW_FORM_data4
}
}
}
diff --git a/gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp b/gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp
index 454808d..574ab5e 100644
--- a/gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp
+++ b/gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp
@@ -52,7 +52,7 @@ if {![runto_main]} {
return 0
}
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
diff --git a/gdb/testsuite/gdb.reverse/pipe-reverse.exp b/gdb/testsuite/gdb.reverse/pipe-reverse.exp
index eb4f8eb..93ba3d1 100644
--- a/gdb/testsuite/gdb.reverse/pipe-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/pipe-reverse.exp
@@ -29,7 +29,7 @@ if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
runto_main
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
diff --git a/gdb/testsuite/gdb.reverse/readv-reverse.exp b/gdb/testsuite/gdb.reverse/readv-reverse.exp
index 47149f2..4456340 100644
--- a/gdb/testsuite/gdb.reverse/readv-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/readv-reverse.exp
@@ -29,7 +29,7 @@ if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
runto_main
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
diff --git a/gdb/testsuite/gdb.reverse/recursion.exp b/gdb/testsuite/gdb.reverse/recursion.exp
index bfe1770..ca08930 100644
--- a/gdb/testsuite/gdb.reverse/recursion.exp
+++ b/gdb/testsuite/gdb.reverse/recursion.exp
@@ -26,7 +26,7 @@ if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
runto_main
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
diff --git a/gdb/testsuite/gdb.reverse/recvmsg-reverse.exp b/gdb/testsuite/gdb.reverse/recvmsg-reverse.exp
index 89cac87..af6f73f 100644
--- a/gdb/testsuite/gdb.reverse/recvmsg-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/recvmsg-reverse.exp
@@ -29,7 +29,7 @@ if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
runto_main
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
diff --git a/gdb/testsuite/gdb.reverse/s390-mvcle.exp b/gdb/testsuite/gdb.reverse/s390-mvcle.exp
index 36cd611..642be8f 100644
--- a/gdb/testsuite/gdb.reverse/s390-mvcle.exp
+++ b/gdb/testsuite/gdb.reverse/s390-mvcle.exp
@@ -27,7 +27,7 @@ if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
runto_main
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
diff --git a/gdb/testsuite/gdb.reverse/sigall-precsave.exp b/gdb/testsuite/gdb.reverse/sigall-precsave.exp
index 64869c5..552be4b 100644
--- a/gdb/testsuite/gdb.reverse/sigall-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/sigall-precsave.exp
@@ -134,20 +134,20 @@ proc test_one_sig_reverse {prevsig} {
} else {
xfail "$testmsg (handled)"
}
- }
+ }
}
}
-clean_restart $binfile
+clean_restart $::testfile
runto gen_ABRT
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
-# Run until end, then save execution log.
+# Run until end, then save execution log.
set breakloc [gdb_get_line_number "end of main" "$srcfile"]
gdb_test "break $breakloc" \
@@ -299,7 +299,7 @@ gdb_test "continue" \
"get signal TERM"
gdb_test "continue" "Breakpoint.*handle_TERM.*" "send signal TERM"
-gdb_test "continue" " end of main .*" "continue to sigall exit"
+gdb_test "continue" " end of main .*" "continue to sigall exit"
foreach sig [lreverse $signals] {
test_one_sig_reverse $sig
diff --git a/gdb/testsuite/gdb.reverse/sigall-reverse.exp b/gdb/testsuite/gdb.reverse/sigall-reverse.exp
index b72e098..f9259a1 100644
--- a/gdb/testsuite/gdb.reverse/sigall-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/sigall-reverse.exp
@@ -140,15 +140,15 @@ proc test_one_sig_reverse {prevsig} {
} else {
xfail "$testmsg (handled)"
}
- }
+ }
}
}
-clean_restart $binfile
+clean_restart $::testfile
runto gen_ABRT
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
diff --git a/gdb/testsuite/gdb.reverse/singlejmp-reverse.exp b/gdb/testsuite/gdb.reverse/singlejmp-reverse.exp
index 7c1cf0b..8b9cb20 100644
--- a/gdb/testsuite/gdb.reverse/singlejmp-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/singlejmp-reverse.exp
@@ -18,7 +18,7 @@ require supports_reverse
standard_testfile ".S" "${gdb_test_file_name}-nodebug.S"
set executable ${testfile}
-if [info exists COMPILE] {
+if {[info exists COMPILE]} {
# make check RUNTESTFLAGS="gdb.reverse/singlejmp-reverse.exp COMPILE=1"
if { [build_executable_from_specs ${testfile}.exp $executable {} \
${testfile}.c {debug optimize=-O2} \
@@ -36,11 +36,11 @@ if [info exists COMPILE] {
clean_restart $executable
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
-if [supports_process_record] {
+if {[supports_process_record]} {
gdb_test_no_output "record"
}
diff --git a/gdb/testsuite/gdb.reverse/solib-precsave.exp b/gdb/testsuite/gdb.reverse/solib-precsave.exp
index 82b08cd..0b93501 100644
--- a/gdb/testsuite/gdb.reverse/solib-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/solib-precsave.exp
@@ -52,7 +52,7 @@ if { [gdb_compile ${srcdir}/${subdir}/${srcfile} ${binfile} executable \
untested "failed to compile"
return -1
}
-
+
# Note: The test previously did "set debug-file-directory" to (try to)
# ensure the debug info for the dynamic loader and libc weren't found.
# This doesn't work if the debug info is in the .debug subdirectory.
@@ -60,7 +60,7 @@ if { [gdb_compile ${srcdir}/${subdir}/${srcfile} ${binfile} executable \
# and is no longer attempted. Instead, the test does not make assumptions
# about whether the debug info is present or not.
-clean_restart $binfile
+clean_restart $::testfile
gdb_load_shlib $library1
gdb_load_shlib $library2
diff --git a/gdb/testsuite/gdb.reverse/solib-reverse.exp b/gdb/testsuite/gdb.reverse/solib-reverse.exp
index b2ef9b0..8991177 100644
--- a/gdb/testsuite/gdb.reverse/solib-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/solib-reverse.exp
@@ -44,7 +44,7 @@ if { [gdb_compile ${srcdir}/${subdir}/${srcfile} ${binfile} executable $exec_opt
untested "failed to compile"
return -1
}
-
+
# Note: The test previously did "set debug-file-directory" to (try to)
# ensure the debug info for the dynamic loader and libc weren't found.
# This doesn't work if the debug info is in the .debug subdirectory.
@@ -52,13 +52,13 @@ if { [gdb_compile ${srcdir}/${subdir}/${srcfile} ${binfile} executable $exec_opt
# and is no longer attempted. Instead, the test does not make assumptions
# about whether the debug info is present or not.
-clean_restart $binfile
+clean_restart $::testfile
gdb_load_shlib $library1
gdb_load_shlib $library2
runto_main
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
diff --git a/gdb/testsuite/gdb.reverse/step-precsave.exp b/gdb/testsuite/gdb.reverse/step-precsave.exp
index b49c21b..d152454 100644
--- a/gdb/testsuite/gdb.reverse/step-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/step-precsave.exp
@@ -69,7 +69,7 @@ with_timeout_factor 10 {
gdb_test "kill" "" "kill process, prepare to debug log file" \
"Kill the program being debugged\\? \\(y or n\\) " "y"
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_test "record restore $precsave" \
"Restored records from core file .*" \
@@ -229,7 +229,7 @@ gdb_test_multiple "stepi" "$test_message" {
}
}
-re "ENTER CALLEE.*$gdb_prompt $" {
- send_gdb "stepi\n"
+ send_gdb "stepi\n"
exp_continue
}
-re "$pic_thunk_re.*$gdb_prompt $" {
diff --git a/gdb/testsuite/gdb.reverse/step-reverse.exp b/gdb/testsuite/gdb.reverse/step-reverse.exp
index 6ecf1cd..78a11bf 100644
--- a/gdb/testsuite/gdb.reverse/step-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/step-reverse.exp
@@ -30,7 +30,7 @@ if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
runto_main
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
@@ -191,7 +191,7 @@ gdb_test_multiple "stepi" "$test_message" {
}
}
-re "ENTER CALLEE.*$gdb_prompt $" {
- send_gdb "stepi\n"
+ send_gdb "stepi\n"
exp_continue
}
-re "$pic_thunk_re.*$gdb_prompt $" {
diff --git a/gdb/testsuite/gdb.reverse/until-precsave.exp b/gdb/testsuite/gdb.reverse/until-precsave.exp
index 1f25a3a..325e4a8 100644
--- a/gdb/testsuite/gdb.reverse/until-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/until-precsave.exp
@@ -13,7 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. */
-# This file is part of the GDB testsuite. It tests 'until' and
+# This file is part of the GDB testsuite. It tests 'until' and
# 'advance' in precord logfile.
# This test suitable only for process record-replay
@@ -147,7 +147,7 @@ gdb_test "advance $bp_location19" \
"factorial .value=720.*${srcfile}:$bp_location19.*" \
"reverse-advance to final return of factorial"
-# Now do "until" across the recursive calls,
+# Now do "until" across the recursive calls,
# ending up in the same frame where we are now.
gdb_test "until $bp_location7" \
diff --git a/gdb/testsuite/gdb.reverse/until-reverse.exp b/gdb/testsuite/gdb.reverse/until-reverse.exp
index 240f6da..de138f5 100644
--- a/gdb/testsuite/gdb.reverse/until-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/until-reverse.exp
@@ -13,7 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. */
-# This file is part of the GDB testsuite. It tests 'until' and
+# This file is part of the GDB testsuite. It tests 'until' and
# 'advance' in reverse debugging.
require supports_reverse
@@ -34,7 +34,7 @@ set bp_location21 [gdb_get_line_number "set breakpoint 21 here"]
runto_main
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
@@ -120,7 +120,7 @@ gdb_test "advance $bp_location19" \
"factorial .value=720.*${srcfile}:$bp_location19.*" \
"reverse-advance to final return of factorial"
-# Now do "until" across the recursive calls,
+# Now do "until" across the recursive calls,
# ending up in the same frame where we are now.
gdb_test "until $bp_location7" \
diff --git a/gdb/testsuite/gdb.reverse/waitpid-reverse.exp b/gdb/testsuite/gdb.reverse/waitpid-reverse.exp
index c1cb402..26c3c99 100644
--- a/gdb/testsuite/gdb.reverse/waitpid-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/waitpid-reverse.exp
@@ -31,7 +31,7 @@ if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
runto_main
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
diff --git a/gdb/testsuite/gdb.reverse/watch-reverse.exp b/gdb/testsuite/gdb.reverse/watch-reverse.exp
index 6a694be..567ae4a 100644
--- a/gdb/testsuite/gdb.reverse/watch-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/watch-reverse.exp
@@ -28,7 +28,7 @@ if { [prepare_for_testing "failed to prepare" $testfile $srcfile] } {
runto_main
-if [supports_process_record] {
+if {[supports_process_record]} {
# Activate process record/replay
gdb_test_no_output "record" "turn on process record"
}
diff --git a/gdb/testsuite/gdb.rocm/code-object-load-while-breakpoint-hit.exp b/gdb/testsuite/gdb.rocm/code-object-load-while-breakpoint-hit.exp
index 3fe6a95..e994884 100644
--- a/gdb/testsuite/gdb.rocm/code-object-load-while-breakpoint-hit.exp
+++ b/gdb/testsuite/gdb.rocm/code-object-load-while-breakpoint-hit.exp
@@ -53,7 +53,8 @@ if { [gdb_compile $srcdir/$subdir/$srcfile \
proc do_test { } {
with_rocm_gpu_lock {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
gdb_test_no_output "set args $::hipmodule_path" "set args"
if { ![runto_main] } {
diff --git a/gdb/testsuite/gdb.rocm/displaced-stepping.exp b/gdb/testsuite/gdb.rocm/displaced-stepping.exp
index cd50fec..9e8abd4 100644
--- a/gdb/testsuite/gdb.rocm/displaced-stepping.exp
+++ b/gdb/testsuite/gdb.rocm/displaced-stepping.exp
@@ -28,7 +28,8 @@ if {[build_executable "failed to prepare" $testfile $srcfile {hip}]} {
}
proc do_test {} {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
with_rocm_gpu_lock {
if ![runto_main] {
diff --git a/gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu.exp b/gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu.exp
index 22d4b75..dfd1092 100644
--- a/gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu.exp
+++ b/gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu.exp
@@ -54,7 +54,8 @@ proc do_test { detach-on-fork follow-fork-mode fork_func } {
}
with_rocm_gpu_lock {
- clean_restart ${::binfile}-execer-${fork_func}
+ clean_restart
+ gdb_load ${::binfile}-execer-${fork_func}
gdb_test_no_output "set detach-on-fork ${detach-on-fork}"
gdb_test_no_output "set follow-fork-mode ${follow-fork-mode}"
diff --git a/gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu.exp b/gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu.exp
index 1386099..b14e2c7 100644
--- a/gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu.exp
+++ b/gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu.exp
@@ -53,7 +53,8 @@ proc do_test { detach-on-fork follow-fork-mode fork_func } {
}
with_rocm_gpu_lock {
- clean_restart ${::binfile}-execer-${fork_func}
+ clean_restart
+ gdb_load ${::binfile}-execer-${fork_func}
gdb_test_no_output "set detach-on-fork ${detach-on-fork}"
gdb_test_no_output "set follow-fork-mode ${follow-fork-mode}"
diff --git a/gdb/testsuite/gdb.rocm/mi-attach.cpp b/gdb/testsuite/gdb.rocm/mi-attach.cpp
index da7659d..441d460 100644
--- a/gdb/testsuite/gdb.rocm/mi-attach.cpp
+++ b/gdb/testsuite/gdb.rocm/mi-attach.cpp
@@ -15,8 +15,8 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include <unistd.h>
#include <hip/hip_runtime.h>
+#include "gdb_watchdog.h"
__global__ void
kern ()
@@ -30,7 +30,7 @@ main ()
{
/* This program will run outside of GDB, make sure that if anything goes
wrong it eventually gets killed. */
- alarm (30);
+ gdb_watchdog (30);
kern<<<1, 1>>> ();
return hipDeviceSynchronize () != hipSuccess;
diff --git a/gdb/testsuite/gdb.rocm/multi-inferior-gpu.exp b/gdb/testsuite/gdb.rocm/multi-inferior-gpu.exp
index 4f55432..0ed11e8 100644
--- a/gdb/testsuite/gdb.rocm/multi-inferior-gpu.exp
+++ b/gdb/testsuite/gdb.rocm/multi-inferior-gpu.exp
@@ -28,7 +28,8 @@ if {[build_executable "failed to prepare" $testfile $srcfile {debug hip}]} {
}
proc do_test {} {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
gdb_test_no_output "set non-stop on"
gdb_test_no_output "set detach-on-fork off"
gdb_test_no_output "set follow-fork parent"
diff --git a/gdb/testsuite/gdb.rocm/precise-memory-exec.exp b/gdb/testsuite/gdb.rocm/precise-memory-exec.exp
index 506488c..76be078 100644
--- a/gdb/testsuite/gdb.rocm/precise-memory-exec.exp
+++ b/gdb/testsuite/gdb.rocm/precise-memory-exec.exp
@@ -29,7 +29,8 @@ if {[build_executable "failed to prepare $testfile" $testfile $srcfile {debug}]}
}
proc do_test { follow-exec-mode } {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
with_rocm_gpu_lock {
if ![runto_main] {
diff --git a/gdb/testsuite/gdb.rocm/precise-memory-multi-inferiors.exp b/gdb/testsuite/gdb.rocm/precise-memory-multi-inferiors.exp
index c7a78b8..058b085 100644
--- a/gdb/testsuite/gdb.rocm/precise-memory-multi-inferiors.exp
+++ b/gdb/testsuite/gdb.rocm/precise-memory-multi-inferiors.exp
@@ -30,7 +30,7 @@ proc test_per_inferior { } {
gdb_test "show amdgpu precise-memory" \
"AMDGPU precise memory access reporting is off \\(currently disabled\\)." \
"show initial value, inferior 1"
- if $::test_python {
+ if { $::test_python } {
gdb_test "python print(gdb.parameter(\"amdgpu precise-memory\"))" \
"False" \
"show initial value using Python, inferior 1"
@@ -40,7 +40,7 @@ proc test_per_inferior { } {
gdb_test "show amdgpu precise-memory" \
"AMDGPU precise memory access reporting is on \\(currently disabled\\)." \
"show new value, inferior 1"
- if $::test_python {
+ if { $::test_python } {
gdb_test "python print(gdb.parameter(\"amdgpu precise-memory\"))" \
"True" \
"show new value using Python, inferior 1"
@@ -52,7 +52,7 @@ proc test_per_inferior { } {
gdb_test "show amdgpu precise-memory" \
"AMDGPU precise memory access reporting is off \\(currently disabled\\)." \
"show initial value, inferior 2"
- if $::test_python {
+ if { $::test_python } {
gdb_test "python print(gdb.parameter(\"amdgpu precise-memory\"))" \
"False" \
"show initial value using Python, inferior 2"
diff --git a/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.exp b/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.exp
index f855719..da0a95a 100644
--- a/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.exp
+++ b/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.exp
@@ -29,7 +29,8 @@ if {[build_executable "failed to prepare" $testfile $srcfile {debug hip}]} {
}
proc do_test { } {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
with_rocm_gpu_lock {
if ![runto_main] {
diff --git a/gdb/testsuite/gdb.rocm/precise-memory.exp b/gdb/testsuite/gdb.rocm/precise-memory.exp
index 6711d80..8f00559 100644
--- a/gdb/testsuite/gdb.rocm/precise-memory.exp
+++ b/gdb/testsuite/gdb.rocm/precise-memory.exp
@@ -28,7 +28,8 @@ if {[build_executable "failed to prepare" $testfile $srcfile {debug hip}]} {
}
proc do_test { } {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
with_rocm_gpu_lock {
if ![runto_main] {
diff --git a/gdb/testsuite/gdb.rocm/simple.exp b/gdb/testsuite/gdb.rocm/simple.exp
index bc90a0a..8f6ff3e 100644
--- a/gdb/testsuite/gdb.rocm/simple.exp
+++ b/gdb/testsuite/gdb.rocm/simple.exp
@@ -27,7 +27,8 @@ if {[build_executable "failed to prepare" $testfile $srcfile {debug hip}]} {
}
proc do_test {} {
- clean_restart $::binfile
+ clean_restart
+ gdb_load $::binfile
with_rocm_gpu_lock {
if ![runto_main] {
diff --git a/gdb/testsuite/gdb.rust/modules.exp b/gdb/testsuite/gdb.rust/modules.exp
index 5b2e998..0874db3 100644
--- a/gdb/testsuite/gdb.rust/modules.exp
+++ b/gdb/testsuite/gdb.rust/modules.exp
@@ -34,7 +34,7 @@ if {![runto ${srcfile}:$line]} {
# https://github.com/rust-lang/rust/issues/33121
# gdb_test "call f2()" "lambda f2"
-if ![target_info exists gdb,noinferiorio] {
+if { ![target_info exists gdb,noinferiorio] } {
gdb_test_stdio "call f3()" "mod1::inner::innest::f3"
gdb_test_stdio "call self::f2()" "mod1::inner::innest::f2"
gdb_test_stdio "call self::super::f2()" "mod1::inner::f2"
diff --git a/gdb/testsuite/gdb.rust/traits.exp b/gdb/testsuite/gdb.rust/traits.exp
index e5ef015..82fc894 100644
--- a/gdb/testsuite/gdb.rust/traits.exp
+++ b/gdb/testsuite/gdb.rust/traits.exp
@@ -25,7 +25,7 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug rust}]} {
}
set readelf_program [gdb_find_readelf]
-set result [catch "exec $readelf_program --debug-dump=info $binfile" output]
+set result [catch {exec $readelf_program --debug-dump=info $binfile} output]
if {$result != 0} {
untested "could not read [file tail ${binfile}] with readelf"
return
diff --git a/gdb/testsuite/gdb.server/argument-errors.exp b/gdb/testsuite/gdb.server/argument-errors.exp
new file mode 100644
index 0000000..45037bf
--- /dev/null
+++ b/gdb/testsuite/gdb.server/argument-errors.exp
@@ -0,0 +1,81 @@
+# This testcase is part of GDB, the GNU debugger.
+#
+# Copyright 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Test gdbserver prints a suitable message when argument values are
+# missing.
+
+load_lib gdbserver-support.exp
+
+standard_testfile
+
+require allow_gdbserver_tests
+
+set gdbserver [find_gdbserver]
+if { $gdbserver == "" } {
+ unsupported "could not find gdbserver"
+ return
+}
+
+# Start gdbserver using CMD_ARGS and a non-existent program name. We
+# expect to see an error message matching ERROR_RE from gdbserver.
+proc test_argument_error { cmd_args error_re } {
+ # Fire off gdbserver. gdbserver should give an error because
+ # --debug-file is missing its argument.
+ set spawn_id [remote_spawn target "$::gdbserver $cmd_args non-existing-program"]
+
+ set saw_expected_error false
+ set test "check gdbserver error: $cmd_args"
+ expect {
+ -i $spawn_id
+ -re $error_re {
+ set saw_expected_error true
+ exp_continue
+ }
+ eof {
+ gdb_assert $saw_expected_error $test
+ wait
+ }
+ timeout {
+ fail "$test (timeout)"
+ }
+ }
+
+ # expect defaults to spawn_id in many places. Avoid confusing any
+ # following code.
+ unset spawn_id
+}
+
+# Check that an argument that expects a value will not use a port, or
+# another argument, as its value.
+foreach arg { --debug-format --debug-file } {
+ test_argument_error "$arg stdio" \
+ "Missing argument value for: $arg"
+ test_argument_error "$arg :54321" \
+ "Missing argument value for: $arg"
+ test_argument_error "$arg -" \
+ "Missing argument value for: $arg"
+ test_argument_error "$arg --once -" \
+ "Missing argument value for: $arg"
+}
+
+# Test unknown argument handling.
+test_argument_error "--unknown -" \
+ "Unknown argument: --unknown"
+test_argument_error "-unknown -" \
+ "Unknown argument: -unknown"
+test_argument_error "--unknown=blah -" \
+ "Unknown argument: --unknown"
diff --git a/gdb/testsuite/gdb.server/bkpt-other-inferior.exp b/gdb/testsuite/gdb.server/bkpt-other-inferior.exp
index 893bd72..453be14 100644
--- a/gdb/testsuite/gdb.server/bkpt-other-inferior.exp
+++ b/gdb/testsuite/gdb.server/bkpt-other-inferior.exp
@@ -23,7 +23,7 @@ standard_testfile server.c
require allow_gdbserver_tests
-if { [prepare_for_testing "failed to prepare" ${binfile} "${srcfile}" \
+if { [prepare_for_testing "failed to prepare" $testfile $srcfile \
{debug pthreads}] } {
return
}
diff --git a/gdb/testsuite/gdb.server/connect-stopped-target.exp b/gdb/testsuite/gdb.server/connect-stopped-target.exp
index 021f063..603782c 100644
--- a/gdb/testsuite/gdb.server/connect-stopped-target.exp
+++ b/gdb/testsuite/gdb.server/connect-stopped-target.exp
@@ -34,7 +34,7 @@ proc do_test {nonstop} {
global gdb_prompt
global hex
- clean_restart $binfile
+ clean_restart $::testfile
# Make sure we're disconnected, in case we're testing with an
# extended-remote board, therefore already connected.
diff --git a/gdb/testsuite/gdb.server/connect-with-no-symbol-file.exp b/gdb/testsuite/gdb.server/connect-with-no-symbol-file.exp
index 4e5ee98..01d7e46 100644
--- a/gdb/testsuite/gdb.server/connect-with-no-symbol-file.exp
+++ b/gdb/testsuite/gdb.server/connect-with-no-symbol-file.exp
@@ -69,7 +69,7 @@ proc connect_no_symbol_file { sysroot action } {
} elseif { $action == "permission" } {
remote_exec target "chmod 000 $target_exec"
}
-
+
# Connect to GDBserver.
gdb_target_cmd $gdbserver_protocol $gdbserver_gdbport
}
diff --git a/gdb/testsuite/gdb.server/connect-without-multi-process.exp b/gdb/testsuite/gdb.server/connect-without-multi-process.exp
index 1a7246c..f47e57e 100644
--- a/gdb/testsuite/gdb.server/connect-without-multi-process.exp
+++ b/gdb/testsuite/gdb.server/connect-without-multi-process.exp
@@ -38,7 +38,7 @@ proc do_test {multiprocess} {
set GDBFLAGS "$GDBFLAGS -ex \"set sysroot\""
}
- clean_restart $binfile
+ clean_restart $::testfile
}
# Make sure we're disconnected, in case we're testing with an
diff --git a/gdb/testsuite/gdb.server/exit-multiple-threads.exp b/gdb/testsuite/gdb.server/exit-multiple-threads.exp
index 73e4c32..be29f9e 100644
--- a/gdb/testsuite/gdb.server/exit-multiple-threads.exp
+++ b/gdb/testsuite/gdb.server/exit-multiple-threads.exp
@@ -45,7 +45,8 @@ proc prepare_for_test { executable target_executable disable_multi_process } {
set GDBFLAGS "$GDBFLAGS -ex \"set sysroot\""
}
- clean_restart ${executable}
+ clean_restart
+ gdb_load $executable
}
# Make sure we're disconnected, in case we're testing with an
@@ -69,7 +70,7 @@ proc prepare_for_test { executable target_executable disable_multi_process } {
set gdbserver_protocol [lindex $res 0]
set gdbserver_gdbport [lindex $res 1]
set res [gdb_target_cmd $gdbserver_protocol $gdbserver_gdbport]
- if ![gdb_assert {$res == 0} "connect"] {
+ if { ![gdb_assert {$res == 0} "connect"] } {
return
}
diff --git a/gdb/testsuite/gdb.server/ext-attach.exp b/gdb/testsuite/gdb.server/ext-attach.exp
index bda3ae9..6af2ede 100644
--- a/gdb/testsuite/gdb.server/ext-attach.exp
+++ b/gdb/testsuite/gdb.server/ext-attach.exp
@@ -45,7 +45,7 @@ proc run_test { target_async target_non_stop to_disable } {
set ::GDBFLAGS "$::GDBFLAGS -ex \"set sysroot\""
}
- clean_restart $::binfile
+ clean_restart $::testfile
}
# Make sure we're disconnected, in case we're testing with an
diff --git a/gdb/testsuite/gdb.server/ext-run.exp b/gdb/testsuite/gdb.server/ext-run.exp
index 2286454..f4ff546 100644
--- a/gdb/testsuite/gdb.server/ext-run.exp
+++ b/gdb/testsuite/gdb.server/ext-run.exp
@@ -37,7 +37,7 @@ save_vars { GDBFLAGS } {
set GDBFLAGS "$GDBFLAGS -ex \"set sysroot\""
}
- clean_restart $binfile
+ clean_restart $::testfile
}
# Make sure we're disconnected, in case we're testing with an
diff --git a/gdb/testsuite/gdb.server/extended-remote-restart.exp b/gdb/testsuite/gdb.server/extended-remote-restart.exp
index df722a1..a5ba53c 100644
--- a/gdb/testsuite/gdb.server/extended-remote-restart.exp
+++ b/gdb/testsuite/gdb.server/extended-remote-restart.exp
@@ -58,7 +58,7 @@ proc test_reload { do_kill_p follow_child_p } {
global decimal
global binfile
- clean_restart ${binfile}
+ clean_restart ${::testfile}
if {![runto_main]} {
return 0
@@ -70,7 +70,7 @@ proc test_reload { do_kill_p follow_child_p } {
set live_inf_ptn "process $decimal"
set dead_inf_ptn "<null>"
- if ${follow_child_p} {
+ if { $follow_child_p } {
gdb_test_no_output "set follow-fork child"
set parent_prefix " "
set child_prefix "\\*"
diff --git a/gdb/testsuite/gdb.server/inferior-args.c b/gdb/testsuite/gdb.server/inferior-args.c
new file mode 100644
index 0000000..3bc3ff7
--- /dev/null
+++ b/gdb/testsuite/gdb.server/inferior-args.c
@@ -0,0 +1,27 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2023-2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+
+int
+main (int argc, char **argv)
+{
+ for (int i = 0; i < argc; i++)
+ printf ("[%d] %s\n", i, argv[i]);
+
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.server/inferior-args.exp b/gdb/testsuite/gdb.server/inferior-args.exp
new file mode 100644
index 0000000..18ac5a3
--- /dev/null
+++ b/gdb/testsuite/gdb.server/inferior-args.exp
@@ -0,0 +1,156 @@
+# Copyright 2023-2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Test passing inferior arguments on the gdbserver command line. Tests the
+# flags --no-startup-with-shell and --no-escape-args that change how GDB
+# interprets the arguments being passed.
+
+# This test relies on starting gdbserver using the pipe syntax. Not sure
+# how well this will run if part of this test is being run elsewhere.
+require {!is_remote target} {!is_remote host}
+
+load_lib gdbserver-support.exp
+
+standard_testfile
+
+require allow_gdbserver_tests
+
+set gdbserver [find_gdbserver]
+if { $gdbserver == "" } {
+ unsupported "could not find gdbserver"
+ return
+}
+
+standard_testfile
+if {[build_executable "failed to prepare" $testfile $srcfile]} {
+ return -1
+}
+
+# EXTENDED_P is a boolean, when true gdbserver is started with --multi, and
+# GDB connects using extended-remote protocol. Otherwise, no --multi flag
+# is passed, and GDB connects with the remote protocol.
+#
+# WITH_SHELL_P is a boolean, when true gdbserver starts the inferior using a
+# shell, when false gdbserver is passed the --no-startup-with-shell command
+# line option, and should not start the inferior through a shell.
+#
+# ESCAPE_P is a boolean, when true gdbserver applies escapes to the inferior
+# arguments, when false gdbserver is passed the --no-escape-args command
+# line option, and should not apply escaping to the inferior arguments.
+#
+# ARGLIST is a list of inferior arguments to add to the gdbserver command
+# line.
+#
+# RE_LIST is a list of patterns to match, one for each of ARGLIST. Once the
+# inferior is started we check that each argument matches its corresponding
+# entry in RE_LIST.
+proc do_test_inner { extended_p with_shell_p escape_p arglist re_list } {
+
+ clean_restart ${::testfile}
+
+ gdb_test_no_output "set sysroot"
+
+ # Make sure we're disconnected, in case we're testing with an
+ # extended-remote board, therefore already connected.
+ gdb_test "disconnect" ".*"
+
+ if { $extended_p } {
+ set protocol "extended-remote"
+ } else {
+ set protocol "remote"
+ }
+
+ if { $escape_p } {
+ set esc_opt ""
+ } else {
+ set esc_opt "--no-escape-args"
+ }
+
+ if { $with_shell_p } {
+ set shell_opt ""
+ } else {
+ set shell_opt "--no-startup-with-shell"
+ }
+
+ gdb_test "target ${protocol} | ${::gdbserver} --once ${esc_opt} ${shell_opt} - ${::binfile} ${arglist}" \
+ ".*" \
+ "start gdbserver over stdin"
+
+ gdb_breakpoint main
+ gdb_continue_to_breakpoint main
+
+ set expected_len [expr {1 + [llength $re_list]}]
+ gdb_test "print argc" \
+ "\\\$$::decimal = $expected_len" "check argc"
+
+ set i 1
+ foreach arg $re_list {
+ gdb_test "print argv\[$i\]" \
+ "\\\$$::decimal = $::hex \"$arg\"" \
+ "check argv\[$i\]"
+ incr i
+ }
+}
+
+# Wrapper around do_test_inner. NAME is the name of this test, used to make
+# the test names unique. ARGLIST is the list of inferior arguments to add
+# to the gdbserver command line.
+#
+# The optional RE_ESC_LIST is a list of patterns to match against the
+# inferior arguments once the inferior is started, one pattern for each
+# argument. If RE_ESC_LIST is not given then ARGLIST is reused, which
+# implies the arguments appear unmodified in the test output.
+#
+# The optional RE_NO_ESC_LIST is a list of patterns to match against the
+# inferior arguments when gdbserver is started with --no-escape-args or
+# --no-startup-with-shell. There should be one pattern for each argument.
+# If RE_NO_ESC_LIST is not given then RE_ESC_LIST is reused, which implies
+# there's no difference in how the arguments are printed.
+proc args_test { name arglist {re_esc_list {}} {re_no_esc_list {}} } {
+ if {[llength $re_esc_list] == 0} {
+ set re_esc_list $arglist
+ }
+
+ if {[llength $re_no_esc_list] == 0} {
+ set re_no_esc_list $re_esc_list
+ }
+
+ foreach_with_prefix extended_p { yes no } {
+ foreach_with_prefix startup_with_shell { on off } {
+ foreach_with_prefix escape_p { yes no } {
+ if { $escape_p || !$startup_with_shell } {
+ set re_list $re_esc_list
+ } else {
+ set re_list $re_no_esc_list
+ }
+
+ with_test_prefix "$name" {
+ do_test_inner $extended_p $startup_with_shell \
+ $escape_p $arglist $re_list
+ }
+ }
+ }
+ }
+}
+
+args_test "basic" {a b c}
+args_test "one empty" {1 "" 3}
+args_test "two empty" {1 "" "" 3}
+args_test "one with single quotes" {1 "''" 3}
+args_test "lone double quote" {"1" \" 3} {1 \\\\\" 3}
+save_vars { env(TEST) } {
+ set env(TEST) "ABCD"
+ args_test "shell variable" {\$TEST} {\\$TEST} {ABCD}
+}
diff --git a/gdb/testsuite/gdb.server/monitor-exit-quit.exp b/gdb/testsuite/gdb.server/monitor-exit-quit.exp
index ce63560..74842a0 100644
--- a/gdb/testsuite/gdb.server/monitor-exit-quit.exp
+++ b/gdb/testsuite/gdb.server/monitor-exit-quit.exp
@@ -34,7 +34,7 @@ save_vars { GDBFLAGS } {
set GDBFLAGS "$GDBFLAGS -ex \"set sysroot\""
}
- clean_restart $binfile
+ clean_restart $::testfile
}
# Make sure we're disconnected, in case we're testing with an
@@ -70,7 +70,7 @@ gdb_test_multiple "quit" "" {
# Cleanup, as in default_gdb_exit.
if { $do_cleanup } {
- if ![is_remote host] {
+ if { ![is_remote host] } {
remote_close host
}
unset gdb_spawn_id
diff --git a/gdb/testsuite/gdb.server/non-existing-program.exp b/gdb/testsuite/gdb.server/non-existing-program.exp
index 7119723..ec9c044 100644
--- a/gdb/testsuite/gdb.server/non-existing-program.exp
+++ b/gdb/testsuite/gdb.server/non-existing-program.exp
@@ -34,6 +34,8 @@ if { $gdbserver == "" } {
# to spawn the program before opening the connection.
set spawn_id [remote_spawn target "$gdbserver stdio non-existing-program"]
+set eol {[\r\n]}
+
set msg "gdbserver exits cleanly"
set saw_exiting 0
expect {
@@ -51,7 +53,7 @@ expect {
exp_continue
}
# This is what we get on Windows.
- -re "Error creating process\r\n\r\nExiting\r\n" {
+ -re "Error creating process.*$eol+Exiting$eol+" {
set saw_exiting 1
exp_continue
}
diff --git a/gdb/testsuite/gdb.server/reconnect-ctrl-c.exp b/gdb/testsuite/gdb.server/reconnect-ctrl-c.exp
index 83869a3..bcab2de 100644
--- a/gdb/testsuite/gdb.server/reconnect-ctrl-c.exp
+++ b/gdb/testsuite/gdb.server/reconnect-ctrl-c.exp
@@ -51,7 +51,7 @@ proc connect_continue_ctrl_c {} {
global gdbserver_protocol gdbserver_gdbport
set res [gdb_target_cmd $gdbserver_protocol $gdbserver_gdbport]
- if ![gdb_assert {$res == 0} "connect"] {
+ if { ![gdb_assert {$res == 0} "connect"] } {
return
}
diff --git a/gdb/testsuite/gdb.server/server-exec-info.exp b/gdb/testsuite/gdb.server/server-exec-info.exp
index fccf075..007290a 100644
--- a/gdb/testsuite/gdb.server/server-exec-info.exp
+++ b/gdb/testsuite/gdb.server/server-exec-info.exp
@@ -21,7 +21,7 @@ load_lib gdbserver-support.exp
require allow_gdbserver_tests allow_shlib_tests
standard_testfile server.c
-if [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] {
+if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
return -1
}
diff --git a/gdb/testsuite/gdb.server/server-kill.exp b/gdb/testsuite/gdb.server/server-kill.exp
index 0a759ae..a9fcabb 100644
--- a/gdb/testsuite/gdb.server/server-kill.exp
+++ b/gdb/testsuite/gdb.server/server-kill.exp
@@ -43,7 +43,7 @@ proc prepare {} {
set GDBFLAGS "$GDBFLAGS -ex \"set sysroot\""
}
- clean_restart $binfile
+ clean_restart $::testfile
}
# Make sure we're disconnected, in case we're testing with an
diff --git a/gdb/testsuite/gdb.server/server-pipe.exp b/gdb/testsuite/gdb.server/server-pipe.exp
index d786946..20ca0b0 100644
--- a/gdb/testsuite/gdb.server/server-pipe.exp
+++ b/gdb/testsuite/gdb.server/server-pipe.exp
@@ -50,7 +50,7 @@ if {[build_executable "failed to prepare" $testfile $srcfile debug]} {
# the contents of the gdb.TargetConnection.details string.
proc do_test { target } {
global timeout
- clean_restart ${::binfile}
+ clean_restart ${::testfile}
# Make sure we're disconnected, in case we're testing with an
# extended-remote board, therefore already connected.
diff --git a/gdb/testsuite/gdb.server/server-run.exp b/gdb/testsuite/gdb.server/server-run.exp
index 6c9db98..53b3278 100644
--- a/gdb/testsuite/gdb.server/server-run.exp
+++ b/gdb/testsuite/gdb.server/server-run.exp
@@ -34,7 +34,7 @@ save_vars { GDBFLAGS } {
set GDBFLAGS "$GDBFLAGS -ex \"set sysroot\""
}
- clean_restart $binfile
+ clean_restart $::testfile
}
# Make sure we're disconnected, in case we're testing with an
diff --git a/gdb/testsuite/gdb.server/stop-reply-no-thread-multi.exp b/gdb/testsuite/gdb.server/stop-reply-no-thread-multi.exp
index 42608c4..f1c68a5 100644
--- a/gdb/testsuite/gdb.server/stop-reply-no-thread-multi.exp
+++ b/gdb/testsuite/gdb.server/stop-reply-no-thread-multi.exp
@@ -54,7 +54,7 @@ proc run_test { target_non_stop disable_feature } {
set GDBFLAGS "$GDBFLAGS -ex \"set sysroot\""
}
- clean_restart ${binfile}
+ clean_restart ${::testfile}
}
# Make sure we're disconnected, in case we're testing with an
@@ -78,7 +78,7 @@ proc run_test { target_non_stop disable_feature } {
"Support for the 'multiprocess-feature' packet on future remote targets is set to \"off\"."
set res [gdb_target_cmd $gdbserver_protocol $gdbserver_gdbport]
- if ![gdb_assert {$res == 0} "connect"] {
+ if { ![gdb_assert {$res == 0} "connect"] } {
return
}
diff --git a/gdb/testsuite/gdb.server/stop-reply-no-thread.exp b/gdb/testsuite/gdb.server/stop-reply-no-thread.exp
index 38402e8..aa77095 100644
--- a/gdb/testsuite/gdb.server/stop-reply-no-thread.exp
+++ b/gdb/testsuite/gdb.server/stop-reply-no-thread.exp
@@ -42,7 +42,7 @@ proc run_test { disable_feature target_nonstop } {
set GDBFLAGS "$GDBFLAGS -ex \"set sysroot\""
}
- clean_restart ${binfile}
+ clean_restart ${::testfile}
}
# Make sure we're disconnected, in case we're testing with an
@@ -70,7 +70,7 @@ proc run_test { disable_feature target_nonstop } {
gdb_test_no_output "maint set target-non-stop ${target_nonstop}"
set res [gdb_target_cmd $gdbserver_protocol $gdbserver_gdbport]
- if ![gdb_assert {$res == 0} "connect"] {
+ if { ![gdb_assert {$res == 0} "connect"] } {
return
}
diff --git a/gdb/testsuite/gdb.testsuite/board-sanity.exp b/gdb/testsuite/gdb.testsuite/board-sanity.exp
index 9c80282..7b9a19e 100644
--- a/gdb/testsuite/gdb.testsuite/board-sanity.exp
+++ b/gdb/testsuite/gdb.testsuite/board-sanity.exp
@@ -44,7 +44,7 @@ proc test_remote { remote host_is_target } {
if { $host_is_target } {
set res [remote_file $other_remote exists $file]
gdb_assert { $res != $exists_ok } \
- "$other_remote copy does not exist"
+ "$other_remote copy does not exist"
}
}
@@ -80,7 +80,7 @@ proc test_remote { remote host_is_target } {
set build_file [remote_upload $remote $file]
gdb_assert { [string equal [file tail $build_file] $file] == 1 } \
"remote_upload returns valid value"
-
+
set res [remote_file $remote delete $file]
gdb_assert { [string equal $res $delete_ok] == 1 } \
"remove $remote copy"
@@ -92,7 +92,7 @@ proc test_remote { remote host_is_target } {
if { $host_is_target } {
set res [remote_file $other_remote exists $file]
gdb_assert { $res != $exists_ok } \
- "$other_remote copy does not exist"
+ "$other_remote copy does not exist"
}
set res [remote_file build exists $file]
diff --git a/gdb/testsuite/gdb.testsuite/gdb-caching-proc-consistency.exp b/gdb/testsuite/gdb.testsuite/gdb-caching-proc-consistency.exp
index 0957dbd..27f905e 100644
--- a/gdb/testsuite/gdb.testsuite/gdb-caching-proc-consistency.exp
+++ b/gdb/testsuite/gdb.testsuite/gdb-caching-proc-consistency.exp
@@ -63,8 +63,8 @@ proc test_file { file } {
set fp [open $file]
while { [gets $fp line] >= 0 } {
- if [regexp -- "^gdb_caching_proc \[ \t\]*(\[^ \t\]*)" $line \
- match procname] {
+ if { [regexp -- "^gdb_caching_proc \[ \t\]*(\[^ \t\]*)" $line \
+ match procname] } {
lappend procnames $procname
}
}
@@ -95,7 +95,8 @@ proc test_file { file } {
}
if { $setup_gdb } {
- clean_restart $obj
+ clean_restart
+ gdb_load $obj
}
test_proc $procname
@@ -113,7 +114,7 @@ if { ![gdb_simple_compile $me $src executable] } {
}
# Test gdb_caching_procs in gdb/testsuite/lib/*.exp
-set files [eval glob -types f $srcdir/lib/*.exp]
+set files [glob -types f $srcdir/lib/*.exp]
set files [lsort $files]
foreach file $files {
test_file $file
diff --git a/gdb/testsuite/gdb.testsuite/gdb-caching-proc.exp b/gdb/testsuite/gdb.testsuite/gdb-caching-proc.exp
index f9610af..6b46b1c 100644
--- a/gdb/testsuite/gdb.testsuite/gdb-caching-proc.exp
+++ b/gdb/testsuite/gdb.testsuite/gdb-caching-proc.exp
@@ -22,23 +22,32 @@ gdb_caching_proc gdb_testsuite_gdb_caching_proc_exp_arg { arg } {
return $arg
}
+gdb_caching_proc gdb_testsuite_gdb_caching_proc_exp_arg_nested { arg } {
+ incr ::count
+ return [gdb_testsuite_gdb_caching_proc_exp_arg $arg]
+}
+
+# List of "expected $::count after running expression" and
+# "expression".
set assertions {
- { [gdb_testsuite_gdb_caching_proc_exp_noarg] == 1 }
- { [gdb_testsuite_gdb_caching_proc_exp_arg 1] == 1 }
- { [gdb_testsuite_gdb_caching_proc_exp_arg "foo foo"] == "foo foo" }
+ 1 { [gdb_testsuite_gdb_caching_proc_exp_noarg] == 1 }
+ 1 { [gdb_testsuite_gdb_caching_proc_exp_arg 1] == 1 }
+ 1 { [gdb_testsuite_gdb_caching_proc_exp_arg "foo foo"] == "foo foo" }
+ 1 { [gdb_testsuite_gdb_caching_proc_exp_arg_nested "foo foo"] == "foo foo" }
+ 2 { [gdb_testsuite_gdb_caching_proc_exp_arg_nested "bar bar"] == "bar bar" }
}
set assertion_nr 0
-foreach assertion $assertions {
+foreach {expected_count assertion} $assertions {
with_test_prefix $assertion_nr {
set ::count 0
gdb_assert $assertion
- gdb_assert { $::count == 1 }
+ gdb_assert { $::count == $expected_count }
with_test_prefix cached {
gdb_assert $assertion
- gdb_assert { $::count == 1 }
+ gdb_assert { $::count == $expected_count }
}
}
incr assertion_nr
diff --git a/gdb/testsuite/gdb.testsuite/mount-point-map.exp b/gdb/testsuite/gdb.testsuite/mount-point-map.exp
new file mode 100644
index 0000000..9e462bb
--- /dev/null
+++ b/gdb/testsuite/gdb.testsuite/mount-point-map.exp
@@ -0,0 +1,49 @@
+# Copyright 2025 Free Software Foundation, Inc.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+set unix_to_win {
+ /bin C:/msys64/usr/bin
+ /c C:
+ / C:/msys64
+}
+
+# Test that FROM is normalized to TO.
+
+proc test {from to} {
+ set got [host_file_normalize_mingw $from $::unix_to_win]
+ verbose -log "input: $from"
+ verbose -log "expected: $to"
+ verbose -log "got: $got"
+ gdb_assert {$got == $to} $from
+}
+
+# Drive letters always get a '/' suffix, other Windows file names do
+# not.
+test "/" "C:/msys64"
+test "/c" "C:/"
+test "/bin" "C:/msys64/usr/bin"
+
+# A file name that already starts with a drive letter.
+test "C:/msys64" "C:/msys64"
+
+# A subdir/subfile under each mount.
+test "/foo" "C:/msys64/foo"
+test "/c/foo" "C:/foo"
+test "/bin/foo" "C:/msys64/usr/bin/foo"
+
+# Test slash normalization.
+test "//" "C:/msys64"
+test "/c///foo//bar//" "C:/foo/bar"
+# We don't currently handle UNC paths.
+test "//server///" "C:/msys64/server"
diff --git a/gdb/testsuite/gdb.testsuite/with-override.exp b/gdb/testsuite/gdb.testsuite/with-override.exp
index 9180150..2a316f9 100644
--- a/gdb/testsuite/gdb.testsuite/with-override.exp
+++ b/gdb/testsuite/gdb.testsuite/with-override.exp
@@ -42,6 +42,10 @@ with_test_prefix no-args {
gdb_assert { [foo] == 2 }
}
}
+
+ with_test_prefix "foo1 again" {
+ gdb_assert { [foo] == 1 }
+ }
}
with_test_prefix after {
@@ -50,11 +54,11 @@ with_test_prefix no-args {
}
proc foo { {a 0} } {
- return [expr $a + 1]
+ return [expr {$a + 1}]
}
proc foo_plus_1 { {a 0} } {
- return [expr $a + 2]
+ return [expr {$a + 2}]
}
with_test_prefix default-arg {
diff --git a/gdb/testsuite/gdb.threads/access-mem-running-thread-exit.exp b/gdb/testsuite/gdb.threads/access-mem-running-thread-exit.exp
index fec31c3..64d2f53 100644
--- a/gdb/testsuite/gdb.threads/access-mem-running-thread-exit.exp
+++ b/gdb/testsuite/gdb.threads/access-mem-running-thread-exit.exp
@@ -51,10 +51,10 @@ proc test { non_stop } {
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"set non-stop $non_stop\""
- clean_restart ${binfile}
+ clean_restart ${::testfile}
}
- if ![runto setup_done] {
+ if {![runto setup_done]} {
return -1
}
@@ -101,7 +101,7 @@ proc test { non_stop } {
#
# Since it's reload_on_run targets that need special care,
# we default to reusing the connection on most targets.
- if [target_info exists gdb,do_reload_on_run] {
+ if {[target_info exists gdb,do_reload_on_run]} {
gdb_test "add-inferior -no-connection" "New inferior 2.*"
} else {
gdb_test "add-inferior" "New inferior 2.*"
@@ -110,7 +110,7 @@ proc test { non_stop } {
gdb_load $binfile
- if ![runto setup_done] {
+ if {![runto setup_done]} {
return -1
}
}
@@ -187,7 +187,7 @@ proc test { non_stop } {
}
foreach non_stop { "off" "on" } {
- set stop_mode [expr ($non_stop=="off")?"all-stop":"non-stop"]
+ set stop_mode [expr {($non_stop=="off")?"all-stop":"non-stop"}]
with_test_prefix "$stop_mode" {
test $non_stop
}
diff --git a/gdb/testsuite/gdb.threads/async.exp b/gdb/testsuite/gdb.threads/async.exp
index b1e562a..6347333 100644
--- a/gdb/testsuite/gdb.threads/async.exp
+++ b/gdb/testsuite/gdb.threads/async.exp
@@ -32,7 +32,7 @@ proc test_current_thread {expected_thr} {
global gdb_prompt
global binfile
- clean_restart $binfile
+ clean_restart $::testfile
if {![runto "all_started"]} {
return
diff --git a/gdb/testsuite/gdb.threads/attach-into-signal.exp b/gdb/testsuite/gdb.threads/attach-into-signal.exp
index 0629736..ca452c1 100644
--- a/gdb/testsuite/gdb.threads/attach-into-signal.exp
+++ b/gdb/testsuite/gdb.threads/attach-into-signal.exp
@@ -58,7 +58,7 @@ proc corefunc { threadtype executable } {
# nonthreaded:
pass $test
verbose -log "$test succeeded on the attempt # $attempt of $attempts"
- set passes [expr $passes + 1]
+ set passes [expr {$passes + 1}]
}
-re "Attaching to program.*`?$escapedbinfile'?, process $testpid.*$gdb_prompt $" {
set ok 0
@@ -84,11 +84,11 @@ proc corefunc { threadtype executable } {
if { $ok == 0} {
# We just lack the luck, we should try it again.
- set attempt [expr $attempt + 1]
+ set attempt [expr {$attempt + 1}]
} else {
pass $test
verbose -log "$test succeeded on the attempt # $attempt of $attempts"
- set passes [expr $passes + 1]
+ set passes [expr {$passes + 1}]
}
}
}] != 0 } {
diff --git a/gdb/testsuite/gdb.threads/attach-non-stop.exp b/gdb/testsuite/gdb.threads/attach-non-stop.exp
index 9404edd..b8da5b1 100644
--- a/gdb/testsuite/gdb.threads/attach-non-stop.exp
+++ b/gdb/testsuite/gdb.threads/attach-non-stop.exp
@@ -37,7 +37,7 @@ proc test {target_non_stop non_stop cmd} {
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"maint set target-non-stop $target_non_stop\""
append GDBFLAGS " -ex \"set non-stop $non_stop\""
- clean_restart $binfile
+ clean_restart $::testfile
}
set test_spawn_id [spawn_wait_for_attach $binfile]
diff --git a/gdb/testsuite/gdb.threads/attach-stopped.exp b/gdb/testsuite/gdb.threads/attach-stopped.exp
index e628adf..0391914 100644
--- a/gdb/testsuite/gdb.threads/attach-stopped.exp
+++ b/gdb/testsuite/gdb.threads/attach-stopped.exp
@@ -40,13 +40,13 @@ proc corefunc { threadtype } {
set test_spawn_id [spawn_wait_for_attach $binfile]
set testpid [spawn_id_get_pid $test_spawn_id]
- # Stop the program
+ # Stop the program
remote_exec build "kill -s STOP ${testpid}"
- clean_restart $binfile
+ clean_restart $::testfile
# Verify that we can attach to the stopped process.
-
+
set test "$threadtype: attach2 to stopped, after setting file"
gdb_test_multiple "attach $testpid" "$test" {
-re "Attaching to program.*`?$escapedbinfile'?, process $testpid.*$gdb_prompt $" {
diff --git a/gdb/testsuite/gdb.threads/bp_in_thread.exp b/gdb/testsuite/gdb.threads/bp_in_thread.exp
index c63f179..5180c18 100644
--- a/gdb/testsuite/gdb.threads/bp_in_thread.exp
+++ b/gdb/testsuite/gdb.threads/bp_in_thread.exp
@@ -24,7 +24,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
return -1
}
-clean_restart $binfile
+clean_restart $::testfile
runto_main
diff --git a/gdb/testsuite/gdb.threads/break-while-running.exp b/gdb/testsuite/gdb.threads/break-while-running.exp
index fbc2b59..c1e1051 100644
--- a/gdb/testsuite/gdb.threads/break-while-running.exp
+++ b/gdb/testsuite/gdb.threads/break-while-running.exp
@@ -39,12 +39,12 @@ proc test { update_thread_list always_inserted non_stop } {
global gdb_prompt
global decimal
- clean_restart $binfile
+ clean_restart $::testfile
gdb_test_no_output "set non-stop $non_stop"
gdb_test_no_output "set breakpoint always-inserted $always_inserted"
- if ![runto_main] {
+ if {![runto_main]} {
return -1
}
@@ -152,8 +152,8 @@ proc test { update_thread_list always_inserted non_stop } {
foreach update_thread_list { true false } {
foreach always_inserted { "off" "on" } {
foreach non_stop { "off" "on" } {
- set stop_mode [expr ($non_stop=="off")?"all-stop":"non-stop"]
- set update_list_mode [expr ($update_thread_list)?"w/ithr":"wo/ithr"]
+ set stop_mode [expr {($non_stop=="off")?"all-stop":"non-stop"}]
+ set update_list_mode [expr {($update_thread_list)?"w/ithr":"wo/ithr"}]
with_test_prefix "$update_list_mode: always-inserted $always_inserted: $stop_mode" {
test $update_thread_list $always_inserted $non_stop
}
diff --git a/gdb/testsuite/gdb.threads/check-libthread-db.exp b/gdb/testsuite/gdb.threads/check-libthread-db.exp
index b97ab49..6d63185 100644
--- a/gdb/testsuite/gdb.threads/check-libthread-db.exp
+++ b/gdb/testsuite/gdb.threads/check-libthread-db.exp
@@ -40,7 +40,7 @@ set initial_thread_re "($thread_re1|$thread_re2)"
with_test_prefix "user-initiated check" {
# User-initiated check with libthread_db not loaded.
- clean_restart ${binfile}
+ clean_restart ${::testfile}
gdb_test "maint show check-libthread-db" \
"Whether to check libthread_db at load time is off."
@@ -85,7 +85,7 @@ with_test_prefix "automated load-time check" {
# Automated load-time check with NPTL possibly uninitialized.
with_test_prefix "libpthread.so possibly not initialized" {
- clean_restart ${binfile}
+ clean_restart ${::testfile}
gdb_test_no_output "maint set check-libthread-db 1"
gdb_test_no_output "set debug libthread-db 1"
@@ -104,7 +104,7 @@ with_test_prefix "automated load-time check" {
# Automated load-time check with NPTL fully operational.
if { [can_spawn_for_attach] } {
with_test_prefix "libpthread.so fully initialized" {
- clean_restart ${binfile}
+ clean_restart ${::testfile}
gdb_test_no_output "maint set check-libthread-db 1"
gdb_test_no_output "set debug libthread-db 1"
diff --git a/gdb/testsuite/gdb.threads/clone-attach-detach.exp b/gdb/testsuite/gdb.threads/clone-attach-detach.exp
index 3da2c3e..b0f5e52 100644
--- a/gdb/testsuite/gdb.threads/clone-attach-detach.exp
+++ b/gdb/testsuite/gdb.threads/clone-attach-detach.exp
@@ -19,7 +19,7 @@
# clone as proxy for when libthread_db is not available.
# This only works on targets with the Linux kernel.
-if ![istarget *-*-linux*] {
+if {![istarget *-*-linux*]} {
return
}
@@ -27,7 +27,7 @@ require can_spawn_for_attach
standard_testfile
-if [prepare_for_testing "failed to prepare" $testfile $srcfile {debug}] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug}]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/clone-thread_db.exp b/gdb/testsuite/gdb.threads/clone-thread_db.exp
index 7ee233d..12349e2 100644
--- a/gdb/testsuite/gdb.threads/clone-thread_db.exp
+++ b/gdb/testsuite/gdb.threads/clone-thread_db.exp
@@ -16,17 +16,17 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# This only works on targets with the Linux kernel.
-if ![istarget *-*-linux*] {
+if {![istarget *-*-linux*]} {
return
}
standard_testfile
-if [prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/continue-pending-after-query.exp b/gdb/testsuite/gdb.threads/continue-pending-after-query.exp
index 5069cd2..1da2e23 100644
--- a/gdb/testsuite/gdb.threads/continue-pending-after-query.exp
+++ b/gdb/testsuite/gdb.threads/continue-pending-after-query.exp
@@ -51,7 +51,7 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}
proc test {} {
global srcfile gdb_prompt
- if ![runto_main] {
+ if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/continue-pending-status.exp b/gdb/testsuite/gdb.threads/continue-pending-status.exp
index 9cde85a..447b683 100644
--- a/gdb/testsuite/gdb.threads/continue-pending-status.exp
+++ b/gdb/testsuite/gdb.threads/continue-pending-status.exp
@@ -21,11 +21,11 @@ require {!target_info exists gdb,nointerrupts}
standard_testfile
-if [prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/corethreads.exp b/gdb/testsuite/gdb.threads/corethreads.exp
index 3b50ae3..0011dc3 100644
--- a/gdb/testsuite/gdb.threads/corethreads.exp
+++ b/gdb/testsuite/gdb.threads/corethreads.exp
@@ -29,6 +29,7 @@ if { [gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executa
set corefile [core_find $binfile]
if {$corefile == ""} {
+ untested "unable to create or find corefile"
return 0
}
diff --git a/gdb/testsuite/gdb.threads/create-fail.exp b/gdb/testsuite/gdb.threads/create-fail.exp
index 14f3f4b..5d633f9 100644
--- a/gdb/testsuite/gdb.threads/create-fail.exp
+++ b/gdb/testsuite/gdb.threads/create-fail.exp
@@ -33,7 +33,7 @@ for {set i 1} {$i <= $iterations} {incr i} {
clean_restart ${executable}
- if ![runto_main] {
+ if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/del-pending-thread-bp.exp b/gdb/testsuite/gdb.threads/del-pending-thread-bp.exp
index 1fbfc40..bdc519f 100644
--- a/gdb/testsuite/gdb.threads/del-pending-thread-bp.exp
+++ b/gdb/testsuite/gdb.threads/del-pending-thread-bp.exp
@@ -44,7 +44,7 @@ if { [prepare_for_testing "failed to prepare" $testfile $srcfile \
gdb_locate_shlib $binfile_lib
-if ![runto_main] {
+if {![runto_main]} {
return 0
}
diff --git a/gdb/testsuite/gdb.threads/detach-step-over.exp b/gdb/testsuite/gdb.threads/detach-step-over.exp
index 8a1cb29..98b412c 100644
--- a/gdb/testsuite/gdb.threads/detach-step-over.exp
+++ b/gdb/testsuite/gdb.threads/detach-step-over.exp
@@ -66,7 +66,7 @@ proc start_gdb_for_test {condition_eval target_non_stop non_stop displaced} {
append ::GDBFLAGS " -ex \"set non-stop $non_stop\""
append ::GDBFLAGS " -ex \"set displaced $displaced\""
append ::GDBFLAGS " -ex \"set schedule-multiple on\""
- clean_restart $::binfile
+ clean_restart $::testfile
}
gdb_test_no_output "set breakpoint condition-evaluation $condition_eval"
@@ -229,7 +229,7 @@ proc_with_prefix test_detach_command {condition_eval target_non_stop non_stop di
set running_count 0
set interrupted 0
- set running_expected [expr ($::n_threads + 1) * 2]
+ set running_expected [expr {($::n_threads + 1) * 2}]
gdb_test_multiple "info threads" "threads running" {
-re "\\(running\\)" {
incr running_count
@@ -357,7 +357,7 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile $options] == -1}
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/execl.exp b/gdb/testsuite/gdb.threads/execl.exp
index 502d387..a42dce9 100644
--- a/gdb/testsuite/gdb.threads/execl.exp
+++ b/gdb/testsuite/gdb.threads/execl.exp
@@ -31,7 +31,7 @@ if {[gdb_compile "${srcdir}/${subdir}/${srcfile1}" "${binfile1}" executable {deb
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
if { [is_remote target] } {
gdb_remote_download target $binfile1
}
diff --git a/gdb/testsuite/gdb.threads/foll-fork-other-thread.exp b/gdb/testsuite/gdb.threads/foll-fork-other-thread.exp
index 8ab540c..29ec34c 100644
--- a/gdb/testsuite/gdb.threads/foll-fork-other-thread.exp
+++ b/gdb/testsuite/gdb.threads/foll-fork-other-thread.exp
@@ -46,7 +46,7 @@ proc do_test { fork_func follow target-non-stop non-stop displaced-stepping } {
save_vars { ::GDBFLAGS } {
append ::GDBFLAGS " -ex \"maintenance set target-non-stop ${target-non-stop}\""
append ::GDBFLAGS " -ex \"set non-stop ${non-stop}\""
- clean_restart ${::binfile}-${fork_func}
+ clean_restart ${::testfile}-${fork_func}
}
gdb_test_no_output "set displaced-stepping ${displaced-stepping}"
diff --git a/gdb/testsuite/gdb.threads/fork-child-threads.exp b/gdb/testsuite/gdb.threads/fork-child-threads.exp
index ba9dfc2..d1b413c 100644
--- a/gdb/testsuite/gdb.threads/fork-child-threads.exp
+++ b/gdb/testsuite/gdb.threads/fork-child-threads.exp
@@ -21,7 +21,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.threads/fork-plus-threads.exp b/gdb/testsuite/gdb.threads/fork-plus-threads.exp
index 4ce88d3..c41b164 100644
--- a/gdb/testsuite/gdb.threads/fork-plus-threads.exp
+++ b/gdb/testsuite/gdb.threads/fork-plus-threads.exp
@@ -76,7 +76,7 @@ proc do_test { detach-on-fork } {
set saw_cannot_remove_breakpoints 0
set saw_thread_stopped 0
- set expected_num_inferior_exits [expr ${detach-on-fork} == "off" ? 11 : 1]
+ set expected_num_inferior_exits [expr {${detach-on-fork} == "off" ? 11 : 1}]
# Flags indicating if we have see the exit for each inferior.
for {set i 1} {$i <= $expected_num_inferior_exits} {incr i} {
diff --git a/gdb/testsuite/gdb.threads/fork-thread-pending.exp b/gdb/testsuite/gdb.threads/fork-thread-pending.exp
index 538e1ca..e0e3625 100644
--- a/gdb/testsuite/gdb.threads/fork-thread-pending.exp
+++ b/gdb/testsuite/gdb.threads/fork-thread-pending.exp
@@ -21,7 +21,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
if {![runto_main]} {
return 0
@@ -75,7 +75,7 @@ gdb_test_multiple "info threads" "$test" {
# Start over, but this time, don't switch away from the fork event thread.
-clean_restart $binfile
+clean_restart $::testfile
if {![runto_main]} {
return 0
}
diff --git a/gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.exp b/gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.exp
index c668a65..d65fe83d 100644
--- a/gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.exp
+++ b/gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.exp
@@ -37,7 +37,7 @@ proc probe_displaced_stepping_support {} {
global binfile gdb_prompt
with_test_prefix "probe displaced-stepping support" {
- clean_restart $binfile
+ clean_restart $::testfile
gdb_test_no_output "set displaced on"
if {![runto_main]} {
@@ -76,7 +76,7 @@ proc do_test { cond_bp_target detach_on_fork displaced } {
save_vars { GDBFLAGS } {
set GDBFLAGS [concat $GDBFLAGS " -ex \"set non-stop on\""]
- clean_restart $binfile
+ clean_restart $::testfile
}
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.threads/gcore-thread.exp b/gdb/testsuite/gdb.threads/gcore-thread.exp
index 4e00f80..f32e9b4 100644
--- a/gdb/testsuite/gdb.threads/gcore-thread.exp
+++ b/gdb/testsuite/gdb.threads/gcore-thread.exp
@@ -123,7 +123,7 @@ proc load_core { filename } {
}
# FIXME: now what can we test about the thread state?
- # We do not know for certain that there should be at least
+ # We do not know for certain that there should be at least
# three threads, because who knows what kind of many-to-one
# mapping various OS's may do? Let's assume that there must
# be at least two threads:
diff --git a/gdb/testsuite/gdb.threads/hand-call-in-threads.exp b/gdb/testsuite/gdb.threads/hand-call-in-threads.exp
index d1be1d0..f9c9e87 100644
--- a/gdb/testsuite/gdb.threads/hand-call-in-threads.exp
+++ b/gdb/testsuite/gdb.threads/hand-call-in-threads.exp
@@ -44,7 +44,7 @@ proc get_dummy_frame_number { } {
return ""
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
if { ![runto_main] } {
return 0
@@ -74,7 +74,7 @@ gdb_test "show scheduler-locking" ".* locking scheduler .* is \"on\"." "show sch
# stop without returning.
# Add one for the main thread.
-set total_nr_threads [expr $NR_THREADS + 1]
+set total_nr_threads [expr {$NR_THREADS + 1}]
# Thread numbering in gdb is origin-1, so begin numbering at 1.
for { set i 1 } { $i <= $total_nr_threads } { incr i } {
diff --git a/gdb/testsuite/gdb.threads/hand-call-new-thread.exp b/gdb/testsuite/gdb.threads/hand-call-new-thread.exp
index 6b859ff..479c2ff 100644
--- a/gdb/testsuite/gdb.threads/hand-call-new-thread.exp
+++ b/gdb/testsuite/gdb.threads/hand-call-new-thread.exp
@@ -18,11 +18,11 @@
standard_testfile
-if [prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}]} {
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.threads/ia64-sigill.exp b/gdb/testsuite/gdb.threads/ia64-sigill.exp
index ac6ff20..46954de 100644
--- a/gdb/testsuite/gdb.threads/ia64-sigill.exp
+++ b/gdb/testsuite/gdb.threads/ia64-sigill.exp
@@ -27,7 +27,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" ${binfile} executable
clean_restart $testfile
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/inf-thr-count.exp b/gdb/testsuite/gdb.threads/inf-thr-count.exp
index 61533ab..4508be2 100644
--- a/gdb/testsuite/gdb.threads/inf-thr-count.exp
+++ b/gdb/testsuite/gdb.threads/inf-thr-count.exp
@@ -44,10 +44,10 @@ if {[build_executable "failed to prepare" $testfile $srcfile \
# the inferior while it is running.
save_vars {GDBFLAGS} {
append GDBFLAGS { -ex "set non-stop on"}
- clean_restart $binfile
+ clean_restart $::testfile
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-other-thread-event.exp b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-other-thread-event.exp
index 62a183c..35a1fe5 100644
--- a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-other-thread-event.exp
+++ b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-other-thread-event.exp
@@ -53,7 +53,7 @@ proc start_gdb_and_runto_main { target_async target_non_stop } {
append ::GDBFLAGS \
" -ex \"maintenance set target-async ${target_async}\""
- clean_restart ${::binfile}
+ clean_restart ${::testfile}
}
if { ![runto_main] } {
diff --git a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.exp b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.exp
index 0f068c6..ed98998 100644
--- a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.exp
+++ b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.exp
@@ -42,7 +42,7 @@ proc start_gdb_and_runto_main { target_async target_non_stop } {
append ::GDBFLAGS \
" -ex \"maintenance set target-async ${target_async}\""
- clean_restart ${::binfile}
+ clean_restart ${::testfile}
}
if { ![runto_main] } {
diff --git a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-single.exp b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-single.exp
index c404a7d..bc12fb4 100644
--- a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-single.exp
+++ b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-single.exp
@@ -38,7 +38,7 @@ proc start_gdb_and_runto_main { target_async target_non_stop } {
append ::GDBFLAGS \
" -ex \"maintenance set target-async ${target_async}\""
- clean_restart ${::binfile}
+ clean_restart ${::testfile}
}
if { ![runto_main] } {
diff --git a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-timeout.exp b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-timeout.exp
index 9dbaa4f..03c6959 100644
--- a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-timeout.exp
+++ b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-timeout.exp
@@ -52,7 +52,7 @@ proc run_test { target_async target_non_stop non_stop other_thread_bp unwind } {
append ::GDBFLAGS " -ex \"maint non-stop $non_stop\""
append ::GDBFLAGS " -ex \"maintenance set target-async ${target_async}\""
- clean_restart ${::binfile}
+ clean_restart ${::testfile}
}
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.threads/infcall-thread-announce.exp b/gdb/testsuite/gdb.threads/infcall-thread-announce.exp
index 68fd7b7..59a5bcf 100644
--- a/gdb/testsuite/gdb.threads/infcall-thread-announce.exp
+++ b/gdb/testsuite/gdb.threads/infcall-thread-announce.exp
@@ -23,7 +23,7 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/info-threads-cur-sal.exp b/gdb/testsuite/gdb.threads/info-threads-cur-sal.exp
index 2d57136..784caf9 100644
--- a/gdb/testsuite/gdb.threads/info-threads-cur-sal.exp
+++ b/gdb/testsuite/gdb.threads/info-threads-cur-sal.exp
@@ -25,7 +25,7 @@ if {[gdb_compile_pthreads \
clean_restart ${executable}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/info-threads-options.exp b/gdb/testsuite/gdb.threads/info-threads-options.exp
index 38e4e67..b322261 100644
--- a/gdb/testsuite/gdb.threads/info-threads-options.exp
+++ b/gdb/testsuite/gdb.threads/info-threads-options.exp
@@ -24,10 +24,10 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"set non-stop on\""
- clean_restart $binfile
+ clean_restart $::testfile
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/interrupt-while-step-over.exp b/gdb/testsuite/gdb.threads/interrupt-while-step-over.exp
index 05587eb..d3f328b 100644
--- a/gdb/testsuite/gdb.threads/interrupt-while-step-over.exp
+++ b/gdb/testsuite/gdb.threads/interrupt-while-step-over.exp
@@ -84,7 +84,7 @@ proc test_one_iteration {} {
exp_continue
}
-re "$gdb_prompt " {
- if ![gdb_assert $saw_continuing $test] {
+ if {![gdb_assert $saw_continuing $test]} {
return 1
}
}
@@ -101,7 +101,7 @@ proc test_one_iteration {} {
exp_continue
}
-re "$gdb_prompt " {
- if ![gdb_assert {$running_count == $NUM_THREADS} $test] {
+ if {![gdb_assert {$running_count == $NUM_THREADS} $test]} {
return 1
}
}
@@ -151,7 +151,7 @@ proc test_one_iteration {} {
exp_continue
}
-re "$gdb_prompt " {
- if ![gdb_assert {$running_count == 0} $test] {
+ if {![gdb_assert {$running_count == 0} $test]} {
return 1
}
}
@@ -169,12 +169,12 @@ proc testdriver {displaced} {
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"set non-stop on\""
- clean_restart $binfile
+ clean_restart $::testfile
}
gdb_test_no_output "set displaced-stepping $displaced"
- if ![runto all_started] {
+ if {![runto all_started]} {
return
}
set break_line [gdb_get_line_number "set breakpoint here"]
diff --git a/gdb/testsuite/gdb.threads/interrupted-hand-call.exp b/gdb/testsuite/gdb.threads/interrupted-hand-call.exp
index 3a2bc63..15c48b1 100644
--- a/gdb/testsuite/gdb.threads/interrupted-hand-call.exp
+++ b/gdb/testsuite/gdb.threads/interrupted-hand-call.exp
@@ -28,7 +28,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
if { ![runto_main] } {
return 0
diff --git a/gdb/testsuite/gdb.threads/kill.exp b/gdb/testsuite/gdb.threads/kill.exp
index 3e6aa8b..72f829c 100644
--- a/gdb/testsuite/gdb.threads/kill.exp
+++ b/gdb/testsuite/gdb.threads/kill.exp
@@ -23,7 +23,7 @@ standard_testfile
proc test {threaded} {
global testfile srcfile decimal
- with_test_prefix [expr ($threaded)?"threaded":"non-threaded"] {
+ with_test_prefix [expr {($threaded)?"threaded":"non-threaded"}] {
set options {debug}
if {$threaded} {
diff --git a/gdb/testsuite/gdb.threads/killed.exp b/gdb/testsuite/gdb.threads/killed.exp
index b1cec80b0..635ffc8 100644
--- a/gdb/testsuite/gdb.threads/killed.exp
+++ b/gdb/testsuite/gdb.threads/killed.exp
@@ -29,7 +29,7 @@
# There is absolutely no warranty for GDB. Type "show warranty" for details.
# This GDB was configured as "i686-pc-linux-gnu"...
# (gdb) run
-# Starting program: /home/jimb/foo/play/killed
+# Starting program: /home/jimb/foo/play/killed
# [New Thread 1024 (LWP 6487)]
# [New Thread 2049 (LWP 6488)]
# [New Thread 1026 (LWP 6489)]
@@ -42,17 +42,17 @@
# Cannot find thread 2049: generic error
# (gdb) The program is running. Exit anyway? (y or n) y
# Cannot find thread 2049: generic error
-# (gdb)
+# (gdb)
# [7]+ Stopped $D6/gdb/gdb -nw killed
# $ kill %7
-#
+#
# [7]+ Stopped $D6/gdb/gdb -nw killed
# $ kill -9 %7
-#
+#
# [7]+ Stopped $D6/gdb/gdb -nw killed
-# $
+# $
# [7]+ Killed $D6/gdb/gdb -nw killed
-# $
+# $
standard_testfile
@@ -62,7 +62,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_run_cmd
gdb_test "" "" "run program to completion"
diff --git a/gdb/testsuite/gdb.threads/leader-exit-attach.exp b/gdb/testsuite/gdb.threads/leader-exit-attach.exp
index 641d6b5..2df4a18 100644
--- a/gdb/testsuite/gdb.threads/leader-exit-attach.exp
+++ b/gdb/testsuite/gdb.threads/leader-exit-attach.exp
@@ -31,7 +31,7 @@ set testpid [spawn_id_get_pid $test_spawn_id]
# Wait a bit for the leader thread to exit, before attaching.
sleep 2
-clean_restart ${binfile}
+clean_restart ${::testfile}
# Save this early as we may not be able to talk with GDBserver anymore
# when we need to check it.
diff --git a/gdb/testsuite/gdb.threads/leader-exit.exp b/gdb/testsuite/gdb.threads/leader-exit.exp
index 1bc017b..85039b8 100644
--- a/gdb/testsuite/gdb.threads/leader-exit.exp
+++ b/gdb/testsuite/gdb.threads/leader-exit.exp
@@ -26,7 +26,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
clean_restart ${executable}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/linux-dp.exp b/gdb/testsuite/gdb.threads/linux-dp.exp
index 1652f78..c0ef9c7 100644
--- a/gdb/testsuite/gdb.threads/linux-dp.exp
+++ b/gdb/testsuite/gdb.threads/linux-dp.exp
@@ -44,7 +44,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_test_no_output "set print sevenbit-strings"
runto_main
@@ -117,7 +117,7 @@ for {set i 0} {$i < 5} {incr i} {
} else {
fail "create philosopher: $i"
}
-
+
set threads_after {}
gdb_test_multiple "info threads" "info threads after: $i" {
-re "info threads\r\n" {
@@ -172,7 +172,7 @@ for {set i 1} {$i < $nthreads} {incr i} {
append info_threads_ptn "$i *Thread .*"
}
append info_threads_ptn "\[\r\n\]+$gdb_prompt $"
-set info_threads_manager_ptn "[expr $nthreads + 1] *Thread .*$info_threads_ptn"
+set info_threads_manager_ptn "[expr {$nthreads + 1}] *Thread .*$info_threads_ptn"
gdb_test_multiple "info threads" "info threads 2" {
-re "$info_threads_manager_ptn" {
@@ -241,7 +241,7 @@ for {set i 0} {$only_five > 0 && $i < 10} {incr i} {
-re ".*$gdb_prompt $" {
set only_five 0
}
- timeout {
+ timeout {
set only_five -1
}
}
@@ -331,7 +331,7 @@ set any_interesting 0
catch {unset seen}
array set seen {}
for {set i 1} {$i <= $nthreads} {incr i} {
- if [check_philosopher_stack $i seen] {
+ if {[check_philosopher_stack $i seen]} {
set any_interesting 1
}
}
diff --git a/gdb/testsuite/gdb.threads/local-watch-wrong-thread.exp b/gdb/testsuite/gdb.threads/local-watch-wrong-thread.exp
index 3006b83..a63f0be 100644
--- a/gdb/testsuite/gdb.threads/local-watch-wrong-thread.exp
+++ b/gdb/testsuite/gdb.threads/local-watch-wrong-thread.exp
@@ -28,7 +28,7 @@ if {[gdb_compile_pthreads \
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_test_no_output "set can-use-hw-watchpoints 1" ""
diff --git a/gdb/testsuite/gdb.threads/main-thread-exit-during-detach.exp b/gdb/testsuite/gdb.threads/main-thread-exit-during-detach.exp
index 20e7bc4..1ce0194 100644
--- a/gdb/testsuite/gdb.threads/main-thread-exit-during-detach.exp
+++ b/gdb/testsuite/gdb.threads/main-thread-exit-during-detach.exp
@@ -50,7 +50,7 @@ if {[build_executable "failed to prepare" $testfile $srcfile \
proc run_test { spawn_inferior } {
save_vars { ::GDBFLAGS } {
append ::GDBFLAGS " -ex \"set non-stop on\""
- clean_restart $::binfile
+ clean_restart $::testfile
}
# Setup the inferior. When complete the main thread (#1) will
diff --git a/gdb/testsuite/gdb.threads/manythreads.exp b/gdb/testsuite/gdb.threads/manythreads.exp
index ae51c5a..0a09897 100644
--- a/gdb/testsuite/gdb.threads/manythreads.exp
+++ b/gdb/testsuite/gdb.threads/manythreads.exp
@@ -22,7 +22,7 @@ require {!target_info exists gdb,nointerrupts}
standard_testfile
set opts { debug }
-if [info exists DEBUG] {
+if {[info exists DEBUG]} {
# make check RUNTESTFLAGS='gdb.threads/manythreads.exp DEBUG=1'
lappend opts "additional_flags=-DDEBUG"
}
@@ -31,7 +31,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_test_no_output "set print sevenbit-strings"
runto_main
diff --git a/gdb/testsuite/gdb.threads/multi-create-ns-info-thr.exp b/gdb/testsuite/gdb.threads/multi-create-ns-info-thr.exp
index 1c3231c..c42c1a9 100644
--- a/gdb/testsuite/gdb.threads/multi-create-ns-info-thr.exp
+++ b/gdb/testsuite/gdb.threads/multi-create-ns-info-thr.exp
@@ -25,7 +25,7 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}
gdb_test_no_output "set pagination off"
gdb_test_no_output "set non-stop on"
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/multi-create.exp b/gdb/testsuite/gdb.threads/multi-create.exp
index 966d44d..cb86aac 100644
--- a/gdb/testsuite/gdb.threads/multi-create.exp
+++ b/gdb/testsuite/gdb.threads/multi-create.exp
@@ -21,7 +21,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
runto_main
# Run to the beginning of create_function several times. Make sure
diff --git a/gdb/testsuite/gdb.threads/multiple-step-overs.exp b/gdb/testsuite/gdb.threads/multiple-step-overs.exp
index 84eef1a..c3456c2 100644
--- a/gdb/testsuite/gdb.threads/multiple-step-overs.exp
+++ b/gdb/testsuite/gdb.threads/multiple-step-overs.exp
@@ -35,7 +35,7 @@ proc setup {} {
with_test_prefix "setup" {
clean_restart $executable
- if ![runto_main] {
+ if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/multiple-successive-infcall.exp b/gdb/testsuite/gdb.threads/multiple-successive-infcall.exp
index 1aa9253..2694ce5 100644
--- a/gdb/testsuite/gdb.threads/multiple-successive-infcall.exp
+++ b/gdb/testsuite/gdb.threads/multiple-successive-infcall.exp
@@ -23,7 +23,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
return -1
}
-clean_restart "${binfile}"
+clean_restart "${::testfile}"
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.threads/names.exp b/gdb/testsuite/gdb.threads/names.exp
index 6f38c4e..808fa24 100644
--- a/gdb/testsuite/gdb.threads/names.exp
+++ b/gdb/testsuite/gdb.threads/names.exp
@@ -20,11 +20,11 @@ require {!target_info exists gdb,no_thread_names}
standard_testfile
-if [prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}]} {
return -1
}
-if ![runto "all_threads_ready"] {
+if {![runto "all_threads_ready"]} {
return
}
diff --git a/gdb/testsuite/gdb.threads/next-bp-other-thread.exp b/gdb/testsuite/gdb.threads/next-bp-other-thread.exp
index cf8d687..293b100 100644
--- a/gdb/testsuite/gdb.threads/next-bp-other-thread.exp
+++ b/gdb/testsuite/gdb.threads/next-bp-other-thread.exp
@@ -28,9 +28,9 @@ if {[build_executable "failed to prepare" $testfile $srcfile \
# Test all "set scheduler-locking" variants.
foreach schedlock {"off" "step" "on" } {
with_test_prefix "schedlock=$schedlock" {
- clean_restart $binfile
+ clean_restart $::testfile
- if ![runto_main] {
+ if {![runto_main]} {
continue
}
diff --git a/gdb/testsuite/gdb.threads/next-fork-exec-other-thread.exp b/gdb/testsuite/gdb.threads/next-fork-exec-other-thread.exp
index 3a97127..82e85a6 100644
--- a/gdb/testsuite/gdb.threads/next-fork-exec-other-thread.exp
+++ b/gdb/testsuite/gdb.threads/next-fork-exec-other-thread.exp
@@ -67,7 +67,7 @@ proc do_test { fork_func target-non-stop non-stop displaced-stepping } {
save_vars { ::GDBFLAGS } {
append ::GDBFLAGS " -ex \"maintenance set target-non-stop ${target-non-stop}\""
append ::GDBFLAGS " -ex \"set non-stop ${non-stop}\""
- clean_restart ${::binfile}-${fork_func}
+ clean_restart ${::testfile}-${fork_func}
}
gdb_test_no_output "set displaced-stepping ${displaced-stepping}"
diff --git a/gdb/testsuite/gdb.threads/next-fork-other-thread.exp b/gdb/testsuite/gdb.threads/next-fork-other-thread.exp
index 1cd6685..9349091 100644
--- a/gdb/testsuite/gdb.threads/next-fork-other-thread.exp
+++ b/gdb/testsuite/gdb.threads/next-fork-other-thread.exp
@@ -58,7 +58,7 @@ proc do_test { fork_func target-non-stop non-stop displaced-stepping } {
save_vars { ::GDBFLAGS } {
append ::GDBFLAGS " -ex \"maintenance set target-non-stop ${target-non-stop}\""
append ::GDBFLAGS " -ex \"set non-stop ${non-stop}\""
- clean_restart ${::binfile}-${fork_func}
+ clean_restart ${::testfile}-${fork_func}
}
gdb_test_no_output "set displaced-stepping ${displaced-stepping}"
diff --git a/gdb/testsuite/gdb.threads/no-unwaited-for-left.exp b/gdb/testsuite/gdb.threads/no-unwaited-for-left.exp
index edeabaf..96b5433 100644
--- a/gdb/testsuite/gdb.threads/no-unwaited-for-left.exp
+++ b/gdb/testsuite/gdb.threads/no-unwaited-for-left.exp
@@ -25,7 +25,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
clean_restart ${executable}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/non-ldr-exc-1.exp b/gdb/testsuite/gdb.threads/non-ldr-exc-1.exp
index 846fe89..7d2956d 100644
--- a/gdb/testsuite/gdb.threads/non-ldr-exc-1.exp
+++ b/gdb/testsuite/gdb.threads/non-ldr-exc-1.exp
@@ -31,7 +31,7 @@ proc do_test { lock_sched nonstop } {
clean_restart ${executable}
}
- if ![runto_main] {
+ if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/non-ldr-exc-2.exp b/gdb/testsuite/gdb.threads/non-ldr-exc-2.exp
index 860b6b5..bb66644 100644
--- a/gdb/testsuite/gdb.threads/non-ldr-exc-2.exp
+++ b/gdb/testsuite/gdb.threads/non-ldr-exc-2.exp
@@ -33,7 +33,7 @@ proc do_test { lock_sched nonstop } {
clean_restart ${executable}
}
- if ![runto_main] {
+ if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/non-ldr-exc-3.exp b/gdb/testsuite/gdb.threads/non-ldr-exc-3.exp
index b50bfac..4490b30 100644
--- a/gdb/testsuite/gdb.threads/non-ldr-exc-3.exp
+++ b/gdb/testsuite/gdb.threads/non-ldr-exc-3.exp
@@ -34,7 +34,7 @@ proc do_test { lock_sched nonstop } {
clean_restart ${executable}
}
- if ![runto_main] {
+ if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/non-ldr-exc-4.exp b/gdb/testsuite/gdb.threads/non-ldr-exc-4.exp
index 9892d83..533e14f 100644
--- a/gdb/testsuite/gdb.threads/non-ldr-exc-4.exp
+++ b/gdb/testsuite/gdb.threads/non-ldr-exc-4.exp
@@ -33,7 +33,7 @@ proc do_test { lock_sched nonstop } {
clean_restart ${executable}
}
- if ![runto_main] {
+ if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/non-ldr-exit.exp b/gdb/testsuite/gdb.threads/non-ldr-exit.exp
index b09a37e..4dd1b79 100644
--- a/gdb/testsuite/gdb.threads/non-ldr-exit.exp
+++ b/gdb/testsuite/gdb.threads/non-ldr-exit.exp
@@ -22,7 +22,7 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/non-stop-fair-events.exp b/gdb/testsuite/gdb.threads/non-stop-fair-events.exp
index 5def610..788a7e8 100644
--- a/gdb/testsuite/gdb.threads/non-stop-fair-events.exp
+++ b/gdb/testsuite/gdb.threads/non-stop-fair-events.exp
@@ -28,7 +28,7 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile $options] == -1}
gdb_test_no_output "set non-stop on"
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/omp-par-scope.exp b/gdb/testsuite/gdb.threads/omp-par-scope.exp
index 27dbaf0..2a097f5 100644
--- a/gdb/testsuite/gdb.threads/omp-par-scope.exp
+++ b/gdb/testsuite/gdb.threads/omp-par-scope.exp
@@ -30,7 +30,7 @@ if { [test_compiler_info "clang*"] } {
set have_nested_function_support 0
set opts {openmp debug}
-if [support_nested_function_tests] {
+if {[support_nested_function_tests]} {
lappend opts "additional_flags=-DHAVE_NESTED_FUNCTION_SUPPORT"
set have_nested_function_support 1
}
@@ -191,7 +191,7 @@ with_test_prefix "multi_scope" {
# Nested functions in C are a GNU extension, so only do the nested function
# tests if compiling with -DHAVE_NESTED_FUNCTION_SUPPORT was successful.
-if $have_nested_function_support {
+if {$have_nested_function_support} {
with_test_prefix "nested_func" {
gdb_breakpoint [gdb_get_line_number "nested_func: tn="]
diff --git a/gdb/testsuite/gdb.threads/pending-fork-event-detach-ns.exp b/gdb/testsuite/gdb.threads/pending-fork-event-detach-ns.exp
index 29a011e..9cc4978 100644
--- a/gdb/testsuite/gdb.threads/pending-fork-event-detach-ns.exp
+++ b/gdb/testsuite/gdb.threads/pending-fork-event-detach-ns.exp
@@ -52,7 +52,7 @@ proc do_test { } {
save_vars { ::GDBFLAGS } {
append ::GDBFLAGS " -ex \"set non-stop on\""
- clean_restart $::binfile
+ clean_restart $::testfile
}
if { ![runto break_here_first] } {
diff --git a/gdb/testsuite/gdb.threads/pending-fork-event-detach.exp b/gdb/testsuite/gdb.threads/pending-fork-event-detach.exp
index e627241..fa86488 100644
--- a/gdb/testsuite/gdb.threads/pending-fork-event-detach.exp
+++ b/gdb/testsuite/gdb.threads/pending-fork-event-detach.exp
@@ -93,7 +93,8 @@ proc do_test { target-non-stop who_forks fork_function stop_mode } {
save_vars { ::GDBFLAGS } {
append ::GDBFLAGS " -ex \"maintenance set target-non-stop ${target-non-stop}\""
- clean_restart $this_binfile
+ clean_restart
+ gdb_load $this_binfile
}
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.threads/pending-step.exp b/gdb/testsuite/gdb.threads/pending-step.exp
index 1c2422e..d31f879 100644
--- a/gdb/testsuite/gdb.threads/pending-step.exp
+++ b/gdb/testsuite/gdb.threads/pending-step.exp
@@ -54,7 +54,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.threads/print-threads.exp b/gdb/testsuite/gdb.threads/print-threads.exp
index 51a14b2..a3fcba3 100644
--- a/gdb/testsuite/gdb.threads/print-threads.exp
+++ b/gdb/testsuite/gdb.threads/print-threads.exp
@@ -32,7 +32,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
# Now we can proceed with the real testing.
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_test_no_output "set print sevenbit-strings"
#gdb_test_no_output "set print address off"
@@ -50,13 +50,13 @@ proc test_all_threads { name kill } {
set j 0
gdb_test_multiple "continue" "all threads ran once" {
-re "Breakpoint \[0-9\]+, thread_function \\(arg=.*\\) at .*print-threads.c:\[0-9\]+.*$gdb_prompt" {
- set i [expr $i + 1]
+ set i [expr {$i + 1}]
pass "hit thread_function breakpoint, $i"
send_gdb "continue\n"
exp_continue
}
-re "Breakpoint \[0-9\]+, .* kill \\(.*\\) .*$gdb_prompt" {
- set j [expr $j + 1]
+ set j [expr {$j + 1}]
if { $kill == 1 } {
pass "hit kill breakpoint, $j"
} else {
@@ -96,7 +96,7 @@ runto_main
gdb_test "break thread_function" "Breakpoint \[0-9\]+ at 0x\[0-9a-f\]+: file .*print-threads.c, line \[0-9\]*\\." "break thread_function, 2"
gdb_test_no_output "set var slow = 1"
# Extend the timeout for slower tests.
-set timeout [expr $oldtimeout + 120]
+set timeout [expr {$oldtimeout + 120}]
test_all_threads "slow" 0
set timeout $oldtimeout
@@ -105,6 +105,6 @@ gdb_test "break thread_function" "Breakpoint \[0-9\]+ at 0x\[0-9a-f\]+: file .*p
gdb_test_no_output "set var slow = 1" "set var slow = 1, 2"
gdb_breakpoint "kill"
# Extend the timeout for slower tests.
-set timeout [expr $oldtimeout + 120]
+set timeout [expr {$oldtimeout + 120}]
test_all_threads "slow with kill breakpoint" 1
set timeout $oldtimeout
diff --git a/gdb/testsuite/gdb.threads/process-dies-while-detaching.exp b/gdb/testsuite/gdb.threads/process-dies-while-detaching.exp
index 776c08e..63ddfec 100644
--- a/gdb/testsuite/gdb.threads/process-dies-while-detaching.exp
+++ b/gdb/testsuite/gdb.threads/process-dies-while-detaching.exp
@@ -43,6 +43,7 @@
# threads are reaped. We test that as well.
standard_testfile
+set testfile_base $testfile
# Test that GDBserver exits.
@@ -187,7 +188,7 @@ proc do_detach {multi_process cmd child_exit} {
perror "unhandled command: $cmd"
}
} else {
- if $is_remote {
+ if {$is_remote} {
set extra "\r\nEnding remote debugging\."
} else {
set extra ""
@@ -214,9 +215,9 @@ proc test_detach {multi_process cmd} {
with_test_prefix "detach" {
global binfile
- clean_restart ${binfile}
+ clean_restart ${::testfile}
- if ![runto_main] {
+ if {![runto_main]} {
return -1
}
@@ -242,9 +243,9 @@ proc test_detach_watch {wp multi_process cmd} {
with_test_prefix "watchpoint:$wp" {
global binfile decimal
- clean_restart ${binfile}
+ clean_restart ${::testfile}
- if ![runto_main] {
+ if {![runto_main]} {
return -1
}
@@ -290,9 +291,9 @@ proc test_detach_killed_outside {multi_process cmd} {
with_test_prefix "killed outside" {
global binfile
- clean_restart ${binfile}
+ clean_restart ${::testfile}
- if ![runto_main] {
+ if {![runto_main]} {
return -1
}
@@ -334,14 +335,15 @@ proc do_test {multi_process cmd} {
return
}
- set binfile [standard_output_file ${testfile}-$multi_process-$cmd]
+ set testfile $::testfile_base-$multi_process-$cmd
+ set binfile [standard_output_file $testfile]
set options {debug pthreads}
if {$multi_process} {
lappend options "additional_flags=-DMULTIPROCESS"
}
if {[build_executable "failed to build" \
- $testfile-$multi_process-$cmd $srcfile $options] == -1} {
+ $testfile $srcfile $options] == -1} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/process-dies-while-handling-bp.exp b/gdb/testsuite/gdb.threads/process-dies-while-handling-bp.exp
index 26dc8cc..a990dc9 100644
--- a/gdb/testsuite/gdb.threads/process-dies-while-handling-bp.exp
+++ b/gdb/testsuite/gdb.threads/process-dies-while-handling-bp.exp
@@ -42,7 +42,7 @@ proc do_test { non_stop cond_bp_target } {
save_vars { GDBFLAGS } {
set GDBFLAGS [concat $GDBFLAGS " -ex \"set non-stop $non_stop\""]
- clean_restart $binfile
+ clean_restart $::testfile
}
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.threads/pthread_cond_wait.exp b/gdb/testsuite/gdb.threads/pthread_cond_wait.exp
index c1be1cd..e11b904 100644
--- a/gdb/testsuite/gdb.threads/pthread_cond_wait.exp
+++ b/gdb/testsuite/gdb.threads/pthread_cond_wait.exp
@@ -17,7 +17,7 @@
# bug-gdb@gnu.org
# This file verifies that GDB is able to compute a backtrace for a thread
-# being blocked on a call to pthread_cond_wait().
+# being blocked on a call to pthread_cond_wait().
standard_testfile
@@ -25,7 +25,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
runto_main
gdb_test "break break_me" \
@@ -36,7 +36,7 @@ gdb_test "continue" \
".*Breakpoint 2, break_me ().*" \
"run to break_me"
-#
+#
# Backtrace all threads, find the one running noreturn, and
# verify that we are able to get a sensible backtrace, including
# the frame for the pthread_cond_wait() call.
diff --git a/gdb/testsuite/gdb.threads/pthreads.exp b/gdb/testsuite/gdb.threads/pthreads.exp
index 0437e74..04ae91e2 100644
--- a/gdb/testsuite/gdb.threads/pthreads.exp
+++ b/gdb/testsuite/gdb.threads/pthreads.exp
@@ -34,7 +34,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_test_no_output "set print sevenbit-strings"
#gdb_test_no_output "set print address off"
diff --git a/gdb/testsuite/gdb.threads/queue-signal.exp b/gdb/testsuite/gdb.threads/queue-signal.exp
index f791ffa..6ab8bbb 100644
--- a/gdb/testsuite/gdb.threads/queue-signal.exp
+++ b/gdb/testsuite/gdb.threads/queue-signal.exp
@@ -20,9 +20,9 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
-if ![runto_main] {
+if {![runto_main]} {
return 0
}
diff --git a/gdb/testsuite/gdb.threads/schedlock-new-thread.exp b/gdb/testsuite/gdb.threads/schedlock-new-thread.exp
index c398137..0937e2a 100644
--- a/gdb/testsuite/gdb.threads/schedlock-new-thread.exp
+++ b/gdb/testsuite/gdb.threads/schedlock-new-thread.exp
@@ -18,7 +18,7 @@
standard_testfile .c
foreach_with_prefix schedlock {off on} {
- set sl [expr $schedlock == "on" ? 1 : 0]
+ set sl [expr {$schedlock == "on" ? 1 : 0}]
if { [build_executable "failed to prepare" $testfile-$sl \
$srcfile \
[list debug pthreads additional_flags=-DSCHEDLOCK=$sl]] \
@@ -30,8 +30,8 @@ foreach_with_prefix schedlock {off on} {
proc test {non-stop schedlock} {
save_vars ::GDBFLAGS {
append ::GDBFLAGS " -ex \"set non-stop ${non-stop}\""
- set sl [expr $schedlock == "on" ? 1 : 0]
- clean_restart $::binfile-$sl
+ set sl [expr {$schedlock == "on" ? 1 : 0}]
+ clean_restart $::testfile-$sl
}
set linenum1 [gdb_get_line_number "set break 1 here"]
diff --git a/gdb/testsuite/gdb.threads/schedlock-thread-exit.exp b/gdb/testsuite/gdb.threads/schedlock-thread-exit.exp
index 434b058..137f652 100644
--- a/gdb/testsuite/gdb.threads/schedlock-thread-exit.exp
+++ b/gdb/testsuite/gdb.threads/schedlock-thread-exit.exp
@@ -28,7 +28,7 @@ if { [build_executable "failed to prepare" ${testfile} ${srcfile} \
}
proc do_test { } {
- clean_restart $::binfile
+ clean_restart $::testfile
# One of the launched threads will report a stop on thread_func. Some
# others will also stop on thread_func and have a pending status.
diff --git a/gdb/testsuite/gdb.threads/schedlock.exp b/gdb/testsuite/gdb.threads/schedlock.exp
index 4e2b835..1257868 100644
--- a/gdb/testsuite/gdb.threads/schedlock.exp
+++ b/gdb/testsuite/gdb.threads/schedlock.exp
@@ -41,7 +41,7 @@ proc get_args { description } {
global NUM
set pattern "(\[0-9\]+)"
- for {set i 1} {[expr $i < $NUM]} {incr i} {
+ for {set i 1} {$i < $NUM} {incr i} {
append pattern ", (\[0-9\]+)"
}
@@ -51,7 +51,7 @@ proc get_args { description } {
pass $test
set result ""
- for {set i 1} {[expr $i <= $NUM]} {incr i} {
+ for {set i 1} {[expr {$i <= $NUM}]} {incr i} {
lappend result $expect_out($i,string)
}
return $result
@@ -122,7 +122,7 @@ proc my_continue { msg } {
proc step_ten_loops { cmd } {
global gdb_prompt
- for {set i 0} {[expr $i < 10]} {set i [expr $i + 1]} {
+ for {set i 0} {$i < 10} {incr i} {
set other_step 0
set test "$cmd to increment, $i"
gdb_test_multiple $cmd $test {
@@ -183,7 +183,7 @@ my_continue "initial"
set cont_args [get_args "after initial"]
set bad 0
-for {set i 0} {[expr $i < $NUM]} {set i [expr $i + 1]} {
+for {set i 0} {$i < $NUM} {incr i} {
if {[lindex $start_args $i] == [lindex $cont_args $i]} {
incr bad
}
@@ -233,7 +233,7 @@ proc check_result { cmd before_thread before_args locked } {
} else {
if {$i == $before_thread} {
if {$cmd == "continue"
- || [lindex $before_args $i] == [expr [lindex $after_args $i] - 10]} {
+ || [lindex $before_args $i] == [lindex $after_args $i] - 10} {
pass "$test"
} else {
fail "$test (wrong amount)"
diff --git a/gdb/testsuite/gdb.threads/siginfo-threads.exp b/gdb/testsuite/gdb.threads/siginfo-threads.exp
index ecc372d..253c4c0 100644
--- a/gdb/testsuite/gdb.threads/siginfo-threads.exp
+++ b/gdb/testsuite/gdb.threads/siginfo-threads.exp
@@ -25,7 +25,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" \
clean_restart $testfile
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/signal-command-handle-nopass.exp b/gdb/testsuite/gdb.threads/signal-command-handle-nopass.exp
index 2586800..6d344e3 100644
--- a/gdb/testsuite/gdb.threads/signal-command-handle-nopass.exp
+++ b/gdb/testsuite/gdb.threads/signal-command-handle-nopass.exp
@@ -35,7 +35,7 @@ proc test { step_over } {
global srcfile binfile tdlabel_re
with_test_prefix "step-over $step_over" {
- clean_restart ${binfile}
+ clean_restart ${::testfile}
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp b/gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp
index 73f88c1..acb018b 100644
--- a/gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp
+++ b/gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp
@@ -32,7 +32,7 @@ proc test { schedlock } {
global srcfile binfile tdlabel_re
with_test_prefix "schedlock $schedlock" {
- clean_restart ${binfile}
+ clean_restart ${::testfile}
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.threads/signal-delivered-right-thread.exp b/gdb/testsuite/gdb.threads/signal-delivered-right-thread.exp
index 7445cad..9de0908 100644
--- a/gdb/testsuite/gdb.threads/signal-delivered-right-thread.exp
+++ b/gdb/testsuite/gdb.threads/signal-delivered-right-thread.exp
@@ -29,7 +29,7 @@ proc test { command } {
global srcfile binfile tdlabel_re
with_test_prefix "$command" {
- clean_restart ${binfile}
+ clean_restart ${::testfile}
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.threads/signal-sigtrap.exp b/gdb/testsuite/gdb.threads/signal-sigtrap.exp
index 8154ddf..849d628 100644
--- a/gdb/testsuite/gdb.threads/signal-sigtrap.exp
+++ b/gdb/testsuite/gdb.threads/signal-sigtrap.exp
@@ -32,7 +32,7 @@ proc test { sigtrap_thread } {
global srcfile binfile tdlabel_re
with_test_prefix "sigtrap thread $sigtrap_thread" {
- clean_restart ${binfile}
+ clean_restart ${::testfile}
if {![runto "thread_function"]} {
return 0
diff --git a/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp b/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp
index e2f7581..b7a110d 100644
--- a/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp
+++ b/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp
@@ -51,7 +51,7 @@ proc get_value {var test} {
clean_restart $executable
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/sigstep-threads.exp b/gdb/testsuite/gdb.threads/sigstep-threads.exp
index 0580cd0..9aed9e3 100644
--- a/gdb/testsuite/gdb.threads/sigstep-threads.exp
+++ b/gdb/testsuite/gdb.threads/sigstep-threads.exp
@@ -23,7 +23,7 @@ if { [gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executa
clean_restart $executable
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
@@ -65,7 +65,7 @@ for {set i 0} {$i < 100} {incr i} {
set step_at $now
}
}
- if $failed {
+ if {$failed} {
return
}
}
diff --git a/gdb/testsuite/gdb.threads/sigthread.exp b/gdb/testsuite/gdb.threads/sigthread.exp
index 9d2f9b5..dea8eb8 100644
--- a/gdb/testsuite/gdb.threads/sigthread.exp
+++ b/gdb/testsuite/gdb.threads/sigthread.exp
@@ -24,7 +24,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.threads/staticthreads.exp b/gdb/testsuite/gdb.threads/staticthreads.exp
index 0374666..44cc686 100644
--- a/gdb/testsuite/gdb.threads/staticthreads.exp
+++ b/gdb/testsuite/gdb.threads/staticthreads.exp
@@ -34,7 +34,7 @@ foreach_with_prefix have_tls { "-DHAVE_TLS" "" } {
}
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_test_no_output "set print sevenbit-strings"
@@ -51,7 +51,7 @@ gdb_test_multiple "continue" "$test" {
kfail gdb/1328 "$test"
}
}
-
+
# See if handle SIG32 helps (a little) with a static multi-threaded
# program.
@@ -59,7 +59,7 @@ gdb_test_multiple "continue" "$test" {
set sig "SIG32"
# SIGRTMIN is 37 on hppa-linux
-if [istarget hppa*-*-*] {
+if {[istarget hppa*-*-*]} {
set sig "SIG37"
}
@@ -94,11 +94,11 @@ gdb_test_multiple "quit" "$test" {
pass "$test"
}
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
if { "$have_tls" != "" } {
- if ![runto_main] {
+ if {![runto_main]} {
return -1
}
gdb_breakpoint [gdb_get_line_number "tlsvar-is-set"]
diff --git a/gdb/testsuite/gdb.threads/step-N-all-progress.exp b/gdb/testsuite/gdb.threads/step-N-all-progress.exp
index c874d79..031e36a 100644
--- a/gdb/testsuite/gdb.threads/step-N-all-progress.exp
+++ b/gdb/testsuite/gdb.threads/step-N-all-progress.exp
@@ -31,7 +31,7 @@ proc test {non-stop target-non-stop} {
save_vars ::GDBFLAGS {
append ::GDBFLAGS " -ex \"maintenance set target-non-stop ${target-non-stop}\""
append ::GDBFLAGS " -ex \"set non-stop ${non-stop}\""
- clean_restart $::binfile
+ clean_restart $::testfile
}
if { ![runto_main] } {
diff --git a/gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.exp b/gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.exp
index 309c826..82861a9 100644
--- a/gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.exp
+++ b/gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.exp
@@ -34,7 +34,7 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return
}
@@ -55,7 +55,7 @@ gdb_test_no_output "next&" "next& over inf loop"
set test "switch to main thread"
gdb_test_multiple "thread 1" $test {
-re "Cannot execute this command while the target is running.*$gdb_prompt $" {
-
+
# With remote targets, we can't send any other remote packet
# until the target stops. Switching thread wants to ask the
# remote side whether the thread is alive.
diff --git a/gdb/testsuite/gdb.threads/step-over-exec.exp b/gdb/testsuite/gdb.threads/step-over-exec.exp
index 7c553f2..22b9a13 100644
--- a/gdb/testsuite/gdb.threads/step-over-exec.exp
+++ b/gdb/testsuite/gdb.threads/step-over-exec.exp
@@ -71,11 +71,12 @@ proc do_test { execr_thread different_text_segments displaced_stepping } {
return -1
}
- clean_restart ${execr_binfile}
+ clean_restart
+ gdb_load $execr_binfile
gdb_test_no_output "set displaced-stepping $displaced_stepping"
- if ![runto_main] {
+ if {![runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.exp b/gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.exp
index 65aa2f1..3a96e0e 100644
--- a/gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.exp
+++ b/gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.exp
@@ -32,7 +32,7 @@ proc do_test {displaced command} {
with_test_prefix "displaced=$displaced: $command" {
clean_restart $executable
- if ![runto_main] {
+ if {![runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.threads/step-over-thread-exit-while-stop-all-threads.exp b/gdb/testsuite/gdb.threads/step-over-thread-exit-while-stop-all-threads.exp
index cf10bdc..fdd2b27 100644
--- a/gdb/testsuite/gdb.threads/step-over-thread-exit-while-stop-all-threads.exp
+++ b/gdb/testsuite/gdb.threads/step-over-thread-exit-while-stop-all-threads.exp
@@ -29,7 +29,7 @@ if { [build_executable "failed to prepare" $testfile \
proc test {displaced-stepping target-non-stop} {
save_vars ::GDBFLAGS {
append ::GDBFLAGS " -ex \"maintenance set target-non-stop ${target-non-stop}\""
- clean_restart $::binfile
+ clean_restart $::testfile
}
gdb_test_no_output "set displaced-stepping ${displaced-stepping}"
diff --git a/gdb/testsuite/gdb.threads/step-over-thread-exit.exp b/gdb/testsuite/gdb.threads/step-over-thread-exit.exp
index 31037a7..8ed2b21 100644
--- a/gdb/testsuite/gdb.threads/step-over-thread-exit.exp
+++ b/gdb/testsuite/gdb.threads/step-over-thread-exit.exp
@@ -55,7 +55,7 @@ proc test {step_over_mode non-stop target-non-stop schedlock cmd ns_stop_all} {
save_vars ::GDBFLAGS {
append ::GDBFLAGS " -ex \"maintenance set target-non-stop ${target-non-stop}\""
append ::GDBFLAGS " -ex \"set non-stop ${non-stop}\""
- clean_restart $::binfile
+ clean_restart $::testfile
}
if { $step_over_mode == "none" } {
diff --git a/gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.exp b/gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.exp
index 9a028fe..0e99656 100644
--- a/gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.exp
+++ b/gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.exp
@@ -38,7 +38,7 @@ proc do_test { displaced with_bp } {
global gdb_prompt
global hex
- if ${with_bp} {
+ if {${with_bp}} {
set prefix "with thread-specific bp"
} else {
set prefix "no thread-specific bp"
@@ -49,7 +49,7 @@ proc do_test { displaced with_bp } {
with_test_prefix $command {
clean_restart $executable
- if ![runto_main] {
+ if {![runto_main]} {
continue
}
@@ -106,7 +106,7 @@ proc do_test { displaced with_bp } {
gdb_test "p watch_me = 0" " = 0" "clear watch_me"
gdb_test "watch watch_me" "Hardware watchpoint .*"
- if ${with_bp} {
+ if {${with_bp}} {
gdb_test "b *$after_address_triggers_watch thread 1" \
"Breakpoint .*" \
"set breakpoint specific to thread 1"
diff --git a/gdb/testsuite/gdb.threads/stepi-over-clone.exp b/gdb/testsuite/gdb.threads/stepi-over-clone.exp
index 5da123e..e0b14cb 100644
--- a/gdb/testsuite/gdb.threads/stepi-over-clone.exp
+++ b/gdb/testsuite/gdb.threads/stepi-over-clone.exp
@@ -58,8 +58,8 @@ gdb_test "continue" \
# Return true if INSN is a syscall instruction.
proc is_syscall_insn { insn } {
- if [istarget x86_64-*-* ] {
- return { $insn == "syscall" }
+ if {[istarget x86_64-*-* ]} {
+ return [string equal $insn "syscall"]
} else {
error "port me"
}
@@ -76,7 +76,7 @@ gdb_test_multiple "disassemble" "" {
-re "^(?:=>)?\\s+(${hex})\\s+<\\+${decimal}>:\\s+(\[^\r\n\]+)\r\n" {
set addr $expect_out(1,string)
set insn [string trim $expect_out(2,string)]
- if [is_syscall_insn $insn] {
+ if {[is_syscall_insn $insn]} {
verbose -log "Found a syscall at: $addr"
lappend syscall_addrs $addr
}
@@ -106,7 +106,7 @@ proc test {non_stop displaced third_thread} {
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"set non-stop $non_stop\""
append GDBFLAGS " -ex \"set displaced $displaced\""
- clean_restart $binfile
+ clean_restart $::testfile
}
runto_main
diff --git a/gdb/testsuite/gdb.threads/stepi-random-signal.exp b/gdb/testsuite/gdb.threads/stepi-random-signal.exp
index 8ac81e8..a2d7743 100644
--- a/gdb/testsuite/gdb.threads/stepi-random-signal.exp
+++ b/gdb/testsuite/gdb.threads/stepi-random-signal.exp
@@ -31,7 +31,7 @@ if { [gdb_compile_pthreads \
clean_restart $executable
# Start the second thread.
-if ![runto start] {
+if {![runto start]} {
return -1
}
diff --git a/gdb/testsuite/gdb.threads/switch-threads.exp b/gdb/testsuite/gdb.threads/switch-threads.exp
index d43603c..1f67a45 100644
--- a/gdb/testsuite/gdb.threads/switch-threads.exp
+++ b/gdb/testsuite/gdb.threads/switch-threads.exp
@@ -29,7 +29,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
runto_main
diff --git a/gdb/testsuite/gdb.threads/thread-bp-deleted.exp b/gdb/testsuite/gdb.threads/thread-bp-deleted.exp
index 8cabb70..19b5001 100644
--- a/gdb/testsuite/gdb.threads/thread-bp-deleted.exp
+++ b/gdb/testsuite/gdb.threads/thread-bp-deleted.exp
@@ -31,14 +31,15 @@ if {[build_executable "failed to prepare" $testfile $srcfile \
# We need to do things a little differently when using the remote protocol.
set is_remote \
- [expr [target_info exists gdb_protocol] \
- && ([string equal [target_info gdb_protocol] "remote"] \
- || [string equal [target_info gdb_protocol] "extended-remote"])]
+ [expr \
+ {[target_info exists gdb_protocol]
+ && ([string equal [target_info gdb_protocol] "remote"]
+ || [string equal [target_info gdb_protocol] "extended-remote"])}]
# This test requires background execution, which relies on non-stop mode.
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"maint set target-non-stop on\""
- clean_restart ${binfile}
+ clean_restart ${::testfile}
}
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.threads/thread-execl.exp b/gdb/testsuite/gdb.threads/thread-execl.exp
index 04ba518..d1c80df 100644
--- a/gdb/testsuite/gdb.threads/thread-execl.exp
+++ b/gdb/testsuite/gdb.threads/thread-execl.exp
@@ -35,13 +35,13 @@ proc do_test { schedlock } {
set prefix "schedlock $schedlock"
}
with_test_prefix "$prefix" {
- clean_restart ${binfile}
+ clean_restart ${::testfile}
if {$schedlock == "non-stop"} {
gdb_test_no_output "set non-stop 1"
}
- if ![runto_main] {
+ if {![runto_main]} {
return 0
}
diff --git a/gdb/testsuite/gdb.threads/thread-find.exp b/gdb/testsuite/gdb.threads/thread-find.exp
index 456f7d3..171b94b 100644
--- a/gdb/testsuite/gdb.threads/thread-find.exp
+++ b/gdb/testsuite/gdb.threads/thread-find.exp
@@ -21,7 +21,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_test_no_output "set print sevenbit-strings"
runto_main
diff --git a/gdb/testsuite/gdb.threads/thread-specific-bp.exp b/gdb/testsuite/gdb.threads/thread-specific-bp.exp
index c4858f2..8f48b61 100644
--- a/gdb/testsuite/gdb.threads/thread-specific-bp.exp
+++ b/gdb/testsuite/gdb.threads/thread-specific-bp.exp
@@ -118,7 +118,7 @@ proc check_thread_specific_breakpoint {non_stop} {
foreach_with_prefix non_stop {on off} {
save_vars { GDBFLAGS } {
append GDBFLAGS " -ex \"set non-stop $non_stop\""
- clean_restart $binfile
+ clean_restart $::testfile
}
check_thread_specific_breakpoint $non_stop
diff --git a/gdb/testsuite/gdb.threads/thread-specific.exp b/gdb/testsuite/gdb.threads/thread-specific.exp
index bf9c63b..d1e6f4d 100644
--- a/gdb/testsuite/gdb.threads/thread-specific.exp
+++ b/gdb/testsuite/gdb.threads/thread-specific.exp
@@ -62,7 +62,7 @@ proc get_thread_list { } {
return $thr_list
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_test_no_output "set print sevenbit-strings"
gdb_test_no_output "set width 0"
diff --git a/gdb/testsuite/gdb.threads/thread-unwindonsignal.exp b/gdb/testsuite/gdb.threads/thread-unwindonsignal.exp
index 5f4ac1f..dc74714 100644
--- a/gdb/testsuite/gdb.threads/thread-unwindonsignal.exp
+++ b/gdb/testsuite/gdb.threads/thread-unwindonsignal.exp
@@ -28,7 +28,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
if { ![runto_main] } {
return 0
diff --git a/gdb/testsuite/gdb.threads/thread_check.exp b/gdb/testsuite/gdb.threads/thread_check.exp
index ee5f35a..6378e8a 100644
--- a/gdb/testsuite/gdb.threads/thread_check.exp
+++ b/gdb/testsuite/gdb.threads/thread_check.exp
@@ -15,16 +15,16 @@
# This file was written by Manoj Iyer. (manjo@austin.ibm.com)
# Test break points and single step on thread functions.
-#
+#
# Test Purpose:
-# - Test that breakpoints, continue in a threaded application works.
+# - Test that breakpoints, continue in a threaded application works.
# On powerpc64-unknown-linux-gnu system, running kernel version
# 2.6.5-7.71-pseries64 this test is known to fail due to kernel bug
# in ptrace system call.
#
# Test Strategy:
# - thread_check.c creates 2 threads
-# - start gdb
+# - start gdb
# - create 2 breakpoints #1 main() #2 tf() (the thread function)
# - run gdb till #1 main() breakpoint is reached
# - continue to breakpoint #2 tf()
@@ -39,7 +39,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
if {![runto_main]} {
return 1
@@ -62,7 +62,7 @@ gdb_test "continue" \
".*Breakpoint 2,.*tf.*at.*$srcfile:.*" \
"continue to tf"
-#
+#
# backtrace from thread function.
#
gdb_test "backtrace" \
diff --git a/gdb/testsuite/gdb.threads/threadapply.exp b/gdb/testsuite/gdb.threads/threadapply.exp
index 9110617..de264b6 100644
--- a/gdb/testsuite/gdb.threads/threadapply.exp
+++ b/gdb/testsuite/gdb.threads/threadapply.exp
@@ -25,7 +25,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
#
# Run to `main' where we begin our tests.
@@ -60,7 +60,7 @@ gdb_test "thread apply all backthread" "Thread ..*\\\$\[0-9]+ = 0x14.*Thread ..*
# Go into the thread_function to check that a simple "thread apply"
# does not change the selected frame.
gdb_test "step" "thread_function.*" "step to the thread_function"
-gdb_test "up" ".*in main.*" "go up in the stack frame"
+gdb_test "up" ".*in main.*" "go up in the stack frame"
gdb_test "thread apply all print 1" "Thread ..*\\\$\[0-9]+ = 1.*Thread ..*\\\$\[0-9]+ = 1.*Thread ..*\\\$\[0-9]+ = 1.*Thread ..*\\\$\[0-9]+ = 1.*Thread ..*\\\$\[0-9]+ = 1.*Thread ..*\\\$\[0-9]+ = 1" "run a simple print command on all threads"
gdb_test "down" "#0.*thread_function.*" "go down and check selected frame"
@@ -73,9 +73,9 @@ proc thr_apply_detach {thread_set} {
global binfile
global break_line
- clean_restart ${binfile}
+ clean_restart ${::testfile}
- if ![runto_main] {
+ if {![runto_main]} {
return -1
}
@@ -104,7 +104,7 @@ proc kill_and_remove_inferior {thread_set} {
# The test starts multiple inferiors, therefore non-extended
# remote is not supported.
- if [use_gdb_stub] {
+ if {[use_gdb_stub]} {
unsupported "using gdb stub"
return
}
@@ -112,7 +112,7 @@ proc kill_and_remove_inferior {thread_set} {
set any "\[^\r\n\]*"
set ws "\[ \t\]\+"
- clean_restart ${binfile}
+ clean_restart ${::testfile}
with_test_prefix "start inferior 1" {
runto_main
diff --git a/gdb/testsuite/gdb.threads/threadcrash.exp b/gdb/testsuite/gdb.threads/threadcrash.exp
index 15d2a20..d57f437 100644
--- a/gdb/testsuite/gdb.threads/threadcrash.exp
+++ b/gdb/testsuite/gdb.threads/threadcrash.exp
@@ -132,8 +132,9 @@ proc do_full_test {} {
set pthread_kill ".*"
}
- for {set i 0} {$i < $thread_count } {incr i} {
- set thread_num [expr [llength $test_list] - $i]
+ set loop_iterations [llength $test_list]
+ for {set i 0} {$i < $loop_iterations } {incr i} {
+ set thread_num [expr {$loop_iterations - $i}]
set type [lindex $test_list $i]
if { $type == 1 } {
@@ -237,7 +238,7 @@ proc_with_prefix test_corefile {} {
proc_with_prefix test_gcore {} {
- clean_restart "$::binfile"
+ clean_restart "$::testfile"
gdb_test "handle SIGUSR1 nostop print pass" \
".*SIGUSR1.*No.*Yes.*Yes.*User defined signal 1" \
@@ -270,12 +271,12 @@ proc_with_prefix test_gcore {} {
standard_testfile
-if [prepare_for_testing "failed to prepare" $testfile $srcfile \
- {debug pthreads}] {
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile \
+ {debug pthreads}]} {
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_test_no_output "set backtrace limit unlimited"
diff --git a/gdb/testsuite/gdb.threads/threads-after-exec.exp b/gdb/testsuite/gdb.threads/threads-after-exec.exp
index db26315..a6a3fb7 100644
--- a/gdb/testsuite/gdb.threads/threads-after-exec.exp
+++ b/gdb/testsuite/gdb.threads/threads-after-exec.exp
@@ -19,11 +19,11 @@
standard_testfile .c
proc do_test { } {
- if [prepare_for_testing "failed to prepare" $::testfile $::srcfile {debug pthreads}] {
+ if {[prepare_for_testing "failed to prepare" $::testfile $::srcfile {debug pthreads}]} {
return -1
}
- if ![runto_main] {
+ if {![runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.threads/threxit-hop-specific.exp b/gdb/testsuite/gdb.threads/threxit-hop-specific.exp
index ce2df7c..b55e80c 100644
--- a/gdb/testsuite/gdb.threads/threxit-hop-specific.exp
+++ b/gdb/testsuite/gdb.threads/threxit-hop-specific.exp
@@ -23,7 +23,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
runto_main
diff --git a/gdb/testsuite/gdb.threads/tid-reuse.exp b/gdb/testsuite/gdb.threads/tid-reuse.exp
index 6762127..ca5edc1 100644
--- a/gdb/testsuite/gdb.threads/tid-reuse.exp
+++ b/gdb/testsuite/gdb.threads/tid-reuse.exp
@@ -22,7 +22,7 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile { debug pthreads
return -1
}
-if ![runto_main] {
+if {![runto_main]} {
return -1
}
@@ -72,6 +72,6 @@ delete_breakpoints
gdb_breakpoint "after_reuse_time"
# Higher than what the test program sleeps before exiting.
-set timeout [expr $reuse_time * 2]
+set timeout [expr {$reuse_time * 2}]
gdb_continue_to_breakpoint "after_reuse_time"
diff --git a/gdb/testsuite/gdb.threads/tls-core.exp b/gdb/testsuite/gdb.threads/tls-core.exp
index 96b1c6a..587ae61 100644
--- a/gdb/testsuite/gdb.threads/tls-core.exp
+++ b/gdb/testsuite/gdb.threads/tls-core.exp
@@ -27,7 +27,7 @@ set core_supported [expr {$corefile != ""}]
# Generate a core file with "gcore".
-clean_restart ${binfile}
+clean_restart ${::testfile}
runto thread_proc
@@ -43,7 +43,7 @@ proc tls_core_test {supported corefile} {
upvar host_triplet host_triplet
upvar binfile binfile
- clean_restart ${binfile}
+ clean_restart ${::testfile}
set test "load core file"
if {$supported} {
diff --git a/gdb/testsuite/gdb.threads/tls-nodebug-pie.exp b/gdb/testsuite/gdb.threads/tls-nodebug-pie.exp
index 01abcfa..44c12f5 100644
--- a/gdb/testsuite/gdb.threads/tls-nodebug-pie.exp
+++ b/gdb/testsuite/gdb.threads/tls-nodebug-pie.exp
@@ -20,7 +20,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
if {![runto_main]} {
return 0
}
diff --git a/gdb/testsuite/gdb.threads/tls-nodebug.exp b/gdb/testsuite/gdb.threads/tls-nodebug.exp
index ebfa752..971f26c 100644
--- a/gdb/testsuite/gdb.threads/tls-nodebug.exp
+++ b/gdb/testsuite/gdb.threads/tls-nodebug.exp
@@ -26,7 +26,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
if {![runto_main]} {
return 0
}
diff --git a/gdb/testsuite/gdb.threads/tls-sepdebug.exp b/gdb/testsuite/gdb.threads/tls-sepdebug.exp
index 6f3c711..fb684c9 100644
--- a/gdb/testsuite/gdb.threads/tls-sepdebug.exp
+++ b/gdb/testsuite/gdb.threads/tls-sepdebug.exp
@@ -83,7 +83,7 @@ foreach library_path [list $absdir [relative_filename [pwd] $absdir]] \
gdb_load ${binmainfile}
- if ![runto_main] {
+ if {![runto_main]} {
return
}
diff --git a/gdb/testsuite/gdb.threads/tls-shared.exp b/gdb/testsuite/gdb.threads/tls-shared.exp
index 35596bc..66dd52f 100644
--- a/gdb/testsuite/gdb.threads/tls-shared.exp
+++ b/gdb/testsuite/gdb.threads/tls-shared.exp
@@ -29,7 +29,7 @@ if { [gdb_compile_shlib_pthreads ${srcdir}/${subdir}/${srcfile_lib} ${binfile_li
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_load_shlib ${binfile_lib}
if {![runto_main]} {
@@ -52,6 +52,6 @@ gdb_test "break $line_number" \
gdb_test "continue" \
"main .* at .*:.*return 0.*break here to check result.*" \
"continue to break"
-# This is more of a gcc/glibc test, really.
+# This is more of a gcc/glibc test, really.
#
gdb_test "print result" "3"
diff --git a/gdb/testsuite/gdb.threads/tls-so_extern.exp b/gdb/testsuite/gdb.threads/tls-so_extern.exp
index 3cef672..a0aa5f8 100644
--- a/gdb/testsuite/gdb.threads/tls-so_extern.exp
+++ b/gdb/testsuite/gdb.threads/tls-so_extern.exp
@@ -28,7 +28,7 @@ if { [gdb_compile_shlib_pthreads ${srcdir}/${subdir}/${srcfile_lib} ${binfile_li
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_load_shlib ${binfile_lib}
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.threads/tls-var.exp b/gdb/testsuite/gdb.threads/tls-var.exp
index de74bd9..8d8b82e 100644
--- a/gdb/testsuite/gdb.threads/tls-var.exp
+++ b/gdb/testsuite/gdb.threads/tls-var.exp
@@ -27,7 +27,7 @@ if { [gdb_compile ${srcdir}/${subdir}/${srcfile} ${objfile} object {debug}] != "
clean_restart ${executable}
-if ![runto_main] {
+if {![runto_main]} {
return 0
}
diff --git a/gdb/testsuite/gdb.threads/tls.exp b/gdb/testsuite/gdb.threads/tls.exp
index 73fada7..3dbc802 100644
--- a/gdb/testsuite/gdb.threads/tls.exp
+++ b/gdb/testsuite/gdb.threads/tls.exp
@@ -56,7 +56,7 @@ proc get_me_variable {tnum} {
fail "$tnum thread print me"
}
timeout {
- fail "$tnum thread print me (timeout)"
+ fail "$tnum thread print me (timeout)"
}
}
return ${value_of_me}
@@ -116,8 +116,8 @@ proc select_thread {thread} {
### Do a backtrace for the current thread, and check that the 'spin' routine
### is in it. This means we have one of the threads we created, rather
-### than the main thread. Record the thread in the spin_threads
-### array. Also remember the level of the 'spin' routine in the backtrace, for
+### than the main thread. Record the thread in the spin_threads
+### array. Also remember the level of the 'spin' routine in the backtrace, for
### later use.
proc check_thread_stack {number spin_threads spin_threads_level} {
global gdb_prompt
@@ -148,12 +148,12 @@ proc check_thread_stack {number spin_threads spin_threads_level} {
pass "backtrace of thread number $number not relevant"
}
timeout {
- fail "backtrace of thread number $number (timeout)"
+ fail "backtrace of thread number $number (timeout)"
}
}
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_test_multiple "print a_thread_local" "" {
-re -wrap "Cannot find thread-local variables on this target" {
@@ -169,7 +169,7 @@ if {![runto_main]} {
}
# Set a breakpoint at the "spin" routine to
-# test the thread local's value.
+# test the thread local's value.
#
gdb_test "b [gdb_get_line_number "here we know tls value"]" \
".*Breakpoint 2.*tls.*" "set breakpoint at all threads"
@@ -247,7 +247,7 @@ array set spin_threads_level {}
unset spin_threads_level
# For each thread check its backtrace to see if it is stopped at the
-# spin routine.
+# spin routine.
for {set i 1} {$i <= $no_of_threads} {incr i} {
check_thread_stack $i spin_threads spin_threads_level
}
@@ -268,7 +268,7 @@ foreach i [array names spin_threads] {
# any intermediate point in spin, too, but that is much less
# likely.
gdb_test "up $level" ".*spin.*sem_(wait|post).*" "thread $i up"
- check_thread_local $i
+ check_thread_local $i
}
}
@@ -278,7 +278,7 @@ if {$thrs_in_spin == 0} {
gdb_test "continue" ".*Breakpoint 4.*before exit.*" "threads exited"
-send_gdb "info thread\n"
+send_gdb "info thread\n"
gdb_expect {
-re ".* 1 *${tdlabel_re}.*2 *${tdlabel_re}.*$gdb_prompt $" {
fail "too many threads left at end"
diff --git a/gdb/testsuite/gdb.threads/vfork-follow-child-exec.exp b/gdb/testsuite/gdb.threads/vfork-follow-child-exec.exp
index 0b95a75..7c2b309 100644
--- a/gdb/testsuite/gdb.threads/vfork-follow-child-exec.exp
+++ b/gdb/testsuite/gdb.threads/vfork-follow-child-exec.exp
@@ -30,7 +30,7 @@ if {[build_executable "failed to prepare" $testfile $srcfile {debug pthreads}]}
proc test_vfork {detach} {
global binfile
- clean_restart $binfile
+ clean_restart $::testfile
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.threads/vfork-follow-child-exit.exp b/gdb/testsuite/gdb.threads/vfork-follow-child-exit.exp
index ced52df..a5e7475 100644
--- a/gdb/testsuite/gdb.threads/vfork-follow-child-exit.exp
+++ b/gdb/testsuite/gdb.threads/vfork-follow-child-exit.exp
@@ -30,7 +30,7 @@ if {[build_executable "failed to prepare" $testfile $srcfile {debug pthreads}]}
proc test_vfork {detach} {
global binfile
- clean_restart $binfile
+ clean_restart $::testfile
if {![runto_main]} {
return 0
diff --git a/gdb/testsuite/gdb.threads/vfork-multi-thread.exp b/gdb/testsuite/gdb.threads/vfork-multi-thread.exp
index 61811ae..fce974b 100644
--- a/gdb/testsuite/gdb.threads/vfork-multi-thread.exp
+++ b/gdb/testsuite/gdb.threads/vfork-multi-thread.exp
@@ -59,7 +59,7 @@ proc do_test { target-non-stop non-stop follow-fork-mode detach-on-fork schedule
save_vars { ::GDBFLAGS } {
append ::GDBFLAGS " -ex \"maintenance set target-non-stop ${target-non-stop}\""
append ::GDBFLAGS " -ex \"set non-stop ${non-stop}\""
- clean_restart ${::binfile}
+ clean_restart ${::testfile}
}
gdb_test_no_output "set follow-fork-mode ${follow-fork-mode}"
diff --git a/gdb/testsuite/gdb.threads/watchpoint-fork.exp b/gdb/testsuite/gdb.threads/watchpoint-fork.exp
index 8e9b1c3..68fc99e 100644
--- a/gdb/testsuite/gdb.threads/watchpoint-fork.exp
+++ b/gdb/testsuite/gdb.threads/watchpoint-fork.exp
@@ -69,7 +69,7 @@ proc test {type symbol} {
# Testcase uses it for the `follow-fork-mode child' type.
gdb_test "handle SIGUSR1 nostop noprint pass" "No\[ \t\]+No\[ \t\]+Yes.*"
- if ![runto_main] {
+ if {![runto_main]} {
return
}
@@ -126,7 +126,7 @@ proc test {type symbol} {
# Testcase uses it for the `follow-fork-mode child' type.
gdb_test "handle SIGUSR1 nostop noprint pass" "No\[ \t\]+No\[ \t\]+Yes.*"
- if ![runto_main] {
+ if {![runto_main]} {
return
}
@@ -165,7 +165,7 @@ proc test {type symbol} {
test parent FOLLOW_PARENT
# Only GNU/Linux is known to support `set follow-fork-mode child'.
-if [istarget "*-*-linux*"] {
+if {[istarget "*-*-linux*"]} {
test child FOLLOW_CHILD
} else {
untested "${testfile}: child"
diff --git a/gdb/testsuite/gdb.threads/watchthreads-reorder.exp b/gdb/testsuite/gdb.threads/watchthreads-reorder.exp
index 5d98913..067986a 100644
--- a/gdb/testsuite/gdb.threads/watchthreads-reorder.exp
+++ b/gdb/testsuite/gdb.threads/watchthreads-reorder.exp
@@ -41,7 +41,7 @@ foreach reorder {0 1} { with_test_prefix "reorder$reorder" {
gdb_test "set can-use-hw-watchpoints 1"
- if ![runto_main] {
+ if {![runto_main]} {
return -1
}
@@ -72,7 +72,7 @@ foreach reorder {0 1} { with_test_prefix "reorder$reorder" {
"Hardware read watchpoint \[0-9\]+: thread\[12\]_rwatch\r\n\r\nValue = 0\r\n0x\[0-9a-f\]+ in thread\[12\]_func .*" \
"continue a"
- if $reorder {
+ if {$reorder} {
# GDB orders watchpoints by their addresses so inserting new variables
# with lower addresses will shift the former watchpoints to higher
# debug registers.
diff --git a/gdb/testsuite/gdb.threads/watchthreads.exp b/gdb/testsuite/gdb.threads/watchthreads.exp
index 49fc762..e2d629d 100644
--- a/gdb/testsuite/gdb.threads/watchthreads.exp
+++ b/gdb/testsuite/gdb.threads/watchthreads.exp
@@ -31,7 +31,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
return -1
}
-clean_restart $binfile
+clean_restart $::testfile
gdb_test_no_output "set can-use-hw-watchpoints 1" ""
#
@@ -67,11 +67,11 @@ for {set i 0} {$i < 30} {incr i} {
# At least one hardware watchpoint was hit. Check if both were.
set string $expect_out(1,string)
- if [regexp "Hardware watchpoint 2: args\\\[0\\\]\[^\r\]*\r\[^\r\]*\r\[^\r\]*Old value = $args_0\[^\r\]*\r\[^\r\]*New value = [expr $args_0+1]\r" $string] {
+ if {[regexp "Hardware watchpoint 2: args\\\[0\\\]\[^\r\]*\r\[^\r\]*\r\[^\r\]*Old value = $args_0\[^\r\]*\r\[^\r\]*New value = [expr {$args_0+1}]\r" $string]} {
incr args_0
incr test_flag_0
}
- if [regexp "Hardware watchpoint 3: args\\\[1\\\]\[^\r\]*\r\[^\r\]*\r\[^\r\]*Old value = $args_1\[^\r\]*\r\[^\r\]*New value = [expr $args_1+1]\r" $string] {
+ if {[regexp "Hardware watchpoint 3: args\\\[1\\\]\[^\r\]*\r\[^\r\]*\r\[^\r\]*Old value = $args_1\[^\r\]*\r\[^\r\]*New value = [expr {$args_1+1}]\r" $string]} {
incr args_1
incr test_flag_1
}
@@ -97,7 +97,7 @@ for {set i 0} {$i < 30} {incr i} {
}
}
- if [ regexp "$expected_loc" $string ] {
+ if {[ regexp "$expected_loc" $string ]} {
set test_flag 1
} else {
fail "threaded watch loop"
@@ -140,23 +140,23 @@ if { $test_flag == 1 } {
# Verify that we hit first watchpoint in main thread.
set message "first watchpoint on args\[0\] hit"
if { $args_0 > 0 } {
- pass $message
+ pass $message
} else {
- fail $message
+ fail $message
}
# Verify that we hit second watchpoint in main thread.
set message "first watchpoint on args\[1\] hit"
if { $args_1 > 0 } {
- pass $message
+ pass $message
} else {
- fail $message
+ fail $message
}
# Verify that we hit first watchpoint in child thread.
set message "watchpoint on args\[0\] hit in thread"
if { $args_0 > 1 } {
- pass $message
+ pass $message
} else {
fail $message
}
@@ -164,9 +164,9 @@ if { $args_0 > 1 } {
# Verify that we hit second watchpoint in child thread.
set message "watchpoint on args\[1\] hit in thread"
if { $args_1 > 1 } {
- pass $message
+ pass $message
} else {
- fail $message
+ fail $message
}
# Verify that all watchpoint hits are accounted for.
@@ -174,12 +174,12 @@ set message "combination of threaded watchpoints = 30"
if { [target_no_stopped_data] } {
# See above. If we allow two watchpoints to be hit at once, we
# may have more than 30 hits total.
- set result [expr $args_0 + $args_1 >= 30]
+ set result [expr {$args_0 + $args_1 >= 30}]
} else {
- set result [expr $args_0 + $args_1 == 30]
+ set result [expr {$args_0 + $args_1 == 30}]
}
if { $result } {
- pass $message
+ pass $message
} else {
- fail $message
+ fail $message
}
diff --git a/gdb/testsuite/gdb.threads/watchthreads2.exp b/gdb/testsuite/gdb.threads/watchthreads2.exp
index 2426be4..a31c1a7 100644
--- a/gdb/testsuite/gdb.threads/watchthreads2.exp
+++ b/gdb/testsuite/gdb.threads/watchthreads2.exp
@@ -31,7 +31,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
gdb_test_no_output "set can-use-hw-watchpoints 1" ""
@@ -89,7 +89,7 @@ set x_thread_loc "thread_function \\\(arg=.*\\\) at .*watchthreads.c:$x_inc_line
# X is incremented under a mutex, so we should get NR_THREADS * X_INCR_COUNT
# hits.
-set limit [expr $NR_THREADS*$X_INCR_COUNT]
+set limit [expr {$NR_THREADS*$X_INCR_COUNT}]
set x_count 0
set done 0
@@ -102,7 +102,7 @@ for {set i 0} {!$done && $i < $limit} {incr i} {
-re "(.*Hardware watchpoint.*)$gdb_prompt $" {
set string $expect_out(1,string)
- if [regexp "Hardware watchpoint 3: x\[^\r\]*\r\[^\r\]*\r\[^\r\]*Old value = $x_count\[^\r\]*\r\[^\r\]*New value = [expr $x_count+1]\r" $string] {
+ if {[regexp "Hardware watchpoint 3: x\[^\r\]*\r\[^\r\]*\r\[^\r\]*Old value = $x_count\[^\r\]*\r\[^\r\]*New value = [expr {$x_count+1}]\r" $string]} {
incr x_count
set test_flag 1
} else {
diff --git a/gdb/testsuite/gdb.threads/wp-replication.exp b/gdb/testsuite/gdb.threads/wp-replication.exp
index 68f5eb0..1b63d57 100644
--- a/gdb/testsuite/gdb.threads/wp-replication.exp
+++ b/gdb/testsuite/gdb.threads/wp-replication.exp
@@ -34,7 +34,7 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
return -1
}
-clean_restart ${binfile}
+clean_restart ${::testfile}
# Force hardware watchpoints to be used.
gdb_test_no_output "set can-use-hw-watchpoints 1" ""
@@ -126,7 +126,7 @@ gdb_test_no_output "set var test_ready=1" \
"set var test_ready=1"
# Set the number of expected watchpoint triggers.
-set TRIGGERS [expr "$NR_THREADS * $hwatch_count * $NR_TRIGGERS_PER_THREAD"]
+set TRIGGERS [expr {$NR_THREADS * $hwatch_count * $NR_TRIGGERS_PER_THREAD}]
# Move the threads and hit the watchpoints TRIGGERS times.
for { set i 1 } { $i <= $TRIGGERS } { incr i } {
diff --git a/gdb/testsuite/gdb.trace/ax.exp b/gdb/testsuite/gdb.trace/ax.exp
index 3380cdf..cc40853 100644
--- a/gdb/testsuite/gdb.trace/ax.exp
+++ b/gdb/testsuite/gdb.trace/ax.exp
@@ -30,7 +30,7 @@ if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \
return -1
}
-clean_restart $binfile
+clean_restart $testfile
runto_main
gdb_test "maint agent 12" ".*const8 12.*pop.*end.*"
diff --git a/gdb/testsuite/gdb.trace/basic-libipa.exp b/gdb/testsuite/gdb.trace/basic-libipa.exp
index e7612ac..27be96b 100644
--- a/gdb/testsuite/gdb.trace/basic-libipa.exp
+++ b/gdb/testsuite/gdb.trace/basic-libipa.exp
@@ -42,7 +42,7 @@ save_vars { env(ASAN_OPTIONS) } {
# LD_PRELOAD.
append_environment_default ASAN_OPTIONS verify_asan_link_order 0
- clean_restart $binfile
+ clean_restart $testfile
}
if {![runto_main]} {
diff --git a/gdb/testsuite/gdb.trace/entry-values.exp b/gdb/testsuite/gdb.trace/entry-values.exp
index f6bcf66..1d2e8e9 100644
--- a/gdb/testsuite/gdb.trace/entry-values.exp
+++ b/gdb/testsuite/gdb.trace/entry-values.exp
@@ -29,7 +29,7 @@ if {[gdb_compile [list ${binfile}1.o] \
return -1
}
-clean_restart ${binfile}1
+clean_restart ${testfile}1
set returned_from_foo ""
@@ -90,61 +90,63 @@ Dwarf::assemble $asm_file {
set bar_length [lindex $bar_result 1]
cu {} {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
int_label: base_type {
- {name int}
- {encoding @DW_ATE_signed}
- {byte_size 4 DW_FORM_sdata}
+ DW_AT_name int
+ DW_AT_encoding @DW_ATE_signed
+ DW_AT_byte_size 4 DW_FORM_sdata
}
foo_label: subprogram {
- {decl_file 0 udata}
- {MACRO_AT_func { foo }}
+ DW_AT_decl_file 0 udata
+ MACRO_AT_func { foo }
} {
formal_parameter {
- {type :$int_label}
- {name i}
- {location {DW_OP_reg0} SPECIAL_expr}
+ DW_AT_type :$int_label
+ DW_AT_name i
+ DW_AT_location {DW_OP_reg0} SPECIAL_expr
}
formal_parameter {
- {type :$int_label}
- {name j}
- {location {DW_OP_reg1} SPECIAL_expr}
+ DW_AT_type :$int_label
+ DW_AT_name j
+ DW_AT_location {DW_OP_reg1} SPECIAL_expr
}
}
subprogram {
- {name bar}
- {decl_file 0 udata}
- {low_pc $bar_start addr}
- {high_pc "$bar_start + $bar_length" addr}
- {GNU_all_call_sites 1 sdata}
+ DW_AT_name bar
+ DW_AT_decl_file 0 udata
+ DW_AT_low_pc $bar_start addr
+ DW_AT_high_pc "$bar_start + $bar_length" addr
+ DW_AT_GNU_all_call_sites 1 sdata
} {
formal_parameter {
- {type :$int_label}
- {name i}
+ DW_AT_type :$int_label
+ DW_AT_name i
}
GNU_call_site {
- {low_pc "$bar_start + $returned_from_foo" addr}
- {abstract_origin :$foo_label}
+ DW_AT_low_pc "$bar_start + $returned_from_foo" addr
+ DW_AT_abstract_origin :$foo_label
} {
# Faked entry values are reference to variables 'global1'
# and 'global2' and faked locations are register 0 and
# register 1.
GNU_call_site_parameter {
- {location {DW_OP_reg0} SPECIAL_expr}
- {GNU_call_site_value {
+ DW_AT_location {DW_OP_reg0} SPECIAL_expr
+ DW_AT_GNU_call_site_value {
addr global1
deref_size 4
- } SPECIAL_expr}
+ } SPECIAL_expr
}
GNU_call_site_parameter {
- {location {DW_OP_reg1} SPECIAL_expr}
- {GNU_call_site_value {
+ DW_AT_location {DW_OP_reg1} SPECIAL_expr
+ DW_AT_GNU_call_site_value {
addr global2
deref_size 4
- } SPECIAL_expr}
+ } SPECIAL_expr
}
}
}
@@ -193,7 +195,7 @@ gdb_test_sequence "bt" "bt, 2" {
# Restart GDB and trace.
-clean_restart $binfile
+clean_restart $testfile
load_lib "trace-support.exp"
diff --git a/gdb/testsuite/gdb.trace/ftrace-lock.exp b/gdb/testsuite/gdb.trace/ftrace-lock.exp
index 36a7566..8c9d4aa 100644
--- a/gdb/testsuite/gdb.trace/ftrace-lock.exp
+++ b/gdb/testsuite/gdb.trace/ftrace-lock.exp
@@ -32,7 +32,7 @@ set options [list debug pthreads [gdb_target_symbol_prefix_flags] \
additional_flags=-DNUM_THREADS=$NUM_THREADS]
with_test_prefix "runtime trace support check" {
- if { [prepare_for_testing "prepare for testing" ${binfile}-check \
+ if { [prepare_for_testing "prepare for testing" ${testfile}-check \
$srcfile $options] } {
return
}
@@ -55,7 +55,7 @@ set remote_libipa [gdb_load_shlib $libipa]
lappend options shlib=$libipa
if { [prepare_for_testing "prepare for testing with libipa" \
- $binfile $srcfile $options] } {
+ $testfile $srcfile $options] } {
return
}
diff --git a/gdb/testsuite/gdb.trace/mi-trace-frame-collected.exp b/gdb/testsuite/gdb.trace/mi-trace-frame-collected.exp
index dd0d785..9b4f053 100644
--- a/gdb/testsuite/gdb.trace/mi-trace-frame-collected.exp
+++ b/gdb/testsuite/gdb.trace/mi-trace-frame-collected.exp
@@ -37,7 +37,7 @@ gdb_exit
load_lib mi-support.exp
set MIFLAGS "-i=mi"
-mi_clean_restart $binfile
+mi_clean_restart $testfile
mi_runto_main
mi_gdb_test "-break-insert end" \
diff --git a/gdb/testsuite/gdb.trace/mi-trace-unavailable.exp b/gdb/testsuite/gdb.trace/mi-trace-unavailable.exp
index dde6d8b..dd22046 100644
--- a/gdb/testsuite/gdb.trace/mi-trace-unavailable.exp
+++ b/gdb/testsuite/gdb.trace/mi-trace-unavailable.exp
@@ -35,7 +35,7 @@ gdb_exit
load_lib mi-support.exp
set MIFLAGS "-i=mi"
-mi_clean_restart $binfile
+mi_clean_restart $testfile
mi_runto_main
mi_gdb_test "-break-insert marker" \
diff --git a/gdb/testsuite/gdb.trace/mi-traceframe-changed.exp b/gdb/testsuite/gdb.trace/mi-traceframe-changed.exp
index 05c10ed..90a053c 100644
--- a/gdb/testsuite/gdb.trace/mi-traceframe-changed.exp
+++ b/gdb/testsuite/gdb.trace/mi-traceframe-changed.exp
@@ -45,11 +45,10 @@ remote_file target delete $tfile_basic
proc test_tfind_tfile { } {
with_test_prefix "tfile" {
- global binfile
global decimal
global tfile_basic
- mi_clean_restart $binfile
+ mi_clean_restart $::testfile
mi_gdb_test "-target-select tfile ${tfile_basic}" \
".*=breakpoint-created,bkpt=\{number=\"${decimal}\",type=\"tracepoint\",disp=\"keep\",enabled=\"y\",.*,func=\"write_basic_trace_file\".*\\^connected" \
@@ -92,8 +91,8 @@ if [generate_tracefile $binfile] {
# Change to a different test case in order to run it on target, and get
# several traceframes.
standard_testfile status-stop.c
-append testfile -1
-append binfile -1
+append testfile "-1"
+append binfile "-1"
set executable $testfile
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
@@ -120,9 +119,8 @@ gdb_exit
proc test_tfind_remote { } {
with_test_prefix "remote" {
global decimal
- global binfile
- mi_clean_restart $binfile
+ mi_clean_restart $::testfile
mi_runto_main
mi_gdb_test "-break-insert end" "\\^done.*" "break end"
diff --git a/gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp b/gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp
index 90654c0..99f7bf9 100644
--- a/gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp
+++ b/gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp
@@ -89,9 +89,7 @@ proc test_reconnect { } {
}
}
- global binfile
-
- if {[mi_clean_restart $binfile]} {
+ if {[mi_clean_restart $::testfile]} {
return
}
@@ -155,11 +153,10 @@ proc test_pending_resolved { } {
with_test_prefix "pending resolved" {
global decimal hex
global executable
- global binfile
global lib_sl1 lib_sl2
global mi_gdb_prompt
- if {[mi_clean_restart $binfile]} {
+ if {[mi_clean_restart $::testfile]} {
return
}
mi_load_shlibs $lib_sl1 $lib_sl2
diff --git a/gdb/testsuite/gdb.trace/mi-tsv-changed.exp b/gdb/testsuite/gdb.trace/mi-tsv-changed.exp
index f90d9a4..6f71e79 100644
--- a/gdb/testsuite/gdb.trace/mi-tsv-changed.exp
+++ b/gdb/testsuite/gdb.trace/mi-tsv-changed.exp
@@ -77,7 +77,7 @@ proc test_create_delete_modify_tsv { } {
}
gdb_exit
- if {[mi_clean_restart $binfile]} {
+ if {[mi_clean_restart $::testfile]} {
return
}
@@ -145,7 +145,7 @@ proc test_upload_tsv { } {
return 0
}
- clean_restart $testfile
+ clean_restart $::testfile
if {![runto_main]} {
return 0
}
@@ -175,8 +175,7 @@ proc test_upload_tsv { } {
}
}
- global binfile
- if {[mi_clean_restart $binfile]} {
+ if {[mi_clean_restart $::testfile]} {
return
}
diff --git a/gdb/testsuite/gdb.trace/packetlen.exp b/gdb/testsuite/gdb.trace/packetlen.exp
index cf9fcc4..52a34b9 100644
--- a/gdb/testsuite/gdb.trace/packetlen.exp
+++ b/gdb/testsuite/gdb.trace/packetlen.exp
@@ -25,7 +25,7 @@ if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \
return -1
}
-clean_restart $binfile
+clean_restart $testfile
gdb_test "tstop" ".*" ""
gdb_test "tfind none" ".*" ""
runto_main
diff --git a/gdb/testsuite/gdb.trace/passc-dyn.exp b/gdb/testsuite/gdb.trace/passc-dyn.exp
index 0a67df1..b4ec45a 100644
--- a/gdb/testsuite/gdb.trace/passc-dyn.exp
+++ b/gdb/testsuite/gdb.trace/passc-dyn.exp
@@ -25,7 +25,7 @@ if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \
return -1
}
-clean_restart $binfile
+clean_restart $testfile
runto_main
if {![gdb_target_supports_trace]} {
diff --git a/gdb/testsuite/gdb.trace/report.exp b/gdb/testsuite/gdb.trace/report.exp
index 45857a1..f2a04f7 100644
--- a/gdb/testsuite/gdb.trace/report.exp
+++ b/gdb/testsuite/gdb.trace/report.exp
@@ -24,7 +24,7 @@ if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \
untested "failed to compile"
return -1
}
-clean_restart $binfile
+clean_restart $testfile
runto_main
if {![gdb_target_supports_trace]} {
diff --git a/gdb/testsuite/gdb.trace/tfile.exp b/gdb/testsuite/gdb.trace/tfile.exp
index 020f4d4..4d156f7 100644
--- a/gdb/testsuite/gdb.trace/tfile.exp
+++ b/gdb/testsuite/gdb.trace/tfile.exp
@@ -61,7 +61,7 @@ if {!$purely_local} {
remote_download host [remote_upload target tfile-error.tf] tfile-error.tf
}
-clean_restart $binfile
+clean_restart $testfile
# Program has presumably exited, now target a trace file it created.
@@ -121,7 +121,7 @@ gdb_test "info registers" "The program has no registers now\." \
# Now start afresh, using only a trace file.
-clean_restart $binfile
+clean_restart $testfile
gdb_test "target tfile $tfile_error" "Created tracepoint.*" \
"target tfile [file tail $tfile_error]"
diff --git a/gdb/testsuite/gdb.trace/tfind.exp b/gdb/testsuite/gdb.trace/tfind.exp
index ae73206..92386e4 100644
--- a/gdb/testsuite/gdb.trace/tfind.exp
+++ b/gdb/testsuite/gdb.trace/tfind.exp
@@ -27,7 +27,7 @@ if { [gdb_compile "$srcdir/$subdir/$srcfile" "$binfile" \
return -1
}
-clean_restart $binfile
+clean_restart $testfile
# 6.2 test help tstart
gdb_test "help tstart" \
diff --git a/gdb/testsuite/gdb.trace/trace-mt.exp b/gdb/testsuite/gdb.trace/trace-mt.exp
index 0c6e4e5..092dc6d 100644
--- a/gdb/testsuite/gdb.trace/trace-mt.exp
+++ b/gdb/testsuite/gdb.trace/trace-mt.exp
@@ -22,7 +22,7 @@ set additional_flags [gdb_target_symbol_prefix_flags]
require gdb_trace_common_supports_arch
with_test_prefix "runtime trace support check" {
- if { [prepare_for_testing "prepare for testing" ${binfile} $srcfile \
+ if { [prepare_for_testing "prepare for testing" $testfile $srcfile \
[list debug pthreads $additional_flags]] } {
return
}
@@ -37,13 +37,13 @@ with_test_prefix "runtime trace support check" {
}
}
-proc step_over_tracepoint { binfile trace_type } \
+proc step_over_tracepoint { testfile trace_type } \
{with_test_prefix "step over $trace_type" \
{
global hex
# Start with a fresh gdb.
- clean_restart $binfile
+ clean_restart $testfile
# Make sure inferior is running in all-stop mode.
gdb_test_no_output "set non-stop 0"
@@ -63,13 +63,13 @@ proc step_over_tracepoint { binfile trace_type } \
# Set breakpoint and tracepoint at the same address.
-proc break_trace_same_addr { binfile trace_type option } \
+proc break_trace_same_addr { testfile trace_type option } \
{with_test_prefix "$trace_type $option" \
{
global hex
# Start with a fresh gdb.
- clean_restart $binfile
+ clean_restart $testfile
if ![runto_main] {
return -1
}
@@ -96,10 +96,10 @@ proc break_trace_same_addr { binfile trace_type option } \
}}
foreach break_always_inserted { "on" "off" } {
- break_trace_same_addr $binfile "trace" ${break_always_inserted}
+ break_trace_same_addr $testfile "trace" ${break_always_inserted}
}
-step_over_tracepoint $binfile "trace"
+step_over_tracepoint $testfile "trace"
require allow_shlib_tests
@@ -108,8 +108,8 @@ set libipa [get_in_proc_agent]
set remote_libipa [gdb_load_shlib $libipa]
# Compile test case again with IPA.
-set binfile_ipa ${binfile}-ipa
-if { [prepare_for_testing "prepare for testing" $binfile_ipa $srcfile \
+set testfile_ipa $testfile-ipa
+if { [prepare_for_testing "prepare for testing" $testfile_ipa $srcfile \
[list debug pthreads $additional_flags shlib=$libipa]] } {
return
}
@@ -122,8 +122,8 @@ if { [gdb_test "info sharedlibrary" ".*${remote_libipa}.*" "IPA loaded"] != 0 }
untested "could not find IPA lib loaded"
} else {
foreach break_always_inserted { "on" "off" } {
- break_trace_same_addr $binfile_ipa "ftrace" ${break_always_inserted}
+ break_trace_same_addr $testfile_ipa "ftrace" ${break_always_inserted}
}
- step_over_tracepoint $binfile_ipa "ftrace"
+ step_over_tracepoint $testfile_ipa "ftrace"
}
diff --git a/gdb/testsuite/gdb.trace/tsv.exp b/gdb/testsuite/gdb.trace/tsv.exp
index 96c7c35..837633d 100644
--- a/gdb/testsuite/gdb.trace/tsv.exp
+++ b/gdb/testsuite/gdb.trace/tsv.exp
@@ -23,7 +23,7 @@ if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \
return -1
}
-clean_restart $binfile
+clean_restart $testfile
# PR gdb/21352: Command tsave does not support -r argument
gdb_test "tsave -r" "Argument required \\\(file in which to save trace data\\\)\." \
@@ -193,7 +193,7 @@ gdb_test_multiple "target ctf ${tracefile}.ctf" "" {
}
# Restart.
-clean_restart ${binfile}
+clean_restart $testfile
if {![runto_main]} {
return
diff --git a/gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp b/gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp
index 98207f0..3adf24a 100644
--- a/gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp
+++ b/gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp
@@ -32,165 +32,167 @@ Dwarf::assemble $asm_file {
declare_labels uchar_label struct_s_label foo_label struct_t_label bar_label
cu {} {
- compile_unit {{language @DW_LANG_C}} {
+ compile_unit {
+ DW_AT_language @DW_LANG_C
+ } {
uchar_label: DW_TAG_base_type {
- {name "unsigned char"}
- {byte_size 1 DW_FORM_sdata}
- {encoding @DW_ATE_unsigned_char}
+ DW_AT_name "unsigned char"
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_encoding @DW_ATE_unsigned_char
}
struct_s_label: DW_TAG_structure_type {
- {name s}
- {byte_size 3 DW_FORM_sdata}
- {decl_file 0 DW_FORM_udata}
- {decl_line 1 DW_FORM_udata}
+ DW_AT_name s
+ DW_AT_byte_size 3 DW_FORM_sdata
+ DW_AT_decl_file 0 DW_FORM_udata
+ DW_AT_decl_line 1 DW_FORM_udata
} {
DW_TAG_member {
- {name a}
- {type :$uchar_label}
- {data_member_location {
+ DW_AT_name a
+ DW_AT_type :$uchar_label
+ DW_AT_data_member_location {
DW_OP_plus_uconst 0
- } SPECIAL_expr}
+ } SPECIAL_expr
}
DW_TAG_member {
- {name b}
- {type :$uchar_label}
- {data_member_location {
+ DW_AT_name b
+ DW_AT_type :$uchar_label
+ DW_AT_data_member_location {
DW_OP_plus_uconst 1
- } SPECIAL_expr}
+ } SPECIAL_expr
}
DW_TAG_member {
- {name c}
- {type :$uchar_label}
- {data_member_location {
+ DW_AT_name c
+ DW_AT_type :$uchar_label
+ DW_AT_data_member_location {
DW_OP_plus_uconst 2
- } SPECIAL_expr}
+ } SPECIAL_expr
}
}
struct_t_label: DW_TAG_structure_type {
- {name t}
- {byte_size 3 DW_FORM_sdata}
- {decl_file 0 DW_FORM_udata}
- {decl_line 1 DW_FORM_udata}
+ DW_AT_name t
+ DW_AT_byte_size 3 DW_FORM_sdata
+ DW_AT_decl_file 0 DW_FORM_udata
+ DW_AT_decl_line 1 DW_FORM_udata
} {
DW_TAG_member {
- {name a}
- {type :$uchar_label}
- {data_member_location {
+ DW_AT_name a
+ DW_AT_type :$uchar_label
+ DW_AT_data_member_location {
DW_OP_plus_uconst 0
- } SPECIAL_expr}
+ } SPECIAL_expr
}
DW_TAG_member {
- {name b}
- {type :$uchar_label}
- {byte_size 1 DW_FORM_sdata}
- {bit_size 1 DW_FORM_sdata}
- {bit_offset 7 DW_FORM_sdata}
- {data_member_location {
+ DW_AT_name b
+ DW_AT_type :$uchar_label
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_bit_size 1 DW_FORM_sdata
+ DW_AT_bit_offset 7 DW_FORM_sdata
+ DW_AT_data_member_location {
DW_OP_plus_uconst 1
- } SPECIAL_expr}
+ } SPECIAL_expr
}
DW_TAG_member {
- {name c}
- {type :$uchar_label}
- {byte_size 1 DW_FORM_sdata}
- {bit_size 1 DW_FORM_sdata}
- {bit_offset 6 DW_FORM_sdata}
- {data_member_location {
+ DW_AT_name c
+ DW_AT_type :$uchar_label
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_bit_size 1 DW_FORM_sdata
+ DW_AT_bit_offset 6 DW_FORM_sdata
+ DW_AT_data_member_location {
DW_OP_plus_uconst 1
- } SPECIAL_expr}
+ } SPECIAL_expr
}
DW_TAG_member {
- {name d}
- {type :$uchar_label}
- {byte_size 1 DW_FORM_sdata}
- {bit_size 1 DW_FORM_sdata}
- {bit_offset 5 DW_FORM_sdata}
- {data_member_location {
+ DW_AT_name d
+ DW_AT_type :$uchar_label
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_bit_size 1 DW_FORM_sdata
+ DW_AT_bit_offset 5 DW_FORM_sdata
+ DW_AT_data_member_location {
DW_OP_plus_uconst 1
- } SPECIAL_expr}
+ } SPECIAL_expr
}
DW_TAG_member {
- {name e}
- {type :$uchar_label}
- {byte_size 1 DW_FORM_sdata}
- {bit_size 1 DW_FORM_sdata}
- {bit_offset 4 DW_FORM_sdata}
- {data_member_location {
+ DW_AT_name e
+ DW_AT_type :$uchar_label
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_bit_size 1 DW_FORM_sdata
+ DW_AT_bit_offset 4 DW_FORM_sdata
+ DW_AT_data_member_location {
DW_OP_plus_uconst 1
- } SPECIAL_expr}
+ } SPECIAL_expr
}
DW_TAG_member {
- {name f}
- {type :$uchar_label}
- {byte_size 1 DW_FORM_sdata}
- {bit_size 1 DW_FORM_sdata}
- {bit_offset 3 DW_FORM_sdata}
- {data_member_location {
+ DW_AT_name f
+ DW_AT_type :$uchar_label
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_bit_size 1 DW_FORM_sdata
+ DW_AT_bit_offset 3 DW_FORM_sdata
+ DW_AT_data_member_location {
DW_OP_plus_uconst 1
- } SPECIAL_expr}
+ } SPECIAL_expr
}
DW_TAG_member {
- {name g}
- {type :$uchar_label}
- {byte_size 1 DW_FORM_sdata}
- {bit_size 1 DW_FORM_sdata}
- {bit_offset 2 DW_FORM_sdata}
- {data_member_location {
+ DW_AT_name g
+ DW_AT_type :$uchar_label
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_bit_size 1 DW_FORM_sdata
+ DW_AT_bit_offset 2 DW_FORM_sdata
+ DW_AT_data_member_location {
DW_OP_plus_uconst 1
- } SPECIAL_expr}
+ } SPECIAL_expr
}
DW_TAG_member {
- {name h}
- {type :$uchar_label}
- {byte_size 1 DW_FORM_sdata}
- {bit_size 1 DW_FORM_sdata}
- {bit_offset 1 DW_FORM_sdata}
- {data_member_location {
+ DW_AT_name h
+ DW_AT_type :$uchar_label
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_bit_size 1 DW_FORM_sdata
+ DW_AT_bit_offset 1 DW_FORM_sdata
+ DW_AT_data_member_location {
DW_OP_plus_uconst 1
- } SPECIAL_expr}
+ } SPECIAL_expr
}
DW_TAG_member {
- {name i}
- {type :$uchar_label}
- {byte_size 1 DW_FORM_sdata}
- {bit_size 1 DW_FORM_sdata}
- {bit_offset 0 DW_FORM_sdata}
- {data_member_location {
+ DW_AT_name i
+ DW_AT_type :$uchar_label
+ DW_AT_byte_size 1 DW_FORM_sdata
+ DW_AT_bit_size 1 DW_FORM_sdata
+ DW_AT_bit_offset 0 DW_FORM_sdata
+ DW_AT_data_member_location {
DW_OP_plus_uconst 1
- } SPECIAL_expr}
+ } SPECIAL_expr
}
DW_TAG_member {
- {name j}
- {type :$uchar_label}
- {data_member_location {
+ DW_AT_name j
+ DW_AT_type :$uchar_label
+ DW_AT_data_member_location {
DW_OP_plus_uconst 2
- } SPECIAL_expr}
+ } SPECIAL_expr
}
}
DW_TAG_subprogram {
- {name foo}
- {decl_file 0 udata}
- {low_pc foo_start_lbl addr}
- {high_pc foo_end_lbl addr}
+ DW_AT_name foo
+ DW_AT_decl_file 0 udata
+ DW_AT_low_pc foo_start_lbl addr
+ DW_AT_high_pc foo_end_lbl addr
} {
DW_TAG_formal_parameter {
- {type :$struct_s_label}
- {name x}
- {location {
+ DW_AT_type :$struct_s_label
+ DW_AT_name x
+ DW_AT_location {
DW_OP_lit0
DW_OP_stack_value
DW_OP_piece 2
DW_OP_reg0
DW_OP_piece 1
- } SPECIAL_expr}
+ } SPECIAL_expr
}
DW_TAG_formal_parameter {
- {type :$struct_s_label}
- {name y}
- {location {
+ DW_AT_type :$struct_s_label
+ DW_AT_name y
+ DW_AT_location {
DW_OP_lit0
DW_OP_stack_value
DW_OP_piece 1
@@ -199,32 +201,32 @@ Dwarf::assemble $asm_file {
DW_OP_lit0
DW_OP_stack_value
DW_OP_piece 1
- } SPECIAL_expr}
+ } SPECIAL_expr
}
DW_TAG_formal_parameter {
- {type :$struct_s_label}
- {name z}
- {location {
+ DW_AT_type :$struct_s_label
+ DW_AT_name z
+ DW_AT_location {
DW_OP_reg0
DW_OP_piece 1
DW_OP_lit0
DW_OP_stack_value
DW_OP_piece 2
- } SPECIAL_expr}
+ } SPECIAL_expr
}
}
DW_TAG_subprogram {
- {name bar}
- {decl_file 0 udata}
- {low_pc bar_start_lbl addr}
- {high_pc bar_end_lbl addr}
+ DW_AT_name bar
+ DW_AT_decl_file 0 udata
+ DW_AT_low_pc bar_start_lbl addr
+ DW_AT_high_pc bar_end_lbl addr
} {
DW_TAG_formal_parameter {
- {type :$struct_t_label}
- {name x}
- {location {
+ DW_AT_type :$struct_t_label
+ DW_AT_name x
+ DW_AT_location {
DW_OP_lit0
DW_OP_stack_value
DW_OP_piece 1
@@ -236,12 +238,12 @@ Dwarf::assemble $asm_file {
DW_OP_lit0
DW_OP_stack_value
DW_OP_piece 1
- } SPECIAL_expr}
+ } SPECIAL_expr
}
DW_TAG_formal_parameter {
- {type :$struct_t_label}
- {name y}
- {location {
+ DW_AT_type :$struct_t_label
+ DW_AT_name y
+ DW_AT_location {
DW_OP_lit0
DW_OP_stack_value
DW_OP_piece 1
@@ -256,12 +258,12 @@ Dwarf::assemble $asm_file {
DW_OP_lit0
DW_OP_stack_value
DW_OP_piece 1
- } SPECIAL_expr}
+ } SPECIAL_expr
}
DW_TAG_formal_parameter {
- {type :$struct_t_label}
- {name z}
- {location {
+ DW_AT_type :$struct_t_label
+ DW_AT_name z
+ DW_AT_location {
DW_OP_lit0
DW_OP_stack_value
DW_OP_piece 1
@@ -273,7 +275,7 @@ Dwarf::assemble $asm_file {
DW_OP_lit0
DW_OP_stack_value
DW_OP_piece 1
- } SPECIAL_expr}
+ } SPECIAL_expr
}
}
diff --git a/gdb/testsuite/gdb.trace/while-dyn.exp b/gdb/testsuite/gdb.trace/while-dyn.exp
index 53a8e54..3940ff6 100644
--- a/gdb/testsuite/gdb.trace/while-dyn.exp
+++ b/gdb/testsuite/gdb.trace/while-dyn.exp
@@ -26,7 +26,7 @@ if { [gdb_compile "$srcdir/$subdir/$srcfile" $binfile \
return -1
}
-clean_restart $binfile
+clean_restart $testfile
runto_main
if {![gdb_target_supports_trace]} {
diff --git a/gdb/testsuite/gdb.tui/basic.exp b/gdb/testsuite/gdb.tui/basic.exp
index 35c99bd..8ecc91a 100644
--- a/gdb/testsuite/gdb.tui/basic.exp
+++ b/gdb/testsuite/gdb.tui/basic.exp
@@ -112,5 +112,9 @@ set re_noattr "\[^<\]"
set status_window_line 15
set status [Term::get_line_with_attrs $status_window_line]
-gdb_assert { [regexp "^<reverse:1>$re_noattr*<reverse:0>$" $status] == 1} \
+verbose -log "status line: '$status'"
+
+# The status line uses standout, which may translate to different attributes
+# depending on the terminal settings. Just check for at least one attribute.
+gdb_assert { [regexp "^<.*>(exec|extended-r)" $status] == 1 } \
"status window: reverse"
diff --git a/gdb/testsuite/gdb.tui/color-prompt.exp b/gdb/testsuite/gdb.tui/color-prompt.exp
index a95b24a..af6e467 100644
--- a/gdb/testsuite/gdb.tui/color-prompt.exp
+++ b/gdb/testsuite/gdb.tui/color-prompt.exp
@@ -15,18 +15,16 @@
# Check using a prompt with color in TUI.
+require allow_tui_tests
+
tuiterm_env
Term::clean_restart 24 80
-# Set colored prompt.
if {![Term::enter_tui]} {
unsupported "TUI not supported"
return
}
-Term::command "set prompt \\033\[31m(gdb) \\033\[0m"
-
-set line [Term::get_line_with_attrs $Term::_cur_row]
-gdb_assert { [regexp "^<fg:red>$gdb_prompt <fg:default> *$" $line] } \
- "prompt with color"
+set tui 1
+source $srcdir/$subdir/color-prompt.exp.tcl
diff --git a/gdb/testsuite/gdb.tui/color-prompt.exp.tcl b/gdb/testsuite/gdb.tui/color-prompt.exp.tcl
new file mode 100644
index 0000000..e6f4d3b
--- /dev/null
+++ b/gdb/testsuite/gdb.tui/color-prompt.exp.tcl
@@ -0,0 +1,80 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Check using a prompt with color in TUI ($tui == 0) or CLI ($tui == 0).
+
+set csi [string cat {\033} "\["]
+set rl_prompt_start_ignore {\001}
+set rl_prompt_end_ignore {\002}
+
+foreach_with_prefix rl_prompt_start_end_ignore { 0 1 } {
+ set color_on [string cat $csi 31m]
+ set color_off [string cat $csi 0m]
+
+ if { $rl_prompt_start_end_ignore } {
+ set color_on \
+ [string cat \
+ $rl_prompt_start_ignore \
+ $color_on \
+ $rl_prompt_end_ignore]
+ set color_off \
+ [string cat \
+ $rl_prompt_start_ignore \
+ $color_off \
+ $rl_prompt_end_ignore]
+ }
+
+ # Set prompt with color.
+ set prompt "${color_on}(gdb) $color_off"
+ Term::command "set prompt $prompt"
+
+ # Check the color.
+ set line [Term::get_line_with_attrs $Term::_cur_row]
+ gdb_assert { [regexp "^<fg:red>$gdb_prompt <fg:default> *$" $line] } \
+ "prompt with color"
+
+ # Type a string.
+ set cmd "some long command"
+ send_gdb $cmd
+ Term::wait_for_line ^[string_to_regexp "(gdb) $cmd"] 23
+
+ # Send ^A, aka C-a, trigger beginning-of-line.
+ send_gdb "\001"
+ if { $tui || $rl_prompt_start_end_ignore } {
+ Term::wait_for_line ^[string_to_regexp "(gdb) $cmd"] 6
+ } else {
+ # Without the markers, readline may get the cursor position wrong, so
+ # match less strict.
+ Term::wait_for_line ^[string_to_regexp "(gdb) $cmd"]
+ }
+ Term::dump_screen
+
+ # Type something else to flush out the effect of the ^A.
+ set prefix "A"
+ send_gdb $prefix
+ if { $tui || $rl_prompt_start_end_ignore } {
+ Term::wait_for_line ^[string_to_regexp "(gdb) $prefix$cmd"] 7
+ } else {
+ # Without the markers, readline may get the cursor position wrong, so
+ # match less strict.
+ Term::wait_for_line [string_to_regexp "$prefix"]
+ }
+
+ # Abort command line editing, and regenerate prompt.
+ send_gdb "\003"
+
+ # Reset prompt to default prompt.
+ Term::command "set prompt (gdb) "
+}
diff --git a/gdb/testsuite/gdb.tui/compact-source.exp b/gdb/testsuite/gdb.tui/compact-source.exp
index b050159..31bc1dc 100644
--- a/gdb/testsuite/gdb.tui/compact-source.exp
+++ b/gdb/testsuite/gdb.tui/compact-source.exp
@@ -41,7 +41,7 @@ if {[build_executable "failed to prepare" ${testfile} ${srcfile}] == -1} {
return -1
}
-Term::clean_restart 24 80 $binfile
+Term::clean_restart 24 80 $testfile
gdb_test_no_output "maint set tui-left-margin-verbose on"
gdb_test_no_output "set tui compact-source on"
@@ -55,9 +55,9 @@ set re_border "\\|"
set max_line_nr_in_source_file [llength $src_list]
# Ensure there are more lines in the window than in the source file.
-set src_window_lines [expr $max_line_nr_in_source_file + 2]
+set src_window_lines [expr {$max_line_nr_in_source_file + 2}]
# Account for border size.
-set src_window_size [expr $src_window_lines + 2]
+set src_window_size [expr {$src_window_lines + 2}]
Term::command "wh src $src_window_size"
set re_left_margin "___4_"
@@ -65,6 +65,6 @@ set re_left_margin "___4_"
Term::check_contents "compact source format" \
"$re_border$re_left_margin$re_line_four *$re_border"
-set re_left_margin "___0*[expr $max_line_nr_in_source_file + 1]_"
+set re_left_margin "___0*[expr {$max_line_nr_in_source_file + 1}]_"
Term::check_contents_not "no surplus line number" \
"$re_border$re_left_margin *$re_border"
diff --git a/gdb/testsuite/gdb.tui/empty.exp b/gdb/testsuite/gdb.tui/empty.exp
index 33710ff..19196e8 100644
--- a/gdb/testsuite/gdb.tui/empty.exp
+++ b/gdb/testsuite/gdb.tui/empty.exp
@@ -65,7 +65,7 @@ set layouts {
proc check_boxes {boxes} {
set boxno 1
foreach box $boxes {
- eval Term::check_box [list "box $boxno"] $box
+ Term::check_box "box $boxno" {*}$box
incr boxno
}
}
diff --git a/gdb/testsuite/gdb.testsuite/lmap.exp b/gdb/testsuite/gdb.tui/gdb.tcl
index da03722..ca207ed 100644..100755
--- a/gdb/testsuite/gdb.testsuite/lmap.exp
+++ b/gdb/testsuite/gdb.tui/gdb.tcl
@@ -1,4 +1,7 @@
-# Copyright 2023-2025 Free Software Foundation, Inc.
+#!/usr/bin/env tclsh
+
+# Copyright 2025 Free Software Foundation, Inc.
+
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
@@ -12,9 +15,6 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-set one 1
-set l1 { $one 2 }
-set res1 [lmap item $l1 {expr $item + 1}]
-gdb_assert { [lindex $res1 0] == 2 }
-gdb_assert { [lindex $res1 1] == 3 }
-gdb_assert { $item == 2 }
+puts "foo\033(%5"
+
+gets stdin
diff --git a/gdb/testsuite/gdb.tui/main-2.exp b/gdb/testsuite/gdb.tui/main-2.exp
index 71ad03b..2bc6b8d 100644
--- a/gdb/testsuite/gdb.tui/main-2.exp
+++ b/gdb/testsuite/gdb.tui/main-2.exp
@@ -26,7 +26,7 @@ if { [build_executable "failed to prepare" $testfile $srcfile ] == -1} {
return -1
}
-Term::clean_restart 24 80 $binfile
+Term::clean_restart 24 80 $testfile
if {![runto_main]} {
perror "test suppressed"
@@ -41,7 +41,7 @@ if {![Term::enter_tui]} {
set line " return 0;"
set nr [gdb_get_line_number $line]
-set screen_line [Term::get_string_with_attrs 6 1 79]
+set screen_line [Term::get_string_with_attrs 6 11 79]
verbose -log "screen line 6: '$screen_line'"
-gdb_assert { [regexp "$nr <reverse:1>$line<reverse:0>" $screen_line] } \
+gdb_assert { [regexp "<reverse:1>$line<reverse:0>" $screen_line] } \
"highlighted line in middle of source window"
diff --git a/gdb/testsuite/gdb.tui/main.exp b/gdb/testsuite/gdb.tui/main.exp
index d6960c7..e49da35 100644
--- a/gdb/testsuite/gdb.tui/main.exp
+++ b/gdb/testsuite/gdb.tui/main.exp
@@ -43,7 +43,10 @@ if {![Term::enter_tui]} {
}
send_gdb "file [standard_output_file $testfile]\n"
-gdb_assert { [Term::wait_for "Reading symbols from"] } "file command"
+# Matching the output is difficult because it may or may not wrap. Simply
+# match the resulting prompt.
+gdb_assert { [Term::wait_for ""] } "file command"
+
Term::check_contents "show main after file" \
[string_to_regexp "|___[format %06d $nr]_$line"]
diff --git a/gdb/testsuite/gdb.tui/new-layout.exp b/gdb/testsuite/gdb.tui/new-layout.exp
index f517997..6a4c68f 100644
--- a/gdb/testsuite/gdb.tui/new-layout.exp
+++ b/gdb/testsuite/gdb.tui/new-layout.exp
@@ -45,15 +45,12 @@ gdb_test "tui new-layout example src 1 src 1" \
gdb_test "tui new-layout example src 1" \
"New layout does not contain the \"cmd\" window"
-# Avoid unbalanced curly braces problems with tcl 8.5.
-if { [tcl_version_at_least 8 6] } {
- gdb_test "tui new-layout example src 1\}" \
- "Extra '\}' in layout specification"
- gdb_test "tui new-layout example {src 1} 1\}" \
- "Extra '\}' in layout specification"
- gdb_test "tui new-layout example \{src 1" \
- "Missing '\}' in layout specification"
-}
+gdb_test "tui new-layout example src 1\}" \
+ "Extra '\}' in layout specification"
+gdb_test "tui new-layout example {src 1} 1\}" \
+ "Extra '\}' in layout specification"
+gdb_test "tui new-layout example \{src 1" \
+ "Missing '\}' in layout specification"
# Each entry of this list describes a layout, and some associated
# tests. The items within each entry are:
@@ -84,7 +81,7 @@ set layouts \
proc check_boxes {boxes} {
set boxno 1
foreach box $boxes {
- eval Term::check_box [list "box $boxno"] $box
+ Term::check_box "box $boxno" {*}$box
incr boxno
}
}
@@ -150,4 +147,7 @@ Term::check_box "before cmd_only: src box in src layout" 0 0 80 15
Term::command "layout cmd_only"
Term::command "layout src"
+
+# Flush out and check the resulting src box.
+Term::command "print 1"
Term::check_box "after cmd_only: src box in src layout" 0 0 80 15
diff --git a/gdb/testsuite/gdb.tui/pr30056.exp b/gdb/testsuite/gdb.tui/pr30056.exp
index 3403033..dd3b25c 100644
--- a/gdb/testsuite/gdb.tui/pr30056.exp
+++ b/gdb/testsuite/gdb.tui/pr30056.exp
@@ -72,9 +72,8 @@ save_vars { env(LC_ALL) } {
# Send ^C to clear the command line.
send_gdb "\003"
} else {
- # Sending ^C currently doesn't abort the i-search. PR cli/30498 is
- # open about this.
- kfail cli/30498 $test
+ # Sending ^C currently doesn't abort the i-search.
+ fail $test
# At this point we don't have a responsive prompt. Send ^G to abort
# the i-search.
diff --git a/gdb/testsuite/gdb.tui/source-search.c b/gdb/testsuite/gdb.tui/source-search.c
new file mode 100644
index 0000000..2320c5c
--- /dev/null
+++ b/gdb/testsuite/gdb.tui/source-search.c
@@ -0,0 +1,127 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+int
+main (void)
+{
+ /* Line 21 */
+ /* Line 22 */
+ /* Line 23 */
+ /* Line 24 */
+ /* Line 25 */
+ /* Line 26 */
+ /* Line 27 */
+ /* Line 28 */
+ /* Line 29 */
+ /* Line 30 */
+ /* Line 31 */
+ /* Line 32 */
+ /* Line 33 */
+ /* Line 34 */
+ /* Line 35 */
+ /* Line 36 */
+ /* Line 37 */
+ /* Line 38 */
+ /* Line 39 */
+ /* Line 40 */
+ /* Line 41 */
+ /* Line 42 */
+ /* Line 43 */
+ /* Line 44 */
+ /* Line 45 */
+ /* Line 46 */
+ /* Line 47 */
+ /* Line 48 */
+ /* Line 49 */
+ /* Line 50 */
+ /* Line 51 */
+ /* Line 52 */
+ /* Line 53 */
+ /* Line 54 */
+ /* Line 55 */
+ /* Line 56 */
+ /* Line 57 */
+ /* Line 58 */
+ /* Line 59 */
+ /* Line 60 */
+ /* Line 61 */
+ /* Line 62 */
+ /* Line 63 */
+ /* Line 64 */
+ /* Line 65 */
+ /* Line 66 */
+ /* Line 67 */
+ /* Line 68 */
+ /* Line 69 */
+ /* Line 70 */
+ /* Line 71 */
+ /* Line 72 */
+ /* Line 73 */
+ /* Line 74 */
+ /* Line 75 */
+ /* Line 76 */
+ /* Line 77 */
+ /* Line 78 */
+ /* Line 79 */
+ /* Line 80 */
+ /* Line 81 */
+ /* Line 82 */
+ /* Line 83 */
+ /* Line 84 */
+ /* Line 85 */
+ /* Line 86 */
+ /* Line 87 */
+ /* Line 88 */
+ /* Line 89 */
+ /* Line 90 */
+ /* Line 91 */
+ /* Line 92 */
+ /* Line 93 */
+ /* Line 94 */
+ /* Line 95 */
+ /* Line 96 */
+ /* Line 97 */
+ /* Line 98 */
+ /* Line 99 */
+ /* Line 100 */
+ /* Line 101 */
+ /* Line 102 */
+ /* Line 103 */
+ /* Line 104 */
+ /* Line 105 */
+ /* Line 106 */
+ /* Line 107 */
+ /* Line 108 */
+ /* Line 109 */
+ /* Line 110 */
+ /* Line 111 */
+ /* Line 112 */
+ /* Line 113 */
+ /* Line 114 */
+ /* Line 115 */
+ /* Line 116 */
+ /* Line 117 */
+ /* Line 118 */
+ /* Line 119 */
+ /* Line 120 */
+ /* Line 121 */
+ /* Line 122 */
+ /* Line 123 */
+ /* Line 124 */
+ /* Line 125 */
+ return 0;
+} /* Last line. */
diff --git a/gdb/testsuite/gdb.tui/source-search.exp b/gdb/testsuite/gdb.tui/source-search.exp
new file mode 100644
index 0000000..4fcdca3
--- /dev/null
+++ b/gdb/testsuite/gdb.tui/source-search.exp
@@ -0,0 +1,72 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>.
+
+# Test forward-search and reverse-search within the TUI src window.
+
+tuiterm_env
+
+standard_testfile .c
+
+if {[build_executable "failed to build" ${testfile} ${srcfile}] == -1} {
+ return
+}
+
+Term::clean_restart 24 80 $testfile
+if {![Term::enter_tui]} {
+ unsupported "TUI not supported"
+ return
+}
+
+proc check_src_window { testname first_line } {
+ set last_line [expr {$first_line + 12}]
+ Term::check_box_contents $testname 0 0 80 15 \
+ "^\\s+${first_line}\\s+.*\\s+${last_line}\\s+/\\* Line ${last_line} \\*/\\s+$"
+
+}
+
+# Initialise the src window so that it is displaying known contents.
+# Check that the expected contents are displayed.
+Term::command "list 20"
+set first_line 15
+check_src_window "initial src contents" $first_line
+
+# Search forward. Searches are from the last line displayed, so this
+# will move the next source line onto the screen each time.
+for { set i 1 } { $i < 4 } { incr i } {
+ incr first_line
+ Term::command "forward-search Line"
+ check_src_window "src windows after forward-search $i" $first_line
+}
+
+# Reverse search. Like forward-search, but move backward through the
+# source.
+for { set i 1 } { $i < 3 } { incr i } {
+ incr first_line -1
+ Term::command "reverse-search Line"
+ check_src_window "src windows after reverse-search $i" $first_line
+}
+
+# Until there are no matching lines left.
+Term::command "reverse-search Line"
+gdb_assert {[regexp -- "^Expression not found\\s+$" [Term::get_line 22]]} \
+ "check start of source was reached"
+
+Term::command "forward-search Last line"
+Term::check_box_contents "forward-search to end of file" 0 0 80 15 \
+ "^\\s+122\\s+.*/\\* Last line\\. \\*/\\s+$"
+
+Term::command "reverse-search This testcase is part"
+Term::check_box_contents "reverse-search to start of file" 0 0 80 15 \
+ "^\\s+1\\s+.*\\s+13\\s+GNU General Public License for more details\\.\\s+$"
diff --git a/gdb/testsuite/gdb.tui/tui-disasm-long-lines.exp b/gdb/testsuite/gdb.tui/tui-disasm-long-lines.exp
index 35f990d..7a9841f 100644
--- a/gdb/testsuite/gdb.tui/tui-disasm-long-lines.exp
+++ b/gdb/testsuite/gdb.tui/tui-disasm-long-lines.exp
@@ -35,7 +35,7 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "$binfile" \
}
}
-Term::clean_restart 24 80 $binfile
+Term::clean_restart 24 80 $testfile
if {![Term::prepare_for_tui]} {
unsupported "TUI not supported"
return
diff --git a/gdb/testsuite/gdb.tui/tui-disasm-styling.exp b/gdb/testsuite/gdb.tui/tui-disasm-styling.exp
index 513d787..6859744 100644
--- a/gdb/testsuite/gdb.tui/tui-disasm-styling.exp
+++ b/gdb/testsuite/gdb.tui/tui-disasm-styling.exp
@@ -37,12 +37,15 @@ proc check_asm_output { expect_styled testname } {
$testname
}
-Term::clean_restart 24 80 $binfile
+Term::clean_restart 24 80 $testfile
if {![Term::enter_tui]} {
unsupported "TUI not supported"
return
}
+# Proc enter_tui switches off styling, re-enable it.
+Term::command "set style enabled on"
+
Term::command "layout asm"
Term::check_box "asm box" 0 0 80 15
diff --git a/gdb/testsuite/gdb.tui/tui-focus.exp b/gdb/testsuite/gdb.tui/tui-focus.exp
index 26e5060..50a3315 100644
--- a/gdb/testsuite/gdb.tui/tui-focus.exp
+++ b/gdb/testsuite/gdb.tui/tui-focus.exp
@@ -36,7 +36,7 @@ foreach spec {{src true} {cmd true} {status true} {regs false} \
lassign $spec window valid_p
with_test_prefix "window=$window" {
- Term::clean_restart 24 80 $binfile
+ Term::clean_restart 24 80 $testfile
if {![Term::prepare_for_tui]} {
unsupported "TUI not supported"
return
@@ -75,7 +75,7 @@ foreach spec {{src true} {cmd true} {status true} {regs false} \
# Use the Python TUI API to exercise some of the ambiguous window name
# handling parts of the 'focus' command.
-Term::clean_restart 24 80 $binfile
+Term::clean_restart 24 80 $testfile
if {[allow_python_tests]} {
# Create a very simple tui window.
gdb_py_test_silent_cmd \
diff --git a/gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.S b/gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.S
index 9d69236..6e36152 100644
--- a/gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.S
+++ b/gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.S
@@ -20,8 +20,11 @@ _start:
.rept 5
nop
.endr
+
+#ifndef __CYGWIN__
#ifdef __arm__
.section .note.GNU-stack,"",%progbits
#else
.section .note.GNU-stack,"",@progbits
#endif
+#endif
diff --git a/gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.exp b/gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.exp
index 51623e8..e21914b 100644
--- a/gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.exp
+++ b/gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.exp
@@ -20,9 +20,13 @@ tuiterm_env
standard_testfile tui-layout-asm-short-prog.S
-if {[build_executable "failed to prepare" ${testfile} ${srcfile} \
- {debug additional_flags=-nostdlib \
- additional_flags=-nostartfiles}] == -1} {
+set opts {}
+lappend opts debug
+lappend opts additional_flags=-static
+lappend opts additional_flags=-nostdlib
+lappend opts ldflags=-nostartfiles
+
+if { [build_executable "failed to prepare" $testfile $srcfile $opts] == -1 } {
return -1
}
@@ -53,7 +57,7 @@ gdb_assert { [string match "|___0x*" $first_line] } \
# Scroll forward a large amount, this should take us to the last
# instruction in the program.
-Term::command "+ 13"
+Term::command "+ 15"
Term::check_box_contents "check asm box contents again" 0 0 80 15 \
[multi_line \
"^___$hex\[^\r\n\]+" \
@@ -61,6 +65,6 @@ Term::check_box_contents "check asm box contents again" 0 0 80 15 \
# Now scroll backward again, we should return to the start of the
# program.
-Term::command "- 13"
+Term::command "- 15"
gdb_assert {[string eq "$first_line" [Term::get_line 1]]} \
"check first line is back"
diff --git a/gdb/testsuite/gdb.tui/tui-layout.exp b/gdb/testsuite/gdb.tui/tui-layout.exp
index 7bb0ea1..f604871 100644
--- a/gdb/testsuite/gdb.tui/tui-layout.exp
+++ b/gdb/testsuite/gdb.tui/tui-layout.exp
@@ -40,7 +40,7 @@ if {[prepare_for_testing "failed to prepare" ${testfile} ${srcfile}]} {
# happens to be in after a call to clean_restart.
proc test_layout_or_focus {layout_name terminal execution} {
- global binfile gdb_prompt
+ global gdb_prompt
set dumb_terminal [string equal $terminal "dumb"]
@@ -48,9 +48,9 @@ proc test_layout_or_focus {layout_name terminal execution} {
save_vars { env(TERM) } {
setenv TERM $terminal
if {$dumb_terminal} {
- clean_restart $binfile
+ clean_restart $::testfile
} else {
- Term::clean_restart 24 80 $binfile
+ Term::clean_restart 24 80 $::testfile
if {![Term::prepare_for_tui]} {
unsupported "TUI not supported"
return
diff --git a/gdb/testsuite/gdb.tui/tui-missing-src.exp b/gdb/testsuite/gdb.tui/tui-missing-src.exp
index f29ec8c..aca417c 100644
--- a/gdb/testsuite/gdb.tui/tui-missing-src.exp
+++ b/gdb/testsuite/gdb.tui/tui-missing-src.exp
@@ -64,10 +64,8 @@ f2 (int x)
close $fd
# Step 3: Compile the source files.
-if { [gdb_compile "${srcfiles}" "${binfile}" \
- executable {debug additional_flags=-O0}] != "" } {
- untested "failed to compile"
- return -1
+if { [build_executable "failed to prepare" $testfile $srcfiles] == -1 } {
+ return
}
# Step 4: Remove the main.c file.
diff --git a/gdb/testsuite/gdb.tui/tui-mode-switch.exp b/gdb/testsuite/gdb.tui/tui-mode-switch.exp
new file mode 100644
index 0000000..c605962
--- /dev/null
+++ b/gdb/testsuite/gdb.tui/tui-mode-switch.exp
@@ -0,0 +1,57 @@
+require allow_tui_tests
+
+tuiterm_env
+
+if { [ishost *-*-*bsd*] } {
+ # We need support for alternate screen, and xterm doesn't have it.
+ set term xterm-clear
+} else {
+ set term xterm
+}
+
+Term::with_term $term {
+ Term::clean_restart 12 40
+}
+
+if {![Term::prepare_for_tui]} {
+ unsupported "TUI not supported"
+ return 0
+}
+
+# Generate prompt.
+Term::gen_prompt
+
+# Move to last line.
+for { set i 1 } { $i <= 11 } { incr i } {
+ send_gdb "\n"
+ Term::wait_for ""
+}
+
+# Type "foo".
+send_gdb "foo"
+set line { 0 11 40 1 }
+gdb_assert { [Term::wait_for_region_contents {*}$line "^$gdb_prompt foo"] } \
+ "type foo"
+
+# Enter TUI.
+send_gdb "\030\001"
+gdb_assert { [Term::wait_for ""] } "enter TUI"
+
+# Exit TUI.
+send_gdb "\030\001"
+gdb_assert { [Term::wait_for ""] } "exit TUI"
+
+# Type b.
+send_gdb "b"
+gdb_assert { [Term::wait_for_region_contents {*}$line "^$gdb_prompt b"] } \
+ "type b"
+
+# Check that we don't see "boo".
+gdb_assert { ![Term::check_region_contents_p {*}$line "^$gdb_prompt boo"] } \
+ "no boo"
+Term::dump_screen
+
+# We need an empty prompt here, to deal with the "monitor exit" that
+# native-extended-gdbserver will send. Send a backspace.
+send_gdb "\010"
+Term::wait_for ""
diff --git a/gdb/testsuite/gdb.tui/tuiterm-2.exp b/gdb/testsuite/gdb.tui/tuiterm-2.exp
index 5992271..a451834 100644
--- a/gdb/testsuite/gdb.tui/tuiterm-2.exp
+++ b/gdb/testsuite/gdb.tui/tuiterm-2.exp
@@ -106,6 +106,76 @@ with_override Term::accept_gdb_output test_accept_gdb_output {
}
gdb_assert { [Term::wait_for ""] }
}
+
+ with_test_prefix "Term::wait_for 2" {
+ Term::_setup 4 20
+ set send_cnt 0
+ set expect_send {}
+ set action_cnt 0
+ set actions {
+ {
+ Term::_move_cursor 0 0
+
+ Term::_insert "${::border}(gdb) "
+ set pos $Term::_cur_col
+
+ Term::_insert "foo"
+
+ Term::_move_cursor 19 0
+ Term::_insert "$::border"
+
+ Term::_move_cursor $pos 0
+ }
+ {
+ Term::_move_cursor 0 1
+
+ Term::_insert "${::border}(gdb) "
+ set pos $Term::_cur_col
+
+ Term::_move_cursor 19 1
+ Term::_insert "$::border"
+
+ Term::_move_cursor $pos 1
+ }
+ }
+
+ # Wait for a prompt.
+ gdb_assert { [Term::wait_for ""] }
+
+ # The first action sets the cursor after the prompt on the
+ # first line. The second action sets the cursor after the
+ # prompt on the second line. Check that wait_for returns
+ # after the second action, not the first.
+ gdb_assert { $Term::_cur_row == 1 }
+ }
}
}
}
+
+with_test_prefix "Unrecognized escape sequence" {
+ spawn $srcdir/$subdir/gdb.tcl
+ switch_gdb_spawn_id $spawn_id
+
+ Term::_setup 4 20
+
+ save_vars timeout {
+ set timeout 1
+
+ set line { 0 0 20 1 }
+
+ # Parse "foo".
+ gdb_assert { [Term::wait_for_region_contents \
+ {*}$line \
+ [string_to_regexp "foo"]] } \
+ "foo"
+
+ # Parse "\033(%5".
+ gdb_assert { ![Term::accept_gdb_output 0] } \
+ "fail to parse escape sequence"
+ gdb_assert { [Term::wait_for_region_contents \
+ {*}$line \
+ [string_to_regexp "^\[(%5"]] } \
+ "echoed escape sequence"
+ }
+ Term::dump_screen
+}
diff --git a/gdb/testsuite/gdb.tui/tuiterm.exp b/gdb/testsuite/gdb.tui/tuiterm.exp
index 6cd65f3..a91643e 100644
--- a/gdb/testsuite/gdb.tui/tuiterm.exp
+++ b/gdb/testsuite/gdb.tui/tuiterm.exp
@@ -653,13 +653,21 @@ proc test_cursor_backward_tabulation { } {
}
proc test_repeat { } {
- Term::_move_cursor 2 1
- set Term::_last_char X
+ Term::_move_cursor 0 1
+
+ Term::_insert "xxX"
+ gdb_assert { $Term::_last_char == "X" }
+ check "insert" {
+ "abcdefgh"
+ "xxXlmnop"
+ "qrstuvwx"
+ "yz01234 "
+ } 3 1
- Term::_csi_b 3
+ Term::_csi_b 2
check "repeat" {
"abcdefgh"
- "ijXXXnop"
+ "xxXXXnop"
"qrstuvwx"
"yz01234 "
} 5 1
@@ -799,7 +807,7 @@ proc test_attrs {} {
proc run_one_test_small { test_proc_name } {
save_vars { env(TERM) stty_init } {
setup_small
- eval $test_proc_name
+ $test_proc_name
}
}
@@ -808,7 +816,7 @@ proc run_one_test_small { test_proc_name } {
proc run_one_test_large { test_proc_name } {
save_vars { env(TERM) stty_init } {
setup_large
- eval $test_proc_name
+ $test_proc_name
}
}
diff --git a/gdb/testsuite/gdb.tui/wrap-line.exp b/gdb/testsuite/gdb.tui/wrap-line.exp
index aa2b1c6..a1ba706 100644
--- a/gdb/testsuite/gdb.tui/wrap-line.exp
+++ b/gdb/testsuite/gdb.tui/wrap-line.exp
@@ -37,11 +37,11 @@ proc fill_line { width } {
# Take into account that the prompt also takes space.
set prefix [string length "(gdb) "]
- set start [expr $prefix + 1]
+ set start [expr {$prefix + 1}]
# Print chars.
for { set i $start } { $i <= $width } { incr i } {
- set c [expr $i % 10]
+ set c [expr {$i % 10}]
send_gdb $c
append res $c
}
@@ -59,7 +59,7 @@ proc test_wrap { wrap_width tui } {
set str [fill_line $wrap_width]
# Remaining space on line.
- set space [string repeat " " [expr $::cols - $wrap_width]]
+ set space [string repeat " " [expr {$::cols - $wrap_width}]]
# Now print the first char we expect to wrap.
send_gdb "W"
diff --git a/gdb/testsuite/lib/ada.exp b/gdb/testsuite/lib/ada.exp
index 37bed85..50067eb 100644
--- a/gdb/testsuite/lib/ada.exp
+++ b/gdb/testsuite/lib/ada.exp
@@ -220,7 +220,8 @@ proc gnat_runtime_has_debug_info_1 { shared } {
return 0
}
- clean_restart $dst
+ clean_restart
+ gdb_load $dst
if { ! [runto "GNAT_Debug_Info_Test"] } {
return 0
diff --git a/gdb/testsuite/lib/cache.exp b/gdb/testsuite/lib/cache.exp
index 6ca3f18..4ebb825 100644
--- a/gdb/testsuite/lib/cache.exp
+++ b/gdb/testsuite/lib/cache.exp
@@ -24,26 +24,9 @@ proc ignore_pass { msg } {
# Call proc real_name and return the result, while ignoring calls to pass.
proc gdb_do_cache_wrap {real_name args} {
- if { [info procs save_pass] != "" } {
- return [uplevel 2 $real_name]
+ with_override pass ignore_pass {
+ return [uplevel 2 [list $real_name {*}$args]]
}
-
- rename pass save_pass
- rename ignore_pass pass
-
- set code [catch {uplevel 2 [list $real_name {*}$args]} result]
-
- rename pass ignore_pass
- rename save_pass pass
-
- if {$code == 1} {
- global errorInfo errorCode
- return -code error -errorinfo $errorInfo -errorcode $errorCode $result
- } elseif {$code > 1} {
- return -code $code $result
- }
-
- return $result
}
# Global written to by gdb_exit_called proc. Is set to true to
diff --git a/gdb/testsuite/lib/check-test-names.exp b/gdb/testsuite/lib/check-test-names.exp
index 049addd..d099ffc 100644
--- a/gdb/testsuite/lib/check-test-names.exp
+++ b/gdb/testsuite/lib/check-test-names.exp
@@ -146,7 +146,7 @@ namespace eval ::CheckTestNames {
# If ARGS is the empty list then we don't want to pass a single
# empty string as a parameter here.
- eval "CheckTestNames::log_summary $args"
+ CheckTestNames::log_summary {*}$args
if { [llength $args] == 0 } {
set which "count"
@@ -184,10 +184,10 @@ foreach nm {pass fail xfail kfail xpass kpass unresolved untested \
# Create new global log_summary to replace Dejagnu's.
proc log_summary { args } {
- eval "CheckTestNames::do_log_summary $args"
+ CheckTestNames::do_log_summary {*}$args
}
# Create new global reset_vars to replace Dejagnu's.
proc reset_vars {} {
- eval "CheckTestNames::do_reset_vars"
+ CheckTestNames::do_reset_vars
}
diff --git a/gdb/testsuite/lib/compile-support.exp b/gdb/testsuite/lib/compile-support.exp
index dd0b9a9..8472d8d 100644
--- a/gdb/testsuite/lib/compile-support.exp
+++ b/gdb/testsuite/lib/compile-support.exp
@@ -265,7 +265,7 @@ namespace eval ::CompileExpression {
if {[string match $cmd "print"]} {
if {!$is_explicit} {
- eval setup_failures_ $fail_print
+ setup_failures_ {*}$fail_print
return [compile_command_ "compile print $exp" $result $tst]
}
} else {
@@ -274,11 +274,11 @@ namespace eval ::CompileExpression {
} else {
set command "compile code $varName_ = $exp"
}
- eval setup_failures_ $fail_compile
+ setup_failures_ {*}$fail_compile
if {![compile_command_ $command "" $tst]} {
return 0
}
- eval setup_failures_ $fail_value
+ setup_failures_ {*}$fail_value
gdb_test "p $varName_" "= $result" "result of $tst"
}
return 1
@@ -292,11 +292,11 @@ namespace eval ::CompileExpression {
proc setup_failures_ {how args} {
switch -nocase $how {
xfail {
- eval setup_xfail $args
+ setup_xfail {*}$args
}
kfail {
- eval setup_kfail $args
+ setup_kfail {*}$args
}
default {
diff --git a/gdb/testsuite/lib/dap-support.exp b/gdb/testsuite/lib/dap-support.exp
index d61b1c4..2d962e6 100644
--- a/gdb/testsuite/lib/dap-support.exp
+++ b/gdb/testsuite/lib/dap-support.exp
@@ -117,6 +117,7 @@ proc dap_to_ton {obj} {
# Format the object OBJ, in TON format, as JSON and send it to gdb.
proc _dap_send_ton {obj} {
+ # tclint-disable-next-line command-args
set json [namespace eval ton::2json $obj]
# FIXME this is wrong for non-ASCII characters.
set len [string length $json]
@@ -170,7 +171,7 @@ proc _dap_read_json {} {
}
if {$seen_timeout} {
- error "timeout reading json header"
+ error "timeout reading json header"
}
if {$seen_eof} {
error "eof reading json header"
@@ -200,7 +201,7 @@ proc _dap_read_json {} {
}
if {$seen_timeout} {
- error "timeout reading json header"
+ error "timeout reading json header"
}
if {$seen_eof} {
error "eof reading json header"
@@ -211,6 +212,7 @@ proc _dap_read_json {} {
global last_ton
set last_ton [ton::json2ton $json]
+ # tclint-disable-next-line command-args
return [namespace eval ton::2dict $last_ton]
}
@@ -443,7 +445,7 @@ proc dap_search_output {name rx events} {
# key/value pairs given in ARGS. NAME is used as the test name.
proc dap_match_values {name d args} {
foreach {key value} $args {
- if {[eval dict get [list $d] $key] != $value} {
+ if {[dict get $d {*}$key] != $value} {
fail "$name (checking $key)"
return ""
}
@@ -494,7 +496,7 @@ proc dap_wait_for_event_and_check {name type args} {
set result [_dap_wait_for_event $type]
set event [lindex $result 0]
- eval dap_match_values [list $name $event] $args
+ dap_match_values $name $event {*}$args
return $result
}
diff --git a/gdb/testsuite/lib/debuginfod-support.exp b/gdb/testsuite/lib/debuginfod-support.exp
index 674888a..7a8baf4 100644
--- a/gdb/testsuite/lib/debuginfod-support.exp
+++ b/gdb/testsuite/lib/debuginfod-support.exp
@@ -37,7 +37,7 @@ proc allow_debuginfod_tests {} {
# (installed by ASan) exist on startup. That makes TCL's exec throw an
# error. This is dealt with by the --quiet in INTERNAL_GDBFLAGS.
if { [string first "with-debuginfod" \
- [eval exec $::GDB $::INTERNAL_GDBFLAGS \
+ [exec $::GDB {*}$::INTERNAL_GDBFLAGS \
--configuration]] == -1 } {
return false
}
diff --git a/gdb/testsuite/lib/dwarf.exp b/gdb/testsuite/lib/dwarf.exp
index 3a182c2..911ec88 100644
--- a/gdb/testsuite/lib/dwarf.exp
+++ b/gdb/testsuite/lib/dwarf.exp
@@ -461,16 +461,13 @@ proc get_func_info { name {options {debug}} } {
#
# proc DW_TAG_mumble {{attrs {}} {children {}}} { ... }
#
-# ATTRS is an optional list of attributes.
-# It is run through 'subst' in the caller's context before processing.
+# ATTRS holds optional attributes. It is just Tcl code and is
+# evaluated in the caller's context. Each attribute is a proc of the
+# form:
#
-# Each attribute in the list has one of two forms:
-# 1. { NAME VALUE }
-# 2. { NAME VALUE FORM }
+# proc DW_AT_mumble {value {form {}}} { ... }
#
-# In each case, NAME is the attribute's name.
-# This can either be the full name, like 'DW_AT_name', or a shortened
-# name, like 'name'. These are fully equivalent.
+# Only the full name can be used here.
#
# Besides DWARF standard attributes, assembler supports 'macro' attribute
# which will be substituted by one or more standard or macro attributes.
@@ -522,8 +519,6 @@ namespace eval Dwarf {
# Constants from dwarf2.h.
variable _constants
- # DW_AT short names.
- variable _AT
# DW_FORM short names.
variable _FORM
# DW_OP short names.
@@ -594,7 +589,6 @@ namespace eval Dwarf {
proc _process_one_constant {name value} {
variable _constants
- variable _AT
variable _FORM
variable _OP
@@ -633,7 +627,8 @@ namespace eval Dwarf {
}
AT {
- set _AT($name2) $name
+ proc $name {value {form {}}} \
+ "_handle_DW_AT $name \$value \$form"
}
FORM {
@@ -917,11 +912,27 @@ namespace eval Dwarf {
return $name
}
- proc _handle_attribute { attr_name attr_value attr_form } {
+ # Implementation of all the DW_AT_* procs.
+ proc _handle_DW_AT {attr_name attr_value attr_form} {
variable _abbrev_section
variable _constants
variable _cu_version
+ if {$attr_form == ""} {
+ set attr_form [_guess_form $attr_value attr_value]
+ if { $attr_form eq "" } {
+ set attr_form [_default_form $attr_name]
+ }
+ if { $attr_form eq "" } {
+ error "No form for $attr_name $attr_value"
+ }
+ } elseif { [string index $attr_value 0] == ":" } {
+ # It is a label, get its value.
+ _guess_form $attr_value attr_value
+ }
+
+ set attr_form [_map_name $attr_form _FORM]
+
_handle_DW_FORM $attr_form $attr_value
_defer_output $_abbrev_section {
@@ -942,9 +953,8 @@ namespace eval Dwarf {
}
}
- # Handle macro attribute MACRO_AT_range.
-
- proc _handle_macro_at_range { attr_value } {
+ # Handle extension attribute MACRO_AT_range.
+ proc MACRO_AT_range { attr_value } {
variable _cu_is_fission
if {[llength $attr_value] != 1} {
@@ -961,19 +971,17 @@ namespace eval Dwarf {
set form DW_FORM_GNU_addr_index
}
- _handle_attribute DW_AT_low_pc [lindex $result 0] $form
- _handle_attribute DW_AT_high_pc \
- "[lindex $result 0] + [lindex $result 1]" $form
+ DW_AT_low_pc [lindex $result 0] $form
+ DW_AT_high_pc "[lindex $result 0] + [lindex $result 1]" $form
}
- # Handle macro attribute MACRO_AT_func.
-
- proc _handle_macro_at_func { attr_value } {
+ # Handle extension attribute MACRO_AT_func.
+ proc MACRO_AT_func { attr_value } {
if {[llength $attr_value] != 1} {
error "usage: MACRO_AT_func { func file }"
}
- _handle_attribute DW_AT_name [lindex $attr_value 0] DW_FORM_string
- _handle_macro_at_range $attr_value
+ DW_AT_name [lindex $attr_value 0] DW_FORM_string
+ MACRO_AT_range $attr_value
}
# Return the next available abbrev number in the current CU's abbrev
@@ -1003,47 +1011,7 @@ namespace eval Dwarf {
_op .uleb128 $my_abbrev "Abbrev ($tag_name)"
- foreach attr $attrs {
- set attr_name [_map_name [lindex $attr 0] _AT]
-
- # When the length of ATTR is greater than 2, the last
- # element of the list must be a form. The second through
- # the penultimate elements are joined together and
- # evaluated using subst. This allows constructs such as
- # [gdb_target_symbol foo] to be used.
-
- if {[llength $attr] > 2} {
- set attr_value [uplevel 2 [list subst [join [lrange $attr 1 end-1]]]]
- } else {
- set attr_value [uplevel 2 [list subst [lindex $attr 1]]]
- }
-
- if { [string equal "MACRO_AT_func" $attr_name] } {
- _handle_macro_at_func $attr_value
- } elseif { [string equal "MACRO_AT_range" $attr_name] } {
- _handle_macro_at_range $attr_value
- } else {
- if {[llength $attr] > 2} {
- set attr_form [uplevel 2 [list subst [lindex $attr end]]]
-
- if { [string index $attr_value 0] == ":" } {
- # It is a label, get its value.
- _guess_form $attr_value attr_value
- }
- } else {
- set attr_form [_guess_form $attr_value attr_value]
- if { $attr_form eq "" } {
- set attr_form [_default_form $attr_name]
- }
- if { $attr_form eq "" } {
- error "No form for $attr_name $attr_value"
- }
- }
- set attr_form [_map_name $attr_form _FORM]
-
- _handle_attribute $attr_name $attr_value $attr_form
- }
- }
+ uplevel 2 $attrs
_defer_output $_abbrev_section {
# Terminator.
@@ -1094,7 +1062,7 @@ namespace eval Dwarf {
if {![info exists _deferred_output($_defer)]} {
set _deferred_output($_defer) ""
- eval _section $section_spec
+ _section {*}$section_spec
}
uplevel $body
diff --git a/gdb/testsuite/lib/future.exp b/gdb/testsuite/lib/future.exp
index 161c31c..6643187 100644
--- a/gdb/testsuite/lib/future.exp
+++ b/gdb/testsuite/lib/future.exp
@@ -749,19 +749,6 @@ if { [array size use_gdb_compile] != 0 } {
rename gdb_default_target_compile ""
}
-
-# Provide 'lreverse' missing in Tcl before 7.5.
-
-if {[info procs lreverse] == ""} {
- proc lreverse { arg } {
- set retval {}
- while { [llength $retval] < [llength $arg] } {
- lappend retval [lindex $arg end-[llength $retval]]
- }
- return $retval
- }
-}
-
# Various ccache versions provide incorrect debug info such as ignoring
# different current directory, breaking GDB testsuite.
set env(CCACHE_DISABLE) 1
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 98691df..f05e1c8 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -15,6 +15,8 @@
# This file was written by Fred Fish. (fnf@cygnus.com)
+package require Tcl 8.6.2
+
# Generic gdb subroutines that should work for any target. If these
# need to be modified for any target, it can be done with a variable
# or by passing arguments.
@@ -274,7 +276,7 @@ if ![info exists INTERNAL_GDBFLAGS] {
append INTERNAL_GDBFLAGS { -iex "set interactive-mode on"}
if { [ishost "*-*-mingw*"] } {
- append INTERNAL_GDBFLAGS { -iex "maint set console-translation-mode binary"}
+ append INTERNAL_GDBFLAGS { --binary-output}
}
}
@@ -356,7 +358,7 @@ proc default_gdb_version {} {
global inotify_pid
if {[info exists inotify_pid]} {
- eval exec kill $inotify_pid
+ exec kill $inotify_pid
}
set output [remote_exec host "$GDB $INTERNAL_GDBFLAGS --version"]
@@ -1678,76 +1680,9 @@ proc python_version_at_least { major minor } {
# Return 1 if tcl version used is at least MAJOR.MINOR.PATCHLEVEL.
proc tcl_version_at_least { major minor {patchlevel 0} } {
- global tcl_patchLevel
- regexp {^([0-9]+)\.([0-9]+)\.([0-9]+)$} \
- $tcl_patchLevel dummy \
- tcl_version_major tcl_version_minor tcl_version_patchlevel
- return \
- [version_compare \
- [list \
- $major \
- $minor \
- $patchlevel] \
- <= \
- [list \
- $tcl_version_major \
- $tcl_version_minor \
- $tcl_version_patchlevel]]
-}
-
-if { [tcl_version_at_least 8 5] == 0 } {
- # lrepeat was added in tcl 8.5. Only add if missing.
- proc lrepeat { n element } {
- if { [string is integer -strict $n] == 0 } {
- error "expected integer but got \"$n\""
- }
- if { $n < 0 } {
- error "bad count \"$n\": must be integer >= 0"
- }
- set res [list]
- for {set i 0} {$i < $n} {incr i} {
- lappend res $element
- }
- return $res
- }
-}
-
-if { [tcl_version_at_least 8 6] == 0 } {
- # lmap was added in tcl 8.6. Only add if missing.
-
- # Note that we only implement the simple variant for now.
- proc lmap { varname list body } {
- set res {}
- foreach val $list {
- uplevel 1 "set $varname $val"
- lappend res [uplevel 1 $body]
- }
-
- return $res
- }
-
- # ::tcl_platform(pathSeparator) was added in 8.6.
- switch $::tcl_platform(platform) {
- windows {
- set ::tcl_platform(pathSeparator) ;
- }
- default {
- set ::tcl_platform(pathSeparator) :
- }
- }
-}
-
-if { [tcl_version_at_least 8 6 2] == 0 } {
- # string cat was added in tcl 8.6.2. Only add if missing.
-
- rename string tcl_proc_string
-
- proc string { what args } {
- if { $what == "cat" } {
- return [join $args ""]
- }
- return [tcl_proc_string $what {*}$args]
- }
+ set current_version [package require Tcl]
+ set min_version "$major.$minor.$patchlevel"
+ return [expr {[package vcompare $current_version $min_version] >= 0}]
}
# gdb_test_no_output [-prompt PROMPT_REGEXP] [-nopass] COMMAND [MESSAGE]
@@ -2252,6 +2187,209 @@ proc gdb_assert { condition {message ""} } {
return $res
}
+# Comparison command for "lsort -command". Sorts two strings by
+# descending file name length.
+
+proc compare_length_desc {a b} {
+ expr {[string length $b] - [string length $a]}
+}
+
+# Fill in and return the global cache for Windows <=> Unix mount point
+# mappings, for Windows.
+#
+# Calling external processes on MSYS2/Cygwin is expensive so instead
+# of calling "cygpath -ua $FILENAME" or "cygpath -ma $FILENAME" for
+# every file name, we extract the Windows and Unix file names of each
+# mount point using the 'mount' command output, and cache the
+# mappings, for both directions.
+
+gdb_caching_proc get_mount_point_map {} {
+ array set win_to_unix {}
+ array set unix_to_win {}
+
+ # The 'mount' command provides all mappings. The general format
+ # is: 'WindowsFileName on UnixFileName type ...'
+ #
+ # For example:
+ # 'C:/msys64 on / type ntfs (binary,auto)'
+ # 'C: on /c type ntfs (binary,posix=0,user,noumount,auto)'
+ set mount_output [exec mount]
+
+ foreach line [split $mount_output \n] {
+ if {[regexp {^(.+) on (.+) type } $line -> win_filename unix_filename]} {
+ set win_to_unix($win_filename) $unix_filename
+ set unix_to_win($unix_filename) $win_filename
+ }
+ }
+
+ # Sort each mapping's keys by descending file name length,
+ # otherwise we wouldn't be able to look for '/foo' in '/' (for
+ # example).
+
+ set sorted_win {}
+ foreach k [lsort -command compare_length_desc [array names win_to_unix]] {
+ lappend sorted_win $k $win_to_unix($k)
+ }
+
+ set sorted_unix {}
+ foreach k [lsort -command compare_length_desc [array names unix_to_win]] {
+ lappend sorted_unix $k $unix_to_win($k)
+ }
+
+ # Return both sorted lists: {win => unix} {unix => win}
+ return [list $sorted_win $sorted_unix]
+}
+
+# Normalize backward slashes to forward slashes.
+
+proc normalize_slashes {filename} {
+ return [string map {\\ /} $filename]
+}
+
+# Sanitize a host file name, without making it absolute or resolving
+# symlinks. On native Windows, this normalizes slashes to forward
+# slashes, and makes sure that if the file name starts with a drive
+# letter, it is upper case. On other systems, it just returns the
+# file name unmodified.
+
+proc host_file_sanitize {filename} {
+ if {[ishost *-*-mingw*]} {
+ set filename [normalize_slashes $filename]
+
+ # If the file name starts with a drive letter, uppercase it.
+ if {[regexp {^([a-zA-Z]):(/.*)?} $filename -> drive rest]} {
+ set filename "[string toupper $drive]:$rest"
+ }
+ }
+
+ return $filename
+}
+
+# Normalize a file name for the build machine. If running native
+# Windows GDB, this converts a Windows file name to the corresponding
+# Unix filename, per the mount table. For example, this replaces
+# 'c:/foo' with '/c/foo' (on MSYS2) or '/cygdrive/c/foo' (on Cygwin).
+# On other systems, it just wraps "file normalize".
+
+proc build_file_normalize {filename} {
+ if {[ishost *-*-mingw*]} {
+ set filename [host_file_sanitize $filename]
+
+ # Handle Windows => Unix mount point conversion. We assume
+ # there are no symlinks to resolve, which is a reasonable
+ # assumption for native Windows testing.
+
+ # Get Windows => Unix map.
+ lassign [get_mount_point_map] win_to_unix _
+
+ foreach {win_filename unix_filename} $win_to_unix {
+ if {[string equal -length [string length $win_filename] \
+ $win_filename $filename]} {
+ set rest [string range $filename \
+ [string length $win_filename] end]
+ return "${unix_filename}$rest"
+ }
+ }
+ }
+
+ return [file normalize $filename]
+}
+
+# Normalize a file name for the host machine and native Windows GDB.
+# This converts a Unix file name to a Windows filename,
+# per the mount table. E.g., '/c/foo' (on MSYS2) or '/cygdrive/c/foo'
+# (on Cygwin) is converted to 'c:/foo'.
+
+proc host_file_normalize_mingw {filename unix_to_win} {
+ set filename [host_file_sanitize $filename]
+
+ # If the file name already starts with a drive letter (e.g.,
+ # C:/foo), we're done. Don't let it fallthrough to "file
+ # normalize", which would misinterpret it as a relative file
+ # name.
+ if {[regexp {^[A-Z]:/} $filename]} {
+ return $filename
+ }
+
+ # Collapse all repeated forward slashes.
+ set filename [regsub -all {//+} $filename {/}]
+
+ # Strip trailing slash, except for root.
+ if {$filename ne "/" && [string match */ $filename]} {
+ set filename [string range $filename 0 end-1]
+ }
+
+ foreach {unix_filename win_filename} $unix_to_win {
+ set mount_len [string length $unix_filename]
+ if {[string equal -length $mount_len $unix_filename $filename]} {
+ if {$unix_filename eq "/"} {
+ if {$filename eq "/"} {
+ return "$win_filename"
+ } else {
+ return "$win_filename$filename"
+ }
+ } elseif {[string length $filename] == $mount_len} {
+ # Like "cygpath -ma" if the file name resolves to a
+ # drive letter, append a slash, to make it unambiguous
+ # that we resolved to the root of the drive and not
+ # the drive's current directory.
+ if {[string match {[A-Za-z]:} $win_filename]} {
+ return "$win_filename/"
+ } else {
+ return "$win_filename"
+ }
+ } elseif {[string index $filename $mount_len] eq "/"} {
+ set rest [string range $filename $mount_len end]
+ return "$win_filename$rest"
+ }
+ }
+ }
+
+ return [file normalize $filename]
+}
+
+# Normalize a file name for the host machine. If running native
+# Windows GDB, this converts a Unix file name to a Windows filename,
+# per the mount table. E.g., '/c/foo' (on MSYS2) or '/cygdrive/c/foo'
+# (on Cygwin) is converted to 'c:/foo'.
+
+proc host_file_normalize {filename} {
+ if {[ishost *-*-mingw*]} {
+ # Get Unix => Windows map.
+ lassign [get_mount_point_map] _ unix_to_win
+ return [host_file_normalize_mingw $filename $unix_to_win]
+ }
+
+ return [file normalize $filename]
+}
+
+# Wrapper around "file join" that handles host-specific details.
+#
+# For Cygwin/MSYS2's Tcl, file names that start with a drive letter
+# are not considered absolute file names, thus 'file join "c:/" "d:/"'
+# returns "c:/d:". This procedure thus detects absolute Windows-style
+# file names, and treats them as absolute, bypassing "file join".
+
+proc host_file_join {args} {
+ if {[isbuild *-*-mingw*]} {
+ set result ""
+ foreach filename $args {
+ set filename [host_file_sanitize $filename]
+
+ # If the file name starts with drive letter and colon
+ # (e.g., "C:/"), treat it as absolute.
+ if {[regexp {^[A-Z]:/} $filename]} {
+ set result $filename
+ } else {
+ set result [file join $result $filename]
+ }
+ }
+ return $result
+ } else {
+ return [file join {*}$args]
+ }
+}
+
proc gdb_reinitialize_dir { subdir } {
global gdb_prompt
@@ -2266,7 +2404,8 @@ proc gdb_reinitialize_dir { subdir } {
}
gdb_expect 60 {
-re "Source directories searched.*$gdb_prompt $" {
- send_gdb "dir $subdir\n"
+ set dir [host_file_normalize $subdir]
+ send_gdb "dir $dir\n"
gdb_expect 60 {
-re "Source directories searched.*$gdb_prompt $" {
verbose "Dir set to $subdir"
@@ -2852,11 +2991,6 @@ gdb_caching_proc allow_dap_tests {} {
return 0
}
- # ton.tcl uses "string is entier", supported starting tcl 8.6.
- if { ![tcl_version_at_least 8 6] } {
- return 0
- }
-
# With set auto-connect-native-target off, we run into:
# +++ run
# Traceback (most recent call last):
@@ -4294,6 +4428,76 @@ gdb_caching_proc allow_tsx_tests {} {
return $allow_tsx_tests
}
+# Run a test on the target to check if it supports x86 shadow stack. Return 1
+# if shadow stack is enabled, 0 otherwise.
+
+gdb_caching_proc allow_ssp_tests {} {
+ global srcdir subdir gdb_prompt hex
+
+ set me "allow_ssp_tests"
+
+ if { ![istarget i?86-*-*] && ![istarget x86_64-*-* ] } {
+ verbose "$me: target known to not support shadow stack."
+ return 0
+ }
+
+ # There is no need to check the actual HW in addition to ptrace support.
+ # We need both checks and ptrace will tell us about the HW state.
+ set compile_flags "{additional_flags=-fcf-protection=return}"
+ set src { int main() { return 0; } }
+ if {![gdb_simple_compile $me $src executable $compile_flags]} {
+ return 0
+ }
+
+ save_vars { ::env(GLIBC_TUNABLES) } {
+
+ append_environment GLIBC_TUNABLES "glibc.cpu.hwcaps" "SHSTK"
+
+ # No error message, compilation succeeded so now run it via gdb.
+ gdb_exit
+ gdb_start
+ gdb_reinitialize_dir $srcdir/$subdir
+ gdb_load $obj
+ if {![runto_main]} {
+ remote_file build delete $obj
+ return 0
+ }
+ set shadow_stack_disabled_re "(<unavailable>)"
+ if {[istarget *-*-linux*]} {
+ # Starting with v6.6, the Linux kernel supports CET shadow stack.
+ # Dependent on the target we can see a nullptr or "<unavailable>"
+ # when shadow stack is supported by HW and the Linux kernel but
+ # not enabled for the current thread (for example due to a lack
+ # of compiler or glibc support for -fcf-protection).
+ set shadow_stack_disabled_re "$shadow_stack_disabled_re|(.*0x0)"
+ }
+
+ set allow_ssp_tests 0
+ gdb_test_multiple "print \$pl3_ssp" "test shadow stack support" {
+ -re -wrap "(.*$hex)((?!(.*0x0)).)" {
+ verbose -log "$me: Shadow stack support detected."
+ set allow_ssp_tests 1
+ }
+ -re -wrap $shadow_stack_disabled_re {
+ # In case shadow stack is not enabled (for example due to a
+ # lack of compiler or glibc support for -fcf-protection).
+ verbose -log "$me: Shadow stack is not enabled."
+ }
+ -re -wrap "void" {
+ # In case we don't have hardware or kernel support.
+ verbose -log "$me: No shadow stack support."
+ }
+ }
+
+ gdb_exit
+ }
+
+ remote_file build delete $obj
+
+ verbose "$me: returning $allow_ssp_tests" 2
+ return $allow_ssp_tests
+}
+
# Run a test on the target to see if it supports avx512bf16. Return 1 if so,
# 0 if it does not. Based on 'check_vmx_hw_available' from the GCC testsuite.
@@ -4436,7 +4640,8 @@ gdb_caching_proc allow_lam_tests {} {
# No error message, compilation succeeded so now run it via gdb.
set allow_lam_tests 0
- clean_restart $obj
+ clean_restart
+ gdb_load $obj
gdb_run_cmd
gdb_expect {
-re ".*$inferior_exited_re with code.*${gdb_prompt} $" {
@@ -4719,7 +4924,8 @@ gdb_caching_proc allow_aarch64_sve_tests {} {
}
# Compilation succeeded so now run it via gdb.
- clean_restart $obj
+ clean_restart
+ gdb_load $obj
gdb_run_cmd
gdb_expect {
-re ".*Illegal instruction.*${gdb_prompt} $" {
@@ -4779,7 +4985,8 @@ gdb_caching_proc aarch64_initialize_sve_information { } {
return [array get supported_vl]
}
- clean_restart $test_exec
+ clean_restart
+ gdb_load $test_exec
if {![runto_main]} {
return [array get supported_vl]
@@ -4876,7 +5083,8 @@ gdb_caching_proc allow_aarch64_sme_tests {} {
}
# Compilation succeeded so now run it via gdb.
- clean_restart $obj
+ clean_restart
+ gdb_load $obj
gdb_run_cmd
gdb_expect {
-re ".*Illegal instruction.*${gdb_prompt} $" {
@@ -4936,7 +5144,8 @@ gdb_caching_proc aarch64_initialize_sme_information { } {
return [array get supported_svl]
}
- clean_restart $test_exec
+ clean_restart
+ gdb_load $test_exec
if {![runto_main]} {
return [array get supported_svl]
@@ -5030,7 +5239,8 @@ gdb_caching_proc allow_aarch64_mops_tests {} {
}
# Compilation succeeded so now run it via gdb.
- clean_restart $obj
+ clean_restart
+ gdb_load $obj
gdb_run_cmd
gdb_expect {
-re ".*$inferior_exited_re with code 01.*${gdb_prompt} $" {
@@ -5053,6 +5263,61 @@ gdb_caching_proc allow_aarch64_mops_tests {} {
return $allow_mops_tests
}
+# Run a test on the target to see if it supports AArch64 GCS extensions.
+# Return 1 if so, 0 if it does not. Note this causes a restart of GDB.
+
+gdb_caching_proc allow_aarch64_gcs_tests {} {
+ global srcdir subdir gdb_prompt inferior_exited_re
+
+ set me "allow_aarch64_gcs_tests"
+
+ if { ![is_aarch64_target]} {
+ return 0
+ }
+
+ # Compile a program that tests the GCS feature.
+ set src {
+ #include <stdbool.h>
+ #include <sys/auxv.h>
+
+ /* Feature check for Guarded Control Stack. */
+ #ifndef HWCAP_GCS
+ #define HWCAP_GCS (1ULL << 32)
+ #endif
+
+ int main (void) {
+ bool gcs_supported = getauxval (AT_HWCAP) & HWCAP_GCS;
+
+ /* Return success if GCS is supported. */
+ return !gcs_supported;
+ }
+ }
+
+ if {![gdb_simple_compile $me $src executable]} {
+ return 0
+ }
+
+ # Compilation succeeded so now run it via gdb.
+ set allow_gcs_tests 0
+ clean_restart
+ gdb_load $obj
+ gdb_run_cmd
+ gdb_expect {
+ -re ".*$inferior_exited_re normally.*${gdb_prompt} $" {
+ verbose -log "\n$me: gcs support detected"
+ set allow_gcs_tests 1
+ }
+ -re ".*$inferior_exited_re with code 01.*${gdb_prompt} $" {
+ verbose -log "\n$me: gcs support not detected"
+ }
+ }
+ gdb_exit
+ remote_file build delete $obj
+
+ verbose "$me: returning $allow_gcs_tests" 2
+ return $allow_gcs_tests
+}
+
# A helper that compiles a test case to see if __int128 is supported.
proc gdb_int128_helper {lang} {
return [gdb_can_simple_compile "i128-for-$lang" {
@@ -5086,7 +5351,7 @@ gdb_caching_proc allow_ifunc_tests {} {
}
# Return whether we should skip tests for showing inlined functions in
-# backtraces. Requires get_compiler_info and get_debug_format.
+# backtraces. Requires get_debug_format.
proc skip_inline_frame_tests {} {
# GDB only recognizes inlining information in DWARF.
@@ -5105,7 +5370,7 @@ proc skip_inline_frame_tests {} {
}
# Return whether we should skip tests for showing variables from
-# inlined functions. Requires get_compiler_info and get_debug_format.
+# inlined functions. Requires get_debug_format.
proc skip_inline_var_tests {} {
# GDB only recognizes inlining information in DWARF.
@@ -5377,14 +5642,6 @@ gdb_caching_proc target_is_gdbserver {} {
return $is_gdbserver
}
-# N.B. compiler_info is intended to be local to this file.
-# Call test_compiler_info with no arguments to fetch its value.
-# Yes, this is counterintuitive when there's get_compiler_info,
-# but that's the current API.
-if [info exists compiler_info] {
- unset compiler_info
-}
-
# Figure out what compiler I am using.
# The result is cached so only the first invocation runs the compiler.
#
@@ -5436,8 +5693,18 @@ if [info exists compiler_info] {
# I didn't get desperate enough to try this.
#
# -- chastain 2004-01-06
+#
+# Returns "unsupported" if LANGUAGE is not supported, and "unknown" if
+# LANGUAGE is supported but extracting the information out of the
+# compiler for LANGUAGE failed. Otherwise returns the compiler we're
+# using for LANGUAGE.
proc get_compiler_info {{language "c"}} {
+ # Split to a helper procedure because gdb_caching_proc does not
+ # support optional arguments.
+ return [get_compiler_info_1 $language]
+}
+gdb_caching_proc get_compiler_info_1 {language} {
# For compiler.c, compiler.cc and compiler.F90.
global srcdir
@@ -5446,13 +5713,8 @@ proc get_compiler_info {{language "c"}} {
global outdir
global tool
- # These come from compiler.c, compiler.cc or compiler.F90.
- gdb_persistent_global compiler_info_cache
-
- if [info exists compiler_info_cache($language)] {
- # Already computed.
- return 0
- }
+ # 'compiler_info' comes from evaluating the result of
+ # preprocessing compiler.c, compiler.cc or compiler.F90.
# Choose which file to preprocess.
if { $language == "c++" } {
@@ -5463,7 +5725,7 @@ proc get_compiler_info {{language "c"}} {
set ifile "${srcdir}/lib/compiler.c"
} else {
perror "Unable to fetch compiler version for language: $language"
- return -1
+ return "unsupported"
}
# Run $ifile through the right preprocessor.
@@ -5487,7 +5749,7 @@ proc get_compiler_info {{language "c"}} {
set ifile $tofile
set cppout [ gdb_compile "${ifile}" "" preprocess [list "$language" quiet getting_compiler_info] ]
}
- eval log_file $saved_log
+ log_file {*}$saved_log
# Eval the output.
set unknown 0
@@ -5525,22 +5787,21 @@ proc get_compiler_info {{language "c"}} {
set compiler_info "unknown"
}
- set compiler_info_cache($language) $compiler_info
-
# Log what happened.
verbose -log "get_compiler_info: $compiler_info"
- return 0
+ return $compiler_info
}
-# Return the compiler_info string if no arg is provided.
-# Otherwise the argument is a glob-style expression to match against
-# compiler_info.
+# Return the compiler_info string if COMPILER is not provided.
+# Otherwise COMPILER is a glob-style expression to match against
+# compiler_info, and this returns true/false depending on whether the
+# expression matches or not.
proc test_compiler_info { {compiler ""} {language "c"} } {
- gdb_persistent_global compiler_info_cache
+ set compiler_info [get_compiler_info $language]
- if [get_compiler_info $language] {
+ if {$compiler_info == "unsupported"} {
# An error will already have been printed in this case. Just
# return a suitable result depending on how the user called
# this function.
@@ -5553,10 +5814,10 @@ proc test_compiler_info { {compiler ""} {language "c"} } {
# If no arg, return the compiler_info string.
if [string match "" $compiler] {
- return $compiler_info_cache($language)
+ return $compiler_info
}
- return [string match $compiler $compiler_info_cache($language)]
+ return [string match $compiler $compiler_info]
}
# Return true if the C compiler is GCC, otherwise, return false.
@@ -6311,6 +6572,9 @@ proc gdb_compile {source dest type options} {
}
}
+ # Automatically handle includes in testsuite/lib/.
+ auto_lappend_include_files options $source
+
cond_wrap [expr $pie != -1 || $nopie != -1] \
with_PIE_multilib_flags_filtered {
set result [target_compile $source $dest $type $options]
@@ -6846,7 +7110,20 @@ gdb_caching_proc can_spawn_for_attach {} {
set me "can_spawn_for_attach"
set src {
- #include <unistd.h>
+ #ifdef _WIN32
+ # include <windows.h>
+ #else
+ # include <unistd.h>
+ #endif
+
+ #ifdef _WIN32
+ unsigned
+ sleep (unsigned seconds)
+ {
+ Sleep (seconds * 1000);
+ return 0;
+ }
+ #endif
int
main (void)
@@ -7457,13 +7734,13 @@ proc clean_standard_output_dir {} {
}
# Directory containing the standard output files.
- set standard_output_dir [file normalize [standard_output_file ""]]
+ set standard_output_dir [build_standard_output_file ""]
# Ensure that standard_output_dir is clean, or only contains
# gdb.log / gdb.sum.
set log_file_info [split [log_file -info]]
set log_file [file normalize [lindex $log_file_info end]]
- if { $log_file == [file normalize [standard_output_file gdb.log]] } {
+ if { $log_file == [file normalize [build_standard_output_file gdb.log]] } {
# Dir already contains active gdb.log. Don't remove the dir, but
# check that it's clean otherwise.
set res [glob -directory $standard_output_dir -tails *]
@@ -7709,31 +7986,48 @@ proc default_gdb_init { test_file_name } {
proc make_gdb_parallel_path { args } {
global GDB_PARALLEL objdir
- set joiner [list "file" "join" $objdir]
+ set joiner [list $objdir]
if { [info exists GDB_PARALLEL] && $GDB_PARALLEL != "yes" } {
lappend joiner $GDB_PARALLEL
}
set joiner [concat $joiner $args]
- return [eval $joiner]
+ return [file join {*}$joiner]
}
# Turn BASENAME into a full file name in the standard output
-# directory. It is ok if BASENAME is the empty string; in this case
-# the directory is returned.
+# directory, as seen from the build machine. I.e., as seen from the
+# system driving DejaGnu. (E.g., if DejaGnu is being driven by MSYS2
+# to test native Windows GDB, the "build" file names should be file
+# names TCL understands, i.e., Unix file names.) It is OK if BASENAME
+# is the empty string; in this case the directory is returned.
-proc standard_output_file {basename} {
+proc build_standard_output_file {basename} {
global objdir subdir gdb_test_file_name
set dir [make_gdb_parallel_path outputs $subdir $gdb_test_file_name]
file mkdir $dir
- # If running on MinGW, replace /c/foo with c:/foo
- if { [ishost *-*-mingw*] } {
- set dir [exec sh -c "cd ${dir} && pwd -W"]
- }
return [file join $dir $basename]
}
-# Turn BASENAME into a file name on host.
+# Turn BASENAME into a full file name in the standard output
+# directory, as seen from a non-remote host. I.e., assuming the build
+# and the host share the filesystem. E.g., if DejaGnu is being driven
+# by MSYS2 to test native Windows GDB, the "host" file names should be
+# file names GDB understands, i.e., Windows file names. It is OK if
+# BASENAME is the empty string; in this case the directory is
+# returned.
+
+proc standard_output_file {basename} {
+ global objdir subdir gdb_test_file_name
+
+ set dir [make_gdb_parallel_path outputs $subdir $gdb_test_file_name]
+ file mkdir $dir
+ set dir [host_file_normalize $dir]
+ return [host_file_join $dir $basename]
+}
+
+# Like standard_output_file, but handles remote hosts. Turn BASENAME
+# into a file name on (potentially remote) host.
proc host_standard_output_file { basename } {
if { [is_remote host] } {
@@ -7968,7 +8262,7 @@ set temp [interp create]
if { [interp eval $temp "info procs ::unknown"] != "" } {
set old_args [interp eval $temp "info args ::unknown"]
set old_body [interp eval $temp "info body ::unknown"]
- eval proc gdb_tcl_unknown {$old_args} {$old_body}
+ proc gdb_tcl_unknown $old_args $old_body
}
interp delete $temp
unset temp
@@ -8003,11 +8297,11 @@ proc gdb_finish { } {
gdb_exit
if { [llength $cleanfiles_target] > 0 } {
- eval remote_file target delete $cleanfiles_target
+ remote_file target delete {*}$cleanfiles_target
set cleanfiles_target {}
}
if { [llength $cleanfiles_host] > 0 } {
- eval remote_file host delete $cleanfiles_host
+ remote_file host delete {*}$cleanfiles_host
set cleanfiles_host {}
}
@@ -8953,7 +9247,7 @@ proc build_executable { testname executable {sources ""} {options {debug}} } {
lappend arglist $source $options
}
- return [eval build_executable_from_specs $arglist]
+ return [build_executable_from_specs {*}$arglist]
}
# Starts fresh GDB binary and loads an optional executable into GDB.
@@ -8987,6 +9281,10 @@ proc clean_restart {{executable ""}} {
gdb_reinitialize_dir $srcdir/$subdir
if {$executable != ""} {
+ if { [file pathtype $executable] == "absolute" } {
+ error "absolute path used"
+ }
+
set binfile [standard_output_file ${executable}]
return [gdb_load ${binfile}]
}
@@ -9004,7 +9302,7 @@ proc clean_restart {{executable ""}} {
# Returns 0 on success, non-zero on failure.
proc prepare_for_testing_full {testname args} {
foreach spec $args {
- if {[eval build_executable_from_specs [list $testname] $spec] == -1} {
+ if {[build_executable_from_specs $testname {*}$spec] == -1} {
return -1
}
set executable [lindex $spec 0]
@@ -9237,7 +9535,8 @@ gdb_caching_proc target_endianness {} {
return 0
}
- clean_restart $obj
+ clean_restart
+ gdb_load $obj
if ![runto_main] {
return 0
}
@@ -9260,12 +9559,12 @@ proc relative_filename {root full} {
set len [llength $root_split]
- if {[eval file join $root_split]
- != [eval file join [lrange $full_split 0 [expr {$len - 1}]]]} {
+ if {[file join {*}$root_split]
+ != [file join {*}[lrange $full_split 0 [expr {$len - 1}]]]} {
error "$full not a subdir of $root"
}
- return [eval file join [lrange $full_split $len end]]
+ return [file join {*}[lrange $full_split $len end]]
}
# If GDB_PARALLEL exists, then set up the parallel-mode directories.
@@ -9363,7 +9662,13 @@ proc remove_core {pid {test ""}} {
}
}
-proc core_find {binfile {deletefiles {}} {arg ""}} {
+# Runs ${binfile} expecting it to crash and generate a core file.
+# If DELETEFILES is provided, remove these files after running the program.
+# If ARG is provided, pass it as a command line argument to the program.
+# If OUTPUT_FILE is provided, save the program output to it.
+# Returns the name of the core dump, or empty string if not found.
+
+proc core_find {binfile {deletefiles {}} {arg ""} {output_file "/dev/null"}} {
global objdir subdir
set destcore "$binfile.core"
@@ -9385,7 +9690,7 @@ proc core_find {binfile {deletefiles {}} {arg ""}} {
set found 0
set coredir [standard_output_file coredir.[getpid]]
file mkdir $coredir
- catch "system \"(cd ${coredir}; ulimit -c unlimited; ${binfile} ${arg}; true) >/dev/null 2>&1\""
+ catch "system \"(cd ${coredir}; ulimit -c unlimited; ${binfile} ${arg}; true) >${output_file} 2>&1\""
# remote_exec host "${binfile}"
set binfile_basename [file tail $binfile]
foreach i [list \
@@ -9476,7 +9781,8 @@ gdb_caching_proc target_supports_scheduler_locking {} {
return 0
}
- clean_restart $obj
+ clean_restart
+ gdb_load $obj
if ![runto_main] {
return 0
}
@@ -9602,7 +9908,7 @@ proc run_on_host { test program args } {
if {[llength $args] > 1 && [lindex $args 1] == ""} {
set args [lreplace $args 1 1 "/dev/null"]
}
- set result [eval remote_exec host [list $program] $args]
+ set result [remote_exec host $program {*}$args]
verbose "result is $result"
set status [lindex $result 0]
set output [lindex $result 1]
@@ -10406,14 +10712,14 @@ proc with_override { name override body } {
# Install the override.
set new_args [info_args_with_defaults $override]
set new_body [info body $override]
- eval proc $name {$new_args} {$new_body}
+ proc $name $new_args $new_body
# Execute body.
set code [catch {uplevel 1 $body} result]
# Restore old proc if it existed on entry, else delete it.
if { $existed } {
- eval proc $name {$old_args} {$old_body}
+ proc $name $old_args $old_body
} else {
rename $name ""
}
@@ -10971,7 +11277,8 @@ gdb_caching_proc have_epilogue_line_info {} {
return False
}
- clean_restart $obj
+ clean_restart
+ gdb_load $obj
gdb_test_multiple "info line 6" "epilogue test" {
-re -wrap ".*starts at address.*and ends at.*" {
@@ -11114,6 +11421,66 @@ proc lappend_include_file { flags file } {
}
}
+# Helper for auto_lappend_include_files that handles one source file,
+# and tracks the list of already-visited files.
+
+proc auto_lappend_include_files_1 {flags source {visited {}}} {
+ upvar $flags up_flags
+ upvar $visited up_visited
+ global srcdir
+
+ set ext [string tolower [file extension $source]]
+ if {$ext ni {".c" ".cpp" ".cc" ".h" ".s"}} {
+ return
+ }
+
+ if {[catch {open $source r} fh err]} {
+ error "Failed to open file '$source': $err"
+ }
+ set contents [read $fh]
+ close $fh
+
+ lappend up_visited $source
+
+ # Match lines like:
+ # #include "gdb_foo.h"
+ set re "^\\s*#include\\s+\"(.*)\""
+
+ foreach line [split $contents "\n"] {
+ if {[regexp $re $line -> basename]} {
+ set lib_file "$srcdir/lib/$basename"
+
+ # If already processed, skip.
+ if {[lsearch -exact $up_visited $lib_file] != -1} {
+ continue
+ }
+
+ if {![file exists $lib_file]} {
+ continue
+ }
+
+ # Append to include list, and recurse into the included
+ # file.
+ lappend_include_file up_flags $lib_file
+ auto_lappend_include_files_1 up_flags $lib_file up_visited
+ }
+ }
+}
+
+# Automatically handle includes under gdb/testsuite/lib/.
+#
+# For each source file in SOURCES, look for #include directives
+# including files that live in testsuite/lib/. For each such included
+# file, call lappend_include_file for it.
+
+proc auto_lappend_include_files {flags sources} {
+ upvar $flags up_flags
+ set visited {}
+ foreach src $sources {
+ auto_lappend_include_files_1 up_flags $src visited
+ }
+}
+
# Return a list of supported host locales.
gdb_caching_proc host_locales { } {
@@ -11225,5 +11592,46 @@ gdb_caching_proc have_builtin_trap {} {
} executable]
}
+# Return 1 if there is a startup shell. Return -1 if there's no startup shell.
+# Return -1 otherwise.
+
+gdb_caching_proc have_startup_shell {} {
+ if { [is_remote target] } {
+ # For remote debugging targets, there is no guarantee that a "shell"
+ # is used.
+ return -1
+ }
+
+
+ gdb_exit
+ gdb_start
+
+ set re_on \
+ [string_to_regexp "Use of shell to start subprocesses is on."]
+ set re_off \
+ [string_to_regexp "Use of shell to start subprocesses is off."]
+ set re_cmd_unsupported \
+ [string_to_regexp \
+ {Undefined show command: "startup-with-shell". Try "help show".}]
+
+ set supported -1
+ gdb_test_multiple "show startup-with-shell" "" {
+ -re -wrap $re_on {
+ set supported 1
+ }
+ -re -wrap $re_off {
+ set supported 0
+ }
+ -re -wrap $re_cmd_unsupported {
+ }
+ -re -wrap "" {
+ }
+ }
+
+ gdb_exit
+
+ return $supported
+}
+
# Always load compatibility stuff.
load_lib future.exp
diff --git a/gdb/testsuite/lib/gdb_watchdog.h b/gdb/testsuite/lib/gdb_watchdog.h
new file mode 100644
index 0000000..15d63e7
--- /dev/null
+++ b/gdb/testsuite/lib/gdb_watchdog.h
@@ -0,0 +1,75 @@
+/* This file is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+/* Set a watchdog that aborts the testcase after a timeout. */
+
+#ifndef GDB_WATCHDOG_H
+#define GDB_WATCHDOG_H
+
+/* Forward declaration to make sure the definitions have the right
+ prototype, at least in C. */
+static void gdb_watchdog (unsigned int seconds);
+
+static const char _gdb_watchdog_msg[]
+ = "gdb_watchdog: timeout expired - aborting test\n";
+
+#ifdef _WIN32
+#include <windows.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+static VOID CALLBACK
+_gdb_watchdog_timer_routine (PVOID lpParam, BOOLEAN TimerOrWaitFired)
+{
+ fputs (_gdb_watchdog_msg, stderr);
+ abort ();
+}
+
+static void
+gdb_watchdog (unsigned int seconds)
+{
+ HANDLE timer;
+
+ if (!CreateTimerQueueTimer (&timer, NULL,
+ _gdb_watchdog_timer_routine, NULL,
+ seconds * 1000, 0, 0))
+ abort ();
+}
+
+#else /* POSIX systems */
+
+#include <unistd.h>
+#include <signal.h>
+#include <stdlib.h>
+
+static void
+_gdb_sigalrm_handler (int signo)
+{
+ write (2, _gdb_watchdog_msg, sizeof (_gdb_watchdog_msg) - 1);
+ abort ();
+}
+
+static void
+gdb_watchdog (unsigned int seconds)
+{
+ signal (SIGALRM, _gdb_sigalrm_handler);
+ alarm (seconds);
+}
+
+#endif
+
+#endif /* GDB_WATCHDOG_H */
diff --git a/gdb/testsuite/lib/gdbserver-support.exp b/gdb/testsuite/lib/gdbserver-support.exp
index 2389206..6ff00ba 100644
--- a/gdb/testsuite/lib/gdbserver-support.exp
+++ b/gdb/testsuite/lib/gdbserver-support.exp
@@ -125,7 +125,7 @@ proc gdb_target_cmd_ext { targetname serialport {additional_text ""} } {
# Like gdb_target_cmd_ext, but returns 0 on success, 1 on failure.
proc gdb_target_cmd { args } {
- set res [eval gdb_target_cmd_ext $args]
+ set res [gdb_target_cmd_ext {*}$args]
return [expr $res == 0 ? 0 : 1]
}
diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp
index aba13a2..fcbcddc 100644
--- a/gdb/testsuite/lib/mi-support.exp
+++ b/gdb/testsuite/lib/mi-support.exp
@@ -340,7 +340,7 @@ proc default_mi_gdb_start { { flags {} } } {
# baseboard file.
#
proc mi_gdb_start { args } {
- return [eval default_mi_gdb_start $args]
+ return [default_mi_gdb_start {*}$args]
}
# Many of the tests depend on setting breakpoints at various places and
@@ -1010,14 +1010,14 @@ proc mi_run_cmd_full {use_mi_command args} {
# -exec-continue, as appropriate. ARGS are passed verbatim to
# mi_run_cmd_full.
proc mi_run_cmd {args} {
- return [eval mi_run_cmd_full 1 $args]
+ return [mi_run_cmd_full 1 {*}$args]
}
# A wrapper for mi_run_cmd_full which uses the CLI commands 'run' and
# 'continue', as appropriate. ARGS are passed verbatim to
# mi_run_cmd_full.
proc mi_run_with_cli {args} {
- return [eval mi_run_cmd_full 0 $args]
+ return [mi_run_cmd_full 0 {*}$args]
}
# Starts fresh GDB binary and loads an optional executable into GDB.
@@ -1044,6 +1044,9 @@ proc mi_clean_restart {{executable ""} {flags {}}} {
mi_gdb_reinitialize_dir $srcdir/$subdir
if {$executable != ""} {
+ if { [file pathtype $executable] == "absolute" } {
+ error "absolute path used"
+ }
set binfile [standard_output_file ${executable}]
return [mi_gdb_load ${binfile}]
}
@@ -1394,7 +1397,7 @@ proc mi_continue_to {func} {
# returns the breakpoint regexp from that procedure.
proc mi_create_breakpoint {location test args} {
- set bp [eval mi_make_breakpoint $args]
+ set bp [mi_make_breakpoint {*}$args]
mi_gdb_test "222-break-insert $location" "222\\^done,$bp" $test
return $bp
}
@@ -1403,7 +1406,7 @@ proc mi_create_breakpoint {location test args} {
# locations using mi_make_breakpoint_multi instead.
proc mi_create_breakpoint_multi {location test args} {
- set bp [eval mi_make_breakpoint_multi $args]
+ set bp [mi_make_breakpoint_multi {*}$args]
mi_gdb_test "222-break-insert $location" "222\\^done,$bp" $test
return $bp
}
@@ -1411,7 +1414,7 @@ proc mi_create_breakpoint_multi {location test args} {
# Like mi_create_breakpoint, but creates a pending breakpoint.
proc mi_create_breakpoint_pending {location test args} {
- set bp [eval mi_make_breakpoint_pending $args]
+ set bp [mi_make_breakpoint_pending {*}$args]
mi_gdb_test "222-break-insert $location" ".*\r\n222\\^done,$bp" $test
return $bp
}
@@ -2683,7 +2686,7 @@ proc mi_make_info_frame_regexp {args} {
proc mi_info_frame { test args } {
parse_some_args {{frame ""} {thread ""}}
- set re [eval mi_make_info_frame_regexp $args]
+ set re [mi_make_info_frame_regexp {*}$args]
set cmd "235-stack-info-frame"
if {$frame ne ""} {
diff --git a/gdb/testsuite/lib/selftest-support.exp b/gdb/testsuite/lib/selftest-support.exp
index e037664..af8ec6f 100644
--- a/gdb/testsuite/lib/selftest-support.exp
+++ b/gdb/testsuite/lib/selftest-support.exp
@@ -16,7 +16,7 @@
# Find a pathname to a file that we would execute if the shell was asked
# to run $arg using the current PATH.
-proc find_gdb { arg } {
+proc _selftest_find_gdb { arg } {
# If the arg directly specifies an existing executable file, then
# simply use it.
@@ -36,65 +36,163 @@ proc find_gdb { arg } {
return $arg
}
-# A helper proc that sets up for self-testing.
-# EXECUTABLE is the gdb to use.
-# FUNCTION is the function to break in, either captured_main
-# or captured_command_loop.
-# Return 0 in case of success, -1 in case of failure, and -2 in case of
-# skipping the test-case.
+# Return true if the GDB under test is installed (as opposed to a GDB in its
+# build directory).
-proc selftest_setup { executable function } {
- global gdb_prompt
- global INTERNAL_GDBFLAGS
+proc _selftest_gdb_is_installed {} {
+ # If GDB_DATA_DIRECTORY is empty, assume that it is an installed GDB. It is
+ # not a perfectly accurate check, but should be good enough.
+ return [expr {"$::GDB_DATA_DIRECTORY" == ""}]
+}
+
+# Return true if the libtool binary is present on the host.
+
+proc _selftest_has_libtool {} {
+ lassign [remote_exec host "sh -c \"command -v libtool\""] status output
+ return [expr {$status == 0}]
+}
+
+# If GDB is executed from a build tree, run libtool to obtain the real
+# executable path for EXECUTABLE, which may be a libtool wrapper. Return
+# the path on success. On failure, issue an UNTESTED test result and return
+# an empty string.
+#
+# If GDB is executed from an installed location, return EXECUTABLE unchanged.
+#
+# If libtool is not present on the host system, return EXECUTABLE unchanged.
+# The test might still work, because the GDB binary is not always a libtool
+# wrapper.
+
+proc selftest_libtool_get_real_gdb_executable { executable } {
+ if [_selftest_gdb_is_installed] {
+ return $executable
+ }
- # load yourself into the debugger
+ if ![_selftest_has_libtool] {
+ return $executable
+ }
+
+ lassign [remote_exec host libtool "--mode=execute echo -n $executable"] \
+ status executable
+
+ if { $status != 0 } {
+ untested "failed to run libtool"
+ return ""
+ }
- global gdb_file_cmd_debug_info
- set gdb_file_cmd_debug_info "unset"
+ return $executable
+}
+
+# Return true if EXECUTABLE has debug info.
+#
+# If it doesn't, or if it's not possible to determine, issue an UNTESTED test
+# result and return false.
+
+proc _selftest_check_executable_debug_info { executable } {
+ set ::gdb_file_cmd_debug_info "unset"
+ set result true
+
+ # On Cygwin (at least), gdb/gdb.exe is a libtool wrapper (which happens to
+ # be a PE executable). The real binary is gdb/.libs/gdb.exe. If we load
+ # gdb/gdb.exe, we won't see any debug info and conclude that we can't run
+ # the test. Obtain the real executable path using libtool.
+ #
+ # At the time of writing, we don't see a libtool wrapper generated on Linux.
+ # But if there was one, it would be a shell script, and it would not be
+ # possible to load it in gdb. This conversion would therefore also be
+ # necessary.
+ #
+ # If testing against an installed GDB, then there won't be a libtool
+ # wrapper, no need to convert.
+ set executable [selftest_libtool_get_real_gdb_executable $executable]
+
+ if { $executable == "" } {
+ # selftest_libtool_get_real_gdb_executable already records an UNTESTED
+ # on failure.
+ return false
+ }
- set result [gdb_load $executable]
+ gdb_start
- if {$result != 0} {
- return -1
+ if {[gdb_load $executable] != 0} {
+ untested "failed to load executable when checking for debug info"
+ set result false
}
- if {$gdb_file_cmd_debug_info != "debug"} {
+ if {$::gdb_file_cmd_debug_info != "debug"} {
untested "no debug information, skipping testcase."
- return -2
+ set result false
}
- # Set a breakpoint at $function.
+ gdb_exit
+
+ return $result
+}
+
+# A helper proc that sets up for self-testing.
+#
+# Assumes that the inferior GDB is already loaded in the top-level GDB.
+#
+# Return 0 in case of success, -1 in case of failure, and -2 in case of
+# skipping the test-case.
+
+proc _selftest_setup { } {
+ global gdb_prompt
+ global INTERNAL_GDBFLAGS
+
+ # Set a breakpoint at main
+ set function main
if { [gdb_breakpoint $function "no-message"] != 1 } {
untested "Cannot set breakpoint at $function, skipping testcase."
return -2
}
+ # Debugging on Windows shows random threads starting and exiting,
+ # interfering with the tests. Disable them, since they are not useful here.
+ gdb_test_no_output "set print thread-events off"
+
# run yourself
set description "run until breakpoint at $function"
+ set re_hs {[^\r\n]+}
+ set re_args [string cat \
+ [string_to_regexp "("] \
+ $re_hs \
+ [string_to_regexp ")"]]
+ set re_pass \
+ [multi_line \
+ "Starting program: $re_hs" \
+ ".*" \
+ [string cat "Breakpoint $::decimal, $function $re_args at" \
+ " ${re_hs}gdb.c:$re_hs"] \
+ ".*"]
+ set re_xfail \
+ [multi_line \
+ "Starting program: $re_hs" \
+ ".*" \
+ "Breakpoint $::decimal, $function $re_args$re_hs" \
+ ".*"]
gdb_test_multiple "run $INTERNAL_GDBFLAGS" "$description" {
- -re "Starting program.*Breakpoint \[0-9\]+,.*$function \\(.*\\).* at .*main.c:.*$gdb_prompt $" {
- pass "$description"
- }
- -re "Starting program.*Breakpoint \[0-9\]+,.*$function \\(.*\\).*$gdb_prompt $" {
- xfail "$description (line numbers scrambled?)"
- }
- -re "vfork: No more processes.*$gdb_prompt $" {
- fail "$description (out of virtual memory)"
- return -1
- }
- -re ".*$gdb_prompt $" {
- fail "$description"
- return -1
- }
+ -re -wrap $re_pass {
+ pass $description
+ }
+ -re -wrap $re_xfail {
+ xfail "$description (line numbers scrambled?)"
+ }
+ -re -wrap "vfork: No more processes.*" {
+ fail "$description (out of virtual memory)"
+ return -1
+ }
+ -re -wrap "" {
+ fail $description
+ return -1
+ }
}
return 0
}
-# Prepare for running a self-test by moving the GDB executable to a
-# location where we can use it as the inferior. Return the filename
-# of the new location.
+# Return the location of the gdb executable to test.
#
# If the current testing setup is not suitable for running a
# self-test, then return an empty string.
@@ -114,52 +212,54 @@ proc selftest_prepare {} {
# ... or with a stub-like server? I.e., gdbserver + "target
# remote"? In that case we won't be able to pass command line
- # arguments to GDB, and selftest_setup wants to do exactly that.
+ # arguments to GDB, and _selftest_setup wants to do exactly that.
if [use_gdb_stub] {
return
}
- # Run the test with self. Copy the file executable file in case
- # this OS doesn't like to edit its own text space.
-
- set gdb_fullpath [find_gdb $::GDB]
-
- if {[is_remote host]} {
- set xgdb x$::tool
- } else {
- set xgdb [standard_output_file x$::tool]
- }
-
- # Remove any old copy lying around.
- remote_file host delete $xgdb
-
- set filename [remote_download host $gdb_fullpath $xgdb]
-
- return $filename
+ return [_selftest_find_gdb $::GDB]
}
# A simple way to run some self-tests.
-proc do_self_tests {function body} {
+proc do_self_tests {body} {
set file [selftest_prepare]
if { $file eq "" } {
return
}
- gdb_start
+ # Check if the gdb executable has debug info.
+ if { ![_selftest_check_executable_debug_info $file] } {
+ return
+ }
+
+ # FILE might be a libtool wrapper. In order to debug the real thing, pass
+ # FILE on the command-line of the top-level gdb, and run under
+ # `libtool --mode=execute. libtool will replace FILE with the path to the
+ # real executable and set any path required for it to find its dependent
+ # libraries.
+ #
+ # If testing against an installed GDB, there won't be a libtool wrapper.
+ save_vars { ::GDB ::GDBFLAGS } {
+ if { ![_selftest_gdb_is_installed] && [_selftest_has_libtool] } {
+ set ::GDB "libtool --mode=execute $::GDB"
+ }
+
+ set ::GDBFLAGS "$::GDBFLAGS $file"
+ gdb_start
+ }
# When debugging GDB with GDB, some operations can take a relatively long
# time, especially if the build is non-optimized. Bump the timeout for the
# duration of the test.
with_timeout_factor 10 {
- set result [selftest_setup $file $function]
+ set result [_selftest_setup]
if {$result == 0} {
set result [uplevel $body]
}
}
gdb_exit
- catch "remote_file host delete $file"
if {$result == -1} {
warning "Couldn't test self"
diff --git a/gdb/testsuite/lib/trace-support.exp b/gdb/testsuite/lib/trace-support.exp
index a8d0699..8543de3 100644
--- a/gdb/testsuite/lib/trace-support.exp
+++ b/gdb/testsuite/lib/trace-support.exp
@@ -219,14 +219,14 @@ proc gdb_trace_setactions_command { actions_command testname tracepoint args } {
# gdb_trace_setactions_command.
#
proc gdb_trace_setactions { testname tracepoint args } {
- eval gdb_trace_setactions_command "actions" {$testname} {$tracepoint} $args
+ gdb_trace_setactions_command "actions" $testname $tracepoint {*}$args
}
# Define actions for a tracepoint, using the "commands" command. See
# gdb_trace_setactions_command.
#
proc gdb_trace_setcommands { testname tracepoint args } {
- eval gdb_trace_setactions_command "commands" {$testname} {$tracepoint} $args
+ gdb_trace_setactions_command "commands" $testname $tracepoint {*}$args
}
#
diff --git a/gdb/testsuite/lib/tuiterm.exp b/gdb/testsuite/lib/tuiterm.exp
index b83b8af..68fd677 100644
--- a/gdb/testsuite/lib/tuiterm.exp
+++ b/gdb/testsuite/lib/tuiterm.exp
@@ -33,1331 +33,1690 @@ namespace eval Term {
variable _resize_count
- proc _log { what } {
- verbose "+++ $what"
- }
+ variable _TERM
+ set _TERM ""
- # Call BODY, then log WHAT along with the original and new cursor position.
- proc _log_cur { what body } {
- variable _cur_row
- variable _cur_col
+ variable _alternate
+ variable _alternate_setup
+ set _alternate 0
+ set _alternate_setup 0
+}
- set orig_cur_row $_cur_row
- set orig_cur_col $_cur_col
+proc Term::_log { what } {
+ verbose "+++ $what"
+}
- set code [catch {uplevel $body} result]
+# Call BODY, then log WHAT along with the original and new cursor position.
+proc Term::_log_cur { what body } {
+ variable _cur_row
+ variable _cur_col
- _log "$what, cursor: ($orig_cur_row, $orig_cur_col) -> ($_cur_row, $_cur_col)"
+ set orig_cur_row $_cur_row
+ set orig_cur_col $_cur_col
- if { $code == 1 } {
- global errorInfo errorCode
- return -code $code -errorinfo $errorInfo -errorcode $errorCode $result
- } else {
- return -code $code $result
- }
- }
+ set code [catch {uplevel $body} result]
- # If ARG is empty, return DEF: otherwise ARG. This is useful for
- # defaulting arguments in CSIs.
- proc _default {arg def} {
- if {$arg == ""} {
- return $def
- }
- return $arg
+ _log "$what, cursor: ($orig_cur_row, $orig_cur_col) -> ($_cur_row, $_cur_col)"
+
+ if { $code == 1 } {
+ global errorInfo errorCode
+ return -code $code -errorinfo $errorInfo -errorcode $errorCode $result
+ } else {
+ return -code $code $result
}
+}
- # Erase in the line Y from SX to just before EX.
- proc _clear_in_line {sx ex y} {
- variable _attrs
- variable _chars
- set lattr [array get _attrs]
- while {$sx < $ex} {
- set _chars($sx,$y) [list " " $lattr]
- incr sx
- }
+# If ARG is empty, return DEF: otherwise ARG. This is useful for
+# defaulting arguments in CSIs.
+proc Term::_default {arg def} {
+ if {$arg == ""} {
+ return $def
}
+ return $arg
+}
- # Erase the lines from SY to just before EY.
- proc _clear_lines {sy ey} {
- variable _cols
- while {$sy < $ey} {
- _clear_in_line 0 $_cols $sy
- incr sy
- }
+# Erase in the line Y from SX to just before EX.
+proc Term::_clear_in_line {sx ex y} {
+ variable _attrs
+ variable _chars
+ set lattr [array get _attrs]
+ while {$sx < $ex} {
+ set _chars($sx,$y) [list " " $lattr]
+ incr sx
}
+}
- # Beep.
- proc _ctl_0x07 {} {
+# Erase the lines from SY to just before EY.
+proc Term::_clear_lines {sy ey} {
+ variable _cols
+ while {$sy < $ey} {
+ _clear_in_line 0 $_cols $sy
+ incr sy
}
+}
+
+# Beep.
+proc Term::_ctl_0x07 {} {
+}
+
+# Return 1 if tuiterm has the bw/auto_left_margin enabled.
+proc Term::_have_bw {} {
+ return [expr \
+ { [string equal $Term::_TERM "ansiw"] \
+ || [string equal $Term::_TERM "ansis"] }]
+}
- # Return 1 if tuiterm has the bw/auto_left_margin enabled.
- proc _have_bw {} {
- return [string equal $Term::_TERM "ansiw"]
+# Backspace.
+proc Term::_ctl_0x08 { {bw -1} } {
+ if { $bw == -1 } {
+ set bw [_have_bw]
}
+ _log_cur "Backspace, bw == $bw" {
+ variable _cur_col
+ variable _cur_row
+ variable _cols
- # Backspace.
- proc _ctl_0x08 { {bw -1} } {
- if { $bw == -1 } {
- set bw [_have_bw]
+ if { $_cur_col > 0 } {
+ # No wrapping needed.
+ incr _cur_col -1
+ return
}
- _log_cur "Backspace, bw == $bw" {
- variable _cur_col
- variable _cur_row
- variable _cols
- if { $_cur_col > 0 } {
- # No wrapping needed.
- incr _cur_col -1
- return
- }
+ if { ! $bw } {
+ # Wrapping not enabled.
+ return
+ }
- if { ! $bw } {
- # Wrapping not enabled.
- return
- }
+ if { $_cur_row == 0 } {
+ # Can't wrap.
+ return
+ }
+
+ # Wrap to previous line.
+ set _cur_col [expr $_cols - 1]
+ incr _cur_row -1
+ }
+}
+
+# Linefeed.
+proc Term::_ctl_0x0a {} {
+ _log_cur "Line feed" {
+ variable _cur_row
+ variable _rows
+ variable _cols
+ variable _chars
- if { $_cur_row == 0 } {
- # Can't wrap.
- return
+ incr _cur_row 1
+ while {$_cur_row >= $_rows} {
+ # Scroll the display contents. We scroll one line at
+ # a time here; as _cur_row was only increased by one,
+ # a single line scroll should be enough to put the
+ # cursor back on the screen. But we wrap the
+ # scrolling inside a while loop just to be on the safe
+ # side.
+ for {set y 0} {$y < [expr $_rows - 1]} {incr y} {
+ set next_y [expr $y + 1]
+ for {set x 0} {$x < $_cols} {incr x} {
+ set _chars($x,$y) $_chars($x,$next_y)
+ }
}
- # Wrap to previous line.
- set _cur_col [expr $_cols - 1]
incr _cur_row -1
}
}
+}
- # Linefeed.
- proc _ctl_0x0a {} {
- _log_cur "Line feed" {
- variable _cur_row
- variable _rows
- variable _cols
- variable _chars
-
- incr _cur_row 1
- while {$_cur_row >= $_rows} {
- # Scroll the display contents. We scroll one line at
- # a time here; as _cur_row was only increased by one,
- # a single line scroll should be enough to put the
- # cursor back on the screen. But we wrap the
- # scrolling inside a while loop just to be on the safe
- # side.
- for {set y 0} {$y < [expr $_rows - 1]} {incr y} {
- set next_y [expr $y + 1]
- for {set x 0} {$x < $_cols} {incr x} {
- set _chars($x,$y) $_chars($x,$next_y)
- }
- }
+# Carriage return.
+proc Term::_ctl_0x0d {} {
+ _log_cur "Carriage return" {
+ variable _cur_col
- incr _cur_row -1
- }
- }
+ set _cur_col 0
}
+}
- # Carriage return.
- proc _ctl_0x0d {} {
- _log_cur "Carriage return" {
- variable _cur_col
+# Designate G0 Character Set, USASCII (ESC ( B)
+#
+# https://invisible-island.net/xterm/ctlseqs/ctlseqs.html (see "ESC ( C", case C = B)
+proc Term::_esc_0x28_B {} {
+ _log "ignored: G0: USASCII"
+}
- set _cur_col 0
- }
- }
+# Designate G0 Character Set, DEC Special Character and Line Drawing Set (ESC ( 0)
+#
+# https://invisible-island.net/xterm/ctlseqs/ctlseqs.html (see "ESC ( C", case C = 0)
+proc Term::_esc_0x28_0 {} {
+ _log "ignored: G0: DEC Special Character and Line Drawing Set"
+}
+
+# DECKPAM (Application Keypad, ESC =)
+#
+# https://vt100.net/docs/vt510-rm/DECKPAM.html
+proc Term::_esc_0x3d {} {
+ _log "ignored: Application Keypad"
+}
- # Insert Character.
- #
- # https://vt100.net/docs/vt510-rm/ICH.html
- proc _csi_@ {args} {
- set n [_default [lindex $args 0] 1]
+# DECKPNM (Normal Keypad, ESC >)
+#
+# https://vt100.net/docs/vt510-rm/DECKPNM.html
+proc Term::_esc_0x3e {} {
+ _log "ignored: Normal Keypad"
+}
- _log_cur "Insert Character ($n)" {
- variable _cur_col
- variable _cur_row
- variable _cols
- variable _chars
+# Insert Character.
+#
+# https://vt100.net/docs/vt510-rm/ICH.html
+proc Term::_csi_@ {args} {
+ set n [_default [lindex $args 0] 1]
- # Move characters right of the cursor right by N positions,
- # starting with the rightmost one.
- for {set in_col [expr $_cols - $n - 1]} {$in_col >= $_cur_col} {incr in_col -1} {
- set out_col [expr $in_col + $n]
- set _chars($out_col,$_cur_row) $_chars($in_col,$_cur_row)
- }
+ _log_cur "Insert Character ($n)" {
+ variable _cur_col
+ variable _cur_row
+ variable _cols
+ variable _chars
- # Write N blank spaces starting from the cursor.
- _clear_in_line $_cur_col [expr $_cur_col + $n] $_cur_row
+ # Move characters right of the cursor right by N positions,
+ # starting with the rightmost one.
+ for {set in_col [expr $_cols - $n - 1]} {$in_col >= $_cur_col} {incr in_col -1} {
+ set out_col [expr $in_col + $n]
+ set _chars($out_col,$_cur_row) $_chars($in_col,$_cur_row)
}
- }
- # Horizontal Position Absolute.
- #
- # https://vt100.net/docs/vt510-rm/HPA.html
- proc _csi_` {args} {
- # Same as Cursor Horizontal Absolute.
- return [Term::_csi_G {*}$args]
+ # Write N blank spaces starting from the cursor.
+ _clear_in_line $_cur_col [expr $_cur_col + $n] $_cur_row
}
+}
+
+# Horizontal Position Absolute.
+#
+# https://vt100.net/docs/vt510-rm/HPA.html
+proc Term::_csi_` {args} {
+ # Same as Cursor Horizontal Absolute.
+ return [Term::_csi_G {*}$args]
+}
- # Cursor Up.
- #
- # https://vt100.net/docs/vt510-rm/CUU.html
- proc _csi_A {args} {
- set arg [_default [lindex $args 0] 1]
+# Cursor Up.
+#
+# https://vt100.net/docs/vt510-rm/CUU.html
+proc Term::_csi_A {args} {
+ set arg [_default [lindex $args 0] 1]
- _log_cur "Cursor Up ($arg)" {
- variable _cur_row
+ _log_cur "Cursor Up ($arg)" {
+ variable _cur_row
- set _cur_row [expr {max ($_cur_row - $arg, 0)}]
- }
+ set _cur_row [expr {max ($_cur_row - $arg, 0)}]
}
+}
- # Cursor Down.
- #
- # https://vt100.net/docs/vt510-rm/CUD.html
- proc _csi_B {args} {
- set arg [_default [lindex $args 0] 1]
+# Cursor Down.
+#
+# https://vt100.net/docs/vt510-rm/CUD.html
+proc Term::_csi_B {args} {
+ set arg [_default [lindex $args 0] 1]
- _log_cur "Cursor Down ($arg)" {
- variable _cur_row
- variable _rows
+ _log_cur "Cursor Down ($arg)" {
+ variable _cur_row
+ variable _rows
- set _cur_row [expr {min ($_cur_row + $arg, $_rows - 1)}]
- }
+ set _cur_row [expr {min ($_cur_row + $arg, $_rows - 1)}]
}
+}
- # Cursor Forward.
- #
- # https://vt100.net/docs/vt510-rm/CUF.html
- proc _csi_C {args} {
- set arg [_default [lindex $args 0] 1]
+# Cursor Forward.
+#
+# https://vt100.net/docs/vt510-rm/CUF.html
+proc Term::_csi_C {args} {
+ set arg [_default [lindex $args 0] 1]
- _log_cur "Cursor Forward ($arg)" {
- variable _cur_col
- variable _cols
+ _log_cur "Cursor Forward ($arg)" {
+ variable _cur_col
+ variable _cols
- set _cur_col [expr {min ($_cur_col + $arg, $_cols - 1)}]
- }
+ set _cur_col [expr {min ($_cur_col + $arg, $_cols - 1)}]
}
+}
- # Cursor Backward.
- #
- # https://vt100.net/docs/vt510-rm/CUB.html
- proc _csi_D {args} {
- set arg [_default [lindex $args 0] 1]
+# Cursor Backward.
+#
+# https://vt100.net/docs/vt510-rm/CUB.html
+proc Term::_csi_D {args} {
+ set arg [_default [lindex $args 0] 1]
- _log_cur "Cursor Backward ($arg)" {
- variable _cur_col
+ _log_cur "Cursor Backward ($arg)" {
+ variable _cur_col
- set _cur_col [expr {max ($_cur_col - $arg, 0)}]
- }
+ set _cur_col [expr {max ($_cur_col - $arg, 0)}]
}
+}
- # Cursor Next Line.
- #
- # https://vt100.net/docs/vt510-rm/CNL.html
- proc _csi_E {args} {
- set arg [_default [lindex $args 0] 1]
+# Cursor Next Line.
+#
+# https://vt100.net/docs/vt510-rm/CNL.html
+proc Term::_csi_E {args} {
+ set arg [_default [lindex $args 0] 1]
- _log_cur "Cursor Next Line ($arg)" {
- variable _cur_col
- variable _cur_row
- variable _rows
+ _log_cur "Cursor Next Line ($arg)" {
+ variable _cur_col
+ variable _cur_row
+ variable _rows
- set _cur_col 0
- set _cur_row [expr {min ($_cur_row + $arg, $_rows - 1)}]
- }
+ set _cur_col 0
+ set _cur_row [expr {min ($_cur_row + $arg, $_rows - 1)}]
}
+}
- # Cursor Previous Line.
- #
- # https://vt100.net/docs/vt510-rm/CPL.html
- proc _csi_F {args} {
- set arg [_default [lindex $args 0] 1]
+# Cursor Previous Line.
+#
+# https://vt100.net/docs/vt510-rm/CPL.html
+proc Term::_csi_F {args} {
+ set arg [_default [lindex $args 0] 1]
- _log_cur "Cursor Previous Line ($arg)" {
- variable _cur_col
- variable _cur_row
- variable _rows
+ _log_cur "Cursor Previous Line ($arg)" {
+ variable _cur_col
+ variable _cur_row
+ variable _rows
- set _cur_col 0
- set _cur_row [expr {max ($_cur_row - $arg, 0)}]
- }
+ set _cur_col 0
+ set _cur_row [expr {max ($_cur_row - $arg, 0)}]
}
+}
- # Cursor Horizontal Absolute.
- #
- # https://vt100.net/docs/vt510-rm/CHA.html
- proc _csi_G {args} {
- set arg [_default [lindex $args 0] 1]
+# Cursor Horizontal Absolute.
+#
+# https://vt100.net/docs/vt510-rm/CHA.html
+proc Term::_csi_G {args} {
+ set arg [_default [lindex $args 0] 1]
- _log_cur "Cursor Horizontal Absolute ($arg)" {
- variable _cur_col
- variable _cols
+ _log_cur "Cursor Horizontal Absolute ($arg)" {
+ variable _cur_col
+ variable _cols
- set _cur_col [expr {min ($arg, $_cols)} - 1]
- }
+ set _cur_col [expr {min ($arg, $_cols)} - 1]
}
+}
- # Cursor Position.
- #
- # https://vt100.net/docs/vt510-rm/CUP.html
- proc _csi_H {args} {
- set row [_default [lindex $args 0] 1]
- set col [_default [lindex $args 1] 1]
+# Cursor Position.
+#
+# https://vt100.net/docs/vt510-rm/CUP.html
+proc Term::_csi_H {args} {
+ set row [_default [lindex $args 0] 1]
+ set col [_default [lindex $args 1] 1]
- _log_cur "Cursor Position ($row, $col)" {
- variable _cur_col
- variable _cur_row
+ _log_cur "Cursor Position ($row, $col)" {
+ variable _cur_col
+ variable _cur_row
- set _cur_row [expr {$row - 1}]
- set _cur_col [expr {$col - 1}]
- }
+ set _cur_row [expr {$row - 1}]
+ set _cur_col [expr {$col - 1}]
}
+}
- # Cursor Horizontal Forward Tabulation.
- #
- # https://vt100.net/docs/vt510-rm/CHT.html
- proc _csi_I {args} {
- set n [_default [lindex $args 0] 1]
+# Cursor Horizontal Forward Tabulation.
+#
+# https://vt100.net/docs/vt510-rm/CHT.html
+proc Term::_csi_I {args} {
+ set n [_default [lindex $args 0] 1]
- _log_cur "Cursor Horizontal Forward Tabulation ($n)" {
- variable _cur_col
- variable _cols
+ _log_cur "Cursor Horizontal Forward Tabulation ($n)" {
+ variable _cur_col
+ variable _cols
- incr _cur_col [expr {$n * 8 - $_cur_col % 8}]
- if {$_cur_col >= $_cols} {
- set _cur_col [expr {$_cols - 1}]
- }
+ incr _cur_col [expr {$n * 8 - $_cur_col % 8}]
+ if {$_cur_col >= $_cols} {
+ set _cur_col [expr {$_cols - 1}]
}
}
+}
- # Erase in Display.
- #
- # https://vt100.net/docs/vt510-rm/ED.html
- proc _csi_J {args} {
- set arg [_default [lindex $args 0] 0]
-
- _log_cur "Erase in Display ($arg)" {
- variable _cur_col
- variable _cur_row
- variable _rows
- variable _cols
-
- if {$arg == 0} {
- # Cursor (inclusive) to end of display.
- _clear_in_line $_cur_col $_cols $_cur_row
- _clear_lines [expr {$_cur_row + 1}] $_rows
- } elseif {$arg == 1} {
- # Beginning of display to cursor (inclusive).
- _clear_lines 0 $_cur_row
- _clear_in_line 0 [expr $_cur_col + 1] $_cur_row
- } elseif {$arg == 2} {
- # Entire display.
- _clear_lines 0 $_rows
- }
+# Erase in Display.
+#
+# https://vt100.net/docs/vt510-rm/ED.html
+proc Term::_csi_J {args} {
+ set arg [_default [lindex $args 0] 0]
+
+ _log_cur "Erase in Display ($arg)" {
+ variable _cur_col
+ variable _cur_row
+ variable _rows
+ variable _cols
+
+ if {$arg == 0} {
+ # Cursor (inclusive) to end of display.
+ _clear_in_line $_cur_col $_cols $_cur_row
+ _clear_lines [expr {$_cur_row + 1}] $_rows
+ } elseif {$arg == 1} {
+ # Beginning of display to cursor (inclusive).
+ _clear_lines 0 $_cur_row
+ _clear_in_line 0 [expr $_cur_col + 1] $_cur_row
+ } elseif {$arg == 2} {
+ # Entire display.
+ _clear_lines 0 $_rows
}
}
+}
- # Erase in Line.
- #
- # https://vt100.net/docs/vt510-rm/EL.html
- proc _csi_K {args} {
- set arg [_default [lindex $args 0] 0]
+# Erase in Line.
+#
+# https://vt100.net/docs/vt510-rm/EL.html
+proc Term::_csi_K {args} {
+ set arg [_default [lindex $args 0] 0]
- _log_cur "Erase in Line ($arg)" {
- variable _cur_col
- variable _cur_row
- variable _cols
+ _log_cur "Erase in Line ($arg)" {
+ variable _cur_col
+ variable _cur_row
+ variable _cols
- if {$arg == 0} {
- # Cursor (inclusive) to end of line.
- _clear_in_line $_cur_col $_cols $_cur_row
- } elseif {$arg == 1} {
- # Beginning of line to cursor (inclusive).
- _clear_in_line 0 [expr $_cur_col + 1] $_cur_row
- } elseif {$arg == 2} {
- # Entire line.
- _clear_in_line 0 $_cols $_cur_row
- }
+ if {$arg == 0} {
+ # Cursor (inclusive) to end of line.
+ _clear_in_line $_cur_col $_cols $_cur_row
+ } elseif {$arg == 1} {
+ # Beginning of line to cursor (inclusive).
+ _clear_in_line 0 [expr $_cur_col + 1] $_cur_row
+ } elseif {$arg == 2} {
+ # Entire line.
+ _clear_in_line 0 $_cols $_cur_row
}
}
+}
- # Insert Line
- #
- # https://vt100.net/docs/vt510-rm/IL.html
- proc _csi_L {args} {
- set arg [_default [lindex $args 0] 1]
+# Insert Line
+#
+# https://vt100.net/docs/vt510-rm/IL.html
+proc Term::_csi_L {args} {
+ set arg [_default [lindex $args 0] 1]
- _log_cur "Insert Line ($arg)" {
- variable _cur_col
- variable _cur_row
- variable _rows
- variable _cols
- variable _chars
+ _log_cur "Insert Line ($arg)" {
+ variable _cur_col
+ variable _cur_row
+ variable _rows
+ variable _cols
+ variable _chars
- set y [expr $_rows - 2]
- set next_y [expr $y + $arg]
- while {$y >= $_cur_row} {
- for {set x 0} {$x < $_cols} {incr x} {
- set _chars($x,$next_y) $_chars($x,$y)
- }
- incr y -1
- incr next_y -1
+ set y [expr $_rows - 2]
+ set next_y [expr $y + $arg]
+ while {$y >= $_cur_row} {
+ for {set x 0} {$x < $_cols} {incr x} {
+ set _chars($x,$next_y) $_chars($x,$y)
}
-
- _clear_lines $_cur_row [expr $_cur_row + $arg]
+ incr y -1
+ incr next_y -1
}
+
+ _clear_lines $_cur_row [expr $_cur_row + $arg]
}
+}
- # Delete line.
- #
- # https://vt100.net/docs/vt510-rm/DL.html
- proc _csi_M {args} {
- set count [_default [lindex $args 0] 1]
+# Delete line.
+#
+# https://vt100.net/docs/vt510-rm/DL.html
+proc Term::_csi_M {args} {
+ set count [_default [lindex $args 0] 1]
- _log_cur "Delete line ($count)" {
- variable _cur_row
- variable _rows
- variable _cols
- variable _chars
+ _log_cur "Delete line ($count)" {
+ variable _cur_row
+ variable _rows
+ variable _cols
+ variable _chars
- set y $_cur_row
- set next_y [expr {$y + $count}]
- while {$next_y < $_rows} {
- for {set x 0} {$x < $_cols} {incr x} {
- set _chars($x,$y) $_chars($x,$next_y)
- }
- incr y
- incr next_y
+ set y $_cur_row
+ set next_y [expr {$y + $count}]
+ while {$next_y < $_rows} {
+ for {set x 0} {$x < $_cols} {incr x} {
+ set _chars($x,$y) $_chars($x,$next_y)
}
- _clear_lines $y $_rows
+ incr y
+ incr next_y
}
+ _clear_lines $y $_rows
}
+}
- # Delete Character.
- #
- # https://vt100.net/docs/vt510-rm/DCH.html
- proc _csi_P {args} {
- set count [_default [lindex $args 0] 1]
-
- _log_cur "Delete character ($count)" {
- variable _cur_row
- variable _cur_col
- variable _chars
- variable _cols
+# Delete Character.
+#
+# https://vt100.net/docs/vt510-rm/DCH.html
+proc Term::_csi_P {args} {
+ set count [_default [lindex $args 0] 1]
- # Move all characters right of the cursor N positions left.
- set out_col [expr $_cur_col]
- set in_col [expr $_cur_col + $count]
+ _log_cur "Delete character ($count)" {
+ variable _cur_row
+ variable _cur_col
+ variable _chars
+ variable _cols
- while {$in_col < $_cols} {
- set _chars($out_col,$_cur_row) $_chars($in_col,$_cur_row)
- incr in_col
- incr out_col
- }
+ # Move all characters right of the cursor N positions left.
+ set out_col [expr $_cur_col]
+ set in_col [expr $_cur_col + $count]
- # Clear the rest of the line.
- _clear_in_line $out_col $_cols $_cur_row
+ while {$in_col < $_cols} {
+ set _chars($out_col,$_cur_row) $_chars($in_col,$_cur_row)
+ incr in_col
+ incr out_col
}
+
+ # Clear the rest of the line.
+ _clear_in_line $out_col $_cols $_cur_row
}
+}
- # Pan Down
- #
- # https://vt100.net/docs/vt510-rm/SU.html
- proc _csi_S {args} {
- set count [_default [lindex $args 0] 1]
+# Pan Down
+#
+# https://vt100.net/docs/vt510-rm/SU.html
+proc Term::_csi_S {args} {
+ set count [_default [lindex $args 0] 1]
- _log_cur "Pan Down ($count)" {
- variable _cur_col
- variable _cur_row
- variable _cols
- variable _rows
- variable _chars
+ _log_cur "Pan Down ($count)" {
+ variable _cur_col
+ variable _cur_row
+ variable _cols
+ variable _rows
+ variable _chars
- # The following code is written without consideration for
- # the scroll margins. At this time this comment was
- # written the tuiterm library doesn't support the scroll
- # margins. If/when that changes, then the following will
- # need to be updated.
+ # The following code is written without consideration for
+ # the scroll margins. At this time this comment was
+ # written the tuiterm library doesn't support the scroll
+ # margins. If/when that changes, then the following will
+ # need to be updated.
- set dy 0
- set y $count
+ set dy 0
+ set y $count
- while {$y < $_rows} {
- for {set x 0} {$x < $_cols} {incr x} {
- set _chars($x,$dy) $_chars($x,$y)
- }
- incr y 1
- incr dy 1
+ while {$y < $_rows} {
+ for {set x 0} {$x < $_cols} {incr x} {
+ set _chars($x,$dy) $_chars($x,$y)
}
-
- _clear_lines $dy $_rows
+ incr y 1
+ incr dy 1
}
+
+ _clear_lines $dy $_rows
}
+}
- # Pan Up
- #
- # https://vt100.net/docs/vt510-rm/SD.html
- proc _csi_T {args} {
- set count [_default [lindex $args 0] 1]
+# Pan Up
+#
+# https://vt100.net/docs/vt510-rm/SD.html
+proc Term::_csi_T {args} {
+ set count [_default [lindex $args 0] 1]
- _log_cur "Pan Up ($count)" {
- variable _cur_col
- variable _cur_row
- variable _cols
- variable _rows
- variable _chars
+ _log_cur "Pan Up ($count)" {
+ variable _cur_col
+ variable _cur_row
+ variable _cols
+ variable _rows
+ variable _chars
- # The following code is written without consideration for
- # the scroll margins. At this time this comment was
- # written the tuiterm library doesn't support the scroll
- # margins. If/when that changes, then the following will
- # need to be updated.
+ # The following code is written without consideration for
+ # the scroll margins. At this time this comment was
+ # written the tuiterm library doesn't support the scroll
+ # margins. If/when that changes, then the following will
+ # need to be updated.
- set y [expr $_rows - $count]
- set dy $_rows
+ set y [expr $_rows - $count]
+ set dy $_rows
- while {$dy >= $count} {
- for {set x 0} {$x < $_cols} {incr x} {
- set _chars($x,$dy) $_chars($x,$y)
- }
- incr y -1
- incr dy -1
+ while {$dy >= $count} {
+ for {set x 0} {$x < $_cols} {incr x} {
+ set _chars($x,$dy) $_chars($x,$y)
}
-
- _clear_lines 0 $count
+ incr y -1
+ incr dy -1
}
+
+ _clear_lines 0 $count
}
+}
- # Erase chars.
- #
- # https://vt100.net/docs/vt510-rm/ECH.html
- proc _csi_X {args} {
- set n [_default [lindex $args 0] 1]
+# Erase chars.
+#
+# https://vt100.net/docs/vt510-rm/ECH.html
+proc Term::_csi_X {args} {
+ set n [_default [lindex $args 0] 1]
- _log_cur "Erase chars ($n)" {
- # Erase characters but don't move cursor.
- variable _cur_col
- variable _cur_row
- variable _attrs
- variable _chars
+ _log_cur "Erase chars ($n)" {
+ # Erase characters but don't move cursor.
+ variable _cur_col
+ variable _cur_row
+ variable _attrs
+ variable _chars
- set lattr [array get _attrs]
- set x $_cur_col
- for {set i 0} {$i < $n} {incr i} {
- set _chars($x,$_cur_row) [list " " $lattr]
- incr x
- }
+ set lattr [array get _attrs]
+ set x $_cur_col
+ for {set i 0} {$i < $n} {incr i} {
+ set _chars($x,$_cur_row) [list " " $lattr]
+ incr x
}
}
+}
- # Cursor Backward Tabulation.
- #
- # https://vt100.net/docs/vt510-rm/CBT.html
- proc _csi_Z {args} {
- set n [_default [lindex $args 0] 1]
+# Cursor Backward Tabulation.
+#
+# https://vt100.net/docs/vt510-rm/CBT.html
+proc Term::_csi_Z {args} {
+ set n [_default [lindex $args 0] 1]
- _log_cur "Cursor Backward Tabulation ($n)" {
- variable _cur_col
+ _log_cur "Cursor Backward Tabulation ($n)" {
+ variable _cur_col
- set _cur_col [expr {max (int (($_cur_col - 1) / 8) * 8 - ($n - 1) * 8, 0)}]
- }
+ set _cur_col [expr {max (int (($_cur_col - 1) / 8) * 8 - ($n - 1) * 8, 0)}]
}
+}
- # Repeat.
- #
- # https://www.xfree86.org/current/ctlseqs.html (See `(REP)`)
- proc _csi_b {args} {
- set n [_default [lindex $args 0] 1]
+# Repeat.
+#
+# https://www.xfree86.org/current/ctlseqs.html (See `(REP)`)
+proc Term::_csi_b {args} {
+ set n [_default [lindex $args 0] 1]
- _log_cur "Repeat ($n)" {
- variable _last_char
+ _log_cur "Repeat ($n)" {
+ variable _last_char
- _insert [string repeat $_last_char $n]
- }
+ _insert [string repeat $_last_char $n]
}
+}
- # Vertical Line Position Absolute.
- #
- # https://vt100.net/docs/vt510-rm/VPA.html
- proc _csi_d {args} {
- set row [_default [lindex $args 0] 1]
+# Vertical Line Position Absolute.
+#
+# https://vt100.net/docs/vt510-rm/VPA.html
+proc Term::_csi_d {args} {
+ set row [_default [lindex $args 0] 1]
- _log_cur "Vertical Line Position Absolute ($row)" {
- variable _cur_row
- variable _rows
+ _log_cur "Vertical Line Position Absolute ($row)" {
+ variable _cur_row
+ variable _rows
- set _cur_row [expr min ($row - 1, $_rows - 1)]
- }
+ set _cur_row [expr min ($row - 1, $_rows - 1)]
}
+}
- # Reset the attributes in attributes array UPVAR_NAME to the default values.
- proc _reset_attrs { upvar_name } {
- upvar $upvar_name var
- array set var {
- intensity normal
- fg default
- bg default
- underline 0
- reverse 0
- invisible 0
- blinking 0
+# Set Mode (SM, CSI h)
+#
+# https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
+proc Term::_csi_h { args } {
+ foreach item $args {
+ switch -exact -- $item {
+ 4 {
+ # Insert Mode (IRM)
+ _log "ignored: insert mode"
+ }
+ default {
+ error unsupported
+ }
}
}
+}
- # Translate the color numbers as used in proc _csi_m to a name.
- proc _color_attr { n } {
- switch -exact -- $n {
- 0 {
- return black
+# Reset Mode (RM, CSI l)
+#
+# https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
+proc Term::_csi_l { args } {
+ foreach item $args {
+ switch -exact -- $item {
+ 4 {
+ # Replace Mode (IRM)
+ _log "ignored: replace mode"
+ }
+ default {
+ error unsupported
}
+ }
+ }
+}
+
+# Set Scrolling Region (DECSTBM, CSI Ps ; Ps r)
+#
+# https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
+proc Term::_csi_r { top bottom } {
+ _log "ignored: set scrolling region"
+}
+
+# Window manipulation (XTWINOPS, CSI Ps ; Ps ; Ps t)
+#
+# https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
+proc Term::_csi_t { arg1 arg2 arg3 } {
+ if { $arg1 == 22 && $arg2 == 0 && $arg3 == 0 } {
+ _log "ignored: Save xterm icon and window title on stack"
+ return
+ }
+
+ if { $arg1 == 23 && $arg2 == 0 && $arg3 == 0 } {
+ _log "ignored: Restore xterm icon and window title from stack"
+ return
+ }
+
+ error unsupported
+}
+
+# DECSET (CSI ? h)
+#
+# https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking
+proc Term::_csi_0x3f_h { args } {
+ foreach item $args {
+ switch -exact -- $item {
1 {
- return red
+ _log "ignored: Application Cursor Keys"
}
- 2 {
- return green
+ 7 {
+ _log "ignored: autowrap mode"
}
- 3 {
- return yellow
+ 1000 {
+ _log "ignored: Send Mouse X & Y on button press and release"
}
- 4 {
- return blue
+ 1006 {
+ _log "ignored: Enable SGR Mouse Mode"
}
- 5 {
- return magenta
+ 1049 {
+ _log "switch to alternate screen"
+ _set_alternate 1
}
- 6 {
- return cyan
+ default {
+ error unsupported
+ }
+ }
+ }
+}
+
+# DECRST (CSI ? l)
+#
+# https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Mouse-Tracking
+proc Term::_csi_0x3f_l { args } {
+ foreach item $args {
+ switch -exact -- $item {
+ 1 {
+ _log "ignored: Normal Cursor Keys"
}
7 {
- return white
+ _log "ignored: no autowrap mode"
+ }
+ 1000 {
+ _log "ignored: Don't send Mouse X & Y on button press and release"
+ }
+ 1006 {
+ _log "ignored: Disable SGR Mouse Mode"
+ }
+ 1049 {
+ _log "switch from alternate screen"
+ _set_alternate 0
+ }
+ default {
+ error "unsupported"
}
- default { error "unsupported color number: $n" }
}
}
+}
- # Select Graphic Rendition.
- #
- # https://vt100.net/docs/vt510-rm/SGR.html
- proc _csi_m {args} {
- if { [llength $args] == 0 } {
- # Apply default.
- set args [list 0]
+# Reset the attributes in attributes array UPVAR_NAME to the default values.
+proc Term::_reset_attrs { upvar_name } {
+ upvar $upvar_name var
+ array set var {
+ intensity normal
+ fg default
+ bg default
+ underline 0
+ reverse 0
+ invisible 0
+ blinking 0
+ }
+}
+
+# Translate the color numbers as used in proc _csi_m to a name.
+proc Term::_color_attr { n } {
+ switch -exact -- $n {
+ 0 {
+ return black
+ }
+ 1 {
+ return red
+ }
+ 2 {
+ return green
}
+ 3 {
+ return yellow
+ }
+ 4 {
+ return blue
+ }
+ 5 {
+ return magenta
+ }
+ 6 {
+ return cyan
+ }
+ 7 {
+ return white
+ }
+ default { error "unsupported color number: $n" }
+ }
+}
- _log_cur "Select Graphic Rendition ([join $args {, }])" {
- variable _attrs
+# Select Graphic Rendition.
+#
+# https://vt100.net/docs/vt510-rm/SGR.html
+proc Term::_csi_m {args} {
+ if { [llength $args] == 0 } {
+ # Apply default.
+ set args [list 0]
+ }
- foreach item $args {
- switch -exact -- $item {
- "" - 0 {
- _reset_attrs _attrs
- }
- 1 {
- set _attrs(intensity) bold
- }
- 2 {
- set _attrs(intensity) dim
- }
- 4 {
- set _attrs(underline) 1
- }
- 5 {
- set _attrs(blinking) 1
- }
- 7 {
- set _attrs(reverse) 1
- }
- 8 {
- set _attrs(invisible) 1
- }
- 22 {
- set _attrs(intensity) normal
- }
- 24 {
- set _attrs(underline) 0
- }
- 25 {
- set _attrs(blinking) 0
- }
- 27 {
- set _attrs(reverse) 0
- }
- 28 {
- set _attrs(invisible) 0
- }
- 30 - 31 - 32 - 33 - 34 - 35 - 36 - 37 {
- set _attrs(fg) [_color_attr [expr $item - 30]]
- }
- 39 {
- set _attrs(fg) default
- }
- 40 - 41 - 42 - 43 - 44 - 45 - 46 - 47 {
- set _attrs(bg) [_color_attr [expr $item - 40]]
- }
- 49 {
- set _attrs(bg) default
- }
+ _log_cur "Select Graphic Rendition ([join $args {, }])" {
+ variable _attrs
+
+ foreach item $args {
+ switch -exact -- $item {
+ "" - 0 {
+ _reset_attrs _attrs
+ }
+ 1 {
+ set _attrs(intensity) bold
+ }
+ 2 {
+ set _attrs(intensity) dim
+ }
+ 4 {
+ set _attrs(underline) 1
+ }
+ 5 {
+ set _attrs(blinking) 1
+ }
+ 7 {
+ set _attrs(reverse) 1
+ }
+ 8 {
+ set _attrs(invisible) 1
+ }
+ 22 {
+ set _attrs(intensity) normal
+ }
+ 24 {
+ set _attrs(underline) 0
+ }
+ 25 {
+ set _attrs(blinking) 0
+ }
+ 27 {
+ set _attrs(reverse) 0
+ }
+ 28 {
+ set _attrs(invisible) 0
+ }
+ 30 - 31 - 32 - 33 - 34 - 35 - 36 - 37 {
+ set _attrs(fg) [_color_attr [expr $item - 30]]
+ }
+ 39 {
+ set _attrs(fg) default
+ }
+ 40 - 41 - 42 - 43 - 44 - 45 - 46 - 47 {
+ set _attrs(bg) [_color_attr [expr $item - 40]]
+ }
+ 49 {
+ set _attrs(bg) default
}
}
}
}
+}
+
+# Request Terminal Parameters (DECREQTPARM)
+#
+# https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
+# https://vt100.net/docs/vt100-ug/chapter3.html
+proc Term::_csi_x {} {
+ # Ignore.
+}
+
+# Insert string at the cursor location.
+proc Term::_insert {str} {
+ _log_cur "Inserted string '$str'" {
+ _log "Inserting string '$str'"
- # Insert string at the cursor location.
- proc _insert {str} {
- _log_cur "Inserted string '$str'" {
- _log "Inserting string '$str'"
-
- variable _cur_col
- variable _cur_row
- variable _rows
- variable _cols
- variable _attrs
- variable _chars
- set lattr [array get _attrs]
- foreach char [split $str {}] {
- _log_cur " Inserted char '$char'" {
- set _chars($_cur_col,$_cur_row) [list $char $lattr]
- incr _cur_col
- if {$_cur_col >= $_cols} {
- set _cur_col 0
- incr _cur_row
- if {$_cur_row >= $_rows} {
- error "FIXME scroll"
- }
+ variable _cur_col
+ variable _cur_row
+ variable _rows
+ variable _cols
+ variable _attrs
+ variable _chars
+ set lattr [array get _attrs]
+ foreach char [split $str {}] {
+ _log_cur " Inserted char '$char'" {
+ set _chars($_cur_col,$_cur_row) [list $char $lattr]
+ incr _cur_col
+ if {$_cur_col >= $_cols} {
+ set _cur_col 0
+ incr _cur_row
+ if {$_cur_row >= $_rows} {
+ error "FIXME scroll"
}
}
}
}
+
+ variable _last_char
+ set _last_char [string index $str end]
}
+}
- # Move the cursor to the (0-based) COL and ROW positions.
- proc _move_cursor { col row } {
- variable _cols
- variable _rows
- variable _cur_col
- variable _cur_row
+# Move the cursor to the (0-based) COL and ROW positions.
+proc Term::_move_cursor { col row } {
+ variable _cols
+ variable _rows
+ variable _cur_col
+ variable _cur_row
- if { $col < 0 || $col >= $_cols } {
- error "_move_cursor: invalid col value: $col"
- }
+ if { $col < 0 || $col >= $_cols } {
+ error "_move_cursor: invalid col value: $col"
+ }
- if { $row < 0 || $row >= $_rows } {
- error "_move_cursor: invalid row value: $row"
- }
+ if { $row < 0 || $row >= $_rows } {
+ error "_move_cursor: invalid row value: $row"
+ }
- set _cur_col $col
- set _cur_row $row
- }
+ set _cur_col $col
+ set _cur_row $row
+}
- # Initialize.
- proc _setup {rows cols} {
- global stty_init
- set stty_init "rows $rows columns $cols"
+# Enable or disable alternate screen.
+proc Term::_set_alternate { enable } {
+ variable _alternate
+ if { $enable == $_alternate } {
+ return
+ }
+ set _alternate $enable
- variable _rows
- variable _cols
- variable _cur_col
- variable _cur_row
- variable _attrs
- variable _resize_count
+ variable _attrs
+ variable _chars
+ variable _cur_col
+ variable _cur_row
- set _rows $rows
- set _cols $cols
- set _cur_col 0
- set _cur_row 0
- set _resize_count 0
- _reset_attrs _attrs
-
- _clear_lines 0 $_rows
- }
-
- # Accept some output from gdb and update the screen.
- # Return 1 if successful, or 0 if a timeout occurred.
- proc accept_gdb_output { } {
- global expect_out
- gdb_expect {
- -re "^\[\x07\x08\x0a\x0d\]" {
- scan $expect_out(0,string) %c val
- set hexval [format "%02x" $val]
- _log "wait_for: _ctl_0x${hexval}"
- _ctl_0x${hexval}
- }
- -re "^\x1b(\[0-9a-zA-Z\])" {
- _log "wait_for: unsupported escape"
- error "unsupported escape"
- }
- -re "^\x1b\\\[(\[0-9;\]*)(\[a-zA-Z@`\])" {
- set cmd $expect_out(2,string)
- set params [split $expect_out(1,string) ";"]
- _log "wait_for: _csi_$cmd <<<$expect_out(1,string)>>>"
- eval _csi_$cmd $params
- }
- -re "^\[^\x07\x08\x0a\x0d\x1b\]+" {
- _insert $expect_out(0,string)
- variable _last_char
- set _last_char [string index $expect_out(0,string) end]
- }
+ variable _save_attrs
+ variable _save_chars
+ variable _save_cur_col
+ variable _save_cur_row
- timeout {
- # Assume a timeout means we somehow missed the
- # expected result, and carry on.
- warning "timeout in accept_gdb_output"
- dump_screen
- return 0
- }
- }
+ variable _alternate_setup
- return 1
+ if { $_alternate_setup } {
+ set tmp $_save_chars
+ }
+ set _save_chars [array get _chars]
+ if { $_alternate_setup } {
+ array set _chars $tmp
}
- # Print arg using "verbose -log" if DEBUG_TUI_MATCHING == 1.
- proc debug_tui_matching { arg } {
- set debug 0
- if { [info exists ::DEBUG_TUI_MATCHING] } {
- set debug $::DEBUG_TUI_MATCHING
- }
+ if { $_alternate_setup } {
+ set tmp $_save_attrs
+ }
+ set _save_attrs [array get _attrs]
+ if { $_alternate_setup } {
+ array set _attrs $tmp
+ }
- if { ! $debug } {
- return
- }
+ if { $_alternate_setup } {
+ set tmp $_save_cur_col
+ }
+ set _save_cur_col $_cur_col
+ if { $_alternate_setup } {
+ set _cur_col $tmp
+ }
- verbose -log "$arg"
+ if { $_alternate_setup } {
+ set tmp $_save_cur_row
+ }
+ set _save_cur_row $_cur_row
+ if { $_alternate_setup } {
+ set _cur_row $tmp
}
- # Accept some output from gdb and update the screen. WAIT_FOR is
- # a regexp matching the line to wait for. Return 0 on timeout, 1
- # on success.
- proc wait_for {wait_for} {
- global gdb_prompt
- variable _cur_col
- variable _cur_row
+ if { ! $_alternate_setup } {
+ variable _rows
+ variable _cols
+ _setup $_rows $_cols
+ set _alternate_setup 1
+ }
+}
- set fn "wait_for"
+# Initialize.
+proc Term::_setup {rows cols} {
+ global stty_init
+ set stty_init "rows $rows columns $cols"
- set prompt_wait_for "(^|\\|)$gdb_prompt \$"
- if { $wait_for == "" } {
- set wait_for $prompt_wait_for
- }
+ variable _rows
+ variable _cols
+ variable _cur_col
+ variable _cur_row
+ variable _attrs
+ variable _resize_count
- debug_tui_matching "$fn: regexp: '$wait_for'"
+ set _rows $rows
+ set _cols $cols
+ set _cur_col 0
+ set _cur_row 0
+ set _resize_count 0
+ _reset_attrs _attrs
- while 1 {
- if { [accept_gdb_output] == 0 } {
- return 0
- }
+ _clear_lines 0 $_rows
+}
- # If the cursor appears just after the prompt, return. It
- # isn't reliable to check this only after an insertion,
- # because curses may make "unusual" redrawing decisions.
- if {$wait_for == "$prompt_wait_for"} {
- set prev [get_line $_cur_row $_cur_col]
- } else {
- set prev [get_line $_cur_row]
- }
- if {[regexp -- $wait_for $prev]} {
- debug_tui_matching "$fn: match: '$prev'"
- if {$wait_for == "$prompt_wait_for"} {
- break
- }
- set wait_for $prompt_wait_for
- debug_tui_matching "$fn: regexp prompt: '$wait_for'"
- } else {
- debug_tui_matching "$fn: mismatch: '$prev'"
- }
+# Accept some output from gdb and update the screen.
+# Return 1 if successful, or 0 if a timeout occurred.
+proc Term::accept_gdb_output { {warn 1} } {
+ global expect_out
+
+ set ctls "\x07\x08\x0a\x0d"
+ set esc "\x1b"
+ set re_ctls "\[$ctls\]"
+ set re_others "\[^$esc$ctls\]"
+ set have_esc 0
+ gdb_expect {
+ -re ^$re_ctls {
+ scan $expect_out(0,string) %c val
+ set hexval [format "%02x" $val]
+ _log "wait_for: _ctl_0x${hexval}"
+ _ctl_0x${hexval}
+ }
+ -re "^$esc" {
+ _log "wait_for: ESC"
+ set have_esc 1
+ }
+ -re "^$re_others+" {
+ _insert $expect_out(0,string)
+ }
+
+ timeout {
+ # Assume a timeout means we somehow missed the
+ # expected result, and carry on.
+ warning "timeout in accept_gdb_output"
+ dump_screen
+ return 0
}
+ }
+ if { !$have_esc } {
return 1
}
- # Accept some output from gdb and update the screen. Wait for the screen
- # region X/Y/WIDTH/HEIGTH to matches REGEXP. Return 0 on timeout, 1 on
- # success.
- proc wait_for_region_contents {x y width height regexp} {
- while 1 {
- if { [accept_gdb_output] == 0 } {
- return 0
- }
+ set re_csi [string_to_regexp "\["]
+ set have_csi 0
+ gdb_expect {
+ -re "^(\[0-9a-zA-Z\])" {
+ _log "wait_for: unsupported escape"
+ error "unsupported escape"
+ }
+ -re "^(\[\\(\])(\[a-zA-Z\])" {
+ scan $expect_out(1,string) %c val
+ set hexval [format "%02x" $val]
+ set cmd $expect_out(2,string)
+ _esc_0x${hexval}_$cmd
+ }
+ -re "^(\[=>\])" {
+ scan $expect_out(1,string) %c val
+ set hexval [format "%02x" $val]
+ _esc_0x$hexval
+ }
+ -re "^$re_csi" {
+ _log "wait_for: CSI"
+ set have_csi 1
+ }
- if { [check_region_contents_p $x $y $width $height $regexp] } {
- break
+ timeout {
+ # Assume a timeout means we somehow missed the
+ # expected result, and carry on.
+ if { $warn } {
+ warning "timeout in accept_gdb_output following ESC"
+ dump_screen
}
+ _insert "^\["
+ return 0
}
+ }
+ if { !$have_csi } {
return 1
}
- # Setup the terminal with dimensions ROWSxCOLS, TERM=ansi, and execute
- # BODY.
- proc with_tuiterm {rows cols body} {
- global env stty_init
- variable _TERM
- save_vars {env(TERM) env(NO_COLOR) stty_init} {
- if { [ishost *-*-*bsd*] } {
- setenv TERM ansiw
- } else {
- setenv TERM ansi
+ set re_csi_prefix {[?]}
+ set re_csi_args {[0-9;]}
+ set re_csi_cmd {[a-zA-Z@`]}
+ gdb_expect {
+ -re "^($re_csi_cmd)" {
+ set cmd $expect_out(1,string)
+ _log "wait_for: _csi_$cmd"
+ _csi_$cmd
+ }
+ -re "^($re_csi_args*)($re_csi_cmd)" {
+ set params [split $expect_out(1,string) ";"]
+ set cmd $expect_out(2,string)
+ _log "wait_for: _csi_$cmd <<<$params>>>"
+ _csi_$cmd {*}$params
+ }
+ -re "^($re_csi_prefix?)($re_csi_args*)($re_csi_cmd)" {
+ set prefix $expect_out(1,string)
+ set params [split $expect_out(2,string) ";"]
+ set cmd $expect_out(3,string)
+ scan $prefix %c val
+ set hexval [format "%02x" $val]
+ _log "wait_for: _csi_0x${hexval}_$cmd <<<$expect_out(1,string)>>>"
+ _csi_0x${hexval}_$cmd {*}$params
+ }
+
+ timeout {
+ # Assume a timeout means we somehow missed the
+ # expected result, and carry on.
+ if { $warn } {
+ warning "timeout in accept_gdb_output following CSI"
+ dump_screen
}
- # Save active TERM variable.
- set Term::_TERM $env(TERM)
+ _insert "^\[\["
+ return 0
+ }
+ }
- setenv NO_COLOR ""
- _setup $rows $cols
+ return 1
+}
- uplevel $body
- }
+# Print arg using "verbose -log" if DEBUG_TUI_MATCHING == 1.
+proc Term::debug_tui_matching { arg } {
+ set debug 0
+ if { [info exists ::DEBUG_TUI_MATCHING] } {
+ set debug $::DEBUG_TUI_MATCHING
}
- # Like ::clean_restart, but ensures that gdb starts in an
- # environment where the TUI can work. ROWS and COLS are the size
- # of the terminal. EXECUTABLE, if given, is passed to
- # clean_restart.
- proc clean_restart {rows cols {executable {}}} {
- with_tuiterm $rows $cols {
- save_vars { ::GDBFLAGS } {
- # Make GDB not print the directory names. Use this setting to
- # remove the differences in test runs due to varying directory
- # names.
- append ::GDBFLAGS " -ex \"set filename-display basename\""
+ if { ! $debug } {
+ return
+ }
- if {$executable == ""} {
- ::clean_restart
- } else {
- ::clean_restart $executable
- }
- }
+ verbose -log "$arg"
+}
- ::gdb_test_no_output "set pagination off"
- }
+# Accept some output from gdb and update the screen. WAIT_FOR is
+# a regexp matching the line to wait for. Return 0 on timeout, 1
+# on success.
+proc Term::wait_for {wait_for} {
+ global gdb_prompt
+ variable _cur_col
+ variable _cur_row
+
+ set fn "wait_for"
+
+ set prompt_wait_for "(^|\\|)$gdb_prompt \$"
+ if { $wait_for == "" } {
+ set wait_for $prompt_wait_for
}
- # Generate prompt on TUIterm.
- proc gen_prompt {} {
- # Generate a prompt.
- send_gdb "echo\n"
+ debug_tui_matching "$fn: regexp: '$wait_for'"
+
+ while 1 {
+ if { [accept_gdb_output] == 0 } {
+ return 0
+ }
+
+ # If the cursor appears just after the prompt, return. It
+ # isn't reliable to check this only after an insertion,
+ # because curses may make "unusual" redrawing decisions.
+ if {$wait_for == "$prompt_wait_for"} {
+ set prev [get_line $_cur_row $_cur_col]
+ } else {
+ set prev [get_line $_cur_row]
+ }
+
+ if { ![regexp -- $wait_for $prev] } {
+ debug_tui_matching "$fn: mismatch: '$prev'"
+ continue
+ }
- # Drain the output before the prompt.
- gdb_expect {
- -re "echo\r\n" {
+ if {$wait_for == "$prompt_wait_for"} {
+ # We've detected that the cursor is just after the prompt.
+ # Now check that there's nothing else on the line.
+ set prev [get_line $_cur_row]
+ if { ![regexp -- "(^|\\|)$gdb_prompt +($|\\||\\+)" $prev] } {
+ debug_tui_matching "$fn: mismatch: '$prev'"
+ continue
}
}
- # Interpret prompt using TUIterm.
- wait_for ""
- }
+ debug_tui_matching "$fn: match: '$prev'"
- # Setup ready for starting the tui, but don't actually start it.
- # Returns 1 on success, 0 if TUI tests should be skipped.
- proc prepare_for_tui {} {
- if { [is_remote host] } {
- # In clean_restart, we're using "setenv TERM ansi", which has
- # effect on build. If we have [is_remote host] == 0, so
- # build == host, then it also has effect on host. But for
- # [is_remote host] == 1, it has no effect on host.
- return 0
+ if {$wait_for == "$prompt_wait_for"} {
+ # Matched the prompt, we're done.
+ break
}
- if {![allow_tui_tests]} {
+ # Now try to match the prompt.
+ set wait_for $prompt_wait_for
+ debug_tui_matching "$fn: regexp prompt: '$wait_for'"
+ }
+
+ return 1
+}
+
+# Accept some output from gdb and update the screen. Wait for the screen
+# region X/Y/WIDTH/HEIGTH to matches REGEXP. Return 0 on timeout, 1 on
+# success.
+proc Term::wait_for_region_contents {x y width height regexp} {
+ while 1 {
+ if { [accept_gdb_output] == 0 } {
return 0
}
- gdb_test_no_output "set tui border-kind ascii"
- gdb_test_no_output "maint set tui-resize-message on"
- return 1
+ if { [check_region_contents_p $x $y $width $height $regexp] } {
+ break
+ }
}
- # Start the TUI. Returns 1 on success, 0 if TUI tests should be
- # skipped.
- proc enter_tui {} {
- if {![prepare_for_tui]} {
+ return 1
+}
+
+# Accept some output from gdb and update the screen. Wait for the current
+# screen line to match REGEXP and cursor position POS, unless POS is empty.
+# Return 0 on timeout, 1 on success.
+proc Term::wait_for_line { regexp {pos ""} } {
+ variable _cur_row
+ variable _cur_col
+ variable _cols
+
+ while 1 {
+ if { [accept_gdb_output] == 0 } {
return 0
}
- command_no_prompt_prefix "tui enable"
- return 1
- }
+ if { ![check_region_contents_p 0 $_cur_row $_cols 1 $regexp] } {
+ continue
+ }
- # Send the command CMD to gdb, then wait for a gdb prompt to be
- # seen in the TUI. CMD should not end with a newline -- that will
- # be supplied by this function.
- proc command {cmd} {
- global gdb_prompt
- send_gdb "$cmd\n"
- set str [string_to_regexp $cmd]
- set str "(^|\\|)$gdb_prompt $str"
- wait_for $str
- }
-
- # As proc command, but don't wait for an initial prompt. This is used for
- # initial terminal commands, where there's no prompt yet.
- proc command_no_prompt_prefix {cmd} {
- gen_prompt
- command $cmd
- }
-
- # Apply the attribute list in ATTRS to attributes array UPVAR_NAME.
- # Return a string annotating the changed attributes.
- proc apply_attrs { upvar_name attrs } {
- set res ""
- upvar $upvar_name var
- foreach { attr val } $attrs {
- if { $var($attr) != $val } {
- append res "<$attr:$val>"
- set var($attr) $val
- }
+ if { $pos == "" || $_cur_col == $pos } {
+ break
}
+ }
+
+ return 1
+}
+
+# In BODY, when using Term::with_tuiterm, use TERM instead of the default.
- return $res
+proc Term::with_term { term body } {
+ save_vars { Term::_TERM } {
+ set Term::_TERM $term
+ uplevel $body
}
+}
- # Return the text of screen line N. Lines are 0-based. Start at column
- # X. If C is non-empty, stop before column C. Columns are also
- # zero-based. If ATTRS, annotate with attributes.
- proc get_string {n x c {attrs 0}} {
- variable _rows
- # This can happen during resizing, if the cursor seems to
- # temporarily be off-screen.
- if {$n >= $_rows} {
- return ""
+# Setup the terminal with dimensions ROWSxCOLS, TERM=ansi, and execute
+# BODY.
+proc Term::with_tuiterm {rows cols body} {
+ global env stty_init
+ variable _TERM
+ save_vars {env(TERM) env(NO_COLOR) stty_init} {
+ if { $Term::_TERM != "" } {
+ setenv TERM $Term::_TERM
+ } elseif { [ishost *-*-*bsd*] } {
+ setenv TERM ansiw
+ } else {
+ setenv TERM ansi
}
+ # Save active TERM variable.
+ set Term::_TERM $env(TERM)
- set result ""
- variable _cols
- variable _chars
- set c [_default $c $_cols]
- if { $attrs } {
- _reset_attrs line_attrs
- }
- while {$x < $c} {
- if { $attrs } {
- set char_attrs [lindex $_chars($x,$n) 1]
- append result [apply_attrs line_attrs $char_attrs]
+ setenv NO_COLOR ""
+ _setup $rows $cols
+
+ uplevel $body
+ }
+}
+
+# Like ::clean_restart, but ensures that gdb starts in an
+# environment where the TUI can work. ROWS and COLS are the size
+# of the terminal. EXECUTABLE, if given, is passed to
+# clean_restart.
+proc Term::clean_restart {rows cols {executable {}}} {
+ with_tuiterm $rows $cols {
+ save_vars { ::GDBFLAGS } {
+ # Make GDB not print the directory names. Use this setting to
+ # remove the differences in test runs due to varying directory
+ # names.
+ append ::GDBFLAGS " -ex \"set filename-display basename\""
+
+ if {$executable == ""} {
+ ::clean_restart
+ } else {
+ ::clean_restart $executable
}
- append result [lindex $_chars($x,$n) 0]
- incr x
}
- if { $attrs } {
- _reset_attrs zero_attrs
- set char_attrs [array get zero_attrs]
- append result [apply_attrs line_attrs $char_attrs]
- }
- return $result
- }
- # Return the text of screen line N. Lines are 0-based. Start at column
- # X. If C is non-empty, stop before column C. Columns are also
- # zero-based. Annotate with attributes.
- proc get_string_with_attrs { n x c } {
- return [get_string $n $x $c 1]
+ ::gdb_test_no_output "set pagination off"
}
+}
- # Return the text of screen line N. Lines are 0-based. If C is
- # non-empty, stop before column C. Columns are also zero-based. If
- # ATTRS, annotate with attributes.
- proc get_line_1 {n c attrs} {
- return [get_string $n 0 $c $attrs]
+# Generate prompt on TUIterm.
+proc Term::gen_prompt {} {
+ # Generate a prompt.
+ send_gdb "echo\n"
+
+ # Drain the output before the prompt.
+ gdb_expect {
+ -re "echo\r\n" {
+ }
}
- # Return the text of screen line N, without attributes. Lines are
- # 0-based. If C is given, stop before column C. Columns are also
- # zero-based.
- proc get_line {n {c ""} } {
- return [get_line_1 $n $c 0]
+ # Interpret prompt using TUIterm.
+ wait_for ""
+}
+
+# Setup ready for starting the tui, but don't actually start it.
+# Returns 1 on success, 0 if TUI tests should be skipped.
+proc Term::prepare_for_tui {} {
+ if { [is_remote host] } {
+ # In clean_restart, we're using "setenv TERM ansi", which has
+ # effect on build. If we have [is_remote host] == 0, so
+ # build == host, then it also has effect on host. But for
+ # [is_remote host] == 1, it has no effect on host.
+ return 0
}
- # As get_line, but annotate with attributes.
- proc get_line_with_attrs {n {c ""}} {
- return [get_line_1 $n $c 1]
+ if {![allow_tui_tests]} {
+ return 0
}
- # Get just the character at (X, Y).
- proc get_char {x y} {
- variable _chars
- return [lindex $_chars($x,$y) 0]
+ gdb_test_no_output "set tui border-kind ascii"
+ gdb_test_no_output "maint set tui-resize-message on"
+ # When matching GDB output using Term::wait_for, the number of
+ # matching attempts in wait_for can be influenced by CLI styling.
+ # Disable it by default to avoid this.
+ gdb_test_no_output "set style enabled off"
+ return 1
+}
+
+# Start the TUI. Returns 1 on success, 0 if TUI tests should be
+# skipped.
+proc Term::enter_tui {} {
+ if {![prepare_for_tui]} {
+ return 0
}
- # Get the entire screen as a string.
- proc get_all_lines {} {
- variable _rows
- variable _cols
- variable _chars
+ command_no_prompt_prefix "tui enable"
+ return 1
+}
- set result ""
- for {set y 0} {$y < $_rows} {incr y} {
- for {set x 0} {$x < $_cols} {incr x} {
- append result [lindex $_chars($x,$y) 0]
- }
- append result "\n"
+# Send the command CMD to gdb, then wait for a gdb prompt to be
+# seen in the TUI. CMD should not end with a newline -- that will
+# be supplied by this function.
+proc Term::command {cmd} {
+ global gdb_prompt
+ send_gdb "$cmd\n"
+ set str [string_to_regexp $cmd]
+ set str "(^|\\|)$gdb_prompt $str"
+ wait_for $str
+}
+
+# As proc command, but don't wait for an initial prompt. This is used for
+# initial terminal commands, where there's no prompt yet.
+proc Term::command_no_prompt_prefix {cmd} {
+ gen_prompt
+ command $cmd
+}
+
+# Apply the attribute list in ATTRS to attributes array UPVAR_NAME.
+# Return a string annotating the changed attributes.
+proc Term::apply_attrs { upvar_name attrs } {
+ set res ""
+ upvar $upvar_name var
+ foreach { attr val } $attrs {
+ if { $var($attr) != $val } {
+ append res "<$attr:$val>"
+ set var($attr) $val
}
+ }
- return $result
+ return $res
+}
+
+# Return the text of screen line N. Lines are 0-based. Start at column
+# X. If C is non-empty, stop before column C. Columns are also
+# zero-based. If ATTRS, annotate with attributes.
+proc Term::get_string {n x c {attrs 0}} {
+ variable _rows
+ # This can happen during resizing, if the cursor seems to
+ # temporarily be off-screen.
+ if {$n >= $_rows} {
+ return ""
}
- # Get the text just before the cursor.
- proc get_current_line {} {
- variable _cur_col
- variable _cur_row
- return [get_line $_cur_row $_cur_col]
+ set result ""
+ variable _cols
+ variable _chars
+ set c [_default $c $_cols]
+ if { $attrs } {
+ _reset_attrs line_attrs
+ }
+ while {$x < $c} {
+ if { $attrs } {
+ set char_attrs [lindex $_chars($x,$n) 1]
+ append result [apply_attrs line_attrs $char_attrs]
+ }
+ append result [lindex $_chars($x,$n) 0]
+ incr x
}
+ if { $attrs } {
+ _reset_attrs zero_attrs
+ set char_attrs [array get zero_attrs]
+ append result [apply_attrs line_attrs $char_attrs]
+ }
+ return $result
+}
- # Helper function for check_box. Returns empty string if the box
- # is found, description of why not otherwise.
- proc _check_box {x y width height} {
- set x2 [expr {$x + $width - 1}]
- set y2 [expr {$y + $height - 1}]
+# Return the text of screen line N. Lines are 0-based. Start at column
+# X. If C is non-empty, stop before column C. Columns are also
+# zero-based. Annotate with attributes.
+proc Term::get_string_with_attrs { n x c } {
+ return [get_string $n $x $c 1]
+}
- verbose -log "_check_box x=$x, y=$y, x2=$x2, y2=$y2, width=$width, height=$height"
+# Return the text of screen line N. Lines are 0-based. If C is
+# non-empty, stop before column C. Columns are also zero-based. If
+# ATTRS, annotate with attributes.
+proc Term::get_line_1 {n c attrs} {
+ return [get_string $n 0 $c $attrs]
+}
- set c [get_char $x $y]
- if {$c != "+"} {
- return "ul corner is $c, not +"
- }
+# Return the text of screen line N, without attributes. Lines are
+# 0-based. If C is given, stop before column C. Columns are also
+# zero-based.
+proc Term::get_line {n {c ""} } {
+ return [get_line_1 $n $c 0]
+}
- set c [get_char $x $y2]
- if {$c != "+"} {
- return "ll corner is $c, not +"
- }
+# As get_line, but annotate with attributes.
+proc Term::get_line_with_attrs {n {c ""}} {
+ return [get_line_1 $n $c 1]
+}
- set c [get_char $x2 $y]
- if {$c != "+"} {
- return "ur corner is $c, not +"
- }
+# Get just the character at (X, Y).
+proc Term::get_char {x y} {
+ variable _chars
+ return [lindex $_chars($x,$y) 0]
+}
- set c [get_char $x2 $y2]
- if {$c != "+"} {
- return "lr corner is $c, not +"
- }
+# Get the entire screen as a string.
+proc Term::get_all_lines {} {
+ variable _rows
+ variable _cols
+ variable _chars
- # Note we do not check the full horizonal borders of the box.
- # The top will contain a title, and the bottom may as well, if
- # it is overlapped by some other border. However, at most a
- # title should appear as '+-VERY LONG TITLE-+', so we can
- # check for the '+-' on the left, and '-+' on the right.
- set c [get_char [expr {$x + 1}] $y]
- if {$c != "-"} {
- return "ul title padding is $c, not -"
+ set result ""
+ for {set y 0} {$y < $_rows} {incr y} {
+ for {set x 0} {$x < $_cols} {incr x} {
+ append result [lindex $_chars($x,$y) 0]
}
+ append result "\n"
+ }
- set c [get_char [expr {$x2 - 1}] $y]
- if {$c != "-"} {
- return "ul title padding is $c, not -"
- }
+ return $result
+}
- # Now check the vertical borders.
- for {set i [expr {$y + 1}]} {$i < $y2 - 1} {incr i} {
- set c [get_char $x $i]
- if {$c != "|"} {
- return "left side $i is $c, not |"
- }
+# Get the text just before the cursor.
+proc Term::get_current_line {} {
+ variable _cur_col
+ variable _cur_row
+ return [get_line $_cur_row $_cur_col]
+}
- set c [get_char $x2 $i]
- if {$c != "|"} {
- return "right side $i is $c, not |"
- }
- }
+# Helper function for check_box. Returns empty string if the box
+# is found, description of why not otherwise.
+proc Term::_check_box {x y width height} {
+ set x2 [expr {$x + $width - 1}]
+ set y2 [expr {$y + $height - 1}]
- return ""
+ verbose -log "_check_box x=$x, y=$y, x2=$x2, y2=$y2, width=$width, height=$height"
+
+ set c [get_char $x $y]
+ if {$c != "+"} {
+ return "ul corner is $c, not +"
}
- # Check for a box at the given coordinates.
- proc check_box {test_name x y width height} {
- dump_box $x $y $width $height
- set why [_check_box $x $y $width $height]
- if {$why == ""} {
- pass $test_name
- } else {
- fail "$test_name ($why)"
- }
+ set c [get_char $x $y2]
+ if {$c != "+"} {
+ return "ll corner is $c, not +"
}
- # Wait until a box appears at the given coordinates.
- proc wait_for_box {test_name x y width height} {
- while 1 {
- if { [accept_gdb_output] == 0 } {
- return 0
- }
+ set c [get_char $x2 $y]
+ if {$c != "+"} {
+ return "ur corner is $c, not +"
+ }
- set why [_check_box $x $y $width $height]
- if {$why == ""} {
- pass $test_name
- break
- }
- }
+ set c [get_char $x2 $y2]
+ if {$c != "+"} {
+ return "lr corner is $c, not +"
}
- # Check whether the text contents of the terminal match the
- # regular expression. Note that text styling is not considered.
- proc check_contents {test_name regexp} {
- dump_screen
- set contents [get_all_lines]
- gdb_assert {[regexp -- $regexp $contents]} $test_name
+ # Note we do not check the full horizonal borders of the box.
+ # The top will contain a title, and the bottom may as well, if
+ # it is overlapped by some other border. However, at most a
+ # title should appear as '+-VERY LONG TITLE-+', so we can
+ # check for the '+-' on the left, and '-+' on the right.
+ set c [get_char [expr {$x + 1}] $y]
+ if {$c != "-"} {
+ return "ul title padding is $c, not -"
}
- # As check_contents, but check that the text contents of the terminal does
- # not match the regular expression.
- proc check_contents_not {test_name regexp} {
- dump_screen
- set contents [get_all_lines]
- gdb_assert {![regexp -- $regexp $contents]} $test_name
+ set c [get_char [expr {$x2 - 1}] $y]
+ if {$c != "-"} {
+ return "ul title padding is $c, not -"
}
- # Get the region of the screen described by X, Y, WIDTH, and
- # HEIGHT, and separate the lines using SEP. If ATTRS is true then
- # include attribute information in the output.
- proc get_region { x y width height sep { attrs false } } {
- variable _chars
+ # Now check the vertical borders.
+ for {set i [expr {$y + 1}]} {$i < $y2 - 1} {incr i} {
+ set c [get_char $x $i]
+ if {$c != "|"} {
+ return "left side $i is $c, not |"
+ }
- if { $attrs } {
- _reset_attrs region_attrs
+ set c [get_char $x2 $i]
+ if {$c != "|"} {
+ return "right side $i is $c, not |"
}
+ }
- # Grab the contents of the box, join each line together
- # using $sep.
- set result ""
- for {set yy $y} {$yy < [expr {$y + $height}]} {incr yy} {
- if {$yy > $y} {
- # Add the end of line sequence only if this isn't the
- # first line.
- append result $sep
- }
- for {set xx $x} {$xx < [expr {$x + $width}]} {incr xx} {
- if { $attrs } {
- set char_attrs [lindex $_chars($xx,$yy) 1]
- append result [apply_attrs region_attrs $char_attrs]
- }
+ return ""
+}
- append result [get_char $xx $yy]
- }
+# Check for a box at the given coordinates.
+proc Term::check_box {test_name x y width height} {
+ dump_box $x $y $width $height
+ set why [_check_box $x $y $width $height]
+ if {$why == ""} {
+ pass $test_name
+ } else {
+ fail "$test_name ($why)"
+ }
+}
+
+# Wait until a box appears at the given coordinates.
+proc Term::wait_for_box {test_name x y width height} {
+ while 1 {
+ if { [accept_gdb_output] == 0 } {
+ return 0
}
- if { $attrs } {
- _reset_attrs zero_attrs
- set char_attrs [array get zero_attrs]
- append result [apply_attrs region_attrs $char_attrs]
+
+ set why [_check_box $x $y $width $height]
+ if {$why == ""} {
+ pass $test_name
+ break
}
- return $result
}
+}
- # Check that the region of the screen described by X, Y, WIDTH,
- # and HEIGHT match REGEXP. This is like check_contents except
- # only part of the screen is checked. This can be used to check
- # the contents within a box (though check_box_contents is a better
- # choice for boxes with a border). Return 1 if check succeeded.
- proc check_region_contents_p { x y width height regexp } {
- variable _chars
- dump_box $x $y $width $height
+# Check whether the text contents of the terminal match the
+# regular expression. Note that text styling is not considered.
+proc Term::check_contents {test_name regexp} {
+ dump_screen
+ set contents [get_all_lines]
+ gdb_assert {[regexp -- $regexp $contents]} $test_name
+}
- # Now grab the contents of the box, join each line together
- # with a '\r\n' sequence and match against REGEXP.
- set result [get_region $x $y $width $height "\r\n"]
- return [regexp -- $regexp $result]
- }
+# As check_contents, but check that the text contents of the terminal does
+# not match the regular expression.
+proc Term::check_contents_not {test_name regexp} {
+ dump_screen
+ set contents [get_all_lines]
+ gdb_assert {![regexp -- $regexp $contents]} $test_name
+}
- # Check that the region of the screen described by X, Y, WIDTH,
- # and HEIGHT match REGEXP. As check_region_contents_p, but produce
- # a pass/fail message.
- proc check_region_contents { test_name x y width height regexp } {
- set ok [check_region_contents_p $x $y $width $height $regexp]
- gdb_assert {$ok} $test_name
- }
+# Get the region of the screen described by X, Y, WIDTH, and
+# HEIGHT, and separate the lines using SEP. If ATTRS is true then
+# include attribute information in the output.
+proc Term::get_region { x y width height sep { attrs false } } {
+ variable _chars
- # Check the contents of a box on the screen. This is a little
- # like check_contents, but doesn't check the whole screen
- # contents, only the contents of a single box. This procedure
- # includes (effectively) a call to check_box to ensure there is a
- # box where expected, if there is then the contents of the box are
- # matched against REGEXP.
- proc check_box_contents {test_name x y width height regexp} {
- variable _chars
+ if { $attrs } {
+ _reset_attrs region_attrs
+ }
- dump_box $x $y $width $height
- set why [_check_box $x $y $width $height]
- if {$why != ""} {
- fail "$test_name (box check: $why)"
- return
+ # Grab the contents of the box, join each line together
+ # using $sep.
+ set result ""
+ for {set yy $y} {$yy < $y + $height} {incr yy} {
+ if {$yy > $y} {
+ # Add the end of line sequence only if this isn't the
+ # first line.
+ append result $sep
}
+ for {set xx $x} {$xx < $x + $width} {incr xx} {
+ if { $attrs } {
+ set char_attrs [lindex $_chars($xx,$yy) 1]
+ append result [apply_attrs region_attrs $char_attrs]
+ }
- check_region_contents $test_name [expr {$x + 1}] [expr {$y + 1}] \
- [expr {$width - 2}] [expr {$height - 2}] $regexp
+ append result [get_char $xx $yy]
+ }
+ }
+ if { $attrs } {
+ _reset_attrs zero_attrs
+ set char_attrs [array get zero_attrs]
+ append result [apply_attrs region_attrs $char_attrs]
}
+ return $result
+}
- # A debugging function to dump the current screen, with line
- # numbers. If ATTRS, annotate with attributes.
- proc dump_screen { {attrs 0} } {
- variable _rows
- variable _cols
- variable _cur_row
- variable _cur_col
+# Check that the region of the screen described by X, Y, WIDTH,
+# and HEIGHT match REGEXP. This is like check_contents except
+# only part of the screen is checked. This can be used to check
+# the contents within a box (though check_box_contents is a better
+# choice for boxes with a border). Return 1 if check succeeded.
+proc Term::check_region_contents_p { x y width height regexp } {
+ variable _chars
+ dump_box $x $y $width $height
- verbose -log "Screen Dump (size $_cols columns x $_rows rows, cursor at column $_cur_col, row $_cur_row):"
+ # Now grab the contents of the box, join each line together
+ # with a '\r\n' sequence and match against REGEXP.
+ set result [get_region $x $y $width $height "\r\n"]
+ return [regexp -- $regexp $result]
+}
- for {set y 0} {$y < $_rows} {incr y} {
- set fmt [format %5d $y]
- verbose -log "$fmt [get_line_1 $y {} $attrs]"
- }
+# Check that the region of the screen described by X, Y, WIDTH,
+# and HEIGHT match REGEXP. As check_region_contents_p, but produce
+# a pass/fail message.
+proc Term::check_region_contents { test_name x y width height regexp } {
+ set ok [check_region_contents_p $x $y $width $height $regexp]
+ gdb_assert {$ok} $test_name
+}
+
+# Check the contents of a box on the screen. This is a little
+# like check_contents, but doesn't check the whole screen
+# contents, only the contents of a single box. This procedure
+# includes (effectively) a call to check_box to ensure there is a
+# box where expected, if there is then the contents of the box are
+# matched against REGEXP.
+proc Term::check_box_contents {test_name x y width height regexp} {
+ variable _chars
+
+ dump_box $x $y $width $height
+ set why [_check_box $x $y $width $height]
+ if {$why != ""} {
+ fail "$test_name (box check: $why)"
+ return
}
- # As dump_screen, but with attributes annotation.
- proc dump_screen_with_attrs {} {
- return [dump_screen 1]
+ check_region_contents $test_name [expr {$x + 1}] [expr {$y + 1}] \
+ [expr {$width - 2}] [expr {$height - 2}] $regexp
+}
+
+# A debugging function to dump the current screen, with line
+# numbers. If ATTRS, annotate with attributes.
+proc Term::dump_screen { {attrs 0} } {
+ variable _rows
+ variable _cols
+ variable _cur_row
+ variable _cur_col
+
+ verbose -log "Screen Dump (size $_cols columns x $_rows rows, cursor at column $_cur_col, row $_cur_row):"
+
+ for {set y 0} {$y < $_rows} {incr y} {
+ set fmt [format %5d $y]
+ verbose -log "$fmt [get_line_1 $y {} $attrs]"
}
+}
- # A debugging function to dump a box from the current screen, with line
- # numbers.
- proc dump_box { x y width height } {
- verbose -log "Box Dump ($width x $height) @ ($x, $y):"
- set region [get_region $x $y $width $height "\n"]
- set lines [split $region "\n"]
- set nr $y
- foreach line $lines {
- set fmt [format %5d $nr]
- verbose -log "$fmt $line"
- incr nr
- }
+# As dump_screen, but with attributes annotation.
+proc Term::dump_screen_with_attrs {} {
+ return [dump_screen 1]
+}
+
+# A debugging function to dump a box from the current screen, with line
+# numbers.
+proc Term::dump_box { x y width height } {
+ verbose -log "Box Dump ($width x $height) @ ($x, $y):"
+ set region [get_region $x $y $width $height "\n"]
+ set lines [split $region "\n"]
+ set nr $y
+ foreach line $lines {
+ set fmt [format %5d $nr]
+ verbose -log "$fmt $line"
+ incr nr
}
+}
- # Resize the terminal.
- proc _do_resize {rows cols} {
- variable _chars
- variable _rows
- variable _cols
+# Resize the terminal.
+proc Term::_do_resize {rows cols} {
+ variable _chars
+ variable _rows
+ variable _cols
- set old_rows [expr {min ($_rows, $rows)}]
- set old_cols [expr {min ($_cols, $cols)}]
+ set old_rows [expr {min ($_rows, $rows)}]
+ set old_cols [expr {min ($_cols, $cols)}]
- # Copy locally.
- array set local_chars [array get _chars]
- unset _chars
+ # Copy locally.
+ array set local_chars [array get _chars]
+ unset _chars
- set _rows $rows
- set _cols $cols
- _clear_lines 0 $_rows
+ set _rows $rows
+ set _cols $cols
+ _clear_lines 0 $_rows
- for {set x 0} {$x < $old_cols} {incr x} {
- for {set y 0} {$y < $old_rows} {incr y} {
- set _chars($x,$y) $local_chars($x,$y)
- }
+ for {set x 0} {$x < $old_cols} {incr x} {
+ for {set y 0} {$y < $old_rows} {incr y} {
+ set _chars($x,$y) $local_chars($x,$y)
}
}
+}
- proc resize {rows cols {wait_for_msg 1}} {
- variable _rows
- variable _cols
- variable _resize_count
+proc Term::resize {rows cols {wait_for_msg 1}} {
+ variable _rows
+ variable _cols
+ variable _resize_count
- # expect handles each argument to stty separately. This means
- # that gdb will see SIGWINCH twice. Rather than rely on this
- # behavior (which, after all, could be changed), we make it
- # explicit here. This also simplifies waiting for the redraw.
- _do_resize $rows $_cols
- stty rows $_rows < $::gdb_tty_name
- if { $wait_for_msg } {
- wait_for "@@ resize done $_resize_count, size = ${_cols}x${rows}"
- }
- incr _resize_count
- _do_resize $_rows $cols
- stty columns $_cols < $::gdb_tty_name
- if { $wait_for_msg } {
- wait_for "@@ resize done $_resize_count, size = ${_cols}x${rows}"
- }
- incr _resize_count
- }
+ # expect handles each argument to stty separately. This means
+ # that gdb will see SIGWINCH twice. Rather than rely on this
+ # behavior (which, after all, could be changed), we make it
+ # explicit here. This also simplifies waiting for the redraw.
+ _do_resize $rows $_cols
+ stty rows $_rows < $::gdb_tty_name
+ if { $wait_for_msg } {
+ wait_for "@@ resize done $_resize_count, size = ${_cols}x${rows}"
+ }
+ incr _resize_count
+ _do_resize $_rows $cols
+ stty columns $_cols < $::gdb_tty_name
+ if { $wait_for_msg } {
+ wait_for "@@ resize done $_resize_count, size = ${_cols}x${rows}"
+ }
+ incr _resize_count
}
diff --git a/gdb/thread.c b/gdb/thread.c
index 920d8dc..b6c19f9 100644
--- a/gdb/thread.c
+++ b/gdb/thread.c
@@ -33,7 +33,6 @@
#include "regcache.h"
#include "btrace.h"
-#include <ctype.h>
#include <sys/types.h>
#include <signal.h>
#include "ui-out.h"
@@ -1808,7 +1807,7 @@ thread_apply_command_completer (cmd_list_element *ignore,
/* Check if we're past a valid thread ID list already. */
if (parser.finished ()
- && cmd > text && !isspace (cmd[-1]))
+ && cmd > text && !c_isspace (cmd[-1]))
return;
/* We're past the thread ID list, advance word point. */
@@ -1871,7 +1870,7 @@ thread_apply_command (const char *tidlist, int from_tty)
if (*cmd == '\0')
error (_("Please specify a command following the thread ID list"));
- if (tidlist == cmd || isdigit (cmd[0]))
+ if (tidlist == cmd || c_isdigit (cmd[0]))
invalid_thread_id_error (cmd);
scoped_restore_current_thread restore_thread;
diff --git a/gdb/tic6x-tdep.c b/gdb/tic6x-tdep.c
index 2ab8dac..56d3098 100644
--- a/gdb/tic6x-tdep.c
+++ b/gdb/tic6x-tdep.c
@@ -1267,7 +1267,7 @@ tic6x_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
dwarf2_frame_set_init_reg (gdbarch, tic6x_dwarf2_frame_init_reg);
/* Single stepping. */
- set_gdbarch_software_single_step (gdbarch, tic6x_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, tic6x_software_single_step);
/* Call dummy code. */
set_gdbarch_frame_align (gdbarch, tic6x_frame_align);
diff --git a/gdb/tid-parse.c b/gdb/tid-parse.c
index 4e45798..9f79fba 100644
--- a/gdb/tid-parse.c
+++ b/gdb/tid-parse.c
@@ -20,7 +20,6 @@
#include "tid-parse.h"
#include "inferior.h"
#include "gdbthread.h"
-#include <ctype.h>
/* See tid-parse.h. */
@@ -184,7 +183,7 @@ tid_range_parser::finished () const
or we are not in a range and not in front of an integer, negative
integer, convenience var or negative convenience var. */
return (*m_cur_tok == '\0'
- || !(isdigit (*m_cur_tok)
+ || !(c_isdigit (*m_cur_tok)
|| *m_cur_tok == '$'
|| *m_cur_tok == '*'));
case STATE_THREAD_RANGE:
@@ -261,7 +260,7 @@ tid_range_parser::get_tid_or_range (int *inf_num,
m_qualified = true;
p = dot + 1;
- if (isspace (*p))
+ if (c_isspace (*p))
return false;
}
else
@@ -272,7 +271,7 @@ tid_range_parser::get_tid_or_range (int *inf_num,
}
m_range_parser.init (p);
- if (p[0] == '*' && (p[1] == '\0' || isspace (p[1])))
+ if (p[0] == '*' && (p[1] == '\0' || c_isspace (p[1])))
{
/* Setup the number range parser to return numbers in the
whole [1,INT_MAX] range. */
diff --git a/gdb/top.c b/gdb/top.c
index b097683..f5b9fdc 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -69,7 +69,6 @@
#include "event-top.h"
#include <sys/stat.h>
-#include <ctype.h>
#include "ui-out.h"
#include "cli-out.h"
#include "tracepoint.h"
@@ -1312,7 +1311,7 @@ print_gdb_version (struct ui_file *stream, bool interactive)
/* Second line is a copyright notice. */
gdb_printf (stream,
- "Copyright (C) 2024 Free Software Foundation, Inc.\n");
+ "Copyright (C) 2025 Free Software Foundation, Inc.\n");
/* Following the copyright is a brief statement that the program is
free software, that users are free to copy and change it on
@@ -1596,6 +1595,11 @@ This GDB was configured as follows:\n\
--with-system-gdbinit-dir=%s%s\n\
"), SYSTEM_GDBINIT_DIR, SYSTEM_GDBINIT_DIR_RELOCATABLE ? " (relocatable)" : "");
+#ifdef SUPPORTED_BINARY_FILE_FORMATS
+ gdb_printf (stream, _("\
+ --enable-binary-file-formats=%s\n"), SUPPORTED_BINARY_FILE_FORMATS);
+#endif
+
/* We assume "relocatable" will be printed at least once, thus we always
print this text. It's a reasonably safe assumption for now. */
gdb_printf (stream, _("\n\
diff --git a/gdb/tracectf.c b/gdb/tracectf.c
index 0f80d08..c2231ff 100644
--- a/gdb/tracectf.c
+++ b/gdb/tracectf.c
@@ -28,7 +28,6 @@
#include "inferior.h"
#include "gdbthread.h"
#include "tracefile.h"
-#include <ctype.h>
#include <algorithm>
#include "gdbsupport/filestuff.h"
#include "gdbarch.h"
diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c
index c0f1eae..879e4a6 100644
--- a/gdb/tracepoint.c
+++ b/gdb/tracepoint.c
@@ -208,16 +208,16 @@ set_tracepoint_num (int num)
static void
set_traceframe_context (const frame_info_ptr &trace_frame)
{
- CORE_ADDR trace_pc;
+ std::optional<CORE_ADDR> trace_pc;
struct symbol *traceframe_fun;
symtab_and_line traceframe_sal;
/* Save as globals for internal use. */
if (trace_frame != NULL
- && get_frame_pc_if_available (trace_frame, &trace_pc))
+ && (trace_pc = get_frame_pc_if_available (trace_frame)))
{
- traceframe_sal = find_pc_line (trace_pc, 0);
- traceframe_fun = find_pc_function (trace_pc);
+ traceframe_sal = find_pc_line (*trace_pc, 0);
+ traceframe_fun = find_pc_function (*trace_pc);
/* Save linenumber as "$trace_line", a debugger variable visible to
users. */
@@ -308,12 +308,12 @@ validate_trace_state_variable_name (const char *name)
/* All digits in the name is reserved for value history
references. */
- for (p = name; isdigit (*p); p++)
+ for (p = name; c_isdigit (*p); p++)
;
if (*p == '\0')
error (_("$%s is not a valid trace state variable name"), name);
- for (p = name; isalnum (*p) || *p == '_'; p++)
+ for (p = name; c_isalnum (*p) || *p == '_'; p++)
;
if (*p != '\0')
error (_("$%s is not a valid trace state variable name"), name);
@@ -339,7 +339,7 @@ trace_variable_command (const char *args, int from_tty)
error (_("Name of trace variable should start with '$'"));
name_start = p;
- while (isalnum (*p) || *p == '_')
+ while (c_isalnum (*p) || *p == '_')
p++;
std::string name (name_start, p - name_start);
@@ -689,14 +689,14 @@ validate_actionline (const char *line, tracepoint *t)
(exp->op.get ()));
sym = vvop->get_symbol ();
- if (sym->aclass () == LOC_CONST)
+ if (sym->loc_class () == LOC_CONST)
{
error (_("constant `%s' (value %s) "
"will not be collected."),
sym->print_name (),
plongest (sym->value_longest ()));
}
- else if (sym->aclass () == LOC_OPTIMIZED_OUT)
+ else if (sym->loc_class () == LOC_OPTIMIZED_OUT)
{
error (_("`%s' is optimized away "
"and cannot be collected."),
@@ -916,11 +916,11 @@ collection_list::collect_symbol (struct symbol *sym,
int treat_as_expr = 0;
len = check_typedef (sym->type ())->length ();
- switch (sym->aclass ())
+ switch (sym->loc_class ())
{
default:
gdb_printf ("%s: don't know symbol class %d\n",
- sym->print_name (), sym->aclass ());
+ sym->print_name (), sym->loc_class ());
break;
case LOC_CONST:
gdb_printf ("constant %s (value %s) will not be collected.\n",
@@ -2508,12 +2508,12 @@ info_scope_command (const char *args_in, int from_tty)
gdb_stdout);
else
{
- switch (sym->aclass ())
+ switch (sym->loc_class ())
{
default:
case LOC_UNDEF: /* Messed up symbol? */
gdb_printf ("a bogus symbol, class %d.\n",
- sym->aclass ());
+ sym->loc_class ());
count--; /* Don't count this one. */
continue;
case LOC_CONST:
diff --git a/gdb/tui/tui-disasm.c b/gdb/tui/tui-disasm.c
index 627f71c..07453b4 100644
--- a/gdb/tui/tui-disasm.c
+++ b/gdb/tui/tui-disasm.c
@@ -100,6 +100,9 @@ tui_disassemble (struct gdbarch *gdbarch,
{
bool term_out = disassembler_styling && gdb_stdout->can_emit_style_escape ();
string_file gdb_dis_out (term_out);
+ struct ui_file *stream = (addr_size == nullptr
+ ? (decltype (stream))&null_stream
+ : (decltype (stream))&gdb_dis_out);
/* Must start with an empty list. */
asm_lines.clear ();
@@ -108,11 +111,13 @@ tui_disassemble (struct gdbarch *gdbarch,
for (int i = 0; i < count; ++i)
{
tui_asm_line tal;
- CORE_ADDR orig_pc = pc;
+
+ /* Save the instruction address. */
+ tal.addr = pc;
try
{
- pc = pc + gdb_print_insn (gdbarch, pc, &gdb_dis_out, NULL);
+ pc += gdb_print_insn (gdbarch, pc, stream, NULL);
}
catch (const gdb_exception_error &except)
{
@@ -124,25 +129,24 @@ tui_disassemble (struct gdbarch *gdbarch,
return pc;
}
+ /* If that's all we need, continue. */
+ if (addr_size == nullptr)
+ {
+ asm_lines.push_back (std::move (tal));
+ continue;
+ }
+
/* Capture the disassembled instruction. */
tal.insn = gdb_dis_out.release ();
/* And capture the address the instruction is at. */
- tal.addr = orig_pc;
- print_address (gdbarch, orig_pc, &gdb_dis_out);
+ print_address (gdbarch, tal.addr, &gdb_dis_out);
tal.addr_string = gdb_dis_out.release ();
+ tal.addr_size = (term_out
+ ? len_without_escapes (tal.addr_string)
+ : tal.addr_string.size ());
- if (addr_size != nullptr)
- {
- size_t new_size;
-
- if (term_out)
- new_size = len_without_escapes (tal.addr_string);
- else
- new_size = tal.addr_string.size ();
- *addr_size = std::max (*addr_size, new_size);
- tal.addr_size = new_size;
- }
+ *addr_size = std::max (*addr_size, tal.addr_size);
asm_lines.push_back (std::move (tal));
}
diff --git a/gdb/tui/tui-io.c b/gdb/tui/tui-io.c
index c97e8fd..84cad93 100644
--- a/gdb/tui/tui-io.c
+++ b/gdb/tui/tui-io.c
@@ -319,7 +319,9 @@ tui_apply_style (WINDOW *w, ui_file_style style)
wattron (w, A_NORMAL);
wattroff (w, A_BOLD);
wattroff (w, A_DIM);
+#ifdef A_ITALIC
wattroff (w, A_ITALIC);
+#endif
wattroff (w, A_UNDERLINE);
wattroff (w, A_REVERSE);
if (last_color_pair != -1)
@@ -368,8 +370,10 @@ tui_apply_style (WINDOW *w, ui_file_style style)
gdb_assert_not_reached ("invalid intensity");
}
+#ifdef A_ITALIC
if (style.is_italic ())
wattron (w, A_ITALIC);
+#endif
if (style.is_underline ())
wattron (w, A_UNDERLINE);
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index 558055d..95d20fb 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -37,7 +37,6 @@
#include "tui/tui-layout.h"
#include "tui/tui-source.h"
#include "gdb_curses.h"
-#include "gdbsupport/gdb-safe-ctype.h"
/* The layouts. */
static std::vector<std::unique_ptr<tui_layout_split>> layouts;
@@ -381,14 +380,14 @@ tui_register_window (const char *name, window_factory &&factory)
for (const char &c : name_copy)
{
- if (ISSPACE (c))
+ if (c_isspace (c))
error (_("invalid whitespace character in window name"));
- if (!ISALNUM (c) && strchr ("-_.", c) == nullptr)
+ if (!c_isalnum (c) && strchr ("-_.", c) == nullptr)
error (_("invalid character '%c' in window name"), c);
}
- if (!ISALPHA (name_copy[0]))
+ if (!c_isalpha (name_copy[0]))
error (_("window name must start with a letter, not '%c'"), name_copy[0]);
/* We already check above for all the builtin window names. If we get
diff --git a/gdb/tui/tui-status.c b/gdb/tui/tui-status.c
index c2d3873..1e09975 100644
--- a/gdb/tui/tui-status.c
+++ b/gdb/tui/tui-status.c
@@ -271,10 +271,14 @@ tui_show_frame_info (const frame_info_ptr &fi)
symtab_and_line sal = find_frame_sal (fi);
const char *func_name;
+ std::optional<CORE_ADDR> tmp_pc = get_frame_pc_if_available (fi);
/* find_frame_sal does not always set PC, but we want to ensure
that it is available in the SAL. */
- if (get_frame_pc_if_available (fi, &sal.pc))
- func_name = tui_get_function_from_frame (fi);
+ if (tmp_pc.has_value ())
+ {
+ sal.pc = *tmp_pc;
+ func_name = tui_get_function_from_frame (fi);
+ }
else
func_name = _("<unavailable>");
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index d4fbbf1..b411d07 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -45,7 +45,6 @@
#include "tui/tui-win.h"
#include "gdb_curses.h"
-#include <ctype.h>
#include "readline/readline.h"
#include <signal.h>
#include <string_view>
@@ -1041,7 +1040,7 @@ parse_scrolling_args (const char *arg,
/* Process the number of lines to scroll. */
std::string copy = arg;
buf_ptr = &copy[0];
- if (isdigit (*buf_ptr))
+ if (c_isdigit (*buf_ptr))
{
char *num_str;
diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c
index a545c48..2fe4914 100644
--- a/gdb/tui/tui-winsource.c
+++ b/gdb/tui/tui-winsource.c
@@ -26,7 +26,6 @@
#include "value.h"
#include "source.h"
#include "objfiles.h"
-#include "gdbsupport/gdb-safe-ctype.h"
#include "tui/tui.h"
#include "tui/tui-data.h"
@@ -109,7 +108,7 @@ tui_copy_source_line (const char **ptr, int *length)
}
else if (c == '\t')
process_tab ();
- else if (ISCNTRL (c))
+ else if (c_iscntrl (c))
{
result.push_back ('^');
result.push_back (c + 0100);
@@ -461,7 +460,9 @@ tui_source_window_base::rerender ()
/* find_frame_sal does not always set SAL.PC, but we want to ensure
that it is available in the SAL before updating the window. */
- get_frame_pc_if_available (frame, &sal.pc);
+ std::optional<CORE_ADDR> tmp_pc = get_frame_pc_if_available (frame);
+ if (tmp_pc.has_value ())
+ sal.pc = *tmp_pc;
maybe_update (get_frame_arch (frame), sal);
update_exec_info (false);
diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c
index 5883d6c..01aee2f 100644
--- a/gdb/tui/tui.c
+++ b/gdb/tui/tui.c
@@ -125,6 +125,19 @@ tui_rl_switch_mode (int notused1, int notused2)
}
else
{
+ /* If we type "foo", entering it into the readline buffer
+
+ (gdb) foo
+ ^
+ and then switch to TUI and back, we may get back
+
+ (gdb) foo
+ ^
+ which is confusing because "foo" is no longer part of the
+ readline buffer. Fix this by clearing it before switching to
+ TUI. */
+ rl_clear_visible_line ();
+
/* If tui_enable throws, we'll re-prep below. */
rl_deprep_terminal ();
tui_enable ();
diff --git a/gdb/type-stack.c b/gdb/type-stack.c
index fc12e5e..b9266b8 100644
--- a/gdb/type-stack.c
+++ b/gdb/type-stack.c
@@ -20,7 +20,6 @@
#include "type-stack.h"
#include "gdbtypes.h"
-#include "parser-defs.h"
/* See type-stack.h. */
@@ -51,7 +50,7 @@ type_stack::insert (enum type_pieces tp)
/* See type-stack.h. */
void
-type_stack::insert (struct expr_builder *pstate, const char *string)
+type_stack::insert (struct gdbarch *gdbarch, const char *string)
{
union type_stack_elt element;
int slot;
@@ -67,8 +66,7 @@ type_stack::insert (struct expr_builder *pstate, const char *string)
element.piece = tp_space_identifier;
insert_into (slot, element);
element.int_val
- = address_space_name_to_type_instance_flags (pstate->gdbarch (),
- string);
+ = address_space_name_to_type_instance_flags (gdbarch, string);
insert_into (slot, element);
}
diff --git a/gdb/type-stack.h b/gdb/type-stack.h
index af5a89d..eeb2f35 100644
--- a/gdb/type-stack.h
+++ b/gdb/type-stack.h
@@ -26,34 +26,49 @@
struct type;
struct expr_builder;
-/* For parsing of complicated types.
- An array should be preceded in the list by the size of the array. */
+/* The kind of element on the stack of types and qualifiers, used for
+ parsing complicated types. */
enum type_pieces
- {
- tp_end = -1,
- tp_pointer,
- tp_reference,
- tp_rvalue_reference,
- tp_array,
- tp_function,
- tp_function_with_arguments,
- tp_const,
- tp_volatile,
- tp_space_identifier,
- tp_atomic,
- tp_restrict,
- tp_type_stack,
- tp_kind
- };
-
-/* The stack can contain either an enum type_pieces or an int. */
+{
+ /* This is returned by pop() to indicate that the stack is empty.
+ Note that it may not be pushed by the user. */
+ tp_end = -1,
+ tp_pointer,
+ tp_reference,
+ tp_rvalue_reference,
+ /* An array type, where the dimension is pushed on the stack as
+ well. */
+ tp_array,
+ tp_function,
+ /* A function with argument types; the types are also pushed on the
+ stack. */
+ tp_function_with_arguments,
+ tp_const,
+ tp_volatile,
+ /* An address space identifier. The address space is also pushed on
+ the stack. */
+ tp_space_identifier,
+ tp_atomic,
+ tp_restrict,
+ /* A separate type stack, which is also pushed onto this type
+ stack. */
+ tp_type_stack,
+ /* Fortran-specific, specifies the kind. */
+ tp_kind,
+};
+
+/* Items on the type stack. */
union type_stack_elt
- {
- enum type_pieces piece;
- int int_val;
- struct type_stack *stack_val;
- std::vector<struct type *> *typelist_val;
- };
+{
+ /* An ordinary type qualifier. */
+ enum type_pieces piece;
+ /* An integer value. Currently only used for address spaces. */
+ int int_val;
+ /* Another type stack. */
+ struct type_stack *stack_val;
+ /* A list of types. */
+ std::vector<struct type *> *typelist_val;
+};
/* The type stack is an instance of this structure. */
@@ -80,18 +95,31 @@ public:
void insert (enum type_pieces tp);
+ /* Push an ordinary element on the type stack. This can be used for
+ any element that doesn't require any extra data. */
void push (enum type_pieces tp)
{
+ /* tp_end can only be returned by this class, not pushed. The
+ others require a payload on the stack and so can only be pushed
+ by the appropriate method. */
+ gdb_assert (tp != tp_end);
+ gdb_assert (!requires_payload (tp));
type_stack_elt elt;
elt.piece = tp;
m_elements.push_back (elt);
}
- void push (int n)
+ /* Push an element and an integer value onto the stack. The integer
+ value is pushed first, followed by TP. Only piece kinds that
+ accept an integer argument are allowed. */
+ void push (enum type_pieces tp, int n)
{
+ gdb_assert (tp == tp_array || tp == tp_space_identifier || tp == tp_kind);
type_stack_elt elt;
elt.int_val = n;
m_elements.push_back (elt);
+ elt.piece = tp;
+ m_elements.push_back (elt);
}
/* Push the type stack STACK as an element on this type stack. */
@@ -101,11 +129,12 @@ public:
type_stack_elt elt;
elt.stack_val = stack;
m_elements.push_back (elt);
- push (tp_type_stack);
+ elt.piece = tp_type_stack;
+ m_elements.push_back (elt);
}
- /* Push a function type with arguments onto the global type stack.
- LIST holds the argument types. If the final item in LIST is NULL,
+ /* Push a function type with arguments onto this type stack. LIST
+ holds the argument types. If the final item in LIST is NULL,
then the function will be varargs. */
void push (std::vector<struct type *> *list)
@@ -113,35 +142,51 @@ public:
type_stack_elt elt;
elt.typelist_val = list;
m_elements.push_back (elt);
- push (tp_function_with_arguments);
+ elt.piece = tp_function_with_arguments;
+ m_elements.push_back (elt);
}
+ /* Pop the topmost element of the stack and return it.
+
+ If the stack is empty, tp_end is returned.
+
+ If the topmost element requires a payload -- for example,
+ tp_array takes an integer parameter -- then the value is returned
+ but *not* popped from the stack. Instead the appropriate
+ payload-specific pop_* method (e.g., pop_int) must then be
+ called. This somewhat odd approach ensures that the stack can't
+ be put into an invalid state. */
enum type_pieces pop ()
{
if (m_elements.empty ())
return tp_end;
type_stack_elt elt = m_elements.back ();
- m_elements.pop_back ();
+ if (!requires_payload (elt.piece))
+ m_elements.pop_back ();
return elt.piece;
}
int pop_int ()
{
- if (m_elements.empty ())
- {
- /* "Can't happen". */
- return 0;
- }
+ gdb_assert (m_elements.size () >= 2);
type_stack_elt elt = m_elements.back ();
m_elements.pop_back ();
+ type_pieces tp = elt.piece;
+ gdb_assert (tp == tp_array || tp == tp_space_identifier || tp == tp_kind);
+ elt = m_elements.back ();
+ m_elements.pop_back ();
return elt.int_val;
}
std::vector<struct type *> *pop_typelist ()
{
- gdb_assert (!m_elements.empty ());
+ gdb_assert (m_elements.size () >= 2);
type_stack_elt elt = m_elements.back ();
m_elements.pop_back ();
+ type_pieces tp = elt.piece;
+ gdb_assert (tp == tp_function_with_arguments);
+ elt = m_elements.back ();
+ m_elements.pop_back ();
return elt.typelist_val;
}
@@ -149,9 +194,13 @@ public:
struct type_stack *pop_type_stack ()
{
- gdb_assert (!m_elements.empty ());
+ gdb_assert (m_elements.size () >= 2);
type_stack_elt elt = m_elements.back ();
m_elements.pop_back ();
+ type_pieces tp = elt.piece;
+ gdb_assert (tp == tp_type_stack);
+ elt = m_elements.back ();
+ m_elements.pop_back ();
return elt.stack_val;
}
@@ -163,7 +212,7 @@ public:
stack is a tp_pointer, and the new values are inserted above the
first item. */
- void insert (struct expr_builder *pstate, const char *string);
+ void insert (struct gdbarch *gdbarch, const char *string);
/* Append the elements of the type stack FROM to the type stack
THIS. Always returns THIS. */
@@ -188,9 +237,9 @@ public:
private:
- /* A helper function for insert_type and insert_type_address_space.
- This does work of expanding the type stack and inserting the new
- element, ELEMENT, into the stack at location SLOT. */
+ /* A helper function for the insert methods. This does work of
+ expanding the type stack and inserting the new element, ELEMENT,
+ into the stack at location SLOT. */
void insert_into (int slot, union type_stack_elt element)
{
@@ -198,6 +247,14 @@ private:
m_elements.insert (m_elements.begin () + slot, element);
}
+ /* Return true if TP requires some payload element. */
+ bool requires_payload (type_pieces tp) const
+ {
+ return (tp == tp_array || tp == tp_kind || tp == tp_type_stack
+ || tp == tp_function_with_arguments
+ || tp == tp_space_identifier);
+ }
+
/* Elements on the stack. */
std::vector<union type_stack_elt> m_elements;
diff --git a/gdb/typeprint.c b/gdb/typeprint.c
index ef0c5aa..42fbf38 100644
--- a/gdb/typeprint.c
+++ b/gdb/typeprint.c
@@ -31,7 +31,6 @@
#include "cp-abi.h"
#include "typeprint.h"
#include "valprint.h"
-#include <ctype.h>
#include "cli/cli-utils.h"
#include "extension.h"
#include "completer.h"
@@ -219,7 +218,7 @@ typedef_hash_table::add_template_parameters (struct type *t)
struct decl_field *tf;
/* We only want type-valued template parameters in the hash. */
- if (TYPE_TEMPLATE_ARGUMENT (t, i)->aclass () != LOC_TYPEDEF)
+ if (TYPE_TEMPLATE_ARGUMENT (t, i)->loc_class () != LOC_TYPEDEF)
continue;
tf = XOBNEW (&m_storage, struct decl_field);
@@ -367,7 +366,7 @@ whatis_exp (const char *exp, int show)
{
int seen_one = 0;
- for (++exp; *exp && !isspace (*exp); ++exp)
+ for (++exp; *exp && !c_isspace (*exp); ++exp)
{
switch (*exp)
{
@@ -413,7 +412,7 @@ whatis_exp (const char *exp, int show)
if (!*exp && !seen_one)
error (_("flag expected"));
- if (!isspace (*exp))
+ if (!c_isspace (*exp))
error (_("expected space after format"));
exp = skip_spaces (exp);
}
diff --git a/gdb/ui-out.c b/gdb/ui-out.c
index 106a896..7683927 100644
--- a/gdb/ui-out.c
+++ b/gdb/ui-out.c
@@ -586,7 +586,7 @@ ui_out::vmessage (const ui_file_style &in_style, const char *format,
for (auto &&piece : fpieces)
{
- const char *current_substring = piece.string;
+ const char *current_substring = fpieces.piece_str (piece);
gdb_assert (piece.n_int_args >= 0 && piece.n_int_args <= 2);
int intvals[2] = { 0, 0 };
diff --git a/gdb/ui-style.c b/gdb/ui-style.c
index 9a58e4d..d450c3e 100644
--- a/gdb/ui-style.c
+++ b/gdb/ui-style.c
@@ -594,7 +594,11 @@ colorsupport ()
{
std::vector<color_space> result = {color_space::MONOCHROME};
- int colors = tgetnum ("Co");
+ /* ncurses versions prior to 6.1 (and other curses
+ implementations) declare the tgetnum argument to be
+ 'char *', so we need the const_cast, since C++ will not
+ implicitly convert. */
+ int colors = tgetnum (const_cast<char*> ("Co"));
if (colors >= 8)
result.push_back (color_space::ANSI_8COLOR);
if (colors >= 16)
diff --git a/gdb/unittests/command-def-selftests.c b/gdb/unittests/command-def-selftests.c
index 0a54d31..095b57f 100644
--- a/gdb/unittests/command-def-selftests.c
+++ b/gdb/unittests/command-def-selftests.c
@@ -72,7 +72,7 @@ check_doc (struct cmd_list_element *commandlist, const char *prefix)
"first line is not terminated with a '.' character");
/* Checks the doc is not terminated with a new line. */
- if (isspace (c->doc[strlen (c->doc) - 1]))
+ if (c_isspace (c->doc[strlen (c->doc) - 1]))
broken_doc_invariant
(prefix, c->name,
"has superfluous trailing whitespace");
@@ -87,7 +87,7 @@ check_doc (struct cmd_list_element *commandlist, const char *prefix)
else
{
/* \n\n is ok, so we check that explicitly here. */
- if (isspace (nl[-1]) && nl[-1] != '\n')
+ if (c_isspace (nl[-1]) && nl[-1] != '\n')
broken_doc_invariant (prefix, c->name,
"has whitespace before a newline");
}
diff --git a/gdb/unittests/filtered_iterator-selftests.c b/gdb/unittests/filtered_iterator-selftests.c
index 49c95cb..c04cae4 100644
--- a/gdb/unittests/filtered_iterator-selftests.c
+++ b/gdb/unittests/filtered_iterator-selftests.c
@@ -125,6 +125,26 @@ test_filtered_iterator ()
SELF_CHECK (even_ints == expected_even_ints);
}
+/* Same as the above, but using pointers as the iterator base type. */
+
+static void
+test_filtered_iterator_ptr ()
+{
+ int array[] = { 4, 4, 5, 6, 7, 8, 9 };
+ std::vector<int> even_ints;
+ const std::vector<int> expected_even_ints { 4, 4, 6, 8 };
+
+ filtered_iterator<int *, even_numbers_only> iter
+ (array, array + ARRAY_SIZE (array));
+ filtered_iterator<int *, even_numbers_only> end
+ (array + ARRAY_SIZE (array), array + ARRAY_SIZE (array));
+
+ for (; iter != end; ++iter)
+ even_ints.push_back (*iter);
+
+ SELF_CHECK (even_ints == expected_even_ints);
+}
+
/* Test operator== and operator!=. */
static void
@@ -152,6 +172,34 @@ test_filtered_iterator_eq ()
SELF_CHECK (!(iter1 != iter2));
}
+
+/* Same as the above, but using pointers as the iterator base type. */
+
+static void
+test_filtered_iterator_eq_ptr ()
+{
+ int array[] = { 4, 4, 5, 6, 7, 8, 9 };
+
+ filtered_iterator<int *, even_numbers_only> iter1
+ (array, array + ARRAY_SIZE(array));
+ filtered_iterator<int *, even_numbers_only> iter2
+ (array, array + ARRAY_SIZE(array));
+
+ /* They start equal. */
+ SELF_CHECK (iter1 == iter2);
+ SELF_CHECK (!(iter1 != iter2));
+
+ /* Advance 1, now they aren't equal (despite pointing to equal values). */
+ ++iter1;
+ SELF_CHECK (!(iter1 == iter2));
+ SELF_CHECK (iter1 != iter2);
+
+ /* Advance 2, now they are equal again. */
+ ++iter2;
+ SELF_CHECK (iter1 == iter2);
+ SELF_CHECK (!(iter1 != iter2));
+}
+
} /* namespace selftests */
INIT_GDB_FILE (filtered_iterator_selftests)
@@ -160,4 +208,8 @@ INIT_GDB_FILE (filtered_iterator_selftests)
selftests::test_filtered_iterator);
selftests::register_test ("filtered_iterator_eq",
selftests::test_filtered_iterator_eq);
+ selftests::register_test ("filtered_iterator_ptr",
+ selftests::test_filtered_iterator_ptr);
+ selftests::register_test ("filtered_iterator_eq_ptr",
+ selftests::test_filtered_iterator_eq_ptr);
}
diff --git a/gdb/unittests/format_pieces-selftests.c b/gdb/unittests/format_pieces-selftests.c
index c7d8ff0..2deff0f 100644
--- a/gdb/unittests/format_pieces-selftests.c
+++ b/gdb/unittests/format_pieces-selftests.c
@@ -29,17 +29,35 @@
namespace selftests {
namespace format_pieces {
+/* Like format_piece, but with the expected string hardcoded instead of an
+ index. */
+
+struct expected_format_piece
+{
+ std::string_view str;
+ enum argclass argclass;
+ int n_int_args;
+};
+
/* Verify that parsing STR gives pieces equal to EXPECTED_PIECES. */
static void
-check (const char *str, const std::vector<format_piece> &expected_pieces,
+check (const char *str,
+ const std::vector<expected_format_piece> &expected_pieces,
bool gdb_format = false)
{
::format_pieces pieces (&str, gdb_format);
SELF_CHECK ((pieces.end () - pieces.begin ()) == expected_pieces.size ());
- SELF_CHECK (std::equal (pieces.begin (), pieces.end (),
- expected_pieces.begin ()));
+
+ for (auto it = pieces.begin (); it != pieces.end (); ++it)
+ {
+ auto &expected = expected_pieces[it - pieces.begin ()];
+
+ SELF_CHECK (expected.str == pieces.piece_str (*it));
+ SELF_CHECK (expected.argclass == it->argclass);
+ SELF_CHECK (expected.n_int_args == it->n_int_args);
+ }
}
static void
@@ -47,7 +65,7 @@ test_escape_sequences ()
{
check ("This is an escape sequence: \\e",
{
- format_piece ("This is an escape sequence: \e", literal_piece, 0),
+ {"This is an escape sequence: \e", literal_piece, 0},
});
}
@@ -58,11 +76,11 @@ test_format_specifier ()
see a trailing empty literal piece. */
check ("Hello\\t %d%llx%%d%d", /* ARI: %ll */
{
- format_piece ("Hello\t ", literal_piece, 0),
- format_piece ("%d", int_arg, 0),
- format_piece ("%" LL "x", long_long_arg, 0),
- format_piece ("%%d", literal_piece, 0),
- format_piece ("%d", int_arg, 0),
+ {"Hello\t ", literal_piece, 0},
+ {"%d", int_arg, 0},
+ {"%" LL "x", long_long_arg, 0},
+ {"%%d", literal_piece, 0},
+ {"%d", int_arg, 0},
});
}
@@ -71,13 +89,13 @@ test_gdb_formats ()
{
check ("Hello\\t \"%p[%pF%ps%*.*d%p]\"",
{
- format_piece ("Hello\\t \"", literal_piece, 0),
- format_piece ("%p[", ptr_arg, 0),
- format_piece ("%pF", ptr_arg, 0),
- format_piece ("%ps", ptr_arg, 0),
- format_piece ("%*.*d", int_arg, 2),
- format_piece ("%p]", ptr_arg, 0),
- format_piece ("\"", literal_piece, 0),
+ {"Hello\\t \"", literal_piece, 0},
+ {"%p[", ptr_arg, 0},
+ {"%pF", ptr_arg, 0},
+ {"%ps", ptr_arg, 0},
+ {"%*.*d", int_arg, 2},
+ {"%p]", ptr_arg, 0},
+ {"\"", literal_piece, 0},
}, true);
}
@@ -89,38 +107,38 @@ test_format_int_sizes ()
{
check ("Hello\\t %hu%lu%llu%zu", /* ARI: %ll */
{
- format_piece ("Hello\t ", literal_piece, 0),
- format_piece ("%hu", int_arg, 0),
- format_piece ("%lu", long_arg, 0),
- format_piece ("%" LL "u", long_long_arg, 0),
- format_piece ("%zu", size_t_arg, 0)
+ {"Hello\t ", literal_piece, 0},
+ {"%hu", int_arg, 0},
+ {"%lu", long_arg, 0},
+ {"%" LL "u", long_long_arg, 0},
+ {"%zu", size_t_arg, 0},
});
check ("Hello\\t %hx%lx%llx%zx", /* ARI: %ll */
{
- format_piece ("Hello\t ", literal_piece, 0),
- format_piece ("%hx", int_arg, 0),
- format_piece ("%lx", long_arg, 0),
- format_piece ("%" LL "x", long_long_arg, 0),
- format_piece ("%zx", size_t_arg, 0)
+ {"Hello\t ", literal_piece, 0},
+ {"%hx", int_arg, 0},
+ {"%lx", long_arg, 0},
+ {"%" LL "x", long_long_arg, 0},
+ {"%zx", size_t_arg, 0},
});
check ("Hello\\t %ho%lo%llo%zo", /* ARI: %ll */
{
- format_piece ("Hello\t ", literal_piece, 0),
- format_piece ("%ho", int_arg, 0),
- format_piece ("%lo", long_arg, 0),
- format_piece ("%" LL "o", long_long_arg, 0),
- format_piece ("%zo", size_t_arg, 0)
+ {"Hello\t ", literal_piece, 0},
+ {"%ho", int_arg, 0},
+ {"%lo", long_arg, 0},
+ {"%" LL "o", long_long_arg, 0},
+ {"%zo", size_t_arg, 0},
});
check ("Hello\\t %hd%ld%lld%zd", /* ARI: %ll */
{
- format_piece ("Hello\t ", literal_piece, 0),
- format_piece ("%hd", int_arg, 0),
- format_piece ("%ld", long_arg, 0),
- format_piece ("%" LL "d", long_long_arg, 0),
- format_piece ("%zd", size_t_arg, 0)
+ {"Hello\t ", literal_piece, 0},
+ {"%hd", int_arg, 0},
+ {"%ld", long_arg, 0},
+ {"%" LL "d", long_long_arg, 0},
+ {"%zd", size_t_arg, 0},
});
}
@@ -129,8 +147,8 @@ test_windows_formats ()
{
check ("rc%I64d",
{
- format_piece ("rc", literal_piece, 0),
- format_piece ("%I64d", long_long_arg, 0),
+ {"rc", literal_piece, 0},
+ {"%I64d", long_long_arg, 0},
});
}
diff --git a/gdb/utils.c b/gdb/utils.c
index 10d3d51..57c739e 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -17,7 +17,6 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include <ctype.h>
#include "gdbsupport/gdb_wait.h"
#include "gdbsupport/scoped_signal_handler.h"
#include "event-top.h"
@@ -75,7 +74,6 @@
#include "gdbsupport/scope-exit.h"
#include "gdbarch.h"
#include "cli-out.h"
-#include "gdbsupport/gdb-safe-ctype.h"
#include "bt-utils.h"
#include "gdbsupport/buildargv.h"
#include "pager.h"
@@ -1008,7 +1006,7 @@ parse_escape (struct gdbarch *gdbarch, const char **string_ptr)
while (++count < 3)
{
c = (**string_ptr);
- if (ISDIGIT (c) && c != '8' && c != '9')
+ if (c_isdigit (c) && c != '8' && c != '9')
{
(*string_ptr)++;
i *= 8;
@@ -1702,10 +1700,25 @@ pager_file::puts (const char *linebuffer)
else if (*linebuffer == '\033'
&& skip_ansi_escape (linebuffer, &skip_bytes))
{
- m_wrap_buffer.append (linebuffer, skip_bytes);
- /* Note that we don't consider this a character, so we
+ /* We don't consider escape sequences as characters, so we
don't increment chars_printed here. */
- linebuffer += skip_bytes;
+
+ size_t style_len;
+ ui_file_style style;
+ if (style.parse (linebuffer, &style_len)
+ && style_len <= skip_bytes)
+ {
+ this->emit_style_escape (style);
+
+ linebuffer += style_len;
+ skip_bytes -= style_len;
+ }
+
+ if (skip_bytes > 0)
+ {
+ m_wrap_buffer.append (linebuffer, skip_bytes);
+ linebuffer += skip_bytes;
+ }
}
else if (*linebuffer == '\r')
{
@@ -2053,7 +2066,7 @@ fprintf_symbol (struct ui_file *stream, const char *name,
static bool
valid_identifier_name_char (int ch)
{
- return (ISALNUM (ch) || ch == '_');
+ return (c_isalnum (ch) || ch == '_');
}
/* Skip to end of token, or to END, whatever comes first. Input is
@@ -2063,7 +2076,7 @@ static const char *
cp_skip_operator_token (const char *token, const char *end)
{
const char *p = token;
- while (p != end && !ISSPACE (*p) && *p != '(')
+ while (p != end && !c_isspace (*p) && *p != '(')
{
if (valid_identifier_name_char (*p))
{
@@ -2117,9 +2130,9 @@ cp_skip_operator_token (const char *token, const char *end)
static void
skip_ws (const char *&string1, const char *&string2, const char *end_str2)
{
- while (ISSPACE (*string1))
+ while (c_isspace (*string1))
string1++;
- while (string2 < end_str2 && ISSPACE (*string2))
+ while (string2 < end_str2 && c_isspace (*string2))
string2++;
}
@@ -2183,7 +2196,7 @@ skip_template_parameter_list (const char **name)
/* Skip any whitespace that might occur after the closing of the
parameter list, but only if it is the end of parameter list. */
const char *q = p;
- while (ISSPACE (*q))
+ while (c_isspace (*q))
++q;
if (*q == '>')
p = q;
@@ -2215,8 +2228,8 @@ strncmp_iw_with_mode (const char *string1, const char *string2,
while (1)
{
if (skip_spaces
- || ((ISSPACE (*string1) && !valid_identifier_name_char (*string2))
- || (ISSPACE (*string2) && !valid_identifier_name_char (*string1))))
+ || ((c_isspace (*string1) && !valid_identifier_name_char (*string2))
+ || (c_isspace (*string2) && !valid_identifier_name_char (*string1))))
{
skip_ws (string1, string2, end_str2);
skip_spaces = false;
@@ -2249,7 +2262,7 @@ strncmp_iw_with_mode (const char *string1, const char *string2,
if (match_for_lcd != NULL && abi_start != string1)
match_for_lcd->mark_ignored_range (abi_start, string1);
- while (ISSPACE (*string1))
+ while (c_isspace (*string1))
string1++;
}
@@ -2316,9 +2329,9 @@ strncmp_iw_with_mode (const char *string1, const char *string2,
string1++;
string2++;
- while (ISSPACE (*string1))
+ while (c_isspace (*string1))
string1++;
- while (string2 < end_str2 && ISSPACE (*string2))
+ while (string2 < end_str2 && c_isspace (*string2))
string2++;
continue;
}
@@ -2418,14 +2431,13 @@ strncmp_iw_with_mode (const char *string1, const char *string2,
if (case_sensitivity == case_sensitive_on && *string1 != *string2)
break;
if (case_sensitivity == case_sensitive_off
- && (TOLOWER ((unsigned char) *string1)
- != TOLOWER ((unsigned char) *string2)))
+ && c_tolower (*string1) != c_tolower (*string2))
break;
/* If we see any non-whitespace, non-identifier-name character
(any of "()<>*&" etc.), then skip spaces the next time
around. */
- if (!ISSPACE (*string1) && !valid_identifier_name_char (*string1))
+ if (!c_isspace (*string1) && !valid_identifier_name_char (*string1))
skip_spaces = true;
string1++;
@@ -3138,16 +3150,16 @@ strcmp_iw_ordered (const char *string1, const char *string2)
while (*string1 != '\0' && *string2 != '\0')
{
- while (ISSPACE (*string1))
+ while (c_isspace (*string1))
string1++;
- while (ISSPACE (*string2))
+ while (c_isspace (*string2))
string2++;
switch (case_pass)
{
case case_sensitive_off:
- c1 = TOLOWER ((unsigned char) *string1);
- c2 = TOLOWER ((unsigned char) *string2);
+ c1 = c_tolower (*string1);
+ c2 = c_tolower (*string2);
break;
case case_sensitive_on:
c1 = *string1;
@@ -3256,17 +3268,17 @@ string_to_core_addr (const char *my_string)
{
CORE_ADDR addr = 0;
- if (my_string[0] == '0' && TOLOWER (my_string[1]) == 'x')
+ if (my_string[0] == '0' && c_tolower (my_string[1]) == 'x')
{
/* Assume that it is in hex. */
int i;
for (i = 2; my_string[i] != '\0'; i++)
{
- if (ISDIGIT (my_string[i]))
+ if (c_isdigit (my_string[i]))
addr = (my_string[i] - '0') + (addr * 16);
- else if (ISXDIGIT (my_string[i]))
- addr = (TOLOWER (my_string[i]) - 'a' + 0xa) + (addr * 16);
+ else if (c_isxdigit (my_string[i]))
+ addr = (c_tolower (my_string[i]) - 'a' + 0xa) + (addr * 16);
else
error (_("invalid hex \"%s\""), my_string);
}
@@ -3278,7 +3290,7 @@ string_to_core_addr (const char *my_string)
for (i = 0; my_string[i] != '\0'; i++)
{
- if (ISDIGIT (my_string[i]))
+ if (c_isdigit (my_string[i]))
addr = (my_string[i] - '0') + (addr * 10);
else
error (_("invalid decimal \"%s\""), my_string);
diff --git a/gdb/valops.c b/gdb/valops.c
index 88f3e32..fa87546 100644
--- a/gdb/valops.c
+++ b/gdb/valops.c
@@ -45,9 +45,6 @@
/* Local functions. */
-static int typecmp (bool staticp, bool varargs, int nargs,
- struct field t1[], const gdb::array_view<value *> t2);
-
static struct value *search_struct_field (const char *, struct value *,
struct type *, int);
@@ -1766,7 +1763,7 @@ value_string (const gdb_byte *ptr, ssize_t count, struct type *char_type)
/* See if we can pass arguments in T2 to a function which takes arguments
- of types T1. T1 is a list of NARGS arguments, and T2 is an array_view
+ of types T1. T1 is an array_view of arguments, and T2 is an array_view
of the values we're trying to pass. If some arguments need coercion of
some sort, then the coerced values are written into T2. Return value is
0 if the arguments could be matched, or the position at which they
@@ -1783,8 +1780,8 @@ value_string (const gdb_byte *ptr, ssize_t count, struct type *char_type)
requested operation is type secure, shouldn't we? FIXME. */
static int
-typecmp (bool staticp, bool varargs, int nargs,
- struct field t1[], gdb::array_view<value *> t2)
+typecmp (bool staticp, bool varargs,
+ gdb::array_view<struct field> t1, gdb::array_view<value *> t2)
{
int i;
@@ -1794,7 +1791,7 @@ typecmp (bool staticp, bool varargs, int nargs,
t2 = t2.slice (1);
for (i = 0;
- (i < nargs) && t1[i].type ()->code () != TYPE_CODE_VOID;
+ (i < t1.size ()) && t1[i].type ()->code () != TYPE_CODE_VOID;
i++)
{
struct type *tt1, *tt2;
@@ -2227,7 +2224,6 @@ search_struct_method (const char *name, struct value **arg1p,
gdb_assert (args.has_value ());
if (!typecmp (TYPE_FN_FIELD_STATIC_P (f, j),
TYPE_FN_FIELD_TYPE (f, j)->has_varargs (),
- TYPE_FN_FIELD_TYPE (f, j)->num_fields (),
TYPE_FN_FIELD_ARGS (f, j), *args))
{
if (TYPE_FN_FIELD_VIRTUAL_P (f, j))
@@ -3826,7 +3822,7 @@ value_maybe_namespace_elt (const struct type *curtype,
if (sym.symbol == NULL)
return NULL;
else if ((noside == EVAL_AVOID_SIDE_EFFECTS)
- && (sym.symbol->aclass () == LOC_TYPEDEF))
+ && (sym.symbol->loc_class () == LOC_TYPEDEF))
result = value::allocate (sym.symbol->type ());
else
result = value_of_variable (sym.symbol, sym.block);
@@ -4024,7 +4020,7 @@ value_of_this_silent (const struct language_defn *lang)
bound as the original ARRAY. */
struct value *
-value_slice (struct value *array, int lowbound, int length)
+value_slice (struct value *array, LONGEST lowbound, LONGEST length)
{
struct type *slice_range_type, *slice_type, *range_type;
LONGEST lowerbound, upperbound;
diff --git a/gdb/valprint.c b/gdb/valprint.c
index 305faf7..b8c1c06 100644
--- a/gdb/valprint.c
+++ b/gdb/valprint.c
@@ -34,7 +34,6 @@
#include "gdbsupport/gdb_obstack.h"
#include "charset.h"
#include "typeprint.h"
-#include <ctype.h>
#include <algorithm>
#include "gdbsupport/byte-vector.h"
#include "cli/cli-option.h"
diff --git a/gdb/value.c b/gdb/value.c
index 82d9a86..c78bb98 100644
--- a/gdb/value.c
+++ b/gdb/value.c
@@ -35,7 +35,6 @@
#include "valprint.h"
#include "cli/cli-decode.h"
#include "extension.h"
-#include <ctype.h>
#include "tracepoint.h"
#include "cp-abi.h"
#include "user-regs.h"
@@ -3723,11 +3722,11 @@ value_from_history_ref (const char *h, const char **endp)
len = 2;
/* Find length of numeral string. */
- for (; isdigit (h[len]); len++)
+ for (; c_isdigit (h[len]); len++)
;
/* Make sure numeral string is not part of an identifier. */
- if (h[len] == '_' || isalpha (h[len]))
+ if (h[len] == '_' || c_isalpha (h[len]))
return NULL;
/* Now collect the index value. */
diff --git a/gdb/value.h b/gdb/value.h
index 0c7c785..b9d2809 100644
--- a/gdb/value.h
+++ b/gdb/value.h
@@ -1156,9 +1156,12 @@ extern struct value *address_of_variable (struct symbol *var,
extern value *value_of_register (int regnum, const frame_info_ptr &next_frame);
-/* Same as the above, but the value is not fetched. */
+/* Same as the above, but the value is not fetched. If TYPE is
+ non-nullptr, use it as the value type. Otherwise, 'register_type'
+ will be used to obtain the type. */
-extern value *value_of_register_lazy (const frame_info_ptr &next_frame, int regnum);
+extern value *value_of_register_lazy (const frame_info_ptr &next_frame,
+ int regnum, struct type *type = nullptr);
/* Return the symbol's reading requirement. */
@@ -1586,7 +1589,7 @@ extern struct value *make_cv_value (int, int, struct value *);
extern struct value *varying_to_slice (struct value *);
-extern struct value *value_slice (struct value *, int, int);
+extern struct value *value_slice (struct value *, LONGEST, LONGEST);
/* Create a complex number. The type is the complex type; the values
are cast to the underlying scalar type before the complex number is
diff --git a/gdb/version.in b/gdb/version.in
index 75e06a8..85ad8ec 100644
--- a/gdb/version.in
+++ b/gdb/version.in
@@ -1 +1 @@
-17.0.50.DATE-git \ No newline at end of file
+18.0.50.DATE-git \ No newline at end of file
diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c
index c001d38..f74ea0c 100644
--- a/gdb/windows-nat.c
+++ b/gdb/windows-nat.c
@@ -2426,7 +2426,7 @@ redir_set_redirection (const char *s, int *inp, int *out, int *err)
/* cmd.exe recognizes "&N" only immediately after the redirection symbol. */
if (*s != '&')
{
- while (isspace (*s)) /* skip whitespace before file name */
+ while (c_isspace (*s)) /* skip whitespace before file name */
s++;
*d++ = ' '; /* separate file name with a single space */
}
@@ -2453,7 +2453,7 @@ redir_set_redirection (const char *s, int *inp, int *out, int *err)
s++;
*d++ = *s++;
}
- else if (isspace (*s) && !quote)
+ else if (c_isspace (*s) && !quote)
break;
else
*d++ = *s++;
@@ -2489,7 +2489,7 @@ redirect_inferior_handles (const char *cmd_orig, char *cmd,
int quote = 0;
bool retval = false;
- while (isspace (*s))
+ while (c_isspace (*s))
*d++ = *s++;
while (*s)
diff --git a/gdb/windows-tdep.c b/gdb/windows-tdep.c
index 05335d2..c6f5803 100644
--- a/gdb/windows-tdep.c
+++ b/gdb/windows-tdep.c
@@ -550,43 +550,6 @@ windows_xfer_shared_library (const char* so_name, CORE_ADDR load_addr,
xml += "\"/></library>";
}
-/* Implement the "iterate_over_objfiles_in_search_order" gdbarch
- method. It searches all objfiles, starting with CURRENT_OBJFILE
- first (if not NULL).
-
- On Windows, the system behaves a little differently when two
- objfiles each define a global symbol using the same name, compared
- to other platforms such as GNU/Linux for instance. On GNU/Linux,
- all instances of the symbol effectively get merged into a single
- one, but on Windows, they remain distinct.
-
- As a result, it usually makes sense to start global symbol searches
- with the current objfile before expanding it to all other objfiles.
- This helps for instance when a user debugs some code in a DLL that
- refers to a global variable defined inside that DLL. When trying
- to print the value of that global variable, it would be unhelpful
- to print the value of another global variable defined with the same
- name, but in a different DLL. */
-
-static void
-windows_iterate_over_objfiles_in_search_order
- (gdbarch *gdbarch, iterate_over_objfiles_in_search_order_cb_ftype cb,
- objfile *current_objfile)
-{
- if (current_objfile)
- {
- if (cb (current_objfile))
- return;
- }
-
- for (objfile *objfile : current_program_space->objfiles ())
- if (objfile != current_objfile)
- {
- if (cb (objfile))
- return;
- }
-}
-
static void
show_maint_show_all_tib (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
@@ -866,15 +829,20 @@ windows_get_siginfo_type (struct gdbarch *gdbarch)
struct windows_solib_ops : target_solib_ops
{
+ using target_solib_ops::target_solib_ops;
+
void create_inferior_hook (int from_tty) const override;
+ void iterate_over_objfiles_in_search_order
+ (iterate_over_objfiles_in_search_order_cb_ftype cb,
+ objfile *current_objfile) const override;
};
/* Return a new solib_ops for Windows systems. */
static solib_ops_up
-make_windows_solib_ops ()
+make_windows_solib_ops (program_space *pspace)
{
- return std::make_unique<windows_solib_ops> ();
+ return std::make_unique<windows_solib_ops> (pspace);
}
/* Implement the "solib_create_inferior_hook" solib_ops method. */
@@ -925,6 +893,43 @@ windows_solib_ops::create_inferior_hook (int from_tty) const
}
}
+/* Implement the "iterate_over_objfiles_in_search_order" gdbarch
+ method. It searches all objfiles, starting with CURRENT_OBJFILE
+ first (if not NULL).
+
+ On Windows, the system behaves a little differently when two
+ objfiles each define a global symbol using the same name, compared
+ to other platforms such as GNU/Linux for instance. On GNU/Linux,
+ all instances of the symbol effectively get merged into a single
+ one, but on Windows, they remain distinct.
+
+ As a result, it usually makes sense to start global symbol searches
+ with the current objfile before expanding it to all other objfiles.
+ This helps for instance when a user debugs some code in a DLL that
+ refers to a global variable defined inside that DLL. When trying
+ to print the value of that global variable, it would be unhelpful
+ to print the value of another global variable defined with the same
+ name, but in a different DLL. */
+
+void
+windows_solib_ops::iterate_over_objfiles_in_search_order
+ (iterate_over_objfiles_in_search_order_cb_ftype cb,
+ objfile *current_objfile) const
+{
+ if (current_objfile)
+ {
+ if (cb (current_objfile))
+ return;
+ }
+
+ for (objfile *objfile : m_pspace->objfiles ())
+ if (objfile != current_objfile)
+ {
+ if (cb (objfile))
+ return;
+ }
+}
+
/* Common parts for gdbarch initialization for the Windows and Cygwin OS
ABIs. */
@@ -938,9 +943,6 @@ windows_init_abi_common (struct gdbarch_info info, struct gdbarch *gdbarch)
`c:\Program Files\Foo App\mydll.dll', for example. */
set_gdbarch_has_dos_based_file_system (gdbarch, 1);
- set_gdbarch_iterate_over_objfiles_in_search_order
- (gdbarch, windows_iterate_over_objfiles_in_search_order);
-
set_gdbarch_make_solib_ops (gdbarch, make_windows_solib_ops);
set_gdbarch_get_siginfo_type (gdbarch, windows_get_siginfo_type);
@@ -1160,13 +1162,11 @@ core_process_module_section (bfd *abfd, asection *sect, void *obj)
ULONGEST
windows_core_xfer_shared_libraries (struct gdbarch *gdbarch,
- gdb_byte *readbuf,
+ struct bfd &cbfd, gdb_byte *readbuf,
ULONGEST offset, ULONGEST len)
{
cpms_data data { gdbarch, "<library-list>\n", 0 };
- bfd_map_over_sections (current_program_space->core_bfd (),
- core_process_module_section,
- &data);
+ bfd_map_over_sections (&cbfd, core_process_module_section, &data);
data.xml += "</library-list>\n";
ULONGEST len_avail = data.xml.length ();
diff --git a/gdb/windows-tdep.h b/gdb/windows-tdep.h
index 87a618e..4d8e6bc 100644
--- a/gdb/windows-tdep.h
+++ b/gdb/windows-tdep.h
@@ -33,6 +33,7 @@ extern void windows_xfer_shared_library (const char* so_name,
std::string &xml);
extern ULONGEST windows_core_xfer_shared_libraries (struct gdbarch *gdbarch,
+ struct bfd &cbfd,
gdb_byte *readbuf,
ULONGEST offset,
ULONGEST len);
diff --git a/gdb/x86-linux-nat.c b/gdb/x86-linux-nat.c
index 81db5d8..660a906 100644
--- a/gdb/x86-linux-nat.c
+++ b/gdb/x86-linux-nat.c
@@ -41,6 +41,7 @@
#include "nat/x86-linux.h"
#include "nat/x86-linux-dregs.h"
#include "nat/linux-ptrace.h"
+#include "x86-tdep.h"
#include "nat/x86-linux-tdesc.h"
/* linux_nat_target::low_new_fork implementation. */
@@ -97,15 +98,19 @@ const struct target_desc *
x86_linux_nat_target::read_description ()
{
/* The x86_linux_tdesc_for_tid call only reads xcr0 the first time it is
- called, the xcr0 value is stored here and reused on subsequent calls. */
- static uint64_t xcr0_storage;
+ called. Also it checks the enablement state of features which are
+ not configured in xcr0, such as CET shadow stack. Once the supported
+ features are identified, the XSTATE_BV_STORAGE value is configured
+ accordingly and preserved for subsequent calls of this function. */
+ static uint64_t xstate_bv_storage;
if (inferior_ptid == null_ptid)
return this->beneath ()->read_description ();
int tid = inferior_ptid.pid ();
- return x86_linux_tdesc_for_tid (tid, &xcr0_storage, &this->m_xsave_layout);
+ return x86_linux_tdesc_for_tid (tid, &xstate_bv_storage,
+ &this->m_xsave_layout);
}
@@ -210,6 +215,45 @@ x86_linux_get_thread_area (pid_t pid, void *addr, unsigned int *base_addr)
}
+/* See x86-linux-nat.h. */
+
+void
+x86_linux_fetch_ssp (regcache *regcache, const int tid)
+{
+ uint64_t ssp = 0x0;
+ iovec iov {&ssp, sizeof (ssp)};
+
+ /* The shadow stack may be enabled and disabled at runtime. Reading the
+ ssp might fail as shadow stack was not activated for the current
+ thread. We don't want to show a warning but silently return. The
+ register will be shown as unavailable for the user. */
+ if (ptrace (PTRACE_GETREGSET, tid, NT_X86_SHSTK, &iov) != 0)
+ return;
+
+ x86_supply_ssp (regcache, ssp);
+}
+
+/* See x86-linux-nat.h. */
+
+void
+x86_linux_store_ssp (const regcache *regcache, const int tid)
+{
+ uint64_t ssp = 0x0;
+ iovec iov {&ssp, sizeof (ssp)};
+ x86_collect_ssp (regcache, ssp);
+
+ /* Dependent on the target the ssp register can be unavailable or
+ nullptr when shadow stack is supported by HW and the Linux kernel but
+ not enabled for the current thread. In case of nullptr, GDB tries to
+ restore the shadow stack pointer after an inferior call. The ptrace
+ call with PTRACE_SETREGSET will fail here with errno ENODEV. We
+ don't want to throw an error in this case but silently continue. */
+ errno = 0;
+ if ((ptrace (PTRACE_SETREGSET, tid, NT_X86_SHSTK, &iov) != 0)
+ && (errno != ENODEV))
+ perror_with_name (_("Failed to write pl3_ssp register"));
+}
+
INIT_GDB_FILE (x86_linux_nat)
{
/* Initialize the debug register function vectors. */
diff --git a/gdb/x86-linux-nat.h b/gdb/x86-linux-nat.h
index a62cc4d..c455653 100644
--- a/gdb/x86-linux-nat.h
+++ b/gdb/x86-linux-nat.h
@@ -92,4 +92,15 @@ private:
extern ps_err_e x86_linux_get_thread_area (pid_t pid, void *addr,
unsigned int *base_addr);
+/* Fetch the value of the shadow stack pointer register from process/thread
+ TID and store it to GDB's register cache. */
+
+extern void x86_linux_fetch_ssp (regcache *regcache, const int tid);
+
+/* Read the value of the shadow stack pointer from GDB's register cache
+ and store it in the shadow stack pointer register of process/thread TID.
+ Throw an error in case of failure. */
+
+extern void x86_linux_store_ssp (const regcache *regcache, const int tid);
+
#endif /* GDB_X86_LINUX_NAT_H */
diff --git a/gdb/x86-tdep.c b/gdb/x86-tdep.c
index 6646b11..ea5226f 100644
--- a/gdb/x86-tdep.c
+++ b/gdb/x86-tdep.c
@@ -17,10 +17,31 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#include "i386-tdep.h"
#include "x86-tdep.h"
#include "symtab.h"
+/* See x86-tdep.h. */
+
+void
+x86_supply_ssp (regcache *regcache, const uint64_t ssp)
+{
+ i386_gdbarch_tdep *tdep = gdbarch_tdep<i386_gdbarch_tdep> (regcache->arch ());
+ gdb_assert (tdep != nullptr && tdep->ssp_regnum != -1);
+ regcache->raw_supply (tdep->ssp_regnum, &ssp);
+}
+
+/* See x86-tdep.h. */
+
+void
+x86_collect_ssp (const regcache *regcache, uint64_t &ssp)
+{
+ i386_gdbarch_tdep *tdep = gdbarch_tdep<i386_gdbarch_tdep> (regcache->arch ());
+ gdb_assert (tdep != nullptr && tdep->ssp_regnum != -1);
+ regcache->raw_collect (tdep->ssp_regnum, &ssp);
+}
+
/* Check whether NAME is included in NAMES[LO] (inclusive) to NAMES[HI]
(exclusive). */
diff --git a/gdb/x86-tdep.h b/gdb/x86-tdep.h
index 35e3905..855d04b 100644
--- a/gdb/x86-tdep.h
+++ b/gdb/x86-tdep.h
@@ -20,6 +20,15 @@
#ifndef GDB_X86_TDEP_H
#define GDB_X86_TDEP_H
+/* Fill SSP to the shadow stack pointer in GDB's REGCACHE. */
+
+extern void x86_supply_ssp (regcache *regcache, const uint64_t ssp);
+
+/* Collect the value of the shadow stack pointer in GDB's REGCACHE and
+ write it to SSP. */
+
+extern void x86_collect_ssp (const regcache *regcache, uint64_t &ssp);
+
/* Checks whether PC lies in an indirect branch thunk using registers
REGISTER_NAMES[LO] (inclusive) to REGISTER_NAMES[HI] (exclusive). */
diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c
index 70585b3..d8b99a0 100644
--- a/gdb/xcoffread.c
+++ b/gdb/xcoffread.c
@@ -23,7 +23,6 @@
#include <sys/types.h>
#include <fcntl.h>
-#include <ctype.h>
#ifdef HAVE_SYS_FILE_H
#include <sys/file.h>
#endif
@@ -1491,7 +1490,7 @@ process_xcoff_symbol (struct xcoff_symbol *cs, struct objfile *objfile)
sym->set_type (builtin_type (objfile)->nodebug_text_symbol);
sym->set_domain (FUNCTION_DOMAIN);
- sym->set_aclass_index (LOC_BLOCK);
+ sym->set_loc_class_index (LOC_BLOCK);
sym2 = new (&objfile->objfile_obstack) symbol (*sym);
if (cs->c_sclass == C_EXT || C_WEAKEXT)
diff --git a/gdb/xml-support.c b/gdb/xml-support.c
index 08524f8..ebf6ea6 100644
--- a/gdb/xml-support.c
+++ b/gdb/xml-support.c
@@ -21,7 +21,6 @@
#include "xml-builtin.h"
#include "xml-support.h"
#include "gdbsupport/filestuff.h"
-#include "gdbsupport/gdb-safe-ctype.h"
#include <vector>
#include <string>
@@ -430,10 +429,10 @@ gdb_xml_parser::end_element (const XML_Char *name)
body = scope->body.c_str ();
/* Strip leading and trailing whitespace. */
- while (length > 0 && ISSPACE (body[length - 1]))
+ while (length > 0 && c_isspace (body[length - 1]))
length--;
scope->body.erase (length);
- while (*body && ISSPACE (*body))
+ while (*body && c_isspace (*body))
body++;
}
diff --git a/gdb/xstormy16-tdep.c b/gdb/xstormy16-tdep.c
index b4042f1..b63dfa0 100644
--- a/gdb/xstormy16-tdep.c
+++ b/gdb/xstormy16-tdep.c
@@ -546,14 +546,14 @@ xstormy16_find_jmp_table_entry (struct gdbarch *gdbarch, CORE_ADDR faddr)
if (!strcmp (faddr_sect->the_bfd_section->name, ".plt"))
return faddr;
- for (obj_section *osect : faddr_sect->objfile->sections ())
+ for (obj_section &osect : faddr_sect->objfile->sections ())
{
- if (!strcmp (osect->the_bfd_section->name, ".plt"))
+ if (!strcmp (osect.the_bfd_section->name, ".plt"))
{
CORE_ADDR addr, endaddr;
- addr = osect->addr ();
- endaddr = osect->endaddr ();
+ addr = osect.addr ();
+ endaddr = osect.endaddr ();
for (; addr < endaddr; addr += 2 * xstormy16_inst_size)
{
diff --git a/gdb/z80-tdep.c b/gdb/z80-tdep.c
index abba50b..c8f0038 100644
--- a/gdb/z80-tdep.c
+++ b/gdb/z80-tdep.c
@@ -962,11 +962,11 @@ z80_overlay_update_1 (struct obj_section *osect)
/* we have interest for sections with same VMA */
for (objfile *objfile : current_program_space->objfiles ())
- for (obj_section *sect : objfile->sections ())
- if (section_is_overlay (sect))
+ for (obj_section &sect : objfile->sections ())
+ if (section_is_overlay (&sect))
{
- sect->ovly_mapped = (lma == bfd_section_lma (sect->the_bfd_section));
- i |= sect->ovly_mapped; /* true, if at least one section is mapped */
+ sect.ovly_mapped = (lma == bfd_section_lma (sect.the_bfd_section));
+ i |= sect.ovly_mapped; /* true, if at least one section is mapped */
}
return i;
}
@@ -985,18 +985,18 @@ z80_overlay_update (struct obj_section *osect)
/* Update all sections, even if only one was requested. */
for (objfile *objfile : current_program_space->objfiles ())
- for (obj_section *sect : objfile->sections ())
+ for (obj_section &sect : objfile->sections ())
{
- if (!section_is_overlay (sect))
+ if (!section_is_overlay (&sect))
continue;
- asection *bsect = sect->the_bfd_section;
+ asection *bsect = sect.the_bfd_section;
bfd_vma lma = bfd_section_lma (bsect);
bfd_vma vma = bfd_section_vma (bsect);
for (int i = 0; i < cache_novly_regions; ++i)
if (cache_ovly_region_table[i][Z80_VMA] == vma)
- sect->ovly_mapped =
+ sect.ovly_mapped =
(cache_ovly_region_table[i][Z80_MAPPED_TO_LMA] == lma);
}
}
@@ -1173,7 +1173,7 @@ z80_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_skip_prologue (gdbarch, z80_skip_prologue);
set_gdbarch_inner_than (gdbarch, core_addr_lessthan); // falling stack
- set_gdbarch_software_single_step (gdbarch, z80_software_single_step);
+ set_gdbarch_get_next_pcs (gdbarch, z80_software_single_step);
set_gdbarch_breakpoint_kind_from_pc (gdbarch, z80_breakpoint_kind_from_pc);
set_gdbarch_sw_breakpoint_from_kind (gdbarch, z80_sw_breakpoint_from_kind);
set_gdbarch_insn_is_call (gdbarch, z80_insn_is_call);
diff --git a/gdbserver/ax.cc b/gdbserver/ax.cc
index 567ef7f..18fc894 100644
--- a/gdbserver/ax.cc
+++ b/gdbserver/ax.cc
@@ -817,7 +817,6 @@ ax_printf (CORE_ADDR fn, CORE_ADDR chan, const char *format,
{
const char *f = format;
int i;
- const char *current_substring;
int nargs_wanted;
ax_debug ("Printf of \"%s\" with %d args", format, nargs);
@@ -835,7 +834,8 @@ ax_printf (CORE_ADDR fn, CORE_ADDR chan, const char *format,
i = 0;
for (auto &&piece : fpieces)
{
- current_substring = piece.string;
+ const char *current_substring = fpieces.piece_str (piece);
+
ax_debug ("current substring is '%s', class is %d",
current_substring, piece.argclass);
switch (piece.argclass)
diff --git a/gdbserver/configure b/gdbserver/configure
index b45b55f..1554296 100755
--- a/gdbserver/configure
+++ b/gdbserver/configure
@@ -7531,119 +7531,6 @@ $as_echo "#define HAVE_CXX17 1" >>confdefs.h
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-
ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
if test "x$ac_cv_type_size_t" = xyes; then :
@@ -7920,118 +7807,6 @@ fi
# Set the 'development' global.
. $srcdir/../bfd/development.sh
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
diff --git a/gdbserver/configure.ac b/gdbserver/configure.ac
index bd2cac8..f5a669a 100644
--- a/gdbserver/configure.ac
+++ b/gdbserver/configure.ac
@@ -50,8 +50,6 @@ AC_ARG_PROGRAM
# necessary, set CXX_DIALECT to some -std=xxx switch.
AX_CXX_COMPILE_STDCXX(17, , mandatory)
-AC_HEADER_STDC
-
GDB_AC_COMMON
# This is set by GDB_AC_COMMON.
AC_SUBST(WIN32APILIBS)
diff --git a/gdbserver/gdbreplay.cc b/gdbserver/gdbreplay.cc
index 44aa2fb..1c6c41c 100644
--- a/gdbserver/gdbreplay.cc
+++ b/gdbserver/gdbreplay.cc
@@ -32,7 +32,6 @@
#if HAVE_SIGNAL_H
#include <signal.h>
#endif
-#include <ctype.h>
#if HAVE_FCNTL_H
#include <fcntl.h>
#endif
@@ -462,7 +461,7 @@ static void
gdbreplay_version (void)
{
printf ("GNU gdbreplay %s%s\n"
- "Copyright (C) 2024 Free Software Foundation, Inc.\n"
+ "Copyright (C) 2025 Free Software Foundation, Inc.\n"
"gdbreplay is free software, covered by "
"the GNU General Public License.\n"
"This gdbreplay was configured as \"%s\"\n",
diff --git a/gdbserver/i387-fp.cc b/gdbserver/i387-fp.cc
index 4be0083..90824bd 100644
--- a/gdbserver/i387-fp.cc
+++ b/gdbserver/i387-fp.cc
@@ -21,7 +21,7 @@
#include "nat/x86-xstate.h"
/* Default to SSE. */
-static uint64_t x86_xcr0 = X86_XSTATE_SSE_MASK;
+static uint64_t x86_xstate_bv = X86_XSTATE_SSE_MASK;
static const int num_avx512_k_registers = 8;
static const int num_pkeys_registers = 1;
@@ -265,7 +265,7 @@ i387_cache_to_xsave (struct regcache *regcache, void *buf)
/* The supported bits in `xstat_bv' are 8 bytes. Clear part in
vector registers if its bit in xstat_bv is zero. */
- clear_bv = (~fp->xstate_bv) & x86_xcr0;
+ clear_bv = (~fp->xstate_bv) & x86_xstate_bv;
/* Clear part in x87 and vector registers if its bit in xstat_bv is
zero. */
@@ -315,7 +315,7 @@ i387_cache_to_xsave (struct regcache *regcache, void *buf)
}
/* Check if any x87 registers are changed. */
- if ((x86_xcr0 & X86_XSTATE_X87))
+ if ((x86_xstate_bv & X86_XSTATE_X87))
{
int st0_regnum = find_regno (regcache->tdesc, "st0");
@@ -332,7 +332,7 @@ i387_cache_to_xsave (struct regcache *regcache, void *buf)
}
/* Check if any SSE registers are changed. */
- if ((x86_xcr0 & X86_XSTATE_SSE))
+ if ((x86_xstate_bv & X86_XSTATE_SSE))
{
int xmm0_regnum = find_regno (regcache->tdesc, "xmm0");
@@ -349,7 +349,7 @@ i387_cache_to_xsave (struct regcache *regcache, void *buf)
}
/* Check if any AVX registers are changed. */
- if ((x86_xcr0 & X86_XSTATE_AVX))
+ if ((x86_xstate_bv & X86_XSTATE_AVX))
{
int ymm0h_regnum = find_regno (regcache->tdesc, "ymm0h");
@@ -366,7 +366,7 @@ i387_cache_to_xsave (struct regcache *regcache, void *buf)
}
/* Check if any K registers are changed. */
- if ((x86_xcr0 & X86_XSTATE_K))
+ if ((x86_xstate_bv & X86_XSTATE_K))
{
int k0_regnum = find_regno (regcache->tdesc, "k0");
@@ -383,7 +383,7 @@ i387_cache_to_xsave (struct regcache *regcache, void *buf)
}
/* Check if any of ZMM0H-ZMM15H registers are changed. */
- if ((x86_xcr0 & X86_XSTATE_ZMM_H))
+ if ((x86_xstate_bv & X86_XSTATE_ZMM_H))
{
int zmm0h_regnum = find_regno (regcache->tdesc, "zmm0h");
@@ -400,7 +400,7 @@ i387_cache_to_xsave (struct regcache *regcache, void *buf)
}
/* Check if any of ZMM16-ZMM31 registers are changed. */
- if ((x86_xcr0 & X86_XSTATE_ZMM) && num_zmm_high_registers != 0)
+ if ((x86_xstate_bv & X86_XSTATE_ZMM) && num_zmm_high_registers != 0)
{
int zmm16h_regnum = find_regno (regcache->tdesc, "zmm16h");
int ymm16h_regnum = find_regno (regcache->tdesc, "ymm16h");
@@ -437,7 +437,7 @@ i387_cache_to_xsave (struct regcache *regcache, void *buf)
}
/* Check if any PKEYS registers are changed. */
- if ((x86_xcr0 & X86_XSTATE_PKRU))
+ if ((x86_xstate_bv & X86_XSTATE_PKRU))
{
int pkru_regnum = find_regno (regcache->tdesc, "pkru");
@@ -453,7 +453,7 @@ i387_cache_to_xsave (struct regcache *regcache, void *buf)
}
}
- if ((x86_xcr0 & X86_XSTATE_SSE) || (x86_xcr0 & X86_XSTATE_AVX))
+ if ((x86_xstate_bv & X86_XSTATE_SSE) || (x86_xstate_bv & X86_XSTATE_AVX))
{
collect_register_by_name (regcache, "mxcsr", raw);
if (memcmp (raw, &fp->mxcsr, 4) != 0)
@@ -465,7 +465,7 @@ i387_cache_to_xsave (struct regcache *regcache, void *buf)
}
}
- if (x86_xcr0 & X86_XSTATE_X87)
+ if (x86_xstate_bv & X86_XSTATE_X87)
{
collect_register_by_name (regcache, "fioff", raw);
if (memcmp (raw, &fp->fioff, 4) != 0)
@@ -658,10 +658,10 @@ i387_xsave_to_cache (struct regcache *regcache, const void *buf)
/* The supported bits in `xstat_bv' are 8 bytes. Clear part in
vector registers if its bit in xstat_bv is zero. */
- clear_bv = (~fp->xstate_bv) & x86_xcr0;
+ clear_bv = (~fp->xstate_bv) & x86_xstate_bv;
/* Check if any x87 registers are changed. */
- if ((x86_xcr0 & X86_XSTATE_X87) != 0)
+ if ((x86_xstate_bv & X86_XSTATE_X87) != 0)
{
int st0_regnum = find_regno (regcache->tdesc, "st0");
@@ -678,7 +678,7 @@ i387_xsave_to_cache (struct regcache *regcache, const void *buf)
}
}
- if ((x86_xcr0 & X86_XSTATE_SSE) != 0)
+ if ((x86_xstate_bv & X86_XSTATE_SSE) != 0)
{
int xmm0_regnum = find_regno (regcache->tdesc, "xmm0");
@@ -695,7 +695,7 @@ i387_xsave_to_cache (struct regcache *regcache, const void *buf)
}
}
- if ((x86_xcr0 & X86_XSTATE_AVX) != 0)
+ if ((x86_xstate_bv & X86_XSTATE_AVX) != 0)
{
int ymm0h_regnum = find_regno (regcache->tdesc, "ymm0h");
@@ -712,7 +712,7 @@ i387_xsave_to_cache (struct regcache *regcache, const void *buf)
}
}
- if ((x86_xcr0 & X86_XSTATE_K) != 0)
+ if ((x86_xstate_bv & X86_XSTATE_K) != 0)
{
int k0_regnum = find_regno (regcache->tdesc, "k0");
@@ -729,7 +729,7 @@ i387_xsave_to_cache (struct regcache *regcache, const void *buf)
}
}
- if ((x86_xcr0 & X86_XSTATE_ZMM_H) != 0)
+ if ((x86_xstate_bv & X86_XSTATE_ZMM_H) != 0)
{
int zmm0h_regnum = find_regno (regcache->tdesc, "zmm0h");
@@ -746,7 +746,7 @@ i387_xsave_to_cache (struct regcache *regcache, const void *buf)
}
}
- if ((x86_xcr0 & X86_XSTATE_ZMM) != 0 && num_zmm_high_registers != 0)
+ if ((x86_xstate_bv & X86_XSTATE_ZMM) != 0 && num_zmm_high_registers != 0)
{
int zmm16h_regnum = find_regno (regcache->tdesc, "zmm16h");
int ymm16h_regnum = find_regno (regcache->tdesc, "ymm16h");
@@ -773,7 +773,7 @@ i387_xsave_to_cache (struct regcache *regcache, const void *buf)
}
}
- if ((x86_xcr0 & X86_XSTATE_PKRU) != 0)
+ if ((x86_xstate_bv & X86_XSTATE_PKRU) != 0)
{
int pkru_regnum = find_regno (regcache->tdesc, "pkru");
@@ -858,5 +858,5 @@ i387_xsave_to_cache (struct regcache *regcache, const void *buf)
std::pair<uint64_t *, x86_xsave_layout *>
i387_get_xsave_storage ()
{
- return { &x86_xcr0, &xsave_layout };
+ return { &x86_xstate_bv, &xsave_layout };
}
diff --git a/gdbserver/linux-aarch64-low.cc b/gdbserver/linux-aarch64-low.cc
index 2eb3af6..9d3ac80 100644
--- a/gdbserver/linux-aarch64-low.cc
+++ b/gdbserver/linux-aarch64-low.cc
@@ -39,6 +39,7 @@
#include "gdb_proc_service.h"
#include "arch/aarch64.h"
+#include "arch/aarch64-gcs-linux.h"
#include "arch/aarch64-mte-linux.h"
#include "arch/aarch64-scalable-linux.h"
#include "linux-aarch32-tdesc.h"
@@ -321,6 +322,42 @@ aarch64_store_tlsregset (struct regcache *regcache, const void *buf)
supply_register (regcache, *regnum, tls_buf + sizeof (uint64_t));
}
+/* Fill BUF with the GCS registers from REGCACHE. */
+
+static void
+aarch64_fill_gcsregset (regcache *regcache, void *buf)
+{
+ user_gcs *regset = (user_gcs *) buf;
+ int gcspr_regnum = find_regno (regcache->tdesc, "gcspr");
+ int features_enabled_regnum = find_regno (regcache->tdesc,
+ "gcs_features_enabled");
+ int features_locked_regnum = find_regno (regcache->tdesc,
+ "gcs_features_locked");
+
+ collect_register (regcache, gcspr_regnum, &regset->gcspr_el0);
+ collect_register (regcache, features_enabled_regnum,
+ &regset->features_enabled);
+ collect_register (regcache, features_locked_regnum, &regset->features_locked);
+}
+
+/* Store the GCS registers in BUF to REGCACHE. */
+
+static void
+aarch64_store_gcsregset (regcache *regcache, const void *buf)
+{
+ const user_gcs *regset = (const user_gcs *) buf;
+ int gcspr_regnum = find_regno (regcache->tdesc, "gcspr");
+ int features_enabled_regnum = find_regno (regcache->tdesc,
+ "gcs_features_enabled");
+ int features_locked_regnum = find_regno (regcache->tdesc,
+ "gcs_features_locked");
+
+ supply_register (regcache, gcspr_regnum, &regset->gcspr_el0);
+ supply_register (regcache, features_enabled_regnum,
+ &regset->features_enabled);
+ supply_register (regcache, features_locked_regnum, &regset->features_locked);
+}
+
bool
aarch64_target::low_supports_breakpoints ()
{
@@ -846,6 +883,10 @@ static struct regset_info aarch64_regsets[] =
{ PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_TLS,
0, OPTIONAL_REGS,
aarch64_fill_tlsregset, aarch64_store_tlsregset },
+ /* Guarded Control Stack registers. */
+ { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_GCS,
+ 0, OPTIONAL_REGS,
+ aarch64_fill_gcsregset, aarch64_store_gcsregset },
NULL_REGSET
};
@@ -909,6 +950,10 @@ aarch64_adjust_register_sets (const struct aarch64_features &features)
if (features.sme2)
regset->size = AARCH64_SME2_ZT0_SIZE;
break;
+ case NT_ARM_GCS:
+ if (features.gcs_linux)
+ regset->size = sizeof (user_gcs);
+ break;
default:
gdb_assert_not_reached ("Unknown register set found.");
}
@@ -940,6 +985,7 @@ aarch64_target::low_arch_setup ()
/* A-profile MTE is 64-bit only. */
features.mte = linux_get_hwcap2 (pid, 8) & HWCAP2_MTE;
features.tls = aarch64_tls_register_count (tid);
+ features.gcs = features.gcs_linux = linux_get_hwcap (pid, 8) & HWCAP_GCS;
/* Scalable Matrix Extension feature and size check. */
if (linux_get_hwcap2 (pid, 8) & HWCAP2_SME)
diff --git a/gdbserver/linux-amd64-ipa.cc b/gdbserver/linux-amd64-ipa.cc
index af4eb03..ec66367 100644
--- a/gdbserver/linux-amd64-ipa.cc
+++ b/gdbserver/linux-amd64-ipa.cc
@@ -82,7 +82,7 @@ get_raw_reg (const unsigned char *raw_regs, int regnum)
const struct target_desc *
get_ipa_tdesc (int idx)
{
- uint64_t xcr0 = x86_linux_tdesc_idx_to_xcr0 (idx);
+ uint64_t xstate_bv = x86_linux_tdesc_idx_to_xstate_bv (idx);
#if defined __ILP32__
bool is_x32 = true;
@@ -90,7 +90,7 @@ get_ipa_tdesc (int idx)
bool is_x32 = false;
#endif
- return amd64_linux_read_description (xcr0, is_x32);
+ return amd64_linux_read_description (xstate_bv, is_x32);
}
/* Allocate buffer for the jump pads. The branch instruction has a
@@ -159,9 +159,11 @@ initialize_low_tracepoint (void)
{
#if defined __ILP32__
for (int i = 0; i < x86_linux_x32_tdesc_count (); i++)
- amd64_linux_read_description (x86_linux_tdesc_idx_to_xcr0 (i), true);
+ amd64_linux_read_description
+ (x86_linux_tdesc_idx_to_xstate_bv (i), true);
#else
for (int i = 0; i < x86_linux_amd64_tdesc_count (); i++)
- amd64_linux_read_description (x86_linux_tdesc_idx_to_xcr0 (i), false);
+ amd64_linux_read_description
+ (x86_linux_tdesc_idx_to_xstate_bv (i), false);
#endif
}
diff --git a/gdbserver/linux-i386-ipa.cc b/gdbserver/linux-i386-ipa.cc
index 17af6eb..4f8398d 100644
--- a/gdbserver/linux-i386-ipa.cc
+++ b/gdbserver/linux-i386-ipa.cc
@@ -174,9 +174,9 @@ initialize_fast_tracepoint_trampoline_buffer (void)
const struct target_desc *
get_ipa_tdesc (int idx)
{
- uint64_t xcr0 = x86_linux_tdesc_idx_to_xcr0 (idx);
+ uint64_t xstate_bv = x86_linux_tdesc_idx_to_xstate_bv (idx);
- return i386_linux_read_description (xcr0);
+ return i386_linux_read_description (xstate_bv);
}
/* Allocate buffer for the jump pads. On i386, we can reach an arbitrary
@@ -199,5 +199,5 @@ initialize_low_tracepoint (void)
{
initialize_fast_tracepoint_trampoline_buffer ();
for (int i = 0; i < x86_linux_i386_tdesc_count (); i++)
- i386_linux_read_description (x86_linux_tdesc_idx_to_xcr0 (i));
+ i386_linux_read_description (x86_linux_tdesc_idx_to_xstate_bv (i));
}
diff --git a/gdbserver/linux-low.cc b/gdbserver/linux-low.cc
index 3964270..98e5815 100644
--- a/gdbserver/linux-low.cc
+++ b/gdbserver/linux-low.cc
@@ -46,7 +46,6 @@
#include <langinfo.h>
#include <iconv.h>
#include "gdbsupport/filestuff.h"
-#include "gdbsupport/gdb-safe-ctype.h"
#include "tracepoint.h"
#include <inttypes.h>
#include "gdbsupport/common-inferior.h"
@@ -5006,23 +5005,31 @@ regsets_fetch_inferior_registers (struct regsets_info *regsets_info,
if (res < 0)
{
if (errno == EIO
- || (errno == EINVAL && regset->type == OPTIONAL_REGS))
+ || (errno == EINVAL
+ && (regset->type == OPTIONAL_REGS
+ || regset->type == OPTIONAL_RUNTIME_REGS)))
{
/* If we get EIO on a regset, or an EINVAL and the regset is
- optional, do not try it again for this process mode. */
+ optional, do not try it again for this process mode.
+ Even if the regset can be enabled at runtime it is safe
+ to deactivate the regset in case of EINVAL, as we know
+ the regset itself was the invalid argument of the ptrace
+ call which means that it's unsupported by the kernel. */
disable_regset (regsets_info, regset);
}
- else if (errno == ENODATA)
+ else if (errno == ENODATA
+ || (errno == ENODEV
+ && regset->type == OPTIONAL_RUNTIME_REGS)
+ || errno == ESRCH)
{
- /* ENODATA may be returned if the regset is currently
- not "active". This can happen in normal operation,
- so suppress the warning in this case. */
- }
- else if (errno == ESRCH)
- {
- /* At this point, ESRCH should mean the process is
- already gone, in which case we simply ignore attempts
- to read its registers. */
+ /* ENODATA or ENODEV may be returned if the regset is
+ currently not "active". For ENODEV we additionally check
+ if the register set is of type OPTIONAL_RUNTIME_REGS.
+ This can happen in normal operation, so suppress the
+ warning in this case.
+ ESRCH should mean the process is already gone at this
+ point, in which case we simply ignore attempts to read
+ its registers. */
}
else
{
@@ -5104,12 +5111,26 @@ regsets_store_inferior_registers (struct regsets_info *regsets_info,
if (res < 0)
{
if (errno == EIO
- || (errno == EINVAL && regset->type == OPTIONAL_REGS))
+ || (errno == EINVAL
+ && (regset->type == OPTIONAL_REGS
+ || regset->type == OPTIONAL_RUNTIME_REGS)))
{
/* If we get EIO on a regset, or an EINVAL and the regset is
- optional, do not try it again for this process mode. */
+ optional, do not try it again for this process mode.
+ Even if the regset can be enabled at runtime it is safe
+ to deactivate the regset in case of EINVAL, as we know
+ the regset itself was the invalid argument of the ptrace
+ call which means that it's unsupported by the kernel. */
disable_regset (regsets_info, regset);
}
+ else if (errno == ENODEV
+ && regset->type == OPTIONAL_RUNTIME_REGS)
+ {
+ /* If we get ENODEV on a regset and the regset can be
+ enabled at runtime try it again for this process mode.
+ This can happen in normal operation, so suppress the
+ warning in this case. */
+ }
else if (errno == ESRCH)
{
/* At this point, ESRCH should mean the process is
@@ -6990,7 +7011,7 @@ replace_non_ascii (char *dest, const char *name)
const char *result = dest;
while (*name != '\0')
{
- if (!ISPRINT (*name))
+ if (!c_isprint (*name))
*dest++ = '?';
else
*dest++ = *name;
diff --git a/gdbserver/linux-low.h b/gdbserver/linux-low.h
index e1c88ee..5710e49 100644
--- a/gdbserver/linux-low.h
+++ b/gdbserver/linux-low.h
@@ -42,7 +42,12 @@ enum regset_type {
GENERAL_REGS,
FP_REGS,
EXTENDED_REGS,
- OPTIONAL_REGS, /* Do not error if the regset cannot be accessed. */
+ OPTIONAL_REGS, /* Do not error if the regset cannot be accessed.
+ Disable the regset instead. */
+ OPTIONAL_RUNTIME_REGS, /* Some optional regsets can only be accessed
+ dependent on the execution flow. For such
+ access errors don't show a warning and don't
+ disable the regset. */
};
/* The arch's regsets array initializer must be terminated with a NULL
diff --git a/gdbserver/linux-riscv-low.cc b/gdbserver/linux-riscv-low.cc
index 8c742f4..f70ed59 100644
--- a/gdbserver/linux-riscv-low.cc
+++ b/gdbserver/linux-riscv-low.cc
@@ -58,6 +58,10 @@ protected:
void low_set_pc (regcache *regcache, CORE_ADDR newpc) override;
bool low_breakpoint_at (CORE_ADDR pc) override;
+
+ bool low_supports_catch_syscall () override;
+
+ void low_get_syscall_trapinfo (regcache *regcache, int *sysno) override;
};
/* The singleton target ops object. */
@@ -78,6 +82,26 @@ riscv_target::low_cannot_store_register (int regno)
"is not implemented by the target");
}
+/* Implementation of linux target ops method "low_supports_catch_syscall". */
+
+bool
+riscv_target::low_supports_catch_syscall ()
+{
+ return true;
+}
+
+/* Implementation of linux target ops method "low_get_syscall_trapinfo". */
+
+void
+riscv_target::low_get_syscall_trapinfo (regcache *regcache, int *sysno)
+{
+ LONGEST l_sysno;
+
+ /* The content of a register. */
+ collect_register_by_name (regcache, "a7", &l_sysno);
+ *sysno = (int)l_sysno;
+}
+
/* Implementation of linux target ops method "low_arch_setup". */
void
diff --git a/gdbserver/linux-x86-low.cc b/gdbserver/linux-x86-low.cc
index 918630d..44257d5 100644
--- a/gdbserver/linux-x86-low.cc
+++ b/gdbserver/linux-x86-low.cc
@@ -253,7 +253,8 @@ static const int x86_64_regmap[] =
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
- -1 /* pkru */
+ -1, /* pkru */
+ -1 /* CET user mode register PL3_SSP. */
};
#define X86_64_NUM_REGS (sizeof (x86_64_regmap) / sizeof (x86_64_regmap[0]))
@@ -406,6 +407,18 @@ x86_target::low_cannot_fetch_register (int regno)
}
static void
+x86_fill_ssp_reg (regcache *regcache, void *buf)
+{
+ collect_register_by_name (regcache, "pl3_ssp", buf);
+}
+
+static void
+x86_store_ssp_reg (regcache *regcache, const void *buf)
+{
+ supply_register_by_name (regcache, "pl3_ssp", buf);
+}
+
+static void
collect_register_i386 (struct regcache *regcache, int regno, void *buf)
{
collect_register (regcache, regno, buf);
@@ -544,6 +557,8 @@ static struct regset_info x86_regsets[] =
x86_fill_gregset, x86_store_gregset },
{ PTRACE_GETREGSET, PTRACE_SETREGSET, NT_X86_XSTATE, 0,
EXTENDED_REGS, x86_fill_xstateregset, x86_store_xstateregset },
+ { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_X86_SHSTK, 0,
+ OPTIONAL_RUNTIME_REGS, x86_fill_ssp_reg, x86_store_ssp_reg },
# ifndef __x86_64__
# ifdef HAVE_PTRACE_GETFPXREGS
{ PTRACE_GETFPXREGS, PTRACE_SETFPXREGS, 0, sizeof (elf_fpxregset_t),
@@ -873,7 +888,7 @@ x86_linux_read_description ()
bool have_ptrace_getregset_was_unknown
= have_ptrace_getregset == TRIBOOL_UNKNOWN;
- /* Get pointers to where we should store the xcr0 and xsave_layout
+ /* Get pointers to where we should store the xstate_bv and xsave_layout
values. These will be filled in by x86_linux_tdesc_for_tid the first
time that the function is called. Subsequent calls will not modify
the stored values. */
@@ -894,7 +909,23 @@ x86_linux_read_description ()
regset++)
{
if (regset->get_request == PTRACE_GETREGSET)
- regset->size = xsave_len;
+ {
+ if (regset->nt_type == NT_X86_XSTATE)
+ regset->size = xsave_len;
+ else if (regset->nt_type == NT_X86_SHSTK)
+ {
+ /* We must configure the size of the NT_X86_SHSTK regset
+ from non-zero value to it's appropriate size, even though
+ the ptrace call is only tested for NT_X86_XSTATE request,
+ because the NT_X86_SHSTK regset is of type
+ OPTIONAL_RUNTIME_REGS. A ptrace call with NT_X86_SHSTK
+ request may only be successful later on, once shadow
+ stack is enabled for the current thread. */
+ regset->size = sizeof (CORE_ADDR);
+ }
+ else
+ gdb_assert_not_reached ("invalid regset type.");
+ }
else if (regset->type != GENERAL_REGS)
regset->size = 0;
}
@@ -2887,17 +2918,16 @@ x86_target::get_ipa_tdesc_idx ()
|| tdesc == tdesc_amd64_linux_no_xml.get ()
#endif /* __x86_64__ */
);
- return x86_linux_xcr0_to_tdesc_idx (X86_XSTATE_SSE_MASK);
+ return x86_linux_xstate_bv_to_tdesc_idx (X86_XSTATE_SSE_MASK);
}
- /* The xcr0 value and xsave layout value are cached when the target
+ /* The xstate_bv value and xsave layout value are cached when the target
description is read. Grab their cache location, and use the cached
value to calculate a tdesc index. */
std::pair<uint64_t *, x86_xsave_layout *> storage
= i387_get_xsave_storage ();
- uint64_t xcr0 = *storage.first;
- return x86_linux_xcr0_to_tdesc_idx (xcr0);
+ return x86_linux_xstate_bv_to_tdesc_idx (*storage.first);
}
/* The linux target ops object. */
diff --git a/gdbserver/remote-utils.cc b/gdbserver/remote-utils.cc
index 15f073d..7606559 100644
--- a/gdbserver/remote-utils.cc
+++ b/gdbserver/remote-utils.cc
@@ -30,7 +30,6 @@
#include "gdbsupport/netstuff.h"
#include "gdbsupport/filestuff.h"
#include "gdbsupport/gdb-sigmask.h"
-#include <ctype.h>
#if HAVE_SYS_IOCTL_H
#include <sys/ioctl.h>
#endif
@@ -759,7 +758,7 @@ input_interrupt (int unused)
else if (cc != 1 || c != '\003')
{
fprintf (stderr, "input_interrupt, count = %d c = %d ", cc, c);
- if (isprint (c))
+ if (c_isprint (c))
fprintf (stderr, "('%c')\n", c);
else
fprintf (stderr, "('\\x%02x')\n", c & 0xff);
@@ -1165,8 +1164,8 @@ prepare_resume_reply (char *buf, ptid_t ptid, const target_waitstatus &status)
here is convert the buffer from a T packet to an S packet
and the avoid adding any extra content by breaking out. */
gdb_assert (buf_start[0] == 'T');
- gdb_assert (isxdigit (buf_start[1]));
- gdb_assert (isxdigit (buf_start[2]));
+ gdb_assert (c_isxdigit (buf_start[1]));
+ gdb_assert (c_isxdigit (buf_start[2]));
buf_start[0] = 'S';
buf_start[3] = '\0';
break;
diff --git a/gdbserver/server.cc b/gdbserver/server.cc
index 673b784..5b40600 100644
--- a/gdbserver/server.cc
+++ b/gdbserver/server.cc
@@ -22,7 +22,6 @@
#include "tdesc.h"
#include "gdbsupport/rsp-low.h"
#include "gdbsupport/signals-state-save-restore.h"
-#include <ctype.h>
#include <unistd.h>
#if HAVE_SIGNAL_H
#include <signal.h>
@@ -1427,7 +1426,7 @@ parse_debug_format_options (const char *arg, int is_monitor)
debug_timestamp = 0;
/* First remove leading spaces, for "monitor set debug-format". */
- while (isspace (*arg))
+ while (c_isspace (*arg))
++arg;
std::vector<gdb::unique_xmalloc_ptr<char>> options
@@ -1473,8 +1472,8 @@ parse_debug_format_options (const char *arg, int is_monitor)
struct debug_opt
{
/* NAME is the name of this debug option, this should be a simple string
- containing no whitespace, starting with a letter from isalpha(), and
- contain only isalnum() characters and '_' underscore and '-' hyphen.
+ containing no whitespace, starting with a letter from c_isalpha(), and
+ contain only c_isalnum() characters and '_' underscore and '-' hyphen.
SETTER is a callback function used to set the debug variable. This
callback will be passed true to enable the debug setting, or false to
@@ -1483,7 +1482,7 @@ struct debug_opt
: m_name (name),
m_setter (setter)
{
- gdb_assert (isalpha (*name));
+ gdb_assert (c_isalpha (*name));
}
/* Called to enable or disable the debug setting. */
@@ -2745,6 +2744,8 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p)
}
else if (feature == "error-message+")
cs.error_message_supported = true;
+ else if (feature == "single-inf-arg+")
+ cs.single_inferior_argument = true;
else
{
/* Move the unknown features all together. */
@@ -2872,6 +2873,9 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p)
if (target_supports_memory_tagging ())
strcat (own_buf, ";memory-tagging+");
+ if (cs.single_inferior_argument)
+ strcat (own_buf, ";single-inf-arg+");
+
/* Reinitialize components as needed for the new connection. */
hostio_handle_new_gdb_connection ();
target_handle_new_gdb_connection ();
@@ -3464,7 +3468,20 @@ handle_v_run (char *own_buf)
else
program_path.set (new_program_name.get ());
- program_args = gdb::remote_args::join (new_argv.get ());
+ if (cs.single_inferior_argument)
+ {
+ if (new_argv.get ().size () > 1)
+ {
+ write_enn (own_buf);
+ return;
+ }
+ else if (new_argv.get ().size () == 1)
+ program_args = std::string (new_argv.get ()[0]);
+ else
+ program_args.clear ();
+ }
+ else
+ program_args = gdb::remote_args::join (new_argv.get ());
try
{
@@ -3812,7 +3829,7 @@ static void
gdbserver_version (void)
{
printf ("GNU gdbserver %s%s\n"
- "Copyright (C) 2024 Free Software Foundation, Inc.\n"
+ "Copyright (C) 2025 Free Software Foundation, Inc.\n"
"gdbserver is free software, covered by the "
"GNU General Public License.\n"
"This gdbserver was configured as \"%s\"\n",
@@ -3852,10 +3869,20 @@ gdbserver_usage (FILE *stream)
" --startup-with-shell\n"
" Start PROG using a shell. I.e., execs a shell that\n"
" then execs PROG. (default)\n"
+ " To make use of globbing and variable substitution for\n"
+ " arguments passed directly on gdbserver invocation,\n"
+ " see the --no-escape-args command line option in\n"
+ " addition\n"
" --no-startup-with-shell\n"
" Exec PROG directly instead of using a shell.\n"
- " Disables argument globbing and variable substitution\n"
- " on UNIX-like systems.\n"
+ " --no-escape-args\n"
+ " If PROG is started using a shell (see the\n"
+ " --[no-]startup-with-shell option),\n"
+ " ARGS passed directly on gdbserver invocation are\n"
+ " escaped, so no globbing or variable substitution\n"
+ " happens for those. This option disables escaping, so\n"
+ " globbing and variable substitution in the shell\n"
+ " are done for ARGS on UNIX-like systems.\n"
"\n"
"Debug options:\n"
"\n"
@@ -4111,6 +4138,7 @@ captured_main (int argc, char *argv[])
volatile bool multi_mode = false;
volatile bool attach = false;
bool selftest = false;
+ bool escape_args = true;
#if GDB_SELF_TEST
std::vector<const char *> selftest_filters;
@@ -4133,7 +4161,7 @@ captured_main (int argc, char *argv[])
OPT_DEBUG, OPT_DEBUG_FILE, OPT_DEBUG_FORMAT, OPT_DISABLE_PACKET,
OPT_DISABLE_RANDOMIZATION, OPT_NO_DISABLE_RANDOMIZATION,
OPT_STARTUP_WITH_SHELL, OPT_NO_STARTUP_WITH_SHELL, OPT_ONCE,
- OPT_SELFTEST,
+ OPT_SELFTEST, OPT_NO_ESCAPE
};
static struct option longopts[] =
@@ -4158,6 +4186,7 @@ captured_main (int argc, char *argv[])
OPT_NO_STARTUP_WITH_SHELL},
{"once", no_argument, nullptr, OPT_ONCE},
{"selftest", optional_argument, nullptr, OPT_SELFTEST},
+ {"no-escape-args", no_argument, nullptr, OPT_NO_ESCAPE},
{nullptr, no_argument, nullptr, 0}
};
@@ -4173,27 +4202,60 @@ captured_main (int argc, char *argv[])
If getopt_long is free to reorder ARGV then it will try to steal those
arguments for itself. */
while ((longindex = -1,
- optc = getopt_long (argc, argv, "+", longopts, &longindex)) != -1)
- {
- /* We only support '--option=value' form, not '--option value'. To
- achieve this, if global OPTARG points to the start of the previous
- ARGV entry, then we must have used the second (unsupported) form,
- so set OPTARG to NULL and decrement OPTIND to make it appear that
- there was no value passed. If the option requires an argument,
- then this means we should convert OPTC to '?' to indicate an
- error. */
+ optc = getopt_long (argc, argv, "+:", longopts, &longindex)) != -1)
+ {
+ /* As a GNU extension, getopt_long supports '--arg value' form,
+ without an '=' symbol between the 'arg' and the 'value'. This
+ block aids in supporting this form.
+
+ If we found a matching entry in LONGOPTS, the entry has an
+ optional argument, and OPTARG is NULL, then this indicates that we
+ saw the '--arg value' form. Look at the next ARGV entry to see if
+ it exists, and doesn't look like a port number, or the start of
+ another argument. If this is the case, then make the next ARGV
+ entry the argument value. Otherwise, continue with no
+ argument.
+
+ If we found a matching entry in LONGOPTS, the entry has a required
+ argument, then OPTARG will not be NULL. In this case, if the
+ start of OPTARG is the start of the previous ARGV entry, then this
+ indicates we saw the '--arg value' form. If OPTARG looks like a
+ port number, or the start of another argument, then assume the
+ user didn't in fact pass a value, but forgot. Pretend we are
+ missing the argument value. */
if (longindex != -1
- && longopts[longindex].has_arg != no_argument)
+ && ((longopts[longindex].has_arg == optional_argument
+ &&optarg == nullptr)
+ || (longopts[longindex].has_arg == required_argument
+ && optarg == argv[optind - 1])))
{
- if (optarg == argv[optind - 1])
+ if (longopts[longindex].has_arg == optional_argument)
{
- optarg = nullptr;
- --optind;
+ /* Claim the next entry from ARGV as the argument value. */
+ optarg = argv[optind];
+ optind++;
}
+ else
+ gdb_assert (optarg != nullptr);
+
+ if (optarg == nullptr
+ || strcmp (optarg, "-") == 0
+ || strcmp (optarg, STDIO_CONNECTION_NAME) == 0
+ || startswith (optarg, "--")
+ || strchr (optarg, ':') != nullptr)
+ {
+ /* OPTARG is NULL, looks like a port number, or could be the
+ start of another argument. Clear OPTARG as we don't have
+ an argument, and decrement OPTIND so the next call to
+ getopt will process this as an argument. */
+ optarg = nullptr;
+ optind--;
- if (longopts[longindex].has_arg == required_argument
- && optarg == nullptr)
- optc = '?';
+ /* For required arguments, if we don't have an argument, then
+ this is an error, set OPTC to reflect this. */
+ if (longopts[longindex].has_arg == required_argument)
+ optc = ':';
+ }
}
switch (optc)
@@ -4361,6 +4423,11 @@ captured_main (int argc, char *argv[])
}
break;
+ case OPT_NO_ESCAPE:
+ escape_args = false;
+ break;
+
+ case ':':
case '?':
/* Figuring out which element of ARGV contained the invalid
argument is not simple. There are a couple of cases we need
@@ -4387,7 +4454,11 @@ captured_main (int argc, char *argv[])
else
bad_arg = argv[optind];
- fprintf (stderr, "Unknown argument: %s\n", bad_arg.c_str ());
+ if (optc == '?')
+ fprintf (stderr, _("Unknown argument: %s\n"), bad_arg.c_str ());
+ else
+ fprintf (stderr, _("Missing argument value for: %s\n"),
+ bad_arg.c_str ());
exit (1);
}
}
@@ -4476,7 +4547,8 @@ captured_main (int argc, char *argv[])
int n = argc - (next_arg - argv);
program_args
- = construct_inferior_arguments ({&next_arg[1], &next_arg[n]}, true);
+ = construct_inferior_arguments ({&next_arg[1], &next_arg[n]},
+ escape_args);
/* Wait till we are at first instruction in program. */
target_create_inferior (program_path.get (), program_args);
diff --git a/gdbserver/server.h b/gdbserver/server.h
index b9dacb8..1bf3e77 100644
--- a/gdbserver/server.h
+++ b/gdbserver/server.h
@@ -197,6 +197,11 @@ struct client_state
are not supported with qRcmd and m packets, but are still supported
everywhere else. This is for backward compatibility reasons. */
bool error_message_supported = false;
+
+ /* If true then we've agreed that the debugger will send all inferior
+ arguments as a single string. When false the debugger will attempt
+ to split the inferior arguments before sending them. */
+ bool single_inferior_argument = false;
};
client_state &get_client_state ();
diff --git a/gdbserver/thread-db.cc b/gdbserver/thread-db.cc
index 20e1dcc..b964389 100644
--- a/gdbserver/thread-db.cc
+++ b/gdbserver/thread-db.cc
@@ -32,7 +32,6 @@
#include <dlfcn.h>
#endif
#include <limits.h>
-#include <ctype.h>
struct thread_db
{
@@ -849,7 +848,7 @@ thread_db_handle_monitor_command (char *mon)
free (libthread_db_search_path);
/* Skip leading space (if any). */
- while (isspace (*cp))
+ while (c_isspace (*cp))
++cp;
if (*cp == '\0')
diff --git a/gdbserver/tracepoint.cc b/gdbserver/tracepoint.cc
index b308c82..e1044dc 100644
--- a/gdbserver/tracepoint.cc
+++ b/gdbserver/tracepoint.cc
@@ -20,7 +20,6 @@
#include "gdbthread.h"
#include "gdbsupport/rsp-low.h"
-#include <ctype.h>
#include <fcntl.h>
#include <unistd.h>
#include <chrono>
@@ -1867,7 +1866,7 @@ add_tracepoint_action (struct tracepoint *tpoint, const char *packet)
trace_debug ("Want to collect registers");
++act;
/* skip past hex digits of mask for now */
- while (isxdigit(*act))
+ while (c_isxdigit(*act))
++act;
break;
}
diff --git a/gdbsupport/common-defs.h b/gdbsupport/common-defs.h
index 8d7e2a9..6f58914 100644
--- a/gdbsupport/common-defs.h
+++ b/gdbsupport/common-defs.h
@@ -222,6 +222,12 @@
/* Pull in gdb::unique_xmalloc_ptr. */
#include "gdbsupport/gdb_unique_ptr.h"
+/* Note that there's no simple way to enforce the use of the c-ctype
+ functions. We can't poison the <ctype.h> functions (see
+ safe-ctype.h) because that will provoke errors from libstdc++
+ headers. */
+#include "c-ctype.h"
+
/* sbrk on macOS is not useful for our purposes, since sbrk(0) always
returns the same value. brk/sbrk on macOS is just an emulation
that always returns a pointer to a 4MB section reserved for
diff --git a/gdbsupport/common-utils.cc b/gdbsupport/common-utils.cc
index 266d836..5c7ba31 100644
--- a/gdbsupport/common-utils.cc
+++ b/gdbsupport/common-utils.cc
@@ -19,7 +19,6 @@
#include "common-utils.h"
#include "host-defs.h"
-#include "gdbsupport/gdb-safe-ctype.h"
#include "gdbsupport/gdb-xfree.h"
void *
@@ -180,7 +179,7 @@ extract_string_maybe_quoted (const char **arg)
/* Parse p similarly to gdb_argv buildargv function. */
while (*p != '\0')
{
- if (ISSPACE (*p) && !squote && !dquote && !bsquote)
+ if (c_isspace (*p) && !squote && !dquote && !bsquote)
break;
else
{
@@ -254,21 +253,21 @@ make_quoted_string (const char *str)
static int
is_digit_in_base (unsigned char digit, int base)
{
- if (!ISALNUM (digit))
+ if (!c_isalnum (digit))
return 0;
if (base <= 10)
- return (ISDIGIT (digit) && digit < base + '0');
+ return (c_isdigit (digit) && digit < base + '0');
else
- return (ISDIGIT (digit) || TOLOWER (digit) < base - 10 + 'a');
+ return (c_isdigit (digit) || c_tolower (digit) < base - 10 + 'a');
}
static int
digit_to_int (unsigned char c)
{
- if (ISDIGIT (c))
+ if (c_isdigit (c))
return c - '0';
else
- return TOLOWER (c) - 'a' + 10;
+ return c_tolower (c) - 'a' + 10;
}
/* As for strtoul, but for ULONGEST results. */
@@ -282,7 +281,7 @@ strtoulst (const char *num, const char **trailer, int base)
int i = 0;
/* Skip leading whitespace. */
- while (ISSPACE (num[i]))
+ while (c_isspace (num[i]))
i++;
/* Handle prefixes. */
@@ -349,7 +348,7 @@ skip_spaces (char *chp)
{
if (chp == NULL)
return NULL;
- while (*chp && ISSPACE (*chp))
+ while (*chp && c_isspace (*chp))
chp++;
return chp;
}
@@ -361,7 +360,7 @@ skip_spaces (const char *chp)
{
if (chp == NULL)
return NULL;
- while (*chp && ISSPACE (*chp))
+ while (*chp && c_isspace (*chp))
chp++;
return chp;
}
@@ -373,7 +372,7 @@ skip_to_space (const char *chp)
{
if (chp == NULL)
return NULL;
- while (*chp && !ISSPACE (*chp))
+ while (*chp && !c_isspace (*chp))
chp++;
return chp;
}
diff --git a/gdbsupport/common.m4 b/gdbsupport/common.m4
index f265af9..cde8bd6 100644
--- a/gdbsupport/common.m4
+++ b/gdbsupport/common.m4
@@ -21,7 +21,6 @@ AC_DEFUN([GDB_AC_COMMON], [
# Set the 'development' global.
. $srcdir/../bfd/development.sh
- AC_HEADER_STDC
AC_FUNC_ALLOCA
WIN32APILIBS=
diff --git a/gdbsupport/configure b/gdbsupport/configure
index bcfae34..133ddfa 100755
--- a/gdbsupport/configure
+++ b/gdbsupport/configure
@@ -10704,118 +10704,6 @@ $as_echo "$ac_cv_path_SED" >&6; }
# Set the 'development' global.
. $srcdir/../bfd/development.sh
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
diff --git a/gdbsupport/filestuff.cc b/gdbsupport/filestuff.cc
index 5c1817e..817663b 100644
--- a/gdbsupport/filestuff.cc
+++ b/gdbsupport/filestuff.cc
@@ -333,14 +333,10 @@ gdb_fopen_cloexec (const char *filename, const char *opentype)
if (!fopen_e_ever_failed_einval)
{
- char *copy;
-
- copy = (char *) alloca (strlen (opentype) + 2);
- strcpy (copy, opentype);
/* This is a glibc extension but we try it unconditionally on
this path. */
- strcat (copy, "e");
- result = fopen (filename, copy);
+ auto opentype_e = std::string (opentype) + 'e';
+ result = fopen (filename, opentype_e.c_str ());
if (result == NULL && errno == EINVAL)
{
diff --git a/gdbsupport/filtered-iterator.h b/gdbsupport/filtered-iterator.h
index e824d61..4952582 100644
--- a/gdbsupport/filtered-iterator.h
+++ b/gdbsupport/filtered-iterator.h
@@ -19,8 +19,6 @@
#ifndef GDBSUPPORT_FILTERED_ITERATOR_H
#define GDBSUPPORT_FILTERED_ITERATOR_H
-#include <type_traits>
-
/* A filtered iterator. This wraps BaseIterator and automatically
skips elements that FilterFunc filters out. Requires that
default-constructing a BaseIterator creates a valid one-past-end
@@ -30,12 +28,14 @@ template<typename BaseIterator, typename FilterFunc>
class filtered_iterator
{
public:
- typedef filtered_iterator self_type;
- typedef typename BaseIterator::value_type value_type;
- typedef typename BaseIterator::reference reference;
- typedef typename BaseIterator::pointer pointer;
- typedef typename BaseIterator::iterator_category iterator_category;
- typedef typename BaseIterator::difference_type difference_type;
+ using self_type = filtered_iterator;
+ using value_type = typename std::iterator_traits<BaseIterator>::value_type;
+ using reference = typename std::iterator_traits<BaseIterator>::reference;
+ using pointer = typename std::iterator_traits<BaseIterator>::pointer;
+ using iterator_category
+ = typename std::iterator_traits<BaseIterator>::iterator_category;
+ using difference_type
+ = typename std::iterator_traits<BaseIterator>::difference_type;
/* Construct by forwarding all arguments to the underlying
iterator. */
@@ -44,6 +44,10 @@ public:
: m_it (std::forward<Args> (args)...)
{ skip_filtered (); }
+ filtered_iterator (BaseIterator begin, BaseIterator end)
+ : m_it (std::move (begin)), m_end (std::move (end))
+ { skip_filtered (); }
+
/* Create a one-past-end iterator. */
filtered_iterator () = default;
@@ -56,9 +60,7 @@ public:
: filtered_iterator (static_cast<const filtered_iterator &> (other))
{}
- typename std::invoke_result<decltype(&BaseIterator::operator*),
- BaseIterator>::type
- operator* () const
+ decltype(auto) operator* () const
{ return *m_it; }
self_type &operator++ ()
diff --git a/gdbsupport/format.cc b/gdbsupport/format.cc
index be3d821..145c876 100644
--- a/gdbsupport/format.cc
+++ b/gdbsupport/format.cc
@@ -22,14 +22,11 @@
format_pieces::format_pieces (const char **arg, bool gdb_extensions,
bool value_extension)
{
- const char *s;
+ const char *s = *arg;
const char *string;
- const char *prev_start;
- const char *percent_loc;
- char *sub_start, *current_substring;
- enum argclass this_argclass;
- s = *arg;
+ /* Buffer to hold the escaped-processed version of the string. */
+ std::string de_escaped;
if (gdb_extensions)
{
@@ -40,10 +37,6 @@ format_pieces::format_pieces (const char **arg, bool gdb_extensions,
{
/* Parse the format-control string and copy it into the string STRING,
processing some kinds of escape sequence. */
-
- char *f = (char *) alloca (strlen (s) + 1);
- string = f;
-
while (*s != '"' && *s != '\0')
{
int c = *s++;
@@ -56,34 +49,34 @@ format_pieces::format_pieces (const char **arg, bool gdb_extensions,
switch (c = *s++)
{
case '\\':
- *f++ = '\\';
+ de_escaped += '\\';
break;
case 'a':
- *f++ = '\a';
+ de_escaped += '\a';
break;
case 'b':
- *f++ = '\b';
+ de_escaped += '\b';
break;
case 'e':
- *f++ = '\e';
+ de_escaped += '\e';
break;
case 'f':
- *f++ = '\f';
+ de_escaped += '\f';
break;
case 'n':
- *f++ = '\n';
+ de_escaped += '\n';
break;
case 'r':
- *f++ = '\r';
+ de_escaped += '\r';
break;
case 't':
- *f++ = '\t';
+ de_escaped += '\t';
break;
case 'v':
- *f++ = '\v';
+ de_escaped += '\v';
break;
case '"':
- *f++ = '"';
+ de_escaped += '"';
break;
default:
/* ??? TODO: handle other escape sequences. */
@@ -93,29 +86,23 @@ format_pieces::format_pieces (const char **arg, bool gdb_extensions,
break;
default:
- *f++ = c;
+ de_escaped += c;
}
}
- /* Terminate our escape-processed copy. */
- *f++ = '\0';
+ string = de_escaped.c_str ();
/* Whether the format string ended with double-quote or zero, we're
done with it; it's up to callers to complain about syntax. */
*arg = s;
}
- /* Need extra space for the '\0's. Doubling the size is sufficient. */
-
- current_substring = (char *) xmalloc (strlen (string) * 2 + 1000);
- m_storage.reset (current_substring);
-
/* Now scan the string for %-specs and see what kinds of args they want.
argclass classifies the %-specs so we can give printf-type functions
something of the right size. */
-
const char *f = string;
- prev_start = string;
+ const char *prev_start = string;
+
while (*f)
if (*f++ == '%')
{
@@ -135,16 +122,15 @@ format_pieces::format_pieces (const char **arg, bool gdb_extensions,
continue;
}
- sub_start = current_substring;
+ std::string::size_type sub_start = m_storage.size ();
- strncpy (current_substring, prev_start, f - 1 - prev_start);
- current_substring += f - 1 - prev_start;
- *current_substring++ = '\0';
+ m_storage.append (prev_start, f - 1 - prev_start);
+ m_storage += '\0';
- if (*sub_start != '\0')
+ if (m_storage[sub_start] != '\0')
m_pieces.emplace_back (sub_start, literal_piece, 0);
- percent_loc = f - 1;
+ const char *percent_loc = f - 1;
/* Check the validity of the format specifier, and work
out what argument it expects. We only accept C89
@@ -251,6 +237,8 @@ format_pieces::format_pieces (const char **arg, bool gdb_extensions,
break;
}
+ argclass this_argclass;
+
switch (*f)
{
case 'u':
@@ -381,7 +369,7 @@ format_pieces::format_pieces (const char **arg, bool gdb_extensions,
f++;
- sub_start = current_substring;
+ sub_start = m_storage.size ();
if (lcount > 1 && !seen_i64 && USE_PRINTF_I64)
{
@@ -389,11 +377,9 @@ format_pieces::format_pieces (const char **arg, bool gdb_extensions,
Convert %lld to %I64d. */
int length_before_ll = f - percent_loc - 1 - lcount;
- strncpy (current_substring, percent_loc, length_before_ll);
- strcpy (current_substring + length_before_ll, "I64");
- current_substring[length_before_ll + 3] =
- percent_loc[length_before_ll + lcount];
- current_substring += length_before_ll + 4;
+ m_storage.append (percent_loc, length_before_ll);
+ m_storage += "I64";
+ m_storage += percent_loc[length_before_ll + lcount];
}
else if (this_argclass == wide_string_arg
|| this_argclass == wide_char_arg)
@@ -401,18 +387,13 @@ format_pieces::format_pieces (const char **arg, bool gdb_extensions,
/* Convert %ls or %lc to %s. */
int length_before_ls = f - percent_loc - 2;
- strncpy (current_substring, percent_loc, length_before_ls);
- strcpy (current_substring + length_before_ls, "s");
- current_substring += length_before_ls + 2;
+ m_storage.append (percent_loc, length_before_ls);
+ m_storage += "s";
}
else
- {
- strncpy (current_substring, percent_loc, f - percent_loc);
- current_substring += f - percent_loc;
- }
-
- *current_substring++ = '\0';
+ m_storage.append (percent_loc, f - percent_loc);
+ m_storage += '\0';
prev_start = f;
m_pieces.emplace_back (sub_start, this_argclass, n_int_args);
@@ -422,11 +403,9 @@ format_pieces::format_pieces (const char **arg, bool gdb_extensions,
if (f > prev_start)
{
- sub_start = current_substring;
-
- strncpy (current_substring, prev_start, f - prev_start);
- current_substring += f - prev_start;
- *current_substring++ = '\0';
+ std::string::size_type sub_start = m_storage.size ();
+ m_storage.append (prev_start, f - prev_start);
+ /* No need for a final '\0', std::string already has one. */
m_pieces.emplace_back (sub_start, literal_piece, 0);
}
diff --git a/gdbsupport/format.h b/gdbsupport/format.h
index 118b947..46dae22 100644
--- a/gdbsupport/format.h
+++ b/gdbsupport/format.h
@@ -20,8 +20,6 @@
#ifndef GDBSUPPORT_FORMAT_H
#define GDBSUPPORT_FORMAT_H
-#include <string_view>
-
#if defined(__MINGW32__) && !defined(PRINTF_HAS_LONG_LONG)
# define USE_PRINTF_I64 1
# define PRINTF_HAS_LONG_LONG
@@ -51,21 +49,15 @@ enum argclass
struct format_piece
{
- format_piece (const char *str, enum argclass argc, int n)
- : string (str),
+ format_piece (std::string::size_type start, enum argclass argc, int n)
+ : start (start),
argclass (argc),
n_int_args (n)
- {
- gdb_assert (str != nullptr);
- }
+ {}
- bool operator== (const format_piece &other) const
- {
- return (this->argclass == other.argclass
- && std::string_view (this->string) == other.string);
- }
+ /* Where this piece starts, within FORMAT_PIECES::M_STORAGE. */
+ std::string::size_type start;
- const char *string;
enum argclass argclass;
/* Count the number of preceding 'int' arguments that must be passed
along. This is used for a width or precision of '*'. Note that
@@ -95,10 +87,17 @@ public:
return m_pieces.end ();
}
+ /* Return the string associated to PIECE. */
+ const char *piece_str (const format_piece &piece)
+ { return &m_storage[piece.start]; }
+
private:
std::vector<format_piece> m_pieces;
- gdb::unique_xmalloc_ptr<char> m_storage;
+
+ /* This is used as a buffer of concatenated null-terminated strings. The
+ individual strings are referenced by FORMAT_PIECE::START. */
+ std::string m_storage;
};
#endif /* GDBSUPPORT_FORMAT_H */
diff --git a/gdbsupport/gdb-safe-ctype.h b/gdbsupport/gdb-safe-ctype.h
deleted file mode 100644
index 36b78f5..0000000
--- a/gdbsupport/gdb-safe-ctype.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Wrapper around libiberty's safe-ctype.h for GDB, the GNU debugger.
-
- Copyright (C) 2019-2025 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- 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, see <http://www.gnu.org/licenses/>. */
-
-#ifndef GDBSUPPORT_GDB_SAFE_CTYPE_H
-#define GDBSUPPORT_GDB_SAFE_CTYPE_H
-
-/* After safe-ctype.h is included, we can no longer use the host's
- ctype routines. Trying to do so results in compile errors. Code
- that uses safe-ctype.h that wants to refer to the locale-dependent
- ctype functions must call these wrapper versions instead.
- When compiling in C++ mode, also include <locale> before "safe-ctype.h"
- which also defines is* functions. */
-
-static inline int
-gdb_isprint (int ch)
-{
- return isprint (ch);
-}
-
-/* readline.h defines these symbols too, but we want libiberty's
- versions. */
-#undef ISALPHA
-#undef ISALNUM
-#undef ISDIGIT
-#undef ISLOWER
-#undef ISPRINT
-#undef ISUPPER
-#undef ISXDIGIT
-
-#include <locale>
-#include "safe-ctype.h"
-
-#endif /* GDBSUPPORT_GDB_SAFE_CTYPE_H */
diff --git a/gdbsupport/gdb_argv_vec.h b/gdbsupport/gdb_argv_vec.h
index 1f3b6db..43571ae 100644
--- a/gdbsupport/gdb_argv_vec.h
+++ b/gdbsupport/gdb_argv_vec.h
@@ -90,6 +90,15 @@ public:
m_args.push_back (value);
}
+ /* Like calling emplace_back on the underlying vector. This class takes
+ ownership of the value added to the vector, and will release the value
+ by calling xfree() on it when this object is destroyed. */
+ template<typename... Args>
+ reference emplace_back (Args &&...args)
+ {
+ return m_args.emplace_back (std::forward<Args> (args)...);
+ }
+
/* Non constant iterator to start of m_args. */
iterator begin ()
{
@@ -133,6 +142,12 @@ public:
{
return m_args.empty ();
}
+
+ /* Clear the argument vector. */
+ void clear ()
+ {
+ free_vector_argv (m_args);
+ }
};
} /* namespac gdb */
diff --git a/gdbsupport/iterator-range.h b/gdbsupport/iterator-range.h
index a8cacfb..9653d40 100644
--- a/gdbsupport/iterator-range.h
+++ b/gdbsupport/iterator-range.h
@@ -36,7 +36,6 @@ struct iterator_range
{}
/* Create an iterator range using explicit BEGIN and END iterators. */
- template <typename... Args>
iterator_range (IteratorType begin, IteratorType end)
: m_begin (std::move (begin)), m_end (std::move (end))
{}
diff --git a/gdbsupport/pathstuff.cc b/gdbsupport/pathstuff.cc
index ce01c95..8142bd5 100644
--- a/gdbsupport/pathstuff.cc
+++ b/gdbsupport/pathstuff.cc
@@ -89,34 +89,25 @@ std::string
gdb_realpath_keepfile (const char *filename)
{
const char *base_name = lbasename (filename);
- char *dir_name;
/* Extract the basename of filename, and return immediately
a copy of filename if it does not contain any directory prefix. */
if (base_name == filename)
return filename;
- dir_name = (char *) alloca ((size_t) (base_name - filename + 2));
- /* Allocate enough space to store the dir_name + plus one extra
- character sometimes needed under Windows (see below), and
- then the closing \000 character. */
- strncpy (dir_name, filename, base_name - filename);
- dir_name[base_name - filename] = '\000';
+ std::string dir_name (filename, base_name - filename);
#ifdef HAVE_DOS_BASED_FILE_SYSTEM
/* We need to be careful when filename is of the form 'd:foo', which
is equivalent of d:./foo, which is totally different from d:/foo. */
- if (strlen (dir_name) == 2 && isalpha (dir_name[0]) && dir_name[1] == ':')
- {
- dir_name[2] = '.';
- dir_name[3] = '\000';
- }
+ if (dir_name.size () == 2 && c_isalpha (dir_name[0]) && dir_name[1] == ':')
+ dir_name += '.';
#endif
/* Canonicalize the directory prefix, and build the resulting
filename. If the dirname realpath already contains an ending
directory separator, avoid doubling it. */
- gdb::unique_xmalloc_ptr<char> path_storage = gdb_realpath (dir_name);
+ gdb::unique_xmalloc_ptr<char> path_storage = gdb_realpath (dir_name.c_str ());
const char *real_path = path_storage.get ();
return path_join (real_path, base_name);
}
diff --git a/gdbsupport/x86-xstate.h b/gdbsupport/x86-xstate.h
index 5d563ff..6657c45 100644
--- a/gdbsupport/x86-xstate.h
+++ b/gdbsupport/x86-xstate.h
@@ -28,6 +28,7 @@
#define X86_XSTATE_ZMM_H_ID 6
#define X86_XSTATE_ZMM_ID 7
#define X86_XSTATE_PKRU_ID 9
+#define X86_XSTATE_CET_U_ID 11
/* The extended state feature bits. */
#define X86_XSTATE_X87 (1ULL << X86_XSTATE_X87_ID)
@@ -42,6 +43,7 @@
| X86_XSTATE_ZMM)
#define X86_XSTATE_PKRU (1ULL << X86_XSTATE_PKRU_ID)
+#define X86_XSTATE_CET_U (1ULL << X86_XSTATE_CET_U_ID)
/* Total size of the XSAVE area extended region and offsets of
register states within the region. Offsets are set to 0 to
@@ -83,8 +85,11 @@ constexpr bool operator!= (const x86_xsave_layout &lhs,
#define X86_XSTATE_AVX_AVX512_PKU_MASK (X86_XSTATE_AVX_MASK\
| X86_XSTATE_AVX512 | X86_XSTATE_PKRU)
-#define X86_XSTATE_ALL_MASK (X86_XSTATE_AVX_AVX512_PKU_MASK)
+/* Supported mask of state-component bitmap xstate_bv. The SDM defines
+ xstate_bv as XCR0 | IA32_XSS. */
+#define X86_XSTATE_ALL_MASK (X86_XSTATE_AVX_AVX512_PKU_MASK\
+ | X86_XSTATE_CET_U)
#define X86_XSTATE_SSE_SIZE 576
#define X86_XSTATE_AVX_SIZE 832
diff --git a/gnulib/aclocal.m4 b/gnulib/aclocal.m4
index 707108d..f99ab16 100644
--- a/gnulib/aclocal.m4
+++ b/gnulib/aclocal.m4
@@ -788,35 +788,6 @@ else
fi
])
-# -*- Autoconf -*-
-# Obsolete and "removed" macros, that must however still report explicit
-# error messages when used, to smooth transition.
-#
-# Copyright (C) 1996-2017 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([AM_CONFIG_HEADER],
-[AC_DIAGNOSE([obsolete],
-['$0': this macro is obsolete.
-You should use the 'AC][_CONFIG_HEADERS' macro instead.])dnl
-AC_CONFIG_HEADERS($@)])
-
-AC_DEFUN([AM_PROG_CC_STDC],
-[AC_PROG_CC
-am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc
-AC_DIAGNOSE([obsolete],
-['$0': this macro is obsolete.
-You should simply use the 'AC][_PROG_CC' macro instead.
-Also, your code should no longer depend upon 'am_cv_prog_cc_stdc',
-but upon 'ac_cv_prog_cc_stdc'.])])
-
-AC_DEFUN([AM_C_PROTOTYPES],
- [AC_FATAL([automatic de-ANSI-fication support has been removed])])
-AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES])
-
# Helper functions for option handling. -*- Autoconf -*-
# Copyright (C) 2001-2017 Free Software Foundation, Inc.
diff --git a/gnulib/configure b/gnulib/configure
index cc7e828..de2f5c4 100755
--- a/gnulib/configure
+++ b/gnulib/configure
@@ -7032,6 +7032,7 @@ fi
# Code from module bind:
# Code from module btowc:
# Code from module builtin-expect:
+ # Code from module c-ctype:
# Code from module c99:
# Code from module canonicalize-lgpl:
# Code from module chdir:
@@ -7223,9 +7224,6 @@ fi
# Code from module xalloc-oversized:
-am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc
-
-
ac_aux_dir=
for ac_dir in .. "$srcdir"/..; do
if test -f "$ac_dir/install-sh"; then
@@ -13813,8 +13811,8 @@ rm -f core conftest.err conftest.$ac_objext \
LIBS=$save_LIBS
test $gl_pthread_api = yes && break
done
- echo "$as_me:13816: gl_pthread_api=$gl_pthread_api" >&5
- echo "$as_me:13817: LIBPTHREAD=$LIBPTHREAD" >&5
+ echo "$as_me:13814: gl_pthread_api=$gl_pthread_api" >&5
+ echo "$as_me:13815: LIBPTHREAD=$LIBPTHREAD" >&5
gl_pthread_in_glibc=no
# On Linux with glibc >= 2.34, libc contains the fully functional
@@ -13839,7 +13837,7 @@ rm -f conftest*
;;
esac
- echo "$as_me:13842: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
+ echo "$as_me:13840: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
# Test for libpthread by looking for pthread_kill. (Not pthread_self,
# since it is defined as a macro on OSF/1.)
@@ -13993,7 +13991,7 @@ fi
fi
fi
- echo "$as_me:13996: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
+ echo "$as_me:13994: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5
$as_echo_n "checking whether POSIX threads API is available... " >&6; }
@@ -17070,8 +17068,8 @@ rm -f core conftest.err conftest.$ac_objext \
LIBS=$save_LIBS
test $gl_pthread_api = yes && break
done
- echo "$as_me:17073: gl_pthread_api=$gl_pthread_api" >&5
- echo "$as_me:17074: LIBPTHREAD=$LIBPTHREAD" >&5
+ echo "$as_me:17071: gl_pthread_api=$gl_pthread_api" >&5
+ echo "$as_me:17072: LIBPTHREAD=$LIBPTHREAD" >&5
gl_pthread_in_glibc=no
# On Linux with glibc >= 2.34, libc contains the fully functional
@@ -17096,7 +17094,7 @@ rm -f conftest*
;;
esac
- echo "$as_me:17099: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
+ echo "$as_me:17097: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
# Test for libpthread by looking for pthread_kill. (Not pthread_self,
# since it is defined as a macro on OSF/1.)
@@ -17250,7 +17248,7 @@ fi
fi
fi
- echo "$as_me:17253: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
+ echo "$as_me:17251: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5
$as_echo_n "checking whether POSIX threads API is available... " >&6; }
@@ -17476,8 +17474,8 @@ rm -f core conftest.err conftest.$ac_objext \
LIBS=$save_LIBS
test $gl_pthread_api = yes && break
done
- echo "$as_me:17479: gl_pthread_api=$gl_pthread_api" >&5
- echo "$as_me:17480: LIBPTHREAD=$LIBPTHREAD" >&5
+ echo "$as_me:17477: gl_pthread_api=$gl_pthread_api" >&5
+ echo "$as_me:17478: LIBPTHREAD=$LIBPTHREAD" >&5
gl_pthread_in_glibc=no
# On Linux with glibc >= 2.34, libc contains the fully functional
@@ -17502,7 +17500,7 @@ rm -f conftest*
;;
esac
- echo "$as_me:17505: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
+ echo "$as_me:17503: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
# Test for libpthread by looking for pthread_kill. (Not pthread_self,
# since it is defined as a macro on OSF/1.)
@@ -17656,7 +17654,7 @@ fi
fi
fi
- echo "$as_me:17659: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
+ echo "$as_me:17657: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5
$as_echo_n "checking whether POSIX threads API is available... " >&6; }
@@ -36621,10 +36619,7 @@ fi
# Checks for libraries. #
# ---------------------- #
-ac_config_files="$ac_config_files Makefile.gnulib.inc"
-
-
-ac_config_files="$ac_config_files Makefile import/Makefile"
+ac_config_files="$ac_config_files Makefile.gnulib.inc Makefile import/Makefile"
ac_config_commands="$ac_config_commands default"
@@ -36722,6 +36717,7 @@ DEFS=-DHAVE_CONFIG_H
ac_libobjs=
ac_ltlibobjs=
+U=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
diff --git a/gnulib/configure.ac b/gnulib/configure.ac
index c13465c..aee6450 100644
--- a/gnulib/configure.ac
+++ b/gnulib/configure.ac
@@ -31,7 +31,6 @@ AC_USE_SYSTEM_EXTENSIONS
# there.
ACX_LARGEFILE
gl_EARLY
-AM_PROG_CC_STDC
AC_CONFIG_AUX_DIR(..)
AC_CANONICAL_TARGET
@@ -56,14 +55,15 @@ AC_CHECK_TOOL(AR, ar)
# Checks for libraries. #
# ---------------------- #
-AC_CONFIG_FILES(Makefile.gnulib.inc)
-
-AC_OUTPUT(Makefile import/Makefile,
+AC_CONFIG_FILES([Makefile.gnulib.inc]
+ [Makefile import/Makefile])
+AC_CONFIG_COMMANDS([default],
[
case x$CONFIG_HEADERS in
xconfig.h:config.in)
echo > stamp-h ;;
esac
-])
+],[])
+AC_OUTPUT
exit 0
diff --git a/gnulib/import/Makefile.am b/gnulib/import/Makefile.am
index 80b2bb4..1548615 100644
--- a/gnulib/import/Makefile.am
+++ b/gnulib/import/Makefile.am
@@ -36,6 +36,7 @@
# accept \
# alloca \
# bind \
+# c-ctype \
# canonicalize-lgpl \
# chown \
# connect \
@@ -246,6 +247,12 @@ endif
## end gnulib module btowc
+## begin gnulib module c-ctype
+
+libgnu_a_SOURCES += c-ctype.h c-ctype.c
+
+## end gnulib module c-ctype
+
## begin gnulib module canonicalize-lgpl
if GL_COND_OBJ_CANONICALIZE_LGPL
diff --git a/gnulib/import/Makefile.in b/gnulib/import/Makefile.in
index 9893d17..2e567c0 100644
--- a/gnulib/import/Makefile.in
+++ b/gnulib/import/Makefile.in
@@ -50,6 +50,7 @@
# accept \
# alloca \
# bind \
+# c-ctype \
# canonicalize-lgpl \
# chown \
# connect \
@@ -557,12 +558,13 @@ am__dirstamp = $(am__leading_dot)dirstamp
@GL_COND_OBJ_WMEMPCPY_TRUE@ libgnu_a-wmempcpy.$(OBJEXT)
am_libgnu_a_OBJECTS = $(am__objects_1) libgnu_a-openat-proc.$(OBJEXT) \
libgnu_a-basename-lgpl.$(OBJEXT) $(am__objects_2) \
- $(am__objects_3) $(am__objects_4) $(am__objects_5) \
- $(am__objects_6) $(am__objects_7) libgnu_a-cloexec.$(OBJEXT) \
- $(am__objects_8) $(am__objects_9) $(am__objects_10) \
- libgnu_a-count-one-bits.$(OBJEXT) $(am__objects_11) \
- libgnu_a-dirname-lgpl.$(OBJEXT) libgnu_a-stripslash.$(OBJEXT) \
- $(am__objects_12) $(am__objects_13) $(am__objects_14) \
+ $(am__objects_3) libgnu_a-c-ctype.$(OBJEXT) $(am__objects_4) \
+ $(am__objects_5) $(am__objects_6) $(am__objects_7) \
+ libgnu_a-cloexec.$(OBJEXT) $(am__objects_8) $(am__objects_9) \
+ $(am__objects_10) libgnu_a-count-one-bits.$(OBJEXT) \
+ $(am__objects_11) libgnu_a-dirname-lgpl.$(OBJEXT) \
+ libgnu_a-stripslash.$(OBJEXT) $(am__objects_12) \
+ $(am__objects_13) $(am__objects_14) \
libgnu_a-exitfail.$(OBJEXT) $(am__objects_15) \
$(am__objects_16) libgnu_a-fd-hook.$(OBJEXT) \
libgnu_a-fd-safer-flag.$(OBJEXT) \
@@ -2150,8 +2152,8 @@ MAINTAINERCLEANFILES =
AM_CPPFLAGS =
AM_CFLAGS =
libgnu_a_SOURCES = $(am__append_1) openat-priv.h openat-proc.c \
- basename-lgpl.c $(am__append_2) $(am__append_3) \
- $(am__append_4) $(am__append_5) $(am__append_6) \
+ basename-lgpl.c $(am__append_2) $(am__append_3) c-ctype.h \
+ c-ctype.c $(am__append_4) $(am__append_5) $(am__append_6) \
$(am__append_7) cloexec.c $(am__append_8) $(am__append_9) \
$(am__append_10) count-one-bits.c $(am__append_11) \
dirname-lgpl.c stripslash.c $(am__append_12) $(am__append_13) \
@@ -2328,6 +2330,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-basename-lgpl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-bind.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-btowc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-c-ctype.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-canonicalize-lgpl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-chdir-long.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgnu_a-chown.Po@am__quote@
@@ -2544,6 +2547,20 @@ libgnu_a-btowc.obj: btowc.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-btowc.obj `if test -f 'btowc.c'; then $(CYGPATH_W) 'btowc.c'; else $(CYGPATH_W) '$(srcdir)/btowc.c'; fi`
+libgnu_a-c-ctype.o: c-ctype.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-c-ctype.o -MD -MP -MF $(DEPDIR)/libgnu_a-c-ctype.Tpo -c -o libgnu_a-c-ctype.o `test -f 'c-ctype.c' || echo '$(srcdir)/'`c-ctype.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-c-ctype.Tpo $(DEPDIR)/libgnu_a-c-ctype.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='c-ctype.c' object='libgnu_a-c-ctype.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-c-ctype.o `test -f 'c-ctype.c' || echo '$(srcdir)/'`c-ctype.c
+
+libgnu_a-c-ctype.obj: c-ctype.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-c-ctype.obj -MD -MP -MF $(DEPDIR)/libgnu_a-c-ctype.Tpo -c -o libgnu_a-c-ctype.obj `if test -f 'c-ctype.c'; then $(CYGPATH_W) 'c-ctype.c'; else $(CYGPATH_W) '$(srcdir)/c-ctype.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-c-ctype.Tpo $(DEPDIR)/libgnu_a-c-ctype.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='c-ctype.c' object='libgnu_a-c-ctype.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -c -o libgnu_a-c-ctype.obj `if test -f 'c-ctype.c'; then $(CYGPATH_W) 'c-ctype.c'; else $(CYGPATH_W) '$(srcdir)/c-ctype.c'; fi`
+
libgnu_a-canonicalize-lgpl.o: canonicalize-lgpl.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgnu_a_CFLAGS) $(CFLAGS) -MT libgnu_a-canonicalize-lgpl.o -MD -MP -MF $(DEPDIR)/libgnu_a-canonicalize-lgpl.Tpo -c -o libgnu_a-canonicalize-lgpl.o `test -f 'canonicalize-lgpl.c' || echo '$(srcdir)/'`canonicalize-lgpl.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgnu_a-canonicalize-lgpl.Tpo $(DEPDIR)/libgnu_a-canonicalize-lgpl.Po
diff --git a/gnulib/import/c-ctype.c b/gnulib/import/c-ctype.c
new file mode 100644
index 0000000..a247514
--- /dev/null
+++ b/gnulib/import/c-ctype.c
@@ -0,0 +1,21 @@
+/* Character handling in C locale.
+
+ Copyright (C) 2003-2022 Free Software Foundation, Inc.
+
+ This file is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ This file is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+#define C_CTYPE_INLINE _GL_EXTERN_INLINE
+#include "c-ctype.h"
diff --git a/gnulib/import/c-ctype.h b/gnulib/import/c-ctype.h
new file mode 100644
index 0000000..1a4f603
--- /dev/null
+++ b/gnulib/import/c-ctype.h
@@ -0,0 +1,366 @@
+/* Character handling in C locale.
+
+ These functions work like the corresponding functions in <ctype.h>,
+ except that they have the C (POSIX) locale hardwired, whereas the
+ <ctype.h> functions' behaviour depends on the current locale set via
+ setlocale.
+
+ Copyright (C) 2000-2003, 2006, 2008-2022 Free Software Foundation, Inc.
+
+ This file is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ This file is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#ifndef C_CTYPE_H
+#define C_CTYPE_H
+
+#include <stdbool.h>
+
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
+_GL_INLINE_HEADER_BEGIN
+#ifndef C_CTYPE_INLINE
+# define C_CTYPE_INLINE _GL_INLINE
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* The functions defined in this file assume the "C" locale and a character
+ set without diacritics (ASCII-US or EBCDIC-US or something like that).
+ Even if the "C" locale on a particular system is an extension of the ASCII
+ character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it
+ is ISO-8859-1), the functions in this file recognize only the ASCII
+ characters. */
+
+
+#if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)
+/* The character set is ASCII or one of its variants or extensions, not EBCDIC.
+ Testing the value of '\n' and '\r' is not relevant. */
+# define C_CTYPE_ASCII 1
+#elif ! (' ' == '\x40' && '0' == '\xf0' \
+ && 'A' == '\xc1' && 'J' == '\xd1' && 'S' == '\xe2' \
+ && 'a' == '\x81' && 'j' == '\x91' && 's' == '\xa2')
+# error "Only ASCII and EBCDIC are supported"
+#endif
+
+#if 'A' < 0
+# error "EBCDIC and char is signed -- not supported"
+#endif
+
+/* Cases for control characters. */
+
+#define _C_CTYPE_CNTRL \
+ case '\a': case '\b': case '\f': case '\n': \
+ case '\r': case '\t': case '\v': \
+ _C_CTYPE_OTHER_CNTRL
+
+/* ASCII control characters other than those with \-letter escapes. */
+
+#if C_CTYPE_ASCII
+# define _C_CTYPE_OTHER_CNTRL \
+ case '\x00': case '\x01': case '\x02': case '\x03': \
+ case '\x04': case '\x05': case '\x06': case '\x0e': \
+ case '\x0f': case '\x10': case '\x11': case '\x12': \
+ case '\x13': case '\x14': case '\x15': case '\x16': \
+ case '\x17': case '\x18': case '\x19': case '\x1a': \
+ case '\x1b': case '\x1c': case '\x1d': case '\x1e': \
+ case '\x1f': case '\x7f'
+#else
+ /* Use EBCDIC code page 1047's assignments for ASCII control chars;
+ assume all EBCDIC code pages agree about these assignments. */
+# define _C_CTYPE_OTHER_CNTRL \
+ case '\x00': case '\x01': case '\x02': case '\x03': \
+ case '\x07': case '\x0e': case '\x0f': case '\x10': \
+ case '\x11': case '\x12': case '\x13': case '\x18': \
+ case '\x19': case '\x1c': case '\x1d': case '\x1e': \
+ case '\x1f': case '\x26': case '\x27': case '\x2d': \
+ case '\x2e': case '\x32': case '\x37': case '\x3c': \
+ case '\x3d': case '\x3f'
+#endif
+
+/* Cases for lowercase hex letters, and lowercase letters, all offset by N. */
+
+#define _C_CTYPE_LOWER_A_THRU_F_N(N) \
+ case 'a' + (N): case 'b' + (N): case 'c' + (N): case 'd' + (N): \
+ case 'e' + (N): case 'f' + (N)
+#define _C_CTYPE_LOWER_N(N) \
+ _C_CTYPE_LOWER_A_THRU_F_N(N): \
+ case 'g' + (N): case 'h' + (N): case 'i' + (N): case 'j' + (N): \
+ case 'k' + (N): case 'l' + (N): case 'm' + (N): case 'n' + (N): \
+ case 'o' + (N): case 'p' + (N): case 'q' + (N): case 'r' + (N): \
+ case 's' + (N): case 't' + (N): case 'u' + (N): case 'v' + (N): \
+ case 'w' + (N): case 'x' + (N): case 'y' + (N): case 'z' + (N)
+
+/* Cases for hex letters, digits, lower, punct, and upper. */
+
+#define _C_CTYPE_A_THRU_F \
+ _C_CTYPE_LOWER_A_THRU_F_N (0): \
+ _C_CTYPE_LOWER_A_THRU_F_N ('A' - 'a')
+#define _C_CTYPE_DIGIT \
+ case '0': case '1': case '2': case '3': \
+ case '4': case '5': case '6': case '7': \
+ case '8': case '9'
+#define _C_CTYPE_LOWER _C_CTYPE_LOWER_N (0)
+#define _C_CTYPE_PUNCT \
+ case '!': case '"': case '#': case '$': \
+ case '%': case '&': case '\'': case '(': \
+ case ')': case '*': case '+': case ',': \
+ case '-': case '.': case '/': case ':': \
+ case ';': case '<': case '=': case '>': \
+ case '?': case '@': case '[': case '\\': \
+ case ']': case '^': case '_': case '`': \
+ case '{': case '|': case '}': case '~'
+#define _C_CTYPE_UPPER _C_CTYPE_LOWER_N ('A' - 'a')
+
+
+/* Function definitions. */
+
+/* Unlike the functions in <ctype.h>, which require an argument in the range
+ of the 'unsigned char' type, the functions here operate on values that are
+ in the 'unsigned char' range or in the 'char' range. In other words,
+ when you have a 'char' value, you need to cast it before using it as
+ argument to a <ctype.h> function:
+
+ const char *s = ...;
+ if (isalpha ((unsigned char) *s)) ...
+
+ but you don't need to cast it for the functions defined in this file:
+
+ const char *s = ...;
+ if (c_isalpha (*s)) ...
+ */
+
+C_CTYPE_INLINE bool
+c_isalnum (int c)
+{
+ switch (c)
+ {
+ _C_CTYPE_DIGIT:
+ _C_CTYPE_LOWER:
+ _C_CTYPE_UPPER:
+ return true;
+ default:
+ return false;
+ }
+}
+
+C_CTYPE_INLINE bool
+c_isalpha (int c)
+{
+ switch (c)
+ {
+ _C_CTYPE_LOWER:
+ _C_CTYPE_UPPER:
+ return true;
+ default:
+ return false;
+ }
+}
+
+/* The function isascii is not locale dependent.
+ Its use in EBCDIC is questionable. */
+C_CTYPE_INLINE bool
+c_isascii (int c)
+{
+ switch (c)
+ {
+ case ' ':
+ _C_CTYPE_CNTRL:
+ _C_CTYPE_DIGIT:
+ _C_CTYPE_LOWER:
+ _C_CTYPE_PUNCT:
+ _C_CTYPE_UPPER:
+ return true;
+ default:
+ return false;
+ }
+}
+
+C_CTYPE_INLINE bool
+c_isblank (int c)
+{
+ return c == ' ' || c == '\t';
+}
+
+C_CTYPE_INLINE bool
+c_iscntrl (int c)
+{
+ switch (c)
+ {
+ _C_CTYPE_CNTRL:
+ return true;
+ default:
+ return false;
+ }
+}
+
+C_CTYPE_INLINE bool
+c_isdigit (int c)
+{
+ switch (c)
+ {
+ _C_CTYPE_DIGIT:
+ return true;
+ default:
+ return false;
+ }
+}
+
+C_CTYPE_INLINE bool
+c_isgraph (int c)
+{
+ switch (c)
+ {
+ _C_CTYPE_DIGIT:
+ _C_CTYPE_LOWER:
+ _C_CTYPE_PUNCT:
+ _C_CTYPE_UPPER:
+ return true;
+ default:
+ return false;
+ }
+}
+
+C_CTYPE_INLINE bool
+c_islower (int c)
+{
+ switch (c)
+ {
+ _C_CTYPE_LOWER:
+ return true;
+ default:
+ return false;
+ }
+}
+
+C_CTYPE_INLINE bool
+c_isprint (int c)
+{
+ switch (c)
+ {
+ case ' ':
+ _C_CTYPE_DIGIT:
+ _C_CTYPE_LOWER:
+ _C_CTYPE_PUNCT:
+ _C_CTYPE_UPPER:
+ return true;
+ default:
+ return false;
+ }
+}
+
+C_CTYPE_INLINE bool
+c_ispunct (int c)
+{
+ switch (c)
+ {
+ _C_CTYPE_PUNCT:
+ return true;
+ default:
+ return false;
+ }
+}
+
+C_CTYPE_INLINE bool
+c_isspace (int c)
+{
+ switch (c)
+ {
+ case ' ': case '\t': case '\n': case '\v': case '\f': case '\r':
+ return true;
+ default:
+ return false;
+ }
+}
+
+C_CTYPE_INLINE bool
+c_isupper (int c)
+{
+ switch (c)
+ {
+ _C_CTYPE_UPPER:
+ return true;
+ default:
+ return false;
+ }
+}
+
+C_CTYPE_INLINE bool
+c_isxdigit (int c)
+{
+ switch (c)
+ {
+ _C_CTYPE_DIGIT:
+ _C_CTYPE_A_THRU_F:
+ return true;
+ default:
+ return false;
+ }
+}
+
+C_CTYPE_INLINE int
+c_tolower (int c)
+{
+ switch (c)
+ {
+ _C_CTYPE_UPPER:
+ return c - 'A' + 'a';
+ default:
+ return c;
+ }
+}
+
+C_CTYPE_INLINE int
+c_toupper (int c)
+{
+ switch (c)
+ {
+ _C_CTYPE_LOWER:
+ return c - 'a' + 'A';
+ default:
+ return c;
+ }
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+_GL_INLINE_HEADER_END
+
+#endif /* C_CTYPE_H */
diff --git a/gnulib/import/m4/gnulib-cache.m4 b/gnulib/import/m4/gnulib-cache.m4
index a5f8e30..0cf177a 100644
--- a/gnulib/import/m4/gnulib-cache.m4
+++ b/gnulib/import/m4/gnulib-cache.m4
@@ -41,6 +41,7 @@
# accept \
# alloca \
# bind \
+# c-ctype \
# canonicalize-lgpl \
# chown \
# connect \
@@ -96,6 +97,7 @@ gl_MODULES([
accept
alloca
bind
+ c-ctype
canonicalize-lgpl
chown
connect
diff --git a/gnulib/import/m4/gnulib-comp.m4 b/gnulib/import/m4/gnulib-comp.m4
index 94e2cfe..bb68991 100644
--- a/gnulib/import/m4/gnulib-comp.m4
+++ b/gnulib/import/m4/gnulib-comp.m4
@@ -54,6 +54,7 @@ AC_DEFUN([gl_EARLY],
# Code from module bind:
# Code from module btowc:
# Code from module builtin-expect:
+ # Code from module c-ctype:
# Code from module c99:
# Code from module canonicalize-lgpl:
# Code from module chdir:
@@ -1130,6 +1131,8 @@ AC_DEFUN([gl_FILE_LIST], [
lib/bind.c
lib/btowc.c
lib/c++defs.h
+ lib/c-ctype.c
+ lib/c-ctype.h
lib/canonicalize-lgpl.c
lib/cdefs.h
lib/chdir-long.c
diff --git a/gnulib/update-gnulib.sh b/gnulib/update-gnulib.sh
index 18bb5eb..9adc009 100755
--- a/gnulib/update-gnulib.sh
+++ b/gnulib/update-gnulib.sh
@@ -33,6 +33,7 @@ IMPORTED_GNULIB_MODULES="\
accept \
alloca \
bind \
+ c-ctype \
canonicalize-lgpl \
chown \
connect \
diff --git a/gprof/Makefile.in b/gprof/Makefile.in
index 719e181..c32a945 100644
--- a/gprof/Makefile.in
+++ b/gprof/Makefile.in
@@ -112,7 +112,9 @@ bin_PROGRAMS = gprof$(EXEEXT)
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../bfd/warning.m4 \
+ $(top_srcdir)/../config/clang-plugin.m4 \
$(top_srcdir)/../config/depstand.m4 \
+ $(top_srcdir)/../config/gcc-plugin.m4 \
$(top_srcdir)/../config/gettext-sister.m4 \
$(top_srcdir)/../config/gettext.m4 \
$(top_srcdir)/../config/iconv.m4 \
@@ -357,6 +359,7 @@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
+LLVM_CONFIG = @LLVM_CONFIG@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
LTLIBINTL = @LTLIBINTL@
diff --git a/gprof/aclocal.m4 b/gprof/aclocal.m4
index 36ccc3e..b5cb633 100644
--- a/gprof/aclocal.m4
+++ b/gprof/aclocal.m4
@@ -1168,7 +1168,9 @@ AC_SUBST([am__untar])
]) # _AM_PROG_TAR
m4_include([../bfd/warning.m4])
+m4_include([../config/clang-plugin.m4])
m4_include([../config/depstand.m4])
+m4_include([../config/gcc-plugin.m4])
m4_include([../config/gettext-sister.m4])
m4_include([../config/gettext.m4])
m4_include([../config/iconv.m4])
diff --git a/gprof/configure b/gprof/configure
index 22d4cc5..1c70f82 100755
--- a/gprof/configure
+++ b/gprof/configure
@@ -673,6 +673,7 @@ NMEDIT
DSYMUTIL
RANLIB
AR
+LLVM_CONFIG
OBJDUMP
LN_S
NM
@@ -5672,8 +5673,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
-plugin_option=
+
+# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
+# wrong plugin_option with clang.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
+$as_echo_n "checking for clang... " >&6; }
+if ${clang_cv_is_clang+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __clang__
+ yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ clang_cv_is_clang=yes
+else
+ clang_cv_is_clang=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
+$as_echo "$clang_cv_is_clang" >&6; }
+ plugin_file=
+ if test $clang_cv_is_clang = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
+$as_echo_n "checking for clang plugin file... " >&6; }
+ plugin_names="LLVMgold.so"
+ for plugin in $plugin_names; do
+ plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
+ if test x$plugin_file = x$plugin; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LLVM_CONFIG"; then
+ ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
+if test -n "$LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
+$as_echo "$LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LLVM_CONFIG"; then
+ ac_ct_LLVM_CONFIG=$LLVM_CONFIG
+ # Extract the first word of "llvm-config", so it can be a program name with args.
+set dummy llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LLVM_CONFIG"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
+if test -n "$ac_ct_LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
+$as_echo "$ac_ct_LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LLVM_CONFIG" = x; then
+ LLVM_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LLVM_CONFIG=$ac_ct_LLVM_CONFIG
+ fi
+else
+ LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
+fi
+
+ if test "$?" != 0; then
+ as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
+ fi
+ clang_lib_dir=`$LLVM_CONFIG --libdir`
+ if test -f $clang_lib_dir/$plugin; then
+ plugin_file=$clang_lib_dir/$plugin
+ fi
+ if test x$plugin_file != x$plugin; then
+ break;
+ fi
+ fi
+ done
+ if test -z $plugin_file; then
+ as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
+ fi
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+ if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ plugin_option="--plugin $plugin_file"
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_file=
+ fi
+ rm -f conftest.*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
+$as_echo "$plugin_file" >&6; }
+ fi
+ plugin_file="$plugin_file"
+
+if test -n "$plugin_file"; then
+ plugin_option="--plugin $plugin_file"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
+$as_echo_n "checking for -plugin option... " >&6; }
+
plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+plugin_option=
for plugin in $plugin_names; do
plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
if test x$plugin_so = x$plugin; then
@@ -5684,7 +5943,119 @@ for plugin in $plugin_names; do
break
fi
done
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+fi
+touch conftest.c
+${AR} $plugin_option rc conftest.a conftest.c
+if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_option=
+fi
+rm -f conftest.*
+if test -n "$plugin_option"; then
+ plugin_option="$plugin_option"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+$as_echo "$plugin_option" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
@@ -5779,17 +6150,15 @@ fi
test -z "$AR" && AR=ar
if test -n "$plugin_option"; then
- if $AR --help 2>&1 | grep -q "\--plugin"; then
- touch conftest.c
- $AR $plugin_option rc conftest.a conftest.c
- if test "$?" != 0; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
-$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
- else
+ case "$AR" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $AR --help 2>&1 | grep -q "\--plugin"; then
AR="$AR $plugin_option"
fi
- rm -f conftest.*
- fi
+ ;;
+ esac
fi
test -z "$AR_FLAGS" && AR_FLAGS=cru
@@ -5996,9 +6365,15 @@ fi
test -z "$RANLIB" && RANLIB=:
if test -n "$plugin_option" && test "$RANLIB" != ":"; then
- if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
- RANLIB="$RANLIB $plugin_option"
- fi
+ case "$RANLIB" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
+ RANLIB="$RANLIB $plugin_option"
+ fi
+ ;;
+ esac
fi
@@ -10655,7 +11030,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10658 "configure"
+#line 11033 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -10761,7 +11136,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10764 "configure"
+#line 11139 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
diff --git a/gprof/po/ms.po b/gprof/po/ms.po
index 2db356f..69670be 100644
--- a/gprof/po/ms.po
+++ b/gprof/po/ms.po
@@ -1,15 +1,15 @@
# gprof Bahasa Melayu (Malay) (ms).
-# Copyright (C) 2006, 2008, 2015, 2018, 2020, 2023 Free Software Foundation, Inc.
-# Copyright (C) 2006, 2008, 2015, 2018, 2020, 2023 Sharuzzaman Ahmat Raslan
+# Copyright (C) 2006, 2008, 2015, 2018, 2020, 2023, 2025 Free Software Foundation, Inc.
+# Copyright (C) 2006, 2008, 2015, 2018, 2020, 2023, 2025 Sharuzzaman Ahmat Raslan
# This file is distributed under the same license as the binutils package.
-# Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>, 2006, 2008, 2015, 2018, 2020, 2023.
+# Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>, 2006, 2008, 2015, 2018, 2020, 2023, 2025.
#
msgid ""
msgstr ""
-"Project-Id-Version: gprof 2.39.90\n"
+"Project-Id-Version: gprof 2.44.90\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2022-12-31 12:22+0000\n"
-"PO-Revision-Date: 2023-02-20 14:11+0800\n"
+"POT-Creation-Date: 2025-07-13 08:49+0100\n"
+"PO-Revision-Date: 2025-07-26 22:39+0800\n"
"Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>\n"
"Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
"Language: ms\n"
@@ -17,48 +17,48 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 3.2.2\n"
+"X-Generator: Poedit 3.6\n"
-#: alpha.c:102 mips.c:54
+#: alpha.c:103 mips.c:55
msgid "<indirect child>"
msgstr "<anak tidak terus>"
-#: alpha.c:107 mips.c:59
+#: alpha.c:108 mips.c:60
#, c-format
msgid "[find_call] %s: 0x%lx to 0x%lx\n"
msgstr "[find_call] %s: 0x%lx ke 0x%lx\n"
-#: alpha.c:129
+#: alpha.c:132
#, c-format
msgid "[find_call] 0x%lx: jsr%s <indirect_child>\n"
msgstr "[find_call] 0x%lx: jsr%s <indirect_child>\n"
-#: alpha.c:139
+#: alpha.c:142
#, c-format
msgid "[find_call] 0x%lx: bsr"
msgstr "[find_call] 0x%lx: bsr"
-#: basic_blocks.c:128 call_graph.c:89 hist.c:106
+#: basic_blocks.c:129 call_graph.c:90 hist.c:106
#, c-format
msgid "%s: %s: unexpected end of file\n"
msgstr "%s: %s: akhir fail tidak dijangka\n"
-#: basic_blocks.c:196
+#: basic_blocks.c:199
#, c-format
msgid "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
msgstr "%s: amaran: mengabaikan kiraan pelaksanaan blok-asas (guna -l atau --line)\n"
#. FIXME: This only works if bfd_vma is unsigned long.
-#: basic_blocks.c:289 basic_blocks.c:299
+#: basic_blocks.c:294 basic_blocks.c:304
#, c-format
msgid "%s:%d: (%s:0x%lx) %lu executions\n"
msgstr "%s:%d: (%s:0x%lx) %lu pelaksanaan\n"
-#: basic_blocks.c:290 basic_blocks.c:300
+#: basic_blocks.c:295 basic_blocks.c:305
msgid "<unknown>"
msgstr "<tidak diketahui>"
-#: basic_blocks.c:543
+#: basic_blocks.c:545
#, c-format
msgid ""
"\n"
@@ -75,7 +75,7 @@ msgstr ""
" Baris Kiraan\n"
"\n"
-#: basic_blocks.c:567
+#: basic_blocks.c:569
#, c-format
msgid ""
"\n"
@@ -86,22 +86,22 @@ msgstr ""
"Ringkasan Pelaksanaan:\n"
"\n"
-#: basic_blocks.c:568
+#: basic_blocks.c:570
#, c-format
msgid "%9ld Executable lines in this file\n"
msgstr "%9ld Baris bolehlaksana dalam fail ini\n"
-#: basic_blocks.c:570
+#: basic_blocks.c:572
#, c-format
msgid "%9ld Lines executed\n"
msgstr "%9ld Baris dilaksana\n"
-#: basic_blocks.c:571
+#: basic_blocks.c:573
#, c-format
msgid "%9.2f Percent of the file executed\n"
msgstr "%9.2f Peratus fail dilaksana\n"
-#: basic_blocks.c:575
+#: basic_blocks.c:577
#, c-format
msgid ""
"\n"
@@ -110,12 +110,12 @@ msgstr ""
"\n"
"%9lu Jumlah baris pelaksanaan\n"
-#: basic_blocks.c:577
+#: basic_blocks.c:579
#, c-format
msgid "%9.2f Average executions per line\n"
msgstr "%9.2f Purata pelaksanaan per baris\n"
-#: call_graph.c:68
+#: call_graph.c:69
#, c-format
msgid "[cg_tally] arc from %s to %s traversed %lu times\n"
msgstr "[cg_tally] arc dari %s ke %s berpindah %lu kali\n"
@@ -138,7 +138,7 @@ msgstr ""
"\t\t\tGraf panggilan\n"
"\n"
-#: cg_print.c:79 hist.c:470
+#: cg_print.c:79 hist.c:472
#, c-format
msgid ""
"\n"
@@ -194,7 +194,7 @@ msgstr "sendiri"
msgid "descendants"
msgstr "keturunan"
-#: cg_print.c:102 hist.c:496
+#: cg_print.c:102 hist.c:498
msgid "name"
msgstr "nama"
@@ -222,7 +222,7 @@ msgstr "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s <secara spontan>\n"
msgid "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s <spontaneous>\n"
msgstr "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s <spontan>\n"
-#: cg_print.c:593
+#: cg_print.c:595
#, c-format
msgid ""
"Index by function name\n"
@@ -231,147 +231,142 @@ msgstr ""
"Indeks dengan nama fungsi\n"
"\n"
-#: cg_print.c:650 cg_print.c:659
+#: cg_print.c:652 cg_print.c:661
#, c-format
msgid "<cycle %d>"
msgstr "<pusingan %d>"
-#: corefile.c:61
+#: corefile.c:63
#, c-format
msgid "%s: unable to parse mapping file %s.\n"
msgstr "%s: tidak dapat menghurai fail pemetaan %s.\n"
-#: corefile.c:89 corefile.c:524
+#: corefile.c:91 corefile.c:532
#, c-format
msgid "%s: could not open %s.\n"
msgstr "%s: tidak dapat membuka %s.\n"
-#: corefile.c:193
+#: corefile.c:195
#, c-format
msgid "%s: %s: not in executable format\n"
msgstr "%s: %s: bukan dalam format bolehlaksana\n"
-#: corefile.c:204
+#: corefile.c:206
#, c-format
msgid "%s: can't find .text section in %s\n"
msgstr "%s: tidak dapat mencari seksyen .text dalam %s\n"
-#: corefile.c:278
+#: corefile.c:287
#, c-format
msgid "%s: ran out room for %lu bytes of text space\n"
msgstr "%s: tidak cukup ruang untuk %lu byte bagi ruang teks\n"
-#: corefile.c:292
+#: corefile.c:301
#, c-format
msgid "%s: can't do -c\n"
msgstr "%s: tidak dapat melakukan -c\n"
-#: corefile.c:331
+#: corefile.c:340
#, c-format
msgid "%s: -c not supported on architecture %s\n"
msgstr "%s: -c tidak disokong pada rekabentuk %s\n"
-#: corefile.c:533 corefile.c:640
+#: corefile.c:543 corefile.c:647
#, c-format
msgid "%s: file `%s' has no symbols\n"
msgstr "%s: fail `%s' tidak mempunyai simbol\n"
-#: corefile.c:538
+#: corefile.c:548
#, c-format
msgid "%s: file `%s' has too many symbols\n"
msgstr "%s: fail `%s' mempunyai terlalu banyak simbol\n"
-#: corefile.c:907
-#, c-format
-msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
-msgstr "%s: seseorang salah mengira: ltab.len=%d berbanding %ld\n"
-
-#: gmon_io.c:81
+#: gmon_io.c:85
#, c-format
msgid "%s: address size has unexpected value of %u\n"
msgstr "%s: saiz alamat mempunyai nilai %u tidak dijangka\n"
-#: gmon_io.c:298 gmon_io.c:394
+#: gmon_io.c:302 gmon_io.c:402
#, c-format
msgid "%s: file too short to be a gmon file\n"
msgstr "%s: fail terlalu pendek untuk menjadi fail gmon\n"
-#: gmon_io.c:308 gmon_io.c:437
+#: gmon_io.c:312 gmon_io.c:445
#, c-format
msgid "%s: file `%s' has bad magic cookie\n"
msgstr "%s: fail `%s' mempunyai cecikut magik buruk\n"
-#: gmon_io.c:319
+#: gmon_io.c:323
#, c-format
msgid "%s: file `%s' has unsupported version %d\n"
msgstr "%s: fail `%s' tidak mempunyai versi disokong %d\n"
-#: gmon_io.c:349
+#: gmon_io.c:357
#, c-format
msgid "%s: %s: found bad tag %d (file corrupted?)\n"
msgstr "%s: %s: tag buruk %d dijumpai (fail rosak?)\n"
-#: gmon_io.c:416
+#: gmon_io.c:424
#, c-format
msgid "%s: profiling rate incompatible with first gmon file\n"
msgstr "%s: kadar pemprofilan tidak sepadan dengan fail gmon pertama\n"
-#: gmon_io.c:467
+#: gmon_io.c:475
#, c-format
msgid "%s: incompatible with first gmon file\n"
msgstr "%s: tidak sepadan dengan fail gmon pertama\n"
-#: gmon_io.c:497
+#: gmon_io.c:505
#, c-format
msgid "%s: file '%s' does not appear to be in gmon.out format\n"
msgstr "%s: fail '%s' tidak kelihatan seperti dialam format gmon.out\n"
-#: gmon_io.c:510
+#: gmon_io.c:518
#, c-format
msgid "%s: unexpected EOF after reading %d/%d bins\n"
msgstr "%s: EOF tidak dijangka selepas membaca %d/%d bins\n"
-#: gmon_io.c:542
+#: gmon_io.c:550
#, c-format
msgid "time is in ticks, not seconds\n"
msgstr "masa dalam tick, bukan saat\n"
-#: gmon_io.c:548 gmon_io.c:728
+#: gmon_io.c:556 gmon_io.c:739
#, c-format
msgid "%s: don't know how to deal with file format %d\n"
msgstr "%s: tidak tahu bagaimana untuk menguruskan format fail %d\n"
-#: gmon_io.c:558
+#: gmon_io.c:566
#, c-format
msgid "File `%s' (version %d) contains:\n"
msgstr "Fail `%s' (versi %d) mengandungi:\n"
-#: gmon_io.c:561
+#: gmon_io.c:569
#, c-format
msgid "\t%d histogram record\n"
msgstr "\t%d rekod histogram\n"
-#: gmon_io.c:562
+#: gmon_io.c:570
#, c-format
msgid "\t%d histogram records\n"
msgstr "\t%d rekod histogram\n"
-#: gmon_io.c:564
+#: gmon_io.c:572
#, c-format
msgid "\t%d call-graph record\n"
msgstr "\t%d rekod graf panggilan\n"
-#: gmon_io.c:565
+#: gmon_io.c:573
#, c-format
msgid "\t%d call-graph records\n"
msgstr "\t%d rekod graf panggilan\n"
-#: gmon_io.c:567
+#: gmon_io.c:575
#, c-format
msgid "\t%d basic-block count record\n"
msgstr "\t%d rekod kiraan blok-asas\n"
-#: gmon_io.c:568
+#: gmon_io.c:576
#, c-format
msgid "\t%d basic-block count records\n"
msgstr "\t%d rekod kiraan blok-asas\n"
@@ -448,17 +443,17 @@ msgstr "%s: gaya nyahkusut `%s' tidak diketahui\n"
msgid "%s: Only one of --function-ordering and --file-ordering may be specified.\n"
msgstr "%s: Hanya satu dari --function-ordering dan --file-ordering boleh dinyatakan.\n"
-#: gprof.c:544
+#: gprof.c:533
#, c-format
msgid "%s: sorry, file format `prof' is not yet supported\n"
msgstr "%s: maaf, format format `prof' belum lagi disokong\n"
-#: gprof.c:598
+#: gprof.c:587
#, c-format
msgid "%s: gmon.out file is missing histogram\n"
msgstr "%s: fail gmon.out kehilangan histogram\n"
-#: gprof.c:605
+#: gprof.c:594
#, c-format
msgid "%s: gmon.out file is missing call-graph data\n"
msgstr "%s: fail gmon.out kehilangan data graf-panggilan\n"
@@ -487,8 +482,8 @@ msgstr ""
#: hist.c:158
#, c-format
-msgid "%s: different scales in histogram records"
-msgstr "%s: skala berbeza dalam rekod histogram"
+msgid "%s: different scales in histogram records: %f != %f\n"
+msgstr "%s: skala berbeza dalam rekod histogram: %f != %f\n"
#: hist.c:195
#, c-format
@@ -500,12 +495,12 @@ msgstr "%s: rekod histogram bertindih\n"
msgid "%s: %s: unexpected EOF after reading %u of %u samples\n"
msgstr "%s: %s: EOF tidak dijangka selepas membaca %u dari %u sampel\n"
-#: hist.c:466
+#: hist.c:468
#, c-format
msgid "%c%c/call"
msgstr "%c%c/panggilan"
-#: hist.c:474
+#: hist.c:476
#, c-format
msgid ""
" for %.2f%% of %.2f %s\n"
@@ -514,7 +509,7 @@ msgstr ""
" untuk %.2f%% dari %.2f %s\n"
"\n"
-#: hist.c:480
+#: hist.c:482
#, c-format
msgid ""
"\n"
@@ -523,7 +518,7 @@ msgstr ""
"\n"
"Setiap sampel kira sebagai %g %s.\n"
-#: hist.c:485
+#: hist.c:487
#, c-format
msgid ""
" no time accumulated\n"
@@ -532,27 +527,27 @@ msgstr ""
" tiada masa dikumpulkan\n"
"\n"
-#: hist.c:492
+#: hist.c:494
msgid "cumulative"
msgstr "kumulatif"
-#: hist.c:492
+#: hist.c:494
msgid "self "
msgstr "sendiri "
-#: hist.c:492
+#: hist.c:494
msgid "total "
msgstr "jumlah "
-#: hist.c:495
+#: hist.c:497
msgid "time"
msgstr "masa"
-#: hist.c:495
+#: hist.c:497
msgid "calls"
msgstr "panggilan"
-#: hist.c:584
+#: hist.c:587
#, c-format
msgid ""
"\n"
@@ -565,22 +560,22 @@ msgstr ""
"\n"
"profil mendatar:\n"
-#: hist.c:590
+#: hist.c:593
#, c-format
msgid "Flat profile:\n"
msgstr "Profil mendatar:\n"
-#: hist.c:711
+#: hist.c:714
#, c-format
msgid "%s: found a symbol that covers several histogram records"
msgstr "%s: menjumpai simbol yang merangkumi beberapa rekod histogram"
-#: mips.c:71
+#: mips.c:74
#, c-format
msgid "[find_call] 0x%lx: jal"
msgstr "[find_call] 0x%lx: jal"
-#: mips.c:99
+#: mips.c:102
#, c-format
msgid "[find_call] 0x%lx: jalr\n"
msgstr "[find_call] 0x%lx: jalr\n"
diff --git a/gprof/po/sr.po b/gprof/po/sr.po
index 921f7ba..d9cd4fc 100644
--- a/gprof/po/sr.po
+++ b/gprof/po/sr.po
@@ -1,14 +1,14 @@
# Serbian translation of gprof.
# Copyright © 2020 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
-# МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>, 2012—2023.
+# МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>, 2012-2025.
#
msgid ""
msgstr ""
-"Project-Id-Version: gprof-2.39.90\n"
+"Project-Id-Version: gprof-2.44.90\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2022-12-31 12:22+0000\n"
-"PO-Revision-Date: 2023-02-25 09:09+0100\n"
+"POT-Creation-Date: 2025-07-13 08:49+0100\n"
+"PO-Revision-Date: 2025-08-31 08:19+0200\n"
"Last-Translator: МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(nothing)>\n"
"Language: sr\n"
@@ -16,49 +16,49 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: Gtranslator 41.0\n"
+"X-Generator: Poedit 3.5\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
-#: alpha.c:102 mips.c:54
+#: alpha.c:103 mips.c:55
msgid "<indirect child>"
msgstr "<индиректни пород>"
-#: alpha.c:107 mips.c:59
+#: alpha.c:108 mips.c:60
#, c-format
msgid "[find_call] %s: 0x%lx to 0x%lx\n"
msgstr "[find_call] %s: 0x%lx до 0x%lx\n"
-#: alpha.c:129
+#: alpha.c:132
#, c-format
msgid "[find_call] 0x%lx: jsr%s <indirect_child>\n"
msgstr "[find_call] 0x%lx: jsr%s <индиректни_пород>\n"
-#: alpha.c:139
+#: alpha.c:142
#, c-format
msgid "[find_call] 0x%lx: bsr"
msgstr "[find_call] 0x%lx: бÑÑ€"
-#: basic_blocks.c:128 call_graph.c:89 hist.c:106
+#: basic_blocks.c:129 call_graph.c:90 hist.c:106
#, c-format
msgid "%s: %s: unexpected end of file\n"
msgstr "%s: %s: неочекивани крај датотеке\n"
-#: basic_blocks.c:196
+#: basic_blocks.c:199
#, c-format
msgid "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
msgstr "%s: упозорење: занемарујем број извршавања оÑновног блока (кориÑтим -l или --line)\n"
#. FIXME: This only works if bfd_vma is unsigned long.
-#: basic_blocks.c:289 basic_blocks.c:299
+#: basic_blocks.c:294 basic_blocks.c:304
#, c-format
msgid "%s:%d: (%s:0x%lx) %lu executions\n"
msgstr "%s:%d: (%s:0x%lx) %lu извршавања\n"
-#: basic_blocks.c:290 basic_blocks.c:300
+#: basic_blocks.c:295 basic_blocks.c:305
msgid "<unknown>"
msgstr "<непознато>"
-#: basic_blocks.c:543
+#: basic_blocks.c:545
#, c-format
msgid ""
"\n"
@@ -75,7 +75,7 @@ msgstr ""
" Ред Број\n"
"\n"
-#: basic_blocks.c:567
+#: basic_blocks.c:569
#, c-format
msgid ""
"\n"
@@ -86,22 +86,22 @@ msgstr ""
"Сажетак извршавања:\n"
"\n"
-#: basic_blocks.c:568
+#: basic_blocks.c:570
#, c-format
msgid "%9ld Executable lines in this file\n"
msgstr "%9ld Извршних редова у овој датотеци\n"
-#: basic_blocks.c:570
+#: basic_blocks.c:572
#, c-format
msgid "%9ld Lines executed\n"
msgstr "%9ld Извршених редова\n"
-#: basic_blocks.c:571
+#: basic_blocks.c:573
#, c-format
msgid "%9.2f Percent of the file executed\n"
msgstr "%9.2f Проценат извршених датотека\n"
-#: basic_blocks.c:575
+#: basic_blocks.c:577
#, c-format
msgid ""
"\n"
@@ -110,12 +110,12 @@ msgstr ""
"\n"
"%9lu Укупан број извршавања реда\n"
-#: basic_blocks.c:577
+#: basic_blocks.c:579
#, c-format
msgid "%9.2f Average executions per line\n"
msgstr "%9.2f ПроÑечно извршавања по реду\n"
-#: call_graph.c:68
+#: call_graph.c:69
#, c-format
msgid "[cg_tally] arc from %s to %s traversed %lu times\n"
msgstr "[cg_tally] арц Ñа %s на %s је пребачено %lu пута\n"
@@ -138,7 +138,7 @@ msgstr ""
"\t\t\tГрафик позива\n"
"\n"
-#: cg_print.c:79 hist.c:470
+#: cg_print.c:79 hist.c:472
#, c-format
msgid ""
"\n"
@@ -194,7 +194,7 @@ msgstr "иÑти"
msgid "descendants"
msgstr "наÑледник"
-#: cg_print.c:102 hist.c:496
+#: cg_print.c:102 hist.c:498
msgid "name"
msgstr "назив"
@@ -222,7 +222,7 @@ msgstr "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s <Ñвојевољно>\n"
msgid "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s <spontaneous>\n"
msgstr "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s <Ñвојевољно>\n"
-#: cg_print.c:593
+#: cg_print.c:595
#, c-format
msgid ""
"Index by function name\n"
@@ -231,147 +231,142 @@ msgstr ""
"Ð˜Ð½Ð´ÐµÐºÑ Ð¿Ñ€ÐµÐ¼Ð° називу функције\n"
"\n"
-#: cg_print.c:650 cg_print.c:659
+#: cg_print.c:652 cg_print.c:661
#, c-format
msgid "<cycle %d>"
msgstr "<Ñ†Ð¸ÐºÐ»ÑƒÑ %d>"
-#: corefile.c:61
+#: corefile.c:63
#, c-format
msgid "%s: unable to parse mapping file %s.\n"
msgstr "%s: не могу да обрадим датотеку мапирања %s.\n"
-#: corefile.c:89 corefile.c:524
+#: corefile.c:91 corefile.c:532
#, c-format
msgid "%s: could not open %s.\n"
msgstr "%s: не могу да отворим %s.\n"
-#: corefile.c:193
+#: corefile.c:195
#, c-format
msgid "%s: %s: not in executable format\n"
msgstr "%s: %s: није у формату за извршавање\n"
-#: corefile.c:204
+#: corefile.c:206
#, c-format
msgid "%s: can't find .text section in %s\n"
msgstr "%s: не могу да нађем „.text“ одељак у %s\n"
-#: corefile.c:278
+#: corefile.c:287
#, c-format
msgid "%s: ran out room for %lu bytes of text space\n"
msgstr "%s: премашује проÑтор за %lu бајтова текÑтуалног проÑтора\n"
-#: corefile.c:292
+#: corefile.c:301
#, c-format
msgid "%s: can't do -c\n"
msgstr "%s: не могу да обавим -c\n"
-#: corefile.c:331
+#: corefile.c:340
#, c-format
msgid "%s: -c not supported on architecture %s\n"
msgstr "%s: -c није подржано на архитектури %s\n"
-#: corefile.c:533 corefile.c:640
+#: corefile.c:543 corefile.c:647
#, c-format
msgid "%s: file `%s' has no symbols\n"
msgstr "%s: датотека „%s“ нема Ñимболе\n"
-#: corefile.c:538
+#: corefile.c:548
#, c-format
msgid "%s: file `%s' has too many symbols\n"
msgstr "%s: датотека „%s“ има превише Ñимбола\n"
-#: corefile.c:907
-#, c-format
-msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
-msgstr "%s: неко је погрешно пребројан: ltab.len=%d умеÑто %ld\n"
-
-#: gmon_io.c:81
+#: gmon_io.c:85
#, c-format
msgid "%s: address size has unexpected value of %u\n"
msgstr "%s: величина адреÑе имаше неочекивану вредноÑÑ‚ %u\n"
-#: gmon_io.c:298 gmon_io.c:394
+#: gmon_io.c:302 gmon_io.c:402
#, c-format
msgid "%s: file too short to be a gmon file\n"
msgstr "%s: датотека је прекратка да би била гмон датотека\n"
-#: gmon_io.c:308 gmon_io.c:437
+#: gmon_io.c:312 gmon_io.c:445
#, c-format
msgid "%s: file `%s' has bad magic cookie\n"
msgstr "%s: датотека „%s“ има лош колачић магије\n"
-#: gmon_io.c:319
+#: gmon_io.c:323
#, c-format
msgid "%s: file `%s' has unsupported version %d\n"
msgstr "%s: датотека „%s“ има неподржано издање %d\n"
-#: gmon_io.c:349
+#: gmon_io.c:357
#, c-format
msgid "%s: %s: found bad tag %d (file corrupted?)\n"
msgstr "%s: %s: пронађох лошу ознаку %d (оштећена датотека?)\n"
-#: gmon_io.c:416
+#: gmon_io.c:424
#, c-format
msgid "%s: profiling rate incompatible with first gmon file\n"
msgstr "%s: проток профилиÑања није ÑаглаÑан Ñа првом гмон датотеком\n"
-#: gmon_io.c:467
+#: gmon_io.c:475
#, c-format
msgid "%s: incompatible with first gmon file\n"
msgstr "%s: није ÑаглаÑан Ñа првом гмон датотеком\n"
-#: gmon_io.c:497
+#: gmon_io.c:505
#, c-format
msgid "%s: file '%s' does not appear to be in gmon.out format\n"
msgstr "%s: датотека „%s“ не изгледа да је у гмон.out формату\n"
-#: gmon_io.c:510
+#: gmon_io.c:518
#, c-format
msgid "%s: unexpected EOF after reading %d/%d bins\n"
msgstr "%s: неочекивани КРД након читања %d/%d блокова\n"
-#: gmon_io.c:542
+#: gmon_io.c:550
#, c-format
msgid "time is in ticks, not seconds\n"
msgstr "време је у откуцајима, а не Ñекунде\n"
-#: gmon_io.c:548 gmon_io.c:728
+#: gmon_io.c:556 gmon_io.c:739
#, c-format
msgid "%s: don't know how to deal with file format %d\n"
msgstr "%s: не знам како да поÑтупим Ñа форматом датотеке %d\n"
-#: gmon_io.c:558
+#: gmon_io.c:566
#, c-format
msgid "File `%s' (version %d) contains:\n"
msgstr "Датотека „%s“ (издање %d) Ñадржи:\n"
-#: gmon_io.c:561
+#: gmon_io.c:569
#, c-format
msgid "\t%d histogram record\n"
msgstr "\t%d Ñнимак хиÑтограма\n"
-#: gmon_io.c:562
+#: gmon_io.c:570
#, c-format
msgid "\t%d histogram records\n"
msgstr "\t%d Ñнимка хиÑтограма\n"
-#: gmon_io.c:564
+#: gmon_io.c:572
#, c-format
msgid "\t%d call-graph record\n"
msgstr "\t%d Ñнимак графика позива\n"
-#: gmon_io.c:565
+#: gmon_io.c:573
#, c-format
msgid "\t%d call-graph records\n"
msgstr "\t%d Ñнимка графика позива\n"
-#: gmon_io.c:567
+#: gmon_io.c:575
#, c-format
msgid "\t%d basic-block count record\n"
msgstr "\t%d Ñнимак броја оÑновног блока\n"
-#: gmon_io.c:568
+#: gmon_io.c:576
#, c-format
msgid "\t%d basic-block count records\n"
msgstr "\t%d Ñнимка броја оÑновног блока\n"
@@ -448,17 +443,17 @@ msgstr "%s: непознат Ñтил изопачивања „%s“\n"
msgid "%s: Only one of --function-ordering and --file-ordering may be specified.\n"
msgstr "%s: Може бити наведено или Ñамо „--function-ordering“ или „--file-ordering“.\n"
-#: gprof.c:544
+#: gprof.c:533
#, c-format
msgid "%s: sorry, file format `prof' is not yet supported\n"
msgstr "%s: извините, формат датотеке „prof“ још увек није подржан\n"
-#: gprof.c:598
+#: gprof.c:587
#, c-format
msgid "%s: gmon.out file is missing histogram\n"
msgstr "%s: гмон.out датотеци недоÑтаје хиÑтограм\n"
-#: gprof.c:605
+#: gprof.c:594
#, c-format
msgid "%s: gmon.out file is missing call-graph data\n"
msgstr "%s: гмон.out датотеци недоÑтају подаци графика позива\n"
@@ -487,8 +482,8 @@ msgstr ""
#: hist.c:158
#, c-format
-msgid "%s: different scales in histogram records"
-msgstr "%s: различите размере у Ñнимцима хиÑтограма"
+msgid "%s: different scales in histogram records: %f != %f\n"
+msgstr "%s: различите размере у Ñнимцима хиÑтограма: %f != %f\n"
#: hist.c:195
#, c-format
@@ -500,12 +495,12 @@ msgstr "%s: преклапам Ñнимке хиÑтограма\n"
msgid "%s: %s: unexpected EOF after reading %u of %u samples\n"
msgstr "%s: %s: неочекивани КРД након читања %u од %u узорака\n"
-#: hist.c:466
+#: hist.c:468
#, c-format
msgid "%c%c/call"
msgstr "%c%c/позив"
-#: hist.c:474
+#: hist.c:476
#, c-format
msgid ""
" for %.2f%% of %.2f %s\n"
@@ -514,7 +509,7 @@ msgstr ""
" за %.2f%% од %.2f %s\n"
"\n"
-#: hist.c:480
+#: hist.c:482
#, c-format
msgid ""
"\n"
@@ -523,7 +518,7 @@ msgstr ""
"\n"
"Сваки узорак Ñе броји као %g %s.\n"
-#: hist.c:485
+#: hist.c:487
#, c-format
msgid ""
" no time accumulated\n"
@@ -532,27 +527,27 @@ msgstr ""
" није зарађено на времену\n"
"\n"
-#: hist.c:492
+#: hist.c:494
msgid "cumulative"
msgstr "збирно"
-#: hist.c:492
+#: hist.c:494
msgid "self "
msgstr "Ñам "
-#: hist.c:492
+#: hist.c:494
msgid "total "
msgstr "укупно "
-#: hist.c:495
+#: hist.c:497
msgid "time"
msgstr "време"
-#: hist.c:495
+#: hist.c:497
msgid "calls"
msgstr "позиви"
-#: hist.c:584
+#: hist.c:587
#, c-format
msgid ""
"\n"
@@ -565,22 +560,22 @@ msgstr ""
"\n"
"обичан профил:\n"
-#: hist.c:590
+#: hist.c:593
#, c-format
msgid "Flat profile:\n"
msgstr "Обичан профил:\n"
-#: hist.c:711
+#: hist.c:714
#, c-format
msgid "%s: found a symbol that covers several histogram records"
msgstr "%s: пронашао Ñам Ñимбол који покрива неколико Ñнимака хиÑтограма"
-#: mips.c:71
+#: mips.c:74
#, c-format
msgid "[find_call] 0x%lx: jal"
msgstr "[find_call] 0x%lx: јал"
-#: mips.c:99
+#: mips.c:102
#, c-format
msgid "[find_call] 0x%lx: jalr\n"
msgstr "[find_call] 0x%lx: јалр\n"
@@ -599,3 +594,7 @@ msgstr "*** Датотека %s:\n"
#, c-format
msgid " <cycle %d>"
msgstr " <Ñ†Ð¸ÐºÐ»ÑƒÑ %d>"
+
+#, c-format
+#~ msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
+#~ msgstr "%s: неко је погрешно пребројан: ltab.len=%d умеÑто %ld\n"
diff --git a/gprof/testsuite/Makefile.in b/gprof/testsuite/Makefile.in
index ab8a2cb..77cecd1 100644
--- a/gprof/testsuite/Makefile.in
+++ b/gprof/testsuite/Makefile.in
@@ -96,7 +96,9 @@ target_triplet = @target@
subdir = testsuite
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../bfd/warning.m4 \
+ $(top_srcdir)/../config/clang-plugin.m4 \
$(top_srcdir)/../config/depstand.m4 \
+ $(top_srcdir)/../config/gcc-plugin.m4 \
$(top_srcdir)/../config/gettext-sister.m4 \
$(top_srcdir)/../config/gettext.m4 \
$(top_srcdir)/../config/iconv.m4 \
@@ -399,6 +401,7 @@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
+LLVM_CONFIG = @LLVM_CONFIG@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
LTLIBINTL = @LTLIBINTL@
diff --git a/gprofng/Makefile.am b/gprofng/Makefile.am
index 88f16bc..1627ffa 100644
--- a/gprofng/Makefile.am
+++ b/gprofng/Makefile.am
@@ -16,7 +16,7 @@
# along with this program; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
-ACLOCAL_AMFLAGS = -I . -I ..
+ACLOCAL_AMFLAGS = -I . -I .. -I ../config
AUTOMAKE_OPTIONS = dejagnu foreign
diff --git a/gprofng/Makefile.in b/gprofng/Makefile.in
index f770dac..25aeb92 100644
--- a/gprofng/Makefile.in
+++ b/gprofng/Makefile.in
@@ -107,10 +107,15 @@ host_triplet = @host@
target_triplet = @target@
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../libtool.m4 \
- $(top_srcdir)/../ltoptions.m4 $(top_srcdir)/../ltsugar.m4 \
- $(top_srcdir)/../ltversion.m4 $(top_srcdir)/../lt~obsolete.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/../config/warnings.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/../config/clang-plugin.m4 \
+ $(top_srcdir)/../config/depstand.m4 \
+ $(top_srcdir)/../config/gcc-plugin.m4 \
+ $(top_srcdir)/../config/lead-dot.m4 \
+ $(top_srcdir)/../config/override.m4 \
+ $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
+ $(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
+ $(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/../config/warnings.m4 \
$(top_srcdir)/../config/enable.m4 \
$(top_srcdir)/../config/ax_pthread.m4 \
$(top_srcdir)/config/bison.m4 $(top_srcdir)/../bfd/version.m4 \
@@ -286,6 +291,7 @@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
+LLVM_CONFIG = @LLVM_CONFIG@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
@@ -378,7 +384,7 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
zlibdir = @zlibdir@
zlibinc = @zlibinc@
-ACLOCAL_AMFLAGS = -I . -I ..
+ACLOCAL_AMFLAGS = -I . -I .. -I ../config
AUTOMAKE_OPTIONS = dejagnu foreign
@BUILD_COLLECTOR_TRUE@COLLECTOR_SUBDIRS = libcollector
@BUILD_DOC_TRUE@DOC_SUBDIR = doc
diff --git a/gprofng/aclocal.m4 b/gprofng/aclocal.m4
index 02b07b9..8eef827 100644
--- a/gprofng/aclocal.m4
+++ b/gprofng/aclocal.m4
@@ -686,25 +686,6 @@ if test x"${install_sh+set}" != xset; then
fi
AC_SUBST([install_sh])])
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# Check whether the underlying file-system supports filenames
-# with a leading dot. For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
-else
- am__leading_dot=_
-fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
# From Jim Meyering
@@ -1246,6 +1227,11 @@ AC_SUBST([am__tar])
AC_SUBST([am__untar])
]) # _AM_PROG_TAR
+m4_include([../config/clang-plugin.m4])
+m4_include([../config/depstand.m4])
+m4_include([../config/gcc-plugin.m4])
+m4_include([../config/lead-dot.m4])
+m4_include([../config/override.m4])
m4_include([../libtool.m4])
m4_include([../ltoptions.m4])
m4_include([../ltsugar.m4])
diff --git a/gprofng/configure b/gprofng/configure
index 9ad1def..2a8f6bd 100755
--- a/gprofng/configure
+++ b/gprofng/configure
@@ -672,6 +672,7 @@ OTOOL
LIPO
NMEDIT
DSYMUTIL
+LLVM_CONFIG
OBJDUMP
LN_S
NM
@@ -2427,6 +2428,9 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
ac_aux_dir=
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
if test -f "$ac_dir/install-sh"; then
@@ -7295,8 +7299,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
-plugin_option=
+
+# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
+# wrong plugin_option with clang.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
+$as_echo_n "checking for clang... " >&6; }
+if ${clang_cv_is_clang+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __clang__
+ yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ clang_cv_is_clang=yes
+else
+ clang_cv_is_clang=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
+$as_echo "$clang_cv_is_clang" >&6; }
+ plugin_file=
+ if test $clang_cv_is_clang = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
+$as_echo_n "checking for clang plugin file... " >&6; }
+ plugin_names="LLVMgold.so"
+ for plugin in $plugin_names; do
+ plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
+ if test x$plugin_file = x$plugin; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LLVM_CONFIG"; then
+ ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
+if test -n "$LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
+$as_echo "$LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LLVM_CONFIG"; then
+ ac_ct_LLVM_CONFIG=$LLVM_CONFIG
+ # Extract the first word of "llvm-config", so it can be a program name with args.
+set dummy llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LLVM_CONFIG"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
+if test -n "$ac_ct_LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
+$as_echo "$ac_ct_LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LLVM_CONFIG" = x; then
+ LLVM_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LLVM_CONFIG=$ac_ct_LLVM_CONFIG
+ fi
+else
+ LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
+fi
+
+ if test "$?" != 0; then
+ as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
+ fi
+ clang_lib_dir=`$LLVM_CONFIG --libdir`
+ if test -f $clang_lib_dir/$plugin; then
+ plugin_file=$clang_lib_dir/$plugin
+ fi
+ if test x$plugin_file != x$plugin; then
+ break;
+ fi
+ fi
+ done
+ if test -z $plugin_file; then
+ as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
+ fi
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+ if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ plugin_option="--plugin $plugin_file"
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_file=
+ fi
+ rm -f conftest.*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
+$as_echo "$plugin_file" >&6; }
+ fi
+ plugin_file="$plugin_file"
+
+if test -n "$plugin_file"; then
+ plugin_option="--plugin $plugin_file"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
+$as_echo_n "checking for -plugin option... " >&6; }
+
plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+plugin_option=
for plugin in $plugin_names; do
plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
if test x$plugin_so = x$plugin; then
@@ -7307,7 +7569,119 @@ for plugin in $plugin_names; do
break
fi
done
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+fi
+touch conftest.c
+${AR} $plugin_option rc conftest.a conftest.c
+if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_option=
+fi
+rm -f conftest.*
+if test -n "$plugin_option"; then
+ plugin_option="$plugin_option"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+$as_echo "$plugin_option" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
@@ -7402,17 +7776,15 @@ fi
test -z "$AR" && AR=ar
if test -n "$plugin_option"; then
- if $AR --help 2>&1 | grep -q "\--plugin"; then
- touch conftest.c
- $AR $plugin_option rc conftest.a conftest.c
- if test "$?" != 0; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
-$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
- else
+ case "$AR" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $AR --help 2>&1 | grep -q "\--plugin"; then
AR="$AR $plugin_option"
fi
- rm -f conftest.*
- fi
+ ;;
+ esac
fi
test -z "$AR_FLAGS" && AR_FLAGS=cru
@@ -7619,9 +7991,15 @@ fi
test -z "$RANLIB" && RANLIB=:
if test -n "$plugin_option" && test "$RANLIB" != ":"; then
- if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
- RANLIB="$RANLIB $plugin_option"
- fi
+ case "$RANLIB" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
+ RANLIB="$RANLIB $plugin_option"
+ fi
+ ;;
+ esac
fi
@@ -12249,7 +12627,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12252 "configure"
+#line 12630 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12355,7 +12733,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12358 "configure"
+#line 12736 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
diff --git a/gprofng/doc/Makefile.in b/gprofng/doc/Makefile.in
index 162ae4b..32dd83d 100644
--- a/gprofng/doc/Makefile.in
+++ b/gprofng/doc/Makefile.in
@@ -108,10 +108,15 @@ host_triplet = @host@
target_triplet = @target@
subdir = doc
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../libtool.m4 \
- $(top_srcdir)/../ltoptions.m4 $(top_srcdir)/../ltsugar.m4 \
- $(top_srcdir)/../ltversion.m4 $(top_srcdir)/../lt~obsolete.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/../config/warnings.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/../config/clang-plugin.m4 \
+ $(top_srcdir)/../config/depstand.m4 \
+ $(top_srcdir)/../config/gcc-plugin.m4 \
+ $(top_srcdir)/../config/lead-dot.m4 \
+ $(top_srcdir)/../config/override.m4 \
+ $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
+ $(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
+ $(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/../config/warnings.m4 \
$(top_srcdir)/../config/enable.m4 \
$(top_srcdir)/../config/ax_pthread.m4 \
$(top_srcdir)/config/bison.m4 $(top_srcdir)/../bfd/version.m4 \
@@ -268,6 +273,7 @@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
+LLVM_CONFIG = @LLVM_CONFIG@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
diff --git a/gprofng/gp-display-html/Makefile.in b/gprofng/gp-display-html/Makefile.in
index 2b8580f..318c5e0 100644
--- a/gprofng/gp-display-html/Makefile.in
+++ b/gprofng/gp-display-html/Makefile.in
@@ -108,10 +108,15 @@ host_triplet = @host@
target_triplet = @target@
subdir = gp-display-html
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../libtool.m4 \
- $(top_srcdir)/../ltoptions.m4 $(top_srcdir)/../ltsugar.m4 \
- $(top_srcdir)/../ltversion.m4 $(top_srcdir)/../lt~obsolete.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/../config/warnings.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/../config/clang-plugin.m4 \
+ $(top_srcdir)/../config/depstand.m4 \
+ $(top_srcdir)/../config/gcc-plugin.m4 \
+ $(top_srcdir)/../config/lead-dot.m4 \
+ $(top_srcdir)/../config/override.m4 \
+ $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
+ $(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
+ $(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/../config/warnings.m4 \
$(top_srcdir)/../config/enable.m4 \
$(top_srcdir)/../config/ax_pthread.m4 \
$(top_srcdir)/config/bison.m4 $(top_srcdir)/../bfd/version.m4 \
@@ -228,6 +233,7 @@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
+LLVM_CONFIG = @LLVM_CONFIG@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
diff --git a/gprofng/libcollector/Makefile.am b/gprofng/libcollector/Makefile.am
index 32eb071..e085c03 100644
--- a/gprofng/libcollector/Makefile.am
+++ b/gprofng/libcollector/Makefile.am
@@ -17,7 +17,7 @@
# <http://www.gnu.org/licenses/>.
AUTOMAKE_OPTIONS = foreign
-ACLOCAL_AMFLAGS = -I . -I ../..
+ACLOCAL_AMFLAGS = -I . -I ../.. -I ../../config
CSOURCES = \
gethrtime.c \
diff --git a/gprofng/libcollector/Makefile.in b/gprofng/libcollector/Makefile.in
index 4448745..a856f47 100644
--- a/gprofng/libcollector/Makefile.in
+++ b/gprofng/libcollector/Makefile.in
@@ -109,7 +109,9 @@ host_triplet = @host@
target_triplet = @target@
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/../../config/clang-plugin.m4 \
+ $(top_srcdir)/../../config/depstand.m4 \
+ $(top_srcdir)/../../config/gcc-plugin.m4 \
$(top_srcdir)/../../config/lead-dot.m4 \
$(top_srcdir)/../../config/override.m4 \
$(top_srcdir)/../../config/warnings.m4 \
@@ -337,6 +339,7 @@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
+LLVM_CONFIG = @LLVM_CONFIG@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
@@ -420,7 +423,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AUTOMAKE_OPTIONS = foreign
-ACLOCAL_AMFLAGS = -I . -I ../..
+ACLOCAL_AMFLAGS = -I . -I ../.. -I ../../config
CSOURCES = \
gethrtime.c \
dispatcher.c \
diff --git a/gprofng/libcollector/aclocal.m4 b/gprofng/libcollector/aclocal.m4
index 2d13dba..b269df7 100644
--- a/gprofng/libcollector/aclocal.m4
+++ b/gprofng/libcollector/aclocal.m4
@@ -1227,7 +1227,9 @@ AC_SUBST([am__tar])
AC_SUBST([am__untar])
]) # _AM_PROG_TAR
+m4_include([../../config/clang-plugin.m4])
m4_include([../../config/depstand.m4])
+m4_include([../../config/gcc-plugin.m4])
m4_include([../../config/lead-dot.m4])
m4_include([../../config/override.m4])
m4_include([../../config/warnings.m4])
diff --git a/gprofng/libcollector/configure b/gprofng/libcollector/configure
index ecd1542..6e2429a 100755
--- a/gprofng/libcollector/configure
+++ b/gprofng/libcollector/configure
@@ -640,6 +640,7 @@ OTOOL
LIPO
NMEDIT
DSYMUTIL
+LLVM_CONFIG
OBJDUMP
LN_S
NM
@@ -7110,8 +7111,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
-plugin_option=
+
+# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
+# wrong plugin_option with clang.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
+$as_echo_n "checking for clang... " >&6; }
+if ${clang_cv_is_clang+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __clang__
+ yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ clang_cv_is_clang=yes
+else
+ clang_cv_is_clang=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
+$as_echo "$clang_cv_is_clang" >&6; }
+ plugin_file=
+ if test $clang_cv_is_clang = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
+$as_echo_n "checking for clang plugin file... " >&6; }
+ plugin_names="LLVMgold.so"
+ for plugin in $plugin_names; do
+ plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
+ if test x$plugin_file = x$plugin; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LLVM_CONFIG"; then
+ ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
+if test -n "$LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
+$as_echo "$LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LLVM_CONFIG"; then
+ ac_ct_LLVM_CONFIG=$LLVM_CONFIG
+ # Extract the first word of "llvm-config", so it can be a program name with args.
+set dummy llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LLVM_CONFIG"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
+if test -n "$ac_ct_LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
+$as_echo "$ac_ct_LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LLVM_CONFIG" = x; then
+ LLVM_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LLVM_CONFIG=$ac_ct_LLVM_CONFIG
+ fi
+else
+ LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
+fi
+
+ if test "$?" != 0; then
+ as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
+ fi
+ clang_lib_dir=`$LLVM_CONFIG --libdir`
+ if test -f $clang_lib_dir/$plugin; then
+ plugin_file=$clang_lib_dir/$plugin
+ fi
+ if test x$plugin_file != x$plugin; then
+ break;
+ fi
+ fi
+ done
+ if test -z $plugin_file; then
+ as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
+ fi
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+ if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ plugin_option="--plugin $plugin_file"
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_file=
+ fi
+ rm -f conftest.*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
+$as_echo "$plugin_file" >&6; }
+ fi
+ plugin_file="$plugin_file"
+
+if test -n "$plugin_file"; then
+ plugin_option="--plugin $plugin_file"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
+$as_echo_n "checking for -plugin option... " >&6; }
+
plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+plugin_option=
for plugin in $plugin_names; do
plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
if test x$plugin_so = x$plugin; then
@@ -7122,7 +7381,119 @@ for plugin in $plugin_names; do
break
fi
done
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+fi
+touch conftest.c
+${AR} $plugin_option rc conftest.a conftest.c
+if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_option=
+fi
+rm -f conftest.*
+if test -n "$plugin_option"; then
+ plugin_option="$plugin_option"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+$as_echo "$plugin_option" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
@@ -7217,17 +7588,15 @@ fi
test -z "$AR" && AR=ar
if test -n "$plugin_option"; then
- if $AR --help 2>&1 | grep -q "\--plugin"; then
- touch conftest.c
- $AR $plugin_option rc conftest.a conftest.c
- if test "$?" != 0; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
-$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
- else
+ case "$AR" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $AR --help 2>&1 | grep -q "\--plugin"; then
AR="$AR $plugin_option"
fi
- rm -f conftest.*
- fi
+ ;;
+ esac
fi
test -z "$AR_FLAGS" && AR_FLAGS=cru
@@ -7434,9 +7803,15 @@ fi
test -z "$RANLIB" && RANLIB=:
if test -n "$plugin_option" && test "$RANLIB" != ":"; then
- if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
- RANLIB="$RANLIB $plugin_option"
- fi
+ case "$RANLIB" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
+ RANLIB="$RANLIB $plugin_option"
+ fi
+ ;;
+ esac
fi
@@ -12094,7 +12469,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12097 "configure"
+#line 12472 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12200,7 +12575,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12203 "configure"
+#line 12578 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
diff --git a/gprofng/src/Makefile.in b/gprofng/src/Makefile.in
index 0cdd444..0a1934e 100644
--- a/gprofng/src/Makefile.in
+++ b/gprofng/src/Makefile.in
@@ -113,10 +113,15 @@ bin_PROGRAMS = gprofng-archive$(EXEEXT) gprofng-collect-app$(EXEEXT) \
gprofng-display-src$(EXEEXT)
subdir = src
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../libtool.m4 \
- $(top_srcdir)/../ltoptions.m4 $(top_srcdir)/../ltsugar.m4 \
- $(top_srcdir)/../ltversion.m4 $(top_srcdir)/../lt~obsolete.m4 \
- $(top_srcdir)/acinclude.m4 $(top_srcdir)/../config/warnings.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/../config/clang-plugin.m4 \
+ $(top_srcdir)/../config/depstand.m4 \
+ $(top_srcdir)/../config/gcc-plugin.m4 \
+ $(top_srcdir)/../config/lead-dot.m4 \
+ $(top_srcdir)/../config/override.m4 \
+ $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
+ $(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
+ $(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/../config/warnings.m4 \
$(top_srcdir)/../config/enable.m4 \
$(top_srcdir)/../config/ax_pthread.m4 \
$(top_srcdir)/config/bison.m4 $(top_srcdir)/../bfd/version.m4 \
@@ -352,6 +357,7 @@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
+LLVM_CONFIG = @LLVM_CONFIG@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
diff --git a/include/coff/external.h b/include/coff/external.h
index 772b866..1b3c06d 100644
--- a/include/coff/external.h
+++ b/include/coff/external.h
@@ -1,17 +1,17 @@
/* external.h -- External COFF structures
-
+
Copyright (C) 2001-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 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,
@@ -21,41 +21,41 @@
#define COFF_EXTERNAL_H
#ifndef DO_NOT_DEFINE_FILHDR
-/********************** FILE HEADER **********************/
+
+#define FILHDR struct external_filehdr
+#define FILHSZ 20
struct external_filehdr
- {
- char f_magic[2]; /* magic number */
- char f_nscns[2]; /* number of sections */
- char f_timdat[4]; /* time & date stamp */
- char f_symptr[4]; /* file pointer to symtab */
- char f_nsyms[4]; /* number of symtab entries */
- char f_opthdr[2]; /* sizeof(optional hdr) */
- char f_flags[2]; /* flags */
- };
-
-#define FILHDR struct external_filehdr
-#define FILHSZ 20
+{
+ char f_magic[2]; /* magic number */
+ char f_nscns[2]; /* number of sections */
+ char f_timdat[4]; /* time & date stamp */
+ char f_symptr[4]; /* file pointer to symtab */
+ char f_nsyms[4]; /* number of symtab entries */
+ char f_opthdr[2]; /* sizeof(optional hdr) */
+ char f_flags[2]; /* flags */
+};
#endif
#ifndef DO_NOT_DEFINE_AOUTHDR
-/********************** AOUT "OPTIONAL HEADER" **********************/
+
+#define AOUTHDRSZ 28
+#define AOUTSZ 28
typedef struct external_aouthdr
- {
- char magic[2]; /* type of file */
- char vstamp[2]; /* version stamp */
- char tsize[4]; /* text size in bytes, padded to FW bdry*/
- char dsize[4]; /* initialized data " " */
- char bsize[4]; /* uninitialized data " " */
- char entry[4]; /* entry pt. */
- char text_start[4]; /* base of text used for this file */
- char data_start[4]; /* base of data used for this file */
- } ATTRIBUTE_PACKED
+{
+ char magic[2]; /* type of file */
+ char vstamp[2]; /* version stamp */
+ char tsize[4]; /* text size in bytes, padded to FW bdry*/
+ char dsize[4]; /* initialized data " " */
+ char bsize[4]; /* uninitialized data " " */
+ char entry[4]; /* entry pt. */
+ char text_start[4]; /* base of text used for this file */
+ char data_start[4]; /* base of data used for this file */
+} ATTRIBUTE_PACKED
AOUTHDR;
-#define AOUTHDRSZ 28
-#define AOUTSZ 28
+#define AOUTHDRSZ64 24
typedef struct external_aouthdr64
{
@@ -65,32 +65,30 @@ typedef struct external_aouthdr64
char dsize[4]; /* Initialized data " ". */
char bsize[4]; /* Uninitialized data " ". */
char entry[4]; /* Entry pt. */
- char text_start[4]; /* Base of text used for this file. */
+ char text_start[4]; /* Base of text used for this file. */
}
AOUTHDR64;
-#define AOUTHDRSZ64 24
#endif /* not DO_NOT_DEFINE_AOUTHDR */
#ifndef DO_NOT_DEFINE_SCNHDR
-/********************** SECTION HEADER **********************/
+
+#define SCNHDR struct external_scnhdr
+#define SCNHSZ 40
struct external_scnhdr
- {
- char s_name[8]; /* section name */
- char s_paddr[4]; /* physical address, aliased s_nlib */
- char s_vaddr[4]; /* virtual address */
- char s_size[4]; /* section size */
- char s_scnptr[4]; /* file ptr to raw data for section */
- char s_relptr[4]; /* file ptr to relocation */
- char s_lnnoptr[4]; /* file ptr to line numbers */
- char s_nreloc[2]; /* number of relocation entries */
- char s_nlnno[2]; /* number of line number entries */
- char s_flags[4]; /* flags */
- };
-
-#define SCNHDR struct external_scnhdr
-#define SCNHSZ 40
+{
+ char s_name[8]; /* section name */
+ char s_paddr[4]; /* physical address, aliased s_nlib */
+ char s_vaddr[4]; /* virtual address */
+ char s_size[4]; /* section size */
+ char s_scnptr[4]; /* file ptr to raw data for section */
+ char s_relptr[4]; /* file ptr to relocation */
+ char s_lnnoptr[4]; /* file ptr to line numbers */
+ char s_nreloc[2]; /* number of relocation entries */
+ char s_nlnno[2]; /* number of line number entries */
+ char s_flags[4]; /* flags */
+};
/* Names of "special" sections. */
@@ -103,12 +101,13 @@ struct external_scnhdr
#ifndef DO_NOT_DEFINE_LINENO
-/********************** LINE NUMBERS **********************/
-
#ifndef L_LNNO_SIZE
#error L_LNNO_SIZE needs to be defined
#endif
+#define LINENO struct external_lineno
+#define LINESZ (4 + L_LNNO_SIZE)
+
/* 1 line number entry for every "breakpointable" source line in a section.
Line numbers are grouped on a per function basis; first entry in a function
grouping will have l_lnno = 0 and in place of physical address will be the
@@ -124,9 +123,6 @@ struct external_lineno
char l_lnno[L_LNNO_SIZE]; /* line number */
};
-#define LINENO struct external_lineno
-#define LINESZ (4 + L_LNNO_SIZE)
-
#if L_LNNO_SIZE == 4
#define GET_LINENO_LNNO(abfd, ext) H_GET_32 (abfd, (ext->l_lnno))
#define PUT_LINENO_LNNO(abfd, val, ext) H_PUT_32 (abfd, val, (ext->l_lnno))
@@ -139,15 +135,11 @@ struct external_lineno
#endif /* not DO_NOT_DEFINE_LINENO */
#ifndef DO_NOT_DEFINE_SYMENT
-/********************** SYMBOLS **********************/
#define E_SYMNMLEN 8 /* # characters in a symbol name */
-#ifndef E_FILNMLEN
-#define E_FILNMLEN 14
-#endif
-#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */
+#define SYMESZ 18
-struct external_syment
+typedef struct external_syment
{
union
{
@@ -165,10 +157,8 @@ struct external_syment
char e_type[2];
char e_sclass[1];
char e_numaux[1];
-} ATTRIBUTE_PACKED ;
-
-#define SYMENT struct external_syment
-#define SYMESZ 18
+} ATTRIBUTE_PACKED
+SYMENT;
#ifndef N_BTMASK
#define N_BTMASK 0xf
@@ -190,12 +180,16 @@ struct external_syment
#ifndef DO_NOT_DEFINE_AUXENT
-union external_auxent
+#define E_FILNMLEN 14 /* # characters in a file name */
+#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */
+#define AUXESZ 18
+
+typedef union external_auxent
{
struct
{
char x_tagndx[4]; /* str, un, or enum tag indx */
-
+
union
{
struct
@@ -203,66 +197,66 @@ union external_auxent
char x_lnno[2]; /* declaration line number */
char x_size[2]; /* str/union/array size */
} x_lnsz;
-
+
char x_fsize[4]; /* size of function */
-
+
} x_misc;
-
+
union
{
- struct /* if ISFCN, tag, or .bb */
+ struct /* if ISFCN, tag, or .bb */
{
char x_lnnoptr[4]; /* ptr to fcn line # */
char x_endndx[4]; /* entry ndx past block end */
} x_fcn;
-
- struct /* if ISARY, up to 4 dimen. */
+
+ struct /* if ISARY, up to 4 dimen. */
{
char x_dimen[E_DIMNUM][2];
} x_ary;
-
+
} x_fcnary;
-
+
char x_tvndx[2]; /* tv index */
-
+
} x_sym;
-
+
union
{
- char x_fname[E_FILNMLEN];
-
+ /* Make x_fname the full auxent size, so that if coff/pe.h
+ redefines E_FILNMLEN from 14 to 18 we don't trigger sanitisers
+ accessing x_fname. Beware use of sizeof (x_file.x_fname). */
+ char x_fname[AUXESZ];
+
struct
{
char x_zeroes[4];
char x_offset[4];
} x_n;
-
+
} x_file;
-
+
struct
{
char x_scnlen[4]; /* section length */
char x_nreloc[2]; /* # relocation entries */
char x_nlinno[2]; /* # line numbers */
#ifdef INCLUDE_COMDAT_FIELDS_IN_AUXENT
- char x_checksum[4]; /* section COMDAT checksum */
- char x_associated[2]; /* COMDAT associated section index */
- char x_comdat[1]; /* COMDAT selection number */
-#endif
+ char x_checksum[4]; /* section COMDAT checksum */
+ char x_associated[2]; /* COMDAT associated section index */
+ char x_comdat[1]; /* COMDAT selection number */
+#endif
} x_scn;
-
+
+ /* info about .tv section (in auxent of symbol .tv). */
struct
{
char x_tvfill[4]; /* tv fill value */
char x_tvlen[2]; /* length of .tv */
char x_tvran[2][2]; /* tv range */
- } x_tv; /* info about .tv section (in auxent of symbol .tv)) */
-} ATTRIBUTE_PACKED ;
-
-#define AUXENT union external_auxent
-#define AUXESZ 18
-
-#define _ETEXT "etext"
+ } x_tv;
+} ATTRIBUTE_PACKED
+AUXENT;
#endif /* not DO_NOT_DEFINE_AUXENT */
diff --git a/include/coff/internal.h b/include/coff/internal.h
index 9532b0b..9da5e4b 100644
--- a/include/coff/internal.h
+++ b/include/coff/internal.h
@@ -21,15 +21,6 @@
#ifndef GNU_COFF_INTERNAL_H
#define GNU_COFF_INTERNAL_H 1
-/* First, make "signed char" work, even on old compilers. */
-#ifndef signed
-#ifndef __STDC__
-#define signed /**/
-#endif
-#endif
-
-/********************** FILE HEADER **********************/
-
/* extra stuff in a PE header. */
struct internal_extra_pe_filehdr
@@ -55,7 +46,7 @@ struct internal_extra_pe_filehdr
unsigned short e_res2[10]; /* Reserved words, all 0x0 */
bfd_vma e_lfanew; /* File address of new exe header, 0x80 */
char dos_message[64]; /* Text which always follows DOS header. */
- bfd_vma nt_signature; /* required NT signature, 0x4550 */
+ bfd_vma nt_signature; /* required NT signature, 0x4550 */
};
struct internal_filehdr
@@ -75,27 +66,27 @@ struct internal_filehdr
/* Bits for f_flags:
- F_RELFLG relocation info stripped from file
- F_EXEC file is executable (no unresolved external references)
- F_LNNO line numbers stripped from file
- F_LSYMS local symbols stripped from file
- F_AR16WR file is 16-bit little-endian
- F_AR32WR file is 32-bit little-endian
- F_AR32W file is 32-bit big-endian
- F_DYNLOAD rs/6000 aix: dynamically loadable w/imports & exports
- F_SHROBJ rs/6000 aix: file is a shared object
+ F_RELFLG relocation info stripped from file
+ F_EXEC file is executable (no unresolved external references)
+ F_LNNO line numbers stripped from file
+ F_LSYMS local symbols stripped from file
+ F_AR16WR file is 16-bit little-endian
+ F_AR32WR file is 32-bit little-endian
+ F_AR32W file is 32-bit big-endian
+ F_DYNLOAD rs/6000 aix: dynamically loadable w/imports & exports
+ F_SHROBJ rs/6000 aix: file is a shared object
F_DLL PE format DLL */
-#define F_RELFLG (0x0001)
-#define F_EXEC (0x0002)
-#define F_LNNO (0x0004)
-#define F_LSYMS (0x0008)
-#define F_AR16WR (0x0080)
-#define F_AR32WR (0x0100)
-#define F_AR32W (0x0200)
-#define F_DYNLOAD (0x1000)
-#define F_SHROBJ (0x2000)
-#define F_DLL (0x2000)
+#define F_RELFLG (0x0001)
+#define F_EXEC (0x0002)
+#define F_LNNO (0x0004)
+#define F_LSYMS (0x0008)
+#define F_AR16WR (0x0080)
+#define F_AR32WR (0x0100)
+#define F_AR32W (0x0200)
+#define F_DYNLOAD (0x1000)
+#define F_SHROBJ (0x2000)
+#define F_DLL (0x2000)
/* Extra structure which is used in the optional header. */
typedef struct _IMAGE_DATA_DIRECTORY
@@ -189,7 +180,7 @@ struct internal_extra_pe_aouthdr
/* Linker major version number. */
char MajorLinkerVersion;
/* Linker minor version number. */
- char MinorLinkerVersion;
+ char MinorLinkerVersion;
/* Total size of all code sections. */
bfd_vma SizeOfCode;
/* Total size of all initialized data sections. */
@@ -239,7 +230,6 @@ struct internal_extra_pe_aouthdr
IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
};
-/********************** AOUT "OPTIONAL HEADER" **********************/
struct internal_aouthdr
{
short magic; /* type of file */
@@ -286,7 +276,7 @@ struct internal_aouthdr
struct internal_extra_pe_aouthdr pe;
};
-/********************** STORAGE CLASSES **********************/
+/* Storage classes. */
/* This used to be defined as -1, but now n_sclass is unsigned. */
#define C_EFCN 0xff /* physical end of function */
@@ -316,7 +306,7 @@ struct internal_aouthdr
#define C_EOS 102 /* end of structure */
#define C_FILE 103 /* file name */
#define C_LINE 104 /* line # reformatted as symbol table entry */
-#define C_ALIAS 105 /* duplicate tag */
+#define C_ALIAS 105 /* duplicate tag */
#define C_HIDDEN 106 /* ext symbol in dmert public lib */
#define C_WEAKEXT 127 /* weak symbol -- GNU extension. */
@@ -327,68 +317,66 @@ struct internal_aouthdr
#define C_SYSTEM 23 /* System Wide variable */
/* New storage classes for WINDOWS_NT */
-#define C_SECTION 104 /* section name */
+#define C_SECTION 104 /* section name */
#define C_NT_WEAK 105 /* weak external */
- /* New storage classes for 80960 */
+/* New storage classes for 80960 */
/* C_LEAFPROC is obsolete. Use C_LEAFEXT or C_LEAFSTAT */
#define C_LEAFPROC 108 /* Leaf procedure, "call" via BAL */
#define C_SCALL 107 /* Procedure reachable via system call */
-#define C_LEAFEXT 108 /* External leaf */
-#define C_LEAFSTAT 113 /* Static leaf */
+#define C_LEAFEXT 108 /* External leaf */
+#define C_LEAFSTAT 113 /* Static leaf */
#define C_OPTVAR 109 /* Optimized variable */
#define C_DEFINE 110 /* Preprocessor #define */
#define C_PRAGMA 111 /* Advice to compiler or linker */
#define C_SEGMENT 112 /* 80960 segment name */
- /* New storage classes for RS/6000 */
-#define C_HIDEXT 107 /* Un-named external symbol */
-#define C_BINCL 108 /* Marks beginning of include file */
-#define C_EINCL 109 /* Marks ending of include file */
-#define C_AIX_WEAKEXT 111 /* AIX definition of C_WEAKEXT. */
-#define C_DWARF 112 /* DWARF symbol */
+/* New storage classes for RS/6000 */
+#define C_HIDEXT 107 /* Un-named external symbol */
+#define C_BINCL 108 /* Marks beginning of include file */
+#define C_EINCL 109 /* Marks ending of include file */
+#define C_AIX_WEAKEXT 111 /* AIX definition of C_WEAKEXT. */
+#define C_DWARF 112 /* DWARF symbol */
#define C_NULL_VALUE 0x00de1e00 /* Value for a C_NULL deleted entry. */
#ifdef AIX_WEAK_SUPPORT
#undef C_WEAKEXT
-#define C_WEAKEXT C_AIX_WEAKEXT
+#define C_WEAKEXT C_AIX_WEAKEXT
#endif
- /* storage classes for stab symbols for RS/6000 */
-#define C_GSYM (0x80)
-#define C_LSYM (0x81)
-#define C_PSYM (0x82)
-#define C_RSYM (0x83)
-#define C_RPSYM (0x84)
-#define C_STSYM (0x85)
-#define C_TCSYM (0x86)
-#define C_BCOMM (0x87)
-#define C_ECOML (0x88)
-#define C_ECOMM (0x89)
-#define C_DECL (0x8c)
-#define C_ENTRY (0x8d)
-#define C_FUN (0x8e)
-#define C_BSTAT (0x8f)
-#define C_ESTAT (0x90)
-#define C_GTLS (0x97)
-#define C_STTLS (0x98)
+/* storage classes for stab symbols for RS/6000 */
+#define C_GSYM (0x80)
+#define C_LSYM (0x81)
+#define C_PSYM (0x82)
+#define C_RSYM (0x83)
+#define C_RPSYM (0x84)
+#define C_STSYM (0x85)
+#define C_TCSYM (0x86)
+#define C_BCOMM (0x87)
+#define C_ECOML (0x88)
+#define C_ECOMM (0x89)
+#define C_DECL (0x8c)
+#define C_ENTRY (0x8d)
+#define C_FUN (0x8e)
+#define C_BSTAT (0x8f)
+#define C_ESTAT (0x90)
+#define C_GTLS (0x97)
+#define C_STTLS (0x98)
/* Storage classes for Thumb symbols */
-#define C_THUMBEXT (128 + C_EXT) /* 130 */
-#define C_THUMBSTAT (128 + C_STAT) /* 131 */
-#define C_THUMBLABEL (128 + C_LABEL) /* 134 */
-#define C_THUMBEXTFUNC (C_THUMBEXT + 20) /* 150 */
+#define C_THUMBEXT (128 + C_EXT) /* 130 */
+#define C_THUMBSTAT (128 + C_STAT) /* 131 */
+#define C_THUMBLABEL (128 + C_LABEL) /* 134 */
+#define C_THUMBEXTFUNC (C_THUMBEXT + 20) /* 150 */
#define C_THUMBSTATFUNC (C_THUMBSTAT + 20) /* 151 */
/* True if XCOFF symbols of class CLASS have auxiliary csect information. */
#define CSECT_SYM_P(CLASS) \
((CLASS) == C_EXT || (CLASS) == C_AIX_WEAKEXT || (CLASS) == C_HIDEXT)
-/********************** SECTION HEADER **********************/
-
#define SCNNMLEN (8)
struct internal_scnhdr
@@ -413,33 +401,43 @@ struct internal_scnhdr
};
/* s_flags "type". */
-#define STYP_REG (0x0000) /* "regular": allocated, relocated, loaded */
-#define STYP_DSECT (0x0001) /* "dummy": relocated only*/
-#define STYP_NOLOAD (0x0002) /* "noload": allocated, relocated, not loaded */
-#define STYP_GROUP (0x0004) /* "grouped": formed of input sections */
-#define STYP_PAD (0x0008) /* "padding": not allocated, not relocated, loaded */
-#define STYP_COPY (0x0010) /* "copy": for decision function used by field update; not allocated, not relocated,
- loaded; reloc & lineno entries processed normally */
-#define STYP_TEXT (0x0020) /* section contains text only */
-#define S_SHRSEG (0x0020) /* In 3b Update files (output of ogen), sections which appear in SHARED segments of the Pfile
- will have the S_SHRSEG flag set by ogen, to inform dufr that updating 1 copy of the proc. will
- update all process invocations. */
-#define STYP_DATA (0x0040) /* section contains data only */
-#define STYP_BSS (0x0080) /* section contains bss only */
-#define S_NEWFCN (0x0100) /* In a minimal file or an update file, a new function (as compared with a replaced function) */
-#define STYP_INFO (0x0200) /* comment: not allocated not relocated, not loaded */
-#define STYP_OVER (0x0400) /* overlay: relocated not allocated or loaded */
-#define STYP_LIB (0x0800) /* for .lib: same as INFO */
-#define STYP_MERGE (0x2000) /* merge section -- combines with text, data or bss sections only */
-#define STYP_REVERSE_PAD (0x4000) /* section will be padded with no-op instructions
- wherever padding is necessary and there is a
- word of contiguous bytes beginning on a word
- boundary. */
-
-#define STYP_LIT 0x8020 /* Literal data (like STYP_TEXT) */
-
-
-/********************** LINE NUMBERS **********************/
+#define STYP_REG (0x0000) /* "regular": allocated, relocated, loaded */
+#define STYP_DSECT (0x0001) /* "dummy": relocated only*/
+#define STYP_NOLOAD (0x0002) /* "noload": allocated, relocated,
+ not loaded */
+#define STYP_GROUP (0x0004) /* "grouped": formed of input sections */
+#define STYP_PAD (0x0008) /* "padding": not allocated, not relocated,
+ loaded */
+#define STYP_COPY (0x0010) /* "copy": for decision function used by field
+ update; not allocated, not relocated,
+ loaded;
+ reloc & lineno entries processed normally */
+#define STYP_TEXT (0x0020) /* section contains text only */
+#define S_SHRSEG (0x0020) /* In 3b Update files (output of ogen),
+ sections which appear in SHARED segments
+ of the Pfile will have the S_SHRSEG flag
+ set by ogen, to inform dufr that updating
+ 1 copy of the proc. will update all
+ process invocations. */
+#define STYP_DATA (0x0040) /* section contains data only */
+#define STYP_BSS (0x0080) /* section contains bss only */
+#define S_NEWFCN (0x0100) /* In a minimal file or an update file,
+ a new function (as compared with a
+ replaced function) */
+#define STYP_INFO (0x0200) /* comment: not allocated not relocated,
+ not loaded */
+#define STYP_OVER (0x0400) /* overlay: relocated not allocated or
+ loaded */
+#define STYP_LIB (0x0800) /* for .lib: same as INFO */
+#define STYP_MERGE (0x2000) /* merge section -- combines with text,
+ data or bss sections only */
+#define STYP_REVERSE_PAD (0x4000) /* section will be padded with no-op
+ instructions wherever padding is necessary
+ and there is a word of contiguous bytes
+ beginning on a word boundary. */
+
+#define STYP_LIT (0x8020) /* Literal data (like STYP_TEXT) */
+
/* 1 line number entry for every "breakpointable" source line in a section.
Line numbers are grouped on a per function basis; first entry in a function
@@ -450,17 +448,13 @@ struct internal_lineno
{
union
{
- bfd_signed_vma l_symndx; /* function name symbol index, iff l_lnno == 0*/
- bfd_signed_vma l_paddr; /* (physical) address of line number */
+ bfd_signed_vma l_symndx; /* function name symbol index, iff l_lnno == 0 */
+ bfd_signed_vma l_paddr; /* (physical) address of line number */
} l_addr;
unsigned long l_lnno; /* line number */
};
-/********************** SYMBOLS **********************/
-
#define SYMNMLEN 8 /* # characters in a symbol name */
-#define FILNMLEN 14 /* # characters in a file name */
-#define DIMNUM 4 /* # array dimensions in auxiliary entry */
struct internal_syment
{
@@ -492,8 +486,10 @@ struct internal_syment
#define N_UNDEF ((int)0) /* undefined symbol */
#define N_ABS ((int)-1) /* value of symbol is absolute */
#define N_DEBUG ((int)-2) /* debugging symbol -- value is meaningless */
-#define N_TV ((int)-3) /* indicates symbol needs preload transfer vector */
-#define P_TV ((int)-4) /* indicates symbol needs postload transfer vector*/
+#define N_TV ((int)-3) /* indicates symbol needs preload transfer
+ vector */
+#define P_TV ((int)-4) /* indicates symbol needs postload transfer
+ vector */
/* Type of a symbol, in low N bits of the word. */
@@ -505,9 +501,9 @@ struct internal_syment
#define T_LONG 5 /* long integer */
#define T_FLOAT 6 /* floating point */
#define T_DOUBLE 7 /* double word */
-#define T_STRUCT 8 /* structure */
-#define T_UNION 9 /* union */
-#define T_ENUM 10 /* enumeration */
+#define T_STRUCT 8 /* structure */
+#define T_UNION 9 /* union */
+#define T_ENUM 10 /* enumeration */
#define T_MOE 11 /* member of enumeration*/
#define T_UCHAR 12 /* unsigned character */
#define T_USHORT 13 /* unsigned short */
@@ -539,10 +535,13 @@ struct internal_syment
/* Visibility flag, in XCOFF n_type. */
#define SYM_V_INTERNAL 0x1000
#define SYM_V_HIDDEN 0x2000
-#define SYM_V_PROTECTED 0x3000
+#define SYM_V_PROTECTED 0x3000
#define SYM_V_EXPORTED 0x4000
#define SYM_V_MASK 0xF000
+#define FILNMLEN 14 /* # characters in a file name */
+#define DIMNUM 4 /* # array dimensions in auxiliary entry */
+
union internal_auxent
{
struct
@@ -616,16 +615,15 @@ union internal_auxent
uint8_t x_comdat; /* COMDAT selection number for PE */
} x_scn;
+ /* info about .tv section (in auxent of symbol .tv). */
struct
{
uint32_t x_tvfill; /* tv fill value */
uint16_t x_tvlen; /* length of .tv */
uint16_t x_tvran[2]; /* tv range */
- } x_tv; /* info about .tv section (in auxent of symbol .tv)) */
+ } x_tv;
- /******************************************
- * RS/6000-specific auxent - last auxent for every external symbol
- ******************************************/
+ /* RS/6000-specific auxent - last auxent for every external symbol. */
struct
{
union
@@ -645,34 +643,34 @@ union internal_auxent
/* x_smtyp values: */
-#define SMTYP_ALIGN(x) ((x) >> 3) /* log2 of alignment */
-#define SMTYP_SMTYP(x) ((x) & 0x7) /* symbol type */
+#define SMTYP_ALIGN(x) ((x) >> 3) /* log2 of alignment */
+#define SMTYP_SMTYP(x) ((x) & 0x7) /* symbol type */
/* Symbol type values: */
-#define XTY_ER 0 /* External reference */
-#define XTY_SD 1 /* Csect definition */
-#define XTY_LD 2 /* Label definition */
+#define XTY_ER 0 /* External reference */
+#define XTY_SD 1 /* Csect definition */
+#define XTY_LD 2 /* Label definition */
#define XTY_CM 3 /* .BSS */
-#define XTY_EM 4 /* Error message */
-#define XTY_US 5 /* "Reserved for internal use" */
+#define XTY_EM 4 /* Error message */
+#define XTY_US 5 /* "Reserved for internal use" */
/* x_smclas values: */
-#define XMC_PR 0 /* Read-only program code */
-#define XMC_RO 1 /* Read-only constant */
-#define XMC_DB 2 /* Read-only debug dictionary table */
-#define XMC_TC 3 /* Read-write general TOC entry */
-#define XMC_UA 4 /* Read-write unclassified */
-#define XMC_RW 5 /* Read-write data */
-#define XMC_GL 6 /* Read-only global linkage */
-#define XMC_XO 7 /* Read-only extended operation */
-#define XMC_SV 8 /* Read-only supervisor call */
-#define XMC_BS 9 /* Read-write BSS */
-#define XMC_DS 10 /* Read-write descriptor csect */
-#define XMC_UC 11 /* Read-write unnamed Fortran common */
-#define XMC_TI 12 /* Read-only traceback index csect */
-#define XMC_TB 13 /* Read-only traceback table csect */
-/* 14 ??? */
-#define XMC_TC0 15 /* Read-write TOC anchor */
+#define XMC_PR 0 /* Read-only program code */
+#define XMC_RO 1 /* Read-only constant */
+#define XMC_DB 2 /* Read-only debug dictionary table */
+#define XMC_TC 3 /* Read-write general TOC entry */
+#define XMC_UA 4 /* Read-write unclassified */
+#define XMC_RW 5 /* Read-write data */
+#define XMC_GL 6 /* Read-only global linkage */
+#define XMC_XO 7 /* Read-only extended operation */
+#define XMC_SV 8 /* Read-only supervisor call */
+#define XMC_BS 9 /* Read-write BSS */
+#define XMC_DS 10 /* Read-write descriptor csect */
+#define XMC_UC 11 /* Read-write unnamed Fortran common */
+#define XMC_TI 12 /* Read-only traceback index csect */
+#define XMC_TB 13 /* Read-only traceback table csect */
+/* 14 ??? */
+#define XMC_TC0 15 /* Read-write TOC anchor */
#define XMC_TD 16 /* Read-write data in TOC */
struct
@@ -682,8 +680,6 @@ union internal_auxent
} x_sect;
};
-/********************** RELOCATION DIRECTIVES **********************/
-
struct internal_reloc
{
bfd_vma r_vaddr; /* Virtual address of reference */
diff --git a/include/ctf.h b/include/ctf.h
index 72a639a..819003e 100644
--- a/include/ctf.h
+++ b/include/ctf.h
@@ -213,8 +213,9 @@ typedef struct ctf_header
#define CTF_F_NEWFUNCINFO 0x2 /* New v3 func info section format. */
#define CTF_F_IDXSORTED 0x4 /* Index sections already sorted. */
#define CTF_F_DYNSTR 0x8 /* Strings come from .dynstr. */
+#define CTF_F_ARRNELEMS 0x10 /* Array elems no longer reversed. */
#define CTF_F_MAX (CTF_F_COMPRESS | CTF_F_NEWFUNCINFO | CTF_F_IDXSORTED \
- | CTF_F_DYNSTR)
+ | CTF_F_DYNSTR | CTF_F_ARRNELEMS)
typedef struct ctf_lblent
{
diff --git a/include/elf/common.h b/include/elf/common.h
index 0d9a7b7..5d0f93e 100644
--- a/include/elf/common.h
+++ b/include/elf/common.h
@@ -575,7 +575,21 @@
#define SHT_CHECKSUM 0x6ffffff8 /* Checksum for DSO content. */
#define SHT_GNU_OBJECT_ONLY 0x6ffffff9 /* Object only */
-#define SHT_SUNW_move 0x6ffffffa
+#define SHT_SUNW_symtabnsort 0x6fffffec
+#define SHT_SUNW_ancillary 0x6fffffee
+#define SHT_SUNW_phname 0x6fffffed
+#define SHT_SUNW_capchain 0x6fffffef
+#define SHT_SUNW_capinfo 0x6ffffff0
+#define SHT_SUNW_symsort 0x6ffffff1
+#define SHT_SUNW_tlssort 0x6ffffff2
+#define SHT_SUNW_LDYNSYM 0x6ffffff3
+#define SHT_SUNW_dof 0x6ffffff4
+#define SHT_SUNW_cap 0x6ffffff5
+#define SHT_SUNW_SIGNATURE 0x6ffffff6
+#define SHT_SUNW_ANNOTATE 0x6ffffff7
+#define SHT_SUNW_DEBUGSTR 0x6ffffff8
+#define SHT_SUNW_DEBUG 0x6ffffff9
+#define SHT_SUNW_move 0x6ffffffa
#define SHT_SUNW_COMDAT 0x6ffffffb
#define SHT_SUNW_syminfo 0x6ffffffc
/* The next three section types are defined by Solaris, and are named
diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h
index 4425dd4..bc5ac36 100644
--- a/include/opcode/aarch64.h
+++ b/include/opcode/aarch64.h
@@ -41,30 +41,39 @@ typedef uint32_t aarch64_insn;
/* An enum containing all known CPU features. The values act as bit positions
into aarch64_feature_set. */
enum aarch64_feature_bit {
- /* All processors. */
+ /* Architecture versions. */
AARCH64_FEATURE_V8,
- /* ARMv8.6 processors. */
+ AARCH64_FEATURE_V8_1A,
+ AARCH64_FEATURE_V8_2A,
+ AARCH64_FEATURE_V8_3A,
+ AARCH64_FEATURE_V8_4A,
+ AARCH64_FEATURE_V8_5A,
AARCH64_FEATURE_V8_6A,
+ AARCH64_FEATURE_V8_7A,
+ AARCH64_FEATURE_V8_8A,
+ AARCH64_FEATURE_V8_9A,
+
+ AARCH64_FEATURE_V9A,
+ AARCH64_FEATURE_V9_1A,
+ AARCH64_FEATURE_V9_2A,
+ AARCH64_FEATURE_V9_3A,
+ AARCH64_FEATURE_V9_4A,
+ AARCH64_FEATURE_V9_5A,
+ AARCH64_FEATURE_V9_6A,
+
+ /* Armv8-A processors only - this is unset for Armv8-R. */
+ AARCH64_FEATURE_V8A,
+ /* Armv8-R processors. */
+ AARCH64_FEATURE_V8R,
+
/* Bfloat16 insns. */
AARCH64_FEATURE_BFLOAT16,
- /* Armv8-A processors. */
- AARCH64_FEATURE_V8A,
/* SVE2 instructions. */
AARCH64_FEATURE_SVE2,
- /* ARMv8.2 processors. */
- AARCH64_FEATURE_V8_2A,
- /* ARMv8.3 processors. */
- AARCH64_FEATURE_V8_3A,
AARCH64_FEATURE_SVE2_AES,
AARCH64_FEATURE_SVE2_BITPERM,
AARCH64_FEATURE_SVE2_SM4,
AARCH64_FEATURE_SVE2_SHA3,
- /* ARMv8.4 processors. */
- AARCH64_FEATURE_V8_4A,
- /* Armv8-R processors. */
- AARCH64_FEATURE_V8R,
- /* Armv8.7 processors. */
- AARCH64_FEATURE_V8_7A,
/* Scalable Matrix Extension. */
AARCH64_FEATURE_SME,
/* Atomic 64-byte load/store. */
@@ -87,8 +96,6 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_LOR,
/* v8.1 SIMD instructions. */
AARCH64_FEATURE_RDMA,
- /* v8.1 features. */
- AARCH64_FEATURE_V8_1A,
/* v8.2 FP16 instructions. */
AARCH64_FEATURE_F16,
/* RAS Extensions. */
@@ -117,8 +124,6 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_AES,
/* v8.2 FP16FML ins. */
AARCH64_FEATURE_F16_FML,
- /* ARMv8.5 processors. */
- AARCH64_FEATURE_V8_5A,
/* v8.5 Flag Manipulation version 2. */
AARCH64_FEATURE_FLAGMANIP,
/* FRINT[32,64][Z,X] insns. */
@@ -131,10 +136,6 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_CVADP,
/* Random Number instructions. */
AARCH64_FEATURE_RNG,
- /* SCXTNUM_ELx. */
- AARCH64_FEATURE_SCXTNUM,
- /* ID_PFR2 instructions. */
- AARCH64_FEATURE_ID_PFR2,
/* SSBS mechanism enabled. */
AARCH64_FEATURE_SSBS,
/* Compare and branch instructions. */
@@ -159,28 +160,16 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_F64MM,
/* v8.4 Flag Manipulation. */
AARCH64_FEATURE_FLAGM,
- /* Armv9.0-A processors. */
- AARCH64_FEATURE_V9A,
/* SME F64F64. */
AARCH64_FEATURE_SME_F64F64,
/* SME I16I64. */
AARCH64_FEATURE_SME_I16I64,
- /* Armv8.8 processors. */
- AARCH64_FEATURE_V8_8A,
/* Common Short Sequence Compression instructions. */
AARCH64_FEATURE_CSSC,
- /* Armv8.9-A processors. */
- AARCH64_FEATURE_V8_9A,
/* Check Feature Status Extension. */
AARCH64_FEATURE_CHK,
/* Guarded Control Stack. */
AARCH64_FEATURE_GCS,
- /* SPE Call Return branch records. */
- AARCH64_FEATURE_SPE_CRR,
- /* SPE Filter by data source. */
- AARCH64_FEATURE_SPE_FDS,
- /* Additional SPE events. */
- AARCH64_FEATURE_SPEv1p4,
/* SME2. */
AARCH64_FEATURE_SME2,
/* Translation Hardening Extension. */
@@ -191,28 +180,8 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_LSUI,
/* ARMv8.9-A RAS Extensions. */
AARCH64_FEATURE_RASv2,
- /* Delegated SError exceptions for EL3. */
- AARCH64_FEATURE_E3DSE,
- /* System Control Register2. */
- AARCH64_FEATURE_SCTLR2,
- /* Fine Grained Traps. */
- AARCH64_FEATURE_FGT2,
- /* Physical Fault Address. */
- AARCH64_FEATURE_PFAR,
/* Address Translate Stage 1. */
AARCH64_FEATURE_ATS1A,
- /* Memory Attribute Index Enhancement. */
- AARCH64_FEATURE_AIE,
- /* Stage 1 Permission Indirection Extension. */
- AARCH64_FEATURE_S1PIE,
- /* Stage 2 Permission Indirection Extension. */
- AARCH64_FEATURE_S2PIE,
- /* Stage 1 Permission Overlay Extension. */
- AARCH64_FEATURE_S1POE,
- /* Stage 2 Permission Overlay Extension. */
- AARCH64_FEATURE_S2POE,
- /* Extension to Translation Control Registers. */
- AARCH64_FEATURE_TCR2,
/* Speculation Prediction Restriction instructions. */
AARCH64_FEATURE_PREDRES2,
/* Instrumentation Extension. */
@@ -220,20 +189,6 @@ enum aarch64_feature_bit {
/* 128-bit page table descriptor, system registers
and instructions. */
AARCH64_FEATURE_D128,
- /* Armv8.9-A/Armv9.4-A architecture Debug extension. */
- AARCH64_FEATURE_DEBUGv8p9,
- /* Performance Monitors Extension. */
- AARCH64_FEATURE_PMUv3p9,
- /* Performance Monitors Snapshots Extension. */
- AARCH64_FEATURE_PMUv3_SS,
- /* Performance Monitors Instruction Counter Extension. */
- AARCH64_FEATURE_PMUv3_ICNTR,
- /* System Performance Monitors Extension */
- AARCH64_FEATURE_SPMU,
- /* System Performance Monitors Extension version 2 */
- AARCH64_FEATURE_SPMU2,
- /* Performance Monitors Synchronous-Exception-Based Event Extension. */
- AARCH64_FEATURE_SEBEP,
/* SME2.1 instructions. */
AARCH64_FEATURE_SME2p1,
/* SVE2.1 instructions. */
@@ -252,8 +207,6 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_SSVE_AES,
/* RCPC3 instructions. */
AARCH64_FEATURE_RCPC3,
- /* Enhanced Software Step Extension. */
- AARCH64_FEATURE_STEP2,
/* Checked Pointer Arithmetic instructions. */
AARCH64_FEATURE_CPA,
/* FAMINMAX instructions. */
@@ -294,18 +247,6 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_SVE2p2,
/* SME2.2. */
AARCH64_FEATURE_SME2p2,
- /* Armv9.1-A processors. */
- AARCH64_FEATURE_V9_1A,
- /* Armv9.2-A processors. */
- AARCH64_FEATURE_V9_2A,
- /* Armv9.3-A processors. */
- AARCH64_FEATURE_V9_3A,
- /* Armv9.4-A processors. */
- AARCH64_FEATURE_V9_4A,
- /* Armv9.5-A processors. */
- AARCH64_FEATURE_V9_5A,
- /* Armv9.6-A processors. */
- AARCH64_FEATURE_V9_6A,
/* FPRCVT instructions. */
AARCH64_FEATURE_FPRCVT,
/* Point of Physical Storage. */
@@ -416,8 +357,6 @@ static_assert ((AA64_REPLICATE (REP_PLUS, AA64_REPVAL,
| AARCH64_FEATBIT (X, SB) \
| AARCH64_FEATBIT (X, PREDRES) \
| AARCH64_FEATBIT (X, CVADP) \
- | AARCH64_FEATBIT (X, SCXTNUM) \
- | AARCH64_FEATBIT (X, ID_PFR2) \
| AARCH64_FEATBIT (X, SSBS))
#define AARCH64_ARCH_V8_6A_FEATURES(X) (AARCH64_FEATBIT (X, V8_6A) \
| AARCH64_FEATBIT (X, BFLOAT16) \
@@ -431,26 +370,8 @@ static_assert ((AA64_REPLICATE (REP_PLUS, AA64_REPVAL,
| AARCH64_FEATBIT (X, HBC))
#define AARCH64_ARCH_V8_9A_FEATURES(X) (AARCH64_FEATBIT (X, V8_9A) \
| AARCH64_FEATBIT (X, CSSC) \
- | AARCH64_FEATBIT (X, SPEv1p4) \
- | AARCH64_FEATBIT (X, SPE_CRR) \
- | AARCH64_FEATBIT (X, SPE_FDS) \
| AARCH64_FEATBIT (X, RASv2) \
- | AARCH64_FEATBIT (X, SCTLR2) \
- | AARCH64_FEATBIT (X, FGT2) \
- | AARCH64_FEATBIT (X, PFAR) \
| AARCH64_FEATBIT (X, ATS1A) \
- | AARCH64_FEATBIT (X, AIE) \
- | AARCH64_FEATBIT (X, S1PIE) \
- | AARCH64_FEATBIT (X, S2PIE) \
- | AARCH64_FEATBIT (X, S1POE) \
- | AARCH64_FEATBIT (X, S2POE) \
- | AARCH64_FEATBIT (X, TCR2) \
- | AARCH64_FEATBIT (X, DEBUGv8p9) \
- | AARCH64_FEATBIT (X, PMUv3p9) \
- | AARCH64_FEATBIT (X, PMUv3_SS) \
- | AARCH64_FEATBIT (X, PMUv3_ICNTR) \
- | AARCH64_FEATBIT (X, SPMU) \
- | AARCH64_FEATBIT (X, SEBEP) \
| AARCH64_FEATBIT (X, PREDRES2) \
)
@@ -471,9 +392,6 @@ static_assert ((AA64_REPLICATE (REP_PLUS, AA64_REPVAL,
| AARCH64_FEATBIT (X, CPA) \
| AARCH64_FEATBIT (X, LUT) \
| AARCH64_FEATBIT (X, FAMINMAX)\
- | AARCH64_FEATBIT (X, E3DSE) \
- | AARCH64_FEATBIT (X, SPMU2) \
- | AARCH64_FEATBIT (X, STEP2) \
)
#define AARCH64_ARCH_V9_6A_FEATURES(X) (AARCH64_FEATBIT (X, V9_6A) \
| AARCH64_FEATBIT (X, CMPBR) \
@@ -1703,7 +1621,7 @@ extern bool aarch64_sys_ins_reg_has_xt (const aarch64_sys_ins_reg *);
extern bool
aarch64_sys_ins_reg_supported_p (const aarch64_feature_set,
const char *reg_name,
- uint32_t, const aarch64_feature_set *);
+ const aarch64_feature_set *);
extern const aarch64_sys_ins_reg aarch64_sys_regs_ic [];
extern const aarch64_sys_ins_reg aarch64_sys_regs_dc [];
diff --git a/include/same-inode.h b/include/same-inode.h
new file mode 100644
index 0000000..f65f3d0
--- /dev/null
+++ b/include/same-inode.h
@@ -0,0 +1,47 @@
+/* Determine whether two stat buffers are known to refer to the same file.
+
+ Copyright (C) 2006, 2009-2022 Free Software Foundation, Inc.
+
+ This file is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ This file is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#ifndef SAME_INODE_H
+# define SAME_INODE_H 1
+
+# include <sys/types.h>
+
+# if defined __VMS && __CRTL_VER < 80200000
+# define SAME_INODE(a, b) \
+ ((a).st_ino[0] == (b).st_ino[0] \
+ && (a).st_ino[1] == (b).st_ino[1] \
+ && (a).st_ino[2] == (b).st_ino[2] \
+ && (a).st_dev == (b).st_dev)
+# elif defined _WIN32 && ! defined __CYGWIN__
+ /* Native Windows. */
+# if _GL_WINDOWS_STAT_INODES
+ /* stat() and fstat() set st_dev and st_ino to 0 if information about
+ the inode is not available. */
+# define SAME_INODE(a, b) \
+ (!((a).st_ino == 0 && (a).st_dev == 0) \
+ && (a).st_ino == (b).st_ino && (a).st_dev == (b).st_dev)
+# else
+ /* stat() and fstat() set st_ino to 0 always. */
+# define SAME_INODE(a, b) 0
+# endif
+# else
+# define SAME_INODE(a, b) \
+ ((a).st_ino == (b).st_ino \
+ && (a).st_dev == (b).st_dev)
+# endif
+
+#endif
diff --git a/include/vms/eihd.h b/include/vms/eihd.h
index e655cd6..2b8e1b1 100644
--- a/include/vms/eihd.h
+++ b/include/vms/eihd.h
@@ -140,6 +140,8 @@ struct vms_eihd
#define EIHD__Q_SYMVVA 40
#define EIHD__L_IMGTYPE 52
+/* ext_fixup_off field offset. Some headers may be missing this and
+ following fields. */
#define EIHD__C_LENGTH 104
#endif /* _VMS_EIHD_H */
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 7b03989..d2b7b93 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,52 @@
+2025-09-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * configure.tgt <powerpc*-*-solaris*>: Remove.
+
+2025-08-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * emulparams/elf64_sparc.sh (TEXT_START_ADDR): Move ...
+ * emulparams/elf64_sparc_sol2.sh (TEXT_START_ADDR): ... here.
+
+2025-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * testsuite/ld-shared/shared.exp (shared (non PIC)): Update
+ comment. xfail on 64-bit Solaris only.
+ (shared (PIC main, non PIC so)): Likewise.
+ (shared (non PIC, load offset)): Update comment.
+
+2025-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * testsuite/ld-shared/shared.exp: Enable on *-*-solaris2* rather
+ than sparc*-*-solaris2* only.
+
+2025-08-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * testsuite/ld-elfvers/vers.exp (vers26b3): Mark unsupported on
+ Linux/x86_64 and Solaris/amd64.
+
+2025-08-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * emultempl/solaris2.em (elf_solaris2_before_allocation): Mark
+ global symbols as generated by linker script.
+ * testsuite/ld-elfvers/vers.exp: Enable on *-*-solaris2* rather
+ than sparc*-*-solaris2* only.
+
+2025-08-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * testsuite/ld-i386/libno-plt-1b.dd: Allow for positive GOT
+ offsets.
+ * testsuite/ld-i386/no-plt-1a.dd: Likewise.
+ * testsuite/ld-i386/no-plt-1b.dd: Likewise.
+ * testsuite/ld-i386/no-plt-1c.dd: Likewise.
+ * testsuite/ld-i386/no-plt-1e.dd: Likewise.
+ * testsuite/ld-i386/no-plt-1f.dd: Likewise.
+ * testsuite/ld-i386/no-plt-1g.dd: Likewise.
+
+2025-08-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * testsuite/ld-ctf/ctf.exp (ASFLAGS): Append -Av8plus on
+ sparc-*-*.
+
2025-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* testsuite/ld-elfweak/elfweak.exp: Enable on *-*-solaris2* rather
diff --git a/ld/Makefile.am b/ld/Makefile.am
index 90897a7..c006448 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -373,8 +373,6 @@ ALL_EMULATION_SOURCES = \
ALL_EMULATIONS = $(ALL_EMULATION_SOURCES:.c=.@OBJEXT@)
ALL_64_EMULATION_SOURCES = \
- eaarch64cloudabi.c \
- eaarch64cloudabib.c \
eaarch64elf.c \
eaarch64elf32.c \
eaarch64elf32b.c \
@@ -457,7 +455,6 @@ ALL_64_EMULATION_SOURCES = \
eelf64tilegx_be.c \
eelf_mipsel_haiku.c \
eelf_x86_64.c \
- eelf_x86_64_cloudabi.c \
eelf_x86_64_fbsd.c \
eelf_x86_64_haiku.c \
eelf_x86_64_sol2.c \
diff --git a/ld/Makefile.in b/ld/Makefile.in
index b3d88f0..0acf5f4 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -113,8 +113,10 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../bfd/acinclude.m4 \
$(top_srcdir)/../bfd/warning.m4 $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/../config/bfd64.m4 \
+ $(top_srcdir)/../config/clang-plugin.m4 \
$(top_srcdir)/../config/depstand.m4 \
$(top_srcdir)/../config/enable.m4 \
+ $(top_srcdir)/../config/gcc-plugin.m4 \
$(top_srcdir)/../config/gettext-sister.m4 \
$(top_srcdir)/../config/gettext.m4 \
$(top_srcdir)/../config/iconv.m4 \
@@ -439,6 +441,7 @@ LIBTOOL = @LIBTOOL@
# when the linker is configured via the --with-lib-path configure switch.
LIB_PATH = @LIB_PATH@
LIPO = @LIPO@
+LLVM_CONFIG = @LLVM_CONFIG@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
LTLIBINTL = @LTLIBINTL@
@@ -883,8 +886,6 @@ ALL_EMULATION_SOURCES = \
ALL_EMULATIONS = $(ALL_EMULATION_SOURCES:.c=.@OBJEXT@)
ALL_64_EMULATION_SOURCES = \
- eaarch64cloudabi.c \
- eaarch64cloudabib.c \
eaarch64elf.c \
eaarch64elf32.c \
eaarch64elf32b.c \
@@ -967,7 +968,6 @@ ALL_64_EMULATION_SOURCES = \
eelf64tilegx_be.c \
eelf_mipsel_haiku.c \
eelf_x86_64.c \
- eelf_x86_64_cloudabi.c \
eelf_x86_64_fbsd.c \
eelf_x86_64_haiku.c \
eelf_x86_64_sol2.c \
@@ -1267,8 +1267,6 @@ distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/deffilep.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64cloudabi.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64cloudabib.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elf32.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elf32b.Po@am__quote@
@@ -1482,7 +1480,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_mipsel_haiku.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_s390.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_cloudabi.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_fbsd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_haiku.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_sol2.Po@am__quote@
diff --git a/ld/NEWS b/ld/NEWS
index 54c1df5..8794e88 100644
--- a/ld/NEWS
+++ b/ld/NEWS
@@ -1,5 +1,16 @@
-*- text -*-
+* Add --gnu-tls-tag/--no-gnu-tls-tag options to i386 ELF linker to add
+ the GLIBC_ABI_GNU_TLS version dependency in output if input object
+ files call ___tls_get_addr. Also added --enable-gnu-tls-tag configure
+ option to enable --gnu-tls-tag by default.
+
+* Add --gnu2-tls-tag/--no-gnu2-tls-tag options to i386 and x86-64 ELF
+ linkers to add the GLIBC_ABI_GNU2_TLS version dependency in output if
+ input object files have R_386_TLS_DESC_CALL or R_X86_64_TLSDESC_CALL
+ relocation. Also added --enable-gnu2-tls-tag configure option to
+ enable --gnu2-tls-tag by default.
+
* NaCl target support is removed.
Changes in 2.45:
diff --git a/ld/aclocal.m4 b/ld/aclocal.m4
index 01c2dc2..77cc098 100644
--- a/ld/aclocal.m4
+++ b/ld/aclocal.m4
@@ -1189,8 +1189,10 @@ m4_include([../bfd/acinclude.m4])
m4_include([../bfd/warning.m4])
m4_include([../config/acx.m4])
m4_include([../config/bfd64.m4])
+m4_include([../config/clang-plugin.m4])
m4_include([../config/depstand.m4])
m4_include([../config/enable.m4])
+m4_include([../config/gcc-plugin.m4])
m4_include([../config/gettext-sister.m4])
m4_include([../config/gettext.m4])
m4_include([../config/iconv.m4])
diff --git a/ld/config.in b/ld/config.in
index 3781224..790efd3 100644
--- a/ld/config.in
+++ b/ld/config.in
@@ -31,6 +31,14 @@
when a .note-GNU-stack section is missing. */
#undef DEFAULT_LD_EXECSTACK
+/* Define to 1 if you want to enable --gnu2-tls-tag in ELF i386/x86-64 linker
+ by default. */
+#undef DEFAULT_LD_GNU2_TLS_TAG
+
+/* Define to 1 if you want to enable --gnu-tls-tag in ELF i386 linker by
+ default. */
+#undef DEFAULT_LD_GNU_TLS_TAG
+
/* Define to 1 if you want to enable --rosegment in the ELF linker by default.
*/
#undef DEFAULT_LD_ROSEGMENT
diff --git a/ld/configure b/ld/configure
index 124b441..11c17f2 100755
--- a/ld/configure
+++ b/ld/configure
@@ -705,6 +705,7 @@ NMEDIT
DSYMUTIL
RANLIB
AR
+LLVM_CONFIG
OBJDUMP
LN_S
NM
@@ -851,6 +852,8 @@ enable_textrel_check
enable_separate_code
enable_rosegment
enable_mark_plt
+enable_gnu2_tls_tag
+enable_gnu_tls_tag
enable_memory_seal
enable_warn_execstack
enable_error_execstack
@@ -1548,6 +1551,9 @@ Optional Features:
--enable-separate-code enable -z separate-code in ELF linker by default
--enable-rosegment enable --rosegment in the ELF linker by default
--enable-mark-plt enable -z mark-plt in ELF x86-64 linker by default
+ --enable-gnu2-tls-tag enable --gnu2-tls-tag in ELF i386/x86-64 linker by
+ default
+ --enable-gnu-tls-tag enable --gnu-tls-tag in ELF i386 linker by default
--enable-memory-seal enable -z memory-seal in ELF linker by default
--enable-warn-execstack enable warnings when creating an executable stack
--enable-error-execstack
@@ -6530,8 +6536,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
-plugin_option=
+
+# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
+# wrong plugin_option with clang.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
+$as_echo_n "checking for clang... " >&6; }
+if ${clang_cv_is_clang+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __clang__
+ yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ clang_cv_is_clang=yes
+else
+ clang_cv_is_clang=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
+$as_echo "$clang_cv_is_clang" >&6; }
+ plugin_file=
+ if test $clang_cv_is_clang = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
+$as_echo_n "checking for clang plugin file... " >&6; }
+ plugin_names="LLVMgold.so"
+ for plugin in $plugin_names; do
+ plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
+ if test x$plugin_file = x$plugin; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LLVM_CONFIG"; then
+ ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
+if test -n "$LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
+$as_echo "$LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LLVM_CONFIG"; then
+ ac_ct_LLVM_CONFIG=$LLVM_CONFIG
+ # Extract the first word of "llvm-config", so it can be a program name with args.
+set dummy llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LLVM_CONFIG"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
+if test -n "$ac_ct_LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
+$as_echo "$ac_ct_LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LLVM_CONFIG" = x; then
+ LLVM_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LLVM_CONFIG=$ac_ct_LLVM_CONFIG
+ fi
+else
+ LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
+fi
+
+ if test "$?" != 0; then
+ as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
+ fi
+ clang_lib_dir=`$LLVM_CONFIG --libdir`
+ if test -f $clang_lib_dir/$plugin; then
+ plugin_file=$clang_lib_dir/$plugin
+ fi
+ if test x$plugin_file != x$plugin; then
+ break;
+ fi
+ fi
+ done
+ if test -z $plugin_file; then
+ as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
+ fi
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+ if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ plugin_option="--plugin $plugin_file"
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_file=
+ fi
+ rm -f conftest.*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
+$as_echo "$plugin_file" >&6; }
+ fi
+ plugin_file="$plugin_file"
+
+if test -n "$plugin_file"; then
+ plugin_option="--plugin $plugin_file"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
+$as_echo_n "checking for -plugin option... " >&6; }
+
plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+plugin_option=
for plugin in $plugin_names; do
plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
if test x$plugin_so = x$plugin; then
@@ -6542,7 +6806,119 @@ for plugin in $plugin_names; do
break
fi
done
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+fi
+touch conftest.c
+${AR} $plugin_option rc conftest.a conftest.c
+if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_option=
+fi
+rm -f conftest.*
+if test -n "$plugin_option"; then
+ plugin_option="$plugin_option"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+$as_echo "$plugin_option" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
@@ -6637,17 +7013,15 @@ fi
test -z "$AR" && AR=ar
if test -n "$plugin_option"; then
- if $AR --help 2>&1 | grep -q "\--plugin"; then
- touch conftest.c
- $AR $plugin_option rc conftest.a conftest.c
- if test "$?" != 0; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
-$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
- else
+ case "$AR" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $AR --help 2>&1 | grep -q "\--plugin"; then
AR="$AR $plugin_option"
fi
- rm -f conftest.*
- fi
+ ;;
+ esac
fi
test -z "$AR_FLAGS" && AR_FLAGS=cru
@@ -6854,9 +7228,15 @@ fi
test -z "$RANLIB" && RANLIB=:
if test -n "$plugin_option" && test "$RANLIB" != ":"; then
- if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
- RANLIB="$RANLIB $plugin_option"
- fi
+ case "$RANLIB" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
+ RANLIB="$RANLIB $plugin_option"
+ fi
+ ;;
+ esac
fi
@@ -11514,7 +11894,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11517 "configure"
+#line 11897 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11620,7 +12000,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11623 "configure"
+#line 12003 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -15507,6 +15887,29 @@ esac
fi
+# Decide if --gnu2-tls-tag should be enabled in ELF i386 and x86-64
+# linkers by default.
+ac_default_ld_enable_gnu2_tls_tag=unset
+# Check whether --enable-gnu2-tls-tag was given.
+if test "${enable_gnu2_tls_tag+set}" = set; then :
+ enableval=$enable_gnu2_tls_tag; case "${enableval}" in
+ yes) ac_default_ld_enable_gnu2_tls_tag=1 ;;
+ no) ac_default_ld_enable_gnu2_tls_tag=0 ;;
+esac
+fi
+
+
+# Decide if --gnu-tls-tag should be enabled in ELF i386 linker by default.
+ac_default_ld_enable_gnu_tls_tag=unset
+# Check whether --enable-gnu-tls-tag was given.
+if test "${enable_gnu_tls_tag+set}" = set; then :
+ enableval=$enable_gnu_tls_tag; case "${enableval}" in
+ yes) ac_default_ld_enable_gnu_tls_tag=1 ;;
+ no) ac_default_ld_enable_gnu_tls_tag=0 ;;
+esac
+fi
+
+
# Decide if -z memory-seal should be enabled in ELF linker by default.
ac_default_ld_z_memory_seal=unset
# Check whether --enable-memory-seal was given.
@@ -18981,6 +19384,27 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
+if test "${ac_default_ld_enable_gnu2_tls_tag}" = unset; then
+ # Default to enable --gnu2-tls-tag if libc.so has the GLIBC_ABI_GNU2_TLS
+ # version.
+ ac_default_ld_enable_gnu2_tls_tag=2
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define DEFAULT_LD_GNU2_TLS_TAG $ac_default_ld_enable_gnu2_tls_tag
+_ACEOF
+
+
+if test "${ac_default_ld_enable_gnu_tls_tag}" = unset; then
+ # Default to enable --gnu-tls-tag if libc.so has the GLIBC_ABI_GNU_TLS
+ # version.
+ ac_default_ld_enable_gnu_tls_tag=2
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define DEFAULT_LD_GNU_TLS_TAG $ac_default_ld_enable_gnu_tls_tag
+_ACEOF
+
cat >>confdefs.h <<_ACEOF
diff --git a/ld/configure.ac b/ld/configure.ac
index e306c1d..3e44e33 100644
--- a/ld/configure.ac
+++ b/ld/configure.ac
@@ -245,6 +245,27 @@ AC_ARG_ENABLE(mark-plt,
no) ac_default_ld_z_mark_plt=0 ;;
esac])
+# Decide if --gnu2-tls-tag should be enabled in ELF i386 and x86-64
+# linkers by default.
+ac_default_ld_enable_gnu2_tls_tag=unset
+AC_ARG_ENABLE(gnu2-tls-tag,
+ AS_HELP_STRING([--enable-gnu2-tls-tag],
+ [enable --gnu2-tls-tag in ELF i386/x86-64 linker by default]),
+[case "${enableval}" in
+ yes) ac_default_ld_enable_gnu2_tls_tag=1 ;;
+ no) ac_default_ld_enable_gnu2_tls_tag=0 ;;
+esac])
+
+# Decide if --gnu-tls-tag should be enabled in ELF i386 linker by default.
+ac_default_ld_enable_gnu_tls_tag=unset
+AC_ARG_ENABLE(gnu-tls-tag,
+ AS_HELP_STRING([--enable-gnu-tls-tag],
+ [enable --gnu-tls-tag in ELF i386 linker by default]),
+[case "${enableval}" in
+ yes) ac_default_ld_enable_gnu_tls_tag=1 ;;
+ no) ac_default_ld_enable_gnu_tls_tag=0 ;;
+esac])
+
# Decide if -z memory-seal should be enabled in ELF linker by default.
ac_default_ld_z_memory_seal=unset
AC_ARG_ENABLE(memory-seal,
@@ -646,6 +667,23 @@ AC_DEFINE_UNQUOTED(DEFAULT_LD_Z_MEMORY_SEAL,
$ac_default_ld_z_memory_seal,
[Define to 1 if you want to enable -z memory_seal in ELF linker by default.])
+if test "${ac_default_ld_enable_gnu2_tls_tag}" = unset; then
+ # Default to enable --gnu2-tls-tag if libc.so has the GLIBC_ABI_GNU2_TLS
+ # version.
+ ac_default_ld_enable_gnu2_tls_tag=2
+fi
+AC_DEFINE_UNQUOTED(DEFAULT_LD_GNU2_TLS_TAG,
+ $ac_default_ld_enable_gnu2_tls_tag,
+ [Define to 1 if you want to enable --gnu2-tls-tag in ELF i386/x86-64 linker by default.])
+
+if test "${ac_default_ld_enable_gnu_tls_tag}" = unset; then
+ # Default to enable --gnu-tls-tag if libc.so has the GLIBC_ABI_GNU_TLS
+ # version.
+ ac_default_ld_enable_gnu_tls_tag=2
+fi
+AC_DEFINE_UNQUOTED(DEFAULT_LD_GNU_TLS_TAG,
+ $ac_default_ld_enable_gnu_tls_tag,
+ [Define to 1 if you want to enable --gnu-tls-tag in ELF i386 linker by default.])
AC_DEFINE_UNQUOTED(DEFAULT_LD_WARN_EXECSTACK,
$ac_default_ld_warn_execstack,
diff --git a/ld/configure.tgt b/ld/configure.tgt
index 3f49485..df31897 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -89,9 +89,6 @@ aarch64-*-elf | aarch64-*-rtems* | aarch64-*-genode*)
targ_emul=aarch64elf
targ_extra_emuls="aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb"
;;
-aarch64-*-cloudabi*) targ_emul=aarch64cloudabi
- targ_extra_emuls=aarch64cloudabib
- ;;
aarch64-*-freebsd*) targ_emul=aarch64fbsd
targ_extra_emuls="aarch64fbsdb aarch64elf"
;;
@@ -706,7 +703,7 @@ powerpc-*-vxworks*)
powerpc*-*-elf* | powerpc*-*-eabi* | powerpc*-*-sysv* \
| powerpc*-*-linux* | powerpc*-*-netbsd* | powerpc*-*-openbsd* \
| powerpc*-*-rtems* \
- | powerpc*-*-solaris* | powerpc*-*-kaos* | powerpc*-*-vxworks*)
+ | powerpc*-*-kaos* | powerpc*-*-vxworks*)
case "${targ}" in
powerpc64*)
targ_emul=elf64ppc
@@ -992,8 +989,6 @@ visium-*-elf) targ_emul=elf32visium
;;
x86_64-*-rdos*) targ_emul=elf64rdos
;;
-x86_64-*-cloudabi*) targ_emul=elf_x86_64_cloudabi
- ;;
x86_64-*-haiku*) targ_emul=elf_x86_64_haiku
targ_extra_emuls="elf_x86_64 elf_i386_haiku"
;;
diff --git a/ld/emulparams/aarch64cloudabi.sh b/ld/emulparams/aarch64cloudabi.sh
deleted file mode 100644
index 0e6f834..0000000
--- a/ld/emulparams/aarch64cloudabi.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-ARCH=aarch64
-MACHINE=
-NOP=0x1f2003d5
-
-SCRIPT_NAME=elf
-ELFSIZE=64
-OUTPUT_FORMAT="elf64-littleaarch64-cloudabi"
-BIG_OUTPUT_FORMAT="elf64-bigaarch64-cloudabi"
-LITTLE_OUTPUT_FORMAT="elf64-littleaarch64-cloudabi"
-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=0x400000
-
-DATA_START_SYMBOLS='PROVIDE (__data_start = .);';
-
-# AArch64 does not support .s* sections.
-NO_SMALL_DATA=yes
-
-OTHER_BSS_SYMBOLS="${CREATE_SHLIB+PROVIDE (}__bss_start__ = .${CREATE_SHLIB+)};"
-OTHER_BSS_END_SYMBOLS="${CREATE_SHLIB+PROVIDE (}_bss_end__ = .${CREATE_SHLIB+)}; ${CREATE_SHLIB+PROVIDE (}__bss_end__ = .${CREATE_SHLIB+)};"
-OTHER_END_SYMBOLS="${CREATE_SHLIB+PROVIDE (}__end__ = .${CREATE_SHLIB+)};"
-
-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)${RELOCATING+${IREL_IN_PLT+ *(.iplt)}} }"
diff --git a/ld/emulparams/aarch64cloudabib.sh b/ld/emulparams/aarch64cloudabib.sh
deleted file mode 100644
index a7d1b62..0000000
--- a/ld/emulparams/aarch64cloudabib.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-source_sh ${srcdir}/emulparams/aarch64cloudabi.sh
-OUTPUT_FORMAT="elf64-bigaarch64-cloudabi"
diff --git a/ld/emulparams/elf32_x86_64.sh b/ld/emulparams/elf32_x86_64.sh
index 6a92eec..8a07f50 100644
--- a/ld/emulparams/elf32_x86_64.sh
+++ b/ld/emulparams/elf32_x86_64.sh
@@ -20,7 +20,7 @@ COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
ARCH="i386:x64-32"
MACHINE=
TEMPLATE_NAME=elf
-EXTRA_EM_FILE="elf-x86"
+EXTRA_EM_FILE="elf-x86-64-glibc"
GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes
NO_SMALL_DATA=yes
@@ -33,6 +33,8 @@ OTHER_PLT_SECTIONS="
.plt.got ${RELOCATING-0} : { *(.plt.got) }
.plt.sec ${RELOCATING-0} : { *(.plt.sec) }
"
+OTHER_GOT_RELOC_SECTIONS="
+ .rela.tls ${RELOCATING-0} : { *(.rela.tls) }"
if [ "x${host}" = "x${target}" ]; then
case " $EMULATION_LIBPATH " in
diff --git a/ld/emulparams/elf64_sparc.sh b/ld/emulparams/elf64_sparc.sh
index 8ae29ad..afbf2e6 100644
--- a/ld/emulparams/elf64_sparc.sh
+++ b/ld/emulparams/elf64_sparc.sh
@@ -12,15 +12,7 @@ GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes
NOP=0x01000000
NO_SMALL_DATA=yes
-
-case "$target" in
- sparc*-solaris*)
- TEXT_START_ADDR=0x100000000
- ;;
- *)
- TEXT_START_ADDR=0x100000
- ;;
-esac
+TEXT_START_ADDR=0x100000
# Treat a host that matches the target with the possible exception of "64"
# and "v7", "v8", "v9" in the name as if it were native.
diff --git a/ld/emulparams/elf64_sparc_sol2.sh b/ld/emulparams/elf64_sparc_sol2.sh
index b32c5be..e17f787 100644
--- a/ld/emulparams/elf64_sparc_sol2.sh
+++ b/ld/emulparams/elf64_sparc_sol2.sh
@@ -1,4 +1,5 @@
source_sh ${srcdir}/emulparams/elf64_sparc.sh
source_sh ${srcdir}/emulparams/solaris2.sh
+TEXT_START_ADDR=0x100000000
EXTRA_EM_FILE=solaris2
OUTPUT_FORMAT="elf64-sparc-sol2"
diff --git a/ld/emulparams/elf_i386.sh b/ld/emulparams/elf_i386.sh
index 6f698bb..12d71f5 100644
--- a/ld/emulparams/elf_i386.sh
+++ b/ld/emulparams/elf_i386.sh
@@ -17,7 +17,7 @@ COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
ARCH=i386
MACHINE=
TEMPLATE_NAME=elf
-EXTRA_EM_FILE="elf-x86"
+EXTRA_EM_FILE="elf-i386-glibc"
GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes
NO_SMALL_DATA=yes
@@ -28,6 +28,8 @@ OTHER_PLT_SECTIONS="
.plt.got ${RELOCATING-0} : { *(.plt.got) }
.plt.sec ${RELOCATING-0} : { *(.plt.sec) }
"
+OTHER_GOT_RELOC_SECTIONS="
+ .rel.tls ${RELOCATING-0} : { *(.rel.tls) }"
# Linux modify the default library search path to first include
# a 32-bit specific directory.
diff --git a/ld/emulparams/elf_i386_fbsd.sh b/ld/emulparams/elf_i386_fbsd.sh
index d1d6604..d39a5cf 100644
--- a/ld/emulparams/elf_i386_fbsd.sh
+++ b/ld/emulparams/elf_i386_fbsd.sh
@@ -1,3 +1,4 @@
source_sh ${srcdir}/emulparams/elf_i386.sh
source_sh ${srcdir}/emulparams/elf_fbsd.sh
+EXTRA_EM_FILE="elf-x86"
OUTPUT_FORMAT="elf32-i386-freebsd"
diff --git a/ld/emulparams/elf_i386_haiku.sh b/ld/emulparams/elf_i386_haiku.sh
index 6c4001e..c931c0e 100644
--- a/ld/emulparams/elf_i386_haiku.sh
+++ b/ld/emulparams/elf_i386_haiku.sh
@@ -1,5 +1,6 @@
source_sh ${srcdir}/emulparams/elf_i386.sh
source_sh ${srcdir}/emulparams/elf_haiku.sh
+EXTRA_EM_FILE="elf-x86"
TEXT_START_ADDR=0x200000
NONPAGED_TEXT_START_ADDR=0x200000
MAXPAGESIZE=0x1000
diff --git a/ld/emulparams/elf_x86_64.sh b/ld/emulparams/elf_x86_64.sh
index 9244974..4bab148 100644
--- a/ld/emulparams/elf_x86_64.sh
+++ b/ld/emulparams/elf_x86_64.sh
@@ -21,7 +21,7 @@ COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
ARCH="i386:x86-64"
MACHINE=
TEMPLATE_NAME=elf
-EXTRA_EM_FILE="elf-x86"
+EXTRA_EM_FILE="elf-x86-64-glibc"
GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes
NO_SMALL_DATA=yes
@@ -34,6 +34,8 @@ OTHER_PLT_SECTIONS="
.plt.got ${RELOCATING-0} : { *(.plt.got) }
.plt.sec ${RELOCATING-0} : { *(.plt.sec) }
"
+OTHER_GOT_RELOC_SECTIONS="
+ .rela.tls ${RELOCATING-0} : { *(.rela.tls) }"
if [ "x${host}" = "x${target}" ]; then
case " $EMULATION_LIBPATH " in
diff --git a/ld/emulparams/elf_x86_64_cloudabi.sh b/ld/emulparams/elf_x86_64_cloudabi.sh
deleted file mode 100644
index 1f8732e..0000000
--- a/ld/emulparams/elf_x86_64_cloudabi.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-source_sh ${srcdir}/emulparams/elf_x86_64.sh
-OUTPUT_FORMAT="elf64-x86-64-cloudabi"
diff --git a/ld/emulparams/elf_x86_64_fbsd.sh b/ld/emulparams/elf_x86_64_fbsd.sh
index 7ef974a..17fdc83 100644
--- a/ld/emulparams/elf_x86_64_fbsd.sh
+++ b/ld/emulparams/elf_x86_64_fbsd.sh
@@ -1,3 +1,4 @@
source_sh ${srcdir}/emulparams/elf_x86_64.sh
source_sh ${srcdir}/emulparams/elf_fbsd.sh
+EXTRA_EM_FILE="elf-x86-64"
OUTPUT_FORMAT="elf64-x86-64-freebsd"
diff --git a/ld/emulparams/elf_x86_64_haiku.sh b/ld/emulparams/elf_x86_64_haiku.sh
index e6231cd..7b03384 100644
--- a/ld/emulparams/elf_x86_64_haiku.sh
+++ b/ld/emulparams/elf_x86_64_haiku.sh
@@ -1,2 +1,3 @@
source_sh ${srcdir}/emulparams/elf_x86_64.sh
source_sh ${srcdir}/emulparams/elf_haiku.sh
+EXTRA_EM_FILE="elf-x86-64"
diff --git a/ld/emulparams/elf_x86_64_sol2.sh b/ld/emulparams/elf_x86_64_sol2.sh
index 2bd709d..d1d3cc7 100644
--- a/ld/emulparams/elf_x86_64_sol2.sh
+++ b/ld/emulparams/elf_x86_64_sol2.sh
@@ -1,4 +1,4 @@
source_sh ${srcdir}/emulparams/elf_x86_64.sh
source_sh ${srcdir}/emulparams/solaris2.sh
-EXTRA_EM_FILE="solaris2-x86"
+EXTRA_EM_FILE="solaris2-x86-64"
OUTPUT_FORMAT="elf64-x86-64-sol2"
diff --git a/ld/emultempl/elf-i386-glibc.em b/ld/emultempl/elf-i386-glibc.em
new file mode 100644
index 0000000..26a7296
--- /dev/null
+++ b/ld/emultempl/elf-i386-glibc.em
@@ -0,0 +1,77 @@
+# This shell script emits a C file. -*- C -*-
+# Copyright (C) 2025 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Binutils.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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; see the file COPYING3. If not,
+# see <http://www.gnu.org/licenses/>.
+#
+
+# This file is sourced from elf.em, and defines i386 glibc specific
+# routines.
+#
+
+source_em ${srcdir}/emultempl/elf-x86.em
+source_em ${srcdir}/emultempl/elf-x86-glibc.em
+
+# Define some shell vars to insert bits of code into the standard elf
+# parse_args and list_options functions.
+#
+
+fragment <<EOF
+static void
+elf_i386_glibc_before_parse (void)
+{
+ elf_x86_before_parse ();
+ elf_x86_glibc_before_parse ();
+ params.gnu_tls_version_tag = DEFAULT_LD_GNU_TLS_TAG;
+}
+EOF
+
+LDEMUL_BEFORE_PARSE=elf_i386_glibc_before_parse
+
+PARSE_AND_LIST_LONGOPTS_386='
+ { "gnu-tls-tag", no_argument, NULL, OPTION_GNU_TLS_VERSION_TAG },
+ { "no-gnu-tls-tag", no_argument, NULL, OPTION_NO_GNU_TLS_VERSION_TAG },
+'
+
+PARSE_AND_LIST_OPTIONS_386='
+ if (DEFAULT_LD_GNU_TLS_TAG == 0)
+ fprintf (file, _("\
+ --gnu-tls-tag Add GLIBC_ABI_GNU_TLS dependency\n\
+ --no-gnu-tls-tag Do not add GLIBC_ABI_GNU_TLS dependency (default)\n"));
+ else if (DEFAULT_LD_GNU_TLS_TAG == 1)
+ fprintf (file, _("\
+ --gnu-tls-tag Add GLIBC_ABI_GNU_TLS dependency (default)\n\
+ --no-gnu-tls-tag Do not add GLIBC_ABI_GNU_TLS dependency\n"));
+ else
+ fprintf (file, _("\
+ --gnu-tls-tag Add GLIBC_ABI_GNU_TLS dependency (auto)\n\
+ when no options are specified (default)\n\
+ --no-gnu-tls-tag Do not add GLIBC_ABI_GNU_TLS dependency\n"));
+'
+
+PARSE_AND_LIST_ARGS_CASES_386='
+ case OPTION_GNU_TLS_VERSION_TAG:
+ params.gnu_tls_version_tag = 1;
+ break;
+
+ case OPTION_NO_GNU_TLS_VERSION_TAG:
+ params.gnu_tls_version_tag = 0;
+ break;
+'
+
+PARSE_AND_LIST_LONGOPTS="$PARSE_AND_LIST_LONGOPTS $PARSE_AND_LIST_LONGOPTS_386"
+PARSE_AND_LIST_OPTIONS="$PARSE_AND_LIST_OPTIONS $PARSE_AND_LIST_OPTIONS_386"
+PARSE_AND_LIST_ARGS_CASES="$PARSE_AND_LIST_ARGS_CASES $PARSE_AND_LIST_ARGS_CASES_386"
diff --git a/ld/emultempl/elf-x86-64-glibc.em b/ld/emultempl/elf-x86-64-glibc.em
new file mode 100644
index 0000000..1e62d4f
--- /dev/null
+++ b/ld/emultempl/elf-x86-64-glibc.em
@@ -0,0 +1,37 @@
+# This shell script emits a C file. -*- C -*-
+# Copyright (C) 2025 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Binutils.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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; see the file COPYING3. If not,
+# see <http://www.gnu.org/licenses/>.
+#
+
+# This file is sourced from elf.em, and defines x86-64 glibc specific
+# routines.
+#
+
+source_em ${srcdir}/emultempl/elf-x86-64.em
+source_em ${srcdir}/emultempl/elf-x86-glibc.em
+
+fragment <<EOF
+static void
+elf_x86_64_glibc_before_parse (void)
+{
+ elf_x86_64_before_parse ();
+ elf_x86_glibc_before_parse ();
+}
+EOF
+
+LDEMUL_BEFORE_PARSE=elf_x86_64_glibc_before_parse
diff --git a/ld/emultempl/elf-x86-64.em b/ld/emultempl/elf-x86-64.em
new file mode 100644
index 0000000..ca7ccc0
--- /dev/null
+++ b/ld/emultempl/elf-x86-64.em
@@ -0,0 +1,68 @@
+# This shell script emits a C file. -*- C -*-
+# Copyright (C) 2025 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Binutils.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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; see the file COPYING3. If not,
+# see <http://www.gnu.org/licenses/>.
+#
+
+# This file is sourced from elf.em, and defines x86-64 specific routines.
+#
+
+source_em ${srcdir}/emultempl/elf-x86.em
+
+fragment <<EOF
+static void
+elf_x86_64_before_parse (void)
+{
+ params.mark_plt = DEFAULT_LD_Z_MARK_PLT;
+
+ elf_x86_before_parse ();
+}
+
+static void
+elf_x86_64_before_allocation (void)
+{
+ if (!bfd_link_relocatable (&link_info)
+ && is_elf_hash_table (link_info.hash)
+ && expld.phase != lang_mark_phase_enum)
+ {
+ struct elf_link_hash_table *htab = elf_hash_table (&link_info);
+ /* Run one_lang_size_sections_pass to estimate the output section
+ layout before sizing dynamic sections. */
+ expld.dataseg.phase = exp_seg_none;
+ expld.phase = lang_mark_phase_enum;
+ /* NB: Exclude linker created GOT setions when estimating output
+ section layout as sizing dynamic sections may change linker
+ created GOT sections. */
+ if (htab->sgot != NULL)
+ htab->sgot->flags |= SEC_EXCLUDE;
+ if (htab->sgotplt != NULL)
+ htab->sgotplt->flags |= SEC_EXCLUDE;
+ one_lang_size_sections_pass (NULL, false);
+ /* Restore linker created GOT setions. */
+ if (htab->sgot != NULL)
+ htab->sgot->flags &= ~SEC_EXCLUDE;
+ if (htab->sgotplt != NULL)
+ htab->sgotplt->flags &= ~SEC_EXCLUDE;
+ lang_reset_memory_regions ();
+ }
+
+ gld${EMULATION_NAME}_before_allocation ();
+}
+EOF
+
+LDEMUL_BEFORE_PARSE=elf_x86_64_before_parse
+LDEMUL_BEFORE_ALLOCATION=elf_x86_64_before_allocation
diff --git a/ld/emultempl/elf-x86-glibc.em b/ld/emultempl/elf-x86-glibc.em
new file mode 100644
index 0000000..0fc37a6
--- /dev/null
+++ b/ld/emultempl/elf-x86-glibc.em
@@ -0,0 +1,70 @@
+# This shell script emits a C file. -*- C -*-
+# Copyright (C) 2025 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Binutils.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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; see the file COPYING3. If not,
+# see <http://www.gnu.org/licenses/>.
+#
+
+# This file is sourced from elf.em, and defines x86 glibc specific
+# routines.
+#
+
+fragment <<EOF
+static void
+elf_x86_glibc_before_parse (void)
+{
+ params.gnu2_tls_version_tag = DEFAULT_LD_GNU2_TLS_TAG;
+}
+EOF
+
+# Define some shell vars to insert bits of code into the standard elf
+# parse_args and list_options functions.
+#
+
+PARSE_AND_LIST_LONGOPTS_X86='
+ { "gnu2-tls-tag", no_argument, NULL, OPTION_GNU2_TLS_VERSION_TAG },
+ { "no-gnu2-tls-tag", no_argument, NULL, OPTION_NO_GNU2_TLS_VERSION_TAG },
+'
+
+PARSE_AND_LIST_OPTIONS_X86='
+ if (DEFAULT_LD_GNU2_TLS_TAG == 0)
+ fprintf (file, _("\
+ --gnu2-tls-tag Add GNU2_ABI_GNU2_TLS dependency\n\
+ --no-gnu2-tls-tag Do not add GNU2_ABI_GNU2_TLS dependency (default)\n"));
+ else if (DEFAULT_LD_GNU2_TLS_TAG == 1)
+ fprintf (file, _("\
+ --gnu2-tls-tag Add GNU2_ABI_GNU2_TLS dependency (default)\n\
+ --no-gnu2-tls-tag Do not add GNU2_ABI_GNU2_TLS dependency\n"));
+ else
+ fprintf (file, _("\
+ --gnu2-tls-tag Add GNU2_ABI_GNU2_TLS dependency (auto)\n\
+ when no options are specified (default)\n\
+ --no-gnu2-tls-tag Do not add GNU2_ABI_GNU2_TLS dependency\n"));
+'
+
+PARSE_AND_LIST_ARGS_CASES_X86='
+ case OPTION_GNU2_TLS_VERSION_TAG:
+ params.gnu2_tls_version_tag = 1;
+ break;
+
+ case OPTION_NO_GNU2_TLS_VERSION_TAG:
+ params.gnu2_tls_version_tag = 0;
+ break;
+'
+
+PARSE_AND_LIST_LONGOPTS="$PARSE_AND_LIST_LONGOPTS $PARSE_AND_LIST_LONGOPTS_X86"
+PARSE_AND_LIST_OPTIONS="$PARSE_AND_LIST_OPTIONS $PARSE_AND_LIST_OPTIONS_X86"
+PARSE_AND_LIST_ARGS_CASES="$PARSE_AND_LIST_ARGS_CASES $PARSE_AND_LIST_ARGS_CASES_X86"
diff --git a/ld/emultempl/elf-x86.em b/ld/emultempl/elf-x86.em
index f72a0cd..411a4d6 100644
--- a/ld/emultempl/elf-x86.em
+++ b/ld/emultempl/elf-x86.em
@@ -56,61 +56,3 @@ EOF
LDEMUL_BEFORE_PARSE=elf_x86_before_parse
fi
-
-case x${OUTPUT_FORMAT}${CALL_NOP_BYTE} in
- x*x86-64*0x67)
-fragment <<EOF
-
-static void
-elf_x86_64_before_parse (void)
-{
- params.mark_plt = DEFAULT_LD_Z_MARK_PLT;
-
- elf_x86_before_parse ();
-}
-EOF
-
- LDEMUL_BEFORE_PARSE=elf_x86_64_before_parse
- ;;
-esac
-
-case x${OUTPUT_FORMAT} in
- x*x86-64*)
-fragment <<EOF
-
-static void
-elf_x86_64_before_allocation (void)
-{
- if (!bfd_link_relocatable (&link_info)
- && is_elf_hash_table (link_info.hash)
- && expld.phase != lang_mark_phase_enum)
- {
- struct elf_link_hash_table *htab = elf_hash_table (&link_info);
- /* Run one_lang_size_sections_pass to estimate the output section
- layout before sizing dynamic sections. */
- expld.dataseg.phase = exp_seg_none;
- expld.phase = lang_mark_phase_enum;
- /* NB: Exclude linker created GOT setions when estimating output
- section layout as sizing dynamic sections may change linker
- created GOT sections. */
- if (htab->sgot != NULL)
- htab->sgot->flags |= SEC_EXCLUDE;
- if (htab->sgotplt != NULL)
- htab->sgotplt->flags |= SEC_EXCLUDE;
- one_lang_size_sections_pass (NULL, false);
- /* Restore linker created GOT setions. */
- if (htab->sgot != NULL)
- htab->sgot->flags &= ~SEC_EXCLUDE;
- if (htab->sgotplt != NULL)
- htab->sgotplt->flags &= ~SEC_EXCLUDE;
- lang_reset_memory_regions ();
- }
-
- gld${EMULATION_NAME}_before_allocation ();
-}
-
-EOF
-
-LDEMUL_BEFORE_ALLOCATION=elf_x86_64_before_allocation
- ;;
-esac
diff --git a/ld/emultempl/solaris2-x86-64.em b/ld/emultempl/solaris2-x86-64.em
new file mode 100644
index 0000000..788b3cf
--- /dev/null
+++ b/ld/emultempl/solaris2-x86-64.em
@@ -0,0 +1,23 @@
+# This shell script emits a C file. -*- C -*-
+# Copyright (C) 2025 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Binutils.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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.
+#
+
+source_em "${srcdir}/emultempl/elf-x86-64.em"
+source_em "${srcdir}/emultempl/solaris2.em"
diff --git a/ld/emultempl/solaris2.em b/ld/emultempl/solaris2.em
index 6198a82..29a436e 100644
--- a/ld/emultempl/solaris2.em
+++ b/ld/emultempl/solaris2.em
@@ -117,6 +117,11 @@ elf_solaris2_before_allocation (void)
/* Create a version pattern for this symbol. Some of them start
off as local, others as global, so try both. */
globals = lang_new_vers_pattern (globals, *sym, NULL, true);
+
+ /* Treat basever symbols as if from a linker script to
+ appease --no-undefined-version. */
+ globals->script = 1;
+
locals = lang_new_vers_pattern (locals, *sym, NULL, true);
}
diff --git a/ld/ld.texi b/ld/ld.texi
index 413335a..cf750d1 100644
--- a/ld/ld.texi
+++ b/ld/ld.texi
@@ -1745,6 +1745,34 @@ Supported for Linux/i386 and Linux/x86_64.
Other keywords are ignored for Solaris compatibility.
+@item --gnu-tls-tag
+@itemx --no-gnu-tls-tag
+Add @code{GLIBC_ABI_GNU_TLS} version tag dependency in output programs
+and shared libraries when linking against glibc if input relocatable
+object files call @code{___tls_get_addr}. The output will fail to load
+and run at run-time against glibc which doesn't define the
+@code{GLIBC_ABI_GNU_TLS} version tag. Unless disabled by the
+@option{--disable-gnu-tls-tag} configure option at the linker build
+time, when no options are specified, linker will add the
+@code{GLIBC_ABI_GNU_TLS} version tag dependency if inputs have
+@code{___tls_get_addr} call and libc.so defines the
+@code{GLIBC_ABI_GNU_TLS} version tag. Supported for Linux/i386.
+
+@item --gnu2-tls-tag
+@itemx --no-gnu2-tls-tag
+Add @code{GLIBC_ABI_GNU2_TLS} version tag dependency in output programs
+and shared libraries when linking against glibc if input relocatable
+object files have @code{R_386_TLS_DESC_CALL} or
+@code{R_X86_64_TLSDESC_CALL} relocation. The output will fail to load
+and run at run-time against glibc which doesn't define the
+@code{GLIBC_ABI_GNU2_TLS} version tag. Unless disabled by the
+@option{--disable-gnu2-tls-tag} configure option at the linker build
+time, when no options are specified, linker will add the
+@code{GLIBC_ABI_GNU2_TLS} version tag dependency if inputs have
+@code{R_386_TLS_DESC_CALL} or @code{R_X86_64_TLSDESC_CALL} relocation
+and libc.so defines the @code{GLIBC_ABI_GNU2_TLS} version tag.
+Supported for Linux/i386 and Linux/x86_64.
+
@kindex -(
@cindex groups of archives
@item -( @var{archives} -)
diff --git a/ld/ldfile.c b/ld/ldfile.c
index e642c7f..83591fe 100644
--- a/ld/ldfile.c
+++ b/ld/ldfile.c
@@ -35,9 +35,8 @@
#include "libiberty.h"
#include "filenames.h"
#include <fnmatch.h>
-#if BFD_SUPPORTS_PLUGINS
+#include "same-inode.h"
#include "plugin.h"
-#endif /* BFD_SUPPORTS_PLUGINS */
bool ldfile_assumed_script = false;
const char *ldfile_output_machine_name = "";
@@ -365,9 +364,7 @@ ldfile_try_open_bfd (const char *attempt,
}
/* PR 30568: Do not track lto generated temporary object files. */
-#if BFD_SUPPORTS_PLUGINS
if (!entry->flags.lto_output)
-#endif
track_dependency_files (attempt);
/* Linker needs to decompress sections. */
@@ -376,10 +373,8 @@ ldfile_try_open_bfd (const char *attempt,
/* This is a linker input BFD. */
entry->the_bfd->is_linker_input = 1;
-#if BFD_SUPPORTS_PLUGINS
if (entry->flags.lto_output)
entry->the_bfd->lto_output = 1;
-#endif
/* If we are searching for this file, see if the architecture is
compatible with the output file. If it isn't, keep searching.
@@ -517,7 +512,6 @@ ldfile_try_open_bfd (const char *attempt,
}
}
success:
-#if BFD_SUPPORTS_PLUGINS
/* If plugins are active, they get first chance to claim
any successfully-opened input file. We skip archives
here; the plugin wants us to offer it the individual
@@ -533,7 +527,6 @@ ldfile_try_open_bfd (const char *attempt,
plugin_maybe_claim (entry);
else
cmdline_check_object_only_section (entry->the_bfd, false);
-#endif /* BFD_SUPPORTS_PLUGINS */
/* It opened OK, the format checked out, and the plugins have had
their chance to claim it, so this is success. */
@@ -828,19 +821,26 @@ find_scripts_dir (void)
static FILE *
ldfile_find_command_file (const char *name,
- bool default_only,
+ enum script_open_style open_how,
bool *sysrooted)
{
search_dirs_type *search;
FILE *result = NULL;
- char *path;
+ char *path = NULL;
+ const char *filename = NULL;
+ struct script_name_list *script;
+ size_t len;
+ struct stat sbuf1;
- if (!default_only)
+ if (open_how != script_defaultT)
{
/* First try raw name. */
result = try_open (name, sysrooted);
if (result != NULL)
- return result;
+ {
+ filename = name;
+ goto success;
+ }
}
if (!script_search)
@@ -861,20 +861,50 @@ ldfile_find_command_file (const char *name,
*search_tail_ptr = script_search;
/* Try now prefixes. */
- for (search = default_only ? script_search : search_head;
+ for (search = open_how == script_defaultT ? script_search : search_head;
search != NULL;
search = search->next)
{
path = concat (search->name, slash, name, (const char *) NULL);
result = try_open (path, sysrooted);
- free (path);
if (result)
- break;
+ {
+ filename = path;
+ break;
+ }
}
/* Restore the original path list. */
*search_tail_ptr = NULL;
+ if (!filename)
+ return NULL;
+
+ success:
+ /* PR 24576: Catch the case where the user has accidentally included
+ the same linker script twice. */
+ if (stat (filename, &sbuf1) == 0)
+ {
+ struct stat sbuf2;
+ for (script = processed_scripts;
+ script != NULL;
+ script = script->next)
+ if ((open_how != script_nonT || script->open_how != script_nonT)
+ && stat (script->name, &sbuf2) == 0
+ && SAME_INODE (sbuf1, sbuf2))
+ fatal (_("%P: error: linker script file '%s (%s)'"
+ " appears multiple times\n"), filename, script->name);
+ }
+
+ len = strlen (filename);
+ script = xmalloc (sizeof (*script) + len);
+ script->next = processed_scripts;
+ script->open_how = open_how;
+ memcpy (script->name, filename, len + 1);
+ processed_scripts = script;
+
+ free (path);
+
return result;
}
@@ -886,31 +916,8 @@ ldfile_open_command_file_1 (const char *name, enum script_open_style open_how)
{
FILE *ldlex_input_stack;
bool sysrooted;
- struct script_name_list *script;
- size_t len;
-
- /* PR 24576: Catch the case where the user has accidentally included
- the same linker script twice. */
- for (script = processed_scripts; script != NULL; script = script->next)
- {
- if ((open_how != script_nonT || script->open_how != script_nonT)
- && strcmp (name, script->name) == 0)
- {
- fatal (_("%P: error: linker script file '%s'"
- " appears multiple times\n"), name);
- return;
- }
- }
-
- len = strlen (name);
- script = xmalloc (sizeof (*script) + len);
- script->next = processed_scripts;
- script->open_how = open_how;
- memcpy (script->name, name, len + 1);
- processed_scripts = script;
- ldlex_input_stack = ldfile_find_command_file (name,
- open_how == script_defaultT,
+ ldlex_input_stack = ldfile_find_command_file (name, open_how,
&sysrooted);
if (ldlex_input_stack == NULL)
{
diff --git a/ld/ldlang.c b/ld/ldlang.c
index fc7a7d2..3c57bf7 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -44,9 +44,7 @@
#include "elf-bfd.h"
#include "bfdver.h"
#include <errno.h>
-#if BFD_SUPPORTS_PLUGINS
#include "plugin.h"
-#endif
#ifndef offsetof
#define offsetof(TYPE, MEMBER) ((size_t) & (((TYPE*) 0)->MEMBER))
@@ -58,6 +56,9 @@
#define TO_ADDR(X) ((X) >> opb_shift)
#define TO_SIZE(X) ((X) << opb_shift)
+/* The maximum nested group depth. */
+#define MAX_NESTED_GROUP_DEPTH 100
+
/* Local variables. */
static struct obstack stat_obstack;
static struct obstack map_obstack;
@@ -2853,14 +2854,24 @@ lang_add_section (lang_statement_list_type *ptr,
/* Only set SEC_READONLY flag on the first input section. */
flags &= ~ SEC_READONLY;
- /* Keep SEC_MERGE and SEC_STRINGS only if they are the same. */
- if ((output->bfd_section->flags & (SEC_MERGE | SEC_STRINGS))
- != (flags & (SEC_MERGE | SEC_STRINGS))
- || ((flags & SEC_MERGE) != 0
- && output->bfd_section->entsize != section->entsize))
+ /* Keep entry size, SEC_MERGE, and SEC_STRINGS only if entry sizes are
+ the same. */
+ if (output->bfd_section->entsize != section->entsize)
+ {
+ output->bfd_section->entsize = 0;
+ flags &= ~(SEC_MERGE | SEC_STRINGS);
+ }
+
+ /* Keep SEC_MERGE and SEC_STRINGS (each) only if they are the same. */
+ if ((output->bfd_section->flags ^ flags) & SEC_MERGE)
{
- output->bfd_section->flags &= ~ (SEC_MERGE | SEC_STRINGS);
- flags &= ~ (SEC_MERGE | SEC_STRINGS);
+ output->bfd_section->flags &= ~SEC_MERGE;
+ flags &= ~SEC_MERGE;
+ }
+ if ((output->bfd_section->flags ^ flags) & SEC_STRINGS)
+ {
+ output->bfd_section->flags &= ~SEC_STRINGS;
+ flags &= ~SEC_STRINGS;
}
}
output->bfd_section->flags |= flags;
@@ -2875,8 +2886,7 @@ lang_add_section (lang_statement_list_type *ptr,
link_info.output_bfd,
output->bfd_section,
&link_info);
- if ((flags & SEC_MERGE) != 0)
- output->bfd_section->entsize = section->entsize;
+ output->bfd_section->entsize = section->entsize;
}
if ((flags & SEC_TIC54X_BLOCK) != 0
@@ -3626,26 +3636,27 @@ enum open_bfd_mode
OPEN_BFD_FORCE = 1,
OPEN_BFD_RESCAN = 2
};
-#if BFD_SUPPORTS_PLUGINS
static lang_input_statement_type *plugin_insert = NULL;
static struct bfd_link_hash_entry *plugin_undefs = NULL;
-#endif
static void
open_input_bfds (lang_statement_union_type *s,
lang_output_section_statement_type *os,
- enum open_bfd_mode mode)
+ enum open_bfd_mode mode,
+ unsigned int *nested_group_count_p)
{
for (; s != NULL; s = s->header.next)
{
switch (s->header.type)
{
case lang_constructors_statement_enum:
- open_input_bfds (constructor_list.head, os, mode);
+ open_input_bfds (constructor_list.head, os, mode,
+ nested_group_count_p);
break;
case lang_output_section_statement_enum:
os = &s->output_section_statement;
- open_input_bfds (os->children.head, os, mode);
+ open_input_bfds (os->children.head, os, mode,
+ nested_group_count_p);
break;
case lang_wild_statement_enum:
/* Maybe we should load the file's symbols. */
@@ -3654,36 +3665,35 @@ open_input_bfds (lang_statement_union_type *s,
&& !wildcardp (s->wild_statement.filename)
&& !archive_path (s->wild_statement.filename))
lookup_name (s->wild_statement.filename);
- open_input_bfds (s->wild_statement.children.head, os, mode);
+ open_input_bfds (s->wild_statement.children.head, os, mode,
+ nested_group_count_p);
break;
case lang_group_statement_enum:
{
struct bfd_link_hash_entry *undefs;
-#if BFD_SUPPORTS_PLUGINS
lang_input_statement_type *plugin_insert_save;
-#endif
/* We must continually search the entries in the group
until no new symbols are added to the list of undefined
symbols. */
+ ++*nested_group_count_p;
+
do
{
-#if BFD_SUPPORTS_PLUGINS
plugin_insert_save = plugin_insert;
-#endif
undefs = link_info.hash->undefs_tail;
open_input_bfds (s->group_statement.children.head, os,
- mode | OPEN_BFD_FORCE);
+ mode | OPEN_BFD_FORCE,
+ nested_group_count_p);
}
while (undefs != link_info.hash->undefs_tail
-#if BFD_SUPPORTS_PLUGINS
/* Objects inserted by a plugin, which are loaded
before we hit this loop, may have added new
undefs. */
- || (plugin_insert != plugin_insert_save && plugin_undefs)
-#endif
- );
+ || (plugin_insert != plugin_insert_save && plugin_undefs));
+
+ --*nested_group_count_p;
}
break;
case lang_target_statement_enum:
@@ -3696,6 +3706,10 @@ open_input_bfds (lang_statement_union_type *s,
lang_statement_list_type add;
bfd *abfd;
+ if (*nested_group_count_p >= MAX_NESTED_GROUP_DEPTH)
+ fatal (_("%P: group nested too deeply in linker script '%s'\n"),
+ s->input_statement.filename);
+
s->input_statement.target = current_target;
/* If we are being called from within a group, and this
@@ -3704,10 +3718,8 @@ open_input_bfds (lang_statement_union_type *s,
has been loaded already. Do the same for a rescan.
Likewise reload --as-needed shared libs. */
if (mode != OPEN_BFD_NORMAL
-#if BFD_SUPPORTS_PLUGINS
&& ((mode & OPEN_BFD_RESCAN) == 0
|| plugin_insert == NULL)
-#endif
&& s->input_statement.flags.loaded
&& (abfd = s->input_statement.the_bfd) != NULL
&& ((bfd_get_format (abfd) == bfd_archive
@@ -3751,12 +3763,10 @@ open_input_bfds (lang_statement_union_type *s,
}
}
}
-#if BFD_SUPPORTS_PLUGINS
/* If we have found the point at which a plugin added new
files, clear plugin_insert to enable archive rescan. */
if (&s->input_statement == plugin_insert)
plugin_insert = NULL;
-#endif
break;
case lang_assignment_statement_enum:
if (s->assignment_statement.exp->type.node_class != etree_assert)
@@ -7342,11 +7352,9 @@ lang_check (void)
file != NULL;
file = file->next)
{
-#if BFD_SUPPORTS_PLUGINS
/* Don't check format of files claimed by plugin. */
if (file->flags.claimed)
continue;
-#endif /* BFD_SUPPORTS_PLUGINS */
input_bfd = file->the_bfd;
compatible
= bfd_arch_get_compatible (input_bfd, link_info.output_bfd,
@@ -7873,10 +7881,8 @@ lang_gc_sections (void)
LANG_FOR_EACH_INPUT_STATEMENT (f)
{
asection *sec;
-#if BFD_SUPPORTS_PLUGINS
if (f->flags.claimed)
continue;
-#endif
for (sec = f->the_bfd->sections; sec != NULL; sec = sec->next)
if ((sec->flags & SEC_DEBUGGING) == 0
|| strcmp (sec->name, ".stabstr") != 0)
@@ -8020,7 +8026,6 @@ lang_relax_sections (bool need_layout)
}
}
-#if BFD_SUPPORTS_PLUGINS
/* Find the insert point for the plugin's replacement files. We
place them after the first claimed real object file, or if the
first claimed object is an archive member, after the last real
@@ -8148,7 +8153,6 @@ find_next_input_statement (lang_statement_union_type **s)
}
return s;
}
-#endif /* BFD_SUPPORTS_PLUGINS */
/* Insert SRCLIST into DESTLIST after given element by chaining
on FIELD as the next-pointer. (Counterintuitively does not need
@@ -8285,6 +8289,8 @@ lang_os_merge_sort_children (void)
void
lang_process (void)
{
+ unsigned int nested_group_count = 0;
+
lang_os_merge_sort_children ();
/* Finalize dynamic list. */
@@ -8316,7 +8322,8 @@ lang_process (void)
/* Create a bfd for each input file. */
current_target = default_target;
lang_statement_iteration++;
- open_input_bfds (statement_list.head, NULL, OPEN_BFD_NORMAL);
+ open_input_bfds (statement_list.head, NULL, OPEN_BFD_NORMAL,
+ &nested_group_count);
/* Now that open_input_bfds has processed assignments and provide
statements we can give values to symbolic origin/length now. */
@@ -8324,7 +8331,6 @@ lang_process (void)
ldemul_before_plugin_all_symbols_read ();
-#if BFD_SUPPORTS_PLUGINS
if (link_info.lto_plugin_active)
{
lang_statement_list_type added;
@@ -8351,7 +8357,8 @@ lang_process (void)
last_os = ((lang_output_section_statement_type *)
((char *) lang_os_list.tail
- offsetof (lang_output_section_statement_type, next)));
- open_input_bfds (*added.tail, last_os, OPEN_BFD_NORMAL);
+ open_input_bfds (*added.tail, last_os, OPEN_BFD_NORMAL,
+ &nested_group_count);
if (plugin_undefs == link_info.hash->undefs_tail)
plugin_undefs = NULL;
/* Restore the global list pointer now they have all been added. */
@@ -8402,7 +8409,8 @@ lang_process (void)
/* Rescan archives in case new undefined symbols have appeared. */
files = file_chain;
lang_statement_iteration++;
- open_input_bfds (statement_list.head, NULL, OPEN_BFD_RESCAN);
+ open_input_bfds (statement_list.head, NULL, OPEN_BFD_RESCAN,
+ &nested_group_count);
lang_list_remove_tail (&file_chain, &files);
while (files.head != NULL)
{
@@ -8435,9 +8443,7 @@ lang_process (void)
}
}
}
- else
-#endif /* BFD_SUPPORTS_PLUGINS */
- if (bfd_link_relocatable (&link_info))
+ else if (bfd_link_relocatable (&link_info))
{
/* Check if .gnu_object_only section should be created. */
bfd *p;
@@ -10692,6 +10698,9 @@ cmdline_add_object_only_section (bfd_byte *contents, size_t size)
goto loser;
}
+ /* This is a linker input BFD. */
+ ibfd->is_linker_input = 1;
+
if (!bfd_check_format_matches (ibfd, bfd_object, &matching))
{
err = bfd_errmsg (bfd_get_error ());
@@ -10840,7 +10849,7 @@ cmdline_add_object_only_section (bfd_byte *contents, size_t size)
/* ibfd needs to be closed *after* obfd, otherwise ld may crash with a
segmentation fault. */
if (!bfd_close (ibfd))
- einfo (_("%P%F: failed to close input\n"));
+ fatal (_("%P: failed to close input\n"));
/* Must be freed after bfd_close (). */
free (isympp);
@@ -10848,7 +10857,7 @@ cmdline_add_object_only_section (bfd_byte *contents, size_t size)
/* Must unlink to ensure rename works on Windows. */
if (unlink (output_filename) && errno != ENOENT)
- einfo (_("%P%F: failed to unlink %s\n"), output_filename);
+ fatal (_("%P: failed to unlink %s\n"), output_filename);
if (rename (ofilename, output_filename))
{
@@ -10886,6 +10895,7 @@ cmdline_emit_object_only_section (void)
size_t size, off;
bfd_byte *contents;
struct stat st;
+ unsigned int nested_group_count = 0;
/* Get a temporary object-only file. */
output_filename = make_temp_file (".obj-only.o");
@@ -10922,7 +10932,8 @@ cmdline_emit_object_only_section (void)
cmdline_get_object_only_input_files ();
/* Open object-only input files. */
- open_input_bfds (statement_list.head, NULL, OPEN_BFD_NORMAL);
+ open_input_bfds (statement_list.head, NULL, OPEN_BFD_NORMAL,
+ &nested_group_count);
ldemul_after_open ();
diff --git a/ld/ldlang.h b/ld/ldlang.h
index 8d905f0..a9607be 100644
--- a/ld/ldlang.h
+++ b/ld/ldlang.h
@@ -287,7 +287,6 @@ struct lang_input_statement_flags
/* Set if reloading an archive or --as-needed lib. */
unsigned int reload : 1;
-#if BFD_SUPPORTS_PLUGINS
/* Set if the file was claimed by a plugin. */
unsigned int claimed : 1;
@@ -296,7 +295,6 @@ struct lang_input_statement_flags
/* Set if added by the lto plugin add_input_file callback. */
unsigned int lto_output : 1;
-#endif /* BFD_SUPPORTS_PLUGINS */
/* Head of list of pushed flags. */
struct lang_input_statement_flags *pushed;
diff --git a/ld/ldlex.h b/ld/ldlex.h
index 815da76..24cac1c 100644
--- a/ld/ldlex.h
+++ b/ld/ldlex.h
@@ -146,11 +146,9 @@ enum option_values
OPTION_WARN_ALTERNATE_EM,
OPTION_REDUCE_MEMORY_OVERHEADS,
OPTION_MAX_CACHE_SIZE,
-#if BFD_SUPPORTS_PLUGINS
OPTION_PLUGIN,
OPTION_PLUGIN_OPT,
OPTION_PLUGIN_SAVE_TEMPS,
-#endif /* BFD_SUPPORTS_PLUGINS */
OPTION_DEFAULT_SCRIPT,
OPTION_PRINT_OUTPUT_FORMAT,
OPTION_PRINT_SYSROOT,
@@ -471,6 +469,12 @@ enum option_values
OPTION_NO_LITERAL_MOVEMENT,
OPTION_ABI_WINDOWED,
OPTION_ABI_CALL0,
+ /* Used by emultempl/elf-x86-glibc.em. */
+ OPTION_GNU2_TLS_VERSION_TAG,
+ OPTION_NO_GNU2_TLS_VERSION_TAG,
+ /* Used by emultempl/elf-i386-glibc.em. */
+ OPTION_GNU_TLS_VERSION_TAG,
+ OPTION_NO_GNU_TLS_VERSION_TAG,
};
/* The initial parser states. */
diff --git a/ld/ldmain.c b/ld/ldmain.c
index 13b8e3d..157f205 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -40,9 +40,7 @@
#include "ldfile.h"
#include "ldemul.h"
#include "ldctor.h"
-#if BFD_SUPPORTS_PLUGINS
#include "plugin.h"
-#endif /* BFD_SUPPORTS_PLUGINS */
/* Somewhere above, sys/stat.h got included. */
#if !defined(S_ISDIR) && defined(S_IFDIR)
@@ -227,13 +225,11 @@ ld_cleanup (void)
inext = ibfd->link.next;
bfd_close_all_done (ibfd);
}
-#if BFD_SUPPORTS_PLUGINS
/* Note - we do not call ld_plugin_start (PHASE_PLUGINS) here as this
function is only called when the linker is exiting - ie after any
stats may have been reported, and potentially in the middle of a
phase where we have already started recording plugin stats. */
plugin_call_cleanup ();
-#endif
if (output_filename && delete_output_file_on_failure)
unlink_if_ordinary (output_filename);
}
@@ -724,12 +720,10 @@ main (int argc, char **argv)
ld_stop_phase (PHASE_PARSE);
-#if BFD_SUPPORTS_PLUGINS
ld_start_phase (PHASE_PLUGINS);
/* Now all the plugin arguments have been gathered, we can load them. */
plugin_load_plugins ();
ld_stop_phase (PHASE_PLUGINS);
-#endif /* BFD_SUPPORTS_PLUGINS */
ld_start_phase (PHASE_PARSE);
@@ -1307,7 +1301,6 @@ add_archive_element (struct bfd_link_info *info,
(if enabled) may possibly alter it to point to a replacement
BFD, but we still want to output the original BFD filename. */
orig_input = *input;
-#if BFD_SUPPORTS_PLUGINS
/* Don't claim a fat IR object if no IR object should be claimed. */
if (link_info.lto_plugin_active
&& (!no_more_claiming
@@ -1336,7 +1329,6 @@ add_archive_element (struct bfd_link_info *info,
}
else
cmdline_check_object_only_section (input->the_bfd, false);
-#endif /* BFD_SUPPORTS_PLUGINS */
if (link_info.input_bfds_tail == &input->the_bfd->link.next
|| input->the_bfd->link.next != NULL)
diff --git a/ld/lexsup.c b/ld/lexsup.c
index bde2046..5cb7799 100644
--- a/ld/lexsup.c
+++ b/ld/lexsup.c
@@ -41,9 +41,7 @@
#include "ldver.h"
#include "ldemul.h"
#include "demangle.h"
-#if BFD_SUPPORTS_PLUGINS
#include "plugin.h"
-#endif /* BFD_SUPPORTS_PLUGINS */
#ifndef PATH_SEPARATOR
#if defined (__MSDOS__) || (defined (_WIN32) && ! defined (__CYGWIN32__))
@@ -182,7 +180,6 @@ static const struct ld_option ld_options[] =
'O', NULL, N_("Optimize output file"), ONE_DASH },
{ {"out-implib", required_argument, NULL, OPTION_OUT_IMPLIB},
'\0', N_("FILE"), N_("Generate import library"), TWO_DASHES },
-#if BFD_SUPPORTS_PLUGINS
{ {"plugin", required_argument, NULL, OPTION_PLUGIN},
'\0', N_("PLUGIN"), N_("Load named plugin"), ONE_DASH },
{ {"plugin-opt", required_argument, NULL, OPTION_PLUGIN_OPT},
@@ -196,12 +193,6 @@ static const struct ld_option ld_options[] =
{ {"flto-partition=", required_argument, NULL, OPTION_IGNORE},
'\0', NULL, N_("Ignored for GCC LTO option compatibility"),
ONE_DASH },
-#else
- { {"plugin", required_argument, NULL, OPTION_IGNORE},
- '\0', N_("PLUGIN"), N_("Load named plugin (ignored)"), ONE_DASH },
- { {"plugin-opt", required_argument, NULL, OPTION_IGNORE},
- '\0', N_("ARG"), N_("Send arg to last-loaded plugin (ignored)"), ONE_DASH },
-#endif /* BFD_SUPPORTS_PLUGINS */
{ {"fuse-ld=", required_argument, NULL, OPTION_IGNORE},
'\0', NULL, N_("Ignored for GCC linker option compatibility"),
ONE_DASH },
@@ -1213,18 +1204,18 @@ parse_args (unsigned argc, char **argv)
case OPTION_PRINT_OUTPUT_FORMAT:
command_line.print_output_format = true;
break;
-#if BFD_SUPPORTS_PLUGINS
case OPTION_PLUGIN:
- plugin_opt_plugin (optarg);
+ if (bfd_plugin_enabled ())
+ plugin_opt_plugin (optarg);
break;
case OPTION_PLUGIN_OPT:
- if (plugin_opt_plugin_arg (optarg))
+ if (bfd_plugin_enabled ()
+ && plugin_opt_plugin_arg (optarg))
fatal (_("%P: bad -plugin-opt option\n"));
break;
case OPTION_PLUGIN_SAVE_TEMPS:
config.plugin_save_temps = true;
break;
-#endif /* BFD_SUPPORTS_PLUGINS */
case 'q':
link_info.emitrelocations = true;
break;
@@ -1543,9 +1534,7 @@ parse_args (unsigned argc, char **argv)
int level ATTRIBUTE_UNUSED = strtoul (optarg, &end, 0);
if (*end)
fatal (_("%P: invalid number `%s'\n"), optarg);
-#if BFD_SUPPORTS_PLUGINS
report_plugin_symbols = level > 1;
-#endif /* BFD_SUPPORTS_PLUGINS */
}
break;
case 'v':
@@ -2474,7 +2463,13 @@ help (void)
for (; len < 30; len++)
putchar (' ');
- printf ("%s\n", _(ld_options[i].doc));
+ printf ("%s", _(ld_options[i].doc));
+ if ((ld_options[i].opt.val == OPTION_PLUGIN
+ || ld_options[i].opt.val == OPTION_PLUGIN_OPT)
+ && !bfd_plugin_enabled ())
+ puts (_(" (ignored)"));
+ else
+ putchar ('\n');
}
}
printf (_(" @FILE"));
diff --git a/ld/libdep_plugin.c b/ld/libdep_plugin.c
index 605d597..e1dbf18 100644
--- a/ld/libdep_plugin.c
+++ b/ld/libdep_plugin.c
@@ -20,7 +20,6 @@
#include "sysdep.h"
#include "bfd.h"
-#if BFD_SUPPORTS_PLUGINS
#include "plugin-api.h"
#include <ctype.h> /* For isspace. */
@@ -340,4 +339,3 @@ onload (struct ld_plugin_tv *tv)
fflush (NULL);
return LDPS_OK;
}
-#endif /* BFD_SUPPORTS_PLUGINS */
diff --git a/ld/pe-dll.c b/ld/pe-dll.c
index 210b77e..c730b54 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -1630,9 +1630,8 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info)
const struct bfd_link_hash_entry *blhe
= bfd_wrapped_link_hash_lookup (abfd, info, sym->name,
false, false, false);
-
/* Don't create relocs for undefined weak symbols. */
- if (sym->flags == BSF_WEAK)
+ if (sym->flags & BSF_WEAK)
{
if (blhe && blhe->type == bfd_link_hash_undefweak)
{
@@ -1657,7 +1656,7 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info)
continue;
}
/* Nor for Dwarf FDE references to discarded sections. */
- else if (bfd_is_abs_section (sym->section->output_section))
+ if (bfd_is_abs_section (sym->section->output_section))
{
/* We only ignore relocs from .eh_frame sections, as
they are discarded by the final link rather than
@@ -1666,10 +1665,10 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info)
continue;
}
/* Nor for absolute symbols. */
- else if (blhe && ldexp_is_final_sym_absolute (blhe)
- && (!blhe->linker_def
- || (strcmp (sym->name, "__image_base__")
- && strcmp (sym->name, U ("__ImageBase")))))
+ if (blhe && ldexp_is_final_sym_absolute (blhe)
+ && (!blhe->linker_def
+ || (strcmp (sym->name, "__image_base__")
+ && strcmp (sym->name, U ("__ImageBase")))))
continue;
reloc_data[total_relocs].vma = sec_vma + relocs[i]->address;
diff --git a/ld/plugin.c b/ld/plugin.c
index dedd1a0..08d827c 100644
--- a/ld/plugin.c
+++ b/ld/plugin.c
@@ -21,7 +21,6 @@
#include "sysdep.h"
#include "libiberty.h"
#include "bfd.h"
-#if BFD_SUPPORTS_PLUGINS
#include "bfdlink.h"
#include "bfdver.h"
#include "ctf-api.h"
@@ -1536,4 +1535,3 @@ plugin_notice (struct bfd_link_info *info,
abfd, section, value, flags);
return true;
}
-#endif /* BFD_SUPPORTS_PLUGINS */
diff --git a/ld/po/BLD-POTFILES.in b/ld/po/BLD-POTFILES.in
index 7daf1d7..94bd7b0 100644
--- a/ld/po/BLD-POTFILES.in
+++ b/ld/po/BLD-POTFILES.in
@@ -1,5 +1,3 @@
-eaarch64cloudabi.c
-eaarch64cloudabib.c
eaarch64elf.c
eaarch64elf32.c
eaarch64elf32b.c
@@ -213,7 +211,6 @@ eelf_iamcu.c
eelf_mipsel_haiku.c
eelf_s390.c
eelf_x86_64.c
-eelf_x86_64_cloudabi.c
eelf_x86_64_fbsd.c
eelf_x86_64_haiku.c
eelf_x86_64_sol2.c
diff --git a/ld/po/de.po b/ld/po/de.po
index a71a8c1..91b9654 100644
--- a/ld/po/de.po
+++ b/ld/po/de.po
@@ -1,2446 +1,2214 @@
-# Katalog für opcodes.
-# Copyright (C) 2002 Free Software Foundation, Inc.
+# German translation of binutils ld.
+# Copyright (C) 2010, 2011 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
-# Martin v. Löwis <martin@v.loewis.de>, 2002.
-# Roland Illig <roland.illig@gmx.de>, 2004-2019.
+# Mario Blättermann <mario.blaettermann@gmail.com>, 2014.
#
msgid ""
msgstr ""
-"Project-Id-Version: opcodes 2.31.90\n"
+"Project-Id-Version: ld 2.23.90\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2019-01-19 16:32+0000\n"
-"PO-Revision-Date: 2019-01-20 16:14+0100\n"
-"Last-Translator: Roland Illig <roland.illig@gmx.de>\n"
+"POT-Creation-Date: 2011-10-25 11:20+0100\n"
+"PO-Revision-Date: 2014-05-12 21:11+0100\n"
+"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
"Language: de\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"
-"X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 2.2.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 1.5.4\n"
-#: aarch64-asm.c:819
-msgid "specified register cannot be read from"
-msgstr "Aus dem angegebenen Register kann nicht gelesen werden"
+#: emultempl/armcoff.em:73
+#, c-format
+msgid " --support-old-code Support interworking with old code\n"
+msgstr " --support-old-code Interaktion mit altem Code unterstützen\n"
-#: aarch64-asm.c:828
-msgid "specified register cannot be written to"
-msgstr "In das angegebene Register kann nicht geschrieben werden"
+#: emultempl/armcoff.em:74
+#, c-format
+msgid " --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n"
+msgstr ""
-#. Invalid option.
-#: aarch64-dis.c:92 arc-dis.c:782 arm-dis.c:6174
+#: emultempl/armcoff.em:122
#, c-format
-msgid "unrecognised disassembler option: %s"
-msgstr "Unbekannte Disassembler-Option: %s"
+msgid "Errors encountered processing file %s"
+msgstr "Bei der Verarbeitung der Datei %s sind Fehler aufgetreten"
-#: aarch64-dis.c:3448
+#: emultempl/armcoff.em:192 emultempl/pe.em:1812
+msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
+msgstr "%P: Warnung: »--thumb-entry %s« setzt »-e %s« außer Kraft\n"
+
+#: emultempl/armcoff.em:197 emultempl/pe.em:1817
+msgid "%P: warning: cannot find thumb start symbol %s\n"
+msgstr ""
+
+#: emultempl/pe.em:419
#, c-format
-msgid ""
-"\n"
-"The following AARCH64 specific disassembler options are supported for use\n"
-"with the -M switch (multiple options should be separated by commas):\n"
+msgid " --base_file <basefile> Generate a base file for relocatable DLLs\n"
msgstr ""
-"\n"
-"Die folgenden AARCH64-spezifischen Disassembleroptionen werden zusammen\n"
-"mit dem Schalter »-M« unterstützt (mehrere Optionen sollten durch\n"
-"Kommata getrennt werden):\n"
-#: aarch64-dis.c:3452
+#: emultempl/pe.em:420
#, c-format
-msgid ""
-"\n"
-" no-aliases Don't print instruction aliases.\n"
+msgid " --dll Set image base to the default for DLLs\n"
msgstr ""
-"\n"
-" no-aliases Befehls-Aliase nicht ausgeben.\n"
-#: aarch64-dis.c:3455
+#: emultempl/pe.em:421
#, c-format
-msgid ""
-"\n"
-" aliases Do print instruction aliases.\n"
+msgid " --file-alignment <size> Set file alignment\n"
msgstr ""
-"\n"
-" aliases Befehls-Aliase ausgeben.\n"
-#: aarch64-dis.c:3458
+#: emultempl/pe.em:422
#, c-format
-msgid ""
-"\n"
-" no-notes Don't print instruction notes.\n"
+msgid " --heap <size> Set initial size of the heap\n"
msgstr ""
-"\n"
-" no-notes Befehls-Hinweise nicht ausgeben.\n"
-#: aarch64-dis.c:3461
+#: emultempl/pe.em:423
#, c-format
-msgid ""
-"\n"
-" notes Do print instruction notes.\n"
+msgid " --image-base <address> Set start address of the executable\n"
+msgstr " --image-base <Adresse> Startadresse der ausführbaren Datei setzen\n"
+
+#: emultempl/pe.em:424
+#, c-format
+msgid " --major-image-version <number> Set version number of the executable\n"
msgstr ""
-"\n"
-" notes Befehls-Hinweise ausgeben.\n"
+" --major-image-version <Nummer> legt die Versionsnummer der ausführbaren\n"
+" Datei fest\n"
-#: aarch64-dis.c:3465
+#: emultempl/pe.em:425
#, c-format
-msgid ""
-"\n"
-" debug_dump Temp switch for debug trace.\n"
+msgid " --major-os-version <number> Set minimum required OS version\n"
msgstr ""
-"\n"
-" debug_dump Temporärer Schalter für Debugspuren.\n"
+" --major-os-version <Nummer> legt die minimal erforderliche\n"
+" OS-Version fest\n"
-#: aarch64-dis.c:3469 mips-dis.c:2773 mips-dis.c:2783 mips-dis.c:2786
-#: nfp-dis.c:2981 riscv-dis.c:552
+#: emultempl/pe.em:426
#, c-format
-msgid "\n"
-msgstr "\n"
+msgid " --major-subsystem-version <number> Set minimum required OS subsystem version\n"
+msgstr ""
+" --major-subsystem-version <Nummer> legt die minimal erforderliche\n"
+" OS-Subsystem-Version fest\n"
-#: aarch64-opc.c:1339
-msgid "immediate value"
-msgstr "Direktwert"
+#: emultempl/pe.em:427
+#, c-format
+msgid " --minor-image-version <number> Set revision number of the executable\n"
+msgstr ""
+" --minor-image-version <Nummer> legt die Revisionsnummer der ausführbaren\n"
+" Datei fest\n"
-#: aarch64-opc.c:1349
-msgid "immediate offset"
-msgstr "Direkter Offset"
+#: emultempl/pe.em:428
+#, c-format
+msgid " --minor-os-version <number> Set minimum required OS revision\n"
+msgstr ""
+" --minor-os-version <Nummer> legt die minimal erforderliche Revisionsnummer\n"
+" des Betriebssystems fest\n"
-#: aarch64-opc.c:1359
-msgid "register number"
-msgstr "Registernummer"
+#: emultempl/pe.em:429
+#, c-format
+msgid " --minor-subsystem-version <number> Set minimum required OS subsystem revision\n"
+msgstr ""
+" --minor-subsystem-version <Nummer> legt die minimal erforderliche\n"
+" OS-Subsystem-Revision fest\n"
-#: aarch64-opc.c:1369
-msgid "register element index"
-msgstr "Register-Elementindex"
+#: emultempl/pe.em:430
+#, c-format
+msgid " --section-alignment <size> Set section alignment\n"
+msgstr ""
-#: aarch64-opc.c:1379
-msgid "shift amount"
-msgstr "Schiebeanzahl"
+#: emultempl/pe.em:431
+#, c-format
+msgid " --stack <size> Set size of the initial stack\n"
+msgstr ""
-#: aarch64-opc.c:1391
-msgid "multiplier"
-msgstr "Multiplikator"
+#: emultempl/pe.em:432
+#, c-format
+msgid " --subsystem <name>[:<version>] Set required OS subsystem [& version]\n"
+msgstr " --subsystem <Name>[:<Version>] legt das benötigte OS-Subsystem [und Version] fest\n"
-#: aarch64-opc.c:1464
-msgid "reg pair must start from even reg"
-msgstr "Registerpaar muss mit geradem Register anfangen"
+#: emultempl/pe.em:433
+#, c-format
+msgid " --support-old-code Support interworking with old code\n"
+msgstr " --support-old-code Interaktion mit altem Code unterstützen\n"
-#: aarch64-opc.c:1470
-msgid "reg pair must be contiguous"
-msgstr "Registerpaar muss zusammenhängend sein"
+#: emultempl/pe.em:434
+#, c-format
+msgid " --[no-]leading-underscore Set explicit symbol underscore prefix mode\n"
+msgstr ""
-#: aarch64-opc.c:1484
-msgid "extraneous register"
-msgstr "Irrelevantes Register"
+#: emultempl/pe.em:435
+#, c-format
+msgid " --thumb-entry=<symbol> Set the entry point to be Thumb <symbol>\n"
+msgstr ""
-#: aarch64-opc.c:1490
-msgid "missing register"
-msgstr "Fehlendes Register"
+#: emultempl/pe.em:437
+#, c-format
+msgid " --add-stdcall-alias Export symbols with and without @nn\n"
+msgstr " --add-stdcall-alias exportiert Symbole mit und ohne @nn\n"
-#: aarch64-opc.c:1501
-msgid "stack pointer register expected"
-msgstr "Stackpointer-Register erwartet"
+#: emultempl/pe.em:438
+#, c-format
+msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n"
+msgstr " --disable-stdcall-fixup verlinkt _sym nicht zu _sym@nn\n"
-#: aarch64-opc.c:1524
-msgid "z0-z15 expected"
-msgstr "z0-z15 erwartet"
+#: emultempl/pe.em:439
+#, c-format
+msgid " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n"
+msgstr " --enable-stdcall-fixup verlinkt _sym zu _sym@nn ohne Warnungen\n"
-#: aarch64-opc.c:1525
-msgid "z0-z7 expected"
-msgstr "z0-z7 erwartet"
+#: emultempl/pe.em:440
+#, c-format
+msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n"
+msgstr " --exclude-symbols sym,sym,... schließt Symbole vom automatischen Export aus\n"
-#: aarch64-opc.c:1551
-msgid "invalid register list"
-msgstr "Ungültige Registerliste"
+#: emultempl/pe.em:441
+#, c-format
+msgid " --exclude-all-symbols Exclude all symbols from automatic export\n"
+msgstr " --exclude-all-symbols Keine Symbole automatisch exportieren\n"
-#: aarch64-opc.c:1565
-msgid "p0-p7 expected"
-msgstr "p0-p7 erwartet"
+#: emultempl/pe.em:442
+#, c-format
+msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n"
+msgstr " --exclude-libs lib,lib,... Bibliotheken nicht automatisch exportieren\n"
-#: aarch64-opc.c:1591 aarch64-opc.c:1599
-msgid "unexpected address writeback"
-msgstr "Unerwartetes Adressen-Zurückschreiben"
+#: emultempl/pe.em:443
+#, c-format
+msgid " --exclude-modules-for-implib mod,mod,...\n"
+msgstr " --exclude-modules-for-implib mod,mod,...\n"
-#: aarch64-opc.c:1611
-msgid "address writeback expected"
-msgstr "Adressen-Zurückschreiben erwartet"
+#: emultempl/pe.em:444
+#, c-format
+msgid " Exclude objects, archive members from auto\n"
+msgstr " schließt Objekte, Archivelemente vom auto-\n"
-#: aarch64-opc.c:1658
-msgid "negative or unaligned offset expected"
-msgstr "Negativer oder unausgerichteter Offset erwartet"
+#: emultempl/pe.em:445
+#, c-format
+msgid " export, place into import library instead.\n"
+msgstr ""
+" matischen Export aus und platziert diese stattdessen\n"
+" in der Importbibliothek.\n"
-#: aarch64-opc.c:1715
-msgid "invalid register offset"
-msgstr "Ungültiger Register-Offset"
+#: emultempl/pe.em:446
+#, c-format
+msgid " --export-all-symbols Automatically export all globals to DLL\n"
+msgstr ""
-#: aarch64-opc.c:1737
-msgid "invalid post-increment amount"
-msgstr "Nicht erlaubte Anzahl im Post-Inkrement"
+#: emultempl/pe.em:447
+#, c-format
+msgid " --kill-at Remove @nn from exported symbols\n"
+msgstr " --kill-at @nn aus den exportierten Symbolen entfernen\n"
-#: aarch64-opc.c:1753 aarch64-opc.c:2247
-msgid "invalid shift amount"
-msgstr "Ungültige Schiebeanzahl"
+#: emultempl/pe.em:448
+#, c-format
+msgid " --out-implib <file> Generate import library\n"
+msgstr " --out-implib <Datei> erstellt eine Importbibliothek\n"
-#: aarch64-opc.c:1766
-msgid "invalid extend/shift operator"
-msgstr "Nicht erlaubter Extend/Shift-Operator"
+#: emultempl/pe.em:449
+#, c-format
+msgid " --output-def <file> Generate a .DEF file for the built DLL\n"
+msgstr " --output-def <Datei> eine .DEF-Datei für die gebaute DLL generieren\n"
-#: aarch64-opc.c:1812 aarch64-opc.c:2052 aarch64-opc.c:2087 aarch64-opc.c:2106
-#: aarch64-opc.c:2114 aarch64-opc.c:2201 aarch64-opc.c:2377 aarch64-opc.c:2477
-#: aarch64-opc.c:2490
-msgid "immediate out of range"
-msgstr "Direktoperand außerhalb des gültigen Bereichs"
+#: emultempl/pe.em:450
+#, c-format
+msgid " --warn-duplicate-exports Warn about duplicate exports.\n"
+msgstr " --warn-duplicate-exports warnt bei doppelten Exporten.\n"
-#: aarch64-opc.c:1834 aarch64-opc.c:1876 aarch64-opc.c:1926 aarch64-opc.c:1960
-msgid "invalid addressing mode"
-msgstr "Ungültiger Adressierungsmodus"
-
-#: aarch64-opc.c:1918
-msgid "index register xzr is not allowed"
-msgstr "Indexregister xzr ist nicht erlaubt"
-
-#: aarch64-opc.c:2040 aarch64-opc.c:2062 aarch64-opc.c:2280 aarch64-opc.c:2288
-#: aarch64-opc.c:2354 aarch64-opc.c:2383
-msgid "invalid shift operator"
-msgstr "Ungültiger Schiebeoperator"
+#: emultempl/pe.em:451
+#, c-format
+msgid ""
+" --compat-implib Create backward compatible import libs;\n"
+" create __imp_<SYMBOL> as well.\n"
+msgstr ""
+" --compat-implib erstellt abwärtskompatible Importbibliotheken;\n"
+" erstellt __imp_<SYMBOL> ebenfalls.\n"
-#: aarch64-opc.c:2046
-msgid "shift amount must be 0 or 12"
-msgstr "Schiebeanzahl muss 0 oder 12 sein"
+#: emultempl/pe.em:453
+#, c-format
+msgid ""
+" --enable-auto-image-base Automatically choose image base for DLLs\n"
+" unless user specifies one\n"
+msgstr ""
-#: aarch64-opc.c:2069
-msgid "shift amount must be a multiple of 16"
-msgstr "Schiebeanzahl muss ein Vielfaches von 16 sein"
+#: emultempl/pe.em:455
+#, c-format
+msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n"
+msgstr ""
-#: aarch64-opc.c:2081
-msgid "negative immediate value not allowed"
-msgstr "Negativer Direktwert nicht erlaubt"
+#: emultempl/pe.em:456
+#, c-format
+msgid ""
+" --dll-search-prefix=<string> When linking dynamically to a dll without\n"
+" an importlib, use <string><basename>.dll\n"
+" in preference to lib<basename>.dll \n"
+msgstr ""
-#: aarch64-opc.c:2212
-msgid "immediate zero expected"
-msgstr "Direkte Null erwartet"
+#: emultempl/pe.em:459
+#, c-format
+msgid ""
+" --enable-auto-import Do sophisticated linking of _sym to\n"
+" __imp_sym for DATA references\n"
+msgstr ""
-#: aarch64-opc.c:2226
-msgid "rotate expected to be 0, 90, 180 or 270"
-msgstr "Rotation muss 0, 90, 180 oder 270 sein"
+#: emultempl/pe.em:461
+#, c-format
+msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n"
+msgstr " --disable-auto-import importiert nicht automatisch DATA-Objekte aus DLLs\n"
-#: aarch64-opc.c:2236
-msgid "rotate expected to be 90 or 270"
-msgstr "Rotation muss 90 oder 270 sein"
+#: emultempl/pe.em:462
+#, c-format
+msgid ""
+" --enable-runtime-pseudo-reloc Work around auto-import limitations by\n"
+" adding pseudo-relocations resolved at\n"
+" runtime.\n"
+msgstr ""
-#: aarch64-opc.c:2296
-msgid "shift is not permitted"
-msgstr "Schieben ist hier nicht erlaubt"
+#: emultempl/pe.em:465
+#, c-format
+msgid ""
+" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for\n"
+" auto-imported DATA.\n"
+msgstr ""
-#: aarch64-opc.c:2321
-msgid "invalid value for immediate"
-msgstr "Ungültiger Wert für Direktwert"
+#: emultempl/pe.em:467
+#, c-format
+msgid ""
+" --enable-extra-pe-debug Enable verbose debug output when building\n"
+" or linking to DLLs (esp. auto-import)\n"
+msgstr ""
-#: aarch64-opc.c:2346
-msgid "shift amount must be 0 or 16"
-msgstr "Schiebeanzahl muss 0 oder 16 sein"
+#: emultempl/pe.em:470
+#, c-format
+msgid ""
+" --large-address-aware Executable supports virtual addresses\n"
+" greater than 2 gigabytes\n"
+msgstr ""
+" --large-address-aware ausführbare Datei unterstützt virtuelle Adressen\n"
+" größer als 2 Gigabyte\n"
-#: aarch64-opc.c:2367
-msgid "floating-point immediate expected"
-msgstr "Gleitkomma-Direktwert erwartet"
+#: emultempl/pe.em:472
+#, c-format
+msgid ""
+" --enable-long-section-names Use long COFF section names even in\n"
+" executable image files\n"
+msgstr ""
-#: aarch64-opc.c:2401
-msgid "no shift amount allowed for 8-bit constants"
-msgstr "Schieben ist für 8-Bit-Konstanten nicht möglich"
+#: emultempl/pe.em:474
+#, c-format
+msgid ""
+" --disable-long-section-names Never use long COFF section names, even\n"
+" in object files\n"
+msgstr ""
-#: aarch64-opc.c:2411
-msgid "shift amount must be 0 or 8"
-msgstr "Schiebeanzahl muss 0 oder 8 sein"
+#: emultempl/pe.em:476
+#, c-format
+msgid ""
+" --dynamicbase\t\t\t Image base address may be relocated using\n"
+"\t\t\t\t address space layout randomization (ASLR)\n"
+msgstr ""
-#: aarch64-opc.c:2424
-msgid "immediate too big for element size"
-msgstr "Direktwert ist zu groß für Elementgröße"
+#: emultempl/pe.em:478
+#, c-format
+msgid " --forceinteg\t\t Code integrity checks are enforced\n"
+msgstr " --forceinteg\t\t erzwingt Code-Integritätsprüfungen\n"
-#: aarch64-opc.c:2431
-msgid "invalid arithmetic immediate"
-msgstr "Ungültiger Wert für Direktwert"
+#: emultempl/pe.em:479
+#, c-format
+msgid " --nxcompat\t\t Image is compatible with data execution prevention\n"
+msgstr ""
-#: aarch64-opc.c:2445
-msgid "floating-point value must be 0.5 or 1.0"
-msgstr "Gleitkommazahl muss entweder 0.5 oder 1.0 sein"
+#: emultempl/pe.em:480
+#, c-format
+msgid " --no-isolation\t\t Image understands isolation but do not isolate the image\n"
+msgstr ""
-#: aarch64-opc.c:2455
-msgid "floating-point value must be 0.5 or 2.0"
-msgstr "Gleitkommazahl muss entweder 0.5 oder 2.0 sein"
+#: emultempl/pe.em:481
+#, c-format
+msgid ""
+" --no-seh\t\t\t Image does not use SEH. No SE handler may\n"
+"\t\t\t\t be called in this image\n"
+msgstr ""
-#: aarch64-opc.c:2465
-msgid "floating-point value must be 0.0 or 1.0"
-msgstr "Gleitkommazahl muss entweder 0.0 oder 1.0 sein"
+#: emultempl/pe.em:483
+#, c-format
+msgid " --no-bind\t\t\t Do not bind this image\n"
+msgstr ""
-#: aarch64-opc.c:2496
-msgid "invalid replicated MOV immediate"
-msgstr "Ungültiger replizierter Direktwert für MOV"
+#: emultempl/pe.em:484
+#, c-format
+msgid " --wdmdriver\t\t Driver uses the WDM model\n"
+msgstr " --wdmdriver\t\t Treiber nutzt das WDM-Modell\n"
-#: aarch64-opc.c:2614
-msgid "extend operator expected"
-msgstr "Extend-Operator erwartet"
+#: emultempl/pe.em:485
+#, c-format
+msgid " --tsaware Image is Terminal Server aware\n"
+msgstr ""
-#: aarch64-opc.c:2627
-msgid "missing extend operator"
-msgstr "Extend-Operator fehlt"
+#: emultempl/pe.em:614
+msgid "%P: warning: bad version number in -subsystem option\n"
+msgstr "%P: Warnung: falsche Versionsnummer in der Option -subsystem\n"
-#: aarch64-opc.c:2633
-msgid "'LSL' operator not allowed"
-msgstr "LSL-Operator ist hier nicht erlaubt"
+#: emultempl/pe.em:639
+msgid "%P%F: invalid subsystem type %s\n"
+msgstr "%P%F: unzulässiger Subsystem-Typ %s\n"
-#: aarch64-opc.c:2654
-msgid "W register expected"
-msgstr "W-Register erwartet"
+#: emultempl/pe.em:660
+msgid "%P%F: invalid hex number for PE parameter '%s'\n"
+msgstr "%P%F: ungültige Hexadezimalzahl für PE-Parameter »%s«\n"
-#: aarch64-opc.c:2665
-msgid "shift operator expected"
-msgstr "Schiebe-Operator erwartet"
+#: emultempl/pe.em:677
+msgid "%P%F: strange hex info for PE parameter '%s'\n"
+msgstr ""
-#: aarch64-opc.c:2672
-msgid "'ROR' operator not allowed"
-msgstr "ROR-Operator ist hier nicht erlaubt"
+#: emultempl/pe.em:692
+msgid "%F%P: cannot open base file %s\n"
+msgstr "%F%P: Basisdatei %s kann nicht geöffnet werden\n"
-#: aarch64-opc.c:3671
-msgid "reading from a write-only register"
-msgstr "Versuch, ein lesegeschütztes Register auszulesen"
+#: emultempl/pe.em:965
+msgid "%P: warning, file alignment > section alignment.\n"
+msgstr ""
-#: aarch64-opc.c:3673
-msgid "writing to a read-only register"
-msgstr "Versuch, ein schreibgeschütztes Register zu beschreiben"
+#: emultempl/pe.em:978
+msgid "%P: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols?\n"
+msgstr "%P: Warnung: --export-dynamic wird für PE-Ziele nicht unterstützt, meinten Sie --export-all-symbols?\n"
-#: aarch64-opc.c:4815
-msgid "instruction opens new dependency sequence without ending previous one"
-msgstr "Der Befehl beginnt eine neue Abhängigkeitsfolge, ohne die vorherige zu beenden"
+#: emultempl/pe.em:1054 emultempl/pe.em:1081
+#, c-format
+msgid "Warning: resolving %s by linking to %s\n"
+msgstr ""
-#: aarch64-opc.c:4835
-msgid "previous `movprfx' sequence not closed"
-msgstr "Vorherige »movprfx«-Folge nicht beendet"
+#: emultempl/pe.em:1059 emultempl/pe.em:1086
+msgid "Use --enable-stdcall-fixup to disable these warnings\n"
+msgstr "Verwenden Sie --enable-stdcall-fixup, um diese Warnungen zu deaktivieren.\n"
-#: aarch64-opc.c:4852
-msgid "SVE instruction expected after `movprfx'"
-msgstr "SVE-Befehl hinter »movprfx« erwartet"
+#: emultempl/pe.em:1060 emultempl/pe.em:1087
+msgid "Use --disable-stdcall-fixup to disable these fixups\n"
+msgstr ""
-#: aarch64-opc.c:4865
-msgid "SVE `movprfx' compatible instruction expected"
-msgstr "Zu SVE-»movprfx« kompatibler Befehl erwartet"
+#: emultempl/pe.em:1106
+#, c-format
+msgid "%C: Cannot get section contents - auto-import exception\n"
+msgstr ""
-#: aarch64-opc.c:4956
-msgid "predicated instruction expected after `movprfx'"
-msgstr "Bedingter Befehl nach »movprfx« erwartet"
+#: emultempl/pe.em:1146
+#, c-format
+msgid "Info: resolving %s by linking to %s (auto-import)\n"
+msgstr ""
-#: aarch64-opc.c:4968
-msgid "merging predicate expected due to preceding `movprfx'"
-msgstr "Zusammenführende Bedingung erwartet, aufgrund des vorangehenden »movprfx«"
+#: emultempl/pe.em:1153
+msgid ""
+"%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line.\n"
+"This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.\n"
+msgstr ""
-#: aarch64-opc.c:4980
-msgid "predicate register differs from that in preceding `movprfx'"
-msgstr "Bedingungsregister unterscheidet sich von dem im vorangehenden »movprfx«"
+#: emultempl/pe.em:1160 emultempl/pe.em:1366 emultempl/pe.em:1573 ldcref.c:490
+#: ldcref.c:588 ldmain.c:1158 ldmisc.c:290 pe-dll.c:706 pe-dll.c:1254
+#: pe-dll.c:1349
+msgid "%B%F: could not read symbols: %E\n"
+msgstr "%B%F: Symbole können nicht gelesen werden: %E\n"
-#: aarch64-opc.c:4999
-msgid "output register of preceding `movprfx' not used in current instruction"
-msgstr "Ausgaberegister des vorangehenden »movprfx« wird in aktuellem Befehl nicht verwendet"
+#: emultempl/pe.em:1242
+msgid "%F%P: cannot perform PE operations on non PE output file '%B'.\n"
+msgstr ""
-#: aarch64-opc.c:5012
-msgid "output register of preceding `movprfx' expected as output"
-msgstr "Ausgaberegister des vorangehenden »movprfx« auch hier als Ausgabe erwartet"
+#: emultempl/pe.em:1616
+#, c-format
+msgid "Errors encountered processing file %s\n"
+msgstr "Bei der Verarbeitung der Datei %s sind Fehler aufgetreten\n"
-#: aarch64-opc.c:5024
-msgid "output register of preceding `movprfx' used as input"
-msgstr "Ausgaberegister des vorangehenden »movprfx« wird als Eingabe verwendet"
+#: emultempl/pe.em:1639
+#, c-format
+msgid "Errors encountered processing file %s for interworking\n"
+msgstr ""
-#: aarch64-opc.c:5040
-msgid "register size not compatible with previous `movprfx'"
-msgstr "Registergröße nicht mit vorangehendem »movprfx« kompatibel"
+#: emultempl/pe.em:1701 ldexp.c:581 ldlang.c:3458 ldlang.c:6992 ldlang.c:7023
+#: ldmain.c:1103
+msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
+msgstr "%P%F: bfd_link_hash_lookup fehlgeschlagen: %E\n"
-#: alpha-opc.c:154
-msgid "branch operand unaligned"
-msgstr "Sprung-Operand ist nicht ausgerichtet (unaligned)"
+#: ldcref.c:168
+msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n"
+msgstr ""
-#: alpha-opc.c:170 alpha-opc.c:186
-msgid "jump hint unaligned"
-msgstr "Sprunghinweis ist nicht ausgerichtet (unaligned)"
+#: ldcref.c:174
+msgid "%X%P: cref_hash_lookup failed: %E\n"
+msgstr "%X%P: cref_hash_lookup fehlgeschlagen: %E\n"
-#: arc-dis.c:377
-msgid ""
-"\n"
-"Warning: disassembly may be wrong due to guessed opcode class choice.\n"
-"Use -M<class[,class]> to select the correct opcode class(es).\n"
-"\t\t\t\t"
+#: ldcref.c:184
+msgid "%X%P: cref alloc failed: %E\n"
msgstr ""
-"\n"
-"Warnung: Da die Opcode-Klasse geraten ist, ist das Disassemblat\n"
-"möglicherweise falsch. Verwenden Sie -M<Klasse[,Klasse]>, um die\n"
-"korrekten Opcode-Klassen auszuwählen.\n"
-"\t\t\t\t"
-
-#: arc-dis.c:825
-#, c-format
-msgid "unrecognised disassembler CPU option: %s"
-msgstr "Unbekannte Disassembler-CPU-Option: %s"
-#: arc-dis.c:1387
+#: ldcref.c:366
#, c-format
msgid ""
"\n"
-"The following ARC specific disassembler options are supported for use \n"
-"with -M switch (multiple options should be separated by commas):\n"
+"Cross Reference Table\n"
+"\n"
msgstr ""
"\n"
-"Die folgenden ARC-spezifischen Disassembleroptionen werden zusammen\n"
-"mit dem Schalter »-M« unterstützt (mehrere Optionen sollten durch\n"
-"Kommata getrennt werden):\n"
-
-#: arc-dis.c:1399
-#, c-format
-msgid " dsp Recognize DSP instructions.\n"
-msgstr " dsp DSP-Befehle erkennen.\n"
-
-#: arc-dis.c:1401
-#, c-format
-msgid " spfp Recognize FPX SP instructions.\n"
-msgstr " spfp FPX-SP-Befehle erkennen.\n"
+"Querverweistabelle\n"
+"\n"
-#: arc-dis.c:1403
-#, c-format
-msgid " dpfp Recognize FPX DP instructions.\n"
-msgstr " dpfp FPX-DP-Befehle erkennen.\n"
+#: ldcref.c:367
+msgid "Symbol"
+msgstr "Symbol"
-#: arc-dis.c:1405
+#: ldcref.c:375
#, c-format
-msgid " quarkse_em Recognize FPU QuarkSE-EM instructions.\n"
-msgstr " quarkse_em FPU-QuarkSE-EM-Befehle erkennen.\n"
+msgid "File\n"
+msgstr "Datei\n"
-#: arc-dis.c:1407
+#: ldcref.c:379
#, c-format
-msgid " fpuda Recognize double assist FPU instructions.\n"
-msgstr " fpuda Befehle für hilfsweise doppelt genaue FPU erkennen.\n"
+msgid "No symbols\n"
+msgstr "Keine Symbole\n"
-#: arc-dis.c:1409
-#, c-format
-msgid " fpus Recognize single precision FPU instructions.\n"
-msgstr " fpus Befehle für einfach genaue FPU erkennen.\n"
+#: ldcref.c:532
+msgid "%P: symbol `%T' missing from main hash table\n"
+msgstr ""
-#: arc-dis.c:1411
-#, c-format
-msgid " fpud Recognize double precision FPU instructions.\n"
-msgstr " fpud Befehle für doppelt genaue FPU erkennen.\n"
+#: ldcref.c:650 ldcref.c:657 ldmain.c:1192 ldmain.c:1199
+msgid "%B%F: could not read relocs: %E\n"
+msgstr ""
-#: arc-dis.c:1413
-#, c-format
-msgid " hex Use only hexadecimal number to print immediates.\n"
-msgstr " hex Direktwerte ausschließlich hexadezimal ausgeben.\n"
+#. We found a reloc for the symbol. The symbol is defined
+#. in OUTSECNAME. This reloc is from a section which is
+#. mapped into a section from which references to OUTSECNAME
+#. are prohibited. We must report an error.
+#: ldcref.c:684
+msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n"
+msgstr "%X%C: verbotener Querverweis %s auf »%T« in %s\n"
-#: arc-opc.c:41 arc-opc.c:64 arc-opc.c:90
-msgid "LP_COUNT register cannot be used as destination register"
-msgstr "Das LP_COUNT-Register kann nicht als Zielregister verwendet werden"
+#: ldctor.c:85
+msgid "%P%X: Different relocs used in set %s\n"
+msgstr ""
-#: arc-opc.c:88
-msgid "cannot use odd number destination register"
-msgstr "Nummer des Zielregisters muss gerade sein"
+#: ldctor.c:103
+msgid "%P%X: Different object file formats composing set %s\n"
+msgstr "%P%X: Verschiedene Objektdateiformate im Satz %s\n"
-#: arc-opc.c:101
-msgid "cannot use odd number source register"
-msgstr "Nummer des Quellregisters muss gerade sein"
+#: ldctor.c:281 ldctor.c:295
+msgid "%P%X: %s does not support reloc %s for set %s\n"
+msgstr ""
-#: arc-opc.c:114
-msgid "operand is not zero"
-msgstr "Operand ist nicht null"
+#: ldctor.c:316
+msgid "%P%X: Unsupported size %d for set %s\n"
+msgstr "%P%X: Nicht unterstützte Größe %d, um %s zu setzen\n"
-#: arc-opc.c:173
-msgid "register R30 is a limm indicator"
-msgstr "Register R30 ist ein limm-Indikator"
+#: ldctor.c:337
+msgid ""
+"\n"
+"Set Symbol\n"
+"\n"
+msgstr ""
+"\n"
+"Symbol setzen\n"
+"\n"
-#: arc-opc.c:175
-msgid "register out of range"
-msgstr "Register außerhalb des gültigen Bereichs"
+#: ldemul.c:265
+#, c-format
+msgid "%S SYSLIB ignored\n"
+msgstr "%S SYSLIB ignoriert\n"
-#: arc-opc.c:194
-msgid "register must be R0"
-msgstr "Register muss R0 sein"
+#: ldemul.c:271
+#, c-format
+msgid "%S HLL ignored\n"
+msgstr "%S HLL ignoriert\n"
-#: arc-opc.c:212
-msgid "register must be R1"
-msgstr "Register muss R1 sein"
+#: ldemul.c:291
+msgid "%P: unrecognised emulation mode: %s\n"
+msgstr "%P: Nicht erkannter Emulationsmodus: %s\n"
-#: arc-opc.c:229
-msgid "register must be R2"
-msgstr "Register muss R2 sein"
+#: ldemul.c:292
+msgid "Supported emulations: "
+msgstr "Unterstützte Emulationen:"
-#: arc-opc.c:246
-msgid "register must be R3"
-msgstr "Register muss R3 sein"
+#: ldemul.c:334
+#, c-format
+msgid " no emulation specific options.\n"
+msgstr " keine emulationsspezifischen Optionen.\n"
-#: arc-opc.c:263
-msgid "register must be SP"
-msgstr "Register muss SP sein"
+#: ldexp.c:314
+msgid "%P: warning: address of `%s' isn't multiple of maximum page size\n"
+msgstr "%P: Warnung: Adresse von »%s« ist kein Vielfaches der maximalen Seitengröße\n"
-#: arc-opc.c:280
-msgid "register must be GP"
-msgstr "Register muss GP sein"
+#: ldexp.c:407
+#, c-format
+msgid "%F%S %% by zero\n"
+msgstr "%F%S %% durch Null\n"
-#: arc-opc.c:297
-msgid "register must be PCL"
-msgstr "Register muss PCL sein"
+#: ldexp.c:417
+#, c-format
+msgid "%F%S / by zero\n"
+msgstr "%F%S / durch Null\n"
-#: arc-opc.c:314
-msgid "register must be BLINK"
-msgstr "Register muss BLINK sein"
+#: ldexp.c:591
+#, c-format
+msgid "%X%S: unresolvable symbol `%s' referenced in expression\n"
+msgstr "%X%S: nicht auflösbares Symbol »%s« im Ausdruck referenziert\n"
-#: arc-opc.c:331
-msgid "register must be ILINK1"
-msgstr "Register muss ILINK1 sein"
+#: ldexp.c:605
+#, c-format
+msgid "%F%S: undefined symbol `%s' referenced in expression\n"
+msgstr "%F%S: unbekanntes Symbol »%s« im Ausdruck referenziert\n"
-#: arc-opc.c:348
-msgid "register must be ILINK2"
-msgstr "Register muss ILINK2 sein"
+#: ldexp.c:626 ldexp.c:643 ldexp.c:670
+#, c-format
+msgid "%F%S: undefined section `%s' referenced in expression\n"
+msgstr "%F%S: unbekannter Abschnitt »%s« im Ausdruck referenziert\n"
-#. ARC NPS400 Support: See comment near head of file.
-#: arc-opc.c:379 arc-opc.c:417 arc-opc.c:455 arc-opc.c:724
-msgid "register must be either r0-r3 or r12-r15"
-msgstr "Register muss entweder r0-r3 oder r12-r15 sein"
+#: ldexp.c:697 ldexp.c:711
+#, c-format
+msgid "%F%S: undefined MEMORY region `%s' referenced in expression\n"
+msgstr ""
-#: arc-opc.c:506
-msgid "accepted values are from -1 to 6"
-msgstr "Mögliche Werte liegen zwischen -1 und 6"
+#: ldexp.c:722
+#, c-format
+msgid "%F%S: unknown constant `%s' referenced in expression\n"
+msgstr "%F%S: unbekannte Konstante »%s« im Ausdruck referenziert\n"
-#: arc-opc.c:535
-msgid "first register of the range should be r13"
-msgstr "Das erste Register im Bereich sollte r13 sein"
+#: ldexp.c:787
+#, c-format
+msgid "%F%S can not PROVIDE assignment to location counter\n"
+msgstr ""
-#: arc-opc.c:537
-msgid "last register of the range doesn't fit"
-msgstr "Letztes Register des Bereichs passt nicht"
+#: ldexp.c:805
+#, c-format
+msgid "%F%S invalid assignment to location counter\n"
+msgstr ""
-#: arc-opc.c:557 arc-opc.c:572
-msgid "invalid register number, should be fp"
-msgstr "Ungültige Registernummer, sollte Gleitkomma sein"
+#: ldexp.c:808
+#, c-format
+msgid "%F%S assignment to location counter invalid outside of SECTION\n"
+msgstr ""
-#: arc-opc.c:594
-msgid "invalid register number, should be blink"
-msgstr "Ungültige Registernummer, sollte blink sein"
+#: ldexp.c:821
+msgid "%F%S cannot move location counter backwards (from %V to %V)\n"
+msgstr ""
-#: arc-opc.c:616
-msgid "invalid register number, should be pcl"
-msgstr "Ungültige Registernummer, sollte pcl sein"
+#: ldexp.c:882
+msgid "%P%F:%s: hash creation failed\n"
+msgstr "%P%F:%s: Hash-Erzeugung fehlgeschlagen\n"
-#: arc-opc.c:772
-msgid "invalid size, should be 1, 2, 4, or 8"
-msgstr "Ungültige Größe; muss 1, 2, 4 oder 8 sein"
+#: ldexp.c:1191 ldexp.c:1216 ldexp.c:1276
+#, c-format
+msgid "%F%S: nonconstant expression for %s\n"
+msgstr ""
-#: arc-opc.c:817
-msgid "invalid immediate, must be 1, 2, or 4"
-msgstr "Ungültiger Direktwert; muss 1, 2 oder 4 sein"
+#: ldfile.c:142
+#, c-format
+msgid "attempt to open %s failed\n"
+msgstr "Öffnen von %s ist fehlgeschlagen\n"
-#: arc-opc.c:856
-msgid "invalid value for CMEM ld/st immediate"
-msgstr "Ungültiger Wert für Direktwert von CMEM ld/st"
+#: ldfile.c:144
+#, c-format
+msgid "attempt to open %s succeeded\n"
+msgstr "Öffnen von %s war erfolgreich\n"
-#: arc-opc.c:883
-msgid "invalid position, should be 0, 16, 32, 48 or 64."
-msgstr "Ungültige Position; muss 0, 16, 32, 48 oder 64 sein."
+#: ldfile.c:150
+msgid "%F%P: invalid BFD target `%s'\n"
+msgstr "%F%P: unzulässiges BFD-Ziel »%s«\n"
-#: arc-opc.c:917
-msgid "invalid position, should be 16, 32, 64 or 128."
-msgstr "Ungültige Position; muss 16, 32, 64 oder 128 sein."
+#: ldfile.c:267 ldfile.c:296
+msgid "%P: skipping incompatible %s when searching for %s\n"
+msgstr "%P: inkompatibles %s wird bei der Suche nach %s übersprungen\n"
-#: arc-opc.c:939
-msgid "invalid size value must be on range 1-64."
-msgstr "Ungültiger Wert für Größe; muss im Bereich 1-64 sein."
+#: ldfile.c:280
+msgid "%F%P: attempted static link of dynamic object `%s'\n"
+msgstr "%F%P: Versuch, das dynamische Objekt »%s« statisch zu linken\n"
-#: arc-opc.c:970
-msgid "invalid position, should be 0, 8, 16, or 24"
-msgstr "Ungültige Position; muss 0, 8, 16 oder 24 sein"
+#: ldfile.c:426
+msgid "%P: cannot find %s (%s): %E\n"
+msgstr "%P: %s kann nicht gefunden werden (%s): %E\n"
-#: arc-opc.c:995
-msgid "invalid size, value must be "
-msgstr "Ungültige Größe, muss sein: "
+#: ldfile.c:429
+msgid "%P: cannot find %s: %E\n"
+msgstr "%P: %s kann nicht gefunden werden: %E\n"
-#: arc-opc.c:1069
-msgid "value out of range 1 - 256"
-msgstr "Wert muss im Bereich 1-256 liegen"
+#: ldfile.c:464
+msgid "%P: cannot find %s inside %s\n"
+msgstr "%P: %s kann nicht innerhalb von %s gefunden werden\n"
-#: arc-opc.c:1078
-msgid "value must be power of 2"
-msgstr "Wert muss eine Zweierpotenz sein"
+#: ldfile.c:467
+msgid "%P: cannot find %s\n"
+msgstr "%P: %s kann nicht gefunden werden\n"
-#: arc-opc.c:1131
-msgid "value must be in the range 0 to 28"
-msgstr "Wert muss im Bereich von 0 bis 28 liegen"
+#: ldfile.c:486 ldfile.c:504
+#, c-format
+msgid "cannot find script file %s\n"
+msgstr "Skriptdatei %s kann nicht gefunden werden\n"
-#: arc-opc.c:1153
-msgid "value must be in the range 1 to "
-msgstr "ÜBERSETZUNGSPROBLEM: Wert muss im Bereich von 1 bis $$$ liegen"
+#: ldfile.c:488 ldfile.c:506
+#, c-format
+msgid "opened script file %s\n"
+msgstr "Skriptdatei %s wurde geöffnet\n"
-#: arc-opc.c:1183
-msgid "value must be in the range 0 to 240"
-msgstr "Wert muss im Bereich von 0 bis 240 liegen"
+#: ldfile.c:636
+msgid "%P%F: cannot open linker script file %s: %E\n"
+msgstr "%P%F: Linker-Skriptdatei %s kann nicht geöffnet werden: %E\n"
-#: arc-opc.c:1185
-msgid "value must be a multiple of 16"
-msgstr "Wert muss ein Vielfaches von 16 sein"
+#: ldfile.c:701
+msgid "%P%F: cannot represent machine `%s'\n"
+msgstr ""
-#: arc-opc.c:1205
-msgid "invalid address type for operand"
-msgstr "Ungültiger Adresstyp für Operand"
+#: ldlang.c:1221 ldlang.c:1263 ldlang.c:3143
+msgid "%P%F: can not create hash table: %E\n"
+msgstr "%P%F: Hash-Tabelle konnte nicht erzeugt werden: %E\n"
-#: arc-opc.c:1239
-msgid "value must be in the range 0 to 31"
-msgstr "Wert muss im Bereich von 0 bis 31 liegen"
+#: ldlang.c:1314
+msgid "%P:%S: warning: redeclaration of memory region `%s'\n"
+msgstr "%P:%S: Warnung: Neudeklaration des Speicherbereichs »%s«\n"
-#: arc-opc.c:1264
-msgid "invalid position, should be one of: 0,4,8,...124."
-msgstr "Ungültige Position; muss 0, 4, 8, ..., 124 sein."
+#: ldlang.c:1320
+msgid "%P:%S: warning: memory region `%s' not declared\n"
+msgstr "%P:%S: Warnung: Speicherbereich »%s« nicht deklariert\n"
-#: arm-dis.c:3242
-msgid "Select raw register names"
-msgstr "Rohe Registernamen auswählen"
+#: ldlang.c:1354
+msgid "%F%P:%S: error: alias for default memory region\n"
+msgstr ""
-#: arm-dis.c:3244
-msgid "Select register names used by GCC"
-msgstr "Von GCC verwendete Registernamen auswählen"
+#: ldlang.c:1365
+msgid "%F%P:%S: error: redefinition of memory region alias `%s'\n"
+msgstr ""
-#: arm-dis.c:3246
-msgid "Select register names used in ARM's ISA documentation"
-msgstr "Von ARMs ISA-Dokumentation verwendete Registernamen verwenden"
+#: ldlang.c:1372
+msgid "%F%P:%S: error: memory region `%s' for alias `%s' does not exist\n"
+msgstr ""
-#: arm-dis.c:3248
-msgid "Assume all insns are Thumb insns"
-msgstr "Annnehmen, dass alle Befehle Thumb-Befehle sind"
+#: ldlang.c:1424 ldlang.c:1463
+msgid "%P%F: failed creating section `%s': %E\n"
+msgstr ""
-#: arm-dis.c:3249
-msgid "Examine preceding label to determine an insn's type"
-msgstr "Vorangehende Sprungmarke untersuchen, um die Befehlsart festzustellen"
+#: ldlang.c:2025
+#, c-format
+msgid ""
+"\n"
+"Discarded input sections\n"
+"\n"
+msgstr ""
-#: arm-dis.c:3250
-msgid "Select register names used in the APCS"
-msgstr "In APCS verwendete Registernamen auswählen"
+#: ldlang.c:2033
+msgid ""
+"\n"
+"Memory Configuration\n"
+"\n"
+msgstr ""
+"\n"
+"Speicherkonfiguration\n"
+"\n"
-#: arm-dis.c:3252
-msgid "Select register names used in the ATPCS"
-msgstr "In ATPCS verwendete Registernamen auswählen"
+#: ldlang.c:2035
+msgid "Name"
+msgstr "Name"
-#: arm-dis.c:3254
-msgid "Select special register names used in the ATPCS"
-msgstr "Spezielle Registernamen für ATPCS auswählen"
+#: ldlang.c:2035
+msgid "Origin"
+msgstr "Ursprung"
-#: arm-dis.c:3652
-msgid "<illegal precision>"
-msgstr "<ungültige Genauigkeit>"
+#: ldlang.c:2035
+msgid "Length"
+msgstr "Länge"
-#: arm-dis.c:6165
-#, c-format
-msgid "unrecognised register name set: %s"
-msgstr "Unbekannte Registernamensmenge: %s"
+#: ldlang.c:2035
+msgid "Attributes"
+msgstr "Attribute"
-#: arm-dis.c:6906
+#: ldlang.c:2075
#, c-format
msgid ""
"\n"
-"The following ARM specific disassembler options are supported for use with\n"
-"the -M switch:\n"
-msgstr ""
+"Linker script and memory map\n"
"\n"
-"Die folgenden ARM-spezifischen Disassembleroptionen werden in Kombination\n"
-"mit dem Schalter »-M« unterstützt:\n"
+msgstr ""
-#: avr-dis.c:115 avr-dis.c:136
-#, c-format
-msgid "undefined"
-msgstr "undefiniert"
+#: ldlang.c:2141
+msgid "%P%F: Illegal use of `%s' section\n"
+msgstr ""
-#: avr-dis.c:216
-#, c-format
-msgid "internal disassembler error"
-msgstr "internal disassembler error"
+#: ldlang.c:2150
+msgid "%P%F: output format %s cannot represent section called %s\n"
+msgstr ""
-#: avr-dis.c:270
-#, c-format
-msgid "unknown constraint `%c'"
-msgstr "Unbekannte Einschränkung »%c«"
+#: ldlang.c:2728
+msgid "%B: file not recognized: %E\n"
+msgstr "%B: Datei nicht erkannt: %E\n"
-#: cgen-asm.c:351 epiphany-ibld.c:201 fr30-ibld.c:201 frv-ibld.c:201
-#: ip2k-ibld.c:201 iq2000-ibld.c:201 lm32-ibld.c:201 m32c-ibld.c:201
-#: m32r-ibld.c:201 mep-ibld.c:201 mt-ibld.c:201 or1k-ibld.c:201
-#: xc16x-ibld.c:201 xstormy16-ibld.c:201
-#, c-format
-msgid "operand out of range (%ld not between %ld and %ld)"
-msgstr "Operand außerhalb des gültigen Bereichs (%ld ist nicht zwischen %ld und %ld)"
+#: ldlang.c:2729
+msgid "%B: matching formats:"
+msgstr "%B: Passende Formate:"
-#: cgen-asm.c:373
-#, c-format
-msgid "operand out of range (%lu not between %lu and %lu)"
-msgstr "Operand außerhalb des gültigen Bereichs (%lu ist nicht zwischen %lu und %lu)"
+#: ldlang.c:2736
+msgid "%F%B: file not recognized: %E\n"
+msgstr "%F%B: Datei nicht erkannt: %E\n"
-#: d30v-dis.c:229
-#, c-format
-msgid "illegal id (%d)"
-msgstr "Ungültige ID (%d)"
+#: ldlang.c:2810
+msgid "%F%B: member %B in archive is not an object\n"
+msgstr "%F%B: Element %B im Archiv ist kein Objekt\n"
-#: d30v-dis.c:256
-#, c-format
-msgid "<unknown register %d>"
-msgstr "<unbekanntes Register %d>"
-
-# Can't happen.
-#. Can't happen.
-#: dis-buf.c:61
-#, c-format
-msgid "Unknown error %d\n"
-msgstr "Unbekannter Fehler %d\n"
-
-#: dis-buf.c:70
-#, c-format
-msgid "Address 0x%s is out of bounds.\n"
-msgstr "Adresse 0x%s ist außerhalb des gültigen Bereichs.\n"
-
-#: epiphany-asm.c:68
-msgid "register unavailable for short instructions"
-msgstr "Dieses Register steht in kurzen Maschinenbefehlen nicht zur Verfügung"
-
-#: epiphany-asm.c:115
-msgid "register name used as immediate value"
-msgstr "Registername fälschlicherweise als Direktwert benutzt"
-
-#. Don't treat "mov ip,ip" as a move-immediate.
-#: epiphany-asm.c:178 epiphany-asm.c:234
-msgid "register source in immediate move"
-msgstr "Register-Quelle in direktem »mov«"
-
-#: epiphany-asm.c:187
-msgid "byte relocation unsupported"
-msgstr "Byte-Relokation nicht unterstützt"
-
-#. -- assembler routines inserted here.
-#. -- asm.c
-#: epiphany-asm.c:193 frv-asm.c:972 iq2000-asm.c:56 lm32-asm.c:95
-#: lm32-asm.c:127 lm32-asm.c:157 lm32-asm.c:187 lm32-asm.c:217 lm32-asm.c:247
-#: m32c-asm.c:140 m32c-asm.c:235 m32c-asm.c:276 m32c-asm.c:334 m32c-asm.c:355
-#: m32r-asm.c:53 mep-asm.c:241 mep-asm.c:259 mep-asm.c:274 mep-asm.c:289
-#: mep-asm.c:301 or1k-asm.c:54
-msgid "missing `)'"
-msgstr "Fehlende »)«."
+#: ldlang.c:2825 ldlang.c:2839
+msgid "%F%B: could not read symbols: %E\n"
+msgstr "%F%B: Symbole können nicht gelesen werden: %E\n"
-#: epiphany-asm.c:270
-msgid "ABORT: unknown operand"
-msgstr "ABBRUCH: Unbekannter Operand"
+#: ldlang.c:3113
+msgid "%P: warning: could not find any targets that match endianness requirement\n"
+msgstr "%P: Warnung: Es können keine Ziele gefunden werden, die der geforderten Bytereihenfolge entsprechen.\n"
-#: epiphany-asm.c:296
-msgid "Not a pc-relative address."
-msgstr "Das ist keine PC-relative Adresse."
-
-#: epiphany-asm.c:456 fr30-asm.c:311 frv-asm.c:1264 ip2k-asm.c:512
-#: iq2000-asm.c:460 lm32-asm.c:350 m32c-asm.c:1585 m32r-asm.c:329
-#: mep-asm.c:1288 mt-asm.c:596 or1k-asm.c:512 xc16x-asm.c:377
-#: xstormy16-asm.c:277
-#, c-format
-msgid "internal error: unrecognized field %d while parsing"
-msgstr "internal error: unrecognized field %d while parsing"
-
-#: epiphany-asm.c:508 fr30-asm.c:363 frv-asm.c:1316 ip2k-asm.c:564
-#: iq2000-asm.c:512 lm32-asm.c:402 m32c-asm.c:1637 m32r-asm.c:381
-#: mep-asm.c:1340 mt-asm.c:648 or1k-asm.c:564 xc16x-asm.c:429
-#: xstormy16-asm.c:329
-msgid "missing mnemonic in syntax string"
-msgstr "Fehlender Mnemonic im Syntaxstring"
+#: ldlang.c:3127
+msgid "%P%F: target %s not found\n"
+msgstr "%P%F: Ziel %s nicht gefunden\n"
-# We couldn't parse it.
-#. We couldn't parse it.
-#: epiphany-asm.c:643 epiphany-asm.c:647 epiphany-asm.c:736 epiphany-asm.c:843
-#: fr30-asm.c:498 fr30-asm.c:502 fr30-asm.c:591 fr30-asm.c:698 frv-asm.c:1451
-#: frv-asm.c:1455 frv-asm.c:1544 frv-asm.c:1651 ip2k-asm.c:699 ip2k-asm.c:703
-#: ip2k-asm.c:792 ip2k-asm.c:899 iq2000-asm.c:647 iq2000-asm.c:651
-#: iq2000-asm.c:740 iq2000-asm.c:847 lm32-asm.c:537 lm32-asm.c:541
-#: lm32-asm.c:630 lm32-asm.c:737 m32c-asm.c:1772 m32c-asm.c:1776
-#: m32c-asm.c:1865 m32c-asm.c:1972 m32r-asm.c:516 m32r-asm.c:520
-#: m32r-asm.c:609 m32r-asm.c:716 mep-asm.c:1475 mep-asm.c:1479 mep-asm.c:1568
-#: mep-asm.c:1675 mt-asm.c:783 mt-asm.c:787 mt-asm.c:876 mt-asm.c:983
-#: or1k-asm.c:699 or1k-asm.c:703 or1k-asm.c:792 or1k-asm.c:899 xc16x-asm.c:564
-#: xc16x-asm.c:568 xc16x-asm.c:657 xc16x-asm.c:764 xstormy16-asm.c:464
-#: xstormy16-asm.c:468 xstormy16-asm.c:557 xstormy16-asm.c:664
-msgid "unrecognized instruction"
-msgstr "Unbekannter Befehl"
-
-#: epiphany-asm.c:690 fr30-asm.c:545 frv-asm.c:1498 ip2k-asm.c:746
-#: iq2000-asm.c:694 lm32-asm.c:584 m32c-asm.c:1819 m32r-asm.c:563
-#: mep-asm.c:1522 mt-asm.c:830 or1k-asm.c:746 xc16x-asm.c:611
-#: xstormy16-asm.c:511
-#, c-format
-msgid "syntax error (expected char `%c', found `%c')"
-msgstr "Syntaxfehler (erwartetes Zeichen »%c«, gefunden »%c«)"
-
-#: epiphany-asm.c:700 fr30-asm.c:555 frv-asm.c:1508 ip2k-asm.c:756
-#: iq2000-asm.c:704 lm32-asm.c:594 m32c-asm.c:1829 m32r-asm.c:573
-#: mep-asm.c:1532 mt-asm.c:840 or1k-asm.c:756 xc16x-asm.c:621
-#: xstormy16-asm.c:521
-#, c-format
-msgid "syntax error (expected char `%c', found end of instruction)"
-msgstr "Syntaxfehler (Zeichen »%c« erwartet, Befehlsende bekommen)"
-
-#: epiphany-asm.c:730 fr30-asm.c:585 frv-asm.c:1538 ip2k-asm.c:786
-#: iq2000-asm.c:734 lm32-asm.c:624 m32c-asm.c:1859 m32r-asm.c:603
-#: mep-asm.c:1562 mt-asm.c:870 or1k-asm.c:786 xc16x-asm.c:651
-#: xstormy16-asm.c:551
-msgid "junk at end of line"
-msgstr "Müll am Ende der Zeile"
-
-#: epiphany-asm.c:842 fr30-asm.c:697 frv-asm.c:1650 ip2k-asm.c:898
-#: iq2000-asm.c:846 lm32-asm.c:736 m32c-asm.c:1971 m32r-asm.c:715
-#: mep-asm.c:1674 mt-asm.c:982 or1k-asm.c:898 xc16x-asm.c:763
-#: xstormy16-asm.c:663
-msgid "unrecognized form of instruction"
-msgstr "Unbekannte Befehlsform"
-
-#: epiphany-asm.c:856 fr30-asm.c:711 frv-asm.c:1664 ip2k-asm.c:912
-#: iq2000-asm.c:860 lm32-asm.c:750 m32c-asm.c:1985 m32r-asm.c:729
-#: mep-asm.c:1688 mt-asm.c:996 or1k-asm.c:912 xc16x-asm.c:777
-#: xstormy16-asm.c:677
-#, c-format
-msgid "bad instruction `%.50s...'"
-msgstr "Falscher Befehl »%.50s...«"
-
-#: epiphany-asm.c:859 fr30-asm.c:714 frv-asm.c:1667 ip2k-asm.c:915
-#: iq2000-asm.c:863 lm32-asm.c:753 m32c-asm.c:1988 m32r-asm.c:732
-#: mep-asm.c:1691 mt-asm.c:999 or1k-asm.c:915 xc16x-asm.c:780
-#: xstormy16-asm.c:680
-#, c-format
-msgid "bad instruction `%.50s'"
-msgstr "Falscher Befehl »%.50s«"
-
-#: epiphany-desc.c:2109
-#, c-format
-msgid "internal error: epiphany_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
-msgstr "internal error: epiphany_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
-
-#: epiphany-desc.c:2192
-#, c-format
-msgid "internal error: epiphany_cgen_cpu_open: unsupported argument `%d'"
-msgstr "internal error: epiphany_cgen_cpu_open: unsupported argument `%d'"
-
-#: epiphany-desc.c:2211
-#, c-format
-msgid "internal error: epiphany_cgen_cpu_open: no endianness specified"
-msgstr "internal error: epiphany_cgen_cpu_open: no endianness specified"
-
-# Default text to print if an instruction isn't recognized.
-#. Default text to print if an instruction isn't recognized.
-#: epiphany-dis.c:41 fr30-dis.c:41 frv-dis.c:41 ip2k-dis.c:41 iq2000-dis.c:41
-#: lm32-dis.c:41 m32c-dis.c:41 m32r-dis.c:41 mep-dis.c:41 mmix-dis.c:275
-#: mt-dis.c:41 nds32-dis.c:64 or1k-dis.c:41 xc16x-dis.c:41 xstormy16-dis.c:41
-msgid "*unknown*"
-msgstr "*unbekannt*"
-
-#: epiphany-dis.c:279 fr30-dis.c:300 frv-dis.c:397 ip2k-dis.c:289
-#: iq2000-dis.c:190 lm32-dis.c:148 m32c-dis.c:892 m32r-dis.c:280
-#: mep-dis.c:1188 mt-dis.c:291 or1k-dis.c:145 xc16x-dis.c:421
-#: xstormy16-dis.c:169
-#, c-format
-msgid "internal error: unrecognized field %d while printing insn"
-msgstr "internal error: unrecognized field %d while printing insn"
-
-#: epiphany-ibld.c:164 fr30-ibld.c:164 frv-ibld.c:164 ip2k-ibld.c:164
-#: iq2000-ibld.c:164 lm32-ibld.c:164 m32c-ibld.c:164 m32r-ibld.c:164
-#: mep-ibld.c:164 mt-ibld.c:164 or1k-ibld.c:164 xc16x-ibld.c:164
-#: xstormy16-ibld.c:164
-#, c-format
-msgid "operand out of range (%ld not between %ld and %lu)"
-msgstr "Operand außerhalb des gültigen Bereichs (%ld ist nicht zwischen %ld und %lu)"
-
-#: epiphany-ibld.c:185 fr30-ibld.c:185 frv-ibld.c:185 ip2k-ibld.c:185
-#: iq2000-ibld.c:185 lm32-ibld.c:185 m32c-ibld.c:185 m32r-ibld.c:185
-#: mep-ibld.c:185 mt-ibld.c:185 or1k-ibld.c:185 xc16x-ibld.c:185
-#: xstormy16-ibld.c:185
-#, c-format
-msgid "operand out of range (0x%lx not between 0 and 0x%lx)"
-msgstr "Operand außerhalb des gültigen Bereichs (0x%lx ist nicht zwischen 0 und 0x%lx)."
+#: ldlang.c:3129
+msgid "%P%F: cannot open output file %s: %E\n"
+msgstr "%P%F: Ausgabedatei %s kann nicht geöffnet werden: %E\n"
-#: epiphany-ibld.c:880 fr30-ibld.c:735 frv-ibld.c:861 ip2k-ibld.c:612
-#: iq2000-ibld.c:718 lm32-ibld.c:639 m32c-ibld.c:1736 m32r-ibld.c:670
-#: mep-ibld.c:1213 mt-ibld.c:754 or1k-ibld.c:658 xc16x-ibld.c:757
-#: xstormy16-ibld.c:683
-#, c-format
-msgid "internal error: unrecognized field %d while building insn"
-msgstr "internal error: unrecognized field %d while building insn"
+#: ldlang.c:3135
+msgid "%P%F:%s: can not make object file: %E\n"
+msgstr "%P%F:%s: Objektdatei kann nicht erstellt werden: %E\n"
-#: epiphany-ibld.c:1175 fr30-ibld.c:941 frv-ibld.c:1179 ip2k-ibld.c:688
-#: iq2000-ibld.c:894 lm32-ibld.c:744 m32c-ibld.c:2898 m32r-ibld.c:808
-#: mep-ibld.c:1813 mt-ibld.c:975 or1k-ibld.c:772 xc16x-ibld.c:978
-#: xstormy16-ibld.c:830
-#, c-format
-msgid "internal error: unrecognized field %d while decoding insn"
-msgstr "internal error: unrecognized field %d while decoding insn"
+#: ldlang.c:3139
+msgid "%P%F:%s: can not set architecture: %E\n"
+msgstr "%P%F:%s: Architektur kann nicht gesetzt werden: %E\n"
-#: epiphany-ibld.c:1319 fr30-ibld.c:1088 frv-ibld.c:1458 ip2k-ibld.c:763
-#: iq2000-ibld.c:1026 lm32-ibld.c:834 m32c-ibld.c:3516 m32r-ibld.c:922
-#: mep-ibld.c:2284 mt-ibld.c:1176 or1k-ibld.c:859 xc16x-ibld.c:1200
-#: xstormy16-ibld.c:941
-#, c-format
-msgid "internal error: unrecognized field %d while getting int operand"
-msgstr "internal error: unrecognized field %d while getting int operand"
+#: ldlang.c:3309
+msgid "%P: warning: %s contains output sections; did you forget -T?\n"
+msgstr ""
-#: epiphany-ibld.c:1445 fr30-ibld.c:1217 frv-ibld.c:1719 ip2k-ibld.c:820
-#: iq2000-ibld.c:1140 lm32-ibld.c:906 m32c-ibld.c:4116 m32r-ibld.c:1018
-#: mep-ibld.c:2737 mt-ibld.c:1359 or1k-ibld.c:928 xc16x-ibld.c:1404
-#: xstormy16-ibld.c:1034
-#, c-format
-msgid "internal error: unrecognized field %d while getting vma operand"
-msgstr "internal error: unrecognized field %d while getting vma operand"
+#: ldlang.c:3350
+msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n"
+msgstr "%P%F: bfd_hash_lookup schlug beim Erzeugen des Symbols %s fehl\n"
-#: epiphany-ibld.c:1578 fr30-ibld.c:1349 frv-ibld.c:1987 ip2k-ibld.c:880
-#: iq2000-ibld.c:1261 lm32-ibld.c:985 m32c-ibld.c:4704 m32r-ibld.c:1120
-#: mep-ibld.c:3151 mt-ibld.c:1549 or1k-ibld.c:1004 xc16x-ibld.c:1609
-#: xstormy16-ibld.c:1134
+#: ldlang.c:3368
+msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n"
+msgstr "%P%F: bfd_hash_allocate fehlgeschlagen beim Erzeugen des Symbols %s\n"
+
+#: ldlang.c:3764
+msgid "%F%P: %s not found for insert\n"
+msgstr "%F%P: %s zum Einfügen nicht gefunden\n"
+
+#: ldlang.c:3979
+msgid " load address 0x%V"
+msgstr ""
+
+#: ldlang.c:4254
+msgid "%W (size before relaxing)\n"
+msgstr ""
+
+#: ldlang.c:4345
#, c-format
-msgid "internal error: unrecognized field %d while setting int operand"
-msgstr "internal error: unrecognized field %d while setting int operand"
+msgid "Address of section %s set to "
+msgstr "Adresse des Abschnitts %s gesetzt auf "
-#: epiphany-ibld.c:1701 fr30-ibld.c:1471 frv-ibld.c:2245 ip2k-ibld.c:930
-#: iq2000-ibld.c:1372 lm32-ibld.c:1054 m32c-ibld.c:5282 m32r-ibld.c:1212
-#: mep-ibld.c:3555 mt-ibld.c:1729 or1k-ibld.c:1070 xc16x-ibld.c:1804
-#: xstormy16-ibld.c:1224
+#: ldlang.c:4498
#, c-format
-msgid "internal error: unrecognized field %d while setting vma operand"
-msgstr "internal error: unrecognized field %d while setting vma operand"
+msgid "Fail with %d\n"
+msgstr "Fehlschlag mit %d\n"
-#: fr30-asm.c:93 m32c-asm.c:872 m32c-asm.c:879
-msgid "Register number is not valid"
-msgstr "Die Registernummer ist nicht gültig"
+#: ldlang.c:4785
+msgid "%X%P: section %s loaded at [%V,%V] overlaps section %s loaded at [%V,%V]\n"
+msgstr ""
-#: fr30-asm.c:95
-msgid "Register must be between r0 and r7"
-msgstr "Das Register muss zwischen r0 und r7 liegen"
+#: ldlang.c:4801
+msgid "%X%P: region `%s' overflowed by %ld bytes\n"
+msgstr ""
-#: fr30-asm.c:97
-msgid "Register must be between r8 and r15"
-msgstr "Das Register muss zwischen r8 und r15 liegen"
+#: ldlang.c:4824
+msgid "%X%P: address 0x%v of %B section `%s' is not within region `%s'\n"
+msgstr ""
-#: fr30-asm.c:116 m32c-asm.c:910
-msgid "Register list is not valid"
-msgstr "Registerliste ist ungültig"
+#: ldlang.c:4835
+msgid "%X%P: %B section `%s' will not fit in region `%s'\n"
+msgstr ""
-#: fr30-desc.c:1586
+#: ldlang.c:4892
#, c-format
-msgid "internal error: fr30_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
-msgstr "internal error: fr30_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
+msgid "%F%S: non constant or forward reference address expression for section %s\n"
+msgstr ""
-#: fr30-desc.c:1669
-#, c-format
-msgid "internal error: fr30_cgen_cpu_open: unsupported argument `%d'"
-msgstr "internal error: fr30_cgen_cpu_open: unsupported argument `%d'"
+#: ldlang.c:4917
+msgid "%P%X: Internal error on COFF shared library section %s\n"
+msgstr ""
-#: fr30-desc.c:1688
-#, c-format
-msgid "internal error: fr30_cgen_cpu_open: no endianness specified"
-msgstr "internal error: fr30_cgen_cpu_open: no endianness specified"
+#: ldlang.c:4974
+msgid "%P%F: error: no memory region specified for loadable section `%s'\n"
+msgstr ""
-#: frv-asm.c:608
-msgid "missing `]'"
-msgstr "Hier fehlt eine »]«."
+#: ldlang.c:4979
+msgid "%P: warning: no memory region specified for loadable section `%s'\n"
+msgstr ""
-#: frv-asm.c:611 frv-asm.c:621
-msgid "Special purpose register number is out of range"
-msgstr "Nummer des Spezialregisters ist außerhalb des gültigen Bereichs"
+#: ldlang.c:5001
+msgid "%P: warning: changing start of section %s by %lu bytes\n"
+msgstr ""
-#: frv-asm.c:908
-msgid "Value of A operand must be 0 or 1"
-msgstr "Wert des A-Operanden muss entweder 0 oder 1 sein"
+#: ldlang.c:5078
+msgid "%P: warning: dot moved backwards before `%s'\n"
+msgstr ""
-#: frv-asm.c:944
-msgid "register number must be even"
-msgstr "Die Registernummer muss gerade sein"
+#: ldlang.c:5244
+msgid "%P%F: can't relax section: %E\n"
+msgstr ""
-#: frv-desc.c:6326
-#, c-format
-msgid "internal error: frv_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
-msgstr "internal error: frv_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
+#: ldlang.c:5573
+msgid "%F%P: invalid data statement\n"
+msgstr "%F%P: ungültige data-Anweisung\n"
-#: frv-desc.c:6409
-#, c-format
-msgid "internal error: frv_cgen_cpu_open: unsupported argument `%d'"
-msgstr "internal error: frv_cgen_cpu_open: unsupported argument `%d'"
+#: ldlang.c:5606
+msgid "%F%P: invalid reloc statement\n"
+msgstr "%F%P: ungültige reloc-Anweisung\n"
-#: frv-desc.c:6428
-#, c-format
-msgid "internal error: frv_cgen_cpu_open: no endianness specified"
-msgstr "internal error: frv_cgen_cpu_open: no endianness specified"
+#: ldlang.c:5725
+msgid "%P%F: gc-sections requires either an entry or an undefined symbol\n"
+msgstr ""
-#: frv-opc.c:459
-#, c-format
-msgid "internal error: bad vliw->next_slot value"
-msgstr "internal error: bad vliw->next_slot value"
+#: ldlang.c:5750
+msgid "%P%F:%s: can't set start address\n"
+msgstr "%P%F:%s: Startadresse kann nicht gesetzt werden\n"
-#: frv-opc.c:769
-#, c-format
-msgid "internal error: bad major code"
-msgstr "internal error: bad major code"
+#: ldlang.c:5763 ldlang.c:5782
+msgid "%P%F: can't set start address\n"
+msgstr "%P%F: Startadresse kann nicht gesetzt werden\n"
-#: frv-opc.c:819
-#, c-format
-msgid "internal error: bad insn unit"
-msgstr "internal error: bad insn unit"
+#: ldlang.c:5775
+msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
+msgstr ""
-#: h8300-dis.c:63
-#, c-format
-msgid "internal error, h8_disassemble_init"
-msgstr "internal error, h8_disassemble_init"
+#: ldlang.c:5787
+msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
+msgstr ""
-#: h8300-dis.c:314
-#, c-format
-msgid "Hmmmm 0x%x"
-msgstr "Hmmmm 0x%x"
+#: ldlang.c:5842
+msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n"
+msgstr ""
-#: h8300-dis.c:691
-#, c-format
-msgid "Don't understand 0x%x \n"
-msgstr "Ich verstehe »0x%x« nicht.\n"
+#: ldlang.c:5852
+msgid "%P%X: %s architecture of input file `%B' is incompatible with %s output\n"
+msgstr "%P%X: %s-Architektur der Eingabedatei »%B« ist inkompatibel zur Ausgabe %s\n"
-#: i386-dis.c:11058
-msgid "<internal disassembler error>"
-msgstr "<interner Disassemblerfehler>"
+#: ldlang.c:5874
+msgid "%P%X: failed to merge target specific data of file %B\n"
+msgstr "%P%X: zielspezifische Daten der Datei %B können nicht zusammengeführt werden\n"
-#: i386-dis.c:11353
-#, c-format
+#: ldlang.c:5945
+msgid "%P%F: Could not define common symbol `%T': %E\n"
+msgstr ""
+
+#: ldlang.c:5957
msgid ""
"\n"
-"The following i386/x86-64 specific disassembler options are supported for use\n"
-"with the -M switch (multiple options should be separated by commas):\n"
+"Allocating common symbols\n"
msgstr ""
+
+#: ldlang.c:5958
+msgid ""
+"Common symbol size file\n"
"\n"
-"Die folgenden i386/x86-64-spezifischen Disassembleroptionen werden zusammen\n"
-"mit dem Schalter »-M« unterstützt (mehrere Optionen sollten durch\n"
-"Kommata getrennt werden):\n"
+msgstr ""
-#: i386-dis.c:11357
-#, c-format
-msgid " x86-64 Disassemble in 64bit mode\n"
-msgstr " x86-64 Im 64-Bit-Modus disassemblieren\n"
+#: ldlang.c:6104
+msgid "%P%F: invalid syntax in flags\n"
+msgstr "%P%F: ungültige Syntax in Flags\n"
-#: i386-dis.c:11358
-#, c-format
-msgid " i386 Disassemble in 32bit mode\n"
-msgstr " i386 Im 32-Bit-Modus disassemblieren\n"
+#: ldlang.c:6566
+msgid "%P%F: Failed to create hash table\n"
+msgstr "%P%F: Hash-Tabelle konnte nicht erzeugt werden\n"
-#: i386-dis.c:11359
-#, c-format
-msgid " i8086 Disassemble in 16bit mode\n"
-msgstr " i8086 Im 16-Bit-Modus disassemblieren\n"
+#: ldlang.c:6589
+msgid "%P%F: %s: plugin reported error after all symbols read\n"
+msgstr "%P%F: %s: Plugin meldete Fehler nach dem Lesen aller Symbole\n"
-#: i386-dis.c:11360
-#, c-format
-msgid " att Display instruction in AT&T syntax\n"
-msgstr " att Maschinenbefehl in AT&T-syntax anzeigen\n"
+#: ldlang.c:6905
+msgid "%P%F: multiple STARTUP files\n"
+msgstr "%P%F: mehrere STARTUP-Dateien\n"
-#: i386-dis.c:11361
-#, c-format
-msgid " intel Display instruction in Intel syntax\n"
-msgstr " intel Maschinenbefehl in Intel-Syntax anzeigen\n"
+#: ldlang.c:6951
+msgid "%X%P:%S: section has both a load address and a load region\n"
+msgstr ""
-#: i386-dis.c:11362
-#, c-format
-msgid ""
-" att-mnemonic\n"
-" Display instruction in AT&T mnemonic\n"
+#: ldlang.c:7138
+msgid "%X%P:%S: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"
msgstr ""
-" att-mnemonic\n"
-" Maschinenbefehl in AT&T-Mnemonic anzeigen\n"
-#: i386-dis.c:11364
-#, c-format
-msgid ""
-" intel-mnemonic\n"
-" Display instruction in Intel mnemonic\n"
+#: ldlang.c:7210
+msgid "%F%P: no sections assigned to phdrs\n"
msgstr ""
-" intel-mnemonic\n"
-" Maschinenbefehl in Intel-Mnemonic anzeigen\n"
-#: i386-dis.c:11366
-#, c-format
-msgid " addr64 Assume 64bit address size\n"
-msgstr " addr64 64-Bit-Adressgröße annehmen\n"
+#: ldlang.c:7248
+msgid "%F%P: bfd_record_phdr failed: %E\n"
+msgstr "%F%P: bfd_record_phdr fehlgeschlagen: %E\n"
-#: i386-dis.c:11367
-#, c-format
-msgid " addr32 Assume 32bit address size\n"
-msgstr " addr32 32-Bit-Adressgröße annehmen\n"
+#: ldlang.c:7268
+msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
+msgstr ""
-#: i386-dis.c:11368
-#, c-format
-msgid " addr16 Assume 16bit address size\n"
-msgstr " addr16 16-Bit-Adressgröße annehmen\n"
+#: ldlang.c:7677
+msgid "%X%P: unknown language `%s' in version information\n"
+msgstr "%X%P: unbekannte Sprache »%s« in Versionsinformation\n"
-#: i386-dis.c:11369
-#, c-format
-msgid " data32 Assume 32bit data size\n"
-msgstr " data32 32-Bit-Datengröße annehmen\n"
+#: ldlang.c:7822
+msgid "%X%P: anonymous version tag cannot be combined with other version tags\n"
+msgstr ""
-#: i386-dis.c:11370
-#, c-format
-msgid " data16 Assume 16bit data size\n"
-msgstr " data16 16-Bit-Datengröße annehmen\n"
+#: ldlang.c:7831
+msgid "%X%P: duplicate version tag `%s'\n"
+msgstr "%X%P: doppelte Versionskennzeichnung »%s«\n"
-#: i386-dis.c:11371
-#, c-format
-msgid " suffix Always display instruction suffix in AT&T syntax\n"
-msgstr " suffix Maschinenbefehl-Suffix immer in AT&T-Syntax anzeigen\n"
+#: ldlang.c:7852 ldlang.c:7861 ldlang.c:7879 ldlang.c:7889
+msgid "%X%P: duplicate expression `%s' in version information\n"
+msgstr "%X%P: doppelter Ausdruck »%s« in Versionsinformation\n"
-#: i386-dis.c:11372
-#, c-format
-msgid " amd64 Display instruction in AMD64 ISA\n"
-msgstr " amd64 Maschinenbefehl in AMD64-ISA anzeigen\n"
+#: ldlang.c:7929
+msgid "%X%P: unable to find version dependency `%s'\n"
+msgstr ""
-#: i386-dis.c:11373
-#, c-format
-msgid " intel64 Display instruction in Intel64 ISA\n"
-msgstr " intel64 Maschinenbefehl in Intel64-ISA anzeigen\n"
+#: ldlang.c:7952
+msgid "%X%P: unable to read .exports section contents\n"
+msgstr ""
-#: i386-dis.c:11936
-msgid "64-bit address is disabled"
-msgstr "64-Bit-Adresse ist deaktiviert"
+#: ldlang.c:8076
+msgid "%X%P: unknown feature `%s'\n"
+msgstr "%X%P: unbekanntes Funktionsmerkmal »%s«\n"
-#: i386-gen.c:732
-#, c-format
-msgid "%s: error: "
-msgstr "%s: Fehler: "
+#: ldmain.c:239
+msgid "%X%P: can't set BFD default target to `%s': %E\n"
+msgstr "%X%P: BFD-Standardziel kann nicht auf »%s« gesetzt werden: %E\n"
-#: i386-gen.c:911
-#, c-format
-msgid "%s: %d: unknown bitfield: %s\n"
-msgstr "%s: %d: Unbekanntes Bitfeld: %s\n"
+#: ldmain.c:303 lexsup.c:1071
+msgid "%P%F: %s: error loading plugin\n"
+msgstr "%P%F: %s: Fehler beim Laden des Plugins\n"
-#: i386-gen.c:913
-#, c-format
-msgid "unknown bitfield: %s\n"
-msgstr "Unbekanntes Bitfeld: %s\n"
+#: ldmain.c:340
+msgid "using external linker script:"
+msgstr "Externes Linker-Skript wird verwendet:"
-#: i386-gen.c:976
-#, c-format
-msgid "%s: %d: missing `)' in bitfield: %s\n"
-msgstr "%s: %d: Hier fehlt eine »)« im Bitfeld: %s\n"
+#: ldmain.c:342
+msgid "using internal linker script:"
+msgstr "Internes Linker-Skript wird verwendet:"
-#: i386-gen.c:1077
-#, c-format
-msgid "unknown broadcast operand: %s\n"
-msgstr "Unbekannter Broadcast-Operand: %s\n"
+#: ldmain.c:379
+msgid "%P%F: no input files\n"
+msgstr "%P%F: keine Eingabedateien\n"
-#: i386-gen.c:1478
-#, c-format
-msgid "can't find i386-reg.tbl for reading, errno = %s\n"
-msgstr "Kann »i386-reg.tbl« nicht zum Lesen finden, errno = %s\n"
+#: ldmain.c:383
+msgid "%P: mode %s\n"
+msgstr "%P: Modus %s\n"
-#: i386-gen.c:1556
-#, c-format
-msgid "can't create i386-init.h, errno = %s\n"
-msgstr "Kann i386-init.h nicht anlegen, errno = %s\n"
+#: ldmain.c:399
+msgid "%P%F: cannot open map file %s: %E\n"
+msgstr ""
-#: i386-gen.c:1646 ia64-gen.c:2829
-#, c-format
-msgid "unable to change directory to \"%s\", errno = %s\n"
-msgstr "Kann nicht in das Verzeichnis »%s« wechseln, errno = %s\n"
+#: ldmain.c:431
+msgid "%P: link errors found, deleting executable `%s'\n"
+msgstr ""
-#: i386-gen.c:1658 i386-gen.c:1661
-#, c-format
-msgid "CpuMax != %d!\n"
-msgstr "CpuMax != %d\n"
+#: ldmain.c:440
+msgid "%F%B: final close failed: %E\n"
+msgstr "%F%B: finales Schließen fehlgeschlagen: %E\n"
-#: i386-gen.c:1665
-#, c-format
-msgid "%d unused bits in i386_cpu_flags.\n"
-msgstr "%d ungenutzte Bits in i386_cpu_flags.\n"
+#: ldmain.c:466
+msgid "%X%P: unable to open for source of copy `%s'\n"
+msgstr "%X%P: kann nicht als Quelle der Kopie »%s« geöffnet werden\n"
-#: i386-gen.c:1672
-#, c-format
-msgid "%d unused bits in i386_operand_type.\n"
-msgstr "%d ungenutzte Bits in i386_operand_type.\n"
+#: ldmain.c:469
+msgid "%X%P: unable to open for destination of copy `%s'\n"
+msgstr "%X%P: kann nicht als Ziel der Kopie »%s« geöffnet werden\n"
-#: i386-gen.c:1686
-#, c-format
-msgid "can't create i386-tbl.h, errno = %s\n"
-msgstr "Kann i386-tbl.h nicht anlegen, errno = %s\n"
+#: ldmain.c:476
+msgid "%P: Error writing file `%s'\n"
+msgstr "%P: Fehler beim Schreiben der Datei »%s«\n"
-#: ia64-gen.c:306
+#: ldmain.c:481 pe-dll.c:1739
#, c-format
-msgid "%s: Error: "
-msgstr "%s: Fehler: "
+msgid "%P: Error closing file `%s'\n"
+msgstr "%P: Fehler beim Schließen der Datei »%s«\n"
-#: ia64-gen.c:319
+#: ldmain.c:498
#, c-format
-msgid "%s: Warning: "
-msgstr "%s: Warnung: "
+msgid "%s: total time in link: %ld.%06ld\n"
+msgstr ""
-#: ia64-gen.c:505 ia64-gen.c:736
+#: ldmain.c:501
#, c-format
-msgid "multiple note %s not handled\n"
-msgstr "Mehrfache Bemerkung »%s« nicht verarbeitet.\n"
+msgid "%s: data size %ld\n"
+msgstr "%s: Datengröße %ld\n"
-#: ia64-gen.c:616
-msgid "can't find ia64-ic.tbl for reading\n"
-msgstr "Kann »ia64-ic.tbl« nicht zum Lesen finden\n"
+#: ldmain.c:585
+msgid "%P%F: missing argument to -m\n"
+msgstr "%P%F: Argument zu -m fehlt\n"
-#: ia64-gen.c:818
-#, c-format
-msgid "can't find %s for reading\n"
-msgstr "Kann »%s« nicht zum Lesen finden\n"
+#: ldmain.c:633 ldmain.c:653 ldmain.c:685
+msgid "%P%F: bfd_hash_table_init failed: %E\n"
+msgstr "%P%F: bfd_hash_table_init fehlgeschlagen: %E\n"
-#: ia64-gen.c:1050
-#, c-format
-msgid ""
-"most recent format '%s'\n"
-"appears more restrictive than '%s'\n"
-msgstr "Das letzte Format »%s« scheint strenger zu sein als »%s«.\n"
+#: ldmain.c:637 ldmain.c:657
+msgid "%P%F: bfd_hash_lookup failed: %E\n"
+msgstr "%P%F: bfd_hash_lookup fehlgeschlagen: %E\n"
-#: ia64-gen.c:1061
-#, c-format
-msgid "overlapping field %s->%s\n"
-msgstr "Überlappendes Feld »%s->%s«.\n"
+#: ldmain.c:671
+msgid "%X%P: error: duplicate retain-symbols-file\n"
+msgstr ""
-#: ia64-gen.c:1258
-#, c-format
-msgid "overwriting note %d with note %d (IC:%s)\n"
-msgstr "Überschreibe Bemerkung %d mit Bemerkung %d (IC:%s)\n"
+#: ldmain.c:715
+msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
+msgstr "%P%F: bfd_hash_lookup zum Einfügen fehlgeschlagen: %E\n"
-#: ia64-gen.c:1465
-#, c-format
-msgid "don't know how to specify %% dependency %s\n"
-msgstr "Keine Ahnung, wie ich die Abhängigkeit »%% %s« angeben soll.\n"
+#: ldmain.c:720
+msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
+msgstr "%P: »-retain-symbols-file« setzt »-s« und »-S« außer Kraft\n"
-#: ia64-gen.c:1487
+#: ldmain.c:820
#, c-format
-msgid "Don't know how to specify # dependency %s\n"
-msgstr "Keine Ahnung, wie ich die Abhängigkeit »# %s« angeben soll.\n"
+msgid ""
+"Archive member included because of file (symbol)\n"
+"\n"
+msgstr ""
-#: ia64-gen.c:1526
-#, c-format
-msgid "IC:%s [%s] has no terminals or sub-classes\n"
-msgstr "IC:%s [%s] hat weder Terminale noch Unterklassen\n"
+#: ldmain.c:926
+msgid "%X%C: multiple definition of `%T'\n"
+msgstr "%X%C: Mehrfachdefinition von »%T«\n"
-#: ia64-gen.c:1529
-#, c-format
-msgid "IC:%s has no terminals or sub-classes\n"
-msgstr "IC:%s hat weder Terminale noch Unterklassen\n"
+#: ldmain.c:929
+msgid "%D: first defined here\n"
+msgstr "%D: hier zuerst definiert\n"
-#: ia64-gen.c:1538
-#, c-format
-msgid "no insns mapped directly to terminal IC %s [%s]"
-msgstr "Kein Befehl ist dem Terminal-IC »%s [%s]« direkt zugeordnet"
+#: ldmain.c:933
+msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
+msgstr ""
-#: ia64-gen.c:1541
-#, c-format
-msgid "no insns mapped directly to terminal IC %s\n"
-msgstr "Kein Befehl ist dem Terminal-IC »%s« direkt zugeordnet.\n"
+#: ldmain.c:987
+msgid "%B: warning: definition of `%T' overriding common\n"
+msgstr ""
-#: ia64-gen.c:1552
-#, c-format
-msgid "class %s is defined but not used\n"
-msgstr "Die Klasse »%s« wurde definiert, aber nicht benutzt.\n"
+#: ldmain.c:990
+msgid "%B: warning: common is here\n"
+msgstr ""
-#: ia64-gen.c:1565
-#, c-format
-msgid "Warning: rsrc %s (%s) has no chks\n"
-msgstr "Warnung: Die Ressource »%s (%s)« hat keine »chks«.\n"
+#: ldmain.c:997
+msgid "%B: warning: common of `%T' overridden by definition\n"
+msgstr ""
-#: ia64-gen.c:1568
-#, c-format
-msgid "Warning: rsrc %s (%s) has no chks or regs\n"
-msgstr "Warnung: Die Ressource »%s (%s)« hat keine »chks« oder Register.\n"
+#: ldmain.c:1000
+msgid "%B: warning: defined here\n"
+msgstr ""
-#: ia64-gen.c:1572
-#, c-format
-msgid "rsrc %s (%s) has no regs\n"
-msgstr "Die Ressource »%s (%s)« hat keine Register\n"
+#: ldmain.c:1007
+msgid "%B: warning: common of `%T' overridden by larger common\n"
+msgstr ""
-#: ia64-gen.c:2464
-#, c-format
-msgid "IC note %d in opcode %s (IC:%s) conflicts with resource %s note %d\n"
-msgstr "IC Bemerkung %d in Opcode »%s (IC:%s)« verträgt sich nicht mit Ressource %s Bemerkung %d.\n"
+#: ldmain.c:1010
+msgid "%B: warning: larger common is here\n"
+msgstr ""
-#: ia64-gen.c:2492
-#, c-format
-msgid "IC note %d for opcode %s (IC:%s) conflicts with resource %s note %d\n"
-msgstr "IC Bemerkung %d für Opcode »%s (IC:%s)« verträgt sich nicht mit Ressource %s Bemerkung %d.\n"
+#: ldmain.c:1014
+msgid "%B: warning: common of `%T' overriding smaller common\n"
+msgstr ""
-#: ia64-gen.c:2506
-#, c-format
-msgid "opcode %s has no class (ops %d %d %d)\n"
-msgstr "Opcode %s hat keine Klasse (Operanden %d %d %d)\n"
+#: ldmain.c:1017
+msgid "%B: warning: smaller common is here\n"
+msgstr ""
-# We've been passed a w. Return with an error message so that
-# cgen will try the next parsing option.
-#. We've been passed a w. Return with an error message so that
-#. cgen will try the next parsing option.
-#: ip2k-asm.c:81
-msgid "W keyword invalid in FR operand slot."
-msgstr "Schlüsselwort »W« ist im Operandenplatz »FR« ungültig."
+#: ldmain.c:1021
+msgid "%B: warning: multiple common of `%T'\n"
+msgstr ""
-# Invalid offset present.
-#. Invalid offset present.
-#: ip2k-asm.c:106
-msgid "offset(IP) is not a valid form"
-msgstr "»offset(IP)« ist keine gültige Form"
+#: ldmain.c:1023
+msgid "%B: warning: previous common is here\n"
+msgstr ""
-# Found something there in front of (DP) but it's out
-# of range.
-#. Found something there in front of (DP) but it's out
-#. of range.
-#: ip2k-asm.c:154
-msgid "(DP) offset out of range."
-msgstr "(DP) Offset außerhalb des gültigen Bereichs."
+#: ldmain.c:1043 ldmain.c:1081
+msgid "%P: warning: global constructor %s used\n"
+msgstr ""
-# Found something there in front of (SP) but it's out
-# of range.
-#. Found something there in front of (SP) but it's out
-#. of range.
-#: ip2k-asm.c:195
-msgid "(SP) offset out of range."
-msgstr "(SP) Offset außerhalb des gültigen Bereichs."
+#: ldmain.c:1091
+msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
+msgstr "%P%F: Fehler im BFD-Backend: BFD_RELOC_CTOR wird nicht unterstützt\n"
-#: ip2k-asm.c:211
-msgid "illegal use of parentheses"
-msgstr "Unerlaubte Benutzung von Klammern"
+#. We found a reloc for the symbol we are looking for.
+#: ldmain.c:1145 ldmain.c:1147 ldmain.c:1149 ldmain.c:1167 ldmain.c:1212
+msgid "warning: "
+msgstr "Warnung:"
-#: ip2k-asm.c:218
-msgid "operand out of range (not between 1 and 255)"
-msgstr "Operand außerhalb des gültigen Bereichs (1 bis 255)"
+#: ldmain.c:1248
+msgid "%F%P: bfd_hash_table_init failed: %E\n"
+msgstr "%F%P: bfd_hash_table_init fehlgeschlagen: %E\n"
-# Something is very wrong. opindex has to be one of the above.
-#. Something is very wrong. opindex has to be one of the above.
-#: ip2k-asm.c:242
-msgid "parse_addr16: invalid opindex."
-msgstr "parse_addr16: Ungültiger Operatorindex."
+#: ldmain.c:1255
+msgid "%F%P: bfd_hash_lookup failed: %E\n"
+msgstr "%F%P: bfd_hash_lookup fehlgeschlagen: %E\n"
-#: ip2k-asm.c:296
-msgid "Byte address required. - must be even."
-msgstr "Byteadresse benötigt -- muss gerade sein."
+#: ldmain.c:1276
+msgid "%X%C: undefined reference to `%T'\n"
+msgstr "%X%C: Warnung: undefinierter Verweis auf »%T«\n"
-#: ip2k-asm.c:305
-msgid "cgen_parse_address returned a symbol. Literal required."
-msgstr "cgen_parse_address hat Symbol zurückgegeben, muss jedoch ein Literal sein."
+#: ldmain.c:1279
+msgid "%C: warning: undefined reference to `%T'\n"
+msgstr "%C: Warnung: undefinierter Verweis auf »%T«\n"
-#: ip2k-asm.c:360
-msgid "percent-operator operand is not a symbol"
-msgstr "Der Prozent-Operator ist kein Symbol"
+#: ldmain.c:1285
+msgid "%X%D: more undefined references to `%T' follow\n"
+msgstr "%X%D: Warnung: weitere undefinierte Verweise auf »%T« folgen\n"
-#: ip2k-asm.c:413
-msgid "Attempt to find bit index of 0"
-msgstr "Versuch, ein gesetztes Bit von 0 zu bestimmen"
+#: ldmain.c:1288
+msgid "%D: warning: more undefined references to `%T' follow\n"
+msgstr "%D: Warnung: weitere undefinierte Verweise auf »%T« folgen\n"
-#: ip2k-desc.c:1015
-#, c-format
-msgid "internal error: ip2k_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
-msgstr "internal error: ip2k_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
+#: ldmain.c:1299
+msgid "%X%B: undefined reference to `%T'\n"
+msgstr "%X%B: Warnung: undefinierter Verweis auf »%T«\n"
-#: ip2k-desc.c:1098
-#, c-format
-msgid "internal error: ip2k_cgen_cpu_open: unsupported argument `%d'"
-msgstr "internal error: ip2k_cgen_cpu_open: unsupported argument `%d'"
+#: ldmain.c:1302
+msgid "%B: warning: undefined reference to `%T'\n"
+msgstr "%B: Warnung: undefinierter Verweis auf »%T«\n"
-#: ip2k-desc.c:1117
-#, c-format
-msgid "internal error: ip2k_cgen_cpu_open: no endianness specified"
-msgstr "internal error: ip2k_cgen_cpu_open: no endianness specified"
+#: ldmain.c:1308
+msgid "%X%B: more undefined references to `%T' follow\n"
+msgstr "%X%B: Warnung: weitere undefinierte Verweise auf »%T« folgen\n"
+
+#: ldmain.c:1311
+msgid "%B: warning: more undefined references to `%T' follow\n"
+msgstr "%B: Warnung: weitere undefinierte Verweise auf »%T« folgen\n"
+
+#: ldmain.c:1350
+msgid " additional relocation overflows omitted from the output\n"
+msgstr ""
-#: iq2000-asm.c:112 iq2000-asm.c:142
-msgid "immediate value cannot be register"
-msgstr "Ein Direktoperand kann kein Register sein"
+#: ldmain.c:1363
+msgid " relocation truncated to fit: %s against undefined symbol `%T'"
+msgstr ""
-#: iq2000-asm.c:123 iq2000-asm.c:153 lm32-asm.c:70
-msgid "immediate value out of range"
-msgstr "Direktoperand außerhalb des gültigen Bereichs"
+#: ldmain.c:1368
+msgid " relocation truncated to fit: %s against symbol `%T' defined in %A section in %B"
+msgstr ""
-#: iq2000-asm.c:182
-msgid "21-bit offset out of range"
-msgstr "21-Bit-Offset außerhalb des gültigen Bereichs"
+#: ldmain.c:1380
+msgid " relocation truncated to fit: %s against `%T'"
+msgstr ""
-#: iq2000-desc.c:2020
-#, c-format
-msgid "internal error: iq2000_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
-msgstr "internal error: iq2000_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
+#: ldmain.c:1397
+msgid "%X%H: dangerous relocation: %s\n"
+msgstr ""
-#: iq2000-desc.c:2103
-#, c-format
-msgid "internal error: iq2000_cgen_cpu_open: unsupported argument `%d'"
-msgstr "internal error: iq2000_cgen_cpu_open: unsupported argument `%d'"
+#: ldmain.c:1412
+msgid "%X%H: reloc refers to symbol `%T' which is not being output\n"
+msgstr ""
-#: iq2000-desc.c:2122
+#: ldmisc.c:151
#, c-format
-msgid "internal error: iq2000_cgen_cpu_open: no endianness specified"
-msgstr "internal error: iq2000_cgen_cpu_open: no endianness specified"
+msgid "no symbol"
+msgstr "kein Symbol"
-#: lm32-asm.c:166
-msgid "expecting gp relative address: gp(symbol)"
-msgstr "Adresse relativ zu gp erwartet: gp(Symbol)"
+#: ldmisc.c:248
+#, c-format
+msgid "built in linker script:%u"
+msgstr ""
-#: lm32-asm.c:196
-msgid "expecting got relative address: got(symbol)"
-msgstr "Adresse relativ zu got erwartet: got(Symbol)"
+#: ldmisc.c:329
+msgid "%B: In function `%T':\n"
+msgstr "%B: In Funktion »%T«:\n"
-#: lm32-asm.c:226
-msgid "expecting got relative address: gotoffhi16(symbol)"
-msgstr "Adresse relativ zu got erwartet: gotoffhi16(Symbol)"
+#: ldmisc.c:464
+msgid "%F%P: internal error %s %d\n"
+msgstr "%F%P: interner Fehler %s %d\n"
-#: lm32-asm.c:256
-msgid "expecting got relative address: gotofflo16(symbol)"
-msgstr "Adresse relativ zu got erwartet: gotofflo16(Symbol)"
+#: ldmisc.c:513
+msgid "%P: internal error: aborting at %s line %d in %s\n"
+msgstr "%P: interner Fehler: Abbruch bei %s Zeile %d in %s\n"
-#: lm32-desc.c:1002
-#, c-format
-msgid "internal error: lm32_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
-msgstr "internal error: lm32_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
+#: ldmisc.c:516
+msgid "%P: internal error: aborting at %s line %d\n"
+msgstr "%P: interner Fehler: Abbruch bei %s Zeile %d\n"
-#: lm32-desc.c:1085
-#, c-format
-msgid "internal error: lm32_cgen_cpu_open: unsupported argument `%d'"
-msgstr "internal error: lm32_cgen_cpu_open: unsupported argument `%d'"
+#: ldmisc.c:518
+msgid "%P%F: please report this bug\n"
+msgstr "%P%F: Bitte melden Sie diesen Fehler\n"
-#: lm32-desc.c:1104
+#. Output for noisy == 2 is intended to follow the GNU standards.
+#: ldver.c:39
#, c-format
-msgid "internal error: lm32_cgen_cpu_open: no endianness specified"
-msgstr "internal error: lm32_cgen_cpu_open: no endianness specified"
+msgid "GNU ld %s\n"
+msgstr "GNU ld %s\n"
-#: m10200-dis.c:157 m10300-dis.c:580
+#: ldver.c:43
#, c-format
-msgid "unknown\t0x%04lx"
-msgstr "unbekannt\t0x%04lx"
+msgid "Copyright 2011 Free Software Foundation, Inc.\n"
+msgstr "Copyright 2011 Free Software Foundation, Inc.\n"
-#: m10200-dis.c:327
+#: ldver.c:44
#, c-format
-msgid "unknown\t0x%02lx"
-msgstr "unbekannt\t0x%02lx"
-
-#: m32c-asm.c:117
-msgid "imm:6 immediate is out of range"
-msgstr "Direktwert imm:6 liegt außerhalb des gültigen Bereichs"
+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 ""
+"Dieses Programm ist freie Software: Sie können es unter den Bedingungen der\n"
+"GNU General Public License weitergeben, entweder in Version 3 oder (nach Ihrer Wahl)\n"
+"jeder neueren Version.\n"
+"Dieses Programm wird ohne jegliche Gewährleistung geliefert.\n"
-#: m32c-asm.c:145
+#: ldver.c:54
#, c-format
-msgid "%dsp8() takes a symbolic address, not a number"
-msgstr "%dsp8() hat als Parameter eine symbolische Adresse, keine Zahl"
+msgid " Supported emulations:\n"
+msgstr " Unterstützte Emulationen:\n"
-#: m32c-asm.c:159 m32c-asm.c:163 m32c-asm.c:253
-msgid "dsp:8 immediate is out of range"
-msgstr "Direktwert dsp:6 liegt außerhalb des gültigen Bereichs"
+#: ldwrite.c:62 ldwrite.c:207
+msgid "%P%F: bfd_new_link_order failed\n"
+msgstr "%P%F: bfd_new_link_order fehlgeschlagen\n"
-#: m32c-asm.c:184 m32c-asm.c:188
-msgid "Immediate is out of range -8 to 7"
-msgstr "Direktwert liegt außerhalb des gültigen Bereichs -8 bis 7"
+#: ldwrite.c:365
+msgid "%F%P: cannot create split section name for %s\n"
+msgstr ""
-#: m32c-asm.c:209 m32c-asm.c:213
-msgid "Immediate is out of range -7 to 8"
-msgstr "Direktwert liegt außerhalb des gültigen Bereichs -7 bis 8"
+#: ldwrite.c:377
+msgid "%F%P: clone section failed: %E\n"
+msgstr ""
-#: m32c-asm.c:281
+#: ldwrite.c:418
#, c-format
-msgid "%dsp16() takes a symbolic address, not a number"
-msgstr "%dsp16() hat als Parameter eine symbolische Adresse, keine Zahl"
+msgid "%8x something else\n"
+msgstr ""
-#: m32c-asm.c:305 m32c-asm.c:312 m32c-asm.c:373
-msgid "dsp:16 immediate is out of range"
-msgstr "Direktwert dsp:16 liegt außerhalb des gültigen Bereichs"
+#: ldwrite.c:588
+msgid "%F%P: final link failed: %E\n"
+msgstr ""
-#: m32c-asm.c:399
-msgid "dsp:20 immediate is out of range"
-msgstr "Direktwert dsp:20 liegt außerhalb des gültigen Bereichs"
+#: lexsup.c:220 lexsup.c:374
+msgid "KEYWORD"
+msgstr "SCHLÜSSELWORT"
-#: m32c-asm.c:425 m32c-asm.c:445
-msgid "dsp:24 immediate is out of range"
-msgstr "Direktwert dsp:24 liegt außerhalb des gültigen Bereichs"
+#: lexsup.c:220
+msgid "Shared library control for HP/UX compatibility"
+msgstr "Steuerung gemeinsam genutzter Bibliotheken für HP/UX-Kompatibilität"
-#: m32c-asm.c:478
-msgid "immediate is out of range 1-2"
-msgstr "Direktwert liegt außerhalb des gültigen Bereichs 1 bis 2"
+#: lexsup.c:223
+msgid "ARCH"
+msgstr "ARCH"
-#: m32c-asm.c:496
-msgid "immediate is out of range 1-8"
-msgstr "Direktwert liegt außerhalb des gültigen Bereichs 1 bis 8"
+#: lexsup.c:223
+msgid "Set architecture"
+msgstr "Architektur festlegen"
-#: m32c-asm.c:514
-msgid "immediate is out of range 0-7"
-msgstr "Direktwert liegt außerhalb des gültigen Bereichs 0 bis 7"
+#: lexsup.c:225 lexsup.c:493
+msgid "TARGET"
+msgstr "ZIEL"
-#: m32c-asm.c:550
-msgid "immediate is out of range 2-9"
-msgstr "Direktwert liegt außerhalb des gültigen Bereichs 2 bis 9"
+#: lexsup.c:225
+msgid "Specify target for following input files"
+msgstr "Ziel für die folgenden Eingabedateien festlegen"
-#: m32c-asm.c:568
-msgid "Bit number for indexing general register is out of range 0-15"
-msgstr "Die Bitnummer, um das allgemeine Register zu indizieren, ist außerhalb des gültigen Bereichs 0-15"
+#: lexsup.c:228 lexsup.c:279 lexsup.c:303 lexsup.c:316 lexsup.c:318
+#: lexsup.c:447 lexsup.c:509 lexsup.c:572 lexsup.c:585
+msgid "FILE"
+msgstr "DATEI"
-#: m32c-asm.c:606 m32c-asm.c:662
-msgid "bit,base is out of range"
-msgstr "Bit,Basis liegt außerhalb des gültigen Bereichs"
+#: lexsup.c:228
+msgid "Read MRI format linker script"
+msgstr ""
-#: m32c-asm.c:613 m32c-asm.c:618 m32c-asm.c:666
-msgid "bit,base out of range for symbol"
-msgstr "Bit,Basis liegt außerhalb des gültigen Bereichs für Symbol"
+#: lexsup.c:230
+msgid "Force common symbols to be defined"
+msgstr ""
-#: m32c-asm.c:802
-msgid "not a valid r0l/r0h pair"
-msgstr "Kein gültiges r0l/r0h-Paar"
+#: lexsup.c:234 lexsup.c:553 lexsup.c:555 lexsup.c:557 lexsup.c:559
+msgid "ADDRESS"
+msgstr "ADRESSE"
-#: m32c-asm.c:832
-msgid "Invalid size specifier"
-msgstr "Ungültige Größenangabe"
+#: lexsup.c:234
+msgid "Set start address"
+msgstr "Startadresse festlegen"
-#: m32c-desc.c:63033
-#, c-format
-msgid "internal error: m32c_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
-msgstr "internal error: m32c_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
+#: lexsup.c:236
+msgid "Export all dynamic symbols"
+msgstr "Alle dynamischen Symbole exportieren"
-#: m32c-desc.c:63116
-#, c-format
-msgid "internal error: m32c_cgen_cpu_open: unsupported argument `%d'"
-msgstr "internal error: m32c_cgen_cpu_open: unsupported argument `%d'"
+#: lexsup.c:238
+msgid "Undo the effect of --export-dynamic"
+msgstr "Den Effekt von --export-dynamic rückgängig machen"
-#: m32c-desc.c:63135
-#, c-format
-msgid "internal error: m32c_cgen_cpu_open: no endianness specified"
-msgstr "internal error: m32c_cgen_cpu_open: no endianness specified"
+#: lexsup.c:240
+msgid "Link big-endian objects"
+msgstr "Big-Endian-Objekte verlinken"
-#: m32r-desc.c:1365
-#, c-format
-msgid "internal error: m32r_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
-msgstr "internal error: m32r_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
+#: lexsup.c:242
+msgid "Link little-endian objects"
+msgstr "Little-Endian-Objekte verlinken"
-#: m32r-desc.c:1448
-#, c-format
-msgid "internal error: m32r_cgen_cpu_open: unsupported argument `%d'"
-msgstr "internal error: m32r_cgen_cpu_open: unsupported argument `%d'"
+#: lexsup.c:244 lexsup.c:247
+msgid "SHLIB"
+msgstr "SHLIB"
-#: m32r-desc.c:1467
-#, c-format
-msgid "internal error: m32r_cgen_cpu_open: no endianness specified"
-msgstr "internal error: m32r_cgen_cpu_open: no endianness specified"
+#: lexsup.c:244
+msgid "Auxiliary filter for shared object symbol table"
+msgstr ""
-#: m68k-dis.c:1292
-#, c-format
-msgid "<function code %d>"
-msgstr "<Funktionscode %d>"
+#: lexsup.c:247
+msgid "Filter for shared object symbol table"
+msgstr ""
-#: m68k-dis.c:1455
-#, c-format
-msgid "<internal error in opcode table: %s %s>\n"
-msgstr "<interner Fehler in der Opcode-Tabelle: %s %s>\n"
+#: lexsup.c:250
+msgid "Ignored"
+msgstr "Ignoriert"
-#: mep-asm.c:129
-msgid "Only $tp or $13 allowed for this opcode"
-msgstr "Dieser Opcode kann nur $tp oder $13 als Parameter haben"
+#: lexsup.c:252
+msgid "SIZE"
+msgstr "GRÖSSE"
-#: mep-asm.c:143
-msgid "Only $sp or $15 allowed for this opcode"
-msgstr "Dieser Opcode kann nur $sp oder $15 als Parameter haben"
+#: lexsup.c:252
+msgid "Small data size (if no size, same as --shared)"
+msgstr ""
-#: mep-asm.c:308 mep-asm.c:504
-#, c-format
-msgid "invalid %function() here"
-msgstr "%function() ist hier ungültig"
+#: lexsup.c:255
+msgid "FILENAME"
+msgstr "DATEINAME"
-#: mep-asm.c:336
-msgid "Immediate is out of range -32768 to 32767"
-msgstr "Direktwert liegt außerhalb des gültigen Bereichs -32768 bis 32767"
+#: lexsup.c:255
+msgid "Set internal name of shared library"
+msgstr "Internen Namen der gemeinsam genutzten Bibliothek festlegen"
-#: mep-asm.c:356
-msgid "Immediate is out of range 0 to 65535"
-msgstr "Direktwert liegt außerhalb des gültigen Bereichs 0 bis 65535"
+#: lexsup.c:257
+msgid "PROGRAM"
+msgstr "PROGRAMM"
-#: mep-asm.c:549 mep-asm.c:562
-msgid "Immediate is out of range -512 to 511"
-msgstr "Direktwert liegt außerhalb des gültigen Bereichs -512 bis 511"
+#: lexsup.c:257
+msgid "Set PROGRAM as the dynamic linker to use"
+msgstr "PROGRAMM als zu verwendenden dynamischen Linker festlegen"
-#: mep-asm.c:554 mep-asm.c:563
-msgid "Immediate is out of range -128 to 127"
-msgstr "Direktwert liegt außerhalb des gültigen Bereichs -128 bis 127"
+#: lexsup.c:260
+msgid "LIBNAME"
+msgstr "BIBNAME"
-#: mep-asm.c:558
-msgid "Value is not aligned enough"
-msgstr "Der Wert ist nicht ausreichend ausgerichtet"
+#: lexsup.c:260
+msgid "Search for library LIBNAME"
+msgstr "Nach der Bibliothek BIBNAME suchen"
-#: mep-desc.c:6226
-#, c-format
-msgid "internal error: mep_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
-msgstr "internal error: mep_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
+#: lexsup.c:262
+msgid "DIRECTORY"
+msgstr "VERZEICHNIS"
-#: mep-desc.c:6309
-#, c-format
-msgid "internal error: mep_cgen_cpu_open: unsupported argument `%d'"
-msgstr "internal error: mep_cgen_cpu_open: unsupported argument `%d'"
+#: lexsup.c:262
+msgid "Add DIRECTORY to library search path"
+msgstr "VERZEICHNIS zum Suchpfad für Bibliotheken hinzufügen"
-#: mep-desc.c:6328
-#, c-format
-msgid "internal error: mep_cgen_cpu_open: no endianness specified"
-msgstr "internal error: mep_cgen_cpu_open: no endianness specified"
+#: lexsup.c:265
+msgid "Override the default sysroot location"
+msgstr ""
-#: mips-dis.c:1800 mips-dis.c:2026
-#, c-format
-msgid "# internal error, undefined operand in `%s %s'"
-msgstr "# Interner Fehler, undefinierter Operand in „%s %s“"
+#: lexsup.c:267
+msgid "EMULATION"
+msgstr "EMULATION"
-#: mips-dis.c:2615
-msgid "Use canonical instruction forms.\n"
-msgstr "Kanonische Form der Befehle verwenden.\n"
+#: lexsup.c:267
+msgid "Set emulation"
+msgstr "Emulation setzen"
-# We couldn't parse it.
-#: mips-dis.c:2617
-msgid "Recognize MSA instructions.\n"
-msgstr "MSA-Befehle erkennen.\n"
+#: lexsup.c:269
+msgid "Print map file on standard output"
+msgstr ""
-#: mips-dis.c:2619
-msgid "Recognize the virtualization ASE instructions.\n"
-msgstr "ASE-Befehle für Virtualisierung erkennen.\n"
+#: lexsup.c:271
+msgid "Do not page align data"
+msgstr ""
-#: mips-dis.c:2621
-msgid ""
-"Recognize the eXtended Physical Address (XPA) ASE\n"
-" instructions.\n"
+#: lexsup.c:273
+msgid "Do not page align data, do not make text readonly"
msgstr ""
-"Befehle für eXtended Physical Address (XPA)\n"
-" Adressraumerweiterung erkennen.\n"
-#: mips-dis.c:2624
-msgid "Recognize the Global INValidate (GINV) ASE instructions.\n"
-msgstr "Befehle für Global INValidate (GINV) Adressraumerweiterung erkennen.\n"
+#: lexsup.c:276
+msgid "Page align data, make text readonly"
+msgstr ""
-#: mips-dis.c:2628
-msgid "Recognize the Loongson MultiMedia extensions Instructions (MMI) ASE instructions.\n"
-msgstr "Die Loongson-ASE-Befehle für MultiMedia extensions Instructions (MMI) erkennen.\n"
+#: lexsup.c:279
+msgid "Set output file name"
+msgstr "Name der Ausgabedatei festlegen"
-#: mips-dis.c:2632
-msgid "Recognize the Loongson Content Address Memory (CAM) instructions.\n"
-msgstr "Die Loongson-Befehle für Content Address Memory (CAM) erkennen.\n"
+#: lexsup.c:281
+msgid "Optimize output file"
+msgstr "Ausgabedatei optimieren"
-#: mips-dis.c:2636
-msgid "Recognize the Loongson EXTensions (EXT) instructions.\n"
-msgstr "Die Loongson-Befehle für EXTensions (EXT) erkennen.\n"
+#: lexsup.c:284
+msgid "PLUGIN"
+msgstr "PLUGIN"
-#: mips-dis.c:2640
-msgid "Recognize the Loongson EXTensions R2 (EXT2) instructions.\n"
-msgstr "Die Loongson-Befehle für EXTensions R2 (EXT2) erkennen.\n"
+#: lexsup.c:284
+msgid "Load named plugin"
+msgstr "Benanntes Plugin laden"
-#: mips-dis.c:2643
-msgid ""
-"Print GPR names according to specified ABI.\n"
-" Default: based on binary being disassembled.\n"
-msgstr ""
-"Namen der Mehrzweckregister entsprechend des angegebenen ABI ausgeben.\n"
-"Standard: abhängig von der Binärdatei, die disassembliert wird.\n"
+#: lexsup.c:286
+msgid "ARG"
+msgstr "ARG"
-#: mips-dis.c:2646
-msgid ""
-"Print FPR names according to specified ABI.\n"
-" Default: numeric.\n"
-msgstr ""
-"FPR-Namen entsprechend des angegebenen ABI ausgeben.\n"
-" Vorgabe: numerisch.\n"
+#: lexsup.c:286
+msgid "Send arg to last-loaded plugin"
+msgstr "Argument an zuletzt geladenes Plugin senden"
-#: mips-dis.c:2649
-msgid ""
-"Print CP0 register names according to specified architecture.\n"
-" Default: based on binary being disassembled.\n"
+#: lexsup.c:288 lexsup.c:291
+msgid "Ignored for GCC LTO option compatibility"
msgstr ""
-"CP0-Registernamen entsprechend der angegebenen Architektur ausgeben.\n"
-" Vorgabe: abhängig von der Binärdatei, die disassembliert wird.\n"
-#: mips-dis.c:2653
-msgid ""
-"Print HWR names according to specified architecture.\n"
-" Default: based on binary being disassembled.\n"
+#: lexsup.c:295
+msgid "Ignored for SVR4 compatibility"
+msgstr "Ignoriert für SVR4-Kompatibilität"
+
+#: lexsup.c:299
+msgid "Generate relocatable output"
msgstr ""
-"HWR-Namen entsprechend der angegebenen Architektur ausgeben.\n"
-" Vorgabe: abhängig von der Binärdatei, die disassembliert wird.\n"
-#: mips-dis.c:2656
-msgid "Print GPR and FPR names according to specified ABI.\n"
-msgstr "GPR- und FPR-Namen entsprechend des angegebenen ABI ausgeben.\n"
+#: lexsup.c:303
+msgid "Just link symbols (if directory, same as --rpath)"
+msgstr "Symbole nur linken (falls Verzeichnis, gleichbedeutend mit --rpath)"
-#: mips-dis.c:2658
-msgid ""
-"Print CP0 register and HWR names according to specified\n"
-" architecture."
-msgstr "CP0-Register und HWR-Namen entsprechend der angegebenen Architektur ausgeben."
+#: lexsup.c:306
+msgid "Strip all symbols"
+msgstr ""
-#: mips-dis.c:2744
-#, c-format
-msgid ""
-"\n"
-"The following MIPS specific disassembler options are supported for use\n"
-"with the -M switch (multiple options should be separated by commas):\n"
-"\n"
+#: lexsup.c:308
+msgid "Strip debugging symbols"
msgstr ""
-"\n"
-"Die folgenden MIPS-spezifischen Disassembleroptionen werden zusammen\n"
-"mit dem Schalter »-M« unterstützt (mehrere Optionen sollten durch\n"
-"Kommata getrennt werden):\n"
-"\n"
-#: mips-dis.c:2778
-#, c-format
-msgid ""
-"\n"
-" For the options above, the following values are supported for \"%s\":\n"
-" "
+#: lexsup.c:310
+msgid "Strip symbols in discarded sections"
msgstr ""
-"\n"
-" Für die obigen Optionen werden die folgenden Werte für »%s« unterstützt:\n"
-" "
-#: mmix-dis.c:33
-#, c-format
-msgid "bad case %d (%s) in %s:%d"
-msgstr "internal error: case %d (%s) in %s:%d"
+#: lexsup.c:312
+msgid "Do not strip symbols in discarded sections"
+msgstr ""
-#: mmix-dis.c:42
-#, c-format
-msgid "internal: non-debugged code (test-case missing): %s:%d"
-msgstr "internal error: non-debugged code (test-case missing): %s:%d"
+#: lexsup.c:314
+msgid "Trace file opens"
+msgstr "Dateiöffnungen verfolgen"
-#: mmix-dis.c:52
-msgid "(unknown)"
-msgstr "(unbekannt)"
+#: lexsup.c:316
+msgid "Read linker script"
+msgstr "Linker-Skript lesen"
-#: mmix-dis.c:510
-#, c-format
-msgid "*unknown operands type: %d*"
-msgstr "Unbekannter Operandentyp: %d*"
+#: lexsup.c:318
+msgid "Read default linker script"
+msgstr "Vorgebenes Linker-Skript lesen"
-#: msp430-decode.opc:145 rl78-decode.opc:106
-#, c-format
-msgid "internal error: immediate() called with invalid byte count %d"
-msgstr "internal error: immediate() called with invalid byte count %d"
+#: lexsup.c:322 lexsup.c:340 lexsup.c:424 lexsup.c:445 lexsup.c:546
+#: lexsup.c:575 lexsup.c:614
+msgid "SYMBOL"
+msgstr "SYMBOL"
-#: msp430-dis.c:59
-#, c-format
-msgid "Warning: disassembly unreliable - not enough bytes available"
-msgstr "Warnung: Disassemblat unzuverlässig – nicht genügend Bytes verfügbar"
+#: lexsup.c:322
+msgid "Start with undefined reference to SYMBOL"
+msgstr ""
-#: msp430-dis.c:65
-#, c-format
-msgid "Error: read from memory failed"
-msgstr "Fehler: Lesen aus dem Speicher fehlgeschlagen"
+#: lexsup.c:325
+msgid "[=SECTION]"
+msgstr ""
-#: msp430-dis.c:499
-msgid "Warning: illegal as emulation instr"
-msgstr "Warnung: Ungültig als Emulations-Maschinenbefehl"
+#: lexsup.c:326
+msgid "Don't merge input [SECTION | orphan] sections"
+msgstr ""
-#. R2/R3 are illegal as dest: may be data section.
-#: msp430-dis.c:591
-msgid "Warning: illegal as 2-op instr"
-msgstr "Warnung: Ungültig als 2-Op-Maschinenbefehl"
+#: lexsup.c:328
+msgid "Build global constructor/destructor tables"
+msgstr ""
-#: msp430-dis.c:1002
-msgid "Warning: unrecognised CALLA addressing mode"
-msgstr "Warnung: Unbekannter CALLA-Adressierungsmodus"
+#: lexsup.c:330
+msgid "Print version information"
+msgstr "Versionsinformationen ausgeben"
-#: msp430-dis.c:1303 msp430-dis.c:1324 msp430-dis.c:1345
-#, c-format
-msgid "Warning: reserved use of A/L and B/W bits detected"
-msgstr "Warnung: Benutzung der reservierten A/L- und B/W-Bits erkannt"
+#: lexsup.c:332
+msgid "Print version and emulation information"
+msgstr "Versions- und Emulationsinformationen ausgeben"
-#: mt-asm.c:110 mt-asm.c:190
-msgid "Operand out of range. Must be between -32768 and 32767."
-msgstr "Operand außerhalb des gültigen Bereichs -32768 bis 32767."
+#: lexsup.c:334
+msgid "Discard all local symbols"
+msgstr "Alle lokalen Symbole verwerfen"
-#: mt-asm.c:149
-msgid "Biiiig Trouble in parse_imm16!"
-msgstr "Oh, oh. Hier ist richtig was kaputt in parse_imm16!"
+#: lexsup.c:336
+msgid "Discard temporary local symbols (default)"
+msgstr "Temporäre lokale Symbole verwerfen (Vorgabe)"
-#: mt-asm.c:157
-msgid "The percent-operator's operand is not a symbol"
-msgstr "Der Operand des Prozent-Operators ist kein Symbol"
+#: lexsup.c:338
+msgid "Don't discard any local symbols"
+msgstr "Lokale Symbole niemals verwerfen"
-#: mt-asm.c:395
-msgid "invalid operand. type may have values 0,1,2 only."
-msgstr "Ungültiger Operand. Die Art kann nur 0, 1 oder 2 sein."
+#: lexsup.c:340
+msgid "Trace mentions of SYMBOL"
+msgstr ""
-#: mt-desc.c:1146
-#, c-format
-msgid "internal error: mt_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
-msgstr "internal error: mt_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
+#: lexsup.c:342 lexsup.c:511 lexsup.c:513
+msgid "PATH"
+msgstr "PFAD"
-#: mt-desc.c:1229
-#, c-format
-msgid "internal error: mt_cgen_cpu_open: unsupported argument `%d'"
-msgstr "internal error: mt_cgen_cpu_open: unsupported argument `%d'"
+#: lexsup.c:342
+msgid "Default search path for Solaris compatibility"
+msgstr "Vorgegebener Suchpfad für Solaris-Kompatibilität"
-#: mt-desc.c:1248
-#, c-format
-msgid "internal error: mt_cgen_cpu_open: no endianness specified"
-msgstr "internal error: mt_cgen_cpu_open: no endianness specified"
+#: lexsup.c:345
+msgid "Start a group"
+msgstr "Gruppe starten"
-#: nds32-asm.c:1760
-#, c-format
-msgid "internal error: unknown operand, %s"
-msgstr "internal error: unknown operand, %s"
+#: lexsup.c:347
+msgid "End a group"
+msgstr "Gruppe beenden"
-#: nds32-asm.c:2396
-#, c-format
-msgid "internal error: don't know how to handle parsing results"
-msgstr "internal error: don't know how to handle parsing results"
+#: lexsup.c:351
+msgid "Accept input files whose architecture cannot be determined"
+msgstr "Eingabedateien akzeptieren, deren Architektur nicht ermittelt werden kann"
-#: nds32-asm.c:2404
-#, c-format
-msgid "internal error: unknown hardware resource"
-msgstr "internal error: unknown hardware resource"
+#: lexsup.c:355
+msgid "Reject input files whose architecture is unknown"
+msgstr "Eingabedateien abweisen, deren Architektur unbekannt ist"
-#: nfp-dis.c:927
-msgid "<invalid_instruction>:"
-msgstr "<ungültiger Maschinenbefehl>"
+#: lexsup.c:367
+msgid "Only set DT_NEEDED for following dynamic libs if used"
+msgstr ""
-#: nfp-dis.c:1331
-msgid ", <invalid CRC operator>, "
-msgstr ", <ungültiger CRC-Operator>, "
+#: lexsup.c:370
+msgid ""
+"Always set DT_NEEDED for dynamic libraries mentioned on\n"
+" the command line"
+msgstr ""
-#: nfp-dis.c:1683
-msgid "<invalid branch>["
-msgstr "<ungültiger Zweig>["
+#: lexsup.c:374
+msgid "Ignored for SunOS compatibility"
+msgstr "Ignoriert wegen SunOS-Kompatibilität"
-#: nfp-dis.c:2052 nfp-dis.c:2323
-#, c-format
-msgid "<invalid cmd target %d:%d:%d>[]"
-msgstr "<Ungültiges Befehlsziel %d:%d:%d>[]"
+#: lexsup.c:376
+msgid "Link against shared libraries"
+msgstr ""
-#: nfp-dis.c:2063 nfp-dis.c:2334
-#, c-format
-msgid "<invalid cmd action %d:%d:%d>[]"
-msgstr "<Ungültige Befehlsaktion %d:%d:%d>[]"
+#: lexsup.c:382
+msgid "Do not link against shared libraries"
+msgstr ""
-#: nfp-dis.c:2555
-msgid "File has no ME-Config section."
-msgstr "Datei hat keinen ME-Config-Abschnitt."
+#: lexsup.c:390
+msgid "Bind global references locally"
+msgstr ""
-#: nfp-dis.c:2569
-msgid "File has invalid ME-Config section."
-msgstr "Datei hat ungültigen ME-Config-Abschnitt."
+#: lexsup.c:392
+msgid "Bind global function references locally"
+msgstr ""
-#: nfp-dis.c:2711
-#, c-format
-msgid "Error processing section %u "
-msgstr "Fehler beim Verarbeiten von Abschnitt %u "
+#: lexsup.c:394
+msgid "Check section addresses for overlaps (default)"
+msgstr ""
-#: nfp-dis.c:2740
-#, c-format
-msgid "Invalid NFP option: %s"
-msgstr "Ungültige NFP-Option: %s"
+#: lexsup.c:397
+msgid "Do not check section addresses for overlaps"
+msgstr "Abschnittsadressen nicht auf Überlappungen prüfen"
-#: nfp-dis.c:2972
-#, c-format
-msgid ""
-"\n"
-"The following NFP specific disassembler options are supported for use\n"
-"with the -M switch (multiple options should be separated by commas):\n"
+#: lexsup.c:401
+msgid "Copy DT_NEEDED links mentioned inside DSOs that follow"
msgstr ""
-"\n"
-"Die folgenden NFP-spezifischen Disassembleroptionen werden zusammen\n"
-"mit dem Schalter »-M« unterstützt (mehrere Optionen sollten durch\n"
-"Kommata getrennt werden):\n"
-#: nfp-dis.c:2976
-#, c-format
-msgid ""
-"\n"
-" no-pc\t\t Don't print program counter prefix.\n"
-" ctx4\t\t Force disassembly using 4-context mode.\n"
-" ctx8\t\t Force 8-context mode, takes precedence."
+#: lexsup.c:405
+msgid "Do not copy DT_NEEDED links mentioned inside DSOs that follow"
msgstr ""
-"\n"
-" no-pc\t\t Programmzähler-Präfix nicht ausgeben.\n"
-" ctx4\t\t Disassemblieren mit 4-Kontext-Modus erzwingen.\n"
-" ctx8\t\t 8-Kontext-Modus erzwingen, hat Vorrang."
-#: nios2-dis.c:135
-#, c-format
-msgid "out of memory"
-msgstr "Zu wenig Speicher"
-
-#: nios2-dis.c:263
-#, c-format
-msgid "internal error: broken opcode descriptor for `%s %s'"
-msgstr "internal error: broken opcode descriptor for `%s %s'"
+#: lexsup.c:409
+msgid "Output cross reference table"
+msgstr "Querverweis-Tabelle ausgeben"
-# I and Z are output operands and can`t be immediate
-# * A is an address and we can`t have the address of
-# * an immediate either. We don't know how much to increase
-# * aoffsetp by since whatever generated this is broken
-# * anyway!
-#. I and Z are output operands and can`t be immediate
-#. A is an address and we can`t have the address of
-#. an immediate either. We don't know how much to increase
-#. aoffsetp by since whatever generated this is broken
-#. anyway!
-#: ns32k-dis.c:533
-#, c-format
-msgid "$<undefined>"
-msgstr "$<undefiniert>"
+#: lexsup.c:411
+msgid "SYMBOL=EXPRESSION"
+msgstr "SYMBOL=AUSDRUCK"
-#: or1k-asm.c:55
-msgid "relocation invalid for store"
-msgstr "Verlagerung für Speicherbefehl ungültig"
+#: lexsup.c:411
+msgid "Define a symbol"
+msgstr "Ein Symbol definieren"
-#: or1k-asm.c:56
-msgid "internal relocation type invalid"
-msgstr "Interne Verlagerungsart ungültig"
+#: lexsup.c:413
+msgid "[=STYLE]"
+msgstr "[=STIL]"
-#: or1k-desc.c:1978
-#, c-format
-msgid "internal error: or1k_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
-msgstr "internal error: or1k_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
+#: lexsup.c:413
+msgid "Demangle symbol names [using STYLE]"
+msgstr ""
-#: or1k-desc.c:2061
-#, c-format
-msgid "internal error: or1k_cgen_cpu_open: unsupported argument `%d'"
-msgstr "internal error: or1k_cgen_cpu_open: unsupported argument `%d'"
+#: lexsup.c:416
+msgid "Generate embedded relocs"
+msgstr ""
-#: or1k-desc.c:2080
-#, c-format
-msgid "internal error: or1k_cgen_cpu_open: no endianness specified"
-msgstr "internal error: or1k_cgen_cpu_open: no endianness specified"
+#: lexsup.c:418
+msgid "Treat warnings as errors"
+msgstr "Warnungen als Fehler auffassen"
-#: ppc-dis.c:370
-#, c-format
-msgid "warning: ignoring unknown -M%s option"
-msgstr "Warnung: Unbekannte Option »-M%s« wird ignoriert"
+#: lexsup.c:421
+msgid "Do not treat warnings as errors (default)"
+msgstr "Warnungen nicht als Fehler auffassen (Vorgabe)"
-#: ppc-dis.c:858
-#, c-format
-msgid ""
-"\n"
-"The following PPC specific disassembler options are supported for use with\n"
-"the -M switch:\n"
+#: lexsup.c:424
+msgid "Call SYMBOL at unload-time"
msgstr ""
-"\n"
-"Die folgenden PPC-spezifischen Disassembleroptionen werden in Kombination\n"
-"mit dem Schalter »-M« unterstützt:\n"
-#: ppc-opc.c:51 ppc-opc.c:74 ppc-opc.c:100 ppc-opc.c:130
-msgid "invalid register"
-msgstr "Ungültiges Register"
+#: lexsup.c:426
+msgid "Force generation of file with .exe suffix"
+msgstr "Erzeugung der Datei mit Endung .exe erzwingen"
-#: ppc-opc.c:384 ppc-opc.c:412
-msgid "invalid conditional option"
-msgstr "Ungültige bedingte Option"
+#: lexsup.c:428
+msgid "Remove unused sections (on some targets)"
+msgstr "Ungenutzte Abschnitte entfernen (in einigen Zielen)"
-#: ppc-opc.c:386 ppc-opc.c:414
-msgid "invalid counter access"
-msgstr "Ungültiger Zugriff auf Zähler"
+#: lexsup.c:431
+msgid "Don't remove unused sections (default)"
+msgstr "Ungenutzte Abschnitte nicht entfernen (Vorgabe)"
-#: ppc-opc.c:416
-msgid "attempt to set y bit when using + or - modifier"
-msgstr "Versuch, das y-Bit zusammen mit dem Modifikator »+« oder »-« zu setzen"
+#: lexsup.c:434
+msgid "List removed unused sections on stderr"
+msgstr ""
-#: ppc-opc.c:507
-msgid "invalid mask field"
-msgstr "Ungültiges Maskierungsfeld"
+#: lexsup.c:437
+msgid "Do not list removed unused sections"
+msgstr ""
-#: ppc-opc.c:530
-msgid "invalid mfcr mask"
-msgstr "Ungültige mfcr-Maske"
+#: lexsup.c:440
+msgid "Set default hash table size close to <NUMBER>"
+msgstr ""
-#: ppc-opc.c:606
-msgid "illegal L operand value"
-msgstr "Unerlaubter Wert für L-Operanden"
+#: lexsup.c:443
+msgid "Print option help"
+msgstr "Hilfe zu Optionen ausgeben"
-#: ppc-opc.c:645
-msgid "incompatible L operand value"
-msgstr "Inkompatibler L-Operandenwert"
+#: lexsup.c:445
+msgid "Call SYMBOL at load-time"
+msgstr ""
-#: ppc-opc.c:684 ppc-opc.c:719
-msgid "illegal bitmask"
-msgstr "Ungültige Bitmaske"
+#: lexsup.c:447
+msgid "Write a map file"
+msgstr ""
-#: ppc-opc.c:806
-msgid "address register in load range"
-msgstr "Adressregister im Ladebereich (load range)"
+#: lexsup.c:449
+msgid "Do not define Common storage"
+msgstr ""
-#: ppc-opc.c:872
-msgid "index register in load range"
-msgstr "Indexregister im Ladebereich (load range)"
+#: lexsup.c:451
+msgid "Do not demangle symbol names"
+msgstr ""
-#: ppc-opc.c:901 ppc-opc.c:986
-msgid "source and target register operands must be different"
-msgstr "Die Operanden für das Quell- und Zielregister müssen verschieden sein"
+#: lexsup.c:453
+msgid "Use less memory and more disk I/O"
+msgstr ""
-#: ppc-opc.c:931
-msgid "invalid register operand when updating"
-msgstr "Ungültiger Registeroperand beim Aktualisieren"
+#: lexsup.c:455
+msgid "Do not allow unresolved references in object files"
+msgstr "Keine unaufgelösten Referenzen in Objektdateien erlauben"
-#: ppc-opc.c:1049
-msgid "illegal immediate value"
-msgstr "Unerlaubter Direktwert"
+#: lexsup.c:458
+msgid "Allow unresolved references in shared libraries"
+msgstr ""
-#: ppc-opc.c:1154
-msgid "invalid bat number"
-msgstr "Ungültige bat-Nummer"
+#: lexsup.c:462
+msgid "Do not allow unresolved references in shared libs"
+msgstr ""
-#: ppc-opc.c:1189
-msgid "invalid sprg number"
-msgstr "Ungültige sprg-Nummer"
+#: lexsup.c:466
+msgid "Allow multiple definitions"
+msgstr "Mehrfachdefinitionen erlauben"
-#: ppc-opc.c:1226
-msgid "invalid tbr number"
-msgstr "Ungültige tbr-Nummer"
+#: lexsup.c:468
+msgid "Disallow undefined version"
+msgstr "Keine undefinierten Versionen erlauben"
-#: ppc-opc.c:1372
-msgid "invalid constant"
-msgstr "Ungültige Konstante"
+#: lexsup.c:470
+msgid "Create default symbol version"
+msgstr ""
-#: ppc-opc.c:1474 ppc-opc.c:1497 ppc-opc.c:1520 ppc-opc.c:1543
-msgid "UIMM = 00000 is illegal"
-msgstr "UIMM = 0000 ist ungültig"
+#: lexsup.c:473
+msgid "Create default symbol version for imported symbols"
+msgstr ""
-#: ppc-opc.c:1566
-msgid "UIMM values >7 are illegal"
-msgstr "UIMM-Werte > 7 sind ungültig"
+#: lexsup.c:476
+msgid "Don't warn about mismatched input files"
+msgstr ""
-#: ppc-opc.c:1589
-msgid "UIMM values >15 are illegal"
-msgstr "UIMM-Werte > 15 sind ungültig"
+#: lexsup.c:479
+msgid "Don't warn on finding an incompatible library"
+msgstr ""
-#: ppc-opc.c:1612
-msgid "GPR odd is illegal"
-msgstr "GPR ungerade ist ungültig"
+#: lexsup.c:482
+msgid "Turn off --whole-archive"
+msgstr "--whole-archive abschalten"
-#: ppc-opc.c:1635 ppc-opc.c:1658
-msgid "invalid offset"
-msgstr "Ungültiger Offset"
+#: lexsup.c:484
+msgid "Create an output file even if errors occur"
+msgstr "Ausgabedateien auch dann erzeugen, wenn Fehler aufgetreten sind"
-#: ppc-opc.c:1681
-msgid "invalid Ddd value"
-msgstr "Ungültiger Ddd-Wert"
+#: lexsup.c:489
+msgid ""
+"Only use library directories specified on\n"
+" the command line"
+msgstr ""
-#: riscv-dis.c:68
-#, c-format
-msgid "unrecognized disassembler option: %s"
-msgstr "Unbekannte Disassembler-Option: %s"
+#: lexsup.c:493
+msgid "Specify target of output file"
+msgstr "-"
-#: riscv-dis.c:346
-#, c-format
-msgid "# internal error, undefined modifier (%c)"
-msgstr "# Interner Fehler, unerkannter Modifikator (%c)"
+#: lexsup.c:496
+msgid "Print default output format"
+msgstr "Vorgegebenes Ausgabeformat ausgeben"
-#: riscv-dis.c:541
-#, c-format
-msgid ""
-"\n"
-"The following RISC-V-specific disassembler options are supported for use\n"
-"with the -M switch (multiple options should be separated by commas):\n"
-msgstr ""
-"\n"
-"Die folgenden RISC-V-spezifischen Disassembleroptionen werden zusammen\n"
-"mit dem Schalter »-M« unterstützt (mehrere Optionen sollten durch\n"
-"Kommata getrennt werden):\n"
+#: lexsup.c:498
+msgid "Ignored for Linux compatibility"
+msgstr "wird für Linux-Kompatibilität ignoriert"
-#: riscv-dis.c:545
-#, c-format
-msgid ""
-"\n"
-" numeric Print numeric register names, rather than ABI names.\n"
+#: lexsup.c:501
+msgid "Reduce memory overheads, possibly taking much longer"
msgstr ""
-"\n"
-" numeric Numerische Registernamen statt ABI-Namen ausgeben.\n"
-#: riscv-dis.c:548
-#, c-format
-msgid ""
-"\n"
-" no-aliases Disassemble only into canonical instructions, rather\n"
-" than into pseudoinstructions.\n"
+#: lexsup.c:504
+msgid "Reduce code size by using target specific optimizations"
+msgstr "Codegröße durch zielspezifische Optionen verringern"
+
+#: lexsup.c:506
+msgid "Do not use relaxation techniques to reduce code size"
msgstr ""
-"\n"
-" no-aliases Ausschließlich kanonische Befehle beim Disassemblieren\n"
-" verwenden, anstelle von Pseudobefehlen.\n"
-#: s390-dis.c:42
-msgid "Disassemble in ESA architecture mode"
-msgstr "Im ESA-Architektur-Modus disassemblieren"
+#: lexsup.c:509
+msgid "Keep only symbols listed in FILE"
+msgstr ""
-#: s390-dis.c:43
-msgid "Disassemble in z/Architecture mode"
-msgstr "Im z/-Architektur-Modus disassemblieren"
+#: lexsup.c:511
+msgid "Set runtime shared library search path"
+msgstr ""
-#: s390-dis.c:44
-msgid "Print unknown instructions according to length from first two bits"
-msgstr "Unbekannte Befehle anhand ihrer Länge aus den ersten beiden Bits ausgeben"
+#: lexsup.c:513
+msgid "Set link time shared library search path"
+msgstr ""
-#: s390-dis.c:76
-#, c-format
-msgid "unknown S/390 disassembler option: %s"
-msgstr "Unbekannte S/390-Disassembler-Option: %s"
+#: lexsup.c:516
+msgid "Create a shared library"
+msgstr "Eine Laufzeitbibliothek erzeugen"
-#: s390-dis.c:416
-#, c-format
-msgid ""
-"\n"
-"The following S/390 specific disassembler options are supported for use\n"
-"with the -M switch (multiple options should be separated by commas):\n"
+#: lexsup.c:520
+msgid "Create a position independent executable"
msgstr ""
-"\n"
-"Die folgenden S/390-spezifischen Disassembleroptionen werden zusammen\n"
-"mit dem Schalter »-M« unterstützt (mehrere Optionen sollten durch\n"
-"Kommata getrennt werden):\n"
-
-#: score-dis.c:663 score-dis.c:870 score-dis.c:1031 score-dis.c:1145
-#: score-dis.c:1152 score-dis.c:1159 score7-dis.c:695 score7-dis.c:858
-msgid "<illegal instruction>"
-msgstr "<ungültiger Maschinenbefehl>"
-#: sparc-dis.c:308 sparc-dis.c:318
-#, c-format
-msgid "internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
-msgstr "internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
+#: lexsup.c:524
+msgid "[=ascending|descending]"
+msgstr "[=ascending|descending]"
-#: sparc-dis.c:377
-#, c-format
-msgid "internal error: bad sparc-opcode.h: \"%s\" == \"%s\"\n"
-msgstr "internal error: bad sparc-opcode.h: \"%s\" == \"%s\"\n"
+#: lexsup.c:525
+msgid "Sort common symbols by alignment [in specified order]"
+msgstr ""
-# Mark as non-valid instruction.
-#. Mark as non-valid instruction.
-#: sparc-dis.c:1098
-msgid "unknown"
-msgstr "unbekannt"
+#: lexsup.c:530
+msgid "name|alignment"
+msgstr ""
-#: v850-dis.c:453
-#, c-format
-msgid "unknown operand shift: %x"
-msgstr "Unbekannte Operandenverschiebung: %x"
+#: lexsup.c:531
+msgid "Sort sections by name or maximum alignment"
+msgstr ""
-#: v850-dis.c:469
-#, c-format
-msgid "unknown reg: %d"
-msgstr "Unbekanntes Register: %d"
+#: lexsup.c:533
+msgid "COUNT"
+msgstr "ANZAHL"
-# The functions used to insert and extract complicated operands.
-# Note: There is a conspiracy between these functions and
-# v850_insert_operand() in gas/config/tc-v850.c. Error messages
-# containing the string 'out of range' will be ignored unless a
-# specific command line option is given to GAS.
-#. The functions used to insert and extract complicated operands.
-#. Note: There is a conspiracy between these functions and
-#. v850_insert_operand() in gas/config/tc-v850.c. Error messages
-#. containing the string 'out of range' will be ignored unless a
-#. specific command line option is given to GAS.
-#: v850-opc.c:53
-msgid "displacement value is not in range and is not aligned"
-msgstr "Der Abstandswert ist außerhalb des gültigen Bereichs und nicht ausgerichtet"
+#: lexsup.c:533
+msgid "How many tags to reserve in .dynamic section"
+msgstr ""
+
+#: lexsup.c:536
+msgid "[=SIZE]"
+msgstr "[=GRÖSSE]"
-#: v850-opc.c:54
-msgid "displacement value is out of range"
-msgstr "Der Abstandswert ist außerhalb des fültigen Bereichs."
+#: lexsup.c:536
+msgid "Split output sections every SIZE octets"
+msgstr ""
-#: v850-opc.c:55
-msgid "displacement value is not aligned"
-msgstr "Der Abstandswert ist nicht ausgerichtet."
+#: lexsup.c:539
+msgid "[=COUNT]"
+msgstr "[=ANZAHL]"
-#: v850-opc.c:57
-msgid "immediate value is out of range"
-msgstr "Direktwert außerhalb des gültigen Bereichs"
+#: lexsup.c:539
+msgid "Split output sections every COUNT relocs"
+msgstr ""
-#: v850-opc.c:58
-msgid "branch value out of range"
-msgstr "Verzweigungswert außerhalb des gültigen Bereichs."
+#: lexsup.c:542
+msgid "Print memory usage statistics"
+msgstr "Statistiken zur Speichernutzung ausgeben"
-#: v850-opc.c:59
-msgid "branch value not in range and to odd offset"
-msgstr "Verzweigungswert außerhalb des gültigen Bereichs und zu einem ungeraden Offset."
+#: lexsup.c:544
+msgid "Display target specific options"
+msgstr "Ziel-spezifische Optionen anzeigen"
-#: v850-opc.c:60
-msgid "branch to odd offset"
-msgstr "Verzweigung auf ungeraden Offset"
+#: lexsup.c:546
+msgid "Do task level linking"
+msgstr ""
-#: v850-opc.c:61
-msgid "position value is out of range"
-msgstr "Positionswert außerhalb des gültigen Bereichs"
+#: lexsup.c:548
+msgid "Use same format as native linker"
+msgstr "Gleiches Format wie der native Linker verwenden"
-#: v850-opc.c:62
-msgid "width value is out of range"
-msgstr "Breitenwert außerhalb des gültigen Bereichs"
+#: lexsup.c:550
+msgid "SECTION=ADDRESS"
+msgstr "ABSCHNITT=ADRESSE"
-#: v850-opc.c:63
-msgid "SelID is out of range"
-msgstr "SelID liegt außerhalb des gültigen Bereichs"
+#: lexsup.c:550
+msgid "Set address of named section"
+msgstr ""
-#: v850-opc.c:64
-msgid "vector8 is out of range"
-msgstr "vector8 liegt außerhalb des gültigen Bereichs"
+#: lexsup.c:553
+msgid "Set address of .bss section"
+msgstr ""
-#: v850-opc.c:65
-msgid "vector5 is out of range"
-msgstr "vector5 liegt außerhalb des gültigen Bereichs"
+#: lexsup.c:555
+msgid "Set address of .data section"
+msgstr ""
-#: v850-opc.c:66
-msgid "imm10 is out of range"
-msgstr "imm10 liegt außerhalb des gültigen Bereichs"
+#: lexsup.c:557
+msgid "Set address of .text section"
+msgstr ""
-#: v850-opc.c:67
-msgid "SR/SelID is out of range"
-msgstr "SR/RelID l liegt außerhalb des gültigen Bereichs"
+#: lexsup.c:559
+msgid "Set address of text segment"
+msgstr ""
-#: v850-opc.c:512
-msgid "invalid register for stack adjustment"
-msgstr "Ungültiges Register für Stackanpassung"
+#: lexsup.c:562
+msgid ""
+"How to handle unresolved symbols. <method> is:\n"
+" ignore-all, report-all, ignore-in-object-files,\n"
+" ignore-in-shared-libs"
+msgstr ""
-#: v850-opc.c:532
-msgid "invalid register name"
-msgstr "Falscher Registername"
+#: lexsup.c:567
+msgid "[=NUMBER]"
+msgstr "[=ZAHL]"
-#: wasm32-dis.c:88
-msgid "Disassemble \"register\" names"
-msgstr "\"register\"-Namen disassemblieren"
+#: lexsup.c:568
+msgid "Output lots of information during link"
+msgstr ""
-#: wasm32-dis.c:89
-msgid "Name well-known globals"
-msgstr "Wohlbekannte globale Namen benennen"
+#: lexsup.c:572
+msgid "Read version information script"
+msgstr "Versionsinformationsskript lesen"
-#: wasm32-dis.c:503
-#, c-format
+#: lexsup.c:575
msgid ""
-"The following WebAssembly-specific disassembler options are supported for use\n"
-"with the -M switch:\n"
+"Take export symbols list from .exports, using\n"
+" SYMBOL as the version."
msgstr ""
-"Die folgenden WebAssembly-spezifischen Disassembleroptionen werden in\n"
-"Kombination mit dem Schalter »-M« unterstützt:\n"
-#: xc16x-asm.c:66
-msgid "Missing '#' prefix"
-msgstr "Das »#«-Präfix felht"
+#: lexsup.c:579
+msgid "Add data symbols to dynamic list"
+msgstr "Datensymbole zur dynamischen Liste hinzufügen"
-#: xc16x-asm.c:82
-msgid "Missing '.' prefix"
-msgstr "Das ».«-Präfix fehlt"
+#: lexsup.c:581
+msgid "Use C++ operator new/delete dynamic list"
+msgstr ""
-#: xc16x-asm.c:98
-msgid "Missing 'pof:' prefix"
-msgstr "Das »pof:«-Präfix fehlt"
+#: lexsup.c:583
+msgid "Use C++ typeinfo dynamic list"
+msgstr ""
-#: xc16x-asm.c:114
-msgid "Missing 'pag:' prefix"
-msgstr "Das »pag:«-Präfix fehlt"
+#: lexsup.c:585
+msgid "Read dynamic list"
+msgstr "Dynamische Liste lesen"
-#: xc16x-asm.c:130
-msgid "Missing 'sof:' prefix"
-msgstr "Das »sof:«-Präfix fehlt"
+#: lexsup.c:587
+msgid "Warn about duplicate common symbols"
+msgstr ""
-#: xc16x-asm.c:146
-msgid "Missing 'seg:' prefix"
-msgstr "Das »seg:«-Präfix fehlt"
+#: lexsup.c:589
+msgid "Warn if global constructors/destructors are seen"
+msgstr ""
-#: xc16x-desc.c:3349
-#, c-format
-msgid "internal error: xc16x_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
-msgstr "internal error: xc16x_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
+#: lexsup.c:592
+msgid "Warn if the multiple GP values are used"
+msgstr ""
-#: xc16x-desc.c:3432
-#, c-format
-msgid "internal error: xc16x_cgen_cpu_open: unsupported argument `%d'"
-msgstr "internal error: xc16x_cgen_cpu_open: unsupported argument `%d'"
+#: lexsup.c:594
+msgid "Warn only once per undefined symbol"
+msgstr ""
-#: xc16x-desc.c:3451
-#, c-format
-msgid "internal error: xc16x_cgen_cpu_open: no endianness specified"
-msgstr "internal error: xc16x_cgen_cpu_open: no endianness specified"
+#: lexsup.c:596
+msgid "Warn if start of section changes due to alignment"
+msgstr ""
-#: xstormy16-asm.c:71
-msgid "Bad register in preincrement"
-msgstr "Ungültiges Register beim Pre-Increment"
+#: lexsup.c:599
+msgid "Warn if shared object has DT_TEXTREL"
+msgstr ""
-#: xstormy16-asm.c:76
-msgid "Bad register in postincrement"
-msgstr "Ungültiges Register beim Post-Increment"
+#: lexsup.c:602
+msgid "Warn if an object has alternate ELF machine code"
+msgstr ""
-#: xstormy16-asm.c:78
-msgid "Bad register name"
-msgstr "Falscher Registername"
+#: lexsup.c:606
+msgid "Report unresolved symbols as warnings"
+msgstr "Nicht aufgelöste Symbole als Warnungen melden"
-#: xstormy16-asm.c:82
-msgid "Label conflicts with register name"
-msgstr "Sprungmarke verträgt sich nicht mit dem Registername"
+#: lexsup.c:609
+msgid "Report unresolved symbols as errors"
+msgstr "Nicht aufgelöste Symbole als Fehler melden"
-#: xstormy16-asm.c:86
-msgid "Label conflicts with `Rx'"
-msgstr "Sprungmarke verträgt sich nicht mit »Rx«"
+#: lexsup.c:611
+msgid "Include all objects from following archives"
+msgstr "Alle Objekte aus den folgenden Archiven einschließen"
-#: xstormy16-asm.c:88
-msgid "Bad immediate expression"
-msgstr "Ungültiger Direktausdruck"
+#: lexsup.c:614
+msgid "Use wrapper functions for SYMBOL"
+msgstr ""
-#: xstormy16-asm.c:109
-msgid "No relocation for small immediate"
-msgstr "Keine Verlagerung für kleine Direktwerte"
+#: lexsup.c:763
+msgid "%P: unrecognized option '%s'\n"
+msgstr "%P: unbekannte Option »%s«\n"
-#: xstormy16-asm.c:119
-msgid "Small operand was not an immediate number"
-msgstr "Kleiner Operand war keine Direktzahl"
+#: lexsup.c:767
+msgid "%P%F: use the --help option for usage information\n"
+msgstr "%P%F: Benutzen Sie die Option --help für Informationen zum Aufruf\n"
-#: xstormy16-asm.c:157
-msgid "Operand is not a symbol"
-msgstr "Operand muss ein Symbol sein"
+#: lexsup.c:785
+msgid "%P%F: unrecognized -a option `%s'\n"
+msgstr "%P%F: nicht erkannte -a-Option »%s«\n"
-#: xstormy16-asm.c:165
-msgid "Syntax error: No trailing ')'"
-msgstr "Syntaxfehler: Kein abschließendes »)«"
+#: lexsup.c:798
+msgid "%P%F: unrecognized -assert option `%s'\n"
+msgstr "%P%F: nicht erkannte -assert-Option »%s«\n"
-#: xstormy16-desc.c:1317
-#, c-format
-msgid "internal error: xstormy16_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
-msgstr "internal error: xstormy16_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
+#: lexsup.c:841
+msgid "%F%P: unknown demangling style `%s'"
+msgstr ""
-#: xstormy16-desc.c:1400
-#, c-format
-msgid "internal error: xstormy16_cgen_cpu_open: unsupported argument `%d'"
-msgstr "internal error: xstormy16_cgen_cpu_open: unsupported argument `%d'"
+#: lexsup.c:907 lexsup.c:1341
+msgid "%P%F: invalid number `%s'\n"
+msgstr "%P%F: ungültige Zahl »%s«\n"
-#: xstormy16-desc.c:1419
-#, c-format
-msgid "internal error: xstormy16_cgen_cpu_open: no endianness specified"
-msgstr "internal error: xstormy16_cgen_cpu_open: no endianness specified"
+#: lexsup.c:1005
+msgid "%P%F: bad --unresolved-symbols option: %s\n"
+msgstr ""
-#~ msgid "can't find i386-opc.tbl for reading, errno = %s\n"
-#~ msgstr "Kann »i386-opc.tbl« nicht zum Lesen finden, errno = %s\n"
+#: lexsup.c:1076
+msgid "%P%F: bad -plugin-opt option\n"
+msgstr "%P%F: fehlerhafte -plugin-opt-Option\n"
+
+#. This can happen if the user put "-rpath,a" on the command
+#. line. (Or something similar. The comma is important).
+#. Getopt becomes confused and thinks that this is a -r option
+#. but it cannot parse the text after the -r so it refuses to
+#. increment the optind counter. Detect this case and issue
+#. an error message here. We cannot just make this a warning,
+#. increment optind, and continue because getopt is too confused
+#. and will seg-fault the next time around.
+#: lexsup.c:1093
+msgid "%P%F: bad -rpath option\n"
+msgstr "%P%F: fehlerhafte -rpath-Option\n"
+
+#: lexsup.c:1207
+msgid "%P%F: -shared not supported\n"
+msgstr "%P%F: -shared nicht unterstützt\n"
+
+#: lexsup.c:1216
+msgid "%P%F: -pie not supported\n"
+msgstr "%P%F: -pie nicht unterstützt\n"
+
+#: lexsup.c:1224
+msgid "descending"
+msgstr "absteigend"
+
+#: lexsup.c:1226
+msgid "ascending"
+msgstr "aufsteigend"
+
+#: lexsup.c:1229
+msgid "%P%F: invalid common section sorting option: %s\n"
+msgstr ""
-#~ msgid ""
-#~ "\n"
-#~ " msa Recognize MSA instructions.\n"
-#~ msgstr ""
-#~ "\n"
-#~ " msa MSA-Befehle erkennen.\n"
+#: lexsup.c:1233
+msgid "name"
+msgstr "Name"
-#~ msgid ""
-#~ "\n"
-#~ " hwr-names=ARCH Print HWR names according to specified \n"
-#~ " architecture.\n"
-#~ " Default: based on binary being disassembled.\n"
-#~ msgstr ""
-#~ "\n"
-#~ " hwr-names=ARCH Namen der Hardwareregister entsprechend der\n"
-#~ " angegebenen Architektur ausgeben.\n"
-#~ " Standard: abhängig von der Binärdatei, die\n"
-#~ " verarbeitet wird.\n"
+#: lexsup.c:1235
+msgid "alignment"
+msgstr "Ausrichtung"
-#~ msgid ""
-#~ "\n"
-#~ " For the options above, The following values are supported for \"ARCH\":\n"
-#~ " "
-#~ msgstr ""
-#~ "\n"
-#~ " Für die obigen Optionen werden die folgenden Werte für »ARCH« unterstützt:\n"
-#~ " "
+#: lexsup.c:1238
+msgid "%P%F: invalid section sorting option: %s\n"
+msgstr ""
-#~ msgid "Internal disassembler error"
-#~ msgstr "Interner Disassemblerfehler"
+#: lexsup.c:1272
+msgid "%P%F: invalid argument to option \"--section-start\"\n"
+msgstr "%P%F: ungültiges Argument zur Option »--section-start«\n"
-#~ msgid "can't cope with insert %d\n"
-#~ msgstr "Kann nicht mit »inserv %d« umgehen.\n"
+#: lexsup.c:1279
+msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
+msgstr "%P%F: fehlend(e) Argument(e) zur Option »--section-start«\n"
-# Couldn't understand anything.
-#~ msgid "%02x\t\t*unknown*"
-#~ msgstr "%02x\t\t*unbekannt*"
+#: lexsup.c:1513
+msgid "%P%F: group ended before it began (--help for usage)\n"
+msgstr "%P%F: Gruppe endete, bevor sie begann (--help für Aufruf-Info)\n"
-#~ msgid "# <dis error: %08lx>"
-#~ msgstr "# <Disassemblierungsfehler: %08lx>"
+#: lexsup.c:1541
+msgid "%P%X: --hash-size needs a numeric argument\n"
+msgstr "%P%X: --hash-size benötigt ein numerisches Argument\n"
-#~ msgid "Internal error: bad sparc-opcode.h: \"%s\", %#.8lx, %#.8lx\n"
-#~ msgstr "Interner Fehler: Ungültiger SPARC-Opcode: \"%s\", %#.8lx, %#.8lx\n"
+#: lexsup.c:1572
+msgid "%P%F: -r and -shared may not be used together\n"
+msgstr "%P%F: -r and -shared dürfen nicht zusammen verwendet werden\n"
-#~ msgid "Illegal limm reference in last instruction!\n"
-#~ msgstr "Ungültige limm-Referenz in der letzten Anweisung!\n"
+#: lexsup.c:1615
+msgid "%P%F: -F may not be used without -shared\n"
+msgstr "%P%F: -F darf nicht ohne -shared verwendet werden\n"
-#~ msgid "unable to fit different valued constants into instruction"
-#~ msgstr "Kann Konstanten mit verschiedenen Werten nicht in einen Maschinenbefehl einsetzen"
+#: lexsup.c:1617
+msgid "%P%F: -f may not be used without -shared\n"
+msgstr "%P%F: -f darf nicht ohne -shared verwendet werden\n"
-#~ msgid "auxiliary register not allowed here"
-#~ msgstr "Hilfsregister ist an dieser Stelle nicht erlaubt"
+#: lexsup.c:1661 lexsup.c:1674
+msgid "%P%F: invalid hex number `%s'\n"
+msgstr "%P%F: ungültige Hexadezimalzahl »%s«\n"
-#~ msgid "too many long constants"
-#~ msgstr "Zu viele lange Konstanten"
+#: lexsup.c:1710
+#, c-format
+msgid "Usage: %s [options] file...\n"
+msgstr "Aufruf: %s [Optionen] Datei …\n"
-#~ msgid "too many shimms in load"
-#~ msgstr "Zu viele shimms im Ladebefehl"
+#: lexsup.c:1712
+#, c-format
+msgid "Options:\n"
+msgstr "Optionen:\n"
-#~ msgid "impossible store"
-#~ msgstr "Unmögliches Speichern"
+#: lexsup.c:1790
+#, c-format
+msgid " @FILE"
+msgstr " @DATEI"
-#~ msgid "st operand error"
-#~ msgstr "Fehler im st-Operanden"
+#: lexsup.c:1793
+#, c-format
+msgid "Read options from FILE\n"
+msgstr "Optionen aus DATEI lesen\n"
-#~ msgid "address writeback not allowed"
-#~ msgstr "Adressen-Zurückschreiben nicht erlaubt"
+#. Note: Various tools (such as libtool) depend upon the
+#. format of the listings below - do not change them.
+#: lexsup.c:1798
+#, c-format
+msgid "%s: supported targets:"
+msgstr "%s: Unterstützte Ziele:"
-#~ msgid "invalid load/shimm insn"
-#~ msgstr "Ungültiger load/shimm-Maschinenbefehl"
+#: lexsup.c:1806
+#, c-format
+msgid "%s: supported emulations: "
+msgstr "%s: Unterstützte Emulationen:"
-#~ msgid "ld operand error"
-#~ msgstr "Fehler im ld-Operanden"
+#: lexsup.c:1811
+#, c-format
+msgid "%s: emulation specific options:\n"
+msgstr "%s: Emulationsspezifische Optionen:\n"
-#~ msgid "jump flags, but no .f seen"
-#~ msgstr "Sprungflags, aber kein .f zu sehen"
+#: lexsup.c:1816
+#, c-format
+msgid "Report bugs to %s\n"
+msgstr ""
+"Melden Sie Fehler an: %s\n"
+"Übersetzungsfehler melden Sie bitte an:\n"
+"<translation-team-de@lists.sourceforge.net>\n"
-#~ msgid "jump flags, but no limm addr"
-#~ msgstr "Sprungflags, aber keine limm-Adresse"
+#: mri.c:294
+msgid "%P%F: unknown format type %s\n"
+msgstr "%P%F: unbekannter Format-Typ %s\n"
-#~ msgid "flag bits of jump address limm lost"
-#~ msgstr "Flag-Bits der limm-Sprungadresse verloren"
+#: pe-dll.c:431
+#, c-format
+msgid "%XUnsupported PEI architecture: %s\n"
+msgstr "%XNicht unterstützte PEI-Architektur: %s\n"
-#~ msgid "attempt to set HR bits"
-#~ msgstr "Versuch, die HR-Bits zu setzen"
+#: pe-dll.c:788
+#, c-format
+msgid "%XCannot export %s: invalid export name\n"
+msgstr "%X%s kann nicht exportiert werden: ungültiger Export-Name\n"
-#~ msgid "bad jump flags value"
-#~ msgstr "Falscher Wert für Sprungflags"
+#: pe-dll.c:845
+#, c-format
+msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
+msgstr ""
-#~ msgid "branch address not on 4 byte boundary"
-#~ msgstr "Sprungadresse nicht an 4-Byte-Grenze"
+#: pe-dll.c:852
+#, c-format
+msgid "Warning, duplicate EXPORT: %s\n"
+msgstr "Warnung, doppelter EXPORT: %s\n"
-#~ msgid "must specify .jd or no nullify suffix"
-#~ msgstr "Entweder muss .jd angegeben werden oder das Suffix ausgenullt werden."
+#: pe-dll.c:939
+#, c-format
+msgid "%XCannot export %s: symbol not defined\n"
+msgstr "%X%s kann nicht exportiert werden: Symbol nicht definiert\n"
+
+#: pe-dll.c:945
+#, c-format
+msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n"
+msgstr "%X%s kann nicht exportiert werden: Symbol des falschen Typs (%d vs %d)\n"
-#~ msgid "# internal error, incomplete extension sequence (+)"
-#~ msgstr "# Interner Fehler, unvollständige Erweiterungsfolge (+)"
+#: pe-dll.c:952
+#, c-format
+msgid "%XCannot export %s: symbol not found\n"
+msgstr "%X%s kann nicht exportiert werden: Symbol nicht gefunden\n"
-#~ msgid "# internal error, undefined extension sequence (+%c)"
-#~ msgstr "# Interner Fehler, undefinierte Erweiterungsfolge (+%c)"
+#: pe-dll.c:1066
+#, c-format
+msgid "%XError, ordinal used twice: %d (%s vs %s)\n"
+msgstr ""
-#~ msgid "# internal disassembler error, unrecognized modifier (+%c)"
-#~ msgstr "# Interner Fehler im Disassembler: unerkannter Modifikator (+%c)"
+#: pe-dll.c:1456
+#, c-format
+msgid "%XError: %d-bit reloc in dll\n"
+msgstr ""
-#~ msgid "# internal disassembler error, unrecognized modifier (m%c)"
-#~ msgstr "# Interner Fehler im Disassembler: unerkannter Modifikator (m%c)"
+#: pe-dll.c:1584
+#, c-format
+msgid "%s: Can't open output def file %s\n"
+msgstr ""
-#~ msgid "# internal disassembler error, unrecognized modifier (%c)"
-#~ msgstr "# Interner Fehler im Disassembler: unerkannter Modifikator (%c)"
+#: pe-dll.c:1735
+#, c-format
+msgid "; no contents available\n"
+msgstr "; kein Inhalt verfügbar\n"
-#~ msgid "unknown\t0x%04x"
-#~ msgstr "unbekannt\t0x%04x"
+#: pe-dll.c:2662
+msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n"
+msgstr ""
-#~ msgid "offset not a multiple of 2"
-#~ msgstr "Offset muss ein Vielfaches von 2 sein"
+#: pe-dll.c:2692
+#, c-format
+msgid "%XCan't open .lib file: %s\n"
+msgstr "%X .lib-Datei kann nicht geöffnet werden: %s\n"
-#~ msgid "offset greater than 62"
-#~ msgstr "Offset darf nicht größer als 62 sein"
+#: pe-dll.c:2697
+#, c-format
+msgid "Creating library file: %s\n"
+msgstr "Bibliotheksdatei wird erzeugt: %s\n"
-#~ msgid "offset not a multiple of 4"
-#~ msgstr "Offset muss ein Vielfaches von 4 sein"
+#: pe-dll.c:2726
+#, c-format
+msgid "%Xbfd_openr %s: %E\n"
+msgstr "%Xbfd_openr %s: %E\n"
-#~ msgid "offset greater than 124"
-#~ msgstr "Offset darf nicht größer als 124 sein"
+#: pe-dll.c:2738
+#, c-format
+msgid "%X%s(%s): can't find member in non-archive file"
+msgstr ""
-#~ msgid "offset not a multiple of 8"
-#~ msgstr "Offset muss ein Vielfaches von 8 sein"
+#: pe-dll.c:2750
+#, c-format
+msgid "%X%s(%s): can't find member in archive"
+msgstr "%X%s(%s): Element kann im Archiv nicht gefunden werden"
-#~ msgid "offset greater than 248"
-#~ msgstr "Offset darf nicht größer als 248 sein"
+#: pe-dll.c:3189
+#, c-format
+msgid "%XError: can't use long section names on this arch\n"
+msgstr ""
-#~ msgid "offset not between -2048 and 2047"
-#~ msgstr "Offset muss im Bereich von -2048 bis 2047 liegen"
+#: plugin.c:177 plugin.c:211
+msgid "<no plugin>"
+msgstr "<kein Plugin>"
-#~ msgid "offset not between -8192 and 8191"
-#~ msgstr "Offset muss im Bereich von -8192 bis 8191 liegen"
+#: plugin.c:250
+#, c-format
+msgid "could not create dummy IR bfd: %F%E\n"
+msgstr ""
-#~ msgid "ignoring least significant bits in branch offset"
-#~ msgstr "Ignoriere niedrigste Bits im Verzweigungsoffset"
+#: plugin.c:343
+msgid "%P%F: %s: non-ELF symbol in ELF BFD!\n"
+msgstr "%P%F: %s: nicht-ELF-Symbol in ELF-BFD!\n"
-#~ msgid "target register operand must be even"
-#~ msgstr "Der Zielregisteroperand muss gerade sein"
+#: plugin.c:347
+msgid "%P%F: unknown ELF symbol visibility: %d!\n"
+msgstr ""
-#~ msgid "source register operand must be even"
-#~ msgstr "Der Quellregisteroperand muss gerade sein"
+#: plugin.c:586
+msgid "%P: %B: symbol `%s' definition: %d, visibility: %d, resolution: %d\n"
+msgstr ""
-#~ msgid "branch value not in range and to an odd offset"
-#~ msgstr "Verzweigungswert außerhalb des gültigen Bereichs und zu einem ungeraden Offset."
+#: plugin.c:863
+msgid "%P%F: %s: plugin reported error claiming file\n"
+msgstr ""
-#~ msgid "immediate value not in range and not even"
-#~ msgstr "Direktwert außerhalb des gültigen Bereichs und nicht gerade"
+#: plugin.c:934
+msgid "%P: %s: error in plugin cleanup (ignored)\n"
+msgstr "%P: %s: Fehler beim Aufräumen des Plugins (ignoriert)\n"
diff --git a/ld/po/es.po b/ld/po/es.po
index 3111da2..e5cbc2d 100644
--- a/ld/po/es.po
+++ b/ld/po/es.po
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: ld 2.44.90\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
"POT-Creation-Date: 2025-07-13 08:53+0100\n"
-"PO-Revision-Date: 2025-07-16 08:01+0200\n"
+"PO-Revision-Date: 2025-08-01 08:07+0200\n"
"Last-Translator: Antonio Ceballos Roa <aceballos@gmail.com>\n"
"Language-Team: Spanish <es@tp.org.es>\n"
"Language: es\n"
@@ -1408,11 +1408,11 @@ msgstr "Activa avisos cuando --enable-non-contiguous-regions puede provocar comp
#: lexsup.c:134
msgid "Disable the LINKER_VERSION linker script directive"
-msgstr ""
+msgstr "Desactiva la directiva de script de enlazado LINKER_VERSION"
#: lexsup.c:136
msgid "Enable the LINKER_VERSION linker script directive"
-msgstr ""
+msgstr "Activa la directiva de script de enlazado LINKER_VERSION"
#: lexsup.c:138
msgid "Link big-endian objects"
@@ -1540,7 +1540,7 @@ msgstr "Envía el argumento al último plugin cargado"
#: lexsup.c:191
msgid "Store plugin intermediate files permanently"
-msgstr ""
+msgstr "Almacena los ficheros intermedios de «plugin» permanentemente"
#: lexsup.c:194 lexsup.c:197
msgid "Ignored for GCC LTO option compatibility"
@@ -1576,7 +1576,7 @@ msgstr "Sólo enlaza símbolos (si es un directorio, es igual que --rpath)"
#: lexsup.c:229
msgid "PATTERN=FILE"
-msgstr ""
+msgstr "PATRÓN=FICHERO"
#: lexsup.c:232
msgid "Strip all symbols"
@@ -1922,7 +1922,7 @@ msgstr "Reduce las saturaciones de memoria, tal vez tomando más tiempo"
#: lexsup.c:457
msgid "Set the maximum cache size to SIZE bytes"
-msgstr ""
+msgstr "Establece el tamaño máximo de caché en TAMAÑO bytes"
#: lexsup.c:460
msgid "Reduce code size by using target specific optimizations"
@@ -1974,7 +1974,7 @@ msgstr "Ordena secciones por nombre o alineación máxima"
#: lexsup.c:492
msgid "Sort sections by statements in FILE"
-msgstr ""
+msgstr "Ordena las secciones por instrucciones en FICHERO"
#: lexsup.c:494
msgid "COUNT"
@@ -2709,7 +2709,7 @@ msgstr " Estilos: none,md5,sha1,uuid,0xHEX\n"
#: lexsup.c:2286
#, c-format
msgid " --package-metadata[=JSON] Generate package metadata note\n"
-msgstr ""
+msgstr " --package-metadata[=JSON] Genera nota de metadatos del paquete\n"
#: lexsup.c:2288
#, c-format
@@ -2954,481 +2954,439 @@ msgstr "%s: opciones específicas de emulación:\n"
#: lexsup.c:2508
#, c-format
msgid "Report bugs to %s\n"
-msgstr "Reporte bichos a %s\n"
+msgstr "Reporte errores a %s\n"
#: mri.c:291
-#, fuzzy
-#| msgid "%F%P: unknown format type %s\n"
msgid "%P: unknown format type %s\n"
msgstr "%P: tipo de formato %s desconocido\n"
#: pdb.c:845 pdb.c:1136
msgid "%P: CodeView symbol references out of range type %v\n"
-msgstr ""
+msgstr "%P: símbolo CodeView referencia tipo fuera de rango %v\n"
#: pdb.c:1014
msgid "%P: warning: truncated CodeView record S_LDATA32/S_GDATA32/S_LTHREAD32/S_GTHREAD32\n"
-msgstr ""
+msgstr "%P: aviso: registro CodeView truncado S_LDATA32/S_GDATA32/S_LTHREAD32/S_GTHREAD32\n"
#: pdb.c:1033
msgid "%P: warning: name for S_LDATA32/S_GDATA32/S_LTHREAD32/S_GTHREAD32 has no terminating zero\n"
-msgstr ""
+msgstr "%P: aviso: el nombre de S_LDATA32/S_GDATA32/S_LTHREAD32/S_GTHREAD32 no tiene cero final\n"
#: pdb.c:1081 pdb.c:1751
msgid "%P: warning: truncated CodeView record S_GPROC32/S_LPROC32\n"
-msgstr ""
+msgstr "%P: aviso: registro CodeView truncado S_GPROC32/S_LPROC32\n"
#: pdb.c:1093 pdb.c:1768
msgid "%P: warning: could not find end of S_GPROC32/S_LPROC32 record\n"
-msgstr ""
+msgstr "%P: aviso: no se ha podido encontrar el final del registro S_GPROC32/S_LPROC32\n"
#: pdb.c:1119
msgid "%P: warning: name for S_GPROC32/S_LPROC32 has no terminating zero\n"
-msgstr ""
+msgstr "%P: aviso: el nombre de S_GPROC32/S_LPROC32 no tiene cero final\n"
#: pdb.c:1175
msgid "%P: CodeView S_GPROC32_ID/S_LPROC32_ID symbol referenced unknown type as ID\n"
-msgstr ""
+msgstr "%P: símbolo CodeView S_GPROC32_ID/S_LPROC32_ID hace referencia un tipo desconocido como ID\n"
#: pdb.c:1249
msgid "%P: warning: truncated CodeView record S_UDT\n"
-msgstr ""
+msgstr "%P: aviso: registro CodeView S_UDT truncado\n"
#: pdb.c:1260
msgid "%P: warning: name for S_UDT has no terminating zero\n"
-msgstr ""
+msgstr "%P: aviso: el nombre de S_UDT no tiene cero final\n"
#: pdb.c:1297
msgid "%P: warning: truncated CodeView record S_CONSTANT\n"
-msgstr ""
+msgstr "%P: aviso: registro CodeView S_CONSTANT truncado\n"
#: pdb.c:1314
msgid "%P: warning: unhandled type %v within S_CONSTANT\n"
-msgstr ""
+msgstr "%P: aviso: tipo %v no manejado en S_CONSTANT\n"
#: pdb.c:1328
msgid "%P: warning: name for S_CONSTANT has no terminating zero\n"
-msgstr ""
+msgstr "%P: aviso: el nombre de S_CONSTANT no tiene cero final\n"
#: pdb.c:1388
msgid "%P: warning: unexpected CodeView scope start record %v\n"
-msgstr ""
+msgstr "%P: aviso: registro %v de comienzo de alcance CodeView inesperado\n"
#: pdb.c:1410
msgid "%P: warning: truncated CodeView record S_BUILDINFO\n"
-msgstr ""
+msgstr "%P: aviso: registro CodeView S_BUILDINFO truncado\n"
#: pdb.c:1436
msgid "%P: warning: truncated CodeView record S_BLOCK32\n"
-msgstr ""
+msgstr "%P: aviso: registro CodeView S_BLOCK32 truncado\n"
#: pdb.c:1448
msgid "%P: warning: could not find end of S_BLOCK32 record\n"
-msgstr ""
+msgstr "%P: aviso: no se ha podido encontrar el final del registro S_BLOCK32\n"
#: pdb.c:1473
msgid "%P: warning: truncated CodeView record S_BPREL32\n"
-msgstr ""
+msgstr "%P: aviso: registro CodeView S_BPREL32 truncado\n"
#: pdb.c:1497
msgid "%P: warning: truncated CodeView record S_REGISTER\n"
-msgstr ""
+msgstr "%P: aviso: registro CodeView S_REGISTER truncado\n"
#: pdb.c:1521
msgid "%P: warning: truncated CodeView record S_REGREL32\n"
-msgstr ""
+msgstr "%P: aviso: registro CodeView S_REGREL32 truncado\n"
#: pdb.c:1545
msgid "%P: warning: truncated CodeView record S_LOCAL\n"
-msgstr ""
+msgstr "%P: aviso: registro CodeView S_LOCAL truncado\n"
#: pdb.c:1571
msgid "%P: warning: truncated CodeView record S_INLINESITE\n"
-msgstr ""
+msgstr "%P: aviso: registro CodeView S_INLINESITE truncado\n"
#: pdb.c:1583
msgid "%P: warning: could not find end of S_INLINESITE record\n"
-msgstr ""
+msgstr "%P: aviso: no se ha podido encontrar el final del registro S_INLINESITE\n"
#: pdb.c:1616
msgid "%P: warning: truncated CodeView record S_THUNK32\n"
-msgstr ""
+msgstr "%P: aviso: registro CodeView S_THUNK32 truncado\n"
#: pdb.c:1628
msgid "%P: warning: could not find end of S_THUNK32 record\n"
-msgstr ""
+msgstr "%P: aviso: no se ha podido encontrar el final del registro S_THUNK32\n"
#: pdb.c:1653
msgid "%P: warning: truncated CodeView record S_HEAPALLOCSITE\n"
-msgstr ""
+msgstr "%P: aviso: registro CodeView S_HEAPALLOCSITE truncado\n"
#: pdb.c:1687 pdb.c:1831
-#, fuzzy
-#| msgid "%P: warning: unrecognized --build-id style ignored\n"
msgid "%P: warning: unrecognized CodeView record %v\n"
-msgstr "%P: aviso: se descarta estilo --build-id no reconocido\n"
+msgstr "%P: aviso: registro %v CodeView no reconocido\n"
#: pdb.c:1723
msgid "%P: warning: truncated CodeView record S_LDATA32/S_LTHREAD32\n"
-msgstr ""
+msgstr "%P: aviso: registro CodeView S_LDATA32/S_LTHREAD32 truncado\n"
#: pdb.c:1879
msgid "%P: warning: truncated DEBUG_S_INLINEELINES data\n"
-msgstr ""
+msgstr "%P: aviso: registro CodeView DEBUG_S_INLINEELINES truncado\n"
#: pdb.c:1886
msgid "%P: warning: unexpected DEBUG_S_INLINEELINES version %u\n"
-msgstr ""
+msgstr "%P: aviso: registro CodeView DEBUG_S_INLINEELINES truncado\n"
#: pdb.c:2239
msgid "%P: CodeView type %v references other type %v not yet declared\n"
-msgstr ""
+msgstr "%P: el tipo CodeView %v hace referencia a otro tipo %v no declarado todavía\n"
#: pdb.c:2246
msgid "%P: CodeView type %v references out of range type %v\n"
-msgstr ""
+msgstr "%P: el tipo CodeView %v hace referencia al tipo tipo fuera de rango %v\n"
#: pdb.c:2306
msgid "%P: warning: truncated CodeView type record LF_UDT_SRC_LINE\n"
-msgstr ""
+msgstr "%P: aviso: registro CodeView LF_UDT_SRC_LINE truncado\n"
#: pdb.c:2319
msgid "%P: warning: CodeView type record LF_UDT_SRC_LINE referred to unknown type %v\n"
-msgstr ""
+msgstr "%P: aviso: el registro LF_UDT_SRC_LINE de tipo CodeView hace referencia al tipo desconocido %v\n"
#: pdb.c:2341
msgid "%P: warning: CodeView type record LF_UDT_SRC_LINE referred to unknown string %v\n"
-msgstr ""
+msgstr "%P: aviso: el registro LF_UDT_SRC_LINE de tipo CodeView hace referencia a la cadena desconocida %v\n"
#: pdb.c:2350
msgid "%P: warning: CodeView type record LF_UDT_SRC_LINE pointed to unexpected record type\n"
-msgstr ""
+msgstr "%P: aviso: el registro LF_UDT_SRC_LINE de tipo CodeView apunta a un tipo de registro desconocido\n"
#: pdb.c:2399
msgid "%P: warning: duplicate CodeView type record LF_UDT_MOD_SRC_LINE\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_UDT_MOD_SRC_LINE de tipo CodeView duplicado\n"
#: pdb.c:2448
msgid "%P: warning: truncated CodeView type record LF_MODIFIER\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_MODIFIER de tipo CodeView truncado\n"
#: pdb.c:2466 pdb.c:2481
msgid "%P: warning: truncated CodeView type record LF_POINTER\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_POINTER de tipo CodeView truncado\n"
#: pdb.c:2499
msgid "%P: warning: truncated CodeView type record LF_PROCEDURE\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_PROCEDURE de tipo CodeView truncado\n"
#: pdb.c:2519
msgid "%P: warning: truncated CodeView type record LF_MFUNCTION\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_MFUNCTION de tipo CodeView truncado\n"
#: pdb.c:2547 pdb.c:2557
msgid "%P: warning: truncated CodeView type record LF_ARGLIST\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_ARGLIST de tipo CodeView truncado\n"
#: pdb.c:2582 pdb.c:2652 pdb.c:2789 pdb.c:2836 pdb.c:3054 pdb.c:3101
msgid "%P: warning: truncated CodeView type record LF_FIELDLIST\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_FIELDLIST de tipo CodeView truncado\n"
#: pdb.c:2599 pdb.c:2627
msgid "%P: warning: truncated CodeView type record LF_MEMBER\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_MEMBER de tipo CodeView truncado\n"
#: pdb.c:2618
msgid "%P: warning: unhandled type %v within LF_MEMBER\n"
-msgstr ""
+msgstr "%P: aviso: tipo %v no manejado en LF_MEMBER\n"
#: pdb.c:2638
msgid "%P: warning: name for LF_MEMBER has no terminating zero\n"
-msgstr ""
+msgstr "%P: aviso: nombre de LF_MEMBER sin cero final\n"
#: pdb.c:2671 pdb.c:2694 pdb.c:2721
msgid "%P: warning: truncated CodeView type record LF_ENUMERATE\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_ENUMERATE de tipo CodeView truncado\n"
#: pdb.c:2687
msgid "%P: warning: unhandled type %v within LF_ENUMERATE\n"
-msgstr ""
+msgstr "%P: aviso: tipo %v no manejado en LF_ENUMERATE\n"
#: pdb.c:2707
msgid "%P: warning: name for LF_ENUMERATE has no terminating zero\n"
-msgstr ""
+msgstr "%P: aviso: nombre de LF_ENUMERATE sin cero final\n"
#: pdb.c:2738
msgid "%P: warning: truncated CodeView type record LF_INDEX\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_INDEX de tipo CodeView truncado\n"
#: pdb.c:2759
msgid "%P: warning: truncated CodeView type record LF_ONEMETHOD\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_ONEMETHOD de tipo CodeView truncado\n"
#: pdb.c:2774
msgid "%P: warning: name for LF_ONEMETHOD has no terminating zero\n"
-msgstr ""
+msgstr "%P: aviso: nombre de LF_ONEMETHOD sin cero final\n"
#: pdb.c:2807
msgid "%P: warning: truncated CodeView type record LF_METHOD\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_METHOD de tipo CodeView truncado\n"
#: pdb.c:2822
msgid "%P: warning: name for LF_METHOD has no terminating zero\n"
-msgstr ""
+msgstr "%P: aviso: nombre de LF_METHOD sin cero final\n"
#: pdb.c:2855 pdb.c:2884 pdb.c:2895
msgid "%P: warning: truncated CodeView type record LF_BCLASS\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_BCLASS de tipo CodeView truncado\n"
#: pdb.c:2875
msgid "%P: warning: unhandled type %v within LF_BCLASS\n"
-msgstr ""
+msgstr "%P: aviso: tipo %v no manejado en LF_BCLASS\n"
#: pdb.c:2912
msgid "%P: warning: truncated CodeView type record LF_VFUNCTAB\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_VFUNCTAB de tipo CodeView truncado\n"
#: pdb.c:2935 pdb.c:2969 pdb.c:2994 pdb.c:3005
msgid "%P: warning: truncated CodeView type record LF_VBCLASS/LF_IVBCLASS\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_VBCLASS/LF_IVBCLASS de tipo CodeView truncado\n"
#: pdb.c:2960 pdb.c:2985
msgid "%P: warning: unhandled type %v within LF_VBCLASS/LF_IVBCLASS\n"
-msgstr ""
+msgstr "%P: aviso: tipo %v no manejado en LF_VBCLASS/LF_IVBCLASS\n"
#: pdb.c:3024
msgid "%P: warning: truncated CodeView type record LF_STMEMBER\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_STMEMBER de tipo CodeView truncado\n"
#: pdb.c:3039
msgid "%P: warning: name for LF_STMEMBER has no terminating zero\n"
-msgstr ""
+msgstr "%P: aviso: nombre de LF_STMEMBER sin cero final\n"
#: pdb.c:3072
msgid "%P: warning: truncated CodeView type record LF_NESTTYPE\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_NESTTYPE de tipo CodeView truncado\n"
#: pdb.c:3086
msgid "%P: warning: name for LF_NESTTYPE has no terminating zero\n"
-msgstr ""
+msgstr "%P: aviso: nombre de LF_NESTTYPE sin cero final\n"
#: pdb.c:3113
-#, fuzzy
-#| msgid "%P: warning: unrecognized --build-id style ignored\n"
msgid "%P: warning: unrecognized CodeView subtype %v\n"
-msgstr "%P: aviso: se descarta estilo --build-id no reconocido\n"
+msgstr "%P: aviso: subtipo CodeView %v no reconocido\n"
#: pdb.c:3128
msgid "%P: warning: truncated CodeView type record LF_BITFIELD\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_BITFIELD de tipo CodeView truncado\n"
#: pdb.c:3146
msgid "%P: warning: truncated CodeView type record LF_METHODLIST\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_METHODLIST de tipo CodeView truncado\n"
#: pdb.c:3154
msgid "%P: warning: malformed CodeView type record LF_METHODLIST\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_METHODLIST de tipo CodeView truncado\n"
#: pdb.c:3178
msgid "%P: warning: truncated CodeView type record LF_ARRAY\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_ARRAY de tipo CodeView truncado\n"
#: pdb.c:3201 pdb.c:3235
msgid "%P: warning: truncated CodeView type record LF_CLASS/LF_STRUCTURE\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_CLASS/LF_STRUCTURE de tipo CodeView truncado\n"
#: pdb.c:3226
msgid "%P: warning: unhandled type %v within LF_CLASS/LF_STRUCTURE\n"
-msgstr ""
+msgstr "%P: aviso: tipo %v no manejado en LF_CLASS/LF_STRUCTURE\n"
#: pdb.c:3245
msgid "%P: warning: name for LF_CLASS/LF_STRUCTURE has no terminating zero\n"
-msgstr ""
+msgstr "%P: aviso: nombre de LF_CLASS/LF_STRUCTURE sin cero final\n"
#: pdb.c:3264
msgid "%P: warning: unique name for LF_CLASS/LF_STRUCTURE has no terminating zero\n"
-msgstr ""
+msgstr "%P: aviso: nombre único de LF_CLASS/LF_STRUCTURE sin cero final\n"
#: pdb.c:3288 pdb.c:3316
msgid "%P: warning: truncated CodeView type record LF_UNION\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_UNION de tipo CodeView truncado\n"
#: pdb.c:3307
-#, fuzzy
-#| msgid "%P: warning: unknown machine type %u"
msgid "%P: warning: unhandled type %v within LF_UNION\n"
-msgstr "%P: aviso: tipo de máquina no conocido %u"
+msgstr "%P: aviso: tipo %v no manejado en LF_UNION\n"
#: pdb.c:3326
msgid "%P: warning: name for LF_UNION has no terminating zero\n"
-msgstr ""
+msgstr "%P: aviso: nombre de LF_UNION sin cero final\n"
#: pdb.c:3345
msgid "%P: warning: unique name for LF_UNION has no terminating zero\n"
-msgstr ""
+msgstr "%P: aviso: nombre único de LF_UNION sin cero final\n"
#: pdb.c:3369
msgid "%P: warning: truncated CodeView type record LF_ENUM\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_ENUM de tipo CodeView truncado\n"
#: pdb.c:3384
msgid "%P: warning: name for LF_ENUM has no terminating zero\n"
-msgstr ""
+msgstr "%P: aviso: nombre de LF_ENUM sin cero final\n"
#: pdb.c:3402
msgid "%P: warning: unique name for LF_ENUM has no terminating zero\n"
-msgstr ""
+msgstr "%P: aviso: nombre único de LF_ENUM sin cero final\n"
#: pdb.c:3421
msgid "%P: warning: truncated CodeView type record LF_VFTABLE\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_VFTABLE de tipo CodeView truncado\n"
#: pdb.c:3442
msgid "%P: warning: truncated CodeView type record LF_STRING_ID\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_STRING_ID de tipo CodeView truncado\n"
#: pdb.c:3455
msgid "%P: warning: string for LF_STRING_ID has no terminating zero\n"
-msgstr ""
+msgstr "%P: aviso: cadena de LF_STRING_ID sin cero final\n"
#: pdb.c:3472 pdb.c:3482
msgid "%P: warning: truncated CodeView type record LF_SUBSTR_LIST\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_SUBSTR_LIST de tipo CodeView truncado\n"
#: pdb.c:3505 pdb.c:3515
msgid "%P: warning: truncated CodeView type record LF_BUILDINFO\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_BUILDINFO de tipo CodeView truncado\n"
#: pdb.c:3538
msgid "%P: warning: truncated CodeView type record LF_FUNC_ID\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_FUNC_ID de tipo CodeView truncado\n"
#: pdb.c:3554
msgid "%P: warning: string for LF_FUNC_ID has no terminating zero\n"
-msgstr ""
+msgstr "%P: aviso: cadena de LF_FUNC_ID sin cero final\n"
#: pdb.c:3571
msgid "%P: warning: truncated CodeView type record LF_MFUNC_ID\n"
-msgstr ""
+msgstr "%P: aviso: registro LF_MFUNC_ID de tipo CodeView truncado\n"
#: pdb.c:3587
msgid "%P: warning: string for LF_MFUNC_ID has no terminating zero\n"
-msgstr ""
+msgstr "%P: aviso: cadena de LF_MFUNC_ID sin cero final\n"
#: pdb.c:3602
-#, fuzzy
-#| msgid "%P: warning: unrecognized --build-id style ignored\n"
msgid "%P: warning: unrecognized CodeView type %v\n"
-msgstr "%P: aviso: se descarta estilo --build-id no reconocido\n"
+msgstr "%P: aviso: tipo CodeView %v no reconocido\n"
#: pdb.c:3776
msgid "%P: warning: unable to get working directory\n"
-msgstr ""
+msgstr "%P: aviso: no se puede obtener el directorio de trabajo\n"
#: pdb.c:3784
-#, fuzzy
-#| msgid "%P: warning: global constructor %s used\n"
msgid "%P: warning: unable to get program name\n"
-msgstr "%P: aviso: se usó el constructor global %s\n"
+msgstr "%P: aviso: no se puede obtener el nombre del programa\n"
#: pdb.c:3793
msgid "%P: warning: unable to get full path to PDB\n"
-msgstr ""
+msgstr "%P: aviso: no se puede obtener la ruta completa de PDB\n"
#: pdb.c:5249
-#, fuzzy
-#| msgid "%F%P: can not create BFD: %E\n"
msgid "%P: warning: cannot create PDB file: %E\n"
-msgstr "%P: no se puede crear BFD: %E\n"
+msgstr "%P: no se puede crear el fichero PDB: %E\n"
#: pdb.c:5264
-#, fuzzy
-#| msgid "%P: warning: cannot create .buildid section, --build-id ignored\n"
msgid "%P: warning: cannot create old directory stream in PDB file: %E\n"
-msgstr "%P: aviso: no se puede crear la sección .buildid, se descarta --build-id\n"
+msgstr "%P: aviso: no se puede crear el flujoa del directorio antiguo en el fichero PDB: %E\n"
#: pdb.c:5273
-#, fuzzy
-#| msgid "%P%F: cannot create name for linker map file: %E\n"
msgid "%P: warning: cannot create info stream in PDB file: %E\n"
-msgstr "%P%F: no se puede crear el nombre del fichero de mapa del enlazador: %E\n"
+msgstr "%P: aviso: no se puede crear el flujo info en el fichero PDB: %E\n"
#: pdb.c:5282
-#, fuzzy
-#| msgid "%P%F: cannot create name for linker map file: %E\n"
msgid "%P: warning: cannot create TPI stream in PDB file: %E\n"
-msgstr "%P%F: no se puede crear el nombre del fichero de mapa del enlazador: %E\n"
+msgstr "%P: aviso: no se puede crear el flujo TPI en el fichero PDB: %E\n"
#: pdb.c:5291
-#, fuzzy
-#| msgid "%P%F: cannot create name for linker map file: %E\n"
msgid "%P: warning: cannot create DBI stream in PDB file: %E\n"
-msgstr "%P%F: no se puede crear el nombre del fichero de mapa del enlazador: %E\n"
+msgstr "%P: aviso: no se puede crear el flujo DBI en el fichero PDB: %E\n"
#: pdb.c:5300
-#, fuzzy
-#| msgid "%P%F: cannot create name for linker map file: %E\n"
msgid "%P: warning: cannot create IPI stream in PDB file: %E\n"
-msgstr "%P%F: no se puede crear el nombre del fichero de mapa del enlazador: %E\n"
+msgstr "%P: aviso: no se puede crear el flujo IPI en el fichero PDB: %E\n"
#: pdb.c:5309
-#, fuzzy
-#| msgid "%P%F: cannot create name for linker map file: %E\n"
msgid "%P: warning: cannot create /names stream in PDB file: %E\n"
-msgstr "%P%F: no se puede crear el nombre del fichero de mapa del enlazador: %E\n"
+msgstr "%P: aviso: no se puede crear el flujo /names en el fichero PDB: %E\n"
#: pdb.c:5318
-#, fuzzy
-#| msgid "%P%F: cannot create name for linker map file: %E\n"
msgid "%P: warning: cannot create symbol record stream in PDB file: %E\n"
-msgstr "%P%F: no se puede crear el nombre del fichero de mapa del enlazador: %E\n"
+msgstr "%P: aviso: no se puede crear el flujo de registro de símbolo en el fichero PDB: %E\n"
#: pdb.c:5327
-#, fuzzy
-#| msgid "%P: warning: cannot create .buildid section, --build-id ignored\n"
msgid "%P: warning: cannot create publics stream in PDB file: %E\n"
-msgstr "%P: aviso: no se puede crear la sección .buildid, se descarta --build-id\n"
+msgstr "%P: aviso: no se puede crear el flujo de públicos en el fichero PDB\n"
#: pdb.c:5334
-#, fuzzy
-#| msgid "%P%F: cannot create name for linker map file: %E\n"
msgid "%P: warning: cannot create section header stream in PDB file: %E\n"
-msgstr "%P%F: no se puede crear el nombre del fichero de mapa del enlazador: %E\n"
+msgstr "%P: aviso: no se puede crear el flujo de cabecera de sección en el fichero PDB: %E\n"
#: pdb.c:5353
-#, fuzzy
-#| msgid "%P: cannot stat linker map file: %E\n"
msgid "%P: warning: cannot populate DBI stream in PDB file: %E\n"
-msgstr "%P: no se puede el estado del fichero de mapa del enlazador: %E\n"
+msgstr "%P: aviso: no se puede rellenar el flujo DBI en el fichero PDB: %E\n"
#: pdb.c:5362
-#, fuzzy
-#| msgid "%P: cannot stat linker map file: %E\n"
msgid "%P: warning: cannot populate TPI stream in PDB file: %E\n"
-msgstr "%P: no se puede el estado del fichero de mapa del enlazador: %E\n"
+msgstr "%P: aviso: no se puede rellenar el flujo TPI en el fichero PDB: %E\n"
#: pdb.c:5373
-#, fuzzy
-#| msgid "%P: cannot stat linker map file: %E\n"
msgid "%P: warning: cannot populate IPI stream in PDB file: %E\n"
-msgstr "%P: no se puede el estado del fichero de mapa del enlazador: %E\n"
+msgstr "%P: aviso: no se puede rellenar el flujo IPI en el fichero PDB: %E\n"
#: pdb.c:5385
-#, fuzzy
-#| msgid "%P%F: cannot create name for linker map file: %E\n"
msgid "%P: warning: cannot populate names stream in PDB file: %E\n"
-msgstr "%P%F: no se puede crear el nombre del fichero de mapa del enlazador: %E\n"
+msgstr "%P: aviso: no se puede rellenar el flujo de nombres en el fichero PDB: %E\n"
#: pdb.c:5392
msgid "%P: warning: cannot populate publics stream in PDB file: %E\n"
-msgstr ""
+msgstr "%P: aviso: no se puede rellenar el flujo de públicos en el fichero PDB\n"
#: pdb.c:5399
-#, fuzzy
-#| msgid "%P: %pB: warning: cannot parse .xtensa.info section\n"
msgid "%P: warning: cannot populate info stream in PDB file: %E\n"
-msgstr "%P: %pB: aviso: no se puede analizar la sección .xtensa.info\n"
+msgstr "%P: aviso: no se puede rellenar el flujo info en el fichero PDB: %E\n"
#: pe-dll.c:483
msgid "%X%P: unsupported PEI architecture: %s\n"
@@ -3490,8 +3448,6 @@ msgstr "%X%P: no se puede exportar %s: no se encuentra el símbolo\n"
#: ehppalinux.c:113 ehppanbsd.c:113 ehppaobsd.c:113 em68hc11elf.c:173
#: em68hc11elfb.c:173 em68hc12elf.c:173 em68hc12elfb.c:173 eppcmacos.c:1631
#: eppcmacos.c:1641
-#, fuzzy
-#| msgid "%F%P: can not create BFD: %E\n"
msgid "%P: can not create BFD: %E\n"
msgstr "%P: no se puede crear BFD: %E\n"
@@ -3526,7 +3482,7 @@ msgstr ""
#: pe-dll.c:1684
msgid "%P: base relocation for section `%s' above .reloc section\n"
-msgstr ""
+msgstr "%P: reubicación de base para la sección «%s» por encima de la sección .reloc\n"
#: pe-dll.c:1734
#, c-format
@@ -3544,16 +3500,12 @@ msgid "; no contents available\n"
msgstr "; no hay contenido disponible\n"
#: pe-dll.c:2368
-#, fuzzy
-#| msgid "%X%P: error: export ordinal too large: %d\n"
msgid "%P: error: NULL decorated name for %s\n"
-msgstr "%X%P: error: exportación de ordinal demasiado grande: %d\n"
+msgstr "%P: error: nombre decorado con NULL para %s\n"
#: pe-dll.c:2903
-#, fuzzy
-#| msgid "%X%P: %C: variable '%pT' can't be auto-imported; please read the documentation for ld's --enable-auto-import for details\n"
msgid "%X%P: %H: variable '%pT' can't be auto-imported; please read the documentation for ld's --enable-auto-import for details\n"
-msgstr "%X%P: %C: no se puede auto-importar la variable '%pT'. Por favor lea la documentación de --enable-auto-import de ld para más detalles\n"
+msgstr "%X%P: %H: no se puede auto-importar la variable '%pT'. Por favor, lea la documentación de --enable-auto-import de ld para más detalles\n"
#: pe-dll.c:2924
#, c-format
@@ -3598,8 +3550,6 @@ msgid "<no plugin>"
msgstr "<sin plugin>"
#: plugin.c:255 plugin.c:1139
-#, fuzzy
-#| msgid "%F%P: %s: error loading plugin: %s\n"
msgid "%P: %s: error loading plugin: %s\n"
msgstr "%P: %s: error al cargar el plugin: %s\n"
@@ -3608,26 +3558,18 @@ msgid "%P: %s: duplicated plugin\n"
msgstr "%P: %s: plugin duplicado\n"
#: plugin.c:346
-#, fuzzy
-#| msgid "%F%P: could not create dummy IR bfd: %E\n"
msgid "%P: could not create dummy IR bfd: %E\n"
-msgstr "%P: no se puede crear el bdf IR dummy: %F%E\n"
+msgstr "%P: no se puede crear el bfd IR dummy: %E\n"
#: plugin.c:428
-#, fuzzy
-#| msgid "%F%P: %s: non-ELF symbol in ELF BFD!\n"
msgid "%P: %s: non-ELF symbol in ELF BFD!\n"
-msgstr "%P: %s: ¡Símbolo que no es ELF en el BFD ELF!\n"
+msgstr "%P: %s: ¡símbolo que no es ELF en el BFD ELF!\n"
#: plugin.c:439
-#, fuzzy
-#| msgid "%F%P: unknown ELF symbol visibility: %d!\n"
msgid "%P: unknown ELF symbol visibility: %d!\n"
-msgstr "%P: visibilidad de símbolo ELF desconocida: ¡%d!\n"
+msgstr "%P: ¡visibilidad de símbolo ELF desconocida: %d!\n"
#: plugin.c:561
-#, fuzzy
-#| msgid "%F%P: unsupported input file size: %s (%ld bytes)\n"
msgid "%P: unsupported input file size: %s (%ld bytes)\n"
msgstr "%P: no se admite el tamaño de fichero de entrada: %s (%ld bytes)\n"
@@ -3648,8 +3590,6 @@ msgstr "valor de visibilidad LTO desconocido %x"
#. We should not have a new, indirect or warning symbol here.
#: plugin.c:837
-#, fuzzy
-#| msgid "%F%P: %s: plugin symbol table corrupt (sym type %d)\n"
msgid "%P: %s: plugin symbol table corrupt (sym type %d)\n"
msgstr "%P: %s: la tabla de símbolos de plugin está corrupta (tipo de símbolo %d)\n"
@@ -3662,32 +3602,22 @@ msgid "%P: warning: "
msgstr "%P: aviso: "
#: plugin.c:989
-#, fuzzy
-#| msgid "%P: error: "
msgid "%X%P: error: "
-msgstr "%P: error: "
+msgstr "%X%P: error: "
#: plugin.c:1146
-#, fuzzy
-#| msgid "%F%P: %s: plugin error: %d\n"
msgid "%P: %s: plugin error: %d\n"
msgstr "%P: %s: error en el plugin: %d\n"
#: plugin.c:1210
-#, fuzzy
-#| msgid "%F%P: plugin_strdup failed to allocate memory: %s\n"
msgid "%P: plugin_strdup failed to allocate memory: %s\n"
msgstr "%P: plugin_strdup no pudo asignar memoria: %s\n"
#: plugin.c:1252
-#, fuzzy
-#| msgid "%F%P: plugin failed to allocate memory for input: %s\n"
msgid "%P: plugin failed to allocate memory for input: %s\n"
msgstr "%P: plugin no pudo asignar memoria para entrada: %s\n"
#: plugin.c:1281
-#, fuzzy
-#| msgid "%F%P: %s: plugin reported error claiming file\n"
msgid "%P: %s: plugin reported error claiming file\n"
msgstr "%P: %s: el plugin reportó error al reclamar el fichero\n"
@@ -3928,8 +3858,6 @@ msgstr "%X%P: no se pueden construir los stubs: %E\n"
#: ei386pe_posix.c:1523 emcorepe.c:1523 ends32belf.c:77 ends32belf16m.c:77
#: ends32belf_linux.c:77 ends32elf.c:77 ends32elf16m.c:77 ends32elf_linux.c:77
#: escore3_elf.c:82 escore7_elf.c:82 eshpe.c:1523 ev850.c:94 ev850_rh850.c:94
-#, fuzzy
-#| msgid "%F%P: error: cannot change output format whilst linking %s binaries\n"
msgid "%P: error: cannot change output format whilst linking %s binaries\n"
msgstr "%P: error: no se puede cambiar el formato de salida mientras se enlazan los binarios %s\n"
@@ -3946,10 +3874,8 @@ msgstr "%P: error: no se puede cambiar el formato de salida mientras se enlazan
#: eaarch64linux32.c:487 eaarch64linux32b.c:403 eaarch64linux32b.c:463
#: eaarch64linux32b.c:487 eaarch64linuxb.c:403 eaarch64linuxb.c:463
#: eaarch64linuxb.c:487 eaarch64nto.c:403 eaarch64nto.c:463 eaarch64nto.c:487
-#, fuzzy
-#| msgid "%F%P: unrecognized -a option `%s'\n"
msgid "%X%P: error: unrecognized value '-z %s'\n"
-msgstr "%P: no se reconoce la opción -a `%s'\n"
+msgstr "%X%P: error: no se reconoce el valor '-z %s'\n"
#: eaarch64cloudabi.c:744 eaarch64cloudabib.c:744 eaarch64elf.c:744
#: eaarch64elf32.c:744 eaarch64elf32b.c:744 eaarch64elfb.c:744
@@ -4026,7 +3952,7 @@ msgstr "%P: no se reconoce la opción -a `%s'\n"
#: eshlelf_nbsd.c:283 eshlelf_nto.c:283 eshlelf_vxworks.c:315 ev850.c:259
#: ev850_rh850.c:259
msgid "%P: --compress-debug-sections=zstd: ld is not built with zstd support\n"
-msgstr ""
+msgstr "%P: --compress-debug-sections=zstd: ld no está construido con soporte para zstd\n"
#: eaarch64cloudabi.c:749 eaarch64cloudabib.c:749 eaarch64elf.c:749
#: eaarch64elf32.c:749 eaarch64elf32b.c:749 eaarch64elfb.c:749
@@ -4102,8 +4028,6 @@ msgstr ""
#: eshelf_vxworks.c:320 eshlelf.c:288 eshlelf_fd.c:329 eshlelf_linux.c:329
#: eshlelf_nbsd.c:288 eshlelf_nto.c:288 eshlelf_vxworks.c:320 ev850.c:264
#: ev850_rh850.c:264
-#, fuzzy
-#| msgid "%F%P: invalid --compress-debug-sections option: `%s'\n"
msgid "%P: invalid --compress-debug-sections option: `%s'\n"
msgstr "%P: opción --compress-debug-sections no válida: `%s'\n"
@@ -4162,8 +4086,6 @@ msgstr "%P: opción --compress-debug-sections no válida: `%s'\n"
#: eshelf_linux.c:387 eshelf_nbsd.c:346 eshelf_nto.c:346 eshelf_uclinux.c:346
#: eshelf_vxworks.c:378 eshlelf.c:346 eshlelf_fd.c:387 eshlelf_linux.c:387
#: eshlelf_nbsd.c:346 eshlelf_nto.c:346 eshlelf_vxworks.c:378
-#, fuzzy
-#| msgid "%F%P: invalid hash style `%s'\n"
msgid "%P: invalid hash style `%s'\n"
msgstr "%P: estilo de hash no válido `%s'\n"
@@ -4241,8 +4163,6 @@ msgstr "%P: estilo de hash no válido `%s'\n"
#: eshelf_vxworks.c:395 eshlelf.c:363 eshlelf_fd.c:404 eshlelf_linux.c:404
#: eshlelf_nbsd.c:363 eshlelf_nto.c:363 eshlelf_vxworks.c:395 ev850.c:288
#: ev850_rh850.c:288
-#, fuzzy
-#| msgid "%F%P: invalid maximum page size `%s'\n"
msgid "%P: invalid maximum page size `%s'\n"
msgstr "%P: tamaño de página máximo no válido `%s'\n"
@@ -4320,8 +4240,6 @@ msgstr "%P: tamaño de página máximo no válido `%s'\n"
#: eshelf_vxworks.c:405 eshlelf.c:373 eshlelf_fd.c:414 eshlelf_linux.c:414
#: eshlelf_nbsd.c:373 eshlelf_nto.c:373 eshlelf_vxworks.c:405 ev850.c:298
#: ev850_rh850.c:298
-#, fuzzy
-#| msgid "%F%P: invalid common page size `%s'\n"
msgid "%P: invalid common page size `%s'\n"
msgstr "%P: tamaño de página normal no válido `%s'\n"
@@ -4399,8 +4317,6 @@ msgstr "%P: tamaño de página normal no válido `%s'\n"
#: eshelf_vxworks.c:414 eshlelf.c:382 eshlelf_fd.c:423 eshlelf_linux.c:423
#: eshlelf_nbsd.c:382 eshlelf_nto.c:382 eshlelf_vxworks.c:414 ev850.c:307
#: ev850_rh850.c:307
-#, fuzzy
-#| msgid "%F%P: invalid stack size `%s'\n"
msgid "%P: invalid stack size `%s'\n"
msgstr "%P: tamaño de pila no válido `%s'\n"
@@ -4478,8 +4394,6 @@ msgstr "%P: tamaño de pila no válido `%s'\n"
#: eshelf_vxworks.c:453 eshlelf.c:421 eshlelf_fd.c:462 eshlelf_linux.c:462
#: eshlelf_nbsd.c:421 eshlelf_nto.c:421 eshlelf_vxworks.c:453 ev850.c:346
#: ev850_rh850.c:346
-#, fuzzy
-#| msgid "%F%P: invalid visibility in `-z %s'; must be default, internal, hidden, or protected"
msgid "%P: invalid visibility in `-z %s'; must be default, internal, hidden, or protected"
msgstr "%P: visibilidad no válida en `-z %s', debe ser default, internal, hidden o protected"
@@ -4633,12 +4547,13 @@ msgstr " --no-apply-dynamic-relocs No aplica valores de tiempo de enlazamien
#: eaarch64fbsd.c:1067 eaarch64fbsdb.c:1067 eaarch64haiku.c:1062
#: eaarch64linux.c:1067 eaarch64linux32.c:1067 eaarch64linux32b.c:1067
#: eaarch64linuxb.c:1067 eaarch64nto.c:1240
-#, fuzzy, c-format
-#| msgid " -z force-bti Turn on Branch Target Identification mechanism and generate PLTs with BTI. Generate warnings for missing BTI on inputs\n"
+#, c-format
msgid ""
" -z force-bti Turn on Branch Target Identification mechanism and generate PLTs with BTI.\n"
" Generate warnings for missing BTI markings on inputs\n"
-msgstr " -z force-bti Activa el mechanismo de identificación de objetivo de rama y genera PLTs con BTI. Genera avisos para BTI ausentes en las entradas\n"
+msgstr ""
+" -z force-bti Activa el mechanismo de identificación de objetivo de rama y genera PLTs\n"
+" con BTI. Genera avisos para marcas BTI ausentes en las entradas\n"
#: eaarch64cloudabi.c:1065 eaarch64cloudabib.c:1065 eaarch64elf.c:1070
#: eaarch64elf32.c:1070 eaarch64elf32b.c:1070 eaarch64elfb.c:1070
@@ -4654,16 +4569,22 @@ msgid ""
" error: Emit error when the input objects are missing BTI markings\n"
" and output has BTI marking.\n"
msgstr ""
+" -z bti-report[=none|warning|error] Emite aviso/error si no coincide la marcación BTI de los objetos de entrada y\n"
+" de salida.\n"
+" none: No emite mensajes de aviso/error.\n"
+" warning (por defecto): Emite aviso cuando los objetos de entrada carecen de\n"
+" marcas BTI y la salida los tiene.\n"
+" error: Emite aviso cuando los objetos de entrada carecen de marcas BTI y\n"
+" la salida los tiene.\n"
#: eaarch64cloudabi.c:1072 eaarch64cloudabib.c:1072 eaarch64elf.c:1077
#: eaarch64elf32.c:1077 eaarch64elf32b.c:1077 eaarch64elfb.c:1077
#: eaarch64fbsd.c:1077 eaarch64fbsdb.c:1077 eaarch64haiku.c:1072
#: eaarch64linux.c:1077 eaarch64linux32.c:1077 eaarch64linux32b.c:1077
#: eaarch64linuxb.c:1077 eaarch64nto.c:1250
-#, fuzzy, c-format
-#| msgid " -z pac-plt Protect PLTs with Pointer Authentication.\n"
+#, c-format
msgid " -z pac-plt Protect PLTs with Pointer Authentication.\n"
-msgstr " -z pac-plt Protege PLTs con autenticación de puntero.\n"
+msgstr " -z pac-plt Protege PLTs con autenticación de puntero.\n"
#: eaarch64cloudabi.c:1074 eaarch64cloudabib.c:1074 eaarch64elf.c:1079
#: eaarch64elf32.c:1079 eaarch64elf32b.c:1079 eaarch64elfb.c:1079
@@ -4677,6 +4598,10 @@ msgid ""
" always: always marks the output with GCS.\n"
" never: never marks the output with GCS.\n"
msgstr ""
+" -z gcs=[always|never|implicit] Controla el que la salida disponga del mecanismo de pila de control protegida (GCS).\n"
+" implicit (por defecto, si se omite '-z gcs'): deduce GCS de los objetos de entrada.\n"
+" always: marca siempre la salida con GCS.\n"
+" never: no marca nunca la salida con GCS.\n"
#: eaarch64cloudabi.c:1079 eaarch64cloudabib.c:1079 eaarch64elf.c:1084
#: eaarch64elf32.c:1084 eaarch64elf32b.c:1084 eaarch64elfb.c:1084
@@ -4692,6 +4617,13 @@ msgid ""
" error: Emit error when the input objects are missing GCS markings\n"
" and output have GCS marking.\n"
msgstr ""
+" -z gcs-report[=none|warning|error] Emite aviso/error si no coincide la marcación GCS de los objetos de entrada y\n"
+" de salida.\n"
+" none: No emite mensajes de aviso/error.\n"
+" warning (por defecto): Emite aviso cuando los objetos de entrada carecen de\n"
+" marcas GCS y la salida los tiene.\n"
+" error: Emite aviso cuando los objetos de entrada carecen de marcas GCS y\n"
+" la salida los tiene.\n"
#: eaarch64cloudabi.c:1086 eaarch64cloudabib.c:1086 eaarch64elf.c:1091
#: eaarch64elf32.c:1091 eaarch64elf32b.c:1091 eaarch64elfb.c:1091
@@ -4708,6 +4640,13 @@ msgid ""
" error: Emit error when the input objects are missing GCS markings\n"
" and output have GCS marking.\n"
msgstr ""
+" -z gcs-report-dynamic=none|warning|error Emite aviso/error si no coincide la marcación GCS de la unidad de enlace\n"
+" actual y los objetos dinámicos de entrada.\n"
+" none: No emite mensajes de aviso/error.\n"
+" warning (por defecto): Emite aviso cuando los objetos de entrada carecen de\n"
+" marcas GCS y la salida los tiene.\n"
+" error: Emite aviso cuando los objetos de entrada carecen de marcas GCS y\n"
+" la salida los tiene.\n"
#: eaarch64cloudabi.c:1094 eaarch64cloudabib.c:1094 eaarch64elf.c:1099
#: eaarch64elf32.c:1099 eaarch64elf32b.c:1099 eaarch64elfb.c:1099
@@ -4725,52 +4664,55 @@ msgid ""
" allocation tags detected on load/store operations.\n"
" async: Enable imprecise exceptions.\n"
msgstr ""
+" -z memtag-mode[=none|sync|async] Selecciona el modo de operación extensión de etiquetado de\n"
+" memoria. Emite una etiqueta dinámica DT_AARCH64_MEMTAG_MODE\n"
+" para el binario. Esta entrada solo es válida en el ejecutable\n"
+" principal. Se hace caso omiso en los objetos que el cargador\n"
+" carga dinámicamente.\n"
+" none (por defecto): Desactiva las comprobaciones MTE en\n"
+" operaciones de lectura y escritura de memoria.\n"
+" sync: Activa excepciones precisas cuando se detectan\n"
+" discordancias en etiquetas de direcciones y de reserva\n"
+" en operaciones de carga/almacenamiento.\n"
+" async: Activa excepciones imprecisas.\n"
#: eaarch64cloudabi.c:1103 eaarch64cloudabib.c:1103 eaarch64elf.c:1108
#: eaarch64elf32.c:1108 eaarch64elf32b.c:1108 eaarch64elfb.c:1108
#: eaarch64fbsd.c:1108 eaarch64fbsdb.c:1108 eaarch64haiku.c:1103
#: eaarch64linux.c:1108 eaarch64linux32.c:1108 eaarch64linux32b.c:1108
#: eaarch64linuxb.c:1108 eaarch64nto.c:1281
-#, fuzzy, c-format
-#| msgid " -z pac-plt Protect PLTs with Pointer Authentication.\n"
+#, c-format
msgid " -z memtag-stack Mark program stack with MTE protection.\n"
-msgstr " -z pac-plt Protege PLTs con autenticación de puntero.\n"
+msgstr " -z memtag-stack Marca la pila del programa con protección MTE.\n"
#: eaarch64nto.c:521
-#, fuzzy
-#| msgid "%X%P: can not create note section: %E\n"
msgid "%P: cannot create .note section in stub BFD.\n"
-msgstr "%X%P: no se puede crear la sección de notas: %E\n"
+msgstr "%P: no se puede crear la sección .note en el stub BFD.\n"
#: eaarch64nto.c:530
-#, fuzzy
-#| msgid "%F%P: failed to create .xtensa.info section\n"
msgid "%P: failed to create .note section\n"
-msgstr "%P: fallo al crear la sección .xtensa.info\n"
+msgstr "%P: fallo al crear la sección .note\n"
#: eaarch64nto.c:571
-#, fuzzy
-#| msgid "%F%P: %pB: can't read contents of section .idata: %E\n"
msgid "%P: %pB: can't read contents of section .note: %E\n"
-msgstr "%P: %pB: no se puede leer el contenido de la sección .idata: %E\n"
+msgstr "%P: %pB: no se puede leer el contenido de la sección .note: %E\n"
#: eaarch64nto.c:581 eaarch64nto.c:585
-#, fuzzy
-#| msgid "%P: %B: warning: duplicate section `%s' has different size\n"
msgid "%P: %pB: warning: duplicated QNX stack .note detected\n"
-msgstr "%P: %B: aviso: la sección duplicada `%s' tiene tamaño diferente\n"
+msgstr "%P: %pB: aviso: se ha detectado .note del stack QNX duplicada\n"
#: eaarch64nto.c:614
msgid "%P: error: --lazy-stack must follow -zstack-size=<size>\n"
-msgstr ""
+msgstr "%P: error: --lazy-stack debe ir después de -zstack-size=<tamaño>\n"
#: eaarch64nto.c:1284
-#, fuzzy, c-format
-#| msgid " --stack <size> Set size of the initial stack\n"
+#, c-format
msgid ""
" --stack <size> Set size of the initial stack\n"
" --lazy-stack Set lazy allocation of stack\n"
-msgstr " --stack <size> Establece el tamaño de la pila inicial\n"
+msgstr ""
+" --stack <size> Establece el tamaño de la pila inicial\n"
+" --lazy-stack Establece asignación perezosa de la pila\n"
#: eaarch64pe.c:350 earm64pe.c:350 earm_wince_pe.c:338 earmpe.c:338
#: ei386pe.c:338 ei386pe_posix.c:338 ei386pep.c:350 emcorepe.c:338 eshpe.c:338
@@ -5153,10 +5095,9 @@ msgstr " --build-id[=ESTILO] Genera ID de build\n"
#: eaarch64pe.c:406 earm64pe.c:406 earm_wince_pe.c:397 earmpe.c:397
#: ei386pe.c:397 ei386pe_posix.c:397 ei386pep.c:406 emcorepe.c:397 eshpe.c:397
-#, fuzzy, c-format
-#| msgid " --build-id[=STYLE] Generate build ID\n"
+#, c-format
msgid " --pdb=[FILENAME] Generate PDB file\n"
-msgstr " --build-id[=ESTILO] Genera ID de build\n"
+msgstr " --pdb=[NOMBREFICH] Genera fichero PDB\n"
#: eaarch64pe.c:535 earm64pe.c:535 earm_wince_pe.c:546 earmpe.c:546
#: ei386beos.c:188 ei386pe.c:546 ei386pe_posix.c:546 ei386pep.c:535
@@ -5167,32 +5108,24 @@ msgstr "%P: aviso: número de versión erróneo en la opción -subsystem\n"
#: eaarch64pe.c:560 earm64pe.c:560 earm_wince_pe.c:571 earmpe.c:571
#: ei386beos.c:205 ei386pe.c:571 ei386pe_posix.c:571 ei386pep.c:560
#: emcorepe.c:571 eshpe.c:571
-#, fuzzy
-#| msgid "%F%P: invalid subsystem type %s\n"
msgid "%P: invalid subsystem type %s\n"
msgstr "%P: tipo de subsistema %s inválido\n"
#: eaarch64pe.c:581 earm64pe.c:581 earm_wince_pe.c:592 earmpe.c:592
#: ei386beos.c:215 ei386pe.c:592 ei386pe_posix.c:592 ei386pep.c:581
#: emcorepe.c:592 eshpe.c:592
-#, fuzzy
-#| msgid "%F%P: invalid hex number for PE parameter '%s'\n"
msgid "%P: invalid hex number for PE parameter '%s'\n"
msgstr "%P: número hexadecimal inválido para el parámetro PE '%s'\n"
#: eaarch64pe.c:598 earm64pe.c:598 earm_wince_pe.c:609 earmpe.c:609
#: ei386beos.c:230 ei386pe.c:609 ei386pe_posix.c:609 ei386pep.c:598
#: emcorepe.c:609 eshpe.c:609
-#, fuzzy
-#| msgid "%F%P: strange hex info for PE parameter '%s'\n"
msgid "%P: strange hex info for PE parameter '%s'\n"
msgstr "%P: información hexadecimal extraña para el parámetro PE '%s'\n"
#: eaarch64pe.c:615 earm64pe.c:615 earm_wince_pe.c:625 earmpe.c:625
#: eelf32mcore.c:356 ei386beos.c:245 ei386pe.c:625 ei386pe_posix.c:625
#: ei386pep.c:615 emcorepe.c:625 eshpe.c:625
-#, fuzzy
-#| msgid "%F%P: cannot open base file %s\n"
msgid "%P: cannot open base file %s\n"
msgstr "%P: no se puede abrir el fichero base %s\n"
@@ -5209,10 +5142,8 @@ msgstr "%P: aviso: --export-dynamic no se admite para objetivos PE+, ¿quiso dec
#: eaarch64pe.c:997 earm64pe.c:997 earm_wince_pe.c:1049 earmpe.c:1049
#: ei386pe.c:1049 ei386pe_posix.c:1049 ei386pep.c:997 emcorepe.c:1049
#: eshpe.c:1049
-#, fuzzy
-#| msgid "%P: warning: ignoring invalid module type %s\n"
msgid "%P: warning: overwriting decorated name %s with %s\n"
-msgstr "%P: aviso: se descartal tipo de módulo no válido %s\n"
+msgstr "%P: aviso: se sobreescribe el nombre decorado %s con %s\n"
#: eaarch64pe.c:1042 eaarch64pe.c:1070 earm64pe.c:1042 earm64pe.c:1070
#: ei386pep.c:1042 ei386pep.c:1070
@@ -5235,10 +5166,8 @@ msgstr "Use --disable-stdcall-fixup para desactivar estas composturas\n"
#: eaarch64pe.c:1131 earm64pe.c:1131 earm_wince_pe.c:1115 earmpe.c:1115
#: ei386pe.c:1115 ei386pe_posix.c:1115 ei386pep.c:1131 emcorepe.c:1115
#: eshpe.c:1115
-#, fuzzy
-#| msgid "%P: %C: cannot get section contents - auto-import exception\n"
msgid "%P: %H: cannot get section contents - auto-import exception\n"
-msgstr "%P: %C: no se puede obtener el contenido de la sección - excepción de auto-importación\n"
+msgstr "%P: %H: no se puede obtener el contenido de la sección - excepción de auto-importación\n"
#: eaarch64pe.c:1261 earm64pe.c:1261 earm_wince_pe.c:1246 earmpe.c:1246
#: ei386pe.c:1246 ei386pe_posix.c:1246 ei386pep.c:1261 emcorepe.c:1246
@@ -5255,8 +5184,6 @@ msgstr "%P: aviso: no se puede crear la sección .buildid, se descarta --build-i
#: eaarch64pe.c:1468 earm64pe.c:1468 earm_wince_pe.c:1452 earmpe.c:1452
#: ei386pe.c:1452 ei386pe_posix.c:1452 ei386pep.c:1468 emcorepe.c:1452
#: eshpe.c:1452
-#, fuzzy
-#| msgid "%F%P: cannot perform PE operations on non PE output file '%pB'\n"
msgid "%P: cannot perform PE operations on non PE output file '%pB'\n"
msgstr "%P: no se pueden realizar operaciones PE en el fichero de salida '%pB' que no es PE\n"
@@ -5267,14 +5194,10 @@ msgid "%X%P: unable to process relocs: %E\n"
msgstr "%X%P: no se pueden procesar las reubicaciones: %E\n"
#: eaix5ppc.c:302 eaix5rs6.c:302 eaixppc.c:302 eaixrs6.c:302 eppcmacos.c:302
-#, fuzzy
-#| msgid "%F%P: cannot open %s\n"
msgid "%P: cannot open %s\n"
msgstr "%P: no se puede abrir %s\n"
#: eaix5ppc.c:350 eaix5rs6.c:350 eaixppc.c:350 eaixrs6.c:350 eppcmacos.c:350
-#, fuzzy
-#| msgid "%F%P: cannot read %s\n"
msgid "%P: cannot read %s\n"
msgstr "%P: no se puede leer %s\n"
@@ -5307,34 +5230,24 @@ msgid "%P: warning: ignoring invalid -pT number %s\n"
msgstr "%P: aviso: se descartal número -pT no válido %s\n"
#: eaix5ppc.c:701 eaix5rs6.c:701 eaixppc.c:701 eaixrs6.c:701 eppcmacos.c:701
-#, fuzzy
-#| msgid "%F%P: bfd_xcoff_link_record_set failed: %E\n"
msgid "%P: bfd_xcoff_link_record_set failed: %E\n"
msgstr "%P: falló bfd_xcoff_link_record_set: %E\n"
#: eaix5ppc.c:731 eaix5rs6.c:731 eaixppc.c:731 eaixrs6.c:731 eppcmacos.c:731
-#, fuzzy
-#| msgid "%F%P: bfd_link_hash_lookup of export symbol failed: %E\n"
msgid "%P: bfd_link_hash_lookup of export symbol failed: %E\n"
msgstr "%P: falló bfd_link_hash_lookup: %E\n"
#: eaix5ppc.c:733 eaix5rs6.c:733 eaixppc.c:733 eaixrs6.c:733 eppcmacos.c:733
-#, fuzzy
-#| msgid "%F%P: bfd_xcoff_export_symbol failed: %E\n"
msgid "%P: bfd_xcoff_export_symbol failed: %E\n"
msgstr "%P: falló bfd_xcoff_export_symbol: %E\n"
#: eaix5ppc.c:838 eaix5rs6.c:838 eaixppc.c:838 eaixrs6.c:838 eppcmacos.c:838
-#, fuzzy
-#| msgid "%F%P: can't find output section %s\n"
msgid "%P: can't find output section %pA\n"
-msgstr "%P: no se puede encontrar la sección de salida %s\n"
+msgstr "%P: no se puede encontrar la sección de salida %pA\n"
#: eaix5ppc.c:875 eaix5rs6.c:875 eaixppc.c:875 eaixrs6.c:875 eppcmacos.c:875
-#, fuzzy
-#| msgid "%F%P: can't find %s in output section\n"
msgid "%P: can't find %pA in output section\n"
-msgstr "%P: no se puede encontrar %s en la sección de salida\n"
+msgstr "%P: no se puede encontrar %pA en la sección de salida\n"
#: eaix5ppc.c:941 eaix5rs6.c:941 eaixppc.c:941 eaixrs6.c:941 eppcmacos.c:941
msgid "%P: can't find required output section %s\n"
@@ -5342,29 +5255,21 @@ msgstr "%P: no se puede encontrar la sección de salida requerida %s\n"
#: eaix5ppc.c:1123 eaix5rs6.c:1123 eaixppc.c:1123 eaixrs6.c:1123
#: eppcmacos.c:1123
-#, fuzzy
-#| msgid "%X%P: can not size stub section: %E\n"
msgid "%X%P: can not size stub sections: %E\n"
-msgstr "%X%P: no se puede medir la sección de stub: %E\n"
+msgstr "%X%P: no se pueden dimensionar las secciones stub: %E\n"
#: eaix5ppc.c:1128 eaix5rs6.c:1128 eaixppc.c:1128 eaixrs6.c:1128
#: eppcmacos.c:1128
-#, fuzzy
-#| msgid "%F%P: failed to set dynamic section sizes: %E\n"
msgid "%P: failed to layout dynamic sections: %E\n"
-msgstr "%P: no se han podido establecer los tamaños de las secciones dinámicas: %E\n"
+msgstr "%P: no se han podido diseñar las secciones dinámicas: %E\n"
#: eaix5ppc.c:1341 eaix5rs6.c:1341 eaixppc.c:1341 eaixrs6.c:1341
#: eppcmacos.c:1341
-#, fuzzy
-#| msgid "%F%P:%s:%d: #! ([member]) is not supported in import files\n"
msgid "%P:%s:%d: #! ([member]) is not supported in import files\n"
msgstr "%P:%s:%d: #! ([miembro]) no se admite en ficheros de importación\n"
#: eaix5ppc.c:1358 eaix5rs6.c:1358 eaixppc.c:1358 eaixrs6.c:1358
#: eppcmacos.c:1358
-#, fuzzy
-#| msgid "%F%P: could not parse import path: %E\n"
msgid "%P: could not parse import path: %E\n"
msgstr "%P: no se puede analizar la ruta de importación: %E\n"
@@ -5396,31 +5301,23 @@ msgstr "%P:%s:%d: aviso: se descarta la línea última inacabada\n"
#: eaix5ppc.c:1513 eaix5rs6.c:1513 eaixppc.c:1513 eaixrs6.c:1513
#: eppcmacos.c:1513
-#, fuzzy
-#| msgid "%F%P: only relocations against symbols are permitted\n"
msgid "%P: only relocations against symbols are permitted\n"
msgstr "%P: solo se permiten reubicaciones contra símbolos\n"
#: eaix5ppc.c:1516 eaix5rs6.c:1516 eaixppc.c:1516 eaixrs6.c:1516
#: eppcmacos.c:1516
-#, fuzzy
-#| msgid "%F%P: bfd_xcoff_link_count_reloc failed: %E\n"
msgid "%P: bfd_xcoff_link_count_reloc failed: %E\n"
msgstr "%P: falló bfd_xcoff_link_count_reloc: %E\n"
#: eaix5ppc.c:1604 eaix5rs6.c:1604 eaixppc.c:1604 eaixrs6.c:1604
#: eppcmacos.c:1604
-#, fuzzy
-#| msgid "%X%P: can not create stub BFD: %E\n"
msgid "%P: can not create stub BFD: %E\n"
-msgstr "%X%P: no se puede crear stub BFD: %E\n"
+msgstr "%P: no se puede crear stub BFD: %E\n"
#: eaix5ppc.c:1614 eaix5rs6.c:1614 eaixppc.c:1614 eaixrs6.c:1614
#: eelf32kvx.c:324 eelf64_s390.c:66 eelf64kvx.c:324 eelf64kvx_linux.c:322
#: eelf64lppc.c:132 eelf64lppc_fbsd.c:132 eelf64ppc.c:132 eelf64ppc_fbsd.c:132
#: eppcmacos.c:1614
-#, fuzzy
-#| msgid "%F%P: can not init BFD: %E\n"
msgid "%P: can not init BFD: %E\n"
msgstr "%P: no se puede inicializar BFD: %E\n"
@@ -5593,8 +5490,6 @@ msgstr "%P: se encontraron errores al procesar el fichero %s\n"
#: earmelfb_fuchsia.c:556 earmelfb_linux.c:556 earmelfb_linux_eabi.c:556
#: earmelfb_linux_fdpiceabi.c:556 earmelfb_nacl.c:556 earmelfb_nbsd.c:555
#: earmnto.c:555
-#, fuzzy
-#| msgid "%F%P: %s: can't open: %E\n"
msgid "%P: %s: can't open: %E\n"
msgstr "%P: %s: no se puede abrir: %E\n"
@@ -5605,10 +5500,8 @@ msgstr "%P: %s: no se puede abrir: %E\n"
#: earmelfb_fuchsia.c:559 earmelfb_linux.c:559 earmelfb_linux_eabi.c:559
#: earmelfb_linux_fdpiceabi.c:559 earmelfb_nacl.c:559 earmelfb_nbsd.c:558
#: earmnto.c:558
-#, fuzzy
-#| msgid "%F%P: %s: not a relocatable file: %E\n"
msgid "%P: %s: not a relocatable file: %E\n"
-msgstr "%P: %s no es un fichero reubicable: %E\n"
+msgstr "%P: %s: no es un fichero reubicable: %E\n"
#: earmelf.c:1101 earmelf_fbsd.c:1101 earmelf_fuchsia.c:1106
#: earmelf_haiku.c:1106 earmelf_linux.c:1106 earmelf_linux_eabi.c:1106
@@ -5966,8 +5859,6 @@ msgid "%X%P: can not create note section: %E\n"
msgstr "%X%P: no se puede crear la sección de notas: %E\n"
#: eelf32_spu.c:347
-#, fuzzy
-#| msgid "%F%P: no built-in overlay manager\n"
msgid "%P: no built-in overlay manager\n"
msgstr "%P: ningún gestor de recubrimientos incorporado\n"
@@ -5992,8 +5883,6 @@ msgid "%X%P: can not size overlay stubs: %E\n"
msgstr "%X%P: no se puede calcular tamaño de stubs de recubrimientos: %E\n"
#: eelf32_spu.c:524
-#, fuzzy
-#| msgid "%F%P: can not open script: %E\n"
msgid "%P: can not open script: %E\n"
msgstr "%P: no se puede abrir el script: %E\n"
@@ -6006,50 +5895,34 @@ msgid "%P: --auto-overlay ignored with zero local store range\n"
msgstr "%P: --auto-overlay descartado con rango de almacenamiento local cero\n"
#: eelf32_spu.c:939
-#, fuzzy
-#| msgid "%F%P: invalid --local-store address range `%s'\n"
msgid "%P: invalid --local-store address range `%s'\n"
msgstr "%P: rango de direcciones --local-store no válido `%s'\n"
#: eelf32_spu.c:975
-#, fuzzy
-#| msgid "%F%P: invalid --num-lines/--num-regions `%u'\n"
msgid "%P: invalid --num-lines/--num-regions `%u'\n"
msgstr "%P --num-lines/--num-regions no válido `%u'\n"
#: eelf32_spu.c:980
-#, fuzzy
-#| msgid "%F%P: invalid --line-size/--region-size `%u'\n"
msgid "%P: invalid --line-size/--region-size `%u'\n"
msgstr "%P: --line-size/--region-size no válido `%u'\n"
#: eelf32_spu.c:1001
-#, fuzzy
-#| msgid "%F%P: invalid --num-lines/--num-regions `%s'\n"
msgid "%P: invalid --num-lines/--num-regions `%s'\n"
msgstr "%P: --num-lines/--num-regions no válido `%s'\n"
#: eelf32_spu.c:1014
-#, fuzzy
-#| msgid "%F%P: invalid --line-size/--region-size `%s'\n"
msgid "%P: invalid --line-size/--region-size `%s'\n"
msgstr "%P: --line-size/--region-size no válido `%s'\n"
#: eelf32_spu.c:1023
-#, fuzzy
-#| msgid "%F%P: invalid --fixed-space value `%s'\n"
msgid "%P: invalid --fixed-space value `%s'\n"
msgstr "%P: valor de --fixed-space no válido `%s'\n"
#: eelf32_spu.c:1032
-#, fuzzy
-#| msgid "%F%P: invalid --reserved-space value `%s'\n"
msgid "%P: invalid --reserved-space value `%s'\n"
msgstr "%P: valor de --reserved-space no válido `%s'\n"
#: eelf32_spu.c:1041
-#, fuzzy
-#| msgid "%F%P: invalid --extra-stack-space value `%s'\n"
msgid "%P: invalid --extra-stack-space value `%s'\n"
msgstr "%P: valor de --extra-stack-space no válido `%s'\n"
@@ -6189,24 +6062,18 @@ msgstr " --lrlive-analysis Examina la vitalidad lr en el prólogo de
#: eelf32_tic6x_be.c:90 eelf32_tic6x_elf_be.c:90 eelf32_tic6x_elf_le.c:90
#: eelf32_tic6x_le.c:90 eelf32_tic6x_linux_be.c:90 eelf32_tic6x_linux_le.c:90
-#, fuzzy
-#| msgid "%F%P: invalid --dsbt-index %d, outside DSBT size\n"
msgid "%P: invalid --dsbt-index %d, outside DSBT size\n"
msgstr "%P: --dsbt-index %d no válido, tamaño fuera de DSBT\n"
#: eelf32_tic6x_be.c:629 eelf32_tic6x_elf_be.c:629 eelf32_tic6x_elf_le.c:629
#: eelf32_tic6x_le.c:629 eelf32_tic6x_linux_be.c:629
#: eelf32_tic6x_linux_le.c:629
-#, fuzzy
-#| msgid "%F%P: invalid --dsbt-index %s\n"
msgid "%P: invalid --dsbt-index %s\n"
msgstr "%P: --dsbt-index no válido %s\n"
#: eelf32_tic6x_be.c:639 eelf32_tic6x_elf_be.c:639 eelf32_tic6x_elf_le.c:639
#: eelf32_tic6x_le.c:639 eelf32_tic6x_linux_be.c:639
#: eelf32_tic6x_linux_le.c:639
-#, fuzzy
-#| msgid "%F%P: invalid --dsbt-size %s\n"
msgid "%P: invalid --dsbt-size %s\n"
msgstr "%P: --dsbt-size no válido %s\n"
@@ -6246,8 +6113,6 @@ msgstr " Desactiva la fusión de entradas exidx\n"
#: eelf_i386_sol2.c:725 eelf_i386_vxworks.c:619 eelf_iamcu.c:593
#: eelf_x86_64.c:8638 eelf_x86_64_cloudabi.c:636 eelf_x86_64_fbsd.c:636
#: eelf_x86_64_haiku.c:636 eelf_x86_64_sol2.c:768
-#, fuzzy
-#| msgid "%F%P: invalid number for -z call-nop=prefix-: %s\n"
msgid "%P: invalid number for -z call-nop=prefix-: %s\n"
msgstr "%P: número no válido para -z call-nop=prefix-: %s\n"
@@ -6256,8 +6121,6 @@ msgstr "%P: número no válido para -z call-nop=prefix-: %s\n"
#: eelf_i386_sol2.c:734 eelf_i386_vxworks.c:628 eelf_iamcu.c:602
#: eelf_x86_64.c:8647 eelf_x86_64_cloudabi.c:645 eelf_x86_64_fbsd.c:645
#: eelf_x86_64_haiku.c:645 eelf_x86_64_sol2.c:777
-#, fuzzy
-#| msgid "%F%P: invalid number for -z call-nop=suffix-: %s\n"
msgid "%P: invalid number for -z call-nop=suffix-: %s\n"
msgstr "%P: número no válido para -z call-nop=suffix-: %s\n"
@@ -6266,34 +6129,26 @@ msgstr "%P: número no válido para -z call-nop=suffix-: %s\n"
#: eelf_i386_sol2.c:739 eelf_i386_vxworks.c:633 eelf_iamcu.c:607
#: eelf_x86_64.c:8652 eelf_x86_64_cloudabi.c:650 eelf_x86_64_fbsd.c:650
#: eelf_x86_64_haiku.c:650 eelf_x86_64_sol2.c:782
-#, fuzzy
-#| msgid "%F%P: unsupported option: -z %s\n"
msgid "%P: unsupported option: -z %s\n"
msgstr "%P: no se admite la opción: -z %s\n"
#: eelf32_x86_64.c:8674 eelf_i386.c:8097 eelf_i386_fbsd.c:629
#: eelf_i386_haiku.c:629 eelf_x86_64.c:8674 eelf_x86_64_cloudabi.c:672
#: eelf_x86_64_fbsd.c:672 eelf_x86_64_haiku.c:672 eelf_x86_64_sol2.c:804
-#, fuzzy
-#| msgid "%F%P: invalid option for -z cet-report=: %s\n"
msgid "%P: invalid option for -z cet-report=: %s\n"
msgstr "%P: origen no válido para -z cet-report=: %s\n"
#: eelf32_x86_64.c:8688 eelf_i386.c:8111 eelf_i386_fbsd.c:643
#: eelf_i386_haiku.c:643 eelf_x86_64.c:8688 eelf_x86_64_cloudabi.c:686
#: eelf_x86_64_fbsd.c:686 eelf_x86_64_haiku.c:686 eelf_x86_64_sol2.c:818
-#, fuzzy
-#| msgid "%F%P: invalid x86-64 ISA level: %s\n"
msgid "%P: invalid x86-64 ISA level: %s\n"
msgstr "%P: nivel ISA x86-64 inválido: %s\n"
#: eelf32_x86_64.c:8704 eelf_i386.c:8127 eelf_i386_fbsd.c:659
#: eelf_i386_haiku.c:659 eelf_x86_64.c:8704 eelf_x86_64_cloudabi.c:702
#: eelf_x86_64_fbsd.c:702 eelf_x86_64_haiku.c:702 eelf_x86_64_sol2.c:834
-#, fuzzy
-#| msgid "%F%P: invalid option for -z cet-report=: %s\n"
msgid "%P: invalid option for -z isa-level-report=: %s\n"
-msgstr "%P: origen no válido para -z cet-report=: %s\n"
+msgstr "%P: opción no válida para -z isa-level-report=: %s\n"
#: eelf32_x86_64.c:8751 eelf_i386.c:8169 eelf_i386_be.c:572
#: eelf_i386_fbsd.c:701 eelf_i386_haiku.c:701 eelf_i386_ldso.c:592
@@ -6311,7 +6166,7 @@ msgstr " -z noextern-protected-data No trata los símbolos de datos protegidos
#: eelf_x86_64_haiku.c:801 eelf_x86_64_sol2.c:933
#, c-format
msgid " -z indirect-extern-access Enable indirect external access\n"
-msgstr ""
+msgstr " -z indirect-extern-access Activa acceso externo indirecto\n"
#: eelf32_x86_64.c:8755 eelf_i386.c:8173 eelf_i386_be.c:576
#: eelf_i386_fbsd.c:705 eelf_i386_haiku.c:705 eelf_i386_ldso.c:596
@@ -6320,7 +6175,7 @@ msgstr ""
#: eelf_x86_64_haiku.c:803 eelf_x86_64_sol2.c:935
#, c-format
msgid " -z noindirect-extern-access Disable indirect external access (default)\n"
-msgstr ""
+msgstr " -z noindirect-extern-access Desactiva acceso externo indirecto (predefinido)\n"
#: eelf32_x86_64.c:8758 eelf32lppc.c:869 eelf32lppclinux.c:869
#: eelf32lppcnto.c:869 eelf32lppcsim.c:869 eelf32ppc.c:869 eelf32ppc_fbsd.c:869
@@ -6396,7 +6251,7 @@ msgstr ""
#: eelf_x86_64_fbsd.c:826 eelf_x86_64_haiku.c:826 eelf_x86_64_sol2.c:958
#, c-format
msgid " -z report-relative-reloc Report relative relocations\n"
-msgstr ""
+msgstr " -z report-relative-reloc Informa de reubicacioens relativas\n"
#: eelf32_x86_64.c:8781 eelf_i386.c:8196 eelf_i386_fbsd.c:728
#: eelf_i386_haiku.c:728 eelf_x86_64.c:8831 eelf_x86_64_cloudabi.c:829
@@ -6408,16 +6263,13 @@ msgstr " -z x86-64-{baseline|v[234]} Marca el nivel ISA x86-64-{baseline|v[234]
#: eelf32_x86_64.c:8784 eelf_i386.c:8199 eelf_i386_fbsd.c:731
#: eelf_i386_haiku.c:731 eelf_x86_64.c:8834 eelf_x86_64_cloudabi.c:832
#: eelf_x86_64_fbsd.c:832 eelf_x86_64_haiku.c:832 eelf_x86_64_sol2.c:964
-#, fuzzy, c-format
-#| msgid ""
-#| " -z lam-u48-report=[none|warning|error] (default: none)\n"
-#| " Report missing LAM_U48 property\n"
+#, c-format
msgid ""
" -z isa-level-report=[none|all|needed|used] (default: none)\n"
" Report x86-64 ISA level\n"
msgstr ""
-" -z lam-u48-report=[none|warning|error] (predefinido: none)\n"
-" Informa de la falta de la propiedad LAM_U48\n"
+" -z isa-level-report=[none|all|needed|used] (predefinido: none)\n"
+" Informa del nivel ISA x86-64\n"
#: eelf32_x86_64.c:8789 eelf_x86_64.c:8853 eelf_x86_64_cloudabi.c:851
#: eelf_x86_64_fbsd.c:851 eelf_x86_64_haiku.c:851 eelf_x86_64_sol2.c:983
@@ -6426,6 +6278,8 @@ msgid ""
" -z mark-plt Mark PLT with dynamic tags (default)\n"
" -z nomark-plt Do not mark PLT with dynamic tags\n"
msgstr ""
+" -z mark-plt Marca PLT con etiquetas dinámicas (predefinido)\n"
+" -z nomark-plt No marca PLT con etiquetas dinámicas\n"
#: eelf32_x86_64.c:8793 eelf_x86_64.c:8857 eelf_x86_64_cloudabi.c:855
#: eelf_x86_64_fbsd.c:855 eelf_x86_64_haiku.c:855 eelf_x86_64_sol2.c:987
@@ -6434,6 +6288,8 @@ msgid ""
" -z mark-plt Mark PLT with dynamic tags\n"
" -z nomark-plt Do not mark PLT with dynamic tags (default)\n"
msgstr ""
+" -z mark-plt Marca PLT con etiquetas dinámicas\n"
+" -z nomark-plt No marca PLT con etiquetas dinámicas (predefinido)\n"
#: eelf32_x86_64.c:8797 eelf64loongarch.c:619 eelf64lppc.c:1389
#: eelf64lppc_fbsd.c:1389 eelf64ppc.c:1389 eelf64ppc_fbsd.c:1389
@@ -6442,7 +6298,7 @@ msgstr ""
#: eelf_x86_64_haiku.c:859 eelf_x86_64_sol2.c:991
#, c-format
msgid " -z pack-relative-relocs Pack relative relocations\n"
-msgstr ""
+msgstr " -z pack-relative-relocs Empaqueta reubicaciones relativas\n"
#: eelf32_x86_64.c:8799 eelf64loongarch.c:621 eelf64lppc.c:1391
#: eelf64lppc_fbsd.c:1391 eelf64ppc.c:1391 eelf64ppc_fbsd.c:1391
@@ -6451,7 +6307,7 @@ msgstr ""
#: eelf_x86_64_haiku.c:861 eelf_x86_64_sol2.c:993
#, c-format
msgid " -z nopack-relative-relocs Do not pack relative relocations (default)\n"
-msgstr ""
+msgstr " -z nopack-relative-relocs No empaqueta reubicaciones relativas (predefinido)\n"
#: eelf32b4300.c:775 eelf32bmip.c:775 eelf32bmipn32.c:789 eelf32bsmip.c:789
#: eelf32btsmip.c:775 eelf32btsmip_fbsd.c:775 eelf32btsmipn32.c:775
@@ -6553,22 +6409,17 @@ msgstr " --data-in-l1 Pone los datos en L1\n"
#: eelf32lriscv.c:641 eelf32lriscv_ilp32.c:641 eelf32lriscv_ilp32f.c:641
#: eelf64briscv.c:641 eelf64briscv_lp64.c:641 eelf64briscv_lp64f.c:641
#: eelf64lriscv.c:641 eelf64lriscv_lp64.c:641 eelf64lriscv_lp64f.c:641
-#, fuzzy, c-format
-#| msgid " --plugin Make SPU plugin\n"
+#, c-format
msgid " --relax-gp Perform GP relaxation\n"
-msgstr " --plugin Produce plugin SPU\n"
+msgstr " --relax-gp Realiza relajación GP\n"
#: eelf32briscv.c:642 eelf32briscv_ilp32.c:642 eelf32briscv_ilp32f.c:642
#: eelf32lriscv.c:642 eelf32lriscv_ilp32.c:642 eelf32lriscv_ilp32f.c:642
#: eelf64briscv.c:642 eelf64briscv_lp64.c:642 eelf64briscv_lp64f.c:642
#: eelf64lriscv.c:642 eelf64lriscv_lp64.c:642 eelf64lriscv_lp64f.c:642
-#, fuzzy, c-format
-#| msgid " --no-toc-sort Don't sort TOC and GOT sections\n"
+#, c-format
msgid " --no-relax-gp Don't perform GP relaxation\n"
-msgstr ""
-" --no-toc-sort No ordena las secciones TOC y GOT\n"
-" -z nocombreloc No funde las reubicaciones dinámicas en una\n"
-" sola sección\n"
+msgstr " --no-relax-gp No realiza relajación GP\n"
#: eelf32briscv.c:643 eelf32briscv_ilp32.c:643 eelf32briscv_ilp32f.c:643
#: eelf32lriscv.c:643 eelf32lriscv_ilp32.c:643 eelf32lriscv_ilp32f.c:643
@@ -6576,7 +6427,7 @@ msgstr ""
#: eelf64lriscv.c:643 eelf64lriscv_lp64.c:643 eelf64lriscv_lp64f.c:643
#, c-format
msgid " --check-uleb128 Check if SUB_ULEB128 has non-zero addend\n"
-msgstr ""
+msgstr " --check-uleb128 Comprueba si SUB_ULEB128 tiene adenda distinta de cero\n"
#: eelf32briscv.c:644 eelf32briscv_ilp32.c:644 eelf32briscv_ilp32f.c:644
#: eelf32lriscv.c:644 eelf32lriscv_ilp32.c:644 eelf32lriscv_ilp32f.c:644
@@ -6584,17 +6435,13 @@ msgstr ""
#: eelf64lriscv.c:644 eelf64lriscv_lp64.c:644 eelf64lriscv_lp64f.c:644
#, c-format
msgid " --no-check-uleb128 Don't check if SUB_ULEB128 has non-zero addend\n"
-msgstr ""
+msgstr " --no-check-uleb128 No comprueba si SUB_ULEB128 tiene adenda distinta de cero\n"
#: eelf32cr16.c:88
-#, fuzzy
-#| msgid "%F%P: %pB: all input objects must be COFF or ELF for --embedded-relocs\n"
msgid "%P: %pB: all input objects must be COFF or ELF for --embedded-relocs\n"
msgstr "%P: %pB: todos los objetos de entrada deben ser COFF o ELF para --embedded-relocs\n"
#: eelf32cr16.c:112 em68kelf.c:116 em68kelfnbsd.c:116
-#, fuzzy
-#| msgid "%F%P: %pB: can not create .emreloc section: %E\n"
msgid "%P: %pB: can not create .emreloc section: %E\n"
msgstr "%P: %pB: no se puede crear la sección .emreloc: %E\n"
@@ -6611,16 +6458,12 @@ msgid "%X%P: %pB: can not create runtime reloc information: %s\n"
msgstr "%X%P: %pB: no se puede crear información de reubicación para tiempo de ejecución: %s\n"
#: eelf32kvx.c:64 eelf64kvx.c:64
-#, fuzzy
-#| msgid "%F%P: -pie not supported\n"
msgid ":%P: -pie not supported\n"
-msgstr "%P: no se admite -pie\n"
+msgstr ":%P: no se admite -pie\n"
#: eelf32kvx.c:316 eelf64kvx.c:316 eelf64kvx_linux.c:314
-#, fuzzy
-#| msgid "%F%P: can not create BFD: %E\n"
msgid "%P: can not create BFD %E\n"
-msgstr "%P: no se puede crear BFD: %E\n"
+msgstr "%P: no se puede crear BFD %E\n"
#: eelf32lppc.c:99 eelf32lppclinux.c:99 eelf32lppcnto.c:99 eelf32lppcsim.c:99
#: eelf32ppc.c:99 eelf32ppc_fbsd.c:99 eelf32ppchaiku.c:99 eelf32ppclinux.c:99
@@ -6659,8 +6502,6 @@ msgstr "%X%P: ppc_finish_symbols problema %E\n"
#: eelf32ppcsim.c:810 eelf32ppcvxworks.c:780 eelf32ppcwindiss.c:810
#: eelf64lppc.c:1252 eelf64lppc_fbsd.c:1252 eelf64ppc.c:1252
#: eelf64ppc_fbsd.c:1252
-#, fuzzy
-#| msgid "%F%P: invalid --plt-align `%s'\n"
msgid "%P: invalid --plt-align `%s'\n"
msgstr "%P: --plt-align no válido `%s'\n"
@@ -6668,8 +6509,6 @@ msgstr "%P: --plt-align no válido `%s'\n"
#: eelf32lppcsim.c:843 eelf32ppc.c:843 eelf32ppc_fbsd.c:843
#: eelf32ppchaiku.c:843 eelf32ppclinux.c:843 eelf32ppcnto.c:843
#: eelf32ppcsim.c:843 eelf32ppcvxworks.c:813 eelf32ppcwindiss.c:843
-#, fuzzy
-#| msgid "%F%P: invalid pagesize `%s'\n"
msgid "%P: invalid pagesize `%s'\n"
msgstr "%P: tamaño de página no válido `%s'\n"
@@ -6890,8 +6729,6 @@ msgid "%P: warning: failed to convert %s table in %pB (%s); subsequent disassemb
msgstr "%P: aviso: no se ha podido convertir la tabla de %s en %pB (%s); el desensamblaje subsiguiente puede estar incompleto\n"
#: eelf32xtensa.c:421
-#, fuzzy
-#| msgid "%F%P: %pB: cannot read contents of section %pA\n"
msgid "%P: %pB: cannot read contents of section %pA\n"
msgstr "%P: %pB: no se puede leer el contenido de la sección %pA\n"
@@ -6904,32 +6741,22 @@ msgid "%P: %pB: warning: cannot parse .xtensa.info section\n"
msgstr "%P: %pB: aviso: no se puede analizar la sección .xtensa.info\n"
#: eelf32xtensa.c:462
-#, fuzzy
-#| msgid "%F%P: little endian output does not match Xtensa configuration\n"
msgid "%P: little endian output does not match Xtensa configuration\n"
msgstr "%P: la salida «little endian» no concuerda con la configuración Xtensa\n"
#: eelf32xtensa.c:468
-#, fuzzy
-#| msgid "%F%P: big endian output does not match Xtensa configuration\n"
msgid "%P: big endian output does not match Xtensa configuration\n"
msgstr "%P: la salida «big endian» no concuerda con la configuración Xtensa\n"
#: eelf32xtensa.c:487
-#, fuzzy
-#| msgid "%F%P: cross-endian linking for %pB not supported\n"
msgid "%P: cross-endian linking for %pB not supported\n"
msgstr "%P: no se admite el enlazamiento con «endian» cruzado para %pB\n"
#: eelf32xtensa.c:518
-#, fuzzy
-#| msgid "%F%P: failed to create .xtensa.info section\n"
msgid "%P: failed to create .xtensa.info section\n"
msgstr "%P: fallo al crear la sección .xtensa.info\n"
#: eelf32xtensa.c:1257
-#, fuzzy
-#| msgid "%F%P: Relaxation not supported with --enable-non-contiguous-regions.\n"
msgid "%P: Relaxation not supported with --enable-non-contiguous-regions.\n"
msgstr "%P: No se admite relajar con --enable-non-contiguous-regions.\n"
@@ -6953,8 +6780,6 @@ msgid " --abi-call0 Choose call0 ABI for the output object\n"
msgstr " --abi-call0 Elige ABI call0 para el objeto de salida\n"
#: eelf32z80.c:70 ez80.c:59
-#, fuzzy
-#| msgid "%F%P: %pB: Instruction sets of object files incompatible\n"
msgid "%P: %pB: Instruction sets of object files incompatible\n"
msgstr "%P: %pB: Conjuntos de instrucciones de los ficheros objeto incompatibles\n"
@@ -6994,8 +6819,6 @@ msgstr "%P: los fragmentos .init/.fini utilizan punteros TOC que difieren\n"
#: eelf64lppc.c:1281 eelf64lppc_fbsd.c:1281 eelf64ppc.c:1281
#: eelf64ppc_fbsd.c:1281
-#, fuzzy
-#| msgid "%F%P: invalid --power10-stubs argument `%s'\n"
msgid "%P: invalid --power10-stubs argument `%s'\n"
msgstr "%P: argumento de --power10-stubs no válido `%s'\n"
@@ -7173,29 +6996,21 @@ msgid "%X%P: too many global registers: %u, max 223\n"
msgstr "%X%P: demasiados registros globales: %u, máx 223\n"
#: eelf64mmix.c:144 emmo.c:144
-#, fuzzy
-#| msgid "%F%P: can't finalize linker-allocated global registers\n"
msgid "%P: can't finalize linker-allocated global registers\n"
msgstr "%P: no se pueden finalizar los registros globales asignados por el enlazador\n"
#: eelf_x86_64.c:8719 eelf_x86_64_cloudabi.c:717 eelf_x86_64_fbsd.c:717
#: eelf_x86_64_haiku.c:717 eelf_x86_64_sol2.c:849
-#, fuzzy
-#| msgid "%F%P: invalid option for -z lam-u48-report=: %s\n"
msgid "%P: invalid option for -z lam-u48-report=: %s\n"
msgstr "%P: opción no válida para -z lam-u48-report=: %s\n"
#: eelf_x86_64.c:8733 eelf_x86_64_cloudabi.c:731 eelf_x86_64_fbsd.c:731
#: eelf_x86_64_haiku.c:731 eelf_x86_64_sol2.c:863
-#, fuzzy
-#| msgid "%F%P: invalid option for -z lam-u57-report=: %s\n"
msgid "%P: invalid option for -z lam-u57-report=: %s\n"
msgstr "%P: opción no válida para -z lam-u57-report=: %s\n"
#: eelf_x86_64.c:8754 eelf_x86_64_cloudabi.c:752 eelf_x86_64_fbsd.c:752
#: eelf_x86_64_haiku.c:752 eelf_x86_64_sol2.c:884
-#, fuzzy
-#| msgid "%F%P: invalid option for -z lam-report=: %s\n"
msgid "%P: invalid option for -z lam-report=: %s\n"
msgstr "%P: opción no válida para -z lam-report=: %s\n"
@@ -7257,26 +7072,18 @@ msgstr ""
" múltiples\n"
#: ei386beos.c:354
-#, fuzzy
-#| msgid "%F%P: PE operations on non PE file\n"
msgid "%P: PE operations on non PE file\n"
msgstr "%P: operaciones PE en un fichero que no es PE\n"
#: ei386beos.c:403 ei386beos.c:408
-#, fuzzy
-#| msgid "%F%P: %pB: can't read contents of section .idata: %E\n"
msgid "%P: %pB: can't read contents of section .idata: %E\n"
msgstr "%P: %pB: no se puede leer el contenido de la sección .idata: %E\n"
#: ei386beos.c:640
-#, fuzzy
-#| msgid "%F%P: section %s has '$' as first character\n"
msgid "%P: section %s has '$' as first character\n"
msgstr "%P: la sección %s tiene un '$' como primer carácter\n"
#: ei386beos.c:670
-#, fuzzy
-#| msgid "%F%P: *(%s$) missing from linker script\n"
msgid "%P: *(%s$) missing from linker script\n"
msgstr "%P: falta *(%s$) en el «script» del enlazador \n"
@@ -7307,8 +7114,6 @@ msgstr ""
" describe la disposición de la ventana del banco de memoria\n"
#: em68kelf.c:92 em68kelfnbsd.c:92
-#, fuzzy
-#| msgid "%F%P: %pB: all input objects must be ELF for --embedded-relocs\n"
msgid "%P: %pB: all input objects must be ELF for --embedded-relocs\n"
msgstr "%P: %pB: todos los objetos de entrada deben ser ELF para --embedded-relocs\n"
@@ -7387,8 +7192,6 @@ msgstr "%P: no se reconoce el argumento de la opción --data-region=: \"%s\"\n"
#. Incompatible objects.
#: ends32belf.c:129 ends32belf16m.c:129 ends32belf_linux.c:129 ends32elf.c:129
#: ends32elf16m.c:129 ends32elf_linux.c:129
-#, fuzzy
-#| msgid "%F%P: %pB: ABI version of object files mismatched\n"
msgid "%P: %pB: ABI version of object files mismatched\n"
msgstr "%P: %pB: versión ABI de los ficheros objeto discordantes\n"
@@ -7470,8 +7273,6 @@ msgid " --format 0|1|2 Specify which COFF version to use\n"
msgstr " --format 0|1|2 Especifica qué versión COFF utilizar\n"
#: etic3xcoff.c:91 etic3xcoff_onchip.c:91 etic4xcoff.c:91 etic54xcoff.c:91
-#, fuzzy
-#| msgid "%F%P: invalid COFF format version %s\n"
msgid "%P: invalid COFF format version %s\n"
msgstr "%P: versión no válida de formato COFF %s\n"
diff --git a/ld/po/fi.po b/ld/po/fi.po
index d220e3b..d28066e 100644
--- a/ld/po/fi.po
+++ b/ld/po/fi.po
@@ -1685,7 +1685,7 @@ msgstr "Eheytä symbolinnimet [käyttäen TYYLIä]"
#: lexsup.c:319
msgid ""
"Do not allow multiple definitions with symbols included\n"
-" in filename invoked by -R or --just-symbols"
+" in filename invoked by -R or --just-symbols"
msgstr ""
#: lexsup.c:323
diff --git a/ld/po/pt_BR.po b/ld/po/pt_BR.po
index 8223f2c..3808543 100644
--- a/ld/po/pt_BR.po
+++ b/ld/po/pt_BR.po
@@ -1617,7 +1617,7 @@ msgstr ""
#: lexsup.c:335
msgid ""
"Do not allow multiple definitions with symbols included\n"
-" in filename invoked by -R or --just-symbols"
+" in filename invoked by -R or --just-symbols"
msgstr ""
"Não permite vários definições com símbolos\n"
" incluídos no nome de arquivo invocador por\n"
diff --git a/ld/po/ru.po b/ld/po/ru.po
index 9cb4b08..efedb0c 100644
--- a/ld/po/ru.po
+++ b/ld/po/ru.po
@@ -1452,7 +1452,7 @@ msgstr "РаÑкрывать имена Ñимволов [иÑпользую СÐ
#: lexsup.c:319
msgid ""
"Do not allow multiple definitions with symbols included\n"
-" in filename invoked by -R or --just-symbols"
+" in filename invoked by -R or --just-symbols"
msgstr ""
"Ðе разрешать включение многократного Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñимволов\n"
" в файл, указанный параметром -R или --just-symbols"
diff --git a/ld/po/sr.po b/ld/po/sr.po
index 0012db3..759c8b9 100644
--- a/ld/po/sr.po
+++ b/ld/po/sr.po
@@ -14,10 +14,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: ld-2.43.90\n"
+"Project-Id-Version: ld-2.44.90\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2025-01-19 12:28+0000\n"
-"PO-Revision-Date: 2025-01-19 18:09+0100\n"
+"POT-Creation-Date: 2025-07-13 08:53+0100\n"
+"PO-Revision-Date: 2025-09-09 06:12+0200\n"
"Last-Translator: МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(nothing)>\n"
"Language: sr\n"
@@ -69,17 +69,17 @@ msgstr "Ðема Ñимбола\n"
msgid "%P: symbol `%pT' missing from main hash table\n"
msgstr "%P: Ñимбол „%pT“ недоÑтаје у главној хеш табели\n"
-#: ldcref.c:517 ldcref.c:628 ldmain.c:1357 ldmisc.c:327 pe-dll.c:780
-#: pe-dll.c:1350 pe-dll.c:1471 pe-dll.c:1573 eaarch64pe.c:1580 earm64pe.c:1580
+#: ldcref.c:517 ldcref.c:628 ldmain.c:1733 ldmisc.c:320 pe-dll.c:783
+#: pe-dll.c:1353 pe-dll.c:1474 pe-dll.c:1576 eaarch64pe.c:1580 earm64pe.c:1580
#: earm_wince_pe.c:1583 earm_wince_pe.c:1770 earmpe.c:1583 earmpe.c:1770
#: ei386pe.c:1583 ei386pe.c:1770 ei386pe_posix.c:1583 ei386pe_posix.c:1770
#: ei386pep.c:1580 emcorepe.c:1583 emcorepe.c:1770 eshpe.c:1583 eshpe.c:1770
-msgid "%F%P: %pB: could not read symbols: %E\n"
-msgstr "%F%P: %pB: не могу да читам Ñимболе: %E\n"
+msgid "%P: %pB: could not read symbols: %E\n"
+msgstr "%P: %pB: не могу да читам Ñимболе: %E\n"
-#: ldcref.c:690 ldcref.c:697 ldmain.c:1419 ldmain.c:1426
-msgid "%F%P: %pB: could not read relocs: %E\n"
-msgstr "%F%P: %pB: не могу да читам премештања: %E\n"
+#: ldcref.c:690 ldcref.c:697 ldmain.c:1795 ldmain.c:1802
+msgid "%P: %pB: could not read relocs: %E\n"
+msgstr "%P: %pB: не могу да читам премештања: %E\n"
#. We found a reloc for the symbol. The symbol is defined
#. in OUTSECNAME. This reloc is from a section which is
@@ -120,14 +120,14 @@ msgstr ""
"\n"
#: ldelf.c:98
-msgid "%F%P: common page size (0x%v) > maximum page size (0x%v)\n"
-msgstr "%F%P: уобичајена величина Ñтранице (0x%v) > највећа величина Ñтранице (0x%v)\n"
+msgid "%P: common page size (0x%v) > maximum page size (0x%v)\n"
+msgstr "%P: уобичајена величина Ñтранице (0x%v) > највећа величина Ñтранице (0x%v)\n"
#: ldelf.c:124
-msgid "%F%P: %pB: --just-symbols may not be used on DSO\n"
-msgstr "%F%P: %pB: „--just-symbols“ Ñе не могу нкориÑтити на „DSO“\n"
+msgid "%P: %pB: --just-symbols may not be used on DSO\n"
+msgstr "%P: %pB: „--just-symbols“ Ñе не могу кориÑтити на „DSO“\n"
-#: ldelf.c:226
+#: ldelf.c:226 ldelf.c:372
msgid "%P: %pB: bfd_stat failed: %E\n"
msgstr "%P: %pB: „bfd_stat“ није уÑпело: %E\n"
@@ -141,21 +141,17 @@ msgid "attempt to open %s failed\n"
msgstr "покушај отварања „%s“ није уÑпео\n"
#: ldelf.c:324
-msgid "%F%P: %pB: bfd_elf_get_bfd_needed_list failed: %E\n"
-msgstr "%F%P: %pB: „bfd_elf_get_bfd_needed_list“ није уÑпело: %E\n"
-
-#: ldelf.c:372
-msgid "%F%P: %pB: bfd_stat failed: %E\n"
-msgstr "%F%P: %pB: „bfd_stat“ није уÑпело: %E\n"
+msgid "%P: %pB: bfd_elf_get_bfd_needed_list failed: %E\n"
+msgstr "%P: %pB: „bfd_elf_get_bfd_needed_list“ није уÑпело: %E\n"
#: ldelf.c:378
#, c-format
msgid "found %s at %s\n"
msgstr "нађох „%s“ на „%s“\n"
-#: ldelf.c:411 ldlang.c:3177 ldlang.c:3191 ldlang.c:10994
-msgid "%F%P: %pB: error adding symbols: %E\n"
-msgstr "%F%P: %pB: грешка додавања Ñимбола: %E\n"
+#: ldelf.c:411 ldlang.c:3228 ldlang.c:3242 ldlang.c:11057
+msgid "%P: %pB: error adding symbols: %E\n"
+msgstr "%P: %pB: грешка додавања Ñимбола: %E\n"
#. We only issue an "unrecognised" message in verbose mode
#. as the $<foo> token might be a legitimate component of
@@ -175,199 +171,199 @@ msgid "%P: warning: %s, needed by %pB, not found (try using -rpath or -rpath-lin
msgstr "%P: упозорење: „%s“, које је потребно „%pB“-у, ниÑам нашао (покушајте да кориÑтите „-rpath“ или „-rpath-link“)\n"
#: ldelf.c:1209
-msgid "%F%P: failed to add DT_NEEDED dynamic tag\n"
-msgstr "%F%P: ниÑам уÑпео да додам „DT_NEEDED“ динамичку ознаку\n"
+msgid "%P: failed to add DT_NEEDED dynamic tag\n"
+msgstr "%P: ниÑам уÑпео да додам „DT_NEEDED“ динамичку ознаку\n"
-#: ldelf.c:1261
-msgid "%F%P: %s: can't open for writing: %E\n"
-msgstr "%F%P: %s: не могу да отворим за пиÑање: %E\n"
+#: ldelf.c:1260
+msgid "%P: %s: can't open for writing: %E\n"
+msgstr "%P: %s: не могу да отворим за пиÑање: %E\n"
-#: ldelf.c:1317
-msgid "%F%P: cannot use executable file '%pB' as input to a link\n"
-msgstr "%F%P: не могу да кориÑтим извршну датотеку „%pB“ као улаз за везу\n"
+#: ldelf.c:1315
+msgid "%P: cannot use executable file '%pB' as input to a link\n"
+msgstr "%P: не могу да кориÑтим извршну датотеку „%pB“ као улаз за везу\n"
-#: ldelf.c:1371
-msgid "%F%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"
-msgstr "%F%P: Ñажети опиÑи оквира ниÑу ÑаглаÑни Ñа „DWARF2 .eh_frame“ из „%pB“\n"
+#: ldelf.c:1369
+msgid "%P: compact frame descriptions incompatible with DWARF2 .eh_frame from %pB\n"
+msgstr "%P: Ñажети опиÑи оквира ниÑу ÑаглаÑни Ñа „DWARF2 .eh_frame“ из „%pB“\n"
-#: ldelf.c:1407
+#: ldelf.c:1405
msgid "%P: warning: cannot create .eh_frame_hdr section, --eh-frame-hdr ignored\n"
msgstr "%P: упозорење: не могу да направим „.eh_frame_hdr“ одељак, „--eh-frame-hdr“ је занемарено\n"
-#: ldelf.c:1413
-msgid "%F%P: failed to parse EH frame entries\n"
-msgstr "%F%P: ниÑам уÑпео да обрадим уноÑе „EH“ оквира\n"
+#: ldelf.c:1411
+msgid "%P: failed to parse EH frame entries\n"
+msgstr "%P: ниÑам уÑпео да обрадим уноÑе „EH“ оквира\n"
-#: ldelf.c:1455
+#: ldelf.c:1453
msgid "%P: warning: .note.gnu.build-id section discarded, --build-id ignored\n"
msgstr "%P: упозорење: „.note.gnu.build-id“ одељак је одбачен, „--build-id“ је занемарено\n"
-#: ldelf.c:1505 eaarch64pe.c:1354 earm64pe.c:1354 earm_wince_pe.c:1339
+#: ldelf.c:1503 eaarch64pe.c:1354 earm64pe.c:1354 earm_wince_pe.c:1339
#: earmpe.c:1339 ei386pe.c:1339 ei386pe_posix.c:1339 ei386pep.c:1354
#: emcorepe.c:1339 eshpe.c:1339
msgid "%P: warning: unrecognized --build-id style ignored\n"
msgstr "%P: упозорење: непознат „--build-id“ Ñтил је занемарен\n"
-#: ldelf.c:1524
+#: ldelf.c:1522
msgid "%P: warning: cannot create .note.gnu.build-id section, --build-id ignored\n"
msgstr "%P: упозорење: не могу да направим „.note.gnu.build-id“ одељак, „--build-id“ је занемарено\n"
-#: ldelf.c:1545
+#: ldelf.c:1543
msgid "%P: warning: .note.package section discarded, --package-metadata ignored\n"
msgstr "%P: упозорење: „.note.package“ одељак је одбачен, „--package-metadata“ је занемарено\n"
-#: ldelf.c:1601
+#: ldelf.c:1599
msgid "%P: warning: --package-metadata is empty, ignoring\n"
msgstr "%P: упозорење: „--package-metadata“ је празно, занемарујем\n"
-#: ldelf.c:1611
+#: ldelf.c:1609
msgid "%P: warning: --package-metadata=%s does not contain valid JSON, ignoring: %s\n"
msgstr "%P: упозорење: „--package-metadata=%s“ не Ñадржи иÑправан ЈСОÐ, занемарујем: %s\n"
-#: ldelf.c:1640
+#: ldelf.c:1638
msgid "%P: warning: cannot create .note.package section, --package-metadata ignored\n"
msgstr "%P: упозорење: не могу да направим „.note.package“ одељак, „--package-metadata“ је занемарено\n"
-#: ldelf.c:1672 eaix5ppc.c:1546 eaix5rs6.c:1546 eaixppc.c:1546 eaixrs6.c:1546
-#: eppcmacos.c:1546
-msgid "%F%P: failed to record assignment to %s: %E\n"
-msgstr "%F%P: ниÑам уÑпео да прибележим доделу за „%s“: %E\n"
+#: ldelf.c:1670 eaix5ppc.c:1545 eaix5rs6.c:1545 eaixppc.c:1545 eaixrs6.c:1545
+#: eppcmacos.c:1545
+msgid "%P: failed to record assignment to %s: %E\n"
+msgstr "%P: ниÑам уÑпео да прибележим доделу за „%s“: %E\n"
-#: ldelf.c:1850 ldelf.c:1915 eaix5ppc.c:816 eaix5rs6.c:816 eaixppc.c:816
+#: ldelf.c:1845 ldelf.c:1911 eaix5ppc.c:816 eaix5rs6.c:816 eaixppc.c:816
#: eaixrs6.c:816 eelf64_ia64_vms.c:209 eppcmacos.c:816
-msgid "%F%P: failed to set dynamic section sizes: %E\n"
-msgstr "%F%P: ниÑам уÑпео да поÑтавим величине динамичког одељка: %E\n"
+msgid "%P: failed to set dynamic section sizes: %E\n"
+msgstr "%P: ниÑам уÑпео да поÑтавим величине динамичког одељка: %E\n"
-#: ldelf.c:1887
-msgid "%F%P: %pB: can't read contents of section .gnu.warning: %E\n"
-msgstr "%F%P: %pB: не могу да читам Ñадржаје одељка „.gnu.warning“: %E\n"
+#: ldelf.c:1883
+msgid "%P: %pB: can't read contents of section %pA: %E\n"
+msgstr "%P: %pB: не могу да прочитам Ñадржај одељка „%pA“\n"
#: ldelfgen.c:285
-msgid "%F%P: %pA has both ordered and unordered sections\n"
-msgstr "%F%P: „%pA“ има и Ñређене и неÑређене одељке\n"
+msgid "%P: %pA has both ordered and unordered sections\n"
+msgstr "%P: „%pA“ има и Ñређене и неÑређене одељке\n"
#: ldelfgen.c:310 eelf32loongarch.c:106 eelf64loongarch.c:106
-msgid "%F%P: map sections to segments failed: %E\n"
-msgstr "%F%P: мапирање одељака у подеоке није уÑпело: %E\n"
+msgid "%P: map sections to segments failed: %E\n"
+msgstr "%P: мапирање одељака у подеоке није уÑпело: %E\n"
#: ldelfgen.c:330
-msgid "%F%P: looping in map_segments\n"
-msgstr "%F%P: кружење у подеоцима_мапе\n"
+msgid "%P: looping in map_segments\n"
+msgstr "%P: кружење у подеоцима_мапе\n"
-#: ldelfgen.c:342
-msgid "%F%P: failed to strip zero-sized dynamic sections\n"
-msgstr "%F%P: ниÑам уÑпео да покидам динамичке одељке нулте величине\n"
+#: ldelfgen.c:341
+msgid "%P: failed to strip zero-sized dynamic sections\n"
+msgstr "%P: ниÑам уÑпео да покидам динамичке одељке нулте величине\n"
-#: ldelfgen.c:420
-msgid "%F%P: warning: CTF strtab association failed; strings will not be shared: %s\n"
-msgstr "%F%P: упозорење: придруживање „CTF“ таб_ниÑке није уÑпело; ниÑке неће бити дељене: %s\n"
+#: ldelfgen.c:419
+msgid "%P: warning: CTF strtab association failed; strings will not be shared: %s\n"
+msgstr "%P: упозорење: придруживање „CTF“ таб_ниÑке није уÑпело; ниÑке неће бити дељене: %s\n"
-#: ldelfgen.c:447
-msgid "%F%P: warning: CTF symbol addition failed; CTF will not be tied to symbols: %s\n"
-msgstr "%F%P: упозорење: придодавање „CTF“ Ñимбола није уÑпело; „CTF“ неће бити везано за Ñимболе: %s\n"
+#: ldelfgen.c:446
+msgid "%P: warning: CTF symbol addition failed; CTF will not be tied to symbols: %s\n"
+msgstr "%P: упозорење: придодавање „CTF“ Ñимбола није уÑпело; „CTF“ неће бити везано за Ñимболе: %s\n"
-#: ldelfgen.c:457
-msgid "%F%P: warning: CTF symbol shuffling failed; CTF will not be tied to symbols: %s\n"
-msgstr "%F%P: упозорење: мешање „CTF“ Ñимбола није уÑпело; „CTF“ неће бити везано за Ñимболе: %s\n"
+#: ldelfgen.c:456
+msgid "%P: warning: CTF symbol shuffling failed; CTF will not be tied to symbols: %s\n"
+msgstr "%P: упозорење: мешање „CTF“ Ñимбола није уÑпело; „CTF“ неће бити везано за Ñимболе: %s\n"
-#: ldemul.c:323
+#: ldemul.c:331
#, c-format
msgid "%pS SYSLIB ignored\n"
msgstr "„%pS SYSLIB“ је занемарено\n"
-#: ldemul.c:329
+#: ldemul.c:337
#, c-format
msgid "%pS HLL ignored\n"
msgstr "„%pS HLL“ је занемарено\n"
-#: ldemul.c:349
+#: ldemul.c:357
msgid "%P: unrecognised emulation mode: %s\n"
msgstr "%P: непзнат режим емулације: %s\n"
-#: ldemul.c:350
+#: ldemul.c:358
msgid "Supported emulations: "
msgstr "Подржане емулације: "
-#: ldemul.c:392
+#: ldemul.c:400
#, c-format
msgid " no emulation specific options.\n"
msgstr " нема поÑебних опција емулације.\n"
#: ldexp.c:285
-msgid "%F%P: bfd_hash_allocate failed creating symbol %s\n"
-msgstr "%F%P: „bfd_hash_allocate“ није уÑпело Ñа Ñтварањем Ñимбола „%s“\n"
+msgid "%P: bfd_hash_allocate failed creating symbol %s\n"
+msgstr "%P: „bfd_hash_allocate“ није уÑпело Ñа Ñтварањем Ñимбола „%s“\n"
#: ldexp.c:316
-msgid "%F%P: bfd_hash_lookup failed creating symbol %s\n"
-msgstr "%F%P: „bfd_hash_lookup“ није уÑпело Ñа Ñтварањем Ñимбола „%s“\n"
+msgid "%P: bfd_hash_lookup failed creating symbol %s\n"
+msgstr "%P: „bfd_hash_lookup“ није уÑпело Ñа Ñтварањем Ñимбола „%s“\n"
#: ldexp.c:562
msgid "%P: warning: address of `%s' isn't multiple of maximum page size\n"
msgstr "%P: упозорење: адреÑа од „%s“ није множилац највеће величине Ñтранице\n"
#: ldexp.c:641
-msgid "%F%P:%pS %% by zero\n"
-msgstr "%F%P:%pS %% нулом\n"
+msgid "%P:%pS %% by zero\n"
+msgstr "%P:%pS %% нулом\n"
#: ldexp.c:650
-msgid "%F%P:%pS / by zero\n"
-msgstr "%F%P:%pS / нулом\n"
+msgid "%P:%pS / by zero\n"
+msgstr "%P:%pS / нулом\n"
-#: ldexp.c:764 ldlang.c:4035 ldmain.c:1324 eaarch64pe.c:1168 eaarch64pe.c:1784
+#: ldexp.c:764 ldlang.c:4112 ldmain.c:1700 eaarch64pe.c:1168 eaarch64pe.c:1784
#: earm64pe.c:1168 earm64pe.c:1784 earm_wince_pe.c:1154 earm_wince_pe.c:1881
#: earmpe.c:1154 earmpe.c:1881 ei386pe.c:1154 ei386pe.c:1881
#: ei386pe_posix.c:1154 ei386pe_posix.c:1881 ei386pep.c:1168 ei386pep.c:1784
#: emcorepe.c:1154 emcorepe.c:1881 eshpe.c:1154 eshpe.c:1881
-msgid "%F%P: bfd_link_hash_lookup failed: %E\n"
-msgstr "%F%P: „bfd_link_hash_lookup“ није уÑпело: %E\n"
+msgid "%P: bfd_link_hash_lookup failed: %E\n"
+msgstr "%P: „bfd_link_hash_lookup“ није уÑпело: %E\n"
#: ldexp.c:777
msgid "%X%P:%pS: unresolvable symbol `%s' referenced in expression\n"
msgstr "%X%P:%pS: нерешиви Ñимбол „%s“ има упуту у изразу\n"
#: ldexp.c:792
-msgid "%F%P:%pS: undefined symbol `%s' referenced in expression\n"
-msgstr "%F%P:%pS: недефиниÑани Ñимбол „%s“ има упуту у изразу\n"
+msgid "%P:%pS: undefined symbol `%s' referenced in expression\n"
+msgstr "%P:%pS: недефиниÑани Ñимбол „%s“ има упуту у изразу\n"
#: ldexp.c:830 ldexp.c:848 ldexp.c:876
-msgid "%F%P:%pS: undefined section `%s' referenced in expression\n"
-msgstr "%F%P:%pS: недефиниÑани одељак „%s“ има упуту у изразу\n"
+msgid "%P:%pS: undefined section `%s' referenced in expression\n"
+msgstr "%P:%pS: недефиниÑани одељак „%s“ има упуту у изразу\n"
#: ldexp.c:915 ldexp.c:929
-msgid "%F%P:%pS: undefined MEMORY region `%s' referenced in expression\n"
-msgstr "%F%P:%pS: недефиниÑана облаÑÑ‚ МЕМОРИЈЕ „%s“ има упуту у изразу\n"
+msgid "%P:%pS: undefined MEMORY region `%s' referenced in expression\n"
+msgstr "%P:%pS: недефиниÑана облаÑÑ‚ МЕМОРИЈЕ „%s“ има упуту у изразу\n"
#: ldexp.c:941
-msgid "%F%P:%pS: unknown constant `%s' referenced in expression\n"
-msgstr "%F%P:%pS непозната конÑтанта „%s“ има упуту у изразу\n"
+msgid "%P:%pS: unknown constant `%s' referenced in expression\n"
+msgstr "%P:%pS непозната конÑтанта „%s“ има упуту у изразу\n"
#: ldexp.c:1089
-msgid "%F%P:%pS can not PROVIDE assignment to location counter\n"
-msgstr "„%F%P:%pS“ не може да ОБЕЗБЕДИ додељивање бројачу меÑта\n"
+msgid "%P:%pS can not PROVIDE assignment to location counter\n"
+msgstr "„%P:%pS“ не може да ОБЕЗБЕДИ додељивање бројачу меÑта\n"
#: ldexp.c:1122
-msgid "%F%P:%pS invalid assignment to location counter\n"
-msgstr "„%F%P:%pS“ неиÑправно додељивање бројачу меÑта\n"
+msgid "%P:%pS invalid assignment to location counter\n"
+msgstr "„%P:%pS“ неиÑправно додељивање бројачу меÑта\n"
#: ldexp.c:1126
-msgid "%F%P:%pS assignment to location counter invalid outside of SECTIONS\n"
-msgstr "„%F%P:%pS“ додељивање бројачу меÑта неиÑправно изван ОДЕЉÐКÐ\n"
+msgid "%P:%pS assignment to location counter invalid outside of SECTIONS\n"
+msgstr "„%P:%pS“ додељивање бројачу меÑта неиÑправно изван ОДЕЉÐКÐ\n"
#: ldexp.c:1145
-msgid "%F%P:%pS cannot move location counter backwards (from %V to %V)\n"
-msgstr "„%F%P:%pS“ не може да помери бројач меÑта уназад (од %V до %V)\n"
+msgid "%P:%pS cannot move location counter backwards (from %V to %V)\n"
+msgstr "„%P:%pS“ не може да помери бројач меÑта уназад (од %V до %V)\n"
#: ldexp.c:1205
-msgid "%F%P:%s: hash creation failed\n"
-msgstr "%F%P:%s: Ñтварање хеша није уÑпело\n"
+msgid "%P:%s: hash creation failed\n"
+msgstr "%P:%s: Ñтварање хеша није уÑпело\n"
#: ldexp.c:1581 ldexp.c:1624 ldexp.c:1684
-msgid "%F%P:%pS: nonconstant expression for %s\n"
-msgstr "%F%P:%pS: неконÑтантни израз за „%s“\n"
+msgid "%P:%pS: nonconstant expression for %s\n"
+msgstr "%P:%pS: неконÑтантни израз за „%s“\n"
-#: ldexp.c:1711 ldlang.c:1355 ldlang.c:3510 ldlang.c:8236
-msgid "%F%P: can not create hash table: %E\n"
-msgstr "%F%P: не могу да направим хеш табелу: %E\n"
+#: ldexp.c:1711 ldlang.c:1399 ldlang.c:3561 ldlang.c:8309
+msgid "%P: can not create hash table: %E\n"
+msgstr "%P: не могу да направим хеш табелу: %E\n"
#: ldfile.c:239
#, c-format
@@ -414,98 +410,98 @@ msgid "attempt to open %s succeeded\n"
msgstr "покушај отварања „%s“ је уÑпео\n"
#: ldfile.c:364
-msgid "%F%P: invalid BFD target `%s'\n"
-msgstr "%F%P: неиÑправна БФД мета „%s“\n"
+msgid "%P: invalid BFD target `%s'\n"
+msgstr "%P: неиÑправна БФД мета „%s“\n"
-#: ldfile.c:494 ldfile.c:524
+#: ldfile.c:481 ldfile.c:511
msgid "%P: skipping incompatible %s when searching for %s\n"
msgstr "%P: преÑкачем неÑаглаÑно „%s“ када тражим „%s“\n"
-#: ldfile.c:507
-msgid "%F%P: attempted static link of dynamic object `%s'\n"
-msgstr "%F%P: покушах Ñтатичку везу динамичког објекта „%s“\n"
+#: ldfile.c:494
+msgid "%P: attempted static link of dynamic object `%s'\n"
+msgstr "%P: покушах Ñтатичку везу динамичког објекта „%s“\n"
-#: ldfile.c:636
+#: ldfile.c:623
msgid "%P: cannot find %s (%s): %E\n"
msgstr "%P: не могу да нађем „%s“ (%s): %E\n"
#. We ignore the return status of the script
#. and always print the error message.
-#: ldfile.c:639 ldfile.c:723 ldfile.c:727
+#: ldfile.c:626 ldfile.c:710 ldfile.c:714
msgid "%P: cannot find %s: %E\n"
msgstr "%P: не могу да нађем „%s“: %E\n"
-#: ldfile.c:691
+#: ldfile.c:678
msgid "%P: cannot find %s inside %s\n"
msgstr "%P: не могу да нађем „%s“ унутар „%s“\n"
-#: ldfile.c:706 ldmain.c:1504
+#: ldfile.c:693 ldmain.c:1880
msgid "%P: About to run error handling script '%s' with arguments: '%s' '%s'\n"
msgstr "%P: Покренућу Ñкрипту рада Ñа грешком „%s“ Ñа аргументима: „%s“ „%s“\n"
-#: ldfile.c:710 ldmain.c:1508
+#: ldfile.c:697 ldmain.c:1884
msgid "error handling script"
msgstr "грешка рада Ñа Ñкриптом"
-#: ldfile.c:716 ldmain.c:1514
+#: ldfile.c:703 ldmain.c:1890
msgid "%P: Failed to run error handling script '%s', reason: "
msgstr "%P: ÐиÑам уÑпео да покренем Ñкрипту рада Ñа грешком „%s“, разлог: "
-#: ldfile.c:732
+#: ldfile.c:719
msgid "%P: have you installed the static version of the %s library ?\n"
msgstr "%P: Да ли Ñте инÑталирали Ñтатичко издање библиотеке „%s“?\n"
-#: ldfile.c:743
+#: ldfile.c:730
msgid "%P: note to link with %s use -l:%s or rename it to lib%s\n"
msgstr "%P: напомена ка вези Ñа „%s“ кориÑти „-l:%s“ или га преименује у „lib%s“\n"
-#: ldfile.c:775
+#: ldfile.c:762
#, c-format
msgid "cannot find script file %s\n"
msgstr "не могу да нађем датотеку Ñкрипте „%s“\n"
-#: ldfile.c:777
+#: ldfile.c:764
#, c-format
msgid "opened script file %s\n"
msgstr "отворих датотеку Ñкрипте „%s“\n"
-#: ldfile.c:913
-msgid "%F%P: error: linker script file '%s' appears multiple times\n"
-msgstr "%F%P: грешка: датотека Ñкрипте повезивача „%s“ Ñе јавља више пута\n"
+#: ldfile.c:900
+msgid "%P: error: linker script file '%s' appears multiple times\n"
+msgstr "%P: грешка: датотека Ñкрипте повезивача „%s“ Ñе јавља више пута\n"
-#: ldfile.c:932
-msgid "%F%P: cannot open linker script file %s: %E\n"
-msgstr "%F%P: не могу да отворим датотеку Ñкрипте повезивача „%s“: %E\n"
+#: ldfile.c:919
+msgid "%P: cannot open linker script file %s: %E\n"
+msgstr "%P: не могу да отворим датотеку Ñкрипте повезивача „%s“: %E\n"
-#: ldfile.c:1026
-msgid "%F%P: cannot represent machine `%s'\n"
-msgstr "%F%P: не могу да предÑтавим машину „%s“\n"
+#: ldfile.c:1013
+msgid "%P: cannot represent machine `%s'\n"
+msgstr "%P: не могу да предÑтавим машину „%s“\n"
-#: ldlang.c:1446
+#: ldlang.c:1490
msgid "%P:%pS: warning: redeclaration of memory region `%s'\n"
msgstr "%P:%pS: упозорење: поновно деклариÑање облаÑти меморије „%s“\n"
-#: ldlang.c:1452
+#: ldlang.c:1496
msgid "%P:%pS: warning: memory region `%s' not declared\n"
msgstr "%P:%pS: упозорење: облаÑÑ‚ меморије „%s“ није деклариÑана\n"
-#: ldlang.c:1488
-msgid "%F%P:%pS: error: alias for default memory region\n"
-msgstr "%F%P:%pS: грешка: Ð°Ð»Ð¸Ñ˜Ð°Ñ Ð·Ð° оÑновну облаÑÑ‚ меморије\n"
+#: ldlang.c:1532
+msgid "%P:%pS: error: alias for default memory region\n"
+msgstr "%P:%pS: грешка: Ð°Ð»Ð¸Ñ˜Ð°Ñ Ð·Ð° оÑновну облаÑÑ‚ меморије\n"
-#: ldlang.c:1499
-msgid "%F%P:%pS: error: redefinition of memory region alias `%s'\n"
-msgstr "%F%P:%pS: грешка: поновно дефиниÑање алијаÑа облаÑти меморије „%s“\n"
+#: ldlang.c:1543
+msgid "%P:%pS: error: redefinition of memory region alias `%s'\n"
+msgstr "%P:%pS: грешка: поновно дефиниÑање алијаÑа облаÑти меморије „%s“\n"
-#: ldlang.c:1506
-msgid "%F%P:%pS: error: memory region `%s' for alias `%s' does not exist\n"
-msgstr "%F%P:%pS: грешка: облаÑÑ‚ меморије „%s“ за алијаÑа „%s“ не поÑтоји\n"
+#: ldlang.c:1550
+msgid "%P:%pS: error: memory region `%s' for alias `%s' does not exist\n"
+msgstr "%P:%pS: грешка: облаÑÑ‚ меморије „%s“ за алијаÑа „%s“ не поÑтоји\n"
-#: ldlang.c:1567 ldlang.c:1610
-msgid "%F%P: failed creating section `%s': %E\n"
-msgstr "%F%P: ниÑам уÑпео да направим одељак „%s“: %E\n"
+#: ldlang.c:1611 ldlang.c:1654
+msgid "%P: failed creating section `%s': %E\n"
+msgstr "%P: ниÑам уÑпео да направим одељак „%s“: %E\n"
-#: ldlang.c:2328
+#: ldlang.c:2372
msgid ""
"\n"
"As-needed library included to satisfy reference by file (symbol)\n"
@@ -515,7 +511,7 @@ msgstr ""
"Библиотека као-што-је-потребно је укључена да би задовољила упуту датотеком (Ñимболом)\n"
"\n"
-#: ldlang.c:2393
+#: ldlang.c:2437
msgid ""
"\n"
"Discarded input sections\n"
@@ -525,7 +521,7 @@ msgstr ""
"Одбачени одељци улаза\n"
"\n"
-#: ldlang.c:2401
+#: ldlang.c:2445
msgid ""
"\n"
"There are no discarded input sections\n"
@@ -533,7 +529,7 @@ msgstr ""
"\n"
"Ðема одбачених одељака улаза\n"
-#: ldlang.c:2403
+#: ldlang.c:2447
msgid ""
"\n"
"Memory Configuration\n"
@@ -543,23 +539,23 @@ msgstr ""
"Подешавање меморије\n"
"\n"
-#: ldlang.c:2405
+#: ldlang.c:2449
msgid "Name"
msgstr "Ðазив"
-#: ldlang.c:2405
+#: ldlang.c:2449
msgid "Origin"
msgstr "Порекло"
-#: ldlang.c:2405
+#: ldlang.c:2449
msgid "Length"
msgstr "Дужина"
-#: ldlang.c:2405
+#: ldlang.c:2449
msgid "Attributes"
msgstr "Ðтрибути"
-#: ldlang.c:2429
+#: ldlang.c:2473
msgid ""
"\n"
"Linker script and memory map\n"
@@ -569,250 +565,250 @@ msgstr ""
"Скрипта повезивача и мапа меморије\n"
"\n"
-#: ldlang.c:2482
-msgid "%F%P: illegal use of `%s' section\n"
-msgstr "%F%P: неиÑправна употреба одељка „%s“\n"
+#: ldlang.c:2533
+msgid "%P: illegal use of `%s' section\n"
+msgstr "%P: неиÑправна употреба одељка „%s“\n"
-#: ldlang.c:2491
-msgid "%F%P: output format %s cannot represent section called %s: %E\n"
-msgstr "%F%P: формат излаза „%s“ не може да предÑтавља одељак под називом „%s: %E“\n"
+#: ldlang.c:2542
+msgid "%P: output format %s cannot represent section called %s: %E\n"
+msgstr "%P: формат излаза „%s“ не може да предÑтавља одељак под називом „%s: %E“\n"
-#: ldlang.c:2672
+#: ldlang.c:2723
msgid "%P:%pS: warning: --enable-non-contiguous-regions makes section `%pA' from `%pB' match /DISCARD/ clause.\n"
msgstr "%P:%pS: упозорење: „--enable-non-contiguous-regions“ чини да одељак „%pA“ из „%pB“ одговара клаузули „/DISCARD/“.\n"
-#: ldlang.c:2696
+#: ldlang.c:2747
msgid "%P:%pS: warning: --enable-non-contiguous-regions may change behaviour for section `%pA' from `%pB' (assigned to %pA, but additional match: %pA)\n"
msgstr "%P:%pS: упозорење: „--enable-non-contiguous-regions“ може променити понашање за одељак „%pA“ из „%pB“ (додељено за „%pA“, али додатно Ñе поклапа Ñа: %pA)\n"
-#: ldlang.c:3074
+#: ldlang.c:3125
msgid "%P: %pB: file not recognized: %E; matching formats:"
msgstr "%P: %pB: датотека није препозната: %E; одговарајући запиÑи:"
-#: ldlang.c:3083
-msgid "%F%P: %pB: file not recognized: %E\n"
-msgstr "%F%P: %pB: датотека није препозната: %E\n"
+#: ldlang.c:3134
+msgid "%P: %pB: file not recognized: %E\n"
+msgstr "%P: %pB: датотека није препозната: %E\n"
-#: ldlang.c:3156
-msgid "%F%P: %pB: member %pB in archive is not an object\n"
-msgstr "%F%P: %pB: члан „%pB“ у архиви није објекат\n"
+#: ldlang.c:3207
+msgid "%P: %pB: member %pB in archive is not an object\n"
+msgstr "%P: %pB: члан „%pB“ у архиви није објекат\n"
-#: ldlang.c:3432
-msgid "%F%P: input file '%s' is the same as output file\n"
-msgstr "%F%P: улазна датотека „%s“ је иÑта као излазна датотека\n"
+#: ldlang.c:3483
+msgid "%P: input file '%s' is the same as output file\n"
+msgstr "%P: улазна датотека „%s“ је иÑта као излазна датотека\n"
-#: ldlang.c:3480
+#: ldlang.c:3531
msgid "%P: warning: could not find any targets that match endianness requirement\n"
msgstr "%P: упозорење: не могу да нађем ниједну мету која одговар захтевима крајњоÑти\n"
-#: ldlang.c:3494
-msgid "%F%P: target %s not found\n"
-msgstr "%F%P: ниÑам нашао мету „%s“\n"
+#: ldlang.c:3545
+msgid "%P: target %s not found\n"
+msgstr "%P: ниÑам нашао мету „%s“\n"
-#: ldlang.c:3496
-msgid "%F%P: cannot open output file %s: %E\n"
-msgstr "%F%P: не могу да отворим излазну датотеку „%s“: %E\n"
+#: ldlang.c:3547
+msgid "%P: cannot open output file %s: %E\n"
+msgstr "%P: не могу да отворим излазну датотеку „%s“: %E\n"
-#: ldlang.c:3502
-msgid "%F%P: %s: can not make object file: %E\n"
-msgstr "%F%P: %s: не могу да направим објектну датотеку: %E\n"
+#: ldlang.c:3553
+msgid "%P: %s: can not make object file: %E\n"
+msgstr "%P: %s: не могу да направим објектну датотеку: %E\n"
-#: ldlang.c:3506
-msgid "%F%P: %s: can not set architecture: %E\n"
-msgstr "%F%P: %s: не могу да подеÑим архитектуру: %E\n"
+#: ldlang.c:3557
+msgid "%P: %s: can not set architecture: %E\n"
+msgstr "%P: %s: не могу да подеÑим архитектуру: %E\n"
-#: ldlang.c:3693
+#: ldlang.c:3744
msgid "%P: warning: %s contains output sections; did you forget -T?\n"
msgstr "%P: упозорење: „%s“ Ñадржи излазне одељке; да ли Ñте заборавили „-T“?\n"
-#: ldlang.c:3740
+#: ldlang.c:3791
#, c-format
msgid "%s: %s\n"
msgstr "%s: %s\n"
-#: ldlang.c:3740
+#: ldlang.c:3791
msgid "CTF warning"
msgstr "„CTF“ упозорење"
-#: ldlang.c:3740
+#: ldlang.c:3791
msgid "CTF error"
msgstr "„CTF“ грешка"
-#: ldlang.c:3746
+#: ldlang.c:3797
#, c-format
msgid "CTF error: cannot get CTF errors: `%s'\n"
msgstr "„CTF“ грешка: не могу да добавим „CTF“ грешке: %s\n"
-#: ldlang.c:3780
+#: ldlang.c:3833
msgid "%P: warning: CTF section in %pB not loaded; its types will be discarded: %s\n"
msgstr "%P: упозорење: „CTF“ одељак у „%pB“ није учитан; његове врÑте биће одбачене: „%s“\n"
-#: ldlang.c:3809
+#: ldlang.c:3866
msgid "%P: warning: CTF output not created: `%s'\n"
msgstr "%P: упозорење: „CTF“ излаз није направљен: „%s“\n"
-#: ldlang.c:3852
+#: ldlang.c:3915
msgid "%P: warning: CTF section in %pB cannot be linked: `%s'\n"
msgstr "%P: упозорење: „CTF“ одељак у „%pB“ Ñе не може повезати: %s\n"
-#: ldlang.c:3872
+#: ldlang.c:3935
msgid "%P: warning: CTF linking failed; output will have no CTF section: %s\n"
msgstr "%P: упозорење: „CTF“ повезивање није уÑпело; излаз неће имати „CTF“ одељак: %s\n"
-#: ldlang.c:3943
+#: ldlang.c:4018
msgid "%P: warning: CTF section emission failed; output will have no CTF section: %s\n"
msgstr "%P: емитовање „CTF“ одељка није уÑпело; излаз неће имати „CTF“ одељак: %s\n"
-#: ldlang.c:3982
+#: ldlang.c:4059
msgid "%P: warning: CTF section in %pB not linkable: %P was built without support for CTF\n"
msgstr "%P: упозорење: „CTF“ одељак у „%pB“ није Ñвезив: „%P“ је уграђен без подршке за „CTF“\n"
-#: ldlang.c:4120
+#: ldlang.c:4195
msgid "%X%P: required symbol `%s' not defined\n"
msgstr "%X%P: затражен Ñимбол „%s“ није дефиниÑан\n"
-#: ldlang.c:4321 ldlang.c:4330
-msgid "%F%P: invalid type for output section `%s'\n"
-msgstr "%F%P: неиÑправна врÑта за излазни одељак „%s“\n"
+#: ldlang.c:4396 ldlang.c:4405
+msgid "%P: invalid type for output section `%s'\n"
+msgstr "%P: неиÑправна врÑта за излазни одељак „%s“\n"
-#: ldlang.c:4466
+#: ldlang.c:4541
msgid "warning: INSERT statement in linker script is incompatible with --enable-non-contiguous-regions.\n"
msgstr "warning: „INSERT“ тврдња у Ñкрипти Ñвезача није ÑаглаÑна Ñа „--enable-non-contiguous-regions“.\n"
-#: ldlang.c:4479
-msgid "%F%P: %s not found for insert\n"
-msgstr "%F%P: ниÑам нашао „%s“ за уметање\n"
+#: ldlang.c:4554
+msgid "%P: %s not found for insert\n"
+msgstr "%P: ниÑам нашао „%s“ за уметање\n"
-#: ldlang.c:4751
+#: ldlang.c:4826
msgid " load address 0x%V"
msgstr " адреÑа учитавања 0x%V"
-#: ldlang.c:5013
+#: ldlang.c:5086
msgid "%W (size before relaxing)\n"
msgstr "%W (величина пре одмора)\n"
-#: ldlang.c:5142
+#: ldlang.c:5215
#, c-format
msgid "Address of section %s set to "
msgstr "ÐдреÑа одељка „%s“ је поÑтављена на "
-#: ldlang.c:5344
+#: ldlang.c:5417
#, c-format
msgid "Fail with %d\n"
msgstr "ÐиÑам уÑпео Ñа Ñтањем „%d“\n"
-#: ldlang.c:5561
-msgid "%F%P: Output section `%pA' not large enough for the linker-created stubs section `%pA'.\n"
-msgstr "%F%P: Излазни одељак „%pA“ није довољно велик за Ñвезачем направљен одељак окрајка „%pA“.\n"
+#: ldlang.c:5634
+msgid "%P: Output section `%pA' not large enough for the linker-created stubs section `%pA'.\n"
+msgstr "%P: Излазни одељак „%pA“ није довољно велик за Ñвезачем направљен одељак окрајка „%pA“.\n"
-#: ldlang.c:5566
-msgid "%F%P: Relaxation not supported with --enable-non-contiguous-regions (section `%pA' would overflow `%pA' after it changed size).\n"
-msgstr "%F%P: Опуштање није подржано Ñа „--enable-non-contiguous-regions“ (одељак „%pA“ ће преплавити „%pA“ након његове промењене величине).\n"
+#: ldlang.c:5639
+msgid "%P: Relaxation not supported with --enable-non-contiguous-regions (section `%pA' would overflow `%pA' after it changed size).\n"
+msgstr "%P: Опуштање није подржано Ñа „--enable-non-contiguous-regions“ (одељак „%pA“ ће преплавити „%pA“ након његове промењене величине).\n"
-#: ldlang.c:5675
+#: ldlang.c:5748
msgid "%X%P: section %s VMA wraps around address space\n"
msgstr "%X%P: одељак „%s VMA“ Ñе прелама око проÑтора адреÑе\n"
-#: ldlang.c:5681
+#: ldlang.c:5754
msgid "%X%P: section %s LMA wraps around address space\n"
msgstr "%X%P: одељак „%s LMA“ Ñе прелама око проÑтора адреÑе\n"
-#: ldlang.c:5733
+#: ldlang.c:5806
msgid "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"
msgstr "%X%P: одељак „%s LMA“ [%V,%V] преклапа одељак „%s LMA“ [%V,%V]\n"
-#: ldlang.c:5777
+#: ldlang.c:5850
msgid "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"
msgstr "%X%P: одељак „%s VMA“ [%V,%V] преклапа одељак „%s VMA“ [%V,%V]\n"
-#: ldlang.c:5800
+#: ldlang.c:5873
msgid "%X%P: region `%s' overflowed by %lu byte\n"
msgid_plural "%X%P: region `%s' overflowed by %lu bytes\n"
msgstr[0] "%X%P: облаÑÑ‚ „%s“ је препуњена Ñа %lu бајтом\n"
msgstr[1] "%X%P: облаÑÑ‚ „%s“ је препуњена Ñа %lu бајта\n"
msgstr[2] "%X%P: облаÑÑ‚ „%s“ је препуњена Ñа %lu бајтова\n"
-#: ldlang.c:5825
+#: ldlang.c:5898
msgid "%X%P: address 0x%v of %pB section `%s' is not within region `%s'\n"
msgstr "%X%P: адреÑа 0x%v %pB одељка „%s“ није унутар облаÑти „%s“\n"
-#: ldlang.c:5836
+#: ldlang.c:5909
msgid "%X%P: %pB section `%s' will not fit in region `%s'\n"
msgstr "%X%P: %pB одељак „%s“ неће Ñтати у облаÑÑ‚ „%s“\n"
-#: ldlang.c:5922
-msgid "%F%P:%pS: non constant or forward reference address expression for section %s\n"
-msgstr "%F%P:%pS: не конÑтанта или Ñледећи израз адреÑе упуте за одељак „%s“\n"
+#: ldlang.c:5995
+msgid "%P:%pS: non constant or forward reference address expression for section %s\n"
+msgstr "%P:%pS: не конÑтанта или Ñледећи израз адреÑе упуте за одељак „%s“\n"
-#: ldlang.c:5947
+#: ldlang.c:6020
msgid "%X%P: internal error on COFF shared library section %s\n"
msgstr "%X%P: унутрашња грешка на „COFF“ дељеном одељку библиотеке „%s“\n"
-#: ldlang.c:6005
-msgid "%F%P: error: no memory region specified for loadable section `%s'\n"
-msgstr "%F%P: грешка: није наведена облаÑÑ‚ меморије за учитљив одељак „%s“\n"
+#: ldlang.c:6078
+msgid "%P: error: no memory region specified for loadable section `%s'\n"
+msgstr "%P: грешка: није наведена облаÑÑ‚ меморије за учитљив одељак „%s“\n"
-#: ldlang.c:6009
+#: ldlang.c:6082
msgid "%P: warning: no memory region specified for loadable section `%s'\n"
msgstr "%P: упозорење: није наведена облаÑÑ‚ меморије за учитљив одељак „%s“\n"
-#: ldlang.c:6043
+#: ldlang.c:6116
msgid "%P: warning: start of section %s changed by %ld\n"
msgstr "%P: упозорење: почетак одељка „%s“ је измењен за %lu\n"
-#: ldlang.c:6136
+#: ldlang.c:6209
msgid "%P: warning: dot moved backwards before `%s'\n"
msgstr "%P: упозорење: тачка је померена уназад пре „%s“\n"
-#: ldlang.c:6312
-msgid "%F%P: can't relax section: %E\n"
-msgstr "%F%P: не могу да одморим одељак: %E\n"
+#: ldlang.c:6385
+msgid "%P: can't relax section: %E\n"
+msgstr "%P: не могу да одморим одељак: %E\n"
-#: ldlang.c:6721
-msgid "%F%P: invalid data statement\n"
-msgstr "%F%P: неиÑправна изјава података\n"
+#: ldlang.c:6794
+msgid "%P: invalid data statement\n"
+msgstr "%P: неиÑправна изјава података\n"
-#: ldlang.c:6754
-msgid "%F%P: invalid reloc statement\n"
-msgstr "%F%P: неиÑправна изјава премештања\n"
+#: ldlang.c:6827
+msgid "%P: invalid reloc statement\n"
+msgstr "%P: неиÑправна изјава премештања\n"
-#: ldlang.c:7172
-msgid "%F%P: --gc-sections requires a defined symbol root specified by -e or -u\n"
-msgstr "%F%P: „--gc-sections“ захтева дефиниÑани корен Ñимбола одређеног Ñа „-e“ или „-u“\n"
+#: ldlang.c:7244
+msgid "%P: --gc-sections requires a defined symbol root specified by -e or -u\n"
+msgstr "%P: „--gc-sections“ захтева дефиниÑани корен Ñимбола одређеног Ñа „-e“ или „-u“\n"
-#: ldlang.c:7197
-msgid "%F%P: %s: can't set start address\n"
-msgstr "%F%P: %s: не могу да подеÑим почетну адреÑу\n"
+#: ldlang.c:7271
+msgid "%P: %s: can't set start address\n"
+msgstr "%P: %s: не могу да подеÑим почетну адреÑу\n"
-#: ldlang.c:7210 ldlang.c:7229
-msgid "%F%P: can't set start address\n"
-msgstr "%F%P: не могу да подеÑим почетну адреÑу\n"
+#: ldlang.c:7284 ldlang.c:7303
+msgid "%P: can't set start address\n"
+msgstr "%P: не могу да подеÑим почетну адреÑу\n"
-#: ldlang.c:7223
+#: ldlang.c:7297
msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
msgstr "%P: упозорење: не могу да нађем улазни Ñимбол „%s“; поÑтављам на оÑновно „%V“\n"
-#: ldlang.c:7234 ldlang.c:7242
+#: ldlang.c:7308 ldlang.c:7316
msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
msgstr "%P: упозорење: не могу да нађем улазни Ñимбол „%s“; не подешавам почетну адреÑу\n"
-#: ldlang.c:7298
-msgid "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"
-msgstr "%F%P: премеÑтиво повезивање Ñа премештањима из формата „%s“ (%pB) у формат „%s“ (%pB) није подржано\n"
+#: ldlang.c:7372
+msgid "%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"
+msgstr "%P: премеÑтиво повезивање Ñа премештањима из формата „%s“ (%pB) у формат „%s“ (%pB) није подржано\n"
-#: ldlang.c:7308
+#: ldlang.c:7381
msgid "%X%P: %s architecture of input file `%pB' is incompatible with %s output\n"
msgstr "%X%P: „%s“ архитектура улазне датотеке „%pB“ није ÑаглаÑна Ñа излазом „%s“\n"
-#: ldlang.c:7332
+#: ldlang.c:7405
msgid "%X%P: failed to merge target specific data of file %pB\n"
msgstr "%X%P: ниÑма уÑпео да Ñпојим мети Ñпецифичне податке датотеке „%pB“\n"
-#: ldlang.c:7403
-msgid "%F%P: could not define common symbol `%pT': %E\n"
-msgstr "%F%P: не могу да дефинишем општи Ñимбол „%pT“: %E\n"
+#: ldlang.c:7476
+msgid "%P: could not define common symbol `%pT': %E\n"
+msgstr "%P: не могу да дефинишем општи Ñимбол „%pT“: %E\n"
-#: ldlang.c:7415
+#: ldlang.c:7488
msgid ""
"\n"
"Allocating common symbols\n"
@@ -820,7 +816,7 @@ msgstr ""
"\n"
"Додељујем опште Ñимболе\n"
-#: ldlang.c:7416
+#: ldlang.c:7489
msgid ""
"Common symbol size file\n"
"\n"
@@ -828,36 +824,36 @@ msgstr ""
"Општи Ñимбол величина датотека\n"
"\n"
-#: ldlang.c:7473
+#: ldlang.c:7546
msgid "%X%P: error: unplaced orphan section `%pA' from `%pB'\n"
msgstr "%X%P: грешка: није Ñтављен напуштен одељак „%pA“ из „%pB“\n"
-#: ldlang.c:7491
+#: ldlang.c:7564
msgid "%P: warning: orphan section `%pA' from `%pB' being placed in section `%s'\n"
msgstr "%P: упозорење: напуштен одељак „%pA“ из „%pB“ је Ñтављен у одељак „%s“\n"
-#: ldlang.c:7581
-msgid "%F%P: invalid character %c (%d) in flags\n"
-msgstr "%F%P: неиÑправан знак „%c“ (%d) у заÑтавицама\n"
+#: ldlang.c:7654
+msgid "%P: invalid character %c (%d) in flags\n"
+msgstr "%P: неиÑправан знак „%c“ (%d) у заÑтавицама\n"
#. && in_section_ordering
-#: ldlang.c:7675
-msgid "%F%P:%pS: error: output section '%s' must already exist\n"
-msgstr "%F%P:%pS: грешка: облаÑÑ‚ меморије „%s“ мора већ да поÑтоји\n"
+#: ldlang.c:7748
+msgid "%P:%pS: error: output section '%s' must already exist\n"
+msgstr "%P:%pS: грешка: облаÑÑ‚ меморије „%s“ мора већ да поÑтоји\n"
-#: ldlang.c:7699
-msgid "%F%P:%pS: error: align with input and explicit align specified\n"
-msgstr "%F%P:%pS: грешка: поравнање Ñа улазом и изричитим поравнањем је наведено\n"
+#: ldlang.c:7772
+msgid "%P:%pS: error: align with input and explicit align specified\n"
+msgstr "%P:%pS: грешка: поравнање Ñа улазом и изричитим поравнањем је наведено\n"
-#: ldlang.c:8170
+#: ldlang.c:8243
msgid "%P: warning: --enable-non-contiguous-regions discards section `%pA' from `%pB'\n"
msgstr "%P: упозорење: „--enable-non-contiguous-regions“ одбацује одељак „%pA“ из „%pB“\n"
-#: ldlang.c:8274
-msgid "%F%P: %s: plugin reported error after all symbols read\n"
-msgstr "%F%P: %s: извештена грешка прикључка након читања Ñвих Ñимбола\n"
+#: ldlang.c:8347
+msgid "%P: %s: plugin reported error after all symbols read\n"
+msgstr "%P: %s: извештена грешка прикључка након читања Ñвих Ñимбола\n"
-#: ldlang.c:8399
+#: ldlang.c:8472
msgid ""
"Object-only input files:\n"
" "
@@ -865,251 +861,255 @@ msgstr ""
"Објекта-Ñамо улазне датотеке:\n"
" "
-#: ldlang.c:8511
-msgid "%F%P: bfd_merge_sections failed: %E\n"
-msgstr "%F%P: клонирање одељка није уÑпело: %E\n"
+#: ldlang.c:8586
+msgid "%P: bfd_merge_sections failed: %E\n"
+msgstr "%P: клонирање одељка није уÑпело: %E\n"
-#: ldlang.c:8888
-msgid "%F%P: multiple STARTUP files\n"
-msgstr "%F%P: неколико ПОЧЕТÐИХ датотека\n"
+#: ldlang.c:8965
+msgid "%P: multiple STARTUP files\n"
+msgstr "%P: неколико ПОЧЕТÐИХ датотека\n"
-#: ldlang.c:8934
+#: ldlang.c:9010
msgid "%X%P:%pS: section has both a load address and a load region\n"
msgstr "%X%P:%pS: одељак има и адреÑу учитавања и облаÑÑ‚ учитавања\n"
-#: ldlang.c:9043
+#: ldlang.c:9119
msgid "%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them\n"
msgstr "%X%P:%pS: „PHDRS“ и „FILEHDR“ ниÑу подржани када недоÑтају у претходним „PT_LOAD“ заглављима\n"
-#: ldlang.c:9116
-msgid "%F%P: no sections assigned to phdrs\n"
-msgstr "%F%P: ниједан одељак није додељен „phdrs“-у\n"
+#: ldlang.c:9192
+msgid "%P: no sections assigned to phdrs\n"
+msgstr "%P: ниједан одељак није додељен „phdrs“-у\n"
-#: ldlang.c:9154
-msgid "%F%P: bfd_record_phdr failed: %E\n"
-msgstr "%F%P: „bfd_record_phdr“ није уÑпело: %E\n"
+#: ldlang.c:9230
+msgid "%P: bfd_record_phdr failed: %E\n"
+msgstr "%P: „bfd_record_phdr“ није уÑпело: %E\n"
-#: ldlang.c:9174
+#: ldlang.c:9250
msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
msgstr "%X%P: одељак „%s“ је додељен непоÑтојећем „phdr“-у „%s“\n"
-#: ldlang.c:9590
+#: ldlang.c:9663
msgid "%X%P: unknown language `%s' in version information\n"
msgstr "%X%P: непознат језик „%s“ у подацима о издању\n"
-#: ldlang.c:9735
+#: ldlang.c:9801
msgid "%X%P: anonymous version tag cannot be combined with other version tags\n"
msgstr "%X%P: анонимна ознака издања Ñе не може комбиновати Ñа другим ознакама издања\n"
-#: ldlang.c:9744
+#: ldlang.c:9809
msgid "%X%P: duplicate version tag `%s'\n"
msgstr "%X%P: удвоÑтручена ознака издања „%s“\n"
-#: ldlang.c:9765 ldlang.c:9774 ldlang.c:9792 ldlang.c:9802
+#: ldlang.c:9830 ldlang.c:9839 ldlang.c:9857 ldlang.c:9867
msgid "%X%P: duplicate expression `%s' in version information\n"
msgstr "%X%P: удвоÑтручени израз „%s“ у подацима о издању\n"
-#: ldlang.c:9842
+#: ldlang.c:9907
msgid "%X%P: unable to find version dependency `%s'\n"
msgstr "%X%P: не могу да нађем завиÑноÑÑ‚ издања „%s“\n"
-#: ldlang.c:9865
+#: ldlang.c:9930
msgid "%X%P: unable to read .exports section contents\n"
msgstr "%X%P: не могу да прочитам Ñадржаје одељка „.exports“ (извоза)\n"
-#: ldlang.c:9911
+#: ldlang.c:9974
msgid "%P: invalid origin for memory region %s\n"
msgstr "%P: неиÑправно порекло за облаÑÑ‚ меморије „%s“\n"
-#: ldlang.c:9923
+#: ldlang.c:9986
msgid "%P: invalid length for memory region %s\n"
msgstr "%P: неиÑправна дужина за облаÑÑ‚ меморије „%s“\n"
-#: ldlang.c:10035
+#: ldlang.c:10099
msgid "%X%P: unknown feature `%s'\n"
msgstr "%X%P: непозната функција „%s“\n"
-#: ldlang.c:10401
+#: ldlang.c:10465
msgid "failed to create output section"
msgstr "ниÑам уÑпео да направим излазни одељак"
-#: ldlang.c:10435
+#: ldlang.c:10499
msgid "failed to copy private data"
msgstr "ниÑам уÑпео да умножим личне податке"
-#: ldlang.c:10444
-msgid "%P%F: setup_section: %s: %s\n"
-msgstr "%P%F: setup_section: %s: %s\n"
+#: ldlang.c:10508
+msgid "%P: setup_section: %s: %s\n"
+msgstr "%F: setup_section: %s: %s\n"
-#: ldlang.c:10507
+#: ldlang.c:10571
msgid "relocation count is negative"
msgstr "збир премештаја је негативан"
-#: ldlang.c:10539
-msgid "%P%F: copy_section: %s: %s\n"
-msgstr "%P%F: copy_section: %s: %s\n"
+#: ldlang.c:10603
+msgid "%P: copy_section: %s: %s\n"
+msgstr "%F: copy_section: %s: %s\n"
-#: ldlang.c:10694
+#: ldlang.c:10758
msgid "error setting up sections"
msgstr "грешка подешавања одељака"
-#: ldlang.c:10702
+#: ldlang.c:10766
msgid "error copying private header data"
msgstr "грешка умножавања личних података заглавља"
-#: ldlang.c:10715
+#: ldlang.c:10779
msgid "can't create object-only section"
msgstr "не могу да направим објекта-Ñамо одељак"
-#: ldlang.c:10721
+#: ldlang.c:10785
msgid "can't set object-only section size"
msgstr "не могу да поÑтавим величину одељка објекта-Ñамо"
-#: ldlang.c:10752
+#: ldlang.c:10816
msgid "error copying sections"
msgstr "грешка умножавања одељака"
-#: ldlang.c:10759
+#: ldlang.c:10823
msgid "error adding object-only section"
msgstr "грешка додавања одељка објекта-Ñамо"
-#: ldlang.c:10769
+#: ldlang.c:10833
msgid "error copying private BFD data"
msgstr "грешка умножавања личних BFD података"
-#: ldlang.c:10776
-msgid "%P%F: failed to finish output with object-only section\n"
-msgstr "%P%F: ниÑам уÑпео да довршим изл\\аз Ñа одељком Ñамо објекта\n"
-
-#: ldlang.c:10786
-msgid "%P%F: failed to rename output with object-only section\n"
-msgstr "%P%F: ниÑам уÑпео да преименујем излаз Ñа одељком Ñамо објекта\n"
+#: ldlang.c:10840
+msgid "%P: failed to finish output with object-only section\n"
+msgstr "%F: ниÑам уÑпео да довршим изл\\аз Ñа одељком Ñамо објекта\n"
-#: ldlang.c:10802
-msgid "%P%F: failed to add object-only section: %s\n"
-msgstr "%P%F: ниÑам уÑпео да додам одељак Ñамо објекта: %s\n"
+#: ldlang.c:10850
+msgid "%P: failed to rename output with object-only section\n"
+msgstr "%F: ниÑам уÑпео да преименујем излаз Ñа одељком Ñамо објекта\n"
-#: ldlang.c:10835
-msgid "%P%F: Failed to create hash table\n"
-msgstr "%P%F: ÐиÑам уÑпео да направим хеш табелу\n"
+#: ldlang.c:10866
+msgid "%P: failed to add object-only section: %s\n"
+msgstr "%F: ниÑам уÑпео да додам одељак Ñамо објекта: %s\n"
#: ldlang.c:10899
-msgid "%P%F:%s: final close failed on object-only output: %E\n"
-msgstr "%P%F:%s: завршно затварање није уÑпело на излазу Ñамо објекта: %E\n"
+msgid "%P: Failed to create hash table\n"
+msgstr "%F: ÐиÑам уÑпео да направим хеш табелу\n"
+
+#: ldlang.c:10963
+msgid "%P:%s: final close failed on object-only output: %E\n"
+msgstr "%P:%s: завршно затварање није уÑпело на излазу Ñамо објекта: %E\n"
-#: ldlang.c:10909
-msgid "%P%F:%s: cannot open object-only output: %E\n"
-msgstr "%P%F:%s: не могу да отворим излаз Ñамо објекта: %E\n"
+#: ldlang.c:10973
+msgid "%P:%s: cannot open object-only output: %E\n"
+msgstr "%P:%s: не могу да отворим излаз Ñамо објекта: %E\n"
-#: ldlang.c:10917
-msgid "%P%F:%s: cannot stat object-only output: %E\n"
-msgstr "%P%F:%s: не могу да добијем Ñтање излаза Ñамо објекта: %E\n"
+#: ldlang.c:10981
+msgid "%P:%s: cannot stat object-only output: %E\n"
+msgstr "%P:%s: не могу да добијем Ñтање излаза Ñамо објекта: %E\n"
-#: ldlang.c:10932
-msgid "%P%F:%s: read failed on object-only output: %E\n"
-msgstr "%P%F:%s: читање није уÑпело на излазу Ñамо објекта: %E\n"
+#: ldlang.c:10996
+msgid "%P:%s: read failed on object-only output: %E\n"
+msgstr "%P:%s: читање није уÑпело на излазу Ñамо објекта: %E\n"
-#: ldlang.c:10959
-msgid "%P%F: cannot extract object-only section from %B: %E\n"
-msgstr "%P%F: не могу да раÑпакујем одељак Ñамо објекта из „%B“: %E\n"
+#: ldlang.c:11023
+msgid "%P: cannot extract object-only section from %B: %E\n"
+msgstr "%F: не могу да раÑпакујем одељак Ñамо објекта из „%B“: %E\n"
-#: ldmain.c:198
-msgid "%F%P: cannot open dependency file %s: %E\n"
-msgstr "%F%P: не могу да отворим датотеку завиÑноÑти „%s“: %E\n"
+#: ldmain.c:204
+msgid "%P: cannot open dependency file %s: %E\n"
+msgstr "%P: не могу да отворим датотеку завиÑноÑти „%s“: %E\n"
-#: ldmain.c:291
-msgid "%F%P: fatal error: libbfd ABI mismatch\n"
-msgstr "%F%P: кобна грешка: „libbfd ABI“ не одговара\n"
+#: ldmain.c:553
+msgid "WARNING: Data is unreliable!\n"
+msgstr "УПОЗОРЕЊЕ: Подаци ниÑу веродоÑтојни!\n"
-#: ldmain.c:330
+#: ldmain.c:611
+msgid "%P: fatal error: libbfd ABI mismatch\n"
+msgstr "%P: кобна грешка: „libbfd ABI“ не одговара\n"
+
+#: ldmain.c:650
msgid "%X%P: can't set BFD default target to `%s': %E\n"
msgstr "%X%P: не могу да поÑтавим оÑновну БФД мету на „%s“: %E\n"
-#: ldmain.c:435
+#: ldmain.c:761
msgid "built in linker script"
msgstr "уграђена Ñкрипта повезивача"
-#: ldmain.c:445
+#: ldmain.c:771
#, c-format
msgid "using external linker script: %s"
msgstr "кориÑти Ñпољну Ñкрипту Ñвезача: %s"
-#: ldmain.c:447
+#: ldmain.c:773
msgid "using internal linker script:"
msgstr "кориÑтим унутрашњу Ñкрипту повезивача:"
-#: ldmain.c:497
-msgid "%F%P: --no-define-common may not be used without -shared\n"
-msgstr "%F%P: „--no-define-common“ Ñе не може кориÑтити без „-shared“\n"
+#: ldmain.c:823
+msgid "%P: --no-define-common may not be used without -shared\n"
+msgstr "%P: „--no-define-common“ Ñе не може кориÑтити без „-shared“\n"
-#: ldmain.c:504
-msgid "%F%P: no input files\n"
-msgstr "%F%P: нема улазних датотека\n"
+#: ldmain.c:830
+msgid "%P: no input files\n"
+msgstr "%P: нема улазних датотека\n"
-#: ldmain.c:508
+#: ldmain.c:834
msgid "%P: mode %s\n"
msgstr "%P: режим „%s“\n"
-#: ldmain.c:526 ends32belf.c:473 ends32belf16m.c:473 ends32belf_linux.c:606
+#: ldmain.c:852 ends32belf.c:473 ends32belf16m.c:473 ends32belf_linux.c:606
#: ends32elf.c:473 ends32elf16m.c:473 ends32elf_linux.c:606
-msgid "%F%P: cannot open map file %s: %E\n"
-msgstr "%F%P: не могу да отворим датотеку мапе „%s“: %E\n"
+msgid "%P: cannot open map file %s: %E\n"
+msgstr "%P: не могу да отворим датотеку мапе „%s“: %E\n"
-#: ldmain.c:590
+#: ldmain.c:944
msgid "%P: link errors found, deleting executable `%s'\n"
msgstr "%P: нађох грешке везе, бришем извршног „%s“\n"
-#: ldmain.c:601
-msgid "%F%P: %s: final close failed: %E\n"
-msgstr "%F%P: %s: завршно затварање није уÑпело: %E\n"
+#: ldmain.c:955
+msgid "%P: %s: final close failed: %E\n"
+msgstr "%P: %s: завршно затварање није уÑпело: %E\n"
-#: ldmain.c:630
-msgid "%F%P: unable to open for source of copy `%s'\n"
-msgstr "%F%P: не могу да отворим за извором умношка „%s“\n"
+#: ldmain.c:984
+msgid "%P: unable to open for source of copy `%s'\n"
+msgstr "%P: не могу да отворим за извором умношка „%s“\n"
-#: ldmain.c:633
-msgid "%F%P: unable to open for destination of copy `%s'\n"
-msgstr "%F%P: не могу да отворим за одредиштем умношка „%s“\n"
+#: ldmain.c:987
+msgid "%P: unable to open for destination of copy `%s'\n"
+msgstr "%P: не могу да отворим за одредиштем умношка „%s“\n"
-#: ldmain.c:640
+#: ldmain.c:994
msgid "%P: error writing file `%s'\n"
msgstr "%P: грешка пиÑања датотеке „%s“\n"
-#: ldmain.c:645 pe-dll.c:2009
+#: ldmain.c:999 pe-dll.c:2013
#, c-format
msgid "%P: error closing file `%s'\n"
msgstr "%P: грешка затварања датотеке „%s“\n"
-#: ldmain.c:660
+#: ldmain.c:1030
#, c-format
msgid "%s: total time in link: %ld.%06ld\n"
msgstr "%s: укупно време у вези: %ld.%06ld\n"
-#: ldmain.c:747
-msgid "%F%P: missing argument to -m\n"
-msgstr "%F%P: недоÑтаје аргумент за „-m“\n"
+#: ldmain.c:1120
+msgid "%P: missing argument to -m\n"
+msgstr "%P: недоÑтаје аргумент за „-m“\n"
-#: ldmain.c:801 ldmain.c:818 ldmain.c:838 ldmain.c:870 pe-dll.c:1431
-msgid "%F%P: bfd_hash_table_init failed: %E\n"
-msgstr "%F%P: „bfd_hash_table_init“ није уÑпело: %E\n"
+#: ldmain.c:1174 ldmain.c:1191 ldmain.c:1211 ldmain.c:1243 pe-dll.c:1434
+msgid "%P: bfd_hash_table_init failed: %E\n"
+msgstr "%P: „bfd_hash_table_init“ није уÑпело: %E\n"
-#: ldmain.c:805 ldmain.c:822 ldmain.c:842
-msgid "%F%P: bfd_hash_lookup failed: %E\n"
-msgstr "%F%P: „bfd_hash_lookup“ није уÑпело: %E\n"
+#: ldmain.c:1178 ldmain.c:1195 ldmain.c:1215
+msgid "%P: bfd_hash_lookup failed: %E\n"
+msgstr "%P: „bfd_hash_lookup“ није уÑпело: %E\n"
-#: ldmain.c:856
+#: ldmain.c:1229
msgid "%X%P: error: duplicate retain-symbols-file\n"
msgstr "%X%P: грешка: удвоÑтручено задржи-датотеку-Ñимбола\n"
-#: ldmain.c:900
-msgid "%F%P: bfd_hash_lookup for insertion failed: %E\n"
-msgstr "%F%P: „bfd_hash_lookup“ за уметање није уÑпело: %E\n"
+#: ldmain.c:1273
+msgid "%P: bfd_hash_lookup for insertion failed: %E\n"
+msgstr "%P: „bfd_hash_lookup“ за уметање није уÑпело: %E\n"
-#: ldmain.c:905
+#: ldmain.c:1278
msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
msgstr "%P: „-retain-symbols-file“ препиÑује `-s' и „-S“\n"
-#: ldmain.c:1026
+#: ldmain.c:1402
msgid ""
"Archive member included to satisfy reference by file (symbol)\n"
"\n"
@@ -1117,175 +1117,175 @@ msgstr ""
"Члан архиве је укључен да би задовољио упуту датотеком (Ñимболом)\n"
"\n"
-#: ldmain.c:1132
+#: ldmain.c:1508
msgid "%P: %C: warning: multiple definition of `%pT'"
msgstr "%P: %C: упозорење: вишеÑтрука дефиниција за „%pT“"
-#: ldmain.c:1135
+#: ldmain.c:1511
msgid "%X%P: %C: multiple definition of `%pT'"
msgstr "%X%P: %C: вишеÑтрука дефиниција за „%pT“"
-#: ldmain.c:1138
+#: ldmain.c:1514
msgid "; %D: first defined here"
msgstr "; %D: прво је дефиниÑано овде"
-#: ldmain.c:1143
+#: ldmain.c:1519
msgid "%P: disabling relaxation; it will not work with multiple definitions\n"
msgstr "%P: иÑкључујем опуштање: неће радити Ñа вишеÑтруким дефиницијама\n"
-#: ldmain.c:1196
+#: ldmain.c:1572
msgid "%P: %pB: warning: definition of `%pT' overriding common from %pB\n"
msgstr "%P: %pB: упозорење: дефиниција за „%pT“ препиÑује опште из „%pB“\n"
-#: ldmain.c:1200
+#: ldmain.c:1576
msgid "%P: %pB: warning: definition of `%pT' overriding common\n"
msgstr "%P: %pB: упозорење: дефиниција за „%pT“ препиÑује опште\n"
-#: ldmain.c:1209
+#: ldmain.c:1585
msgid "%P: %pB: warning: common of `%pT' overridden by definition from %pB\n"
msgstr "%P: %pB: упозорење: опште за „%pT“ је препиÑано дефиницијом из „%pB“\n"
-#: ldmain.c:1213
+#: ldmain.c:1589
msgid "%P: %pB: warning: common of `%pT' overridden by definition\n"
msgstr "%P: %pB: упозорење: опште за „%pT“ је препиÑано дефиницијом\n"
-#: ldmain.c:1222
+#: ldmain.c:1598
msgid "%P: %pB: warning: common of `%pT' overridden by larger common from %pB\n"
msgstr "%P: %pB: упозорење: опште за „%pT“ је препиÑано већим општим из „%pB“\n"
-#: ldmain.c:1226
+#: ldmain.c:1602
msgid "%P: %pB: warning: common of `%pT' overridden by larger common\n"
msgstr "%P: %pB: упозорење: опште за „%pT“ је препиÑано већим општим\n"
-#: ldmain.c:1233
+#: ldmain.c:1609
msgid "%P: %pB: warning: common of `%pT' overriding smaller common from %pB\n"
msgstr "%P: %pB: упозорење: опште за „%pT“ препиÑује мањег општег из „%pB“\n"
-#: ldmain.c:1237
+#: ldmain.c:1613
msgid "%P: %pB: warning: common of `%pT' overriding smaller common\n"
msgstr "%P: %pB: упозорење: опште за „%pT“ препиÑује мањег општег\n"
-#: ldmain.c:1244
+#: ldmain.c:1620
msgid "%P: %pB and %pB: warning: multiple common of `%pT'\n"
msgstr "%P: „%pB“ и „%pB“: упозорење: више општих за „%pT“\n"
-#: ldmain.c:1247
+#: ldmain.c:1623
msgid "%P: %pB: warning: multiple common of `%pT'\n"
msgstr "%P: %pB: упозорење: више општих за „%pT“\n"
-#: ldmain.c:1266 ldmain.c:1302
+#: ldmain.c:1642 ldmain.c:1678
msgid "%P: warning: global constructor %s used\n"
msgstr "%P: упозорење: глобални конÑтруктор „%s“ је коришћен\n"
-#: ldmain.c:1312
-msgid "%F%P: BFD backend error: BFD_RELOC_CTOR unsupported\n"
-msgstr "%F%P: грешка БФД позадинца: „BFD_RELOC_CTOR“ није подржано\n"
+#: ldmain.c:1688
+msgid "%P: BFD backend error: BFD_RELOC_CTOR unsupported\n"
+msgstr "%P: грешка БФД позадинца: „BFD_RELOC_CTOR“ није подржано\n"
#. We found a reloc for the symbol we are looking for.
-#: ldmain.c:1384 ldmain.c:1386 ldmain.c:1388 ldmain.c:1396 ldmain.c:1439
+#: ldmain.c:1760 ldmain.c:1762 ldmain.c:1764 ldmain.c:1772 ldmain.c:1815
msgid "warning: "
msgstr "упозорење: "
-#: ldmain.c:1529
+#: ldmain.c:1905
msgid "%X%P: %H: undefined reference to `%pT'\n"
msgstr "%X%P: %H: недефиниÑана упута ка „%pT“\n"
-#: ldmain.c:1532
+#: ldmain.c:1908
msgid "%P: %H: warning: undefined reference to `%pT'\n"
msgstr "%P: %H: упозорење: недефиниÑана упута ка „%pT“\n"
-#: ldmain.c:1538
+#: ldmain.c:1914
msgid "%X%P: %D: more undefined references to `%pT' follow\n"
msgstr "%X%P: %D: још недефиниÑаних упута ка „%pT“ Ñледи\n"
-#: ldmain.c:1541
+#: ldmain.c:1917
msgid "%P: %D: warning: more undefined references to `%pT' follow\n"
msgstr "%P: %D: упозорење: још недефиниÑаних упута ка „%pT“ Ñледи\n"
-#: ldmain.c:1552
+#: ldmain.c:1928
msgid "%X%P: %pB: undefined reference to `%pT'\n"
msgstr "%X%P: %pB: недефиниÑана упута ка „%pT“\n"
-#: ldmain.c:1555
+#: ldmain.c:1931
msgid "%P: %pB: warning: undefined reference to `%pT'\n"
msgstr "%P: %pB: упозорење: недефиниÑана упута ка „%pT“\n"
-#: ldmain.c:1561
+#: ldmain.c:1937
msgid "%X%P: %pB: more undefined references to `%pT' follow\n"
msgstr "%X%P: %pB: још недефиниÑаних упута ка „%pT“ Ñледи\n"
-#: ldmain.c:1564
+#: ldmain.c:1940
msgid "%P: %pB: warning: more undefined references to `%pT' follow\n"
msgstr "%P: %pB: упозорење: још недефиниÑаних упута ка „%pT“ Ñледи\n"
-#: ldmain.c:1601
+#: ldmain.c:1977
msgid " additional relocation overflows omitted from the output\n"
msgstr " додатна превазилажења премештања Ñу изоÑтављена из излаза\n"
-#: ldmain.c:1614
+#: ldmain.c:1990
#, c-format
msgid " relocation truncated to fit: %s against undefined symbol `%pT'"
msgstr " премештање је Ñкраћено да Ñтане: „%s“ наÑпрам недефиниÑаног Ñимбола „%pT“"
-#: ldmain.c:1620
+#: ldmain.c:1996
#, c-format
msgid " relocation truncated to fit: %s against symbol `%pT' defined in %pA section in %pB"
msgstr " премештање је Ñкраћено да Ñтане: „%s“ наÑпрам Ñимбола „%pT“ дефиниÑаног у одељку „%pA“ у „%pB“"
-#: ldmain.c:1633
+#: ldmain.c:2009
#, c-format
msgid " relocation truncated to fit: %s against `%pT'"
msgstr " премештање је Ñкраћено да Ñтане: „%s“ наÑпрам „%pT“"
-#: ldmain.c:1649
+#: ldmain.c:2025
msgid "%X%H: dangerous relocation: %s\n"
msgstr "%X%H: опаÑно премештање: %s\n"
-#: ldmain.c:1663
+#: ldmain.c:2039
msgid "%X%H: reloc refers to symbol `%pT' which is not being output\n"
msgstr "%X%H: премештање упућује на Ñимбол „%pT“ који није био излаз\n"
-#: ldmain.c:1697
+#: ldmain.c:2073
msgid "%P: %pB: reference to %s\n"
msgstr "%P: %pB: упута ка „%s“\n"
-#: ldmain.c:1699
+#: ldmain.c:2075
msgid "%P: %pB: definition of %s\n"
msgstr "%P: %pB: дефиниција за „%s“\n"
-#: ldmisc.c:366
+#: ldmisc.c:359
#, c-format
msgid "%pB: in function `%pT':\n"
msgstr "%pB: у функцији „%pT“:\n"
-#: ldmisc.c:506
+#: ldmisc.c:499
#, c-format
msgid "no symbol"
msgstr "нема Ñимбола"
-#: ldmisc.c:688
+#: ldmisc.c:693
msgid "%P: error: unsupported option: %s\n"
msgstr "%P: грешка: неподржана опција: „%s“\n"
-#: ldmisc.c:690
+#: ldmisc.c:695
msgid "%P: warning: %s ignored\n"
msgstr "%P: упозорење: %s“ је занемарено\n"
-#: ldmisc.c:701
-msgid "%F%P: internal error %s %d\n"
-msgstr "%F%P: унутрашња грешка „%s“ %d\n"
+#: ldmisc.c:706
+msgid "%P: internal error %s %d\n"
+msgstr "%P: унутрашња грешка „%s“ %d\n"
-#: ldmisc.c:765
+#: ldmisc.c:770
msgid "%P: internal error: aborting at %s:%d in %s\n"
msgstr "%P: унутрашња грешка: прекидам при „%s“: %d у „%s“\n"
-#: ldmisc.c:768
+#: ldmisc.c:773
msgid "%P: internal error: aborting at %s:%d\n"
msgstr "%P: унутрашња грешка: прекидам при „%s“: %d\n"
-#: ldmisc.c:770
-msgid "%F%P: please report this bug\n"
-msgstr "%F%P: пријавите ову грешку\n"
+#: ldmisc.c:775
+msgid "%P: please report this bug\n"
+msgstr "%P: пријавите ову грешку\n"
#. Output for noisy == 2 is intended to follow the GNU standards.
#: ldver.c:38
@@ -1316,29 +1316,29 @@ msgstr " Подржане емулације:\n"
#: ldwrite.c:60 ldwrite.c:67 ldwrite.c:173 ldwrite.c:181 ldwrite.c:227
#: ldwrite.c:268
-msgid "%F%P: bfd_new_link_order failed: %E\n"
-msgstr "%F%P: „bfd_new_link_order“ није уÑпело: %E\n"
+msgid "%P: bfd_new_link_order failed: %E\n"
+msgstr "%P: „bfd_new_link_order“ није уÑпело: %E\n"
#: ldwrite.c:337
-msgid "%F%P: cannot create split section name for %s\n"
-msgstr "%F%P: не могу да направим назив одељка поделе за „%s“\n"
+msgid "%P: cannot create split section name for %s\n"
+msgstr "%P: не могу да направим назив одељка поделе за „%s“\n"
-#: ldwrite.c:349
-msgid "%F%P: clone section failed: %E\n"
-msgstr "%F%P: клонирање одељка није уÑпело: %E\n"
+#: ldwrite.c:348
+msgid "%P: clone section failed: %E\n"
+msgstr "%P: клонирање одељка није уÑпело: %E\n"
-#: ldwrite.c:387
+#: ldwrite.c:385
#, c-format
msgid "%8x something else\n"
msgstr "%8x нешто друго\n"
-#: ldwrite.c:553
-msgid "%F%P: final link failed: %E\n"
-msgstr "%F%P: завршна веза није уÑпела: %E\n"
+#: ldwrite.c:551
+msgid "%P: final link failed: %E\n"
+msgstr "%P: завршна веза није уÑпела: %E\n"
-#: ldwrite.c:555
-msgid "%F%P: final link failed\n"
-msgstr "%F%P: завршна веза није уÑпела\n"
+#: ldwrite.c:553
+msgid "%P: final link failed\n"
+msgstr "%P: завршна веза није уÑпела\n"
#: lexsup.c:105 lexsup.c:303
msgid "KEYWORD"
@@ -1366,7 +1366,7 @@ msgstr "Ðаводи мету за пратеће улазне датотеке"
#: lexsup.c:113 lexsup.c:119 lexsup.c:180 lexsup.c:184 lexsup.c:223
#: lexsup.c:227 lexsup.c:242 lexsup.c:244 lexsup.c:465 lexsup.c:491
-#: lexsup.c:539 lexsup.c:552 lexsup.c:556
+#: lexsup.c:541 lexsup.c:554 lexsup.c:558
msgid "FILE"
msgstr "ДÐТОТЕКÐ"
@@ -1386,8 +1386,8 @@ msgstr "Пише датотеку завиÑноÑти"
msgid "Force group members out of groups"
msgstr "ПриÑиљава чланове групе ван група"
-#: lexsup.c:124 lexsup.c:514 lexsup.c:516 lexsup.c:518 lexsup.c:520
-#: lexsup.c:522 lexsup.c:524 lexsup.c:526
+#: lexsup.c:124 lexsup.c:516 lexsup.c:518 lexsup.c:520 lexsup.c:522
+#: lexsup.c:524 lexsup.c:526 lexsup.c:528
msgid "ADDRESS"
msgstr "ÐДРЕСÐ"
@@ -1612,7 +1612,7 @@ msgid "Read default linker script"
msgstr "Чита оÑновну Ñкрипту повезивача"
#: lexsup.c:248 lexsup.c:251 lexsup.c:269 lexsup.c:361 lexsup.c:385
-#: lexsup.c:507 lexsup.c:542 lexsup.c:554 lexsup.c:613 lexsup.c:616
+#: lexsup.c:509 lexsup.c:544 lexsup.c:556 lexsup.c:615 lexsup.c:618
msgid "SYMBOL"
msgstr "СИМБОЛ"
@@ -2005,58 +2005,62 @@ msgid "Split output sections every COUNT relocs"
msgstr "Дели излазне одељке Ñвака ВЕЛИЧИÐРпремештања"
#: lexsup.c:503
-msgid "Print memory usage statistics"
-msgstr "ИÑпиÑује ÑтатиÑтику коришћења меморије"
+msgid "Print resource usage statistics"
+msgstr "ИÑпиÑује ÑтатиÑтику коришћења реÑурÑа"
#: lexsup.c:505
+msgid "Do not print resource usage statistics"
+msgstr "Ðе иÑпиÑује ÑтатиÑтику коришћења реÑурÑа"
+
+#: lexsup.c:507
msgid "Display target specific options"
msgstr "Приказује опције Ñпецифичне за мету"
-#: lexsup.c:507
+#: lexsup.c:509
msgid "Do task level linking"
msgstr " Обавља повезивање на нивоу задатка"
-#: lexsup.c:509
+#: lexsup.c:511
msgid "Use same format as native linker"
msgstr "КориÑти иÑти формат као матични повезивач"
-#: lexsup.c:511
+#: lexsup.c:513
msgid "SECTION=ADDRESS"
msgstr "ОДЕЉÐК=ÐДРЕСÐ"
-#: lexsup.c:511
+#: lexsup.c:513
msgid "Set address of named section"
msgstr "ПоÑтавља адреÑу именованог одељка"
-#: lexsup.c:514
+#: lexsup.c:516
msgid "Set image base address"
msgstr "Подешава оÑновну адреÑу Ñлике"
-#: lexsup.c:516
+#: lexsup.c:518
msgid "Set address of .bss section"
msgstr " ПоÑтавља адреÑу одељка „.bss“"
-#: lexsup.c:518
+#: lexsup.c:520
msgid "Set address of .data section"
msgstr " ПоÑтавља адреÑу одељка „.data“"
-#: lexsup.c:520
+#: lexsup.c:522
msgid "Set address of .text section"
msgstr " ПоÑтавља адреÑу одељка „.text“"
-#: lexsup.c:522
+#: lexsup.c:524
msgid "Set address of text segment"
msgstr " ПоÑтавља адреÑу одељка текÑта"
-#: lexsup.c:524
+#: lexsup.c:526
msgid "Set address of rodata segment"
msgstr "ПоÑтавља адреÑу одељка ро-података"
-#: lexsup.c:526
+#: lexsup.c:528
msgid "Set address of ldata segment"
msgstr "ПоÑтавља адреÑу одељка л-података"
-#: lexsup.c:529
+#: lexsup.c:531
msgid ""
"How to handle unresolved symbols. <method> is:\n"
" ignore-all, report-all, ignore-in-object-files,\n"
@@ -2066,19 +2070,19 @@ msgstr ""
" „report-all“ (пријави Ñве), „ignore-in-object-files“ (занемари у објектним датотекама),\n"
" „ignore-in-shared-libs“ (занемари у дељеним библиотекама)"
-#: lexsup.c:534
+#: lexsup.c:536
msgid "[=NUMBER]"
msgstr "[=БРОЈ]"
-#: lexsup.c:535
+#: lexsup.c:537
msgid "Output lots of information during link"
msgstr " ИÑпиÑује доÑта података за време повезивања"
-#: lexsup.c:539
+#: lexsup.c:541
msgid "Read version information script"
msgstr "Чита Ñкрипту података о издању"
-#: lexsup.c:542
+#: lexsup.c:544
msgid ""
"Take export symbols list from .exports, using\n"
" SYMBOL as the version."
@@ -2086,127 +2090,127 @@ msgstr ""
"Узима извозни ÑпиÑак Ñимбола из „.exports“, кориÑтећи\n"
" СИМБОЛ као издање."
-#: lexsup.c:546
+#: lexsup.c:548
msgid "Add data symbols to dynamic list"
msgstr "Додаје Ñимболе података на динамички ÑпиÑак"
-#: lexsup.c:548
+#: lexsup.c:550
msgid "Use C++ operator new/delete dynamic list"
msgstr "КориÑти нови/обриши динамички ÑпиÑак Ц++ оператора"
-#: lexsup.c:550
+#: lexsup.c:552
msgid "Use C++ typeinfo dynamic list"
msgstr "КориÑти Ц++ динамички ÑпиÑак врÑте података"
-#: lexsup.c:552
+#: lexsup.c:554
msgid "Read dynamic list"
msgstr "Чита динамички ÑпиÑак"
-#: lexsup.c:554
+#: lexsup.c:556
msgid "Export the specified symbol"
msgstr "Извози наведени Ñимбол"
-#: lexsup.c:556
+#: lexsup.c:558
msgid "Read export dynamic symbol list"
msgstr "Чита ÑпиÑак извоза динамичког Ñимбола"
-#: lexsup.c:558
+#: lexsup.c:560
msgid "Warn about duplicate common symbols"
msgstr "Упозорава о удвоÑтрученим општим Ñимболима"
-#: lexsup.c:560
+#: lexsup.c:562
msgid "Warn if global constructors/destructors are seen"
msgstr "Упозорава ако је виђен општи градитељ/рушитељ"
-#: lexsup.c:584
+#: lexsup.c:586
msgid "Warn if the multiple GP values are used"
msgstr "Упозорава ако је коришћено више ГП вредноÑти"
-#: lexsup.c:586
+#: lexsup.c:588
msgid "Warn only once per undefined symbol"
msgstr "Упозорава Ñамо једном по недефиниÑаном Ñимболу"
-#: lexsup.c:588
+#: lexsup.c:590
msgid "Warn if start of section changes due to alignment"
msgstr "Упозорава ако Ñе почетак одељка промени у току поравнања"
-#: lexsup.c:593
+#: lexsup.c:595
msgid "Warn if output has DT_TEXTREL (default)"
msgstr "Упозорава ако излаз има „DT_TEXTREL“ (оÑновно)"
-#: lexsup.c:595
+#: lexsup.c:597
msgid "Warn if output has DT_TEXTREL"
msgstr "Упозорава ако излаз има „DT_TEXTREL“"
-#: lexsup.c:601
+#: lexsup.c:603
msgid "Warn if an object has alternate ELF machine code"
msgstr "Упозорава ако објект има заменÑки ЕЛФ машинÑки код"
-#: lexsup.c:605
+#: lexsup.c:607
msgid "Report unresolved symbols as warnings"
msgstr "ПредÑтавља нерешене Ñимболе као упозорења"
-#: lexsup.c:608
+#: lexsup.c:610
msgid "Report unresolved symbols as errors"
msgstr "ПредÑтавља нерешене Ñимболе као грешке"
-#: lexsup.c:610
+#: lexsup.c:612
msgid "Include all objects from following archives"
msgstr "Укључује Ñве објкете из пратећих архива"
-#: lexsup.c:613
+#: lexsup.c:615
msgid "Use wrapper functions for SYMBOL"
msgstr " КориÑти функције омотача за СИМБОЛ"
-#: lexsup.c:617
+#: lexsup.c:619
msgid "Unresolved SYMBOL will not cause an error or warning"
msgstr "Ðерешени СИМБОЛ неће довеÑти до грешке или упозорења"
-#: lexsup.c:619
+#: lexsup.c:621
msgid "Push state of flags governing input file handling"
msgstr "Стање гурања заÑтавица влада руковањем улазне датотеке"
-#: lexsup.c:622
+#: lexsup.c:624
msgid "Pop state of flags governing input file handling"
msgstr "Стање избацивања у први план заÑтавица влада руковањем улазне датотеке"
-#: lexsup.c:625
+#: lexsup.c:627
msgid "Report target memory usage"
msgstr "Извештава коришћење меморије циља"
-#: lexsup.c:627
+#: lexsup.c:629
msgid "=MODE"
msgstr "=РЕЖИМ"
-#: lexsup.c:627
+#: lexsup.c:629
msgid "Control how orphan sections are handled."
msgstr "Контролише како Ñе ради Ñа напуштеним одељцима."
-#: lexsup.c:630
+#: lexsup.c:632
msgid "Show discarded sections in map file output (default)"
msgstr "Приказује одбачене одељке у излазу датотеке мапе (оÑновно)"
-#: lexsup.c:633
+#: lexsup.c:635
msgid "Do not show discarded sections in map file output"
msgstr "Приказује одбачене одељке у излазу датотеке мапе"
-#: lexsup.c:636
+#: lexsup.c:638
msgid "Show local symbols in map file output"
msgstr "Приказује локалне Ñимболе у излазу датотеке мапе"
-#: lexsup.c:639
+#: lexsup.c:641
msgid "Do not show local symbols in map file output (default)"
msgstr "Ðе приказује локалне Ñимболе у излазу датотеке мапе (оÑновно)"
-#: lexsup.c:642
+#: lexsup.c:644
msgid "Emit names and types of static variables in CTF"
msgstr "Емитује називе и врÑте Ñтатичких променљивих у „CTF“-у"
-#: lexsup.c:645
+#: lexsup.c:647
msgid "Do not emit names and types of static variables in CTF"
msgstr "Ðе емитује називе и врÑте Ñтатичких променљивих у „CTF“-у"
-#: lexsup.c:649
+#: lexsup.c:651
msgid ""
"How to share CTF types between translation units.\n"
" <method> is: share-unconflicted (default),\n"
@@ -2216,43 +2220,43 @@ msgstr ""
" <метода> је: „share-unconflicted“ (оÑновно),\n"
" „share-duplicated“"
-#: lexsup.c:813
-msgid "%F%P: Error: unable to disambiguate: %s (did you mean -%s ?)\n"
-msgstr "%F%P: Грешка: не могу да разликујем: %s (да ли Ñте миÑлили „-%s“ ?)\n"
+#: lexsup.c:815
+msgid "%P: Error: unable to disambiguate: %s (did you mean -%s ?)\n"
+msgstr "%P: Грешка: не могу да разликујем: %s (да ли Ñте миÑлили „-%s“ ?)\n"
-#: lexsup.c:816
+#: lexsup.c:819
msgid "%P: Warning: grouped short command line options are deprecated: %s\n"
msgstr "%P: Упозорење: групиÑане кратке опције линије наредби Ñу заÑтареле: %s\n"
-#: lexsup.c:843
+#: lexsup.c:846
msgid "%P: %s: missing argument\n"
msgstr "%P: %s: недоÑтаје аргумент\n"
-#: lexsup.c:848
+#: lexsup.c:851
msgid "%P: unrecognized option '%s'\n"
msgstr "%P: непозната опција „%s“\n"
-#: lexsup.c:853
-msgid "%F%P: use the --help option for usage information\n"
-msgstr "%F%P: кориÑтите опцију „--help“ за податке о коришћењу\n"
+#: lexsup.c:856
+msgid "%P: use the --help option for usage information\n"
+msgstr "%P: кориÑтите опцију „--help“ за податке о коришћењу\n"
-#: lexsup.c:872
-msgid "%F%P: unrecognized -a option `%s'\n"
-msgstr "%F%P: непозната „-a“ опција „%s“\n"
+#: lexsup.c:875
+msgid "%P: unrecognized -a option `%s'\n"
+msgstr "%P: непозната „-a“ опција „%s“\n"
-#: lexsup.c:885
-msgid "%F%P: unrecognized -assert option `%s'\n"
-msgstr "%F%P: непозната „-assert“ опција „%s“\n"
+#: lexsup.c:888
+msgid "%P: unrecognized -assert option `%s'\n"
+msgstr "%P: непозната „-assert“ опција „%s“\n"
-#: lexsup.c:929
-msgid "%F%P: unknown demangling style `%s'\n"
-msgstr "%F%P: непознат Ñтил прекрштавања „%s“\n"
+#: lexsup.c:932
+msgid "%P: unknown demangling style `%s'\n"
+msgstr "%P: непознат Ñтил прекрштавања „%s“\n"
-#: lexsup.c:1037 lexsup.c:1533 eaarch64cloudabi.c:986 eaarch64cloudabib.c:986
-#: eaarch64elf.c:986 eaarch64elf32.c:986 eaarch64elf32b.c:986
-#: eaarch64elfb.c:986 eaarch64fbsd.c:991 eaarch64fbsdb.c:991
-#: eaarch64haiku.c:986 eaarch64linux.c:991 eaarch64linux32.c:991
-#: eaarch64linux32b.c:991 eaarch64linuxb.c:991 eaarch64nto.c:1148
+#: lexsup.c:1039 lexsup.c:1545 eaarch64cloudabi.c:1021 eaarch64cloudabib.c:1021
+#: eaarch64elf.c:1026 eaarch64elf32.c:1026 eaarch64elf32b.c:1026
+#: eaarch64elfb.c:1026 eaarch64fbsd.c:1026 eaarch64fbsdb.c:1026
+#: eaarch64haiku.c:1021 eaarch64linux.c:1026 eaarch64linux32.c:1026
+#: eaarch64linux32b.c:1026 eaarch64linuxb.c:1026 eaarch64nto.c:1183
#: earmelf.c:1135 earmelf_fbsd.c:1135 earmelf_fuchsia.c:1140
#: earmelf_haiku.c:1140 earmelf_linux.c:1140 earmelf_linux_eabi.c:1140
#: earmelf_linux_fdpiceabi.c:1140 earmelf_nacl.c:1140 earmelf_nbsd.c:1135
@@ -2260,19 +2264,19 @@ msgstr "%F%P: непознат Ñтил прекрштавања „%s“\n"
#: earmelfb_fbsd.c:1135 earmelfb_fuchsia.c:1140 earmelfb_linux.c:1140
#: earmelfb_linux_eabi.c:1140 earmelfb_linux_fdpiceabi.c:1140
#: earmelfb_nacl.c:1140 earmelfb_nbsd.c:1135 earmnto.c:1095 ecskyelf.c:602
-#: ecskyelf_linux.c:789 eelf32metag.c:788 eelf64lppc.c:1225
-#: eelf64lppc_fbsd.c:1225 eelf64ppc.c:1225 eelf64ppc_fbsd.c:1225 ehppaelf.c:613
+#: ecskyelf_linux.c:789 eelf32metag.c:788 eelf64lppc.c:1226
+#: eelf64lppc_fbsd.c:1226 eelf64ppc.c:1226 eelf64ppc_fbsd.c:1226 ehppaelf.c:613
#: ehppalinux.c:825 ehppanbsd.c:825 ehppaobsd.c:825
-msgid "%F%P: invalid number `%s'\n"
-msgstr "%F%P: неиÑправан број „%s“\n"
+msgid "%P: invalid number `%s'\n"
+msgstr "%P: неиÑправан број „%s“\n"
-#: lexsup.c:1133
-msgid "%F%P: bad --unresolved-symbols option: %s\n"
-msgstr "%F%P: лоша опција „--unresolved-symbols“: %s\n"
+#: lexsup.c:1135
+msgid "%P: bad --unresolved-symbols option: %s\n"
+msgstr "%P: лоша опција „--unresolved-symbols“: %s\n"
-#: lexsup.c:1220
-msgid "%F%P: bad -plugin-opt option\n"
-msgstr "%F%P: лоша опција „-plugin-opt“\n"
+#: lexsup.c:1222
+msgid "%P: bad -plugin-opt option\n"
+msgstr "%P: лоша опција „-plugin-opt“\n"
#. This can happen if the user put "-rpath,a" on the command
#. line. (Or something similar. The comma is important).
@@ -2282,173 +2286,173 @@ msgstr "%F%P: лоша опција „-plugin-opt“\n"
#. an error message here. We cannot just make this a warning,
#. increment optind, and continue because getopt is too confused
#. and will seg-fault the next time around.
-#: lexsup.c:1240
-msgid "%F%P: unrecognised option: %s\n"
-msgstr "%F%P: непозната опција „%s“\n"
+#: lexsup.c:1242
+msgid "%P: unrecognised option: %s\n"
+msgstr "%P: непозната опција „%s“\n"
-#: lexsup.c:1243 lexsup.c:1353 lexsup.c:1374 lexsup.c:1502
-msgid "%F%P: -r and %s may not be used together\n"
-msgstr "%F%P: „-r“ и „%s“ Ñе не могу кориÑтити заједно\n"
+#: lexsup.c:1245 lexsup.c:1355 lexsup.c:1376 lexsup.c:1514
+msgid "%P: -r and %s may not be used together\n"
+msgstr "%P: „-r“ и „%s“ Ñе не могу кориÑтити заједно\n"
-#: lexsup.c:1365
-msgid "%F%P: -shared not supported\n"
-msgstr "%F%P: „-shared“ није подржана\n"
+#: lexsup.c:1367
+msgid "%P: -shared not supported\n"
+msgstr "%P: „-shared“ није подржана\n"
-#: lexsup.c:1379
-msgid "%F%P: -pie not supported\n"
-msgstr "%F%P: „-pie“ није подржана\n"
+#: lexsup.c:1381
+msgid "%P: -pie not supported\n"
+msgstr "%P: „-pie“ није подржана\n"
-#: lexsup.c:1385
+#: lexsup.c:1387
msgid "%P: SONAME must not be empty string; keeping previous one\n"
msgstr "%P: „SONAME“ не Ñме бити празна ниÑка; задржавам претходну\n"
-#: lexsup.c:1391
+#: lexsup.c:1393
msgid "descending"
msgstr "опадајуће"
-#: lexsup.c:1393
+#: lexsup.c:1395
msgid "ascending"
msgstr "раÑтуће"
-#: lexsup.c:1396
-msgid "%F%P: invalid common section sorting option: %s\n"
-msgstr "%F%P: неиÑправна опција ређања општег одељка: %s\n"
+#: lexsup.c:1398
+msgid "%P: invalid common section sorting option: %s\n"
+msgstr "%P: неиÑправна опција ређања општег одељка: %s\n"
-#: lexsup.c:1400
+#: lexsup.c:1402
msgid "name"
msgstr "назив"
-#: lexsup.c:1402
+#: lexsup.c:1404
msgid "alignment"
msgstr "поравнање"
-#: lexsup.c:1405
-msgid "%F%P: invalid section sorting option: %s\n"
-msgstr "%F%P: неиÑправна опција ређања одељка: %s\n"
+#: lexsup.c:1407
+msgid "%P: invalid section sorting option: %s\n"
+msgstr "%P: неиÑправна опција ређања одељка: %s\n"
-#: lexsup.c:1411
+#: lexsup.c:1412
msgid "%P: warning: section ordering file changed. Ignoring earlier definition\n"
msgstr "%P: упозорење: одељак ређања датотеке је измењен. Занемарујем ранију дефиницију\n"
-#: lexsup.c:1448
-msgid "%F%P: invalid argument to option \"--section-start\"\n"
-msgstr "%F%P: неиÑправан аргумент за опцију „--section-start“\n"
+#: lexsup.c:1460
+msgid "%P: invalid argument to option \"--section-start\"\n"
+msgstr "%P: неиÑправан аргумент за опцију „--section-start“\n"
-#: lexsup.c:1455
-msgid "%F%P: missing argument(s) to option \"--section-start\"\n"
-msgstr "%F%P: недоÑтаје аргумент за опцију „--section-start“\n"
+#: lexsup.c:1467
+msgid "%P: missing argument(s) to option \"--section-start\"\n"
+msgstr "%P: недоÑтаје аргумент за опцију „--section-start“\n"
-#: lexsup.c:1728
-msgid "%F%P: group ended before it began (--help for usage)\n"
-msgstr "%F%P: група је завршена пре почетка („--help“ за коришћење)\n"
+#: lexsup.c:1740
+msgid "%P: group ended before it began (--help for usage)\n"
+msgstr "%P: група је завршена пре почетка („--help“ за коришћење)\n"
-#: lexsup.c:1744
-msgid "%F%P: failed to add remap file %s\n"
-msgstr "%F%P: ниÑам уÑпео да додам датотеку поновног мапирања „%s“\n"
+#: lexsup.c:1756
+msgid "%P: failed to add remap file %s\n"
+msgstr "%P: ниÑам уÑпео да додам датотеку поновног мапирања „%s“\n"
#. FIXME: Should we allow --remap-inputs=@myfile as a synonym
#. for --remap-inputs-file=myfile ?
-#: lexsup.c:1753
-msgid "%F%P: invalid argument to option --remap-inputs\n"
-msgstr "%F%P: неиÑправан аргумент за опцију „--remap-inputs“\n"
+#: lexsup.c:1765
+msgid "%P: invalid argument to option --remap-inputs\n"
+msgstr "%P: неиÑправан аргумент за опцију „--remap-inputs“\n"
-#: lexsup.c:1774
-msgid "%F%P: invalid cache memory size: %s\n"
-msgstr "%F%P: неиÑправна величина оÑтаве: %s\n"
+#: lexsup.c:1786
+msgid "%P: invalid cache memory size: %s\n"
+msgstr "%P: неиÑправна величина оÑтаве: %s\n"
-#: lexsup.c:1788
+#: lexsup.c:1799
msgid "%X%P: --hash-size needs a numeric argument\n"
msgstr "%X%P: „--hash-size“ је потребан бројевни аргумент\n"
-#: lexsup.c:1800
-msgid "%F%P: no state pushed before popping\n"
-msgstr "%F%P: ниједно Ñтање није погурано пре издизања\n"
+#: lexsup.c:1811
+msgid "%P: no state pushed before popping\n"
+msgstr "%P: ниједно Ñтање није погурано пре издизања\n"
-#: lexsup.c:1823
-msgid "%F%P: invalid argument to option \"--orphan-handling\"\n"
-msgstr "%F%P: неиÑправан аргумент за опцију „--orphan-handling“\n"
+#: lexsup.c:1834
+msgid "%P: invalid argument to option \"--orphan-handling\"\n"
+msgstr "%P: неиÑправан аргумент за опцију „--orphan-handling“\n"
-#: lexsup.c:1861
-msgid "%F%P: bad --ctf-share-types option: %s\n"
-msgstr "%F%P: лоша „--ctf-share-types“ опција: %s\n"
+#: lexsup.c:1872
+msgid "%P: bad --ctf-share-types option: %s\n"
+msgstr "%P: лоша „--ctf-share-types“ опција: %s\n"
-#: lexsup.c:1878
+#: lexsup.c:1889
msgid "%P: no file/directory name provided for map output; ignored\n"
msgstr "%P: није доÑтављен ниједан назив датотеке/директоријума за излаз мапе; занемарено\n"
-#: lexsup.c:1906
+#: lexsup.c:1917
msgid "%P: cannot stat linker map file: %E\n"
msgstr "%P: не могу да добавим податке датотеке мапе Ñвезача: %E\n"
-#: lexsup.c:1917
+#: lexsup.c:1928
msgid "%P: linker map file is not a regular file\n"
msgstr "%P: датотека мапе Ñвезача није обична датотека\n"
-#: lexsup.c:1932
+#: lexsup.c:1943
msgid "%P: SONAME must not be empty string; ignored\n"
msgstr "%P: „SONAME“ не Ñме бити празна ниÑка; занемарено\n"
-#: lexsup.c:1938
+#: lexsup.c:1949
msgid "%P: missing --end-group; added as last command line option\n"
msgstr "%P: недоÑтаје „--end-group“; додато је као поÑледња опција линије наредби\n"
-#: lexsup.c:2047
-msgid "%F%P: -r and -z nosectionheader may not be used together\n"
-msgstr "%F%P: „-r“ и „-z“ nosectionheader Ñе не могу кориÑтити заједно\n"
+#: lexsup.c:2038
+msgid "%P: -r and -z nosectionheader may not be used together\n"
+msgstr "%P: „-r“ и „-z“ nosectionheader Ñе не могу кориÑтити заједно\n"
-#: lexsup.c:2055
-msgid "%F%P: -F may not be used without -shared\n"
-msgstr "%F%P: „-F“ Ñе не може кориÑтити Ñа „-shared“\n"
+#: lexsup.c:2046
+msgid "%P: -F may not be used without -shared\n"
+msgstr "%P: „-F“ Ñе не може кориÑтити Ñа „-shared“\n"
-#: lexsup.c:2057
-msgid "%F%P: -f may not be used without -shared\n"
-msgstr "%F%P: „-f“ Ñе не може кориÑтити без „-shared“\n"
+#: lexsup.c:2048
+msgid "%P: -f may not be used without -shared\n"
+msgstr "%P: „-f“ Ñе не може кориÑтити без „-shared“\n"
-#: lexsup.c:2098 lexsup.c:2111
-msgid "%F%P: invalid hex number `%s'\n"
-msgstr "%F%P: неиÑправан хекÑадецимални број „%s“\n"
+#: lexsup.c:2089 lexsup.c:2102
+msgid "%P: invalid hex number `%s'\n"
+msgstr "%P: неиÑправан хекÑадецимални број „%s“\n"
-#: lexsup.c:2141
+#: lexsup.c:2132
#, c-format
msgid " --audit=AUDITLIB Specify a library to use for auditing\n"
msgstr " --audit=БИБЛ_ÐÐДГЛЕДÐЊРÐаводи библиотеку која ће Ñе кориÑтити за надгледање\n"
-#: lexsup.c:2143
+#: lexsup.c:2134
#, c-format
msgid " -Bgroup Selects group name lookup rules for DSO\n"
msgstr " -Bgroup Бира правила тражења назива групе за „DSO“\n"
-#: lexsup.c:2145
+#: lexsup.c:2136
#, c-format
msgid " --disable-new-dtags Disable new dynamic tags\n"
msgstr " --disable-new-dtags Онемогућује нове динамичке ознаке\n"
-#: lexsup.c:2147
+#: lexsup.c:2138
#, c-format
msgid " --enable-new-dtags Enable new dynamic tags\n"
msgstr " --enable-new-dtags Омогућује нове динамичке ознаке\n"
-#: lexsup.c:2149
+#: lexsup.c:2140
#, c-format
msgid " --eh-frame-hdr Create .eh_frame_hdr section\n"
msgstr " --eh-frame-hdr Прави „.eh_frame_hdr“ одељак\n"
-#: lexsup.c:2151
+#: lexsup.c:2142
#, c-format
msgid " --no-eh-frame-hdr Do not create .eh_frame_hdr section\n"
msgstr " --no-eh-frame-hdr Ðе прави „.eh_frame_hdrд одељак\n"
-#: lexsup.c:2153
+#: lexsup.c:2144
#, c-format
msgid " --exclude-libs=LIBS Make all symbols in LIBS hidden\n"
msgstr " --exclude-libs=БИБЛЕ Чини Ñве Ñимболе у БИБЛИОТЕКÐМРÑкривеним\n"
-#: lexsup.c:2155
+#: lexsup.c:2146
#, c-format
msgid " --hash-style=STYLE Set hash style to sysv/gnu/both. Default: "
msgstr " --hash-style=СТИЛ ПоÑтавља хеш Ñтил на ÑиÑв/гну/оба. ОÑновно: "
-#: lexsup.c:2174
+#: lexsup.c:2165
#, c-format
msgid ""
" -P AUDITLIB, --depaudit=AUDITLIB\n"
@@ -2457,17 +2461,17 @@ msgstr ""
" -P БИБЛ_ÐÐДГЛЕДÐЊÐ, --depaudit=БИБЛ_ÐÐДГЛЕДÐЊÐ\n"
" Ðаводи библиотеку која ће Ñе кориÑтити за надгледање завиÑноÑти\n"
-#: lexsup.c:2177
+#: lexsup.c:2168
#, c-format
msgid " -z combreloc Merge dynamic relocs into one section and sort\n"
msgstr " -z combreloc Стапа динамичке премештаје у један одељак и ређа\n"
-#: lexsup.c:2179
+#: lexsup.c:2170
#, c-format
msgid " -z nocombreloc Don't merge dynamic relocs into one section\n"
msgstr " -z nocombreloc Ðе Ñтапа динамичке премештаје у један одељак\n"
-#: lexsup.c:2181
+#: lexsup.c:2172
#, c-format
msgid ""
" -z global Make symbols in DSO available for subsequently\n"
@@ -2476,67 +2480,67 @@ msgstr ""
" -z global Чини Ñимболе у „DSO“ доÑтупним за накнадно\n"
" учитане објекте\n"
-#: lexsup.c:2184
+#: lexsup.c:2175
#, c-format
msgid " -z initfirst Mark DSO to be initialized first at runtime\n"
msgstr " -z initfirst Означава „DSO“ да буде први покренут у време извршења\n"
-#: lexsup.c:2186
+#: lexsup.c:2177
#, c-format
msgid " -z interpose Mark object to interpose all DSOs but executable\n"
msgstr " -z interpose Означава објекте да уметну Ñве „DSO“-ове оÑим извршне\n"
-#: lexsup.c:2188
+#: lexsup.c:2179
#, c-format
msgid " -z unique Mark DSO to be loaded at most once by default, and only in the main namespace\n"
msgstr " -z unique Означава „DSO за учитавање највише једном по оÑнови, и Ñамо у главном називном проÑтору\n"
-#: lexsup.c:2190
+#: lexsup.c:2181
#, c-format
msgid " -z nounique Don't mark DSO as a loadable at most once\n"
msgstr " -z nounique Ðе означава „DSO“ за учитавање највише једном\n"
-#: lexsup.c:2192
+#: lexsup.c:2183
#, c-format
msgid " -z lazy Mark object lazy runtime binding (default)\n"
msgstr " -z lazy Означава лењо време извршења увезивања објекта (оÑновно)\n"
-#: lexsup.c:2194
+#: lexsup.c:2185
#, c-format
msgid " -z loadfltr Mark object requiring immediate process\n"
msgstr " -z loadfltr Означава објекте да захтевају моменталну обраду\n"
-#: lexsup.c:2196
+#: lexsup.c:2187
#, c-format
msgid " -z nocopyreloc Don't create copy relocs\n"
msgstr " -z nocopyreloc Ðе Ñтвара умножак премештаја\n"
-#: lexsup.c:2198
+#: lexsup.c:2189
#, c-format
msgid " -z nodefaultlib Mark object not to use default search paths\n"
msgstr " -z nodefaultlib Означава објекат да не кориÑти оÑновне путање претраге\n"
-#: lexsup.c:2200
+#: lexsup.c:2191
#, c-format
msgid " -z nodelete Mark DSO non-deletable at runtime\n"
msgstr " -z nodelete Означава „DSO“ необриÑивим у време извршења\n"
-#: lexsup.c:2202
+#: lexsup.c:2193
#, c-format
msgid " -z nodlopen Mark DSO not available to dlopen\n"
msgstr " -z nodlopen Означава „DSO“ недоÑтупним за „dlopen“\n"
-#: lexsup.c:2204
+#: lexsup.c:2195
#, c-format
msgid " -z nodump Mark DSO not available to dldump\n"
msgstr " -z nodump Означава „DSO“ недоÑтупним за „dldump“\n"
-#: lexsup.c:2206
+#: lexsup.c:2197
#, c-format
msgid " -z now Mark object non-lazy runtime binding\n"
msgstr " -z now Означава не лењо време извршења увезивања објекта\n"
-#: lexsup.c:2208
+#: lexsup.c:2199
#, c-format
msgid ""
" -z origin Mark object requiring immediate $ORIGIN\n"
@@ -2545,147 +2549,147 @@ msgstr ""
" -z origin Означава објекат да захтева тренутну „$ORIGIN“\n"
" обраду у време извршавања\n"
-#: lexsup.c:2212
+#: lexsup.c:2203
#, c-format
msgid " -z relro Create RELRO program header (default)\n"
msgstr " -z relro Ствара „RELRO“ заглавље програма (оÑновно)\n"
-#: lexsup.c:2214
+#: lexsup.c:2205
#, c-format
msgid " -z norelro Don't create RELRO program header\n"
msgstr " -z norelro Ðе Ñтвара „RELRO“ заглавље програма\n"
-#: lexsup.c:2217
+#: lexsup.c:2208
#, c-format
msgid " -z relro Create RELRO program header\n"
msgstr " -z relro Ствара „RELRO“ заглавље програма\n"
-#: lexsup.c:2219
+#: lexsup.c:2210
#, c-format
msgid " -z norelro Don't create RELRO program header (default)\n"
msgstr " -z norelro Ðе Ñтвара „RELRO“ заглавље програма (оÑновно)\n"
-#: lexsup.c:2223
+#: lexsup.c:2214
#, c-format
msgid " -z separate-code Create separate code program header (default)\n"
msgstr " -z separate-code Ствара одвојено заглавље програма кода (оÑновно)\n"
-#: lexsup.c:2225
+#: lexsup.c:2216
#, c-format
msgid " -z noseparate-code Don't create separate code program header\n"
msgstr " -z noseparate-code Ðе Ñтвара одвојено заглавље програма кода\n"
-#: lexsup.c:2228
+#: lexsup.c:2219
#, c-format
msgid " -z separate-code Create separate code program header\n"
msgstr " -z separate-code Ствара одвојено заглавље програма кода\n"
-#: lexsup.c:2230
+#: lexsup.c:2221
#, c-format
msgid " -z noseparate-code Don't create separate code program header (default)\n"
msgstr " -z noseparate-code Ðе Ñтвара одвојено заглавље програма кода (оÑновно)\n"
-#: lexsup.c:2234
+#: lexsup.c:2225
#, c-format
msgid " --rosegment With -z separate-code, create a single read-only segment (default)\n"
msgstr " --rosegment Са -z раздвојеним кÈдом, Ñтвара један подеок Ñамо за читање (оÑновно)\n"
-#: lexsup.c:2236
+#: lexsup.c:2227
#, c-format
msgid " --no-rosegment With -z separate-code, creste two read-only segments\n"
msgstr " --no-rosegment Са -z раздвојеним кÈдом, Ñтвара два подеока Ñамо за читање\n"
-#: lexsup.c:2239
+#: lexsup.c:2230
#, c-format
msgid " --rosegment With -z separate-code, create a single read-only segment\n"
msgstr " --rosegment Са -z раздвојеним кÈдом, Ñтвара један подеок Ñамо за читање\n"
-#: lexsup.c:2241
+#: lexsup.c:2232
#, c-format
msgid " --no-rosegment With -z separate-code, creste two read-only segments (default)\n"
msgstr " --no-rosegment Са -z раздвојеним кÈдом, Ñтвара два подеока Ñамо за читање (оÑновно)\n"
-#: lexsup.c:2244
+#: lexsup.c:2235
#, c-format
msgid " -z common Generate common symbols with STT_COMMON type\n"
msgstr " -z common Ствара опште Ñимболе Ñа „STT_COMMON“ врÑтом\n"
-#: lexsup.c:2246
+#: lexsup.c:2237
#, c-format
msgid " -z nocommon Generate common symbols with STT_OBJECT type\n"
msgstr " -z nocommon Ствара опште Ñимболе Ñа „STT_OBJECT“ врÑтом\n"
-#: lexsup.c:2249
+#: lexsup.c:2240
#, c-format
msgid " -z text Treat DT_TEXTREL in output as error (default)\n"
msgstr " -z текÑÑ‚ Сматра грешком „DT_TEXTREL“ у излазу (оÑновно)\n"
-#: lexsup.c:2252
+#: lexsup.c:2243
#, c-format
msgid " -z text Treat DT_TEXTREL in output as error\n"
msgstr " -z текÑÑ‚ Сматра грешком „DT_TEXTREL“ у излазу\n"
-#: lexsup.c:2256
+#: lexsup.c:2247
#, c-format
msgid " -z notext Don't treat DT_TEXTREL in output as error (default)\n"
msgstr " -z без-текÑта Ðе Ñматра грешком „DT_TEXTREL“ у излазу (оÑновно)\n"
-#: lexsup.c:2258
+#: lexsup.c:2249
#, c-format
msgid " -z textoff Don't treat DT_TEXTREL in output as error (default)\n"
msgstr " -z иÑкљ-текÑÑ‚ Ðе Ñматра грешком „DT_TEXTREL“ у излазу (оÑновно)\n"
-#: lexsup.c:2263
+#: lexsup.c:2254
#, c-format
msgid " -z notext Don't treat DT_TEXTREL in output as error\n"
msgstr " -z без-текÑта Ðе Ñматра грешком „DT_TEXTREL“ у излазу\n"
-#: lexsup.c:2265
+#: lexsup.c:2256
#, c-format
msgid " -z textoff Don't treat DT_TEXTREL in output as error\n"
msgstr " -z иÑкљ-текÑÑ‚ Ðе Ñматра грешком „DT_TEXTREL“ у излазу\n"
-#: lexsup.c:2269
+#: lexsup.c:2260
#, c-format
msgid " -z memory-seal Mark object be memory sealed (default)\n"
msgstr " -z memory-seal Означава објект да је запечаћен меморијом (оÑновно)\n"
-#: lexsup.c:2271
+#: lexsup.c:2262
#, c-format
msgid " -z nomemory-seal Don't mark oject to be memory sealed\n"
msgstr " -z nomemory-seal Ðе означава објект да је запечаћен меморијом\n"
-#: lexsup.c:2274
+#: lexsup.c:2265
#, c-format
msgid " -z memory-seal Mark object be memory sealed\n"
msgstr " -z memory-seal Означава објект да је запечаћен меморијом\n"
-#: lexsup.c:2276
+#: lexsup.c:2267
#, c-format
msgid " -z nomemory-seal Don't mark oject to be memory sealed (default)\n"
msgstr " -z nomemory-seal Ðе означава објект да је запечаћен меморијом (оÑновно)\n"
-#: lexsup.c:2284
+#: lexsup.c:2275
#, c-format
msgid " --build-id[=STYLE] Generate build ID note\n"
msgstr " --build-id[=СТИЛ] Ствара напомену ИБ-а изградње\n"
-#: lexsup.c:2288
+#: lexsup.c:2279
#, c-format
msgid " Styles: none,md5,sha1,xx,uuid,0xHEX\n"
msgstr " Стилови: none,md5,sha1,xx,uuid,0xHEX\n"
-#: lexsup.c:2292
+#: lexsup.c:2283
#, c-format
msgid " Styles: none,md5,sha1,uuid,0xHEX\n"
msgstr " Стилови: none,md5,sha1,uuid,0xHEX\n"
-#: lexsup.c:2295
+#: lexsup.c:2286
#, c-format
msgid " --package-metadata[=JSON] Generate package metadata note\n"
msgstr " --package-metadata[=JSON] Ствара белешку метаподатака пакета\n"
-#: lexsup.c:2297
+#: lexsup.c:2288
#, c-format
msgid ""
" --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi|zstd]\n"
@@ -2694,142 +2698,142 @@ msgstr ""
" --compress-debug-sections=[ништа|zlib|zlib-gnu|zlib-gabi|zstd]\n"
"\t\t\t Сажима DWARF одељке прочишћавања\n"
-#: lexsup.c:2300
+#: lexsup.c:2291
#, c-format
msgid " Default: %s\n"
msgstr " ОÑновно: %s\n"
-#: lexsup.c:2303
+#: lexsup.c:2294
#, c-format
msgid " -z common-page-size=SIZE Set common page size to SIZE\n"
msgstr " -z common-page-size=ВЕЛЧ ПоÑтавља општу величину Ñтранице на „ВЕЛИЧИÐУ“\n"
-#: lexsup.c:2305
+#: lexsup.c:2296
#, c-format
msgid " -z max-page-size=SIZE Set maximum page size to SIZE\n"
msgstr " -z max-page-size=ВЕЛЧ ПоÑтавља највећу величину Ñтранице на „ВЕЛИЧИÐУ“\n"
-#: lexsup.c:2307
+#: lexsup.c:2298
#, c-format
msgid " -z defs Report unresolved symbols in object files\n"
msgstr " -z defs Пријављује нерешене Ñимболе у ојкетним датотекама\n"
-#: lexsup.c:2309
+#: lexsup.c:2300
#, c-format
msgid " -z undefs Ignore unresolved symbols in object files\n"
msgstr " -z undefs Занемарује нерешене Ñимболе у датотекама објекта\n"
-#: lexsup.c:2311
+#: lexsup.c:2302
#, c-format
msgid " -z muldefs Allow multiple definitions\n"
msgstr " -z muldefs Допушта више дефиниција\n"
-#: lexsup.c:2313
+#: lexsup.c:2304
#, c-format
msgid " -z stack-size=SIZE Set size of stack segment\n"
msgstr " -z stack-size=ВЕЛИЧИÐРПоÑтавља величину подеока Ñпремника\n"
-#: lexsup.c:2316
+#: lexsup.c:2307
#, c-format
msgid " -z execstack Mark executable as requiring executable stack\n"
msgstr " -z execstack Означава извршну као да захтева извршни Ñпремник\n"
-#: lexsup.c:2318
+#: lexsup.c:2309
#, c-format
msgid " -z noexecstack Mark executable as not requiring executable stack\n"
msgstr " -z noexecstack Означава извршну као да не захтева извршни Ñпремник\n"
-#: lexsup.c:2320
+#: lexsup.c:2311
#, c-format
msgid " --warn-execstack-objects Generate a warning if an object file requests an executable stack\n"
msgstr " --warn-execstack-objects Ствара упозорење ако датотека објекта захтева извршив Ñпремник\n"
-#: lexsup.c:2323
+#: lexsup.c:2314
#, c-format
msgid " --warn-execstack Generate a warning if creating an executable stack\n"
msgstr " --warn-execstack Ствара упозорење ако Ñтвара извршив Ñпремник\n"
-#: lexsup.c:2326
+#: lexsup.c:2317
#, c-format
msgid " --warn-execstack Generate a warning if creating an executable stack (default)\n"
msgstr " --warn-execstack Ствара упозорење ако Ñтвара извршив Ñпремник (оÑновно)\n"
-#: lexsup.c:2330
+#: lexsup.c:2321
#, c-format
msgid " --no-warn-execstack Do not generate a warning if creating an executable stack (default)\n"
msgstr " --no-warn-execstack Ðе Ñтвара упозорење ако Ñтвара извршив Ñпремник (оÑновно)\n"
-#: lexsup.c:2333
+#: lexsup.c:2324
#, c-format
msgid " --no-warn-execstack Do not generate a warning if creating an executable stack\n"
msgstr " --no-warn-execstack Ðе Ñтвара упозорење ако Ñтвара извршив Ñпремник\n"
-#: lexsup.c:2336
+#: lexsup.c:2327
#, c-format
msgid " --error-execstack Turn warnings about executable stacks into errors\n"
msgstr " --error-execstack Преобраћа упозорења о извршним Ñпремницима у грешке\n"
-#: lexsup.c:2338
+#: lexsup.c:2329
#, c-format
msgid " --no-error-execstack Do not turn warnings about executable stacks into errors\n"
msgstr " --no-error-execstack Ðе преобраћа упозорења о извршним Ñпремницима у грешке\n"
-#: lexsup.c:2342
+#: lexsup.c:2333
#, c-format
msgid " --warn-rwx-segments Generate a warning if a LOAD segment has RWX permissions (default)\n"
msgstr " --warn-rwx-segments Ствара упозорење ако „LOAD“ Ñегмент има „RWX“ дозволе (оÑновно)\n"
-#: lexsup.c:2344
+#: lexsup.c:2335
#, c-format
msgid " --no-warn-rwx-segments Do not generate a warning if a LOAD segments has RWX permissions\n"
msgstr " --no-warn-rwx-segments Ðе Ñтвара упозорење ако „LOAD“ Ñегмент има „RWX“ дозволе\n"
-#: lexsup.c:2347
+#: lexsup.c:2338
#, c-format
msgid " --warn-rwx-segments Generate a warning if a LOAD segment has RWX permissions\n"
msgstr " --warn-rwx-segments Ствара упозорење ако „LOAD“ Ñегмент има „RWX“ дозволе\n"
-#: lexsup.c:2349
+#: lexsup.c:2340
#, c-format
msgid " --no-warn-rwx-segments Do not generate a warning if a LOAD segments has RWX permissions (default)\n"
msgstr " --no-warn-rwx-segments Ðе Ñтвара упозорење ако „LOAD“ Ñегмент има „RWX“ дозволе (оÑновно)\n"
-#: lexsup.c:2352
+#: lexsup.c:2343
#, c-format
msgid " --error-rwx-segments Turn warnings about loadable RWX segments into errors\n"
msgstr " --error-rwx-segments Преобраћа упозорења о отпремивим RWX одломцима у грешке\n"
-#: lexsup.c:2354
+#: lexsup.c:2345
#, c-format
msgid " --no-error-rwx-segments Do not turn warnings about loadable RWX segments into errors\n"
msgstr " --no-error-rwx-segments Ðе претвара упозорења о отпремивим RWX одломцима у грешке\n"
-#: lexsup.c:2357
+#: lexsup.c:2348
#, c-format
msgid " -z unique-symbol Avoid duplicated local symbol names\n"
msgstr " -z unique-symbol Избегава удвоÑтручене локалне називе Ñимбола\n"
-#: lexsup.c:2359
+#: lexsup.c:2350
#, c-format
msgid " -z nounique-symbol Keep duplicated local symbol names (default)\n"
msgstr " -z nounique-symbol Задржава удвоÑтручене локалне називе Ñимбола (оÑновно)\n"
-#: lexsup.c:2361
+#: lexsup.c:2352
#, c-format
msgid " -z globalaudit Mark executable requiring global auditing\n"
msgstr " -z globalaudit Означава извршне који захтевају опште надгледање\n"
-#: lexsup.c:2363
+#: lexsup.c:2354
#, c-format
msgid " -z start-stop-gc Enable garbage collection on __start/__stop\n"
msgstr " -z start-stop-gc Укључује Ñкупљање Ñмећа на „__start/__stop“\n"
-#: lexsup.c:2365
+#: lexsup.c:2356
#, c-format
msgid " -z nostart-stop-gc Don't garbage collect __start/__stop (default)\n"
msgstr " -z nostart-stop-gc Ðе Ñкупља Ñмеће на „__start/__stop“ (оÑновно)\n"
-#: lexsup.c:2367
+#: lexsup.c:2358
#, c-format
msgid ""
" -z start-stop-visibility=V Set visibility of built-in __start/__stop symbols\n"
@@ -2838,22 +2842,22 @@ msgstr ""
" -z start-stop-visibility=V ПоÑтавља видљивоÑÑ‚ уграђених „__start/__stop“ Ñимбола\n"
" на „DEFAULT“, „PROTECTED“, „HIDDEN“ или „INTERNAL“\n"
-#: lexsup.c:2370
+#: lexsup.c:2361
#, c-format
msgid " -z sectionheader Generate section header (default)\n"
msgstr " -z sectionheader Ствара заглавље одељка (оÑновно)\n"
-#: lexsup.c:2372
+#: lexsup.c:2363
#, c-format
msgid " -z nosectionheader Do not generate section header\n"
msgstr " -z nosectionheader Ðе Ñтвара заглавље одељка\n"
-#: lexsup.c:2379
+#: lexsup.c:2370
#, c-format
msgid " --ld-generated-unwind-info Generate exception handling info for PLT\n"
msgstr " --ld-generated-unwind-info Ствара податке руковања изузетком за „PLT“\n"
-#: lexsup.c:2381
+#: lexsup.c:2372
#, c-format
msgid ""
" --no-ld-generated-unwind-info\n"
@@ -2862,56 +2866,56 @@ msgstr ""
" --no-ld-generated-unwind-info\n"
" Ðе Ñтвара податке руковања изузетком за „PLT“\n"
-#: lexsup.c:2391
+#: lexsup.c:2382
#, c-format
msgid "ELF emulations:\n"
msgstr "„ELF“ емулације:\n"
-#: lexsup.c:2409
+#: lexsup.c:2400
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr "Употреба: %s [опције] датотека...\n"
-#: lexsup.c:2411
+#: lexsup.c:2402
#, c-format
msgid "Options:\n"
msgstr "Опције:\n"
-#: lexsup.c:2489
+#: lexsup.c:2480
#, c-format
msgid " @FILE"
msgstr " @ДÐТОТЕКÐ"
-#: lexsup.c:2492
+#: lexsup.c:2483
#, c-format
msgid "Read options from FILE\n"
msgstr " Чита опције из ДÐТОТЕКЕ\n"
#. Note: Various tools (such as libtool) depend upon the
#. format of the listings below - do not change them.
-#: lexsup.c:2497
+#: lexsup.c:2488
#, c-format
msgid "%s: supported targets:"
msgstr "%s: подржане мете:"
-#: lexsup.c:2505
+#: lexsup.c:2496
#, c-format
msgid "%s: supported emulations: "
msgstr "%s: подржане емулације: "
-#: lexsup.c:2510
+#: lexsup.c:2501
#, c-format
msgid "%s: emulation specific options:\n"
msgstr "%s: поÑебне опције емулације:\n"
-#: lexsup.c:2517
+#: lexsup.c:2508
#, c-format
msgid "Report bugs to %s\n"
msgstr "Грешке пријавите на „%s“\n"
#: mri.c:291
-msgid "%F%P: unknown format type %s\n"
-msgstr "%F%P: непозната врÑта формата „%s“\n"
+msgid "%P: unknown format type %s\n"
+msgstr "%P: непозната врÑта формата „%s“\n"
#: pdb.c:845 pdb.c:1136
msgid "%P: CodeView symbol references out of range type %v\n"
@@ -3341,46 +3345,46 @@ msgstr "%P: упозорење: не могу да попуним јавни Ñ‚Ð
msgid "%P: warning: cannot populate info stream in PDB file: %E\n"
msgstr "%P: упозорење: не могу да попуним инфо ток у PDB датотеци: %E\n"
-#: pe-dll.c:480
+#: pe-dll.c:483
msgid "%X%P: unsupported PEI architecture: %s\n"
msgstr "%X%P: неподржана ПЕИ архитектура: %s\n"
-#: pe-dll.c:869
+#: pe-dll.c:872
msgid "%X%P: cannot export %s: invalid export name\n"
msgstr "%X%P: не могу да извезем „%s“: неиÑправан назив извоза\n"
-#: pe-dll.c:921
+#: pe-dll.c:924
#, c-format
msgid "%X%P: error, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
msgstr "%X%P: грешка, удвоÑтручени ИЗВОЗ Ñа редним бројевима: %s (%d vs %d)\n"
-#: pe-dll.c:928
+#: pe-dll.c:931
#, c-format
msgid "%P: warning, duplicate EXPORT: %s\n"
msgstr "%P: упозорење, удвоÑтручено „ИЗВЕЗИ“: %s\n"
-#: pe-dll.c:1035
+#: pe-dll.c:1038
#, c-format
msgid "%X%P: cannot export %s: symbol not defined\n"
msgstr "%X%P: не могу да извезем „%s“: Ñимбол није дефиниÑан\n"
-#: pe-dll.c:1041
+#: pe-dll.c:1044
#, c-format
msgid "%X%P: cannot export %s: symbol wrong type (%d vs %d)\n"
msgstr "%X%P: не могу да извезем „%s“: погрешна врÑта Ñимбола (%d vs %d)\n"
-#: pe-dll.c:1048
+#: pe-dll.c:1051
#, c-format
msgid "%X%P: cannot export %s: symbol not found\n"
msgstr "%X%P: не могу да извезем „%s“: ниÑам нашао Ñимбол\n"
-#: pe-dll.c:1072 eaarch64cloudabi.c:370 eaarch64cloudabib.c:370
-#: eaarch64elf.c:369 eaarch64elf32.c:369 eaarch64elf32b.c:369
-#: eaarch64elfb.c:369 eaarch64fbsd.c:370 eaarch64fbsdb.c:370
-#: eaarch64haiku.c:370 eaarch64linux.c:370 eaarch64linux32.c:370
-#: eaarch64linux32b.c:370 eaarch64linuxb.c:370 eaarch64nto.c:370
-#: eaix5ppc.c:1632 eaix5ppc.c:1642 eaix5rs6.c:1632 eaix5rs6.c:1642
-#: eaixppc.c:1632 eaixppc.c:1642 eaixrs6.c:1632 eaixrs6.c:1642 earmelf.c:572
+#: pe-dll.c:1075 eaarch64cloudabi.c:376 eaarch64cloudabib.c:376
+#: eaarch64elf.c:376 eaarch64elf32.c:376 eaarch64elf32b.c:376
+#: eaarch64elfb.c:376 eaarch64fbsd.c:376 eaarch64fbsdb.c:376
+#: eaarch64haiku.c:376 eaarch64linux.c:376 eaarch64linux32.c:376
+#: eaarch64linux32b.c:376 eaarch64linuxb.c:376 eaarch64nto.c:376
+#: eaix5ppc.c:1631 eaix5ppc.c:1641 eaix5rs6.c:1631 eaix5rs6.c:1641
+#: eaixppc.c:1631 eaixppc.c:1641 eaixrs6.c:1631 eaixrs6.c:1641 earmelf.c:572
#: earmelf_fbsd.c:572 earmelf_fuchsia.c:573 earmelf_haiku.c:573
#: earmelf_linux.c:573 earmelf_linux_eabi.c:573 earmelf_linux_fdpiceabi.c:573
#: earmelf_nacl.c:573 earmelf_nbsd.c:572 earmelf_phoenix.c:573
@@ -3399,100 +3403,100 @@ msgstr "%X%P: не могу да извезем „%s“: ниÑам нашао
#: eelf64lppc_fbsd.c:122 eelf64ltsmip.c:175 eelf64ltsmip_fbsd.c:175
#: eelf64ppc.c:122 eelf64ppc_fbsd.c:122 eelf_mipsel_haiku.c:175 ehppaelf.c:113
#: ehppalinux.c:113 ehppanbsd.c:113 ehppaobsd.c:113 em68hc11elf.c:173
-#: em68hc11elfb.c:173 em68hc12elf.c:173 em68hc12elfb.c:173 eppcmacos.c:1632
-#: eppcmacos.c:1642
-msgid "%F%P: can not create BFD: %E\n"
-msgstr "%F%P: не могу да направим „BFD“: %E\n"
+#: em68hc11elfb.c:173 em68hc12elf.c:173 em68hc12elfb.c:173 eppcmacos.c:1631
+#: eppcmacos.c:1641
+msgid "%P: can not create BFD: %E\n"
+msgstr "%P: не могу да направим „BFD“: %E\n"
-#: pe-dll.c:1086
+#: pe-dll.c:1089
msgid "%X%P: can not create .edata section: %E\n"
msgstr "%X%P: не могу да направим „.edata“ одељак: %E\n"
-#: pe-dll.c:1100
+#: pe-dll.c:1103
msgid "%X%P: can not create .reloc section: %E\n"
msgstr "%X%P: не могу да направим „.reloc“ одељак: %E\n"
-#: pe-dll.c:1149
+#: pe-dll.c:1152
#, c-format
msgid "%X%P: error: ordinal used twice: %d (%s vs %s)\n"
msgstr "%X%P: грешка, редни број је коришћен два пута: %d (%s vs %s)\n"
-#: pe-dll.c:1185
+#: pe-dll.c:1188
#, c-format
msgid "%X%P: error: export ordinal too large: %d\n"
msgstr "%X%P: грешка: извоз редног броја је превелик: %d\n"
-#: pe-dll.c:1511
+#: pe-dll.c:1514
#, c-format
msgid "Info: resolving %s by linking to %s (auto-import)\n"
msgstr "Инфо: решавам „%s“ повезивањем на „%s“ (ÑамоÑтални увоз)\n"
-#: pe-dll.c:1517
+#: pe-dll.c:1520
msgid "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"
msgstr "%P: упозорење: ÑамоÑтални увоз је активиран без наведеног „--enable-auto-import“ на линији наредби; ово би требало да ради оÑим ако не умеша и конÑтантне Ñтруктуре података које упућују на Ñимболе из ÑамоÑтално увезених „DLLs“-а\n"
-#: pe-dll.c:1680
+#: pe-dll.c:1684
msgid "%P: base relocation for section `%s' above .reloc section\n"
msgstr "%P: премештај оÑнове за одељак „%s“ изнад „.reloc“ одељка\n"
-#: pe-dll.c:1730
+#: pe-dll.c:1734
#, c-format
msgid "%X%P: error: %d-bit reloc in dll\n"
msgstr "%X%P: грешка: %d-битно премештање у „dll“-у\n"
-#: pe-dll.c:1856
+#: pe-dll.c:1860
#, c-format
msgid "%P: can't open output def file %s\n"
msgstr "%P: не могу да отворим излазну датотеку дефиниције „%s“\n"
-#: pe-dll.c:2005
+#: pe-dll.c:2009
#, c-format
msgid "; no contents available\n"
msgstr "; Ñадржај није доÑтупан\n"
-#: pe-dll.c:2364
+#: pe-dll.c:2368
msgid "%P: error: NULL decorated name for %s\n"
msgstr "%P: грешка: ÐИШТРукрашени назив за „%s“\n"
-#: pe-dll.c:2899
+#: pe-dll.c:2903
msgid "%X%P: %H: variable '%pT' can't be auto-imported; please read the documentation for ld's --enable-auto-import for details\n"
msgstr "%X%P: %H: променљива „%pT“ Ñе не може Ñама увеÑти; прочитајте документацију за опцију „--enable-auto-import“\n"
-#: pe-dll.c:2920
+#: pe-dll.c:2924
#, c-format
msgid "%X%P: can't open .lib file: %s\n"
msgstr "%X%P: не могу да отворим датотеку „.lib“: %s\n"
-#: pe-dll.c:2926
+#: pe-dll.c:2930
#, c-format
msgid "Creating library file: %s\n"
msgstr "Правим датотеку библиотеке: %s\n"
-#: pe-dll.c:2956
+#: pe-dll.c:2960
msgid "%X%P: bfd_openr %s: %E\n"
msgstr "%X%P: „bfd_openr“ „%s“: %E\n"
-#: pe-dll.c:2968
+#: pe-dll.c:2972
msgid "%X%P: %s(%s): can't find member in non-archive file"
msgstr "%X%P: %s(%s): не могу наћи члана у датотеци која није архива"
-#: pe-dll.c:2982
+#: pe-dll.c:2986
msgid "%X%P: %s(%s): can't find member in archive"
msgstr "%X%P: %s(%s): не могу наћи члана у архиви"
-#: pe-dll.c:3239
+#: pe-dll.c:3243
msgid "%X%P: add symbols %s: %E\n"
msgstr "%X%P: додајем Ñимболе „%s“: %E\n"
-#: pe-dll.c:3450
+#: pe-dll.c:3454
msgid "%X%P: open %s: %E\n"
msgstr "%X%P: отварам „%s“: %E\n"
-#: pe-dll.c:3460
+#: pe-dll.c:3464
msgid "%X%P: %s: this doesn't appear to be a DLL\n"
msgstr "%X%P: %s: ово не изгледа као да је „DLL“\n"
-#: pe-dll.c:3680
+#: pe-dll.c:3684
msgid "%X%P: error: can't use long section names on this arch\n"
msgstr "%X%P: грешка: не могу да кориÑтим дуге називе одељака на овој архитектури\n"
@@ -3500,88 +3504,88 @@ msgstr "%X%P: грешка: не могу да кориÑтим дуге назÐ
msgid "<no plugin>"
msgstr "<нема прикључка>"
-#: plugin.c:255 plugin.c:1137
-msgid "%F%P: %s: error loading plugin: %s\n"
-msgstr "%F%P: %s: грешка учитавања прикључка: %s\n"
+#: plugin.c:255 plugin.c:1139
+msgid "%P: %s: error loading plugin: %s\n"
+msgstr "%P: %s: грешка учитавања прикључка: %s\n"
#: plugin.c:262
msgid "%P: %s: duplicated plugin\n"
msgstr "%P: %s: удвоÑтручени прикључак\n"
#: plugin.c:346
-msgid "%F%P: could not create dummy IR bfd: %E\n"
-msgstr "%F%P: не могу да направим лажни ИР бфд: %E\n"
+msgid "%P: could not create dummy IR bfd: %E\n"
+msgstr "%P: не могу да направим лажни ИР бфд: %E\n"
-#: plugin.c:427
-msgid "%F%P: %s: non-ELF symbol in ELF BFD!\n"
-msgstr "%F%P: %s: не-„ELF“ Ñимбол у „ELF BFD“!\n"
+#: plugin.c:428
+msgid "%P: %s: non-ELF symbol in ELF BFD!\n"
+msgstr "%P: %s: не-„ELF“ Ñимбол у „ELF BFD“!\n"
-#: plugin.c:438
-msgid "%F%P: unknown ELF symbol visibility: %d!\n"
-msgstr "%F%P: непозната видљивоÑÑ‚ „ELF“ Ñимбола: %d!\n"
+#: plugin.c:439
+msgid "%P: unknown ELF symbol visibility: %d!\n"
+msgstr "%P: непозната видљивоÑÑ‚ „ELF“ Ñимбола: %d!\n"
-#: plugin.c:560
-msgid "%F%P: unsupported input file size: %s (%ld bytes)\n"
-msgstr "%F%P: неподржана величина улазне датотеке: %s (%ld бајта)\n"
+#: plugin.c:561
+msgid "%P: unsupported input file size: %s (%ld bytes)\n"
+msgstr "%P: неподржана величина улазне датотеке: %s (%ld бајта)\n"
-#: plugin.c:705
+#: plugin.c:706
#, c-format
msgid "unknown LTO kind value %x"
msgstr "непозната „LTO“ врÑта вредноÑти „%x“"
-#: plugin.c:731
+#: plugin.c:732
#, c-format
msgid "unknown LTO resolution value %x"
msgstr "непозната вредноÑÑ‚ „LTO“ резолуције „%x“"
-#: plugin.c:751
+#: plugin.c:752
#, c-format
msgid "unknown LTO visibility value %x"
msgstr "непозната вредноÑÑ‚ „LTO“ видљивоÑти „%x“"
#. We should not have a new, indirect or warning symbol here.
-#: plugin.c:836
-msgid "%F%P: %s: plugin symbol table corrupt (sym type %d)\n"
-msgstr "%F%P: %s: табела Ñимбола прикључка је оштећена (врÑта Ñимбола „%d“)\n"
+#: plugin.c:837
+msgid "%P: %s: plugin symbol table corrupt (sym type %d)\n"
+msgstr "%P: %s: табела Ñимбола прикључка је оштећена (врÑта Ñимбола „%d“)\n"
-#: plugin.c:901
+#: plugin.c:902
msgid "%P: %pB: symbol `%s' definition: %s, visibility: %s, resolution: %s\n"
msgstr "%P: %pB: дефиниција Ñимбола „%s“: %s, видљивоÑÑ‚: %s, резолуција: %s\n"
-#: plugin.c:978
+#: plugin.c:979
msgid "%P: warning: "
msgstr "%P: упозорење: "
#: plugin.c:989
-msgid "%P: error: "
-msgstr "%P: грешка: "
+msgid "%X%P: error: "
+msgstr "%X%P: грешка: "
-#: plugin.c:1144
-msgid "%F%P: %s: plugin error: %d\n"
-msgstr "%F%P: %s: грешка прикључка: %d\n"
+#: plugin.c:1146
+msgid "%P: %s: plugin error: %d\n"
+msgstr "%P: %s: грешка прикључка: %d\n"
-#: plugin.c:1208
-msgid "%F%P: plugin_strdup failed to allocate memory: %s\n"
-msgstr "%F%P: „plugin_strdup“ није уÑпео да додели меморију: %s\n"
+#: plugin.c:1210
+msgid "%P: plugin_strdup failed to allocate memory: %s\n"
+msgstr "%P: „plugin_strdup“ није уÑпео да додели меморију: %s\n"
-#: plugin.c:1250
-msgid "%F%P: plugin failed to allocate memory for input: %s\n"
-msgstr "%F%P: прикључак није уÑпео да додели меморију за улаз: %s\n"
+#: plugin.c:1252
+msgid "%P: plugin failed to allocate memory for input: %s\n"
+msgstr "%P: прикључак није уÑпео да додели меморију за улаз: %s\n"
-#: plugin.c:1279
-msgid "%F%P: %s: plugin reported error claiming file\n"
-msgstr "%F%P: %s: прикључак је извеÑтио грешку захтевајући датотеку\n"
+#: plugin.c:1281
+msgid "%P: %s: plugin reported error claiming file\n"
+msgstr "%P: %s: прикључак је извеÑтио грешку захтевајући датотеку\n"
-#: plugin.c:1401
+#: plugin.c:1403
msgid "%P: %s: error in plugin cleanup: %d (ignored)\n"
msgstr "%P: %s: грешка у чишћењу прикључка: %d (ignored)\n"
-#: eaarch64cloudabi.c:237 eaarch64cloudabib.c:237 eaarch64elf.c:236
-#: eaarch64elf32.c:236 eaarch64elf32b.c:236 eaarch64elfb.c:236
-#: eaarch64fbsd.c:237 eaarch64fbsdb.c:237 eaarch64haiku.c:237
-#: eaarch64linux.c:237 eaarch64linux32.c:237 eaarch64linux32b.c:237
-#: eaarch64linuxb.c:237 eaarch64nto.c:237 eaix5ppc.c:1097 eaix5rs6.c:1097
-#: eaixppc.c:1097 eaixrs6.c:1097 earmelf.c:299 earmelf_fbsd.c:299
+#: eaarch64cloudabi.c:242 eaarch64cloudabib.c:242 eaarch64elf.c:242
+#: eaarch64elf32.c:242 eaarch64elf32b.c:242 eaarch64elfb.c:242
+#: eaarch64fbsd.c:242 eaarch64fbsdb.c:242 eaarch64haiku.c:242
+#: eaarch64linux.c:242 eaarch64linux32.c:242 eaarch64linux32b.c:242
+#: eaarch64linuxb.c:242 eaarch64nto.c:242 eaix5ppc.c:1096 eaix5rs6.c:1096
+#: eaixppc.c:1096 eaixrs6.c:1096 earmelf.c:299 earmelf_fbsd.c:299
#: earmelf_fuchsia.c:300 earmelf_haiku.c:300 earmelf_linux.c:300
#: earmelf_linux_eabi.c:300 earmelf_linux_fdpiceabi.c:300 earmelf_nacl.c:300
#: earmelf_nbsd.c:299 earmelf_phoenix.c:300 earmelf_vxworks.c:299
@@ -3596,23 +3600,24 @@ msgstr "%P: %s: грешка у чишћењу прикључка: %d (ignored)\
#: eelf32bmip.c:208 eelf32bmipn32.c:222 eelf32bsmip.c:222 eelf32btsmip.c:208
#: eelf32btsmip_fbsd.c:208 eelf32btsmipn32.c:208 eelf32btsmipn32_fbsd.c:208
#: eelf32ebmip.c:208 eelf32ebmipvxworks.c:208 eelf32elmip.c:208
-#: eelf32elmipvxworks.c:208 eelf32l4300.c:208 eelf32lmip.c:208
+#: eelf32elmipvxworks.c:208 eelf32kvx.c:198 eelf32l4300.c:208 eelf32lmip.c:208
#: eelf32lr5900.c:208 eelf32lr5900n32.c:208 eelf32lsmip.c:208
#: eelf32ltsmip.c:208 eelf32ltsmip_fbsd.c:208 eelf32ltsmipn32.c:208
#: eelf32ltsmipn32_fbsd.c:208 eelf32metag.c:209 eelf32mipswindiss.c:208
-#: eelf64bmip.c:222 eelf64btsmip.c:208 eelf64btsmip_fbsd.c:208 eelf64lppc.c:485
-#: eelf64lppc_fbsd.c:485 eelf64ltsmip.c:208 eelf64ltsmip_fbsd.c:208
-#: eelf64ppc.c:485 eelf64ppc_fbsd.c:485 eelf_mipsel_haiku.c:208 ehppaelf.c:233
-#: ehppalinux.c:233 ehppanbsd.c:233 ehppaobsd.c:233 em68hc11elf.c:298
-#: em68hc11elfb.c:298 em68hc12elf.c:298 em68hc12elfb.c:298 eppcmacos.c:1097
+#: eelf64bmip.c:222 eelf64btsmip.c:208 eelf64btsmip_fbsd.c:208 eelf64kvx.c:198
+#: eelf64kvx_linux.c:196 eelf64lppc.c:485 eelf64lppc_fbsd.c:485
+#: eelf64ltsmip.c:208 eelf64ltsmip_fbsd.c:208 eelf64ppc.c:485
+#: eelf64ppc_fbsd.c:485 eelf_mipsel_haiku.c:208 ehppaelf.c:233 ehppalinux.c:233
+#: ehppanbsd.c:233 ehppaobsd.c:233 em68hc11elf.c:298 em68hc11elfb.c:298
+#: em68hc12elf.c:298 em68hc12elfb.c:298 eppcmacos.c:1096
msgid "%X%P: can not make stub section: %E\n"
msgstr "%X%P: не могу да направим одељак окрајка: %E\n"
-#: eaarch64cloudabi.c:280 eaarch64cloudabib.c:280 eaarch64elf.c:279
-#: eaarch64elf32.c:279 eaarch64elf32b.c:279 eaarch64elfb.c:279
-#: eaarch64fbsd.c:280 eaarch64fbsdb.c:280 eaarch64haiku.c:280
-#: eaarch64linux.c:280 eaarch64linux32.c:280 eaarch64linux32b.c:280
-#: eaarch64linuxb.c:280 eaarch64nto.c:280 earcelf.c:117 earclinux.c:118
+#: eaarch64cloudabi.c:285 eaarch64cloudabib.c:285 eaarch64elf.c:285
+#: eaarch64elf32.c:285 eaarch64elf32b.c:285 eaarch64elfb.c:285
+#: eaarch64fbsd.c:285 eaarch64fbsdb.c:285 eaarch64haiku.c:285
+#: eaarch64linux.c:285 eaarch64linux32.c:285 eaarch64linux32b.c:285
+#: eaarch64linuxb.c:285 eaarch64nto.c:285 earcelf.c:117 earclinux.c:118
#: earclinux_nps.c:118 earcv2elf.c:117 earcv2elfx.c:117 earmelf.c:411
#: earmelf_fbsd.c:411 earmelf_fuchsia.c:412 earmelf_haiku.c:412
#: earmelf_linux.c:412 earmelf_linux_eabi.c:412 earmelf_linux_fdpiceabi.c:412
@@ -3626,16 +3631,16 @@ msgstr "%X%P: не могу да направим одељак окрајка: %
#: eavrxmega4.c:321 eavrxmega4_flmap.c:321 eavrxmega5.c:321 eavrxmega6.c:321
#: eavrxmega7.c:321 ecriself.c:117 ecrislinux.c:118 ed10velf.c:117
#: eelf32_sparc.c:118 eelf32_sparc_sol2.c:250 eelf32_sparc_vxworks.c:147
-#: eelf32_spu.c:651 eelf32_tic6x_be.c:184 eelf32_tic6x_elf_be.c:184
-#: eelf32_tic6x_elf_le.c:184 eelf32_tic6x_le.c:184 eelf32_tic6x_linux_be.c:184
-#: eelf32_tic6x_linux_le.c:184 eelf32_x86_64.c:150 eelf32am33lin.c:117
+#: eelf32_spu.c:651 eelf32_tic6x_be.c:182 eelf32_tic6x_elf_be.c:182
+#: eelf32_tic6x_elf_le.c:182 eelf32_tic6x_le.c:182 eelf32_tic6x_linux_be.c:182
+#: eelf32_tic6x_linux_le.c:182 eelf32_x86_64.c:182 eelf32am33lin.c:117
#: eelf32b4300.c:314 eelf32bfin.c:127 eelf32bfinfd.c:127 eelf32bmip.c:314
#: eelf32bmipn32.c:328 eelf32briscv.c:94 eelf32briscv_ilp32.c:94
#: eelf32briscv_ilp32f.c:94 eelf32bsmip.c:328 eelf32btsmip.c:314
#: eelf32btsmip_fbsd.c:314 eelf32btsmipn32.c:314 eelf32btsmipn32_fbsd.c:314
#: eelf32cr16.c:267 eelf32crx.c:154 eelf32ebmip.c:314 eelf32ebmipvxworks.c:343
#: eelf32elmip.c:314 eelf32elmipvxworks.c:343 eelf32epiphany.c:117
-#: eelf32epiphany_4x4.c:119 eelf32frvfd.c:117 eelf32ip2k.c:117
+#: eelf32epiphany_4x4.c:119 eelf32frvfd.c:117 eelf32ip2k.c:117 eelf32kvx.c:241
#: eelf32l4300.c:314 eelf32lm32.c:117 eelf32lm32fd.c:117 eelf32lmip.c:314
#: eelf32loongarch.c:92 eelf32lppc.c:326 eelf32lppclinux.c:326
#: eelf32lppcnto.c:326 eelf32lppcsim.c:326 eelf32lr5900.c:314
@@ -3653,20 +3658,20 @@ msgstr "%X%P: не могу да направим одељак окрајка: %
#: eelf32xstormy16.c:128 eelf32xtensa.c:2014 eelf32z80.c:144 eelf64_aix.c:117
#: eelf64_ia64.c:143 eelf64_ia64_fbsd.c:143 eelf64_ia64_vms.c:220
#: eelf64_s390.c:133 eelf64_sparc.c:118 eelf64_sparc_fbsd.c:118
-#: eelf64_sparc_sol2.c:250 eelf64alpha.c:201 eelf64alpha_fbsd.c:201
-#: eelf64alpha_nbsd.c:201 eelf64bmip.c:328 eelf64bpf.c:117 eelf64briscv.c:94
+#: eelf64_sparc_sol2.c:250 eelf64alpha.c:178 eelf64alpha_fbsd.c:178
+#: eelf64alpha_nbsd.c:178 eelf64bmip.c:328 eelf64bpf.c:117 eelf64briscv.c:94
#: eelf64briscv_lp64.c:94 eelf64briscv_lp64f.c:94 eelf64btsmip.c:314
-#: eelf64btsmip_fbsd.c:314 eelf64hppa.c:117 eelf64loongarch.c:92
-#: eelf64lppc.c:595 eelf64lppc_fbsd.c:595 eelf64lriscv.c:94
-#: eelf64lriscv_lp64.c:94 eelf64lriscv_lp64f.c:94 eelf64ltsmip.c:314
-#: eelf64ltsmip_fbsd.c:314 eelf64mmix.c:228 eelf64ppc.c:595
-#: eelf64ppc_fbsd.c:595 eelf64rdos.c:133 eelf64tilegx.c:118
-#: eelf64tilegx_be.c:118 eelf_i386.c:142 eelf_i386_be.c:141
+#: eelf64btsmip_fbsd.c:314 eelf64hppa.c:117 eelf64kvx.c:241
+#: eelf64kvx_linux.c:239 eelf64loongarch.c:92 eelf64lppc.c:595
+#: eelf64lppc_fbsd.c:595 eelf64lriscv.c:94 eelf64lriscv_lp64.c:94
+#: eelf64lriscv_lp64f.c:94 eelf64ltsmip.c:314 eelf64ltsmip_fbsd.c:314
+#: eelf64mmix.c:225 eelf64ppc.c:595 eelf64ppc_fbsd.c:595 eelf64rdos.c:165
+#: eelf64tilegx.c:118 eelf64tilegx_be.c:118 eelf_i386.c:142 eelf_i386_be.c:141
#: eelf_i386_fbsd.c:142 eelf_i386_haiku.c:142 eelf_i386_ldso.c:142
#: eelf_i386_sol2.c:274 eelf_i386_vxworks.c:171 eelf_iamcu.c:142
-#: eelf_mipsel_haiku.c:314 eelf_s390.c:118 eelf_x86_64.c:150
-#: eelf_x86_64_cloudabi.c:150 eelf_x86_64_fbsd.c:150 eelf_x86_64_haiku.c:150
-#: eelf_x86_64_sol2.c:282 eh8300elf.c:117 eh8300elf_linux.c:117
+#: eelf_mipsel_haiku.c:314 eelf_s390.c:118 eelf_x86_64.c:182
+#: eelf_x86_64_cloudabi.c:182 eelf_x86_64_fbsd.c:182 eelf_x86_64_haiku.c:182
+#: eelf_x86_64_sol2.c:314 eh8300elf.c:117 eh8300elf_linux.c:117
#: eh8300helf.c:117 eh8300helf_linux.c:117 eh8300hnelf.c:117 eh8300self.c:117
#: eh8300self_linux.c:117 eh8300snelf.c:117 eh8300sxelf.c:117
#: eh8300sxelf_linux.c:117 eh8300sxnelf.c:117 ehppa64linux.c:117 ehppaelf.c:283
@@ -3684,26 +3689,27 @@ msgstr "%X%P: не могу да направим одељак окрајка: %
msgid "%X%P: .eh_frame/.stab edit: %E\n"
msgstr "%X%P: „.eh_frame/.stab“ уређује: %E\n"
-#: eaarch64cloudabi.c:296 eaarch64cloudabib.c:296 eaarch64elf.c:295
-#: eaarch64elf32.c:295 eaarch64elf32b.c:295 eaarch64elfb.c:295
-#: eaarch64fbsd.c:296 eaarch64fbsdb.c:296 eaarch64haiku.c:296
-#: eaarch64linux.c:296 eaarch64linux32.c:296 eaarch64linux32b.c:296
-#: eaarch64linuxb.c:296 eaarch64nto.c:296 earmelf.c:426 earmelf_fbsd.c:426
+#: eaarch64cloudabi.c:301 eaarch64cloudabib.c:301 eaarch64elf.c:301
+#: eaarch64elf32.c:301 eaarch64elf32b.c:301 eaarch64elfb.c:301
+#: eaarch64fbsd.c:301 eaarch64fbsdb.c:301 eaarch64haiku.c:301
+#: eaarch64linux.c:301 eaarch64linux32.c:301 eaarch64linux32b.c:301
+#: eaarch64linuxb.c:301 eaarch64nto.c:301 earmelf.c:426 earmelf_fbsd.c:426
#: earmelf_fuchsia.c:427 earmelf_haiku.c:427 earmelf_linux.c:427
#: earmelf_linux_eabi.c:427 earmelf_linux_fdpiceabi.c:427 earmelf_nacl.c:427
#: earmelf_nbsd.c:426 earmelf_phoenix.c:427 earmelf_vxworks.c:426
#: earmelfb.c:426 earmelfb_fbsd.c:426 earmelfb_fuchsia.c:427
#: earmelfb_linux.c:427 earmelfb_linux_eabi.c:427
#: earmelfb_linux_fdpiceabi.c:427 earmelfb_nacl.c:427 earmelfb_nbsd.c:426
-#: earmnto.c:426 ecskyelf.c:263 ecskyelf_linux.c:263
+#: earmnto.c:426 ecskyelf.c:263 ecskyelf_linux.c:263 eelf32kvx.c:257
+#: eelf64kvx.c:257 eelf64kvx_linux.c:255
msgid "%X%P: could not compute sections lists for stub generation: %E\n"
msgstr "%X%P: не могу да израчунам ÑпиÑкове одељака за Ñтварање окрајка: %E\n"
-#: eaarch64cloudabi.c:311 eaarch64cloudabib.c:311 eaarch64elf.c:310
-#: eaarch64elf32.c:310 eaarch64elf32b.c:310 eaarch64elfb.c:310
-#: eaarch64fbsd.c:311 eaarch64fbsdb.c:311 eaarch64haiku.c:311
-#: eaarch64linux.c:311 eaarch64linux32.c:311 eaarch64linux32b.c:311
-#: eaarch64linuxb.c:311 eaarch64nto.c:311 earmelf.c:441 earmelf_fbsd.c:441
+#: eaarch64cloudabi.c:316 eaarch64cloudabib.c:316 eaarch64elf.c:316
+#: eaarch64elf32.c:316 eaarch64elf32b.c:316 eaarch64elfb.c:316
+#: eaarch64fbsd.c:316 eaarch64fbsdb.c:316 eaarch64haiku.c:316
+#: eaarch64linux.c:316 eaarch64linux32.c:316 eaarch64linux32b.c:316
+#: eaarch64linuxb.c:316 eaarch64nto.c:316 earmelf.c:441 earmelf_fbsd.c:441
#: earmelf_fuchsia.c:442 earmelf_haiku.c:442 earmelf_linux.c:442
#: earmelf_linux_eabi.c:442 earmelf_linux_fdpiceabi.c:442 earmelf_nacl.c:442
#: earmelf_nbsd.c:441 earmelf_phoenix.c:442 earmelf_vxworks.c:441
@@ -3731,12 +3737,12 @@ msgstr "%X%P: не могу да израчунам ÑпиÑкове одељаÐ
msgid "%X%P: can not size stub section: %E\n"
msgstr "%X%P: не могу да одрадим величину одељка окрајка: %E\n"
-#: eaarch64cloudabi.c:330 eaarch64cloudabib.c:330 eaarch64elf.c:329
-#: eaarch64elf32.c:329 eaarch64elf32b.c:329 eaarch64elfb.c:329
-#: eaarch64fbsd.c:330 eaarch64fbsdb.c:330 eaarch64haiku.c:330
-#: eaarch64linux.c:330 eaarch64linux32.c:330 eaarch64linux32b.c:330
-#: eaarch64linuxb.c:330 eaarch64nto.c:330 eaix5ppc.c:1137 eaix5rs6.c:1137
-#: eaixppc.c:1137 eaixrs6.c:1137 earmelf.c:475 earmelf_fbsd.c:475
+#: eaarch64cloudabi.c:335 eaarch64cloudabib.c:335 eaarch64elf.c:335
+#: eaarch64elf32.c:335 eaarch64elf32b.c:335 eaarch64elfb.c:335
+#: eaarch64fbsd.c:335 eaarch64fbsdb.c:335 eaarch64haiku.c:335
+#: eaarch64linux.c:335 eaarch64linux32.c:335 eaarch64linux32b.c:335
+#: eaarch64linuxb.c:335 eaarch64nto.c:335 eaix5ppc.c:1136 eaix5rs6.c:1136
+#: eaixppc.c:1136 eaixrs6.c:1136 earmelf.c:475 earmelf_fbsd.c:475
#: earmelf_fuchsia.c:476 earmelf_haiku.c:476 earmelf_linux.c:476
#: earmelf_linux_eabi.c:476 earmelf_linux_fdpiceabi.c:476 earmelf_nacl.c:476
#: earmelf_nbsd.c:475 earmelf_phoenix.c:476 earmelf_vxworks.c:475
@@ -3747,10 +3753,11 @@ msgstr "%X%P: не могу да одрадим величину одељка о
#: eavr35.c:205 eavr4.c:205 eavr5.c:205 eavr51.c:205 eavr6.c:205 eavrtiny.c:205
#: eavrxmega1.c:205 eavrxmega2.c:205 eavrxmega2_flmap.c:205 eavrxmega3.c:205
#: eavrxmega4.c:205 eavrxmega4_flmap.c:205 eavrxmega5.c:205 eavrxmega6.c:205
-#: eavrxmega7.c:205 eelf32metag.c:303 eelf64lppc.c:634 eelf64lppc_fbsd.c:634
-#: eelf64ppc.c:634 eelf64ppc_fbsd.c:634 ehppaelf.c:335 ehppalinux.c:335
-#: ehppanbsd.c:335 ehppaobsd.c:335 em68hc11elf.c:324 em68hc11elfb.c:324
-#: em68hc12elf.c:324 em68hc12elfb.c:324 eppcmacos.c:1137
+#: eavrxmega7.c:205 eelf32kvx.c:291 eelf32metag.c:303 eelf64kvx.c:291
+#: eelf64kvx_linux.c:289 eelf64lppc.c:634 eelf64lppc_fbsd.c:634 eelf64ppc.c:634
+#: eelf64ppc_fbsd.c:634 ehppaelf.c:335 ehppalinux.c:335 ehppanbsd.c:335
+#: ehppaobsd.c:335 em68hc11elf.c:324 em68hc11elfb.c:324 em68hc12elf.c:324
+#: em68hc12elfb.c:324 eppcmacos.c:1136
msgid "%X%P: can not build stubs: %E\n"
msgstr "%X%P: не могу да изградим окрајке: %E\n"
@@ -3783,11 +3790,11 @@ msgstr "%X%P: не могу да изградим окрајке: %E\n"
#. These will only be created if the output format is an arm format,
#. hence we do not support linking and changing output formats at the
#. same time. Use a link followed by objcopy to change output formats.
-#: eaarch64cloudabi.c:348 eaarch64cloudabib.c:348 eaarch64elf.c:347
-#: eaarch64elf32.c:347 eaarch64elf32b.c:347 eaarch64elfb.c:347
-#: eaarch64fbsd.c:348 eaarch64fbsdb.c:348 eaarch64haiku.c:348
-#: eaarch64linux.c:348 eaarch64linux32.c:348 eaarch64linux32b.c:348
-#: eaarch64linuxb.c:348 eaarch64nto.c:348 earm_wince_pe.c:1523 earmelf.c:544
+#: eaarch64cloudabi.c:353 eaarch64cloudabib.c:353 eaarch64elf.c:353
+#: eaarch64elf32.c:353 eaarch64elf32b.c:353 eaarch64elfb.c:353
+#: eaarch64fbsd.c:353 eaarch64fbsdb.c:353 eaarch64haiku.c:353
+#: eaarch64linux.c:353 eaarch64linux32.c:353 eaarch64linux32b.c:353
+#: eaarch64linuxb.c:353 eaarch64nto.c:353 earm_wince_pe.c:1523 earmelf.c:544
#: earmelf_fbsd.c:544 earmelf_fuchsia.c:545 earmelf_haiku.c:545
#: earmelf_linux.c:545 earmelf_linux_eabi.c:545 earmelf_linux_fdpiceabi.c:545
#: earmelf_nacl.c:545 earmelf_nbsd.c:544 earmelf_phoenix.c:545
@@ -3806,27 +3813,30 @@ msgstr "%X%P: не могу да изградим окрајке: %E\n"
#: ei386pe_posix.c:1523 emcorepe.c:1523 ends32belf.c:77 ends32belf16m.c:77
#: ends32belf_linux.c:77 ends32elf.c:77 ends32elf16m.c:77 ends32elf_linux.c:77
#: escore3_elf.c:82 escore7_elf.c:82 eshpe.c:1523 ev850.c:94 ev850_rh850.c:94
-msgid "%F%P: error: cannot change output format whilst linking %s binaries\n"
-msgstr "%F%P: грешка: не могу да изменим излазни Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾Ðº повезујем „%s“ извршне\n"
-
-#: eaarch64cloudabi.c:397 eaarch64cloudabi.c:457 eaarch64cloudabib.c:397
-#: eaarch64cloudabib.c:457 eaarch64elf.c:396 eaarch64elf.c:456
-#: eaarch64elf32.c:396 eaarch64elf32.c:456 eaarch64elf32b.c:396
-#: eaarch64elf32b.c:456 eaarch64elfb.c:396 eaarch64elfb.c:456
-#: eaarch64fbsd.c:397 eaarch64fbsd.c:457 eaarch64fbsdb.c:397
-#: eaarch64fbsdb.c:457 eaarch64haiku.c:397 eaarch64haiku.c:457
-#: eaarch64linux.c:397 eaarch64linux.c:457 eaarch64linux32.c:397
-#: eaarch64linux32.c:457 eaarch64linux32b.c:397 eaarch64linux32b.c:457
-#: eaarch64linuxb.c:397 eaarch64linuxb.c:457 eaarch64nto.c:397
-#: eaarch64nto.c:457
+msgid "%P: error: cannot change output format whilst linking %s binaries\n"
+msgstr "%P: грешка: не могу да изменим излазни Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾Ðº повезујем „%s“ извршне\n"
+
+#: eaarch64cloudabi.c:403 eaarch64cloudabi.c:463 eaarch64cloudabi.c:487
+#: eaarch64cloudabib.c:403 eaarch64cloudabib.c:463 eaarch64cloudabib.c:487
+#: eaarch64elf.c:403 eaarch64elf.c:463 eaarch64elf.c:487 eaarch64elf32.c:403
+#: eaarch64elf32.c:463 eaarch64elf32.c:487 eaarch64elf32b.c:403
+#: eaarch64elf32b.c:463 eaarch64elf32b.c:487 eaarch64elfb.c:403
+#: eaarch64elfb.c:463 eaarch64elfb.c:487 eaarch64fbsd.c:403 eaarch64fbsd.c:463
+#: eaarch64fbsd.c:487 eaarch64fbsdb.c:403 eaarch64fbsdb.c:463
+#: eaarch64fbsdb.c:487 eaarch64haiku.c:403 eaarch64haiku.c:463
+#: eaarch64haiku.c:487 eaarch64linux.c:403 eaarch64linux.c:463
+#: eaarch64linux.c:487 eaarch64linux32.c:403 eaarch64linux32.c:463
+#: eaarch64linux32.c:487 eaarch64linux32b.c:403 eaarch64linux32b.c:463
+#: eaarch64linux32b.c:487 eaarch64linuxb.c:403 eaarch64linuxb.c:463
+#: eaarch64linuxb.c:487 eaarch64nto.c:403 eaarch64nto.c:463 eaarch64nto.c:487
msgid "%X%P: error: unrecognized value '-z %s'\n"
msgstr "%X%P: грешка: непозната вредноÑÑ‚ „-z %s“\n"
-#: eaarch64cloudabi.c:713 eaarch64cloudabib.c:713 eaarch64elf.c:712
-#: eaarch64elf32.c:712 eaarch64elf32b.c:712 eaarch64elfb.c:712
-#: eaarch64fbsd.c:713 eaarch64fbsdb.c:713 eaarch64haiku.c:713
-#: eaarch64linux.c:713 eaarch64linux32.c:713 eaarch64linux32b.c:713
-#: eaarch64linuxb.c:713 eaarch64nto.c:875 earcelf.c:233 earclinux.c:324
+#: eaarch64cloudabi.c:744 eaarch64cloudabib.c:744 eaarch64elf.c:744
+#: eaarch64elf32.c:744 eaarch64elf32b.c:744 eaarch64elfb.c:744
+#: eaarch64fbsd.c:744 eaarch64fbsdb.c:744 eaarch64haiku.c:744
+#: eaarch64linux.c:744 eaarch64linux32.c:744 eaarch64linux32b.c:744
+#: eaarch64linuxb.c:744 eaarch64nto.c:906 earcelf.c:233 earclinux.c:324
#: earclinux_nps.c:324 earcv2elf.c:212 earcv2elfx.c:212 earmelf.c:848
#: earmelf_fbsd.c:848 earmelf_fuchsia.c:849 earmelf_haiku.c:849
#: earmelf_linux.c:849 earmelf_linux_eabi.c:849 earmelf_linux_fdpiceabi.c:849
@@ -3841,16 +3851,16 @@ msgstr "%X%P: грешка: непозната вредноÑÑ‚ „-z %s“\n"
#: eavrxmega7.c:428 ecriself.c:237 ecrislinux.c:284 ecskyelf.c:476
#: ecskyelf_linux.c:563 ed10velf.c:212 eelf32_sparc.c:324
#: eelf32_sparc_sol2.c:456 eelf32_sparc_vxworks.c:356 eelf32_spu.c:796
-#: eelf32_tic6x_be.c:415 eelf32_tic6x_elf_be.c:415 eelf32_tic6x_elf_le.c:415
-#: eelf32_tic6x_le.c:415 eelf32_tic6x_linux_be.c:415
-#: eelf32_tic6x_linux_le.c:415 eelf32_x86_64.c:8364 eelf32am33lin.c:283
+#: eelf32_tic6x_be.c:413 eelf32_tic6x_elf_be.c:413 eelf32_tic6x_elf_le.c:413
+#: eelf32_tic6x_le.c:413 eelf32_tic6x_linux_be.c:413
+#: eelf32_tic6x_linux_le.c:413 eelf32_x86_64.c:8396 eelf32am33lin.c:283
#: eelf32b4300.c:528 eelf32bfin.c:297 eelf32bfinfd.c:337 eelf32bmip.c:528
#: eelf32bmipn32.c:542 eelf32briscv.c:402 eelf32briscv_ilp32.c:402
#: eelf32briscv_ilp32f.c:402 eelf32bsmip.c:542 eelf32btsmip.c:528
#: eelf32btsmip_fbsd.c:528 eelf32btsmipn32.c:528 eelf32btsmipn32_fbsd.c:528
#: eelf32cr16.c:362 eelf32crx.c:249 eelf32ebmip.c:528 eelf32ebmipvxworks.c:559
#: eelf32elmip.c:528 eelf32elmipvxworks.c:559 eelf32epiphany.c:237
-#: eelf32epiphany_4x4.c:214 eelf32frvfd.c:323 eelf32ip2k.c:237 eelf32kvx.c:549
+#: eelf32epiphany_4x4.c:214 eelf32frvfd.c:323 eelf32ip2k.c:237 eelf32kvx.c:548
#: eelf32l4300.c:528 eelf32lm32.c:237 eelf32lm32fd.c:323 eelf32lmip.c:528
#: eelf32loongarch.c:380 eelf32lppc.c:553 eelf32lppclinux.c:553
#: eelf32lppcnto.c:553 eelf32lppcsim.c:553 eelf32lr5900.c:482
@@ -3866,22 +3876,22 @@ msgstr "%X%P: грешка: непозната вредноÑÑ‚ „-z %s“\n"
#: eelf32rl78.c:237 eelf32rx.c:259 eelf32rx_linux.c:250 eelf32tilegx.c:324
#: eelf32tilegx_be.c:324 eelf32tilepro.c:324 eelf32vax.c:283 eelf32visium.c:212
#: eelf32xstormy16.c:223 eelf32xtensa.c:2227 eelf32z80.c:239 eelf64_aix.c:283
-#: eelf64_ia64.c:352 eelf64_ia64_fbsd.c:352 eelf64_s390.c:421
+#: eelf64_ia64.c:352 eelf64_ia64_fbsd.c:352 eelf64_s390.c:426
#: eelf64_sparc.c:324 eelf64_sparc_fbsd.c:324 eelf64_sparc_sol2.c:456
-#: eelf64alpha.c:412 eelf64alpha_fbsd.c:412 eelf64alpha_nbsd.c:412
+#: eelf64alpha.c:388 eelf64alpha_fbsd.c:388 eelf64alpha_nbsd.c:388
#: eelf64bmip.c:542 eelf64bpf.c:212 eelf64briscv.c:402 eelf64briscv_lp64.c:402
#: eelf64briscv_lp64f.c:402 eelf64btsmip.c:528 eelf64btsmip_fbsd.c:528
-#: eelf64hppa.c:233 eelf64kvx.c:549 eelf64kvx_linux.c:586 eelf64loongarch.c:380
-#: eelf64lppc.c:988 eelf64lppc_fbsd.c:988 eelf64lriscv.c:402
+#: eelf64hppa.c:233 eelf64kvx.c:548 eelf64kvx_linux.c:586 eelf64loongarch.c:380
+#: eelf64lppc.c:989 eelf64lppc_fbsd.c:989 eelf64lriscv.c:402
#: eelf64lriscv_lp64.c:402 eelf64lriscv_lp64f.c:402 eelf64ltsmip.c:528
-#: eelf64ltsmip_fbsd.c:528 eelf64mmix.c:394 eelf64ppc.c:988
-#: eelf64ppc_fbsd.c:988 eelf64rdos.c:345 eelf64tilegx.c:324
+#: eelf64ltsmip_fbsd.c:528 eelf64mmix.c:391 eelf64ppc.c:989
+#: eelf64ppc_fbsd.c:989 eelf64rdos.c:377 eelf64tilegx.c:324
#: eelf64tilegx_be.c:324 eelf_i386.c:7822 eelf_i386_be.c:307
#: eelf_i386_fbsd.c:354 eelf_i386_haiku.c:354 eelf_i386_ldso.c:314
#: eelf_i386_sol2.c:486 eelf_i386_vxworks.c:380 eelf_iamcu.c:354
-#: eelf_mipsel_haiku.c:528 eelf_s390.c:324 eelf_x86_64.c:8364
-#: eelf_x86_64_cloudabi.c:362 eelf_x86_64_fbsd.c:362 eelf_x86_64_haiku.c:362
-#: eelf_x86_64_sol2.c:494 eh8300elf.c:237 eh8300elf_linux.c:237
+#: eelf_mipsel_haiku.c:528 eelf_s390.c:324 eelf_x86_64.c:8396
+#: eelf_x86_64_cloudabi.c:394 eelf_x86_64_fbsd.c:394 eelf_x86_64_haiku.c:394
+#: eelf_x86_64_sol2.c:526 eh8300elf.c:237 eh8300elf_linux.c:237
#: eh8300helf.c:237 eh8300helf_linux.c:237 eh8300hnelf.c:237 eh8300self.c:237
#: eh8300self_linux.c:237 eh8300snelf.c:237 eh8300sxelf.c:237
#: eh8300sxelf_linux.c:237 eh8300sxnelf.c:237 ehppa64linux.c:283 ehppaelf.c:491
@@ -3896,14 +3906,14 @@ msgstr "%X%P: грешка: непозната вредноÑÑ‚ „-z %s“\n"
#: eshelf_vxworks.c:315 eshlelf.c:283 eshlelf_fd.c:324 eshlelf_linux.c:324
#: eshlelf_nbsd.c:283 eshlelf_nto.c:283 eshlelf_vxworks.c:315 ev850.c:259
#: ev850_rh850.c:259
-msgid "%F%P: --compress-debug-sections=zstd: ld is not built with zstd support\n"
-msgstr "%F%P: --compress-debug-sections=zstd: „ld“ није изграђен Ñа „zstd“ подршком\n"
-
-#: eaarch64cloudabi.c:718 eaarch64cloudabib.c:718 eaarch64elf.c:717
-#: eaarch64elf32.c:717 eaarch64elf32b.c:717 eaarch64elfb.c:717
-#: eaarch64fbsd.c:718 eaarch64fbsdb.c:718 eaarch64haiku.c:718
-#: eaarch64linux.c:718 eaarch64linux32.c:718 eaarch64linux32b.c:718
-#: eaarch64linuxb.c:718 eaarch64nto.c:880 earcelf.c:238 earclinux.c:329
+msgid "%P: --compress-debug-sections=zstd: ld is not built with zstd support\n"
+msgstr "%P: --compress-debug-sections=zstd: „ld“ није изграђен Ñа „zstd“ подршком\n"
+
+#: eaarch64cloudabi.c:749 eaarch64cloudabib.c:749 eaarch64elf.c:749
+#: eaarch64elf32.c:749 eaarch64elf32b.c:749 eaarch64elfb.c:749
+#: eaarch64fbsd.c:749 eaarch64fbsdb.c:749 eaarch64haiku.c:749
+#: eaarch64linux.c:749 eaarch64linux32.c:749 eaarch64linux32b.c:749
+#: eaarch64linuxb.c:749 eaarch64nto.c:911 earcelf.c:238 earclinux.c:329
#: earclinux_nps.c:329 earcv2elf.c:217 earcv2elfx.c:217 earmelf.c:853
#: earmelf_fbsd.c:853 earmelf_fuchsia.c:854 earmelf_haiku.c:854
#: earmelf_linux.c:854 earmelf_linux_eabi.c:854 earmelf_linux_fdpiceabi.c:854
@@ -3918,16 +3928,16 @@ msgstr "%F%P: --compress-debug-sections=zstd: „ld“ није изграђен
#: eavrxmega7.c:433 ecriself.c:242 ecrislinux.c:289 ecskyelf.c:481
#: ecskyelf_linux.c:568 ed10velf.c:217 eelf32_sparc.c:329
#: eelf32_sparc_sol2.c:461 eelf32_sparc_vxworks.c:361 eelf32_spu.c:801
-#: eelf32_tic6x_be.c:420 eelf32_tic6x_elf_be.c:420 eelf32_tic6x_elf_le.c:420
-#: eelf32_tic6x_le.c:420 eelf32_tic6x_linux_be.c:420
-#: eelf32_tic6x_linux_le.c:420 eelf32_x86_64.c:8369 eelf32am33lin.c:288
+#: eelf32_tic6x_be.c:418 eelf32_tic6x_elf_be.c:418 eelf32_tic6x_elf_le.c:418
+#: eelf32_tic6x_le.c:418 eelf32_tic6x_linux_be.c:418
+#: eelf32_tic6x_linux_le.c:418 eelf32_x86_64.c:8401 eelf32am33lin.c:288
#: eelf32b4300.c:533 eelf32bfin.c:302 eelf32bfinfd.c:342 eelf32bmip.c:533
#: eelf32bmipn32.c:547 eelf32briscv.c:407 eelf32briscv_ilp32.c:407
#: eelf32briscv_ilp32f.c:407 eelf32bsmip.c:547 eelf32btsmip.c:533
#: eelf32btsmip_fbsd.c:533 eelf32btsmipn32.c:533 eelf32btsmipn32_fbsd.c:533
#: eelf32cr16.c:367 eelf32crx.c:254 eelf32ebmip.c:533 eelf32ebmipvxworks.c:564
#: eelf32elmip.c:533 eelf32elmipvxworks.c:564 eelf32epiphany.c:242
-#: eelf32epiphany_4x4.c:219 eelf32frvfd.c:328 eelf32ip2k.c:242 eelf32kvx.c:554
+#: eelf32epiphany_4x4.c:219 eelf32frvfd.c:328 eelf32ip2k.c:242 eelf32kvx.c:553
#: eelf32l4300.c:533 eelf32lm32.c:242 eelf32lm32fd.c:328 eelf32lmip.c:533
#: eelf32loongarch.c:385 eelf32lppc.c:558 eelf32lppclinux.c:558
#: eelf32lppcnto.c:558 eelf32lppcsim.c:558 eelf32lr5900.c:487
@@ -3943,22 +3953,22 @@ msgstr "%F%P: --compress-debug-sections=zstd: „ld“ није изграђен
#: eelf32rl78.c:242 eelf32rx.c:264 eelf32rx_linux.c:255 eelf32tilegx.c:329
#: eelf32tilegx_be.c:329 eelf32tilepro.c:329 eelf32vax.c:288 eelf32visium.c:217
#: eelf32xstormy16.c:228 eelf32xtensa.c:2232 eelf32z80.c:244 eelf64_aix.c:288
-#: eelf64_ia64.c:357 eelf64_ia64_fbsd.c:357 eelf64_s390.c:426
+#: eelf64_ia64.c:357 eelf64_ia64_fbsd.c:357 eelf64_s390.c:431
#: eelf64_sparc.c:329 eelf64_sparc_fbsd.c:329 eelf64_sparc_sol2.c:461
-#: eelf64alpha.c:417 eelf64alpha_fbsd.c:417 eelf64alpha_nbsd.c:417
+#: eelf64alpha.c:393 eelf64alpha_fbsd.c:393 eelf64alpha_nbsd.c:393
#: eelf64bmip.c:547 eelf64bpf.c:217 eelf64briscv.c:407 eelf64briscv_lp64.c:407
#: eelf64briscv_lp64f.c:407 eelf64btsmip.c:533 eelf64btsmip_fbsd.c:533
-#: eelf64hppa.c:238 eelf64kvx.c:554 eelf64kvx_linux.c:591 eelf64loongarch.c:385
-#: eelf64lppc.c:993 eelf64lppc_fbsd.c:993 eelf64lriscv.c:407
+#: eelf64hppa.c:238 eelf64kvx.c:553 eelf64kvx_linux.c:591 eelf64loongarch.c:385
+#: eelf64lppc.c:994 eelf64lppc_fbsd.c:994 eelf64lriscv.c:407
#: eelf64lriscv_lp64.c:407 eelf64lriscv_lp64f.c:407 eelf64ltsmip.c:533
-#: eelf64ltsmip_fbsd.c:533 eelf64mmix.c:399 eelf64ppc.c:993
-#: eelf64ppc_fbsd.c:993 eelf64rdos.c:350 eelf64tilegx.c:329
+#: eelf64ltsmip_fbsd.c:533 eelf64mmix.c:396 eelf64ppc.c:994
+#: eelf64ppc_fbsd.c:994 eelf64rdos.c:382 eelf64tilegx.c:329
#: eelf64tilegx_be.c:329 eelf_i386.c:7827 eelf_i386_be.c:312
#: eelf_i386_fbsd.c:359 eelf_i386_haiku.c:359 eelf_i386_ldso.c:319
#: eelf_i386_sol2.c:491 eelf_i386_vxworks.c:385 eelf_iamcu.c:359
-#: eelf_mipsel_haiku.c:533 eelf_s390.c:329 eelf_x86_64.c:8369
-#: eelf_x86_64_cloudabi.c:367 eelf_x86_64_fbsd.c:367 eelf_x86_64_haiku.c:367
-#: eelf_x86_64_sol2.c:499 eh8300elf.c:242 eh8300elf_linux.c:242
+#: eelf_mipsel_haiku.c:533 eelf_s390.c:329 eelf_x86_64.c:8401
+#: eelf_x86_64_cloudabi.c:399 eelf_x86_64_fbsd.c:399 eelf_x86_64_haiku.c:399
+#: eelf_x86_64_sol2.c:531 eh8300elf.c:242 eh8300elf_linux.c:242
#: eh8300helf.c:242 eh8300helf_linux.c:242 eh8300hnelf.c:242 eh8300self.c:242
#: eh8300self_linux.c:242 eh8300snelf.c:242 eh8300sxelf.c:242
#: eh8300sxelf_linux.c:242 eh8300sxnelf.c:242 ehppa64linux.c:288 ehppaelf.c:496
@@ -3973,14 +3983,14 @@ msgstr "%F%P: --compress-debug-sections=zstd: „ld“ није изграђен
#: eshelf_vxworks.c:320 eshlelf.c:288 eshlelf_fd.c:329 eshlelf_linux.c:329
#: eshlelf_nbsd.c:288 eshlelf_nto.c:288 eshlelf_vxworks.c:320 ev850.c:264
#: ev850_rh850.c:264
-msgid "%F%P: invalid --compress-debug-sections option: `%s'\n"
-msgstr "%F%P: неиÑправна „--compress-debug-sections“ одељка: %s\n"
-
-#: eaarch64cloudabi.c:776 eaarch64cloudabib.c:776 eaarch64elf.c:775
-#: eaarch64elf32.c:775 eaarch64elf32b.c:775 eaarch64elfb.c:775
-#: eaarch64fbsd.c:776 eaarch64fbsdb.c:776 eaarch64haiku.c:776
-#: eaarch64linux.c:776 eaarch64linux32.c:776 eaarch64linux32b.c:776
-#: eaarch64linuxb.c:776 eaarch64nto.c:938 earcelf.c:296 earclinux.c:387
+msgid "%P: invalid --compress-debug-sections option: `%s'\n"
+msgstr "%P: неиÑправна „--compress-debug-sections“ одељка: %s\n"
+
+#: eaarch64cloudabi.c:807 eaarch64cloudabib.c:807 eaarch64elf.c:807
+#: eaarch64elf32.c:807 eaarch64elf32b.c:807 eaarch64elfb.c:807
+#: eaarch64fbsd.c:807 eaarch64fbsdb.c:807 eaarch64haiku.c:807
+#: eaarch64linux.c:807 eaarch64linux32.c:807 eaarch64linux32b.c:807
+#: eaarch64linuxb.c:807 eaarch64nto.c:969 earcelf.c:296 earclinux.c:387
#: earclinux_nps.c:387 earmelf.c:911 earmelf_fbsd.c:911 earmelf_fuchsia.c:912
#: earmelf_haiku.c:912 earmelf_linux.c:912 earmelf_linux_eabi.c:912
#: earmelf_linux_fdpiceabi.c:912 earmelf_nacl.c:912 earmelf_nbsd.c:911
@@ -3989,15 +3999,15 @@ msgstr "%F%P: неиÑправна „--compress-debug-sections“ одељка:
#: earmelfb_linux_eabi.c:912 earmelfb_linux_fdpiceabi.c:912 earmelfb_nacl.c:912
#: earmelfb_nbsd.c:911 earmnto.c:871 ecrislinux.c:347 ecskyelf_linux.c:626
#: eelf32_sparc.c:387 eelf32_sparc_sol2.c:519 eelf32_sparc_vxworks.c:419
-#: eelf32_tic6x_be.c:478 eelf32_tic6x_elf_be.c:478 eelf32_tic6x_elf_le.c:478
-#: eelf32_tic6x_le.c:478 eelf32_tic6x_linux_be.c:478
-#: eelf32_tic6x_linux_le.c:478 eelf32_x86_64.c:8427 eelf32am33lin.c:346
+#: eelf32_tic6x_be.c:476 eelf32_tic6x_elf_be.c:476 eelf32_tic6x_elf_le.c:476
+#: eelf32_tic6x_le.c:476 eelf32_tic6x_linux_be.c:476
+#: eelf32_tic6x_linux_le.c:476 eelf32_x86_64.c:8459 eelf32am33lin.c:346
#: eelf32b4300.c:591 eelf32bfin.c:360 eelf32bfinfd.c:400 eelf32bmip.c:591
#: eelf32bmipn32.c:605 eelf32briscv.c:465 eelf32briscv_ilp32.c:465
#: eelf32briscv_ilp32f.c:465 eelf32bsmip.c:605 eelf32btsmip.c:591
#: eelf32btsmip_fbsd.c:591 eelf32btsmipn32.c:591 eelf32btsmipn32_fbsd.c:591
#: eelf32ebmip.c:591 eelf32ebmipvxworks.c:622 eelf32elmip.c:591
-#: eelf32elmipvxworks.c:622 eelf32frvfd.c:386 eelf32kvx.c:612 eelf32l4300.c:591
+#: eelf32elmipvxworks.c:622 eelf32frvfd.c:386 eelf32kvx.c:611 eelf32l4300.c:591
#: eelf32lm32fd.c:386 eelf32lmip.c:591 eelf32loongarch.c:443 eelf32lppc.c:616
#: eelf32lppclinux.c:616 eelf32lppcnto.c:616 eelf32lppcsim.c:616
#: eelf32lriscv.c:465 eelf32lriscv_ilp32.c:465 eelf32lriscv_ilp32f.c:465
@@ -4009,21 +4019,21 @@ msgstr "%F%P: неиÑправна „--compress-debug-sections“ одељка:
#: eelf32ppcvxworks.c:586 eelf32ppcwindiss.c:616 eelf32tilegx.c:387
#: eelf32tilegx_be.c:387 eelf32tilepro.c:387 eelf32vax.c:346
#: eelf32xtensa.c:2290 eelf64_aix.c:346 eelf64_ia64.c:415
-#: eelf64_ia64_fbsd.c:415 eelf64_s390.c:484 eelf64_sparc.c:387
-#: eelf64_sparc_fbsd.c:387 eelf64_sparc_sol2.c:519 eelf64alpha.c:475
-#: eelf64alpha_fbsd.c:475 eelf64alpha_nbsd.c:475 eelf64bmip.c:605
+#: eelf64_ia64_fbsd.c:415 eelf64_s390.c:489 eelf64_sparc.c:387
+#: eelf64_sparc_fbsd.c:387 eelf64_sparc_sol2.c:519 eelf64alpha.c:451
+#: eelf64alpha_fbsd.c:451 eelf64alpha_nbsd.c:451 eelf64bmip.c:605
#: eelf64briscv.c:465 eelf64briscv_lp64.c:465 eelf64briscv_lp64f.c:465
-#: eelf64btsmip.c:591 eelf64btsmip_fbsd.c:591 eelf64hppa.c:296 eelf64kvx.c:612
-#: eelf64kvx_linux.c:649 eelf64loongarch.c:443 eelf64lppc.c:1051
-#: eelf64lppc_fbsd.c:1051 eelf64lriscv.c:465 eelf64lriscv_lp64.c:465
+#: eelf64btsmip.c:591 eelf64btsmip_fbsd.c:591 eelf64hppa.c:296 eelf64kvx.c:611
+#: eelf64kvx_linux.c:649 eelf64loongarch.c:443 eelf64lppc.c:1052
+#: eelf64lppc_fbsd.c:1052 eelf64lriscv.c:465 eelf64lriscv_lp64.c:465
#: eelf64lriscv_lp64f.c:465 eelf64ltsmip.c:591 eelf64ltsmip_fbsd.c:591
-#: eelf64mmix.c:457 eelf64ppc.c:1051 eelf64ppc_fbsd.c:1051 eelf64rdos.c:408
+#: eelf64mmix.c:454 eelf64ppc.c:1052 eelf64ppc_fbsd.c:1052 eelf64rdos.c:440
#: eelf64tilegx.c:387 eelf64tilegx_be.c:387 eelf_i386.c:7885 eelf_i386_be.c:370
#: eelf_i386_fbsd.c:417 eelf_i386_haiku.c:417 eelf_i386_ldso.c:377
#: eelf_i386_sol2.c:549 eelf_i386_vxworks.c:443 eelf_iamcu.c:417
-#: eelf_mipsel_haiku.c:591 eelf_s390.c:387 eelf_x86_64.c:8427
-#: eelf_x86_64_cloudabi.c:425 eelf_x86_64_fbsd.c:425 eelf_x86_64_haiku.c:425
-#: eelf_x86_64_sol2.c:557 ehppa64linux.c:346 ehppalinux.c:666 ehppanbsd.c:666
+#: eelf_mipsel_haiku.c:591 eelf_s390.c:387 eelf_x86_64.c:8459
+#: eelf_x86_64_cloudabi.c:457 eelf_x86_64_fbsd.c:457 eelf_x86_64_haiku.c:457
+#: eelf_x86_64_sol2.c:589 ehppa64linux.c:346 ehppalinux.c:666 ehppanbsd.c:666
#: ehppaobsd.c:666 ei386lynx.c:361 ei386moss.c:361 ei386nto.c:361
#: em32relf_linux.c:386 em32rlelf_linux.c:386 em68kelf.c:541 em68kelfnbsd.c:541
#: emn10300.c:346 ends32belf_linux.c:432 ends32elf_linux.c:432
@@ -4031,14 +4041,14 @@ msgstr "%F%P: неиÑправна „--compress-debug-sections“ одељка:
#: eshelf_linux.c:387 eshelf_nbsd.c:346 eshelf_nto.c:346 eshelf_uclinux.c:346
#: eshelf_vxworks.c:378 eshlelf.c:346 eshlelf_fd.c:387 eshlelf_linux.c:387
#: eshlelf_nbsd.c:346 eshlelf_nto.c:346 eshlelf_vxworks.c:378
-msgid "%F%P: invalid hash style `%s'\n"
-msgstr "%F%P: неиÑправан Ñтил хеша „%s“\n"
-
-#: eaarch64cloudabi.c:793 eaarch64cloudabib.c:793 eaarch64elf.c:792
-#: eaarch64elf32.c:792 eaarch64elf32b.c:792 eaarch64elfb.c:792
-#: eaarch64fbsd.c:793 eaarch64fbsdb.c:793 eaarch64haiku.c:793
-#: eaarch64linux.c:793 eaarch64linux32.c:793 eaarch64linux32b.c:793
-#: eaarch64linuxb.c:793 eaarch64nto.c:955 earcelf.c:313 earclinux.c:404
+msgid "%P: invalid hash style `%s'\n"
+msgstr "%P: неиÑправан Ñтил хеша „%s“\n"
+
+#: eaarch64cloudabi.c:824 eaarch64cloudabib.c:824 eaarch64elf.c:824
+#: eaarch64elf32.c:824 eaarch64elf32b.c:824 eaarch64elfb.c:824
+#: eaarch64fbsd.c:824 eaarch64fbsdb.c:824 eaarch64haiku.c:824
+#: eaarch64linux.c:824 eaarch64linux32.c:824 eaarch64linux32b.c:824
+#: eaarch64linuxb.c:824 eaarch64nto.c:986 earcelf.c:313 earclinux.c:404
#: earclinux_nps.c:404 earcv2elf.c:241 earcv2elfx.c:241 earmelf.c:928
#: earmelf_fbsd.c:928 earmelf_fuchsia.c:929 earmelf_haiku.c:929
#: earmelf_linux.c:929 earmelf_linux_eabi.c:929 earmelf_linux_fdpiceabi.c:929
@@ -4053,16 +4063,16 @@ msgstr "%F%P: неиÑправан Ñтил хеша „%s“\n"
#: eavrxmega7.c:457 ecriself.c:266 ecrislinux.c:364 ecskyelf.c:505
#: ecskyelf_linux.c:643 ed10velf.c:241 eelf32_sparc.c:404
#: eelf32_sparc_sol2.c:536 eelf32_sparc_vxworks.c:436 eelf32_spu.c:825
-#: eelf32_tic6x_be.c:495 eelf32_tic6x_elf_be.c:495 eelf32_tic6x_elf_le.c:495
-#: eelf32_tic6x_le.c:495 eelf32_tic6x_linux_be.c:495
-#: eelf32_tic6x_linux_le.c:495 eelf32_x86_64.c:8444 eelf32am33lin.c:363
+#: eelf32_tic6x_be.c:493 eelf32_tic6x_elf_be.c:493 eelf32_tic6x_elf_le.c:493
+#: eelf32_tic6x_le.c:493 eelf32_tic6x_linux_be.c:493
+#: eelf32_tic6x_linux_le.c:493 eelf32_x86_64.c:8476 eelf32am33lin.c:363
#: eelf32b4300.c:608 eelf32bfin.c:377 eelf32bfinfd.c:417 eelf32bmip.c:608
#: eelf32bmipn32.c:622 eelf32briscv.c:482 eelf32briscv_ilp32.c:482
#: eelf32briscv_ilp32f.c:482 eelf32bsmip.c:622 eelf32btsmip.c:608
#: eelf32btsmip_fbsd.c:608 eelf32btsmipn32.c:608 eelf32btsmipn32_fbsd.c:608
#: eelf32cr16.c:391 eelf32crx.c:278 eelf32ebmip.c:608 eelf32ebmipvxworks.c:639
#: eelf32elmip.c:608 eelf32elmipvxworks.c:639 eelf32epiphany.c:266
-#: eelf32epiphany_4x4.c:243 eelf32frvfd.c:403 eelf32ip2k.c:266 eelf32kvx.c:629
+#: eelf32epiphany_4x4.c:243 eelf32frvfd.c:403 eelf32ip2k.c:266 eelf32kvx.c:628
#: eelf32l4300.c:608 eelf32lm32.c:266 eelf32lm32fd.c:403 eelf32lmip.c:608
#: eelf32loongarch.c:460 eelf32lppc.c:633 eelf32lppclinux.c:633
#: eelf32lppcnto.c:633 eelf32lppcsim.c:633 eelf32lr5900.c:511
@@ -4078,22 +4088,22 @@ msgstr "%F%P: неиÑправан Ñтил хеша „%s“\n"
#: eelf32rl78.c:266 eelf32rx.c:288 eelf32rx_linux.c:279 eelf32tilegx.c:404
#: eelf32tilegx_be.c:404 eelf32tilepro.c:404 eelf32vax.c:363 eelf32visium.c:241
#: eelf32xstormy16.c:252 eelf32xtensa.c:2307 eelf32z80.c:268 eelf64_aix.c:363
-#: eelf64_ia64.c:432 eelf64_ia64_fbsd.c:432 eelf64_s390.c:501
+#: eelf64_ia64.c:432 eelf64_ia64_fbsd.c:432 eelf64_s390.c:506
#: eelf64_sparc.c:404 eelf64_sparc_fbsd.c:404 eelf64_sparc_sol2.c:536
-#: eelf64alpha.c:492 eelf64alpha_fbsd.c:492 eelf64alpha_nbsd.c:492
+#: eelf64alpha.c:468 eelf64alpha_fbsd.c:468 eelf64alpha_nbsd.c:468
#: eelf64bmip.c:622 eelf64bpf.c:241 eelf64briscv.c:482 eelf64briscv_lp64.c:482
#: eelf64briscv_lp64f.c:482 eelf64btsmip.c:608 eelf64btsmip_fbsd.c:608
-#: eelf64hppa.c:313 eelf64kvx.c:629 eelf64kvx_linux.c:666 eelf64loongarch.c:460
-#: eelf64lppc.c:1068 eelf64lppc_fbsd.c:1068 eelf64lriscv.c:482
+#: eelf64hppa.c:313 eelf64kvx.c:628 eelf64kvx_linux.c:666 eelf64loongarch.c:460
+#: eelf64lppc.c:1069 eelf64lppc_fbsd.c:1069 eelf64lriscv.c:482
#: eelf64lriscv_lp64.c:482 eelf64lriscv_lp64f.c:482 eelf64ltsmip.c:608
-#: eelf64ltsmip_fbsd.c:608 eelf64mmix.c:474 eelf64ppc.c:1068
-#: eelf64ppc_fbsd.c:1068 eelf64rdos.c:425 eelf64tilegx.c:404
+#: eelf64ltsmip_fbsd.c:608 eelf64mmix.c:471 eelf64ppc.c:1069
+#: eelf64ppc_fbsd.c:1069 eelf64rdos.c:457 eelf64tilegx.c:404
#: eelf64tilegx_be.c:404 eelf_i386.c:7902 eelf_i386_be.c:387
#: eelf_i386_fbsd.c:434 eelf_i386_haiku.c:434 eelf_i386_ldso.c:394
#: eelf_i386_sol2.c:566 eelf_i386_vxworks.c:460 eelf_iamcu.c:434
-#: eelf_mipsel_haiku.c:608 eelf_s390.c:404 eelf_x86_64.c:8444
-#: eelf_x86_64_cloudabi.c:442 eelf_x86_64_fbsd.c:442 eelf_x86_64_haiku.c:442
-#: eelf_x86_64_sol2.c:574 eh8300elf.c:266 eh8300elf_linux.c:266
+#: eelf_mipsel_haiku.c:608 eelf_s390.c:404 eelf_x86_64.c:8476
+#: eelf_x86_64_cloudabi.c:474 eelf_x86_64_fbsd.c:474 eelf_x86_64_haiku.c:474
+#: eelf_x86_64_sol2.c:606 eh8300elf.c:266 eh8300elf_linux.c:266
#: eh8300helf.c:266 eh8300helf_linux.c:266 eh8300hnelf.c:266 eh8300self.c:266
#: eh8300self_linux.c:266 eh8300snelf.c:266 eh8300sxelf.c:266
#: eh8300sxelf_linux.c:266 eh8300sxnelf.c:266 ehppa64linux.c:363 ehppaelf.c:520
@@ -4108,14 +4118,14 @@ msgstr "%F%P: неиÑправан Ñтил хеша „%s“\n"
#: eshelf_vxworks.c:395 eshlelf.c:363 eshlelf_fd.c:404 eshlelf_linux.c:404
#: eshlelf_nbsd.c:363 eshlelf_nto.c:363 eshlelf_vxworks.c:395 ev850.c:288
#: ev850_rh850.c:288
-msgid "%F%P: invalid maximum page size `%s'\n"
-msgstr "%F%P: неиÑправна највећа величина Ñтранице „%s“\n"
-
-#: eaarch64cloudabi.c:803 eaarch64cloudabib.c:803 eaarch64elf.c:802
-#: eaarch64elf32.c:802 eaarch64elf32b.c:802 eaarch64elfb.c:802
-#: eaarch64fbsd.c:803 eaarch64fbsdb.c:803 eaarch64haiku.c:803
-#: eaarch64linux.c:803 eaarch64linux32.c:803 eaarch64linux32b.c:803
-#: eaarch64linuxb.c:803 eaarch64nto.c:965 earcelf.c:323 earclinux.c:414
+msgid "%P: invalid maximum page size `%s'\n"
+msgstr "%P: неиÑправна највећа величина Ñтранице „%s“\n"
+
+#: eaarch64cloudabi.c:834 eaarch64cloudabib.c:834 eaarch64elf.c:834
+#: eaarch64elf32.c:834 eaarch64elf32b.c:834 eaarch64elfb.c:834
+#: eaarch64fbsd.c:834 eaarch64fbsdb.c:834 eaarch64haiku.c:834
+#: eaarch64linux.c:834 eaarch64linux32.c:834 eaarch64linux32b.c:834
+#: eaarch64linuxb.c:834 eaarch64nto.c:996 earcelf.c:323 earclinux.c:414
#: earclinux_nps.c:414 earcv2elf.c:251 earcv2elfx.c:251 earmelf.c:938
#: earmelf_fbsd.c:938 earmelf_fuchsia.c:939 earmelf_haiku.c:939
#: earmelf_linux.c:939 earmelf_linux_eabi.c:939 earmelf_linux_fdpiceabi.c:939
@@ -4130,16 +4140,16 @@ msgstr "%F%P: неиÑправна највећа величина ÑтраниÑ
#: eavrxmega7.c:467 ecriself.c:276 ecrislinux.c:374 ecskyelf.c:515
#: ecskyelf_linux.c:653 ed10velf.c:251 eelf32_sparc.c:414
#: eelf32_sparc_sol2.c:546 eelf32_sparc_vxworks.c:446 eelf32_spu.c:835
-#: eelf32_tic6x_be.c:505 eelf32_tic6x_elf_be.c:505 eelf32_tic6x_elf_le.c:505
-#: eelf32_tic6x_le.c:505 eelf32_tic6x_linux_be.c:505
-#: eelf32_tic6x_linux_le.c:505 eelf32_x86_64.c:8454 eelf32am33lin.c:373
+#: eelf32_tic6x_be.c:503 eelf32_tic6x_elf_be.c:503 eelf32_tic6x_elf_le.c:503
+#: eelf32_tic6x_le.c:503 eelf32_tic6x_linux_be.c:503
+#: eelf32_tic6x_linux_le.c:503 eelf32_x86_64.c:8486 eelf32am33lin.c:373
#: eelf32b4300.c:618 eelf32bfin.c:387 eelf32bfinfd.c:427 eelf32bmip.c:618
#: eelf32bmipn32.c:632 eelf32briscv.c:492 eelf32briscv_ilp32.c:492
#: eelf32briscv_ilp32f.c:492 eelf32bsmip.c:632 eelf32btsmip.c:618
#: eelf32btsmip_fbsd.c:618 eelf32btsmipn32.c:618 eelf32btsmipn32_fbsd.c:618
#: eelf32cr16.c:401 eelf32crx.c:288 eelf32ebmip.c:618 eelf32ebmipvxworks.c:649
#: eelf32elmip.c:618 eelf32elmipvxworks.c:649 eelf32epiphany.c:276
-#: eelf32epiphany_4x4.c:253 eelf32frvfd.c:413 eelf32ip2k.c:276 eelf32kvx.c:639
+#: eelf32epiphany_4x4.c:253 eelf32frvfd.c:413 eelf32ip2k.c:276 eelf32kvx.c:638
#: eelf32l4300.c:618 eelf32lm32.c:276 eelf32lm32fd.c:413 eelf32lmip.c:618
#: eelf32loongarch.c:470 eelf32lppc.c:643 eelf32lppclinux.c:643
#: eelf32lppcnto.c:643 eelf32lppcsim.c:643 eelf32lr5900.c:521
@@ -4155,22 +4165,22 @@ msgstr "%F%P: неиÑправна највећа величина ÑтраниÑ
#: eelf32rl78.c:276 eelf32rx.c:298 eelf32rx_linux.c:289 eelf32tilegx.c:414
#: eelf32tilegx_be.c:414 eelf32tilepro.c:414 eelf32vax.c:373 eelf32visium.c:251
#: eelf32xstormy16.c:262 eelf32xtensa.c:2317 eelf32z80.c:278 eelf64_aix.c:373
-#: eelf64_ia64.c:442 eelf64_ia64_fbsd.c:442 eelf64_s390.c:511
+#: eelf64_ia64.c:442 eelf64_ia64_fbsd.c:442 eelf64_s390.c:516
#: eelf64_sparc.c:414 eelf64_sparc_fbsd.c:414 eelf64_sparc_sol2.c:546
-#: eelf64alpha.c:502 eelf64alpha_fbsd.c:502 eelf64alpha_nbsd.c:502
+#: eelf64alpha.c:478 eelf64alpha_fbsd.c:478 eelf64alpha_nbsd.c:478
#: eelf64bmip.c:632 eelf64bpf.c:251 eelf64briscv.c:492 eelf64briscv_lp64.c:492
#: eelf64briscv_lp64f.c:492 eelf64btsmip.c:618 eelf64btsmip_fbsd.c:618
-#: eelf64hppa.c:323 eelf64kvx.c:639 eelf64kvx_linux.c:676 eelf64loongarch.c:470
-#: eelf64lppc.c:1078 eelf64lppc_fbsd.c:1078 eelf64lriscv.c:492
+#: eelf64hppa.c:323 eelf64kvx.c:638 eelf64kvx_linux.c:676 eelf64loongarch.c:470
+#: eelf64lppc.c:1079 eelf64lppc_fbsd.c:1079 eelf64lriscv.c:492
#: eelf64lriscv_lp64.c:492 eelf64lriscv_lp64f.c:492 eelf64ltsmip.c:618
-#: eelf64ltsmip_fbsd.c:618 eelf64mmix.c:484 eelf64ppc.c:1078
-#: eelf64ppc_fbsd.c:1078 eelf64rdos.c:435 eelf64tilegx.c:414
+#: eelf64ltsmip_fbsd.c:618 eelf64mmix.c:481 eelf64ppc.c:1079
+#: eelf64ppc_fbsd.c:1079 eelf64rdos.c:467 eelf64tilegx.c:414
#: eelf64tilegx_be.c:414 eelf_i386.c:7912 eelf_i386_be.c:397
#: eelf_i386_fbsd.c:444 eelf_i386_haiku.c:444 eelf_i386_ldso.c:404
#: eelf_i386_sol2.c:576 eelf_i386_vxworks.c:470 eelf_iamcu.c:444
-#: eelf_mipsel_haiku.c:618 eelf_s390.c:414 eelf_x86_64.c:8454
-#: eelf_x86_64_cloudabi.c:452 eelf_x86_64_fbsd.c:452 eelf_x86_64_haiku.c:452
-#: eelf_x86_64_sol2.c:584 eh8300elf.c:276 eh8300elf_linux.c:276
+#: eelf_mipsel_haiku.c:618 eelf_s390.c:414 eelf_x86_64.c:8486
+#: eelf_x86_64_cloudabi.c:484 eelf_x86_64_fbsd.c:484 eelf_x86_64_haiku.c:484
+#: eelf_x86_64_sol2.c:616 eh8300elf.c:276 eh8300elf_linux.c:276
#: eh8300helf.c:276 eh8300helf_linux.c:276 eh8300hnelf.c:276 eh8300self.c:276
#: eh8300self_linux.c:276 eh8300snelf.c:276 eh8300sxelf.c:276
#: eh8300sxelf_linux.c:276 eh8300sxnelf.c:276 ehppa64linux.c:373 ehppaelf.c:530
@@ -4185,14 +4195,14 @@ msgstr "%F%P: неиÑправна највећа величина ÑтраниÑ
#: eshelf_vxworks.c:405 eshlelf.c:373 eshlelf_fd.c:414 eshlelf_linux.c:414
#: eshlelf_nbsd.c:373 eshlelf_nto.c:373 eshlelf_vxworks.c:405 ev850.c:298
#: ev850_rh850.c:298
-msgid "%F%P: invalid common page size `%s'\n"
-msgstr "%F%P: неиÑправна општа величина Ñтранице „%s“\n"
-
-#: eaarch64cloudabi.c:812 eaarch64cloudabib.c:812 eaarch64elf.c:811
-#: eaarch64elf32.c:811 eaarch64elf32b.c:811 eaarch64elfb.c:811
-#: eaarch64fbsd.c:812 eaarch64fbsdb.c:812 eaarch64haiku.c:812
-#: eaarch64linux.c:812 eaarch64linux32.c:812 eaarch64linux32b.c:812
-#: eaarch64linuxb.c:812 eaarch64nto.c:974 eaarch64nto.c:1157 earcelf.c:332
+msgid "%P: invalid common page size `%s'\n"
+msgstr "%P: неиÑправна општа величина Ñтранице „%s“\n"
+
+#: eaarch64cloudabi.c:843 eaarch64cloudabib.c:843 eaarch64elf.c:843
+#: eaarch64elf32.c:843 eaarch64elf32b.c:843 eaarch64elfb.c:843
+#: eaarch64fbsd.c:843 eaarch64fbsdb.c:843 eaarch64haiku.c:843
+#: eaarch64linux.c:843 eaarch64linux32.c:843 eaarch64linux32b.c:843
+#: eaarch64linuxb.c:843 eaarch64nto.c:1005 eaarch64nto.c:1192 earcelf.c:332
#: earclinux.c:423 earclinux_nps.c:423 earcv2elf.c:260 earcv2elfx.c:260
#: earmelf.c:947 earmelf_fbsd.c:947 earmelf_fuchsia.c:948 earmelf_haiku.c:948
#: earmelf_linux.c:948 earmelf_linux_eabi.c:948 earmelf_linux_fdpiceabi.c:948
@@ -4207,16 +4217,16 @@ msgstr "%F%P: неиÑправна општа величина Ñтранице
#: eavrxmega7.c:476 ecriself.c:285 ecrislinux.c:383 ecskyelf.c:524
#: ecskyelf_linux.c:662 ed10velf.c:260 eelf32_sparc.c:423
#: eelf32_sparc_sol2.c:555 eelf32_sparc_vxworks.c:455 eelf32_spu.c:844
-#: eelf32_tic6x_be.c:514 eelf32_tic6x_elf_be.c:514 eelf32_tic6x_elf_le.c:514
-#: eelf32_tic6x_le.c:514 eelf32_tic6x_linux_be.c:514
-#: eelf32_tic6x_linux_le.c:514 eelf32_x86_64.c:8463 eelf32am33lin.c:382
+#: eelf32_tic6x_be.c:512 eelf32_tic6x_elf_be.c:512 eelf32_tic6x_elf_le.c:512
+#: eelf32_tic6x_le.c:512 eelf32_tic6x_linux_be.c:512
+#: eelf32_tic6x_linux_le.c:512 eelf32_x86_64.c:8495 eelf32am33lin.c:382
#: eelf32b4300.c:627 eelf32bfin.c:396 eelf32bfinfd.c:436 eelf32bmip.c:627
#: eelf32bmipn32.c:641 eelf32briscv.c:501 eelf32briscv_ilp32.c:501
#: eelf32briscv_ilp32f.c:501 eelf32bsmip.c:641 eelf32btsmip.c:627
#: eelf32btsmip_fbsd.c:627 eelf32btsmipn32.c:627 eelf32btsmipn32_fbsd.c:627
#: eelf32cr16.c:410 eelf32crx.c:297 eelf32ebmip.c:627 eelf32ebmipvxworks.c:658
#: eelf32elmip.c:627 eelf32elmipvxworks.c:658 eelf32epiphany.c:285
-#: eelf32epiphany_4x4.c:262 eelf32frvfd.c:422 eelf32ip2k.c:285 eelf32kvx.c:648
+#: eelf32epiphany_4x4.c:262 eelf32frvfd.c:422 eelf32ip2k.c:285 eelf32kvx.c:647
#: eelf32l4300.c:627 eelf32lm32.c:285 eelf32lm32fd.c:422 eelf32lmip.c:627
#: eelf32loongarch.c:479 eelf32lppc.c:652 eelf32lppclinux.c:652
#: eelf32lppcnto.c:652 eelf32lppcsim.c:652 eelf32lr5900.c:530
@@ -4232,22 +4242,22 @@ msgstr "%F%P: неиÑправна општа величина Ñтранице
#: eelf32rl78.c:285 eelf32rx.c:307 eelf32rx_linux.c:298 eelf32tilegx.c:423
#: eelf32tilegx_be.c:423 eelf32tilepro.c:423 eelf32vax.c:382 eelf32visium.c:260
#: eelf32xstormy16.c:271 eelf32xtensa.c:2326 eelf32z80.c:287 eelf64_aix.c:382
-#: eelf64_ia64.c:451 eelf64_ia64_fbsd.c:451 eelf64_s390.c:520
+#: eelf64_ia64.c:451 eelf64_ia64_fbsd.c:451 eelf64_s390.c:525
#: eelf64_sparc.c:423 eelf64_sparc_fbsd.c:423 eelf64_sparc_sol2.c:555
-#: eelf64alpha.c:511 eelf64alpha_fbsd.c:511 eelf64alpha_nbsd.c:511
+#: eelf64alpha.c:487 eelf64alpha_fbsd.c:487 eelf64alpha_nbsd.c:487
#: eelf64bmip.c:641 eelf64bpf.c:260 eelf64briscv.c:501 eelf64briscv_lp64.c:501
#: eelf64briscv_lp64f.c:501 eelf64btsmip.c:627 eelf64btsmip_fbsd.c:627
-#: eelf64hppa.c:332 eelf64kvx.c:648 eelf64kvx_linux.c:685 eelf64loongarch.c:479
-#: eelf64lppc.c:1087 eelf64lppc_fbsd.c:1087 eelf64lriscv.c:501
+#: eelf64hppa.c:332 eelf64kvx.c:647 eelf64kvx_linux.c:685 eelf64loongarch.c:479
+#: eelf64lppc.c:1088 eelf64lppc_fbsd.c:1088 eelf64lriscv.c:501
#: eelf64lriscv_lp64.c:501 eelf64lriscv_lp64f.c:501 eelf64ltsmip.c:627
-#: eelf64ltsmip_fbsd.c:627 eelf64mmix.c:493 eelf64ppc.c:1087
-#: eelf64ppc_fbsd.c:1087 eelf64rdos.c:444 eelf64tilegx.c:423
+#: eelf64ltsmip_fbsd.c:627 eelf64mmix.c:490 eelf64ppc.c:1088
+#: eelf64ppc_fbsd.c:1088 eelf64rdos.c:476 eelf64tilegx.c:423
#: eelf64tilegx_be.c:423 eelf_i386.c:7921 eelf_i386_be.c:406
#: eelf_i386_fbsd.c:453 eelf_i386_haiku.c:453 eelf_i386_ldso.c:413
#: eelf_i386_sol2.c:585 eelf_i386_vxworks.c:479 eelf_iamcu.c:453
-#: eelf_mipsel_haiku.c:627 eelf_s390.c:423 eelf_x86_64.c:8463
-#: eelf_x86_64_cloudabi.c:461 eelf_x86_64_fbsd.c:461 eelf_x86_64_haiku.c:461
-#: eelf_x86_64_sol2.c:593 eh8300elf.c:285 eh8300elf_linux.c:285
+#: eelf_mipsel_haiku.c:627 eelf_s390.c:423 eelf_x86_64.c:8495
+#: eelf_x86_64_cloudabi.c:493 eelf_x86_64_fbsd.c:493 eelf_x86_64_haiku.c:493
+#: eelf_x86_64_sol2.c:625 eh8300elf.c:285 eh8300elf_linux.c:285
#: eh8300helf.c:285 eh8300helf_linux.c:285 eh8300hnelf.c:285 eh8300self.c:285
#: eh8300self_linux.c:285 eh8300snelf.c:285 eh8300sxelf.c:285
#: eh8300sxelf_linux.c:285 eh8300sxnelf.c:285 ehppa64linux.c:382 ehppaelf.c:539
@@ -4262,14 +4272,14 @@ msgstr "%F%P: неиÑправна општа величина Ñтранице
#: eshelf_vxworks.c:414 eshlelf.c:382 eshlelf_fd.c:423 eshlelf_linux.c:423
#: eshlelf_nbsd.c:382 eshlelf_nto.c:382 eshlelf_vxworks.c:414 ev850.c:307
#: ev850_rh850.c:307
-msgid "%F%P: invalid stack size `%s'\n"
-msgstr "%F%P: неиÑправна величина Ñпремника „%s“\n"
-
-#: eaarch64cloudabi.c:851 eaarch64cloudabib.c:851 eaarch64elf.c:850
-#: eaarch64elf32.c:850 eaarch64elf32b.c:850 eaarch64elfb.c:850
-#: eaarch64fbsd.c:851 eaarch64fbsdb.c:851 eaarch64haiku.c:851
-#: eaarch64linux.c:851 eaarch64linux32.c:851 eaarch64linux32b.c:851
-#: eaarch64linuxb.c:851 eaarch64nto.c:1013 earcelf.c:371 earclinux.c:462
+msgid "%P: invalid stack size `%s'\n"
+msgstr "%P: неиÑправна величина Ñпремника „%s“\n"
+
+#: eaarch64cloudabi.c:882 eaarch64cloudabib.c:882 eaarch64elf.c:882
+#: eaarch64elf32.c:882 eaarch64elf32b.c:882 eaarch64elfb.c:882
+#: eaarch64fbsd.c:882 eaarch64fbsdb.c:882 eaarch64haiku.c:882
+#: eaarch64linux.c:882 eaarch64linux32.c:882 eaarch64linux32b.c:882
+#: eaarch64linuxb.c:882 eaarch64nto.c:1044 earcelf.c:371 earclinux.c:462
#: earclinux_nps.c:462 earcv2elf.c:299 earcv2elfx.c:299 earmelf.c:986
#: earmelf_fbsd.c:986 earmelf_fuchsia.c:987 earmelf_haiku.c:987
#: earmelf_linux.c:987 earmelf_linux_eabi.c:987 earmelf_linux_fdpiceabi.c:987
@@ -4284,16 +4294,16 @@ msgstr "%F%P: неиÑправна величина Ñпремника „%s“\
#: eavrxmega7.c:515 ecriself.c:324 ecrislinux.c:422 ecskyelf.c:563
#: ecskyelf_linux.c:701 ed10velf.c:299 eelf32_sparc.c:462
#: eelf32_sparc_sol2.c:594 eelf32_sparc_vxworks.c:494 eelf32_spu.c:883
-#: eelf32_tic6x_be.c:553 eelf32_tic6x_elf_be.c:553 eelf32_tic6x_elf_le.c:553
-#: eelf32_tic6x_le.c:553 eelf32_tic6x_linux_be.c:553
-#: eelf32_tic6x_linux_le.c:553 eelf32_x86_64.c:8502 eelf32am33lin.c:421
+#: eelf32_tic6x_be.c:551 eelf32_tic6x_elf_be.c:551 eelf32_tic6x_elf_le.c:551
+#: eelf32_tic6x_le.c:551 eelf32_tic6x_linux_be.c:551
+#: eelf32_tic6x_linux_le.c:551 eelf32_x86_64.c:8534 eelf32am33lin.c:421
#: eelf32b4300.c:666 eelf32bfin.c:435 eelf32bfinfd.c:475 eelf32bmip.c:666
#: eelf32bmipn32.c:680 eelf32briscv.c:540 eelf32briscv_ilp32.c:540
#: eelf32briscv_ilp32f.c:540 eelf32bsmip.c:680 eelf32btsmip.c:666
#: eelf32btsmip_fbsd.c:666 eelf32btsmipn32.c:666 eelf32btsmipn32_fbsd.c:666
#: eelf32cr16.c:449 eelf32crx.c:336 eelf32ebmip.c:666 eelf32ebmipvxworks.c:697
#: eelf32elmip.c:666 eelf32elmipvxworks.c:697 eelf32epiphany.c:324
-#: eelf32epiphany_4x4.c:301 eelf32frvfd.c:461 eelf32ip2k.c:324 eelf32kvx.c:687
+#: eelf32epiphany_4x4.c:301 eelf32frvfd.c:461 eelf32ip2k.c:324 eelf32kvx.c:686
#: eelf32l4300.c:666 eelf32lm32.c:324 eelf32lm32fd.c:461 eelf32lmip.c:666
#: eelf32loongarch.c:518 eelf32lppc.c:691 eelf32lppclinux.c:691
#: eelf32lppcnto.c:691 eelf32lppcsim.c:691 eelf32lr5900.c:569
@@ -4309,22 +4319,22 @@ msgstr "%F%P: неиÑправна величина Ñпремника „%s“\
#: eelf32rl78.c:324 eelf32rx.c:346 eelf32rx_linux.c:337 eelf32tilegx.c:462
#: eelf32tilegx_be.c:462 eelf32tilepro.c:462 eelf32vax.c:421 eelf32visium.c:299
#: eelf32xstormy16.c:310 eelf32xtensa.c:2365 eelf32z80.c:326 eelf64_aix.c:421
-#: eelf64_ia64.c:490 eelf64_ia64_fbsd.c:490 eelf64_s390.c:559
+#: eelf64_ia64.c:490 eelf64_ia64_fbsd.c:490 eelf64_s390.c:564
#: eelf64_sparc.c:462 eelf64_sparc_fbsd.c:462 eelf64_sparc_sol2.c:594
-#: eelf64alpha.c:550 eelf64alpha_fbsd.c:550 eelf64alpha_nbsd.c:550
+#: eelf64alpha.c:526 eelf64alpha_fbsd.c:526 eelf64alpha_nbsd.c:526
#: eelf64bmip.c:680 eelf64bpf.c:299 eelf64briscv.c:540 eelf64briscv_lp64.c:540
#: eelf64briscv_lp64f.c:540 eelf64btsmip.c:666 eelf64btsmip_fbsd.c:666
-#: eelf64hppa.c:371 eelf64kvx.c:687 eelf64kvx_linux.c:724 eelf64loongarch.c:518
-#: eelf64lppc.c:1126 eelf64lppc_fbsd.c:1126 eelf64lriscv.c:540
+#: eelf64hppa.c:371 eelf64kvx.c:686 eelf64kvx_linux.c:724 eelf64loongarch.c:518
+#: eelf64lppc.c:1127 eelf64lppc_fbsd.c:1127 eelf64lriscv.c:540
#: eelf64lriscv_lp64.c:540 eelf64lriscv_lp64f.c:540 eelf64ltsmip.c:666
-#: eelf64ltsmip_fbsd.c:666 eelf64mmix.c:532 eelf64ppc.c:1126
-#: eelf64ppc_fbsd.c:1126 eelf64rdos.c:483 eelf64tilegx.c:462
+#: eelf64ltsmip_fbsd.c:666 eelf64mmix.c:529 eelf64ppc.c:1127
+#: eelf64ppc_fbsd.c:1127 eelf64rdos.c:515 eelf64tilegx.c:462
#: eelf64tilegx_be.c:462 eelf_i386.c:7960 eelf_i386_be.c:445
#: eelf_i386_fbsd.c:492 eelf_i386_haiku.c:492 eelf_i386_ldso.c:452
#: eelf_i386_sol2.c:624 eelf_i386_vxworks.c:518 eelf_iamcu.c:492
-#: eelf_mipsel_haiku.c:666 eelf_s390.c:462 eelf_x86_64.c:8502
-#: eelf_x86_64_cloudabi.c:500 eelf_x86_64_fbsd.c:500 eelf_x86_64_haiku.c:500
-#: eelf_x86_64_sol2.c:632 eh8300elf.c:324 eh8300elf_linux.c:324
+#: eelf_mipsel_haiku.c:666 eelf_s390.c:462 eelf_x86_64.c:8534
+#: eelf_x86_64_cloudabi.c:532 eelf_x86_64_fbsd.c:532 eelf_x86_64_haiku.c:532
+#: eelf_x86_64_sol2.c:664 eh8300elf.c:324 eh8300elf_linux.c:324
#: eh8300helf.c:324 eh8300helf_linux.c:324 eh8300hnelf.c:324 eh8300self.c:324
#: eh8300self_linux.c:324 eh8300snelf.c:324 eh8300sxelf.c:324
#: eh8300sxelf_linux.c:324 eh8300sxnelf.c:324 ehppa64linux.c:421 ehppaelf.c:578
@@ -4339,22 +4349,22 @@ msgstr "%F%P: неиÑправна величина Ñпремника „%s“\
#: eshelf_vxworks.c:453 eshlelf.c:421 eshlelf_fd.c:462 eshlelf_linux.c:462
#: eshlelf_nbsd.c:421 eshlelf_nto.c:421 eshlelf_vxworks.c:453 ev850.c:346
#: ev850_rh850.c:346
-msgid "%F%P: invalid visibility in `-z %s'; must be default, internal, hidden, or protected"
-msgstr "%F%P: неиÑправна видљивоÑÑ‚ у „-z %s“; мора бити оÑновна, унутрашња, Ñкривена или заштићена"
-
-#: eaarch64cloudabi.c:971 eaarch64cloudabib.c:971 eaarch64elf.c:971
-#: eaarch64elf32.c:971 eaarch64elf32b.c:971 eaarch64elfb.c:971
-#: eaarch64fbsd.c:976 eaarch64fbsdb.c:976 eaarch64haiku.c:971
-#: eaarch64linux.c:976 eaarch64linux32.c:976 eaarch64linux32b.c:976
-#: eaarch64linuxb.c:976 eaarch64nto.c:1133
+msgid "%P: invalid visibility in `-z %s'; must be default, internal, hidden, or protected"
+msgstr "%P: неиÑправна видљивоÑÑ‚ у „-z %s“; мора бити оÑновна, унутрашња, Ñкривена или заштићена"
+
+#: eaarch64cloudabi.c:1006 eaarch64cloudabib.c:1006 eaarch64elf.c:1011
+#: eaarch64elf32.c:1011 eaarch64elf32b.c:1011 eaarch64elfb.c:1011
+#: eaarch64fbsd.c:1011 eaarch64fbsdb.c:1011 eaarch64haiku.c:1006
+#: eaarch64linux.c:1011 eaarch64linux32.c:1011 eaarch64linux32b.c:1011
+#: eaarch64linuxb.c:1011 eaarch64nto.c:1168
msgid "%P: error: unrecognized option for --fix-cortex-a53-843419: %s\n"
msgstr "%P: грешка: непозната опција за „--fix-cortex-a53-843419“: %s\n"
-#: eaarch64cloudabi.c:1000 eaarch64cloudabib.c:1000 eaarch64elf.c:1000
-#: eaarch64elf32.c:1000 eaarch64elf32b.c:1000 eaarch64elfb.c:1000
-#: eaarch64fbsd.c:1005 eaarch64fbsdb.c:1005 eaarch64haiku.c:1000
-#: eaarch64linux.c:1005 eaarch64linux32.c:1005 eaarch64linux32b.c:1005
-#: eaarch64linuxb.c:1005 eaarch64nto.c:1178 earmelf.c:1191 earmelf_fbsd.c:1191
+#: eaarch64cloudabi.c:1035 eaarch64cloudabib.c:1035 eaarch64elf.c:1040
+#: eaarch64elf32.c:1040 eaarch64elf32b.c:1040 eaarch64elfb.c:1040
+#: eaarch64fbsd.c:1040 eaarch64fbsdb.c:1040 eaarch64haiku.c:1035
+#: eaarch64linux.c:1040 eaarch64linux32.c:1040 eaarch64linux32b.c:1040
+#: eaarch64linuxb.c:1040 eaarch64nto.c:1213 earmelf.c:1191 earmelf_fbsd.c:1191
#: earmelf_fuchsia.c:1196 earmelf_haiku.c:1196 earmelf_linux.c:1196
#: earmelf_linux_eabi.c:1196 earmelf_linux_fdpiceabi.c:1196 earmelf_nacl.c:1196
#: earmelf_nbsd.c:1191 earmelf_phoenix.c:1196 earmelf_vxworks.c:1227
@@ -4370,11 +4380,11 @@ msgstr ""
" --no-enum-size-warning Ðе упозорава о објектима Ñа неÑаглаÑним\n"
" величинама набрајања\n"
-#: eaarch64cloudabi.c:1002 eaarch64cloudabib.c:1002 eaarch64elf.c:1002
-#: eaarch64elf32.c:1002 eaarch64elf32b.c:1002 eaarch64elfb.c:1002
-#: eaarch64fbsd.c:1007 eaarch64fbsdb.c:1007 eaarch64haiku.c:1002
-#: eaarch64linux.c:1007 eaarch64linux32.c:1007 eaarch64linux32b.c:1007
-#: eaarch64linuxb.c:1007 eaarch64nto.c:1180 earmelf.c:1193 earmelf_fbsd.c:1193
+#: eaarch64cloudabi.c:1037 eaarch64cloudabib.c:1037 eaarch64elf.c:1042
+#: eaarch64elf32.c:1042 eaarch64elf32b.c:1042 eaarch64elfb.c:1042
+#: eaarch64fbsd.c:1042 eaarch64fbsdb.c:1042 eaarch64haiku.c:1037
+#: eaarch64linux.c:1042 eaarch64linux32.c:1042 eaarch64linux32b.c:1042
+#: eaarch64linuxb.c:1042 eaarch64nto.c:1215 earmelf.c:1193 earmelf_fbsd.c:1193
#: earmelf_fuchsia.c:1198 earmelf_haiku.c:1198 earmelf_linux.c:1198
#: earmelf_linux_eabi.c:1198 earmelf_linux_fdpiceabi.c:1198 earmelf_nacl.c:1198
#: earmelf_nbsd.c:1193 earmelf_phoenix.c:1198 earmelf_vxworks.c:1229
@@ -4390,11 +4400,11 @@ msgstr ""
" --no-wchar-size-warning Ðе упозорава о објектима Ñа неÑаглаÑним\n"
" „wchar_t“ величинама\n"
-#: eaarch64cloudabi.c:1004 eaarch64cloudabib.c:1004 eaarch64elf.c:1004
-#: eaarch64elf32.c:1004 eaarch64elf32b.c:1004 eaarch64elfb.c:1004
-#: eaarch64fbsd.c:1009 eaarch64fbsdb.c:1009 eaarch64haiku.c:1004
-#: eaarch64linux.c:1009 eaarch64linux32.c:1009 eaarch64linux32b.c:1009
-#: eaarch64linuxb.c:1009 eaarch64nto.c:1182 earmelf.c:1195 earmelf_fbsd.c:1195
+#: eaarch64cloudabi.c:1039 eaarch64cloudabib.c:1039 eaarch64elf.c:1044
+#: eaarch64elf32.c:1044 eaarch64elf32b.c:1044 eaarch64elfb.c:1044
+#: eaarch64fbsd.c:1044 eaarch64fbsdb.c:1044 eaarch64haiku.c:1039
+#: eaarch64linux.c:1044 eaarch64linux32.c:1044 eaarch64linux32b.c:1044
+#: eaarch64linuxb.c:1044 eaarch64nto.c:1217 earmelf.c:1195 earmelf_fbsd.c:1195
#: earmelf_fuchsia.c:1200 earmelf_haiku.c:1200 earmelf_linux.c:1200
#: earmelf_linux_eabi.c:1200 earmelf_linux_fdpiceabi.c:1200 earmelf_nacl.c:1200
#: earmelf_nbsd.c:1195 earmelf_phoenix.c:1200 earmelf_vxworks.c:1231
@@ -4406,11 +4416,11 @@ msgstr ""
msgid " --pic-veneer Always generate PIC interworking veneers\n"
msgstr " --pic-veneer Увек Ñтвара „PIC“ међурадне превлаке\n"
-#: eaarch64cloudabi.c:1005 eaarch64cloudabib.c:1005 eaarch64elf.c:1005
-#: eaarch64elf32.c:1005 eaarch64elf32b.c:1005 eaarch64elfb.c:1005
-#: eaarch64fbsd.c:1010 eaarch64fbsdb.c:1010 eaarch64haiku.c:1005
-#: eaarch64linux.c:1010 eaarch64linux32.c:1010 eaarch64linux32b.c:1010
-#: eaarch64linuxb.c:1010 eaarch64nto.c:1183 earmelf.c:1202 earmelf_fbsd.c:1202
+#: eaarch64cloudabi.c:1040 eaarch64cloudabib.c:1040 eaarch64elf.c:1045
+#: eaarch64elf32.c:1045 eaarch64elf32b.c:1045 eaarch64elfb.c:1045
+#: eaarch64fbsd.c:1045 eaarch64fbsdb.c:1045 eaarch64haiku.c:1040
+#: eaarch64linux.c:1045 eaarch64linux32.c:1045 eaarch64linux32b.c:1045
+#: eaarch64linuxb.c:1045 eaarch64nto.c:1218 earmelf.c:1202 earmelf_fbsd.c:1202
#: earmelf_fuchsia.c:1207 earmelf_haiku.c:1207 earmelf_linux.c:1207
#: earmelf_linux_eabi.c:1207 earmelf_linux_fdpiceabi.c:1207 earmelf_nacl.c:1207
#: earmelf_nbsd.c:1202 earmelf_phoenix.c:1207 earmelf_vxworks.c:1238
@@ -4438,20 +4448,20 @@ msgstr ""
" ВредноÑти +/-1 означавају да повезивач треба да\n"
" изабере одговарајућу подразумеваноÑÑ‚.\n"
-#: eaarch64cloudabi.c:1014 eaarch64cloudabib.c:1014 eaarch64elf.c:1014
-#: eaarch64elf32.c:1014 eaarch64elf32b.c:1014 eaarch64elfb.c:1014
-#: eaarch64fbsd.c:1019 eaarch64fbsdb.c:1019 eaarch64haiku.c:1014
-#: eaarch64linux.c:1019 eaarch64linux32.c:1019 eaarch64linux32b.c:1019
-#: eaarch64linuxb.c:1019 eaarch64nto.c:1192
+#: eaarch64cloudabi.c:1049 eaarch64cloudabib.c:1049 eaarch64elf.c:1054
+#: eaarch64elf32.c:1054 eaarch64elf32b.c:1054 eaarch64elfb.c:1054
+#: eaarch64fbsd.c:1054 eaarch64fbsdb.c:1054 eaarch64haiku.c:1049
+#: eaarch64linux.c:1054 eaarch64linux32.c:1054 eaarch64linux32b.c:1054
+#: eaarch64linuxb.c:1054 eaarch64nto.c:1227
#, c-format
msgid " --fix-cortex-a53-835769 Fix erratum 835769\n"
msgstr " --fix-cortex-a53-835769 Поправља грешку 835769\n"
-#: eaarch64cloudabi.c:1015 eaarch64cloudabib.c:1015 eaarch64elf.c:1015
-#: eaarch64elf32.c:1015 eaarch64elf32b.c:1015 eaarch64elfb.c:1015
-#: eaarch64fbsd.c:1020 eaarch64fbsdb.c:1020 eaarch64haiku.c:1015
-#: eaarch64linux.c:1020 eaarch64linux32.c:1020 eaarch64linux32b.c:1020
-#: eaarch64linuxb.c:1020 eaarch64nto.c:1193
+#: eaarch64cloudabi.c:1050 eaarch64cloudabib.c:1050 eaarch64elf.c:1055
+#: eaarch64elf32.c:1055 eaarch64elf32b.c:1055 eaarch64elfb.c:1055
+#: eaarch64fbsd.c:1055 eaarch64fbsdb.c:1055 eaarch64haiku.c:1050
+#: eaarch64linux.c:1055 eaarch64linux32.c:1055 eaarch64linux32b.c:1055
+#: eaarch64linuxb.c:1055 eaarch64nto.c:1228
#, c-format
msgid ""
" --fix-cortex-a53-843419[=full|adr|adrp] Fix erratum 843419 and optionally specify which workaround to use.\n"
@@ -4476,20 +4486,20 @@ msgstr ""
" инÑтрукцију у „ADR“. Као такво решење ће увек кориÑтити\n"
" превлаку а ово ће вам дати утрошак и делотворноÑти и величине.\n"
-#: eaarch64cloudabi.c:1026 eaarch64cloudabib.c:1026 eaarch64elf.c:1026
-#: eaarch64elf32.c:1026 eaarch64elf32b.c:1026 eaarch64elfb.c:1026
-#: eaarch64fbsd.c:1031 eaarch64fbsdb.c:1031 eaarch64haiku.c:1026
-#: eaarch64linux.c:1031 eaarch64linux32.c:1031 eaarch64linux32b.c:1031
-#: eaarch64linuxb.c:1031 eaarch64nto.c:1204
+#: eaarch64cloudabi.c:1061 eaarch64cloudabib.c:1061 eaarch64elf.c:1066
+#: eaarch64elf32.c:1066 eaarch64elf32b.c:1066 eaarch64elfb.c:1066
+#: eaarch64fbsd.c:1066 eaarch64fbsdb.c:1066 eaarch64haiku.c:1061
+#: eaarch64linux.c:1066 eaarch64linux32.c:1066 eaarch64linux32b.c:1066
+#: eaarch64linuxb.c:1066 eaarch64nto.c:1239
#, c-format
msgid " --no-apply-dynamic-relocs Do not apply link-time values for dynamic relocations\n"
msgstr " --no-apply-dynamic-relocs Ðе примењује вредноÑти времена повезивања за динамичке премештаје\n"
-#: eaarch64cloudabi.c:1027 eaarch64cloudabib.c:1027 eaarch64elf.c:1027
-#: eaarch64elf32.c:1027 eaarch64elf32b.c:1027 eaarch64elfb.c:1027
-#: eaarch64fbsd.c:1032 eaarch64fbsdb.c:1032 eaarch64haiku.c:1027
-#: eaarch64linux.c:1032 eaarch64linux32.c:1032 eaarch64linux32b.c:1032
-#: eaarch64linuxb.c:1032 eaarch64nto.c:1205
+#: eaarch64cloudabi.c:1062 eaarch64cloudabib.c:1062 eaarch64elf.c:1067
+#: eaarch64elf32.c:1067 eaarch64elf32b.c:1067 eaarch64elfb.c:1067
+#: eaarch64fbsd.c:1067 eaarch64fbsdb.c:1067 eaarch64haiku.c:1062
+#: eaarch64linux.c:1067 eaarch64linux32.c:1067 eaarch64linux32b.c:1067
+#: eaarch64linuxb.c:1067 eaarch64nto.c:1240
#, c-format
msgid ""
" -z force-bti Turn on Branch Target Identification mechanism and generate PLTs with BTI.\n"
@@ -4498,11 +4508,11 @@ msgstr ""
" -z force-bti Укључује механизам препознавања циља гране и Ñтвара „PLT“-ове Ñа „BTI“.\n"
" Ствара упозорења за недоÑтајуће „BTI“ на улазима\n"
-#: eaarch64cloudabi.c:1030 eaarch64cloudabib.c:1030 eaarch64elf.c:1030
-#: eaarch64elf32.c:1030 eaarch64elf32b.c:1030 eaarch64elfb.c:1030
-#: eaarch64fbsd.c:1035 eaarch64fbsdb.c:1035 eaarch64haiku.c:1030
-#: eaarch64linux.c:1035 eaarch64linux32.c:1035 eaarch64linux32b.c:1035
-#: eaarch64linuxb.c:1035 eaarch64nto.c:1208
+#: eaarch64cloudabi.c:1065 eaarch64cloudabib.c:1065 eaarch64elf.c:1070
+#: eaarch64elf32.c:1070 eaarch64elf32b.c:1070 eaarch64elfb.c:1070
+#: eaarch64fbsd.c:1070 eaarch64fbsdb.c:1070 eaarch64haiku.c:1065
+#: eaarch64linux.c:1070 eaarch64linux32.c:1070 eaarch64linux32b.c:1070
+#: eaarch64linuxb.c:1070 eaarch64nto.c:1243
#, c-format
msgid ""
" -z bti-report[=none|warning|error] Emit warning/error on mismatch of BTI marking between input objects and ouput.\n"
@@ -4519,20 +4529,20 @@ msgstr ""
" error: Издаје грешку када улазним објектима недоÑтаје BTI ознака\n"
" а излаз има BTI ознаку.\n"
-#: eaarch64cloudabi.c:1037 eaarch64cloudabib.c:1037 eaarch64elf.c:1037
-#: eaarch64elf32.c:1037 eaarch64elf32b.c:1037 eaarch64elfb.c:1037
-#: eaarch64fbsd.c:1042 eaarch64fbsdb.c:1042 eaarch64haiku.c:1037
-#: eaarch64linux.c:1042 eaarch64linux32.c:1042 eaarch64linux32b.c:1042
-#: eaarch64linuxb.c:1042 eaarch64nto.c:1215
+#: eaarch64cloudabi.c:1072 eaarch64cloudabib.c:1072 eaarch64elf.c:1077
+#: eaarch64elf32.c:1077 eaarch64elf32b.c:1077 eaarch64elfb.c:1077
+#: eaarch64fbsd.c:1077 eaarch64fbsdb.c:1077 eaarch64haiku.c:1072
+#: eaarch64linux.c:1077 eaarch64linux32.c:1077 eaarch64linux32b.c:1077
+#: eaarch64linuxb.c:1077 eaarch64nto.c:1250
#, c-format
msgid " -z pac-plt Protect PLTs with Pointer Authentication.\n"
msgstr " -z pac-plt Штити „PLT“-ове потврђивањем идентитета показивача.\n"
-#: eaarch64cloudabi.c:1039 eaarch64cloudabib.c:1039 eaarch64elf.c:1039
-#: eaarch64elf32.c:1039 eaarch64elf32b.c:1039 eaarch64elfb.c:1039
-#: eaarch64fbsd.c:1044 eaarch64fbsdb.c:1044 eaarch64haiku.c:1039
-#: eaarch64linux.c:1044 eaarch64linux32.c:1044 eaarch64linux32b.c:1044
-#: eaarch64linuxb.c:1044 eaarch64nto.c:1217
+#: eaarch64cloudabi.c:1074 eaarch64cloudabib.c:1074 eaarch64elf.c:1079
+#: eaarch64elf32.c:1079 eaarch64elf32b.c:1079 eaarch64elfb.c:1079
+#: eaarch64fbsd.c:1079 eaarch64fbsdb.c:1079 eaarch64haiku.c:1074
+#: eaarch64linux.c:1079 eaarch64linux32.c:1079 eaarch64linux32b.c:1079
+#: eaarch64linuxb.c:1079 eaarch64nto.c:1252
#, c-format
msgid ""
" -z gcs=[always|never|implicit] Controls whether the output supports the Guarded Control Stack (GCS) mechanism.\n"
@@ -4545,11 +4555,11 @@ msgstr ""
" always: увек означава излаз Ñа GCS-ом.\n"
" never: никада не означава излаз Ñа GCS-ом.\n"
-#: eaarch64cloudabi.c:1044 eaarch64cloudabib.c:1044 eaarch64elf.c:1044
-#: eaarch64elf32.c:1044 eaarch64elf32b.c:1044 eaarch64elfb.c:1044
-#: eaarch64fbsd.c:1049 eaarch64fbsdb.c:1049 eaarch64haiku.c:1044
-#: eaarch64linux.c:1049 eaarch64linux32.c:1049 eaarch64linux32b.c:1049
-#: eaarch64linuxb.c:1049 eaarch64nto.c:1222
+#: eaarch64cloudabi.c:1079 eaarch64cloudabib.c:1079 eaarch64elf.c:1084
+#: eaarch64elf32.c:1084 eaarch64elf32b.c:1084 eaarch64elfb.c:1084
+#: eaarch64fbsd.c:1084 eaarch64fbsdb.c:1084 eaarch64haiku.c:1079
+#: eaarch64linux.c:1084 eaarch64linux32.c:1084 eaarch64linux32b.c:1084
+#: eaarch64linuxb.c:1084 eaarch64nto.c:1257
#, c-format
msgid ""
" -z gcs-report[=none|warning|error] Emit warning/error on mismatch of GCS marking between input objects and ouput.\n"
@@ -4566,11 +4576,11 @@ msgstr ""
" error: Издаје грешку када улазним објектима недоÑтаје GCS ознака\n"
" а излаз има GCS ознаку.\n"
-#: eaarch64cloudabi.c:1051 eaarch64cloudabib.c:1051 eaarch64elf.c:1051
-#: eaarch64elf32.c:1051 eaarch64elf32b.c:1051 eaarch64elfb.c:1051
-#: eaarch64fbsd.c:1056 eaarch64fbsdb.c:1056 eaarch64haiku.c:1051
-#: eaarch64linux.c:1056 eaarch64linux32.c:1056 eaarch64linux32b.c:1056
-#: eaarch64linuxb.c:1056 eaarch64nto.c:1229
+#: eaarch64cloudabi.c:1086 eaarch64cloudabib.c:1086 eaarch64elf.c:1091
+#: eaarch64elf32.c:1091 eaarch64elf32b.c:1091 eaarch64elfb.c:1091
+#: eaarch64fbsd.c:1091 eaarch64fbsdb.c:1091 eaarch64haiku.c:1086
+#: eaarch64linux.c:1091 eaarch64linux32.c:1091 eaarch64linux32b.c:1091
+#: eaarch64linuxb.c:1091 eaarch64nto.c:1264
#, c-format
msgid ""
" -z gcs-report-dynamic=none|warning|error Emit warning/error on mismatch of GCS marking between the current link\n"
@@ -4590,34 +4600,68 @@ msgstr ""
" а излаз има GCS ознаку.\n"
"\n"
-#: eaarch64nto.c:490
-msgid "%F%P: cannot create .note section in stub BFD.\n"
-msgstr "%F%P: не могу да направим „.note“ одељак у BFD окрајку.\n"
-
-#: eaarch64nto.c:499
-msgid "%F%P: failed to create .note section\n"
-msgstr "%F%P: ниÑам уÑпео да направим одељак „.note“\n"
-
-#: eaarch64nto.c:540
-msgid "%F%P: %pB: can't read contents of section .note: %E\n"
-msgstr "%F%P: %pB: не могу да читам Ñадржаје одељка „.note“: %E\n"
-
-#: eaarch64nto.c:550 eaarch64nto.c:554
+#: eaarch64cloudabi.c:1094 eaarch64cloudabib.c:1094 eaarch64elf.c:1099
+#: eaarch64elf32.c:1099 eaarch64elf32b.c:1099 eaarch64elfb.c:1099
+#: eaarch64fbsd.c:1099 eaarch64fbsdb.c:1099 eaarch64haiku.c:1094
+#: eaarch64linux.c:1099 eaarch64linux32.c:1099 eaarch64linux32b.c:1099
+#: eaarch64linuxb.c:1099 eaarch64nto.c:1272
+#, c-format
+msgid ""
+" -z memtag-mode[=none|sync|async] Select Memory Tagging Extension mode of operation to use.\n"
+" Emits a DT_AARCH64_MEMTAG_MODE dynamic tag for the binary.\n"
+" This entry is only valid on the main executable. It is\n"
+" ignored in the dynamically loaded objects by the loader.\n"
+" none (default): Disable MTE checking of memory reads and writes.\n"
+" sync: Enable precise exceptions when mismatched address and\n"
+" allocation tags detected on load/store operations.\n"
+" async: Enable imprecise exceptions.\n"
+msgstr ""
+" -z memtag-mode[=none|sync|async] Бира режим проширења означавања меморије радње за коришћење.\n"
+" Емитује „DT_AARCH64_MEMTAG_MODE“ динамичку ознаку за извршну.\n"
+" Овај ÑƒÐ½Ð¾Ñ Ñ˜Ðµ једино иÑправан на главној извршној. Занемарује Ñе\n"
+" у динамички учитаним објектима од Ñтране учитавача.\n"
+" none (оÑновно): ИÑкључује MTE проверу меморијÑког читања и пиÑања.\n"
+" sync: Укључује прецизне изузетке када Ñе открију неподударне ознаке\n"
+" адреÑе и доделе при радњама утовара/Ñмештања.\n"
+" async: Укључује непрецизне изузетке.\n"
+
+#: eaarch64cloudabi.c:1103 eaarch64cloudabib.c:1103 eaarch64elf.c:1108
+#: eaarch64elf32.c:1108 eaarch64elf32b.c:1108 eaarch64elfb.c:1108
+#: eaarch64fbsd.c:1108 eaarch64fbsdb.c:1108 eaarch64haiku.c:1103
+#: eaarch64linux.c:1108 eaarch64linux32.c:1108 eaarch64linux32b.c:1108
+#: eaarch64linuxb.c:1108 eaarch64nto.c:1281
+#, c-format
+msgid " -z memtag-stack Mark program stack with MTE protection.\n"
+msgstr " -z memtag-stack Означава Ñпремник програма MTE заштитом.\n"
+
+#: eaarch64nto.c:521
+msgid "%P: cannot create .note section in stub BFD.\n"
+msgstr "%P: не могу да направим „.note“ одељак у BFD окрајку.\n"
+
+#: eaarch64nto.c:530
+msgid "%P: failed to create .note section\n"
+msgstr "%P: ниÑам уÑпео да направим одељак „.note“\n"
+
+#: eaarch64nto.c:571
+msgid "%P: %pB: can't read contents of section .note: %E\n"
+msgstr "%P: %pB: не могу да читам Ñадржаје одељка „.note“: %E\n"
+
+#: eaarch64nto.c:581 eaarch64nto.c:585
msgid "%P: %pB: warning: duplicated QNX stack .note detected\n"
msgstr "%P: %pB: упозорење: откривена је двоÑтрука напомена QNX Ñпремника\n"
-#: eaarch64nto.c:583
-msgid "%F%P: error: --lazy-stack must follow -zstack-size=<size>\n"
-msgstr "%F%P: грешка: „--lazy-stack“ мора да прати „-zstack-size=<величина>“\n"
+#: eaarch64nto.c:614
+msgid "%P: error: --lazy-stack must follow -zstack-size=<size>\n"
+msgstr "%P: грешка: „--lazy-stack“ мора да прати „-zstack-size=<величина>“\n"
-#: eaarch64nto.c:1238
+#: eaarch64nto.c:1284
#, c-format
msgid ""
" --stack <size> Set size of the initial stack\n"
-" --lazy-stack\t\t Set lazy allocation of stack\n"
+" --lazy-stack Set lazy allocation of stack\n"
msgstr ""
-" --stack <величина> Подешава величину почетног Ñпремника\n"
-" --lazy-stack\t\t Подешава лагану доделу Ñпремника\n"
+" --stack <влчна> Подешава величину почетног Ñпремника\n"
+" --lazy-stack Подешава лагану доделу Ñпремника\n"
#: eaarch64pe.c:350 earm64pe.c:350 earm_wince_pe.c:338 earmpe.c:338
#: ei386pe.c:338 ei386pe_posix.c:338 ei386pep.c:350 emcorepe.c:338 eshpe.c:338
@@ -5008,29 +5052,29 @@ msgstr "%P: упозорење: лош број издања у опцији „
#: eaarch64pe.c:560 earm64pe.c:560 earm_wince_pe.c:571 earmpe.c:571
#: ei386beos.c:205 ei386pe.c:571 ei386pe_posix.c:571 ei386pep.c:560
#: emcorepe.c:571 eshpe.c:571
-msgid "%F%P: invalid subsystem type %s\n"
-msgstr "%F%P: неиÑправна врÑта подÑиÑтема „%s“\n"
+msgid "%P: invalid subsystem type %s\n"
+msgstr "%P: неиÑправна врÑта подÑиÑтема „%s“\n"
#: eaarch64pe.c:581 earm64pe.c:581 earm_wince_pe.c:592 earmpe.c:592
-#: ei386beos.c:216 ei386pe.c:592 ei386pe_posix.c:592 ei386pep.c:581
+#: ei386beos.c:215 ei386pe.c:592 ei386pe_posix.c:592 ei386pep.c:581
#: emcorepe.c:592 eshpe.c:592
-msgid "%F%P: invalid hex number for PE parameter '%s'\n"
-msgstr "%F%P: неиÑправан Ñ…ÐµÐºÑ Ð±Ñ€Ð¾Ñ˜ за ПЕ параметар „%s“\n"
+msgid "%P: invalid hex number for PE parameter '%s'\n"
+msgstr "%P: неиÑправан Ñ…ÐµÐºÑ Ð±Ñ€Ð¾Ñ˜ за ПЕ параметар „%s“\n"
#: eaarch64pe.c:598 earm64pe.c:598 earm_wince_pe.c:609 earmpe.c:609
-#: ei386beos.c:233 ei386pe.c:609 ei386pe_posix.c:609 ei386pep.c:598
+#: ei386beos.c:230 ei386pe.c:609 ei386pe_posix.c:609 ei386pep.c:598
#: emcorepe.c:609 eshpe.c:609
-msgid "%F%P: strange hex info for PE parameter '%s'\n"
-msgstr "%F%P: чудни Ñ…ÐµÐºÑ Ð¿Ð¾Ð´Ð°Ñ†Ð¸ за ПЕ параметар „%s“\n"
+msgid "%P: strange hex info for PE parameter '%s'\n"
+msgstr "%P: чудни Ñ…ÐµÐºÑ Ð¿Ð¾Ð´Ð°Ñ†Ð¸ за ПЕ параметар „%s“\n"
#: eaarch64pe.c:615 earm64pe.c:615 earm_wince_pe.c:625 earmpe.c:625
-#: eelf32mcore.c:356 ei386beos.c:249 ei386pe.c:625 ei386pe_posix.c:625
+#: eelf32mcore.c:356 ei386beos.c:245 ei386pe.c:625 ei386pe_posix.c:625
#: ei386pep.c:615 emcorepe.c:625 eshpe.c:625
-msgid "%F%P: cannot open base file %s\n"
-msgstr "%F%P: не могу да отворим датотеку оÑнове „%s“\n"
+msgid "%P: cannot open base file %s\n"
+msgstr "%P: не могу да отворим датотеку оÑнове „%s“\n"
#: eaarch64pe.c:932 earm64pe.c:932 earm_wince_pe.c:955 earmpe.c:955
-#: ei386beos.c:345 ei386pe.c:955 ei386pe_posix.c:955 ei386pep.c:932
+#: ei386beos.c:341 ei386pe.c:955 ei386pe_posix.c:955 ei386pep.c:932
#: emcorepe.c:955 eshpe.c:955
msgid "%P: warning, file alignment > section alignment\n"
msgstr "%P: упозорење: поравнање датотеке > поравнања одељка\n"
@@ -5084,8 +5128,8 @@ msgstr "%P: упозорење: не могу да направим „.buildidâ
#: eaarch64pe.c:1468 earm64pe.c:1468 earm_wince_pe.c:1452 earmpe.c:1452
#: ei386pe.c:1452 ei386pe_posix.c:1452 ei386pep.c:1468 emcorepe.c:1452
#: eshpe.c:1452
-msgid "%F%P: cannot perform PE operations on non PE output file '%pB'\n"
-msgstr "%F%P: не могу да обавим ПЕ радње на излазној датотеци која није ПЕ „%pB“\n"
+msgid "%P: cannot perform PE operations on non PE output file '%pB'\n"
+msgstr "%P: не могу да обавим ПЕ радње на излазној датотеци која није ПЕ „%pB“\n"
#: eaarch64pe.c:1592 earm64pe.c:1592 earm_wince_pe.c:1595 earmpe.c:1595
#: ei386pe.c:1595 ei386pe_posix.c:1595 ei386pep.c:1592 emcorepe.c:1595
@@ -5094,12 +5138,12 @@ msgid "%X%P: unable to process relocs: %E\n"
msgstr "%X%P: не могу да обрадим премештаје: %E\n"
#: eaix5ppc.c:302 eaix5rs6.c:302 eaixppc.c:302 eaixrs6.c:302 eppcmacos.c:302
-msgid "%F%P: cannot open %s\n"
-msgstr "%F%P: не могу да отворим „%s“\n"
+msgid "%P: cannot open %s\n"
+msgstr "%P: не могу да отворим „%s“\n"
-#: eaix5ppc.c:349 eaix5rs6.c:349 eaixppc.c:349 eaixrs6.c:349 eppcmacos.c:349
-msgid "%F%P: cannot read %s\n"
-msgstr "%F%P: не могу да читам „%s“\n"
+#: eaix5ppc.c:350 eaix5rs6.c:350 eaixppc.c:350 eaixrs6.c:350 eppcmacos.c:350
+msgid "%P: cannot read %s\n"
+msgstr "%P: не могу да читам „%s“\n"
#: eaix5ppc.c:377 eaix5rs6.c:377 eaixppc.c:377 eaixrs6.c:377 eppcmacos.c:377
msgid "%P: warning: ignoring invalid -D number %s\n"
@@ -5130,95 +5174,96 @@ msgid "%P: warning: ignoring invalid -pT number %s\n"
msgstr "%P: упозорење: занемарујем неиÑправан „-pT“ број „%s“\n"
#: eaix5ppc.c:701 eaix5rs6.c:701 eaixppc.c:701 eaixrs6.c:701 eppcmacos.c:701
-msgid "%F%P: bfd_xcoff_link_record_set failed: %E\n"
-msgstr "%F%P: „bfd_xcoff_link_record_set“ није уÑпело: %E\n"
+msgid "%P: bfd_xcoff_link_record_set failed: %E\n"
+msgstr "%P: „bfd_xcoff_link_record_set“ није уÑпело: %E\n"
#: eaix5ppc.c:731 eaix5rs6.c:731 eaixppc.c:731 eaixrs6.c:731 eppcmacos.c:731
-msgid "%F%P: bfd_link_hash_lookup of export symbol failed: %E\n"
-msgstr "%F%P: „bfd_link_hash_lookup“ извоза Ñимбола није уÑпело: %E\n"
+msgid "%P: bfd_link_hash_lookup of export symbol failed: %E\n"
+msgstr "%P: „bfd_link_hash_lookup“ извоза Ñимбола није уÑпело: %E\n"
#: eaix5ppc.c:733 eaix5rs6.c:733 eaixppc.c:733 eaixrs6.c:733 eppcmacos.c:733
-msgid "%F%P: bfd_xcoff_export_symbol failed: %E\n"
-msgstr "%F%P: „bfd_xcoff_export_symbol“ није уÑпело: %E\n"
+msgid "%P: bfd_xcoff_export_symbol failed: %E\n"
+msgstr "%P: „bfd_xcoff_export_symbol“ није уÑпело: %E\n"
#: eaix5ppc.c:838 eaix5rs6.c:838 eaixppc.c:838 eaixrs6.c:838 eppcmacos.c:838
-msgid "%F%P: can't find output section %s\n"
-msgstr "%F%P: не могу да нађем излазни одељак „%s“\n"
+msgid "%P: can't find output section %pA\n"
+msgstr "%P: не могу да нађем излазни одељак „%s“\n"
#: eaix5ppc.c:875 eaix5rs6.c:875 eaixppc.c:875 eaixrs6.c:875 eppcmacos.c:875
-msgid "%F%P: can't find %s in output section\n"
-msgstr "%F%P: не могу да нађем „%s“ у излазном одељку\n"
+msgid "%P: can't find %pA in output section\n"
+msgstr "%P: не могу да нађем „%s“ у излазном одељку\n"
-#: eaix5ppc.c:942 eaix5rs6.c:942 eaixppc.c:942 eaixrs6.c:942 eppcmacos.c:942
+#: eaix5ppc.c:941 eaix5rs6.c:941 eaixppc.c:941 eaixrs6.c:941 eppcmacos.c:941
msgid "%P: can't find required output section %s\n"
msgstr "%P: не могу да нађем захтевани излазни одељак „%s“\n"
-#: eaix5ppc.c:1124 eaix5rs6.c:1124 eaixppc.c:1124 eaixrs6.c:1124
-#: eppcmacos.c:1124
+#: eaix5ppc.c:1123 eaix5rs6.c:1123 eaixppc.c:1123 eaixrs6.c:1123
+#: eppcmacos.c:1123
msgid "%X%P: can not size stub sections: %E\n"
msgstr "%X%P: не могу да одрадим величину одељка окрајка: %E\n"
-#: eaix5ppc.c:1129 eaix5rs6.c:1129 eaixppc.c:1129 eaixrs6.c:1129
-#: eppcmacos.c:1129
-msgid "%F%P: failed to layout dynamic sections: %E\n"
-msgstr "%F%P: ниÑам уÑпео да поÑтавим величине динамичког одељка: %E\n"
+#: eaix5ppc.c:1128 eaix5rs6.c:1128 eaixppc.c:1128 eaixrs6.c:1128
+#: eppcmacos.c:1128
+msgid "%P: failed to layout dynamic sections: %E\n"
+msgstr "%P: ниÑам уÑпео да поÑтавим величине динамичког одељка: %E\n"
-#: eaix5ppc.c:1342 eaix5rs6.c:1342 eaixppc.c:1342 eaixrs6.c:1342
-#: eppcmacos.c:1342
-msgid "%F%P:%s:%d: #! ([member]) is not supported in import files\n"
-msgstr "%F%P:%s:%d: #! ([члан]) није подржано у увозним датотекама\n"
+#: eaix5ppc.c:1341 eaix5rs6.c:1341 eaixppc.c:1341 eaixrs6.c:1341
+#: eppcmacos.c:1341
+msgid "%P:%s:%d: #! ([member]) is not supported in import files\n"
+msgstr "%P:%s:%d: #! ([члан]) није подржано у увозним датотекама\n"
-#: eaix5ppc.c:1359 eaix5rs6.c:1359 eaixppc.c:1359 eaixrs6.c:1359
-#: eppcmacos.c:1359
-msgid "%F%P: could not parse import path: %E\n"
-msgstr "%F%P: не могу да обрадим путању увоза: %E\n"
+#: eaix5ppc.c:1358 eaix5rs6.c:1358 eaixppc.c:1358 eaixrs6.c:1358
+#: eppcmacos.c:1358
+msgid "%P: could not parse import path: %E\n"
+msgstr "%P: не могу да обрадим путању увоза: %E\n"
-#: eaix5ppc.c:1369 eaix5ppc.c:1381 eaix5rs6.c:1369 eaix5rs6.c:1381
-#: eaixppc.c:1369 eaixppc.c:1381 eaixrs6.c:1369 eaixrs6.c:1381 eppcmacos.c:1369
-#: eppcmacos.c:1381
+#: eaix5ppc.c:1368 eaix5ppc.c:1380 eaix5rs6.c:1368 eaix5rs6.c:1380
+#: eaixppc.c:1368 eaixppc.c:1380 eaixrs6.c:1368 eaixrs6.c:1380 eppcmacos.c:1368
+#: eppcmacos.c:1380
msgid "%P:%s:%d: warning: syntax error in import file\n"
msgstr "%P:%s:%d: упозорење: грешка ÑинтакÑе у датотеци увоза\n"
-#: eaix5ppc.c:1416 eaix5rs6.c:1416 eaixppc.c:1416 eaixrs6.c:1416
-#: eppcmacos.c:1416
+#: eaix5ppc.c:1415 eaix5rs6.c:1415 eaixppc.c:1415 eaixrs6.c:1415
+#: eppcmacos.c:1415
msgid "%P:%s%d: warning: syntax error in import/export file\n"
msgstr "%P:%s%d: упозорење: грешка ÑинтакÑе у датотеци увоза/извоза\n"
-#: eaix5ppc.c:1434 eaix5rs6.c:1434 eaixppc.c:1434 eaixrs6.c:1434
-#: eppcmacos.c:1434
+#: eaix5ppc.c:1433 eaix5rs6.c:1433 eaixppc.c:1433 eaixrs6.c:1433
+#: eppcmacos.c:1433
msgid "%P:%s:%d: warning: syntax error in import/export file\n"
msgstr "%P:%s:%d: упозорење: грешка ÑинтакÑе у датотеци увоза/извоза\n"
-#: eaix5ppc.c:1469 eaix5rs6.c:1469 eaixppc.c:1469 eaixrs6.c:1469
-#: eppcmacos.c:1469
+#: eaix5ppc.c:1468 eaix5rs6.c:1468 eaixppc.c:1468 eaixrs6.c:1468
+#: eppcmacos.c:1468
msgid "%X%P:%s:%d: failed to import symbol %s: %E\n"
msgstr "%X%P:%s:%d: ниÑам уÑпео да увезем Ñимбол „%s“: %E\n"
-#: eaix5ppc.c:1479 eaix5rs6.c:1479 eaixppc.c:1479 eaixrs6.c:1479
-#: eppcmacos.c:1479
+#: eaix5ppc.c:1478 eaix5rs6.c:1478 eaixppc.c:1478 eaixrs6.c:1478
+#: eppcmacos.c:1478
msgid "%P:%s:%d: warning: ignoring unterminated last line\n"
msgstr "%P:%s:%d: упозорење: занемарујем незавршен поÑледњи ред\n"
-#: eaix5ppc.c:1514 eaix5rs6.c:1514 eaixppc.c:1514 eaixrs6.c:1514
-#: eppcmacos.c:1514
-msgid "%F%P: only relocations against symbols are permitted\n"
-msgstr "%F%P: Ñамо премештаји наÑпрам Ñимбола Ñу дозвољени\n"
+#: eaix5ppc.c:1513 eaix5rs6.c:1513 eaixppc.c:1513 eaixrs6.c:1513
+#: eppcmacos.c:1513
+msgid "%P: only relocations against symbols are permitted\n"
+msgstr "%P: Ñамо премештаји наÑпрам Ñимбола Ñу дозвољени\n"
-#: eaix5ppc.c:1517 eaix5rs6.c:1517 eaixppc.c:1517 eaixrs6.c:1517
-#: eppcmacos.c:1517
-msgid "%F%P: bfd_xcoff_link_count_reloc failed: %E\n"
-msgstr "%F%P: „bfd_xcoff_link_count_reloc“ није уÑпело: %E\n"
+#: eaix5ppc.c:1516 eaix5rs6.c:1516 eaixppc.c:1516 eaixrs6.c:1516
+#: eppcmacos.c:1516
+msgid "%P: bfd_xcoff_link_count_reloc failed: %E\n"
+msgstr "%P: „bfd_xcoff_link_count_reloc“ није уÑпело: %E\n"
-#: eaix5ppc.c:1605 eaix5rs6.c:1605 eaixppc.c:1605 eaixrs6.c:1605
-#: eppcmacos.c:1605
-msgid "%F%P: can not create stub BFD: %E\n"
-msgstr "%F%P: не могу да направим „BFD“ окрајка: %E\n"
+#: eaix5ppc.c:1604 eaix5rs6.c:1604 eaixppc.c:1604 eaixrs6.c:1604
+#: eppcmacos.c:1604
+msgid "%P: can not create stub BFD: %E\n"
+msgstr "%P: не могу да направим „BFD“ окрајка: %E\n"
-#: eaix5ppc.c:1615 eaix5rs6.c:1615 eaixppc.c:1615 eaixrs6.c:1615
-#: eelf64_s390.c:66 eelf64lppc.c:132 eelf64lppc_fbsd.c:132 eelf64ppc.c:132
-#: eelf64ppc_fbsd.c:132 eppcmacos.c:1615
-msgid "%F%P: can not init BFD: %E\n"
-msgstr "%F%P: не могу да покренем „BFD“: %E\n"
+#: eaix5ppc.c:1614 eaix5rs6.c:1614 eaixppc.c:1614 eaixrs6.c:1614
+#: eelf32kvx.c:324 eelf64_s390.c:66 eelf64kvx.c:324 eelf64kvx_linux.c:322
+#: eelf64lppc.c:132 eelf64lppc_fbsd.c:132 eelf64ppc.c:132 eelf64ppc_fbsd.c:132
+#: eppcmacos.c:1614
+msgid "%P: can not init BFD: %E\n"
+msgstr "%P: не могу да покренем „BFD“: %E\n"
#: ealphavms.c:168 eelf64_ia64_vms.c:168
#, c-format
@@ -5377,7 +5422,7 @@ msgstr "%P: упозорење: не могу да нађем почетни ÑÐ
#: earmelf_vxworks.c:145 earmelfb.c:145 earmelfb_fbsd.c:145
#: earmelfb_fuchsia.c:146 earmelfb_linux.c:146 earmelfb_linux_eabi.c:146
#: earmelfb_linux_fdpiceabi.c:146 earmelfb_nacl.c:146 earmelfb_nbsd.c:145
-#: earmnto.c:145 ei386beos.c:598
+#: earmnto.c:145 ei386beos.c:592
#, c-format
msgid "%P: errors encountered processing file %s\n"
msgstr "%P: наиђох на грешке током обраде датотеке „%s“\n"
@@ -5389,8 +5434,8 @@ msgstr "%P: наиђох на грешке током обраде датотеÐ
#: earmelfb_fuchsia.c:556 earmelfb_linux.c:556 earmelfb_linux_eabi.c:556
#: earmelfb_linux_fdpiceabi.c:556 earmelfb_nacl.c:556 earmelfb_nbsd.c:555
#: earmnto.c:555
-msgid "%F%P: %s: can't open: %E\n"
-msgstr "%F%P: %s: не могу да отворим: %E\n"
+msgid "%P: %s: can't open: %E\n"
+msgstr "%P: %s: не могу да отворим: %E\n"
#: earmelf.c:558 earmelf_fbsd.c:558 earmelf_fuchsia.c:559 earmelf_haiku.c:559
#: earmelf_linux.c:559 earmelf_linux_eabi.c:559 earmelf_linux_fdpiceabi.c:559
@@ -5399,8 +5444,8 @@ msgstr "%F%P: %s: не могу да отворим: %E\n"
#: earmelfb_fuchsia.c:559 earmelfb_linux.c:559 earmelfb_linux_eabi.c:559
#: earmelfb_linux_fdpiceabi.c:559 earmelfb_nacl.c:559 earmelfb_nbsd.c:558
#: earmnto.c:558
-msgid "%F%P: %s: not a relocatable file: %E\n"
-msgstr "%F%P: %s: није премеÑтива датотека: %E\n"
+msgid "%P: %s: not a relocatable file: %E\n"
+msgstr "%P: %s: није премеÑтива датотека: %E\n"
#: earmelf.c:1101 earmelf_fbsd.c:1101 earmelf_fuchsia.c:1106
#: earmelf_haiku.c:1106 earmelf_linux.c:1106 earmelf_linux_eabi.c:1106
@@ -5712,7 +5757,8 @@ msgstr " --debug-stubs КориÑти Ñе за проÑ
msgid " --debug-relax Used for debugging avr-ld.\n"
msgstr " --debug-relax КориÑти Ñе за прочишћавање „avr-ld“.\n"
-#: ecskyelf.c:278 ecskyelf_linux.c:278
+#: ecskyelf.c:278 ecskyelf_linux.c:278 eelf32kvx.c:271 eelf64kvx.c:271
+#: eelf64kvx_linux.c:269
msgid "%X%P: cannot size stub section: %E\n"
msgstr "%X%P: не могу да одрадим величину одељка окрајка: %E\n"
@@ -5750,8 +5796,8 @@ msgid "%X%P: can not create note section: %E\n"
msgstr "%X%P: не могу да направим одељак напомене: „%E“\n"
#: eelf32_spu.c:347
-msgid "%F%P: no built-in overlay manager\n"
-msgstr "%F%P: нема уграђеног управника преклапања\n"
+msgid "%P: no built-in overlay manager\n"
+msgstr "%P: нема уграђеног управника преклапања\n"
#: eelf32_spu.c:357
msgid "%X%P: can not open built-in overlay manager: %E\n"
@@ -5774,8 +5820,8 @@ msgid "%X%P: can not size overlay stubs: %E\n"
msgstr "%X%P: не могу да одрадим величину окрајака преклапања: „%E“\n"
#: eelf32_spu.c:524
-msgid "%F%P: can not open script: %E\n"
-msgstr "%F%P: не могу да отворим Ñкрипту: %E\n"
+msgid "%P: can not open script: %E\n"
+msgstr "%P: не могу да отворим Ñкрипту: %E\n"
#: eelf32_spu.c:571
msgid "%X%P: %pA exceeds local store range\n"
@@ -5786,36 +5832,36 @@ msgid "%P: --auto-overlay ignored with zero local store range\n"
msgstr "%P: „--auto-overlay“ занемарено Ñа нултим опÑегом локалног Ñмештаја\n"
#: eelf32_spu.c:939
-msgid "%F%P: invalid --local-store address range `%s'\n"
-msgstr "%F%P: неиÑправан опÑег „--local-store“ адреÑе „%s“\n"
+msgid "%P: invalid --local-store address range `%s'\n"
+msgstr "%P: неиÑправан опÑег „--local-store“ адреÑе „%s“\n"
#: eelf32_spu.c:975
-msgid "%F%P: invalid --num-lines/--num-regions `%u'\n"
-msgstr "%F%P: неиÑправно „--num-lines/--num-regions“ „%u“\n"
+msgid "%P: invalid --num-lines/--num-regions `%u'\n"
+msgstr "%P: неиÑправно „--num-lines/--num-regions“ „%u“\n"
#: eelf32_spu.c:980
-msgid "%F%P: invalid --line-size/--region-size `%u'\n"
-msgstr "%F%P: неиÑправно „--line-size/--region-size“ „%u“\n"
+msgid "%P: invalid --line-size/--region-size `%u'\n"
+msgstr "%P: неиÑправно „--line-size/--region-size“ „%u“\n"
#: eelf32_spu.c:1001
-msgid "%F%P: invalid --num-lines/--num-regions `%s'\n"
-msgstr "%F%P: неиÑправно „--num-lines/--num-regions“ „%s“\n"
+msgid "%P: invalid --num-lines/--num-regions `%s'\n"
+msgstr "%P: неиÑправно „--num-lines/--num-regions“ „%s“\n"
#: eelf32_spu.c:1014
-msgid "%F%P: invalid --line-size/--region-size `%s'\n"
-msgstr "%F%P: неиÑправно „--line-size/--region-size“ „%s“\n"
+msgid "%P: invalid --line-size/--region-size `%s'\n"
+msgstr "%P: неиÑправно „--line-size/--region-size“ „%s“\n"
#: eelf32_spu.c:1023
-msgid "%F%P: invalid --fixed-space value `%s'\n"
-msgstr "%F%P: неиÑправна „--fixed-space“ вредноÑÑ‚ „%s“\n"
+msgid "%P: invalid --fixed-space value `%s'\n"
+msgstr "%P: неиÑправна „--fixed-space“ вредноÑÑ‚ „%s“\n"
#: eelf32_spu.c:1032
-msgid "%F%P: invalid --reserved-space value `%s'\n"
-msgstr "%F%P: неиÑправна „--reserved-space“ вредноÑÑ‚ „%s“\n"
+msgid "%P: invalid --reserved-space value `%s'\n"
+msgstr "%P: неиÑправна „--reserved-space“ вредноÑÑ‚ „%s“\n"
#: eelf32_spu.c:1041
-msgid "%F%P: invalid --extra-stack-space value `%s'\n"
-msgstr "%F%P: неиÑправна „--extra-stack-space“ вредноÑÑ‚ „%s“\n"
+msgid "%P: invalid --extra-stack-space value `%s'\n"
+msgstr "%P: неиÑправна „--extra-stack-space“ вредноÑÑ‚ „%s“\n"
#: eelf32_spu.c:1078
#, c-format
@@ -5938,130 +5984,130 @@ msgstr " --non-ia-text Допушта „non-icache“ к
msgid " --lrlive-analysis Scan function prologue for lr liveness\n"
msgstr " --lrlive-analysis ТРажи има ли у прологу функције „lr“ живоÑти\n"
-#: eelf32_tic6x_be.c:91 eelf32_tic6x_elf_be.c:91 eelf32_tic6x_elf_le.c:91
-#: eelf32_tic6x_le.c:91 eelf32_tic6x_linux_be.c:91 eelf32_tic6x_linux_le.c:91
-msgid "%F%P: invalid --dsbt-index %d, outside DSBT size\n"
-msgstr "%F%P: неиÑправно „--dsbt-index“ %d, изван „DSBT“ величине\n"
+#: eelf32_tic6x_be.c:90 eelf32_tic6x_elf_be.c:90 eelf32_tic6x_elf_le.c:90
+#: eelf32_tic6x_le.c:90 eelf32_tic6x_linux_be.c:90 eelf32_tic6x_linux_le.c:90
+msgid "%P: invalid --dsbt-index %d, outside DSBT size\n"
+msgstr "%P: неиÑправно „--dsbt-index“ %d, изван „DSBT“ величине\n"
-#: eelf32_tic6x_be.c:631 eelf32_tic6x_elf_be.c:631 eelf32_tic6x_elf_le.c:631
-#: eelf32_tic6x_le.c:631 eelf32_tic6x_linux_be.c:631
-#: eelf32_tic6x_linux_le.c:631
-msgid "%F%P: invalid --dsbt-index %s\n"
-msgstr "%F%P: неиÑправно „--dsbt-index %s“\n"
+#: eelf32_tic6x_be.c:629 eelf32_tic6x_elf_be.c:629 eelf32_tic6x_elf_le.c:629
+#: eelf32_tic6x_le.c:629 eelf32_tic6x_linux_be.c:629
+#: eelf32_tic6x_linux_le.c:629
+msgid "%P: invalid --dsbt-index %s\n"
+msgstr "%P: неиÑправно „--dsbt-index %s“\n"
-#: eelf32_tic6x_be.c:641 eelf32_tic6x_elf_be.c:641 eelf32_tic6x_elf_le.c:641
-#: eelf32_tic6x_le.c:641 eelf32_tic6x_linux_be.c:641
-#: eelf32_tic6x_linux_le.c:641
-msgid "%F%P: invalid --dsbt-size %s\n"
-msgstr "%F%P: неиÑправно „--dsbt-size %s“\n"
+#: eelf32_tic6x_be.c:639 eelf32_tic6x_elf_be.c:639 eelf32_tic6x_elf_le.c:639
+#: eelf32_tic6x_le.c:639 eelf32_tic6x_linux_be.c:639
+#: eelf32_tic6x_linux_le.c:639
+msgid "%P: invalid --dsbt-size %s\n"
+msgstr "%P: неиÑправно „--dsbt-size %s“\n"
-#: eelf32_tic6x_be.c:657 eelf32_tic6x_elf_be.c:657 eelf32_tic6x_elf_le.c:657
-#: eelf32_tic6x_le.c:657 eelf32_tic6x_linux_be.c:657
-#: eelf32_tic6x_linux_le.c:657
+#: eelf32_tic6x_be.c:655 eelf32_tic6x_elf_be.c:655 eelf32_tic6x_elf_le.c:655
+#: eelf32_tic6x_le.c:655 eelf32_tic6x_linux_be.c:655
+#: eelf32_tic6x_linux_le.c:655
#, c-format
msgid " --dsbt-index <index> Use this as the DSBT index for the output object\n"
msgstr " --dsbt-index <индекÑ> КориÑти ово као „DSBT“ Ð¸Ð½Ð´ÐµÐºÑ Ð·Ð° излазни објект\n"
-#: eelf32_tic6x_be.c:658 eelf32_tic6x_elf_be.c:658 eelf32_tic6x_elf_le.c:658
-#: eelf32_tic6x_le.c:658 eelf32_tic6x_linux_be.c:658
-#: eelf32_tic6x_linux_le.c:658
+#: eelf32_tic6x_be.c:656 eelf32_tic6x_elf_be.c:656 eelf32_tic6x_elf_le.c:656
+#: eelf32_tic6x_le.c:656 eelf32_tic6x_linux_be.c:656
+#: eelf32_tic6x_linux_le.c:656
#, c-format
msgid " --dsbt-size <index> Use this as the number of entries in the DSBT table\n"
msgstr " --dsbt-size <индекÑ> КориÑти ово као број уноÑа у „DSBT“ табели\n"
-#: eelf32_tic6x_be.c:659 eelf32_tic6x_elf_be.c:659 eelf32_tic6x_elf_le.c:659
-#: eelf32_tic6x_le.c:659 eelf32_tic6x_linux_be.c:659
-#: eelf32_tic6x_linux_le.c:659
+#: eelf32_tic6x_be.c:657 eelf32_tic6x_elf_be.c:657 eelf32_tic6x_elf_le.c:657
+#: eelf32_tic6x_le.c:657 eelf32_tic6x_linux_be.c:657
+#: eelf32_tic6x_linux_le.c:657
#, c-format
msgid " --no-merge-exidx-entries\n"
msgstr " --no-merge-exidx-entries\n"
-#: eelf32_tic6x_be.c:660 eelf32_tic6x_elf_be.c:660 eelf32_tic6x_elf_le.c:660
-#: eelf32_tic6x_le.c:660 eelf32_tic6x_linux_be.c:660
-#: eelf32_tic6x_linux_le.c:660
+#: eelf32_tic6x_be.c:658 eelf32_tic6x_elf_be.c:658 eelf32_tic6x_elf_le.c:658
+#: eelf32_tic6x_le.c:658 eelf32_tic6x_linux_be.c:658
+#: eelf32_tic6x_linux_le.c:658
#, c-format
msgid " Disable merging exidx entries\n"
msgstr " Онеогућује Ñтапање „exidx“ уноÑа\n"
-#: eelf32_x86_64.c:8606 eelf_i386.c:8061 eelf_i386_be.c:542
+#: eelf32_x86_64.c:8638 eelf_i386.c:8061 eelf_i386_be.c:542
#: eelf_i386_fbsd.c:593 eelf_i386_haiku.c:593 eelf_i386_ldso.c:553
#: eelf_i386_sol2.c:725 eelf_i386_vxworks.c:619 eelf_iamcu.c:593
-#: eelf_x86_64.c:8606 eelf_x86_64_cloudabi.c:604 eelf_x86_64_fbsd.c:604
-#: eelf_x86_64_haiku.c:604 eelf_x86_64_sol2.c:736
-msgid "%F%P: invalid number for -z call-nop=prefix-: %s\n"
-msgstr "%F%P: неиÑправан број за „-z call-nop=prefix-“: %s\n"
+#: eelf_x86_64.c:8638 eelf_x86_64_cloudabi.c:636 eelf_x86_64_fbsd.c:636
+#: eelf_x86_64_haiku.c:636 eelf_x86_64_sol2.c:768
+msgid "%P: invalid number for -z call-nop=prefix-: %s\n"
+msgstr "%P: неиÑправан број за „-z call-nop=prefix-“: %s\n"
-#: eelf32_x86_64.c:8615 eelf_i386.c:8070 eelf_i386_be.c:551
+#: eelf32_x86_64.c:8647 eelf_i386.c:8070 eelf_i386_be.c:551
#: eelf_i386_fbsd.c:602 eelf_i386_haiku.c:602 eelf_i386_ldso.c:562
#: eelf_i386_sol2.c:734 eelf_i386_vxworks.c:628 eelf_iamcu.c:602
-#: eelf_x86_64.c:8615 eelf_x86_64_cloudabi.c:613 eelf_x86_64_fbsd.c:613
-#: eelf_x86_64_haiku.c:613 eelf_x86_64_sol2.c:745
-msgid "%F%P: invalid number for -z call-nop=suffix-: %s\n"
-msgstr "%F%P: неиÑправан број за „-z call-nop=suffix-“: %s\n"
+#: eelf_x86_64.c:8647 eelf_x86_64_cloudabi.c:645 eelf_x86_64_fbsd.c:645
+#: eelf_x86_64_haiku.c:645 eelf_x86_64_sol2.c:777
+msgid "%P: invalid number for -z call-nop=suffix-: %s\n"
+msgstr "%P: неиÑправан број за „-z call-nop=suffix-“: %s\n"
-#: eelf32_x86_64.c:8620 eelf_i386.c:8075 eelf_i386_be.c:556
+#: eelf32_x86_64.c:8652 eelf_i386.c:8075 eelf_i386_be.c:556
#: eelf_i386_fbsd.c:607 eelf_i386_haiku.c:607 eelf_i386_ldso.c:567
#: eelf_i386_sol2.c:739 eelf_i386_vxworks.c:633 eelf_iamcu.c:607
-#: eelf_x86_64.c:8620 eelf_x86_64_cloudabi.c:618 eelf_x86_64_fbsd.c:618
-#: eelf_x86_64_haiku.c:618 eelf_x86_64_sol2.c:750
-msgid "%F%P: unsupported option: -z %s\n"
-msgstr "%F%P: неподржана опција: „-z“ „%s“\n"
-
-#: eelf32_x86_64.c:8642 eelf_i386.c:8097 eelf_i386_fbsd.c:629
-#: eelf_i386_haiku.c:629 eelf_x86_64.c:8642 eelf_x86_64_cloudabi.c:640
-#: eelf_x86_64_fbsd.c:640 eelf_x86_64_haiku.c:640 eelf_x86_64_sol2.c:772
-msgid "%F%P: invalid option for -z cet-report=: %s\n"
-msgstr "%F%P: неиÑправна опција „-z cet-report=“: %s\n"
-
-#: eelf32_x86_64.c:8656 eelf_i386.c:8111 eelf_i386_fbsd.c:643
-#: eelf_i386_haiku.c:643 eelf_x86_64.c:8656 eelf_x86_64_cloudabi.c:654
-#: eelf_x86_64_fbsd.c:654 eelf_x86_64_haiku.c:654 eelf_x86_64_sol2.c:786
-msgid "%F%P: invalid x86-64 ISA level: %s\n"
-msgstr "%F%P: неиÑправан „x86-64 ISA“ ниво: %s\n"
-
-#: eelf32_x86_64.c:8672 eelf_i386.c:8127 eelf_i386_fbsd.c:659
-#: eelf_i386_haiku.c:659 eelf_x86_64.c:8672 eelf_x86_64_cloudabi.c:670
-#: eelf_x86_64_fbsd.c:670 eelf_x86_64_haiku.c:670 eelf_x86_64_sol2.c:802
-msgid "%F%P: invalid option for -z isa-level-report=: %s\n"
-msgstr "%F%P: неиÑправна опција за „-z isa-level-report=“: %s\n"
-
-#: eelf32_x86_64.c:8719 eelf_i386.c:8169 eelf_i386_be.c:572
+#: eelf_x86_64.c:8652 eelf_x86_64_cloudabi.c:650 eelf_x86_64_fbsd.c:650
+#: eelf_x86_64_haiku.c:650 eelf_x86_64_sol2.c:782
+msgid "%P: unsupported option: -z %s\n"
+msgstr "%P: неподржана опција: „-z“ „%s“\n"
+
+#: eelf32_x86_64.c:8674 eelf_i386.c:8097 eelf_i386_fbsd.c:629
+#: eelf_i386_haiku.c:629 eelf_x86_64.c:8674 eelf_x86_64_cloudabi.c:672
+#: eelf_x86_64_fbsd.c:672 eelf_x86_64_haiku.c:672 eelf_x86_64_sol2.c:804
+msgid "%P: invalid option for -z cet-report=: %s\n"
+msgstr "%P: неиÑправна опција „-z cet-report=“: %s\n"
+
+#: eelf32_x86_64.c:8688 eelf_i386.c:8111 eelf_i386_fbsd.c:643
+#: eelf_i386_haiku.c:643 eelf_x86_64.c:8688 eelf_x86_64_cloudabi.c:686
+#: eelf_x86_64_fbsd.c:686 eelf_x86_64_haiku.c:686 eelf_x86_64_sol2.c:818
+msgid "%P: invalid x86-64 ISA level: %s\n"
+msgstr "%P: неиÑправан „x86-64 ISA“ ниво: %s\n"
+
+#: eelf32_x86_64.c:8704 eelf_i386.c:8127 eelf_i386_fbsd.c:659
+#: eelf_i386_haiku.c:659 eelf_x86_64.c:8704 eelf_x86_64_cloudabi.c:702
+#: eelf_x86_64_fbsd.c:702 eelf_x86_64_haiku.c:702 eelf_x86_64_sol2.c:834
+msgid "%P: invalid option for -z isa-level-report=: %s\n"
+msgstr "%P: неиÑправна опција за „-z isa-level-report=“: %s\n"
+
+#: eelf32_x86_64.c:8751 eelf_i386.c:8169 eelf_i386_be.c:572
#: eelf_i386_fbsd.c:701 eelf_i386_haiku.c:701 eelf_i386_ldso.c:592
#: eelf_i386_sol2.c:764 eelf_i386_vxworks.c:654 eelf_iamcu.c:632
-#: eelf_x86_64.c:8769 eelf_x86_64_cloudabi.c:767 eelf_x86_64_fbsd.c:767
-#: eelf_x86_64_haiku.c:767 eelf_x86_64_sol2.c:899
+#: eelf_x86_64.c:8801 eelf_x86_64_cloudabi.c:799 eelf_x86_64_fbsd.c:799
+#: eelf_x86_64_haiku.c:799 eelf_x86_64_sol2.c:931
#, c-format
msgid " -z noextern-protected-data Do not treat protected data symbol as external\n"
msgstr " -z noextern-protected-data Ðе Ñматра заштићени Ñимбол података Ñпољним\n"
-#: eelf32_x86_64.c:8721 eelf_i386.c:8171 eelf_i386_be.c:574
+#: eelf32_x86_64.c:8753 eelf_i386.c:8171 eelf_i386_be.c:574
#: eelf_i386_fbsd.c:703 eelf_i386_haiku.c:703 eelf_i386_ldso.c:594
#: eelf_i386_sol2.c:766 eelf_i386_vxworks.c:656 eelf_iamcu.c:634
-#: eelf_x86_64.c:8771 eelf_x86_64_cloudabi.c:769 eelf_x86_64_fbsd.c:769
-#: eelf_x86_64_haiku.c:769 eelf_x86_64_sol2.c:901
+#: eelf_x86_64.c:8803 eelf_x86_64_cloudabi.c:801 eelf_x86_64_fbsd.c:801
+#: eelf_x86_64_haiku.c:801 eelf_x86_64_sol2.c:933
#, c-format
msgid " -z indirect-extern-access Enable indirect external access\n"
msgstr " -z indirect-extern-access Укључује поÑредан Ñпољни приÑтуп\n"
-#: eelf32_x86_64.c:8723 eelf_i386.c:8173 eelf_i386_be.c:576
+#: eelf32_x86_64.c:8755 eelf_i386.c:8173 eelf_i386_be.c:576
#: eelf_i386_fbsd.c:705 eelf_i386_haiku.c:705 eelf_i386_ldso.c:596
#: eelf_i386_sol2.c:768 eelf_i386_vxworks.c:658 eelf_iamcu.c:636
-#: eelf_x86_64.c:8773 eelf_x86_64_cloudabi.c:771 eelf_x86_64_fbsd.c:771
-#: eelf_x86_64_haiku.c:771 eelf_x86_64_sol2.c:903
+#: eelf_x86_64.c:8805 eelf_x86_64_cloudabi.c:803 eelf_x86_64_fbsd.c:803
+#: eelf_x86_64_haiku.c:803 eelf_x86_64_sol2.c:935
#, c-format
msgid " -z noindirect-extern-access Disable indirect external access (default)\n"
msgstr " -z noindirect-extern-access ИÑкључује поÑредан Ñпољни приÑтуп (оÑновно)\n"
-#: eelf32_x86_64.c:8726 eelf32lppc.c:869 eelf32lppclinux.c:869
+#: eelf32_x86_64.c:8758 eelf32lppc.c:869 eelf32lppclinux.c:869
#: eelf32lppcnto.c:869 eelf32lppcsim.c:869 eelf32ppc.c:869 eelf32ppc_fbsd.c:869
#: eelf32ppchaiku.c:869 eelf32ppclinux.c:869 eelf32ppcnto.c:869
#: eelf32ppcsim.c:869 eelf32ppcvxworks.c:843 eelf32ppcwindiss.c:869
-#: eelf64lppc.c:1384 eelf64lppc_fbsd.c:1384 eelf64ppc.c:1384
-#: eelf64ppc_fbsd.c:1384 eelf_i386.c:8176 eelf_i386_be.c:579
+#: eelf64lppc.c:1385 eelf64lppc_fbsd.c:1385 eelf64ppc.c:1385
+#: eelf64ppc_fbsd.c:1385 eelf_i386.c:8176 eelf_i386_be.c:579
#: eelf_i386_fbsd.c:708 eelf_i386_haiku.c:708 eelf_i386_ldso.c:599
#: eelf_i386_sol2.c:771 eelf_i386_vxworks.c:661 eelf_iamcu.c:639
-#: eelf_x86_64.c:8776 eelf_x86_64_cloudabi.c:774 eelf_x86_64_fbsd.c:774
-#: eelf_x86_64_haiku.c:774 eelf_x86_64_sol2.c:906
+#: eelf_x86_64.c:8808 eelf_x86_64_cloudabi.c:806 eelf_x86_64_fbsd.c:806
+#: eelf_x86_64_haiku.c:806 eelf_x86_64_sol2.c:938
#, c-format
msgid ""
" -z dynamic-undefined-weak Make undefined weak symbols dynamic\n"
@@ -6070,45 +6116,45 @@ msgstr ""
" -z dynamic-undefined-weak Чини недефиниÑане Ñлабе Ñимболе динамичким\n"
" -z nodynamic-undefined-weak Ðе чини недефиниÑане Ñлабе Ñимболе динамичким\n"
-#: eelf32_x86_64.c:8730 eelf_x86_64.c:8780 eelf_x86_64_cloudabi.c:778
-#: eelf_x86_64_fbsd.c:778 eelf_x86_64_haiku.c:778 eelf_x86_64_sol2.c:910
+#: eelf32_x86_64.c:8762 eelf_x86_64.c:8812 eelf_x86_64_cloudabi.c:810
+#: eelf_x86_64_fbsd.c:810 eelf_x86_64_haiku.c:810 eelf_x86_64_sol2.c:942
#, c-format
msgid " -z noreloc-overflow Disable relocation overflow check\n"
msgstr " -z noreloc-overflow ИÑкључује проверу прекорачења премештаја\n"
-#: eelf32_x86_64.c:8733 eelf_i386.c:8180 eelf_i386_be.c:583
+#: eelf32_x86_64.c:8765 eelf_i386.c:8180 eelf_i386_be.c:583
#: eelf_i386_fbsd.c:712 eelf_i386_haiku.c:712 eelf_i386_ldso.c:603
#: eelf_i386_sol2.c:775 eelf_i386_vxworks.c:665 eelf_iamcu.c:643
-#: eelf_x86_64.c:8783 eelf_x86_64_cloudabi.c:781 eelf_x86_64_fbsd.c:781
-#: eelf_x86_64_haiku.c:781 eelf_x86_64_sol2.c:913
+#: eelf_x86_64.c:8815 eelf_x86_64_cloudabi.c:813 eelf_x86_64_fbsd.c:813
+#: eelf_x86_64_haiku.c:813 eelf_x86_64_sol2.c:945
#, c-format
msgid " -z call-nop=PADDING Use PADDING as 1-byte NOP for branch\n"
msgstr " -z call-nop=ПОПУЊÐÐ’ÐЊЕ КориÑти ПОПУЊÐÐ’ÐЊЕ као 1-бајтни „NOP“ за грану\n"
-#: eelf32_x86_64.c:8736 eelf_i386.c:8183 eelf_i386_fbsd.c:715
-#: eelf_i386_haiku.c:715 eelf_x86_64.c:8786 eelf_x86_64_cloudabi.c:784
-#: eelf_x86_64_fbsd.c:784 eelf_x86_64_haiku.c:784 eelf_x86_64_sol2.c:916
+#: eelf32_x86_64.c:8768 eelf_i386.c:8183 eelf_i386_fbsd.c:715
+#: eelf_i386_haiku.c:715 eelf_x86_64.c:8818 eelf_x86_64_cloudabi.c:816
+#: eelf_x86_64_fbsd.c:816 eelf_x86_64_haiku.c:816 eelf_x86_64_sol2.c:948
#, c-format
msgid " -z ibtplt Generate IBT-enabled PLT entries\n"
msgstr " -z ibtplt Ствара „IBT“-ом омогућене „PLT“ уноÑе\n"
-#: eelf32_x86_64.c:8738 eelf_i386.c:8185 eelf_i386_fbsd.c:717
-#: eelf_i386_haiku.c:717 eelf_x86_64.c:8788 eelf_x86_64_cloudabi.c:786
-#: eelf_x86_64_fbsd.c:786 eelf_x86_64_haiku.c:786 eelf_x86_64_sol2.c:918
+#: eelf32_x86_64.c:8770 eelf_i386.c:8185 eelf_i386_fbsd.c:717
+#: eelf_i386_haiku.c:717 eelf_x86_64.c:8820 eelf_x86_64_cloudabi.c:818
+#: eelf_x86_64_fbsd.c:818 eelf_x86_64_haiku.c:818 eelf_x86_64_sol2.c:950
#, c-format
msgid " -z ibt Generate GNU_PROPERTY_X86_FEATURE_1_IBT\n"
msgstr " -z ibt Ствара „GNU_PROPERTY_X86_FEATURE_1_IBT“\n"
-#: eelf32_x86_64.c:8740 eelf_i386.c:8187 eelf_i386_fbsd.c:719
-#: eelf_i386_haiku.c:719 eelf_x86_64.c:8790 eelf_x86_64_cloudabi.c:788
-#: eelf_x86_64_fbsd.c:788 eelf_x86_64_haiku.c:788 eelf_x86_64_sol2.c:920
+#: eelf32_x86_64.c:8772 eelf_i386.c:8187 eelf_i386_fbsd.c:719
+#: eelf_i386_haiku.c:719 eelf_x86_64.c:8822 eelf_x86_64_cloudabi.c:820
+#: eelf_x86_64_fbsd.c:820 eelf_x86_64_haiku.c:820 eelf_x86_64_sol2.c:952
#, c-format
msgid " -z shstk Generate GNU_PROPERTY_X86_FEATURE_1_SHSTK\n"
msgstr " -z shstk Ствара „GNU_PROPERTY_X86_FEATURE_1_SHSTK“\n"
-#: eelf32_x86_64.c:8742 eelf_i386.c:8189 eelf_i386_fbsd.c:721
-#: eelf_i386_haiku.c:721 eelf_x86_64.c:8792 eelf_x86_64_cloudabi.c:790
-#: eelf_x86_64_fbsd.c:790 eelf_x86_64_haiku.c:790 eelf_x86_64_sol2.c:922
+#: eelf32_x86_64.c:8774 eelf_i386.c:8189 eelf_i386_fbsd.c:721
+#: eelf_i386_haiku.c:721 eelf_x86_64.c:8824 eelf_x86_64_cloudabi.c:822
+#: eelf_x86_64_fbsd.c:822 eelf_x86_64_haiku.c:822 eelf_x86_64_sol2.c:954
#, c-format
msgid ""
" -z cet-report=[none|warning|error] (default: none)\n"
@@ -6117,23 +6163,23 @@ msgstr ""
" -z cet-report=[ништа|упозорење|грешка] (оÑновно: ништа)\n"
" Извештава о недоÑтајућим „IBT“ и „SHSTK“ извештајима\n"
-#: eelf32_x86_64.c:8746 eelf_i386.c:8193 eelf_i386_fbsd.c:725
-#: eelf_i386_haiku.c:725 eelf_x86_64.c:8796 eelf_x86_64_cloudabi.c:794
-#: eelf_x86_64_fbsd.c:794 eelf_x86_64_haiku.c:794 eelf_x86_64_sol2.c:926
+#: eelf32_x86_64.c:8778 eelf_i386.c:8193 eelf_i386_fbsd.c:725
+#: eelf_i386_haiku.c:725 eelf_x86_64.c:8828 eelf_x86_64_cloudabi.c:826
+#: eelf_x86_64_fbsd.c:826 eelf_x86_64_haiku.c:826 eelf_x86_64_sol2.c:958
#, c-format
msgid " -z report-relative-reloc Report relative relocations\n"
msgstr " -z report-relative-reloc Извештава о релативним премештајима\n"
-#: eelf32_x86_64.c:8749 eelf_i386.c:8196 eelf_i386_fbsd.c:728
-#: eelf_i386_haiku.c:728 eelf_x86_64.c:8799 eelf_x86_64_cloudabi.c:797
-#: eelf_x86_64_fbsd.c:797 eelf_x86_64_haiku.c:797 eelf_x86_64_sol2.c:929
+#: eelf32_x86_64.c:8781 eelf_i386.c:8196 eelf_i386_fbsd.c:728
+#: eelf_i386_haiku.c:728 eelf_x86_64.c:8831 eelf_x86_64_cloudabi.c:829
+#: eelf_x86_64_fbsd.c:829 eelf_x86_64_haiku.c:829 eelf_x86_64_sol2.c:961
#, c-format
msgid " -z x86-64-{baseline|v[234]} Mark x86-64-{baseline|v[234]} ISA level as needed\n"
msgstr " -z x86-64-{baseline|v[234]} Означава потребним „x86-64-{baseline|v[234]} ISA“ ниво\n"
-#: eelf32_x86_64.c:8752 eelf_i386.c:8199 eelf_i386_fbsd.c:731
-#: eelf_i386_haiku.c:731 eelf_x86_64.c:8802 eelf_x86_64_cloudabi.c:800
-#: eelf_x86_64_fbsd.c:800 eelf_x86_64_haiku.c:800 eelf_x86_64_sol2.c:932
+#: eelf32_x86_64.c:8784 eelf_i386.c:8199 eelf_i386_fbsd.c:731
+#: eelf_i386_haiku.c:731 eelf_x86_64.c:8834 eelf_x86_64_cloudabi.c:832
+#: eelf_x86_64_fbsd.c:832 eelf_x86_64_haiku.c:832 eelf_x86_64_sol2.c:964
#, c-format
msgid ""
" -z isa-level-report=[none|all|needed|used] (default: none)\n"
@@ -6142,8 +6188,8 @@ msgstr ""
" -z isa-level-report=[none|all|needed|used] (оÑновно: none)\n"
" Пријављује x86-64 ISA ниво\n"
-#: eelf32_x86_64.c:8757 eelf_x86_64.c:8821 eelf_x86_64_cloudabi.c:819
-#: eelf_x86_64_fbsd.c:819 eelf_x86_64_haiku.c:819 eelf_x86_64_sol2.c:951
+#: eelf32_x86_64.c:8789 eelf_x86_64.c:8853 eelf_x86_64_cloudabi.c:851
+#: eelf_x86_64_fbsd.c:851 eelf_x86_64_haiku.c:851 eelf_x86_64_sol2.c:983
#, c-format
msgid ""
" -z mark-plt Mark PLT with dynamic tags (default)\n"
@@ -6152,8 +6198,8 @@ msgstr ""
" -z mark-plt Означава PLT динамичким ознакама (оÑновно)\n"
" -z nomark-plt Ðе означава PLT динамичким ознакама\n"
-#: eelf32_x86_64.c:8761 eelf_x86_64.c:8825 eelf_x86_64_cloudabi.c:823
-#: eelf_x86_64_fbsd.c:823 eelf_x86_64_haiku.c:823 eelf_x86_64_sol2.c:955
+#: eelf32_x86_64.c:8793 eelf_x86_64.c:8857 eelf_x86_64_cloudabi.c:855
+#: eelf_x86_64_fbsd.c:855 eelf_x86_64_haiku.c:855 eelf_x86_64_sol2.c:987
#, c-format
msgid ""
" -z mark-plt Mark PLT with dynamic tags\n"
@@ -6162,20 +6208,20 @@ msgstr ""
" -z mark-plt Означава PLT динамичким ознакама\n"
" -z nomark-plt Ðе означава PLT динамичким ознакама (оÑновно)\n"
-#: eelf32_x86_64.c:8765 eelf64loongarch.c:619 eelf64lppc.c:1388
-#: eelf64lppc_fbsd.c:1388 eelf64ppc.c:1388 eelf64ppc_fbsd.c:1388
+#: eelf32_x86_64.c:8797 eelf64loongarch.c:619 eelf64lppc.c:1389
+#: eelf64lppc_fbsd.c:1389 eelf64ppc.c:1389 eelf64ppc_fbsd.c:1389
#: eelf_i386.c:8203 eelf_i386_fbsd.c:735 eelf_i386_haiku.c:735
-#: eelf_x86_64.c:8829 eelf_x86_64_cloudabi.c:827 eelf_x86_64_fbsd.c:827
-#: eelf_x86_64_haiku.c:827 eelf_x86_64_sol2.c:959
+#: eelf_x86_64.c:8861 eelf_x86_64_cloudabi.c:859 eelf_x86_64_fbsd.c:859
+#: eelf_x86_64_haiku.c:859 eelf_x86_64_sol2.c:991
#, c-format
msgid " -z pack-relative-relocs Pack relative relocations\n"
msgstr " -z pack-relative-relocs Пакује релативне премештаје\n"
-#: eelf32_x86_64.c:8767 eelf64loongarch.c:621 eelf64lppc.c:1390
-#: eelf64lppc_fbsd.c:1390 eelf64ppc.c:1390 eelf64ppc_fbsd.c:1390
+#: eelf32_x86_64.c:8799 eelf64loongarch.c:621 eelf64lppc.c:1391
+#: eelf64lppc_fbsd.c:1391 eelf64ppc.c:1391 eelf64ppc_fbsd.c:1391
#: eelf_i386.c:8205 eelf_i386_fbsd.c:737 eelf_i386_haiku.c:737
-#: eelf_x86_64.c:8831 eelf_x86_64_cloudabi.c:829 eelf_x86_64_fbsd.c:829
-#: eelf_x86_64_haiku.c:829 eelf_x86_64_sol2.c:961
+#: eelf_x86_64.c:8863 eelf_x86_64_cloudabi.c:861 eelf_x86_64_fbsd.c:861
+#: eelf_x86_64_haiku.c:861 eelf_x86_64_sol2.c:993
#, c-format
msgid " -z nopack-relative-relocs Do not pack relative relocations (default)\n"
msgstr " -z nopack-relative-relocs Ðе пакује релативне премештаје (оÑновно)\n"
@@ -6309,12 +6355,12 @@ msgid " --no-check-uleb128 Don't check if SUB_ULEB128 has non-zero add
msgstr " --no-check-uleb128 Ðе проверава да ли SUB_ULEB128 има не-нулти Ñабирак\n"
#: eelf32cr16.c:88
-msgid "%F%P: %pB: all input objects must be COFF or ELF for --embedded-relocs\n"
-msgstr "%F%P: %pB: Ñви улазни објекти морају бити „COFF“ или „ELF“ за „--embedded-relocs“\n"
+msgid "%P: %pB: all input objects must be COFF or ELF for --embedded-relocs\n"
+msgstr "%P: %pB: Ñви улазни објекти морају бити „COFF“ или „ELF“ за „--embedded-relocs“\n"
#: eelf32cr16.c:112 em68kelf.c:116 em68kelfnbsd.c:116
-msgid "%F%P: %pB: can not create .emreloc section: %E\n"
-msgstr "%F%P: %pB: не могу да направим „.emreloc“ одељак: %E\n"
+msgid "%P: %pB: can not create .emreloc section: %E\n"
+msgstr "%P: %pB: не могу да направим „.emreloc“ одељак: %E\n"
#: eelf32cr16.c:131 em68kelf.c:137 em68kelfnbsd.c:137
msgid "%X%P: %pB: section %s has relocs; can not use --embedded-relocs\n"
@@ -6329,8 +6375,12 @@ msgid "%X%P: %pB: can not create runtime reloc information: %s\n"
msgstr "%X%P: %pB: не могу да направим податке премштаја времена извршења: %s\n"
#: eelf32kvx.c:64 eelf64kvx.c:64
-msgid "%F:%P: -pie not supported\n"
-msgstr "%F:%P: „-pie“ није подржано\n"
+msgid ":%P: -pie not supported\n"
+msgstr ":%P: „-pie“ није подржано\n"
+
+#: eelf32kvx.c:316 eelf64kvx.c:316 eelf64kvx_linux.c:314
+msgid "%P: can not create BFD %E\n"
+msgstr "%P: не могу да направим „BFD“: %E\n"
#: eelf32lppc.c:99 eelf32lppclinux.c:99 eelf32lppcnto.c:99 eelf32lppcsim.c:99
#: eelf32ppc.c:99 eelf32ppc_fbsd.c:99 eelf32ppchaiku.c:99 eelf32ppclinux.c:99
@@ -6367,24 +6417,24 @@ msgstr "%X%P: „ppc_finish_symbols“ проблем „%E“\n"
#: eelf32lppcsim.c:810 eelf32ppc.c:810 eelf32ppc_fbsd.c:810
#: eelf32ppchaiku.c:810 eelf32ppclinux.c:810 eelf32ppcnto.c:810
#: eelf32ppcsim.c:810 eelf32ppcvxworks.c:780 eelf32ppcwindiss.c:810
-#: eelf64lppc.c:1251 eelf64lppc_fbsd.c:1251 eelf64ppc.c:1251
-#: eelf64ppc_fbsd.c:1251
-msgid "%F%P: invalid --plt-align `%s'\n"
-msgstr "%F%P: неиÑправно „--plt-align“ „%s“\n"
+#: eelf64lppc.c:1252 eelf64lppc_fbsd.c:1252 eelf64ppc.c:1252
+#: eelf64ppc_fbsd.c:1252
+msgid "%P: invalid --plt-align `%s'\n"
+msgstr "%P: неиÑправно „--plt-align“ „%s“\n"
#: eelf32lppc.c:843 eelf32lppclinux.c:843 eelf32lppcnto.c:843
#: eelf32lppcsim.c:843 eelf32ppc.c:843 eelf32ppc_fbsd.c:843
#: eelf32ppchaiku.c:843 eelf32ppclinux.c:843 eelf32ppcnto.c:843
#: eelf32ppcsim.c:843 eelf32ppcvxworks.c:813 eelf32ppcwindiss.c:843
-msgid "%F%P: invalid pagesize `%s'\n"
-msgstr "%F%P: неиÑправна величина Ñтранице „%s“\n"
+msgid "%P: invalid pagesize `%s'\n"
+msgstr "%P: неиÑправна величина Ñтранице „%s“\n"
#: eelf32lppc.c:873 eelf32lppclinux.c:873 eelf32lppcnto.c:873
#: eelf32lppcsim.c:873 eelf32ppc.c:873 eelf32ppc_fbsd.c:873
#: eelf32ppchaiku.c:873 eelf32ppclinux.c:873 eelf32ppcnto.c:873
#: eelf32ppcsim.c:873 eelf32ppcvxworks.c:847 eelf32ppcwindiss.c:873
-#: eelf64lppc.c:1436 eelf64lppc_fbsd.c:1436 eelf64ppc.c:1436
-#: eelf64ppc_fbsd.c:1436
+#: eelf64lppc.c:1437 eelf64lppc_fbsd.c:1437 eelf64ppc.c:1437
+#: eelf64ppc_fbsd.c:1437
#, c-format
msgid " --emit-stub-syms Label linker stubs with a symbol\n"
msgstr " --emit-stub-syms Етикетира окрајке повезивача Ñимболом\n"
@@ -6393,8 +6443,8 @@ msgstr " --emit-stub-syms Етикетира окрајке
#: eelf32lppcsim.c:876 eelf32ppc.c:876 eelf32ppc_fbsd.c:876
#: eelf32ppchaiku.c:876 eelf32ppclinux.c:876 eelf32ppcnto.c:876
#: eelf32ppcsim.c:876 eelf32ppcvxworks.c:850 eelf32ppcwindiss.c:876
-#: eelf64lppc.c:1439 eelf64lppc_fbsd.c:1439 eelf64ppc.c:1439
-#: eelf64ppc_fbsd.c:1439
+#: eelf64lppc.c:1440 eelf64lppc_fbsd.c:1440 eelf64ppc.c:1440
+#: eelf64ppc_fbsd.c:1440
#, c-format
msgid " --no-emit-stub-syms Don't label linker stubs with a symbol\n"
msgstr " --no-emit-stub-syms Ðе етикетира окрајке повезивача Ñимболом\n"
@@ -6403,8 +6453,8 @@ msgstr " --no-emit-stub-syms Ðе етикетира окраÑ
#: eelf32lppcsim.c:879 eelf32ppc.c:879 eelf32ppc_fbsd.c:879
#: eelf32ppchaiku.c:879 eelf32ppclinux.c:879 eelf32ppcnto.c:879
#: eelf32ppcsim.c:879 eelf32ppcvxworks.c:853 eelf32ppcwindiss.c:879
-#: eelf64lppc.c:1459 eelf64lppc_fbsd.c:1459 eelf64ppc.c:1459
-#: eelf64ppc_fbsd.c:1459
+#: eelf64lppc.c:1460 eelf64lppc_fbsd.c:1460 eelf64ppc.c:1460
+#: eelf64ppc_fbsd.c:1460
#, c-format
msgid " --no-tls-optimize Don't try to optimize TLS accesses\n"
msgstr " --no-tls-optimize Ðе покушава да оптимизује „TLS“ приÑтупе\n"
@@ -6413,8 +6463,8 @@ msgstr " --no-tls-optimize Ðе покушава да оптÐ
#: eelf32lppcsim.c:882 eelf32ppc.c:882 eelf32ppc_fbsd.c:882
#: eelf32ppchaiku.c:882 eelf32ppclinux.c:882 eelf32ppcnto.c:882
#: eelf32ppcsim.c:882 eelf32ppcvxworks.c:856 eelf32ppcwindiss.c:882
-#: eelf64lppc.c:1465 eelf64lppc_fbsd.c:1465 eelf64ppc.c:1465
-#: eelf64ppc_fbsd.c:1465
+#: eelf64lppc.c:1466 eelf64lppc_fbsd.c:1466 eelf64ppc.c:1466
+#: eelf64ppc_fbsd.c:1466
#, c-format
msgid " --no-tls-get-addr-optimize Don't use a special __tls_get_addr call\n"
msgstr " --no-tls-get-addr-optimize Ðе кориÑти Ñпецијални „__tls_get_addr“ позив\n"
@@ -6446,8 +6496,8 @@ msgstr " --plt-align Поравнава окрајке
#: eelf32lppc.c:894 eelf32lppclinux.c:894 eelf32lppcnto.c:894
#: eelf32lppcsim.c:894 eelf32ppc.c:894 eelf32ppc_fbsd.c:894
#: eelf32ppchaiku.c:894 eelf32ppclinux.c:894 eelf32ppcnto.c:894
-#: eelf32ppcsim.c:894 eelf32ppcwindiss.c:894 eelf64lppc.c:1418
-#: eelf64lppc_fbsd.c:1418 eelf64ppc.c:1418 eelf64ppc_fbsd.c:1418
+#: eelf32ppcsim.c:894 eelf32ppcwindiss.c:894 eelf64lppc.c:1419
+#: eelf64lppc_fbsd.c:1419 eelf64ppc.c:1419 eelf64ppc_fbsd.c:1419
#, c-format
msgid " --no-plt-align Dont't align individual PLT call stubs\n"
msgstr " --no-plt-align Ðе поравнава неиÑправне окрајке „PLT“ позива\n"
@@ -6455,8 +6505,8 @@ msgstr " --no-plt-align Ðе поравнава неиÑп
#: eelf32lppc.c:897 eelf32lppclinux.c:897 eelf32lppcnto.c:897
#: eelf32lppcsim.c:897 eelf32ppc.c:897 eelf32ppc_fbsd.c:897
#: eelf32ppchaiku.c:897 eelf32ppclinux.c:897 eelf32ppcnto.c:897
-#: eelf32ppcsim.c:897 eelf32ppcwindiss.c:897 eelf64lppc.c:1477
-#: eelf64lppc_fbsd.c:1477 eelf64ppc.c:1477 eelf64ppc_fbsd.c:1477
+#: eelf32ppcsim.c:897 eelf32ppcwindiss.c:897 eelf64lppc.c:1478
+#: eelf64lppc_fbsd.c:1478 eelf64ppc.c:1478 eelf64ppc_fbsd.c:1478
#, c-format
msgid " --no-inline-optimize Don't convert inline PLT to direct calls\n"
msgstr " --no-inline-optimize Ðе претвара унутарње „PLT“ у директне позиве\n"
@@ -6510,8 +6560,8 @@ msgstr " --vle-reloc-fixup Поправља „16A/16D“ пÑ
msgid " --base_file <basefile> Generate a base file for relocatable DLLs\n"
msgstr " --base_file <дттка_оÑнове> Ствара датотеку оÑнове за премеÑтљиве „DLL“-ове\n"
-#: eelf32metag.c:802 eelf64lppc.c:1393 eelf64lppc_fbsd.c:1393 eelf64ppc.c:1393
-#: eelf64ppc_fbsd.c:1393 ehppaelf.c:631 ehppalinux.c:843 ehppanbsd.c:843
+#: eelf32metag.c:802 eelf64lppc.c:1394 eelf64lppc_fbsd.c:1394 eelf64ppc.c:1394
+#: eelf64ppc_fbsd.c:1394 ehppaelf.c:631 ehppalinux.c:843 ehppanbsd.c:843
#: ehppaobsd.c:843
#, c-format
msgid ""
@@ -6590,8 +6640,8 @@ msgid "%P: warning: failed to convert %s table in %pB (%s); subsequent disassemb
msgstr "%P: упозорење: ниÑам уÑпео да претворим „%s“ табелу у „%pB“ (%s); накнадно раÑтављање може бити непотпуно\n"
#: eelf32xtensa.c:421
-msgid "%F%P: %pB: cannot read contents of section %pA\n"
-msgstr "%F%P: %pB: не могу да прочитам Ñадржај одељка „%pA“\n"
+msgid "%P: %pB: cannot read contents of section %pA\n"
+msgstr "%P: %pB: не могу да прочитам Ñадржај одељка „%pA“\n"
#: eelf32xtensa.c:432
msgid "%P: %pB: warning: incompatible Xtensa configuration (%s)\n"
@@ -6602,24 +6652,24 @@ msgid "%P: %pB: warning: cannot parse .xtensa.info section\n"
msgstr "%P: %pB: упозорење: не могу да обрадим „.xtensa.info“ одељак\n"
#: eelf32xtensa.c:462
-msgid "%F%P: little endian output does not match Xtensa configuration\n"
-msgstr "%F%P: излаз мале крајњоÑти не одговара „Xtensa“ подешавању\n"
+msgid "%P: little endian output does not match Xtensa configuration\n"
+msgstr "%P: излаз мале крајњоÑти не одговара „Xtensa“ подешавању\n"
#: eelf32xtensa.c:468
-msgid "%F%P: big endian output does not match Xtensa configuration\n"
-msgstr "%F%P: излаз велике крајњоÑти не одговара „Xtensa“ подешавању\n"
+msgid "%P: big endian output does not match Xtensa configuration\n"
+msgstr "%P: излаз велике крајњоÑти не одговара „Xtensa“ подешавању\n"
#: eelf32xtensa.c:487
-msgid "%F%P: cross-endian linking for %pB not supported\n"
-msgstr "%F%P: повезивање унакрÑне крајњоÑти за „%pB“ није подржано\n"
+msgid "%P: cross-endian linking for %pB not supported\n"
+msgstr "%P: повезивање унакрÑне крајњоÑти за „%pB“ није подржано\n"
#: eelf32xtensa.c:518
-msgid "%F%P: failed to create .xtensa.info section\n"
-msgstr "%F%P: ниÑам уÑпео да направим одељак „.xtensa.info“\n"
+msgid "%P: failed to create .xtensa.info section\n"
+msgstr "%P: ниÑам уÑпео да направим одељак „.xtensa.info“\n"
#: eelf32xtensa.c:1257
-msgid "%F%P: Relaxation not supported with --enable-non-contiguous-regions.\n"
-msgstr "%F%P: Опуштање није подржано Ñа „--enable-non-contiguous-regions“.\n"
+msgid "%P: Relaxation not supported with --enable-non-contiguous-regions.\n"
+msgstr "%P: Опуштање није подржано Ñа „--enable-non-contiguous-regions“.\n"
#: eelf32xtensa.c:2466
#, c-format
@@ -6641,34 +6691,25 @@ msgid " --abi-call0 Choose call0 ABI for the output object\n"
msgstr " --abi-call0 Бира „call0 ABI“ за излазни објекат\n"
#: eelf32z80.c:70 ez80.c:59
-msgid "%F%P: %pB: Instruction sets of object files incompatible\n"
-msgstr "%F%P: %pB: Скупови инÑтрукција објектних датотека ниÑу ÑаглаÑни\n"
+msgid "%P: %pB: Instruction sets of object files incompatible\n"
+msgstr "%P: %pB: Скупови инÑтрукција објектних датотека ниÑу ÑаглаÑни\n"
#: eelf64_ia64.c:575 eelf64_ia64_fbsd.c:575
#, c-format
msgid " --itanium Generate code for Intel Itanium processor\n"
msgstr " --itanium Ствара код за „Intel Itanium“ процеÑор\n"
-#: eelf64_s390.c:648
+#: eelf64_s390.c:661
#, c-format
msgid " --s390-pgste Tell the kernel to allocate 4k page tables\n"
msgstr " --s390-pgste Говори језгру да додели 4k табеле Ñтранице\n"
-#: eelf64alpha.c:645 eelf64alpha_fbsd.c:645 eelf64alpha_nbsd.c:645
-#, c-format
-msgid ""
-" --taso Load executable in the lower 31-bit addressable\n"
-" virtual address range\n"
-msgstr ""
-" --taso Учитава извршну у нижем 31-битном адреÑивом\n"
-" виртуелном опÑегу адреÑе\n"
-
-#: eelf64alpha.c:648 eelf64alpha_fbsd.c:648 eelf64alpha_nbsd.c:648
+#: eelf64alpha.c:618 eelf64alpha_fbsd.c:618 eelf64alpha_nbsd.c:618
#, c-format
msgid " --secureplt Force PLT in text segment\n"
msgstr " --secureplt ПриÑиљава „PLT“ у подеоку текÑта\n"
-#: eelf64alpha.c:650 eelf64alpha_fbsd.c:650 eelf64alpha_nbsd.c:650
+#: eelf64alpha.c:620 eelf64alpha_fbsd.c:620 eelf64alpha_nbsd.c:620
#, c-format
msgid " --no-secureplt Force PLT in data segment\n"
msgstr " --no-secureplt ПриÑиљава „PLT“ у подеоку података\n"
@@ -6687,71 +6728,71 @@ msgstr "%X%P: Ñрипта повезивача раздваја „.got“ и â
msgid "%P: .init/.fini fragments use differing TOC pointers\n"
msgstr "%P: „.init/.fini“ одломци кориÑте другачије „TOC“ показиваче\n"
-#: eelf64lppc.c:1280 eelf64lppc_fbsd.c:1280 eelf64ppc.c:1280
-#: eelf64ppc_fbsd.c:1280
-msgid "%F%P: invalid --power10-stubs argument `%s'\n"
-msgstr "%F%P: неиÑправан „--power10-stubs“ аргумент „%s“\n"
+#: eelf64lppc.c:1281 eelf64lppc_fbsd.c:1281 eelf64ppc.c:1281
+#: eelf64ppc_fbsd.c:1281
+msgid "%P: invalid --power10-stubs argument `%s'\n"
+msgstr "%P: неиÑправан „--power10-stubs“ аргумент „%s“\n"
-#: eelf64lppc.c:1403 eelf64ppc.c:1403
+#: eelf64lppc.c:1404 eelf64ppc.c:1404
#, c-format
msgid " --plt-static-chain PLT call stubs should load r11 (default)\n"
msgstr " --plt-static-chain Окрајци „PLT“ позива треба да учитају „r11“ (оÑновно)\n"
-#: eelf64lppc.c:1406 eelf64ppc.c:1406
+#: eelf64lppc.c:1407 eelf64ppc.c:1407
#, c-format
msgid " --no-plt-static-chain PLT call stubs should not load r11\n"
msgstr " --no-plt-static-chain Окрајци „PLT“ позива не треба да учитају „r11“\n"
-#: eelf64lppc.c:1409 eelf64lppc_fbsd.c:1409 eelf64ppc.c:1409
-#: eelf64ppc_fbsd.c:1409
+#: eelf64lppc.c:1410 eelf64lppc_fbsd.c:1410 eelf64ppc.c:1410
+#: eelf64ppc_fbsd.c:1410
#, c-format
msgid " --plt-thread-safe PLT call stubs with load-load barrier\n"
msgstr " --plt-thread-safe Окрајци „PLT“ позива Ñа учитај-учитај баријером\n"
-#: eelf64lppc.c:1412 eelf64lppc_fbsd.c:1412 eelf64ppc.c:1412
-#: eelf64ppc_fbsd.c:1412
+#: eelf64lppc.c:1413 eelf64lppc_fbsd.c:1413 eelf64ppc.c:1413
+#: eelf64ppc_fbsd.c:1413
#, c-format
msgid " --no-plt-thread-safe PLT call stubs without barrier\n"
msgstr " --no-plt-thread-safe Окрајци „PLT“ позива без баријере\n"
-#: eelf64lppc.c:1415 eelf64lppc_fbsd.c:1415 eelf64ppc.c:1415
-#: eelf64ppc_fbsd.c:1415
+#: eelf64lppc.c:1416 eelf64lppc_fbsd.c:1416 eelf64ppc.c:1416
+#: eelf64ppc_fbsd.c:1416
#, c-format
msgid " --plt-align [=<align>] Align PLT call stubs to fit cache lines\n"
msgstr " --plt-align [=<поравнај>] Поравнава окрајке „PLT“ позива да Ñтану у редове оÑтаве\n"
-#: eelf64lppc.c:1421 eelf64lppc_fbsd.c:1421 eelf64ppc.c:1421
-#: eelf64ppc_fbsd.c:1421
+#: eelf64lppc.c:1422 eelf64lppc_fbsd.c:1422 eelf64ppc.c:1422
+#: eelf64ppc_fbsd.c:1422
#, c-format
msgid " --plt-localentry Optimize calls to ELFv2 localentry:0 functions\n"
msgstr " --plt-localentry Оптимизује позиве на „ELFv2 localentry:0“ функције\n"
-#: eelf64lppc.c:1424 eelf64lppc_fbsd.c:1424 eelf64ppc.c:1424
-#: eelf64ppc_fbsd.c:1424
+#: eelf64lppc.c:1425 eelf64lppc_fbsd.c:1425 eelf64ppc.c:1425
+#: eelf64ppc_fbsd.c:1425
#, c-format
msgid " --no-plt-localentry Don't optimize ELFv2 calls\n"
msgstr " --no-plt-localentry Ðе оптимизује „ELFv2“ позиве\n"
-#: eelf64lppc.c:1427 eelf64lppc_fbsd.c:1427 eelf64ppc.c:1427
-#: eelf64ppc_fbsd.c:1427
+#: eelf64lppc.c:1428 eelf64lppc_fbsd.c:1428 eelf64ppc.c:1428
+#: eelf64ppc_fbsd.c:1428
#, c-format
msgid " --power10-stubs [=auto] Use Power10 PLT call stubs (default auto)\n"
msgstr " --power10-stubs [=auto] КориÑти окрајке „Power10 PLT“ позива (оÑновно је „auto“)\n"
-#: eelf64lppc.c:1430 eelf64lppc_fbsd.c:1430 eelf64ppc.c:1430
-#: eelf64ppc_fbsd.c:1430
+#: eelf64lppc.c:1431 eelf64lppc_fbsd.c:1431 eelf64ppc.c:1431
+#: eelf64ppc_fbsd.c:1431
#, c-format
msgid " --no-pcrel-optimize Don't perform R_PPC64_PCREL_OPT optimization\n"
msgstr " --no-pcrel-optimize Ðе обавља „R_PPC64_PCREL_OPT“ оптимизацију\n"
-#: eelf64lppc.c:1433 eelf64lppc_fbsd.c:1433 eelf64ppc.c:1433
-#: eelf64ppc_fbsd.c:1433
+#: eelf64lppc.c:1434 eelf64lppc_fbsd.c:1434 eelf64ppc.c:1434
+#: eelf64ppc_fbsd.c:1434
#, c-format
msgid " --no-power10-stubs Don't use Power10 PLT call stubs\n"
msgstr " --no-power10-stubs Ðе кориÑти окрајке „Power10 PLT“ позива\n"
-#: eelf64lppc.c:1442 eelf64lppc_fbsd.c:1442 eelf64ppc.c:1442
-#: eelf64ppc_fbsd.c:1442
+#: eelf64lppc.c:1443 eelf64lppc_fbsd.c:1443 eelf64ppc.c:1443
+#: eelf64ppc_fbsd.c:1443
#, c-format
msgid ""
" --dotsyms For every version pattern \"foo\" in a version\n"
@@ -6764,14 +6805,14 @@ msgstr ""
" функције Ñматрају иÑто као Ñимболи опиÑника\n"
" функције. Подразумева Ñе укљученом.\n"
-#: eelf64lppc.c:1448 eelf64lppc_fbsd.c:1448 eelf64ppc.c:1448
-#: eelf64ppc_fbsd.c:1448
+#: eelf64lppc.c:1449 eelf64lppc_fbsd.c:1449 eelf64ppc.c:1449
+#: eelf64ppc_fbsd.c:1449
#, c-format
msgid " --no-dotsyms Don't do anything special in version scripts\n"
msgstr " --no-dotsyms Ðе ради ништа поÑебно у Ñкриптама издања\n"
-#: eelf64lppc.c:1451 eelf64lppc_fbsd.c:1451 eelf64ppc.c:1451
-#: eelf64ppc_fbsd.c:1451
+#: eelf64lppc.c:1452 eelf64lppc_fbsd.c:1452 eelf64ppc.c:1452
+#: eelf64ppc_fbsd.c:1452
#, c-format
msgid ""
" --save-restore-funcs Provide register save and restore routines used\n"
@@ -6782,56 +6823,56 @@ msgstr ""
" кориÑти „gcc -Os“ код. Подразумева Ñе укљученом за уобичајену\n"
" крајњу везу, иÑкљученом за „ld -r“.\n"
-#: eelf64lppc.c:1456 eelf64lppc_fbsd.c:1456 eelf64ppc.c:1456
-#: eelf64ppc_fbsd.c:1456
+#: eelf64lppc.c:1457 eelf64lppc_fbsd.c:1457 eelf64ppc.c:1457
+#: eelf64ppc_fbsd.c:1457
#, c-format
msgid " --no-save-restore-funcs Don't provide these routines\n"
msgstr " --no-save-restore-funcs Ðе обезбеђује ове рутине\n"
-#: eelf64lppc.c:1462 eelf64lppc_fbsd.c:1462 eelf64ppc.c:1462
-#: eelf64ppc_fbsd.c:1462
+#: eelf64lppc.c:1463 eelf64lppc_fbsd.c:1463 eelf64ppc.c:1463
+#: eelf64ppc_fbsd.c:1463
#, c-format
msgid " --tls-get-addr-optimize Force use of special __tls_get_addr call\n"
msgstr " --tls-get-addr-optimize ПриÑиљава коришћење Ñпецијалног „__tls_get_addr“ позив\n"
-#: eelf64lppc.c:1468 eelf64lppc_fbsd.c:1468 eelf64ppc.c:1468
-#: eelf64ppc_fbsd.c:1468
+#: eelf64lppc.c:1469 eelf64lppc_fbsd.c:1469 eelf64ppc.c:1469
+#: eelf64ppc_fbsd.c:1469
#, c-format
msgid " --tls-get-addr-regsave Force register save __tls_get_addr stub\n"
msgstr " --tls-get-addr-regsave Приморава да региÑтар Ñачува „__tls_get_addr“ окрајак\n"
-#: eelf64lppc.c:1471 eelf64lppc_fbsd.c:1471 eelf64ppc.c:1471
-#: eelf64ppc_fbsd.c:1471
+#: eelf64lppc.c:1472 eelf64lppc_fbsd.c:1472 eelf64ppc.c:1472
+#: eelf64ppc_fbsd.c:1472
#, c-format
msgid " --no-tls-get-addr-regsave Don't use register save __tls_get_addr stub\n"
msgstr " --no-tls-get-addr-regsave Ðе кориÑти да региÑтар Ñачува „__tls_get_addr“ окрајак\n"
-#: eelf64lppc.c:1474 eelf64lppc_fbsd.c:1474 eelf64ppc.c:1474
-#: eelf64ppc_fbsd.c:1474
+#: eelf64lppc.c:1475 eelf64lppc_fbsd.c:1475 eelf64ppc.c:1475
+#: eelf64ppc_fbsd.c:1475
#, c-format
msgid " --no-opd-optimize Don't optimize the OPD section\n"
msgstr " --no-opd-optimize Ðе оптимизује „OPD“ одељак\n"
-#: eelf64lppc.c:1480 eelf64lppc_fbsd.c:1480 eelf64ppc.c:1480
-#: eelf64ppc_fbsd.c:1480
+#: eelf64lppc.c:1481 eelf64lppc_fbsd.c:1481 eelf64ppc.c:1481
+#: eelf64ppc_fbsd.c:1481
#, c-format
msgid " --no-toc-optimize Don't optimize the TOC section\n"
msgstr " --no-toc-optimize Ðе оптимизује „TOC“ одељак\n"
-#: eelf64lppc.c:1483 eelf64lppc_fbsd.c:1483 eelf64ppc.c:1483
-#: eelf64ppc_fbsd.c:1483
+#: eelf64lppc.c:1484 eelf64lppc_fbsd.c:1484 eelf64ppc.c:1484
+#: eelf64ppc_fbsd.c:1484
#, c-format
msgid " --no-multi-toc Disallow automatic multiple toc sections\n"
msgstr " --no-multi-toc Ðе омогућава више ÑамоÑталних одељака табеле Ñадржаја\n"
-#: eelf64lppc.c:1486 eelf64lppc_fbsd.c:1486 eelf64ppc.c:1486
-#: eelf64ppc_fbsd.c:1486
+#: eelf64lppc.c:1487 eelf64lppc_fbsd.c:1487 eelf64ppc.c:1487
+#: eelf64ppc_fbsd.c:1487
#, c-format
msgid " --no-toc-sort Don't sort TOC and GOT sections\n"
msgstr " --no-toc-sort Ðе ређа „TOC“ и „GOT“ одељке\n"
-#: eelf64lppc.c:1489 eelf64lppc_fbsd.c:1489 eelf64ppc.c:1489
-#: eelf64ppc_fbsd.c:1489
+#: eelf64lppc.c:1490 eelf64lppc_fbsd.c:1490 eelf64ppc.c:1490
+#: eelf64ppc_fbsd.c:1490
#, c-format
msgid ""
" --non-overlapping-opd Canonicalize .opd, so that there are no\n"
@@ -6840,12 +6881,12 @@ msgstr ""
" --non-overlapping-opd Стандардизује „.opd“, тако да нема\n"
" преклапајућих „.opd“ уноÑа\n"
-#: eelf64lppc_fbsd.c:1403 eelf64ppc_fbsd.c:1403
+#: eelf64lppc_fbsd.c:1404 eelf64ppc_fbsd.c:1404
#, c-format
msgid " --plt-static-chain PLT call stubs should load r111\n"
msgstr " --plt-static-chain Окрајци „PLT“ позива треба да учитају „r111“\n"
-#: eelf64lppc_fbsd.c:1406 eelf64ppc_fbsd.c:1406
+#: eelf64lppc_fbsd.c:1407 eelf64ppc_fbsd.c:1407
#, c-format
msgid " --no-plt-static-chain PLT call stubs should not load r11 (default)\n"
msgstr " --no-plt-static-chain Окрајци „PLT“ позива не треба да учитају „r11“ (оÑновно)\n"
@@ -6858,34 +6899,33 @@ msgstr "%X%P: унутрашњи проблеми подешавања одељÐ
msgid "%X%P: too many global registers: %u, max 223\n"
msgstr "%X%P: превише општих региÑтара: %u, највише 223\n"
-#. This is a fatal error; make einfo call not return.
-#: eelf64mmix.c:146 emmo.c:146
-msgid "%F%P: can't finalize linker-allocated global registers\n"
-msgstr "%F%P: не могу да завршим повезивачем додељене опште региÑтре\n"
+#: eelf64mmix.c:144 emmo.c:144
+msgid "%P: can't finalize linker-allocated global registers\n"
+msgstr "%P: не могу да завршим повезивачем додељене опште региÑтре\n"
-#: eelf_x86_64.c:8687 eelf_x86_64_cloudabi.c:685 eelf_x86_64_fbsd.c:685
-#: eelf_x86_64_haiku.c:685 eelf_x86_64_sol2.c:817
-msgid "%F%P: invalid option for -z lam-u48-report=: %s\n"
-msgstr "%F%P: неиÑправна опција за „-z lam-u48-report=“: %s\n"
+#: eelf_x86_64.c:8719 eelf_x86_64_cloudabi.c:717 eelf_x86_64_fbsd.c:717
+#: eelf_x86_64_haiku.c:717 eelf_x86_64_sol2.c:849
+msgid "%P: invalid option for -z lam-u48-report=: %s\n"
+msgstr "%P: неиÑправна опција за „-z lam-u48-report=“: %s\n"
-#: eelf_x86_64.c:8701 eelf_x86_64_cloudabi.c:699 eelf_x86_64_fbsd.c:699
-#: eelf_x86_64_haiku.c:699 eelf_x86_64_sol2.c:831
-msgid "%F%P: invalid option for -z lam-u57-report=: %s\n"
-msgstr "%F%P: неиÑправна опција за „-z lam-u57-report=“: %s\n"
+#: eelf_x86_64.c:8733 eelf_x86_64_cloudabi.c:731 eelf_x86_64_fbsd.c:731
+#: eelf_x86_64_haiku.c:731 eelf_x86_64_sol2.c:863
+msgid "%P: invalid option for -z lam-u57-report=: %s\n"
+msgstr "%P: неиÑправна опција за „-z lam-u57-report=“: %s\n"
-#: eelf_x86_64.c:8722 eelf_x86_64_cloudabi.c:720 eelf_x86_64_fbsd.c:720
-#: eelf_x86_64_haiku.c:720 eelf_x86_64_sol2.c:852
-msgid "%F%P: invalid option for -z lam-report=: %s\n"
-msgstr "%F%P: неиÑправна опција за „-z lam-report=“: %s\n"
+#: eelf_x86_64.c:8754 eelf_x86_64_cloudabi.c:752 eelf_x86_64_fbsd.c:752
+#: eelf_x86_64_haiku.c:752 eelf_x86_64_sol2.c:884
+msgid "%P: invalid option for -z lam-report=: %s\n"
+msgstr "%P: неиÑправна опција за „-z lam-report=“: %s\n"
-#: eelf_x86_64.c:8806 eelf_x86_64_cloudabi.c:804 eelf_x86_64_fbsd.c:804
-#: eelf_x86_64_haiku.c:804 eelf_x86_64_sol2.c:936
+#: eelf_x86_64.c:8838 eelf_x86_64_cloudabi.c:836 eelf_x86_64_fbsd.c:836
+#: eelf_x86_64_haiku.c:836 eelf_x86_64_sol2.c:968
#, c-format
msgid " -z lam-u48 Generate GNU_PROPERTY_X86_FEATURE_1_LAM_U48\n"
msgstr " -z lam-u48 Ствара „GNU_PROPERTY_X86_FEATURE_1_LAM_U48“\n"
-#: eelf_x86_64.c:8808 eelf_x86_64_cloudabi.c:806 eelf_x86_64_fbsd.c:806
-#: eelf_x86_64_haiku.c:806 eelf_x86_64_sol2.c:938
+#: eelf_x86_64.c:8840 eelf_x86_64_cloudabi.c:838 eelf_x86_64_fbsd.c:838
+#: eelf_x86_64_haiku.c:838 eelf_x86_64_sol2.c:970
#, c-format
msgid ""
" -z lam-u48-report=[none|warning|error] (default: none)\n"
@@ -6894,14 +6934,14 @@ msgstr ""
" -z lam-u48-report=[none|warning|error] (оÑновно: none)\n"
" Извештава о недоÑтајућем „LAM_U48“ ÑвојÑтву\n"
-#: eelf_x86_64.c:8811 eelf_x86_64_cloudabi.c:809 eelf_x86_64_fbsd.c:809
-#: eelf_x86_64_haiku.c:809 eelf_x86_64_sol2.c:941
+#: eelf_x86_64.c:8843 eelf_x86_64_cloudabi.c:841 eelf_x86_64_fbsd.c:841
+#: eelf_x86_64_haiku.c:841 eelf_x86_64_sol2.c:973
#, c-format
msgid " -z lam-u57 Generate GNU_PROPERTY_X86_FEATURE_1_LAM_U57\n"
msgstr " -z lam-u57 Ствара „GNU_PROPERTY_X86_FEATURE_1_LAM_U57“\n"
-#: eelf_x86_64.c:8813 eelf_x86_64_cloudabi.c:811 eelf_x86_64_fbsd.c:811
-#: eelf_x86_64_haiku.c:811 eelf_x86_64_sol2.c:943
+#: eelf_x86_64.c:8845 eelf_x86_64_cloudabi.c:843 eelf_x86_64_fbsd.c:843
+#: eelf_x86_64_haiku.c:843 eelf_x86_64_sol2.c:975
#, c-format
msgid ""
" -z lam-u57-report=[none|warning|error] (default: none)\n"
@@ -6910,8 +6950,8 @@ msgstr ""
" -z lam-u57-report=[none|warning|error] (оÑновно: none)\n"
" Извештава о недоÑтајућем „LAM_U57“ ÑвојÑтву\n"
-#: eelf_x86_64.c:8816 eelf_x86_64_cloudabi.c:814 eelf_x86_64_fbsd.c:814
-#: eelf_x86_64_haiku.c:814 eelf_x86_64_sol2.c:946
+#: eelf_x86_64.c:8848 eelf_x86_64_cloudabi.c:846 eelf_x86_64_fbsd.c:846
+#: eelf_x86_64_haiku.c:846 eelf_x86_64_sol2.c:978
#, c-format
msgid ""
" -z lam-report=[none|warning|error] (default: none)\n"
@@ -6933,21 +6973,21 @@ msgstr ""
" --multi-subspace Ствара окрајке увоза и извоза да подржавају\n"
" више под-проÑторних дељених библиотека\n"
-#: ei386beos.c:359
-msgid "%F%P: PE operations on non PE file\n"
-msgstr "%F%P: „PE“ радње на не „PE“ датотеци\n"
+#: ei386beos.c:354
+msgid "%P: PE operations on non PE file\n"
+msgstr "%P: „PE“ радње на не „PE“ датотеци\n"
-#: ei386beos.c:409 ei386beos.c:414
-msgid "%F%P: %pB: can't read contents of section .idata: %E\n"
-msgstr "%F%P: %pB: не могу да читам Ñадржаје одељка „.idata“: %E\n"
+#: ei386beos.c:403 ei386beos.c:408
+msgid "%P: %pB: can't read contents of section .idata: %E\n"
+msgstr "%P: %pB: не могу да читам Ñадржаје одељка „.idata“: %E\n"
-#: ei386beos.c:646
-msgid "%F%P: section %s has '$' as first character\n"
-msgstr "%F%P: одељак „%s“ има $ као први знак\n"
+#: ei386beos.c:640
+msgid "%P: section %s has '$' as first character\n"
+msgstr "%P: одељак „%s“ има $ као први знак\n"
-#: ei386beos.c:676
-msgid "%F%P: *(%s$) missing from linker script\n"
-msgstr "%F%P: „*(%s$)“ недоÑтаје из Ñкрипте повезивача\n"
+#: ei386beos.c:670
+msgid "%P: *(%s$) missing from linker script\n"
+msgstr "%P: „*(%s$)“ недоÑтаје из Ñкрипте повезивача\n"
#: em68hc11elf.c:144 em68hc11elfb.c:144 em68hc12elf.c:144 em68hc12elfb.c:144
msgid "%P: warning: the size of the 'window' memory region is not a power of 2; its size %d is truncated to %d\n"
@@ -6976,8 +7016,8 @@ msgstr ""
" раÑпоред прозора групе меморије\n"
#: em68kelf.c:92 em68kelfnbsd.c:92
-msgid "%F%P: %pB: all input objects must be ELF for --embedded-relocs\n"
-msgstr "%F%P: %pB: Ñви улазни објекти морају бити „ELF“ за „--embedded-relocs“\n"
+msgid "%P: %pB: all input objects must be ELF for --embedded-relocs\n"
+msgstr "%P: %pB: Ñви улазни објекти морају бити „ELF“ за „--embedded-relocs“\n"
#: em68kelf.c:701 em68kelfnbsd.c:701
msgid "%P: unrecognized --got argument '%s'\n"
@@ -6988,7 +7028,7 @@ msgstr "%P: непознат „--got“ аргумент „%s“\n"
msgid " --got=<type> Specify GOT handling scheme\n"
msgstr " --got=<врÑта> Ðаводи шему „GOT“ руковања\n"
-#: emmo.c:333
+#: emmo.c:330
msgid "%X%P: internal problems scanning %pB after opening it"
msgstr "%X%P: унутрашњи проблеми Ñкенирања „%pB“ након његовог отварања"
@@ -7054,8 +7094,8 @@ msgstr "%P: грешка: непознат аргумент за „--data-regio
#. Incompatible objects.
#: ends32belf.c:129 ends32belf16m.c:129 ends32belf_linux.c:129 ends32elf.c:129
#: ends32elf16m.c:129 ends32elf_linux.c:129
-msgid "%F%P: %pB: ABI version of object files mismatched\n"
-msgstr "%F%P: %pB: „ABI“ издање објектних датотека не одговара\n"
+msgid "%P: %pB: ABI version of object files mismatched\n"
+msgstr "%P: %pB: ABI издање објектних датотека не одговара\n"
#: ends32belf.c:450 ends32belf16m.c:450 ends32belf_linux.c:583 ends32elf.c:450
#: ends32elf16m.c:450 ends32elf_linux.c:583
@@ -7128,9 +7168,23 @@ msgstr " --no-omagic ИÑто што и „--nmagic“\
msgid " --format 0|1|2 Specify which COFF version to use\n"
msgstr " --format 0|1|2 Ðаводи које „COFF“ издање ће Ñе кориÑтити\n"
-#: etic3xcoff.c:92 etic3xcoff_onchip.c:92 etic4xcoff.c:92 etic54xcoff.c:92
-msgid "%F%P: invalid COFF format version %s\n"
-msgstr "%F%P: неиÑправно издање „COFF“ запиÑа „%s“\n"
+#: etic3xcoff.c:91 etic3xcoff_onchip.c:91 etic4xcoff.c:91 etic54xcoff.c:91
+msgid "%P: invalid COFF format version %s\n"
+msgstr "%P: неиÑправно издање „COFF“ запиÑа „%s“\n"
+
+#~ msgid "%F%P: %pB: bfd_stat failed: %E\n"
+#~ msgstr "%F%P: %pB: „bfd_stat“ није уÑпело: %E\n"
+
+#~ msgid "%F%P: %pB: can't read contents of section .gnu.warning: %E\n"
+#~ msgstr "%F%P: %pB: не могу да читам Ñадржаје одељка „.gnu.warning“: %E\n"
+
+#, c-format
+#~ msgid ""
+#~ " --taso Load executable in the lower 31-bit addressable\n"
+#~ " virtual address range\n"
+#~ msgstr ""
+#~ " --taso Учитава извршну у нижем 31-битном адреÑивом\n"
+#~ " виртуелном опÑегу адреÑе\n"
#~ msgid "%P: warning: -z dynamic-undefined-weak ignored\n"
#~ msgstr "%P: упозорење: „-z dynamic-undefined-weak“ је занемарено\n"
diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc
index be8d19f..6d34912 100644
--- a/ld/scripttempl/elf.sc
+++ b/ld/scripttempl/elf.sc
@@ -734,7 +734,7 @@ cat <<EOF
data, but this is not guaranteed to always be the case. */
.note.build-id : { *(.note.build-id) } ${RELOCATING+${REGION}}
.note.GNU-stack : { *(.note.GNU-stack) } ${RELOCATING+${REGION}}
- .note.gnu-property : { *(.note.gnu-property) } ${RELOCATING+${REGION}}
+ .note.gnu.property : { *(.note.gnu.property) } ${RELOCATING+${REGION}}
.note.ABI-tag : { *(.note.ABI-tag) } ${RELOCATING+${REGION}}
.note.package : { *(.note.package) } ${RELOCATING+${REGION}}
.note.dlopen : { *(.note.dlopen) } ${RELOCATING+${REGION}}
diff --git a/ld/testplug.c b/ld/testplug.c
index ffb7787..e5c3ec2 100644
--- a/ld/testplug.c
+++ b/ld/testplug.c
@@ -20,7 +20,6 @@
#include "sysdep.h"
#include "bfd.h"
-#if BFD_SUPPORTS_PLUGINS
#include "plugin-api.h"
/* For ARRAY_SIZE macro only - we don't link the library itself. */
#include "libiberty.h"
@@ -673,4 +672,3 @@ oncleanup (void)
fflush (NULL);
return cleanup_ret;
}
-#endif /* BFD_SUPPORTS_PLUGINS */
diff --git a/ld/testplug2.c b/ld/testplug2.c
index f792383..788d193 100644
--- a/ld/testplug2.c
+++ b/ld/testplug2.c
@@ -21,7 +21,6 @@
#include "sysdep.h"
#include "bfd.h"
-#if BFD_SUPPORTS_PLUGINS
#include "plugin-api.h"
#include "filenames.h"
/* For ARRAY_SIZE macro only - we don't link the library itself. */
@@ -675,4 +674,3 @@ oncleanup (void)
fflush (NULL);
return cleanup_ret;
}
-#endif /* BFD_SUPPORTS_PLUGINS */
diff --git a/ld/testplug3.c b/ld/testplug3.c
index 0373534..91a9661 100644
--- a/ld/testplug3.c
+++ b/ld/testplug3.c
@@ -21,7 +21,6 @@
#include "sysdep.h"
#include "bfd.h"
-#if BFD_SUPPORTS_PLUGINS
#include "plugin-api.h"
#include "filenames.h"
/* For ARRAY_SIZE macro only - we don't link the library itself. */
@@ -633,4 +632,3 @@ oncleanup (void)
fflush (NULL);
return cleanup_ret;
}
-#endif /* BFD_SUPPORTS_PLUGINS */
diff --git a/ld/testplug4.c b/ld/testplug4.c
index 71eaf59..21a2cd1 100644
--- a/ld/testplug4.c
+++ b/ld/testplug4.c
@@ -21,7 +21,6 @@
#include "sysdep.h"
#include "bfd.h"
-#if BFD_SUPPORTS_PLUGINS
#include "plugin-api.h"
#include "filenames.h"
/* For ARRAY_SIZE macro only - we don't link the library itself. */
@@ -681,4 +680,3 @@ oncleanup (void)
fflush (NULL);
return cleanup_ret;
}
-#endif /* BFD_SUPPORTS_PLUGINS */
diff --git a/ld/testsuite/config/default.exp b/ld/testsuite/config/default.exp
index 1c12ce6..9986397 100644
--- a/ld/testsuite/config/default.exp
+++ b/ld/testsuite/config/default.exp
@@ -117,12 +117,18 @@ if {![info exists CC_FOR_TARGET]} {
if {![info exists CFLAGS_FOR_TARGET]} {
set CFLAGS_FOR_TARGET "-g -O2"
}
+if {![info exists CFLAGS_FOR_TARGET_TEST]} {
+ set CFLAGS_FOR_TARGET_TEST ""
+}
if {![info exists CXX_FOR_TARGET]} {
set CXX_FOR_TARGET [find_g++]
}
if {![info exists CXXFLAGS_FOR_TARGET]} {
set CXXFLAGS_FOR_TARGET ""
}
+if {![info exists CXXFLAGS_FOR_TARGET_TEST]} {
+ set CXXFLAGS_FOR_TARGET_TEST ""
+}
# This allows us to run the linker testsuite with clang as the compilation
# driver instead of gcc. The syntax of the overrides are as follows, one
@@ -450,6 +456,22 @@ if { ![info exists NOPIE_CFLAGS] || ![info exists NOPIE_LDFLAGS] } then {
}
}
+if { ![info exists DIRECT_EXTERN_ACCESS_CFLAGS] } then {
+ set DIRECT_EXTERN_ACCESS_CFLAGS ""
+ set NO_DIRECT_EXTERN_ACCESS_CFLAGS ""
+ # Exclude LoongArch since -mdirect-extern-access on LoongArch works
+ # only without dynamic linker.
+ if { ![istarget loongarch*-*-*] } {
+ if [compiler_supports "-mdirect-extern-access"] {
+ set DIRECT_EXTERN_ACCESS_CFLAGS "-mdirect-extern-access"
+ set NO_DIRECT_EXTERN_ACCESS_CFLAGS "-mno-direct-extern-access"
+ } elseif [compiler_supports "-fdirect-access-external-data"] {
+ set DIRECT_EXTERN_ACCESS_CFLAGS "-fdirect-access-external-data"
+ set NO_DIRECT_EXTERN_ACCESS_CFLAGS "-fno-direct-access-external-data"
+ }
+ }
+}
+
if { ![info exists NOCF_PROTECTION_CFLAGS] } then {
set NOCF_PROTECTION_CFLAGS ""
if [compiler_supports "-fcf-protection=none"] {
diff --git a/ld/testsuite/ld-aarch64/protections/bti-far.ld b/ld/testsuite/ld-aarch64/protections/bti-far.ld
index 1568f18..d3ed904 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-far.ld
+++ b/ld/testsuite/ld-aarch64/protections/bti-far.ld
@@ -19,7 +19,7 @@ SECTIONS
. = 0x12340000;
.far : { *(.far) }
/* Start of the Read Only Data region. */
- .note.gnu-property : { *(.note.gnu-property) }
+ .note.gnu.property : { *(.note.gnu.property) }
/* Start of the Read Write Data region. */
. = ALIGN (CONSTANT (MAXPAGESIZE));
diff --git a/ld/testsuite/ld-aarch64/protections/bti-plt.ld b/ld/testsuite/ld-aarch64/protections/bti-plt.ld
index c930fc8..fffb8a98 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-plt.ld
+++ b/ld/testsuite/ld-aarch64/protections/bti-plt.ld
@@ -17,7 +17,7 @@ SECTIONS
. = 0x20000;
.text : { *(.text) }
/* Start of the Read Only Data region. */
- .note.gnu-property : { *(.note.gnu-property) }
+ .note.gnu.property : { *(.note.gnu.property) }
/* Start of the Read Write Data region. */
. = ALIGN (CONSTANT (MAXPAGESIZE));
diff --git a/ld/testsuite/ld-arm/arm-elf.exp b/ld/testsuite/ld-arm/arm-elf.exp
index d193498..bf627f3 100644
--- a/ld/testsuite/ld-arm/arm-elf.exp
+++ b/ld/testsuite/ld-arm/arm-elf.exp
@@ -338,7 +338,7 @@ set tmp {
"-shared -T arm-dyn.ld --hash-style=sysv" "" "" {gc-thumb-lib.s}
{}
"gc-thumb-lib.so"}
- {"Thumb and -gc-sections" "-pie -T arm.ld -gc-sections tmpdir/gc-thumb-lib.so" "" "" {gc-thumb.s}
+ {"Thumb and -gc-sections (pie)" "-pie -T arm.ld -gc-sections tmpdir/gc-thumb-lib.so" "" "" {gc-thumb.s}
{{readelf --relocs gc-thumb.d}}
"gc-thumb"}
{"Simple non-PIC shared library" "-shared" "" "" {arm-lib.s}
@@ -444,7 +444,7 @@ if { ![istarget "arm*-*-*eabi*"] } {
{"Thumb-2-as-Thumb-1 BL" "-Ttext 0x1000 --section-start .foo=0x100100c" "" "" {thumb2-bl-as-thumb1-bad.s}
{{objdump -d thumb2-bl-as-thumb1-bad-noeabi.d}}
"thumb2-bl-as-thumb1-bad"}
- {"Thumb-2 BL bad" "-Ttext 0x1000 --section-start .foo=0x100100c" "" "" {thumb2-bl-bad.s}
+ {"Thumb-2 BL bad noeabi" "-Ttext 0x1000 --section-start .foo=0x100100c" "" "" {thumb2-bl-bad.s}
{{objdump -d thumb2-bl-bad-noeabi.d}}
"thumb2-bl-bad"}
}
@@ -646,7 +646,7 @@ set armeabitests {
{"Thumb-2-as-Thumb-1 BL" "--no-fix-arm1176 -Ttext 0x1000 --section-start .foo=0x100100c" "" "" {thumb2-bl-as-thumb1-bad.s}
{{objdump -d thumb2-bl-as-thumb1-bad.d}}
"thumb2-bl-as-thumb1-bad"}
- {"Thumb-2 BL" "-Ttext 0x1000 --section-start .foo=0x100100c" "" "" {thumb2-bl-bad.s}
+ {"Thumb-2 BL bad" "-Ttext 0x1000 --section-start .foo=0x100100c" "" "" {thumb2-bl-bad.s}
{{objdump -d thumb2-bl-bad.d}}
"thumb2-bl-bad"}
{"Branch to linker script symbol with BL for thumb-only target" "-T branch-lks-sym.ld" "" "" {thumb-bl-lks-sym.s}
@@ -681,7 +681,7 @@ set armeabitests {
{{objdump -d fix-arm1176-off.d}}
"fix-arm1176-6"}
- {"Thumb-2 BL" "-Ttext 0x1000 --section-start .foo=0x1001000" "" "-march=armv7" {thumb2-bl.s}
+ {"Thumb-2 BL on armv7" "-Ttext 0x1000 --section-start .foo=0x1001000" "" "-march=armv7" {thumb2-bl.s}
{{objdump -dr thumb2-bl.d}}
"thumb2-bl"}
{"Thumb-2 BL on ARMv6-M" "-Ttext 0x1000 --section-start .foo=0x1001000" "" "-march=armv6-m" {thumb2-bl.s}
diff --git a/ld/testsuite/ld-arm/group-relocs-alu-bad-2.d b/ld/testsuite/ld-arm/group-relocs-alu-bad-2.d
index e3f1df7..1912cd6 100644
--- a/ld/testsuite/ld-arm/group-relocs-alu-bad-2.d
+++ b/ld/testsuite/ld-arm/group-relocs-alu-bad-2.d
@@ -1,4 +1,4 @@
-#name: ALU group relocations failure test
+#name: ALU group relocations failure test (2)
#source: group-relocs-alu-bad-2.s
#ld: -Ttext 0x8000 --section-start foo=0x1208000
#error: overflow whilst splitting 0x1234 for group relocation
diff --git a/ld/testsuite/ld-arm/group-relocs-ldc-bad-2.d b/ld/testsuite/ld-arm/group-relocs-ldc-bad-2.d
index cc52ecc..ce645b7 100644
--- a/ld/testsuite/ld-arm/group-relocs-ldc-bad-2.d
+++ b/ld/testsuite/ld-arm/group-relocs-ldc-bad-2.d
@@ -1,4 +1,4 @@
-#name: LDC group relocations failure test
+#name: LDC group relocations failure test (2)
#source: group-relocs-ldc-bad-2.s
#ld: -Ttext 0x8000 --section-start foo=0x118400
#error: overflow whilst splitting 0x123456 for group relocation
diff --git a/ld/testsuite/ld-arm/group-relocs-ldr-bad-2.d b/ld/testsuite/ld-arm/group-relocs-ldr-bad-2.d
index 771395d..8de930e 100644
--- a/ld/testsuite/ld-arm/group-relocs-ldr-bad-2.d
+++ b/ld/testsuite/ld-arm/group-relocs-ldr-bad-2.d
@@ -1,4 +1,4 @@
-#name: LDR group relocations failure test
+#name: LDR group relocations failure test (2)
#source: group-relocs-ldr-bad-2.s
#ld: -Ttext 0x8000 --section-start foo=0x8001000
#error: .*overflow whilst splitting 0x7ff9000 for group relocation.*
diff --git a/ld/testsuite/ld-arm/group-relocs-ldrs-bad-2.d b/ld/testsuite/ld-arm/group-relocs-ldrs-bad-2.d
index c104ea6..fc5c3f9 100644
--- a/ld/testsuite/ld-arm/group-relocs-ldrs-bad-2.d
+++ b/ld/testsuite/ld-arm/group-relocs-ldrs-bad-2.d
@@ -1,4 +1,4 @@
-#name: LDRS group relocations failure test
+#name: LDRS group relocations failure test (2)
#source: group-relocs-ldrs-bad-2.s
#ld: -Ttext 0x8000 --section-start foo=0x8000100
#error: overflow whilst splitting 0x7ff8100 for group relocation
diff --git a/ld/testsuite/ld-checks/over2.d b/ld/testsuite/ld-checks/over2.d
index 511b917..b082c59 100644
--- a/ld/testsuite/ld-checks/over2.d
+++ b/ld/testsuite/ld-checks/over2.d
@@ -1,4 +1,4 @@
-#name: section size overflow
+#name: section size overflow (2)
#source: over2.s
#ld: -Ttext=0xfffffffc
#nm: -n
diff --git a/ld/testsuite/ld-cris/tls-local-63.d b/ld/testsuite/ld-cris/tls-local-63.d
index 4dcdb2e..d0841fb 100644
--- a/ld/testsuite/ld-cris/tls-local-63.d
+++ b/ld/testsuite/ld-cris/tls-local-63.d
@@ -2,18 +2,15 @@
#source: tls-hx.s
#as: --no-underscore --emulation=criself
#ld: -m crislinux --shared --hash-style=sysv
-#readelf: -a -x 6 -x 8 -x 5
+#readelf: -r -s -x 6 -x 8 -x 5
# A R_CRIS_16_GOT_TPREL in a DSO against a hidden symbol. Make sure
# the relocation, GOT, .text and .tdata have the right contents.
-#...
Relocation section '.rela.dyn' at offset 0x.* contains 1 entry:
Offset Info Type Sym.Value Sym. Name \+ Addend
000021a0 0000001c R_CRIS_32_TPREL[ ]+0
-The decoding of unwind sections for machine type Axis Communications 32-bit embedded processor is not currently supported.
-
Symbol table '.dynsym' contains 3 entries:
Num: Value Size Type Bind Vis Ndx Name
#...
@@ -23,9 +20,9 @@ Symbol table '.symtab' contains 13 entries:
#...
Hex dump of section '.text':
0x00000114 5fae0c00 .*
-#...
+
Hex dump of section '.tdata':
0x00002118 280+ .*
-#...
+
Hex dump of section '.got':
0x0+2194 1c210000 0+ 0+ 0+ .*
diff --git a/ld/testsuite/ld-cris/tls-local-64.d b/ld/testsuite/ld-cris/tls-local-64.d
index 38f90c8..68989d3 100644
--- a/ld/testsuite/ld-cris/tls-local-64.d
+++ b/ld/testsuite/ld-cris/tls-local-64.d
@@ -3,19 +3,16 @@
#source: tls-hx.s
#as: --no-underscore --emulation=criself
#ld: -m crislinux --shared --hash-style=sysv
-#readelf: -a -x 6 -x 8 -x 5
+#readelf: -r -s -x 6 -x 8 -x 5
# A R_CRIS_16_GOT_TPREL in a DSO against a hidden symbol, at an offset
# into .data. Make sure the relocation, GOT, .text and .tdata have
# the right contents.
-#...
Relocation section '.rela.dyn' at offset 0x.* contains 1 entry:
Offset Info Type Sym.Value Sym. Name \+ Addend
00002220 0000001c R_CRIS_32_TPREL[ ]+80
-The decoding of unwind sections for machine type Axis Communications 32-bit embedded processor is not currently supported.
-
Symbol table '.dynsym' contains 3 entries:
Num: Value Size Type Bind Vis Ndx Name
#...
@@ -25,13 +22,13 @@ Symbol table '.symtab' contains [0-9]+ entries:
#...
Hex dump of section '.text':
0x00000114 5fae0c00 .*
-#...
+
Hex dump of section '.tdata':
0x00002118 2f0+ 0+ 0+ 0+ .*
0x00002128 0+ 0+ 0+ 0+ .*
#...
0x00002188 0+ 0+ 0+ 0+ .*
0x00002198 280+ .*
-#...
+
Hex dump of section '.got':
0x0+2214 9c210000 0+ 0+ 80+ .*
diff --git a/ld/testsuite/ld-cris/tls-und-38.d b/ld/testsuite/ld-cris/tls-und-38.d
index 07c0662..1174658 100644
--- a/ld/testsuite/ld-cris/tls-und-38.d
+++ b/ld/testsuite/ld-cris/tls-und-38.d
@@ -1,20 +1,17 @@
#source: tls-gd-2.s --pic
#as: --no-underscore --emulation=criself
#ld: -m crislinux --shared --hash-style=sysv
-#readelf: -a -x 7
+#readelf: -r -s -x 7
# Undefined reference for a R_CRIS_32_GOT_GD in a DSO. Not an error;
# it's ok for a DSO to have undefined references upon creation for
# global symbols that can be overridden. Just make sure GOT, dynsyms
# and dynrelocs look right.
-#...
Relocation section '.rela.dyn' at offset 0x.* contains 1 entry:
Offset +Info +Type +Sym.Value +Sym. Name \+ Addend
00002190 +00000217 R_CRIS_DTP +00000000 +x \+ 0
-The decoding of unwind sections for machine type Axis Communications 32-bit embedded processor is not currently supported.
-
Symbol table '.dynsym' contains . entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
#...
diff --git a/ld/testsuite/ld-cris/tls-und-42.d b/ld/testsuite/ld-cris/tls-und-42.d
index b7309a7..0fe1dfa 100644
--- a/ld/testsuite/ld-cris/tls-und-42.d
+++ b/ld/testsuite/ld-cris/tls-und-42.d
@@ -1,20 +1,17 @@
#source: tls-ie-10.s --pic
#as: --no-underscore --emulation=criself
#ld: -m crislinux --shared --hash-style=sysv
-#readelf: -a -x 7
+#readelf: -r -s -x 7
# Undefined reference for a R_CRIS_32_GOT_TPREL in a DSO. Not an
# error; it's ok for a DSO to have undefined references upon creation
# for global symbols that can be overridden. Just make sure GOT,
# dynsyms and dynrelocs look right.
-#...
Relocation section '.rela.dyn' at offset 0x.* contains 1 entry:
Offset +Info +Type +Sym.Value +Sym. Name \+ Addend
00002198 +0000021c R_CRIS_32_TPREL +0+ +x \+ 0
-The decoding of unwind sections for machine type Axis Communications 32-bit embedded processor is not currently supported.
-
Symbol table '.dynsym' contains . entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
#...
diff --git a/ld/testsuite/ld-cris/tls-und-46.d b/ld/testsuite/ld-cris/tls-und-46.d
index 1088e42..d536844 100644
--- a/ld/testsuite/ld-cris/tls-und-46.d
+++ b/ld/testsuite/ld-cris/tls-und-46.d
@@ -1,20 +1,17 @@
#source: tls-gd-1.s --pic
#as: --no-underscore --emulation=criself
#ld: -m crislinux --shared --hash-style=sysv
-#readelf: -a -x 7
+#readelf: -r -s -x 7
# Undefined reference for a R_CRIS_16_GOT_GD in a DSO. Not an error;
# it's ok for a DSO to have undefined references upon creation for
# global symbols that can be overridden. Just make sure GOT, dynsyms
# and dynrelocs look right.
-#...
Relocation section '.rela.dyn' at offset 0x.* contains 1 entry:
Offset +Info +Type +Sym.Value +Sym. Name \+ Addend
0000218c +00000217 R_CRIS_DTP +00000000 +x \+ 0
-The decoding of unwind sections for machine type Axis Communications 32-bit embedded processor is not currently supported.
-
Symbol table '.dynsym' contains . entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
#...
diff --git a/ld/testsuite/ld-cris/tls-und-50.d b/ld/testsuite/ld-cris/tls-und-50.d
index 2b22a21..fd6ff4c 100644
--- a/ld/testsuite/ld-cris/tls-und-50.d
+++ b/ld/testsuite/ld-cris/tls-und-50.d
@@ -1,20 +1,17 @@
#source: tls-ie-8.s --pic
#as: --no-underscore --emulation=criself
#ld: -m crislinux --shared --hash-style=sysv
-#readelf: -a -x 7
+#readelf: -r -s -x 7
# Undefined reference for a R_CRIS_16_GOT_TPREL in a DSO. Not an
# error; it's ok for a DSO to have undefined references upon creation
# for global symbols that can be overridden. Just make sure GOT,
# dynsyms and dynrelocs look right.
-#...
Relocation section '.rela.dyn' at offset 0x.* contains 1 entry:
Offset +Info +Type +Sym.Value +Sym. Name \+ Addend
00002190 +0000021c R_CRIS_32_TPREL +0+ +x \+ 0
-The decoding of unwind sections for machine type Axis Communications 32-bit embedded processor is not currently supported.
-
Symbol table '.dynsym' contains . entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
#...
diff --git a/ld/testsuite/ld-cris/weakref3.d b/ld/testsuite/ld-cris/weakref3.d
index a4a55b4..ffb9955 100644
--- a/ld/testsuite/ld-cris/weakref3.d
+++ b/ld/testsuite/ld-cris/weakref3.d
@@ -3,7 +3,7 @@
#as: --no-underscore --emulation=criself
#ld: -m crislinux --hash-style=sysv
#ld_after_inputfiles: tmpdir/libdso-15.so
-#readelf: -a -x 10
+#readelf: -S -r -s -x 10
# Like libdso-15b.d, but referencing the weak symbol and function from
# a program. At some time we broke emitting a copy reloc for the
@@ -22,8 +22,6 @@ Relocation section '.rela.plt' at offset 0x... contains 1 entry:
Offset +Info +Type +Sym.Value +Sym. Name \+ Addend
.* R_CRIS_JUMP_SLOT .* expfn2@TST3 \+ 0
-The decoding of unwind sections for machine type Axis Communications 32-bit embedded processor is not currently supported.
-
Symbol table '.dynsym' contains . entries:
#...
+.: [0-9a-f]* +4 +OBJECT +GLOBAL +DEFAULT +13 __expobj2@TST3 \(2\)
diff --git a/ld/testsuite/ld-cris/weakref4.d b/ld/testsuite/ld-cris/weakref4.d
index 9012bdc..a52f86a 100644
--- a/ld/testsuite/ld-cris/weakref4.d
+++ b/ld/testsuite/ld-cris/weakref4.d
@@ -3,7 +3,7 @@
#as: --no-underscore --emulation=criself
#ld: -m crislinux --hash-style=sysv
#ld_after_inputfiles: tmpdir/libdso-15.so
-#readelf: -a -x 11
+#readelf: -S -r -s -x 11
# Like weakref3.d, but just the expobj2 referenced from .data. We
# should avoid a copy reloc (instead emitting a R_CRIS_GLOB_DAT or
@@ -19,8 +19,6 @@ Relocation section '.rela.dyn' at offset 0x... contains 1 entry:
#...
.* R_CRIS_COPY .* __expobj2@TST3 \+ 0
-The decoding of unwind sections for machine type Axis Communications 32-bit embedded processor is not currently supported.
-
Symbol table '.dynsym' contains . entries:
#...
+.: [0-9a-f]* +4 +OBJECT +GLOBAL +DEFAULT +12 __expobj2@TST3 \(2\)
diff --git a/ld/testsuite/ld-ctf/ctf.exp b/ld/testsuite/ld-ctf/ctf.exp
index c314f29..3ce5e1e 100644
--- a/ld/testsuite/ld-ctf/ctf.exp
+++ b/ld/testsuite/ld-ctf/ctf.exp
@@ -38,6 +38,11 @@ if {[info exists env(LC_ALL)]} {
}
set env(LC_ALL) "C"
+set saved_ASFLAGS "$ASFLAGS"
+if [istarget "sparc-*-*"] {
+ append ASFLAGS " -Av8plus"
+}
+
set ctf_test_list [lsort [glob -nocomplain $srcdir/$subdir/*.d]]
foreach ctf_test $ctf_test_list {
@@ -50,6 +55,8 @@ foreach ctf_test $ctf_test_list {
run_dump_test [file rootname $ctf_test] { { cc "-gctf -fPIC" } }
}
+set ASFLAGS "$saved_ASFLAGS"
+
if {[info exists old_lc_all]} {
set env(LC_ALL) $old_lc_all
} else {
diff --git a/ld/testsuite/ld-elf/dwarf.exp b/ld/testsuite/ld-elf/dwarf.exp
index c7b2915..4f79635 100644
--- a/ld/testsuite/ld-elf/dwarf.exp
+++ b/ld/testsuite/ld-elf/dwarf.exp
@@ -69,11 +69,11 @@ set run_tests {
}
# Disable all sanitizers.
-set old_CFLAGS "$CFLAGS_FOR_TARGET"
-append CFLAGS_FOR_TARGET " $NOSANITIZE_CFLAGS"
+set old_CFLAGS "$CFLAGS_FOR_TARGET_TEST"
+append CFLAGS_FOR_TARGET_TEST " $NOSANITIZE_CFLAGS"
run_cc_link_tests $build_tests
run_ld_link_exec_tests $run_tests
-set CFLAGS_FOR_TARGET "$old_CFLAGS"
+set CFLAGS_FOR_TARGET_TEST "$old_CFLAGS"
proc strip_test {} {
global ld
diff --git a/ld/testsuite/ld-elf/elf.exp b/ld/testsuite/ld-elf/elf.exp
index 1ae1af9..098e712 100644
--- a/ld/testsuite/ld-elf/elf.exp
+++ b/ld/testsuite/ld-elf/elf.exp
@@ -86,6 +86,9 @@ run_ld_link_tests [list \
if [is_elf64 tmpdir/symbol3w.a] {
set ASFLAGS "$ASFLAGS --defsym ALIGN=3"
+ if { [istarget powerpc*-*-linux*] } {
+ set LDFLAGS "$LDFLAGS --no-ld-generated-unwind-info"
+ }
set pr23900_1_exp "pr23900-1-64.rd"
set pr25490_2_exp "pr25490-2-64.rd"
set pr25490_3_exp "pr25490-3-64.rd"
@@ -285,6 +288,13 @@ if { [istarget *-*-*linux*]
{pr29072-a.s} \
{{ld pr29072.a.warn}} \
"pr29072-a.exe"] \
+ [list "Test --error-execstack with an executable .note.GNU-stack" \
+ "--warn-execstack --error-execstack" \
+ "" \
+ "" \
+ {pr29072-a.s} \
+ {{ld gnu_execstack.err}} \
+ "gnu_execstack.exe"] \
[list "PR 29072 (warn about -z execstack)" \
"-z execstack --warn-execstack --no-error-execstack" \
"" \
@@ -292,6 +302,13 @@ if { [istarget *-*-*linux*]
{stack.s} \
{{ld pr29072.c.warn}} \
"pr29072-c.exe"] \
+ [list "Test --error-execstack with -z execstack" \
+ "-z execstack --warn-execstack --error-execstack" \
+ "" \
+ "" \
+ {stack.s} \
+ {{ld z_execstack.err}} \
+ "execstack.exe"] \
[list "PR ld/29072 (suppress warnings about executable stack)" \
"-e 0 --no-warn-execstack" \
"" \
@@ -299,13 +316,20 @@ if { [istarget *-*-*linux*]
{pr29072-a.s} \
{} \
"pr29072-d.exe"] \
- [list "Ensure that a warning issued when creating a segment with RWX permissions" \
+ [list "Ensure that a warning is issued when creating a segment with RWX permissions" \
"-e 0 -Tnobits-1.t --warn-rwx-segments --no-error-rwx-segments" \
"" \
"" \
{nobits-1.s} \
{{ld rwx-segments-1.l}} \
"rwx-segments-1.exe"] \
+ [list "Ensure that a error can be issued when creating a segment with RWX permissions" \
+ "-e 0 -Tnobits-1.t --warn-rwx-segments --error-rwx-segments" \
+ "" \
+ "" \
+ {nobits-1.s} \
+ {{ld rwx-segments-3.err}} \
+ "rwx-segments-3.exe"] \
[list "Ensure that a warning issued when creating a TLS segment with execute permission" \
"-e 0 -T rwx-segments-2.t --warn-rwx-segments --no-error-rwx-segments" \
"" \
@@ -313,6 +337,13 @@ if { [istarget *-*-*linux*]
{size-2.s} \
{{ld rwx-segments-2.l}} \
"rwx-segments-2.exe"] \
+ [list "Ensure that an error cn be issued when creating a TLS segment with execute permission" \
+ "-e 0 -T rwx-segments-2.t --warn-rwx-segments --error-rwx-segments" \
+ "" \
+ "" \
+ {size-2.s} \
+ {{ld rwx-segments-4.err}} \
+ "rwx-segments-4.exe"] \
[list "Ensure that the RWX warning can be suppressed" \
"-e 0 -Tnobits-1.t --no-warn-rwx-segments" \
"" \
@@ -334,6 +365,16 @@ if { [istarget *-*-*linux*]
{{ld pr29072.b.warn}} \
"pr29072-b.exe"] \
]
+
+ run_ld_link_tests [list \
+ [list "error when .note.GNU-stack is absent" \
+ "-e 0 -z stack-size=0x123400 --warn-execstack --error-execstack" \
+ "" \
+ "" \
+ {pr29072-b.s} \
+ {{ld missing-execstack.err}} \
+ "missing-execstack.exe"] \
+ ]
} else {
run_ld_link_tests [list \
[list "PR ld/29072 (ignore absent .note.GNU-stack)" \
diff --git a/ld/testsuite/ld-elf/gnu_execstack.err b/ld/testsuite/ld-elf/gnu_execstack.err
new file mode 100644
index 0000000..be70b63
--- /dev/null
+++ b/ld/testsuite/ld-elf/gnu_execstack.err
@@ -0,0 +1,3 @@
+#...
+.*: error: .*: is triggering the generation of an executable stack \(because it has an executable .note.GNU-stack section\)
+#...
diff --git a/ld/testsuite/ld-elf/linux-x86.exp b/ld/testsuite/ld-elf/linux-x86.exp
index 27173b9..a4dfc8a 100644
--- a/ld/testsuite/ld-elf/linux-x86.exp
+++ b/ld/testsuite/ld-elf/linux-x86.exp
@@ -84,9 +84,9 @@ run_cc_link_tests [list \
] \
[list \
"Build indirect-extern-access-1a without PIE" \
- "$NOPIE_LDFLAGS -Wl,--no-as-needed -z noexecstack \
+ "$NOPIE_LDFLAGS $DIRECT_EXTERN_ACCESS_CFLAGS -Wl,--no-as-needed -z noexecstack \
tmpdir/indirect-extern-access-1.so" \
- "$NOPIE_CFLAGS" \
+ "$NOPIE_CFLAGS $DIRECT_EXTERN_ACCESS_CFLAGS" \
{ indirect-extern-access.S indirect-extern-access-1b.c } \
{{readelf -rn indirect-extern-access-1.rd}} \
"indirect-extern-access-1a" \
@@ -101,9 +101,9 @@ run_cc_link_tests [list \
] \
[list \
"Build indirect-extern-access-2a without PIE" \
- "$NOPIE_LDFLAGS -Wl,--no-as-needed -z noexecstack \
+ "$NOPIE_LDFLAGS $DIRECT_EXTERN_ACCESS_CFLAGS -Wl,--no-as-needed -z noexecstack \
tmpdir/indirect-extern-access-2.so" \
- "$NOPIE_CFLAGS" \
+ "$NOPIE_CFLAGS $DIRECT_EXTERN_ACCESS_CFLAGS" \
{ indirect-extern-access.S indirect-extern-access-1b.c } \
{{readelf -rn indirect-extern-access-2.rd}} \
"indirect-extern-access-2a" \
@@ -375,11 +375,11 @@ proc check_pr25749a {testname srcfilea srcfileb cflags ldflags lderror} {
check_pr25749a "pr25749-1a" "pr25749-1.c" "pr25749-1a.c" "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS" ""
check_pr25749a "pr25749-1a" "pr25749-1.c" "pr25749-1a.c" "-fPIE" "-pie" ""
-check_pr25749a "pr25749-1b" "pr25749-1.c" "pr25749-1b.c" "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS" ""
+check_pr25749a "pr25749-1b" "pr25749-1.c" "pr25749-1b.c" "$NOPIE_CFLAGS $DIRECT_EXTERN_ACCESS_CFLAGS" "$NOPIE_LDFLAGS" ""
if { [istarget "i?86-*-linux*"] || ![at_least_gcc_version 5 1] } {
- check_pr25749a "pr25749-1b" "pr25749-1.c" "pr25749-1b.c" "-fPIE" "-pie" ""
+ check_pr25749a "pr25749-1b" "pr25749-1.c" "pr25749-1b.c" "-fPIE $DIRECT_EXTERN_ACCESS_CFLAGS" "-pie" ""
} else {
- check_pr25749a "pr25749-1b" "pr25749-1.c" "pr25749-1b.c" "-fPIE" "-pie" "pr25749-1b.err"
+ check_pr25749a "pr25749-1b" "pr25749-1.c" "pr25749-1b.c" "-fPIE $DIRECT_EXTERN_ACCESS_CFLAGS" "-pie" "pr25749-1b.err"
}
check_pr25749a "pr25749-1c" "pr25749-1.c" "pr25749-1c.c" "-fPIC" "-shared" "pr25749-1b.err"
check_pr25749a "pr25749-2a" "pr25749-2.c" "pr25749-2a.s" "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS" ""
diff --git a/ld/testsuite/ld-elf/missing-execstack.err b/ld/testsuite/ld-elf/missing-execstack.err
new file mode 100644
index 0000000..9549cf5
--- /dev/null
+++ b/ld/testsuite/ld-elf/missing-execstack.err
@@ -0,0 +1,3 @@
+#...
+.*: error: .*\.o: is triggering the generation of an executable stack because it does not have a .note.GNU-stack section
+#...
diff --git a/ld/testsuite/ld-elf/pr33291.d b/ld/testsuite/ld-elf/pr33291.d
new file mode 100644
index 0000000..22a8336
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr33291.d
@@ -0,0 +1,9 @@
+#source: pr33291a.s
+#source: pr33291b.s
+#ld: -shared
+#readelf: -S --wide
+#xfail: ![check_shared_lib_support]
+
+#...
+ \[[ 0-9]+\] \.rodata[ ]+PROGBITS[ ]+[0-9a-f]+ [0-9a-f]+ 0+9 00 +A +0 +0 +8
+#...
diff --git a/ld/testsuite/ld-elf/pr33291a.s b/ld/testsuite/ld-elf/pr33291a.s
new file mode 100644
index 0000000..587c0fb
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr33291a.s
@@ -0,0 +1,8 @@
+ .globl foo
+ .section .rodata.cst8,"aM",%progbits,8
+ .p2align 3
+ .type foo, %object
+ .size foo, 8
+foo:
+ .quad 131073
+ .section .note.GNU-stack,"",%progbits
diff --git a/ld/testsuite/ld-elf/pr33291b.s b/ld/testsuite/ld-elf/pr33291b.s
new file mode 100644
index 0000000..69f6b3d
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr33291b.s
@@ -0,0 +1,7 @@
+ .globl bar
+ .section .rodata.cst1,"aM",%progbits,1
+ .type bar, %object
+ .size bar, 1
+bar:
+ .byte 1
+ .section .note.GNU-stack,"",%progbits
diff --git a/ld/testsuite/ld-elf/pr33409a.c b/ld/testsuite/ld-elf/pr33409a.c
new file mode 100644
index 0000000..c37a5e6
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr33409a.c
@@ -0,0 +1,20 @@
+#include <stdio.h>
+
+extern char *array[];
+
+char **
+foo (void)
+{
+ return array;
+}
+
+extern void bar (void);
+
+int
+main()
+{
+ char **p = foo ();
+ bar ();
+ printf ("%s\n", p[0]);
+ return 0;
+}
diff --git a/ld/testsuite/ld-elf/pr33409b.c b/ld/testsuite/ld-elf/pr33409b.c
new file mode 100644
index 0000000..db64e13
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr33409b.c
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+char *__array [] =
+{
+ "PASS",
+ NULL
+};
+
+extern __typeof (__array) array __attribute__ ((weak, alias ("__array")));
diff --git a/ld/testsuite/ld-elf/pr33409c.c b/ld/testsuite/ld-elf/pr33409c.c
new file mode 100644
index 0000000..7de81b3
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr33409c.c
@@ -0,0 +1,4 @@
+void
+bar (void)
+{
+}
diff --git a/ld/testsuite/ld-elf/rwx-segments-3.err b/ld/testsuite/ld-elf/rwx-segments-3.err
new file mode 100644
index 0000000..5a584db
--- /dev/null
+++ b/ld/testsuite/ld-elf/rwx-segments-3.err
@@ -0,0 +1,3 @@
+#...
+.* error: .* has a LOAD segment with RWX permissions
+#... \ No newline at end of file
diff --git a/ld/testsuite/ld-elf/rwx-segments-4.err b/ld/testsuite/ld-elf/rwx-segments-4.err
new file mode 100644
index 0000000..2603f57
--- /dev/null
+++ b/ld/testsuite/ld-elf/rwx-segments-4.err
@@ -0,0 +1,3 @@
+#...
+.*: error: .* has a TLS segment with execute permission
+#...
diff --git a/ld/testsuite/ld-elf/shared.exp b/ld/testsuite/ld-elf/shared.exp
index ee881c2..fad3812 100644
--- a/ld/testsuite/ld-elf/shared.exp
+++ b/ld/testsuite/ld-elf/shared.exp
@@ -972,7 +972,13 @@ append build_tests {
{pr26580-b.c} {} "libpr26580-2.so"}
}
+set old_CFLAGS "$CFLAGS_FOR_TARGET_TEST"
+set old_CXXFLAGS "$CXXFLAGS_FOR_TARGET_TEST"
+append CFLAGS_FOR_TARGET_TEST " $NOSANITIZE_CFLAGS"
+append CXXFLAGS_FOR_TARGET_TEST " $NOSANITIZE_CFLAGS"
run_cc_link_tests $build_tests
+set CFLAGS_FOR_TARGET_TEST "$old_CFLAGS"
+set CXXFLAGS_FOR_TARGET_TEST "$old_CXXFLAGS"
run_cc_link_tests [list \
[list \
@@ -1010,6 +1016,20 @@ run_cc_link_tests [list \
{nm {-u -D --with-symbol-versions} pr26302.nd}} \
"pr26302b.so" \
] \
+ [list \
+ "Build pr33409a.o" \
+ "" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS" \
+ {pr33409a.c} \
+ ] \
+ [list \
+ "Build pr33409.so" \
+ "-shared" \
+ "-fPIC" \
+ {pr33409b.c} \
+ {} \
+ "pr33409.so" \
+ ] \
]
run_ld_link_tests [list \
@@ -1200,6 +1220,17 @@ set run_tests [list \
"tmpdir/pr31482b-no-lto.so tmpdir/pr31482c-no-lto.a \
tmpdir/pr31482d-no-lto.a" \
] \
+ [list "Run pr33409" \
+ "-Wl,-z,text" \
+ "" \
+ {pr33409c.c} \
+ "pr33409" \
+ "pass.out" \
+ "$NO_DIRECT_EXTERN_ACCESS_CFLAGS" \
+ "c" \
+ "" \
+ "tmpdir/pr33409a.o tmpdir/pr33409.so" \
+ ] \
]
# NetBSD ELF systems do not currently support the .*_array sections.
@@ -1259,10 +1290,10 @@ if [check_libdl_available] {
# XFAIL on NetBSD ELF systems as they do not currently support the .*_array
# sections.
# Disable all sanitizers.
- set old_CFLAGS "$CFLAGS_FOR_TARGET"
- append CFLAGS_FOR_TARGET " $NOSANITIZE_CFLAGS"
+ set old_CFLAGS "$CFLAGS_FOR_TARGET_TEST"
+ append CFLAGS_FOR_TARGET_TEST " $NOSANITIZE_CFLAGS"
run_ld_link_exec_tests $dlopen_run_tests "*-*-netbsd*"
- set CFLAGS_FOR_TARGET "$old_CFLAGS"
+ set CFLAGS_FOR_TARGET_TEST "$old_CFLAGS"
}
# Check --no-add-needed and --no-copy-dt-needed-entries
diff --git a/ld/testsuite/ld-elf/z_execstack.err b/ld/testsuite/ld-elf/z_execstack.err
new file mode 100644
index 0000000..703b42a
--- /dev/null
+++ b/ld/testsuite/ld-elf/z_execstack.err
@@ -0,0 +1,4 @@
+#...
+.*: error: creating an executable stack because of -z execstack command line option
+#...
+
diff --git a/ld/testsuite/ld-elfvers/vers.exp b/ld/testsuite/ld-elfvers/vers.exp
index d5cfc75..80faaa0 100644
--- a/ld/testsuite/ld-elfvers/vers.exp
+++ b/ld/testsuite/ld-elfvers/vers.exp
@@ -35,7 +35,8 @@ if { ![check_shared_lib_support] } {
# This test can only be run on a couple of ELF platforms.
# Square bracket expressions seem to confuse istarget.
# This is similar to the test that is used in ld-shared, BTW.
-if { ![istarget hppa*64*-*-hpux*]
+if { ![istarget *-*-solaris2*]
+ && ![istarget hppa*64*-*-hpux*]
&& ![istarget hppa*-*-linux*]
&& ![istarget i?86-*-elf*]
&& ![istarget i?86-*-linux*]
@@ -48,7 +49,6 @@ if { ![istarget hppa*64*-*-hpux*]
&& ![istarget powerpc*-*-linux*]
&& ![istarget powerpc*-*-sysv4*]
&& ![istarget sparc*-*-elf]
- && ![istarget sparc*-*-solaris2*]
&& ![istarget sparc*-*-linux*]
&& ![istarget aarch64*-*-linux*]
&& ![istarget arm*-*-linux*]
@@ -60,6 +60,13 @@ if { ![istarget hppa*64*-*-hpux*]
return
}
+set need_direct_extern_access ""
+if { [istarget i?86-*-linux*]
+ || [istarget i?86-*-gnu*] } then {
+ # These targets need direct extern access in some tests.
+ set need_direct_extern_access "$DIRECT_EXTERN_ACCESS_CFLAGS"
+}
+
set diff diff
set tmpdir tmpdir
set VOBJDUMP_FLAGS --private-headers
@@ -558,7 +565,8 @@ proc build_vers_lib_no_pic { test source libname other mapfile verexp versymexp
global shared
# Make sure that PLT is used since PLT is expected.
global PLT_CFLAGS
- build_binary "$shared -z notext" $PLT_CFLAGS $test $source $libname $other $mapfile $verexp $versymexp $symexp ""
+ global need_direct_extern_access
+ build_binary "$shared -z notext" "$PLT_CFLAGS $need_direct_extern_access" $test $source $libname $other $mapfile $verexp $versymexp $symexp ""
}
proc build_vers_lib_pic { test source libname other mapfile verexp versymexp symexp } {
@@ -961,7 +969,10 @@ if [string match "yes" $pic] then {
build_vers_lib_pic "vers26a" vers26a.c vers26a "" vers26a.map vers26a.ver vers26a.dsym ""
build_vers_lib_pic "vers26b1" vers26b.c vers26b1 "" "" vers26b.ver vers26b.dsym ""
build_vers_lib_pic "vers26b2" vers26b.c vers26b2 "vers26a.so vers26b1.so vers26a.o" "" vers26b.ver vers26b.dsym ""
-if [string match "yes" $pic] then {
+if { [istarget x86_64-*-linux*] || [istarget x86_64-*-solaris2*] } then {
+ # gcc -fPIC generates code that ld rejects.
+ unsupported "vers26b3"
+} elseif [string match "yes" $pic] then {
xfail "vers26b3"
} else {
build_vers_lib_no_pic "vers26b3" vers26b.c vers26b3 "vers26a.so vers26b1.so vers26a.o" "" vers26b.ver vers26b.dsym ""
diff --git a/ld/testsuite/ld-i386/binutils.exp b/ld/testsuite/ld-i386/binutils.exp
new file mode 100644
index 0000000..1138448
--- /dev/null
+++ b/ld/testsuite/ld-i386/binutils.exp
@@ -0,0 +1,49 @@
+# Expect script for ELF/i386 binutils tests on linker outputs.
+# Copyright (C) 2025 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Binutils.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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.
+#
+
+if ![is_elf_format] {
+ return
+}
+
+if { ![istarget "i?86-*-*"] && ![istarget "x86_64-*-*"] } {
+ return
+}
+
+# Tests here need -melf_i386 support.
+set status [catch "exec $LD -V -melf_i386" got]
+if { $status == 0 } {
+ run_ld_link_tests [list \
+ [list \
+ "Build libgot-1-i386.so" \
+ "-shared -melf_i386 --no-ld-generated-unwind-info \
+ -z noseparate-code -z max-page-size=0x200000 \
+ --rosegment --hash-style=sysv $NO_DT_RELR_LDFLAGS" \
+ "" \
+ "--32 -mx86-used-note=no --generate-missing-build-notes=no" \
+ {got-1.s} \
+ {{readelf -rW libgot-1a.rd} \
+ {readelf -aW libgot-1b.rd} \
+ {readelf --got-contents libgot-1c.rd} \
+ {readelf {--got-contents -W} libgot-1d.rd}} \
+ "libgot-1-i386.so" \
+ ] \
+ ]
+}
diff --git a/ld/testsuite/ld-i386/dt-relr-1c.d b/ld/testsuite/ld-i386/dt-relr-1c.d
new file mode 100644
index 0000000..b64860f
--- /dev/null
+++ b/ld/testsuite/ld-i386/dt-relr-1c.d
@@ -0,0 +1,26 @@
+#source: dt-relr-1.s
+#as: --32
+#ld: -shared -melf_i386 $DT_RELR_LDFLAGS --hash-style=sysv
+#readelf: -D -r -s --wide
+#target: x86_64-*-linux* i?86-*-linux-gnu i?86-*-gnu*
+
+'REL' relocation section at offset [0x0-9a-f]+ contains 16 bytes:
+ +Offset +Info +Type +Sym. Value +Symbol's Name
+[0-9a-f]+ +[0-9a-f]+ +R_386_32 +0+ +data1
+[0-9a-f]+ +[0-9a-f]+ +R_386_32 +0+ +data1
+
+'RELR' relocation section at offset 0x[a-f0-9]+ contains 8 bytes:
+#...
+0000: +[0-9a-f]+ [0-9a-f]+ +.*
+0001: +[0-9a-f]+ [0-9a-f]+ +.*
+ +[0-9a-f]+ +.*
+#...
+'PLT' relocation section at offset 0x[0-9a-f]+ contains 8 bytes:
+ +Offset +Info +Type +Sym. Value +Symbol's Name
+[0-9a-f]+ +[0-9a-f]+ +R_386_JUMP_SLOT +0+ +func1
+
+Symbol table for image contains [0-9]+ entries:
+ Num: Value Size Type Bind Vis Ndx Name
+#...
+ +[0-9]+: 0+ +0 +NOTYPE +GLOBAL +DEFAULT +UND +func1
+#pass
diff --git a/ld/testsuite/ld-i386/dt-relr-1d.d b/ld/testsuite/ld-i386/dt-relr-1d.d
new file mode 100644
index 0000000..37df7c5
--- /dev/null
+++ b/ld/testsuite/ld-i386/dt-relr-1d.d
@@ -0,0 +1,26 @@
+#source: dt-relr-1.s
+#as: --32
+#ld: -shared -melf_i386 $DT_RELR_LDFLAGS -z nocombreloc --hash-style=sysv
+#readelf: -D -r -s --wide
+#target: x86_64-*-linux* i?86-*-linux-gnu i?86-*-gnu*
+
+'REL' relocation section at offset [0x0-9a-f]+ contains 16 bytes:
+ +Offset +Info +Type +Sym. Value +Symbol's Name
+[0-9a-f]+ +[0-9a-f]+ +R_386_32 +0+ +data1
+[0-9a-f]+ +[0-9a-f]+ +R_386_32 +0+ +data1
+
+'RELR' relocation section at offset 0x[a-f0-9]+ contains 8 bytes:
+#...
+0000: +[0-9a-f]+ [0-9a-f]+ +.*
+0001: +[0-9a-f]+ [0-9a-f]+ +.*
+ +[0-9a-f]+ +.*
+#...
+'PLT' relocation section at offset 0x[0-9a-f]+ contains 8 bytes:
+ +Offset +Info +Type +Sym. Value +Symbol's Name
+[0-9a-f]+ +[0-9a-f]+ +R_386_JUMP_SLOT +0+ +func1
+
+Symbol table for image contains [0-9]+ entries:
+ Num: Value Size Type Bind Vis Ndx Name
+#...
+ +[0-9]+: 0+ +0 +NOTYPE +GLOBAL +DEFAULT +UND +func1
+#pass
diff --git a/ld/testsuite/ld-i386/dt-relr-2.d b/ld/testsuite/ld-i386/dt-relr-2.d
new file mode 100644
index 0000000..7b07d6c
--- /dev/null
+++ b/ld/testsuite/ld-i386/dt-relr-2.d
@@ -0,0 +1,21 @@
+#source: dt-relr-2.s
+#as: --32
+#ld: -shared -melf_i386 $DT_RELR_LDFLAGS --hash-style=sysv
+#readelf: -D -r --wide
+#target: x86_64-*-linux* i?86-*-linux-gnu i?86-*-gnu*
+
+'REL' relocation section at offset [0x0-9a-f]+ contains 16 bytes:
+ +Offset +Info +Type +Sym. Value +Symbol's Name
+[0-9a-f]+ +[0-9a-f]+ +R_386_32 +0+ +data1
+[0-9a-f]+ +[0-9a-f]+ +R_386_32 +0+ +data1
+
+'RELR' relocation section at offset 0x[a-f0-9]+ contains 8 bytes:
+#...
+0000: +[0-9a-f]+ [0-9a-f]+ +.*
+0001: +[0-9a-f]+ [0-9a-f]+ +.*
+ +[0-9a-f]+ +.*
+#...
+'PLT' relocation section at offset 0x[0-9a-f]+ contains 16 bytes:
+ +Offset +Info +Type +Sym. Value +Symbol's Name
+[0-9a-f]+ +[0-9a-f]+ +R_386_JUMP_SLOT +[0-9a-f]+ +func1
+[0-9a-f]+ +[0-9a-f]+ +R_386_JUMP_SLOT +[0-9a-f]+ +func2
diff --git a/ld/testsuite/ld-i386/dt-relr-2.s b/ld/testsuite/ld-i386/dt-relr-2.s
new file mode 100644
index 0000000..4c2eb1f
--- /dev/null
+++ b/ld/testsuite/ld-i386/dt-relr-2.s
@@ -0,0 +1,23 @@
+ .text
+ .globl func1
+func1:
+ ret
+foo:
+ call func1@PLT
+ call func2@PLT
+ pushl __ehdr_start@GOT(%ebx)
+ .globl func2
+func2:
+ ret
+ .globl func3
+func3:
+ ret
+ .section .bar,"aw",@progbits
+ .p2align 2
+ .dc.a data1
+ .dc.a __ehdr_start
+
+ .section .foo,"aw",@progbits
+ .p2align 2
+ .dc.a data1
+ .dc.a __ehdr_start
diff --git a/ld/testsuite/ld-i386/export-class.exp b/ld/testsuite/ld-i386/export-class.exp
index a06a091..919925e 100644
--- a/ld/testsuite/ld-i386/export-class.exp
+++ b/ld/testsuite/ld-i386/export-class.exp
@@ -31,8 +31,9 @@ if { ![is_elf_format] } {
# Exclude some more targets; feel free to include your favorite one
# if you like.
-if { !([istarget i?86-*-linux*]
- || [istarget i?86-*-gnu*]) } {
+if { !([istarget "i?86-*-linux*"]
+ || [istarget "i?86-*-gnu*"]
+ || [istarget "x86_64-*-linux*"]) } {
return
}
@@ -43,8 +44,9 @@ set testname "i386 symbol export class test"
run_ld_link_tests [list \
[list \
"$testname (auxiliary shared object)" \
- "-shared -version-script ../ld-elf/export-class-lib.ver" "" \
+ "-melf_i386 -shared -version-script ../ld-elf/export-class-lib.ver" \
"" \
+ "--32" \
{ ../ld-elf/export-class-lib.s } \
{} \
"i386-export-class-lib.so" \
@@ -57,8 +59,8 @@ run_ld_link_tests [list \
run_ld_link_tests [list \
[list \
"$testname (initial static object)" \
- "-r" "" \
- "" \
+ "-r -melf_i386" "" \
+ "--32" \
{ ../ld-elf/export-class-ref.s } \
{} \
"i386-export-class-ref-r.o" \
@@ -74,8 +76,9 @@ run_ld_link_tests [list \
run_ld_link_tests [list \
[list \
"$testname (final shared object)" \
- "-shared $NO_DT_RELR_LDFLAGS -Tdata=0x12340000 tmpdir/i386-export-class-ref-r.o tmpdir/i386-export-class-lib.so" "" \
+ "-shared -melf_i386 $NO_DT_RELR_LDFLAGS -Tdata=0x12340000 tmpdir/i386-export-class-ref-r.o tmpdir/i386-export-class-lib.so" \
"" \
+ "--32" \
{ ../ld-elf/export-class-dep.s ../ld-elf/export-class-def.s } \
{ \
{ readelf -r i386-export-class.rd } \
diff --git a/ld/testsuite/ld-i386/gnu-tls-1.s b/ld/testsuite/ld-i386/gnu-tls-1.s
new file mode 100644
index 0000000..02ae207
--- /dev/null
+++ b/ld/testsuite/ld-i386/gnu-tls-1.s
@@ -0,0 +1,9 @@
+ .text
+ .p2align 4
+ .globl func
+ .type func, @function
+func:
+ leal foo@tlsgd(,%ebx,1), %eax
+ call ___tls_get_addr@PLT
+ ret
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-i386/gnu-tls-1a.rd b/ld/testsuite/ld-i386/gnu-tls-1a.rd
new file mode 100644
index 0000000..65d889d
--- /dev/null
+++ b/ld/testsuite/ld-i386/gnu-tls-1a.rd
@@ -0,0 +1,7 @@
+#...
+Version needs section '.gnu.version_r' contains [0-9]+ entries:
+ Addr: 0x[0-9a-f]+ +Offset: 0x[0-9a-f]+ +Link: +[0-9]+ +\(.dynstr\)
+ +0+: Version: 1 +File: libc\.so\.6(|\.1) +Cnt: +[0-9]+
+#...
+ 0x[a-f0-9]+: Name: GLIBC_ABI_GNU_TLS Flags: none Version: [0-9]+
+#pass
diff --git a/ld/testsuite/ld-i386/gnu-tls-1b.rd b/ld/testsuite/ld-i386/gnu-tls-1b.rd
new file mode 100644
index 0000000..02006e4
--- /dev/null
+++ b/ld/testsuite/ld-i386/gnu-tls-1b.rd
@@ -0,0 +1,4 @@
+#failif
+#...
+ 0x[a-f0-9]+: Name: GLIBC_ABI_GNU_TLS Flags: none Version: [0-9]+
+#...
diff --git a/ld/testsuite/ld-i386/gnu2-tls-1.s b/ld/testsuite/ld-i386/gnu2-tls-1.s
new file mode 100644
index 0000000..e3841c7
--- /dev/null
+++ b/ld/testsuite/ld-i386/gnu2-tls-1.s
@@ -0,0 +1,11 @@
+ .section .text.startup,"ax",@progbits
+ .p2align 4
+ .globl main
+ .type main, @function
+main:
+ leal ld@TLSDESC(%ebx), %eax
+ call *ld@TLSCALL(%eax)
+ addl %gs:0, %eax
+ ret
+ .size main, .-main
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-i386/gnu2-tls-1a.rd b/ld/testsuite/ld-i386/gnu2-tls-1a.rd
new file mode 100644
index 0000000..3eb926a
--- /dev/null
+++ b/ld/testsuite/ld-i386/gnu2-tls-1a.rd
@@ -0,0 +1,7 @@
+#...
+Version needs section '.gnu.version_r' contains 1 entry:
+ Addr: 0x[0-9a-f]+ +Offset: 0x[0-9a-f]+ +Link: +[0-9]+ +\(.dynstr\)
+ +0+: Version: 1 +File: libc\.so\.6(|\.1) +Cnt: +[0-9]+
+#...
+ 0x[a-f0-9]+: Name: GLIBC_ABI_GNU2_TLS Flags: none Version: [0-9]+
+#pass
diff --git a/ld/testsuite/ld-i386/gnu2-tls-1b.rd b/ld/testsuite/ld-i386/gnu2-tls-1b.rd
new file mode 100644
index 0000000..33ef8ac
--- /dev/null
+++ b/ld/testsuite/ld-i386/gnu2-tls-1b.rd
@@ -0,0 +1,4 @@
+#failif
+#...
+ 0x[a-f0-9]+: Name: GLIBC_ABI_GNU2_TLS Flags: none Version: [0-9]+
+#...
diff --git a/ld/testsuite/ld-i386/got-1.s b/ld/testsuite/ld-i386/got-1.s
new file mode 100644
index 0000000..30e45f9
--- /dev/null
+++ b/ld/testsuite/ld-i386/got-1.s
@@ -0,0 +1,7 @@
+ .text
+ .globl func
+ .type func, @function
+func:
+ call *foo@GOT(%ebx)
+ jmp bar@PLT
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-i386/i386-export-class.rd b/ld/testsuite/ld-i386/i386-export-class.rd
index d7beade..7ec0825 100644
--- a/ld/testsuite/ld-i386/i386-export-class.rd
+++ b/ld/testsuite/ld-i386/i386-export-class.rd
@@ -1,11 +1,11 @@
Relocation section '\.rel\.dyn' at offset 0x[0-9a-f]+ contains [0-9]+ entries:
* Offset * Info * Type * Sym\. *Value * Sym\. * Name
+12340000 00000008 R_386_RELATIVE *
12340010 00000008 R_386_RELATIVE *
12340020 00000008 R_386_RELATIVE *
+12340040 00000008 R_386_RELATIVE *
+12340050 00000008 R_386_RELATIVE *
12340060 00000008 R_386_RELATIVE *
12340070 00000008 R_386_RELATIVE *
12340080 00000008 R_386_RELATIVE *
12340090 00000008 R_386_RELATIVE *
-12340000 [0-9a-f]+01 R_386_32 123400a0 protected_baz
-12340040 [0-9a-f]+01 R_386_32 123400a0 protected_foo
-12340050 [0-9a-f]+01 R_386_32 123400a0 protected_bar
diff --git a/ld/testsuite/ld-i386/i386-export-class.xd b/ld/testsuite/ld-i386/i386-export-class.xd
index a797f20..31f011f 100644
--- a/ld/testsuite/ld-i386/i386-export-class.xd
+++ b/ld/testsuite/ld-i386/i386-export-class.xd
@@ -1,10 +1,10 @@
Hex dump of section '\.data':
- 0x12340000 00000000 00000000 00000000 00000000 .*
+ 0x12340000 a0003412 00000000 00000000 00000000 .*
0x12340010 a0003412 00000000 00000000 00000000 .*
0x12340020 a0003412 00000000 00000000 00000000 .*
0x12340030 00000000 00000000 00000000 00000000 .*
- 0x12340040 00000000 00000000 00000000 00000000 .*
- 0x12340050 00000000 00000000 00000000 00000000 .*
+ 0x12340040 a0003412 00000000 00000000 00000000 .*
+ 0x12340050 a0003412 00000000 00000000 00000000 .*
0x12340060 a0003412 00000000 00000000 00000000 .*
0x12340070 a0003412 00000000 00000000 00000000 .*
0x12340080 a0003412 00000000 00000000 00000000 .*
diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp
index 6366457..bba0eed 100644
--- a/ld/testsuite/ld-i386/i386.exp
+++ b/ld/testsuite/ld-i386/i386.exp
@@ -515,11 +515,17 @@ run_dump_test "pr27491-3"
run_dump_test "pr27491-4"
run_dump_test "dt-relr-1a"
run_dump_test "dt-relr-1b"
+run_dump_test "dt-relr-1c"
+run_dump_test "dt-relr-1d"
+run_dump_test "dt-relr-2"
run_dump_test "pr28870"
run_dump_test "pr28894"
run_dump_test "pr30787"
run_dump_test "pr31047"
run_dump_test "pr32191"
+run_dump_test "pr33260"
+run_dump_test "pr33260-2"
+run_dump_test "pr28387"
if { !([istarget "i?86-*-linux*"]
|| [istarget "i?86-*-gnu*"]
@@ -710,7 +716,7 @@ if { [isnative]
[list \
"Build pr17689.so" \
"-shared" \
- "-fPIC -Wa,-mrelax-relocations=yes" \
+ "-fPIC $DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mrelax-relocations=yes" \
{ pr17689a.c } \
{} \
"pr17689.so" \
@@ -734,7 +740,7 @@ if { [isnative]
[list \
"Build pr17689.a" \
"" \
- "-Wa,-mrelax-relocations=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mrelax-relocations=yes" \
{ pr17689b.S } \
{} \
"pr17689.a" \
@@ -742,7 +748,7 @@ if { [isnative]
[list \
"Build pr17689 with PIE and GOTOFF" \
"tmpdir/pr17689b.o tmpdir/pr17689.so -pie" \
- "-Wa,-mrelax-relocations=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mrelax-relocations=yes" \
{ dummy.c } \
{{readelf {-Wr} pr17689.rd}} \
"pr17689" \
@@ -750,7 +756,7 @@ if { [isnative]
[list \
"Build pr17689 with PIE, -z now and GOTOFF" \
"tmpdir/pr17689b.o tmpdir/pr17689.so -pie -Wl,-z,now" \
- "-Wa,-mrelax-relocations=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mrelax-relocations=yes" \
{ dummy.c } \
{{readelf {-Wr} pr17689now.rd}} \
"pr17689now" \
@@ -758,7 +764,7 @@ if { [isnative]
[list \
"Build pr17689ver with PIE and GOTOFF" \
"tmpdir/pr17689b.o tmpdir/pr17689ver.so -pie" \
- "-Wa,-mrelax-relocations=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mrelax-relocations=yes" \
{ dummy.c } \
{{readelf {-Wr} pr17689ver.rd}} \
"pr17689ver" \
@@ -766,7 +772,7 @@ if { [isnative]
[list \
"Build pr17827 with PIE and GOTOFF" \
"tmpdir/pr17689b.o tmpdir/pr17689.so -pie" \
- "-Wa,-mrelax-relocations=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mrelax-relocations=yes" \
{ dummy.c } \
{{readelf {-Wr} pr17827.rd}} \
"pr17827" \
@@ -872,7 +878,7 @@ if { [isnative]
[list \
"Build property 1 (.o)" \
"-r -nostdlib" \
- "-Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{pass.c property-no-copy.S} \
{{readelf {-n} property-1a.r}} \
"property-1.o" \
@@ -896,7 +902,7 @@ if { [isnative]
[list \
"Build property 2 (.o)" \
"-r -nostdlib" \
- "-Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{pass.c property-stack.S} \
{{readelf {-n} property-2a.r}} \
"property-2.o" \
@@ -920,7 +926,7 @@ if { [isnative]
[list \
"Build property 3 (.o)" \
"-r -nostdlib" \
- "-Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{pass.c property-x86-1.S property-stack.S} \
{{readelf {-n} property-3a.r}} \
"property-3.o" \
@@ -944,7 +950,7 @@ if { [isnative]
[list \
"Build property 4 (.o)" \
"-r -nostdlib" \
- "-Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{pass.c property-x86-2.S property-x86-1.S property-stack.S} \
{{readelf {-n} property-4a.r}} \
"property-4.o" \
@@ -976,7 +982,7 @@ if { [isnative]
[list \
"Build property 5 (.o)" \
"-r -nostdlib -Wl,-z,stack-size=0x900000" \
- "-Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{pass.c property-x86-2.S property-x86-1.S property-stack.S} \
{{readelf {-n} property-5a.r}} \
"property-5.o" \
@@ -1000,7 +1006,7 @@ if { [isnative]
[list \
"Build property-6.o" \
"-r -nostdlib" \
- "-Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{property-6b.c property-stack.S} \
{{readelf {-n} property-2a.r}} \
"property-6.o" \
@@ -1067,6 +1073,7 @@ if { [isnative]
{ dummy.c } \
"pr17689" \
"pr17689.out" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS" \
] \
[list \
"Run pr17689 with PIE, -z now and GOTOFF" \
@@ -1075,6 +1082,7 @@ if { [isnative]
{ dummy.c } \
"pr17689now" \
"pr17689.out" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS" \
] \
[list \
"Run pr17689ver with PIE and GOTOFF" \
@@ -1083,6 +1091,7 @@ if { [isnative]
{ dummy.c } \
"pr17689ver" \
"pr17689.out" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS" \
] \
[list \
"Run pr18900" \
@@ -1318,7 +1327,7 @@ if { [isnative]
[list \
"Build pr28875" \
"$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/pr28875.so" \
- "$NOPIE_CFLAGS" \
+ "$NOPIE_CFLAGS $DIRECT_EXTERN_ACCESS_CFLAGS" \
{ pr28875b.c } \
{{error_output "pr28875.err"}} \
"pr28875" \
@@ -1326,7 +1335,7 @@ if { [isnative]
[list \
"Build pr21997-1" \
"$NOPIE_LDFLAGS -Wl,--no-as-needed,-z,notext tmpdir/pr21997-1.so" \
- "$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
+ "$NOPIE_CFLAGS $DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{ pr21997-1b.c } \
{{error_output "pr21997-1.err"}} \
"pr21997-1" \
@@ -1514,6 +1523,45 @@ run_ld_link_tests [list \
] \
]
+# The musl C library does not support --gnu-tls-tag nor --gnu2-tls-tag.
+if { ![istarget *-*-musl]
+ && [check_compiler_available] } {
+ run_cc_link_tests [list \
+ [list \
+ "Build gnu-tls-1a.so" \
+ "-shared -Wl,--no-as-needed,--gnu-tls-tag" \
+ "-fPIC" \
+ { gnu-tls-1.s } \
+ {{readelf {-W --version-info} gnu-tls-1a.rd}} \
+ "gnu-tls-1a.so" \
+ ] \
+ [list \
+ "Build gnu-tls-1b.so" \
+ "-shared -Wl,--no-as-needed,--no-gnu-tls-tag" \
+ "-fPIC" \
+ { gnu-tls-1.s } \
+ {{readelf {-W --version-info} gnu-tls-1b.rd}} \
+ "gnu-tls-1b.so" \
+ ] \
+ [list \
+ "Build gnu2-tls-1a.so" \
+ "-shared -Wl,--no-as-needed,--gnu2-tls-tag" \
+ "-fPIC" \
+ { gnu2-tls-1.s } \
+ {{readelf {-W --version-info} gnu2-tls-1a.rd}} \
+ "gnu2-tls-1a.so" \
+ ] \
+ [list \
+ "Build gnu2-tls-1b.so" \
+ "-shared -Wl,--no-as-needed,--no-gnu2-tls-tag" \
+ "-fPIC" \
+ { gnu2-tls-1.s } \
+ {{readelf {-W --version-info} gnu2-tls-1b.rd}} \
+ "gnu2-tls-1b.so" \
+ ] \
+ ]
+}
+
# Linux only tests
run_dump_test "pltgot-1"
run_dump_test "pltgot-2"
diff --git a/ld/testsuite/ld-i386/libgot-1a.rd b/ld/testsuite/ld-i386/libgot-1a.rd
new file mode 100644
index 0000000..b8609b8
--- /dev/null
+++ b/ld/testsuite/ld-i386/libgot-1a.rd
@@ -0,0 +1,9 @@
+
+Relocation section '.rel.dyn' at offset 0x128 contains 1 entry:
+ Offset Info Type Sym. Value Symbol's Name
+0+2001fc 00000206 R_386_GLOB_DAT 00000000 foo
+
+Relocation section '.rel.plt' at offset 0x130 contains 1 entry:
+ Offset Info Type Sym. Value Symbol's Name
+0+20020c 00000307 R_386_JUMP_SLOT 00000000 bar
+#pass
diff --git a/ld/testsuite/ld-i386/libgot-1b.rd b/ld/testsuite/ld-i386/libgot-1b.rd
new file mode 100644
index 0000000..faebdb4
--- /dev/null
+++ b/ld/testsuite/ld-i386/libgot-1b.rd
@@ -0,0 +1,119 @@
+ELF Header:
+ Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
+ Class: ELF32
+ Data: 2's complement, little endian
+ Version: 1 \(current\)
+ OS/ABI: UNIX - System V
+ ABI Version: 0
+ Type: DYN \(Shared object file\)
+ Machine: Intel 80386
+ Version: 0x1
+ Entry point address: 0x0
+ Start of program headers: 52 \(bytes into file\)
+ Start of section headers: 768 \(bytes into file\)
+ Flags: 0x0
+ Size of this header: 52 \(bytes\)
+ Size of program headers: 32 \(bytes\)
+ Number of program headers: 4
+ Size of section headers: 40 \(bytes\)
+ Number of section headers: 14
+ Section header string table index: 13
+
+Section Headers:
+ \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
+ \[ 0\] NULL 00000000 000000 000000 00 0 0 0
+ \[ 1\] .hash HASH 000000b4 0000b4 000024 04 A 2 0 4
+ \[ 2\] .dynsym DYNSYM 000000d8 0000d8 000040 10 A 3 1 4
+ \[ 3\] .dynstr STRTAB 00000118 000118 00000e 00 A 0 0 1
+ \[ 4\] .rel.dyn REL 00000128 000128 000008 08 A 2 0 4
+ \[ 5\] .rel.plt REL 00000130 000130 000008 08 AI 2 10 4
+ \[ 6\] .plt PROGBITS 00000140 000140 000020 04 AX 0 0 16
+ \[ 7\] .text PROGBITS 00000160 000160 00000b 00 AX 0 0 1
+ \[ 8\] .dynamic DYNAMIC 0020016c 00016c 000090 08 WA 3 0 4
+ \[ 9\] .got PROGBITS 002001fc 0001fc 000004 04 WA 0 0 4
+ \[10\] .got.plt PROGBITS 00200200 000200 000010 04 WA 0 0 4
+ \[11\] .symtab SYMTAB 00000000 000210 000060 10 12 3 4
+ \[12\] .strtab STRTAB 00000000 000270 00002d 00 0 0 1
+ \[13\] .shstrtab STRTAB 00000000 00029d 000060 00 0 0 1
+Key to Flags:
+ W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\), I \(info\),
+ L \(link order\), O \(extra OS processing required\), G \(group\), T \(TLS\),
+ C \(compressed\), x \(unknown\), o \(OS specific\), E \(exclude\),
+ D \(mbind\), p \(processor specific\)
+
+There are no section groups in this file.
+
+Program Headers:
+ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
+ LOAD 0x000000 0x00000000 0x00000000 0x0016b 0x0016b R E 0x200000
+ LOAD 0x00016c 0x0020016c 0x0020016c 0x000a4 0x000a4 RW 0x200000
+ DYNAMIC 0x00016c 0x0020016c 0x0020016c 0x00090 0x00090 RW 0x4
+ GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x10
+
+ Section to Segment mapping:
+ Segment Sections...
+ 00 .hash .dynsym .dynstr .rel.dyn .rel.plt .plt .text
+ 01 .dynamic .got .got.plt
+ 02 .dynamic
+ 03
+
+Dynamic section at offset 0x16c contains 13 entries:
+ Tag Type Name/Value
+ 0x00000004 \(HASH\) 0xb4
+ 0x00000005 \(STRTAB\) 0x118
+ 0x00000006 \(SYMTAB\) 0xd8
+ 0x0000000a \(STRSZ\) 14 \(bytes\)
+ 0x0000000b \(SYMENT\) 16 \(bytes\)
+ 0x00000003 \(PLTGOT\) 0x200200
+ 0x00000002 \(PLTRELSZ\) 8 \(bytes\)
+ 0x00000014 \(PLTREL\) REL
+ 0x00000017 \(JMPREL\) 0x130
+ 0x00000011 \(REL\) 0x128
+ 0x00000012 \(RELSZ\) 8 \(bytes\)
+ 0x00000013 \(RELENT\) 8 \(bytes\)
+ 0x00000000 \(NULL\) 0x0
+
+Relocation section '.rel.dyn' at offset 0x128 contains 1 entry:
+ Offset Info Type Sym. Value Symbol's Name
+0+2001fc 00000206 R_386_GLOB_DAT 00000000 foo
+
+Relocation section '.rel.plt' at offset 0x130 contains 1 entry:
+ Offset Info Type Sym. Value Symbol's Name
+0+20020c 00000307 R_386_JUMP_SLOT 00000000 bar
+No processor specific unwind information to decode
+
+Symbol table '.dynsym' contains 4 entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ +[a-f0-9]+: 00000000 0 NOTYPE LOCAL DEFAULT UND
+ +[a-f0-9]+: 00000160 0 FUNC GLOBAL DEFAULT 7 func
+ +[a-f0-9]+: 00000000 0 NOTYPE GLOBAL DEFAULT UND foo
+ +[a-f0-9]+: 00000000 0 NOTYPE GLOBAL DEFAULT UND bar
+
+Symbol table '.symtab' contains 6 entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ +[a-f0-9]+: 00000000 0 NOTYPE LOCAL DEFAULT UND
+ +[a-f0-9]+: 0020016c 0 OBJECT LOCAL DEFAULT 8 _DYNAMIC
+ +[a-f0-9]+: 00200200 0 OBJECT LOCAL DEFAULT 10 _GLOBAL_OFFSET_TABLE_
+ +[a-f0-9]+: 00000160 0 FUNC GLOBAL DEFAULT 7 func
+ +[a-f0-9]+: 00000000 0 NOTYPE GLOBAL DEFAULT UND foo
+ +[a-f0-9]+: 00000000 0 NOTYPE GLOBAL DEFAULT UND bar
+
+Histogram for bucket list length \(total of 3 buckets\):
+ Length Number % of total Coverage
+ 0 1 \( 33.3%\)
+ 1 1 \( 33.3%\) 33.3%
+ 2 1 \( 33.3%\) 100.0%
+
+No version information found in this file.
+
+Global Offset Table '.got' contains 1 entry:
+ Index: Address Reloc Sym. Name \+ Addend/Value
+ +[0-9]+: 002001fc R_386_GLOB_DAT foo \+ 0
+
+Global Offset Table '.got.plt' contains 4 entries:
+ Index: Address Reloc Sym. Name \+ Addend/Value
+ +[0-9]+: 00200200 20016c
+ +[0-9]+: 00200204 0
+ +[0-9]+: 00200208 0
+ +[0-9]+: 0020020c R_386_JUMP_SLOT bar \+ 156
+#pass
diff --git a/ld/testsuite/ld-i386/libgot-1c.rd b/ld/testsuite/ld-i386/libgot-1c.rd
new file mode 100644
index 0000000..374b03f
--- /dev/null
+++ b/ld/testsuite/ld-i386/libgot-1c.rd
@@ -0,0 +1,12 @@
+
+Global Offset Table '.got' contains 1 entry:
+ Index: Address Reloc Sym. Name \+ Addend/Value
+ +[0-9]+: 002001fc R_386_GLOB_DAT foo \+ 0
+
+Global Offset Table '.got.plt' contains 4 entries:
+ Index: Address Reloc Sym. Name \+ Addend/Value
+ +[0-9]+: 00200200 20016c
+ +[0-9]+: 00200204 0
+ +[0-9]+: 00200208 0
+ +[0-9]+: 0020020c R_386_JUMP_SLOT bar \+ 156
+#pass
diff --git a/ld/testsuite/ld-i386/libgot-1d.rd b/ld/testsuite/ld-i386/libgot-1d.rd
new file mode 100644
index 0000000..632b47b
--- /dev/null
+++ b/ld/testsuite/ld-i386/libgot-1d.rd
@@ -0,0 +1,12 @@
+
+Global Offset Table '.got' contains 1 entry:
+ Index: Address Reloc Sym. Name \+ Addend/Value
+ +[0-9]+: 002001fc R_386_GLOB_DAT foo \+ 0
+
+Global Offset Table '.got.plt' contains 4 entries:
+ Index: Address Reloc Sym. Name \+ Addend/Value
+ +[0-9]+: 00200200 20016c
+ +[0-9]+: 00200204 0
+ +[0-9]+: 00200208 0
+ +[0-9]+: 0020020c R_386_JUMP_SLOT bar \+ 156
+#pass
diff --git a/ld/testsuite/ld-i386/libno-plt-1b.dd b/ld/testsuite/ld-i386/libno-plt-1b.dd
index eec9d4a..d2f3e93 100644
--- a/ld/testsuite/ld-i386/libno-plt-1b.dd
+++ b/ld/testsuite/ld-i386/libno-plt-1b.dd
@@ -9,11 +9,11 @@ Disassembly of section .text:
[0-9a-f]+ <get_func>:
+[a-f0-9]+: e8 ([0-9a-f]{2} ){4}[ ]+call +[a-f0-9]+ <__x86.get_pc_thunk.ax>
+[a-f0-9]+: 05 ([0-9a-f]{2} ){4}[ ]+add +\$0x[a-f0-9]+,%eax
- +[a-f0-9]+: 8b 80 ([0-9a-f]{2} ){4}[ ]+mov +-0x[a-f0-9]+\(%eax\),%eax
+ +[a-f0-9]+: 8b 80 ([0-9a-f]{2} ){4}[ ]+mov +-?0x[a-f0-9]+\(%eax\),%eax
+[a-f0-9]+: c3 ret
#...
[0-9a-f]+ <call_func>:
+[a-f0-9]+: e8 ([0-9a-f]{2} ){4}[ ]+call +[a-f0-9]+ <__x86.get_pc_thunk.ax>
+[a-f0-9]+: 05 ([0-9a-f]{2} ){4}[ ]+add +\$0x[a-f0-9]+,%eax
- +[a-f0-9]+: ff a0 ([0-9a-f]{2} ){4}[ ]+jmp +\*-0x[0-9a-f]+\(%eax\)
+ +[a-f0-9]+: ff a0 ([0-9a-f]{2} ){4}[ ]+jmp +\*-?0x[0-9a-f]+\(%eax\)
#pass
diff --git a/ld/testsuite/ld-i386/no-plt-1a.dd b/ld/testsuite/ld-i386/no-plt-1a.dd
index 8c76d9b..9d32b85 100644
--- a/ld/testsuite/ld-i386/no-plt-1a.dd
+++ b/ld/testsuite/ld-i386/no-plt-1a.dd
@@ -23,14 +23,14 @@ Disassembly of section .text:
+[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4}[ ]+addr16 call [0-9a-f]+ <call_func>
+[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax
+[a-f0-9]+: 75 15 jne +[0-9a-f]+ <check\+0x[0-9a-f]+>
- +[a-f0-9]+: 8d 83 ([0-9a-f]{2} ){4}[ ]+lea +-0x[a-f0-9]+\(%ebx\),%eax
+ +[a-f0-9]+: 8d 83 ([0-9a-f]{2} ){4}[ ]+lea +-?0x[a-f0-9]+\(%ebx\),%eax
+[a-f0-9]+: 83 ec 0c sub \$0xc,%esp
+[a-f0-9]+: 50 push %eax
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
+[a-f0-9]+: 83 c4 18 add \$0x18,%esp
+[a-f0-9]+: 5b pop %ebx
+[a-f0-9]+: c3 ret
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
#...
[0-9a-f]+ <get_func>:
+[a-f0-9]+: e8 ([0-9a-f]{2} ){4}[ ]+call +[a-f0-9]+ <__x86.get_pc_thunk.ax>
diff --git a/ld/testsuite/ld-i386/no-plt-1b.dd b/ld/testsuite/ld-i386/no-plt-1b.dd
index 431011c..1318353 100644
--- a/ld/testsuite/ld-i386/no-plt-1b.dd
+++ b/ld/testsuite/ld-i386/no-plt-1b.dd
@@ -11,24 +11,24 @@ Disassembly of section .text:
+[a-f0-9]+: e8 ([0-9a-f]{2} ){4}[ ]+call [a-f0-9]+ <__x86.get_pc_thunk.bx>
+[a-f0-9]+: 81 c3 ([0-9a-f]{2} ){4}[ ]+add +\$0x[a-f0-9]+,%ebx
+[a-f0-9]+: 83 ec 08 sub \$0x8,%esp
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
- +[a-f0-9]+: 3b 83 ([0-9a-f]{2} ){4}[ ]+cmp +-0x[a-f0-9]+\(%ebx\),%eax
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: 3b 83 ([0-9a-f]{2} ){4}[ ]+cmp +-?0x[a-f0-9]+\(%ebx\),%eax
+[a-f0-9]+: 75 39 jne [0-9a-f]+ <check\+0x[0-9a-f]+>
- +[a-f0-9]+: 8b 93 ([0-9a-f]{2} ){4}[ ]+mov +-0x[0-9a-f]+\(%ebx\),%edx
+ +[a-f0-9]+: 8b 93 ([0-9a-f]{2} ){4}[ ]+mov +-?0x[0-9a-f]+\(%ebx\),%edx
+[a-f0-9]+: 39 02 cmp %eax,\(%edx\)
+[a-f0-9]+: 75 2f jne [0-9a-f]+ <check\+0x[0-9a-f]+>
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
+[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax
+[a-f0-9]+: 75 22 jne +[0-9a-f]+ <check\+0x[0-9a-f]+>
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
+[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax
+[a-f0-9]+: 75 15 jne +[0-9a-f]+ <check\+0x[0-9a-f]+>
+[a-f0-9]+: 8d 83 ([0-9a-f]{2} ){4}[ ]+lea +-0x[a-f0-9]+\(%ebx\),%eax
+[a-f0-9]+: 83 ec 0c sub \$0xc,%esp
+[a-f0-9]+: 50 push %eax
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
+[a-f0-9]+: 83 c4 18 add \$0x18,%esp
+[a-f0-9]+: 5b pop %ebx
+[a-f0-9]+: c3 ret
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
#pass
diff --git a/ld/testsuite/ld-i386/no-plt-1c.dd b/ld/testsuite/ld-i386/no-plt-1c.dd
index ae31742..5422040 100644
--- a/ld/testsuite/ld-i386/no-plt-1c.dd
+++ b/ld/testsuite/ld-i386/no-plt-1c.dd
@@ -11,24 +11,24 @@ Disassembly of section .text:
+[a-f0-9]+: e8 ([0-9a-f]{2} ){4}[ ]+call [a-f0-9]+ <__x86.get_pc_thunk.bx>
+[a-f0-9]+: 81 c3 ([0-9a-f]{2} ){4}[ ]+add +\$0x[a-f0-9]+,%ebx
+[a-f0-9]+: 83 ec 08 sub \$0x8,%esp
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
+[a-f0-9]+: 81 f8 ([0-9a-f]{2} ){4}[ ]+cmp +\$0x[0-9a-f]+,%eax
+[a-f0-9]+: 75 39 jne [0-9a-f]+ <check\+0x[0-9a-f]+>
- +[a-f0-9]+: 8b 93 ([0-9a-f]{2} ){4}[ ]+mov +-0x[0-9a-f]+\(%ebx\),%edx
+ +[a-f0-9]+: 8b 93 ([0-9a-f]{2} ){4}[ ]+mov +-?0x[0-9a-f]+\(%ebx\),%edx
+[a-f0-9]+: 39 02 cmp %eax,\(%edx\)
+[a-f0-9]+: 75 2f jne [0-9a-f]+ <check\+0x[0-9a-f]+>
+[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4}[ ]+addr16 call [0-9a-f]+ <func>
+[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax
+[a-f0-9]+: 75 22 jne +[0-9a-f]+ <check\+0x[0-9a-f]+>
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
+[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax
+[a-f0-9]+: 75 15 jne +[0-9a-f]+ <check\+0x[0-9a-f]+>
+[a-f0-9]+: 8d 83 ([0-9a-f]{2} ){4}[ ]+lea +-0x[a-f0-9]+\(%ebx\),%eax
+[a-f0-9]+: 83 ec 0c sub \$0xc,%esp
+[a-f0-9]+: 50 push %eax
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
+[a-f0-9]+: 83 c4 18 add \$0x18,%esp
+[a-f0-9]+: 5b pop %ebx
+[a-f0-9]+: c3 ret
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
#pass
diff --git a/ld/testsuite/ld-i386/no-plt-1e.dd b/ld/testsuite/ld-i386/no-plt-1e.dd
index 56b1a76..af7d9d9 100644
--- a/ld/testsuite/ld-i386/no-plt-1e.dd
+++ b/ld/testsuite/ld-i386/no-plt-1e.dd
@@ -12,7 +12,7 @@ Disassembly of section .text:
+[a-f0-9]+: 81 c3 ([0-9a-f]{2} ){4}[ ]+add +\$0x[a-f0-9]+,%ebx
+[a-f0-9]+: 83 ec 08 sub \$0x8,%esp
+[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4}[ ]+addr16 call [0-9a-f]+ <get_func>
- +[a-f0-9]+: 3b 83 ([0-9a-f]{2} ){4}[ ]+cmp +-0x[a-f0-9]+\(%ebx\),%eax
+ +[a-f0-9]+: 3b 83 ([0-9a-f]{2} ){4}[ ]+cmp +-?0x[a-f0-9]+\(%ebx\),%eax
+[a-f0-9]+: 75 39 jne [0-9a-f]+ <check\+0x[0-9a-f]+>
+[a-f0-9]+: 8d 93 ([0-9a-f]{2} ){4}[ ]+lea +0x[a-f0-9]+\(%ebx\),%edx
+[a-f0-9]+: 39 02 cmp %eax,\(%edx\)
@@ -26,11 +26,11 @@ Disassembly of section .text:
+[a-f0-9]+: 8d 83 ([0-9a-f]{2} ){4}[ ]+lea +-0x[a-f0-9]+\(%ebx\),%eax
+[a-f0-9]+: 83 ec 0c sub \$0xc,%esp
+[a-f0-9]+: 50 push %eax
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
+[a-f0-9]+: 83 c4 18 add \$0x18,%esp
+[a-f0-9]+: 5b pop %ebx
+[a-f0-9]+: c3 ret
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
#...
[0-9a-f]+ <get_func>:
+[a-f0-9]+: e8 ([0-9a-f]{2} ){4}[ ]+call +[a-f0-9]+ <__x86.get_pc_thunk.ax>
diff --git a/ld/testsuite/ld-i386/no-plt-1f.dd b/ld/testsuite/ld-i386/no-plt-1f.dd
index 431011c..1318353 100644
--- a/ld/testsuite/ld-i386/no-plt-1f.dd
+++ b/ld/testsuite/ld-i386/no-plt-1f.dd
@@ -11,24 +11,24 @@ Disassembly of section .text:
+[a-f0-9]+: e8 ([0-9a-f]{2} ){4}[ ]+call [a-f0-9]+ <__x86.get_pc_thunk.bx>
+[a-f0-9]+: 81 c3 ([0-9a-f]{2} ){4}[ ]+add +\$0x[a-f0-9]+,%ebx
+[a-f0-9]+: 83 ec 08 sub \$0x8,%esp
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
- +[a-f0-9]+: 3b 83 ([0-9a-f]{2} ){4}[ ]+cmp +-0x[a-f0-9]+\(%ebx\),%eax
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: 3b 83 ([0-9a-f]{2} ){4}[ ]+cmp +-?0x[a-f0-9]+\(%ebx\),%eax
+[a-f0-9]+: 75 39 jne [0-9a-f]+ <check\+0x[0-9a-f]+>
- +[a-f0-9]+: 8b 93 ([0-9a-f]{2} ){4}[ ]+mov +-0x[0-9a-f]+\(%ebx\),%edx
+ +[a-f0-9]+: 8b 93 ([0-9a-f]{2} ){4}[ ]+mov +-?0x[0-9a-f]+\(%ebx\),%edx
+[a-f0-9]+: 39 02 cmp %eax,\(%edx\)
+[a-f0-9]+: 75 2f jne [0-9a-f]+ <check\+0x[0-9a-f]+>
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
+[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax
+[a-f0-9]+: 75 22 jne +[0-9a-f]+ <check\+0x[0-9a-f]+>
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
+[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax
+[a-f0-9]+: 75 15 jne +[0-9a-f]+ <check\+0x[0-9a-f]+>
+[a-f0-9]+: 8d 83 ([0-9a-f]{2} ){4}[ ]+lea +-0x[a-f0-9]+\(%ebx\),%eax
+[a-f0-9]+: 83 ec 0c sub \$0xc,%esp
+[a-f0-9]+: 50 push %eax
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
+[a-f0-9]+: 83 c4 18 add \$0x18,%esp
+[a-f0-9]+: 5b pop %ebx
+[a-f0-9]+: c3 ret
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
#pass
diff --git a/ld/testsuite/ld-i386/no-plt-1g.dd b/ld/testsuite/ld-i386/no-plt-1g.dd
index 4f18453..cca995b 100644
--- a/ld/testsuite/ld-i386/no-plt-1g.dd
+++ b/ld/testsuite/ld-i386/no-plt-1g.dd
@@ -11,24 +11,24 @@ Disassembly of section .text:
+[a-f0-9]+: e8 ([0-9a-f]{2} ){4}[ ]+call [a-f0-9]+ <__x86.get_pc_thunk.bx>
+[a-f0-9]+: 81 c3 ([0-9a-f]{2} ){4}[ ]+add +\$0x[a-f0-9]+,%ebx
+[a-f0-9]+: 83 ec 08 sub \$0x8,%esp
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
- +[a-f0-9]+: 3b 83 ([0-9a-f]{2} ){4}[ ]+cmp +-0x[a-f0-9]+\(%ebx\),%eax
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: 3b 83 ([0-9a-f]{2} ){4}[ ]+cmp +-?0x[a-f0-9]+\(%ebx\),%eax
+[a-f0-9]+: 75 39 jne [0-9a-f]+ <check\+0x[0-9a-f]+>
- +[a-f0-9]+: 8b 93 ([0-9a-f]{2} ){4}[ ]+mov +-0x[0-9a-f]+\(%ebx\),%edx
+ +[a-f0-9]+: 8b 93 ([0-9a-f]{2} ){4}[ ]+mov +-?0x[0-9a-f]+\(%ebx\),%edx
+[a-f0-9]+: 39 02 cmp %eax,\(%edx\)
+[a-f0-9]+: 75 2f jne [0-9a-f]+ <check\+0x[0-9a-f]+>
+[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4}[ ]+addr16 call [0-9a-f]+ <func>
+[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax
+[a-f0-9]+: 75 22 jne +[0-9a-f]+ <check\+0x[0-9a-f]+>
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
+[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax
+[a-f0-9]+: 75 15 jne +[0-9a-f]+ <check\+0x[0-9a-f]+>
+[a-f0-9]+: 8d 83 ([0-9a-f]{2} ){4}[ ]+lea +-0x[a-f0-9]+\(%ebx\),%eax
+[a-f0-9]+: 83 ec 0c sub \$0xc,%esp
+[a-f0-9]+: 50 push %eax
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
+[a-f0-9]+: 83 c4 18 add \$0x18,%esp
+[a-f0-9]+: 5b pop %ebx
+[a-f0-9]+: c3 ret
- +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-0x[0-9a-f]+\(%ebx\)
+ +[a-f0-9]+: ff 93 ([0-9a-f]{2} ){4}[ ]+call +\*-?0x[0-9a-f]+\(%ebx\)
#pass
diff --git a/ld/testsuite/ld-i386/no-plt.exp b/ld/testsuite/ld-i386/no-plt.exp
index e0b00ba..42f6def 100644
--- a/ld/testsuite/ld-i386/no-plt.exp
+++ b/ld/testsuite/ld-i386/no-plt.exp
@@ -72,7 +72,7 @@ run_cc_link_tests [list \
"libno-plt-1b.so" \
] \
[list \
- "No PLT (dynamic 1a)" \
+ "Build no PLT (dynamic 1a)" \
"$NOPIE_LDFLAGS tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/no-plt-extern1a.o -Wl,-z,lazy" \
"-Wa,-mx86-used-note=yes" \
@@ -81,7 +81,7 @@ run_cc_link_tests [list \
"no-plt-1a" \
] \
[list \
- "No PLT (dynamic 1b)" \
+ "Build no PLT (dynamic 1b)" \
"-Wl,-z,lazy tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
tmpdir/libno-plt-1a.so tmpdir/libno-plt-1b.so" \
"-Wa,-mx86-used-note=yes" \
@@ -90,7 +90,7 @@ run_cc_link_tests [list \
"no-plt-1b" \
] \
[list \
- "No PLT (dynamic 1c)" \
+ "Build no PLT (dynamic 1c)" \
"$NOPIE_LDFLAGS tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/libno-plt-1b.so -Wl,-z,lazy" \
"-Wa,-mx86-used-note=yes" \
@@ -99,7 +99,7 @@ run_cc_link_tests [list \
"no-plt-1c" \
] \
[list \
- "No PLT (static 1d)" \
+ "Build no PLT (static 1d)" \
"-static tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/no-plt-extern1a.o" \
"-Wa,-mx86-used-note=yes" \
@@ -108,7 +108,7 @@ run_cc_link_tests [list \
"no-plt-1d" \
] \
[list \
- "No PLT (PIE 1e)" \
+ "Build no PLT (PIE 1e)" \
"-pie -Wl,-z,lazy tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/no-plt-extern1a.o" \
"-Wa,-mx86-used-note=yes" \
@@ -117,7 +117,7 @@ run_cc_link_tests [list \
"no-plt-1e" \
] \
[list \
- "No PLT (PIE 1f)" \
+ "Build no PLT (PIE 1f)" \
"-pie -Wl,-z,lazy tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
tmpdir/libno-plt-1a.so tmpdir/libno-plt-1b.so" \
"-Wa,-mx86-used-note=yes" \
@@ -126,7 +126,7 @@ run_cc_link_tests [list \
"no-plt-1f" \
] \
[list \
- "No PLT (PIE 1g)" \
+ "Build no PLT (PIE 1g)" \
"-pie -Wl,-z,lazy tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/libno-plt-1b.so" \
"-Wa,-mx86-used-note=yes" \
@@ -135,7 +135,7 @@ run_cc_link_tests [list \
"no-plt-1g" \
] \
[list \
- "No PLT (dynamic 1h)" \
+ "Build no PLT (dynamic 1h)" \
"$NOPIE_LDFLAGS tmpdir/no-plt-check1b.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/no-plt-extern1b.o" \
"-Wa,-mx86-used-note=yes" \
@@ -144,7 +144,7 @@ run_cc_link_tests [list \
"no-plt-1h" \
] \
[list \
- "No PLT (dynamic 1i)" \
+ "Build no PLT (dynamic 1i)" \
"$NOPIE_LDFLAGS tmpdir/no-plt-check1b.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-extern1b.o tmpdir/libno-plt-1a.so" \
"-Wa,-mx86-used-note=yes" \
@@ -153,7 +153,7 @@ run_cc_link_tests [list \
"no-plt-1i" \
] \
[list \
- "No PLT (static 1j)" \
+ "Build no PLT (static 1j)" \
"-static tmpdir/no-plt-check1b.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/no-plt-extern1b.o" \
"-Wa,-mx86-used-note=yes" \
@@ -165,7 +165,7 @@ run_cc_link_tests [list \
run_ld_link_exec_tests [list \
[list \
- "No PLT (dynamic 1a)" \
+ "Run no PLT (dynamic 1a)" \
"tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/no-plt-extern1a.o" \
"-Wa,-mx86-used-note=yes" \
@@ -174,7 +174,7 @@ run_ld_link_exec_tests [list \
"pass.out" \
] \
[list \
- "No PLT (dynamic 1b)" \
+ "Run no PLT (dynamic 1b)" \
"tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
tmpdir/libno-plt-1a.so tmpdir/libno-plt-1b.so" \
"-Wa,-mx86-used-note=yes" \
@@ -183,7 +183,7 @@ run_ld_link_exec_tests [list \
"pass.out" \
] \
[list \
- "No PLT (dynamic 1c)" \
+ "Run no PLT (dynamic 1c)" \
"tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/libno-plt-1b.so" \
"-Wa,-mx86-used-note=yes" \
@@ -192,7 +192,7 @@ run_ld_link_exec_tests [list \
"pass.out" \
] \
[list \
- "No PLT (static 1d)" \
+ "Run no PLT (static 1d)" \
"-static tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/no-plt-extern1a.o" \
"-Wa,-mx86-used-note=yes" \
@@ -201,7 +201,7 @@ run_ld_link_exec_tests [list \
"pass.out" \
] \
[list \
- "No PLT (PIE 1e)" \
+ "Run no PLT (PIE 1e)" \
"-pie tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/no-plt-extern1a.o" \
"-Wa,-mx86-used-note=yes" \
@@ -210,7 +210,7 @@ run_ld_link_exec_tests [list \
"pass.out" \
] \
[list \
- "No PLT (PIE 1f)" \
+ "Run no PLT (PIE 1f)" \
"-pie tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
tmpdir/libno-plt-1a.so tmpdir/libno-plt-1b.so" \
"-Wa,-mx86-used-note=yes" \
@@ -219,7 +219,7 @@ run_ld_link_exec_tests [list \
"pass.out" \
] \
[list \
- "No PLT (PIE 1g)" \
+ "Run no PLT (PIE 1g)" \
"-pie tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/libno-plt-1b.so" \
"-Wa,-mx86-used-note=yes" \
@@ -228,7 +228,7 @@ run_ld_link_exec_tests [list \
"pass.out" \
] \
[list \
- "No PLT (dynamic 1h)" \
+ "Run no PLT (dynamic 1h)" \
"$NOPIE_LDFLAGS tmpdir/no-plt-check1b.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/no-plt-extern1b.o" \
"-Wa,-mx86-used-note=yes" \
@@ -237,7 +237,7 @@ run_ld_link_exec_tests [list \
"pass.out" \
] \
[list \
- "No PLT (dynamic 1i)" \
+ "Run no PLT (dynamic 1i)" \
"$NOPIE_LDFLAGS tmpdir/no-plt-check1b.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-extern1b.o tmpdir/libno-plt-1a.so" \
"-Wa,-mx86-used-note=yes" \
@@ -246,7 +246,7 @@ run_ld_link_exec_tests [list \
"pass.out" \
] \
[list \
- "No PLT (static 1j)" \
+ "Run no PLT (static 1j)" \
"-static tmpdir/no-plt-check1b.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/no-plt-extern1b.o" \
"-Wa,-mx86-used-note=yes" \
diff --git a/ld/testsuite/ld-i386/pr17057.d b/ld/testsuite/ld-i386/pr17057.d
index 29cc676..af4e6c9 100644
--- a/ld/testsuite/ld-i386/pr17057.d
+++ b/ld/testsuite/ld-i386/pr17057.d
@@ -3,7 +3,10 @@
#ld: -shared -melf_i386
#readelf: -r --wide
-Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 2 entries:
+Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 1 entry:
Offset Info Type Sym. Value Symbol's Name
-[0-9a-f ]+R_386_JUMP_SLOT +0+ +foo
[0-9a-f ]+R_386_TLS_DESC +0+ +my_tls
+
+Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 1 entry:
+ Offset Info Type Sym. Value Symbol's Name
+[0-9a-f ]+R_386_JUMP_SLOT +0+ +foo
diff --git a/ld/testsuite/ld-i386/pr28387.d b/ld/testsuite/ld-i386/pr28387.d
new file mode 100644
index 0000000..fd1e980
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr28387.d
@@ -0,0 +1,35 @@
+#as: --32
+#ld: -shared -melf_i386 -z nocombreloc -z noseparate-code --no-ld-generated-unwind-info --hash-style=sysv
+#readelf: -d -r -S --wide
+
+There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+:
+
+Section Headers:
+ +\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al
+#...
+ +\[[ 0-9]+\] .rel.data +REL +0+128 0+128 0+8 08 +AI +2 +11 +4
+ +\[[ 0-9]+\] .rel.tls +REL +0+130 0+130 0+8 08 +AI +2 +10 +4
+ +\[[ 0-9]+\] .rel.plt +REL +0+138 0+138 0+8 08 +AI +2 +10 +4
+#...
+Dynamic section at offset 0x[0-9a-f]+ contains [0-9]+ entries:
+ +Tag +Type +Name/Value
+#...
+ 0x[0-9a-f]+ +\(PLTRELSZ\) +8 \(bytes\)
+ 0x[0-9a-f]+ +\(PLTREL\) +REL
+ 0x[0-9a-f]+ +\(JMPREL\) +0x138
+#...
+ 0x[0-9a-f]+ +\(REL\) +0x128
+ 0x[0-9a-f]+ +\(RELSZ\) +16 \(bytes\)
+ 0x[0-9a-f]+ +\(RELENT\) +8 \(bytes\)
+#...
+Relocation section '.rel.data' at offset 0x[0-9a-f]+ contains 1 entry:
+ +Offset +Info +Type +Sym.* Value +Symbol's Name
+[0-9a-f]+ +[0-9a-f]+ +R_386_32 +0+ +foo
+
+Relocation section '.rel.tls' at offset 0x[0-9a-f]+ contains 1 entry:
+ +Offset +Info +Type +Sym.* Value +Symbol's Name
+[0-9a-f]+ +[0-9a-f]+ +R_386_TLS_DESC +0+ +foo
+
+Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 1 entry:
+ +Offset +Info +Type +Sym.* Value +Symbol's Name
+[0-9a-f]+ +[0-9a-f]+ +R_386_JUMP_SLOT +0+ +bar
diff --git a/ld/testsuite/ld-i386/pr28387.s b/ld/testsuite/ld-i386/pr28387.s
new file mode 100644
index 0000000..beb3189
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr28387.s
@@ -0,0 +1,12 @@
+ .text
+ .p2align 4
+ .globl main
+ .type main, @function
+main:
+ leal foo@TLSDESC(%ebx), %eax
+ call *foo@TLSCALL(%eax)
+ call bar@PLT
+ ret
+ .data
+ .dc.a foo
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-i386/pr33260-2.d b/ld/testsuite/ld-i386/pr33260-2.d
new file mode 100644
index 0000000..d84442b
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr33260-2.d
@@ -0,0 +1,6 @@
+#source: pr33260-2.s
+#as: -mrelax-relocations=yes --32
+#ld: -melf_i386 -shared
+#readelf: -r --wide
+
+There are no relocations in this file.
diff --git a/ld/testsuite/ld-i386/pr33260-2.s b/ld/testsuite/ld-i386/pr33260-2.s
new file mode 100644
index 0000000..0fcd388
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr33260-2.s
@@ -0,0 +1,30 @@
+ .text
+ .p2align 4
+ .globl my_func
+ .type my_func, @function
+my_func:
+ .cfi_startproc
+ call __x86.get_pc_thunk.ax
+ addl $_GLOBAL_OFFSET_TABLE_, %eax
+ movl my_data@GOT(%eax), %eax
+ ret
+ .cfi_endproc
+ .size my_func, .-my_func
+ .protected my_data
+ .globl my_data
+ .bss
+ .align 4
+ .type my_data, @object
+ .size my_data, 4
+my_data:
+ .zero 4
+ .section .text.__x86.get_pc_thunk.ax,"axG",@progbits,__x86.get_pc_thunk.ax,comdat
+ .globl __x86.get_pc_thunk.ax
+ .hidden __x86.get_pc_thunk.ax
+ .type __x86.get_pc_thunk.ax, @function
+__x86.get_pc_thunk.ax:
+ .cfi_startproc
+ movl (%esp), %eax
+ ret
+ .cfi_endproc
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-i386/pr33260.d b/ld/testsuite/ld-i386/pr33260.d
new file mode 100644
index 0000000..fc05e4c
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr33260.d
@@ -0,0 +1,9 @@
+#source: pr33260.s
+#as: -mrelax-relocations=yes --32
+#ld: -melf_i386 -shared
+#readelf: -r --wide
+
+Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 2 entries:
+ +Offset +Info +Type +Sym.* Value +Symbol's Name
+[0-9a-f]+ +[0-9a-f]+ +R_386_RELATIVE +
+[0-9a-f]+ +[0-9a-f]+ +R_386_RELATIVE +
diff --git a/ld/testsuite/ld-i386/pr33260.s b/ld/testsuite/ld-i386/pr33260.s
new file mode 100644
index 0000000..9d779f2
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr33260.s
@@ -0,0 +1,46 @@
+ .text
+ .p2align 4
+ .globl my_func
+ .protected my_func
+ .type my_func, @function
+my_func:
+ .cfi_startproc
+ ret
+ .cfi_endproc
+ .size my_func, .-my_func
+ .p2align 4
+ .globl f
+ .type f, @function
+f:
+ .cfi_startproc
+ call __x86.get_pc_thunk.ax
+ addl $_GLOBAL_OFFSET_TABLE_, %eax
+ leal vtable@GOTOFF(%eax), %eax
+ ret
+ .cfi_endproc
+ .size f, .-f
+ .section .data.rel,"aw"
+ .align 4
+ .type vtable, @object
+ .size vtable, 8
+vtable:
+ .long my_func
+ .long my_data
+ .protected my_data
+ .globl my_data
+ .bss
+ .align 4
+ .type my_data, @object
+ .size my_data, 4
+my_data:
+ .zero 4
+ .section .text.__x86.get_pc_thunk.ax,"axG",@progbits,__x86.get_pc_thunk.ax,comdat
+ .globl __x86.get_pc_thunk.ax
+ .hidden __x86.get_pc_thunk.ax
+ .type __x86.get_pc_thunk.ax, @function
+__x86.get_pc_thunk.ax:
+ .cfi_startproc
+ movl (%esp), %eax
+ ret
+ .cfi_endproc
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-i386/tlsdesc.rd b/ld/testsuite/ld-i386/tlsdesc.rd
index ec418d1..ebd80b1 100644
--- a/ld/testsuite/ld-i386/tlsdesc.rd
+++ b/ld/testsuite/ld-i386/tlsdesc.rd
@@ -14,7 +14,6 @@ Section Headers:
+\[[ 0-9]+\] \.dynsym +.*
+\[[ 0-9]+\] \.dynstr +.*
+\[[ 0-9]+\] \.rel.dyn +.*
- +\[[ 0-9]+\] \.rel.plt +.*
+\[[ 0-9]+\] \.text +.*
+\[[ 0-9]+\] \.tdata +PROGBITS +[0-9a-f]+ [0-9a-f]+ 000060 00 WAT +0 +0 +1
+\[[ 0-9]+\] \.tbss +NOBITS +[0-9aa-f]+ [0-9a-f]+ 000020 00 WAT +0 +0 +1
@@ -40,12 +39,12 @@ Program Headers:
Section to Segment mapping:
+Segment Sections...
- +00 +.hash .dynsym .dynstr .rel.dyn .rel.plt .text *
+ +00 +.hash .dynsym .dynstr .rel.dyn .text *
+01 +.tdata .dynamic .got .got.plt *
+02 +.dynamic *
+03 +.tdata .tbss *
-Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 20 entries:
+Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 25 entries:
Offset +Info +Type +Sym.Value +Sym. Name
[0-9a-f ]+R_386_TLS_TPOFF32
[0-9a-f ]+R_386_TLS_TPOFF *
@@ -62,71 +61,68 @@ Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 20 entries:
[0-9a-f ]+R_386_TLS_TPOFF *
[0-9a-f ]+R_386_TLS_TPOFF *
[0-9a-f ]+R_386_TLS_TPOFF32
+[0-9a-f ]+R_386_TLS_DESC *
+[0-9a-f ]+R_386_TLS_DESC *
+[0-9a-f ]+R_386_TLS_DESC *
+[0-9a-f ]+R_386_TLS_DESC *
[0-9a-f ]+R_386_TLS_TPOFF +0+8 +sg3
[0-9a-f ]+R_386_TLS_TPOFF32 0+c +sg4
[0-9a-f ]+R_386_TLS_TPOFF +0+c +sg4
[0-9a-f ]+R_386_TLS_TPOFF +0+10 +sg5
[0-9a-f ]+R_386_TLS_TPOFF32 0+4 +sg2
-
-Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 5 entries:
- Offset +Info +Type +Sym.Value +Sym. Name
[0-9a-f ]+R_386_TLS_DESC * 0+ +sg1
-[0-9a-f ]+R_386_TLS_DESC *
-[0-9a-f ]+R_386_TLS_DESC *
-[0-9a-f ]+R_386_TLS_DESC *
-[0-9a-f ]+R_386_TLS_DESC *
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
+[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND *
- +[0-9]+: 0+1c +0 +TLS +GLOBAL +DEFAULT +7 sg8
- +[0-9]+: 0+8 +0 +TLS +GLOBAL +DEFAULT +7 sg3
- +[0-9]+: 0+c +0 +TLS +GLOBAL +DEFAULT +7 sg4
- +[0-9]+: 0+10 +0 +TLS +GLOBAL +DEFAULT +7 sg5
- +[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +7 sg1
- +[0-9]+: [0-9a-f]+ +0 +FUNC +GLOBAL +DEFAULT +6 fn1
- +[0-9]+: 0+4 +0 +TLS +GLOBAL +DEFAULT +7 sg2
- +[0-9]+: 0+14 +0 +TLS +GLOBAL +DEFAULT +7 sg6
- +[0-9]+: 0+18 +0 +TLS +GLOBAL +DEFAULT +7 sg7
+ +[0-9]+: 0+1c +0 +TLS +GLOBAL +DEFAULT +6 sg8
+ +[0-9]+: 0+8 +0 +TLS +GLOBAL +DEFAULT +6 sg3
+ +[0-9]+: 0+c +0 +TLS +GLOBAL +DEFAULT +6 sg4
+ +[0-9]+: 0+10 +0 +TLS +GLOBAL +DEFAULT +6 sg5
+ +[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +6 sg1
+ +[0-9]+: [0-9a-f]+ +0 +FUNC +GLOBAL +DEFAULT +5 fn1
+ +[0-9]+: 0+4 +0 +TLS +GLOBAL +DEFAULT +6 sg2
+ +[0-9]+: 0+14 +0 +TLS +GLOBAL +DEFAULT +6 sg6
+ +[0-9]+: 0+18 +0 +TLS +GLOBAL +DEFAULT +6 sg7
Symbol table '\.symtab' contains [0-9]+ entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
+[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND *
.* FILE +LOCAL +DEFAULT +ABS .*tlsdesc.o
- +[0-9]+: 0+20 +0 +TLS +LOCAL +DEFAULT +7 sl1
- +[0-9]+: 0+24 +0 +TLS +LOCAL +DEFAULT +7 sl2
- +[0-9]+: 0+28 +0 +TLS +LOCAL +DEFAULT +7 sl3
- +[0-9]+: 0+2c +0 +TLS +LOCAL +DEFAULT +7 sl4
- +[0-9]+: 0+30 +0 +TLS +LOCAL +DEFAULT +7 sl5
- +[0-9]+: 0+34 +0 +TLS +LOCAL +DEFAULT +7 sl6
- +[0-9]+: 0+38 +0 +TLS +LOCAL +DEFAULT +7 sl7
- +[0-9]+: 0+3c +0 +TLS +LOCAL +DEFAULT +7 sl8
+ +[0-9]+: 0+20 +0 +TLS +LOCAL +DEFAULT +6 sl1
+ +[0-9]+: 0+24 +0 +TLS +LOCAL +DEFAULT +6 sl2
+ +[0-9]+: 0+28 +0 +TLS +LOCAL +DEFAULT +6 sl3
+ +[0-9]+: 0+2c +0 +TLS +LOCAL +DEFAULT +6 sl4
+ +[0-9]+: 0+30 +0 +TLS +LOCAL +DEFAULT +6 sl5
+ +[0-9]+: 0+34 +0 +TLS +LOCAL +DEFAULT +6 sl6
+ +[0-9]+: 0+38 +0 +TLS +LOCAL +DEFAULT +6 sl7
+ +[0-9]+: 0+3c +0 +TLS +LOCAL +DEFAULT +6 sl8
.* FILE +LOCAL +DEFAULT +ABS
- +[0-9]+: 0+60 +0 +TLS +LOCAL +DEFAULT +8 sH1
- +[0-9]+: 0+ +0 +TLS +LOCAL +DEFAULT +7 _TLS_MODULE_BASE_
- +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +9 _DYNAMIC
- +[0-9]+: 0+48 +0 +TLS +LOCAL +DEFAULT +7 sh3
- +[0-9]+: 0+64 +0 +TLS +LOCAL +DEFAULT +8 sH2
- +[0-9]+: 0+78 +0 +TLS +LOCAL +DEFAULT +8 sH7
- +[0-9]+: 0+58 +0 +TLS +LOCAL +DEFAULT +7 sh7
- +[0-9]+: 0+5c +0 +TLS +LOCAL +DEFAULT +7 sh8
- +[0-9]+: 0+6c +0 +TLS +LOCAL +DEFAULT +8 sH4
- +[0-9]+: 0+4c +0 +TLS +LOCAL +DEFAULT +7 sh4
- +[0-9]+: 0+68 +0 +TLS +LOCAL +DEFAULT +8 sH3
- +[0-9]+: 0+50 +0 +TLS +LOCAL +DEFAULT +7 sh5
- +[0-9]+: 0+70 +0 +TLS +LOCAL +DEFAULT +8 sH5
- +[0-9]+: 0+74 +0 +TLS +LOCAL +DEFAULT +8 sH6
- +[0-9]+: 0+7c +0 +TLS +LOCAL +DEFAULT +8 sH8
- +[0-9]+: 0+40 +0 +TLS +LOCAL +DEFAULT +7 sh1
- +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +11 _GLOBAL_OFFSET_TABLE_
- +[0-9]+: 0+44 +0 +TLS +LOCAL +DEFAULT +7 sh2
- +[0-9]+: 0+54 +0 +TLS +LOCAL +DEFAULT +7 sh6
- +[0-9]+: 0+1c +0 +TLS +GLOBAL +DEFAULT +7 sg8
- +[0-9]+: 0+8 +0 +TLS +GLOBAL +DEFAULT +7 sg3
- +[0-9]+: 0+c +0 +TLS +GLOBAL +DEFAULT +7 sg4
- +[0-9]+: 0+10 +0 +TLS +GLOBAL +DEFAULT +7 sg5
- +[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +7 sg1
- +[0-9]+: [0-9a-f]+ +0 +FUNC +GLOBAL +DEFAULT +6 fn1
- +[0-9]+: 0+4 +0 +TLS +GLOBAL +DEFAULT +7 sg2
- +[0-9]+: 0+14 +0 +TLS +GLOBAL +DEFAULT +7 sg6
- +[0-9]+: 0+18 +0 +TLS +GLOBAL +DEFAULT +7 sg7
+ +[0-9]+: 0+60 +0 +TLS +LOCAL +DEFAULT +7 sH1
+ +[0-9]+: 0+ +0 +TLS +LOCAL +DEFAULT +6 _TLS_MODULE_BASE_
+ +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +8 _DYNAMIC
+ +[0-9]+: 0+48 +0 +TLS +LOCAL +DEFAULT +6 sh3
+ +[0-9]+: 0+64 +0 +TLS +LOCAL +DEFAULT +7 sH2
+ +[0-9]+: 0+78 +0 +TLS +LOCAL +DEFAULT +7 sH7
+ +[0-9]+: 0+58 +0 +TLS +LOCAL +DEFAULT +6 sh7
+ +[0-9]+: 0+5c +0 +TLS +LOCAL +DEFAULT +6 sh8
+ +[0-9]+: 0+6c +0 +TLS +LOCAL +DEFAULT +7 sH4
+ +[0-9]+: 0+4c +0 +TLS +LOCAL +DEFAULT +6 sh4
+ +[0-9]+: 0+68 +0 +TLS +LOCAL +DEFAULT +7 sH3
+ +[0-9]+: 0+50 +0 +TLS +LOCAL +DEFAULT +6 sh5
+ +[0-9]+: 0+70 +0 +TLS +LOCAL +DEFAULT +7 sH5
+ +[0-9]+: 0+74 +0 +TLS +LOCAL +DEFAULT +7 sH6
+ +[0-9]+: 0+7c +0 +TLS +LOCAL +DEFAULT +7 sH8
+ +[0-9]+: 0+40 +0 +TLS +LOCAL +DEFAULT +6 sh1
+ +[0-9]+: [0-9a-f]+ +0 +OBJECT +LOCAL +DEFAULT +10 _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: 0+44 +0 +TLS +LOCAL +DEFAULT +6 sh2
+ +[0-9]+: 0+54 +0 +TLS +LOCAL +DEFAULT +6 sh6
+ +[0-9]+: 0+1c +0 +TLS +GLOBAL +DEFAULT +6 sg8
+ +[0-9]+: 0+8 +0 +TLS +GLOBAL +DEFAULT +6 sg3
+ +[0-9]+: 0+c +0 +TLS +GLOBAL +DEFAULT +6 sg4
+ +[0-9]+: 0+10 +0 +TLS +GLOBAL +DEFAULT +6 sg5
+ +[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +6 sg1
+ +[0-9]+: [0-9a-f]+ +0 +FUNC +GLOBAL +DEFAULT +5 fn1
+ +[0-9]+: 0+4 +0 +TLS +GLOBAL +DEFAULT +6 sg2
+ +[0-9]+: 0+14 +0 +TLS +GLOBAL +DEFAULT +6 sg6
+ +[0-9]+: 0+18 +0 +TLS +GLOBAL +DEFAULT +6 sg7
diff --git a/ld/testsuite/ld-i386/tlsdesc2.d b/ld/testsuite/ld-i386/tlsdesc2.d
index b8569e8..c37557a 100644
--- a/ld/testsuite/ld-i386/tlsdesc2.d
+++ b/ld/testsuite/ld-i386/tlsdesc2.d
@@ -3,8 +3,9 @@
#ld: -melf_i386 -shared -z now
#readelf: -d --wide
+#failif
#...
.*\(PLTRELSZ\).*
.*\(PLTREL\).*
.*\(JMPREL\).*
-#pass
+#...
diff --git a/ld/testsuite/ld-i386/tlsgdesc.rd b/ld/testsuite/ld-i386/tlsgdesc.rd
index 0744aeb..a129bf6 100644
--- a/ld/testsuite/ld-i386/tlsgdesc.rd
+++ b/ld/testsuite/ld-i386/tlsgdesc.rd
@@ -41,22 +41,22 @@ Program Headers:
+01 +.dynamic .got .got.plt *
+02 +.dynamic *
-Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 8 entries:
+Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 10 entries:
Offset +Info +Type +Sym.Value +Sym. Name
[0-9a-f ]+R_386_TLS_TPOFF32 0+ +sG3
[0-9a-f ]+R_386_TLS_TPOFF +0+ +sG5
[0-9a-f ]+R_386_TLS_DTPMOD3 0+ +sG2
[0-9a-f ]+R_386_TLS_DTPOFF3 0+ +sG2
+[0-9a-f ]+R_386_TLS_DESC +0+ +sG2
[0-9a-f ]+R_386_TLS_TPOFF +0+ +sG4
[0-9a-f ]+R_386_TLS_TPOFF32 0+ +sG6
[0-9a-f ]+R_386_TLS_DTPMOD3 0+ +sG1
[0-9a-f ]+R_386_TLS_DTPOFF3 0+ +sG1
+[0-9a-f ]+R_386_TLS_DESC +0+ +sG1
-Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 3 entries:
+Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 1 entry:
Offset +Info +Type +Sym.Value +Sym. Name
[0-9a-f ]+R_386_JUMP_SLOT +0+ +___tls_get_addr
-[0-9a-f ]+R_386_TLS_DESC +0+ +sG1
-[0-9a-f ]+R_386_TLS_DESC +0+ +sG2
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
diff --git a/ld/testsuite/ld-ifunc/ifunc.exp b/ld/testsuite/ld-ifunc/ifunc.exp
index e8b93b3..07a8a2f 100644
--- a/ld/testsuite/ld-ifunc/ifunc.exp
+++ b/ld/testsuite/ld-ifunc/ifunc.exp
@@ -54,6 +54,13 @@ if ![check_shared_lib_support] {
return
}
+set need_direct_extern_access ""
+if { [istarget i?86-*-linux*]
+ || [istarget i?86-*-gnu*] } then {
+ # These targets need direct extern access in some tests.
+ set need_direct_extern_access "$DIRECT_EXTERN_ACCESS_CFLAGS"
+}
+
set saved_ASFLAGS "$ASFLAGS"
if { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } {
set ASFLAGS "$ASFLAGS -mx86-used-note=no"
@@ -497,6 +504,7 @@ if { [check_ifunc_available] } {
{ ifunc-main.c } \
"ifunc-main" \
"ifunc-main.out" \
+ "$need_direct_extern_access" \
] \
[list \
"Run ifunc-main with -fpic" \
@@ -514,6 +522,7 @@ if { [check_ifunc_available] } {
{ ifunc-main.c } \
"ifunc-mainn" \
"ifunc-main.out" \
+ "$need_direct_extern_access" \
] \
[list \
"Run ifunc-main with PIE (-z now)" \
diff --git a/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp b/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp
index a33727f..5bc48b2 100644
--- a/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp
+++ b/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp
@@ -172,6 +172,18 @@ if [istarget "loongarch64-*-*"] {
"desc-ie-norelax" \
] \
] \
+
+ run_ld_link_tests \
+ [list \
+ [list \
+ "undefind weak with tls le" \
+ "" "-e0" \
+ "" \
+ {undefweak_le.s} \
+ {} \
+ "undefweak_le" \
+ ] \
+ ]
}
if [istarget "loongarch64-*-*"] {
diff --git a/ld/testsuite/ld-loongarch-elf/pic.exp b/ld/testsuite/ld-loongarch-elf/pic.exp
index e449a33..510c3fd 100644
--- a/ld/testsuite/ld-loongarch-elf/pic.exp
+++ b/ld/testsuite/ld-loongarch-elf/pic.exp
@@ -115,31 +115,33 @@ run_ld_link_tests $link_tests
set link_tests_libc [list \
[list \
"$testname readelf -s/-r nopic-global-so" \
- "-L./tmpdir -lnopic-global -L/usr/lib -lc" "" \
+ "-Wl,--no-as-needed" "" \
{nopic-global.s} \
{{readelf {-s} nopic-global-so.sd} \
{readelf {-r} nopic-global-so.rd}} \
"nopic-global-so" \
+ "" "-L./tmpdir -lnopic-global" \
] \
[list \
"$testname readelf -s/-x nopic-weak-global-so" \
- "-L./tmpdir -lnopic-global -L/usr/lib -lc" "" \
+ "-Wl,--no-as-needed" "" \
{nopic-weak-global.s} \
{{readelf {-s} nopic-weak-global-so.sd} \
{readelf {-r} nopic-weak-global-so.rd}} \
"nopic-weak-global-so" \
+ "" "-L./tmpdir -lnopic-global" \
] \
]
# 0:name
-# 1:ld/ar leading options, placed before object files
-# 2:ld/ar trailing options, placed after object files
-# 3:assembler options
-# 4:filenames of assembler files
-# 5:list of actions, options and expected outputs.
-# 6:name of output file
-# 7:compiler flags (optional)
+# 1:leading ld or ar options
+# 2:compile options
+# 3:filenames of source files
+# 4:action and options.
+# 5:name of output file
+# 6:language (optional)
+# 7:trailing ld options (optional), placed after object files
run_cc_link_tests $link_tests_libc
@@ -170,10 +172,11 @@ set link_exec_tests [list \
] \
[list \
"$testname" \
- "-L./tmpdir -lnopic-global -lc -Wl,-rpath=./tmpdir -no-pie" "" \
+ "-Wl,--no-as-needed" "" \
{ nopic-global.s } \
"nopic-global-so" \
- "nopic-global.out" \
+ "nopic-global.out" "" "" "" \
+ "-L./tmpdir -lnopic-global -lc -Wl,-rpath=./tmpdir -no-pie" \
] \
[list \
"$testname" \
@@ -184,10 +187,11 @@ set link_exec_tests [list \
] \
[list \
"$testname" \
- "-L./tmpdir -lnopic-global -lc -Wl,-rpath=./tmpdir -no-pie" "" \
+ "-Wl,--no-as-needed" "" \
{ nopic-weak-global.s } \
"nopic-weak-global-so" \
- "nopic-weak-global.out" \
+ "nopic-weak-global.out" "" "" "" \
+ "-L./tmpdir -lnopic-global -lc -Wl,-rpath=./tmpdir -no-pie" \
] \
]
diff --git a/ld/testsuite/ld-loongarch-elf/undefweak_le.s b/ld/testsuite/ld-loongarch-elf/undefweak_le.s
new file mode 100644
index 0000000..6e73018
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/undefweak_le.s
@@ -0,0 +1,7 @@
+_start:
+ lu12i.w $t0,%le_hi20_r(undefweak_le)
+ add.d $t0,$t0,$tp,%le_add_r(undefweak_le)
+ ld.d $t0,$t0,%le_lo12_r(undefweak_le)
+
+ .weak undefweak_le
+ .hidden undefweak_le
diff --git a/ld/testsuite/ld-pe/pe-aarch64.d b/ld/testsuite/ld-pe/pe-aarch64.d
index 18b1c9b..ac287a6 100644
--- a/ld/testsuite/ld-pe/pe-aarch64.d
+++ b/ld/testsuite/ld-pe/pe-aarch64.d
@@ -6,7 +6,7 @@
Disassembly of section .text:
-0000000140001000 <___tls_end__>:
+0000000140001000 <_start>:
140001000: d2800281 mov x1, #0x14 // #20
140001004: 14000001 b 140001008 <foo>
diff --git a/ld/testsuite/ld-pe/pe-aarch64.s b/ld/testsuite/ld-pe/pe-aarch64.s
index 5d49350..b9e7dae 100644
--- a/ld/testsuite/ld-pe/pe-aarch64.s
+++ b/ld/testsuite/ld-pe/pe-aarch64.s
@@ -4,6 +4,11 @@
.section .text
+ .global _start
+ .def _start
+ .scl 2 /* C_EXT */
+ .type 32 /* DT_FUNC */
+ .endef
_start:
mov x1, 20
b foo
diff --git a/ld/testsuite/ld-plugin/lto-binutils.exp b/ld/testsuite/ld-plugin/lto-binutils.exp
index de017f0..1e156e4 100644
--- a/ld/testsuite/ld-plugin/lto-binutils.exp
+++ b/ld/testsuite/ld-plugin/lto-binutils.exp
@@ -125,7 +125,7 @@ proc run_lto_binutils_test { lto_tests } {
objdump
{ set dump_prog $objdump }
nm
- { set dump_prog $nm }
+ { set dump_prog "$nm $plug_opt" }
readelf
{ set dump_prog $READELF }
default
@@ -254,24 +254,22 @@ run_lto_binutils_test [list \
] \
]
-if { [check_lto_fat_available] } {
- run_lto_binutils_test [list \
- [list \
- "strip" \
- "-R .gnu.*lto_* -N __gnu_lto_v1" \
- "strip-1a.o" \
- "strip-1a-s-all.o" \
- {{nm -n strip-1a-s-all.nd}} \
- ] \
- [list \
- "strip" \
- "-R .gnu.*lto_* -N __gnu_lto_v1" \
- "libstrip-1a.a" \
- "libstrip-1a-s-all.a" \
- {{nm -n strip-1a-s-all.nd}} \
- ] \
- ]
-}
+run_lto_binutils_test [list \
+ [list \
+ "strip" \
+ "-R .gnu.*lto_* -N __gnu_lto_v1" \
+ "strip-1a.o" \
+ "strip-1a-s-all.o" \
+ {{nm -n strip-1a-s-all.nd}} \
+ ] \
+ [list \
+ "strip" \
+ "-R .gnu.*lto_* -N __gnu_lto_v1" \
+ "libstrip-1a.a" \
+ "libstrip-1a-s-all.a" \
+ {{nm -n strip-1a-s-all.nd}} \
+ ] \
+]
run_cc_link_tests [list \
[list \
diff --git a/ld/testsuite/ld-plugin/plugin.exp b/ld/testsuite/ld-plugin/plugin.exp
index 38a4036..2e148e4 100644
--- a/ld/testsuite/ld-plugin/plugin.exp
+++ b/ld/testsuite/ld-plugin/plugin.exp
@@ -87,11 +87,11 @@ set regcln "-plugin-opt registercleanup"
set failed_compile 0
set _ ""
set plugin_nm_output ""
-set old_CFLAGS "$CFLAGS_FOR_TARGET"
-append CFLAGS_FOR_TARGET " $NOSANITIZE_CFLAGS $NOLTO_CFLAGS"
+set old_CFLAGS "$CFLAGS_FOR_TARGET_TEST"
+append CFLAGS_FOR_TARGET_TEST " $NOSANITIZE_CFLAGS $NOLTO_CFLAGS"
if { [istarget m681*-*-*] || [istarget m68hc1*-*-*] || [istarget m9s12x*-*-*] } {
# otherwise get FAILS due to _.frame
- append CFLAGS_FOR_TARGET " -fomit-frame-pointer"
+ append CFLAGS_FOR_TARGET_TEST " -fomit-frame-pointer"
}
if { $can_compile && \
@@ -291,7 +291,7 @@ if { !$can_compile || $failed_compile } {
unsupported [lindex $testitem 0]
}
}
- set CFLAGS_FOR_TARGET "$old_CFLAGS"
+ set CFLAGS_FOR_TARGET_TEST "$old_CFLAGS"
return
}
@@ -394,4 +394,4 @@ if [ar_simple_create $ar "--plugin $plugin4_path" "tmpdir/libpr20070.a" \
unsupported "PR ld/20070"
}
-set CFLAGS_FOR_TARGET "$old_CFLAGS"
+set CFLAGS_FOR_TARGET_TEST "$old_CFLAGS"
diff --git a/ld/testsuite/ld-plugin/strip-1a-s-all.nd b/ld/testsuite/ld-plugin/strip-1a-s-all.nd
index 612ba6a..52265c2 100644
--- a/ld/testsuite/ld-plugin/strip-1a-s-all.nd
+++ b/ld/testsuite/ld-plugin/strip-1a-s-all.nd
@@ -1,3 +1,6 @@
#...
-[0-9a-f]* C _?__gnu_lto_slim
+ + U foo2
+ + U foo3
+0+ T foo1
+0+ T main
#pass
diff --git a/ld/testsuite/ld-riscv-elf/absolute-no-relative.d b/ld/testsuite/ld-riscv-elf/absolute-no-relative.d
new file mode 100644
index 0000000..6699ac1
--- /dev/null
+++ b/ld/testsuite/ld-riscv-elf/absolute-no-relative.d
@@ -0,0 +1,9 @@
+#source: absolute-no-relative.s
+#as:
+#ld: -Tabsolute-no-relative.ld -pie
+#readelf: -Wr
+
+Relocation section '.rela.dyn' at .*
+[ ]+Offset[ ]+Info[ ]+Type[ ]+.*
+0+[ ]+0+[ ]+R_RISCV_NONE[ ]+0
+0+[ ]+0+[ ]+R_RISCV_NONE[ ]+0
diff --git a/ld/testsuite/ld-riscv-elf/absolute-no-relative.ld b/ld/testsuite/ld-riscv-elf/absolute-no-relative.ld
new file mode 100644
index 0000000..34bbcba
--- /dev/null
+++ b/ld/testsuite/ld-riscv-elf/absolute-no-relative.ld
@@ -0,0 +1,6 @@
+ENTRY(_start)
+SECTIONS {
+ __symbol_abs__ = 0x1234;
+ .text 0x10000 : { *(.text*)}
+ .got 0x20000 : { *(.got*) }
+}
diff --git a/ld/testsuite/ld-riscv-elf/absolute-no-relative.s b/ld/testsuite/ld-riscv-elf/absolute-no-relative.s
new file mode 100644
index 0000000..4515661
--- /dev/null
+++ b/ld/testsuite/ld-riscv-elf/absolute-no-relative.s
@@ -0,0 +1,8 @@
+.text
+.global _start
+_start:
+lga x1, symbol_abs
+lga x1, __symbol_abs__
+
+.global symbol_abs
+.set symbol_abs, 0x100
diff --git a/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp b/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp
index bae1105..b0d510a 100644
--- a/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp
+++ b/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp
@@ -338,4 +338,5 @@ if [istarget "riscv*-*-*"] {
}
run_dump_test "tls"
run_dump_test "tlsbin"
+ run_dump_test "absolute-no-relative"
}
diff --git a/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d b/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d
index d134457..c60e48a 100644
--- a/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d
+++ b/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d
@@ -1,5 +1,6 @@
#source: pcgp-relax-01.s
-#ld: --no-relax-gp --relax
+#as: -march=rv64i
+#ld: --no-relax-gp --relax -m[riscv_choose_lp64_emul]
#objdump: -d -Mno-aliases
.*:[ ]+file format .*
diff --git a/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d b/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d
index f942567..24f9c49 100644
--- a/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d
+++ b/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d
@@ -1,5 +1,6 @@
#source: pcgp-relax-01.s
-#ld: --relax
+#as: -march=rv64i
+#ld: --relax -m[riscv_choose_lp64_emul]
#objdump: -d -Mno-aliases
.*:[ ]+file format .*
diff --git a/ld/testsuite/ld-riscv-elf/relax-max-align-gp.d b/ld/testsuite/ld-riscv-elf/relax-max-align-gp.d
index 5832835..a4a94db 100644
--- a/ld/testsuite/ld-riscv-elf/relax-max-align-gp.d
+++ b/ld/testsuite/ld-riscv-elf/relax-max-align-gp.d
@@ -1,5 +1,6 @@
#source: relax-max-align-gp.s
-#ld:
+#as: -march=rv64i
+#ld: -m[riscv_choose_lp64_emul]
#objdump: -d
.*:[ ]+file format .*
diff --git a/ld/testsuite/ld-riscv-elf/relro-relax-lui.d b/ld/testsuite/ld-riscv-elf/relro-relax-lui.d
index d29aa9d..2b0670e 100644
--- a/ld/testsuite/ld-riscv-elf/relro-relax-lui.d
+++ b/ld/testsuite/ld-riscv-elf/relro-relax-lui.d
@@ -1,5 +1,6 @@
#source: relro-relax-lui.s
-#ld: -zrelro --relax
+#as: -march=rv64i
+#ld: -zrelro --relax -m[riscv_choose_lp64_emul]
#objdump: -d -Mno-aliases
.*:[ ]+file format .*
diff --git a/ld/testsuite/ld-riscv-elf/shared-lib-nopic-02.d b/ld/testsuite/ld-riscv-elf/shared-lib-nopic-02.d
index f866d01..67ac439 100644
--- a/ld/testsuite/ld-riscv-elf/shared-lib-nopic-02.d
+++ b/ld/testsuite/ld-riscv-elf/shared-lib-nopic-02.d
@@ -1,4 +1,4 @@
#source: shared-lib-nopic-02.s
#as:
#ld: -shared
-#error: .*relocation R_RISCV_JAL against `foo_default' which may bind externally can not be used when making a shared object; recompile with -fPIC
+#error: .*relocation (R_RISCV_RVC_JUMP|R_RISCV_JAL) against `foo_default' which may bind externally can not be used when making a shared object; recompile with -fPIC
diff --git a/ld/testsuite/ld-riscv-elf/variant_cc-now.d b/ld/testsuite/ld-riscv-elf/variant_cc-now.d
index 9453554..b46b03c 100644
--- a/ld/testsuite/ld-riscv-elf/variant_cc-now.d
+++ b/ld/testsuite/ld-riscv-elf/variant_cc-now.d
@@ -1,6 +1,7 @@
#source: variant_cc-1.s
#source: variant_cc-2.s
-#ld: -shared --hash-style=sysv -Ttext 0x8000 -z now
+#as: -march=rv64i -mabi=lp64
+#ld: -shared --hash-style=sysv -Ttext 0x8000 -z now -m[riscv_choose_lp64_emul]
#readelf: -rsW
Relocation section '.rela.plt' at .*
diff --git a/ld/testsuite/ld-riscv-elf/variant_cc-shared.d b/ld/testsuite/ld-riscv-elf/variant_cc-shared.d
index ffb69a3..df7a134 100644
--- a/ld/testsuite/ld-riscv-elf/variant_cc-shared.d
+++ b/ld/testsuite/ld-riscv-elf/variant_cc-shared.d
@@ -1,6 +1,7 @@
#source: variant_cc-1.s
#source: variant_cc-2.s
-#ld: -shared --hash-style=sysv -Ttext 0x8000
+#as: -march=rv64i -mabi=lp64
+#ld: -shared --hash-style=sysv -Ttext 0x8000 -m[riscv_choose_lp64_emul]
#readelf: -rsW
Relocation section '.rela.plt' at .*
diff --git a/ld/testsuite/ld-scripts/libpr33265-1.a b/ld/testsuite/ld-scripts/libpr33265-1.a
new file mode 100644
index 0000000..eab1008
--- /dev/null
+++ b/ld/testsuite/ld-scripts/libpr33265-1.a
@@ -0,0 +1 @@
+GROUP ( libpr33265-1.a )
diff --git a/ld/testsuite/ld-scripts/libpr33265-2.a b/ld/testsuite/ld-scripts/libpr33265-2.a
new file mode 100644
index 0000000..10f4b91
--- /dev/null
+++ b/ld/testsuite/ld-scripts/libpr33265-2.a
@@ -0,0 +1 @@
+GROUP ( ./././././/libpr33265-2.a )
diff --git a/ld/testsuite/ld-scripts/libpr33265-3a.a b/ld/testsuite/ld-scripts/libpr33265-3a.a
new file mode 100644
index 0000000..bdd4f9a
--- /dev/null
+++ b/ld/testsuite/ld-scripts/libpr33265-3a.a
@@ -0,0 +1 @@
+GROUP ( ./././././/libpr33265-3b.a )
diff --git a/ld/testsuite/ld-scripts/libpr33265-3b.a b/ld/testsuite/ld-scripts/libpr33265-3b.a
new file mode 100644
index 0000000..7458328
--- /dev/null
+++ b/ld/testsuite/ld-scripts/libpr33265-3b.a
@@ -0,0 +1 @@
+GROUP ( ./././././/libpr33265-3c.a )
diff --git a/ld/testsuite/ld-scripts/libpr33265-3c.a b/ld/testsuite/ld-scripts/libpr33265-3c.a
new file mode 100644
index 0000000..4583c09
--- /dev/null
+++ b/ld/testsuite/ld-scripts/libpr33265-3c.a
@@ -0,0 +1 @@
+GROUP ( libpr33265-3a.a )
diff --git a/ld/testsuite/ld-scripts/linker-script-not-found.d b/ld/testsuite/ld-scripts/linker-script-not-found.d
new file mode 100644
index 0000000..61d4d8a
--- /dev/null
+++ b/ld/testsuite/ld-scripts/linker-script-not-found.d
@@ -0,0 +1,3 @@
+#source: default-script.s
+#ld: -T misspelled.ld
+#error: cannot open linker script file misspelled\.ld: .*\Z
diff --git a/ld/testsuite/ld-scripts/pr24576-1.d b/ld/testsuite/ld-scripts/pr24576-1.d
new file mode 100644
index 0000000..6cc7621
--- /dev/null
+++ b/ld/testsuite/ld-scripts/pr24576-1.d
@@ -0,0 +1,3 @@
+#source: default-script.s
+#ld: -defsym _START=0x800 -T default-script.t -T default-script.t
+#error: .*default-script.t\)' appears multiple times
diff --git a/ld/testsuite/ld-scripts/pr24576-2.d b/ld/testsuite/ld-scripts/pr24576-2.d
new file mode 100644
index 0000000..2d26ab3
--- /dev/null
+++ b/ld/testsuite/ld-scripts/pr24576-2.d
@@ -0,0 +1,3 @@
+#source: default-script.s
+#ld: -defsym _START=0x800 -T ././/default-script.t -T default-script.t
+#error: .*default-script.t\)' appears multiple times
diff --git a/ld/testsuite/ld-scripts/pr33265-1.d b/ld/testsuite/ld-scripts/pr33265-1.d
new file mode 100644
index 0000000..b0df33d
--- /dev/null
+++ b/ld/testsuite/ld-scripts/pr33265-1.d
@@ -0,0 +1,3 @@
+#source: start.s
+#ld: -r --whole-archive -lpr33265-1
+#error: .*group nested too deeply.*
diff --git a/ld/testsuite/ld-scripts/pr33265-2.d b/ld/testsuite/ld-scripts/pr33265-2.d
new file mode 100644
index 0000000..6e9da74
--- /dev/null
+++ b/ld/testsuite/ld-scripts/pr33265-2.d
@@ -0,0 +1,3 @@
+#source: start.s
+#ld: -r --whole-archive -lpr33265-2
+#error: .*group nested too deeply.*
diff --git a/ld/testsuite/ld-scripts/pr33265-3.d b/ld/testsuite/ld-scripts/pr33265-3.d
new file mode 100644
index 0000000..a2f42fa
--- /dev/null
+++ b/ld/testsuite/ld-scripts/pr33265-3.d
@@ -0,0 +1,3 @@
+#source: start.s
+#ld: -r --whole-archive -lpr33265-3a
+#error: .*group nested too deeply.*
diff --git a/ld/testsuite/ld-scripts/script.exp b/ld/testsuite/ld-scripts/script.exp
index 5206563..7a23f43 100644
--- a/ld/testsuite/ld-scripts/script.exp
+++ b/ld/testsuite/ld-scripts/script.exp
@@ -233,9 +233,16 @@ run_dump_test "pr20302"
run_dump_test "output-section-types"
run_dump_test "ld-version"
run_dump_test "ld-version-2"
+run_dump_test "pr24576-1"
+run_dump_test "pr24576-2"
+run_dump_test "linker-script-not-found"
run_dump_test "segment-start" {{name (default)}}
run_dump_test "segment-start" {{name (overridden)} \
{ld -Ttext-segment=0x10000000}}
+run_dump_test "pr33265-1"
+run_dump_test "pr33265-2"
+run_dump_test "pr33265-3"
+
set LDFLAGS $old_LDFLAGS
diff --git a/ld/testsuite/ld-scripts/sort_b_n_a-2.d b/ld/testsuite/ld-scripts/sort_b_n_a-2.d
index 4c9d8fe..2fd920d 100644
--- a/ld/testsuite/ld-scripts/sort_b_n_a-2.d
+++ b/ld/testsuite/ld-scripts/sort_b_n_a-2.d
@@ -1,7 +1,7 @@
#source: sort_n_a-a.s
#source: sort_n_a-b.s
#ld: -T sort_b_n_a.t --sort-section name
-#name: SORT_BY_NAME(SORT_BY_ALIGNMENT()) --sort-section alignment
+#name: SORT_BY_NAME(SORT_BY_ALIGNMENT()) --sort-section name
#nm: -n
#...
diff --git a/ld/testsuite/ld-scripts/sort_no-2.d b/ld/testsuite/ld-scripts/sort_no-2.d
index e0943d5..c85cc34 100644
--- a/ld/testsuite/ld-scripts/sort_no-2.d
+++ b/ld/testsuite/ld-scripts/sort_no-2.d
@@ -1,6 +1,6 @@
#source: sort_b_a.s
#ld: -T sort_no.t
-#name: no SORT_BY_NAME/SORT_BY_ALIGNMENT/SORT
+#name: no SORT_BY_NAME/SORT_BY_ALIGNMENT/SORT (2)
#nm: -n
#...
diff --git a/ld/testsuite/ld-shared/shared.exp b/ld/testsuite/ld-shared/shared.exp
index 29de93a..c67084c 100644
--- a/ld/testsuite/ld-shared/shared.exp
+++ b/ld/testsuite/ld-shared/shared.exp
@@ -37,7 +37,8 @@ if { ![check_shared_lib_support] } {
# This test can only be run on a couple of ELF platforms.
# Square bracket expressions seem to confuse istarget.
-if { ![istarget hppa*64*-*-hpux*] \
+if { ![istarget *-*-solaris2*] \
+ && ![istarget hppa*64*-*-hpux*] \
&& ![istarget hppa*-*-linux*] \
&& ![istarget i?86-*-elf*] \
&& ![istarget i?86-*-linux*] \
@@ -51,7 +52,6 @@ if { ![istarget hppa*64*-*-hpux*] \
&& ![istarget powerpc*-*-linux*] \
&& ![istarget powerpc*-*-sysv4*] \
&& ![istarget sparc*-*-elf] \
- && ![istarget sparc*-*-solaris2*] \
&& ![istarget sparc*-*-linux*] \
&& ![istarget arm*-*-linux*] \
&& ![istarget alpha*-*-linux*] \
@@ -62,13 +62,20 @@ if { ![istarget hppa*64*-*-hpux*] \
return
}
+set need_direct_extern_access ""
+if { [istarget i?86-*-linux*]
+ || [istarget i?86-*-gnu*] } then {
+ # These targets need direct extern access in some tests.
+ set need_direct_extern_access "$DIRECT_EXTERN_ACCESS_CFLAGS"
+}
+
set tmpdir tmpdir
set SHCFLAG ""
set shared_needs_pic "no"
# Disable all sanitizers.
-set old_CFLAGS "$CFLAGS_FOR_TARGET"
-append CFLAGS_FOR_TARGET " $NOSANITIZE_CFLAGS"
+set old_CFLAGS "$CFLAGS_FOR_TARGET_TEST"
+append CFLAGS_FOR_TARGET_TEST " $NOSANITIZE_CFLAGS"
if { [is_xcoff_format] } {
# Not all the useful features are available with AIX shared
@@ -104,7 +111,7 @@ if [istarget arm*-*-linux*] {
set file [open $tmpdir/movw-detect.c w]
puts $file "void foo(void) { __asm (\"movw r0, #0\"); }"
close $file
- if [run_host_cmd_yesno "$CC_FOR_TARGET" "$CFLAGS_FOR_TARGET -c $tmpdir/movw-detect.c -o $tmpdir/movw-detect.o"] {
+ if [run_host_cmd_yesno "$CC_FOR_TARGET" "$CFLAGS_FOR_TARGET_TEST -c $tmpdir/movw-detect.c -o $tmpdir/movw-detect.o"] {
set shared_needs_pic "yes"
}
}
@@ -217,14 +224,15 @@ if ![ld_compile "$CC_FOR_TARGET $NOPIE_CFLAGS $SHCFLAG" $srcdir/$subdir/main.c $
# will need to do more relocation work. However, note that not
# using -fpic will cause some of the tests to return different
# results. Make sure that PLT is used since PLT is expected.
- if { ![ld_compile "$CC_FOR_TARGET $PLT_CFLAGS $NOPIE_CFLAGS $SHCFLAG" $srcdir/$subdir/sh1.c $tmpdir/sh1np.o]
- || ![ld_compile "$CC_FOR_TARGET $PLT_CFLAGS $NOPIE_CFLAGS $SHCFLAG" $srcdir/$subdir/sh2.c $tmpdir/sh2np.o] } {
+ if { ![ld_compile "$CC_FOR_TARGET $PLT_CFLAGS $NOPIE_CFLAGS $SHCFLAG $need_direct_extern_access" $srcdir/$subdir/sh1.c $tmpdir/sh1np.o]
+ || ![ld_compile "$CC_FOR_TARGET $PLT_CFLAGS $NOPIE_CFLAGS $SHCFLAG $need_direct_extern_access" $srcdir/$subdir/sh2.c $tmpdir/sh2np.o] } {
unsupported "shared (non PIC)"
} else { if { [is_xcoff_format] } {
shared_test shnp "shared (non PIC)" mainnp.o sh1np.o sh2np.o xcoff "" $NOPIE_LDFLAGS
} else {
- # Solaris defaults to -z text.
- setup_xfail "*-*-solaris2*"
+ # 64-bit Solaris requires PIC.
+ setup_xfail "sparcv9*-*-solaris2*"
+ setup_xfail "x86_64-*-solaris2*"
setup_xfail "ia64-*-linux*"
setup_xfail "alpha*-*-linux*"
setup_xfail "powerpc-*-linux-musl"
@@ -270,7 +278,7 @@ if ![ld_compile "$CC_FOR_TARGET $NOPIE_CFLAGS $SHCFLAG" $srcdir/$subdir/main.c $
setup_xfail "arm*-*-linux*"
}
setup_xfail "aarch64*-*-linux*"
- # Solaris defaults to -z text.
+ # Solaris refuses to map shared objects with non-zero load addresses.
setup_xfail "*-*-solaris2*"
shared_test shnp "shared (non PIC, load offset)" \
mainnp.o sh1np.o sh2np.o shared \
@@ -305,8 +313,9 @@ if ![ld_compile "$CC_FOR_TARGET $SHCFLAG $picflag" $srcdir/$subdir/main.c $tmpdi
if { [is_xcoff_format] } {
shared_test shmpnp "shared (PIC main, non PIC so)" mainp.o sh1np.o sh2np.o xcoff "" $NOPIE_LDFLAGS
} else {
- # Solaris defaults to -z text.
- setup_xfail "*-*-solaris2*"
+ # 64-bit Solaris requires PIC.
+ setup_xfail "sparcv9*-*-solaris2*"
+ setup_xfail "x86_64-*-solaris2*"
setup_xfail "ia64-*-linux*"
setup_xfail "alpha*-*-linux*"
setup_xfail "powerpc-*-linux-musl"
@@ -343,4 +352,4 @@ if ![ld_compile "$CC_FOR_TARGET $SHCFLAG $picflag" $srcdir/$subdir/main.c $tmpdi
}
}
-set CFLAGS_FOR_TARGET "$old_CFLAGS"
+set CFLAGS_FOR_TARGET_TEST "$old_CFLAGS"
diff --git a/ld/testsuite/ld-srec/srec.exp b/ld/testsuite/ld-srec/srec.exp
index bec5913..227411a 100644
--- a/ld/testsuite/ld-srec/srec.exp
+++ b/ld/testsuite/ld-srec/srec.exp
@@ -364,25 +364,26 @@ if { ![check_compiler_available] } {
# Pass -fplt to CC and CXX since -fno-plt doesn't work with S-records
# tests. Also add $NOPIE_CFLAGS and $NOPIE_LDFLAGS if PIE doesn't work
# with S-records. Also add $NOCF_PROTECTION_CFLAGS for S-records.
-# Also add $NOSANITIZE_CFLAGS for S-records.
-set old_CFLAGS "$CFLAGS_FOR_TARGET"
-append CFLAGS_FOR_TARGET " $PLT_CFLAGS $NOPIE_CFLAGS $NOPIE_LDFLAGS $NOCF_PROTECTION_CFLAGS $NOSANITIZE_CFLAGS $NOLTO_CFLAGS"
-set old_CXXFLAGS "$CXXFLAGS_FOR_TARGET"
-append CXXFLAGS_FOR_TARGET " $PLT_CFLAGS $NOPIE_CFLAGS $NOPIE_LDFLAGS $NOCF_PROTECTION_CFLAGS $NOSANITIZE_CFLAGS $NOLTO_CFLAGS"
+# Also add $NOSANITIZE_CFLAGS for S-records. Also add
+# $DIRECT_EXTERN_ACCESS_CFLAGS.
+set old_CFLAGS "$CFLAGS_FOR_TARGET_TEST"
+append CFLAGS_FOR_TARGET_TEST " $PLT_CFLAGS $NOPIE_CFLAGS $NOPIE_LDFLAGS $NOCF_PROTECTION_CFLAGS $NOSANITIZE_CFLAGS $NOLTO_CFLAGS $DIRECT_EXTERN_ACCESS_CFLAGS"
+set old_CXXFLAGS "$CXXFLAGS_FOR_TARGET_TEST"
+append CXXFLAGS_FOR_TARGET_TEST " $PLT_CFLAGS $NOPIE_CFLAGS $NOPIE_LDFLAGS $NOCF_PROTECTION_CFLAGS $NOSANITIZE_CFLAGS $NOLTO_CFLAGS $DIRECT_EXTERN_ACCESS_CFLAGS"
# S-records can't handle .note.gnu.property sections.
if { [is_elf_format] \
&& ([istarget "i?86-*-*"] || [istarget "x86_64-*-*"]) } {
- append CFLAGS_FOR_TARGET " -Wa,-mx86-used-note=no"
- append CXXFLAGS_FOR_TARGET " -Wa,-mx86-used-note=no"
+ append CFLAGS_FOR_TARGET_TEST " -Wa,-mx86-used-note=no"
+ append CXXFLAGS_FOR_TARGET_TEST " -Wa,-mx86-used-note=no"
}
if { ![ld_compile $CC_FOR_TARGET $srcdir/$subdir/sr1.c tmpdir/sr1.o] \
|| ![ld_compile $CC_FOR_TARGET $srcdir/$subdir/sr2.c tmpdir/sr2.o] } {
unsupported $test1
unsupported $test2
- set CFLAGS_FOR_TARGET "$old_CFLAGS"
- set CXXFLAGS_FOR_TARGET "$old_CXXFLAGS"
+ set CFLAGS_FOR_TARGET_TEST "$old_CFLAGS"
+ set CXXFLAGS_FOR_TARGET_TEST "$old_CXXFLAGS"
return
}
@@ -454,15 +455,15 @@ run_srec_test $test1 "tmpdir/sr1.o tmpdir/sr2.o"
if { ![is_remote host] && [which $CXX_FOR_TARGET] == 0 } {
untested $test2
- set CFLAGS_FOR_TARGET "$old_CFLAGS"
- set CXXFLAGS_FOR_TARGET "$old_CXXFLAGS"
+ set CFLAGS_FOR_TARGET_TEST "$old_CFLAGS"
+ set CXXFLAGS_FOR_TARGET_TEST "$old_CXXFLAGS"
return
}
if ![ld_compile "$CXX_FOR_TARGET -fno-exceptions" $srcdir/$subdir/sr3.cc tmpdir/sr3.o] {
unsupported $test2
- set CFLAGS_FOR_TARGET "$old_CFLAGS"
- set CXXFLAGS_FOR_TARGET "$old_CXXFLAGS"
+ set CFLAGS_FOR_TARGET_TEST "$old_CFLAGS"
+ set CXXFLAGS_FOR_TARGET_TEST "$old_CXXFLAGS"
return
}
@@ -488,5 +489,5 @@ setup_xfail "bpf-*-*"
run_srec_test $test2 "tmpdir/sr3.o"
-set CFLAGS_FOR_TARGET "$old_CFLAGS"
-set CXXFLAGS_FOR_TARGET "$old_CXXFLAGS"
+set CFLAGS_FOR_TARGET_TEST "$old_CFLAGS"
+set CXXFLAGS_FOR_TARGET_TEST "$old_CXXFLAGS"
diff --git a/ld/testsuite/ld-vsb/vsb.exp b/ld/testsuite/ld-vsb/vsb.exp
index 84ae1ed..8eff759 100644
--- a/ld/testsuite/ld-vsb/vsb.exp
+++ b/ld/testsuite/ld-vsb/vsb.exp
@@ -50,6 +50,13 @@ if { ![istarget hppa*64*-*-hpux*] \
return
}
+set need_direct_extern_access ""
+if { [istarget i?86-*-linux*]
+ || [istarget i?86-*-gnu*] } then {
+ # These targets need direct extern access in some tests.
+ set need_direct_extern_access "$DIRECT_EXTERN_ACCESS_CFLAGS"
+}
+
if [is_xcoff_format] {
set test_list [lsort [glob -nocomplain $srcdir/$subdir/*-xcoff*.d]]
} else {
@@ -238,6 +245,7 @@ proc visibility_run {visibility} {
global COMPRESS_LDFLAG
global NOSANITIZE_CFLAGS
global NOLTO_CFLAGS
+ global need_direct_extern_access
if [ string match $visibility "hidden" ] {
set VSBCFLAG "-DHIDDEN_TEST"
@@ -284,7 +292,7 @@ proc visibility_run {visibility} {
} else {
# Compile the main program. Make sure that PLT is used since PLT
# is expected.
- if ![ld_compile "$CC_FOR_TARGET -g $NOPIE_CFLAGS $PLT_CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" $srcdir/$subdir/main.c $tmpdir/mainnp.o] {
+ if ![ld_compile "$CC_FOR_TARGET -g $NOPIE_CFLAGS $PLT_CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS $NOLTO_CFLAGS $need_direct_extern_access" $srcdir/$subdir/main.c $tmpdir/mainnp.o] {
unsupported "visibility ($visibility) (non PIC)"
unsupported "visibility ($visibility)"
} else {
@@ -294,8 +302,8 @@ proc visibility_run {visibility} {
# will need to do more relocation work. However, note that not
# using -fpic will cause some of the tests to return different
# results. Make sure that PLT is used since PLT is expected.
- if { ![ld_compile "$CC_FOR_TARGET -g $NOPIE_CFLAGS $PLT_CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" $srcdir/$subdir/sh1.c $tmpdir/sh1np.o]
- || ![ld_compile "$CC_FOR_TARGET -g $NOPIE_CFLAGS $PLT_CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" $srcdir/$subdir/sh2.c $tmpdir/sh2np.o] } {
+ if { ![ld_compile "$CC_FOR_TARGET -g $NOPIE_CFLAGS $PLT_CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS $NOLTO_CFLAGS $need_direct_extern_access" $srcdir/$subdir/sh1.c $tmpdir/sh1np.o]
+ || ![ld_compile "$CC_FOR_TARGET -g $NOPIE_CFLAGS $PLT_CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS $NOLTO_CFLAGS $need_direct_extern_access" $srcdir/$subdir/sh2.c $tmpdir/sh2np.o] } {
unsupported "visibility ($visibility) (non PIC)"
} else {
# SunOS non PIC shared libraries don't permit some cases of
diff --git a/ld/testsuite/ld-x86-64/binutils.exp b/ld/testsuite/ld-x86-64/binutils.exp
new file mode 100644
index 0000000..4a0b211
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/binutils.exp
@@ -0,0 +1,72 @@
+# Expect script for ELF/x86-64 binutils tests on linker outputs.
+# Copyright (C) 2025 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Binutils.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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.
+#
+
+if ![is_elf_format] {
+ return
+}
+
+if { ![istarget "x86_64-*-*"] } {
+ return
+}
+
+# Tests here need -melf_x86_64 support.
+set status [catch "exec $LD -V -melf_x86_64" got]
+if { $status == 0 } {
+ run_ld_link_tests [list \
+ [list \
+ "Build libgot-1-x64.so" \
+ "-shared -melf_x86_64 --no-ld-generated-unwind-info \
+ -z noseparate-code -z max-page-size=0x200000 \
+ --hash-style=sysv -z nomark-plt $NO_DT_RELR_LDFLAGS \
+ --rosegment" \
+ "" \
+ "--64 -mx86-used-note=no --generate-missing-build-notes=no" \
+ {got-1.s} \
+ {{readelf -rW libgot-1a.rd} \
+ {readelf -aW libgot-1b.rd} \
+ {readelf --got-contents libgot-1c.rd} \
+ {readelf {--got-contents -W} libgot-1d.rd}} \
+ "libgot-1-x64.so" \
+ ] \
+ ]
+}
+
+# Tests here need -melf32_x86_64 support.
+set status [catch "exec $LD -V -melf32_x86_64" got]
+if { $status == 0 } {
+ run_ld_link_tests [list \
+ [list \
+ "Build libgot-1-x32.so" \
+ "-shared -melf32_x86_64 --no-ld-generated-unwind-info \
+ -z noseparate-code -z max-page-size=0x200000 \
+ --hash-style=sysv -z nomark-plt $NO_DT_RELR_LDFLAGS \
+ --rosegment" \
+ "" \
+ "--x32 -mx86-used-note=no --generate-missing-build-notes=no" \
+ {got-1.s} \
+ {{readelf -rW libgot-1a-x32.rd} \
+ {readelf -aW libgot-1b-x32.rd} \
+ {readelf --got-contents libgot-1c-x32.rd} \
+ {readelf {--got-contents -W} libgot-1d-x32.rd}} \
+ "libgot-1-x32.so" \
+ ] \
+ ]
+}
diff --git a/ld/testsuite/ld-x86-64/dt-relr-1c-x32.d b/ld/testsuite/ld-x86-64/dt-relr-1c-x32.d
new file mode 100644
index 0000000..7e3ce293
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/dt-relr-1c-x32.d
@@ -0,0 +1,26 @@
+#source: dt-relr-1.s
+#as: --x32
+#ld: -shared -melf32_x86_64 $DT_RELR_LDFLAGS -z nomark-plt --hash-style=sysv
+#readelf: -D -r -s --wide
+#target: x86_64-*-linux*
+
+'RELA' relocation section at offset 0x[0-9a-f]+ contains 24 bytes:
+ +Offset +Info +Type +Sym. Value +Symbol's Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_32 +0+ +data1 \+ 0
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_32 +0+ +data1 \+ 0
+
+'RELR' relocation section at offset 0x[a-f0-9]+ contains 8 bytes:
+#...
+0000: +[0-9a-f]+ [0-9a-f]+ +.*
+0001: +[0-9a-f]+ [0-9a-f]+ +.*
+ +[0-9a-f]+ +.*
+#...
+'PLT' relocation section at offset 0x[0-9a-f]+ contains 12 bytes:
+ +Offset +Info +Type +Sym. Value +Symbol's Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_JUMP_SLOT +0+ +func1 \+ 0
+
+Symbol table for image contains [0-9]+ entries:
+ +Num: +Value +Size Type +Bind +Vis +Ndx Name
+#...
+ +[0-9]+: 0+ +0 +NOTYPE +GLOBAL +DEFAULT +UND +func1
+#pass
diff --git a/ld/testsuite/ld-x86-64/dt-relr-1c.d b/ld/testsuite/ld-x86-64/dt-relr-1c.d
new file mode 100644
index 0000000..12fb99e
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/dt-relr-1c.d
@@ -0,0 +1,26 @@
+#source: dt-relr-1.s
+#as: --64
+#ld: -shared -melf_x86_64 $DT_RELR_LDFLAGS -z nomark-plt --hash-style=sysv
+#readelf: -D -r -s --wide
+#target: x86_64-*-linux*
+
+'RELA' relocation section at offset 0x[0-9a-f]+ contains 48 bytes:
+ +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_64 +0+ +data1 \+ 0
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_64 +0+ +data1 \+ 0
+
+'RELR' relocation section at offset 0x[a-f0-9]+ contains 16 bytes:
+#...
+0000: +[0-9a-f]+ [0-9a-f]+ +.*
+0001: +[0-9a-f]+ [0-9a-f]+ +.*
+ +[0-9a-f]+ +.*
+#...
+'PLT' relocation section at offset 0x[0-9a-f]+ contains 24 bytes:
+ +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_JUMP_SLOT +0+ +func1 \+ 0
+
+Symbol table for image contains [0-9]+ entries:
+ +Num: +Value +Size Type +Bind +Vis +Ndx Name
+#...
+ +[0-9]+: 0+ +0 +NOTYPE +GLOBAL +DEFAULT +UND +func1
+#pass
diff --git a/ld/testsuite/ld-x86-64/dt-relr-1d-x32.d b/ld/testsuite/ld-x86-64/dt-relr-1d-x32.d
new file mode 100644
index 0000000..2327796
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/dt-relr-1d-x32.d
@@ -0,0 +1,26 @@
+#source: dt-relr-1.s
+#as: --x32
+#ld: -shared -melf32_x86_64 $DT_RELR_LDFLAGS -z nocombreloc -z nomark-plt --hash-style=sysv
+#readelf: -D -r -s --wide
+#target: x86_64-*-linux*
+
+'RELA' relocation section at offset 0x[0-9a-f]+ contains 24 bytes:
+ +Offset +Info +Type +Sym. Value +Symbol's Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_32 +0+ +data1 \+ 0
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_32 +0+ +data1 \+ 0
+
+'RELR' relocation section at offset 0x[a-f0-9]+ contains 8 bytes:
+#...
+0000: +[0-9a-f]+ [0-9a-f]+ +.*
+0001: +[0-9a-f]+ [0-9a-f]+ +.*
+ +[0-9a-f]+ +.*
+#...
+'PLT' relocation section at offset 0x[0-9a-f]+ contains 12 bytes:
+ +Offset +Info +Type +Sym. Value +Symbol's Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_JUMP_SLOT +0+ +func1 \+ 0
+
+Symbol table for image contains [0-9]+ entries:
+ +Num: +Value +Size Type +Bind +Vis +Ndx Name
+#...
+ +[0-9]+: 0+ +0 +NOTYPE +GLOBAL +DEFAULT +UND +func1
+#pass
diff --git a/ld/testsuite/ld-x86-64/dt-relr-1d.d b/ld/testsuite/ld-x86-64/dt-relr-1d.d
new file mode 100644
index 0000000..15b9f56
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/dt-relr-1d.d
@@ -0,0 +1,26 @@
+#source: dt-relr-1.s
+#as: --64
+#ld: -shared -melf_x86_64 $DT_RELR_LDFLAGS -z nocombreloc -z nomark-plt --hash-style=sysv
+#readelf: -D -r -s --wide
+#target: x86_64-*-linux*
+
+'RELA' relocation section at offset 0x[0-9a-f]+ contains 48 bytes:
+ +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_64 +0+ +data1 \+ 0
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_64 +0+ +data1 \+ 0
+
+'RELR' relocation section at offset 0x[a-f0-9]+ contains 16 bytes:
+#...
+0000: +[0-9a-f]+ [0-9a-f]+ +.*
+0001: +[0-9a-f]+ [0-9a-f]+ +.*
+ +[0-9a-f]+ +.*
+#...
+'PLT' relocation section at offset 0x[0-9a-f]+ contains 24 bytes:
+ +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_JUMP_SLOT +0+ +func1 \+ 0
+
+Symbol table for image contains [0-9]+ entries:
+ +Num: +Value +Size Type +Bind +Vis +Ndx Name
+#...
+ +[0-9]+: 0+ +0 +NOTYPE +GLOBAL +DEFAULT +UND +func1
+#pass
diff --git a/ld/testsuite/ld-x86-64/dt-relr-2-x32.d b/ld/testsuite/ld-x86-64/dt-relr-2-x32.d
new file mode 100644
index 0000000..b3e080e
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/dt-relr-2-x32.d
@@ -0,0 +1,21 @@
+#source: dt-relr-2.s
+#as: --x32
+#ld: -shared -melf32_x86_64 $DT_RELR_LDFLAGS -z nomark-plt --hash-style=sysv
+#readelf: -D -r --wide
+#target: x86_64-*-linux*
+
+'RELA' relocation section at offset 0x[0-9a-f]+ contains 24 bytes:
+ +Offset +Info +Type +Sym. Value +Symbol's Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_32 +0+ +data1 \+ 0
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_32 +0+ +data1 \+ 0
+
+'RELR' relocation section at offset 0x[a-f0-9]+ contains 8 bytes:
+#...
+0000: +[0-9a-f]+ [0-9a-f]+ +.*
+0001: +[0-9a-f]+ [0-9a-f]+ +.*
+ +[0-9a-f]+ +.*
+#...
+'PLT' relocation section at offset 0x[0-9a-f]+ contains 24 bytes:
+ +Offset +Info +Type +Sym. Value +Symbol's Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_JUMP_SLOT +[0-9a-f]+ +func1 \+ 0
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_JUMP_SLOT +[0-9a-f]+ +func2 \+ 0
diff --git a/ld/testsuite/ld-x86-64/dt-relr-2.d b/ld/testsuite/ld-x86-64/dt-relr-2.d
new file mode 100644
index 0000000..71e8c73
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/dt-relr-2.d
@@ -0,0 +1,21 @@
+#source: dt-relr-2.s
+#as: --64
+#ld: -shared -melf_x86_64 $DT_RELR_LDFLAGS -z nomark-plt --hash-style=sysv
+#readelf: -D -r --wide
+#target: x86_64-*-linux*
+
+'RELA' relocation section at offset 0x[0-9a-f]+ contains 48 bytes:
+ +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_64 +0+ +data1 \+ 0
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_64 +0+ +data1 \+ 0
+
+'RELR' relocation section at offset 0x[a-f0-9]+ contains 16 bytes:
+#...
+0000: +[0-9a-f]+ [0-9a-f]+ +.*
+0001: +[0-9a-f]+ [0-9a-f]+ +.*
+ +[0-9a-f]+ +.*
+#...
+'PLT' relocation section at offset 0x[0-9a-f]+ contains 48 bytes:
+ +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_JUMP_SLOT +[0-9a-f]+ +func1 \+ 0
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_JUMP_SLOT +[0-9a-f]+ +func2 \+ 0
diff --git a/ld/testsuite/ld-x86-64/dt-relr-2.s b/ld/testsuite/ld-x86-64/dt-relr-2.s
new file mode 100644
index 0000000..4e885f9
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/dt-relr-2.s
@@ -0,0 +1,23 @@
+ .text
+ .globl func1
+func1:
+ ret
+foo:
+ call func1@PLT
+ call func2@PLT
+ add __ehdr_start@GOTPCREL(%rip), %rax
+ .globl func2
+func2:
+ ret
+ .globl func3
+func3:
+ ret
+ .section .bar,"aw",@progbits
+ .p2align 3
+ .dc.a data1
+ .dc.a __ehdr_start
+
+ .section .foo,"aw",@progbits
+ .p2align 3
+ .dc.a data1
+ .dc.a __ehdr_start
diff --git a/ld/testsuite/ld-x86-64/gnu2-tls-1.s b/ld/testsuite/ld-x86-64/gnu2-tls-1.s
new file mode 100644
index 0000000..eca788c
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/gnu2-tls-1.s
@@ -0,0 +1,11 @@
+ .section .text.startup,"ax",@progbits
+ .p2align 4
+ .globl main
+ .type main, @function
+main:
+ leaq foo@TLSDESC(%rip), %rax
+ call *foo@TLSCALL(%rax)
+ movl %fs:(%rax), %eax
+ ret
+ .size main, .-main
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/gnu2-tls-1a.rd b/ld/testsuite/ld-x86-64/gnu2-tls-1a.rd
new file mode 100644
index 0000000..3eb926a
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/gnu2-tls-1a.rd
@@ -0,0 +1,7 @@
+#...
+Version needs section '.gnu.version_r' contains 1 entry:
+ Addr: 0x[0-9a-f]+ +Offset: 0x[0-9a-f]+ +Link: +[0-9]+ +\(.dynstr\)
+ +0+: Version: 1 +File: libc\.so\.6(|\.1) +Cnt: +[0-9]+
+#...
+ 0x[a-f0-9]+: Name: GLIBC_ABI_GNU2_TLS Flags: none Version: [0-9]+
+#pass
diff --git a/ld/testsuite/ld-x86-64/gnu2-tls-1b.rd b/ld/testsuite/ld-x86-64/gnu2-tls-1b.rd
new file mode 100644
index 0000000..33ef8ac
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/gnu2-tls-1b.rd
@@ -0,0 +1,4 @@
+#failif
+#...
+ 0x[a-f0-9]+: Name: GLIBC_ABI_GNU2_TLS Flags: none Version: [0-9]+
+#...
diff --git a/ld/testsuite/ld-x86-64/got-1.s b/ld/testsuite/ld-x86-64/got-1.s
new file mode 100644
index 0000000..7637069
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/got-1.s
@@ -0,0 +1,7 @@
+ .text
+ .globl func
+ .type func, @function
+func:
+ call *foo@GOTPCREL(%rip)
+ jmp bar@PLT
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/libgot-1a-x32.rd b/ld/testsuite/ld-x86-64/libgot-1a-x32.rd
new file mode 100644
index 0000000..6861d65
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/libgot-1a-x32.rd
@@ -0,0 +1,9 @@
+
+Relocation section '.rela.dyn' at offset 0x128 contains 1 entry:
+ Offset Info Type Sym. Value Symbol's Name \+ Addend
+0+200200 00000206 R_X86_64_GLOB_DAT 00000000 foo \+ 0
+
+Relocation section '.rela.plt' at offset 0x134 contains 1 entry:
+ Offset Info Type Sym. Value Symbol's Name \+ Addend
+0+200220 00000307 R_X86_64_JUMP_SLOT 00000000 bar \+ 0
+#pass
diff --git a/ld/testsuite/ld-x86-64/libgot-1a.rd b/ld/testsuite/ld-x86-64/libgot-1a.rd
new file mode 100644
index 0000000..8ed4470
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/libgot-1a.rd
@@ -0,0 +1,9 @@
+
+Relocation section '.rela.dyn' at offset 0x1b8 contains 1 entry:
+ Offset Info Type Symbol's Value Symbol's Name \+ Addend
+0+200340 0000000200000006 R_X86_64_GLOB_DAT 0000000000000000 foo \+ 0
+
+Relocation section '.rela.plt' at offset 0x1d0 contains 1 entry:
+ Offset Info Type Symbol's Value Symbol's Name \+ Addend
+0+200360 0000000300000007 R_X86_64_JUMP_SLOT 0000000000000000 bar \+ 0
+#pass
diff --git a/ld/testsuite/ld-x86-64/libgot-1b-x32.rd b/ld/testsuite/ld-x86-64/libgot-1b-x32.rd
new file mode 100644
index 0000000..f900303
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/libgot-1b-x32.rd
@@ -0,0 +1,119 @@
+ELF Header:
+ Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
+ Class: ELF32
+ Data: 2's complement, little endian
+ Version: 1 \(current\)
+ OS/ABI: UNIX - System V
+ ABI Version: 0
+ Type: DYN \(Shared object file\)
+ Machine: Advanced Micro Devices X86-64
+ Version: 0x1
+ Entry point address: 0x0
+ Start of program headers: 52 \(bytes into file\)
+ Start of section headers: 792 \(bytes into file\)
+ Flags: 0x0
+ Size of this header: 52 \(bytes\)
+ Size of program headers: 32 \(bytes\)
+ Number of program headers: 4
+ Size of section headers: 40 \(bytes\)
+ Number of section headers: 14
+ Section header string table index: 13
+
+Section Headers:
+ \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al
+ \[ 0\] NULL 00000000 000000 000000 00 0 0 0
+ \[ 1\] .hash HASH 000000b4 0000b4 000024 04 A 2 0 4
+ \[ 2\] .dynsym DYNSYM 000000d8 0000d8 000040 10 A 3 1 4
+ \[ 3\] .dynstr STRTAB 00000118 000118 00000e 00 A 0 0 1
+ \[ 4\] .rela.dyn RELA 00000128 000128 00000c 0c A 2 0 4
+ \[ 5\] .rela.plt RELA 00000134 000134 00000c 0c AI 2 10 4
+ \[ 6\] .plt PROGBITS 00000140 000140 000020 10 AX 0 0 16
+ \[ 7\] .text PROGBITS 00000160 000160 00000b 00 AX 0 0 1
+ \[ 8\] .dynamic DYNAMIC 0020016c 00016c 000090 08 WA 3 0 4
+ \[ 9\] .got PROGBITS 00200200 000200 000008 08 WA 0 0 8
+ \[10\] .got.plt PROGBITS 00200208 000208 000020 08 WA 0 0 8
+ \[11\] .symtab SYMTAB 00000000 000228 000060 10 12 3 4
+ \[12\] .strtab STRTAB 00000000 000288 00002d 00 0 0 1
+ \[13\] .shstrtab STRTAB 00000000 0002b5 000062 00 0 0 1
+Key to Flags:
+ W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\), I \(info\),
+ L \(link order\), O \(extra OS processing required\), G \(group\), T \(TLS\),
+ C \(compressed\), x \(unknown\), o \(OS specific\), E \(exclude\),
+ D \(mbind\), l \(large\), p \(processor specific\)
+
+There are no section groups in this file.
+
+Program Headers:
+ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
+ LOAD 0x000000 0x00000000 0x00000000 0x0016b 0x0016b R E 0x200000
+ LOAD 0x00016c 0x0020016c 0x0020016c 0x000bc 0x000bc RW 0x200000
+ DYNAMIC 0x00016c 0x0020016c 0x0020016c 0x00090 0x00090 RW 0x4
+ GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x10
+
+ Section to Segment mapping:
+ Segment Sections...
+ 00 .hash .dynsym .dynstr .rela.dyn .rela.plt .plt .text
+ 01 .dynamic .got .got.plt
+ 02 .dynamic
+ 03
+
+Dynamic section at offset 0x16c contains 13 entries:
+ Tag Type Name/Value
+ 0x00000004 \(HASH\) 0xb4
+ 0x00000005 \(STRTAB\) 0x118
+ 0x00000006 \(SYMTAB\) 0xd8
+ 0x0000000a \(STRSZ\) 14 \(bytes\)
+ 0x0000000b \(SYMENT\) 16 \(bytes\)
+ 0x00000003 \(PLTGOT\) 0x200208
+ 0x00000002 \(PLTRELSZ\) 12 \(bytes\)
+ 0x00000014 \(PLTREL\) RELA
+ 0x00000017 \(JMPREL\) 0x134
+ 0x00000007 \(RELA\) 0x128
+ 0x00000008 \(RELASZ\) 12 \(bytes\)
+ 0x00000009 \(RELAENT\) 12 \(bytes\)
+ 0x00000000 \(NULL\) 0x0
+
+Relocation section '.rela.dyn' at offset 0x128 contains 1 entry:
+ Offset Info Type Sym. Value Symbol's Name \+ Addend
+0+200200 00000206 R_X86_64_GLOB_DAT 00000000 foo \+ 0
+
+Relocation section '.rela.plt' at offset 0x134 contains 1 entry:
+ Offset Info Type Sym. Value Symbol's Name \+ Addend
+0+200220 00000307 R_X86_64_JUMP_SLOT 00000000 bar \+ 0
+No processor specific unwind information to decode
+
+Symbol table '.dynsym' contains 4 entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ +[a-f0-9]+: 00000000 0 NOTYPE LOCAL DEFAULT UND
+ +[a-f0-9]+: 00000160 0 FUNC GLOBAL DEFAULT 7 func
+ +[a-f0-9]+: 00000000 0 NOTYPE GLOBAL DEFAULT UND foo
+ +[a-f0-9]+: 00000000 0 NOTYPE GLOBAL DEFAULT UND bar
+
+Symbol table '.symtab' contains 6 entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ +[a-f0-9]+: 00000000 0 NOTYPE LOCAL DEFAULT UND
+ +[a-f0-9]+: 0020016c 0 OBJECT LOCAL DEFAULT 8 _DYNAMIC
+ +[a-f0-9]+: 00200208 0 OBJECT LOCAL DEFAULT 10 _GLOBAL_OFFSET_TABLE_
+ +[a-f0-9]+: 00000160 0 FUNC GLOBAL DEFAULT 7 func
+ +[a-f0-9]+: 00000000 0 NOTYPE GLOBAL DEFAULT UND foo
+ +[a-f0-9]+: 00000000 0 NOTYPE GLOBAL DEFAULT UND bar
+
+Histogram for bucket list length \(total of 3 buckets\):
+ Length Number % of total Coverage
+ 0 1 \( 33.3%\)
+ 1 1 \( 33.3%\) 33.3%
+ 2 1 \( 33.3%\) 100.0%
+
+No version information found in this file.
+
+Global Offset Table '.got' contains 1 entry:
+ Index: Address Reloc Sym. Name \+ Addend/Value
+ +[0-9]+: 00200200 R_X86_64_GLOB_DAT foo \+ 0
+
+Global Offset Table '.got.plt' contains 4 entries:
+ Index: Address Reloc Sym. Name \+ Addend/Value
+ +[0-9]+: 00200208 20016c
+ +[0-9]+: 00200210 0
+ +[0-9]+: 00200218 0
+ +[0-9]+: 00200220 R_X86_64_JUMP_SLOT bar \+ 0
+#pass
diff --git a/ld/testsuite/ld-x86-64/libgot-1b.rd b/ld/testsuite/ld-x86-64/libgot-1b.rd
new file mode 100644
index 0000000..18e4324
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/libgot-1b.rd
@@ -0,0 +1,119 @@
+ELF Header:
+ Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
+ Class: ELF64
+ Data: 2's complement, little endian
+ Version: 1 \(current\)
+ OS/ABI: UNIX - System V
+ ABI Version: 0
+ Type: DYN \(Shared object file\)
+ Machine: Advanced Micro Devices X86-64
+ Version: 0x1
+ Entry point address: 0x0
+ Start of program headers: 64 \(bytes into file\)
+ Start of section headers: 1160 \(bytes into file\)
+ Flags: 0x0
+ Size of this header: 64 \(bytes\)
+ Size of program headers: 56 \(bytes\)
+ Number of program headers: 4
+ Size of section headers: 64 \(bytes\)
+ Number of section headers: 14
+ Section header string table index: 13
+
+Section Headers:
+ \[Nr\] Name Type Address Off Size ES Flg Lk Inf Al
+ \[ 0\] NULL 0000000000000000 000000 000000 00 0 0 0
+ \[ 1\] .hash HASH 0000000000000120 000120 000024 04 A 2 0 8
+ \[ 2\] .dynsym DYNSYM 0000000000000148 000148 000060 18 A 3 1 8
+ \[ 3\] .dynstr STRTAB 00000000000001a8 0001a8 00000e 00 A 0 0 1
+ \[ 4\] .rela.dyn RELA 00000000000001b8 0001b8 000018 18 A 2 0 8
+ \[ 5\] .rela.plt RELA 00000000000001d0 0001d0 000018 18 AI 2 10 8
+ \[ 6\] .plt PROGBITS 00000000000001f0 0001f0 000020 10 AX 0 0 16
+ \[ 7\] .text PROGBITS 0000000000000210 000210 00000b 00 AX 0 0 1
+ \[ 8\] .dynamic DYNAMIC 0000000000200220 000220 000120 10 WA 3 0 8
+ \[ 9\] .got PROGBITS 0000000000200340 000340 000008 08 WA 0 0 8
+ \[10\] .got.plt PROGBITS 0000000000200348 000348 000020 08 WA 0 0 8
+ \[11\] .symtab SYMTAB 0000000000000000 000368 000090 18 12 3 8
+ \[12\] .strtab STRTAB 0000000000000000 0003f8 00002d 00 0 0 1
+ \[13\] .shstrtab STRTAB 0000000000000000 000425 000062 00 0 0 1
+Key to Flags:
+ W \(write\), A \(alloc\), X \(execute\), M \(merge\), S \(strings\), I \(info\),
+ L \(link order\), O \(extra OS processing required\), G \(group\), T \(TLS\),
+ C \(compressed\), x \(unknown\), o \(OS specific\), E \(exclude\),
+ D \(mbind\), l \(large\), p \(processor specific\)
+
+There are no section groups in this file.
+
+Program Headers:
+ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
+ LOAD 0x000000 0x0000000000000000 0x0000000000000000 0x00021b 0x00021b R E 0x200000
+ LOAD 0x000220 0x0000000000200220 0x0000000000200220 0x000148 0x000148 RW 0x200000
+ DYNAMIC 0x000220 0x0000000000200220 0x0000000000200220 0x000120 0x000120 RW 0x8
+ GNU_STACK 0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW 0x10
+
+ Section to Segment mapping:
+ Segment Sections...
+ 00 .hash .dynsym .dynstr .rela.dyn .rela.plt .plt .text
+ 01 .dynamic .got .got.plt
+ 02 .dynamic
+ 03
+
+Dynamic section at offset 0x220 contains 13 entries:
+ Tag Type Name/Value
+ 0x0000000000000004 \(HASH\) 0x120
+ 0x0000000000000005 \(STRTAB\) 0x1a8
+ 0x0000000000000006 \(SYMTAB\) 0x148
+ 0x000000000000000a \(STRSZ\) 14 \(bytes\)
+ 0x000000000000000b \(SYMENT\) 24 \(bytes\)
+ 0x0000000000000003 \(PLTGOT\) 0x200348
+ 0x0000000000000002 \(PLTRELSZ\) 24 \(bytes\)
+ 0x0000000000000014 \(PLTREL\) RELA
+ 0x0000000000000017 \(JMPREL\) 0x1d0
+ 0x0000000000000007 \(RELA\) 0x1b8
+ 0x0000000000000008 \(RELASZ\) 24 \(bytes\)
+ 0x0000000000000009 \(RELAENT\) 24 \(bytes\)
+ 0x0000000000000000 \(NULL\) 0x0
+
+Relocation section '.rela.dyn' at offset 0x1b8 contains 1 entry:
+ Offset Info Type Symbol's Value Symbol's Name \+ Addend
+0+200340 0000000200000006 R_X86_64_GLOB_DAT 0000000000000000 foo \+ 0
+
+Relocation section '.rela.plt' at offset 0x1d0 contains 1 entry:
+ Offset Info Type Symbol's Value Symbol's Name \+ Addend
+0+200360 0000000300000007 R_X86_64_JUMP_SLOT 0000000000000000 bar \+ 0
+No processor specific unwind information to decode
+
+Symbol table '.dynsym' contains 4 entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ +[a-f0-9]+: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
+ +[a-f0-9]+: 0000000000000210 0 FUNC GLOBAL DEFAULT 7 func
+ +[a-f0-9]+: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND foo
+ +[a-f0-9]+: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND bar
+
+Symbol table '.symtab' contains 6 entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ +[a-f0-9]+: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
+ +[a-f0-9]+: 0000000000200220 0 OBJECT LOCAL DEFAULT 8 _DYNAMIC
+ +[a-f0-9]+: 0000000000200348 0 OBJECT LOCAL DEFAULT 10 _GLOBAL_OFFSET_TABLE_
+ +[a-f0-9]+: 0000000000000210 0 FUNC GLOBAL DEFAULT 7 func
+ +[a-f0-9]+: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND foo
+ +[a-f0-9]+: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND bar
+
+Histogram for bucket list length \(total of 3 buckets\):
+ Length Number % of total Coverage
+ 0 1 \( 33.3%\)
+ 1 1 \( 33.3%\) 33.3%
+ 2 1 \( 33.3%\) 100.0%
+
+No version information found in this file.
+
+Global Offset Table '.got' contains 1 entry:
+ Index: Address Reloc Sym. Name \+ Addend/Value
+ +[0-9]+: 0000000000200340 R_X86_64_GLOB_DAT foo \+ 0
+
+Global Offset Table '.got.plt' contains 4 entries:
+ Index: Address Reloc Sym. Name \+ Addend/Value
+ +[0-9]+: 0000000000200348 200220
+ +[0-9]+: 0000000000200350 0
+ +[0-9]+: 0000000000200358 0
+ +[0-9]+: 0000000000200360 R_X86_64_JUMP_SLOT bar \+ 0
+#pass
diff --git a/ld/testsuite/ld-x86-64/libgot-1c-x32.rd b/ld/testsuite/ld-x86-64/libgot-1c-x32.rd
new file mode 100644
index 0000000..a3bdacf
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/libgot-1c-x32.rd
@@ -0,0 +1,12 @@
+
+Global Offset Table '.got' contains 1 entry:
+ Index: Address Reloc Sym. Name \+ Addend/Value
+ +[0-9]+: 00200200 R_X86_64_GLOB_DAT foo \+ 0
+
+Global Offset Table '.got.plt' contains 4 entries:
+ Index: Address Reloc Sym. Name \+ Addend/Value
+ +[0-9]+: 00200208 20016c
+ +[0-9]+: 00200210 0
+ +[0-9]+: 00200218 0
+ +[0-9]+: 00200220 R_X86_64_JUMP_SLO bar \+ 0
+#pass
diff --git a/ld/testsuite/ld-x86-64/libgot-1c.rd b/ld/testsuite/ld-x86-64/libgot-1c.rd
new file mode 100644
index 0000000..fc1a260
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/libgot-1c.rd
@@ -0,0 +1,12 @@
+
+Global Offset Table '.got' contains 1 entry:
+ Index: Address Reloc Sym. Name \+ Addend/Value
+ +[0-9]+: 000000200340 R_X86_64_GLOB_DAT foo \+ 0
+
+Global Offset Table '.got.plt' contains 4 entries:
+ Index: Address Reloc Sym. Name \+ Addend/Value
+ +[0-9]+: 000000200348 200220
+ +[0-9]+: 000000200350 0
+ +[0-9]+: 000000200358 0
+ +[0-9]+: 000000200360 R_X86_64_JUMP_SLO bar \+ 0
+#pass
diff --git a/ld/testsuite/ld-x86-64/libgot-1d-x32.rd b/ld/testsuite/ld-x86-64/libgot-1d-x32.rd
new file mode 100644
index 0000000..3e2693e
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/libgot-1d-x32.rd
@@ -0,0 +1,12 @@
+
+Global Offset Table '.got' contains 1 entry:
+ Index: Address Reloc Sym. Name \+ Addend/Value
+ +[0-9]+: 00200200 R_X86_64_GLOB_DAT foo \+ 0
+
+Global Offset Table '.got.plt' contains 4 entries:
+ Index: Address Reloc Sym. Name \+ Addend/Value
+ +[0-9]+: 00200208 20016c
+ +[0-9]+: 00200210 0
+ +[0-9]+: 00200218 0
+ +[0-9]+: 00200220 R_X86_64_JUMP_SLOT bar \+ 0
+#pass
diff --git a/ld/testsuite/ld-x86-64/libgot-1d.rd b/ld/testsuite/ld-x86-64/libgot-1d.rd
new file mode 100644
index 0000000..341840e
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/libgot-1d.rd
@@ -0,0 +1,12 @@
+
+Global Offset Table '.got' contains 1 entry:
+ Index: Address Reloc Sym. Name \+ Addend/Value
+ +[0-9]+: 0000000000200340 R_X86_64_GLOB_DAT foo \+ 0
+
+Global Offset Table '.got.plt' contains 4 entries:
+ Index: Address Reloc Sym. Name \+ Addend/Value
+ +[0-9]+: 0000000000200348 200220
+ +[0-9]+: 0000000000200350 0
+ +[0-9]+: 0000000000200358 0
+ +[0-9]+: 0000000000200360 R_X86_64_JUMP_SLOT bar \+ 0
+#pass
diff --git a/ld/testsuite/ld-x86-64/mark-plt-1a.rd b/ld/testsuite/ld-x86-64/mark-plt-1a.rd
index 1234fbe..b0ed702 100644
--- a/ld/testsuite/ld-x86-64/mark-plt-1a.rd
+++ b/ld/testsuite/ld-x86-64/mark-plt-1a.rd
@@ -3,5 +3,5 @@ Version needs section '.gnu.version_r' contains 1 entry:
Addr: 0x[0-9a-f]+ +Offset: 0x[0-9a-f]+ +Link: +[0-9]+ +\(.dynstr\)
+0+: Version: 1 +File: libc\.so\.6(|\.1) +Cnt: +[0-9]+
#...
- 0x[a-f0-9]+: Name: GLIBC_2.36 Flags: none Version: [0-9]+
+ 0x[a-f0-9]+: Name: (GLIBC_2.36|GLIBC_ABI_DT_X86_64_PLT) Flags: none Version: [0-9]+
#pass
diff --git a/ld/testsuite/ld-x86-64/mark-plt-2.rd b/ld/testsuite/ld-x86-64/mark-plt-2.rd
new file mode 100644
index 0000000..b0ed702
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/mark-plt-2.rd
@@ -0,0 +1,7 @@
+#...
+Version needs section '.gnu.version_r' contains 1 entry:
+ Addr: 0x[0-9a-f]+ +Offset: 0x[0-9a-f]+ +Link: +[0-9]+ +\(.dynstr\)
+ +0+: Version: 1 +File: libc\.so\.6(|\.1) +Cnt: +[0-9]+
+#...
+ 0x[a-f0-9]+: Name: (GLIBC_2.36|GLIBC_ABI_DT_X86_64_PLT) Flags: none Version: [0-9]+
+#pass
diff --git a/ld/testsuite/ld-x86-64/mark-plt-2.s b/ld/testsuite/ld-x86-64/mark-plt-2.s
new file mode 100644
index 0000000..c816567
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/mark-plt-2.s
@@ -0,0 +1,13 @@
+ .text
+ .globl foo
+ .type foo, @function
+foo:
+ subq $8, %rsp
+ leaq xxx@TLSDESC(%rip), %rax
+ .nops 10
+ call *xxx@TLSCALL(%rax)
+ movl %fs:(%rax), %eax
+ addq $8, %rsp
+ call bar
+ ret
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/no-plt-1a.dd b/ld/testsuite/ld-x86-64/no-plt-1a.dd
index b1d5d7e..89bfaa1 100644
--- a/ld/testsuite/ld-x86-64/no-plt-1a.dd
+++ b/ld/testsuite/ld-x86-64/no-plt-1a.dd
@@ -10,8 +10,9 @@ Disassembly of section .text:
+[a-f0-9]+: 48 83 ec 08 sub \$0x8,%rsp
+[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4}[ ]+addr32 call [0-9a-f]+ <get_func>
+[a-f0-9]+: 48 81 f8 ([0-9a-f]{2} ){4}[ ]+cmp \$0x[0-9a-f]+,%rax
- +[a-f0-9]+: 75 34 jne [0-9a-f]+ <check\+0x[0-9a-f]+>
- +[a-f0-9]+: 4(0|8) 39 05 ([0-9a-f]{2} ){4}[ ]+(rex |)cmp +%(e|r)ax,0x[0-9a-f]+\(%rip\) +# [a-f0-9]+ <func_p>
+ +[a-f0-9]+: 75 37 jne [0-9a-f]+ <check\+0x[0-9a-f]+>
+ +[a-f0-9]+: 4(0|8) c7 c2 ([0-9a-f]{2} ){4}[ ]+(rex |)mov +\$0x[0-9a-f]+,%(e|r)dx
+ +[a-f0-9]+: (48|67) 39 02[ ]+cmp +%(e|r)ax,\(%(e|r)dx\)
+[a-f0-9]+: 75 2b jne [0-9a-f]+ <check\+0x[0-9a-f]+>
+[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4}[ ]+addr32 call [0-9a-f]+ <func>
+[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax
diff --git a/ld/testsuite/ld-x86-64/no-plt-1b.dd b/ld/testsuite/ld-x86-64/no-plt-1b.dd
index 2ab8da5..1f430b8 100644
--- a/ld/testsuite/ld-x86-64/no-plt-1b.dd
+++ b/ld/testsuite/ld-x86-64/no-plt-1b.dd
@@ -10,8 +10,9 @@ Disassembly of section .text:
+[a-f0-9]+: 48 83 ec 08 sub \$0x8,%rsp
+[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+call \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*>
+[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4}[ ]+cmp 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
- +[a-f0-9]+: 75 34 jne [0-9a-f]+ <check\+0x[0-9a-f]+>
- +[a-f0-9]+: 4(0|8) 39 05 ([0-9a-f]{2} ){4}[ ]+(rex |)cmp +%(e|r)ax,0x[0-9a-f]+\(%rip\) +# [a-f0-9]+ <.*>
+ +[a-f0-9]+: 75 37 jne [0-9a-f]+ <check\+0x[0-9a-f]+>
+ +[a-f0-9]+: 4(0|8) 8b 15 ([0-9a-f]{2} ){4}[ ]+(rex |)mov +0x[0-9a-f]+\(%rip\),%(e|r)dx +# [a-f0-9]+ <.*>
+ +[a-f0-9]+: (48|67) 39 02[ ]+cmp +%(e|r)ax,\(%(e|r)dx\)
+[a-f0-9]+: 75 2b jne [0-9a-f]+ <check\+0x[0-9a-f]+>
+[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+call \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*>
+[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax
diff --git a/ld/testsuite/ld-x86-64/no-plt-1c.dd b/ld/testsuite/ld-x86-64/no-plt-1c.dd
index 1f6ea27..ef772af 100644
--- a/ld/testsuite/ld-x86-64/no-plt-1c.dd
+++ b/ld/testsuite/ld-x86-64/no-plt-1c.dd
@@ -10,8 +10,9 @@ Disassembly of section .text:
+[a-f0-9]+: 48 83 ec 08 sub \$0x8,%rsp
+[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+call \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*>
+[a-f0-9]+: 48 81 f8 ([0-9a-f]{2} ){4}[ ]+cmp \$0x[0-9a-f]+,%rax
- +[a-f0-9]+: 75 34 jne [0-9a-f]+ <check\+0x[0-9a-f]+>
- +[a-f0-9]+: 4(0|8) 39 05 ([0-9a-f]{2} ){4}[ ]+(rex |)cmp +%(e|r)ax,0x[0-9a-f]+\(%rip\) +# [a-f0-9]+ <.*>
+ +[a-f0-9]+: 75 37 jne [0-9a-f]+ <check\+0x[0-9a-f]+>
+ +[a-f0-9]+: 4(0|8) 8b 15 ([0-9a-f]{2} ){4}[ ]+(rex |)mov +0x[0-9a-f]+\(%rip\),%(e|r)dx +# [a-f0-9]+ <.*>
+ +[a-f0-9]+: (48|67) 39 02[ ]+cmp +%(e|r)ax,\(%(e|r)dx\)
+[a-f0-9]+: 75 2b jne [0-9a-f]+ <check\+0x[0-9a-f]+>
+[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4}[ ]+addr32 call [0-9a-f]+ <func>
+[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax
diff --git a/ld/testsuite/ld-x86-64/no-plt-1d.dd b/ld/testsuite/ld-x86-64/no-plt-1d.dd
index 49f34ad..cd500bd 100644
--- a/ld/testsuite/ld-x86-64/no-plt-1d.dd
+++ b/ld/testsuite/ld-x86-64/no-plt-1d.dd
@@ -10,8 +10,9 @@ Disassembly of section .text:
+[a-f0-9]+: 48 83 ec 08 sub \$0x8,%rsp
+[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4}[ ]+addr32 call [0-9a-f]+ <get_func>
+[a-f0-9]+: 48 81 f8 ([0-9a-f]{2} ){4}[ ]+cmp \$0x[0-9a-f]+,%rax
- +[a-f0-9]+: 75 34 jne [0-9a-f]+ <check\+0x[0-9a-f]+>
- +[a-f0-9]+: 4(0|8) 39 05 ([0-9a-f]{2} ){4}[ ]+(rex |)cmp +%(e|r)ax,0x[0-9a-f]+\(%rip\) +# [a-f0-9]+ <func_p>
+ +[a-f0-9]+: 75 37 jne [0-9a-f]+ <check\+0x[0-9a-f]+>
+ +[a-f0-9]+: 4(0|8) c7 c2 ([0-9a-f]{2} ){4}[ ]+(rex |)mov +\$0x[0-9a-f]+,%(e|r)dx
+ +[a-f0-9]+: (48|67) 39 02[ ]+cmp +%(e|r)ax,\(%(e|r)dx\)
+[a-f0-9]+: 75 2b jne [0-9a-f]+ <check\+0x[0-9a-f]+>
+[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4}[ ]+addr32 call [0-9a-f]+ <func>
+[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax
diff --git a/ld/testsuite/ld-x86-64/no-plt-1e.dd b/ld/testsuite/ld-x86-64/no-plt-1e.dd
index 465574f..0180dd3 100644
--- a/ld/testsuite/ld-x86-64/no-plt-1e.dd
+++ b/ld/testsuite/ld-x86-64/no-plt-1e.dd
@@ -10,8 +10,9 @@ Disassembly of section .text:
+[a-f0-9]+: 48 83 ec 08 sub \$0x8,%rsp
+[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4}[ ]+addr32 call [0-9a-f]+ <get_func>
+[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4}[ ]+cmp 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
- +[a-f0-9]+: 75 34 jne [0-9a-f]+ <check\+0x[0-9a-f]+>
- +[a-f0-9]+: 4(0|8) 39 05 ([0-9a-f]{2} ){4}[ ]+(rex |)cmp +%(e|r)ax,0x[0-9a-f]+\(%rip\) +# [a-f0-9]+ <func_p>
+ +[a-f0-9]+: 75 37 jne [0-9a-f]+ <check\+0x[0-9a-f]+>
+ +[a-f0-9]+: 4(0|8) 8d 15 ([0-9a-f]{2} ){4}[ ]+(rex |)lea +0x[0-9a-f]+\(%rip\),%(e|r)dx +# [a-f0-9]+ <func_p>
+ +[a-f0-9]+: (48|67) 39 02[ ]+cmp +%(e|r)ax,\(%(e|r)dx\)
+[a-f0-9]+: 75 2b jne [0-9a-f]+ <check\+0x[0-9a-f]+>
+[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4}[ ]+addr32 call [0-9a-f]+ <func>
+[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax
diff --git a/ld/testsuite/ld-x86-64/no-plt-1f.dd b/ld/testsuite/ld-x86-64/no-plt-1f.dd
index 2ab8da5..1f430b8 100644
--- a/ld/testsuite/ld-x86-64/no-plt-1f.dd
+++ b/ld/testsuite/ld-x86-64/no-plt-1f.dd
@@ -10,8 +10,9 @@ Disassembly of section .text:
+[a-f0-9]+: 48 83 ec 08 sub \$0x8,%rsp
+[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+call \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*>
+[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4}[ ]+cmp 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
- +[a-f0-9]+: 75 34 jne [0-9a-f]+ <check\+0x[0-9a-f]+>
- +[a-f0-9]+: 4(0|8) 39 05 ([0-9a-f]{2} ){4}[ ]+(rex |)cmp +%(e|r)ax,0x[0-9a-f]+\(%rip\) +# [a-f0-9]+ <.*>
+ +[a-f0-9]+: 75 37 jne [0-9a-f]+ <check\+0x[0-9a-f]+>
+ +[a-f0-9]+: 4(0|8) 8b 15 ([0-9a-f]{2} ){4}[ ]+(rex |)mov +0x[0-9a-f]+\(%rip\),%(e|r)dx +# [a-f0-9]+ <.*>
+ +[a-f0-9]+: (48|67) 39 02[ ]+cmp +%(e|r)ax,\(%(e|r)dx\)
+[a-f0-9]+: 75 2b jne [0-9a-f]+ <check\+0x[0-9a-f]+>
+[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+call \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*>
+[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax
diff --git a/ld/testsuite/ld-x86-64/no-plt-1g.dd b/ld/testsuite/ld-x86-64/no-plt-1g.dd
index 0526fb0..b6adc0d 100644
--- a/ld/testsuite/ld-x86-64/no-plt-1g.dd
+++ b/ld/testsuite/ld-x86-64/no-plt-1g.dd
@@ -10,8 +10,9 @@ Disassembly of section .text:
+[a-f0-9]+: 48 83 ec 08 sub \$0x8,%rsp
+[a-f0-9]+: ff 15 ([0-9a-f]{2} ){4}[ ]+call \*0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <.*>
+[a-f0-9]+: 48 3b 05 ([0-9a-f]{2} ){4}[ ]+cmp 0x[0-9a-f]+\(%rip\),%rax +# [0-9a-f]+ <.*>
- +[a-f0-9]+: 75 34 jne [0-9a-f]+ <check\+0x[0-9a-f]+>
- +[a-f0-9]+: 4(0|8) 39 05 ([0-9a-f]{2} ){4}[ ]+(rex |)cmp +%(e|r)ax,0x[0-9a-f]+\(%rip\) +# [a-f0-9]+ <.*>
+ +[a-f0-9]+: 75 37 jne [0-9a-f]+ <check\+0x[0-9a-f]+>
+ +[a-f0-9]+: 4(0|8) 8b 15 ([0-9a-f]{2} ){4}[ ]+(rex |)mov +0x[0-9a-f]+\(%rip\),%(e|r)dx +# [a-f0-9]+ <.*>
+ +[a-f0-9]+: (48|67) 39 02[ ]+cmp +%(e|r)ax,\(%(e|r)dx\)
+[a-f0-9]+: 75 2b jne [0-9a-f]+ <check\+0x[0-9a-f]+>
+[a-f0-9]+: 67 e8 ([0-9a-f]{2} ){4}[ ]+addr32 call [0-9a-f]+ <func>
+[a-f0-9]+: 3d 78 56 34 12 cmp \$0x12345678,%eax
diff --git a/ld/testsuite/ld-x86-64/no-plt-check1.S b/ld/testsuite/ld-x86-64/no-plt-check1.S
index 61d32b1..4526e5e 100644
--- a/ld/testsuite/ld-x86-64/no-plt-check1.S
+++ b/ld/testsuite/ld-x86-64/no-plt-check1.S
@@ -11,10 +11,12 @@ check:
cmpq func@GOTPCREL(%rip), %rax
jne .L3
#ifdef __LP64__
- cmpq %rax, func_p(%rip)
+ movq func_p@GOTPCREL(%rip), %rdx
+ cmpq %rax, (%rdx)
#else
rex
- cmpl %eax, func_p(%rip)
+ movl func_p@GOTPCREL(%rip), %edx
+ cmpl %eax, (%edx)
#endif
jne .L3
call *func@GOTPCREL(%rip)
diff --git a/ld/testsuite/ld-x86-64/no-plt.exp b/ld/testsuite/ld-x86-64/no-plt.exp
index e78d09a..eb63670 100644
--- a/ld/testsuite/ld-x86-64/no-plt.exp
+++ b/ld/testsuite/ld-x86-64/no-plt.exp
@@ -70,7 +70,7 @@ run_cc_link_tests [list \
"libno-plt-1b.so" \
] \
[list \
- "No PLT (dynamic 1a)" \
+ "Build no PLT (dynamic 1a)" \
"$NOPIE_LDFLAGS tmpdir/no-plt-check1.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/no-plt-extern1.o" \
"-Wa,-mx86-used-note=yes" \
@@ -79,7 +79,7 @@ run_cc_link_tests [list \
"no-plt-1a" \
] \
[list \
- "No PLT (dynamic 1b)" \
+ "Build no PLT (dynamic 1b)" \
"tmpdir/no-plt-check1.o tmpdir/no-plt-main1.o \
tmpdir/libno-plt-1a.so tmpdir/libno-plt-1b.so" \
"-Wa,-mx86-used-note=yes" \
@@ -88,7 +88,7 @@ run_cc_link_tests [list \
"no-plt-1b" \
] \
[list \
- "No PLT (dynamic 1c)" \
+ "Build no PLT (dynamic 1c)" \
"$NOPIE_LDFLAGS tmpdir/no-plt-check1.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/libno-plt-1b.so" \
"-Wa,-mx86-used-note=yes" \
@@ -97,7 +97,7 @@ run_cc_link_tests [list \
"no-plt-1c" \
] \
[list \
- "No PLT (static 1d)" \
+ "Build no PLT (static 1d)" \
"-static tmpdir/no-plt-check1.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/no-plt-extern1.o" \
"-Wa,-mx86-used-note=yes" \
@@ -106,7 +106,7 @@ run_cc_link_tests [list \
"no-plt-1d" \
] \
[list \
- "No PLT (PIE 1e)" \
+ "Build no PLT (PIE 1e)" \
"-pie tmpdir/no-plt-check1.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/no-plt-extern1.o" \
"-Wa,-mx86-used-note=yes" \
@@ -115,7 +115,7 @@ run_cc_link_tests [list \
"no-plt-1e" \
] \
[list \
- "No PLT (PIE 1f)" \
+ "Build no PLT (PIE 1f)" \
"-pie tmpdir/no-plt-check1.o tmpdir/no-plt-main1.o \
tmpdir/libno-plt-1a.so tmpdir/libno-plt-1b.so" \
"-Wa,-mx86-used-note=yes" \
@@ -124,7 +124,7 @@ run_cc_link_tests [list \
"no-plt-1f" \
] \
[list \
- "No PLT (PIE 1g)" \
+ "Build no PLT (PIE 1g)" \
"-pie tmpdir/no-plt-check1.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/libno-plt-1b.so" \
"-Wa,-mx86-used-note=yes" \
@@ -136,7 +136,7 @@ run_cc_link_tests [list \
run_ld_link_exec_tests [list \
[list \
- "No PLT (dynamic 1a)" \
+ "Run no PLT (dynamic 1a)" \
"tmpdir/no-plt-check1.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/no-plt-extern1.o" \
"-Wa,-mx86-used-note=yes" \
@@ -145,7 +145,7 @@ run_ld_link_exec_tests [list \
"pass.out" \
] \
[list \
- "No PLT (dynamic 1b)" \
+ "Run no PLT (dynamic 1b)" \
"tmpdir/no-plt-check1.o tmpdir/no-plt-main1.o \
tmpdir/libno-plt-1a.so tmpdir/libno-plt-1b.so" \
"-Wa,-mx86-used-note=yes" \
@@ -154,7 +154,7 @@ run_ld_link_exec_tests [list \
"pass.out" \
] \
[list \
- "No PLT (dynamic 1c)" \
+ "Run no PLT (dynamic 1c)" \
"tmpdir/no-plt-check1.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/libno-plt-1b.so" \
"-Wa,-mx86-used-note=yes" \
@@ -163,7 +163,7 @@ run_ld_link_exec_tests [list \
"pass.out" \
] \
[list \
- "No PLT (static 1d)" \
+ "Run no PLT (static 1d)" \
"-static tmpdir/no-plt-check1.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/no-plt-extern1.o" \
"-Wa,-mx86-used-note=yes" \
@@ -172,7 +172,7 @@ run_ld_link_exec_tests [list \
"pass.out" \
] \
[list \
- "No PLT (PIE 1e)" \
+ "Run no PLT (PIE 1e)" \
"-pie tmpdir/no-plt-check1.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/no-plt-extern1.o" \
"-Wa,-mx86-used-note=yes" \
@@ -181,7 +181,7 @@ run_ld_link_exec_tests [list \
"pass.out" \
] \
[list \
- "No PLT (PIE 1f)" \
+ "Run no PLT (PIE 1f)" \
"-pie tmpdir/no-plt-check1.o tmpdir/no-plt-main1.o \
tmpdir/libno-plt-1a.so tmpdir/libno-plt-1b.so" \
"-Wa,-mx86-used-note=yes" \
@@ -190,7 +190,7 @@ run_ld_link_exec_tests [list \
"pass.out" \
] \
[list \
- "No PLT (PIE 1g)" \
+ "Run no PLT (PIE 1g)" \
"-pie tmpdir/no-plt-check1.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/libno-plt-1b.so" \
"-Wa,-mx86-used-note=yes" \
diff --git a/ld/testsuite/ld-x86-64/pr28387-x32.d b/ld/testsuite/ld-x86-64/pr28387-x32.d
new file mode 100644
index 0000000..0302126
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr28387-x32.d
@@ -0,0 +1,36 @@
+#source: pr28387.s
+#as: --x32
+#ld: -shared -melf32_x86_64 -z nocombreloc -z nomark-plt -z noseparate-code -z max-page-size=0x200000 --no-ld-generated-unwind-info --hash-style=sysv
+#readelf: -d -r -S --wide
+
+There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+:
+
+Section Headers:
+ +\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al
+#...
+ +\[[ 0-9]+\] .rela.data +RELA +0+128 0+128 0+c 0c +AI +2 +12 +4
+ +\[[ 0-9]+\] .rela.tls +RELA +0+134 0+134 0+c 0c +AI +2 +11 +4
+ +\[[ 0-9]+\] .rela.plt +RELA +0+140 0+140 0+c 0c +AI +2 +11 +4
+#...
+Dynamic section at offset 0x[0-9a-f]+ contains [0-9]+ entries:
+ +Tag +Type +Name/Value
+#...
+ 0x[0-9a-f]+ +\(PLTRELSZ\) +12 \(bytes\)
+ 0x[0-9a-f]+ +\(PLTREL\) +RELA
+ 0x[0-9a-f]+ +\(JMPREL\) +0x140
+#...
+ 0x[0-9a-f]+ +\(RELA\) +0x128
+ 0x[0-9a-f]+ +\(RELASZ\) +24 \(bytes\)
+ 0x[0-9a-f]+ +\(RELAENT\) +12 \(bytes\)
+#...
+Relocation section '.rela.data' at offset 0x[0-9a-f]+ contains 1 entry:
+ +Offset +Info +Type +Sym.* Value +Symbol's Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_32 +0+ +foo \+ 0
+
+Relocation section '.rela.tls' at offset 0x[0-9a-f]+ contains 1 entry:
+ +Offset +Info +Type +Sym.* Value +Symbol's Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_TLSDESC +0+ +foo \+ 0
+
+Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entry:
+ +Offset +Info +Type +Sym.* Value +Symbol's Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_JUMP_SLOT +0+ +bar \+ 0
diff --git a/ld/testsuite/ld-x86-64/pr28387.d b/ld/testsuite/ld-x86-64/pr28387.d
new file mode 100644
index 0000000..07df0fb
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr28387.d
@@ -0,0 +1,35 @@
+#as: --64
+#ld: -shared -melf_x86_64 -z nocombreloc -z nomark-plt -z noseparate-code -z max-page-size=0x200000 --no-ld-generated-unwind-info --hash-style=sysv
+#readelf: -d -r -S --wide
+
+There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+:
+
+Section Headers:
+ +\[Nr\] Name +Type +Address +Off +Size +ES Flg Lk Inf Al
+#...
+ +\[[ 0-9]+\] .rela.data +RELA +0+1b8 0+1b8 0+18 18 +AI +2 +12 +8
+ +\[[ 0-9]+\] .rela.tls +RELA +0+1d0 0+1d0 0+18 18 +AI +2 +11 +8
+ +\[[ 0-9]+\] .rela.plt +RELA +0+1e8 0+1e8 0+18 18 +AI +2 +11 +8
+#...
+Dynamic section at offset 0x[0-9a-f]+ contains [0-9]+ entries:
+ +Tag +Type +Name/Value
+#...
+ 0x[0-9a-f]+ +\(PLTRELSZ\) +24 \(bytes\)
+ 0x[0-9a-f]+ +\(PLTREL\) +RELA
+ 0x[0-9a-f]+ +\(JMPREL\) +0x1e8
+#...
+ 0x[0-9a-f]+ +\(RELA\) +0x1b8
+ 0x[0-9a-f]+ +\(RELASZ\) +48 \(bytes\)
+ 0x[0-9a-f]+ +\(RELAENT\) +24 \(bytes\)
+#...
+Relocation section '.rela.data' at offset 0x[0-9a-f]+ contains 1 entry:
+ +Offset +Info +Type +Sym.* Value +Symbol's Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_64 +0+ +foo \+ 0
+
+Relocation section '.rela.tls' at offset 0x[0-9a-f]+ contains 1 entry:
+ +Offset +Info +Type +Sym.* Value +Symbol's Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_TLSDESC +0+ +foo \+ 0
+
+Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entry:
+ +Offset +Info +Type +Sym.* Value +Symbol's Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_JUMP_SLOT +0+ +bar \+ 0
diff --git a/ld/testsuite/ld-x86-64/pr28387.s b/ld/testsuite/ld-x86-64/pr28387.s
new file mode 100644
index 0000000..bbfa7b5
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr28387.s
@@ -0,0 +1,11 @@
+ .text
+ .globl main
+ .type main, @function
+main:
+ leaq foo@TLSDESC(%rip), %rax
+ call *foo@TLSCALL(%rax)
+ call bar@PLT
+ ret
+ .data
+ .dc.a foo
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/pr33260-2-x32.d b/ld/testsuite/ld-x86-64/pr33260-2-x32.d
new file mode 100644
index 0000000..383129a
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr33260-2-x32.d
@@ -0,0 +1,6 @@
+#source: pr33260-2.s
+#as: -mrelax-relocations=yes --x32
+#ld: -melf32_x86_64 -shared
+#readelf: -r --wide
+
+There are no relocations in this file.
diff --git a/ld/testsuite/ld-x86-64/pr33260-2.d b/ld/testsuite/ld-x86-64/pr33260-2.d
new file mode 100644
index 0000000..7f237c8
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr33260-2.d
@@ -0,0 +1,6 @@
+#source: pr33260-2.s
+#as: -mrelax-relocations=yes --64
+#ld: -melf_x86_64 -shared
+#readelf: -r --wide
+
+There are no relocations in this file.
diff --git a/ld/testsuite/ld-x86-64/pr33260-2.s b/ld/testsuite/ld-x86-64/pr33260-2.s
new file mode 100644
index 0000000..061137d
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr33260-2.s
@@ -0,0 +1,19 @@
+ .text
+ .p2align 4
+ .globl my_func
+ .type my_func, @function
+my_func:
+ .cfi_startproc
+ movq my_data@GOTPCREL(%rip), %rax
+ ret
+ .cfi_endproc
+ .size my_func, .-my_func
+ .protected my_data
+ .globl my_data
+ .bss
+ .align 4
+ .type my_data, @object
+ .size my_data, 4
+my_data:
+ .zero 4
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/pr33260-x32.d b/ld/testsuite/ld-x86-64/pr33260-x32.d
new file mode 100644
index 0000000..42088fb
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr33260-x32.d
@@ -0,0 +1,9 @@
+#source: pr33260.s
+#as: -mrelax-relocations=yes --x32
+#ld: -melf32_x86_64 -shared
+#readelf: -r --wide
+
+Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 2 entries:
+ +Offset +Info +Type +Sym.* Value +Symbol's Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_RELATIVE +[0-9a-f]+
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_RELATIVE +[0-9a-f]+
diff --git a/ld/testsuite/ld-x86-64/pr33260.d b/ld/testsuite/ld-x86-64/pr33260.d
new file mode 100644
index 0000000..18b5472
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr33260.d
@@ -0,0 +1,9 @@
+#source: pr33260.s
+#as: -mrelax-relocations=yes --64 -defsym __x86_64__=1
+#ld: -melf_x86_64 -shared
+#readelf: -r --wide
+
+Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 2 entries:
+ +Offset +Info +Type +Sym.* Value +Symbol's Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_RELATIVE +[0-9a-f]+
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_RELATIVE +[0-9a-f]+
diff --git a/ld/testsuite/ld-x86-64/pr33260.s b/ld/testsuite/ld-x86-64/pr33260.s
new file mode 100644
index 0000000..e48c3ce
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr33260.s
@@ -0,0 +1,40 @@
+ .text
+ .p2align 4
+ .globl my_func
+ .protected my_func
+ .type my_func, @function
+my_func:
+ .cfi_startproc
+ ret
+ .cfi_endproc
+ .size my_func, .-my_func
+ .p2align 4
+ .globl f
+ .type f, @function
+f:
+ .cfi_startproc
+ leaq vtable(%rip), %rax
+ ret
+ .cfi_endproc
+ .size f, .-f
+ .section .data.rel,"aw"
+ .type vtable, @object
+.ifdef __x86_64__
+ .align 16
+ .size vtable, 16
+.else
+ .align 8
+ .size vtable, 8
+.endif
+vtable:
+ .dc.a my_func
+ .dc.a my_data
+ .protected my_data
+ .globl my_data
+ .bss
+ .align 4
+ .type my_data, @object
+ .size my_data, 4
+my_data:
+ .zero 4
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/pr33292-x32.d b/ld/testsuite/ld-x86-64/pr33292-x32.d
new file mode 100644
index 0000000..0d6cf81
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr33292-x32.d
@@ -0,0 +1,10 @@
+#source: pr33292.s
+#as: --x32 -mx86-used-note=yes
+#ld: -shared -m elf32_x86_64 -z noindirect-extern-access
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+[ ]+Owner[ ]+Data size[ ]+Description
+ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/pr33292.d b/ld/testsuite/ld-x86-64/pr33292.d
new file mode 100644
index 0000000..456b849
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr33292.d
@@ -0,0 +1,9 @@
+#as: --64 -defsym __64_bit__=1 -mx86-used-note=yes
+#ld: -shared -m elf_x86_64 -z noindirect-extern-access
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+[ ]+Owner[ ]+Data size[ ]+Description
+ GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
+ Properties: x86 feature used: x86
+ x86 ISA used: x86-64-baseline
diff --git a/ld/testsuite/ld-x86-64/pr33292.s b/ld/testsuite/ld-x86-64/pr33292.s
new file mode 100644
index 0000000..8d14e88
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr33292.s
@@ -0,0 +1,34 @@
+ .section ".note.gnu.property", "a"
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+ .long 1f - 0f /* name length */
+ .long 5f - 2f /* data length */
+ .long 5 /* note type */
+0: .asciz "GNU" /* vendor name */
+1:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+2: .long 0xb0008000 /* pr_type. */
+ .long 4f - 3f /* pr_datasz. */
+3:
+ .long 0x1
+4:
+.ifdef __64_bit__
+ .p2align 3
+.else
+ .p2align 2
+.endif
+5:
+
+ .text
+ .globl foo
+ .type foo, @function
+foo:
+ ret
+ .section .note.GNU-stack
diff --git a/ld/testsuite/ld-x86-64/tls-le-pic-1-x32.d b/ld/testsuite/ld-x86-64/tls-le-pic-1-x32.d
new file mode 100644
index 0000000..29df9ec
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/tls-le-pic-1-x32.d
@@ -0,0 +1,4 @@
+#source: tls-le-pic-1.s
+#as: --x32
+#ld: -shared -melf32_x86_64
+#error: .*: relocation R_X86_64_TPOFF32 against symbol `foo' can not be used when making a shared object; local-exec is incompatible with -shared
diff --git a/ld/testsuite/ld-x86-64/tls-le-pic-1.d b/ld/testsuite/ld-x86-64/tls-le-pic-1.d
new file mode 100644
index 0000000..9726c5c
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/tls-le-pic-1.d
@@ -0,0 +1,3 @@
+#as: --64
+#ld: -shared -melf_x86_64
+#error: .*: relocation R_X86_64_TPOFF32 against symbol `foo' can not be used when making a shared object; local-exec is incompatible with -shared
diff --git a/ld/testsuite/ld-x86-64/tls-le-pic-1.s b/ld/testsuite/ld-x86-64/tls-le-pic-1.s
new file mode 100644
index 0000000..ffc8e63
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/tls-le-pic-1.s
@@ -0,0 +1,17 @@
+ .text
+ .p2align 4
+ .globl func
+ .type func, @function
+func:
+ movq %fs:0, %rax
+ addq $foo@tpoff, %rax
+ ret
+ .size func, .-func
+ .section .tbss,"awT",@nobits
+ .align 4
+ .globl foo
+ .type foo, @object
+ .size foo, 4
+foo:
+ .zero 4
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/tls-le-pic-2-x32.d b/ld/testsuite/ld-x86-64/tls-le-pic-2-x32.d
new file mode 100644
index 0000000..b4ebf5a
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/tls-le-pic-2-x32.d
@@ -0,0 +1,4 @@
+#source: tls-le-pic-2.s
+#as: --x32
+#ld: -shared -melf32_x86_64
+#error: .*: relocation R_X86_64_TPOFF32 against undefined symbol `foo' can not be used when making a shared object; local-exec is incompatible with -shared
diff --git a/ld/testsuite/ld-x86-64/tls-le-pic-2.d b/ld/testsuite/ld-x86-64/tls-le-pic-2.d
new file mode 100644
index 0000000..90ca634
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/tls-le-pic-2.d
@@ -0,0 +1,3 @@
+#as: --64
+#ld: -shared -melf_x86_64
+#error: .*: relocation R_X86_64_TPOFF32 against undefined symbol `foo' can not be used when making a shared object; local-exec is incompatible with -shared
diff --git a/ld/testsuite/ld-x86-64/tls-le-pic-2.s b/ld/testsuite/ld-x86-64/tls-le-pic-2.s
new file mode 100644
index 0000000..ad930db
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/tls-le-pic-2.s
@@ -0,0 +1,10 @@
+ .text
+ .p2align 4
+ .globl func
+ .type func, @function
+func:
+ movq %fs:0, %rax
+ addq $foo@tpoff, %rax
+ ret
+ .size func, .-func
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/tls-le-pic-3-x32.d b/ld/testsuite/ld-x86-64/tls-le-pic-3-x32.d
new file mode 100644
index 0000000..ed832e4
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/tls-le-pic-3-x32.d
@@ -0,0 +1,4 @@
+#source: tls-le-pic-3.s
+#as: --x32
+#ld: -shared -melf32_x86_64
+#error: .*: relocation R_X86_64_TPOFF32 against `foo' can not be used when making a shared object; local-exec is incompatible with -shared
diff --git a/ld/testsuite/ld-x86-64/tls-le-pic-3.d b/ld/testsuite/ld-x86-64/tls-le-pic-3.d
new file mode 100644
index 0000000..8497067
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/tls-le-pic-3.d
@@ -0,0 +1,3 @@
+#as: --64
+#ld: -shared -melf_x86_64
+#error: .*: relocation R_X86_64_TPOFF32 against `foo' can not be used when making a shared object; local-exec is incompatible with -shared
diff --git a/ld/testsuite/ld-x86-64/tls-le-pic-3.s b/ld/testsuite/ld-x86-64/tls-le-pic-3.s
new file mode 100644
index 0000000..6e213fd
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/tls-le-pic-3.s
@@ -0,0 +1,16 @@
+ .text
+ .p2align 4
+ .globl func
+ .type func, @function
+func:
+ movq %fs:0, %rax
+ addq $foo@tpoff, %rax
+ ret
+ .size func, .-func
+ .section .tbss,"awT",@nobits
+ .align 4
+ .type foo, @object
+ .size foo, 4
+foo:
+ .zero 4
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/tlsdesc.pd b/ld/testsuite/ld-x86-64/tlsdesc.pd
index 490fc90..7e124ea 100644
--- a/ld/testsuite/ld-x86-64/tlsdesc.pd
+++ b/ld/testsuite/ld-x86-64/tlsdesc.pd
@@ -10,10 +10,10 @@
Disassembly of section .plt:
[0-9a-f]+ <.plt>:
- [0-9a-f]+: ff 35 .. .. 20 00 push .*\(%rip\) # 201358 <_GLOBAL_OFFSET_TABLE_\+0x8>
- [0-9a-f]+: ff 25 .. .. 20 00 jmp \*.*\(%rip\) # 201360 <_GLOBAL_OFFSET_TABLE_\+0x10>
+ [0-9a-f]+: ff 35 .. .. 20 00 push .*\(%rip\) # 201328 <_GLOBAL_OFFSET_TABLE_\+0x8>
+ [0-9a-f]+: ff 25 .. .. 20 00 jmp \*.*\(%rip\) # 201330 <_GLOBAL_OFFSET_TABLE_\+0x10>
[0-9a-f]+: 0f 1f 40 00 nopl 0x0\(%rax\)
[0-9a-f]+: f3 0f 1e fa endbr64
- [0-9a-f]+: ff 35 .. .. 20 00 push .*\(%rip\) # 201358 <_GLOBAL_OFFSET_TABLE_\+0x8>
- [0-9a-f]+: ff 25 .. .. 20 00 jmp \*.*\(%rip\) # 201348 <.*>
+ [0-9a-f]+: ff 35 .. .. 20 00 push .*\(%rip\) # 201328 <_GLOBAL_OFFSET_TABLE_\+0x8>
+ [0-9a-f]+: ff 25 .. .. 20 00 jmp \*.*\(%rip\) # 201318 <.*>
diff --git a/ld/testsuite/ld-x86-64/tlsdesc.rd b/ld/testsuite/ld-x86-64/tlsdesc.rd
index 98bda5b..14e945a 100644
--- a/ld/testsuite/ld-x86-64/tlsdesc.rd
+++ b/ld/testsuite/ld-x86-64/tlsdesc.rd
@@ -14,14 +14,13 @@ Section Headers:
+\[[ 0-9]+\] .dynsym +.*
+\[[ 0-9]+\] .dynstr +.*
+\[[ 0-9]+\] .rela.dyn +.*
- +\[[ 0-9]+\] .rela.plt +.*
+\[[ 0-9]+\] .plt +PROGBITS +0+3b0 0+3b0 0+20 10 +AX +0 +0 +(4|16)
+\[[ 0-9]+\] .text +PROGBITS +0+1000 0+1000 0+153 00 +AX +0 +0 4096
+\[[ 0-9]+\] .tdata +PROGBITS +0+201153 0+1153 0+60 00 WAT +0 +0 +1
+\[[ 0-9]+\] .tbss +NOBITS +0+2011b3 0+11b3 0+20 00 WAT +0 +0 +1
- +\[[ 0-9]+\] .dynamic +DYNAMIC +0+2011b8 0+11b8 0+150 10 +WA +3 +0 +8
- +\[[ 0-9]+\] .got +PROGBITS +0+201308 0+1308 0+48 08 +WA +0 +0 +8
- +\[[ 0-9]+\] .got.plt +PROGBITS +0+201350 0+1350 0+68 08 +WA +0 +0 +8
+ +\[[ 0-9]+\] .dynamic +DYNAMIC +0+2011b8 0+11b8 0+120 10 +WA +3 +0 +8
+ +\[[ 0-9]+\] .got +PROGBITS +0+2012d8 0+12d8 0+48 08 +WA +0 +0 +8
+ +\[[ 0-9]+\] .got.plt +PROGBITS +0+201320 0+1320 0+68 08 +WA +0 +0 +8
+\[[ 0-9]+\] .symtab +.*
+\[[ 0-9]+\] .strtab +.*
+\[[ 0-9]+\] .shstrtab +.*
@@ -35,18 +34,18 @@ There are [0-9]+ program headers, starting at offset [0-9]+
Program Headers:
+Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
+LOAD +0x0+ 0x0+ 0x0+ 0x[0-9a-f]+ 0x[0-9a-f]+ R E 0x200000
- +LOAD +0x0+1153 0x0+201153 0x0+201153 0x0+265 0x0+265 RW +0x200000
- +DYNAMIC +0x0+11b8 0x0+2011b8 0x0+2011b8 0x0+150 0x0+150 RW +0x8
+ +LOAD +0x0+1153 0x0+201153 0x0+201153 0x0+235 0x0+235 RW +0x200000
+ +DYNAMIC +0x0+11b8 0x0+2011b8 0x0+2011b8 0x0+120 0x0+120 RW +0x8
+TLS +0x0+1153 0x0+201153 0x0+201153 0x0+60 0x0+80 R +0x1
Section to Segment mapping:
+Segment Sections...
- +00 +.hash .dynsym .dynstr .rela.dyn .rela.plt .plt .text *
+ +00 +.hash .dynsym .dynstr .rela.dyn .plt .text *
+01 +.tdata .dynamic .got .got.plt *
+02 +.dynamic *
+03 +.tdata .tbss *
-Dynamic section at offset 0x[0-9a-f]+ contains 16 entries:
+Dynamic section at offset 0x[0-9a-f]+ contains 13 entries:
+Tag +Type +Name/Value
0x[0-9a-f]+ +\(HASH\).*
0x[0-9a-f]+ +\(STRTAB\).*
@@ -54,87 +53,81 @@ Dynamic section at offset 0x[0-9a-f]+ contains 16 entries:
0x[0-9a-f]+ +\(STRSZ\).*
0x[0-9a-f]+ +\(SYMENT\).*
0x[0-9a-f]+ +\(PLTGOT\).*
- 0x[0-9a-f]+ +\(PLTRELSZ\).*
- 0x[0-9a-f]+ +\(PLTREL\).*
- 0x[0-9a-f]+ +\(JMPREL\).*
0x[0-9a-f]+ +\(TLSDESC_PLT\) +0x3c0
- 0x[0-9a-f]+ +\(TLSDESC_GOT\) +0x201348
+ 0x[0-9a-f]+ +\(TLSDESC_GOT\) +0x201318
0x[0-9a-f]+ +\(RELA\).*
0x[0-9a-f]+ +\(RELASZ\).*
0x[0-9a-f]+ +\(RELAENT\).*
0x[0-9a-f]+ +\(FLAGS\).*
0x[0-9a-f]+ +\(NULL\).*
-Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 8 entries:
+Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 13 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
-0+201308 +[0-9a-f]+ R_X86_64_TPOFF64 +24
-0+201310 +[0-9a-f]+ R_X86_64_TPOFF64 +30
-0+201318 +[0-9a-f]+ R_X86_64_TPOFF64 +64
-0+201328 +[0-9a-f]+ R_X86_64_TPOFF64 +50
-0+201330 +[0-9a-f]+ R_X86_64_TPOFF64 +70
-0+201340 +[0-9a-f]+ R_X86_64_TPOFF64 +44
-0+201320 +[0-9a-f]+ R_X86_64_TPOFF64 +0+10 sg5 \+ 0
-0+201338 +[0-9a-f]+ R_X86_64_TPOFF64 +0+4 sg2 \+ 0
-
-Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 5 entries:
- +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
-0+201398 +[0-9a-f]+ R_X86_64_TLSDESC +0+ sg1 \+ 0
-0+201368 +[0-9a-f]+ R_X86_64_TLSDESC +20
-0+2013a8 +[0-9a-f]+ R_X86_64_TLSDESC +40
-0+201378 +[0-9a-f]+ R_X86_64_TLSDESC +60
-0+201388 +[0-9a-f]+ R_X86_64_TLSDESC +0
+0+2012d8 +[0-9a-f]+ R_X86_64_TPOFF64 +24
+0+2012e0 +[0-9a-f]+ R_X86_64_TPOFF64 +30
+0+2012e8 +[0-9a-f]+ R_X86_64_TPOFF64 +64
+0+2012f8 +[0-9a-f]+ R_X86_64_TPOFF64 +50
+0+201300 +[0-9a-f]+ R_X86_64_TPOFF64 +70
+0+201310 +[0-9a-f]+ R_X86_64_TPOFF64 +44
+0+201338 +[0-9a-f]+ R_X86_64_TLSDESC +20
+0+201348 +[0-9a-f]+ R_X86_64_TLSDESC +60
+0+201358 +[0-9a-f]+ R_X86_64_TLSDESC +0
+0+201378 +[0-9a-f]+ R_X86_64_TLSDESC +40
+0+2012f0 +[0-9a-f]+ R_X86_64_TPOFF64 +0+10 sg5 \+ 0
+0+201308 +[0-9a-f]+ R_X86_64_TPOFF64 +0+4 sg2 \+ 0
+0+201368 +[0-9a-f]+ R_X86_64_TLSDESC +0+ sg1 \+ 0
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
+[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND *
- +[0-9]+: 0+1c +0 +TLS +GLOBAL +DEFAULT +8 sg8
- +[0-9]+: 0+8 +0 +TLS +GLOBAL +DEFAULT +8 sg3
- +[0-9]+: 0+c +0 +TLS +GLOBAL +DEFAULT +8 sg4
- +[0-9]+: 0+10 +0 +TLS +GLOBAL +DEFAULT +8 sg5
- +[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +8 sg1
- +[0-9]+: 0+1000 +0 +FUNC +GLOBAL +DEFAULT +7 fn1
- +[0-9]+: 0+4 +0 +TLS +GLOBAL +DEFAULT +8 sg2
- +[0-9]+: 0+14 +0 +TLS +GLOBAL +DEFAULT +8 sg6
- +[0-9]+: 0+18 +0 +TLS +GLOBAL +DEFAULT +8 sg7
+ +[0-9]+: 0+1c +0 +TLS +GLOBAL +DEFAULT +7 sg8
+ +[0-9]+: 0+8 +0 +TLS +GLOBAL +DEFAULT +7 sg3
+ +[0-9]+: 0+c +0 +TLS +GLOBAL +DEFAULT +7 sg4
+ +[0-9]+: 0+10 +0 +TLS +GLOBAL +DEFAULT +7 sg5
+ +[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +7 sg1
+ +[0-9]+: 0+1000 +0 +FUNC +GLOBAL +DEFAULT +6 fn1
+ +[0-9]+: 0+4 +0 +TLS +GLOBAL +DEFAULT +7 sg2
+ +[0-9]+: 0+14 +0 +TLS +GLOBAL +DEFAULT +7 sg6
+ +[0-9]+: 0+18 +0 +TLS +GLOBAL +DEFAULT +7 sg7
Symbol table '\.symtab' contains [0-9]+ entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
+[0-9]+: 0+ +0 +NOTYPE +LOCAL +DEFAULT +UND *
.* FILE +LOCAL +DEFAULT +ABS .*tlsdesc.o
- +[0-9]+: 0+20 +0 +TLS +LOCAL +DEFAULT +8 sl1
- +[0-9]+: 0+24 +0 +TLS +LOCAL +DEFAULT +8 sl2
- +[0-9]+: 0+28 +0 +TLS +LOCAL +DEFAULT +8 sl3
- +[0-9]+: 0+2c +0 +TLS +LOCAL +DEFAULT +8 sl4
- +[0-9]+: 0+30 +0 +TLS +LOCAL +DEFAULT +8 sl5
- +[0-9]+: 0+34 +0 +TLS +LOCAL +DEFAULT +8 sl6
- +[0-9]+: 0+38 +0 +TLS +LOCAL +DEFAULT +8 sl7
- +[0-9]+: 0+3c +0 +TLS +LOCAL +DEFAULT +8 sl8
+ +[0-9]+: 0+20 +0 +TLS +LOCAL +DEFAULT +7 sl1
+ +[0-9]+: 0+24 +0 +TLS +LOCAL +DEFAULT +7 sl2
+ +[0-9]+: 0+28 +0 +TLS +LOCAL +DEFAULT +7 sl3
+ +[0-9]+: 0+2c +0 +TLS +LOCAL +DEFAULT +7 sl4
+ +[0-9]+: 0+30 +0 +TLS +LOCAL +DEFAULT +7 sl5
+ +[0-9]+: 0+34 +0 +TLS +LOCAL +DEFAULT +7 sl6
+ +[0-9]+: 0+38 +0 +TLS +LOCAL +DEFAULT +7 sl7
+ +[0-9]+: 0+3c +0 +TLS +LOCAL +DEFAULT +7 sl8
.* FILE +LOCAL +DEFAULT +ABS
- +[0-9]+: 0+60 +0 +TLS +LOCAL +DEFAULT +9 sH1
- +[0-9]+: 0+ +0 +TLS +LOCAL +DEFAULT +8 _TLS_MODULE_BASE_
- +[0-9]+: 0+2011b8 +0 +OBJECT +LOCAL +DEFAULT +10 _DYNAMIC
- +[0-9]+: 0+48 +0 +TLS +LOCAL +DEFAULT +8 sh3
- +[0-9]+: 0+64 +0 +TLS +LOCAL +DEFAULT +9 sH2
- +[0-9]+: 0+78 +0 +TLS +LOCAL +DEFAULT +9 sH7
- +[0-9]+: 0+58 +0 +TLS +LOCAL +DEFAULT +8 sh7
- +[0-9]+: 0+5c +0 +TLS +LOCAL +DEFAULT +8 sh8
- +[0-9]+: 0+6c +0 +TLS +LOCAL +DEFAULT +9 sH4
- +[0-9]+: 0+4c +0 +TLS +LOCAL +DEFAULT +8 sh4
- +[0-9]+: 0+68 +0 +TLS +LOCAL +DEFAULT +9 sH3
- +[0-9]+: 0+50 +0 +TLS +LOCAL +DEFAULT +8 sh5
- +[0-9]+: 0+70 +0 +TLS +LOCAL +DEFAULT +9 sH5
- +[0-9]+: 0+74 +0 +TLS +LOCAL +DEFAULT +9 sH6
- +[0-9]+: 0+7c +0 +TLS +LOCAL +DEFAULT +9 sH8
- +[0-9]+: 0+40 +0 +TLS +LOCAL +DEFAULT +8 sh1
- +[0-9]+: 0+201350 +0 +OBJECT +LOCAL +DEFAULT +12 _GLOBAL_OFFSET_TABLE_
- +[0-9]+: 0+44 +0 +TLS +LOCAL +DEFAULT +8 sh2
- +[0-9]+: 0+54 +0 +TLS +LOCAL +DEFAULT +8 sh6
- +[0-9]+: 0+1c +0 +TLS +GLOBAL +DEFAULT +8 sg8
- +[0-9]+: 0+8 +0 +TLS +GLOBAL +DEFAULT +8 sg3
- +[0-9]+: 0+c +0 +TLS +GLOBAL +DEFAULT +8 sg4
- +[0-9]+: 0+10 +0 +TLS +GLOBAL +DEFAULT +8 sg5
- +[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +8 sg1
- +[0-9]+: 0+1000 +0 +FUNC +GLOBAL +DEFAULT +7 fn1
- +[0-9]+: 0+4 +0 +TLS +GLOBAL +DEFAULT +8 sg2
- +[0-9]+: 0+14 +0 +TLS +GLOBAL +DEFAULT +8 sg6
- +[0-9]+: 0+18 +0 +TLS +GLOBAL +DEFAULT +8 sg7
+ +[0-9]+: 0+60 +0 +TLS +LOCAL +DEFAULT +8 sH1
+ +[0-9]+: 0+ +0 +TLS +LOCAL +DEFAULT +7 _TLS_MODULE_BASE_
+ +[0-9]+: 0+2011b8 +0 +OBJECT +LOCAL +DEFAULT +9 _DYNAMIC
+ +[0-9]+: 0+48 +0 +TLS +LOCAL +DEFAULT +7 sh3
+ +[0-9]+: 0+64 +0 +TLS +LOCAL +DEFAULT +8 sH2
+ +[0-9]+: 0+78 +0 +TLS +LOCAL +DEFAULT +8 sH7
+ +[0-9]+: 0+58 +0 +TLS +LOCAL +DEFAULT +7 sh7
+ +[0-9]+: 0+5c +0 +TLS +LOCAL +DEFAULT +7 sh8
+ +[0-9]+: 0+6c +0 +TLS +LOCAL +DEFAULT +8 sH4
+ +[0-9]+: 0+4c +0 +TLS +LOCAL +DEFAULT +7 sh4
+ +[0-9]+: 0+68 +0 +TLS +LOCAL +DEFAULT +8 sH3
+ +[0-9]+: 0+50 +0 +TLS +LOCAL +DEFAULT +7 sh5
+ +[0-9]+: 0+70 +0 +TLS +LOCAL +DEFAULT +8 sH5
+ +[0-9]+: 0+74 +0 +TLS +LOCAL +DEFAULT +8 sH6
+ +[0-9]+: 0+7c +0 +TLS +LOCAL +DEFAULT +8 sH8
+ +[0-9]+: 0+40 +0 +TLS +LOCAL +DEFAULT +7 sh1
+ +[0-9]+: 0+201320 +0 +OBJECT +LOCAL +DEFAULT +11 _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: 0+44 +0 +TLS +LOCAL +DEFAULT +7 sh2
+ +[0-9]+: 0+54 +0 +TLS +LOCAL +DEFAULT +7 sh6
+ +[0-9]+: 0+1c +0 +TLS +GLOBAL +DEFAULT +7 sg8
+ +[0-9]+: 0+8 +0 +TLS +GLOBAL +DEFAULT +7 sg3
+ +[0-9]+: 0+c +0 +TLS +GLOBAL +DEFAULT +7 sg4
+ +[0-9]+: 0+10 +0 +TLS +GLOBAL +DEFAULT +7 sg5
+ +[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +7 sg1
+ +[0-9]+: 0+1000 +0 +FUNC +GLOBAL +DEFAULT +6 fn1
+ +[0-9]+: 0+4 +0 +TLS +GLOBAL +DEFAULT +7 sg2
+ +[0-9]+: 0+14 +0 +TLS +GLOBAL +DEFAULT +7 sg6
+ +[0-9]+: 0+18 +0 +TLS +GLOBAL +DEFAULT +7 sg7
diff --git a/ld/testsuite/ld-x86-64/tlsdesc2.d b/ld/testsuite/ld-x86-64/tlsdesc2.d
index 8679757..d0f5ebf 100644
--- a/ld/testsuite/ld-x86-64/tlsdesc2.d
+++ b/ld/testsuite/ld-x86-64/tlsdesc2.d
@@ -3,8 +3,8 @@
#ld: -melf_x86_64 -shared -z now
#readelf: -d --wide
-#...
+#failif
.*\(PLTRELSZ\).*
.*\(PLTREL\).*
.*\(JMPREL\).*
-#pass
+#...
diff --git a/ld/testsuite/ld-x86-64/tlsgdesc.rd b/ld/testsuite/ld-x86-64/tlsgdesc.rd
index ca8f19b..ef15ce9 100644
--- a/ld/testsuite/ld-x86-64/tlsgdesc.rd
+++ b/ld/testsuite/ld-x86-64/tlsgdesc.rd
@@ -41,22 +41,22 @@ Program Headers:
+01 +.dynamic .got .got.plt *
+02 +.dynamic *
-Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 8 entries:
+Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 10 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
[0-9a-f]+ +0+100000012 R_X86_64_TPOFF64 +0+ sG3 \+ 0
[0-9a-f]+ +0+200000012 R_X86_64_TPOFF64 +0+ sG5 \+ 0
[0-9a-f]+ +0+300000010 R_X86_64_DTPMOD64 +0+ sG2 \+ 0
[0-9a-f]+ +0+300000011 R_X86_64_DTPOFF64 +0+ sG2 \+ 0
+[0-9a-f]+ +0+300000024 R_X86_64_TLSDESC +0+ sG2 \+ 0
[0-9a-f]+ +0+400000012 R_X86_64_TPOFF64 +0+ sG4 \+ 0
[0-9a-f]+ +0+600000012 R_X86_64_TPOFF64 +0+ sG6 \+ 0
[0-9a-f]+ +0+800000010 R_X86_64_DTPMOD64 +0+ sG1 \+ 0
[0-9a-f]+ +0+800000011 R_X86_64_DTPOFF64 +0+ sG1 \+ 0
+[0-9a-f]+ +0+800000024 R_X86_64_TLSDESC +0+ sG1 \+ 0
-Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 3 entries:
+Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entry:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
[0-9a-f]+ +0+500000007 R_X86_64_JUMP_SLOT +0+ __tls_get_addr \+ 0
-[0-9a-f]+ +0+800000024 R_X86_64_TLSDESC +0+ sG1 \+ 0
-[0-9a-f]+ +0+300000024 R_X86_64_TLSDESC +0+ sG2 \+ 0
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
diff --git a/ld/testsuite/ld-x86-64/x86-64-64-export-class.rd b/ld/testsuite/ld-x86-64/x86-64-64-export-class.rd
index 308e307..4a0bfa1 100644
--- a/ld/testsuite/ld-x86-64/x86-64-64-export-class.rd
+++ b/ld/testsuite/ld-x86-64/x86-64-64-export-class.rd
@@ -1,11 +1,11 @@
Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains [0-9]+ entries:
* Offset * Info * Type * Sym\. *Value * Sym\. * Name * \+ * Addend
+000012340000 000000000008 R_X86_64_RELATIVE 123400a0
000012340010 000000000008 R_X86_64_RELATIVE 123400a0
000012340020 000000000008 R_X86_64_RELATIVE 123400a0
+000012340040 000000000008 R_X86_64_RELATIVE 123400a0
+000012340050 000000000008 R_X86_64_RELATIVE 123400a0
000012340060 000000000008 R_X86_64_RELATIVE 123400a0
000012340070 000000000008 R_X86_64_RELATIVE 123400a0
000012340080 000000000008 R_X86_64_RELATIVE 123400a0
000012340090 000000000008 R_X86_64_RELATIVE 123400a0
-000012340000 [0-9a-f]+00000001 R_X86_64_64 00000000123400a0 protected_baz \+ 0
-000012340040 [0-9a-f]+00000001 R_X86_64_64 00000000123400a0 protected_foo \+ 0
-000012340050 [0-9a-f]+00000001 R_X86_64_64 00000000123400a0 protected_bar \+ 0
diff --git a/ld/testsuite/ld-x86-64/x86-64-x32-export-class.rd b/ld/testsuite/ld-x86-64/x86-64-x32-export-class.rd
index 4ea93ba..5018229 100644
--- a/ld/testsuite/ld-x86-64/x86-64-x32-export-class.rd
+++ b/ld/testsuite/ld-x86-64/x86-64-x32-export-class.rd
@@ -1,11 +1,11 @@
Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains [0-9]+ entries:
* Offset * Info * Type * Sym\. *Value * Sym\. * Name * \+ * Addend
+12340000 00000008 R_X86_64_RELATIVE 123400a0
12340010 00000008 R_X86_64_RELATIVE 123400a0
12340020 00000008 R_X86_64_RELATIVE 123400a0
+12340040 00000008 R_X86_64_RELATIVE 123400a0
+12340050 00000008 R_X86_64_RELATIVE 123400a0
12340060 00000008 R_X86_64_RELATIVE 123400a0
12340070 00000008 R_X86_64_RELATIVE 123400a0
12340080 00000008 R_X86_64_RELATIVE 123400a0
12340090 00000008 R_X86_64_RELATIVE 123400a0
-12340000 [0-9a-f]+0a R_X86_64_32 123400a0 protected_baz \+ 0
-12340040 [0-9a-f]+0a R_X86_64_32 123400a0 protected_foo \+ 0
-12340050 [0-9a-f]+0a R_X86_64_32 123400a0 protected_bar \+ 0
diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
index 3d873a7..f04ae92 100644
--- a/ld/testsuite/ld-x86-64/x86-64.exp
+++ b/ld/testsuite/ld-x86-64/x86-64.exp
@@ -534,6 +534,12 @@ run_dump_test "dt-relr-1a"
run_dump_test "dt-relr-1a-x32"
run_dump_test "dt-relr-1b"
run_dump_test "dt-relr-1b-x32"
+run_dump_test "dt-relr-1c"
+run_dump_test "dt-relr-1c-x32"
+run_dump_test "dt-relr-1d"
+run_dump_test "dt-relr-1d-x32"
+run_dump_test "dt-relr-2"
+run_dump_test "dt-relr-2-x32"
run_dump_test "pr30787"
run_dump_test "pr31047"
run_dump_test "pr31047-x32"
@@ -564,6 +570,20 @@ run_dump_test "pr32591-3-x32"
run_dump_test "pr32591-4"
run_dump_test "pr32591-4-x32"
run_dump_test "pr32809"
+run_dump_test "pr33260"
+run_dump_test "pr33260-x32"
+run_dump_test "pr33260-2"
+run_dump_test "pr33260-2-x32"
+run_dump_test "pr33292"
+run_dump_test "pr33292-x32"
+run_dump_test "pr28387"
+run_dump_test "pr28387-x32"
+run_dump_test "tls-le-pic-1"
+run_dump_test "tls-le-pic-1-x32"
+run_dump_test "tls-le-pic-2"
+run_dump_test "tls-le-pic-2-x32"
+run_dump_test "tls-le-pic-3"
+run_dump_test "tls-le-pic-3-x32"
if { ![skip_sframe_tests] } {
run_dump_test "sframe-simple-1"
@@ -1001,7 +1021,7 @@ if { [isnative] && [check_compiler_available] } {
[list \
"Build pr17689.so" \
"-shared" \
- "-fPIC -Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -fPIC -Wa,-mx86-used-note=yes" \
{ pr17689a.c } \
{} \
"pr17689.so" \
@@ -1009,7 +1029,7 @@ if { [isnative] && [check_compiler_available] } {
[list \
"Build pr17689now.so with -z now" \
"-shared -Wl,-z,now" \
- "-fPIC -Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -fPIC -Wa,-mx86-used-note=yes" \
{ pr17689a.c } \
{{readelf {-Wr} pr17689now.rd}} \
"pr17689now.so" \
@@ -1017,30 +1037,30 @@ if { [isnative] && [check_compiler_available] } {
[list \
"Build pr17689b.o" \
"" \
- "-Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{ pr17689b.S } \
{} \
] \
[list \
"Build pr17689 with PIE without -fPIE" \
- "tmpdir/pr17689b.o tmpdir/pr17689.so -pie" \
- "-Wa,-mx86-used-note=yes" \
+ "tmpdir/pr17689b.o tmpdir/pr17689.so -pie -Wl,-z,noindirect-extern-access" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{ dummy.s } \
{{readelf {-Wr} pr17689.rd}} \
"pr17689" \
] \
[list \
"Build pr17689 with PIE -z now without -fPIE" \
- "tmpdir/pr17689b.o tmpdir/pr17689.so -pie -Wl,-z,now" \
- "-Wa,-mx86-used-note=yes" \
+ "tmpdir/pr17689b.o tmpdir/pr17689.so -pie -Wl,-z,now -Wl,-z,noindirect-extern-access" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{ dummy.s } \
{{readelf {-Wr} pr17689now.rd}} \
"pr17689now" \
] \
[list \
"Build pr17827 with PIE without -fPIE" \
- "-Wl,--as-needed tmpdir/pr17689b.o tmpdir/pr17689.so -pie" \
- "-Wa,-mx86-used-note=yes" \
+ "-Wl,--as-needed tmpdir/pr17689b.o tmpdir/pr17689.so -pie -Wl,-z,noindirect-extern-access" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{ dummy.s } \
{{readelf {-Wr} pr17827.rd}} \
"pr17827" \
@@ -1145,7 +1165,7 @@ if { [isnative] && [check_compiler_available] } {
[list \
"Build property 1 (.o)" \
"-r -nostdlib" \
- "-Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{pass.c property-no-copy.S} \
{{readelf {-n} property-1a.r}} \
"property-1.o" \
@@ -1169,7 +1189,7 @@ if { [isnative] && [check_compiler_available] } {
[list \
"Build property 2 (.o)" \
"-r -nostdlib" \
- "-Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{pass.c property-stack.S} \
{{readelf {-n} property-2a.r}} \
"property-2.o" \
@@ -1193,7 +1213,7 @@ if { [isnative] && [check_compiler_available] } {
[list \
"Build property-6.o" \
"-r -nostdlib" \
- "-Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{property-6b.c property-stack.S} \
{{readelf {-n} property-2a.r}} \
"property-6.o" \
@@ -1224,16 +1244,16 @@ if { [isnative] && [check_compiler_available] } {
] \
[list \
"Build pr22001-1.so" \
- "-shared" \
- "-fPIC -Wa,-mx86-used-note=yes" \
+ "-shared -Wl,-z,noindirect-extern-access" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -fPIC -Wa,-mx86-used-note=yes" \
{ pr22001-1a.c } \
{} \
"pr22001-1.so" \
] \
[list \
"Build pr22001-1a" \
- "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed,-z,notext tmpdir/pr22001-1.so" \
- "$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
+ "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed,-z,notext,-z,noindirect-extern-access tmpdir/pr22001-1.so" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS $NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
{ pr22001-1b.c } \
{{error_output "pr22001-1a.err"}} \
"pr22001-1a" \
@@ -1241,7 +1261,7 @@ if { [isnative] && [check_compiler_available] } {
[list \
"Build pr21997-1.so" \
"-shared" \
- "-Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{ property-stack.S property-no-copy.S pr21997-1a.S } \
{} \
"pr21997-1.so" \
@@ -1249,7 +1269,7 @@ if { [isnative] && [check_compiler_available] } {
[list \
"Build pr21997-1a" \
"$NOPIE_LDFLAGS -Wl,--no-as-needed,-z,notext tmpdir/pr21997-1.so" \
- "$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS $NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
{ pr21997-1b.c } \
{{error_output "pr21997-1a.err"}} \
"pr21997-1a" \
@@ -1395,7 +1415,7 @@ if { [isnative] && [check_compiler_available] } {
[list \
"Build protected-func-2 without PIE" \
"$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libprotected-func-2b.so" \
- "$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS $NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
{ protected-func-1b.c } \
{{error_output "pr28875-func.err"}} \
"protected-func-2" \
@@ -1411,7 +1431,7 @@ if { [isnative] && [check_compiler_available] } {
[list \
"Build protected-func-2a without PIE" \
"$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libprotected-func-2c.so" \
- "$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS $NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
{ protected-func-1b.c } \
{{error_output "pr28875-func.err"}} \
"protected-func-2a" \
@@ -1435,7 +1455,7 @@ if { [isnative] && [check_compiler_available] } {
[list \
"Build protected-data-1 without PIE" \
"$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libprotected-data-1b.so" \
- "$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS $NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
{ protected-data-1b.c } \
{{error_output "pr28875-data.err"}} \
"protected-data-1" \
@@ -1529,7 +1549,7 @@ if { [isnative] && [check_compiler_available] } {
{ pr22001-1c.c } \
"pr22001-1b" \
"pass.out" \
- "$NOPIE_CFLAGS" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS $NOPIE_CFLAGS" \
] \
[list \
"Run pr25416-5a (GDesc -> IE -maddress-mode=short)" \
@@ -1597,8 +1617,8 @@ if { [isnative] && [check_compiler_available] } {
run_cc_link_tests [list \
[list \
"Build pr22001-1b" \
- "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed,-z,notext tmpdir/pr22001-1.so" \
- "$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
+ "$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed,-z,notext,-z,noindirect-extern-access tmpdir/pr22001-1.so" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS $NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
{ pr22001-1c.c } \
{{error_output "pr22001-1b.err"}} \
"pr22001-1b" \
@@ -1606,14 +1626,14 @@ if { [isnative] && [check_compiler_available] } {
[list \
"Build pr21997-1b" \
"$NOPIE_LDFLAGS -Wl,--no-as-needed,-z,notext tmpdir/pr21997-1.so" \
- "$NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS $NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
{ pr21997-1c.c } \
{{error_output "pr21997-1b.err"}} \
"pr21997-1b" \
] \
[list \
"Build lam-u48.so" \
- "-shared -Wl,-z,lam-u48" \
+ "-shared -Wl,-z,lam-u48,-z,noindirect-extern-access" \
"" \
{dummy.s} \
{{readelf -n lam-u48.rd}} \
@@ -1621,7 +1641,7 @@ if { [isnative] && [check_compiler_available] } {
] \
[list \
"Build lam-u57.so" \
- "-shared -Wl,-z,lam-u57" \
+ "-shared -Wl,-z,lam-u57,-z,noindirect-extern-access" \
"" \
{dummy.s} \
{{readelf -n lam-u57.rd}} \
@@ -1653,23 +1673,23 @@ if { [isnative] && [check_compiler_available] } {
[list \
"Run copyreloc-main with PIE without -fPIE" \
"-Wl,--as-needed -pie tmpdir/copyreloc-main.o tmpdir/copyreloc-lib.so" \
- "-Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{ dummy.s } \
"copyreloc-main" \
"copyreloc-main.out" \
] \
[list \
"Run pr17689 with PIE without -fPIE" \
- "-Wl,--no-as-needed -pie tmpdir/pr17689b.o tmpdir/pr17689.so" \
- "-Wa,-mx86-used-note=yes" \
+ "-Wl,--no-as-needed,-z,noindirect-extern-access -pie tmpdir/pr17689b.o tmpdir/pr17689.so" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{ dummy.s } \
"pr17689" \
"pr17689.out" \
] \
[list \
"Run pr17689 with PIE -z now without -fPIE" \
- "-Wl,--as-needed,-z,now -pie tmpdir/pr17689b.o tmpdir/pr17689.so" \
- "-Wa,-mx86-used-note=yes" \
+ "-Wl,--as-needed,-z,now,-z,noindirect-extern-access -pie tmpdir/pr17689b.o tmpdir/pr17689.so" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{ dummy.s } \
"pr17689now" \
"pr17689.out" \
@@ -1744,25 +1764,25 @@ if { [isnative] && [check_compiler_available] } {
[list \
"Run pr22001-1a (PIC 1)" \
"$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
- "-Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{ pr22001-1b.c } \
"pr22001-1a-pic-1" \
"pass.out" \
- "-fPIC" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -fPIC" \
] \
[list \
"Run pr22001-1a (PIC 2)" \
"-pie -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
- "-Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{ pr22001-1b.c } \
"pr22001-1a-pic-2" \
"pass.out" \
- "-fPIC" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -fPIC" \
] \
[list \
"Run pr22001-1b (PIC 1)" \
"$NOPIE_LDFLAGS -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
- "-Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{ pr22001-1c.c } \
"pr22001-1b-pic-1" \
"pass.out" \
@@ -1771,7 +1791,7 @@ if { [isnative] && [check_compiler_available] } {
[list \
"Run pr22001-1b (PIC 2)" \
"-pie -Wl,-z,nocopyreloc,--no-as-needed tmpdir/pr22001-1.so" \
- "-Wa,-mx86-used-note=yes" \
+ "$DIRECT_EXTERN_ACCESS_CFLAGS -Wa,-mx86-used-note=yes" \
{ pr22001-1c.c } \
"pr22001-1b-pic-2" \
"pass.out" \
@@ -2190,7 +2210,7 @@ if { [isnative] && [check_compiler_available] } {
}
}
- undefined_weak "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS"
+ undefined_weak "$DIRECT_EXTERN_ACCESS_CFLAGS $NOPIE_CFLAGS" "$NOPIE_LDFLAGS"
undefined_weak "-fPIE" "$NOPIE_LDFLAGS"
undefined_weak "-fPIE" "-pie"
undefined_weak "-fPIE" "$NOPIE_LDFLAGS -Wl,-z,nodynamic-undefined-weak"
@@ -2354,7 +2374,7 @@ run_dump_test "ibt-plt-3b-x32"
run_dump_test "ibt-plt-3c-x32"
run_dump_test "ibt-plt-3d-x32"
-# Skip -z mark-plt tests on MUSL.
+# Skip -z mark-plt and --gnu2-tls-tag tests on MUSL.
if { [istarget "x86_64-*-musl*"]} {
set ASFLAGS "$saved_ASFLAGS"
return
@@ -2380,6 +2400,30 @@ if { [check_compiler_available] } {
{readelf {-W --version-info} mark-plt-1b.rd}} \
"mark-plt-1.so" \
] \
+ [list \
+ "Build mark-plt-2.so" \
+ "-shared -Wl,--no-as-needed,-z,mark-plt,-z,nopack-relative-relocs" \
+ "-fPIC" \
+ { mark-plt-2.s } \
+ {{readelf {-W --version-info} mark-plt-2.rd}} \
+ "mark-plt-2.so" \
+ ] \
+ [list \
+ "Build gnu2-tls-1a.so" \
+ "-shared -Wl,--no-as-needed,--gnu2-tls-tag" \
+ "-fPIC" \
+ { gnu2-tls-1.s } \
+ {{readelf {-W --version-info} gnu2-tls-1a.rd}} \
+ "gnu2-tls-1a.so" \
+ ] \
+ [list \
+ "Build gnu2-tls-1b.so" \
+ "-shared -Wl,--no-as-needed,--no-gnu2-tls-tag" \
+ "-fPIC" \
+ { gnu2-tls-1.s } \
+ {{readelf {-W --version-info} gnu2-tls-1b.rd}} \
+ "gnu2-tls-1b.so" \
+ ] \
]
}
diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
index 22d2f98..d1343eb 100644
--- a/ld/testsuite/lib/ld-lib.exp
+++ b/ld/testsuite/lib/ld-lib.exp
@@ -253,6 +253,8 @@ proc default_ld_link { ld target objects } {
proc default_ld_compile { cc source object } {
global CFLAGS_FOR_TARGET
global CXXFLAGS_FOR_TARGET
+ global CFLAGS_FOR_TARGET_TEST
+ global CXXFLAGS_FOR_TARGET_TEST
global srcdir
global subdir
global host_triplet
@@ -286,10 +288,14 @@ proc default_ld_compile { cc source object } {
}
set ccexe [string replace $ccexe 0 [string last "/" $ccexe] ""]
+ set cflag_test ""
+ set cxxflag_test ""
if {[string match "*++*" $ccexe]} {
append flags " $CXXFLAGS_FOR_TARGET"
+ set cflag_test "$CXXFLAGS_FOR_TARGET_TEST"
} else {
append flags " $CFLAGS_FOR_TARGET"
+ set cflag_test "$CFLAGS_FOR_TARGET_TEST"
}
if [board_info [target_info name] exists cflags] {
@@ -300,7 +306,7 @@ proc default_ld_compile { cc source object } {
append flags " [board_info [target_info name] multilib_flags]"
}
- set cmd "$cc $flags $ccflags -c $source -o $object"
+ set cmd "$cc $flags $ccflags $cflag_test -c $source -o $object"
verbose -log "$cmd"
set status [remote_exec host [concat sh -c [list "$cmd 2>&1"]] "" "/dev/null" "ld.tmp"]
@@ -727,6 +733,8 @@ proc run_ld_link_exec_tests { ldtests args } {
global env
global CC_FOR_TARGET
global CXX_FOR_TARGET
+ global CFLAGS_FOR_TARGET_TEST
+ global CXXFLAGS_FOR_TARGET_TEST
global errcnt
global exec_output
global STATIC_LDFLAGS
@@ -780,9 +788,9 @@ proc run_ld_link_exec_tests { ldtests args } {
lappend objfiles $objfile
if { [ string match "c++" $lang ] } {
- set cmd "$CXX_FOR_TARGET -c $cflags"
+ set cmd "$CXX_FOR_TARGET -c $cflags $CXXFLAGS_FOR_TARGET_TEST"
} else {
- set cmd "$CC_FOR_TARGET -c $cflags"
+ set cmd "$CC_FOR_TARGET -c $cflags $CFLAGS_FOR_TARGET_TEST"
}
if ![ld_compile $cmd $srcdir/$subdir/$src_file $objfile] {
set failed 1
@@ -799,10 +807,10 @@ proc run_ld_link_exec_tests { ldtests args } {
set link_cmd $ld
} elseif { [ string match "c++" $lang ] } {
set link_proc ld_link
- set link_cmd $CXX_FOR_TARGET
+ set link_cmd "$CXX_FOR_TARGET $CXXFLAGS_FOR_TARGET_TEST"
} else {
set link_proc ld_link
- set link_cmd $CC_FOR_TARGET
+ set link_cmd "$CC_FOR_TARGET $CFLAGS_FOR_TARGET_TEST"
}
if { $binfile eq "tmpdir/" } {
@@ -888,6 +896,8 @@ proc run_cc_link_tests { ldtests } {
global env
global CC_FOR_TARGET
global CXX_FOR_TARGET
+ global CFLAGS_FOR_TARGET_TEST
+ global CXXFLAGS_FOR_TARGET_TEST
global ar
global exec_output
global STATIC_LDFLAGS
@@ -969,9 +979,9 @@ proc run_cc_link_tests { ldtests } {
lappend objfiles $objfile
if { [ string match "c++" $lang ] } {
- set cmd "$CXX_FOR_TARGET -c $cflags"
+ set cmd "$CXX_FOR_TARGET $CXXFLAGS_FOR_TARGET_TEST -c $cflags"
} else {
- set cmd "$CC_FOR_TARGET -c $cflags"
+ set cmd "$CC_FOR_TARGET $CFLAGS_FOR_TARGET_TEST -c $cflags"
}
if ![ld_compile $cmd $srcdir/$subdir/$src_file $objfile] {
set failed 1
@@ -987,9 +997,9 @@ proc run_cc_link_tests { ldtests } {
reset_vars
if { [ string match "c++" $lang ] } {
- set cc_cmd $CXX_FOR_TARGET
+ set cc_cmd "$CXX_FOR_TARGET $CXXFLAGS_FOR_TARGET_TEST"
} else {
- set cc_cmd $CC_FOR_TARGET
+ set cc_cmd "$CC_FOR_TARGET $CFLAGS_FOR_TARGET_TEST"
}
if { $binfile eq "tmpdir/" } {
diff --git a/libbacktrace/Makefile.in b/libbacktrace/Makefile.in
index 49852a2..7486d9a 100644
--- a/libbacktrace/Makefile.in
+++ b/libbacktrace/Makefile.in
@@ -169,7 +169,9 @@ TESTS = $(am__append_4) $(MAKETESTS) $(am__EXEEXT_16)
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../config/cet.m4 \
+ $(top_srcdir)/../config/clang-plugin.m4 \
$(top_srcdir)/../config/enable.m4 \
+ $(top_srcdir)/../config/gcc-plugin.m4 \
$(top_srcdir)/../config/lead-dot.m4 \
$(top_srcdir)/../config/multi.m4 \
$(top_srcdir)/../config/override.m4 \
@@ -886,6 +888,7 @@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
+LLVM_CONFIG = @LLVM_CONFIG@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
diff --git a/libbacktrace/aclocal.m4 b/libbacktrace/aclocal.m4
index 528e617..df92f64 100644
--- a/libbacktrace/aclocal.m4
+++ b/libbacktrace/aclocal.m4
@@ -853,7 +853,9 @@ AC_SUBST([am__untar])
]) # _AM_PROG_TAR
m4_include([../config/cet.m4])
+m4_include([../config/clang-plugin.m4])
m4_include([../config/enable.m4])
+m4_include([../config/gcc-plugin.m4])
m4_include([../config/lead-dot.m4])
m4_include([../config/multi.m4])
m4_include([../config/override.m4])
diff --git a/libbacktrace/configure b/libbacktrace/configure
index 4ab612d..2349bba 100755
--- a/libbacktrace/configure
+++ b/libbacktrace/configure
@@ -687,6 +687,7 @@ LIPO
NMEDIT
DSYMUTIL
AR
+LLVM_CONFIG
OBJDUMP
LN_S
NM
@@ -6595,8 +6596,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
-plugin_option=
+
+# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
+# wrong plugin_option with clang.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
+$as_echo_n "checking for clang... " >&6; }
+if ${clang_cv_is_clang+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __clang__
+ yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ clang_cv_is_clang=yes
+else
+ clang_cv_is_clang=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
+$as_echo "$clang_cv_is_clang" >&6; }
+ plugin_file=
+ if test $clang_cv_is_clang = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
+$as_echo_n "checking for clang plugin file... " >&6; }
+ plugin_names="LLVMgold.so"
+ for plugin in $plugin_names; do
+ plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
+ if test x$plugin_file = x$plugin; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LLVM_CONFIG"; then
+ ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
+if test -n "$LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
+$as_echo "$LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LLVM_CONFIG"; then
+ ac_ct_LLVM_CONFIG=$LLVM_CONFIG
+ # Extract the first word of "llvm-config", so it can be a program name with args.
+set dummy llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LLVM_CONFIG"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
+if test -n "$ac_ct_LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
+$as_echo "$ac_ct_LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LLVM_CONFIG" = x; then
+ LLVM_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LLVM_CONFIG=$ac_ct_LLVM_CONFIG
+ fi
+else
+ LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
+fi
+
+ if test "$?" != 0; then
+ as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
+ fi
+ clang_lib_dir=`$LLVM_CONFIG --libdir`
+ if test -f $clang_lib_dir/$plugin; then
+ plugin_file=$clang_lib_dir/$plugin
+ fi
+ if test x$plugin_file != x$plugin; then
+ break;
+ fi
+ fi
+ done
+ if test -z $plugin_file; then
+ as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
+ fi
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+ if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ plugin_option="--plugin $plugin_file"
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_file=
+ fi
+ rm -f conftest.*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
+$as_echo "$plugin_file" >&6; }
+ fi
+ plugin_file="$plugin_file"
+
+if test -n "$plugin_file"; then
+ plugin_option="--plugin $plugin_file"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
+$as_echo_n "checking for -plugin option... " >&6; }
+
plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+plugin_option=
for plugin in $plugin_names; do
plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
if test x$plugin_so = x$plugin; then
@@ -6607,7 +6866,119 @@ for plugin in $plugin_names; do
break
fi
done
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+fi
+touch conftest.c
+${AR} $plugin_option rc conftest.a conftest.c
+if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_option=
+fi
+rm -f conftest.*
+if test -n "$plugin_option"; then
+ plugin_option="$plugin_option"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+$as_echo "$plugin_option" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
@@ -6702,17 +7073,15 @@ fi
test -z "$AR" && AR=ar
if test -n "$plugin_option"; then
- if $AR --help 2>&1 | grep -q "\--plugin"; then
- touch conftest.c
- $AR $plugin_option rc conftest.a conftest.c
- if test "$?" != 0; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
-$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
- else
+ case "$AR" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $AR --help 2>&1 | grep -q "\--plugin"; then
AR="$AR $plugin_option"
fi
- rm -f conftest.*
- fi
+ ;;
+ esac
fi
test -z "$AR_FLAGS" && AR_FLAGS=cru
@@ -6919,9 +7288,15 @@ fi
test -z "$RANLIB" && RANLIB=:
if test -n "$plugin_option" && test "$RANLIB" != ":"; then
- if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
- RANLIB="$RANLIB $plugin_option"
- fi
+ case "$RANLIB" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
+ RANLIB="$RANLIB $plugin_option"
+ fi
+ ;;
+ esac
fi
@@ -11578,7 +11953,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11581 "configure"
+#line 11956 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11684,7 +12059,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11687 "configure"
+#line 12062 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
diff --git a/libctf/Makefile.in b/libctf/Makefile.in
index 5d95877..7c309b1 100644
--- a/libctf/Makefile.in
+++ b/libctf/Makefile.in
@@ -134,8 +134,10 @@ subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../bfd/acinclude.m4 \
$(top_srcdir)/../config/acx.m4 \
+ $(top_srcdir)/../config/clang-plugin.m4 \
$(top_srcdir)/../config/depstand.m4 \
$(top_srcdir)/../config/enable.m4 \
+ $(top_srcdir)/../config/gcc-plugin.m4 \
$(top_srcdir)/../config/gettext-sister.m4 \
$(top_srcdir)/../config/gettext.m4 \
$(top_srcdir)/../config/iconv.m4 \
@@ -475,6 +477,7 @@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
+LLVM_CONFIG = @LLVM_CONFIG@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
LTLIBINTL = @LTLIBINTL@
diff --git a/libctf/aclocal.m4 b/libctf/aclocal.m4
index fc2b7d7..de7db77 100644
--- a/libctf/aclocal.m4
+++ b/libctf/aclocal.m4
@@ -1229,8 +1229,10 @@ AC_SUBST([am__untar])
m4_include([../bfd/acinclude.m4])
m4_include([../config/acx.m4])
+m4_include([../config/clang-plugin.m4])
m4_include([../config/depstand.m4])
m4_include([../config/enable.m4])
+m4_include([../config/gcc-plugin.m4])
m4_include([../config/gettext-sister.m4])
m4_include([../config/gettext.m4])
m4_include([../config/iconv.m4])
diff --git a/libctf/configure b/libctf/configure
index 89c99c2..becb131 100755
--- a/libctf/configure
+++ b/libctf/configure
@@ -669,6 +669,7 @@ OTOOL
LIPO
NMEDIT
DSYMUTIL
+LLVM_CONFIG
OBJDUMP
LN_S
NM
@@ -8643,8 +8644,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
-plugin_option=
+
+# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
+# wrong plugin_option with clang.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
+$as_echo_n "checking for clang... " >&6; }
+if ${clang_cv_is_clang+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __clang__
+ yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ clang_cv_is_clang=yes
+else
+ clang_cv_is_clang=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
+$as_echo "$clang_cv_is_clang" >&6; }
+ plugin_file=
+ if test $clang_cv_is_clang = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
+$as_echo_n "checking for clang plugin file... " >&6; }
+ plugin_names="LLVMgold.so"
+ for plugin in $plugin_names; do
+ plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
+ if test x$plugin_file = x$plugin; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LLVM_CONFIG"; then
+ ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
+if test -n "$LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
+$as_echo "$LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LLVM_CONFIG"; then
+ ac_ct_LLVM_CONFIG=$LLVM_CONFIG
+ # Extract the first word of "llvm-config", so it can be a program name with args.
+set dummy llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LLVM_CONFIG"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
+if test -n "$ac_ct_LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
+$as_echo "$ac_ct_LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LLVM_CONFIG" = x; then
+ LLVM_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LLVM_CONFIG=$ac_ct_LLVM_CONFIG
+ fi
+else
+ LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
+fi
+
+ if test "$?" != 0; then
+ as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
+ fi
+ clang_lib_dir=`$LLVM_CONFIG --libdir`
+ if test -f $clang_lib_dir/$plugin; then
+ plugin_file=$clang_lib_dir/$plugin
+ fi
+ if test x$plugin_file != x$plugin; then
+ break;
+ fi
+ fi
+ done
+ if test -z $plugin_file; then
+ as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
+ fi
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+ if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ plugin_option="--plugin $plugin_file"
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_file=
+ fi
+ rm -f conftest.*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
+$as_echo "$plugin_file" >&6; }
+ fi
+ plugin_file="$plugin_file"
+
+if test -n "$plugin_file"; then
+ plugin_option="--plugin $plugin_file"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
+$as_echo_n "checking for -plugin option... " >&6; }
+
plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+plugin_option=
for plugin in $plugin_names; do
plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
if test x$plugin_so = x$plugin; then
@@ -8655,7 +8914,119 @@ for plugin in $plugin_names; do
break
fi
done
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+fi
+touch conftest.c
+${AR} $plugin_option rc conftest.a conftest.c
+if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_option=
+fi
+rm -f conftest.*
+if test -n "$plugin_option"; then
+ plugin_option="$plugin_option"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+$as_echo "$plugin_option" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
@@ -8750,17 +9121,15 @@ fi
test -z "$AR" && AR=ar
if test -n "$plugin_option"; then
- if $AR --help 2>&1 | grep -q "\--plugin"; then
- touch conftest.c
- $AR $plugin_option rc conftest.a conftest.c
- if test "$?" != 0; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
-$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
- else
+ case "$AR" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $AR --help 2>&1 | grep -q "\--plugin"; then
AR="$AR $plugin_option"
fi
- rm -f conftest.*
- fi
+ ;;
+ esac
fi
test -z "$AR_FLAGS" && AR_FLAGS=cru
@@ -8967,9 +9336,15 @@ fi
test -z "$RANLIB" && RANLIB=:
if test -n "$plugin_option" && test "$RANLIB" != ":"; then
- if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
- RANLIB="$RANLIB $plugin_option"
- fi
+ case "$RANLIB" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
+ RANLIB="$RANLIB $plugin_option"
+ fi
+ ;;
+ esac
fi
@@ -13596,7 +13971,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 13599 "configure"
+#line 13974 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -13702,7 +14077,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 13705 "configure"
+#line 14080 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
diff --git a/libctf/ctf-decl.c b/libctf/ctf-decl.c
index 9e11913..e5331b4 100644
--- a/libctf/ctf-decl.c
+++ b/libctf/ctf-decl.c
@@ -154,9 +154,12 @@ ctf_decl_push (ctf_decl_t *cd, ctf_dict_t *fp, ctf_id_t type)
cd->cd_qualp = prec;
/* By convention qualifiers of base types precede the type specifier (e.g.
- const int vs. int const) even though the two forms are equivalent. */
+ const int vs. int const) even though the two forms are equivalent.
+ As of gcc-14.2.0, arrays must also be prepended in order to dump with the
+ dimensions properly ordered. */
- if (is_qual && prec == CTF_PREC_BASE)
+ if ((is_qual && prec == CTF_PREC_BASE) || ((kind == CTF_K_ARRAY) &&
+ (fp->ctf_openflags & (CTF_F_ARRNELEMS))))
ctf_list_prepend (&cd->cd_nodes[prec], cdp);
else
ctf_list_append (&cd->cd_nodes[prec], cdp);
diff --git a/libctf/ctf-dump.c b/libctf/ctf-dump.c
index 54febd6..57fbd64 100644
--- a/libctf/ctf-dump.c
+++ b/libctf/ctf-dump.c
@@ -326,7 +326,7 @@ ctf_dump_header (ctf_dict_t *fp, ctf_dump_state_t *state)
if (fp->ctf_openflags > 0)
{
- if (asprintf (&flagstr, "%s%s%s%s%s%s%s",
+ if (asprintf (&flagstr, "%s%s%s%s%s%s%s%s%s",
fp->ctf_openflags & CTF_F_COMPRESS
? "CTF_F_COMPRESS": "",
(fp->ctf_openflags & CTF_F_COMPRESS)
@@ -343,6 +343,12 @@ ctf_dump_header (ctf_dict_t *fp, ctf_dump_state_t *state)
&& (fp->ctf_openflags & ~(CTF_F_COMPRESS | CTF_F_NEWFUNCINFO
| CTF_F_IDXSORTED))
? ", " : "",
+ fp->ctf_openflags & CTF_F_ARRNELEMS
+ ? "CTF_F_ARRNELEMS" : "",
+ fp->ctf_openflags & (CTF_F_ARRNELEMS)
+ && (fp->ctf_openflags & ~(CTF_F_COMPRESS | CTF_F_NEWFUNCINFO
+ | CTF_F_IDXSORTED | CTF_F_ARRNELEMS))
+ ? ", " : "",
fp->ctf_openflags & CTF_F_DYNSTR
? "CTF_F_DYNSTR" : "") < 0)
goto err;
diff --git a/libctf/ctf-types.c b/libctf/ctf-types.c
index 044a185..d08d454 100644
--- a/libctf/ctf-types.c
+++ b/libctf/ctf-types.c
@@ -45,7 +45,7 @@ ctf_struct_member (ctf_dict_t *fp, ctf_lmember_t *dst, const ctf_type_t *tp,
return -1; /* errno is set for us. */
/* Already large. */
- if (tp->ctt_size == CTF_LSIZE_SENT)
+ if (tp->ctt_size >= CTF_LSTRUCT_THRESH)
{
ctf_lmember_t *lmp = (ctf_lmember_t *) vlen;
diff --git a/libctf/testsuite/lib/ctf-lib.exp b/libctf/testsuite/lib/ctf-lib.exp
index 4df6619..7175e14 100644
--- a/libctf/testsuite/lib/ctf-lib.exp
+++ b/libctf/testsuite/lib/ctf-lib.exp
@@ -141,6 +141,8 @@ proc compile_link_one_host_cc { src output additional_args } {
#
# link:
# If set, link the SOURCE together even if only one file is specified.
+# If "objects", keep the input object files and pass them as additional
+# arguments to LOOKUP.
#
# link_flags:
# If set, extra flags to pass to the linker.
@@ -265,11 +267,14 @@ proc run_lookup_test { name } {
# Compile the inputs and posibly link them together.
set lookup_output ""
+ set objs {}
if { [llength $opts(source)] > 0 } {
set lookup_flags ""
+ set ld_flags ""
if { $run_ld } {
set lookup_output "tmpdir/out.so"
- set lookup_flags "-gctf -fPIC $shared $opts(link_flags)"
+ set lookup_flags "-gctf -fPIC"
+ set ld_flags "$shared $opts(link_flags)"
} else {
set lookup_output "tmpdir/out.o"
set lookup_flags "-gctf -fPIC -c"
@@ -280,19 +285,38 @@ proc run_lookup_test { name } {
if [board_info [target_info name] exists ldflags] {
append lookup_flags " [board_info [target_info name] ldflags]"
}
- set src {}
+ set objsrcs {}
+ set local_srcs {}
foreach sfile $opts(source) {
+ set local_src [file join [file dirname $file] $sfile]
+ lappend local_srcs $local_src
+
if [is_remote host] {
- lappend src [remote_download host [file join [file dirname $file] $sfile]]
+ set src [remote_download host [file join [file dirname $file] $sfile]]
+ } else {
+ set src [file join [file dirname $file] $sfile]
+ }
+
+ if { $opts(link) == "objects" } {
+ set obj "[file rootname $src].o"
+ set comp_output [prune_warnings [run_host_cmd "$CC_FOR_TARGET" "$CFLAGS_FOR_TARGET $lookup_flags $src -c -o $obj"]]
+
+ if { $comp_output != ""} {
+ send_log "compilation of CTF program $local_src failed with <$comp_output>"
+ fail $testname
+ return 0
+ }
+ lappend objsrcs $obj
+ lappend objs $obj
} else {
- lappend src [file join [file dirname $file] $sfile]
+ lappend objsrcs $src
}
}
- set comp_output [prune_warnings [run_host_cmd "$CC_FOR_TARGET" "$CFLAGS_FOR_TARGET $lookup_flags [concat $src] -o $lookup_output"]]
+ set comp_output [prune_warnings [run_host_cmd "$CC_FOR_TARGET" "$CFLAGS_FOR_TARGET $lookup_flags $ld_flags [concat $objsrcs] -o $lookup_output"]]
if { $comp_output != ""} {
- send_log "compilation of CTF program [concat $src] failed with <$comp_output>"
+ send_log "compilation of CTF program [concat $local_srcs] failed with <$comp_output>"
fail $testname
return 0
}
@@ -306,12 +330,13 @@ proc run_lookup_test { name } {
}
}
- # Invoke the lookup program on the outputs, possibly through the wrapper.
+ # Invoke the lookup program on the outputs, possibly through the wrapper, including all
+ # the object file names if they were filled out.
if { [llength $opts(wrapper)] == 0 } {
- set results [run_host_cmd tmpdir/lookup $lookup_output]
+ set results [run_host_cmd tmpdir/lookup "$lookup_output $objs"]
} else {
- set results [run_host_cmd "$opts(wrapper) tmpdir/lookup" $lookup_output]
+ set results [run_host_cmd "$opts(wrapper) tmpdir/lookup" "$lookup_output $objs"]
}
if { [regexp {^UNSUPPORTED: (.*)$} $results -> reason] } {
diff --git a/libctf/testsuite/libctf-lookup/big-struct-corruption.c b/libctf/testsuite/libctf-lookup/big-struct-corruption.c
new file mode 100644
index 0000000..2cc05be
--- /dev/null
+++ b/libctf/testsuite/libctf-lookup/big-struct-corruption.c
@@ -0,0 +1,118 @@
+/* Determine whether libctf/33339 is fixed, if and only if GCC PR 121411 is also
+ fixed. */
+
+#include "config.h"
+#include <ctf-api.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Determine whether the passed-in struct's member's offsets ever descend. */
+static int
+offsets_ascending (ctf_dict_t *fp, ctf_id_t type)
+{
+ ctf_next_t *it = NULL;
+ ssize_t offset, last_offset = 0;
+
+ while ((offset = ctf_member_next (fp, type, &it, NULL, NULL, 0)) >= 0)
+ {
+ if (offset < last_offset)
+ return 0;
+ last_offset = offset;
+ }
+ if (ctf_errno (fp) != ECTF_NEXT_END)
+ {
+ fprintf (stderr, "Cannot check member offsets: %s\n",
+ ctf_errmsg (ctf_errno (fp)));
+ exit (0);
+ }
+
+ return 1;
+}
+
+int
+main (int argc, char *argv[])
+{
+ ctf_archive_t *ctf;
+ ctf_dict_t *fp;
+ ctf_id_t type;
+ int err;
+
+ if (argc != 3)
+ {
+ fprintf (stderr, "Syntax: %s PROGRAM OBJ\n", argv[0]);
+ exit(1);
+ }
+
+ /* Check for bugginess of compiler. */
+
+ if ((ctf = ctf_open (argv[2], NULL, &err)) == NULL)
+ {
+ fprintf (stderr, "Cannot open compiler object file %s: %s\n",
+ argv[2], ctf_errmsg (err));
+ exit (1);
+ }
+
+ /* Verify that offsets only ascend. */
+
+ if ((fp = ctf_arc_lookup_symbol_name (ctf, "huge_used", &type, &err)) == NULL)
+ {
+ fprintf (stderr, "UNSUPPORTED: compiler does not provide expected symbol.\n");
+ exit (0);
+ }
+
+ if (!offsets_ascending (fp, type))
+ {
+ fprintf (stderr, "UNSUPPORTED: GCC bug PR121411 detected.\n");
+ exit (0);
+ }
+
+ ctf_dict_close (fp);
+ ctf_close (ctf);
+
+ /* Check if test is disabled (e.g. on 32-bit). */
+
+ if ((ctf = ctf_open (argv[1], NULL, &err)) == NULL)
+ {
+ fprintf (stderr, "Cannot open linked binary test file %s: %s\n",
+ argv[1], ctf_errmsg (err));
+ exit (1);
+ }
+
+ if ((fp = ctf_arc_lookup_symbol_name (ctf, "test_disabled", &type, &err)) != NULL)
+ {
+ fprintf (stderr, "UNSUPPORTED: test not necessary on 32-bit targets.\n");
+ exit (0);
+ }
+
+ if ((fp = ctf_arc_lookup_symbol_name (ctf, "big_used", &type, &err)) == NULL)
+ {
+ fprintf (stderr, "big struct symbol not found.\n");
+ exit (1);
+ }
+
+ if (!offsets_ascending (fp, type))
+ {
+ fprintf (stderr, "large struct offsets incorrect.\n");
+ exit (1);
+ }
+ ctf_dict_close (fp);
+
+ if ((fp = ctf_arc_lookup_symbol_name (ctf, "huge_used", &type, &err)) == NULL)
+ {
+ fprintf (stderr, "huge struct symbol not found.\n");
+ exit (1);
+ }
+
+ if (!offsets_ascending (fp, type))
+ {
+ fprintf (stderr, "huge struct offsets incorrect.\n");
+ exit (1);
+ }
+
+ ctf_dict_close (fp);
+ ctf_close (ctf);
+
+ fprintf (stderr, "Large and huge structs working fine.\n");
+ exit (0);
+}
diff --git a/libctf/testsuite/libctf-lookup/big-struct-corruption.lk b/libctf/testsuite/libctf-lookup/big-struct-corruption.lk
new file mode 100644
index 0000000..980cb0b
--- /dev/null
+++ b/libctf/testsuite/libctf-lookup/big-struct-corruption.lk
@@ -0,0 +1,3 @@
+# source: big-struct-ctf.c
+# link: objects
+Large and huge structs working fine.
diff --git a/libctf/testsuite/libctf-lookup/big-struct-ctf.c b/libctf/testsuite/libctf-lookup/big-struct-ctf.c
new file mode 100644
index 0000000..fc99a3e
--- /dev/null
+++ b/libctf/testsuite/libctf-lookup/big-struct-ctf.c
@@ -0,0 +1,72 @@
+#if defined (__SIZEOF_PTRDIFF_T__) && __SIZEOF_PTRDIFF_T__ > 4
+
+#define CONCAT_(a,b) a ## b
+#define CONCAT(a,b) CONCAT_(a, b)
+#define COUNT(name) CONCAT(name, __COUNTER__)
+#define MEMBNAME const char COUNT(memb)[1024 * 1024]
+#define MEMB10 \
+ MEMBNAME; \
+ MEMBNAME; \
+ MEMBNAME; \
+ MEMBNAME; \
+ MEMBNAME; \
+ MEMBNAME; \
+ MEMBNAME; \
+ MEMBNAME; \
+ MEMBNAME; \
+ MEMBNAME;
+
+#define MEMB100 \
+ MEMB10 \
+ MEMB10 \
+ MEMB10 \
+ MEMB10 \
+ MEMB10 \
+ MEMB10 \
+ MEMB10 \
+ MEMB10 \
+ MEMB10 \
+ MEMB10
+
+#define MEMB1000 \
+ MEMB100 \
+ MEMB100 \
+ MEMB100 \
+ MEMB100 \
+ MEMB100 \
+ MEMB100 \
+ MEMB100 \
+ MEMB100 \
+ MEMB100 \
+ MEMB100
+
+#define MEMB10000 \
+ MEMB1000 \
+ MEMB1000 \
+ MEMB1000 \
+ MEMB1000 \
+ MEMB1000 \
+ MEMB1000 \
+ MEMB1000 \
+ MEMB1000 \
+ MEMB1000 \
+ MEMB1000
+
+struct big
+{
+ MEMB1000;
+};
+
+struct huge
+{
+ MEMB10000;
+};
+
+struct big big_used;
+struct huge huge_used;
+
+#else
+
+int test_disabled;
+
+#endif
diff --git a/libctf/testsuite/libctf-lookup/multidim-array-ctf.c b/libctf/testsuite/libctf-lookup/multidim-array-ctf.c
new file mode 100644
index 0000000..05b6ebe
--- /dev/null
+++ b/libctf/testsuite/libctf-lookup/multidim-array-ctf.c
@@ -0,0 +1,3 @@
+int a[3][5][9];
+int b[1][2];
+
diff --git a/libctf/testsuite/libctf-lookup/multidim-array.c b/libctf/testsuite/libctf-lookup/multidim-array.c
new file mode 100644
index 0000000..2a86f26
--- /dev/null
+++ b/libctf/testsuite/libctf-lookup/multidim-array.c
@@ -0,0 +1,71 @@
+#include <ctf-api.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+int
+main (int argc, char *argv[])
+{
+ ctf_archive_t *ctf;
+ ctf_dict_t *fp;
+ int err;
+ ctf_dump_state_t *dump_state = NULL;
+ char *dumpstr;
+ ctf_next_t *it = NULL;
+ ctf_id_t type;
+ int flagged = 0;
+
+ if ((ctf = ctf_open (argv[1], NULL, &err)) == NULL)
+ goto open_err;
+ if ((fp = ctf_dict_open (ctf, NULL, &err)) == NULL)
+ goto open_err;
+
+ /* First, check for signs that the compiler is fixed but not emitting the
+ relevant flag yet. This combination is not expected to work right. */
+
+ while ((dumpstr = ctf_dump (fp, &dump_state, CTF_SECT_HEADER,
+ NULL, NULL)) != NULL)
+ {
+ if (strstr (dumpstr, "CTF_F_ARRNELEMS") != NULL)
+ flagged = 1;
+ free (dumpstr);
+ }
+
+ if (!flagged)
+ {
+ ctf_arinfo_t ar;
+
+ if ((type = ctf_lookup_by_symbol_name (fp, "a")) == CTF_ERR)
+ goto unexpected;
+
+ if (ctf_array_info (fp, type, &ar) < 0)
+ goto unexpected;
+
+ if (ar.ctr_nelems == 3)
+ {
+ fprintf (stderr, "UNSUPPORTED: compiler has GCC PR114186 fixed but "
+ "no indicative flag\n");
+ return 0;
+ }
+ }
+
+ /* Now check for the actual bug. */
+
+ while ((type = ctf_type_next (fp, &it, NULL, 1)) != -1)
+ printf ("%s\n", ctf_type_aname (fp, type));
+
+ ctf_dict_close (fp);
+ ctf_close (ctf);
+
+ return 0;
+
+ open_err:
+ fprintf (stderr, "%s: cannot open: %s\n", argv[0], ctf_errmsg (err));
+ return 1;
+
+ unexpected:
+ fprintf (stderr, "Cannot look up symbol to determine compiler bugginess: %s\n",
+ ctf_errmsg (ctf_errno (fp)));
+ return 1;
+}
+
diff --git a/libctf/testsuite/libctf-lookup/multidim-array.lk b/libctf/testsuite/libctf-lookup/multidim-array.lk
new file mode 100644
index 0000000..41b3cd9
--- /dev/null
+++ b/libctf/testsuite/libctf-lookup/multidim-array.lk
@@ -0,0 +1,9 @@
+# source: multidim-array-ctf.c
+int
+(long )?unsigned int
+int \[9\]
+int \[5\]\[9\]
+int \[3\]\[5\]\[9\]
+int \[2\]
+int \[1\]\[2\]
+
diff --git a/libiberty/aclocal.m4 b/libiberty/aclocal.m4
index 9678b0a..46cefc3 100644
--- a/libiberty/aclocal.m4
+++ b/libiberty/aclocal.m4
@@ -14,6 +14,7 @@
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
m4_include([../config/acx.m4])
m4_include([../config/cet.m4])
+m4_include([../config/clang-plugin.m4])
m4_include([../config/enable.m4])
m4_include([../config/gcc-plugin.m4])
m4_include([../config/hwcaps.m4])
diff --git a/libiberty/configure b/libiberty/configure
index f0309ff..0c4a1b0 100755
--- a/libiberty/configure
+++ b/libiberty/configure
@@ -640,6 +640,9 @@ INSTALL_PROGRAM
OUTPUT_OPTION
NO_MINUS_C_MINUS_O
ac_libiberty_warn_cflags
+RANLIB_PLUGIN_OPTION
+AR_PLUGIN_OPTION
+LLVM_CONFIG
EGREP
GREP
CPP
@@ -650,8 +653,6 @@ CPPFLAGS
LDFLAGS
CFLAGS
CC
-RANLIB_PLUGIN_OPTION
-AR_PLUGIN_OPTION
RANLIB
AR
host_os
@@ -2947,144 +2948,6 @@ else
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
-$as_echo_n "checking for -plugin option... " >&6; }
-
-plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
-plugin_option=
-for plugin in $plugin_names; do
- plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
- if test x$plugin_so = x$plugin; then
- plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin`
- fi
- if test x$plugin_so != x$plugin; then
- plugin_option="--plugin $plugin_so"
- break
- fi
-done
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AR="${ac_tool_prefix}ar"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_AR"; then
- ac_ct_AR=$AR
- # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AR+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_AR"; then
- ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_AR="ar"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_ct_AR" = x; then
- AR=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- AR=$ac_ct_AR
- fi
-else
- AR="$ac_cv_prog_AR"
-fi
-
-if test "${AR}" = "" ; then
- as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
-fi
-touch conftest.c
-${AR} $plugin_option rc conftest.a conftest.c
-if test "$?" != 0; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
-$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
- plugin_option=
-fi
-rm -f conftest.*
-if test -n "$plugin_option"; then
- PLUGIN_OPTION="$plugin_option"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
-$as_echo "$plugin_option" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-if test -n "$PLUGIN_OPTION"; then
- if $AR --help 2>&1 | grep -q "\--plugin"; then
- AR_PLUGIN_OPTION="$PLUGIN_OPTION"
-
- fi
- if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
- RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
-
- fi
-fi
-
# Add --enable-multilib to configure.
# Default to --enable-multilib
# Check whether --enable-multilib was given.
@@ -4616,6 +4479,411 @@ fi
ac_c_preproc_warn_flag=yes
+# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
+# wrong PLUGIN_OPTION with clang.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
+$as_echo_n "checking for clang... " >&6; }
+if ${clang_cv_is_clang+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __clang__
+ yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ clang_cv_is_clang=yes
+else
+ clang_cv_is_clang=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
+$as_echo "$clang_cv_is_clang" >&6; }
+ plugin_file=
+ if test $clang_cv_is_clang = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
+$as_echo_n "checking for clang plugin file... " >&6; }
+ plugin_names="LLVMgold.so"
+ for plugin in $plugin_names; do
+ plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
+ if test x$plugin_file = x$plugin; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LLVM_CONFIG"; then
+ ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
+if test -n "$LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
+$as_echo "$LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LLVM_CONFIG"; then
+ ac_ct_LLVM_CONFIG=$LLVM_CONFIG
+ # Extract the first word of "llvm-config", so it can be a program name with args.
+set dummy llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LLVM_CONFIG"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
+if test -n "$ac_ct_LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
+$as_echo "$ac_ct_LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LLVM_CONFIG" = x; then
+ LLVM_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LLVM_CONFIG=$ac_ct_LLVM_CONFIG
+ fi
+else
+ LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
+fi
+
+ if test "$?" != 0; then
+ as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
+ fi
+ clang_lib_dir=`$LLVM_CONFIG --libdir`
+ if test -f $clang_lib_dir/$plugin; then
+ plugin_file=$clang_lib_dir/$plugin
+ fi
+ if test x$plugin_file != x$plugin; then
+ break;
+ fi
+ fi
+ done
+ if test -z $plugin_file; then
+ as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
+ fi
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+ if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ plugin_option="--plugin $plugin_file"
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_file=
+ fi
+ rm -f conftest.*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
+$as_echo "$plugin_file" >&6; }
+ fi
+ PLUGIN_FILE="$plugin_file"
+
+if test -n "$PLUGIN_FILE"; then
+ PLUGIN_OPTION="--plugin $PLUGIN_FILE"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
+$as_echo_n "checking for -plugin option... " >&6; }
+
+plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+plugin_option=
+for plugin in $plugin_names; do
+ plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
+ if test x$plugin_so = x$plugin; then
+ plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin`
+ fi
+ if test x$plugin_so != x$plugin; then
+ plugin_option="--plugin $plugin_so"
+ break
+ fi
+done
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+fi
+touch conftest.c
+${AR} $plugin_option rc conftest.a conftest.c
+if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_option=
+fi
+rm -f conftest.*
+if test -n "$plugin_option"; then
+ PLUGIN_OPTION="$plugin_option"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+$as_echo "$plugin_option" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+fi
+if test -n "$PLUGIN_OPTION"; then
+ case "$AR" in
+ *"$PLUGIN_OPTION"*)
+ ;;
+ *)
+ if $AR --help 2>&1 | grep -q "\--plugin"; then
+ AR_PLUGIN_OPTION="$PLUGIN_OPTION"
+
+ fi
+ ;;
+ esac
+ case "$RANLIB" in
+ *"$PLUGIN_OPTION"*)
+ ;;
+ *)
+ if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
+ RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
+
+ fi
+ ;;
+ esac
+fi
+
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
diff --git a/libiberty/configure.ac b/libiberty/configure.ac
index 3de5eca..199fa19 100644
--- a/libiberty/configure.ac
+++ b/libiberty/configure.ac
@@ -114,18 +114,6 @@ dnl to call AC_CHECK_PROG.
AC_CHECK_TOOL(AR, ar)
AC_CHECK_TOOL(RANLIB, ranlib, :)
-GCC_PLUGIN_OPTION(PLUGIN_OPTION)
-if test -n "$PLUGIN_OPTION"; then
- if $AR --help 2>&1 | grep -q "\--plugin"; then
- AR_PLUGIN_OPTION="$PLUGIN_OPTION"
- AC_SUBST(AR_PLUGIN_OPTION)
- fi
- if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
- RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
- AC_SUBST(RANLIB_PLUGIN_OPTION)
- fi
-fi
-
dnl When switching to automake, replace the following with AM_ENABLE_MULTILIB.
# Add --enable-multilib to configure.
# Default to --enable-multilib
@@ -176,6 +164,37 @@ AC_USE_SYSTEM_EXTENSIONS
AC_SYS_LARGEFILE
AC_PROG_CPP_WERROR
+# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
+# wrong PLUGIN_OPTION with clang.
+CLANG_PLUGIN_FILE(PLUGIN_FILE)
+if test -n "$PLUGIN_FILE"; then
+ PLUGIN_OPTION="--plugin $PLUGIN_FILE"
+else
+ GCC_PLUGIN_OPTION(PLUGIN_OPTION)
+fi
+if test -n "$PLUGIN_OPTION"; then
+ case "$AR" in
+ *"$PLUGIN_OPTION"*)
+ ;;
+ *)
+ if $AR --help 2>&1 | grep -q "\--plugin"; then
+ AR_PLUGIN_OPTION="$PLUGIN_OPTION"
+ AC_SUBST(AR_PLUGIN_OPTION)
+ fi
+ ;;
+ esac
+ case "$RANLIB" in
+ *"$PLUGIN_OPTION"*)
+ ;;
+ *)
+ if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
+ RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
+ AC_SUBST(RANLIB_PLUGIN_OPTION)
+ fi
+ ;;
+ esac
+fi
+
ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings -Wc++-compat \
-Wstrict-prototypes \
-Wshadow=local], [ac_libiberty_warn_cflags])
diff --git a/libsframe/Makefile.am b/libsframe/Makefile.am
index 89e471f..864e497 100644
--- a/libsframe/Makefile.am
+++ b/libsframe/Makefile.am
@@ -27,7 +27,7 @@ MAINTAINERCLEANFILES =
INCDIR = $(srcdir)/../include
# include libctf for swap.h
-AM_CPPFLAGS = -I$(srcdir) -I$(srcdir)/../include -I$(srcdir)/../libctf
+AM_CPPFLAGS = -I$(srcdir)/../include -I$(srcdir)/../libctf
AM_CFLAGS = @ac_libsframe_warn_cflags@
libsframe_version_info = -version-info `grep -v '^\#' $(srcdir)/libtool-version`
# libsframe does not restrict the set of exported symbols. So, if linker does
diff --git a/libsframe/Makefile.in b/libsframe/Makefile.in
index fa705dd..c313506 100644
--- a/libsframe/Makefile.in
+++ b/libsframe/Makefile.in
@@ -124,8 +124,10 @@ subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../bfd/acinclude.m4 \
$(top_srcdir)/../config/acx.m4 \
+ $(top_srcdir)/../config/clang-plugin.m4 \
$(top_srcdir)/../config/dejagnu.m4 \
$(top_srcdir)/../config/depstand.m4 \
+ $(top_srcdir)/../config/gcc-plugin.m4 \
$(top_srcdir)/../config/jobserver.m4 \
$(top_srcdir)/../config/lead-dot.m4 \
$(top_srcdir)/../config/mmap.m4 \
@@ -201,42 +203,37 @@ am_testsuite_libsframe_decode_be_flipping_OBJECTS = testsuite/libsframe.decode/t
testsuite_libsframe_decode_be_flipping_OBJECTS = \
$(am_testsuite_libsframe_decode_be_flipping_OBJECTS)
testsuite_libsframe_decode_be_flipping_DEPENDENCIES = \
- ${top_builddir}/libsframe.la
+ $(testsuite_LDADD)
am_testsuite_libsframe_decode_frecnt_1_OBJECTS = testsuite/libsframe.decode/testsuite_libsframe_decode_frecnt_1-frecnt-1.$(OBJEXT)
testsuite_libsframe_decode_frecnt_1_OBJECTS = \
$(am_testsuite_libsframe_decode_frecnt_1_OBJECTS)
-testsuite_libsframe_decode_frecnt_1_DEPENDENCIES = \
- ${top_builddir}/libsframe.la
+testsuite_libsframe_decode_frecnt_1_DEPENDENCIES = $(testsuite_LDADD)
am_testsuite_libsframe_decode_frecnt_2_OBJECTS = testsuite/libsframe.decode/testsuite_libsframe_decode_frecnt_2-frecnt-2.$(OBJEXT)
testsuite_libsframe_decode_frecnt_2_OBJECTS = \
$(am_testsuite_libsframe_decode_frecnt_2_OBJECTS)
-testsuite_libsframe_decode_frecnt_2_DEPENDENCIES = \
- ${top_builddir}/libsframe.la
+testsuite_libsframe_decode_frecnt_2_DEPENDENCIES = $(testsuite_LDADD)
am_testsuite_libsframe_encode_encode_1_OBJECTS = testsuite/libsframe.encode/testsuite_libsframe_encode_encode_1-encode-1.$(OBJEXT)
testsuite_libsframe_encode_encode_1_OBJECTS = \
$(am_testsuite_libsframe_encode_encode_1_OBJECTS)
-testsuite_libsframe_encode_encode_1_DEPENDENCIES = \
- ${top_builddir}/libsframe.la
+testsuite_libsframe_encode_encode_1_DEPENDENCIES = $(testsuite_LDADD)
am_testsuite_libsframe_find_findfre_1_OBJECTS = testsuite/libsframe.find/testsuite_libsframe_find_findfre_1-findfre-1.$(OBJEXT)
testsuite_libsframe_find_findfre_1_OBJECTS = \
$(am_testsuite_libsframe_find_findfre_1_OBJECTS)
-testsuite_libsframe_find_findfre_1_DEPENDENCIES = \
- ${top_builddir}/libsframe.la
+testsuite_libsframe_find_findfre_1_DEPENDENCIES = $(testsuite_LDADD)
am_testsuite_libsframe_find_findfunc_1_OBJECTS = testsuite/libsframe.find/testsuite_libsframe_find_findfunc_1-findfunc-1.$(OBJEXT)
testsuite_libsframe_find_findfunc_1_OBJECTS = \
$(am_testsuite_libsframe_find_findfunc_1_OBJECTS)
-testsuite_libsframe_find_findfunc_1_DEPENDENCIES = \
- ${top_builddir}/libsframe.la
+testsuite_libsframe_find_findfunc_1_DEPENDENCIES = $(testsuite_LDADD)
am_testsuite_libsframe_find_plt_findfre_1_OBJECTS = testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_1-plt-findfre-1.$(OBJEXT)
testsuite_libsframe_find_plt_findfre_1_OBJECTS = \
$(am_testsuite_libsframe_find_plt_findfre_1_OBJECTS)
testsuite_libsframe_find_plt_findfre_1_DEPENDENCIES = \
- ${top_builddir}/libsframe.la
+ $(testsuite_LDADD)
am_testsuite_libsframe_find_plt_findfre_2_OBJECTS = testsuite/libsframe.find/testsuite_libsframe_find_plt_findfre_2-plt-findfre-2.$(OBJEXT)
testsuite_libsframe_find_plt_findfre_2_OBJECTS = \
$(am_testsuite_libsframe_find_plt_findfre_2_OBJECTS)
testsuite_libsframe_find_plt_findfre_2_DEPENDENCIES = \
- ${top_builddir}/libsframe.la
+ $(testsuite_LDADD)
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
@@ -424,6 +421,7 @@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
+LLVM_CONFIG = @LLVM_CONFIG@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
@@ -535,7 +533,7 @@ DISTCLEANFILES = $(am__append_2)
MAINTAINERCLEANFILES = $(am__append_3)
INCDIR = $(srcdir)/../include
# include libctf for swap.h
-AM_CPPFLAGS = -I$(srcdir) -I$(srcdir)/../include -I$(srcdir)/../libctf
+AM_CPPFLAGS = -I$(srcdir)/../include -I$(srcdir)/../libctf
AM_CFLAGS = @ac_libsframe_warn_cflags@
libsframe_version_info = -version-info `grep -v '^\#' $(srcdir)/libtool-version`
@HAVE_LD_VERSION_SCRIPT_TRUE@@HAVE_SOLARIS_LD_FALSE@libsframe_version_script = -Wl,--version-script=$(srcdir)/libsframe.ver
@@ -557,30 +555,32 @@ EXTRA_DIST = libtool-version libsframe.ver
EXPECT = expect
RUNTEST = runtest
RUNTESTFLAGS =
+testsuite_LDADD = $(top_builddir)/libsframe.la
+testsuite_CPPFLAGS = -I$(srcdir)/testsuite -I$(srcdir)/../include
testsuite_libsframe_decode_be_flipping_SOURCES = testsuite/libsframe.decode/be-flipping.c
-testsuite_libsframe_decode_be_flipping_LDADD = ${top_builddir}/libsframe.la
-testsuite_libsframe_decode_be_flipping_CPPFLAGS = -I${top_srcdir}/../include -Wall
+testsuite_libsframe_decode_be_flipping_LDADD = $(testsuite_LDADD)
+testsuite_libsframe_decode_be_flipping_CPPFLAGS = $(testsuite_CPPFLAGS)
testsuite_libsframe_decode_frecnt_1_SOURCES = testsuite/libsframe.decode/frecnt-1.c
-testsuite_libsframe_decode_frecnt_1_LDADD = ${top_builddir}/libsframe.la
-testsuite_libsframe_decode_frecnt_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+testsuite_libsframe_decode_frecnt_1_LDADD = $(testsuite_LDADD)
+testsuite_libsframe_decode_frecnt_1_CPPFLAGS = $(testsuite_CPPFLAGS)
testsuite_libsframe_decode_frecnt_2_SOURCES = testsuite/libsframe.decode/frecnt-2.c
-testsuite_libsframe_decode_frecnt_2_LDADD = ${top_builddir}/libsframe.la
-testsuite_libsframe_decode_frecnt_2_CPPFLAGS = -I${top_srcdir}/../include -Wall
+testsuite_libsframe_decode_frecnt_2_LDADD = $(testsuite_LDADD)
+testsuite_libsframe_decode_frecnt_2_CPPFLAGS = $(testsuite_CPPFLAGS)
testsuite_libsframe_encode_encode_1_SOURCES = testsuite/libsframe.encode/encode-1.c
-testsuite_libsframe_encode_encode_1_LDADD = ${top_builddir}/libsframe.la
-testsuite_libsframe_encode_encode_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+testsuite_libsframe_encode_encode_1_LDADD = $(testsuite_LDADD)
+testsuite_libsframe_encode_encode_1_CPPFLAGS = $(testsuite_CPPFLAGS)
testsuite_libsframe_find_findfre_1_SOURCES = testsuite/libsframe.find/findfre-1.c
-testsuite_libsframe_find_findfre_1_LDADD = ${top_builddir}/libsframe.la
-testsuite_libsframe_find_findfre_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+testsuite_libsframe_find_findfre_1_LDADD = $(testsuite_LDADD)
+testsuite_libsframe_find_findfre_1_CPPFLAGS = $(testsuite_CPPFLAGS)
testsuite_libsframe_find_findfunc_1_SOURCES = testsuite/libsframe.find/findfunc-1.c
-testsuite_libsframe_find_findfunc_1_LDADD = ${top_builddir}/libsframe.la
-testsuite_libsframe_find_findfunc_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+testsuite_libsframe_find_findfunc_1_LDADD = $(testsuite_LDADD)
+testsuite_libsframe_find_findfunc_1_CPPFLAGS = $(testsuite_CPPFLAGS)
testsuite_libsframe_find_plt_findfre_1_SOURCES = testsuite/libsframe.find/plt-findfre-1.c
-testsuite_libsframe_find_plt_findfre_1_LDADD = ${top_builddir}/libsframe.la
-testsuite_libsframe_find_plt_findfre_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+testsuite_libsframe_find_plt_findfre_1_LDADD = $(testsuite_LDADD)
+testsuite_libsframe_find_plt_findfre_1_CPPFLAGS = $(testsuite_CPPFLAGS)
testsuite_libsframe_find_plt_findfre_2_SOURCES = testsuite/libsframe.find/plt-findfre-2.c
-testsuite_libsframe_find_plt_findfre_2_LDADD = ${top_builddir}/libsframe.la
-testsuite_libsframe_find_plt_findfre_2_CPPFLAGS = -I${top_srcdir}/../include -Wall
+testsuite_libsframe_find_plt_findfre_2_LDADD = $(testsuite_LDADD)
+testsuite_libsframe_find_plt_findfre_2_CPPFLAGS = $(testsuite_CPPFLAGS)
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-am
diff --git a/libsframe/aclocal.m4 b/libsframe/aclocal.m4
index 8804d9f..c47bb61 100644
--- a/libsframe/aclocal.m4
+++ b/libsframe/aclocal.m4
@@ -1229,8 +1229,10 @@ AC_SUBST([am__untar])
m4_include([../bfd/acinclude.m4])
m4_include([../config/acx.m4])
+m4_include([../config/clang-plugin.m4])
m4_include([../config/dejagnu.m4])
m4_include([../config/depstand.m4])
+m4_include([../config/gcc-plugin.m4])
m4_include([../config/jobserver.m4])
m4_include([../config/lead-dot.m4])
m4_include([../config/mmap.m4])
diff --git a/libsframe/configure b/libsframe/configure
index 4727eff..715ce58 100755
--- a/libsframe/configure
+++ b/libsframe/configure
@@ -658,6 +658,7 @@ OTOOL
LIPO
NMEDIT
DSYMUTIL
+LLVM_CONFIG
OBJDUMP
LN_S
NM
@@ -6610,8 +6611,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
-plugin_option=
+
+# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
+# wrong plugin_option with clang.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
+$as_echo_n "checking for clang... " >&6; }
+if ${clang_cv_is_clang+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __clang__
+ yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ clang_cv_is_clang=yes
+else
+ clang_cv_is_clang=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
+$as_echo "$clang_cv_is_clang" >&6; }
+ plugin_file=
+ if test $clang_cv_is_clang = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
+$as_echo_n "checking for clang plugin file... " >&6; }
+ plugin_names="LLVMgold.so"
+ for plugin in $plugin_names; do
+ plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
+ if test x$plugin_file = x$plugin; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LLVM_CONFIG"; then
+ ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
+if test -n "$LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
+$as_echo "$LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LLVM_CONFIG"; then
+ ac_ct_LLVM_CONFIG=$LLVM_CONFIG
+ # Extract the first word of "llvm-config", so it can be a program name with args.
+set dummy llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LLVM_CONFIG"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
+if test -n "$ac_ct_LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
+$as_echo "$ac_ct_LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LLVM_CONFIG" = x; then
+ LLVM_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LLVM_CONFIG=$ac_ct_LLVM_CONFIG
+ fi
+else
+ LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
+fi
+
+ if test "$?" != 0; then
+ as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
+ fi
+ clang_lib_dir=`$LLVM_CONFIG --libdir`
+ if test -f $clang_lib_dir/$plugin; then
+ plugin_file=$clang_lib_dir/$plugin
+ fi
+ if test x$plugin_file != x$plugin; then
+ break;
+ fi
+ fi
+ done
+ if test -z $plugin_file; then
+ as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
+ fi
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+ if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ plugin_option="--plugin $plugin_file"
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_file=
+ fi
+ rm -f conftest.*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
+$as_echo "$plugin_file" >&6; }
+ fi
+ plugin_file="$plugin_file"
+
+if test -n "$plugin_file"; then
+ plugin_option="--plugin $plugin_file"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
+$as_echo_n "checking for -plugin option... " >&6; }
+
plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+plugin_option=
for plugin in $plugin_names; do
plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
if test x$plugin_so = x$plugin; then
@@ -6622,7 +6881,119 @@ for plugin in $plugin_names; do
break
fi
done
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+fi
+touch conftest.c
+${AR} $plugin_option rc conftest.a conftest.c
+if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_option=
+fi
+rm -f conftest.*
+if test -n "$plugin_option"; then
+ plugin_option="$plugin_option"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+$as_echo "$plugin_option" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
@@ -6717,17 +7088,15 @@ fi
test -z "$AR" && AR=ar
if test -n "$plugin_option"; then
- if $AR --help 2>&1 | grep -q "\--plugin"; then
- touch conftest.c
- $AR $plugin_option rc conftest.a conftest.c
- if test "$?" != 0; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
-$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
- else
+ case "$AR" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $AR --help 2>&1 | grep -q "\--plugin"; then
AR="$AR $plugin_option"
fi
- rm -f conftest.*
- fi
+ ;;
+ esac
fi
test -z "$AR_FLAGS" && AR_FLAGS=cru
@@ -6934,9 +7303,15 @@ fi
test -z "$RANLIB" && RANLIB=:
if test -n "$plugin_option" && test "$RANLIB" != ":"; then
- if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
- RANLIB="$RANLIB $plugin_option"
- fi
+ case "$RANLIB" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
+ RANLIB="$RANLIB $plugin_option"
+ fi
+ ;;
+ esac
fi
@@ -11563,7 +11938,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11566 "configure"
+#line 11941 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11669,7 +12044,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11672 "configure"
+#line 12047 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
diff --git a/libsframe/doc/sframe-spec.texi b/libsframe/doc/sframe-spec.texi
index f25791e..73060ff 100644
--- a/libsframe/doc/sframe-spec.texi
+++ b/libsframe/doc/sframe-spec.texi
@@ -22,6 +22,7 @@ License''.
@title The SFrame Format
@subtitle Version 2 (Errata 1)
@sp 15
+@center @strong{*** DRAFT - NOT FOR DISTRIBUTION ***}
@center @today{}
@author Indu Bhagat
@@ -35,6 +36,9 @@ License''.
@node Top
@top The SFrame format
+@center @strong{*** DRAFT - NOT FOR DISTRIBUTION ***}
+@center @today{}
+
This manual describes version 2 (errata 1) of the SFrame file format. SFrame
stands for Simple Frame. The SFrame format keeps track of the minimal
necessary information needed for generating stack traces:
diff --git a/libsframe/sframe.c b/libsframe/sframe.c
index 824d1fd..8550079 100644
--- a/libsframe/sframe.c
+++ b/libsframe/sframe.c
@@ -969,12 +969,11 @@ sframe_decode (const char *sf_buf, size_t sf_size, int *errp)
sframe_ret_set_errno (errp, SFRAME_ERR_NOMEM);
goto decode_fail_free;
}
- memcpy (dctx->sfd_funcdesc, frame_buf, fidx_size);
+ /* SFrame FDEs are at an offset of sfh_fdeoff from SFrame header end. */
+ memcpy (dctx->sfd_funcdesc, frame_buf + sfheaderp->sfh_fdeoff, fidx_size);
debug_printf ("%u total fidx size\n", fidx_size);
- frame_buf += (fidx_size);
-
/* Handle the SFrame Frame Row Entry section. */
dctx->sfd_fres = (char *) malloc (sfheaderp->sfh_fre_len);
if (dctx->sfd_fres == NULL)
@@ -982,7 +981,10 @@ sframe_decode (const char *sf_buf, size_t sf_size, int *errp)
sframe_ret_set_errno (errp, SFRAME_ERR_NOMEM);
goto decode_fail_free;
}
- memcpy (dctx->sfd_fres, frame_buf, sfheaderp->sfh_fre_len);
+ /* SFrame FREs are at an offset of sfh_freoff from SFrame header end. */
+ memcpy (dctx->sfd_fres,
+ frame_buf + sfheaderp->sfh_freoff,
+ sfheaderp->sfh_fre_len);
fre_bytes = sfheaderp->sfh_fre_len;
dctx->sfd_fre_nbytes = fre_bytes;
diff --git a/libsframe/testsuite/libsframe.decode/be-flipping.c b/libsframe/testsuite/libsframe.decode/be-flipping.c
index 5002524..c8b627b 100644
--- a/libsframe/testsuite/libsframe.decode/be-flipping.c
+++ b/libsframe/testsuite/libsframe.decode/be-flipping.c
@@ -15,17 +15,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "config.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here. */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
/* SFrame info from the following source (1 fde 5 fres):
static int cnt;
@@ -55,6 +45,7 @@ main (void)
struct stat st;
char *sf_buf;
size_t sf_size;
+ uint8_t rep_block_size;
#define TEST(name, cond) \
do \
@@ -101,7 +92,8 @@ main (void)
unsigned int fde_cnt = sframe_decoder_get_num_fidx (dctx);
TEST ("be-flipping: Decoder FDE count", fde_cnt == 1);
- err = sframe_decoder_get_funcdesc (dctx, 0, &nfres, &fsize, &fstart, &finfo);
+ err = sframe_decoder_get_funcdesc_v2 (dctx, 0, &nfres, &fsize, &fstart,
+ &finfo, &rep_block_size);
TEST ("be-flipping: Decoder get FDE", err == 0);
TEST ("be-flipping: Decoder FRE count", nfres == 5);
diff --git a/libsframe/testsuite/libsframe.decode/frecnt-1.c b/libsframe/testsuite/libsframe.decode/frecnt-1.c
index 77b0440..9cf55ef 100644
--- a/libsframe/testsuite/libsframe.decode/frecnt-1.c
+++ b/libsframe/testsuite/libsframe.decode/frecnt-1.c
@@ -15,17 +15,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "config.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here. */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
/*
* SFrame info from the following source (1 fde 4 fres):
@@ -46,6 +36,7 @@ main (void)
struct stat st;
char *sf_buf;
size_t sf_size;
+ uint8_t rep_block_size;
#define TEST(name, cond) \
do \
@@ -85,7 +76,8 @@ main (void)
unsigned int fde_cnt = sframe_decoder_get_num_fidx (dctx);
TEST ("frecnt-1: Decoder FDE count", fde_cnt == 1);
- err = sframe_decoder_get_funcdesc (dctx, 0, &nfres, &fsize, &fstart, &finfo);
+ err = sframe_decoder_get_funcdesc_v2 (dctx, 0, &nfres, &fsize, &fstart,
+ &finfo, &rep_block_size);
TEST ("frecnt-1: Decoder get FDE", err == 0);
TEST ("frecnt-1: Decoder FRE count", nfres == 4);
diff --git a/libsframe/testsuite/libsframe.decode/frecnt-2.c b/libsframe/testsuite/libsframe.decode/frecnt-2.c
index 912fdbd..9136e9a 100644
--- a/libsframe/testsuite/libsframe.decode/frecnt-2.c
+++ b/libsframe/testsuite/libsframe.decode/frecnt-2.c
@@ -15,17 +15,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "config.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here. */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
/*
* SFrame info from the following source (2 fde 8 fres):
@@ -48,6 +38,7 @@ main (void)
struct stat st;
char *sf_buf;
size_t sf_size;
+ uint8_t rep_block_size;
#define TEST(name, cond) \
do \
@@ -88,8 +79,8 @@ main (void)
for (i = 0; i < fde_cnt; ++i)
{
- err = sframe_decoder_get_funcdesc (dctx, i, &nfres, &fsize, &fstart,
- &finfo);
+ err = sframe_decoder_get_funcdesc_v2 (dctx, i, &nfres, &fsize, &fstart,
+ &finfo, &rep_block_size);
TEST ("frecnt-2: Decode get FDE", err == 0);
TEST ("frecnt-2: Decode get FRE", nfres == 4);
}
diff --git a/libsframe/testsuite/libsframe.decode/local.mk b/libsframe/testsuite/libsframe.decode/local.mk
index 0e4279b..de34bbc 100644
--- a/libsframe/testsuite/libsframe.decode/local.mk
+++ b/libsframe/testsuite/libsframe.decode/local.mk
@@ -4,13 +4,13 @@ if HAVE_COMPAT_DEJAGNU
endif
%C%_be_flipping_SOURCES = %D%/be-flipping.c
-%C%_be_flipping_LDADD = ${top_builddir}/libsframe.la
-%C%_be_flipping_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_be_flipping_LDADD = $(testsuite_LDADD)
+%C%_be_flipping_CPPFLAGS = $(testsuite_CPPFLAGS)
%C%_frecnt_1_SOURCES = %D%/frecnt-1.c
-%C%_frecnt_1_LDADD = ${top_builddir}/libsframe.la
-%C%_frecnt_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_frecnt_1_LDADD = $(testsuite_LDADD)
+%C%_frecnt_1_CPPFLAGS = $(testsuite_CPPFLAGS)
%C%_frecnt_2_SOURCES = %D%/frecnt-2.c
-%C%_frecnt_2_LDADD = ${top_builddir}/libsframe.la
-%C%_frecnt_2_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_frecnt_2_LDADD = $(testsuite_LDADD)
+%C%_frecnt_2_CPPFLAGS = $(testsuite_CPPFLAGS)
diff --git a/libsframe/testsuite/libsframe.encode/encode-1.c b/libsframe/testsuite/libsframe.encode/encode-1.c
index 1ba75d7..da477e5 100644
--- a/libsframe/testsuite/libsframe.encode/encode-1.c
+++ b/libsframe/testsuite/libsframe.encode/encode-1.c
@@ -15,22 +15,13 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "config.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here. */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
static int
-add_fde1 (sframe_encoder_ctx *encode, int idx)
+add_fde1 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
+ uint32_t sframe_vaddr, int idx, uint32_t *func_size)
{
- int i, err;
+#define FDE1_NUM_FRES 4
/* A contiguous block containing 4 FREs. */
sframe_frame_row_entry fres[]
= { {0x0, {0x8, 0, 0}, 0x3},
@@ -38,40 +29,60 @@ add_fde1 (sframe_encoder_ctx *encode, int idx)
{0x4, {0x10, 0xf0, 0}, 0x4},
{0x1a, {0x8, 0xf0, 0}, 0x5}
};
-
+ /* Function size in bytes. P.S. Must be a value greater than the
+ fre_start_addr of the last FRE above (0x1a). */
+ *func_size = 0x1b;
+
+ uint32_t offsetof_fde_in_sec
+ = sframe_encoder_get_offsetof_fde_start_addr (encode, idx, NULL);
+ int32_t func1_start_addr = (start_pc_vaddr
+ - (sframe_vaddr + offsetof_fde_in_sec));
unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1,
SFRAME_FDE_TYPE_PCINC);
- err = sframe_encoder_add_funcdesc (encode, 0xfffff022, 0x1b, finfo, 4);
+ int err = sframe_encoder_add_funcdesc_v2 (encode, func1_start_addr,
+ *func_size, finfo, 0,
+ FDE1_NUM_FRES);
if (err == -1)
return err;
- for (i = 0; i < 4; i++)
- if (sframe_encoder_add_fre (encode, idx,fres+i) == SFRAME_ERR)
+ for (unsigned int i = 0; i < FDE1_NUM_FRES; i++)
+ if (sframe_encoder_add_fre (encode, idx, fres + i) == SFRAME_ERR)
return -1;
return 0;
}
static int
-add_fde2 (sframe_encoder_ctx *encode, int idx)
+add_fde2 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
+ uint32_t sframe_vaddr, int idx, uint32_t *func_size)
+
{
- int i, err;
/* A contiguous block containing 4 FREs. */
+#define FDE2_NUM_FRES 4
sframe_frame_row_entry fres[]
= { {0x0, {0x8, 0, 0}, 0x3},
{0x1, {0x10, 0xf0, 0}, 0x5},
{0x4, {0x10, 0xf0, 0}, 0x4},
{0xf, {0x8, 0xf0, 0}, 0x5}
};
-
+ /* Function size in bytes. P.S. Must be a value greater than the
+ fre_start_addr of the last FRE above (0xf). */
+ *func_size = 0x10;
+
+ uint32_t offsetof_fde_in_sec
+ = sframe_encoder_get_offsetof_fde_start_addr (encode, idx, NULL);
+ int32_t func1_start_addr = (start_pc_vaddr
+ - (sframe_vaddr + offsetof_fde_in_sec));
unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1,
SFRAME_FDE_TYPE_PCINC);
- err = sframe_encoder_add_funcdesc (encode, 0xfffff029, 0x10, finfo, 4);
+ int err = sframe_encoder_add_funcdesc_v2 (encode, func1_start_addr,
+ *func_size, finfo, 0,
+ FDE1_NUM_FRES);
if (err == -1)
return err;
- for (i = 0; i < 4; i++)
- if (sframe_encoder_add_fre (encode, idx, fres+i) == SFRAME_ERR)
+ for (unsigned int i = 0; i < FDE1_NUM_FRES; i++)
+ if (sframe_encoder_add_fre (encode, idx, fres + i) == SFRAME_ERR)
return -1;
return 0;
@@ -129,6 +140,11 @@ int main (void)
{
sframe_encoder_ctx *encode;
sframe_frame_row_entry frep;
+ uint32_t sframe_vaddr;
+ uint32_t func1_start_vaddr;
+ uint32_t func2_start_vaddr;
+ uint32_t func1_size = 0;
+ uint32_t func2_size = 0;
char *sframe_buf;
size_t sf_size;
int err = 0;
@@ -145,6 +161,7 @@ int main (void)
} \
while (0)
+ sframe_vaddr = 0x4020c8;
encode = sframe_encode (SFRAME_VERSION,
SFRAME_F_FDE_FUNC_START_PCREL,
SFRAME_ABI_AMD64_ENDIAN_LITTLE,
@@ -158,10 +175,13 @@ int main (void)
err = sframe_encoder_add_fre (encode, 1, &frep);
TEST ("encode-1: Encoder update workflow", err == SFRAME_ERR);
- err = add_fde1 (encode, 0);
+ func1_start_vaddr = 0x401106;
+ err = add_fde1 (encode, func1_start_vaddr, sframe_vaddr, 0, &func1_size);
TEST ("encode-1: Encoder adding FDE1", err == 0);
- err = add_fde2 (encode, 1);
+ /* Function 2 is placed after 0x0 bytes from the end of Function 1. */
+ func2_start_vaddr = func1_start_vaddr + func1_size + 0x0;
+ err = add_fde2 (encode, func2_start_vaddr, sframe_vaddr, 1, &func2_size);
TEST ("encode-1: Encoder adding FDE2", err == 0);
fde_cnt = sframe_encoder_get_num_fidx (encode);
diff --git a/libsframe/testsuite/libsframe.encode/local.mk b/libsframe/testsuite/libsframe.encode/local.mk
index 477d4b6..6b09651 100644
--- a/libsframe/testsuite/libsframe.encode/local.mk
+++ b/libsframe/testsuite/libsframe.encode/local.mk
@@ -3,5 +3,5 @@ if HAVE_COMPAT_DEJAGNU
endif
%C%_encode_1_SOURCES = %D%/encode-1.c
-%C%_encode_1_LDADD = ${top_builddir}/libsframe.la
-%C%_encode_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_encode_1_LDADD = $(testsuite_LDADD)
+%C%_encode_1_CPPFLAGS = $(testsuite_CPPFLAGS)
diff --git a/libsframe/testsuite/libsframe.find/findfre-1.c b/libsframe/testsuite/libsframe.find/findfre-1.c
index 7c7c947..cbd7ab3 100644
--- a/libsframe/testsuite/libsframe.find/findfre-1.c
+++ b/libsframe/testsuite/libsframe.find/findfre-1.c
@@ -15,17 +15,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "config.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here. */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
static int
add_fde1 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
@@ -49,8 +39,9 @@ add_fde1 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
- (sframe_vaddr + offsetof_fde_in_sec));
unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1,
SFRAME_FDE_TYPE_PCINC);
- int err = sframe_encoder_add_funcdesc (encode, func1_start_addr, *func_size,
- finfo, FDE1_NUM_FRES);
+ int err = sframe_encoder_add_funcdesc_v2 (encode, func1_start_addr,
+ *func_size, finfo, 0,
+ FDE1_NUM_FRES);
if (err == -1)
return err;
@@ -83,8 +74,9 @@ add_fde2 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
- (sframe_vaddr + offsetof_fde_in_sec));
unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1,
SFRAME_FDE_TYPE_PCINC);
- int err = sframe_encoder_add_funcdesc (encode, func2_start_addr, *func_size,
- finfo, FDE2_NUM_FRES);
+ int err = sframe_encoder_add_funcdesc_v2 (encode, func2_start_addr,
+ *func_size, finfo, 0,
+ FDE2_NUM_FRES);
if (err == -1)
return err;
diff --git a/libsframe/testsuite/libsframe.find/findfunc-1.c b/libsframe/testsuite/libsframe.find/findfunc-1.c
index 00b9e8d..1dcd870 100644
--- a/libsframe/testsuite/libsframe.find/findfunc-1.c
+++ b/libsframe/testsuite/libsframe.find/findfunc-1.c
@@ -22,17 +22,7 @@
The tests in here stress the sframe_get_funcdesc_with_addr API via calls to
the sframe_find_fre (). */
-#include "config.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here. */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
static int
add_fde1 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
@@ -56,8 +46,9 @@ add_fde1 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
- (sframe_vaddr + offsetof_fde_in_sec));
unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1,
SFRAME_FDE_TYPE_PCINC);
- int err = sframe_encoder_add_funcdesc (encode, func1_start_addr, *func_size,
- finfo, FDE1_NUM_FRES);
+ int err = sframe_encoder_add_funcdesc_v2 (encode, func1_start_addr,
+ *func_size, finfo, 0,
+ FDE1_NUM_FRES);
if (err == -1)
return err;
@@ -90,8 +81,9 @@ add_fde2 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
- (sframe_vaddr + offsetof_fde_in_sec));
unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1,
SFRAME_FDE_TYPE_PCINC);
- int err = sframe_encoder_add_funcdesc (encode, func2_start_addr, *func_size,
- finfo, FDE2_NUM_FRES);
+ int err = sframe_encoder_add_funcdesc_v2 (encode, func2_start_addr,
+ *func_size, finfo, 0,
+ FDE2_NUM_FRES);
if (err == -1)
return err;
@@ -124,8 +116,9 @@ add_fde3 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
- (sframe_vaddr + offsetof_fde_in_sec));
unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1,
SFRAME_FDE_TYPE_PCINC);
- int err = sframe_encoder_add_funcdesc (encode, func3_start_addr, *func_size,
- finfo, FDE3_NUM_FRES);
+ int err = sframe_encoder_add_funcdesc_v2 (encode, func3_start_addr,
+ *func_size, finfo, 0,
+ FDE3_NUM_FRES);
if (err == -1)
return err;
diff --git a/libsframe/testsuite/libsframe.find/local.mk b/libsframe/testsuite/libsframe.find/local.mk
index 52741e8..05c7a10 100644
--- a/libsframe/testsuite/libsframe.find/local.mk
+++ b/libsframe/testsuite/libsframe.find/local.mk
@@ -4,17 +4,17 @@ if HAVE_COMPAT_DEJAGNU
endif
%C%_findfre_1_SOURCES = %D%/findfre-1.c
-%C%_findfre_1_LDADD = ${top_builddir}/libsframe.la
-%C%_findfre_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_findfre_1_LDADD = $(testsuite_LDADD)
+%C%_findfre_1_CPPFLAGS = $(testsuite_CPPFLAGS)
%C%_findfunc_1_SOURCES = %D%/findfunc-1.c
-%C%_findfunc_1_LDADD = ${top_builddir}/libsframe.la
-%C%_findfunc_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_findfunc_1_LDADD = $(testsuite_LDADD)
+%C%_findfunc_1_CPPFLAGS = $(testsuite_CPPFLAGS)
%C%_plt_findfre_1_SOURCES = %D%/plt-findfre-1.c
-%C%_plt_findfre_1_LDADD = ${top_builddir}/libsframe.la
-%C%_plt_findfre_1_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_plt_findfre_1_LDADD = $(testsuite_LDADD)
+%C%_plt_findfre_1_CPPFLAGS = $(testsuite_CPPFLAGS)
%C%_plt_findfre_2_SOURCES = %D%/plt-findfre-2.c
-%C%_plt_findfre_2_LDADD = ${top_builddir}/libsframe.la
-%C%_plt_findfre_2_CPPFLAGS = -I${top_srcdir}/../include -Wall
+%C%_plt_findfre_2_LDADD = $(testsuite_LDADD)
+%C%_plt_findfre_2_CPPFLAGS = $(testsuite_CPPFLAGS)
diff --git a/libsframe/testsuite/libsframe.find/plt-findfre-1.c b/libsframe/testsuite/libsframe.find/plt-findfre-1.c
index 91da4bc..b41588a 100644
--- a/libsframe/testsuite/libsframe.find/plt-findfre-1.c
+++ b/libsframe/testsuite/libsframe.find/plt-findfre-1.c
@@ -15,17 +15,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "config.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here. */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
static int
add_plt_fde1 (sframe_encoder_ctx *ectx, uint32_t plt_vaddr,
diff --git a/libsframe/testsuite/libsframe.find/plt-findfre-2.c b/libsframe/testsuite/libsframe.find/plt-findfre-2.c
index 00a5b2a..61f04f0 100644
--- a/libsframe/testsuite/libsframe.find/plt-findfre-2.c
+++ b/libsframe/testsuite/libsframe.find/plt-findfre-2.c
@@ -16,17 +16,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#include "config.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-
-#include "sframe-api.h"
-
-/* DejaGnu should not use gnulib's vsnprintf replacement here. */
-#undef vsnprintf
-#include <dejagnu.h>
+#include "sframe-test.h"
/* s390x-specific size in bytes of plt0 and pltN. */
#define PLT_SIZE 32
diff --git a/libsframe/testsuite/local.mk b/libsframe/testsuite/local.mk
index 5e5ba92..4f2ea9b 100644
--- a/libsframe/testsuite/local.mk
+++ b/libsframe/testsuite/local.mk
@@ -19,6 +19,9 @@ check-DEJAGNU: site.exp
else echo "WARNING: could not find \`runtest'" 1>&2; :;\
fi
+testsuite_LDADD = $(top_builddir)/libsframe.la
+testsuite_CPPFLAGS = -I$(srcdir)/testsuite -I$(srcdir)/../include
+
# libsframe encoder/decoder/find testsuite
include %D%/libsframe.decode/local.mk
include %D%/libsframe.encode/local.mk
diff --git a/libsframe/testsuite/sframe-test.h b/libsframe/testsuite/sframe-test.h
new file mode 100644
index 0000000..d5db96b
--- /dev/null
+++ b/libsframe/testsuite/sframe-test.h
@@ -0,0 +1,43 @@
+/* sframe-test.h -- Common libsframe testsuite header.
+
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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, see <http://www.gnu.org/licenses/>. */
+
+#ifndef _SFRAME_TEST_H
+#define _SFRAME_TEST_H
+
+#include "config.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+
+#include "sframe-api.h"
+
+/* DejaGnu should not use gnulib's vsnprintf replacement here. */
+#undef vsnprintf
+
+/* PR 33168: Solaris <sys/wait.h> with __EXTENSIONS__ defined gets a
+ declaration of wait(). This conflicts with <dejagnu.h>'s wait
+ definition that is only removed after DejaGnu 1.6.3. */
+
+#define wait dg_wait
+/* Add prototype to avoid warning. */
+void wait (void);
+#include <dejagnu.h>
+#undef wait
+
+#endif /* _SFRAME_TEST_H */
diff --git a/libtool.m4 b/libtool.m4
index e36fdd3..074c49e 100644
--- a/libtool.m4
+++ b/libtool.m4
@@ -1325,32 +1325,27 @@ need_locks="$enable_libtool_lock"
# _LT_CMD_OLD_ARCHIVE
# -------------------
m4_defun([_LT_CMD_OLD_ARCHIVE],
-[plugin_option=
-plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
-for plugin in $plugin_names; do
- plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
- if test x$plugin_so = x$plugin; then
- plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin`
- fi
- if test x$plugin_so != x$plugin; then
- plugin_option="--plugin $plugin_so"
- break
- fi
-done
-
+[
+# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
+# wrong plugin_option with clang.
+CLANG_PLUGIN_FILE(plugin_file)
+if test -n "$plugin_file"; then
+ plugin_option="--plugin $plugin_file"
+else
+ GCC_PLUGIN_OPTION(plugin_option)
+fi
AC_CHECK_TOOL(AR, ar, false)
test -z "$AR" && AR=ar
if test -n "$plugin_option"; then
- if $AR --help 2>&1 | grep -q "\--plugin"; then
- touch conftest.c
- $AR $plugin_option rc conftest.a conftest.c
- if test "$?" != 0; then
- AC_MSG_WARN([Failed: $AR $plugin_option rc])
- else
+ case "$AR" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $AR --help 2>&1 | grep -q "\--plugin"; then
AR="$AR $plugin_option"
fi
- rm -f conftest.*
- fi
+ ;;
+ esac
fi
test -z "$AR_FLAGS" && AR_FLAGS=cru
_LT_DECL([], [AR], [1], [The archiver])
@@ -1363,9 +1358,15 @@ _LT_DECL([], [STRIP], [1], [A symbol stripping program])
AC_CHECK_TOOL(RANLIB, ranlib, :)
test -z "$RANLIB" && RANLIB=:
if test -n "$plugin_option" && test "$RANLIB" != ":"; then
- if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
- RANLIB="$RANLIB $plugin_option"
- fi
+ case "$RANLIB" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
+ RANLIB="$RANLIB $plugin_option"
+ fi
+ ;;
+ esac
fi
_LT_DECL([], [RANLIB], [1],
[Commands used to install an old-style archive])
diff --git a/opcodes/Makefile.in b/opcodes/Makefile.in
index 662ee5d..ed61dfc 100644
--- a/opcodes/Makefile.in
+++ b/opcodes/Makefile.in
@@ -115,7 +115,9 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../bfd/acinclude.m4 \
$(top_srcdir)/../bfd/warning.m4 $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/../config/bfd64.m4 \
+ $(top_srcdir)/../config/clang-plugin.m4 \
$(top_srcdir)/../config/depstand.m4 \
+ $(top_srcdir)/../config/gcc-plugin.m4 \
$(top_srcdir)/../config/gettext-sister.m4 \
$(top_srcdir)/../config/gettext.m4 \
$(top_srcdir)/../config/iconv.m4 \
@@ -330,6 +332,7 @@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
+LLVM_CONFIG = @LLVM_CONFIG@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
LTLIBINTL = @LTLIBINTL@
diff --git a/opcodes/aarch64-asm.c b/opcodes/aarch64-asm.c
index a9d0aeb..75216fd 100644
--- a/opcodes/aarch64-asm.c
+++ b/opcodes/aarch64-asm.c
@@ -40,7 +40,6 @@ static inline void
insert_fields (aarch64_insn *code, aarch64_insn value, aarch64_insn mask, ...)
{
uint32_t num;
- const aarch64_field *field;
enum aarch64_field_kind kind;
va_list va;
@@ -50,9 +49,8 @@ insert_fields (aarch64_insn *code, aarch64_insn value, aarch64_insn mask, ...)
while (num--)
{
kind = va_arg (va, enum aarch64_field_kind);
- field = &fields[kind];
insert_field (kind, code, value, mask);
- value >>= field->width;
+ value >>= aarch64_fields[kind].width;
}
va_end (va);
}
@@ -72,7 +70,7 @@ insert_all_fields_after (const aarch64_operand *self, unsigned int start,
{
kind = self->fields[i];
insert_field (kind, code, value, 0);
- value >>= fields[kind].width;
+ value >>= aarch64_fields[kind].width;
}
}
diff --git a/opcodes/aarch64-dis.c b/opcodes/aarch64-dis.c
index 179addc..3ca22bb 100644
--- a/opcodes/aarch64-dis.c
+++ b/opcodes/aarch64-dis.c
@@ -149,7 +149,6 @@ aarch64_insn
extract_fields (aarch64_insn code, aarch64_insn mask, ...)
{
uint32_t num;
- const aarch64_field *field;
enum aarch64_field_kind kind;
va_list va;
@@ -160,8 +159,7 @@ extract_fields (aarch64_insn code, aarch64_insn mask, ...)
while (num--)
{
kind = va_arg (va, enum aarch64_field_kind);
- field = &fields[kind];
- value <<= field->width;
+ value <<= aarch64_fields[kind].width;
value |= extract_field (kind, code, mask);
}
va_end (va);
@@ -184,7 +182,7 @@ extract_all_fields_after (const aarch64_operand *self, unsigned int start,
i < ARRAY_SIZE (self->fields) && self->fields[i] != FLD_NIL; ++i)
{
kind = self->fields[i];
- value <<= fields[kind].width;
+ value <<= aarch64_fields[kind].width;
value |= extract_field (kind, code, 0);
}
return value;
@@ -503,21 +501,21 @@ aarch64_ext_ldst_reglist (const aarch64_operand *self ATTRIBUTE_UNUSED,
static const struct
{
- unsigned is_reserved;
- unsigned num_regs;
- unsigned num_elements;
+ unsigned num_regs:8;
+ unsigned num_elements:8;
+ bool is_reserved:1;
} data [] =
- { {0, 4, 4},
- {1, 4, 4},
- {0, 4, 1},
- {0, 4, 2},
- {0, 3, 3},
- {1, 3, 3},
- {0, 3, 1},
- {0, 1, 1},
- {0, 2, 2},
- {1, 2, 2},
- {0, 2, 1},
+ { {4, 4, false},
+ {4, 4, true},
+ {4, 1, false},
+ {4, 2, false},
+ {3, 3, false},
+ {3, 3, true},
+ {3, 1, false},
+ {1, 1, false},
+ {2, 2, false},
+ {2, 2, true},
+ {2, 1, false},
};
/* Rt */
@@ -1240,7 +1238,8 @@ aarch64_ext_addr_simm (const aarch64_operand *self, aarch64_opnd_info *info,
info->addr.base_regno = extract_field (FLD_Rn, code, 0);
/* simm (imm9 or imm7) */
imm = extract_field (self->fields[0], code, 0);
- info->addr.offset.imm = sign_extend (imm, fields[self->fields[0]].width - 1);
+ info->addr.offset.imm
+ = sign_extend (imm, aarch64_fields[self->fields[0]].width - 1);
if (self->fields[0] == FLD_imm7
|| info->qualifier == AARCH64_OPND_QLF_imm_tag)
/* scaled immediate in ld/st pair instructions. */
diff --git a/opcodes/aarch64-gen.c b/opcodes/aarch64-gen.c
index 4d0b4d5..308d2c2 100644
--- a/opcodes/aarch64-gen.c
+++ b/opcodes/aarch64-gen.c
@@ -1339,7 +1339,7 @@ main (int argc, char **argv)
program_name = *argv;
xmalloc_set_program_name (program_name);
- while ((c = getopt_long (argc, argv, "vVdhacs", long_options, 0)) != EOF)
+ while ((c = getopt_long (argc, argv, "vVdhacsi", long_options, 0)) != EOF)
switch (c)
{
case 'V':
diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c
index f7dae4b..4b17320 100644
--- a/opcodes/aarch64-opc.c
+++ b/opcodes/aarch64-opc.c
@@ -223,7 +223,7 @@ aarch64_select_operand_for_sizeq_field_coding (const aarch64_opcode *opcode)
/* Instruction bit-fields.
+ Keep synced with 'enum aarch64_field_kind'. */
-const aarch64_field fields[] =
+const aarch64_field aarch64_fields[] =
{
{ 0, 0 }, /* NIL. */
{ 8, 4 }, /* CRm: in the system instructions. */
@@ -5196,18 +5196,18 @@ const aarch64_sys_reg aarch64_pstatefields [] =
{ "spsel", 0x05, F_REG_MAX_VALUE (1), AARCH64_NO_FEATURES },
{ "daifset", 0x1e, F_REG_MAX_VALUE (15), AARCH64_NO_FEATURES },
{ "daifclr", 0x1f, F_REG_MAX_VALUE (15), AARCH64_NO_FEATURES },
- { "pan", 0x04, F_REG_MAX_VALUE (1) | F_ARCHEXT, AARCH64_FEATURE (PAN) },
- { "uao", 0x03, F_REG_MAX_VALUE (1) | F_ARCHEXT, AARCH64_FEATURE (V8_2A) },
- { "ssbs", 0x19, F_REG_MAX_VALUE (1) | F_ARCHEXT, AARCH64_FEATURE (SSBS) },
- { "dit", 0x1a, F_REG_MAX_VALUE (1) | F_ARCHEXT, AARCH64_FEATURE (V8_4A) },
- { "tco", 0x1c, F_REG_MAX_VALUE (1) | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
- { "svcrsm", 0x1b, PSTATE_ENCODE_CRM_AND_IMM (0x2,0x1) | F_REG_MAX_VALUE (1)
- | F_ARCHEXT, AARCH64_FEATURE (SME) },
- { "svcrza", 0x1b, PSTATE_ENCODE_CRM_AND_IMM (0x4,0x1) | F_REG_MAX_VALUE (1)
- | F_ARCHEXT, AARCH64_FEATURE (SME) },
- { "svcrsmza", 0x1b, PSTATE_ENCODE_CRM_AND_IMM (0x6,0x1) | F_REG_MAX_VALUE (1)
- | F_ARCHEXT, AARCH64_FEATURE (SME) },
- { "allint", 0x08, F_REG_MAX_VALUE (1) | F_ARCHEXT, AARCH64_FEATURE (V8_8A) },
+ { "pan", 0x04, F_REG_MAX_VALUE (1), AARCH64_FEATURE (PAN) },
+ { "uao", 0x03, F_REG_MAX_VALUE (1), AARCH64_FEATURE (V8_2A) },
+ { "ssbs", 0x19, F_REG_MAX_VALUE (1), AARCH64_FEATURE (SSBS) },
+ { "dit", 0x1a, F_REG_MAX_VALUE (1), AARCH64_FEATURE (V8_4A) },
+ { "tco", 0x1c, F_REG_MAX_VALUE (1), AARCH64_FEATURE (MEMTAG) },
+ { "svcrsm", 0x1b, PSTATE_ENCODE_CRM_AND_IMM (0x2,0x1) | F_REG_MAX_VALUE (1),
+ AARCH64_FEATURE (SME) },
+ { "svcrza", 0x1b, PSTATE_ENCODE_CRM_AND_IMM (0x4,0x1) | F_REG_MAX_VALUE (1),
+ AARCH64_FEATURE (SME) },
+ { "svcrsmza", 0x1b, PSTATE_ENCODE_CRM_AND_IMM (0x6,0x1) | F_REG_MAX_VALUE (1),
+ AARCH64_FEATURE (SME) },
+ { "allint", 0x08, F_REG_MAX_VALUE (1), AARCH64_FEATURE (V8_8A) },
{ 0, CPENC (0,0,0,0,0), 0, AARCH64_NO_FEATURES },
};
@@ -5215,9 +5215,6 @@ bool
aarch64_pstatefield_supported_p (const aarch64_feature_set features,
const aarch64_sys_reg *reg)
{
- if (!(reg->flags & F_ARCHEXT))
- return true;
-
return AARCH64_CPU_HAS_ALL_FEATURES (features, reg->features);
}
@@ -5232,41 +5229,41 @@ const aarch64_sys_ins_reg aarch64_sys_regs_ic[] =
const aarch64_sys_ins_reg aarch64_sys_regs_dc[] =
{
{ "zva", CPENS (3, C7, C4, 1), F_HASXT, AARCH64_NO_FEATURES },
- { "gva", CPENS (3, C7, C4, 3), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
- { "gzva", CPENS (3, C7, C4, 4), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
+ { "gva", CPENS (3, C7, C4, 3), F_HASXT, AARCH64_FEATURE (MEMTAG) },
+ { "gzva", CPENS (3, C7, C4, 4), F_HASXT, AARCH64_FEATURE (MEMTAG) },
{ "ivac", CPENS (0, C7, C6, 1), F_HASXT, AARCH64_NO_FEATURES },
- { "igvac", CPENS (0, C7, C6, 3), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
- { "igsw", CPENS (0, C7, C6, 4), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
+ { "igvac", CPENS (0, C7, C6, 3), F_HASXT, AARCH64_FEATURE (MEMTAG) },
+ { "igsw", CPENS (0, C7, C6, 4), F_HASXT, AARCH64_FEATURE (MEMTAG) },
{ "isw", CPENS (0, C7, C6, 2), F_HASXT, AARCH64_NO_FEATURES },
- { "igdvac", CPENS (0, C7, C6, 5), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
- { "igdsw", CPENS (0, C7, C6, 6), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
- { "cigdvaps", CPENS (0, C7, C15, 5), F_HASXT | F_ARCHEXT, AARCH64_FEATURES (2, MEMTAG, PoPS) },
- { "civaps", CPENS (0, C7, C15, 1), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (PoPS) },
+ { "igdvac", CPENS (0, C7, C6, 5), F_HASXT, AARCH64_FEATURE (MEMTAG) },
+ { "igdsw", CPENS (0, C7, C6, 6), F_HASXT, AARCH64_FEATURE (MEMTAG) },
+ { "cigdvaps", CPENS (0, C7, C15, 5), F_HASXT, AARCH64_FEATURES (2, MEMTAG, PoPS) },
+ { "civaps", CPENS (0, C7, C15, 1), F_HASXT, AARCH64_FEATURE (PoPS) },
{ "cvac", CPENS (3, C7, C10, 1), F_HASXT, AARCH64_NO_FEATURES },
- { "cgvac", CPENS (3, C7, C10, 3), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
- { "cgdvac", CPENS (3, C7, C10, 5), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
- { "cvaoc", CPENS (3, C7, C11, 0), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (OCCMO) },
- { "cgdvaoc", CPENS (3, C7, C11, 7), F_HASXT | F_ARCHEXT, AARCH64_FEATURES (2, OCCMO, MEMTAG) },
+ { "cgvac", CPENS (3, C7, C10, 3), F_HASXT, AARCH64_FEATURE (MEMTAG) },
+ { "cgdvac", CPENS (3, C7, C10, 5), F_HASXT, AARCH64_FEATURE (MEMTAG) },
+ { "cvaoc", CPENS (3, C7, C11, 0), F_HASXT, AARCH64_FEATURE (OCCMO) },
+ { "cgdvaoc", CPENS (3, C7, C11, 7), F_HASXT, AARCH64_FEATURES (2, OCCMO, MEMTAG) },
{ "csw", CPENS (0, C7, C10, 2), F_HASXT, AARCH64_NO_FEATURES },
- { "cgsw", CPENS (0, C7, C10, 4), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
- { "cgdsw", CPENS (0, C7, C10, 6), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
+ { "cgsw", CPENS (0, C7, C10, 4), F_HASXT, AARCH64_FEATURE (MEMTAG) },
+ { "cgdsw", CPENS (0, C7, C10, 6), F_HASXT, AARCH64_FEATURE (MEMTAG) },
{ "cvau", CPENS (3, C7, C11, 1), F_HASXT, AARCH64_NO_FEATURES },
- { "cvap", CPENS (3, C7, C12, 1), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (V8_2A) },
- { "cgvap", CPENS (3, C7, C12, 3), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
- { "cgdvap", CPENS (3, C7, C12, 5), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
- { "cvadp", CPENS (3, C7, C13, 1), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (CVADP) },
- { "cgvadp", CPENS (3, C7, C13, 3), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
- { "cgdvadp", CPENS (3, C7, C13, 5), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
+ { "cvap", CPENS (3, C7, C12, 1), F_HASXT, AARCH64_FEATURE (V8_2A) },
+ { "cgvap", CPENS (3, C7, C12, 3), F_HASXT, AARCH64_FEATURE (MEMTAG) },
+ { "cgdvap", CPENS (3, C7, C12, 5), F_HASXT, AARCH64_FEATURE (MEMTAG) },
+ { "cvadp", CPENS (3, C7, C13, 1), F_HASXT, AARCH64_FEATURE (CVADP) },
+ { "cgvadp", CPENS (3, C7, C13, 3), F_HASXT, AARCH64_FEATURE (MEMTAG) },
+ { "cgdvadp", CPENS (3, C7, C13, 5), F_HASXT, AARCH64_FEATURE (MEMTAG) },
{ "civac", CPENS (3, C7, C14, 1), F_HASXT, AARCH64_NO_FEATURES },
- { "cigvac", CPENS (3, C7, C14, 3), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
- { "cigdvac", CPENS (3, C7, C14, 5), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
+ { "cigvac", CPENS (3, C7, C14, 3), F_HASXT, AARCH64_FEATURE (MEMTAG) },
+ { "cigdvac", CPENS (3, C7, C14, 5), F_HASXT, AARCH64_FEATURE (MEMTAG) },
{ "cisw", CPENS (0, C7, C14, 2), F_HASXT, AARCH64_NO_FEATURES },
- { "cigsw", CPENS (0, C7, C14, 4), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
- { "cigdsw", CPENS (0, C7, C14, 6), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
- { "civaoc", CPENS (3, C7, C15, 0), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (OCCMO) },
- { "cigdvaoc", CPENS (3, C7, C15, 7), F_HASXT | F_ARCHEXT, AARCH64_FEATURES (2, OCCMO, MEMTAG) },
- { "cipae", CPENS (4, C7, C14, 0), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (V8_7A) },
- { "cigdpae", CPENS (4, C7, C14, 7), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (V8_7A) },
+ { "cigsw", CPENS (0, C7, C14, 4), F_HASXT, AARCH64_FEATURE (MEMTAG) },
+ { "cigdsw", CPENS (0, C7, C14, 6), F_HASXT, AARCH64_FEATURE (MEMTAG) },
+ { "civaoc", CPENS (3, C7, C15, 0), F_HASXT, AARCH64_FEATURE (OCCMO) },
+ { "cigdvaoc", CPENS (3, C7, C15, 7), F_HASXT, AARCH64_FEATURES (2, OCCMO, MEMTAG) },
+ { "cipae", CPENS (4, C7, C14, 0), F_HASXT, AARCH64_FEATURE (V8_7A) },
+ { "cigdpae", CPENS (4, C7, C14, 7), F_HASXT, AARCH64_FEATURE (V8_7A) },
{ "cipapa", CPENS (6, C7, C14, 1), F_HASXT, AARCH64_NO_FEATURES },
{ "cigdpapa", CPENS (6, C7, C14, 5), F_HASXT, AARCH64_NO_FEATURES },
{ 0, CPENS(0,0,0,0), 0, AARCH64_NO_FEATURES }
@@ -5286,11 +5283,11 @@ const aarch64_sys_ins_reg aarch64_sys_regs_at[] =
{ "s1e2w", CPENS (4, C7, C8, 1), F_HASXT, AARCH64_NO_FEATURES },
{ "s1e3r", CPENS (6, C7, C8, 0), F_HASXT, AARCH64_NO_FEATURES },
{ "s1e3w", CPENS (6, C7, C8, 1), F_HASXT, AARCH64_NO_FEATURES },
- { "s1e1rp", CPENS (0, C7, C9, 0), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (V8_2A) },
- { "s1e1wp", CPENS (0, C7, C9, 1), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (V8_2A) },
- { "s1e1a", CPENS (0, C7, C9, 2), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (ATS1A) },
- { "s1e2a", CPENS (4, C7, C9, 2), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (ATS1A) },
- { "s1e3a", CPENS (6, C7, C9, 2), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (ATS1A) },
+ { "s1e1rp", CPENS (0, C7, C9, 0), F_HASXT, AARCH64_FEATURE (V8_2A) },
+ { "s1e1wp", CPENS (0, C7, C9, 1), F_HASXT, AARCH64_FEATURE (V8_2A) },
+ { "s1e1a", CPENS (0, C7, C9, 2), F_HASXT, AARCH64_FEATURE (ATS1A) },
+ { "s1e2a", CPENS (4, C7, C9, 2), F_HASXT, AARCH64_FEATURE (ATS1A) },
+ { "s1e3a", CPENS (6, C7, C9, 2), F_HASXT, AARCH64_FEATURE (ATS1A) },
{ 0, CPENS(0,0,0,0), 0, AARCH64_NO_FEATURES }
};
@@ -5303,7 +5300,7 @@ const aarch64_sys_ins_reg aarch64_sys_regs_tlbi[] =
#define TLBI_XS_OP(OP, CODE, FLAGS) \
{ OP, CODE, FLAGS, AARCH64_NO_FEATURES }, \
- { OP "nxs", CODE | CPENS (0, C9, 0, 0), FLAGS | F_ARCHEXT, AARCH64_FEATURE (XS) },
+ { OP "nxs", CODE | CPENS (0, C9, 0, 0), FLAGS, AARCH64_FEATURE (XS) },
TLBI_XS_OP ( "vmalle1", CPENS (0, C8, C7, 0), 0)
TLBI_XS_OP ( "vae1", CPENS (0, C8, C7, 1), F_HASXT | F_REG_128)
@@ -5340,8 +5337,8 @@ const aarch64_sys_ins_reg aarch64_sys_regs_tlbi[] =
#undef TLBI_XS_OP
#define TLBI_XS_OP(OP, CODE, FLAGS) \
- { OP, CODE, FLAGS | F_ARCHEXT, AARCH64_FEATURE (V8_4A) }, \
- { OP "nxs", CODE | CPENS (0, C9, 0, 0), FLAGS | F_ARCHEXT, AARCH64_FEATURE (XS) },
+ { OP, CODE, FLAGS, AARCH64_FEATURE (V8_4A) }, \
+ { OP "nxs", CODE | CPENS (0, C9, 0, 0), FLAGS, AARCH64_FEATURE (XS) },
TLBI_XS_OP ( "vmalle1os", CPENS (0, C8, C1, 0), 0 )
TLBI_XS_OP ( "vae1os", CPENS (0, C8, C1, 1), F_HASXT | F_REG_128 )
@@ -5402,7 +5399,7 @@ const aarch64_sys_ins_reg aarch64_sys_regs_sr[] =
(op2) based on the instruction in which it is used (cfp/dvp/cpp).
Thus op2 is masked out and instead encoded directly in the
aarch64_opcode_table entries for the respective instructions. */
- { "rctx", CPENS(3,C7,C3,0), F_HASXT | F_ARCHEXT | F_REG_WRITE, AARCH64_FEATURE (PREDRES) }, /* WO */
+ { "rctx", CPENS(3,C7,C3,0), F_HASXT | F_REG_WRITE, AARCH64_FEATURE (PREDRES) }, /* WO */
{ 0, CPENS(0,0,0,0), 0, AARCH64_NO_FEATURES }
};
@@ -5415,7 +5412,6 @@ aarch64_sys_ins_reg_has_xt (const aarch64_sys_ins_reg *sys_ins_reg)
extern bool
aarch64_sys_ins_reg_supported_p (const aarch64_feature_set features,
const char *reg_name,
- uint32_t reg_flags,
const aarch64_feature_set *reg_features)
{
/* Armv8-R has no EL3. */
@@ -5426,9 +5422,6 @@ aarch64_sys_ins_reg_supported_p (const aarch64_feature_set features,
return false;
}
- if (!(reg_flags & F_ARCHEXT))
- return true;
-
return AARCH64_CPU_HAS_ALL_FEATURES (features, *reg_features);
}
diff --git a/opcodes/aarch64-opc.h b/opcodes/aarch64-opc.h
index d46c56d..4182c9d 100644
--- a/opcodes/aarch64-opc.h
+++ b/opcodes/aarch64-opc.h
@@ -251,7 +251,7 @@ struct aarch64_field
typedef struct aarch64_field aarch64_field;
-extern const aarch64_field fields[];
+extern const aarch64_field aarch64_fields[];
/* Operand description. */
@@ -307,8 +307,7 @@ verify_constraints (const struct aarch64_inst *, const aarch64_insn, bfd_vma,
#undef F_DEPRECATED
#define F_DEPRECATED (1 << 0) /* Deprecated system register. */
-#undef F_ARCHEXT
-#define F_ARCHEXT (1 << 1) /* Architecture dependent system register. */
+/* (1 << 1) Unused. */
#undef F_HASXT
#define F_HASXT (1 << 2) /* System instruction register <Xt>
@@ -427,7 +426,7 @@ static inline unsigned
get_operand_field_width (const aarch64_operand *operand, unsigned n)
{
assert (operand->fields[n] != FLD_NIL);
- return fields[operand->fields[n]].width;
+ return aarch64_fields[operand->fields[n]].width;
}
/* Return the total width of the operand *OPERAND. */
@@ -437,7 +436,7 @@ get_operand_fields_width (const aarch64_operand *operand)
int i = 0;
unsigned width = 0;
while (operand->fields[i] != FLD_NIL)
- width += fields[operand->fields[i++]].width;
+ width += aarch64_fields[operand->fields[i++]].width;
assert (width > 0 && width < 32);
return width;
}
@@ -482,7 +481,7 @@ gen_mask (int width)
static inline int
gen_sub_field (enum aarch64_field_kind kind, int lsb_rel, int width, aarch64_field *ret)
{
- const aarch64_field *field = &fields[kind];
+ const aarch64_field *field = &aarch64_fields[kind];
if (lsb_rel < 0 || width <= 0 || lsb_rel + width > field->width)
return 0;
ret->lsb = field->lsb + lsb_rel;
@@ -528,7 +527,7 @@ static inline void
insert_field (enum aarch64_field_kind kind, aarch64_insn *code,
aarch64_insn value, aarch64_insn mask)
{
- insert_field_2 (&fields[kind], code, value, mask);
+ insert_field_2 (&aarch64_fields[kind], code, value, mask);
}
/* Extract field KIND of CODE and return the value. MASK can be zero or the
@@ -538,7 +537,7 @@ static inline aarch64_insn
extract_field (enum aarch64_field_kind kind, aarch64_insn code,
aarch64_insn mask)
{
- return extract_field_2 (&fields[kind], code, mask);
+ return extract_field_2 (&aarch64_fields[kind], code, mask);
}
extern aarch64_insn
diff --git a/opcodes/aarch64-sys-regs.def b/opcodes/aarch64-sys-regs.def
index 5cb2342..51aab23 100644
--- a/opcodes/aarch64-sys-regs.def
+++ b/opcodes/aarch64-sys-regs.def
@@ -36,1235 +36,1254 @@
The FEATURES field maps onto ISA flags and specifies the architectural
feature requirements of the system register. */
- SYSREG ("accdata_el1", CPENC (3,0,13,0,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("actlr_el1", CPENC (3,0,1,0,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("actlr_el2", CPENC (3,4,1,0,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("actlr_el3", CPENC (3,6,1,0,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("afsr0_el1", CPENC (3,0,5,1,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("afsr0_el12", CPENC (3,5,5,1,0), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("afsr0_el2", CPENC (3,4,5,1,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("afsr0_el3", CPENC (3,6,5,1,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("afsr1_el1", CPENC (3,0,5,1,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("afsr1_el12", CPENC (3,5,5,1,1), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("afsr1_el2", CPENC (3,4,5,1,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("afsr1_el3", CPENC (3,6,5,1,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("aidr_el1", CPENC (3,1,0,0,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("allint", CPENC (3,0,4,3,0), F_ARCHEXT, AARCH64_FEATURE (V8_8A))
- SYSREG ("amair_el1", CPENC (3,0,10,3,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("amair_el12", CPENC (3,5,10,3,0), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("amair_el2", CPENC (3,4,10,3,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("amair_el3", CPENC (3,6,10,3,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("amair2_el1", CPENC (3,0,10,3,1), F_ARCHEXT, AARCH64_FEATURE (AIE))
- SYSREG ("amair2_el12", CPENC (3,5,10,3,1), F_ARCHEXT, AARCH64_FEATURE (AIE))
- SYSREG ("amair2_el2", CPENC (3,4,10,3,1), F_ARCHEXT, AARCH64_FEATURE (AIE))
- SYSREG ("amair2_el3", CPENC (3,6,10,3,1), F_ARCHEXT, AARCH64_FEATURE (AIE))
- SYSREG ("amcfgr_el0", CPENC (3,3,13,2,1), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amcg1idr_el0", CPENC (3,3,13,2,6), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amcgcr_el0", CPENC (3,3,13,2,2), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amcntenclr0_el0", CPENC (3,3,13,2,4), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amcntenclr1_el0", CPENC (3,3,13,3,0), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amcntenset0_el0", CPENC (3,3,13,2,5), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amcntenset1_el0", CPENC (3,3,13,3,1), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amcr_el0", CPENC (3,3,13,2,0), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevcntr00_el0", CPENC (3,3,13,4,0), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevcntr01_el0", CPENC (3,3,13,4,1), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevcntr02_el0", CPENC (3,3,13,4,2), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevcntr03_el0", CPENC (3,3,13,4,3), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevcntr10_el0", CPENC (3,3,13,12,0), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevcntr110_el0", CPENC (3,3,13,13,2), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevcntr111_el0", CPENC (3,3,13,13,3), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevcntr112_el0", CPENC (3,3,13,13,4), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevcntr113_el0", CPENC (3,3,13,13,5), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevcntr114_el0", CPENC (3,3,13,13,6), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevcntr115_el0", CPENC (3,3,13,13,7), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevcntr11_el0", CPENC (3,3,13,12,1), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevcntr12_el0", CPENC (3,3,13,12,2), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevcntr13_el0", CPENC (3,3,13,12,3), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevcntr14_el0", CPENC (3,3,13,12,4), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevcntr15_el0", CPENC (3,3,13,12,5), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevcntr16_el0", CPENC (3,3,13,12,6), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevcntr17_el0", CPENC (3,3,13,12,7), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevcntr18_el0", CPENC (3,3,13,13,0), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevcntr19_el0", CPENC (3,3,13,13,1), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevcntvoff00_el2", CPENC (3,4,13,8,0), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff010_el2", CPENC (3,4,13,9,2), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff011_el2", CPENC (3,4,13,9,3), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff012_el2", CPENC (3,4,13,9,4), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff013_el2", CPENC (3,4,13,9,5), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff014_el2", CPENC (3,4,13,9,6), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff015_el2", CPENC (3,4,13,9,7), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff01_el2", CPENC (3,4,13,8,1), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff02_el2", CPENC (3,4,13,8,2), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff03_el2", CPENC (3,4,13,8,3), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff04_el2", CPENC (3,4,13,8,4), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff05_el2", CPENC (3,4,13,8,5), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff06_el2", CPENC (3,4,13,8,6), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff07_el2", CPENC (3,4,13,8,7), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff08_el2", CPENC (3,4,13,9,0), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff09_el2", CPENC (3,4,13,9,1), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff10_el2", CPENC (3,4,13,10,0), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff110_el2", CPENC (3,4,13,11,2), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff111_el2", CPENC (3,4,13,11,3), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff112_el2", CPENC (3,4,13,11,4), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff113_el2", CPENC (3,4,13,11,5), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff114_el2", CPENC (3,4,13,11,6), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff115_el2", CPENC (3,4,13,11,7), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff11_el2", CPENC (3,4,13,10,1), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff12_el2", CPENC (3,4,13,10,2), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff13_el2", CPENC (3,4,13,10,3), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff14_el2", CPENC (3,4,13,10,4), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff15_el2", CPENC (3,4,13,10,5), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff16_el2", CPENC (3,4,13,10,6), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff17_el2", CPENC (3,4,13,10,7), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff18_el2", CPENC (3,4,13,11,0), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevcntvoff19_el2", CPENC (3,4,13,11,1), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("amevtyper00_el0", CPENC (3,3,13,6,0), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevtyper01_el0", CPENC (3,3,13,6,1), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevtyper02_el0", CPENC (3,3,13,6,2), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevtyper03_el0", CPENC (3,3,13,6,3), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevtyper10_el0", CPENC (3,3,13,14,0), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevtyper110_el0", CPENC (3,3,13,15,2), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevtyper111_el0", CPENC (3,3,13,15,3), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevtyper112_el0", CPENC (3,3,13,15,4), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevtyper113_el0", CPENC (3,3,13,15,5), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevtyper114_el0", CPENC (3,3,13,15,6), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevtyper115_el0", CPENC (3,3,13,15,7), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevtyper11_el0", CPENC (3,3,13,14,1), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevtyper12_el0", CPENC (3,3,13,14,2), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevtyper13_el0", CPENC (3,3,13,14,3), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevtyper14_el0", CPENC (3,3,13,14,4), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevtyper15_el0", CPENC (3,3,13,14,5), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevtyper16_el0", CPENC (3,3,13,14,6), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevtyper17_el0", CPENC (3,3,13,14,7), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevtyper18_el0", CPENC (3,3,13,15,0), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amevtyper19_el0", CPENC (3,3,13,15,1), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("amuserenr_el0", CPENC (3,3,13,2,3), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("apdakeyhi_el1", CPENC (3,0,2,2,1), F_ARCHEXT, AARCH64_FEATURE (V8_3A))
- SYSREG ("apdakeylo_el1", CPENC (3,0,2,2,0), F_ARCHEXT, AARCH64_FEATURE (V8_3A))
- SYSREG ("apdbkeyhi_el1", CPENC (3,0,2,2,3), F_ARCHEXT, AARCH64_FEATURE (V8_3A))
- SYSREG ("apdbkeylo_el1", CPENC (3,0,2,2,2), F_ARCHEXT, AARCH64_FEATURE (V8_3A))
- SYSREG ("apgakeyhi_el1", CPENC (3,0,2,3,1), F_ARCHEXT, AARCH64_FEATURE (V8_3A))
- SYSREG ("apgakeylo_el1", CPENC (3,0,2,3,0), F_ARCHEXT, AARCH64_FEATURE (V8_3A))
- SYSREG ("apiakeyhi_el1", CPENC (3,0,2,1,1), F_ARCHEXT, AARCH64_FEATURE (V8_3A))
- SYSREG ("apiakeylo_el1", CPENC (3,0,2,1,0), F_ARCHEXT, AARCH64_FEATURE (V8_3A))
- SYSREG ("apibkeyhi_el1", CPENC (3,0,2,1,3), F_ARCHEXT, AARCH64_FEATURE (V8_3A))
- SYSREG ("apibkeylo_el1", CPENC (3,0,2,1,2), F_ARCHEXT, AARCH64_FEATURE (V8_3A))
- SYSREG ("brbcr_el1", CPENC (2,1,9,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("brbcr_el12", CPENC (2,5,9,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("brbcr_el2", CPENC (2,4,9,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("brbfcr_el1", CPENC (2,1,9,0,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("brbidr0_el1", CPENC (2,1,9,2,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf0_el1", CPENC (2,1,8,0,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf10_el1", CPENC (2,1,8,10,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf11_el1", CPENC (2,1,8,11,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf12_el1", CPENC (2,1,8,12,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf13_el1", CPENC (2,1,8,13,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf14_el1", CPENC (2,1,8,14,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf15_el1", CPENC (2,1,8,15,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf16_el1", CPENC (2,1,8,0,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf17_el1", CPENC (2,1,8,1,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf18_el1", CPENC (2,1,8,2,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf19_el1", CPENC (2,1,8,3,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf1_el1", CPENC (2,1,8,1,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf20_el1", CPENC (2,1,8,4,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf21_el1", CPENC (2,1,8,5,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf22_el1", CPENC (2,1,8,6,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf23_el1", CPENC (2,1,8,7,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf24_el1", CPENC (2,1,8,8,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf25_el1", CPENC (2,1,8,9,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf26_el1", CPENC (2,1,8,10,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf27_el1", CPENC (2,1,8,11,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf28_el1", CPENC (2,1,8,12,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf29_el1", CPENC (2,1,8,13,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf2_el1", CPENC (2,1,8,2,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf30_el1", CPENC (2,1,8,14,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf31_el1", CPENC (2,1,8,15,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf3_el1", CPENC (2,1,8,3,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf4_el1", CPENC (2,1,8,4,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf5_el1", CPENC (2,1,8,5,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf6_el1", CPENC (2,1,8,6,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf7_el1", CPENC (2,1,8,7,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf8_el1", CPENC (2,1,8,8,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinf9_el1", CPENC (2,1,8,9,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbinfinj_el1", CPENC (2,1,9,1,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc0_el1", CPENC (2,1,8,0,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc10_el1", CPENC (2,1,8,10,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc11_el1", CPENC (2,1,8,11,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc12_el1", CPENC (2,1,8,12,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc13_el1", CPENC (2,1,8,13,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc14_el1", CPENC (2,1,8,14,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc15_el1", CPENC (2,1,8,15,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc16_el1", CPENC (2,1,8,0,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc17_el1", CPENC (2,1,8,1,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc18_el1", CPENC (2,1,8,2,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc19_el1", CPENC (2,1,8,3,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc1_el1", CPENC (2,1,8,1,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc20_el1", CPENC (2,1,8,4,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc21_el1", CPENC (2,1,8,5,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc22_el1", CPENC (2,1,8,6,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc23_el1", CPENC (2,1,8,7,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc24_el1", CPENC (2,1,8,8,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc25_el1", CPENC (2,1,8,9,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc26_el1", CPENC (2,1,8,10,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc27_el1", CPENC (2,1,8,11,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc28_el1", CPENC (2,1,8,12,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc29_el1", CPENC (2,1,8,13,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc2_el1", CPENC (2,1,8,2,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc30_el1", CPENC (2,1,8,14,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc31_el1", CPENC (2,1,8,15,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc3_el1", CPENC (2,1,8,3,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc4_el1", CPENC (2,1,8,4,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc5_el1", CPENC (2,1,8,5,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc6_el1", CPENC (2,1,8,6,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc7_el1", CPENC (2,1,8,7,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc8_el1", CPENC (2,1,8,8,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrc9_el1", CPENC (2,1,8,9,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbsrcinj_el1", CPENC (2,1,9,1,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt0_el1", CPENC (2,1,8,0,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt10_el1", CPENC (2,1,8,10,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt11_el1", CPENC (2,1,8,11,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt12_el1", CPENC (2,1,8,12,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt13_el1", CPENC (2,1,8,13,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt14_el1", CPENC (2,1,8,14,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt15_el1", CPENC (2,1,8,15,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt16_el1", CPENC (2,1,8,0,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt17_el1", CPENC (2,1,8,1,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt18_el1", CPENC (2,1,8,2,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt19_el1", CPENC (2,1,8,3,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt1_el1", CPENC (2,1,8,1,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt20_el1", CPENC (2,1,8,4,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt21_el1", CPENC (2,1,8,5,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt22_el1", CPENC (2,1,8,6,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt23_el1", CPENC (2,1,8,7,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt24_el1", CPENC (2,1,8,8,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt25_el1", CPENC (2,1,8,9,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt26_el1", CPENC (2,1,8,10,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt27_el1", CPENC (2,1,8,11,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt28_el1", CPENC (2,1,8,12,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt29_el1", CPENC (2,1,8,13,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt2_el1", CPENC (2,1,8,2,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt30_el1", CPENC (2,1,8,14,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt31_el1", CPENC (2,1,8,15,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt3_el1", CPENC (2,1,8,3,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt4_el1", CPENC (2,1,8,4,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt5_el1", CPENC (2,1,8,5,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt6_el1", CPENC (2,1,8,6,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt7_el1", CPENC (2,1,8,7,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt8_el1", CPENC (2,1,8,8,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgt9_el1", CPENC (2,1,8,9,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("brbtgtinj_el1", CPENC (2,1,9,1,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("brbts_el1", CPENC (2,1,9,0,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("ccsidr2_el1", CPENC (3,1,0,0,2), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (V8_3A))
- SYSREG ("ccsidr_el1", CPENC (3,1,0,0,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("clidr_el1", CPENC (3,1,0,0,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("cntfrq_el0", CPENC (3,3,14,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("cnthctl_el2", CPENC (3,4,14,1,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("cnthp_ctl_el2", CPENC (3,4,14,2,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("cnthp_cval_el2", CPENC (3,4,14,2,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("cnthp_tval_el2", CPENC (3,4,14,2,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("cnthps_ctl_el2", CPENC (3,4,14,5,1), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("cnthps_cval_el2", CPENC (3,4,14,5,2), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("cnthps_tval_el2", CPENC (3,4,14,5,0), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("cnthv_ctl_el2", CPENC (3,4,14,3,1), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("cnthv_cval_el2", CPENC (3,4,14,3,2), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("cnthv_tval_el2", CPENC (3,4,14,3,0), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("cnthvs_ctl_el2", CPENC (3,4,14,4,1), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("cnthvs_cval_el2", CPENC (3,4,14,4,2), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("cnthvs_tval_el2", CPENC (3,4,14,4,0), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("cntkctl_el1", CPENC (3,0,14,1,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("cntkctl_el12", CPENC (3,5,14,1,0), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("cntp_ctl_el0", CPENC (3,3,14,2,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("cntp_ctl_el02", CPENC (3,5,14,2,1), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("cntp_cval_el0", CPENC (3,3,14,2,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("cntp_cval_el02", CPENC (3,5,14,2,2), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("cntp_tval_el0", CPENC (3,3,14,2,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("cntp_tval_el02", CPENC (3,5,14,2,0), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("cntpct_el0", CPENC (3,3,14,0,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("cntpctss_el0", CPENC (3,3,14,0,5), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("cntpoff_el2", CPENC (3,4,14,0,6), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("cntps_ctl_el1", CPENC (3,7,14,2,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("cntps_cval_el1", CPENC (3,7,14,2,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("cntps_tval_el1", CPENC (3,7,14,2,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("cntv_ctl_el0", CPENC (3,3,14,3,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("cntv_ctl_el02", CPENC (3,5,14,3,1), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("cntv_cval_el0", CPENC (3,3,14,3,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("cntv_cval_el02", CPENC (3,5,14,3,2), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("cntv_tval_el0", CPENC (3,3,14,3,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("cntv_tval_el02", CPENC (3,5,14,3,0), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("cntvct_el0", CPENC (3,3,14,0,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("cntvctss_el0", CPENC (3,3,14,0,6), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("cntvoff_el2", CPENC (3,4,14,0,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("contextidr_el1", CPENC (3,0,13,0,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("contextidr_el12", CPENC (3,5,13,0,1), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("contextidr_el2", CPENC (3,4,13,0,1), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("cpacr_el1", CPENC (3,0,1,0,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("cpacr_el12", CPENC (3,5,1,0,2), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("cptr_el2", CPENC (3,4,1,1,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("cptr_el3", CPENC (3,6,1,1,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("csrcr_el0", CPENC (2,3,8,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("csrcr_el1", CPENC (2,0,8,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("csrcr_el12", CPENC (2,5,8,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("csrcr_el2", CPENC (2,4,8,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("csridr_el0", CPENC (2,3,8,0,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("csrptr_el0", CPENC (2,3,8,0,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("csrptr_el1", CPENC (2,0,8,0,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("csrptr_el12", CPENC (2,5,8,0,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("csrptr_el2", CPENC (2,4,8,0,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("csrptridx_el0", CPENC (2,3,8,0,3), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("csrptridx_el1", CPENC (2,0,8,0,3), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("csrptridx_el2", CPENC (2,4,8,0,3), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("csselr_el1", CPENC (3,2,0,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("ctr_el0", CPENC (3,3,0,0,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("currentel", CPENC (3,0,4,2,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("dacr32_el2", CPENC (3,4,3,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("daif", CPENC (3,3,4,2,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgauthstatus_el1", CPENC (2,0,7,14,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("dbgbcr0_el1", CPENC (2,0,0,0,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbcr10_el1", CPENC (2,0,0,10,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbcr11_el1", CPENC (2,0,0,11,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbcr12_el1", CPENC (2,0,0,12,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbcr13_el1", CPENC (2,0,0,13,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbcr14_el1", CPENC (2,0,0,14,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbcr15_el1", CPENC (2,0,0,15,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbcr1_el1", CPENC (2,0,0,1,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbcr2_el1", CPENC (2,0,0,2,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbcr3_el1", CPENC (2,0,0,3,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbcr4_el1", CPENC (2,0,0,4,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbcr5_el1", CPENC (2,0,0,5,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbcr6_el1", CPENC (2,0,0,6,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbcr7_el1", CPENC (2,0,0,7,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbcr8_el1", CPENC (2,0,0,8,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbcr9_el1", CPENC (2,0,0,9,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbvr0_el1", CPENC (2,0,0,0,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbvr10_el1", CPENC (2,0,0,10,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbvr11_el1", CPENC (2,0,0,11,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbvr12_el1", CPENC (2,0,0,12,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbvr13_el1", CPENC (2,0,0,13,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbvr14_el1", CPENC (2,0,0,14,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbvr15_el1", CPENC (2,0,0,15,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbvr1_el1", CPENC (2,0,0,1,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbvr2_el1", CPENC (2,0,0,2,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbvr3_el1", CPENC (2,0,0,3,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbvr4_el1", CPENC (2,0,0,4,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbvr5_el1", CPENC (2,0,0,5,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbvr6_el1", CPENC (2,0,0,6,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbvr7_el1", CPENC (2,0,0,7,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbvr8_el1", CPENC (2,0,0,8,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgbvr9_el1", CPENC (2,0,0,9,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgclaimclr_el1", CPENC (2,0,7,9,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgclaimset_el1", CPENC (2,0,7,8,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgdtr_el0", CPENC (2,3,0,4,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgdtrrx_el0", CPENC (2,3,0,5,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("dbgdtrtx_el0", CPENC (2,3,0,5,0), F_REG_WRITE, AARCH64_NO_FEATURES)
- SYSREG ("dbgprcr_el1", CPENC (2,0,1,4,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgvcr32_el2", CPENC (2,4,0,7,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwcr0_el1", CPENC (2,0,0,0,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwcr10_el1", CPENC (2,0,0,10,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwcr11_el1", CPENC (2,0,0,11,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwcr12_el1", CPENC (2,0,0,12,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwcr13_el1", CPENC (2,0,0,13,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwcr14_el1", CPENC (2,0,0,14,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwcr15_el1", CPENC (2,0,0,15,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwcr1_el1", CPENC (2,0,0,1,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwcr2_el1", CPENC (2,0,0,2,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwcr3_el1", CPENC (2,0,0,3,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwcr4_el1", CPENC (2,0,0,4,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwcr5_el1", CPENC (2,0,0,5,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwcr6_el1", CPENC (2,0,0,6,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwcr7_el1", CPENC (2,0,0,7,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwcr8_el1", CPENC (2,0,0,8,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwcr9_el1", CPENC (2,0,0,9,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwvr0_el1", CPENC (2,0,0,0,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwvr10_el1", CPENC (2,0,0,10,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwvr11_el1", CPENC (2,0,0,11,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwvr12_el1", CPENC (2,0,0,12,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwvr13_el1", CPENC (2,0,0,13,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwvr14_el1", CPENC (2,0,0,14,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwvr15_el1", CPENC (2,0,0,15,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwvr1_el1", CPENC (2,0,0,1,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwvr2_el1", CPENC (2,0,0,2,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwvr3_el1", CPENC (2,0,0,3,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwvr4_el1", CPENC (2,0,0,4,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwvr5_el1", CPENC (2,0,0,5,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwvr6_el1", CPENC (2,0,0,6,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwvr7_el1", CPENC (2,0,0,7,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwvr8_el1", CPENC (2,0,0,8,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("dbgwvr9_el1", CPENC (2,0,0,9,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("dczid_el0", CPENC (3,3,0,0,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("disr_el1", CPENC (3,0,12,1,1), F_ARCHEXT, AARCH64_FEATURE (RAS))
- SYSREG ("dit", CPENC (3,3,4,2,5), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("dlr_el0", CPENC (3,3,4,5,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("dspsr_el0", CPENC (3,3,4,5,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("elr_el1", CPENC (3,0,4,0,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("elr_el12", CPENC (3,5,4,0,1), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("elr_el2", CPENC (3,4,4,0,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("elr_el3", CPENC (3,6,4,0,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("erridr_el1", CPENC (3,0,5,3,0), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (RAS))
- SYSREG ("errselr_el1", CPENC (3,0,5,3,1), F_ARCHEXT, AARCH64_FEATURE (RAS))
- SYSREG ("erxaddr_el1", CPENC (3,0,5,4,3), F_ARCHEXT, AARCH64_FEATURE (RAS))
- SYSREG ("erxctlr_el1", CPENC (3,0,5,4,1), F_ARCHEXT, AARCH64_FEATURE (RAS))
- SYSREG ("erxfr_el1", CPENC (3,0,5,4,0), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (RAS))
- SYSREG ("erxgsr_el1", CPENC (3,0,5,3,2), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (RASv2))
- SYSREG ("erxmisc0_el1", CPENC (3,0,5,5,0), F_ARCHEXT, AARCH64_FEATURE (RAS))
- SYSREG ("erxmisc1_el1", CPENC (3,0,5,5,1), F_ARCHEXT, AARCH64_FEATURE (RAS))
- SYSREG ("erxmisc2_el1", CPENC (3,0,5,5,2), F_ARCHEXT, AARCH64_FEATURE (RAS))
- SYSREG ("erxmisc3_el1", CPENC (3,0,5,5,3), F_ARCHEXT, AARCH64_FEATURE (RAS))
- SYSREG ("erxpfgcdn_el1", CPENC (3,0,5,4,6), F_ARCHEXT, AARCH64_FEATURE (RAS))
- SYSREG ("erxpfgctl_el1", CPENC (3,0,5,4,5), F_ARCHEXT, AARCH64_FEATURE (RAS))
- SYSREG ("erxpfgf_el1", CPENC (3,0,5,4,4), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (RAS))
- SYSREG ("erxstatus_el1", CPENC (3,0,5,4,2), F_ARCHEXT, AARCH64_FEATURE (RAS))
- SYSREG ("esr_el1", CPENC (3,0,5,2,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("esr_el12", CPENC (3,5,5,2,0), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("esr_el2", CPENC (3,4,5,2,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("esr_el3", CPENC (3,6,5,2,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("far_el1", CPENC (3,0,6,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("far_el12", CPENC (3,5,6,0,0), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("far_el2", CPENC (3,4,6,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("far_el3", CPENC (3,6,6,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("fpcr", CPENC (3,3,4,4,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("fpexc32_el2", CPENC (3,4,5,3,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("fpmr", CPENC (3,3,4,4,2), F_ARCHEXT, AARCH64_FEATURE (FP8))
- SYSREG ("fpsr", CPENC (3,3,4,4,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("gcspr_el0", CPENC (3,3,2,5,1), F_ARCHEXT, AARCH64_FEATURE (GCS))
- SYSREG ("gcspr_el1", CPENC (3,0,2,5,1), F_ARCHEXT, AARCH64_FEATURE (GCS))
- SYSREG ("gcspr_el2", CPENC (3,4,2,5,1), F_ARCHEXT, AARCH64_FEATURE (GCS))
- SYSREG ("gcspr_el12", CPENC (3,5,2,5,1), F_ARCHEXT, AARCH64_FEATURE (GCS))
- SYSREG ("gcspr_el3", CPENC (3,6,2,5,1), F_ARCHEXT, AARCH64_FEATURE (GCS))
- SYSREG ("gcscre0_el1", CPENC (3,0,2,5,2), F_ARCHEXT, AARCH64_FEATURE (GCS))
- SYSREG ("gcscr_el1", CPENC (3,0,2,5,0), F_ARCHEXT, AARCH64_FEATURE (GCS))
- SYSREG ("gcscr_el2", CPENC (3,4,2,5,0), F_ARCHEXT, AARCH64_FEATURE (GCS))
- SYSREG ("gcscr_el12", CPENC (3,5,2,5,0), F_ARCHEXT, AARCH64_FEATURE (GCS))
- SYSREG ("gcscr_el3", CPENC (3,6,2,5,0), F_ARCHEXT, AARCH64_FEATURE (GCS))
- SYSREG ("gcr_el1", CPENC (3,0,1,0,6), F_ARCHEXT, AARCH64_FEATURE (MEMTAG))
- SYSREG ("gmid_el1", CPENC (3,1,0,0,4), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (MEMTAG))
- SYSREG ("gpcbw_el3", CPENC (3,6,2,1,5), F_ARCHEXT, AARCH64_FEATURE (V9_5A))
- SYSREG ("gpccr_el3", CPENC (3,6,2,1,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("gptbr_el3", CPENC (3,6,2,1,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("hacr_el2", CPENC (3,4,1,1,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("hafgrtr_el2", CPENC (3,4,3,1,6), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("hcr_el2", CPENC (3,4,1,1,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("hcrx_el2", CPENC (3,4,1,2,2), F_ARCHEXT, AARCH64_FEATURE (V8_7A))
- SYSREG ("hdfgrtr_el2", CPENC (3,4,3,1,4), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("hdfgrtr2_el2", CPENC (3,4,3,1,0), F_ARCHEXT, AARCH64_FEATURE (FGT2))
- SYSREG ("hdfgwtr_el2", CPENC (3,4,3,1,5), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("hdfgwtr2_el2", CPENC (3,4,3,1,1), F_ARCHEXT, AARCH64_FEATURE (FGT2))
- SYSREG ("hfgitr_el2", CPENC (3,4,1,1,6), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("hfgitr2_el2", CPENC (3,4,3,1,7), F_ARCHEXT, AARCH64_FEATURE (V8_8A))
- SYSREG ("hfgrtr_el2", CPENC (3,4,1,1,4), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("hfgrtr2_el2", CPENC (3,4,3,1,2), F_ARCHEXT, AARCH64_FEATURE (FGT2))
- SYSREG ("hfgwtr_el2", CPENC (3,4,1,1,5), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
- SYSREG ("hfgwtr2_el2", CPENC (3,4,3,1,3), F_ARCHEXT, AARCH64_FEATURE (FGT2))
- SYSREG ("hpfar_el2", CPENC (3,4,6,0,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("hstr_el2", CPENC (3,4,1,1,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("icc_ap0r0_el1", CPENC (3,0,12,8,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("icc_ap0r1_el1", CPENC (3,0,12,8,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("icc_ap0r2_el1", CPENC (3,0,12,8,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("icc_ap0r3_el1", CPENC (3,0,12,8,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("icc_ap1r0_el1", CPENC (3,0,12,9,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("icc_ap1r1_el1", CPENC (3,0,12,9,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("icc_ap1r2_el1", CPENC (3,0,12,9,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("icc_ap1r3_el1", CPENC (3,0,12,9,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("icc_asgi1r_el1", CPENC (3,0,12,11,6), F_REG_WRITE, AARCH64_NO_FEATURES)
- SYSREG ("icc_bpr0_el1", CPENC (3,0,12,8,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("icc_bpr1_el1", CPENC (3,0,12,12,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("icc_ctlr_el1", CPENC (3,0,12,12,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("icc_ctlr_el3", CPENC (3,6,12,12,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("icc_dir_el1", CPENC (3,0,12,11,1), F_REG_WRITE, AARCH64_NO_FEATURES)
- SYSREG ("icc_eoir0_el1", CPENC (3,0,12,8,1), F_REG_WRITE, AARCH64_NO_FEATURES)
- SYSREG ("icc_eoir1_el1", CPENC (3,0,12,12,1), F_REG_WRITE, AARCH64_NO_FEATURES)
- SYSREG ("icc_hppir0_el1", CPENC (3,0,12,8,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("icc_hppir1_el1", CPENC (3,0,12,12,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("icc_iar0_el1", CPENC (3,0,12,8,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("icc_iar1_el1", CPENC (3,0,12,12,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("icc_igrpen0_el1", CPENC (3,0,12,12,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("icc_igrpen1_el1", CPENC (3,0,12,12,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("icc_igrpen1_el3", CPENC (3,6,12,12,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("icc_nmiar1_el1", CPENC (3,0,12,9,5), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (V8_8A))
- SYSREG ("icc_pmr_el1", CPENC (3,0,4,6,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("icc_rpr_el1", CPENC (3,0,12,11,3), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("icc_sgi0r_el1", CPENC (3,0,12,11,7), F_REG_WRITE, AARCH64_NO_FEATURES)
- SYSREG ("icc_sgi1r_el1", CPENC (3,0,12,11,5), F_REG_WRITE, AARCH64_NO_FEATURES)
- SYSREG ("icc_sre_el1", CPENC (3,0,12,12,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("icc_sre_el2", CPENC (3,4,12,9,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("icc_sre_el3", CPENC (3,6,12,12,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_ap0r0_el2", CPENC (3,4,12,8,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_ap0r1_el2", CPENC (3,4,12,8,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_ap0r2_el2", CPENC (3,4,12,8,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_ap0r3_el2", CPENC (3,4,12,8,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_ap1r0_el2", CPENC (3,4,12,9,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_ap1r1_el2", CPENC (3,4,12,9,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_ap1r2_el2", CPENC (3,4,12,9,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_ap1r3_el2", CPENC (3,4,12,9,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_eisr_el2", CPENC (3,4,12,11,3), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("ich_elrsr_el2", CPENC (3,4,12,11,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("ich_hcr_el2", CPENC (3,4,12,11,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_lr0_el2", CPENC (3,4,12,12,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_lr10_el2", CPENC (3,4,12,13,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_lr11_el2", CPENC (3,4,12,13,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_lr12_el2", CPENC (3,4,12,13,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_lr13_el2", CPENC (3,4,12,13,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_lr14_el2", CPENC (3,4,12,13,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_lr15_el2", CPENC (3,4,12,13,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_lr1_el2", CPENC (3,4,12,12,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_lr2_el2", CPENC (3,4,12,12,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_lr3_el2", CPENC (3,4,12,12,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_lr4_el2", CPENC (3,4,12,12,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_lr5_el2", CPENC (3,4,12,12,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_lr6_el2", CPENC (3,4,12,12,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_lr7_el2", CPENC (3,4,12,12,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_lr8_el2", CPENC (3,4,12,13,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_lr9_el2", CPENC (3,4,12,13,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_misr_el2", CPENC (3,4,12,11,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("ich_vmcr_el2", CPENC (3,4,12,11,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("ich_vtr_el2", CPENC (3,4,12,11,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_aa64afr0_el1", CPENC (3,0,0,5,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_aa64afr1_el1", CPENC (3,0,0,5,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_aa64dfr0_el1", CPENC (3,0,0,5,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_aa64dfr1_el1", CPENC (3,0,0,5,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_aa64dfr2_el1", CPENC (3,0,0,5,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_aa64fpfr0_el1", CPENC (3,0,0,4,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_aa64isar0_el1", CPENC (3,0,0,6,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_aa64isar1_el1", CPENC (3,0,0,6,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_aa64isar2_el1", CPENC (3,0,0,6,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_aa64isar3_el1", CPENC (3,0,0,6,3), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_aa64mmfr0_el1", CPENC (3,0,0,7,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_aa64mmfr1_el1", CPENC (3,0,0,7,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_aa64mmfr2_el1", CPENC (3,0,0,7,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_aa64mmfr3_el1", CPENC (3,0,0,7,3), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_aa64mmfr4_el1", CPENC (3,0,0,7,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_aa64pfr0_el1", CPENC (3,0,0,4,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_aa64pfr1_el1", CPENC (3,0,0,4,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_aa64pfr2_el1", CPENC (3,0,0,4,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_aa64smfr0_el1", CPENC (3,0,0,4,5), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (SME))
- SYSREG ("id_aa64zfr0_el1", CPENC (3,0,0,4,4), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (SVE))
- SYSREG ("id_afr0_el1", CPENC (3,0,0,1,3), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_dfr0_el1", CPENC (3,0,0,1,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_dfr1_el1", CPENC (3,0,0,3,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_isar0_el1", CPENC (3,0,0,2,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_isar1_el1", CPENC (3,0,0,2,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_isar2_el1", CPENC (3,0,0,2,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_isar3_el1", CPENC (3,0,0,2,3), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_isar4_el1", CPENC (3,0,0,2,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_isar5_el1", CPENC (3,0,0,2,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_isar6_el1", CPENC (3,0,0,2,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_mmfr0_el1", CPENC (3,0,0,1,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_mmfr1_el1", CPENC (3,0,0,1,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_mmfr2_el1", CPENC (3,0,0,1,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_mmfr3_el1", CPENC (3,0,0,1,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_mmfr4_el1", CPENC (3,0,0,2,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_mmfr5_el1", CPENC (3,0,0,3,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_pfr0_el1", CPENC (3,0,0,1,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_pfr1_el1", CPENC (3,0,0,1,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("id_pfr2_el1", CPENC (3,0,0,3,4), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (ID_PFR2))
- SYSREG ("ifsr32_el2", CPENC (3,4,5,0,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("isr_el1", CPENC (3,0,12,1,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("lorc_el1", CPENC (3,0,10,4,3), F_ARCHEXT, AARCH64_FEATURE (LOR))
- SYSREG ("lorea_el1", CPENC (3,0,10,4,1), F_ARCHEXT, AARCH64_FEATURE (LOR))
- SYSREG ("lorid_el1", CPENC (3,0,10,4,7), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (LOR))
- SYSREG ("lorn_el1", CPENC (3,0,10,4,2), F_ARCHEXT, AARCH64_FEATURE (LOR))
- SYSREG ("lorsa_el1", CPENC (3,0,10,4,0), F_ARCHEXT, AARCH64_FEATURE (LOR))
- SYSREG ("mair_el1", CPENC (3,0,10,2,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("mair_el12", CPENC (3,5,10,2,0), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("mair_el2", CPENC (3,4,10,2,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("mair_el3", CPENC (3,6,10,2,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("mair2_el1", CPENC (3,0,10,2,1), F_ARCHEXT, AARCH64_FEATURE (AIE))
- SYSREG ("mair2_el12", CPENC (3,5,10,2,1), F_ARCHEXT, AARCH64_FEATURE (AIE))
- SYSREG ("mair2_el2", CPENC (3,4,10,1,1), F_ARCHEXT, AARCH64_FEATURE (AIE))
- SYSREG ("mair2_el3", CPENC (3,6,10,1,1), F_ARCHEXT, AARCH64_FEATURE (AIE))
- SYSREG ("mdccint_el1", CPENC (2,0,0,2,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("mdccsr_el0", CPENC (2,3,0,1,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("mdcr_el2", CPENC (3,4,1,1,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("mdcr_el3", CPENC (3,6,1,3,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("mdrar_el1", CPENC (2,0,1,0,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("mdscr_el1", CPENC (2,0,0,2,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("mdselr_el1", CPENC (2,0,0,4,2), F_ARCHEXT, AARCH64_FEATURE (DEBUGv8p9))
- SYSREG ("mdstepop_el1", CPENC (2,0,0,5,2), F_ARCHEXT, AARCH64_FEATURE (STEP2))
- SYSREG ("mecid_a0_el2", CPENC (3,4,10,8,1), F_ARCHEXT, AARCH64_FEATURE (V8_7A))
- SYSREG ("mecid_a1_el2", CPENC (3,4,10,8,3), F_ARCHEXT, AARCH64_FEATURE (V8_7A))
- SYSREG ("mecid_p0_el2", CPENC (3,4,10,8,0), F_ARCHEXT, AARCH64_FEATURE (V8_7A))
- SYSREG ("mecid_p1_el2", CPENC (3,4,10,8,2), F_ARCHEXT, AARCH64_FEATURE (V8_7A))
- SYSREG ("mecid_rl_a_el3", CPENC (3,6,10,10,1), F_ARCHEXT, AARCH64_FEATURE (V8_7A))
- SYSREG ("mecidr_el2", CPENC (3,4,10,8,7), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (V8_7A))
- SYSREG ("mfar_el3", CPENC (3,6,6,0,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("midr_el1", CPENC (3,0,0,0,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("mpam0_el1", CPENC (3,0,10,5,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("mpam1_el1", CPENC (3,0,10,5,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("mpam1_el12", CPENC (3,5,10,5,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("mpam2_el2", CPENC (3,4,10,5,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("mpam3_el3", CPENC (3,6,10,5,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("mpambw0_el1", CPENC (3,0,10,5,5), F_ARCHEXT, AARCH64_FEATURE (V9_3A))
- SYSREG ("mpambw1_el1", CPENC (3,0,10,5,4), F_ARCHEXT, AARCH64_FEATURE (V9_3A))
- SYSREG ("mpambw1_el12", CPENC (3,5,10,5,4), F_ARCHEXT, AARCH64_FEATURE (V9_3A))
- SYSREG ("mpambw2_el2", CPENC (3,4,10,5,4), F_ARCHEXT, AARCH64_FEATURE (V9_3A))
- SYSREG ("mpambw3_el3", CPENC (3,6,10,5,4), F_ARCHEXT, AARCH64_FEATURE (V9_3A))
- SYSREG ("mpambwcap_el2", CPENC (3,4,10,5,6), F_ARCHEXT, AARCH64_FEATURE (V9_3A))
- SYSREG ("mpambwidr_el1", CPENC (3,0,10,4,5), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (V9_3A))
- SYSREG ("mpambwsm_el1", CPENC (3,0,10,5,7), F_ARCHEXT, AARCH64_FEATURES (2, SME, V9_3A))
- SYSREG ("mpamhcr_el2", CPENC (3,4,10,4,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("mpamidr_el1", CPENC (3,0,10,4,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("mpamsm_el1", CPENC (3,0,10,5,3), F_ARCHEXT, AARCH64_FEATURE (SME))
- SYSREG ("mpamvpm0_el2", CPENC (3,4,10,6,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("mpamvpm1_el2", CPENC (3,4,10,6,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("mpamvpm2_el2", CPENC (3,4,10,6,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("mpamvpm3_el2", CPENC (3,4,10,6,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("mpamvpm4_el2", CPENC (3,4,10,6,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("mpamvpm5_el2", CPENC (3,4,10,6,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("mpamvpm6_el2", CPENC (3,4,10,6,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("mpamvpm7_el2", CPENC (3,4,10,6,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("mpamvpmv_el2", CPENC (3,4,10,4,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("mpidr_el1", CPENC (3,0,0,0,5), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("mpuir_el1", CPENC (3,0,0,0,4), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("mpuir_el2", CPENC (3,4,0,0,4), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("mvfr0_el1", CPENC (3,0,0,3,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("mvfr1_el1", CPENC (3,0,0,3,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("mvfr2_el1", CPENC (3,0,0,3,2), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("nzcv", CPENC (3,3,4,2,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("osdlr_el1", CPENC (2,0,1,3,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("osdtrrx_el1", CPENC (2,0,0,0,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("osdtrtx_el1", CPENC (2,0,0,3,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("oseccr_el1", CPENC (2,0,0,6,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("oslar_el1", CPENC (2,0,1,0,4), F_REG_WRITE, AARCH64_NO_FEATURES)
- SYSREG ("oslsr_el1", CPENC (2,0,1,1,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("pir_el1", CPENC (3,0,10,2,3), F_ARCHEXT, AARCH64_FEATURE (S1PIE))
- SYSREG ("pir_el12", CPENC (3,5,10,2,3), F_ARCHEXT, AARCH64_FEATURE (S1PIE))
- SYSREG ("pir_el2", CPENC (3,4,10,2,3), F_ARCHEXT, AARCH64_FEATURE (S1PIE))
- SYSREG ("pir_el3", CPENC (3,6,10,2,3), F_ARCHEXT, AARCH64_FEATURE (S1PIE))
- SYSREG ("pire0_el1", CPENC (3,0,10,2,2), F_ARCHEXT, AARCH64_FEATURE (S1PIE))
- SYSREG ("pire0_el12", CPENC (3,5,10,2,2), F_ARCHEXT, AARCH64_FEATURE (S1PIE))
- SYSREG ("pire0_el2", CPENC (3,4,10,2,2), F_ARCHEXT, AARCH64_FEATURE (S1PIE))
- SYSREG ("pan", CPENC (3,0,4,2,3), F_ARCHEXT, AARCH64_FEATURE (PAN))
- SYSREG ("par_el1", CPENC (3,0,7,4,0), F_REG_128, AARCH64_NO_FEATURES)
- SYSREG ("pfar_el1", CPENC (3,0,6,0,5), F_ARCHEXT, AARCH64_FEATURE (PFAR))
- SYSREG ("pfar_el12", CPENC (3,5,6,0,5), F_ARCHEXT, AARCH64_FEATURE (PFAR))
- SYSREG ("pfar_el2", CPENC (3,4,6,0,5), F_ARCHEXT, AARCH64_FEATURE (PFAR))
- SYSREG ("pmbidr_el1", CPENC (3,0,9,10,7), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PROFILE))
- SYSREG ("pmblimitr_el1", CPENC (3,0,9,10,0), F_ARCHEXT, AARCH64_FEATURE (PROFILE))
- SYSREG ("pmbmar_el1", CPENC (3,0,9,10,5), F_ARCHEXT, AARCH64_FEATURES (2, PROFILE, V9_5A))
- SYSREG ("pmbptr_el1", CPENC (3,0,9,10,1), F_ARCHEXT, AARCH64_FEATURE (PROFILE))
- SYSREG ("pmbsr_el1", CPENC (3,0,9,10,3), F_ARCHEXT, AARCH64_FEATURE (PROFILE))
- SYSREG ("pmbsr_el12", CPENC (3,5,9,10,3), F_ARCHEXT, AARCH64_FEATURES (2, V9_5A, PROFILE))
- SYSREG ("pmbsr_el2", CPENC (3,4,9,10,3), F_ARCHEXT, AARCH64_FEATURES (2, V9_5A, PROFILE))
- SYSREG ("pmbsr_el3", CPENC (3,6,9,10,3), F_ARCHEXT, AARCH64_FEATURES (2, V9_5A, PROFILE))
- SYSREG ("pmccfiltr_el0", CPENC (3,3,14,15,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmccntr_el0", CPENC (3,3,9,13,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmccntsvr_el1", CPENC (2,0,14,11,7), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmceid0_el0", CPENC (3,3,9,12,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("pmceid1_el0", CPENC (3,3,9,12,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("pmcntenclr_el0", CPENC (3,3,9,12,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmcntenset_el0", CPENC (3,3,9,12,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmcr_el0", CPENC (3,3,9,12,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmecr_el1", CPENC (3,0,9,14,5), F_ARCHEXT, AARCH64_FEATURE (SEBEP))
- SYSREG ("pmevcntr0_el0", CPENC (3,3,14,8,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr10_el0", CPENC (3,3,14,9,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr11_el0", CPENC (3,3,14,9,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr12_el0", CPENC (3,3,14,9,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr13_el0", CPENC (3,3,14,9,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr14_el0", CPENC (3,3,14,9,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr15_el0", CPENC (3,3,14,9,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr16_el0", CPENC (3,3,14,10,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr17_el0", CPENC (3,3,14,10,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr18_el0", CPENC (3,3,14,10,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr19_el0", CPENC (3,3,14,10,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr1_el0", CPENC (3,3,14,8,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr20_el0", CPENC (3,3,14,10,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr21_el0", CPENC (3,3,14,10,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr22_el0", CPENC (3,3,14,10,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr23_el0", CPENC (3,3,14,10,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr24_el0", CPENC (3,3,14,11,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr25_el0", CPENC (3,3,14,11,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr26_el0", CPENC (3,3,14,11,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr27_el0", CPENC (3,3,14,11,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr28_el0", CPENC (3,3,14,11,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr29_el0", CPENC (3,3,14,11,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr2_el0", CPENC (3,3,14,8,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr30_el0", CPENC (3,3,14,11,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr3_el0", CPENC (3,3,14,8,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr4_el0", CPENC (3,3,14,8,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr5_el0", CPENC (3,3,14,8,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr6_el0", CPENC (3,3,14,8,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr7_el0", CPENC (3,3,14,8,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr8_el0", CPENC (3,3,14,9,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntr9_el0", CPENC (3,3,14,9,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevcntsvr0_el1", CPENC (2,0,14,8,0), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr10_el1", CPENC (2,0,14,9,2), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr11_el1", CPENC (2,0,14,9,3), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr12_el1", CPENC (2,0,14,9,4), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr13_el1", CPENC (2,0,14,9,5), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr14_el1", CPENC (2,0,14,9,6), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr15_el1", CPENC (2,0,14,9,7), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr16_el1", CPENC (2,0,14,10,0), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr17_el1", CPENC (2,0,14,10,1), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr18_el1", CPENC (2,0,14,10,2), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr19_el1", CPENC (2,0,14,10,3), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr1_el1", CPENC (2,0,14,8,1), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr20_el1", CPENC (2,0,14,10,4), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr21_el1", CPENC (2,0,14,10,5), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr22_el1", CPENC (2,0,14,10,6), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr23_el1", CPENC (2,0,14,10,7), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr24_el1", CPENC (2,0,14,11,0), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr25_el1", CPENC (2,0,14,11,1), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr26_el1", CPENC (2,0,14,11,2), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr27_el1", CPENC (2,0,14,11,3), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr28_el1", CPENC (2,0,14,11,4), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr29_el1", CPENC (2,0,14,11,5), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr2_el1", CPENC (2,0,14,8,2), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr30_el1", CPENC (2,0,14,11,6), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr3_el1", CPENC (2,0,14,8,3), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr4_el1", CPENC (2,0,14,8,4), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr5_el1", CPENC (2,0,14,8,5), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr6_el1", CPENC (2,0,14,8,6), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr7_el1", CPENC (2,0,14,8,7), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr8_el1", CPENC (2,0,14,9,0), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevcntsvr9_el1", CPENC (2,0,14,9,1), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmevtyper0_el0", CPENC (3,3,14,12,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper10_el0", CPENC (3,3,14,13,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper11_el0", CPENC (3,3,14,13,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper12_el0", CPENC (3,3,14,13,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper13_el0", CPENC (3,3,14,13,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper14_el0", CPENC (3,3,14,13,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper15_el0", CPENC (3,3,14,13,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper16_el0", CPENC (3,3,14,14,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper17_el0", CPENC (3,3,14,14,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper18_el0", CPENC (3,3,14,14,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper19_el0", CPENC (3,3,14,14,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper1_el0", CPENC (3,3,14,12,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper20_el0", CPENC (3,3,14,14,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper21_el0", CPENC (3,3,14,14,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper22_el0", CPENC (3,3,14,14,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper23_el0", CPENC (3,3,14,14,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper24_el0", CPENC (3,3,14,15,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper25_el0", CPENC (3,3,14,15,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper26_el0", CPENC (3,3,14,15,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper27_el0", CPENC (3,3,14,15,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper28_el0", CPENC (3,3,14,15,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper29_el0", CPENC (3,3,14,15,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper2_el0", CPENC (3,3,14,12,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper30_el0", CPENC (3,3,14,15,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper3_el0", CPENC (3,3,14,12,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper4_el0", CPENC (3,3,14,12,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper5_el0", CPENC (3,3,14,12,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper6_el0", CPENC (3,3,14,12,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper7_el0", CPENC (3,3,14,12,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper8_el0", CPENC (3,3,14,13,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmevtyper9_el0", CPENC (3,3,14,13,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmiar_el1", CPENC (3,0,9,14,7), F_ARCHEXT, AARCH64_FEATURE (SEBEP))
- SYSREG ("pmicfiltr_el0", CPENC (3,3,9,6,0), F_ARCHEXT, AARCH64_FEATURE (PMUv3_ICNTR))
- SYSREG ("pmicntr_el0", CPENC (3,3,9,4,0), F_ARCHEXT, AARCH64_FEATURE (PMUv3_ICNTR))
- SYSREG ("pmicntsvr_el1", CPENC (2,0,14,12,0), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmintenclr_el1", CPENC (3,0,9,14,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmintenset_el1", CPENC (3,0,9,14,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmmir_el1", CPENC (3,0,9,14,6), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("pmovsclr_el0", CPENC (3,3,9,12,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmovsset_el0", CPENC (3,3,9,14,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmscr_el1", CPENC (3,0,9,9,0), F_ARCHEXT, AARCH64_FEATURE (PROFILE))
- SYSREG ("pmscr_el12", CPENC (3,5,9,9,0), F_ARCHEXT, AARCH64_FEATURE (PROFILE))
- SYSREG ("pmscr_el2", CPENC (3,4,9,9,0), F_ARCHEXT, AARCH64_FEATURE (PROFILE))
- SYSREG ("pmsdsfr_el1", CPENC (3,0,9,10,4), F_ARCHEXT, AARCH64_FEATURE (SPE_FDS))
- SYSREG ("pmselr_el0", CPENC (3,3,9,12,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmsevfr_el1", CPENC (3,0,9,9,5), F_ARCHEXT, AARCH64_FEATURE (PROFILE))
- SYSREG ("pmsfcr_el1", CPENC (3,0,9,9,4), F_ARCHEXT, AARCH64_FEATURE (PROFILE))
- SYSREG ("pmsicr_el1", CPENC (3,0,9,9,2), F_ARCHEXT, AARCH64_FEATURE (PROFILE))
- SYSREG ("pmsidr_el1", CPENC (3,0,9,9,7), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PROFILE))
- SYSREG ("pmsirr_el1", CPENC (3,0,9,9,3), F_ARCHEXT, AARCH64_FEATURE (PROFILE))
- SYSREG ("pmslatfr_el1", CPENC (3,0,9,9,6), F_ARCHEXT, AARCH64_FEATURE (PROFILE))
- SYSREG ("pmsnevfr_el1", CPENC (3,0,9,9,1), F_ARCHEXT, AARCH64_FEATURE (V8_7A))
- SYSREG ("pmsscr_el1", CPENC (3,0,9,13,3), F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
- SYSREG ("pmswinc_el0", CPENC (3,3,9,12,4), F_REG_WRITE, AARCH64_NO_FEATURES)
- SYSREG ("pmuacr_el1", CPENC (3,0,9,14,4), F_ARCHEXT, AARCH64_FEATURE (PMUv3p9))
- SYSREG ("pmuserenr_el0", CPENC (3,3,9,14,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmxevcntr_el0", CPENC (3,3,9,13,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmxevtyper_el0", CPENC (3,3,9,13,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("pmzr_el0", CPENC (3,3,9,13,4), F_REG_WRITE|F_ARCHEXT, AARCH64_FEATURE (PMUv3_ICNTR))
- SYSREG ("por_el0", CPENC (3,3,10,2,4), F_ARCHEXT, AARCH64_FEATURE (S1POE))
- SYSREG ("por_el1", CPENC (3,0,10,2,4), F_ARCHEXT, AARCH64_FEATURE (S1POE))
- SYSREG ("por_el12", CPENC (3,5,10,2,4), F_ARCHEXT, AARCH64_FEATURE (S1POE))
- SYSREG ("por_el2", CPENC (3,4,10,2,4), F_ARCHEXT, AARCH64_FEATURE (S1POE))
- SYSREG ("por_el3", CPENC (3,6,10,2,4), F_ARCHEXT, AARCH64_FEATURE (S1POE))
- SYSREG ("prbar10_el1", CPENC (3,0,6,13,0), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar10_el2", CPENC (3,4,6,13,0), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar11_el1", CPENC (3,0,6,13,4), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar11_el2", CPENC (3,4,6,13,4), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar12_el1", CPENC (3,0,6,14,0), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar12_el2", CPENC (3,4,6,14,0), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar13_el1", CPENC (3,0,6,14,4), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar13_el2", CPENC (3,4,6,14,4), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar14_el1", CPENC (3,0,6,15,0), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar14_el2", CPENC (3,4,6,15,0), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar15_el1", CPENC (3,0,6,15,4), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar15_el2", CPENC (3,4,6,15,4), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar1_el1", CPENC (3,0,6,8,4), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar1_el2", CPENC (3,4,6,8,4), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar2_el1", CPENC (3,0,6,9,0), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar2_el2", CPENC (3,4,6,9,0), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar3_el1", CPENC (3,0,6,9,4), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar3_el2", CPENC (3,4,6,9,4), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar4_el1", CPENC (3,0,6,10,0), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar4_el2", CPENC (3,4,6,10,0), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar5_el1", CPENC (3,0,6,10,4), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar5_el2", CPENC (3,4,6,10,4), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar6_el1", CPENC (3,0,6,11,0), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar6_el2", CPENC (3,4,6,11,0), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar7_el1", CPENC (3,0,6,11,4), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar7_el2", CPENC (3,4,6,11,4), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar8_el1", CPENC (3,0,6,12,0), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar8_el2", CPENC (3,4,6,12,0), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar9_el1", CPENC (3,0,6,12,4), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar9_el2", CPENC (3,4,6,12,4), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar_el1", CPENC (3,0,6,8,0), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prbar_el2", CPENC (3,4,6,8,0), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prenr_el1", CPENC (3,0,6,1,1), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prenr_el2", CPENC (3,4,6,1,1), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar10_el1", CPENC (3,0,6,13,1), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar10_el2", CPENC (3,4,6,13,1), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar11_el1", CPENC (3,0,6,13,5), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar11_el2", CPENC (3,4,6,13,5), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar12_el1", CPENC (3,0,6,14,1), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar12_el2", CPENC (3,4,6,14,1), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar13_el1", CPENC (3,0,6,14,5), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar13_el2", CPENC (3,4,6,14,5), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar14_el1", CPENC (3,0,6,15,1), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar14_el2", CPENC (3,4,6,15,1), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar15_el1", CPENC (3,0,6,15,5), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar15_el2", CPENC (3,4,6,15,5), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar1_el1", CPENC (3,0,6,8,5), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar1_el2", CPENC (3,4,6,8,5), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar2_el1", CPENC (3,0,6,9,1), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar2_el2", CPENC (3,4,6,9,1), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar3_el1", CPENC (3,0,6,9,5), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar3_el2", CPENC (3,4,6,9,5), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar4_el1", CPENC (3,0,6,10,1), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar4_el2", CPENC (3,4,6,10,1), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar5_el1", CPENC (3,0,6,10,5), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar5_el2", CPENC (3,4,6,10,5), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar6_el1", CPENC (3,0,6,11,1), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar6_el2", CPENC (3,4,6,11,1), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar7_el1", CPENC (3,0,6,11,5), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar7_el2", CPENC (3,4,6,11,5), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar8_el1", CPENC (3,0,6,12,1), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar8_el2", CPENC (3,4,6,12,1), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar9_el1", CPENC (3,0,6,12,5), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar9_el2", CPENC (3,4,6,12,5), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar_el1", CPENC (3,0,6,8,1), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prlar_el2", CPENC (3,4,6,8,1), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prselr_el1", CPENC (3,0,6,2,1), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("prselr_el2", CPENC (3,4,6,2,1), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("rcwmask_el1", CPENC (3,0,13,0,6), F_ARCHEXT|F_REG_128, AARCH64_FEATURE (THE))
- SYSREG ("rcwsmask_el1", CPENC (3,0,13,0,3), F_ARCHEXT|F_REG_128, AARCH64_FEATURE (THE))
- SYSREG ("revidr_el1", CPENC (3,0,0,0,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("rgsr_el1", CPENC (3,0,1,0,5), F_ARCHEXT, AARCH64_FEATURE (MEMTAG))
- SYSREG ("rmr_el1", CPENC (3,0,12,0,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("rmr_el2", CPENC (3,4,12,0,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("rmr_el3", CPENC (3,6,12,0,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("rndr", CPENC (3,3,2,4,0), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (RNG))
- SYSREG ("rndrrs", CPENC (3,3,2,4,1), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (RNG))
- SYSREG ("rvbar_el1", CPENC (3,0,12,0,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("rvbar_el2", CPENC (3,4,12,0,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("rvbar_el3", CPENC (3,6,12,0,1), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("scr_el3", CPENC (3,6,1,1,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("sctlr_el1", CPENC (3,0,1,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("sctlr_el12", CPENC (3,5,1,0,0), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("sctlr_el2", CPENC (3,4,1,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("sctlr_el3", CPENC (3,6,1,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("sctlr2_el1", CPENC (3,0,1,0,3), F_ARCHEXT, AARCH64_FEATURE (SCTLR2))
- SYSREG ("sctlr2_el12", CPENC (3,5,1,0,3), F_ARCHEXT, AARCH64_FEATURE (SCTLR2))
- SYSREG ("sctlr2_el2", CPENC (3,4,1,0,3), F_ARCHEXT, AARCH64_FEATURE (SCTLR2))
- SYSREG ("sctlr2_el3", CPENC (3,6,1,0,3), F_ARCHEXT, AARCH64_FEATURE (SCTLR2))
- SYSREG ("scxtnum_el0", CPENC (3,3,13,0,7), F_ARCHEXT, AARCH64_FEATURE (SCXTNUM))
- SYSREG ("scxtnum_el1", CPENC (3,0,13,0,7), F_ARCHEXT, AARCH64_FEATURE (SCXTNUM))
- SYSREG ("scxtnum_el12", CPENC (3,5,13,0,7), F_ARCHEXT, AARCH64_FEATURE (SCXTNUM))
- SYSREG ("scxtnum_el2", CPENC (3,4,13,0,7), F_ARCHEXT, AARCH64_FEATURE (SCXTNUM))
- SYSREG ("scxtnum_el3", CPENC (3,6,13,0,7), F_ARCHEXT, AARCH64_FEATURE (SCXTNUM))
- SYSREG ("sder32_el2", CPENC (3,4,1,3,1), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("sder32_el3", CPENC (3,6,1,1,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("smcr_el1", CPENC (3,0,1,2,6), F_ARCHEXT, AARCH64_FEATURE (SME))
- SYSREG ("smcr_el12", CPENC (3,5,1,2,6), F_ARCHEXT, AARCH64_FEATURE (SME))
- SYSREG ("smcr_el2", CPENC (3,4,1,2,6), F_ARCHEXT, AARCH64_FEATURE (SME))
- SYSREG ("smcr_el3", CPENC (3,6,1,2,6), F_ARCHEXT, AARCH64_FEATURE (SME))
- SYSREG ("smidr_el1", CPENC (3,1,0,0,6), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (SME))
- SYSREG ("smpri_el1", CPENC (3,0,1,2,4), F_ARCHEXT, AARCH64_FEATURE (SME))
- SYSREG ("smprimap_el2", CPENC (3,4,1,2,5), F_ARCHEXT, AARCH64_FEATURE (SME))
- SYSREG ("sp_el0", CPENC (3,0,4,1,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("sp_el1", CPENC (3,4,4,1,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("sp_el2", CPENC (3,6,4,1,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("spmaccessr_el1", CPENC (2,0,9,13,3), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmaccessr_el2", CPENC (2,4,9,13,3), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmaccessr_el3", CPENC (2,6,9,13,3), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmcfgr_el1", CPENC (2,0,9,13,7), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmcgcr0_el1", CPENC (2,0,9,13,0), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmcgcr1_el1", CPENC (2,0,9,13,1), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmcntenclr_el0", CPENC (2,3,9,12,2), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmcntenset_el0", CPENC (2,3,9,12,1), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmcr_el0", CPENC (2,3,9,12,0), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmdevaff_el1", CPENC (2,0,9,13,6), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmdevarch_el1", CPENC (2,0,9,13,5), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevcntr0_el0", CPENC (2,3,14,0,0), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevcntr1_el0", CPENC (2,3,14,0,1), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevcntr2_el0", CPENC (2,3,14,0,2), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevcntr3_el0", CPENC (2,3,14,0,3), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevcntr4_el0", CPENC (2,3,14,0,4), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevcntr5_el0", CPENC (2,3,14,0,5), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevcntr6_el0", CPENC (2,3,14,0,6), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevcntr7_el0", CPENC (2,3,14,0,7), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevcntr8_el0", CPENC (2,3,14,1,0), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevcntr9_el0", CPENC (2,3,14,1,1), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevcntr10_el0", CPENC (2,3,14,1,2), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevcntr11_el0", CPENC (2,3,14,1,3), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevcntr12_el0", CPENC (2,3,14,1,4), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevcntr13_el0", CPENC (2,3,14,1,5), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevcntr14_el0", CPENC (2,3,14,1,6), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevcntr15_el0", CPENC (2,3,14,1,7), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfilt2r0_el0", CPENC (2,3,14,6,0), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfilt2r1_el0", CPENC (2,3,14,6,1), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfilt2r2_el0", CPENC (2,3,14,6,2), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfilt2r3_el0", CPENC (2,3,14,6,3), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfilt2r4_el0", CPENC (2,3,14,6,4), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfilt2r5_el0", CPENC (2,3,14,6,5), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfilt2r6_el0", CPENC (2,3,14,6,6), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfilt2r7_el0", CPENC (2,3,14,6,7), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfilt2r8_el0", CPENC (2,3,14,7,0), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfilt2r9_el0", CPENC (2,3,14,7,1), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfilt2r10_el0", CPENC (2,3,14,7,2), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfilt2r11_el0", CPENC (2,3,14,7,3), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfilt2r12_el0", CPENC (2,3,14,7,4), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfilt2r13_el0", CPENC (2,3,14,7,5), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfilt2r14_el0", CPENC (2,3,14,7,6), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfilt2r15_el0", CPENC (2,3,14,7,7), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfiltr0_el0", CPENC (2,3,14,4,0), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfiltr1_el0", CPENC (2,3,14,4,1), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfiltr2_el0", CPENC (2,3,14,4,2), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfiltr3_el0", CPENC (2,3,14,4,3), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfiltr4_el0", CPENC (2,3,14,4,4), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfiltr5_el0", CPENC (2,3,14,4,5), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfiltr6_el0", CPENC (2,3,14,4,6), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfiltr7_el0", CPENC (2,3,14,4,7), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfiltr8_el0", CPENC (2,3,14,5,0), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfiltr9_el0", CPENC (2,3,14,5,1), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfiltr10_el0", CPENC (2,3,14,5,2), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfiltr11_el0", CPENC (2,3,14,5,3), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfiltr12_el0", CPENC (2,3,14,5,4), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfiltr13_el0", CPENC (2,3,14,5,5), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfiltr14_el0", CPENC (2,3,14,5,6), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevfiltr15_el0", CPENC (2,3,14,5,7), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevtyper0_el0", CPENC (2,3,14,2,0), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevtyper1_el0", CPENC (2,3,14,2,1), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevtyper2_el0", CPENC (2,3,14,2,2), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevtyper3_el0", CPENC (2,3,14,2,3), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevtyper4_el0", CPENC (2,3,14,2,4), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevtyper5_el0", CPENC (2,3,14,2,5), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevtyper6_el0", CPENC (2,3,14,2,6), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevtyper7_el0", CPENC (2,3,14,2,7), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevtyper8_el0", CPENC (2,3,14,3,0), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevtyper9_el0", CPENC (2,3,14,3,1), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevtyper10_el0", CPENC (2,3,14,3,2), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevtyper11_el0", CPENC (2,3,14,3,3), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevtyper12_el0", CPENC (2,3,14,3,4), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevtyper13_el0", CPENC (2,3,14,3,5), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevtyper14_el0", CPENC (2,3,14,3,6), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmevtyper15_el0", CPENC (2,3,14,3,7), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmiidr_el1", CPENC (2,0,9,13,4), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmintenclr_el1", CPENC (2,0,9,14,2), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmintenset_el1", CPENC (2,0,9,14,1), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmovsclr_el0", CPENC (2,3,9,12,3), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmovsset_el0", CPENC (2,3,9,14,3), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmrootcr_el3", CPENC (2,6,9,14,7), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmscr_el1", CPENC (2,7,9,14,7), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmselr_el0", CPENC (2,3,9,12,5), F_ARCHEXT, AARCH64_FEATURE (SPMU))
- SYSREG ("spmzr_el0", CPENC (2,3,9,12,4), F_ARCHEXT, AARCH64_FEATURE (SPMU2))
- SYSREG ("spsel", CPENC (3,0,4,2,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("spsr_abt", CPENC (3,4,4,3,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("spsr_el1", CPENC (3,0,4,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("spsr_el12", CPENC (3,5,4,0,0), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("spsr_el2", CPENC (3,4,4,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("spsr_el3", CPENC (3,6,4,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("spsr_fiq", CPENC (3,4,4,3,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("spsr_hyp", CPENC (3,4,4,0,0), F_DEPRECATED, AARCH64_NO_FEATURES)
- SYSREG ("spsr_irq", CPENC (3,4,4,3,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("spsr_svc", CPENC (3,0,4,0,0), F_DEPRECATED, AARCH64_NO_FEATURES)
- SYSREG ("spsr_und", CPENC (3,4,4,3,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("ssbs", CPENC (3,3,4,2,6), F_ARCHEXT, AARCH64_FEATURE (SSBS))
- SYSREG ("svcr", CPENC (3,3,4,2,2), F_ARCHEXT, AARCH64_FEATURE (SME))
- SYSREG ("s2pir_el2", CPENC (3,4,10,2,5), F_ARCHEXT, AARCH64_FEATURE (S2PIE))
- SYSREG ("s2por_el1", CPENC (3,0,10,2,5), F_ARCHEXT, AARCH64_FEATURE (S2POE))
- SYSREG ("tco", CPENC (3,3,4,2,7), F_ARCHEXT, AARCH64_FEATURE (MEMTAG))
- SYSREG ("tcr_el1", CPENC (3,0,2,0,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("tcr_el12", CPENC (3,5,2,0,2), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("tcr_el2", CPENC (3,4,2,0,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("tcr_el3", CPENC (3,6,2,0,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("tcr2_el1", CPENC (3,0,2,0,3), F_ARCHEXT, AARCH64_FEATURE (TCR2))
- SYSREG ("tcr2_el12", CPENC (3,5,2,0,3), F_ARCHEXT, AARCH64_FEATURE (TCR2))
- SYSREG ("tcr2_el2", CPENC (3,4,2,0,3), F_ARCHEXT, AARCH64_FEATURE (TCR2))
- SYSREG ("teecr32_el1", CPENC (2,2,0,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("teehbr32_el1", CPENC (2,2,1,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("tfsr_el1", CPENC (3,0,5,6,0), F_ARCHEXT, AARCH64_FEATURE (MEMTAG))
- SYSREG ("tfsr_el12", CPENC (3,5,5,6,0), F_ARCHEXT, AARCH64_FEATURE (MEMTAG))
- SYSREG ("tfsr_el2", CPENC (3,4,5,6,0), F_ARCHEXT, AARCH64_FEATURE (MEMTAG))
- SYSREG ("tfsr_el3", CPENC (3,6,5,6,0), F_ARCHEXT, AARCH64_FEATURE (MEMTAG))
- SYSREG ("tfsre0_el1", CPENC (3,0,5,6,1), F_ARCHEXT, AARCH64_FEATURE (MEMTAG))
- SYSREG ("tpidr2_el0", CPENC (3,3,13,0,5), F_ARCHEXT, AARCH64_FEATURE (SME))
- SYSREG ("tpidr_el0", CPENC (3,3,13,0,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("tpidr_el1", CPENC (3,0,13,0,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("tpidr_el2", CPENC (3,4,13,0,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("tpidr_el3", CPENC (3,6,13,0,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("tpidrro_el0", CPENC (3,3,13,0,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("trbbaser_el1", CPENC (3,0,9,11,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trbidr_el1", CPENC (3,0,9,11,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trblimitr_el1", CPENC (3,0,9,11,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trbmar_el1", CPENC (3,0,9,11,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("trbptr_el1", CPENC (3,0,9,11,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trbsr_el1", CPENC (3,0,9,11,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("trbsr_el12", CPENC (3,5,9,11,3), F_ARCHEXT, AARCH64_FEATURE (V9_5A))
- SYSREG ("trbsr_el2", CPENC (3,4,9,11,3), F_ARCHEXT, AARCH64_FEATURE (V9_5A))
- SYSREG ("trbsr_el3", CPENC (3,6,9,11,3), F_ARCHEXT, AARCH64_FEATURE (V9_5A))
- SYSREG ("trbtrg_el1", CPENC (3,0,9,11,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacatr0", CPENC (2,1,2,0,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacatr1", CPENC (2,1,2,2,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacatr10", CPENC (2,1,2,4,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacatr11", CPENC (2,1,2,6,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacatr12", CPENC (2,1,2,8,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacatr13", CPENC (2,1,2,10,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacatr14", CPENC (2,1,2,12,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacatr15", CPENC (2,1,2,14,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacatr2", CPENC (2,1,2,4,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacatr3", CPENC (2,1,2,6,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacatr4", CPENC (2,1,2,8,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacatr5", CPENC (2,1,2,10,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacatr6", CPENC (2,1,2,12,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacatr7", CPENC (2,1,2,14,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacatr8", CPENC (2,1,2,0,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacatr9", CPENC (2,1,2,2,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacvr0", CPENC (2,1,2,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacvr1", CPENC (2,1,2,2,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacvr10", CPENC (2,1,2,4,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacvr11", CPENC (2,1,2,6,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacvr12", CPENC (2,1,2,8,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacvr13", CPENC (2,1,2,10,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacvr14", CPENC (2,1,2,12,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacvr15", CPENC (2,1,2,14,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacvr2", CPENC (2,1,2,4,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacvr3", CPENC (2,1,2,6,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacvr4", CPENC (2,1,2,8,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacvr5", CPENC (2,1,2,10,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacvr6", CPENC (2,1,2,12,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacvr7", CPENC (2,1,2,14,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacvr8", CPENC (2,1,2,0,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcacvr9", CPENC (2,1,2,2,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcauthstatus", CPENC (2,1,7,14,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcauxctlr", CPENC (2,1,0,6,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcbbctlr", CPENC (2,1,0,15,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcccctlr", CPENC (2,1,0,14,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccidcctlr0", CPENC (2,1,3,0,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccidcctlr1", CPENC (2,1,3,1,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccidcvr0", CPENC (2,1,3,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccidcvr1", CPENC (2,1,3,2,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccidcvr2", CPENC (2,1,3,4,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccidcvr3", CPENC (2,1,3,6,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccidcvr4", CPENC (2,1,3,8,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccidcvr5", CPENC (2,1,3,10,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccidcvr6", CPENC (2,1,3,12,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccidcvr7", CPENC (2,1,3,14,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccidr0", CPENC (2,1,7,12,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trccidr1", CPENC (2,1,7,13,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trccidr2", CPENC (2,1,7,14,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trccidr3", CPENC (2,1,7,15,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcclaimclr", CPENC (2,1,7,9,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcclaimset", CPENC (2,1,7,8,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccntctlr0", CPENC (2,1,0,4,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccntctlr1", CPENC (2,1,0,5,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccntctlr2", CPENC (2,1,0,6,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccntctlr3", CPENC (2,1,0,7,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccntrldvr0", CPENC (2,1,0,0,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccntrldvr1", CPENC (2,1,0,1,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccntrldvr2", CPENC (2,1,0,2,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccntrldvr3", CPENC (2,1,0,3,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccntvr0", CPENC (2,1,0,8,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccntvr1", CPENC (2,1,0,9,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccntvr2", CPENC (2,1,0,10,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("trccntvr3", CPENC (2,1,0,11,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcconfigr", CPENC (2,1,0,4,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcdevaff0", CPENC (2,1,7,10,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcdevaff1", CPENC (2,1,7,11,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcdevarch", CPENC (2,1,7,15,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcdevid", CPENC (2,1,7,2,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcdevtype", CPENC (2,1,7,3,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcdvcmr0", CPENC (2,1,2,0,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcdvcmr1", CPENC (2,1,2,4,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcdvcmr2", CPENC (2,1,2,8,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcdvcmr3", CPENC (2,1,2,12,6), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcdvcmr4", CPENC (2,1,2,0,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcdvcmr5", CPENC (2,1,2,4,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcdvcmr6", CPENC (2,1,2,8,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcdvcmr7", CPENC (2,1,2,12,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcdvcvr0", CPENC (2,1,2,0,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcdvcvr1", CPENC (2,1,2,4,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcdvcvr2", CPENC (2,1,2,8,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcdvcvr3", CPENC (2,1,2,12,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcdvcvr4", CPENC (2,1,2,0,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcdvcvr5", CPENC (2,1,2,4,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcdvcvr6", CPENC (2,1,2,8,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcdvcvr7", CPENC (2,1,2,12,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("trceventctl0r", CPENC (2,1,0,8,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trceventctl1r", CPENC (2,1,0,9,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcextinselr", CPENC (2,1,0,8,4), F_REG_ALIAS, AARCH64_NO_FEATURES)
- SYSREG ("trcextinselr0", CPENC (2,1,0,8,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcextinselr1", CPENC (2,1,0,9,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcextinselr2", CPENC (2,1,0,10,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcextinselr3", CPENC (2,1,0,11,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcidr0", CPENC (2,1,0,8,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcidr1", CPENC (2,1,0,9,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcidr10", CPENC (2,1,0,2,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcidr11", CPENC (2,1,0,3,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcidr12", CPENC (2,1,0,4,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcidr13", CPENC (2,1,0,5,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcidr2", CPENC (2,1,0,10,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcidr3", CPENC (2,1,0,11,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcidr4", CPENC (2,1,0,12,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcidr5", CPENC (2,1,0,13,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcidr6", CPENC (2,1,0,14,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcidr7", CPENC (2,1,0,15,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcidr8", CPENC (2,1,0,0,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcidr9", CPENC (2,1,0,1,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcimspec0", CPENC (2,1,0,0,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcimspec1", CPENC (2,1,0,1,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcimspec2", CPENC (2,1,0,2,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcimspec3", CPENC (2,1,0,3,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcimspec4", CPENC (2,1,0,4,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcimspec5", CPENC (2,1,0,5,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcimspec6", CPENC (2,1,0,6,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcimspec7", CPENC (2,1,0,7,7), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcitctrl", CPENC (2,1,7,0,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcitecr_el1", CPENC (3,0,1,2,3), F_ARCHEXT, AARCH64_FEATURE (ITE))
- SYSREG ("trcitecr_el12", CPENC (3,5,1,2,3), F_ARCHEXT, AARCH64_FEATURE (ITE))
- SYSREG ("trcitecr_el2", CPENC (3,4,1,2,3), F_ARCHEXT, AARCH64_FEATURE (ITE))
- SYSREG ("trciteedcr", CPENC (2,1,0,2,1), F_ARCHEXT, AARCH64_FEATURE (ITE))
- SYSREG ("trclar", CPENC (2,1,7,12,6), F_REG_WRITE, AARCH64_NO_FEATURES)
- SYSREG ("trclsr", CPENC (2,1,7,13,6), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcoslar", CPENC (2,1,1,0,4), F_REG_WRITE, AARCH64_NO_FEATURES)
- SYSREG ("trcoslsr", CPENC (2,1,1,1,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcpdcr", CPENC (2,1,1,4,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcpdsr", CPENC (2,1,1,5,4), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcpidr0", CPENC (2,1,7,8,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcpidr1", CPENC (2,1,7,9,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcpidr2", CPENC (2,1,7,10,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcpidr3", CPENC (2,1,7,11,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcpidr4", CPENC (2,1,7,4,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcpidr5", CPENC (2,1,7,5,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcpidr6", CPENC (2,1,7,6,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcpidr7", CPENC (2,1,7,7,7), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcprgctlr", CPENC (2,1,0,1,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcprocselr", CPENC (2,1,0,2,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcqctlr", CPENC (2,1,0,1,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr10", CPENC (2,1,1,10,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr11", CPENC (2,1,1,11,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr12", CPENC (2,1,1,12,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr13", CPENC (2,1,1,13,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr14", CPENC (2,1,1,14,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr15", CPENC (2,1,1,15,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr16", CPENC (2,1,1,0,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr17", CPENC (2,1,1,1,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr18", CPENC (2,1,1,2,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr19", CPENC (2,1,1,3,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr2", CPENC (2,1,1,2,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr20", CPENC (2,1,1,4,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr21", CPENC (2,1,1,5,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr22", CPENC (2,1,1,6,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr23", CPENC (2,1,1,7,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr24", CPENC (2,1,1,8,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr25", CPENC (2,1,1,9,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr26", CPENC (2,1,1,10,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr27", CPENC (2,1,1,11,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr28", CPENC (2,1,1,12,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr29", CPENC (2,1,1,13,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr3", CPENC (2,1,1,3,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr30", CPENC (2,1,1,14,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr31", CPENC (2,1,1,15,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr4", CPENC (2,1,1,4,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr5", CPENC (2,1,1,5,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr6", CPENC (2,1,1,6,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr7", CPENC (2,1,1,7,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr8", CPENC (2,1,1,8,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsctlr9", CPENC (2,1,1,9,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcrsr", CPENC (2,1,0,10,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcseqevr0", CPENC (2,1,0,0,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcseqevr1", CPENC (2,1,0,1,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcseqevr2", CPENC (2,1,0,2,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcseqrstevr", CPENC (2,1,0,6,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcseqstr", CPENC (2,1,0,7,4), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcssccr0", CPENC (2,1,1,0,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcssccr1", CPENC (2,1,1,1,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcssccr2", CPENC (2,1,1,2,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcssccr3", CPENC (2,1,1,3,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcssccr4", CPENC (2,1,1,4,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcssccr5", CPENC (2,1,1,5,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcssccr6", CPENC (2,1,1,6,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcssccr7", CPENC (2,1,1,7,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcsscsr0", CPENC (2,1,1,8,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcsscsr1", CPENC (2,1,1,9,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcsscsr2", CPENC (2,1,1,10,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcsscsr3", CPENC (2,1,1,11,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcsscsr4", CPENC (2,1,1,12,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcsscsr5", CPENC (2,1,1,13,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcsscsr6", CPENC (2,1,1,14,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcsscsr7", CPENC (2,1,1,15,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcsspcicr0", CPENC (2,1,1,0,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcsspcicr1", CPENC (2,1,1,1,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcsspcicr2", CPENC (2,1,1,2,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcsspcicr3", CPENC (2,1,1,3,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcsspcicr4", CPENC (2,1,1,4,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcsspcicr5", CPENC (2,1,1,5,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcsspcicr6", CPENC (2,1,1,6,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcsspcicr7", CPENC (2,1,1,7,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcstallctlr", CPENC (2,1,0,11,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcstatr", CPENC (2,1,0,3,0), F_REG_READ, AARCH64_NO_FEATURES)
- SYSREG ("trcsyncpr", CPENC (2,1,0,13,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trctraceidr", CPENC (2,1,0,0,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trctsctlr", CPENC (2,1,0,12,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcvdarcctlr", CPENC (2,1,0,10,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcvdctlr", CPENC (2,1,0,8,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcvdsacctlr", CPENC (2,1,0,9,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcvictlr", CPENC (2,1,0,0,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcviiectlr", CPENC (2,1,0,1,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcvipcssctlr", CPENC (2,1,0,3,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcvissctlr", CPENC (2,1,0,2,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcvmidcctlr0", CPENC (2,1,3,2,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcvmidcctlr1", CPENC (2,1,3,3,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcvmidcvr0", CPENC (2,1,3,0,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcvmidcvr1", CPENC (2,1,3,2,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcvmidcvr2", CPENC (2,1,3,4,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcvmidcvr3", CPENC (2,1,3,6,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcvmidcvr4", CPENC (2,1,3,8,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcvmidcvr5", CPENC (2,1,3,10,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcvmidcvr6", CPENC (2,1,3,12,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trcvmidcvr7", CPENC (2,1,3,14,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("trfcr_el1", CPENC (3,0,1,2,1), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("trfcr_el12", CPENC (3,5,1,2,1), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("trfcr_el2", CPENC (3,4,1,2,1), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("ttbr0_el1", CPENC (3,0,2,0,0), F_REG_128, AARCH64_NO_FEATURES)
- SYSREG ("ttbr0_el12", CPENC (3,5,2,0,0), F_ARCHEXT|F_REG_128, AARCH64_FEATURE (V8_1A))
- SYSREG ("ttbr0_el2", CPENC (3,4,2,0,0), F_ARCHEXT|F_REG_128, AARCH64_FEATURE (V8A))
- SYSREG ("ttbr0_el3", CPENC (3,6,2,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("ttbr1_el1", CPENC (3,0,2,0,1), F_REG_128, AARCH64_NO_FEATURES)
- SYSREG ("ttbr1_el12", CPENC (3,5,2,0,1), F_ARCHEXT|F_REG_128, AARCH64_FEATURE (V8_1A))
- SYSREG ("ttbr1_el2", CPENC (3,4,2,0,1), F_ARCHEXT|F_REG_128, AARCH64_FEATURES (2, V8A, V8_1A))
- SYSREG ("uao", CPENC (3,0,4,2,4), F_ARCHEXT, AARCH64_FEATURE (V8_2A))
- SYSREG ("vbar_el1", CPENC (3,0,12,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("vbar_el12", CPENC (3,5,12,0,0), F_ARCHEXT, AARCH64_FEATURE (V8_1A))
- SYSREG ("vbar_el2", CPENC (3,4,12,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("vbar_el3", CPENC (3,6,12,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("vdisr_el2", CPENC (3,4,12,1,1), F_ARCHEXT, AARCH64_FEATURE (RAS))
- SYSREG ("vdisr_el3", CPENC (3,6,12,1,1), F_ARCHEXT, AARCH64_FEATURE (E3DSE))
- SYSREG ("vmecid_a_el2", CPENC (3,4,10,9,1), F_ARCHEXT, AARCH64_FEATURE (V8_7A))
- SYSREG ("vmecid_p_el2", CPENC (3,4,10,9,0), F_ARCHEXT, AARCH64_FEATURE (V8_7A))
- SYSREG ("vmpidr_el2", CPENC (3,4,0,0,5), 0, AARCH64_NO_FEATURES)
- SYSREG ("vncr_el2", CPENC (3,4,2,2,0), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("vpidr_el2", CPENC (3,4,0,0,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("vsctlr_el2", CPENC (3,4,2,0,0), F_ARCHEXT, AARCH64_FEATURE (V8R))
- SYSREG ("vsesr_el2", CPENC (3,4,5,2,3), F_ARCHEXT, AARCH64_FEATURE (RAS))
- SYSREG ("vsesr_el3", CPENC (3,6,5,2,3), F_ARCHEXT, AARCH64_FEATURE (E3DSE))
- SYSREG ("vstcr_el2", CPENC (3,4,2,6,2), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
- SYSREG ("vsttbr_el2", CPENC (3,4,2,6,0), F_ARCHEXT, AARCH64_FEATURES (2, V8A, V8_4A))
- SYSREG ("vtcr_el2", CPENC (3,4,2,1,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("vttbr_el2", CPENC (3,4,2,1,0), F_ARCHEXT|F_REG_128, AARCH64_FEATURE (V8A))
- SYSREG ("zcr_el1", CPENC (3,0,1,2,0), F_ARCHEXT, AARCH64_FEATURE (SVE))
- SYSREG ("zcr_el12", CPENC (3,5,1,2,0), F_ARCHEXT, AARCH64_FEATURE (SVE))
- SYSREG ("zcr_el2", CPENC (3,4,1,2,0), F_ARCHEXT, AARCH64_FEATURE (SVE))
- SYSREG ("zcr_el3", CPENC (3,6,1,2,0), F_ARCHEXT, AARCH64_FEATURE (SVE))
+ SYSREG ("accdata_el1", CPENC (3,0,13,0,5), 0, AARCH64_FEATURE (LS64)) /* LS64_ACCDATA */
+ SYSREG ("actlr_el1", CPENC (3,0,1,0,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("actlr_el12", CPENC (3,5,1,0,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("actlr_el2", CPENC (3,4,1,0,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("actlr_el3", CPENC (3,6,1,0,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("actlralias_el1", CPENC (3,0,1,4,5), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("actlrmask_el1", CPENC (3,0,1,4,1), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("actlrmask_el12", CPENC (3,5,1,4,1), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("actlrmask_el2", CPENC (3,4,1,4,1), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("afsr0_el1", CPENC (3,0,5,1,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("afsr0_el12", CPENC (3,5,5,1,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("afsr0_el2", CPENC (3,4,5,1,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("afsr0_el3", CPENC (3,6,5,1,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("afsr1_el1", CPENC (3,0,5,1,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("afsr1_el12", CPENC (3,5,5,1,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("afsr1_el2", CPENC (3,4,5,1,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("afsr1_el3", CPENC (3,6,5,1,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("aidr_el1", CPENC (3,1,0,0,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("allint", CPENC (3,0,4,3,0), 0, AARCH64_FEATURE (V8_7A)) /* NMI */
+ SYSREG ("amair_el1", CPENC (3,0,10,3,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("amair_el12", CPENC (3,5,10,3,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("amair_el2", CPENC (3,4,10,3,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("amair_el3", CPENC (3,6,10,3,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("amair2_el1", CPENC (3,0,10,3,1), 0, AARCH64_FEATURE (V8_8A)) /* AIE */
+ SYSREG ("amair2_el12", CPENC (3,5,10,3,1), 0, AARCH64_FEATURE (V8_8A)) /* AIE */
+ SYSREG ("amair2_el2", CPENC (3,4,10,3,1), 0, AARCH64_FEATURE (V8_8A)) /* AIE */
+ SYSREG ("amair2_el3", CPENC (3,6,10,3,1), 0, AARCH64_FEATURE (V8_8A)) /* AIE */
+ SYSREG ("amcfgr_el0", CPENC (3,3,13,2,1), F_REG_READ, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amcg1idr_el0", CPENC (3,3,13,2,6), F_REG_READ, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amcgcr_el0", CPENC (3,3,13,2,2), F_REG_READ, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amcntenclr0_el0", CPENC (3,3,13,2,4), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amcntenclr1_el0", CPENC (3,3,13,3,0), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amcntenset0_el0", CPENC (3,3,13,2,5), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amcntenset1_el0", CPENC (3,3,13,3,1), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amcr_el0", CPENC (3,3,13,2,0), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevcntr00_el0", CPENC (3,3,13,4,0), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevcntr01_el0", CPENC (3,3,13,4,1), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevcntr02_el0", CPENC (3,3,13,4,2), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevcntr03_el0", CPENC (3,3,13,4,3), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevcntr10_el0", CPENC (3,3,13,12,0), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevcntr110_el0", CPENC (3,3,13,13,2), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevcntr111_el0", CPENC (3,3,13,13,3), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevcntr112_el0", CPENC (3,3,13,13,4), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevcntr113_el0", CPENC (3,3,13,13,5), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevcntr114_el0", CPENC (3,3,13,13,6), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevcntr115_el0", CPENC (3,3,13,13,7), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevcntr11_el0", CPENC (3,3,13,12,1), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevcntr12_el0", CPENC (3,3,13,12,2), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevcntr13_el0", CPENC (3,3,13,12,3), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevcntr14_el0", CPENC (3,3,13,12,4), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevcntr15_el0", CPENC (3,3,13,12,5), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevcntr16_el0", CPENC (3,3,13,12,6), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevcntr17_el0", CPENC (3,3,13,12,7), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevcntr18_el0", CPENC (3,3,13,13,0), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevcntr19_el0", CPENC (3,3,13,13,1), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevcntvoff00_el2", CPENC (3,4,13,8,0), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff010_el2", CPENC (3,4,13,9,2), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff011_el2", CPENC (3,4,13,9,3), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff012_el2", CPENC (3,4,13,9,4), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff013_el2", CPENC (3,4,13,9,5), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff014_el2", CPENC (3,4,13,9,6), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff015_el2", CPENC (3,4,13,9,7), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff01_el2", CPENC (3,4,13,8,1), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff02_el2", CPENC (3,4,13,8,2), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff03_el2", CPENC (3,4,13,8,3), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff04_el2", CPENC (3,4,13,8,4), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff05_el2", CPENC (3,4,13,8,5), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff06_el2", CPENC (3,4,13,8,6), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff07_el2", CPENC (3,4,13,8,7), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff08_el2", CPENC (3,4,13,9,0), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff09_el2", CPENC (3,4,13,9,1), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff10_el2", CPENC (3,4,13,10,0), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff110_el2", CPENC (3,4,13,11,2), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff111_el2", CPENC (3,4,13,11,3), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff112_el2", CPENC (3,4,13,11,4), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff113_el2", CPENC (3,4,13,11,5), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff114_el2", CPENC (3,4,13,11,6), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff115_el2", CPENC (3,4,13,11,7), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff11_el2", CPENC (3,4,13,10,1), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff12_el2", CPENC (3,4,13,10,2), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff13_el2", CPENC (3,4,13,10,3), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff14_el2", CPENC (3,4,13,10,4), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff15_el2", CPENC (3,4,13,10,5), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff16_el2", CPENC (3,4,13,10,6), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff17_el2", CPENC (3,4,13,10,7), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff18_el2", CPENC (3,4,13,11,0), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevcntvoff19_el2", CPENC (3,4,13,11,1), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1p1 */
+ SYSREG ("amevtyper00_el0", CPENC (3,3,13,6,0), F_REG_READ, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevtyper01_el0", CPENC (3,3,13,6,1), F_REG_READ, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevtyper02_el0", CPENC (3,3,13,6,2), F_REG_READ, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevtyper03_el0", CPENC (3,3,13,6,3), F_REG_READ, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevtyper10_el0", CPENC (3,3,13,14,0), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevtyper110_el0", CPENC (3,3,13,15,2), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevtyper111_el0", CPENC (3,3,13,15,3), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevtyper112_el0", CPENC (3,3,13,15,4), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevtyper113_el0", CPENC (3,3,13,15,5), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevtyper114_el0", CPENC (3,3,13,15,6), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevtyper115_el0", CPENC (3,3,13,15,7), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevtyper11_el0", CPENC (3,3,13,14,1), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevtyper12_el0", CPENC (3,3,13,14,2), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevtyper13_el0", CPENC (3,3,13,14,3), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevtyper14_el0", CPENC (3,3,13,14,4), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevtyper15_el0", CPENC (3,3,13,14,5), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevtyper16_el0", CPENC (3,3,13,14,6), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevtyper17_el0", CPENC (3,3,13,14,7), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevtyper18_el0", CPENC (3,3,13,15,0), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amevtyper19_el0", CPENC (3,3,13,15,1), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("amuserenr_el0", CPENC (3,3,13,2,3), 0, AARCH64_FEATURE (V8_3A)) /* AMUv1 */
+ SYSREG ("apdakeyhi_el1", CPENC (3,0,2,2,1), 0, AARCH64_FEATURE (PAUTH))
+ SYSREG ("apdakeylo_el1", CPENC (3,0,2,2,0), 0, AARCH64_FEATURE (PAUTH))
+ SYSREG ("apdbkeyhi_el1", CPENC (3,0,2,2,3), 0, AARCH64_FEATURE (PAUTH))
+ SYSREG ("apdbkeylo_el1", CPENC (3,0,2,2,2), 0, AARCH64_FEATURE (PAUTH))
+ SYSREG ("apgakeyhi_el1", CPENC (3,0,2,3,1), 0, AARCH64_FEATURE (PAUTH))
+ SYSREG ("apgakeylo_el1", CPENC (3,0,2,3,0), 0, AARCH64_FEATURE (PAUTH))
+ SYSREG ("apiakeyhi_el1", CPENC (3,0,2,1,1), 0, AARCH64_FEATURE (PAUTH))
+ SYSREG ("apiakeylo_el1", CPENC (3,0,2,1,0), 0, AARCH64_FEATURE (PAUTH))
+ SYSREG ("apibkeyhi_el1", CPENC (3,0,2,1,3), 0, AARCH64_FEATURE (PAUTH))
+ SYSREG ("apibkeylo_el1", CPENC (3,0,2,1,2), 0, AARCH64_FEATURE (PAUTH))
+ SYSREG ("brbcr_el1", CPENC (2,1,9,0,0), 0, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbcr_el12", CPENC (2,5,9,0,0), 0, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbcr_el2", CPENC (2,4,9,0,0), 0, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbfcr_el1", CPENC (2,1,9,0,1), 0, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbidr0_el1", CPENC (2,1,9,2,0), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf0_el1", CPENC (2,1,8,0,0), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf10_el1", CPENC (2,1,8,10,0), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf11_el1", CPENC (2,1,8,11,0), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf12_el1", CPENC (2,1,8,12,0), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf13_el1", CPENC (2,1,8,13,0), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf14_el1", CPENC (2,1,8,14,0), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf15_el1", CPENC (2,1,8,15,0), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf16_el1", CPENC (2,1,8,0,4), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf17_el1", CPENC (2,1,8,1,4), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf18_el1", CPENC (2,1,8,2,4), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf19_el1", CPENC (2,1,8,3,4), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf1_el1", CPENC (2,1,8,1,0), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf20_el1", CPENC (2,1,8,4,4), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf21_el1", CPENC (2,1,8,5,4), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf22_el1", CPENC (2,1,8,6,4), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf23_el1", CPENC (2,1,8,7,4), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf24_el1", CPENC (2,1,8,8,4), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf25_el1", CPENC (2,1,8,9,4), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf26_el1", CPENC (2,1,8,10,4), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf27_el1", CPENC (2,1,8,11,4), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf28_el1", CPENC (2,1,8,12,4), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf29_el1", CPENC (2,1,8,13,4), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf2_el1", CPENC (2,1,8,2,0), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf30_el1", CPENC (2,1,8,14,4), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf31_el1", CPENC (2,1,8,15,4), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf3_el1", CPENC (2,1,8,3,0), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf4_el1", CPENC (2,1,8,4,0), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf5_el1", CPENC (2,1,8,5,0), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf6_el1", CPENC (2,1,8,6,0), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf7_el1", CPENC (2,1,8,7,0), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf8_el1", CPENC (2,1,8,8,0), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinf9_el1", CPENC (2,1,8,9,0), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbinfinj_el1", CPENC (2,1,9,1,0), 0, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc0_el1", CPENC (2,1,8,0,1), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc10_el1", CPENC (2,1,8,10,1), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc11_el1", CPENC (2,1,8,11,1), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc12_el1", CPENC (2,1,8,12,1), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc13_el1", CPENC (2,1,8,13,1), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc14_el1", CPENC (2,1,8,14,1), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc15_el1", CPENC (2,1,8,15,1), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc16_el1", CPENC (2,1,8,0,5), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc17_el1", CPENC (2,1,8,1,5), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc18_el1", CPENC (2,1,8,2,5), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc19_el1", CPENC (2,1,8,3,5), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc1_el1", CPENC (2,1,8,1,1), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc20_el1", CPENC (2,1,8,4,5), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc21_el1", CPENC (2,1,8,5,5), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc22_el1", CPENC (2,1,8,6,5), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc23_el1", CPENC (2,1,8,7,5), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc24_el1", CPENC (2,1,8,8,5), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc25_el1", CPENC (2,1,8,9,5), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc26_el1", CPENC (2,1,8,10,5), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc27_el1", CPENC (2,1,8,11,5), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc28_el1", CPENC (2,1,8,12,5), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc29_el1", CPENC (2,1,8,13,5), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc2_el1", CPENC (2,1,8,2,1), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc30_el1", CPENC (2,1,8,14,5), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc31_el1", CPENC (2,1,8,15,5), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc3_el1", CPENC (2,1,8,3,1), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc4_el1", CPENC (2,1,8,4,1), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc5_el1", CPENC (2,1,8,5,1), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc6_el1", CPENC (2,1,8,6,1), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc7_el1", CPENC (2,1,8,7,1), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc8_el1", CPENC (2,1,8,8,1), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrc9_el1", CPENC (2,1,8,9,1), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbsrcinj_el1", CPENC (2,1,9,1,1), 0, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt0_el1", CPENC (2,1,8,0,2), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt10_el1", CPENC (2,1,8,10,2), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt11_el1", CPENC (2,1,8,11,2), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt12_el1", CPENC (2,1,8,12,2), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt13_el1", CPENC (2,1,8,13,2), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt14_el1", CPENC (2,1,8,14,2), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt15_el1", CPENC (2,1,8,15,2), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt16_el1", CPENC (2,1,8,0,6), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt17_el1", CPENC (2,1,8,1,6), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt18_el1", CPENC (2,1,8,2,6), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt19_el1", CPENC (2,1,8,3,6), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt1_el1", CPENC (2,1,8,1,2), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt20_el1", CPENC (2,1,8,4,6), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt21_el1", CPENC (2,1,8,5,6), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt22_el1", CPENC (2,1,8,6,6), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt23_el1", CPENC (2,1,8,7,6), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt24_el1", CPENC (2,1,8,8,6), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt25_el1", CPENC (2,1,8,9,6), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt26_el1", CPENC (2,1,8,10,6), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt27_el1", CPENC (2,1,8,11,6), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt28_el1", CPENC (2,1,8,12,6), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt29_el1", CPENC (2,1,8,13,6), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt2_el1", CPENC (2,1,8,2,2), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt30_el1", CPENC (2,1,8,14,6), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt31_el1", CPENC (2,1,8,15,6), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt3_el1", CPENC (2,1,8,3,2), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt4_el1", CPENC (2,1,8,4,2), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt5_el1", CPENC (2,1,8,5,2), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt6_el1", CPENC (2,1,8,6,2), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt7_el1", CPENC (2,1,8,7,2), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt8_el1", CPENC (2,1,8,8,2), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgt9_el1", CPENC (2,1,8,9,2), F_REG_READ, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbtgtinj_el1", CPENC (2,1,9,1,2), 0, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("brbts_el1", CPENC (2,1,9,0,2), 0, AARCH64_FEATURE (V9_1A)) /* BRBE */
+ SYSREG ("ccsidr2_el1", CPENC (3,1,0,0,2), F_REG_READ, AARCH64_FEATURE (V8_2A)) /* CCIDX */
+ SYSREG ("ccsidr_el1", CPENC (3,1,0,0,0), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("clidr_el1", CPENC (3,1,0,0,1), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("cntfrq_el0", CPENC (3,3,14,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cnthctl_el2", CPENC (3,4,14,1,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cnthp_ctl_el2", CPENC (3,4,14,2,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cnthp_cval_el2", CPENC (3,4,14,2,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cnthp_tval_el2", CPENC (3,4,14,2,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cnthps_ctl_el2", CPENC (3,4,14,5,1), 0, AARCH64_FEATURE (V8_3A)) /* SEL2 */
+ SYSREG ("cnthps_cval_el2", CPENC (3,4,14,5,2), 0, AARCH64_FEATURE (V8_3A)) /* SEL2 */
+ SYSREG ("cnthps_tval_el2", CPENC (3,4,14,5,0), 0, AARCH64_FEATURE (V8_3A)) /* SEL2 */
+ SYSREG ("cnthv_ctl_el2", CPENC (3,4,14,3,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cnthv_cval_el2", CPENC (3,4,14,3,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cnthv_tval_el2", CPENC (3,4,14,3,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cnthvs_ctl_el2", CPENC (3,4,14,4,1), 0, AARCH64_FEATURE (V8_3A)) /* SEL2 */
+ SYSREG ("cnthvs_cval_el2", CPENC (3,4,14,4,2), 0, AARCH64_FEATURE (V8_3A)) /* SEL2 */
+ SYSREG ("cnthvs_tval_el2", CPENC (3,4,14,4,0), 0, AARCH64_FEATURE (V8_3A)) /* SEL2 */
+ SYSREG ("cntkctl_el1", CPENC (3,0,14,1,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cntkctl_el12", CPENC (3,5,14,1,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cntp_ctl_el0", CPENC (3,3,14,2,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cntp_ctl_el02", CPENC (3,5,14,2,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cntp_cval_el0", CPENC (3,3,14,2,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cntp_cval_el02", CPENC (3,5,14,2,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cntp_tval_el0", CPENC (3,3,14,2,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cntp_tval_el02", CPENC (3,5,14,2,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cntpct_el0", CPENC (3,3,14,0,1), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("cntpctss_el0", CPENC (3,3,14,0,5), F_REG_READ, AARCH64_FEATURE (V8_5A)) /* ECV */
+ SYSREG ("cntpoff_el2", CPENC (3,4,14,0,6), 0, AARCH64_FEATURE (V8_5A)) /* ECV_POFF */
+ SYSREG ("cntps_ctl_el1", CPENC (3,7,14,2,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cntps_cval_el1", CPENC (3,7,14,2,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cntps_tval_el1", CPENC (3,7,14,2,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cntv_ctl_el0", CPENC (3,3,14,3,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cntv_ctl_el02", CPENC (3,5,14,3,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cntv_cval_el0", CPENC (3,3,14,3,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cntv_cval_el02", CPENC (3,5,14,3,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cntv_tval_el0", CPENC (3,3,14,3,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cntv_tval_el02", CPENC (3,5,14,3,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cntvct_el0", CPENC (3,3,14,0,2), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("cntvctss_el0", CPENC (3,3,14,0,6), F_REG_READ, AARCH64_FEATURE (V8_5A)) /* ECV */
+ SYSREG ("cntvoff_el2", CPENC (3,4,14,0,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("contextidr_el1", CPENC (3,0,13,0,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("contextidr_el12", CPENC (3,5,13,0,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("contextidr_el2", CPENC (3,4,13,0,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cpacr_el1", CPENC (3,0,1,0,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cpacr_el12", CPENC (3,5,1,0,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cpacralias_el1", CPENC (3,0,1,4,4), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("cpacrmask_el1", CPENC (3,0,1,4,2), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("cpacrmask_el12", CPENC (3,5,1,4,2), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("cptr_el2", CPENC (3,4,1,1,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cptr_el3", CPENC (3,6,1,1,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("cptrmask_el2", CPENC (3,4,1,4,2), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("csselr_el1", CPENC (3,2,0,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ctr_el0", CPENC (3,3,0,0,1), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("currentel", CPENC (3,0,4,2,2), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("dacr32_el2", CPENC (3,4,3,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("daif", CPENC (3,3,4,2,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgauthstatus_el1", CPENC (2,0,7,14,6), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbcr0_el1", CPENC (2,0,0,0,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbcr10_el1", CPENC (2,0,0,10,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbcr11_el1", CPENC (2,0,0,11,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbcr12_el1", CPENC (2,0,0,12,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbcr13_el1", CPENC (2,0,0,13,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbcr14_el1", CPENC (2,0,0,14,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbcr15_el1", CPENC (2,0,0,15,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbcr1_el1", CPENC (2,0,0,1,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbcr2_el1", CPENC (2,0,0,2,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbcr3_el1", CPENC (2,0,0,3,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbcr4_el1", CPENC (2,0,0,4,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbcr5_el1", CPENC (2,0,0,5,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbcr6_el1", CPENC (2,0,0,6,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbcr7_el1", CPENC (2,0,0,7,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbcr8_el1", CPENC (2,0,0,8,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbcr9_el1", CPENC (2,0,0,9,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbvr0_el1", CPENC (2,0,0,0,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbvr10_el1", CPENC (2,0,0,10,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbvr11_el1", CPENC (2,0,0,11,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbvr12_el1", CPENC (2,0,0,12,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbvr13_el1", CPENC (2,0,0,13,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbvr14_el1", CPENC (2,0,0,14,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbvr15_el1", CPENC (2,0,0,15,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbvr1_el1", CPENC (2,0,0,1,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbvr2_el1", CPENC (2,0,0,2,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbvr3_el1", CPENC (2,0,0,3,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbvr4_el1", CPENC (2,0,0,4,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbvr5_el1", CPENC (2,0,0,5,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbvr6_el1", CPENC (2,0,0,6,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbvr7_el1", CPENC (2,0,0,7,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbvr8_el1", CPENC (2,0,0,8,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgbvr9_el1", CPENC (2,0,0,9,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgclaimclr_el1", CPENC (2,0,7,9,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgclaimset_el1", CPENC (2,0,7,8,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgdtr_el0", CPENC (2,3,0,4,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgdtrrx_el0", CPENC (2,3,0,5,0), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("dbgdtrtx_el0", CPENC (2,3,0,5,0), F_REG_WRITE, AARCH64_NO_FEATURES)
+ SYSREG ("dbgprcr_el1", CPENC (2,0,1,4,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgvcr32_el2", CPENC (2,4,0,7,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwcr0_el1", CPENC (2,0,0,0,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwcr10_el1", CPENC (2,0,0,10,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwcr11_el1", CPENC (2,0,0,11,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwcr12_el1", CPENC (2,0,0,12,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwcr13_el1", CPENC (2,0,0,13,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwcr14_el1", CPENC (2,0,0,14,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwcr15_el1", CPENC (2,0,0,15,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwcr1_el1", CPENC (2,0,0,1,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwcr2_el1", CPENC (2,0,0,2,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwcr3_el1", CPENC (2,0,0,3,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwcr4_el1", CPENC (2,0,0,4,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwcr5_el1", CPENC (2,0,0,5,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwcr6_el1", CPENC (2,0,0,6,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwcr7_el1", CPENC (2,0,0,7,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwcr8_el1", CPENC (2,0,0,8,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwcr9_el1", CPENC (2,0,0,9,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwvr0_el1", CPENC (2,0,0,0,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwvr10_el1", CPENC (2,0,0,10,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwvr11_el1", CPENC (2,0,0,11,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwvr12_el1", CPENC (2,0,0,12,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwvr13_el1", CPENC (2,0,0,13,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwvr14_el1", CPENC (2,0,0,14,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwvr15_el1", CPENC (2,0,0,15,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwvr1_el1", CPENC (2,0,0,1,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwvr2_el1", CPENC (2,0,0,2,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwvr3_el1", CPENC (2,0,0,3,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwvr4_el1", CPENC (2,0,0,4,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwvr5_el1", CPENC (2,0,0,5,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwvr6_el1", CPENC (2,0,0,6,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwvr7_el1", CPENC (2,0,0,7,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwvr8_el1", CPENC (2,0,0,8,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dbgwvr9_el1", CPENC (2,0,0,9,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dczid_el0", CPENC (3,3,0,0,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("disr_el1", CPENC (3,0,12,1,1), 0, AARCH64_FEATURE (RAS))
+ SYSREG ("dit", CPENC (3,3,4,2,5), 0, AARCH64_FEATURE (V8_3A)) /* DIT */
+ SYSREG ("dlr_el0", CPENC (3,3,4,5,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("dspsr_el0", CPENC (3,3,4,5,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("elr_el1", CPENC (3,0,4,0,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("elr_el12", CPENC (3,5,4,0,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("elr_el2", CPENC (3,4,4,0,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("elr_el3", CPENC (3,6,4,0,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("erridr_el1", CPENC (3,0,5,3,0), F_REG_READ, AARCH64_FEATURE (RAS))
+ SYSREG ("errselr_el1", CPENC (3,0,5,3,1), 0, AARCH64_FEATURE (RAS))
+ SYSREG ("erxaddr_el1", CPENC (3,0,5,4,3), 0, AARCH64_FEATURE (RAS))
+ SYSREG ("erxctlr_el1", CPENC (3,0,5,4,1), 0, AARCH64_FEATURE (RAS))
+ SYSREG ("erxfr_el1", CPENC (3,0,5,4,0), F_REG_READ, AARCH64_FEATURE (RAS))
+ SYSREG ("erxgsr_el1", CPENC (3,0,5,3,2), F_REG_READ, AARCH64_FEATURE (RASv2))
+ SYSREG ("erxmisc0_el1", CPENC (3,0,5,5,0), 0, AARCH64_FEATURE (RAS))
+ SYSREG ("erxmisc1_el1", CPENC (3,0,5,5,1), 0, AARCH64_FEATURE (RAS))
+ SYSREG ("erxmisc2_el1", CPENC (3,0,5,5,2), 0, AARCH64_FEATURE (RAS)) /* RASv1p1 */
+ SYSREG ("erxmisc3_el1", CPENC (3,0,5,5,3), 0, AARCH64_FEATURE (RAS)) /* RASv1p1 */
+ SYSREG ("erxpfgcdn_el1", CPENC (3,0,5,4,6), 0, AARCH64_FEATURE (RAS)) /* RASv1p1 */
+ SYSREG ("erxpfgctl_el1", CPENC (3,0,5,4,5), 0, AARCH64_FEATURE (RAS)) /* RASv1p1 */
+ SYSREG ("erxpfgf_el1", CPENC (3,0,5,4,4), F_REG_READ, AARCH64_FEATURE (RAS)) /* RASv1p1 */
+ SYSREG ("erxstatus_el1", CPENC (3,0,5,4,2), 0, AARCH64_FEATURE (RAS))
+ SYSREG ("esr_el1", CPENC (3,0,5,2,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("esr_el12", CPENC (3,5,5,2,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("esr_el2", CPENC (3,4,5,2,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("esr_el3", CPENC (3,6,5,2,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("far_el1", CPENC (3,0,6,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("far_el12", CPENC (3,5,6,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("far_el2", CPENC (3,4,6,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("far_el3", CPENC (3,6,6,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("fgwte3_el3", CPENC (3,6,1,1,5), 0, AARCH64_FEATURE (V9_4A)) /* FGWTE3 */
+ SYSREG ("fpcr", CPENC (3,3,4,4,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("fpexc32_el2", CPENC (3,4,5,3,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("fpmr", CPENC (3,3,4,4,2), 0, AARCH64_FEATURE (FP8))
+ SYSREG ("fpsr", CPENC (3,3,4,4,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("gcr_el1", CPENC (3,0,1,0,6), 0, AARCH64_FEATURE (MEMTAG))
+ SYSREG ("gcscr_el1", CPENC (3,0,2,5,0), 0, AARCH64_FEATURE (GCS))
+ SYSREG ("gcscr_el12", CPENC (3,5,2,5,0), 0, AARCH64_FEATURE (GCS))
+ SYSREG ("gcscr_el2", CPENC (3,4,2,5,0), 0, AARCH64_FEATURE (GCS))
+ SYSREG ("gcscr_el3", CPENC (3,6,2,5,0), 0, AARCH64_FEATURE (GCS))
+ SYSREG ("gcscre0_el1", CPENC (3,0,2,5,2), 0, AARCH64_FEATURE (GCS))
+ SYSREG ("gcspr_el0", CPENC (3,3,2,5,1), 0, AARCH64_FEATURE (GCS))
+ SYSREG ("gcspr_el1", CPENC (3,0,2,5,1), 0, AARCH64_FEATURE (GCS))
+ SYSREG ("gcspr_el12", CPENC (3,5,2,5,1), 0, AARCH64_FEATURE (GCS))
+ SYSREG ("gcspr_el2", CPENC (3,4,2,5,1), 0, AARCH64_FEATURE (GCS))
+ SYSREG ("gcspr_el3", CPENC (3,6,2,5,1), 0, AARCH64_FEATURE (GCS))
+ SYSREG ("gmid_el1", CPENC (3,1,0,0,4), F_REG_READ, AARCH64_FEATURE (MEMTAG))
+ SYSREG ("gpcbw_el3", CPENC (3,6,2,1,5), 0, AARCH64_FEATURE (V9_5A)) /* RME_GPC3 */
+ SYSREG ("gpccr_el3", CPENC (3,6,2,1,6), 0, AARCH64_FEATURE (V9_1A)) /* RME */
+ SYSREG ("gptbr_el3", CPENC (3,6,2,1,4), 0, AARCH64_FEATURE (V9_1A)) /* RME */
+ SYSREG ("hacdbsbr_el2", CPENC (3,4,2,3,4), 0, AARCH64_FEATURE (V9_4A)) /* HACDBS */
+ SYSREG ("hacdbscons_el2", CPENC (3,4,2,3,5), 0, AARCH64_FEATURE (V9_4A)) /* HACDBS */
+ SYSREG ("hacr_el2", CPENC (3,4,1,1,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("hafgrtr_el2", CPENC (3,4,3,1,6), 0, AARCH64_FEATURE (V8_5A)) /* AMUv1 && FGT */
+ SYSREG ("hcr_el2", CPENC (3,4,1,1,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("hcrx_el2", CPENC (3,4,1,2,2), 0, AARCH64_FEATURE (V8_6A)) /* HCX */
+ SYSREG ("hdbssbr_el2", CPENC (3,4,2,3,2), 0, AARCH64_FEATURE (V9_4A)) /* HDBSS */
+ SYSREG ("hdbssprod_el2", CPENC (3,4,2,3,3), 0, AARCH64_FEATURE (V9_4A)) /* HDBSS */
+ SYSREG ("hdfgrtr_el2", CPENC (3,4,3,1,4), 0, AARCH64_FEATURE (V8_5A)) /* FGT */
+ SYSREG ("hdfgrtr2_el2", CPENC (3,4,3,1,0), 0, AARCH64_FEATURE (V8_8A)) /* FGT2 */
+ SYSREG ("hdfgwtr_el2", CPENC (3,4,3,1,5), 0, AARCH64_FEATURE (V8_5A)) /* FGT */
+ SYSREG ("hdfgwtr2_el2", CPENC (3,4,3,1,1), 0, AARCH64_FEATURE (V8_8A)) /* FGT2 */
+ SYSREG ("hfgitr_el2", CPENC (3,4,1,1,6), 0, AARCH64_FEATURE (V8_5A)) /* FGT */
+ SYSREG ("hfgitr2_el2", CPENC (3,4,3,1,7), 0, AARCH64_FEATURE (V8_8A)) /* FGT2 */
+ SYSREG ("hfgrtr_el2", CPENC (3,4,1,1,4), 0, AARCH64_FEATURE (V8_5A)) /* FGT */
+ SYSREG ("hfgrtr2_el2", CPENC (3,4,3,1,2), 0, AARCH64_FEATURE (V8_8A)) /* FGT2 */
+ SYSREG ("hfgwtr_el2", CPENC (3,4,1,1,5), 0, AARCH64_FEATURE (V8_5A)) /* FGT */
+ SYSREG ("hfgwtr2_el2", CPENC (3,4,3,1,3), 0, AARCH64_FEATURE (V8_8A)) /* FGT2 */
+ SYSREG ("hpfar_el2", CPENC (3,4,6,0,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("hstr_el2", CPENC (3,4,1,1,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("icc_ap0r0_el1", CPENC (3,0,12,8,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("icc_ap0r1_el1", CPENC (3,0,12,8,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("icc_ap0r2_el1", CPENC (3,0,12,8,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("icc_ap0r3_el1", CPENC (3,0,12,8,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("icc_ap1r0_el1", CPENC (3,0,12,9,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("icc_ap1r1_el1", CPENC (3,0,12,9,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("icc_ap1r2_el1", CPENC (3,0,12,9,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("icc_ap1r3_el1", CPENC (3,0,12,9,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("icc_asgi1r_el1", CPENC (3,0,12,11,6), F_REG_WRITE, AARCH64_NO_FEATURES)
+ SYSREG ("icc_bpr0_el1", CPENC (3,0,12,8,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("icc_bpr1_el1", CPENC (3,0,12,12,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("icc_ctlr_el1", CPENC (3,0,12,12,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("icc_ctlr_el3", CPENC (3,6,12,12,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("icc_dir_el1", CPENC (3,0,12,11,1), F_REG_WRITE, AARCH64_NO_FEATURES)
+ SYSREG ("icc_eoir0_el1", CPENC (3,0,12,8,1), F_REG_WRITE, AARCH64_NO_FEATURES)
+ SYSREG ("icc_eoir1_el1", CPENC (3,0,12,12,1), F_REG_WRITE, AARCH64_NO_FEATURES)
+ SYSREG ("icc_hppir0_el1", CPENC (3,0,12,8,2), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("icc_hppir1_el1", CPENC (3,0,12,12,2), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("icc_iar0_el1", CPENC (3,0,12,8,0), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("icc_iar1_el1", CPENC (3,0,12,12,0), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("icc_igrpen0_el1", CPENC (3,0,12,12,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("icc_igrpen1_el1", CPENC (3,0,12,12,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("icc_igrpen1_el3", CPENC (3,6,12,12,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("icc_nmiar1_el1", CPENC (3,0,12,9,5), F_REG_READ, AARCH64_FEATURE (V8_7A)) /* GICv3_NMI */
+ SYSREG ("icc_pmr_el1", CPENC (3,0,4,6,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("icc_rpr_el1", CPENC (3,0,12,11,3), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("icc_sgi0r_el1", CPENC (3,0,12,11,7), F_REG_WRITE, AARCH64_NO_FEATURES)
+ SYSREG ("icc_sgi1r_el1", CPENC (3,0,12,11,5), F_REG_WRITE, AARCH64_NO_FEATURES)
+ SYSREG ("icc_sre_el1", CPENC (3,0,12,12,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("icc_sre_el2", CPENC (3,4,12,9,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("icc_sre_el3", CPENC (3,6,12,12,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_ap0r0_el2", CPENC (3,4,12,8,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_ap0r1_el2", CPENC (3,4,12,8,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_ap0r2_el2", CPENC (3,4,12,8,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_ap0r3_el2", CPENC (3,4,12,8,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_ap1r0_el2", CPENC (3,4,12,9,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_ap1r1_el2", CPENC (3,4,12,9,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_ap1r2_el2", CPENC (3,4,12,9,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_ap1r3_el2", CPENC (3,4,12,9,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_eisr_el2", CPENC (3,4,12,11,3), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("ich_elrsr_el2", CPENC (3,4,12,11,5), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("ich_hcr_el2", CPENC (3,4,12,11,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_lr0_el2", CPENC (3,4,12,12,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_lr10_el2", CPENC (3,4,12,13,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_lr11_el2", CPENC (3,4,12,13,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_lr12_el2", CPENC (3,4,12,13,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_lr13_el2", CPENC (3,4,12,13,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_lr14_el2", CPENC (3,4,12,13,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_lr15_el2", CPENC (3,4,12,13,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_lr1_el2", CPENC (3,4,12,12,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_lr2_el2", CPENC (3,4,12,12,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_lr3_el2", CPENC (3,4,12,12,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_lr4_el2", CPENC (3,4,12,12,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_lr5_el2", CPENC (3,4,12,12,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_lr6_el2", CPENC (3,4,12,12,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_lr7_el2", CPENC (3,4,12,12,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_lr8_el2", CPENC (3,4,12,13,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_lr9_el2", CPENC (3,4,12,13,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_misr_el2", CPENC (3,4,12,11,2), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("ich_vmcr_el2", CPENC (3,4,12,11,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ich_vtr_el2", CPENC (3,4,12,11,1), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64afr0_el1", CPENC (3,0,0,5,4), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64afr1_el1", CPENC (3,0,0,5,5), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64dfr0_el1", CPENC (3,0,0,5,0), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64dfr1_el1", CPENC (3,0,0,5,1), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64dfr2_el1", CPENC (3,0,0,5,2), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64fpfr0_el1", CPENC (3,0,0,4,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64isar0_el1", CPENC (3,0,0,6,0), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64isar1_el1", CPENC (3,0,0,6,1), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64isar2_el1", CPENC (3,0,0,6,2), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64isar3_el1", CPENC (3,0,0,6,3), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64mmfr0_el1", CPENC (3,0,0,7,0), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64mmfr1_el1", CPENC (3,0,0,7,1), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64mmfr2_el1", CPENC (3,0,0,7,2), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64mmfr3_el1", CPENC (3,0,0,7,3), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64mmfr4_el1", CPENC (3,0,0,7,4), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64pfr0_el1", CPENC (3,0,0,4,0), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64pfr1_el1", CPENC (3,0,0,4,1), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64pfr2_el1", CPENC (3,0,0,4,2), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64smfr0_el1", CPENC (3,0,0,4,5), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64zfr0_el1", CPENC (3,0,0,4,4), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_afr0_el1", CPENC (3,0,0,1,3), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_dfr0_el1", CPENC (3,0,0,1,2), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_dfr1_el1", CPENC (3,0,0,3,5), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_isar0_el1", CPENC (3,0,0,2,0), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_isar1_el1", CPENC (3,0,0,2,1), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_isar2_el1", CPENC (3,0,0,2,2), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_isar3_el1", CPENC (3,0,0,2,3), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_isar4_el1", CPENC (3,0,0,2,4), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_isar5_el1", CPENC (3,0,0,2,5), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_isar6_el1", CPENC (3,0,0,2,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_mmfr0_el1", CPENC (3,0,0,1,4), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_mmfr1_el1", CPENC (3,0,0,1,5), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_mmfr2_el1", CPENC (3,0,0,1,6), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_mmfr3_el1", CPENC (3,0,0,1,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_mmfr4_el1", CPENC (3,0,0,2,6), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_mmfr5_el1", CPENC (3,0,0,3,6), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_pfr0_el1", CPENC (3,0,0,1,0), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_pfr1_el1", CPENC (3,0,0,1,1), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_pfr2_el1", CPENC (3,0,0,3,4), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("ifsr32_el2", CPENC (3,4,5,0,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("isr_el1", CPENC (3,0,12,1,0), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("lorc_el1", CPENC (3,0,10,4,3), 0, AARCH64_FEATURE (LOR))
+ SYSREG ("lorea_el1", CPENC (3,0,10,4,1), 0, AARCH64_FEATURE (LOR))
+ SYSREG ("lorid_el1", CPENC (3,0,10,4,7), F_REG_READ, AARCH64_FEATURE (LOR))
+ SYSREG ("lorn_el1", CPENC (3,0,10,4,2), 0, AARCH64_FEATURE (LOR))
+ SYSREG ("lorsa_el1", CPENC (3,0,10,4,0), 0, AARCH64_FEATURE (LOR))
+ SYSREG ("mair_el1", CPENC (3,0,10,2,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("mair_el12", CPENC (3,5,10,2,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("mair_el2", CPENC (3,4,10,2,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("mair_el3", CPENC (3,6,10,2,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("mair2_el1", CPENC (3,0,10,2,1), 0, AARCH64_FEATURE (V8_8A)) /* AIE */
+ SYSREG ("mair2_el12", CPENC (3,5,10,2,1), 0, AARCH64_FEATURE (V8_8A)) /* AIE */
+ SYSREG ("mair2_el2", CPENC (3,4,10,1,1), 0, AARCH64_FEATURE (V8_8A)) /* AIE */
+ SYSREG ("mair2_el3", CPENC (3,6,10,1,1), 0, AARCH64_FEATURE (V8_8A)) /* AIE */
+ SYSREG ("mdccint_el1", CPENC (2,0,0,2,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("mdccsr_el0", CPENC (2,3,0,1,0), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("mdcr_el2", CPENC (3,4,1,1,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("mdcr_el3", CPENC (3,6,1,3,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("mdrar_el1", CPENC (2,0,1,0,0), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("mdscr_el1", CPENC (2,0,0,2,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("mdselr_el1", CPENC (2,0,0,4,2), 0, AARCH64_FEATURE (V8_8A)) /* Debugv8p9 */
+ SYSREG ("mdstepop_el1", CPENC (2,0,0,5,2), 0, AARCH64_FEATURE (V9_4A)) /* STEP2 */
+ SYSREG ("mecid_a0_el2", CPENC (3,4,10,8,1), 0, AARCH64_FEATURE (V9_2A)) /* MEC */
+ SYSREG ("mecid_a1_el2", CPENC (3,4,10,8,3), 0, AARCH64_FEATURE (V9_2A)) /* MEC */
+ SYSREG ("mecid_p0_el2", CPENC (3,4,10,8,0), 0, AARCH64_FEATURE (V9_2A)) /* MEC */
+ SYSREG ("mecid_p1_el2", CPENC (3,4,10,8,2), 0, AARCH64_FEATURE (V9_2A)) /* MEC */
+ SYSREG ("mecid_rl_a_el3", CPENC (3,6,10,10,1), 0, AARCH64_FEATURE (V9_2A)) /* MEC */
+ SYSREG ("mecidr_el2", CPENC (3,4,10,8,7), F_REG_READ, AARCH64_FEATURE (V9_2A)) /* MEC */
+ SYSREG ("mfar_el3", CPENC (3,6,6,0,5), 0, AARCH64_FEATURE (V8_6A)) /* PFAR=>8.8 || RME=>9.1 */
+ SYSREG ("midr_el1", CPENC (3,0,0,0,0), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("mpam0_el1", CPENC (3,0,10,5,1), 0, AARCH64_FEATURE (V8_2A)) /* MPAM */
+ SYSREG ("mpam1_el1", CPENC (3,0,10,5,0), 0, AARCH64_FEATURE (V8_2A)) /* MPAM */
+ SYSREG ("mpam1_el12", CPENC (3,5,10,5,0), 0, AARCH64_FEATURE (V8_2A)) /* MPAM */
+ SYSREG ("mpam2_el2", CPENC (3,4,10,5,0), 0, AARCH64_FEATURE (V8_2A)) /* MPAM */
+ SYSREG ("mpam3_el3", CPENC (3,6,10,5,0), 0, AARCH64_FEATURE (V8_2A)) /* MPAM */
+ SYSREG ("mpambw0_el1", CPENC (3,0,10,5,5), 0, AARCH64_FEATURE (V9_3A)) /* MPAM_PE_BW_CTRL */
+ SYSREG ("mpambw1_el1", CPENC (3,0,10,5,4), 0, AARCH64_FEATURE (V9_3A)) /* MPAM_PE_BW_CTRL */
+ SYSREG ("mpambw1_el12", CPENC (3,5,10,5,4), 0, AARCH64_FEATURE (V9_3A)) /* MPAM_PE_BW_CTRL */
+ SYSREG ("mpambw2_el2", CPENC (3,4,10,5,4), 0, AARCH64_FEATURE (V9_3A)) /* MPAM_PE_BW_CTRL */
+ SYSREG ("mpambw3_el3", CPENC (3,6,10,5,4), 0, AARCH64_FEATURE (V9_3A)) /* MPAM_PE_BW_CTRL */
+ SYSREG ("mpambwcap_el2", CPENC (3,4,10,5,6), 0, AARCH64_FEATURE (V9_3A)) /* MPAM_PE_BW_CTRL */
+ SYSREG ("mpambwidr_el1", CPENC (3,0,10,4,5), F_REG_READ, AARCH64_FEATURE (V9_3A)) /* MPAM_PE_BW_CTRL */
+ SYSREG ("mpambwsm_el1", CPENC (3,0,10,5,7), 0, AARCH64_FEATURES (2, SME, V9_3A)) /* SME && MPAM_PE_BW_CTRL */
+ SYSREG ("mpamhcr_el2", CPENC (3,4,10,4,0), 0, AARCH64_FEATURE (V8_2A)) /* MPAM */
+ SYSREG ("mpamidr_el1", CPENC (3,0,10,4,4), F_REG_READ, AARCH64_FEATURE (V8_2A)) /* MPAM */
+ SYSREG ("mpamsm_el1", CPENC (3,0,10,5,3), 0, AARCH64_FEATURES (2, SME, V8_2A)) /* SME && MPAM */
+ SYSREG ("mpamvpm0_el2", CPENC (3,4,10,6,0), 0, AARCH64_FEATURE (V8_2A)) /* MPAM */
+ SYSREG ("mpamvpm1_el2", CPENC (3,4,10,6,1), 0, AARCH64_FEATURE (V8_2A)) /* MPAM */
+ SYSREG ("mpamvpm2_el2", CPENC (3,4,10,6,2), 0, AARCH64_FEATURE (V8_2A)) /* MPAM */
+ SYSREG ("mpamvpm3_el2", CPENC (3,4,10,6,3), 0, AARCH64_FEATURE (V8_2A)) /* MPAM */
+ SYSREG ("mpamvpm4_el2", CPENC (3,4,10,6,4), 0, AARCH64_FEATURE (V8_2A)) /* MPAM */
+ SYSREG ("mpamvpm5_el2", CPENC (3,4,10,6,5), 0, AARCH64_FEATURE (V8_2A)) /* MPAM */
+ SYSREG ("mpamvpm6_el2", CPENC (3,4,10,6,6), 0, AARCH64_FEATURE (V8_2A)) /* MPAM */
+ SYSREG ("mpamvpm7_el2", CPENC (3,4,10,6,7), 0, AARCH64_FEATURE (V8_2A)) /* MPAM */
+ SYSREG ("mpamvpmv_el2", CPENC (3,4,10,4,1), 0, AARCH64_FEATURE (V8_2A)) /* MPAM */
+ SYSREG ("mpidr_el1", CPENC (3,0,0,0,5), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("mpuir_el1", CPENC (3,0,0,0,4), F_REG_READ, AARCH64_FEATURE (V8R))
+ SYSREG ("mpuir_el2", CPENC (3,4,0,0,4), F_REG_READ, AARCH64_FEATURE (V8R))
+ SYSREG ("mvfr0_el1", CPENC (3,0,0,3,0), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("mvfr1_el1", CPENC (3,0,0,3,1), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("mvfr2_el1", CPENC (3,0,0,3,2), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("nzcv", CPENC (3,3,4,2,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("osdlr_el1", CPENC (2,0,1,3,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("osdtrrx_el1", CPENC (2,0,0,0,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("osdtrtx_el1", CPENC (2,0,0,3,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("oseccr_el1", CPENC (2,0,0,6,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("oslar_el1", CPENC (2,0,1,0,4), F_REG_WRITE, AARCH64_NO_FEATURES)
+ SYSREG ("oslsr_el1", CPENC (2,0,1,1,4), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("pan", CPENC (3,0,4,2,3), 0, AARCH64_FEATURE (PAN))
+ SYSREG ("par_el1", CPENC (3,0,7,4,0), F_REG_128, AARCH64_NO_FEATURES)
+ SYSREG ("pfar_el1", CPENC (3,0,6,0,5), 0, AARCH64_FEATURE (V8_8A)) /* PFAR */
+ SYSREG ("pfar_el12", CPENC (3,5,6,0,5), 0, AARCH64_FEATURE (V8_8A)) /* PFAR */
+ SYSREG ("pfar_el2", CPENC (3,4,6,0,5), 0, AARCH64_FEATURE (V8_8A)) /* PFAR */
+ SYSREG ("pir_el1", CPENC (3,0,10,2,3), 0, AARCH64_FEATURE (V8_8A)) /* S1PIE */
+ SYSREG ("pir_el12", CPENC (3,5,10,2,3), 0, AARCH64_FEATURE (V8_8A)) /* S1PIE */
+ SYSREG ("pir_el2", CPENC (3,4,10,2,3), 0, AARCH64_FEATURE (V8_8A)) /* S1PIE */
+ SYSREG ("pir_el3", CPENC (3,6,10,2,3), 0, AARCH64_FEATURE (V8_8A)) /* S1PIE */
+ SYSREG ("pire0_el1", CPENC (3,0,10,2,2), 0, AARCH64_FEATURE (V8_8A)) /* S1PIE */
+ SYSREG ("pire0_el12", CPENC (3,5,10,2,2), 0, AARCH64_FEATURE (V8_8A)) /* S1PIE */
+ SYSREG ("pire0_el2", CPENC (3,4,10,2,2), 0, AARCH64_FEATURE (V8_8A)) /* S1PIE */
+ SYSREG ("pm", CPENC (3,0,4,3,1), 0, AARCH64_FEATURE (V9_3A)) /* EBEP */
+ SYSREG ("pmbidr_el1", CPENC (3,0,9,10,7), F_REG_READ, AARCH64_FEATURE (PROFILE))
+ SYSREG ("pmblimitr_el1", CPENC (3,0,9,10,0), 0, AARCH64_FEATURE (PROFILE))
+ SYSREG ("pmbmar_el1", CPENC (3,0,9,10,5), 0, AARCH64_FEATURES (2, PROFILE, V9_5A)) /* SPE_nVM */
+ SYSREG ("pmbptr_el1", CPENC (3,0,9,10,1), 0, AARCH64_FEATURE (PROFILE))
+ SYSREG ("pmbsr_el1", CPENC (3,0,9,10,3), 0, AARCH64_FEATURE (PROFILE))
+ SYSREG ("pmbsr_el12", CPENC (3,5,9,10,3), 0, AARCH64_FEATURES (2, V9_5A, PROFILE)) /* SPE_EXC */
+ SYSREG ("pmbsr_el2", CPENC (3,4,9,10,3), 0, AARCH64_FEATURES (2, V9_5A, PROFILE)) /* SPE_EXC */
+ SYSREG ("pmbsr_el3", CPENC (3,6,9,10,3), 0, AARCH64_FEATURES (2, V9_5A, PROFILE)) /* SPE_EXC */
+ SYSREG ("pmccfiltr_el0", CPENC (3,3,14,15,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmccntr_el0", CPENC (3,3,9,13,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmccntsvr_el1", CPENC (2,0,14,11,7), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmceid0_el0", CPENC (3,3,9,12,6), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("pmceid1_el0", CPENC (3,3,9,12,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("pmcntenclr_el0", CPENC (3,3,9,12,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmcntenset_el0", CPENC (3,3,9,12,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmcr_el0", CPENC (3,3,9,12,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmecr_el1", CPENC (3,0,9,14,5), 0, AARCH64_FEATURE (V8_8A)) /* EBEP || PMUv3_SS */
+ SYSREG ("pmevcntr0_el0", CPENC (3,3,14,8,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr10_el0", CPENC (3,3,14,9,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr11_el0", CPENC (3,3,14,9,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr12_el0", CPENC (3,3,14,9,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr13_el0", CPENC (3,3,14,9,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr14_el0", CPENC (3,3,14,9,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr15_el0", CPENC (3,3,14,9,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr16_el0", CPENC (3,3,14,10,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr17_el0", CPENC (3,3,14,10,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr18_el0", CPENC (3,3,14,10,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr19_el0", CPENC (3,3,14,10,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr1_el0", CPENC (3,3,14,8,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr20_el0", CPENC (3,3,14,10,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr21_el0", CPENC (3,3,14,10,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr22_el0", CPENC (3,3,14,10,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr23_el0", CPENC (3,3,14,10,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr24_el0", CPENC (3,3,14,11,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr25_el0", CPENC (3,3,14,11,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr26_el0", CPENC (3,3,14,11,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr27_el0", CPENC (3,3,14,11,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr28_el0", CPENC (3,3,14,11,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr29_el0", CPENC (3,3,14,11,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr2_el0", CPENC (3,3,14,8,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr30_el0", CPENC (3,3,14,11,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr3_el0", CPENC (3,3,14,8,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr4_el0", CPENC (3,3,14,8,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr5_el0", CPENC (3,3,14,8,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr6_el0", CPENC (3,3,14,8,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr7_el0", CPENC (3,3,14,8,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr8_el0", CPENC (3,3,14,9,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntr9_el0", CPENC (3,3,14,9,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevcntsvr0_el1", CPENC (2,0,14,8,0), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr10_el1", CPENC (2,0,14,9,2), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr11_el1", CPENC (2,0,14,9,3), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr12_el1", CPENC (2,0,14,9,4), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr13_el1", CPENC (2,0,14,9,5), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr14_el1", CPENC (2,0,14,9,6), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr15_el1", CPENC (2,0,14,9,7), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr16_el1", CPENC (2,0,14,10,0), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr17_el1", CPENC (2,0,14,10,1), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr18_el1", CPENC (2,0,14,10,2), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr19_el1", CPENC (2,0,14,10,3), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr1_el1", CPENC (2,0,14,8,1), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr20_el1", CPENC (2,0,14,10,4), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr21_el1", CPENC (2,0,14,10,5), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr22_el1", CPENC (2,0,14,10,6), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr23_el1", CPENC (2,0,14,10,7), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr24_el1", CPENC (2,0,14,11,0), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr25_el1", CPENC (2,0,14,11,1), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr26_el1", CPENC (2,0,14,11,2), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr27_el1", CPENC (2,0,14,11,3), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr28_el1", CPENC (2,0,14,11,4), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr29_el1", CPENC (2,0,14,11,5), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr2_el1", CPENC (2,0,14,8,2), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr30_el1", CPENC (2,0,14,11,6), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr3_el1", CPENC (2,0,14,8,3), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr4_el1", CPENC (2,0,14,8,4), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr5_el1", CPENC (2,0,14,8,5), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr6_el1", CPENC (2,0,14,8,6), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr7_el1", CPENC (2,0,14,8,7), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr8_el1", CPENC (2,0,14,9,0), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevcntsvr9_el1", CPENC (2,0,14,9,1), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmevtyper0_el0", CPENC (3,3,14,12,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper10_el0", CPENC (3,3,14,13,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper11_el0", CPENC (3,3,14,13,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper12_el0", CPENC (3,3,14,13,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper13_el0", CPENC (3,3,14,13,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper14_el0", CPENC (3,3,14,13,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper15_el0", CPENC (3,3,14,13,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper16_el0", CPENC (3,3,14,14,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper17_el0", CPENC (3,3,14,14,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper18_el0", CPENC (3,3,14,14,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper19_el0", CPENC (3,3,14,14,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper1_el0", CPENC (3,3,14,12,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper20_el0", CPENC (3,3,14,14,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper21_el0", CPENC (3,3,14,14,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper22_el0", CPENC (3,3,14,14,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper23_el0", CPENC (3,3,14,14,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper24_el0", CPENC (3,3,14,15,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper25_el0", CPENC (3,3,14,15,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper26_el0", CPENC (3,3,14,15,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper27_el0", CPENC (3,3,14,15,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper28_el0", CPENC (3,3,14,15,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper29_el0", CPENC (3,3,14,15,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper2_el0", CPENC (3,3,14,12,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper30_el0", CPENC (3,3,14,15,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper3_el0", CPENC (3,3,14,12,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper4_el0", CPENC (3,3,14,12,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper5_el0", CPENC (3,3,14,12,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper6_el0", CPENC (3,3,14,12,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper7_el0", CPENC (3,3,14,12,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper8_el0", CPENC (3,3,14,13,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmevtyper9_el0", CPENC (3,3,14,13,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmiar_el1", CPENC (3,0,9,14,7), 0, AARCH64_FEATURE (V9_3A)) /* SEBEP */
+ SYSREG ("pmicfiltr_el0", CPENC (3,3,9,6,0), 0, AARCH64_FEATURE (V8_8A)) /* PMUv3_ICNTR */
+ SYSREG ("pmicntr_el0", CPENC (3,3,9,4,0), 0, AARCH64_FEATURE (V8_8A)) /* PMUv3_ICNTR */
+ SYSREG ("pmicntsvr_el1", CPENC (2,0,14,12,0), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* PMUv3_ICNTR && PMUv3_SS */
+ SYSREG ("pmintenclr_el1", CPENC (3,0,9,14,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmintenset_el1", CPENC (3,0,9,14,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmmir_el1", CPENC (3,0,9,14,6), F_REG_READ, AARCH64_FEATURE (V8_3A)) /* PMUv3p4 */
+ SYSREG ("pmovsclr_el0", CPENC (3,3,9,12,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmovsset_el0", CPENC (3,3,9,14,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmscr_el1", CPENC (3,0,9,9,0), 0, AARCH64_FEATURE (PROFILE))
+ SYSREG ("pmscr_el12", CPENC (3,5,9,9,0), 0, AARCH64_FEATURE (PROFILE))
+ SYSREG ("pmscr_el2", CPENC (3,4,9,9,0), 0, AARCH64_FEATURE (PROFILE))
+ SYSREG ("pmsdsfr_el1", CPENC (3,0,9,10,4), 0, AARCH64_FEATURES (2, PROFILE, V8_8A)) /* SPE_FDS */
+ SYSREG ("pmselr_el0", CPENC (3,3,9,12,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmsevfr_el1", CPENC (3,0,9,9,5), 0, AARCH64_FEATURE (PROFILE))
+ SYSREG ("pmsfcr_el1", CPENC (3,0,9,9,4), 0, AARCH64_FEATURE (PROFILE))
+ SYSREG ("pmsicr_el1", CPENC (3,0,9,9,2), 0, AARCH64_FEATURE (PROFILE))
+ SYSREG ("pmsidr_el1", CPENC (3,0,9,9,7), F_REG_READ, AARCH64_FEATURE (PROFILE))
+ SYSREG ("pmsirr_el1", CPENC (3,0,9,9,3), 0, AARCH64_FEATURE (PROFILE))
+ SYSREG ("pmslatfr_el1", CPENC (3,0,9,9,6), 0, AARCH64_FEATURE (PROFILE))
+ SYSREG ("pmsnevfr_el1", CPENC (3,0,9,9,1), 0, AARCH64_FEATURES (2, PROFILE, V8_6A)) /* SPE_FnE */
+ SYSREG ("pmsscr_el1", CPENC (3,0,9,13,3), 0, AARCH64_FEATURE (V8_8A)) /* PMUv3_SS */
+ SYSREG ("pmswinc_el0", CPENC (3,3,9,12,4), F_REG_WRITE, AARCH64_NO_FEATURES)
+ SYSREG ("pmuacr_el1", CPENC (3,0,9,14,4), 0, AARCH64_FEATURE (V8_8A)) /* PMUv3p9 */
+ SYSREG ("pmuserenr_el0", CPENC (3,3,9,14,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmxevcntr_el0", CPENC (3,3,9,13,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmxevtyper_el0", CPENC (3,3,9,13,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("pmzr_el0", CPENC (3,3,9,13,4), F_REG_WRITE, AARCH64_FEATURE (V8_8A)) /* PMUv3p9 */
+ SYSREG ("por_el0", CPENC (3,3,10,2,4), 0, AARCH64_FEATURE (V8_8A)) /* S1POE */
+ SYSREG ("por_el1", CPENC (3,0,10,2,4), 0, AARCH64_FEATURE (V8_8A)) /* S1POE */
+ SYSREG ("por_el12", CPENC (3,5,10,2,4), 0, AARCH64_FEATURE (V8_8A)) /* S1POE */
+ SYSREG ("por_el2", CPENC (3,4,10,2,4), 0, AARCH64_FEATURE (V8_8A)) /* S1POE */
+ SYSREG ("por_el3", CPENC (3,6,10,2,4), 0, AARCH64_FEATURE (V8_8A)) /* S1POE */
+ SYSREG ("prbar10_el1", CPENC (3,0,6,13,0), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar10_el2", CPENC (3,4,6,13,0), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar11_el1", CPENC (3,0,6,13,4), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar11_el2", CPENC (3,4,6,13,4), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar12_el1", CPENC (3,0,6,14,0), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar12_el2", CPENC (3,4,6,14,0), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar13_el1", CPENC (3,0,6,14,4), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar13_el2", CPENC (3,4,6,14,4), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar14_el1", CPENC (3,0,6,15,0), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar14_el2", CPENC (3,4,6,15,0), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar15_el1", CPENC (3,0,6,15,4), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar15_el2", CPENC (3,4,6,15,4), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar1_el1", CPENC (3,0,6,8,4), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar1_el2", CPENC (3,4,6,8,4), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar2_el1", CPENC (3,0,6,9,0), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar2_el2", CPENC (3,4,6,9,0), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar3_el1", CPENC (3,0,6,9,4), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar3_el2", CPENC (3,4,6,9,4), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar4_el1", CPENC (3,0,6,10,0), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar4_el2", CPENC (3,4,6,10,0), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar5_el1", CPENC (3,0,6,10,4), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar5_el2", CPENC (3,4,6,10,4), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar6_el1", CPENC (3,0,6,11,0), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar6_el2", CPENC (3,4,6,11,0), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar7_el1", CPENC (3,0,6,11,4), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar7_el2", CPENC (3,4,6,11,4), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar8_el1", CPENC (3,0,6,12,0), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar8_el2", CPENC (3,4,6,12,0), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar9_el1", CPENC (3,0,6,12,4), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar9_el2", CPENC (3,4,6,12,4), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar_el1", CPENC (3,0,6,8,0), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prbar_el2", CPENC (3,4,6,8,0), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prenr_el1", CPENC (3,0,6,1,1), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prenr_el2", CPENC (3,4,6,1,1), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar10_el1", CPENC (3,0,6,13,1), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar10_el2", CPENC (3,4,6,13,1), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar11_el1", CPENC (3,0,6,13,5), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar11_el2", CPENC (3,4,6,13,5), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar12_el1", CPENC (3,0,6,14,1), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar12_el2", CPENC (3,4,6,14,1), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar13_el1", CPENC (3,0,6,14,5), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar13_el2", CPENC (3,4,6,14,5), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar14_el1", CPENC (3,0,6,15,1), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar14_el2", CPENC (3,4,6,15,1), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar15_el1", CPENC (3,0,6,15,5), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar15_el2", CPENC (3,4,6,15,5), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar1_el1", CPENC (3,0,6,8,5), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar1_el2", CPENC (3,4,6,8,5), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar2_el1", CPENC (3,0,6,9,1), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar2_el2", CPENC (3,4,6,9,1), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar3_el1", CPENC (3,0,6,9,5), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar3_el2", CPENC (3,4,6,9,5), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar4_el1", CPENC (3,0,6,10,1), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar4_el2", CPENC (3,4,6,10,1), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar5_el1", CPENC (3,0,6,10,5), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar5_el2", CPENC (3,4,6,10,5), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar6_el1", CPENC (3,0,6,11,1), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar6_el2", CPENC (3,4,6,11,1), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar7_el1", CPENC (3,0,6,11,5), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar7_el2", CPENC (3,4,6,11,5), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar8_el1", CPENC (3,0,6,12,1), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar8_el2", CPENC (3,4,6,12,1), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar9_el1", CPENC (3,0,6,12,5), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar9_el2", CPENC (3,4,6,12,5), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar_el1", CPENC (3,0,6,8,1), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prlar_el2", CPENC (3,4,6,8,1), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prselr_el1", CPENC (3,0,6,2,1), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("prselr_el2", CPENC (3,4,6,2,1), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("rcwmask_el1", CPENC (3,0,13,0,6), F_REG_128, AARCH64_FEATURE (THE))
+ SYSREG ("rcwsmask_el1", CPENC (3,0,13,0,3), F_REG_128, AARCH64_FEATURE (THE))
+ SYSREG ("revidr_el1", CPENC (3,0,0,0,6), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("rgsr_el1", CPENC (3,0,1,0,5), 0, AARCH64_FEATURE (MEMTAG))
+ SYSREG ("rmr_el1", CPENC (3,0,12,0,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("rmr_el2", CPENC (3,4,12,0,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("rmr_el3", CPENC (3,6,12,0,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("rndr", CPENC (3,3,2,4,0), F_REG_READ, AARCH64_FEATURE (RNG))
+ SYSREG ("rndrrs", CPENC (3,3,2,4,1), F_REG_READ, AARCH64_FEATURE (RNG))
+ SYSREG ("rvbar_el1", CPENC (3,0,12,0,1), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("rvbar_el2", CPENC (3,4,12,0,1), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("rvbar_el3", CPENC (3,6,12,0,1), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("s2pir_el2", CPENC (3,4,10,2,5), 0, AARCH64_FEATURE (V8_8A)) /* S2PIE */
+ SYSREG ("s2por_el1", CPENC (3,0,10,2,5), 0, AARCH64_FEATURE (V8_8A)) /* S2POE */
+ SYSREG ("scr_el3", CPENC (3,6,1,1,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("sctlr_el1", CPENC (3,0,1,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("sctlr_el12", CPENC (3,5,1,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("sctlr_el2", CPENC (3,4,1,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("sctlr_el3", CPENC (3,6,1,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("sctlr2_el1", CPENC (3,0,1,0,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("sctlr2_el12", CPENC (3,5,1,0,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("sctlr2_el2", CPENC (3,4,1,0,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("sctlr2_el3", CPENC (3,6,1,0,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("sctlr2alias_el1", CPENC (3,0,1,4,7), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("sctlr2mask_el1", CPENC (3,0,1,4,3), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("sctlr2mask_el12", CPENC (3,5,1,4,3), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("sctlr2mask_el2", CPENC (3,4,1,4,3), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("sctlralias_el1", CPENC (3,0,1,4,6), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("sctlrmask_el1", CPENC (3,0,1,4,0), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("sctlrmask_el12", CPENC (3,5,1,4,0), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("sctlrmask_el2", CPENC (3,4,1,4,0), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("scxtnum_el0", CPENC (3,3,13,0,7), 0, AARCH64_NO_FEATURES) /* CSV2_2 || CSV2_1p2 */
+ SYSREG ("scxtnum_el1", CPENC (3,0,13,0,7), 0, AARCH64_NO_FEATURES) /* CSV2_2 || CSV2_1p2 */
+ SYSREG ("scxtnum_el12", CPENC (3,5,13,0,7), 0, AARCH64_NO_FEATURES) /* CSV2_2 || CSV2_1p2 */
+ SYSREG ("scxtnum_el2", CPENC (3,4,13,0,7), 0, AARCH64_NO_FEATURES) /* CSV2_2 || CSV2_1p2 */
+ SYSREG ("scxtnum_el3", CPENC (3,6,13,0,7), 0, AARCH64_NO_FEATURES) /* CSV2_2 || CSV2_1p2 */
+ SYSREG ("sder32_el2", CPENC (3,4,1,3,1), 0, AARCH64_FEATURE (V8_3A)) /* SEL2 */
+ SYSREG ("sder32_el3", CPENC (3,6,1,1,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("smcr_el1", CPENC (3,0,1,2,6), 0, AARCH64_FEATURE (SME))
+ SYSREG ("smcr_el12", CPENC (3,5,1,2,6), 0, AARCH64_FEATURE (SME))
+ SYSREG ("smcr_el2", CPENC (3,4,1,2,6), 0, AARCH64_FEATURE (SME))
+ SYSREG ("smcr_el3", CPENC (3,6,1,2,6), 0, AARCH64_FEATURE (SME))
+ SYSREG ("smidr_el1", CPENC (3,1,0,0,6), F_REG_READ, AARCH64_FEATURE (SME))
+ SYSREG ("smpri_el1", CPENC (3,0,1,2,4), 0, AARCH64_FEATURE (SME))
+ SYSREG ("smprimap_el2", CPENC (3,4,1,2,5), 0, AARCH64_FEATURE (SME))
+ SYSREG ("sp_el0", CPENC (3,0,4,1,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("sp_el1", CPENC (3,4,4,1,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("sp_el2", CPENC (3,6,4,1,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("spmaccessr_el1", CPENC (2,0,9,13,3), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmaccessr_el12", CPENC (2,5,9,13,3), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmaccessr_el2", CPENC (2,4,9,13,3), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmaccessr_el3", CPENC (2,6,9,13,3), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmcfgr_el1", CPENC (2,0,9,13,7), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmcgcr0_el1", CPENC (2,0,9,13,0), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmcgcr1_el1", CPENC (2,0,9,13,1), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmcntenclr_el0", CPENC (2,3,9,12,2), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmcntenset_el0", CPENC (2,3,9,12,1), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmcr_el0", CPENC (2,3,9,12,0), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmdevaff_el1", CPENC (2,0,9,13,6), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmdevarch_el1", CPENC (2,0,9,13,5), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevcntr0_el0", CPENC (2,3,14,0,0), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevcntr1_el0", CPENC (2,3,14,0,1), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevcntr2_el0", CPENC (2,3,14,0,2), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevcntr3_el0", CPENC (2,3,14,0,3), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevcntr4_el0", CPENC (2,3,14,0,4), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevcntr5_el0", CPENC (2,3,14,0,5), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevcntr6_el0", CPENC (2,3,14,0,6), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevcntr7_el0", CPENC (2,3,14,0,7), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevcntr8_el0", CPENC (2,3,14,1,0), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevcntr9_el0", CPENC (2,3,14,1,1), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevcntr10_el0", CPENC (2,3,14,1,2), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevcntr11_el0", CPENC (2,3,14,1,3), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevcntr12_el0", CPENC (2,3,14,1,4), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevcntr13_el0", CPENC (2,3,14,1,5), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevcntr14_el0", CPENC (2,3,14,1,6), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevcntr15_el0", CPENC (2,3,14,1,7), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfilt2r0_el0", CPENC (2,3,14,6,0), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfilt2r1_el0", CPENC (2,3,14,6,1), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfilt2r2_el0", CPENC (2,3,14,6,2), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfilt2r3_el0", CPENC (2,3,14,6,3), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfilt2r4_el0", CPENC (2,3,14,6,4), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfilt2r5_el0", CPENC (2,3,14,6,5), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfilt2r6_el0", CPENC (2,3,14,6,6), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfilt2r7_el0", CPENC (2,3,14,6,7), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfilt2r8_el0", CPENC (2,3,14,7,0), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfilt2r9_el0", CPENC (2,3,14,7,1), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfilt2r10_el0", CPENC (2,3,14,7,2), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfilt2r11_el0", CPENC (2,3,14,7,3), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfilt2r12_el0", CPENC (2,3,14,7,4), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfilt2r13_el0", CPENC (2,3,14,7,5), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfilt2r14_el0", CPENC (2,3,14,7,6), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfilt2r15_el0", CPENC (2,3,14,7,7), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfiltr0_el0", CPENC (2,3,14,4,0), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfiltr1_el0", CPENC (2,3,14,4,1), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfiltr2_el0", CPENC (2,3,14,4,2), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfiltr3_el0", CPENC (2,3,14,4,3), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfiltr4_el0", CPENC (2,3,14,4,4), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfiltr5_el0", CPENC (2,3,14,4,5), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfiltr6_el0", CPENC (2,3,14,4,6), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfiltr7_el0", CPENC (2,3,14,4,7), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfiltr8_el0", CPENC (2,3,14,5,0), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfiltr9_el0", CPENC (2,3,14,5,1), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfiltr10_el0", CPENC (2,3,14,5,2), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfiltr11_el0", CPENC (2,3,14,5,3), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfiltr12_el0", CPENC (2,3,14,5,4), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfiltr13_el0", CPENC (2,3,14,5,5), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfiltr14_el0", CPENC (2,3,14,5,6), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevfiltr15_el0", CPENC (2,3,14,5,7), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevtyper0_el0", CPENC (2,3,14,2,0), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevtyper1_el0", CPENC (2,3,14,2,1), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevtyper2_el0", CPENC (2,3,14,2,2), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevtyper3_el0", CPENC (2,3,14,2,3), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevtyper4_el0", CPENC (2,3,14,2,4), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevtyper5_el0", CPENC (2,3,14,2,5), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevtyper6_el0", CPENC (2,3,14,2,6), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevtyper7_el0", CPENC (2,3,14,2,7), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevtyper8_el0", CPENC (2,3,14,3,0), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevtyper9_el0", CPENC (2,3,14,3,1), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevtyper10_el0", CPENC (2,3,14,3,2), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevtyper11_el0", CPENC (2,3,14,3,3), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevtyper12_el0", CPENC (2,3,14,3,4), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevtyper13_el0", CPENC (2,3,14,3,5), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevtyper14_el0", CPENC (2,3,14,3,6), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmevtyper15_el0", CPENC (2,3,14,3,7), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmiidr_el1", CPENC (2,0,9,13,4), F_REG_READ, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmintenclr_el1", CPENC (2,0,9,14,2), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmintenset_el1", CPENC (2,0,9,14,1), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmovsclr_el0", CPENC (2,3,9,12,3), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmovsset_el0", CPENC (2,3,9,14,3), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmrootcr_el3", CPENC (2,6,9,14,7), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmscr_el1", CPENC (2,7,9,14,7), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmselr_el0", CPENC (2,3,9,12,5), 0, AARCH64_FEATURE (V8_8A)) /* SPMU */
+ SYSREG ("spmzr_el0", CPENC (2,3,9,12,4), F_REG_WRITE, AARCH64_FEATURE (V9_4A)) /* SPMU2 */
+ SYSREG ("spsel", CPENC (3,0,4,2,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("spsr_abt", CPENC (3,4,4,3,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("spsr_el1", CPENC (3,0,4,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("spsr_el12", CPENC (3,5,4,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("spsr_el2", CPENC (3,4,4,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("spsr_el3", CPENC (3,6,4,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("spsr_fiq", CPENC (3,4,4,3,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("spsr_hyp", CPENC (3,4,4,0,0), F_DEPRECATED, AARCH64_NO_FEATURES)
+ SYSREG ("spsr_irq", CPENC (3,4,4,3,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("spsr_svc", CPENC (3,0,4,0,0), F_DEPRECATED, AARCH64_NO_FEATURES)
+ SYSREG ("spsr_und", CPENC (3,4,4,3,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ssbs", CPENC (3,3,4,2,6), 0, AARCH64_FEATURE (SSBS))
+ SYSREG ("svcr", CPENC (3,3,4,2,2), 0, AARCH64_FEATURE (SME))
+ SYSREG ("tco", CPENC (3,3,4,2,7), 0, AARCH64_FEATURE (MEMTAG))
+ SYSREG ("tcr_el1", CPENC (3,0,2,0,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("tcr_el12", CPENC (3,5,2,0,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("tcr_el2", CPENC (3,4,2,0,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("tcr_el3", CPENC (3,6,2,0,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("tcr2_el1", CPENC (3,0,2,0,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("tcr2_el12", CPENC (3,5,2,0,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("tcr2_el2", CPENC (3,4,2,0,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("tcr2alias_el1", CPENC (3,0,2,7,7), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("tcr2mask_el1", CPENC (3,0,2,7,3), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("tcr2mask_el12", CPENC (3,5,2,7,3), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("tcr2mask_el2", CPENC (3,4,2,7,3), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("tcralias_el1", CPENC (3,0,2,7,6), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("tcrmask_el1", CPENC (3,0,2,7,2), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("tcrmask_el12", CPENC (3,5,2,7,2), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("tcrmask_el2", CPENC (3,4,2,7,2), 0, AARCH64_FEATURE (V9_5A)) /* SRMASK */
+ SYSREG ("tfsr_el1", CPENC (3,0,5,6,0), 0, AARCH64_FEATURE (MEMTAG))
+ SYSREG ("tfsr_el12", CPENC (3,5,5,6,0), 0, AARCH64_FEATURE (MEMTAG))
+ SYSREG ("tfsr_el2", CPENC (3,4,5,6,0), 0, AARCH64_FEATURE (MEMTAG))
+ SYSREG ("tfsr_el3", CPENC (3,6,5,6,0), 0, AARCH64_FEATURE (MEMTAG))
+ SYSREG ("tfsre0_el1", CPENC (3,0,5,6,1), 0, AARCH64_FEATURE (MEMTAG))
+ SYSREG ("tpidr2_el0", CPENC (3,3,13,0,5), 0, AARCH64_FEATURE (SME))
+ SYSREG ("tpidr_el0", CPENC (3,3,13,0,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("tpidr_el1", CPENC (3,0,13,0,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("tpidr_el2", CPENC (3,4,13,0,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("tpidr_el3", CPENC (3,6,13,0,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("tpidrro_el0", CPENC (3,3,13,0,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trbbaser_el1", CPENC (3,0,9,11,2), 0, AARCH64_FEATURE (V9A)) /* TRBE */
+ SYSREG ("trbidr_el1", CPENC (3,0,9,11,7), F_REG_READ, AARCH64_FEATURE (V9A)) /* TRBE */
+ SYSREG ("trblimitr_el1", CPENC (3,0,9,11,0), 0, AARCH64_FEATURE (V9A)) /* TRBE */
+ SYSREG ("trbmar_el1", CPENC (3,0,9,11,4), 0, AARCH64_FEATURE (V9A)) /* TRBE */
+ SYSREG ("trbmpam_el1", CPENC (3,0,9,11,5), 0, AARCH64_FEATURE (V9_3A)) /* TRBE_MPAM */
+ SYSREG ("trbptr_el1", CPENC (3,0,9,11,1), 0, AARCH64_FEATURE (V9A)) /* TRBE */
+ SYSREG ("trbsr_el1", CPENC (3,0,9,11,3), 0, AARCH64_FEATURE (V9A)) /* TRBE */
+ SYSREG ("trbsr_el12", CPENC (3,5,9,11,3), 0, AARCH64_FEATURE (V9_5A)) /* TRBE_EXC */
+ SYSREG ("trbsr_el2", CPENC (3,4,9,11,3), 0, AARCH64_FEATURE (V9_5A)) /* TRBE_EXC */
+ SYSREG ("trbsr_el3", CPENC (3,6,9,11,3), 0, AARCH64_FEATURE (V9_5A)) /* TRBE_EXC */
+ SYSREG ("trbtrg_el1", CPENC (3,0,9,11,6), 0, AARCH64_FEATURE (V9A)) /* TRBE */
+ SYSREG ("trcacatr0", CPENC (2,1,2,0,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacatr1", CPENC (2,1,2,2,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacatr10", CPENC (2,1,2,4,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacatr11", CPENC (2,1,2,6,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacatr12", CPENC (2,1,2,8,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacatr13", CPENC (2,1,2,10,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacatr14", CPENC (2,1,2,12,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacatr15", CPENC (2,1,2,14,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacatr2", CPENC (2,1,2,4,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacatr3", CPENC (2,1,2,6,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacatr4", CPENC (2,1,2,8,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacatr5", CPENC (2,1,2,10,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacatr6", CPENC (2,1,2,12,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacatr7", CPENC (2,1,2,14,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacatr8", CPENC (2,1,2,0,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacatr9", CPENC (2,1,2,2,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacvr0", CPENC (2,1,2,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacvr1", CPENC (2,1,2,2,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacvr10", CPENC (2,1,2,4,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacvr11", CPENC (2,1,2,6,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacvr12", CPENC (2,1,2,8,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacvr13", CPENC (2,1,2,10,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacvr14", CPENC (2,1,2,12,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacvr15", CPENC (2,1,2,14,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacvr2", CPENC (2,1,2,4,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacvr3", CPENC (2,1,2,6,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacvr4", CPENC (2,1,2,8,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacvr5", CPENC (2,1,2,10,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacvr6", CPENC (2,1,2,12,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacvr7", CPENC (2,1,2,14,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacvr8", CPENC (2,1,2,0,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcacvr9", CPENC (2,1,2,2,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcauthstatus", CPENC (2,1,7,14,6), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcauxctlr", CPENC (2,1,0,6,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcbbctlr", CPENC (2,1,0,15,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcccctlr", CPENC (2,1,0,14,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccidcctlr0", CPENC (2,1,3,0,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccidcctlr1", CPENC (2,1,3,1,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccidcvr0", CPENC (2,1,3,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccidcvr1", CPENC (2,1,3,2,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccidcvr2", CPENC (2,1,3,4,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccidcvr3", CPENC (2,1,3,6,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccidcvr4", CPENC (2,1,3,8,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccidcvr5", CPENC (2,1,3,10,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccidcvr6", CPENC (2,1,3,12,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccidcvr7", CPENC (2,1,3,14,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccidr0", CPENC (2,1,7,12,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trccidr1", CPENC (2,1,7,13,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trccidr2", CPENC (2,1,7,14,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trccidr3", CPENC (2,1,7,15,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcclaimclr", CPENC (2,1,7,9,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcclaimset", CPENC (2,1,7,8,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccntctlr0", CPENC (2,1,0,4,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccntctlr1", CPENC (2,1,0,5,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccntctlr2", CPENC (2,1,0,6,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccntctlr3", CPENC (2,1,0,7,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccntrldvr0", CPENC (2,1,0,0,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccntrldvr1", CPENC (2,1,0,1,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccntrldvr2", CPENC (2,1,0,2,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccntrldvr3", CPENC (2,1,0,3,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccntvr0", CPENC (2,1,0,8,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccntvr1", CPENC (2,1,0,9,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccntvr2", CPENC (2,1,0,10,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trccntvr3", CPENC (2,1,0,11,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcconfigr", CPENC (2,1,0,4,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcdevaff0", CPENC (2,1,7,10,6), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcdevaff1", CPENC (2,1,7,11,6), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcdevarch", CPENC (2,1,7,15,6), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcdevid", CPENC (2,1,7,2,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcdevtype", CPENC (2,1,7,3,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcdvcmr0", CPENC (2,1,2,0,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcdvcmr1", CPENC (2,1,2,4,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcdvcmr2", CPENC (2,1,2,8,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcdvcmr3", CPENC (2,1,2,12,6), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcdvcmr4", CPENC (2,1,2,0,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcdvcmr5", CPENC (2,1,2,4,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcdvcmr6", CPENC (2,1,2,8,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcdvcmr7", CPENC (2,1,2,12,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcdvcvr0", CPENC (2,1,2,0,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcdvcvr1", CPENC (2,1,2,4,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcdvcvr2", CPENC (2,1,2,8,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcdvcvr3", CPENC (2,1,2,12,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcdvcvr4", CPENC (2,1,2,0,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcdvcvr5", CPENC (2,1,2,4,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcdvcvr6", CPENC (2,1,2,8,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcdvcvr7", CPENC (2,1,2,12,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trceventctl0r", CPENC (2,1,0,8,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trceventctl1r", CPENC (2,1,0,9,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcextinselr", CPENC (2,1,0,8,4), F_REG_ALIAS, AARCH64_NO_FEATURES)
+ SYSREG ("trcextinselr0", CPENC (2,1,0,8,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcextinselr1", CPENC (2,1,0,9,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcextinselr2", CPENC (2,1,0,10,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcextinselr3", CPENC (2,1,0,11,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcidr0", CPENC (2,1,0,8,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcidr1", CPENC (2,1,0,9,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcidr10", CPENC (2,1,0,2,6), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcidr11", CPENC (2,1,0,3,6), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcidr12", CPENC (2,1,0,4,6), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcidr13", CPENC (2,1,0,5,6), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcidr2", CPENC (2,1,0,10,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcidr3", CPENC (2,1,0,11,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcidr4", CPENC (2,1,0,12,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcidr5", CPENC (2,1,0,13,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcidr6", CPENC (2,1,0,14,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcidr7", CPENC (2,1,0,15,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcidr8", CPENC (2,1,0,0,6), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcidr9", CPENC (2,1,0,1,6), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcimspec0", CPENC (2,1,0,0,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcimspec1", CPENC (2,1,0,1,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcimspec2", CPENC (2,1,0,2,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcimspec3", CPENC (2,1,0,3,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcimspec4", CPENC (2,1,0,4,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcimspec5", CPENC (2,1,0,5,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcimspec6", CPENC (2,1,0,6,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcimspec7", CPENC (2,1,0,7,7), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcitctrl", CPENC (2,1,7,0,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcitecr_el1", CPENC (3,0,1,2,3), 0, AARCH64_FEATURE (ITE))
+ SYSREG ("trcitecr_el12", CPENC (3,5,1,2,3), 0, AARCH64_FEATURE (ITE))
+ SYSREG ("trcitecr_el2", CPENC (3,4,1,2,3), 0, AARCH64_FEATURE (ITE))
+ SYSREG ("trciteedcr", CPENC (2,1,0,2,1), 0, AARCH64_FEATURE (ITE))
+ SYSREG ("trclar", CPENC (2,1,7,12,6), F_REG_WRITE, AARCH64_NO_FEATURES)
+ SYSREG ("trclsr", CPENC (2,1,7,13,6), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcoslar", CPENC (2,1,1,0,4), F_REG_WRITE, AARCH64_NO_FEATURES)
+ SYSREG ("trcoslsr", CPENC (2,1,1,1,4), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcpdcr", CPENC (2,1,1,4,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcpdsr", CPENC (2,1,1,5,4), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcpidr0", CPENC (2,1,7,8,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcpidr1", CPENC (2,1,7,9,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcpidr2", CPENC (2,1,7,10,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcpidr3", CPENC (2,1,7,11,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcpidr4", CPENC (2,1,7,4,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcpidr5", CPENC (2,1,7,5,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcpidr6", CPENC (2,1,7,6,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcpidr7", CPENC (2,1,7,7,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcprgctlr", CPENC (2,1,0,1,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcprocselr", CPENC (2,1,0,2,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcqctlr", CPENC (2,1,0,1,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr10", CPENC (2,1,1,10,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr11", CPENC (2,1,1,11,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr12", CPENC (2,1,1,12,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr13", CPENC (2,1,1,13,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr14", CPENC (2,1,1,14,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr15", CPENC (2,1,1,15,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr16", CPENC (2,1,1,0,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr17", CPENC (2,1,1,1,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr18", CPENC (2,1,1,2,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr19", CPENC (2,1,1,3,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr2", CPENC (2,1,1,2,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr20", CPENC (2,1,1,4,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr21", CPENC (2,1,1,5,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr22", CPENC (2,1,1,6,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr23", CPENC (2,1,1,7,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr24", CPENC (2,1,1,8,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr25", CPENC (2,1,1,9,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr26", CPENC (2,1,1,10,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr27", CPENC (2,1,1,11,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr28", CPENC (2,1,1,12,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr29", CPENC (2,1,1,13,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr3", CPENC (2,1,1,3,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr30", CPENC (2,1,1,14,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr31", CPENC (2,1,1,15,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr4", CPENC (2,1,1,4,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr5", CPENC (2,1,1,5,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr6", CPENC (2,1,1,6,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr7", CPENC (2,1,1,7,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr8", CPENC (2,1,1,8,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsctlr9", CPENC (2,1,1,9,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcrsr", CPENC (2,1,0,10,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcseqevr0", CPENC (2,1,0,0,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcseqevr1", CPENC (2,1,0,1,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcseqevr2", CPENC (2,1,0,2,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcseqrstevr", CPENC (2,1,0,6,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcseqstr", CPENC (2,1,0,7,4), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcssccr0", CPENC (2,1,1,0,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcssccr1", CPENC (2,1,1,1,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcssccr2", CPENC (2,1,1,2,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcssccr3", CPENC (2,1,1,3,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcssccr4", CPENC (2,1,1,4,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcssccr5", CPENC (2,1,1,5,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcssccr6", CPENC (2,1,1,6,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcssccr7", CPENC (2,1,1,7,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcsscsr0", CPENC (2,1,1,8,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcsscsr1", CPENC (2,1,1,9,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcsscsr2", CPENC (2,1,1,10,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcsscsr3", CPENC (2,1,1,11,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcsscsr4", CPENC (2,1,1,12,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcsscsr5", CPENC (2,1,1,13,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcsscsr6", CPENC (2,1,1,14,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcsscsr7", CPENC (2,1,1,15,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcsspcicr0", CPENC (2,1,1,0,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcsspcicr1", CPENC (2,1,1,1,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcsspcicr2", CPENC (2,1,1,2,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcsspcicr3", CPENC (2,1,1,3,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcsspcicr4", CPENC (2,1,1,4,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcsspcicr5", CPENC (2,1,1,5,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcsspcicr6", CPENC (2,1,1,6,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcsspcicr7", CPENC (2,1,1,7,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcstallctlr", CPENC (2,1,0,11,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcstatr", CPENC (2,1,0,3,0), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("trcsyncpr", CPENC (2,1,0,13,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trctraceidr", CPENC (2,1,0,0,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trctsctlr", CPENC (2,1,0,12,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcvdarcctlr", CPENC (2,1,0,10,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcvdctlr", CPENC (2,1,0,8,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcvdsacctlr", CPENC (2,1,0,9,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcvictlr", CPENC (2,1,0,0,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcviiectlr", CPENC (2,1,0,1,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcvipcssctlr", CPENC (2,1,0,3,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcvissctlr", CPENC (2,1,0,2,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcvmidcctlr0", CPENC (2,1,3,2,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcvmidcctlr1", CPENC (2,1,3,3,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcvmidcvr0", CPENC (2,1,3,0,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcvmidcvr1", CPENC (2,1,3,2,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcvmidcvr2", CPENC (2,1,3,4,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcvmidcvr3", CPENC (2,1,3,6,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcvmidcvr4", CPENC (2,1,3,8,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcvmidcvr5", CPENC (2,1,3,10,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcvmidcvr6", CPENC (2,1,3,12,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trcvmidcvr7", CPENC (2,1,3,14,1), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trfcr_el1", CPENC (3,0,1,2,1), 0, AARCH64_FEATURE (V8_3A)) /* TRF */
+ SYSREG ("trfcr_el12", CPENC (3,5,1,2,1), 0, AARCH64_FEATURE (V8_3A)) /* TRF */
+ SYSREG ("trfcr_el2", CPENC (3,4,1,2,1), 0, AARCH64_FEATURE (V8_3A)) /* TRF */
+ SYSREG ("ttbr0_el1", CPENC (3,0,2,0,0), F_REG_128, AARCH64_NO_FEATURES)
+ SYSREG ("ttbr0_el12", CPENC (3,5,2,0,0), F_REG_128, AARCH64_NO_FEATURES)
+ SYSREG ("ttbr0_el2", CPENC (3,4,2,0,0), F_REG_128, AARCH64_FEATURE (V8A))
+ SYSREG ("ttbr0_el3", CPENC (3,6,2,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("ttbr1_el1", CPENC (3,0,2,0,1), F_REG_128, AARCH64_NO_FEATURES)
+ SYSREG ("ttbr1_el12", CPENC (3,5,2,0,1), F_REG_128, AARCH64_NO_FEATURES)
+ SYSREG ("ttbr1_el2", CPENC (3,4,2,0,1), F_REG_128, AARCH64_FEATURE (V8A))
+ SYSREG ("uao", CPENC (3,0,4,2,4), 0, AARCH64_FEATURE (V8_1A)) /* UAO */
+ SYSREG ("vbar_el1", CPENC (3,0,12,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("vbar_el12", CPENC (3,5,12,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("vbar_el2", CPENC (3,4,12,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("vbar_el3", CPENC (3,6,12,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("vdisr_el2", CPENC (3,4,12,1,1), 0, AARCH64_FEATURE (RAS))
+ SYSREG ("vdisr_el3", CPENC (3,6,12,1,1), 0, AARCH64_FEATURE (V9_4A)) /* E3DSE */
+ SYSREG ("vmecid_a_el2", CPENC (3,4,10,9,1), 0, AARCH64_FEATURE (V9_2A)) /* MEC */
+ SYSREG ("vmecid_p_el2", CPENC (3,4,10,9,0), 0, AARCH64_FEATURE (V9_2A)) /* MEC */
+ SYSREG ("vmpidr_el2", CPENC (3,4,0,0,5), 0, AARCH64_NO_FEATURES)
+ SYSREG ("vncr_el2", CPENC (3,4,2,2,0), 0, AARCH64_FEATURE (V8_3A)) /* NV2 */
+ SYSREG ("vpidr_el2", CPENC (3,4,0,0,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("vsctlr_el2", CPENC (3,4,2,0,0), 0, AARCH64_FEATURE (V8R))
+ SYSREG ("vsesr_el2", CPENC (3,4,5,2,3), 0, AARCH64_FEATURE (RAS))
+ SYSREG ("vsesr_el3", CPENC (3,6,5,2,3), 0, AARCH64_FEATURE (V9_4A)) /* E3DSE */
+ SYSREG ("vstcr_el2", CPENC (3,4,2,6,2), 0, AARCH64_FEATURE (V8_3A)) /* SEL2 */
+ SYSREG ("vsttbr_el2", CPENC (3,4,2,6,0), 0, AARCH64_FEATURES (2, V8A, V8_3A)) /* SEL2 */
+ SYSREG ("vtcr_el2", CPENC (3,4,2,1,2), 0, AARCH64_NO_FEATURES)
+ SYSREG ("vttbr_el2", CPENC (3,4,2,1,0), F_REG_128, AARCH64_FEATURE (V8A))
+ SYSREG ("zcr_el1", CPENC (3,0,1,2,0), 0, AARCH64_FEATURE (SVE))
+ SYSREG ("zcr_el12", CPENC (3,5,1,2,0), 0, AARCH64_FEATURE (SVE))
+ SYSREG ("zcr_el2", CPENC (3,4,1,2,0), 0, AARCH64_FEATURE (SVE))
+ SYSREG ("zcr_el3", CPENC (3,6,1,2,0), 0, AARCH64_FEATURE (SVE))
diff --git a/opcodes/aclocal.m4 b/opcodes/aclocal.m4
index dc5967a..e153440 100644
--- a/opcodes/aclocal.m4
+++ b/opcodes/aclocal.m4
@@ -1171,7 +1171,9 @@ m4_include([../bfd/acinclude.m4])
m4_include([../bfd/warning.m4])
m4_include([../config/acx.m4])
m4_include([../config/bfd64.m4])
+m4_include([../config/clang-plugin.m4])
m4_include([../config/depstand.m4])
+m4_include([../config/gcc-plugin.m4])
m4_include([../config/gettext-sister.m4])
m4_include([../config/gettext.m4])
m4_include([../config/iconv.m4])
diff --git a/opcodes/configure b/opcodes/configure
index 7dc7b49..df9f63d 100755
--- a/opcodes/configure
+++ b/opcodes/configure
@@ -686,6 +686,7 @@ OTOOL
LIPO
NMEDIT
DSYMUTIL
+LLVM_CONFIG
OBJDUMP
LN_S
NM
@@ -5950,8 +5951,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
-plugin_option=
+
+# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
+# wrong plugin_option with clang.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
+$as_echo_n "checking for clang... " >&6; }
+if ${clang_cv_is_clang+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __clang__
+ yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ clang_cv_is_clang=yes
+else
+ clang_cv_is_clang=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
+$as_echo "$clang_cv_is_clang" >&6; }
+ plugin_file=
+ if test $clang_cv_is_clang = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
+$as_echo_n "checking for clang plugin file... " >&6; }
+ plugin_names="LLVMgold.so"
+ for plugin in $plugin_names; do
+ plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
+ if test x$plugin_file = x$plugin; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LLVM_CONFIG"; then
+ ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
+if test -n "$LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
+$as_echo "$LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LLVM_CONFIG"; then
+ ac_ct_LLVM_CONFIG=$LLVM_CONFIG
+ # Extract the first word of "llvm-config", so it can be a program name with args.
+set dummy llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LLVM_CONFIG"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
+if test -n "$ac_ct_LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
+$as_echo "$ac_ct_LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LLVM_CONFIG" = x; then
+ LLVM_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LLVM_CONFIG=$ac_ct_LLVM_CONFIG
+ fi
+else
+ LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
+fi
+
+ if test "$?" != 0; then
+ as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
+ fi
+ clang_lib_dir=`$LLVM_CONFIG --libdir`
+ if test -f $clang_lib_dir/$plugin; then
+ plugin_file=$clang_lib_dir/$plugin
+ fi
+ if test x$plugin_file != x$plugin; then
+ break;
+ fi
+ fi
+ done
+ if test -z $plugin_file; then
+ as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
+ fi
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+ if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ plugin_option="--plugin $plugin_file"
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_file=
+ fi
+ rm -f conftest.*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
+$as_echo "$plugin_file" >&6; }
+ fi
+ plugin_file="$plugin_file"
+
+if test -n "$plugin_file"; then
+ plugin_option="--plugin $plugin_file"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
+$as_echo_n "checking for -plugin option... " >&6; }
+
plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+plugin_option=
for plugin in $plugin_names; do
plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
if test x$plugin_so = x$plugin; then
@@ -5962,7 +6221,119 @@ for plugin in $plugin_names; do
break
fi
done
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+fi
+touch conftest.c
+${AR} $plugin_option rc conftest.a conftest.c
+if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_option=
+fi
+rm -f conftest.*
+if test -n "$plugin_option"; then
+ plugin_option="$plugin_option"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+$as_echo "$plugin_option" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
@@ -6057,17 +6428,15 @@ fi
test -z "$AR" && AR=ar
if test -n "$plugin_option"; then
- if $AR --help 2>&1 | grep -q "\--plugin"; then
- touch conftest.c
- $AR $plugin_option rc conftest.a conftest.c
- if test "$?" != 0; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
-$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
- else
+ case "$AR" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $AR --help 2>&1 | grep -q "\--plugin"; then
AR="$AR $plugin_option"
fi
- rm -f conftest.*
- fi
+ ;;
+ esac
fi
test -z "$AR_FLAGS" && AR_FLAGS=cru
@@ -6274,9 +6643,15 @@ fi
test -z "$RANLIB" && RANLIB=:
if test -n "$plugin_option" && test "$RANLIB" != ":"; then
- if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
- RANLIB="$RANLIB $plugin_option"
- fi
+ case "$RANLIB" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
+ RANLIB="$RANLIB $plugin_option"
+ fi
+ ;;
+ esac
fi
@@ -10903,7 +11278,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10906 "configure"
+#line 11281 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11009,7 +11384,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11012 "configure"
+#line 11387 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
diff --git a/opcodes/csky-dis.c b/opcodes/csky-dis.c
index e3a0a46..01e2116 100644
--- a/opcodes/csky-dis.c
+++ b/opcodes/csky-dis.c
@@ -281,6 +281,7 @@ parse_csky_dis_options (const char *opts_in)
fprintf (stderr,
"unrecognized disassembler option: %s", opt);
}
+ free (opts);
}
/* Get general register name. */
diff --git a/opcodes/i386-dis-evex.h b/opcodes/i386-dis-evex.h
index 3c24c22..5281ab6 100644
--- a/opcodes/i386-dis-evex.h
+++ b/opcodes/i386-dis-evex.h
@@ -416,8 +416,8 @@ static const struct dis386 evex_table[][256] = {
{ Bad_Opcode },
{ Bad_Opcode },
{ X86_64_TABLE (X86_64_EVEX_0F386D) },
- { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F386E) },
- { X86_64_EVEX_FROM_VEX_TABLE (X86_64_VEX_0F386F) },
+ { Bad_Opcode },
+ { Bad_Opcode },
/* 70 */
{ VEX_W_TABLE (EVEX_W_0F3870) },
{ "vpshldv%DQ", { XM, Vex, EXx }, PREFIX_DATA },
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 703f09d..e6637ab 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -1325,6 +1325,7 @@ enum
X86_64_CE,
X86_64_D4,
X86_64_D5,
+ X86_64_D6,
X86_64_E8,
X86_64_E9,
X86_64_EA,
@@ -2194,7 +2195,7 @@ static const struct dis386 dis386[] = {
{ REG_TABLE (REG_D3) },
{ X86_64_TABLE (X86_64_D4) },
{ X86_64_TABLE (X86_64_D5) },
- { Bad_Opcode },
+ { X86_64_TABLE (X86_64_D6) },
{ "xlat", { DSBX }, 0 },
/* d8 */
{ FLOAT },
@@ -4511,6 +4512,12 @@ static const struct dis386 x86_64_table[][2] = {
{ "aad", { Ib }, 0 },
},
+ /* X86_64_D6 */
+ {
+ { Bad_Opcode },
+ { "udb", { XX }, 0 },
+ },
+
/* X86_64_E8 */
{
{ "callP", { Jv, BND }, 0 },
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
index a9d229c..97ded8c 100644
--- a/opcodes/i386-gen.c
+++ b/opcodes/i386-gen.c
@@ -1047,20 +1047,6 @@ process_i386_cpu_flag (FILE *table, char *flag,
all[Cpu64].value = 1;
output_cpu_flags(table, all, ARRAY_SIZE (all), -1, comma, indent, lineno);
-
- /* For APX_F extension of multiple cpuid enabled insns, we cannot use
- APX_F(cpuid_A&cpuid_B) in the opcode table, as the result would fail
- to be parsed. Furthermore, the result also wouldn't be quite valid.
- However, the assembler's cpu_flags_match() will simply propagate "any"
- to "all", zapping "any" afterwards altogether. IOW in this situation
- both masks have "&&" meaning. Set the missing flag here. */
- if (all[CpuAMX_TRANSPOSE].value && all[CpuAMX_MOVRS].value)
- {
- if (!any[CpuAPX_F].value || !any[CpuAMX_MOVRS].value)
- fail ("%s: %d: internal error: APX_F=%d AMX_MOVRS=%d\n",
- filename, lineno, any[CpuAPX_F].value, any[CpuAMX_MOVRS].value);
- any[CpuAMX_TRANSPOSE].value = 1;
- }
}
output_cpu_flags (table, any, ARRAY_SIZE (any), name != NULL,
diff --git a/opcodes/i386-mnem.h b/opcodes/i386-mnem.h
index 001d10d..ef10aa8 100644
--- a/opcodes/i386-mnem.h
+++ b/opcodes/i386-mnem.h
@@ -227,2405 +227,2406 @@ static const char i386_mnemonics[];
#define MN_vpexpandb 0x7c5
#define MN_vpmovusdb 0x7cf
#define MN_vpmovsdb 0x7d9
-#define MN_vpmovdb 0x7e2
-#define MN_vpcomgeb 0x7ea
-#define MN_vpcomleb 0x7f3
-#define MN_vpcmpnleb 0x7fc
-#define MN_vpcmpleb 0x806
-#define MN_vpcomfalseb 0x80f
-#define MN_vpcomtrueb 0x81b
-#define MN_xcrypt_cfb 0x826
-#define MN_xcryptcfb 0x831
-#define MN_xcrypt_ofb 0x83b
-#define MN_xcryptofb 0x846
+#define MN_udb 0x7e2
+#define MN_vpmovdb 0x7e6
+#define MN_vpcomgeb 0x7ee
+#define MN_vpcomleb 0x7f7
+#define MN_vpcmpnleb 0x800
+#define MN_vpcmpleb 0x80a
+#define MN_vpcomfalseb 0x813
+#define MN_vpcomtrueb 0x81f
+#define MN_xcrypt_cfb 0x82a
+#define MN_xcryptcfb 0x835
+#define MN_xcrypt_ofb 0x83f
+#define MN_xcryptofb 0x84a
#define MN_pshufb (MN_vpshufb + 1)
-#define MN_vpshufb 0x850
-#define MN_invlpgb 0x858
+#define MN_vpshufb 0x854
+#define MN_invlpgb 0x85c
#define MN_pavgb (MN_vpavgb + 1)
-#define MN_vpavgb 0x860
-#define MN_jb 0x867
-#define MN_pbndkb 0x86a
+#define MN_vpavgb 0x864
+#define MN_jb 0x86b
+#define MN_pbndkb 0x86e
#define MN_pmovmskb (MN_vpmovmskb + 1)
-#define MN_vpmovmskb 0x871
-#define MN_vpshlb 0x87b
-#define MN_kshiftlb 0x882
+#define MN_vpmovmskb 0x875
+#define MN_vpshlb 0x87f
+#define MN_kshiftlb 0x886
#define MN_gf2p8mulb (MN_vgf2p8mulb + 1)
-#define MN_vgf2p8mulb 0x88b
-#define MN_vpblendmb 0x896
-#define MN_vptestnmb 0x8a0
-#define MN_vpcomb 0x8aa
-#define MN_vpshufbitqmb 0x8b1
-#define MN_vpermb 0x8be
-#define MN_vptestmb 0x8c5
-#define MN_kandnb 0x8ce
+#define MN_vgf2p8mulb 0x88f
+#define MN_vpblendmb 0x89a
+#define MN_vptestnmb 0x8a4
+#define MN_vpcomb 0x8ae
+#define MN_vpshufbitqmb 0x8b5
+#define MN_vpermb 0x8c2
+#define MN_vptestmb 0x8c9
+#define MN_kandnb 0x8d2
#define MN_psignb (MN_vpsignb + 1)
-#define MN_vpsignb 0x8d5
-#define MN_jnb 0x8dd
-#define MN_ccmpnb 0x8e1
-#define MN_setnb 0x8e8
-#define MN_ctestnb 0x8ee
-#define MN_setzunb 0x8f6
+#define MN_vpsignb 0x8d9
+#define MN_jnb 0x8e1
+#define MN_ccmpnb 0x8e5
+#define MN_setnb 0x8ec
+#define MN_ctestnb 0x8f2
+#define MN_setzunb 0x8fa
#define MN_cmovnb (MN_fcmovnb + 1)
#define MN_fcmovnb (MN_cfcmovnb + 1)
-#define MN_cfcmovnb 0x8fe
-#define MN_ccmpb 0x907
-#define MN_vpcmpb 0x90d
-#define MN_vpcomeqb 0x914
+#define MN_cfcmovnb 0x902
+#define MN_ccmpb 0x90b
+#define MN_vpcmpb 0x911
+#define MN_vpcomeqb 0x918
#define MN_gf2p8affineqb (MN_vgf2p8affineqb + 1)
-#define MN_vgf2p8affineqb 0x91d
-#define MN_vpcomneqb 0x92c
-#define MN_vpcmpneqb 0x936
+#define MN_vgf2p8affineqb 0x921
+#define MN_vpcomneqb 0x930
+#define MN_vpcmpneqb 0x93a
#define MN_pcmpeqb (MN_vpcmpeqb + 1)
-#define MN_vpcmpeqb 0x940
-#define MN_vpmovusqb 0x949
-#define MN_vpmovsqb 0x953
-#define MN_vpmultishiftqb 0x95c
+#define MN_vpcmpeqb 0x944
+#define MN_vpmovusqb 0x94d
+#define MN_vpmovsqb 0x957
+#define MN_vpmultishiftqb 0x960
#define MN_gf2p8affineinvqb (MN_vgf2p8affineinvqb + 1)
-#define MN_vgf2p8affineinvqb 0x96b
-#define MN_vpmovqb 0x97d
-#define MN_rex_rb 0x985
-#define MN_korb 0x98c
-#define MN_kxnorb 0x991
-#define MN_kxorb 0x998
+#define MN_vgf2p8affineinvqb 0x96f
+#define MN_vpmovqb 0x981
+#define MN_rex_rb 0x989
+#define MN_korb 0x990
+#define MN_kxnorb 0x995
+#define MN_kxorb 0x99c
#define MN_pinsrb (MN_vpinsrb + 1)
-#define MN_vpinsrb 0x99e
-#define MN_kshiftrb 0x9a6
+#define MN_vpinsrb 0x9a2
+#define MN_kshiftrb 0x9aa
#define MN_pextrb (MN_vpextrb + 1)
-#define MN_vpextrb 0x9af
-#define MN_rex_wrb 0x9b7
+#define MN_vpextrb 0x9b3
+#define MN_rex_wrb 0x9bb
#define MN_pabsb (MN_vpabsb + 1)
-#define MN_vpabsb 0x9bf
+#define MN_vpabsb 0x9c3
#define MN_psubsb (MN_vpsubsb + 1)
-#define MN_vpsubsb 0x9c6
+#define MN_vpsubsb 0x9ca
#define MN_paddsb (MN_vpaddsb + 1)
-#define MN_vpaddsb 0x9ce
+#define MN_vpaddsb 0x9d2
#define MN_pminsb (MN_vpminsb + 1)
-#define MN_vpminsb 0x9d6
-#define MN_vmovrsb 0x9de
-#define MN_vpcompressb 0x9e6
+#define MN_vpminsb 0x9da
+#define MN_vmovrsb 0x9e2
+#define MN_vpcompressb 0x9ea
#define MN_psubusb (MN_vpsubusb + 1)
-#define MN_vpsubusb 0x9f2
+#define MN_vpsubusb 0x9f6
#define MN_paddusb (MN_vpaddusb + 1)
-#define MN_vpaddusb 0x9fb
-#define MN_pavgusb 0xa04
-#define MN_movsb 0xa0c
+#define MN_vpaddusb 0x9ff
+#define MN_pavgusb 0xa08
+#define MN_movsb 0xa10
#define MN_pmaxsb (MN_vpmaxsb + 1)
-#define MN_vpmaxsb 0xa12
-#define MN_setb 0xa1a
-#define MN_vpcomgtb 0xa1f
+#define MN_vpmaxsb 0xa16
+#define MN_setb 0xa1e
+#define MN_vpcomgtb 0xa23
#define MN_pcmpgtb (MN_vpcmpgtb + 1)
-#define MN_vpcmpgtb 0xa28
-#define MN_vpcomltb 0xa31
-#define MN_vpcmpnltb 0xa3a
-#define MN_vpcmpltb 0xa44
-#define MN_vpopcntb 0xa4d
-#define MN_knotb 0xa56
-#define MN_vprotb 0xa5c
-#define MN_vpbroadcastb 0xa63
-#define MN_ctestb 0xa70
-#define MN_ktestb 0xa77
-#define MN_kortestb 0xa7e
-#define MN_vpcomgeub 0xa87
-#define MN_vpcomleub 0xa91
-#define MN_vpcmpnleub 0xa9b
-#define MN_vpcmpleub 0xaa6
-#define MN_vpcomfalseub 0xab0
-#define MN_vpcomtrueub 0xabd
-#define MN_vpcomub 0xac9
+#define MN_vpcmpgtb 0xa2c
+#define MN_vpcomltb 0xa35
+#define MN_vpcmpnltb 0xa3e
+#define MN_vpcmpltb 0xa48
+#define MN_vpopcntb 0xa51
+#define MN_knotb 0xa5a
+#define MN_vprotb 0xa60
+#define MN_vpbroadcastb 0xa67
+#define MN_ctestb 0xa74
+#define MN_ktestb 0xa7b
+#define MN_kortestb 0xa82
+#define MN_vpcomgeub 0xa8b
+#define MN_vpcomleub 0xa95
+#define MN_vpcmpnleub 0xa9f
+#define MN_vpcmpleub 0xaaa
+#define MN_vpcomfalseub 0xab4
+#define MN_vpcomtrueub 0xac1
+#define MN_vpcomub 0xacd
#define MN_pminub (MN_vpminub + 1)
-#define MN_vpminub 0xad1
-#define MN_vpcmpub 0xad9
-#define MN_vpcomequb 0xae1
-#define MN_vpcomnequb 0xaeb
-#define MN_vpcmpnequb 0xaf6
-#define MN_vpcmpequb 0xb01
+#define MN_vpminub 0xad5
+#define MN_vpcmpub 0xadd
+#define MN_vpcomequb 0xae5
+#define MN_vpcomnequb 0xaef
+#define MN_vpcmpnequb 0xafa
+#define MN_vpcmpequb 0xb05
#define MN_sub (MN_fsub + 1)
#define MN_fsub (MN_pfsub + 1)
-#define MN_pfsub 0xb0b
-#define MN_fisub 0xb11
-#define MN_vpcomgtub 0xb17
-#define MN_vpcomltub 0xb21
-#define MN_vpcmpnltub 0xb2b
-#define MN_vpcmpltub 0xb36
+#define MN_pfsub 0xb0f
+#define MN_fisub 0xb15
+#define MN_vpcomgtub 0xb1b
+#define MN_vpcomltub 0xb25
+#define MN_vpcmpnltub 0xb2f
+#define MN_vpcmpltub 0xb3a
#define MN_pmaxub (MN_vpmaxub + 1)
-#define MN_vpmaxub 0xb40
-#define MN_setzub 0xb48
+#define MN_vpmaxub 0xb44
+#define MN_setzub 0xb4c
#define MN_pblendvb (MN_vpblendvb + 1)
-#define MN_vpblendvb 0xb4f
+#define MN_vpblendvb 0xb53
#define MN_cmovb (MN_fcmovb + 1)
#define MN_fcmovb (MN_cfcmovb + 1)
-#define MN_cfcmovb 0xb59
-#define MN_kmovb 0xb61
-#define MN_rex_wb 0xb67
-#define MN_clwb 0xb6e
+#define MN_cfcmovb 0xb5d
+#define MN_kmovb 0xb65
+#define MN_rex_wb 0xb6b
+#define MN_clwb 0xb72
#define MN_packsswb (MN_vpacksswb + 1)
-#define MN_vpacksswb 0xb73
+#define MN_vpacksswb 0xb77
#define MN_packuswb (MN_vpackuswb + 1)
-#define MN_vpackuswb 0xb7d
-#define MN_vpmovuswb 0xb87
-#define MN_vpmovswb 0xb91
-#define MN_vpmovwb 0xb9a
-#define MN_rex_xb 0xba2
-#define MN_rex_rxb 0xba9
-#define MN_rex_wrxb 0xbb1
-#define MN_rex_wxb 0xbba
-#define MN_movzb 0xbc2
-#define MN_clac 0xbc8
-#define MN_stac 0xbcd
-#define MN_xcrypt_cbc 0xbd2
-#define MN_xcryptcbc 0xbdd
-#define MN_pfacc 0xbe7
-#define MN_pfnacc 0xbed
-#define MN_pfpnacc 0xbf4
-#define MN_adc 0xbfc
+#define MN_vpackuswb 0xb81
+#define MN_vpmovuswb 0xb8b
+#define MN_vpmovswb 0xb95
+#define MN_vpmovwb 0xb9e
+#define MN_rex_xb 0xba6
+#define MN_rex_rxb 0xbad
+#define MN_rex_wrxb 0xbb5
+#define MN_rex_wxb 0xbbe
+#define MN_movzb 0xbc6
+#define MN_clac 0xbcc
+#define MN_stac 0xbd1
+#define MN_xcrypt_cbc 0xbd6
+#define MN_xcryptcbc 0xbe1
+#define MN_pfacc 0xbeb
+#define MN_pfnacc 0xbf1
+#define MN_pfpnacc 0xbf8
+#define MN_adc 0xc00
#define MN_dec (MN_aesdec + 3)
#define MN_aesdec (MN_vaesdec + 1)
-#define MN_vaesdec 0xc00
-#define MN_getsec 0xc08
-#define MN_xsavec 0xc0f
-#define MN_blcic 0xc16
-#define MN_blsic 0xc1c
-#define MN_jc 0xc22
-#define MN_t1mskc 0xc25
-#define MN_clc 0xc2c
-#define MN_cmc 0xc30
+#define MN_vaesdec 0xc04
+#define MN_getsec 0xc0c
+#define MN_xsavec 0xc13
+#define MN_blcic 0xc1a
+#define MN_blsic 0xc20
+#define MN_jc 0xc26
+#define MN_t1mskc 0xc29
+#define MN_clc 0xc30
+#define MN_cmc 0xc34
#define MN_aesimc (MN_vaesimc + 1)
-#define MN_vaesimc 0xc34
-#define MN_rdpmc 0xc3c
+#define MN_vaesimc 0xc38
+#define MN_rdpmc 0xc40
#define MN_aesenc (MN_vaesenc + 1)
-#define MN_vaesenc 0xc42
-#define MN_inc 0xc4a
-#define MN_jnc 0xc4e
-#define MN_ccmpnc 0xc52
-#define MN_setnc 0xc59
-#define MN_ctestnc 0xc5f
-#define MN_vmfunc 0xc67
-#define MN_setzunc 0xc6e
+#define MN_vaesenc 0xc46
+#define MN_inc 0xc4e
+#define MN_jnc 0xc52
+#define MN_ccmpnc 0xc56
+#define MN_setnc 0xc5d
+#define MN_ctestnc 0xc63
+#define MN_vmfunc 0xc6b
+#define MN_setzunc 0xc72
#define MN_cmovnc (MN_cfcmovnc + 2)
-#define MN_cfcmovnc 0xc76
-#define MN_tlbsync 0xc7f
-#define MN_ccmpc 0xc87
-#define MN_rdtsc 0xc8d
-#define MN_btc 0xc93
-#define MN_setc 0xc97
+#define MN_cfcmovnc 0xc7a
+#define MN_tlbsync 0xc83
+#define MN_ccmpc 0xc8b
+#define MN_rdtsc 0xc91
+#define MN_btc 0xc97
+#define MN_setc 0xc9b
#define MN_stc (MN_ctestc + 3)
-#define MN_ctestc 0xc9c
-#define MN_setzuc 0xca3
+#define MN_ctestc 0xca0
+#define MN_setzuc 0xca7
#define MN_cmovc (MN_cfcmovc + 2)
-#define MN_cfcmovc 0xcaa
-#define MN_vpermi2d 0xcb2
-#define MN_vpmovm2d 0xcbb
-#define MN_vpermt2d 0xcc4
-#define MN_vpbroadcastmw2d 0xccd
-#define MN_aad 0xcdd
-#define MN_vmread 0xce1
-#define MN_rmpread 0xce8
-#define MN_vpshad 0xcf0
-#define MN_vmload 0xcf7
+#define MN_cfcmovc 0xcae
+#define MN_vpermi2d 0xcb6
+#define MN_vpmovm2d 0xcbf
+#define MN_vpermt2d 0xcc8
+#define MN_vpbroadcastmw2d 0xcd1
+#define MN_aad 0xce1
+#define MN_vmread 0xce5
+#define MN_rmpread 0xcec
+#define MN_vpshad 0xcf4
+#define MN_vmload 0xcfb
#define MN_psrad (MN_vpsrad + 1)
-#define MN_vpsrad 0xcfe
-#define MN_vphaddbd 0xd05
-#define MN_vphaddubd 0xd0e
+#define MN_vpsrad 0xd02
+#define MN_vphaddbd 0xd09
+#define MN_vphaddubd 0xd12
#define MN_phsubd (MN_vphsubd + 1)
-#define MN_vphsubd 0xd18
+#define MN_vphsubd 0xd1c
#define MN_psubd (MN_vpsubd + 1)
-#define MN_vpsubd 0xd20
+#define MN_vpsubd 0xd24
#define MN_pmovsxbd (MN_vpmovsxbd + 1)
-#define MN_vpmovsxbd 0xd27
+#define MN_vpmovsxbd 0xd2b
#define MN_pmovzxbd (MN_vpmovzxbd + 1)
-#define MN_vpmovzxbd 0xd31
+#define MN_vpmovzxbd 0xd35
#define MN_add (MN_aadd + 1)
-#define MN_aadd 0xd3b
+#define MN_aadd 0xd3f
#define MN_fadd (MN_pfadd + 1)
-#define MN_pfadd 0xd40
-#define MN_fiadd 0xd46
-#define MN_tileloadd 0xd4c
+#define MN_pfadd 0xd44
+#define MN_fiadd 0xd4a
+#define MN_tileloadd 0xd50
#define MN_xadd (MN_cmpnaxadd + 5)
-#define MN_cmpnaxadd 0xd56
-#define MN_cmpaxadd 0xd60
-#define MN_cmpnbxadd 0xd69
-#define MN_cmpbxadd 0xd73
-#define MN_cmpncxadd 0xd7c
-#define MN_cmpcxadd 0xd86
-#define MN_cmpnaexadd 0xd8f
-#define MN_cmpaexadd 0xd9a
-#define MN_cmpnbexadd 0xda4
-#define MN_cmpbexadd 0xdaf
-#define MN_cmpngexadd 0xdb9
-#define MN_cmpgexadd 0xdc4
-#define MN_cmpnlexadd 0xdce
-#define MN_cmplexadd 0xdd9
-#define MN_cmpnexadd 0xde3
-#define MN_cmpexadd 0xded
-#define MN_cmppexadd 0xdf6
-#define MN_cmpngxadd 0xe00
-#define MN_cmpgxadd 0xe0a
-#define MN_cmpnlxadd 0xe13
-#define MN_cmplxadd 0xe1d
-#define MN_cmpnoxadd 0xe26
-#define MN_cmpoxadd 0xe30
-#define MN_cmppoxadd 0xe39
-#define MN_cmpnpxadd 0xe43
-#define MN_cmppxadd 0xe4d
-#define MN_cmpnsxadd 0xe56
-#define MN_cmpsxadd 0xe60
-#define MN_cmpnzxadd 0xe69
-#define MN_cmpzxadd 0xe73
+#define MN_cmpnaxadd 0xd5a
+#define MN_cmpaxadd 0xd64
+#define MN_cmpnbxadd 0xd6d
+#define MN_cmpbxadd 0xd77
+#define MN_cmpncxadd 0xd80
+#define MN_cmpcxadd 0xd8a
+#define MN_cmpnaexadd 0xd93
+#define MN_cmpaexadd 0xd9e
+#define MN_cmpnbexadd 0xda8
+#define MN_cmpbexadd 0xdb3
+#define MN_cmpngexadd 0xdbd
+#define MN_cmpgexadd 0xdc8
+#define MN_cmpnlexadd 0xdd2
+#define MN_cmplexadd 0xddd
+#define MN_cmpnexadd 0xde7
+#define MN_cmpexadd 0xdf1
+#define MN_cmppexadd 0xdfa
+#define MN_cmpngxadd 0xe04
+#define MN_cmpgxadd 0xe0e
+#define MN_cmpnlxadd 0xe17
+#define MN_cmplxadd 0xe21
+#define MN_cmpnoxadd 0xe2a
+#define MN_cmpoxadd 0xe34
+#define MN_cmppoxadd 0xe3d
+#define MN_cmpnpxadd 0xe47
+#define MN_cmppxadd 0xe51
+#define MN_cmpnsxadd 0xe5a
+#define MN_cmpsxadd 0xe64
+#define MN_cmpnzxadd 0xe6d
+#define MN_cmpzxadd 0xe77
#define MN_phaddd (MN_vphaddd + 1)
-#define MN_vphaddd 0xe7c
-#define MN_kaddd 0xe84
+#define MN_vphaddd 0xe80
+#define MN_kaddd 0xe88
#define MN_paddd (MN_vpaddd + 1)
-#define MN_vpaddd 0xe8a
-#define MN_vpshldd 0xe91
-#define MN_kandd 0xe99
-#define MN_vpandd 0xe9f
-#define MN_vpexpandd 0xea6
-#define MN_vpblendd 0xeb0
-#define MN_vpgatherdd 0xeb9
-#define MN_vpscatterdd 0xec4
-#define MN_vpshrdd 0xed0
-#define MN_vpmacsdd 0xed8
-#define MN_vpmacssdd 0xee1
-#define MN_rdseed 0xeeb
-#define MN_vpcomged 0xef2
-#define MN_vpcomled 0xefb
-#define MN_vpcmpnled 0xf04
-#define MN_vpcmpled 0xf0e
-#define MN_tilestored 0xf17
-#define MN_vpcomfalsed 0xf22
-#define MN_ttransposed 0xf2e
-#define MN_vpcomtrued 0xf3a
-#define MN_pi2fd 0xf45
+#define MN_vpaddd 0xe8e
+#define MN_vpshldd 0xe95
+#define MN_kandd 0xe9d
+#define MN_vpandd 0xea3
+#define MN_vpexpandd 0xeaa
+#define MN_vpblendd 0xeb4
+#define MN_vpgatherdd 0xebd
+#define MN_vpscatterdd 0xec8
+#define MN_vpshrdd 0xed4
+#define MN_vpmacsdd 0xedc
+#define MN_vpmacssdd 0xee5
+#define MN_rdseed 0xeef
+#define MN_vpcomged 0xef6
+#define MN_vpcomled 0xeff
+#define MN_vpcmpnled 0xf08
+#define MN_vpcmpled 0xf12
+#define MN_tilestored 0xf1b
+#define MN_vpcomfalsed 0xf26
+#define MN_ttransposed 0xf32
+#define MN_vpcomtrued 0xf3e
+#define MN_pi2fd 0xf49
#define MN_pshufd (MN_vpshufd + 1)
-#define MN_vpshufd 0xf4b
-#define MN_vpternlogd 0xf53
-#define MN_pf2id 0xf5e
-#define MN_invpcid 0xf64
-#define MN_rdpid 0xf6c
-#define MN_invvpid 0xf72
-#define MN_cpuid 0xf7a
-#define MN_fbld 0xf80
-#define MN_cld 0xf85
-#define MN_fld 0xf89
+#define MN_vpshufd 0xf4f
+#define MN_vpternlogd 0xf57
+#define MN_pf2id 0xf62
+#define MN_invpcid 0xf68
+#define MN_rdpid 0xf70
+#define MN_invvpid 0xf76
+#define MN_cpuid 0xf7e
+#define MN_fbld 0xf84
+#define MN_cld 0xf89
+#define MN_fld 0xf8d
#define MN_shld (MN_vpshld + 2)
-#define MN_vpshld 0xf8d
-#define MN_fild 0xf94
+#define MN_vpshld 0xf91
+#define MN_fild 0xf98
#define MN_pslld (MN_vpslld + 1)
-#define MN_vpslld 0xf99
+#define MN_vpslld 0xf9d
#define MN_pmulld (MN_vpmulld + 1)
-#define MN_vpmulld 0xfa0
-#define MN_vprold 0xfa8
+#define MN_vpmulld 0xfa4
+#define MN_vprold 0xfac
#define MN_psrld (MN_vpsrld + 1)
-#define MN_vpsrld 0xfaf
-#define MN_vmptrld 0xfb6
-#define MN_kshiftld 0xfbe
-#define MN_enqcmd 0xfc7
-#define MN_vpblendmd 0xfce
-#define MN_vptestnmd 0xfd8
-#define MN_vpcomd 0xfe2
-#define MN_vpermd 0xfe9
-#define MN_vptestmd 0xff0
+#define MN_vpsrld 0xfb3
+#define MN_vmptrld 0xfba
+#define MN_kshiftld 0xfc2
+#define MN_enqcmd 0xfcb
+#define MN_vpblendmd 0xfd2
+#define MN_vptestnmd 0xfdc
+#define MN_vpcomd 0xfe6
+#define MN_vpermd 0xfed
+#define MN_vptestmd 0xff4
#define MN_and (MN_aand + 1)
-#define MN_aand 0xff9
+#define MN_aand 0xffd
#define MN_pand (MN_vpand + 1)
-#define MN_vpand 0xffe
-#define MN_rdrand 0x1004
-#define MN_bnd 0x100b
-#define MN_kandnd 0x100f
-#define MN_vpandnd 0x1016
-#define MN_xend 0x101e
-#define MN_valignd 0x1023
+#define MN_vpand 0x1002
+#define MN_rdrand 0x1008
+#define MN_bnd 0x100f
+#define MN_kandnd 0x1013
+#define MN_vpandnd 0x101a
+#define MN_xend 0x1022
+#define MN_valignd 0x1027
#define MN_psignd (MN_vpsignd + 1)
-#define MN_vpsignd 0x102b
-#define MN_bound 0x1033
-#define MN_slod 0x1039
-#define MN_vfmaddsub231pd 0x103e
-#define MN_vfmsub231pd 0x104d
-#define MN_vfnmsub231pd 0x1059
-#define MN_vfmsubadd231pd 0x1066
-#define MN_vfmadd231pd 0x1075
-#define MN_vfnmadd231pd 0x1081
-#define MN_vfmaddsub132pd 0x108e
-#define MN_vfmsub132pd 0x109d
-#define MN_vfnmsub132pd 0x10a9
-#define MN_vfmsubadd132pd 0x10b6
-#define MN_vfmadd132pd 0x10c5
-#define MN_vfnmadd132pd 0x10d1
-#define MN_vcvtph2pd 0x10de
-#define MN_vpermi2pd 0x10e8
-#define MN_cvtpi2pd 0x10f2
-#define MN_vpermil2pd 0x10fb
-#define MN_vexp2pd 0x1106
+#define MN_vpsignd 0x102f
+#define MN_bound 0x1037
+#define MN_slod 0x103d
+#define MN_vfmaddsub231pd 0x1042
+#define MN_vfmsub231pd 0x1051
+#define MN_vfnmsub231pd 0x105d
+#define MN_vfmsubadd231pd 0x106a
+#define MN_vfmadd231pd 0x1079
+#define MN_vfnmadd231pd 0x1085
+#define MN_vfmaddsub132pd 0x1092
+#define MN_vfmsub132pd 0x10a1
+#define MN_vfnmsub132pd 0x10ad
+#define MN_vfmsubadd132pd 0x10ba
+#define MN_vfmadd132pd 0x10c9
+#define MN_vfnmadd132pd 0x10d5
+#define MN_vcvtph2pd 0x10e2
+#define MN_vpermi2pd 0x10ec
+#define MN_cvtpi2pd 0x10f6
+#define MN_vpermil2pd 0x10ff
+#define MN_vexp2pd 0x110a
#define MN_cvtdq2pd (MN_vcvtdq2pd + 1)
-#define MN_vcvtdq2pd 0x110e
-#define MN_vcvtudq2pd 0x1118
-#define MN_vcvtqq2pd 0x1123
-#define MN_vcvtuqq2pd 0x112d
+#define MN_vcvtdq2pd 0x1112
+#define MN_vcvtudq2pd 0x111c
+#define MN_vcvtqq2pd 0x1127
+#define MN_vcvtuqq2pd 0x1131
#define MN_cvtps2pd (MN_vcvtps2pd + 1)
-#define MN_vcvtps2pd 0x1138
-#define MN_vpermt2pd 0x1142
-#define MN_vfmaddsub213pd 0x114c
-#define MN_vfmsub213pd 0x115b
-#define MN_vfnmsub213pd 0x1167
-#define MN_vfmsubadd213pd 0x1174
-#define MN_vfmadd213pd 0x1183
-#define MN_vfnmadd213pd 0x118f
-#define MN_vrcp14pd 0x119c
-#define MN_vrsqrt14pd 0x11a5
-#define MN_vrcp28pd 0x11b0
-#define MN_vrsqrt28pd 0x11b9
+#define MN_vcvtps2pd 0x113c
+#define MN_vpermt2pd 0x1146
+#define MN_vfmaddsub213pd 0x1150
+#define MN_vfmsub213pd 0x115f
+#define MN_vfnmsub213pd 0x116b
+#define MN_vfmsubadd213pd 0x1178
+#define MN_vfmadd213pd 0x1187
+#define MN_vfnmadd213pd 0x1193
+#define MN_vrcp14pd 0x11a0
+#define MN_vrsqrt14pd 0x11a9
+#define MN_vrcp28pd 0x11b4
+#define MN_vrsqrt28pd 0x11bd
#define MN_movapd (MN_vmovapd + 1)
-#define MN_vmovapd 0x11c4
-#define MN_pswapd 0x11cc
+#define MN_vmovapd 0x11c8
+#define MN_pswapd 0x11d0
#define MN_subpd (MN_addsubpd + 3)
#define MN_addsubpd (MN_vfmaddsubpd + 3)
-#define MN_vfmaddsubpd 0x11d3
-#define MN_vaddsubpd 0x11df
+#define MN_vfmaddsubpd 0x11d7
+#define MN_vaddsubpd 0x11e3
#define MN_hsubpd (MN_vhsubpd + 1)
-#define MN_vhsubpd 0x11e9
-#define MN_vfmsubpd 0x11f1
-#define MN_vfnmsubpd 0x11fa
-#define MN_vsubpd 0x1204
-#define MN_vgatherpf0dpd 0x120b
-#define MN_vscatterpf0dpd 0x1219
-#define MN_vgatherpf1dpd 0x1228
-#define MN_vscatterpf1dpd 0x1236
+#define MN_vhsubpd 0x11ed
+#define MN_vfmsubpd 0x11f5
+#define MN_vfnmsubpd 0x11fe
+#define MN_vsubpd 0x1208
+#define MN_vgatherpf0dpd 0x120f
+#define MN_vscatterpf0dpd 0x121d
+#define MN_vgatherpf1dpd 0x122c
+#define MN_vscatterpf1dpd 0x123a
#define MN_addpd (MN_vfmsubaddpd + 6)
-#define MN_vfmsubaddpd 0x1245
+#define MN_vfmsubaddpd 0x1249
#define MN_haddpd (MN_vhaddpd + 1)
-#define MN_vhaddpd 0x1251
-#define MN_vfmaddpd 0x1259
-#define MN_vfnmaddpd 0x1262
-#define MN_vaddpd 0x126c
+#define MN_vhaddpd 0x1255
+#define MN_vfmaddpd 0x125d
+#define MN_vfnmaddpd 0x1266
+#define MN_vaddpd 0x1270
#define MN_andpd (MN_vexpandpd + 4)
-#define MN_vexpandpd 0x1273
-#define MN_vandpd 0x127d
+#define MN_vexpandpd 0x1277
+#define MN_vandpd 0x1281
#define MN_blendpd (MN_vblendpd + 1)
-#define MN_vblendpd 0x1284
+#define MN_vblendpd 0x1288
#define MN_roundpd (MN_vroundpd + 1)
-#define MN_vroundpd 0x128d
-#define MN_vgatherdpd 0x1296
-#define MN_vscatterdpd 0x12a1
+#define MN_vroundpd 0x1291
+#define MN_vgatherdpd 0x129a
+#define MN_vscatterdpd 0x12a5
#define MN_cmpunordpd (MN_vcmpunordpd + 1)
-#define MN_vcmpunordpd 0x12ad
+#define MN_vcmpunordpd 0x12b1
#define MN_cmpordpd (MN_vcmpordpd + 1)
-#define MN_vcmpordpd 0x12b9
-#define MN_vreducepd 0x12c3
-#define MN_vrangepd 0x12cd
-#define MN_vcmpngepd 0x12d6
-#define MN_vcmpgepd 0x12e0
-#define MN_vrndscalepd 0x12e9
+#define MN_vcmpordpd 0x12bd
+#define MN_vreducepd 0x12c7
+#define MN_vrangepd 0x12d1
+#define MN_vcmpngepd 0x12da
+#define MN_vcmpgepd 0x12e4
+#define MN_vrndscalepd 0x12ed
#define MN_cmpnlepd (MN_vcmpnlepd + 1)
-#define MN_vcmpnlepd 0x12f5
+#define MN_vcmpnlepd 0x12f9
#define MN_cmplepd (MN_vcmplepd + 1)
-#define MN_vcmplepd 0x12ff
-#define MN_vcmpfalsepd 0x1308
-#define MN_vcmptruepd 0x1314
-#define MN_vscalefpd 0x131f
+#define MN_vcmplepd 0x1303
+#define MN_vcmpfalsepd 0x130c
+#define MN_vcmptruepd 0x1318
+#define MN_vscalefpd 0x1323
#define MN_shufpd (MN_vshufpd + 1)
-#define MN_vshufpd 0x1329
+#define MN_vshufpd 0x132d
#define MN_unpckhpd (MN_vunpckhpd + 1)
-#define MN_vunpckhpd 0x1331
+#define MN_vunpckhpd 0x1335
#define MN_movhpd (MN_vmovhpd + 1)
-#define MN_vmovhpd 0x133b
+#define MN_vmovhpd 0x133f
#define MN_movmskpd (MN_vmovmskpd + 1)
-#define MN_vmovmskpd 0x1343
-#define MN_vpermilpd 0x134d
+#define MN_vmovmskpd 0x1347
+#define MN_vpermilpd 0x1351
#define MN_unpcklpd (MN_vunpcklpd + 1)
-#define MN_vunpcklpd 0x1357
+#define MN_vunpcklpd 0x135b
#define MN_mulpd (MN_vmulpd + 1)
-#define MN_vmulpd 0x1361
+#define MN_vmulpd 0x1365
#define MN_movlpd (MN_vmovlpd + 1)
-#define MN_vmovlpd 0x1368
-#define MN_vpcmpd 0x1370
-#define MN_vblendmpd 0x1377
-#define MN_vfixupimmpd 0x1381
-#define MN_vpermpd 0x138d
+#define MN_vmovlpd 0x136c
+#define MN_vpcmpd 0x1374
+#define MN_vblendmpd 0x137b
+#define MN_vfixupimmpd 0x1385
+#define MN_vpermpd 0x1391
#define MN_andnpd (MN_vandnpd + 1)
-#define MN_vandnpd 0x1395
+#define MN_vandnpd 0x1399
#define MN_minpd (MN_vminpd + 1)
-#define MN_vminpd 0x139d
+#define MN_vminpd 0x13a1
#define MN_dppd (MN_vdppd + 1)
-#define MN_vdppd 0x13a4
+#define MN_vdppd 0x13a8
#define MN_cmppd (MN_vcmppd + 1)
-#define MN_vcmppd 0x13aa
-#define MN_vgetexppd 0x13b1
-#define MN_vgatherpf0qpd 0x13bb
-#define MN_vscatterpf0qpd 0x13c9
-#define MN_vgatherpf1qpd 0x13d8
-#define MN_vscatterpf1qpd 0x13e6
-#define MN_vcmpunord_qpd 0x13f5
-#define MN_vcmpord_qpd 0x1403
+#define MN_vcmppd 0x13ae
+#define MN_vgetexppd 0x13b5
+#define MN_vgatherpf0qpd 0x13bf
+#define MN_vscatterpf0qpd 0x13cd
+#define MN_vgatherpf1qpd 0x13dc
+#define MN_vscatterpf1qpd 0x13ea
+#define MN_vcmpunord_qpd 0x13f9
+#define MN_vcmpord_qpd 0x1407
#define MN_cmpneqpd (MN_vcmpneqpd + 1)
-#define MN_vcmpneqpd 0x140f
+#define MN_vcmpneqpd 0x1413
#define MN_cmpeqpd (MN_vcmpeqpd + 1)
-#define MN_vcmpeqpd 0x1419
-#define MN_vcmpge_oqpd 0x1422
-#define MN_vcmple_oqpd 0x142e
-#define MN_vcmpfalse_oqpd 0x143a
-#define MN_vcmpneq_oqpd 0x1449
-#define MN_vcmpeq_oqpd 0x1456
-#define MN_vcmpgt_oqpd 0x1462
-#define MN_vcmplt_oqpd 0x146e
-#define MN_vgatherqpd 0x147a
-#define MN_vscatterqpd 0x1485
-#define MN_vcmpnge_uqpd 0x1491
-#define MN_vcmpnle_uqpd 0x149e
-#define MN_vcmptrue_uqpd 0x14ab
-#define MN_vcmpneq_uqpd 0x14b9
-#define MN_vcmpeq_uqpd 0x14c6
-#define MN_vcmpngt_uqpd 0x14d2
-#define MN_vcmpnlt_uqpd 0x14df
+#define MN_vcmpeqpd 0x141d
+#define MN_vcmpge_oqpd 0x1426
+#define MN_vcmple_oqpd 0x1432
+#define MN_vcmpfalse_oqpd 0x143e
+#define MN_vcmpneq_oqpd 0x144d
+#define MN_vcmpeq_oqpd 0x145a
+#define MN_vcmpgt_oqpd 0x1466
+#define MN_vcmplt_oqpd 0x1472
+#define MN_vgatherqpd 0x147e
+#define MN_vscatterqpd 0x1489
+#define MN_vcmpnge_uqpd 0x1495
+#define MN_vcmpnle_uqpd 0x14a2
+#define MN_vcmptrue_uqpd 0x14af
+#define MN_vcmpneq_uqpd 0x14bd
+#define MN_vcmpeq_uqpd 0x14ca
+#define MN_vcmpngt_uqpd 0x14d6
+#define MN_vcmpnlt_uqpd 0x14e3
#define MN_orpd (MN_vorpd + 1)
-#define MN_vorpd 0x14ec
+#define MN_vorpd 0x14f0
#define MN_xorpd (MN_vxorpd + 1)
-#define MN_vxorpd 0x14f2
-#define MN_vcmpunord_spd 0x14f9
-#define MN_vcmpord_spd 0x1507
-#define MN_vcmpge_ospd 0x1513
-#define MN_vcmple_ospd 0x151f
-#define MN_vcmpfalse_ospd 0x152b
-#define MN_vcmpneq_ospd 0x153a
-#define MN_vcmpeq_ospd 0x1547
-#define MN_vcmpgt_ospd 0x1553
-#define MN_vcmplt_ospd 0x155f
-#define MN_vfpclasspd 0x156b
-#define MN_incsspd 0x1576
-#define MN_rdsspd 0x157e
-#define MN_vcompresspd 0x1585
-#define MN_vcmpnge_uspd 0x1591
-#define MN_vcmpnle_uspd 0x159e
-#define MN_vcmptrue_uspd 0x15ab
-#define MN_vcmpneq_uspd 0x15b9
-#define MN_vcmpeq_uspd 0x15c6
-#define MN_vcmpngt_uspd 0x15d2
-#define MN_vcmpnlt_uspd 0x15df
-#define MN_vcmpngtpd 0x15ec
-#define MN_vcmpgtpd 0x15f6
+#define MN_vxorpd 0x14f6
+#define MN_vcmpunord_spd 0x14fd
+#define MN_vcmpord_spd 0x150b
+#define MN_vcmpge_ospd 0x1517
+#define MN_vcmple_ospd 0x1523
+#define MN_vcmpfalse_ospd 0x152f
+#define MN_vcmpneq_ospd 0x153e
+#define MN_vcmpeq_ospd 0x154b
+#define MN_vcmpgt_ospd 0x1557
+#define MN_vcmplt_ospd 0x1563
+#define MN_vfpclasspd 0x156f
+#define MN_incsspd 0x157a
+#define MN_rdsspd 0x1582
+#define MN_vcompresspd 0x1589
+#define MN_vcmpnge_uspd 0x1595
+#define MN_vcmpnle_uspd 0x15a2
+#define MN_vcmptrue_uspd 0x15af
+#define MN_vcmpneq_uspd 0x15bd
+#define MN_vcmpeq_uspd 0x15ca
+#define MN_vcmpngt_uspd 0x15d6
+#define MN_vcmpnlt_uspd 0x15e3
+#define MN_vcmpngtpd 0x15f0
+#define MN_vcmpgtpd 0x15fa
#define MN_cmpnltpd (MN_vcmpnltpd + 1)
-#define MN_vcmpnltpd 0x15ff
+#define MN_vcmpnltpd 0x1603
#define MN_cmpltpd (MN_vcmpltpd + 1)
-#define MN_vcmpltpd 0x1609
-#define MN_vgetmantpd 0x1612
+#define MN_vcmpltpd 0x160d
+#define MN_vgetmantpd 0x1616
#define MN_movntpd (MN_vmovntpd + 1)
-#define MN_vmovntpd 0x161d
+#define MN_vmovntpd 0x1621
#define MN_sqrtpd (MN_vsqrtpd + 1)
-#define MN_vsqrtpd 0x1626
-#define MN_vtestpd 0x162e
+#define MN_vsqrtpd 0x162a
+#define MN_vtestpd 0x1632
#define MN_movupd (MN_vmovupd + 1)
-#define MN_vmovupd 0x1636
+#define MN_vmovupd 0x163a
#define MN_blendvpd (MN_vblendvpd + 1)
-#define MN_vblendvpd 0x163e
+#define MN_vblendvpd 0x1642
#define MN_divpd (MN_vdivpd + 1)
-#define MN_vdivpd 0x1648
-#define MN_vmaskmovpd 0x164f
+#define MN_vdivpd 0x164c
+#define MN_vmaskmovpd 0x1653
#define MN_maxpd (MN_vminmaxpd + 4)
-#define MN_vminmaxpd 0x165a
-#define MN_vmaxpd 0x1664
-#define MN_vfrczpd 0x166b
-#define MN_vpcomeqd 0x1673
-#define MN_vpcomneqd 0x167c
-#define MN_vpcmpneqd 0x1686
+#define MN_vminmaxpd 0x165e
+#define MN_vmaxpd 0x1668
+#define MN_vfrczpd 0x166f
+#define MN_vpcomeqd 0x1677
+#define MN_vpcomneqd 0x1680
+#define MN_vpcmpneqd 0x168a
#define MN_pcmpeqd (MN_vpcmpeqd + 1)
-#define MN_vpcmpeqd 0x1690
-#define MN_vpgatherqd 0x1699
-#define MN_vpscatterqd 0x16a4
-#define MN_vpmovusqd 0x16b0
-#define MN_vpmovsqd 0x16ba
-#define MN_vpmovqd 0x16c3
-#define MN_shrd 0x16cb
-#define MN_kord 0x16d0
-#define MN_kxnord 0x16d5
-#define MN_vpord 0x16dc
-#define MN_vprord 0x16e2
+#define MN_vpcmpeqd 0x1694
+#define MN_vpgatherqd 0x169d
+#define MN_vpscatterqd 0x16a8
+#define MN_vpmovusqd 0x16b4
+#define MN_vpmovsqd 0x16be
+#define MN_vpmovqd 0x16c7
+#define MN_shrd 0x16cf
+#define MN_kord 0x16d4
+#define MN_kxnord 0x16d9
+#define MN_vpord 0x16e0
+#define MN_vprord 0x16e6
#define MN_word (MN_aword + 1)
-#define MN_aword 0x16e9
+#define MN_aword 0x16ed
#define MN_dword (MN_adword + 1)
-#define MN_adword 0x16ef
-#define MN_kxord 0x16f6
-#define MN_vpxord 0x16fc
+#define MN_adword 0x16f3
+#define MN_kxord 0x16fa
+#define MN_vpxord 0x1700
#define MN_pinsrd (MN_vpinsrd + 1)
-#define MN_vpinsrd 0x1703
-#define MN_kshiftrd 0x170b
+#define MN_vpinsrd 0x1707
+#define MN_kshiftrd 0x170f
#define MN_pextrd (MN_vpextrd + 1)
-#define MN_vpextrd 0x1714
-#define MN_vfmsub231sd 0x171c
-#define MN_vfnmsub231sd 0x1728
-#define MN_vfmadd231sd 0x1735
-#define MN_vfnmadd231sd 0x1741
-#define MN_vfmsub132sd 0x174e
-#define MN_vfnmsub132sd 0x175a
-#define MN_vfmadd132sd 0x1767
-#define MN_vfnmadd132sd 0x1773
-#define MN_vcvtsh2sd 0x1780
+#define MN_vpextrd 0x1718
+#define MN_vfmsub231sd 0x1720
+#define MN_vfnmsub231sd 0x172c
+#define MN_vfmadd231sd 0x1739
+#define MN_vfnmadd231sd 0x1745
+#define MN_vfmsub132sd 0x1752
+#define MN_vfnmsub132sd 0x175e
+#define MN_vfmadd132sd 0x176b
+#define MN_vfnmadd132sd 0x1777
+#define MN_vcvtsh2sd 0x1784
#define MN_cvtsi2sd (MN_vcvtsi2sd + 1)
-#define MN_vcvtsi2sd 0x178a
-#define MN_vcvtusi2sd 0x1794
+#define MN_vcvtsi2sd 0x178e
+#define MN_vcvtusi2sd 0x1798
#define MN_cvtss2sd (MN_vcvtss2sd + 1)
-#define MN_vcvtss2sd 0x179f
-#define MN_vfmsub213sd 0x17a9
-#define MN_vfnmsub213sd 0x17b5
-#define MN_vfmadd213sd 0x17c2
-#define MN_vfnmadd213sd 0x17ce
-#define MN_vrcp14sd 0x17db
-#define MN_vrsqrt14sd 0x17e4
-#define MN_vrcp28sd 0x17ef
-#define MN_vrsqrt28sd 0x17f8
+#define MN_vcvtss2sd 0x17a3
+#define MN_vfmsub213sd 0x17ad
+#define MN_vfnmsub213sd 0x17b9
+#define MN_vfmadd213sd 0x17c6
+#define MN_vfnmadd213sd 0x17d2
+#define MN_vrcp14sd 0x17df
+#define MN_vrsqrt14sd 0x17e8
+#define MN_vrcp28sd 0x17f3
+#define MN_vrsqrt28sd 0x17fc
#define MN_pabsd (MN_vpabsd + 1)
-#define MN_vpabsd 0x1803
+#define MN_vpabsd 0x1807
#define MN_subsd (MN_vfmsubsd + 3)
-#define MN_vfmsubsd 0x180a
-#define MN_vfnmsubsd 0x1813
-#define MN_vsubsd 0x181d
+#define MN_vfmsubsd 0x180e
+#define MN_vfnmsubsd 0x1817
+#define MN_vsubsd 0x1821
#define MN_addsd (MN_vfmaddsd + 3)
-#define MN_vfmaddsd 0x1824
-#define MN_vfnmaddsd 0x182d
-#define MN_vaddsd 0x1837
+#define MN_vfmaddsd 0x1828
+#define MN_vfnmaddsd 0x1831
+#define MN_vaddsd 0x183b
#define MN_roundsd (MN_vroundsd + 1)
-#define MN_vroundsd 0x183e
+#define MN_vroundsd 0x1842
#define MN_cmpunordsd (MN_vcmpunordsd + 1)
-#define MN_vcmpunordsd 0x1847
+#define MN_vcmpunordsd 0x184b
#define MN_cmpordsd (MN_vcmpordsd + 1)
-#define MN_vcmpordsd 0x1853
-#define MN_vreducesd 0x185d
-#define MN_vrangesd 0x1867
-#define MN_vcmpngesd 0x1870
-#define MN_vcmpgesd 0x187a
-#define MN_vrndscalesd 0x1883
+#define MN_vcmpordsd 0x1857
+#define MN_vreducesd 0x1861
+#define MN_vrangesd 0x186b
+#define MN_vcmpngesd 0x1874
+#define MN_vcmpgesd 0x187e
+#define MN_vrndscalesd 0x1887
#define MN_cmpnlesd (MN_vcmpnlesd + 1)
-#define MN_vcmpnlesd 0x188f
+#define MN_vcmpnlesd 0x1893
#define MN_cmplesd (MN_vcmplesd + 1)
-#define MN_vcmplesd 0x1899
-#define MN_vcmpfalsesd 0x18a2
-#define MN_vcmptruesd 0x18ae
-#define MN_vscalefsd 0x18b9
+#define MN_vcmplesd 0x189d
+#define MN_vcmpfalsesd 0x18a6
+#define MN_vcmptruesd 0x18b2
+#define MN_vscalefsd 0x18bd
#define MN_comisd (MN_ucomisd + 1)
#define MN_ucomisd (MN_vucomisd + 1)
-#define MN_vucomisd 0x18c3
-#define MN_vcomisd 0x18cc
+#define MN_vucomisd 0x18c7
+#define MN_vcomisd 0x18d0
#define MN_mulsd (MN_vmulsd + 1)
-#define MN_vmulsd 0x18d4
-#define MN_vfixupimmsd 0x18db
+#define MN_vmulsd 0x18d8
+#define MN_vfixupimmsd 0x18df
#define MN_minsd (MN_pminsd + 1)
#define MN_pminsd (MN_vpminsd + 1)
-#define MN_vpminsd 0x18e7
-#define MN_vminsd 0x18ef
+#define MN_vpminsd 0x18eb
+#define MN_vminsd 0x18f3
#define MN_cmpsd (MN_vcmpsd + 1)
-#define MN_vcmpsd 0x18f6
-#define MN_vgetexpsd 0x18fd
-#define MN_vcmpunord_qsd 0x1907
-#define MN_vcmpord_qsd 0x1915
+#define MN_vcmpsd 0x18fa
+#define MN_vgetexpsd 0x1901
+#define MN_vcmpunord_qsd 0x190b
+#define MN_vcmpord_qsd 0x1919
#define MN_cmpneqsd (MN_vcmpneqsd + 1)
-#define MN_vcmpneqsd 0x1921
+#define MN_vcmpneqsd 0x1925
#define MN_cmpeqsd (MN_vcmpeqsd + 1)
-#define MN_vcmpeqsd 0x192b
-#define MN_vcmpge_oqsd 0x1934
-#define MN_vcmple_oqsd 0x1940
-#define MN_vcmpfalse_oqsd 0x194c
-#define MN_vcmpneq_oqsd 0x195b
-#define MN_vcmpeq_oqsd 0x1968
-#define MN_vcmpgt_oqsd 0x1974
-#define MN_vcmplt_oqsd 0x1980
-#define MN_vcmpnge_uqsd 0x198c
-#define MN_vcmpnle_uqsd 0x1999
-#define MN_vcmptrue_uqsd 0x19a6
-#define MN_vcmpneq_uqsd 0x19b4
-#define MN_vcmpeq_uqsd 0x19c1
-#define MN_vcmpngt_uqsd 0x19cd
-#define MN_vcmpnlt_uqsd 0x19da
-#define MN_vmovrsd 0x19e7
-#define MN_vcmpunord_ssd 0x19ef
-#define MN_vcmpord_ssd 0x19fd
-#define MN_vpdpbssd 0x1a09
-#define MN_tdpbssd 0x1a12
-#define MN_vpcompressd 0x1a1a
-#define MN_vcmpge_ossd 0x1a26
-#define MN_vcmple_ossd 0x1a32
-#define MN_vcmpfalse_ossd 0x1a3e
-#define MN_vcmpneq_ossd 0x1a4d
-#define MN_vcmpeq_ossd 0x1a5a
-#define MN_vcmpgt_ossd 0x1a66
-#define MN_vcmplt_ossd 0x1a72
-#define MN_wrssd 0x1a7e
-#define MN_vfpclasssd 0x1a84
-#define MN_vcmpnge_ussd 0x1a8f
-#define MN_vcmpnle_ussd 0x1a9c
-#define MN_vcmptrue_ussd 0x1aa9
-#define MN_vcmpneq_ussd 0x1ab7
-#define MN_vcmpeq_ussd 0x1ac4
-#define MN_vcmpngt_ussd 0x1ad0
-#define MN_vcmpnlt_ussd 0x1add
-#define MN_wrussd 0x1aea
-#define MN_vp4dpwssd 0x1af1
-#define MN_vpdpwssd 0x1afb
-#define MN_vcmpngtsd 0x1b04
-#define MN_vcmpgtsd 0x1b0e
+#define MN_vcmpeqsd 0x192f
+#define MN_vcmpge_oqsd 0x1938
+#define MN_vcmple_oqsd 0x1944
+#define MN_vcmpfalse_oqsd 0x1950
+#define MN_vcmpneq_oqsd 0x195f
+#define MN_vcmpeq_oqsd 0x196c
+#define MN_vcmpgt_oqsd 0x1978
+#define MN_vcmplt_oqsd 0x1984
+#define MN_vcmpnge_uqsd 0x1990
+#define MN_vcmpnle_uqsd 0x199d
+#define MN_vcmptrue_uqsd 0x19aa
+#define MN_vcmpneq_uqsd 0x19b8
+#define MN_vcmpeq_uqsd 0x19c5
+#define MN_vcmpngt_uqsd 0x19d1
+#define MN_vcmpnlt_uqsd 0x19de
+#define MN_vmovrsd 0x19eb
+#define MN_vcmpunord_ssd 0x19f3
+#define MN_vcmpord_ssd 0x1a01
+#define MN_vpdpbssd 0x1a0d
+#define MN_tdpbssd 0x1a16
+#define MN_vpcompressd 0x1a1e
+#define MN_vcmpge_ossd 0x1a2a
+#define MN_vcmple_ossd 0x1a36
+#define MN_vcmpfalse_ossd 0x1a42
+#define MN_vcmpneq_ossd 0x1a51
+#define MN_vcmpeq_ossd 0x1a5e
+#define MN_vcmpgt_ossd 0x1a6a
+#define MN_vcmplt_ossd 0x1a76
+#define MN_wrssd 0x1a82
+#define MN_vfpclasssd 0x1a88
+#define MN_vcmpnge_ussd 0x1a93
+#define MN_vcmpnle_ussd 0x1aa0
+#define MN_vcmptrue_ussd 0x1aad
+#define MN_vcmpneq_ussd 0x1abb
+#define MN_vcmpeq_ussd 0x1ac8
+#define MN_vcmpngt_ussd 0x1ad4
+#define MN_vcmpnlt_ussd 0x1ae1
+#define MN_wrussd 0x1aee
+#define MN_vp4dpwssd 0x1af5
+#define MN_vpdpwssd 0x1aff
+#define MN_vcmpngtsd 0x1b08
+#define MN_vcmpgtsd 0x1b12
#define MN_cmpnltsd (MN_vcmpnltsd + 1)
-#define MN_vcmpnltsd 0x1b17
+#define MN_vcmpnltsd 0x1b1b
#define MN_cmpltsd (MN_vcmpltsd + 1)
-#define MN_vcmpltsd 0x1b21
-#define MN_vgetmantsd 0x1b2a
-#define MN_movntsd 0x1b35
+#define MN_vcmpltsd 0x1b25
+#define MN_vgetmantsd 0x1b2e
+#define MN_movntsd 0x1b39
#define MN_sqrtsd (MN_vsqrtsd + 1)
-#define MN_vsqrtsd 0x1b3d
-#define MN_vbroadcastsd 0x1b45
-#define MN_vpdpbusd 0x1b52
-#define MN_tdpbusd 0x1b5b
-#define MN_vpdpwusd 0x1b63
+#define MN_vsqrtsd 0x1b41
+#define MN_vbroadcastsd 0x1b49
+#define MN_vpdpbusd 0x1b56
+#define MN_tdpbusd 0x1b5f
+#define MN_vpdpwusd 0x1b67
#define MN_divsd (MN_vdivsd + 1)
-#define MN_vdivsd 0x1b6c
+#define MN_vdivsd 0x1b70
#define MN_movsd (MN_vmovsd + 1)
-#define MN_vmovsd 0x1b73
+#define MN_vmovsd 0x1b77
#define MN_maxsd (MN_vminmaxsd + 4)
-#define MN_vminmaxsd 0x1b7a
+#define MN_vminmaxsd 0x1b7e
#define MN_pmaxsd (MN_vpmaxsd + 1)
-#define MN_vpmaxsd 0x1b84
-#define MN_vmaxsd 0x1b8c
-#define MN_vucomxsd 0x1b93
-#define MN_vcomxsd 0x1b9c
-#define MN_vfrczsd 0x1ba4
-#define MN_vp2intersectd 0x1bac
-#define MN_vpconflictd 0x1bba
-#define MN_vpcomgtd 0x1bc6
+#define MN_vpmaxsd 0x1b88
+#define MN_vmaxsd 0x1b90
+#define MN_vucomxsd 0x1b97
+#define MN_vcomxsd 0x1ba0
+#define MN_vfrczsd 0x1ba8
+#define MN_vp2intersectd 0x1bb0
+#define MN_vpconflictd 0x1bbe
+#define MN_vpcomgtd 0x1bca
#define MN_pcmpgtd (MN_vpcmpgtd + 1)
-#define MN_vpcmpgtd 0x1bcf
-#define MN_cltd 0x1bd8
-#define MN_vpcomltd 0x1bdd
-#define MN_vpcmpnltd 0x1be6
-#define MN_vpcmpltd 0x1bf0
-#define MN_vpopcntd 0x1bf9
-#define MN_vplzcntd 0x1c02
-#define MN_knotd 0x1c0b
-#define MN_vprotd 0x1c11
+#define MN_vpcmpgtd 0x1bd3
+#define MN_cltd 0x1bdc
+#define MN_vpcomltd 0x1be1
+#define MN_vpcmpnltd 0x1bea
+#define MN_vpcmpltd 0x1bf4
+#define MN_vpopcntd 0x1bfd
+#define MN_vplzcntd 0x1c06
+#define MN_knotd 0x1c0f
+#define MN_vprotd 0x1c15
#define MN_std (MN_vpbroadcastd + 9)
-#define MN_vpbroadcastd 0x1c18
-#define MN_ktestd 0x1c25
-#define MN_kortestd 0x1c2c
-#define MN_cwtd 0x1c35
-#define MN_vpcomgeud 0x1c3a
-#define MN_vpcomleud 0x1c44
-#define MN_vpcmpnleud 0x1c4e
-#define MN_vpcmpleud 0x1c59
-#define MN_vpcomfalseud 0x1c63
-#define MN_vpcomtrueud 0x1c70
-#define MN_vpcomud 0x1c7c
+#define MN_vpbroadcastd 0x1c1c
+#define MN_ktestd 0x1c29
+#define MN_kortestd 0x1c30
+#define MN_cwtd 0x1c39
+#define MN_vpcomgeud 0x1c3e
+#define MN_vpcomleud 0x1c48
+#define MN_vpcmpnleud 0x1c52
+#define MN_vpcmpleud 0x1c5d
+#define MN_vpcomfalseud 0x1c67
+#define MN_vpcomtrueud 0x1c74
+#define MN_vpcomud 0x1c80
#define MN_pminud (MN_vpminud + 1)
-#define MN_vpminud 0x1c84
-#define MN_vpcmpud 0x1c8c
-#define MN_vpcomequd 0x1c94
-#define MN_vpcomnequd 0x1c9e
-#define MN_vpcmpnequd 0x1ca9
-#define MN_vpcmpequd 0x1cb4
-#define MN_vpdpbsud 0x1cbe
-#define MN_tdpbsud 0x1cc7
-#define MN_vpdpwsud 0x1ccf
-#define MN_vpcomgtud 0x1cd8
-#define MN_vpcomltud 0x1ce2
-#define MN_vpcmpnltud 0x1cec
-#define MN_vpcmpltud 0x1cf7
-#define MN_vpdpbuud 0x1d01
-#define MN_tdpbuud 0x1d0a
-#define MN_vpdpwuud 0x1d12
+#define MN_vpminud 0x1c88
+#define MN_vpcmpud 0x1c90
+#define MN_vpcomequd 0x1c98
+#define MN_vpcomnequd 0x1ca2
+#define MN_vpcmpnequd 0x1cad
+#define MN_vpcmpequd 0x1cb8
+#define MN_vpdpbsud 0x1cc2
+#define MN_tdpbsud 0x1ccb
+#define MN_vpdpwsud 0x1cd3
+#define MN_vpcomgtud 0x1cdc
+#define MN_vpcomltud 0x1ce6
+#define MN_vpcmpnltud 0x1cf0
+#define MN_vpcmpltud 0x1cfb
+#define MN_vpdpbuud 0x1d05
+#define MN_tdpbuud 0x1d0e
+#define MN_vpdpwuud 0x1d16
#define MN_pmaxud (MN_vpmaxud + 1)
-#define MN_vpmaxud 0x1d1b
-#define MN_vpsravd 0x1d23
-#define MN_vpshldvd 0x1d2b
-#define MN_vpshrdvd 0x1d34
-#define MN_vpsllvd 0x1d3d
-#define MN_vprolvd 0x1d45
-#define MN_vpsrlvd 0x1d4d
+#define MN_vpmaxud 0x1d1f
+#define MN_vpsravd 0x1d27
+#define MN_vpshldvd 0x1d2f
+#define MN_vpshrdvd 0x1d38
+#define MN_vpsllvd 0x1d41
+#define MN_vprolvd 0x1d49
+#define MN_vpsrlvd 0x1d51
#define MN_invd (MN_wbinvd + 2)
-#define MN_wbinvd 0x1d55
-#define MN_wbnoinvd 0x1d5c
+#define MN_wbinvd 0x1d59
+#define MN_wbnoinvd 0x1d60
#define MN_movd (MN_kmovd + 1)
#define MN_kmovd (MN_vpmaskmovd + 5)
-#define MN_vpmaskmovd 0x1d65
-#define MN_vmovd 0x1d70
-#define MN_vprorvd 0x1d76
-#define MN_vphsubwd 0x1d7e
-#define MN_cwd 0x1d87
-#define MN_vphaddwd 0x1d8b
+#define MN_vpmaskmovd 0x1d69
+#define MN_vmovd 0x1d74
+#define MN_vprorvd 0x1d7a
+#define MN_vphsubwd 0x1d82
+#define MN_cwd 0x1d8b
+#define MN_vphaddwd 0x1d8f
#define MN_pmaddwd (MN_vpmaddwd + 1)
-#define MN_vpmaddwd 0x1d94
+#define MN_vpmaddwd 0x1d98
#define MN_punpckhwd (MN_vpunpckhwd + 1)
-#define MN_vpunpckhwd 0x1d9d
-#define MN_kunpckwd 0x1da8
+#define MN_vpunpckhwd 0x1da1
+#define MN_kunpckwd 0x1dac
#define MN_punpcklwd (MN_vpunpcklwd + 1)
-#define MN_vpunpcklwd 0x1db1
-#define MN_vpmacswd 0x1dbc
-#define MN_vpmadcswd 0x1dc5
-#define MN_vpmacsswd 0x1dcf
-#define MN_vpmadcsswd 0x1dd9
-#define MN_vphadduwd 0x1de4
+#define MN_vpunpcklwd 0x1db5
+#define MN_vpmacswd 0x1dc0
+#define MN_vpmadcswd 0x1dc9
+#define MN_vpmacsswd 0x1dd3
+#define MN_vpmadcsswd 0x1ddd
+#define MN_vphadduwd 0x1de8
#define MN_pmovsxwd (MN_vpmovsxwd + 1)
-#define MN_vpmovsxwd 0x1dee
+#define MN_vpmovsxwd 0x1df2
#define MN_pmovzxwd (MN_vpmovzxwd + 1)
-#define MN_vpmovzxwd 0x1df8
-#define MN_movsxd 0x1e02
-#define MN_fldl2e 0x1e09
-#define MN_jae 0x1e10
-#define MN_jnae 0x1e14
-#define MN_ccmpnae 0x1e19
-#define MN_setnae 0x1e21
-#define MN_ctestnae 0x1e28
-#define MN_setzunae 0x1e31
+#define MN_vpmovzxwd 0x1dfc
+#define MN_movsxd 0x1e06
+#define MN_fldl2e 0x1e0d
+#define MN_jae 0x1e14
+#define MN_jnae 0x1e18
+#define MN_ccmpnae 0x1e1d
+#define MN_setnae 0x1e25
+#define MN_ctestnae 0x1e2c
+#define MN_setzunae 0x1e35
#define MN_cmovnae (MN_fcmovnae + 1)
#define MN_fcmovnae (MN_cfcmovnae + 1)
-#define MN_cfcmovnae 0x1e3a
-#define MN_ccmpae 0x1e44
-#define MN_setae 0x1e4b
-#define MN_ctestae 0x1e51
-#define MN_setzuae 0x1e59
+#define MN_cfcmovnae 0x1e3e
+#define MN_ccmpae 0x1e48
+#define MN_setae 0x1e4f
+#define MN_ctestae 0x1e55
+#define MN_setzuae 0x1e5d
#define MN_cmovae (MN_fcmovae + 1)
#define MN_fcmovae (MN_cfcmovae + 1)
-#define MN_cfcmovae 0x1e61
-#define MN_jbe 0x1e6a
-#define MN_jnbe 0x1e6e
-#define MN_ccmpnbe 0x1e73
-#define MN_setnbe 0x1e7b
-#define MN_ctestnbe 0x1e82
-#define MN_setzunbe 0x1e8b
+#define MN_cfcmovae 0x1e65
+#define MN_jbe 0x1e6e
+#define MN_jnbe 0x1e72
+#define MN_ccmpnbe 0x1e77
+#define MN_setnbe 0x1e7f
+#define MN_ctestnbe 0x1e86
+#define MN_setzunbe 0x1e8f
#define MN_cmovnbe (MN_fcmovnbe + 1)
#define MN_fcmovnbe (MN_cfcmovnbe + 1)
-#define MN_cfcmovnbe 0x1e94
-#define MN_ccmpbe 0x1e9e
-#define MN_setbe 0x1ea5
-#define MN_ctestbe 0x1eab
-#define MN_setzube 0x1eb3
+#define MN_cfcmovnbe 0x1e98
+#define MN_ccmpbe 0x1ea2
+#define MN_setbe 0x1ea9
+#define MN_ctestbe 0x1eaf
+#define MN_setzube 0x1eb7
#define MN_movbe (MN_cmovbe + 1)
#define MN_cmovbe (MN_fcmovbe + 1)
#define MN_fcmovbe (MN_cfcmovbe + 1)
-#define MN_cfcmovbe 0x1ebb
-#define MN_lfence 0x1ec4
-#define MN_mfence 0x1ecb
-#define MN_sfence 0x1ed2
-#define MN_cwde 0x1ed9
-#define MN_ffree 0x1ede
-#define MN_jge 0x1ee4
-#define MN_jnge 0x1ee8
-#define MN_ccmpnge 0x1eed
-#define MN_setnge 0x1ef5
-#define MN_ctestnge 0x1efc
-#define MN_setzunge 0x1f05
+#define MN_cfcmovbe 0x1ebf
+#define MN_lfence 0x1ec8
+#define MN_mfence 0x1ecf
+#define MN_sfence 0x1ed6
+#define MN_cwde 0x1edd
+#define MN_ffree 0x1ee2
+#define MN_jge 0x1ee8
+#define MN_jnge 0x1eec
+#define MN_ccmpnge 0x1ef1
+#define MN_setnge 0x1ef9
+#define MN_ctestnge 0x1f00
+#define MN_setzunge 0x1f09
#define MN_cmovnge (MN_cfcmovnge + 2)
-#define MN_cfcmovnge 0x1f0e
-#define MN_ccmpge 0x1f18
-#define MN_pfcmpge 0x1f1f
-#define MN_setge 0x1f27
-#define MN_ctestge 0x1f2d
-#define MN_setzuge 0x1f35
+#define MN_cfcmovnge 0x1f12
+#define MN_ccmpge 0x1f1c
+#define MN_pfcmpge 0x1f23
+#define MN_setge 0x1f2b
+#define MN_ctestge 0x1f31
+#define MN_setzuge 0x1f39
#define MN_cmovge (MN_cfcmovge + 2)
-#define MN_cfcmovge 0x1f3d
-#define MN_je 0x1f46
-#define MN_fscale 0x1f49
-#define MN_jle 0x1f50
-#define MN_jnle 0x1f54
-#define MN_ccmpnle 0x1f59
-#define MN_setnle 0x1f61
-#define MN_ctestnle 0x1f68
-#define MN_setzunle 0x1f71
+#define MN_cfcmovge 0x1f41
+#define MN_je 0x1f4a
+#define MN_fscale 0x1f4d
+#define MN_jle 0x1f54
+#define MN_jnle 0x1f58
+#define MN_ccmpnle 0x1f5d
+#define MN_setnle 0x1f65
+#define MN_ctestnle 0x1f6c
+#define MN_setzunle 0x1f75
#define MN_cmovnle (MN_cfcmovnle + 2)
-#define MN_cfcmovnle 0x1f7a
-#define MN_ccmple 0x1f84
-#define MN_setle 0x1f8b
-#define MN_ctestle 0x1f91
-#define MN_setzule 0x1f99
+#define MN_cfcmovnle 0x1f7e
+#define MN_ccmple 0x1f88
+#define MN_setle 0x1f8f
+#define MN_ctestle 0x1f95
+#define MN_setzule 0x1f9d
#define MN_cmovle (MN_cfcmovle + 2)
-#define MN_cfcmovle 0x1fa1
-#define MN_vmresume 0x1faa
-#define MN_jne 0x1fb3
-#define MN_repne 0x1fb7
-#define MN_ccmpne 0x1fbd
-#define MN_loopne 0x1fc4
-#define MN_setne 0x1fcb
-#define MN_ctestne 0x1fd1
-#define MN_setzune 0x1fd9
+#define MN_cfcmovle 0x1fa5
+#define MN_vmresume 0x1fae
+#define MN_jne 0x1fb7
+#define MN_repne 0x1fbb
+#define MN_ccmpne 0x1fc1
+#define MN_loopne 0x1fc8
+#define MN_setne 0x1fcf
+#define MN_ctestne 0x1fd5
+#define MN_setzune 0x1fdd
#define MN_cmovne (MN_fcmovne + 1)
#define MN_fcmovne (MN_cfcmovne + 1)
-#define MN_cfcmovne 0x1fe1
-#define MN_repe 0x1fea
-#define MN_jpe 0x1fef
-#define MN_ccmpe 0x1ff3
-#define MN_loope 0x1ff9
-#define MN_setpe 0x1fff
-#define MN_setzupe 0x2005
+#define MN_cfcmovne 0x1fe5
+#define MN_repe 0x1fee
+#define MN_jpe 0x1ff3
+#define MN_ccmpe 0x1ff7
+#define MN_loope 0x1ffd
+#define MN_setpe 0x2003
+#define MN_setzupe 0x2009
#define MN_cmovpe (MN_cfcmovpe + 2)
-#define MN_cfcmovpe 0x200d
-#define MN_cdqe 0x2016
-#define MN_xacquire 0x201b
-#define MN_xstore 0x2024
-#define MN_rdfsbase 0x202b
-#define MN_wrfsbase 0x2034
-#define MN_rdgsbase 0x203d
-#define MN_wrgsbase 0x2046
-#define MN_tilerelease 0x204f
-#define MN_xrelease 0x205b
+#define MN_cfcmovpe 0x2011
+#define MN_cdqe 0x201a
+#define MN_xacquire 0x201f
+#define MN_xstore 0x2028
+#define MN_rdfsbase 0x202f
+#define MN_wrfsbase 0x2038
+#define MN_rdgsbase 0x2041
+#define MN_wrgsbase 0x204a
+#define MN_tilerelease 0x2053
+#define MN_xrelease 0x205f
#define MN_pause (MN_tpause + 1)
-#define MN_tpause 0x2064
-#define MN_pvalidate 0x206b
-#define MN_rmpupdate 0x2075
-#define MN_sete 0x207f
-#define MN_vmwrite 0x2084
-#define MN_ptwrite 0x208c
-#define MN_cldemote 0x2094
-#define MN_cteste 0x209d
-#define MN_sha1nexte 0x20a4
-#define MN_setzue 0x20ae
-#define MN_leave 0x20b5
-#define MN_fsave 0x20bb
-#define MN_vmsave 0x20c1
-#define MN_fnsave 0x20c8
+#define MN_tpause 0x2068
+#define MN_pvalidate 0x206f
+#define MN_rmpupdate 0x2079
+#define MN_sete 0x2083
+#define MN_vmwrite 0x2088
+#define MN_ptwrite 0x2090
+#define MN_cldemote 0x2098
+#define MN_cteste 0x20a1
+#define MN_sha1nexte 0x20a8
+#define MN_setzue 0x20b2
+#define MN_leave 0x20b9
+#define MN_fsave 0x20bf
+#define MN_vmsave 0x20c5
+#define MN_fnsave 0x20cc
#define MN_xsave (MN_fxsave + 1)
-#define MN_fxsave 0x20cf
+#define MN_fxsave 0x20d3
#define MN_cmove (MN_fcmove + 1)
#define MN_fcmove (MN_cfcmove + 1)
-#define MN_cfcmove 0x20d6
-#define MN_serialize 0x20de
-#define MN_vmxoff 0x20e8
-#define MN_lahf 0x20ef
-#define MN_sahf 0x20f4
-#define MN_pushf 0x20f9
-#define MN_ccmpf 0x20ff
-#define MN_popf 0x2105
-#define MN_bsf 0x210a
-#define MN_retf 0x210e
-#define MN_ctestf 0x2113
-#define MN_neg 0x211a
-#define MN_ldtilecfg 0x211e
-#define MN_sttilecfg 0x2128
+#define MN_cfcmove 0x20da
+#define MN_serialize 0x20e2
+#define MN_vmxoff 0x20ec
+#define MN_lahf 0x20f3
+#define MN_sahf 0x20f8
+#define MN_pushf 0x20fd
+#define MN_ccmpf 0x2103
+#define MN_popf 0x2109
+#define MN_bsf 0x210e
+#define MN_retf 0x2112
+#define MN_ctestf 0x2117
+#define MN_neg 0x211e
+#define MN_ldtilecfg 0x2122
+#define MN_sttilecfg 0x212c
#define MN_xchg (MN_cmpxchg + 3)
-#define MN_cmpxchg 0x2132
-#define MN_pconfig 0x213a
-#define MN_jg 0x2142
-#define MN_jng 0x2145
-#define MN_ccmpng 0x2149
-#define MN_xstore_rng 0x2150
-#define MN_xstorerng 0x215b
-#define MN_setng 0x2165
-#define MN_ctestng 0x216b
-#define MN_setzung 0x2173
+#define MN_cmpxchg 0x2136
+#define MN_pconfig 0x213e
+#define MN_jg 0x2146
+#define MN_jng 0x2149
+#define MN_ccmpng 0x214d
+#define MN_xstore_rng 0x2154
+#define MN_xstorerng 0x215f
+#define MN_setng 0x2169
+#define MN_ctestng 0x216f
+#define MN_setzung 0x2177
#define MN_cmovng (MN_cfcmovng + 2)
-#define MN_cfcmovng 0x217b
-#define MN_invlpg 0x2184
-#define MN_ccmpg 0x218b
-#define MN_setg 0x2191
-#define MN_ctestg 0x2196
-#define MN_setzug 0x219d
+#define MN_cfcmovng 0x217f
+#define MN_invlpg 0x2188
+#define MN_ccmpg 0x218f
+#define MN_setg 0x2195
+#define MN_ctestg 0x219a
+#define MN_setzug 0x21a1
#define MN_cmovg (MN_cfcmovg + 2)
-#define MN_cfcmovg 0x21a4
-#define MN_tcvtrowps2bf16h 0x21ac
-#define MN_vmlaunch 0x21bc
-#define MN_prefetch 0x21c5
-#define MN_fxch 0x21ce
-#define MN_tcvtrowps2phh 0x21d3
-#define MN_vfmaddsub231ph 0x21e1
-#define MN_vfmsub231ph 0x21f0
-#define MN_vfnmsub231ph 0x21fc
-#define MN_vfmsubadd231ph 0x2209
-#define MN_vfmadd231ph 0x2218
-#define MN_vfnmadd231ph 0x2224
-#define MN_vfmaddsub132ph 0x2231
-#define MN_vfmsub132ph 0x2240
-#define MN_vfnmsub132ph 0x224c
-#define MN_vfmsubadd132ph 0x2259
-#define MN_vfmadd132ph 0x2268
-#define MN_vfnmadd132ph 0x2274
-#define MN_vcvthf82ph 0x2281
-#define MN_vcvtpd2ph 0x228c
-#define MN_vcvtdq2ph 0x2296
-#define MN_vcvtudq2ph 0x22a0
-#define MN_vcvtqq2ph 0x22ab
-#define MN_vcvtuqq2ph 0x22b5
-#define MN_vcvtps2ph 0x22c0
-#define MN_vcvtw2ph 0x22ca
-#define MN_vcvtuw2ph 0x22d3
-#define MN_vfmaddsub213ph 0x22dd
-#define MN_vfmsub213ph 0x22ec
-#define MN_vfnmsub213ph 0x22f8
-#define MN_vfmsubadd213ph 0x2305
-#define MN_vfmadd213ph 0x2314
-#define MN_vfnmadd213ph 0x2320
-#define MN_vsubph 0x232d
-#define MN_vfcmaddcph 0x2334
-#define MN_vfmaddcph 0x233f
-#define MN_vfcmulcph 0x2349
-#define MN_vfmulcph 0x2353
-#define MN_vaddph 0x235c
-#define MN_vcmpunordph 0x2363
-#define MN_vcmpordph 0x236f
-#define MN_vreduceph 0x2379
-#define MN_vcmpngeph 0x2383
-#define MN_vcmpgeph 0x238d
-#define MN_vrndscaleph 0x2396
-#define MN_vcmpnleph 0x23a2
-#define MN_vcmpleph 0x23ac
-#define MN_vcmpfalseph 0x23b5
-#define MN_vcmptrueph 0x23c1
-#define MN_vscalefph 0x23cc
-#define MN_vmulph 0x23d6
-#define MN_vminph 0x23dd
-#define MN_vrcpph 0x23e4
-#define MN_vcmpph 0x23eb
-#define MN_vgetexpph 0x23f2
-#define MN_vcmpunord_qph 0x23fc
-#define MN_vcmpord_qph 0x240a
-#define MN_vcmpneqph 0x2416
-#define MN_vcmpeqph 0x2420
-#define MN_vcmpge_oqph 0x2429
-#define MN_vcmple_oqph 0x2435
-#define MN_vcmpfalse_oqph 0x2441
-#define MN_vcmpneq_oqph 0x2450
-#define MN_vcmpeq_oqph 0x245d
-#define MN_vcmpgt_oqph 0x2469
-#define MN_vcmplt_oqph 0x2475
-#define MN_vcmpnge_uqph 0x2481
-#define MN_vcmpnle_uqph 0x248e
-#define MN_vcmptrue_uqph 0x249b
-#define MN_vcmpneq_uqph 0x24a9
-#define MN_vcmpeq_uqph 0x24b6
-#define MN_vcmpngt_uqph 0x24c2
-#define MN_vcmpnlt_uqph 0x24cf
-#define MN_vcmpunord_sph 0x24dc
-#define MN_vcmpord_sph 0x24ea
-#define MN_vcmpge_osph 0x24f6
-#define MN_vcmple_osph 0x2502
-#define MN_vcmpfalse_osph 0x250e
-#define MN_vcmpneq_osph 0x251d
-#define MN_vcmpeq_osph 0x252a
-#define MN_vcmpgt_osph 0x2536
-#define MN_vcmplt_osph 0x2542
-#define MN_vfpclassph 0x254e
-#define MN_vcmpnge_usph 0x2559
-#define MN_vcmpnle_usph 0x2566
-#define MN_vcmptrue_usph 0x2573
-#define MN_vcmpneq_usph 0x2581
-#define MN_vcmpeq_usph 0x258e
-#define MN_vcmpngt_usph 0x259a
-#define MN_vcmpnlt_usph 0x25a7
-#define MN_vcmpngtph 0x25b4
-#define MN_vcmpgtph 0x25be
-#define MN_vcmpnltph 0x25c7
-#define MN_vcmpltph 0x25d1
-#define MN_vgetmantph 0x25da
-#define MN_vrsqrtph 0x25e5
-#define MN_vsqrtph 0x25ee
-#define MN_vdivph 0x25f6
-#define MN_vminmaxph 0x25fd
-#define MN_vmaxph 0x2607
-#define MN_vpmacsdqh 0x260e
-#define MN_vpmacssdqh 0x2618
-#define MN_vfmsub231sh 0x2623
-#define MN_vfnmsub231sh 0x262f
-#define MN_vfmadd231sh 0x263c
-#define MN_vfnmadd231sh 0x2648
-#define MN_vfmsub132sh 0x2655
-#define MN_vfnmsub132sh 0x2661
-#define MN_vfmadd132sh 0x266e
-#define MN_vfnmadd132sh 0x267a
-#define MN_vcvtsd2sh 0x2687
-#define MN_vcvtsi2sh 0x2691
-#define MN_vcvtusi2sh 0x269b
-#define MN_vcvtss2sh 0x26a6
-#define MN_vfmsub213sh 0x26b0
-#define MN_vfnmsub213sh 0x26bc
-#define MN_vfmadd213sh 0x26c9
-#define MN_vfnmadd213sh 0x26d5
-#define MN_psmash 0x26e2
-#define MN_vsubsh 0x26e9
-#define MN_vfcmaddcsh 0x26f0
-#define MN_vfmaddcsh 0x26fb
-#define MN_vfcmulcsh 0x2705
-#define MN_vfmulcsh 0x270f
-#define MN_vaddsh 0x2718
-#define MN_vcmpunordsh 0x271f
-#define MN_vcmpordsh 0x272b
-#define MN_vreducesh 0x2735
-#define MN_vcmpngesh 0x273f
-#define MN_vcmpgesh 0x2749
-#define MN_vrndscalesh 0x2752
-#define MN_vcmpnlesh 0x275e
-#define MN_vcmplesh 0x2768
-#define MN_vcmpfalsesh 0x2771
-#define MN_vcmptruesh 0x277d
-#define MN_vscalefsh 0x2788
-#define MN_vucomish 0x2792
-#define MN_vcomish 0x279b
-#define MN_vmulsh 0x27a3
-#define MN_vminsh 0x27aa
-#define MN_vrcpsh 0x27b1
-#define MN_vcmpsh 0x27b8
-#define MN_vgetexpsh 0x27bf
-#define MN_vcmpunord_qsh 0x27c9
-#define MN_vcmpord_qsh 0x27d7
-#define MN_vcmpneqsh 0x27e3
-#define MN_vcmpeqsh 0x27ed
-#define MN_vcmpge_oqsh 0x27f6
-#define MN_vcmple_oqsh 0x2802
-#define MN_vcmpfalse_oqsh 0x280e
-#define MN_vcmpneq_oqsh 0x281d
-#define MN_vcmpeq_oqsh 0x282a
-#define MN_vcmpgt_oqsh 0x2836
-#define MN_vcmplt_oqsh 0x2842
-#define MN_vcmpnge_uqsh 0x284e
-#define MN_vcmpnle_uqsh 0x285b
-#define MN_vcmptrue_uqsh 0x2868
-#define MN_vcmpneq_uqsh 0x2876
-#define MN_vcmpeq_uqsh 0x2883
-#define MN_vcmpngt_uqsh 0x288f
-#define MN_vcmpnlt_uqsh 0x289c
-#define MN_vcmpunord_ssh 0x28a9
-#define MN_vcmpord_ssh 0x28b7
-#define MN_vcmpge_ossh 0x28c3
-#define MN_vcmple_ossh 0x28cf
-#define MN_vcmpfalse_ossh 0x28db
-#define MN_vcmpneq_ossh 0x28ea
-#define MN_vcmpeq_ossh 0x28f7
-#define MN_vcmpgt_ossh 0x2903
-#define MN_vcmplt_ossh 0x290f
-#define MN_vfpclasssh 0x291b
-#define MN_vcmpnge_ussh 0x2926
-#define MN_vcmpnle_ussh 0x2933
-#define MN_vcmptrue_ussh 0x2940
-#define MN_vcmpneq_ussh 0x294e
-#define MN_vcmpeq_ussh 0x295b
-#define MN_vcmpngt_ussh 0x2967
-#define MN_vcmpnlt_ussh 0x2974
-#define MN_vcmpngtsh 0x2981
-#define MN_vcmpgtsh 0x298b
-#define MN_vcmpnltsh 0x2994
-#define MN_vcmpltsh 0x299e
-#define MN_vgetmantsh 0x29a7
-#define MN_vrsqrtsh 0x29b2
-#define MN_vsqrtsh 0x29bb
-#define MN_clflush 0x29c3
-#define MN_push 0x29cb
-#define MN_vdivsh 0x29d0
-#define MN_vmovsh 0x29d7
-#define MN_vminmaxsh 0x29de
-#define MN_vmaxsh 0x29e8
-#define MN_vucomxsh 0x29ef
-#define MN_vcomxsh 0x29f8
-#define MN_blci 0x2a00
-#define MN_clgi 0x2a05
-#define MN_stgi 0x2a0a
-#define MN_bzhi 0x2a0f
-#define MN_cli 0x2a14
-#define MN_fcomi 0x2a18
-#define MN_fucomi 0x2a1e
-#define MN_feni 0x2a25
-#define MN_fneni 0x2a2a
-#define MN_cvttpd2pi 0x2a30
-#define MN_cvtpd2pi 0x2a3a
-#define MN_cvttps2pi 0x2a43
-#define MN_cvtps2pi 0x2a4d
-#define MN_fldpi 0x2a56
-#define MN_senduipi 0x2a5c
-#define MN_fcompi 0x2a65
-#define MN_fucompi 0x2a6c
-#define MN_movdiri 0x2a74
+#define MN_cfcmovg 0x21a8
+#define MN_tcvtrowps2bf16h 0x21b0
+#define MN_vmlaunch 0x21c0
+#define MN_prefetch 0x21c9
+#define MN_fxch 0x21d2
+#define MN_tcvtrowps2phh 0x21d7
+#define MN_vfmaddsub231ph 0x21e5
+#define MN_vfmsub231ph 0x21f4
+#define MN_vfnmsub231ph 0x2200
+#define MN_vfmsubadd231ph 0x220d
+#define MN_vfmadd231ph 0x221c
+#define MN_vfnmadd231ph 0x2228
+#define MN_vfmaddsub132ph 0x2235
+#define MN_vfmsub132ph 0x2244
+#define MN_vfnmsub132ph 0x2250
+#define MN_vfmsubadd132ph 0x225d
+#define MN_vfmadd132ph 0x226c
+#define MN_vfnmadd132ph 0x2278
+#define MN_vcvthf82ph 0x2285
+#define MN_vcvtpd2ph 0x2290
+#define MN_vcvtdq2ph 0x229a
+#define MN_vcvtudq2ph 0x22a4
+#define MN_vcvtqq2ph 0x22af
+#define MN_vcvtuqq2ph 0x22b9
+#define MN_vcvtps2ph 0x22c4
+#define MN_vcvtw2ph 0x22ce
+#define MN_vcvtuw2ph 0x22d7
+#define MN_vfmaddsub213ph 0x22e1
+#define MN_vfmsub213ph 0x22f0
+#define MN_vfnmsub213ph 0x22fc
+#define MN_vfmsubadd213ph 0x2309
+#define MN_vfmadd213ph 0x2318
+#define MN_vfnmadd213ph 0x2324
+#define MN_vsubph 0x2331
+#define MN_vfcmaddcph 0x2338
+#define MN_vfmaddcph 0x2343
+#define MN_vfcmulcph 0x234d
+#define MN_vfmulcph 0x2357
+#define MN_vaddph 0x2360
+#define MN_vcmpunordph 0x2367
+#define MN_vcmpordph 0x2373
+#define MN_vreduceph 0x237d
+#define MN_vcmpngeph 0x2387
+#define MN_vcmpgeph 0x2391
+#define MN_vrndscaleph 0x239a
+#define MN_vcmpnleph 0x23a6
+#define MN_vcmpleph 0x23b0
+#define MN_vcmpfalseph 0x23b9
+#define MN_vcmptrueph 0x23c5
+#define MN_vscalefph 0x23d0
+#define MN_vmulph 0x23da
+#define MN_vminph 0x23e1
+#define MN_vrcpph 0x23e8
+#define MN_vcmpph 0x23ef
+#define MN_vgetexpph 0x23f6
+#define MN_vcmpunord_qph 0x2400
+#define MN_vcmpord_qph 0x240e
+#define MN_vcmpneqph 0x241a
+#define MN_vcmpeqph 0x2424
+#define MN_vcmpge_oqph 0x242d
+#define MN_vcmple_oqph 0x2439
+#define MN_vcmpfalse_oqph 0x2445
+#define MN_vcmpneq_oqph 0x2454
+#define MN_vcmpeq_oqph 0x2461
+#define MN_vcmpgt_oqph 0x246d
+#define MN_vcmplt_oqph 0x2479
+#define MN_vcmpnge_uqph 0x2485
+#define MN_vcmpnle_uqph 0x2492
+#define MN_vcmptrue_uqph 0x249f
+#define MN_vcmpneq_uqph 0x24ad
+#define MN_vcmpeq_uqph 0x24ba
+#define MN_vcmpngt_uqph 0x24c6
+#define MN_vcmpnlt_uqph 0x24d3
+#define MN_vcmpunord_sph 0x24e0
+#define MN_vcmpord_sph 0x24ee
+#define MN_vcmpge_osph 0x24fa
+#define MN_vcmple_osph 0x2506
+#define MN_vcmpfalse_osph 0x2512
+#define MN_vcmpneq_osph 0x2521
+#define MN_vcmpeq_osph 0x252e
+#define MN_vcmpgt_osph 0x253a
+#define MN_vcmplt_osph 0x2546
+#define MN_vfpclassph 0x2552
+#define MN_vcmpnge_usph 0x255d
+#define MN_vcmpnle_usph 0x256a
+#define MN_vcmptrue_usph 0x2577
+#define MN_vcmpneq_usph 0x2585
+#define MN_vcmpeq_usph 0x2592
+#define MN_vcmpngt_usph 0x259e
+#define MN_vcmpnlt_usph 0x25ab
+#define MN_vcmpngtph 0x25b8
+#define MN_vcmpgtph 0x25c2
+#define MN_vcmpnltph 0x25cb
+#define MN_vcmpltph 0x25d5
+#define MN_vgetmantph 0x25de
+#define MN_vrsqrtph 0x25e9
+#define MN_vsqrtph 0x25f2
+#define MN_vdivph 0x25fa
+#define MN_vminmaxph 0x2601
+#define MN_vmaxph 0x260b
+#define MN_vpmacsdqh 0x2612
+#define MN_vpmacssdqh 0x261c
+#define MN_vfmsub231sh 0x2627
+#define MN_vfnmsub231sh 0x2633
+#define MN_vfmadd231sh 0x2640
+#define MN_vfnmadd231sh 0x264c
+#define MN_vfmsub132sh 0x2659
+#define MN_vfnmsub132sh 0x2665
+#define MN_vfmadd132sh 0x2672
+#define MN_vfnmadd132sh 0x267e
+#define MN_vcvtsd2sh 0x268b
+#define MN_vcvtsi2sh 0x2695
+#define MN_vcvtusi2sh 0x269f
+#define MN_vcvtss2sh 0x26aa
+#define MN_vfmsub213sh 0x26b4
+#define MN_vfnmsub213sh 0x26c0
+#define MN_vfmadd213sh 0x26cd
+#define MN_vfnmadd213sh 0x26d9
+#define MN_psmash 0x26e6
+#define MN_vsubsh 0x26ed
+#define MN_vfcmaddcsh 0x26f4
+#define MN_vfmaddcsh 0x26ff
+#define MN_vfcmulcsh 0x2709
+#define MN_vfmulcsh 0x2713
+#define MN_vaddsh 0x271c
+#define MN_vcmpunordsh 0x2723
+#define MN_vcmpordsh 0x272f
+#define MN_vreducesh 0x2739
+#define MN_vcmpngesh 0x2743
+#define MN_vcmpgesh 0x274d
+#define MN_vrndscalesh 0x2756
+#define MN_vcmpnlesh 0x2762
+#define MN_vcmplesh 0x276c
+#define MN_vcmpfalsesh 0x2775
+#define MN_vcmptruesh 0x2781
+#define MN_vscalefsh 0x278c
+#define MN_vucomish 0x2796
+#define MN_vcomish 0x279f
+#define MN_vmulsh 0x27a7
+#define MN_vminsh 0x27ae
+#define MN_vrcpsh 0x27b5
+#define MN_vcmpsh 0x27bc
+#define MN_vgetexpsh 0x27c3
+#define MN_vcmpunord_qsh 0x27cd
+#define MN_vcmpord_qsh 0x27db
+#define MN_vcmpneqsh 0x27e7
+#define MN_vcmpeqsh 0x27f1
+#define MN_vcmpge_oqsh 0x27fa
+#define MN_vcmple_oqsh 0x2806
+#define MN_vcmpfalse_oqsh 0x2812
+#define MN_vcmpneq_oqsh 0x2821
+#define MN_vcmpeq_oqsh 0x282e
+#define MN_vcmpgt_oqsh 0x283a
+#define MN_vcmplt_oqsh 0x2846
+#define MN_vcmpnge_uqsh 0x2852
+#define MN_vcmpnle_uqsh 0x285f
+#define MN_vcmptrue_uqsh 0x286c
+#define MN_vcmpneq_uqsh 0x287a
+#define MN_vcmpeq_uqsh 0x2887
+#define MN_vcmpngt_uqsh 0x2893
+#define MN_vcmpnlt_uqsh 0x28a0
+#define MN_vcmpunord_ssh 0x28ad
+#define MN_vcmpord_ssh 0x28bb
+#define MN_vcmpge_ossh 0x28c7
+#define MN_vcmple_ossh 0x28d3
+#define MN_vcmpfalse_ossh 0x28df
+#define MN_vcmpneq_ossh 0x28ee
+#define MN_vcmpeq_ossh 0x28fb
+#define MN_vcmpgt_ossh 0x2907
+#define MN_vcmplt_ossh 0x2913
+#define MN_vfpclasssh 0x291f
+#define MN_vcmpnge_ussh 0x292a
+#define MN_vcmpnle_ussh 0x2937
+#define MN_vcmptrue_ussh 0x2944
+#define MN_vcmpneq_ussh 0x2952
+#define MN_vcmpeq_ussh 0x295f
+#define MN_vcmpngt_ussh 0x296b
+#define MN_vcmpnlt_ussh 0x2978
+#define MN_vcmpngtsh 0x2985
+#define MN_vcmpgtsh 0x298f
+#define MN_vcmpnltsh 0x2998
+#define MN_vcmpltsh 0x29a2
+#define MN_vgetmantsh 0x29ab
+#define MN_vrsqrtsh 0x29b6
+#define MN_vsqrtsh 0x29bf
+#define MN_clflush 0x29c7
+#define MN_push 0x29cf
+#define MN_vdivsh 0x29d4
+#define MN_vmovsh 0x29db
+#define MN_vminmaxsh 0x29e2
+#define MN_vmaxsh 0x29ec
+#define MN_vucomxsh 0x29f3
+#define MN_vcomxsh 0x29fc
+#define MN_blci 0x2a04
+#define MN_clgi 0x2a09
+#define MN_stgi 0x2a0e
+#define MN_bzhi 0x2a13
+#define MN_cli 0x2a18
+#define MN_fcomi 0x2a1c
+#define MN_fucomi 0x2a22
+#define MN_feni 0x2a29
+#define MN_fneni 0x2a2e
+#define MN_cvttpd2pi 0x2a34
+#define MN_cvtpd2pi 0x2a3e
+#define MN_cvttps2pi 0x2a47
+#define MN_cvtps2pi 0x2a51
+#define MN_fldpi 0x2a5a
+#define MN_senduipi 0x2a60
+#define MN_fcompi 0x2a69
+#define MN_fucompi 0x2a70
+#define MN_movdiri 0x2a78
#define MN_pcmpestri (MN_vpcmpestri + 1)
-#define MN_vpcmpestri 0x2a7c
+#define MN_vpcmpestri 0x2a80
#define MN_pcmpistri (MN_vpcmpistri + 1)
-#define MN_vpcmpistri 0x2a87
+#define MN_vpcmpistri 0x2a8b
#define MN_cvttsd2si (MN_vcvttsd2si + 1)
-#define MN_vcvttsd2si 0x2a92
+#define MN_vcvttsd2si 0x2a96
#define MN_cvtsd2si (MN_vcvtsd2si + 1)
-#define MN_vcvtsd2si 0x2a9d
-#define MN_vcvttsh2si 0x2aa7
-#define MN_vcvtsh2si 0x2ab2
+#define MN_vcvtsd2si 0x2aa1
+#define MN_vcvttsh2si 0x2aab
+#define MN_vcvtsh2si 0x2ab6
#define MN_cvttss2si (MN_vcvttss2si + 1)
-#define MN_vcvttss2si 0x2abc
+#define MN_vcvttss2si 0x2ac0
#define MN_cvtss2si (MN_vcvtss2si + 1)
-#define MN_vcvtss2si 0x2ac7
-#define MN_fdisi 0x2ad1
-#define MN_fndisi 0x2ad7
-#define MN_blsi 0x2ade
-#define MN_vcvttsd2usi 0x2ae3
-#define MN_vcvtsd2usi 0x2aef
-#define MN_vcvttsh2usi 0x2afa
-#define MN_vcvtsh2usi 0x2b06
-#define MN_vcvttss2usi 0x2b11
-#define MN_vcvtss2usi 0x2b1d
-#define MN_movnti 0x2b28
-#define MN_sti 0x2b2f
-#define MN_clui 0x2b33
+#define MN_vcvtss2si 0x2acb
+#define MN_fdisi 0x2ad5
+#define MN_fndisi 0x2adb
+#define MN_blsi 0x2ae2
+#define MN_vcvttsd2usi 0x2ae7
+#define MN_vcvtsd2usi 0x2af3
+#define MN_vcvttsh2usi 0x2afe
+#define MN_vcvtsh2usi 0x2b0a
+#define MN_vcvttss2usi 0x2b15
+#define MN_vcvtss2usi 0x2b21
+#define MN_movnti 0x2b2c
+#define MN_sti 0x2b33
+#define MN_clui 0x2b37
#define MN_stui (MN_testui + 2)
-#define MN_testui 0x2b38
-#define MN_notrack 0x2b3f
-#define MN_lock 0x2b47
-#define MN_bndmk 0x2b4c
-#define MN_xresldtrk 0x2b52
-#define MN_xsusldtrk 0x2b5c
-#define MN_blcmsk 0x2b66
-#define MN_blsmsk 0x2b6d
-#define MN_tzmsk 0x2b74
-#define MN_tcvtrowps2bf16l 0x2b7a
-#define MN_sal 0x2b8a
-#define MN_lwpval 0x2b8e
-#define MN_bndcl 0x2b95
-#define MN_rcl 0x2b9b
-#define MN_tcvtrowps2phl 0x2b9f
-#define MN_shl 0x2bad
-#define MN_jl 0x2bb1
-#define MN_aesdec256kl 0x2bb4
-#define MN_aesenc256kl 0x2bc0
-#define MN_aesdecwide256kl 0x2bcc
-#define MN_aesencwide256kl 0x2bdc
-#define MN_aesdec128kl 0x2bec
-#define MN_aesenc128kl 0x2bf8
-#define MN_aesdecwide128kl 0x2c04
-#define MN_aesencwide128kl 0x2c14
+#define MN_testui 0x2b3c
+#define MN_notrack 0x2b43
+#define MN_lock 0x2b4b
+#define MN_bndmk 0x2b50
+#define MN_xresldtrk 0x2b56
+#define MN_xsusldtrk 0x2b60
+#define MN_blcmsk 0x2b6a
+#define MN_blsmsk 0x2b71
+#define MN_tzmsk 0x2b78
+#define MN_tcvtrowps2bf16l 0x2b7e
+#define MN_sal 0x2b8e
+#define MN_lwpval 0x2b92
+#define MN_bndcl 0x2b99
+#define MN_rcl 0x2b9f
+#define MN_tcvtrowps2phl 0x2ba3
+#define MN_shl 0x2bb1
+#define MN_jl 0x2bb5
+#define MN_aesdec256kl 0x2bb8
+#define MN_aesenc256kl 0x2bc4
+#define MN_aesdecwide256kl 0x2bd0
+#define MN_aesencwide256kl 0x2be0
+#define MN_aesdec128kl 0x2bf0
+#define MN_aesenc128kl 0x2bfc
+#define MN_aesdecwide128kl 0x2c08
+#define MN_aesencwide128kl 0x2c18
#define MN_call (MN_tdcall + 2)
-#define MN_tdcall 0x2c24
-#define MN_lcall 0x2c2b
-#define MN_seamcall 0x2c31
-#define MN_vmmcall 0x2c3a
-#define MN_vmcall 0x2c42
-#define MN_syscall 0x2c49
-#define MN_vzeroall 0x2c51
-#define MN_fildll 0x2c5a
-#define MN_blcfill 0x2c61
-#define MN_blsfill 0x2c69
-#define MN_fistpll 0x2c71
-#define MN_fisttpll 0x2c79
-#define MN_jnl 0x2c82
-#define MN_ccmpnl 0x2c86
-#define MN_setnl 0x2c8d
-#define MN_ctestnl 0x2c93
-#define MN_setzunl 0x2c9b
+#define MN_tdcall 0x2c28
+#define MN_lcall 0x2c2f
+#define MN_seamcall 0x2c35
+#define MN_vmmcall 0x2c3e
+#define MN_vmcall 0x2c46
+#define MN_syscall 0x2c4d
+#define MN_vzeroall 0x2c55
+#define MN_fildll 0x2c5e
+#define MN_blcfill 0x2c65
+#define MN_blsfill 0x2c6d
+#define MN_fistpll 0x2c75
+#define MN_fisttpll 0x2c7d
+#define MN_jnl 0x2c86
+#define MN_ccmpnl 0x2c8a
+#define MN_setnl 0x2c91
+#define MN_ctestnl 0x2c97
+#define MN_setzunl 0x2c9f
#define MN_cmovnl (MN_cfcmovnl + 2)
-#define MN_cfcmovnl 0x2ca3
-#define MN_rol 0x2cac
-#define MN_ccmpl 0x2cb0
-#define MN_arpl 0x2cb6
-#define MN_vpmacsdql 0x2cbb
-#define MN_vpmacssdql 0x2cc5
-#define MN_lsl 0x2cd0
-#define MN_movsl 0x2cd4
-#define MN_setl 0x2cda
-#define MN_ctestl 0x2cdf
-#define MN_cwtl 0x2ce6
+#define MN_cfcmovnl 0x2ca7
+#define MN_rol 0x2cb0
+#define MN_ccmpl 0x2cb4
+#define MN_arpl 0x2cba
+#define MN_vpmacsdql 0x2cbf
+#define MN_vpmacssdql 0x2cc9
+#define MN_lsl 0x2cd4
+#define MN_movsl 0x2cd8
+#define MN_setl 0x2cde
+#define MN_ctestl 0x2ce3
+#define MN_cwtl 0x2cea
#define MN_mul (MN_fmul + 1)
#define MN_fmul (MN_pfmul + 1)
-#define MN_pfmul 0x2ceb
+#define MN_pfmul 0x2cef
#define MN_imul (MN_fimul + 1)
-#define MN_fimul 0x2cf1
-#define MN_montmul 0x2cf7
-#define MN_setzul 0x2cff
+#define MN_fimul 0x2cf5
+#define MN_montmul 0x2cfb
+#define MN_setzul 0x2d03
#define MN_cmovl (MN_cfcmovl + 2)
-#define MN_cfcmovl 0x2d06
-#define MN_vpmovb2m 0x2d0e
-#define MN_vpmovd2m 0x2d17
-#define MN_vpmovq2m 0x2d20
-#define MN_vpmovw2m 0x2d29
-#define MN_aam 0x2d32
-#define MN_fxam 0x2d36
-#define MN_fprem 0x2d3b
-#define MN_fcom 0x2d41
-#define MN_ficom 0x2d46
-#define MN_fucom 0x2d4c
-#define MN_fsetpm 0x2d52
-#define MN_fnsetpm 0x2d59
-#define MN_frstpm 0x2d61
-#define MN_vpperm 0x2d68
+#define MN_cfcmovl 0x2d0a
+#define MN_vpmovb2m 0x2d12
+#define MN_vpmovd2m 0x2d1b
+#define MN_vpmovq2m 0x2d24
+#define MN_vpmovw2m 0x2d2d
+#define MN_aam 0x2d36
+#define MN_fxam 0x2d3a
+#define MN_fprem 0x2d3f
+#define MN_fcom 0x2d45
+#define MN_ficom 0x2d4a
+#define MN_fucom 0x2d50
+#define MN_fsetpm 0x2d56
+#define MN_fnsetpm 0x2d5d
+#define MN_frstpm 0x2d65
+#define MN_vpperm 0x2d6c
#define MN_pcmpestrm (MN_vpcmpestrm + 1)
-#define MN_vpcmpestrm 0x2d6f
+#define MN_vpcmpestrm 0x2d73
#define MN_pcmpistrm (MN_vpcmpistrm + 1)
-#define MN_vpcmpistrm 0x2d7a
-#define MN_rsm 0x2d85
-#define MN_fpatan 0x2d89
-#define MN_fptan 0x2d90
-#define MN_bndcn 0x2d96
+#define MN_vpcmpistrm 0x2d7e
+#define MN_rsm 0x2d89
+#define MN_fpatan 0x2d8d
+#define MN_fptan 0x2d94
+#define MN_bndcn 0x2d9a
#define MN_andn (MN_pandn + 1)
#define MN_pandn (MN_vpandn + 1)
-#define MN_vpandn 0x2d9c
+#define MN_vpandn 0x2da0
#define MN_in (MN_xbegin + 4)
-#define MN_xbegin 0x2da3
-#define MN_pfmin 0x2daa
-#define MN_fsin 0x2db0
-#define MN_vmxon 0x2db5
-#define MN_vmrun 0x2dbb
-#define MN_jo 0x2dc1
-#define MN_jno 0x2dc4
-#define MN_ccmpno 0x2dc8
-#define MN_setno 0x2dcf
-#define MN_ctestno 0x2dd5
-#define MN_setzuno 0x2ddd
+#define MN_xbegin 0x2da7
+#define MN_pfmin 0x2dae
+#define MN_fsin 0x2db4
+#define MN_vmxon 0x2db9
+#define MN_vmrun 0x2dbf
+#define MN_jo 0x2dc5
+#define MN_jno 0x2dc8
+#define MN_ccmpno 0x2dcc
+#define MN_setno 0x2dd3
+#define MN_ctestno 0x2dd9
+#define MN_setzuno 0x2de1
#define MN_cmovno (MN_cfcmovno + 2)
-#define MN_cfcmovno 0x2de5
-#define MN_jpo 0x2dee
-#define MN_ccmpo 0x2df2
-#define MN_setpo 0x2df8
-#define MN_setzupo 0x2dfe
+#define MN_cfcmovno 0x2de9
+#define MN_jpo 0x2df2
+#define MN_ccmpo 0x2df6
+#define MN_setpo 0x2dfc
+#define MN_setzupo 0x2e02
#define MN_cmovpo (MN_cfcmovpo + 2)
-#define MN_cfcmovpo 0x2e06
-#define MN_cqo 0x2e0f
-#define MN_tilezero 0x2e13
-#define MN_clzero 0x2e1c
-#define MN_seto 0x2e23
-#define MN_into 0x2e28
-#define MN_cqto 0x2e2d
-#define MN_ctesto 0x2e32
-#define MN_ssto 0x2e39
-#define MN_setzuo 0x2e3e
+#define MN_cfcmovpo 0x2e0a
+#define MN_cqo 0x2e13
+#define MN_tilezero 0x2e17
+#define MN_clzero 0x2e20
+#define MN_seto 0x2e27
+#define MN_into 0x2e2c
+#define MN_cqto 0x2e31
+#define MN_ctesto 0x2e36
+#define MN_ssto 0x2e3d
+#define MN_setzuo 0x2e42
#define MN_cmovo (MN_cfcmovo + 2)
-#define MN_cfcmovo 0x2e45
-#define MN_push2p 0x2e4d
-#define MN_pop2p 0x2e54
-#define MN_bswap 0x2e5a
-#define MN_fsubp 0x2e60
-#define MN_pfrcp 0x2e66
-#define MN_rdtscp 0x2e6c
-#define MN_faddp 0x2e73
-#define MN_pdep 0x2e79
-#define MN_ffreep 0x2e7e
-#define MN_rep 0x2e85
-#define MN_pushp 0x2e89
-#define MN_fcomip 0x2e8f
-#define MN_fucomip 0x2e96
-#define MN_jp 0x2e9e
-#define MN_fmulp 0x2ea1
+#define MN_cfcmovo 0x2e49
+#define MN_push2p 0x2e51
+#define MN_pop2p 0x2e58
+#define MN_bswap 0x2e5e
+#define MN_fsubp 0x2e64
+#define MN_pfrcp 0x2e6a
+#define MN_rdtscp 0x2e70
+#define MN_faddp 0x2e77
+#define MN_pdep 0x2e7d
+#define MN_ffreep 0x2e82
+#define MN_rep 0x2e89
+#define MN_pushp 0x2e8d
+#define MN_fcomip 0x2e93
+#define MN_fucomip 0x2e9a
+#define MN_jp 0x2ea2
+#define MN_fmulp 0x2ea5
#define MN_cmp (MN_scmp + 1)
-#define MN_scmp 0x2ea7
+#define MN_scmp 0x2eab
#define MN_jmp (MN_ljmp + 1)
-#define MN_ljmp 0x2eac
-#define MN_fcomp 0x2eb1
-#define MN_ficomp 0x2eb7
-#define MN_fucomp 0x2ebe
-#define MN_jnp 0x2ec5
-#define MN_setnp 0x2ec9
-#define MN_setzunp 0x2ecf
+#define MN_ljmp 0x2eb0
+#define MN_fcomp 0x2eb5
+#define MN_ficomp 0x2ebb
+#define MN_fucomp 0x2ec2
+#define MN_jnp 0x2ec9
+#define MN_setnp 0x2ecd
+#define MN_setzunp 0x2ed3
#define MN_cmovnp (MN_cfcmovnp + 2)
-#define MN_cfcmovnp 0x2ed7
+#define MN_cfcmovnp 0x2edb
#define MN_nop (MN_fnop + 1)
-#define MN_fnop 0x2ee0
-#define MN_loop 0x2ee5
-#define MN_pop 0x2eea
-#define MN_fcompp 0x2eee
-#define MN_fucompp 0x2ef5
-#define MN_popp 0x2efd
-#define MN_fsubrp 0x2f02
-#define MN_fdivrp 0x2f09
-#define MN_rstorssp 0x2f10
-#define MN_saveprevssp 0x2f19
-#define MN_setp 0x2f25
-#define MN_fbstp 0x2f2a
-#define MN_fdecstp 0x2f30
-#define MN_fincstp 0x2f38
-#define MN_fstp 0x2f40
-#define MN_fistp 0x2f45
-#define MN_fisttp 0x2f4b
+#define MN_fnop 0x2ee4
+#define MN_loop 0x2ee9
+#define MN_pop 0x2eee
+#define MN_fcompp 0x2ef2
+#define MN_fucompp 0x2ef9
+#define MN_popp 0x2f01
+#define MN_fsubrp 0x2f06
+#define MN_fdivrp 0x2f0d
+#define MN_rstorssp 0x2f14
+#define MN_saveprevssp 0x2f1d
+#define MN_setp 0x2f29
+#define MN_fbstp 0x2f2e
+#define MN_fdecstp 0x2f34
+#define MN_fincstp 0x2f3c
+#define MN_fstp 0x2f44
+#define MN_fistp 0x2f49
+#define MN_fisttp 0x2f4f
#define MN_movddup (MN_vmovddup + 1)
-#define MN_vmovddup 0x2f52
+#define MN_vmovddup 0x2f56
#define MN_movshdup (MN_vmovshdup + 1)
-#define MN_vmovshdup 0x2f5b
+#define MN_vmovshdup 0x2f5f
#define MN_movsldup (MN_vmovsldup + 1)
-#define MN_vmovsldup 0x2f65
-#define MN_setzup 0x2f6f
-#define MN_fdivp 0x2f76
+#define MN_vmovsldup 0x2f69
+#define MN_setzup 0x2f73
+#define MN_fdivp 0x2f7a
#define MN_cmovp (MN_cfcmovp + 2)
-#define MN_cfcmovp 0x2f7c
-#define MN_xmodexp 0x2f84
-#define MN_vpbroadcastmb2q 0x2f8c
-#define MN_vpermi2q 0x2f9c
-#define MN_vpmovm2q 0x2fa5
-#define MN_movdq2q 0x2fae
-#define MN_vpermt2q 0x2fb6
-#define MN_vpshaq 0x2fbf
-#define MN_vpsraq 0x2fc6
-#define MN_vphaddbq 0x2fcd
-#define MN_vphaddubq 0x2fd6
+#define MN_cfcmovp 0x2f80
+#define MN_xmodexp 0x2f88
+#define MN_vpbroadcastmb2q 0x2f90
+#define MN_vpermi2q 0x2fa0
+#define MN_vpmovm2q 0x2fa9
+#define MN_movdq2q 0x2fb2
+#define MN_vpermt2q 0x2fba
+#define MN_vpshaq 0x2fc3
+#define MN_vpsraq 0x2fca
+#define MN_vphaddbq 0x2fd1
+#define MN_vphaddubq 0x2fda
#define MN_psubq (MN_vpsubq + 1)
-#define MN_vpsubq 0x2fe0
+#define MN_vpsubq 0x2fe4
#define MN_pmovsxbq (MN_vpmovsxbq + 1)
-#define MN_vpmovsxbq 0x2fe7
+#define MN_vpmovsxbq 0x2feb
#define MN_pmovzxbq (MN_vpmovzxbq + 1)
-#define MN_vpmovzxbq 0x2ff1
+#define MN_vpmovzxbq 0x2ff5
#define MN_cvttpd2dq (MN_vcvttpd2dq + 1)
-#define MN_vcvttpd2dq 0x2ffb
+#define MN_vcvttpd2dq 0x2fff
#define MN_cvtpd2dq (MN_vcvtpd2dq + 1)
-#define MN_vcvtpd2dq 0x3006
-#define MN_vcvttph2dq 0x3010
-#define MN_vcvtph2dq 0x301b
-#define MN_movq2dq 0x3025
+#define MN_vcvtpd2dq 0x300a
+#define MN_vcvttph2dq 0x3014
+#define MN_vcvtph2dq 0x301f
+#define MN_movq2dq 0x3029
#define MN_cvttps2dq (MN_vcvttps2dq + 1)
-#define MN_vcvttps2dq 0x302d
+#define MN_vcvttps2dq 0x3031
#define MN_cvtps2dq (MN_vcvtps2dq + 1)
-#define MN_vcvtps2dq 0x3038
-#define MN_vphsubdq 0x3042
-#define MN_cdq 0x304b
-#define MN_kaddq 0x304f
+#define MN_vcvtps2dq 0x303c
+#define MN_vphsubdq 0x3046
+#define MN_cdq 0x304f
+#define MN_kaddq 0x3053
#define MN_paddq (MN_vpaddq + 1)
-#define MN_vpaddq 0x3055
-#define MN_vphadddq 0x305c
+#define MN_vpaddq 0x3059
+#define MN_vphadddq 0x3060
#define MN_punpckhdq (MN_vpunpckhdq + 1)
-#define MN_vpunpckhdq 0x3065
-#define MN_kunpckdq 0x3070
-#define MN_vpshldq 0x3079
+#define MN_vpunpckhdq 0x3069
+#define MN_kunpckdq 0x3074
+#define MN_vpshldq 0x307d
#define MN_punpckldq (MN_vpunpckldq + 1)
-#define MN_vpunpckldq 0x3081
+#define MN_vpunpckldq 0x3085
#define MN_pslldq (MN_vpslldq + 1)
-#define MN_vpslldq 0x308c
+#define MN_vpslldq 0x3090
#define MN_psrldq (MN_vpsrldq + 1)
-#define MN_vpsrldq 0x3094
+#define MN_vpsrldq 0x3098
#define MN_pmuldq (MN_vpmuldq + 1)
-#define MN_vpmuldq 0x309c
-#define MN_kandq 0x30a4
-#define MN_vpandq 0x30aa
-#define MN_vpexpandq 0x30b1
+#define MN_vpmuldq 0x30a0
+#define MN_kandq 0x30a8
+#define MN_vpandq 0x30ae
+#define MN_vpexpandq 0x30b5
#define MN_punpckhqdq (MN_vpunpckhqdq + 1)
-#define MN_vpunpckhqdq 0x30bb
+#define MN_vpunpckhqdq 0x30bf
#define MN_pclmulhqhqdq (MN_vpclmulhqhqdq + 1)
-#define MN_vpclmulhqhqdq 0x30c7
+#define MN_vpclmulhqhqdq 0x30cb
#define MN_pclmullqhqdq (MN_vpclmullqhqdq + 1)
-#define MN_vpclmullqhqdq 0x30d5
+#define MN_vpclmullqhqdq 0x30d9
#define MN_punpcklqdq (MN_vpunpcklqdq + 1)
-#define MN_vpunpcklqdq 0x30e3
+#define MN_vpunpcklqdq 0x30e7
#define MN_pclmulhqlqdq (MN_vpclmulhqlqdq + 1)
-#define MN_vpclmulhqlqdq 0x30ef
+#define MN_vpclmulhqlqdq 0x30f3
#define MN_pclmullqlqdq (MN_vpclmullqlqdq + 1)
-#define MN_vpclmullqlqdq 0x30fd
+#define MN_vpclmullqlqdq 0x3101
#define MN_pclmulqdq (MN_vpclmulqdq + 1)
-#define MN_vpclmulqdq 0x310b
-#define MN_vpgatherdq 0x3116
-#define MN_vpscatterdq 0x3121
-#define MN_vpshrdq 0x312d
+#define MN_vpclmulqdq 0x310f
+#define MN_vpgatherdq 0x311a
+#define MN_vpscatterdq 0x3125
+#define MN_vpshrdq 0x3131
#define MN_movntdq (MN_vmovntdq + 1)
-#define MN_vmovntdq 0x3135
-#define MN_vcvttpd2udq 0x313e
-#define MN_vcvtpd2udq 0x314a
-#define MN_vcvttph2udq 0x3155
-#define MN_vcvtph2udq 0x3161
-#define MN_vcvttps2udq 0x316c
-#define MN_vcvtps2udq 0x3178
-#define MN_vphaddudq 0x3183
+#define MN_vmovntdq 0x3139
+#define MN_vcvttpd2udq 0x3142
+#define MN_vcvtpd2udq 0x314e
+#define MN_vcvttph2udq 0x3159
+#define MN_vcvtph2udq 0x3165
+#define MN_vcvttps2udq 0x3170
+#define MN_vcvtps2udq 0x317c
+#define MN_vphaddudq 0x3187
#define MN_pmuludq (MN_vpmuludq + 1)
-#define MN_vpmuludq 0x318d
+#define MN_vpmuludq 0x3191
#define MN_pmovsxdq (MN_vpmovsxdq + 1)
-#define MN_vpmovsxdq 0x3196
+#define MN_vpmovsxdq 0x319a
#define MN_pmovzxdq (MN_vpmovzxdq + 1)
-#define MN_vpmovzxdq 0x31a0
-#define MN_vpcomgeq 0x31aa
-#define MN_vpcomleq 0x31b3
-#define MN_vpcmpnleq 0x31bc
-#define MN_vpcmpleq 0x31c6
-#define MN_pfcmpeq 0x31cf
-#define MN_vpcomfalseq 0x31d7
-#define MN_vpcomtrueq 0x31e3
-#define MN_vpternlogq 0x31ee
-#define MN_vpshlq 0x31f9
+#define MN_vpmovzxdq 0x31a4
+#define MN_vpcomgeq 0x31ae
+#define MN_vpcomleq 0x31b7
+#define MN_vpcmpnleq 0x31c0
+#define MN_vpcmpleq 0x31ca
+#define MN_pfcmpeq 0x31d3
+#define MN_vpcomfalseq 0x31db
+#define MN_vpcomtrueq 0x31e7
+#define MN_vpternlogq 0x31f2
+#define MN_vpshlq 0x31fd
#define MN_psllq (MN_vpsllq + 1)
-#define MN_vpsllq 0x3200
-#define MN_vpmullq 0x3207
-#define MN_vprolq 0x320f
+#define MN_vpsllq 0x3204
+#define MN_vpmullq 0x320b
+#define MN_vprolq 0x3213
#define MN_psrlq (MN_vpsrlq + 1)
-#define MN_vpsrlq 0x3216
-#define MN_kshiftlq 0x321d
-#define MN_vpblendmq 0x3226
-#define MN_vptestnmq 0x3230
-#define MN_vpcomq 0x323a
-#define MN_vpermq 0x3241
-#define MN_vptestmq 0x3248
-#define MN_kandnq 0x3251
-#define MN_vpandnq 0x3258
-#define MN_valignq 0x3260
-#define MN_vpcmpq 0x3268
-#define MN_incsspq 0x326f
-#define MN_rdsspq 0x3277
-#define MN_vcvttpd2qq 0x327e
-#define MN_vcvtpd2qq 0x3289
-#define MN_vcvttph2qq 0x3293
-#define MN_vcvtph2qq 0x329e
-#define MN_vcvttps2qq 0x32a8
-#define MN_vcvtps2qq 0x32b3
-#define MN_vpcomeqq 0x32bd
-#define MN_vpcomneqq 0x32c6
-#define MN_vpcmpneqq 0x32d0
+#define MN_vpsrlq 0x321a
+#define MN_kshiftlq 0x3221
+#define MN_vpblendmq 0x322a
+#define MN_vptestnmq 0x3234
+#define MN_vpcomq 0x323e
+#define MN_vpermq 0x3245
+#define MN_vptestmq 0x324c
+#define MN_kandnq 0x3255
+#define MN_vpandnq 0x325c
+#define MN_valignq 0x3264
+#define MN_vpcmpq 0x326c
+#define MN_incsspq 0x3273
+#define MN_rdsspq 0x327b
+#define MN_vcvttpd2qq 0x3282
+#define MN_vcvtpd2qq 0x328d
+#define MN_vcvttph2qq 0x3297
+#define MN_vcvtph2qq 0x32a2
+#define MN_vcvttps2qq 0x32ac
+#define MN_vcvtps2qq 0x32b7
+#define MN_vpcomeqq 0x32c1
+#define MN_vpcomneqq 0x32ca
+#define MN_vpcmpneqq 0x32d4
#define MN_pcmpeqq (MN_vpcmpeqq + 1)
-#define MN_vpcmpeqq 0x32da
-#define MN_vpgatherqq 0x32e3
-#define MN_vpscatterqq 0x32ee
-#define MN_vcvttpd2uqq 0x32fa
-#define MN_vcvtpd2uqq 0x3306
-#define MN_vcvttph2uqq 0x3311
-#define MN_vcvtph2uqq 0x331d
-#define MN_vcvttps2uqq 0x3328
-#define MN_vcvtps2uqq 0x3334
-#define MN_korq 0x333f
-#define MN_kxnorq 0x3344
-#define MN_vporq 0x334b
-#define MN_vprorq 0x3351
-#define MN_kxorq 0x3358
-#define MN_vpxorq 0x335e
+#define MN_vpcmpeqq 0x32de
+#define MN_vpgatherqq 0x32e7
+#define MN_vpscatterqq 0x32f2
+#define MN_vcvttpd2uqq 0x32fe
+#define MN_vcvtpd2uqq 0x330a
+#define MN_vcvttph2uqq 0x3315
+#define MN_vcvtph2uqq 0x3321
+#define MN_vcvttps2uqq 0x332c
+#define MN_vcvtps2uqq 0x3338
+#define MN_korq 0x3343
+#define MN_kxnorq 0x3348
+#define MN_vporq 0x334f
+#define MN_vprorq 0x3355
+#define MN_kxorq 0x335c
+#define MN_vpxorq 0x3362
#define MN_pinsrq (MN_vpinsrq + 1)
-#define MN_vpinsrq 0x3365
-#define MN_kshiftrq 0x336d
+#define MN_vpinsrq 0x3369
+#define MN_kshiftrq 0x3371
#define MN_extrq (MN_pextrq + 1)
#define MN_pextrq (MN_vpextrq + 1)
-#define MN_vpextrq 0x3376
-#define MN_vpabsq 0x337e
-#define MN_vpminsq 0x3385
-#define MN_vmovrsq 0x338d
-#define MN_vpcompressq 0x3395
-#define MN_wrssq 0x33a1
-#define MN_wrussq 0x33a7
-#define MN_vpmaxsq 0x33ae
-#define MN_vp2intersectq 0x33b6
-#define MN_vpconflictq 0x33c4
-#define MN_vpcomgtq 0x33d0
+#define MN_vpextrq 0x337a
+#define MN_vpabsq 0x3382
+#define MN_vpminsq 0x3389
+#define MN_vmovrsq 0x3391
+#define MN_vpcompressq 0x3399
+#define MN_wrssq 0x33a5
+#define MN_wrussq 0x33ab
+#define MN_vpmaxsq 0x33b2
+#define MN_vp2intersectq 0x33ba
+#define MN_vpconflictq 0x33c8
+#define MN_vpcomgtq 0x33d4
#define MN_pcmpgtq (MN_vpcmpgtq + 1)
-#define MN_vpcmpgtq 0x33d9
-#define MN_cltq 0x33e2
-#define MN_vpcomltq 0x33e7
-#define MN_vpcmpnltq 0x33f0
-#define MN_vpcmpltq 0x33fa
-#define MN_vpopcntq 0x3403
-#define MN_vplzcntq 0x340c
-#define MN_movntq 0x3415
-#define MN_knotq 0x341c
-#define MN_vprotq 0x3422
-#define MN_insertq 0x3429
-#define MN_vpbroadcastq 0x3431
-#define MN_ktestq 0x343e
-#define MN_kortestq 0x3445
-#define MN_vpcomgeuq 0x344e
-#define MN_vpcomleuq 0x3458
-#define MN_vpcmpnleuq 0x3462
-#define MN_vpcmpleuq 0x346d
-#define MN_vpcomfalseuq 0x3477
-#define MN_vpcomtrueuq 0x3484
-#define MN_vpmadd52huq 0x3490
-#define MN_vpmadd52luq 0x349c
-#define MN_vpcomuq 0x34a8
-#define MN_vpminuq 0x34b0
-#define MN_vpcmpuq 0x34b8
-#define MN_vpcomequq 0x34c0
-#define MN_vpcomnequq 0x34ca
-#define MN_vpcmpnequq 0x34d5
-#define MN_vpcmpequq 0x34e0
-#define MN_vpcomgtuq 0x34ea
-#define MN_vpcomltuq 0x34f4
-#define MN_vpcmpnltuq 0x34fe
-#define MN_vpcmpltuq 0x3509
-#define MN_vpmaxuq 0x3513
-#define MN_vpsravq 0x351b
-#define MN_vpshldvq 0x3523
-#define MN_vpshrdvq 0x352c
-#define MN_vpsllvq 0x3535
-#define MN_vprolvq 0x353d
-#define MN_vpsrlvq 0x3545
+#define MN_vpcmpgtq 0x33dd
+#define MN_cltq 0x33e6
+#define MN_vpcomltq 0x33eb
+#define MN_vpcmpnltq 0x33f4
+#define MN_vpcmpltq 0x33fe
+#define MN_vpopcntq 0x3407
+#define MN_vplzcntq 0x3410
+#define MN_movntq 0x3419
+#define MN_knotq 0x3420
+#define MN_vprotq 0x3426
+#define MN_insertq 0x342d
+#define MN_vpbroadcastq 0x3435
+#define MN_ktestq 0x3442
+#define MN_kortestq 0x3449
+#define MN_vpcomgeuq 0x3452
+#define MN_vpcomleuq 0x345c
+#define MN_vpcmpnleuq 0x3466
+#define MN_vpcmpleuq 0x3471
+#define MN_vpcomfalseuq 0x347b
+#define MN_vpcomtrueuq 0x3488
+#define MN_vpmadd52huq 0x3494
+#define MN_vpmadd52luq 0x34a0
+#define MN_vpcomuq 0x34ac
+#define MN_vpminuq 0x34b4
+#define MN_vpcmpuq 0x34bc
+#define MN_vpcomequq 0x34c4
+#define MN_vpcomnequq 0x34ce
+#define MN_vpcmpnequq 0x34d9
+#define MN_vpcmpequq 0x34e4
+#define MN_vpcomgtuq 0x34ee
+#define MN_vpcomltuq 0x34f8
+#define MN_vpcmpnltuq 0x3502
+#define MN_vpcmpltuq 0x350d
+#define MN_vpmaxuq 0x3517
+#define MN_vpsravq 0x351f
+#define MN_vpshldvq 0x3527
+#define MN_vpshrdvq 0x3530
+#define MN_vpsllvq 0x3539
+#define MN_vprolvq 0x3541
+#define MN_vpsrlvq 0x3549
#define MN_movq (MN_kmovq + 1)
#define MN_kmovq (MN_maskmovq + 3)
#define MN_maskmovq (MN_vpmaskmovq + 2)
-#define MN_vpmaskmovq 0x354d
-#define MN_vmovq 0x3558
-#define MN_vprorvq 0x355e
-#define MN_vphaddwq 0x3566
-#define MN_vphadduwq 0x356f
+#define MN_vpmaskmovq 0x3551
+#define MN_vmovq 0x355c
+#define MN_vprorvq 0x3562
+#define MN_vphaddwq 0x356a
+#define MN_vphadduwq 0x3573
#define MN_pmovsxwq (MN_vpmovsxwq + 1)
-#define MN_vpmovsxwq 0x3579
+#define MN_vpmovsxwq 0x357d
#define MN_pmovzxwq (MN_vpmovzxwq + 1)
-#define MN_vpmovzxwq 0x3583
-#define MN_rex_r 0x358d
-#define MN_vmclear 0x3593
-#define MN_lar 0x359b
-#define MN_sar 0x359f
+#define MN_vpmovzxwq 0x3587
+#define MN_rex_r 0x3591
+#define MN_vmclear 0x3597
+#define MN_lar 0x359f
+#define MN_sar 0x35a3
#define MN_fsubr (MN_pfsubr + 1)
-#define MN_pfsubr 0x35a3
-#define MN_fisubr 0x35aa
-#define MN_rcr 0x35b1
-#define MN_vzeroupper 0x35b5
+#define MN_pfsubr 0x35a7
+#define MN_fisubr 0x35ae
+#define MN_rcr 0x35b5
+#define MN_vzeroupper 0x35b9
#define MN_enter (MN_sysenter + 3)
-#define MN_sysenter 0x35c0
-#define MN_shr 0x35c9
-#define MN_clr 0x35cd
+#define MN_sysenter 0x35c4
+#define MN_shr 0x35cd
+#define MN_clr 0x35d1
#define MN_palignr (MN_vpalignr + 1)
-#define MN_vpalignr 0x35d1
+#define MN_vpalignr 0x35d5
#define MN_or (MN_aor + 1)
-#define MN_aor 0x35da
+#define MN_aor 0x35de
#define MN_por (MN_vpor + 1)
-#define MN_vpor 0x35de
-#define MN_ror 0x35e3
+#define MN_vpor 0x35e2
+#define MN_ror 0x35e7
#define MN_monitor (MN_umonitor + 1)
-#define MN_umonitor 0x35e7
-#define MN_frstor 0x35f0
+#define MN_umonitor 0x35eb
+#define MN_frstor 0x35f4
#define MN_xrstor (MN_fxrstor + 1)
-#define MN_fxrstor 0x35f7
+#define MN_fxrstor 0x35fb
#define MN_xor (MN_axor + 1)
-#define MN_axor 0x35ff
+#define MN_axor 0x3603
#define MN_pxor (MN_vpxor + 1)
-#define MN_vpxor 0x3604
-#define MN_verr 0x360a
-#define MN_bsr 0x360f
+#define MN_vpxor 0x3608
+#define MN_verr 0x360e
+#define MN_bsr 0x3613
#define MN_ldmxcsr (MN_vldmxcsr + 1)
-#define MN_vldmxcsr 0x3613
+#define MN_vldmxcsr 0x3617
#define MN_stmxcsr (MN_vstmxcsr + 1)
-#define MN_vstmxcsr 0x361c
-#define MN_blsr 0x3625
+#define MN_vstmxcsr 0x3620
+#define MN_blsr 0x3629
#define MN_rdmsr (MN_urdmsr + 1)
-#define MN_urdmsr 0x362a
+#define MN_urdmsr 0x362e
#define MN_wrmsr (MN_uwrmsr + 1)
-#define MN_uwrmsr 0x3631
-#define MN_btr 0x3638
-#define MN_xcrypt_ctr 0x363c
-#define MN_xcryptctr 0x3647
-#define MN_ltr 0x3651
-#define MN_str 0x3655
-#define MN_bextr 0x3659
-#define MN_fdivr 0x365f
-#define MN_fidivr 0x3665
-#define MN_rex_wr 0x366c
-#define MN_vcvt2ph2bf8s 0x3673
-#define MN_vcvtbiasph2bf8s 0x3680
-#define MN_vcvtph2bf8s 0x3690
-#define MN_vcvt2ph2hf8s 0x369c
-#define MN_vcvtbiasph2hf8s 0x36a9
-#define MN_vcvtph2hf8s 0x36b9
-#define MN_aas 0x36c5
-#define MN_scas 0x36c9
-#define MN_das 0x36ce
-#define MN_fabs 0x36d2
-#define MN_jmpabs 0x36d7
-#define MN_movabs 0x36de
-#define MN_vcvttbf162ibs 0x36e5
-#define MN_vcvtbf162ibs 0x36f3
-#define MN_vcvttph2ibs 0x3700
-#define MN_vcvtph2ibs 0x370c
-#define MN_vcvttps2ibs 0x3717
-#define MN_vcvtps2ibs 0x3723
-#define MN_vcvttbf162iubs 0x372e
-#define MN_vcvtbf162iubs 0x373d
-#define MN_vcvttph2iubs 0x374b
-#define MN_vcvtph2iubs 0x3758
-#define MN_vcvttps2iubs 0x3764
-#define MN_vcvtps2iubs 0x3771
+#define MN_uwrmsr 0x3635
+#define MN_btr 0x363c
+#define MN_xcrypt_ctr 0x3640
+#define MN_xcryptctr 0x364b
+#define MN_ltr 0x3655
+#define MN_str 0x3659
+#define MN_bextr 0x365d
+#define MN_fdivr 0x3663
+#define MN_fidivr 0x3669
+#define MN_rex_wr 0x3670
+#define MN_vcvt2ph2bf8s 0x3677
+#define MN_vcvtbiasph2bf8s 0x3684
+#define MN_vcvtph2bf8s 0x3694
+#define MN_vcvt2ph2hf8s 0x36a0
+#define MN_vcvtbiasph2hf8s 0x36ad
+#define MN_vcvtph2hf8s 0x36bd
+#define MN_aas 0x36c9
+#define MN_scas 0x36cd
+#define MN_das 0x36d2
+#define MN_fabs 0x36d6
+#define MN_jmpabs 0x36db
+#define MN_movabs 0x36e2
+#define MN_vcvttbf162ibs 0x36e9
+#define MN_vcvtbf162ibs 0x36f7
+#define MN_vcvttph2ibs 0x3704
+#define MN_vcvtph2ibs 0x3710
+#define MN_vcvttps2ibs 0x371b
+#define MN_vcvtps2ibs 0x3727
+#define MN_vcvttbf162iubs 0x3732
+#define MN_vcvtbf162iubs 0x3741
+#define MN_vcvttph2iubs 0x374f
+#define MN_vcvtph2iubs 0x375c
+#define MN_vcvttps2iubs 0x3768
+#define MN_vcvtps2iubs 0x3775
#define MN_cs (MN_blcs + 2)
-#define MN_blcs 0x377d
+#define MN_blcs 0x3781
#define MN_ds (MN_lds + 1)
-#define MN_lds 0x3782
-#define MN_enqcmds 0x3786
-#define MN_lods 0x378e
-#define MN_vpdpbssds 0x3793
-#define MN_vp4dpwssds 0x379d
-#define MN_vpdpwssds 0x37a8
-#define MN_vpdpbusds 0x37b2
-#define MN_vpdpwusds 0x37bc
-#define MN_vpdpbsuds 0x37c6
-#define MN_vpdpwsuds 0x37d0
-#define MN_vpdpbuuds 0x37da
-#define MN_vpdpwuuds 0x37e4
+#define MN_lds 0x3786
+#define MN_enqcmds 0x378a
+#define MN_lods 0x3792
+#define MN_vpdpbssds 0x3797
+#define MN_vp4dpwssds 0x37a1
+#define MN_vpdpwssds 0x37ac
+#define MN_vpdpbusds 0x37b6
+#define MN_vpdpwusds 0x37c0
+#define MN_vpdpbsuds 0x37ca
+#define MN_vpdpwsuds 0x37d4
+#define MN_vpdpbuuds 0x37de
+#define MN_vpdpwuuds 0x37e8
#define MN_es (MN_les + 1)
-#define MN_les 0x37ee
-#define MN_xsaves 0x37f2
+#define MN_les 0x37f2
+#define MN_xsaves 0x37f6
#define MN_fs (MN_lfs + 1)
-#define MN_lfs 0x37f9
+#define MN_lfs 0x37fd
#define MN_gs (MN_lkgs + 2)
-#define MN_lkgs 0x37fd
-#define MN_lgs 0x3802
-#define MN_swapgs 0x3806
-#define MN_fchs 0x380d
-#define MN_vcvttsd2sis 0x3812
-#define MN_vcvttss2sis 0x381e
-#define MN_vcvttsd2usis 0x382a
-#define MN_vcvttss2usis 0x3837
-#define MN_js 0x3844
-#define MN_encls 0x3847
+#define MN_lkgs 0x3801
+#define MN_lgs 0x3806
+#define MN_swapgs 0x380a
+#define MN_fchs 0x3811
+#define MN_vcvttsd2sis 0x3816
+#define MN_vcvttss2sis 0x3822
+#define MN_vcvttsd2usis 0x382e
+#define MN_vcvttss2usis 0x383b
+#define MN_js 0x3848
+#define MN_encls 0x384b
#define MN_emms (MN_femms + 1)
-#define MN_femms 0x384d
+#define MN_femms 0x3851
#define MN_ins (MN_lwpins + 3)
-#define MN_lwpins 0x3853
-#define MN_jns 0x385a
-#define MN_ccmpns 0x385e
-#define MN_wrmsrns 0x3865
-#define MN_setns 0x386d
-#define MN_ctestns 0x3873
-#define MN_setzuns 0x387b
+#define MN_lwpins 0x3857
+#define MN_jns 0x385e
+#define MN_ccmpns 0x3862
+#define MN_wrmsrns 0x3869
+#define MN_setns 0x3871
+#define MN_ctestns 0x3877
+#define MN_setzuns 0x387f
#define MN_cmovns (MN_cfcmovns + 2)
-#define MN_cfcmovns 0x3883
-#define MN_fcos 0x388c
-#define MN_fsincos 0x3891
-#define MN_stos 0x3899
-#define MN_vfmaddsub231ps 0x389e
-#define MN_vfmsub231ps 0x38ad
-#define MN_vfnmsub231ps 0x38b9
-#define MN_vfmsubadd231ps 0x38c6
-#define MN_vfmadd231ps 0x38d5
-#define MN_vfnmadd231ps 0x38e1
-#define MN_vfmaddsub132ps 0x38ee
-#define MN_vfmsub132ps 0x38fd
-#define MN_vfnmsub132ps 0x3909
-#define MN_vfmsubadd132ps 0x3916
-#define MN_vfmadd132ps 0x3925
-#define MN_vfnmadd132ps 0x3931
+#define MN_cfcmovns 0x3887
+#define MN_fcos 0x3890
+#define MN_fsincos 0x3895
+#define MN_stos 0x389d
+#define MN_vfmaddsub231ps 0x38a2
+#define MN_vfmsub231ps 0x38b1
+#define MN_vfnmsub231ps 0x38bd
+#define MN_vfmsubadd231ps 0x38ca
+#define MN_vfmadd231ps 0x38d9
+#define MN_vfnmadd231ps 0x38e5
+#define MN_vfmaddsub132ps 0x38f2
+#define MN_vfmsub132ps 0x3901
+#define MN_vfnmsub132ps 0x390d
+#define MN_vfmsubadd132ps 0x391a
+#define MN_vfmadd132ps 0x3929
+#define MN_vfnmadd132ps 0x3935
#define MN_tmmultf32ps (MN_ttmmultf32ps + 1)
-#define MN_ttmmultf32ps 0x393e
-#define MN_vcvtneebf162ps 0x394b
-#define MN_vbcstnebf162ps 0x395a
-#define MN_vcvtneobf162ps 0x3969
+#define MN_ttmmultf32ps 0x3942
+#define MN_vcvtneebf162ps 0x394f
+#define MN_vbcstnebf162ps 0x395e
+#define MN_vcvtneobf162ps 0x396d
#define MN_cvtpd2ps (MN_vcvtpd2ps + 1)
-#define MN_vcvtpd2ps 0x3978
-#define MN_tcvtrowd2ps 0x3982
-#define MN_vcvtneeph2ps 0x398e
-#define MN_vcvtneoph2ps 0x399b
-#define MN_vcvtph2ps 0x39a8
-#define MN_vbcstnesh2ps 0x39b2
-#define MN_vpermi2ps 0x39bf
-#define MN_cvtpi2ps 0x39c9
-#define MN_vpermil2ps 0x39d2
-#define MN_vexp2ps 0x39dd
+#define MN_vcvtpd2ps 0x397c
+#define MN_tcvtrowd2ps 0x3986
+#define MN_vcvtneeph2ps 0x3992
+#define MN_vcvtneoph2ps 0x399f
+#define MN_vcvtph2ps 0x39ac
+#define MN_vbcstnesh2ps 0x39b6
+#define MN_vpermi2ps 0x39c3
+#define MN_cvtpi2ps 0x39cd
+#define MN_vpermil2ps 0x39d6
+#define MN_vexp2ps 0x39e1
#define MN_cvtdq2ps (MN_vcvtdq2ps + 1)
-#define MN_vcvtdq2ps 0x39e5
-#define MN_vcvtudq2ps 0x39ef
-#define MN_vcvtqq2ps 0x39fa
-#define MN_vcvtuqq2ps 0x3a04
-#define MN_vpermt2ps 0x3a0f
-#define MN_vfmaddsub213ps 0x3a19
-#define MN_vfmsub213ps 0x3a28
-#define MN_vfnmsub213ps 0x3a34
-#define MN_vfmsubadd213ps 0x3a41
-#define MN_vfmadd213ps 0x3a50
-#define MN_vfnmadd213ps 0x3a5c
-#define MN_vrcp14ps 0x3a69
-#define MN_vrsqrt14ps 0x3a72
+#define MN_vcvtdq2ps 0x39e9
+#define MN_vcvtudq2ps 0x39f3
+#define MN_vcvtqq2ps 0x39fe
+#define MN_vcvtuqq2ps 0x3a08
+#define MN_vpermt2ps 0x3a13
+#define MN_vfmaddsub213ps 0x3a1d
+#define MN_vfmsub213ps 0x3a2c
+#define MN_vfnmsub213ps 0x3a38
+#define MN_vfmsubadd213ps 0x3a45
+#define MN_vfmadd213ps 0x3a54
+#define MN_vfnmadd213ps 0x3a60
+#define MN_vrcp14ps 0x3a6d
+#define MN_vrsqrt14ps 0x3a76
#define MN_tdpbf16ps (MN_ttdpbf16ps + 1)
-#define MN_ttdpbf16ps 0x3a7d
-#define MN_vdpbf16ps 0x3a88
+#define MN_ttdpbf16ps 0x3a81
+#define MN_vdpbf16ps 0x3a8c
#define MN_tcmmrlfp16ps (MN_ttcmmrlfp16ps + 1)
-#define MN_ttcmmrlfp16ps 0x3a92
+#define MN_ttcmmrlfp16ps 0x3a96
#define MN_tcmmimfp16ps (MN_tconjtcmmimfp16ps + 5)
-#define MN_tconjtcmmimfp16ps 0x3aa0
-#define MN_ttcmmimfp16ps 0x3ab2
+#define MN_tconjtcmmimfp16ps 0x3aa4
+#define MN_ttcmmimfp16ps 0x3ab6
#define MN_tdpfp16ps (MN_ttdpfp16ps + 1)
-#define MN_ttdpfp16ps 0x3ac0
-#define MN_vrcp28ps 0x3acb
-#define MN_vrsqrt28ps 0x3ad4
-#define MN_tdphbf8ps 0x3adf
-#define MN_tdpbf8ps 0x3ae9
-#define MN_tdpbhf8ps 0x3af2
-#define MN_tdphf8ps 0x3afc
+#define MN_ttdpfp16ps 0x3ac4
+#define MN_vrcp28ps 0x3acf
+#define MN_vrsqrt28ps 0x3ad8
+#define MN_tdphbf8ps 0x3ae3
+#define MN_tdpbf8ps 0x3aed
+#define MN_tdpbhf8ps 0x3af6
+#define MN_tdphf8ps 0x3b00
#define MN_movaps (MN_vmovaps + 1)
-#define MN_vmovaps 0x3b05
+#define MN_vmovaps 0x3b09
#define MN_subps (MN_addsubps + 3)
#define MN_addsubps (MN_vfmaddsubps + 3)
-#define MN_vfmaddsubps 0x3b0d
-#define MN_vaddsubps 0x3b19
+#define MN_vfmaddsubps 0x3b11
+#define MN_vaddsubps 0x3b1d
#define MN_hsubps (MN_vhsubps + 1)
-#define MN_vhsubps 0x3b23
-#define MN_vfmsubps 0x3b2b
-#define MN_vfnmsubps 0x3b34
-#define MN_vsubps 0x3b3e
-#define MN_vgatherpf0dps 0x3b45
-#define MN_vscatterpf0dps 0x3b53
-#define MN_vgatherpf1dps 0x3b62
-#define MN_vscatterpf1dps 0x3b70
+#define MN_vhsubps 0x3b27
+#define MN_vfmsubps 0x3b2f
+#define MN_vfnmsubps 0x3b38
+#define MN_vsubps 0x3b42
+#define MN_vgatherpf0dps 0x3b49
+#define MN_vscatterpf0dps 0x3b57
+#define MN_vgatherpf1dps 0x3b66
+#define MN_vscatterpf1dps 0x3b74
#define MN_addps (MN_vfmsubaddps + 6)
-#define MN_vfmsubaddps 0x3b7f
+#define MN_vfmsubaddps 0x3b83
#define MN_haddps (MN_vhaddps + 1)
-#define MN_vhaddps 0x3b8b
-#define MN_v4fmaddps 0x3b93
-#define MN_vfmaddps 0x3b9d
-#define MN_v4fnmaddps 0x3ba6
-#define MN_vfnmaddps 0x3bb1
-#define MN_vaddps 0x3bbb
+#define MN_vhaddps 0x3b8f
+#define MN_v4fmaddps 0x3b97
+#define MN_vfmaddps 0x3ba1
+#define MN_v4fnmaddps 0x3baa
+#define MN_vfnmaddps 0x3bb5
+#define MN_vaddps 0x3bbf
#define MN_andps (MN_vexpandps + 4)
-#define MN_vexpandps 0x3bc2
-#define MN_vandps 0x3bcc
+#define MN_vexpandps 0x3bc6
+#define MN_vandps 0x3bd0
#define MN_blendps (MN_vblendps + 1)
-#define MN_vblendps 0x3bd3
+#define MN_vblendps 0x3bd7
#define MN_roundps (MN_vroundps + 1)
-#define MN_vroundps 0x3bdc
-#define MN_vgatherdps 0x3be5
-#define MN_vscatterdps 0x3bf0
+#define MN_vroundps 0x3be0
+#define MN_vgatherdps 0x3be9
+#define MN_vscatterdps 0x3bf4
#define MN_cmpunordps (MN_vcmpunordps + 1)
-#define MN_vcmpunordps 0x3bfc
+#define MN_vcmpunordps 0x3c00
#define MN_cmpordps (MN_vcmpordps + 1)
-#define MN_vcmpordps 0x3c08
-#define MN_vreduceps 0x3c12
-#define MN_vrangeps 0x3c1c
-#define MN_vcmpngeps 0x3c25
-#define MN_vcmpgeps 0x3c2f
-#define MN_vrndscaleps 0x3c38
+#define MN_vcmpordps 0x3c0c
+#define MN_vreduceps 0x3c16
+#define MN_vrangeps 0x3c20
+#define MN_vcmpngeps 0x3c29
+#define MN_vcmpgeps 0x3c33
+#define MN_vrndscaleps 0x3c3c
#define MN_cmpnleps (MN_vcmpnleps + 1)
-#define MN_vcmpnleps 0x3c44
+#define MN_vcmpnleps 0x3c48
#define MN_cmpleps (MN_vcmpleps + 1)
-#define MN_vcmpleps 0x3c4e
-#define MN_vcmpfalseps 0x3c57
-#define MN_vcmptrueps 0x3c63
-#define MN_vscalefps 0x3c6e
+#define MN_vcmpleps 0x3c52
+#define MN_vcmpfalseps 0x3c5b
+#define MN_vcmptrueps 0x3c67
+#define MN_vscalefps 0x3c72
#define MN_shufps (MN_vshufps + 1)
-#define MN_vshufps 0x3c78
+#define MN_vshufps 0x3c7c
#define MN_unpckhps (MN_vunpckhps + 1)
-#define MN_vunpckhps 0x3c80
+#define MN_vunpckhps 0x3c84
#define MN_movlhps (MN_vmovlhps + 1)
-#define MN_vmovlhps 0x3c8a
-#define MN_vdpphps 0x3c93
+#define MN_vmovlhps 0x3c8e
+#define MN_vdpphps 0x3c97
#define MN_movhps (MN_vmovhps + 1)
-#define MN_vmovhps 0x3c9b
+#define MN_vmovhps 0x3c9f
#define MN_movmskps (MN_vmovmskps + 1)
-#define MN_vmovmskps 0x3ca3
+#define MN_vmovmskps 0x3ca7
#define MN_movhlps (MN_vmovhlps + 1)
-#define MN_vmovhlps 0x3cad
-#define MN_vpermilps 0x3cb6
+#define MN_vmovhlps 0x3cb1
+#define MN_vpermilps 0x3cba
#define MN_unpcklps (MN_vunpcklps + 1)
-#define MN_vunpcklps 0x3cc0
+#define MN_vunpcklps 0x3cc4
#define MN_mulps (MN_vmulps + 1)
-#define MN_vmulps 0x3cca
+#define MN_vmulps 0x3cce
#define MN_movlps (MN_vmovlps + 1)
-#define MN_vmovlps 0x3cd1
+#define MN_vmovlps 0x3cd5
#define MN_cmps (MN_ccmps + 1)
-#define MN_ccmps 0x3cd9
-#define MN_vblendmps 0x3cdf
-#define MN_vfixupimmps 0x3ce9
-#define MN_vpermps 0x3cf5
+#define MN_ccmps 0x3cdd
+#define MN_vblendmps 0x3ce3
+#define MN_vfixupimmps 0x3ced
+#define MN_vpermps 0x3cf9
#define MN_andnps (MN_vandnps + 1)
-#define MN_vandnps 0x3cfd
+#define MN_vandnps 0x3d01
#define MN_minps (MN_vminps + 1)
-#define MN_vminps 0x3d05
-#define MN_seamops 0x3d0c
+#define MN_vminps 0x3d09
+#define MN_seamops 0x3d10
#define MN_rcpps (MN_vrcpps + 1)
-#define MN_vrcpps 0x3d14
+#define MN_vrcpps 0x3d18
#define MN_dpps (MN_vdpps + 1)
-#define MN_vdpps 0x3d1b
+#define MN_vdpps 0x3d1f
#define MN_cmpps (MN_vcmpps + 1)
-#define MN_vcmpps 0x3d21
-#define MN_vgetexpps 0x3d28
-#define MN_vgatherpf0qps 0x3d32
-#define MN_vscatterpf0qps 0x3d40
-#define MN_vgatherpf1qps 0x3d4f
-#define MN_vscatterpf1qps 0x3d5d
-#define MN_vcmpunord_qps 0x3d6c
-#define MN_vcmpord_qps 0x3d7a
+#define MN_vcmpps 0x3d25
+#define MN_vgetexpps 0x3d2c
+#define MN_vgatherpf0qps 0x3d36
+#define MN_vscatterpf0qps 0x3d44
+#define MN_vgatherpf1qps 0x3d53
+#define MN_vscatterpf1qps 0x3d61
+#define MN_vcmpunord_qps 0x3d70
+#define MN_vcmpord_qps 0x3d7e
#define MN_cmpneqps (MN_vcmpneqps + 1)
-#define MN_vcmpneqps 0x3d86
+#define MN_vcmpneqps 0x3d8a
#define MN_cmpeqps (MN_vcmpeqps + 1)
-#define MN_vcmpeqps 0x3d90
-#define MN_vcmpge_oqps 0x3d99
-#define MN_vcmple_oqps 0x3da5
-#define MN_vcmpfalse_oqps 0x3db1
-#define MN_vcmpneq_oqps 0x3dc0
-#define MN_vcmpeq_oqps 0x3dcd
-#define MN_vcmpgt_oqps 0x3dd9
-#define MN_vcmplt_oqps 0x3de5
-#define MN_vgatherqps 0x3df1
-#define MN_vscatterqps 0x3dfc
-#define MN_vcmpnge_uqps 0x3e08
-#define MN_vcmpnle_uqps 0x3e15
-#define MN_vcmptrue_uqps 0x3e22
-#define MN_vcmpneq_uqps 0x3e30
-#define MN_vcmpeq_uqps 0x3e3d
-#define MN_vcmpngt_uqps 0x3e49
-#define MN_vcmpnlt_uqps 0x3e56
+#define MN_vcmpeqps 0x3d94
+#define MN_vcmpge_oqps 0x3d9d
+#define MN_vcmple_oqps 0x3da9
+#define MN_vcmpfalse_oqps 0x3db5
+#define MN_vcmpneq_oqps 0x3dc4
+#define MN_vcmpeq_oqps 0x3dd1
+#define MN_vcmpgt_oqps 0x3ddd
+#define MN_vcmplt_oqps 0x3de9
+#define MN_vgatherqps 0x3df5
+#define MN_vscatterqps 0x3e00
+#define MN_vcmpnge_uqps 0x3e0c
+#define MN_vcmpnle_uqps 0x3e19
+#define MN_vcmptrue_uqps 0x3e26
+#define MN_vcmpneq_uqps 0x3e34
+#define MN_vcmpeq_uqps 0x3e41
+#define MN_vcmpngt_uqps 0x3e4d
+#define MN_vcmpnlt_uqps 0x3e5a
#define MN_orps (MN_vorps + 1)
-#define MN_vorps 0x3e63
+#define MN_vorps 0x3e67
#define MN_xorps (MN_vxorps + 1)
-#define MN_vxorps 0x3e69
-#define MN_vcmpunord_sps 0x3e70
-#define MN_vcmpord_sps 0x3e7e
-#define MN_vcmpge_osps 0x3e8a
-#define MN_vcmple_osps 0x3e96
-#define MN_vcmpfalse_osps 0x3ea2
-#define MN_vcmpneq_osps 0x3eb1
-#define MN_vcmpeq_osps 0x3ebe
-#define MN_vcmpgt_osps 0x3eca
-#define MN_vcmplt_osps 0x3ed6
-#define MN_vfpclassps 0x3ee2
-#define MN_vcompressps 0x3eed
-#define MN_vcmpnge_usps 0x3ef9
-#define MN_vcmpnle_usps 0x3f06
-#define MN_vcmptrue_usps 0x3f13
-#define MN_vcmpneq_usps 0x3f21
-#define MN_vcmpeq_usps 0x3f2e
-#define MN_vcmpngt_usps 0x3f3a
-#define MN_vcmpnlt_usps 0x3f47
+#define MN_vxorps 0x3e6d
+#define MN_vcmpunord_sps 0x3e74
+#define MN_vcmpord_sps 0x3e82
+#define MN_vcmpge_osps 0x3e8e
+#define MN_vcmple_osps 0x3e9a
+#define MN_vcmpfalse_osps 0x3ea6
+#define MN_vcmpneq_osps 0x3eb5
+#define MN_vcmpeq_osps 0x3ec2
+#define MN_vcmpgt_osps 0x3ece
+#define MN_vcmplt_osps 0x3eda
+#define MN_vfpclassps 0x3ee6
+#define MN_vcompressps 0x3ef1
+#define MN_vcmpnge_usps 0x3efd
+#define MN_vcmpnle_usps 0x3f0a
+#define MN_vcmptrue_usps 0x3f17
+#define MN_vcmpneq_usps 0x3f25
+#define MN_vcmpeq_usps 0x3f32
+#define MN_vcmpngt_usps 0x3f3e
+#define MN_vcmpnlt_usps 0x3f4b
#define MN_extractps (MN_vextractps + 1)
-#define MN_vextractps 0x3f54
-#define MN_vcmpngtps 0x3f5f
-#define MN_vcmpgtps 0x3f69
+#define MN_vextractps 0x3f58
+#define MN_vcmpngtps 0x3f63
+#define MN_vcmpgtps 0x3f6d
#define MN_cmpnltps (MN_vcmpnltps + 1)
-#define MN_vcmpnltps 0x3f72
+#define MN_vcmpnltps 0x3f76
#define MN_cmpltps (MN_vcmpltps + 1)
-#define MN_vcmpltps 0x3f7c
-#define MN_vgetmantps 0x3f85
+#define MN_vcmpltps 0x3f80
+#define MN_vgetmantps 0x3f89
#define MN_movntps (MN_vmovntps + 1)
-#define MN_vmovntps 0x3f90
+#define MN_vmovntps 0x3f94
#define MN_insertps (MN_vinsertps + 1)
-#define MN_vinsertps 0x3f99
+#define MN_vinsertps 0x3f9d
#define MN_sqrtps (MN_rsqrtps + 1)
#define MN_rsqrtps (MN_vrsqrtps + 1)
-#define MN_vrsqrtps 0x3fa3
-#define MN_vsqrtps 0x3fac
-#define MN_vtestps 0x3fb4
+#define MN_vrsqrtps 0x3fa7
+#define MN_vsqrtps 0x3fb0
+#define MN_vtestps 0x3fb8
#define MN_movups (MN_vmovups + 1)
-#define MN_vmovups 0x3fbc
+#define MN_vmovups 0x3fc0
#define MN_blendvps (MN_vblendvps + 1)
-#define MN_vblendvps 0x3fc4
+#define MN_vblendvps 0x3fc8
#define MN_divps (MN_vdivps + 1)
-#define MN_vdivps 0x3fce
-#define MN_vmaskmovps 0x3fd5
+#define MN_vdivps 0x3fd2
+#define MN_vmaskmovps 0x3fd9
#define MN_maxps (MN_vminmaxps + 4)
-#define MN_vminmaxps 0x3fe0
-#define MN_vmaxps 0x3fea
-#define MN_vfrczps 0x3ff1
-#define MN_vcvttpd2dqs 0x3ff9
-#define MN_vcvttps2dqs 0x4005
-#define MN_vcvttpd2udqs 0x4011
-#define MN_vcvttps2udqs 0x401e
-#define MN_vcvttpd2qqs 0x402b
-#define MN_vcvttps2qqs 0x4037
-#define MN_vcvttpd2uqqs 0x4043
-#define MN_vcvttps2uqqs 0x4050
-#define MN_t2rpntlvwz0rs 0x405d
-#define MN_t2rpntlvwz1rs 0x406b
-#define MN_tileloaddrs 0x4079
-#define MN_xrstors 0x4085
-#define MN_movrs 0x408d
+#define MN_vminmaxps 0x3fe4
+#define MN_vmaxps 0x3fee
+#define MN_vfrczps 0x3ff5
+#define MN_vcvttpd2dqs 0x3ffd
+#define MN_vcvttps2dqs 0x4009
+#define MN_vcvttpd2udqs 0x4015
+#define MN_vcvttps2udqs 0x4022
+#define MN_vcvttpd2qqs 0x402f
+#define MN_vcvttps2qqs 0x403b
+#define MN_vcvttpd2uqqs 0x4047
+#define MN_vcvttps2uqqs 0x4054
+#define MN_t2rpntlvwz0rs 0x4061
+#define MN_t2rpntlvwz1rs 0x406f
+#define MN_tileloaddrs 0x407d
+#define MN_xrstors 0x4089
+#define MN_movrs 0x4091
#define MN_ss (MN_vfmsub231ss + 9)
-#define MN_vfmsub231ss 0x4093
-#define MN_vfnmsub231ss 0x409f
-#define MN_vfmadd231ss 0x40ac
-#define MN_vfnmadd231ss 0x40b8
-#define MN_vfmsub132ss 0x40c5
-#define MN_vfnmsub132ss 0x40d1
-#define MN_vfmadd132ss 0x40de
-#define MN_vfnmadd132ss 0x40ea
+#define MN_vfmsub231ss 0x4097
+#define MN_vfnmsub231ss 0x40a3
+#define MN_vfmadd231ss 0x40b0
+#define MN_vfnmadd231ss 0x40bc
+#define MN_vfmsub132ss 0x40c9
+#define MN_vfnmsub132ss 0x40d5
+#define MN_vfmadd132ss 0x40e2
+#define MN_vfnmadd132ss 0x40ee
#define MN_cvtsd2ss (MN_vcvtsd2ss + 1)
-#define MN_vcvtsd2ss 0x40f7
-#define MN_vcvtsh2ss 0x4101
+#define MN_vcvtsd2ss 0x40fb
+#define MN_vcvtsh2ss 0x4105
#define MN_cvtsi2ss (MN_vcvtsi2ss + 1)
-#define MN_vcvtsi2ss 0x410b
-#define MN_vcvtusi2ss 0x4115
-#define MN_vfmsub213ss 0x4120
-#define MN_vfnmsub213ss 0x412c
-#define MN_vfmadd213ss 0x4139
-#define MN_vfnmadd213ss 0x4145
-#define MN_vrcp14ss 0x4152
-#define MN_vrsqrt14ss 0x415b
-#define MN_vrcp28ss 0x4166
-#define MN_vrsqrt28ss 0x416f
+#define MN_vcvtsi2ss 0x410f
+#define MN_vcvtusi2ss 0x4119
+#define MN_vfmsub213ss 0x4124
+#define MN_vfnmsub213ss 0x4130
+#define MN_vfmadd213ss 0x413d
+#define MN_vfnmadd213ss 0x4149
+#define MN_vrcp14ss 0x4156
+#define MN_vrsqrt14ss 0x415f
+#define MN_vrcp28ss 0x416a
+#define MN_vrsqrt28ss 0x4173
#define MN_subss (MN_vfmsubss + 3)
-#define MN_vfmsubss 0x417a
-#define MN_vfnmsubss 0x4183
-#define MN_vsubss 0x418d
+#define MN_vfmsubss 0x417e
+#define MN_vfnmsubss 0x4187
+#define MN_vsubss 0x4191
#define MN_addss (MN_v4fmaddss + 4)
-#define MN_v4fmaddss 0x4194
-#define MN_vfmaddss 0x419e
-#define MN_v4fnmaddss 0x41a7
-#define MN_vfnmaddss 0x41b2
-#define MN_vaddss 0x41bc
+#define MN_v4fmaddss 0x4198
+#define MN_vfmaddss 0x41a2
+#define MN_v4fnmaddss 0x41ab
+#define MN_vfnmaddss 0x41b6
+#define MN_vaddss 0x41c0
#define MN_roundss (MN_vroundss + 1)
-#define MN_vroundss 0x41c3
+#define MN_vroundss 0x41c7
#define MN_cmpunordss (MN_vcmpunordss + 1)
-#define MN_vcmpunordss 0x41cc
+#define MN_vcmpunordss 0x41d0
#define MN_cmpordss (MN_vcmpordss + 1)
-#define MN_vcmpordss 0x41d8
-#define MN_vreducess 0x41e2
-#define MN_vrangess 0x41ec
-#define MN_vcmpngess 0x41f5
-#define MN_vcmpgess 0x41ff
-#define MN_vrndscaless 0x4208
+#define MN_vcmpordss 0x41dc
+#define MN_vreducess 0x41e6
+#define MN_vrangess 0x41f0
+#define MN_vcmpngess 0x41f9
+#define MN_vcmpgess 0x4203
+#define MN_vrndscaless 0x420c
#define MN_cmpnless (MN_vcmpnless + 1)
-#define MN_vcmpnless 0x4214
+#define MN_vcmpnless 0x4218
#define MN_cmpless (MN_vcmpless + 1)
-#define MN_vcmpless 0x421e
-#define MN_vcmpfalsess 0x4227
-#define MN_vcmptruess 0x4233
-#define MN_vscalefss 0x423e
+#define MN_vcmpless 0x4222
+#define MN_vcmpfalsess 0x422b
+#define MN_vcmptruess 0x4237
+#define MN_vscalefss 0x4242
#define MN_comiss (MN_ucomiss + 1)
#define MN_ucomiss (MN_vucomiss + 1)
-#define MN_vucomiss 0x4248
-#define MN_vcomiss 0x4251
+#define MN_vucomiss 0x424c
+#define MN_vcomiss 0x4255
#define MN_lss (MN_mulss + 2)
#define MN_mulss (MN_vmulss + 1)
-#define MN_vmulss 0x4259
-#define MN_vfixupimmss 0x4260
+#define MN_vmulss 0x425d
+#define MN_vfixupimmss 0x4264
#define MN_minss (MN_vminss + 1)
-#define MN_vminss 0x426c
+#define MN_vminss 0x4270
#define MN_rcpss (MN_vrcpss + 1)
-#define MN_vrcpss 0x4273
+#define MN_vrcpss 0x4277
#define MN_cmpss (MN_vcmpss + 1)
-#define MN_vcmpss 0x427a
-#define MN_vgetexpss 0x4281
-#define MN_vcmpunord_qss 0x428b
-#define MN_vcmpord_qss 0x4299
+#define MN_vcmpss 0x427e
+#define MN_vgetexpss 0x4285
+#define MN_vcmpunord_qss 0x428f
+#define MN_vcmpord_qss 0x429d
#define MN_cmpneqss (MN_vcmpneqss + 1)
-#define MN_vcmpneqss 0x42a5
+#define MN_vcmpneqss 0x42a9
#define MN_cmpeqss (MN_vcmpeqss + 1)
-#define MN_vcmpeqss 0x42af
-#define MN_vcmpge_oqss 0x42b8
-#define MN_vcmple_oqss 0x42c4
-#define MN_vcmpfalse_oqss 0x42d0
-#define MN_vcmpneq_oqss 0x42df
-#define MN_vcmpeq_oqss 0x42ec
-#define MN_vcmpgt_oqss 0x42f8
-#define MN_vcmplt_oqss 0x4304
-#define MN_vcmpnge_uqss 0x4310
-#define MN_vcmpnle_uqss 0x431d
-#define MN_vcmptrue_uqss 0x432a
-#define MN_vcmpneq_uqss 0x4338
-#define MN_vcmpeq_uqss 0x4345
-#define MN_vcmpngt_uqss 0x4351
-#define MN_vcmpnlt_uqss 0x435e
-#define MN_vcmpunord_sss 0x436b
-#define MN_vcmpord_sss 0x4379
-#define MN_vcmpge_osss 0x4385
-#define MN_vcmple_osss 0x4391
-#define MN_vcmpfalse_osss 0x439d
-#define MN_vcmpneq_osss 0x43ac
-#define MN_vcmpeq_osss 0x43b9
-#define MN_vcmpgt_osss 0x43c5
-#define MN_vcmplt_osss 0x43d1
-#define MN_vfpclassss 0x43dd
-#define MN_vcmpnge_usss 0x43e8
-#define MN_vcmpnle_usss 0x43f5
-#define MN_vcmptrue_usss 0x4402
-#define MN_vcmpneq_usss 0x4410
-#define MN_vcmpeq_usss 0x441d
-#define MN_vcmpngt_usss 0x4429
-#define MN_vcmpnlt_usss 0x4436
-#define MN_vcmpngtss 0x4443
-#define MN_vcmpgtss 0x444d
+#define MN_vcmpeqss 0x42b3
+#define MN_vcmpge_oqss 0x42bc
+#define MN_vcmple_oqss 0x42c8
+#define MN_vcmpfalse_oqss 0x42d4
+#define MN_vcmpneq_oqss 0x42e3
+#define MN_vcmpeq_oqss 0x42f0
+#define MN_vcmpgt_oqss 0x42fc
+#define MN_vcmplt_oqss 0x4308
+#define MN_vcmpnge_uqss 0x4314
+#define MN_vcmpnle_uqss 0x4321
+#define MN_vcmptrue_uqss 0x432e
+#define MN_vcmpneq_uqss 0x433c
+#define MN_vcmpeq_uqss 0x4349
+#define MN_vcmpngt_uqss 0x4355
+#define MN_vcmpnlt_uqss 0x4362
+#define MN_vcmpunord_sss 0x436f
+#define MN_vcmpord_sss 0x437d
+#define MN_vcmpge_osss 0x4389
+#define MN_vcmple_osss 0x4395
+#define MN_vcmpfalse_osss 0x43a1
+#define MN_vcmpneq_osss 0x43b0
+#define MN_vcmpeq_osss 0x43bd
+#define MN_vcmpgt_osss 0x43c9
+#define MN_vcmplt_osss 0x43d5
+#define MN_vfpclassss 0x43e1
+#define MN_vcmpnge_usss 0x43ec
+#define MN_vcmpnle_usss 0x43f9
+#define MN_vcmptrue_usss 0x4406
+#define MN_vcmpneq_usss 0x4414
+#define MN_vcmpeq_usss 0x4421
+#define MN_vcmpngt_usss 0x442d
+#define MN_vcmpnlt_usss 0x443a
+#define MN_vcmpngtss 0x4447
+#define MN_vcmpgtss 0x4451
#define MN_cmpnltss (MN_vcmpnltss + 1)
-#define MN_vcmpnltss 0x4456
+#define MN_vcmpnltss 0x445a
#define MN_cmpltss (MN_vcmpltss + 1)
-#define MN_vcmpltss 0x4460
-#define MN_vgetmantss 0x4469
-#define MN_movntss 0x4474
+#define MN_vcmpltss 0x4464
+#define MN_vgetmantss 0x446d
+#define MN_movntss 0x4478
#define MN_sqrtss (MN_rsqrtss + 1)
#define MN_rsqrtss (MN_vrsqrtss + 1)
-#define MN_vrsqrtss 0x447c
-#define MN_vsqrtss 0x4485
-#define MN_vbroadcastss 0x448d
+#define MN_vrsqrtss 0x4480
+#define MN_vsqrtss 0x4489
+#define MN_vbroadcastss 0x4491
#define MN_divss (MN_vdivss + 1)
-#define MN_vdivss 0x449a
+#define MN_vdivss 0x449e
#define MN_movss (MN_vmovss + 1)
-#define MN_vmovss 0x44a1
+#define MN_vmovss 0x44a5
#define MN_maxss (MN_vminmaxss + 4)
-#define MN_vminmaxss 0x44a8
-#define MN_vmaxss 0x44b2
-#define MN_vucomxss 0x44b9
-#define MN_vcomxss 0x44c2
-#define MN_vfrczss 0x44ca
-#define MN_bts 0x44d2
-#define MN_erets 0x44d6
-#define MN_sets 0x44dc
-#define MN_clts 0x44e1
-#define MN_ctests 0x44e6
-#define MN_outs 0x44ed
-#define MN_setzus 0x44f2
+#define MN_vminmaxss 0x44ac
+#define MN_vmaxss 0x44b6
+#define MN_vucomxss 0x44bd
+#define MN_vcomxss 0x44c6
+#define MN_vfrczss 0x44ce
+#define MN_bts 0x44d6
+#define MN_erets 0x44da
+#define MN_sets 0x44e0
+#define MN_clts 0x44e5
+#define MN_ctests 0x44ea
+#define MN_outs 0x44f1
+#define MN_setzus 0x44f6
#define MN_movs (MN_cmovs + 1)
#define MN_cmovs (MN_cfcmovs + 2)
-#define MN_cfcmovs 0x44f9
-#define MN_fldl2t 0x4501
-#define MN_xlat 0x4508
-#define MN_bt 0x450d
-#define MN_fxtract 0x4510
-#define MN_lgdt 0x4518
-#define MN_sgdt 0x451d
-#define MN_lidt 0x4522
-#define MN_sidt 0x4527
-#define MN_fldt 0x452c
-#define MN_lldt 0x4531
-#define MN_sldt 0x4536
+#define MN_cfcmovs 0x44fd
+#define MN_fldl2t 0x4505
+#define MN_xlat 0x450c
+#define MN_bt 0x4511
+#define MN_fxtract 0x4514
+#define MN_lgdt 0x451c
+#define MN_sgdt 0x4521
+#define MN_lidt 0x4526
+#define MN_sidt 0x452b
+#define MN_fldt 0x4530
+#define MN_lldt 0x4535
+#define MN_sldt 0x453a
#define MN_ret (MN_iret + 1)
#define MN_iret (MN_uiret + 1)
-#define MN_uiret 0x453b
-#define MN_lret 0x4541
-#define MN_seamret 0x4546
-#define MN_sysret 0x454e
-#define MN_hreset 0x4555
-#define MN_pfcmpgt 0x455c
-#define MN_ht 0x4564
+#define MN_uiret 0x453f
+#define MN_lret 0x4545
+#define MN_seamret 0x454a
+#define MN_sysret 0x4552
+#define MN_hreset 0x4559
+#define MN_pfcmpgt 0x4560
+#define MN_ht 0x4568
#define MN_wait (MN_fwait + 1)
-#define MN_fwait 0x4567
+#define MN_fwait 0x456b
#define MN_mwait (MN_umwait + 1)
-#define MN_umwait 0x456d
-#define MN_mcommit 0x4574
-#define MN_finit 0x457c
-#define MN_skinit 0x4582
-#define MN_fninit 0x4589
-#define MN_vmgexit 0x4590
-#define MN_sysexit 0x4598
-#define MN_hlt 0x45a0
-#define MN_popcnt 0x45a4
-#define MN_lzcnt 0x45ab
-#define MN_tzcnt 0x45b1
-#define MN_hnt 0x45b7
+#define MN_umwait 0x4571
+#define MN_mcommit 0x4578
+#define MN_finit 0x4580
+#define MN_skinit 0x4586
+#define MN_fninit 0x458d
+#define MN_vmgexit 0x4594
+#define MN_sysexit 0x459c
+#define MN_hlt 0x45a4
+#define MN_popcnt 0x45a8
+#define MN_lzcnt 0x45af
+#define MN_tzcnt 0x45b5
+#define MN_hnt 0x45bb
#define MN_int (MN_frndint + 4)
-#define MN_frndint 0x45bb
-#define MN_not 0x45c3
-#define MN_invept 0x45c7
-#define MN_ccmpt 0x45ce
-#define MN_xsaveopt 0x45d4
-#define MN_clflushopt 0x45dd
-#define MN_fstpt 0x45e8
-#define MN_xabort 0x45ee
-#define MN_fsqrt 0x45f5
-#define MN_pfrsqrt 0x45fb
+#define MN_frndint 0x45bf
+#define MN_not 0x45c7
+#define MN_invept 0x45cb
+#define MN_ccmpt 0x45d2
+#define MN_xsaveopt 0x45d8
+#define MN_clflushopt 0x45e1
+#define MN_fstpt 0x45ec
+#define MN_xabort 0x45f2
+#define MN_fsqrt 0x45f9
+#define MN_pfrsqrt 0x45ff
#define MN_aesdeclast (MN_vaesdeclast + 1)
-#define MN_vaesdeclast 0x4603
+#define MN_vaesdeclast 0x4607
#define MN_aesenclast (MN_vaesenclast + 1)
-#define MN_vaesenclast 0x460f
+#define MN_vaesenclast 0x4613
#define MN_test (MN_ptest + 1)
#define MN_ptest (MN_vptest + 1)
-#define MN_vptest 0x461b
-#define MN_xtest 0x4622
-#define MN_fst 0x4628
-#define MN_fist 0x462c
-#define MN_rdmsrlist 0x4631
-#define MN_wrmsrlist 0x463b
+#define MN_vptest 0x461f
+#define MN_xtest 0x4626
+#define MN_fst 0x462c
+#define MN_fist 0x4630
+#define MN_rdmsrlist 0x4635
+#define MN_wrmsrlist 0x463f
#define MN_aeskeygenassist (MN_vaeskeygenassist + 1)
-#define MN_vaeskeygenassist 0x4645
-#define MN_vmptrst 0x4656
-#define MN_ftst 0x465e
-#define MN_rmpadjust 0x4663
-#define MN_ctestt 0x466d
-#define MN_out 0x4674
-#define MN_pext 0x4678
-#define MN_bndcu 0x467d
-#define MN_enclu 0x4683
-#define MN_fcmovnu 0x4689
+#define MN_vaeskeygenassist 0x4649
+#define MN_vmptrst 0x465a
+#define MN_ftst 0x4662
+#define MN_rmpadjust 0x4667
+#define MN_ctestt 0x4671
+#define MN_out 0x4678
+#define MN_pext 0x467c
+#define MN_bndcu 0x4681
+#define MN_enclu 0x4687
+#define MN_fcmovnu 0x468d
#define MN_lddqu (MN_vlddqu + 1)
-#define MN_vlddqu 0x4691
+#define MN_vlddqu 0x4695
#define MN_movdqu (MN_maskmovdqu + 4)
#define MN_maskmovdqu (MN_vmaskmovdqu + 1)
-#define MN_vmaskmovdqu 0x4698
-#define MN_vmovdqu 0x46a4
-#define MN_rdpkru 0x46ac
-#define MN_wrpkru 0x46b3
-#define MN_rdpru 0x46ba
-#define MN_eretu 0x46c0
-#define MN_fcmovu 0x46c6
-#define MN_imulzu 0x46cd
-#define MN_xgetbv 0x46d4
-#define MN_xsetbv 0x46db
+#define MN_vmaskmovdqu 0x469c
+#define MN_vmovdqu 0x46a8
+#define MN_rdpkru 0x46b0
+#define MN_wrpkru 0x46b7
+#define MN_rdpru 0x46be
+#define MN_eretu 0x46c4
+#define MN_fcmovu 0x46ca
+#define MN_imulzu 0x46d1
+#define MN_xgetbv 0x46d8
+#define MN_xsetbv 0x46df
#define MN_div (MN_fdiv + 1)
-#define MN_fdiv 0x46e2
+#define MN_fdiv 0x46e6
#define MN_idiv (MN_fidiv + 1)
-#define MN_fidiv 0x46e7
-#define MN_enclv 0x46ed
-#define MN_fldenv 0x46f3
-#define MN_fstenv 0x46fa
-#define MN_fnstenv 0x4701
+#define MN_fidiv 0x46eb
+#define MN_enclv 0x46f1
+#define MN_fldenv 0x46f7
+#define MN_fstenv 0x46fe
+#define MN_fnstenv 0x4705
#define MN_mov (MN_vpcmov + 3)
-#define MN_vpcmov 0x4709
-#define MN_bndmov 0x4710
-#define MN_smov 0x4717
-#define MN_rex_w 0x471c
-#define MN_vcvttph2w 0x4722
-#define MN_vcvtph2w 0x472c
-#define MN_vpermi2w 0x4735
-#define MN_vpmovm2w 0x473e
-#define MN_vpermt2w 0x4747
-#define MN_vpshaw 0x4750
+#define MN_vpcmov 0x470d
+#define MN_bndmov 0x4714
+#define MN_smov 0x471b
+#define MN_rex_w 0x4720
+#define MN_vcvttph2w 0x4726
+#define MN_vcvtph2w 0x4730
+#define MN_vpermi2w 0x4739
+#define MN_vpmovm2w 0x4742
+#define MN_vpermt2w 0x474b
+#define MN_vpshaw 0x4754
#define MN_psraw (MN_vpsraw + 1)
-#define MN_vpsraw 0x4757
-#define MN_vphsubbw 0x475e
-#define MN_cbw 0x4767
+#define MN_vpsraw 0x475b
+#define MN_vphsubbw 0x4762
+#define MN_cbw 0x476b
#define MN_psadbw (MN_vdbpsadbw + 3)
-#define MN_vdbpsadbw 0x476b
+#define MN_vdbpsadbw 0x476f
#define MN_mpsadbw (MN_vmpsadbw + 1)
-#define MN_vmpsadbw 0x4775
-#define MN_vpsadbw 0x477e
-#define MN_vphaddbw 0x4786
+#define MN_vmpsadbw 0x4779
+#define MN_vpsadbw 0x4782
+#define MN_vphaddbw 0x478a
#define MN_punpckhbw (MN_vpunpckhbw + 1)
-#define MN_vpunpckhbw 0x478f
-#define MN_kunpckbw 0x479a
+#define MN_vpunpckhbw 0x4793
+#define MN_kunpckbw 0x479e
#define MN_punpcklbw (MN_vpunpcklbw + 1)
-#define MN_vpunpcklbw 0x47a3
-#define MN_vphaddubw 0x47ae
+#define MN_vpunpcklbw 0x47a7
+#define MN_vphaddubw 0x47b2
#define MN_phsubw (MN_vphsubw + 1)
-#define MN_vphsubw 0x47b8
+#define MN_vphsubw 0x47bc
#define MN_psubw (MN_vpsubw + 1)
-#define MN_vpsubw 0x47c0
+#define MN_vpsubw 0x47c4
#define MN_pmovsxbw (MN_vpmovsxbw + 1)
-#define MN_vpmovsxbw 0x47c7
+#define MN_vpmovsxbw 0x47cb
#define MN_pmovzxbw (MN_vpmovzxbw + 1)
-#define MN_vpmovzxbw 0x47d1
-#define MN_fldcw 0x47db
-#define MN_fstcw 0x47e1
-#define MN_fnstcw 0x47e7
+#define MN_vpmovzxbw 0x47d5
+#define MN_fldcw 0x47df
+#define MN_fstcw 0x47e5
+#define MN_fnstcw 0x47eb
#define MN_phaddw (MN_vphaddw + 1)
-#define MN_vphaddw 0x47ee
-#define MN_kaddw 0x47f6
+#define MN_vphaddw 0x47f2
+#define MN_kaddw 0x47fa
#define MN_paddw (MN_vpaddw + 1)
-#define MN_vpaddw 0x47fc
-#define MN_vpshldw 0x4803
-#define MN_kandw 0x480b
-#define MN_vpexpandw 0x4811
+#define MN_vpaddw 0x4800
+#define MN_vpshldw 0x4807
+#define MN_kandw 0x480f
+#define MN_vpexpandw 0x4815
#define MN_pblendw (MN_vpblendw + 1)
-#define MN_vpblendw 0x481b
-#define MN_vpshrdw 0x4824
+#define MN_vpblendw 0x481f
+#define MN_vpshrdw 0x4828
#define MN_packssdw (MN_vpackssdw + 1)
-#define MN_vpackssdw 0x482c
+#define MN_vpackssdw 0x4830
#define MN_packusdw (MN_vpackusdw + 1)
-#define MN_vpackusdw 0x4836
-#define MN_vpmovusdw 0x4840
-#define MN_vpmovsdw 0x484a
-#define MN_vpmovdw 0x4853
-#define MN_vpcomgew 0x485b
-#define MN_vpcomlew 0x4864
-#define MN_vpcmpnlew 0x486d
-#define MN_vpcmplew 0x4877
-#define MN_vpcomfalsew 0x4880
-#define MN_vpcomtruew 0x488c
-#define MN_pi2fw 0x4897
-#define MN_pshufw 0x489d
+#define MN_vpackusdw 0x483a
+#define MN_vpmovusdw 0x4844
+#define MN_vpmovsdw 0x484e
+#define MN_vpmovdw 0x4857
+#define MN_vpcomgew 0x485f
+#define MN_vpcomlew 0x4868
+#define MN_vpcmpnlew 0x4871
+#define MN_vpcmplew 0x487b
+#define MN_vpcomfalsew 0x4884
+#define MN_vpcomtruew 0x4890
+#define MN_pi2fw 0x489b
+#define MN_pshufw 0x48a1
#define MN_pavgw (MN_vpavgw + 1)
-#define MN_vpavgw 0x48a4
-#define MN_prefetchw 0x48ab
+#define MN_vpavgw 0x48a8
+#define MN_prefetchw 0x48af
#define MN_pshufhw (MN_vpshufhw + 1)
-#define MN_vpshufhw 0x48b5
+#define MN_vpshufhw 0x48b9
#define MN_pmulhw (MN_vpmulhw + 1)
-#define MN_vpmulhw 0x48be
-#define MN_pf2iw 0x48c6
+#define MN_vpmulhw 0x48c2
+#define MN_pf2iw 0x48ca
#define MN_pshuflw (MN_vpshuflw + 1)
-#define MN_vpshuflw 0x48cc
-#define MN_vpshlw 0x48d5
+#define MN_vpshuflw 0x48d0
+#define MN_vpshlw 0x48d9
#define MN_psllw (MN_vpsllw + 1)
-#define MN_vpsllw 0x48dc
+#define MN_vpsllw 0x48e0
#define MN_pmullw (MN_vpmullw + 1)
-#define MN_vpmullw 0x48e3
+#define MN_vpmullw 0x48e7
#define MN_psrlw (MN_vpsrlw + 1)
-#define MN_vpsrlw 0x48eb
-#define MN_kshiftlw 0x48f2
-#define MN_vpblendmw 0x48fb
-#define MN_vptestnmw 0x4905
-#define MN_vpcomw 0x490f
-#define MN_vpermw 0x4916
-#define MN_vptestmw 0x491d
-#define MN_kandnw 0x4926
+#define MN_vpsrlw 0x48ef
+#define MN_kshiftlw 0x48f6
+#define MN_vpblendmw 0x48ff
+#define MN_vptestnmw 0x4909
+#define MN_vpcomw 0x4913
+#define MN_vpermw 0x491a
+#define MN_vptestmw 0x4921
+#define MN_kandnw 0x492a
#define MN_psignw (MN_vpsignw + 1)
-#define MN_vpsignw 0x492d
-#define MN_tilemovrow 0x4935
-#define MN_vpcmpw 0x4940
-#define MN_vpcomeqw 0x4947
-#define MN_vpcomneqw 0x4950
-#define MN_vpcmpneqw 0x495a
+#define MN_vpsignw 0x4931
+#define MN_tilemovrow 0x4939
+#define MN_vpcmpw 0x4944
+#define MN_vpcomeqw 0x494b
+#define MN_vpcomneqw 0x4954
+#define MN_vpcmpneqw 0x495e
#define MN_pcmpeqw (MN_vpcmpeqw + 1)
-#define MN_vpcmpeqw 0x4964
-#define MN_vpmovusqw 0x496d
-#define MN_vpmovsqw 0x4977
-#define MN_vpmovqw 0x4980
-#define MN_verw 0x4988
-#define MN_pmulhrw 0x498d
-#define MN_korw 0x4995
-#define MN_kxnorw 0x499a
-#define MN_kxorw 0x49a1
+#define MN_vpcmpeqw 0x4968
+#define MN_vpmovusqw 0x4971
+#define MN_vpmovsqw 0x497b
+#define MN_vpmovqw 0x4984
+#define MN_verw 0x498c
+#define MN_pmulhrw 0x4991
+#define MN_korw 0x4999
+#define MN_kxnorw 0x499e
+#define MN_kxorw 0x49a5
#define MN_pinsrw (MN_vpinsrw + 1)
-#define MN_vpinsrw 0x49a7
-#define MN_kshiftrw 0x49af
+#define MN_vpinsrw 0x49ab
+#define MN_kshiftrw 0x49b3
#define MN_pextrw (MN_vpextrw + 1)
-#define MN_vpextrw 0x49b8
+#define MN_vpextrw 0x49bc
#define MN_pabsw (MN_vpabsw + 1)
-#define MN_vpabsw 0x49c0
+#define MN_vpabsw 0x49c4
#define MN_pmaddubsw (MN_vpmaddubsw + 1)
-#define MN_vpmaddubsw 0x49c7
+#define MN_vpmaddubsw 0x49cb
#define MN_phsubsw (MN_vphsubsw + 1)
-#define MN_vphsubsw 0x49d2
+#define MN_vphsubsw 0x49d6
#define MN_psubsw (MN_vpsubsw + 1)
-#define MN_vpsubsw 0x49db
+#define MN_vpsubsw 0x49df
#define MN_phaddsw (MN_vphaddsw + 1)
-#define MN_vphaddsw 0x49e3
+#define MN_vphaddsw 0x49e7
#define MN_paddsw (MN_vpaddsw + 1)
-#define MN_vpaddsw 0x49ec
-#define MN_lmsw 0x49f4
-#define MN_smsw 0x49f9
+#define MN_vpaddsw 0x49f0
+#define MN_lmsw 0x49f8
+#define MN_smsw 0x49fd
#define MN_pminsw (MN_vpminsw + 1)
-#define MN_vpminsw 0x49fe
+#define MN_vpminsw 0x4a02
#define MN_pmulhrsw (MN_vpmulhrsw + 1)
-#define MN_vpmulhrsw 0x4a06
-#define MN_vmovrsw 0x4a10
-#define MN_vpcompressw 0x4a18
-#define MN_fstsw 0x4a24
-#define MN_fnstsw 0x4a2a
+#define MN_vpmulhrsw 0x4a0a
+#define MN_vmovrsw 0x4a14
+#define MN_vpcompressw 0x4a1c
+#define MN_fstsw 0x4a28
+#define MN_fnstsw 0x4a2e
#define MN_psubusw (MN_vpsubusw + 1)
-#define MN_vpsubusw 0x4a31
+#define MN_vpsubusw 0x4a35
#define MN_paddusw (MN_vpaddusw + 1)
-#define MN_vpaddusw 0x4a3a
-#define MN_movsw 0x4a43
+#define MN_vpaddusw 0x4a3e
+#define MN_movsw 0x4a47
#define MN_pmaxsw (MN_vpmaxsw + 1)
-#define MN_vpmaxsw 0x4a49
-#define MN_cbtw 0x4a51
-#define MN_vpcomgtw 0x4a56
+#define MN_vpmaxsw 0x4a4d
+#define MN_cbtw 0x4a55
+#define MN_vpcomgtw 0x4a5a
#define MN_pcmpgtw (MN_vpcmpgtw + 1)
-#define MN_vpcmpgtw 0x4a5f
-#define MN_vpcomltw 0x4a68
-#define MN_vpcmpnltw 0x4a71
-#define MN_vpcmpltw 0x4a7b
-#define MN_vpopcntw 0x4a84
-#define MN_knotw 0x4a8d
-#define MN_vprotw 0x4a93
-#define MN_vpbroadcastw 0x4a9a
-#define MN_ktestw 0x4aa7
-#define MN_kortestw 0x4aae
-#define MN_vcvttph2uw 0x4ab7
-#define MN_vcvtph2uw 0x4ac2
-#define MN_vpcomgeuw 0x4acc
-#define MN_vpcomleuw 0x4ad6
-#define MN_vpcmpnleuw 0x4ae0
-#define MN_vpcmpleuw 0x4aeb
-#define MN_vpcomfalseuw 0x4af5
-#define MN_vpcomtrueuw 0x4b02
+#define MN_vpcmpgtw 0x4a63
+#define MN_vpcomltw 0x4a6c
+#define MN_vpcmpnltw 0x4a75
+#define MN_vpcmpltw 0x4a7f
+#define MN_vpopcntw 0x4a88
+#define MN_knotw 0x4a91
+#define MN_vprotw 0x4a97
+#define MN_vpbroadcastw 0x4a9e
+#define MN_ktestw 0x4aab
+#define MN_kortestw 0x4ab2
+#define MN_vcvttph2uw 0x4abb
+#define MN_vcvtph2uw 0x4ac6
+#define MN_vpcomgeuw 0x4ad0
+#define MN_vpcomleuw 0x4ada
+#define MN_vpcmpnleuw 0x4ae4
+#define MN_vpcmpleuw 0x4aef
+#define MN_vpcomfalseuw 0x4af9
+#define MN_vpcomtrueuw 0x4b06
#define MN_pmulhuw (MN_vpmulhuw + 1)
-#define MN_vpmulhuw 0x4b0e
-#define MN_vpcomuw 0x4b17
+#define MN_vpmulhuw 0x4b12
+#define MN_vpcomuw 0x4b1b
#define MN_pminuw (MN_vpminuw + 1)
-#define MN_vpminuw 0x4b1f
-#define MN_vpcmpuw 0x4b27
-#define MN_vpcomequw 0x4b2f
-#define MN_vpcomnequw 0x4b39
-#define MN_vpcmpnequw 0x4b44
-#define MN_vpcmpequw 0x4b4f
+#define MN_vpminuw 0x4b23
+#define MN_vpcmpuw 0x4b2b
+#define MN_vpcomequw 0x4b33
+#define MN_vpcomnequw 0x4b3d
+#define MN_vpcmpnequw 0x4b48
+#define MN_vpcmpequw 0x4b53
#define MN_phminposuw (MN_vphminposuw + 1)
-#define MN_vphminposuw 0x4b59
-#define MN_vpcomgtuw 0x4b65
-#define MN_vpcomltuw 0x4b6f
-#define MN_vpcmpnltuw 0x4b79
-#define MN_vpcmpltuw 0x4b84
+#define MN_vphminposuw 0x4b5d
+#define MN_vpcomgtuw 0x4b69
+#define MN_vpcomltuw 0x4b73
+#define MN_vpcmpnltuw 0x4b7d
+#define MN_vpcmpltuw 0x4b88
#define MN_pmaxuw (MN_vpmaxuw + 1)
-#define MN_vpmaxuw 0x4b8e
-#define MN_vpsravw 0x4b96
-#define MN_vpshldvw 0x4b9e
-#define MN_vpshrdvw 0x4ba7
-#define MN_vpsllvw 0x4bb0
-#define MN_vpsrlvw 0x4bb8
-#define MN_kmovw 0x4bc0
-#define MN_vmovw 0x4bc6
-#define MN_vpmacsww 0x4bcc
-#define MN_vpmacssww 0x4bd5
-#define MN_movzw 0x4bdf
-#define MN_rex_x 0x4be5
-#define MN_fyl2x 0x4beb
-#define MN_rex64x 0x4bf1
-#define MN_vcvtneps2bf16x 0x4bf8
-#define MN_vfpclassbf16x 0x4c07
-#define MN_vcvtph2bf8x 0x4c15
-#define MN_vcvtph2hf8x 0x4c21
-#define MN_pfmax 0x4c2d
-#define MN_adcx 0x4c33
-#define MN_bndldx 0x4c38
-#define MN_vfpclasspdx 0x4c3f
-#define MN_fclex 0x4c4b
-#define MN_fnclex 0x4c51
-#define MN_rex 0x4c58
-#define MN_vcvtpd2phx 0x4c5c
-#define MN_vcvtdq2phx 0x4c67
-#define MN_vcvtudq2phx 0x4c72
-#define MN_vcvtqq2phx 0x4c7e
-#define MN_vcvtuqq2phx 0x4c89
-#define MN_vcvt2ps2phx 0x4c95
-#define MN_vcvtps2phx 0x4ca1
-#define MN_vfpclassphx 0x4cac
-#define MN_shlx 0x4cb8
-#define MN_mulx 0x4cbd
-#define MN_adox 0x4cc2
-#define MN_vcvttpd2dqx 0x4cc7
-#define MN_vcvtpd2dqx 0x4cd3
-#define MN_vcvttpd2udqx 0x4cde
-#define MN_vcvtpd2udqx 0x4ceb
-#define MN_rex_rx 0x4cf7
-#define MN_sarx 0x4cfe
-#define MN_shrx 0x4d03
-#define MN_rorx 0x4d08
-#define MN_monitorx 0x4d0d
-#define MN_rex_wrx 0x4d16
-#define MN_vcvtph2bf8sx 0x4d1e
-#define MN_vcvtph2hf8sx 0x4d2b
-#define MN_vcvtpd2psx 0x4d38
-#define MN_vcvtph2psx 0x4d43
-#define MN_vcvtqq2psx 0x4d4e
-#define MN_vcvtuqq2psx 0x4d59
-#define MN_vfpclasspsx 0x4d65
-#define MN_vcvttpd2dqsx 0x4d71
-#define MN_vcvttpd2udqsx 0x4d7e
-#define MN_movsx 0x4d8c
-#define MN_mwaitx 0x4d92
-#define MN_bndstx 0x4d99
-#define MN_rex_wx 0x4da0
-#define MN_rexx 0x4da7
-#define MN_vcvtps2phxx 0x4dac
-#define MN_movzx 0x4db8
-#define MN_rex64y 0x4dbe
-#define MN_vcvtneps2bf16y 0x4dc5
-#define MN_vfpclassbf16y 0x4dd4
-#define MN_vcvtph2bf8y 0x4de2
-#define MN_vcvtph2hf8y 0x4dee
-#define MN_vfpclasspdy 0x4dfa
-#define MN_loadiwkey 0x4e06
-#define MN_vcvtpd2phy 0x4e10
-#define MN_vcvtdq2phy 0x4e1b
-#define MN_vcvtudq2phy 0x4e26
-#define MN_vcvtqq2phy 0x4e32
-#define MN_vcvtuqq2phy 0x4e3d
-#define MN_vfpclassphy 0x4e49
-#define MN_vcvttpd2dqy 0x4e55
-#define MN_vcvtpd2dqy 0x4e61
-#define MN_vcvttpd2udqy 0x4e6c
-#define MN_vcvtpd2udqy 0x4e79
-#define MN_rmpquery 0x4e85
-#define MN_vcvtph2bf8sy 0x4e8e
-#define MN_vcvtph2hf8sy 0x4e9b
-#define MN_clrssbsy 0x4ea8
-#define MN_setssbsy 0x4eb1
-#define MN_vcvtpd2psy 0x4eba
-#define MN_vcvtqq2psy 0x4ec5
-#define MN_vcvtuqq2psy 0x4ed0
-#define MN_vfpclasspsy 0x4edc
-#define MN_vcvttpd2dqsy 0x4ee8
-#define MN_vcvttpd2udqsy 0x4ef5
-#define MN_rex64xy 0x4f03
-#define MN_rexy 0x4f0b
-#define MN_vcvtps2phxy 0x4f10
-#define MN_rexxy 0x4f1c
-#define MN_rex64z 0x4f22
-#define MN_vfpclassbf16z 0x4f29
-#define MN_fldz 0x4f37
-#define MN_vfpclasspdz 0x4f3c
-#define MN_vcvtpd2phz 0x4f48
-#define MN_vcvtqq2phz 0x4f53
-#define MN_vcvtuqq2phz 0x4f5e
-#define MN_vfpclassphz 0x4f6a
-#define MN_jz 0x4f76
-#define MN_jnz 0x4f79
-#define MN_repnz 0x4f7d
-#define MN_ccmpnz 0x4f83
-#define MN_loopnz 0x4f8a
-#define MN_setnz 0x4f91
-#define MN_ctestnz 0x4f97
-#define MN_setzunz 0x4f9f
+#define MN_vpmaxuw 0x4b92
+#define MN_vpsravw 0x4b9a
+#define MN_vpshldvw 0x4ba2
+#define MN_vpshrdvw 0x4bab
+#define MN_vpsllvw 0x4bb4
+#define MN_vpsrlvw 0x4bbc
+#define MN_kmovw 0x4bc4
+#define MN_vmovw 0x4bca
+#define MN_vpmacsww 0x4bd0
+#define MN_vpmacssww 0x4bd9
+#define MN_movzw 0x4be3
+#define MN_rex_x 0x4be9
+#define MN_fyl2x 0x4bef
+#define MN_rex64x 0x4bf5
+#define MN_vcvtneps2bf16x 0x4bfc
+#define MN_vfpclassbf16x 0x4c0b
+#define MN_vcvtph2bf8x 0x4c19
+#define MN_vcvtph2hf8x 0x4c25
+#define MN_pfmax 0x4c31
+#define MN_adcx 0x4c37
+#define MN_bndldx 0x4c3c
+#define MN_vfpclasspdx 0x4c43
+#define MN_fclex 0x4c4f
+#define MN_fnclex 0x4c55
+#define MN_rex 0x4c5c
+#define MN_vcvtpd2phx 0x4c60
+#define MN_vcvtdq2phx 0x4c6b
+#define MN_vcvtudq2phx 0x4c76
+#define MN_vcvtqq2phx 0x4c82
+#define MN_vcvtuqq2phx 0x4c8d
+#define MN_vcvt2ps2phx 0x4c99
+#define MN_vcvtps2phx 0x4ca5
+#define MN_vfpclassphx 0x4cb0
+#define MN_shlx 0x4cbc
+#define MN_mulx 0x4cc1
+#define MN_adox 0x4cc6
+#define MN_vcvttpd2dqx 0x4ccb
+#define MN_vcvtpd2dqx 0x4cd7
+#define MN_vcvttpd2udqx 0x4ce2
+#define MN_vcvtpd2udqx 0x4cef
+#define MN_rex_rx 0x4cfb
+#define MN_sarx 0x4d02
+#define MN_shrx 0x4d07
+#define MN_rorx 0x4d0c
+#define MN_monitorx 0x4d11
+#define MN_rex_wrx 0x4d1a
+#define MN_vcvtph2bf8sx 0x4d22
+#define MN_vcvtph2hf8sx 0x4d2f
+#define MN_vcvtpd2psx 0x4d3c
+#define MN_vcvtph2psx 0x4d47
+#define MN_vcvtqq2psx 0x4d52
+#define MN_vcvtuqq2psx 0x4d5d
+#define MN_vfpclasspsx 0x4d69
+#define MN_vcvttpd2dqsx 0x4d75
+#define MN_vcvttpd2udqsx 0x4d82
+#define MN_movsx 0x4d90
+#define MN_mwaitx 0x4d96
+#define MN_bndstx 0x4d9d
+#define MN_rex_wx 0x4da4
+#define MN_rexx 0x4dab
+#define MN_vcvtps2phxx 0x4db0
+#define MN_movzx 0x4dbc
+#define MN_rex64y 0x4dc2
+#define MN_vcvtneps2bf16y 0x4dc9
+#define MN_vfpclassbf16y 0x4dd8
+#define MN_vcvtph2bf8y 0x4de6
+#define MN_vcvtph2hf8y 0x4df2
+#define MN_vfpclasspdy 0x4dfe
+#define MN_loadiwkey 0x4e0a
+#define MN_vcvtpd2phy 0x4e14
+#define MN_vcvtdq2phy 0x4e1f
+#define MN_vcvtudq2phy 0x4e2a
+#define MN_vcvtqq2phy 0x4e36
+#define MN_vcvtuqq2phy 0x4e41
+#define MN_vfpclassphy 0x4e4d
+#define MN_vcvttpd2dqy 0x4e59
+#define MN_vcvtpd2dqy 0x4e65
+#define MN_vcvttpd2udqy 0x4e70
+#define MN_vcvtpd2udqy 0x4e7d
+#define MN_rmpquery 0x4e89
+#define MN_vcvtph2bf8sy 0x4e92
+#define MN_vcvtph2hf8sy 0x4e9f
+#define MN_clrssbsy 0x4eac
+#define MN_setssbsy 0x4eb5
+#define MN_vcvtpd2psy 0x4ebe
+#define MN_vcvtqq2psy 0x4ec9
+#define MN_vcvtuqq2psy 0x4ed4
+#define MN_vfpclasspsy 0x4ee0
+#define MN_vcvttpd2dqsy 0x4eec
+#define MN_vcvttpd2udqsy 0x4ef9
+#define MN_rex64xy 0x4f07
+#define MN_rexy 0x4f0f
+#define MN_vcvtps2phxy 0x4f14
+#define MN_rexxy 0x4f20
+#define MN_rex64z 0x4f26
+#define MN_vfpclassbf16z 0x4f2d
+#define MN_fldz 0x4f3b
+#define MN_vfpclasspdz 0x4f40
+#define MN_vcvtpd2phz 0x4f4c
+#define MN_vcvtqq2phz 0x4f57
+#define MN_vcvtuqq2phz 0x4f62
+#define MN_vfpclassphz 0x4f6e
+#define MN_jz 0x4f7a
+#define MN_jnz 0x4f7d
+#define MN_repnz 0x4f81
+#define MN_ccmpnz 0x4f87
+#define MN_loopnz 0x4f8e
+#define MN_setnz 0x4f95
+#define MN_ctestnz 0x4f9b
+#define MN_setzunz 0x4fa3
#define MN_cmovnz (MN_cfcmovnz + 2)
-#define MN_cfcmovnz 0x4fa7
-#define MN_repz 0x4fb0
-#define MN_ccmpz 0x4fb5
-#define MN_loopz 0x4fbb
-#define MN_vfpclasspsz 0x4fc1
-#define MN_setz 0x4fcd
-#define MN_ctestz 0x4fd2
-#define MN_setzuz 0x4fd9
+#define MN_cfcmovnz 0x4fab
+#define MN_repz 0x4fb4
+#define MN_ccmpz 0x4fb9
+#define MN_loopz 0x4fbf
+#define MN_vfpclasspsz 0x4fc5
+#define MN_setz 0x4fd1
+#define MN_ctestz 0x4fd6
+#define MN_setzuz 0x4fdd
#define MN_cmovz (MN_cfcmovz + 2)
-#define MN_cfcmovz 0x4fe0
-#define MN_rex64xz 0x4fe8
-#define MN_jecxz 0x4ff0
-#define MN_jcxz 0x4ff6
-#define MN_jrcxz 0x4ffb
-#define MN_rexz 0x5001
-#define MN_rexxz 0x5006
-#define MN_rex64yz 0x500c
-#define MN_rex64xyz 0x5014
-#define MN_rexyz 0x501d
-#define MN_rexxyz 0x5023
-#define MN__disp32_ 0x502a
-#define MN__rex2_ 0x5033
-#define MN__vex2_ 0x503a
-#define MN__vex3_ 0x5041
-#define MN__disp16_ 0x5048
-#define MN__disp8_ 0x5051
-#define MN__load_ 0x5059
-#define MN__store_ 0x5060
-#define MN__nooptimize_ 0x5068
-#define MN__nf_ 0x5075
-#define MN__noimm8s_ 0x507a
-#define MN__rex_ 0x5084
-#define MN__evex_ 0x508a
-#define MN__vex_ 0x5091
-#define MN__insn 0x5097
+#define MN_cfcmovz 0x4fe4
+#define MN_rex64xz 0x4fec
+#define MN_jecxz 0x4ff4
+#define MN_jcxz 0x4ffa
+#define MN_jrcxz 0x4fff
+#define MN_rexz 0x5005
+#define MN_rexxz 0x500a
+#define MN_rex64yz 0x5010
+#define MN_rex64xyz 0x5018
+#define MN_rexyz 0x5021
+#define MN_rexxyz 0x5027
+#define MN__disp32_ 0x502e
+#define MN__rex2_ 0x5037
+#define MN__vex2_ 0x503e
+#define MN__vex3_ 0x5045
+#define MN__disp16_ 0x504c
+#define MN__disp8_ 0x5055
+#define MN__load_ 0x505d
+#define MN__store_ 0x5064
+#define MN__nooptimize_ 0x506c
+#define MN__nf_ 0x5079
+#define MN__noimm8s_ 0x507e
+#define MN__rex_ 0x5088
+#define MN__evex_ 0x508e
+#define MN__vex_ 0x5095
+#define MN__insn 0x509b
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index 6eadc2e..7246141 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -993,6 +993,8 @@ ud2b, 0xfb9, i286, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|U
// 3rd official undefined instr (older CPUs don't take a ModR/M byte)
ud0, 0xfff, i286, NoSuf, {}
ud0, 0xfff, i286, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+// 4th official undefined instruction (single byte in 64-bit mode only)
+udb, 0xd6, x64, NoSuf, {}
// C (commutative) isn't quite correct here on its own; the condition also
// needs inverting when source operands are swapped in order to convert to
@@ -3244,8 +3246,8 @@ tilezero, 0xf249, AMX_TILE, Modrm|Vex128|Space0F38|VexW0|NoSuf, { RegTMM }
<loc:opc, $t:0x0, t1:0x1>
-t2rpntlvw<z><loc>, 0x<z:pfx>6e | <loc:opc>, APX_F(AMX_TRANSPOSE), Sibmem|Vex128|EVex128|Space0F38|VexW0|NoSuf|ImplicitGroup, { Unspecified|BaseIndex, RegTMM }
-t2rpntlvw<z>rs<loc>, 0x<z:pfx>f8 | <loc:opc>, AMX_TRANSPOSE&APX_F(AMX_MOVRS), Sibmem|Vex128|EVex128|Map5|VexW0|NoSuf|ImplicitGroup, { Unspecified|BaseIndex, RegTMM }
+t2rpntlvw<z><loc>, 0x<z:pfx>6e | <loc:opc>, AMX_TRANSPOSE, Sibmem|Vex128|Space0F38|VexW0|NoSuf|ImplicitGroup, { Unspecified|BaseIndex, RegTMM }
+t2rpntlvw<z>rs<loc>, 0x<z:pfx>f8 | <loc:opc>, AMX_TRANSPOSE&AMX_MOVRS, Sibmem|Vex128|Map5|VexW0|NoSuf|ImplicitGroup, { Unspecified|BaseIndex, RegTMM }
<z>
<loc>
diff --git a/opcodes/i386-tbl.h b/opcodes/i386-tbl.h
index c8fbb93..5705a6a 100644
--- a/opcodes/i386-tbl.h
+++ b/opcodes/i386-tbl.h
@@ -9024,6 +9024,14 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 1, 0 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0 } } } },
+ { MN_udb, 0xd6, 0, SPACE_BASE, None,
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 } } } },
{ MN_cmovo, 0x40, 3, SPACE_MAP4, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0,
@@ -43218,80 +43226,80 @@ static const insn_template i386_optab[] =
0, 0, 0, 1, 0, 0 } } } },
{ MN_t2rpntlvwz0, 0x6e | 0x0, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1, 0, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
- { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } },
{ { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0 } } } },
{ MN_t2rpntlvwz0t1, 0x6e | 0x1, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1, 0, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
- { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } },
{ { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0 } } } },
{ MN_t2rpntlvwz1, 0x6e | 0x0, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 0, 1, 1, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1, 0, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
- { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } },
{ { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0 } } } },
{ MN_t2rpntlvwz1t1, 0x6e | 0x1, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 0, 1, 1, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1, 0, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
- { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } },
{ { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0 } } } },
{ MN_t2rpntlvwz0rs, 0xf8 | 0x0, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1, 0, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
{ { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
- { { 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } },
{ { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0 } } } },
{ MN_t2rpntlvwz0rst1, 0xf8 | 0x1, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1, 0, 1, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
{ { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
- { { 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } },
{ { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0 } } } },
{ MN_t2rpntlvwz1rs, 0xf8 | 0x0, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 0, 1, 1, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1, 0, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
{ { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
- { { 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } },
{ { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0 } } } },
{ MN_t2rpntlvwz1rst1, 0xf8 | 0x1, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 0, 1, 1, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1, 0, 1, 1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
{ { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
- { { 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } },
{ { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -47960,120 +47968,120 @@ static const i386_op_off_t i386_op_sets[] =
967, 968, 969, 970, 971, 972, 973, 974,
975, 976, 977, 978, 979, 980, 982, 983,
985, 987, 988, 989, 990, 991, 992, 993,
- 994, 996, 998, 1000, 1002, 1004, 1006, 1008,
- 1010, 1012, 1014, 1016, 1018, 1020, 1022, 1024,
- 1026, 1028, 1030, 1032, 1034, 1036, 1038, 1040,
- 1042, 1044, 1046, 1048, 1050, 1052, 1054, 1056,
- 1058, 1060, 1062, 1064, 1066, 1068, 1070, 1072,
- 1074, 1076, 1078, 1080, 1082, 1084, 1086, 1088,
- 1090, 1092, 1094, 1096, 1098, 1100, 1102, 1104,
- 1106, 1108, 1110, 1112, 1114, 1116, 1118, 1120,
+ 994, 996, 998, 1000, 1001, 1003, 1005, 1007,
+ 1009, 1011, 1013, 1015, 1017, 1019, 1021, 1023,
+ 1025, 1027, 1029, 1031, 1033, 1035, 1037, 1039,
+ 1041, 1043, 1045, 1047, 1049, 1051, 1053, 1055,
+ 1057, 1059, 1061, 1063, 1065, 1067, 1069, 1071,
+ 1073, 1075, 1077, 1079, 1081, 1083, 1085, 1087,
+ 1089, 1091, 1093, 1095, 1097, 1099, 1101, 1103,
+ 1105, 1107, 1109, 1111, 1113, 1115, 1117, 1119,
1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128,
- 1129, 1130, 1131, 1132, 1135, 1138, 1141, 1144,
- 1147, 1150, 1151, 1152, 1153, 1154, 1155, 1156,
- 1162, 1172, 1176, 1180, 1184, 1188, 1192, 1195,
- 1199, 1203, 1207, 1211, 1215, 1218, 1221, 1224,
- 1227, 1230, 1233, 1236, 1239, 1243, 1247, 1251,
- 1254, 1262, 1268, 1276, 1284, 1290, 1298, 1304,
- 1312, 1316, 1320, 1323, 1327, 1331, 1335, 1339,
- 1343, 1347, 1351, 1354, 1358, 1362, 1365, 1368,
- 1370, 1372, 1374, 1376, 1378, 1380, 1382, 1384,
- 1386, 1388, 1390, 1392, 1395, 1398, 1401, 1404,
- 1406, 1408, 1410, 1412, 1414, 1416, 1418, 1420,
- 1422, 1424, 1426, 1428, 1430, 1432, 1434, 1436,
- 1438, 1440, 1442, 1443, 1444, 1450, 1452, 1453,
- 1455, 1457, 1458, 1460, 1462, 1465, 1467, 1470,
- 1472, 1474, 1475, 1477, 1480, 1482, 1486, 1490,
- 1499, 1505, 1509, 1513, 1517, 1521, 1524, 1528,
- 1529, 1530, 1531, 1532, 1536, 1537, 1540, 1543,
- 1546, 1549, 1550, 1552, 1554, 1556, 1558, 1560,
- 1562, 1564, 1567, 1570, 1573, 1576, 1579, 1582,
- 1585, 1588, 1591, 1594, 1597, 1600, 1603, 1606,
- 1609, 1612, 1614, 1616, 1618, 1620, 1622, 1624,
- 1626, 1628, 1630, 1632, 1634, 1636, 1638, 1640,
- 1642, 1644, 1646, 1648, 1651, 1654, 1660, 1663,
- 1668, 1673, 1675, 1678, 1683, 1686, 1689, 1692,
- 1695, 1698, 1701, 1704, 1706, 1709, 1711, 1712,
- 1715, 1717, 1719, 1721, 1724, 1726, 1727, 1729,
- 1732, 1734, 1736, 1738, 1740, 1741, 1742, 1746,
- 1748, 1751, 1754, 1757, 1760, 1763, 1766, 1768,
- 1770, 1772, 1774, 1776, 1778, 1781, 1784, 1786,
- 1788, 1790, 1791, 1792, 1795, 1797, 1798, 1799,
- 1800, 1801, 1802, 1803, 1805, 1807, 1808, 1809,
- 1810, 1811, 1814, 1817, 1820, 1823, 1826, 1829,
- 1832, 1835, 1838, 1842, 1846, 1850, 1853, 1856,
- 1859, 1863, 1867, 1871, 1874, 1876, 1878, 1882,
- 1886, 1888, 1890, 1894, 1896, 1898, 1900, 1903,
- 1907, 1909, 1911, 1917, 1920, 1923, 1925, 1931,
- 1934, 1937, 1940, 1942, 1944, 1947, 1950, 1952,
- 1954, 1957, 1960, 1963, 1965, 1967, 1969, 1971,
- 1973, 1975, 1977, 1979, 1981, 1983, 1986, 1988,
- 1990, 1993, 1995, 1998, 2000, 2002, 2006, 2010,
- 2012, 2014, 2018, 2019, 2020, 2021, 2022, 2023,
- 2024, 2025, 2026, 2028, 2030, 2032, 2034, 2036,
- 2038, 2040, 2042, 2044, 2046, 2048, 2050, 2052,
- 2054, 2056, 2058, 2060, 2062, 2064, 2066, 2068,
- 2070, 2072, 2074, 2076, 2078, 2080, 2082, 2084,
- 2086, 2088, 2090, 2092, 2094, 2096, 2098, 2100,
- 2102, 2103, 2104, 2106, 2108, 2110, 2112, 2114,
- 2116, 2118, 2120, 2121, 2122, 2123, 2124, 2125,
- 2128, 2130, 2132, 2134, 2136, 2138, 2140, 2142,
- 2144, 2146, 2148, 2150, 2152, 2154, 2156, 2158,
- 2160, 2162, 2164, 2166, 2168, 2170, 2172, 2174,
- 2176, 2178, 2180, 2182, 2184, 2186, 2188, 2190,
- 2192, 2194, 2196, 2198, 2200, 2202, 2204, 2206,
- 2208, 2210, 2212, 2214, 2216, 2218, 2220, 2222,
- 2224, 2226, 2228, 2230, 2232, 2234, 2236, 2238,
- 2240, 2242, 2244, 2246, 2248, 2250, 2252, 2254,
- 2256, 2258, 2260, 2262, 2264, 2266, 2268, 2270,
- 2272, 2274, 2276, 2278, 2280, 2282, 2284, 2286,
- 2288, 2290, 2292, 2294, 2296, 2298, 2300, 2302,
- 2304, 2306, 2308, 2310, 2312, 2314, 2316, 2318,
- 2320, 2322, 2324, 2326, 2328, 2330, 2332, 2334,
- 2336, 2338, 2340, 2342, 2344, 2346, 2348, 2350,
- 2352, 2354, 2356, 2358, 2360, 2362, 2364, 2366,
- 2368, 2370, 2372, 2374, 2376, 2378, 2380, 2382,
- 2384, 2386, 2388, 2390, 2392, 2394, 2396, 2398,
- 2400, 2402, 2404, 2406, 2408, 2410, 2412, 2414,
- 2416, 2418, 2420, 2422, 2424, 2426, 2428, 2430,
- 2432, 2434, 2436, 2438, 2440, 2442, 2444, 2446,
- 2448, 2450, 2452, 2454, 2456, 2458, 2460, 2462,
- 2464, 2466, 2468, 2470, 2472, 2474, 2476, 2478,
- 2480, 2482, 2484, 2486, 2488, 2490, 2492, 2494,
- 2496, 2498, 2500, 2502, 2504, 2506, 2508, 2510,
- 2515, 2517, 2522, 2524, 2526, 2531, 2533, 2535,
- 2537, 2542, 2544, 2546, 2548, 2552, 2558, 2560,
- 2565, 2567, 2569, 2571, 2573, 2575, 2576, 2577,
- 2578, 2580, 2581, 2582, 2583, 2584, 2585, 2587,
- 2588, 2589, 2590, 2592, 2594, 2596, 2598, 2602,
- 2606, 2607, 2608, 2610, 2614, 2618, 2620, 2624,
- 2628, 2629, 2630, 2632, 2634, 2636, 2638, 2643,
- 2647, 2651, 2653, 2655, 2657, 2659, 2661, 2663,
- 2665, 2667, 2669, 2671, 2673, 2675, 2677, 2679,
- 2681, 2683, 2685, 2687, 2689, 2691, 2693, 2694,
- 2695, 2697, 2699, 2700, 2701, 2704, 2707, 2710,
- 2713, 2715, 2717, 2719, 2721, 2723, 2725, 2726,
- 2727, 2728, 2730, 2734, 2736, 2738, 2744, 2748,
- 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2759,
- 2761, 2763, 2767, 2769, 2771, 2773, 2775, 2777,
- 2779, 2781, 2783, 2785, 2787, 2789, 2791, 2793,
- 2795, 2796, 2799, 2802, 2805, 2808, 2813, 2818,
- 2823, 2828, 2831, 2834, 2837, 2840, 2842, 2844,
- 2846, 2848, 2850, 2852, 2854, 2855, 2857, 2859,
- 2861, 2863, 2865, 2866, 2867, 2868, 2872, 2876,
- 2878, 2882, 2886, 2890, 2894, 2898, 2900, 2904,
- 2906, 2908, 2910, 2912, 2914, 2916, 2918, 2920,
- 2921, 2923, 2925, 2927, 2929, 2931, 2933, 2935,
- 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944,
- 2945, 2946, 2948, 2950, 2952, 2954, 2956, 2958,
- 2959, 2960, 2961, 2963, 2965, 2967, 2969, 2971,
- 2973, 2974, 2975, 2976, 2977, 2980, 2983, 2985,
- 2988, 2989, 2990, 2992, 2993, 2995, 2996, 2997,
- 2999, 3001, 3002, 3003, 3004, 3005, 3006, 3009,
- 3014, 3019, 3024, 3029, 3032, 3037, 3042, 3044,
- 3046, 3048, 3050, 3051, 3052, 3054, 3056, 3058,
- 3060, 3062, 3064, 3066, 3067, 3068, 3069, 3070,
- 3071, 3072, 3077, 3082, 3083, 3084, 3085, 3086,
+ 1129, 1130, 1131, 1132, 1133, 1136, 1139, 1142,
+ 1145, 1148, 1151, 1152, 1153, 1154, 1155, 1156,
+ 1157, 1163, 1173, 1177, 1181, 1185, 1189, 1193,
+ 1196, 1200, 1204, 1208, 1212, 1216, 1219, 1222,
+ 1225, 1228, 1231, 1234, 1237, 1240, 1244, 1248,
+ 1252, 1255, 1263, 1269, 1277, 1285, 1291, 1299,
+ 1305, 1313, 1317, 1321, 1324, 1328, 1332, 1336,
+ 1340, 1344, 1348, 1352, 1355, 1359, 1363, 1366,
+ 1369, 1371, 1373, 1375, 1377, 1379, 1381, 1383,
+ 1385, 1387, 1389, 1391, 1393, 1396, 1399, 1402,
+ 1405, 1407, 1409, 1411, 1413, 1415, 1417, 1419,
+ 1421, 1423, 1425, 1427, 1429, 1431, 1433, 1435,
+ 1437, 1439, 1441, 1443, 1444, 1445, 1451, 1453,
+ 1454, 1456, 1458, 1459, 1461, 1463, 1466, 1468,
+ 1471, 1473, 1475, 1476, 1478, 1481, 1483, 1487,
+ 1491, 1500, 1506, 1510, 1514, 1518, 1522, 1525,
+ 1529, 1530, 1531, 1532, 1533, 1537, 1538, 1541,
+ 1544, 1547, 1550, 1551, 1553, 1555, 1557, 1559,
+ 1561, 1563, 1565, 1568, 1571, 1574, 1577, 1580,
+ 1583, 1586, 1589, 1592, 1595, 1598, 1601, 1604,
+ 1607, 1610, 1613, 1615, 1617, 1619, 1621, 1623,
+ 1625, 1627, 1629, 1631, 1633, 1635, 1637, 1639,
+ 1641, 1643, 1645, 1647, 1649, 1652, 1655, 1661,
+ 1664, 1669, 1674, 1676, 1679, 1684, 1687, 1690,
+ 1693, 1696, 1699, 1702, 1705, 1707, 1710, 1712,
+ 1713, 1716, 1718, 1720, 1722, 1725, 1727, 1728,
+ 1730, 1733, 1735, 1737, 1739, 1741, 1742, 1743,
+ 1747, 1749, 1752, 1755, 1758, 1761, 1764, 1767,
+ 1769, 1771, 1773, 1775, 1777, 1779, 1782, 1785,
+ 1787, 1789, 1791, 1792, 1793, 1796, 1798, 1799,
+ 1800, 1801, 1802, 1803, 1804, 1806, 1808, 1809,
+ 1810, 1811, 1812, 1815, 1818, 1821, 1824, 1827,
+ 1830, 1833, 1836, 1839, 1843, 1847, 1851, 1854,
+ 1857, 1860, 1864, 1868, 1872, 1875, 1877, 1879,
+ 1883, 1887, 1889, 1891, 1895, 1897, 1899, 1901,
+ 1904, 1908, 1910, 1912, 1918, 1921, 1924, 1926,
+ 1932, 1935, 1938, 1941, 1943, 1945, 1948, 1951,
+ 1953, 1955, 1958, 1961, 1964, 1966, 1968, 1970,
+ 1972, 1974, 1976, 1978, 1980, 1982, 1984, 1987,
+ 1989, 1991, 1994, 1996, 1999, 2001, 2003, 2007,
+ 2011, 2013, 2015, 2019, 2020, 2021, 2022, 2023,
+ 2024, 2025, 2026, 2027, 2029, 2031, 2033, 2035,
+ 2037, 2039, 2041, 2043, 2045, 2047, 2049, 2051,
+ 2053, 2055, 2057, 2059, 2061, 2063, 2065, 2067,
+ 2069, 2071, 2073, 2075, 2077, 2079, 2081, 2083,
+ 2085, 2087, 2089, 2091, 2093, 2095, 2097, 2099,
+ 2101, 2103, 2104, 2105, 2107, 2109, 2111, 2113,
+ 2115, 2117, 2119, 2121, 2122, 2123, 2124, 2125,
+ 2126, 2129, 2131, 2133, 2135, 2137, 2139, 2141,
+ 2143, 2145, 2147, 2149, 2151, 2153, 2155, 2157,
+ 2159, 2161, 2163, 2165, 2167, 2169, 2171, 2173,
+ 2175, 2177, 2179, 2181, 2183, 2185, 2187, 2189,
+ 2191, 2193, 2195, 2197, 2199, 2201, 2203, 2205,
+ 2207, 2209, 2211, 2213, 2215, 2217, 2219, 2221,
+ 2223, 2225, 2227, 2229, 2231, 2233, 2235, 2237,
+ 2239, 2241, 2243, 2245, 2247, 2249, 2251, 2253,
+ 2255, 2257, 2259, 2261, 2263, 2265, 2267, 2269,
+ 2271, 2273, 2275, 2277, 2279, 2281, 2283, 2285,
+ 2287, 2289, 2291, 2293, 2295, 2297, 2299, 2301,
+ 2303, 2305, 2307, 2309, 2311, 2313, 2315, 2317,
+ 2319, 2321, 2323, 2325, 2327, 2329, 2331, 2333,
+ 2335, 2337, 2339, 2341, 2343, 2345, 2347, 2349,
+ 2351, 2353, 2355, 2357, 2359, 2361, 2363, 2365,
+ 2367, 2369, 2371, 2373, 2375, 2377, 2379, 2381,
+ 2383, 2385, 2387, 2389, 2391, 2393, 2395, 2397,
+ 2399, 2401, 2403, 2405, 2407, 2409, 2411, 2413,
+ 2415, 2417, 2419, 2421, 2423, 2425, 2427, 2429,
+ 2431, 2433, 2435, 2437, 2439, 2441, 2443, 2445,
+ 2447, 2449, 2451, 2453, 2455, 2457, 2459, 2461,
+ 2463, 2465, 2467, 2469, 2471, 2473, 2475, 2477,
+ 2479, 2481, 2483, 2485, 2487, 2489, 2491, 2493,
+ 2495, 2497, 2499, 2501, 2503, 2505, 2507, 2509,
+ 2511, 2516, 2518, 2523, 2525, 2527, 2532, 2534,
+ 2536, 2538, 2543, 2545, 2547, 2549, 2553, 2559,
+ 2561, 2566, 2568, 2570, 2572, 2574, 2576, 2577,
+ 2578, 2579, 2581, 2582, 2583, 2584, 2585, 2586,
+ 2588, 2589, 2590, 2591, 2593, 2595, 2597, 2599,
+ 2603, 2607, 2608, 2609, 2611, 2615, 2619, 2621,
+ 2625, 2629, 2630, 2631, 2633, 2635, 2637, 2639,
+ 2644, 2648, 2652, 2654, 2656, 2658, 2660, 2662,
+ 2664, 2666, 2668, 2670, 2672, 2674, 2676, 2678,
+ 2680, 2682, 2684, 2686, 2688, 2690, 2692, 2694,
+ 2695, 2696, 2698, 2700, 2701, 2702, 2705, 2708,
+ 2711, 2714, 2716, 2718, 2720, 2722, 2724, 2726,
+ 2727, 2728, 2729, 2731, 2735, 2737, 2739, 2745,
+ 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756,
+ 2760, 2762, 2764, 2768, 2770, 2772, 2774, 2776,
+ 2778, 2780, 2782, 2784, 2786, 2788, 2790, 2792,
+ 2794, 2796, 2797, 2800, 2803, 2806, 2809, 2814,
+ 2819, 2824, 2829, 2832, 2835, 2838, 2841, 2843,
+ 2845, 2847, 2849, 2851, 2853, 2855, 2856, 2858,
+ 2860, 2862, 2864, 2866, 2867, 2868, 2869, 2873,
+ 2877, 2879, 2883, 2887, 2891, 2895, 2899, 2901,
+ 2905, 2907, 2909, 2911, 2913, 2915, 2917, 2919,
+ 2921, 2922, 2924, 2926, 2928, 2930, 2932, 2934,
+ 2936, 2938, 2939, 2940, 2941, 2942, 2943, 2944,
+ 2945, 2946, 2947, 2949, 2951, 2953, 2955, 2957,
+ 2959, 2960, 2961, 2962, 2964, 2966, 2968, 2970,
+ 2972, 2974, 2975, 2976, 2977, 2978, 2981, 2984,
+ 2986, 2989, 2990, 2991, 2993, 2994, 2996, 2997,
+ 2998, 3000, 3002, 3003, 3004, 3005, 3006, 3007,
+ 3010, 3015, 3020, 3025, 3030, 3033, 3038, 3043,
+ 3045, 3047, 3049, 3051, 3052, 3053, 3055, 3057,
+ 3059, 3061, 3063, 3065, 3067, 3068, 3069, 3070,
+ 3071, 3072, 3073, 3078, 3083, 3084, 3085, 3086,
3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094,
3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102,
3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110,
@@ -48098,28 +48106,28 @@ static const i386_op_off_t i386_op_sets[] =
3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262,
3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270,
3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278,
- 3279, 3280, 3281, 3282, 3283, 3285, 3287, 3288,
+ 3279, 3280, 3281, 3282, 3283, 3284, 3286, 3288,
3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296,
3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304,
3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312,
- 3313, 3314, 3315, 3317, 3319, 3321, 3323, 3324,
+ 3313, 3314, 3315, 3316, 3318, 3320, 3322, 3324,
3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332,
- 3333, 3334, 3335, 3336, 3338, 3339, 3340, 3341,
- 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350,
+ 3333, 3334, 3335, 3336, 3337, 3339, 3340, 3341,
+ 3342, 3344, 3345, 3346, 3347, 3348, 3349, 3350,
3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358,
3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366,
3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374,
3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382,
- 3383, 3384, 3386, 3388, 3389, 3390, 3392, 3393,
- 3395, 3397, 3398, 3399, 3401, 3403, 3405, 3407,
+ 3383, 3384, 3385, 3387, 3389, 3390, 3391, 3393,
+ 3394, 3396, 3398, 3399, 3400, 3402, 3404, 3406,
3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415,
3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423,
3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431,
- 3434, 3437, 3438, 3439, 3440, 3441, 3442, 3443,
- 3445, 3447, 3449, 3450, 3451, 3452, 3453, 3454,
- 3455, 3457, 3458, 3459, 3460, 3461, 3462, 3463,
- 3464, 3465, 3467, 3469, 3470, 3471, 3472, 3473,
- 3474, 3475, 3476, 3477, 3478, 3479, 3482, 3485,
+ 3432, 3435, 3438, 3439, 3440, 3441, 3442, 3443,
+ 3444, 3446, 3448, 3450, 3451, 3452, 3453, 3454,
+ 3455, 3456, 3458, 3459, 3460, 3461, 3462, 3463,
+ 3464, 3465, 3466, 3468, 3470, 3471, 3472, 3473,
+ 3474, 3475, 3476, 3477, 3478, 3479, 3480, 3483,
3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493,
3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501,
3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509,
@@ -48127,23 +48135,23 @@ static const i386_op_off_t i386_op_sets[] =
3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525,
3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533,
3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541,
- 3542, 3543, 3546, 3548, 3551, 3554, 3556, 3559,
- 3562, 3565, 3568, 3569, 3572, 3573, 3574, 3575,
- 3576, 3577, 3581, 3583, 3586, 3587, 3588, 3589,
+ 3542, 3543, 3544, 3547, 3549, 3552, 3555, 3557,
+ 3560, 3563, 3566, 3569, 3570, 3573, 3574, 3575,
+ 3576, 3577, 3578, 3582, 3584, 3587, 3588, 3589,
3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597,
3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605,
3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613,
3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621,
3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629,
3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637,
- 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646,
+ 3638, 3640, 3641, 3642, 3643, 3644, 3645, 3646,
3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654,
3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662,
3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670,
3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678,
- 3681, 3684, 3687, 3690, 3693, 3696, 3699, 3702,
- 3705, 3708, 3711, 3714, 3717, 3720, 3723, 3724,
- 3725, 3726, 3727, 3729, 3730, 3731, 3732, 3733,
+ 3679, 3682, 3685, 3688, 3691, 3694, 3697, 3700,
+ 3703, 3706, 3709, 3712, 3715, 3718, 3721, 3724,
+ 3725, 3726, 3727, 3728, 3730, 3731, 3732, 3733,
3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741,
3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749,
3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757,
@@ -48151,7 +48159,7 @@ static const i386_op_off_t i386_op_sets[] =
3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773,
3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781,
3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789,
- 3790, 3793, 3796, 3797, 3798, 3799, 3800, 3801,
+ 3790, 3791, 3794, 3797, 3798, 3799, 3800, 3801,
3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809,
3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817,
3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825,
@@ -48159,34 +48167,34 @@ static const i386_op_off_t i386_op_sets[] =
3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841,
3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849,
3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857,
- 3858, 3861, 3864, 3867, 3868, 3869, 3870, 3871,
+ 3858, 3859, 3862, 3865, 3868, 3869, 3870, 3871,
3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879,
- 3880, 3881, 3882, 3883, 3886, 3889, 3890, 3891,
- 3894, 3895, 3896, 3897, 3898, 3901, 3904, 3907,
+ 3880, 3881, 3882, 3883, 3884, 3887, 3890, 3891,
+ 3892, 3895, 3896, 3897, 3898, 3899, 3902, 3905,
3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915,
- 3916, 3917, 3919, 3920, 3921, 3922, 3924, 3925,
+ 3916, 3917, 3918, 3920, 3921, 3922, 3923, 3925,
3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933,
3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941,
- 3942, 3943, 3944, 3945, 3946, 3948, 3950, 3951,
+ 3942, 3943, 3944, 3945, 3946, 3947, 3949, 3951,
3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959,
3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967,
3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975,
- 3977, 3979, 3981, 3983, 3985, 3987, 3989, 3991,
- 3993, 3995, 3997, 3999, 4001, 4003, 4005, 4007,
- 4008, 4009, 4010, 4012, 4013, 4015, 4018, 4020,
- 4021, 4022, 4024, 4026, 4027, 4028, 4029, 4030,
- 4031, 4032, 4034, 4036, 4038, 4040, 4041, 4042,
- 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4051,
- 4053, 4054, 4056, 4058, 4059, 4064, 4066, 4068,
- 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4077,
- 4079, 4080, 4081, 4082, 4084, 4087, 4091, 4094,
- 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103,
+ 3976, 3978, 3980, 3982, 3984, 3986, 3988, 3990,
+ 3992, 3994, 3996, 3998, 4000, 4002, 4004, 4006,
+ 4008, 4009, 4010, 4011, 4013, 4014, 4016, 4019,
+ 4021, 4022, 4023, 4025, 4027, 4028, 4029, 4030,
+ 4031, 4032, 4033, 4035, 4037, 4039, 4041, 4042,
+ 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4050,
+ 4052, 4054, 4055, 4057, 4059, 4060, 4065, 4067,
+ 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076,
+ 4078, 4080, 4081, 4082, 4083, 4085, 4088, 4092,
+ 4095, 4097, 4098, 4099, 4100, 4101, 4102, 4103,
4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111,
4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119,
4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127,
4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135,
- 4136, 4137, 4138, 4139, 4141, 4143, 4145, 4147,
- 4149, 4151, 4152, 4153, 4154, 4155, 4156, 4157,
+ 4136, 4137, 4138, 4139, 4140, 4142, 4144, 4146,
+ 4148, 4150, 4152, 4153, 4154, 4155, 4156, 4157,
4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165,
4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173,
4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181,
@@ -48201,33 +48209,33 @@ static const i386_op_off_t i386_op_sets[] =
4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253,
4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261,
4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269,
- 4270, 4271, 4272, 4273, 4274, 4277, 4278, 4279,
- 4282, 4283, 4284, 4286, 4287, 4288, 4289, 4291,
- 4292, 4293, 4294, 4296, 4297, 4298, 4299, 4302,
- 4303, 4304, 4305, 4306, 4309, 4312, 4315, 4318,
- 4321, 4322, 4323, 4324, 4325, 4327, 4329, 4330,
- 4331, 4332, 4335, 4338, 4341, 4344, 4347, 4348,
- 4349, 4350, 4352, 4353, 4354, 4355, 4358, 4359,
+ 4270, 4271, 4272, 4273, 4274, 4275, 4278, 4279,
+ 4280, 4283, 4284, 4285, 4287, 4288, 4289, 4290,
+ 4292, 4293, 4294, 4295, 4297, 4298, 4299, 4300,
+ 4303, 4304, 4305, 4306, 4307, 4310, 4313, 4316,
+ 4319, 4322, 4323, 4324, 4325, 4326, 4328, 4330,
+ 4331, 4332, 4333, 4336, 4339, 4342, 4345, 4348,
+ 4349, 4350, 4351, 4353, 4354, 4355, 4356, 4359,
4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367,
4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375,
4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383,
4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391,
- 4392, 4393, 4394, 4396, 4397, 4398, 4400, 4402,
- 4404, 4406, 4408, 4409, 4410, 4413, 4416, 4417,
- 4418, 4419, 4420, 4421, 4422, 4424, 4426, 4428,
- 4430, 4431, 4432, 4433, 4434, 4437, 4438, 4439,
- 4442, 4443, 4444, 4447, 4448, 4449, 4452, 4453,
- 4454, 4457, 4458, 4459, 4460, 4461, 4462, 4463,
+ 4392, 4393, 4394, 4395, 4397, 4398, 4399, 4401,
+ 4403, 4405, 4407, 4409, 4410, 4411, 4414, 4417,
+ 4418, 4419, 4420, 4421, 4422, 4423, 4425, 4427,
+ 4429, 4431, 4432, 4433, 4434, 4435, 4438, 4439,
+ 4440, 4443, 4444, 4445, 4448, 4449, 4450, 4453,
+ 4454, 4455, 4458, 4459, 4460, 4461, 4462, 4463,
4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471,
4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479,
4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487,
4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495,
- 4496, 4497, 4498, 4499, 4500, 4501, 4504, 4505,
- 4506, 4509, 4510, 4511, 4512, 4513, 4514, 4515,
- 4518, 4521, 4522, 4523, 4524, 4525, 4526, 4527,
+ 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4505,
+ 4506, 4507, 4510, 4511, 4512, 4513, 4514, 4515,
+ 4516, 4519, 4522, 4523, 4524, 4525, 4526, 4527,
4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535,
- 4536, 4537, 4538, 4539, 4541, 4542, 4543, 4544,
- 4545
+ 4536, 4537, 4538, 4539, 4540, 4542, 4543, 4544,
+ 4545, 4546
};
/* i386 mnemonics table. */
@@ -48430,6 +48438,7 @@ static const char i386_mnemonics[] =
"\0""vpexpandb"
"\0""vpmovusdb"
"\0""vpmovsdb"
+ "\0""udb"
"\0""vpmovdb"
"\0""vpcomgeb"
"\0""vpcomleb"
diff --git a/opcodes/po/sr.po b/opcodes/po/sr.po
index 0e2651f..5c0d164 100644
--- a/opcodes/po/sr.po
+++ b/opcodes/po/sr.po
@@ -1,14 +1,14 @@
# Serbian translation of opcodes.
# Copyright © 2020 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
-# МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>, 2016-2024.
+# МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>, 2016-2025.
#
msgid ""
msgstr ""
-"Project-Id-Version: opcodes-2.42.90\n"
+"Project-Id-Version: opcodes-2.44.90\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2024-07-20 12:57+0100\n"
-"PO-Revision-Date: 2024-12-15 14:25+0100\n"
+"POT-Creation-Date: 2025-07-13 08:45+0100\n"
+"PO-Revision-Date: 2025-08-31 08:13+0200\n"
"Last-Translator: МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(nothing)>\n"
"Language: sr\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Gtranslator 47.0\n"
+"X-Generator: Poedit 3.5\n"
#: aarch64-asm.c:895
msgid "specified register cannot be read from"
@@ -28,22 +28,22 @@ msgid "specified register cannot be written to"
msgstr "не могу да пишем у наведени региÑтар"
#. Invalid option.
-#: aarch64-dis.c:103 arc-dis.c:807 arm-dis.c:11953 kvx-dis.c:154
+#: aarch64-dis.c:103 arc-dis.c:795 arm-dis.c:11968 kvx-dis.c:154
#, c-format
msgid "unrecognised disassembler option: %s"
msgstr "непозната опција разложитеља: %s"
-#: aarch64-dis.c:4096
+#: aarch64-dis.c:4137
#, c-format
msgid "this `%s' should have an immediately preceding `%s'"
msgstr "ово „%s“ треба да има одмах претходеће „%s“"
-#: aarch64-dis.c:4103
+#: aarch64-dis.c:4144
#, c-format
msgid "expected `%s' after previous `%s'"
msgstr "очекивах „%s“ након претходног „%s“"
-#: aarch64-dis.c:4529
+#: aarch64-dis.c:4570
#, c-format
msgid ""
"\n"
@@ -54,7 +54,7 @@ msgstr ""
"Следеће опције разложитеља Ñпецифичне за „AARCH64“ Ñу подржане за коришћење\n"
"Ñа прекидачем „-M“ (више опција треба да Ñе раздвајају зарезима):\n"
-#: aarch64-dis.c:4533
+#: aarch64-dis.c:4574
#, c-format
msgid ""
"\n"
@@ -63,7 +63,7 @@ msgstr ""
"\n"
" no-aliases Ðе иÑпиÑује алијаÑе инÑтрукције.\n"
-#: aarch64-dis.c:4536
+#: aarch64-dis.c:4577
#, c-format
msgid ""
"\n"
@@ -72,7 +72,7 @@ msgstr ""
"\n"
" aliases ИÑпиÑује алијаÑе инÑтрукције.\n"
-#: aarch64-dis.c:4539
+#: aarch64-dis.c:4580
#, c-format
msgid ""
"\n"
@@ -81,7 +81,7 @@ msgstr ""
"\n"
" no-notes Ðе иÑпиÑује напомене инÑтрукције.\n"
-#: aarch64-dis.c:4542
+#: aarch64-dis.c:4583
#, c-format
msgid ""
"\n"
@@ -90,7 +90,7 @@ msgstr ""
"\n"
" notes ИÑпиÑује напомене инÑтрукције.\n"
-#: aarch64-dis.c:4546
+#: aarch64-dis.c:4587
#, c-format
msgid ""
"\n"
@@ -99,313 +99,312 @@ msgstr ""
"\n"
" debug_dump ВременÑки прекидач за праћење прочишћавања.\n"
-#: aarch64-dis.c:4550 arc-dis.c:1608 arc-dis.c:1631 arc-dis.c:1634
-#: kvx-dis.c:1586 loongarch-dis.c:337 mips-dis.c:2903 mips-dis.c:2915
-#: mips-dis.c:2918 nfp-dis.c:3002 riscv-dis.c:1568 riscv-dis.c:1571
+#: aarch64-dis.c:4591 arc-dis.c:1585 arc-dis.c:1608 arc-dis.c:1611
+#: kvx-dis.c:1586 loongarch-dis.c:342 mips-dis.c:2930 mips-dis.c:2942
+#: mips-dis.c:2945 nfp-dis.c:3002 riscv-dis.c:1750 riscv-dis.c:1753
#, c-format
msgid "\n"
msgstr "\n"
-#: aarch64-opc.c:1473
+#: aarch64-opc.c:1476
msgid "immediate value"
msgstr "вредноÑÑ‚ непоÑредног"
-#: aarch64-opc.c:1483
+#: aarch64-opc.c:1486
msgid "immediate offset"
msgstr "померај непоÑредног"
-#: aarch64-opc.c:1493
+#: aarch64-opc.c:1496
msgid "register number"
msgstr "број региÑтра"
-#: aarch64-opc.c:1503
+#: aarch64-opc.c:1506
msgid "register element index"
msgstr "Ð¸Ð½Ð´ÐµÐºÑ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð° региÑтра"
-#: aarch64-opc.c:1513
+#: aarch64-opc.c:1516
msgid "shift amount"
msgstr "Ð¸Ð·Ð½Ð¾Ñ Ð¿Ð¾Ð¼Ð°ÐºÐ°"
-#: aarch64-opc.c:1525
+#: aarch64-opc.c:1528
msgid "multiplier"
msgstr "множилац"
-#: aarch64-opc.c:1645
+#: aarch64-opc.c:1697
msgid "expected a selection register in the range w12-w15"
msgstr "очекивах региÑтар избора у опÑегу „w12-w15“"
-#: aarch64-opc.c:1649
+#: aarch64-opc.c:1701
msgid "expected a selection register in the range w8-w11"
msgstr "очекивах региÑтар избора у опÑегу „w8-w11“"
-#: aarch64-opc.c:1668
+#: aarch64-opc.c:1720
msgid "starting offset is not a multiple of 2"
msgstr "помак почетка није множилац броја 2"
-#: aarch64-opc.c:1669
+#: aarch64-opc.c:1721
msgid "starting offset is not a multiple of 4"
msgstr "помак почетка није множилац броја 4"
-#: aarch64-opc.c:1677
+#: aarch64-opc.c:1729
msgid "expected a single offset rather than a range"
msgstr "очекивах један помак умеÑто тог опÑега"
-#: aarch64-opc.c:1681
+#: aarch64-opc.c:1733
msgid "expected a range of two offsets"
msgstr "очекивах опÑег од два помака"
-#: aarch64-opc.c:1684
+#: aarch64-opc.c:1736
msgid "expected a range of four offsets"
msgstr "очекивах опÑег од четири помака"
-#: aarch64-opc.c:1765
+#: aarch64-opc.c:1817
msgid "second reg in pair should be xzr if first is xzr"
msgstr "други рег у пару треба да буде „xzr“ ако је први „xzr“"
-#: aarch64-opc.c:1779
+#: aarch64-opc.c:1831
msgid "reg pair must start from even reg"
msgstr "пар израза мора почети на парном изразу"
-#: aarch64-opc.c:1785
+#: aarch64-opc.c:1837
msgid "reg pair must be contiguous"
msgstr "пар израза мора бити непрекидан"
-#: aarch64-opc.c:1799
+#: aarch64-opc.c:1851
msgid "extraneous register"
msgstr "Ñтрани региÑтар"
-#: aarch64-opc.c:1805
+#: aarch64-opc.c:1857
msgid "missing register"
msgstr "недоÑтаје региÑтар"
-#: aarch64-opc.c:1816
+#: aarch64-opc.c:1868
msgid "stack pointer register expected"
msgstr "очекиван је региÑтар показивача Ñпремника"
-#: aarch64-opc.c:1953 aarch64-opc.c:1970
+#: aarch64-opc.c:2007 aarch64-opc.c:2023
msgid "start register out of range"
msgstr "региÑтар почетка је ван опÑега"
-#: aarch64-opc.c:2163 aarch64-opc.c:2171 aarch64-opc.c:2194
+#: aarch64-opc.c:2216 aarch64-opc.c:2224 aarch64-opc.c:2247
msgid "unexpected address writeback"
msgstr "неочекивано повратно пиÑање адреÑе"
-#: aarch64-opc.c:2182
+#: aarch64-opc.c:2235
msgid "address writeback expected"
msgstr "очекивано је повратно пиÑање адреÑе"
-#: aarch64-opc.c:2242
+#: aarch64-opc.c:2295
msgid "negative or unaligned offset expected"
msgstr "очекиван је негативан или непоравнат померај"
-#: aarch64-opc.c:2299
+#: aarch64-opc.c:2352
msgid "invalid register offset"
msgstr "неиÑправан померај региÑтра"
-#: aarch64-opc.c:2321
+#: aarch64-opc.c:2374
msgid "invalid post-increment amount"
msgstr "неиÑправан Ð¸Ð·Ð½Ð¾Ñ Ð¿Ð¾ÑÑ‚-увећања"
-#: aarch64-opc.c:2337 aarch64-opc.c:2889
+#: aarch64-opc.c:2390 aarch64-opc.c:2945
msgid "invalid shift amount"
msgstr "неиÑправан Ð¸Ð·Ð½Ð¾Ñ Ð¿Ð¾Ð¼Ð°ÐºÐ°"
-#: aarch64-opc.c:2350
+#: aarch64-opc.c:2403
msgid "invalid extend/shift operator"
msgstr "неиÑправан оператор проширења/помака"
-#: aarch64-opc.c:2396 aarch64-opc.c:2688 aarch64-opc.c:2723 aarch64-opc.c:2742
-#: aarch64-opc.c:2750 aarch64-opc.c:2842 aarch64-opc.c:3019 aarch64-opc.c:3119
-#: aarch64-opc.c:3132
-msgid "immediate out of range"
-msgstr "непоÑредни је ван опÑега"
-
-#: aarch64-opc.c:2426 aarch64-opc.c:2468 aarch64-opc.c:2532 aarch64-opc.c:2566
+#: aarch64-opc.c:2478 aarch64-opc.c:2520 aarch64-opc.c:2588 aarch64-opc.c:2622
msgid "invalid addressing mode"
msgstr "непознат режим адреÑирања"
-#: aarch64-opc.c:2524
+#: aarch64-opc.c:2580
msgid "index register xzr is not allowed"
msgstr "региÑтар индекÑа „xzr“ није допуштен"
-#: aarch64-opc.c:2593
+#: aarch64-opc.c:2649
msgid "invalid increment amount"
msgstr "неиÑправан Ð¸Ð·Ð½Ð¾Ñ ÑƒÐ²ÐµÑ›Ð°ÑšÐ°"
-#: aarch64-opc.c:2676 aarch64-opc.c:2698 aarch64-opc.c:2922 aarch64-opc.c:2930
-#: aarch64-opc.c:2996 aarch64-opc.c:3025
+#: aarch64-opc.c:2732 aarch64-opc.c:2754 aarch64-opc.c:2978 aarch64-opc.c:2986
+#: aarch64-opc.c:3052 aarch64-opc.c:3081
msgid "invalid shift operator"
msgstr "неиÑправан оператор помака"
-#: aarch64-opc.c:2682
+#: aarch64-opc.c:2738
msgid "shift amount must be 0 or 12"
msgstr "Ð¸Ð·Ð½Ð¾Ñ Ð¿Ð¾Ð¼Ð°ÐºÐ° мора бити 0 или 12"
-#: aarch64-opc.c:2705
+#: aarch64-opc.c:2744 aarch64-opc.c:2779 aarch64-opc.c:2798 aarch64-opc.c:2806
+#: aarch64-opc.c:2898 aarch64-opc.c:3075 aarch64-opc.c:3175 aarch64-opc.c:3188
+msgid "immediate out of range"
+msgstr "непоÑредни је ван опÑега"
+
+#: aarch64-opc.c:2761
msgid "shift amount must be a multiple of 16"
msgstr "Ð¸Ð·Ð½Ð¾Ñ Ð¿Ð¾Ð¼Ð°ÐºÐ° мора бити множилац од 16"
-#: aarch64-opc.c:2717
+#: aarch64-opc.c:2773
msgid "negative immediate value not allowed"
msgstr "негативна вредноÑÑ‚ непоÑредног није дозвољена"
-#: aarch64-opc.c:2853
+#: aarch64-opc.c:2909
msgid "immediate zero expected"
msgstr "очекиван је непоÑредни нула"
-#: aarch64-opc.c:2867
+#: aarch64-opc.c:2923
msgid "rotate expected to be 0, 90, 180 or 270"
msgstr "очекивано је да заокрет буде 0, 90, 180 или 270"
-#: aarch64-opc.c:2878
+#: aarch64-opc.c:2934
msgid "rotate expected to be 90 or 270"
msgstr "очекивано је да заокрет буде 90 или 270"
-#: aarch64-opc.c:2938
+#: aarch64-opc.c:2994
msgid "shift is not permitted"
msgstr "помак није допуштен"
-#: aarch64-opc.c:2963
+#: aarch64-opc.c:3019
msgid "invalid value for immediate"
msgstr "неиÑправна вредноÑÑ‚ за непоÑредног"
-#: aarch64-opc.c:2988
+#: aarch64-opc.c:3044
msgid "shift amount must be 0 or 16"
msgstr "Ð¸Ð·Ð½Ð¾Ñ Ð¿Ð¾Ð¼Ð°ÐºÐ° мора бити 0 или 16"
-#: aarch64-opc.c:3009
+#: aarch64-opc.c:3065
msgid "floating-point immediate expected"
msgstr "очекиван је непоÑредни Ñа покретним зарезом"
-#: aarch64-opc.c:3043
+#: aarch64-opc.c:3099
msgid "no shift amount allowed for 8-bit constants"
msgstr "Ð¸Ð·Ð½Ð¾Ñ Ð¿Ð¾Ð¼Ð°ÐºÐ° није допуштен за 8-битне конÑтанте"
-#: aarch64-opc.c:3053
+#: aarch64-opc.c:3109
msgid "shift amount must be 0 or 8"
msgstr "Ð¸Ð·Ð½Ð¾Ñ Ð¿Ð¾Ð¼Ð°ÐºÐ° мора бити 0 или 8"
-#: aarch64-opc.c:3066
+#: aarch64-opc.c:3122
msgid "immediate too big for element size"
msgstr "непоÑредни је превелик за величину елеммента"
-#: aarch64-opc.c:3073
+#: aarch64-opc.c:3129
msgid "invalid arithmetic immediate"
msgstr "неиÑправан непоÑредни аритметике"
-#: aarch64-opc.c:3087
+#: aarch64-opc.c:3143
msgid "floating-point value must be 0.5 or 1.0"
msgstr "вредноÑÑ‚ покретног зареза мора бити 0.5 или 1.0"
-#: aarch64-opc.c:3097
+#: aarch64-opc.c:3153
msgid "floating-point value must be 0.5 or 2.0"
msgstr "вредноÑÑ‚ покретног зареза мора бити 0.5 или 2.0"
-#: aarch64-opc.c:3107
+#: aarch64-opc.c:3163
msgid "floating-point value must be 0.0 or 1.0"
msgstr "вредноÑÑ‚ покретног зареза мора бити 0.0 или 1.0"
-#: aarch64-opc.c:3138
+#: aarch64-opc.c:3194
msgid "invalid replicated MOV immediate"
msgstr "неиÑправан реплицирани „MOV“ непоÑредни"
-#: aarch64-opc.c:3196
+#: aarch64-opc.c:3252
msgid "byte index must be a multiple of 8"
msgstr "Ð¸Ð½Ð´ÐµÐºÑ Ð±Ð°Ñ˜Ñ‚Ð° мора бити множилац броја 8"
-#: aarch64-opc.c:3234
+#: aarch64-opc.c:3290
msgid "the register-index form of PRFM does not accept opcodes in the range 24-31"
msgstr "облик Ð¸Ð½Ð´ÐµÐºÑ Ñ€ÐµÐ³Ð¸Ñтра „PRFM“-а не прихвата опкодове у опÑегу 24-31"
-#: aarch64-opc.c:3303
+#: aarch64-opc.c:3359
msgid "extend operator expected"
msgstr "очекиван је проширени оператор"
-#: aarch64-opc.c:3316
+#: aarch64-opc.c:3372
msgid "missing extend operator"
msgstr "недоÑтаје проширени оператор"
-#: aarch64-opc.c:3322
+#: aarch64-opc.c:3378
msgid "'LSL' operator not allowed"
msgstr "„LSL“ оператор није допуштен"
-#: aarch64-opc.c:3343
+#: aarch64-opc.c:3399
msgid "W register expected"
msgstr "„W“ региÑтар је очекиван"
-#: aarch64-opc.c:3354
+#: aarch64-opc.c:3410
msgid "shift operator expected"
msgstr "очекиван је оператор помака"
-#: aarch64-opc.c:3361
+#: aarch64-opc.c:3417
msgid "'ROR' operator not allowed"
msgstr "„ROR“ оператор није допуштен"
-#: aarch64-opc.c:4909
+#: aarch64-opc.c:4971
msgid "reading from a write-only register"
msgstr "читам из региÑтра Ñамо за пиÑање"
-#: aarch64-opc.c:4911
+#: aarch64-opc.c:4973
msgid "writing to a read-only register"
msgstr "пишем у региÑтар Ñамо за читање"
-#: aarch64-opc.c:5440
+#: aarch64-opc.c:5515
msgid "the three register operands must be distinct from one another"
msgstr "операнди три региÑтра морају бити различити"
-#: aarch64-opc.c:5551
+#: aarch64-opc.c:5626
msgid "destination register differs from preceding instruction"
msgstr "региÑтар одредишта Ñе разликује од претходеће инÑтрукције"
-#: aarch64-opc.c:5554
+#: aarch64-opc.c:5629
msgid "source register differs from preceding instruction"
msgstr "региÑтар изворишта Ñе разликује од претходеће инÑтрукције"
-#: aarch64-opc.c:5557
+#: aarch64-opc.c:5632
msgid "size register differs from preceding instruction"
msgstr "региÑтар величине Ñе разликује од претходеће инÑтрукције"
-#: aarch64-opc.c:5605
+#: aarch64-opc.c:5680
msgid "instruction opens new dependency sequence without ending previous one"
msgstr "инÑтрукција је отворила нови низ завиÑноÑти а да није завршила претходни"
-#: aarch64-opc.c:5634
+#: aarch64-opc.c:5709
msgid "previous `movprfx' sequence not closed"
msgstr "претходни „movprfx“ низ није затворен"
-#: aarch64-opc.c:5654
+#: aarch64-opc.c:5740
msgid "SVE instruction expected after `movprfx'"
msgstr "инÑтрукција „SVE“ је очекивана након „movprfx“"
-#: aarch64-opc.c:5667
+#: aarch64-opc.c:5753
msgid "SVE `movprfx' compatible instruction expected"
msgstr "очекивана је „SVE movprfx“ ÑаглаÑна инÑтрукција"
-#: aarch64-opc.c:5755
+#: aarch64-opc.c:5841
msgid "predicated instruction expected after `movprfx'"
msgstr "предвиђена инÑтрукција је очекивана након „movprfx“"
-#: aarch64-opc.c:5767
+#: aarch64-opc.c:5853
msgid "merging predicate expected due to preceding `movprfx'"
msgstr "Ñтапање предиката је очекивано уÑлед претходећег „movprfx“"
-#: aarch64-opc.c:5779
+#: aarch64-opc.c:5865
msgid "predicate register differs from that in preceding `movprfx'"
msgstr "региÑтрар предиката Ñе разликује од оног у претходећем „movprfx“"
-#: aarch64-opc.c:5798
+#: aarch64-opc.c:5884
msgid "output register of preceding `movprfx' not used in current instruction"
msgstr "региÑтар излаза претходеће „movprfx“ није коришћен у текућој инÑтрукцији"
-#: aarch64-opc.c:5811
+#: aarch64-opc.c:5897
msgid "output register of preceding `movprfx' expected as output"
msgstr "региÑтар излаза претходеће „movprfx“ је очекиван као излаз"
-#: aarch64-opc.c:5823
+#: aarch64-opc.c:5909
msgid "output register of preceding `movprfx' used as input"
msgstr "региÑтар излаза претходеће „movprfx“ је коришћен као улаз"
-#: aarch64-opc.c:5839
+#: aarch64-opc.c:5925
msgid "register size not compatible with previous `movprfx'"
msgstr "величина региÑтра није ÑаглаÑна Ñа претходним „movprfx“"
@@ -417,7 +416,7 @@ msgstr "операнд гране није поравнат"
msgid "jump hint unaligned"
msgstr "погодак Ñкока није поравнат"
-#: arc-dis.c:380
+#: arc-dis.c:368
msgid ""
"\n"
"Warning: disassembly may be wrong due to guessed opcode class choice.\n"
@@ -429,16 +428,16 @@ msgstr ""
"КориÑтите „-M<class[,class]>“ да изаберете иÑправан разред опкода.\n"
"\t\t\t\t"
-#: arc-dis.c:442
+#: arc-dis.c:430
msgid "An error occurred while generating the extension instruction operations"
msgstr "Дошло је до грешке приликом Ñтварања радњи инÑтрукција проширења"
-#: arc-dis.c:850
+#: arc-dis.c:838
#, c-format
msgid "unrecognised disassembler CPU option: %s"
msgstr "непозната опција процеÑора разложитеља: %s"
-#: arc-dis.c:1324
+#: arc-dis.c:1300
msgid ""
"\n"
"Warning: illegal use of double register pair.\n"
@@ -446,47 +445,47 @@ msgstr ""
"\n"
"Упозорење: неиÑправна употреба двоÑтруког пара региÑтра.\n"
-#: arc-dis.c:1490
+#: arc-dis.c:1467
msgid "Enforce the designated architecture while decoding."
msgstr "Приморава оÑмишљену архитектуру приликом декодирања."
-#: arc-dis.c:1492
+#: arc-dis.c:1469
msgid "Recognize DSP instructions."
msgstr "Препознаје „DSP“ инÑтрукције."
-#: arc-dis.c:1494
+#: arc-dis.c:1471
msgid "Recognize FPX SP instructions."
msgstr "Препознаје „FPX SP“ инÑтрукције."
-#: arc-dis.c:1496
+#: arc-dis.c:1473
msgid "Recognize FPX DP instructions."
msgstr "Препознаје „FPX DP“ инÑтрукције."
-#: arc-dis.c:1498
+#: arc-dis.c:1475
msgid "Recognize FPU QuarkSE-EM instructions."
msgstr "Препознаје „FPU QuarkSE-EM“ инÑтрукције."
-#: arc-dis.c:1500
+#: arc-dis.c:1477
msgid "Recognize double assist FPU instructions."
msgstr "Препознаје двоÑтруко припомогнуте „FPU“ инÑтрукције."
-#: arc-dis.c:1502
+#: arc-dis.c:1479
msgid "Recognize single precision FPU instructions."
msgstr "Препознаје „FPU“ инÑтрукције једноÑтруке тачноÑти."
-#: arc-dis.c:1504
+#: arc-dis.c:1481
msgid "Recognize double precision FPU instructions."
msgstr "Препознаје „FPU“ инÑтрукције двоÑтруке тачноÑти."
-#: arc-dis.c:1506
+#: arc-dis.c:1483
msgid "Recognize NPS400 instructions."
msgstr "Препознаје „NPS400“ инÑтрукције."
-#: arc-dis.c:1508
+#: arc-dis.c:1485
msgid "Use only hexadecimal number to print immediates."
msgstr "КориÑти Ñамо хекÑадецимални број за иÑпиÑивање непоÑредних."
-#: arc-dis.c:1583
+#: arc-dis.c:1560
#, c-format
msgid ""
"\n"
@@ -497,7 +496,7 @@ msgstr ""
"Следеће опције разложитеља Ñпецифичне за „ARC“ Ñу подржане за коришћење\n"
"Ñа прекидачем „-M“ (више опција треба да Ñе раздвајају зарезима):\n"
-#: arc-dis.c:1617 mips-dis.c:2910 riscv-dis.c:1563
+#: arc-dis.c:1594 mips-dis.c:2937 riscv-dis.c:1745
#, c-format
msgid ""
"\n"
@@ -508,7 +507,7 @@ msgstr ""
" За опције изнад, Ñледеће опције Ñу подржане за „%s“:\n"
" "
-#: arc-dis.c:1627
+#: arc-dis.c:1604
#, c-format
msgid ""
"\n"
@@ -678,63 +677,63 @@ msgstr "вредноÑÑ‚ мор бити у опÑегу од 0 до 31"
msgid "invalid position, should be one of: 0,4,8,...124."
msgstr "неиÑправан положај, треба да буде: 0,4,8,...или 124."
-#: arm-dis.c:4932
+#: arm-dis.c:4934
msgid "Select raw register names"
msgstr "Бира Ñирове називе региÑтра"
-#: arm-dis.c:4934
+#: arm-dis.c:4936
msgid "Select register names used by GCC"
msgstr "Бира називе региÑтра које кориÑти „GCC“"
-#: arm-dis.c:4936
+#: arm-dis.c:4938
msgid "Select register names used in ARM's ISA documentation"
msgstr "Бира називе региÑтра коришћене у „ISA“ документацији „ARM“-а"
-#: arm-dis.c:4938
+#: arm-dis.c:4940
msgid "Assume all insns are Thumb insns"
msgstr "ПретпоÑтавља да Ñу Ñви инÑнÑи „Thumb“ инÑнÑи"
-#: arm-dis.c:4939
+#: arm-dis.c:4941
msgid "Examine preceding label to determine an insn's type"
msgstr "ПроиÑпитује претходећи Ð½Ð°Ñ‚Ð¿Ð¸Ñ Ð´Ð° одреди врÑту „insn“-а"
-#: arm-dis.c:4940
+#: arm-dis.c:4942
msgid "Select register names used in the APCS"
msgstr "Бира називе региÑтра који Ñе кориÑте у „APCS“-у"
-#: arm-dis.c:4942
+#: arm-dis.c:4944
msgid "Select register names used in the ATPCS"
msgstr "Бира називе региÑтра који Ñе кориÑте у „ATPCS“-у"
-#: arm-dis.c:4944
+#: arm-dis.c:4946
msgid "Select special register names used in the ATPCS"
msgstr "Бира поÑебне називе региÑтра који Ñе кориÑте у „ATPCS“-у"
-#: arm-dis.c:4946
+#: arm-dis.c:4948
msgid "Enable CDE extensions for coprocessor N space"
msgstr "Укључује „CDE“ проширења за N проÑтор копроцеÑора"
-#: arm-dis.c:11914
+#: arm-dis.c:11929
#, c-format
msgid "unrecognised register name set: %s"
msgstr "непознат назив региÑтра је подешен: %s"
-#: arm-dis.c:11928
+#: arm-dis.c:11943
#, c-format
msgid "cde coprocessor not between 0-7: %s"
msgstr "„cde“ копроцеÑор није између 0-7: %s"
-#: arm-dis.c:11934
+#: arm-dis.c:11949
#, c-format
msgid "coproc must have an argument: %s"
msgstr "копроцеÑор мора имати аргумент: %s"
-#: arm-dis.c:11947
+#: arm-dis.c:11962
#, c-format
msgid "coprocN argument takes options \"generic\", \"cde\", or \"CDE\": %s"
msgstr "аргумент копроцN може да има опције „generic“, „cde“, или „CDE“: %s"
-#: arm-dis.c:12663
+#: arm-dis.c:12684
#, c-format
msgid ""
"\n"
@@ -783,7 +782,7 @@ msgstr ""
" hex,oct,dec ИÑпиÑује бројевну оÑнову за непоÑреднике.\n"
#. The option without '=' should be defined above.
-#: bpf-dis.c:90 riscv-dis.c:125 riscv-dis.c:162
+#: bpf-dis.c:90 riscv-dis.c:124 riscv-dis.c:162
#, c-format
msgid "unrecognized disassembler option: %s"
msgstr "непозната опција разложитеља: %s"
@@ -847,12 +846,12 @@ msgstr "Ðепозната грешка %d\n"
msgid "Address 0x%<PRIx64> is out of bounds.\n"
msgstr "ÐдреÑа 0Ñ…%<PRIx64> је изван граница.\n"
-#: disassemble.c:862
+#: disassemble.c:854
#, c-format
msgid "assertion fail %s:%d"
msgstr "неуÑпех тврдње „%s:%d“"
-#: disassemble.c:863
+#: disassemble.c:855
msgid "Please report this bug"
msgstr "ИзвеÑтите о овој грешци"
@@ -1131,11 +1130,11 @@ msgstr "Hmmmm 0x%x"
msgid "Don't understand 0x%x \n"
msgstr "Ðе разумем 0x%x \n"
-#: i386-dis.c:8336
+#: i386-dis.c:8738
msgid "<internal disassembler error>"
msgstr "<унутрашња грешка разложитеља>"
-#: i386-dis.c:8584
+#: i386-dis.c:8986
#, c-format
msgid ""
"\n"
@@ -1146,32 +1145,32 @@ msgstr ""
"Следеће опције разложитеља Ñпецифичне за „i386/x86-64“ Ñу подржане за коришћење\n"
"Ñа прекидачем „-M“ (више опција треба да Ñе раздвајају зарезима):\n"
-#: i386-dis.c:8588
+#: i386-dis.c:8990
#, c-format
msgid " x86-64 Disassemble in 64bit mode\n"
msgstr " x86-64 Разлаже у режиму 64-бита\n"
-#: i386-dis.c:8589
+#: i386-dis.c:8991
#, c-format
msgid " i386 Disassemble in 32bit mode\n"
msgstr " i386 Разлаже у режиму 32-бита\n"
-#: i386-dis.c:8590
+#: i386-dis.c:8992
#, c-format
msgid " i8086 Disassemble in 16bit mode\n"
msgstr " i8086 Разлаже у режиму 16-бита\n"
-#: i386-dis.c:8591
+#: i386-dis.c:8993
#, c-format
msgid " att Display instruction in AT&T syntax\n"
msgstr " att Приказује инÑтрукцију у ÑинтакÑи „AT&T“-ја\n"
-#: i386-dis.c:8592
+#: i386-dis.c:8994
#, c-format
msgid " intel Display instruction in Intel syntax\n"
msgstr " intel Приказује инÑтрукцију у ÑинтакÑи Интела\n"
-#: i386-dis.c:8593
+#: i386-dis.c:8995
#, c-format
msgid ""
" att-mnemonic (AT&T syntax only)\n"
@@ -1180,7 +1179,7 @@ msgstr ""
" att-mnemonic (Ñамо AT&T ÑинтакÑа)\n"
" Приказује инÑтрукцију Ñа AT&T мнемоником\n"
-#: i386-dis.c:8595
+#: i386-dis.c:8997
#, c-format
msgid ""
" intel-mnemonic (AT&T syntax only)\n"
@@ -1189,47 +1188,47 @@ msgstr ""
" intel-mnemonic (Ñамо AT&T ÑинтакÑа)\n"
" Приказује инÑтрукцију Ñа Интел мнемоником\n"
-#: i386-dis.c:8597
+#: i386-dis.c:8999
#, c-format
msgid " addr64 Assume 64bit address size\n"
msgstr " addr64 ПретпоÑтавља величину адреÑе од 64 бита\n"
-#: i386-dis.c:8598
+#: i386-dis.c:9000
#, c-format
msgid " addr32 Assume 32bit address size\n"
msgstr " addr32 ПретпоÑтавља величину адреÑе од 32 бита\n"
-#: i386-dis.c:8599
+#: i386-dis.c:9001
#, c-format
msgid " addr16 Assume 16bit address size\n"
msgstr " addr16 ПретпоÑтавља величину адреÑе од 16 бита\n"
-#: i386-dis.c:8600
+#: i386-dis.c:9002
#, c-format
msgid " data32 Assume 32bit data size\n"
msgstr " data32 ПретпоÑтавља величину података од 32 бита\n"
-#: i386-dis.c:8601
+#: i386-dis.c:9003
#, c-format
msgid " data16 Assume 16bit data size\n"
msgstr " data16 ПретпоÑтавља величину података од 16 бита\n"
-#: i386-dis.c:8602
+#: i386-dis.c:9004
#, c-format
msgid " suffix Always display instruction suffix in AT&T syntax\n"
msgstr " suffix Увек приказује ÑÑƒÑ„Ð¸ÐºÑ Ð¸Ð½Ñтрукције у ÑинтакÑи „AT&T“-ја\n"
-#: i386-dis.c:8603
+#: i386-dis.c:9005
#, c-format
msgid " amd64 Display instruction in AMD64 ISA\n"
msgstr " amd64 Приказује инÑтрукцију у „AMD64 ISA“\n"
-#: i386-dis.c:8604
+#: i386-dis.c:9006
#, c-format
msgid " intel64 Display instruction in Intel64 ISA\n"
msgstr " intel64 Приказује инÑтрукције у „Intel64 ISA“\n"
-#: i386-dis.c:9374
+#: i386-dis.c:9796
msgid "64-bit address is disabled"
msgstr "64-битна адреÑа је иÑкључена"
@@ -1396,7 +1395,7 @@ msgstr "унутрашња грешка: lm32_cgen_cpu_open: неподржан
msgid "internal error: lm32_cgen_cpu_open: no endianness specified"
msgstr "унутрашња грешка: lm32_cgen_cpu_open: ниÑу наведене крајњоÑти"
-#: loongarch-dis.c:329
+#: loongarch-dis.c:334
#, c-format
msgid ""
"\n"
@@ -1407,7 +1406,7 @@ msgstr ""
"Следеће опције разложитеља „LoongArch“ Ñу подржане за коришћење\n"
"Ñа прекидачем „-M“ (више опција треба раздвојити зарезима):\n"
-#: loongarch-dis.c:333
+#: loongarch-dis.c:338
#, c-format
msgid ""
"\n"
@@ -1416,7 +1415,7 @@ msgstr ""
"\n"
" no-aliases КориÑти облике пропиÑне инÑтрукције.\n"
-#: loongarch-dis.c:335
+#: loongarch-dis.c:340
#, c-format
msgid ""
"\n"
@@ -1539,12 +1538,12 @@ msgstr "унутрашња грешка: m32r_cgen_cpu_open: неподржан
msgid "internal error: m32r_cgen_cpu_open: no endianness specified"
msgstr "унутрашња грешка: m32r_cgen_cpu_open: ниÑу наведене крајњоÑти"
-#: m68k-dis.c:1403
+#: m68k-dis.c:1405
#, c-format
msgid "<function code %d>"
msgstr "<код функције %d>"
-#: m68k-dis.c:1567
+#: m68k-dis.c:1590
#, c-format
msgid "<internal error in opcode table: %s %s>\n"
msgstr "<унутрашња грешка у табели опкода: %s %s>\n"
@@ -1602,24 +1601,24 @@ msgstr "унутрашња грешка: mep_cgen_cpu_open: ниÑу наведÐ
msgid "illegal MEP INDEX setting '%x' in ELF header e_flags field"
msgstr "неиÑправна „MEP INDEX“ поÑтавка „%x“ у пољу „e_flags“ ЕЛФ заглавља"
-#: mips-dis.c:1907 mips-dis.c:2140
+#: mips-dis.c:1934 mips-dis.c:2167
#, c-format
msgid "# internal error, undefined operand in `%s %s'"
msgstr "# унутрашња грешка, неодређени операнд у „%s %s“"
-#: mips-dis.c:2745
+#: mips-dis.c:2772
msgid "Use canonical instruction forms.\n"
msgstr "КориÑти облике пропиÑне инÑтрукције.\n"
-#: mips-dis.c:2747
+#: mips-dis.c:2774
msgid "Recognize MSA instructions.\n"
msgstr "Препознаје „MSA“ инÑтрукције.\n"
-#: mips-dis.c:2749
+#: mips-dis.c:2776
msgid "Recognize the virtualization ASE instructions.\n"
msgstr "Препознаје „ASE“ инÑтрукције виртуелизације.\n"
-#: mips-dis.c:2751
+#: mips-dis.c:2778
msgid ""
"Recognize the eXtended Physical Address (XPA) ASE\n"
" instructions.\n"
@@ -1627,27 +1626,27 @@ msgstr ""
"Препознаје „eXtended Physical Address (XPA) ASE“\n"
" инÑтрукције.\n"
-#: mips-dis.c:2754
+#: mips-dis.c:2781
msgid "Recognize the Global INValidate (GINV) ASE instructions.\n"
msgstr "Препознаје „Global INValidate (GINV) ASE“ инÑтрукције.\n"
-#: mips-dis.c:2758
+#: mips-dis.c:2785
msgid "Recognize the Loongson MultiMedia extensions Instructions (MMI) ASE instructions.\n"
msgstr "Препознаје „Loongson MultiMedia extensions Instructions (MMI) ASE“ инÑтрукције.\n"
-#: mips-dis.c:2762
+#: mips-dis.c:2789
msgid "Recognize the Loongson Content Address Memory (CAM) instructions.\n"
msgstr "Препознаје „Loongson Content Address Memory (CAM)“ инÑтрукције.\n"
-#: mips-dis.c:2766
+#: mips-dis.c:2793
msgid "Recognize the Loongson EXTensions (EXT) instructions.\n"
msgstr "Препознаје „Loongson EXTensions (EXT)“ инÑтрукције.\n"
-#: mips-dis.c:2770
+#: mips-dis.c:2797
msgid "Recognize the Loongson EXTensions R2 (EXT2) instructions.\n"
msgstr "Препознаје „Loongson EXTensions R2 (EXT2)“ инÑтрукције.\n"
-#: mips-dis.c:2773
+#: mips-dis.c:2800
msgid ""
"Print GPR names according to specified ABI.\n"
" Default: based on binary being disassembled.\n"
@@ -1655,7 +1654,7 @@ msgstr ""
"ИÑпиÑује „GPR“ називе у Ñкладу Ñа наведеним „ABI“-јем.\n"
" ОÑновно: у завиÑноÑти од разложеног бинарног.\n"
-#: mips-dis.c:2776
+#: mips-dis.c:2803
msgid ""
"Print FPR names according to specified ABI.\n"
" Default: numeric.\n"
@@ -1663,7 +1662,7 @@ msgstr ""
"ИÑпиÑује „FPR“ називе у Ñкладу Ñа наведеним „ABI“-јем.\n"
" ОÑновно: број.\n"
-#: mips-dis.c:2779
+#: mips-dis.c:2806
msgid ""
"Print CP0 register names according to specified architecture.\n"
" Default: based on binary being disassembled.\n"
@@ -1671,7 +1670,7 @@ msgstr ""
"ИÑпиÑује „CP0“ називе региÑтра у Ñкладу Ñа наведеном архитектуром.\n"
" ОÑновно: у завиÑноÑти од разложеног бинарног.\n"
-#: mips-dis.c:2783
+#: mips-dis.c:2810
msgid ""
"Print HWR names according to specified architecture.\n"
" Default: based on binary being disassembled.\n"
@@ -1679,11 +1678,11 @@ msgstr ""
"ИÑпиÑује „HWR“ називе у Ñкладу Ñа наведеном архитектуром.\n"
" ОÑновно: у завиÑноÑти од разложеног бинарног.\n"
-#: mips-dis.c:2786
+#: mips-dis.c:2813
msgid "Print GPR and FPR names according to specified ABI.\n"
msgstr "ИÑпиÑује „GPR“ и „FPR“ називе у Ñкладу Ñа наведеним „ABI“-јем.\n"
-#: mips-dis.c:2788
+#: mips-dis.c:2815
msgid ""
"Print CP0 register and HWR names according to specified\n"
" architecture."
@@ -1691,7 +1690,7 @@ msgstr ""
"ИÑпиÑује „CP0“ региÑтар и „HWR“ називе у Ñкладу Ñа наведеном\n"
" архитектуром."
-#: mips-dis.c:2874
+#: mips-dis.c:2901
#, c-format
msgid ""
"\n"
@@ -1879,16 +1878,6 @@ msgstr ""
" ctx4\t\t Приморава разложитеља да кориÑти 4-контекÑтни режим.\n"
" ctx8\t\t Приморава 8-контекÑтни режим, таје предноÑÑ‚."
-#: nios2-dis.c:135
-#, c-format
-msgid "out of memory"
-msgstr "нема више меморије"
-
-#: nios2-dis.c:263
-#, c-format
-msgid "internal error: broken opcode descriptor for `%s %s'"
-msgstr "унутрашња грешка: оштећен опиÑник опкода за „%s %s“"
-
#. I and Z are output operands and can`t be immediate
#. A is an address and we can`t have the address of
#. an immediate either. We don't know how much to increase
@@ -1907,17 +1896,17 @@ msgstr "премештај је неиÑправан за Ñпремиште"
msgid "internal relocation type invalid"
msgstr "унутрашња врÑта премештаја је неиÑправна"
-#: or1k-desc.c:2041
+#: or1k-desc.c:2043
#, c-format
msgid "internal error: or1k_cgen_rebuild_tables: conflicting insn-chunk-bitsize values: `%d' vs. `%d'"
msgstr "унутрашња грешка: or1k_cgen_rebuild_tables: Ñукобљене „insn-chunk-bitsize“ вредноÑти: %d наÑпрам %d"
-#: or1k-desc.c:2129
+#: or1k-desc.c:2131
#, c-format
msgid "internal error: or1k_cgen_cpu_open: unsupported argument `%d'"
msgstr "унутрашња грешка: or1k_cgen_cpu_open: неподржан аргумент „%d“"
-#: or1k-desc.c:2148
+#: or1k-desc.c:2150
#, c-format
msgid "internal error: or1k_cgen_cpu_open: no endianness specified"
msgstr "унутрашња грешка: or1k_cgen_cpu_open: ниÑу наведене крајњоÑти"
@@ -1927,7 +1916,7 @@ msgstr "унутрашња грешка: or1k_cgen_cpu_open: ниÑу навед
msgid "warning: ignoring unknown -M%s option"
msgstr "упозорење: занемарујем непознату опцију „-M%s“"
-#: ppc-dis.c:1266
+#: ppc-dis.c:1276
#, c-format
msgid ""
"\n"
@@ -1966,109 +1955,113 @@ msgstr "покуђавам да подеÑим „at“ битове када к
msgid "invalid offset: must be in the range [-512, -8] and be a multiple of 8"
msgstr "неиÑправан померај: мора бити у опÑегу [-512, -8] и мора бити производ 8"
-#: ppc-opc.c:706
+#: ppc-opc.c:752
msgid "invalid R operand"
msgstr "неиÑправан „R“ операнд"
-#: ppc-opc.c:761
+#: ppc-opc.c:807
msgid "invalid mask field"
msgstr "неиÑправно поље маÑке"
-#: ppc-opc.c:784
+#: ppc-opc.c:830
msgid "invalid mfcr mask"
msgstr "неиÑправна „mfcr“ маÑка"
-#: ppc-opc.c:902 ppc-opc.c:920
+#: ppc-opc.c:948 ppc-opc.c:966
msgid "illegal L operand value"
msgstr "неиÑправна вредноÑÑ‚ „L“ операнда"
-#: ppc-opc.c:943
+#: ppc-opc.c:989
msgid "illegal WC operand value"
msgstr "неиÑправна вредноÑÑ‚ „WC“ операнда"
-#: ppc-opc.c:1040
+#: ppc-opc.c:1086
msgid "incompatible L operand value"
msgstr "неÑаглаÑна вредноÑÑ‚ „L“ операнда"
-#: ppc-opc.c:1239 ppc-opc.c:1274
+#: ppc-opc.c:1285 ppc-opc.c:1320
msgid "illegal bitmask"
msgstr "неиÑправна битмаÑка"
-#: ppc-opc.c:1418
+#: ppc-opc.c:1464
msgid "address register in load range"
msgstr "региÑтар адреÑе у опÑегу учитавања"
-#: ppc-opc.c:1458
+#: ppc-opc.c:1504
msgid "illegal PL operand value"
msgstr "неиÑправна вредноÑÑ‚ „PL“ операнда"
-#: ppc-opc.c:1539
+#: ppc-opc.c:1585
msgid "index register in load range"
msgstr "региÑтар индекÑа у опÑегу учитавања"
-#: ppc-opc.c:1568 ppc-opc.c:1654
+#: ppc-opc.c:1614 ppc-opc.c:1700
msgid "source and target register operands must be different"
msgstr "операнди изворног и циљног региÑтра морају бити различити"
-#: ppc-opc.c:1599
-msgid "invalid register operand when updating"
-msgstr "неиÑправан операнд региÑтра приликом оÑвежавања"
+#: ppc-opc.c:1645
+msgid "invalid base address register operand"
+msgstr "неиÑправна операнд региÑтра оÑновне адреÑе"
-#: ppc-opc.c:1717
+#: ppc-opc.c:1763
msgid "illegal immediate value"
msgstr "неиÑправна вредноÑÑ‚ непоÑредног"
-#: ppc-opc.c:2024
+#: ppc-opc.c:2070
msgid "invalid bat number"
msgstr "неиÑправан бат број"
-#: ppc-opc.c:2059
+#: ppc-opc.c:2105
msgid "invalid sprg number"
msgstr "неиÑправан Ñпрг број"
-#: ppc-opc.c:2096
+#: ppc-opc.c:2142
msgid "invalid tbr number"
msgstr "неиÑправан тбр број"
-#: ppc-opc.c:2203 ppc-opc.c:2271
+#: ppc-opc.c:2249 ppc-opc.c:2317
msgid "VSR overlaps ACC operand"
msgstr "„VSR“ преклапа „ACC“ операнд"
-#: ppc-opc.c:2380
+#: ppc-opc.c:2426
msgid "invalid constant"
msgstr "неиÑправна конÑтанта"
-#: ppc-opc.c:2482 ppc-opc.c:2505 ppc-opc.c:2528 ppc-opc.c:2551
+#: ppc-opc.c:2448
+msgid "invalid M value"
+msgstr "неиÑправна „М“ вредноÑÑ‚"
+
+#: ppc-opc.c:2550 ppc-opc.c:2573 ppc-opc.c:2596 ppc-opc.c:2619
msgid "UIMM = 00000 is illegal"
msgstr "„UIMM = 00000“ је неиÑправно"
-#: ppc-opc.c:2574
+#: ppc-opc.c:2642
msgid "UIMM values >7 are illegal"
msgstr "„UIMM“ вредноÑти >7 Ñу неиÑправне"
-#: ppc-opc.c:2597
+#: ppc-opc.c:2665
msgid "UIMM values >15 are illegal"
msgstr "„UIMM“ вредноÑти >15 Ñу неиÑправне"
-#: ppc-opc.c:2620
+#: ppc-opc.c:2688
msgid "GPR odd is illegal"
msgstr "непарно „GPR“ је неиÑправно"
-#: ppc-opc.c:2643 ppc-opc.c:2666
+#: ppc-opc.c:2711 ppc-opc.c:2734
msgid "invalid offset"
msgstr "неиÑправан померај"
-#: ppc-opc.c:2689
+#: ppc-opc.c:2757
msgid "invalid Ddd value"
msgstr "неиÑправна „Ddd“ вредноÑÑ‚"
-#: ppc-opc.c:2742 ppc-opc.c:2769
+#: ppc-opc.c:2810 ppc-opc.c:2837
msgid "invalid TH value"
msgstr "неиÑправна „TH“ вредноÑÑ‚"
#. Invalid options with '=', no option name before '=',
#. and no value after '='.
-#: riscv-dis.c:133
+#: riscv-dis.c:132
#, c-format
msgid "unrecognized disassembler option with '=': %s"
msgstr "непозната опција разложитеља Ñа знаком =: %s"
@@ -2083,24 +2076,28 @@ msgstr "непозната одредба привилегије поÑтављÐ
msgid "mis-matched privilege spec set by %s=%s, the elf privilege attribute is %s"
msgstr "неодговарајућу одредбу привилегије је поÑтавио „%s=%s“, атрибут елф привилегије је „%s“"
-#: riscv-dis.c:846
+#: riscv-dis.c:929
#, c-format
msgid "# internal error, undefined modifier (%c)"
msgstr "# унутрашња грешка, неодређени измењивач (%c)"
-#: riscv-dis.c:1444
+#: riscv-dis.c:1623
+msgid "Disassemble without checking architecture string."
+msgstr "Разлаже без провере ниÑке архитектуре."
+
+#: riscv-dis.c:1626
msgid "Print numeric register names, rather than ABI names."
msgstr "ИÑпиÑује бројчане називе региÑтра, умеÑто „ABI“ називе."
-#: riscv-dis.c:1447
+#: riscv-dis.c:1629
msgid "Disassemble only into canonical instructions."
msgstr "Рашчлањује Ñамо у канонÑке инÑтрукције."
-#: riscv-dis.c:1450
+#: riscv-dis.c:1632
msgid "Print the CSR according to the chosen privilege spec."
msgstr "ИÑпиÑује „CSR“ у Ñкладу Ñа изабраном одредбом привилегије."
-#: riscv-dis.c:1526
+#: riscv-dis.c:1708
#, c-format
msgid ""
"\n"
@@ -2165,7 +2162,7 @@ msgstr "ИÑпиÑује Ð¾Ð¿Ð¸Ñ Ð¸Ð½Ñтрукције као коментар
msgid "unknown S/390 disassembler option: %s"
msgstr "непозната опција „S/390“ разложитеља: %s"
-#: s390-dis.c:527
+#: s390-dis.c:584
#, c-format
msgid ""
"\n"
@@ -2375,6 +2372,17 @@ msgstr "унутрашња грешка: xstormy16_cgen_cpu_open: неподрж
msgid "internal error: xstormy16_cgen_cpu_open: no endianness specified"
msgstr "унутрашња грешка: xstormy16_cgen_cpu_open: ниÑу наведене крајњоÑти"
+#, c-format
+#~ msgid "out of memory"
+#~ msgstr "нема више меморије"
+
+#, c-format
+#~ msgid "internal error: broken opcode descriptor for `%s %s'"
+#~ msgstr "унутрашња грешка: оштећен опиÑник опкода за „%s %s“"
+
+#~ msgid "invalid register operand when updating"
+#~ msgstr "неиÑправан операнд региÑтра приликом оÑвежавања"
+
#~ msgid "<illegal precision>"
#~ msgstr "<неиÑправна тачноÑÑ‚>"
diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c
index 712cd31..028295a 100644
--- a/opcodes/ppc-opc.c
+++ b/opcodes/ppc-opc.c
@@ -3813,6 +3813,7 @@ const struct powerpc_operand powerpc_operands[] =
#define R RMC + 1
#define MP R
+#define UIMM1 R
#define P1 R
{ 0x1, 16, NULL, NULL, 0 },
@@ -4406,6 +4407,12 @@ const unsigned int num_powerpc_operands = ARRAY_SIZE (powerpc_operands);
/* A VX form instruction. */
#define VX(op, xop) (OP (op) | (((uint64_t)(xop)) & 0x7ff))
+/* A VX form instruction with selector bit */
+#define VXSEL5(op, xop, sel) (VX(op, xop) | (((sel) & 0x1f) << 16))
+#define VXSEL4(op, xop, sel) (VX(op, xop) | (((sel) & 0xf) << 17))
+#define VXSEL3(op, xop, sel) (VX(op, xop) | (((sel) & 0x7) << 18))
+#define VXSEL2(op, xop, sel) (VX(op, xop) | (((sel) & 0x3) << 19))
+
/* The mask for an VX form instruction. */
#define VX_MASK VX(0x3f, 0x7ff)
@@ -4497,6 +4504,9 @@ const unsigned int num_powerpc_operands = ARRAY_SIZE (powerpc_operands);
/* A VX_MASK with a UIMM2 field. */
#define VXUIMM2_MASK (VX_MASK | (0x7 << 18))
+/* A VX_MASK with a UIMM1 field. */
+#define VXUIMM1_MASK (VX_MASK | (0xf << 17))
+
/* A VX_MASK with a PS field. */
#define VXPS_MASK (VX_MASK & ~(0x1 << 9))
@@ -5212,6 +5222,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"vaddubm", VX (4, 0), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
{"vmul10cuq", VX (4, 1), VXVB_MASK, PPCVEC3, 0, {VD, VA}},
{"vmaxub", VX (4, 2), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
+{"vucmprhn", VX (4, 3), VX_MASK, FUTURE, 0, {VD, VA, VB}},
{"vrlb", VX (4, 4), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
{"vrlq", VX (4, 5), VX_MASK, POWER10, 0, {VD, VA, VB}},
{"vcmpequb", VXR(4, 6,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
@@ -5305,6 +5316,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"vadduhm", VX (4, 64), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
{"vmul10ecuq", VX (4, 65), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
{"vmaxuh", VX (4, 66), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
+{"vucmprln", VX (4, 67), VX_MASK, FUTURE, 0, {VD, VA, VB}},
{"vrlh", VX (4, 68), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
{"vrlqmi", VX (4, 69), VX_MASK, POWER10, 0, {VD, VA, VB}},
{"vcmpequh", VXR(4, 70,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
@@ -5327,6 +5339,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"ps_cmpu1", X (4, 64), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
{"vadduwm", VX (4, 128), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
{"vmaxuw", VX (4, 130), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
+{"vucmprhb", VX (4, 131), VX_MASK, FUTURE, 0, {VD, VA, VB}},
{"vrlw", VX (4, 132), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
{"vrlwmi", VX (4, 133), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
{"vcmpequw", VXR(4, 134,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
@@ -5344,6 +5357,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"ps_cmpo1", X (4, 96), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
{"vaddudm", VX (4, 192), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
{"vmaxud", VX (4, 194), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
+{"vucmprlb", VX (4, 195), VX_MASK, FUTURE, 0, {VD, VA, VB}},
{"vrld", VX (4, 196), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
{"vrldmi", VX (4, 197), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
{"vcmpeqfp", VXR(4, 198,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
@@ -5359,6 +5373,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"vadduqm", VX (4, 256), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
{"vcmpuq", VX (4, 257), VXBF_MASK, POWER10, 0, {BF, VA, VB}},
{"vmaxsb", VX (4, 258), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
+{"vucmprhh", VX (4, 259), VX_MASK, FUTURE, 0, {VD, VA, VB}},
{"vslb", VX (4, 260), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
{"vslq", VX (4, 261), VX_MASK, POWER10, 0, {VD, VA, VB}},
{"vcmpnezb", VXR(4, 263,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
@@ -5377,6 +5392,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"vaddcuq", VX (4, 320), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
{"vcmpsq", VX (4, 321), VXBF_MASK, POWER10, 0, {BF, VA, VB}},
{"vmaxsh", VX (4, 322), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
+{"vucmprlh", VX (4, 323), VX_MASK, FUTURE, 0, {VD, VA, VB}},
{"vslh", VX (4, 324), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
{"vrlqnm", VX (4, 325), VX_MASK, POWER10, 0, {VD, VA, VB}},
{"vcmpnezh", VXR(4, 327,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
@@ -5393,6 +5409,12 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{"nmacchw.", XO (4, 174,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
{"vaddcuw", VX (4, 384), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
{"vmaxsw", VX (4, 386), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
+{"vupkhsntob", VXSEL5 (4, 387,0), VXVA_MASK, FUTURE, 0, {VD, VB}},
+{"vupklsntob", VXSEL5 (4, 387,1), VXVA_MASK, FUTURE, 0, {VD, VB}},
+{"vupkint8tobf16", VXSEL4 (4, 387,1), VXUIMM1_MASK, FUTURE, 0, {VD, VB, UIMM1}},
+{"vupkint4tobf16", VXSEL3 (4, 387,2), VXUIMM2_MASK, FUTURE, 0, {VD, VB, UIMM2}},
+{"vupkint8tofp32", VXSEL3 (4, 387,3), VXUIMM2_MASK, FUTURE, 0, {VD, VB, UIMM2}},
+{"vupkint4tofp32", VXSEL2 (4, 387,2), VXUIMM3_MASK, FUTURE, 0, {VD, VB, UIMM3}},
{"vslw", VX (4, 388), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
{"vrlwnm", VX (4, 389), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
{"vcmpnezw", VXR(4, 391,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
diff --git a/opcodes/riscv-opc.c b/opcodes/riscv-opc.c
index 56ef62a..e6fe5e9 100644
--- a/opcodes/riscv-opc.c
+++ b/opcodes/riscv-opc.c
@@ -313,14 +313,6 @@ match_c_addi4spn (const struct riscv_opcode *op, insn_t insn)
return match_opcode (op, insn) && EXTRACT_CIWTYPE_ADDI4SPN_IMM (insn) != 0;
}
-/* This requires a non-zero shift. A zero rd is a hint, so is allowed. */
-
-static int
-match_c_slli (const struct riscv_opcode *op, insn_t insn)
-{
- return match_opcode (op, insn) && EXTRACT_CITYPE_IMM (insn) != 0;
-}
-
/* This requires a non-zero rd, and a non-zero shift. */
static int
@@ -1199,12 +1191,12 @@ const struct riscv_opcode riscv_opcodes[] =
{"c.and", 0, INSN_CLASS_ZCA, "Cs,Ct", MATCH_C_AND, MASK_C_AND, match_opcode, 0 },
{"c.or", 0, INSN_CLASS_ZCA, "Cs,Ct", MATCH_C_OR, MASK_C_OR, match_opcode, 0 },
{"c.xor", 0, INSN_CLASS_ZCA, "Cs,Ct", MATCH_C_XOR, MASK_C_XOR, match_opcode, 0 },
-{"c.slli", 0, INSN_CLASS_ZCA, "d,C>", MATCH_C_SLLI, MASK_C_SLLI, match_c_slli, 0 },
-{"c.srli", 0, INSN_CLASS_ZCA, "Cs,C>", MATCH_C_SRLI, MASK_C_SRLI, match_c_slli, 0 },
-{"c.srai", 0, INSN_CLASS_ZCA, "Cs,C>", MATCH_C_SRAI, MASK_C_SRAI, match_c_slli, 0 },
-{"c.slli64", 0, INSN_CLASS_ZCA, "d", MATCH_C_SLLI64, MASK_C_SLLI64, match_c_slli64, 0 },
-{"c.srli64", 0, INSN_CLASS_ZCA, "Cs", MATCH_C_SRLI64, MASK_C_SRLI64, match_c_slli64, 0 },
-{"c.srai64", 0, INSN_CLASS_ZCA, "Cs", MATCH_C_SRAI64, MASK_C_SRAI64, match_c_slli64, 0 },
+{"c.slli", 0, INSN_CLASS_ZCA, "d,C>", MATCH_C_SLLI, MASK_C_SLLI, match_opcode, 0 },
+{"c.srli", 0, INSN_CLASS_ZCA, "Cs,C>", MATCH_C_SRLI, MASK_C_SRLI, match_opcode, 0 },
+{"c.srai", 0, INSN_CLASS_ZCA, "Cs,C>", MATCH_C_SRAI, MASK_C_SRAI, match_opcode, 0 },
+{"c.slli64", 0, INSN_CLASS_ZCA, "d", MATCH_C_SLLI64, MASK_C_SLLI64, match_c_slli64, INSN_ALIAS }, /* Deprecated. */
+{"c.srli64", 0, INSN_CLASS_ZCA, "Cs", MATCH_C_SRLI64, MASK_C_SRLI64, match_c_slli64, INSN_ALIAS }, /* Deprecated. */
+{"c.srai64", 0, INSN_CLASS_ZCA, "Cs", MATCH_C_SRAI64, MASK_C_SRAI64, match_c_slli64, INSN_ALIAS }, /* Deprecated. */
{"c.andi", 0, INSN_CLASS_ZCA, "Cs,Co", MATCH_C_ANDI, MASK_C_ANDI, match_opcode, 0 },
{"c.addiw", 64, INSN_CLASS_ZCA, "d,Co", MATCH_C_ADDIW, MASK_C_ADDIW, match_rd_nonzero, 0 },
{"c.addw", 64, INSN_CLASS_ZCA, "Cs,Ct", MATCH_C_ADDW, MASK_C_ADDW, match_opcode, 0 },
diff --git a/sim/Makefile.in b/sim/Makefile.in
index f99f155..7403e90 100644
--- a/sim/Makefile.in
+++ b/sim/Makefile.in
@@ -328,7 +328,9 @@ TESTS = testsuite/common/bits32m0$(EXEEXT) \
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ $(top_srcdir)/../config/clang-plugin.m4 \
$(top_srcdir)/../config/depstand.m4 \
+ $(top_srcdir)/../config/gcc-plugin.m4 \
$(top_srcdir)/../config/lead-dot.m4 \
$(top_srcdir)/../config/override.m4 \
$(top_srcdir)/../config/pkg.m4 $(top_srcdir)/../libtool.m4 \
@@ -1686,6 +1688,7 @@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
+LLVM_CONFIG = @LLVM_CONFIG@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
diff --git a/sim/aclocal.m4 b/sim/aclocal.m4
index d7db9e4..e6e62f7 100644
--- a/sim/aclocal.m4
+++ b/sim/aclocal.m4
@@ -1168,7 +1168,9 @@ AC_SUBST([am__untar])
]) # _AM_PROG_TAR
m4_include([../config/acx.m4])
+m4_include([../config/clang-plugin.m4])
m4_include([../config/depstand.m4])
+m4_include([../config/gcc-plugin.m4])
m4_include([../config/lead-dot.m4])
m4_include([../config/override.m4])
m4_include([../config/pkg.m4])
diff --git a/sim/configure b/sim/configure
index db0eaa6..b6c6d65 100755
--- a/sim/configure
+++ b/sim/configure
@@ -897,6 +897,7 @@ NMEDIT
DSYMUTIL
AWK
STRIP
+LLVM_CONFIG
OBJDUMP
LN_S
NM
@@ -6864,8 +6865,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
-plugin_option=
+
+# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
+# wrong plugin_option with clang.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
+$as_echo_n "checking for clang... " >&6; }
+if ${clang_cv_is_clang+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __clang__
+ yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ clang_cv_is_clang=yes
+else
+ clang_cv_is_clang=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
+$as_echo "$clang_cv_is_clang" >&6; }
+ plugin_file=
+ if test $clang_cv_is_clang = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
+$as_echo_n "checking for clang plugin file... " >&6; }
+ plugin_names="LLVMgold.so"
+ for plugin in $plugin_names; do
+ plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
+ if test x$plugin_file = x$plugin; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LLVM_CONFIG"; then
+ ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
+if test -n "$LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
+$as_echo "$LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LLVM_CONFIG"; then
+ ac_ct_LLVM_CONFIG=$LLVM_CONFIG
+ # Extract the first word of "llvm-config", so it can be a program name with args.
+set dummy llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LLVM_CONFIG"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
+if test -n "$ac_ct_LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
+$as_echo "$ac_ct_LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LLVM_CONFIG" = x; then
+ LLVM_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LLVM_CONFIG=$ac_ct_LLVM_CONFIG
+ fi
+else
+ LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
+fi
+
+ if test "$?" != 0; then
+ as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
+ fi
+ clang_lib_dir=`$LLVM_CONFIG --libdir`
+ if test -f $clang_lib_dir/$plugin; then
+ plugin_file=$clang_lib_dir/$plugin
+ fi
+ if test x$plugin_file != x$plugin; then
+ break;
+ fi
+ fi
+ done
+ if test -z $plugin_file; then
+ as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
+ fi
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+ if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ plugin_option="--plugin $plugin_file"
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_file=
+ fi
+ rm -f conftest.*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
+$as_echo "$plugin_file" >&6; }
+ fi
+ plugin_file="$plugin_file"
+
+if test -n "$plugin_file"; then
+ plugin_option="--plugin $plugin_file"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
+$as_echo_n "checking for -plugin option... " >&6; }
+
plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+plugin_option=
for plugin in $plugin_names; do
plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
if test x$plugin_so = x$plugin; then
@@ -6876,7 +7135,119 @@ for plugin in $plugin_names; do
break
fi
done
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+fi
+touch conftest.c
+${AR} $plugin_option rc conftest.a conftest.c
+if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_option=
+fi
+rm -f conftest.*
+if test -n "$plugin_option"; then
+ plugin_option="$plugin_option"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+$as_echo "$plugin_option" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
@@ -6971,17 +7342,15 @@ fi
test -z "$AR" && AR=ar
if test -n "$plugin_option"; then
- if $AR --help 2>&1 | grep -q "\--plugin"; then
- touch conftest.c
- $AR $plugin_option rc conftest.a conftest.c
- if test "$?" != 0; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
-$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
- else
+ case "$AR" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $AR --help 2>&1 | grep -q "\--plugin"; then
AR="$AR $plugin_option"
fi
- rm -f conftest.*
- fi
+ ;;
+ esac
fi
test -z "$AR_FLAGS" && AR_FLAGS=cru
@@ -7188,9 +7557,15 @@ fi
test -z "$RANLIB" && RANLIB=:
if test -n "$plugin_option" && test "$RANLIB" != ":"; then
- if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
- RANLIB="$RANLIB $plugin_option"
- fi
+ case "$RANLIB" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
+ RANLIB="$RANLIB $plugin_option"
+ fi
+ ;;
+ esac
fi
@@ -12799,7 +13174,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12802 "configure"
+#line 13177 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12905,7 +13280,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12908 "configure"
+#line 13283 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
diff --git a/zlib/Makefile.in b/zlib/Makefile.in
index 548b3e1..b1ebbfa 100644
--- a/zlib/Makefile.in
+++ b/zlib/Makefile.in
@@ -93,8 +93,10 @@ target_triplet = @target@
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../config/cet.m4 \
+ $(top_srcdir)/../config/clang-plugin.m4 \
$(top_srcdir)/../config/depstand.m4 \
$(top_srcdir)/../config/enable.m4 \
+ $(top_srcdir)/../config/gcc-plugin.m4 \
$(top_srcdir)/../config/lead-dot.m4 \
$(top_srcdir)/../config/multi.m4 \
$(top_srcdir)/../config/override.m4 \
@@ -305,6 +307,7 @@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
+LLVM_CONFIG = @LLVM_CONFIG@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
diff --git a/zlib/aclocal.m4 b/zlib/aclocal.m4
index f3676e7..b8f66c5 100644
--- a/zlib/aclocal.m4
+++ b/zlib/aclocal.m4
@@ -1168,8 +1168,10 @@ AC_SUBST([am__untar])
]) # _AM_PROG_TAR
m4_include([../config/cet.m4])
+m4_include([../config/clang-plugin.m4])
m4_include([../config/depstand.m4])
m4_include([../config/enable.m4])
+m4_include([../config/gcc-plugin.m4])
m4_include([../config/lead-dot.m4])
m4_include([../config/multi.m4])
m4_include([../config/override.m4])
diff --git a/zlib/configure b/zlib/configure
index e95da47..6e9b968 100755
--- a/zlib/configure
+++ b/zlib/configure
@@ -643,7 +643,6 @@ toolexeclibdir
toolexecdir
ENABLE_DARWIN_AT_RPATH_FALSE
ENABLE_DARWIN_AT_RPATH_TRUE
-CPP
OTOOL64
OTOOL
LIPO
@@ -651,6 +650,8 @@ NMEDIT
DSYMUTIL
RANLIB
AR
+LLVM_CONFIG
+CPP
OBJDUMP
LN_S
NM
@@ -1569,6 +1570,43 @@ fi
} # ac_fn_c_try_compile
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } > conftest.i && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
# ac_fn_c_try_link LINENO
# -----------------------
# Try to link conftest.$ac_ext, and return whether this succeeded.
@@ -1646,43 +1684,6 @@ $as_echo "$ac_res" >&6; }
} # ac_fn_c_check_header_compile
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
- ac_status=$?
- if test -s conftest.err; then
- grep -v '^ *+' conftest.err >conftest.er1
- cat conftest.er1 >&5
- mv -f conftest.er1 conftest.err
- fi
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } > conftest.i && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then :
- ac_retval=0
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_retval=1
-fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
# ac_fn_c_try_run LINENO
# ----------------------
# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
@@ -5520,8 +5521,404 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
-plugin_option=
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if ${ac_cv_prog_CPP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CPP needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the
+# wrong plugin_option with clang.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5
+$as_echo_n "checking for clang... " >&6; }
+if ${clang_cv_is_clang+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __clang__
+ yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ clang_cv_is_clang=yes
+else
+ clang_cv_is_clang=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5
+$as_echo "$clang_cv_is_clang" >&6; }
+ plugin_file=
+ if test $clang_cv_is_clang = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5
+$as_echo_n "checking for clang plugin file... " >&6; }
+ plugin_names="LLVMgold.so"
+ for plugin in $plugin_names; do
+ plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin`
+ if test x$plugin_file = x$plugin; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LLVM_CONFIG"; then
+ ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG
+if test -n "$LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5
+$as_echo "$LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LLVM_CONFIG"; then
+ ac_ct_LLVM_CONFIG=$LLVM_CONFIG
+ # Extract the first word of "llvm-config", so it can be a program name with args.
+set dummy llvm-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LLVM_CONFIG"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG
+if test -n "$ac_ct_LLVM_CONFIG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5
+$as_echo "$ac_ct_LLVM_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_LLVM_CONFIG" = x; then
+ LLVM_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LLVM_CONFIG=$ac_ct_LLVM_CONFIG
+ fi
+else
+ LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG"
+fi
+
+ if test "$?" != 0; then
+ as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5
+ fi
+ clang_lib_dir=`$LLVM_CONFIG --libdir`
+ if test -f $clang_lib_dir/$plugin; then
+ plugin_file=$clang_lib_dir/$plugin
+ fi
+ if test x$plugin_file != x$plugin; then
+ break;
+ fi
+ fi
+ done
+ if test -z $plugin_file; then
+ as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5
+ fi
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+ if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+ fi
+ plugin_option="--plugin $plugin_file"
+ touch conftest.c
+ ${AR} $plugin_option rc conftest.a conftest.c
+ if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_file=
+ fi
+ rm -f conftest.*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5
+$as_echo "$plugin_file" >&6; }
+ fi
+ plugin_file="$plugin_file"
+
+if test -n "$plugin_file"; then
+ plugin_option="--plugin $plugin_file"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
+$as_echo_n "checking for -plugin option... " >&6; }
+
plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
+plugin_option=
for plugin in $plugin_names; do
plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
if test x$plugin_so = x$plugin; then
@@ -5532,7 +5929,119 @@ for plugin in $plugin_names; do
break
fi
done
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+if test "${AR}" = "" ; then
+ as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
+fi
+touch conftest.c
+${AR} $plugin_option rc conftest.a conftest.c
+if test "$?" != 0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
+$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
+ plugin_option=
+fi
+rm -f conftest.*
+if test -n "$plugin_option"; then
+ plugin_option="$plugin_option"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
+$as_echo "$plugin_option" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
@@ -5627,17 +6136,15 @@ fi
test -z "$AR" && AR=ar
if test -n "$plugin_option"; then
- if $AR --help 2>&1 | grep -q "\--plugin"; then
- touch conftest.c
- $AR $plugin_option rc conftest.a conftest.c
- if test "$?" != 0; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
-$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
- else
+ case "$AR" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $AR --help 2>&1 | grep -q "\--plugin"; then
AR="$AR $plugin_option"
fi
- rm -f conftest.*
- fi
+ ;;
+ esac
fi
test -z "$AR_FLAGS" && AR_FLAGS=cru
@@ -5844,9 +6351,15 @@ fi
test -z "$RANLIB" && RANLIB=:
if test -n "$plugin_option" && test "$RANLIB" != ":"; then
- if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
- RANLIB="$RANLIB $plugin_option"
- fi
+ case "$RANLIB" in
+ *"$plugin_option"*)
+ ;;
+ *)
+ if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
+ RANLIB="$RANLIB $plugin_option"
+ fi
+ ;;
+ esac
fi
@@ -7004,144 +7517,6 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
;;
esac
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if ${ac_cv_prog_CPP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
$as_echo_n "checking for ANSI C header files... " >&6; }
if ${ac_cv_header_stdc+:} false; then :
@@ -10803,7 +11178,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10806 "configure"
+#line 11181 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -10909,7 +11284,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10912 "configure"
+#line 11287 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H